CReplayListPanel::~CReplayListPanel() { ivgui()->RemoveTickSignal( GetVPanel() ); }
//----------------------------------------------------------------------------- // Purpose: Constructor //----------------------------------------------------------------------------- CBuildMenu::CBuildMenu(IViewPort *pViewPort) : Frame(NULL, PANEL_BUILD ) { gBuildMenu = this; m_pViewPort = pViewPort; m_iJumpKey = -1; // this is looked up in Activate() // m_iScoreBoardKey = -1; // this is looked up in Activate() // initialize dialog SetTitle("Spawn Menu", true); // load the new scheme early!! scheme = vgui::scheme()->LoadSchemeFromFile("resource/ZombieMaster.res", "ZombieMaster"); SetScheme(scheme); SetSizeable(false); m_hLargeFont = vgui::scheme()->GetIScheme(scheme)->GetFont("Trebuchet18", true); m_hMediumFont = vgui::scheme()->GetIScheme(scheme)->GetFont("Trebuchet16", true); SetProportional(false); LoadControlSettings("Resource/UI/BuildMenu.res"); vgui::ivgui()->AddTickSignal(GetVPanel(), 150); //TGB: moved here because the .res seemed to override it SetMoveable(true); InvalidateLayout(); //we fetch a bunch of pointers to various elements here so we can alter them quickly and easily info_image = dynamic_cast<vgui::ImagePanel*>(FindChildByName("ZombieImage")); info_rescost = dynamic_cast<vgui::Label*>(FindChildByName("CostRes")); info_popcost = dynamic_cast<vgui::Label*>(FindChildByName("CostPop")); info_description = dynamic_cast<vgui::Label*>(FindChildByName("LabelDescription")); removelast = dynamic_cast<vgui::Button*>(FindChildByName("RemoveLast")); clearqueue = dynamic_cast<vgui::Button*>(FindChildByName("ClearQueue")); //prepare a list of our spawn buttons etc so we can easily iterate over them for (int i=0; i < TYPE_TOTAL; i++) { char buffer[25]; Q_snprintf(buffer, sizeof(buffer), "z_spawn1_%02d", i); spawnbuttons[i] = FindChildByName(buffer); Q_snprintf(buffer, sizeof(buffer), "z_spawn5_%02d", i); spawnfives[i] = FindChildByName(buffer); zombieimages[i] = vgui::scheme()->GetImage(TypeToImage[i], true); zombiequeue[i] = vgui::scheme()->GetImage(TypeToQueueImage[i], false); } KeyValues *kv = new KeyValues("zombiedesc.res"); if ( kv->LoadFromFile( (IBaseFileSystem*)filesystem, "resource/zombiedesc.res", "MOD" ) ) { //braaaaaaah, char juggling is pain const char *temp = kv->GetString("shambler", "Shambler"); int length = 128; char *saved = new char[length]; Q_strncpy(saved, temp, strlen(temp) + 1); zombiedescriptions[TYPE_SHAMBLER] = saved; temp = kv->GetString("banshee", "Banshee"); saved = new char[length]; Q_strncpy(saved, temp, strlen(temp) + 1); zombiedescriptions[TYPE_BANSHEE] = saved; temp = kv->GetString("hulk", "Hulk"); saved = new char[length]; Q_strncpy(saved, temp, strlen(temp) + 1); zombiedescriptions[TYPE_HULK] = saved; temp = kv->GetString("drifter", "Drifter"); saved = new char[length]; Q_strncpy(saved, temp, strlen(temp) + 1); zombiedescriptions[TYPE_DRIFTER] = saved; temp = kv->GetString("immolator", "Immolator"); saved = new char[length]; Q_strncpy(saved, temp, strlen(temp) + 1); zombiedescriptions[TYPE_IMMOLATOR] = saved; } //will delete its child keys as well kv->deleteThis(); for (int i=0; i < BM_QUEUE_SIZE; i++) { char buffer[10]; Q_snprintf(buffer, sizeof(buffer), "queue%02d", i); queueimages[i] = dynamic_cast<vgui::ImagePanel*>(FindChildByName(buffer)); } }