MCPcopy Create free account
hub / github.com/ddnet/ddnet / LoadSkinFinish

Method LoadSkinFinish

src/game/client/components/skins.cpp:413–451  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

411}
412
413void CSkins::LoadSkinFinish(CSkinContainer *pSkinContainer, const CSkinLoadData &Data)
414{
415 CSkin Skin{pSkinContainer->Name()};
416
417 Skin.m_OriginalSkin.m_Body = Graphics()->LoadSpriteTexture(Data.m_Info, &g_pData->m_aSprites[SPRITE_TEE_BODY]);
418 Skin.m_OriginalSkin.m_BodyOutline = Graphics()->LoadSpriteTexture(Data.m_Info, &g_pData->m_aSprites[SPRITE_TEE_BODY_OUTLINE]);
419 Skin.m_OriginalSkin.m_Feet = Graphics()->LoadSpriteTexture(Data.m_Info, &g_pData->m_aSprites[SPRITE_TEE_FOOT]);
420 Skin.m_OriginalSkin.m_FeetOutline = Graphics()->LoadSpriteTexture(Data.m_Info, &g_pData->m_aSprites[SPRITE_TEE_FOOT_OUTLINE]);
421 Skin.m_OriginalSkin.m_Hands = Graphics()->LoadSpriteTexture(Data.m_Info, &g_pData->m_aSprites[SPRITE_TEE_HAND]);
422 Skin.m_OriginalSkin.m_HandsOutline = Graphics()->LoadSpriteTexture(Data.m_Info, &g_pData->m_aSprites[SPRITE_TEE_HAND_OUTLINE]);
423 for(size_t i = 0; i < std::size(Skin.m_OriginalSkin.m_aEyes); ++i)
424 {
425 Skin.m_OriginalSkin.m_aEyes[i] = Graphics()->LoadSpriteTexture(Data.m_Info, &g_pData->m_aSprites[SPRITE_TEE_EYE_NORMAL + i]);
426 }
427
428 Skin.m_ColorableSkin.m_Body = Graphics()->LoadSpriteTexture(Data.m_InfoGrayscale, &g_pData->m_aSprites[SPRITE_TEE_BODY]);
429 Skin.m_ColorableSkin.m_BodyOutline = Graphics()->LoadSpriteTexture(Data.m_InfoGrayscale, &g_pData->m_aSprites[SPRITE_TEE_BODY_OUTLINE]);
430 Skin.m_ColorableSkin.m_Feet = Graphics()->LoadSpriteTexture(Data.m_InfoGrayscale, &g_pData->m_aSprites[SPRITE_TEE_FOOT]);
431 Skin.m_ColorableSkin.m_FeetOutline = Graphics()->LoadSpriteTexture(Data.m_InfoGrayscale, &g_pData->m_aSprites[SPRITE_TEE_FOOT_OUTLINE]);
432 Skin.m_ColorableSkin.m_Hands = Graphics()->LoadSpriteTexture(Data.m_InfoGrayscale, &g_pData->m_aSprites[SPRITE_TEE_HAND]);
433 Skin.m_ColorableSkin.m_HandsOutline = Graphics()->LoadSpriteTexture(Data.m_InfoGrayscale, &g_pData->m_aSprites[SPRITE_TEE_HAND_OUTLINE]);
434 for(size_t i = 0; i < std::size(Skin.m_ColorableSkin.m_aEyes); ++i)
435 {
436 Skin.m_ColorableSkin.m_aEyes[i] = Graphics()->LoadSpriteTexture(Data.m_InfoGrayscale, &g_pData->m_aSprites[SPRITE_TEE_EYE_NORMAL + i]);
437 }
438
439 Skin.m_Metrics = Data.m_Metrics;
440 Skin.m_BloodColor = Data.m_BloodColor;
441
442 if(g_Config.m_Debug)
443 {
444 log_trace("skins", "Loaded skin '%s'", Skin.GetName());
445 }
446
447 auto SkinIt = m_Skins.find(pSkinContainer->Name());
448 dbg_assert(SkinIt != m_Skins.end(), "LoadSkinFinish on skin '%s' which is not in m_Skins", pSkinContainer->Name());
449 SkinIt->second->m_pSkin = std::make_unique<CSkin>(std::move(Skin));
450 pSkinContainer->SetState(CSkinContainer::EState::LOADED);
451}
452
453void CSkins::LoadSkinDirect(const char *pName)
454{

Callers

nothing calls this directly

Calls 6

GraphicsFunction · 0.85
LoadSpriteTextureMethod · 0.80
endMethod · 0.80
NameMethod · 0.45
GetNameMethod · 0.45
SetStateMethod · 0.45

Tested by

no test coverage detected