import ui import snd import systemSetting import net import chat import app import locale import constInfo import chrmgr import player import musicInfo import uiSelectMusic import background MUSIC_FILENAME_MAX_LEN = 25 blockMode = 0 class OptionDialog(ui.ScriptWindow): def __init__(self): ui.ScriptWindow.__init__(self) self.__Initialize() self.__Load() def __del__(self): ui.ScriptWindow.__del__(self) print " -------------------------------------- DELETE SYSTEM OPTION DIALOG" def __Initialize(self): self.tilingMode = 0 self.titleBar = 0 self.changeMusicButton = 0 self.selectMusicFile = 0 self.ctrlMusicVolume = 0 self.ctrlSoundVolume = 0 self.musicListDlg = 0 self.tilingApplyButton = 0 self.cameraModeButtonList = [] self.fogModeButtonList = [] self.tilingModeButtonList = [] self.ctrlShadowQuality = 0 def Destroy(self): self.ClearDictionary() self.__Initialize() print " -------------------------------------- DESTROY SYSTEM OPTION DIALOG" def __Load_LoadScript(self, fileName): try: pyScriptLoader = ui.PythonScriptLoader() pyScriptLoader.LoadScriptFile(self, fileName) except: import exception exception.Abort("System.OptionDialog.__Load_LoadScript") def __Load_BindObject(self): try: GetObject = self.GetChild self.titleBar = GetObject("titlebar") self.selectMusicFile = GetObject("bgm_file") self.changeMusicButton = GetObject("bgm_button") self.ctrlMusicVolume = GetObject("music_volume_controller") self.ctrlSoundVolume = GetObject("sound_volume_controller") self.cameraModeButtonList.append(GetObject("camera_short")) self.cameraModeButtonList.append(GetObject("camera_long")) self.fogModeButtonList.append(GetObject("fog_level0")) self.fogModeButtonList.append(GetObject("fog_level1")) self.fogModeButtonList.append(GetObject("fog_level2")) self.tilingModeButtonList.append(GetObject("tiling_cpu")) self.tilingModeButtonList.append(GetObject("tiling_gpu")) self.tilingApplyButton=GetObject("tiling_apply") #self.ctrlShadowQuality = GetObject("shadow_bar") except: import exception exception.Abort("OptionDialog.__Load_BindObject") def __Load(self): self.__Load_LoadScript("uiscript/systemoptiondialog.py") self.__Load_BindObject() self.SetCenterPosition() self.titleBar.SetCloseEvent(ui.__mem_func__(self.Close)) self.ctrlMusicVolume.SetSliderPos(float(systemSetting.GetMusicVolume())) self.ctrlMusicVolume.SetEvent(ui.__mem_func__(self.OnChangeMusicVolume)) self.ctrlSoundVolume.SetSliderPos(float(systemSetting.GetSoundVolume()) / 5.0) self.ctrlSoundVolume.SetEvent(ui.__mem_func__(self.OnChangeSoundVolume)) # self.ctrlShadowQuality.SetSliderPos(float(systemSetting.GetShadowLevel()) / 5.0) # self.ctrlShadowQuality.SetEvent(ui.__mem_func__(self.OnChangeShadowQuality)) self.changeMusicButton.SAFE_SetEvent(self.__OnClickChangeMusicButton) self.cameraModeButtonList[0].SAFE_SetEvent(self.__OnClickCameraModeShortButton) self.cameraModeButtonList[1].SAFE_SetEvent(self.__OnClickCameraModeLongButton) self.fogModeButtonList[0].SAFE_SetEvent(self.__OnClickFogModeLevel0Button) self.fogModeButtonList[1].SAFE_SetEvent(self.__OnClickFogModeLevel1Button) self.fogModeButtonList[2].SAFE_SetEvent(self.__OnClickFogModeLevel2Button) self.tilingModeButtonList[0].SAFE_SetEvent(self.__OnClickTilingModeCPUButton) self.tilingModeButtonList[1].SAFE_SetEvent(self.__OnClickTilingModeGPUButton) self.tilingApplyButton.SAFE_SetEvent(self.__OnClickTilingApplyButton) self.__SetCurTilingMode() self.__ClickRadioButton(self.fogModeButtonList, constInfo.GET_FOG_LEVEL_INDEX()) self.__ClickRadioButton(self.cameraModeButtonList, constInfo.GET_CAMERA_MAX_DISTANCE_INDEX()) if musicInfo.fieldMusic==musicInfo.METIN2THEMA: self.selectMusicFile.SetText(uiSelectMusic.DEFAULT_THEMA) else: self.selectMusicFile.SetText(musicInfo.fieldMusic[:MUSIC_FILENAME_MAX_LEN]) def __OnClickTilingModeCPUButton(self): self.__NotifyChatLine(locale.SYSTEM_OPTION_CPU_TILING_1) self.__NotifyChatLine(locale.SYSTEM_OPTION_CPU_TILING_2) self.__NotifyChatLine(locale.SYSTEM_OPTION_CPU_TILING_3) self.__SetTilingMode(0) def __OnClickTilingModeGPUButton(self): self.__NotifyChatLine(locale.SYSTEM_OPTION_GPU_TILING_1) self.__NotifyChatLine(locale.SYSTEM_OPTION_GPU_TILING_2) self.__NotifyChatLine(locale.SYSTEM_OPTION_GPU_TILING_3) self.__SetTilingMode(1) def __OnClickTilingApplyButton(self): self.__NotifyChatLine(locale.SYSTEM_OPTION_TILING_EXIT) if 0==self.tilingMode: background.EnableSoftwareTiling(1) else: background.EnableSoftwareTiling(0) net.ExitGame() def __OnClickChangeMusicButton(self): if not self.musicListDlg: self.musicListDlg=uiSelectMusic.FileListDialog() self.musicListDlg.SAFE_SetSelectEvent(self.__OnChangeMusic) self.musicListDlg.Open() def __ClickRadioButton(self, buttonList, buttonIndex): try: selButton=buttonList[buttonIndex] except IndexError: return for eachButton in buttonList: eachButton.SetUp() selButton.Down() def __SetTilingMode(self, index): self.__ClickRadioButton(self.tilingModeButtonList, index) self.tilingMode=index def __SetCameraMode(self, index): constInfo.SET_CAMERA_MAX_DISTANCE_INDEX(index) self.__ClickRadioButton(self.cameraModeButtonList, index) def __SetFogLevel(self, index): constInfo.SET_FOG_LEVEL_INDEX(index) self.__ClickRadioButton(self.fogModeButtonList, index) def __OnClickCameraModeShortButton(self): self.__SetCameraMode(0) def __OnClickCameraModeLongButton(self): self.__SetCameraMode(1) def __OnClickFogModeLevel0Button(self): self.__SetFogLevel(0) def __OnClickFogModeLevel1Button(self): self.__SetFogLevel(1) def __OnClickFogModeLevel2Button(self): self.__SetFogLevel(2) def __OnChangeMusic(self, fileName): self.selectMusicFile.SetText(fileName[:MUSIC_FILENAME_MAX_LEN]) if musicInfo.fieldMusic != "": snd.FadeOutMusic("BGM/"+ musicInfo.fieldMusic) if fileName==uiSelectMusic.DEFAULT_THEMA: musicInfo.fieldMusic=musicInfo.METIN2THEMA else: musicInfo.fieldMusic=fileName musicInfo.SaveLastPlayFieldMusic() if musicInfo.fieldMusic != "": snd.FadeInMusic("BGM/" + musicInfo.fieldMusic) def OnChangeMusicVolume(self): pos = self.ctrlMusicVolume.GetSliderPos() snd.SetMusicVolume(pos * net.GetFieldMusicVolume()) systemSetting.SetMusicVolume(pos) def OnChangeSoundVolume(self): pos = self.ctrlSoundVolume.GetSliderPos() snd.SetSoundVolumef(pos) systemSetting.SetSoundVolumef(pos) def OnChangeShadowQuality(self): pos = self.ctrlShadowQuality.GetSliderPos() systemSetting.SetShadowLevel(int(pos / 0.2)) def OnCloseInputDialog(self): self.inputDialog.Close() self.inputDialog = None return TRUE def OnCloseQuestionDialog(self): self.questionDialog.Close() self.questionDialog = None return TRUE def OnPressEscapeKey(self): self.Close() return TRUE def Show(self): ui.ScriptWindow.Show(self) def Close(self): self.__SetCurTilingMode() self.Hide() def __SetCurTilingMode(self): if background.IsSoftwareTiling(): self.__SetTilingMode(0) else: self.__SetTilingMode(1) def __NotifyChatLine(self, text): chat.AppendChat(chat.CHAT_TYPE_INFO, text)