DDraceNetwork Documentation
Loading...
Searching...
No Matches
community_icons.h
Go to the documentation of this file.
1
#ifndef GAME_CLIENT_COMPONENTS_COMMUNITY_ICONS_H
2
#define GAME_CLIENT_COMPONENTS_COMMUNITY_ICONS_H
3
4
#include <
base/hash.h
>
5
6
#include <
engine/graphics.h
>
7
#include <
engine/serverbrowser.h
>
8
#include <
engine/shared/http.h
>
9
#include <
engine/shared/jobs.h
>
10
11
#include <
game/client/component.h
>
12
#include <
game/client/ui_rect.h
>
13
14
#include <optional>
15
16
class
CCommunityIcon
17
{
18
friend
class
CCommunityIcons
;
19
20
private
:
21
char
m_aCommunityId
[
CServerInfo::MAX_COMMUNITY_ID_LENGTH
];
22
SHA256_DIGEST
m_Sha256
;
23
IGraphics::CTextureHandle
m_OrgTexture
;
24
IGraphics::CTextureHandle
m_GreyTexture
;
25
};
26
27
class
CCommunityIcons
:
public
CComponentInterfaces
28
{
29
public
:
30
const
CCommunityIcon
*
Find
(
const
char
*pCommunityId);
31
void
Render
(
const
CCommunityIcon
*pIcon,
CUIRect
Rect,
bool
Active);
32
void
Load
();
33
void
Update
();
34
void
Shutdown
();
35
36
private
:
37
class
CAbstractCommunityIconJob
38
{
39
protected
:
40
CCommunityIcons
*
m_pCommunityIcons
;
41
char
m_aCommunityId
[
CServerInfo::MAX_COMMUNITY_ID_LENGTH
];
42
char
m_aPath
[
IO_MAX_PATH_LENGTH
];
43
int
m_StorageType
;
44
bool
m_Success
=
false
;
45
SHA256_DIGEST
m_Sha256
;
46
47
CAbstractCommunityIconJob
(
CCommunityIcons
*pCommunityIcons,
const
char
*pCommunityId,
int
StorageType);
48
49
public
:
50
const
char
*
CommunityId
()
const
{
return
m_aCommunityId
; }
51
bool
Success
()
const
{
return
m_Success
; }
52
const
SHA256_DIGEST
&
Sha256
()
const
{
return
m_Sha256
; }
53
virtual
~CAbstractCommunityIconJob
() =
default
;
54
};
55
56
class
CCommunityIconLoadJob
:
public
IJob
,
public
CAbstractCommunityIconJob
57
{
58
CImageInfo
m_ImageInfo
;
59
CImageInfo
m_ImageInfoGrayscale
;
60
61
protected
:
62
void
Run
()
override
;
63
64
public
:
65
CCommunityIconLoadJob
(
CCommunityIcons
*pCommunityIcons,
const
char
*pCommunityId,
int
StorageType);
66
~CCommunityIconLoadJob
()
override
;
67
68
CImageInfo
&
ImageInfo
() {
return
m_ImageInfo
; }
69
CImageInfo
&
ImageInfoGrayscale
() {
return
m_ImageInfoGrayscale
; }
70
};
71
72
class
CCommunityIconDownloadJob
:
public
CHttpRequest
,
public
CAbstractCommunityIconJob
73
{
74
public
:
75
CCommunityIconDownloadJob
(
CCommunityIcons
*pCommunityIcons,
const
char
*pCommunityId,
const
char
*pUrl,
const
SHA256_DIGEST
&
Sha256
);
76
};
77
78
std::vector<CCommunityIcon>
m_vCommunityIcons
;
79
std::deque<std::shared_ptr<CCommunityIconLoadJob>>
m_CommunityIconLoadJobs
;
80
std::deque<std::shared_ptr<CCommunityIconDownloadJob>>
m_CommunityIconDownloadJobs
;
81
std::optional<SHA256_DIGEST>
m_CommunityIconsInfoSha256
;
82
static
int
FileScan
(
const
char
*pName,
int
IsDir,
int
DirType,
void
*pUser);
83
bool
LoadFile
(
const
char
*pPath,
int
DirType,
CImageInfo
&Info,
CImageInfo
&InfoGrayscale,
SHA256_DIGEST
&Sha256);
84
void
LoadFinish
(
const
char
*pCommunityId,
CImageInfo
&Info,
CImageInfo
&InfoGrayscale,
const
SHA256_DIGEST
&Sha256);
85
};
86
87
#endif
CCommunityIcon
Definition
community_icons.h:17
CCommunityIcon::m_Sha256
SHA256_DIGEST m_Sha256
Definition
community_icons.h:22
CCommunityIcon::m_aCommunityId
char m_aCommunityId[CServerInfo::MAX_COMMUNITY_ID_LENGTH]
Definition
community_icons.h:21
CCommunityIcon::m_OrgTexture
IGraphics::CTextureHandle m_OrgTexture
Definition
community_icons.h:23
CCommunityIcon::m_GreyTexture
IGraphics::CTextureHandle m_GreyTexture
Definition
community_icons.h:24
CCommunityIcon::CCommunityIcons
friend class CCommunityIcons
Definition
community_icons.h:18
CCommunityIcons::CAbstractCommunityIconJob::m_aCommunityId
char m_aCommunityId[CServerInfo::MAX_COMMUNITY_ID_LENGTH]
Definition
community_icons.h:41
CCommunityIcons::CAbstractCommunityIconJob::m_StorageType
int m_StorageType
Definition
community_icons.h:43
CCommunityIcons::CAbstractCommunityIconJob::Success
bool Success() const
Definition
community_icons.h:51
CCommunityIcons::CAbstractCommunityIconJob::CommunityId
const char * CommunityId() const
Definition
community_icons.h:50
CCommunityIcons::CAbstractCommunityIconJob::m_Success
bool m_Success
Definition
community_icons.h:44
CCommunityIcons::CAbstractCommunityIconJob::m_aPath
char m_aPath[IO_MAX_PATH_LENGTH]
Definition
community_icons.h:42
CCommunityIcons::CAbstractCommunityIconJob::m_pCommunityIcons
CCommunityIcons * m_pCommunityIcons
Definition
community_icons.h:40
CCommunityIcons::CAbstractCommunityIconJob::m_Sha256
SHA256_DIGEST m_Sha256
Definition
community_icons.h:45
CCommunityIcons::CAbstractCommunityIconJob::~CAbstractCommunityIconJob
virtual ~CAbstractCommunityIconJob()=default
CCommunityIcons::CAbstractCommunityIconJob::CAbstractCommunityIconJob
CAbstractCommunityIconJob(CCommunityIcons *pCommunityIcons, const char *pCommunityId, int StorageType)
Definition
community_icons.cpp:9
CCommunityIcons::CAbstractCommunityIconJob::Sha256
const SHA256_DIGEST & Sha256() const
Definition
community_icons.h:52
CCommunityIcons::CCommunityIconDownloadJob::CCommunityIconDownloadJob
CCommunityIconDownloadJob(CCommunityIcons *pCommunityIcons, const char *pCommunityId, const char *pUrl, const SHA256_DIGEST &Sha256)
Definition
community_icons.cpp:17
CCommunityIcons::CCommunityIconLoadJob::ImageInfoGrayscale
CImageInfo & ImageInfoGrayscale()
Definition
community_icons.h:69
CCommunityIcons::CCommunityIconLoadJob::CCommunityIconLoadJob
CCommunityIconLoadJob(CCommunityIcons *pCommunityIcons, const char *pCommunityId, int StorageType)
Definition
community_icons.cpp:32
CCommunityIcons::CCommunityIconLoadJob::Run
void Run() override
Definition
community_icons.cpp:27
CCommunityIcons::CCommunityIconLoadJob::ImageInfo
CImageInfo & ImageInfo()
Definition
community_icons.h:68
CCommunityIcons::CCommunityIconLoadJob::~CCommunityIconLoadJob
~CCommunityIconLoadJob() override
Definition
community_icons.cpp:38
CCommunityIcons::CCommunityIconLoadJob::m_ImageInfoGrayscale
CImageInfo m_ImageInfoGrayscale
Definition
community_icons.h:59
CCommunityIcons::CCommunityIconLoadJob::m_ImageInfo
CImageInfo m_ImageInfo
Definition
community_icons.h:58
CCommunityIcons
Definition
community_icons.h:28
CCommunityIcons::Update
void Update()
Definition
community_icons.cpp:143
CCommunityIcons::LoadFinish
void LoadFinish(const char *pCommunityId, CImageInfo &Info, CImageInfo &InfoGrayscale, const SHA256_DIGEST &Sha256)
Definition
community_icons.cpp:92
CCommunityIcons::Find
const CCommunityIcon * Find(const char *pCommunityId)
Definition
community_icons.cpp:60
CCommunityIcons::m_CommunityIconsInfoSha256
std::optional< SHA256_DIGEST > m_CommunityIconsInfoSha256
Definition
community_icons.h:81
CCommunityIcons::LoadFile
bool LoadFile(const char *pPath, int DirType, CImageInfo &Info, CImageInfo &InfoGrayscale, SHA256_DIGEST &Sha256)
Definition
community_icons.cpp:68
CCommunityIcons::Load
void Load()
Definition
community_icons.cpp:131
CCommunityIcons::FileScan
static int FileScan(const char *pName, int IsDir, int DirType, void *pUser)
Definition
community_icons.cpp:44
CCommunityIcons::Shutdown
void Shutdown()
Definition
community_icons.cpp:137
CCommunityIcons::m_vCommunityIcons
std::vector< CCommunityIcon > m_vCommunityIcons
Definition
community_icons.h:78
CCommunityIcons::m_CommunityIconDownloadJobs
std::deque< std::shared_ptr< CCommunityIconDownloadJob > > m_CommunityIconDownloadJobs
Definition
community_icons.h:80
CCommunityIcons::m_CommunityIconLoadJobs
std::deque< std::shared_ptr< CCommunityIconLoadJob > > m_CommunityIconLoadJobs
Definition
community_icons.h:79
CCommunityIcons::Render
void Render(const CCommunityIcon *pIcon, CUIRect Rect, bool Active)
Definition
community_icons.cpp:117
CComponentInterfaces
Definition
component.h:15
CHttpRequest::CHttpRequest
CHttpRequest(const char *pUrl)
Definition
http.cpp:62
CImageInfo
Definition
image.h:12
CServerInfo::MAX_COMMUNITY_ID_LENGTH
@ MAX_COMMUNITY_ID_LENGTH
Definition
serverbrowser.h:62
CUIRect
Definition
ui_rect.h:12
IGraphics::CTextureHandle
Definition
graphics.h:206
IJob::IJob
IJob()
Definition
jobs.cpp:7
component.h
graphics.h
hash.h
jobs.h
serverbrowser.h
http.h
SHA256_DIGEST
Definition
hash.h:15
IO_MAX_PATH_LENGTH
constexpr auto IO_MAX_PATH_LENGTH
Definition
types.h:49
ui_rect.h
src
game
client
components
community_icons.h
Generated by
1.16.1