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
13{
14 MACRO_INTERFACE("menu_enginemap")
15};
16
17// themes
18class CTheme
19{
20public:
21 CTheme(const char *pName, bool HasDay, bool HasNight) :
22 m_Name(pName), m_HasDay(HasDay), m_HasNight(HasNight) {}
23
24 std::string m_Name;
28 bool operator<(const CTheme &Other) const { return m_Name < Other.m_Name; }
29};
30
32{
33 std::chrono::nanoseconds m_ThemeScanStartTime{0};
34
35public:
36 enum
37 {
64
66 };
67
68 enum
69 {
73 };
74
75 enum
76 {
78 };
79
80private:
82
84
86 std::array<vec2, NUM_POS> m_aPositions;
92
95
96 void ResetPositions();
97
98 void LoadThemeIcon(CTheme &Theme);
99 static int ThemeScan(const char *pName, int IsDir, int DirType, void *pUser);
100
101 std::vector<CTheme> m_vThemes;
102
103public:
105 int Sizeof() const override { return sizeof(*this); }
106
107 void OnInterfacesInit(CGameClient *pClient) override;
108 void OnInit() override;
109 void OnMapLoad() override;
110 void OnRender() override;
111
112 void LoadMenuBackground(bool HasDayHint = true, bool HasNightHint = true);
113
114 bool Render();
115 bool IsLoading() const { return m_Loading; }
116
117 class CCamera *GetCurCamera() override;
118
119 void ChangePosition(int PositionNumber);
120
121 std::vector<CTheme> &GetThemes();
122};
123
124std::array<vec2, CMenuBackground::NUM_POS> GenerateMenuBackgroundPositions();
125
126#endif
Definition background.h:17
CBackground(ERenderType MapType=ERenderType::RENDERTYPE_BACKGROUND_FORCE, bool OnlineOnly=true)
Definition background.cpp:14
Definition camera.h:14
Definition gameclient.h:137
void ResetPositions()
Definition menu_background.cpp:97
bool IsLoading() const
Definition menu_background.h:115
void OnRender() override
Definition menu_background.cpp:304
vec2 m_AnimationStartPos
Definition menu_background.h:89
std::array< vec2, NUM_POS > m_aPositions
Definition menu_background.h:86
CCamera m_Camera
Definition menu_background.h:81
int m_CurrentPosition
Definition menu_background.h:87
bool Render()
Definition menu_background.cpp:308
std::chrono::nanoseconds m_ThemeScanStartTime
Definition menu_background.h:33
void OnInit() override
Definition menu_background.cpp:82
std::vector< CTheme > & GetThemes()
Definition menu_background.cpp:385
int Sizeof() const override
Definition menu_background.h:105
void OnMapLoad() override
Definition menu_background.cpp:300
std::vector< CTheme > m_vThemes
Definition menu_background.h:101
bool m_IsInit
Definition menu_background.h:93
vec2 m_CurrentDirection
Definition menu_background.h:88
float m_MoveTime
Definition menu_background.h:91
CBackgroundEngineMap * CreateBGMap() override
Definition menu_background.cpp:70
@ POS_BROWSER_LAN
Definition menu_background.h:54
@ POS_RESERVED0
Definition menu_background.h:61
@ POS_DEMOS
Definition menu_background.h:39
@ POS_SETTINGS_TEE
Definition menu_background.h:44
@ POS_SETTINGS_DDNET
Definition menu_background.h:49
@ POS_RESERVED2
Definition menu_background.h:63
@ POS_RESERVED1
Definition menu_background.h:62
@ POS_SETTINGS_APPEARANCE
Definition menu_background.h:45
@ POS_SETTINGS_SOUND
Definition menu_background.h:48
@ POS_SETTINGS_CONTROLS
Definition menu_background.h:46
@ POS_BROWSER_CUSTOM0
Definition menu_background.h:56
@ POS_BROWSER_FAVORITES
Definition menu_background.h:55
@ POS_SETTINGS_LANGUAGE
Definition menu_background.h:41
@ POS_NEWS
Definition menu_background.h:40
@ POS_SETTINGS_GRAPHICS
Definition menu_background.h:47
@ POS_BROWSER_CUSTOM1
Definition menu_background.h:57
@ POS_SETTINGS_RESERVED0
Definition menu_background.h:51
@ POS_SETTINGS_GENERAL
Definition menu_background.h:42
@ POS_BROWSER_CUSTOM2
Definition menu_background.h:58
@ POS_SETTINGS_PLAYER
Definition menu_background.h:43
@ POS_START
Definition menu_background.h:38
@ POS_BROWSER_INTERNET
Definition menu_background.h:53
@ POS_SETTINGS_ASSETS
Definition menu_background.h:50
@ POS_BROWSER_CUSTOM4
Definition menu_background.h:60
@ POS_BROWSER_CUSTOM3
Definition menu_background.h:59
@ POS_SETTINGS_RESERVED1
Definition menu_background.h:52
@ NUM_POS
Definition menu_background.h:65
void LoadMenuBackground(bool HasDayHint=true, bool HasNightHint=true)
Definition menu_background.cpp:171
CMenuBackground()
Definition menu_background.cpp:52
class CCamera * GetCurCamera() override
Definition menu_background.cpp:360
void OnInterfacesInit(CGameClient *pClient) override
Definition menu_background.cpp:75
static int ThemeScan(const char *pName, int IsDir, int DirType, void *pUser)
Definition menu_background.cpp:116
bool m_Loading
Definition menu_background.h:94
void ChangePosition(int PositionNumber)
Definition menu_background.cpp:365
@ POS_SETTINGS_RESERVED_NUM
Definition menu_background.h:71
@ POS_BROWSER_CUSTOM_NUM
Definition menu_background.h:70
@ POS_RESERVED_NUM
Definition menu_background.h:72
bool m_ChangedPosition
Definition menu_background.h:90
vec2 m_RotationCenter
Definition menu_background.h:85
@ PREDEFINED_THEMES_COUNT
Definition menu_background.h:77
void LoadThemeIcon(CTheme &Theme)
Definition menu_background.cpp:102
Definition menu_background.h:13
Definition menu_background.h:19
bool m_HasDay
Definition menu_background.h:25
IGraphics::CTextureHandle m_IconTexture
Definition menu_background.h:27
CTheme(const char *pName, bool HasDay, bool HasNight)
Definition menu_background.h:21
bool operator<(const CTheme &Other) const
Definition menu_background.h:28
bool m_HasNight
Definition menu_background.h:26
std::string m_Name
Definition menu_background.h:24
Definition graphics.h:206
#define MACRO_INTERFACE(Name)
Definition kernel.h:25
std::array< vec2, CMenuBackground::NUM_POS > GenerateMenuBackgroundPositions()
Definition menu_background.cpp:22
vector2_base< float > vec2
Definition vmath.h:161