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

Method UpdateStartLoading

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

Source from the content-addressed store, hash-verified

588}
589
590void CSkins::UpdateStartLoading(CSkinLoadingStats &Stats)
591{
592 for(auto &[_, pSkinContainer] : m_Skins)
593 {
594 if(Stats.m_NumPending == 0 || Stats.m_NumLoading + Stats.m_NumLoaded >= (size_t)g_Config.m_ClSkinsLoadedMax)
595 {
596 break;
597 }
598 if(pSkinContainer->m_State != CSkinContainer::EState::PENDING)
599 {
600 continue;
601 }
602 switch(pSkinContainer->Type())
603 {
604 case CSkinContainer::EType::LOCAL:
605 pSkinContainer->m_pLoadJob = std::make_shared<CSkinLoadJob>(this, pSkinContainer->Name(), pSkinContainer->StorageType());
606 break;
607 case CSkinContainer::EType::DOWNLOAD:
608 pSkinContainer->m_pLoadJob = std::make_shared<CSkinDownloadJob>(this, pSkinContainer->Name());
609 break;
610 default:
611 dbg_assert_failed("pSkinContainer->Type() invalid");
612 }
613 Engine()->AddJob(pSkinContainer->m_pLoadJob);
614 pSkinContainer->SetState(CSkinContainer::EState::LOADING);
615 Stats.m_NumPending--;
616 Stats.m_NumLoading++;
617 }
618}
619
620void CSkins::UpdateFinishLoading(CSkinLoadingStats &Stats, std::chrono::nanoseconds StartTime, std::chrono::nanoseconds MaxTime)
621{

Callers

nothing calls this directly

Calls 6

EngineFunction · 0.85
StorageTypeMethod · 0.80
AddJobMethod · 0.80
TypeMethod · 0.45
NameMethod · 0.45
SetStateMethod · 0.45

Tested by

no test coverage detected