DDraceNetwork Documentation
Loading...
Searching...
No Matches
CSkins Class Reference

#include <skins.h>

Inheritance diagram for CSkins:
[legend]
Collaboration diagram for CSkins:
[legend]

Classes

class  CAbstractSkinLoadJob
 
class  CSkinContainer
 
class  CSkinDownloadJob
 
class  CSkinList
 
class  CSkinListEntry
 
class  CSkinLoadData
 
class  CSkinLoadingStats
 
class  CSkinLoadJob
 

Public Types

typedef std::function< void()> TSkinLoadedCallback
 

Public Member Functions

 CSkins ()
 
int Sizeof () const override
 
void OnConsoleInit () override
 
void OnInit () override
 
void OnShutdown () override
 
void OnUpdate () override
 
void Refresh (TSkinLoadedCallback &&SkinLoadedCallback)
 
CSkinLoadingStats LoadingStats () const
 
CSkinListSkinList ()
 
const CSkinContainerFindContainerOrNullptr (const char *pName)
 
const CSkinFindOrNullptr (const char *pName)
 
const CSkinFind (const char *pName)
 
void AddFavorite (const char *pName)
 
void RemoveFavorite (const char *pName)
 
bool IsFavorite (const char *pName) const
 
void RandomizeSkin (int Dummy)
 
const charSkinPrefix () const
 
- Public Member Functions inherited from CComponent
virtual ~CComponent ()=default
 
virtual void OnStateChange (int NewState, int OldState)
 
virtual void OnReset ()
 
virtual void OnWindowResize ()
 
virtual void OnRender ()
 
virtual void OnNewSnapshot ()
 
virtual void OnRelease ()
 
virtual void OnMapLoad ()
 
virtual void OnMessage (int Msg, void *pRawMsg)
 
virtual bool OnCursorMove (float x, float y, IInput::ECursorType CursorType)
 
virtual bool OnInput (const IInput::CEvent &Event)
 
virtual bool OnTouchState (const std::vector< IInput::CTouchFingerState > &vTouchFingerStates)
 
- Public Member Functions inherited from CComponentInterfaces
virtual void OnInterfacesInit (CGameClient *pClient)
 
virtual ~CComponentInterfaces ()=default
 

Static Public Member Functions

static bool IsSpecialSkin (const char *pName)
 

Private Member Functions

bool LoadSkinData (const char *pName, CSkinLoadData &Data) const
 
void LoadSkinFinish (CSkinContainer *pSkinContainer, const CSkinLoadData &Data)
 
void LoadSkinDirect (const char *pName)
 
const CSkinContainerFindContainerImpl (const char *pName)
 
void UpdateUnloadSkins (CSkinLoadingStats &Stats)
 
void UpdateStartLoading (CSkinLoadingStats &Stats)
 
void UpdateFinishLoading (CSkinLoadingStats &Stats, std::chrono::nanoseconds StartTime, std::chrono::nanoseconds MaxTime)
 
void OnConfigSave (IConfigManager *pConfigManager)
 

Static Private Member Functions

static bool IsVanillaSkinNormalized (const char *pNormalizedName)
 
static bool IsSpecialSkinNormalized (const char *pNormalizedName)
 
static int SkinScan (const char *pName, int IsDir, int StorageType, void *pUser)
 
static void ConAddFavoriteSkin (IConsole::IResult *pResult, void *pUserData)
 
static void ConRemFavoriteSkin (IConsole::IResult *pResult, void *pUserData)
 
static void ConfigSaveCallback (IConfigManager *pConfigManager, void *pUserData)
 
static void ConchainRefreshSkinList (IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData)
 

Private Attributes

std::unordered_map< std::string_view, std::unique_ptr< CSkinContainer > > m_Skins
 
std::optional< std::chrono::nanoseconds > m_ContainerUpdateTime
 
std::list< std::string_view > m_SkinsUsageList
 
CSkinList m_SkinList
 
std::set< std::string > m_Favorites
 
CSkin m_PlaceholderSkin
 
char m_aEventSkinPrefix [MAX_SKIN_LENGTH]
 

Static Private Attributes

static constexpr size_t NORMALIZED_SKIN_NAME_LENGTH = 2 * MAX_SKIN_LENGTH
 
static constexpr const charVANILLA_SKINS []
 

Additional Inherited Members

- Protected Member Functions inherited from CComponentInterfaces
class CGameClientGameClient () const
 
class IClientClient () const
 
class IKernelKernel () const
 
class IEngineEngine () const
 
class IGraphicsGraphics () const
 
class ITextRenderTextRender () const
 
class IInputInput () const
 
class IStorageStorage () const
 
class CUiUi () const
 
class ISoundSound () const
 
class CRenderToolsRenderTools () const
 
class CRenderMapRenderMap () const
 
class IConfigManagerConfigManager () const
 
class CConfigConfig () const
 
class IConsoleConsole () const
 
class IDemoPlayerDemoPlayer () const
 
class IDemoRecorderDemoRecorder (int Recorder) const
 
class IFavoritesFavorites () const
 
class IServerBrowserServerBrowser () const
 
class CLayersLayers () const
 
class CCollisionCollision () const
 
int64_t time () const
 
float LocalTime () const
 
class IHttpHttp () const
 

Member Typedef Documentation

◆ TSkinLoadedCallback

Constructor & Destructor Documentation

◆ CSkins()

CSkins::CSkins ( )

Member Function Documentation

◆ AddFavorite()

void CSkins::AddFavorite ( const char pName)

◆ ConAddFavoriteSkin()

void CSkins::ConAddFavoriteSkin ( IConsole::IResult pResult,
void pUserData 
)
staticprivate

◆ ConchainRefreshSkinList()

void CSkins::ConchainRefreshSkinList ( IConsole::IResult pResult,
void pUserData,
IConsole::FCommandCallback  pfnCallback,
void pCallbackUserData 
)
staticprivate

◆ ConfigSaveCallback()

void CSkins::ConfigSaveCallback ( IConfigManager pConfigManager,
void pUserData 
)
staticprivate

◆ ConRemFavoriteSkin()

void CSkins::ConRemFavoriteSkin ( IConsole::IResult pResult,
void pUserData 
)
staticprivate

◆ Find()

const CSkin * CSkins::Find ( const char pName)

◆ FindContainerImpl()

const CSkins::CSkinContainer * CSkins::FindContainerImpl ( const char pName)
private

◆ FindContainerOrNullptr()

const CSkins::CSkinContainer * CSkins::FindContainerOrNullptr ( const char pName)

◆ FindOrNullptr()

const CSkin * CSkins::FindOrNullptr ( const char pName)

◆ IsFavorite()

bool CSkins::IsFavorite ( const char pName) const

◆ IsSpecialSkin()

bool CSkins::IsSpecialSkin ( const char pName)
static

◆ IsSpecialSkinNormalized()

bool CSkins::IsSpecialSkinNormalized ( const char pNormalizedName)
staticprivate

◆ IsVanillaSkinNormalized()

bool CSkins::IsVanillaSkinNormalized ( const char pNormalizedName)
staticprivate

◆ LoadingStats()

CSkins::CSkinLoadingStats CSkins::LoadingStats ( ) const

◆ LoadSkinData()

bool CSkins::LoadSkinData ( const char pName,
CSkinLoadData Data 
) const
private

◆ LoadSkinDirect()

void CSkins::LoadSkinDirect ( const char pName)
private

◆ LoadSkinFinish()

void CSkins::LoadSkinFinish ( CSkinContainer pSkinContainer,
const CSkinLoadData Data 
)
private

◆ OnConfigSave()

void CSkins::OnConfigSave ( IConfigManager pConfigManager)
private

◆ OnConsoleInit()

void CSkins::OnConsoleInit ( )
overridevirtual

Called to let the components register their console commands.

Reimplemented from CComponent.

◆ OnInit()

void CSkins::OnInit ( )
overridevirtual

Called to let the components run initialization code.

Reimplemented from CComponent.

◆ OnShutdown()

void CSkins::OnShutdown ( )
overridevirtual

Called to cleanup the component. This method is called when the client is closed.

Reimplemented from CComponent.

◆ OnUpdate()

void CSkins::OnUpdate ( )
overridevirtual

Called when the component should get updated.

The update order depends on the component insertion order.

Reimplemented from CComponent.

◆ RandomizeSkin()

void CSkins::RandomizeSkin ( int  Dummy)

◆ Refresh()

void CSkins::Refresh ( TSkinLoadedCallback &&  SkinLoadedCallback)

◆ RemoveFavorite()

void CSkins::RemoveFavorite ( const char pName)

◆ Sizeof()

int CSkins::Sizeof ( ) const
inlineoverridevirtual

Gets the size of the non-abstract component.

Implements CComponent.

◆ SkinList()

CSkins::CSkinList & CSkins::SkinList ( )

◆ SkinPrefix()

const char * CSkins::SkinPrefix ( ) const

◆ SkinScan()

int CSkins::SkinScan ( const char pName,
int  IsDir,
int  StorageType,
void pUser 
)
staticprivate

◆ UpdateFinishLoading()

void CSkins::UpdateFinishLoading ( CSkinLoadingStats Stats,
std::chrono::nanoseconds  StartTime,
std::chrono::nanoseconds  MaxTime 
)
private

◆ UpdateStartLoading()

void CSkins::UpdateStartLoading ( CSkinLoadingStats Stats)
private

◆ UpdateUnloadSkins()

void CSkins::UpdateUnloadSkins ( CSkinLoadingStats Stats)
private

Member Data Documentation

◆ m_aEventSkinPrefix

char CSkins::m_aEventSkinPrefix[MAX_SKIN_LENGTH]
private

◆ m_ContainerUpdateTime

std::optional<std::chrono::nanoseconds> CSkins::m_ContainerUpdateTime
private

◆ m_Favorites

std::set<std::string> CSkins::m_Favorites
private

◆ m_PlaceholderSkin

CSkin CSkins::m_PlaceholderSkin
private

◆ m_SkinList

CSkinList CSkins::m_SkinList
private

◆ m_Skins

std::unordered_map<std::string_view, std::unique_ptr<CSkinContainer> > CSkins::m_Skins
private

◆ m_SkinsUsageList

std::list<std::string_view> CSkins::m_SkinsUsageList
private

Sorted from most recently to least recently used. Must be kept synchronized with the skin containers. Only contains pending and loaded skins as only these are unloaded.

◆ NORMALIZED_SKIN_NAME_LENGTH

constexpr size_t CSkins::NORMALIZED_SKIN_NAME_LENGTH = 2 * MAX_SKIN_LENGTH
staticconstexprprivate

Maximum length of normalized skin names. Normalization may increase the length.

◆ VANILLA_SKINS

constexpr const char* CSkins::VANILLA_SKINS[]
staticconstexprprivate
Initial value:
= {"bluekitty", "bluestripe", "brownbear",
"cammo", "cammostripes", "coala", "default", "limekitty",
"pinky", "redbopp", "redstripe", "saddo", "toptri",
"twinbop", "twintri", "warpaint", "x_ninja", "x_spec"}

Names of all vanilla and special skins.

The names have to be in lower case for efficient comparison.


The documentation for this class was generated from the following files: