mirror of
https://github.com/4jcraft/4jcraft.git
synced 2026-05-13 20:57:14 +00:00
201 lines
11 KiB
C++
201 lines
11 KiB
C++
#pragma once
|
|
|
|
#include "UIScene.h"
|
|
|
|
class UIScene_ControlsMenu : public UIScene {
|
|
private:
|
|
enum EControl {
|
|
// Buttons must be first three controls here
|
|
eControl_Button0,
|
|
eControl_Button1,
|
|
eControl_Button2,
|
|
eControl_InvertLook,
|
|
eControl_Southpaw,
|
|
};
|
|
|
|
enum EPadButtons {
|
|
e_PadBack = 0,
|
|
e_PadLT,
|
|
e_PadLB,
|
|
e_PadDPadLeft,
|
|
e_PadDPadRight,
|
|
e_PadDPadUp,
|
|
e_PadDPadDown,
|
|
e_PadLS_1,
|
|
e_PadLS_2,
|
|
e_PadStart,
|
|
e_PadRT,
|
|
e_PadRB,
|
|
e_PadY,
|
|
e_PadB,
|
|
e_PadA,
|
|
e_PadX,
|
|
e_PadRS_1,
|
|
e_PadRS_2,
|
|
e_PadTouch,
|
|
|
|
e_PadCOUNT,
|
|
};
|
|
|
|
int m_iSchemeTextA[3];
|
|
int m_iCurrentNavigatedControlsLayout;
|
|
bool m_bCreativeMode;
|
|
bool m_bLayoutChanged;
|
|
|
|
UIControl_Label m_labelCurrentLayout;
|
|
UIControl_Label m_labelVersion;
|
|
UIControl_Label m_labelsPad[e_PadCOUNT];
|
|
UIControl m_controlLines[e_PadCOUNT];
|
|
UIControl_Button m_buttonLayouts[3];
|
|
UIControl_CheckBox m_checkboxInvert, m_checkboxSouthpaw;
|
|
IggyName m_funcSetPlatform, m_funcSetControllerLayout;
|
|
UI_BEGIN_MAP_ELEMENTS_AND_NAMES(UIScene)
|
|
|
|
{UI_MAP_ELEMENT(m_labelCurrentLayout, "CurrentLayout")
|
|
|
|
UI_MAP_ELEMENT(m_buttonLayouts[0], "Button1")
|
|
UI_MAP_ELEMENT(m_buttonLayouts[1], "Button2")
|
|
UI_MAP_ELEMENT(m_buttonLayouts[2], "Button3")}
|
|
|
|
UI_MAP_ELEMENT(m_labelsPad[e_PadBack], "LabelBack") UI_MAP_ELEMENT(
|
|
m_labelsPad[e_PadLT],
|
|
"LabelLT") UI_MAP_ELEMENT(m_labelsPad[e_PadLB],
|
|
"LabelLB") UI_MAP_ELEMENT(m_labelsPad
|
|
[e_PadDPadLeft],
|
|
"LabelDPadLeft")
|
|
UI_MAP_ELEMENT(m_labelsPad[e_PadDPadRight], "LabelDPadRight") UI_MAP_ELEMENT(
|
|
m_labelsPad[e_PadDPadUp],
|
|
"LabelDPadUp") UI_MAP_ELEMENT(m_labelsPad[e_PadDPadDown],
|
|
"LabelDPadDown") UI_MAP_ELEMENT(m_labelsPad
|
|
[e_PadLS_1],
|
|
"LabelLS_"
|
|
"1")
|
|
UI_MAP_ELEMENT(m_labelsPad[e_PadLS_2], "LabelLS_2") UI_MAP_ELEMENT(
|
|
m_labelsPad[e_PadStart],
|
|
"LabelStart") UI_MAP_ELEMENT(m_labelsPad[e_PadRT],
|
|
"LabelRT") UI_MAP_ELEMENT(m_labelsPad
|
|
[e_PadRB],
|
|
"LabelRB")
|
|
UI_MAP_ELEMENT(m_labelsPad[e_PadY], "LabelY") UI_MAP_ELEMENT(
|
|
m_labelsPad[e_PadB],
|
|
"LabelB") UI_MAP_ELEMENT(m_labelsPad[e_PadA],
|
|
"LabelA") UI_MAP_ELEMENT(m_labelsPad
|
|
[e_PadX],
|
|
"LabelX")
|
|
UI_MAP_ELEMENT(m_labelsPad[e_PadRS_1], "LabelRS_1") UI_MAP_ELEMENT(
|
|
m_labelsPad[e_PadRS_2],
|
|
"LabelRS_2") UI_MAP_ELEMENT(m_labelsPad[e_PadTouch],
|
|
"LabelTouch")
|
|
|
|
UI_MAP_ELEMENT(m_controlLines[e_PadBack], "LineBack") UI_MAP_ELEMENT(
|
|
m_controlLines[e_PadLT],
|
|
"LineLT") UI_MAP_ELEMENT(m_controlLines[e_PadLB],
|
|
"LineLB") UI_MAP_ELEMENT(m_controlLines
|
|
[e_PadDPadLeft],
|
|
"Line"
|
|
"Dpad"
|
|
"Lef"
|
|
"t")
|
|
UI_MAP_ELEMENT(
|
|
m_controlLines[e_PadDPadRight],
|
|
"LineDpadRight") UI_MAP_ELEMENT(m_controlLines
|
|
[e_PadDPadUp],
|
|
"LineDpadUp")
|
|
UI_MAP_ELEMENT(
|
|
m_controlLines[e_PadDPadDown],
|
|
"LineDpadDown") UI_MAP_ELEMENT(m_controlLines
|
|
[e_PadLS_1],
|
|
"LineL3")
|
|
UI_MAP_ELEMENT(
|
|
m_controlLines[e_PadLS_2],
|
|
"LineLeftStick") UI_MAP_ELEMENT(m_controlLines
|
|
[e_PadStart],
|
|
"LineStart")
|
|
UI_MAP_ELEMENT(
|
|
m_controlLines[e_PadRT],
|
|
"LineRT") UI_MAP_ELEMENT(m_controlLines
|
|
[e_PadRB],
|
|
"LineRB")
|
|
UI_MAP_ELEMENT(
|
|
m_controlLines[e_PadY],
|
|
"LineY") UI_MAP_ELEMENT(m_controlLines
|
|
[e_PadB],
|
|
"LineB")
|
|
UI_MAP_ELEMENT(
|
|
m_controlLines[e_PadA],
|
|
"LineA") UI_MAP_ELEMENT(m_controlLines
|
|
[e_PadX],
|
|
"LineX")
|
|
UI_MAP_ELEMENT(
|
|
m_controlLines[e_PadRS_1],
|
|
"LineR3") UI_MAP_ELEMENT(m_controlLines
|
|
[e_PadRS_2],
|
|
"L"
|
|
"i"
|
|
"n"
|
|
"e"
|
|
"R"
|
|
"i"
|
|
"g"
|
|
"h"
|
|
"t"
|
|
"S"
|
|
"t"
|
|
"i"
|
|
"c"
|
|
"k")
|
|
UI_MAP_ELEMENT(
|
|
m_controlLines
|
|
[e_PadTouch],
|
|
"LineTouch")
|
|
|
|
UI_MAP_ELEMENT(
|
|
m_checkboxInvert,
|
|
"InvertLook")
|
|
UI_MAP_ELEMENT(
|
|
m_checkboxSouthpaw,
|
|
"SouthPaw")
|
|
|
|
UI_MAP_NAME(
|
|
m_funcSetPlatform,
|
|
L"SetPlatfo"
|
|
L"rm")
|
|
UI_MAP_NAME(
|
|
m_funcSetControllerLayout,
|
|
L"SetCo"
|
|
L"ntrol"
|
|
L"lerLa"
|
|
L"yout")
|
|
UI_MAP_ELEMENT(
|
|
m_labelVersion,
|
|
"Ve"
|
|
"rs"
|
|
"io"
|
|
"n")
|
|
UI_END_MAP_ELEMENTS_AND_NAMES() public
|
|
: UIScene_ControlsMenu(int iPad, void* initData, UILayer* parentLayer);
|
|
|
|
virtual EUIScene getSceneType() { return eUIScene_ControlsMenu; }
|
|
|
|
virtual void updateTooltips();
|
|
virtual void tick();
|
|
|
|
protected:
|
|
// TODO: This should be pure virtual in this class
|
|
virtual std::wstring getMoviePath();
|
|
|
|
public:
|
|
// INPUT
|
|
virtual void handleInput(int iPad, int key, bool repeat, bool pressed,
|
|
bool released, bool& handled);
|
|
|
|
virtual void handleCheckboxToggled(F64 controlId, bool selected);
|
|
virtual void handlePress(F64 controlId, F64 childId);
|
|
virtual void handleFocusChange(F64 controlId, F64 childId);
|
|
|
|
private:
|
|
void PositionText(int iPad, int iTextID, unsigned char ucAction);
|
|
void PositionTextDirect(int iPad, int iTextID, int iControlDetailsIndex,
|
|
bool bShow);
|
|
void PositionAllText(int iPad);
|
|
}; |