var ConfigScreen = defineObject(BaseScreen, { _configWindow: null, setScreenData: function(screenParam) { this._prepareScreenMemberData(screenParam); this._completeScreenMemberData(screenParam); }, moveScreenCycle: function() { return this._configWindow.moveWindow(); }, drawScreenCycle: function() { var x = LayoutControl.getCenterX(-1, this._configWindow.getWindowWidth()); var y = LayoutControl.getCenterY(-1, this._configWindow.getWindowHeight()); this._configWindow.drawWindow(x, y); }, drawScreenBottomText: function(textui) { var object = this._configWindow.getCurrentConfigItem(); var text = object.getConfigItemDescription(); if (object === null) { return; } TextRenderer.drawScreenBottomText(text, textui); }, getScreenInteropData: function() { return root.queryScreen('Config'); }, _prepareScreenMemberData: function(screenParam) { this._configWindow = createWindowObject(ConfigWindow, this); }, _completeScreenMemberData: function(screenParam) { this._configWindow.setConfigData(); } } ); var ConfigWindow = defineObject(BaseWindow, { _commandArray: null, _scrollbar: null, setConfigData: function() { var object; this._prepareConfigItem(); this._createScrollbar(); object = this._scrollbar.getObject(); object.getSubScrollbar().setActive(true); }, moveWindowContent: function() { var object; var result = MoveResult.CONTINUE; if (InputControl.isCancelAction()) { this._playCancelSound(); result = MoveResult.END; } else if (InputControl.isInputState(InputType.UP) || MouseControl.isInputAction(MouseType.UPWHEEL)) { this._moveUpDown(); } else if (InputControl.isInputState(InputType.DOWN) || MouseControl.isInputAction(MouseType.DOWNWHEEL)) { this._moveUpDown(); } else { this._checkTracingScrollbar(); object = this._scrollbar.getObject(); object.moveConfigItem(); } this._scrollbar.getEdgeCursor().moveCursor(); MouseControl.checkScrollbarEdgeAction(this._scrollbar); return result; }, drawWindowContent: function(x, y) { this._scrollbar.drawScrollbar(x, y); }, getWindowWidth: function() { return this._scrollbar.getScrollbarWidth() + (this.getWindowXPadding() * 2); }, getWindowHeight: function() { return this._scrollbar.getScrollbarHeight() + (this.getWindowYPadding() * 2); }, getCurrentConfigItem: function() { return this._scrollbar.getObject(); }, _prepareConfigItem: function() { var i, count; this._commandArray = []; this._configureConfigItem(this._commandArray); count = this._commandArray.length; for (i = 0; i < count; i++) { this._commandArray[i].setupConfigItem(); } }, _createScrollbar: function() { var count = LayoutControl.getObjectVisibleCount(38, 10); this._scrollbar = createScrollbarObject(ConfigScrollbar, this); this._scrollbar.setScrollFormation(1, count); this._scrollbar.setObjectArray(this._commandArray); this._scrollbar.setActiveSingle(true); }, _moveUpDown: function() { var object = this._scrollbar.getObject(); object.getSubScrollbar().setActiveSingle(false); this._scrollbar.moveScrollbarCursor(); object = this._scrollbar.getObject(); object.getSubScrollbar().setActiveSingle(true); }, _checkTracingScrollbar: function() { var object; var objectPrev = this._scrollbar.getObject(); if (MouseControl.moveScrollbarMouse(this._scrollbar)) { objectPrev.getSubScrollbar().setActiveSingle(false); object = this._scrollbar.getObject(); object.getSubScrollbar().setActiveSingle(true); MouseControl.moveScrollbarMouse(object.getSubScrollbar()); } }, _playCancelSound: function() { MediaControl.soundDirect('commandcancel'); }, _isVisible: function(commandLayoutType, commandActionType) { var i, commandLayout; var list = root.getBaseData().getCommandLayoutList(commandLayoutType); var count = list.getCount(); var result = false; for (i = 0; i < count; i++) { commandLayout = list.getData(i); if (commandLayout.getCommandActionType() === commandActionType) { if (commandLayout.getCommandVisibleType() !== CommandVisibleType.HIDE) { result = true; } break; } } return result; }, _configureConfigItem: function(groupArray) { groupArray.appendObject(ConfigItem.MusicPlay); groupArray.appendObject(ConfigItem.SoundEffect); if (DataConfig.getVoiceCategoryName() !== '') { groupArray.appendObject(ConfigItem.Voice); } if (DataConfig.isMotionGraphicsEnabled()) { groupArray.appendObject(ConfigItem.RealBattle); if (DataConfig.isHighResolution()) { groupArray.appendObject(ConfigItem.RealBattleScaling); } } groupArray.appendObject(ConfigItem.AutoCursor); groupArray.appendObject(ConfigItem.AutoTurnEnd); groupArray.appendObject(ConfigItem.AutoTurnSkip); groupArray.appendObject(ConfigItem.EnemyMarking); groupArray.appendObject(ConfigItem.MapGrid); groupArray.appendObject(ConfigItem.UnitSpeed); groupArray.appendObject(ConfigItem.MessageSpeed); groupArray.appendObject(ConfigItem.ScrollSpeed); groupArray.appendObject(ConfigItem.UnitMenuStatus); groupArray.appendObject(ConfigItem.MapUnitHpVisible); groupArray.appendObject(ConfigItem.DamagePopup); if (this._isVisible(CommandLayoutType.MAPCOMMAND, CommandActionType.LOAD)) { groupArray.appendObject(ConfigItem.LoadCommand); } groupArray.appendObject(ConfigItem.MouseOperation); groupArray.appendObject(ConfigItem.MouseCursorTracking); } } ); var ConfigScrollbar = defineObject(BaseScrollbar, { drawScrollContent: function(x, y, object, isSelect, index) { object.drawConfigItem(x, y, index === this.getIndex()); }, drawCursor: function(x, y, isActive) { // メソッドを書き換えることで、通常のカーソル描画を無効にする }, getObjectWidth: function() { return 500; }, getObjectHeight: function() { return 38; } } ); var ConfigTextScrollbar = defineObject(BaseScrollbar, { drawScrollContent: function(x, y, object, isSelect, index) { var length = -1; var textui = root.queryTextUI('default_window'); var color = textui.getColor(); var font = textui.getFont(); if (this.getParentInstance().getFlagValue() === index) { color = ColorValue.KEYWORD; } else { color = ColorValue.DISABLE; } TextRenderer.drawKeywordText(x, y + 10, object, length, color, font); }, drawDescriptionLine: function(x, y) { }, getObjectWidth: function() { return 52; }, getObjectHeight: function() { return 38; } } ); var BaseConfigtItem = defineObject(BaseObject, { _scrollbar: null, setupConfigItem: function() { this._scrollbar = createScrollbarObject(ConfigTextScrollbar, this); this._scrollbar.setScrollFormation(this.getFlagCount(), 1); this._scrollbar.setObjectArray(this.getObjectArray()); }, moveConfigItem: function() { var input = this._scrollbar.moveInput(); if (input === ScrollbarInput.SELECT) { this.selectFlag(this._scrollbar.getIndex()); } else if (input === ScrollbarInput.CANCEL) { return MoveResult.END; } return MoveResult.CONTINUE; }, drawConfigItem: function(x, y, isActive) { this.drawLeft(x, y, isActive); this.drawRight(x, y, isActive); }, selectFlag: function(index) { }, getFlagCount: function() { return 2; }, getFlagValue: function() { return 0; }, getConfigItemTitle: function() { return ''; }, getConfigItemDescription: function() { return ''; }, drawLeft: function(x, y, isActive) { var textui = this.getTextUI(); var color = textui.getColor(); var font = textui.getFont(); var pic = textui.getUIImage(); y -= 7; TextRenderer.drawFixedTitleText(x, y, this.getConfigItemTitle(), color, font, TextFormat.LEFT, pic, this.getTitlePartsCount()); }, drawRight: function(x, y, isActive) { this._scrollbar.drawScrollbar(x + this.getLeftWidth(), y); }, getTextUI: function() { return root.queryTextUI('configitem_title'); }, getLeftWidth: function() { return (this.getTitlePartsCount() + 2) * TitleRenderer.getTitlePartsWidth() + 28; }, getTitlePartsCount: function() { return 6; }, getObjectArray: function() { return [StringTable.Select_On, StringTable.Select_Off]; }, getSubScrollbar: function() { return this._scrollbar; } } ); var ConfigItem = {}; // 左から順に0(オン)、1(オフ)とカウントしていく ConfigItem.MusicPlay = defineObject(BaseConfigtItem, { selectFlag: function(index) { var arr = this.getVolumeArray(); root.getMetaSession().setDefaultEnvironmentValue(0, index); root.getMediaManager().setMusicVolume(arr[index]); }, getFlagValue: function() { return root.getMetaSession().getDefaultEnvironmentValue(0); }, getFlagCount: function() { return 5; }, getConfigItemTitle: function() { return StringTable.Config_MusicPlay; }, getConfigItemDescription: function() { return StringTable.Config_MusicPlayDescription; }, getObjectArray: function() { return ['100%', '75%', '50%', '25%', '0%']; }, getVolumeArray: function() { return [100, 75, 50, 25, 0]; } } ); ConfigItem.SoundEffect = defineObject(BaseConfigtItem, { selectFlag: function(index) { var arr = this.getVolumeArray(); root.getMetaSession().setDefaultEnvironmentValue(1, index); root.getMediaManager().setSoundVolume(arr[index]); }, getFlagValue: function() { return root.getMetaSession().getDefaultEnvironmentValue(1); }, getFlagCount: function() { return 5; }, getConfigItemTitle: function() { return StringTable.Config_SoundEffect; }, getConfigItemDescription: function() { return StringTable.Config_SoundEffectDescription; }, getObjectArray: function() { return ['100%', '75%', '50%', '25%', '0%']; }, getVolumeArray: function() { return [100, 75, 50, 25, 0]; } } ); ConfigItem.RealBattle = defineObject(BaseConfigtItem, { selectFlag: function(index) { root.getMetaSession().setDefaultEnvironmentValue(2, index); }, getFlagValue: function() { return root.getMetaSession().getDefaultEnvironmentValue(2); }, getConfigItemTitle: function() { return StringTable.Config_RealBattle; }, getConfigItemDescription: function() { return StringTable.Config_RealBattleDescription; } } ); ConfigItem.AutoTurnEnd = defineObject(BaseConfigtItem, { selectFlag: function(index) { root.getMetaSession().setDefaultEnvironmentValue(3, index); }, getFlagValue: function() { return root.getMetaSession().getDefaultEnvironmentValue(3); }, getConfigItemTitle: function() { return StringTable.Config_AutoTurnEnd; }, getConfigItemDescription: function() { return StringTable.Config_AutoTurnEndDescription; } } ); ConfigItem.AutoTurnSkip = defineObject(BaseConfigtItem, { selectFlag: function(index) { root.getMetaSession().setDefaultEnvironmentValue(4, index); }, getFlagValue: function() { return root.getMetaSession().getDefaultEnvironmentValue(4); }, getConfigItemTitle: function() { return StringTable.Config_AutoTurnSkip; }, getConfigItemDescription: function() { return StringTable.Config_AutoTurnSkipDescription; } } ); ConfigItem.MapGrid = defineObject(BaseConfigtItem, { selectFlag: function(index) { root.getMetaSession().setDefaultEnvironmentValue(5, index); }, getFlagValue: function() { return root.getMetaSession().getDefaultEnvironmentValue(5); }, getConfigItemTitle: function() { return StringTable.Config_MapGrid; }, getConfigItemDescription: function() { return StringTable.Config_MapGridDescription; } } ); ConfigItem.UnitSpeed = defineObject(BaseConfigtItem, { selectFlag: function(index) { root.getMetaSession().setDefaultEnvironmentValue(6, index); }, getFlagValue: function() { return root.getMetaSession().getDefaultEnvironmentValue(6); }, getFlagCount: function() { return 3; }, getConfigItemTitle: function() { return StringTable.Config_UnitSpeed; }, getConfigItemDescription: function() { return StringTable.Config_UnitSpeedDescription; }, getObjectArray: function() { return [StringTable.Speed_High, StringTable.Speed_Normal, StringTable.Speed_Low]; } } ); ConfigItem.MessageSpeed = defineObject(BaseConfigtItem, { selectFlag: function(index) { root.getMetaSession().setDefaultEnvironmentValue(7, index); }, getFlagValue: function() { return root.getMetaSession().getDefaultEnvironmentValue(7); }, getFlagCount: function() { return 3; }, getConfigItemTitle: function() { return StringTable.Config_MessageSpeed; }, getConfigItemDescription: function() { return StringTable.Config_MessageSpeedDescription; }, getObjectArray: function() { return [StringTable.Speed_High, StringTable.Speed_Normal, StringTable.Speed_Low]; } } ); ConfigItem.UnitMenuStatus = defineObject(BaseConfigtItem, { selectFlag: function(index) { root.getMetaSession().setDefaultEnvironmentValue(8, index); }, getFlagValue: function() { return root.getMetaSession().getDefaultEnvironmentValue(8); }, getConfigItemTitle: function() { return StringTable.Config_MapUnitWindow; }, getConfigItemDescription: function() { return StringTable.Config_MapUnitWindowDescription; } } ); ConfigItem.LoadCommand = defineObject(BaseConfigtItem, { selectFlag: function(index) { root.getMetaSession().setDefaultEnvironmentValue(9, index); }, getFlagValue: function() { return root.getMetaSession().getDefaultEnvironmentValue(9); }, getConfigItemTitle: function() { return StringTable.Config_LoadCommand; }, getConfigItemDescription: function() { return StringTable.Config_LoadCommandDescription; } } ); ConfigItem.AutoCursor = defineObject(BaseConfigtItem, { selectFlag: function(index) { root.getMetaSession().setDefaultEnvironmentValue(10, index); }, getFlagValue: function() { return root.getMetaSession().getDefaultEnvironmentValue(10); }, getConfigItemTitle: function() { return StringTable.Config_AutoCursor; }, getConfigItemDescription: function() { return StringTable.Config_AutoCursorDescription; } } ); ConfigItem.MouseOperation = defineObject(BaseConfigtItem, { selectFlag: function(index) { root.getMetaSession().setDefaultEnvironmentValue(11, index); }, getFlagValue: function() { return root.getMetaSession().getDefaultEnvironmentValue(11); }, getConfigItemTitle: function() { return StringTable.Config_MouseOperation; }, getConfigItemDescription: function() { return StringTable.Config_MouseOperationDescription; } } ); ConfigItem.MouseCursorTracking = defineObject(BaseConfigtItem, { selectFlag: function(index) { root.getMetaSession().setDefaultEnvironmentValue(12, index); }, getFlagValue: function() { return root.getMetaSession().getDefaultEnvironmentValue(12); }, getConfigItemTitle: function() { return StringTable.Config_MouseCursorTracking; }, getConfigItemDescription: function() { return StringTable.Config_MouseCursorTrackingDescription; } } ); ConfigItem.Voice = defineObject(BaseConfigtItem, { selectFlag: function(index) { var arr = [100, 75, 50, 25, 0]; root.getMetaSession().setDefaultEnvironmentValue(13, index); root.getMediaManager().setVoiceVolume(arr[index]); }, getFlagValue: function() { return root.getMetaSession().getDefaultEnvironmentValue(13); }, getFlagCount: function() { return 5; }, getConfigItemTitle: function() { return StringTable.Config_Voice; }, getConfigItemDescription: function() { return StringTable.Config_VoiceDescription; }, getObjectArray: function() { return ['100%', '75%', '50%', '25%', '0%']; }, getVolumeArray: function() { return [100, 75, 50, 25, 0]; } } ); ConfigItem.RealBattleScaling = defineObject(BaseConfigtItem, { selectFlag: function(index) { root.getMetaSession().setDefaultEnvironmentValue(14, index); }, getFlagValue: function() { return root.getMetaSession().getDefaultEnvironmentValue(14); }, getConfigItemTitle: function() { return StringTable.Config_RealBattleScaling; }, getConfigItemDescription: function() { return StringTable.Config_RealBattleScalingDescription; } } ); ConfigItem.ScrollSpeed = defineObject(BaseConfigtItem, { selectFlag: function(index) { root.getMetaSession().setDefaultEnvironmentValue(15, index); }, getFlagValue: function() { return root.getMetaSession().getDefaultEnvironmentValue(15); }, getFlagCount: function() { return 3; }, getConfigItemTitle: function() { return StringTable.Config_ScrollSpeed; }, getConfigItemDescription: function() { return StringTable.Config_ScrollSpeedDescription; }, getObjectArray: function() { return [StringTable.Speed_High, StringTable.Speed_Normal, StringTable.Speed_Low]; } } ); ConfigItem.EnemyMarking = defineObject(BaseConfigtItem, { selectFlag: function(index) { root.getMetaSession().setDefaultEnvironmentValue(16, index); }, getFlagValue: function() { return root.getMetaSession().getDefaultEnvironmentValue(16); }, getConfigItemTitle: function() { return StringTable.Config_EnemyMarking; }, getConfigItemDescription: function() { return StringTable.Config_EnemyMarkingDescription; } } ); ConfigItem.EnemyMarking = defineObject(BaseConfigtItem, { selectFlag: function(index) { root.getMetaSession().setDefaultEnvironmentValue(16, index); }, getFlagValue: function() { return root.getMetaSession().getDefaultEnvironmentValue(16); }, getConfigItemTitle: function() { return StringTable.Config_EnemyMarking; }, getConfigItemDescription: function() { return StringTable.Config_EnemyMarkingDescription; } } ); ConfigItem.MapUnitHpVisible = defineObject(BaseConfigtItem, { selectFlag: function(index) { root.getMetaSession().setDefaultEnvironmentValue(17, index); }, getFlagValue: function() { return root.getMetaSession().getDefaultEnvironmentValue(17); }, getConfigItemTitle: function() { return StringTable.Config_MapUnitHpVisible; }, getConfigItemDescription: function() { return StringTable.Config_MapUnitHpVisibleDescription; } } ); ConfigItem.DamagePopup = defineObject(BaseConfigtItem, { selectFlag: function(index) { root.getMetaSession().setDefaultEnvironmentValue(18, index); }, getFlagValue: function() { return root.getMetaSession().getDefaultEnvironmentValue(18); }, getConfigItemTitle: function() { return StringTable.Config_DamagePopup; }, getConfigItemDescription: function() { return StringTable.Config_DamagePopupDescription; } } ); var ConfigVolumeControl = { setDefaultVolume: function() { var i, obj, volume, tilte; var groupArray = []; this._configureConfigItem(groupArray); for (i = 0; i < groupArray.length; i++) { obj = groupArray[i]; volume = this._getVolume(obj); tilte = obj.getConfigItemTitle(); if (tilte === StringTable.Config_MusicPlay) { root.getMediaManager().setMusicVolume(volume); } else if (tilte === StringTable.Config_SoundEffect) { root.getMediaManager().setSoundVolume(volume); } else if (tilte === StringTable.Config_Voice) { root.getMediaManager().setVoiceVolume(volume); } } }, _getVolume: function(obj) { var arr = obj.getVolumeArray(); var index = obj.getFlagValue(); return arr[index]; }, _configureConfigItem: function(groupArray) { groupArray.appendObject(ConfigItem.MusicPlay); groupArray.appendObject(ConfigItem.SoundEffect); if (DataConfig.getVoiceCategoryName() !== '') { groupArray.appendObject(ConfigItem.Voice); } } };