mirror of
https://github.com/zeldaret/tww.git
synced 2026-08-27 15:57:23 -04:00
initialize
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
|
||||
#include "d/d_drawlist.h"
|
||||
#include "JSystem/JUtility/JUTAssert.h"
|
||||
#include "d/d_stage.h"
|
||||
|
||||
struct ResTIMG;
|
||||
struct dmap_dmap_tlut_s;
|
||||
@@ -329,6 +330,17 @@ public:
|
||||
void setFloorTextureOne(u8);
|
||||
void init(s16, s16, s16, s16, s16, s16, s16, s16, s16, u8, u8, u8, u8, u8);
|
||||
virtual void draw();
|
||||
|
||||
public:
|
||||
/* 0x004 */ u8 field_0x4[0x2A4 - 0x4];
|
||||
/* 0x2A4 */ JKRArchive* field_0x2A4;
|
||||
/* 0x2A8 */ u8 field_0x2A8[0x35C - 0x2A8];
|
||||
/* 0x35C */ s16 field_0x35C;
|
||||
/* 0x35E */ s16 field_0x35E;
|
||||
/* 0x360 */ u8 field_0x360[0x364 - 0x360];
|
||||
/* 0x364 */ s16 field_0x364;
|
||||
/* 0x366 */ s16 field_0x366;
|
||||
/* 0x368 */ u8 field_0x368[0x368 + 0x2B8 - 0x368];
|
||||
};
|
||||
|
||||
enum {
|
||||
@@ -515,6 +527,10 @@ public:
|
||||
static dMap_RoomInfo_c* mNowRoomInfoP;
|
||||
};
|
||||
|
||||
BOOL dMap_GetTopBottomFloorNo(dStage_dt_c* stag, u8* bottom_p, u8* top_p);
|
||||
u8 dMap_GetFloorNoForDmap(dStage_dt_c* stag, int param_2, f32 param_3);
|
||||
u8 dMap_GetFloorNo(dStage_dt_c*, f32);
|
||||
|
||||
inline void dMap_drawPoint(u8 param_1, f32 param_2, f32 param_3, f32 param_4, s8 param_5, s16 param_6, u8 param_7, u8 param_8, u8 param_9) {
|
||||
dMap_c::drawPointSingle(param_1, param_2, param_3, param_4, param_5, param_6, param_7, param_8, param_9);
|
||||
}
|
||||
|
||||
+25
-25
@@ -65,7 +65,7 @@ public:
|
||||
void itemScale();
|
||||
void floorInit();
|
||||
void mapMove();
|
||||
void mapOffsetY();
|
||||
f32 mapOffsetY();
|
||||
void itemnameMove();
|
||||
void dnameSet();
|
||||
void itemnameSet();
|
||||
@@ -145,36 +145,36 @@ public:
|
||||
/* 0x1DB0 */ char* mTxtNote[2];
|
||||
/* 0x1DB8 */ char* mTxtDummy[2];
|
||||
/* 0x1DC0 */ char field_0x1DC0[0x1DCC - 0x1DC0];
|
||||
/* 0x1DCC */ f32 field_0x1DCC[4];
|
||||
/* 0x1DDC */ f32 field_0x1DDC[4];
|
||||
/* 0x1DEC */ f32 field_0x1DEC[4];
|
||||
/* 0x1DFC */ f32 field_0x1DFC[4];
|
||||
/* 0x1DCC */ f32 mCarOfsX[4];
|
||||
/* 0x1DDC */ f32 mCarOfsY[4];
|
||||
/* 0x1DEC */ f32 mCarFloorOfsX[4];
|
||||
/* 0x1DFC */ f32 mCarFloorOfsY[4];
|
||||
/* 0x1E0C */ s16 field_0x1E0C;
|
||||
/* 0x1E0E */ s16 field_0x1E0E;
|
||||
/* 0x1E10 */ s16 field_0x1E10;
|
||||
/* 0x1E12 */ s16 field_0x1E12;
|
||||
/* 0x1E14 */ s16 field_0x1E14;
|
||||
/* 0x1E16 */ u16 field_0x1E16;
|
||||
/* 0x1E18 */ s16 field_0x1E18;
|
||||
/* 0x1E1A */ s16 field_0x1E1A;
|
||||
/* 0x1E1C */ s16 field_0x1E1C;
|
||||
/* 0x1E1E */ u16 field_0x1E1E;
|
||||
/* 0x1E20 */ s16 field_0x1E20;
|
||||
/* 0x1E22 */ s16 field_0x1E22;
|
||||
/* 0x1E24 */ s16 field_0x1E24;
|
||||
/* 0x1E26 */ s16 field_0x1E26;
|
||||
/* 0x1E28 */ s16 field_0x1E28;
|
||||
/* 0x1E2A */ s16 field_0x1E2A;
|
||||
/* 0x1E2C */ s16 field_0x1E2C;
|
||||
/* 0x1E2E */ u8 field_0x1E2E;
|
||||
/* 0x1E0E */ s16 mMapDrawOffsetY;
|
||||
/* 0x1E10 */ s16 mCurFloorMapY;
|
||||
/* 0x1E12 */ s16 mFloorListOffsetY;
|
||||
/* 0x1E14 */ s16 mBossFloorListOffsetY;
|
||||
/* 0x1E16 */ s16 mMpmkPosX;
|
||||
/* 0x1E18 */ s16 mMpmkPosY;
|
||||
/* 0x1E1A */ s16 mMpmkSizeX;
|
||||
/* 0x1E1C */ s16 mMpmkSizeY;
|
||||
/* 0x1E1E */ s16 mMpp1PosX;
|
||||
/* 0x1E20 */ s16 mMpp1PosY;
|
||||
/* 0x1E22 */ s16 mMpp1SizeX;
|
||||
/* 0x1E24 */ s16 mMpp1SizeY;
|
||||
/* 0x1E26 */ s16 mMppGapY;
|
||||
/* 0x1E28 */ s16 mLnkTimer2;
|
||||
/* 0x1E2A */ s16 mLnkTimer1;
|
||||
/* 0x1E2C */ s16 mBossEyeTimer;
|
||||
/* 0x1E2E */ u8 mSelectItem;
|
||||
/* 0x1E2F */ u8 mCurFloor;
|
||||
/* 0x1E30 */ u8 mBossFloor;
|
||||
/* 0x1E31 */ u8 mTopFloor;
|
||||
/* 0x1E32 */ u8 mBottomFloor;
|
||||
/* 0x1E33 */ u8 field_0x1E33;
|
||||
/* 0x1E34 */ bool field_0x1E34;
|
||||
/* 0x1E33 */ bool mLnkTexFlip2;
|
||||
/* 0x1E34 */ bool mLnkTexFlip1;
|
||||
/* 0x1E35 */ bool field_0x1E35;
|
||||
/* 0x1E36 */ u8 field_0x1E36;
|
||||
/* 0x1E36 */ u8 mBossEyeState;
|
||||
/* 0x1E37 */ u8 pad;
|
||||
}; // Size: 0x1E38
|
||||
|
||||
|
||||
@@ -999,6 +999,9 @@ struct FuncTable {
|
||||
dStage_Func function;
|
||||
};
|
||||
|
||||
|
||||
dStage_KeepDoorInfo * dStage_GetKeepDoorInfo();
|
||||
|
||||
s8 dStage_roomRead_dt_c_GetReverbStage(roomRead_class&, int);
|
||||
int dStage_mapInfo_GetOceanZ(stage_map_info_class*);
|
||||
int dStage_mapInfo_GetOceanX(stage_map_info_class*);
|
||||
|
||||
+1
-1
@@ -292,7 +292,7 @@ dStage_FloorInfo_dt_c* dMap_GetFloorInfoDtPFromFloorNo(dStage_FloorInfo_c* floor
|
||||
}
|
||||
|
||||
/* 80045AEC-80045C24 .text dMap_GetFloorNoForDmap__FP11dStage_dt_cif */
|
||||
int dMap_GetFloorNoForDmap(dStage_dt_c* stag, int param_2, f32 param_3) {
|
||||
u8 dMap_GetFloorNoForDmap(dStage_dt_c* stag, int param_2, f32 param_3) {
|
||||
dStage_FloorInfo_c* floor = stag->getFloorInfo();
|
||||
int floorNo = Floor_1F;
|
||||
dStage_FloorInfo_dt_c* floorData = dMap_GetFloorInfoDtP(floor, param_3);
|
||||
|
||||
+115
-11
@@ -4,6 +4,7 @@
|
||||
//
|
||||
|
||||
#include "d/dolzel.h" // IWYU pragma: keep
|
||||
#include "d/d_map.h"
|
||||
#include "d/d_menu_dmap.h"
|
||||
#include "d/d_stage.h"
|
||||
#include "f_op/f_op_msg_mng.h"
|
||||
@@ -258,20 +259,20 @@ void dMenu_Dmap_c::screenSet() {
|
||||
mMskPane.mInitAlpha = 0x82;
|
||||
mMsk0Pane.mInitAlpha = 0x82;
|
||||
|
||||
field_0x1E16 = mpmk.mPosCenterOrig.x;
|
||||
field_0x1E18 = mpmk.mPosCenterOrig.y;
|
||||
field_0x1E1A = mpmk.mSizeOrig.x;
|
||||
field_0x1E1C = mpmk.mSizeOrig.y;
|
||||
field_0x1E1E = mpp1pane.mPosCenterOrig.x;
|
||||
field_0x1E20 = mpp1pane.mPosCenterOrig.y;
|
||||
field_0x1E22 = mpp1pane.mSizeOrig.x;
|
||||
field_0x1E24 = mpp1pane.mSizeOrig.y;
|
||||
mMpmkPosX = mpmk.mPosCenterOrig.x;
|
||||
mMpmkPosY = mpmk.mPosCenterOrig.y;
|
||||
mMpmkSizeX = mpmk.mSizeOrig.x;
|
||||
mMpmkSizeY = mpmk.mSizeOrig.y;
|
||||
mMpp1PosX = mpp1pane.mPosCenterOrig.x;
|
||||
mMpp1PosY = mpp1pane.mPosCenterOrig.y;
|
||||
mMpp1SizeX = mpp1pane.mSizeOrig.x;
|
||||
mMpp1SizeY = mpp1pane.mSizeOrig.y;
|
||||
|
||||
J2DPane* p2 = scrn->search('mpp2');
|
||||
f32 h = p2->getHeight();
|
||||
p2 = scrn->search('mpp2');
|
||||
J2DPane* p1 = scrn->search('mpp1');
|
||||
field_0x1E26 = p1->mBounds.i.y - (p2->mBounds.i.y + h);
|
||||
mMppGapY = p1->mBounds.i.y - (p2->mBounds.i.y + h);
|
||||
}
|
||||
|
||||
/* 801A92D4-801A9364 .text dMap_isBossDoor__FP21stage_tgsc_data_class */
|
||||
@@ -291,7 +292,109 @@ BOOL dMap_isBossDoor(stage_tgsc_data_class* i_stage) {
|
||||
|
||||
/* 801A9364-801A98EC .text initialize__12dMenu_Dmap_cFv */
|
||||
void dMenu_Dmap_c::initialize() {
|
||||
/* Nonmatching */
|
||||
f32 yPos = dComIfGp_getPlayer(0)->current.pos.y;
|
||||
mNm00Pane.mUserArea = 0;
|
||||
mCurFloor = dMap_GetFloorNo(&dComIfGp_getStage(), yPos + mapOffsetY());
|
||||
mBossFloor = 0xFF;
|
||||
|
||||
dStage_KeepDoorInfo* doorInfo = dStage_GetKeepDoorInfo();
|
||||
stage_tgsc_data_class* tgsc = doorInfo->mDrTgData;
|
||||
for (int i = 0; i < doorInfo->num; tgsc++, i++) {
|
||||
if (dMap_isBossDoor(tgsc)) {
|
||||
mBossFloor = dMap_GetFloorNo(&dComIfGp_getStage(), tgsc->base.position.y);
|
||||
}
|
||||
}
|
||||
|
||||
dMap_GetTopBottomFloorNo(&dComIfGp_getStage(), &mTopFloor, &mBottomFloor);
|
||||
int stayNo = dComIfGp_roomControl_getStayNo();
|
||||
u8 floorNo = dMap_GetFloorNoForDmap(&dComIfGp_getStage(), stayNo, yPos + mapOffsetY());
|
||||
dmap_c->init(mMpmkPosX, mMpmkPosY, mMpmkSizeX, mMpmkSizeY,
|
||||
mMpp1PosX, mMpp1PosY, mMpp1SizeX, mMpp1SizeY, mMppGapY,
|
||||
mTopFloor, mBottomFloor, stayNo, floorNo, 0xFF);
|
||||
mCurFloorMapY = mMpp1PosY + (mCurFloor - 0x80) * (mMpp1SizeY + mMppGapY);
|
||||
mMapDrawOffsetY = 0x1E0;
|
||||
mFloorListOffsetY = (mFbPanes[0].mPosCenterOrig.y - mFbPanes[1].mPosCenterOrig.y) * (mBottomFloor - mCurFloor);
|
||||
if (mBossFloor != 0xFF) {
|
||||
mBossFloorListOffsetY = (mFbPanes[0].mPosCenterOrig.y - mFbPanes[1].mPosCenterOrig.y) * (mBottomFloor - mBossFloor);
|
||||
} else {
|
||||
mBossFloorListOffsetY = 0;
|
||||
}
|
||||
|
||||
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;
|
||||
|
||||
for (int i = 0; i < (mTopFloor - mBottomFloor + 1); i++) {
|
||||
J2DPane* pane = mFlPanes[i].pane;
|
||||
changeFloorTexture(pane, mBottomFloor - 0x76 + i);
|
||||
}
|
||||
|
||||
mLnkTimer2 = cM_rndF(100.0f) + 100.0f;
|
||||
mLnkTimer1 = cM_rndF(50.0f) + 100.0f;
|
||||
mLnkTexFlip2 = false;
|
||||
mLnkTexFlip1 = false;
|
||||
mLnkPanes[1].mUserArea = 0;
|
||||
mLnkPanes[2].mUserArea = 0;
|
||||
mBossPane.mUserArea = 100;
|
||||
mBos2Pane.mUserArea = cM_rndF(200.0f) + 300.0f;
|
||||
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;
|
||||
|
||||
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;
|
||||
|
||||
floorInit();
|
||||
itemScale();
|
||||
if (!dComIfGs_isDungeonItemMap()) {
|
||||
mItPanes[0].pane->hide();
|
||||
mIkPanes[0].pane->hide();
|
||||
mIpPanes[0].pane->hide();
|
||||
}
|
||||
if (!dComIfGs_isDungeonItemBossKey()) {
|
||||
mItPanes[1].pane->hide();
|
||||
mIkPanes[1].pane->hide();
|
||||
mIpPanes[1].pane->hide();
|
||||
}
|
||||
if (!dComIfGs_isDungeonItemCompass()) {
|
||||
mItPanes[2].pane->hide();
|
||||
mIkPanes[2].pane->hide();
|
||||
mIpPanes[2].pane->hide();
|
||||
}
|
||||
if (!dComIfGs_isDungeonItemCompass() || mBossFloor == 0xFF) {
|
||||
mBossPane.pane->hide();
|
||||
}
|
||||
noteInit();
|
||||
if ((mSelectItem == 0 && dComIfGs_isDungeonItemMap()) ||
|
||||
(mSelectItem == 1 && dComIfGs_isDungeonItemBossKey()) ||
|
||||
(mSelectItem == 2 && dComIfGs_isDungeonItemCompass())
|
||||
) {
|
||||
dComIfGp_setDoStatusForce(dActStts_INFO_e);
|
||||
} else {
|
||||
dComIfGp_setDoStatusForce(dActStts_BLANK_e);
|
||||
dComIfGp_setDoStatus(dActStts_BLANK_e);
|
||||
}
|
||||
}
|
||||
|
||||
/* 801A98EC-801AAE10 .text treasureSet__12dMenu_Dmap_cFv */
|
||||
@@ -375,8 +478,9 @@ void dMenu_Dmap_c::mapMove() {
|
||||
}
|
||||
|
||||
/* 801AD000-801AD130 .text mapOffsetY__12dMenu_Dmap_cFv */
|
||||
void dMenu_Dmap_c::mapOffsetY() {
|
||||
f32 dMenu_Dmap_c::mapOffsetY() {
|
||||
/* Nonmatching */
|
||||
return 0.0f;
|
||||
}
|
||||
|
||||
/* 801AD130-801AD1A8 .text itemnameMove__12dMenu_Dmap_cFv */
|
||||
|
||||
Reference in New Issue
Block a user