DDraceNetwork Documentation
Loading...
Searching...
No Matches
menu_background.h
Go to the documentation of this file.
1#ifndef GAME_CLIENT_COMPONENTS_MENU_BACKGROUND_H
2#define GAME_CLIENT_COMPONENTS_MENU_BACKGROUND_H
3
6
7#include <array>
8#include <chrono>
9#include <string>
10#include <vector>
11
12// themes
13class CTheme
14{
15public:
16 CTheme(const char *pName, bool HasDay, bool HasNight) :
17 m_Name(pName), m_HasDay(HasDay), m_HasNight(HasNight) {}
18
19 std::string m_Name;
23 bool operator<(const CTheme &Other) const { return m_Name < Other.m_Name; }
24};
25
27{
28 std::chrono::nanoseconds m_ThemeScanStartTime{0};
29
30public:
31 enum
32 {
59
61 };
62
63 enum
64 {
68 };
69
70 enum
71 {
73 };
74
75private:
77
79 std::array<vec2, NUM_POS> m_aPositions;
85
88
89 void ResetPositions();
90
91 void LoadThemeIcon(CTheme &Theme);
92 static int ThemeScan(const char *pName, int IsDir, int DirType, void *pUser);
93
94 std::vector<CTheme> m_vThemes;
95
96public:
98 int Sizeof() const override { return sizeof(*this); }
99
100 void OnInterfacesInit(CGameClient *pClient) override;
101 void OnInit() override;
102 void OnMapLoad() override;
103 void OnRender() override;
104
105 void LoadMenuBackground(bool HasDayHint = true, bool HasNightHint = true);
106
107 bool Render();
108 bool IsLoading() const { return m_Loading; }
109
110 class CCamera *GetCurCamera() override;
111
112 void ChangePosition(int PositionNumber);
113
114 std::vector<CTheme> &GetThemes();
115};
116
117std::array<vec2, CMenuBackground::NUM_POS> GenerateMenuBackgroundPositions();
118
119#endif
CBackground(ERenderType MapType=ERenderType::RENDERTYPE_BACKGROUND_FORCE, bool OnlineOnly=true)
Definition background.cpp:14
Definition camera.h:14
Definition gameclient.h:142
void ResetPositions()
Definition menu_background.cpp:91
bool IsLoading() const
Definition menu_background.h:108
void OnRender() override
Definition menu_background.cpp:298
vec2 m_AnimationStartPos
Definition menu_background.h:82
std::array< vec2, NUM_POS > m_aPositions
Definition menu_background.h:79
CCamera m_Camera
Definition menu_background.h:76
int m_CurrentPosition
Definition menu_background.h:80
bool Render()
Definition menu_background.cpp:302
std::chrono::nanoseconds m_ThemeScanStartTime
Definition menu_background.h:28
void OnInit() override
Definition menu_background.cpp:77
std::vector< CTheme > & GetThemes()
Definition menu_background.cpp:379
int Sizeof() const override
Definition menu_background.h:98
void OnMapLoad() override
Definition menu_background.cpp:294
std::vector< CTheme > m_vThemes
Definition menu_background.h:94
bool m_IsInit
Definition menu_background.h:86
vec2 m_CurrentDirection
Definition menu_background.h:81
float m_MoveTime
Definition menu_background.h:84
@ POS_BROWSER_LAN
Definition menu_background.h:49
@ POS_RESERVED0
Definition menu_background.h:56
@ POS_DEMOS
Definition menu_background.h:34
@ POS_SETTINGS_TEE
Definition menu_background.h:39
@ POS_SETTINGS_DDNET
Definition menu_background.h:44
@ POS_RESERVED2
Definition menu_background.h:58
@ POS_RESERVED1
Definition menu_background.h:57
@ POS_SETTINGS_APPEARANCE
Definition menu_background.h:40
@ POS_SETTINGS_SOUND
Definition menu_background.h:43
@ POS_SETTINGS_CONTROLS
Definition menu_background.h:41
@ POS_BROWSER_CUSTOM0
Definition menu_background.h:51
@ POS_BROWSER_FAVORITES
Definition menu_background.h:50
@ POS_SETTINGS_LANGUAGE
Definition menu_background.h:36
@ POS_NEWS
Definition menu_background.h:35
@ POS_SETTINGS_GRAPHICS
Definition menu_background.h:42
@ POS_BROWSER_CUSTOM1
Definition menu_background.h:52
@ POS_SETTINGS_RESERVED0
Definition menu_background.h:46
@ POS_SETTINGS_GENERAL
Definition menu_background.h:37
@ POS_BROWSER_CUSTOM2
Definition menu_background.h:53
@ POS_SETTINGS_PLAYER
Definition menu_background.h:38
@ POS_START
Definition menu_background.h:33
@ POS_BROWSER_INTERNET
Definition menu_background.h:48
@ POS_SETTINGS_ASSETS
Definition menu_background.h:45
@ POS_BROWSER_CUSTOM4
Definition menu_background.h:55
@ POS_BROWSER_CUSTOM3
Definition menu_background.h:54
@ POS_SETTINGS_RESERVED1
Definition menu_background.h:47
@ NUM_POS
Definition menu_background.h:60
void LoadMenuBackground(bool HasDayHint=true, bool HasNightHint=true)
Definition menu_background.cpp:165
CMenuBackground()
Definition menu_background.cpp:52
class CCamera * GetCurCamera() override
Definition menu_background.cpp:354
void OnInterfacesInit(CGameClient *pClient) override
Definition menu_background.cpp:70
static int ThemeScan(const char *pName, int IsDir, int DirType, void *pUser)
Definition menu_background.cpp:110
bool m_Loading
Definition menu_background.h:87
void ChangePosition(int PositionNumber)
Definition menu_background.cpp:359
@ POS_SETTINGS_RESERVED_NUM
Definition menu_background.h:66
@ POS_BROWSER_CUSTOM_NUM
Definition menu_background.h:65
@ POS_RESERVED_NUM
Definition menu_background.h:67
bool m_ChangedPosition
Definition menu_background.h:83
vec2 m_RotationCenter
Definition menu_background.h:78
@ PREDEFINED_THEMES_COUNT
Definition menu_background.h:72
void LoadThemeIcon(CTheme &Theme)
Definition menu_background.cpp:96
Definition menu_background.h:14
bool m_HasDay
Definition menu_background.h:20
IGraphics::CTextureHandle m_IconTexture
Definition menu_background.h:22
CTheme(const char *pName, bool HasDay, bool HasNight)
Definition menu_background.h:16
bool operator<(const CTheme &Other) const
Definition menu_background.h:23
bool m_HasNight
Definition menu_background.h:21
std::string m_Name
Definition menu_background.h:19
Definition graphics.h:206
std::array< vec2, CMenuBackground::NUM_POS > GenerateMenuBackgroundPositions()
Definition menu_background.cpp:22
vector2_base< float > vec2
Definition vmath.h:161