class SoundCategory(OptionsCategory): Name = "Sound" def __init__(self, page): OptionsCategory.__init__(self, page) self.musicSlider = SliderWidget(page, "Music Volume", (0.0, 1.0), self.__setMusicVol, (0, 0, 0.475)) self.sfxSlider = SliderWidget(page, "Sound Volume", (0.0, 1.0), self.__setSfxVol, (0, 0, 0.335)) self.chatSounds = ChoiceWidget(self.page, None, (0, 0.1, 0.1), widgetName="Chat Sounds", settingKeyName='chs') self.discardChanges() def _setDefaults(self): self.origMusicVol = base.musicManager.getVolume() self.origSfxVol = base.sfxManagerList[0].getVolume() def __setMusicVol(self): val = self.musicSlider.getSliderVal() base.musicManager.setVolume(val) self.musicSlider.setValText("{:.0f}%".format(val * 100)) def __setSfxVol(self): val = self.sfxSlider.getSliderVal() base.sfxManagerList[0].setVolume(val) self.sfxSlider.setValText("{:.0f}%".format(val * 100)) def applyChanges(self): self._showApplying() self.chatSounds.saveSetting() if (base.musicManager.getVolume() != self.origMusicVol): self.settingsMgr.getSetting("musvol").setValue( base.musicManager.getVolume()) if (base.sfxManagerList[0].getVolume() != self.origSfxVol): self.settingsMgr.getSetting("sfxvol").setValue( base.sfxManagerList[0].getVolume()) self.settingsMgr.saveFile() self._setDefaults() self._hideApplying() def discardChanges(self): if not hasattr(self, 'origMusicVol'): self._setDefaults() base.musicManager.setVolume(self.origMusicVol) self.musicSlider.setSliderVal(self.origMusicVol) self.musicSlider.setValText("{:.0f}%".format(self.origMusicVol * 100)) base.sfxManagerList[0].setVolume(self.origSfxVol) self.sfxSlider.setSliderVal(self.origSfxVol) self.sfxSlider.setValText("{:.0f}%".format(self.origSfxVol * 100)) self.chatSounds.reset() self._setDefaults() def cleanup(self): self.discardChanges() if hasattr(self, 'musicSlider'): self.musicSlider.destroy() del self.musicSlider if hasattr(self, 'sfxSlider'): self.sfxSlider.destroy() del self.sfxSlider if hasattr(self, 'chatSounds'): self.chatSounds.cleanup() del self.chatSounds del self.origMusicVol del self.origSfxVol OptionsCategory.cleanup(self)