mirror of
https://github.com/zeldaret/ss
synced 2026-09-06 18:51:12 -04:00
Merge pull request #224 from robojumper/d_pad_nav
d_pad_nav, d_cs_base OK
This commit is contained in:
@@ -1256,9 +1256,11 @@ d/a/d_a_salbage_npc.cpp:
|
||||
.data start:0x8052B078 end:0x8052B618
|
||||
.bss start:0x805B22E8 end:0x805B2428
|
||||
|
||||
toBeSorted/d_unk_pad.cpp:
|
||||
d/d_pad_nav.cpp:
|
||||
.text start:0x80194080 end:0x801946F4 align:16
|
||||
.sdata start:0x80572D10 end:0x80572D18
|
||||
.sbss start:0x80575690 end:0x805756A8
|
||||
.sdata2 start:0x8057AE80 end:0x8057AE88
|
||||
|
||||
toBeSorted/goddess_chest_counter.cpp:
|
||||
.text start:0x80194700 end:0x8019486C align:16
|
||||
|
||||
+58
-58
@@ -10397,18 +10397,18 @@ fn_80193F60 = .text:0x80193F60; // type:function size:0x88
|
||||
fn_80193FF0 = .text:0x80193FF0; // type:function size:0x30
|
||||
fn_80194020 = .text:0x80194020; // type:function size:0x30
|
||||
fn_80194050 = .text:0x80194050; // type:function size:0x30
|
||||
fn_80194080 = .text:0x80194080; // type:function size:0x38
|
||||
fn_801940C0 = .text:0x801940C0; // type:function size:0x228
|
||||
fn_801942F0 = .text:0x801942F0; // type:function size:0x54
|
||||
fn_80194350 = .text:0x80194350; // type:function size:0x16C
|
||||
fn_801944C0 = .text:0x801944C0; // type:function size:0xB0
|
||||
fn_80194570 = .text:0x80194570; // type:function size:0x14
|
||||
fn_80194590 = .text:0x80194590; // type:function size:0xC
|
||||
fn_801945A0 = .text:0x801945A0; // type:function size:0xC
|
||||
fn_801945B0 = .text:0x801945B0; // type:function size:0xC
|
||||
fn_801945C0 = .text:0x801945C0; // type:function size:0x84
|
||||
fn_80194650 = .text:0x80194650; // type:function size:0x84
|
||||
fn_801946E0 = .text:0x801946E0; // type:function size:0x14
|
||||
init__7dPadNavFv = .text:0x80194080; // type:function size:0x38
|
||||
calc__7dPadNavFv = .text:0x801940C0; // type:function size:0x228
|
||||
setNavEnabled__7dPadNavFbb = .text:0x801942F0; // type:function size:0x54
|
||||
getFSStickDirectionTrig__7dPadNavFv = .text:0x80194350; // type:function size:0x16C
|
||||
getFSStickDirection__7dPadNavFv = .text:0x801944C0; // type:function size:0xB0
|
||||
stopFSStickNav__7dPadNavFv = .text:0x80194570; // type:function size:0x14
|
||||
hidePointer__7dPadNavFv = .text:0x80194590; // type:function size:0xC
|
||||
setCursorStickInvisible__7dPadNavFv = .text:0x801945A0; // type:function size:0xC
|
||||
setCursorStickVisible__7dPadNavFv = .text:0x801945B0; // type:function size:0xC
|
||||
checkForNavLeftGesture__7dPadNavFv = .text:0x801945C0; // type:function size:0x84
|
||||
checkForNavRightGesture__7dPadNavFv = .text:0x80194650; // type:function size:0x84
|
||||
scrollRelated__7dPadNavFv = .text:0x801946E0; // type:function size:0x14
|
||||
fn_80194700 = .text:0x80194700; // type:function size:0x40
|
||||
GoddessChestsOpenedCounter__getCommittedValue = .text:0x80194740; // type:function size:0x1C
|
||||
GoddessChestsOpenedCounter__getUncommittedValue = .text:0x80194760; // type:function size:0x1C
|
||||
@@ -11237,10 +11237,10 @@ superID__30sFStateVirtualID_c<9dScGame_c>CFv = .text:0x801BC550; // type:functio
|
||||
isSameName__23sFStateID_c<9dScGame_c>CFPCc = .text:0x801BC630; // type:function size:0x88
|
||||
dCsBase_c_classInit__Fv = .text:0x801BC6C0; // type:function size:0x30
|
||||
__ct__9dCsBase_cFv = .text:0x801BC6F0; // type:function size:0x1AC
|
||||
__dt__30sFState_c<17dLytCursorStick_c>Fv = .text:0x801BC8A0; // type:function size:0x58
|
||||
__dt__33sFStateFct_c<17dLytCursorStick_c>Fv = .text:0x801BC900; // type:function size:0x6C
|
||||
__dt__86sStateMgr_c<17dLytCursorStick_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x801BC970; // type:function size:0xA0
|
||||
__dt__56sFStateMgr_c<17dLytCursorStick_c,20sStateMethodUsr_FI_c>Fv = .text:0x801BCA10; // type:function size:0xA4
|
||||
__dt__30sFState_c<17dLytCursorStick_c>Fv = .text:0x801BC8A0; // type:function size:0x58 scope:weak
|
||||
__dt__33sFStateFct_c<17dLytCursorStick_c>Fv = .text:0x801BC900; // type:function size:0x6C scope:weak
|
||||
__dt__86sStateMgr_c<17dLytCursorStick_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x801BC970; // type:function size:0xA0 scope:weak
|
||||
__dt__56sFStateMgr_c<17dLytCursorStick_c,20sStateMethodUsr_FI_c>Fv = .text:0x801BCA10; // type:function size:0xA4 scope:weak
|
||||
__dt__9dCsBase_cFv = .text:0x801BCAC0; // type:function size:0x158
|
||||
create__9dCsBase_cFv = .text:0x801BCC20; // type:function size:0x104
|
||||
doDelete__9dCsBase_cFv = .text:0x801BCD30; // type:function size:0x44
|
||||
@@ -11249,18 +11249,18 @@ draw__9dCsBase_cFv = .text:0x801BCF70; // type:function size:0xB0
|
||||
setCurrentLyt__9dCsBase_cFi = .text:0x801BD020; // type:function size:0x14
|
||||
update__9dCsBase_cFv = .text:0x801BD040; // type:function size:0x10
|
||||
drawDirectly__9dCsBase_cFv = .text:0x801BD050; // type:function size:0xBC
|
||||
build__33sFStateFct_c<17dLytCursorStick_c>FRC12sStateIDIf_c = .text:0x801BD110; // type:function size:0x60
|
||||
dispose__33sFStateFct_c<17dLytCursorStick_c>FRP10sStateIf_c = .text:0x801BD170; // type:function size:0xC
|
||||
initialize__30sFState_c<17dLytCursorStick_c>Fv = .text:0x801BD180; // type:function size:0x1C
|
||||
execute__30sFState_c<17dLytCursorStick_c>Fv = .text:0x801BD1A0; // type:function size:0x1C
|
||||
finalize__30sFState_c<17dLytCursorStick_c>Fv = .text:0x801BD1C0; // type:function size:0x1C
|
||||
initializeState__86sStateMgr_c<17dLytCursorStick_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x801BD1E0; // type:function size:0x10
|
||||
finalizeState__86sStateMgr_c<17dLytCursorStick_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x801BD1F0; // type:function size:0x10
|
||||
refreshState__86sStateMgr_c<17dLytCursorStick_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x801BD200; // type:function size:0x10
|
||||
getState__86sStateMgr_c<17dLytCursorStick_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x801BD210; // type:function size:0x10
|
||||
getNewStateID__86sStateMgr_c<17dLytCursorStick_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x801BD220; // type:function size:0x10
|
||||
getStateID__86sStateMgr_c<17dLytCursorStick_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x801BD230; // type:function size:0x10
|
||||
getOldStateID__86sStateMgr_c<17dLytCursorStick_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x801BD240; // type:function size:0x10
|
||||
build__33sFStateFct_c<17dLytCursorStick_c>FRC12sStateIDIf_c = .text:0x801BD110; // type:function size:0x60 scope:weak
|
||||
dispose__33sFStateFct_c<17dLytCursorStick_c>FRP10sStateIf_c = .text:0x801BD170; // type:function size:0xC scope:weak
|
||||
initialize__30sFState_c<17dLytCursorStick_c>Fv = .text:0x801BD180; // type:function size:0x1C scope:weak
|
||||
execute__30sFState_c<17dLytCursorStick_c>Fv = .text:0x801BD1A0; // type:function size:0x1C scope:weak
|
||||
finalize__30sFState_c<17dLytCursorStick_c>Fv = .text:0x801BD1C0; // type:function size:0x1C scope:weak
|
||||
initializeState__86sStateMgr_c<17dLytCursorStick_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x801BD1E0; // type:function size:0x10 scope:weak
|
||||
finalizeState__86sStateMgr_c<17dLytCursorStick_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x801BD1F0; // type:function size:0x10 scope:weak
|
||||
refreshState__86sStateMgr_c<17dLytCursorStick_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>Fv = .text:0x801BD200; // type:function size:0x10 scope:weak
|
||||
getState__86sStateMgr_c<17dLytCursorStick_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x801BD210; // type:function size:0x10 scope:weak
|
||||
getNewStateID__86sStateMgr_c<17dLytCursorStick_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x801BD220; // type:function size:0x10 scope:weak
|
||||
getStateID__86sStateMgr_c<17dLytCursorStick_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x801BD230; // type:function size:0x10 scope:weak
|
||||
getOldStateID__86sStateMgr_c<17dLytCursorStick_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c>CFv = .text:0x801BD240; // type:function size:0x10 scope:weak
|
||||
dCsGame_c_classInit__Fv = .text:0x801BD250; // type:function size:0x30
|
||||
__ct__13dCsGame_HIO_cFv = .text:0x801BD280; // type:function size:0x8C
|
||||
__dt__13dCsGame_HIO_cFv = .text:0x801BD310; // type:function size:0x40
|
||||
@@ -35535,13 +35535,13 @@ lbl_8052E774 = .data:0x8052E774; // type:object size:0x80
|
||||
__vt__30sFStateVirtualID_c<9dScGame_c> = .data:0x8052E7F4; // type:object size:0x34
|
||||
lbl_8052E828 = .data:0x8052E828; // type:object size:0x38
|
||||
g_profile_C_BASE = .data:0x8052E860; // type:object size:0xC
|
||||
lbl_8052E86C = .data:0x8052E86C; // type:object size:0x10
|
||||
lbl_8052E87C = .data:0x8052E87C; // type:object size:0x10
|
||||
@13263 = .data:0x8052E86C; // type:object size:0xD scope:local data:string
|
||||
@13264 = .data:0x8052E87C; // type:object size:0xD scope:local data:string
|
||||
__vt__9dCsBase_c = .data:0x8052E88C; // type:object size:0x4C
|
||||
__vt__56sFStateMgr_c<17dLytCursorStick_c,20sStateMethodUsr_FI_c> = .data:0x8052E8D8; // type:object size:0x30
|
||||
__vt__86sStateMgr_c<17dLytCursorStick_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x8052E908; // type:object size:0x30
|
||||
__vt__33sFStateFct_c<17dLytCursorStick_c> = .data:0x8052E938; // type:object size:0x14
|
||||
__vt__30sFState_c<17dLytCursorStick_c> = .data:0x8052E950; // type:object size:0x18
|
||||
__vt__56sFStateMgr_c<17dLytCursorStick_c,20sStateMethodUsr_FI_c> = .data:0x8052E8D8; // type:object size:0x30 scope:weak
|
||||
__vt__86sStateMgr_c<17dLytCursorStick_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x8052E908; // type:object size:0x30 scope:weak
|
||||
__vt__33sFStateFct_c<17dLytCursorStick_c> = .data:0x8052E938; // type:object size:0x14 scope:weak
|
||||
__vt__30sFState_c<17dLytCursorStick_c> = .data:0x8052E950; // type:object size:0x18 scope:weak
|
||||
g_profile_C_GAME = .data:0x8052E968; // type:object size:0xC
|
||||
lbl_8052E974 = .data:0x8052E974; // type:object size:0x10
|
||||
lbl_8052E984 = .data:0x8052E984; // type:object size:0x10
|
||||
@@ -39890,9 +39890,9 @@ lbl_80572CFC = .sdata:0x80572CFC; // type:object size:0x4
|
||||
lbl_80572D00 = .sdata:0x80572D00; // type:object size:0x8
|
||||
lbl_80572D08 = .sdata:0x80572D08; // type:object size:0x4 data:4byte
|
||||
lbl_80572D0C = .sdata:0x80572D0C; // type:object size:0x4 data:4byte
|
||||
lbl_80572D10 = .sdata:0x80572D10; // type:object size:0x1 data:byte
|
||||
lbl_80572D11 = .sdata:0x80572D11; // type:object size:0x1 data:byte
|
||||
lbl_80572D12 = .sdata:0x80572D12; // type:object size:0x6 data:byte
|
||||
sIsPointerVisible__7dPadNav = .sdata:0x80572D10; // type:object size:0x1 data:byte
|
||||
sPrevIsPointerVisible__7dPadNav = .sdata:0x80572D11; // type:object size:0x1 data:byte
|
||||
sIsCursorStickVisible__7dPadNav = .sdata:0x80572D12; // type:object size:0x1 data:byte
|
||||
lbl_80572D18 = .sdata:0x80572D18; // type:object size:0x8
|
||||
lbl_80572D20 = .sdata:0x80572D20; // type:object size:0x8
|
||||
lbl_80572D28 = .sdata:0x80572D28; // type:object size:0x8
|
||||
@@ -40132,10 +40132,10 @@ lbl_80573414 = .sdata:0x80573414; // type:object size:0x8
|
||||
lbl_8057341C = .sdata:0x8057341C; // type:object size:0x8
|
||||
lbl_80573424 = .sdata:0x80573424; // type:object size:0x8
|
||||
lbl_8057342C = .sdata:0x8057342C; // type:object size:0x4
|
||||
lbl_80573430 = .sdata:0x80573430; // type:object size:0x8 data:4byte
|
||||
lbl_80573438 = .sdata:0x80573438; // type:object size:0x4 data:4byte
|
||||
lbl_8057343C = .sdata:0x8057343C; // type:object size:0x8
|
||||
lbl_80573444 = .sdata:0x80573444; // type:object size:0x4 data:string
|
||||
sLytNames = .sdata:0x80573430; // type:object size:0x8 scope:local data:4byte
|
||||
@13276 = .sdata:0x80573438; // type:object size:0x4 scope:local data:4byte
|
||||
@13956 = .sdata:0x8057343C; // type:object size:0x7 scope:local data:string
|
||||
@13957 = .sdata:0x80573444; // type:object size:0x4 scope:local data:string
|
||||
lbl_80573448 = .sdata:0x80573448; // type:object size:0x8
|
||||
lbl_80573450 = .sdata:0x80573450; // type:object size:0x4 data:string
|
||||
lbl_80573454 = .sdata:0x80573454; // type:object size:0x8
|
||||
@@ -41603,15 +41603,15 @@ lbl_80575670 = .sbss:0x80575670; // type:object size:0x8 data:byte
|
||||
lbl_80575678 = .sbss:0x80575678; // type:object size:0x8 data:4byte
|
||||
lbl_80575680 = .sbss:0x80575680; // type:object size:0x8 data:4byte
|
||||
sInstance__15SaveTimeRelated = .sbss:0x80575688; // type:object size:0x8 data:4byte
|
||||
lbl_80575690 = .sbss:0x80575690; // type:object size:0x1 data:byte
|
||||
lbl_80575691 = .sbss:0x80575691; // type:object size:0x1 data:byte
|
||||
lbl_80575692 = .sbss:0x80575692; // type:object size:0x1 data:byte
|
||||
lbl_80575693 = .sbss:0x80575693; // type:object size:0x1 data:byte
|
||||
lbl_80575694 = .sbss:0x80575694; // type:object size:0x4 data:4byte
|
||||
lbl_80575698 = .sbss:0x80575698; // type:object size:0x4 data:4byte
|
||||
lbl_8057569C = .sbss:0x8057569C; // type:object size:0x4 data:4byte
|
||||
lbl_805756A0 = .sbss:0x805756A0; // type:object size:0x4 data:4byte
|
||||
lbl_805756A4 = .sbss:0x805756A4; // type:object size:0x4 data:4byte
|
||||
sIsNavEnabled__7dPadNav = .sbss:0x80575690; // type:object size:0x1 data:byte
|
||||
sIsMplsNavLeftGesture__7dPadNav = .sbss:0x80575691; // type:object size:0x1 data:byte
|
||||
sIsMplsNavRightGesture__7dPadNav = .sbss:0x80575692; // type:object size:0x1 data:byte
|
||||
sDisableAutoReturnToPointerNav__7dPadNav = .sbss:0x80575693; // type:object size:0x1 scope:local data:byte
|
||||
sFSStickDirection__7dPadNav = .sbss:0x80575694; // type:object size:0x4 data:4byte
|
||||
sFSStickNavDirection__7dPadNav = .sbss:0x80575698; // type:object size:0x4 data:4byte
|
||||
sFSStickNavActiveTimer__7dPadNav = .sbss:0x8057569C; // type:object size:0x4 scope:local data:4byte
|
||||
sFSStickDirectionStableTimer__7dPadNav = .sbss:0x805756A0; // type:object size:0x4 scope:local data:4byte
|
||||
sMPLSNavGestureTimer__7dPadNav = .sbss:0x805756A4; // type:object size:0x4 scope:local data:4byte
|
||||
sInstance__19GoddessChestCounter = .sbss:0x805756A8; // type:object size:0x8 data:4byte
|
||||
sInstance__9dScBoot_c = .sbss:0x805756B0; // type:object size:0x4 data:4byte
|
||||
sInstance__11dTitleMgr_c = .sbss:0x805756B4; // type:object size:0x4 data:4byte
|
||||
@@ -41687,7 +41687,7 @@ sReloaderType__9dScGame_c = .sbss:0x8057579D; // type:object size:0x1 data:byte
|
||||
sCopyFileBToCurrentAfterRespawn__9dScGame_c = .sbss:0x8057579E; // type:object size:0x1 data:byte
|
||||
sDoSomethingWithFileAOnTransition__9dScGame_c = .sbss:0x8057579F; // type:object size:0x1 data:byte
|
||||
sPreventClearingSomeFlag__9dScGame_c = .sbss:0x805757A0; // type:object size:0x1 data:byte
|
||||
sInstance__9dCsBase_c = .sbss:0x805757A8; // type:object size:0x8 data:4byte
|
||||
sInstance__9dCsBase_c = .sbss:0x805757A8; // type:object size:0x4 data:4byte
|
||||
sInstance__9dCsGame_c = .sbss:0x805757B0; // type:object size:0x8 data:4byte
|
||||
LINK2__7dAcPy_c = .sbss:0x805757B8; // type:object size:0x4 data:4byte
|
||||
lbl_805757BC = .sbss:0x805757BC; // type:object size:0x1 data:byte
|
||||
@@ -46330,8 +46330,8 @@ lbl_8057AE70 = .sdata2:0x8057AE70; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057AE74 = .sdata2:0x8057AE74; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057AE78 = .sdata2:0x8057AE78; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057AE7C = .sdata2:0x8057AE7C; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057AE80 = .sdata2:0x8057AE80; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057AE84 = .sdata2:0x8057AE84; // type:object size:0x4 align:4 data:float
|
||||
@3537 = .sdata2:0x8057AE80; // type:object size:0x4 scope:local align:4 data:float
|
||||
@3648 = .sdata2:0x8057AE84; // type:object size:0x4 scope:local align:4 data:float
|
||||
lbl_8057AE88 = .sdata2:0x8057AE88; // type:object size:0x8 align:8 data:double
|
||||
lbl_8057AE90 = .sdata2:0x8057AE90; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057AE94 = .sdata2:0x8057AE94; // type:object size:0x4 align:4 data:float
|
||||
@@ -46740,11 +46740,11 @@ lbl_8057B594 = .sdata2:0x8057B594; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057B598 = .sdata2:0x8057B598; // type:object size:0x8 align:8 data:double
|
||||
lbl_8057B5A0 = .sdata2:0x8057B5A0; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057B5A4 = .sdata2:0x8057B5A4; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057B5A8 = .sdata2:0x8057B5A8; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057B5AC = .sdata2:0x8057B5AC; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057B5B0 = .sdata2:0x8057B5B0; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057B5B4 = .sdata2:0x8057B5B4; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057B5B8 = .sdata2:0x8057B5B8; // type:object size:0x4 align:4 data:float
|
||||
@13846 = .sdata2:0x8057B5A8; // type:object size:0x4 scope:local align:4 data:float
|
||||
@13897 = .sdata2:0x8057B5AC; // type:object size:0x4 scope:local align:4 data:float
|
||||
@14041 = .sdata2:0x8057B5B0; // type:object size:0x4 scope:local align:4 data:float
|
||||
@14042 = .sdata2:0x8057B5B4; // type:object size:0x4 scope:local align:4 data:float
|
||||
@14043 = .sdata2:0x8057B5B8; // type:object size:0x4 scope:local align:4 data:float
|
||||
lbl_8057B5C0 = .sdata2:0x8057B5C0; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057B5C4 = .sdata2:0x8057B5C4; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057B5C8 = .sdata2:0x8057B5C8; // type:object size:0x4 align:4 data:float
|
||||
|
||||
+2
-2
@@ -564,7 +564,7 @@ config.libs = [
|
||||
Object(NonMatching, "toBeSorted/unk_save_time.cpp"),
|
||||
Object(NonMatching, "d/a/d_a_salbage_obj.cpp"),
|
||||
Object(NonMatching, "d/a/d_a_salbage_npc.cpp"),
|
||||
Object(NonMatching, "toBeSorted/d_unk_pad.cpp"),
|
||||
Object(Matching, "d/d_pad_nav.cpp"),
|
||||
Object(NonMatching, "toBeSorted/goddess_chest_counter.cpp"),
|
||||
Object(NonMatching, "toBeSorted/misc_actor.cpp"),
|
||||
Object(NonMatching, "d/d_hbm.cpp"),
|
||||
@@ -580,7 +580,7 @@ config.libs = [
|
||||
Object(NonMatching, "d/tg/d_t_vr_box.cpp"),
|
||||
Object(Matching, "d/d_sc_title.cpp"),
|
||||
Object(NonMatching, "d/d_sc_game.cpp"),
|
||||
Object(NonMatching, "d/d_cs_base.cpp"),
|
||||
Object(Matching, "d/d_cs_base.cpp"),
|
||||
Object(NonMatching, "d/d_cs_game.cpp"),
|
||||
Object(NonMatching, "d/a/d_a_player.cpp"),
|
||||
Object(NonMatching, "d/a/d_a_item.cpp"),
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
#include "d/lyt/d_lyt_cursor_stick.h"
|
||||
#include "m/m2d.h"
|
||||
#include "m/m_angle.h"
|
||||
#include "m/m_vec.h"
|
||||
|
||||
class dCsBase_c : public dCs_c {
|
||||
public:
|
||||
@@ -49,12 +50,10 @@ private:
|
||||
/* 0x23C */ d2d::LytBase_c *mpCurrLyt;
|
||||
/* 0x240 */ dCursorInterface_c mCursorIf;
|
||||
/* 0x254 */ dLytCursorStick_c mCursorStick;
|
||||
/* 0x6F0 */ f32 field_0x6F0;
|
||||
/* 0x6F4 */ f32 field_0x6F4;
|
||||
/* 0x6F8 */ f32 field_0x6F8;
|
||||
/* 0x6FC */ f32 field_0x6FC;
|
||||
/* 0x6F0 */ mVec2_c mCsPosition;
|
||||
/* 0x6F8 */ mVec2_c mCsVelocity;
|
||||
/* 0x700 */ mAng field_0x700;
|
||||
/* 0x702 */ u8 field_0x702;
|
||||
/* 0x702 */ u8 mAlpha;
|
||||
/* 0x703 */ u8 field_0x703;
|
||||
/* 0x704 */ u8 field_0x704;
|
||||
/* 0x705 */ u8 field_0x705;
|
||||
|
||||
@@ -177,6 +177,22 @@ public:
|
||||
return m_current_ex;
|
||||
}
|
||||
|
||||
bool getFSStickTrig(u32 mask) const {
|
||||
return mFSStickMaskChanged && mFSStickMask == mask;
|
||||
}
|
||||
|
||||
bool getFSStickTrig() const {
|
||||
return mFSStickMaskChanged && (mFSStickMask & 0xFF) != 0;
|
||||
}
|
||||
|
||||
const mVec3_c& getMPLSVelocity() const {
|
||||
return mMPLSVelocity;
|
||||
}
|
||||
|
||||
const mVec2_c& getDpdPosScreen() const {
|
||||
return mDpdPosScreen;
|
||||
}
|
||||
|
||||
enum ExState_e {
|
||||
EX_STATE_WAITING_FOR_CONNECT = 0,
|
||||
EX_STATE_POST_CONNECT = 1,
|
||||
|
||||
@@ -0,0 +1,69 @@
|
||||
#ifndef D_PAD_NAV_H
|
||||
#define D_PAD_NAV_H
|
||||
|
||||
/**
|
||||
* Navigation with Wiimote and Nunchuk - seamlessly switching
|
||||
* between pointer (dpd) and Nunchuk stick (FSStick).
|
||||
*/
|
||||
#include "common.h"
|
||||
|
||||
namespace dPadNav {
|
||||
|
||||
enum FSStickDirection_e {
|
||||
FS_STICK_NONE = 0,
|
||||
FS_STICK_UP = 1,
|
||||
FS_STICK_UP_RIGHT = 2,
|
||||
FS_STICK_RIGHT = 3,
|
||||
FS_STICK_DOWN_RIGHT = 4,
|
||||
FS_STICK_DOWN = 5,
|
||||
FS_STICK_DOWN_LEFT = 6,
|
||||
FS_STICK_LEFT = 7,
|
||||
FS_STICK_UP_LEFT = 8,
|
||||
};
|
||||
|
||||
extern bool sIsNavEnabled;
|
||||
// WARNING: Swinging the Wiimote to the right -> navigate left.
|
||||
// This naming refers to the latter (where the navigation goes).
|
||||
extern bool sIsMplsNavLeftGesture;
|
||||
extern bool sIsMplsNavRightGesture;
|
||||
|
||||
extern bool sIsPointerVisible;
|
||||
extern bool sPrevIsPointerVisible;
|
||||
extern bool sIsCursorStickVisible;
|
||||
|
||||
extern s32 sFSStickDirection;
|
||||
extern s32 sFSStickNavDirection;
|
||||
|
||||
inline bool isPointerVisible() {
|
||||
return sIsPointerVisible;
|
||||
}
|
||||
|
||||
inline bool isCursorStickVisible() {
|
||||
return sIsCursorStickVisible;
|
||||
}
|
||||
|
||||
void init();
|
||||
void calc();
|
||||
void setNavEnabled(bool navEnabled, bool autoReturnToPointerNav);
|
||||
|
||||
// I really wish these returned enums but the codegen requires not-enums
|
||||
s32 getFSStickDirection();
|
||||
s32 getFSStickDirectionTrig();
|
||||
|
||||
void stopFSStickNav();
|
||||
void hidePointer();
|
||||
|
||||
void setCursorStickInvisible();
|
||||
void setCursorStickVisible();
|
||||
|
||||
// Not sure what this does. Related to Deposit
|
||||
// and Seeker Stone scrolling
|
||||
void scrollRelated();
|
||||
|
||||
// detail:
|
||||
void checkForNavRightGesture();
|
||||
void checkForNavLeftGesture();
|
||||
|
||||
} // namespace dPadNav
|
||||
|
||||
#endif
|
||||
@@ -25,6 +25,10 @@ public:
|
||||
bool setPriority(u8 priority);
|
||||
void setTargetPane(nw4r::lyt::Pane *pane);
|
||||
|
||||
void setShouldBeOn(bool value) {
|
||||
mShouldBeOn = value;
|
||||
}
|
||||
|
||||
private:
|
||||
bool build_();
|
||||
bool remove_();
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#define M_PAD_H
|
||||
|
||||
#include "egg/core/eggController.h"
|
||||
#include "m/m_vec.h"
|
||||
|
||||
namespace mPad {
|
||||
|
||||
@@ -48,6 +49,14 @@ inline bool isMplsPtFS(const int i) {
|
||||
return g_padMg->getDevType(i) == EGG::cDEV_MPLS_PT_FS;
|
||||
}
|
||||
|
||||
inline mVec2_c getDpdRawPos() {
|
||||
return g_currentCore->getDpdRawPos();
|
||||
}
|
||||
|
||||
inline mVec2_c getDpdRawPos(int i) {
|
||||
return g_core[i]->getDpdRawPos();
|
||||
}
|
||||
|
||||
// Defined in dPad, referenced in both mPad and dPad
|
||||
extern "C" void async_info_callback(s32 chan, s32 result);
|
||||
|
||||
|
||||
+7
-4
@@ -235,6 +235,9 @@ public:
|
||||
f32 squareMagXZ() const {
|
||||
return x * x + z * z;
|
||||
}
|
||||
f32 squareMagXY() const {
|
||||
return x * x + y * y;
|
||||
}
|
||||
f32 squareDistanceToXZ(const mVec3_c &other) const {
|
||||
return (*this - other).squareMagXZ();
|
||||
}
|
||||
@@ -251,10 +254,6 @@ public:
|
||||
p->z = z;
|
||||
}
|
||||
|
||||
s16 ang() const {
|
||||
return cM::atan2s(x * x, z * z);
|
||||
}
|
||||
|
||||
f32 inprodXZ(const mVec3_c &other) const {
|
||||
return x * other.x + z * other.z;
|
||||
}
|
||||
@@ -312,6 +311,10 @@ public:
|
||||
mVec2_c operator+(const mVec2_c &v) const {
|
||||
return mVec2_c(x + v.x, y + v.y);
|
||||
}
|
||||
|
||||
mVec2_c operator-(const mVec2_c &v) const {
|
||||
return mVec2_c(x - v.x, y - v.y);
|
||||
}
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
+60
-24
@@ -1,21 +1,29 @@
|
||||
#include "d/d_cs_base.h"
|
||||
|
||||
#include "common.h"
|
||||
#include "d/d_gfx.h"
|
||||
#include "d/d_pad.h"
|
||||
#include "d/d_pad_nav.h"
|
||||
#include "d/lyt/d_lyt_cursor_stick.h"
|
||||
#include "egg/math/eggMath.h"
|
||||
#include "f/f_base.h"
|
||||
#include "f/f_profile_name.h"
|
||||
#include "m/m_pad.h"
|
||||
#include "m/m_vec.h"
|
||||
#include "nw4r/math/math_types.h"
|
||||
#include "s/s_Math.h"
|
||||
#include "toBeSorted/arc_managers/layout_arc_manager.h"
|
||||
|
||||
SPECIAL_BASE_PROFILE(C_BASE, dCsBase_c, fProfile::C_BASE, 0x2C0, 0x06F9);
|
||||
|
||||
dCsBase_c *dCsBase_c::sInstance;
|
||||
|
||||
dCsBase_c::dCsBase_c()
|
||||
: mpCurrLyt(nullptr),
|
||||
field_0x6F0(0.0f),
|
||||
field_0x6F4(0.0f),
|
||||
field_0x6F8(0.0f),
|
||||
field_0x6FC(0.0f),
|
||||
mCsPosition(0.0f, 0.0f),
|
||||
mCsVelocity(0.0f, 0.0f),
|
||||
field_0x700(0),
|
||||
field_0x702(0),
|
||||
mAlpha(0),
|
||||
field_0x703(0),
|
||||
field_0x704(0),
|
||||
field_0x705(0) {
|
||||
@@ -26,11 +34,6 @@ dCsBase_c::~dCsBase_c() {
|
||||
sInstance = nullptr;
|
||||
}
|
||||
|
||||
extern "C" void fn_8016B2B0();
|
||||
extern "C" void fn_8016B2E0();
|
||||
extern "C" bool lbl_80572D10;
|
||||
extern "C" int lbl_80573438;
|
||||
|
||||
static const char *sLytNames[] = {
|
||||
"P1_Def.brlyt",
|
||||
"P1_Cat.brlyt",
|
||||
@@ -49,14 +52,12 @@ int dCsBase_c::create() {
|
||||
setCurrentLyt(0);
|
||||
mCursorIf.setCursorMask(1);
|
||||
dCsMgr_c::GetInstance()->registCursor(&mCursorIf);
|
||||
fn_8016B2B0();
|
||||
field_0x6F0 = 0.0f;
|
||||
field_0x6F4 = 0.0f;
|
||||
field_0x6F8 = 0.0f;
|
||||
field_0x6FC = 0.0f;
|
||||
dLytCursorStick_c::build();
|
||||
mCsPosition.set(0.0f, 0.0f);
|
||||
mCsVelocity.set(0.0f, 0.0f);
|
||||
|
||||
field_0x700 = 0;
|
||||
field_0x702 = 0;
|
||||
mAlpha = 0;
|
||||
field_0x703 = 0;
|
||||
|
||||
return SUCCEEDED;
|
||||
@@ -64,14 +65,49 @@ int dCsBase_c::create() {
|
||||
|
||||
int dCsBase_c::doDelete() {
|
||||
dCsMgr_c::GetInstance()->unregistCursor(&mCursorIf);
|
||||
fn_8016B2E0();
|
||||
dLytCursorStick_c::remove();
|
||||
mResAcc.detach();
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
int dCsBase_c::execute() {
|
||||
// TODO this needs player / controller / d_pad stuff?
|
||||
mVec2_c dpdPosScreen = dPad::ex_c::getInstance()->getDpdPosScreen();
|
||||
u8 oldAlpha = mAlpha;
|
||||
bool bIsInBounds = false;
|
||||
if (field_0x705 == 1) {
|
||||
mVec2_c dpdPos = mPad::getDpdRawPos();
|
||||
dpdPosScreen.x = dGfx_c::getWidth4x3F() * 0.5f * (1.f + dpdPos.x) + dGfx_c::getWidth4x3LeftF();
|
||||
dpdPosScreen.y = dGfx_c::getCurrentScreenHeightF() * -0.5f * (1.f + dpdPos.y) + dGfx_c::getCurrentScreenTopF();
|
||||
|
||||
if (dPad::ex_c::getInstance()->field_0x22D8 == 0) {
|
||||
dpdPosScreen.x = EGG::Math<f32>::maxNumber();
|
||||
dpdPosScreen.y = EGG::Math<f32>::maxNumber();
|
||||
}
|
||||
}
|
||||
|
||||
if (dGfx_c::getWidth4x3LeftF() <= dpdPosScreen.x && dpdPosScreen.x <= dGfx_c::getWidth4x3RightF()) {
|
||||
if (dGfx_c::getCurrentScreenBottomF() <= dpdPosScreen.y && dpdPosScreen.y <= dGfx_c::getCurrentScreenTopF()) {
|
||||
bIsInBounds = true;
|
||||
}
|
||||
}
|
||||
|
||||
mCsVelocity = dpdPosScreen - mCsPosition;
|
||||
mCsPosition = dpdPosScreen;
|
||||
|
||||
sLib::addCalcAngle(&field_0x700.mVal, mCsVelocity.ang(), 0x10, 2000);
|
||||
sLib::chaseUC(&mAlpha, bIsInBounds ? 255 : 0, 10);
|
||||
if (oldAlpha != mAlpha) {
|
||||
mLyts[0].getLayout()->GetRootPane()->SetAlpha(mAlpha);
|
||||
mLyts[1].getLayout()->GetRootPane()->SetAlpha(mAlpha);
|
||||
}
|
||||
|
||||
if (dPadNav::isPointerVisible()) {
|
||||
mCursorStick.setShouldBeOn(false);
|
||||
} else if (dPadNav::isCursorStickVisible()) {
|
||||
mCursorStick.setShouldBeOn(true);
|
||||
}
|
||||
|
||||
mCursorStick.execute();
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
@@ -80,11 +116,11 @@ int dCsBase_c::draw() {
|
||||
return SUCCEEDED;
|
||||
}
|
||||
|
||||
if (field_0x703 && lbl_80572D10 && field_0x702) {
|
||||
if (field_0x703 && dPadNav::isPointerVisible() && mAlpha) {
|
||||
nw4r::lyt::Pane *p = mpCurrLyt->getLayout()->GetRootPane();
|
||||
nw4r::math::VEC3 pos;
|
||||
pos.x = field_0x6F0;
|
||||
pos.y = field_0x6F4;
|
||||
pos.x = mCsPosition.x;
|
||||
pos.y = mCsPosition.y;
|
||||
pos.z = 0.0f;
|
||||
p->SetTranslate(pos);
|
||||
mpCurrLyt->calc();
|
||||
@@ -108,11 +144,11 @@ bool dCsBase_c::drawDirectly() {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (field_0x703 && lbl_80572D10 && field_0x702) {
|
||||
if (field_0x703 && dPadNav::isPointerVisible() && mAlpha) {
|
||||
nw4r::lyt::Pane *p = mpCurrLyt->getLayout()->GetRootPane();
|
||||
nw4r::math::VEC3 pos;
|
||||
pos.x = field_0x6F0;
|
||||
pos.y = field_0x6F4;
|
||||
pos.x = mCsPosition.x;
|
||||
pos.y = mCsPosition.y;
|
||||
pos.z = 0.0f;
|
||||
p->SetTranslate(pos);
|
||||
mpCurrLyt->calc();
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
#include "d/col/cc/d_cc_s.h"
|
||||
#include "d/d_gfx.h"
|
||||
#include "d/d_pad.h"
|
||||
#include "d/d_pad_nav.h"
|
||||
#include "d/d_stage_mgr.h"
|
||||
#include "m/m_mtx.h"
|
||||
#include "m/m_vec.h"
|
||||
@@ -21,10 +22,9 @@ dCsMgr_c::dCsMgr_c() {
|
||||
sInstance = this;
|
||||
}
|
||||
|
||||
extern "C" bool lbl_80572D10;
|
||||
void dCsMgr_c::execute() {
|
||||
// NONMATCHING - TList
|
||||
if (field_0x18 == 0 && lbl_80572D10 == 0) {
|
||||
if (field_0x18 == 0 && !dPadNav::isPointerVisible()) {
|
||||
for (CursorList::Iterator it = mList1.GetBeginIter(); it != mList1.GetEndIter(); ++it) {
|
||||
it->mpHit = nullptr;
|
||||
}
|
||||
|
||||
+4
-7
@@ -7,6 +7,7 @@
|
||||
#include "d/d_cs_game.h"
|
||||
#include "d/d_gfx.h"
|
||||
#include "d/d_hbm.h"
|
||||
#include "d/d_pad_nav.h"
|
||||
#include "d/d_pause.h"
|
||||
#include "d/d_reset.h"
|
||||
#include "d/d_sc_game.h"
|
||||
@@ -134,7 +135,6 @@ void convertDpdPosToScreenPos(mVec2_c &in, mVec2_c &out) {
|
||||
out.y = dGfx_c::getCurrentScreenHeightF() * -0.5f * (1.f + in.y) + dGfx_c::getCurrentScreenTopF();
|
||||
}
|
||||
|
||||
extern "C" void fn_801940C0();
|
||||
void beginPad_BR() {
|
||||
mPad::beginPad();
|
||||
|
||||
@@ -270,9 +270,7 @@ void beginPad_BR() {
|
||||
ex.mDpdPos = ex.field_0x5C;
|
||||
} else {
|
||||
if (mPad::getCore(0)->getDpdValidFlag() > 0) {
|
||||
// TODO - ctor regswap
|
||||
ex.mDpdPos = mPad::getCore(0)->getDpdRawPos();
|
||||
// ex.mDpdPos.set(v.x, v.y);
|
||||
ex.mDpdPos = mPad::getDpdRawPos(0);
|
||||
} else {
|
||||
ex.mDpdPos.set(-2.f, -2.f);
|
||||
}
|
||||
@@ -291,7 +289,7 @@ void beginPad_BR() {
|
||||
core->getCoreStatus()->release &= EGG::cCORE_BUTTON_HOME;
|
||||
}
|
||||
}
|
||||
fn_801940C0();
|
||||
dPadNav::calc();
|
||||
}
|
||||
|
||||
void endPad_BR() {
|
||||
@@ -502,8 +500,7 @@ void ex_c::centerCursor(s32 chan, bool b) {
|
||||
}
|
||||
|
||||
void ex_c::fn_80056790(s32 chan) {
|
||||
// unused - TODO ctor regswap
|
||||
mVec2_c dpdRawPos = mPad::getCore(chan)->getDpdRawPos();
|
||||
mVec2_c dpdRawPos = mPad::getDpdRawPos(chan);
|
||||
|
||||
f32 f;
|
||||
if (dScGame_c::GetInstance() != nullptr && dLytMap_c::GetInstance() != nullptr &&
|
||||
|
||||
@@ -0,0 +1,241 @@
|
||||
#include "d/d_pad_nav.h"
|
||||
|
||||
#include "d/d_pad.h"
|
||||
#include "m/m_vec.h"
|
||||
|
||||
namespace dPadNav {
|
||||
|
||||
bool sIsNavEnabled = false;
|
||||
bool sIsMplsNavLeftGesture = false;
|
||||
bool sIsMplsNavRightGesture = false;
|
||||
static bool sDisableAutoReturnToPointerNav = false;
|
||||
|
||||
bool sIsPointerVisible = true;
|
||||
bool sPrevIsPointerVisible = true;
|
||||
bool sIsCursorStickVisible = true;
|
||||
|
||||
s32 sFSStickDirection;
|
||||
s32 sFSStickNavDirection;
|
||||
|
||||
static s32 sFSStickNavActiveTimer = 0;
|
||||
static s32 sFSStickDirectionStableTimer = 0;
|
||||
static s32 sMPLSNavGestureTimer = 0;
|
||||
|
||||
void init() {
|
||||
sIsNavEnabled = false;
|
||||
sIsPointerVisible = true;
|
||||
sIsMplsNavLeftGesture = false;
|
||||
sIsMplsNavRightGesture = false;
|
||||
sDisableAutoReturnToPointerNav = false;
|
||||
sPrevIsPointerVisible = true;
|
||||
sFSStickDirection = FS_STICK_NONE;
|
||||
sFSStickNavDirection = FS_STICK_NONE;
|
||||
sFSStickNavActiveTimer = 0;
|
||||
sFSStickDirectionStableTimer = 0;
|
||||
sMPLSNavGestureTimer = 0;
|
||||
setCursorStickInvisible();
|
||||
}
|
||||
|
||||
void calc() {
|
||||
sPrevIsPointerVisible = sIsPointerVisible;
|
||||
sFSStickNavDirection = FS_STICK_NONE;
|
||||
|
||||
if (!sIsNavEnabled) {
|
||||
return;
|
||||
}
|
||||
|
||||
mVec3_c vel = dPad::ex_c::getInstance()->getMPLSVelocity();
|
||||
if (sMPLSNavGestureTimer != 0) {
|
||||
sMPLSNavGestureTimer--;
|
||||
sIsMplsNavLeftGesture = false;
|
||||
sIsMplsNavRightGesture = false;
|
||||
} else {
|
||||
checkForNavLeftGesture();
|
||||
checkForNavRightGesture();
|
||||
}
|
||||
|
||||
if (vel.squareMagXY() > 1.5f) {
|
||||
// Large MPLS movement - stop FS stick navigation
|
||||
stopFSStickNav();
|
||||
return;
|
||||
}
|
||||
|
||||
if (sIsPointerVisible) {
|
||||
if (dPad::ex_c::getInstance()->getFSStickTrig()) {
|
||||
// starting FS stick navigation - immediate nav event, with delay of
|
||||
// 8 frames (267ms) for repeat nav event
|
||||
sFSStickDirection = getFSStickDirectionTrig();
|
||||
sFSStickNavDirection = sFSStickDirection;
|
||||
sFSStickNavActiveTimer = 120;
|
||||
sFSStickDirectionStableTimer = 8;
|
||||
sIsPointerVisible = false;
|
||||
}
|
||||
} else {
|
||||
s32 direction = getFSStickDirection();
|
||||
if (sFSStickDirection != FS_STICK_NONE && direction == sFSStickDirection) {
|
||||
// no change in FS stick direction
|
||||
sFSStickNavActiveTimer = 120;
|
||||
if (sFSStickDirectionStableTimer == 0) {
|
||||
// repeat event - now with a delay of 3 frames (100ms)
|
||||
sFSStickNavDirection = sFSStickDirection;
|
||||
sFSStickDirectionStableTimer = 3;
|
||||
} else {
|
||||
sFSStickDirectionStableTimer--;
|
||||
}
|
||||
} else {
|
||||
if (dPad::ex_c::getInstance()->getFSStickTrig()) {
|
||||
// change in FS stick direction - same as if started navigation
|
||||
direction = getFSStickDirectionTrig();
|
||||
sFSStickDirectionStableTimer = 8;
|
||||
sFSStickDirection = direction;
|
||||
sFSStickNavDirection = direction;
|
||||
sFSStickNavActiveTimer = 120;
|
||||
} else {
|
||||
// let go of FS stick
|
||||
sFSStickDirection = FS_STICK_NONE;
|
||||
sFSStickDirectionStableTimer = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (!sDisableAutoReturnToPointerNav) {
|
||||
if (sFSStickNavActiveTimer == 0) {
|
||||
// FS stick nav timer expired (or was set to 0 via explicit call),
|
||||
// check if we need to return to pointer nav
|
||||
if (direction != FS_STICK_NONE && sFSStickDirection == direction) {
|
||||
sFSStickNavActiveTimer = 120;
|
||||
} else {
|
||||
if (direction == FS_STICK_NONE) {
|
||||
// No direction, return to pointer nav
|
||||
sFSStickDirection = FS_STICK_NONE;
|
||||
sIsPointerVisible = true;
|
||||
} else {
|
||||
sFSStickDirectionStableTimer = 8;
|
||||
// Note: Redundant check
|
||||
if (!sDisableAutoReturnToPointerNav) {
|
||||
sFSStickDirection = direction;
|
||||
}
|
||||
sFSStickNavDirection = sFSStickDirection;
|
||||
sFSStickNavActiveTimer = 120;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
sFSStickNavActiveTimer--;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void setNavEnabled(bool navEnabled, bool disableAutoReturnToPointerNav) {
|
||||
sIsNavEnabled = navEnabled;
|
||||
sIsPointerVisible = true;
|
||||
if (navEnabled) {
|
||||
setCursorStickVisible();
|
||||
sDisableAutoReturnToPointerNav = disableAutoReturnToPointerNav;
|
||||
} else {
|
||||
setCursorStickInvisible();
|
||||
sDisableAutoReturnToPointerNav = false;
|
||||
}
|
||||
}
|
||||
|
||||
s32 getFSStickDirectionTrig() {
|
||||
if (dPad::ex_c::getInstance()->getFSStickTrig(0x1)) {
|
||||
return FS_STICK_UP;
|
||||
}
|
||||
|
||||
if (dPad::ex_c::getInstance()->getFSStickTrig(0x80)) {
|
||||
return FS_STICK_UP_RIGHT;
|
||||
}
|
||||
|
||||
if (dPad::ex_c::getInstance()->getFSStickTrig(0x40)) {
|
||||
return FS_STICK_RIGHT;
|
||||
}
|
||||
|
||||
if (dPad::ex_c::getInstance()->getFSStickTrig(0x20)) {
|
||||
return FS_STICK_DOWN_RIGHT;
|
||||
}
|
||||
|
||||
if (dPad::ex_c::getInstance()->getFSStickTrig(0x10)) {
|
||||
return FS_STICK_DOWN;
|
||||
}
|
||||
|
||||
if (dPad::ex_c::getInstance()->getFSStickTrig(0x8)) {
|
||||
return FS_STICK_DOWN_LEFT;
|
||||
}
|
||||
|
||||
if (dPad::ex_c::getInstance()->getFSStickTrig(0x4)) {
|
||||
return FS_STICK_LEFT;
|
||||
}
|
||||
|
||||
if (dPad::ex_c::getInstance()->getFSStickTrig(0x2)) {
|
||||
return FS_STICK_UP_LEFT;
|
||||
}
|
||||
|
||||
return FS_STICK_NONE;
|
||||
}
|
||||
|
||||
s32 getFSStickDirection() {
|
||||
switch (dPad::ex_c::getInstance()->mFSStickMask) {
|
||||
case 0x1: return FS_STICK_UP;
|
||||
case 0x80: return FS_STICK_UP_RIGHT;
|
||||
case 0x40: return FS_STICK_RIGHT;
|
||||
case 0x20: return FS_STICK_DOWN_RIGHT;
|
||||
case 0x10: return FS_STICK_DOWN;
|
||||
case 0x8: return FS_STICK_DOWN_LEFT;
|
||||
case 0x4: return FS_STICK_LEFT;
|
||||
case 0x2: return FS_STICK_UP_LEFT;
|
||||
}
|
||||
|
||||
return FS_STICK_NONE;
|
||||
}
|
||||
|
||||
void stopFSStickNav() {
|
||||
sFSStickNavActiveTimer = 0;
|
||||
sIsPointerVisible = true;
|
||||
}
|
||||
|
||||
void hidePointer() {
|
||||
sIsPointerVisible = false;
|
||||
}
|
||||
|
||||
void setCursorStickInvisible() {
|
||||
sIsCursorStickVisible = false;
|
||||
}
|
||||
|
||||
void setCursorStickVisible() {
|
||||
sIsCursorStickVisible = true;
|
||||
}
|
||||
|
||||
void checkForNavLeftGesture() {
|
||||
mVec3_c vel = dPad::ex_c::getInstance()->getMPLSVelocity();
|
||||
if (vel.y <= 0.0f && vel.squareMagXY() > 1.5f) {
|
||||
if (!sIsPointerVisible) {
|
||||
sMPLSNavGestureTimer = 10;
|
||||
sIsMplsNavLeftGesture = false;
|
||||
} else {
|
||||
sIsMplsNavLeftGesture = true;
|
||||
}
|
||||
} else {
|
||||
sIsMplsNavLeftGesture = false;
|
||||
}
|
||||
}
|
||||
|
||||
void checkForNavRightGesture() {
|
||||
mVec3_c vel = dPad::ex_c::getInstance()->getMPLSVelocity();
|
||||
if (vel.y >= 0.0f && vel.squareMagXY() > 1.5f) {
|
||||
if (!sIsPointerVisible) {
|
||||
sMPLSNavGestureTimer = 10;
|
||||
sIsMplsNavRightGesture = false;
|
||||
} else {
|
||||
sIsMplsNavRightGesture = true;
|
||||
}
|
||||
} else {
|
||||
sIsMplsNavRightGesture = false;
|
||||
}
|
||||
}
|
||||
|
||||
void scrollRelated() {
|
||||
sFSStickDirectionStableTimer = 3;
|
||||
sFSStickNavActiveTimer = 120;
|
||||
}
|
||||
|
||||
} // namespace dPadNav
|
||||
+2
-2
@@ -2,6 +2,7 @@
|
||||
|
||||
#include "common.h"
|
||||
#include "d/d_base.h"
|
||||
#include "d/d_pad_nav.h"
|
||||
#include "d/d_reset.h"
|
||||
#include "d/d_rumble.h"
|
||||
#include "f/f_base.h"
|
||||
@@ -14,7 +15,6 @@ static bool gameStateIsActive = true;
|
||||
|
||||
extern "C" u32 lbl_80574FA0;
|
||||
extern "C" u32 lbl_80574FA4;
|
||||
extern "C" void fn_801942F0(int, int);
|
||||
|
||||
dFader_c dScene_c::sFader;
|
||||
|
||||
@@ -22,7 +22,7 @@ dScene_c::dScene_c() {
|
||||
lbl_80574FA0 = 0;
|
||||
lbl_80574FA4 = 0;
|
||||
setProcControlFlag(ROOT_DISABLE_DRAW | ROOT_DISABLE_EXECUTE);
|
||||
fn_801942F0(0, 0);
|
||||
dPadNav::setNavEnabled(false, false);
|
||||
}
|
||||
|
||||
void dScene_c::postCreate(MAIN_STATE_e state) {
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
#include "d/d_cs_base.h"
|
||||
#include "d/d_cursor_hit_check.h"
|
||||
#include "d/d_pad_nav.h"
|
||||
#include "d/snd/d_snd_small_effect_mgr.h"
|
||||
#include "rvl/MTX/mtx.h"
|
||||
#include "toBeSorted/arc_managers/layout_arc_manager.h"
|
||||
@@ -144,11 +145,9 @@ void dLytCommonArrow_c::tickDown(d2d::AnmGroup_c *ctrl) {
|
||||
}
|
||||
}
|
||||
|
||||
extern "C" u8 lbl_80572D10;
|
||||
|
||||
void dLytCommonArrow_c::fn_80168880() {
|
||||
int i = -1;
|
||||
if (lbl_80572D10 == 0) {
|
||||
if (!dPadNav::isPointerVisible()) {
|
||||
field_0x6B4 = 2;
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#include "d/lyt/d_lyt_map.h"
|
||||
|
||||
#include "common.h"
|
||||
#include "d/d_pad_nav.h"
|
||||
#include "d/lyt/d2d.h"
|
||||
#include "d/d_cursor_hit_check.h"
|
||||
#include "egg/core/eggColorFader.h"
|
||||
@@ -395,14 +396,13 @@ void dLytMapFloorBtnMgr_c::initializeState_Wait() {}
|
||||
void dLytMapFloorBtnMgr_c::executeState_Wait() {}
|
||||
void dLytMapFloorBtnMgr_c::finalizeState_Wait() {}
|
||||
|
||||
extern "C" void fn_801942F0(int, int);
|
||||
dLytMapFloorBtnMgr_c::~dLytMapFloorBtnMgr_c() {
|
||||
for (int i = 0; i < 4; i++) {
|
||||
if (dCsMgr_c::GetInstance()->isRegist(&mCsHitChecks[i])) {
|
||||
dCsMgr_c::GetInstance()->unregistCursorTarget(&mCsHitChecks[i]);
|
||||
}
|
||||
}
|
||||
fn_801942F0(0, 0);
|
||||
dPadNav::setNavEnabled(false, false);
|
||||
}
|
||||
|
||||
void dLytMapPopupInfo_c::initializeState_Invisible() {}
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
#include "common.h"
|
||||
#include "d/d_pad.h"
|
||||
#include "d/d_pad_nav.h"
|
||||
#include "d/lyt/d2d.h"
|
||||
#include "d/snd/d_snd_small_effect_mgr.h"
|
||||
#include "toBeSorted/music_mgrs.h"
|
||||
@@ -524,8 +525,6 @@ bool dLytMsgWindowSelectBtn_c::build(d2d::ResAccIf_c *resAcc) {
|
||||
return true;
|
||||
}
|
||||
|
||||
extern "C" void fn_801942F0(int, int);
|
||||
|
||||
bool dLytMsgWindowSelectBtn_c::remove() {
|
||||
for (int i = 0; i < SELECT_BTN_NUM_ANIMS; i++) {
|
||||
mAnm[i].unbind();
|
||||
@@ -534,7 +533,7 @@ bool dLytMsgWindowSelectBtn_c::remove() {
|
||||
|
||||
if (mBtnHelper.field_0x52 != 0) {
|
||||
mBtnHelper.field_0x52 = 0;
|
||||
fn_801942F0(0, 0);
|
||||
dPadNav::setNavEnabled(false, false);
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
Reference in New Issue
Block a user