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

#include <skins.h>

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

Classes

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

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 RefreshEventSkins ()
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 char * SkinPrefix () const
Public Member Functions inherited from CComponent
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 IsVanillaSkin (const char *pName)
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 const char * VANILLA_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

typedef std::function<void()> CSkins::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

◆ IsVanillaSkin()

bool CSkins::IsVanillaSkin ( const char * pName)
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)

◆ RefreshEventSkins()

void CSkins::RefreshEventSkins ( )

◆ 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.

◆ VANILLA_SKINS

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: