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 // Width of the image in DoButton_Menu, relative to the button height
48 static constexpr float BUTTON_IMAGE_WIDTH_FACTOR = 4.0f;
49
50 int DoButton_Toggle(const void *pId, int Checked, const CUIRect *pRect, bool Active, unsigned Flags = BUTTONFLAG_LEFT);
51 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), const void *pImageHotId = nullptr);
52 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);
53
54 int DoButton_CheckBox_Common(const void *pId, const char *pText, const char *pBoxText, const CUIRect *pRect, unsigned Flags);
55 int DoButton_CheckBox(const void *pId, const char *pText, int Checked, const CUIRect *pRect);
56 int DoButton_CheckBoxAutoVMarginAndSet(const void *pId, const char *pText, int *pValue, CUIRect *pRect, float VMargin);
57 int DoButton_CheckBox_Number(const void *pId, const char *pText, int Checked, const CUIRect *pRect);
58
59 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);
60
61private:
63 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);
64 ColorHSLA DoButton_ColorPicker(const CUIRect *pRect, unsigned int *pHslaColor, bool Alpha);
65
66 int DoButton_GridHeader(const void *pId, const char *pText, int Checked, const CUIRect *pRect, int Align = TEXTALIGN_ML);
67 int DoButton_Favorite(const void *pButtonId, const void *pParentId, bool Checked, const CUIRect *pRect);
68
69 std::optional<std::chrono::nanoseconds> m_SkinList7LastRefreshTime;
70 std::optional<std::chrono::nanoseconds> m_SkinPartsList7LastRefreshTime;
71
73
74 // menus_settings_assets.cpp
75public:
77 {
79
80 char m_aName[50];
81
82 bool operator<(const SCustomItem &Other) const { return str_comp(m_aName, Other.m_aName) < 0; }
83 };
84
93
94 struct SCustomGame : public SCustomItem
95 {
96 };
97
99 {
100 };
101
103 {
104 };
105
106 struct SCustomHud : public SCustomItem
107 {
108 };
109
111 {
112 };
113
114protected:
115 std::vector<SCustomEntities> m_vEntitiesList;
116 std::vector<SCustomGame> m_vGameList;
117 std::vector<SCustomEmoticon> m_vEmoticonList;
118 std::vector<SCustomParticle> m_vParticlesList;
119 std::vector<SCustomHud> m_vHudList;
120 std::vector<SCustomExtras> m_vExtrasList;
121
122 bool m_IsInit = false;
123
124 static void LoadEntities(struct SCustomEntities *pEntitiesItem, void *pUser);
125 static int EntitiesScan(const char *pName, int IsDir, int DirType, void *pUser);
126
127 static int GameScan(const char *pName, int IsDir, int DirType, void *pUser);
128 static int EmoticonsScan(const char *pName, int IsDir, int DirType, void *pUser);
129 static int ParticlesScan(const char *pName, int IsDir, int DirType, void *pUser);
130 static int HudScan(const char *pName, int IsDir, int DirType, void *pUser);
131 static int ExtrasScan(const char *pName, int IsDir, int DirType, void *pUser);
132
133 static void ConchainAssetsEntities(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData);
134 static void ConchainAssetGame(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData);
135 static void ConchainAssetParticles(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData);
136 static void ConchainAssetEmoticons(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData);
137 static void ConchainAssetHud(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData);
138 static void ConchainAssetExtras(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData);
139
140 void ClearCustomItems(int CurTab);
141
147
149
151 {
152 public:
153 bool m_Queued = false;
154 enum class EStatus
155 {
156 REFRESHING,
157 SERVER_LIST_ERROR,
158 NO_TUTORIAL_AVAILABLE,
159 };
161 bool m_TryRefresh = false;
162 bool m_TriedRefresh = false;
164 {
165 NOT_TRIED,
166 TRY,
167 WAITING_STOP,
168 WAITING_START,
169 };
171 std::chrono::nanoseconds m_StateChange = std::chrono::nanoseconds(0);
172 };
174
177
178 char m_aNextServer[256];
179
180 // images
187 std::vector<CMenuImage> m_vMenuImages;
188 static int MenuImageScan(const char *pName, int IsDir, int DirType, void *pUser);
189 const CMenuImage *FindMenuImage(const char *pName);
190
191 // loading
193 {
194 public:
195 std::chrono::nanoseconds m_LastRender{0};
198 };
200
201 //
203 char m_aMessageBody[512];
205
208
209 // generic popups
210 typedef void (CMenus::*FPopupButtonCallback)();
212 {
213 // do nothing
214 }
215 enum
216 {
217 BUTTON_CONFIRM = 0, // confirm / yes / close / ok
218 BUTTON_CANCEL, // cancel / no
220 };
221 char m_aPopupTitle[128];
223 struct
224 {
225 char m_aLabel[64];
226 int m_NextPopup;
227 FPopupButtonCallback m_pfnCallback;
229
230 void PopupMessage(const char *pTitle, const char *pMessage,
231 const char *pButtonLabel, int NextPopup = POPUP_NONE, FPopupButtonCallback pfnButtonCallback = &CMenus::DefaultButtonCallback);
232 void PopupConfirm(const char *pTitle, const char *pMessage,
233 const char *pConfirmButtonLabel, const char *pCancelButtonLabel,
234 FPopupButtonCallback pfnConfirmButtonCallback = &CMenus::DefaultButtonCallback, int ConfirmNextPopup = POPUP_NONE,
235 FPopupButtonCallback pfnCancelButtonCallback = &CMenus::DefaultButtonCallback, int CancelNextPopup = POPUP_NONE);
236
237 // some settings
238 static float ms_ButtonHeight;
241
242 // for settings
248
249 // for map download popup
253
254 // for password popup
256
257 // for call vote
263
264 // demo
265 enum
266 {
271 };
272
274 {
275 public:
281 time_t m_Date;
282 int64_t m_Size;
283
289
290 int NumMarkers() const
291 {
293 }
294
295 int Length() const
296 {
298 }
299
300 unsigned MapSize() const
301 {
303 }
304
305 bool operator<(const CDemoItem &Other) const
306 {
307 if(!str_comp(Other.m_aFilename, ".."))
308 return false;
309 if(!str_comp(m_aFilename, ".."))
310 return true;
311 if(m_IsDir && !Other.m_IsDir)
312 return true;
313 if(!m_IsDir && Other.m_IsDir)
314 return false;
315
316 const CDemoItem &Left = g_Config.m_BrDemoSortOrder ? Other : *this;
317 const CDemoItem &Right = g_Config.m_BrDemoSortOrder ? *this : Other;
318
320 return str_comp_filenames(Left.m_aFilename, Right.m_aFilename) < 0;
322 return Left.m_Date < Right.m_Date;
323
324 if(!Other.m_InfosLoaded)
325 return m_InfosLoaded;
326 if(!m_InfosLoaded)
327 return !Other.m_InfosLoaded;
328
330 return Left.NumMarkers() < Right.NumMarkers();
332 return Left.Length() < Right.Length();
333
334 // Unknown sort
335 return true;
336 }
337 };
338
344#if defined(CONF_VIDEORECORDER)
346#endif
351 int m_Speed = 4;
352 bool m_StartPaused = false;
353
354 std::chrono::nanoseconds m_DemoPopulateStartTime{0};
355
356 void DemolistOnUpdate(bool Reset);
358 static int DemolistFetchCallback(const CFsFileInfo *pInfo, int IsDir, int StorageType, void *pUser);
359
360 // friends
362 {
369 // skin info 0.6
374 // skin info 0.7
375 char m_aaSkin7[protocol7::NUM_SKINPARTS][protocol7::MAX_SKIN_LENGTH];
376 bool m_aUseCustomSkinColor7[protocol7::NUM_SKINPARTS];
377 int m_aCustomSkinColor7[protocol7::NUM_SKINPARTS];
378
379 public:
380 CFriendItem(const CFriendInfo *pFriendInfo) :
381 m_pServerInfo(nullptr),
382 m_IsPlayer(false),
383 m_IsAfk(false),
384 m_CustomSkinColors(false),
387 {
388 str_copy(m_aName, pFriendInfo->m_aName);
389 str_copy(m_aClan, pFriendInfo->m_aClan);
391 m_aSkin[0] = '\0';
392 for(int Part = 0; Part < protocol7::NUM_SKINPARTS; Part++)
393 {
394 m_aaSkin7[Part][0] = '\0';
395 m_aUseCustomSkinColor7[Part] = false;
396 m_aCustomSkinColor7[Part] = 0;
397 }
398 }
399 CFriendItem(const CServerInfo::CClient &CurrentClient, const CServerInfo *pServerInfo) :
400 m_pServerInfo(pServerInfo),
401 m_FriendState(CurrentClient.m_FriendState),
402 m_IsPlayer(CurrentClient.m_Player),
403 m_IsAfk(CurrentClient.m_Afk),
407 {
408 str_copy(m_aName, CurrentClient.m_aName);
409 str_copy(m_aClan, CurrentClient.m_aClan);
410 str_copy(m_aSkin, CurrentClient.m_aSkin);
411 for(int Part = 0; Part < protocol7::NUM_SKINPARTS; Part++)
412 {
413 str_copy(m_aaSkin7[Part], CurrentClient.m_aaSkin7[Part]);
414 m_aUseCustomSkinColor7[Part] = CurrentClient.m_aUseCustomSkinColor7[Part];
415 m_aCustomSkinColor7[Part] = CurrentClient.m_aCustomSkinColor7[Part];
416 }
417 }
418
419 const char *Name() const { return m_aName; }
420 const char *Clan() const { return m_aClan; }
421 const CServerInfo *ServerInfo() const { return m_pServerInfo; }
422 int FriendState() const { return m_FriendState; }
423 bool IsPlayer() const { return m_IsPlayer; }
424 bool IsAfk() const { return m_IsAfk; }
425 // 0.6 skin
426 const char *Skin() const { return m_aSkin; }
427 bool CustomSkinColors() const { return m_CustomSkinColors; }
430 // 0.7 skin
431 const char *Skin7(int Part) const { return m_aaSkin7[Part]; }
432 bool UseCustomSkinColor7(int Part) const { return m_aUseCustomSkinColor7[Part]; }
433 int CustomSkinColor7(int Part) const { return m_aCustomSkinColor7[Part]; }
434
435 const void *ListItemId() const { return &m_aName; }
436 const void *RemoveButtonId() const { return &m_FriendState; }
437 const void *CommunityTooltipId() const { return &m_IsPlayer; }
438 const void *SkinTooltipId() const { return &m_aSkin; }
439
440 bool operator<(const CFriendItem &Other) const
441 {
442 const int Result = str_comp_nocase(m_aName, Other.m_aName);
443 return Result < 0 || (Result == 0 && str_comp_nocase(m_aClan, Other.m_aClan) < 0);
444 }
445 };
446
447 enum
448 {
453 };
454 std::vector<CFriendItem> m_avFriends[NUM_FRIEND_TYPES];
455 const CFriendItem *m_pRemoveFriend = nullptr;
456
457 // found in menus.cpp
458 void Render();
459 void RenderPopupFullscreen(CUIRect Screen);
460 void RenderPopupConnecting(CUIRect Screen);
461 void RenderPopupLoading(CUIRect Screen);
462#if defined(CONF_VIDEORECORDER)
464#endif
465 void RenderMenubar(CUIRect Box, IClient::EClientState ClientState);
466 void RenderNews(CUIRect MainView);
467 static void ConchainBackgroundEntities(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData);
468 static void ConchainUpdateMusicState(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData);
469 void UpdateMusicState();
470
471 // found in menus_demo.cpp
475 float m_LastPauseChange = -1.0f;
476 float m_LastSpeedChange = -1.0f;
477 static constexpr int DEFAULT_SKIP_DURATION_INDEX = 3;
479 static bool DemoFilterChat(const void *pData, int Size, void *pUser);
480 bool FetchHeader(CDemoItem &Item);
481 void FetchAllHeaders();
482 void HandleDemoSeeking(float PositionToSeek, float TimeToSeek);
483 void RenderDemoPlayer(CUIRect MainView);
486 void RenderDemoBrowser(CUIRect MainView);
487 void RenderDemoBrowserList(CUIRect ListView, bool &WasListboxItemActivated);
488 void RenderDemoBrowserDetails(CUIRect DetailsView);
489 void RenderDemoBrowserButtons(CUIRect ButtonsView, bool WasListboxItemActivated);
493 static void ConchainDemoPlay(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData);
494 static void ConchainDemoSpeed(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData);
495
496 // found in menus_ingame.cpp
498 void RenderGame(CUIRect MainView);
511 void RenderPlayers(CUIRect MainView);
512 void RenderServerInfo(CUIRect MainView);
513 void RenderServerInfoMotd(CUIRect Motd);
514 void RenderServerControl(CUIRect MainView);
515 bool RenderServerControlKick(CUIRect MainView, bool FilterSpectators, bool UpdateScroll);
516 bool RenderServerControlServer(CUIRect MainView, bool UpdateScroll);
517 void RenderIngameHint();
518
519 // found in menus_browser.cpp
523 void RenderServerbrowserServerList(CUIRect View, bool &WasListboxItemActivated);
524 void RenderServerbrowserStatusBox(CUIRect StatusBox, bool WasListboxItemActivated);
529 IFilterList &Filter,
530 float ItemHeight, int MaxItems, int ItemsPerRow,
531 CScrollRegion &ScrollRegion, std::vector<unsigned char> &vItemIds,
532 bool UpdateCommunityCacheOnChange,
533 const std::function<const char *(int ItemIndex)> &GetItemName,
534 const std::function<void(int ItemIndex, CUIRect Item, const void *pItemId, bool Active)> &RenderItem);
544 static CUi::EPopupMenuFunctionResult PopupCountrySelection(void *pContext, CUIRect View, bool Active);
546 void RenderServerbrowserInfoScoreboard(CUIRect View, const CServerInfo *pSelectedServer);
548 void FriendlistOnUpdate();
552 void RenderServerbrowser(CUIRect MainView);
553 template<typename F>
554 bool PrintHighlighted(const char *pName, F &&PrintFn);
555 CTeeRenderInfo GetTeeRenderInfo(vec2 Size, const char *pSkinName, bool CustomSkinColors, int CustomSkinColorBody, int CustomSkinColorFeet) const;
556 static void ConchainFriendlistUpdate(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData);
557 static void ConchainFavoritesUpdate(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData);
558 static void ConchainCommunitiesUpdate(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData);
559 static void ConchainUiPageUpdate(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData);
560 void UpdateCommunityCache(bool Force);
561
562 // found in menus_settings.cpp
563 void RenderSettings(CUIRect MainView);
564 bool RenderHslaScrollbars(CUIRect *pRect, unsigned int *pColor, bool Alpha, float DarkestLight);
565
566 // found in menus_settings_assets.cpp
567 void RenderSettingsAssets(CUIRect MainView);
568
569 // found in menus_settings_appearance.cpp
570 void RenderSettingsAppearance(CUIRect MainView);
571 void DoLaserPreview(const CUIRect *pRect, ColorHSLA OutlineColor, ColorHSLA InnerColor, int LaserType);
572
573 // found in menus_settings_controls.cpp
574 // TODO: Change PopupConfirm to avoid using a function pointer to a CMenus
575 // member function, to move this function to CMenusSettingsControls
577
578 // found in menus_settings_credits.cpp
579 void RenderSettingsCredits(CUIRect MainView);
580
581 // found in menus_settings_ddnet.cpp
582 void RenderSettingsDDNet(CUIRect MainView);
583
584 // found in menus_settings_general.cpp
585 void RenderSettingsGeneral(CUIRect MainView);
586 void RenderThemeSelection(CUIRect MainView);
587
588 // found in menus_settings_graphics.cpp
589 void RenderSettingsGraphics(CUIRect MainView);
590
591 // found in menus_settings_language.cpp
592 void RenderLanguageSettings(CUIRect MainView);
593 bool RenderLanguageSelection(CUIRect MainView);
594
595 // found in menus_settings_player.cpp
596 void RenderSettingsPlayer(CUIRect MainView);
597
598 // found in menus_settings_sound.cpp
599 void RenderSettingsSound(CUIRect MainView);
600
601 // found in menus_settings_tee.cpp
602 void RenderSettingsTee(CUIRect MainView);
604
605 // found in menus_settings_tee7.cpp
606 void RenderSettingsTee7(CUIRect MainView);
608 void RenderSettingsTeeCustom7(CUIRect MainView);
609 void RenderSkinSelection7(CUIRect MainView);
610 void RenderSkinPartSelection7(CUIRect MainView);
611 bool m_CustomSkinMenu = false;
612 int m_TeePartSelected = protocol7::SKINPART_BODY;
618
619 std::vector<CButtonContainer> m_vButtonContainersNamePlateShow = {{}, {}, {}, {}};
620 std::vector<CButtonContainer> m_vButtonContainersNamePlateKeyPresses = {{}, {}, {}, {}};
621 std::vector<CButtonContainer> m_vButtonContainersAntiPingPlayers = {{}, {}, {}};
622
624 {
625 public:
628 };
630 {
631 public:
632 std::vector<CMapListItem> m_vMaps;
634 static int MapListFetchCallback(const CFsFileInfo *pInfo, int IsDir, int StorageType, void *pUser);
635 void MapListPopulate();
638 };
639
640 static bool CompareFilenameAscending(const CMapListItem Lhs, const CMapListItem Rhs)
641 {
642 if(str_comp(Rhs.m_aFilename, "..") == 0)
643 return false;
644 if(str_comp(Lhs.m_aFilename, "..") == 0)
645 return true;
646 if(Lhs.m_IsDirectory != Rhs.m_IsDirectory)
647 return Lhs.m_IsDirectory;
648 return str_comp_filenames(Lhs.m_aFilename, Rhs.m_aFilename) < 0;
649 }
650
651 static CUi::EPopupMenuFunctionResult PopupMapPicker(void *pContext, CUIRect View, bool Active);
652
653 void SetNeedSendInfo();
654 void UpdateColors();
655
657
658public:
659 void RenderBackground();
660
661 CMenus();
662 int Sizeof() const override { return sizeof(*this); }
663
664 void RenderLoadingDirect(const char *pCaption, const char *pContent, std::optional<float> Progress);
665 void RenderLoading(const char *pCaption, const char *pContent, int IncreaseCounter);
666 void FinishLoading();
667
668 bool IsInit() const { return m_IsInit; }
669
670 bool IsActive() const { return m_MenuActive; }
671 void SetActive(bool Active);
672
673 void OnInterfacesInit(CGameClient *pClient) override;
674 void OnInit() override;
675
676 void OnStateChange(int NewState, int OldState) override;
677 void OnWindowResize() override;
678 void OnRender() override;
679 bool OnInput(const IInput::CEvent &Event) override;
680 bool OnCursorMove(float x, float y, IInput::ECursorType CursorType) override;
681 void OnShutdown() override;
682
683 enum
684 {
702
704 };
705
706 enum
707 {
719
721 };
722
723 enum
724 {
735
737 };
738
739 enum
740 {
750
752 };
753
757
758 // DDRace
759 int DoButton_CheckBox_Tristate(const void *pId, const char *pText, TRISTATE Checked, const CUIRect *pRect);
760 std::vector<CDemoItem> m_vDemos;
761 std::vector<CDemoItem *> m_vpFilteredDemos;
762 void DemolistPopulate();
764 void DemoSeekTick(IDemoPlayer::ETickOffset TickOffset);
766
767 const char *GetCurrentDemoFolder() const { return m_aCurrentDemoFolder; }
768
769 // Ghost
771 {
774
778 bool m_Own;
779 time_t m_Date;
780
782 m_Slot(-1), m_Own(false) { m_aFilename[0] = 0; }
783
784 bool operator<(const CGhostItem &Other) const { return m_Time < Other.m_Time; }
785
786 bool Active() const { return m_Slot != -1; }
787 bool HasFile() const { return m_aFilename[0]; }
788 };
789
790 enum
791 {
796 };
797
798 std::vector<CGhostItem> m_vGhosts;
799
800 std::chrono::nanoseconds m_GhostPopulateStartTime{0};
801
802 void GhostlistPopulate();
804 void UpdateOwnGhost(CGhostItem Item);
805 void DeleteGhostItem(int Index);
806 void SortGhostlist();
807
808 bool CanDisplayWarning() const;
809
810 void PopupWarning(const char *pTopic, const char *pBody, const char *pButton, std::chrono::nanoseconds Duration);
811
812 std::chrono::nanoseconds m_PopupWarningLastTime;
813 std::chrono::nanoseconds m_PopupWarningDuration;
814
816
817 enum
818 {
820 POPUP_MESSAGE, // generic message popup (one button)
821 POPUP_CONFIRM, // generic confirmation popup (two buttons)
835 };
836
837 enum
838 {
839 // demo player states
842 };
843
844 void SetMenuPage(int NewPage);
845 void RefreshBrowserTab(bool Force);
846 void ForceRefreshLanPage();
847 void SetShowStart(bool ShowStart);
848 void ShowQuitPopup();
849 void JoinTutorial();
850 void Connect(const char *pAddress);
851
852private:
859
860 static int GhostlistFetchCallback(const CFsFileInfo *pInfo, int IsDir, int StorageType, void *pUser);
861
862 // found in menus_ingame.cpp
863 void RenderInGameNetwork(CUIRect MainView);
864 void RenderGhost(CUIRect MainView);
865};
866#endif
Definition ui.h:269
Definition community_icons.h:18
Definition community_icons.h:29
Definition component.h:165
int m_BrDemoSort
Definition config.h:391
int m_BrDemoSortOrder
Definition config.h:392
Definition types.h:65
Definition gameclient.h:151
Definition ghost.h:35
Definition lineinput.h:202
Definition lineinput.h:25
Definition menus_start.h:10
Definition menus.h:274
char m_aFilename[IO_MAX_PATH_LENGTH]
Definition menus.h:276
CDemoHeader m_Info
Definition menus.h:286
unsigned MapSize() const
Definition menus.h:300
int64_t m_Size
Definition menus.h:282
int NumMarkers() const
Definition menus.h:290
int m_StorageType
Definition menus.h:280
bool m_InfosLoaded
Definition menus.h:284
bool operator<(const CDemoItem &Other) const
Definition menus.h:305
char m_aName[IO_MAX_PATH_LENGTH]
Definition menus.h:277
bool m_IsLink
Definition menus.h:279
int Length() const
Definition menus.h:295
CTimelineMarkers m_TimelineMarkers
Definition menus.h:287
bool m_Valid
Definition menus.h:285
time_t m_Date
Definition menus.h:281
bool m_IsDir
Definition menus.h:278
CMapInfo m_MapInfo
Definition menus.h:288
Definition menus.h:362
const char * Clan() const
Definition menus.h:420
const void * CommunityTooltipId() const
Definition menus.h:437
bool m_CustomSkinColors
Definition menus.h:371
int CustomSkinColor7(int Part) const
Definition menus.h:433
int CustomSkinColorFeet() const
Definition menus.h:429
char m_aSkin[MAX_SKIN_LENGTH]
Definition menus.h:370
char m_aaSkin7[protocol7::NUM_SKINPARTS][protocol7::MAX_SKIN_LENGTH]
Definition menus.h:375
int m_CustomSkinColorBody
Definition menus.h:372
bool m_IsPlayer
Definition menus.h:367
bool m_IsAfk
Definition menus.h:368
bool IsAfk() const
Definition menus.h:424
bool operator<(const CFriendItem &Other) const
Definition menus.h:440
bool CustomSkinColors() const
Definition menus.h:427
const CServerInfo * m_pServerInfo
Definition menus.h:365
bool UseCustomSkinColor7(int Part) const
Definition menus.h:432
const void * ListItemId() const
Definition menus.h:435
int CustomSkinColorBody() const
Definition menus.h:428
int m_aCustomSkinColor7[protocol7::NUM_SKINPARTS]
Definition menus.h:377
CFriendItem(const CServerInfo::CClient &CurrentClient, const CServerInfo *pServerInfo)
Definition menus.h:399
int FriendState() const
Definition menus.h:422
int m_FriendState
Definition menus.h:366
bool m_aUseCustomSkinColor7[protocol7::NUM_SKINPARTS]
Definition menus.h:376
const char * Skin() const
Definition menus.h:426
char m_aClan[MAX_CLAN_LENGTH]
Definition menus.h:364
const CServerInfo * ServerInfo() const
Definition menus.h:421
int m_CustomSkinColorFeet
Definition menus.h:373
const char * Name() const
Definition menus.h:419
const char * Skin7(int Part) const
Definition menus.h:431
char m_aName[MAX_NAME_LENGTH]
Definition menus.h:363
bool IsPlayer() const
Definition menus.h:423
const void * SkinTooltipId() const
Definition menus.h:438
CFriendItem(const CFriendInfo *pFriendInfo)
Definition menus.h:380
const void * RemoveButtonId() const
Definition menus.h:436
Definition menus.h:151
EStatus
Definition menus.h:155
@ REFRESHING
Definition menus.h:156
EStatus m_Status
Definition menus.h:160
ELocalServerState m_LocalServerState
Definition menus.h:170
bool m_TryRefresh
Definition menus.h:161
ELocalServerState
Definition menus.h:164
std::chrono::nanoseconds m_StateChange
Definition menus.h:171
bool m_TriedRefresh
Definition menus.h:162
bool m_Queued
Definition menus.h:153
Definition menus.h:193
std::chrono::nanoseconds m_LastRender
Definition menus.h:195
int m_Current
Definition menus.h:196
int m_Total
Definition menus.h:197
Definition menus.h:624
char m_aFilename[IO_MAX_PATH_LENGTH]
Definition menus.h:626
bool m_IsDirectory
Definition menus.h:627
Definition menus.h:630
void MapListPopulate()
Definition menus_settings_ddnet.cpp:422
static int MapListFetchCallback(const CFsFileInfo *pInfo, int IsDir, int StorageType, void *pUser)
Definition menus_settings_ddnet.cpp:432
CMenus * m_pMenus
Definition menus.h:636
std::vector< CMapListItem > m_vMaps
Definition menus.h:632
char m_aCurrentMapFolder[IO_MAX_PATH_LENGTH]
Definition menus.h:633
int m_Selection
Definition menus.h:637
bool m_StartPaused
Definition menus.h:352
void RefreshFilteredDemos()
Definition menus_demo.cpp:1058
void RenderSettingsTee7(CUIRect MainView)
Definition menus_settings_tee7.cpp:27
char m_aCurrentDemoSelectionName[IO_MAX_PATH_LENGTH]
Definition menus.h:340
char m_aMessageBody[512]
Definition menus.h:203
void RenderSettingsAssets(CUIRect MainView)
Definition menus_settings_assets.cpp:354
bool PrintHighlighted(const char *pName, F &&PrintFn)
Definition menus_browser.cpp:1888
int DoButton_CheckBox_Tristate(const void *pId, const char *pText, TRISTATE Checked, const CUIRect *pRect)
Definition menus.cpp:2510
float m_DownloadSpeed
Definition menus.h:252
bool RenderServerControlServer(CUIRect MainView, bool UpdateScroll)
Definition menus_ingame.cpp:855
CTeeRenderInfo GetTeeRenderInfo(vec2 Size, const char *pSkinName, bool CustomSkinColors, int CustomSkinColorBody, int CustomSkinColorFeet) const
Definition menus_browser.cpp:1922
void RenderServerbrowserTypesFilter(CUIRect View)
Definition menus_browser.cpp:1093
bool FetchHeader(CDemoItem &Item)
Definition menus_demo.cpp:1107
void RenderNews(CUIRect MainView)
Definition menus.cpp:766
static ColorRGBA ms_ColorTabbarActiveOutgame
Definition menus.h:37
CLineInput m_PasswordInput
Definition menus.h:255
void RenderInGameNetwork(CUIRect MainView)
Definition menus_ingame.cpp:1159
CMenusStart m_MenusStart
Definition menus.h:858
int m_DeletedSkinIndex7
Definition menus.h:615
int DoButton_GridHeader(const void *pId, const char *pText, int Checked, const CUIRect *pRect, int Align=TEXTALIGN_ML)
Definition menus.cpp:252
int m_GamePage
Definition menus.h:143
void PopupConfirmDiscardTouchControlsChanges()
Definition menus_ingame.cpp:357
void PopupConfirmChangeSelectedButton()
Definition menus_ingame.cpp:445
void DefaultButtonCallback()
Definition menus.h:211
bool m_ServerBrowserShouldRevealSelection
Definition menus.h:521
void RenderSettingsPlayer(CUIRect MainView)
Definition menus_settings_player.cpp:19
bool m_PausedBeforeSeeking
Definition menus.h:473
void UpdateColors()
Definition menus.cpp:2431
friend CMenusIngameTouchControls
Definition menus.h:855
std::vector< CDemoItem > m_vDemos
Definition menus.h:760
void DemolistSelectNeighbor()
Definition menus_demo.cpp:1724
void RenderPopupLoading(CUIRect Screen)
Definition menus.cpp:2135
@ BIT_TAB_FAVORITE_COMMUNITY_3
Definition menus.h:731
@ BIG_TAB_INTERNET
Definition menus.h:726
@ BIT_TAB_FAVORITE_COMMUNITY_2
Definition menus.h:730
@ BIG_TAB_FAVORITES
Definition menus.h:728
@ BIT_TAB_FAVORITE_COMMUNITY_4
Definition menus.h:732
@ BIT_TAB_FAVORITE_COMMUNITY_1
Definition menus.h:729
@ BIG_TAB_LAN
Definition menus.h:727
@ BIG_TAB_NEWS
Definition menus.h:725
@ BIT_TAB_FAVORITE_COMMUNITY_5
Definition menus.h:733
@ BIG_TAB_DEMOS
Definition menus.h:734
@ BIG_TAB_LENGTH
Definition menus.h:736
static void ConchainUiPageUpdate(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData)
Definition menus_browser.cpp:1960
void RenderServerControl(CUIRect MainView)
Definition menus_ingame.cpp:955
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:311
static ColorRGBA ms_ColorTabbarHover
Definition menus.h:44
void RenderLanguageSettings(CUIRect MainView)
Definition menus_settings_language.cpp:18
void RenderSettingsCredits(CUIRect MainView)
Definition menus_settings_credits.cpp:9
bool m_CustomSkinMenu
Definition menus.h:611
void DeleteGhostItem(int Index)
Definition menus_ingame.cpp:1340
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:344
void RenderDemoBrowserButtons(CUIRect ButtonsView, bool WasListboxItemActivated)
Definition menus_demo.cpp:1489
static void ConchainDemoSpeed(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData)
Definition menus_demo.cpp:1773
void RefreshBrowserTab(bool Force)
Definition menus.cpp:2590
CMenusSettingsControls m_MenusSettingsControls
Definition menus.h:856
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:1766
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), const void *pImageHotId=nullptr)
Definition menus.cpp:125
void JoinTutorial()
Definition menus.cpp:2654
bool IsInit() const
Definition menus.h:668
static bool CompareFilenameAscending(const CMapListItem Lhs, const CMapListItem Rhs)
Definition menus.h:640
static void ConchainFavoritesUpdate(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData)
Definition menus_browser.cpp:1942
bool m_SkinListScrollToSelected
Definition menus.h:603
void RenderDemoBrowser(CUIRect MainView)
Definition menus_demo.cpp:1135
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:613
int DoButton_Favorite(const void *pButtonId, const void *pParentId, bool Checked, const CUIRect *pRect)
Definition menus.cpp:265
bool m_DummyNamePlatePreview
Definition menus.h:148
static ColorRGBA ms_ColorTabbarActiveIngame
Definition menus.h:40
std::vector< CFriendItem > m_avFriends[NUM_FRIEND_TYPES]
Definition menus.h:454
const char * GetCurrentDemoFolder() const
Definition menus.h:767
bool m_CreateDefaultFavoriteCommunities
Definition menus.h:175
std::vector< SCustomExtras > m_vExtrasList
Definition menus.h:120
CCommunityIcons m_CommunityIcons
Definition menus.h:853
void UpdateMusicState()
Definition menus.cpp:900
void PopupConfirmRemoveFriend()
Definition menus_browser.cpp:1739
int m_DirectionQuadContainerIndex
Definition menus.h:72
CLineInputBuffered< IO_MAX_PATH_LENGTH > m_DemoRenderInput
Definition menus.h:345
bool RenderServerControlKick(CUIRect MainView, bool FilterSpectators, bool UpdateScroll)
Definition menus_ingame.cpp:900
@ SORT_DEMONAME
Definition menus.h:267
@ SORT_DATE
Definition menus.h:270
@ SORT_LENGTH
Definition menus.h:269
@ SORT_MARKERS
Definition menus.h:268
void PopupConfirmSelectedNotVisible()
Definition menus_ingame.cpp:428
void RenderServerbrowserFilters(CUIRect View)
Definition menus_browser.cpp:677
CLineInputBuffered< IO_MAX_PATH_LENGTH > m_DemoRenameInput
Definition menus.h:341
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:869
std::vector< CDemoItem * > m_vpFilteredDemos
Definition menus.h:761
int m_CallvoteSelectedPlayer
Definition menus.h:259
void PopupConfirmPlayDemo()
Definition menus_demo.cpp:1706
void RenderServerbrowserCountriesFilter(CUIRect View)
Definition menus_browser.cpp:1068
std::chrono::nanoseconds m_PopupWarningLastTime
Definition menus.h:812
@ DEMOPLAYER_NONE
Definition menus.h:840
@ DEMOPLAYER_SLICE_SAVE
Definition menus.h:841
void OnStateChange(int NewState, int OldState) override
Definition menus.cpp:2331
void ClearCustomItems(int CurTab)
Definition menus_settings_assets.cpp:260
std::chrono::nanoseconds m_GhostPopulateStartTime
Definition menus.h:800
bool m_DemolistMultipleStorages
Definition menus.h:350
int Sizeof() const override
Definition menus.h:662
CLineInputBuffered< IO_MAX_PATH_LENGTH > m_DemoSearchInput
Definition menus.h:343
bool m_DemolistSelectedReveal
Definition menus.h:348
int DoButton_CheckBox_Common(const void *pId, const char *pText, const char *pBoxText, const CUIRect *pRect, unsigned Flags)
Definition menus.cpp:283
CUIElement m_ConnectButton
Definition menus.h:207
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:2320
SUIAnimator m_aAnimatorsSmallPage[SMALL_TAB_LENGTH]
Definition menus.h:755
void ResetServerbrowserFilters()
Definition menus_browser.cpp:834
float m_LastPauseChange
Definition menus.h:475
@ SMALL_TAB_BROWSER_INFO
Definition menus.h:748
@ SMALL_TAB_BROWSER_FILTER
Definition menus.h:747
@ SMALL_TAB_QUIT
Definition menus.h:742
@ SMALL_TAB_HOME
Definition menus.h:741
@ SMALL_TAB_EDITOR
Definition menus.h:744
@ SMALL_TAB_BROWSER_FRIENDS
Definition menus.h:749
@ SMALL_TAB_LENGTH
Definition menus.h:751
@ SMALL_TAB_SERVER
Definition menus.h:746
@ SMALL_TAB_DEMOBUTTON
Definition menus.h:745
@ SMALL_TAB_SETTINGS
Definition menus.h:743
int m_TeePartSelected
Definition menus.h:612
void RenderSkinPartSelection7(CUIRect MainView)
Definition menus_settings_tee7.cpp:386
void PopupConfirmImportTouchControlsClipboard()
Definition menus_ingame.cpp:398
void RenderGame(CUIRect MainView)
Definition menus_ingame.cpp:45
void OnRender() override
Definition menus.cpp:2379
void OnShutdown() override
Definition menus.cpp:2304
const CFriendItem * m_pRemoveFriend
Definition menus.h:455
bool RenderHslaScrollbars(CUIRect *pRect, unsigned int *pColor, bool Alpha, float DarkestLight)
Definition menus_settings.cpp:159
bool m_NeedSendinfo
Definition menus.h:246
int m_MenuPage
Definition menus.h:142
void RenderSkinSelection7(CUIRect MainView)
Definition menus_settings_tee7.cpp:300
bool m_Dummy
Definition menus.h:765
int m_SkipDurationIndex
Definition menus.h:478
void RenderSettings(CUIRect MainView)
Definition menus_settings.cpp:25
int m_DownloadLastCheckSize
Definition menus.h:251
@ SETTINGS_GRAPHICS
Definition menus.h:714
@ SETTINGS_ASSETS
Definition menus.h:717
@ SETTINGS_CREDITS
Definition menus.h:718
@ SETTINGS_PLAYER
Definition menus.h:710
@ SETTINGS_LANGUAGE
Definition menus.h:708
@ SETTINGS_GENERAL
Definition menus.h:709
@ SETTINGS_TEE
Definition menus.h:711
@ SETTINGS_LENGTH
Definition menus.h:720
@ SETTINGS_SOUND
Definition menus.h:715
@ SETTINGS_DDNET
Definition menus.h:716
@ SETTINGS_CONTROLS
Definition menus.h:713
@ SETTINGS_APPEARANCE
Definition menus.h:712
std::vector< CButtonContainer > m_vButtonContainersAntiPingPlayers
Definition menus.h:621
CUIElement m_RefreshButton
Definition menus.h:206
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:163
static int DemolistFetchCallback(const CFsFileInfo *pInfo, int IsDir, int StorageType, void *pUser)
Definition menus_demo.cpp:946
void RenderSettingsAppearance(CUIRect MainView)
Definition menus_settings_appearance.cpp:39
void PopupWarning(const char *pTopic, const char *pBody, const char *pButton, std::chrono::nanoseconds Duration)
Definition menus.cpp:941
static int MenuImageScan(const char *pName, int IsDir, int DirType, void *pUser)
Definition menus.cpp:2525
void RenderPopupConnecting(CUIRect Screen)
Definition menus.cpp:2070
void ShowQuitPopup()
Definition menus.cpp:2649
bool m_ControlPageOpening
Definition menus.h:262
void SetNeedSendInfo()
Definition menus_settings.cpp:17
void RenderDemoBrowserDetails(CUIRect DetailsView)
Definition menus_demo.cpp:1365
static ColorRGBA ms_ColorTabbarHoverIngame
Definition menus.h:41
void RenderPopupFullscreen(CUIRect Screen)
Definition menus.cpp:1174
void RenderGhost(CUIRect MainView)
Definition menus_ingame.cpp:1363
CLineInputBuffered< IO_MAX_PATH_LENGTH > m_DemoSliceInput
Definition menus.h:342
int DoButton_CheckBoxAutoVMarginAndSet(const void *pId, const char *pText, int *pValue, CUIRect *pRect, float VMargin)
Definition menus.cpp:412
void RenderServerbrowserInfoScoreboard(CUIRect View, const CServerInfo *pSelectedServer)
Definition menus_browser.cpp:1274
std::chrono::nanoseconds m_DemoPopulateStartTime
Definition menus.h:354
bool RenderLanguageSelection(CUIRect MainView)
Definition menus_settings_language.cpp:58
void ResetSettingsControls()
Definition menus_settings_controls.cpp:779
@ PAGE_FAVORITE_COMMUNITY_2
Definition menus.h:694
@ PAGE_INTERNET
Definition menus.h:690
@ PAGE_CALLVOTE
Definition menus.h:689
@ PAGE_PLAYERS
Definition menus.h:687
@ PAGE_FAVORITE_COMMUNITY_1
Definition menus.h:693
@ PAGE_GAME
Definition menus.h:686
@ PAGE_SETTINGS
Definition menus.h:699
@ PAGE_LAN
Definition menus.h:691
@ PAGE_NETWORK
Definition menus.h:700
@ PAGE_NEWS
Definition menus.h:685
@ PAGE_SERVER_INFO
Definition menus.h:688
@ PAGE_LENGTH
Definition menus.h:703
@ PAGE_FAVORITES
Definition menus.h:692
@ PAGE_DEMOS
Definition menus.h:698
@ PAGE_FAVORITE_COMMUNITY_3
Definition menus.h:695
@ PAGE_FAVORITE_COMMUNITY_5
Definition menus.h:697
@ PAGE_GHOST
Definition menus.h:701
@ PAGE_FAVORITE_COMMUNITY_4
Definition menus.h:696
static CUi::EPopupMenuFunctionResult PopupCountrySelection(void *pContext, CUIRect View, bool Active)
Definition menus_browser.cpp:1117
char m_aMessageButton[512]
Definition menus.h:204
void SetMenuPage(int NewPage)
Definition menus.cpp:2570
static int GameScan(const char *pName, int IsDir, int DirType, void *pUser)
Definition menus_settings_assets.cpp:174
int m_CallvoteSelectedOption
Definition menus.h:258
CMenusIngameTouchControls m_MenusIngameTouchControls
Definition menus.h:854
struct CMenus::@261347105360354237364205304244167270026045020136 m_aPopupButtons[NUM_BUTTONS]
bool m_DemoBrowserListInitialized
Definition menus.h:485
int m_DemoPlayerState
Definition menus.h:815
static ColorRGBA ms_ColorTabbarActive
Definition menus.h:43
void RenderDemoBrowserList(CUIRect ListView, bool &WasListboxItemActivated)
Definition menus_demo.cpp:1152
int m_DemolistSelectedIndex
Definition menus.h:347
void RenderSettingsTeeCustom7(CUIRect MainView)
Definition menus_settings_tee7.cpp:235
void PopupConfirmDeleteFolder()
Definition menus_demo.cpp:1748
void PopupConfirmDeleteDemo()
Definition menus_demo.cpp:1730
@ BUTTON_CANCEL
Definition menus.h:218
@ NUM_BUTTONS
Definition menus.h:219
@ BUTTON_CONFIRM
Definition menus.h:217
void PopupCancelChangeSelectedButton()
Definition menus_ingame.cpp:460
void ForceRefreshLanPage()
Definition menus.cpp:2639
void RenderLoading(const char *pCaption, const char *pContent, int IncreaseCounter)
Definition menus.cpp:750
void RenderLoadingDirect(const char *pCaption, const char *pContent, std::optional< float > Progress)
Definition menus.cpp:686
int m_DemolistStorageType
Definition menus.h:349
void Connect(const char *pAddress)
Definition menus_browser.cpp:657
float m_LastSpeedChange
Definition menus.h:476
std::vector< SCustomParticle > m_vParticlesList
Definition menus.h:118
void RenderDemoPlayerSliceSavePopup(CUIRect MainView)
Definition menus_demo.cpp:801
void RenderServerbrowserTabBar(CUIRect TabBar)
Definition menus_browser.cpp:1755
void GhostlistPopulate()
Definition menus_ingame.cpp:1276
std::vector< SCustomEmoticon > m_vEmoticonList
Definition menus.h:117
void RenderServerbrowser(CUIRect MainView)
Definition menus_browser.cpp:1818
friend CMenusSettingsControls
Definition menus.h:857
bool m_NeedSendDummyinfo
Definition menus.h:247
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:69
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:245
static ColorRGBA ms_ColorTabbarInactive
Definition menus.h:42
void DemoSeekTick(IDemoPlayer::ETickOffset TickOffset)
Definition menus_demo.cpp:80
@ POPUP_SAVE_SKIN
Definition menus.h:834
@ POPUP_DISCONNECTED
Definition menus.h:825
@ POPUP_PASSWORD
Definition menus.h:830
@ POPUP_JOIN_TUTORIAL
Definition menus.h:823
@ POPUP_RENDER_DONE
Definition menus.h:829
@ POPUP_QUIT
Definition menus.h:831
@ POPUP_RESTART
Definition menus.h:832
@ POPUP_FIRST_LAUNCH
Definition menus.h:822
@ POPUP_LANGUAGE
Definition menus.h:826
@ POPUP_WARNING
Definition menus.h:833
@ POPUP_NONE
Definition menus.h:819
@ POPUP_MESSAGE
Definition menus.h:820
@ POPUP_RENDER_DEMO
Definition menus.h:828
@ POPUP_POINTS
Definition menus.h:824
@ POPUP_RENAME_DEMO
Definition menus.h:827
@ POPUP_CONFIRM
Definition menus.h:821
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:1931
CLineInputBuffered< protocol7::MAX_SKIN_ARRAY_SIZE, protocol7::MAX_SKIN_LENGTH > m_SkinNameInput
Definition menus.h:616
bool m_SkinPartListNeedsUpdate
Definition menus.h:617
void OnInit() override
Definition menus.cpp:807
void RenderServerbrowserFriends(CUIRect View)
Definition menus_browser.cpp:1426
void PopupConfirmOpenWiki()
Definition menus_ingame.cpp:487
static int EmoticonsScan(const char *pName, int IsDir, int DirType, void *pUser)
Definition menus_settings_assets.cpp:182
bool m_NeedRestartGraphics
Definition menus.h:243
int DoButton_CheckBox_Number(const void *pId, const char *pText, int Checked, const CUIRect *pRect)
Definition menus.cpp:430
void RenderSettingsTee(CUIRect MainView)
Definition menus_settings_tee.cpp:27
bool m_MenuActive
Definition menus.h:146
static void ConchainCommunitiesUpdate(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData)
Definition menus_browser.cpp:1949
void UpdateCommunityCache(bool Force)
Definition menus_browser.cpp:1977
void RenderServerInfoMotd(CUIRect Motd)
Definition menus_ingame.cpp:814
static constexpr int DEFAULT_SKIP_DURATION_INDEX
Definition menus.h:477
void FinishLoading()
Definition menus.cpp:760
char m_aMessageTopic[512]
Definition menus.h:202
static int GhostlistFetchCallback(const CFsFileInfo *pInfo, int IsDir, int StorageType, void *pUser)
Definition menus_ingame.cpp:1246
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:116
void PopupCancelDeselectButton()
Definition menus_ingame.cpp:421
void PopupConfirmDisconnectDummy()
Definition menus_ingame.cpp:351
vec2 m_DemoControlsPositionOffset
Definition menus.h:472
void OnInterfacesInit(CGameClient *pClient) override
Definition menus.cpp:798
CLineInputBuffered< 64 > m_FilterInput
Definition menus.h:261
void DoLaserPreview(const CUIRect *pRect, ColorHSLA OutlineColor, ColorHSLA InnerColor, int LaserType)
Definition menus_settings_appearance.cpp:920
bool m_ShowStart
Definition menus.h:145
void RenderSettingsGraphics(CUIRect MainView)
Definition menus_settings_graphics.cpp:23
void RenderThemeSelection(CUIRect MainView)
Definition menus_settings_general.cpp:202
std::vector< CMenuImage > m_vMenuImages
Definition menus.h:187
std::vector< CButtonContainer > m_vButtonContainersNamePlateKeyPresses
Definition menus.h:620
CLineInputBuffered< VOTE_REASON_LENGTH > m_CallvoteReasonInput
Definition menus.h:260
bool m_ForceRefreshLanPage
Definition menus.h:176
void RenderServerInfo(CUIRect MainView)
Definition menus_ingame.cpp:626
bool m_NeedRestartSound
Definition menus.h:244
static ColorRGBA ms_ColorTabbarHoverOutgame
Definition menus.h:38
void SetShowStart(bool ShowStart)
Definition menus.cpp:2644
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:492
void PopupConfirmDisconnect()
Definition menus_ingame.cpp:346
int m_Speed
Definition menus.h:351
static float ms_ButtonHeight
Definition menus.h:238
std::vector< SCustomEntities > m_vEntitiesList
Definition menus.h:115
void RenderDemoPlayer(CUIRect MainView)
Definition menus_demo.cpp:88
SUIAnimator m_aAnimatorsBigPage[BIG_TAB_LENGTH]
Definition menus.h:754
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_sound.cpp:10
CJoinTutorial m_JoinTutorial
Definition menus.h:173
int m_SelectedSkinIndex7
Definition menus.h:614
CMenus()
Definition menus.cpp:62
void SetActive(bool Active)
Definition menus.cpp:2271
float m_PrevSeekAmount
Definition menus.h:474
void(CMenus::*) FPopupButtonCallback()
Definition menus.h:210
void PopupConfirmSwitchServer()
Definition menus_browser.cpp:672
void DemolistOnUpdate(bool Reset)
Definition menus_demo.cpp:1070
void Render()
Definition menus.cpp:965
int DoButton_CheckBox(const void *pId, const char *pText, int Checked, const CUIRect *pRect)
Definition menus.cpp:425
static constexpr float BUTTON_IMAGE_WIDTH_FACTOR
Definition menus.h:48
void PopupConfirmDeleteSkin7()
Definition menus_settings_tee7.cpp:222
static void ConchainUpdateMusicState(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData)
Definition menus.cpp:892
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:881
char m_aCurrentDemoFolder[IO_MAX_PATH_LENGTH]
Definition menus.h:339
@ FRIEND_OFF
Definition menus.h:451
@ FRIEND_PLAYER_ON
Definition menus.h:449
@ NUM_FRIEND_TYPES
Definition menus.h:452
@ FRIEND_CLAN_ON
Definition menus.h:450
std::vector< SCustomHud > m_vHudList
Definition menus.h:119
void RenderSettingsDDNet(CUIRect MainView)
Definition menus_settings_ddnet.cpp:26
void PopupMessage(const char *pTitle, const char *pMessage, const char *pButtonLabel, int NextPopup=POPUP_NONE, FPopupButtonCallback pfnButtonCallback=&CMenus::DefaultButtonCallback)
Definition menus.cpp:911
char m_aPopupTitle[128]
Definition menus.h:221
bool CanDisplayWarning() const
Definition menus.cpp:960
int m_Popup
Definition menus.h:144
IGraphics::CTextureHandle m_TextureBlob
Definition menus.h:656
void RenderMenubar(CUIRect Box, IClient::EClientState ClientState)
Definition menus.cpp:437
bool m_IsInit
Definition menus.h:122
void PopupConfirmDemoReplaceVideo()
Definition menus.cpp:2252
static float ms_ListheaderHeight
Definition menus.h:239
static CUi::EPopupMenuFunctionResult PopupMapPicker(void *pContext, CUIRect View, bool Active)
Definition menus_settings_ddnet.cpp:345
CUi::SColorPickerPopupContext m_ColorPickerPopupContext
Definition menus.h:62
void DemolistPopulate()
Definition menus_demo.cpp:983
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:2374
std::vector< CButtonContainer > m_vButtonContainersNamePlateShow
Definition menus.h:619
@ GHOST_SORT_NONE
Definition menus.h:792
@ GHOST_SORT_TIME
Definition menus.h:794
@ GHOST_SORT_DATE
Definition menus.h:795
@ GHOST_SORT_NAME
Definition menus.h:793
bool OnCursorMove(float x, float y, IInput::ECursorType CursorType) override
Definition menus.cpp:2309
int m_SelectedIndex
Definition menus.h:520
void PopupConfirmTurnOffEditor()
Definition menus_ingame.cpp:477
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:373
SUIAnimator m_aAnimatorsSettingsTab[SETTINGS_LENGTH]
Definition menus.h:756
void RenderServerbrowserStatusBox(CUIRect StatusBox, bool WasListboxItemActivated)
Definition menus_browser.cpp:482
const CMenuImage * FindMenuImage(const char *pName)
Definition menus.cpp:2562
void RenderServerbrowserCommunitiesFilter(CUIRect View)
Definition menus_browser.cpp:985
void SortGhostlist()
Definition menus_ingame.cpp:1347
bool IsActive() const
Definition menus.h:670
std::vector< CUIElement * > m_avpServerBrowserUiElements[IServerBrowser::NUM_TYPES]
Definition menus.h:522
char m_aPopupMessage[IO_MAX_PATH_LENGTH+256]
Definition menus.h:222
void RenderBackground()
Definition menus.cpp:2457
STextContainerIndex m_MotdTextContainerIndex
Definition menus.h:497
void PopupConfirmDeleteButton()
Definition menus_ingame.cpp:414
CGhostItem * GetOwnGhost()
Definition menus_ingame.cpp:1298
static float ms_ListitemAdditionalHeight
Definition menus.h:240
void RenderIngameHint()
Definition menus_ingame.cpp:1629
std::optional< std::chrono::nanoseconds > m_SkinPartsList7LastRefreshTime
Definition menus.h:70
void RenderServerbrowserInfo(CUIRect View)
Definition menus_browser.cpp:1165
static ColorRGBA ms_GuiColor
Definition menus.h:35
ColorHSLA DoButton_ColorPicker(const CUIRect *pRect, unsigned int *pHslaColor, bool Alpha)
Definition menus.cpp:382
static void LoadEntities(struct SCustomEntities *pEntitiesItem, void *pUser)
Definition menus_settings_assets.cpp:40
void RenderSettingsGeneral(CUIRect MainView)
Definition menus_settings_general.cpp:17
void UpdateOwnGhost(CGhostItem Item)
Definition menus_ingame.cpp:1306
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:178
void RenderServerbrowserToolBox(CUIRect ToolBox)
Definition menus_browser.cpp:1798
std::vector< CGhostItem > m_vGhosts
Definition menus.h:798
CLoadingState m_LoadingState
Definition menus.h:199
int64_t m_DownloadLastCheckTime
Definition menus.h:250
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:924
void FetchAllHeaders()
Definition menus_demo.cpp:1126
void FriendlistOnUpdate()
Definition menus_browser.cpp:1734
std::chrono::nanoseconds m_PopupWarningDuration
Definition menus.h:813
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:342
Definition color.h:146
Definition color.h:183
constexpr ColorRGBA()=default
EClientState
Definition client.h:55
Definition console.h:66
void(*) FCommandCallback(IResult *pResult, void *pUserData)
Definition console.h:107
ETickOffset
Definition demo.h:84
Definition serverbrowser.h:256
@ FRIEND_CLAN
Definition friends.h:25
@ FRIEND_PLAYER
Definition friends.h:26
Definition graphics.h:261
@ CORNER_ALL
Definition graphics.h:542
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
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:261
int str_comp_nocase(const char *a, const char *b)
Definition str.cpp:355
int str_comp(const char *a, const char *b)
Definition str.cpp:373
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
@ MAX_CLAN_LENGTH
Definition protocol.h:110
@ MAX_SKIN_LENGTH
Definition protocol.h:111
@ MAX_NAME_LENGTH
Definition protocol.h:109
Definition demo.h:35
unsigned char m_aLength[sizeof(int32_t)]
Definition demo.h:43
unsigned char m_aMapSize[sizeof(int32_t)]
Definition demo.h:40
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:781
bool HasFile() const
Definition menus.h:787
bool operator<(const CGhostItem &Other) const
Definition menus.h:784
bool m_Own
Definition menus.h:778
time_t m_Date
Definition menus.h:779
int m_Time
Definition menus.h:776
char m_aPlayer[MAX_NAME_LENGTH]
Definition menus.h:773
bool m_Failed
Definition menus.h:775
int m_Slot
Definition menus.h:777
bool Active() const
Definition menus.h:786
char m_aFilename[IO_MAX_PATH_LENGTH]
Definition menus.h:772
Definition menus.h:182
IGraphics::CTextureHandle m_OrgTexture
Definition menus.h:184
char m_aName[64]
Definition menus.h:183
IGraphics::CTextureHandle m_GreyTexture
Definition menus.h:185
Definition menus.h:99
IGraphics::CTextureHandle m_Texture
Definition menus.h:89
Definition menus.h:86
SEntitiesImage m_aImages[MAP_IMAGE_MOD_TYPE_COUNT]
Definition menus.h:91
Definition menus.h:111
Definition menus.h:95
Definition menus.h:107
Definition menus.h:77
bool operator<(const SCustomItem &Other) const
Definition menus.h:82
char m_aName[50]
Definition menus.h:80
IGraphics::CTextureHandle m_RenderTexture
Definition menus.h:78
Definition menus.h:103
bool m_New
Definition menus.h:542
int m_Selection
Definition menus.h:541
CMenus * m_pMenus
Definition menus.h:540
Definition demo.h:50
unsigned char m_aNumTimelineMarkers[sizeof(int32_t)]
Definition demo.h:51
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