mirror of
https://github.com/zeldaret/ss
synced 2026-05-23 15:01:38 -04:00
90 lines
1.9 KiB
C++
90 lines
1.9 KiB
C++
#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 isPrevPointerVisible() {
|
|
return sPrevIsPointerVisible;
|
|
}
|
|
|
|
inline bool isCursorStickVisible() {
|
|
return sIsCursorStickVisible;
|
|
}
|
|
|
|
inline s32 getFSStickNavDirection() {
|
|
return sFSStickNavDirection;
|
|
}
|
|
|
|
inline bool isMplsNavLeftGesture() {
|
|
return sIsMplsNavLeftGesture;
|
|
}
|
|
|
|
inline bool isMplsNavRightGesture() {
|
|
return sIsMplsNavRightGesture;
|
|
}
|
|
|
|
inline bool isMplsNavGesture() {
|
|
return isMplsNavLeftGesture() || isMplsNavRightGesture();
|
|
}
|
|
|
|
void init();
|
|
void calc();
|
|
void setNavEnabled(bool navEnabled, bool disableAutoReturnToPointerNav);
|
|
|
|
// 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
|