Scaffold markers

This commit is contained in:
robojumper
2025-10-05 23:40:42 +02:00
parent baa5087954
commit c46b2ba5e1
10 changed files with 1194 additions and 255 deletions
+64 -66
View File
@@ -7761,15 +7761,15 @@ __ct__16dLytMapPinIcon_cFv = .text:0x80134780; // type:function size:0x134
__dt__25dLytMapPinIconAggregate_cFv = .text:0x801348C0; // type:function size:0xCC
__ct__16dLytMapMarkers_cFv = .text:0x80134990; // type:function size:0x464
__dt__14dLytMapPopup_cFv = .text:0x80134E00; // type:function size:0x74
__ct__13MapUnkStruct1Fv = .text:0x80134E80; // type:function size:0x10
__dt__13MapUnkStruct1Fv = .text:0x80134E90; // type:function size:0x40
__ct__13MapUnkStruct2Fv = .text:0x80134ED0; // type:function size:0x4
__dt__13MapUnkStruct2Fv = .text:0x80134EE0; // type:function size:0x40
__ct__13MapUnkStruct3Fv = .text:0x80134F20; // type:function size:0x10
__dt__13MapUnkStruct3Fv = .text:0x80134F30; // type:function size:0x40
__ct__17dLytMapPopupStateFv = .text:0x80134E80; // type:function size:0x10
__dt__17dLytMapPopupStateFv = .text:0x80134E90; // type:function size:0x40
__ct__24dLytMapIcon01DrawCommandFv = .text:0x80134ED0; // type:function size:0x4
__dt__24dLytMapIcon01DrawCommandFv = .text:0x80134EE0; // type:function size:0x40
__ct__18dLytMapPopupConfigFv = .text:0x80134F20; // type:function size:0x10
__dt__18dLytMapPopupConfigFv = .text:0x80134F30; // type:function size:0x40
__dt__15dLytMapIcon01_cFv = .text:0x80134F70; // type:function size:0xBC
__ct__13MapUnkStruct4Fv = .text:0x80135030; // type:function size:0x4
__dt__13MapUnkStruct4Fv = .text:0x80135040; // type:function size:0x40
__ct__24dLytMapIcon00DrawCommandFv = .text:0x80135030; // type:function size:0x4
__dt__24dLytMapIcon00DrawCommandFv = .text:0x80135040; // type:function size:0x40
__dt__14dLytMapPlace_cFv = .text:0x80135080; // type:function size:0x74
__dt__15dLytMapIcon00_cFv = .text:0x80135100; // type:function size:0x108
__dt__16dLytMapMarkers_cFv = .text:0x80135210; // type:function size:0x234
@@ -7899,12 +7899,10 @@ initializeState_ResetPosWithFloorChange__13dLytMapMain_cFv = .text:0x80140580; /
executeState_ResetPosWithFloorChange__13dLytMapMain_cFv = .text:0x801405C0; // type:function size:0xF4
finalizeState_ResetPosWithFloorChange__13dLytMapMain_cFv = .text:0x801406C0; // type:function size:0x4
initializeState_EventSwBankSmall_Step1__13dLytMapMain_cFv = .text:0x801406D0; // type:function size:0x20
executeState_EventSwBankSmall_Step1__13dLytMapMain_cFv = .text:0x801406F0; // type:function size:0x3C
fn_8014072C = .text:0x8014072C; // type:function size:0x4
executeState_EventSwBankSmall_Step1__13dLytMapMain_cFv = .text:0x801406F0; // type:function size:0x40
finalizeState_EventSwBankSmall_Step1__13dLytMapMain_cFv = .text:0x80140730; // type:function size:0x4
initializeState_EventSwBankSmall_Step2__13dLytMapMain_cFv = .text:0x80140740; // type:function size:0x38
executeState_EventSwBankSmall_Step2__13dLytMapMain_cFv = .text:0x80140780; // type:function size:0x34
fn_801407B4 = .text:0x801407B4; // type:function size:0x4
executeState_EventSwBankSmall_Step2__13dLytMapMain_cFv = .text:0x80140780; // type:function size:0x38
finalizeState_EventSwBankSmall_Step2__13dLytMapMain_cFv = .text:0x801407C0; // type:function size:0x4
initializeState_EventSwBankSmall_Step3__13dLytMapMain_cFv = .text:0x801407D0; // type:function size:0x18
executeState_EventSwBankSmall_Step3__13dLytMapMain_cFv = .text:0x801407F0; // type:function size:0x28
@@ -9927,13 +9925,13 @@ remove__15dLytMapIcon01_cFv = .text:0x8017B030; // type:function size:0x70
execute__15dLytMapIcon01_cFv = .text:0x8017B0A0; // type:function size:0x2B8
draw__15dLytMapIcon01_cFv = .text:0x8017B360; // type:function size:0x704
resetDrawCommands__15dLytMapIcon01_cFv = .text:0x8017BA70; // type:function size:0x4FC
setMapIcons = .text:0x8017BF70; // type:function size:0x2C8
loadFlags__15dLytMapIcon01_cFv = .text:0x8017BF70; // type:function size:0x2C8
setLinkTunic__15dLytMapIcon01_cFl = .text:0x8017C240; // type:function size:0x98
drawAreaLight__15dLytMapIcon01_cFlPQ34nw4r3lyt4Pane = .text:0x8017C2E0; // type:function size:0xA0
drawCloud__15dLytMapIcon01_cFlPQ34nw4r3lyt4Pane = .text:0x8017C380; // type:function size:0xA0
setGoddessStatue__15dLytMapIcon01_cFb = .text:0x8017C420; // type:function size:0x74
drawSaveObj__15dLytMapIcon01_cFlPQ34nw4r3lyt4Pane = .text:0x8017C4A0; // type:function size:0xA0
fn_8017C540 = .text:0x8017C540; // type:function size:0x1C
setAreaLight__15dLytMapIcon01_cFUlPQ34nw4r3lyt4Pane = .text:0x8017C2E0; // type:function size:0xA0
setCloud__15dLytMapIcon01_cFUlPQ34nw4r3lyt4Pane = .text:0x8017C380; // type:function size:0xA0
setGoddessStatue__15dLytMapIcon01_cFUl = .text:0x8017C420; // type:function size:0x74
setSaveObj__15dLytMapIcon01_cFUlPQ34nw4r3lyt4Pane = .text:0x8017C4A0; // type:function size:0xA0
setTerry__15dLytMapIcon01_cFb = .text:0x8017C540; // type:function size:0x1C
fn_8017C560 = .text:0x8017C560; // type:function size:0x80
fn_8017C5E0 = .text:0x8017C5E0; // type:function size:0x80
fn_8017C660 = .text:0x8017C660; // type:function size:0x80
@@ -9954,47 +9952,47 @@ drawWithAnimOut__15dLytMapIcon01_cFUlPQ34nw4r3lyt4Panef = .text:0x8017CBF0; // t
drawFullyIn__15dLytMapIcon01_cFUlPQ34nw4r3lyt4Pane = .text:0x8017CCB0; // type:function size:0xAC
checkMapMode__15dLytMapIcon01_cFv = .text:0x8017CD60; // type:function size:0xAC
setupActorDrawCommands__15dLytMapIcon01_cFv = .text:0x8017CE10; // type:function size:0x150
fn_8017CF60 = .text:0x8017CF60; // type:function size:0xFC
setupNpcKenseiDrawCommand__15dLytMapIcon01_cFP9dAcBase_c = .text:0x8017CF60; // type:function size:0xFC
setupTboxDrawCommand__15dLytMapIcon01_cFP9dAcBase_c = .text:0x8017D060; // type:function size:0xF4
setupTboxDrawCommandClosed__15dLytMapIcon01_cFP9dAcTbox_c = .text:0x8017D160; // type:function size:0x17C
setupTboxDrawCommandOpen__15dLytMapIcon01_cFP9dAcTbox_c = .text:0x8017D2E0; // type:function size:0xB4
setupTboxDrawCommandGoddessClosed__15dLytMapIcon01_cFP9dAcTbox_c = .text:0x8017D3A0; // type:function size:0xB4
fn_8017D460 = .text:0x8017D460; // type:function size:0x3E4
fn_8017D850 = .text:0x8017D850; // type:function size:0x3F4
fn_8017DC50 = .text:0x8017DC50; // type:function size:0x398
fn_8017DFF0 = .text:0x8017DFF0; // type:function size:0x478
fn_8017E470 = .text:0x8017E470; // type:function size:0x2B0
fn_8017E720 = .text:0x8017E720; // type:function size:0x190
fn_8017E8B0 = .text:0x8017E8B0; // type:function size:0xFC
fn_8017E9B0 = .text:0x8017E9B0; // type:function size:0xA20
fn_8017F3D0 = .text:0x8017F3D0; // type:function size:0x110
fn_8017F4E0 = .text:0x8017F4E0; // type:function size:0x1C0
fn_8017F6A0 = .text:0x8017F6A0; // type:function size:0x1D8
setupObjShutterDrawCommand__15dLytMapIcon01_cFP9dAcBase_c = .text:0x8017D460; // type:function size:0x3E4
setupObjDoorDrawCommand__15dLytMapIcon01_cFP9dAcBase_c = .text:0x8017D850; // type:function size:0x3F4
setupObjSaveDrawCommand__15dLytMapIcon01_cFP9dAcBase_c = .text:0x8017DC50; // type:function size:0x398
setupObjLightLineDrawCommand__15dLytMapIcon01_cFP9dAcBase_c = .text:0x8017DFF0; // type:function size:0x478
setupNpcBNusiDrawCommand__15dLytMapIcon01_cFP9dAcBase_c = .text:0x8017E470; // type:function size:0x2B0
setupObjTerryShopDrawCommand__15dLytMapIcon01_cFP9dAcBase_c = .text:0x8017E720; // type:function size:0x190
setupObjRoAtTargetDrawCommand__15dLytMapIcon01_cFP9dAcBase_c = .text:0x8017E8B0; // type:function size:0xFC
setupObjD3DummyDrawCommand__15dLytMapIcon01_cFP9dAcBase_c = .text:0x8017E9B0; // type:function size:0xA20
setupObjSealedDoorDrawCommand__15dLytMapIcon01_cFP9dAcBase_c = .text:0x8017F3D0; // type:function size:0x110
setupObjHarpHintDrawCommand__15dLytMapIcon01_cFP9dAcBase_c = .text:0x8017F4E0; // type:function size:0x1C0
setupNpcBeeDrawCommand__15dLytMapIcon01_cFP9dAcBase_c = .text:0x8017F6A0; // type:function size:0x1D8
setupStageDrawCommands__15dLytMapIcon01_cFv = .text:0x8017F880; // type:function size:0xA8
fn_8017F930 = .text:0x8017F930; // type:function size:0x268
fn_8017FBA0 = .text:0x8017FBA0; // type:function size:0x954
fn_80180500 = .text:0x80180500; // type:function size:0x750
fn_80180C50 = .text:0x80180C50; // type:function size:0x1C8
fn_80180E20 = .text:0x80180E20; // type:function size:0x134
fn_80180F60 = .text:0x80180F60; // type:function size:0x240
setupTgMapMarkDrawCommand__15dLytMapIcon01_cFP9dAcBase_c = .text:0x8017F930; // type:function size:0x268
setupTgMapMarkDrawCommand1__15dLytMapIcon01_cFP12dTgMapMark_c = .text:0x8017FBA0; // type:function size:0x954
setupTgMapMarkDrawCommand2__15dLytMapIcon01_cFP12dTgMapMark_c = .text:0x80180500; // type:function size:0x750
setupTgMapInstDrawCommand__15dLytMapIcon01_cFP9dAcBase_c = .text:0x80180C50; // type:function size:0x1C8
setupTgForceGetFlagDrawCommand__15dLytMapIcon01_cFP9dAcBase_c = .text:0x80180E20; // type:function size:0x134
setupTgInsectDrawCommand__15dLytMapIcon01_cFP9dAcBase_c = .text:0x80180F60; // type:function size:0x240
setupLinkDrawCommand__15dLytMapIcon01_cFv = .text:0x801811A0; // type:function size:0x50
fn_801811F0 = .text:0x801811F0; // type:function size:0x14C
fn_80181340 = .text:0x80181340; // type:function size:0x1B8
fn_80181500 = .text:0x80181500; // type:function size:0xC8
setupLinkDrawCommand1__15dLytMapIcon01_cFP7dAcPy_c = .text:0x801811F0; // type:function size:0x14C
setupLinkDrawCommand2__15dLytMapIcon01_cFv = .text:0x80181340; // type:function size:0x1B8
setupCloudBigDrawCommand__15dLytMapIcon01_cFv = .text:0x80181500; // type:function size:0xC8
setupTriforceDrawCommands__15dLytMapIcon01_cFv = .text:0x801815D0; // type:function size:0x130
fn_80181700 = .text:0x80181700; // type:function size:0x178
fn_80181880 = .text:0x80181880; // type:function size:0xC4
fn_80181950 = .text:0x80181950; // type:function size:0x30
fn_80181980 = .text:0x80181980; // type:function size:0x64
fn_801819F0 = .text:0x801819F0; // type:function size:0xB0
fn_80181AA0 = .text:0x80181AA0; // type:function size:0x11C
fn_80181BC0 = .text:0x80181BC0; // type:function size:0x78
updateScale__15dLytMapIcon01_cFv = .text:0x80181700; // type:function size:0x178
fn_80181880__15dLytMapIcon01_cCFPQ34nw4r3lyt4PanePQ34nw4r3lyt4PaneR7mVec2_c = .text:0x80181880; // type:function size:0xC4
recordAnimVisState__15dLytMapIcon01_cFv = .text:0x80181950; // type:function size:0x30
transitionAnims__15dLytMapIcon01_cFv = .text:0x80181980; // type:function size:0x64
checkBoundingPointing__15dLytMapIcon01_cFv = .text:0x801819F0; // type:function size:0xB0
sortPanes__15dLytMapIcon01_cFv = .text:0x80181AA0; // type:function size:0x11C
isPointingAtBounding__15dLytMapIcon01_cCFPQ34nw4r3lyt4Pane = .text:0x80181BC0; // type:function size:0x78
fn_80181C40__15dLytMapIcon01_cFv = .text:0x80181C40; // type:function size:0x94
fn_80181CE0 = .text:0x80181CE0; // type:function size:0x68C
fn_80182370 = .text:0x80182370; // type:function size:0x78
fn_801823F0 = .text:0x801823F0; // type:function size:0x28C
fn_80182680 = .text:0x80182680; // type:function size:0x8C8
fn_80182F50 = .text:0x80182F50; // type:function size:0x42C
build__15dLytMapIcon00_cFPQ23d2d10ResAccIf_c = .text:0x80181CE0; // type:function size:0x68C
remove__15dLytMapIcon00_cFv = .text:0x80182370; // type:function size:0x78
execute__15dLytMapIcon00_cFv = .text:0x801823F0; // type:function size:0x28C
draw__15dLytMapIcon00_cFv = .text:0x80182680; // type:function size:0x8C8
resetDrawCommands__15dLytMapIcon00_cFv = .text:0x80182F50; // type:function size:0x42C
checksDungeonCompletionFlags = .text:0x80183380; // type:function size:0x1C0
fn_80183540 = .text:0x80183540; // type:function size:0x8
fn_80183550 = .text:0x80183550; // type:function size:0x8
@@ -10062,15 +10060,15 @@ fn_80189530 = .text:0x80189530; // type:function size:0x80
fn_801895B0 = .text:0x801895B0; // type:function size:0x114
fn_801896D0 = .text:0x801896D0; // type:function size:0x78
fn_80189750 = .text:0x80189750; // type:function size:0x74
fn_801897D0 = .text:0x801897D0; // type:function size:0x168
fn_80189940 = .text:0x80189940; // type:function size:0x8C
fn_801899D0 = .text:0x801899D0; // type:function size:0xEC
fn_80189AC0 = .text:0x80189AC0; // type:function size:0x68
build__16dLytMapMarkers_cFPQ23d2d10ResAccIf_c = .text:0x801897D0; // type:function size:0x168
remove__16dLytMapMarkers_cFv = .text:0x80189940; // type:function size:0x8C
execute__16dLytMapMarkers_cFv = .text:0x801899D0; // type:function size:0xEC
draw__16dLytMapMarkers_cFv = .text:0x80189AC0; // type:function size:0x68
setIslandNamesOn__16dLytMapMarkers_cFb = .text:0x80189B30; // type:function size:0x50
fn_80189B80 = .text:0x80189B80; // type:function size:0x4
fn_80189B90 = .text:0x80189B90; // type:function size:0x27C
fn_80189E10 = .text:0x80189E10; // type:function size:0xF4
fn_80189F10 = .text:0x80189F10; // type:function size:0x8C
drawPopups__16dLytMapMarkers_cFv = .text:0x80189B90; // type:function size:0x27C
resetPopups__16dLytMapMarkers_cFv = .text:0x80189E10; // type:function size:0xF4
loadPopups__16dLytMapMarkers_cFv = .text:0x80189F10; // type:function size:0x8C
getPouchSlotCount__Fb = .text:0x80189FA0; // type:function size:0x6C
isPouchItem = .text:0x8018A010; // type:function size:0x88
isItemShield__Fl = .text:0x8018A0A0; // type:function size:0x18
@@ -10420,11 +10418,11 @@ GoddessChestsOpenedCounter__getMaxGoddessChests = .text:0x80194820; // type:func
GoddessChestsOpenedCounter__init = .text:0x80194830; // type:function size:0x3C
angleToRotate = .text:0x80194870; // type:function size:0x194
fn_80194A10 = .text:0x80194A10; // type:function size:0xC
fn_80194A20 = .text:0x80194A20; // type:function size:0xC
fn_80194A30 = .text:0x80194A30; // type:function size:0x24
getStatueType__10dAcOSave_cCFv = .text:0x80194A20; // type:function size:0xC
getStatueNameId__10dAcOSave_cCFv = .text:0x80194A30; // type:function size:0x24
fn_80194A60 = .text:0x80194A60; // type:function size:0x2C
fn_80194A90 = .text:0x80194A90; // type:function size:0x58
fn_80194AF0 = .text:0x80194AF0; // type:function size:0x28
checkStatueFlag__10dAcOSave_cCFv = .text:0x80194AF0; // type:function size:0x28
fn_80194B20 = .text:0x80194B20; // type:function size:0x8
fn_80194B30 = .text:0x80194B30; // type:function size:0x44
fn_80194B80 = .text:0x80194B80; // type:function size:0x8
@@ -13507,7 +13505,7 @@ AcItem__isLifeTreeFruit = .text:0x80251060; // type:function size:0x8
AcItem__isItemAnyRupee = .text:0x80251070; // type:function size:0x34
AcItem__isItemAnyTear = .text:0x802510B0; // type:function size:0x8
AcItem__isBombRefill = .text:0x802510C0; // type:function size:0x8
AcItem__isAnyTriforce = .text:0x802510D0; // type:function size:0x8
isTriforce__9dAcItem_cCFv = .text:0x802510D0; // type:function size:0x8
fn_802510E0 = .text:0x802510E0; // type:function size:0x44
fn_80251130 = .text:0x80251130; // type:function size:0x44
fn_80251180 = .text:0x80251180; // type:function size:0x44
@@ -33865,7 +33863,7 @@ __vt__29sFState_c<16dLytMapPinIcon_c> = .data:0x80520B38; // type:object size:0x
lbl_80520B50 = .data:0x80520B50; // type:object size:0xC
lbl_80520B5C = .data:0x80520B5C; // type:object size:0xC
lbl_80520B68 = .data:0x80520B68; // type:object size:0xC
lbl_80520B74 = .data:0x80520B74; // type:object size:0xC
__vt__14dLytMapPlace_c = .data:0x80520B74; // type:object size:0xC
__vt__14dLytMapPopup_c = .data:0x80520B80; // type:object size:0xC
__vt__16dLytMapCapture_c = .data:0x80520B8C; // type:object size:0xC
__vt__55sFStateMgr_c<16dLytMapCapture_c,20sStateMethodUsr_FI_c> = .data:0x80520B98; // type:object size:0x30
@@ -35352,7 +35350,7 @@ lbl_8052A6D0 = .data:0x8052A6D0; // type:object size:0x88
jumptable_8052A758 = .data:0x8052A758; // type:object size:0xA4 scope:local
lbl_8052A7FC = .data:0x8052A7FC; // type:object size:0xC
lbl_8052A808 = .data:0x8052A808; // type:object size:0x18
lbl_8052A820 = .data:0x8052A820; // type:object size:0x20
__vt__16dLytMapMarkers_c = .data:0x8052A820; // type:object size:0x20
__vt__15dLytMapIcon00_c = .data:0x8052A840; // type:object size:0x20
__vt__15dLytMapIcon01_c = .data:0x8052A860; // type:object size:0x20
lbl_8052A880 = .data:0x8052A880; // type:object size:0x10
@@ -40125,8 +40123,8 @@ lbl_80572838 = .sdata:0x80572838; // type:object size:0x8
lbl_80572840 = .sdata:0x80572840; // type:object size:0x8
lbl_80572848 = .sdata:0x80572848; // type:object size:0x8
lbl_80572850 = .sdata:0x80572850; // type:object size:0x4
lbl_80572854 = .sdata:0x80572854; // type:object size:0x8
lbl_8057285C = .sdata:0x8057285C; // type:object size:0xC
lbl_80572854 = .sdata:0x80572854; // type:object size:0x7 data:string
lbl_8057285C = .sdata:0x8057285C; // type:object size:0x7 data:string
@LOCAL@build__10dLytNote_cFPQ23d2d10ResAccIf_c@sPaneName = .sdata:0x80572868; // type:object size:0x4 scope:local data:4byte
@8144 = .sdata:0x80572870; // type:object size:0x1 scope:local data:string
@24731 = .sdata:0x80572878; // type:object size:0x1 scope:local
+1
View File
@@ -79,6 +79,7 @@ public:
static bool isRupee(ITEM_ID item);
static bool isKeyPiece(ITEM_ID item);
static bool isTreasure(ITEM_ID item);
bool isTriforce() const;
static bool getItemGetEventName(u16 item, const char **outName);
static void itemGetEventStart(dAcBase_c *);
+10
View File
@@ -17,6 +17,16 @@ public:
STATE_FUNC_DECLARE(dAcOSave_c, LightShaft);
STATE_FUNC_DECLARE(dAcOSave_c, Escape);
bool checkStatueFlag() const;
u32 getStatueType() const;
u32 getStatueNameId() const;
enum StatueType {
TYPE_NORMAL = 0,
TYPE_OVERWORLD = 1,
TYPE_DUNGEON = 2,
};
private:
/* 0x??? */ STATE_MGR_DECLARE(dAcOSave_c);
};
+12 -12
View File
@@ -247,17 +247,17 @@ enum StoryFlags_e {
/** [Faron light pillar]
* Story Flag #46 (0x002E) - JP 805ACD67 0x80 / US 805A9AE7 0x80
*/
STORYFLAG_46,
STORYFLAG_FARON_PILLAR_OPENED,
/** [Eldin light pillar]
* Story Flag #47 (0x002F) - JP 805ACD66 0x01 / US 805A9AE6 0x01
*/
STORYFLAG_47,
STORYFLAG_ELDIN_PILLAR_OPENED,
/** [Lanayru light pillar (Eldin Volcano, Digging Mitts Cave, FS Entrance, Volcano Summit Waterfall layer 2 /
* Lanayru Mines layer 1 / Temple of Time layer 1)] Story Flag #48 (0x0030) - JP 805ACD66 0x02 / US 805A9AE6 0x02
*/
STORYFLAG_48,
STORYFLAG_LANAYRU_PILLAR_OPENED,
/** [Talk to Headmaster to learn about Windmills]
* Story Flag #49 (0x0031) - JP 805ACD66 0x04 / US 805A9AE6 0x04
@@ -703,7 +703,7 @@ enum StoryFlags_e {
* Screen) (Faron Woods, Deep Woods, Inside Great Tree layer 1)] Story Flag #137 (0x0089) - JP 805ACD64 0x80 / US
* 805A9AE4 0x80
*/
STORYFLAG_137,
STORYFLAG_FARON_DISCOVERED,
/** [Cutscene near sealed temple entrance first time in sealed grounds (Sealed Temple layer 1)]
* Story Flag #138 (0x008A) - JP 805ACD67 0x01 / US 805A9AE7 0x01
@@ -928,7 +928,7 @@ enum StoryFlags_e {
/** [Eldin Volcano Introductory Cutscene (Eldin Layer 1 only) (if set it activates Statue select screen on entering
* Eldin Pillar)] Story Flag #182 (0x00B6) - JP 805ACD66 0x20 / US 805A9AE6 0x20
*/
STORYFLAG_182,
STORYFLAG_ELDIN_DISCOVERED,
/** [Earth Temple Introductory Cutscene]
* Story Flag #183 (0x00B7) - JP 805ACD66 0x40 / US 805A9AE6 0x40
@@ -968,7 +968,7 @@ enum StoryFlags_e {
/** [Lanayru Mines Introductory Cutscene (Lanayru Desert layer 1)]
* Story Flag #190 (0x00BE) - JP 805ACD6D 0x80 / US 805A9AED 0x80
*/
STORYFLAG_190,
STORYFLAG_LANAYRU_DISCOVERED,
/** [(not implemented yet -- 7F62)]
* Story Flag #191 (0x00BF) - JP from 805ACE57 0x40 to 805ACE56 0x01 / US from 805A9BD7 0x40 to 805A9BD6 0x01
@@ -1425,7 +1425,7 @@ enum StoryFlags_e {
/** [Land on Fun Fun Island for first time (name on map appears)]
* Story Flag #281 (0x0119) - JP 805ACD7B 0x08 / US 805A9AFB 0x08
*/
STORYFLAG_281,
STORYFLAG_FUN_FUN_ISLAND_DISCOVERED,
/** [Land on Lumpy Pumpkin Island for first time (name on map appears)]
* Story Flag #282 (0x011A) - JP 805ACD7B 0x10 / US 805A9AFB 0x10
@@ -1435,7 +1435,7 @@ enum StoryFlags_e {
/** [Talk to Beedle on his island for first time (name on map appears)]
* Story Flag #283 (0x011B) - JP 805ACD7B 0x20 / US 805A9AFB 0x20
*/
STORYFLAG_283,
STORYFLAG_BEEDLE_ISLAND_DISCOVERED,
/** [Land on Bamboo Island for first time (name on map appears)]
* Story Flag #284 (0x011C) - JP 805ACD7B 0x40 / US 805A9AFB 0x40
@@ -1450,7 +1450,7 @@ enum StoryFlags_e {
/** [Talk to Strich at Bug Heaven for first time (name on map appears)]
* Story Flag #286 (0x011E) - JP 805ACD7A 0x01 / US 805A9AFA 0x01
*/
STORYFLAG_286,
STORYFLAG_BUG_HAVEN_DISCOVERED,
/** []
* Story Flag #287 (0x011F) - JP 805ACD7A 0x02 / US 805A9AFA 0x02
@@ -1460,7 +1460,7 @@ enum StoryFlags_e {
/** [Bilocyte fight triggered]
* Story Flag #288 (0x0120) - JP 805ACD7A 0x04 / US 805A9AFA 0x04
*/
STORYFLAG_288,
STORYFLAG_BILOCYCTE_FIGHT_TRIGGERED,
/** [Owlan's wooden shield]
* Story Flag #289 (0x0121) - JP 805ACD7A 0x08 / US 805A9AFA 0x08
@@ -1917,7 +1917,7 @@ enum StoryFlags_e {
/** [Thunderhead entered for first time]
* Story Flag #379 (0x017B) - JP 805ACD85 0x02 / US 805A9B05 0x02
*/
STORYFLAG_379,
STORYFLAG_THUNDERHEAD_ENTERED,
/** [Parrow gives his Crystal Sidequest (to find Orielle)]
* Story Flag #380 (0x017C) - JP 805ACD8A 0x40 / US 805A9B0A 0x40
@@ -3568,7 +3568,7 @@ enum StoryFlags_e {
/** [Enter Beedle's Shop for first time]
* Story Flag #709 (0x02C5) - JP 805ACDA2 0x80 / US 805A9B22 0x80
*/
STORYFLAG_709,
STORYFLAG_BEEDLE_SHOP_ENTERED,
/** [Sets after Treasure dowsing]
* Story Flag #710 (0x02C6) - JP 805ACDA5 0x01 / US 805A9B25 0x01
+6 -5
View File
@@ -596,11 +596,7 @@ private:
/* 0x0FA0 */ dLytMapFloorBtnMgr_c mFloorBtnMgr;
/* 0x16B4 */ dLytMapPinIconAggregate_c mPinIconAggregate;
/* 0x2060 */ dLytMapMarkers_c mMarkers;
/* 0x5F54 */ u8 _0x5F54[0x64C0 - 0x5F54];
/* 0x64C0 */ dLytMapFootPrints_c mFootPrints;
/* 0x6664 */ dLytMapPutIcon_c mPutIcon;
/* 0x6704 */ dLytMapSaveObj_c mSaveObjs[12];
/* 0x79C4 */ dLytMapSaveCaption_c mSaveCaption;
@@ -674,7 +670,12 @@ private:
/* 0x8CAC */ u8 field_0x8CAC;
/* 0x8CAD */ u8 field_0x8CAD;
/* 0x8CAE */ u8 _0x8CAE[0x8CBC - 0x8CAE];
/* 0x8CAE */ u8 _0x8CAE[0x8CB0 - 0x8CAE];
/* 0x8CB0 */ u32 field_0x8CB0;
/* 0x8CB4 */ UNKWORD field_0x8CB4;
/* 0x8CB8 */ u8 _0x8CB8[0x8CBC - 0x8CB8];
/* 0x8CBC */ nw4r::lyt::Bounding *mpMapBounding;
/* 0x8CC0 */ bool field_0x8CC0;
+20
View File
@@ -116,6 +116,26 @@ public:
mFloor = floor;
}
u8 getField_0x4C() const {
return field_0x4C;
}
u8 getField_0x4D() const {
return field_0x4D;
}
u8 getField_0x4F() const {
return field_0x4F;
}
UNKWORD getField_0x50() const {
return field_0x50;
}
u8 getField_0x54() const {
return field_0x54;
}
void projectOntoMap(mVec2_c &result, const mVec3_c &position) const;
void unprojectFromMap(mVec3_c &result, const mVec2_c &position) const;
void unprojectFromMap(mVec3_c &result, const mVec2_c &position, const mAng &rot) const;
+258 -93
View File
@@ -13,14 +13,21 @@
class dAcBase_c;
class dAcTbox_c;
class dAcPy_c;
class dTgMapMark_c;
// Size: 0x1C
struct MapUnkStruct1 {
struct dLytMapPopupState {
public:
MapUnkStruct1() {}
~MapUnkStruct1() {}
dLytMapPopupState() : textPos(0.0f, 0.0f) {}
~dLytMapPopupState() {}
/* 0x00 */ u8 _0x00[0x1C];
/* 0x00 */ f32 inAnimFrame;
/* 0x04 */ mVec2_c textPos;
/* 0x0C */ mVec2_c boundingPos;
/* 0x14 */ bool visible;
/* 0x15 */ u8 objId;
/* 0x18 */ const char *labelPrefix;
};
/**
@@ -44,32 +51,34 @@ public:
};
// Size: 0x20
struct MapUnkStruct3 {
struct dLytMapPopupConfig {
public:
MapUnkStruct3() {}
~MapUnkStruct3() {}
dLytMapPopupConfig() : textPos(0.0f, 0.0f) {}
~dLytMapPopupConfig() {}
/* 0x00 */ UNKWORD field_0x00;
/* 0x00 */ s32 cmdIdx;
/* 0x04 */ nw4r::lyt::Bounding *bounding;
/* 0x08 */ f32 field_0x08;
/* 0x0C */ f32 field_0x0C;
/* 0x10 */ mVec2_c field_0x10;
/* 0x18 */ u8 field_0x18;
/* 0x19 */ u8 field_0x19;
/* 0x1C */ const char *field_0x1C;
/* 0x08 */ mVec2_c textPos;
/* 0x10 */ mVec2_c boundingPos;
/* 0x18 */ bool pointedAt;
/* 0x19 */ u8 objId;
/* 0x1C */ const char *labelPrefix;
};
// Size: 0xC
struct MapUnkStruct4 {
/**
* Copy of dLytMapIcon01DrawCommand
*
* Size: 0xC
*/
struct dLytMapIcon00DrawCommand {
public:
MapUnkStruct4() {}
~MapUnkStruct4() {}
dLytMapIcon00DrawCommand() {}
~dLytMapIcon00DrawCommand() {}
/* 0x00 */ f32 field_0x00;
/* 0x04 */ f32 field_0x04;
/* 0x08 */ u16 field_0x08;
/* 0x0A */ u8 field_0x0A;
/* 0x0B */ u8 field_0x0B;
/* 0x00 */ mVec2_c position;
/* 0x08 */ mAng rotation;
/* 0x0A */ u8 paneIdx;
/* 0x0B */ u8 passIdx;
};
/**
@@ -82,19 +91,25 @@ struct dLytMapIconAnimState {
public:
// no ctor/dtor
/* 0x00 */ UNKWORD cmdIndex;
/* 0x00 */ s32 cmdIndex;
/* 0x04 */ f32 frame;
/* 0x08 */ u8 animIn;
/* 0x09 */ u8 animOut;
/* 0x0A */ u8 idleVisible;
/* 0x0B */ u8 field_0x0B;
/* 0x0C */ bool visible;
/* 0x08 */ bool animIn;
/* 0x09 */ bool animOut;
/* 0x0A */ bool visible;
/* 0x0B */ bool prevVisible;
/* 0x0C */ bool render;
};
/** 2D UI - Map - Popup text that appears when pointing at certain points of interest */
class dLytMapPopup_c {
public:
dLytMapPopup_c() : mLabel("MAP_00") {}
dLytMapPopup_c()
: mLabel("MAP_00"),
mModeCheckResult(MODE_MAX),
field_0x178(0),
mMaxScale(0.0f),
field_0x180(0),
field_0x184(0) {}
virtual ~dLytMapPopup_c() {}
bool build(d2d::ResAccIf_c *resAcc);
@@ -103,18 +118,27 @@ public:
void draw();
void setLabel(const char *label);
void realizeText();
void setInout(f32 value);
f32 getTextRenderWidth() const;
f32 getInAnimDuration() const {
return mAnm[1].getLastFrame();
}
void setPosition(const mVec2_c &pos) {
mPosition = pos;
}
private:
enum ModeCheck_e {
MODE_TRANSITION_TO_ZOOM = 2,
MODE_TRANSITION_TO_STAGE = 3,
MODE_STABLE_STAGE = 4,
MODE_STABLE_ZOOM = 5,
MODE_MAX = 6,
};
void realizeText();
void setInitialState();
void checkMapMode();
@@ -132,12 +156,14 @@ private:
/* 0x178 */ u8 field_0x178;
/* 0x17C */ f32 mMaxScale;
/* 0x180 */ UNKWORD field_0x180;
/* 0x184 */ UNKWORD field_0x184;
};
/** 2D UI - Map - Text holding area names (on the world/province view, or exits on the stage view) */
class dLytMapPlace_c {
public:
dLytMapPlace_c() {}
dLytMapPlace_c()
: mLabel("MAP_02"), mModeCheckResult(MODE_MAX), field_0x1C0(0.0f), field_0x1C4(0.0f), mMaxScale(0.0f) {}
virtual ~dLytMapPlace_c() {}
bool build(d2d::ResAccIf_c *resAcc);
@@ -157,6 +183,7 @@ private:
MODE_TRANSITION_TO_STAGE = 3,
MODE_STABLE_STAGE = 4,
MODE_STABLE_ZOOM = 5,
MODE_MAX = 6,
};
void realizeText();
@@ -181,27 +208,25 @@ private:
/* 0x1D8 */ f32 mMaxScale;
};
class dLytMapIcon00_c : public m2d::Base_c {
public:
dLytMapIcon00_c() {}
private:
/* 0x0104 */ d2d::LytBase_c mLyt;
/* 0x0194 */ d2d::AnmGroup_c mAnm[29];
/* 0x0970 */ dCursorHitCheckLyt_c mCsHitCheck;
/* 0x0998 */ MapUnkStruct4 mUnk4[100];
/* 0x0E5B */ u8 field_0x0E5B[100];
/* 0x0F20 */ u8 field_0x0F20[100];
/* 0x0F84 */ mVec3_c field_0x0F84[77];
/* 0x1342 */ u8 field_0x1342[100];
/* 0x13A8 */ u8 field_0x13A8[100];
/* 0x1410 */ MapUnkStruct3 mUnk3[30];
/* 0x1D70 */ dLytMapPlace_c mPlace;
};
class dLytMapIcon01_c : public m2d::Base_c {
friend class dLytMapMarkers_c;
public:
dLytMapIcon01_c() {}
dLytMapIcon01_c()
: field_0x000D(0),
mShowIslandNames(false),
mModeCheckResult(MODE_MAX),
field_0x0C70(0),
field_0x0C83(0),
field_0x0C84(0),
field_0x1838(0.0f),
field_0x183C(0.0f),
field_0x1840(0.0f),
field_0x1844(false),
field_0x1845(0),
field_0x1848(0),
field_0x184C(false),
field_0x184D(false) {}
virtual void draw() override;
virtual bool build(d2d::ResAccIf_c *resAcc);
virtual bool remove();
@@ -214,36 +239,69 @@ private:
MODE_TRANSITION_TO_STAGE = 3,
MODE_STABLE_STAGE = 4,
MODE_STABLE_ZOOM = 5,
MODE_MAX = 6,
};
void setupActorDrawCommands();
void setupStageDrawCommands();
void setupLinkDrawCommand();
void setupLinkDrawCommand1(dAcPy_c *ac);
void setupLinkDrawCommand2();
void setupCloudBigDrawCommand();
void setupTriforceDrawCommands();
void setupUnkDrawCommand();
void sortDrawCommands();
void sortPanes();
void setupTboxDrawCommand(dAcBase_c *actor);
void setupTboxDrawCommandGoddessClosed(dAcTbox_c *box);
void setupTboxDrawCommandOpen(dAcTbox_c *box);
void setupTboxDrawCommandClosed(dAcTbox_c *box);
void setupNpcKenseiDrawCommand(dAcBase_c *actor);
void setupObjShutterDrawCommand(dAcBase_c *actor);
void setupObjDoorDrawCommand(dAcBase_c *actor);
void setupObjSaveDrawCommand(dAcBase_c *actor);
void setupObjLightLineDrawCommand(dAcBase_c *actor);
void setupNpcBNusiDrawCommand(dAcBase_c *actor);
void setupObjTerryShopDrawCommand(dAcBase_c *actor);
void setupObjRoAtTargetDrawCommand(dAcBase_c *actor);
void setupObjD3DummyDrawCommand(dAcBase_c *actor);
void setupObjSealedDoorDrawCommand(dAcBase_c *actor);
void setupObjHarpHintDrawCommand(dAcBase_c *actor);
void setupNpcBeeDrawCommand(dAcBase_c *actor);
void setupTgMapMarkDrawCommand(dAcBase_c *actor);
void setupTgMapMarkDrawCommand1(dTgMapMark_c *actor);
void setupTgMapMarkDrawCommand2(dTgMapMark_c *actor);
void setupTgMapInstDrawCommand(dAcBase_c *actor);
void setupTgForceGetFlagDrawCommand(dAcBase_c *actor);
void setupTgInsectDrawCommand(dAcBase_c *actor);
void setLinkTunic(s32 type);
void setGoddessStatue(bool present);
void setGoddessStatue(u32 present);
void setTerry(bool present);
void drawAreaLight(s32 color, nw4r::lyt::Pane *pane);
void drawSaveObj(s32 color, nw4r::lyt::Pane *pane);
void drawCloud(s32 alpha, nw4r::lyt::Pane *pane);
void setAreaLight(u32 color, nw4r::lyt::Pane *pane);
void setCloud(u32 alpha, nw4r::lyt::Pane *pane);
void setSaveObj(u32 color, nw4r::lyt::Pane *pane);
void drawWithAnimIn(u32 paneIdx, nw4r::lyt::Pane *pane, f32 frame);
void drawWithAnimOut(u32 paneIdx, nw4r::lyt::Pane *pane, f32 frame);
void drawFullyIn(u32 paneIdx, nw4r::lyt::Pane *pane);
void fn_80181C40();
void fn_80181880(nw4r::lyt::Pane *, nw4r::lyt::Pane *, mVec2_c &) const;
void checkMapMode();
void loadFlags();
void updateScale();
void recordAnimVisState();
void transitionAnims();
void checkBoundingPointing();
bool isPointingAtBounding(nw4r::lyt::Pane *pane) const;
/* 0x000D */ u8 field_0x000D;
/* 0x000E */ bool mShowIslandNames;
/* 0x0010 */ nw4r::lyt::Bounding *mpBoundings[59];
/* 0x00FC */ nw4r::lyt::Pane *mpSpecialPanes[27];
/* 0x0168 */ nw4r::lyt::Pane *mpSpecialPictures[27];
@@ -256,28 +314,27 @@ private:
/* 0x07BC */ dLytMapIcon01DrawCommand mCommands[100];
/* 0x0C6C */ s32 mModeCheckResult;
/* 0x0C70 */ s32 field_0x0C70;
/* 0x0C74 */ u8 field_0x0C74;
/* 0x0C75 */ u8 field_0x0C75;
/* 0x0C76 */ u8 field_0x0C76;
/* 0x0C77 */ u8 field_0x0C77;
/* 0x0C78 */ u8 field_0x0C78;
/* 0x0C79 */ u8 field_0x0C79;
/* 0x0C7A */ u8 field_0x0C7A;
/* 0x0C7B */ u8 field_0x0C7B;
/* 0x0C7C */ u8 field_0x0C7C;
/* 0x0C7D */ u8 field_0x0C7D;
/* 0x0C7E */ u8 field_0x0C7E;
/* 0x0C7F */ u8 field_0x0C7F;
/* 0x0C80 */ u8 field_0x0C80;
/* 0x0C81 */ u8 field_0x0C81;
/* 0x0C82 */ u8 field_0x0C82;
/* 0x0C74 */ bool mFunFunIslandDiscovered;
/* 0x0C75 */ bool mLumpyPumkpinDiscovered;
/* 0x0C76 */ bool mBeedleIslandDiscovered;
/* 0x0C77 */ bool mBambooIslandDiscovered;
/* 0x0C78 */ bool mIsleOfSongsDiscovered;
/* 0x0C79 */ bool mBugHavenDiscovered;
/* 0x0C7A */ bool mBilocyteFightTriggered;
/* 0x0C7B */ bool mFaronPillarOpened;
/* 0x0C7C */ bool mFaronDiscovered;
/* 0x0C7D */ bool mEldinPillarOpened;
/* 0x0C7E */ bool mEldinDiscovered;
/* 0x0C7F */ bool mLanayruPillarOpened;
/* 0x0C80 */ bool mLanaryuDiscovered;
/* 0x0C81 */ bool mThunderheadEntered;
/* 0x0C82 */ bool mBeedleShopEntered;
/* 0x0C83 */ u8 field_0x0C83;
/* 0x0C84 */ u8 field_0x0C84;
/* 0x0C85 */ u8 field_0x0C85[100];
/* 0x0CE9 */ u8 mPassIdxes[35];
/* 0x0D0C */ s32 field_0xD0C;
/* 0x0D10 */ s32 field_0xD10;
/* 0x0D0C */ s32 mCurrentFloor;
/* 0x0D10 */ s32 mLastFloor;
/* 0x0D14 */ u8 mNumCommandsPerPass[35];
/* 0x0D37 */ u8 mNumCommands;
@@ -296,41 +353,149 @@ private:
/* 0x0DAF */ u8 _0x0DAF[0x0E13 - 0x0DAF];
/* 0x0E13 */ u8 field_0x0E13;
/* 0x0E14 */ MapUnkStruct3 mUnk3[56];
/* 0x0E14 */ dLytMapPopupConfig mPopupConfigs[56];
/* 0x1514 */ dLytMapIconAnimState mIconAnims[50];
/* 0x1834 */ s32 mNumAnims;
/* 0x1838 */ f32 field_0x1838;
/* 0x183C */ f32 field_0x183C;
/* 0x1840 */ u8 _0x183C[0x1845 - 0x1840];
/* 0x1840 */ f32 field_0x1840;
/* 0x1844 */ bool field_0x1844;
/* 0x1845 */ u8 field_0x1845;
/* 0x1846 */ u8 _0x1846[0x184C - 0x1846];
/* 0x1848 */ UNKWORD field_0x1848;
/* 0x184C */ bool field_0x184C;
/* 0x184D */ bool field_0x184D;
};
class dLytMapIcon00_c : public m2d::Base_c {
public:
dLytMapIcon00_c()
: mModeCheckResult(MODE_MAX),
field_0x0E4C(0),
field_0x0E59(0),
field_0x0E5A(0),
field_0x13A6(0),
field_0x13A7(0),
field_0x1CD0(0.0f, 0.0f, 0.0f),
field_0x1CDC(0),
field_0x1CDD(0),
field_0x1CDE(0),
field_0x1CE0(0),
field_0x1CE4(0),
field_0x1CE5(0),
field_0x1CE6(0),
field_0x1CE7(0) {}
virtual void draw() override;
virtual bool build(d2d::ResAccIf_c *resAcc);
virtual bool remove();
virtual bool execute();
virtual void resetDrawCommands();
private:
enum ModeCheck_e {
MODE_TRANSITION_TO_ZOOM = 2,
MODE_TRANSITION_TO_STAGE = 3,
MODE_STABLE_STAGE = 4,
MODE_STABLE_ZOOM = 5,
MODE_MAX = 6,
};
void fn_80189750();
/* 0x0010 */ u8 _0x0010[0x0104 - 0x0010];
/* 0x0104 */ d2d::LytBase_c mLyt;
/* 0x0194 */ d2d::AnmGroup_c mAnm[29];
/* 0x08D4 */ u8 _0x08D4[0x0970 - 0x08D4];
/* 0x0970 */ dCursorHitCheckLyt_c mCsHitCheck;
/* 0x0998 */ dLytMapIcon00DrawCommand mCommands[100];
/* 0x0E48 */ s32 mModeCheckResult;
/* 0x0E4C */ UNKWORD field_0x0E4C;
/* 0x0E50 */ u8 field_0x0E50;
/* 0x0E51 */ u8 field_0x0E51;
/* 0x0E52 */ u8 field_0x0E52;
/* 0x0E53 */ u8 field_0x0E53;
/* 0x0E54 */ u8 field_0x0E54;
/* 0x0E55 */ u8 field_0x0E55;
/* 0x0E56 */ u8 field_0x0E56;
/* 0x0E57 */ u8 field_0x0E57;
/* 0x0E58 */ u8 field_0x0E58;
/* 0x0E59 */ u8 field_0x0E59;
/* 0x0E59 */ u8 field_0x0E5A;
/* 0x0E5B */ u8 field_0x0E5B[100];
/* 0x0EC0 */ u8 _0x0EC0[0x0EE4 - 0x0EC0];
/* 0x0EE4 */ s32 mNumCommands;
/* 0x0EE8 */ s32 field_0x0EE8;
/* 0x0EEC */ u8 field_0x0EEC[36];
/* 0x0F10 */ u8 _0x0F10[0x0F20 - 0x0F10];
/* 0x0F20 */ u8 field_0x0F20[100];
/* 0x0F84 */ mVec3_c field_0x0F84[77];
/* 0x1320 */ u8 _0x1320[0x1331 - 0x1320];
/* 0x1331 */ u8 mNumCommandsPerPass[17];
/* 0x1342 */ u8 field_0x1342[100];
/* 0x13A6 */ u8 field_0x13A6;
/* 0x13A6 */ u8 field_0x13A7;
/* 0x13A8 */ u8 field_0x13A8[100];
/* 0x140C */ u8 field_0x140C;
/* 0x1410 */ dLytMapPopupConfig mPopupConfigs[30];
/* 0x17D0 */ dLytMapPlace_c mPlace;
/* 0x19B8 */ dLytMapIconAnimState mIconAnims[50];
/* 0x1CCC */ s32 mNumAnims;
/* 0x1CD0 */ mVec3_c field_0x1CD0;
/* 0x1CDC */ u8 field_0x1CDC;
/* 0x1CDD */ u8 field_0x1CDD;
/* 0x1CDE */ u8 field_0x1CDE;
/* 0x1CE0 */ UNKWORD field_0x1CE0;
/* 0x1CE4 */ u8 field_0x1CE4;
/* 0x1CE5 */ u8 field_0x1CE5;
/* 0x1CE6 */ u8 field_0x1CE6;
/* 0x1CE7 */ u8 field_0x1CE7;
};
// TODO, name made up
class dLytMapMarkers_c : public m2d::Base_c {
public:
dLytMapMarkers_c() : field_0x6F0(0), field_0x0702(0), field_0x0703(0), field_0x0704(0.0f) {}
dLytMapMarkers_c()
: mShowIslandNames(false), field_0x0702(0), field_0x0703(0), field_0x0704(0.0f), mNumPopups(0) {}
virtual ~dLytMapMarkers_c() {}
virtual void draw() override;
virtual void build(d2d::ResAccIf_c *resAcc);
virtual bool build(d2d::ResAccIf_c *resAcc);
virtual bool remove();
virtual bool execute();
void setIslandNamesOn(bool on);
void fn_80189B90();
void drawPopups();
void setField_0x6F4(const mVec2_c &v) {
field_0x06F4 = v;
}
private:
/* 0x0010 */ d2d::ResAccIf_c mResAcc1;
/* 0x0380 */ d2d::ResAccIf_c mResAcc2;
void setField_0x0703(u8 v) {
field_0x0703 = v;
}
/* 0x06F0 */ u8 field_0x6F0;
f32 getField_0x0704() const {
return field_0x0704;
}
private:
void resetPopups();
void loadPopups();
/* 0x0010 */ d2d::ResAccIf_c mResAcc00;
/* 0x0380 */ d2d::ResAccIf_c mResAcc01;
/* 0x06F0 */ bool mShowIslandNames;
/* 0x06F4 */ mVec2_c field_0x06F4;
/* 0x06FC */ u8 _0x6FC[0x0702 - 0x06FC];
@@ -339,11 +504,11 @@ private:
/* 0x0702 */ u8 field_0x0703;
/* 0x0704 */ f32 field_0x0704;
/* 0x0708 */ dLytMapPopup_c mMapPopup;
/* 0x088C */ u8 _0x088C[0x0894 - 0x088C];
/* 0x0894 */ MapUnkStruct1 mUnk1[60];
/* 0x0F30 */ dLytMapIcon01_c mIcon01;
/* 0x2780 */ dLytMapIcon00_c mIcon00;
/* 0x0890 */ s32 mNumPopups;
/* 0x0894 */ dLytMapPopupState mPopups[60];
/* 0x0F24 */ const dLytMapPopupConfig *mpPopupConfigs;
/* 0x0F28 */ dLytMapIcon01_c mIcon01;
/* 0x2778 */ dLytMapIcon00_c mIcon00;
};
#endif
+5
View File
@@ -1,6 +1,11 @@
#ifndef MISC_ACTOR_H
#define MISC_ACTOR_H
// TODO - this header might be unnecessary; a lot of functions in
// the split corresponding to this header clearly are REL functions
// that were moved to the DOL because they need to be called from the DOL.
// So ideally all of these declarations were moved to REL class definitions...
bool checkIsInSkykeepPuzzle();
void restoreSkykeepPuzzleFromGlobal();
+63 -15
View File
@@ -2296,7 +2296,7 @@ void dLytMapMain_c::build() {
}
mMarkers.setField_0x6F4(boundingPos2);
mPinIconAggregate.setUnk(&field_0xF1C);
mpPaneBgAll01 = mLyt.findPane("N_mapBgAll_01");
@@ -2344,17 +2344,19 @@ void dLytMapMain_c::draw() {
mFootPrints.draw();
}
if (mCurrentMapMode == dLytMapGlobal_c::MAPMODE_STAGE || mCurrentMapMode == dLytMapGlobal_c::MAPMODE_ZOOM || mNextMapMode == dLytMapGlobal_c::MAPMODE_STAGE || mNextMapMode == dLytMapGlobal_c::MAPMODE_ZOOM) {
if (mCurrentMapMode == dLytMapGlobal_c::MAPMODE_STAGE || mCurrentMapMode == dLytMapGlobal_c::MAPMODE_ZOOM ||
mNextMapMode == dLytMapGlobal_c::MAPMODE_STAGE || mNextMapMode == dLytMapGlobal_c::MAPMODE_ZOOM) {
mMarkers.draw();
}
if (field_0x8C68 != 3 && field_0x8C68 != 5 && field_0x8C94 != 2) {
mPinIconAggregate.draw();
}
fn_80143120(0);
if ((mCurrentMapMode == dLytMapGlobal_c::MAPMODE_STAGE || mCurrentMapMode == dLytMapGlobal_c::MAPMODE_ZOOM) && (mNextMapMode == dLytMapGlobal_c::MAPMODE_STAGE || mNextMapMode == dLytMapGlobal_c::MAPMODE_ZOOM)) {
if ((mCurrentMapMode == dLytMapGlobal_c::MAPMODE_STAGE || mCurrentMapMode == dLytMapGlobal_c::MAPMODE_ZOOM) &&
(mNextMapMode == dLytMapGlobal_c::MAPMODE_STAGE || mNextMapMode == dLytMapGlobal_c::MAPMODE_ZOOM)) {
mpZoomInOutPane->SetVisible(false);
} else {
mpZoomInOutPane->SetVisible(true);
@@ -2362,11 +2364,12 @@ void dLytMapMain_c::draw() {
mpScaleFlamePane->SetVisible(field_0x8DB5 ? true : false);
mLyt.getLayout()->GetRootPane()->Draw(mLyt.getDrawInfo());
if ((mCurrentMapMode == dLytMapGlobal_c::MAPMODE_PROVINCE || mNextMapMode == dLytMapGlobal_c::MAPMODE_PROVINCE) && field_0x8C94 == 10) {
if ((mCurrentMapMode == dLytMapGlobal_c::MAPMODE_PROVINCE || mNextMapMode == dLytMapGlobal_c::MAPMODE_PROVINCE) &&
field_0x8C94 == 10) {
fn_80138D80();
}
fn_80143120(-2);
mMarkers.fn_80189B90();
mMarkers.drawPopups();
mPutIcon.draw();
if (field_0x8C94 == 10) {
mPopupInfo.draw();
@@ -2844,23 +2847,68 @@ void dLytMapMain_c::executeState_ResetPos() {
}
void dLytMapMain_c::finalizeState_ResetPos() {}
void dLytMapMain_c::initializeState_ResetPosWithFloorChange() {}
void dLytMapMain_c::executeState_ResetPosWithFloorChange() {}
void dLytMapMain_c::initializeState_ResetPosWithFloorChange() {
dPadNav::stopFSStickNav();
mMapCapture.renderRequest();
}
void dLytMapMain_c::executeState_ResetPosWithFloorChange() {
if (mMapCapture.isBusyRendering()) {
return;
}
dLytMapGlobal_c *global = getGlobal();
mVec3_c pos;
fn_80142F00(pos, mCurrentMapMode, mMapUpDirection, global->getMapRotationCenter(), global->getField_0x56());
if (global->getMapScroll().squareDistanceToXZ(pos) >= 1.0f) {
mStateMgr.changeState(StateID_ResetPos);
} else {
mStateMgr.changeState(StateID_Active);
}
}
void dLytMapMain_c::finalizeState_ResetPosWithFloorChange() {}
void dLytMapMain_c::initializeState_EventSwBankSmall_Step1() {}
void dLytMapMain_c::executeState_EventSwBankSmall_Step1() {}
void dLytMapMain_c::initializeState_EventSwBankSmall_Step1() {
field_0x8CB0 = sHio.field_0x1D;
field_0x8CB4 = 0;
}
void dLytMapMain_c::executeState_EventSwBankSmall_Step1() {
if (field_0x8CB0 != 0) {
field_0x8CB0--;
return;
}
mMarkers.setField_0x0703(1);
mStateMgr.changeState(StateID_EventSwBankSmall_Step2);
}
void dLytMapMain_c::finalizeState_EventSwBankSmall_Step1() {}
void dLytMapMain_c::initializeState_EventSwBankSmall_Step2() {}
void dLytMapMain_c::executeState_EventSwBankSmall_Step2() {}
void dLytMapMain_c::initializeState_EventSwBankSmall_Step2() {
field_0x8CB0 = mMarkers.getField_0x0704();
}
void dLytMapMain_c::executeState_EventSwBankSmall_Step2() {
if (field_0x8CB0 != 0) {
field_0x8CB0--;
return;
}
mStateMgr.changeState(StateID_EventSwBankSmall_Step3);
}
void dLytMapMain_c::finalizeState_EventSwBankSmall_Step2() {}
void dLytMapMain_c::initializeState_EventSwBankSmall_Step3() {}
void dLytMapMain_c::executeState_EventSwBankSmall_Step3() {}
void dLytMapMain_c::initializeState_EventSwBankSmall_Step3() {
field_0x8CB0 = sHio.field_0x1E;
}
void dLytMapMain_c::executeState_EventSwBankSmall_Step3() {
if (field_0x8CB0 != 0) {
field_0x8CB0--;
return;
}
field_0x8D6B = 1;
}
void dLytMapMain_c::finalizeState_EventSwBankSmall_Step3() {}
void dLytMapMain_c::initializeState_EventMapIntro_Step1() {}
void dLytMapMain_c::initializeState_EventMapIntro_Step1() {
field_0x8CB0 = sHio.field_0x1F;
}
void dLytMapMain_c::executeState_EventMapIntro_Step1() {}
void dLytMapMain_c::finalizeState_EventMapIntro_Step1() {}
File diff suppressed because it is too large Load Diff