DDNet documentation
Loading...
Searching...
No Matches
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/bytes.h>
7#include <base/str.h>
8#include <base/types.h>
9#include <base/vmath.h>
10
11#include <engine/console.h>
12#include <engine/demo.h>
13#include <engine/friends.h>
16#include <engine/textrender.h>
17
26#include <game/client/ui.h>
27#include <game/voting.h>
28
29#include <chrono>
30#include <optional>
31#include <vector>
32
33class CMenus : public CComponent
34{
45
46public:
47 int DoButton_Toggle(const void *pId, int Checked, const CUIRect *pRect, bool Active, unsigned Flags = BUTTONFLAG_LEFT);
48 int DoButton_Menu(CButtonContainer *pButtonContainer, const char *pText, int Checked, const CUIRect *pRect, 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));
49 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 CCommunityIcon *pCommunityIcon = nullptr);
50
51 int DoButton_CheckBox_Common(const void *pId, const char *pText, const char *pBoxText, const CUIRect *pRect, unsigned Flags);
52 int DoButton_CheckBox(const void *pId, const char *pText, int Checked, const CUIRect *pRect);
53 int DoButton_CheckBoxAutoVMarginAndSet(const void *pId, const char *pText, int *pValue, CUIRect *pRect, float VMargin);
54 int DoButton_CheckBox_Number(const void *pId, const char *pText, int Checked, const CUIRect *pRect);
55
56 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);
57
58private:
60 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);
61 ColorHSLA DoButton_ColorPicker(const CUIRect *pRect, unsigned int *pHslaColor, bool Alpha);
62
63 void DoLaserPreview(const CUIRect *pRect, ColorHSLA OutlineColor, ColorHSLA InnerColor, int LaserType);
64 int DoButton_GridHeader(const void *pId, const char *pText, int Checked, const CUIRect *pRect, int Align = TEXTALIGN_ML);
65 int DoButton_Favorite(const void *pButtonId, const void *pParentId, bool Checked, const CUIRect *pRect);
66
68 std::optional<std::chrono::nanoseconds> m_SkinList7LastRefreshTime;
69 std::optional<std::chrono::nanoseconds> m_SkinPartsList7LastRefreshTime;
70
72
73 // menus_settings_assets.cpp
74public:
76 {
78
79 char m_aName[50];
80
81 bool operator<(const SCustomItem &Other) const { return str_comp(m_aName, Other.m_aName) < 0; }
82 };
83
92
93 struct SCustomGame : public SCustomItem
94 {
95 };
96
98 {
99 };
100
102 {
103 };
104
105 struct SCustomHud : public SCustomItem
106 {
107 };
108
110 {
111 };
112
113protected:
114 std::vector<SCustomEntities> m_vEntitiesList;
115 std::vector<SCustomGame> m_vGameList;
116 std::vector<SCustomEmoticon> m_vEmoticonList;
117 std::vector<SCustomParticle> m_vParticlesList;
118 std::vector<SCustomHud> m_vHudList;
119 std::vector<SCustomExtras> m_vExtrasList;
120
121 bool m_IsInit = false;
122
123 static void LoadEntities(struct SCustomEntities *pEntitiesItem, void *pUser);
124 static int EntitiesScan(const char *pName, int IsDir, int DirType, void *pUser);
125
126 static int GameScan(const char *pName, int IsDir, int DirType, void *pUser);
127 static int EmoticonsScan(const char *pName, int IsDir, int DirType, void *pUser);
128 static int ParticlesScan(const char *pName, int IsDir, int DirType, void *pUser);
129 static int HudScan(const char *pName, int IsDir, int DirType, void *pUser);
130 static int ExtrasScan(const char *pName, int IsDir, int DirType, void *pUser);
131
132 static void ConchainAssetsEntities(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData);
133 static void ConchainAssetGame(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData);
134 static void ConchainAssetParticles(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData);
135 static void ConchainAssetEmoticons(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData);
136 static void ConchainAssetHud(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData);
137 static void ConchainAssetExtras(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData);
138
139 void ClearCustomItems(int CurTab);
140
146
148
173
176
177 char m_aNextServer[256];
178
179 // images
186 std::vector<CMenuImage> m_vMenuImages;
187 static int MenuImageScan(const char *pName, int IsDir, int DirType, void *pUser);
188 const CMenuImage *FindMenuImage(const char *pName);
189
190 // loading
192 {
193 public:
194 std::chrono::nanoseconds m_LastRender{0};
197 };
199
200 //
202 char m_aMessageBody[512];
204
207
208 // generic popups
209 typedef void (CMenus::*FPopupButtonCallback)();
211 {
212 // do nothing
213 }
214 enum
215 {
216 BUTTON_CONFIRM = 0, // confirm / yes / close / ok
217 BUTTON_CANCEL, // cancel / no
219 };
220 char m_aPopupTitle[128];
222 struct
223 {
224 char m_aLabel[64];
228
229 void PopupMessage(const char *pTitle, const char *pMessage,
230 const char *pButtonLabel, int NextPopup = POPUP_NONE, FPopupButtonCallback pfnButtonCallback = &CMenus::DefaultButtonCallback);
231 void PopupConfirm(const char *pTitle, const char *pMessage,
232 const char *pConfirmButtonLabel, const char *pCancelButtonLabel,
233 FPopupButtonCallback pfnConfirmButtonCallback = &CMenus::DefaultButtonCallback, int ConfirmNextPopup = POPUP_NONE,
234 FPopupButtonCallback pfnCancelButtonCallback = &CMenus::DefaultButtonCallback, int CancelNextPopup = POPUP_NONE);
235
236 // some settings
237 static float ms_ButtonHeight;
240
241 // for settings
247
248 // 0.7 skins
249 bool m_CustomSkinMenu = false;
255
256 // for map download popup
260
261 // for password popup
263
264 // for call vote
270
271 // demo
272 enum
273 {
278 };
279
281 {
282 public:
288 time_t m_Date;
289 int64_t m_Size;
290
296
297 int NumMarkers() const
298 {
299 return std::clamp<int>(bytes_be_to_uint(m_TimelineMarkers.m_aNumTimelineMarkers), 0, MAX_TIMELINE_MARKERS);
300 }
301
302 int Length() const
303 {
304 return bytes_be_to_uint(m_Info.m_aLength);
305 }
306
307 unsigned MapSize() const
308 {
309 return bytes_be_to_uint(m_Info.m_aMapSize);
310 }
311
312 bool operator<(const CDemoItem &Other) const
313 {
314 if(!str_comp(Other.m_aFilename, ".."))
315 return false;
316 if(!str_comp(m_aFilename, ".."))
317 return true;
318 if(m_IsDir && !Other.m_IsDir)
319 return true;
320 if(!m_IsDir && Other.m_IsDir)
321 return false;
322
323 const CDemoItem &Left = g_Config.m_BrDemoSortOrder ? Other : *this;
324 const CDemoItem &Right = g_Config.m_BrDemoSortOrder ? *this : Other;
325
326 if(g_Config.m_BrDemoSort == SORT_DEMONAME)
327 return str_comp_filenames(Left.m_aFilename, Right.m_aFilename) < 0;
328 if(g_Config.m_BrDemoSort == SORT_DATE)
329 return Left.m_Date < Right.m_Date;
330
331 if(!Other.m_InfosLoaded)
332 return m_InfosLoaded;
333 if(!m_InfosLoaded)
334 return !Other.m_InfosLoaded;
335
336 if(g_Config.m_BrDemoSort == SORT_MARKERS)
337 return Left.NumMarkers() < Right.NumMarkers();
338 if(g_Config.m_BrDemoSort == SORT_LENGTH)
339 return Left.Length() < Right.Length();
340
341 // Unknown sort
342 return true;
343 }
344 };
345
351#if defined(CONF_VIDEORECORDER)
353#endif
358 int m_Speed = 4;
359 bool m_StartPaused = false;
360
361 std::chrono::nanoseconds m_DemoPopulateStartTime{0};
362
363 void DemolistOnUpdate(bool Reset);
364 static int DemolistFetchCallback(const CFsFileInfo *pInfo, int IsDir, int StorageType, void *pUser);
365
366 // friends
368 {
375 // skin info 0.6
380 // skin info 0.7
384
385 public:
386 CFriendItem(const CFriendInfo *pFriendInfo) :
387 m_pServerInfo(nullptr),
388 m_IsPlayer(false),
389 m_IsAfk(false),
390 m_CustomSkinColors(false),
393 {
394 str_copy(m_aName, pFriendInfo->m_aName);
395 str_copy(m_aClan, pFriendInfo->m_aClan);
397 m_aSkin[0] = '\0';
398 for(int Part = 0; Part < protocol7::NUM_SKINPARTS; Part++)
399 {
400 m_aaSkin7[Part][0] = '\0';
401 m_aUseCustomSkinColor7[Part] = false;
402 m_aCustomSkinColor7[Part] = 0;
403 }
404 }
405 CFriendItem(const CServerInfo::CClient &CurrentClient, const CServerInfo *pServerInfo) :
406 m_pServerInfo(pServerInfo),
407 m_FriendState(CurrentClient.m_FriendState),
408 m_IsPlayer(CurrentClient.m_Player),
409 m_IsAfk(CurrentClient.m_Afk),
413 {
414 str_copy(m_aName, CurrentClient.m_aName);
415 str_copy(m_aClan, CurrentClient.m_aClan);
416 str_copy(m_aSkin, CurrentClient.m_aSkin);
417 for(int Part = 0; Part < protocol7::NUM_SKINPARTS; Part++)
418 {
419 str_copy(m_aaSkin7[Part], CurrentClient.m_aaSkin7[Part]);
420 m_aUseCustomSkinColor7[Part] = CurrentClient.m_aUseCustomSkinColor7[Part];
421 m_aCustomSkinColor7[Part] = CurrentClient.m_aCustomSkinColor7[Part];
422 }
423 }
424
425 const char *Name() const { return m_aName; }
426 const char *Clan() const { return m_aClan; }
427 const CServerInfo *ServerInfo() const { return m_pServerInfo; }
428 int FriendState() const { return m_FriendState; }
429 bool IsPlayer() const { return m_IsPlayer; }
430 bool IsAfk() const { return m_IsAfk; }
431 // 0.6 skin
432 const char *Skin() const { return m_aSkin; }
433 bool CustomSkinColors() const { return m_CustomSkinColors; }
436 // 0.7 skin
437 const char *Skin7(int Part) const { return m_aaSkin7[Part]; }
438 bool UseCustomSkinColor7(int Part) const { return m_aUseCustomSkinColor7[Part]; }
439 int CustomSkinColor7(int Part) const { return m_aCustomSkinColor7[Part]; }
440
441 const void *ListItemId() const { return &m_aName; }
442 const void *RemoveButtonId() const { return &m_FriendState; }
443 const void *CommunityTooltipId() const { return &m_IsPlayer; }
444 const void *SkinTooltipId() const { return &m_aSkin; }
445
446 bool operator<(const CFriendItem &Other) const
447 {
448 const int Result = str_comp_nocase(m_aName, Other.m_aName);
449 return Result < 0 || (Result == 0 && str_comp_nocase(m_aClan, Other.m_aClan) < 0);
450 }
451 };
452
453 enum
454 {
459 };
460 std::vector<CFriendItem> m_avFriends[NUM_FRIEND_TYPES];
461 const CFriendItem *m_pRemoveFriend = nullptr;
462
463 // found in menus.cpp
464 void Render();
465 void RenderPopupFullscreen(CUIRect Screen);
466 void RenderPopupConnecting(CUIRect Screen);
467 void RenderPopupLoading(CUIRect Screen);
468#if defined(CONF_VIDEORECORDER)
470#endif
471 void RenderMenubar(CUIRect Box, IClient::EClientState ClientState);
472 void RenderNews(CUIRect MainView);
473 static void ConchainBackgroundEntities(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData);
474 static void ConchainUpdateMusicState(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData);
475 void UpdateMusicState();
476
477 // found in menus_demo.cpp
481 float m_LastPauseChange = -1.0f;
482 float m_LastSpeedChange = -1.0f;
483 static constexpr int DEFAULT_SKIP_DURATION_INDEX = 3;
485 static bool DemoFilterChat(const void *pData, int Size, void *pUser);
486 bool FetchHeader(CDemoItem &Item);
487 void FetchAllHeaders();
488 void HandleDemoSeeking(float PositionToSeek, float TimeToSeek);
489 void RenderDemoPlayer(CUIRect MainView);
492 void RenderDemoBrowser(CUIRect MainView);
493 void RenderDemoBrowserList(CUIRect ListView, bool &WasListboxItemActivated);
494 void RenderDemoBrowserDetails(CUIRect DetailsView);
495 void RenderDemoBrowserButtons(CUIRect ButtonsView, bool WasListboxItemActivated);
499 static void ConchainDemoPlay(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData);
500 static void ConchainDemoSpeed(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData);
501
502 // found in menus_ingame.cpp
504 void RenderGame(CUIRect MainView);
517 void RenderPlayers(CUIRect MainView);
518 void RenderServerInfo(CUIRect MainView);
519 void RenderServerInfoMotd(CUIRect Motd);
520 void RenderServerControl(CUIRect MainView);
521 bool RenderServerControlKick(CUIRect MainView, bool FilterSpectators, bool UpdateScroll);
522 bool RenderServerControlServer(CUIRect MainView, bool UpdateScroll);
523 void RenderIngameHint();
524
525 // found in menus_browser.cpp
529 void RenderServerbrowserServerList(CUIRect View, bool &WasListboxItemActivated);
530 void RenderServerbrowserStatusBox(CUIRect StatusBox, bool WasListboxItemActivated);
531 void Connect(const char *pAddress);
536 IFilterList &Filter,
537 float ItemHeight, int MaxItems, int ItemsPerRow,
538 CScrollRegion &ScrollRegion, std::vector<unsigned char> &vItemIds,
539 bool UpdateCommunityCacheOnChange,
540 const std::function<const char *(int ItemIndex)> &GetItemName,
541 const std::function<void(int ItemIndex, CUIRect Item, const void *pItemId, bool Active)> &RenderItem);
551 static CUi::EPopupMenuFunctionResult PopupCountrySelection(void *pContext, CUIRect View, bool Active);
553 void RenderServerbrowserInfoScoreboard(CUIRect View, const CServerInfo *pSelectedServer);
555 void FriendlistOnUpdate();
559 void RenderServerbrowser(CUIRect MainView);
560 template<typename F>
561 bool PrintHighlighted(const char *pName, F &&PrintFn);
562 CTeeRenderInfo GetTeeRenderInfo(vec2 Size, const char *pSkinName, bool CustomSkinColors, int CustomSkinColorBody, int CustomSkinColorFeet) const;
563 static void ConchainFriendlistUpdate(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData);
564 static void ConchainFavoritesUpdate(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData);
565 static void ConchainCommunitiesUpdate(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData);
566 static void ConchainUiPageUpdate(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData);
567 void UpdateCommunityCache(bool Force);
568
569 // found in menus_settings.cpp
570 void RenderLanguageSettings(CUIRect MainView);
571 bool RenderLanguageSelection(CUIRect MainView);
572 void RenderThemeSelection(CUIRect MainView);
573 void RenderSettingsGeneral(CUIRect MainView);
574 void RenderSettingsPlayer(CUIRect MainView);
575 void RenderSettingsTee(CUIRect MainView);
576 void RenderSettingsTee7(CUIRect MainView);
577 void RenderSettingsTeeCustom7(CUIRect MainView);
578 void RenderSkinSelection7(CUIRect MainView);
579 void RenderSkinPartSelection7(CUIRect MainView);
580 void RenderSettingsGraphics(CUIRect MainView);
581 void RenderSettingsSound(CUIRect MainView);
582 void RenderSettings(CUIRect MainView);
583
584 // found in menus_settings_assets.cpp
585 void RenderSettingsAssets(CUIRect MainView);
586
587 // found in menus_settings_controls.cpp
588 // TODO: Change PopupConfirm to avoid using a function pointer to a CMenus
589 // member function, to move this function to CMenusSettingsControls
591
592 std::vector<CButtonContainer> m_vButtonContainersNamePlateShow = {{}, {}, {}, {}};
593 std::vector<CButtonContainer> m_vButtonContainersNamePlateKeyPresses = {{}, {}, {}, {}};
594
596 {
597 public:
600 };
602 {
603 public:
604 std::vector<CMapListItem> m_vMaps;
606 static int MapListFetchCallback(const CFsFileInfo *pInfo, int IsDir, int StorageType, void *pUser);
607 void MapListPopulate();
610 };
611
612 static bool CompareFilenameAscending(const CMapListItem Lhs, const CMapListItem Rhs)
613 {
614 if(str_comp(Rhs.m_aFilename, "..") == 0)
615 return false;
616 if(str_comp(Lhs.m_aFilename, "..") == 0)
617 return true;
618 if(Lhs.m_IsDirectory != Rhs.m_IsDirectory)
619 return Lhs.m_IsDirectory;
620 return str_comp_filenames(Lhs.m_aFilename, Rhs.m_aFilename) < 0;
621 }
622
623 static CUi::EPopupMenuFunctionResult PopupMapPicker(void *pContext, CUIRect View, bool Active);
624
625 void SetNeedSendInfo();
626 void UpdateColors();
627
629
630public:
631 void RenderBackground();
632
633 CMenus();
634 int Sizeof() const override { return sizeof(*this); }
635
636 void RenderLoading(const char *pCaption, const char *pContent, int IncreaseCounter);
637 void FinishLoading();
638
639 bool IsInit() const { return m_IsInit; }
640
641 bool IsActive() const { return m_MenuActive; }
642 void SetActive(bool Active);
643
644 void OnInterfacesInit(CGameClient *pClient) override;
645 void OnInit() override;
646
647 void OnStateChange(int NewState, int OldState) override;
648 void OnWindowResize() override;
649 void OnRender() override;
650 bool OnInput(const IInput::CEvent &Event) override;
651 bool OnCursorMove(float x, float y, IInput::ECursorType CursorType) override;
652 void OnShutdown() override;
653
654 enum
655 {
673
675 };
676
677 enum
678 {
689
691 };
692
693 enum
694 {
705
707 };
708
709 enum
710 {
720
722 };
723
727
728 // DDRace
729 int DoButton_CheckBox_Tristate(const void *pId, const char *pText, TRISTATE Checked, const CUIRect *pRect);
730 std::vector<CDemoItem> m_vDemos;
731 std::vector<CDemoItem *> m_vpFilteredDemos;
732 void DemolistPopulate();
734 void DemoSeekTick(IDemoPlayer::ETickOffset TickOffset);
736
737 const char *GetCurrentDemoFolder() const { return m_aCurrentDemoFolder; }
738
739 // Ghost
741 {
744
748 bool m_Own;
749 time_t m_Date;
750
752 m_Slot(-1), m_Own(false) { m_aFilename[0] = 0; }
753
754 bool operator<(const CGhostItem &Other) const { return m_Time < Other.m_Time; }
755
756 bool Active() const { return m_Slot != -1; }
757 bool HasFile() const { return m_aFilename[0]; }
758 };
759
760 enum
761 {
766 };
767
768 std::vector<CGhostItem> m_vGhosts;
769
770 std::chrono::nanoseconds m_GhostPopulateStartTime{0};
771
772 void GhostlistPopulate();
774 void UpdateOwnGhost(CGhostItem Item);
775 void DeleteGhostItem(int Index);
776 void SortGhostlist();
777
778 bool CanDisplayWarning() const;
779
780 void PopupWarning(const char *pTopic, const char *pBody, const char *pButton, std::chrono::nanoseconds Duration);
781
782 std::chrono::nanoseconds m_PopupWarningLastTime;
783 std::chrono::nanoseconds m_PopupWarningDuration;
784
786
787 enum
788 {
790 POPUP_MESSAGE, // generic message popup (one button)
791 POPUP_CONFIRM, // generic confirmation popup (two buttons)
805 };
806
807 enum
808 {
809 // demo player states
812 };
813
814 void SetMenuPage(int NewPage);
815 void RefreshBrowserTab(bool Force);
816 void ForceRefreshLanPage();
817 void SetShowStart(bool ShowStart);
818 void ShowQuitPopup();
819 void JoinTutorial();
820
821private:
828
829 static int GhostlistFetchCallback(const CFsFileInfo *pInfo, int IsDir, int StorageType, void *pUser);
830
831 // found in menus_ingame.cpp
832 void RenderInGameNetwork(CUIRect MainView);
833 void RenderGhost(CUIRect MainView);
834
835 // found in menus_settings.cpp
836 void RenderSettingsDDNet(CUIRect MainView);
837 void RenderSettingsAppearance(CUIRect MainView);
838 bool RenderHslaScrollbars(CUIRect *pRect, unsigned int *pColor, bool Alpha, float DarkestLight);
839};
840#endif
Definition ui.h:269
Definition community_icons.h:17
Definition community_icons.h:28
Definition component.h:165
Definition types.h:65
Definition gameclient.h:143
Definition ghost.h:35
Definition lineinput.h:202
Definition lineinput.h:25
Definition menus_start.h:10
Definition menus.h:281
char m_aFilename[IO_MAX_PATH_LENGTH]
Definition menus.h:283
CDemoHeader m_Info
Definition menus.h:293
unsigned MapSize() const
Definition menus.h:307
int64_t m_Size
Definition menus.h:289
int NumMarkers() const
Definition menus.h:297
int m_StorageType
Definition menus.h:287
bool m_InfosLoaded
Definition menus.h:291
bool operator<(const CDemoItem &Other) const
Definition menus.h:312
char m_aName[IO_MAX_PATH_LENGTH]
Definition menus.h:284
bool m_IsLink
Definition menus.h:286
int Length() const
Definition menus.h:302
CTimelineMarkers m_TimelineMarkers
Definition menus.h:294
bool m_Valid
Definition menus.h:292
time_t m_Date
Definition menus.h:288
bool m_IsDir
Definition menus.h:285
CMapInfo m_MapInfo
Definition menus.h:295
Definition menus.h:368
const char * Clan() const
Definition menus.h:426
const void * CommunityTooltipId() const
Definition menus.h:443
bool m_CustomSkinColors
Definition menus.h:377
int CustomSkinColor7(int Part) const
Definition menus.h:439
int CustomSkinColorFeet() const
Definition menus.h:435
char m_aSkin[MAX_SKIN_LENGTH]
Definition menus.h:376
char m_aaSkin7[protocol7::NUM_SKINPARTS][protocol7::MAX_SKIN_LENGTH]
Definition menus.h:381
int m_CustomSkinColorBody
Definition menus.h:378
bool m_IsPlayer
Definition menus.h:373
bool m_IsAfk
Definition menus.h:374
bool IsAfk() const
Definition menus.h:430
bool operator<(const CFriendItem &Other) const
Definition menus.h:446
bool CustomSkinColors() const
Definition menus.h:433
const CServerInfo * m_pServerInfo
Definition menus.h:371
bool UseCustomSkinColor7(int Part) const
Definition menus.h:438
const void * ListItemId() const
Definition menus.h:441
int CustomSkinColorBody() const
Definition menus.h:434
int m_aCustomSkinColor7[protocol7::NUM_SKINPARTS]
Definition menus.h:383
CFriendItem(const CServerInfo::CClient &CurrentClient, const CServerInfo *pServerInfo)
Definition menus.h:405
int FriendState() const
Definition menus.h:428
int m_FriendState
Definition menus.h:372
bool m_aUseCustomSkinColor7[protocol7::NUM_SKINPARTS]
Definition menus.h:382
const char * Skin() const
Definition menus.h:432
char m_aClan[MAX_CLAN_LENGTH]
Definition menus.h:370
const CServerInfo * ServerInfo() const
Definition menus.h:427
int m_CustomSkinColorFeet
Definition menus.h:379
const char * Name() const
Definition menus.h:425
const char * Skin7(int Part) const
Definition menus.h:437
char m_aName[MAX_NAME_LENGTH]
Definition menus.h:369
bool IsPlayer() const
Definition menus.h:429
const void * SkinTooltipId() const
Definition menus.h:444
CFriendItem(const CFriendInfo *pFriendInfo)
Definition menus.h:386
const void * RemoveButtonId() const
Definition menus.h:442
Definition menus.h:150
EStatus
Definition menus.h:154
@ NO_TUTORIAL_AVAILABLE
Definition menus.h:157
@ REFRESHING
Definition menus.h:155
@ SERVER_LIST_ERROR
Definition menus.h:156
EStatus m_Status
Definition menus.h:159
ELocalServerState m_LocalServerState
Definition menus.h:169
bool m_TryRefresh
Definition menus.h:160
ELocalServerState
Definition menus.h:163
@ WAITING_STOP
Definition menus.h:166
@ WAITING_START
Definition menus.h:167
std::chrono::nanoseconds m_StateChange
Definition menus.h:170
bool m_TriedRefresh
Definition menus.h:161
bool m_Queued
Definition menus.h:152
Definition menus.h:192
std::chrono::nanoseconds m_LastRender
Definition menus.h:194
int m_Current
Definition menus.h:195
int m_Total
Definition menus.h:196
Definition menus.h:596
char m_aFilename[IO_MAX_PATH_LENGTH]
Definition menus.h:598
bool m_IsDirectory
Definition menus.h:599
Definition menus.h:602
void MapListPopulate()
Definition menus_settings.cpp:3100
static int MapListFetchCallback(const CFsFileInfo *pInfo, int IsDir, int StorageType, void *pUser)
Definition menus_settings.cpp:3110
CMenus * m_pMenus
Definition menus.h:608
std::vector< CMapListItem > m_vMaps
Definition menus.h:604
char m_aCurrentMapFolder[IO_MAX_PATH_LENGTH]
Definition menus.h:605
int m_Selection
Definition menus.h:609
bool m_StartPaused
Definition menus.h:359
void RefreshFilteredDemos()
Definition menus_demo.cpp:1034
void RenderSettingsTee7(CUIRect MainView)
Definition menus_settings7.cpp:35
char m_aCurrentDemoSelectionName[IO_MAX_PATH_LENGTH]
Definition menus.h:347
char m_aMessageBody[512]
Definition menus.h:202
void RenderSettingsAssets(CUIRect MainView)
Definition menus_settings_assets.cpp:354
bool PrintHighlighted(const char *pName, F &&PrintFn)
Definition menus_browser.cpp:1886
int DoButton_CheckBox_Tristate(const void *pId, const char *pText, TRISTATE Checked, const CUIRect *pRect)
Definition menus.cpp:2625
float m_DownloadSpeed
Definition menus.h:259
bool RenderServerControlServer(CUIRect MainView, bool UpdateScroll)
Definition menus_ingame.cpp:852
CTeeRenderInfo GetTeeRenderInfo(vec2 Size, const char *pSkinName, bool CustomSkinColors, int CustomSkinColorBody, int CustomSkinColorFeet) const
Definition menus_browser.cpp:1920
void RenderServerbrowserTypesFilter(CUIRect View)
Definition menus_browser.cpp:1091
bool FetchHeader(CDemoItem &Item)
Definition menus_demo.cpp:1083
void RenderNews(CUIRect MainView)
Definition menus.cpp:813
static ColorRGBA ms_ColorTabbarActiveOutgame
Definition menus.h:37
CLineInput m_PasswordInput
Definition menus.h:262
void RenderInGameNetwork(CUIRect MainView)
Definition menus_ingame.cpp:1156
CMenusStart m_MenusStart
Definition menus.h:827
int DoButton_GridHeader(const void *pId, const char *pText, int Checked, const CUIRect *pRect, int Align=TEXTALIGN_ML)
Definition menus.cpp:251
int m_GamePage
Definition menus.h:142
void PopupConfirmDiscardTouchControlsChanges()
Definition menus_ingame.cpp:356
void PopupConfirmChangeSelectedButton()
Definition menus_ingame.cpp:444
void DefaultButtonCallback()
Definition menus.h:210
bool m_ServerBrowserShouldRevealSelection
Definition menus.h:527
void RenderSettingsPlayer(CUIRect MainView)
Definition menus_settings.cpp:234
bool m_PausedBeforeSeeking
Definition menus.h:479
void UpdateColors()
Definition menus.cpp:2546
friend CMenusIngameTouchControls
Definition menus.h:824
std::vector< CDemoItem > m_vDemos
Definition menus.h:730
void RenderPopupLoading(CUIRect Screen)
Definition menus.cpp:2178
@ BIT_TAB_FAVORITE_COMMUNITY_3
Definition menus.h:701
@ BIG_TAB_INTERNET
Definition menus.h:696
@ BIT_TAB_FAVORITE_COMMUNITY_2
Definition menus.h:700
@ BIG_TAB_FAVORITES
Definition menus.h:698
@ BIT_TAB_FAVORITE_COMMUNITY_4
Definition menus.h:702
@ BIT_TAB_FAVORITE_COMMUNITY_1
Definition menus.h:699
@ BIG_TAB_LAN
Definition menus.h:697
@ BIG_TAB_NEWS
Definition menus.h:695
@ BIT_TAB_FAVORITE_COMMUNITY_5
Definition menus.h:703
@ BIG_TAB_DEMOS
Definition menus.h:704
@ BIG_TAB_LENGTH
Definition menus.h:706
static void ConchainUiPageUpdate(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData)
Definition menus_browser.cpp:1958
void RenderServerControl(CUIRect MainView)
Definition menus_ingame.cpp:952
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:370
static ColorRGBA ms_ColorTabbarHover
Definition menus.h:44
void RenderLanguageSettings(CUIRect MainView)
Definition menus_settings.cpp:1364
bool m_CustomSkinMenu
Definition menus.h:249
void DeleteGhostItem(int Index)
Definition menus_ingame.cpp:1337
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:403
void RenderDemoBrowserButtons(CUIRect ButtonsView, bool WasListboxItemActivated)
Definition menus_demo.cpp:1465
static void ConchainDemoSpeed(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData)
Definition menus_demo.cpp:1741
void RefreshBrowserTab(bool Force)
Definition menus.cpp:2709
CMenusSettingsControls m_MenusSettingsControls
Definition menus.h:825
static ColorRGBA ms_ColorTabbarInactiveOutgame
Definition menus.h:36
static bool DemoFilterChat(const void *pData, int Size, void *pUser)
Definition menus_demo.cpp:35
void RenderServerbrowserServerList(CUIRect View, bool &WasListboxItemActivated)
Definition menus_browser.cpp:70
static void ConchainDemoPlay(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData)
Definition menus_demo.cpp:1734
void JoinTutorial()
Definition menus.cpp:2773
bool IsInit() const
Definition menus.h:639
static bool CompareFilenameAscending(const CMapListItem Lhs, const CMapListItem Rhs)
Definition menus.h:612
static void ConchainFavoritesUpdate(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData)
Definition menus_browser.cpp:1940
bool m_SkinListScrollToSelected
Definition menus.h:67
void RenderDemoBrowser(CUIRect MainView)
Definition menus_demo.cpp:1111
static int EntitiesScan(const char *pName, int IsDir, int DirType, void *pUser)
Definition menus_settings_assets.cpp:73
const CSkins7::CSkin * m_pSelectedSkin
Definition menus.h:251
int DoButton_Favorite(const void *pButtonId, const void *pParentId, bool Checked, const CUIRect *pRect)
Definition menus.cpp:264
bool m_DummyNamePlatePreview
Definition menus.h:147
static ColorRGBA ms_ColorTabbarActiveIngame
Definition menus.h:40
std::vector< CFriendItem > m_avFriends[NUM_FRIEND_TYPES]
Definition menus.h:460
FPopupButtonCallback m_pfnCallback
Definition menus.h:226
const char * GetCurrentDemoFolder() const
Definition menus.h:737
bool m_CreateDefaultFavoriteCommunities
Definition menus.h:174
std::vector< SCustomExtras > m_vExtrasList
Definition menus.h:119
CCommunityIcons m_CommunityIcons
Definition menus.h:822
void UpdateMusicState()
Definition menus.cpp:947
void PopupConfirmRemoveFriend()
Definition menus_browser.cpp:1737
int m_DirectionQuadContainerIndex
Definition menus.h:71
CLineInputBuffered< IO_MAX_PATH_LENGTH > m_DemoRenderInput
Definition menus.h:352
bool RenderServerControlKick(CUIRect MainView, bool FilterSpectators, bool UpdateScroll)
Definition menus_ingame.cpp:897
@ SORT_DEMONAME
Definition menus.h:274
@ SORT_DATE
Definition menus.h:277
@ SORT_LENGTH
Definition menus.h:276
@ SORT_MARKERS
Definition menus.h:275
void PopupConfirmSelectedNotVisible()
Definition menus_ingame.cpp:427
void RenderServerbrowserFilters(CUIRect View)
Definition menus_browser.cpp:675
CLineInputBuffered< IO_MAX_PATH_LENGTH > m_DemoRenameInput
Definition menus.h:348
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:867
std::vector< CDemoItem * > m_vpFilteredDemos
Definition menus.h:731
int m_CallvoteSelectedPlayer
Definition menus.h:266
void PopupConfirmPlayDemo()
Definition menus_demo.cpp:1682
void RenderServerbrowserCountriesFilter(CUIRect View)
Definition menus_browser.cpp:1066
std::chrono::nanoseconds m_PopupWarningLastTime
Definition menus.h:782
@ DEMOPLAYER_NONE
Definition menus.h:810
@ DEMOPLAYER_SLICE_SAVE
Definition menus.h:811
void OnStateChange(int NewState, int OldState) override
Definition menus.cpp:2446
void ClearCustomItems(int CurTab)
Definition menus_settings_assets.cpp:260
std::chrono::nanoseconds m_GhostPopulateStartTime
Definition menus.h:770
bool m_DemolistMultipleStorages
Definition menus.h:357
int Sizeof() const override
Definition menus.h:634
CLineInputBuffered< IO_MAX_PATH_LENGTH > m_DemoSearchInput
Definition menus.h:350
bool m_DemolistSelectedReveal
Definition menus.h:355
int DoButton_CheckBox_Common(const void *pId, const char *pText, const char *pBoxText, const CUIRect *pRect, unsigned Flags)
Definition menus.cpp:282
int m_NextPopup
Definition menus.h:225
CUIElement m_ConnectButton
Definition menus.h:206
int DoButton_Toggle(const void *pId, int Checked, const CUIRect *pRect, bool Active, unsigned Flags=BUTTONFLAG_LEFT)
Definition menus.cpp:105
bool OnInput(const IInput::CEvent &Event) override
Definition menus.cpp:2435
SUIAnimator m_aAnimatorsSmallPage[SMALL_TAB_LENGTH]
Definition menus.h:725
void ResetServerbrowserFilters()
Definition menus_browser.cpp:832
float m_LastPauseChange
Definition menus.h:481
@ SMALL_TAB_BROWSER_INFO
Definition menus.h:718
@ SMALL_TAB_BROWSER_FILTER
Definition menus.h:717
@ SMALL_TAB_QUIT
Definition menus.h:712
@ SMALL_TAB_HOME
Definition menus.h:711
@ SMALL_TAB_EDITOR
Definition menus.h:714
@ SMALL_TAB_BROWSER_FRIENDS
Definition menus.h:719
@ SMALL_TAB_LENGTH
Definition menus.h:721
@ SMALL_TAB_SERVER
Definition menus.h:716
@ SMALL_TAB_DEMOBUTTON
Definition menus.h:715
@ SMALL_TAB_SETTINGS
Definition menus.h:713
int m_TeePartSelected
Definition menus.h:250
char m_aLabel[64]
Definition menus.h:224
void RenderSkinPartSelection7(CUIRect MainView)
Definition menus_settings7.cpp:387
void PopupConfirmImportTouchControlsClipboard()
Definition menus_ingame.cpp:397
void RenderGame(CUIRect MainView)
Definition menus_ingame.cpp:44
void OnRender() override
Definition menus.cpp:2494
void OnShutdown() override
Definition menus.cpp:2419
const CFriendItem * m_pRemoveFriend
Definition menus.h:461
bool RenderHslaScrollbars(CUIRect *pRect, unsigned int *pColor, bool Alpha, float DarkestLight)
Definition menus_settings.cpp:1581
bool m_NeedSendinfo
Definition menus.h:245
int m_MenuPage
Definition menus.h:141
void RenderSkinSelection7(CUIRect MainView)
Definition menus_settings7.cpp:307
bool m_Dummy
Definition menus.h:735
int m_SkipDurationIndex
Definition menus.h:484
void RenderSettings(CUIRect MainView)
Definition menus_settings.cpp:1453
int m_DownloadLastCheckSize
Definition menus.h:258
@ SETTINGS_GRAPHICS
Definition menus.h:685
@ SETTINGS_ASSETS
Definition menus.h:688
@ SETTINGS_PLAYER
Definition menus.h:681
@ SETTINGS_LANGUAGE
Definition menus.h:679
@ SETTINGS_GENERAL
Definition menus.h:680
@ SETTINGS_TEE
Definition menus.h:682
@ SETTINGS_LENGTH
Definition menus.h:690
@ SETTINGS_SOUND
Definition menus.h:686
@ SETTINGS_DDNET
Definition menus.h:687
@ SETTINGS_CONTROLS
Definition menus.h:684
@ SETTINGS_APPEARANCE
Definition menus.h:683
void(CMenus::* FPopupButtonCallback)()
Definition menus.h:209
CUIElement m_RefreshButton
Definition menus.h:205
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 CCommunityIcon *pCommunityIcon=nullptr)
Definition menus.cpp:162
static int DemolistFetchCallback(const CFsFileInfo *pInfo, int IsDir, int StorageType, void *pUser)
Definition menus_demo.cpp:922
void RenderSettingsAppearance(CUIRect MainView)
Definition menus_settings.cpp:1844
void PopupWarning(const char *pTopic, const char *pBody, const char *pButton, std::chrono::nanoseconds Duration)
Definition menus.cpp:986
static int MenuImageScan(const char *pName, int IsDir, int DirType, void *pUser)
Definition menus.cpp:2640
void RenderPopupConnecting(CUIRect Screen)
Definition menus.cpp:2113
void ShowQuitPopup()
Definition menus.cpp:2768
bool m_ControlPageOpening
Definition menus.h:269
void SetNeedSendInfo()
Definition menus_settings.cpp:226
void RenderDemoBrowserDetails(CUIRect DetailsView)
Definition menus_demo.cpp:1341
static ColorRGBA ms_ColorTabbarHoverIngame
Definition menus.h:41
void RenderPopupFullscreen(CUIRect Screen)
Definition menus.cpp:1219
void RenderGhost(CUIRect MainView)
Definition menus_ingame.cpp:1360
CLineInputBuffered< IO_MAX_PATH_LENGTH > m_DemoSliceInput
Definition menus.h:349
int DoButton_CheckBoxAutoVMarginAndSet(const void *pId, const char *pText, int *pValue, CUIRect *pRect, float VMargin)
Definition menus.cpp:471
void RenderServerbrowserInfoScoreboard(CUIRect View, const CServerInfo *pSelectedServer)
Definition menus_browser.cpp:1272
std::chrono::nanoseconds m_DemoPopulateStartTime
Definition menus.h:361
bool RenderLanguageSelection(CUIRect MainView)
Definition menus_settings.cpp:1404
void ResetSettingsControls()
Definition menus_settings_controls.cpp:777
@ PAGE_FAVORITE_COMMUNITY_2
Definition menus.h:665
@ PAGE_INTERNET
Definition menus.h:661
@ PAGE_CALLVOTE
Definition menus.h:660
@ PAGE_PLAYERS
Definition menus.h:658
@ PAGE_FAVORITE_COMMUNITY_1
Definition menus.h:664
@ PAGE_GAME
Definition menus.h:657
@ PAGE_SETTINGS
Definition menus.h:670
@ PAGE_LAN
Definition menus.h:662
@ PAGE_NETWORK
Definition menus.h:671
@ PAGE_NEWS
Definition menus.h:656
@ PAGE_SERVER_INFO
Definition menus.h:659
@ PAGE_LENGTH
Definition menus.h:674
@ PAGE_FAVORITES
Definition menus.h:663
@ PAGE_DEMOS
Definition menus.h:669
@ PAGE_FAVORITE_COMMUNITY_3
Definition menus.h:666
@ PAGE_FAVORITE_COMMUNITY_5
Definition menus.h:668
@ PAGE_GHOST
Definition menus.h:672
@ PAGE_FAVORITE_COMMUNITY_4
Definition menus.h:667
static CUi::EPopupMenuFunctionResult PopupCountrySelection(void *pContext, CUIRect View, bool Active)
Definition menus_browser.cpp:1115
char m_aMessageButton[512]
Definition menus.h:203
void SetMenuPage(int NewPage)
Definition menus.cpp:2689
static int GameScan(const char *pName, int IsDir, int DirType, void *pUser)
Definition menus_settings_assets.cpp:174
int m_CallvoteSelectedOption
Definition menus.h:265
CMenusIngameTouchControls m_MenusIngameTouchControls
Definition menus.h:823
struct CMenus::@261347105360354237364205304244167270026045020136 m_aPopupButtons[NUM_BUTTONS]
bool m_DemoBrowserListInitialized
Definition menus.h:491
int m_DemoPlayerState
Definition menus.h:785
static ColorRGBA ms_ColorTabbarActive
Definition menus.h:43
void RenderDemoBrowserList(CUIRect ListView, bool &WasListboxItemActivated)
Definition menus_demo.cpp:1128
int m_DemolistSelectedIndex
Definition menus.h:354
void RenderSettingsTeeCustom7(CUIRect MainView)
Definition menus_settings7.cpp:242
void PopupConfirmDeleteFolder()
Definition menus_demo.cpp:1717
void PopupConfirmDeleteDemo()
Definition menus_demo.cpp:1700
@ BUTTON_CANCEL
Definition menus.h:217
@ NUM_BUTTONS
Definition menus.h:218
@ BUTTON_CONFIRM
Definition menus.h:216
int DoButton_Menu(CButtonContainer *pButtonContainer, const char *pText, int Checked, const CUIRect *pRect, 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:125
void PopupCancelChangeSelectedButton()
Definition menus_ingame.cpp:459
void ForceRefreshLanPage()
Definition menus.cpp:2758
void RenderLoading(const char *pCaption, const char *pContent, int IncreaseCounter)
Definition menus.cpp:745
int m_DemolistStorageType
Definition menus.h:356
void Connect(const char *pAddress)
Definition menus_browser.cpp:657
float m_LastSpeedChange
Definition menus.h:482
std::vector< SCustomParticle > m_vParticlesList
Definition menus.h:117
void RenderDemoPlayerSliceSavePopup(CUIRect MainView)
Definition menus_demo.cpp:777
void RenderServerbrowserTabBar(CUIRect TabBar)
Definition menus_browser.cpp:1753
void GhostlistPopulate()
Definition menus_ingame.cpp:1273
std::vector< SCustomEmoticon > m_vEmoticonList
Definition menus.h:116
void RenderServerbrowser(CUIRect MainView)
Definition menus_browser.cpp:1816
friend CMenusSettingsControls
Definition menus.h:826
bool m_NeedSendDummyinfo
Definition menus.h:246
static void ConchainAssetExtras(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData)
Definition menus_settings_assets.cpp:730
std::optional< std::chrono::nanoseconds > m_SkinList7LastRefreshTime
Definition menus.h:68
static void ConchainAssetGame(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData)
Definition menus_settings_assets.cpp:670
bool m_NeedRestartUpdate
Definition menus.h:244
static ColorRGBA ms_ColorTabbarInactive
Definition menus.h:42
void DemoSeekTick(IDemoPlayer::ETickOffset TickOffset)
Definition menus_demo.cpp:80
@ POPUP_SAVE_SKIN
Definition menus.h:804
@ POPUP_DISCONNECTED
Definition menus.h:795
@ POPUP_PASSWORD
Definition menus.h:800
@ POPUP_JOIN_TUTORIAL
Definition menus.h:793
@ POPUP_RENDER_DONE
Definition menus.h:799
@ POPUP_QUIT
Definition menus.h:801
@ POPUP_RESTART
Definition menus.h:802
@ POPUP_FIRST_LAUNCH
Definition menus.h:792
@ POPUP_LANGUAGE
Definition menus.h:796
@ POPUP_WARNING
Definition menus.h:803
@ POPUP_NONE
Definition menus.h:789
@ POPUP_MESSAGE
Definition menus.h:790
@ POPUP_RENDER_DEMO
Definition menus.h:798
@ POPUP_POINTS
Definition menus.h:794
@ POPUP_RENAME_DEMO
Definition menus.h:797
@ POPUP_CONFIRM
Definition menus.h:791
static ColorRGBA ms_ColorTabbarInactiveIngame
Definition menus.h:39
static void ConchainFriendlistUpdate(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData)
Definition menus_browser.cpp:1929
CLineInputBuffered< protocol7::MAX_SKIN_ARRAY_SIZE, protocol7::MAX_SKIN_LENGTH > m_SkinNameInput
Definition menus.h:252
bool m_SkinPartListNeedsUpdate
Definition menus.h:253
void OnInit() override
Definition menus.cpp:854
void RenderServerbrowserFriends(CUIRect View)
Definition menus_browser.cpp:1424
void PopupConfirmOpenWiki()
Definition menus_ingame.cpp:486
static int EmoticonsScan(const char *pName, int IsDir, int DirType, void *pUser)
Definition menus_settings_assets.cpp:182
bool m_NeedRestartGraphics
Definition menus.h:242
int DoButton_CheckBox_Number(const void *pId, const char *pText, int Checked, const CUIRect *pRect)
Definition menus.cpp:489
void RenderSettingsTee(CUIRect MainView)
Definition menus_settings.cpp:402
bool m_MenuActive
Definition menus.h:145
static void ConchainCommunitiesUpdate(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData)
Definition menus_browser.cpp:1947
void UpdateCommunityCache(bool Force)
Definition menus_browser.cpp:1975
void RenderServerInfoMotd(CUIRect Motd)
Definition menus_ingame.cpp:811
static constexpr int DEFAULT_SKIP_DURATION_INDEX
Definition menus.h:483
void FinishLoading()
Definition menus.cpp:807
char m_aMessageTopic[512]
Definition menus.h:201
static int GhostlistFetchCallback(const CFsFileInfo *pInfo, int IsDir, int StorageType, void *pUser)
Definition menus_ingame.cpp:1243
static int ExtrasScan(const char *pName, int IsDir, int DirType, void *pUser)
Definition menus_settings_assets.cpp:206
std::vector< SCustomGame > m_vGameList
Definition menus.h:115
void PopupCancelDeselectButton()
Definition menus_ingame.cpp:420
void PopupConfirmDisconnectDummy()
Definition menus_ingame.cpp:350
vec2 m_DemoControlsPositionOffset
Definition menus.h:478
void OnInterfacesInit(CGameClient *pClient) override
Definition menus.cpp:845
CLineInputBuffered< 64 > m_FilterInput
Definition menus.h:268
void DoLaserPreview(const CUIRect *pRect, ColorHSLA OutlineColor, ColorHSLA InnerColor, int LaserType)
Definition menus.cpp:310
bool m_ShowStart
Definition menus.h:144
void RenderSettingsGraphics(CUIRect MainView)
Definition menus_settings.cpp:881
void RenderThemeSelection(CUIRect MainView)
Definition menus.cpp:2314
std::vector< CMenuImage > m_vMenuImages
Definition menus.h:186
std::vector< CButtonContainer > m_vButtonContainersNamePlateKeyPresses
Definition menus.h:593
CLineInputBuffered< VOTE_REASON_LENGTH > m_CallvoteReasonInput
Definition menus.h:267
bool m_ForceRefreshLanPage
Definition menus.h:175
void RenderServerInfo(CUIRect MainView)
Definition menus_ingame.cpp:625
bool m_NeedRestartSound
Definition menus.h:243
static ColorRGBA ms_ColorTabbarHoverOutgame
Definition menus.h:38
void SetShowStart(bool ShowStart)
Definition menus.cpp:2763
static void ConchainAssetParticles(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData)
Definition menus_settings_assets.cpp:685
void RenderPlayers(CUIRect MainView)
Definition menus_ingame.cpp:491
void PopupConfirmDisconnect()
Definition menus_ingame.cpp:345
int m_Speed
Definition menus.h:358
static float ms_ButtonHeight
Definition menus.h:237
std::vector< SCustomEntities > m_vEntitiesList
Definition menus.h:114
void RenderDemoPlayer(CUIRect MainView)
Definition menus_demo.cpp:88
SUIAnimator m_aAnimatorsBigPage[BIG_TAB_LENGTH]
Definition menus.h:724
static int HudScan(const char *pName, int IsDir, int DirType, void *pUser)
Definition menus_settings_assets.cpp:198
void RenderSettingsSound(CUIRect MainView)
Definition menus_settings.cpp:1274
CJoinTutorial m_JoinTutorial
Definition menus.h:172
CMenus()
Definition menus.cpp:62
void SetActive(bool Active)
Definition menus.cpp:2386
float m_PrevSeekAmount
Definition menus.h:480
void PopupConfirmSwitchServer()
Definition menus_browser.cpp:670
void DemolistOnUpdate(bool Reset)
Definition menus_demo.cpp:1046
void Render()
Definition menus.cpp:1010
int DoButton_CheckBox(const void *pId, const char *pText, int Checked, const CUIRect *pRect)
Definition menus.cpp:484
void PopupConfirmDeleteSkin7()
Definition menus_settings7.cpp:230
static void ConchainUpdateMusicState(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData)
Definition menus.cpp:939
void HandleDemoSeeking(float PositionToSeek, float TimeToSeek)
Definition menus_demo.cpp:53
static void ConchainBackgroundEntities(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData)
Definition menus.cpp:928
char m_aCurrentDemoFolder[IO_MAX_PATH_LENGTH]
Definition menus.h:346
@ FRIEND_OFF
Definition menus.h:457
@ FRIEND_PLAYER_ON
Definition menus.h:455
@ NUM_FRIEND_TYPES
Definition menus.h:458
@ FRIEND_CLAN_ON
Definition menus.h:456
std::vector< SCustomHud > m_vHudList
Definition menus.h:118
void RenderSettingsDDNet(CUIRect MainView)
Definition menus_settings.cpp:2725
void PopupMessage(const char *pTitle, const char *pMessage, const char *pButtonLabel, int NextPopup=POPUP_NONE, FPopupButtonCallback pfnButtonCallback=&CMenus::DefaultButtonCallback)
Definition menus.cpp:956
char m_aPopupTitle[128]
Definition menus.h:220
bool CanDisplayWarning() const
Definition menus.cpp:1005
int m_Popup
Definition menus.h:143
IGraphics::CTextureHandle m_TextureBlob
Definition menus.h:628
void RenderMenubar(CUIRect Box, IClient::EClientState ClientState)
Definition menus.cpp:496
bool m_IsInit
Definition menus.h:121
void PopupConfirmDemoReplaceVideo()
Definition menus.cpp:2295
static float ms_ListheaderHeight
Definition menus.h:238
static CUi::EPopupMenuFunctionResult PopupMapPicker(void *pContext, CUIRect View, bool Active)
Definition menus_settings.cpp:3023
CUi::SColorPickerPopupContext m_ColorPickerPopupContext
Definition menus.h:59
void DemolistPopulate()
Definition menus_demo.cpp:959
static void ConchainAssetsEntities(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData)
Definition menus_settings_assets.cpp:655
void OnWindowResize() override
Definition menus.cpp:2489
std::vector< CButtonContainer > m_vButtonContainersNamePlateShow
Definition menus.h:592
@ GHOST_SORT_NONE
Definition menus.h:762
@ GHOST_SORT_TIME
Definition menus.h:764
@ GHOST_SORT_DATE
Definition menus.h:765
@ GHOST_SORT_NAME
Definition menus.h:763
bool OnCursorMove(float x, float y, IInput::ECursorType CursorType) override
Definition menus.cpp:2424
int m_SelectedIndex
Definition menus.h:526
void PopupConfirmTurnOffEditor()
Definition menus_ingame.cpp:476
static void ConchainAssetHud(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData)
Definition menus_settings_assets.cpp:715
void PopupConfirmResetTouchControls()
Definition menus_ingame.cpp:372
SUIAnimator m_aAnimatorsSettingsTab[SETTINGS_LENGTH]
Definition menus.h:726
void RenderServerbrowserStatusBox(CUIRect StatusBox, bool WasListboxItemActivated)
Definition menus_browser.cpp:482
const CMenuImage * FindMenuImage(const char *pName)
Definition menus.cpp:2681
void RenderServerbrowserCommunitiesFilter(CUIRect View)
Definition menus_browser.cpp:983
void SortGhostlist()
Definition menus_ingame.cpp:1344
bool IsActive() const
Definition menus.h:641
std::vector< CUIElement * > m_avpServerBrowserUiElements[IServerBrowser::NUM_TYPES]
Definition menus.h:528
char m_aPopupMessage[IO_MAX_PATH_LENGTH+256]
Definition menus.h:221
void RenderBackground()
Definition menus.cpp:2572
STextContainerIndex m_MotdTextContainerIndex
Definition menus.h:503
void PopupConfirmDeleteButton()
Definition menus_ingame.cpp:413
CGhostItem * GetOwnGhost()
Definition menus_ingame.cpp:1295
static float ms_ListitemAdditionalHeight
Definition menus.h:239
void RenderIngameHint()
Definition menus_ingame.cpp:1624
std::optional< std::chrono::nanoseconds > m_SkinPartsList7LastRefreshTime
Definition menus.h:69
void RenderServerbrowserInfo(CUIRect View)
Definition menus_browser.cpp:1163
static ColorRGBA ms_GuiColor
Definition menus.h:35
ColorHSLA DoButton_ColorPicker(const CUIRect *pRect, unsigned int *pHslaColor, bool Alpha)
Definition menus.cpp:441
static void LoadEntities(struct SCustomEntities *pEntitiesItem, void *pUser)
Definition menus_settings_assets.cpp:40
void RenderSettingsGeneral(CUIRect MainView)
Definition menus_settings.cpp:41
void UpdateOwnGhost(CGhostItem Item)
Definition menus_ingame.cpp:1303
static int ParticlesScan(const char *pName, int IsDir, int DirType, void *pUser)
Definition menus_settings_assets.cpp:190
char m_aNextServer[256]
Definition menus.h:177
void RenderServerbrowserToolBox(CUIRect ToolBox)
Definition menus_browser.cpp:1796
std::vector< CGhostItem > m_vGhosts
Definition menus.h:768
CLoadingState m_LoadingState
Definition menus.h:198
int64_t m_DownloadLastCheckTime
Definition menus.h:257
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:969
void FetchAllHeaders()
Definition menus_demo.cpp:1102
void FriendlistOnUpdate()
Definition menus_browser.cpp:1732
std::chrono::nanoseconds m_PopupWarningDuration
Definition menus.h:783
static void ConchainAssetEmoticons(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData)
Definition menus_settings_assets.cpp:700
Definition ui_scrollregion.h:101
Definition serverbrowser.h:69
int m_aCustomSkinColor7[protocol7::NUM_SKINPARTS]
Definition serverbrowser.h:89
bool m_aUseCustomSkinColor7[protocol7::NUM_SKINPARTS]
Definition serverbrowser.h:88
char m_aaSkin7[protocol7::NUM_SKINPARTS][protocol7::MAX_SKIN_LENGTH]
Definition serverbrowser.h:87
char m_aSkin[MAX_SKIN_LENGTH]
Definition serverbrowser.h:82
char m_aName[MAX_NAME_LENGTH]
Definition serverbrowser.h:71
char m_aClan[MAX_CLAN_LENGTH]
Definition serverbrowser.h:72
Definition serverbrowser.h:27
Definition skins7.h:53
Definition render.h:65
Definition ui.h:150
Definition ui_rect.h:12
EPopupMenuFunctionResult
Definition ui.h:310
Definition color.h:146
Definition color.h:183
EClientState
Definition client.h:55
Definition console.h:66
void(* FCommandCallback)(IResult *pResult, void *pUserData)
Definition console.h:105
ETickOffset
Definition demo.h:84
Definition serverbrowser.h:256
@ FRIEND_CLAN
Definition friends.h:25
@ FRIEND_PLAYER
Definition friends.h:26
Definition graphics.h:204
@ CORNER_ALL
Definition graphics.h:473
Definition input.h:22
ECursorType
Definition input.h:42
@ NUM_TYPES
Definition serverbrowser.h:320
CConfig g_Config
Definition config.cpp:16
@ MAX_TIMELINE_MARKERS
Definition demo.h:18
@ MAX_CLAN_LENGTH
Definition protocol.h:109
@ MAX_SKIN_LENGTH
Definition protocol.h:110
@ MAX_NAME_LENGTH
Definition protocol.h:108
unsigned bytes_be_to_uint(const unsigned char *bytes)
Definition bytes.cpp:35
constexpr auto IO_MAX_PATH_LENGTH
Definition types.h:26
int str_comp_filenames(const char *a, const char *b)
Definition str.cpp:258
int str_comp_nocase(const char *a, const char *b)
Definition str.cpp:350
int str_comp(const char *a, const char *b)
Definition str.cpp:368
int str_copy(char *dst, const char *src, int dst_size)
Definition str.cpp:18
@ MAP_IMAGE_MOD_TYPE_COUNT
Definition mapimages.h:23
@ MAX_SKIN_LENGTH
Definition protocol7.h:73
@ SKINPART_BODY
Definition protocol7.h:40
@ NUM_SKINPARTS
Definition protocol7.h:46
Definition demo.h:35
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 demo.h:56
CGhostItem()
Definition menus.h:751
bool HasFile() const
Definition menus.h:757
bool operator<(const CGhostItem &Other) const
Definition menus.h:754
bool m_Own
Definition menus.h:748
time_t m_Date
Definition menus.h:749
int m_Time
Definition menus.h:746
char m_aPlayer[MAX_NAME_LENGTH]
Definition menus.h:743
bool m_Failed
Definition menus.h:745
int m_Slot
Definition menus.h:747
bool Active() const
Definition menus.h:756
char m_aFilename[IO_MAX_PATH_LENGTH]
Definition menus.h:742
Definition menus.h:181
IGraphics::CTextureHandle m_OrgTexture
Definition menus.h:183
char m_aName[64]
Definition menus.h:182
IGraphics::CTextureHandle m_GreyTexture
Definition menus.h:184
Definition menus.h:98
IGraphics::CTextureHandle m_Texture
Definition menus.h:88
Definition menus.h:85
SEntitiesImage m_aImages[MAP_IMAGE_MOD_TYPE_COUNT]
Definition menus.h:90
Definition menus.h:110
Definition menus.h:94
Definition menus.h:106
Definition menus.h:76
bool operator<(const SCustomItem &Other) const
Definition menus.h:81
char m_aName[50]
Definition menus.h:79
IGraphics::CTextureHandle m_RenderTexture
Definition menus.h:77
Definition menus.h:102
bool m_New
Definition menus.h:549
int m_Selection
Definition menus.h:548
CMenus * m_pMenus
Definition menus.h:547
Definition demo.h:50
Definition textrender.h:175
Definition ui.h:38
@ TEXTALIGN_ML
Definition textrender.h:34
TRISTATE
Definition types.h:15
@ BUTTONFLAG_LEFT
Definition ui.h:232
vector2_base< float > vec2
Definition vmath.h:168