DDraceNetwork Docs
menus.h
Go to the documentation of this file.
1/* (c) Magnus Auvinen. See licence.txt in the root of the distribution for more information. */
2/* If you are missing that file, acquire a complete release at teeworlds.com. */
3#ifndef GAME_CLIENT_COMPONENTS_MENUS_H
4#define GAME_CLIENT_COMPONENTS_MENUS_H
5
6#include <base/types.h>
7#include <base/vmath.h>
8
9#include <chrono>
10#include <deque>
11#include <optional>
12#include <unordered_set>
13#include <vector>
14
15#include <engine/console.h>
16#include <engine/demo.h>
17#include <engine/friends.h>
20#include <engine/shared/http.h>
21#include <engine/shared/jobs.h>
23#include <engine/textrender.h>
24
28#include <game/client/render.h>
29#include <game/client/ui.h>
30#include <game/voting.h>
31
33
34static constexpr const char *DEFAULT_SAVED_RCON_USER = "local-server";
35
37{
38#if !defined(CONF_PLATFORM_ANDROID)
40#endif
41};
42
43// component to fetch keypresses, override all other input
45{
46public:
47 const void *m_pKeyReaderId;
53 virtual int Sizeof() const override { return sizeof(*this); }
54 virtual bool OnInput(const IInput::CEvent &Event) override;
55};
56
58{
63};
64
65class CMenus : public CComponent
66{
77
78 int DoButton_FontIcon(CButtonContainer *pButtonContainer, const char *pText, int Checked, const CUIRect *pRect, const unsigned Flags, int Corners = IGraphics::CORNER_ALL, bool Enabled = true);
79 int DoButton_Toggle(const void *pId, int Checked, const CUIRect *pRect, bool Active, const unsigned Flags = BUTTONFLAG_LEFT);
80 int DoButton_Menu(CButtonContainer *pButtonContainer, const char *pText, int Checked, const CUIRect *pRect, const unsigned Flags = BUTTONFLAG_LEFT, const char *pImageName = nullptr, int Corners = IGraphics::CORNER_ALL, float Rounding = 5.0f, float FontFactor = 0.0f, ColorRGBA Color = ColorRGBA(1.0f, 1.0f, 1.0f, 0.5f));
81 int DoButton_MenuTab(CButtonContainer *pButtonContainer, const char *pText, int Checked, const CUIRect *pRect, int Corners, SUIAnimator *pAnimator = nullptr, const ColorRGBA *pDefaultColor = nullptr, const ColorRGBA *pActiveColor = nullptr, const ColorRGBA *pHoverColor = nullptr, float EdgeRounding = 10.0f, const SCommunityIcon *pCommunityIcon = nullptr);
82
83 int DoButton_CheckBox_Common(const void *pId, const char *pText, const char *pBoxText, const CUIRect *pRect, const unsigned Flags);
84 int DoButton_CheckBox(const void *pId, const char *pText, int Checked, const CUIRect *pRect);
85 int DoButton_CheckBoxAutoVMarginAndSet(const void *pId, const char *pText, int *pValue, CUIRect *pRect, float VMargin);
86 int DoButton_CheckBox_Number(const void *pId, const char *pText, int Checked, const CUIRect *pRect);
87
88 bool DoLine_RadioMenu(CUIRect &View, const char *pLabel, std::vector<CButtonContainer> &vButtonContainers, const std::vector<const char *> &vLabels, const std::vector<int> &vValues, int &Value);
89
90 ColorHSLA DoLine_ColorPicker(CButtonContainer *pResetId, float LineSize, float LabelSize, float BottomMargin, CUIRect *pMainRect, const char *pText, unsigned int *pColorValue, ColorRGBA DefaultColor, bool CheckBoxSpacing = true, int *pCheckBoxValue = nullptr, bool Alpha = false);
91 ColorHSLA DoButton_ColorPicker(const CUIRect *pRect, unsigned int *pHslaColor, bool Alpha);
92 void DoLaserPreview(const CUIRect *pRect, ColorHSLA OutlineColor, ColorHSLA InnerColor, const int LaserType);
93 int DoButton_GridHeader(const void *pId, const char *pText, int Checked, const CUIRect *pRect);
94 int DoButton_Favorite(const void *pButtonId, const void *pParentId, bool Checked, const CUIRect *pRect);
95
96 int DoKeyReader(const void *pId, const CUIRect *pRect, int Key, int ModifierCombination, int *pNewModifierCombination);
97
98 void DoSettingsControlsButtons(int Start, int Stop, CUIRect View);
99
101 void DoJoystickAxisPicker(CUIRect View);
102 void DoJoystickBar(const CUIRect *pRect, float Current, float Tolerance, bool Active);
103
104 std::optional<std::chrono::nanoseconds> m_SkinListLastRefreshTime;
106 std::optional<std::chrono::nanoseconds> m_SkinList7LastRefreshTime;
107 std::optional<std::chrono::nanoseconds> m_SkinPartsList7LastRefreshTime;
108
110
111 // menus_settings_assets.cpp
112public:
114 {
116
117 char m_aName[50];
118
119 bool operator<(const SCustomItem &Other) const { return str_comp(m_aName, Other.m_aName) < 0; }
120 };
121
123 {
125 {
127 };
129 };
130
131 struct SCustomGame : public SCustomItem
132 {
133 };
134
136 {
137 };
138
140 {
141 };
142
143 struct SCustomHud : public SCustomItem
144 {
145 };
146
148 {
149 };
150
151protected:
152 std::vector<SCustomEntities> m_vEntitiesList;
153 std::vector<SCustomGame> m_vGameList;
154 std::vector<SCustomEmoticon> m_vEmoticonList;
155 std::vector<SCustomParticle> m_vParticlesList;
156 std::vector<SCustomHud> m_vHudList;
157 std::vector<SCustomExtras> m_vExtrasList;
158
159 bool m_IsInit = false;
160
161 static void LoadEntities(struct SCustomEntities *pEntitiesItem, void *pUser);
162 static int EntitiesScan(const char *pName, int IsDir, int DirType, void *pUser);
163
164 static int GameScan(const char *pName, int IsDir, int DirType, void *pUser);
165 static int EmoticonsScan(const char *pName, int IsDir, int DirType, void *pUser);
166 static int ParticlesScan(const char *pName, int IsDir, int DirType, void *pUser);
167 static int HudScan(const char *pName, int IsDir, int DirType, void *pUser);
168 static int ExtrasScan(const char *pName, int IsDir, int DirType, void *pUser);
169
170 static void ConchainAssetsEntities(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData);
171 static void ConchainAssetGame(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData);
172 static void ConchainAssetParticles(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData);
173 static void ConchainAssetEmoticons(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData);
174 static void ConchainAssetHud(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData);
175 static void ConchainAssetExtras(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData);
176
177 void ClearCustomItems(int CurTab);
178
184
186
187 bool m_JoinTutorial = false;
190
191 char m_aNextServer[256];
192
193 // images
195 {
196 char m_aName[64];
199 };
200 std::vector<CMenuImage> m_vMenuImages;
201 static int MenuImageScan(const char *pName, int IsDir, int DirType, void *pUser);
202 const CMenuImage *FindMenuImage(const char *pName);
203
204 // loading
206 {
207 public:
208 std::chrono::nanoseconds m_LastRender{0};
211 };
213
214 //
216 char m_aMessageBody[512];
218
221
222 // generic popups
223 typedef void (CMenus::*FPopupButtonCallback)();
225 {
226 // do nothing
227 }
228 enum
229 {
230 BUTTON_CONFIRM = 0, // confirm / yes / close / ok
231 BUTTON_CANCEL, // cancel / no
233 };
234 char m_aPopupTitle[128];
236 struct
237 {
238 char m_aLabel[64];
242
243 void PopupMessage(const char *pTitle, const char *pMessage,
244 const char *pButtonLabel, int NextPopup = POPUP_NONE, FPopupButtonCallback pfnButtonCallback = &CMenus::DefaultButtonCallback);
245 void PopupConfirm(const char *pTitle, const char *pMessage,
246 const char *pConfirmButtonLabel, const char *pCancelButtonLabel,
247 FPopupButtonCallback pfnConfirmButtonCallback = &CMenus::DefaultButtonCallback, int ConfirmNextPopup = POPUP_NONE,
248 FPopupButtonCallback pfnCancelButtonCallback = &CMenus::DefaultButtonCallback, int CancelNextPopup = POPUP_NONE);
249
250 // some settings
251 static float ms_ButtonHeight;
254
255 // for settings
262
263 // 0.7 skins
264 bool m_CustomSkinMenu = false;
270
271 // for map download popup
275
276 // for password popup
278
279 // for call vote
285
286 // demo
287 enum
288 {
292 };
293
295 {
301 time_t m_Date;
302 int64_t m_Size;
303
309
310 int NumMarkers() const
311 {
313 }
314
315 int Length() const
316 {
318 }
319
320 unsigned MapSize() const
321 {
323 }
324
325 bool operator<(const CDemoItem &Other) const
326 {
327 if(!str_comp(m_aFilename, ".."))
328 return true;
329 if(!str_comp(Other.m_aFilename, ".."))
330 return false;
331 if(m_IsDir && !Other.m_IsDir)
332 return true;
333 if(!m_IsDir && Other.m_IsDir)
334 return false;
335
336 const CDemoItem &Left = g_Config.m_BrDemoSortOrder ? Other : *this;
337 const CDemoItem &Right = g_Config.m_BrDemoSortOrder ? *this : Other;
338
339 if(g_Config.m_BrDemoSort == SORT_DEMONAME)
340 return str_comp_filenames(Left.m_aFilename, Right.m_aFilename) < 0;
341 if(g_Config.m_BrDemoSort == SORT_DATE)
342 return Left.m_Date < Right.m_Date;
343
344 if(!Other.m_InfosLoaded)
345 return m_InfosLoaded;
346 if(!m_InfosLoaded)
347 return !Other.m_InfosLoaded;
348
349 if(g_Config.m_BrDemoSort == SORT_LENGTH)
350 return Left.Length() < Right.Length();
351
352 // Unknown sort
353 return true;
354 }
355 };
356
362#if defined(CONF_VIDEORECORDER)
364#endif
369 int m_Speed = 4;
370 bool m_StartPaused = false;
371
372 std::chrono::nanoseconds m_DemoPopulateStartTime{0};
373
374 void DemolistOnUpdate(bool Reset);
375 static int DemolistFetchCallback(const CFsFileInfo *pInfo, int IsDir, int StorageType, void *pUser);
376
377 // friends
379 {
386 // skin
391
392 public:
394 CFriendItem(const CFriendInfo *pFriendInfo) :
395 m_pServerInfo(nullptr),
396 m_IsPlayer(false),
397 m_IsAfk(false),
398 m_CustomSkinColors(false),
401 {
402 str_copy(m_aName, pFriendInfo->m_aName);
403 str_copy(m_aClan, pFriendInfo->m_aClan);
405 m_aSkin[0] = '\0';
406 }
407 CFriendItem(const CServerInfo::CClient &CurrentClient, const CServerInfo *pServerInfo) :
408 m_pServerInfo(pServerInfo),
409 m_FriendState(CurrentClient.m_FriendState),
410 m_IsPlayer(CurrentClient.m_Player),
411 m_IsAfk(CurrentClient.m_Afk),
415 {
416 str_copy(m_aName, CurrentClient.m_aName);
417 str_copy(m_aClan, CurrentClient.m_aClan);
418 str_copy(m_aSkin, CurrentClient.m_aSkin);
419 }
420
421 const char *Name() const { return m_aName; }
422 const char *Clan() const { return m_aClan; }
423 const CServerInfo *ServerInfo() const { return m_pServerInfo; }
424 int FriendState() const { return m_FriendState; }
425 bool IsPlayer() const { return m_IsPlayer; }
426 bool IsAfk() const { return m_IsAfk; }
427 const char *Skin() const { return m_aSkin; }
428 bool CustomSkinColors() const { return m_CustomSkinColors; }
431
432 const void *ListItemId() const { return &m_aName; }
433 const void *RemoveButtonId() const { return &m_FriendState; }
434 const void *CommunityTooltipId() const { return &m_IsPlayer; }
435 const void *SkinTooltipId() const { return &m_aSkin; }
436
437 bool operator<(const CFriendItem &Other) const
438 {
439 const int Result = str_comp_nocase(m_aName, Other.m_aName);
440 return Result < 0 || (Result == 0 && str_comp_nocase(m_aClan, Other.m_aClan) < 0);
441 }
442 };
443
444 enum
445 {
450 };
451 std::vector<CFriendItem> m_avFriends[NUM_FRIEND_TYPES];
452 const CFriendItem *m_pRemoveFriend = nullptr;
453
454 // found in menus.cpp
455 void Render();
456 void RenderPopupFullscreen(CUIRect Screen);
457 void RenderPopupConnecting(CUIRect Screen);
458 void RenderPopupLoading(CUIRect Screen);
459#if defined(CONF_VIDEORECORDER)
461#endif
462 void RenderMenubar(CUIRect Box, IClient::EClientState ClientState);
463 void RenderNews(CUIRect MainView);
464 static void ConchainBackgroundEntities(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData);
465 static void ConchainUpdateMusicState(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData);
466 void UpdateMusicState();
467
468 // found in menus_demo.cpp
470 float m_LastPauseChange = -1.0f;
471 float m_LastSpeedChange = -1.0f;
472 static bool DemoFilterChat(const void *pData, int Size, void *pUser);
473 bool FetchHeader(CDemoItem &Item);
474 void FetchAllHeaders();
475 void HandleDemoSeeking(float PositionToSeek, float TimeToSeek);
476 void RenderDemoPlayer(CUIRect MainView);
479 void RenderDemoBrowser(CUIRect MainView);
480 void RenderDemoBrowserList(CUIRect ListView, bool &WasListboxItemActivated);
481 void RenderDemoBrowserDetails(CUIRect DetailsView);
482 void RenderDemoBrowserButtons(CUIRect ButtonsView, bool WasListboxItemActivated);
485
486 // found in menus_start.cpp
487 void RenderStartMenu(CUIRect MainView);
488
489 // found in menus_ingame.cpp
491 void RenderGame(CUIRect MainView);
492 void RenderTouchControlsEditor(CUIRect MainView);
498 void RenderPlayers(CUIRect MainView);
499 void RenderServerInfo(CUIRect MainView);
500 void RenderServerInfoMotd(CUIRect Motd);
501 void RenderServerControl(CUIRect MainView);
502 bool RenderServerControlKick(CUIRect MainView, bool FilterSpectators, bool UpdateScroll);
503 bool RenderServerControlServer(CUIRect MainView, bool UpdateScroll);
504 void RenderIngameHint();
505
506 // found in menus_browser.cpp
510 void RenderServerbrowserServerList(CUIRect View, bool &WasListboxItemActivated);
511 void RenderServerbrowserStatusBox(CUIRect StatusBox, bool WasListboxItemActivated);
512 void Connect(const char *pAddress);
517 IFilterList &Filter,
518 float ItemHeight, int MaxItems, int ItemsPerRow,
519 CScrollRegion &ScrollRegion, std::vector<unsigned char> &vItemIds,
520 bool UpdateCommunityCacheOnChange,
521 const std::function<const char *(int ItemIndex)> &GetItemName,
522 const std::function<void(int ItemIndex, CUIRect Item, const void *pItemId, bool Active)> &RenderItem);
527 {
530 bool m_New;
531 };
532 static CUi::EPopupMenuFunctionResult PopupCountrySelection(void *pContext, CUIRect View, bool Active);
534 void RenderServerbrowserInfoScoreboard(CUIRect View, const CServerInfo *pSelectedServer);
536 void FriendlistOnUpdate();
540 void RenderServerbrowser(CUIRect MainView);
541 template<typename F>
542 bool PrintHighlighted(const char *pName, F &&PrintFn);
543 CTeeRenderInfo GetTeeRenderInfo(vec2 Size, const char *pSkinName, bool CustomSkinColors, int CustomSkinColorBody, int CustomSkinColorFeet) const;
544 static void ConchainFriendlistUpdate(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData);
545 static void ConchainFavoritesUpdate(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData);
546 static void ConchainCommunitiesUpdate(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData);
547 static void ConchainUiPageUpdate(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData);
548 void UpdateCommunityCache(bool Force);
549
550 // community icons
552 {
553 protected:
558 bool m_Success = false;
560
561 CAbstractCommunityIconJob(CMenus *pMenus, const char *pCommunityId, int StorageType);
563
564 public:
565 const char *CommunityId() const { return m_aCommunityId; }
566 bool Success() const { return m_Success; }
567 const SHA256_DIGEST &Sha256() const { return m_Sha256; }
568 };
569
571 {
574
575 protected:
576 void Run() override;
577
578 public:
579 CCommunityIconLoadJob(CMenus *pMenus, const char *pCommunityId, int StorageType);
581
584 };
585
587 {
588 public:
589 CCommunityIconDownloadJob(CMenus *pMenus, const char *pCommunityId, const char *pUrl, const SHA256_DIGEST &Sha256);
590 };
591
592 std::vector<SCommunityIcon> m_vCommunityIcons;
593 std::deque<std::shared_ptr<CCommunityIconLoadJob>> m_CommunityIconLoadJobs;
594 std::deque<std::shared_ptr<CCommunityIconDownloadJob>> m_CommunityIconDownloadJobs;
596 static int CommunityIconScan(const char *pName, int IsDir, int DirType, void *pUser);
597 const SCommunityIcon *FindCommunityIcon(const char *pCommunityId);
598 bool LoadCommunityIconFile(const char *pPath, int DirType, CImageInfo &Info, CImageInfo &InfoGrayscale, SHA256_DIGEST &Sha256);
599 void LoadCommunityIconFinish(const char *pCommunityId, CImageInfo &Info, CImageInfo &InfoGrayscale, const SHA256_DIGEST &Sha256);
600 void RenderCommunityIcon(const SCommunityIcon *pIcon, CUIRect Rect, bool Active);
602
603 // skin favorite list
604 std::unordered_set<std::string> m_SkinFavorites;
605 static void Con_AddFavoriteSkin(IConsole::IResult *pResult, void *pUserData);
606 static void Con_RemFavoriteSkin(IConsole::IResult *pResult, void *pUserData);
607 static void ConfigSaveCallback(IConfigManager *pConfigManager, void *pUserData);
608 void OnConfigSave(IConfigManager *pConfigManager);
609
610 // found in menus_settings.cpp
611 void RenderLanguageSettings(CUIRect MainView);
612 bool RenderLanguageSelection(CUIRect MainView);
613 void RenderThemeSelection(CUIRect MainView);
614 void RenderSettingsGeneral(CUIRect MainView);
615 void RenderSettingsPlayer(CUIRect MainView);
617 void RenderSettingsTee(CUIRect MainView);
618 void RenderSettingsTee7(CUIRect MainView);
619 void RenderSettingsTeeCustom7(CUIRect MainView);
620 void RenderSkinSelection7(CUIRect MainView);
621 void RenderSkinPartSelection7(CUIRect MainView);
622 void RenderSettingsControls(CUIRect MainView);
624 void RenderSettingsGraphics(CUIRect MainView);
625 void RenderSettingsSound(CUIRect MainView);
626 void RenderSettings(CUIRect MainView);
627 void RenderSettingsCustom(CUIRect MainView);
628
629 std::vector<CButtonContainer> vButtonsContainersJoystickAbsolute = {{}, {}};
630 std::vector<CButtonContainer> vButtonsContainersNamePlateShow = {{}, {}, {}, {}};
631 std::vector<CButtonContainer> vButtonsContainersNamePlateKeyPresses = {{}, {}, {}, {}};
632
634 {
635 public:
638 };
640 {
641 public:
642 std::vector<CMapListItem> m_vMaps;
644 static int MapListFetchCallback(const CFsFileInfo *pInfo, int IsDir, int StorageType, void *pUser);
645 void MapListPopulate();
648 };
649
650 static bool CompareFilenameAscending(const CMapListItem Lhs, const CMapListItem Rhs)
651 {
652 if(str_comp(Lhs.m_aFilename, "..") == 0)
653 return true;
654 if(str_comp(Rhs.m_aFilename, "..") == 0)
655 return false;
656 if(Lhs.m_IsDirectory != Rhs.m_IsDirectory)
657 return Lhs.m_IsDirectory;
658 return str_comp_filenames(Lhs.m_aFilename, Rhs.m_aFilename) < 0;
659 }
660
661 static CUi::EPopupMenuFunctionResult PopupMapPicker(void *pContext, CUIRect View, bool Active);
662
663 void SetNeedSendInfo();
664 void UpdateColors();
665
667
668 bool CheckHotKey(int Key) const;
669
670public:
671 void RenderBackground();
672
674
675 CMenus();
676 virtual int Sizeof() const override { return sizeof(*this); }
677
678 void RenderLoading(const char *pCaption, const char *pContent, int IncreaseCounter);
679 void FinishLoading();
680
681 bool IsInit() { return m_IsInit; }
682
683 bool IsActive() const { return m_MenuActive; }
684 void SetActive(bool Active);
685
686 void RunServer(const char **ppArguments = nullptr, const size_t NumArguments = 0);
687 void KillServer();
688 bool IsServerRunning() const;
689
690 virtual void OnInit() override;
691 void OnConsoleInit() override;
692
693 virtual void OnStateChange(int NewState, int OldState) override;
694 virtual void OnWindowResize() override;
695 virtual void OnReset() override;
696 virtual void OnRender() override;
697 virtual bool OnInput(const IInput::CEvent &Event) override;
698 virtual bool OnCursorMove(float x, float y, IInput::ECursorType CursorType) override;
699 virtual void OnShutdown() override;
700
701 enum
702 {
720
722
733
735
746
748
758
760 };
761
765
766 // DDRace
767 int DoButton_CheckBox_Tristate(const void *pId, const char *pText, TRISTATE Checked, const CUIRect *pRect);
768 std::vector<CDemoItem> m_vDemos;
769 std::vector<CDemoItem *> m_vpFilteredDemos;
770 void DemolistPopulate();
772 void DemoSeekTick(IDemoPlayer::ETickOffset TickOffset);
774
775 const char *GetCurrentDemoFolder() const { return m_aCurrentDemoFolder; }
776
777 // Ghost
779 {
782
786 bool m_Own;
787 time_t m_Date;
788
790 m_Slot(-1), m_Own(false) { m_aFilename[0] = 0; }
791
792 bool operator<(const CGhostItem &Other) const { return m_Time < Other.m_Time; }
793
794 bool Active() const { return m_Slot != -1; }
795 bool HasFile() const { return m_aFilename[0]; }
796 };
797
798 enum
799 {
804 };
805
806 std::vector<CGhostItem> m_vGhosts;
807
808 std::chrono::nanoseconds m_GhostPopulateStartTime{0};
809
810 void GhostlistPopulate();
812 void UpdateOwnGhost(CGhostItem Item);
813 void DeleteGhostItem(int Index);
814 void SortGhostlist();
815
816 bool CanDisplayWarning() const;
817
818 void PopupWarning(const char *pTopic, const char *pBody, const char *pButton, std::chrono::nanoseconds Duration);
819
820 std::chrono::nanoseconds m_PopupWarningLastTime;
821 std::chrono::nanoseconds m_PopupWarningDuration;
822
824
825 enum
826 {
828 POPUP_MESSAGE, // generic message popup (one button)
829 POPUP_CONFIRM, // generic confirmation popup (two buttons)
842
843 // demo player states
846 };
847
848private:
849 static int GhostlistFetchCallback(const CFsFileInfo *pInfo, int IsDir, int StorageType, void *pUser);
850 void SetMenuPage(int NewPage);
851 void RefreshBrowserTab(bool Force);
852
853 // found in menus_ingame.cpp
854 void RenderInGameNetwork(CUIRect MainView);
855 void RenderGhost(CUIRect MainView);
856
857 // found in menus_settings.cpp
858 void RenderSettingsDDNet(CUIRect MainView);
859 void RenderSettingsAppearance(CUIRect MainView);
860 bool RenderHslaScrollbars(CUIRect *pRect, unsigned int *pColor, bool Alpha, float DarkestLight);
861
863};
864#endif
const SHA256_DIGEST SHA256_ZEROED
Definition: hash.cpp:6
Definition: ui.h:259
Definition: component.h:20
Definition: ghost.h:34
Definition: http.h:53
Definition: image.h:12
Definition: lineinput.h:25
Definition: menus.h:45
virtual bool OnInput(const IInput::CEvent &Event) override
Definition: menus_settings.cpp:55
IInput::CEvent m_Key
Definition: menus.h:50
const void * m_pKeyReaderId
Definition: menus.h:47
int m_ModifierCombination
Definition: menus.h:51
virtual int Sizeof() const override
Definition: menus.h:53
bool m_GotKey
Definition: menus.h:49
CMenusKeyBinder()
Definition: menus_settings.cpp:47
bool m_TakeKey
Definition: menus.h:48
Definition: menus.h:552
bool m_Success
Definition: menus.h:558
bool Success() const
Definition: menus.h:566
const char * CommunityId() const
Definition: menus.h:565
char m_aPath[IO_MAX_PATH_LENGTH]
Definition: menus.h:556
CMenus * m_pMenus
Definition: menus.h:554
int m_StorageType
Definition: menus.h:557
virtual ~CAbstractCommunityIconJob()
Definition: menus.h:562
char m_aCommunityId[CServerInfo::MAX_COMMUNITY_ID_LENGTH]
Definition: menus.h:555
const SHA256_DIGEST & Sha256() const
Definition: menus.h:567
SHA256_DIGEST m_Sha256
Definition: menus.h:559
CAbstractCommunityIconJob(CMenus *pMenus, const char *pCommunityId, int StorageType)
Definition: menus_browser.cpp:1917
Definition: menus.h:587
CCommunityIconDownloadJob(CMenus *pMenus, const char *pCommunityId, const char *pUrl, const SHA256_DIGEST &Sha256)
Definition: menus_browser.cpp:1925
Definition: menus.h:571
CImageInfo m_ImageInfoGrayscale
Definition: menus.h:573
CCommunityIconLoadJob(CMenus *pMenus, const char *pCommunityId, int StorageType)
Definition: menus_browser.cpp:1940
CImageInfo & ImageInfo()
Definition: menus.h:582
void Run() override
Definition: menus_browser.cpp:1935
CImageInfo m_ImageInfo
Definition: menus.h:572
CImageInfo & ImageInfoGrayscale()
Definition: menus.h:583
~CCommunityIconLoadJob()
Definition: menus_browser.cpp:1946
Definition: menus.h:379
const char * Clan() const
Definition: menus.h:422
const void * CommunityTooltipId() const
Definition: menus.h:434
bool m_CustomSkinColors
Definition: menus.h:388
int CustomSkinColorFeet() const
Definition: menus.h:430
char m_aSkin[MAX_SKIN_LENGTH]
Definition: menus.h:387
int m_CustomSkinColorBody
Definition: menus.h:389
bool m_IsPlayer
Definition: menus.h:384
bool m_IsAfk
Definition: menus.h:385
bool IsAfk() const
Definition: menus.h:426
bool operator<(const CFriendItem &Other) const
Definition: menus.h:437
bool CustomSkinColors() const
Definition: menus.h:428
const CServerInfo * m_pServerInfo
Definition: menus.h:382
const void * ListItemId() const
Definition: menus.h:432
int CustomSkinColorBody() const
Definition: menus.h:429
CFriendItem()
Definition: menus.h:393
CFriendItem(const CServerInfo::CClient &CurrentClient, const CServerInfo *pServerInfo)
Definition: menus.h:407
int FriendState() const
Definition: menus.h:424
int m_FriendState
Definition: menus.h:383
const char * Skin() const
Definition: menus.h:427
char m_aClan[MAX_CLAN_LENGTH]
Definition: menus.h:381
const CServerInfo * ServerInfo() const
Definition: menus.h:423
int m_CustomSkinColorFeet
Definition: menus.h:390
const char * Name() const
Definition: menus.h:421
char m_aName[MAX_NAME_LENGTH]
Definition: menus.h:380
bool IsPlayer() const
Definition: menus.h:425
const void * SkinTooltipId() const
Definition: menus.h:435
CFriendItem(const CFriendInfo *pFriendInfo)
Definition: menus.h:394
const void * RemoveButtonId() const
Definition: menus.h:433
Definition: menus.h:206
std::chrono::nanoseconds m_LastRender
Definition: menus.h:208
int m_Current
Definition: menus.h:209
int m_Total
Definition: menus.h:210
Definition: menus.h:634
char m_aFilename[IO_MAX_PATH_LENGTH]
Definition: menus.h:636
bool m_IsDirectory
Definition: menus.h:637
Definition: menus.h:640
void MapListPopulate()
Definition: menus_settings.cpp:3540
static int MapListFetchCallback(const CFsFileInfo *pInfo, int IsDir, int StorageType, void *pUser)
Definition: menus_settings.cpp:3550
CMenus * m_pMenus
Definition: menus.h:646
std::vector< CMapListItem > m_vMaps
Definition: menus.h:642
char m_aCurrentMapFolder[IO_MAX_PATH_LENGTH]
Definition: menus.h:643
int m_Selection
Definition: menus.h:647
Definition: menus.h:66
bool m_StartPaused
Definition: menus.h:370
void RefreshFilteredDemos()
Definition: menus_demo.cpp:1002
void RenderSettingsTee7(CUIRect MainView)
Definition: menus_settings7.cpp:36
char m_aCurrentDemoSelectionName[IO_MAX_PATH_LENGTH]
Definition: menus.h:358
char m_aMessageBody[512]
Definition: menus.h:216
bool PrintHighlighted(const char *pName, F &&PrintFn)
Definition: menus_browser.cpp:1812
@ POPUP_SAVE_SKIN
Definition: menus.h:841
@ DEMOPLAYER_NONE
Definition: menus.h:844
@ POPUP_DISCONNECTED
Definition: menus.h:832
@ POPUP_PASSWORD
Definition: menus.h:837
@ POPUP_RENDER_DONE
Definition: menus.h:836
@ DEMOPLAYER_SLICE_SAVE
Definition: menus.h:845
@ POPUP_QUIT
Definition: menus.h:838
@ POPUP_RESTART
Definition: menus.h:839
@ POPUP_FIRST_LAUNCH
Definition: menus.h:830
@ POPUP_LANGUAGE
Definition: menus.h:833
@ POPUP_WARNING
Definition: menus.h:840
@ POPUP_NONE
Definition: menus.h:827
@ POPUP_MESSAGE
Definition: menus.h:828
@ POPUP_RENDER_DEMO
Definition: menus.h:835
@ POPUP_POINTS
Definition: menus.h:831
@ POPUP_RENAME_DEMO
Definition: menus.h:834
@ POPUP_CONFIRM
Definition: menus.h:829
std::optional< std::chrono::nanoseconds > m_SkinListLastRefreshTime
Definition: menus.h:104
int DoButton_CheckBox_Tristate(const void *pId, const char *pText, TRISTATE Checked, const CUIRect *pRect)
Definition: menus.cpp:2436
float m_DownloadSpeed
Definition: menus.h:274
bool RenderServerControlServer(CUIRect MainView, bool UpdateScroll)
Definition: menus_ingame.cpp:837
CTeeRenderInfo GetTeeRenderInfo(vec2 Size, const char *pSkinName, bool CustomSkinColors, int CustomSkinColorBody, int CustomSkinColorFeet) const
Definition: menus_browser.cpp:1846
void RenderServerbrowserTypesFilter(CUIRect View)
Definition: menus_browser.cpp:1065
bool FetchHeader(CDemoItem &Item)
Definition: menus_demo.cpp:1051
void RenderNews(CUIRect MainView)
Definition: menus.cpp:860
static ColorRGBA ms_ColorTabbarActiveOutgame
Definition: menus.h:69
bool CheckHotKey(int Key) const
Definition: menus.cpp:2429
CLineInput m_PasswordInput
Definition: menus.h:277
std::vector< CButtonContainer > vButtonsContainersNamePlateKeyPresses
Definition: menus.h:631
void RenderInGameNetwork(CUIRect MainView)
Definition: menus_ingame.cpp:1141
virtual void OnReset() override
Definition: menus.cpp:2219
int m_GamePage
Definition: menus.h:180
void RenderTouchControlsEditor(CUIRect MainView)
Definition: menus_ingame.cpp:276
void PopupConfirmDiscardTouchControlsChanges()
Definition: menus_ingame.cpp:422
void DefaultButtonCallback()
Definition: menus.h:224
bool m_ServerBrowserShouldRevealSelection
Definition: menus.h:508
void RenderSettingsPlayer(CUIRect MainView)
Definition: menus_settings.cpp:271
static void ConfigSaveCallback(IConfigManager *pConfigManager, void *pUserData)
Definition: menus_settings.cpp:440
void UpdateColors()
Definition: menus.cpp:2348
void OnConsoleInit() override
Definition: menus.cpp:966
std::vector< CDemoItem > m_vDemos
Definition: menus.h:768
@ SETTINGS_GRAPHICS
Definition: menus.h:729
@ PAGE_FAVORITE_COMMUNITY_2
Definition: menus.h:712
@ PAGE_INTERNET
Definition: menus.h:708
@ PAGE_CALLVOTE
Definition: menus.h:707
@ SMALL_TAB_BROWSER_INFO
Definition: menus.h:756
@ PAGE_PLAYERS
Definition: menus.h:705
@ PAGE_FAVORITE_COMMUNITY_1
Definition: menus.h:711
@ SETTINGS_ASSETS
Definition: menus.h:732
@ SMALL_TAB_BROWSER_FILTER
Definition: menus.h:755
@ SMALL_TAB_QUIT
Definition: menus.h:750
@ SMALL_TAB_HOME
Definition: menus.h:749
@ SETTINGS_PLAYER
Definition: menus.h:725
@ PAGE_GAME
Definition: menus.h:704
@ BIT_TAB_FAVORITE_COMMUNITY_3
Definition: menus.h:742
@ SMALL_TAB_EDITOR
Definition: menus.h:752
@ SMALL_TAB_BROWSER_FRIENDS
Definition: menus.h:757
@ SMALL_TAB_LENGTH
Definition: menus.h:759
@ PAGE_SETTINGS
Definition: menus.h:717
@ BIG_TAB_INTERNET
Definition: menus.h:737
@ BIT_TAB_FAVORITE_COMMUNITY_2
Definition: menus.h:741
@ SMALL_TAB_SERVER
Definition: menus.h:754
@ SETTINGS_LANGUAGE
Definition: menus.h:723
@ PAGE_LAN
Definition: menus.h:709
@ SETTINGS_GENERAL
Definition: menus.h:724
@ PAGE_NETWORK
Definition: menus.h:718
@ BIG_TAB_FAVORITES
Definition: menus.h:739
@ SETTINGS_TEE
Definition: menus.h:726
@ PAGE_NEWS
Definition: menus.h:703
@ PAGE_SERVER_INFO
Definition: menus.h:706
@ BIT_TAB_FAVORITE_COMMUNITY_4
Definition: menus.h:743
@ PAGE_LENGTH
Definition: menus.h:721
@ SETTINGS_LENGTH
Definition: menus.h:734
@ SMALL_TAB_DEMOBUTTON
Definition: menus.h:753
@ PAGE_FAVORITES
Definition: menus.h:710
@ PAGE_DEMOS
Definition: menus.h:716
@ PAGE_FAVORITE_COMMUNITY_3
Definition: menus.h:713
@ SMALL_TAB_SETTINGS
Definition: menus.h:751
@ SETTINGS_SOUND
Definition: menus.h:730
@ SETTINGS_DDNET
Definition: menus.h:731
@ BIT_TAB_FAVORITE_COMMUNITY_1
Definition: menus.h:740
@ BIG_TAB_LAN
Definition: menus.h:738
@ BIG_TAB_NEWS
Definition: menus.h:736
@ SETTINGS_CONTROLS
Definition: menus.h:728
@ PAGE_FAVORITE_COMMUNITY_5
Definition: menus.h:715
@ BIT_TAB_FAVORITE_COMMUNITY_5
Definition: menus.h:744
@ PAGE_GHOST
Definition: menus.h:719
@ SETTINGS_APPEARANCE
Definition: menus.h:727
@ BIG_TAB_DEMOS
Definition: menus.h:745
@ PAGE_FAVORITE_COMMUNITY_4
Definition: menus.h:714
@ BIG_TAB_LENGTH
Definition: menus.h:747
int DoButton_FontIcon(CButtonContainer *pButtonContainer, const char *pText, int Checked, const CUIRect *pRect, const unsigned Flags, int Corners=IGraphics::CORNER_ALL, bool Enabled=true)
Definition: menus_demo.cpp:31
void RenderPopupLoading(CUIRect Screen)
Definition: menus.cpp:1977
static void ConchainUiPageUpdate(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData)
Definition: menus_browser.cpp:1884
void RenderServerControl(CUIRect MainView)
Definition: menus_ingame.cpp:937
bool DoLine_RadioMenu(CUIRect &View, const char *pLabel, std::vector< CButtonContainer > &vButtonContainers, const std::vector< const char * > &vLabels, const std::vector< int > &vValues, int &Value)
Definition: menus.cpp:375
static ColorRGBA ms_ColorTabbarHover
Definition: menus.h:76
void RenderLanguageSettings(CUIRect MainView)
Definition: menus_settings.cpp:1862
bool m_CustomSkinMenu
Definition: menus.h:264
void DeleteGhostItem(int Index)
Definition: menus_ingame.cpp:1301
const SCommunityIcon * FindCommunityIcon(const char *pCommunityId)
Definition: menus_browser.cpp:1968
ColorHSLA DoLine_ColorPicker(CButtonContainer *pResetId, float LineSize, float LabelSize, float BottomMargin, CUIRect *pMainRect, const char *pText, unsigned int *pColorValue, ColorRGBA DefaultColor, bool CheckBoxSpacing=true, int *pCheckBoxValue=nullptr, bool Alpha=false)
Definition: menus.cpp:408
void RenderDemoBrowserButtons(CUIRect ButtonsView, bool WasListboxItemActivated)
Definition: menus_demo.cpp:1406
static void Con_RemFavoriteSkin(IConsole::IResult *pResult, void *pUserData)
Definition: menus_settings.cpp:429
void RefreshBrowserTab(bool Force)
Definition: menus.cpp:2521
int DoButton_MenuTab(CButtonContainer *pButtonContainer, const char *pText, int Checked, const CUIRect *pRect, int Corners, SUIAnimator *pAnimator=nullptr, const ColorRGBA *pDefaultColor=nullptr, const ColorRGBA *pActiveColor=nullptr, const ColorRGBA *pHoverColor=nullptr, float EdgeRounding=10.0f, const SCommunityIcon *pCommunityIcon=nullptr)
Definition: menus.cpp:158
static ColorRGBA ms_ColorTabbarInactiveOutgame
Definition: menus.h:68
static bool DemoFilterChat(const void *pData, int Size, void *pUser)
Definition: menus_demo.cpp:58
void RenderServerbrowserServerList(CUIRect View, bool &WasListboxItemActivated)
Definition: menus_browser.cpp:105
static bool CompareFilenameAscending(const CMapListItem Lhs, const CMapListItem Rhs)
Definition: menus.h:650
static void ConchainFavoritesUpdate(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData)
Definition: menus_browser.cpp:1866
bool m_SkinListScrollToSelected
Definition: menus.h:105
void RenderDemoBrowser(CUIRect MainView)
Definition: menus_demo.cpp:1079
static int EntitiesScan(const char *pName, int IsDir, int DirType, void *pUser)
Definition: menus_settings_assets.cpp:71
const CSkins7::CSkin * m_pSelectedSkin
Definition: menus.h:266
int DoButton_Favorite(const void *pButtonId, const void *pParentId, bool Checked, const CUIRect *pRect)
Definition: menus.cpp:260
bool m_DummyNamePlatePreview
Definition: menus.h:185
static ColorRGBA ms_ColorTabbarActiveIngame
Definition: menus.h:72
std::vector< CFriendItem > m_avFriends[NUM_FRIEND_TYPES]
Definition: menus.h:451
FPopupButtonCallback m_pfnCallback
Definition: menus.h:240
const char * GetCurrentDemoFolder() const
Definition: menus.h:775
std::unordered_set< std::string > m_SkinFavorites
Definition: menus.h:604
bool m_CreateDefaultFavoriteCommunities
Definition: menus.h:188
std::vector< SCustomExtras > m_vExtrasList
Definition: menus.h:157
void UpdateMusicState()
Definition: menus.cpp:992
void PopupConfirmRemoveFriend()
Definition: menus_browser.cpp:1669
int m_DirectionQuadContainerIndex
Definition: menus.h:109
CLineInputBuffered< IO_MAX_PATH_LENGTH > m_DemoRenderInput
Definition: menus.h:363
bool RenderServerControlKick(CUIRect MainView, bool FilterSpectators, bool UpdateScroll)
Definition: menus_ingame.cpp:882
void RenderServerbrowserFilters(CUIRect View)
Definition: menus_browser.cpp:668
CLineInputBuffered< IO_MAX_PATH_LENGTH > m_DemoRenameInput
Definition: menus.h:359
std::vector< CButtonContainer > vButtonsContainersNamePlateShow
Definition: menus.h:630
void RenderServerbrowserDDNetFilter(CUIRect View, IFilterList &Filter, float ItemHeight, int MaxItems, int ItemsPerRow, CScrollRegion &ScrollRegion, std::vector< unsigned char > &vItemIds, bool UpdateCommunityCacheOnChange, const std::function< const char *(int ItemIndex)> &GetItemName, const std::function< void(int ItemIndex, CUIRect Item, const void *pItemId, bool Active)> &RenderItem)
Definition: menus_browser.cpp:860
std::vector< CDemoItem * > m_vpFilteredDemos
Definition: menus.h:769
virtual int Sizeof() const override
Definition: menus.h:676
void OnConfigSave(IConfigManager *pConfigManager)
Definition: menus_settings.cpp:446
int m_CallvoteSelectedPlayer
Definition: menus.h:281
void RenderServerbrowserCountriesFilter(CUIRect View)
Definition: menus_browser.cpp:1040
std::chrono::nanoseconds m_PopupWarningLastTime
Definition: menus.h:820
virtual void OnStateChange(int NewState, int OldState) override
Definition: menus.cpp:2252
void ClearCustomItems(int CurTab)
Definition: menus_settings_assets.cpp:259
std::chrono::nanoseconds m_GhostPopulateStartTime
Definition: menus.h:808
bool m_DemolistMultipleStorages
Definition: menus.h:368
int DoButton_Toggle(const void *pId, int Checked, const CUIRect *pRect, bool Active, const unsigned Flags=BUTTONFLAG_LEFT)
Definition: menus.cpp:101
CLineInputBuffered< IO_MAX_PATH_LENGTH > m_DemoSearchInput
Definition: menus.h:361
bool m_DemolistSelectedReveal
Definition: menus.h:366
float RenderSettingsControlsJoystick(CUIRect View)
Definition: menus_settings.cpp:963
int m_NextPopup
Definition: menus.h:239
bool m_JoinTutorial
Definition: menus.h:187
struct CMenus::@151 m_aPopupButtons[NUM_BUTTONS]
CUIElement m_ConnectButton
Definition: menus.h:220
std::deque< std::shared_ptr< CCommunityIconDownloadJob > > m_CommunityIconDownloadJobs
Definition: menus.h:594
bool IsInit()
Definition: menus.h:681
virtual bool OnInput(const IInput::CEvent &Event) override
Definition: menus.cpp:2241
SUIAnimator m_aAnimatorsSmallPage[SMALL_TAB_LENGTH]
Definition: menus.h:763
void ResetServerbrowserFilters()
Definition: menus_browser.cpp:825
float m_LastPauseChange
Definition: menus.h:470
int m_TeePartSelected
Definition: menus.h:265
char m_aLabel[64]
Definition: menus.h:238
void RenderSkinPartSelection7(CUIRect MainView)
Definition: menus_settings7.cpp:383
void PopupConfirmImportTouchControlsClipboard()
Definition: menus_ingame.cpp:459
void RenderGame(CUIRect MainView)
Definition: menus_ingame.cpp:42
virtual void OnRender() override
Definition: menus.cpp:2298
virtual void OnShutdown() override
Definition: menus.cpp:2223
const CFriendItem * m_pRemoveFriend
Definition: menus.h:452
bool RenderHslaScrollbars(CUIRect *pRect, unsigned int *pColor, bool Alpha, float DarkestLight)
Definition: menus_settings.cpp:2081
bool m_NeedSendinfo
Definition: menus.h:259
int m_MenuPage
Definition: menus.h:179
void RenderSkinSelection7(CUIRect MainView)
Definition: menus_settings7.cpp:306
bool m_Dummy
Definition: menus.h:773
static void Con_AddFavoriteSkin(IConsole::IResult *pResult, void *pUserData)
Definition: menus_settings.cpp:415
void RenderSettings(CUIRect MainView)
Definition: menus_settings.cpp:1953
int m_DownloadLastCheckSize
Definition: menus.h:273
std::vector< SCommunityIcon > m_vCommunityIcons
Definition: menus.h:592
void UpdateCommunityIcons()
Definition: menus_browser.cpp:2043
void(CMenus::* FPopupButtonCallback)()
Definition: menus.h:223
CUIElement m_RefreshButton
Definition: menus.h:219
static int DemolistFetchCallback(const CFsFileInfo *pInfo, int IsDir, int StorageType, void *pUser)
Definition: menus_demo.cpp:905
void RenderSettingsAppearance(CUIRect MainView)
Definition: menus_settings.cpp:2331
void RenderStartMenu(CUIRect MainView)
Definition: menus_start.cpp:26
void PopupWarning(const char *pTopic, const char *pBody, const char *pButton, std::chrono::nanoseconds Duration)
Definition: menus.cpp:1031
static int MenuImageScan(const char *pName, int IsDir, int DirType, void *pUser)
Definition: menus.cpp:2452
void RenderPopupConnecting(CUIRect Screen)
Definition: menus.cpp:1912
bool m_ControlPageOpening
Definition: menus.h:284
void SetNeedSendInfo()
Definition: menus_settings.cpp:263
void RenderDemoBrowserDetails(CUIRect DetailsView)
Definition: menus_demo.cpp:1282
static ColorRGBA ms_ColorTabbarHoverIngame
Definition: menus.h:73
void RenderPopupFullscreen(CUIRect Screen)
Definition: menus.cpp:1264
void RenderGhost(CUIRect MainView)
Definition: menus_ingame.cpp:1324
CLineInputBuffered< IO_MAX_PATH_LENGTH > m_DemoSliceInput
Definition: menus.h:360
int DoButton_CheckBoxAutoVMarginAndSet(const void *pId, const char *pText, int *pValue, CUIRect *pRect, float VMargin)
Definition: menus.cpp:477
void RenderServerbrowserInfoScoreboard(CUIRect View, const CServerInfo *pSelectedServer)
Definition: menus_browser.cpp:1240
std::chrono::nanoseconds m_DemoPopulateStartTime
Definition: menus.h:372
bool RenderLanguageSelection(CUIRect MainView)
Definition: menus_settings.cpp:1904
void ResetSettingsControls()
Definition: menus_settings.cpp:1354
static CUi::EPopupMenuFunctionResult PopupCountrySelection(void *pContext, CUIRect View, bool Active)
Definition: menus_browser.cpp:1089
char m_aMessageButton[512]
Definition: menus.h:217
void SetMenuPage(int NewPage)
Definition: menus.cpp:2501
static int GameScan(const char *pName, int IsDir, int DirType, void *pUser)
Definition: menus_settings_assets.cpp:172
int m_CallvoteSelectedOption
Definition: menus.h:280
bool m_DemoBrowserListInitialized
Definition: menus.h:478
int m_DemoPlayerState
Definition: menus.h:823
static ColorRGBA ms_ColorTabbarActive
Definition: menus.h:75
void RenderDemoBrowserList(CUIRect ListView, bool &WasListboxItemActivated)
Definition: menus_demo.cpp:1096
void DoJoystickAxisPicker(CUIRect View)
Definition: menus_settings.cpp:1072
int m_DemolistSelectedIndex
Definition: menus.h:365
void RenderSettingsTeeCustom7(CUIRect MainView)
Definition: menus_settings7.cpp:241
void PopupConfirmDeleteFolder()
Definition: menus_demo.cpp:1634
void PopupConfirmDeleteDemo()
Definition: menus_demo.cpp:1617
void KillServer()
Definition: menus_start.cpp:307
void DoJoystickBar(const CUIRect *pRect, float Current, float Tolerance, bool Active)
Definition: menus_settings.cpp:1142
std::vector< CButtonContainer > vButtonsContainersJoystickAbsolute
Definition: menus.h:629
void RenderLoading(const char *pCaption, const char *pContent, int IncreaseCounter)
Definition: menus.cpp:791
CServerProcess m_ServerProcess
Definition: menus.h:862
int m_DemolistStorageType
Definition: menus.h:367
void Connect(const char *pAddress)
Definition: menus_browser.cpp:652
float m_LastSpeedChange
Definition: menus.h:471
std::vector< SCustomParticle > m_vParticlesList
Definition: menus.h:155
void RenderDemoPlayerSliceSavePopup(CUIRect MainView)
Definition: menus_demo.cpp:766
void RenderServerbrowserTabBar(CUIRect TabBar)
Definition: menus_browser.cpp:1685
void GhostlistPopulate()
Definition: menus_ingame.cpp:1237
int DoKeyReader(const void *pId, const CUIRect *pRect, int Key, int ModifierCombination, int *pNewModifierCombination)
Definition: menus.cpp:502
std::vector< SCustomEmoticon > m_vEmoticonList
Definition: menus.h:154
void RenderServerbrowser(CUIRect MainView)
Definition: menus_browser.cpp:1749
bool m_NeedSendDummyinfo
Definition: menus.h:260
static void ConchainAssetExtras(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData)
Definition: menus_settings_assets.cpp:721
std::optional< std::chrono::nanoseconds > m_SkinList7LastRefreshTime
Definition: menus.h:106
static void ConchainAssetGame(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData)
Definition: menus_settings_assets.cpp:661
bool m_NeedRestartUpdate
Definition: menus.h:258
static ColorRGBA ms_ColorTabbarInactive
Definition: menus.h:74
void DemoSeekTick(IDemoPlayer::ETickOffset TickOffset)
Definition: menus_demo.cpp:98
void DoSettingsControlsButtons(int Start, int Stop, CUIRect View)
Definition: menus_settings.cpp:935
static ColorRGBA ms_ColorTabbarInactiveIngame
Definition: menus.h:71
static void ConchainFriendlistUpdate(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData)
Definition: menus_browser.cpp:1855
CLineInputBuffered< protocol7::MAX_SKIN_ARRAY_SIZE, protocol7::MAX_SKIN_LENGTH > m_SkinNameInput
Definition: menus.h:267
bool m_SkinPartListNeedsUpdate
Definition: menus.h:268
virtual void OnInit() override
Definition: menus.cpp:892
void RenderServerbrowserFriends(CUIRect View)
Definition: menus_browser.cpp:1372
void RenderSettingsControls(CUIRect MainView)
Definition: menus_settings.cpp:1160
static int EmoticonsScan(const char *pName, int IsDir, int DirType, void *pUser)
Definition: menus_settings_assets.cpp:180
bool m_NeedRestartGraphics
Definition: menus.h:256
int DoButton_CheckBox_Number(const void *pId, const char *pText, int Checked, const CUIRect *pRect)
Definition: menus.cpp:495
void RenderSettingsTee(CUIRect MainView)
Definition: menus_settings.cpp:456
void RenderSettingsCustom(CUIRect MainView)
Definition: menus_settings_assets.cpp:349
bool m_MenuActive
Definition: menus.h:183
static void ConchainCommunitiesUpdate(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData)
Definition: menus_browser.cpp:1873
void UpdateCommunityCache(bool Force)
Definition: menus_browser.cpp:1901
void RenderServerInfoMotd(CUIRect Motd)
Definition: menus_ingame.cpp:794
void FinishLoading()
Definition: menus.cpp:854
char m_aMessageTopic[512]
Definition: menus.h:215
static int GhostlistFetchCallback(const CFsFileInfo *pInfo, int IsDir, int StorageType, void *pUser)
Definition: menus_ingame.cpp:1207
static int ExtrasScan(const char *pName, int IsDir, int DirType, void *pUser)
Definition: menus_settings_assets.cpp:204
std::vector< SCustomGame > m_vGameList
Definition: menus.h:153
void PopupConfirmDisconnectDummy()
Definition: menus_ingame.cpp:416
vec2 m_DemoControlsPositionOffset
Definition: menus.h:469
void RenderCommunityIcon(const SCommunityIcon *pIcon, CUIRect Rect, bool Active)
Definition: menus_browser.cpp:2031
bool IsServerRunning() const
Definition: menus_start.cpp:321
CLineInputBuffered< 64 > m_FilterInput
Definition: menus.h:283
bool m_ShowStart
Definition: menus.h:182
void RenderSettingsGraphics(CUIRect MainView)
Definition: menus_settings.cpp:1371
void RenderThemeSelection(CUIRect MainView)
Definition: menus.cpp:2114
std::vector< CMenuImage > m_vMenuImages
Definition: menus.h:200
CLineInputBuffered< VOTE_REASON_LENGTH > m_CallvoteReasonInput
Definition: menus.h:282
bool m_ForceRefreshLanPage
Definition: menus.h:189
void RenderServerInfo(CUIRect MainView)
Definition: menus_ingame.cpp:607
bool m_NeedRestartSound
Definition: menus.h:257
static ColorRGBA ms_ColorTabbarHoverOutgame
Definition: menus.h:70
static void ConchainAssetParticles(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData)
Definition: menus_settings_assets.cpp:676
void RenderPlayers(CUIRect MainView)
Definition: menus_ingame.cpp:473
std::deque< std::shared_ptr< CCommunityIconLoadJob > > m_CommunityIconLoadJobs
Definition: menus.h:593
void PopupConfirmDisconnect()
Definition: menus_ingame.cpp:411
int m_Speed
Definition: menus.h:369
static float ms_ButtonHeight
Definition: menus.h:251
std::vector< SCustomEntities > m_vEntitiesList
Definition: menus.h:152
int DoButton_CheckBox_Common(const void *pId, const char *pText, const char *pBoxText, const CUIRect *pRect, const unsigned Flags)
Definition: menus.cpp:278
void RenderDemoPlayer(CUIRect MainView)
Definition: menus_demo.cpp:106
SUIAnimator m_aAnimatorsBigPage[BIG_TAB_LENGTH]
Definition: menus.h:762
SHA256_DIGEST m_CommunityIconsInfoSha256
Definition: menus.h:595
static int HudScan(const char *pName, int IsDir, int DirType, void *pUser)
Definition: menus_settings_assets.cpp:196
void RenderSettingsSound(CUIRect MainView)
Definition: menus_settings.cpp:1771
static CMenusKeyBinder m_Binder
Definition: menus.h:673
@ SORT_DEMONAME
Definition: menus.h:289
@ SORT_DATE
Definition: menus.h:291
@ SORT_LENGTH
Definition: menus.h:290
CMenus()
Definition: menus.cpp:58
void SetActive(bool Active)
Definition: menus.cpp:2186
void PopupConfirmSwitchServer()
Definition: menus_browser.cpp:663
void DemolistOnUpdate(bool Reset)
Definition: menus_demo.cpp:1014
void Render()
Definition: menus.cpp:1058
int DoButton_CheckBox(const void *pId, const char *pText, int Checked, const CUIRect *pRect)
Definition: menus.cpp:490
@ FRIEND_OFF
Definition: menus.h:448
@ FRIEND_PLAYER_ON
Definition: menus.h:446
@ NUM_FRIEND_TYPES
Definition: menus.h:449
@ FRIEND_CLAN_ON
Definition: menus.h:447
void PopupConfirmDeleteSkin7()
Definition: menus_settings7.cpp:229
bool LoadCommunityIconFile(const char *pPath, int DirType, CImageInfo &Info, CImageInfo &InfoGrayscale, SHA256_DIGEST &Sha256)
Definition: menus_browser.cpp:1976
static void ConchainUpdateMusicState(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData)
Definition: menus.cpp:984
void HandleDemoSeeking(float PositionToSeek, float TimeToSeek)
Definition: menus_demo.cpp:76
static void ConchainBackgroundEntities(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData)
Definition: menus.cpp:973
char m_aCurrentDemoFolder[IO_MAX_PATH_LENGTH]
Definition: menus.h:357
std::vector< SCustomHud > m_vHudList
Definition: menus.h:156
void RenderSettingsDDNet(CUIRect MainView)
Definition: menus_settings.cpp:3175
@ BUTTON_CANCEL
Definition: menus.h:231
@ NUM_BUTTONS
Definition: menus.h:232
@ BUTTON_CONFIRM
Definition: menus.h:230
int DoButton_GridHeader(const void *pId, const char *pText, int Checked, const CUIRect *pRect)
Definition: menus.cpp:247
void PopupMessage(const char *pTitle, const char *pMessage, const char *pButtonLabel, int NextPopup=POPUP_NONE, FPopupButtonCallback pfnButtonCallback=&CMenus::DefaultButtonCallback)
Definition: menus.cpp:1001
char m_aPopupTitle[128]
Definition: menus.h:234
bool CanDisplayWarning() const
Definition: menus.cpp:1053
void RenderSettingsDummyPlayer(CUIRect MainView)
int m_Popup
Definition: menus.h:181
IGraphics::CTextureHandle m_TextureBlob
Definition: menus.h:666
void RenderMenubar(CUIRect Box, IClient::EClientState ClientState)
Definition: menus.cpp:554
bool m_IsInit
Definition: menus.h:159
void PopupConfirmDemoReplaceVideo()
Definition: menus.cpp:2095
static float ms_ListheaderHeight
Definition: menus.h:252
static CUi::EPopupMenuFunctionResult PopupMapPicker(void *pContext, CUIRect View, bool Active)
Definition: menus_settings.cpp:3463
void DemolistPopulate()
Definition: menus_demo.cpp:942
static void ConchainAssetsEntities(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData)
Definition: menus_settings_assets.cpp:646
@ GHOST_SORT_NONE
Definition: menus.h:800
@ GHOST_SORT_TIME
Definition: menus.h:802
@ GHOST_SORT_DATE
Definition: menus.h:803
@ GHOST_SORT_NAME
Definition: menus.h:801
int DoButton_Menu(CButtonContainer *pButtonContainer, const char *pText, int Checked, const CUIRect *pRect, const unsigned Flags=BUTTONFLAG_LEFT, const char *pImageName=nullptr, int Corners=IGraphics::CORNER_ALL, float Rounding=5.0f, float FontFactor=0.0f, ColorRGBA Color=ColorRGBA(1.0f, 1.0f, 1.0f, 0.5f))
Definition: menus.cpp:121
virtual void OnWindowResize() override
Definition: menus.cpp:2293
static int CommunityIconScan(const char *pName, int IsDir, int DirType, void *pUser)
Definition: menus_browser.cpp:1952
virtual bool OnCursorMove(float x, float y, IInput::ECursorType CursorType) override
Definition: menus.cpp:2230
int m_SelectedIndex
Definition: menus.h:507
static void ConchainAssetHud(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData)
Definition: menus_settings_assets.cpp:706
int m_SettingPlayerPage
Definition: menus.h:261
void PopupConfirmResetTouchControls()
Definition: menus_ingame.cpp:436
SUIAnimator m_aAnimatorsSettingsTab[SETTINGS_LENGTH]
Definition: menus.h:764
void RenderServerbrowserStatusBox(CUIRect StatusBox, bool WasListboxItemActivated)
Definition: menus_browser.cpp:477
const CMenuImage * FindMenuImage(const char *pName)
Definition: menus.cpp:2493
void RenderServerbrowserCommunitiesFilter(CUIRect View)
Definition: menus_browser.cpp:978
void DoLaserPreview(const CUIRect *pRect, ColorHSLA OutlineColor, ColorHSLA InnerColor, const int LaserType)
Definition: menus.cpp:304
void SortGhostlist()
Definition: menus_ingame.cpp:1308
bool IsActive() const
Definition: menus.h:683
std::vector< CUIElement * > m_avpServerBrowserUiElements[IServerBrowser::NUM_TYPES]
Definition: menus.h:509
char m_aPopupMessage[IO_MAX_PATH_LENGTH+256]
Definition: menus.h:235
void RenderBackground()
Definition: menus.cpp:2374
STextContainerIndex m_MotdTextContainerIndex
Definition: menus.h:490
CGhostItem * GetOwnGhost()
Definition: menus_ingame.cpp:1259
static float ms_ListitemAdditionalHeight
Definition: menus.h:253
void RenderIngameHint()
Definition: menus_ingame.cpp:1588
std::optional< std::chrono::nanoseconds > m_SkinPartsList7LastRefreshTime
Definition: menus.h:107
void RenderServerbrowserInfo(CUIRect View)
Definition: menus_browser.cpp:1137
static ColorRGBA ms_GuiColor
Definition: menus.h:67
void LoadCommunityIconFinish(const char *pCommunityId, CImageInfo &Info, CImageInfo &InfoGrayscale, const SHA256_DIGEST &Sha256)
Definition: menus_browser.cpp:2004
ColorHSLA DoButton_ColorPicker(const CUIRect *pRect, unsigned int *pHslaColor, bool Alpha)
Definition: menus.cpp:446
static void LoadEntities(struct SCustomEntities *pEntitiesItem, void *pUser)
Definition: menus_settings_assets.cpp:38
void RenderSettingsGeneral(CUIRect MainView)
Definition: menus_settings.cpp:78
void UpdateOwnGhost(CGhostItem Item)
Definition: menus_ingame.cpp:1267
static int ParticlesScan(const char *pName, int IsDir, int DirType, void *pUser)
Definition: menus_settings_assets.cpp:188
char m_aNextServer[256]
Definition: menus.h:191
void RenderServerbrowserToolBox(CUIRect ToolBox)
Definition: menus_browser.cpp:1728
std::vector< CGhostItem > m_vGhosts
Definition: menus.h:806
CLoadingState m_LoadingState
Definition: menus.h:212
int64_t m_DownloadLastCheckTime
Definition: menus.h:272
void PopupConfirm(const char *pTitle, const char *pMessage, const char *pConfirmButtonLabel, const char *pCancelButtonLabel, FPopupButtonCallback pfnConfirmButtonCallback=&CMenus::DefaultButtonCallback, int ConfirmNextPopup=POPUP_NONE, FPopupButtonCallback pfnCancelButtonCallback=&CMenus::DefaultButtonCallback, int CancelNextPopup=POPUP_NONE)
Definition: menus.cpp:1014
void FetchAllHeaders()
Definition: menus_demo.cpp:1070
void FriendlistOnUpdate()
Definition: menus_browser.cpp:1664
std::chrono::nanoseconds m_PopupWarningDuration
Definition: menus.h:821
static void ConchainAssetEmoticons(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData)
Definition: menus_settings_assets.cpp:691
void RunServer(const char **ppArguments=nullptr, const size_t NumArguments=0)
Definition: menus_start.cpp:280
Definition: ui_scrollregion.h:90
Definition: serverbrowser.h:65
char m_aSkin[MAX_SKIN_LENGTH]
Definition: serverbrowser.h:75
char m_aName[MAX_NAME_LENGTH]
Definition: serverbrowser.h:67
char m_aClan[MAX_CLAN_LENGTH]
Definition: serverbrowser.h:68
Definition: serverbrowser.h:23
@ MAX_COMMUNITY_ID_LENGTH
Definition: serverbrowser.h:59
Definition: skins7.h:52
Definition: render.h:69
Definition: ui.h:149
Definition: ui_rect.h:11
EPopupMenuFunctionResult
Definition: ui.h:300
Definition: color.h:173
Definition: color.h:210
EClientState
Definition: client.h:49
Definition: config.h:9
Definition: console.h:47
void(* FCommandCallback)(IResult *pResult, void *pUserData)
Definition: console.h:94
ETickOffset
Definition: demo.h:78
Definition: serverbrowser.h:241
@ FRIEND_CLAN
Definition: friends.h:25
@ FRIEND_PLAYER
Definition: friends.h:26
Definition: graphics.h:201
@ CORNER_ALL
Definition: graphics.h:416
Definition: input.h:22
ECursorType
Definition: input.h:37
Definition: jobs.h:20
@ NUM_TYPES
Definition: serverbrowser.h:295
CConfig g_Config
Definition: config.cpp:12
@ MAX_TIMELINE_MARKERS
Definition: demo.h:15
@ MAX_CLAN_LENGTH
Definition: protocol.h:99
@ MAX_SKIN_LENGTH
Definition: protocol.h:100
@ MAX_NAME_LENGTH
Definition: protocol.h:98
constexpr PROCESS INVALID_PROCESS
Definition: system.h:2642
pid_t PROCESS
Definition: system.h:2636
int str_comp_filenames(const char *a, const char *b)
Definition: system.cpp:2994
int str_comp_nocase(const char *a, const char *b)
Definition: system.cpp:2966
int str_comp(const char *a, const char *b)
Definition: system.cpp:2984
int str_copy(char *dst, const char *src, int dst_size)
Definition: system.cpp:2771
@ MAP_IMAGE_MOD_TYPE_COUNT
Definition: mapimages.h:30
static constexpr const char * DEFAULT_SAVED_RCON_USER
Definition: menus.h:34
@ SKINPART_BODY
Definition: protocol7.h:30
Definition: demo.h:31
unsigned char m_aLength[sizeof(int32_t)]
Definition: demo.h:39
unsigned char m_aMapSize[sizeof(int32_t)]
Definition: demo.h:36
Definition: friends.h:11
char m_aClan[MAX_CLAN_LENGTH]
Definition: friends.h:13
char m_aName[MAX_NAME_LENGTH]
Definition: friends.h:12
Definition: types.h:23
Definition: demo.h:52
Definition: menus.h:295
char m_aFilename[IO_MAX_PATH_LENGTH]
Definition: menus.h:296
CDemoHeader m_Info
Definition: menus.h:306
unsigned MapSize() const
Definition: menus.h:320
int64_t m_Size
Definition: menus.h:302
int NumMarkers() const
Definition: menus.h:310
int m_StorageType
Definition: menus.h:300
bool m_InfosLoaded
Definition: menus.h:304
bool operator<(const CDemoItem &Other) const
Definition: menus.h:325
char m_aName[IO_MAX_PATH_LENGTH]
Definition: menus.h:297
bool m_IsLink
Definition: menus.h:299
int Length() const
Definition: menus.h:315
CTimelineMarkers m_TimelineMarkers
Definition: menus.h:307
bool m_Valid
Definition: menus.h:305
time_t m_Date
Definition: menus.h:301
bool m_IsDir
Definition: menus.h:298
CMapInfo m_MapInfo
Definition: menus.h:308
Definition: menus.h:779
CGhostItem()
Definition: menus.h:789
bool HasFile() const
Definition: menus.h:795
bool operator<(const CGhostItem &Other) const
Definition: menus.h:792
bool m_Own
Definition: menus.h:786
time_t m_Date
Definition: menus.h:787
int m_Time
Definition: menus.h:784
char m_aPlayer[MAX_NAME_LENGTH]
Definition: menus.h:781
bool m_Failed
Definition: menus.h:783
int m_Slot
Definition: menus.h:785
bool Active() const
Definition: menus.h:794
char m_aFilename[IO_MAX_PATH_LENGTH]
Definition: menus.h:780
Definition: menus.h:195
IGraphics::CTextureHandle m_OrgTexture
Definition: menus.h:197
char m_aName[64]
Definition: menus.h:196
IGraphics::CTextureHandle m_GreyTexture
Definition: menus.h:198
Definition: menus.h:136
IGraphics::CTextureHandle m_Texture
Definition: menus.h:126
Definition: menus.h:123
SEntitiesImage m_aImages[MAP_IMAGE_MOD_TYPE_COUNT]
Definition: menus.h:128
Definition: menus.h:148
Definition: menus.h:132
Definition: menus.h:144
Definition: menus.h:114
bool operator<(const SCustomItem &Other) const
Definition: menus.h:119
char m_aName[50]
Definition: menus.h:117
IGraphics::CTextureHandle m_RenderTexture
Definition: menus.h:115
Definition: menus.h:140
bool m_New
Definition: menus.h:530
int m_Selection
Definition: menus.h:529
CMenus * m_pMenus
Definition: menus.h:528
Definition: menus.h:37
PROCESS m_Process
Definition: menus.h:39
Definition: demo.h:46
unsigned char m_aNumTimelineMarkers[sizeof(int32_t)]
Definition: demo.h:47
Definition: menus.h:58
SHA256_DIGEST m_Sha256
Definition: menus.h:60
char m_aCommunityId[CServerInfo::MAX_COMMUNITY_ID_LENGTH]
Definition: menus.h:59
IGraphics::CTextureHandle m_OrgTexture
Definition: menus.h:61
IGraphics::CTextureHandle m_GreyTexture
Definition: menus.h:62
Definition: hash.h:15
Definition: textrender.h:295
Definition: ui.h:39
unsigned bytes_be_to_uint(const unsigned char *bytes)
Definition: system.cpp:4136
TRISTATE
Definition: types.h:7
@ IO_MAX_PATH_LENGTH
Definition: types.h:43
@ BUTTONFLAG_LEFT
Definition: ui.h:222
vector2_base< float > vec2
Definition: vmath.h:158