void CHudIcons::Init() { if (m_bHudTexturesLoaded) return; m_bHudTexturesLoaded = true; CUtlDict< CHudTexture *, int > textureList; // check to see if we have sprites for this res; if not, step down LoadHudTextures(textureList, "scripts/hud_textures", NULL); LoadHudTextures(textureList, "scripts/mod_textures", NULL); LoadHudTextures(textureList, "scripts/instructor_textures", NULL); LoadHudTextures(textureList, "scripts/instructor_modtextures", NULL); int c = textureList.Count(); for (int index = 0; index < c; index++) { CHudTexture* tex = textureList[index]; AddSearchableHudIconToList(*tex); } FreeHudTextureList(textureList); }
//----------------------------------------------------------------------------- // Purpose: This is called every time the DLL is loaded //----------------------------------------------------------------------------- void CHud::Init(void) { HOOK_HUD_MESSAGE(gHUD, ResetHUD); #ifdef CSTRIKE_DLL HOOK_HUD_MESSAGE( gHUD, SendAudio ); #endif InitFonts(); // Create all the Hud elements CHudElementHelper::CreateAllElements(); gLCD.Init(); // Initialize all created elements for (int i = 0; i < m_HudList.Size(); i++) { m_HudList[i]->Init(); } m_bHudTexturesLoaded = false; KeyValues *kv = new KeyValues("layout"); if (kv) { if (kv->LoadFromFile(filesystem, "scripts/HudLayout.res")) { int numelements = m_HudList.Size(); for (int i = 0; i < numelements; i++) { CHudElement *element = m_HudList[i]; vgui::Panel *pPanel = dynamic_cast<vgui::Panel*>(element); if (!pPanel) { Msg("Non-vgui hud element %s\n", m_HudList[i]->GetName()); continue; } KeyValues *key = kv->FindKey(pPanel->GetName(), false); if (!key) { Msg("Hud element '%s' doesn't have an entry '%s' in scripts/HudLayout.res\n", m_HudList[i]->GetName(), pPanel->GetName()); } // Note: When a panel is parented to the module root, it's "parent" is returned as NULL. if (!element->IsParentedToClientDLLRootPanel() && !pPanel->GetParent()) { DevMsg("Hud element '%s'/'%s' doesn't have a parent\n", m_HudList[i]->GetName(), pPanel->GetName()); } } } kv->deleteThis(); } if (m_bHudTexturesLoaded) return; m_bHudTexturesLoaded = true; CUtlDict< CHudTexture *, int > textureList; // check to see if we have sprites for this res; if not, step down LoadHudTextures(textureList, "scripts/hud_textures", NULL); LoadHudTextures(textureList, "scripts/mod_textures", NULL); int c = textureList.Count(); for (int index = 0; index < c; index++) { CHudTexture* tex = textureList[index]; AddSearchableHudIconToList(*tex); } FreeHudTextureList(textureList); }