mirror of
https://github.com/zeldaret/tww.git
synced 2026-08-27 15:57:23 -04:00
largest method ever
This commit is contained in:
+26
-26
@@ -129,12 +129,12 @@ public:
|
||||
/* 0x14A8 */ JUTFont* mFont;
|
||||
/* 0x14AC */ JUTFont* mRFont;
|
||||
/* 0x14B0 */ u8 field_0x14B0[0x14B4 - 0x14B0];
|
||||
/* 0x14B4 */ JUtility::TColor field_0x14B4;
|
||||
/* 0x14B8 */ JUtility::TColor field_0x14B8;
|
||||
/* 0x14BC */ JUtility::TColor field_0x14BC;
|
||||
/* 0x14C0 */ JUtility::TColor field_0x14C0;
|
||||
/* 0x14C4 */ JUtility::TColor field_0x14C4;
|
||||
/* 0x14C8 */ JUtility::TColor field_0x14C8;
|
||||
/* 0x14B4 */ JUtility::TColor mFb5ContentsColor;
|
||||
/* 0x14B8 */ JUtility::TColor mFb0ContentsColor;
|
||||
/* 0x14BC */ JUtility::TColor mFb5White;
|
||||
/* 0x14C0 */ JUtility::TColor mFb0White;
|
||||
/* 0x14C4 */ JUtility::TColor mFb5Black;
|
||||
/* 0x14C8 */ JUtility::TColor mFb0Black;
|
||||
/* 0x14CC */ dMap_pane_c treasure_p[32];
|
||||
/* 0x17CC */ dMap_pane_c door_p[32];
|
||||
/* 0x1ACC */ dMap_pane_c npc_p;
|
||||
@@ -149,7 +149,7 @@ public:
|
||||
/* 0x1DDC */ f32 mCarOfsY[4];
|
||||
/* 0x1DEC */ f32 mCarFloorOfsX[4];
|
||||
/* 0x1DFC */ f32 mCarFloorOfsY[4];
|
||||
/* 0x1E0C */ s16 field_0x1E0C;
|
||||
/* 0x1E0C */ s16 mNoteTimer;
|
||||
/* 0x1E0E */ s16 mMapDrawOffsetY;
|
||||
/* 0x1E10 */ s16 mCurFloorMapY;
|
||||
/* 0x1E12 */ s16 mFloorListOffsetY;
|
||||
@@ -173,7 +173,7 @@ public:
|
||||
/* 0x1E32 */ u8 mBottomFloor;
|
||||
/* 0x1E33 */ bool mLnkTexFlip2;
|
||||
/* 0x1E34 */ bool mLnkTexFlip1;
|
||||
/* 0x1E35 */ bool field_0x1E35;
|
||||
/* 0x1E35 */ bool mCurFloorOnly;
|
||||
/* 0x1E36 */ u8 mBossEyeState;
|
||||
/* 0x1E37 */ u8 pad;
|
||||
}; // Size: 0x1E38
|
||||
@@ -189,25 +189,25 @@ public:
|
||||
|
||||
public:
|
||||
/* 0x04 */ s8 mNo;
|
||||
/* 0x06 */ s16 field_0x06;
|
||||
/* 0x08 */ s16 field_0x08;
|
||||
/* 0x0A */ s16 field_0x0A;
|
||||
/* 0x0C */ s16 field_0x0C;
|
||||
/* 0x06 */ s16 mBossOfsX;
|
||||
/* 0x08 */ s16 mBossOfsY;
|
||||
/* 0x0A */ s16 mTreasureWidth;
|
||||
/* 0x0C */ s16 mTreasureHeight;
|
||||
/* 0x0E */ u8 padding_0x0E[0x10 - 0x0E];
|
||||
/* 0x10 */ JUtility::TColor field_0x10;
|
||||
/* 0x14 */ JUtility::TColor field_0x14;
|
||||
/* 0x18 */ s16 field_0x18;
|
||||
/* 0x1A */ s16 field_0x1A;
|
||||
/* 0x1C */ JUtility::TColor field_0x1C;
|
||||
/* 0x20 */ JUtility::TColor field_0x20;
|
||||
/* 0x24 */ s16 field_0x24;
|
||||
/* 0x26 */ s16 field_0x26;
|
||||
/* 0x28 */ JUtility::TColor field_0x28;
|
||||
/* 0x2C */ JUtility::TColor field_0x2C;
|
||||
/* 0x30 */ s16 field_0x30;
|
||||
/* 0x32 */ s16 field_0x32;
|
||||
/* 0x34 */ JUtility::TColor field_0x34;
|
||||
/* 0x38 */ JUtility::TColor field_0x38;
|
||||
/* 0x10 */ JUtility::TColor mTreasureWhite;
|
||||
/* 0x14 */ JUtility::TColor mTreasureBlack;
|
||||
/* 0x18 */ s16 mBossWidth;
|
||||
/* 0x1A */ s16 mBossHeight;
|
||||
/* 0x1C */ JUtility::TColor mBossWhite;
|
||||
/* 0x20 */ JUtility::TColor mBossBlack;
|
||||
/* 0x24 */ s16 mDoorWidth;
|
||||
/* 0x26 */ s16 mDoorHeight;
|
||||
/* 0x28 */ JUtility::TColor mDoorWhite;
|
||||
/* 0x2C */ JUtility::TColor mDoorBlack;
|
||||
/* 0x30 */ s16 mNpcWidth;
|
||||
/* 0x32 */ s16 mNpcHeight;
|
||||
/* 0x34 */ JUtility::TColor mNpcWhite;
|
||||
/* 0x38 */ JUtility::TColor mNpcBlack;
|
||||
/* 0x3C */ s16 field_0x3C;
|
||||
/* 0x3E */ s16 field_0x3E;
|
||||
/* 0x40 */ s16 field_0x40;
|
||||
|
||||
+4
-3
@@ -314,9 +314,9 @@ struct dStage_Lbnk_c {
|
||||
|
||||
// DMAP
|
||||
struct dStage_DMap_dt_c {
|
||||
/* 0x00 */ int field_0x00;
|
||||
/* 0x04 */ int field_0x04;
|
||||
/* 0x08 */ int field_0x08;
|
||||
/* 0x00 */ f32 originX;
|
||||
/* 0x04 */ f32 originZ;
|
||||
/* 0x08 */ f32 scale;
|
||||
/* 0x0C */ f32 offsetY;
|
||||
}; // Size: 0x10
|
||||
|
||||
@@ -1000,6 +1000,7 @@ struct FuncTable {
|
||||
};
|
||||
|
||||
|
||||
dStage_KeepTresureInfo* dStage_GetKeepTresureInfo();
|
||||
dStage_KeepDoorInfo * dStage_GetKeepDoorInfo();
|
||||
|
||||
s8 dStage_roomRead_dt_c_GetReverbStage(roomRead_class&, int);
|
||||
|
||||
+316
-54
@@ -15,55 +15,55 @@ dMd_HIO_c g_mdHIO;
|
||||
|
||||
/* 801A86A4-801A87CC .text __ct__9dMd_HIO_cFv */
|
||||
dMd_HIO_c::dMd_HIO_c() {
|
||||
field_0x06 = 0;
|
||||
field_0x08 = 0;
|
||||
field_0x0A = 14;
|
||||
field_0x0C = 14;
|
||||
mBossOfsX = 0;
|
||||
mBossOfsY = 0;
|
||||
mTreasureWidth = 14;
|
||||
mTreasureHeight = 14;
|
||||
|
||||
field_0x10.r = 0xff;
|
||||
field_0x10.g = 0xc4;
|
||||
field_0x10.b = 0x00;
|
||||
field_0x14.r = 0x20;
|
||||
field_0x14.g = 0x20;
|
||||
field_0x14.b = 0x00;
|
||||
field_0x10.a = 0xff;
|
||||
field_0x14.a = 0x00;
|
||||
mTreasureWhite.r = 0xff;
|
||||
mTreasureWhite.g = 0xc4;
|
||||
mTreasureWhite.b = 0x00;
|
||||
mTreasureBlack.r = 0x20;
|
||||
mTreasureBlack.g = 0x20;
|
||||
mTreasureBlack.b = 0x00;
|
||||
mTreasureWhite.a = 0xff;
|
||||
mTreasureBlack.a = 0x00;
|
||||
|
||||
field_0x24 = 16;
|
||||
field_0x26 = 8;
|
||||
mDoorWidth = 16;
|
||||
mDoorHeight = 8;
|
||||
|
||||
field_0x28.r = 0xA8;
|
||||
field_0x28.g = 0xA8;
|
||||
field_0x28.b = 0xA8;
|
||||
field_0x2C.r = 0x40;
|
||||
field_0x2C.g = 0x20;
|
||||
field_0x2C.b = 0x00;
|
||||
field_0x28.a = 0xFF;
|
||||
field_0x2C.a = 0x00;
|
||||
mDoorWhite.r = 0xA8;
|
||||
mDoorWhite.g = 0xA8;
|
||||
mDoorWhite.b = 0xA8;
|
||||
mDoorBlack.r = 0x40;
|
||||
mDoorBlack.g = 0x20;
|
||||
mDoorBlack.b = 0x00;
|
||||
mDoorWhite.a = 0xFF;
|
||||
mDoorBlack.a = 0x00;
|
||||
|
||||
field_0x18 = 32;
|
||||
field_0x1A = 32;
|
||||
mBossWidth = 32;
|
||||
mBossHeight = 32;
|
||||
|
||||
field_0x1C.r = 0xFF;
|
||||
field_0x1C.g = 0xFF;
|
||||
field_0x1C.b = 0xFF;
|
||||
field_0x20.r = 0x00;
|
||||
field_0x20.g = 0x00;
|
||||
field_0x20.b = 0x00;
|
||||
field_0x1C.a = 0xFF;
|
||||
field_0x20.a = 0x00;
|
||||
mBossWhite.r = 0xFF;
|
||||
mBossWhite.g = 0xFF;
|
||||
mBossWhite.b = 0xFF;
|
||||
mBossBlack.r = 0x00;
|
||||
mBossBlack.g = 0x00;
|
||||
mBossBlack.b = 0x00;
|
||||
mBossWhite.a = 0xFF;
|
||||
mBossBlack.a = 0x00;
|
||||
|
||||
field_0x30 = 16;
|
||||
field_0x32 = 16;
|
||||
mNpcWidth = 16;
|
||||
mNpcHeight = 16;
|
||||
|
||||
field_0x34.r = 0xFF;
|
||||
field_0x34.g = 0x00;
|
||||
field_0x34.b = 0xFF;
|
||||
field_0x38.r = 0x00;
|
||||
field_0x38.g = 0x00;
|
||||
field_0x38.b = 0x00;
|
||||
field_0x34.a = 0xFF;
|
||||
field_0x38.a = 0x00;
|
||||
mNpcWhite.r = 0xFF;
|
||||
mNpcWhite.g = 0x00;
|
||||
mNpcWhite.b = 0xFF;
|
||||
mNpcBlack.r = 0x00;
|
||||
mNpcBlack.g = 0x00;
|
||||
mNpcBlack.b = 0x00;
|
||||
mNpcWhite.a = 0xFF;
|
||||
mNpcBlack.a = 0x00;
|
||||
|
||||
field_0x3C = 4;
|
||||
field_0x3E = 10;
|
||||
@@ -211,15 +211,15 @@ void dMenu_Dmap_c::screenSet() {
|
||||
J2DWindow::TContentsColor contentsColor;
|
||||
J2DWindow* win = (J2DWindow*)mFbPanes[0].pane;
|
||||
win->getContentsColor(contentsColor);
|
||||
field_0x14B8 = contentsColor.mTL;
|
||||
field_0x14C0 = JUtility::TColor(((J2DWindow*)mFbPanes[0].pane)->mWhite.toUInt32());
|
||||
field_0x14C8 = JUtility::TColor(((J2DWindow*)mFbPanes[0].pane)->mBlack.toUInt32());
|
||||
mFb0ContentsColor = contentsColor.mTL;
|
||||
mFb0White = JUtility::TColor(((J2DWindow*)mFbPanes[0].pane)->mWhite.toUInt32());
|
||||
mFb0Black = JUtility::TColor(((J2DWindow*)mFbPanes[0].pane)->mBlack.toUInt32());
|
||||
|
||||
win = (J2DWindow*)mFbPanes[5].pane;
|
||||
win->getContentsColor(contentsColor);
|
||||
field_0x14B4 = contentsColor.mTL;
|
||||
field_0x14BC = JUtility::TColor(((J2DWindow*)mFbPanes[5].pane)->mWhite.toUInt32());
|
||||
field_0x14C4 = JUtility::TColor(((J2DWindow*)mFbPanes[5].pane)->mBlack.toUInt32());
|
||||
mFb5ContentsColor = contentsColor.mTL;
|
||||
mFb5White = JUtility::TColor(((J2DWindow*)mFbPanes[5].pane)->mWhite.toUInt32());
|
||||
mFb5Black = JUtility::TColor(((J2DWindow*)mFbPanes[5].pane)->mBlack.toUInt32());
|
||||
|
||||
for (int i = 4; i < 6; i++) {
|
||||
mFlPanes[i].mSizeOrig.x = mFlPanes[i].mSize.x = mFlPanes[0].mSizeOrig.x;
|
||||
@@ -227,9 +227,9 @@ void dMenu_Dmap_c::screenSet() {
|
||||
fopMsgM_cposMove(&mFlPanes[i]);
|
||||
mFbPanes[i].mSizeOrig.x = mFbPanes[i].mSize.x = mFbPanes[0].mSizeOrig.x;
|
||||
mFbPanes[i].mSizeOrig.y = mFbPanes[i].mSize.y = mFbPanes[0].mSizeOrig.y;
|
||||
((J2DWindow*)mFbPanes[i].pane)->setContentsColor(field_0x14B8);
|
||||
((J2DWindow*)mFbPanes[i].pane)->mWhite = JUtility::TColor(field_0x14C0.toUInt32());
|
||||
((J2DWindow*)mFbPanes[i].pane)->mBlack = JUtility::TColor(field_0x14C8.toUInt32());
|
||||
((J2DWindow*)mFbPanes[i].pane)->setContentsColor(mFb0ContentsColor);
|
||||
((J2DWindow*)mFbPanes[i].pane)->mWhite = JUtility::TColor(mFb0White.toUInt32());
|
||||
((J2DWindow*)mFbPanes[i].pane)->mBlack = JUtility::TColor(mFb0Black.toUInt32());
|
||||
fopMsgM_cposMove(&mFbPanes[i]);
|
||||
mFbkPanes[i].mSizeOrig.x = mFbkPanes[i].mSize.x = mFbkPanes[0].mSizeOrig.x;
|
||||
mFbkPanes[i].mSizeOrig.y = mFbkPanes[i].mSize.y = mFbkPanes[0].mSizeOrig.y;
|
||||
@@ -399,7 +399,235 @@ void dMenu_Dmap_c::initialize() {
|
||||
|
||||
/* 801A98EC-801AAE10 .text treasureSet__12dMenu_Dmap_cFv */
|
||||
void dMenu_Dmap_c::treasureSet() {
|
||||
/* Nonmatching */
|
||||
static const f32 bossOffsetX[16] = {
|
||||
0.0f, 0.0f, 0.0f, 0.0f, 20.0f, 21.0f, -21.0f, 0.0f,
|
||||
0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
|
||||
};
|
||||
static const f32 bossOffsetY[16] = {
|
||||
0.0f, 0.0f, 0.0f, -22.0f, 0.0f, 0.0f, 0.0f, 21.0f,
|
||||
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());
|
||||
for (int i = 0; i < 32; i++) {
|
||||
treasure_p[i].exists = 0;
|
||||
}
|
||||
for (int i = 0; i < 32; i++) {
|
||||
door_p[i].exists = 0;
|
||||
}
|
||||
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(609, pinf->num == 1);
|
||||
|
||||
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 ((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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
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++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
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(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;
|
||||
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++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* 801AAE10-801AB20C .text treasureDraw__12dMenu_Dmap_cFv */
|
||||
@@ -460,8 +688,42 @@ void dMenu_Dmap_c::treasureDraw() {
|
||||
}
|
||||
|
||||
/* 801AB20C-801AB464 .text paneMove__12dMenu_Dmap_cFf */
|
||||
void dMenu_Dmap_c::paneMove(float) {
|
||||
/* Nonmatching */
|
||||
void dMenu_Dmap_c::paneMove(float i_y) {
|
||||
fopMsgM_paneTrans(&mDt00Pane, 0.0f, i_y);
|
||||
fopMsgM_paneTrans(&mDk00Pane, 0.0f, i_y);
|
||||
fopMsgM_paneTrans(&mNm00Pane, 0.0f, i_y);
|
||||
fopMsgM_paneTrans(&mNm01Pane, 0.0f, i_y);
|
||||
fopMsgM_paneTrans(&mItnkPane, 0.0f, i_y);
|
||||
|
||||
for (int i = 0; i < 4; i++) {
|
||||
fopMsgM_paneTrans(&mCarPanes[i], 0.0f, i_y);
|
||||
}
|
||||
|
||||
for (int i = 0; i < 3; i++) {
|
||||
fopMsgM_paneTrans(&mItPanes[i], 0.0f, i_y);
|
||||
fopMsgM_paneTrans(&mIkPanes[i], 0.0f, i_y);
|
||||
fopMsgM_paneTrans(&mIpPanes[i], 0.0f, i_y);
|
||||
}
|
||||
|
||||
fopMsgM_paneTrans(&mIp01Pane, 0.0f, i_y);
|
||||
fopMsgM_paneTrans(mLnkPanes, 0.0f, mFloorListOffsetY + i_y);
|
||||
fopMsgM_paneTrans(&mBossPane, 0.0f, mBossFloorListOffsetY + i_y);
|
||||
|
||||
for (int i = 0; i < 6; i++) {
|
||||
fopMsgM_paneTrans(&mFlPanes[i], 0.0f, i_y);
|
||||
fopMsgM_paneTrans(&mFbPanes[i], 0.0f, i_y);
|
||||
fopMsgM_paneTrans(&mFbkPanes[i], 0.0f, i_y);
|
||||
}
|
||||
|
||||
fopMsgM_paneTrans(&mFw00Pane, 0.0, i_y);
|
||||
fopMsgM_paneTrans(&mFw01Pane, 0.0, i_y);
|
||||
fopMsgM_paneTrans(&mCc38Pane, 0.0, i_y);
|
||||
fopMsgM_paneTrans(&mCc31Pane, 0.0, i_y);
|
||||
fopMsgM_paneTrans(&mCc24Pane, 0.0, i_y);
|
||||
fopMsgM_paneTrans(&mCc17Pane, 0.0, i_y);
|
||||
fopMsgM_paneTrans(&mCc10Pane, 0.0, i_y);
|
||||
fopMsgM_paneTrans(&mCc05pane, 0.0, i_y);
|
||||
fopMsgM_paneTrans(&mCc00Pane, 0.0, i_y);
|
||||
}
|
||||
|
||||
/* 801AB464-801AB630 .text paneAlpha__12dMenu_Dmap_cFf */
|
||||
|
||||
Reference in New Issue
Block a user