mirror of
https://github.com/zeldaret/ss
synced 2026-05-28 00:15:59 -04:00
More, documentation
This commit is contained in:
@@ -4279,7 +4279,7 @@ fn_800C3D90 = .text:0x800C3D90; // type:function size:0x10
|
||||
fn_800C3DA0 = .text:0x800C3DA0; // type:function size:0xB4
|
||||
fn_800C3E60 = .text:0x800C3E60; // type:function size:0x2C
|
||||
fn_800C3E90 = .text:0x800C3E90; // type:function size:0x24
|
||||
ActorEventFlowManagerRelated__checkEventFinished = .text:0x800C3EC0; // type:function size:0x20C
|
||||
checkFinished__14dFlowMgrBase_cFv = .text:0x800C3EC0; // type:function size:0x20C
|
||||
vt_0x34__11dFlowBase_cFv = .text:0x800C40D0; // type:function size:0x4
|
||||
fn_800C40E0 = .text:0x800C40E0; // type:function size:0xC
|
||||
fn_800C40F0 = .text:0x800C40F0; // type:function size:0xB4
|
||||
@@ -7857,11 +7857,11 @@ finalizeState_Invisible__13dLytMapMain_cFv = .text:0x8013B380; // type:function
|
||||
initializeState_RenderingWait__13dLytMapMain_cFv = .text:0x8013B390; // type:function size:0xC0
|
||||
executeState_RenderingWait__13dLytMapMain_cFv = .text:0x8013B450; // type:function size:0x64
|
||||
finalizeState_RenderingWait__13dLytMapMain_cFv = .text:0x8013B4C0; // type:function size:0x4
|
||||
fn_8013B4D0 = .text:0x8013B4D0; // type:function size:0xD20
|
||||
setupFlags__13dLytMapMain_cFv = .text:0x8013B4D0; // type:function size:0xD20
|
||||
initializeState_In__13dLytMapMain_cFv = .text:0x8013C1F0; // type:function size:0xF4
|
||||
executeState_In__13dLytMapMain_cFv = .text:0x8013C2F0; // type:function size:0x380
|
||||
finalizeState_In__13dLytMapMain_cFv = .text:0x8013C670; // type:function size:0x40
|
||||
fn_8013C6B0 = .text:0x8013C6B0; // type:function size:0xA8
|
||||
getAreaGroup__13dLytMapMain_cCFl = .text:0x8013C6B0; // type:function size:0xA8
|
||||
fn_8013C760 = .text:0x8013C760; // type:function size:0x100
|
||||
fn_8013C860 = .text:0x8013C860; // type:function size:0x1C
|
||||
shouldDrawFootprints__13dLytMapMain_cCFv = .text:0x8013C880; // type:function size:0x64
|
||||
@@ -8004,7 +8004,7 @@ build__9dLytMap_cFv = .text:0x801438C0; // type:function size:0x6C
|
||||
fn_80143930 = .text:0x80143930; // type:function size:0x60
|
||||
fn_80143990 = .text:0x80143990; // type:function size:0x4C
|
||||
fn_801439E0 = .text:0x801439E0; // type:function size:0x4C
|
||||
fn_80143A30 = .text:0x80143A30; // type:function size:0x70
|
||||
fn_80143A30__9dLytMap_cFv = .text:0x80143A30; // type:function size:0x70
|
||||
getName__20dLytMapFloorBtnMgr_cCFv = .text:0x80143AA0; // type:function size:0x8
|
||||
getLyt__20dLytMapFloorBtnMgr_cFv = .text:0x80143AB0; // type:function size:0x8
|
||||
getPane__20dLytMapFloorBtnMgr_cFv = .text:0x80143AC0; // type:function size:0x8
|
||||
@@ -10572,10 +10572,10 @@ isAreaTypeSky__11dStageMgr_cCFv = .text:0x80199970; // type:function size:0x2C
|
||||
isAreaTypeOverworldOrSkyloft__11dStageMgr_cCFv = .text:0x801999A0; // type:function size:0x3C
|
||||
isAreaTypeDungeonOrBoss__11dStageMgr_cCFv = .text:0x801999E0; // type:function size:0x3C
|
||||
getMapNameId__11dStageMgr_cCFv = .text:0x80199A20; // type:function size:0x20
|
||||
getSTIFbyte4__11dStageMgr_cCFv = .text:0x80199A40; // type:function size:0x20
|
||||
isSTIFbyte4_2or3or4__11dStageMgr_cCFv = .text:0x80199A60; // type:function size:0x3C
|
||||
isSTIFbyte4_5or6__11dStageMgr_cCFv = .text:0x80199AA0; // type:function size:0x3C
|
||||
isSTIFbyte4_7or8or9or10or11__11dStageMgr_cCFv = .text:0x80199AE0; // type:function size:0x3C
|
||||
getSTIFArea__11dStageMgr_cCFv = .text:0x80199A40; // type:function size:0x20
|
||||
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
|
||||
fn_80199B60 = .text:0x80199B60; // type:function size:0xC
|
||||
|
||||
@@ -193,7 +193,7 @@ struct STIF {
|
||||
/* 0x08 */ f32 defaultCullingDistance;
|
||||
/* 0x0C */ u16 flagIndex;
|
||||
/* 0x0E */ u8 areaType;
|
||||
/* 0x0F */ u8 field_0x0F;
|
||||
/* 0x0F */ u8 area;
|
||||
/* 0x10 */ u8 field_0x10;
|
||||
/* 0x11 */ u8 field_0x11;
|
||||
/* 0x12 */ s8 mapNameId;
|
||||
|
||||
@@ -135,7 +135,8 @@ public:
|
||||
|
||||
void triggerExit(s32 room, u16 exitIndex, s32 forcedNight = 2, s32 forcedTrial = 2);
|
||||
void triggerEntrance(
|
||||
const char *stageName, u8 roomid, u8 layer, u8 entrance, int forcedNight = SpawnInfo::RETAIN_TOD, int forcedTrial = SpawnInfo::RETAIN_TRIAL, u8 transitionType = dFader_c::FADER_BLACK,
|
||||
const char *stageName, u8 roomid, u8 layer, u8 entrance, int forcedNight = SpawnInfo::RETAIN_TOD,
|
||||
int forcedTrial = SpawnInfo::RETAIN_TRIAL, u8 transitionType = dFader_c::FADER_BLACK,
|
||||
u16 transitionFadeFrames = 15, s8 field0x28 = -1
|
||||
);
|
||||
// void triggerEntrance(const char *stageName, u8 room, );
|
||||
@@ -213,6 +214,10 @@ public:
|
||||
return mScreen1.fn_801BBEC0();
|
||||
}
|
||||
|
||||
void setTargetingScreenPrio(u8 prio) {
|
||||
mScreen1.setPriority(prio);
|
||||
}
|
||||
|
||||
static bool sCopyFileBToCurrentAfterRespawn;
|
||||
static bool sDoSomethingWithFileAOnTransition;
|
||||
static bool sPreventClearingSomeFlag;
|
||||
|
||||
+25
-8
@@ -59,15 +59,32 @@ public:
|
||||
bool isAreaTypeOverworldOrSkyloft() const;
|
||||
s32 getSTIFunk1() const;
|
||||
|
||||
s32 getSTIFbyte4() const;
|
||||
bool isSTIFbyte4_2or3or4() const;
|
||||
bool isSTIFbyte4_5or6() const;
|
||||
bool isSTIFbyte4_7or8or9or10or11() const;
|
||||
bool isSTIFbyte4_1() const {
|
||||
return getSTIFbyte4() == 1;
|
||||
// Individually revealed areas on the main world map
|
||||
enum StifArea_e {
|
||||
STIF_AREA_SKY = 0,
|
||||
// also applies to isle of songs, goddess statue
|
||||
STIF_AREA_SEALED_GROUNDS = 1,
|
||||
STIF_AREA_FARON_WOODS = 2,
|
||||
STIF_AREA_DEEP_WOODS = 3,
|
||||
STIF_AREA_LAKE_FLORIA = 4,
|
||||
STIF_AREA_VOLCANO_SOUTH = 5,
|
||||
STIF_AREA_VOLCANO_NORTH = 6,
|
||||
STIF_AREA_LANAYRU_MINE = 7,
|
||||
STIF_AREA_LANAYRU_DESERT = 8,
|
||||
STIF_AREA_LANAYRU_SAND_SEA = 9,
|
||||
STIF_AREA_LANAYRU_CAVES = 10,
|
||||
STIF_AREA_LANAYRU_GORGE = 11,
|
||||
};
|
||||
|
||||
s32 getSTIFArea() const;
|
||||
bool isSTIFAreaFaron() const;
|
||||
bool isSTIFAreaEldin() const;
|
||||
bool isSTIFAreaLanayru() const;
|
||||
bool isSTIFAreaSealedGrounds() const {
|
||||
return getSTIFArea() == STIF_AREA_SEALED_GROUNDS;
|
||||
}
|
||||
bool isSTIFbyte4_0() const {
|
||||
return getSTIFbyte4() == 0;
|
||||
bool isSTIFAreaSky() const {
|
||||
return getSTIFArea() == STIF_AREA_SKY;
|
||||
}
|
||||
|
||||
s32 getAreaType() const;
|
||||
|
||||
@@ -452,17 +452,17 @@ enum StoryFlags_e {
|
||||
/** [Faron Woods introductory cutscene (Behind The Temple layer 2)]
|
||||
* Story Flag #87 (0x0057) - JP 805ACD6C 0x02 / US 805A9AEC 0x02
|
||||
*/
|
||||
STORYFLAG_87,
|
||||
STORYFLAG_FARON_WOODS_DISCOVERED,
|
||||
|
||||
/** [Lake Floria Introductory Cutscene]
|
||||
* Story Flag #88 (0x0058) - JP 805ACD6C 0x04 / US 805A9AEC 0x04
|
||||
*/
|
||||
STORYFLAG_88,
|
||||
STORYFLAG_LAKE_FLORIA_DISCOVERED,
|
||||
|
||||
/** [Skyview Introductory cutscene]
|
||||
* Story Flag #89 (0x0059) - JP 805ACD6C 0x08 / US 805A9AEC 0x08
|
||||
*/
|
||||
STORYFLAG_89,
|
||||
STORYFLAG_SKYVIEW_DISCOVERED,
|
||||
|
||||
/** [Sets after the Robot upgrades your Beetle]
|
||||
* Story Flag #90 (0x005A) - JP 805ACD6F 0x80 / US 805A9AEF 0x80
|
||||
@@ -472,12 +472,12 @@ enum StoryFlags_e {
|
||||
/** [Deep Woods Introductory cutscene]
|
||||
* Story Flag #91 (0x005B) - JP 805ACD71 0x01 / US 805A9AF1 0x01
|
||||
*/
|
||||
STORYFLAG_91,
|
||||
STORYFLAG_DEEP_WOODS_DISCOVERED,
|
||||
|
||||
/** [Lanayru Desert Introductory Cutscene]
|
||||
* Story Flag #92 (0x005C) - JP 805ACD71 0x02 / US 805A9AF1 0x02
|
||||
*/
|
||||
STORYFLAG_92,
|
||||
STORYFLAG_LANAYRU_DESERT_DISCOVERED,
|
||||
|
||||
/** [Faron's Trial Gate Fi Singing Cutscene]
|
||||
* Story Flag #93 (0x005D) - JP 805ACD71 0x04 / US 805A9AF1 0x04
|
||||
@@ -793,17 +793,17 @@ enum StoryFlags_e {
|
||||
/** [Ancient Cistern Introductory Cutscene (lilypad outside AC appears) (Outside AC layer 2)]
|
||||
* Story Flag #155 (0x009B) - JP 805ACD60 0x02 / US 805A9AE0 0x02
|
||||
*/
|
||||
STORYFLAG_155,
|
||||
STORYFLAG_ANCIENT_CISTERN_DISCOVERED,
|
||||
|
||||
/** [Sandship Introductory Cutscene]
|
||||
* Story Flag #156 (0x009C) - JP 805ACD60 0x04 / US 805A9AE0 0x04
|
||||
*/
|
||||
STORYFLAG_156,
|
||||
STORYFLAG_SANDSHIP_DISCOVERED,
|
||||
|
||||
/** [Ancient Harbour Introductory Cutscene]
|
||||
* Story Flag #157 (0x009D) - JP 805ACD60 0x08 / US 805A9AE0 0x08
|
||||
*/
|
||||
STORYFLAG_157,
|
||||
STORYFLAG_ANCIENT_HARBOR_DISCOVERED,
|
||||
|
||||
/** [First Time in Sand Sea]
|
||||
* Story Flag #158 (0x009E) - JP 805ACD60 0x10 / US 805A9AE0 0x10
|
||||
@@ -813,7 +813,7 @@ enum StoryFlags_e {
|
||||
/** [Sky Keep Introductory Cutscene]
|
||||
* Story Flag #159 (0x009F) - JP 805ACD60 0x20 / US 805A9AE0 0x20
|
||||
*/
|
||||
STORYFLAG_159,
|
||||
STORYFLAG_SKY_KEEP_DISCOVERED,
|
||||
|
||||
/** [Mogma Mitts restricted by Bokoblin Base]
|
||||
* Story Flag #160 (0x00A0) - JP 805ACD60 0x80 / US 805A9AE0 0x80
|
||||
@@ -883,7 +883,7 @@ enum StoryFlags_e {
|
||||
/** [Fire Sanctuary Introductory Cutscene]
|
||||
* Story Flag #173 (0x00AD) - JP 805ACD62 0x10 / US 805A9AE2 0x10
|
||||
*/
|
||||
STORYFLAG_173,
|
||||
STORYFLAG_FIRE_SANCTUARY_DISCOVERED,
|
||||
|
||||
/** []
|
||||
* Story Flag #174 (0x00AE) - JP 805ACD62 0x20 / US 805A9AE2 0x20
|
||||
@@ -933,7 +933,7 @@ enum StoryFlags_e {
|
||||
/** [Earth Temple Introductory Cutscene]
|
||||
* Story Flag #183 (0x00B7) - JP 805ACD66 0x40 / US 805A9AE6 0x40
|
||||
*/
|
||||
STORYFLAG_183,
|
||||
STORYFLAG_EARTH_TEMPLE_DISCOVERED,
|
||||
|
||||
/** [Impa Cutscene at Bridge in Eldin]
|
||||
* Story Flag #184 (0x00B8) - JP 805ACD66 0x80 / US 805A9AE6 0x80
|
||||
@@ -1075,7 +1075,7 @@ enum StoryFlags_e {
|
||||
/** [LMF Introductory Cutscene (The loading zone to LMF now exists AND the opened Lanayru Gate of Time now appears
|
||||
* in the Harp Cutscene)] Story Flag #211 (0x00D3) - JP 805ACD70 0x80 / US 805A9AF0 0x80
|
||||
*/
|
||||
STORYFLAG_211,
|
||||
STORYFLAG_LMF_DISCOVERED,
|
||||
|
||||
/** []
|
||||
* Story Flag #212 (0x00D4) - JP 805ACD73 0x01 / US 805A9AF3 0x01
|
||||
@@ -2327,7 +2327,7 @@ enum StoryFlags_e {
|
||||
/** [Panning Camera Cutscene in Lanayru Caves showing crawlspace to Lanayru Gorge]
|
||||
* Story Flag #461 (0x01CD) - JP 805ACD8C 0x20 / US 805A9B0C 0x20
|
||||
*/
|
||||
STORYFLAG_461,
|
||||
STORYFLAG_LANAYRU_CAVES_DISCOVERED,
|
||||
|
||||
/** [Set when Thunder Dragon teaches SotH part]
|
||||
* Story Flag #462 (0x01CE) - JP 805ACD8C 0x40 / US 805A9B0C 0x40
|
||||
@@ -2442,7 +2442,7 @@ enum StoryFlags_e {
|
||||
/** [Goddess Statue falling onto the Sealed Grounds Cutscene]
|
||||
* Story Flag #484 (0x01E4) - JP 805ACD90 0x04 / US 805A9B10 0x04
|
||||
*/
|
||||
STORYFLAG_484,
|
||||
STORYFLAG_GODDESS_STATUE_FALLEN,
|
||||
|
||||
/** [Groose goes back to the Groosenator after defeating Imp 3]
|
||||
* Story Flag #485 (0x01E5) - JP 805ACD90 0x08 / US 805A9B10 0x08
|
||||
@@ -2652,7 +2652,7 @@ enum StoryFlags_e {
|
||||
/** [Lanayru Gorge Introductory Cutscene]
|
||||
* Story Flag #526 (0x020E) - JP 805ACD94 0x08 / US 805A9B14 0x08
|
||||
*/
|
||||
STORYFLAG_526,
|
||||
STORYFLAG_LANAYRU_GORGE_DISCOVERED,
|
||||
|
||||
/** [Flooded Faron Woods Introductory Cutscene]
|
||||
* Story Flag #527 (0x020F) - JP 805ACD94 0x10 / US 805A9B14 0x10
|
||||
@@ -2833,7 +2833,7 @@ enum StoryFlags_e {
|
||||
/** [Volcano Summit Introductory Cutscene]
|
||||
* Story Flag #562 (0x0232) - JP 805ACD99 0x08 / US 805A9B19 0x08
|
||||
*/
|
||||
STORYFLAG_562,
|
||||
STORYFLAG_VOLCANO_SUMMIT_DISCOVERED,
|
||||
|
||||
/** [(not implemented yet -- 74B3)]
|
||||
* Story Flag #563 (0x0233) - JP from 805ACE40 0x08 to 805ACE40 0x40 / US from 805A9BC0 0x08 to 805A9BC0 0x40
|
||||
|
||||
+32
-13
@@ -492,6 +492,10 @@ public:
|
||||
void setPosition(const mVec2_c &pos);
|
||||
void setScale(f32 scale);
|
||||
|
||||
void setVisible(bool visible) {
|
||||
mVisible = visible;
|
||||
}
|
||||
|
||||
private:
|
||||
/* 0x04 */ d2d::LytBase_c mLyt;
|
||||
/* 0x94 */ bool mVisible;
|
||||
@@ -558,11 +562,20 @@ public:
|
||||
STATE_FUNC_DECLARE(dLytMapMain_c, EventSaveObjDecide);
|
||||
|
||||
private:
|
||||
// TODO - used elsewhere?
|
||||
enum Province_e {
|
||||
PROVINCE_FARON = 0,
|
||||
PROVINCE_ELDIN = 1,
|
||||
PROVINCE_LANAYRU = 2,
|
||||
// TODO - need to come up with better names
|
||||
enum SurfaceProvince_e {
|
||||
SURFACE_PROVINCE_FARON = 0,
|
||||
SURFACE_PROVINCE_ELDIN = 1,
|
||||
SURFACE_PROVINCE_LANAYRU = 2,
|
||||
};
|
||||
|
||||
enum AreaGroup_e {
|
||||
AREAGROUP_SKY = 1,
|
||||
AREAGROUP_FARON = 2,
|
||||
AREAGROUP_ELDIN = 3,
|
||||
AREAGROUP_LANAYRU = 4,
|
||||
AREAGROUP_SEALED_GROUNDS = 5,
|
||||
AREAGROUP_MAX = 6,
|
||||
};
|
||||
|
||||
dLytMapGlobal_c *getGlobal();
|
||||
@@ -577,6 +590,8 @@ private:
|
||||
bool canPlaceBeacons(s32 mapMode) const;
|
||||
bool isPointingAtMainMap() const;
|
||||
|
||||
s32 getAreaGroup(s32 stifArea) const;
|
||||
|
||||
s32 getSelectedSaveObjIdx() const;
|
||||
|
||||
f32 fn_80142D90(s32);
|
||||
@@ -598,6 +613,8 @@ private:
|
||||
void setButtonMessages(s32 currentMapMode, bool currentUpDirection, s32 nextMapMode, bool nextUpDirection);
|
||||
void setCursorType();
|
||||
|
||||
void setupFlags();
|
||||
|
||||
void loadTextboxes();
|
||||
|
||||
void saveUnkMapData();
|
||||
@@ -660,8 +677,8 @@ private:
|
||||
/* 0x8854 */ nw4r::lyt::Pane *mpPanes[11];
|
||||
/* 0x8880 */ d2d::AnmGroup_c *field_0x8880[11]; // ???
|
||||
/* 0x88AC */ UNKWORD field_0x88AC;
|
||||
/* 0x88B0 */ nw4r::lyt::Pane *mpUnkPanes1[7];
|
||||
/* 0x88CC */ nw4r::lyt::Pane *mpUnkPanes2[7];
|
||||
/* 0x88B0 */ nw4r::lyt::Pane *mpDungeonPanes[7];
|
||||
/* 0x88CC */ nw4r::lyt::Pane *mpDungeonPics[7];
|
||||
|
||||
/* 0x88E8 */ nw4r::lyt::Pane *mpPaneBgAll01;
|
||||
/* 0x88EC */ nw4r::lyt::Pane *mpPaneBgAll02;
|
||||
@@ -682,7 +699,7 @@ private:
|
||||
/* 0x8C60 */ s32 mMaxBeaconCount;
|
||||
/* 0x8C64 */ s32 field_0x8C64;
|
||||
/* 0x8C68 */ s32 field_0x8C68;
|
||||
/* 0x8C6C */ s32 field_0x8C6C;
|
||||
/* 0x8C6C */ s32 mAreaGroup;
|
||||
/* 0x8C70 */ u32 field_0x8C70;
|
||||
|
||||
/* 0x8C74 */ u8 _0x8C74[0x8C88 - 0x8C74];
|
||||
@@ -695,7 +712,7 @@ private:
|
||||
/* 0x8C93 */ u8 field_0x8C93;
|
||||
/* 0x8C94 */ s32 field_0x8C94;
|
||||
/* 0x8C98 */ UNKWORD field_0x8C98;
|
||||
/* 0x8C9C */ s32 mProvince;
|
||||
/* 0x8C9C */ s32 mSurfaceProvince;
|
||||
|
||||
/* 0x8CA0 */ u8 _0x8CA0[0x8CA4 - 0x8CA0];
|
||||
|
||||
@@ -730,7 +747,7 @@ private:
|
||||
/* 0x8D48 */ mAng field_0x8D48;
|
||||
/* 0x8D4C */ f32 field_0x8D4C;
|
||||
/* 0x8D50 */ f32 field_0x8D50;
|
||||
/* 0x8D54 */ u8 _0x8D54[0x8D58 - 0x8D54];
|
||||
/* 0x8D54 */ s32 field_0x8D54;
|
||||
/* 0x8D58 */ s32 field_0x8D58;
|
||||
/* 0x8D5C */ UNKWORD field_0x8D5C;
|
||||
/* 0x8D60 */ s32 field_0x8D60;
|
||||
@@ -738,8 +755,8 @@ private:
|
||||
/* 0x8D68 */ mAng field_0x8D68;
|
||||
/* 0x8D6A */ u8 field_0x8D6A; // set at 0x8009e2d4
|
||||
/* 0x8D6B */ u8 field_0x8D6B;
|
||||
/* 0x8D6C */ UNKWORD field_0x8D6C;
|
||||
/* 0x8D70 */ UNKWORD field_0x8D70;
|
||||
/* 0x8D6C */ nw4r::lyt::Pane *mpRegionPane1;
|
||||
/* 0x8D70 */ nw4r::lyt::Pane *mpRegionPane2;
|
||||
/* 0x8D74 */ nw4r::lyt::Pane *mpZoomInOutPane;
|
||||
/* 0x8D78 */ f32 field_0x8D78;
|
||||
/* 0x8D7C */ f32 field_0x8D7C;
|
||||
@@ -821,9 +838,11 @@ public:
|
||||
}
|
||||
|
||||
const dMapSaveObjDefinition *getSaveObjDefinition(s32 statueIdx) const {
|
||||
return mMapMain.getSaveObjDefinition(mMapMain.mProvince, statueIdx);
|
||||
return mMapMain.getSaveObjDefinition(mMapMain.mSurfaceProvince, statueIdx);
|
||||
}
|
||||
|
||||
void fn_80143A30();
|
||||
|
||||
private:
|
||||
/* 0x0004 */ d2d::ResAccIf_c mResAcc;
|
||||
/* 0x0374 */ dLytMapMain_c mMapMain;
|
||||
|
||||
@@ -88,6 +88,10 @@ public:
|
||||
return mAlpha;
|
||||
}
|
||||
|
||||
void setAlpha(u8 alpha) {
|
||||
mAlpha = alpha;
|
||||
}
|
||||
|
||||
s32 getCurrentMapMode() const {
|
||||
return mCurrentMapMode;
|
||||
}
|
||||
|
||||
+1
-1
@@ -710,7 +710,7 @@ bool dFlow_c::handleMessage() {
|
||||
if (StoryflagManager::sInstance->getCounterOrFlag(STORYFLAG_BOSS_RUSH_ACTIVE)) {
|
||||
// "When you require my analysis..."
|
||||
v = 200;
|
||||
} else if (dStageMgr_c::GetInstance()->getSTIFbyte4() == 0) {
|
||||
} else if (dStageMgr_c::GetInstance()->getSTIFArea() == dStageMgr_c::STIF_AREA_SKY) {
|
||||
// Sky rumor
|
||||
v = cM::rndInt(30);
|
||||
} else {
|
||||
|
||||
@@ -135,15 +135,15 @@ void dLytAreaCaptionParts_c::executeState_Wait() {
|
||||
if (field_0x54C) {
|
||||
field_0x54C = false;
|
||||
s32 typeFrame = 0;
|
||||
if (dStageMgr_c::GetInstance()->isSTIFbyte4_2or3or4()) {
|
||||
if (dStageMgr_c::GetInstance()->isSTIFAreaFaron()) {
|
||||
typeFrame = 1;
|
||||
} else if (dStageMgr_c::GetInstance()->isSTIFbyte4_5or6()) {
|
||||
} else if (dStageMgr_c::GetInstance()->isSTIFAreaEldin()) {
|
||||
typeFrame = 2;
|
||||
} else if (dStageMgr_c::GetInstance()->isSTIFbyte4_7or8or9or10or11()) {
|
||||
} else if (dStageMgr_c::GetInstance()->isSTIFAreaLanayru()) {
|
||||
typeFrame = 3;
|
||||
} else if (dStageMgr_c::GetInstance()->isSTIFbyte4_1()) {
|
||||
} else if (dStageMgr_c::GetInstance()->isSTIFAreaSealedGrounds()) {
|
||||
typeFrame = 4;
|
||||
} else if (dStageMgr_c::GetInstance()->isSTIFbyte4_0()) {
|
||||
} else if (dStageMgr_c::GetInstance()->isSTIFAreaSky()) {
|
||||
typeFrame = 5;
|
||||
}
|
||||
|
||||
|
||||
+571
-28
@@ -10,6 +10,7 @@
|
||||
#include "d/d_cs_game.h"
|
||||
#include "d/d_cursor_hit_check.h"
|
||||
#include "d/d_d2d.h"
|
||||
#include "d/d_fader.h"
|
||||
#include "d/d_message.h"
|
||||
#include "d/d_pad.h"
|
||||
#include "d/d_pad_nav.h"
|
||||
@@ -17,6 +18,7 @@
|
||||
#include "d/d_rumble.h"
|
||||
#include "d/d_sc_game.h"
|
||||
#include "d/d_stage.h"
|
||||
#include "d/d_stage_mgr.h"
|
||||
#include "d/flag/sceneflag_manager.h"
|
||||
#include "d/flag/storyflag_manager.h"
|
||||
#include "d/lyt/d2d.h"
|
||||
@@ -1909,7 +1911,7 @@ dLytMapMain_c::dLytMapMain_c()
|
||||
mFlowMgr(&mFlow),
|
||||
mFloorBtnMgr(&mGlobal),
|
||||
mFootPrints(&mGlobal),
|
||||
field_0x8C6C(0),
|
||||
mAreaGroup(0),
|
||||
mMapUpDirectionAfterZoomToDetail(true),
|
||||
field_0x8C93(0),
|
||||
field_0x8C94(0),
|
||||
@@ -1929,8 +1931,8 @@ dLytMapMain_c::dLytMapMain_c()
|
||||
field_0x8D68(0),
|
||||
field_0x8D6A(0),
|
||||
field_0x8D6B(0),
|
||||
field_0x8D6C(0),
|
||||
field_0x8D70(0),
|
||||
mpRegionPane1(nullptr),
|
||||
mpRegionPane2(nullptr),
|
||||
field_0x8DB0(0),
|
||||
mNavEnabled(false),
|
||||
mDrawScaleFrame(false),
|
||||
@@ -2150,6 +2152,24 @@ static const d2d::LytBrlanMapping sMapMainBrlanMap[] = {
|
||||
#define MAP_MAIN_ANIM_SKYLOFT_UP_DOWN 19
|
||||
#define MAP_MAIN_ANIM_LINK_POSITION_LIGHT 20
|
||||
|
||||
#define MAP_MAIN_ANIM_MAP_Z_IN_FOREST 21
|
||||
#define MAP_MAIN_ANIM_MAP_Z_WAKU_IN 22
|
||||
|
||||
#define MAP_MAIN_ANIM_MAP_Z_IN_PLANT 25
|
||||
|
||||
#define MAP_MAIN_ANIM_MAP_ZA_IN_PLANT 27
|
||||
|
||||
#define MAP_MAIN_ANIM_MAP_Z_IN_DESERT 29
|
||||
|
||||
#define MAP_MAIN_ANIM_MAP_Z_IN_VOLCANO 31
|
||||
|
||||
#define MAP_MAIN_ANIM_MAP_ZA_IN_FOREST 36
|
||||
#define MAP_MAIN_ANIM_MAP_ZA_IN_DESERT 37
|
||||
#define MAP_MAIN_ANIM_MAP_ZA_IN_VOLCANO 38
|
||||
|
||||
#define MAP_MAIN_ANIM_MAP_ZA_IN_SKY_MAP_2 41
|
||||
#define MAP_MAIN_ANIM_MAP_ZA_OUT_SKY_COURSE 44
|
||||
|
||||
#define MAP_MAIN_ANIM_SUN_ROTE 45
|
||||
#define MAP_MAIN_ANIM_IN_NO_CAM 46
|
||||
#define MAP_MAIN_ANIM_OUT_NO_CAM 47
|
||||
@@ -2182,11 +2202,11 @@ static const char *sPaneNames[] = {
|
||||
"N_lName_00", "N_gName_02", "N_gName_01", "N_nVname_00", "N_gName_00",
|
||||
};
|
||||
|
||||
static const char *sPaneNamesUnk1[] = {
|
||||
static const char *sDungeonPaneNames[] = {
|
||||
"N_fD1_00", "N_vD1_00", "N_dD1_00", "N_fD2_00", "N_dD2_00", "N_vD2_00", "N_lastD_00",
|
||||
};
|
||||
|
||||
static const char *sPaneNamesUnk2[] = {
|
||||
static const char *sDungeonPicNames[] = {
|
||||
"P_fD1_00", "P_vD1_00", "P_dD1_00", "P_fD2_00", "P_dD2_00", "P_vD2_00", "P_lastD_00",
|
||||
};
|
||||
|
||||
@@ -2287,17 +2307,17 @@ void dLytMapMain_c::build() {
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < (int)ARRAY_LENGTH(sPaneNamesUnk1); i++) {
|
||||
if (sPaneNamesUnk1[i] != nullptr) {
|
||||
mpUnkPanes1[i] = mLyt.findPane(sPaneNamesUnk1[i]);
|
||||
for (int i = 0; i < (int)ARRAY_LENGTH(sDungeonPaneNames); i++) {
|
||||
if (sDungeonPaneNames[i] != nullptr) {
|
||||
mpDungeonPanes[i] = mLyt.findPane(sDungeonPaneNames[i]);
|
||||
} else {
|
||||
mpUnkPanes1[i] = nullptr;
|
||||
mpDungeonPanes[i] = nullptr;
|
||||
}
|
||||
|
||||
if (sPaneNamesUnk2[i] != nullptr) {
|
||||
mpUnkPanes2[i] = mLyt.findPane(sPaneNamesUnk2[i]);
|
||||
if (sDungeonPicNames[i] != nullptr) {
|
||||
mpDungeonPics[i] = mLyt.findPane(sDungeonPicNames[i]);
|
||||
} else {
|
||||
mpUnkPanes2[i] = nullptr;
|
||||
mpDungeonPics[i] = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2399,15 +2419,15 @@ s32 dLytMapMain_c::getSelectedSaveObjIdx() const {
|
||||
bool has = false;
|
||||
s32 start;
|
||||
s32 end;
|
||||
if (field_0x8C6C == 2) {
|
||||
if (mAreaGroup == AREAGROUP_FARON) {
|
||||
start = 5;
|
||||
end = 14;
|
||||
has = true;
|
||||
} else if (field_0x8C6C == 3) {
|
||||
} else if (mAreaGroup == AREAGROUP_ELDIN) {
|
||||
start = 15;
|
||||
end = 20;
|
||||
has = true;
|
||||
} else if (field_0x8C6C == 4) {
|
||||
} else if (mAreaGroup == AREAGROUP_LANAYRU) {
|
||||
start = 21;
|
||||
end = 32;
|
||||
has = true;
|
||||
@@ -2733,12 +2753,436 @@ void dLytMapMain_c::initializeState_RenderingWait() {}
|
||||
void dLytMapMain_c::executeState_RenderingWait() {}
|
||||
void dLytMapMain_c::finalizeState_RenderingWait() {}
|
||||
|
||||
struct dLytMapStoryflagPaneMapping {
|
||||
/* 0x00 */ s32 storyFlag;
|
||||
/* 0x04 */ const char *paneName;
|
||||
};
|
||||
|
||||
static const dLytMapStoryflagPaneMapping sStoryflagPaneMap[] = {
|
||||
{ STORYFLAG_FARON_PILLAR_OPENED, "N_forestP_00"},
|
||||
{ STORYFLAG_ELDIN_PILLAR_OPENED, "N_volcanoP_00"},
|
||||
{ STORYFLAG_LANAYRU_PILLAR_OPENED, "N_desertP_00"},
|
||||
{ STORYFLAG_FARON_DISCOVERED, "N_toForest_00"},
|
||||
{ STORYFLAG_ELDIN_DISCOVERED, "N_toVolcano_00"},
|
||||
{ STORYFLAG_LANAYRU_DISCOVERED, "N_toDesert_00"},
|
||||
{ STORYFLAG_ISLE_OF_SONGS_DISCOVERED, "N_utaN_00"},
|
||||
{STORYFLAG_FUN_FUN_ISLAND_DISCOVERED, "N_ruretouN_00"},
|
||||
{ STORYFLAG_LUMPY_PUMPKIN_DISCOVERED, "N_pampkinN_00"},
|
||||
{ STORYFLAG_BEEDLE_ISLAND_DISCOVERED, "N_teryN_00"},
|
||||
{ STORYFLAG_BAMBOO_ISLAND_DISCOVERED, "N_tikurinN_00"},
|
||||
{ STORYFLAG_BUG_HAVEN_DISCOVERED, "N_musiN_00"},
|
||||
{ STORYFLAG_ISLE_OF_SONGS_DISCOVERED, "N_utaI_00"},
|
||||
{STORYFLAG_FUN_FUN_ISLAND_DISCOVERED, "N_ruretouI_00"},
|
||||
{ STORYFLAG_LUMPY_PUMPKIN_DISCOVERED, "N_pampkinI_00"},
|
||||
{ STORYFLAG_BEEDLE_ISLAND_DISCOVERED, "N_teryI_00"},
|
||||
{ STORYFLAG_BAMBOO_ISLAND_DISCOVERED, "N_tikurinI_00"},
|
||||
{ STORYFLAG_BUG_HAVEN_DISCOVERED, "N_musiI_00"},
|
||||
{STORYFLAG_BILOCYCTE_FIGHT_TRIGGERED, "N_nushi_00"},
|
||||
};
|
||||
|
||||
// 255 is a placeholder for "no flag", despite it corresponding to an actual story flag...
|
||||
static const s32 sFlagsRenameMe[] = {
|
||||
255, STORYFLAG_FARON_PILLAR_OPENED, STORYFLAG_ELDIN_PILLAR_OPENED, STORYFLAG_LANAYRU_PILLAR_OPENED,
|
||||
STORYFLAG_THUNDERHEAD_ENTERED
|
||||
};
|
||||
|
||||
// Not sure what the second number means
|
||||
static const s32 sFlags2RenameMe[][2] = {
|
||||
{ STORYFLAG_FARON_DISCOVERED, 5},
|
||||
{ STORYFLAG_FARON_WOODS_DISCOVERED, 2},
|
||||
{ STORYFLAG_DEEP_WOODS_DISCOVERED, 2},
|
||||
{ STORYFLAG_ELDIN_DISCOVERED, 3},
|
||||
{ STORYFLAG_LANAYRU_DISCOVERED, 4},
|
||||
{STORYFLAG_LANAYRU_DESERT_DISCOVERED, 4},
|
||||
{ STORYFLAG_LAKE_FLORIA_DISCOVERED, 2},
|
||||
{ STORYFLAG_LANAYRU_CAVES_DISCOVERED, 4},
|
||||
{STORYFLAG_ANCIENT_HARBOR_DISCOVERED, 4},
|
||||
{STORYFLAG_VOLCANO_SUMMIT_DISCOVERED, 3},
|
||||
{ STORYFLAG_LANAYRU_GORGE_DISCOVERED, 4},
|
||||
};
|
||||
|
||||
static const s32 sDungeonDiscoveredFlags[] = {
|
||||
STORYFLAG_SKYVIEW_DISCOVERED, STORYFLAG_EARTH_TEMPLE_DISCOVERED, STORYFLAG_LMF_DISCOVERED,
|
||||
STORYFLAG_ANCIENT_CISTERN_DISCOVERED, STORYFLAG_SANDSHIP_DISCOVERED, STORYFLAG_FIRE_SANCTUARY_DISCOVERED,
|
||||
STORYFLAG_SKY_KEEP_DISCOVERED,
|
||||
};
|
||||
|
||||
static const char *sAreaPicNamesL[] = {
|
||||
"P_plainL_00", "P_forestL_00", "P_nForestL_00", "P_sVolcanoL_00", "P_mineL_00", "P_desertL_00",
|
||||
"P_lakeL_00", "P_glenL_00", "P_seaL_00", "P_nVolcanoL_00", "P_skyloftL_00", "P_glenL_01",
|
||||
};
|
||||
|
||||
static const char *sAreaPicNamesLink[] = {
|
||||
"P_plainLink_00", "P_forestLink_00", "P_nForestLink_00", "P_sVolLink_00", "P_mineLink_00", "P_desertLink_00",
|
||||
"P_lakeLink_00", "P_glenLink_00", "P_seaLink_00", "P_nVolLink_00", "P_skyloftLink_00", "P_glenLink_01",
|
||||
};
|
||||
|
||||
#define MAP_MAIN_AREA_PIC_PLAIN 0
|
||||
#define MAP_MAIN_AREA_PIC_FOREST 1
|
||||
#define MAP_MAIN_AREA_PIC_N_FOREST 2
|
||||
#define MAP_MAIN_AREA_PIC_S_VOLCANO 3
|
||||
#define MAP_MAIN_AREA_PIC_MINE 4
|
||||
#define MAP_MAIN_AREA_PIC_DESERT 5
|
||||
#define MAP_MAIN_AREA_PIC_LACE 6
|
||||
#define MAP_MAIN_AREA_PIC_GLEN_00 7
|
||||
#define MAP_MAIN_AREA_PIC_SEA 8
|
||||
#define MAP_MAIN_AREA_PIC_N_VOLCANO 9
|
||||
#define MAP_MAIN_AREA_PIC_SKYLOFT 10
|
||||
#define MAP_MAIN_AREA_PIC_GLEN_01 11
|
||||
|
||||
#define MAP_MAIN_NUM_AREA_PICS 12
|
||||
|
||||
void dLytMapMain_c::setupFlags() {
|
||||
if (field_0x8C94 == 4 || field_0x8C94 == 6) {
|
||||
field_0x8DBE = 0;
|
||||
} else {
|
||||
field_0x8DBE = -1;
|
||||
}
|
||||
field_0x8D6B = 0;
|
||||
field_0x8D6A = 0;
|
||||
|
||||
mpAllPane->SetVisible(true);
|
||||
s32 currentRegion;
|
||||
switch (dStageMgr_c::GetInstance()->getSTIFArea()) {
|
||||
default: currentRegion = MAP_MAIN_AREA_PIC_SKYLOFT; break;
|
||||
case dStageMgr_c::STIF_AREA_SEALED_GROUNDS: currentRegion = MAP_MAIN_AREA_PIC_PLAIN; break;
|
||||
case dStageMgr_c::STIF_AREA_FARON_WOODS: currentRegion = MAP_MAIN_AREA_PIC_FOREST; break;
|
||||
case dStageMgr_c::STIF_AREA_DEEP_WOODS: currentRegion = MAP_MAIN_AREA_PIC_N_FOREST; break;
|
||||
case dStageMgr_c::STIF_AREA_LAKE_FLORIA: currentRegion = MAP_MAIN_AREA_PIC_LACE; break;
|
||||
case dStageMgr_c::STIF_AREA_VOLCANO_SOUTH: currentRegion = MAP_MAIN_AREA_PIC_S_VOLCANO; break;
|
||||
case dStageMgr_c::STIF_AREA_VOLCANO_NORTH: currentRegion = MAP_MAIN_AREA_PIC_N_VOLCANO; break;
|
||||
case dStageMgr_c::STIF_AREA_LANAYRU_MINE: currentRegion = MAP_MAIN_AREA_PIC_MINE; break;
|
||||
case dStageMgr_c::STIF_AREA_LANAYRU_DESERT: currentRegion = MAP_MAIN_AREA_PIC_DESERT; break;
|
||||
case dStageMgr_c::STIF_AREA_LANAYRU_SAND_SEA: currentRegion = MAP_MAIN_AREA_PIC_SEA; break;
|
||||
case dStageMgr_c::STIF_AREA_LANAYRU_CAVES: currentRegion = MAP_MAIN_AREA_PIC_GLEN_00; break;
|
||||
case dStageMgr_c::STIF_AREA_LANAYRU_GORGE: currentRegion = MAP_MAIN_AREA_PIC_GLEN_01; break;
|
||||
}
|
||||
// TODO - regswap between i and ok
|
||||
for (int i = 0; i < (int)ARRAY_LENGTH(sStoryflagPaneMap); i++) {
|
||||
nw4r::lyt::Pane *p = mLyt.findPane(sStoryflagPaneMap[i].paneName);
|
||||
bool ok = StoryflagManager::sInstance->getFlag(sStoryflagPaneMap[i].storyFlag) != 0;
|
||||
if (i >= 0 && i < 6 && (dScGame_c::isCurrentStage("F403") || dScGame_c::isCurrentStage("F404"))) {
|
||||
// If we're in the past, light pillars aren't a thing
|
||||
ok = false;
|
||||
}
|
||||
if (ok) {
|
||||
p->SetVisible(true);
|
||||
} else {
|
||||
p->SetVisible(false);
|
||||
}
|
||||
}
|
||||
|
||||
if (StoryflagManager::sInstance->getFlag(STORYFLAG_BILOCYCTE_FIGHT_TRIGGERED)) {
|
||||
mAnmGroups[MAP_MAIN_ANIM_NUSHI_LOOP].bind(false);
|
||||
}
|
||||
mAnmGroups[MAP_MAIN_ANIM_KUMO_PATTERN].bind(false);
|
||||
|
||||
f32 titleLineFrame = 4.0f;
|
||||
// TODO - lots of regswaps
|
||||
for (int i = ARRAY_LENGTH(sFlagsRenameMe) - 1; i >= 0; i--) {
|
||||
s32 flag = sFlagsRenameMe[i];
|
||||
// This might be an inline...
|
||||
bool doBreak = true;
|
||||
bool flagSet = flag != 255 && StoryflagManager::sInstance->getCounterOrFlag(flag);
|
||||
if (!flagSet && flag != 255) {
|
||||
doBreak = false;
|
||||
}
|
||||
if (doBreak) {
|
||||
break;
|
||||
}
|
||||
titleLineFrame -= 1.0f;
|
||||
}
|
||||
mAnmGroups[MAP_MAIN_ANIM_KUMO_PATTERN].setFrame(titleLineFrame);
|
||||
mAnmGroups[MAP_MAIN_ANIM_MAP_V].bind(false);
|
||||
if (field_0x8C68 == 1 || field_0x8C68 == 3) {
|
||||
if (mCurrentMapMode == dLytMapGlobal_c::MAPMODE_ZOOM) {
|
||||
mAnmGroups[MAP_MAIN_ANIM_MAP_V].setFrame(3.0f);
|
||||
}
|
||||
if (mCurrentMapMode == dLytMapGlobal_c::MAPMODE_STAGE) {
|
||||
mAnmGroups[MAP_MAIN_ANIM_MAP_V].setFrame(2.0f);
|
||||
}
|
||||
}
|
||||
|
||||
field_0x8880[0] = &mAnmGroups[MAP_MAIN_ANIM_DRAW_PLAIN];
|
||||
field_0x8880[1] = &mAnmGroups[MAP_MAIN_ANIM_DRAW_FOREST];
|
||||
field_0x8880[2] = &mAnmGroups[MAP_MAIN_ANIM_DRAW_N_FOREST];
|
||||
field_0x8880[3] = &mAnmGroups[MAP_MAIN_ANIM_DRAW_S_VOLCANO];
|
||||
field_0x8880[4] = &mAnmGroups[MAP_MAIN_ANIM_DRAW_MINE];
|
||||
field_0x8880[5] = &mAnmGroups[MAP_MAIN_ANIM_DRAW_DESERT];
|
||||
field_0x8880[6] = &mAnmGroups[MAP_MAIN_ANIM_DRAW_LAKE];
|
||||
field_0x8880[7] = &mAnmGroups[MAP_MAIN_ANIM_DRAW_GLEN_01];
|
||||
field_0x8880[8] = &mAnmGroups[MAP_MAIN_ANIM_DRAW_SEA];
|
||||
field_0x8880[9] = &mAnmGroups[MAP_MAIN_ANIM_DRAW_N_VOLCANO];
|
||||
field_0x8880[10] = &mAnmGroups[MAP_MAIN_ANIM_DRAW_GLEN_00];
|
||||
|
||||
for (int i = 0; i < (int)ARRAY_LENGTH(field_0x8880); i++) {
|
||||
if (field_0x8880[i] != nullptr) {
|
||||
field_0x8880[i]->bind(false);
|
||||
field_0x8880[i]->setToEnd();
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < (int)ARRAY_LENGTH(mpPanes); i++) {
|
||||
if (mpPanes[i] != nullptr) {
|
||||
mpPanes[i]->SetVisible(true);
|
||||
}
|
||||
}
|
||||
|
||||
field_0x88AC = -1;
|
||||
|
||||
for (int i = ARRAY_LENGTH(sFlags2RenameMe) - 1; i >= 0; i--) {
|
||||
s32 flag = sFlags2RenameMe[i][0];
|
||||
bool flagSet = flag != 255 && StoryflagManager::sInstance->getCounterOrFlag(flag);
|
||||
if (flagSet) {
|
||||
field_0x88AC = i;
|
||||
break;
|
||||
}
|
||||
if (mpPanes[i] != nullptr) {
|
||||
mpPanes[i]->SetVisible(false);
|
||||
}
|
||||
if (field_0x8880[i] != nullptr) {
|
||||
field_0x8880[i]->setFrame(0.0f);
|
||||
}
|
||||
}
|
||||
|
||||
if (field_0x8C94 == 3) {
|
||||
if (field_0x88AC < 0) {
|
||||
field_0x88AC = 0;
|
||||
}
|
||||
if (field_0x88AC >= 0) {
|
||||
if (mpPanes[field_0x88AC] != nullptr) {
|
||||
mpPanes[field_0x88AC]->SetVisible(true);
|
||||
}
|
||||
if (field_0x8880[field_0x88AC] != nullptr) {
|
||||
field_0x8880[field_0x88AC]->setFrame(0.0f);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < (int)ARRAY_LENGTH(sDungeonDiscoveredFlags); i++) {
|
||||
if (mpDungeonPanes[i] != nullptr) {
|
||||
mpDungeonPanes[i]->SetVisible(true);
|
||||
}
|
||||
if (mpDungeonPics[i] != nullptr) {
|
||||
mpDungeonPics[i]->SetVisible(true);
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = ARRAY_LENGTH(sDungeonDiscoveredFlags) - 1; i >= 0; i--) {
|
||||
s32 flag = sDungeonDiscoveredFlags[i];
|
||||
bool flagSet = flag != 255 && StoryflagManager::sInstance->getCounterOrFlag(flag);
|
||||
if (flagSet) {
|
||||
break;
|
||||
}
|
||||
if (mpDungeonPanes[i] != nullptr) {
|
||||
mpDungeonPanes[i]->SetVisible(false);
|
||||
}
|
||||
if (mpDungeonPics[i] != nullptr) {
|
||||
mpDungeonPics[i]->SetVisible(false);
|
||||
}
|
||||
}
|
||||
|
||||
if (StoryflagManager::sInstance->getCounterOrFlag(STORYFLAG_TRIFORCE_COMPLETE) &&
|
||||
!dScGame_c::isCurrentStage("F403") && !dScGame_c::isCurrentStage("F404")) {
|
||||
if (mpDungeonPanes[6] != nullptr) {
|
||||
mpDungeonPanes[6]->SetVisible(false);
|
||||
}
|
||||
if (mpDungeonPics[6] != nullptr) {
|
||||
mpDungeonPics[6]->SetVisible(false);
|
||||
}
|
||||
}
|
||||
|
||||
mAnmGroups[MAP_MAIN_ANIM_WORLD_STATE].bind(false);
|
||||
|
||||
if (StoryflagManager::sInstance->getCounterOrFlag(STORYFLAG_TRIFORCE_COMPLETE) &&
|
||||
!dScGame_c::isCurrentStage("F403") && !dScGame_c::isCurrentStage("F404")) {
|
||||
mAnmGroups[MAP_MAIN_ANIM_WORLD_STATE].setFrame(1.0f);
|
||||
} else {
|
||||
mAnmGroups[MAP_MAIN_ANIM_WORLD_STATE].setFrame(0.0f);
|
||||
}
|
||||
mLyt.getLayout()->Animate(0);
|
||||
mLyt.calc();
|
||||
|
||||
if (mAnmGroups[MAP_MAIN_ANIM_WORLD_STATE].isBound()) {
|
||||
mAnmGroups[MAP_MAIN_ANIM_WORLD_STATE].unbind();
|
||||
}
|
||||
|
||||
for (int i = 0; i < 11; i++) {
|
||||
if (field_0x8880[i] != nullptr) {
|
||||
field_0x8880[i]->unbind();
|
||||
}
|
||||
}
|
||||
|
||||
mAnmGroups[MAP_MAIN_ANIM_LINK_POSITION_LIGHT].bind(false);
|
||||
mAnmGroups[MAP_MAIN_ANIM_ROTATE].bind(false);
|
||||
|
||||
d2d::AnmGroup_c *grpZIn = &mAnmGroups[MAP_MAIN_ANIM_MAP_Z_IN_FOREST];
|
||||
d2d::AnmGroup_c *grpZAIn = &mAnmGroups[MAP_MAIN_ANIM_MAP_ZA_IN_FOREST];
|
||||
d2d::AnmGroup_c *grpZWakuIn = &mAnmGroups[MAP_MAIN_ANIM_MAP_Z_WAKU_IN];
|
||||
if (mAreaGroup == AREAGROUP_SEALED_GROUNDS) {
|
||||
grpZIn = &mAnmGroups[MAP_MAIN_ANIM_MAP_Z_IN_PLANT];
|
||||
grpZAIn = &mAnmGroups[MAP_MAIN_ANIM_MAP_ZA_IN_PLANT];
|
||||
} else if (mAreaGroup == AREAGROUP_ELDIN) {
|
||||
grpZIn = &mAnmGroups[MAP_MAIN_ANIM_MAP_Z_IN_VOLCANO];
|
||||
grpZAIn = &mAnmGroups[MAP_MAIN_ANIM_MAP_ZA_IN_VOLCANO];
|
||||
} else if (mAreaGroup == AREAGROUP_LANAYRU) {
|
||||
grpZIn = &mAnmGroups[MAP_MAIN_ANIM_MAP_Z_IN_DESERT];
|
||||
grpZAIn = &mAnmGroups[MAP_MAIN_ANIM_MAP_ZA_IN_DESERT];
|
||||
}
|
||||
|
||||
if (field_0x8C68 == 2 || (mAreaGroup == AREAGROUP_SKY && (field_0x8C68 == 3 || field_0x8C68 == 1))) {
|
||||
grpZIn = &mAnmGroups[MAP_MAIN_ANIM_MAP_ZA_IN_SKY_MAP_2];
|
||||
grpZAIn = &mAnmGroups[MAP_MAIN_ANIM_MAP_ZA_OUT_SKY_COURSE];
|
||||
}
|
||||
|
||||
mAnmGroups[MAP_MAIN_ANIM_SKYLOFT_UP_DOWN].bind(false);
|
||||
mAnmGroups[MAP_MAIN_ANIM_CLOUD_LOOK].bind(false);
|
||||
mAnmGroups[MAP_MAIN_ANIM_LIGHT_LOOP].bind(false);
|
||||
|
||||
if (mCurrentMapMode == dLytMapGlobal_c::MAPMODE_STAGE || mCurrentMapMode == dLytMapGlobal_c::MAPMODE_ZOOM) {
|
||||
grpZAIn->bind(false);
|
||||
grpZAIn->setFrame(0.0f);
|
||||
grpZWakuIn->bind(false);
|
||||
grpZWakuIn->setToEnd();
|
||||
} else if (mCurrentMapMode == dLytMapGlobal_c::MAPMODE_PROVINCE ||
|
||||
mCurrentMapMode == dLytMapGlobal_c::MAPMODE_WORLD_SKY) {
|
||||
grpZAIn->bind(false);
|
||||
grpZAIn->setToEnd();
|
||||
// no group1->bind(false) ?
|
||||
grpZIn->setToEnd();
|
||||
grpZWakuIn->bind(false);
|
||||
grpZWakuIn->setFrame(0.0f);
|
||||
} else if (mCurrentMapMode == dLytMapGlobal_c::MAPMODE_WORLD) {
|
||||
grpZIn->bind(false);
|
||||
grpZIn->setFrame(0.0f);
|
||||
grpZWakuIn->bind(false);
|
||||
grpZWakuIn->setFrame(0.0f);
|
||||
}
|
||||
|
||||
if (mCurrentMapMode == dLytMapGlobal_c::MAPMODE_ZOOM) {
|
||||
mAnmGroups[MAP_MAIN_ANIM_ROTATE].setFrame(0.0f);
|
||||
} else {
|
||||
mAnmGroups[MAP_MAIN_ANIM_ROTATE].setToEnd();
|
||||
}
|
||||
|
||||
if (field_0x8C94 == 2) {
|
||||
mAnmGroups[MAP_MAIN_ANIM_N_ON_OFF].bind(false);
|
||||
mAnmGroups[MAP_MAIN_ANIM_N_ON_OFF].setToEnd();
|
||||
} else {
|
||||
mAnmGroups[MAP_MAIN_ANIM_N_ON_OFF].bind(false);
|
||||
mAnmGroups[MAP_MAIN_ANIM_TITLE_ON_OFF].bind(false);
|
||||
if (mCurrentMapMode == dLytMapGlobal_c::MAPMODE_STAGE || mCurrentMapMode == dLytMapGlobal_c::MAPMODE_ZOOM) {
|
||||
mAnmGroups[MAP_MAIN_ANIM_N_ON_OFF].setFrame(0.0f);
|
||||
mAnmGroups[MAP_MAIN_ANIM_TITLE_ON_OFF].setToEnd();
|
||||
} else if (mCurrentMapMode == dLytMapGlobal_c::MAPMODE_WORLD ||
|
||||
mCurrentMapMode == dLytMapGlobal_c::MAPMODE_PROVINCE ||
|
||||
mCurrentMapMode == dLytMapGlobal_c::MAPMODE_WORLD_SKY) {
|
||||
mAnmGroups[MAP_MAIN_ANIM_N_ON_OFF].setToEnd();
|
||||
mAnmGroups[MAP_MAIN_ANIM_TITLE_ON_OFF].setFrame(0.0f);
|
||||
}
|
||||
}
|
||||
|
||||
mAnmGroups[MAP_MAIN_ANIM_TITE_LINE].bind(false);
|
||||
mAnmGroups[MAP_MAIN_ANIM_TITE_LINE].setFrame(field_0x8D54 - 1);
|
||||
|
||||
mLyt.getLayout()->Animate(0);
|
||||
mLyt.calc();
|
||||
|
||||
mAnmGroups[MAP_MAIN_ANIM_TITE_LINE].unbind();
|
||||
if (mAnmGroups[MAP_MAIN_ANIM_N_ON_OFF].isBound()) {
|
||||
mAnmGroups[MAP_MAIN_ANIM_N_ON_OFF].unbind();
|
||||
}
|
||||
if (mAnmGroups[MAP_MAIN_ANIM_TITLE_ON_OFF].isBound()) {
|
||||
mAnmGroups[MAP_MAIN_ANIM_TITLE_ON_OFF].unbind();
|
||||
}
|
||||
if (grpZIn->isBound()) {
|
||||
grpZIn->unbind();
|
||||
}
|
||||
if (grpZAIn->isBound()) {
|
||||
grpZAIn->unbind();
|
||||
}
|
||||
if (grpZWakuIn->isBound()) {
|
||||
grpZWakuIn->unbind();
|
||||
}
|
||||
mAnmGroups[MAP_MAIN_ANIM_ROTATE].unbind();
|
||||
mpAllPane->SetVisible(false);
|
||||
if (mAnmGroups[MAP_MAIN_ANIM_KUMO_PATTERN].isBound()) {
|
||||
mAnmGroups[MAP_MAIN_ANIM_KUMO_PATTERN].unbind();
|
||||
}
|
||||
getGlobal()->setAlpha(0);
|
||||
// we had JUST set this to invisible...
|
||||
mpAllPane->SetVisible(true);
|
||||
mpRegionPane1 = nullptr;
|
||||
for (int i = 0; i < MAP_MAIN_NUM_AREA_PICS; i++) {
|
||||
nw4r::lyt::Pane *p1 = mLyt.findPane(sAreaPicNamesL[i]);
|
||||
nw4r::lyt::Pane *p2 = mLyt.findPane(sAreaPicNamesLink[i]);
|
||||
if (i == currentRegion) {
|
||||
p1->SetVisible(true);
|
||||
p2->SetVisible(true);
|
||||
mpRegionPane1 = p1;
|
||||
// TODO - was this meant to be p2?
|
||||
mpRegionPane2 = p1;
|
||||
} else {
|
||||
p1->SetVisible(false);
|
||||
p2->SetVisible(false);
|
||||
}
|
||||
}
|
||||
|
||||
if (field_0x8C68 == 4 || field_0x8C68 == 5) {
|
||||
mLyt.findPane("P_skyloftLink_00")->SetVisible(false);
|
||||
}
|
||||
|
||||
if (canPlaceBeacons(mCurrentMapMode) && canPlaceBeacons(mNextMapMode)) {
|
||||
mPutIcon.setVisible(true);
|
||||
mpNoroshiPane->SetVisible(true);
|
||||
} else {
|
||||
mpNoroshiPane->SetVisible(false);
|
||||
mPutIcon.setVisible(false);
|
||||
}
|
||||
|
||||
if (field_0x8C68 == 4) {
|
||||
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) {
|
||||
mMarkers.setIslandNamesOn(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void dLytMapMain_c::initializeState_In() {}
|
||||
void dLytMapMain_c::executeState_In() {}
|
||||
void dLytMapMain_c::finalizeState_In() {}
|
||||
|
||||
s32 dLytMapMain_c::getAreaGroup(s32 stifArea) const {
|
||||
s32 ret = AREAGROUP_MAX;
|
||||
if (field_0x8C94 == 10) {
|
||||
switch (mSurfaceProvince) {
|
||||
case SURFACE_PROVINCE_FARON: ret = AREAGROUP_FARON; break;
|
||||
case SURFACE_PROVINCE_ELDIN: ret = AREAGROUP_ELDIN; break;
|
||||
case SURFACE_PROVINCE_LANAYRU: ret = AREAGROUP_LANAYRU; break;
|
||||
}
|
||||
} else {
|
||||
switch (stifArea) {
|
||||
case dStageMgr_c::STIF_AREA_SKY: ret = AREAGROUP_SKY; break;
|
||||
case dStageMgr_c::STIF_AREA_SEALED_GROUNDS: ret = AREAGROUP_SEALED_GROUNDS; break;
|
||||
case dStageMgr_c::STIF_AREA_FARON_WOODS:
|
||||
case dStageMgr_c::STIF_AREA_DEEP_WOODS:
|
||||
case dStageMgr_c::STIF_AREA_LAKE_FLORIA: ret = AREAGROUP_FARON; break;
|
||||
case dStageMgr_c::STIF_AREA_VOLCANO_SOUTH:
|
||||
case dStageMgr_c::STIF_AREA_VOLCANO_NORTH: ret = AREAGROUP_ELDIN; break;
|
||||
case dStageMgr_c::STIF_AREA_LANAYRU_MINE:
|
||||
case dStageMgr_c::STIF_AREA_LANAYRU_DESERT:
|
||||
case dStageMgr_c::STIF_AREA_LANAYRU_SAND_SEA:
|
||||
case dStageMgr_c::STIF_AREA_LANAYRU_CAVES:
|
||||
case dStageMgr_c::STIF_AREA_LANAYRU_GORGE: ret = AREAGROUP_LANAYRU; break;
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
void dLytMapMain_c::zoomIn() {
|
||||
if (field_0x8C68 == 2 || (field_0x8C6C == 1 && (field_0x8C68 == 3 || field_0x8C68 == 1))) {
|
||||
if (field_0x8C68 == 2 || (mAreaGroup == AREAGROUP_SKY && (field_0x8C68 == 3 || field_0x8C68 == 1))) {
|
||||
if (mCurrentMapMode == dLytMapGlobal_c::MAPMODE_WORLD) {
|
||||
if (dPad::getDownTrigRight()) {
|
||||
dSndSmallEffectMgr_c::GetInstance()->playSound(SE_S_MAP_ZOOMIN_TO_AREA);
|
||||
@@ -2860,7 +3304,7 @@ void dLytMapMain_c::zoomIn() {
|
||||
}
|
||||
|
||||
void dLytMapMain_c::zoomOut() {
|
||||
if (field_0x8C68 == 2 || (field_0x8C6C == 1 && (field_0x8C68 == 3 || field_0x8C68 == 1))) {
|
||||
if (field_0x8C68 == 2 || (mAreaGroup == AREAGROUP_SKY && (field_0x8C68 == 3 || field_0x8C68 == 1))) {
|
||||
if (mCurrentMapMode == dLytMapGlobal_c::MAPMODE_WORLD_SKY) {
|
||||
if (dPad::getDownTrigLeft()) {
|
||||
mNextMapMode = dLytMapGlobal_c::MAPMODE_WORLD;
|
||||
@@ -3786,7 +4230,7 @@ bool dLytMapMain_c::checkStoryflag(s32 flag) const {
|
||||
}
|
||||
|
||||
void dLytMapMain_c::initializeState_EventSaveObjMsgWindow() {
|
||||
if (mProvince == PROVINCE_FARON && checkStoryflag(STORYFLAG_LEVIAS_FIGHT_DEFEATED) &&
|
||||
if (mSurfaceProvince == SURFACE_PROVINCE_FARON && checkStoryflag(STORYFLAG_LEVIAS_FIGHT_DEFEATED) &&
|
||||
!checkStoryflag(STORYFLAG_FLOODED_FARON_WOODS_DISCOVERED)) {
|
||||
// "A report, Master. An unusual phenomenon is taking place in Faron Woods, making it impossible to descend
|
||||
// directly into them at the moment."
|
||||
@@ -3826,9 +4270,9 @@ struct dLytMapSaveObjFlagDefinition {
|
||||
static const dLytMapSaveObjFlagDefinition sSaveObjFlagsFaron[] = {
|
||||
{SAVE_OBJ_FLAG_KIND_SCENEFLAG, 10, 31},
|
||||
{SAVE_OBJ_FLAG_KIND_STORYFLAG, STORYFLAG_800},
|
||||
{SAVE_OBJ_FLAG_KIND_SCENEFLAG, STORYFLAG_801},
|
||||
{SAVE_OBJ_FLAG_KIND_SCENEFLAG, STORYFLAG_802},
|
||||
{SAVE_OBJ_FLAG_KIND_SCENEFLAG, STORYFLAG_803},
|
||||
{SAVE_OBJ_FLAG_KIND_STORYFLAG, STORYFLAG_801},
|
||||
{SAVE_OBJ_FLAG_KIND_STORYFLAG, STORYFLAG_802},
|
||||
{SAVE_OBJ_FLAG_KIND_STORYFLAG, STORYFLAG_803},
|
||||
{SAVE_OBJ_FLAG_KIND_SCENEFLAG, 1, 104},
|
||||
{SAVE_OBJ_FLAG_KIND_SCENEFLAG, 1, 103},
|
||||
{SAVE_OBJ_FLAG_KIND_SCENEFLAG, 2, 32},
|
||||
@@ -3840,7 +4284,7 @@ static const dLytMapSaveObjFlagDefinition sSaveObjFlagsEldin[] = {
|
||||
{SAVE_OBJ_FLAG_KIND_STORYFLAG, STORYFLAG_804},
|
||||
{SAVE_OBJ_FLAG_KIND_STORYFLAG, STORYFLAG_805},
|
||||
{SAVE_OBJ_FLAG_KIND_STORYFLAG, STORYFLAG_806},
|
||||
{SAVE_OBJ_FLAG_KIND_SCENEFLAG, STORYFLAG_807},
|
||||
{SAVE_OBJ_FLAG_KIND_STORYFLAG, STORYFLAG_807},
|
||||
{SAVE_OBJ_FLAG_KIND_SCENEFLAG, 5, 101},
|
||||
{SAVE_OBJ_FLAG_KIND_SCENEFLAG, 15, 114},
|
||||
};
|
||||
@@ -3868,14 +4312,14 @@ void dLytMapMain_c::displaySaveObjs() {
|
||||
s32 numFlags = ARRAY_LENGTH(sSaveObjFlagsFaron);
|
||||
nw4r::lyt::Bounding **pBoundings = field_0x821C;
|
||||
const dLytMapSaveObjFlagDefinition *flagSet = sSaveObjFlagsFaron;
|
||||
switch (mProvince) {
|
||||
case PROVINCE_ELDIN: {
|
||||
switch (mSurfaceProvince) {
|
||||
case SURFACE_PROVINCE_ELDIN: {
|
||||
pBoundings = field_0x8244;
|
||||
flagSet = sSaveObjFlagsEldin;
|
||||
numFlags = ARRAY_LENGTH(sSaveObjFlagsEldin);
|
||||
break;
|
||||
}
|
||||
case PROVINCE_LANAYRU: {
|
||||
case SURFACE_PROVINCE_LANAYRU: {
|
||||
pBoundings = field_0x825C;
|
||||
flagSet = sSaveObjFlagsLanayru;
|
||||
numFlags = ARRAY_LENGTH(sSaveObjFlagsLanayru);
|
||||
@@ -3886,7 +4330,7 @@ void dLytMapMain_c::displaySaveObjs() {
|
||||
bool isInFaronSothMode = false;
|
||||
bool isInFaronFloodedMode = false;
|
||||
|
||||
if (mProvince == PROVINCE_FARON) {
|
||||
if (mSurfaceProvince == SURFACE_PROVINCE_FARON) {
|
||||
if (checkStoryflag(STORYFLAG_LEVIAS_FIGHT_DEFEATED) &&
|
||||
!checkStoryflag(STORYFLAG_FLOODED_FARON_WOODS_DISCOVERED)) {
|
||||
isInFaronSothMode = true;
|
||||
@@ -3964,7 +4408,7 @@ void dLytMapMain_c::executeState_EventSaveObjSelect() {
|
||||
}
|
||||
|
||||
if (found) {
|
||||
const dMapSaveObjDefinition *def = getSaveObjDefinition(mProvince, statueIdx);
|
||||
const dMapSaveObjDefinition *def = getSaveObjDefinition(mSurfaceProvince, statueIdx);
|
||||
mSaveCaption.setLabel(def->statueLabel);
|
||||
mSaveCaption.setType(def->type);
|
||||
mSaveCaption.mStateMgr.changeState(dLytMapSaveCaption_c::StateID_In);
|
||||
@@ -3980,11 +4424,110 @@ void dLytMapMain_c::executeState_EventSaveObjSelect() {
|
||||
}
|
||||
void dLytMapMain_c::finalizeState_EventSaveObjSelect() {}
|
||||
|
||||
static const dMapSaveObjDefinition sFaronSaveObjs[] = {
|
||||
{ "F400", 0, 0, 10, 4, "SAVEOBJ_NAME_00"},
|
||||
{ "F100", 0, 0, 50, 1, "SAVEOBJ_NAME_01"},
|
||||
{ "F100", 0, 0, 51, 1, "SAVEOBJ_NAME_02"},
|
||||
{ "F100", 0, 0, 52, 1, "SAVEOBJ_NAME_03"},
|
||||
{ "F100", 0, 0, 53, 1, "SAVEOBJ_NAME_04"},
|
||||
{ "F101", 0, 0, 13, 1, "SAVEOBJ_NAME_05"},
|
||||
{ "F101", 0, 0, 14, 1, "SAVEOBJ_NAME_06"},
|
||||
{ "F102", 3, 0, 2, 1, "SAVEOBJ_NAME_07"},
|
||||
{"F102_1", 0, 0, 5, 1, "SAVEOBJ_NAME_08"},
|
||||
{ "F401", 1, 0, 8, 4, "SAVEOBJ_NAME_28"},
|
||||
};
|
||||
static const dMapSaveObjDefinition sFloodedFaronSaveObj = {"F103", 0, 0, 9, 1, "SAVEOBJ_NAME_09"};
|
||||
static const dMapSaveObjDefinition sFaronLoweredGoddessStatueSaveObj = {"F406", 1, 0, 5, 4, "SAVEOBJ_NAME_29"};
|
||||
static const dMapSaveObjDefinition sEldinSaveObjs[] = {
|
||||
{ "F200", 0, 0, 2, 2, "SAVEOBJ_NAME_10"},
|
||||
{ "F200", 2, 0, 6, 2, "SAVEOBJ_NAME_11"},
|
||||
{ "F200", 2, 0, 7, 2, "SAVEOBJ_NAME_12"},
|
||||
{ "F200", 4, 0, 7, 2, "SAVEOBJ_NAME_13"},
|
||||
{"F201_3", 0, 0, 3, 2, "SAVEOBJ_NAME_14"},
|
||||
{ "D201", 10, 0, 2, 2, "SAVEOBJ_NAME_15"},
|
||||
};
|
||||
|
||||
static const dMapSaveObjDefinition sLanayruSaveObjs[] = {
|
||||
{"F300_1", 0, 0, 2, 3, "SAVEOBJ_NAME_16"},
|
||||
{ "F300", 0, 0, 15, 3, "SAVEOBJ_NAME_17"},
|
||||
{ "F300", 0, 0, 16, 3, "SAVEOBJ_NAME_18"},
|
||||
{ "F300", 0, 0, 17, 3, "SAVEOBJ_NAME_19"},
|
||||
{ "F300", 0, 0, 18, 3, "SAVEOBJ_NAME_20"},
|
||||
{"F300_4", 0, 0, 16, 3, "SAVEOBJ_NAME_21"},
|
||||
{"F300_4", 0, 0, 17, 3, "SAVEOBJ_NAME_22"},
|
||||
{ "F301", 0, 0, 10, 3, "SAVEOBJ_NAME_23"},
|
||||
{"F301_3", 0, 0, 10, 3, "SAVEOBJ_NAME_24"},
|
||||
{"F301_4", 0, 0, 10, 3, "SAVEOBJ_NAME_25"},
|
||||
{"F301_6", 0, 0, 10, 3, "SAVEOBJ_NAME_26"},
|
||||
{ "F302", 0, 0, 12, 3, "SAVEOBJ_NAME_27"},
|
||||
};
|
||||
|
||||
const dMapSaveObjDefinition *dLytMapMain_c::getSaveObjDefinition(s32 province, s32 index) const {
|
||||
const dMapSaveObjDefinition *ret = nullptr;
|
||||
switch (province) {
|
||||
case SURFACE_PROVINCE_FARON: {
|
||||
if (index == 4 && checkStoryflag(STORYFLAG_FLOODED_FARON_WOODS_DISCOVERED) &&
|
||||
!checkStoryflag(STORYFLAG_WATER_DRAGON_SOTH_PART)) {
|
||||
ret = &sFloodedFaronSaveObj;
|
||||
} else if (index == 9 && checkStoryflag(STORYFLAG_GODDESS_STATUE_FALLEN)) {
|
||||
ret = &sFaronLoweredGoddessStatueSaveObj;
|
||||
} else {
|
||||
ret = &sFaronSaveObjs[index];
|
||||
}
|
||||
break;
|
||||
}
|
||||
case SURFACE_PROVINCE_ELDIN: {
|
||||
ret = &sEldinSaveObjs[index];
|
||||
break;
|
||||
}
|
||||
case SURFACE_PROVINCE_LANAYRU: {
|
||||
ret = &sLanayruSaveObjs[index];
|
||||
break;
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
void dLytMapMain_c::initializeState_EventSaveObjConfirmMsgWindow() {
|
||||
// "Descend into this area? [1]Yes.[2-]No."
|
||||
mFlowMgr.triggerEntryPoint(4, 17, 0, 0);
|
||||
}
|
||||
void dLytMapMain_c::executeState_EventSaveObjConfirmMsgWindow() {}
|
||||
void dLytMapMain_c::executeState_EventSaveObjConfirmMsgWindow() {
|
||||
if (!mFlowMgr.checkFinished()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (dLytMsgWindow_c::getInstance()->getTextOptionSelection() == 0) {
|
||||
// confirm
|
||||
dBase_c::s_NextExecuteControlFlags &= ~dBase_c::BASE_PROP_0x10;
|
||||
dBase_c::s_DrawControlFlags &= ~dBase_c::BASE_PROP_0x10;
|
||||
s32 idx = 0;
|
||||
s32 statueIdx = -1;
|
||||
for (int i = 0; i < field_0x8320; i++) {
|
||||
if (mSaveObjs[i].mDecideFinished) {
|
||||
statueIdx = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
const dMapSaveObjDefinition *def = getSaveObjDefinition(mSurfaceProvince, statueIdx);
|
||||
dScGame_c::GetInstance()->triggerEntrance(
|
||||
def->stageName, def->room, def->layer, def->entrance, SpawnInfo::RETAIN_TOD, SpawnInfo::RETAIN_TRIAL,
|
||||
dFader_c::FADER_GREY
|
||||
);
|
||||
dScGame_c::GetInstance()->setTargetingScreenPrio(0x8B);
|
||||
dLytMap_c::GetInstance()->fn_80143A30();
|
||||
mStateMgr.changeState(StateID_EventSaveObjDecide);
|
||||
mSaveCaption.mStateMgr.changeState(dLytMapSaveCaption_c::StateID_Out);
|
||||
} else {
|
||||
// cancel
|
||||
for (int i = 0; i < field_0x8320; i++) {
|
||||
mSaveObjs[i].init();
|
||||
}
|
||||
mStateMgr.changeState(StateID_EventSaveObjSelect);
|
||||
mSaveCaption.mStateMgr.changeState(dLytMapSaveCaption_c::StateID_Out);
|
||||
}
|
||||
}
|
||||
void dLytMapMain_c::finalizeState_EventSaveObjConfirmMsgWindow() {}
|
||||
|
||||
void dLytMapMain_c::initializeState_EventSaveObjDecide() {}
|
||||
|
||||
@@ -1794,7 +1794,7 @@ static const char *sMapPopPrefix = "MAP_POP_";
|
||||
|
||||
bool dLytMapMarkers_c::build(d2d::ResAccIf_c *resAcc) {
|
||||
mMapPopup.build(resAcc);
|
||||
if (dStageMgr_c::GetInstance()->isSTIFbyte4_0()) {
|
||||
if (dStageMgr_c::GetInstance()->isSTIFAreaSky()) {
|
||||
void *data = LayoutArcManager::GetInstance()->getLoadedData("MapSky");
|
||||
mResAcc01.attach(data, "");
|
||||
|
||||
@@ -1814,7 +1814,7 @@ bool dLytMapMarkers_c::build(d2d::ResAccIf_c *resAcc) {
|
||||
|
||||
bool dLytMapMarkers_c::remove() {
|
||||
mMapPopup.remove();
|
||||
if (dStageMgr_c::GetInstance()->isSTIFbyte4_0()) {
|
||||
if (dStageMgr_c::GetInstance()->isSTIFAreaSky()) {
|
||||
mIcon01.remove();
|
||||
mResAcc01.detach();
|
||||
} else {
|
||||
@@ -1830,7 +1830,7 @@ bool dLytMapMarkers_c::execute() {
|
||||
}
|
||||
|
||||
void dLytMapMarkers_c::draw() {
|
||||
if (dStageMgr_c::GetInstance()->isSTIFbyte4_0()) {
|
||||
if (dStageMgr_c::GetInstance()->isSTIFAreaSky()) {
|
||||
mIcon01.draw();
|
||||
} else {
|
||||
mIcon00.draw();
|
||||
@@ -1838,7 +1838,7 @@ void dLytMapMarkers_c::draw() {
|
||||
}
|
||||
|
||||
void dLytMapMarkers_c::setIslandNamesOn(bool on) {
|
||||
if (dStageMgr_c::GetInstance()->isSTIFbyte4_0()) {
|
||||
if (dStageMgr_c::GetInstance()->isSTIFAreaSky()) {
|
||||
mShowIslandNames = on;
|
||||
mIcon01.mShowIslandNames = on;
|
||||
}
|
||||
|
||||
@@ -404,7 +404,8 @@ void FiContext::prepareFiCallOptions() {
|
||||
}
|
||||
|
||||
mFiButtonOptions[0] = KEN8_Advice;
|
||||
if (dStageMgr_c::GetInstance()->getSTIFbyte4() == 0 && !isInAnySkyKeepRoom() && !isInLeviasFightMaybe()) {
|
||||
if (dStageMgr_c::GetInstance()->getSTIFArea() == dStageMgr_c::STIF_AREA_SKY && !isInAnySkyKeepRoom() &&
|
||||
!isInLeviasFightMaybe()) {
|
||||
// In the Sky, show play time
|
||||
mFiButtonOptions[1] = KEN8_PlayTime;
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user