void LimboView::Update(float dt) { // spectator team was actually 255 if(selectedTeam > 2) selectedTeam = 2; for(size_t i = 0; i < items.size(); i++){ MenuItem& item = items[i]; item.visible = true; switch(item.type){ case MenuWeaponRifle: case MenuWeaponShotgun: case MenuWeaponSMG: if(selectedTeam == 2){ item.visible = false; } default:; } bool newHover = item.rect && cursorPos; if(!item.visible) newHover = false; if(newHover && !item.hover){ IAudioDevice *dev = client->audioDevice; Handle<IAudioChunk> chunk = dev->RegisterSound("Sounds/Feedback/Limbo/Hover.wav"); dev->PlayLocal(chunk, AudioParam()); } item.hover = newHover; } }
void LimboView::KeyEvent(const std::string &key){ if(key == "LeftMouseButton"){ for(size_t i = 0; i < items.size(); i++){ MenuItem& item = items[i]; if(item.hover){ IAudioDevice *dev = client->audioDevice; Handle<IAudioChunk> chunk = dev->RegisterSound("Sounds/Feedback/Limbo/Select.wav"); dev->PlayLocal(chunk, AudioParam()); switch(item.type){ case MenuTeam1: selectedTeam = 0; break; case MenuTeam2: selectedTeam = 1; break; case MenuTeamSpectator: selectedTeam = 2; break; case MenuWeaponRifle: selectedWeapon = RIFLE_WEAPON; break; case MenuWeaponSMG: selectedWeapon = SMG_WEAPON; break; case MenuWeaponShotgun: selectedWeapon = SHOTGUN_WEAPON; break; case MenuSpawn: client->SpawnPressed(); break; } } } } }