var ExtraMode = { TOP: 0, MAIN: 1 }; var ExtraScreen = defineObject(BaseScreen, { _screen: null, _screenArray: null, _scrollbar: null, setScreenData: function(screenParam) { this._prepareScreenMemberData(screenParam); this._completeScreenMemberData(screenParam); }, moveScreenCycle: function() { var mode = this.getCycleMode(); var result = MoveResult.CONTINUE; if (mode === ExtraMode.TOP) { result = this._moveTop(); } else if (mode === ExtraMode.MAIN) { result = this._moveMain(); } return result; }, drawScreenCycle: function() { var x = LayoutControl.getRelativeX(8) - 50; var y = LayoutControl.getCenterY(-1, this._scrollbar.getScrollbarHeight()) - 5; this._scrollbar.drawScrollbar(x, y); }, drawScreenTopText: function(textui) { TextRenderer.drawScreenTopTextCenter(this.getScreenTitleName(), textui); }, drawScreenBottomText: function(textui) { var index = this._scrollbar.getIndex(); var text = this._screenArray[index].getExtraDescription(); TextRenderer.drawScreenBottomTextCenter(text, textui); }, getScreenInteropData: function() { return root.queryScreen('Extra'); }, _prepareScreenMemberData: function(screenParam) { this._screen = null; this._screenArray = []; this._scrollbar = createScrollbarObject(ExtraScrollbar, this); }, _completeScreenMemberData: function(screenParam) { var count = LayoutControl.getObjectVisibleCount(TitleRenderer.getTitlePartsHeight(), -1); this._configureExtraScreens(this._screenArray); this._scrollbar.setScrollFormation(1, count); this._scrollbar.setActive(true); this._scrollbar.setObjectArray(this._screenArray); this.changeCycleMode(ExtraMode.TOP); }, _moveTop: function() { var index; var input = this._scrollbar.moveInput(); if (input === ScrollbarInput.SELECT) { this._scrollbar.setActive(false); index = this._scrollbar.getIndex(); this._screen = this._screenArray[index]; SceneManager.addScreen(this._screen, ScreenBuilder.buildScreen()); this.changeCycleMode(ExtraMode.MAIN); } else if (input === ScrollbarInput.CANCEL) { return MoveResult.END; } return MoveResult.CONTINUE; }, _moveMain: function() { if (SceneManager.isScreenClosed(this._screen)) { this._scrollbar.setActive(true); this.changeCycleMode(ExtraMode.TOP); } return MoveResult.CONTINUE; }, _configureExtraScreens: function(groupArray) { if (ExtraControl.isRecollectionDisplayable()) { groupArray.appendObject(RecollectionScreen); } if (ExtraControl.isCharacterDictionaryDisplayable()) { groupArray.appendObject(CharacterScreen); } if (ExtraControl.isWordDictionaryDisplayable()) { groupArray.appendObject(WordScreen); } if (ExtraControl.isGalleryDictionaryDisplayable()) { groupArray.appendObject(GalleryScreen); } if (ExtraControl.isMediaDictionaryDisplayable()) { groupArray.appendObject(SoundRoomScreen); } } } ); var ExtraScrollbar = defineObject(BaseScrollbar, { drawScrollContent: function(x, y, object, isSelect, index) { var text = object.getExtraDisplayName(); var textui = this._getTextUI(); var color = textui.getColor(); var font = textui.getFont(); var pic = textui.getUIImage(); TextRenderer.drawFixedTitleText(x, y, text, color, font, TextFormat.CENTER, pic, this._getCount()); }, drawDescriptionLine: function(x, y) { }, getObjectWidth: function() { return (this._getCount() + 2) * TitleRenderer.getTitlePartsWidth(); }, getObjectHeight: function() { return TitleRenderer.getTitlePartsHeight(); }, _getTextUI: function() { return root.queryTextUI('extraitem_title'); }, _getCount: function() { return 6; } } ); var DictionaryMode = { TOP: 0, MAIN: 1 }; var DictionaryScreen = defineObject(BaseScreen, { _scrollbar: null, _storyDataChanger: null, _messagePager: null, _secretViewer: null, _dataChanger: null, setScreenData: function(screenParam) { this._prepareScreenMemberData(screenParam); this._completeScreenMemberData(screenParam); }, moveScreenCycle: function() { var mode = this.getCycleMode(); var result = MoveResult.CONTINUE; if (mode === DictionaryMode.TOP) { result = this._moveTop(); } else if (mode === DictionaryMode.MAIN) { result = this._moveMain(); } return result; }, drawScreenCycle: function() { var mode = this.getCycleMode(); if (mode === DictionaryMode.TOP) { this._drawTop(); } else if (mode === DictionaryMode.MAIN) { this._drawMain(); } }, drawScreenTopText: function(textui) { TextRenderer.drawScreenTopTextCenter(this.getScreenTitleName(), textui); }, getScreenInteropData: function() { return null; }, setScrollbarData: function() { }, getExtraDisplayName: function() { return this.getScreenTitleName(); }, getExtraDescription: function() { return ''; }, getContentX: function() { return LayoutControl.getCenterX(-1, 560); }, getContentY: function() { return LayoutControl.getCenterY(-1, this.getContentHeight()); }, getContentHeight: function() { return Math.floor((root.getGameAreaHeight() / 3) * 2); }, drawDictionaryImage: function(obj) { }, _prepareScreenMemberData: function(screenParam) { this._scrollbar = createScrollbarObject(DictionaryScrollbar, this); this._storyDataChanger = createObject(StoryDataChanger); this._messagePager = createObject(MessagePager); this._secretViewer = createObject(SecretViewer); this._dataChanger = createObject(VerticalDataChanger); }, _completeScreenMemberData: function(screenParam) { this.setScrollbarData(); this._setMessagePagerData(); this.changeCycleMode(DictionaryMode.TOP); }, _setMessagePagerData: function() { var textui = root.queryTextUI('extraexplanation_title'); var messagePagerParam = StructureBuilder.buildMessagePagerParam(); var size = textui.getFont().getSize(); messagePagerParam.color = textui.getColor(); messagePagerParam.font = textui.getFont(); messagePagerParam.picUnderLine = textui.getUIImage(); messagePagerParam.maxWidth = 24 * size; messagePagerParam.rowCount = Math.floor(this.getContentHeight() / 28); messagePagerParam.interval = 10; messagePagerParam.isScrollLocked = true; this._messagePager.setMessagePagerInfo(messagePagerParam); }, _moveTop: function() { var input = this._scrollbar.moveInput(); var result = MoveResult.CONTINUE; if (input === ScrollbarInput.SELECT) { this._changeNewPage(true); this.changeCycleMode(DictionaryMode.MAIN); } else if (input === ScrollbarInput.CANCEL) { result = MoveResult.END; } return result; }, _moveMain: function() { var index; this._storyDataChanger.movePage(); if (InputControl.isCancelAction()) { MouseControl.changeCursorFromScrollbar(this._scrollbar, this._scrollbar.getIndex()); this._playCancelSound(); this.changeCycleMode(DictionaryMode.TOP); } else if (this._storyDataChanger.checkPage()) { this._changeNewPage(false); } else { index = this._dataChanger.checkDataIndex(this._scrollbar, null); if (index !== -1) { this._scrollbar.setIndex(index); this._changeNewPage(true); } } return MoveResult.CONTINUE; }, _changeNewPage: function(isTarget) { var data = this._scrollbar.getObject(); this._storyDataChanger.setCurrentData(data); if (isTarget) { this._setPageData(); } this._messagePager.setMessagePagerText(data.getPageText(this._storyDataChanger.getTruePageIndex())); }, _setPageData: function() { this._storyDataChanger.setPageData(this._messagePager.getPagerWidth(), 120); }, _drawTop: function() { var x = LayoutControl.getCenterX(-1, this._scrollbar.getScrollbarWidth()); var y = LayoutControl.getCenterY(-1, this._scrollbar.getScrollbarHeight()); this._scrollbar.drawScrollbar(x, y); }, _drawMain: function() { var obj = this._scrollbar.getObject(); if (this._scrollbar.isNameDisplayable(obj, 0)) { this._drawTopName(obj); this._drawExplanation(obj); this.drawDictionaryImage(obj); } else { this._secretViewer.drawSecretCharacter(obj, 0); } this._drawPage(); }, _drawTopName: function(obj) { var text = obj.getFormalName(); var textui = root.queryTextUI('extraname_title'); var color = textui.getColor(); var font = textui.getFont(); var pic = textui.getUIImage(); var x = this.getContentX(); var y = this.getContentY(); TitleRenderer.drawTitle(pic, x, y, TitleRenderer.getTitlePartsWidth(), TitleRenderer.getTitlePartsHeight(), 8); TextRenderer.drawText(x + 40, y + 17, text, -1, color, font); }, _drawExplanation: function(obj) { var x = this.getContentX(); var y = this.getContentY() + 86; this._messagePager.drawMessagePager(x, y); }, _drawPage: function() { this._storyDataChanger.drawPage(this.getContentX(), this.getContentY() + 86); this._storyDataChanger.drawPageNumber(this.getContentX() + 340, this.getContentY() + 56); }, _playCancelSound: function() { MediaControl.soundDirect('commandcancel'); } } ); var CharacterScreen = defineObject(DictionaryScreen, { setScrollbarData: function() { var dictionaryScrollbarParam = this._createDictionaryScrollbarParam(); this._scrollbar.setDictionaryScrollbarParam(dictionaryScrollbarParam); this._scrollbar.setDictionaryFormation(); this._scrollbar.setActive(true); this._scrollbar.setDataList(root.getBaseData().getCharacterDictionaryList()); this._storyDataChanger.setConditionData(root.getStoryPreference().isCharacterNumberVisible(), dictionaryScrollbarParam.funcCondition); }, getScreenInteropData: function() { return root.queryScreen('Character'); }, getExtraDescription: function() { return StringTable.Extra_Character; }, drawDictionaryImage: function(obj) { var x, y; var image = obj.getCharIllustImage(); if (image !== null) { x = this._getIllustX(image); y = this._getIllustY(image); image.draw(x, y); } else { x = this._getFaceX(image); y = this._getFaceY(image); if (root.isLargeFaceUse()) { this._drawLargeFace(x, y, obj.getResourceHandle()); } else { this._drawFaceImage(x, y, obj.getResourceHandle()); } } }, _createDictionaryScrollbarParam: function() { var dictionaryScrollbarParam = StructureBuilder.buildDictionaryScrollbarParam(); dictionaryScrollbarParam.funcCondition = function(object, index) { return object.isPageEnabled(index); }; return dictionaryScrollbarParam; }, _drawFaceImage: function(x, y, handle) { var picFrame = root.queryUI('extraunit_frame'); var xMargin = 16; var yMargin = 16; var frameWidth = Math.floor(UIFormat.FACEFRAME_WIDTH / 2); var frameHeight = UIFormat.FACEFRAME_HEIGHT; if (handle.isNullHandle()) { return; } if (picFrame !== null) { picFrame.drawStretchParts(x, y, frameWidth, frameHeight, frameWidth, 0, frameWidth, frameHeight); } GraphicsRenderer.drawImage(x + xMargin, y + yMargin, handle, GraphicsType.FACE); if (picFrame !== null) { picFrame.drawStretchParts(x, y, frameWidth, frameHeight, 0, 0, frameWidth, frameHeight); } }, _drawLargeFace: function(xDest, yDest, handle) { var xSrc, ySrc; var destWidth = root.getLargeFaceWidth(); var destHeight = root.getLargeFaceHeight(); var srcWidth = destWidth; var srcHeight = destHeight; var pic = GraphicsRenderer.getGraphics(handle, GraphicsType.FACE); if (pic === null) { return; } if (!pic.isLargeImage()) { srcWidth = GraphicsFormat.FACE_WIDTH; srcHeight = GraphicsFormat.FACE_HEIGHT; } xSrc = handle.getSrcX() * srcWidth; ySrc = handle.getSrcY() * srcHeight; pic.drawStretchParts(xDest, yDest, destWidth, destHeight, xSrc, ySrc, srcWidth, srcHeight); }, _getFaceX: function(image) { return this.getContentX() + 405; }, _getFaceY: function(image) { return this.getContentY(); }, _getIllustX: function(image) { return this.getContentX() + 250; }, _getIllustY: function(image) { var y; var baseheight = Math.floor(root.getGameAreaHeight() * 0.7); var height = image.getHeight(); if (height > baseheight) { y = root.getGameAreaHeight() - baseheight; } else { y = root.getGameAreaHeight() - height; } return y; } } ); var WordScreen = defineObject(DictionaryScreen, { setScrollbarData: function() { var dictionaryScrollbarParam = this._createDictionaryScrollbarParam(); this._scrollbar = createScrollbarObject(DictionaryScrollbar, this); this._scrollbar.setDictionaryScrollbarParam(dictionaryScrollbarParam); this._scrollbar.setDictionaryFormation(); this._scrollbar.setActive(true); this._scrollbar.setDataList(root.getBaseData().getWordDictionaryList()); this._storyDataChanger.setConditionData(root.getStoryPreference().isWordNumberVisible(), dictionaryScrollbarParam.funcCondition); }, getScreenInteropData: function() { return root.queryScreen('Word'); }, getExtraDescription: function() { return StringTable.Extra_Word; }, drawDictionaryImage: function(obj) { var x, y; var image = obj.getPictureImage(); if (image !== null) { x = this._getPictureX(image); y = this._getPictureY(image); image.draw(x, y); } }, _createDictionaryScrollbarParam: function() { var dictionaryScrollbarParam = StructureBuilder.buildDictionaryScrollbarParam(); dictionaryScrollbarParam.funcCondition = function(object, index) { return object.isPageEnabled(index); }; return dictionaryScrollbarParam; }, _getPictureX: function(image) { return this.getContentX() + 375; }, _getPictureY: function(image) { return this.getContentY() + 10; } } ); var GalleryMode = { TOP: 0, MAIN: 1 }; var GalleryScreen = defineObject(BaseScreen, { _scrollbar: null, _storyDataChanger: null, _secretViewer: null, _descriptionChanger : null, _dataChanger: null, setScreenData: function(screenParam) { this._prepareScreenMemberData(screenParam); this._completeScreenMemberData(screenParam); }, moveScreenCycle: function() { var mode = this.getCycleMode(); var result = MoveResult.CONTINUE; if (mode === GalleryMode.TOP) { result = this._moveTop(); } else if (mode === GalleryMode.MAIN) { result = this._moveMain(); } return result; }, drawScreenCycle: function() { var mode = this.getCycleMode(); if (mode === GalleryMode.TOP) { this._drawTop(); } else if (mode === GalleryMode.MAIN) { this._drawMain(); } }, drawScreenTopText: function(textui) { TextRenderer.drawScreenTopTextCenter(this.getScreenTitleName(), textui); }, drawScreenBottomText: function(textui) { this._descriptionChanger.drawBottomDescription(textui, this._scrollbar); }, getScreenInteropData: function() { return root.queryScreen('Gallery'); }, getExtraDisplayName: function() { return this.getScreenTitleName(); }, getExtraDescription: function() { return StringTable.Extra_Gallery; }, _prepareScreenMemberData: function(screenParam) { this._scrollbar = createScrollbarObject(this._isThumbnailMode() ? ThumbnailScrollbar : DictionaryScrollbar, this); this._storyDataChanger = createObject(StoryDataChanger); this._secretViewer = createObject(SecretViewer); this._descriptionChanger = createObject(DescriptionChanger); this._dataChanger = createObject(VerticalDataChanger); }, _completeScreenMemberData: function(screenParam) { var dictionaryScrollbarParam = this._createDictionaryScrollbarParam(); this._scrollbar.setDictionaryScrollbarParam(dictionaryScrollbarParam); this._scrollbar.setDictionaryFormation(); this._scrollbar.setActive(true); this._scrollbar.setDataList(root.getBaseData().getGalleryDictionaryList()); this._descriptionChanger.setDescriptionData(); this._descriptionChanger.setDescriptionText(this._scrollbar); this._storyDataChanger.setConditionData(root.getStoryPreference().isGalleryNumberVisible(), dictionaryScrollbarParam.funcCondition); this.changeCycleMode(GalleryMode.TOP); }, _createDictionaryScrollbarParam: function() { var dictionaryScrollbarParam = StructureBuilder.buildDictionaryScrollbarParam(); dictionaryScrollbarParam.funcCondition = function(object, index) { return root.getStoryPreference().isGalleryPublic() || object.isPageEnabled(index); }; return dictionaryScrollbarParam; }, _moveTop: function() { var input = this._scrollbar.moveInput(); var result = MoveResult.CONTINUE; if (input === ScrollbarInput.SELECT) { this._changeNewPage(true); this.changeCycleMode(GalleryMode.MAIN); } else if (input === ScrollbarInput.CANCEL) { result = MoveResult.END; } else if (input === ScrollbarInput.NONE) { this._descriptionChanger.setDescriptionText(this._scrollbar); } return result; }, _moveMain: function() { var index; this._storyDataChanger.movePage(); if (InputControl.isCancelAction()) { MouseControl.changeCursorFromScrollbar(this._scrollbar, this._scrollbar.getIndex()); this._playCancelSound(); this.changeCycleMode(GalleryMode.TOP); } else if (this._storyDataChanger.checkPage()) { this._changeNewPage(false); } else { index = this._dataChanger.checkDataIndex(this._scrollbar, null); if (index !== -1) { this._scrollbar.setIndex(index); this._changeNewPage(true); } } return MoveResult.CONTINUE; }, _changeNewPage: function(isTarget) { var data = this._scrollbar.getObject(); this._storyDataChanger.setCurrentData(data); if (isTarget) { this._setPageData(); } }, _setPageData: function() { var index, handle, type, pic, size; var obj = this._scrollbar.getObject(); // ダミーの範囲の設定とインデックスの初期化 this._storyDataChanger.setPageData(root.getGameAreaWidth(), root.getGameAreaHeight()); index = this._storyDataChanger.getTruePageIndex(); if (!this._scrollbar.isNameDisplayable(obj, index)) { return; } handle = obj.getGraphicsResourceHandle(index); type = obj.getGraphicsType(index); pic = GraphicsRenderer.getGraphics(handle, type); size = GraphicsRenderer.getGraphicsSize(type, pic); this._storyDataChanger.setPageData(size.width, size.height); }, _drawTop: function() { var x = LayoutControl.getCenterX(-1, this._scrollbar.getScrollbarWidth()); var y = LayoutControl.getCenterY(-1, this._scrollbar.getScrollbarHeight()); this._scrollbar.drawScrollbar(x, y); }, _drawMain: function() { var obj = this._scrollbar.getObject(); var index = this._storyDataChanger.getTruePageIndex(); if (this._scrollbar.isNameDisplayable(obj, index)) { this._drawImage(obj, index); } else { this._secretViewer.drawSecretGallery(obj, index); } }, _drawImage: function(obj, index) { var x, y; var handle = obj.getGraphicsResourceHandle(index); var type = obj.getGraphicsType(index); var pic = GraphicsRenderer.getGraphics(handle, type); var size = GraphicsRenderer.getGraphicsSize(type, pic); if (this._isScaled()) { pic.drawStretchParts(0, 0, root.getGameAreaWidth(), root.getGameAreaHeight(), 0, 0, size.width, size.height); } else { x = LayoutControl.getCenterX(-1, size.width); y = LayoutControl.getCenterY(-1, size.height); GraphicsRenderer.drawImage(x, y, handle, type); this._storyDataChanger.drawPage(x, y); this._storyDataChanger.drawPageNumber(x + size.width - 10, y - 24); } }, _isScaled: function() { return root.getStoryPreference().isGalleryScaled(); }, _isThumbnailMode: function() { var i, gallery, handle; var list = root.getBaseData().getGalleryDictionaryList(); var count = list.getCount(); for (i = 0; i < count; i++) { gallery = list.getData(i); handle = gallery.getThumbnailResourceHandle(); if (!handle.isNullHandle()) { // 1つでもサムネイルを含むデータがあるならば、trueを返してサムネイルモードにする return true; } } return false; }, _playCancelSound: function() { MediaControl.soundDirect('commandcancel'); }, _playMenuTargetChangeSound: function() { MediaControl.soundDirect('menutargetchange'); } } ); var SoundRoomMode = { TOP: 0 }; var SoundRoomScreen = defineObject(BaseScreen, { _activeMusicHandle: null, _activeMediaType: -1, _scrollbar: null, _descriptionChanger : null, setScreenData: function(screenParam) { this._prepareScreenMemberData(screenParam); this._completeScreenMemberData(screenParam); }, moveScreenCycle: function() { var input = this._scrollbar.moveInput(); var result = MoveResult.CONTINUE; if (input === ScrollbarInput.SELECT) { result = this._moveSelect(); } else if (input === ScrollbarInput.CANCEL) { result = this._moveCancel(); } else if (input === ScrollbarInput.NONE) { result = this._moveNone(); } return result; }, drawScreenCycle: function() { var x = LayoutControl.getCenterX(-1, this._scrollbar.getScrollbarWidth()); var y = LayoutControl.getCenterY(-1, this._scrollbar.getScrollbarHeight()); this._scrollbar.drawScrollbar(x, y); }, drawScreenTopText: function(textui) { TextRenderer.drawScreenTopTextCenter(this.getScreenTitleName(), textui); }, drawScreenBottomText: function(textui) { this._descriptionChanger.drawBottomDescription(textui, this._scrollbar); }, getScreenInteropData: function() { return root.queryScreen('SoundRoom'); }, getExtraDisplayName: function() { return this.getScreenTitleName(); }, getExtraDescription: function() { return StringTable.Extra_SoundRoom; }, _prepareScreenMemberData: function(screenParam) { this._activeMusicHandle = null; this._activeMediaType = -1; this._scrollbar = createScrollbarObject(DictionaryScrollbar, this); this._descriptionChanger = createObject(DescriptionChanger); }, _completeScreenMemberData: function(screenParam) { var dictionaryScrollbarParam = this._createDictionaryScrollbarParam(); this._scrollbar.setDictionaryScrollbarParam(dictionaryScrollbarParam); this._scrollbar.setDictionaryFormation(); this._scrollbar.setActive(true); this._scrollbar.setDataList(root.getBaseData().getMediaDictionaryList()); this._descriptionChanger.setDescriptionData(); this._descriptionChanger.setDescriptionText(this._scrollbar); this.changeCycleMode(SoundRoomMode.TOP); }, _createDictionaryScrollbarParam: function() { var dictionaryScrollbarParam = StructureBuilder.buildDictionaryScrollbarParam(); dictionaryScrollbarParam.funcCondition = function(object, index) { return object.isMediaEnabled(); }; return dictionaryScrollbarParam; }, _moveSelect: function() { var obj = this._scrollbar.getObject(); if (this._scrollbar.isNameDisplayable(obj, 0)) { this._activeMusicHandle = obj.getMediaHandle(); this._activeMediaType = obj.getMediaType(); if (this._activeMediaType === MediaType.MUSIC) { MediaControl.musicPlay(this._activeMusicHandle); } else if (this._activeMediaType === MediaType.SE) { MediaControl.soundPlay(this._activeMusicHandle); } } return MoveResult.CONTINUE; }, _moveCancel: function() { if (this._activeMediaType === MediaType.MUSIC) { MediaControl.musicStop(MusicStopType.BACK); } else if (this._activeMediaType === MediaType.SE) { root.soundStop(1, false); } this._descriptionChanger.endDescription(); return MoveResult.END; }, _moveNone: function() { this._descriptionChanger.setDescriptionText(this._scrollbar); return MoveResult.CONTINUE; } } ); var DescriptionChanger = defineObject(BaseObject, { _prevIndex: -1, _messageAnalyzer: null, setDescriptionData: function() { var messageAnalyzerParam = this._createMessageAnalyzerParam(); this._messageAnalyzer = createObject(MessageAnalyzer); this._messageAnalyzer.setMessageAnalyzerParam(messageAnalyzerParam); this._messageAnalyzer.setMaxRowCount(2); }, setDescriptionText: function(scrollbar) { var text; var index = scrollbar.getIndex(); var event = scrollbar.getObject(); if (index === this._prevIndex) { return; } if (scrollbar.isNameDisplayable(event, 0)) { text = event.getDescription(); } else { text = ''; } this._messageAnalyzer.setMessageAnalyzerText(text); this._prevIndex = index; }, endDescription: function() { this._prevIndex = -1; }, drawBottomDescription: function(textui, scrollbar) { var x, y, pic; var event = scrollbar.getObject(); if (event === null) { return; } x = LayoutControl.getCenterX(-1, UIFormat.SCREENFRAME_WIDTH); y = root.getGameAreaHeight() - UIFormat.SCREENFRAME_HEIGHT; pic = textui.getUIImage(); if (pic !== null) { pic.draw(x, y); } this._messageAnalyzer.drawMessageAnalyzer(x + 103, y + 43, -1, -1, null); }, _getWindowTextUI: function() { return root.queryTextUI('default_window'); }, _createMessageAnalyzerParam: function() { var textui = this._getWindowTextUI(); var messageAnalyzerParam = StructureBuilder.buildMessageAnalyzerParam(); messageAnalyzerParam.color = textui.getColor(); messageAnalyzerParam.font = textui.getFont(); messageAnalyzerParam.messageSpeedType = SpeedType.DIRECT; return messageAnalyzerParam; } } ); var StoryDataChanger = defineObject(BaseObject, { _pageChanger: null, _data: null, _funcCondition: null, _isMultiPage: false, initialize: function() { this._pageChanger = createObject(HorizontalPageChanger); }, setPageData: function(width, height) { this._pageChanger.setPageData(this.getTruePageCount(), width, height); }, setCurrentData: function(data) { this._data = data; }, setConditionData: function(isMultiPage, funcCondition) { this._isMultiPage = isMultiPage; this._funcCondition = funcCondition; }, movePage: function() { this._pageChanger.movePage(); }, checkPage: function() { return this._pageChanger.checkPage(); }, drawPage: function(x, y) { this._pageChanger.drawPage(x, y); }, drawPageNumber: function(x, y) { var i, colorIndex; var count = this.getTruePageCount(); var index = this._pageChanger.getPageIndex(); if (count === 1 || !this._isMultiPage) { return; } for (i = count - 1; i >= 0; i--) { if (i === index) { colorIndex = 0; } else { colorIndex = 4; } NumberRenderer.drawNumberColor(x, y, i + 1, colorIndex, 255); x -= 22; } }, getTruePageIndex: function() { var i; var count = this._data.getPageCount(); var n = 0; var index = this._pageChanger.getPageIndex(); if (this._isMultiPage) { for (i = 0; i < count; i++) { if (this._isPageEnabled(this._data, i)) { if (index === n) { index = i; break; } n++; } } } else { // 最後のページを参照する for (i = 0; i < count; i++) { if (this._isPageEnabled(this._data, i)) { index = i; } } } return index; }, getTruePageCount: function() { var i; var count = this._data.getPageCount(); var n = 0; if (!this._isMultiPage) { return 1; } for (i = 0; i < count; i++) { if (this._isPageEnabled(this._data, i)) { n++; } } return n; }, _isPageEnabled: function(object, index) { return root.getStoryPreference().isTestPlayPublic() || this._funcCondition(object, index); } } ); var SecretViewer = defineObject(BaseObject, { drawSecretCharacter: function(obj, index) { this._drawCommon(obj, index); }, drawSecretWord: function(obj, index) { this._drawCommon(obj, index); }, drawSecretGallery: function(obj, index) { this._drawCommon(obj, index); }, _drawCommon: function(obj, index) { var range; var text = StringTable.HideData_Secret; var textui = root.queryTextUI('extraitem_title'); var color = textui.getColor(); var font = textui.getFont(); range = createRangeObject(0, 0, root.getGameAreaWidth(), root.getGameAreaHeight()); TextRenderer.drawRangeText(range, TextFormat.CENTER, text, -1, color, font); } } );