mirror of
https://github.com/zeldaret/ss
synced 2026-06-27 10:22:51 -04:00
Figuring out more things
This commit is contained in:
+12
-12
@@ -7804,17 +7804,17 @@ __dt__26sFState_c<13dLytMapMain_c>Fv = .text:0x801363A0; // type:function size:0
|
||||
__dt__29sFStateFct_c<13dLytMapMain_c>Fv = .text:0x80136400; // type:function size:0x6C
|
||||
__dt__82sStateMgr_c<13dLytMapMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x80136470; // type:function size:0xA0
|
||||
__dt__52sFStateMgr_c<13dLytMapMain_c,20sStateMethodUsr_FI_c>Fv = .text:0x80136510; // type:function size:0xA4
|
||||
fn_801365C0 = .text:0x801365C0; // type:function size:0x4
|
||||
fn_801365D0 = .text:0x801365D0; // type:function size:0x40
|
||||
__ct__26dLytMapBoundingWorldBoundsFv = .text:0x801365C0; // type:function size:0x4
|
||||
__dt__26dLytMapBoundingWorldBoundsFv = .text:0x801365D0; // type:function size:0x40
|
||||
__dt__13dLytMapMain_cFv = .text:0x80136610; // type:function size:0x608
|
||||
getGlobal__13dLytMapMain_cFv = .text:0x80136C20; // type:function size:0xC
|
||||
loadTextboxes__13dLytMapMain_cFv = .text:0x80136C30; // type:function size:0xC8
|
||||
build__13dLytMapMain_cFv = .text:0x80136D00; // type:function size:0x6CC
|
||||
changeState__82sStateMgr_c<13dLytMapMain_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>FRC12sStateIDIf_c = .text:0x801373D0; // type:function size:0x10
|
||||
fn_801373E0 = .text:0x801373E0; // type:function size:0xAC
|
||||
fn_80137490 = .text:0x80137490; // type:function size:0x2E8
|
||||
fn_80137780 = .text:0x80137780; // type:function size:0x15C
|
||||
fn_801378E0 = .text:0x801378E0; // type:function size:0x838
|
||||
loadStageProperties__13dLytMapMain_cFv = .text:0x801373E0; // type:function size:0xAC
|
||||
setupStage__13dLytMapMain_cFv = .text:0x80137490; // type:function size:0x2E8
|
||||
remove__13dLytMapMain_cFv = .text:0x80137780; // type:function size:0x15C
|
||||
execute__13dLytMapMain_cFv = .text:0x801378E0; // type:function size:0x838
|
||||
getStateID__94sStateMgr_c<25dLytMapPinIconAggregate_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x80138120; // type:function size:0x10
|
||||
draw__13dLytMapMain_cFv = .text:0x80138130; // type:function size:0x238
|
||||
fn_80138370 = .text:0x80138370; // type:function size:0x138
|
||||
@@ -7862,7 +7862,7 @@ initializeState_In__13dLytMapMain_cFv = .text:0x8013C1F0; // type:function size:
|
||||
executeState_In__13dLytMapMain_cFv = .text:0x8013C2F0; // type:function size:0x380
|
||||
finalizeState_In__13dLytMapMain_cFv = .text:0x8013C670; // type:function size:0x40
|
||||
getAreaGroup__13dLytMapMain_cCFl = .text:0x8013C6B0; // type:function size:0xA8
|
||||
fn_8013C760 = .text:0x8013C760; // type:function size:0x100
|
||||
getRoomType__13dLytMapMain_cCFv = .text:0x8013C760; // type:function size:0x100
|
||||
fn_8013C860 = .text:0x8013C860; // type:function size:0x1C
|
||||
shouldDrawFootprints__13dLytMapMain_cCFv = .text:0x8013C880; // type:function size:0x64
|
||||
zoomIn__13dLytMapMain_cFv = .text:0x8013C8F0; // type:function size:0x644
|
||||
@@ -10577,7 +10577,7 @@ isSTIFAreaFaron__11dStageMgr_cCFv = .text:0x80199A60; // type:function size:0x3C
|
||||
isSTIFAreaEldin__11dStageMgr_cCFv = .text:0x80199AA0; // type:function size:0x3C
|
||||
isSTIFAreaLanayru__11dStageMgr_cCFv = .text:0x80199AE0; // type:function size:0x3C
|
||||
getSTIFunk1__11dStageMgr_cCFv = .text:0x80199B20; // type:function size:0x20
|
||||
StageManager__getSTIFunk3 = .text:0x80199B40; // type:function size:0x1C
|
||||
getSTIFRoomType__11dStageMgr_cCFv = .text:0x80199B40; // type:function size:0x1C
|
||||
fn_80199B60 = .text:0x80199B60; // type:function size:0xC
|
||||
fn_80199B70 = .text:0x80199B70; // type:function size:0x1C
|
||||
fn_80199B90 = .text:0x80199B90; // type:function size:0x3A8
|
||||
@@ -40092,10 +40092,10 @@ lbl_80572770 = .sdata:0x80572770; // type:object size:0x8
|
||||
lbl_80572778 = .sdata:0x80572778; // type:object size:0x8 data:wstring
|
||||
lbl_80572780 = .sdata:0x80572780; // type:object size:0x4 data:4byte
|
||||
lbl_80572784 = .sdata:0x80572784; // type:object size:0x4 data:4byte
|
||||
lbl_80572788 = .sdata:0x80572788; // type:object size:0x8
|
||||
lbl_80572790 = .sdata:0x80572790; // type:object size:0x8
|
||||
lbl_80572798 = .sdata:0x80572798; // type:object size:0x8
|
||||
lbl_805727A0 = .sdata:0x805727A0; // type:object size:0x8
|
||||
lbl_80572788 = .sdata:0x80572788; // type:object size:0x6 data:string
|
||||
lbl_80572790 = .sdata:0x80572790; // type:object size:0x6 data:string
|
||||
lbl_80572798 = .sdata:0x80572798; // type:object size:0x6 data:string
|
||||
lbl_805727A0 = .sdata:0x805727A0; // type:object size:0x6 data:string
|
||||
lbl_805727A8 = .sdata:0x805727A8; // type:object size:0x8
|
||||
lbl_805727B0 = .sdata:0x805727B0; // type:object size:0x8
|
||||
lbl_805727B8 = .sdata:0x805727B8; // type:object size:0x8
|
||||
|
||||
@@ -195,7 +195,7 @@ struct STIF {
|
||||
/* 0x0E */ u8 areaType;
|
||||
/* 0x0F */ u8 area;
|
||||
/* 0x10 */ u8 field_0x10;
|
||||
/* 0x11 */ u8 field_0x11;
|
||||
/* 0x11 */ u8 roomType;
|
||||
/* 0x12 */ s8 mapNameId;
|
||||
/* 0x13 */ u8 field_0x13;
|
||||
};
|
||||
|
||||
@@ -76,6 +76,15 @@ public:
|
||||
STIF_AREA_LANAYRU_GORGE = 11,
|
||||
};
|
||||
|
||||
// room is a not great name since this is really stage-wide...
|
||||
enum StifRoomType_e {
|
||||
STIF_ROOMTYPE_FIELD = 0,
|
||||
STIF_ROOMTYPE_DUNGEON = 1,
|
||||
STIF_ROOMTYPE_SKYLOFT = 2,
|
||||
STIF_ROOMTYPE_BOSS_HOUSE = 3,
|
||||
STIF_ROOMTYPE_SKYFIELD = 4,
|
||||
};
|
||||
|
||||
s32 getSTIFArea() const;
|
||||
bool isSTIFAreaFaron() const;
|
||||
bool isSTIFAreaEldin() const;
|
||||
@@ -87,6 +96,8 @@ public:
|
||||
return getSTIFArea() == STIF_AREA_SKY;
|
||||
}
|
||||
|
||||
s32 getSTIFRoomType() const;
|
||||
|
||||
s32 getAreaType() const;
|
||||
s32 getMapNameId() const;
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ struct dMapSavedDataEntry {
|
||||
};
|
||||
|
||||
struct dMapSavedData {
|
||||
/* 0x00 */ dMapSavedDataEntry entries[6];
|
||||
/* 0x00 */ dMapSavedDataEntry entries[/* dLytMapMain_c::ROOMTYPE_MAX */ 6];
|
||||
/* 0x30 */ bool showIslandNames;
|
||||
};
|
||||
|
||||
@@ -512,6 +512,8 @@ public:
|
||||
virtual void dLytMapMain_vt0x10();
|
||||
|
||||
void build();
|
||||
void remove();
|
||||
void execute();
|
||||
|
||||
bool isNotInvisible() const;
|
||||
bool isOpenMaybe() const;
|
||||
@@ -562,7 +564,8 @@ public:
|
||||
STATE_FUNC_DECLARE(dLytMapMain_c, EventSaveObjDecide);
|
||||
|
||||
private:
|
||||
// TODO - need to come up with better names
|
||||
// TODO - need to come up with better names for all of these enums and concepts
|
||||
|
||||
enum SurfaceProvince_e {
|
||||
SURFACE_PROVINCE_FARON = 0,
|
||||
SURFACE_PROVINCE_ELDIN = 1,
|
||||
@@ -578,6 +581,16 @@ private:
|
||||
AREAGROUP_MAX = 6,
|
||||
};
|
||||
|
||||
enum RoomType_e {
|
||||
ROOMTYPE_FIELD = 0,
|
||||
ROOMTYPE_DUNGEON = 1,
|
||||
ROOMTYPE_SKYLOFT = 2,
|
||||
ROOMTYPE_BOSS_HOUSE = 3,
|
||||
ROOMTYPE_SKYFIELD = 4,
|
||||
ROOMTYPE_SKYFIELD_INTERIOR = 5,
|
||||
ROOMTYPE_MAX = 6,
|
||||
};
|
||||
|
||||
dLytMapGlobal_c *getGlobal();
|
||||
void checkScroll();
|
||||
bool needsNav(s32 mapMode) const;
|
||||
@@ -590,7 +603,9 @@ private:
|
||||
bool canPlaceBeacons(s32 mapMode) const;
|
||||
bool isPointingAtMainMap() const;
|
||||
|
||||
void loadStageProperties();
|
||||
s32 getAreaGroup(s32 stifArea) const;
|
||||
s32 getRoomType() const;
|
||||
|
||||
s32 getSelectedSaveObjIdx() const;
|
||||
|
||||
@@ -604,6 +619,8 @@ private:
|
||||
void fn_80143300();
|
||||
void fn_80143120(s32);
|
||||
void fn_80138D80();
|
||||
void fn_801431E0();
|
||||
void fn_8013AD50();
|
||||
bool shouldDrawFootprints() const;
|
||||
|
||||
void zoomIn();
|
||||
@@ -614,6 +631,7 @@ private:
|
||||
void setCursorType();
|
||||
|
||||
void setupFlags();
|
||||
void setupStage();
|
||||
|
||||
void loadTextboxes();
|
||||
|
||||
@@ -698,11 +716,15 @@ private:
|
||||
|
||||
/* 0x8C60 */ s32 mMaxBeaconCount;
|
||||
/* 0x8C64 */ s32 field_0x8C64;
|
||||
/* 0x8C68 */ s32 field_0x8C68;
|
||||
/* 0x8C68 */ s32 mRoomType;
|
||||
/* 0x8C6C */ s32 mAreaGroup;
|
||||
/* 0x8C70 */ u32 field_0x8C70;
|
||||
|
||||
/* 0x8C74 */ u8 _0x8C74[0x8C88 - 0x8C74];
|
||||
/* 0x8C74 */ u8 _0x8C74[0x8C7C - 0x8C74];
|
||||
/* 0x8C7C */ f32 field_0x8C7C;
|
||||
/* 0x8C80 */ f32 field_0x8C80;
|
||||
|
||||
/* 0x8C84 */ u8 _0x8C84[0x8C88 - 0x8C84];
|
||||
|
||||
/* 0x8C88 */ f32 field_0x8C88;
|
||||
/* 0x8C8C */ f32 field_0x8C8C;
|
||||
|
||||
+178
-36
@@ -2366,6 +2366,120 @@ void dLytMapMain_c::build() {
|
||||
fn_80143300();
|
||||
}
|
||||
|
||||
void dLytMapMain_c::loadStageProperties() {
|
||||
mAreaGroup = getAreaGroup(dStageMgr_c::GetInstance()->getSTIFArea());
|
||||
mRoomType = getRoomType();
|
||||
|
||||
// Yes, it does need to be written this way, otherwise the catch-all else
|
||||
// branch is collapsed with the other ones.
|
||||
|
||||
if (mRoomType == ROOMTYPE_FIELD) {
|
||||
mCurrentMapMode = dLytMapGlobal_c::MAPMODE_ZOOM;
|
||||
return;
|
||||
}
|
||||
|
||||
if (mRoomType == ROOMTYPE_DUNGEON) {
|
||||
mCurrentMapMode = dLytMapGlobal_c::MAPMODE_STAGE;
|
||||
return;
|
||||
}
|
||||
|
||||
if (mRoomType == ROOMTYPE_SKYLOFT) {
|
||||
mCurrentMapMode = dLytMapGlobal_c::MAPMODE_STAGE;
|
||||
return;
|
||||
}
|
||||
|
||||
if (mRoomType == ROOMTYPE_BOSS_HOUSE) {
|
||||
mCurrentMapMode = dLytMapGlobal_c::MAPMODE_STAGE;
|
||||
return;
|
||||
}
|
||||
|
||||
mCurrentMapMode = dLytMapGlobal_c::MAPMODE_STAGE;
|
||||
}
|
||||
|
||||
void dLytMapMain_c::setupStage() {
|
||||
loadStageProperties();
|
||||
if (field_0x8C94 == 10) {
|
||||
mLyt.findPane("N_skyloft_00")->SetVisible(false);
|
||||
}
|
||||
|
||||
mAnmGroups[MAP_MAIN_ANIM_PLAYER_2_PATTERN].bind(false);
|
||||
if (dAcPy_c::getCurrentTunicType() == 1) {
|
||||
mAnmGroups[MAP_MAIN_ANIM_PLAYER_2_PATTERN].setFrame(1.0f);
|
||||
} else {
|
||||
mAnmGroups[MAP_MAIN_ANIM_PLAYER_2_PATTERN].setFrame(0.0f);
|
||||
}
|
||||
|
||||
if (mRoomType == ROOMTYPE_SKYLOFT ||
|
||||
(mAreaGroup == AREAGROUP_SKY && (mRoomType == ROOMTYPE_BOSS_HOUSE || mRoomType == ROOMTYPE_SKYFIELD_INTERIOR ||
|
||||
mRoomType == ROOMTYPE_DUNGEON))) {
|
||||
mAnmGroups[MAP_MAIN_ANIM_SUN_ROTE].bind(false);
|
||||
}
|
||||
|
||||
s32 type = 0;
|
||||
mAnmGroups[MAP_MAIN_ANIM_TYPE].bind(false);
|
||||
if (dScGame_c::currentSpawnInfo.getTrial() == SpawnInfo::TRIAL) {
|
||||
type = 8;
|
||||
} else if (mAreaGroup == AREAGROUP_FARON || mAreaGroup == AREAGROUP_SEALED_GROUNDS) {
|
||||
if (dStageMgr_c::GetInstance()->getSTIFArea() == dStageMgr_c::STIF_AREA_SEALED_GROUNDS) {
|
||||
type = 7;
|
||||
} else if (mRoomType == ROOMTYPE_FIELD) {
|
||||
type = 1;
|
||||
} else {
|
||||
type = 2;
|
||||
}
|
||||
} else if (mAreaGroup == AREAGROUP_ELDIN) {
|
||||
if (mRoomType == ROOMTYPE_FIELD) {
|
||||
type = 3;
|
||||
} else {
|
||||
type = 4;
|
||||
}
|
||||
} else if (mAreaGroup == AREAGROUP_LANAYRU) {
|
||||
if (mRoomType == ROOMTYPE_FIELD) {
|
||||
type = 5;
|
||||
} else {
|
||||
type = 6;
|
||||
}
|
||||
} else if (mAreaGroup == AREAGROUP_SKY) {
|
||||
if (dStageMgr_c::GetInstance()->getSTIFRoomType() == dStageMgr_c::STIF_ROOMTYPE_DUNGEON) {
|
||||
type = 11;
|
||||
} else {
|
||||
// TODO - probably an enum but this matches too
|
||||
type = 9;
|
||||
if (dScGame_c::currentSpawnInfo.getTimeOfDay() == SpawnInfo::NIGHT) {
|
||||
type = 10;
|
||||
}
|
||||
}
|
||||
}
|
||||
mAnmGroups[MAP_MAIN_ANIM_TYPE].setFrame(type);
|
||||
mLyt.calc();
|
||||
mAnmGroups[MAP_MAIN_ANIM_TYPE].unbind();
|
||||
|
||||
field_0x8C7C = 0.0f;
|
||||
field_0x8C80 = 0.0f;
|
||||
mAnmGroups[MAP_MAIN_ANIM_IN].bind(false);
|
||||
mAnmGroups[MAP_MAIN_ANIM_IN].setFrame(0.0f);
|
||||
mAnmGroups[MAP_MAIN_ANIM_MAP_V].bind(false);
|
||||
fn_801431E0();
|
||||
mLyt.calc();
|
||||
mAnmGroups[MAP_MAIN_ANIM_MAP_V].unbind();
|
||||
mAnmGroups[MAP_MAIN_ANIM_IN].unbind();
|
||||
if (mRoomType == ROOMTYPE_BOSS_HOUSE || mRoomType == ROOMTYPE_SKYFIELD_INTERIOR) {
|
||||
mLyt.findPane("N_houkoul_00")->SetVisible(false);
|
||||
}
|
||||
if (field_0x8C94 != 10) {
|
||||
loadTextboxes();
|
||||
}
|
||||
fn_8013AD50();
|
||||
}
|
||||
|
||||
void dLytMapMain_c::remove() {
|
||||
// TODO - ...
|
||||
}
|
||||
|
||||
void dLytMapMain_c::execute() {
|
||||
// TODO - ...
|
||||
}
|
||||
|
||||
void dLytMapMain_c::draw() {
|
||||
if (!field_0x8DBF) {
|
||||
return;
|
||||
@@ -2383,7 +2497,7 @@ void dLytMapMain_c::draw() {
|
||||
mMarkers.draw();
|
||||
}
|
||||
|
||||
if (field_0x8C68 != 3 && field_0x8C68 != 5 && field_0x8C94 != 2) {
|
||||
if (mRoomType != ROOMTYPE_BOSS_HOUSE && mRoomType != ROOMTYPE_SKYFIELD_INTERIOR && field_0x8C94 != 2) {
|
||||
mPinIconAggregate.draw();
|
||||
}
|
||||
|
||||
@@ -2458,7 +2572,7 @@ void lytMapusesSizedWString() {
|
||||
}
|
||||
|
||||
void dLytMapMain_c::saveUnkMapData() {
|
||||
dMapSavedDataEntry &data = sSavedMapData.entries[field_0x8C68];
|
||||
dMapSavedDataEntry &data = sSavedMapData.entries[mRoomType];
|
||||
data.field_0x06 = 1;
|
||||
data.mapMode = mCurrentMapMode;
|
||||
data.mapUpDirection = mMapUpDirection;
|
||||
@@ -2478,9 +2592,9 @@ void dLytMapMain_c::initUnkMapData() {
|
||||
}
|
||||
|
||||
void dLytMapMain_c::loadUnkMapData() {
|
||||
mCurrentMapMode = sSavedMapData.entries[field_0x8C68].mapMode;
|
||||
mMapUpDirection = sSavedMapData.entries[field_0x8C68].mapUpDirection;
|
||||
mMapUpDirectionAfterZoomToDetail = sSavedMapData.entries[field_0x8C68].mapUpDirectionAfterZoomToDetail;
|
||||
mCurrentMapMode = sSavedMapData.entries[mRoomType].mapMode;
|
||||
mMapUpDirection = sSavedMapData.entries[mRoomType].mapUpDirection;
|
||||
mMapUpDirectionAfterZoomToDetail = sSavedMapData.entries[mRoomType].mapUpDirectionAfterZoomToDetail;
|
||||
mShowIslandNames = sSavedMapData.showIslandNames;
|
||||
}
|
||||
|
||||
@@ -2524,12 +2638,12 @@ void dLytMapMain_c::setButtonMessages(
|
||||
}
|
||||
|
||||
if (canZoomOut(currentMapMode) && canZoomOut(nextMapMode)) {
|
||||
if ((field_0x8C68 == 0 && currentMapMode == dLytMapGlobal_c::MAPMODE_PROVINCE) ||
|
||||
(field_0x8C68 == 2 && currentMapMode == dLytMapGlobal_c::MAPMODE_WORLD_SKY) ||
|
||||
(field_0x8C68 == 4 && currentMapMode == dLytMapGlobal_c::MAPMODE_STAGE) ||
|
||||
(field_0x8C68 == 3 && currentMapMode == dLytMapGlobal_c::MAPMODE_WORLD_SKY) ||
|
||||
(field_0x8C68 == 5 && currentMapMode == dLytMapGlobal_c::MAPMODE_STAGE) ||
|
||||
(field_0x8C68 == 1 && currentMapMode == dLytMapGlobal_c::MAPMODE_PROVINCE)) {
|
||||
if ((mRoomType == ROOMTYPE_FIELD && currentMapMode == dLytMapGlobal_c::MAPMODE_PROVINCE) ||
|
||||
(mRoomType == ROOMTYPE_SKYLOFT && currentMapMode == dLytMapGlobal_c::MAPMODE_WORLD_SKY) ||
|
||||
(mRoomType == ROOMTYPE_SKYFIELD && currentMapMode == dLytMapGlobal_c::MAPMODE_STAGE) ||
|
||||
(mRoomType == ROOMTYPE_BOSS_HOUSE && currentMapMode == dLytMapGlobal_c::MAPMODE_WORLD_SKY) ||
|
||||
(mRoomType == ROOMTYPE_SKYFIELD_INTERIOR && currentMapMode == dLytMapGlobal_c::MAPMODE_STAGE) ||
|
||||
(mRoomType == ROOMTYPE_DUNGEON && currentMapMode == dLytMapGlobal_c::MAPMODE_PROVINCE)) {
|
||||
dLytMeter_c::GetInstance()->setFlags(METER_BTN_CROSS_LEFT);
|
||||
LytDoButtonRelated::set(LytDoButtonRelated::DO_BUTTON_CROSS_L, LytDoButtonRelated::ACT_IE_ETC_WORLD_MAP);
|
||||
} else {
|
||||
@@ -2575,8 +2689,8 @@ void dLytMapMain_c::setButtonMessages(
|
||||
}
|
||||
}
|
||||
|
||||
switch (field_0x8C68) {
|
||||
case 2: {
|
||||
switch (mRoomType) {
|
||||
case ROOMTYPE_SKYLOFT: {
|
||||
if (currentMapMode == dLytMapGlobal_c::MAPMODE_ZOOM) {
|
||||
dLytMeter_c::GetInstance()->setFlags(METER_BTN_CROSS_UP);
|
||||
LytDoButtonRelated::setCrossTop(LytDoButtonRelated::ACT_IE_ETC_CURRENT_LOCATION, true);
|
||||
@@ -2598,8 +2712,8 @@ void dLytMapMain_c::setButtonMessages(
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 0:
|
||||
case 4: {
|
||||
case ROOMTYPE_FIELD:
|
||||
case ROOMTYPE_SKYFIELD: {
|
||||
if (currentMapMode == dLytMapGlobal_c::MAPMODE_ZOOM) {
|
||||
dLytMeter_c::GetInstance()->setFlags(METER_BTN_CROSS_UP);
|
||||
LytDoButtonRelated::setCrossTop(LytDoButtonRelated::ACT_IE_ETC_CURRENT_LOCATION, true);
|
||||
@@ -2621,7 +2735,7 @@ void dLytMapMain_c::setButtonMessages(
|
||||
dLytMeter_c::GetInstance()->setFlags(METER_BTN_0x4000);
|
||||
}
|
||||
|
||||
if (field_0x8C68 == 4 && mCurrentMapMode == dLytMapGlobal_c::MAPMODE_STAGE &&
|
||||
if (mRoomType == ROOMTYPE_SKYFIELD && mCurrentMapMode == dLytMapGlobal_c::MAPMODE_STAGE &&
|
||||
mNextMapMode == dLytMapGlobal_c::MAPMODE_STAGE) {
|
||||
dLytMeter_c::GetInstance()->setFlags(METER_BTN_Z);
|
||||
if (mShowIslandNames) {
|
||||
@@ -2636,7 +2750,7 @@ void dLytMapMain_c::setButtonMessages(
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 1: {
|
||||
case ROOMTYPE_DUNGEON: {
|
||||
if (currentMapMode == dLytMapGlobal_c::MAPMODE_ZOOM) {
|
||||
dLytMeter_c::GetInstance()->setFlags(METER_BTN_CROSS_UP);
|
||||
LytDoButtonRelated::setCrossTop(LytDoButtonRelated::ACT_IE_ETC_CURRENT_LOCATION, true);
|
||||
@@ -2673,7 +2787,8 @@ void dLytMapMain_c::setButtonMessages(
|
||||
|
||||
void dLytMapMain_c::setCursorType() {
|
||||
if (canCenterCursor1(mCurrentMapMode) && canCenterCursor1(mNextMapMode)) {
|
||||
if ((field_0x8C94 == 10 || ((field_0x8C68 == 3 || field_0x8C68 == 1) && mPointerOnMap)) ||
|
||||
if ((field_0x8C94 == 10 ||
|
||||
((mRoomType == ROOMTYPE_BOSS_HOUSE || mRoomType == ROOMTYPE_DUNGEON) && mPointerOnMap)) ||
|
||||
(mPointerCanPlaceBeacon && isPointingAtMainMap()) ||
|
||||
(*mPinIconAggregate.mStateMgr.getStateID() == dLytMapPinIconAggregate_c::StateID_Select) ||
|
||||
(needsNav(mCurrentMapMode) && needsNav(mNextMapMode) && mFloorBtnMgr.hasPointedAtABtnIdx())) {
|
||||
@@ -2894,7 +3009,7 @@ void dLytMapMain_c::setupFlags() {
|
||||
}
|
||||
mAnmGroups[MAP_MAIN_ANIM_KUMO_PATTERN].setFrame(titleLineFrame);
|
||||
mAnmGroups[MAP_MAIN_ANIM_MAP_V].bind(false);
|
||||
if (field_0x8C68 == 1 || field_0x8C68 == 3) {
|
||||
if (mRoomType == ROOMTYPE_DUNGEON || mRoomType == ROOMTYPE_BOSS_HOUSE) {
|
||||
if (mCurrentMapMode == dLytMapGlobal_c::MAPMODE_ZOOM) {
|
||||
mAnmGroups[MAP_MAIN_ANIM_MAP_V].setFrame(3.0f);
|
||||
}
|
||||
@@ -3030,7 +3145,8 @@ void dLytMapMain_c::setupFlags() {
|
||||
grpZAIn = &mAnmGroups[MAP_MAIN_ANIM_MAP_ZA_IN_DESERT];
|
||||
}
|
||||
|
||||
if (field_0x8C68 == 2 || (mAreaGroup == AREAGROUP_SKY && (field_0x8C68 == 3 || field_0x8C68 == 1))) {
|
||||
if (mRoomType == ROOMTYPE_SKYLOFT ||
|
||||
(mAreaGroup == AREAGROUP_SKY && (mRoomType == ROOMTYPE_BOSS_HOUSE || mRoomType == ROOMTYPE_DUNGEON))) {
|
||||
grpZIn = &mAnmGroups[MAP_MAIN_ANIM_MAP_ZA_IN_SKY_MAP_2];
|
||||
grpZAIn = &mAnmGroups[MAP_MAIN_ANIM_MAP_ZA_OUT_SKY_COURSE];
|
||||
}
|
||||
@@ -3128,7 +3244,7 @@ void dLytMapMain_c::setupFlags() {
|
||||
}
|
||||
}
|
||||
|
||||
if (field_0x8C68 == 4 || field_0x8C68 == 5) {
|
||||
if (mRoomType == ROOMTYPE_SKYFIELD || mRoomType == ROOMTYPE_SKYFIELD_INTERIOR) {
|
||||
mLyt.findPane("P_skyloftLink_00")->SetVisible(false);
|
||||
}
|
||||
|
||||
@@ -3140,7 +3256,7 @@ void dLytMapMain_c::setupFlags() {
|
||||
mPutIcon.setVisible(false);
|
||||
}
|
||||
|
||||
if (field_0x8C68 == 4) {
|
||||
if (mRoomType == ROOMTYPE_SKYFIELD) {
|
||||
if (mCurrentMapMode == dLytMapGlobal_c::MAPMODE_STAGE && mNextMapMode == dLytMapGlobal_c::MAPMODE_STAGE) {
|
||||
mMarkers.setIslandNamesOn(mShowIslandNames);
|
||||
} else if (mCurrentMapMode == dLytMapGlobal_c::MAPMODE_ZOOM && mNextMapMode == dLytMapGlobal_c::MAPMODE_ZOOM) {
|
||||
@@ -3181,8 +3297,34 @@ s32 dLytMapMain_c::getAreaGroup(s32 stifArea) const {
|
||||
return ret;
|
||||
}
|
||||
|
||||
s32 dLytMapMain_c::getRoomType() const {
|
||||
s32 ret = ROOMTYPE_FIELD;
|
||||
s32 stifRoomType = dStageMgr_c::GetInstance()->getSTIFRoomType();
|
||||
if (field_0x8C94 == 10) {
|
||||
ret = ROOMTYPE_FIELD;
|
||||
}
|
||||
|
||||
if (dScGame_c::isCurrentStage("F011r") ||
|
||||
(dScGame_c::isCurrentStage("F002r") && dScGame_c::currentSpawnInfo.isNight()) ||
|
||||
dScGame_c::isCurrentStage("F010r") || dScGame_c::isCurrentStage("F019r")) {
|
||||
ret = ROOMTYPE_SKYFIELD_INTERIOR;
|
||||
} else if (stifRoomType == dStageMgr_c::STIF_ROOMTYPE_FIELD) {
|
||||
ret = ROOMTYPE_FIELD;
|
||||
} else if (stifRoomType == dStageMgr_c::STIF_ROOMTYPE_DUNGEON) {
|
||||
ret = ROOMTYPE_DUNGEON;
|
||||
} else if (stifRoomType == dStageMgr_c::STIF_ROOMTYPE_SKYLOFT) {
|
||||
ret = ROOMTYPE_SKYLOFT;
|
||||
} else if (stifRoomType == dStageMgr_c::STIF_ROOMTYPE_BOSS_HOUSE) {
|
||||
ret = ROOMTYPE_BOSS_HOUSE;
|
||||
} else if (stifRoomType == dStageMgr_c::STIF_ROOMTYPE_SKYFIELD) {
|
||||
ret = ROOMTYPE_SKYFIELD;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
void dLytMapMain_c::zoomIn() {
|
||||
if (field_0x8C68 == 2 || (mAreaGroup == AREAGROUP_SKY && (field_0x8C68 == 3 || field_0x8C68 == 1))) {
|
||||
if (mRoomType == ROOMTYPE_SKYLOFT ||
|
||||
(mAreaGroup == AREAGROUP_SKY && (mRoomType == ROOMTYPE_BOSS_HOUSE || mRoomType == ROOMTYPE_DUNGEON))) {
|
||||
if (mCurrentMapMode == dLytMapGlobal_c::MAPMODE_WORLD) {
|
||||
if (dPad::getDownTrigRight()) {
|
||||
dSndSmallEffectMgr_c::GetInstance()->playSound(SE_S_MAP_ZOOMIN_TO_AREA);
|
||||
@@ -3208,7 +3350,7 @@ void dLytMapMain_c::zoomIn() {
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (field_0x8C68 == 4 || field_0x8C68 == 5) {
|
||||
} else if (mRoomType == ROOMTYPE_SKYFIELD || mRoomType == ROOMTYPE_SKYFIELD_INTERIOR) {
|
||||
if (mCurrentMapMode == dLytMapGlobal_c::MAPMODE_WORLD) {
|
||||
if (dPad::getDownTrigRight()) {
|
||||
dSndSmallEffectMgr_c::GetInstance()->playSound(SE_S_MAP_ZOOMIN_TO_COURSE);
|
||||
@@ -3234,7 +3376,7 @@ void dLytMapMain_c::zoomIn() {
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (field_0x8C68 == 0) {
|
||||
} else if (mRoomType == ROOMTYPE_FIELD) {
|
||||
if (mCurrentMapMode == dLytMapGlobal_c::MAPMODE_WORLD) {
|
||||
if (dPad::getDownTrigRight()) {
|
||||
dSndSmallEffectMgr_c::GetInstance()->playSound(SE_S_MAP_ZOOMIN_TO_AREA);
|
||||
@@ -3260,7 +3402,7 @@ void dLytMapMain_c::zoomIn() {
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (field_0x8C68 == 1) {
|
||||
} else if (mRoomType == ROOMTYPE_DUNGEON) {
|
||||
if (mCurrentMapMode == dLytMapGlobal_c::MAPMODE_WORLD) {
|
||||
if (dPad::getDownTrigRight()) {
|
||||
dSndSmallEffectMgr_c::GetInstance()->playSound(SE_S_MAP_ZOOMIN_TO_AREA);
|
||||
@@ -3286,7 +3428,7 @@ void dLytMapMain_c::zoomIn() {
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (field_0x8C68 == 3) {
|
||||
} else if (mRoomType == ROOMTYPE_BOSS_HOUSE) {
|
||||
if (mCurrentMapMode == dLytMapGlobal_c::MAPMODE_WORLD) {
|
||||
if (dPad::getDownTrigRight()) {
|
||||
dSndSmallEffectMgr_c::GetInstance()->playSound(SE_S_MAP_ZOOMIN_TO_AREA);
|
||||
@@ -3304,7 +3446,8 @@ void dLytMapMain_c::zoomIn() {
|
||||
}
|
||||
|
||||
void dLytMapMain_c::zoomOut() {
|
||||
if (field_0x8C68 == 2 || (mAreaGroup == AREAGROUP_SKY && (field_0x8C68 == 3 || field_0x8C68 == 1))) {
|
||||
if (mRoomType == ROOMTYPE_SKYLOFT ||
|
||||
(mAreaGroup == AREAGROUP_SKY && (mRoomType == ROOMTYPE_BOSS_HOUSE || mRoomType == ROOMTYPE_DUNGEON))) {
|
||||
if (mCurrentMapMode == dLytMapGlobal_c::MAPMODE_WORLD_SKY) {
|
||||
if (dPad::getDownTrigLeft()) {
|
||||
mNextMapMode = dLytMapGlobal_c::MAPMODE_WORLD;
|
||||
@@ -3327,7 +3470,7 @@ void dLytMapMain_c::zoomOut() {
|
||||
mStateMgr.changeState(StateID_ChgDispAreaMode_MapRot);
|
||||
}
|
||||
}
|
||||
} else if (field_0x8C68 == 4 || field_0x8C68 == 5) {
|
||||
} else if (mRoomType == ROOMTYPE_SKYFIELD || mRoomType == ROOMTYPE_SKYFIELD_INTERIOR) {
|
||||
if (mCurrentMapMode == dLytMapGlobal_c::MAPMODE_PROVINCE) {
|
||||
if (dPad::getDownTrigLeft()) {
|
||||
dSndSmallEffectMgr_c::GetInstance()->playSound(SE_S_MAP_ZOOMOUT_TO_WORLD);
|
||||
@@ -3350,7 +3493,7 @@ void dLytMapMain_c::zoomOut() {
|
||||
mStateMgr.changeState(StateID_ChgDispAreaMode_MapRot);
|
||||
}
|
||||
}
|
||||
} else if (field_0x8C68 == 0) {
|
||||
} else if (mRoomType == ROOMTYPE_FIELD) {
|
||||
if (mCurrentMapMode == dLytMapGlobal_c::MAPMODE_PROVINCE) {
|
||||
if (dPad::getDownTrigLeft()) {
|
||||
dSndSmallEffectMgr_c::GetInstance()->playSound(SE_S_MAP_ZOOMOUT_TO_WORLD);
|
||||
@@ -3373,7 +3516,7 @@ void dLytMapMain_c::zoomOut() {
|
||||
mStateMgr.changeState(StateID_ChgDispAreaMode_MapRot);
|
||||
}
|
||||
}
|
||||
} else if (field_0x8C68 == 1) {
|
||||
} else if (mRoomType == ROOMTYPE_DUNGEON) {
|
||||
if (mCurrentMapMode == dLytMapGlobal_c::MAPMODE_PROVINCE) {
|
||||
if (dPad::getDownTrigLeft()) {
|
||||
dSndSmallEffectMgr_c::GetInstance()->playSound(SE_S_MAP_ZOOMOUT_TO_WORLD);
|
||||
@@ -3396,7 +3539,7 @@ void dLytMapMain_c::zoomOut() {
|
||||
mStateMgr.changeState(StateID_ChgDispAreaMode_MapRot);
|
||||
}
|
||||
}
|
||||
} else if (field_0x8C68 == 3) {
|
||||
} else if (mRoomType == ROOMTYPE_BOSS_HOUSE) {
|
||||
if (mCurrentMapMode == dLytMapGlobal_c::MAPMODE_PROVINCE) {
|
||||
if (dPad::getDownTrigLeft()) {
|
||||
dSndSmallEffectMgr_c::GetInstance()->playSound(SE_S_MAP_ZOOMOUT_TO_WORLD);
|
||||
@@ -3420,8 +3563,7 @@ void dLytMapMain_c::executeState_Active() {
|
||||
return;
|
||||
}
|
||||
|
||||
// TODO figure out and double check numbers
|
||||
if (field_0x8C68 == 4 && mCurrentMapMode == dLytMapGlobal_c::MAPMODE_STAGE &&
|
||||
if (mRoomType == ROOMTYPE_SKYFIELD && mCurrentMapMode == dLytMapGlobal_c::MAPMODE_STAGE &&
|
||||
mNextMapMode == dLytMapGlobal_c::MAPMODE_STAGE && dPad::getDownTrigZ()) {
|
||||
if (mShowIslandNames) {
|
||||
dSndSmallEffectMgr_c::GetInstance()->playSound(SE_S_MAP_ISLAND_NAME_OFF);
|
||||
@@ -3488,8 +3630,8 @@ void dLytMapMain_c::executeState_Active() {
|
||||
(dPad::getDownTrigA() && mCurrentMapMode == dLytMapGlobal_c::MAPMODE_STAGE && canZoomIn(mCurrentMapMode)
|
||||
)) {
|
||||
zoomIn();
|
||||
} else if ((field_0x8C68 == dLytMapGlobal_c::MAPMODE_WORLD || field_0x8C68 == dLytMapGlobal_c::MAPMODE_PROVINCE ||
|
||||
field_0x8C68 == dLytMapGlobal_c::MAPMODE_WORLD_SKY || field_0x8C68 == dLytMapGlobal_c::MAPMODE_ZOOM) &&
|
||||
} else if ((mRoomType == ROOMTYPE_FIELD || mRoomType == ROOMTYPE_DUNGEON || mRoomType == ROOMTYPE_SKYLOFT ||
|
||||
mRoomType == ROOMTYPE_SKYFIELD) &&
|
||||
canResetPosition(mCurrentMapMode, mMapUpDirection) && dPad::getDownTrigUp()) {
|
||||
mVec3_c pos;
|
||||
fn_80142F00(pos, mCurrentMapMode, mMapUpDirection, global->getMapRotationCenter(), global->getField_0x56());
|
||||
|
||||
Reference in New Issue
Block a user