1#ifndef GAME_CLIENT_COMPONENTS_TOUCH_CONTROLS_H
2#define GAME_CLIENT_COMPONENTS_TOUCH_CONTROLS_H
45 int Sizeof()
const override {
return sizeof(*this); }
180 class CTouchButtonBehavior;
216 void Render(std::optional<bool>
Selected = std::nullopt, std::optional<CUnitRect> Rect = std::nullopt)
const;
379 static constexpr const char *
const BEHAVIOR_ID =
"joystick-action";
Definition component.h:165
Definition jsonwriter.h:15
Definition touch_controls.h:548
IInput::CTouchFinger m_Finger
Definition touch_controls.h:551
bool m_Active
Definition touch_controls.h:550
Definition touch_controls.h:697
CTouchButton * m_pTargetButton
Definition touch_controls.h:700
bool m_Resolved
Definition touch_controls.h:699
Definition touch_controls.h:75
bool IsOverlap(const CUnitRect &Other) const
Definition touch_controls.h:82
bool operator==(const CUnitRect &Other) const
Definition touch_controls.h:86
int m_Y
Definition touch_controls.h:78
int m_X
Definition touch_controls.h:77
float Distance(const CUnitRect &Other) const
Definition touch_controls.cpp:2491
int m_H
Definition touch_controls.h:80
int m_W
Definition touch_controls.h:79
Definition touch_controls.h:24
std::vector< ivec2 > m_vTargets
Definition touch_controls.h:595
void SetBackgroundColorInactive(ColorRGBA Color)
Definition touch_controls.h:655
void UpdateButtonsGame(const std::vector< IInput::CTouchFingerState > &vTouchFingerStates)
Definition touch_controls.cpp:969
std::optional< IInput::CTouchFingerState > m_ActiveFingerState
Definition touch_controls.h:612
void SetSelectedButton(CTouchButton *TargetButton)
Definition touch_controls.h:646
void ResetVirtualVisibilities()
Definition touch_controls.cpp:1727
std::vector< CUnitRect > m_vYSortedRects
Definition touch_controls.h:598
std::vector< IInput::CTouchFingerState > m_vDeletedFingerState
Definition touch_controls.h:617
void OnWindowResize() override
Definition touch_controls.cpp:763
vec2 m_AccumulatedDelta
Definition touch_controls.h:616
void SetPreviewAllButtons(bool Preview)
Definition touch_controls.h:659
void OnReset() override
Definition touch_controls.cpp:757
std::optional< EDirectTouchIngameMode > ParseDirectTouchIngameMode(const json_value *pModeValue)
Definition touch_controls.cpp:1301
void WriteConfiguration(CJsonWriter *pWriter)
Definition touch_controls.cpp:1696
std::optional< CUnitRect > ShownRect() const
Definition touch_controls.h:643
vec2 m_ZoomStartPos
Definition touch_controls.h:615
void ResetButtonPointers()
Definition touch_controls.cpp:2431
int m_DirectTouchLastAction
Definition touch_controls.h:545
std::array< bool,(size_t) EButtonVisibility::NUM_VISIBILITIES > m_aVirtualVisibilities
Definition touch_controls.h:618
void SetBackgroundColorActive(ColorRGBA Color)
Definition touch_controls.h:656
std::optional< CUnitRect > m_ShownRect
Definition touch_controls.h:623
void UpdateButtonsEditor(const std::vector< IInput::CTouchFingerState > &vTouchFingerStates)
Definition touch_controls.cpp:1734
int NextActiveAction(int Action) const
Definition touch_controls.cpp:919
std::array< CTouchControls::CIssueParam,(unsigned) CTouchControls::EIssueType::NUM_ISSUES > Issues()
Definition touch_controls.cpp:2455
void SaveConfigurationToClipboard()
Definition touch_controls.cpp:859
int m_ActionSelected
Definition touch_controls.h:534
void SetEditingActive(bool EditingActive)
Definition touch_controls.h:70
ColorRGBA BackgroundColorInactive() const
Definition touch_controls.h:653
void OnRender() override
Definition touch_controls.cpp:796
int m_LastWidth
Definition touch_controls.h:599
CUIRect CalculateScreenFromUnitRect(CUnitRect Unit, EButtonShape Shape=EButtonShape::RECT) const
Definition touch_controls.cpp:103
CTouchButton * SampleButton() const
Definition touch_controls.h:649
int NextDirectTouchAction() const
Definition touch_controls.cpp:933
@ ACTION_AIM
Definition touch_controls.h:171
@ ACTION_HOOK
Definition touch_controls.h:173
@ NUM_ACTIONS
Definition touch_controls.h:174
@ ACTION_FIRE
Definition touch_controls.h:172
int m_JoystickPressCount
Definition touch_controls.h:539
std::vector< IInput::CTouchFinger > m_vStaleFingers
Definition touch_controls.h:563
EButtonShape
Definition touch_controls.h:111
CTouchButton * SelectedButton() const
Definition touch_controls.h:645
std::unique_ptr< CTouchButton > m_pSampleButton
Definition touch_controls.h:621
CUnitRect FindPositionXY(std::vector< CUnitRect > &vVisibleButtonRects, CUnitRect MyRect)
Definition touch_controls.cpp:2066
std::vector< CUnitRect > m_vLastUpdateRects
Definition touch_controls.h:596
static constexpr const char *const SHAPE_NAMES[(int) EButtonShape::NUM_SHAPES]
Definition touch_controls.h:148
void SetShownRect(std::optional< CUnitRect > Rect)
Definition touch_controls.h:644
ColorRGBA DefaultBackgroundColorActive() const
Definition touch_controls.h:652
CPopupParam m_PopupParam
Definition touch_controls.h:707
void DeleteSelectedButton()
Definition touch_controls.cpp:2389
bool IsButtonEditing() const
Definition touch_controls.h:650
bool m_aExtraMenuActive[(int) EButtonVisibility::EXTRA_MENU_5 -(int) EButtonVisibility::EXTRA_MENU_1+1]
Definition touch_controls.h:529
void ReverseVirtualVisibilities(int Number)
Definition touch_controls.h:642
bool NoRealButtonSelected() const
Definition touch_controls.h:647
bool IsEditingActive() const
Definition touch_controls.h:69
std::array< CIssueParam,(int) EIssueType::NUM_ISSUES > m_aIssueParam
Definition touch_controls.h:708
int Sizeof() const override
Definition touch_controls.h:45
CUnitRect UpdatePosition(CUnitRect MyRect, bool Ignore=false)
Definition touch_controls.cpp:2415
EDirectTouchSpectateMode DirectTouchSpectate() const
Definition touch_controls.h:63
bool LoadConfigurationFromClipboard()
Definition touch_controls.cpp:839
std::optional< EDirectTouchSpectateMode > ParseDirectTouchSpectateMode(const json_value *pModeValue)
Definition touch_controls.cpp:1331
void RenderButtonsGame()
Definition touch_controls.cpp:1182
std::array< bool,(size_t) EButtonVisibility::NUM_VISIBILITIES > VirtualVisibilities() const
Definition touch_controls.h:641
std::optional< CTouchButton > ParseButton(const json_value *pButtonObject)
Definition touch_controls.cpp:1382
std::unique_ptr< CBindTouchButtonBehavior > ParseBindBehavior(const json_value *pBehaviorObject)
Definition touch_controls.cpp:1582
static constexpr const int BUTTON_SIZE_MAXIMUM
Definition touch_controls.h:28
void UpdateSampleButton(const CTouchButton &SrcButton)
Definition touch_controls.cpp:2467
bool m_EditingActive
Definition touch_controls.h:568
CTouchButton * m_pSelectedButton
Definition touch_controls.h:624
vec2 CalculateScreenSize() const
Definition touch_controls.cpp:1200
std::unique_ptr< CBindToggleTouchButtonBehavior > ParseBindToggleBehavior(const json_value *pBehaviorObject)
Definition touch_controls.cpp:1630
CActionState m_aDirectTouchActionStates[NUM_ACTIONS]
Definition touch_controls.h:557
std::vector< CTouchButton * > GetButtonsEditor()
Definition touch_controls.cpp:2479
static constexpr const char *const DIRECT_TOUCH_SPECTATE_MODE_NAMES[(int) EDirectTouchSpectateMode::NUM_STATES]
Definition touch_controls.h:147
bool PreviewAllButtons() const
Definition touch_controls.h:658
void SetUnsavedChanges(bool UnsavedChanges)
Definition touch_controls.h:640
std::vector< CTouchButton > m_vTouchButtons
Definition touch_controls.h:524
bool LoadConfigurationFromFile(int StorageType)
Definition touch_controls.cpp:824
void OnInit() override
Definition touch_controls.cpp:748
void SetDirectTouchSpectate(EDirectTouchSpectateMode DirectTouchSpectate)
Definition touch_controls.h:64
void SetEditingChanges(bool EditingChanges)
Definition touch_controls.h:72
std::unique_ptr< CExtraMenuTouchButtonBehavior > ParseExtraMenuBehavior(const json_value *pBehaviorObject)
Definition touch_controls.cpp:1566
static const constexpr int MAX_EXTRA_MENU_NUMBER
Definition touch_controls.h:108
bool m_UnsavedChanges
Definition touch_controls.h:626
int m_LastHeight
Definition touch_controls.h:600
EDirectTouchIngameMode
Definition touch_controls.h:30
ColorRGBA m_BackgroundColorInactive
Definition touch_controls.h:510
EPopupType
Definition touch_controls.h:663
void RemakeSampleButton()
Definition touch_controls.h:648
ColorRGBA DefaultBackgroundColorInactive() const
Definition touch_controls.h:651
CTouchButton * NewButton()
Definition touch_controls.cpp:2364
EDirectTouchIngameMode DirectTouchIngame() const
Definition touch_controls.h:57
bool m_PreventSaving
Definition touch_controls.h:611
bool HasEditingChanges() const
Definition touch_controls.h:71
EIssueType
Definition touch_controls.h:689
std::unique_ptr< CPredefinedTouchButtonBehavior > ParsePredefinedBehavior(const json_value *pBehaviorObject)
Definition touch_controls.cpp:1527
std::optional< IInput::CTouchFingerState > m_LongPressFingerState
Definition touch_controls.h:614
ColorRGBA BackgroundColorActive() const
Definition touch_controls.h:654
void SetDirectTouchIngame(EDirectTouchIngameMode DirectTouchIngame)
Definition touch_controls.h:58
ColorRGBA m_BackgroundColorActive
Definition touch_controls.h:517
bool ParseConfiguration(const void *pFileData, unsigned FileLength)
Definition touch_controls.cpp:1207
void ResetButtons()
Definition touch_controls.cpp:1170
bool OnTouchState(const std::vector< IInput::CTouchFingerState > &vTouchFingerStates) override
Definition touch_controls.cpp:772
CButtonVisibilityData m_aVisibilityFunctions[(int) EButtonVisibility::NUM_VISIBILITIES]
Definition touch_controls.h:167
static constexpr const char *const LABEL_TYPE_NAMES[(int) CButtonLabel::EType::NUM_TYPES]
Definition touch_controls.h:177
CPopupParam RequiredPopup()
Definition touch_controls.cpp:2439
static constexpr const int BUTTON_SIZE_SCALE
Definition touch_controls.h:26
std::vector< CUnitRect > m_vXSortedRects
Definition touch_controls.h:597
std::unique_ptr< CTouchButtonBehavior > ParseBehavior(const json_value *pBehaviorObject)
Definition touch_controls.cpp:1492
bool AnyIssueNotResolved() const
Definition touch_controls.cpp:2448
EDirectTouchIngameMode m_DirectTouchIngame
Definition touch_controls.h:496
void RenderButtonsEditor()
Definition touch_controls.cpp:2046
static constexpr const int BUTTON_SIZE_MINIMUM
Definition touch_controls.h:27
bool m_PreviewAllButtons
Definition touch_controls.h:627
std::optional< ColorRGBA > ParseColor(const json_value *pColorValue, const char *pAttributeName, std::optional< ColorRGBA > DefaultColor) const
Definition touch_controls.cpp:1361
std::optional< IInput::CTouchFingerState > m_ZoomFingerState
Definition touch_controls.h:613
bool SaveConfigurationToFile()
Definition touch_controls.cpp:845
bool m_EditingChanges
Definition touch_controls.h:573
EButtonVisibility
Definition touch_controls.h:93
bool HasUnsavedChanges() const
Definition touch_controls.h:639
EDirectTouchSpectateMode
Definition touch_controls.h:39
void InitVisibilityFunctions()
Definition touch_controls.cpp:867
static constexpr const char *const DIRECT_TOUCH_INGAME_MODE_NAMES[(int) EDirectTouchIngameMode::NUM_STATES]
Definition touch_controls.h:146
void BuildPositionXY(std::vector< CUnitRect > vVisibleButtonRects, CUnitRect MyRect)
Definition touch_controls.cpp:2153
EDirectTouchSpectateMode m_DirectTouchSpectate
Definition touch_controls.h:503
bool IsRectOverlapping(CUnitRect MyRect={0, 0, BUTTON_SIZE_MINIMUM, BUTTON_SIZE_MINIMUM}) const
Definition touch_controls.cpp:2400
struct _json_value json_value
Definition serverbrowser.h:17
struct _json_value json_value
Definition touch_controls.h:21
vector2_base< float > vec2
Definition vmath.h:161