mirror of
https://github.com/zeldaret/ss
synced 2026-07-11 06:45:20 -04:00
help
This commit is contained in:
+54
-54
@@ -2484,7 +2484,7 @@ getLinkSoundRelated = .text:0x8005BDA0; // type:function size:0xC
|
||||
fn_8005BDB0 = .text:0x8005BDB0; // type:function size:0xE8
|
||||
unsetRegionBasedFlagsMaybe = .text:0x8005BEA0; // type:function size:0x100
|
||||
getEarringsColor__17daPlayerActBase_cFv = .text:0x8005BFA0; // type:function size:0xB0
|
||||
getLinkTunicSubtype = .text:0x8005C050; // type:function size:0xC
|
||||
getCurrentTunicType__17daPlayerActBase_cFv = .text:0x8005C050; // type:function size:0xC
|
||||
getCurrentSwordType = .text:0x8005C060; // type:function size:0xAC
|
||||
updateCurrentSword__17daPlayerActBase_cFv = .text:0x8005C110; // type:function size:0x24
|
||||
doesPlayerHaveSword = .text:0x8005C140; // type:function size:0x1C
|
||||
@@ -7759,21 +7759,21 @@ __dt__94sStateMgr_c<25dLytMapPinIconAggregate_c,20sStateMethodUsr_FI_c,12sFState
|
||||
__dt__64sFStateMgr_c<25dLytMapPinIconAggregate_c,20sStateMethodUsr_FI_c>Fv = .text:0x801346D0; // type:function size:0xA4
|
||||
__ct__16dLytMapPinIcon_cFv = .text:0x80134780; // type:function size:0x134
|
||||
__dt__25dLytMapPinIconAggregate_cFv = .text:0x801348C0; // type:function size:0xCC
|
||||
fn_80134990 = .text:0x80134990; // type:function size:0x464
|
||||
fn_80134E00 = .text:0x80134E00; // type:function size:0x74
|
||||
fn_80134E80 = .text:0x80134E80; // type:function size:0x10
|
||||
fn_80134E90 = .text:0x80134E90; // type:function size:0x40
|
||||
fn_80134ED0 = .text:0x80134ED0; // type:function size:0x4
|
||||
fn_80134EE0 = .text:0x80134EE0; // type:function size:0x40
|
||||
fn_80134F20 = .text:0x80134F20; // type:function size:0x10
|
||||
fn_80134F30 = .text:0x80134F30; // type:function size:0x40
|
||||
fn_80134F70 = .text:0x80134F70; // type:function size:0xBC
|
||||
fn_80135030 = .text:0x80135030; // type:function size:0x4
|
||||
fn_80135040 = .text:0x80135040; // type:function size:0x40
|
||||
fn_80135080 = .text:0x80135080; // type:function size:0x74
|
||||
fn_80135100 = .text:0x80135100; // type:function size:0x108
|
||||
fn_80135210 = .text:0x80135210; // type:function size:0x234
|
||||
fn_80135450 = .text:0x80135450; // type:function size:0x78
|
||||
__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
|
||||
__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
|
||||
__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
|
||||
__dt__19dLytMapFootPrints_cFv = .text:0x80135450; // type:function size:0x78
|
||||
__ct__16dLytMapPutIcon_cFv = .text:0x801354D0; // type:function size:0x54
|
||||
__dt__16dLytMapPutIcon_cFv = .text:0x80135530; // type:function size:0x5C
|
||||
__ct__16dLytMapSaveObj_cFv = .text:0x80135590; // type:function size:0xC8
|
||||
@@ -9907,31 +9907,31 @@ setInout__14dLytMapPopup_cFf = .text:0x801798A0; // type:function size:0x94
|
||||
setInitialState__14dLytMapPopup_cFv = .text:0x80179940; // type:function size:0xD4
|
||||
updateScale__14dLytMapPopup_cFv = .text:0x80179A20; // type:function size:0xF4
|
||||
checkMapMode__14dLytMapPopup_cFv = .text:0x80179B20; // type:function size:0xAC
|
||||
fn_80179BD0 = .text:0x80179BD0; // type:function size:0x234
|
||||
fn_80179E10 = .text:0x80179E10; // type:function size:0x58
|
||||
fn_80179E70 = .text:0x80179E70; // type:function size:0xBC
|
||||
fn_80179F30 = .text:0x80179F30; // type:function size:0xA8
|
||||
fn_80179FE0 = .text:0x80179FE0; // type:function size:0xB4
|
||||
fn_8017A0A0 = .text:0x8017A0A0; // type:function size:0x3C
|
||||
build__14dLytMapPlace_cFPQ23d2d10ResAccIf_c = .text:0x80179BD0; // type:function size:0x234
|
||||
remove__14dLytMapPlace_cFv = .text:0x80179E10; // type:function size:0x58
|
||||
execute__14dLytMapPlace_cFv = .text:0x80179E70; // type:function size:0xBC
|
||||
draw__14dLytMapPlace_cFv = .text:0x80179F30; // type:function size:0xA8
|
||||
setLabel__14dLytMapPlace_cFPCc = .text:0x80179FE0; // type:function size:0xB4
|
||||
realize__14dLytMapPlace_cFv = .text:0x8017A0A0; // type:function size:0x3C
|
||||
fn_8017A0E0 = .text:0x8017A0E0; // type:function size:0x2A8
|
||||
fn_8017A390 = .text:0x8017A390; // type:function size:0x84
|
||||
setInout__14dLytMapPlace_cFf = .text:0x8017A390; // type:function size:0x84
|
||||
fn_8017A420 = .text:0x8017A420; // type:function size:0x78
|
||||
fn_8017A4A0 = .text:0x8017A4A0; // type:function size:0x94
|
||||
fn_8017A540 = .text:0x8017A540; // type:function size:0x11C
|
||||
fn_8017A660 = .text:0x8017A660; // type:function size:0xF4
|
||||
fn_8017A760 = .text:0x8017A760; // type:function size:0x78
|
||||
fn_8017A7E0 = .text:0x8017A7E0; // type:function size:0x78
|
||||
fn_8017A860 = .text:0x8017A860; // type:function size:0x138
|
||||
fn_8017A9A0 = .text:0x8017A9A0; // type:function size:0x688
|
||||
fn_8017B030 = .text:0x8017B030; // type:function size:0x70
|
||||
fn_8017B0A0 = .text:0x8017B0A0; // type:function size:0x2B8
|
||||
fn_8017B360 = .text:0x8017B360; // type:function size:0x704
|
||||
fn_8017BA70 = .text:0x8017BA70; // type:function size:0x4FC
|
||||
setColor__14dLytMapPlace_cFUl = .text:0x8017A4A0; // type:function size:0x94
|
||||
setInitialState__14dLytMapPlace_cFv = .text:0x8017A540; // type:function size:0x11C
|
||||
updateScale__14dLytMapPlace_cFv = .text:0x8017A660; // type:function size:0xF4
|
||||
realizeText__14dLytMapPlace_cFv = .text:0x8017A760; // type:function size:0x78
|
||||
realizeTextSize__14dLytMapPlace_cFv = .text:0x8017A7E0; // type:function size:0x78
|
||||
realizeBgSize__14dLytMapPlace_cFv = .text:0x8017A860; // type:function size:0x138
|
||||
build__15dLytMapIcon01_cFPQ23d2d10ResAccIf_c = .text:0x8017A9A0; // type:function size:0x688
|
||||
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
|
||||
fn_8017C240 = .text:0x8017C240; // type:function size:0x98
|
||||
setLinkTunic__15dLytMapIcon01_cFl = .text:0x8017C240; // type:function size:0x98
|
||||
fn_8017C2E0 = .text:0x8017C2E0; // type:function size:0xA0
|
||||
fn_8017C380 = .text:0x8017C380; // type:function size:0xA0
|
||||
forGoddessStatueOnSkyFieldMap = .text:0x8017C420; // type:function size:0x74
|
||||
setGoddessStatue__15dLytMapIcon01_cFb = .text:0x8017C420; // type:function size:0x74
|
||||
fn_8017C4A0 = .text:0x8017C4A0; // type:function size:0xA0
|
||||
fn_8017C540 = .text:0x8017C540; // type:function size:0x1C
|
||||
fn_8017C560 = .text:0x8017C560; // type:function size:0x80
|
||||
@@ -9949,16 +9949,16 @@ fn_8017CAF0 = .text:0x8017CAF0; // type:function size:0xC
|
||||
fn_8017CB00 = .text:0x8017CB00; // type:function size:0xC
|
||||
fn_8017CB10 = .text:0x8017CB10; // type:function size:0xC
|
||||
fn_8017CB20 = .text:0x8017CB20; // type:function size:0xC
|
||||
fn_8017CB30 = .text:0x8017CB30; // type:function size:0xB8
|
||||
fn_8017CBF0 = .text:0x8017CBF0; // type:function size:0xB8
|
||||
fn_8017CCB0 = .text:0x8017CCB0; // type:function size:0xAC
|
||||
fn_8017CD60 = .text:0x8017CD60; // type:function size:0xAC
|
||||
fn_8017CE10 = .text:0x8017CE10; // type:function size:0x150
|
||||
drawWithAnimIn = .text:0x8017CB30; // type:function size:0xB8
|
||||
drawWithAnimOut = .text:0x8017CBF0; // type:function size:0xB8
|
||||
drawFullyIn = .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
|
||||
fn_8017D060 = .text:0x8017D060; // type:function size:0xF4
|
||||
fn_8017D160 = .text:0x8017D160; // type:function size:0x17C
|
||||
fn_8017D2E0 = .text:0x8017D2E0; // type:function size:0xB4
|
||||
fn_8017D3A0 = .text:0x8017D3A0; // type:function size:0xB4
|
||||
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
|
||||
@@ -9970,18 +9970,18 @@ 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
|
||||
fn_8017F880 = .text:0x8017F880; // type:function size:0xA8
|
||||
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
|
||||
fn_801811A0 = .text:0x801811A0; // type:function size:0x50
|
||||
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
|
||||
fn_801815D0 = .text:0x801815D0; // type:function size:0x130
|
||||
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
|
||||
@@ -9989,7 +9989,7 @@ 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
|
||||
fn_80181C40 = .text:0x80181C40; // type:function size:0x94
|
||||
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
|
||||
@@ -10066,7 +10066,7 @@ 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
|
||||
setIslandNamesOn__19dLytMapDecoration_cFb = .text:0x80189B30; // type:function size:0x50
|
||||
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
|
||||
@@ -11009,7 +11009,7 @@ fn_801B4C90 = .text:0x801B4C90; // type:function size:0x1C
|
||||
fn_801B4CB0 = .text:0x801B4CB0; // type:function size:0x1C
|
||||
fn_801B4CD0 = .text:0x801B4CD0; // type:function size:0x78
|
||||
fn_801B4D50 = .text:0x801B4D50; // type:function size:0x1BC
|
||||
fn_801B4F10 = .text:0x801B4F10; // type:function size:0x1AC
|
||||
fn_801B4F10__10MapRelatedCFlRC7mVec3_c = .text:0x801B4F10; // type:function size:0x1AC
|
||||
fn_801B50C0 = .text:0x801B50C0; // type:function size:0xB8
|
||||
fn_801B5180 = .text:0x801B5180; // type:function size:0x7F0
|
||||
fn_801B5970 = .text:0x801B5970; // type:function size:0x38
|
||||
@@ -33866,7 +33866,7 @@ 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
|
||||
lbl_80520B80 = .data:0x80520B80; // 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
|
||||
__vt__85sStateMgr_c<16dLytMapCapture_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x80520BC8; // type:object size:0x30
|
||||
@@ -35353,8 +35353,8 @@ 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
|
||||
LytDungeonBokoBaseIcons__vtable = .data:0x8052A840; // type:object size:0x20
|
||||
lbl_8052A860 = .data:0x8052A860; // 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
|
||||
lbl_8052A890 = .data:0x8052A890; // type:object size:0xC8
|
||||
lbl_8052A958 = .data:0x8052A958; // type:object size:0x68
|
||||
|
||||
@@ -64,6 +64,14 @@ public:
|
||||
STATE_FUNC_DECLARE(dAcTbox_c, Wait);
|
||||
STATE_FUNC_DECLARE(dAcTbox_c, GoddessWait);
|
||||
|
||||
u8 getVariant() const {
|
||||
return mVariant;
|
||||
}
|
||||
|
||||
bool hasBeenOpened() const {
|
||||
return mHasBeenOpened;
|
||||
}
|
||||
|
||||
private:
|
||||
static f32 getSomeRate();
|
||||
bool initBgW(dBgW &bg, const char *arcName, const char *fileName);
|
||||
|
||||
@@ -636,10 +636,12 @@ public:
|
||||
static bool isOutOfStamina();
|
||||
static f32 getStamina();
|
||||
|
||||
static s32 getCurrentTunicType();
|
||||
static s32 getCurrentSwordType();
|
||||
static const char *getSwordName(s32);
|
||||
static s32 getCurrentlyEquippedShieldType();
|
||||
|
||||
|
||||
static const mColor &getEarringsColor();
|
||||
|
||||
static mVec3_c sPos1;
|
||||
|
||||
@@ -84,6 +84,7 @@ public:
|
||||
void fn_801B4C70(const mVec3_c &);
|
||||
void fn_801B50C0(s32);
|
||||
const mVec3_c &fn_801B4CB0() const;
|
||||
s32 fn_801B4F10(s32 roomid, const mVec3_c &position) const;
|
||||
};
|
||||
|
||||
// OBJ NAME: STAGE
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
#include "d/lyt/d_lyt_map_global.h"
|
||||
#include "d/lyt/d_textbox.h"
|
||||
#include "d/lyt/d_window.h"
|
||||
#include "d/lyt/d_lyt_map_markers.h"
|
||||
#include "egg/core/eggColorFader.h"
|
||||
#include "m/m2d.h"
|
||||
#include "m/m_angle.h"
|
||||
@@ -467,17 +468,6 @@ private:
|
||||
/* 0x18E */ bool mDecideFinished;
|
||||
};
|
||||
|
||||
// TODO, name made up
|
||||
class dLytMapDecoration_c : public m2d::Base_c {
|
||||
public:
|
||||
dLytMapDecoration_c() {}
|
||||
virtual ~dLytMapDecoration_c() {}
|
||||
virtual void draw() override;
|
||||
virtual void build(d2d::ResAccIf_c *resAcc);
|
||||
|
||||
void setIslandNamesOn(bool on);
|
||||
void fn_80189B90();
|
||||
};
|
||||
|
||||
/** 2D UI - Map - beacon preview icon following the cursor */
|
||||
class dLytMapPutIcon_c {
|
||||
@@ -605,10 +595,9 @@ private:
|
||||
/* 0x0F24 */ dLytMapCapture_c mMapCapture;
|
||||
/* 0x0FA0 */ dLytMapFloorBtnMgr_c mFloorBtnMgr;
|
||||
/* 0x16B4 */ dLytMapPinIconAggregate_c mPinIconAggregate;
|
||||
/* 0x2060 */ dLytMapMarkers_c mMarkers;
|
||||
|
||||
/* 0x2060 */ dLytMapDecoration_c field_0x2060;
|
||||
|
||||
/* 0x2070 */ u8 _0x2070[0x64C0 - 0x2070];
|
||||
/* 0x5F54 */ u8 _0x5F54[0x64C0 - 0x5F54];
|
||||
|
||||
/* 0x64C0 */ dLytMapFootPrints_c mFootPrints;
|
||||
|
||||
|
||||
@@ -68,6 +68,10 @@ public:
|
||||
return mPlayerPosition;
|
||||
}
|
||||
|
||||
u8 getField_0x55() const {
|
||||
return field_0x55;
|
||||
}
|
||||
|
||||
const mAng &getField_0x56() const {
|
||||
return field_0x56;
|
||||
}
|
||||
@@ -145,7 +149,8 @@ private:
|
||||
/* 0x4E */ u8 mAlpha;
|
||||
/* 0x4F */ u8 field_0x4F;
|
||||
/* 0x50 */ UNKWORD field_0x50;
|
||||
/* 0x54 */ u8 _0x54[0x56 - 0x54];
|
||||
/* 0x54 */ u8 field_0x54;
|
||||
/* 0x55 */ u8 field_0x55;
|
||||
/* 0x56 */ mAng field_0x56;
|
||||
/* 0x58 */ f32 field_0x58;
|
||||
/* 0x5C */ s32 mCurrentMapMode;
|
||||
|
||||
@@ -1,16 +1,100 @@
|
||||
#ifndef D_LYT_MAP_MARKERS_H
|
||||
#define D_LYT_MAP_MARKERS_H
|
||||
|
||||
#include "d/d_cursor_hit_check.h"
|
||||
#include "d/lyt/d2d.h"
|
||||
#include "d/lyt/d_textbox.h"
|
||||
#include "d/lyt/d_window.h"
|
||||
#include "m/m_angle.h"
|
||||
#include "m/m_vec.h"
|
||||
#include "nw4r/lyt/lyt_bounding.h"
|
||||
#include "nw4r/lyt/lyt_pane.h"
|
||||
#include "sized_string.h"
|
||||
|
||||
class dAcBase_c;
|
||||
class dAcTbox_c;
|
||||
|
||||
// Size: 0x1C
|
||||
struct MapUnkStruct1 {
|
||||
public:
|
||||
MapUnkStruct1() {}
|
||||
~MapUnkStruct1() {}
|
||||
|
||||
/* 0x00 */ u8 _0x00[0x1C];
|
||||
};
|
||||
|
||||
/**
|
||||
* Since a map has a dynamic number of actors, the layout
|
||||
* doesn't actually contain multiple panes for each icon -
|
||||
* instead it contains one copy per icon, and then the custom
|
||||
* draw function simply reads a bunch of draw commands to position
|
||||
* and draw the panes, potentially using a pane multiple times.
|
||||
*
|
||||
* Size: 0xC
|
||||
*/
|
||||
struct dLytMapIcon01DrawCommand {
|
||||
public:
|
||||
dLytMapIcon01DrawCommand() {}
|
||||
~dLytMapIcon01DrawCommand() {}
|
||||
|
||||
/* 0x00 */ mVec2_c position;
|
||||
/* 0x08 */ mAng rotation;
|
||||
/* 0x0A */ u8 paneIdx;
|
||||
/* 0x0B */ u8 passIdx;
|
||||
};
|
||||
|
||||
// Size: 0x20
|
||||
struct MapUnkStruct3 {
|
||||
public:
|
||||
MapUnkStruct3() {}
|
||||
~MapUnkStruct3() {}
|
||||
|
||||
/* 0x00 */ UNKWORD field_0x00;
|
||||
/* 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;
|
||||
};
|
||||
|
||||
// Size: 0xC
|
||||
struct MapUnkStruct4 {
|
||||
public:
|
||||
MapUnkStruct4() {}
|
||||
~MapUnkStruct4() {}
|
||||
|
||||
/* 0x00 */ f32 field_0x00;
|
||||
/* 0x04 */ f32 field_0x04;
|
||||
/* 0x08 */ u16 field_0x08;
|
||||
/* 0x0A */ u8 field_0x0A;
|
||||
/* 0x0B */ u8 field_0x0B;
|
||||
};
|
||||
|
||||
/**
|
||||
* Since map icons are completely virtual, we need to separately
|
||||
* track animation state if there are special in/out animations.
|
||||
*
|
||||
* Size: 0x10
|
||||
*/
|
||||
struct dLytMapIconAnimState {
|
||||
public:
|
||||
// no ctor/dtor
|
||||
|
||||
/* 0x00 */ UNKWORD cmdIndex;
|
||||
/* 0x04 */ f32 frame;
|
||||
/* 0x08 */ u8 animIn;
|
||||
/* 0x09 */ u8 animOut;
|
||||
/* 0x0A */ u8 idleVisible;
|
||||
/* 0x0B */ u8 field_0x0B;
|
||||
/* 0x0C */ bool visible;
|
||||
};
|
||||
|
||||
/** 2D UI - Map - Popup text that appears when pointing at certain points of interest */
|
||||
class dLytMapPopup_c {
|
||||
public:
|
||||
dLytMapPopup_c() {}
|
||||
dLytMapPopup_c() : mLabel("MAP_00") {}
|
||||
virtual ~dLytMapPopup_c() {}
|
||||
|
||||
bool build(d2d::ResAccIf_c *resAcc);
|
||||
@@ -50,4 +134,216 @@ private:
|
||||
/* 0x180 */ UNKWORD field_0x180;
|
||||
};
|
||||
|
||||
/** 2D UI - Map - Text holding area names (on the world/province view, or exits on the stage view) */
|
||||
class dLytMapPlace_c {
|
||||
public:
|
||||
dLytMapPlace_c() {}
|
||||
virtual ~dLytMapPlace_c() {}
|
||||
|
||||
bool build(d2d::ResAccIf_c *resAcc);
|
||||
bool remove();
|
||||
bool execute();
|
||||
void draw();
|
||||
|
||||
void setLabel(const char *label);
|
||||
void setInout(f32 value);
|
||||
void setColor(u32 value);
|
||||
|
||||
void realize();
|
||||
|
||||
private:
|
||||
enum ModeCheck_e {
|
||||
MODE_TRANSITION_TO_ZOOM = 2,
|
||||
MODE_TRANSITION_TO_STAGE = 3,
|
||||
MODE_STABLE_STAGE = 4,
|
||||
MODE_STABLE_ZOOM = 5,
|
||||
};
|
||||
|
||||
void realizeText();
|
||||
void setInitialState();
|
||||
void updateScale();
|
||||
void realizeTextSize();
|
||||
void realizeBgSize();
|
||||
|
||||
/* 0x004 */ d2d::LytBase_c mLyt;
|
||||
/* 0x094 */ d2d::AnmGroup_c mAnm[3];
|
||||
/* 0x154 */ SizedString<0x40> mLabel;
|
||||
/* 0x194 */ nw4r::lyt::Pane *mpPanes[2];
|
||||
/* 0x19C */ nw4r::lyt::Pane *mpBgPanes[3];
|
||||
/* 0x1A8 */ dTextBox_c *mpTextboxes[3];
|
||||
/* 0x1B4 */ dWindow_c *mpWindow[1];
|
||||
/* 0x1B8 */ dTextBox_c *mpSizeBox[1];
|
||||
/* 0x1BC */ s32 mModeCheckResult;
|
||||
/* 0x1C0 */ f32 field_0x1C0;
|
||||
/* 0x1C4 */ f32 field_0x1C4;
|
||||
/* 0x1C8 */ mVec2_c field_0x1C8;
|
||||
/* 0x1D0 */ u8 _0x1D0[0x1D8 - 0x1D0];
|
||||
/* 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 {
|
||||
public:
|
||||
dLytMapIcon01_c() {}
|
||||
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,
|
||||
};
|
||||
|
||||
void setupActorDrawCommands();
|
||||
void setupStageDrawCommands();
|
||||
void setupLinkDrawCommand();
|
||||
void setupTriforceDrawCommands();
|
||||
void setupUnkDrawCommand();
|
||||
|
||||
void sortDrawCommands();
|
||||
|
||||
void setupTboxDrawCommand(dAcBase_c *actor);
|
||||
void setupTboxDrawCommandGoddessClosed(dAcTbox_c *box);
|
||||
void setupTboxDrawCommandOpen(dAcTbox_c *box);
|
||||
void setupTboxDrawCommandClosed(dAcTbox_c *box);
|
||||
|
||||
void setLinkTunic(s32 type);
|
||||
void setGoddessStatue(bool 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 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 checkMapMode();
|
||||
void loadFlags();
|
||||
|
||||
/* 0x0010 */ nw4r::lyt::Bounding *mpBoundings[59];
|
||||
/* 0x00FC */ nw4r::lyt::Pane *mpSpecialPanes[27];
|
||||
/* 0x0168 */ nw4r::lyt::Pane *mpSpecialPictures[27];
|
||||
/* 0x01D4 */ nw4r::lyt::Pane *mpTerryOnOffPane;
|
||||
/* 0x01D8 */ d2d::ResAccIf_c *mpResAcc;
|
||||
/* 0x01DC */ d2d::LytBase_c mLyt;
|
||||
/* 0x026C */ d2d::AnmGroup_c mAnm[18];
|
||||
/* 0x06EC */ nw4r::lyt::Pane *mpPanes[42];
|
||||
/* 0x0794 */ dCursorHitCheckLyt_c mCsHitCheck;
|
||||
/* 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;
|
||||
/* 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;
|
||||
/* 0x0D14 */ u8 mNumCommandsPerPass[35];
|
||||
/* 0x0D37 */ u8 mNumCommands;
|
||||
|
||||
/* 0x0D38 */ u8 _0x0D38[0x0D3A - 0x0D38];
|
||||
|
||||
/* 0x0D3A */ mAng field_0x0D3A;
|
||||
|
||||
/* 0x0D3C */ u8 _0x0D3C[0x0D40 - 0x0D3C];
|
||||
|
||||
/* 0x0D40 */ mVec2_c field_0x0D40;
|
||||
/* 0x0D48 */ u8 field_0x0D48;
|
||||
/* 0x0D49 */ u8 field_0x0D49;
|
||||
/* 0x0D4A */ u8 field_0x0D4A;
|
||||
/* 0x0D4B */ u8 field_0x0D4B[100]; // ???
|
||||
|
||||
/* 0x0DAF */ u8 _0x0DAF[0x0E13 - 0x0DAF];
|
||||
|
||||
/* 0x0E13 */ u8 field_0x0E13;
|
||||
/* 0x0E14 */ MapUnkStruct3 mUnk3[56];
|
||||
/* 0x1514 */ dLytMapIconAnimState mIconAnims[50];
|
||||
/* 0x1834 */ s32 mNumAnims;
|
||||
/* 0x1838 */ f32 field_0x1838;
|
||||
/* 0x183C */ f32 field_0x183C;
|
||||
|
||||
/* 0x1840 */ u8 _0x183C[0x1845 - 0x1840];
|
||||
|
||||
/* 0x1845 */ u8 field_0x1845;
|
||||
|
||||
/* 0x1846 */ u8 _0x1846[0x184C - 0x1846];
|
||||
|
||||
/* 0x184C */ bool field_0x184C;
|
||||
};
|
||||
|
||||
// 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) {}
|
||||
virtual ~dLytMapMarkers_c() {}
|
||||
virtual void draw() override;
|
||||
virtual void build(d2d::ResAccIf_c *resAcc);
|
||||
|
||||
void setIslandNamesOn(bool on);
|
||||
void fn_80189B90();
|
||||
|
||||
void setField_0x6F4(const mVec2_c &v) {
|
||||
field_0x06F4 = v;
|
||||
}
|
||||
|
||||
private:
|
||||
/* 0x0010 */ d2d::ResAccIf_c mResAcc1;
|
||||
/* 0x0380 */ d2d::ResAccIf_c mResAcc2;
|
||||
|
||||
/* 0x06F0 */ u8 field_0x6F0;
|
||||
/* 0x06F4 */ mVec2_c field_0x06F4;
|
||||
|
||||
/* 0x06FC */ u8 _0x6FC[0x0702 - 0x06FC];
|
||||
|
||||
/* 0x0702 */ u8 field_0x0702;
|
||||
/* 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;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -17,6 +17,10 @@ struct mAng {
|
||||
return *this;
|
||||
}
|
||||
|
||||
void setF(const f32 &f) {
|
||||
mVal = f;
|
||||
}
|
||||
|
||||
static mAng atan2s(f32 a, f32 b) {
|
||||
return mAng(cM::atan2s(a, b));
|
||||
}
|
||||
|
||||
@@ -2207,7 +2207,7 @@ void dLytMapMain_c::build() {
|
||||
|
||||
d2d::dSubPane::linkMeters(mLyt.getLayout()->GetGroupContainer()->FindGroupByName(sGroupName), &mSubpaneList);
|
||||
mFootPrints.build(resAcc);
|
||||
field_0x2060.build(resAcc);
|
||||
mMarkers.build(resAcc);
|
||||
|
||||
mPinIconAggregate.build(resAcc);
|
||||
mPutIcon.build(resAcc);
|
||||
@@ -2295,8 +2295,7 @@ void dLytMapMain_c::build() {
|
||||
mpPriorityGroups[i] = mLyt.findGroupByName(sPriorityGroupNames[i]);
|
||||
}
|
||||
|
||||
// TODO
|
||||
((mVec2_c*)(_0x2070 + 0x6E4))->set(boundingPos2.x, boundingPos2.y);
|
||||
mMarkers.setField_0x6F4(boundingPos2);
|
||||
|
||||
mPinIconAggregate.setUnk(&field_0xF1C);
|
||||
|
||||
@@ -2346,7 +2345,7 @@ void dLytMapMain_c::draw() {
|
||||
}
|
||||
|
||||
if (mCurrentMapMode == dLytMapGlobal_c::MAPMODE_STAGE || mCurrentMapMode == dLytMapGlobal_c::MAPMODE_ZOOM || mNextMapMode == dLytMapGlobal_c::MAPMODE_STAGE || mNextMapMode == dLytMapGlobal_c::MAPMODE_ZOOM) {
|
||||
field_0x2060.draw();
|
||||
mMarkers.draw();
|
||||
}
|
||||
|
||||
if (field_0x8C68 != 3 && field_0x8C68 != 5 && field_0x8C94 != 2) {
|
||||
@@ -2367,7 +2366,7 @@ void dLytMapMain_c::draw() {
|
||||
fn_80138D80();
|
||||
}
|
||||
fn_80143120(-2);
|
||||
field_0x2060.fn_80189B90();
|
||||
mMarkers.fn_80189B90();
|
||||
mPutIcon.draw();
|
||||
if (field_0x8C94 == 10) {
|
||||
mPopupInfo.draw();
|
||||
@@ -2448,7 +2447,7 @@ void dLytMapMain_c::executeState_Active() {
|
||||
dSndSmallEffectMgr_c::GetInstance()->playSound(SE_S_MAP_ISLAND_NAME_ON);
|
||||
}
|
||||
mIslandNamesOn = !mIslandNamesOn;
|
||||
field_0x2060.setIslandNamesOn(mIslandNamesOn);
|
||||
mMarkers.setIslandNamesOn(mIslandNamesOn);
|
||||
}
|
||||
checkScroll();
|
||||
|
||||
@@ -2713,10 +2712,10 @@ void dLytMapMain_c::initializeState_ChgDispAreaMode_MapRot() {
|
||||
mAnmGroups[MAP_MAIN_ANIM_ROTATE].setToEnd();
|
||||
}
|
||||
if (mNextMapMode == dLytMapGlobal_c::MAPMODE_ZOOM) {
|
||||
field_0x2060.setIslandNamesOn(false);
|
||||
mMarkers.setIslandNamesOn(false);
|
||||
}
|
||||
if (mNextMapMode == dLytMapGlobal_c::MAPMODE_STAGE) {
|
||||
field_0x2060.setIslandNamesOn(mIslandNamesOn);
|
||||
mMarkers.setIslandNamesOn(mIslandNamesOn);
|
||||
}
|
||||
|
||||
if (mCurrentMapMode == dLytMapGlobal_c::MAPMODE_ZOOM && mNextMapMode == dLytMapGlobal_c::MAPMODE_STAGE) {
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user