This commit is contained in:
robojumper
2025-10-17 21:24:27 +02:00
parent 126e026bab
commit ec6979b211
18 changed files with 803 additions and 202 deletions
+22 -22
View File
@@ -7817,7 +7817,7 @@ 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
checkClose__13dLytMapMain_cCFv = .text:0x80138370; // type:function size:0x138
canChangeUpDirection__13dLytMapMain_cCFlb = .text:0x801384B0; // type:function size:0x5C
canZoomIn__13dLytMapMain_cCFl = .text:0x80138510; // type:function size:0x140
canZoomOut__13dLytMapMain_cCFl = .text:0x80138650; // type:function size:0x1E0
@@ -7829,21 +7829,21 @@ setSaveObjsVisible__13dLytMapMain_cFb = .text:0x80138C70; // type:function size:
setSaveObjPanePtrs__13dLytMapMain_cFv = .text:0x80138D20; // type:function size:0x5C
initSaveObjs__13dLytMapMain_cFv = .text:0x80138D80; // type:function size:0xB0
isPointingAtMainMap__13dLytMapMain_cCFv = .text:0x80138E30; // type:function size:0xD4
canPlaceBeacons__13dLytMapMain_cCFl = .text:0x80138F10; // type:function size:0xA0
canPlaceBeacons__13dLytMapMain_cFl = .text:0x80138F10; // type:function size:0xA0
canResetPosition__13dLytMapMain_cCFlb = .text:0x80138FB0; // type:function size:0xA4
fn_80139060 = .text:0x80139060; // type:function size:0x28
isOpenMaybe__13dLytMapMain_cCFv = .text:0x80139090; // type:function size:0x478
fn_80139510 = .text:0x80139510; // type:function size:0xA8
fn_801395C0 = .text:0x801395C0; // type:function size:0x64
isNotInvisible__13dLytMapMain_cCFv = .text:0x80139630; // type:function size:0x4C
lightPillarRelated__13dLytMapMain_cFlll = .text:0x80139680; // type:function size:0x14
fn_801396A0 = .text:0x801396A0; // type:function size:0xA4
fn_80139750 = .text:0x80139750; // type:function size:0x5E8
fn_80139D40 = .text:0x80139D40; // type:function size:0x15C
fn_80139EA0__13dLytMapMain_cCFv = .text:0x80139EA0; // type:function size:0x58
saveUnkMapData__13dLytMapMain_cFv = .text:0x80139F00; // type:function size:0x44
initUnkMapData__13dLytMapMain_cFv = .text:0x80139F50; // type:function size:0xE8
loadUnkMapData__13dLytMapMain_cFv = .text:0x8013A040; // type:function size:0x3C
isMapIntroDone__13dLytMapMain_cCFv = .text:0x80139060; // type:function size:0x28
isOpen__13dLytMapMain_cCFv = .text:0x80139090; // type:function size:0x478
getRoomAlpha__13dLytMapMain_cCFl = .text:0x80139510; // type:function size:0xA8
canOpen__13dLytMapMain_cCFv = .text:0x801395C0; // type:function size:0x64
isVisible__13dLytMapMain_cCFv = .text:0x80139630; // type:function size:0x4C
queueMapEvent__13dLytMapMain_cFlll = .text:0x80139680; // type:function size:0x14
startMapEvent__13dLytMapMain_cFlll = .text:0x801396A0; // type:function size:0xA4
setupEvent__13dLytMapMain_cFlll = .text:0x80139750; // type:function size:0x5E8
close__13dLytMapMain_cFv = .text:0x80139D40; // type:function size:0x15C
isVisibleNoIntro__13dLytMapMain_cCFv = .text:0x80139EA0; // type:function size:0x58
saveMapState__13dLytMapMain_cFv = .text:0x80139F00; // type:function size:0x44
initMapState__13dLytMapMain_cFv = .text:0x80139F50; // type:function size:0xE8
loadMapState__13dLytMapMain_cFv = .text:0x8013A040; // type:function size:0x3C
clearButtonMessages__13dLytMapMain_cFv = .text:0x8013A080; // type:function size:0xE8
setButtonMessages__13dLytMapMain_cFlblb = .text:0x8013A170; // type:function size:0xA84
canCenterCursor1__13dLytMapMain_cCFl = .text:0x8013AC00; // type:function size:0x4
@@ -7919,7 +7919,7 @@ finalizeState_EventMapIntro_Step3__13dLytMapMain_cFv = .text:0x80140B10; // type
initializeState_EventMapIntro_Step4__13dLytMapMain_cFv = .text:0x80140B20; // type:function size:0x18
executeState_EventMapIntro_Step4__13dLytMapMain_cFv = .text:0x80140B40; // type:function size:0x38
finalizeState_EventMapIntro_Step4__13dLytMapMain_cFv = .text:0x80140B80; // type:function size:0x4
fn_80140B90__13dLytMapMain_cFv = .text:0x80140B90; // type:function size:0xBC
forceOut__13dLytMapMain_cFv = .text:0x80140B90; // type:function size:0xBC
initializeState_EventDungeonMapGet_Step1__13dLytMapMain_cFv = .text:0x80140C50; // type:function size:0x18
executeState_EventDungeonMapGet_Step1__13dLytMapMain_cFv = .text:0x80140C70; // type:function size:0x38
finalizeState_EventDungeonMapGet_Step1__13dLytMapMain_cFv = .text:0x80140CB0; // type:function size:0x4
@@ -7990,7 +7990,7 @@ checkCursorPointedAtMap__13dLytMapMain_cFv = .text:0x80142760; // type:function
fn_801428F0 = .text:0x801428F0; // type:function size:0xB4
fn_801429B0 = .text:0x801429B0; // type:function size:0x1D8
fn_80142B90 = .text:0x80142B90; // type:function size:0xEC
fn_80142C80 = .text:0x80142C80; // type:function size:0x8C
fn_80142C80__13dLytMapMain_cFl = .text:0x80142C80; // type:function size:0x8C
fn_80142D10__13dLytMapMain_cFlbR4mAng = .text:0x80142D10; // type:function size:0x80
fn_80142D90__13dLytMapMain_cFl = .text:0x80142D90; // type:function size:0x170
fn_80142F00__13dLytMapMain_cFR7mVec3_clbRC7mVec3_cRC4mAng = .text:0x80142F00; // type:function size:0x158
@@ -10102,7 +10102,7 @@ ActorLink__handleHotPumpkinSoup = .text:0x8018B2B0; // type:function size:0xE4
fn_8018B3A0 = .text:0x8018B3A0; // type:function size:0x80
shouldDropItemForChance = .text:0x8018B420; // type:function size:0x84
getMaxBeaconCount__Fv = .text:0x8018B4B0; // type:function size:0x44
fn_8018B500 = .text:0x8018B500; // type:function size:0x40
doesStageForbidBeaconPlacement__Fv = .text:0x8018B500; // type:function size:0x40
getBeaconPositionByIndex = .text:0x8018B540; // type:function size:0x60
setBeaconPosition__FPC7mVec3_cUl = .text:0x8018B5A0; // type:function size:0x7C
setBeaconPositionChecked__FPC7mVec3_cUl = .text:0x8018B620; // type:function size:0x194
@@ -10721,10 +10721,10 @@ fn_8019E1F0 = .text:0x8019E1F0; // type:function size:0x10
fn_8019E200 = .text:0x8019E200; // type:function size:0x18C
fn_8019E390 = .text:0x8019E390; // type:function size:0xC
getCameraYRot = .text:0x8019E3A0; // type:function size:0x8
fn_8019E3B0 = .text:0x8019E3B0; // type:function size:0xC
fn_8019E3B0__9dCamera_cCFv = .text:0x8019E3B0; // type:function size:0xC
fn_8019E3C0 = .text:0x8019E3C0; // type:function size:0x44
fn_8019E410 = .text:0x8019E410; // type:function size:0x1C
fn_8019E430 = .text:0x8019E430; // type:function size:0x18
fn_8019E410__9dCamera_cFv = .text:0x8019E410; // type:function size:0x1C
fn_8019E430__9dCamera_cFv = .text:0x8019E430; // type:function size:0x18
fn_8019E450 = .text:0x8019E450; // type:function size:0x7C
fn_8019E4D0 = .text:0x8019E4D0; // type:function size:0x5C
fn_8019E530 = .text:0x8019E530; // type:function size:0x130
@@ -33753,7 +33753,7 @@ lbl_8051FFE8 = .data:0x8051FFE8; // type:object size:0xD data:string
jumptable_8051FFF8 = .data:0x8051FFF8; // type:object size:0x30 scope:local
lbl_80520028 = .data:0x80520028; // type:object size:0xC
lbl_80520034 = .data:0x80520034; // type:object size:0xC data:string
lbl_80520040 = .data:0x80520040; // type:object size:0xC
lbl_80520040 = .data:0x80520040; // type:object size:0x9 data:string
jumptable_8052004C = .data:0x8052004C; // type:object size:0x30 scope:local
lbl_8052007C = .data:0x8052007C; // type:object size:0x10
lbl_8052008C = .data:0x8052008C; // type:object size:0x10
+12
View File
@@ -8,7 +8,9 @@
extern "C" bool fn_80081FE0(void *, const char *);
extern "C" bool fn_800918E0(void *, s32, s16);
extern "C" void fn_80080960(void *, s32, s32, s8, s32);
extern "C" void fn_80093340(void *);
extern "C" void fn_80093360(void *);
extern "C" void fn_80093380(void *);
class dCamera_c : public dBase_c {
public:
@@ -31,10 +33,18 @@ public:
return fn_800918E0(field_0xDA0, a1, a2);
}
void doFn_80093340() {
fn_80093340(field_0xDA4);
}
void doFn_80093360() {
fn_80093360(field_0xDA4);
}
void doFn_80093380() {
fn_80093380(field_0xDA4);
}
void setScreenShakeIntensity(f32 val) {
mScreenShakeIntensity = val;
}
@@ -47,6 +57,8 @@ public:
f32 getUnderwaterDepth() const;
void fn_8019E430();
void fn_8019E410();
mAng fn_8019E3B0() const;
private:
/* 0x068 */ u8 _0x068[0x6C - 0x068];
+9 -9
View File
@@ -86,9 +86,9 @@ protected:
EVENT_SET_TEMPFLAG = 28,
EVENT_UNSET_TEMPFLAG = 29,
EVENT_LIGHT_PILLAR_30 = 30,
EVENT_START_MAP_EVENT = 30,
EVENT_LIGHT_PILLAR_34 = 34,
EVENT_END_MAP_EVENT = 34,
EVENT_SET_STORYFLAG_217 = 37,
EVENT_DEMO_METER_ITEM_SELECT = 38,
@@ -227,10 +227,6 @@ public:
void init();
void reset();
bool getField_0x328() const {
return field_0x328;
}
bool getField_0x329() const {
return field_0x329;
}
@@ -243,8 +239,12 @@ public:
field_0x2FC = val;
}
void setField_0x328(u8 val) {
field_0x328 = val;
bool getInMapEvent() const {
return mInMapEvent;
}
void setInMapEvent(bool val) {
mInMapEvent = val;
}
s32 getField_0x32C() const {
@@ -362,7 +362,7 @@ private:
/* 0x300 */ u32 field_0x300[10];
/* 0x328 */ bool field_0x328;
/* 0x328 */ bool mInMapEvent;
/* 0x329 */ bool field_0x329;
/* 0x32A */ bool field_0x32A;
+5 -1
View File
@@ -67,13 +67,17 @@ public:
/* 0x1E9 */ u8 field_0x1E9;
/* 0x1EA */ s8 field_0x1EA;
/* 0x1EB */ u8 field_0x1EB;
/* 0x1EC */ u8 field_0x1EC;
/* 0x1EC */ s8 field_0x1EC;
/* 0x1ED */ u8 field_0x1ED;
/* 0x1EE */ u8 field_0x1EE;
/* 0x1EF */ u8 field_0x1EF;
/* 0x1F0 */ u8 field_0x1F0;
public:
s8 getField_0x1EC() const {
return field_0x1EC;
}
u8 getField_0x1EE() const {
return field_0x1EE;
}
+1 -1
View File
@@ -667,7 +667,7 @@ enum StoryFlags_e {
/** [Meeting Impa cutscene]
* Story Flag #130 (0x0082) - JP 805ACD64 0x01 / US 805A9AE4 0x01
*/
STORYFLAG_130,
STORYFLAG_IMPA_MET,
/** [Imp 1 defeated (Skyloft layers 4&5)]
* Story Flag #131 (0x0083) - JP 805ACD64 0x02 / US 805A9AE4 0x02
+68 -53
View File
@@ -41,7 +41,7 @@ struct dMapSavedDataEntry {
/* 0x00 */ s32 mapMode;
/* 0x04 */ bool mapUpDirection;
/* 0x05 */ bool mapUpDirectionAfterZoomToDetail;
/* 0x06 */ u8 field_0x06;
/* 0x06 */ bool isValid;
};
struct dMapSavedData {
@@ -537,10 +537,14 @@ public:
void remove();
void execute();
bool isNotInvisible() const;
bool isOpenMaybe() const;
bool fn_80139EA0() const;
void lightPillarRelated(s32, s32, s32);
bool checkClose() const;
bool isOpen() const;
bool canOpen() const;
bool isVisible() const;
void queueMapEvent(s32 mapEvent, s32 surfaceProvince, s32 c);
void startMapEvent(s32 mapEvent, s32 surfaceProvince, s32 c);
bool isVisibleNoIntro() const;
const dMapSaveObjDefinition *getSaveObjDefinition(s32 province, s32 statueIdx) const;
@@ -585,6 +589,23 @@ public:
STATE_FUNC_DECLARE(dLytMapMain_c, EventSaveObjConfirmMsgWindow);
STATE_FUNC_DECLARE(dLytMapMain_c, EventSaveObjDecide);
enum MapEvent_e {
MAP_EVENT_NONE = 0,
MAP_EVENT_1 = 1,
// ???
MAP_EVENT_SW_BANK_SMALL = 2,
MAP_EVENT_MAP_INTRO = 3,
MAP_EVENT_DUNGEON_MAP_GET = 4,
MAP_EVENT_FIELD_MAP_CHANGE_5 = 5,
MAP_EVENT_FOREST_MAP_CHANGE = 6,
MAP_EVENT_SIGNAL_ADD = 7,
MAP_EVENT_FIELD_MAP_CHANGE_8 = 8,
MAP_EVENT_GODDESS_CUBE = 9,
/** arg1 = surface province */
MAP_EVENT_SAVE_OBJ = 10,
MAP_EVENT_11 = 11,
};
private:
// TODO - need to come up with better names for all of these enums and concepts
@@ -613,22 +634,6 @@ private:
ROOMTYPE_MAX = 6,
};
enum MapEvent_e {
MAP_EVENT_NONE = 0,
MAP_EVENT_1 = 1,
// ???
MAP_EVENT_SW_BANK_SMALL = 2,
MAP_EVENT_MAP_INTRO = 3,
MAP_EVENT_DUNGEON_MAP_GET = 4,
MAP_EVENT_FIELD_MAP_CHANGE_5 = 5,
MAP_EVENT_FOREST_MAP_CHANGE = 6,
MAP_EVENT_SIGNAL_ADD = 7,
MAP_EVENT_FIELD_MAP_CHANGE_8 = 8,
MAP_EVENT_GODDESS_CUBE = 9,
MAP_EVENT_SAVE_OBJ = 10,
MAP_EVENT_11 = 11,
};
dLytMapGlobal_c *getGlobal();
void checkScroll();
bool needsNav(s32 mapMode) const;
@@ -638,7 +643,7 @@ private:
bool canChangeUpDirection(s32 mapMode, bool) const;
bool canCenterCursor(s32 mapMode) const;
bool canCenterCursor1(s32 mapMode) const;
bool canPlaceBeacons(s32 mapMode) const;
bool canPlaceBeacons(s32 mapMode);
bool canChangeFloor(s32 mapMode) const;
bool isPointingAtMainMap() const;
@@ -654,12 +659,14 @@ private:
bool fn_80141530() const;
bool fn_80142D10(s32, bool, mAng &);
void fn_80143060(mVec3_c &, const mVec3_c &, const mVec3_c &, const mAng &);
void fn_80140B90();
void forceOut();
void fn_80143300();
void fn_80143120(s32);
void fn_801431E0();
void fn_8013AD50();
void fn_80143360();
void fn_80142C80(s32);
bool isMapIntroDone() const;
bool shouldDrawFootprints() const;
void zoomIn();
@@ -671,12 +678,14 @@ private:
void setupFlags();
void setupStage();
void setupEvent(s32 event, s32 arg1, s32 arg2);
void close();
void loadTextboxes();
void saveUnkMapData();
void initUnkMapData();
void loadUnkMapData();
void saveMapState();
void initMapState();
void loadMapState();
void checkCursorPointedAtMap();
@@ -690,14 +699,22 @@ private:
void setSaveObjPanePtrs();
void initSaveObjs();
u8 getRoomAlpha(s32 roomid) const;
static dMapSavedData sSavedMapData;
static const dMapSavedData sDefaultMapData;
bool isSomeFieldEq0Or1Or7Or9Or11() const {
bool isMapEventEq0Or1Or7Or9Or11() const {
return mMapEvent == MAP_EVENT_NONE || mMapEvent == MAP_EVENT_1 || mMapEvent == MAP_EVENT_SIGNAL_ADD ||
mMapEvent == MAP_EVENT_GODDESS_CUBE || mMapEvent == MAP_EVENT_11;
}
bool isMapEventEq1Or7Or8Or9Or11() const {
return mMapEvent == MAP_EVENT_1 || mMapEvent == MAP_EVENT_SIGNAL_ADD ||
mMapEvent == MAP_EVENT_FIELD_MAP_CHANGE_8 || mMapEvent == MAP_EVENT_GODDESS_CUBE ||
mMapEvent == MAP_EVENT_11;
}
/* 0x0010 */ UI_STATE_MGR_DECLARE(dLytMapMain_c);
/* 0x004C */ dFlowMgrBase_c mFlowMgr;
/* 0x00A4 */ dFlow_c mFlow;
@@ -778,17 +795,15 @@ private:
/* 0x8C93 */ u8 field_0x8C93;
/* 0x8C94 */ s32 mMapEvent;
/* 0x8C98 */ s32 mNextMapEvent;
/* 0x8C9C */ s32 mSurfaceProvince;
/* 0x8CA0 */ u8 _0x8CA0[0x8CA4 - 0x8CA0];
/* 0x8C9C */ s32 mMapEventArg1;
/* 0x8CA0 */ s32 mMapEventArg2;
/* 0x8CA4 */ s32 mCurrentMapMode;
/* 0x8CA8 */ s32 mNextMapMode;
/* 0x8CAC */ u8 field_0x8CAC;
/* 0x8CAD */ u8 field_0x8CAD;
/* 0x8CAE */ u8 _0x8CAE[0x8CB0 - 0x8CAE];
/* 0x8CAD */ bool mDoCameraTransition;
/* 0x8CAE */ bool field_0x8CAE;
/* 0x8CB0 */ u32 mEventTimer;
/* 0x8CB4 */ UNKWORD field_0x8CB4;
@@ -813,14 +828,14 @@ private:
/* 0x8D48 */ mAng field_0x8D48;
/* 0x8D4C */ f32 field_0x8D4C;
/* 0x8D50 */ f32 field_0x8D50;
/* 0x8D54 */ s32 field_0x8D54;
/* 0x8D58 */ s32 field_0x8D58;
/* 0x8D5C */ UNKWORD field_0x8D5C;
/* 0x8D60 */ s32 field_0x8D60;
/* 0x8D64 */ UNKWORD field_0x8D64;
/* 0x8D54 */ s32 mNumTitleLines;
/* 0x8D58 */ s32 mCurrentFloor;
/* 0x8D5C */ UNKWORD mNumFloors;
/* 0x8D60 */ s32 mBaseFloorOffset;
/* 0x8D64 */ s32 field_0x8D64;
/* 0x8D68 */ mAng field_0x8D68;
/* 0x8D6A */ u8 field_0x8D6A; // set at 0x8009e2d4
/* 0x8D6B */ u8 field_0x8D6B;
/* 0x8D6A */ bool mEventCanceled; // set at 0x8009e2d4
/* 0x8D6B */ bool mEventDone;
/* 0x8D6C */ nw4r::lyt::Pane *mpRegionPane1;
/* 0x8D70 */ nw4r::lyt::Pane *mpRegionPane2;
/* 0x8D74 */ nw4r::lyt::Pane *mpZoomInOutPane;
@@ -838,8 +853,8 @@ private:
/* 0x8DB8 */ s32 mDisplayedBeaconCount;
/* 0x8DBC */ bool mShowIslandNames;
/* 0x8DBD */ bool field_0x8DBD;
/* 0x8DBE */ u8 field_0x8DBE;
/* 0x8DBF */ u8 field_0x8DBF;
/* 0x8DBE */ u8 mMapChangeAlpha;
/* 0x8DBF */ bool mIsVisible;
/* 0x8DC0 */ UNKWORD field_0x8DC0;
/* 0x8DC4 */ UNKWORD field_0x8DC4;
/* 0x8DC8 */ dLytMapGlobal_c mGlobal;
@@ -876,37 +891,37 @@ public:
return sInstance;
}
bool isNotInvisible() const {
return mMapMain.isNotInvisible();
bool isVisible() const {
return mMapMain.isVisible();
}
bool isOpenMaybe() const {
return mMapMain.isOpenMaybe();
bool isOpen() const {
return mMapMain.isOpen();
}
bool getFn_80139EA0() const {
return mMapMain.fn_80139EA0();
bool isVisibleNoIntro() const {
return mMapMain.isVisibleNoIntro();
}
void build();
bool isSomeMapFieldEq2Or4Or5Or6() const {
bool isMapEventEq2Or4Or5Or6() const {
return mMapMain.mMapEvent == dLytMapMain_c::MAP_EVENT_SW_BANK_SMALL ||
mMapMain.mMapEvent == dLytMapMain_c::MAP_EVENT_DUNGEON_MAP_GET ||
mMapMain.mMapEvent == dLytMapMain_c::MAP_EVENT_FIELD_MAP_CHANGE_5 ||
mMapMain.mMapEvent == dLytMapMain_c::MAP_EVENT_FOREST_MAP_CHANGE;
}
bool isSomeMapFieldEq10() const {
bool isMapEventSaveObj() const {
return mMapMain.mMapEvent == dLytMapMain_c::MAP_EVENT_SAVE_OBJ;
}
void lightPillarRelated(s32 p1, s32 p2, s32 p3) {
mMapMain.lightPillarRelated(p1, p2, p3);
void queueMapEvent(s32 mapEvent, s32 arg1, s32 arg2) {
mMapMain.queueMapEvent(mapEvent, arg1, arg2);
}
const dMapSaveObjDefinition *getSaveObjDefinition(s32 statueIdx) const {
return mMapMain.getSaveObjDefinition(mMapMain.mSurfaceProvince, statueIdx);
return mMapMain.getSaveObjDefinition(mMapMain.mMapEventArg1, statueIdx);
}
void fn_80143A30();
+11 -3
View File
@@ -80,6 +80,10 @@ public:
return field_0x55;
}
void setField_0x55(u8 v) {
field_0x55 = v;
}
const mAng &getField_0x56() const {
return field_0x56;
}
@@ -164,8 +168,12 @@ public:
field_0x4F = v;
}
UNKWORD getField_0x50() const {
return field_0x50;
s32 getMapEvent() const {
return mMapEvent;
}
void setMapEvent(s32 v) {
mMapEvent = v;
}
u8 getField_0x54() const {
@@ -204,7 +212,7 @@ private:
/* 0x4D */ u8 field_0x4D;
/* 0x4E */ u8 mAlpha;
/* 0x4F */ u8 field_0x4F;
/* 0x50 */ UNKWORD field_0x50;
/* 0x50 */ s32 mMapEvent;
/* 0x54 */ u8 field_0x54;
/* 0x55 */ u8 field_0x55;
/* 0x56 */ mAng field_0x56;
+5 -3
View File
@@ -492,6 +492,10 @@ public:
return field_0x0704;
}
void setLinkRot(const mAng3_c &rot) {
mLinkRot = rot;
}
private:
void resetPopups();
void loadPopups();
@@ -501,9 +505,7 @@ private:
/* 0x06F0 */ bool mShowIslandNames;
/* 0x06F4 */ mVec2_c field_0x06F4;
/* 0x06FC */ u8 _0x6FC[0x0702 - 0x06FC];
/* 0x06FC */ mAng3_c mLinkRot;
/* 0x0702 */ u8 field_0x0702;
/* 0x0702 */ u8 field_0x0703;
/* 0x0704 */ f32 field_0x0704;
+3
View File
@@ -16,4 +16,7 @@ void setBeaconPosition(const mVec3_c *position, u32 beaconIndex);
*/
void setBeaconPositionChecked(const mVec3_c *position, u32 beaconIndex);
/** Checks whether the current stage is ineligible for beacon placement */
bool doesStageForbidBeaconPlacement();
#endif
+5 -5
View File
@@ -32,15 +32,15 @@ inline bool EventManagerIsInMap() {
}
inline bool EventManagerIsMapOpen() {
return EventManagerIsInMap() && dLytMap_c::GetInstance()->isOpenMaybe();
return EventManagerIsInMap() && dLytMap_c::GetInstance()->isOpen();
}
inline bool EventManagerIsMapOpenAndMessage() {
return EventManagerIsMapOpen() && !dMessage_c::getInstance()->getField_0x328();
inline bool EventManagerIsMapOpenNormal() {
return EventManagerIsMapOpen() && !dMessage_c::getInstance()->getInMapEvent();
}
inline bool EventManagerIsMapOpenAnd0x9008Eq10() {
return EventManagerIsMapOpen() && dLytMap_c::GetInstance()->isSomeMapFieldEq10();
inline bool EventManagerIsMapEventSaveObj() {
return EventManagerIsMapOpen() && dLytMap_c::GetInstance()->isMapEventSaveObj();
}
#endif
+2 -2
View File
@@ -257,7 +257,7 @@ bool dCsGame_c::shouldDraw() const {
bool dCsGame_c::isForcedHidden() const {
return (
EventManagerNotDrawControl0x80() && EventManagerNotSkyKeepPuzzle() && EventManagerNotInShop() &&
EventManagerNotInDeposit() && !EventManagerIsMapOpenAndMessage() && !EventManagerIsMapOpenAnd0x9008Eq10()
EventManagerNotInDeposit() && !EventManagerIsMapOpenNormal() && !EventManagerIsMapEventSaveObj()
);
}
@@ -338,7 +338,7 @@ mVec2_c &dCursorInterfaceGame_c::getCursorPos() {
f32 f3 = sHio.field_0x10 + 4.0f;
f32 f4 = sHio.field_0x0C + -15.0f;
if (dLytMap_c::GetInstance() != nullptr && dLytMap_c::GetInstance()->isOpenMaybe()) {
if (dLytMap_c::GetInstance() != nullptr && dLytMap_c::GetInstance()->isOpen()) {
if (pos.x < -f0 + f4) {
pos.x = -f0 + f4;
}
+21 -19
View File
@@ -417,35 +417,37 @@ bool dFlow_c::handleEventInternal(const MsbFlowInfo *element) {
dStageMgr_c::GetInstance()->getFlagIndex();
SceneflagManager::sInstance->unsetTempflag_i(0x3F, (params1n2 >> 16) & 0xFFFF);
break;
case EVENT_LIGHT_PILLAR_30: {
case EVENT_START_MAP_EVENT: {
s8 p4 = (params1n2 >> 24) & 0xFF;
s8 p1 = params1n2 & 0xFF;
s8 p3 = (params1n2 >> 16) & 0xFF;
s8 p2 = (params1n2 >> 8) & 0xFF;
s32 val = 1;
s8 arg1 = (params1n2 >> 16) & 0xFF;
s8 arg2 = (params1n2 >> 8) & 0xFF;
s32 mapEvent = 1;
switch (p1) {
case 1: val = 4; break;
case 2: val = 3; break;
case 3: val = 5; break;
case 5: val = 7; break;
case 6: val = 8; break;
case 7: val = 9; break;
case 1: mapEvent = dLytMapMain_c::MAP_EVENT_DUNGEON_MAP_GET; break;
case 2: mapEvent = dLytMapMain_c::MAP_EVENT_MAP_INTRO; break;
case 3: mapEvent = dLytMapMain_c::MAP_EVENT_FIELD_MAP_CHANGE_5; break;
case 5: mapEvent = dLytMapMain_c::MAP_EVENT_SIGNAL_ADD; break;
case 6: mapEvent = dLytMapMain_c::MAP_EVENT_FIELD_MAP_CHANGE_8; break;
case 7: mapEvent = dLytMapMain_c::MAP_EVENT_GODDESS_CUBE; break;
}
dMessage_c::getInstance()->setField_0x32C(val);
dMessage_c::getInstance()->setField_0x32C(mapEvent);
dMessage_c::getInstance()->setField_0x329(true);
if (dMessage_c::getInstance()->getField_0x328() == 0) {
dMessage_c::getInstance()->setField_0x328(1);
if (dMessage_c::getInstance()->getInMapEvent() == false) {
dMessage_c::getInstance()->setInMapEvent(true);
dMessage_c::getInstance()->clearLightPillarRelatedArgs();
if (dLytControlGame_c::getInstance()->isStateNormalOrNotInEvent()) {
dLytControlGame_c::getInstance()->somehowRelatedToEnteringLightPillars(val, p3, p2);
dLytControlGame_c::getInstance()->somehowRelatedToEnteringLightPillars(
mapEvent, arg1, arg2
);
}
} else {
dLytMap_c::GetInstance()->lightPillarRelated(val, p3, p2);
dLytMap_c::GetInstance()->queueMapEvent(mapEvent, arg1, arg2);
}
dMessage_c::getInstance()->storeLightPillarRelatedArg(p4);
break;
}
case EVENT_LIGHT_PILLAR_34: {
case EVENT_END_MAP_EVENT: {
// TODO what do these modes do?
if (params1n2 == 1) {
if (!dLytControlGame_c::getInstance()->isNotInStateMap()) {
@@ -463,7 +465,7 @@ bool dFlow_c::handleEventInternal(const MsbFlowInfo *element) {
dMessage_c::getInstance()->setField_0x32A(1);
}
}
dMessage_c::getInstance()->setField_0x328(0);
dMessage_c::getInstance()->setInMapEvent(false);
break;
}
case EVENT_SET_STORYFLAG_217:
@@ -1127,7 +1129,7 @@ bool dFlow_c::advanceUntil(s32 searchType, s32 searchParam3, s32 *pOutParams1n2)
case EVENT_LOAD_FI_FLOW:
case EVENT_COUNTER_THRESHOLD:
case 27: keepGoing = handleEvent(); continue;
case EVENT_LIGHT_PILLAR_34:
case EVENT_END_MAP_EVENT:
if (element->params1n2 == 2) {
keepGoing = false;
continue;
@@ -1762,7 +1764,7 @@ void dMessage_c::executeMinigame() {
void dMessage_c::init() {
clearLightPillarRelatedArgs();
// Probably inlines
field_0x328 = 0;
mInMapEvent = false;
field_0x329 = 0;
field_0x32A = 0;
sInstance->setField_0x32C(12);
+1 -1
View File
@@ -498,7 +498,7 @@ void ex_c::fn_80056790(s32 chan) {
f32 f;
if (dScGame_c::GetInstance() != nullptr && dLytMap_c::GetInstance() != nullptr &&
!dLytMap_c::GetInstance()->isNotInvisible()) {
!dLytMap_c::GetInstance()->isVisible()) {
f = dScGame_c::GetInstance()->targetingScreenFn_801BBEC0();
} else {
f = 1.0f;
+628 -75
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -18,7 +18,7 @@ dLytMapGlobal_c::dLytMapGlobal_c()
field_0x4D(0),
mAlpha(0),
field_0x4F(0),
field_0x50(0) {
mMapEvent(0) {
sInstance = this;
}
+5 -3
View File
@@ -19,6 +19,7 @@
#include "d/flag/dungeonflag_manager.h"
#include "d/flag/storyflag_manager.h"
#include "d/lyt/d2d.h"
#include "d/lyt/d_lyt_map.h"
#include "d/lyt/d_lyt_map_global.h"
#include "d/lyt/d_window.h"
#include "d/snd/d_snd_small_effect_mgr.h"
@@ -857,7 +858,8 @@ bool dLytMapIcon01_c::execute() {
}
}
if (dLytMapGlobal_c::GetInstance()->getField_0x4D() && dLytMapGlobal_c::GetInstance()->getField_0x50() != 10) {
if (dLytMapGlobal_c::GetInstance()->getField_0x4D() &&
dLytMapGlobal_c::GetInstance()->getMapEvent() != dLytMapMain_c::MAP_EVENT_SAVE_OBJ) {
checkBoundingPointing();
}
@@ -1587,7 +1589,7 @@ void dLytMapIcon01_c::setupLinkDrawCommand() {
if (dAcPy_c::GetLinkM() != nullptr) {
setupLinkDrawCommand1(dAcPy_c::GetLinkM());
if (dLytMapGlobal_c::GetInstance()->getField_0x50() != 3) {
if (dLytMapGlobal_c::GetInstance()->getMapEvent() != dLytMapMain_c::MAP_EVENT_MAP_INTRO) {
setupLinkDrawCommand2();
}
}
@@ -1862,7 +1864,7 @@ void dLytMapMarkers_c::drawPopups() {
mVec2_c textPos = mPopups[i].textPos;
mVec2_c pos = boundingPos + textPos + field_0x06F4;
pos.x += width / 2.0f;
mMapPopup.setPosition(pos);
mMapPopup.setInout(mPopups[i].inAnimFrame);
+3 -3
View File
@@ -996,7 +996,7 @@ bool dLytMeterMain_c::remove() {
void dLytMeterMain_c::fn_800D5290() {
dLytMeter_c *meter = dLytMeter_c::GetInstance();
if (dLytMap_c::GetInstance() != nullptr && !dLytMap_c::GetInstance()->isSomeMapFieldEq2Or4Or5Or6()) {
if (dLytMap_c::GetInstance() != nullptr && !dLytMap_c::GetInstance()->isMapEventEq2Or4Or5Or6()) {
meter->setFlags(METER_BTN_PLUS);
}
@@ -1008,7 +1008,7 @@ void dLytMeterMain_c::fn_800D5290() {
}
bool dLytMeterMain_c::fn_800D5350() {
if (mBasicPosition == POSITION_MAP && dMessage_c::getInstance()->getField_0x328()) {
if (mBasicPosition == POSITION_MAP && dMessage_c::getInstance()->getInMapEvent()) {
return true;
}
return false;
@@ -1093,7 +1093,7 @@ bool dLytMeterMain_c::fn_800D56B0() {
return true;
}
if (dLytMap_c::GetInstance() != nullptr && !dLytMap_c::GetInstance()->getFn_80139EA0()) {
if (dLytMap_c::GetInstance() != nullptr && !dLytMap_c::GetInstance()->isVisibleNoIntro()) {
return true;
}
+1 -1
View File
@@ -551,7 +551,7 @@ void dLytMsgWindow_c::finalizeState_WaitKeySelectQuestion() {}
void dLytMsgWindow_c::initializeState_MapOpen() {}
void dLytMsgWindow_c::executeState_MapOpen() {
if ((dLytMap_c::GetInstance() != nullptr && dLytMap_c::GetInstance()->isOpenMaybe()) ||
if ((dLytMap_c::GetInstance() != nullptr && dLytMap_c::GetInstance()->isOpen()) ||
!dLytControlGame_c::getInstance()->isInSomeMapState()) {
dMessage_c::getInstance()->setField_0x329(0);
mStateMgr.changeState(StateID_Invisible);