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) :
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
70 };
71
72 enum
73 {
75 };
76
77private:
79
81
83 std::array<vec2, NUM_POS> m_aPositions;
89
92
93 void ResetPositions();
94
96 static int ThemeScan(const char *pName, int IsDir, int DirType, void *pUser);
97
98 std::vector<CTheme> m_vThemes;
99
100public:
102 int Sizeof() const override { return sizeof(*this); }
103
104 void OnInterfacesInit(CGameClient *pClient) override;
105 void OnInit() override;
106 void OnMapLoad() override;
107 void OnRender() override;
108
109 void LoadMenuBackground(bool HasDayHint = true, bool HasNightHint = true);
110
111 bool Render();
112 bool IsLoading() const { return m_Loading; }
113
114 class CCamera *GetCurCamera() override;
115
117
118 std::vector<CTheme> &GetThemes();
119};
120
121std::array<vec2, CMenuBackground::NUM_POS> GenerateMenuBackgroundPositions();
122
123#endif
Definition background.h:17
Definition background.h:22
Definition camera.h:14
Definition gameclient.h:132
Definition menu_background.h:32
void ResetPositions()
Definition menu_background.cpp:99
bool IsLoading() const
Definition menu_background.h:112
void OnRender() override
Definition menu_background.cpp:306
vec2 m_AnimationStartPos
Definition menu_background.h:86
std::array< vec2, NUM_POS > m_aPositions
Definition menu_background.h:83
CCamera m_Camera
Definition menu_background.h:78
int m_CurrentPosition
Definition menu_background.h:84
bool Render()
Definition menu_background.cpp:310
std::chrono::nanoseconds m_ThemeScanStartTime
Definition menu_background.h:33
void OnInit() override
Definition menu_background.cpp:84
@ PREDEFINED_THEMES_COUNT
Definition menu_background.h:74
std::vector< CTheme > & GetThemes()
Definition menu_background.cpp:387
int Sizeof() const override
Definition menu_background.h:102
void OnMapLoad() override
Definition menu_background.cpp:302
std::vector< CTheme > m_vThemes
Definition menu_background.h:98
bool m_IsInit
Definition menu_background.h:90
vec2 m_CurrentDirection
Definition menu_background.h:85
float m_MoveTime
Definition menu_background.h:88
CBackgroundEngineMap * CreateBGMap() override
Definition menu_background.cpp:72
@ 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_SETTINGS_RESERVED_NUM
Definition menu_background.h:68
@ 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_BROWSER_CUSTOM_NUM
Definition menu_background.h:67
@ 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_RESERVED_NUM
Definition menu_background.h:69
@ 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:173
CMenuBackground()
Definition menu_background.cpp:54
class CCamera * GetCurCamera() override
Definition menu_background.cpp:362
void OnInterfacesInit(CGameClient *pClient) override
Definition menu_background.cpp:77
static int ThemeScan(const char *pName, int IsDir, int DirType, void *pUser)
Definition menu_background.cpp:118
bool m_Loading
Definition menu_background.h:91
void ChangePosition(int PositionNumber)
Definition menu_background.cpp:367
bool m_ChangedPosition
Definition menu_background.h:87
vec2 m_RotationCenter
Definition menu_background.h:82
void LoadThemeIcon(CTheme &Theme)
Definition menu_background.cpp:104
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:205
Definition vmath.h:15
#define MACRO_INTERFACE(Name)
Definition kernel.h:25
std::array< vec2, CMenuBackground::NUM_POS > GenerateMenuBackgroundPositions()
Definition menu_background.cpp:24
vector2_base< float > vec2
Definition vmath.h:161