From 1035db65062c4394c7cacb0f6b9512c896017b5c Mon Sep 17 00:00:00 2001 From: 0aubsq <0aubsq@gmail.com> Date: Tue, 21 Sep 2021 00:16:38 +0200 Subject: [PATCH] First commit --- Config.ini | 389 + FDK19/FDK19.csproj | 205 + FDK19/FDK19.csproj.user | 7 + FDK19/Properties/AssemblyInfo.cs | 39 + FDK19/packages.config | 11 + FDK19/コード/00.共通/CActivity.cs | 176 + FDK19/コード/00.共通/CCounter.cs | 315 + FDK19/コード/00.共通/CCpuCores.cs | 26 + FDK19/コード/00.共通/CFPS.cs | 64 + FDK19/コード/00.共通/CIniFile.cs | 134 + FDK19/コード/00.共通/CJudgeTextEncoding.cs | 81 + FDK19/コード/00.共通/COS.cs | 35 + FDK19/コード/00.共通/CPowerManagement.cs | 28 + FDK19/コード/00.共通/CSendMessage.cs | 33 + FDK19/コード/00.共通/CTimer.cs | 162 + FDK19/コード/00.共通/CTimerBase.cs | 179 + FDK19/コード/00.共通/CTraceLogListener.cs | 157 + FDK19/コード/00.共通/CWin32.cs | 661 + FDK19/コード/00.共通/C一定間隔処理.cs | 61 + FDK19/コード/00.共通/C共通.cs | 180 + FDK19/コード/00.共通/C変換.cs | 252 + .../00.共通/ExtensionMethods/DoubleExtensions.cs | 12 + .../00.共通/ExtensionMethods/Int32Extensions.cs | 12 + FDK19/コード/01.フレームワーク/Core/Game.cs | 569 + .../01.フレームワーク/Core/GameClock.cs | 153 + .../コード/01.フレームワーク/Core/GameTime.cs | 120 + .../01.フレームワーク/Core/GameWindow.cs | 634 + .../01.フレームワーク/Core/GameWindow.resx | 120 + .../01.フレームワーク/Core/GameWindowSize.cs | 10 + .../DeviceSettings/ConversionMethods.cs | 204 + .../DeviceSettings/DeviceSettings.cs | 285 + .../DeviceSettings/Direct3D9Settings.cs | 440 + .../Enumeration/Enumeration9.cs | 447 + .../Properties/Resources.Designer.cs | 70 + .../01.フレームワーク/Properties/Resources.resx | 124 + .../01.フレームワーク/Rendering/DeviceCache.cs | 200 + .../Rendering/DeviceCreationException.cs | 71 + .../Rendering/Direct3D9Manager.cs | 219 + .../01.フレームワーク/Rendering/Enums.cs | 25 + .../Rendering/GraphicsDeviceManager.cs | 701 + .../Rendering/NoCompatibleDevicesException.cs | 71 + .../Rendering/VertexElementAttribute.cs | 94 + .../Resources/sdx_icon_black.ico | Bin 0 -> 125036 bytes .../01.フレームワーク/Utilities/Camera.cs | 197 + .../Utilities/TransformedColoredTexturedVertex.cs | 178 + .../Utilities/TransformedColoredVertex.cs | 162 + .../01.フレームワーク/Win32/NativeMethods.cs | 115 + .../01.フレームワーク/Win32/NativeStructures.cs | 72 + .../01.フレームワーク/Win32/WindowConstants.cs | 77 + FDK19/コード/02.入力/CInputJoystick.cs | 820 + FDK19/コード/02.入力/CInputKeyboard.cs | 296 + FDK19/コード/02.入力/CInputMIDI.cs | 124 + FDK19/コード/02.入力/CInputMouse.cs | 251 + FDK19/コード/02.入力/CInput管理.cs | 297 + .../コード/02.入力/DeviceConstantConverter.cs | 1666 + FDK19/コード/02.入力/E入力デバイス種別.cs | 17 + FDK19/コード/02.入力/IInputDevice.cs | 37 + FDK19/コード/02.入力/STInputEvent.cs | 19 + FDK19/コード/02.入力/SlimDXKeys.cs | 171 + FDK19/コード/03.サウンド/CSound.cs | 2052 + FDK19/コード/03.サウンド/CSoundDeviceASIO.cs | 455 + .../03.サウンド/CSoundDeviceDirectSound.cs | 278 + .../コード/03.サウンド/CSoundDeviceWASAPI.cs | 447 + FDK19/コード/03.サウンド/CSoundTimer.cs | 214 + FDK19/コード/03.サウンド/Cmp3.cs | 62 + FDK19/コード/03.サウンド/Cogg.cs | 62 + FDK19/コード/03.サウンド/Cxa.cs | 380 + FDK19/コード/03.サウンド/ESoundDeviceType.cs | 15 + FDK19/コード/03.サウンド/ESoundGroup.cs | 11 + FDK19/コード/03.サウンド/ISoundDevice.cs | 26 + FDK19/コード/03.サウンド/LoudnessMetadata.cs | 22 + .../03.サウンド/LoudnessMetadataScanner.cs | 357 + FDK19/コード/03.サウンド/Lufs.cs | 47 + .../コード/03.サウンド/SongGainController.cs | 32 + FDK19/コード/03.サウンド/SoundDecoder.cs | 20 + .../03.サウンド/SoundGroupLevelController.cs | 132 + FDK19/コード/04.グラフィック/BitmapUtil.cs | 74 + FDK19/コード/04.グラフィック/CAero.cs | 78 + FDK19/コード/04.グラフィック/CAvi.cs | 306 + FDK19/コード/04.グラフィック/CTaskBar.cs | 145 + FDK19/コード/04.グラフィック/CTexture.cs | 1240 + .../04.グラフィック/CTextureAutofold.cs | 390 + .../CTextureCreateFailedException.cs | 29 + .../頂点フォーマット(Vertex)/ColoredVertex.cs | 120 + .../PositionColoredTexturedVertex.cs | 73 + .../頂点フォーマット(Vertex)/TexturedVertex.cs | 120 + .../TransformedColoredTexturedVertex.cs | 73 + .../TransformedColoredVertex.cs | 120 + .../コード/05.DirectShow/CDStoWAVFileImage.cs | 198 + FDK19/コード/05.DirectShow/CDirectShow.cs | 1610 + FDK19/コード/05.DirectShow/MemoryRenderer.cs | 36 + FDK19/コード/06.Tempo/CBeatDetect.cs | 209 + README.old.md | 35 + Readme.txt | 79 + TJAPlayer3.sln | 45 + TJAPlayer3/Animations/Animator.cs | 119 + TJAPlayer3/Animations/EaseIn.cs | 38 + TJAPlayer3/Animations/EaseInOut.cs | 46 + TJAPlayer3/Animations/EaseOut.cs | 39 + TJAPlayer3/Animations/FadeIn.cs | 34 + TJAPlayer3/Animations/FadeOut.cs | 34 + TJAPlayer3/Animations/IAnimatable.cs | 35 + TJAPlayer3/Animations/Linear.cs | 38 + TJAPlayer3/Common/CActFlushGPU.cs | 61 + TJAPlayer3/Common/CConfigIni.cs | 3066 ++ TJAPlayer3/Common/CDTXVersion.cs | 210 + TJAPlayer3/Common/CPad.cs | 225 + TJAPlayer3/Common/CPrivateFastFont.cs | 427 + TJAPlayer3/Common/CPrivateFont.cs | 1121 + TJAPlayer3/Common/CSkin.cs | 2921 ++ TJAPlayer3/Common/CVeirticalSongNameFont.cs | 35 + .../ConfigIniToSongGainControllerBinder.cs | 38 + ...figIniToSoundGroupLevelControllerBinder.cs | 67 + TJAPlayer3/Common/ConfigManager.cs | 56 + TJAPlayer3/Common/C定数.cs | 774 + TJAPlayer3/Common/C文字コンソール.cs | 128 + TJAPlayer3/Common/Discord.cs | 180 + TJAPlayer3/Common/Easing.cs | 117 + .../KeyboardSoundGroupLevelControlHandler.cs | 63 + TJAPlayer3/Common/NamePlateConfig.cs | 35 + TJAPlayer3/Common/Program.cs | 244 + TJAPlayer3/Common/TJAPlayer3.cs | 2990 ++ TJAPlayer3/DTXManiaGR.exe.x86.manifest | 8 + TJAPlayer3/GlobalSuppressions.cs | Bin 0 -> 26902 bytes TJAPlayer3/Items/CItemBase.cs | 120 + TJAPlayer3/Items/CItemInteger.cs | 125 + TJAPlayer3/Items/CItemList.cs | 153 + TJAPlayer3/Items/CItemThreeState.cs | 154 + TJAPlayer3/Items/CItemToggle.cs | 111 + TJAPlayer3/Plugins/CPluginHost.cs | 87 + TJAPlayer3/Plugins/IPluginActivity.cs | 76 + TJAPlayer3/Plugins/IPluginHost.cs | 64 + TJAPlayer3/Properties/AssemblyInfo.cs | 42 + TJAPlayer3/Properties/Discord.Designer.cs | 117 + TJAPlayer3/Properties/Discord.resx | 138 + TJAPlayer3/Properties/Resources.Designer.cs | 83 + TJAPlayer3/Properties/Resources.resx | 127 + TJAPlayer3/Properties/Settings.Designer.cs | 26 + TJAPlayer3/Properties/Settings.settings | 7 + .../Resources/TJAPlayer3-Develop-ReWrite.ico | Bin 0 -> 72393 bytes TJAPlayer3/Songs/CBoxDef.cs | 113 + TJAPlayer3/Songs/CCourse.cs | 48 + TJAPlayer3/Songs/CDTX.cs | 8495 ++++ TJAPlayer3/Songs/CDTXCompanionFileFinder.cs | 228 + TJAPlayer3/Songs/CDTXStyleExtractor.cs | 546 + TJAPlayer3/Songs/CScoreIni.cs | 1545 + TJAPlayer3/Songs/CSong管理.cs | 1827 + TJAPlayer3/Songs/CStrジャンルtoNum.cs | 57 + TJAPlayer3/Songs/Cスコア.cs | 315 + TJAPlayer3/Songs/C曲リストノード.cs | 86 + .../C曲リストノードComparers/ComparerChain.cs | 34 + .../C曲リストノードComparerAC15.cs | 12 + .../C曲リストノードComparerAC8_14.cs | 12 + .../C曲リストノードComparerタイトル.cs | 19 + .../C曲リストノードComparerノード種別.cs | 33 + .../C曲リストノードComparer絶対パス.cs | 40 + TJAPlayer3/Songs/Dan-C.cs | 391 + TJAPlayer3/Songs/GaugeIncreaseMode.cs | 29 + TJAPlayer3/Stages/01.StartUp/CStage起動.cs | 365 + TJAPlayer3/Stages/01.StartUp/TextureLoader.cs | 1114 + TJAPlayer3/Stages/02.Title/CActEnumSongs.cs | 168 + .../Stages/02.Title/CActScanningLoudness.cs | 54 + TJAPlayer3/Stages/02.Title/CEnumSongs.cs | 594 + TJAPlayer3/Stages/02.Title/CStageタイトル.cs | 758 + .../Stages/04.Config/CActConfigKeyAssign.cs | 396 + TJAPlayer3/Stages/04.Config/CActConfigList.cs | 1773 + .../Stages/04.Config/CStageコンフィグ.cs | 632 + .../05.DaniSelect/CActSelect段位リスト.cs | 376 + .../CActSelect段位挑戦選択画面.cs | 89 + .../Stages/05.DaniSelect/CStage段位選択.cs | 200 + .../Stages/05.SongSelect/CActPlayOption.cs | 350 + .../05.SongSelect/CActSelectArtistComment.cs | 236 + .../05.SongSelect/CActSelectInformation.cs | 151 + .../05.SongSelect/CActSelectPopupMenu.cs | 494 + .../05.SongSelect/CActSelectPreimageパネル.cs | 585 + .../05.SongSelect/CActSelectPresound.cs | 235 + .../05.SongSelect/CActSelectQuickConfig.cs | 273 + .../CActSelectShowCurrentPosition.cs | 90 + .../CActSelectステータスパネル.cs | 69 + .../05.SongSelect/CActSelect曲リスト.cs | 2300 + .../05.SongSelect/CActSelect演奏履歴パネル.cs | 225 + .../05.SongSelect/CActSelect難易度選択画面.cs | 490 + .../Stages/05.SongSelect/CActSortSongs.cs | 165 + TJAPlayer3/Stages/05.SongSelect/CStage選曲.cs | 1297 + .../Stages/06.SongLoading/CStage曲読み込み.cs | 645 + .../Stages/06.SongLoading/FastRender.cs | 90 + TJAPlayer3/Stages/07.Game/CAct演奏AVI.cs | 610 + .../Stages/07.Game/CAct演奏Combo共通.cs | 777 + .../Stages/07.Game/CAct演奏Combo音声.cs | 143 + .../Stages/07.Game/CAct演奏Danger共通.cs | 63 + .../Stages/07.Game/CAct演奏PauseMenu.cs | 186 + .../Stages/07.Game/CAct演奏ゲージ共通.cs | 527 + .../Stages/07.Game/CAct演奏スクロール速度.cs | 87 + .../Stages/07.Game/CAct演奏スコア共通.cs | 384 + .../Stages/07.Game/CAct演奏ステージ失敗.cs | 256 + .../07.Game/CAct演奏ステータスパネル共通.cs | 134 + .../07.Game/CAct演奏チップファイアGB.cs | 71 + .../Stages/07.Game/CAct演奏パネル文字列.cs | 338 + .../07.Game/CAct演奏レーンフラッシュGB共通.cs | 49 + TJAPlayer3/Stages/07.Game/CAct演奏演奏情報.cs | 82 + TJAPlayer3/Stages/07.Game/CInvisibleChip.cs | 196 + TJAPlayer3/Stages/07.Game/CLagLogger.cs | 112 + .../Stages/07.Game/CStage演奏画面共通.cs | 4893 +++ .../Stages/07.Game/C演奏判定ライン座標共通.cs | 202 + .../07.Game/Taiko/CAct演奏DrumsDancer.cs | 75 + .../07.Game/Taiko/CAct演奏DrumsDanger.cs | 80 + .../07.Game/Taiko/CAct演奏DrumsFooter.cs | 54 + .../Stages/07.Game/Taiko/CAct演奏DrumsMob.cs | 93 + .../07.Game/Taiko/CAct演奏DrumsMtaiko.cs | 379 + .../Taiko/CAct演奏Drumsキャラクター.cs | 394 + .../07.Game/Taiko/CAct演奏Drumsグラフ.cs | 67 + .../07.Game/Taiko/CAct演奏Drumsゲージ.cs | 466 + .../Taiko/CAct演奏Drumsゲームモード.cs | 896 + .../07.Game/Taiko/CAct演奏DrumsコンボDGB.cs | 25 + .../Taiko/CAct演奏Drumsコンボ吹き出し.cs | 208 + .../07.Game/Taiko/CAct演奏Drumsスコア.cs | 247 + .../Taiko/CAct演奏Drumsスコアランク.cs | 88 + .../Taiko/CAct演奏Drumsステータスパネル.cs | 49 + .../Taiko/CAct演奏Drumsチップエフェクト.cs | 134 + .../Taiko/CAct演奏DrumsチップファイアD.cs | 500 + .../07.Game/Taiko/CAct演奏Drumsパッド.cs | 219 + .../07.Game/Taiko/CAct演奏Drumsレーン.cs | 191 + .../Taiko/CAct演奏DrumsレーンフラッシュGB.cs | 29 + .../07.Game/Taiko/CAct演奏Drumsレーン太鼓.cs | 1027 + .../07.Game/Taiko/CAct演奏Drums判定文字列.cs | 95 + .../Taiko/CAct演奏Drums演奏終了演出.cs | 453 + .../07.Game/Taiko/CAct演奏Drums特訓モード.cs | 601 + .../Stages/07.Game/Taiko/CAct演奏Drums背景.cs | 371 + .../Stages/07.Game/Taiko/CAct演奏Drums連打.cs | 232 + .../07.Game/Taiko/CAct演奏Drums連打キャラ.cs | 262 + .../Stages/07.Game/Taiko/CAct演奏Drums風船.cs | 295 + .../07.Game/Taiko/CStage演奏ドラム画面.cs | 2338 + TJAPlayer3/Stages/07.Game/Taiko/Dan_Cert.cs | 1079 + TJAPlayer3/Stages/07.Game/Taiko/FireWorks.cs | 120 + .../Stages/07.Game/Taiko/FlyingNotes.cs | 191 + TJAPlayer3/Stages/07.Game/Taiko/GoGoSplash.cs | 85 + TJAPlayer3/Stages/07.Game/Taiko/LaneFlash.cs | 58 + TJAPlayer3/Stages/07.Game/Taiko/PuchiChara.cs | 60 + TJAPlayer3/Stages/07.Game/Taiko/Rainbow.cs | 168 + .../Stages/07.Game/Taiko/TaikoLaneFlash.cs | 93 + .../Stages/08.Result/CActResultImage.cs | 115 + .../08.Result/CActResultParameterPanel.cs | 856 + TJAPlayer3/Stages/08.Result/CActResultRank.cs | 69 + .../Stages/08.Result/CActResultSongBar.cs | 130 + TJAPlayer3/Stages/08.Result/CStage結果.cs | 661 + TJAPlayer3/Stages/09.Ending/CStage終了.cs | 182 + .../Stages/10.ChangeSkin/CStageChangeSkin.cs | 104 + TJAPlayer3/Stages/CActDFPFont.cs | 601 + TJAPlayer3/Stages/CActFIFOBlack.cs | 81 + TJAPlayer3/Stages/CActFIFOResult.cs | 110 + TJAPlayer3/Stages/CActFIFOStart.cs | 213 + TJAPlayer3/Stages/CActFIFOWhite.cs | 84 + TJAPlayer3/Stages/CActLVLNFont.cs | 126 + TJAPlayer3/Stages/CActオプションパネル.cs | 140 + TJAPlayer3/Stages/CDTXVmode.cs | 417 + TJAPlayer3/Stages/CNamePlate.cs | 346 + TJAPlayer3/Stages/CStage.cs | 73 + TJAPlayer3/TJAPlayer3-Develop-ReWrite.ico | Bin 0 -> 72393 bytes TJAPlayer3/TJAPlayer3.csproj | 367 + TJAPlayer3/TJAPlayer3.csproj.user | 27 + TJAPlayer3/TJAPlayer3.manifest | 8 + TJAPlayer3/app.config | 12 + TJAPlayer3/dtx.ico | Bin 0 -> 766 bytes TJAPlayer3/packages.config | 12 + Test/DirectX Redist/APR2007_xinput_x64.cab | Bin 0 -> 97833 bytes Test/DirectX Redist/APR2007_xinput_x86.cab | Bin 0 -> 54318 bytes Test/DirectX Redist/DSETUP.dll | Bin 0 -> 89944 bytes Test/DirectX Redist/Feb2010_X3DAudio_x64.cab | Bin 0 -> 54678 bytes Test/DirectX Redist/Feb2010_X3DAudio_x86.cab | Bin 0 -> 20713 bytes .../Jun2010_D3DCompiler_43_x64.cab | Bin 0 -> 944460 bytes .../Jun2010_D3DCompiler_43_x86.cab | Bin 0 -> 931471 bytes Test/DirectX Redist/Jun2010_XAudio_x64.cab | Bin 0 -> 277338 bytes Test/DirectX Redist/Jun2010_XAudio_x86.cab | Bin 0 -> 278060 bytes Test/DirectX Redist/Jun2010_d3dcsx_43_x64.cab | Bin 0 -> 752783 bytes Test/DirectX Redist/Jun2010_d3dcsx_43_x86.cab | Bin 0 -> 762188 bytes Test/DirectX Redist/Jun2010_d3dx10_43_x64.cab | Bin 0 -> 235955 bytes Test/DirectX Redist/Jun2010_d3dx10_43_x86.cab | Bin 0 -> 197283 bytes Test/DirectX Redist/Jun2010_d3dx11_43_x64.cab | Bin 0 -> 138205 bytes Test/DirectX Redist/Jun2010_d3dx11_43_x86.cab | Bin 0 -> 109445 bytes Test/DirectX Redist/Jun2010_d3dx9_43_x64.cab | Bin 0 -> 937246 bytes Test/DirectX Redist/Jun2010_d3dx9_43_x86.cab | Bin 0 -> 768036 bytes Test/DirectX Redist/README_JP.txt | 22 + Test/DirectX Redist/dsetup32.dll | Bin 0 -> 1801048 bytes Test/DirectX Redist/dxdllreg_x86.cab | Bin 0 -> 42410 bytes Test/DirectX Redist/dxupdate.cab | Bin 0 -> 94011 bytes Test/FDK.MemoryRenderer.dll | Bin 0 -> 65024 bytes Test/Licenses/BASS/LICENSE(BASS.Net).rtf | 352 + Test/Licenses/BASS/license(BASS).txt | 105 + Test/Licenses/CSharpTest.Net.Collections.txt | 202 + Test/Licenses/DirectShowLib.txt | 513 + .../IPA_Font_License_Agreement_v1.0.txt | 117 + Test/Licenses/SlimDX/CodeLicense.txt | 19 + Test/Licenses/SlimDX/MediaLicense.txt | 20 + Test/Licenses/discord-rpc | 19 + Test/Licenses/dtxmania.txt | 23 + Test/Licenses/libogg_libvorbis.txt | 28 + Test/Licenses/xadec.txt | 13 + Test/Readme.txt | 79 + Test/Readme/Read this before you start.txt | 98 + .../起動前にこれに目を通してください.txt | 96 + Test/TJAPlayer3-Develop-ReWrite.exe.config | 12 + Test/discord-rpc.dll | Bin 0 -> 307720 bytes Test/dll/Bass.Net.dll | Bin 0 -> 671744 bytes Test/dll/DirectShowLib-2005.dll | Bin 0 -> 303104 bytes Test/dll/FDK.dll | Bin 0 -> 375296 bytes Test/dll/Hnx8.ReadJEnc.dll | Bin 0 -> 17408 bytes Test/dll/Hnx8.ReadJEnc.xml | 499 + Test/dll/Microsoft.VC90.CRT.manifest | 6 + Test/dll/Newtonsoft.Json.dll | Bin 0 -> 700336 bytes Test/dll/Newtonsoft.Json.xml | 11262 +++++ Test/dll/SharpDX.DXGI.dll | Bin 0 -> 148480 bytes Test/dll/SharpDX.DXGI.xml | 8737 ++++ Test/dll/SharpDX.Direct3D9.dll | Bin 0 -> 338944 bytes Test/dll/SharpDX.Direct3D9.xml | 36489 ++++++++++++++++ Test/dll/SharpDX.DirectInput.dll | Bin 0 -> 151040 bytes Test/dll/SharpDX.DirectInput.xml | 11661 +++++ Test/dll/SharpDX.DirectSound.dll | Bin 0 -> 55808 bytes Test/dll/SharpDX.DirectSound.xml | 6976 +++ Test/dll/SharpDX.Mathematics.dll | Bin 0 -> 215552 bytes Test/dll/SharpDX.Mathematics.xml | 16449 +++++++ Test/dll/SharpDX.dll | Bin 0 -> 274944 bytes Test/dll/SoundDecoder.dll | Bin 0 -> 293888 bytes Test/dll/bass.dll | Bin 0 -> 111772 bytes Test/dll/bass_fx.dll | Bin 0 -> 34392 bytes Test/dll/bassasio.dll | Bin 0 -> 16213 bytes Test/dll/bassenc.dll | Bin 0 -> 19396 bytes Test/dll/bassmix.dll | Bin 0 -> 19581 bytes Test/dll/basswasapi.dll | Bin 0 -> 12166 bytes Test/dll/msvcm90.dll | Bin 0 -> 225280 bytes Test/dll/msvcp90.dll | Bin 0 -> 569680 bytes Test/dll/msvcr90.dll | Bin 0 -> 653136 bytes Test/dll/xadec.dll | Bin 0 -> 49152 bytes 332 files changed, 183853 insertions(+) create mode 100644 Config.ini create mode 100644 FDK19/FDK19.csproj create mode 100644 FDK19/FDK19.csproj.user create mode 100644 FDK19/Properties/AssemblyInfo.cs create mode 100644 FDK19/packages.config create mode 100644 FDK19/コード/00.共通/CActivity.cs create mode 100644 FDK19/コード/00.共通/CCounter.cs create mode 100644 FDK19/コード/00.共通/CCpuCores.cs create mode 100644 FDK19/コード/00.共通/CFPS.cs create mode 100644 FDK19/コード/00.共通/CIniFile.cs create mode 100644 FDK19/コード/00.共通/CJudgeTextEncoding.cs create mode 100644 FDK19/コード/00.共通/COS.cs create mode 100644 FDK19/コード/00.共通/CPowerManagement.cs create mode 100644 FDK19/コード/00.共通/CSendMessage.cs create mode 100644 FDK19/コード/00.共通/CTimer.cs create mode 100644 FDK19/コード/00.共通/CTimerBase.cs create mode 100644 FDK19/コード/00.共通/CTraceLogListener.cs create mode 100644 FDK19/コード/00.共通/CWin32.cs create mode 100644 FDK19/コード/00.共通/C一定間隔処理.cs create mode 100644 FDK19/コード/00.共通/C共通.cs create mode 100644 FDK19/コード/00.共通/C変換.cs create mode 100644 FDK19/コード/00.共通/ExtensionMethods/DoubleExtensions.cs create mode 100644 FDK19/コード/00.共通/ExtensionMethods/Int32Extensions.cs create mode 100644 FDK19/コード/01.フレームワーク/Core/Game.cs create mode 100644 FDK19/コード/01.フレームワーク/Core/GameClock.cs create mode 100644 FDK19/コード/01.フレームワーク/Core/GameTime.cs create mode 100644 FDK19/コード/01.フレームワーク/Core/GameWindow.cs create mode 100644 FDK19/コード/01.フレームワーク/Core/GameWindow.resx create mode 100644 FDK19/コード/01.フレームワーク/Core/GameWindowSize.cs create mode 100644 FDK19/コード/01.フレームワーク/DeviceSettings/ConversionMethods.cs create mode 100644 FDK19/コード/01.フレームワーク/DeviceSettings/DeviceSettings.cs create mode 100644 FDK19/コード/01.フレームワーク/DeviceSettings/Direct3D9Settings.cs create mode 100644 FDK19/コード/01.フレームワーク/Enumeration/Enumeration9.cs create mode 100644 FDK19/コード/01.フレームワーク/Properties/Resources.Designer.cs create mode 100644 FDK19/コード/01.フレームワーク/Properties/Resources.resx create mode 100644 FDK19/コード/01.フレームワーク/Rendering/DeviceCache.cs create mode 100644 FDK19/コード/01.フレームワーク/Rendering/DeviceCreationException.cs create mode 100644 FDK19/コード/01.フレームワーク/Rendering/Direct3D9Manager.cs create mode 100644 FDK19/コード/01.フレームワーク/Rendering/Enums.cs create mode 100644 FDK19/コード/01.フレームワーク/Rendering/GraphicsDeviceManager.cs create mode 100644 FDK19/コード/01.フレームワーク/Rendering/NoCompatibleDevicesException.cs create mode 100644 FDK19/コード/01.フレームワーク/Rendering/VertexElementAttribute.cs create mode 100644 FDK19/コード/01.フレームワーク/Resources/sdx_icon_black.ico create mode 100644 FDK19/コード/01.フレームワーク/Utilities/Camera.cs create mode 100644 FDK19/コード/01.フレームワーク/Utilities/TransformedColoredTexturedVertex.cs create mode 100644 FDK19/コード/01.フレームワーク/Utilities/TransformedColoredVertex.cs create mode 100644 FDK19/コード/01.フレームワーク/Win32/NativeMethods.cs create mode 100644 FDK19/コード/01.フレームワーク/Win32/NativeStructures.cs create mode 100644 FDK19/コード/01.フレームワーク/Win32/WindowConstants.cs create mode 100644 FDK19/コード/02.入力/CInputJoystick.cs create mode 100644 FDK19/コード/02.入力/CInputKeyboard.cs create mode 100644 FDK19/コード/02.入力/CInputMIDI.cs create mode 100644 FDK19/コード/02.入力/CInputMouse.cs create mode 100644 FDK19/コード/02.入力/CInput管理.cs create mode 100644 FDK19/コード/02.入力/DeviceConstantConverter.cs create mode 100644 FDK19/コード/02.入力/E入力デバイス種別.cs create mode 100644 FDK19/コード/02.入力/IInputDevice.cs create mode 100644 FDK19/コード/02.入力/STInputEvent.cs create mode 100644 FDK19/コード/02.入力/SlimDXKeys.cs create mode 100644 FDK19/コード/03.サウンド/CSound.cs create mode 100644 FDK19/コード/03.サウンド/CSoundDeviceASIO.cs create mode 100644 FDK19/コード/03.サウンド/CSoundDeviceDirectSound.cs create mode 100644 FDK19/コード/03.サウンド/CSoundDeviceWASAPI.cs create mode 100644 FDK19/コード/03.サウンド/CSoundTimer.cs create mode 100644 FDK19/コード/03.サウンド/Cmp3.cs create mode 100644 FDK19/コード/03.サウンド/Cogg.cs create mode 100644 FDK19/コード/03.サウンド/Cxa.cs create mode 100644 FDK19/コード/03.サウンド/ESoundDeviceType.cs create mode 100644 FDK19/コード/03.サウンド/ESoundGroup.cs create mode 100644 FDK19/コード/03.サウンド/ISoundDevice.cs create mode 100644 FDK19/コード/03.サウンド/LoudnessMetadata.cs create mode 100644 FDK19/コード/03.サウンド/LoudnessMetadataScanner.cs create mode 100644 FDK19/コード/03.サウンド/Lufs.cs create mode 100644 FDK19/コード/03.サウンド/SongGainController.cs create mode 100644 FDK19/コード/03.サウンド/SoundDecoder.cs create mode 100644 FDK19/コード/03.サウンド/SoundGroupLevelController.cs create mode 100644 FDK19/コード/04.グラフィック/BitmapUtil.cs create mode 100644 FDK19/コード/04.グラフィック/CAero.cs create mode 100644 FDK19/コード/04.グラフィック/CAvi.cs create mode 100644 FDK19/コード/04.グラフィック/CTaskBar.cs create mode 100644 FDK19/コード/04.グラフィック/CTexture.cs create mode 100644 FDK19/コード/04.グラフィック/CTextureAutofold.cs create mode 100644 FDK19/コード/04.グラフィック/CTextureCreateFailedException.cs create mode 100644 FDK19/コード/04.グラフィック/頂点フォーマット(Vertex)/ColoredVertex.cs create mode 100644 FDK19/コード/04.グラフィック/頂点フォーマット(Vertex)/PositionColoredTexturedVertex.cs create mode 100644 FDK19/コード/04.グラフィック/頂点フォーマット(Vertex)/TexturedVertex.cs create mode 100644 FDK19/コード/04.グラフィック/頂点フォーマット(Vertex)/TransformedColoredTexturedVertex.cs create mode 100644 FDK19/コード/04.グラフィック/頂点フォーマット(Vertex)/TransformedColoredVertex.cs create mode 100644 FDK19/コード/05.DirectShow/CDStoWAVFileImage.cs create mode 100644 FDK19/コード/05.DirectShow/CDirectShow.cs create mode 100644 FDK19/コード/05.DirectShow/MemoryRenderer.cs create mode 100644 FDK19/コード/06.Tempo/CBeatDetect.cs create mode 100644 README.old.md create mode 100644 Readme.txt create mode 100644 TJAPlayer3.sln create mode 100644 TJAPlayer3/Animations/Animator.cs create mode 100644 TJAPlayer3/Animations/EaseIn.cs create mode 100644 TJAPlayer3/Animations/EaseInOut.cs create mode 100644 TJAPlayer3/Animations/EaseOut.cs create mode 100644 TJAPlayer3/Animations/FadeIn.cs create mode 100644 TJAPlayer3/Animations/FadeOut.cs create mode 100644 TJAPlayer3/Animations/IAnimatable.cs create mode 100644 TJAPlayer3/Animations/Linear.cs create mode 100644 TJAPlayer3/Common/CActFlushGPU.cs create mode 100644 TJAPlayer3/Common/CConfigIni.cs create mode 100644 TJAPlayer3/Common/CDTXVersion.cs create mode 100644 TJAPlayer3/Common/CPad.cs create mode 100644 TJAPlayer3/Common/CPrivateFastFont.cs create mode 100644 TJAPlayer3/Common/CPrivateFont.cs create mode 100644 TJAPlayer3/Common/CSkin.cs create mode 100644 TJAPlayer3/Common/CVeirticalSongNameFont.cs create mode 100644 TJAPlayer3/Common/ConfigIniToSongGainControllerBinder.cs create mode 100644 TJAPlayer3/Common/ConfigIniToSoundGroupLevelControllerBinder.cs create mode 100644 TJAPlayer3/Common/ConfigManager.cs create mode 100644 TJAPlayer3/Common/C定数.cs create mode 100644 TJAPlayer3/Common/C文字コンソール.cs create mode 100644 TJAPlayer3/Common/Discord.cs create mode 100644 TJAPlayer3/Common/Easing.cs create mode 100644 TJAPlayer3/Common/KeyboardSoundGroupLevelControlHandler.cs create mode 100644 TJAPlayer3/Common/NamePlateConfig.cs create mode 100644 TJAPlayer3/Common/Program.cs create mode 100644 TJAPlayer3/Common/TJAPlayer3.cs create mode 100644 TJAPlayer3/DTXManiaGR.exe.x86.manifest create mode 100644 TJAPlayer3/GlobalSuppressions.cs create mode 100644 TJAPlayer3/Items/CItemBase.cs create mode 100644 TJAPlayer3/Items/CItemInteger.cs create mode 100644 TJAPlayer3/Items/CItemList.cs create mode 100644 TJAPlayer3/Items/CItemThreeState.cs create mode 100644 TJAPlayer3/Items/CItemToggle.cs create mode 100644 TJAPlayer3/Plugins/CPluginHost.cs create mode 100644 TJAPlayer3/Plugins/IPluginActivity.cs create mode 100644 TJAPlayer3/Plugins/IPluginHost.cs create mode 100644 TJAPlayer3/Properties/AssemblyInfo.cs create mode 100644 TJAPlayer3/Properties/Discord.Designer.cs create mode 100644 TJAPlayer3/Properties/Discord.resx create mode 100644 TJAPlayer3/Properties/Resources.Designer.cs create mode 100644 TJAPlayer3/Properties/Resources.resx create mode 100644 TJAPlayer3/Properties/Settings.Designer.cs create mode 100644 TJAPlayer3/Properties/Settings.settings create mode 100644 TJAPlayer3/Resources/TJAPlayer3-Develop-ReWrite.ico create mode 100644 TJAPlayer3/Songs/CBoxDef.cs create mode 100644 TJAPlayer3/Songs/CCourse.cs create mode 100644 TJAPlayer3/Songs/CDTX.cs create mode 100644 TJAPlayer3/Songs/CDTXCompanionFileFinder.cs create mode 100644 TJAPlayer3/Songs/CDTXStyleExtractor.cs create mode 100644 TJAPlayer3/Songs/CScoreIni.cs create mode 100644 TJAPlayer3/Songs/CSong管理.cs create mode 100644 TJAPlayer3/Songs/CStrジャンルtoNum.cs create mode 100644 TJAPlayer3/Songs/Cスコア.cs create mode 100644 TJAPlayer3/Songs/C曲リストノード.cs create mode 100644 TJAPlayer3/Songs/C曲リストノードComparers/ComparerChain.cs create mode 100644 TJAPlayer3/Songs/C曲リストノードComparers/C曲リストノードComparerAC15.cs create mode 100644 TJAPlayer3/Songs/C曲リストノードComparers/C曲リストノードComparerAC8_14.cs create mode 100644 TJAPlayer3/Songs/C曲リストノードComparers/C曲リストノードComparerタイトル.cs create mode 100644 TJAPlayer3/Songs/C曲リストノードComparers/C曲リストノードComparerノード種別.cs create mode 100644 TJAPlayer3/Songs/C曲リストノードComparers/C曲リストノードComparer絶対パス.cs create mode 100644 TJAPlayer3/Songs/Dan-C.cs create mode 100644 TJAPlayer3/Songs/GaugeIncreaseMode.cs create mode 100644 TJAPlayer3/Stages/01.StartUp/CStage起動.cs create mode 100644 TJAPlayer3/Stages/01.StartUp/TextureLoader.cs create mode 100644 TJAPlayer3/Stages/02.Title/CActEnumSongs.cs create mode 100644 TJAPlayer3/Stages/02.Title/CActScanningLoudness.cs create mode 100644 TJAPlayer3/Stages/02.Title/CEnumSongs.cs create mode 100644 TJAPlayer3/Stages/02.Title/CStageタイトル.cs create mode 100644 TJAPlayer3/Stages/04.Config/CActConfigKeyAssign.cs create mode 100644 TJAPlayer3/Stages/04.Config/CActConfigList.cs create mode 100644 TJAPlayer3/Stages/04.Config/CStageコンフィグ.cs create mode 100644 TJAPlayer3/Stages/05.DaniSelect/CActSelect段位リスト.cs create mode 100644 TJAPlayer3/Stages/05.DaniSelect/CActSelect段位挑戦選択画面.cs create mode 100644 TJAPlayer3/Stages/05.DaniSelect/CStage段位選択.cs create mode 100644 TJAPlayer3/Stages/05.SongSelect/CActPlayOption.cs create mode 100644 TJAPlayer3/Stages/05.SongSelect/CActSelectArtistComment.cs create mode 100644 TJAPlayer3/Stages/05.SongSelect/CActSelectInformation.cs create mode 100644 TJAPlayer3/Stages/05.SongSelect/CActSelectPopupMenu.cs create mode 100644 TJAPlayer3/Stages/05.SongSelect/CActSelectPreimageパネル.cs create mode 100644 TJAPlayer3/Stages/05.SongSelect/CActSelectPresound.cs create mode 100644 TJAPlayer3/Stages/05.SongSelect/CActSelectQuickConfig.cs create mode 100644 TJAPlayer3/Stages/05.SongSelect/CActSelectShowCurrentPosition.cs create mode 100644 TJAPlayer3/Stages/05.SongSelect/CActSelectステータスパネル.cs create mode 100644 TJAPlayer3/Stages/05.SongSelect/CActSelect曲リスト.cs create mode 100644 TJAPlayer3/Stages/05.SongSelect/CActSelect演奏履歴パネル.cs create mode 100644 TJAPlayer3/Stages/05.SongSelect/CActSelect難易度選択画面.cs create mode 100644 TJAPlayer3/Stages/05.SongSelect/CActSortSongs.cs create mode 100644 TJAPlayer3/Stages/05.SongSelect/CStage選曲.cs create mode 100644 TJAPlayer3/Stages/06.SongLoading/CStage曲読み込み.cs create mode 100644 TJAPlayer3/Stages/06.SongLoading/FastRender.cs create mode 100644 TJAPlayer3/Stages/07.Game/CAct演奏AVI.cs create mode 100644 TJAPlayer3/Stages/07.Game/CAct演奏Combo共通.cs create mode 100644 TJAPlayer3/Stages/07.Game/CAct演奏Combo音声.cs create mode 100644 TJAPlayer3/Stages/07.Game/CAct演奏Danger共通.cs create mode 100644 TJAPlayer3/Stages/07.Game/CAct演奏PauseMenu.cs create mode 100644 TJAPlayer3/Stages/07.Game/CAct演奏ゲージ共通.cs create mode 100644 TJAPlayer3/Stages/07.Game/CAct演奏スクロール速度.cs create mode 100644 TJAPlayer3/Stages/07.Game/CAct演奏スコア共通.cs create mode 100644 TJAPlayer3/Stages/07.Game/CAct演奏ステージ失敗.cs create mode 100644 TJAPlayer3/Stages/07.Game/CAct演奏ステータスパネル共通.cs create mode 100644 TJAPlayer3/Stages/07.Game/CAct演奏チップファイアGB.cs create mode 100644 TJAPlayer3/Stages/07.Game/CAct演奏パネル文字列.cs create mode 100644 TJAPlayer3/Stages/07.Game/CAct演奏レーンフラッシュGB共通.cs create mode 100644 TJAPlayer3/Stages/07.Game/CAct演奏演奏情報.cs create mode 100644 TJAPlayer3/Stages/07.Game/CInvisibleChip.cs create mode 100644 TJAPlayer3/Stages/07.Game/CLagLogger.cs create mode 100644 TJAPlayer3/Stages/07.Game/CStage演奏画面共通.cs create mode 100644 TJAPlayer3/Stages/07.Game/C演奏判定ライン座標共通.cs create mode 100644 TJAPlayer3/Stages/07.Game/Taiko/CAct演奏DrumsDancer.cs create mode 100644 TJAPlayer3/Stages/07.Game/Taiko/CAct演奏DrumsDanger.cs create mode 100644 TJAPlayer3/Stages/07.Game/Taiko/CAct演奏DrumsFooter.cs create mode 100644 TJAPlayer3/Stages/07.Game/Taiko/CAct演奏DrumsMob.cs create mode 100644 TJAPlayer3/Stages/07.Game/Taiko/CAct演奏DrumsMtaiko.cs create mode 100644 TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsキャラクター.cs create mode 100644 TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsグラフ.cs create mode 100644 TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsゲージ.cs create mode 100644 TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsゲームモード.cs create mode 100644 TJAPlayer3/Stages/07.Game/Taiko/CAct演奏DrumsコンボDGB.cs create mode 100644 TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsコンボ吹き出し.cs create mode 100644 TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsスコア.cs create mode 100644 TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsスコアランク.cs create mode 100644 TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsステータスパネル.cs create mode 100644 TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsチップエフェクト.cs create mode 100644 TJAPlayer3/Stages/07.Game/Taiko/CAct演奏DrumsチップファイアD.cs create mode 100644 TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsパッド.cs create mode 100644 TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsレーン.cs create mode 100644 TJAPlayer3/Stages/07.Game/Taiko/CAct演奏DrumsレーンフラッシュGB.cs create mode 100644 TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsレーン太鼓.cs create mode 100644 TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drums判定文字列.cs create mode 100644 TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drums演奏終了演出.cs create mode 100644 TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drums特訓モード.cs create mode 100644 TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drums背景.cs create mode 100644 TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drums連打.cs create mode 100644 TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drums連打キャラ.cs create mode 100644 TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drums風船.cs create mode 100644 TJAPlayer3/Stages/07.Game/Taiko/CStage演奏ドラム画面.cs create mode 100644 TJAPlayer3/Stages/07.Game/Taiko/Dan_Cert.cs create mode 100644 TJAPlayer3/Stages/07.Game/Taiko/FireWorks.cs create mode 100644 TJAPlayer3/Stages/07.Game/Taiko/FlyingNotes.cs create mode 100644 TJAPlayer3/Stages/07.Game/Taiko/GoGoSplash.cs create mode 100644 TJAPlayer3/Stages/07.Game/Taiko/LaneFlash.cs create mode 100644 TJAPlayer3/Stages/07.Game/Taiko/PuchiChara.cs create mode 100644 TJAPlayer3/Stages/07.Game/Taiko/Rainbow.cs create mode 100644 TJAPlayer3/Stages/07.Game/Taiko/TaikoLaneFlash.cs create mode 100644 TJAPlayer3/Stages/08.Result/CActResultImage.cs create mode 100644 TJAPlayer3/Stages/08.Result/CActResultParameterPanel.cs create mode 100644 TJAPlayer3/Stages/08.Result/CActResultRank.cs create mode 100644 TJAPlayer3/Stages/08.Result/CActResultSongBar.cs create mode 100644 TJAPlayer3/Stages/08.Result/CStage結果.cs create mode 100644 TJAPlayer3/Stages/09.Ending/CStage終了.cs create mode 100644 TJAPlayer3/Stages/10.ChangeSkin/CStageChangeSkin.cs create mode 100644 TJAPlayer3/Stages/CActDFPFont.cs create mode 100644 TJAPlayer3/Stages/CActFIFOBlack.cs create mode 100644 TJAPlayer3/Stages/CActFIFOResult.cs create mode 100644 TJAPlayer3/Stages/CActFIFOStart.cs create mode 100644 TJAPlayer3/Stages/CActFIFOWhite.cs create mode 100644 TJAPlayer3/Stages/CActLVLNFont.cs create mode 100644 TJAPlayer3/Stages/CActオプションパネル.cs create mode 100644 TJAPlayer3/Stages/CDTXVmode.cs create mode 100644 TJAPlayer3/Stages/CNamePlate.cs create mode 100644 TJAPlayer3/Stages/CStage.cs create mode 100644 TJAPlayer3/TJAPlayer3-Develop-ReWrite.ico create mode 100644 TJAPlayer3/TJAPlayer3.csproj create mode 100644 TJAPlayer3/TJAPlayer3.csproj.user create mode 100644 TJAPlayer3/TJAPlayer3.manifest create mode 100644 TJAPlayer3/app.config create mode 100644 TJAPlayer3/dtx.ico create mode 100644 TJAPlayer3/packages.config create mode 100644 Test/DirectX Redist/APR2007_xinput_x64.cab create mode 100644 Test/DirectX Redist/APR2007_xinput_x86.cab create mode 100644 Test/DirectX Redist/DSETUP.dll create mode 100644 Test/DirectX Redist/Feb2010_X3DAudio_x64.cab create mode 100644 Test/DirectX Redist/Feb2010_X3DAudio_x86.cab create mode 100644 Test/DirectX Redist/Jun2010_D3DCompiler_43_x64.cab create mode 100644 Test/DirectX Redist/Jun2010_D3DCompiler_43_x86.cab create mode 100644 Test/DirectX Redist/Jun2010_XAudio_x64.cab create mode 100644 Test/DirectX Redist/Jun2010_XAudio_x86.cab create mode 100644 Test/DirectX Redist/Jun2010_d3dcsx_43_x64.cab create mode 100644 Test/DirectX Redist/Jun2010_d3dcsx_43_x86.cab create mode 100644 Test/DirectX Redist/Jun2010_d3dx10_43_x64.cab create mode 100644 Test/DirectX Redist/Jun2010_d3dx10_43_x86.cab create mode 100644 Test/DirectX Redist/Jun2010_d3dx11_43_x64.cab create mode 100644 Test/DirectX Redist/Jun2010_d3dx11_43_x86.cab create mode 100644 Test/DirectX Redist/Jun2010_d3dx9_43_x64.cab create mode 100644 Test/DirectX Redist/Jun2010_d3dx9_43_x86.cab create mode 100644 Test/DirectX Redist/README_JP.txt create mode 100644 Test/DirectX Redist/dsetup32.dll create mode 100644 Test/DirectX Redist/dxdllreg_x86.cab create mode 100644 Test/DirectX Redist/dxupdate.cab create mode 100644 Test/FDK.MemoryRenderer.dll create mode 100644 Test/Licenses/BASS/LICENSE(BASS.Net).rtf create mode 100644 Test/Licenses/BASS/license(BASS).txt create mode 100644 Test/Licenses/CSharpTest.Net.Collections.txt create mode 100644 Test/Licenses/DirectShowLib.txt create mode 100644 Test/Licenses/IPA_Font_License_Agreement_v1.0.txt create mode 100644 Test/Licenses/SlimDX/CodeLicense.txt create mode 100644 Test/Licenses/SlimDX/MediaLicense.txt create mode 100644 Test/Licenses/discord-rpc create mode 100644 Test/Licenses/dtxmania.txt create mode 100644 Test/Licenses/libogg_libvorbis.txt create mode 100644 Test/Licenses/xadec.txt create mode 100644 Test/Readme.txt create mode 100644 Test/Readme/Read this before you start.txt create mode 100644 Test/Readme/起動前にこれに目を通してください.txt create mode 100644 Test/TJAPlayer3-Develop-ReWrite.exe.config create mode 100644 Test/discord-rpc.dll create mode 100644 Test/dll/Bass.Net.dll create mode 100644 Test/dll/DirectShowLib-2005.dll create mode 100644 Test/dll/FDK.dll create mode 100644 Test/dll/Hnx8.ReadJEnc.dll create mode 100644 Test/dll/Hnx8.ReadJEnc.xml create mode 100644 Test/dll/Microsoft.VC90.CRT.manifest create mode 100644 Test/dll/Newtonsoft.Json.dll create mode 100644 Test/dll/Newtonsoft.Json.xml create mode 100644 Test/dll/SharpDX.DXGI.dll create mode 100644 Test/dll/SharpDX.DXGI.xml create mode 100644 Test/dll/SharpDX.Direct3D9.dll create mode 100644 Test/dll/SharpDX.Direct3D9.xml create mode 100644 Test/dll/SharpDX.DirectInput.dll create mode 100644 Test/dll/SharpDX.DirectInput.xml create mode 100644 Test/dll/SharpDX.DirectSound.dll create mode 100644 Test/dll/SharpDX.DirectSound.xml create mode 100644 Test/dll/SharpDX.Mathematics.dll create mode 100644 Test/dll/SharpDX.Mathematics.xml create mode 100644 Test/dll/SharpDX.dll create mode 100644 Test/dll/SoundDecoder.dll create mode 100644 Test/dll/bass.dll create mode 100644 Test/dll/bass_fx.dll create mode 100644 Test/dll/bassasio.dll create mode 100644 Test/dll/bassenc.dll create mode 100644 Test/dll/bassmix.dll create mode 100644 Test/dll/basswasapi.dll create mode 100644 Test/dll/msvcm90.dll create mode 100644 Test/dll/msvcp90.dll create mode 100644 Test/dll/msvcr90.dll create mode 100644 Test/dll/xadec.dll diff --git a/Config.ini b/Config.ini new file mode 100644 index 00000000..2015654c --- /dev/null +++ b/Config.ini @@ -0,0 +1,389 @@ +;------------------- +[System] + +; [Xo[W +; Release Version. +Version=1.5.7 + +; ʃt@Ci[ĂtH_ւ̃pXB +; Z~R(;)ŋ؂邱Ƃɂ蕡̃pXwł܂Bi: d:\tja\;e:\tja2\j +; Pathes for TJA data. +; You can specify many pathes separated with semicolon(;). (e.g. d:\tja\;e:\tja2\) +TJAPath=.\ + +; gpSkiñtH_B +; Ⴆ System\Default\Graphics\... Ȃǂ̏ꍇ́ASkinPath=.\Default\ w肵܂B +; Skin folder path. +; e.g. System\Default\Graphics\... -> Set SkinPath=.\Default\ +SkinPath=SimpleStyle\ + +; O摜`@\gǂB(0: OFF, 1: ON) +; Use pre-textures render. +FastRender=1 + +; ʃ[h(0:EBhE, 1:S) +; Screen mode. (0:Window, 1:Fullscreen) +FullScreen=0 + +; EChE[h̉ʕ +; A width size in the window mode. +WindowWidth=1280 + +; EChE[h̉ʍ +; A height size in the window mode. +WindowHeight=720 + +; EBhE[ḧʒuX +; X position in the window mode. +WindowX=310 + +; EBhE[ḧʒuY +; Y position in the window mode. +WindowY=152 + +; EChE_uNbNɃtXN[Ɉڍs邩(0:ڍsȂ,1:ڍs) +; Whether double click to go full screen mode or not.(0:No, 1:Yes) +DoubleClickFullScreen=1 + +; ALT+SPACẼj[\}邩ǂ(0:} 1:}Ȃ) +; Whether ALT+SPACE menu would be masked or not.(0=masked 1=not masked) +EnableSystemMenu=1 + +; tH[JXsleepl[ms] +; A sleep time[ms] while the window is inactive. +BackSleep=1 + +; tHg_OɎgptHg +; Font name used for font rendering. +FontName=FOT-]ˊ Std E + +; A(0:OFF,1:ON) +VSyncWait=1 + +; t[sleepl[ms] (-1ŃX[v, 0ȏŖt[X[vBLv`Ŋp) +; A sleep time[ms] per frame. +SleepTimePerFrame=-1 + +; TEho͕(0=ACM(č͂܂DirectSoundł), 1=ASIO, 2=WASAPI) +; WASAPIVistaȍ~OSŎgp”\BWASAPIB +; ȂAWASAPIgps‚ȂASIOAASIOgps‚ȂACMgp܂B +; Sound device type(0=ACM, 1=ASIO, 2=WASAPI) +; WASAPI can use on Vista or later OSs. +; If WASAPI is not available, DTXMania try to use ASIO. If ASIO can't be used, ACM is used. +SoundDeviceType=2 + +; WASAPIgp̃TEhobt@TCY +; (0=foCXɐݒ肳Ălgp, 1`9999=obt@TCY(P:ms)̎蓮w +; WASAPI Sound Buffer Size. +; (0=Use system default buffer size, 1-9999=specify the buffer size(ms) by yourself) +WASAPIBufferSizeMs=50 + +; ASIOgp̃TEhfoCX +; ݂ȂfoCXw肷ƁADTXManiaNȂƂ܂B +; Sound device used by ASIO. +; Don't specify unconnected device, as the DTXMania may not bootup. +; 0: None +ASIODevice=0 + +; WASAPI/ASIOɎgp鉉t^C}[̎ +; Playback timer used for WASAPI/ASIO +; (0=FDK Timer, 1=System Timer) +SoundTimerType=0 + +; wi摜̔(0:`255:s) +; Transparency for background image in playing screen.(0:tranaparent - 255:no transparent) +BGAlpha=100 + +; Q[W[STAGE FAILED (0:OFF, 1:ON) +StageFailed=1 + +; AVI̕\(0:OFF, 1:ON) +AVI=0 + +; BGA̕\(0:OFF, 1:ON) +BGA=1 + +; \[h( 0:\Ȃ, 1:wî, 2:\̂, 3:) +ClipDispType=1 + +; ȑIvr[̍Đ܂ł̃EFCg[ms] +PreviewSoundWait=1000 + +; ȑIvr[摜\܂ł̃EFCg[ms] +PreviewImageWait=100 + +; BGM ̍Đ(0:OFF, 1:ON) +BGMSound=1 + +; tL^i`.score.inij̏o (0:OFF, 1:ON) +SaveScoreIni=1 + +; ŏ\R{ +MinComboDrums=10 + +; RANDOM SELECT ŎqBOXΏۂɊ܂߂ (0:OFF, 1:ON) +RandomFromSubBox=1 + +; t\ (0:OFF, 1:ON) +; Showing playing info on the playing screen. (0:OFF, 1:ON) +ShowDebugStatus=0 + +; BS1770GAIN ɂ郉EhlX[^̑ʂKp (0:OFF, 1:ON) +; Apply BS1770GAIN loudness metadata (0:OFF, 1:ON) +ApplyLoudnessMetadata=1 + +; BS1770GAIN ɂ郉EhlX[^̖ڕWl (0). (-100-10) +; Loudness Target in dB (decibels) relative to full scale (0). (-100-10) +TargetLoudness=-7.4 + +; .tjat@CSONGVOLwb_̉ʂɓKp (0:OFF, 1:ON) +; Apply SONGVOL (0:OFF, 1:ON) +ApplySongVol=0 + +; ʉ̉ (0-100%) +; Sound effect level (0-100%) +SoundEffectLevel=100 + +; e{CXAR{{CX̉ (0-100%) +; Voice level (0-100%) +VoiceLevel=90 + +; Iȉʂ̃vr[̉ (0-100%) +; Song preview level (0-100%) +SongPreviewLevel=80 + +; Q[̉̉ (0-100%) +; Song playback level (0-100%) +SongPlaybackLevel=100 + +; L[{[hɂ鉹ʕύX̑ʁA (1-20) +; Keyboard sound level increment (1-20) +KeyboardSoundLevelIncrement=5 + +; 2Ptɒ@EʁXɂȂ炷 (0:OFF, 1:ON) +; Use panning for SE (0:OFF, 1:ON) +UsePanning=1 + +; ĐŐ󔒎 (ms) +; Blank time before music source to play. (ms) +MusicPreTimeMs=1000 + +; XgCbN[h(0:OFF, 1:ON) +; Stoic mode. (0:OFF, 1:ON) +StoicMode=0 + +; obt@̓[h(0:OFF, 1:ON) +; Using Buffered input (0:OFF, 1:ON) +BufferedInput=1 + +; Ug摜ۑ@\(0:OFF, 1:ON) +; Set "1" if you'd like to save result screen image automatically +; when you get hiscore/hiskill. +AutoResultCapture=0 + +; DiscordɍĐ̕ʏ𑗐M(0:OFF, 1:ON) +; Share Playing .tja file infomation on Discord. +SendDiscordPlayingInformation=1 + +; ĐxύXAsb`ύXōsǂ(0:sb`ύX, 1:^CXgb` +; (WASAPI/ASIOgp̂ݗL) +; Set "0" if you'd like to use pitch shift with PlaySpeed. +; Set "1" for time stretch. +; (Only available when you're using using WASAPI or ASIO) +TimeStretch=0 + +; ĐDirectShowgp(0:OFF, 1:ON) +; ĐDirectShowgƂɂāAĐ̕Sył܂B +; gpɂ̓ZbgAbvKvɂȂ̂łӂB +DirectShowMode=0 + +; ^C~O(-99`99)[ms] +; Revision value to adjust judgment timing. +InputAdjustTime=11 + +; 胉C̕\ʒu(h, M^[, x[X)(-99`99)[px] +; Offset value to adjust displaying judgement line for the drums, guitar and bass. +JudgeLinePosOffsetDrums=0 + +; u܂Vłˁv(0:OFF, 1:ON) +EndingAnime=0 + +;------------------- +[AutoPlay] + +; t(0:OFF, 1:ON) +Taiko=0 +Taiko2P=0 +TaikoAutoRoll=1 + +;------------------- +[HitRange] + +; Perfect`Poor Ƃ݂Ȃ͈[ms] +Perfect=30 +Good=100 +Poor=130 + +;------------------- +[Log] + +; Logo(0:OFF, 1:ON) +OutputLog=1 + +; ȃf[^ɊւLogo(0:OFF, 1:ON) +TraceSongSearch=0 + +; 摜TEh̍쐬_ɊւLogo(0:OFF, 1:ON) +TraceCreatedDisposed=0 + +; DTXǂݍݏڍׂɊւLogo(0:OFF, 1:ON) +TraceDTXDetails=0 + +;------------------- +[PlayOption] + +; e摜̕\ݒ +; LN^[摜\ (0:OFF, 1:ON) +ShowChara=1 +; _T[摜\ (0:OFF, 1:ON) +ShowDancer=1 +; i[摜\ (0:OFF, 1:ON) +ShowRunner=1 +; u摜\ (0:OFF, 1:ON) +ShowMob=1 +; tb^[摜 (0:OFF, 1:ON) +ShowFooter=1 +; ՂL摜 (0:OFF, 1:ON) +ShowPuchiChara=1 + +; DARK[h(0:OFF, 1:HALF, 2:FULL) +Dark=0 + + +; Iȉʂł̃^C}[Lɂ邩ǂ(0:,1:L) +; Enable countdown in songselect.(0:No, 1:Yes) +EnableCountDownTimer=1 + +; hSUDDEN[h(0:OFF, 1:ON) +DrumsSudden=0 + +; hHIDDEN[h(0:OFF, 1:ON) +DrumsHidden=0 + +; h`bv\[h (0:OFF, 1=SEMI, 2:FULL) +; Drums chip invisible mode +DrumsInvisible=0 + +; hREVERSE[h(0:OFF, 1:ON) +DrumsReverse=0 + +; RISKY[h(0:OFF, 1-10) +; RISKY mode. 0=OFF, 1-10 is the times of misses to be Failed. +Risky=0 + +; TIGHT[h(0:OFF, 1:ON) +; TIGHT mode. 0=OFF, 1=ON +DrumsTight=0 + +; hʃXN[x(0:x0.5, 1:x1.0, 2:x1.5,c,1999:x1000.0) +DrumsScrollSpeed=1 + +; tx(5`40)(x5/20`x40/20) +PlaySpeed=20 + +; tx{łƂ̂BGMĐ(0:OFF, 1:ON) +PlaySpeedNotEqualOneNoSound=0 + +; ftHgőIՓx +DefaultCourse=3 + +; ʕ̃KCh\(0:OFF, 1:ON) +BranchGuide=0 + +; XRAvZ@(0:z_, 1:➑̔z_, 2:Vz_) +ScoreMode=2 + +; ^Ń[h (0:OFF, 1:ON) +; Fixed score mode (0:OFF, 1:ON) +ShinuchiMode=1 +; 剹̗͑ҋ@(ms) +BigNotesWaitTime=50 + +; 剹̗蔻(0:OFF, 1:ON) +BigNotesJudge=0 + +; NoInfo(0:OFF, 1:ON) +NoInfo=0 + +; ʕ̃Aj[V(0:7`14, 1:15) +BranchAnime=1 + +; ftHg̋ȃ\[g(0:΃pX, 1:W\[gOLD, 2:W\[gNEW ) +0:Path, 1:GenreName(AC8`AC14), 2GenreName(AC15`) +DefaultSongSort=2 + +; RANDOM[h(0:OFF, 1:Random, 2:Mirorr 3:SuperRandom, 4:HyperRandom) +TaikoRandom=0 + +; STEALTH[h(0:OFF, 1:h, 2:XeX) +TaikoStealth=0 + +; Q[(0:OFF, 1:!@܃V[!, 2:!@܃V[!(h) ) +GameMode=0 + + +; P[hPgUp/PgDnʼnߔ΂ +TokkunSkipMeasures=0 + +; P[hɃWv|Cgɔ΂߂̎(ms) +; wmsȓ5񉏂@܂傤 +TokkunMashInterval=750 + +; JUST(0:OFF, 1:ON) +Just=0 + +; 萔̕\(0:OFF, 1:ON) +JudgeCountDisplay=0 + +; vCl +PlayerCount=1 + +;------------------- +[GUID] + + +;------------------- +; L[ATC +; @ځFKeyboard 'K'{'0'{L[R[h(10i) +; Mouse 'N'{'0'{{^ԍ(0`7) +; MIDI In 'M'{foCXԍ1(0`9,A`Z){m[gԍ(10i) +; Joystick 'J'{foCXԍ1(0`9,A`Z){ 0 ...... w(){^ +; 1 ...... w(E){^ +; 2 ...... x(){^ +; 3 ...... x(){^ +; 4 ...... y(O){^ +; 5 ...... y(){^ +; 6`133.. {^1`128 +; ̍ڂ 16 ‚܂Ŏw”\(',' ŋ؂ċLqjB +; +; \LFHH=K044,M042,J16 +; HiHat Keyboard 44 ('Z'), MidiIn#0 42, JoyPad#1 6({^1) Ɋ +; +; Joystick ̃foCXԍƃfoCXƂ̊֌W [GUID] ZNVɋLĂ̂LB +; + +[DrumsKeyAssign] + +LeftRed=K016,K015 +RightRed=K017,K019 +LeftBlue=K028,K013 +RightBlue=K020,K021 +LeftRed2P=K031,K011 +RightRed2P=K022,K023 +LeftBlue2P=K033,K012 +RightBlue2P=K0111,K047 + +[SystemKeyAssign] + +Capture=K065 + diff --git a/FDK19/FDK19.csproj b/FDK19/FDK19.csproj new file mode 100644 index 00000000..4cf3c82c --- /dev/null +++ b/FDK19/FDK19.csproj @@ -0,0 +1,205 @@ + + + + Debug + AnyCPU + 9.0.21022 + 2.0 + {BCD40908-F3E2-4707-BFAA-1DD99DF6357D} + Library + Properties + FDK + FDK + v4.6.1 + 512 + true + + + + + + + + + 3.5 + + + + x86 + bin\x86\Debug\ + true + + + false + 0219 + TRACE;TEST_CancelEnterCodeInAltEnter2 TEST_Direct3D9Ex_ + false + full + 7.3 + true + false + + + x86 + bin\x86\Release\ + true + + + true + 0219 + TRACE;TEST_ENGLISH_ TEST_Direct3D9Ex_ + true + 7.3 + full + true + false + + + + ..\Test\dll\Bass.Net.dll + True + + + False + ..\Test\dll\DirectShowLib-2005.dll + True + + + + + + + + + + + + + + + + + + + + + + + + Form + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GameWindow.cs + + + Designer + + + + + + + + 1.3.1.2 + + + 4.2.0 + + + 4.2.0 + + + 4.2.0 + + + 4.2.0 + + + 4.0.13.44 + + + + + + + + + \ No newline at end of file diff --git a/FDK19/FDK19.csproj.user b/FDK19/FDK19.csproj.user new file mode 100644 index 00000000..eb6ef04a --- /dev/null +++ b/FDK19/FDK19.csproj.user @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/FDK19/Properties/AssemblyInfo.cs b/FDK19/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..6561304f --- /dev/null +++ b/FDK19/Properties/AssemblyInfo.cs @@ -0,0 +1,39 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Resources; + +// アセンブリに関する一般情報は以下の属性セットをとおして制御されます。 +// アセンブリに関連付けられている情報を変更するには、 +// これらの属性値を変更してください。 +[assembly: AssemblyTitle( "FDKライブラリ" )] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct( "FDKライブラリ ver.21" )] +[assembly: AssemblyCopyright( "Copyright(C) 2000-2013 DTXMania Group" )] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] +//[assembly: AssemblyKeyName( "FROMsCspContainer" )] + +// ComVisible を false に設定すると、その型はこのアセンブリ内で COM コンポーネントから +// 参照不可能になります。COM からこのアセンブリ内の型にアクセスする場合は、 +// その型の ComVisible 属性を true に設定してください。 +[assembly: ComVisible(false)] + +// 次の GUID は、このプロジェクトが COM に公開される場合の、typelib の ID です +[assembly: Guid("c5f9e698-bec1-4d94-b8a4-3e39b636ccb8")] + +// アセンブリのバージョン情報は、以下の 4 つの値で構成されています: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// すべての値を指定するか、下のように '*' を使ってビルドおよびリビジョン番号を +// 既定値にすることができます: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion( "21.0.0.0" )] +[assembly: AssemblyFileVersion( "21.0.0.0" )] +[assembly: NeutralResourcesLanguageAttribute("ja-JP")] diff --git a/FDK19/packages.config b/FDK19/packages.config new file mode 100644 index 00000000..5dd07c98 --- /dev/null +++ b/FDK19/packages.config @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/FDK19/コード/00.共通/CActivity.cs b/FDK19/コード/00.共通/CActivity.cs new file mode 100644 index 00000000..6afd9ae7 --- /dev/null +++ b/FDK19/コード/00.共通/CActivity.cs @@ -0,0 +1,176 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace FDK +{ + public class CActivity + { + // プロパティ + + public bool b活性化してる { get; private set; } + public bool b活性化してない + { + get + { + return !this.b活性化してる; + } + set + { + this.b活性化してる = !value; + } + } + public List list子Activities; + + /// + /// 初めて On進行描画() を呼び出す場合に true を示す。(On活性化() 内で true にセットされる。) + /// このフラグは、On活性化() では行えないタイミングのシビアな初期化を On進行描画() で行うために準備されている。利用は必須ではない。 + /// On進行描画() 側では、必要な初期化を追えたら false をセットすること。 + /// + protected bool b初めての進行描画 = true; + + + // コンストラクタ + + public CActivity() + { + this.b活性化してない = true; + this.list子Activities = new List(); + } + + + // ライフサイクルメソッド + + #region [ 子クラスで必要なもののみ override すること。] + //----------------- + + public virtual void On活性化() + { + // すでに活性化してるなら何もしない。 + if( this.b活性化してる ) + return; + + this.b活性化してる = true; // このフラグは、以下の処理をする前にセットする。 + + // 自身のリソースを作成する。 + this.OnManagedリソースの作成(); + this.OnUnmanagedリソースの作成(); + + // すべての子 Activity を活性化する。 + foreach( CActivity activity in this.list子Activities ) + activity.On活性化(); + + // その他の初期化 + this.b初めての進行描画 = true; + } + public virtual void On非活性化() + { + // 活性化してないなら何もしない。 + if( this.b活性化してない ) + return; + + // 自身のリソースを解放する。 + this.OnUnmanagedリソースの解放(); + this.OnManagedリソースの解放(); + + // すべての 子Activity を非活性化する。 + foreach( CActivity activity in this.list子Activities ) + activity.On非活性化(); + + this.b活性化してない = true; // このフラグは、以上のメソッドを呼び出した後にセットする。 + } + + /// + /// Managed リソースの作成を行う。 + /// Direct3D デバイスが作成された直後に呼び出されるので、自分が活性化している時に限り、 + /// Managed リソースを作成(または再構築)すること。 + /// いつどのタイミングで呼び出されるか(いつDirect3Dが再作成されるか)分からないので、 + /// いつ何時呼び出されても問題無いようにコーディングしておくこと。 + /// + public virtual void OnManagedリソースの作成() + { + // 活性化してないなら何もしない。 + if( this.b活性化してない ) + return; + + // すべての 子Activity の Managed リソースを作成する。 + foreach( CActivity activity in this.list子Activities ) + activity.OnManagedリソースの作成(); + } + + /// + /// Unmanaged リソースの作成を行う。 + /// Direct3D デバイスが作成またはリセットされた直後に呼び出されるので、自分が活性化している時に限り、 + /// Unmanaged リソースを作成(または再構築)すること。 + /// いつどのタイミングで呼び出されるか(いつDirect3Dが再作成またはリセットされるか)分からないので、 + /// いつ何時呼び出されても問題無いようにコーディングしておくこと。 + /// + public virtual void OnUnmanagedリソースの作成() + { + // 活性化してないなら何もしない。 + if( this.b活性化してない ) + return; + + // すべての 子Activity の Unmanaged リソースを作成する。 + foreach( CActivity activity in this.list子Activities ) + activity.OnUnmanagedリソースの作成(); + } + + /// + /// Unmanaged リソースの解放を行う。 + /// Direct3D デバイスの解放直前またはリセット直前に呼び出される。 + /// いつどのタイミングで呼び出されるか(いつDirect3Dが解放またはリセットされるか)分からないので、 + /// いつ何時呼び出されても問題無いようにコーディングしておくこと。 + /// + public virtual void OnUnmanagedリソースの解放() + { + // 活性化してないなら何もしない。 + if( this.b活性化してない ) + return; + + // すべての 子Activity の Unmanaged リソースを解放する。 + foreach( CActivity activity in this.list子Activities ) + activity.OnUnmanagedリソースの解放(); + } + + /// + /// Managed リソースの解放を行う。 + /// Direct3D デバイスの解放直前に呼び出される。 + /// (Unmanaged リソースとは異なり、Direct3D デバイスのリセット時には呼び出されない。) + /// いつどのタイミングで呼び出されるか(いつDirect3Dが解放されるか)分からないので、 + /// いつ何時呼び出されても問題無いようにコーディングしておくこと。 + /// + public virtual void OnManagedリソースの解放() + { + // 活性化してないなら何もしない。 + if( this.b活性化してない ) + return; + + // すべての 子Activity の Managed リソースを解放する。 + foreach( CActivity activity in this.list子Activities ) + activity.OnManagedリソースの解放(); + } + + /// + /// 進行と描画を行う。(これらは分離されず、この1つのメソッドだけで実装する。) + /// このメソッドは BeginScene() の後に呼び出されるので、メソッド内でいきなり描画を行ってかまわない。 + /// + /// 任意の整数。呼び出し元との整合性を合わせておくこと。 + public virtual int On進行描画() + { + // 活性化してないなら何もしない。 + if( this.b活性化してない ) + return 0; + + + /* ここで進行と描画を行う。*/ + + + // 戻り値とその意味は子クラスで自由に決めていい。 + return 0; + } + + //----------------- + #endregion + } +} \ No newline at end of file diff --git a/FDK19/コード/00.共通/CCounter.cs b/FDK19/コード/00.共通/CCounter.cs new file mode 100644 index 00000000..d209aa9d --- /dev/null +++ b/FDK19/コード/00.共通/CCounter.cs @@ -0,0 +1,315 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace FDK +{ + /// + /// 一定間隔で単純増加する整数(カウント値)を扱う。 + /// + /// + /// ○使い方 + /// 1.CCounterの変数をつくる。 + /// 2.CCounterを生成 + /// ctCounter = new CCounter( 0, 3, 10, CDTXMania.Timer ); + /// 3.進行メソッドを使用する。 + /// 4.ウマー。 + /// + /// double値を使う場合、t進行db、t進行LoopDbを使うこと。 + /// また、double版では間隔の値はミリ秒単位ではなく、通常の秒単位になります。 + /// + public class CCounter + { + public bool b開始した + { + get; + set; + } + // 値プロパティ + public float n開始値 + { + get; + private set; + } + public float n終了値 + { + get; + set; + } + public int n現在の値 + { + get; + set; + } + + public double _n間隔 + { + get + { + return this.n間隔; + } + set + { + this.n間隔 = value >= 0 ? value : value * -1; + } + } + + public float n現在の経過時間ms + { + get; + set; + } + // 状態プロパティ + + public bool b進行中 + { + get { return (this.n現在の経過時間ms != -1); } + } + public bool b停止中 + { + get { return !this.b進行中; } + } + public bool b終了値に達した + { + get { return (this.n現在の値 >= this.n終了値); } + } + public bool b終了値に達してない + { + get { return !this.b終了値に達した; } + } + + // コンストラクタ + + public CCounter() + { + this.timer = null; + this.n開始値 = 0; + this.n終了値 = 0; + this.n現在の値 = 0; + this.n現在の値 = 0; + this.n現在の経過時間ms = CSoundTimer.n未使用; + } + + /// 生成と同時に開始する。 + public CCounter(float n開始値, float n終了値, float n間隔ms, CTimer timer) + : this() + { + this.t開始(n開始値, n終了値, n間隔ms, timer); + } + + /// 生成と同時に開始する。(double版) + public CCounter(double db開始値, double db終了値, double db間隔, CSoundTimer timer) + : this() + { + this.t開始(db開始値, db終了値, db間隔 * 1000.0f, timer); + } + + + // 状態操作メソッド + + /// + /// カウントを開始する。 + /// + /// 最初のカウント値。 + /// 最後のカウント値。 + /// カウント値を1増加させるのにかける時間(ミリ秒単位)。 + /// カウントに使用するタイマ。 + public void t開始(float n開始値, float n終了値, float n間隔ms, CTimer timer) + { + this.n開始値 = n開始値; + this.n終了値 = n終了値; + this._n間隔 = n間隔ms; + this.timer = timer; + this.n現在の経過時間ms = this.timer.n現在時刻; + this.n現在の値 = (int)n開始値; + this.b開始した = true; + } + + /// + /// カウントを開始する。(double版) + /// + /// 最初のカウント値。 + /// 最後のカウント値。 + /// カウント値を1増加させるのにかける時間(秒単位)。 + /// カウントに使用するタイマ。 + public void t開始(double db開始値, double db終了値, double db間隔, CSoundTimer timer) + { + this.n開始値 = (float)db開始値; + this.n終了値 = (float)db終了値; + this._n間隔 = db間隔; + this.timerdb = timer; + this.n現在の経過時間ms = (float)this.timerdb.dbシステム時刻; + this.n現在の値 = (int)db開始値; + this.b開始した = true; + } + + /// + /// 前回の t進行() の呼び出しからの経過時間をもとに、必要なだけカウント値を増加させる。 + /// カウント値が終了値に達している場合は、それ以上増加しない(終了値を維持する)。 + /// + public void t進行() + { + if ((this.timer != null) && (this.n現在の経過時間ms != CTimer.n未使用)) + { + long num = this.timer.n現在時刻; + if (num < this.n現在の経過時間ms) + this.n現在の経過時間ms = num; + + while ((num - this.n現在の経過時間ms) >= this.n間隔) + { + if (++this.n現在の値 > this.n終了値) + this.n現在の値 = (int)this.n終了値; + + this.n現在の経過時間ms += (float)this.n間隔; + } + } + } + + /// + /// 前回の t進行() の呼び出しからの経過時間をもとに、必要なだけカウント値を増加させる。 + /// カウント値が終了値に達している場合は、それ以上増加しない(終了値を維持する)。 + /// + public void t進行db() + { + if ((this.timerdb != null) && (this.n現在の経過時間ms != CSoundTimer.n未使用)) + { + double num = this.timerdb.n現在時刻; + if (num < this.n現在の経過時間ms) + this.n現在の経過時間ms = (float)num; + + while ((num - this.n現在の経過時間ms) >= this.n間隔) + { + if (++this.n現在の値 > this.n終了値) + this.n現在の値 = (int)this.n終了値; + + this.n現在の経過時間ms += (float)this.n間隔; + } + } + } + + /// + /// 前回の t進行Loop() の呼び出しからの経過時間をもとに、必要なだけカウント値を増加させる。 + /// カウント値が終了値に達している場合は、次の増加タイミングで開始値に戻る(値がループする)。 + /// + public void t進行Loop() + { + if ((this.timer != null) && (this.n現在の経過時間ms != CTimer.n未使用)) + { + long num = this.timer.n現在時刻; + if (num < this.n現在の経過時間ms) + this.n現在の経過時間ms = num; + + while ((num - this.n現在の経過時間ms) >= this.n間隔) + { + if (++this.n現在の値 > this.n終了値) + this.n現在の値 = (int)this.n開始値; + + this.n現在の経過時間ms += (float)this.n間隔; + } + } + } + + /// + /// 前回の t進行Loop() の呼び出しからの経過時間をもとに、必要なだけカウント値を増加させる。 + /// カウント値が終了値に達している場合は、次の増加タイミングで開始値に戻る(値がループする)。 + /// + public void t進行LoopDb() + { + if ((this.timerdb != null) && (this.n現在の経過時間ms != CSoundTimer.n未使用)) + { + double num = this.timerdb.n現在時刻; + if (num < this.n現在の経過時間ms) + this.n現在の経過時間ms = (float)num; + + while ((num - this.n現在の経過時間ms) >= this.n間隔) + { + if (++this.n現在の値 > this.n終了値) + this.n現在の値 = (int)this.n開始値; + + this.n現在の経過時間ms += (float)this.n間隔; + } + } + } + + /// + /// カウントを停止する。 + /// これ以降に t進行() や t進行Loop() を呼び出しても何も処理されない。 + /// + public void t停止() + { + this.n現在の経過時間ms = CTimer.n未使用; + } + + public void t間隔値変更(double Value) + { + this._n間隔 = Value; + } + + // その他 + + #region [ 応用:キーの反復入力をエミュレーションする ] + //----------------- + + /// + /// 「bキー押下」引数が true の間中、「tキー処理」デリゲート引数を呼び出す。 + /// ただし、2回目の呼び出しは1回目から 200ms の間を開けてから行い、3回目以降の呼び出しはそれぞれ 30ms の間隔で呼び出す。 + /// 「bキー押下」が false の場合は何もせず、呼び出し回数を 0 にリセットする。 + /// + /// キーが押下されている場合は true。 + /// キーが押下されている場合に実行する処理。 + public void tキー反復(bool bキー押下, DGキー処理 tキー処理) + { + const int n1回目 = 0; + const int n2回目 = 1; + const int n3回目以降 = 2; + + if (bキー押下) + { + switch (this.n現在の値) + { + case n1回目: + + tキー処理(); + this.n現在の値 = n2回目; + this.n現在の経過時間ms = this.timer.n現在時刻; + return; + + case n2回目: + + if ((this.timer.n現在時刻 - this.n現在の経過時間ms) > 200) + { + tキー処理(); + this.n現在の経過時間ms = this.timer.n現在時刻; + this.n現在の値 = n3回目以降; + } + return; + + case n3回目以降: + + if ((this.timer.n現在時刻 - this.n現在の経過時間ms) > 30) + { + tキー処理(); + this.n現在の経過時間ms = this.timer.n現在時刻; + } + return; + } + } + else + { + this.n現在の値 = n1回目; + } + } + public delegate void DGキー処理(); + + //----------------- + #endregion + + #region [ private ] + //----------------- + private CTimer timer; + private CSoundTimer timerdb; + private double n間隔; + //----------------- + #endregion + } +} diff --git a/FDK19/コード/00.共通/CCpuCores.cs b/FDK19/コード/00.共通/CCpuCores.cs new file mode 100644 index 00000000..02ecccfc --- /dev/null +++ b/FDK19/コード/00.共通/CCpuCores.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Runtime.InteropServices; + +namespace FDK +{ + public static class CpuCores + { + [DllImport("kernel32")] + public static extern void GetSystemInfo(ref SYSTEM_INFO ptmpsi); + [StructLayout(LayoutKind.Sequential)] + public struct SYSTEM_INFO { + public uint dwOemId; + public uint dwPageSize; + public uint lpMinimumApplicationAddress; + public uint lpMaximumApplicationAddress; + public uint dwActiveProcessorMask; + public uint dwNumberOfProcessors; + public uint dwProcessorType; + public uint dwAllocationGranularity; + public uint dwProcessorLevel; + public uint dwProcessorRevision; + } + } +} diff --git a/FDK19/コード/00.共通/CFPS.cs b/FDK19/コード/00.共通/CFPS.cs new file mode 100644 index 00000000..1d67b950 --- /dev/null +++ b/FDK19/コード/00.共通/CFPS.cs @@ -0,0 +1,64 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace FDK +{ + public class CFPS + { + // プロパティ + + public int n現在のFPS + { + get; + private set; + } + public bool bFPSの値が変化した + { + get; + private set; + } + + + // コンストラクタ + + public CFPS() + { + this.n現在のFPS = 0; + this.timer = new CTimer( CTimer.E種別.MultiMedia ); + this.基点時刻ms = this.timer.n現在時刻; + this.内部FPS = 0; + this.bFPSの値が変化した = false; + } + + + // メソッド + + public void tカウンタ更新() + { + this.timer.t更新(); + this.bFPSの値が変化した = false; + + const long INTERVAL = 1000; + while( ( this.timer.n現在時刻 - this.基点時刻ms ) >= INTERVAL ) + { + this.n現在のFPS = this.内部FPS; + this.内部FPS = 0; + this.bFPSの値が変化した = true; + this.基点時刻ms += INTERVAL; + } + this.内部FPS++; + } + + + // その他 + + #region [ private ] + //----------------- + private CTimer timer; + private long 基点時刻ms; + private int 内部FPS; + //----------------- + #endregion + } +} diff --git a/FDK19/コード/00.共通/CIniFile.cs b/FDK19/コード/00.共通/CIniFile.cs new file mode 100644 index 00000000..a6422a6c --- /dev/null +++ b/FDK19/コード/00.共通/CIniFile.cs @@ -0,0 +1,134 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.IO; +using System.Diagnostics; + +namespace FDK +{ + /// + /// 汎用的な .iniファイルを扱う。 + /// + public class CIniFile + { + // プロパティ + + public string strファイル名 + { + get; + private set; + } + public List Sections + { + get; + set; + } + public class CSection + { + public string strセクション名 = ""; + public List> listパラメータリスト = new List>(); + } + + + // コンストラクタ + + public CIniFile() + { + this.strファイル名 = ""; + this.Sections = new List(); + } + public CIniFile( string strファイル名 ) + :this() + { + this.t読み込み( strファイル名 ); + } + + + // メソッド + + public void t読み込み( string strファイル名 ) + { + this.strファイル名 = strファイル名; + + StreamReader sr = null; + CSection section = null; + try + { + sr = new StreamReader( this.strファイル名, Encoding.GetEncoding( "Shift_JIS" ) ); // ファイルが存在しない場合は例外発生。 + + string line; + while( ( line = sr.ReadLine() ) != null ) + { + line = line.Replace( '\t', ' ' ).TrimStart( new char[] { '\t', ' ' } ); + if( string.IsNullOrEmpty( line ) || line[ 0 ] == ';' ) // ';'以降はコメントとして無視 + continue; + + if( line[ 0 ] == '[' ) + { + #region [ セクションの変更 ] + //----------------------------- + var builder = new StringBuilder( 32 ); + int num = 1; + while( ( num < line.Length ) && ( line[ num ] != ']' ) ) + builder.Append( line[ num++ ] ); + + // 変数 section が使用中の場合は、List に追加して新しい section を作成する。 + if( section != null ) + this.Sections.Add( section ); + + section = new CSection(); + section.strセクション名 = builder.ToString(); + //----------------------------- + #endregion + + continue; + } + + string[] strArray = line.Split( new char[] { '=' } ); + if( strArray.Length != 2 ) + continue; + + string key = strArray[ 0 ].Trim(); + string value = strArray[ 1 ].Trim(); + + if( section != null && !string.IsNullOrEmpty( key ) && !string.IsNullOrEmpty( value ) ) + section.listパラメータリスト.Add( new KeyValuePair( key, value ) ); + } + + if( section != null ) + this.Sections.Add( section ); + } + finally + { + if( sr != null ) + sr.Close(); + } + } + public void t書き出し( string strファイル名 ) + { + this.strファイル名 = strファイル名; + this.t書き出し(); + } + public void t書き出し() + { + StreamWriter sw = null; + try + { + sw = new StreamWriter( this.strファイル名, false, Encoding.GetEncoding( "Shift_JIS" ) ); // オープン失敗の場合は例外発生。 + + foreach( CSection section in this.Sections ) + { + sw.WriteLine( "[{0}]", section.strセクション名 ); + + foreach( KeyValuePair kvp in section.listパラメータリスト ) + sw.WriteLine( "{0}={1}", kvp.Key, kvp.Value ); + } + } + finally + { + if( sw != null ) + sw.Close(); + } + } + } +} diff --git a/FDK19/コード/00.共通/CJudgeTextEncoding.cs b/FDK19/コード/00.共通/CJudgeTextEncoding.cs new file mode 100644 index 00000000..9d2952e5 --- /dev/null +++ b/FDK19/コード/00.共通/CJudgeTextEncoding.cs @@ -0,0 +1,81 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.IO; +using System.Diagnostics; + +namespace TJAPlayer3 +{ + public class CJudgeTextEncoding + { + /// + /// Hnc8様のReadJEncを使用して文字コードの判別をする。 + /// + public static Encoding JudgeFileEncoding(string path) + { + if (!File.Exists(path)) return null; + Encoding enc; + FileInfo file = new FileInfo(path); + + using (Hnx8.ReadJEnc.FileReader reader = new Hnx8.ReadJEnc.FileReader(file)) + { + // 判別読み出し実行。判別結果はReadメソッドの戻り値で把握できます + Hnx8.ReadJEnc.CharCode c = reader.Read(file); + // 戻り値のNameプロパティから文字コード名を取得できます + string name = c.Name; + Console.WriteLine("【" + name + "】" + file.Name); + // GetEncoding()を呼び出すと、エンコーディングを取得できます + enc = c.GetEncoding(); + } + Debug.Print(path + " Encoding=" + enc.CodePage); + + if (enc == null) + { + enc = Encoding.GetEncoding(932); + } + return enc; + } + /// + /// Hnc8様のReadJEncを使用してテキストファイルを読み込む。 + /// 改行文字は、勝手に\nに統一する + /// + /// + /// + public static string ReadTextFile(string path) + { + if (!File.Exists(path)) return null; + string str = null; + FileInfo file = new FileInfo(path); + + using (Hnx8.ReadJEnc.FileReader reader = new Hnx8.ReadJEnc.FileReader(file)) + { + reader.Read(file); + str = reader.Text; + } + + str = str.Replace(JudgeNewLine(str), "\n"); + + return str; + } + + /// + /// Environment.NewLineはプラットフォーム依存である。 + /// だが、ファイルごとに改行コードは違うので、使用すべきではない。 + /// なので、勝手に改行文字を判断する。 + /// + /// + /// + public static string JudgeNewLine(string str) + { + if (str.Contains("\r\n")) + return ("\r\n"); + + if (str.Contains("\r")) + return ("\r"); + + return ("\n"); + } + + } +} \ No newline at end of file diff --git a/FDK19/コード/00.共通/COS.cs b/FDK19/コード/00.共通/COS.cs new file mode 100644 index 00000000..cb339761 --- /dev/null +++ b/FDK19/コード/00.共通/COS.cs @@ -0,0 +1,35 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace FDK +{ + public static class COS + { + /// + /// OSがXP以前ならfalse, Vista以降ならtrueを返す + /// + /// + public static bool bIsVistaOrLater + { + get + { + //プラットフォームの取得 + System.OperatingSystem os = System.Environment.OSVersion; + if ( os.Platform != PlatformID.Win32NT ) // NT系でなければ、XP以前か、PC Windows系以外のOSのため、Vista以降ではない。よってfalseを返す。 + { + return false; + } + + if ( os.Version.Major >= 6 ) + { + return true; + } + else + { + return false; + } + } + } + } +} diff --git a/FDK19/コード/00.共通/CPowerManagement.cs b/FDK19/コード/00.共通/CPowerManagement.cs new file mode 100644 index 00000000..a746a413 --- /dev/null +++ b/FDK19/コード/00.共通/CPowerManagement.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace FDK +{ + /// + /// システムとモニタの省電力制御を行う + /// + public static class CPowerManagement + { + /// + /// 本体/モニタの省電力モード移行を抑止する + /// + public static void tDisableMonitorSuspend() + { + CWin32.SetThreadExecutionState( CWin32.ExecutionState.SystemRequired | CWin32.ExecutionState.DisplayRequired ); + } + + /// + /// 本体/モニタの省電力モード移行抑制を解除する + /// + public static void tEnableMonitorSuspend() + { + CWin32.SetThreadExecutionState( CWin32.ExecutionState.Continuous ); // スリープ抑止状態を解除 + } + } +} diff --git a/FDK19/コード/00.共通/CSendMessage.cs b/FDK19/コード/00.共通/CSendMessage.cs new file mode 100644 index 00000000..80d84109 --- /dev/null +++ b/FDK19/コード/00.共通/CSendMessage.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using System.Runtime.InteropServices; +using System.Diagnostics; +using System.Text; + +namespace FDK +{ + public static class CSendMessage + { + + [DllImport( "USER32.dll" )] + static extern uint SendMessage( IntPtr window, int msg, IntPtr wParam, ref SampleFramework.COPYDATASTRUCT lParam ); + + + public static uint sendmessage( IntPtr MainWindowHandle, IntPtr FromWindowHandle, string arg) + { + uint len = (uint) arg.Length; + + SampleFramework.COPYDATASTRUCT cds; + cds.dwData = IntPtr.Zero; // 使用しない + cds.lpData = Marshal.StringToHGlobalUni( arg ); // テキストのポインターをセット + cds.cbData = ( len + 1 ) * 2; // 長さをセット + + //文字列を送る + uint result = SendMessage( MainWindowHandle, SampleFramework.WindowConstants.WM_COPYDATA, FromWindowHandle, ref cds ); + + Marshal.FreeHGlobal( cds.lpData ); + + return result; + } + } +} diff --git a/FDK19/コード/00.共通/CTimer.cs b/FDK19/コード/00.共通/CTimer.cs new file mode 100644 index 00000000..d9e9fbb4 --- /dev/null +++ b/FDK19/コード/00.共通/CTimer.cs @@ -0,0 +1,162 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Runtime.InteropServices; +using System.Diagnostics; +using DirectShowLib; + +namespace FDK +{ + public class CTimer : CTimerBase + { + public enum E種別 + { + Unknown = -1, + PerformanceCounter = 0, + MultiMedia = 1, + GetTickCount = 2, + } + public E種別 eタイマ種別 + { + get; + protected set; + } + + + public override long nシステム時刻ms + { + get + { + switch( this.eタイマ種別 ) + { + case E種別.PerformanceCounter: + { + double num = 0.0; + if( this.n現在の周波数 != 0L ) + { + long x = 0L; + QueryPerformanceCounter( ref x ); + num = ( (double) x ) / ( ( (double) this.n現在の周波数 ) / 1000.0 ); + } + return (long) num; + } + case E種別.MultiMedia: + return (long) timeGetTime(); + + case E種別.GetTickCount: + return (long) Environment.TickCount; + } + return 0; + } + } + + public CTimer( E種別 eタイマ種別 ) + :base() + { + this.eタイマ種別 = eタイマ種別; + + if( n参照カウント[ (int) this.eタイマ種別 ] == 0 ) + { + switch( this.eタイマ種別 ) + { + case E種別.PerformanceCounter: + if( !this.b確認と設定_PerformanceCounter() && !this.b確認と設定_MultiMedia() ) + this.b確認と設定_GetTickCount(); + break; + + case E種別.MultiMedia: + if( !this.b確認と設定_MultiMedia() && !this.b確認と設定_PerformanceCounter() ) + this.b確認と設定_GetTickCount(); + break; + + case E種別.GetTickCount: + this.b確認と設定_GetTickCount(); + break; + + default: + throw new ArgumentException( string.Format( "未知のタイマ種別です。[{0}]", this.eタイマ種別 ) ); + } + } + + base.tリセット(); + + n参照カウント[ (int) this.eタイマ種別 ]++; + } + + public override void Dispose() + { + if( this.eタイマ種別 == E種別.Unknown ) + return; + + int type = (int) this.eタイマ種別; + + n参照カウント[ type ] = Math.Max( n参照カウント[ type ] - 1, 0 ); + + if( n参照カウント[ type ] == 0 ) + { + if( this.eタイマ種別 == E種別.MultiMedia ) + timeEndPeriod( this.timeCaps.wPeriodMin ); + } + + this.eタイマ種別 = E種別.Unknown; + } + + #region [ protected ] + //----------------- + protected long n現在の周波数; + protected static int[] n参照カウント = new int[ 3 ]; + protected TimeCaps timeCaps; + + protected bool b確認と設定_GetTickCount() + { + this.eタイマ種別 = E種別.GetTickCount; + return true; + } + protected bool b確認と設定_MultiMedia() + { + this.timeCaps = new TimeCaps(); + if( ( timeGetDevCaps( out this.timeCaps, (uint) Marshal.SizeOf( typeof( TimeCaps ) ) ) == 0 ) && ( this.timeCaps.wPeriodMin < 10 ) ) + { + this.eタイマ種別 = E種別.MultiMedia; + timeBeginPeriod( this.timeCaps.wPeriodMin ); + return true; + } + return false; + } + protected bool b確認と設定_PerformanceCounter() + { + if( QueryPerformanceFrequency( ref this.n現在の周波数 ) != 0 ) + { + this.eタイマ種別 = E種別.PerformanceCounter; + return true; + } + return false; + } + //----------------- + #endregion + + #region [ DllImport ] + //----------------- + [DllImport( "kernel32.dll" )] + protected static extern short QueryPerformanceCounter( ref long x ); + [DllImport( "kernel32.dll" )] + protected static extern short QueryPerformanceFrequency( ref long x ); + [DllImport( "winmm.dll" )] + protected static extern void timeBeginPeriod( uint x ); + [DllImport( "winmm.dll" )] + protected static extern void timeEndPeriod( uint x ); + [DllImport( "winmm.dll" )] + protected static extern uint timeGetDevCaps( out TimeCaps timeCaps, uint size ); + [DllImport( "winmm.dll" )] + protected static extern uint timeGetTime(); + + [StructLayout( LayoutKind.Sequential )] + protected struct TimeCaps + { + public uint wPeriodMin; + public uint wPeriodMax; + } + //----------------- + #endregion + } +} diff --git a/FDK19/コード/00.共通/CTimerBase.cs b/FDK19/コード/00.共通/CTimerBase.cs new file mode 100644 index 00000000..1e96177d --- /dev/null +++ b/FDK19/コード/00.共通/CTimerBase.cs @@ -0,0 +1,179 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace FDK +{ + /// + /// タイマの抽象クラス。 + /// このクラスを継承し、override したクラスを作成することで、任意のクロックを持つタイマを作成できる。 + /// + public abstract class CTimerBase : IDisposable + { + public const long n未使用 = -1; + + // この2つを override する。 + public abstract long nシステム時刻ms + { + get; + } + public double dbシステム時刻ms + { + get; + set; + } + public abstract void Dispose(); + + #region [ DTXMania用に、語尾にmsのつかない宣言を追加 ] + public long nシステム時刻 + { + get { return nシステム時刻ms; } + } + public long n現在時刻 + { + get { return n現在時刻ms; } + set { n現在時刻ms = value; } + } + public long n前回リセットした時のシステム時刻 + { + get { return n前回リセットした時のシステム時刻ms; } + } + + //double + public double dbシステム時刻 + { + get { return dbシステム時刻ms; } + } + public double db現在時刻 + { + get { return db現在時刻ms; } + set { db現在時刻ms = value; } + } + public double db前回リセットした時のシステム時刻 + { + get { return db前回リセットした時のシステム時刻ms; } + } + #endregion + + public long n現在時刻ms + { + get + { + if( this.n停止数 > 0 ) + return ( this.n一時停止システム時刻ms - this.n前回リセットした時のシステム時刻ms ); + + return ( this.n更新システム時刻ms - this.n前回リセットした時のシステム時刻ms ); + } + set + { + if( this.n停止数 > 0 ) + this.n前回リセットした時のシステム時刻ms = this.n一時停止システム時刻ms - value; + else + this.n前回リセットした時のシステム時刻ms = this.n更新システム時刻ms - value; + } + } + public long nリアルタイム現在時刻ms + { + get + { + if( this.n停止数 > 0 ) + return ( this.n一時停止システム時刻ms - this.n前回リセットした時のシステム時刻ms ); + + return ( this.nシステム時刻ms - this.n前回リセットした時のシステム時刻ms ); + } + } + public long n前回リセットした時のシステム時刻ms + { + get; + protected set; + } + + + public double db現在時刻ms + { + get + { + if( this.n停止数 > 0 ) + return ( this.db一時停止システム時刻ms - this.db前回リセットした時のシステム時刻ms ); + + return ( this.db更新システム時刻ms - this.db前回リセットした時のシステム時刻ms ); + } + set + { + if( this.n停止数 > 0 ) + this.db前回リセットした時のシステム時刻ms = this.db一時停止システム時刻ms - value; + else + this.db前回リセットした時のシステム時刻ms = this.db更新システム時刻ms - value; + } + } + public double dbリアルタイム現在時刻ms + { + get + { + if( this.n停止数 > 0 ) + return ( this.db一時停止システム時刻ms - this.db前回リセットした時のシステム時刻ms ); + + return ( this.dbシステム時刻ms - this.db前回リセットした時のシステム時刻ms ); + } + } + public double db前回リセットした時のシステム時刻ms + { + get; + protected set; + } + + public bool b停止していない + { + get + { + return ( this.n停止数 == 0 ); + } + } + + public void tリセット() + { + this.t更新(); + this.n前回リセットした時のシステム時刻ms = this.n更新システム時刻ms; + this.n一時停止システム時刻ms = this.n更新システム時刻ms; + this.n停止数 = 0; + } + public void t一時停止() + { + if( this.n停止数 == 0 ) + { + this.n一時停止システム時刻ms = this.n更新システム時刻ms; + this.db一時停止システム時刻ms = this.db更新システム時刻ms; + } + + this.n停止数++; + } + public void t更新() + { + this.n更新システム時刻ms = this.nシステム時刻ms; + this.db更新システム時刻ms = this.dbシステム時刻ms; + } + public void t再開() + { + if( this.n停止数 > 0 ) + { + this.n停止数--; + if( this.n停止数 == 0 ) + { + this.t更新(); + this.n前回リセットした時のシステム時刻ms += this.n更新システム時刻ms - this.n一時停止システム時刻ms; + this.db前回リセットした時のシステム時刻ms += this.db更新システム時刻ms - this.db一時停止システム時刻ms; + } + } + } + + #region [ protected ] + //----------------- + protected long n一時停止システム時刻ms = 0; + protected long n更新システム時刻ms = 0; + protected double db一時停止システム時刻ms = 0; + protected double db更新システム時刻ms = 0; + protected int n停止数 = 0; + //----------------- + #endregion + } +} diff --git a/FDK19/コード/00.共通/CTraceLogListener.cs b/FDK19/コード/00.共通/CTraceLogListener.cs new file mode 100644 index 00000000..d89ff96c --- /dev/null +++ b/FDK19/コード/00.共通/CTraceLogListener.cs @@ -0,0 +1,157 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.IO; +using System.Diagnostics; + +namespace FDK +{ + public class CTraceLogListener : TraceListener + { + public CTraceLogListener( StreamWriter stream ) + { + this.streamWriter = stream; + } + + public override void Flush() + { + if( this.streamWriter != null ) + { + try + { + this.streamWriter.Flush(); + } + catch( ObjectDisposedException ) + { + } + } + } + public override void TraceEvent( TraceEventCache eventCache, string source, TraceEventType eventType, int id, string message ) + { + if( this.streamWriter != null ) + { + try + { + this.tイベント種別を出力する( eventType ); + this.tインデントを出力する(); + this.streamWriter.WriteLine( message ); + } + catch( ObjectDisposedException ) + { + } + } + } + public override void TraceEvent( TraceEventCache eventCache, string source, TraceEventType eventType, int id, string format, params object[] args ) + { + if( this.streamWriter != null ) + { + try + { + this.tイベント種別を出力する( eventType ); + this.tインデントを出力する(); + this.streamWriter.WriteLine( string.Format( format, args ) ); + } + catch( ObjectDisposedException ) + { + } + } + } + public override void Write( string message ) + { + if( this.streamWriter != null ) + { + try + { + this.streamWriter.Write( message ); + } + catch( ObjectDisposedException ) + { + } + } + } + public override void WriteLine( string message ) + { + if( this.streamWriter != null ) + { + try + { + this.streamWriter.WriteLine( message ); + } + catch( ObjectDisposedException ) + { + } + } + } + + protected override void Dispose( bool disposing ) + { + if( this.streamWriter != null ) + { + try + { + this.streamWriter.Close(); + } + catch + { + } + this.streamWriter = null; + } + base.Dispose( disposing ); + } + + #region [ private ] + //----------------- + private StreamWriter streamWriter; + + private void tイベント種別を出力する( TraceEventType eventType ) + { + if( this.streamWriter != null ) + { + try + { + var now = DateTime.Now; + this.streamWriter.Write( string.Format( "{0:D4}/{1:D2}/{2:D2} {3:D2}:{4:D2}:{5:D2}.{6:D3} ", new object[] { now.Year, now.Month, now.Day, now.Hour, now.Minute, now.Second, now.Millisecond } ) ); + switch( eventType ) + { + case TraceEventType.Error: + this.streamWriter.Write( "[ERROR] " ); + return; + + case ( TraceEventType.Error | TraceEventType.Critical ): + return; + + case TraceEventType.Warning: + this.streamWriter.Write( "[WARNING] " ); + return; + + case TraceEventType.Information: + break; + + default: + return; + } + this.streamWriter.Write( "[INFO] " ); + } + catch( ObjectDisposedException ) + { + } + } + } + private void tインデントを出力する() + { + if( ( this.streamWriter != null ) && ( base.IndentLevel > 0 ) ) + { + try + { + for( int i = 0; i < base.IndentLevel; i++ ) + this.streamWriter.Write( " " ); + } + catch( ObjectDisposedException ) + { + } + } + } + //----------------- + #endregion + } +} diff --git a/FDK19/コード/00.共通/CWin32.cs b/FDK19/コード/00.共通/CWin32.cs new file mode 100644 index 00000000..94b272ff --- /dev/null +++ b/FDK19/コード/00.共通/CWin32.cs @@ -0,0 +1,661 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Runtime.InteropServices; +using System.Drawing; + +namespace FDK +{ + public class CWin32 + { + #region [ Win32 定数 ] + //----------------- + public const int S_OK = 0x00000000; + public const int S_FALSE = 0x00000001; + public const int E_FAIL = unchecked( (int) 0x80004005 ); + public const int E_ABORT = unchecked( (int) 0x80004004 ); + + public const int BROADCAST_QUERY_DENY = 0x424d5144; + + public const uint CALLBACK_FUNCTION = 0x30000; + public const uint ES_CONTINUOUS = 0x80000000; + public const uint ES_DISPLAY_REQUIRED = 2; + public const uint ES_SYSTEM_REQUIRED = 1; + public const uint ES_USER_PRESENT = 4; + + public const int GWL_EXSTYLE = -20; + public const int GWL_HINSTANCE = -6; + public const int GWL_HWNDPARENT = -8; + public const int GWL_ID = -12; + public const int GWL_STYLE = -16; + public const int GWL_USERDATA = -21; + public const int GWL_WNDPROC = -4; + + public static readonly IntPtr HWND_NOTOPMOST = new IntPtr( -2 ); + public static readonly IntPtr HWND_TOPMOST = new IntPtr( -1 ); + public const uint MAXPNAMELEN = 0x20; + + #region [ MIDIメッセージ ] + public const uint MIM_CLOSE = 0x3c2; + public const uint MIM_DATA = 0x3c3; + public const uint MIM_ERROR = 0x3c5; + public const uint MIM_LONGDATA = 0x3c4; + public const uint MIM_LONGERROR = 0x3c6; + public const uint MIM_OPEN = 0x3c1; + #endregion + + public const int MONITOR_DEFAULTTOPRIMARY = 1; + + public const int PBT_APMQUERYSTANDBY = 1; + public const int PBT_APMQUERYSUSPEND = 0; + + public const int SC_MONITORPOWER = 0xf170; + public const int SC_SCREENSAVE = 0xf140; + + public const int SIZE_MAXIMIZED = 2; + public const int SIZE_MINIMIZED = 1; + public const int SIZE_RESTORED = 0; + + public const uint SWP_FRAMECHANGED = 0x20; + public const uint SWP_HIDEWINDOW = 0x80; + public const uint SWP_NOACTIVATE = 0x10; + public const uint SWP_NOCOPYBITS = 0x100; + public const uint SWP_NOMOVE = 2; + public const uint SWP_NOOWNERZORDER = 0x200; + public const uint SWP_NOREDRAW = 8; + public const uint SWP_NOSENDCHANGING = 0x400; + public const uint SWP_NOSIZE = 1; + public const uint SWP_NOZORDER = 4; + public const uint SWP_SHOWWINDOW = 0x40; + + public const uint PM_NOREMOVE = 0; + public const uint PM_REMOVE = 1; + + #region [ DirectShow, VFW 関連 ] + //----------------- + public const int S_WARN_OUTPUTRESET = 0x00009DD4; + public const int E_NOTINTREE = unchecked( (int) 0x80040400 ); + public const int E_RENDER_ENGINE_IS_BROKEN = unchecked( (int) 0x80040401 ); + public const int E_MUST_INIT_RENDERER = unchecked( (int) 0x80040402 ); + public const int E_NOTDETERMINED = unchecked( (int) 0x80040403 ); + public const int E_NO_TIMELINE = unchecked( (int) 0x80040404 ); + + public const int VFW_E_INVALIDMEDIATYPE = unchecked( (int) 0x80040200 ); + public const int VFW_E_INVALIDSUBTYPE = unchecked( (int) 0x80040201 ); + public const int VFW_E_NEED_OWNER = unchecked( (int) 0x80040202 ); + public const int VFW_E_ENUM_OUT_OF_SYNC = unchecked( (int) 0x80040203 ); + public const int VFW_E_ALREADY_CONNECTED = unchecked( (int) 0x80040204 ); + public const int VFW_E_FILTER_ACTIVE = unchecked( (int) 0x80040205 ); + public const int VFW_E_NO_TYPES = unchecked( (int) 0x80040206 ); + public const int VFW_E_NO_ACCEPTABLE_TYPES = unchecked( (int) 0x80040207 ); + public const int VFW_E_INVALID_DIRECTION = unchecked( (int) 0x80040208 ); + public const int VFW_E_NOT_CONNECTED = unchecked( (int) 0x80040209 ); + public const int VFW_E_NO_ALLOCATOR = unchecked( (int) 0x8004020A ); + public const int VFW_E_RUNTIME_ERROR = unchecked( (int) 0x8004020B ); + public const int VFW_E_BUFFER_NOTSET = unchecked( (int) 0x8004020C ); + public const int VFW_E_BUFFER_OVERFLOW = unchecked( (int) 0x8004020D ); + public const int VFW_E_BADALIGN = unchecked( (int) 0x8004020E ); + public const int VFW_E_ALREADY_COMMITTED = unchecked( (int) 0x8004020F ); + public const int VFW_E_BUFFERS_OUTSTANDING = unchecked( (int) 0x80040210 ); + public const int VFW_E_NOT_COMMITTED = unchecked( (int) 0x80040211 ); + public const int VFW_E_SIZENOTSET = unchecked( (int) 0x80040212 ); + public const int VFW_E_NO_CLOCK = unchecked( (int) 0x80040213 ); + public const int VFW_E_NO_SINK = unchecked( (int) 0x80040214 ); + public const int VFW_E_NO_INTERFACE = unchecked( (int) 0x80040215 ); + public const int VFW_E_NOT_FOUND = unchecked( (int) 0x80040216 ); + public const int VFW_E_CANNOT_CONNECT = unchecked( (int) 0x80040217 ); + public const int VFW_E_CANNOT_RENDER = unchecked( (int) 0x80040218 ); + public const int VFW_E_CHANGING_FORMAT = unchecked( (int) 0x80040219 ); + public const int VFW_E_NO_COLOR_KEY_SET = unchecked( (int) 0x8004021A ); + public const int VFW_E_NOT_OVERLAY_CONNECTION = unchecked( (int) 0x8004021B ); + public const int VFW_E_NOT_SAMPLE_CONNECTION = unchecked( (int) 0x8004021C ); + public const int VFW_E_PALETTE_SET = unchecked( (int) 0x8004021D ); + public const int VFW_E_COLOR_KEY_SET = unchecked( (int) 0x8004021E ); + public const int VFW_E_NO_COLOR_KEY_FOUND = unchecked( (int) 0x8004021F ); + public const int VFW_E_NO_PALETTE_AVAILABLE = unchecked( (int) 0x80040220 ); + public const int VFW_E_NO_DISPLAY_PALETTE = unchecked( (int) 0x80040221 ); + public const int VFW_E_TOO_MANY_COLORS = unchecked( (int) 0x80040222 ); + public const int VFW_E_STATE_CHANGED = unchecked( (int) 0x80040223 ); + public const int VFW_E_NOT_STOPPED = unchecked( (int) 0x80040224 ); + public const int VFW_E_NOT_PAUSED = unchecked( (int) 0x80040225 ); + public const int VFW_E_NOT_RUNNING = unchecked( (int) 0x80040226 ); + public const int VFW_E_WRONG_STATE = unchecked( (int) 0x80040227 ); + public const int VFW_E_START_TIME_AFTER_END = unchecked( (int) 0x80040228 ); + public const int VFW_E_INVALID_RECT = unchecked( (int) 0x80040229 ); + public const int VFW_E_TYPE_NOT_ACCEPTED = unchecked( (int) 0x8004022A ); + public const int VFW_E_SAMPLE_REJECTED = unchecked( (int) 0x8004022B ); + public const int VFW_E_SAMPLE_REJECTED_EOS = unchecked( (int) 0x8004022C ); + public const int VFW_E_DUPLICATE_NAME = unchecked( (int) 0x8004022D ); + public const int VFW_S_DUPLICATE_NAME = 0x0004022D; + public const int VFW_E_TIMEOUT = unchecked( (int) 0x8004022E ); + public const int VFW_E_INVALID_FILE_FORMAT = unchecked( (int) 0x8004022F ); + public const int VFW_E_ENUM_OUT_OF_RANGE = unchecked( (int) 0x80040230 ); + public const int VFW_E_CIRCULAR_GRAPH = unchecked( (int) 0x80040231 ); + public const int VFW_E_NOT_ALLOWED_TO_SAVE = unchecked( (int) 0x80040232 ); + public const int VFW_E_TIME_ALREADY_PASSED = unchecked( (int) 0x80040233 ); + public const int VFW_E_ALREADY_CANCELLED = unchecked( (int) 0x80040234 ); + public const int VFW_E_CORRUPT_GRAPH_FILE = unchecked( (int) 0x80040235 ); + public const int VFW_E_ADVISE_ALREADY_SET = unchecked( (int) 0x80040236 ); + public const int VFW_S_STATE_INTERMEDIATE = 0x00040237; + public const int VFW_E_NO_MODEX_AVAILABLE = unchecked( (int) 0x80040238 ); + public const int VFW_E_NO_ADVISE_SET = unchecked( (int) 0x80040239 ); + public const int VFW_E_NO_FULLSCREEN = unchecked( (int) 0x8004023A ); + public const int VFW_E_IN_FULLSCREEN_MODE = unchecked( (int) 0x8004023B ); + public const int VFW_E_UNKNOWN_FILE_TYPE = unchecked( (int) 0x80040240 ); + public const int VFW_E_CANNOT_LOAD_SOURCE_FILTER = unchecked( (int) 0x80040241 ); + public const int VFW_S_PARTIAL_RENDER = 0x00040242; + public const int VFW_E_FILE_TOO_SHORT = unchecked( (int) 0x80040243 ); + public const int VFW_E_INVALID_FILE_VERSION = unchecked( (int) 0x80040244 ); + public const int VFW_S_SOME_DATA_IGNORED = 0x00040245; + public const int VFW_S_CONNECTIONS_DEFERRED = 0x00040246; + public const int VFW_E_INVALID_CLSID = unchecked( (int) 0x80040247 ); + public const int VFW_E_INVALID_MEDIA_TYPE = unchecked( (int) 0x80040248 ); + public const int VFW_E_SAMPLE_TIME_NOT_SET = unchecked( (int) 0x80040249 ); + public const int VFW_S_RESOURCE_NOT_NEEDED = 0x00040250; + public const int VFW_E_MEDIA_TIME_NOT_SET = unchecked( (int) 0x80040251 ); + public const int VFW_E_NO_TIME_FORMAT_SET = unchecked( (int) 0x80040252 ); + public const int VFW_E_MONO_AUDIO_HW = unchecked( (int) 0x80040253 ); + public const int VFW_S_MEDIA_TYPE_IGNORED = 0x00040254; + public const int VFW_E_NO_DECOMPRESSOR = unchecked( (int) 0x80040255 ); + public const int VFW_E_NO_AUDIO_HARDWARE = unchecked( (int) 0x80040256 ); + public const int VFW_S_VIDEO_NOT_RENDERED = 0x00040257; + public const int VFW_S_AUDIO_NOT_RENDERED = 0x00040258; + public const int VFW_E_RPZA = unchecked( (int) 0x80040259 ); + public const int VFW_S_RPZA = 0x0004025A; + public const int VFW_E_PROCESSOR_NOT_SUITABLE = unchecked( (int) 0x8004025B ); + public const int VFW_E_UNSUPPORTED_AUDIO = unchecked( (int) 0x8004025C ); + public const int VFW_E_UNSUPPORTED_VIDEO = unchecked( (int) 0x8004025D ); + public const int VFW_E_MPEG_NOT_CONSTRAINED = unchecked( (int) 0x8004025E ); + public const int VFW_E_NOT_IN_GRAPH = unchecked( (int) 0x8004025F ); + public const int VFW_S_ESTIMATED = 0x00040260; + public const int VFW_E_NO_TIME_FORMAT = unchecked( (int) 0x80040261 ); + public const int VFW_E_READ_ONLY = unchecked( (int) 0x80040262 ); + public const int VFW_S_RESERVED = 0x00040263; + public const int VFW_E_BUFFER_UNDERFLOW = unchecked( (int) 0x80040264 ); + public const int VFW_E_UNSUPPORTED_STREAM = unchecked( (int) 0x80040265 ); + public const int VFW_E_NO_TRANSPORT = unchecked( (int) 0x80040266 ); + public const int VFW_S_STREAM_OFF = 0x00040267; + public const int VFW_S_CANT_CUE = 0x00040268; + public const int VFW_E_BAD_VIDEOCD = unchecked( (int) 0x80040269 ); + public const int VFW_S_NO_STOP_TIME = 0x00040270; + public const int VFW_E_OUT_OF_VIDEO_MEMORY = unchecked( (int) 0x80040271 ); + public const int VFW_E_VP_NEGOTIATION_FAILED = unchecked( (int) 0x80040272 ); + public const int VFW_E_DDRAW_CAPS_NOT_SUITABLE = unchecked( (int) 0x80040273 ); + public const int VFW_E_NO_VP_HARDWARE = unchecked( (int) 0x80040274 ); + public const int VFW_E_NO_CAPTURE_HARDWARE = unchecked( (int) 0x80040275 ); + public const int VFW_E_DVD_OPERATION_INHIBITED = unchecked( (int) 0x80040276 ); + public const int VFW_E_DVD_INVALIDDOMAIN = unchecked( (int) 0x80040277 ); + public const int VFW_E_DVD_NO_BUTTON = unchecked( (int) 0x80040278 ); + public const int VFW_E_DVD_GRAPHNOTREADY = unchecked( (int) 0x80040279 ); + public const int VFW_E_DVD_RENDERFAIL = unchecked( (int) 0x8004027A ); + public const int VFW_E_DVD_DECNOTENOUGH = unchecked( (int) 0x8004027B ); + public const int VFW_E_DVD_NOT_IN_KARAOKE_MODE = unchecked( (int) 0x8004028B ); + public const int VFW_E_FRAME_STEP_UNSUPPORTED = unchecked( (int) 0x8004028E ); + public const int VFW_E_PIN_ALREADY_BLOCKED_ON_THIS_THREAD = unchecked( (int) 0x80040293 ); + public const int VFW_E_PIN_ALREADY_BLOCKED = unchecked( (int) 0x80040294 ); + public const int VFW_E_CERTIFICATION_FAILURE = unchecked( (int) 0x80040295 ); + public const int VFW_E_BAD_KEY = unchecked( (int) 0x800403F2 ); + //----------------- + #endregion + + #region [ Windowsメッセージ ] + public const uint WM_ACTIVATEAPP = 0x1c; + public const uint WM_COPYDATA = 0x4a; + public const uint WM_CLOSE = 0x10; + public const uint WM_POWERBROADCAST = 0x218; + public const uint WM_SIZE = 5; + public const uint WM_SYSCOMMAND = 0x112; + public const uint WM_SYSKEYDOWN = 260; + public const uint WM_APP = 0x00008000; + public const uint WM_QUIT = 0x12; + public const uint WPF_RESTORETOMAXIMIZED = 2; + #endregion + + #region [ WindowsStyle フラグ] + public const long WS_BORDER = 0x800000L; + public const long WS_CAPTION = 0xc00000L; + public const long WS_CHILD = 0x40000000L; + public const long WS_CHILDWINDOW = 0x40000000L; + public const long WS_CLIPCHILDREN = 0x2000000L; + public const long WS_CLIPSIBLINGS = 0x4000000L; + public const long WS_DISABLED = 0x8000000L; + public const long WS_DLGFRAME = 0x400000L; + public const long WS_GROUP = 0x20000L; + public const long WS_HSCROLL = 0x100000L; + public const long WS_ICONIC = 0x20000000L; + public const long WS_MAXIMIZE = 0x1000000L; + public const long WS_MAXIMIZEBOX = 0x10000L; + public const long WS_MINIMIZE = 0x20000000L; + public const long WS_MINIMIZEBOX = 0x20000L; + public const long WS_OVERLAPPED = 0L; + public const long WS_OVERLAPPEDWINDOW = 0xcf0000L; + public const long WS_POPUP = 0x80000000L; + public const long WS_POPUPWINDOW = 0x80880000L; + public const long WS_SIZEBOX = 0x40000L; + public const long WS_SYSMENU = 0x80000L; + public const long WS_TABSTOP = 0x10000L; + public const long WS_THICKFRAME = 0x40000L; + public const long WS_TILED = 0L; + public const long WS_TILEDWINDOW = 0xcf0000L; + public const long WS_VISIBLE = 0x10000000L; + public const long WS_VSCROLL = 0x200000L; + public const long WS_EX_ACCEPTFILES = 0x10L; + public const long WS_EX_APPWINDOW = 0x40000L; + public const long WS_EX_CLIENTEDGE = 0x200L; + public const long WS_EX_COMPOSITED = 0x2000000L; + public const long WS_EX_CONTEXTHELP = 0x400L; + public const long WS_EX_CONTROLPARENT = 0x10000L; + public const long WS_EX_DLGMODALFRAME = 1L; + public const long WS_EX_LAYERED = 0x80000L; + public const long WS_EX_LAYOUTRTL = 0x400000L; + public const long WS_EX_LEFT = 0L; + public const long WS_EX_LEFTSCROLLBAR = 0x4000L; + public const long WS_EX_LTRREADING = 0L; + public const long WS_EX_MDICHILD = 0x40L; + public const long WS_EX_NOACTIVATE = 0x8000000L; + public const long WS_EX_NOINHERITLAYOUT = 0x100000L; + public const long WS_EX_NOPARENTNOTIFY = 4L; + public const long WS_EX_OVERLAPPEDWINDOW = 0x300L; + public const long WS_EX_PALETTEWINDOW = 0x188L; + public const long WS_EX_RIGHT = 0x1000L; + public const long WS_EX_RIGHTSCROLLBAR = 0L; + public const long WS_EX_RTLREADING = 0x2000L; + public const long WS_EX_STATICEDGE = 0x20000L; + public const long WS_EX_TOOLWINDOW = 0x80L; + public const long WS_EX_TOPMOST = 8L; + public const long WS_EX_TRANSPARENT = 0x20L; + public const long WS_EX_WINDOWEDGE = 0x100L; + #endregion + + + public enum EShowWindow + { + ForceMinimize = 11, + Hide = 0, + Maximize = 3, + Minimize = 6, + Normal = 1, + Restore = 9, + Show = 5, + ShowDefault = 10, + ShowMaximized = 3, + ShowMinimized = 2, + ShowMinNoActive = 7, + ShowNA = 8, + ShowNoActivate = 4 + } + public enum MMSYSERR + { + NOERROR, + ERROR, + BADDEVICEID, + NOTENABLED, + ALLOCATED, + INVALHANDLE, + NODRIVER, + NOMEM, + NOTSUPPORTED, + BADERRNUM, + INVALFLAG, + INVALPARAM, + HANDLEBUSY, + INVALIDALIAS, + BADDB, + KEYNOTFOUND, + READERROR, + WRITEERROR, + DELETEERROR, + VALNOTFOUND, + NODRIVERCB, + MOREDATA + } + [FlagsAttribute] + internal enum ExecutionState : uint + { + Null = 0, // 関数が失敗した時の戻り値 + SystemRequired = 1, // スタンバイを抑止 + DisplayRequired = 2, // 画面OFFを抑止 + Continuous = 0x80000000, // 効果を永続させる。ほかオプションと併用する。 + } + //----------------- + #endregion + + #region [ Win32 関数 ] + //----------------- + [return: MarshalAs( UnmanagedType.Bool )] + [DllImport( "user32.dll", CharSet = CharSet.Auto, SetLastError = true )] + public static extern bool AdjustWindowRect( ref RECT lpRect, uint dwStyle, [MarshalAs( UnmanagedType.Bool )] bool bMenu ); + [return: MarshalAs( UnmanagedType.Bool )] + [DllImport( "user32.dll", CharSet = CharSet.Auto, SetLastError = true )] + public static extern bool GetClientRect( IntPtr hWnd, out RECT lpRect ); + [DllImport( "user32.dll", CharSet = CharSet.Auto, SetLastError = true )] + public static extern uint GetWindowLong( IntPtr hWnd, int nIndex ); + [return: MarshalAs( UnmanagedType.Bool )] + [DllImport( "user32.dll", CharSet = CharSet.Auto, SetLastError = true )] + public static extern bool GetWindowPlacement( IntPtr hWnd, ref WINDOWPLACEMENT lpwndpl ); + [return: MarshalAs( UnmanagedType.Bool )] + [DllImport( "user32.dll", CharSet = CharSet.Auto )] + public static extern bool IsIconic( IntPtr hWnd ); + [return: MarshalAs( UnmanagedType.Bool )] + [DllImport( "user32.dll", CharSet = CharSet.Auto )] + public static extern bool IsWindowVisible( IntPtr hWnd ); + [return: MarshalAs( UnmanagedType.Bool )] + [DllImport( "user32.dll", CharSet = CharSet.Auto )] + public static extern bool IsZoomed( IntPtr hWnd ); + [DllImport("winmm.dll")] + public static extern uint midiInClose(IntPtr hMidiIn); + [DllImport("winmm.dll")] + public static extern uint midiInGetDevCaps(uint uDeviceID, ref MIDIINCAPS lpMidiInCaps, uint cbMidiInCaps); + [DllImport("winmm.dll")] + public static extern uint midiInGetID(IntPtr hMidiIn, ref IntPtr puDeviceID); + [DllImport("winmm.dll")] + public static extern uint midiInGetNumDevs(); + [DllImport("winmm.dll")] + public static extern uint midiInOpen(ref IntPtr phMidiIn, uint uDeviceID, MidiInProc dwCallback, IntPtr dwInstance, int fdwOpen); + [DllImport("winmm.dll")] + public static extern uint midiInReset(IntPtr hMidiIn); + [DllImport("winmm.dll")] + public static extern uint midiInStart(IntPtr hMidiIn); + [DllImport("winmm.dll")] + public static extern uint midiInStop(IntPtr hMidiIn); + [DllImport( "user32.dll", CharSet = CharSet.Auto )] + public static extern IntPtr MonitorFromWindow( IntPtr hwnd, uint dwFlags ); + [return: MarshalAs( UnmanagedType.Bool )] + [DllImport( "user32.dll", CharSet = CharSet.Auto )] + public static extern bool PeekMessage( out WindowMessage message, IntPtr hwnd, uint messageFilterMin, uint messageFilterMax, uint flags ); + [DllImport( "kernel32.dll", CharSet = CharSet.Auto )] + public static extern uint SetThreadExecutionState( uint esFlags ); + [DllImport( "Kernel32.Dll" )] + public static unsafe extern void CopyMemory( void* pDest, void* pSrc, uint numOfBytes ); + + [DllImport( "user32.dll", CharSet = CharSet.Auto, SetLastError = true )] + public static extern uint SetWindowLong( IntPtr hWnd, int nIndex, uint dwNewLong ); + [return: MarshalAs( UnmanagedType.Bool )] + [DllImport( "user32.dll", CharSet = CharSet.Auto, SetLastError = true )] + public static extern bool SetWindowPlacement( IntPtr hWnd, ref WINDOWPLACEMENT lpwndpl ); + [return: MarshalAs( UnmanagedType.Bool )] + [DllImport( "user32.dll", CharSet = CharSet.Auto, SetLastError = true )] + public static extern bool SetWindowPos( IntPtr hWnd, IntPtr hWndInsertAfter, int X, int Y, int cx, int cy, uint uFlags ); + [return: MarshalAs( UnmanagedType.Bool )] + [DllImport( "user32.dll", CharSet = CharSet.Auto )] + public static extern bool ShowWindow( IntPtr hWnd, EShowWindow nCmdShow ); + [return: MarshalAs( UnmanagedType.Bool )] + [DllImport( "user32.dll", CharSet = CharSet.Auto, SetLastError = true )] + public static extern bool SystemParametersInfo( uint uiAction, uint uiParam, IntPtr pvParam, uint fWinIni ); + [DllImport( "kernel32.dll" )] + public static extern void GetSystemInfo( ref SYSTEM_INFO ptmpsi ); + [DllImport( "kernel32.dll" )] + internal static extern ExecutionState SetThreadExecutionState( ExecutionState esFlags ); + //----------------- + #endregion + + #region [ Win32 構造体 ] + //----------------- + [StructLayout( LayoutKind.Sequential )] + private struct FILTERKEYS + { + public int cbSize; + public int dwFlags; + } + + [StructLayout( LayoutKind.Sequential )] + public struct MIDIINCAPS + { + public ushort wMid; + public ushort wPid; + public uint vDriverVersion; + [MarshalAs( UnmanagedType.ByValTStr, SizeConst = 0x20 )] + public string szPname; + public uint dwSupport; + } + + [StructLayout( LayoutKind.Sequential )] + public struct RECT + { + public int left; + public int top; + public int right; + public int bottom; + } + + [StructLayout( LayoutKind.Sequential )] + private struct STICKYKEYS + { + public int cbSize; + public int dwFlags; + } + + [StructLayout( LayoutKind.Sequential )] + private struct TOGGLEKEYS + { + public int cbSize; + public int dwFlags; + } + + [StructLayout( LayoutKind.Sequential )] + public struct WAVEFORMATEX + { + public ushort wFormatTag; + public ushort nChannels; + public uint nSamplesPerSec; + public uint nAvgBytesPerSec; + public ushort nBlockAlign; + public ushort wBitsPerSample; + public ushort cbSize; + } + + [StructLayout( LayoutKind.Sequential )] + public struct WindowMessage + { + public IntPtr hWnd; + public uint msg; + public IntPtr wParam; + public IntPtr lParam; + public uint time; + public Point p; + } + + [StructLayout( LayoutKind.Sequential )] + public struct WINDOWPLACEMENT + { + public int length; + public int flags; + public CWin32.EShowWindow showCmd; + public Point ptMinPosition; + public Point ptMaxPosition; + public CWin32.RECT rcNormalPosition; + public static int Length + { + get + { + return Marshal.SizeOf( typeof( CWin32.WINDOWPLACEMENT ) ); + } + } + } + [StructLayout( LayoutKind.Sequential )] + public struct SYSTEM_INFO + { + public uint dwOemId; + public uint dwPageSize; + public uint lpMinimumApplicationAddress; + public uint lpMaximumApplicationAddress; + public uint dwActiveProcessorMask; + public uint dwNumberOfProcessors; + public uint dwProcessorType; + public uint dwAllocationGranularity; + public uint dwProcessorLevel; + public uint dwProcessorRevision; + } + //----------------- + #endregion + + + // プロパティ + + public static bool bアプリがIdle状態である + { + get + { + WindowMessage message; + return !PeekMessage( out message, IntPtr.Zero, 0, 0, 0 ); + } + } + + + // キーボードの特殊機能の制御 + + public static class Cトグルキー機能 + { + public static void t無効化する() + { + if( ( stored.dwFlags & 1L ) == 0L ) + { + CWin32.TOGGLEKEYS structure = new CWin32.TOGGLEKEYS(); + structure.dwFlags = stored.dwFlags; + structure.cbSize = stored.cbSize; + structure.dwFlags &= -5; + structure.dwFlags &= -9; + int cb = Marshal.SizeOf( structure ); + IntPtr ptr = Marshal.AllocCoTaskMem( cb ); + Marshal.StructureToPtr( structure, ptr, false ); + CWin32.SystemParametersInfo( 0x35, (uint) cb, ptr, 0 ); + Marshal.FreeCoTaskMem( ptr ); + } + } + public static void t復元する() + { + int cb = Marshal.SizeOf( stored ); + IntPtr ptr = Marshal.AllocCoTaskMem( cb ); + Marshal.StructureToPtr( stored, ptr, false ); + CWin32.SystemParametersInfo( 0x35, (uint) cb, ptr, 0 ); + Marshal.FreeCoTaskMem( ptr ); + } + + #region [ private ] + //----------------- + static Cトグルキー機能() + { + int cb = Marshal.SizeOf( stored ); + IntPtr ptr = Marshal.AllocCoTaskMem( cb ); + Marshal.StructureToPtr( stored, ptr, false ); + CWin32.SystemParametersInfo( 0x34, (uint) cb, ptr, 0 ); + stored = (CWin32.TOGGLEKEYS) Marshal.PtrToStructure( ptr, typeof( CWin32.TOGGLEKEYS ) ); + Marshal.FreeCoTaskMem( ptr ); + } + + private const uint SPI_GETTOGGLEKEYS = 0x34; + private const uint SPI_SETTOGGLEKEYS = 0x35; + private static CWin32.TOGGLEKEYS stored = new CWin32.TOGGLEKEYS(); + private const uint TKF_CONFIRMHOTKEY = 8; + private const uint TKF_HOTKEYACTIVE = 4; + private const uint TKF_TOGGLEKEYSON = 1; + //----------------- + #endregion + } + public static class Cフィルタキー機能 + { + public static void t無効化する() + { + if( ( stored.dwFlags & 1L ) == 0L ) + { + CWin32.FILTERKEYS structure = new CWin32.FILTERKEYS(); + structure.dwFlags = stored.dwFlags; + structure.cbSize = stored.cbSize; + structure.dwFlags &= -5; + structure.dwFlags &= -9; + int cb = Marshal.SizeOf( structure ); + IntPtr ptr = Marshal.AllocCoTaskMem( cb ); + Marshal.StructureToPtr( structure, ptr, false ); + CWin32.SystemParametersInfo( 0x3b, (uint) cb, ptr, 0 ); + Marshal.FreeCoTaskMem( ptr ); + } + } + public static void t復元する() + { + int cb = Marshal.SizeOf( stored ); + IntPtr ptr = Marshal.AllocCoTaskMem( cb ); + Marshal.StructureToPtr( stored, ptr, false ); + CWin32.SystemParametersInfo( 0x3b, (uint) cb, ptr, 0 ); + Marshal.FreeCoTaskMem( ptr ); + } + + #region [ private ] + //----------------- + static Cフィルタキー機能() + { + stored.cbSize = 0; + stored.dwFlags = 0; + int cb = Marshal.SizeOf( stored ); + IntPtr ptr = Marshal.AllocCoTaskMem( cb ); + Marshal.StructureToPtr( stored, ptr, false ); + CWin32.SystemParametersInfo( 50, (uint) cb, ptr, 0 ); + stored = (CWin32.FILTERKEYS) Marshal.PtrToStructure( ptr, typeof( CWin32.FILTERKEYS ) ); + Marshal.FreeCoTaskMem( ptr ); + } + + private const uint FKF_CONFIRMHOTKEY = 8; + private const uint FKF_FILTERKEYSON = 1; + private const uint FKF_HOTKEYACTIVE = 4; + private const uint SPI_GETFILTERKEYS = 50; + private const uint SPI_SETFILTERKEYS = 0x3b; + private static CWin32.FILTERKEYS stored = new CWin32.FILTERKEYS(); + //----------------- + #endregion + } + public static class C固定キー機能 + { + public static void t無効化する() + { + if( ( stored.dwFlags & 1L ) == 0L ) + { + CWin32.STICKYKEYS structure = new CWin32.STICKYKEYS(); + structure.dwFlags = stored.dwFlags; + structure.cbSize = stored.cbSize; + structure.dwFlags &= -5; + structure.dwFlags &= -9; + int cb = Marshal.SizeOf( structure ); + IntPtr ptr = Marshal.AllocCoTaskMem( cb ); + Marshal.StructureToPtr( structure, ptr, false ); + CWin32.SystemParametersInfo( 0x3b, (uint) cb, ptr, 0 ); + Marshal.FreeCoTaskMem( ptr ); + } + } + public static void t復元する() + { + int cb = Marshal.SizeOf( stored ); + IntPtr ptr = Marshal.AllocCoTaskMem( cb ); + Marshal.StructureToPtr( stored, ptr, false ); + CWin32.SystemParametersInfo( 0x3b, (uint) cb, ptr, 0 ); + Marshal.FreeCoTaskMem( ptr ); + } + + #region [ private ] + //----------------- + static C固定キー機能() + { + stored.cbSize = 0; + stored.dwFlags = 0; + int cb = Marshal.SizeOf( stored ); + IntPtr ptr = Marshal.AllocCoTaskMem( cb ); + Marshal.StructureToPtr( stored, ptr, false ); + CWin32.SystemParametersInfo( 0x3a, (uint) cb, ptr, 0 ); + stored = (CWin32.STICKYKEYS) Marshal.PtrToStructure( ptr, typeof( CWin32.STICKYKEYS ) ); + Marshal.FreeCoTaskMem( ptr ); + } + + private const uint SKF_CONFIRMHOTKEY = 8; + private const uint SKF_HOTKEYACTIVE = 4; + private const uint SKF_STICKYKEYSON = 1; + private const uint SPI_GETSTICKYKEYS = 0x3a; + private const uint SPI_SETSTICKYKEYS = 0x3b; + private static CWin32.STICKYKEYS stored = new CWin32.STICKYKEYS(); + //----------------- + #endregion + } + + + // Win32 メッセージ処理デリゲート + + public delegate void MidiInProc(IntPtr hMidiIn, uint wMsg, IntPtr dwInstance, IntPtr dwParam1, IntPtr dwParam2); + } +} diff --git a/FDK19/コード/00.共通/C一定間隔処理.cs b/FDK19/コード/00.共通/C一定間隔処理.cs new file mode 100644 index 00000000..60d2accf --- /dev/null +++ b/FDK19/コード/00.共通/C一定間隔処理.cs @@ -0,0 +1,61 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace FDK +{ + /// + /// 一定の間隔で処理を行うテンプレートパターンの定義。 + /// たとえば、t進行() で 5ms ごとに行う処理を前回のt進行()の呼び出しから 15ms 後に呼び出した場合は、処理が 3回 実行される。 + /// + public class C一定間隔処理 : IDisposable + { + public delegate void dg処理(); + public void t進行( long n間隔ms, dg処理 dg処理 ) + { + // タイマ更新 + + if( this.timer == null ) + return; + this.timer.t更新(); + + + // 初めての進行処理 + + if( this.n前回の時刻 == CTimer.n未使用 ) + this.n前回の時刻 = this.timer.n現在時刻ms; + + + // タイマが一回りしてしまった時のため…… + + if( this.timer.n現在時刻ms < this.n前回の時刻 ) + this.n前回の時刻 = this.timer.n現在時刻ms; + + + // 時間内の処理を実行。 + + while( ( this.timer.n現在時刻ms - this.n前回の時刻 ) >= n間隔ms ) + { + dg処理(); + + this.n前回の時刻 += n間隔ms; + } + } + + #region [ IDisposable 実装 ] + //----------------- + public void Dispose() + { + C共通.tDisposeする( ref this.timer ); + } + //----------------- + #endregion + + #region [ protected ] + //----------------- + protected CTimer timer = new CTimer( CTimer.E種別.MultiMedia ); + protected long n前回の時刻 = CTimer.n未使用; + //----------------- + #endregion + } +} diff --git a/FDK19/コード/00.共通/C共通.cs b/FDK19/コード/00.共通/C共通.cs new file mode 100644 index 00000000..6de72ecc --- /dev/null +++ b/FDK19/コード/00.共通/C共通.cs @@ -0,0 +1,180 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Diagnostics; +using System.Windows.Forms; +using System.IO; +using System.Runtime.InteropServices; + +namespace FDK +{ + public class C共通 + { + // 解放 + + public static void tDisposeする( ref T obj ) + { + if( obj == null ) + return; + + var d = obj as IDisposable; + + if( d != null ) + { + d.Dispose(); + obj = default( T ); + } + } + public static void tDisposeする( T obj ) + { + if( obj == null ) + return; + + var d = obj as IDisposable; + + if( d != null ) + d.Dispose(); + } + public static void tCOMオブジェクトを解放する( ref T obj ) + { + if( obj != null ) + { + try + { + Marshal.ReleaseComObject( obj ); + } + catch + { + // COMがマネージドコードで書かれている場合、ReleaseComObject は例外を発生させる。 + // http://www.infoq.com/jp/news/2010/03/ReleaseComObject-Dangerous + } + + obj = default( T ); + } + } + + public static void t完全なガベージコレクションを実施する() + { + GC.Collect(); // アクセス不可能なオブジェクトを除去し、ファイナライぜーション実施。 + GC.WaitForPendingFinalizers(); // ファイナライゼーションが終わるまでスレッドを待機。 + GC.Collect(); // ファイナライズされたばかりのオブジェクトに関連するメモリを開放。 + + // 出展: http://msdn.microsoft.com/ja-jp/library/ms998547.aspx#scalenetchapt05_topic10 + } + + + // ログ + + public static void LogBlock( string str処理名, MethodInvoker method ) + { + Trace.TraceInformation( "--------------------" ); + Trace.TraceInformation( "開始 - " + str処理名 ); + Trace.Indent(); + try + { + method(); + } + finally + { + Trace.Unindent(); + Trace.TraceInformation( "終了 - " + str処理名 ); + Trace.TraceInformation( "--------------------" ); + } + } + public static void t例外の詳細をログに出力する( Exception e ) + { + Trace.WriteLine( "---例外ここから----" ); + Trace.WriteLine( e.ToString() ); + Trace.WriteLine( "---例外ここまで----" ); + } + + + // IO + + public static string t指定した拡張子を持つファイルを検索し最初に見つけたファイルの絶対パスを返す( string strフォルダパス, List list拡張子リスト ) + { + string[] files = Directory.GetFiles( strフォルダパス ); // GetFiles() は完全パスを返す。 + + + // ファイル順より拡張子順を優先して検索する。→ 拡張子リストの前方の拡張子ほど先に発見されるようにするため。 + + foreach( string ext in list拡張子リスト ) + { + foreach( string file in files ) + { + string fileExt = Path.GetExtension( file ); + + if( fileExt.Equals( ext, StringComparison.OrdinalIgnoreCase ) ) + return file; // あった + } + } + + return null; // なかった + } + + public static void tXMLファイルを読み込む( string strXMLファイル名, out T xmlObject ) + { + xmlObject = default( T ); + + FileStream fs = null; + StreamReader sr = null; + try + { + fs = new FileStream( strXMLファイル名, FileMode.Open, FileAccess.Read, FileShare.ReadWrite ); // FileShare を付けとかないと、Close() 後もロックがかかる。 + sr = new StreamReader( fs, Encoding.UTF8 ); + var xmlsl = new System.Xml.Serialization.XmlSerializer( typeof( T ) ); + xmlObject = (T) xmlsl.Deserialize( sr ); + } + finally + { + if( sr != null ) + sr.Close(); // fr も一緒にClose()される + } + } + public static void tXMLファイルを保存する( string strXMLファイル名, T xmlObject ) + { + FileStream fs = null; + StreamWriter sw = null; + try + { + fs = new FileStream( strXMLファイル名, FileMode.Create, FileAccess.Write, FileShare.ReadWrite ); // FileShare を付けとかないと、Close() 後もロックがかかる。 + sw = new StreamWriter( fs, Encoding.UTF8 ); + var xmlsl = new System.Xml.Serialization.XmlSerializer( typeof( T ) ); + xmlsl.Serialize( sw, xmlObject ); + } + finally + { + if( sw != null ) + sw.Close(); // fs も一緒にClose()される + } + } + + + // 数学 + + public static double DegreeToRadian( double angle ) + { + return ( ( Math.PI * angle ) / 180.0 ); + } + public static double RadianToDegree( double angle ) + { + return ( angle * 180.0 / Math.PI ); + } + public static float DegreeToRadian( float angle ) + { + return (float) DegreeToRadian( (double) angle ); + } + public static float RadianToDegree( float angle ) + { + return (float) RadianToDegree( (double) angle ); + } + + public static bool bToggleBoolian( ref bool bFlag ) + { + if( bFlag == true ) bFlag = false; + else if( bFlag == false ) bFlag = true; + + return true; + } + } +} diff --git a/FDK19/コード/00.共通/C変換.cs b/FDK19/コード/00.共通/C変換.cs new file mode 100644 index 00000000..4e8b5ef3 --- /dev/null +++ b/FDK19/コード/00.共通/C変換.cs @@ -0,0 +1,252 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace FDK +{ + public class C変換 + { + // プロパティ + + public static readonly string str16進数文字 = "0123456789ABCDEFabcdef"; + public static readonly string str36進数文字 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; + + + // メソッド + + public static bool bONorOFF( char c ) + { + return ( c != '0' ); + } + + public static double DegreeToRadian( double angle ) + { + return ( ( Math.PI * angle ) / 180.0 ); + } + public static double RadianToDegree( double angle ) + { + return ( angle * 180.0 / Math.PI ); + } + public static float DegreeToRadian( float angle ) + { + return (float) DegreeToRadian( (double) angle ); + } + public static float RadianToDegree( float angle ) + { + return (float) RadianToDegree( (double) angle ); + } + + public static int n値を範囲内に丸めて返す( int n値, int n最小値, int n最大値 ) + { + if( n値 < n最小値 ) + return n最小値; + + if( n値 > n最大値 ) + return n最大値; + + return n値; + } + public static int n値を文字列から取得して範囲内に丸めて返す( string str数値文字列, int n最小値, int n最大値, int n取得失敗時のデフォルト値 ) + { + int num; + if( ( int.TryParse( str数値文字列, out num ) && ( num >= n最小値 ) ) && ( num <= n最大値 ) ) + return num; + + return n取得失敗時のデフォルト値; + } + + public static double db値を文字列から取得して範囲内に丸めて返す( string str数値文字列, double db最小値, double db最大値, double db取得失敗時のデフォルト値 ) + { + double num; + if( ( double.TryParse( str数値文字列, out num ) && ( num >= db最小値 ) ) && ( num <= db最大値 ) ) + return num; + + return db取得失敗時のデフォルト値; + } + + // #23568 2010.11.04 ikanick add + public static int n値を文字列から取得して範囲内にちゃんと丸めて返す(string str数値文字列, int n最小値, int n最大値, int n取得失敗時のデフォルト値) + { + // 1 と違って範囲外の場合ちゃんと丸めて返します。 + int num; + if (int.TryParse(str数値文字列, out num)) { + if ((num >= n最小値) && (num <= n最大値)) + return num; + if ( num < n最小値 ) + return n最小値; + if ( num > n最大値 ) + return n最大値; + } + + return n取得失敗時のデフォルト値; + } + // --------------------ここまで-------------------------/ + public static int n値を文字列から取得して返す( string str数値文字列, int n取得失敗時のデフォルト値 ) + { + int num; + if( !int.TryParse( str数値文字列, out num ) ) + num = n取得失敗時のデフォルト値; + + return num; + } + + public static int n16進数2桁の文字列を数値に変換して返す( string strNum ) + { + if( strNum.Length < 2 ) + return -1; + + int digit2 = str16進数文字.IndexOf( strNum[ 0 ] ); + if( digit2 < 0 ) + return -1; + + if( digit2 >= 16 ) + digit2 -= (16 - 10); // A,B,C... -> 1,2,3... + + int digit1 = str16進数文字.IndexOf( strNum[ 1 ] ); + if( digit1 < 0 ) + return -1; + + if( digit1 >= 16 ) + digit1 -= (16 - 10); + + return digit2 * 16 + digit1; + } + public static int n36進数2桁の文字列を数値に変換して返す( string strNum ) + { + if( strNum.Length < 2 ) + return -1; + + int digit2 = str36進数文字.IndexOf( strNum[ 0 ] ); + if( digit2 < 0 ) + return -1; + + if( digit2 >= 36 ) + digit2 -= (36 - 10); // A,B,C... -> 1,2,3... + + int digit1 = str36進数文字.IndexOf( strNum[ 1 ] ); + if( digit1 < 0 ) + return -1; + + if( digit1 >= 36 ) + digit1 -= (36 - 10); + + return digit2 * 36 + digit1; + } + public static int n小節番号の文字列3桁を数値に変換して返す( string strNum ) + { + if( strNum.Length >= 3 ) + { + int digit3 = str36進数文字.IndexOf( strNum[ 0 ] ); + if( digit3 < 0 ) + return -1; + + if( digit3 >= 36 ) // 3桁目は36進数 + digit3 -= (36 - 10); + + int digit2 = str16進数文字.IndexOf( strNum[ 1 ] ); // 2桁目は10進数 + if( ( digit2 < 0 ) || ( digit2 > 9 ) ) + return -1; + + int digit1 = str16進数文字.IndexOf( strNum[ 2 ] ); // 1桁目も10進数 + if( ( digit1 >= 0 ) && ( digit1 <= 9 ) ) + return digit3 * 100 + digit2 * 10 + digit1; + } + return -1; + } + + public static string str小節番号を文字列3桁に変換して返す( int num ) + { + if( ( num < 0 ) || ( num >= 3600 ) ) // 3600 == Z99 + 1 + return "000"; + + int digit4 = num / 100; + int digit2 = ( num % 100 ) / 10; + int digit1 = ( num % 100 ) % 10; + char ch3 = str36進数文字[ digit4 ]; + char ch2 = str16進数文字[ digit2 ]; + char ch1 = str16進数文字[ digit1 ]; + return ( ch3.ToString() + ch2.ToString() + ch1.ToString() ); + } + public static string str数値を16進数2桁に変換して返す( int num ) + { + if( ( num < 0 ) || ( num >= 0x100 ) ) + return "00"; + + char ch2 = str16進数文字[ num / 0x10 ]; + char ch1 = str16進数文字[ num % 0x10 ]; + return ( ch2.ToString() + ch1.ToString() ); + } + public static string str数値を36進数2桁に変換して返す( int num ) + { + if( ( num < 0 ) || ( num >= 36 * 36 ) ) + return "00"; + + char ch2 = str36進数文字[ num / 36 ]; + char ch1 = str36進数文字[ num % 36 ]; + return ( ch2.ToString() + ch1.ToString() ); + } + + public static int[] ar配列形式のstringをint配列に変換して返す( string str ) + { + //0,1,2 ...の形式で書かれたstringをint配列に変換する。 + //一応実装はしたものの、例外処理などはまだ完成していない。 + //str = "0,1,2"; + if( String.IsNullOrEmpty( str ) ) + return null; + + string[] strArray = str.Split( ',' ); + List listIntArray; + listIntArray = new List(); + + for( int n = 0; n < strArray.Length; n++ ) + { + int n追加する数値 = Convert.ToInt32( strArray[ n ] ); + listIntArray.Add( n追加する数値 ); + } + int[] nArray = new int[] { 1 }; + nArray = listIntArray.ToArray(); + + return nArray; + } + + + /// + /// 百分率数値を255段階数値に変換するメソッド。透明度用。 + /// + /// + /// + public static int nParsentTo255( double num ) + { + return (int)(255.0 * num); + } + + /// + /// 255段階数値を百分率に変換するメソッド。 + /// + /// + /// + public static int n255ToParsent( int num ) + { + return (int)(100.0 / num); + } + + public static SlimDX.Color4 n255ToColor4( int nR, int nG, int nB ) + { + float fR = n255ToParsent( nR ); + float fG = n255ToParsent( nG ); + float fB = n255ToParsent( nB ); + + return new SlimDX.Color4( fR, fG, fB ); + } + + #region [ private ] + //----------------- + + // private コンストラクタでインスタンス生成を禁止する。 + private C変換() + { + } + //----------------- + #endregion + } +} diff --git a/FDK19/コード/00.共通/ExtensionMethods/DoubleExtensions.cs b/FDK19/コード/00.共通/ExtensionMethods/DoubleExtensions.cs new file mode 100644 index 00000000..d7e94c11 --- /dev/null +++ b/FDK19/コード/00.共通/ExtensionMethods/DoubleExtensions.cs @@ -0,0 +1,12 @@ +using System; + +namespace FDK.ExtensionMethods +{ + public static class DoubleExtensions + { + public static double Clamp(this double value, double min, double max) + { + return Math.Min(Math.Max(value, min), max); + } + } +} \ No newline at end of file diff --git a/FDK19/コード/00.共通/ExtensionMethods/Int32Extensions.cs b/FDK19/コード/00.共通/ExtensionMethods/Int32Extensions.cs new file mode 100644 index 00000000..019d3f5d --- /dev/null +++ b/FDK19/コード/00.共通/ExtensionMethods/Int32Extensions.cs @@ -0,0 +1,12 @@ +using System; + +namespace FDK.ExtensionMethods +{ + public static class Int32Extensions + { + public static int Clamp(this int value, int min, int max) + { + return Math.Min(Math.Max(value, min), max); + } + } +} diff --git a/FDK19/コード/01.フレームワーク/Core/Game.cs b/FDK19/コード/01.フレームワーク/Core/Game.cs new file mode 100644 index 00000000..64932ff0 --- /dev/null +++ b/FDK19/コード/01.フレームワーク/Core/Game.cs @@ -0,0 +1,569 @@ +/* +* Copyright (c) 2007-2009 SlimDX Group +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +* THE SOFTWARE. +*/ +using System; +using System.ComponentModel; +using System.Threading; +using System.Windows.Forms; +using SlimDX; +using SlimDX.Direct3D9; +using System.Collections.ObjectModel; + +namespace SampleFramework +{ + /// + /// Presents an easy to use wrapper for making games and samples. + /// + public abstract class Game : IDisposable + { + GameClock clock = new GameClock(); + GameTime gameTime = new GameTime(); + TimeSpan maximumElapsedTime = TimeSpan.FromMilliseconds(500.0); + TimeSpan totalGameTime; + TimeSpan accumulatedElapsedGameTime; + TimeSpan lastFrameElapsedGameTime; + TimeSpan lastFrameElapsedRealTime; + TimeSpan targetElapsedTime = TimeSpan.FromTicks(166667); + TimeSpan inactiveSleepTime = TimeSpan.FromMilliseconds(20.0); + int updatesSinceRunningSlowly1 = int.MaxValue; + int updatesSinceRunningSlowly2 = int.MaxValue; + bool forceElapsedTimeToZero; + bool drawRunningSlowly; + long lastUpdateFrame; + float lastUpdateTime; + + /// + /// Occurs when the game is disposed. + /// + public event EventHandler Disposed; + + /// + /// Occurs when the game is activated. + /// + public event EventHandler Activated; + + /// + /// Occurs when the game is deactivated. + /// + public event EventHandler Deactivated; + + /// + /// Occurs when the game is exiting. + /// + public event EventHandler Exiting; + + /// + /// Occurs when a drawing frame is about to start. + /// + public event CancelEventHandler FrameStart; + + /// + /// Occurs when a drawing frame ends. + /// + public event EventHandler FrameEnd; + + /// + /// Gets or sets the inactive sleep time. + /// + /// The inactive sleep time. + public TimeSpan InactiveSleepTime + { + get { return inactiveSleepTime; } + set + { + // error checking + if (value < TimeSpan.Zero) + throw new ArgumentOutOfRangeException("value", "Inactive sleep time cannot be less than zero."); + inactiveSleepTime = value; + } + } + + /// + /// Gets or sets the target elapsed time. + /// + /// The target elapsed time. + public TimeSpan TargetElapsedTime + { + get { return targetElapsedTime; } + set + { + // error checking + if (value <= TimeSpan.Zero) + throw new ArgumentOutOfRangeException("value", "Target elapsed time must be greater than zero."); + targetElapsedTime = value; + } + } + + /// + /// Gets or sets a value indicating whether the game is using a fixed time step. + /// + /// + /// true if the game is using a fixed time step; otherwise, false. + /// + public bool IsFixedTimeStep + { + get; + set; + } + + /// + /// Gets a value indicating whether this is exiting. + /// + /// true if exiting; otherwise, false. + public bool IsExiting + { + get; + private set; + } + + /// + /// Gets or sets a value indicating whether this instance is running. + /// + /// + /// true if this instance is running; otherwise, false. + /// + public bool IsRunning + { + get; + private set; + } + + /// + /// Gets the game window. + /// + /// The game window. + public GameWindow Window + { + get; + private set; + } + + /// + /// Gets the graphics device manager. + /// + /// The graphics device manager. + public GraphicsDeviceManager GraphicsDeviceManager + { + get; + private set; + } + + /// + /// Gets or sets a value indicating whether this is active. + /// + /// true if active; otherwise, false. + public bool IsActive + { + get; + private set; + } + + /// + /// Initializes the class. + /// + static Game() + { + // configure SlimDX + Configuration.ThrowOnError = true; + Configuration.AddResultWatch(ResultCode.DeviceLost, ResultWatchFlags.AlwaysIgnore); + Configuration.AddResultWatch(ResultCode.WasStillDrawing, ResultWatchFlags.AlwaysIgnore); + +#if DEBUG + Configuration.DetectDoubleDispose = true; + Configuration.EnableObjectTracking = true; +#else + Configuration.DetectDoubleDispose = false; + Configuration.EnableObjectTracking = false; +#endif + + // setup the application + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + } + + /// + /// Initializes a new instance of the class. + /// + protected Game() + { + IsFixedTimeStep = true; + + Window = new GameWindow(); + Window.ApplicationActivated += Window_ApplicationActivated; + Window.ApplicationDeactivated += Window_ApplicationDeactivated; + Window.Suspend += Window_Suspend; + Window.Resume += Window_Resume; + Window.Paint += Window_Paint; + + GraphicsDeviceManager = new GraphicsDeviceManager(this); + } + + /// + /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + /// + public void Dispose() + { + // GraphicsDeviceManager.Dispose will come around and call the Dispose(bool) + // overload, so we don't need to do it here. It's convoluted, but it works well. + if (GraphicsDeviceManager != null) + GraphicsDeviceManager.Dispose(); + GraphicsDeviceManager = null; + + if (Disposed != null) + Disposed(this, EventArgs.Empty); + + GC.SuppressFinalize(this); + } + + /// + /// Exits the game. + /// + public void Exit() + { + // request the game to terminate + IsExiting = true; + } + + /// + /// Runs the game. + /// + public void Run() + { + IsRunning = true; + + try + { + gameTime.ElapsedGameTime = 0; + gameTime.ElapsedRealTime = 0; + gameTime.TotalGameTime = (float)totalGameTime.TotalSeconds; + gameTime.TotalRealTime = (float)clock.CurrentTime.TotalSeconds; + gameTime.IsRunningSlowly = false; + + Update(gameTime); + + Application.Idle += Application_Idle; + Application.Run(Window); + } + finally + { + Application.Idle -= Application_Idle; + IsRunning = false; + OnExiting(EventArgs.Empty); + } + } + + /// + /// Performs one complete frame for the game. + /// + public void Tick() + { + // if we are exiting, do nothing + if (IsExiting) + return; + + // if we are inactive, sleep for a bit + //if (!IsActive) + // Thread.Sleep((int)InactiveSleepTime.TotalMilliseconds); + + clock.Step(); + + gameTime.TotalRealTime = (float)clock.CurrentTime.TotalSeconds; + gameTime.ElapsedRealTime = (float)clock.ElapsedTime.TotalSeconds; + lastFrameElapsedRealTime += clock.ElapsedTime; + TimeSpan elapsedAdjustedTime = clock.ElapsedAdjustedTime; + if (elapsedAdjustedTime < TimeSpan.Zero) + elapsedAdjustedTime = TimeSpan.Zero; + + if (forceElapsedTimeToZero) + { + gameTime.ElapsedRealTime = 0; + lastFrameElapsedRealTime = elapsedAdjustedTime = TimeSpan.Zero; + forceElapsedTimeToZero = false; + } + + // cap the adjusted time + if (elapsedAdjustedTime > maximumElapsedTime) + elapsedAdjustedTime = maximumElapsedTime; + + // check if we are using a fixed or variable time step + if (IsFixedTimeStep) + { + accumulatedElapsedGameTime += elapsedAdjustedTime; + long ratio = accumulatedElapsedGameTime.Ticks / TargetElapsedTime.Ticks; + accumulatedElapsedGameTime = TimeSpan.FromTicks(accumulatedElapsedGameTime.Ticks % TargetElapsedTime.Ticks); + lastFrameElapsedGameTime = TimeSpan.Zero; + if (ratio == 0) + return; + TimeSpan targetElapsedTime = TargetElapsedTime; + + if (ratio > 1) + { + updatesSinceRunningSlowly2 = updatesSinceRunningSlowly1; + updatesSinceRunningSlowly1 = 0; + } + else + { + if (updatesSinceRunningSlowly1 < int.MaxValue) + updatesSinceRunningSlowly1++; + if (updatesSinceRunningSlowly2 < int.MaxValue) + updatesSinceRunningSlowly2++; + } + + drawRunningSlowly = updatesSinceRunningSlowly2 < 20; + + // update until it's time to draw the next frame + while (ratio > 0 && !IsExiting) + { + ratio -= 1; + + try + { + gameTime.ElapsedGameTime = (float)targetElapsedTime.TotalSeconds; + gameTime.TotalGameTime = (float)totalGameTime.TotalSeconds; + gameTime.IsRunningSlowly = drawRunningSlowly; + + Update(gameTime); + } + finally + { + lastFrameElapsedGameTime += targetElapsedTime; + totalGameTime += targetElapsedTime; + } + } + } + else + { + drawRunningSlowly = false; + updatesSinceRunningSlowly1 = int.MaxValue; + updatesSinceRunningSlowly2 = int.MaxValue; + + // make sure we shouldn't be exiting + if (!IsExiting) + { + try + { + gameTime.ElapsedGameTime = 0; + lastFrameElapsedGameTime = elapsedAdjustedTime; + gameTime.TotalGameTime = (float)totalGameTime.TotalSeconds; + gameTime.IsRunningSlowly = false; + + Update(gameTime); + } + finally + { + totalGameTime += elapsedAdjustedTime; + } + } + } + + DrawFrame(); + + // refresh the FPS counter once per second + lastUpdateFrame++; + if ((float)clock.CurrentTime.TotalSeconds - lastUpdateTime > 1.0f) + { + gameTime.FramesPerSecond = (float)lastUpdateFrame / (float)(clock.CurrentTime.TotalSeconds - lastUpdateTime); + lastUpdateTime = (float)clock.CurrentTime.TotalSeconds; + lastUpdateFrame = 0; + } + } + + /// + /// Resets the elapsed time. + /// + public void ResetElapsedTime() + { + forceElapsedTimeToZero = true; + updatesSinceRunningSlowly1 = int.MaxValue; + updatesSinceRunningSlowly2 = int.MaxValue; + } + + /// + /// Allows the game to perform logic processing. + /// + /// The time passed since the last update. + protected virtual void Update(GameTime gameTime) + { + } + + /// + /// Called when a frame is ready to be drawn. + /// + /// The time passed since the last frame. + protected virtual void Draw(GameTime gameTime) + { + } + + /// + /// Initializes the game. + /// + protected internal virtual void Initialize() + { + } + + /// + /// Loads graphical resources. + /// + protected internal virtual void LoadContent() + { + } + + /// + /// Unloads graphical resources. + /// + protected internal virtual void UnloadContent() + { + } + + /// + /// Releases unmanaged and - optionally - managed resources + /// + /// true to release both managed and unmanaged resources; false to release only unmanaged resources. + protected internal virtual void Dispose(bool disposing) + { + + } + + /// + /// Raises the event. + /// + /// The instance containing the event data. + protected virtual void OnActivated(EventArgs e) + { + if (Activated != null) + Activated(this, e); + } + + /// + /// Raises the event. + /// + /// The instance containing the event data. + protected virtual void OnDeactivated(EventArgs e) + { + if (Deactivated != null) + Deactivated(this, e); + } + + /// + /// Raises the event. + /// + /// The instance containing the event data. + protected virtual void OnExiting(EventArgs e) + { + if (Exiting != null) + Exiting(this, e); + } + + /// + /// Raises the event. + /// + /// The instance containing the event data. + protected virtual void OnFrameStart(CancelEventArgs e) + { + if (FrameStart != null) + FrameStart(this, e); + } + + /// + /// Raises the event. + /// + /// The instance containing the event data. + protected virtual void OnFrameEnd(EventArgs e) + { + if (FrameEnd != null) + FrameEnd(this, e); + } + + void DrawFrame() + { + try + { + if ( !IsExiting /* && !Window.IsMinimized */ ) // #28230 2012.5.1 yyagi + { + CancelEventArgs e = new CancelEventArgs(false); + OnFrameStart(e); + if (!e.Cancel) + { + gameTime.TotalRealTime = (float)clock.CurrentTime.TotalSeconds; + gameTime.ElapsedRealTime = (float)lastFrameElapsedRealTime.TotalSeconds; + gameTime.TotalGameTime = (float)totalGameTime.TotalSeconds; + gameTime.ElapsedGameTime = (float)lastFrameElapsedGameTime.TotalSeconds; + gameTime.IsRunningSlowly = drawRunningSlowly; + + Draw(gameTime); + + OnFrameEnd(EventArgs.Empty); + } + } + } + finally + { + lastFrameElapsedGameTime = TimeSpan.Zero; + lastFrameElapsedRealTime = TimeSpan.Zero; + } + } + + void Application_Idle(object sender, EventArgs e) + { + NativeMessage message; + while (!NativeMethods.PeekMessage(out message, IntPtr.Zero, 0, 0, 0)) + { + if (IsExiting) + Window.Close(); + else + Tick(); + } + } + + void Window_ApplicationDeactivated(object sender, EventArgs e) + { + if (IsActive) + { + IsActive = false; + OnDeactivated(EventArgs.Empty); + } + } + + void Window_ApplicationActivated(object sender, EventArgs e) + { + if (!IsActive) + { + IsActive = true; + OnActivated(EventArgs.Empty); + } + } + + void Window_Paint(object sender, PaintEventArgs e) + { + DrawFrame(); + } + + void Window_Resume(object sender, EventArgs e) + { + clock.Resume(); + } + + void Window_Suspend(object sender, EventArgs e) + { + clock.Suspend(); + } + } +} diff --git a/FDK19/コード/01.フレームワーク/Core/GameClock.cs b/FDK19/コード/01.フレームワーク/Core/GameClock.cs new file mode 100644 index 00000000..fe201f18 --- /dev/null +++ b/FDK19/コード/01.フレームワーク/Core/GameClock.cs @@ -0,0 +1,153 @@ +/* +* Copyright (c) 2007-2009 SlimDX Group +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +* THE SOFTWARE. +*/ +using System; +using System.Diagnostics; + +namespace SampleFramework +{ + class GameClock + { + long baseRealTime; + long lastRealTime; + bool lastRealTimeValid; + int suspendCount; + long suspendStartTime; + long timeLostToSuspension; + TimeSpan currentTimeBase; + TimeSpan currentTimeOffset; + + public TimeSpan CurrentTime + { + get { return currentTimeBase + currentTimeOffset; } + } + + public TimeSpan ElapsedTime + { + get; + private set; + } + + public TimeSpan ElapsedAdjustedTime + { + get; + private set; + } + + public static long Frequency + { + get { return Stopwatch.Frequency; } + } + + public GameClock() + { + Reset(); + } + + public void Reset() + { + currentTimeBase = TimeSpan.Zero; + currentTimeOffset = TimeSpan.Zero; + baseRealTime = Stopwatch.GetTimestamp(); + lastRealTimeValid = false; + } + + public void Suspend() + { + suspendCount++; + if (suspendCount == 1) + suspendStartTime = Stopwatch.GetTimestamp(); + } + + /// + /// Resumes a previously suspended clock. + /// + public void Resume() + { + suspendCount--; + if (suspendCount <= 0) + { + timeLostToSuspension += Stopwatch.GetTimestamp() - suspendStartTime; + suspendStartTime = 0; + } + } + + public void Step() + { + long counter = Stopwatch.GetTimestamp(); + + if (!lastRealTimeValid) + { + lastRealTime = counter; + lastRealTimeValid = true; + } + + try + { + currentTimeOffset = CounterToTimeSpan(counter - baseRealTime); + } + catch (OverflowException) + { + // update the base value and try again to adjust for overflow + currentTimeBase += currentTimeOffset; + baseRealTime = lastRealTime; + + try + { + // get the current offset + currentTimeOffset = CounterToTimeSpan(counter - baseRealTime); + } + catch (OverflowException) + { + // account for overflow + baseRealTime = counter; + currentTimeOffset = TimeSpan.Zero; + } + } + + try + { + ElapsedTime = CounterToTimeSpan(counter - lastRealTime); + } + catch (OverflowException) + { + ElapsedTime = TimeSpan.Zero; + } + + try + { + ElapsedAdjustedTime = CounterToTimeSpan(counter - (lastRealTime + timeLostToSuspension)); + timeLostToSuspension = 0; + } + catch (OverflowException) + { + ElapsedAdjustedTime = TimeSpan.Zero; + } + + lastRealTime = counter; + } + + static TimeSpan CounterToTimeSpan(long delta) + { + return TimeSpan.FromTicks((delta * 10000000) / Frequency); + } + } +} diff --git a/FDK19/コード/01.フレームワーク/Core/GameTime.cs b/FDK19/コード/01.フレームワーク/Core/GameTime.cs new file mode 100644 index 00000000..904caf26 --- /dev/null +++ b/FDK19/コード/01.フレームワーク/Core/GameTime.cs @@ -0,0 +1,120 @@ +/* +* Copyright (c) 2007-2009 SlimDX Group +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +* THE SOFTWARE. +*/ + +namespace SampleFramework +{ + /// + /// Contains the current timing state of the game. + /// + public class GameTime + { + private float m_FramesPerSecond; + /// + /// Gets the current frames-per-second measure. + /// + /// The current frames-per-second measure. + public float FramesPerSecond + { + get { return m_FramesPerSecond; } + internal set { m_FramesPerSecond = value; } + } + + private float m_ElapsedGameTime; + /// + /// Gets the elapsed game time, in seconds. + /// + /// The elapsed game time. + public float ElapsedGameTime + { + get { return m_ElapsedGameTime; } + internal set { m_ElapsedGameTime = value; } + } + + private float m_ElapsedRealTime; + /// + /// Gets the elapsed real time, in seconds. + /// + /// The elapsed real time. + public float ElapsedRealTime + { + get { return m_ElapsedRealTime; } + internal set { m_ElapsedRealTime = value; } + } + + private float m_TotalGameTime; + /// + /// Gets the total game time, in seconds. + /// + /// The total game time. + public float TotalGameTime + { + get { return m_TotalGameTime; } + internal set { m_TotalGameTime = value; } + } + + private float m_TotalRealTime; + /// + /// Gets the total real time, in seconds. + /// + /// The total real time. + public float TotalRealTime + { + get { return m_TotalRealTime; } + internal set { m_TotalRealTime = value; } + } + + private bool m_IsRunningSlowly; + /// + /// Gets or sets a value indicating whether this instance is running slowly. + /// + /// + /// true if this instance is running slowly; otherwise, false. + /// + public bool IsRunningSlowly + { + get { return m_IsRunningSlowly; } + internal set { m_IsRunningSlowly = value; } + } + + /// + /// Initializes a new instance of the class. + /// + public GameTime() + { + } + + /// + /// Initializes a new instance of the class. + /// + /// The total real time. + /// The elapsed real time. + /// The total game time. + /// The elapsed game time. + public GameTime(float totalRealTime, float elapsedRealTime, float totalGameTime, float elapsedGameTime) + { + TotalRealTime = totalRealTime; + ElapsedRealTime = elapsedRealTime; + TotalGameTime = totalGameTime; + ElapsedGameTime = elapsedGameTime; + } + } +} diff --git a/FDK19/コード/01.フレームワーク/Core/GameWindow.cs b/FDK19/コード/01.フレームワーク/Core/GameWindow.cs new file mode 100644 index 00000000..e4cf1509 --- /dev/null +++ b/FDK19/コード/01.フレームワーク/Core/GameWindow.cs @@ -0,0 +1,634 @@ +/* +* Copyright (c) 2007-2009 SlimDX Group +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +* THE SOFTWARE. +*/ +using System; +using System.ComponentModel; +using System.Drawing; +using System.IO; +using System.Reflection; +using System.Security.Permissions; +using System.Windows.Forms; +using System.Runtime.InteropServices; +using System.Diagnostics; +using SampleFramework.Properties; + +namespace SampleFramework +{ + /// + /// Implements a specialized window for games and rendering. + /// + public class GameWindow : Form + { + const int DefaultWidth = 800; + const int DefaultHeight = 600; + const string DefaultTitle = "Game"; + + Size cachedSize; + bool minimized; + bool maximized; + bool inSizeMove; + + /// + /// Occurs when the application is suspended. + /// + public event EventHandler Suspend; + + /// + /// Occurs when the application is resumed. + /// + public event EventHandler Resume; + + /// + /// Occurs when the user resizes the window. + /// + public event EventHandler UserResized; + + /// + /// Occurs when the screen on which the window resides is changed. + /// + public event EventHandler ScreenChanged; + + /// + /// Occurs when the application is activated. + /// + public event EventHandler ApplicationActivated; + + /// + /// Occurs when the application is deactivated. + /// + public event EventHandler ApplicationDeactivated; + + /// + /// Occurs when the system is suspended. + /// + public event EventHandler SystemSuspend; + + /// + /// Occurs when the system is resumed. + /// + public event EventHandler SystemResume; + + /// + /// Occurs when a screen saver is about to be activated. + /// + public event CancelEventHandler Screensaver; + + /// + /// Gets a value indicating whether this instance is minimized. + /// + /// + /// true if this instance is minimized; otherwise, false. + /// + public bool IsMinimized + { + get { return minimized; } + } + + /// + /// Gets a value indicating whether this instance is maximized. + /// + /// + /// true if this instance is maximized; otherwise, false. + /// + public bool IsMaximized + { + get { return maximized; } + } + + /// + /// Gets or sets a value indicating whether System Menu is enabled. + /// + /// true if System Menu is enabled; otherwise, false. + public bool EnableSystemMenu // #28200 2012.5.1 yyagi + { + get; + set; + } + public string strMessage // #28821 2014.1.23 yyagi + { + get; + private set; + } + public bool IsReceivedMessage + { + get; + set; + } + + private Screen m_Screen; + /// + /// Gets the screen on which the window resides. + /// + /// The screen. + public Screen Screen + { + get { return m_Screen; } + private set { m_Screen = value; } + } + + /// + /// Initializes a new instance of the class. + /// + public GameWindow() + { + MinimumSize = new Size(200, 200); + + Screen = ScreenFromHandle(Handle); + + //Icon = GetDefaultIcon(); + Text = GetDefaultTitle(); + strMessage = ""; + } + + /// + /// Raises the event. + /// + /// The instance containing the event data. + protected virtual void OnSuspend(EventArgs e) + { + if (Suspend != null) + Suspend(this, e); + } + + /// + /// Raises the event. + /// + /// The instance containing the event data. + protected virtual void OnResume(EventArgs e) + { + if (Resume != null) + Resume(this, e); + } + + /// + /// Raises the event. + /// + /// The instance containing the event data. + protected virtual void OnUserResized(EventArgs e) + { + if (UserResized != null) + UserResized(this, e); + } + + /// + /// Raises the event. + /// + /// The instance containing the event data. + protected virtual void OnScreenChanged(EventArgs e) + { + if (ScreenChanged != null) + ScreenChanged(this, e); + } + + /// + /// Raises the event. + /// + /// The instance containing the event data. + protected virtual void OnApplicationActivated(EventArgs e) + { + if (ApplicationActivated != null) + ApplicationActivated(this, e); + } + + /// + /// Raises the event. + /// + /// The instance containing the event data. + protected virtual void OnApplicationDeactivated(EventArgs e) + { + if (ApplicationDeactivated != null) + ApplicationDeactivated(this, e); + } + + /// + /// Raises the event. + /// + /// The instance containing the event data. + protected virtual void OnSystemSuspend(EventArgs e) + { + if (SystemSuspend != null) + SystemSuspend(this, e); + } + + /// + /// Raises the event. + /// + /// The instance containing the event data. + protected virtual void OnSystemResume(EventArgs e) + { + if (SystemResume != null) + SystemResume(this, e); + } + + /// + /// Raises the event. + /// + /// The instance containing the event data. + protected virtual void OnScreensaver(CancelEventArgs e) + { + if (Screensaver != null) + Screensaver(this, e); + } + + /// + /// Raises the event. + /// + /// An that contains the event data. + protected override void OnLoad(EventArgs e) + { + base.OnLoad(e); + + cachedSize = Size; + } + + /// + /// Raises the event. + /// + /// A that contains the event data. + protected override void OnResizeBegin(EventArgs e) + { + base.OnResizeBegin(e); + + // suspend any processing until we are done being minimized + inSizeMove = true; + cachedSize = Size; + OnSuspend(EventArgs.Empty); + } + + /// + /// Raises the event. + /// + /// A that contains the event data. + protected override void OnResizeEnd(EventArgs e) + { + base.OnResizeEnd(e); + + // check for screen and size changes + OnUserResized(EventArgs.Empty); + UpdateScreen(); + inSizeMove = false; + + // resume application processing + OnResume(EventArgs.Empty); + } + + + #region #23510 2010.11.14 yyagi add: 縦横比固定でのウインドウサイズ変更 定数定義 from http://www.vcskicks.com/maintain-aspect-ratio.php + //double so division keeps decimal points + const double widthRatio = SampleFramework.GameWindowSize.Width; + const double heightRatio = SampleFramework.GameWindowSize.Height; + const int WM_SIZING = 0x214; + const int WMSZ_LEFT = 1; + const int WMSZ_RIGHT = 2; + const int WMSZ_TOP = 3; + const int WMSZ_TOPLEFT = 4; + const int WMSZ_TOPRIGHT = 5; + const int WMSZ_BOTTOM = 6; + const int WMSZ_BOTTOMLEFT = 7; + const int WMSZ_BOTTOMRIGHT = 8; + + public struct RECT + { + public int Left; + public int Top; + public int Right; + public int Bottom; + } + #endregion + + + + /// + /// Handles raw window messages. + /// + /// The raw message. + [SecurityPermission(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.UnmanagedCode)] + protected override void WndProc(ref Message m) + { + if (m.Msg == WindowConstants.WM_SIZE) + { + if (m.WParam == WindowConstants.SIZE_MINIMIZED) + { + minimized = true; + maximized = false; + + OnSuspend(EventArgs.Empty); + } + else + { + Rectangle client = NativeMethods.GetClientRectangle(m.HWnd); + if (client.Height == 0) + { + // rapidly clicking the task bar to minimize and restore a window + // can cause a WM_SIZE message with SIZE_RESTORED when + // the window has actually become minimized due to rapid change + // so just ignore this message + } + else if (m.WParam == WindowConstants.SIZE_MAXIMIZED) + { + if (minimized) + OnResume(EventArgs.Empty); + + minimized = false; + maximized = true; + + OnUserResized(EventArgs.Empty); + UpdateScreen(); + } + else if (m.WParam == WindowConstants.SIZE_RESTORED) + { + if (minimized) + OnResume(EventArgs.Empty); + + minimized = false; + maximized = false; + + if (!inSizeMove && Size != cachedSize) + { + OnUserResized(EventArgs.Empty); + UpdateScreen(); + cachedSize = Size; + } + } + } + } + else if (m.Msg == WindowConstants.WM_ACTIVATEAPP) + { + if (m.WParam != IntPtr.Zero) + OnApplicationActivated(EventArgs.Empty); + else + OnApplicationDeactivated(EventArgs.Empty); + } + else if (m.Msg == WindowConstants.WM_POWERBROADCAST) + { + if (m.WParam == WindowConstants.PBT_APMQUERYSUSPEND) + { + OnSystemSuspend(EventArgs.Empty); + m.Result = (IntPtr)1; + return; + } + else if (m.WParam == WindowConstants.PBT_APMRESUMESUSPEND) + { + OnSystemResume(EventArgs.Empty); + m.Result = (IntPtr)1; + return; + } + } + else if (m.Msg == WindowConstants.WM_SYSCOMMAND) + { + long wparam = m.WParam.ToInt64() & 0xFFF0; + if (wparam == WindowConstants.SC_MONITORPOWER || wparam == WindowConstants.SC_SCREENSAVE) + { + CancelEventArgs e = new CancelEventArgs(); + OnScreensaver(e); + if (e.Cancel) + { + m.Result = IntPtr.Zero; + return; + } + } + #region #28200 2012.5.1 yyagi: Disable system menu + if ( ( m.WParam.ToInt32() & 0xFFFF ) == 0xF100 && !EnableSystemMenu ) // SC_KEYMENU + { + m.Result = IntPtr.Zero; + return; + } + #endregion + #region #23510 2010.11.13 yyagi: reset to 640x480 + if ((m.WParam.ToInt32() & 0xFFFF) == MENU_VIEW) + { + base.ClientSize = new Size(SampleFramework.GameWindowSize.Width, SampleFramework.GameWindowSize.Height); + this.OnResizeEnd(new EventArgs()); // #23510 2010.11.20 yyagi: to set window size to Config.ini + } + #endregion + } + #region #28821 2014.1.23 yyagi (WM_COPYDATA) + else if ( m.Msg == WindowConstants.WM_COPYDATA ) + { +//Trace.WriteLine( "FDK;msg received" ); + COPYDATASTRUCT cds = (COPYDATASTRUCT) Marshal.PtrToStructure( m.LParam, typeof( COPYDATASTRUCT ) ); + strMessage = Marshal.PtrToStringUni( cds.lpData ); + IsReceivedMessage = true; +//Trace.WriteLine( "FDK;msg=" + strMessage + ", len=" + strMessage.Length + ", truelen=" + cds.cbData ); + } + #endregion + #region #23510 2010.11.16 yyagi add: 縦横比固定でのウインドウサイズ変更 from http://d.hatena.ne.jp/iselix/20080917/1221666614 http://hp.vector.co.jp/authors/VA016117/sizing.html + else if ( m.Msg == WM_SIZING ) + { + RECT rc = (RECT) Marshal.PtrToStructure( m.LParam, typeof( RECT ) ); + int w = rc.Right - rc.Left - ( Size.Width - ClientSize.Width ); + int h = rc.Bottom - rc.Top - ( Size.Height - ClientSize.Height ); + int dw = (int) ( h * widthRatio / heightRatio + 0.5 ) - w; + int dh = (int) ( w / ( widthRatio / heightRatio ) + 0.5 ) - h; + + switch ( m.WParam.ToInt32() ) + { + case WMSZ_LEFT: + case WMSZ_RIGHT: + rc.Bottom += dh; + break; + case WMSZ_TOP: + case WMSZ_BOTTOM: + rc.Right += dw; + break; + case WMSZ_BOTTOMRIGHT: + if ( dw > 0 ) + { + rc.Right += dw; + } + else + { + rc.Bottom += dh; + } + break; + case WMSZ_TOPLEFT: + if ( dw > 0 ) + { + rc.Left -= dw; + } + else + { + rc.Top -= dh; + } + break; + case WMSZ_TOPRIGHT: + if ( dw > 0 ) + { + rc.Right += dw; + } + else + { + rc.Top -= dh; + } + break; + case WMSZ_BOTTOMLEFT: + if ( dw > 0 ) + { + rc.Left -= dw; + } + else + { + rc.Bottom += dh; + } + break; + case 9: // #32383 2013.11.2 yyagi; exitting maximized window by using Aero snap + break; + default: + throw new ArgumentOutOfRangeException( "value", "Illegal WM_SIZING value." ); + } + Marshal.StructureToPtr( rc, m.LParam, true ); + } + #endregion + + + base.WndProc(ref m); + } + + void UpdateScreen() + { + Screen current = Screen.FromHandle(Handle); + if (Screen == null || Screen.DeviceName != current.DeviceName) + { + Screen = current; + if (Screen != null) + OnScreenChanged(EventArgs.Empty); + } + } + + static Screen ScreenFromHandle(IntPtr windowHandle) + { + Rectangle rectangle = NativeMethods.GetWindowRectangle(windowHandle); + + Screen bestScreen = null; + int mostArea = 0; + foreach (Screen screen in Screen.AllScreens) + { + Rectangle r = Rectangle.Intersect(rectangle, screen.Bounds); + int area = r.Width * r.Height; + + if (area > mostArea) + { + mostArea = area; + bestScreen = screen; + } + } + + if (bestScreen == null) + bestScreen = Screen.PrimaryScreen; + return bestScreen; + } + + static string GetAssemblyTitle(Assembly assembly) + { + if (assembly == null) + return null; + + AssemblyTitleAttribute[] customAttributes = (AssemblyTitleAttribute[])assembly.GetCustomAttributes(typeof(AssemblyTitleAttribute), true); + if (customAttributes != null && customAttributes.Length > 0) + return customAttributes[0].Title; + + return null; + } + + static string GetDefaultTitle() + { + string assemblyTitle = GetAssemblyTitle(Assembly.GetEntryAssembly()); + if (!string.IsNullOrEmpty(assemblyTitle)) + return assemblyTitle; + + try + { + Uri uri = new Uri(Application.ExecutablePath); + return Path.GetFileNameWithoutExtension(uri.LocalPath); + } + catch (ArgumentNullException e) + { + Trace.TraceError( e.ToString() ); + Trace.TraceError( "例外が発生しましたが処理を継続します。 (6216f3e1-e1a5-45ca-bfd8-30bbc44bfa9a)" ); + } + catch (UriFormatException e) + { + Trace.TraceError( e.ToString() ); + Trace.TraceError( "例外が発生しましたが処理を継続します。 (771f37b5-0b56-4a47-933e-3c178b3e27a7)" ); + } + + return DefaultTitle; + } + + static Icon GetDefaultIcon() + { + return (Icon)Resources.sdx_icon_black.Clone(); + } + + #region システムメニューに"640x480"を追加 #23510 2010.11.13 yyagi add: to set "640x480" menu in systemmenu. See also http://cs2ch.blog123.fc2.com/blog-entry-80.html + [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)] + private struct MENUITEMINFO + { + public uint cbSize; + public uint fMask; + public uint fType; + public uint fState; + public uint wID; + public IntPtr hSubMenu; + public IntPtr hbmpChecked; + public IntPtr hbmpUnchecked; + public IntPtr dwItemData; + public string dwTypeData; + public uint cch; + public IntPtr hbmpItem; + } + + [DllImport("user32", ExactSpelling = true)] + private static extern IntPtr GetSystemMenu(IntPtr hWnd, bool bRevert); + [DllImport("user32", CharSet = CharSet.Auto)] + private static extern bool InsertMenuItem(IntPtr hMenu, uint uItem, bool fByPosition, ref MENUITEMINFO lpmii); + + private const uint MENU_VIEW = 0x9999; + private const uint MFT_SEPARATOR = 0x00000800; + private const uint MIIM_FTYPE = 0x00000100; + private const uint MIIM_STRING = 0x00000040; + private const uint MIIM_ID = 0x00000002; + + protected override void OnCreateControl() + { + base.OnCreateControl(); + + //システムメニューのハンドル取得 + IntPtr hSysMenu = GetSystemMenu(this.Handle, false); + + //セパレーターの挿入 + MENUITEMINFO item1 = new MENUITEMINFO(); + item1.cbSize = (uint)Marshal.SizeOf(item1); + item1.fMask = MIIM_FTYPE; + item1.fType = MFT_SEPARATOR; + InsertMenuItem(hSysMenu, 5, true, ref item1); + + //メニュー項目の挿入 + MENUITEMINFO item2 = new MENUITEMINFO(); + item2.cbSize = (uint)Marshal.SizeOf(item2); + item2.fMask = MIIM_STRING | MIIM_ID; + item2.wID = MENU_VIEW; + item2.dwTypeData = "&" + SampleFramework.GameWindowSize.Width.ToString() + "x" + SampleFramework.GameWindowSize.Height.ToString(); + InsertMenuItem(hSysMenu, 6, true, ref item2); + } + #endregion + } +} diff --git a/FDK19/コード/01.フレームワーク/Core/GameWindow.resx b/FDK19/コード/01.フレームワーク/Core/GameWindow.resx new file mode 100644 index 00000000..1af7de15 --- /dev/null +++ b/FDK19/コード/01.フレームワーク/Core/GameWindow.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/FDK19/コード/01.フレームワーク/Core/GameWindowSize.cs b/FDK19/コード/01.フレームワーク/Core/GameWindowSize.cs new file mode 100644 index 00000000..2d7a1c58 --- /dev/null +++ b/FDK19/コード/01.フレームワーク/Core/GameWindowSize.cs @@ -0,0 +1,10 @@ +using System; + +namespace SampleFramework +{ + public static class GameWindowSize + { + public const int Width = 1280; + public const int Height = 720; + } +} diff --git a/FDK19/コード/01.フレームワーク/DeviceSettings/ConversionMethods.cs b/FDK19/コード/01.フレームワーク/DeviceSettings/ConversionMethods.cs new file mode 100644 index 00000000..60915b37 --- /dev/null +++ b/FDK19/コード/01.フレームワーク/DeviceSettings/ConversionMethods.cs @@ -0,0 +1,204 @@ +/* +* Copyright (c) 2007-2009 SlimDX Group +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +* THE SOFTWARE. +*/ +using SlimDX; +using SlimDX.Direct3D9; +using DXGI = SlimDX.DXGI; + +namespace SampleFramework +{ + static class ConversionMethods + { + public static int GetDepthBits(Format format) + { + switch (format) + { + case Format.D32SingleLockable: + case Format.D32: + return 32; + + case Format.D24X8: + case Format.D24S8: + case Format.D24X4S4: + case Format.D24SingleS8: + return 24; + + case Format.D16Lockable: + case Format.D16: + return 16; + + case Format.D15S1: + return 15; + + default: + return 0; + } + } + + public static int GetStencilBits(Format format) + { + switch (format) + { + case Format.D15S1: + return 1; + + case Format.D24X4S4: + return 4; + + case Format.D24S8: + case Format.D24SingleS8: + return 8; + + default: + return 0; + } + } + + public static int GetColorBits(Format format) + { + switch (format) + { + case Format.R8G8B8: + case Format.A8R8G8B8: + case Format.A8B8G8R8: + case Format.X8R8G8B8: + return 8; + + case Format.R5G6B5: + case Format.X1R5G5B5: + case Format.A1R5G5B5: + return 5; + + case Format.A4R4G4B4: + case Format.X4R4G4B4: + return 4; + + case Format.R3G3B2: + case Format.A8R3G3B2: + return 2; + + case Format.A2R10G10B10: + case Format.A2B10G10R10: + return 10; + + case Format.A16B16G16R16: + return 16; + + default: + return 0; + } + } + + public static int GetColorBits(DXGI.Format format) + { + switch (format) + { + case SlimDX.DXGI.Format.R32G32B32A32_Float: + case SlimDX.DXGI.Format.R32G32B32A32_SInt: + case SlimDX.DXGI.Format.R32G32B32A32_Typeless: + case SlimDX.DXGI.Format.R32G32B32A32_UInt: + case SlimDX.DXGI.Format.R32G32B32_Float: + case SlimDX.DXGI.Format.R32G32B32_SInt: + case SlimDX.DXGI.Format.R32G32B32_Typeless: + case SlimDX.DXGI.Format.R32G32B32_UInt: + return 32; + + case SlimDX.DXGI.Format.R16G16B16A16_Float: + case SlimDX.DXGI.Format.R16G16B16A16_SInt: + case SlimDX.DXGI.Format.R16G16B16A16_SNorm: + case SlimDX.DXGI.Format.R16G16B16A16_Typeless: + case SlimDX.DXGI.Format.R16G16B16A16_UInt: + case SlimDX.DXGI.Format.R16G16B16A16_UNorm: + return 16; + + case SlimDX.DXGI.Format.R10G10B10A2_Typeless: + case SlimDX.DXGI.Format.R10G10B10A2_UInt: + case SlimDX.DXGI.Format.R10G10B10A2_UNorm: + return 10; + + case SlimDX.DXGI.Format.R8G8B8A8_SInt: + case SlimDX.DXGI.Format.R8G8B8A8_SNorm: + case SlimDX.DXGI.Format.R8G8B8A8_Typeless: + case SlimDX.DXGI.Format.R8G8B8A8_UInt: + case SlimDX.DXGI.Format.R8G8B8A8_UNorm: + case SlimDX.DXGI.Format.R8G8B8A8_UNorm_SRGB: + return 8; + + case SlimDX.DXGI.Format.B5G5R5A1_UNorm: + case SlimDX.DXGI.Format.B5G6R5_UNorm: + return 5; + + default: + return 0; + } + } + + public static MultisampleType ToDirect3D9(int type) + { + return (MultisampleType)type; + } + + public static Format ToDirect3D9(DXGI.Format format) + { + switch (format) + { + case SlimDX.DXGI.Format.R8G8B8A8_UNorm: + return Format.A8R8G8B8; + case SlimDX.DXGI.Format.B5G6R5_UNorm: + return Format.R5G6B5; + case SlimDX.DXGI.Format.B5G5R5A1_UNorm: + return Format.A1R5G5B5; + case SlimDX.DXGI.Format.A8_UNorm: + return Format.A8; + case SlimDX.DXGI.Format.R10G10B10A2_UNorm: + return Format.A2B10G10R10; + case SlimDX.DXGI.Format.B8G8R8A8_UNorm: + return Format.A8B8G8R8; + case SlimDX.DXGI.Format.R16G16_UNorm: + return Format.G16R16; + case SlimDX.DXGI.Format.R16G16B16A16_UNorm: + return Format.A16B16G16R16; + case SlimDX.DXGI.Format.R16_Float: + return Format.R16F; + case SlimDX.DXGI.Format.R16G16_Float: + return Format.G16R16F; + case SlimDX.DXGI.Format.R16G16B16A16_Float: + return Format.A16B16G16R16F; + case SlimDX.DXGI.Format.R32_Float: + return Format.R32F; + case SlimDX.DXGI.Format.R32G32_Float: + return Format.G32R32F; + case SlimDX.DXGI.Format.R32G32B32A32_Float: + return Format.A32B32G32R32F; + } + + return Format.Unknown; + } + + public static float ToFloat(Rational rational) + { + float denom = 1; + if (rational.Denominator != 0) + denom = rational.Denominator; + return rational.Numerator / denom; + } + } +} diff --git a/FDK19/コード/01.フレームワーク/DeviceSettings/DeviceSettings.cs b/FDK19/コード/01.フレームワーク/DeviceSettings/DeviceSettings.cs new file mode 100644 index 00000000..80063121 --- /dev/null +++ b/FDK19/コード/01.フレームワーク/DeviceSettings/DeviceSettings.cs @@ -0,0 +1,285 @@ +/* +* Copyright (c) 2007-2009 SlimDX Group +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +* THE SOFTWARE. +*/ +using System; +using SlimDX.Direct3D9; +namespace SampleFramework +{ + /// + /// Contains settings for creating a 3D device. + /// + public class DeviceSettings : ICloneable + { + /// + /// Gets or sets the adapter ordinal. + /// + /// The adapter ordinal. + public int AdapterOrdinal + { + get; + set; + } + + /// + /// Gets or sets the type of the device. + /// + /// The type of the device. + public DeviceType DeviceType + { + get; + set; + } + + /// + /// Gets or sets the refresh rate. + /// + /// The refresh rate. + public int RefreshRate + { + get; + set; + } + + /// + /// Gets or sets the width of the back buffer. + /// + /// The width of the back buffer. + public int BackBufferWidth + { + get; + set; + } + + /// + /// Gets or sets the height of the back buffer. + /// + /// The height of the back buffer. + public int BackBufferHeight + { + get; + set; + } + + /// + /// Gets or sets the back buffer format. + /// + /// The back buffer format. + public Format BackBufferFormat + { + get; + set; + } + + /// + /// Gets or sets the back buffer count. + /// + /// The back buffer count. + public int BackBufferCount + { + get; + set; + } + + /// + /// Gets or sets a value indicating whether the device is windowed. + /// + /// true if windowed; otherwise, false. + public bool Windowed + { + get; + set; + } + + /// + /// Gets or sets a value indicating whether VSync is enabled. + /// + /// true if VSync is enabled; otherwise, false. + public bool EnableVSync + { + get; + set; + } + + /// + /// Gets or sets a value indicating whether this is multithreaded. + /// + /// true if multithreaded; otherwise, false. + /// This only has an effect for Direct3D9 devices. + public bool Multithreaded + { + get; + set; + } + + /// + /// Gets or sets the multisample type. + /// + /// The multisample type. + public MultisampleType MultisampleType + { + get; + set; + } + + /// + /// Gets or sets the multisample quality. + /// + /// The multisample quality. + public int MultisampleQuality + { + get; + set; + } + + /// + /// Gets or sets the depth stencil format. + /// + /// The depth stencil format. + public Format DepthStencilFormat + { + get; + set; + } + + /// + /// Gets or sets the Direct3D9 specific settings. + /// + /// The Direct3D9 specific settings. + internal Direct3D9Settings Direct3D9 + { + get; + set; + } + + /// + /// Initializes a new instance of the class. + /// + public DeviceSettings() + { + // set sane defaults + DeviceType = DeviceType.Hardware; + BackBufferFormat = Format.Unknown; + BackBufferCount = 1; + MultisampleType = MultisampleType.None; + DepthStencilFormat = Format.Unknown; + Windowed = true; + EnableVSync = true; + } + + /// + /// Creates a new object that is a copy of the current instance. + /// + /// + /// A new object that is a copy of this instance. + /// + public DeviceSettings Clone() + { + DeviceSettings result = new DeviceSettings(); + result.DeviceType = DeviceType; + result.RefreshRate = RefreshRate; + result.BackBufferCount = BackBufferCount; + result.BackBufferFormat = BackBufferFormat; + result.BackBufferHeight = BackBufferHeight; + result.BackBufferWidth = BackBufferWidth; + result.DepthStencilFormat = DepthStencilFormat; + result.MultisampleQuality = MultisampleQuality; + result.MultisampleType = MultisampleType; + result.Windowed = Windowed; + result.EnableVSync = EnableVSync; + result.AdapterOrdinal = AdapterOrdinal; + result.Multithreaded = Multithreaded; + + if (Direct3D9 != null) + result.Direct3D9 = Direct3D9.Clone(); + + return result; + } + + /// + /// Creates a new object that is a copy of the current instance. + /// + /// + /// A new object that is a copy of this instance. + /// + object ICloneable.Clone() + { + return Clone(); + } + + /// + /// Finds valid device settings based upon the desired settings. + /// + /// The desired settings. + /// The best valid device settings matching the input settings. + public static DeviceSettings FindValidSettings( DeviceSettings settings ) + { + try + { + GraphicsDeviceManager.EnsureD3D9(); + } + catch( Exception e ) + { + throw new NoCompatibleDevicesException( "Could not initialize Direct3D9.", e ); + } + + if( !Enumeration9.HasEnumerated ) + Enumeration9.Enumerate(); + + DeviceSettings newSettings = settings.Clone(); + Direct3D9Settings d3d9 = FindValidD3D9Settings( settings ); + newSettings.Direct3D9 = d3d9; + return newSettings; + } + + static Direct3D9Settings FindValidD3D9Settings(DeviceSettings settings) + { + Direct3D9Settings optimal = Direct3D9Settings.BuildOptimalSettings(settings); + + SettingsCombo9 bestCombo = null; + float bestRanking = -1.0f; + + foreach (AdapterInfo9 adapterInfo in Enumeration9.Adapters) + { + DisplayMode desktopMode = GraphicsDeviceManager.Direct3D9Object.GetAdapterDisplayMode(adapterInfo.AdapterOrdinal); + foreach (DeviceInfo9 deviceInfo in adapterInfo.Devices) + { + foreach (SettingsCombo9 combo in deviceInfo.DeviceSettings) + { + if (combo.Windowed && combo.AdapterFormat != desktopMode.Format) + continue; + + float ranking = Direct3D9Settings.RankSettingsCombo(combo, optimal, desktopMode); + if (ranking > bestRanking) + { + bestCombo = combo; + bestRanking = ranking; + } + } + } + } + + if (bestCombo == null) + throw new NoCompatibleDevicesException("No compatible Direct3D9 devices found."); + + return Direct3D9Settings.BuildValidSettings(bestCombo, optimal); + } + } +} diff --git a/FDK19/コード/01.フレームワーク/DeviceSettings/Direct3D9Settings.cs b/FDK19/コード/01.フレームワーク/DeviceSettings/Direct3D9Settings.cs new file mode 100644 index 00000000..b44a3aac --- /dev/null +++ b/FDK19/コード/01.フレームワーク/DeviceSettings/Direct3D9Settings.cs @@ -0,0 +1,440 @@ +/* +* Copyright (c) 2007-2009 SlimDX Group +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +* THE SOFTWARE. +*/ +using System; +using System.Collections.Generic; +using SlimDX.Direct3D9; + +namespace SampleFramework +{ + class Direct3D9Settings : ICloneable + { + public int AdapterOrdinal + { + get; + set; + } + + public DeviceType DeviceType + { + get; + set; + } + + public Format AdapterFormat + { + get; + set; + } + + public CreateFlags CreationFlags + { + get; + set; + } + + public PresentParameters PresentParameters + { + get; + private set; + } + + public Direct3D9Settings() + { + PresentParameters = new PresentParameters(); + DeviceType = DeviceType.Hardware; + PresentParameters.Windowed = true; + AdapterFormat = Format.Unknown; + CreationFlags = CreateFlags.HardwareVertexProcessing; + PresentParameters.BackBufferFormat = Format.Unknown; + PresentParameters.BackBufferCount = 1; + PresentParameters.Multisample = MultisampleType.None; + PresentParameters.SwapEffect = SwapEffect.Discard; + PresentParameters.EnableAutoDepthStencil = true; + PresentParameters.AutoDepthStencilFormat = Format.Unknown; + PresentParameters.PresentFlags = PresentFlags.DiscardDepthStencil; + PresentParameters.PresentationInterval = PresentInterval.Default; + } + + public Direct3D9Settings Clone() + { + Direct3D9Settings clone = new Direct3D9Settings(); + clone.AdapterFormat = AdapterFormat; + clone.AdapterOrdinal = AdapterOrdinal; + clone.CreationFlags = CreationFlags; + clone.DeviceType = DeviceType; + clone.PresentParameters = PresentParameters.Clone(); + + return clone; + } + + object ICloneable.Clone() + { + return Clone(); + } + + public static Direct3D9Settings BuildOptimalSettings(DeviceSettings settings) + { + DisplayMode desktopMode = GraphicsDeviceManager.Direct3D9Object.GetAdapterDisplayMode(0); + Direct3D9Settings optimal = new Direct3D9Settings(); + + optimal.AdapterOrdinal = settings.AdapterOrdinal; + optimal.DeviceType = settings.DeviceType; + optimal.PresentParameters.Windowed = settings.Windowed; + optimal.PresentParameters.BackBufferCount = settings.BackBufferCount; + optimal.PresentParameters.Multisample = settings.MultisampleType; + optimal.PresentParameters.MultisampleQuality = settings.MultisampleQuality; + optimal.PresentParameters.FullScreenRefreshRateInHertz = settings.RefreshRate; + + if(settings.Multithreaded) + optimal.CreationFlags |= CreateFlags.Multithreaded; + + if(optimal.PresentParameters.Windowed || ConversionMethods.GetColorBits(desktopMode.Format) >= 8) + optimal.AdapterFormat = desktopMode.Format; + else + optimal.AdapterFormat = Format.X8R8G8B8; + + if(settings.BackBufferWidth == 0 || settings.BackBufferHeight == 0) + { + if(optimal.PresentParameters.Windowed) + { + optimal.PresentParameters.BackBufferWidth = 640; + optimal.PresentParameters.BackBufferHeight = 480; + } + else + { + optimal.PresentParameters.BackBufferWidth = desktopMode.Width; + optimal.PresentParameters.BackBufferHeight = desktopMode.Height; + } + } + else + { + optimal.PresentParameters.BackBufferWidth = settings.BackBufferWidth; + optimal.PresentParameters.BackBufferHeight = settings.BackBufferHeight; + } + + if(settings.BackBufferFormat == Format.Unknown) + optimal.PresentParameters.BackBufferFormat = optimal.AdapterFormat; + else + optimal.PresentParameters.BackBufferFormat = settings.BackBufferFormat; + + if(settings.DepthStencilFormat == Format.Unknown) + { + if(ConversionMethods.GetColorBits(optimal.PresentParameters.BackBufferFormat) >= 8) + optimal.PresentParameters.AutoDepthStencilFormat = Format.D32; + else + optimal.PresentParameters.AutoDepthStencilFormat = Format.D16; + } + else + optimal.PresentParameters.AutoDepthStencilFormat = settings.DepthStencilFormat; + + if(!settings.EnableVSync) + optimal.PresentParameters.PresentationInterval = PresentInterval.Immediate; + + return optimal; + } + + public static float RankSettingsCombo(SettingsCombo9 combo, Direct3D9Settings optimal, DisplayMode desktopMode) + { + float ranking = 0.0f; + + if(combo.AdapterOrdinal == optimal.AdapterOrdinal) + ranking += 1000.0f; + + if(combo.DeviceType == optimal.DeviceType) + ranking += 100.0f; + + if(combo.DeviceType == DeviceType.Hardware) + ranking += 0.1f; + + if(combo.Windowed == optimal.PresentParameters.Windowed) + ranking += 10.0f; + + if(combo.AdapterFormat == optimal.AdapterFormat) + ranking += 1.0f; + else + { + int bitDepthDelta = Math.Abs(ConversionMethods.GetColorBits(combo.AdapterFormat) - + ConversionMethods.GetColorBits(optimal.AdapterFormat)); + float scale = Math.Max(0.9f - bitDepthDelta * 0.2f, 0.0f); + ranking += scale; + } + + if(!combo.Windowed) + { + bool match; + if(ConversionMethods.GetColorBits(desktopMode.Format) >= 8) + match = (combo.AdapterFormat == desktopMode.Format); + else + match = (combo.AdapterFormat == Format.X8R8G8B8); + + if(match) + ranking += 0.1f; + } + + if((optimal.CreationFlags & CreateFlags.HardwareVertexProcessing) != 0 && + (optimal.CreationFlags & CreateFlags.MixedVertexProcessing) != 0) + { + if((combo.DeviceInfo.Capabilities.DeviceCaps & DeviceCaps.HWTransformAndLight) != 0) + ranking += 1.0f; + } + + if((combo.DeviceInfo.Capabilities.DeviceCaps & DeviceCaps.HWTransformAndLight) != 0) + ranking += 0.1f; + + foreach(DisplayMode displayMode in combo.AdapterInfo.DisplayModes) + { + if(displayMode.Format == combo.AdapterFormat && + displayMode.Width == optimal.PresentParameters.BackBufferWidth && + displayMode.Height == optimal.PresentParameters.BackBufferHeight) + { + ranking += 1.0f; + break; + } + } + + if(combo.BackBufferFormat == optimal.PresentParameters.BackBufferFormat) + ranking += 1.0f; + else + { + int bitDepthDelta = Math.Abs(ConversionMethods.GetColorBits(combo.BackBufferFormat) - + ConversionMethods.GetColorBits(optimal.PresentParameters.BackBufferFormat)); + float scale = Math.Max(0.9f - bitDepthDelta * 0.2f, 0.0f); + ranking += scale; + } + + if(combo.BackBufferFormat == combo.AdapterFormat) + ranking += 0.1f; + + for(int i = 0; i < combo.MultisampleTypes.Count; i++) + { + MultisampleType type = combo.MultisampleTypes[i]; + int quality = combo.MultisampleQualities[i]; + + if(type == optimal.PresentParameters.Multisample && quality == optimal.PresentParameters.MultisampleQuality) + { + ranking += 1.0f; + break; + } + } + + if(combo.DepthStencilFormats.Contains(optimal.PresentParameters.AutoDepthStencilFormat)) + ranking += 1.0f; + + foreach(DisplayMode displayMode in combo.AdapterInfo.DisplayModes) + { + if(displayMode.Format == combo.AdapterFormat && + displayMode.RefreshRate == optimal.PresentParameters.FullScreenRefreshRateInHertz) + { + ranking += 1.0f; + break; + } + } + + if(combo.PresentIntervals.Contains(optimal.PresentParameters.PresentationInterval)) + ranking += 1.0f; + + return ranking; + } + + public static Direct3D9Settings BuildValidSettings(SettingsCombo9 combo, Direct3D9Settings input) + { + Direct3D9Settings settings = new Direct3D9Settings(); + + settings.AdapterOrdinal = combo.AdapterOrdinal; + settings.DeviceType = combo.DeviceType; + settings.PresentParameters.Windowed = combo.Windowed; + settings.AdapterFormat = combo.AdapterFormat; + settings.PresentParameters.BackBufferFormat = combo.BackBufferFormat; + settings.PresentParameters.SwapEffect = input.PresentParameters.SwapEffect; + settings.PresentParameters.PresentFlags = input.PresentParameters.PresentFlags | PresentFlags.DiscardDepthStencil; + + settings.CreationFlags = input.CreationFlags; + if((combo.DeviceInfo.Capabilities.DeviceCaps & DeviceCaps.HWTransformAndLight) == 0 && + ((settings.CreationFlags & CreateFlags.HardwareVertexProcessing) != 0 || + (settings.CreationFlags & CreateFlags.MixedVertexProcessing) != 0)) + { + settings.CreationFlags &= ~CreateFlags.HardwareVertexProcessing; + settings.CreationFlags &= ~CreateFlags.MixedVertexProcessing; + settings.CreationFlags |= CreateFlags.SoftwareVertexProcessing; + } + + if((settings.CreationFlags & CreateFlags.HardwareVertexProcessing) == 0 && + (settings.CreationFlags & CreateFlags.MixedVertexProcessing) == 0 && + (settings.CreationFlags & CreateFlags.SoftwareVertexProcessing) == 0) + { + if((combo.DeviceInfo.Capabilities.DeviceCaps & DeviceCaps.HWTransformAndLight) != 0) + settings.CreationFlags |= CreateFlags.HardwareVertexProcessing; + else + settings.CreationFlags |= CreateFlags.SoftwareVertexProcessing; + } + + DisplayMode bestDisplayMode = FindValidResolution(combo, input); + settings.PresentParameters.BackBufferWidth = bestDisplayMode.Width; + settings.PresentParameters.BackBufferHeight = bestDisplayMode.Height; + + settings.PresentParameters.BackBufferCount = input.PresentParameters.BackBufferCount; + if(settings.PresentParameters.BackBufferCount > 3) + settings.PresentParameters.BackBufferCount = 3; + if(settings.PresentParameters.BackBufferCount < 1) + settings.PresentParameters.BackBufferCount = 1; + + if(input.PresentParameters.SwapEffect != SwapEffect.Discard) + { + settings.PresentParameters.Multisample = MultisampleType.None; + settings.PresentParameters.MultisampleQuality = 0; + } + else + { + MultisampleType bestType = MultisampleType.None; + int bestQuality = 0; + + for(int i = 0; i < combo.MultisampleTypes.Count; i++) + { + MultisampleType type = combo.MultisampleTypes[i]; + int quality = combo.MultisampleQualities[0]; + + if(Math.Abs(type - input.PresentParameters.Multisample) < Math.Abs(bestType - + input.PresentParameters.Multisample)) + { + bestType = type; + bestQuality = Math.Min(quality - 1, input.PresentParameters.MultisampleQuality); + } + } + + settings.PresentParameters.Multisample = bestType; + settings.PresentParameters.MultisampleQuality = bestQuality; + } + + List rankings = new List(); + int inputDepthBitDepth = ConversionMethods.GetDepthBits(input.PresentParameters.AutoDepthStencilFormat); + int inputStencilBitDepth = ConversionMethods.GetStencilBits(input.PresentParameters.AutoDepthStencilFormat); + + foreach(Format format in combo.DepthStencilFormats) + { + int currentBitDepth = ConversionMethods.GetDepthBits(format); + int currentStencilDepth = ConversionMethods.GetStencilBits(format); + + int ranking = Math.Abs(currentBitDepth - inputDepthBitDepth); + ranking += Math.Abs(currentStencilDepth - inputStencilBitDepth); + rankings.Add(ranking); + } + + int bestRanking = int.MaxValue; + foreach(int ranking in rankings) + { + if(ranking < bestRanking) + bestRanking = ranking; + } + int bestIndex = rankings.IndexOf(bestRanking); + + if(bestIndex >= 0) + { + settings.PresentParameters.AutoDepthStencilFormat = combo.DepthStencilFormats[bestIndex]; + settings.PresentParameters.EnableAutoDepthStencil = true; + } + else + { + settings.PresentParameters.AutoDepthStencilFormat = Format.Unknown; + settings.PresentParameters.EnableAutoDepthStencil = false; + } + + if(combo.Windowed) + settings.PresentParameters.FullScreenRefreshRateInHertz = 0; + else + { + int match = input.PresentParameters.FullScreenRefreshRateInHertz; + bestDisplayMode.RefreshRate = 0; + if(match != 0) + { + bestRanking = 100000; + foreach(DisplayMode displayMode in combo.AdapterInfo.DisplayModes) + { + if(displayMode.Format != combo.AdapterFormat || + displayMode.Width != bestDisplayMode.Width || + displayMode.Height != bestDisplayMode.Height) + continue; + + int ranking = Math.Abs(displayMode.RefreshRate - match); + + if(ranking < bestRanking) + { + bestDisplayMode.RefreshRate = displayMode.RefreshRate; + bestRanking = ranking; + + if(bestRanking == 0) + break; + } + } + } + + settings.PresentParameters.FullScreenRefreshRateInHertz = bestDisplayMode.RefreshRate; + } + + if(combo.PresentIntervals.Contains(input.PresentParameters.PresentationInterval)) + settings.PresentParameters.PresentationInterval = input.PresentParameters.PresentationInterval; + else + settings.PresentParameters.PresentationInterval = PresentInterval.Default; + + return settings; + } + + static DisplayMode FindValidResolution(SettingsCombo9 combo, Direct3D9Settings input) + { + DisplayMode bestMode = new DisplayMode(); + + if(combo.Windowed) + { + bestMode.Width = input.PresentParameters.BackBufferWidth; + bestMode.Height = input.PresentParameters.BackBufferHeight; + return bestMode; + } + + int bestRanking = 100000; + int ranking; + foreach(DisplayMode mode in combo.AdapterInfo.DisplayModes) + { + if(mode.Format != combo.AdapterFormat) + continue; + + ranking = Math.Abs(mode.Width - input.PresentParameters.BackBufferWidth) + + Math.Abs(mode.Height - input.PresentParameters.BackBufferHeight); + + if(ranking < bestRanking) + { + bestMode = mode; + bestRanking = ranking; + + if(bestRanking == 0) + break; + } + } + + if(bestMode.Width == 0) + { + bestMode.Width = input.PresentParameters.BackBufferWidth; + bestMode.Height = input.PresentParameters.BackBufferHeight; + } + + return bestMode; + } + } +} diff --git a/FDK19/コード/01.フレームワーク/Enumeration/Enumeration9.cs b/FDK19/コード/01.フレームワーク/Enumeration/Enumeration9.cs new file mode 100644 index 00000000..0aa8f41d --- /dev/null +++ b/FDK19/コード/01.フレームワーク/Enumeration/Enumeration9.cs @@ -0,0 +1,447 @@ +/* +* Copyright (c) 2007-2009 SlimDX Group +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +* THE SOFTWARE. +*/ +using System.Collections.Generic; +using System.Globalization; +using SlimDX.Direct3D9; + +namespace SampleFramework +{ + class AdapterInfo9 + { + public int AdapterOrdinal + { + get; + set; + } + + public AdapterDetails Details + { + get; + set; + } + + public string Description + { + get; + set; + } + + public List DisplayModes + { + get; + private set; + } + + public List Devices + { + get; + private set; + } + + public AdapterInfo9() + { + // create lists + DisplayModes = new List(); + Devices = new List(); + } + } + + class DeviceInfo9 + { + public DeviceType DeviceType + { + get; + set; + } + + public Capabilities Capabilities + { + get; + set; + } + + public List DeviceSettings + { + get; + private set; + } + + public DeviceInfo9() + { + DeviceSettings = new List(); + } + } + + class SettingsCombo9 + { + public int AdapterOrdinal + { + get; + set; + } + + public DeviceType DeviceType + { + get; + set; + } + + public Format AdapterFormat + { + get; + set; + } + + public Format BackBufferFormat + { + get; + set; + } + + public bool Windowed + { + get; + set; + } + + public List DepthStencilFormats + { + get; + internal set; + } + + public List MultisampleTypes + { + get; + private set; + } + + public List MultisampleQualities + { + get; + private set; + } + + public List PresentIntervals + { + get; + private set; + } + + public AdapterInfo9 AdapterInfo + { + get; + set; + } + + public DeviceInfo9 DeviceInfo + { + get; + set; + } + + public SettingsCombo9() + { + DepthStencilFormats = new List(); + MultisampleQualities = new List(); + MultisampleTypes = new List(); + PresentIntervals = new List(); + } + } + + class DisplayModeComparer9 : IComparer + { + static DisplayModeComparer9 comparer = new DisplayModeComparer9(); + + public static DisplayModeComparer9 Comparer + { + get { return comparer; } + } + + public DisplayModeComparer9() + { + } + + public int Compare(DisplayMode x, DisplayMode y) + { + if (x.Width > y.Width) + return 1; + if (x.Width < y.Width) + return -1; + if (x.Height > y.Height) + return 1; + if (x.Height < y.Height) + return -1; + if (x.Format > y.Format) + return 1; + if (x.Format < y.Format) + return -1; + if (x.RefreshRate > y.RefreshRate) + return 1; + if (x.RefreshRate < y.RefreshRate) + return -1; + + return 0; + } + } + + static class Enumeration9 + { + public static DeviceSettings MinimumSettings + { + get; + set; + } + + public static List Adapters + { + get; + private set; + } + + public static bool HasEnumerated + { + get; + private set; + } + + public static void Enumerate() + { + HasEnumerated = true; + Adapters = new List(); + List adapterFormats = new List(); + Format[] allowedAdapterFormats = { Format.X8R8G8B8, Format.X1R5G5B5, Format.R5G6B5, + Format.A2R10G10B10 }; + + foreach (AdapterInformation adapter in GraphicsDeviceManager.Direct3D9Object.Adapters) // + { + AdapterInfo9 info = new AdapterInfo9(); + info.AdapterOrdinal = adapter.Adapter; + info.Details = adapter.Details; + + adapterFormats.Clear(); + foreach (Format adapterFormat in allowedAdapterFormats) + { + foreach (DisplayMode displayMode in adapter.GetDisplayModes(adapterFormat)) + { + if (MinimumSettings != null) + { + if (displayMode.Width < MinimumSettings.BackBufferWidth || + displayMode.Height < MinimumSettings.BackBufferHeight || + displayMode.RefreshRate < MinimumSettings.RefreshRate) + continue; + } + + info.DisplayModes.Add(displayMode); + + if (!adapterFormats.Contains(displayMode.Format)) + adapterFormats.Add(displayMode.Format); + } + } + + if (!adapterFormats.Contains(adapter.CurrentDisplayMode.Format)) + adapterFormats.Add(adapter.CurrentDisplayMode.Format); + + info.DisplayModes.Sort(DisplayModeComparer9.Comparer); + + EnumerateDevices(info, adapterFormats); + + if (info.Devices.Count > 0) + Adapters.Add(info); + } + + bool unique = true; + foreach (AdapterInfo9 adapter1 in Adapters) + { + foreach (AdapterInfo9 adapter2 in Adapters) + { + if (adapter1 == adapter2) + continue; + if (adapter1.Details.Description == adapter2.Details.Description) + { + unique = false; + break; + } + } + + if (!unique) + break; + } + + foreach (AdapterInfo9 info in Adapters) + { + info.Description = info.Details.Description; + if (!unique) + info.Description += " " + info.AdapterOrdinal.ToString(CultureInfo.CurrentCulture); + } + } + + static void EnumerateDevices(AdapterInfo9 info, List adapterFormats) + { + DeviceType[] deviceTypes = { DeviceType.Hardware, DeviceType.Reference }; + + foreach (DeviceType deviceType in deviceTypes) + { + if (MinimumSettings != null && MinimumSettings.DeviceType != deviceType) + continue; + + DeviceInfo9 deviceInfo = new DeviceInfo9(); + deviceInfo.DeviceType = deviceType; + try + { + deviceInfo.Capabilities = GraphicsDeviceManager.Direct3D9Object.GetDeviceCaps(info.AdapterOrdinal, deviceInfo.DeviceType); + + EnumerateSettingsCombos(info, deviceInfo, adapterFormats); + + if (deviceInfo.DeviceSettings.Count > 0) + info.Devices.Add(deviceInfo); + } + catch (Direct3D9Exception) + { + // #23681 2010.11.17 yyagi: GetDeviceCaps()で例外が発生するモニタに対しては、enumerateをスキップする。 + } + } + } + + static void EnumerateSettingsCombos(AdapterInfo9 adapterInfo, DeviceInfo9 deviceInfo, List adapterFormats) + { + Format[] backBufferFormats = { Format.A8R8G8B8, Format.X8R8G8B8, Format.A2R10G10B10, + Format.R5G6B5, Format.A1R5G5B5, Format.X1R5G5B5 }; + + foreach (Format adapterFormat in adapterFormats) + { + foreach (Format backBufferFormat in backBufferFormats) + { + for (int windowed = 0; windowed < 2; windowed++) + { + if (windowed == 0 && adapterInfo.DisplayModes.Count == 0) + continue; + + if (!GraphicsDeviceManager.Direct3D9Object.CheckDeviceType(adapterInfo.AdapterOrdinal, deviceInfo.DeviceType, + adapterFormat, backBufferFormat, (windowed == 1))) + continue; + + if (!GraphicsDeviceManager.Direct3D9Object.CheckDeviceFormat(adapterInfo.AdapterOrdinal, + deviceInfo.DeviceType, adapterFormat, Usage.QueryPostPixelShaderBlending, + ResourceType.Texture, backBufferFormat)) + continue; + + SettingsCombo9 combo = new SettingsCombo9(); + combo.AdapterOrdinal = adapterInfo.AdapterOrdinal; + combo.DeviceType = deviceInfo.DeviceType; + combo.AdapterFormat = adapterFormat; + combo.BackBufferFormat = backBufferFormat; + combo.Windowed = (windowed == 1); + combo.AdapterInfo = adapterInfo; + combo.DeviceInfo = deviceInfo; + + BuildDepthStencilFormatList(combo); + BuildMultisampleTypeList(combo); + + if (combo.MultisampleTypes.Count == 0) + continue; + + BuildPresentIntervalList(combo); + + if (MinimumSettings != null) + { + if (MinimumSettings.BackBufferFormat != Format.Unknown && + MinimumSettings.BackBufferFormat != backBufferFormat) + continue; + + if (MinimumSettings.DepthStencilFormat != Format.Unknown && + !combo.DepthStencilFormats.Contains(MinimumSettings.DepthStencilFormat)) + continue; + + if (!combo.MultisampleTypes.Contains(MinimumSettings.MultisampleType)) + continue; + } + + deviceInfo.DeviceSettings.Add(combo); + } + } + } + } + + static void BuildDepthStencilFormatList(SettingsCombo9 combo) + { + List possibleDepthStencilFormats = new List { + Format.D16, Format.D15S1, Format.D24X8, + Format.D24S8, Format.D24X4S4, Format.D32 }; + + foreach (Format format in possibleDepthStencilFormats) + { + if (GraphicsDeviceManager.Direct3D9Object.CheckDeviceFormat(combo.AdapterOrdinal, combo.DeviceType, combo.AdapterFormat, + Usage.DepthStencil, ResourceType.Surface, format) && + GraphicsDeviceManager.Direct3D9Object.CheckDepthStencilMatch(combo.AdapterOrdinal, combo.DeviceType, + combo.AdapterFormat, combo.BackBufferFormat, format)) + combo.DepthStencilFormats.Add(format); + } + } + + static void BuildMultisampleTypeList(SettingsCombo9 combo) + { + List possibleMultisampleTypes = new List() { + MultisampleType.None, MultisampleType.NonMaskable, + MultisampleType.TwoSamples, MultisampleType.ThreeSamples, + MultisampleType.FourSamples, MultisampleType.FiveSamples, + MultisampleType.SixSamples, MultisampleType.SevenSamples, + MultisampleType.EightSamples, MultisampleType.NineSamples, + MultisampleType.TenSamples, MultisampleType.ElevenSamples, + MultisampleType.TwelveSamples, MultisampleType.ThirteenSamples, + MultisampleType.FourteenSamples, MultisampleType.FifteenSamples, + MultisampleType.SixteenSamples + }; + + int quality; + foreach (MultisampleType type in possibleMultisampleTypes) + { + if (GraphicsDeviceManager.Direct3D9Object.CheckDeviceMultisampleType(combo.AdapterOrdinal, combo.DeviceType, + combo.AdapterFormat, combo.Windowed, type, out quality)) + { + combo.MultisampleTypes.Add(type); + combo.MultisampleQualities.Add(quality); + } + } + } + + static void BuildPresentIntervalList(SettingsCombo9 combo) + { + List possiblePresentIntervals = new List() { + PresentInterval.Immediate, PresentInterval.Default, + PresentInterval.One, PresentInterval.Two, + PresentInterval.Three, PresentInterval.Four + }; + + foreach (PresentInterval interval in possiblePresentIntervals) + { + if (combo.Windowed && (interval == PresentInterval.Two || + interval == PresentInterval.Three || interval == PresentInterval.Four)) + continue; + + if (interval == PresentInterval.Default || + (combo.DeviceInfo.Capabilities.PresentationIntervals & interval) != 0) + combo.PresentIntervals.Add(interval); + } + } + } +} diff --git a/FDK19/コード/01.フレームワーク/Properties/Resources.Designer.cs b/FDK19/コード/01.フレームワーク/Properties/Resources.Designer.cs new file mode 100644 index 00000000..eecc3623 --- /dev/null +++ b/FDK19/コード/01.フレームワーク/Properties/Resources.Designer.cs @@ -0,0 +1,70 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.1434 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace SampleFramework.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("SampleFramework.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + internal static System.Drawing.Icon sdx_icon_black { + get { + object obj = ResourceManager.GetObject("sdx_icon_black", resourceCulture); + return ((System.Drawing.Icon)(obj)); + } + } + } +} diff --git a/FDK19/コード/01.フレームワーク/Properties/Resources.resx b/FDK19/コード/01.フレームワーク/Properties/Resources.resx new file mode 100644 index 00000000..827822b2 --- /dev/null +++ b/FDK19/コード/01.フレームワーク/Properties/Resources.resx @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\sdx_icon_black.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/FDK19/コード/01.フレームワーク/Rendering/DeviceCache.cs b/FDK19/コード/01.フレームワーク/Rendering/DeviceCache.cs new file mode 100644 index 00000000..3a3dd8fe --- /dev/null +++ b/FDK19/コード/01.フレームワーク/Rendering/DeviceCache.cs @@ -0,0 +1,200 @@ +using System; +using System.Drawing; +using SlimDX; +using SlimDX.Direct3D9; + +namespace SampleFramework +{ + public sealed class DeviceCache + { + private readonly Device _device; + + public DeviceCache(Device device) + { + _device = device; + } + + public Device UnderlyingDevice => _device; + + public void Dispose() + { + _device.Dispose(); + } + + public object Tag + { + get => _device.Tag; + set => _device.Tag = value; + } + + public Result TestCooperativeLevel() + { + return _device.TestCooperativeLevel(); + } + + public Result Reset(PresentParameters presentParameters) + { + return _device.Reset(presentParameters); + } + + public Result Clear(ClearFlags clearFlags, in Color4 color, float zdepth, int stencil) + { + return _device.Clear(clearFlags, color, zdepth, stencil); + } + + public Result BeginScene() + { + return _device.BeginScene(); + } + + public Result EndScene() + { + return _device.EndScene(); + } + + public Result Present() + { + return _device.Present(); + } + + public Surface GetBackBuffer(int swapChain, int backBuffer) + { + return _device.GetBackBuffer(swapChain, backBuffer); + } + + public Surface GetRenderTarget(int index) + { + return _device.GetRenderTarget(index); + } + + public Result SetRenderState(RenderState state, T value) where T : Enum + { + return _device.SetRenderState(state, value); + } + + private BlendOperation? _lastBlendOperation; + public void SetRenderState(RenderState state, BlendOperation value) + { + if (state == RenderState.BlendOperation) + { + if (_lastBlendOperation == value) + { + return; + } + + _lastBlendOperation = value; + } + + _device.SetRenderState(state, value); + } + + private Blend? _lastSourceBlend; + private Blend? _lastDestinationBlend; + public void SetRenderState(RenderState state, Blend value) + { + if (state == RenderState.SourceBlend) + { + if (_lastSourceBlend == value) + { + return; + } + + _lastSourceBlend = value; + } + else if (state == RenderState.DestinationBlend) + { + if (_lastDestinationBlend == value) + { + return; + } + + _lastDestinationBlend = value; + } + + _device.SetRenderState(state, value); + } + + public Result SetRenderState(RenderState state, bool value) + { + return _device.SetRenderState(state, value); + } + + public Result SetRenderState(RenderState state, int value) + { + return _device.SetRenderState(state, value); + } + + public Result SetTextureStageState(int stage, TextureStage type, TextureOperation textureOperation) + { + return _device.SetTextureStageState(stage, type, textureOperation); + } + + public Result SetTextureStageState(int stage, TextureStage type, int value) + { + return _device.SetTextureStageState(stage, type, value); + } + + public Result SetSamplerState(int sampler, SamplerState type, TextureFilter textureFilter) + { + return _device.SetSamplerState(sampler, type, textureFilter); + } + + public Result SetTransform(TransformState state, in Matrix value) + { + return _device.SetTransform(state, value); + } + + private int? _lastSetTextureSampler; + private object _lastSetTextureTexture; + public void SetTexture(int sampler, BaseTexture texture) + { + if ( ReferenceEquals(_lastSetTextureTexture, texture) && _lastSetTextureSampler == sampler) + { + return; + } + + _lastSetTextureSampler = sampler; + _lastSetTextureTexture = texture; + _device.SetTexture(sampler, texture); + } + + public Result SetRenderTarget(int targetIndex, Surface target) + { + return _device.SetRenderTarget(targetIndex, target); + } + + public Result DrawUserPrimitives(PrimitiveType primitiveType, int startIndex, int primitiveCount, in T[] data) where T : struct//, new() + { + return _device.DrawUserPrimitives(primitiveType, startIndex, primitiveCount, data); + } + + public Result DrawUserPrimitives(PrimitiveType primitiveType, int primitiveCount, in T[] data) where T : struct//, new() + { + return _device.DrawUserPrimitives(primitiveType, primitiveCount, data); + } + + public Result StretchRectangle(Surface source, Surface destination, TextureFilter filter) + { + return _device.StretchRectangle(source, destination, filter); + } + + public Result UpdateSurface(Surface source, in Rectangle sourceRectangle, Surface destination, in Point destinationPoint) + { + return _device.UpdateSurface(source, sourceRectangle, destination, destinationPoint); + } + + public Viewport Viewport + { + get => _device.Viewport; + set => _device.Viewport = value; + } + + public VertexFormat VertexFormat + { + get => _device.VertexFormat; + set => _device.VertexFormat = value; + } + + public Capabilities Capabilities => _device.Capabilities; + } +} \ No newline at end of file diff --git a/FDK19/コード/01.フレームワーク/Rendering/DeviceCreationException.cs b/FDK19/コード/01.フレームワーク/Rendering/DeviceCreationException.cs new file mode 100644 index 00000000..c6104b80 --- /dev/null +++ b/FDK19/コード/01.フレームワーク/Rendering/DeviceCreationException.cs @@ -0,0 +1,71 @@ +/* +* Copyright (c) 2007-2009 SlimDX Group +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +* THE SOFTWARE. +*/ +using System; +using System.Runtime.Serialization; + +namespace SampleFramework +{ + /// + /// Thrown when a graphics device cannot be created. + /// + [Serializable] + public class DeviceCreationException : Exception + { + /// + /// Initializes a new instance of the class. + /// + public DeviceCreationException() + { + } + + /// + /// Initializes a new instance of the class. + /// + /// The message. + public DeviceCreationException(string message) + : base(message) + { + } + + /// + /// Initializes a new instance of the class. + /// + /// The message. + /// The inner exception. + public DeviceCreationException(string message, Exception innerException) + : base(message, innerException) + { + } + + /// + /// Initializes a new instance of the class. + /// + /// The that holds the serialized object data about the exception being thrown. + /// The that contains contextual information about the source or destination. + /// The parameter is null. + /// The class name is null or is zero (0). + protected DeviceCreationException(SerializationInfo info, StreamingContext context) + : base(info, context) + { + } + } +} diff --git a/FDK19/コード/01.フレームワーク/Rendering/Direct3D9Manager.cs b/FDK19/コード/01.フレームワーク/Rendering/Direct3D9Manager.cs new file mode 100644 index 00000000..f7cf7b85 --- /dev/null +++ b/FDK19/コード/01.フレームワーク/Rendering/Direct3D9Manager.cs @@ -0,0 +1,219 @@ +/* +* Copyright (c) 2007-2009 SlimDX Group +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +* THE SOFTWARE. +*/ +using System; +using System.Collections.Generic; +using System.Reflection; +using System.Runtime.InteropServices; +using System.Security.Permissions; +using SlimDX; +using SlimDX.Direct3D9; + +namespace SampleFramework +{ + /// + /// Manages aspects of the graphics device unique to Direct3D9. + /// + public class Direct3D9Manager + { + GraphicsDeviceManager manager; + + /// + /// Gets the graphics device. + /// + /// The graphics device. +#if TEST_Direct3D9Ex + public DeviceEx Device //yyagi +#else + public DeviceCache Device +#endif + { + get; + internal set; + } + + /// + /// Initializes a new instance of the class. + /// + /// The parent manager. + internal Direct3D9Manager(GraphicsDeviceManager manager) + { + this.manager = manager; + } + + /// + /// Creates a vertex declaration using the specified vertex type. + /// + /// Type of the vertex. + /// The vertex declaration for the specified vertex type. + [EnvironmentPermission(SecurityAction.LinkDemand)] + public VertexDeclaration CreateVertexDeclaration(Type vertexType) + { + // ensure that we have a value type + if (!vertexType.IsValueType) + throw new InvalidOperationException("Vertex types must be value types."); + + // grab the list of elements in the vertex + List objectAttributes = new List(); + FieldInfo[] fields = vertexType.GetFields(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance); + foreach (FieldInfo field in fields) + { + // check for the custom attribute + VertexElementAttribute[] attributes = (VertexElementAttribute[])field.GetCustomAttributes(typeof(VertexElementAttribute), false); + if (field.Name.Contains("<") && field.Name.Contains(">")) + { + // look up the property matching this field to see if it has the attribute + int index1 = field.Name.IndexOf('<'); + int index2 = field.Name.IndexOf('>'); + + // parse out the name + string propertyName = field.Name.Substring(index1 + 1, index2 - index1 - 1); + PropertyInfo property = vertexType.GetProperty(propertyName, field.FieldType); + if (property != null) + attributes = (VertexElementAttribute[])property.GetCustomAttributes(typeof(VertexElementAttribute), false); + } + if (attributes.Length == 1) + { + // add the attribute to the list + attributes[0].Offset = Marshal.OffsetOf(vertexType, field.Name).ToInt32(); + objectAttributes.Add(attributes[0]); + } + } + + // make sure we have at least one element + if (objectAttributes.Count < 1) + throw new InvalidOperationException("The vertex type must have at least one field or property marked with the VertexElement attribute."); + + // loop through the attributes and start building vertex elements + List elements = new List(); + Dictionary usages = new Dictionary(); + foreach (VertexElementAttribute attribute in objectAttributes) + { + // check the current usage index + if (!usages.ContainsKey(attribute.Usage)) + usages.Add(attribute.Usage, 0); + + // advance the current usage count + int index = usages[attribute.Usage]; + usages[attribute.Usage]++; + + // create the element + elements.Add(new VertexElement((short)attribute.Stream, (short)attribute.Offset, attribute.Type, + attribute.Method, attribute.Usage, (byte)index)); + } + + elements.Add(VertexElement.VertexDeclarationEnd); + return new VertexDeclaration(Device.UnderlyingDevice, elements.ToArray()); + } + + /// + /// Creates a render target surface that is compatible with the current device settings. + /// + /// The width of the surface. + /// The height of the surface. + /// The newly created render target surface. + public Texture CreateRenderTarget(int width, int height) + { + return new Texture(Device.UnderlyingDevice, width, height, 1, Usage.RenderTarget, manager.CurrentSettings.BackBufferFormat, Pool.Default); + } + + /// + /// Creates a resolve target for capturing the back buffer. + /// + /// The newly created resolve target. + public Texture CreateResolveTarget() + { + return new Texture(Device.UnderlyingDevice, manager.ScreenWidth, manager.ScreenHeight, 1, Usage.RenderTarget, manager.CurrentSettings.BackBufferFormat, Pool.Default); + } + + /// + /// Resolves the current back buffer into a texture. + /// + /// The target texture. + /// Thrown when the resolve process fails. + public void ResolveBackBuffer(Texture target) + { + ResolveBackBuffer(target, 0); + } + + /// + /// Resolves the current back buffer into a texture. + /// + /// The target texture. + /// The index of the back buffer. + /// Thrown when the resolve process fails. + public void ResolveBackBuffer(Texture target, int backBufferIndex) + { + // disable exceptions for this method + bool storedThrow = Configuration.ThrowOnError; + Configuration.ThrowOnError = false; + Surface destination = null; + + try + { + // grab the current back buffer + Surface backBuffer = Device.GetBackBuffer(0, backBufferIndex); + if (backBuffer == null || Result.Last.IsFailure) + throw new InvalidOperationException("Could not obtain back buffer surface."); + + // grab the destination surface + destination = target.GetSurfaceLevel(0); + if (destination == null || Result.Last.IsFailure) + throw new InvalidOperationException("Could not obtain resolve target surface."); + + // first try to copy using linear filtering + if (Device.StretchRectangle(backBuffer, destination, TextureFilter.Linear).IsFailure) + { + // that failed, so try with no filtering + if (Device.StretchRectangle(backBuffer, destination, TextureFilter.None).IsFailure) + { + // that failed as well, so the last thing we can try is a load surface call + if (Surface.FromSurface(destination, backBuffer, Filter.Default, 0).IsFailure) + throw new InvalidOperationException("Could not copy surfaces."); + } + } + } + finally + { + if (destination != null) + destination.Dispose(); + Configuration.ThrowOnError = storedThrow; + } + } + + /// + /// Resets the render target. + /// + public void ResetRenderTarget() + { + Surface backBuffer = Device.GetBackBuffer(0, 0); + + try + { + Device.SetRenderTarget(0, backBuffer); + } + finally + { + backBuffer.Dispose(); + } + } + } +} diff --git a/FDK19/コード/01.フレームワーク/Rendering/Enums.cs b/FDK19/コード/01.フレームワーク/Rendering/Enums.cs new file mode 100644 index 00000000..2e6e35df --- /dev/null +++ b/FDK19/コード/01.フレームワーク/Rendering/Enums.cs @@ -0,0 +1,25 @@ +/* +* Copyright (c) 2007-2009 SlimDX Group +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +* THE SOFTWARE. +*/ + +namespace SampleFramework +{ +} diff --git a/FDK19/コード/01.フレームワーク/Rendering/GraphicsDeviceManager.cs b/FDK19/コード/01.フレームワーク/Rendering/GraphicsDeviceManager.cs new file mode 100644 index 00000000..55dc16bc --- /dev/null +++ b/FDK19/コード/01.フレームワーク/Rendering/GraphicsDeviceManager.cs @@ -0,0 +1,701 @@ +/* +* Copyright (c) 2007-2009 SlimDX Group +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +* THE SOFTWARE. +*/ +using System; +using System.ComponentModel; +using System.Drawing; +using System.Text; +using System.Threading; +using System.Windows.Forms; +using SlimDX; +using SlimDX.Direct3D9; +using SlimDX.DXGI; +using System.Diagnostics; + +namespace SampleFramework +{ + /// + /// Handles the configuration and management of the graphics device. + /// + public class GraphicsDeviceManager : IDisposable + { + Game game; + bool ignoreSizeChanges; + bool deviceLost; +// bool doNotStoreBufferSize; +// bool renderingOccluded; + + int fullscreenWindowWidth; + int fullscreenWindowHeight; + int windowedWindowWidth; + int windowedWindowHeight; + WINDOWPLACEMENT windowedPlacement; + long windowedStyle; + bool savedTopmost; + +#if TEST_Direct3D9Ex + internal static Direct3DEx Direct3D9Object // yyagi +#else + internal static Direct3D Direct3D9Object +#endif + { + get; + private set; + } + + public DeviceSettings CurrentSettings + { + get; + private set; + } + public bool IsWindowed + { + get { return CurrentSettings.Windowed; } + } + public int ScreenWidth + { + get { return CurrentSettings.BackBufferWidth; } + } + public int ScreenHeight + { + get { return CurrentSettings.BackBufferHeight; } + } + public Size ScreenSize + { + get { return new Size(CurrentSettings.BackBufferWidth, CurrentSettings.BackBufferHeight); } + } + public Direct3D9Manager Direct3D9 + { + get; + private set; + } + public string DeviceStatistics + { + get; + private set; + } + public string DeviceInformation + { + get; + private set; + } + + public GraphicsDeviceManager( Game game ) + { + if( game == null ) + throw new ArgumentNullException( "game" ); + + this.game = game; + + game.Window.ScreenChanged += Window_ScreenChanged; + game.Window.UserResized += Window_UserResized; + + game.FrameStart += game_FrameStart; + game.FrameEnd += game_FrameEnd; + + Direct3D9 = new Direct3D9Manager( this ); + } + + public void Dispose() + { + Dispose(true); + GC.SuppressFinalize(this); + } + + public void ChangeDevice( DeviceSettings settings, DeviceSettings minimumSettings ) + { + if( settings == null ) + throw new ArgumentNullException( "settings" ); + + Enumeration9.MinimumSettings = minimumSettings; + + DeviceSettings validSettings = DeviceSettings.FindValidSettings( settings ); + + validSettings.Direct3D9.PresentParameters.DeviceWindowHandle = game.Window.Handle; + + CreateDevice( validSettings ); + } + public void ChangeDevice(bool windowed, int desiredWidth, int desiredHeight) + { + DeviceSettings desiredSettings = new DeviceSettings(); + desiredSettings.Windowed = windowed; + desiredSettings.BackBufferWidth = desiredWidth; + desiredSettings.BackBufferHeight = desiredHeight; + + ChangeDevice(desiredSettings, null); + } + public void ChangeDevice(DeviceSettings settings) + { + ChangeDevice(settings, null); + } + + public void ToggleFullScreen() + { + if (!EnsureDevice()) + throw new InvalidOperationException("No valid device."); + + DeviceSettings newSettings = CurrentSettings.Clone(); + + newSettings.Windowed = !newSettings.Windowed; + + int width = newSettings.Windowed ? windowedWindowWidth : fullscreenWindowWidth; + int height = newSettings.Windowed ? windowedWindowHeight : fullscreenWindowHeight; + + newSettings.BackBufferWidth = width; + newSettings.BackBufferHeight = height; + + ChangeDevice(newSettings); + } + public bool EnsureDevice() + { + if (Direct3D9.Device != null && !deviceLost) + return true; + + return false; + } + + protected virtual void Dispose( bool disposing ) + { + if( this.bDisposed ) + return; + this.bDisposed = true; + + if( disposing ) + ReleaseDevice(); + + } + private bool bDisposed = false; + + void CreateDevice(DeviceSettings settings) + { + DeviceSettings oldSettings = CurrentSettings; + CurrentSettings = settings; + + ignoreSizeChanges = true; + + bool keepCurrentWindowSize = false; + if (settings.BackBufferWidth == 0 && settings.BackBufferHeight == 0) + keepCurrentWindowSize = true; + + // handle the window state in Direct3D9 (it will be handled for us in DXGI) + // check if we are going to windowed or fullscreen mode + if( settings.Windowed ) + { + if( oldSettings != null && !oldSettings.Windowed ) + NativeMethods.SetWindowLong( game.Window.Handle, WindowConstants.GWL_STYLE, (uint) windowedStyle ); + } + else + { + if( oldSettings == null || oldSettings.Windowed ) + { + savedTopmost = game.Window.TopMost; + long style = NativeMethods.GetWindowLong( game.Window.Handle, WindowConstants.GWL_STYLE ); + style &= ~WindowConstants.WS_MAXIMIZE & ~WindowConstants.WS_MINIMIZE; + windowedStyle = style; + + windowedPlacement = new WINDOWPLACEMENT(); + windowedPlacement.length = WINDOWPLACEMENT.Length; + NativeMethods.GetWindowPlacement( game.Window.Handle, ref windowedPlacement ); + } + + // hide the window until we are done messing with it + game.Window.Hide(); + NativeMethods.SetWindowLong( game.Window.Handle, WindowConstants.GWL_STYLE, (uint) ( WindowConstants.WS_POPUP | WindowConstants.WS_SYSMENU ) ); + + WINDOWPLACEMENT placement = new WINDOWPLACEMENT(); + placement.length = WINDOWPLACEMENT.Length; + NativeMethods.GetWindowPlacement( game.Window.Handle, ref placement ); + + // check if we are in the middle of a restore + if( ( placement.flags & WindowConstants.WPF_RESTORETOMAXIMIZED ) != 0 ) + { + // update the flags to avoid sizing issues + placement.flags &= ~WindowConstants.WPF_RESTORETOMAXIMIZED; + placement.showCmd = WindowConstants.SW_RESTORE; + NativeMethods.SetWindowPlacement( game.Window.Handle, ref placement ); + } + } + + if (settings.Windowed) + { + if (oldSettings != null && !oldSettings.Windowed) + { + fullscreenWindowWidth = oldSettings.BackBufferWidth; + fullscreenWindowHeight = oldSettings.BackBufferHeight; + } + } + else + { + if (oldSettings != null && oldSettings.Windowed) + { + windowedWindowWidth = oldSettings.BackBufferWidth; + windowedWindowHeight = oldSettings.BackBufferHeight; + } + } + + // check if the device can be reset, or if we need to completely recreate it + Result result = SlimDX.Direct3D9.ResultCode.Success; + bool canReset = CanDeviceBeReset(oldSettings, settings); + if (canReset) + result = ResetDevice(); + + if (result == SlimDX.Direct3D9.ResultCode.DeviceLost) + deviceLost = true; + else if (!canReset || result.IsFailure) + { + if (oldSettings != null) + ReleaseDevice(); + + InitializeDevice(); + } + + UpdateDeviceInformation(); + + // check if we changed from fullscreen to windowed mode + if (oldSettings != null && !oldSettings.Windowed && settings.Windowed) + { + NativeMethods.SetWindowPlacement(game.Window.Handle, ref windowedPlacement); + game.Window.TopMost = savedTopmost; + } + + // check if we need to resize + if (settings.Windowed && !keepCurrentWindowSize) + { + int width; + int height; + if (NativeMethods.IsIconic(game.Window.Handle)) + { + WINDOWPLACEMENT placement = new WINDOWPLACEMENT(); + placement.length = WINDOWPLACEMENT.Length; + NativeMethods.GetWindowPlacement(game.Window.Handle, ref placement); + + // check if we are being restored + if ((placement.flags & WindowConstants.WPF_RESTORETOMAXIMIZED) != 0 && placement.showCmd == WindowConstants.SW_SHOWMINIMIZED) + { + NativeMethods.ShowWindow(game.Window.Handle, WindowConstants.SW_RESTORE); + + Rectangle rect = NativeMethods.GetClientRectangle(game.Window.Handle); + + width = rect.Width; + height = rect.Height; + NativeMethods.ShowWindow(game.Window.Handle, WindowConstants.SW_MINIMIZE); + } + else + { + NativeRectangle frame = new NativeRectangle(); + NativeMethods.AdjustWindowRect(ref frame, (uint)windowedStyle, false); + int frameWidth = frame.right - frame.left; + int frameHeight = frame.bottom - frame.top; + + width = placement.rcNormalPosition.right - placement.rcNormalPosition.left - frameWidth; + height = placement.rcNormalPosition.bottom - placement.rcNormalPosition.top - frameHeight; + } + } + else + { + Rectangle rect = NativeMethods.GetClientRectangle(game.Window.Handle); + width = rect.Width; + height = rect.Height; + } + + // check if we have a different desired size + if (width != settings.BackBufferWidth || + height != settings.BackBufferHeight) + { + if (NativeMethods.IsIconic(game.Window.Handle)) + NativeMethods.ShowWindow(game.Window.Handle, WindowConstants.SW_RESTORE); + if (NativeMethods.IsZoomed(game.Window.Handle)) + NativeMethods.ShowWindow(game.Window.Handle, WindowConstants.SW_RESTORE); + + NativeRectangle rect = new NativeRectangle(); + rect.right = settings.BackBufferWidth; + rect.bottom = settings.BackBufferHeight; + NativeMethods.AdjustWindowRect(ref rect, + NativeMethods.GetWindowLong(game.Window.Handle, WindowConstants.GWL_STYLE), false); + + NativeMethods.SetWindowPos(game.Window.Handle, IntPtr.Zero, 0, 0, rect.right - rect.left, + rect.bottom - rect.top, WindowConstants.SWP_NOZORDER | WindowConstants.SWP_NOMOVE); + + Rectangle r = NativeMethods.GetClientRectangle(game.Window.Handle); + int clientWidth = r.Width; + int clientHeight = r.Height; + + // check if the size was modified by Windows + if (clientWidth != settings.BackBufferWidth || + clientHeight != settings.BackBufferHeight) + { + DeviceSettings newSettings = CurrentSettings.Clone(); + newSettings.BackBufferWidth = 0; + newSettings.BackBufferHeight = 0; + if (newSettings.Direct3D9 != null) + { + newSettings.Direct3D9.PresentParameters.BackBufferWidth = GameWindowSize.Width; // #23510 2010.10.31 add yyagi: to avoid setting BackBufferSize=ClientSize + newSettings.Direct3D9.PresentParameters.BackBufferHeight = GameWindowSize.Height; // #23510 2010.10.31 add yyagi: to avoid setting BackBufferSize=ClientSize + } + + CreateDevice(newSettings); + } + } + } + + // if the window is still hidden, make sure it is shown + if (!game.Window.Visible) + NativeMethods.ShowWindow(game.Window.Handle, WindowConstants.SW_SHOW); + + // set the execution state of the thread + if (!IsWindowed) + NativeMethods.SetThreadExecutionState(WindowConstants.ES_DISPLAY_REQUIRED | WindowConstants.ES_CONTINUOUS); + else + NativeMethods.SetThreadExecutionState(WindowConstants.ES_CONTINUOUS); + + ignoreSizeChanges = false; + } + + void Window_UserResized( object sender, EventArgs e ) + { + if( ignoreSizeChanges || !EnsureDevice() || ( !IsWindowed ) ) + return; + + DeviceSettings newSettings = CurrentSettings.Clone(); + + Rectangle rect = NativeMethods.GetClientRectangle( game.Window.Handle ); + if( rect.Width != newSettings.BackBufferWidth || rect.Height != newSettings.BackBufferHeight ) + { + newSettings.BackBufferWidth = 0; + newSettings.BackBufferHeight = 0; + newSettings.Direct3D9.PresentParameters.BackBufferWidth = GameWindowSize.Width; // #23510 2010.10.31 add yyagi: to avoid setting BackBufferSize=ClientSize + newSettings.Direct3D9.PresentParameters.BackBufferHeight = GameWindowSize.Height; // + CreateDevice( newSettings ); + } + } + void Window_ScreenChanged( object sender, EventArgs e ) + { + if( !EnsureDevice() || !CurrentSettings.Windowed || ignoreSizeChanges ) + return; + + IntPtr windowMonitor = NativeMethods.MonitorFromWindow( game.Window.Handle, WindowConstants.MONITOR_DEFAULTTOPRIMARY ); + + DeviceSettings newSettings = CurrentSettings.Clone(); + int adapterOrdinal = GetAdapterOrdinal( windowMonitor ); + if( adapterOrdinal == -1 ) + return; + newSettings.Direct3D9.AdapterOrdinal = adapterOrdinal; + + newSettings.BackBufferWidth = 0; // #23510 2010.11.1 add yyagi to avoid to reset to 640x480 for the first time in XP. + newSettings.BackBufferHeight = 0; // + newSettings.Direct3D9.PresentParameters.BackBufferWidth = GameWindowSize.Width; // + newSettings.Direct3D9.PresentParameters.BackBufferHeight = GameWindowSize.Height; // + + CreateDevice(newSettings); + } + + void game_FrameEnd( object sender, EventArgs e ) + { + Result result = SlimDX.Direct3D9.ResultCode.Success; + try + { + result = Direct3D9.Device.Present(); + } + catch (Direct3D9Exception) // #23842 2011.1.6 yyagi: catch D3D9Exception to avoid unexpected termination by changing VSyncWait in fullscreen. + { + deviceLost = true; + } + if( result == SlimDX.Direct3D9.ResultCode.DeviceLost ) + deviceLost = true; + } + void game_FrameStart(object sender, CancelEventArgs e) + { + if (Direct3D9.Device == null ) + { + e.Cancel = true; + return; + } + +// if (!game.IsActive || deviceLost) // #23568 2010.11.3 yyagi: separate conditions to support valiable sleep value when !IsActive. + if (deviceLost) + Thread.Sleep(50); + else if (!game.IsActive && !this.CurrentSettings.EnableVSync) // #23568 2010.11.4 yyagi: Don't add sleep() while VSync is enabled. + Thread.Sleep(this.game.InactiveSleepTime.Milliseconds); + + if (deviceLost) + { + Result result = Direct3D9.Device.TestCooperativeLevel(); + if (result == SlimDX.Direct3D9.ResultCode.DeviceLost) + { + e.Cancel = true; + return; + } + + // if we are windowed, check the adapter format to see if the user + // changed the desktop format, causing a lost device + if (IsWindowed) + { + DisplayMode displayMode = GraphicsDeviceManager.Direct3D9Object.GetAdapterDisplayMode(CurrentSettings.Direct3D9.AdapterOrdinal); + if (CurrentSettings.Direct3D9.AdapterFormat != displayMode.Format) + { + DeviceSettings newSettings = CurrentSettings.Clone(); + ChangeDevice(newSettings); + e.Cancel = true; + return; + } + } + + result = ResetDevice(); + if (result.IsFailure) + { + e.Cancel = true; + return; + } + } + + deviceLost = false; + } + + bool CanDeviceBeReset( DeviceSettings oldSettings, DeviceSettings newSettings ) + { + if( oldSettings == null ) + return false; + + return Direct3D9.Device != null && + oldSettings.Direct3D9.AdapterOrdinal == newSettings.Direct3D9.AdapterOrdinal && + oldSettings.Direct3D9.DeviceType == newSettings.Direct3D9.DeviceType && + oldSettings.Direct3D9.CreationFlags == newSettings.Direct3D9.CreationFlags; + } + + void InitializeDevice() + { + try + { + EnsureD3D9(); + +#if TEST_Direct3D9Ex + // 2011.4.26 yyagi + // Direct3D9.DeviceExを呼ぶ際(IDirect3D9Ex::CreateDeviceExを呼ぶ際)、 + // フルスクリーンモードで初期化する場合はDisplayModeEx(D3DDISPLAYMODEEX *pFullscreenDisplayMode)に + // 適切な値を設定する必要あり。 + // 一方、ウインドウモードで初期化する場合は、D3DDISPLAYMODEEXをNULLにする必要があるが、 + // DisplayModeExがNULL不可と定義されているため、DeviceExのoverloadの中でDisplayModeExを引数に取らないものを + // 使う。(DeviceEx側でD3DDISPLAYMODEEXをNULLにしてくれる) + // 結局、DeviceExの呼び出しの際に、フルスクリーンかどうかで場合分けが必要となる。 + if ( CurrentSettings.Direct3D9.PresentParameters.Windowed == false ) + { + DisplayModeEx fullScreenDisplayMode = new DisplayModeEx(); + fullScreenDisplayMode.Width = CurrentSettings.Direct3D9.PresentParameters.BackBufferWidth; + fullScreenDisplayMode.Height = CurrentSettings.Direct3D9.PresentParameters.BackBufferHeight; + fullScreenDisplayMode.RefreshRate = CurrentSettings.Direct3D9.PresentParameters.FullScreenRefreshRateInHertz; + fullScreenDisplayMode.Format = CurrentSettings.Direct3D9.PresentParameters.BackBufferFormat; + + Direct3D9.Device = new SlimDX.Direct3D9.DeviceEx( Direct3D9Object, CurrentSettings.Direct3D9.AdapterOrdinal, + CurrentSettings.Direct3D9.DeviceType, game.Window.Handle, + CurrentSettings.Direct3D9.CreationFlags, CurrentSettings.Direct3D9.PresentParameters, fullScreenDisplayMode ); + } + else + { + Direct3D9.Device = new SlimDX.Direct3D9.DeviceEx( Direct3D9Object, CurrentSettings.Direct3D9.AdapterOrdinal, + CurrentSettings.Direct3D9.DeviceType, game.Window.Handle, + CurrentSettings.Direct3D9.CreationFlags, CurrentSettings.Direct3D9.PresentParameters ); + } + Direct3D9.Device.MaximumFrameLatency = 1; +#else + Direct3D9.Device = new DeviceCache( new SlimDX.Direct3D9.Device( Direct3D9Object, CurrentSettings.Direct3D9.AdapterOrdinal, + CurrentSettings.Direct3D9.DeviceType, game.Window.Handle, + CurrentSettings.Direct3D9.CreationFlags, CurrentSettings.Direct3D9.PresentParameters ) ); +#endif + if ( Result.Last == SlimDX.Direct3D9.ResultCode.DeviceLost ) + { + deviceLost = true; + return; + } +#if TEST_Direct3D9Ex + Direct3D9.Device.MaximumFrameLatency = 1; // yyagi +#endif + } + catch( Exception e ) + { + throw new DeviceCreationException( "Could not create graphics device.", e ); + } + + PropogateSettings(); + + UpdateDeviceStats(); + + game.Initialize(); + game.LoadContent(); + } + + Result ResetDevice() + { + game.UnloadContent(); + + Result result = Direct3D9.Device.Reset( CurrentSettings.Direct3D9.PresentParameters ); + if( result == SlimDX.Direct3D9.ResultCode.DeviceLost ) + return result; + + PropogateSettings(); + UpdateDeviceStats(); + game.LoadContent(); + + return Result.Last; + } + + void ReleaseDevice() + { + ReleaseDevice9(); + } + void ReleaseDevice9() + { + if (Direct3D9.Device == null) + return; + + if (game != null) + { + game.UnloadContent(); + game.Dispose(true); + } + + try + { + Direct3D9.Device.Dispose(); + } + catch( ObjectDisposedException e ) + { + // 時々発生するのでキャッチしておく。 + Trace.TraceError( e.ToString() ); + Trace.TraceError( "例外が発生しましたが処理を継続します。 (fc0b6e70-181e-410f-b47f-5490ca4ce0c3)" ); + } + Direct3D9Object.Dispose(); + + Direct3D9Object = null; + Direct3D9.Device = null; + } + void PropogateSettings() + { + CurrentSettings.BackBufferCount = CurrentSettings.Direct3D9.PresentParameters.BackBufferCount; + CurrentSettings.BackBufferWidth = CurrentSettings.Direct3D9.PresentParameters.BackBufferWidth; + CurrentSettings.BackBufferHeight = CurrentSettings.Direct3D9.PresentParameters.BackBufferHeight; + CurrentSettings.BackBufferFormat = CurrentSettings.Direct3D9.PresentParameters.BackBufferFormat; + CurrentSettings.DepthStencilFormat = CurrentSettings.Direct3D9.PresentParameters.AutoDepthStencilFormat; + CurrentSettings.DeviceType = CurrentSettings.Direct3D9.DeviceType; + CurrentSettings.MultisampleQuality = CurrentSettings.Direct3D9.PresentParameters.MultisampleQuality; + CurrentSettings.MultisampleType = CurrentSettings.Direct3D9.PresentParameters.Multisample; + CurrentSettings.RefreshRate = CurrentSettings.Direct3D9.PresentParameters.FullScreenRefreshRateInHertz; + CurrentSettings.Windowed = CurrentSettings.Direct3D9.PresentParameters.Windowed; + } + + void UpdateDeviceInformation() + { + StringBuilder builder = new StringBuilder(); + + if( CurrentSettings.Direct3D9.DeviceType == DeviceType.Hardware ) + builder.Append( "HAL" ); + else if( CurrentSettings.Direct3D9.DeviceType == DeviceType.Reference ) + builder.Append( "REF" ); + else if( CurrentSettings.Direct3D9.DeviceType == DeviceType.Software ) + builder.Append( "SW" ); + + if( ( CurrentSettings.Direct3D9.CreationFlags & CreateFlags.HardwareVertexProcessing ) != 0 ) + if( CurrentSettings.Direct3D9.DeviceType == DeviceType.Hardware ) + builder.Append( " (hw vp)" ); + else + builder.Append( " (simulated hw vp)" ); + else if( ( CurrentSettings.Direct3D9.CreationFlags & CreateFlags.MixedVertexProcessing ) != 0 ) + if( CurrentSettings.Direct3D9.DeviceType == DeviceType.Hardware ) + builder.Append( " (mixed vp)" ); + else + builder.Append( " (simulated mixed vp)" ); + else + builder.Append( " (sw vp)" ); + + if( CurrentSettings.Direct3D9.DeviceType == DeviceType.Hardware ) + { + // loop through each adapter until we find the right one + foreach( AdapterInfo9 adapterInfo in Enumeration9.Adapters ) + { + if( adapterInfo.AdapterOrdinal == CurrentSettings.Direct3D9.AdapterOrdinal ) + { + builder.AppendFormat( ": {0}", adapterInfo.Description ); + break; + } + } + } + + DeviceInformation = builder.ToString(); + } + + void UpdateDeviceStats() + { + StringBuilder builder = new StringBuilder(); + + builder.Append( "D3D9 Vsync " ); + + if( CurrentSettings.Direct3D9.PresentParameters.PresentationInterval == PresentInterval.Immediate ) + builder.Append( "off" ); + else + builder.Append( "on" ); + + builder.AppendFormat( " ({0}x{1}), ", CurrentSettings.Direct3D9.PresentParameters.BackBufferWidth, CurrentSettings.Direct3D9.PresentParameters.BackBufferHeight ); + + if( CurrentSettings.Direct3D9.AdapterFormat == CurrentSettings.Direct3D9.PresentParameters.BackBufferFormat ) + builder.Append( Enum.GetName( typeof( SlimDX.Direct3D9.Format ), CurrentSettings.Direct3D9.AdapterFormat ) ); + else + builder.AppendFormat( "backbuf {0}, adapter {1}", + Enum.GetName( typeof( SlimDX.Direct3D9.Format ), CurrentSettings.Direct3D9.AdapterFormat ), + Enum.GetName( typeof( SlimDX.Direct3D9.Format ), CurrentSettings.Direct3D9.PresentParameters.BackBufferFormat ) ); + + builder.AppendFormat( " ({0})", Enum.GetName( typeof( SlimDX.Direct3D9.Format ), CurrentSettings.Direct3D9.PresentParameters.AutoDepthStencilFormat ) ); + + if( CurrentSettings.Direct3D9.PresentParameters.Multisample == MultisampleType.NonMaskable ) + builder.Append( " (Nonmaskable Multisample)" ); + else if( CurrentSettings.Direct3D9.PresentParameters.Multisample != MultisampleType.None ) + builder.AppendFormat( " ({0}x Multisample)", (int) CurrentSettings.Direct3D9.PresentParameters.Multisample ); + + DeviceStatistics = builder.ToString(); + } + + int GetAdapterOrdinal( IntPtr screen ) + { + AdapterInfo9 adapter = null; + foreach( AdapterInfo9 a in Enumeration9.Adapters ) + { + if( Direct3D9Object.GetAdapterMonitor( a.AdapterOrdinal ) == screen ) + { + adapter = a; + break; + } + } + + if( adapter != null ) + return adapter.AdapterOrdinal; + + return -1; + } + + internal static void EnsureD3D9() + { + if ( Direct3D9Object == null ) +#if TEST_Direct3D9Ex + Direct3D9Object = new Direct3DEx(); // yyagi +#else + Direct3D9Object = new Direct3D(); +#endif + } + } +} diff --git a/FDK19/コード/01.フレームワーク/Rendering/NoCompatibleDevicesException.cs b/FDK19/コード/01.フレームワーク/Rendering/NoCompatibleDevicesException.cs new file mode 100644 index 00000000..0bb45d00 --- /dev/null +++ b/FDK19/コード/01.フレームワーク/Rendering/NoCompatibleDevicesException.cs @@ -0,0 +1,71 @@ +/* +* Copyright (c) 2007-2009 SlimDX Group +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +* THE SOFTWARE. +*/ +using System; +using System.Runtime.Serialization; + +namespace SampleFramework +{ + /// + /// Thrown when no available graphics device fits the given device preferences. + /// + [Serializable] + public class NoCompatibleDevicesException : Exception + { + /// + /// Initializes a new instance of the class. + /// + public NoCompatibleDevicesException() + { + } + + /// + /// Initializes a new instance of the class. + /// + /// The message. + public NoCompatibleDevicesException(string message) + : base(message) + { + } + + /// + /// Initializes a new instance of the class. + /// + /// The message. + /// The inner exception. + public NoCompatibleDevicesException(string message, Exception innerException) + : base(message, innerException) + { + } + + /// + /// Initializes a new instance of the class. + /// + /// The that holds the serialized object data about the exception being thrown. + /// The that contains contextual information about the source or destination. + /// The parameter is null. + /// The class name is null or is zero (0). + protected NoCompatibleDevicesException(SerializationInfo info, StreamingContext context) + : base(info, context) + { + } + } +} diff --git a/FDK19/コード/01.フレームワーク/Rendering/VertexElementAttribute.cs b/FDK19/コード/01.フレームワーク/Rendering/VertexElementAttribute.cs new file mode 100644 index 00000000..cd598321 --- /dev/null +++ b/FDK19/コード/01.フレームワーク/Rendering/VertexElementAttribute.cs @@ -0,0 +1,94 @@ +/* +* Copyright (c) 2007-2009 SlimDX Group +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +* THE SOFTWARE. +*/ +using System; +using SlimDX.Direct3D9; + +namespace SampleFramework +{ + /// + /// Indicates that the target code element is part of a vertex declaration. + /// + [AttributeUsage(AttributeTargets.Field | AttributeTargets.Property)] + public sealed class VertexElementAttribute : Attribute + { + /// + /// Gets or sets the stream index. + /// + /// The stream index. + public int Stream + { + get; + set; + } + + /// + /// Gets or sets the tessellation method. + /// + /// The tessellation method. + public DeclarationMethod Method + { + get; + set; + } + + /// + /// Gets or sets the element usage. + /// + /// The element usage. + public DeclarationUsage Usage + { + get; + private set; + } + + /// + /// Gets or sets the type of the data. + /// + /// The type of the data. + public DeclarationType Type + { + get; + private set; + } + + /// + /// Gets or sets the offset. + /// + /// The offset. + internal int Offset + { + get; + set; + } + + /// + /// Initializes a new instance of the class. + /// + /// The type. + /// The vertex element usage. + public VertexElementAttribute(DeclarationType type, DeclarationUsage usage) + { + Type = type; + Usage = usage; + } + } +} diff --git a/FDK19/コード/01.フレームワーク/Resources/sdx_icon_black.ico b/FDK19/コード/01.フレームワーク/Resources/sdx_icon_black.ico new file mode 100644 index 0000000000000000000000000000000000000000..a579579bef18b089a869867ccae506cde20abc61 GIT binary patch literal 125036 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 z + /// Represents a view onto a 3D scene. + /// + public class Camera + { + Vector3 location; + Vector3 target; + float fieldOfView; + float aspectRatio; + float nearPlane; + float farPlane; + Matrix viewMatrix; + Matrix projectionMatrix; + bool viewDirty = true; + bool projectionDirty = true; + + /// + /// Gets or sets the location of the camera eye point. + /// + /// The location of the camera eye point. + public Vector3 Location + { + get { return location; } + set + { + if (location == value) + return; + + location = value; + viewDirty = true; + } + } + + /// + /// Gets or sets the view target point. + /// + /// The view target point. + public Vector3 Target + { + get { return target; } + set + { + if (target == value) + return; + + target = value; + viewDirty = true; + } + } + + /// + /// Gets or sets the field of view. + /// + /// The field of view. + public float FieldOfView + { + get { return fieldOfView; } + set + { + if (fieldOfView == value) + return; + + fieldOfView = value; + projectionDirty = true; + } + } + + /// + /// Gets or sets the aspect ratio. + /// + /// The aspect ratio. + public float AspectRatio + { + get { return aspectRatio; } + set + { + if (aspectRatio == value) + return; + + aspectRatio = value; + projectionDirty = true; + } + } + + /// + /// Gets or sets the near plane. + /// + /// The near plane. + public float NearPlane + { + get { return nearPlane; } + set + { + if (nearPlane == value) + return; + + nearPlane = value; + projectionDirty = true; + } + } + + /// + /// Gets or sets the far plane. + /// + /// The far plane. + public float FarPlane + { + get { return farPlane; } + set + { + if (farPlane == value) + return; + + farPlane = value; + projectionDirty = true; + } + } + + /// + /// Gets the view matrix. + /// + /// The view matrix. + public Matrix ViewMatrix + { + get + { + if (viewDirty) + RebuildViewMatrix(); + return viewMatrix; + } + } + + /// + /// Gets the projection matrix. + /// + /// The projection matrix. + public Matrix ProjectionMatrix + { + get + { + if (projectionDirty) + RebuildProjectionMatrix(); + return projectionMatrix; + } + } + + /// + /// Initializes a new instance of the class. + /// + public Camera() + { + } + + /// + /// Rebuilds the view matrix. + /// + protected virtual void RebuildViewMatrix() + { + viewMatrix = Matrix.LookAtLH(Location, Target, Vector3.UnitY); + viewDirty = false; + } + + /// + /// Rebuilds the projection matrix. + /// + protected virtual void RebuildProjectionMatrix() + { + projectionMatrix = Matrix.PerspectiveFovLH(FieldOfView, AspectRatio, NearPlane, FarPlane); + projectionDirty = false; + } + } +} diff --git a/FDK19/コード/01.フレームワーク/Utilities/TransformedColoredTexturedVertex.cs b/FDK19/コード/01.フレームワーク/Utilities/TransformedColoredTexturedVertex.cs new file mode 100644 index 00000000..44299168 --- /dev/null +++ b/FDK19/コード/01.フレームワーク/Utilities/TransformedColoredTexturedVertex.cs @@ -0,0 +1,178 @@ +/* +* Copyright (c) 2007-2009 SlimDX Group +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +* THE SOFTWARE. +*/ +using System; +using System.Globalization; +using System.Runtime.InteropServices; +using SlimDX; +using SlimDX.Direct3D9; + +namespace SampleFramework +{ + /// + /// Represents a single transformed, colored, and textured vertex. + /// + [StructLayout(LayoutKind.Sequential)] + public struct TransformedColoredTexturedVertex : IEquatable + { + private Vector4 m_Position; + /// + /// Gets or sets the transformed position of the vertex. + /// + /// The transformed position of the vertex. + [VertexElement(DeclarationType.Float4, DeclarationUsage.PositionTransformed)] + public Vector4 Position + { + get { return m_Position; } + set { m_Position = value; } + } + + private int m_Color; + /// + /// Gets or sets the color of the vertex. + /// + /// The color of the vertex. + [VertexElement(DeclarationType.Color, DeclarationUsage.Color)] + public int Color + { + get { return m_Color; } + set { m_Color = value; } + } + + private Vector2 m_TextureCoordinates; + /// + /// Gets or sets the texture coordinates. + /// + /// The texture coordinates. + [VertexElement(DeclarationType.Float2, DeclarationUsage.TextureCoordinate)] + public Vector2 TextureCoordinates + { + get { return m_TextureCoordinates; } + set { m_TextureCoordinates = value; } + } + + /// + /// Gets the size in bytes. + /// + /// The size in bytes. + public static int SizeInBytes + { + get { return Marshal.SizeOf(typeof(TransformedColoredTexturedVertex)); } + } + + /// + /// Gets the format. + /// + /// The format. + public static VertexFormat Format + { + get { return VertexFormat.PositionRhw | VertexFormat.Diffuse | VertexFormat.Texture1; } + } + + /// + /// Initializes a new instance of the struct. + /// + /// The position. + /// The color. + /// The texture coordinates. + public TransformedColoredTexturedVertex(Vector4 position, int color, Vector2 textureCoordinates) + : this() + { + Position = position; + Color = color; + TextureCoordinates = textureCoordinates; + } + + /// + /// Implements the operator ==. + /// + /// The left side of the operator. + /// The right side of the operator. + /// The result of the operator. + public static bool operator ==(TransformedColoredTexturedVertex left, TransformedColoredTexturedVertex right) + { + return left.Equals(right); + } + + /// + /// Implements the operator !=. + /// + /// The left side of the operator. + /// The right side of the operator. + /// The result of the operator. + public static bool operator !=(TransformedColoredTexturedVertex left, TransformedColoredTexturedVertex right) + { + return !(left == right); + } + + /// + /// Returns the hash code for this instance. + /// + /// + /// A 32-bit signed integer that is the hash code for this instance. + /// + public override int GetHashCode() + { + return Position.GetHashCode() + Color.GetHashCode() + TextureCoordinates.GetHashCode(); + } + + /// + /// Indicates whether this instance and a specified object are equal. + /// + /// Another object to compare to. + /// + /// true if and this instance are the same type and represent the same value; otherwise, false. + /// + public override bool Equals(object obj) + { + if (obj == null) + return false; + + if (GetType() != obj.GetType()) + return false; + + return Equals((TransformedColoredTexturedVertex)obj); + } + + /// + /// Indicates whether the current object is equal to another object of the same type. + /// + /// An object to compare with this object. + /// + /// true if the current object is equal to the parameter; otherwise, false. + /// + public bool Equals(TransformedColoredTexturedVertex other) + { + return (Position == other.Position && Color == other.Color && TextureCoordinates == other.TextureCoordinates); + } + + /// + /// Returns a string representation of the current object. + /// + /// + /// A representing the vertex. + /// + public override string ToString() + { + return string.Format(CultureInfo.CurrentCulture, "{0} ({1}, {2})", Position.ToString(), System.Drawing.Color.FromArgb(Color).ToString(), TextureCoordinates.ToString()); + } + } +} diff --git a/FDK19/コード/01.フレームワーク/Utilities/TransformedColoredVertex.cs b/FDK19/コード/01.フレームワーク/Utilities/TransformedColoredVertex.cs new file mode 100644 index 00000000..92d92566 --- /dev/null +++ b/FDK19/コード/01.フレームワーク/Utilities/TransformedColoredVertex.cs @@ -0,0 +1,162 @@ +/* +* Copyright (c) 2007-2009 SlimDX Group +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +* THE SOFTWARE. +*/ +using System; +using System.Globalization; +using System.Runtime.InteropServices; +using SlimDX; +using SlimDX.Direct3D9; + +namespace SampleFramework +{ + /// + /// Represents a single transformed and colored vertex. + /// + [StructLayout(LayoutKind.Sequential)] + public struct TransformedColoredVertex : IEquatable + { + /// + /// Gets or sets the transformed position of the vertex. + /// + /// The transformed position of the vertex. + [VertexElement(DeclarationType.Float4, DeclarationUsage.PositionTransformed)] + public Vector4 Position + { + get; + set; + } + + /// + /// Gets or sets the color of the vertex. + /// + /// The color of the vertex. + [VertexElement(DeclarationType.Color, DeclarationUsage.Color)] + public int Color + { + get; + set; + } + + /// + /// Gets the size in bytes. + /// + /// The size in bytes. + public static int SizeInBytes + { + get { return Marshal.SizeOf(typeof(TransformedColoredVertex)); } + } + + /// + /// Gets the format. + /// + /// The format. + public static VertexFormat Format + { + get { return VertexFormat.PositionRhw | VertexFormat.Diffuse; } + } + + /// + /// Initializes a new instance of the struct. + /// + /// The position. + /// The color. + public TransformedColoredVertex(Vector4 position, int color) + : this() + { + Position = position; + Color = color; + } + + /// + /// Implements the operator ==. + /// + /// The left side of the operator. + /// The right side of the operator. + /// The result of the operator. + public static bool operator ==(TransformedColoredVertex left, TransformedColoredVertex right) + { + return left.Equals(right); + } + + /// + /// Implements the operator !=. + /// + /// The left side of the operator. + /// The right side of the operator. + /// The result of the operator. + public static bool operator !=(TransformedColoredVertex left, TransformedColoredVertex right) + { + return !(left == right); + } + + /// + /// Returns the hash code for this instance. + /// + /// + /// A 32-bit signed integer that is the hash code for this instance. + /// + public override int GetHashCode() + { + return Position.GetHashCode() + Color.GetHashCode(); + } + + /// + /// Indicates whether this instance and a specified object are equal. + /// + /// Another object to compare to. + /// + /// true if and this instance are the same type and represent the same value; otherwise, false. + /// + public override bool Equals(object obj) + { + if (obj == null) + return false; + + if (GetType() != obj.GetType()) + return false; + + return Equals((TransformedColoredVertex)obj); + } + + /// + /// Indicates whether the current object is equal to another object of the same type. + /// + /// An object to compare with this object. + /// + /// true if the current object is equal to the parameter; otherwise, false. + /// + public bool Equals(TransformedColoredVertex other) + { + return (Position == other.Position && Color == other.Color); + } + + /// + /// Returns a string representation of the current object. + /// + /// + /// A representing the vertex. + /// + public override string ToString() + { + return string.Format(CultureInfo.CurrentCulture, "{0} ({1})", Position.ToString(), System.Drawing.Color.FromArgb(Color).ToString()); + } + } +} diff --git a/FDK19/コード/01.フレームワーク/Win32/NativeMethods.cs b/FDK19/コード/01.フレームワーク/Win32/NativeMethods.cs new file mode 100644 index 00000000..6cd66ec8 --- /dev/null +++ b/FDK19/コード/01.フレームワーク/Win32/NativeMethods.cs @@ -0,0 +1,115 @@ +/* +* Copyright (c) 2007-2009 SlimDX Group +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +* THE SOFTWARE. +*/ +using System; +using System.Drawing; +using System.Runtime.InteropServices; +using System.Security; + +namespace SampleFramework +{ + static class NativeMethods + { + [SuppressUnmanagedCodeSecurityAttribute] + [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)] + [return: MarshalAs(UnmanagedType.Bool)] + public static extern bool PeekMessage(out NativeMessage message, IntPtr hwnd, uint messageFilterMin, uint messageFilterMax, uint flags); + + [SuppressUnmanagedCodeSecurityAttribute] + [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)] + [return: MarshalAs(UnmanagedType.Bool)] + static extern bool GetClientRect(IntPtr hWnd, out NativeRectangle lpRect); + + [SuppressUnmanagedCodeSecurityAttribute] + [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)] + [return: MarshalAs(UnmanagedType.Bool)] + static extern bool GetWindowRect(IntPtr hWnd, out NativeRectangle lpRect); + + [SuppressUnmanagedCodeSecurityAttribute] + [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)] + [return: MarshalAs(UnmanagedType.Bool)] + public static extern bool GetWindowPlacement(IntPtr hWnd, ref WINDOWPLACEMENT lpwndpl); + + [SuppressUnmanagedCodeSecurityAttribute] + [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)] + [return: MarshalAs(UnmanagedType.Bool)] + public static extern bool SetWindowPlacement(IntPtr hWnd, ref WINDOWPLACEMENT lpwndpl); + + [SuppressUnmanagedCodeSecurityAttribute] + [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)] + public static extern uint SetWindowLong(IntPtr hWnd, int nIndex, uint dwNewLong); + + [SuppressUnmanagedCodeSecurityAttribute] + [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)] + public static extern uint GetWindowLong(IntPtr hWnd, int nIndex); + + [SuppressUnmanagedCodeSecurityAttribute] + [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)] + [return: MarshalAs(UnmanagedType.Bool)] + public static extern bool IsIconic(IntPtr hWnd); + + [SuppressUnmanagedCodeSecurityAttribute] + [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)] + [return: MarshalAs(UnmanagedType.Bool)] + public static extern bool IsZoomed(IntPtr hWnd); + + [SuppressUnmanagedCodeSecurityAttribute] + [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)] + [return: MarshalAs(UnmanagedType.Bool)] + public static extern bool ShowWindow(IntPtr hWnd, int nCmdShow); + + [SuppressUnmanagedCodeSecurityAttribute] + [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)] + [return: MarshalAs(UnmanagedType.Bool)] + public static extern bool AdjustWindowRect(ref NativeRectangle lpRect, uint dwStyle, [MarshalAs(UnmanagedType.Bool)]bool bMenu); + + [SuppressUnmanagedCodeSecurityAttribute] + [DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = false)] + public static extern uint SetThreadExecutionState(uint esFlags); + + [SuppressUnmanagedCodeSecurityAttribute] + [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)] + [return: MarshalAs(UnmanagedType.Bool)] + public static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int X, int Y, int cx, int cy, uint uFlags); + + [SuppressUnmanagedCodeSecurityAttribute] + [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)] + public static extern IntPtr MonitorFromWindow(IntPtr hwnd, uint dwFlags); + + public static Rectangle GetClientRectangle(IntPtr handle) + { + NativeRectangle rect; + if (!GetClientRect(handle, out rect)) + return Rectangle.Empty; + + return Rectangle.FromLTRB(rect.left, rect.top, rect.right, rect.bottom); + } + + public static Rectangle GetWindowRectangle(IntPtr handle) + { + NativeRectangle rect; + if (!GetWindowRect(handle, out rect)) + return Rectangle.Empty; + + return Rectangle.FromLTRB(rect.left, rect.top, rect.right, rect.bottom); + } + } +} diff --git a/FDK19/コード/01.フレームワーク/Win32/NativeStructures.cs b/FDK19/コード/01.フレームワーク/Win32/NativeStructures.cs new file mode 100644 index 00000000..3506cee4 --- /dev/null +++ b/FDK19/コード/01.フレームワーク/Win32/NativeStructures.cs @@ -0,0 +1,72 @@ +/* +* Copyright (c) 2007-2009 SlimDX Group +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +* THE SOFTWARE. +*/ +using System; +using System.Drawing; +using System.Runtime.InteropServices; + +namespace SampleFramework +{ + [StructLayout(LayoutKind.Sequential)] + struct NativeRectangle + { + public int left; + public int top; + public int right; + public int bottom; + } + + [StructLayout(LayoutKind.Sequential)] + struct NativeMessage + { + public IntPtr hWnd; + public uint msg; + public IntPtr wParam; + public IntPtr lParam; + public uint time; + public Point p; + } + + [StructLayout(LayoutKind.Sequential)] + struct WINDOWPLACEMENT + { + public int length; + public int flags; + public int showCmd; + public Point ptMinPosition; + public Point ptMaxPosition; + public NativeRectangle rcNormalPosition; + + public static int Length + { + get { return Marshal.SizeOf(typeof(WINDOWPLACEMENT)); } + } + } + #region #28821 2014.1.23 yyagi add: 外部からの文字列メッセージ送受信 定数定義 + [StructLayout( LayoutKind.Sequential )] + public struct COPYDATASTRUCT + { + public IntPtr dwData; + public UInt32 cbData; + public IntPtr lpData; + } + #endregion +} diff --git a/FDK19/コード/01.フレームワーク/Win32/WindowConstants.cs b/FDK19/コード/01.フレームワーク/Win32/WindowConstants.cs new file mode 100644 index 00000000..f212024c --- /dev/null +++ b/FDK19/コード/01.フレームワーク/Win32/WindowConstants.cs @@ -0,0 +1,77 @@ +/* +* Copyright (c) 2007-2009 SlimDX Group +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +* THE SOFTWARE. +*/ +using System; + +namespace SampleFramework +{ + static class WindowConstants + { + public const int WM_SIZE = 0x5; + public const int WM_SYSCOMMAND = 0x112; + public const int WM_ACTIVATEAPP = 0x001C; + public const int WM_POWERBROADCAST = 0x0218; + public const int WM_COPYDATA = 0x004A; + + public const int SC_SCREENSAVE = 0xF140; + public const int SC_MONITORPOWER = 0xF170; + + public const int VK_LWIN = 0x5B; + public const int VK_RWIN = 0x5C; + + public static readonly IntPtr SIZE_MINIMIZED = new IntPtr(1); + public static readonly IntPtr SIZE_MAXIMIZED = new IntPtr(2); + public static readonly IntPtr SIZE_RESTORED = new IntPtr(0); + + public static readonly IntPtr PBT_APMQUERYSUSPEND = new IntPtr(0x0000); + public static readonly IntPtr PBT_APMRESUMESUSPEND = new IntPtr(0x0007); + + public const int WPF_RESTORETOMAXIMIZED = 2; + + public const int SW_RESTORE = 9; + public const int SW_SHOWMINIMIZED = 2; + public const int SW_MAXIMIZE = 3; + public const int SW_SHOW = 5; + public const int SW_MINIMIZE = 6; + + public const int GWL_STYLE = -16; + public const int GWL_EXSTYLE = -20; + + public const long WS_MAXIMIZE = 0x01000000; + public const long WS_MINIMIZE = 0x20000000; + public const long WS_POPUP = 0x80000000; + public const long WS_SYSMENU = 0x00080000; + + public const long WS_EX_TOPMOST = 0x00000008; + + public const uint SWP_NOSIZE = 0x0001; + public const uint SWP_NOMOVE = 0x0002; + public const uint SWP_NOZORDER = 0x0004; + public const uint SWP_NOREDRAW = 0x0008; + + public const uint ES_CONTINUOUS = 0x80000000; + public const uint ES_DISPLAY_REQUIRED = 0x00000002; + + public const int MONITOR_DEFAULTTOPRIMARY = 1; + + public const int WM_USER = 0x400; + } +} diff --git a/FDK19/コード/02.入力/CInputJoystick.cs b/FDK19/コード/02.入力/CInputJoystick.cs new file mode 100644 index 00000000..90889d5e --- /dev/null +++ b/FDK19/コード/02.入力/CInputJoystick.cs @@ -0,0 +1,820 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Diagnostics; +using SharpDX; +using SharpDX.DirectInput; + +namespace FDK +{ + public class CInputJoystick : IInputDevice, IDisposable + { + // コンストラクタ + + public CInputJoystick( IntPtr hWnd, DeviceInstance di, DirectInput directInput ) + { + this.e入力デバイス種別 = E入力デバイス種別.Joystick; + this.GUID = di.InstanceGuid.ToString(); + this.ID = 0; + try + { + this.devJoystick = new Joystick( directInput, di.InstanceGuid ); + this.devJoystick.SetCooperativeLevel( hWnd, CooperativeLevel.Foreground | CooperativeLevel.Exclusive ); + this.devJoystick.Properties.BufferSize = 32; + Trace.TraceInformation( this.devJoystick.Information.InstanceName + "を生成しました。" ); + this.strDeviceName = this.devJoystick.Information.InstanceName; + } + catch + { + if( this.devJoystick != null ) + { + this.devJoystick.Dispose(); + this.devJoystick = null; + } + Trace.TraceError( this.devJoystick.Information.InstanceName, new object[] { " の生成に失敗しました。" } ); + throw; + } + foreach( DeviceObjectInstance instance in this.devJoystick.GetObjects() ) + { + if ((instance.ObjectId.Flags & DeviceObjectTypeFlags.Axis) != DeviceObjectTypeFlags.All) + { + this.devJoystick.GetObjectPropertiesById(instance.ObjectId).Range = new InputRange(-1000, 1000); + this.devJoystick.GetObjectPropertiesById(instance.ObjectId).DeadZone = 5000; // 50%をデッドゾーンに設定 + // 軸をON/OFFの2値で使うならこれで十分 + } + } + try + { + this.devJoystick.Acquire(); + } + catch + { + } + + for( int i = 0; i < this.bButtonState.Length; i++ ) + this.bButtonState[ i ] = false; + for ( int i = 0; i < this.nPovState.Length; i++ ) + this.nPovState[ i ] = -1; + + //this.timer = new CTimer( CTimer.E種別.MultiMedia ); + + this.list入力イベント = new List(32); + } + + + // メソッド + + public void SetID( int nID ) + { + this.ID = nID; + } + + #region [ IInputDevice 実装 ] + //----------------- + public E入力デバイス種別 e入力デバイス種別 + { + get; + private set; + } + public string GUID + { + get; + private set; + } + public int ID + { + get; + private set; + } + public List list入力イベント + { + get; + private set; + } + public string strDeviceName + { + get; + set; + } + + #region [ ローカル関数 ] + private void POVの処理(int p, JoystickUpdate data) + { + int nPovDegree = data.Value; + STInputEvent e = new STInputEvent(); + int nWay = (nPovDegree + 2250) / 4500; + if (nWay == 8) nWay = 0; + //Debug.WriteLine( "POVS:" + povs[ 0 ].ToString( CultureInfo.CurrentCulture ) + ", " +stevent.nKey ); + //Debug.WriteLine( "nPovDegree=" + nPovDegree ); + if (nPovDegree == -1) + { + e.nKey = 8 + 128 + this.nPovState[p]; + this.nPovState[p] = -1; + //Debug.WriteLine( "POVS離された" + data.TimeStamp + " " + e.nKey ); + e.b押された = false; + e.nVelocity = 0; + this.bButtonState[e.nKey] = false; + this.bButtonPullUp[e.nKey] = true; + } + else + { + this.nPovState[p] = nWay; + e.nKey = 8 + 128 + nWay; + e.b押された = true; + e.nVelocity = CInput管理.n通常音量; + this.bButtonState[e.nKey] = true; + this.bButtonPushDown[e.nKey] = true; + //Debug.WriteLine( "POVS押された" + data.TimeStamp + " " + e.nKey ); + } + //e.nTimeStamp = data.TimeStamp; + e.nTimeStamp = CSound管理.rc演奏用タイマ.nサウンドタイマーのシステム時刻msへの変換(data.Timestamp); + this.list入力イベント.Add(e); + } + #endregion + + public void tポーリング(bool bWindowがアクティブ中, bool bバッファ入力を使用する) + { + #region [ bButtonフラグ初期化 ] + for ( int i = 0; i < 256; i++ ) + { + this.bButtonPushDown[i] = false; + this.bButtonPullUp[i] = false; + } + #endregion + + if (bWindowがアクティブ中) + { + this.devJoystick.Acquire(); + this.devJoystick.Poll(); + + // this.list入力イベント = new List( 32 ); + this.list入力イベント.Clear(); // #xxxxx 2012.6.11 yyagi; To optimize, I removed new(); + + + if( bバッファ入力を使用する ) + { + #region [ a.バッファ入力 ] + //----------------------------- + + var bufferedData = this.devJoystick.GetBufferedData(); + //if( Result.Last.IsSuccess && bufferedData != null ) + { + foreach (JoystickUpdate data in bufferedData) + { + switch (data.Offset) + { + case JoystickOffset.X: + #region [ X軸- ] + //----------------------------- + bButtonUpDown(data, data.Value, 0, 1); + //----------------------------- + #endregion + #region [ X軸+ ] + //----------------------------- + bButtonUpDown(data, data.Value, 1, 0); + //----------------------------- + #endregion + break; + case JoystickOffset.Y: + #region [ Y軸- ] + //----------------------------- + bButtonUpDown(data, data.Value, 2, 3); + //----------------------------- + #endregion + #region [ Y軸+ ] + //----------------------------- + bButtonUpDown(data, data.Value, 3, 2); + //----------------------------- + #endregion + break; + case JoystickOffset.Z: + #region [ Z軸- ] + //----------------------------- + bButtonUpDown(data, data.Value, 4, 5); + //----------------------------- + #endregion + #region [ Z軸+ ] + //----------------------------- + bButtonUpDown(data, data.Value, 5, 4); + //----------------------------- + #endregion + break; + case JoystickOffset.RotationZ: + #region [ Z軸- ] + //----------------------------- + bButtonUpDown(data, data.Value, 6, 7); + //----------------------------- + #endregion + #region [ Z軸+ ] + //----------------------------- + bButtonUpDown(data, data.Value, 7, 6); + //----------------------------- + #endregion + break; + // #24341 2011.3.12 yyagi: POV support + // #26880 2011.12.6 yyagi: improve to support "pullup" of POV buttons + case JoystickOffset.PointOfViewControllers0: + #region [ POV HAT 4/8way ] + POVの処理(0, data); + #endregion + break; + case JoystickOffset.PointOfViewControllers1: + #region [ POV HAT 4/8way ] + POVの処理(1, data); + #endregion + break; + case JoystickOffset.PointOfViewControllers2: + #region [ POV HAT 4/8way ] + POVの処理(2, data); + #endregion + break; + case JoystickOffset.PointOfViewControllers3: + #region [ POV HAT 4/8way ] + POVの処理(3, data); + #endregion + break; + default: + #region [ ボタン ] + //----------------------------- + + //for ( int i = 0; i < 32; i++ ) + if (data.Offset >= JoystickOffset.Buttons0 && data.Offset <= JoystickOffset.Buttons31) + { + int i = data.Offset - JoystickOffset.Buttons0; + + if ((data.Value & 0x80) != 0) + { + STInputEvent e = new STInputEvent() + { + nKey = 8 + i, + b押された = true, + b離された = false, + nTimeStamp = CSound管理.rc演奏用タイマ.nサウンドタイマーのシステム時刻msへの変換(data.Timestamp), + nVelocity = CInput管理.n通常音量 + }; + this.list入力イベント.Add(e); + + this.bButtonState[8 + i] = true; + this.bButtonPushDown[8 + i] = true; + } + else //if ( ( data.Value & 0x80 ) == 0 ) + { + var ev = new STInputEvent() + { + nKey = 8 + i, + b押された = false, + b離された = true, + nTimeStamp = CSound管理.rc演奏用タイマ.nサウンドタイマーのシステム時刻msへの変換(data.Timestamp), + nVelocity = CInput管理.n通常音量, + }; + this.list入力イベント.Add(ev); + + this.bButtonState[8 + i] = false; + this.bButtonPullUp[8 + i] = true; + } + } + //----------------------------- + #endregion + break; + } + } + } + //----------------------------- + #endregion + } + else + { + #region [ b.状態入力 ] + //----------------------------- + JoystickState currentState = this.devJoystick.GetCurrentState(); + //if( Result.Last.IsSuccess && currentState != null ) + { + #region [ X軸- ] + //----------------------------- + if( currentState.X < -500 ) + { + if( this.bButtonState[ 0 ] == false ) + { + STInputEvent ev = new STInputEvent() + { + nKey = 0, + b押された = true, + nTimeStamp = CSound管理.rc演奏用タイマ.nシステム時刻, // 演奏用タイマと同じタイマを使うことで、BGMと譜面、入力ずれを防ぐ。 + nVelocity = CInput管理.n通常音量 + }; + this.list入力イベント.Add(ev); + + this.bButtonState[0] = true; + this.bButtonPushDown[0] = true; + } + } + else + { + if( this.bButtonState[0] == true ) + { + STInputEvent ev = new STInputEvent() + { + nKey = 0, + b押された = false, + nTimeStamp = CSound管理.rc演奏用タイマ.nシステム時刻, // 演奏用タイマと同じタイマを使うことで、BGMと譜面、入力ずれを防ぐ。 + nVelocity = CInput管理.n通常音量 + }; + this.list入力イベント.Add(ev); + + this.bButtonState[0] = false; + this.bButtonPullUp[0] = true; + } + } + //----------------------------- + #endregion + #region [ X軸+ ] + //----------------------------- + if(currentState.X > 500) + { + if(this.bButtonState[1] == false) + { + STInputEvent ev = new STInputEvent() + { + nKey = 1, + b押された = true, + nTimeStamp = CSound管理.rc演奏用タイマ.nシステム時刻, // 演奏用タイマと同じタイマを使うことで、BGMと譜面、入力ずれを防ぐ。 + nVelocity = CInput管理.n通常音量 + }; + this.list入力イベント.Add(ev); + + this.bButtonState[1] = true; + this.bButtonPushDown[1] = true; + } + } + else + { + if(this.bButtonState[1] == true) + { + STInputEvent event7 = new STInputEvent() + { + nKey = 1, + b押された = false, + nTimeStamp = CSound管理.rc演奏用タイマ.nシステム時刻, // 演奏用タイマと同じタイマを使うことで、BGMと譜面、入力ずれを防ぐ。 + nVelocity = CInput管理.n通常音量 + }; + this.list入力イベント.Add(event7); + + this.bButtonState[1] = false; + this.bButtonPullUp[1] = true; + } + } + //----------------------------- + #endregion + #region [ Y軸- ] + //----------------------------- + if(currentState.Y < -500) + { + if(this.bButtonState[ 2 ] == false) + { + STInputEvent ev = new STInputEvent() + { + nKey = 2, + b押された = true, + nTimeStamp = CSound管理.rc演奏用タイマ.nシステム時刻, // 演奏用タイマと同じタイマを使うことで、BGMと譜面、入力ずれを防ぐ。 + nVelocity = CInput管理.n通常音量 + }; + this.list入力イベント.Add(ev); + + this.bButtonState[2] = true; + this.bButtonPushDown[2] = true; + } + } + else + { + if(this.bButtonState[2] == true) + { + STInputEvent ev = new STInputEvent() + { + nKey = 2, + b押された = false, + nTimeStamp = CSound管理.rc演奏用タイマ.nシステム時刻, // 演奏用タイマと同じタイマを使うことで、BGMと譜面、入力ずれを防ぐ。 + nVelocity = CInput管理.n通常音量 + }; + this.list入力イベント.Add(ev); + + this.bButtonState[2] = false; + this.bButtonPullUp[2] = true; + } + } + //----------------------------- + #endregion + #region [ Y軸+ ] + //----------------------------- + if(currentState.Y > 500) + { + if(this.bButtonState[3] == false) + { + STInputEvent ev = new STInputEvent() + { + nKey = 3, + b押された = true, + nTimeStamp = CSound管理.rc演奏用タイマ.nシステム時刻, // 演奏用タイマと同じタイマを使うことで、BGMと譜面、入力ずれを防ぐ。 + nVelocity = CInput管理.n通常音量 + }; + this.list入力イベント.Add(ev); + + this.bButtonState[3] = true; + this.bButtonPushDown[3] = true; + } + } + else + { + if(this.bButtonState[3] == true) + { + STInputEvent ev = new STInputEvent() + { + nKey = 3, + b押された = false, + nTimeStamp = CSound管理.rc演奏用タイマ.nシステム時刻, // 演奏用タイマと同じタイマを使うことで、BGMと譜面、入力ずれを防ぐ。 + nVelocity = CInput管理.n通常音量 + }; + this.list入力イベント.Add(ev); + + this.bButtonState[3] = false; + this.bButtonPullUp[3] = true; + } + } + //----------------------------- + #endregion + #region [ Z軸- ] + //----------------------------- + if(currentState.Z < -500) + { + if(this.bButtonState[4] == false) + { + STInputEvent ev = new STInputEvent() + { + nKey = 4, + b押された = true, + nTimeStamp = CSound管理.rc演奏用タイマ.nシステム時刻, // 演奏用タイマと同じタイマを使うことで、BGMと譜面、入力ずれを防ぐ。 + nVelocity = CInput管理.n通常音量 + }; + this.list入力イベント.Add(ev); + + this.bButtonState[4] = true; + this.bButtonPushDown[4] = true; + } + } + else + { + if(this.bButtonState[4] == true) + { + STInputEvent ev = new STInputEvent() + { + nKey = 4, + b押された = false, + nTimeStamp = CSound管理.rc演奏用タイマ.nシステム時刻, // 演奏用タイマと同じタイマを使うことで、BGMと譜面、入力ずれを防ぐ。 + nVelocity = CInput管理.n通常音量 + }; + this.list入力イベント.Add(ev); + + this.bButtonState[4] = false; + this.bButtonPullUp[4] = true; + } + } + //----------------------------- + #endregion + #region [ Z軸+ ] + //----------------------------- + if(currentState.Z > 500) + { + if( this.bButtonState[5] == false ) + { + STInputEvent ev = new STInputEvent() + { + nKey = 5, + b押された = true, + nTimeStamp = CSound管理.rc演奏用タイマ.nシステム時刻, // 演奏用タイマと同じタイマを使うことで、BGMと譜面、入力ずれを防ぐ。 + nVelocity = CInput管理.n通常音量 + }; + this.list入力イベント.Add( ev ); + + this.bButtonState[5] = true; + this.bButtonPushDown[5] = true; + } + } + else + { + if(this.bButtonState[5] == true) + { + STInputEvent event15 = new STInputEvent() + { + nKey = 5, + b押された = false, + nTimeStamp = CSound管理.rc演奏用タイマ.nシステム時刻, // 演奏用タイマと同じタイマを使うことで、BGMと譜面、入力ずれを防ぐ。 + nVelocity = CInput管理.n通常音量 + }; + this.list入力イベント.Add(event15); + + this.bButtonState[5] = false; + this.bButtonPullUp[5] = true; + } + } + //----------------------------- + #endregion + #region [ Z軸回転- ] + //----------------------------- + if (currentState.RotationZ < -500) + { + if (this.bButtonState[6] == false) + { + STInputEvent ev = new STInputEvent() + { + nKey = 6, + b押された = true, + nTimeStamp = CSound管理.rc演奏用タイマ.nシステム時刻, // 演奏用タイマと同じタイマを使うことで、BGMと譜面、入力ずれを防ぐ。 + nVelocity = CInput管理.n通常音量 + }; + this.list入力イベント.Add(ev); + + this.bButtonState[6] = true; + this.bButtonPushDown[6] = true; + } + } + else + { + if (this.bButtonState[6] == true) + { + STInputEvent ev = new STInputEvent() + { + nKey = 6, + b押された = false, + nTimeStamp = CSound管理.rc演奏用タイマ.nシステム時刻, // 演奏用タイマと同じタイマを使うことで、BGMと譜面、入力ずれを防ぐ。 + nVelocity = CInput管理.n通常音量 + }; + this.list入力イベント.Add(ev); + + this.bButtonState[6] = false; + this.bButtonPullUp[6] = true; + } + } + //----------------------------- + #endregion + #region [ Z軸回転+ ] + //----------------------------- + if (currentState.RotationZ > 500) + { + if (this.bButtonState[7] == false) + { + STInputEvent ev = new STInputEvent() + { + nKey = 7, + b押された = true, + nTimeStamp = CSound管理.rc演奏用タイマ.nシステム時刻, // 演奏用タイマと同じタイマを使うことで、BGMと譜面、入力ずれを防ぐ。 + nVelocity = CInput管理.n通常音量 + }; + this.list入力イベント.Add(ev); + + this.bButtonState[7] = true; + this.bButtonPushDown[7] = true; + } + } + else + { + if (this.bButtonState[7] == true) + { + STInputEvent event15 = new STInputEvent() + { + nKey = 7, + b押された = false, + nTimeStamp = CSound管理.rc演奏用タイマ.nシステム時刻, // 演奏用タイマと同じタイマを使うことで、BGMと譜面、入力ずれを防ぐ。 + nVelocity = CInput管理.n通常音量 + }; + this.list入力イベント.Add(event15); + + this.bButtonState[7] = false; + this.bButtonPullUp[7] = true; + } + } + //----------------------------- + #endregion + #region [ ボタン ] + //----------------------------- + bool bIsButtonPressedReleased = false; + bool[] buttons = currentState.Buttons; + for (int j = 0; (j < buttons.Length) && (j < 128); j++) + { + if (this.bButtonState[8 + j] == false && buttons[j]) + { + STInputEvent item = new STInputEvent() + { + nKey = 8 + j, + b押された = true, + nTimeStamp = CSound管理.rc演奏用タイマ.nシステム時刻, // 演奏用タイマと同じタイマを使うことで、BGMと譜面、入力ずれを防ぐ。 + nVelocity = CInput管理.n通常音量 + }; + this.list入力イベント.Add(item); + + this.bButtonState[8 + j] = true; + this.bButtonPushDown[8 + j] = true; + bIsButtonPressedReleased = true; + } + else if( this.bButtonState[8 + j] == true && !buttons[j] ) + { + STInputEvent item = new STInputEvent() + { + nKey = 8 + j, + b押された = false, + nTimeStamp = CSound管理.rc演奏用タイマ.nシステム時刻, // 演奏用タイマと同じタイマを使うことで、BGMと譜面、入力ずれを防ぐ。 + nVelocity = CInput管理.n通常音量 + }; + this.list入力イベント.Add(item); + + this.bButtonState[8 + j] = false; + this.bButtonPullUp[8 + j] = true; + bIsButtonPressedReleased = true; + } + } + //----------------------------- + #endregion + // #24341 2011.3.12 yyagi: POV support + #region [ POV HAT 4/8way (only single POV switch is supported)] + int[] povs = currentState.PointOfViewControllers; + if (povs != null) + { + if ( povs[0] >= 0 ) + { + int nPovDegree = povs[0]; + int nWay = (nPovDegree + 2250) / 4500; + if (nWay == 8) nWay = 0; + + if (this.bButtonState[8 + 128 + nWay] == false) + { + STInputEvent stevent = new STInputEvent() + { + nKey = 8 + 128 + nWay, + //Debug.WriteLine( "POVS:" + povs[ 0 ].ToString( CultureInfo.CurrentCulture ) + ", " +stevent.nKey ); + b押された = true, + nTimeStamp = CSound管理.rc演奏用タイマ.nシステム時刻, // 演奏用タイマと同じタイマを使うことで、BGMと譜面、入力ずれを防ぐ。 + nVelocity = CInput管理.n通常音量 + }; + this.list入力イベント.Add(stevent); + + this.bButtonState[stevent.nKey] = true; + this.bButtonPushDown[stevent.nKey] = true; + } + } + else if (bIsButtonPressedReleased == false) // #xxxxx 2011.12.3 yyagi 他のボタンが何も押され/離されてない=POVが離された + { + int nWay = 0; + for (int i = 8 + 0x80; i < 8 + 0x80 + 8; i++) + { // 離されたボタンを調べるために、元々押されていたボタンを探す。 + if (this.bButtonState[i] == true) // DirectInputを直接いじるならこんなことしなくて良いのに、あぁ面倒。 + { // この処理が必要なために、POVを1個しかサポートできない。無念。 + nWay = i; + break; + } + } + if (nWay != 0) + { + STInputEvent stevent = new STInputEvent() + { + nKey = nWay, + b押された = false, + nTimeStamp = CSound管理.rc演奏用タイマ.nシステム時刻, // 演奏用タイマと同じタイマを使うことで、BGMと譜面、入力ずれを防ぐ。 + nVelocity = 0 + }; + this.list入力イベント.Add(stevent); + + this.bButtonState[nWay] = false; + this.bButtonPullUp[nWay] = true; + } + } + } + #endregion + } + //----------------------------- + #endregion + } + } + } + + public bool bキーが押された(int nButton) + { + return this.bButtonPushDown[nButton]; + } + public bool bキーが押されている(int nButton) + { + return this.bButtonState[nButton]; + } + public bool bキーが離された(int nButton) + { + return this.bButtonPullUp[nButton]; + } + public bool bキーが離されている(int nButton) + { + return !this.bButtonState[nButton]; + } + //----------------- + #endregion + + #region [ IDisposable 実装 ] + //----------------- + public void Dispose() + { + if(!this.bDispose完了済み) + { + if(this.devJoystick != null) + { + this.devJoystick.Dispose(); + this.devJoystick = null; + } + //if( this.timer != null ) + //{ + // this.timer.Dispose(); + // this.timer = null; + //} + if (this.list入力イベント != null) + { + this.list入力イベント = null; + } + this.bDispose完了済み = true; + } + } + //----------------- + #endregion + + + // その他 + + #region [ private ] + //----------------- + private bool[] bButtonPullUp = new bool[0x100]; + private bool[] bButtonPushDown = new bool[0x100]; + private bool[] bButtonState = new bool[0x100]; // 0-5: XYZ, 6 - 0x128+5: buttons, 0x128+6 - 0x128+6+8: POV/HAT + private int[] nPovState = new int[4]; + private bool bDispose完了済み; + private Joystick devJoystick; + //private CTimer timer; + + private void bButtonUpDown(JoystickUpdate data, int axisdata, int target, int contrary) // #26871 2011.12.3 軸の反転に対応するためにリファクタ + { + int targetsign = (target < contrary) ? -1 : 1; + if (Math.Abs(axisdata) > 500 && (targetsign == Math.Sign(axisdata))) // 軸の最大値の半分を超えていて、かつ + { + if (bDoUpDownCore(target, data, false)) // 直前までは超えていなければ、今回ON + { + //Debug.WriteLine( "X-ON " + data.TimeStamp + " " + axisdata ); + } + else + { + //Debug.WriteLine( "X-ONx " + data.TimeStamp + " " + axisdata ); + } + bDoUpDownCore(contrary, data, true); // X軸+ == ON から X軸-のONレンジに来たら、X軸+はOFF + } + else if ((axisdata <= 0 && targetsign <= 0) || (axisdata >= 0 && targetsign >= 0)) // 軸の最大値の半分を超えておらず、かつ + { + //Debug.WriteLine( "X-OFF? " + data.TimeStamp + " " + axisdata ); + if (bDoUpDownCore(target, data, true)) // 直前までは超えていたのならば、今回OFF + { + //Debug.WriteLine( "X-OFF " + data.TimeStamp + " " + axisdata ); + } + else if (bDoUpDownCore(contrary, data, true)) // X軸+ == ON から X軸-のOFFレンジにきたら、X軸+はOFF + { + //Debug.WriteLine( "X-OFFx " + data.TimeStamp + " " + axisdata ); + } + } + } + + /// + /// 必要に応じて軸ボタンの上げ下げイベントを発生する + /// + /// 軸ボタン番号 0=-X 1=+X ... 5=+Z + /// + /// 直前のボタン状態 true=押されていた + /// 上げ下げイベント発生時true + private bool bDoUpDownCore(int target, JoystickUpdate data, bool lastMode) + { + if ( this.bButtonState[target] == lastMode ) + { + STInputEvent e = new STInputEvent() + { + nKey = target, + b押された = !lastMode, + nTimeStamp = CSound管理.rc演奏用タイマ.nサウンドタイマーのシステム時刻msへの変換(data.Timestamp), + nVelocity = (lastMode) ? 0 : CInput管理.n通常音量 + }; + this.list入力イベント.Add(e); + + this.bButtonState[target] = !lastMode; + if (lastMode) + { + this.bButtonPullUp[target] = true; + } + else + { + this.bButtonPushDown[target] = true; + } + return true; + } + return false; + } + //----------------- + #endregion + } +} diff --git a/FDK19/コード/02.入力/CInputKeyboard.cs b/FDK19/コード/02.入力/CInputKeyboard.cs new file mode 100644 index 00000000..44d49609 --- /dev/null +++ b/FDK19/コード/02.入力/CInputKeyboard.cs @@ -0,0 +1,296 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Diagnostics; +using SharpDX; +using SharpDX.DirectInput; + +using SlimDXKey = SlimDXKeys.Key; +using SharpDXKey = SharpDX.DirectInput.Key; + +namespace FDK +{ + public class CInputKeyboard : IInputDevice, IDisposable + { + // コンストラクタ + + public CInputKeyboard(IntPtr hWnd, DirectInput directInput) + { + this.e入力デバイス種別 = E入力デバイス種別.Keyboard; + this.GUID = ""; + this.ID = 0; + try + { + this.devKeyboard = new Keyboard(directInput); + this.devKeyboard.SetCooperativeLevel(hWnd, CooperativeLevel.NoWinKey | CooperativeLevel.Foreground | CooperativeLevel.NonExclusive); + this.devKeyboard.Properties.BufferSize = 32; + Trace.TraceInformation(this.devKeyboard.Information.ProductName.Trim(new char[] { '\0' }) + " を生成しました。"); // なぜか0x00のゴミが出るので削除 + this.strDeviceName = this.devKeyboard.Information.ProductName.Trim(new char[] { '\0' }); + } + catch + { + if(this.devKeyboard != null) + { + this.devKeyboard.Dispose(); + this.devKeyboard = null; + } + Trace.TraceWarning("Keyboard デバイスの生成に失敗しました。"); + throw; + } + try + { + this.devKeyboard.Acquire(); + } + catch + { + } + + for (int i = 0; i < this.bKeyState.Length; i++) + this.bKeyState[i] = false; + + //this.timer = new CTimer( CTimer.E種別.MultiMedia ); + this.list入力イベント = new List(32); + // this.ct = new CTimer( CTimer.E種別.PerformanceCounter ); + } + + + // メソッド + + #region [ IInputDevice 実装 ] + //----------------- + public E入力デバイス種別 e入力デバイス種別 { get; private set; } + public string GUID { get; private set; } + public int ID { get; private set; } + public List list入力イベント { get; private set; } + public string strDeviceName { get; set; } + + public void tポーリング(bool bWindowがアクティブ中, bool bバッファ入力を使用する) + { + for (int i = 0; i < 256; i++) + { + this.bKeyPushDown[i] = false; + this.bKeyPullUp[i] = false; + } + + if (bWindowがアクティブ中 && (this.devKeyboard != null)) + { + this.devKeyboard.Acquire(); + this.devKeyboard.Poll(); + + //this.list入力イベント = new List( 32 ); + this.list入力イベント.Clear(); // #xxxxx 2012.6.11 yyagi; To optimize, I removed new(); + int posEnter = -1; + //string d = DateTime.Now.ToString( "yyyy/MM/dd HH:mm:ss.ffff" ); + + if (bバッファ入力を使用する) + { + #region [ a.バッファ入力 ] + //----------------------------- + var bufferedData = this.devKeyboard.GetBufferedData(); + //if ( Result.Last.IsSuccess && bufferedData != null ) + { + foreach (KeyboardUpdate data in bufferedData) + { + // #xxxxx: 2017.5.7: from: DIK (SharpDX.DirectInput.Key) を SlimDX.DirectInput.Key に変換。 + var key = DeviceConstantConverter.DIKtoKey(data.Key); + if (SlimDXKey.Unknown == key) + continue; // 未対応キーは無視。 + + //foreach ( Key key in data.PressedKeys ) + if (data.IsPressed) + { + // #23708 2016.3.19 yyagi; Even if we remove ALT+ENTER key input by SuppressKeyPress = true in Form, + // it doesn't affect to DirectInput (ALT+ENTER does not remove) + // So we ignore ENTER input in ALT+ENTER combination here. + // Note: ENTER will be alived if you keyup ALT after ALT+ENTER. + if (key != SlimDXKey.Return || (bKeyState[(int)SlimDXKey.LeftAlt] == false && bKeyState[(int)SlimDXKey.RightAlt] == false)) + { + STInputEvent item = new STInputEvent() + { + nKey = (int)key, + b押された = true, + b離された = false, + nTimeStamp = CSound管理.rc演奏用タイマ.nサウンドタイマーのシステム時刻msへの変換(data.Timestamp), + nVelocity = CInput管理.n通常音量 + }; + this.list入力イベント.Add(item); + + this.bKeyState[(int)key] = true; + this.bKeyPushDown[(int)key] = true; + } + //if ( item.nKey == (int) SlimDXKey.Space ) + //{ + // Trace.TraceInformation( "FDK(buffered): SPACE key registered. " + ct.nシステム時刻 ); + //} + } + //foreach ( Key key in data.ReleasedKeys ) + if (data.IsReleased) + { + STInputEvent item = new STInputEvent() + { + nKey = (int)key, + b押された = false, + b離された = true, + nTimeStamp = CSound管理.rc演奏用タイマ.nサウンドタイマーのシステム時刻msへの変換(data.Timestamp), + nVelocity = CInput管理.n通常音量 + }; + this.list入力イベント.Add(item); + this.bKeyState[(int)key] = false; + this.bKeyPullUp[(int)key] = true; + } + } + } + //----------------------------- + #endregion + } + else + { + #region [ b.状態入力 ] + //----------------------------- + KeyboardState currentState = this.devKeyboard.GetCurrentState(); + //if ( Result.Last.IsSuccess && currentState != null ) + { + foreach (SharpDXKey dik in currentState.PressedKeys) + { + // #xxxxx: 2017.5.7: from: DIK (SharpDX.DirectInput.Key) を SlimDX.DirectInput.Key に変換。 + var key = DeviceConstantConverter.DIKtoKey(dik); + if (SlimDXKey.Unknown == key) + continue; // 未対応キーは無視。 + + if (this.bKeyState[(int)key] == false) + { + if (key != SlimDXKey.Return || (bKeyState[(int)SlimDXKey.LeftAlt] == false && bKeyState[(int)SlimDXKey.RightAlt] == false)) // #23708 2016.3.19 yyagi + { + var ev = new STInputEvent() + { + nKey = (int)key, + b押された = true, + b離された = false, + nTimeStamp = CSound管理.rc演奏用タイマ.nシステム時刻, // 演奏用タイマと同じタイマを使うことで、BGMと譜面、入力ずれを防ぐ。 + nVelocity = CInput管理.n通常音量, + }; + this.list入力イベント.Add(ev); + + this.bKeyState[(int)key] = true; + this.bKeyPushDown[(int)key] = true; + } + + //if ( (int) key == (int) SlimDXKey.Space ) + //{ + // Trace.TraceInformation( "FDK(direct): SPACE key registered. " + ct.nシステム時刻 ); + //} + } + } + //foreach ( Key key in currentState.ReleasedKeys ) + foreach (SharpDXKey dik in currentState.AllKeys) + { + // #xxxxx: 2017.5.7: from: DIK (SharpDX.DirectInput.Key) を SlimDX.DirectInput.Key に変換。 + var key = DeviceConstantConverter.DIKtoKey(dik); + if (SlimDXKey.Unknown == key) + continue; // 未対応キーは無視。 + + if (this.bKeyState[(int)key] == true && !currentState.IsPressed(dik)) // 前回は押されているのに今回は押されていない → 離された + { + var ev = new STInputEvent() + { + nKey = (int)key, + b押された = false, + b離された = true, + nTimeStamp = CSound管理.rc演奏用タイマ.nシステム時刻, // 演奏用タイマと同じタイマを使うことで、BGMと譜面、入力ずれを防ぐ。 + nVelocity = CInput管理.n通常音量, + }; + this.list入力イベント.Add(ev); + + this.bKeyState[(int) key] = false; + this.bKeyPullUp[(int) key] = true; + } + } + } + //----------------------------- + #endregion + } + #region [#23708 2011.4.8 yyagi Altが押されているときは、Enter押下情報を削除する -> 副作用が見つかり削除] + //if ( this.bKeyState[ (int) SlimDXKey.RightAlt ] || + // this.bKeyState[ (int) SlimDXKey.LeftAlt ] ) + //{ + // int cr = (int) SlimDXKey.Return; + // this.bKeyPushDown[ cr ] = false; + // this.bKeyPullUp[ cr ] = false; + // this.bKeyState[ cr ] = false; + //} + #endregion + } + } + /// + /// 調べる SlimDX.DirectInput.Key を int にキャストした値。(SharpDX.DirectInput.Key ではないので注意。) + /// + public bool bキーが押された(int nKey) + { + return this.bKeyPushDown[nKey]; + } + /// + /// 調べる SlimDX.DirectInput.Key を int にキャストした値。(SharpDX.DirectInput.Key ではないので注意。) + /// + public bool bキーが押されている(int nKey) + { + return this.bKeyState[ nKey ]; + } + /// + /// 調べる SlimDX.DirectInput.Key を int にキャストした値。(SharpDX.DirectInput.Key ではないので注意。) + /// + public bool bキーが離された(int nKey) + { + return this.bKeyPullUp[nKey]; + } + /// + /// 調べる SlimDX.DirectInput.Key を int にキャストした値。(SharpDX.DirectInput.Key ではないので注意。) + /// + public bool bキーが離されている(int nKey) + { + return !this.bKeyState[nKey]; + } + //----------------- + #endregion + + #region [ IDisposable 実装 ] + //----------------- + public void Dispose() + { + if(!this.bDispose完了済み) + { + if(this.devKeyboard != null) + { + this.devKeyboard.Dispose(); + this.devKeyboard = null; + } + //if( this.timer != null ) + //{ + // this.timer.Dispose(); + // this.timer = null; + //} + if (this.list入力イベント != null) + { + this.list入力イベント = null; + } + this.bDispose完了済み = true; + } + } + //----------------- + #endregion + + + // その他 + + #region [ private ] + //----------------- + private bool[] bKeyPullUp = new bool[256]; + private bool[] bKeyPushDown = new bool[256]; + private bool[] bKeyState = new bool[256]; + private bool bDispose完了済み; + private Keyboard devKeyboard; + //private CTimer timer; + //private CTimer ct; + //----------------- + #endregion + } +} diff --git a/FDK19/コード/02.入力/CInputMIDI.cs b/FDK19/コード/02.入力/CInputMIDI.cs new file mode 100644 index 00000000..8b8308d9 --- /dev/null +++ b/FDK19/コード/02.入力/CInputMIDI.cs @@ -0,0 +1,124 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Diagnostics; + +namespace FDK +{ + public class CInputMIDI : IInputDevice, IDisposable + { + // プロパティ + + public IntPtr hMidiIn; + public List listEventBuffer; + + // コンストラクタ + + public CInputMIDI(uint nID) + { + this.hMidiIn = IntPtr.Zero; + this.listEventBuffer = new List(32); + this.list入力イベント = new List(32); + this.e入力デバイス種別 = E入力デバイス種別.MidiIn; + this.GUID = ""; + this.ID = (int)nID; + this.strDeviceName = ""; // CInput管理で初期化する + } + + + // メソッド + + public void tメッセージからMIDI信号のみ受信(uint wMsg, IntPtr dwInstance, IntPtr dwParam1, IntPtr dwParam2, long n受信システム時刻) + { + if (wMsg == CWin32.MIM_DATA) + { + int nMIDIevent = (int)dwParam1 & 0xF0; + int nPara1 = ((int)dwParam1 >> 8) & 0xFF; + int nPara2 = ((int)dwParam1 >> 16) & 0xFF; + int nPara3 = ((int)dwParam2 >> 8) & 0xFF; + int nPara4 = ((int)dwParam2 >> 16) & 0xFF; + + // Trace.TraceInformation( "MIDIevent={0:X2} para1={1:X2} para2={2:X2}", nMIDIevent, nPara1, nPara2 ,nPara3,nPara4); + + if ((nMIDIevent == 0x90) && (nPara2 != 0)) // Note ON + { + STInputEvent item = new STInputEvent(); + item.nKey = nPara1; + item.b押された = true; + item.nTimeStamp = n受信システム時刻; + item.nVelocity = nPara2; + this.listEventBuffer.Add(item); + } + //else if ( ( nMIDIevent == 0xB0 ) && ( nPara1 == 4 ) ) // Ctrl Chg #04: Foot Controller + //{ + // STInputEvent item = new STInputEvent(); + // item.nKey = nPara1; + // item.b押された = true; + // item.nTimeStamp = n受信システム時刻; + // item.nVelocity = nPara2; + // this.listEventBuffer.Add( item ); + //} + } + } + + #region [ IInputDevice 実装 ] + //----------------- + public E入力デバイス種別 e入力デバイス種別 { get; private set; } + public string GUID { get; private set; } + public int ID { get; private set; } + public List list入力イベント { get; private set; } + public string strDeviceName { get; set; } + + public void tポーリング(bool bWindowがアクティブ中, bool bバッファ入力を使用する) + { + // this.list入力イベント = new List( 32 ); + this.list入力イベント.Clear(); // #xxxxx 2012.6.11 yyagi; To optimize, I removed new(); + + for (int i = 0; i < this.listEventBuffer.Count; i++) + this.list入力イベント.Add(this.listEventBuffer[i]); + + this.listEventBuffer.Clear(); + } + public bool bキーが押された(int nKey) + { + foreach (STInputEvent event2 in this.list入力イベント) + { + if ((event2.nKey == nKey) && event2.b押された) + { + return true; + } + } + return false; + } + public bool bキーが押されている(int nKey) + { + return false; + } + public bool bキーが離された(int nKey) + { + return false; + } + public bool bキーが離されている(int nKey) + { + return false; + } + //----------------- + #endregion + + #region [ IDisposable 実装 ] + //----------------- + public void Dispose() + { + if (this.listEventBuffer != null) + { + this.listEventBuffer = null; + } + if (this.list入力イベント != null) + { + this.list入力イベント = null; + } + } + //----------------- + #endregion + } +} diff --git a/FDK19/コード/02.入力/CInputMouse.cs b/FDK19/コード/02.入力/CInputMouse.cs new file mode 100644 index 00000000..01d2dd9c --- /dev/null +++ b/FDK19/コード/02.入力/CInputMouse.cs @@ -0,0 +1,251 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Diagnostics; +using SharpDX; +using SharpDX.DirectInput; + +namespace FDK +{ + public class CInputMouse : IInputDevice, IDisposable + { + // 定数 + + public const int nマウスの最大ボタン数 = 8; + + + // コンストラクタ + + public CInputMouse(IntPtr hWnd, DirectInput directInput) + { + this.e入力デバイス種別 = E入力デバイス種別.Mouse; + this.GUID = ""; + this.ID = 0; + try + { + this.devMouse = new Mouse(directInput); + this.devMouse.SetCooperativeLevel(hWnd, CooperativeLevel.Foreground | CooperativeLevel.NonExclusive); + this.devMouse.Properties.BufferSize = 0x20; + Trace.TraceInformation(this.devMouse.Information.ProductName.Trim(new char[] { '\0' }) + " を生成しました。"); // なぜか0x00のゴミが出るので削除 + this.strDeviceName = this.devMouse.Information.ProductName.Trim(new char[] { '\0' }); + } + catch + { + if (this.devMouse != null) + { + this.devMouse.Dispose(); + this.devMouse = null; + } + Trace.TraceWarning("Mouse デバイスの生成に失敗しました。"); + throw; + } + try + { + this.devMouse.Acquire(); + } + catch + { + } + + for (int i = 0; i < this.bMouseState.Length; i++) + this.bMouseState[i] = false; + + //this.timer = new CTimer( CTimer.E種別.MultiMedia ); + this.list入力イベント = new List(32); + } + + + // メソッド + + #region [ IInputDevice 実装 ] + //----------------- + public E入力デバイス種別 e入力デバイス種別 { get; private set; } + public string GUID { get; private set; } + public int ID { get; private set; } + public List list入力イベント { get; private set; } + public string strDeviceName { get; set; } + + public void tポーリング(bool bWindowがアクティブ中, bool bバッファ入力を使用する) + { + for (int i = 0; i < 8; i++) + { + this.bMousePushDown[i] = false; + this.bMousePullUp[i] = false; + } + + if (bWindowがアクティブ中 && (this.devMouse != null)) + { + this.devMouse.Acquire(); + this.devMouse.Poll(); + + // this.list入力イベント = new List( 32 ); + this.list入力イベント.Clear(); // #xxxxx 2012.6.11 yyagi; To optimize, I removed new(); + + if (bバッファ入力を使用する) + { + #region [ a.バッファ入力 ] + //----------------------------- + var bufferedData = this.devMouse.GetBufferedData(); + //if( Result.Last.IsSuccess && bufferedData != null ) + { + foreach (MouseUpdate data in bufferedData) + { + var mouseButton = new[] { + MouseOffset.Buttons0, + MouseOffset.Buttons1, + MouseOffset.Buttons2, + MouseOffset.Buttons3, + MouseOffset.Buttons4, + MouseOffset.Buttons5, + MouseOffset.Buttons6, + MouseOffset.Buttons7, + }; + + for (int k = 0; k < 8; k++) + { + //if( data.IsPressed( k ) ) + if (data.Offset == mouseButton[k] && ((data.Value & 0x80) != 0)) + { + STInputEvent item = new STInputEvent() + { + nKey = k, + b押された = true, + b離された = false, + nTimeStamp = CSound管理.rc演奏用タイマ.nサウンドタイマーのシステム時刻msへの変換(data.Timestamp), + nVelocity = CInput管理.n通常音量 + }; + this.list入力イベント.Add(item); + + this.bMouseState[k] = true; + this.bMousePushDown[k] = true; + } + else if (data.Offset == mouseButton[k] && this.bMouseState[k] == true && ((data.Value & 0x80) == 0)) + //else if( data.IsReleased( k ) ) + { + STInputEvent item = new STInputEvent() + { + nKey = k, + b押された = false, + b離された = true, + nTimeStamp = CSound管理.rc演奏用タイマ.nサウンドタイマーのシステム時刻msへの変換(data.Timestamp), + nVelocity = CInput管理.n通常音量 + }; + this.list入力イベント.Add(item); + + this.bMouseState[k] = false; + this.bMousePullUp[k] = true; + } + } + } + } + //----------------------------- + #endregion + } + else + { + #region [ b.状態入力 ] + //----------------------------- + MouseState currentState = this.devMouse.GetCurrentState(); + //if( Result.Last.IsSuccess && currentState != null ) + { + bool[] buttons = currentState.Buttons; + + for (int j = 0; (j < buttons.Length) && (j < 8); j++) + { + if (this.bMouseState[j] == false && buttons[j] == true) + { + var ev = new STInputEvent() + { + nKey = j, + b押された = true, + b離された = false, + nTimeStamp = CSound管理.rc演奏用タイマ.nシステム時刻, // 演奏用タイマと同じタイマを使うことで、BGMと譜面、入力ずれを防ぐ。 + nVelocity = CInput管理.n通常音量, + }; + this.list入力イベント.Add(ev); + + this.bMouseState[j] = true; + this.bMousePushDown[j] = true; + } + else if(this.bMouseState[j] == true && buttons[j] == false) + { + var ev = new STInputEvent() + { + nKey = j, + b押された = false, + b離された = true, + nTimeStamp = CSound管理.rc演奏用タイマ.nシステム時刻, // 演奏用タイマと同じタイマを使うことで、BGMと譜面、入力ずれを防ぐ。 + nVelocity = CInput管理.n通常音量, + }; + this.list入力イベント.Add(ev); + + this.bMouseState[j] = false; + this.bMousePullUp[j] = true; + } + } + } + //----------------------------- + #endregion + } + } + } + public bool bキーが押された(int nButton) + { + return (((0 <= nButton) && (nButton < 8)) && this.bMousePushDown[nButton]); + } + public bool bキーが押されている(int nButton) + { + return (((0 <= nButton) && (nButton < 8)) && this.bMouseState[nButton]); + } + public bool bキーが離された(int nButton) + { + return (((0 <= nButton) && (nButton < 8)) && this.bMousePullUp[nButton]); + } + public bool bキーが離されている(int nButton) + { + return (((0 <= nButton) && (nButton < 8)) && !this.bMouseState[nButton]); + } + //----------------- + #endregion + + #region [ IDisposable 実装 ] + //----------------- + public void Dispose() + { + if(!this.bDispose完了済み) + { + if(this.devMouse != null) + { + this.devMouse.Dispose(); + this.devMouse = null; + } + //if( this.timer != null ) + //{ + // this.timer.Dispose(); + // this.timer = null; + //} + if (this.list入力イベント != null) + { + this.list入力イベント = null; + } + this.bDispose完了済み = true; + } + } + //----------------- + #endregion + + + // その他 + + #region [ private ] + //----------------- + private bool bDispose完了済み; + private bool[] bMousePullUp = new bool[8]; + private bool[] bMousePushDown = new bool[8]; + private bool[] bMouseState = new bool[8]; + private Mouse devMouse; + //private CTimer timer; + //----------------- + #endregion + } +} diff --git a/FDK19/コード/02.入力/CInput管理.cs b/FDK19/コード/02.入力/CInput管理.cs new file mode 100644 index 00000000..63475af1 --- /dev/null +++ b/FDK19/コード/02.入力/CInput管理.cs @@ -0,0 +1,297 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Diagnostics; +using System.Runtime.InteropServices; +using SharpDX.DirectInput; + +namespace FDK +{ + public class CInput管理 : IDisposable + { + // 定数 + + public static int n通常音量 = 110; + + + // プロパティ + + public List list入力デバイス + { + get; + private set; + } + public IInputDevice Keyboard + { + get + { + if (this._Keyboard != null) + { + return this._Keyboard; + } + foreach (IInputDevice device in this.list入力デバイス) + { + if (device.e入力デバイス種別 == E入力デバイス種別.Keyboard) + { + this._Keyboard = device; + return device; + } + } + return null; + } + } + public IInputDevice Mouse + { + get + { + if (this._Mouse != null) + { + return this._Mouse; + } + foreach (IInputDevice device in this.list入力デバイス) + { + if (device.e入力デバイス種別 == E入力デバイス種別.Mouse) + { + this._Mouse = device; + return device; + } + } + return null; + } + } + + + // コンストラクタ + public CInput管理(IntPtr hWnd, bool bUseMidiIn = true) + { + CInput管理初期化(hWnd, bUseMidiIn); + } + + public void CInput管理初期化(IntPtr hWnd, bool bUseMidiIn) + { + this.directInput = new DirectInput(); + // this.timer = new CTimer( CTimer.E種別.MultiMedia ); + + this.list入力デバイス = new List(10); + #region [ Enumerate keyboard/mouse: exception is masked if keyboard/mouse is not connected ] + CInputKeyboard cinputkeyboard = null; + CInputMouse cinputmouse = null; + try + { + cinputkeyboard = new CInputKeyboard(hWnd, directInput); + cinputmouse = new CInputMouse(hWnd, directInput); + } + + catch + { + } + if (cinputkeyboard != null) + { + this.list入力デバイス.Add(cinputkeyboard); + } + if (cinputmouse != null) + { + this.list入力デバイス.Add(cinputmouse); + } + #endregion + #region [ Enumerate joypad ] + foreach (DeviceInstance instance in this.directInput.GetDevices(DeviceClass.GameControl, DeviceEnumerationFlags.AttachedOnly)) + { + this.list入力デバイス.Add(new CInputJoystick(hWnd, instance, directInput)); + } + #endregion + if (bUseMidiIn) + { + this.proc = new CWin32.MidiInProc(this.MidiInCallback); + uint nMidiDevices = CWin32.midiInGetNumDevs(); + Trace.TraceInformation("MIDI入力デバイス数: {0}", nMidiDevices); + for (uint i = 0; i < nMidiDevices; i++) + { + CInputMIDI item = new CInputMIDI(i); + CWin32.MIDIINCAPS lpMidiInCaps = new CWin32.MIDIINCAPS(); + uint num3 = CWin32.midiInGetDevCaps(i, ref lpMidiInCaps, (uint)Marshal.SizeOf(lpMidiInCaps)); + if (num3 != 0) + { + Trace.TraceError("MIDI In: Device{0}: midiInDevCaps(): {1:X2}: ", i, num3); + } + else + { + uint ret = CWin32.midiInOpen(ref item.hMidiIn, i, this.proc, IntPtr.Zero, 0x30000); + Trace.TraceInformation("midiInOpen()==" + ret); + Trace.TraceInformation("item.hMidiIn==" + item.hMidiIn.ToString()); + if ((ret == 0) && (item.hMidiIn != IntPtr.Zero)) + { + CWin32.midiInStart(item.hMidiIn); + Trace.TraceInformation("MIDI In: [{0}] \"{1}\" の入力受付を開始しました。", i, lpMidiInCaps.szPname); + item.strDeviceName = lpMidiInCaps.szPname; + this.list入力デバイス.Add(item); + continue; + } + } + Trace.TraceError("MIDI In: [{0}] \"{1}\" の入力受付の開始に失敗しました。", i, lpMidiInCaps.szPname); + } + } + else + { + Trace.TraceInformation("DTXVモードのため、MIDI入力は使用しません。"); + } + } + + + // メソッド + + public IInputDevice Joystick(int ID) + { + foreach (IInputDevice device in this.list入力デバイス) + { + if ((device.e入力デバイス種別 == E入力デバイス種別.Joystick) && (device.ID == ID)) + { + return device; + } + } + return null; + } + public IInputDevice Joystick(string GUID) + { + foreach (IInputDevice device in this.list入力デバイス) + { + if ((device.e入力デバイス種別 == E入力デバイス種別.Joystick) && device.GUID.Equals(GUID)) + { + return device; + } + } + return null; + } + public IInputDevice MidiIn(int ID) + { + foreach (IInputDevice device in this.list入力デバイス) + { + if ((device.e入力デバイス種別 == E入力デバイス種別.MidiIn) && (device.ID == ID)) + { + return device; + } + } + return null; + } + public void tポーリング(bool bWindowがアクティブ中, bool bバッファ入力を使用する) + { + lock (this.objMidiIn排他用) + { + // foreach( IInputDevice device in this.list入力デバイス ) + for (int i = this.list入力デバイス.Count - 1; i >= 0; i--) // #24016 2011.1.6 yyagi: change not to use "foreach" to avoid InvalidOperation exception by Remove(). + { + IInputDevice device = this.list入力デバイス[i]; + try + { + device.tポーリング(bWindowがアクティブ中, bバッファ入力を使用する); + } + catch (SharpDX.SharpDXException e) // #24016 2011.1.6 yyagi: catch exception for unplugging USB joystick, and remove the device object from the polling items. + { + if (e.ResultCode == ResultCode.OtherApplicationHasPriority) + { + // #xxxxx: 2017.5.9: from: このエラーの時は、何もしない。 + } + else + { + // #xxxxx: 2017.5.9: from: その他のエラーの場合は、デバイスが外されたと想定してRemoveする。 + this.list入力デバイス.Remove(device); + device.Dispose(); + Trace.TraceError("tポーリング時に対象deviceが抜かれており例外発生。同deviceをポーリング対象からRemoveしました。"); + } + } + } + } + } + + #region [ IDisposable+α ] + //----------------- + public void Dispose() + { + this.Dispose(true); + } + public void Dispose(bool disposeManagedObjects) + { + if (!this.bDisposed済み) + { + if (disposeManagedObjects) + { + foreach (IInputDevice device in this.list入力デバイス) + { + CInputMIDI tmidi = device as CInputMIDI; + if (tmidi != null) + { + CWin32.midiInStop(tmidi.hMidiIn); + CWin32.midiInReset(tmidi.hMidiIn); + CWin32.midiInClose(tmidi.hMidiIn); + Trace.TraceInformation("MIDI In: [{0}] を停止しました。", new object[] { tmidi.ID }); + } + } + foreach (IInputDevice device2 in this.list入力デバイス) + { + device2.Dispose(); + } + lock (this.objMidiIn排他用) + { + this.list入力デバイス.Clear(); + } + + this.directInput.Dispose(); + + //if( this.timer != null ) + //{ + // this.timer.Dispose(); + // this.timer = null; + //} + } + this.bDisposed済み = true; + } + } + ~CInput管理() + { + this.Dispose(false); + GC.KeepAlive(this); + } + //----------------- + #endregion + + + // その他 + + #region [ private ] + //----------------- + private DirectInput directInput; + private IInputDevice _Keyboard; + private IInputDevice _Mouse; + private bool bDisposed済み; + private List listHMIDIIN = new List(8); + private object objMidiIn排他用 = new object(); + private CWin32.MidiInProc proc; + //private CTimer timer; + + private void MidiInCallback(IntPtr hMidiIn, uint wMsg, IntPtr dwInstance, IntPtr dwParam1, IntPtr dwParam2) + { + int p = (int)dwParam1 & 0xF0; + if (wMsg != CWin32.MIM_DATA || (p != 0x80 && p != 0x90 && p != 0xB0)) + return; + + long time = CSound管理.rc演奏用タイマ.nシステム時刻; // lock前に取得。演奏用タイマと同じタイマを使うことで、BGMと譜面、入力ずれを防ぐ。 + lock (this.objMidiIn排他用) + { + if ((this.list入力デバイス != null) && (this.list入力デバイス.Count != 0)) + { + foreach (IInputDevice device in this.list入力デバイス) + { + CInputMIDI tmidi = device as CInputMIDI; + if ((tmidi != null) && (tmidi.hMidiIn == hMidiIn)) + { + tmidi.tメッセージからMIDI信号のみ受信(wMsg, dwInstance, dwParam1, dwParam2, time); + break; + } + } + } + } + } + //----------------- + #endregion + } +} diff --git a/FDK19/コード/02.入力/DeviceConstantConverter.cs b/FDK19/コード/02.入力/DeviceConstantConverter.cs new file mode 100644 index 00000000..0228a86b --- /dev/null +++ b/FDK19/コード/02.入力/DeviceConstantConverter.cs @@ -0,0 +1,1666 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Windows.Forms; +using SlimDXKeys; + +using WindowsKey = System.Windows.Forms.Keys; +using SlimDXKey = SlimDXKeys.Key; +using SharpDXKey = SharpDX.DirectInput.Key; + +namespace FDK +{ + public class DeviceConstantConverter + { + // メソッド + + public static Key DIKtoKey( int dik ) + { + switch( dik ) + { + case 1: + return Key.Escape; + + case 2: + return Key.D1; + + case 3: + return Key.D2; + + case 4: + return Key.D3; + + case 5: + return Key.D4; + + case 6: + return Key.D5; + + case 7: + return Key.D6; + + case 8: + return Key.D7; + + case 9: + return Key.D8; + + case 10: + return Key.D9; + + case 11: + return Key.D0; + + case 12: + return Key.Minus; + + case 13: + return Key.Equals; + + case 14: + return Key.Backspace; + + case 15: + return Key.Tab; + + case 0x10: + return Key.Q; + + case 0x11: + return Key.W; + + case 0x12: + return Key.E; + + case 0x13: + return Key.R; + + case 20: + return Key.T; + + case 0x15: + return Key.Y; + + case 0x16: + return Key.U; + + case 0x17: + return Key.I; + + case 0x18: + return Key.O; + + case 0x19: + return Key.P; + + case 0x1a: + return Key.LeftBracket; + + case 0x1b: + return Key.RightBracket; + + case 0x1c: + return Key.Return; + + case 0x1d: + return Key.LeftControl; + + case 30: + return Key.A; + + case 0x1f: + return Key.S; + + case 0x20: + return Key.D; + + case 0x21: + return Key.F; + + case 0x22: + return Key.G; + + case 0x23: + return Key.H; + + case 0x24: + return Key.J; + + case 0x25: + return Key.K; + + case 0x26: + return Key.L; + + case 0x27: + return Key.Semicolon; + + case 40: + return Key.Apostrophe; + + case 0x29: + return Key.Grave; + + case 0x2a: + return Key.LeftShift; + + case 0x2b: + return Key.Backslash; + + case 0x2c: + return Key.Z; + + case 0x2d: + return Key.X; + + case 0x2e: + return Key.C; + + case 0x2f: + return Key.V; + + case 0x30: + return Key.B; + + case 0x31: + return Key.N; + + case 50: + return Key.M; + + case 0x33: + return Key.Comma; + + case 0x34: + return Key.Period; + + case 0x35: + return Key.Slash; + + case 0x36: + return Key.RightShift; + + case 0x37: + return Key.NumberPadStar; + + case 0x38: + return Key.LeftAlt; + + case 0x39: + return Key.Space; + + case 0x3a: + return Key.CapsLock; + + case 0x3b: + return Key.F1; + + case 60: + return Key.F2; + + case 0x3d: + return Key.F3; + + case 0x3e: + return Key.F4; + + case 0x3f: + return Key.F5; + + case 0x40: + return Key.F6; + + case 0x41: + return Key.F7; + + case 0x42: + return Key.F8; + + case 0x43: + return Key.F9; + + case 0x44: + return Key.F10; + + case 0x45: + return Key.NumberLock; + + case 70: + return Key.ScrollLock; + + case 0x47: + return Key.NumberPad7; + + case 0x48: + return Key.NumberPad8; + + case 0x49: + return Key.NumberPad9; + + case 0x4a: + return Key.NumberPadMinus; + + case 0x4b: + return Key.NumberPad4; + + case 0x4c: + return Key.NumberPad5; + + case 0x4d: + return Key.NumberPad6; + + case 0x4e: + return Key.NumberPadPlus; + + case 0x4f: + return Key.NumberPad1; + + case 80: + return Key.NumberPad2; + + case 0x51: + return Key.NumberPad3; + + case 0x52: + return Key.NumberPad0; + + case 0x53: + return Key.NumberPadPeriod; + + case 0x56: + return Key.Oem102; + + case 0x57: + return Key.F11; + + case 0x58: + return Key.F12; + + case 100: + return Key.F13; + + case 0x65: + return Key.F14; + + case 0x66: + return Key.F15; + + case 0x70: + return Key.Kana; + + case 0x73: + return Key.AbntC1; + + case 0x79: + return Key.Convert; + + case 0x7b: + return Key.NoConvert; + + case 0x7d: + return Key.Yen; + + case 0x7e: + return Key.AbntC2; + + case 0x8d: + return Key.NumberPadEquals; + + case 0x90: + return Key.PreviousTrack; + + case 0x91: + return Key.AT; + + case 0x92: + return Key.Colon; + + case 0x93: + return Key.Underline; + + case 0x94: + return Key.Kanji; + + case 0x95: + return Key.Stop; + + case 150: + return Key.AX; + + case 0x97: + return Key.Unlabeled; + + case 0x99: + return Key.NextTrack; + + case 0x9c: + return Key.NumberPadEnter; + + case 0x9d: + return Key.RightControl; + + case 160: + return Key.Mute; + + case 0xa1: + return Key.Calculator; + + case 0xa2: + return Key.PlayPause; + + case 0xa4: + return Key.MediaStop; + + case 0xae: + return Key.VolumeDown; + + case 0xb0: + return Key.VolumeUp; + + case 0xb2: + return Key.WebHome; + + case 0xb3: + return Key.NumberPadComma; + + case 0xb5: + return Key.NumberPadSlash; + + case 0xb7: + return Key.PrintScreen; + + case 0xb8: + return Key.RightAlt; + + case 0xc5: + return Key.Pause; + + case 0xc7: + return Key.Home; + + case 200: + return Key.UpArrow; + + case 0xc9: + return Key.PageUp; + + case 0xcb: + return Key.LeftArrow; + + case 0xcd: + return Key.RightArrow; + + case 0xcf: + return Key.End; + + case 0xd0: + return Key.DownArrow; + + case 0xd1: + return Key.PageDown; + + case 210: + return Key.Insert; + + case 0xd3: + return Key.Delete; + + case 0xdb: + return Key.LeftWindowsKey; + + case 220: + return Key.RightWindowsKey; + + case 0xdd: + return Key.Applications; + + case 0xde: + return Key.Power; + + case 0xdf: + return Key.Sleep; + + case 0xe3: + return Key.Wake; + + case 0xe5: + return Key.WebSearch; + + case 230: + return Key.WebFavorites; + + case 0xe7: + return Key.WebRefresh; + + case 0xe8: + return Key.WebStop; + + case 0xe9: + return Key.WebForward; + + case 0xea: + return Key.WebBack; + + case 0xeb: + return Key.MyComputer; + + case 0xec: + return Key.Mail; + + case 0xed: + return Key.MediaSelect; + } + return Key.Unknown; + } + public static int KeyToDIK( Key key ) + { + switch( key ) + { + case Key.D0: + return 11; + + case Key.D1: + return 2; + + case Key.D2: + return 3; + + case Key.D3: + return 4; + + case Key.D4: + return 5; + + case Key.D5: + return 6; + + case Key.D6: + return 7; + + case Key.D7: + return 8; + + case Key.D8: + return 9; + + case Key.D9: + return 10; + + case Key.A: + return 30; + + case Key.B: + return 0x30; + + case Key.C: + return 0x2e; + + case Key.D: + return 0x20; + + case Key.E: + return 0x12; + + case Key.F: + return 0x21; + + case Key.G: + return 0x22; + + case Key.H: + return 0x23; + + case Key.I: + return 0x17; + + case Key.J: + return 0x24; + + case Key.K: + return 0x25; + + case Key.L: + return 0x26; + + case Key.M: + return 50; + + case Key.N: + return 0x31; + + case Key.O: + return 0x18; + + case Key.P: + return 0x19; + + case Key.Q: + return 0x10; + + case Key.R: + return 0x13; + + case Key.S: + return 0x1f; + + case Key.T: + return 20; + + case Key.U: + return 0x16; + + case Key.V: + return 0x2f; + + case Key.W: + return 0x11; + + case Key.X: + return 0x2d; + + case Key.Y: + return 0x15; + + case Key.Z: + return 0x2c; + + case Key.AbntC1: + return 0x73; + + case Key.AbntC2: + return 0x7e; + + case Key.Apostrophe: + return 40; + + case Key.Applications: + return 0xdd; + + case Key.AT: + return 0x91; + + case Key.AX: + return 150; + + case Key.Backspace: + return 14; + + case Key.Backslash: + return 0x2b; + + case Key.Calculator: + return 0xa1; + + case Key.CapsLock: + return 0x3a; + + case Key.Colon: + return 0x92; + + case Key.Comma: + return 0x33; + + case Key.Convert: + return 0x79; + + case Key.Delete: + return 0xd3; + + case Key.DownArrow: + return 0xd0; + + case Key.End: + return 0xcf; + + case Key.Equals: + return 13; + + case Key.Escape: + return 1; + + case Key.F1: + return 0x3b; + + case Key.F2: + return 60; + + case Key.F3: + return 0x3d; + + case Key.F4: + return 0x3e; + + case Key.F5: + return 0x3f; + + case Key.F6: + return 0x40; + + case Key.F7: + return 0x41; + + case Key.F8: + return 0x42; + + case Key.F9: + return 0x43; + + case Key.F10: + return 0x44; + + case Key.F11: + return 0x57; + + case Key.F12: + return 0x58; + + case Key.F13: + return 100; + + case Key.F14: + return 0x65; + + case Key.F15: + return 0x66; + + case Key.Grave: + return 0x29; + + case Key.Home: + return 0xc7; + + case Key.Insert: + return 210; + + case Key.Kana: + return 0x70; + + case Key.Kanji: + return 0x94; + + case Key.LeftBracket: + return 0x1a; + + case Key.LeftControl: + return 0x1d; + + case Key.LeftArrow: + return 0xcb; + + case Key.LeftAlt: + return 0x38; + + case Key.LeftShift: + return 0x2a; + + case Key.LeftWindowsKey: + return 0xdb; + + case Key.Mail: + return 0xec; + + case Key.MediaSelect: + return 0xed; + + case Key.MediaStop: + return 0xa4; + + case Key.Minus: + return 12; + + case Key.Mute: + return 160; + + case Key.MyComputer: + return 0xeb; + + case Key.NextTrack: + return 0x99; + + case Key.NoConvert: + return 0x7b; + + case Key.NumberLock: + return 0x45; + + case Key.NumberPad0: + return 0x52; + + case Key.NumberPad1: + return 0x4f; + + case Key.NumberPad2: + return 80; + + case Key.NumberPad3: + return 0x51; + + case Key.NumberPad4: + return 0x4b; + + case Key.NumberPad5: + return 0x4c; + + case Key.NumberPad6: + return 0x4d; + + case Key.NumberPad7: + return 0x47; + + case Key.NumberPad8: + return 0x48; + + case Key.NumberPad9: + return 0x49; + + case Key.NumberPadComma: + return 0xb3; + + case Key.NumberPadEnter: + return 0x9c; + + case Key.NumberPadEquals: + return 0x8d; + + case Key.NumberPadMinus: + return 0x4a; + + case Key.NumberPadPeriod: + return 0x53; + + case Key.NumberPadPlus: + return 0x4e; + + case Key.NumberPadSlash: + return 0xb5; + + case Key.NumberPadStar: + return 0x37; + + case Key.Oem102: + return 0x56; + + case Key.PageDown: + return 0xd1; + + case Key.PageUp: + return 0xc9; + + case Key.Pause: + return 0xc5; + + case Key.Period: + return 0x34; + + case Key.PlayPause: + return 0xa2; + + case Key.Power: + return 0xde; + + case Key.PreviousTrack: + return 0x90; + + case Key.RightBracket: + return 0x1b; + + case Key.RightControl: + return 0x9d; + + case Key.Return: + return 0x1c; + + case Key.RightArrow: + return 0xcd; + + case Key.RightAlt: + return 0xb8; + + case Key.RightShift: + return 0x36; + + case Key.RightWindowsKey: + return 220; + + case Key.ScrollLock: + return 70; + + case Key.Semicolon: + return 0x27; + + case Key.Slash: + return 0x35; + + case Key.Sleep: + return 0xdf; + + case Key.Space: + return 0x39; + + case Key.Stop: + return 0x95; + + case Key.PrintScreen: + return 0xb7; + + case Key.Tab: + return 15; + + case Key.Underline: + return 0x93; + + case Key.Unlabeled: + return 0x97; + + case Key.UpArrow: + return 200; + + case Key.VolumeDown: + return 0xae; + + case Key.VolumeUp: + return 0xb0; + + case Key.Wake: + return 0xe3; + + case Key.WebBack: + return 0xea; + + case Key.WebFavorites: + return 230; + + case Key.WebForward: + return 0xe9; + + case Key.WebHome: + return 0xb2; + + case Key.WebRefresh: + return 0xe7; + + case Key.WebSearch: + return 0xe5; + + case Key.WebStop: + return 0xe8; + + case Key.Yen: + return 0x7d; + } + return 0; + } + public static Keys KeyToKeyCode(SlimDXKey key) + { + switch ( key ) + { + case Key.D0: + return Keys.D0; + + case Key.D1: + return Keys.D1; + + case Key.D2: + return Keys.D2; + + case Key.D3: + return Keys.D3; + + case Key.D4: + return Keys.D4; + + case Key.D5: + return Keys.D5; + + case Key.D6: + return Keys.D6; + + case Key.D7: + return Keys.D7; + + case Key.D8: + return Keys.D8; + + case Key.D9: + return Keys.D9; + + case Key.A: + return Keys.A; + + case Key.B: + return Keys.B; + + case Key.C: + return Keys.C; + + case Key.D: + return Keys.D; + + case Key.E: + return Keys.E; + + case Key.F: + return Keys.F; + + case Key.G: + return Keys.G; + + case Key.H: + return Keys.H; + + case Key.I: + return Keys.I; + + case Key.J: + return Keys.J; + + case Key.K: + return Keys.K; + + case Key.L: + return Keys.L; + + case Key.M: + return Keys.M; + + case Key.N: + return Keys.N; + + case Key.O: + return Keys.O; + + case Key.P: + return Keys.P; + + case Key.Q: + return Keys.Q; + + case Key.R: + return Keys.R; + + case Key.S: + return Keys.S; + + case Key.T: + return Keys.T; + + case Key.U: + return Keys.U; + + case Key.V: + return Keys.V; + + case Key.W: + return Keys.W; + + case Key.X: + return Keys.X; + + case Key.Y: + return Keys.Y; + + case Key.Z: + return Keys.Z; + +// case Key.AbntC1: +// return Keys.A; //0x73; + //147 +// case Key.AbntC2: +// return Keys.A; //0x7e; + +// case Key.Apostrophe: +// return Keys.A; /// + + case Key.Applications: + return Keys.Apps; + + case Key.AT: + return Keys.Oem3; + +// case Key.AX: +// return Keys.A; /// + + case Key.Backspace: + return Keys.Back; + + case Key.Backslash: + return Keys.Oem5; + +// case Key.Calculator: +// return Keys.A; /// + + case Key.CapsLock: + return Keys.CapsLock; + + case Key.Colon: + return Keys.Oem1; + + case Key.Comma: + return Keys.Oemcomma; + + case Key.Convert: + return Keys.IMEConvert; + + case Key.Delete: + return Keys.Delete; + + case Key.DownArrow: + return Keys.Down; + + case Key.End: + return Keys.End; + + case Key.Equals: + return Keys.A; /// + + case Key.Escape: + return Keys.Escape; + + case Key.F1: + return Keys.F1; + + case Key.F2: + return Keys.F2; + + case Key.F3: + return Keys.F3; + + case Key.F4: + return Keys.F4; + + case Key.F5: + return Keys.F5; + + case Key.F6: + return Keys.F6; + + case Key.F7: + return Keys.F7; + + case Key.F8: + return Keys.F8; + + case Key.F9: + return Keys.F9; + + case Key.F10: + return Keys.F10; + + case Key.F11: + return Keys.F11; + + case Key.F12: + return Keys.F12; + + case Key.F13: + return Keys.F13; + + case Key.F14: + return Keys.F14; + + case Key.F15: + return Keys.F15; + + case Key.Grave: + return Keys.A; /// + + case Key.Home: + return Keys.Home; + + case Key.Insert: + return Keys.Insert; + + case Key.Kana: + return Keys.KanaMode; + + case Key.Kanji: + return Keys.KanjiMode; + + case Key.LeftBracket: + return Keys.Oem4; + + case Key.LeftControl: + return Keys.LControlKey; + + case Key.LeftArrow: + return Keys.Left; + + case Key.LeftAlt: + return Keys.LMenu; + + case Key.LeftShift: + return Keys.LShiftKey; + + case Key.LeftWindowsKey: + return Keys.LWin; + + case Key.Mail: + return Keys.LaunchMail; + + case Key.MediaSelect: + return Keys.SelectMedia; + + case Key.MediaStop: + return Keys.MediaStop; + + case Key.Minus: + return Keys.OemMinus; + + case Key.Mute: + return Keys.VolumeMute; + + case Key.MyComputer: /// + return Keys.A; + + case Key.NextTrack: + return Keys.MediaNextTrack; + + case Key.NoConvert: + return Keys.IMENonconvert; + + case Key.NumberLock: + return Keys.NumLock; + + case Key.NumberPad0: + return Keys.NumPad0; + + case Key.NumberPad1: + return Keys.NumPad1; + + case Key.NumberPad2: + return Keys.NumPad2; + + case Key.NumberPad3: + return Keys.NumPad3; + + case Key.NumberPad4: + return Keys.NumPad4; + + case Key.NumberPad5: + return Keys.NumPad5; + + case Key.NumberPad6: + return Keys.NumPad6; + + case Key.NumberPad7: + return Keys.NumPad7; + + case Key.NumberPad8: + return Keys.NumPad8; + + case Key.NumberPad9: + return Keys.NumPad9; + + case Key.NumberPadComma: + return Keys.Separator; + + case Key.NumberPadEnter: + return Keys.A; // + + case Key.NumberPadEquals: + return Keys.A; // + + case Key.NumberPadMinus: + return Keys.Subtract; + + case Key.NumberPadPeriod: + return Keys.Decimal; + + case Key.NumberPadPlus: + return Keys.Add; + + case Key.NumberPadSlash: + return Keys.Divide; + + case Key.NumberPadStar: + return Keys.Multiply; // + + case Key.Oem102: + return Keys.Oem102; + + case Key.PageDown: + return Keys.PageDown; + + case Key.PageUp: + return Keys.PageUp; + + case Key.Pause: + return Keys.Pause; + + case Key.Period: + return Keys.OemPeriod; + + case Key.PlayPause: + return Keys.MediaPlayPause; + + case Key.Power: + return Keys.A; /// + + case Key.PreviousTrack: + return Keys.MediaPreviousTrack; + + case Key.RightBracket: + return Keys.Oem6; + + case Key.RightControl: + return Keys.RControlKey; + + case Key.Return: + return Keys.Return; + + case Key.RightArrow: + return Keys.Right; + + case Key.RightAlt: + return Keys.RMenu; + + case Key.RightShift: + return Keys.A; + + case Key.RightWindowsKey: + return Keys.RWin; + + case Key.ScrollLock: + return Keys.Scroll; + + case Key.Semicolon: + return Keys.Oemplus; ///?? + + case Key.Slash: + return Keys.Oem2; + + case Key.Sleep: + return Keys.Sleep; + + case Key.Space: + return Keys.Space; + + case Key.Stop: + return Keys.MediaStop; + + case Key.PrintScreen: + return Keys.PrintScreen; + + case Key.Tab: + return Keys.Tab; + + case Key.Underline: + return Keys.Oem102; + +// case Key.Unlabeled: /// +// return Keys.A; + + case Key.UpArrow: + return Keys.Up; + + case Key.VolumeDown: + return Keys.VolumeDown; + + case Key.VolumeUp: + return Keys.VolumeUp; + + case Key.Wake: + return Keys.A; /// + + case Key.WebBack: + return Keys.BrowserBack; + + case Key.WebFavorites: + return Keys.BrowserFavorites; + + case Key.WebForward: + return Keys.BrowserForward; + + case Key.WebHome: + return Keys.BrowserHome; + + case Key.WebRefresh: + return Keys.BrowserRefresh; + + case Key.WebSearch: + return Keys.BrowserSearch; + + case Key.WebStop: + return Keys.BrowserStop; + + case Key.Yen: + return Keys.OemBackslash; + } + return 0; + } + + /// + /// 対応する値がなければ SlimDX.DirectInput.Unknown を返す。 + /// + public static SlimDXKey DIKtoKey(SharpDXKey key) + { + if (_DIKtoKey.ContainsKey(key)) + { + return _DIKtoKey[key]; + } + else + { + return SlimDXKey.Unknown; + } + } + + /// + /// 対応する値がなければ System.Windows.Forms.Keys.None を返す。 + /// + public static WindowsKey KeyToKeys(SlimDXKey key) + { + if (_KeyToKeys.ContainsKey(key)) + { + return _KeyToKeys[key]; + } + else + { + return WindowsKey.None; + } + } + + + /// + /// DIK (SharpDX.DirectInput.Key) から SlimDX.DirectInput.Key への変換表。 + /// + private static readonly Dictionary _DIKtoKey = new Dictionary() { + #region [ *** ] + { SharpDXKey.Unknown, SlimDXKey.Unknown }, + { SharpDXKey.Escape, SlimDXKey.Escape }, + { SharpDXKey.D1, SlimDXKey.D1 }, + { SharpDXKey.D2, SlimDXKey.D2 }, + { SharpDXKey.D3, SlimDXKey.D3 }, + { SharpDXKey.D4, SlimDXKey.D4 }, + { SharpDXKey.D5, SlimDXKey.D5 }, + { SharpDXKey.D6, SlimDXKey.D6 }, + { SharpDXKey.D7, SlimDXKey.D7 }, + { SharpDXKey.D8, SlimDXKey.D8 }, + { SharpDXKey.D9, SlimDXKey.D9 }, + { SharpDXKey.D0, SlimDXKey.D0 }, + { SharpDXKey.Minus, SlimDXKey.Minus }, + { SharpDXKey.Equals, SlimDXKey.Equals }, + { SharpDXKey.Back, SlimDXKey.Backspace }, + { SharpDXKey.Tab, SlimDXKey.Tab }, + { SharpDXKey.Q, SlimDXKey.Q }, + { SharpDXKey.W, SlimDXKey.W }, + { SharpDXKey.E, SlimDXKey.E }, + { SharpDXKey.R, SlimDXKey.R }, + { SharpDXKey.T, SlimDXKey.T }, + { SharpDXKey.Y, SlimDXKey.Y }, + { SharpDXKey.U, SlimDXKey.U }, + { SharpDXKey.I, SlimDXKey.I }, + { SharpDXKey.O, SlimDXKey.O }, + { SharpDXKey.P, SlimDXKey.P }, + { SharpDXKey.LeftBracket, SlimDXKey.LeftBracket }, + { SharpDXKey.RightBracket, SlimDXKey.RightBracket }, + { SharpDXKey.Return, SlimDXKey.Return }, + { SharpDXKey.LeftControl, SlimDXKey.LeftControl }, + { SharpDXKey.A, SlimDXKey.A }, + { SharpDXKey.S, SlimDXKey.S }, + { SharpDXKey.D, SlimDXKey.D }, + { SharpDXKey.F, SlimDXKey.F }, + { SharpDXKey.G, SlimDXKey.G }, + { SharpDXKey.H, SlimDXKey.H }, + { SharpDXKey.J, SlimDXKey.J }, + { SharpDXKey.K, SlimDXKey.K }, + { SharpDXKey.L, SlimDXKey.L }, + { SharpDXKey.Semicolon, SlimDXKey.Semicolon }, + { SharpDXKey.Apostrophe, SlimDXKey.Apostrophe }, + { SharpDXKey.Grave, SlimDXKey.Grave }, + { SharpDXKey.LeftShift, SlimDXKey.LeftShift }, + { SharpDXKey.Backslash, SlimDXKey.Backslash }, + { SharpDXKey.Z, SlimDXKey.Z }, + { SharpDXKey.X, SlimDXKey.X }, + { SharpDXKey.C, SlimDXKey.C }, + { SharpDXKey.V, SlimDXKey.V }, + { SharpDXKey.B, SlimDXKey.B }, + { SharpDXKey.N, SlimDXKey.N }, + { SharpDXKey.M, SlimDXKey.M }, + { SharpDXKey.Comma, SlimDXKey.Comma }, + { SharpDXKey.Period, SlimDXKey.Period }, + { SharpDXKey.Slash, SlimDXKey.Slash }, + { SharpDXKey.RightShift, SlimDXKey.RightShift }, + { SharpDXKey.Multiply, SlimDXKey.NumberPadStar }, + { SharpDXKey.LeftAlt, SlimDXKey.LeftAlt }, + { SharpDXKey.Space, SlimDXKey.Space }, + { SharpDXKey.Capital, SlimDXKey.CapsLock }, + { SharpDXKey.F1, SlimDXKey.F1 }, + { SharpDXKey.F2, SlimDXKey.F2 }, + { SharpDXKey.F3, SlimDXKey.F3 }, + { SharpDXKey.F4, SlimDXKey.F4 }, + { SharpDXKey.F5, SlimDXKey.F5 }, + { SharpDXKey.F6, SlimDXKey.F6 }, + { SharpDXKey.F7, SlimDXKey.F7 }, + { SharpDXKey.F8, SlimDXKey.F8 }, + { SharpDXKey.F9, SlimDXKey.F9 }, + { SharpDXKey.F10, SlimDXKey.F10 }, + { SharpDXKey.NumberLock, SlimDXKey.NumberLock }, + { SharpDXKey.ScrollLock, SlimDXKey.ScrollLock }, + { SharpDXKey.NumberPad7, SlimDXKey.NumberPad7 }, + { SharpDXKey.NumberPad8, SlimDXKey.NumberPad8 }, + { SharpDXKey.NumberPad9, SlimDXKey.NumberPad9 }, + { SharpDXKey.Subtract, SlimDXKey.NumberPadMinus }, + { SharpDXKey.NumberPad4, SlimDXKey.NumberPad4 }, + { SharpDXKey.NumberPad5, SlimDXKey.NumberPad5 }, + { SharpDXKey.NumberPad6, SlimDXKey.NumberPad6 }, + { SharpDXKey.Add, SlimDXKey.NumberPadPlus }, + { SharpDXKey.NumberPad1, SlimDXKey.NumberPad1 }, + { SharpDXKey.NumberPad2, SlimDXKey.NumberPad2 }, + { SharpDXKey.NumberPad3, SlimDXKey.NumberPad3 }, + { SharpDXKey.NumberPad0, SlimDXKey.NumberPad0 }, + { SharpDXKey.Decimal, SlimDXKey.NumberPadPeriod }, + { SharpDXKey.Oem102, SlimDXKey.Oem102 }, + { SharpDXKey.F11, SlimDXKey.F11 }, + { SharpDXKey.F12, SlimDXKey.F12 }, + { SharpDXKey.F13, SlimDXKey.F13 }, + { SharpDXKey.F14, SlimDXKey.F14 }, + { SharpDXKey.F15, SlimDXKey.F15 }, + { SharpDXKey.Kana, SlimDXKey.Kana }, + { SharpDXKey.AbntC1, SlimDXKey.AbntC1 }, + { SharpDXKey.Convert, SlimDXKey.Convert }, + { SharpDXKey.NoConvert, SlimDXKey.NoConvert }, + { SharpDXKey.Yen, SlimDXKey.Yen }, + { SharpDXKey.AbntC2, SlimDXKey.AbntC2 }, + { SharpDXKey.NumberPadEquals, SlimDXKey.NumberPadEquals }, + { SharpDXKey.PreviousTrack, SlimDXKey.PreviousTrack }, + { SharpDXKey.AT, SlimDXKey.AT }, + { SharpDXKey.Colon, SlimDXKey.Colon }, + { SharpDXKey.Underline, SlimDXKey.Underline }, + { SharpDXKey.Kanji, SlimDXKey.Kanji }, + { SharpDXKey.Stop, SlimDXKey.Stop }, + { SharpDXKey.AX, SlimDXKey.AX }, + { SharpDXKey.Unlabeled, SlimDXKey.Unlabeled }, + { SharpDXKey.NextTrack, SlimDXKey.NextTrack }, + { SharpDXKey.NumberPadEnter, SlimDXKey.NumberPadEnter }, + { SharpDXKey.RightControl, SlimDXKey.RightControl }, + { SharpDXKey.Mute, SlimDXKey.Mute }, + { SharpDXKey.Calculator, SlimDXKey.Calculator }, + { SharpDXKey.PlayPause, SlimDXKey.PlayPause }, + { SharpDXKey.MediaStop, SlimDXKey.MediaStop }, + { SharpDXKey.VolumeDown, SlimDXKey.VolumeDown }, + { SharpDXKey.VolumeUp, SlimDXKey.VolumeUp }, + { SharpDXKey.WebHome, SlimDXKey.WebHome }, + { SharpDXKey.PrintScreen, SlimDXKey.PrintScreen }, + { SharpDXKey.RightAlt, SlimDXKey.RightAlt }, + { SharpDXKey.Pause, SlimDXKey.Pause }, + { SharpDXKey.Home, SlimDXKey.Home }, + { SharpDXKey.Up, SlimDXKey.UpArrow }, + { SharpDXKey.PageUp, SlimDXKey.PageUp }, + { SharpDXKey.Left, SlimDXKey.LeftArrow }, + { SharpDXKey.Right, SlimDXKey.RightArrow }, + { SharpDXKey.End, SlimDXKey.End }, + { SharpDXKey.Down, SlimDXKey.DownArrow }, + { SharpDXKey.PageDown, SlimDXKey.PageDown }, + { SharpDXKey.Insert, SlimDXKey.Insert }, + { SharpDXKey.Delete, SlimDXKey.Delete }, + { SharpDXKey.LeftWindowsKey, SlimDXKey.LeftWindowsKey }, + { SharpDXKey.RightWindowsKey, SlimDXKey.RightWindowsKey }, + { SharpDXKey.Applications, SlimDXKey.Applications }, + { SharpDXKey.Power, SlimDXKey.Power }, + { SharpDXKey.Sleep, SlimDXKey.Sleep }, + { SharpDXKey.Wake, SlimDXKey.Wake }, + { SharpDXKey.WebSearch, SlimDXKey.WebSearch }, + { SharpDXKey.WebFavorites, SlimDXKey.WebFavorites }, + { SharpDXKey.WebRefresh, SlimDXKey.WebRefresh }, + { SharpDXKey.WebStop, SlimDXKey.WebStop }, + { SharpDXKey.WebForward, SlimDXKey.WebForward }, + { SharpDXKey.WebBack, SlimDXKey.WebBack }, + { SharpDXKey.MyComputer, SlimDXKey.MyComputer }, + { SharpDXKey.Mail, SlimDXKey.Mail }, + { SharpDXKey.MediaSelect, SlimDXKey.MediaSelect }, + #endregion + }; + + /// + /// SlimDX.DirectInput.Key から System.Windows.Form.Keys への変換表。 + /// + private static readonly Dictionary _KeyToKeys = new Dictionary() { + #region [ *** ] + { SlimDXKey.D0, WindowsKey.D0 }, + { SlimDXKey.D1, WindowsKey.D1 }, + { SlimDXKey.D2, WindowsKey.D2 }, + { SlimDXKey.D3, WindowsKey.D3 }, + { SlimDXKey.D4, WindowsKey.D4 }, + { SlimDXKey.D5, WindowsKey.D5 }, + { SlimDXKey.D6, WindowsKey.D6 }, + { SlimDXKey.D7, WindowsKey.D7 }, + { SlimDXKey.D8, WindowsKey.D8 }, + { SlimDXKey.D9, WindowsKey.D9 }, + { SlimDXKey.A, WindowsKey.A }, + { SlimDXKey.B, WindowsKey.B }, + { SlimDXKey.C, WindowsKey.C }, + { SlimDXKey.D, WindowsKey.D }, + { SlimDXKey.E, WindowsKey.E }, + { SlimDXKey.F, WindowsKey.F }, + { SlimDXKey.G, WindowsKey.G }, + { SlimDXKey.H, WindowsKey.H }, + { SlimDXKey.I, WindowsKey.I }, + { SlimDXKey.J, WindowsKey.J }, + { SlimDXKey.K, WindowsKey.K }, + { SlimDXKey.L, WindowsKey.L }, + { SlimDXKey.M, WindowsKey.M }, + { SlimDXKey.N, WindowsKey.N }, + { SlimDXKey.O, WindowsKey.O }, + { SlimDXKey.P, WindowsKey.P }, + { SlimDXKey.Q, WindowsKey.Q }, + { SlimDXKey.R, WindowsKey.R }, + { SlimDXKey.S, WindowsKey.S }, + { SlimDXKey.T, WindowsKey.T }, + { SlimDXKey.U, WindowsKey.U }, + { SlimDXKey.V, WindowsKey.V }, + { SlimDXKey.W, WindowsKey.W }, + { SlimDXKey.X, WindowsKey.X }, + { SlimDXKey.Y, WindowsKey.Y }, + { SlimDXKey.Z, WindowsKey.Z }, + //{ SlimDXKey.AbntC1, WindowsKey.A }, + //{ SlimDXKey.AbntC2, WindowsKey.A }, + { SlimDXKey.Apostrophe, WindowsKey.OemQuotes }, + { SlimDXKey.Applications, WindowsKey.Apps }, + { SlimDXKey.AT, WindowsKey.Oem3 }, // OemTilde と同値 + //{ SlimDXKey.AX, WindowsKey.A }, // OemAX (225) は未定義 + { SlimDXKey.Backspace, WindowsKey.Back }, + { SlimDXKey.Backslash, WindowsKey.OemBackslash }, + //{ SlimDXKey.Calculator, WindowsKey.A }, + { SlimDXKey.CapsLock, WindowsKey.CapsLock }, + { SlimDXKey.Colon, WindowsKey.Oem1 }, + { SlimDXKey.Comma, WindowsKey.Oemcomma }, + { SlimDXKey.Convert, WindowsKey.IMEConvert }, + { SlimDXKey.Delete, WindowsKey.Delete }, + { SlimDXKey.DownArrow, WindowsKey.Down }, + { SlimDXKey.End, WindowsKey.End }, + { SlimDXKey.Equals, WindowsKey.A }, // ? + { SlimDXKey.Escape, WindowsKey.Escape }, + { SlimDXKey.F1, WindowsKey.F1 }, + { SlimDXKey.F2, WindowsKey.F2 }, + { SlimDXKey.F3, WindowsKey.F3 }, + { SlimDXKey.F4, WindowsKey.F4 }, + { SlimDXKey.F5, WindowsKey.F5 }, + { SlimDXKey.F6, WindowsKey.F6 }, + { SlimDXKey.F7, WindowsKey.F7 }, + { SlimDXKey.F8, WindowsKey.F8 }, + { SlimDXKey.F9, WindowsKey.F9 }, + { SlimDXKey.F10, WindowsKey.F10 }, + { SlimDXKey.F11, WindowsKey.F11 }, + { SlimDXKey.F12, WindowsKey.F12 }, + { SlimDXKey.F13, WindowsKey.F13 }, + { SlimDXKey.F14, WindowsKey.F14 }, + { SlimDXKey.F15, WindowsKey.F15 }, + { SlimDXKey.Grave, WindowsKey.A }, // ? + { SlimDXKey.Home, WindowsKey.Home }, + { SlimDXKey.Insert, WindowsKey.Insert }, + { SlimDXKey.Kana, WindowsKey.KanaMode }, + { SlimDXKey.Kanji, WindowsKey.KanjiMode }, + { SlimDXKey.LeftBracket, WindowsKey.Oem4 }, + { SlimDXKey.LeftControl, WindowsKey.LControlKey }, + { SlimDXKey.LeftArrow, WindowsKey.Left }, + { SlimDXKey.LeftAlt, WindowsKey.LMenu }, + { SlimDXKey.LeftShift, WindowsKey.LShiftKey }, + { SlimDXKey.LeftWindowsKey, WindowsKey.LWin }, + { SlimDXKey.Mail, WindowsKey.LaunchMail }, + { SlimDXKey.MediaSelect, WindowsKey.SelectMedia }, + { SlimDXKey.MediaStop, WindowsKey.MediaStop }, + { SlimDXKey.Minus, WindowsKey.OemMinus }, + { SlimDXKey.Mute, WindowsKey.VolumeMute }, + { SlimDXKey.MyComputer, WindowsKey.A }, // ? + { SlimDXKey.NextTrack, WindowsKey.MediaNextTrack }, + { SlimDXKey.NoConvert, WindowsKey.IMENonconvert }, + { SlimDXKey.NumberLock, WindowsKey.NumLock }, + { SlimDXKey.NumberPad0, WindowsKey.NumPad0 }, + { SlimDXKey.NumberPad1, WindowsKey.NumPad1 }, + { SlimDXKey.NumberPad2, WindowsKey.NumPad2 }, + { SlimDXKey.NumberPad3, WindowsKey.NumPad3 }, + { SlimDXKey.NumberPad4, WindowsKey.NumPad4 }, + { SlimDXKey.NumberPad5, WindowsKey.NumPad5 }, + { SlimDXKey.NumberPad6, WindowsKey.NumPad6 }, + { SlimDXKey.NumberPad7, WindowsKey.NumPad7 }, + { SlimDXKey.NumberPad8, WindowsKey.NumPad8 }, + { SlimDXKey.NumberPad9, WindowsKey.NumPad9 }, + { SlimDXKey.NumberPadComma, WindowsKey.Separator }, + { SlimDXKey.NumberPadEnter, WindowsKey.A }, // ? + { SlimDXKey.NumberPadEquals, WindowsKey.A }, // ? + { SlimDXKey.NumberPadMinus, WindowsKey.Subtract }, + { SlimDXKey.NumberPadPeriod, WindowsKey.Decimal }, + { SlimDXKey.NumberPadPlus, WindowsKey.Add }, + { SlimDXKey.NumberPadSlash, WindowsKey.Divide }, + { SlimDXKey.NumberPadStar, WindowsKey.Multiply }, + { SlimDXKey.Oem102, WindowsKey.Oem102 }, + { SlimDXKey.PageDown, WindowsKey.PageDown }, + { SlimDXKey.PageUp, WindowsKey.PageUp }, + { SlimDXKey.Pause, WindowsKey.Pause }, + { SlimDXKey.Period, WindowsKey.OemPeriod }, + { SlimDXKey.PlayPause, WindowsKey.MediaPlayPause }, + { SlimDXKey.Power, WindowsKey.A }, // ? + { SlimDXKey.PreviousTrack, WindowsKey.MediaPreviousTrack }, + { SlimDXKey.RightBracket, WindowsKey.Oem6 }, + { SlimDXKey.RightControl, WindowsKey.RControlKey }, + { SlimDXKey.Return, WindowsKey.Return }, + { SlimDXKey.RightArrow, WindowsKey.Right }, + { SlimDXKey.RightAlt, WindowsKey.RMenu }, + { SlimDXKey.RightShift, WindowsKey.A }, // ? + { SlimDXKey.RightWindowsKey, WindowsKey.RWin }, + { SlimDXKey.ScrollLock, WindowsKey.Scroll }, + { SlimDXKey.Semicolon, WindowsKey.Oemplus }, // OemSemicolon じゃなくて? + { SlimDXKey.Slash, WindowsKey.Oem2 }, + { SlimDXKey.Sleep, WindowsKey.Sleep }, + { SlimDXKey.Space, WindowsKey.Space }, + { SlimDXKey.Stop, WindowsKey.MediaStop }, + { SlimDXKey.PrintScreen, WindowsKey.PrintScreen }, + { SlimDXKey.Tab, WindowsKey.Tab }, + { SlimDXKey.Underline, WindowsKey.Oem102 }, + //{ SlimDXKey.Unlabeled, WindowsKey.A }, // ? + { SlimDXKey.UpArrow, WindowsKey.Up }, + { SlimDXKey.VolumeDown, WindowsKey.VolumeDown }, + { SlimDXKey.VolumeUp, WindowsKey.VolumeUp }, + { SlimDXKey.Wake, WindowsKey.A }, // ? + { SlimDXKey.WebBack, WindowsKey.BrowserBack }, + { SlimDXKey.WebFavorites, WindowsKey.BrowserFavorites }, + { SlimDXKey.WebForward, WindowsKey.BrowserForward }, + { SlimDXKey.WebHome, WindowsKey.BrowserHome }, + { SlimDXKey.WebRefresh, WindowsKey.BrowserRefresh }, + { SlimDXKey.WebSearch, WindowsKey.BrowserSearch }, + { SlimDXKey.WebStop, WindowsKey.BrowserStop }, + { SlimDXKey.Yen, WindowsKey.OemBackslash }, + #endregion + }; + } +} diff --git a/FDK19/コード/02.入力/E入力デバイス種別.cs b/FDK19/コード/02.入力/E入力デバイス種別.cs new file mode 100644 index 00000000..2109b159 --- /dev/null +++ b/FDK19/コード/02.入力/E入力デバイス種別.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace FDK +{ + // 定数 + + public enum E入力デバイス種別 + { + Keyboard, + Mouse, + Joystick, + MidiIn, + Unknown + } +} diff --git a/FDK19/コード/02.入力/IInputDevice.cs b/FDK19/コード/02.入力/IInputDevice.cs new file mode 100644 index 00000000..7b42faa4 --- /dev/null +++ b/FDK19/コード/02.入力/IInputDevice.cs @@ -0,0 +1,37 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace FDK +{ + public interface IInputDevice : IDisposable + { + // プロパティ + + E入力デバイス種別 e入力デバイス種別 + { + get; + } + string GUID + { + get; + } + int ID + { + get; + } + List list入力イベント + { + get; + } + + + // メソッドインターフェース + + void tポーリング( bool bWindowがアクティブ中, bool bバッファ入力を使用する ); + bool bキーが押された( int nKey ); + bool bキーが押されている( int nKey ); + bool bキーが離された( int nKey ); + bool bキーが離されている( int nKey ); + } +} diff --git a/FDK19/コード/02.入力/STInputEvent.cs b/FDK19/コード/02.入力/STInputEvent.cs new file mode 100644 index 00000000..1903df4f --- /dev/null +++ b/FDK19/コード/02.入力/STInputEvent.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Runtime.InteropServices; + +namespace FDK +{ + // 構造体 + + [StructLayout( LayoutKind.Sequential )] + public struct STInputEvent + { + public int nKey { get; set; } + public bool b押された { get; set; } + public bool b離された { get; set; } + public long nTimeStamp { get; set; } + public int nVelocity { get; set; } + } +} diff --git a/FDK19/コード/02.入力/SlimDXKeys.cs b/FDK19/コード/02.入力/SlimDXKeys.cs new file mode 100644 index 00000000..3a876285 --- /dev/null +++ b/FDK19/コード/02.入力/SlimDXKeys.cs @@ -0,0 +1,171 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace SlimDXKeys +{ + public enum Key + { + D0 = 0, + D1 = 1, + D2 = 2, + D3 = 3, + D4 = 4, + D5 = 5, + D6 = 6, + D7 = 7, + D8 = 8, + D9 = 9, + A = 10, + B = 11, + C = 12, + D = 13, + E = 14, + F = 15, + G = 16, + H = 17, + I = 18, + J = 19, + K = 20, + L = 21, + M = 22, + N = 23, + O = 24, + P = 25, + Q = 26, + R = 27, + S = 28, + T = 29, + U = 30, + V = 31, + W = 32, + X = 33, + Y = 34, + Z = 35, + AbntC1 = 36, + AbntC2 = 37, + Apostrophe = 38, + Applications = 39, + AT = 40, + AX = 41, + Backspace = 42, + Backslash = 43, + Calculator = 44, + CapsLock = 45, + Colon = 46, + Comma = 47, + Convert = 48, + Delete = 49, + DownArrow = 50, + End = 51, + Equals = 52, + Escape = 53, + F1 = 54, + F2 = 55, + F3 = 56, + F4 = 57, + F5 = 58, + F6 = 59, + F7 = 60, + F8 = 61, + F9 = 62, + F10 = 63, + F11 = 64, + F12 = 65, + F13 = 66, + F14 = 67, + F15 = 68, + Grave = 69, + Home = 70, + Insert = 71, + Kana = 72, + Kanji = 73, + LeftBracket = 74, + LeftControl = 75, + LeftArrow = 76, + LeftAlt = 77, + LeftShift = 78, + LeftWindowsKey = 79, + Mail = 80, + MediaSelect = 81, + MediaStop = 82, + Minus = 83, + Mute = 84, + MyComputer = 85, + NextTrack = 86, + NoConvert = 87, + NumberLock = 88, + NumberPad0 = 89, + NumberPad1 = 90, + NumberPad2 = 91, + NumberPad3 = 92, + NumberPad4 = 93, + NumberPad5 = 94, + NumberPad6 = 95, + NumberPad7 = 96, + NumberPad8 = 97, + NumberPad9 = 98, + NumberPadComma = 99, + NumberPadEnter = 100, + NumberPadEquals = 101, + NumberPadMinus = 102, + NumberPadPeriod = 103, + NumberPadPlus = 104, + NumberPadSlash = 105, + NumberPadStar = 106, + Oem102 = 107, + PageDown = 108, + PageUp = 109, + Pause = 110, + Period = 111, + PlayPause = 112, + Power = 113, + PreviousTrack = 114, + RightBracket = 115, + RightControl = 116, + Return = 117, + RightArrow = 118, + RightAlt = 119, + RightShift = 120, + RightWindowsKey = 121, + ScrollLock = 122, + Semicolon = 123, + Slash = 124, + Sleep = 125, + Space = 126, + Stop = 127, + PrintScreen = 128, + Tab = 129, + Underline = 130, + Unlabeled = 131, + UpArrow = 132, + VolumeDown = 133, + VolumeUp = 134, + Wake = 135, + WebBack = 136, + WebFavorites = 137, + WebForward = 138, + WebHome = 139, + WebRefresh = 140, + WebSearch = 141, + WebStop = 142, + Yen = 143, + Unknown = 144 + } + public enum MouseObject + { + Button1 = 0, + Button2 = 1, + Button3 = 2, + Button4 = 3, + Button5 = 4, + Button6 = 5, + Button7 = 6, + Button8 = 7, + XAxis = 8, + YAxis = 9, + ZAxis = 10 + } +} \ No newline at end of file diff --git a/FDK19/コード/03.サウンド/CSound.cs b/FDK19/コード/03.サウンド/CSound.cs new file mode 100644 index 00000000..ba66b6fc --- /dev/null +++ b/FDK19/コード/03.サウンド/CSound.cs @@ -0,0 +1,2052 @@ +using System; +using System.Collections.ObjectModel; +using System.Diagnostics; +using System.Runtime.InteropServices; +using System.IO; +using System.Linq; +using System.Threading; +using FDK.ExtensionMethods; +using SharpDX.DirectSound; +using SharpDX.Multimedia; +using Un4seen.Bass; +using Un4seen.BassAsio; +using Un4seen.BassWasapi; +using Un4seen.Bass.AddOn.Mix; +using Un4seen.Bass.AddOn.Fx; + + +namespace FDK +{ + #region [ DTXMania用拡張 ] + public class CSound管理 // : CSound + { + private static ISoundDevice SoundDevice + { + get; set; + } + private static ESoundDeviceType SoundDeviceType + { + get; set; + } + public static CSoundTimer rc演奏用タイマ = null; + public static bool bUseOSTimer = false; // OSのタイマーを使うか、CSoundTimerを使うか。DTXCではfalse, DTXManiaではtrue。 + // DTXC(DirectSound)でCSoundTimerを使うと、内部で無音のループサウンドを再生するため + // サウンドデバイスを占有してしまい、Viewerとして呼び出されるDTXManiaで、ASIOが使えなくなる。 + + // DTXMania単体でこれをtrueにすると、WASAPI/ASIO時に演奏タイマーとしてFDKタイマーではなく + // システムのタイマーを使うようになる。こうするとスクロールは滑らかになるが、音ズレが出るかもしれない。 + + public static IntPtr WindowHandle; + + public static bool bIsTimeStretch = false; + + private static int _nMasterVolume; + public int nMasterVolume + { + get + { + return _nMasterVolume; + } + //get + //{ + // if ( SoundDeviceType == ESoundDeviceType.ExclusiveWASAPI || SoundDeviceType == ESoundDeviceType.ASIO ) + // { + // return Bass.BASS_GetConfig(BASSConfig.BASS_CONFIG_GVOL_STREAM ) / 100; + // } + // else + // { + // return 100; + // } + //} + //set + //{ + // if ( SoundDeviceType == ESoundDeviceType.ExclusiveWASAPI ) + // { + // // LINEARでなくWINDOWS(2)を使う必要があるが、exclusive時は使用不可、またデバイス側が対応してないと使用不可 + // bool b = BassWasapi.BASS_WASAPI_SetVolume( BASSWASAPIVolume.BASS_WASAPI_CURVE_LINEAR, value / 100.0f ); + // if ( !b ) + // { + // BASSError be = Bass.BASS_ErrorGetCode(); + // Trace.TraceInformation( "WASAPI Master Volume Set Error: " + be.ToString() ); + // } + // } + //} + //set + //{ + // if ( SoundDeviceType == ESoundDeviceType.ExclusiveWASAPI || SoundDeviceType == ESoundDeviceType.ASIO ) + // { + // bool b = Bass.BASS_SetConfig(BASSConfig.BASS_CONFIG_GVOL_STREAM, value * 100 ); + // if ( !b ) + // { + // BASSError be = Bass.BASS_ErrorGetCode(); + // Trace.TraceInformation( "Master Volume Set Error: " + be.ToString() ); + // } + // } + //} + //set + //{ + // if ( SoundDeviceType == ESoundDeviceType.ExclusiveWASAPI || SoundDeviceType == ESoundDeviceType.ASIO ) + // { + // var nodes = new BASS_MIXER_NODE[ 1 ] { new BASS_MIXER_NODE( 0, (float) value ) }; + // BassMix.BASS_Mixer_ChannelSetEnvelope( SoundDevice.hMixer, BASSMIXEnvelope.BASS_MIXER_ENV_VOL, nodes ); + // } + //} + set + { + SoundDevice.nMasterVolume = value; + _nMasterVolume = value; + } + } + + ///// + ///// BASS時、mp3をストリーミング再生せずに、デコードしたraw wavをオンメモリ再生する場合はtrueにする。 + ///// 特殊なmp3を使用時はシークが乱れるので、必要に応じてtrueにすること。(Config.iniのNoMP3Streamingで設定可能。) + ///// ただし、trueにすると、その分再生開始までの時間が長くなる。 + ///// + //public static bool bIsMP3DecodeByWindowsCodec = false; + + public static int nMixing = 0; + public int GetMixingStreams() + { + return nMixing; + } + public static int nStreams = 0; + public int GetStreams() + { + return nStreams; + } + #region [ WASAPI/ASIO/DirectSound設定値 ] + /// + /// WASAPI 排他モード出力における再生遅延[ms](の希望値)。最終的にはこの数値を基にドライバが決定する)。 + /// 0以下の値を指定すると、この数値はWASAPI初期化時に自動設定する。正数を指定すると、その値を設定しようと試みる。 + /// + public static int SoundDelayExclusiveWASAPI = 0; // SSTでは、50ms + public int GetSoundExclusiveWASAPI() + { + return SoundDelayExclusiveWASAPI; + } + public void SetSoundDelayExclusiveWASAPI( int value ) + { + SoundDelayExclusiveWASAPI = value; + } + /// + /// WASAPI 共有モード出力における再生遅延[ms]。ユーザが決定する。 + /// + public static int SoundDelaySharedWASAPI = 100; + /// + /// 排他WASAPIバッファの更新間隔。出力間隔ではないので注意。 + /// → 自動設定されるのでSoundDelay よりも小さい値であること。(小さすぎる場合はBASSによって自動修正される。) + /// + public static int SoundUpdatePeriodExclusiveWASAPI = 6; + /// + /// 共有WASAPIバッファの更新間隔。出力間隔ではないので注意。 + /// SoundDelay よりも小さい値であること。(小さすぎる場合はBASSによって自動修正される。) + /// + public static int SoundUpdatePeriodSharedWASAPI = 6; + ///// + ///// ASIO 出力における再生遅延[ms](の希望値)。最終的にはこの数値を基にドライバが決定する)。 + ///// + //public static int SoundDelayASIO = 0; // SSTでは50ms。0にすると、デバイスの設定値をそのまま使う。 + /// + /// ASIO 出力におけるバッファサイズ。 + /// + public static int SoundDelayASIO = 0; // 0にすると、デバイスの設定値をそのまま使う。 + public int GetSoundDelayASIO() + { + return SoundDelayASIO; + } + public void SetSoundDelayASIO(int value) + { + SoundDelayASIO = value; + } + public static int ASIODevice = 0; + public int GetASIODevice() + { + return ASIODevice; + } + public void SetASIODevice(int value) + { + ASIODevice = value; + } + /// + /// DirectSound 出力における再生遅延[ms]。ユーザが決定する。 + /// + public static int SoundDelayDirectSound = 100; + + public long GetSoundDelay() + { + if ( SoundDevice != null ) + { + return SoundDevice.n実バッファサイズms; + } + else + { + return -1; + } + } + + #endregion + + + /// + /// DTXMania用コンストラクタ + /// + /// + /// + /// + /// + /// + public CSound管理( IntPtr handle, ESoundDeviceType soundDeviceType, int nSoundDelayExclusiveWASAPI, int nSoundDelayASIO, int nASIODevice, bool _bUseOSTimer ) + { + WindowHandle = handle; + SoundDevice = null; + //bUseOSTimer = false; + t初期化( soundDeviceType, nSoundDelayExclusiveWASAPI, nSoundDelayASIO, nASIODevice, _bUseOSTimer ); + } + public void Dispose() + { + t終了(); + } + + //public static void t初期化() + //{ + // t初期化( ESoundDeviceType.DirectSound, 0, 0, 0 ); + //} + + public void t初期化( ESoundDeviceType soundDeviceType, int _nSoundDelayExclusiveWASAPI, int _nSoundDelayASIO, int _nASIODevice, IntPtr handle ) + { + //if ( !bInitialized ) + { + WindowHandle = handle; + t初期化( soundDeviceType, _nSoundDelayExclusiveWASAPI, _nSoundDelayASIO, _nASIODevice ); + //bInitialized = true; + } + } + public void t初期化( ESoundDeviceType soundDeviceType, int _nSoundDelayExclusiveWASAPI, int _nSoundDelayASIO, int _nASIODevice ) + { + t初期化( soundDeviceType, _nSoundDelayExclusiveWASAPI, _nSoundDelayASIO, _nASIODevice, false ); + } + + public void t初期化( ESoundDeviceType soundDeviceType, int _nSoundDelayExclusiveWASAPI, int _nSoundDelayASIO, int _nASIODevice, bool _bUseOSTimer ) + { + //SoundDevice = null; // 後で再初期化することがあるので、null初期化はコンストラクタに回す + rc演奏用タイマ = null; // Global.Bass 依存(つまりユーザ依存) + nMixing = 0; + + SoundDelayExclusiveWASAPI = _nSoundDelayExclusiveWASAPI; + SoundDelayASIO = _nSoundDelayASIO; + ASIODevice = _nASIODevice; + bUseOSTimer = _bUseOSTimer; + + ESoundDeviceType[] ESoundDeviceTypes = new ESoundDeviceType[ 4 ] + { + ESoundDeviceType.ExclusiveWASAPI, + ESoundDeviceType.ASIO, + ESoundDeviceType.DirectSound, + ESoundDeviceType.Unknown + }; + + int n初期デバイス; + switch ( soundDeviceType ) + { + case ESoundDeviceType.ExclusiveWASAPI: + n初期デバイス = 0; + break; + case ESoundDeviceType.ASIO: + n初期デバイス = 1; + break; + case ESoundDeviceType.DirectSound: + n初期デバイス = 2; + break; + default: + n初期デバイス = 3; + break; + } + for ( SoundDeviceType = ESoundDeviceTypes[ n初期デバイス ]; ; SoundDeviceType = ESoundDeviceTypes[ ++n初期デバイス ] ) + { + try + { + t現在のユーザConfigに従ってサウンドデバイスとすべての既存サウンドを再構築する(); + break; + } + catch ( Exception e ) + { + Trace.TraceError( e.ToString() ); + Trace.TraceError( "例外が発生しましたが処理を継続します。 (2609806d-23e8-45c2-9389-b427e80915bc)" ); + if ( ESoundDeviceTypes[ n初期デバイス ] == ESoundDeviceType.Unknown ) + { + Trace.TraceError( string.Format( "サウンドデバイスの初期化に失敗しました。" ) ); + break; + } + } + } + if ( soundDeviceType == ESoundDeviceType.ExclusiveWASAPI || soundDeviceType == ESoundDeviceType.ASIO ) + { + //Bass.BASS_SetConfig( BASSConfig.BASS_CONFIG_UPDATETHREADS, 4 ); + //Bass.BASS_SetConfig( BASSConfig.BASS_CONFIG_UPDATEPERIOD, 0 ); + + Trace.TraceInformation( "BASS_CONFIG_UpdatePeriod=" + Bass.BASS_GetConfig( BASSConfig.BASS_CONFIG_UPDATEPERIOD ) ); + Trace.TraceInformation( "BASS_CONFIG_UpdateThreads=" + Bass.BASS_GetConfig( BASSConfig.BASS_CONFIG_UPDATETHREADS ) ); + } + } + + public void tDisableUpdateBufferAutomatically() + { + //Bass.BASS_SetConfig( BASSConfig.BASS_CONFIG_UPDATETHREADS, 0 ); + //Bass.BASS_SetConfig( BASSConfig.BASS_CONFIG_UPDATEPERIOD, 0 ); + + //Trace.TraceInformation( "BASS_CONFIG_UpdatePeriod=" + Bass.BASS_GetConfig( BASSConfig.BASS_CONFIG_UPDATEPERIOD ) ); + //Trace.TraceInformation( "BASS_CONFIG_UpdateThreads=" + Bass.BASS_GetConfig( BASSConfig.BASS_CONFIG_UPDATETHREADS ) ); + } + + + public static void t終了() + { + C共通.tDisposeする( SoundDevice ); SoundDevice = null; + C共通.tDisposeする( ref rc演奏用タイマ ); // Global.Bass を解放した後に解放すること。(Global.Bass で参照されているため) + } + + + public static void t現在のユーザConfigに従ってサウンドデバイスとすべての既存サウンドを再構築する() + { + #region [ すでにサウンドデバイスと演奏タイマが構築されていれば解放する。] + //----------------- + if ( SoundDevice != null ) + { + // すでに生成済みのサウンドがあれば初期状態に戻す。 + + CSound.tすべてのサウンドを初期状態に戻す(); // リソースは解放するが、CSoundのインスタンスは残す。 + + + // サウンドデバイスと演奏タイマを解放する。 + + C共通.tDisposeする( SoundDevice ); SoundDevice = null; + C共通.tDisposeする( ref rc演奏用タイマ ); // Global.SoundDevice を解放した後に解放すること。(Global.SoundDevice で参照されているため) + } + //----------------- + #endregion + + #region [ 新しいサウンドデバイスを構築する。] + //----------------- + switch ( SoundDeviceType ) + { + case ESoundDeviceType.ExclusiveWASAPI: + SoundDevice = new CSoundDeviceWASAPI( CSoundDeviceWASAPI.Eデバイスモード.共有, SoundDelayExclusiveWASAPI, SoundUpdatePeriodExclusiveWASAPI ); + break; + + case ESoundDeviceType.SharedWASAPI: + SoundDevice = new CSoundDeviceWASAPI( CSoundDeviceWASAPI.Eデバイスモード.共有, SoundDelaySharedWASAPI, SoundUpdatePeriodSharedWASAPI ); + break; + + case ESoundDeviceType.ASIO: + SoundDevice = new CSoundDeviceASIO( SoundDelayASIO, ASIODevice ); + break; + + case ESoundDeviceType.DirectSound: + SoundDevice = new CSoundDeviceDirectSound( WindowHandle, SoundDelayDirectSound, bUseOSTimer ); + break; + + default: + throw new Exception( string.Format( "未対応の SoundDeviceType です。[{0}]", SoundDeviceType.ToString() ) ); + } + //----------------- + #endregion + #region [ 新しい演奏タイマを構築する。] + //----------------- + rc演奏用タイマ = new CSoundTimer( SoundDevice ); + //----------------- + #endregion + + SoundDevice.nMasterVolume = _nMasterVolume; // サウンドデバイスに対して、マスターボリュームを再設定する + + CSound.tすべてのサウンドを再構築する( SoundDevice ); // すでに生成済みのサウンドがあれば作り直す。 + } + public CSound tサウンドを生成する( string filename, ESoundGroup soundGroup ) + { + if( !File.Exists( filename ) ) + { + Trace.TraceWarning($"[i18n] File does not exist: {filename}"); + return null; + } + + if ( SoundDeviceType == ESoundDeviceType.Unknown ) + { + throw new Exception( string.Format( "未対応の SoundDeviceType です。[{0}]", SoundDeviceType.ToString() ) ); + } + return SoundDevice.tサウンドを作成する( filename, soundGroup ); + } + + private static DateTime lastUpdateTime = DateTime.MinValue; + public void t再生中の処理をする( object o ) // #26122 2011.9.1 yyagi; delegate経由の呼び出し用 + { + t再生中の処理をする(); + } + public void t再生中の処理をする() + { +//★★★★★★★★★★★★★★★★★★★★★ダミー★★★★★★★★★★★★★★★★★★ +// Debug.Write( "再生中の処理をする()" ); + //DateTime now = DateTime.Now; + //TimeSpan ts = now - lastUpdateTime; + //if ( ts.Milliseconds > 5 ) + //{ + // bool b = Bass.BASS_Update( 100 * 2 ); + // lastUpdateTime = DateTime.Now; + // if ( !b ) + // { + // Trace.TraceInformation( "BASS_UPdate() failed: " + Bass.BASS_ErrorGetCode().ToString() ); + // } + //} + } + + public void tサウンドを破棄する( CSound csound ) + { + csound?.t解放する( true ); // インスタンスは存続→破棄にする。 + } + + public float GetCPUusage() + { + float f; + switch ( SoundDeviceType ) + { + case ESoundDeviceType.ExclusiveWASAPI: + case ESoundDeviceType.SharedWASAPI: + f = BassWasapi.BASS_WASAPI_GetCPU(); + break; + case ESoundDeviceType.ASIO: + f = BassAsio.BASS_ASIO_GetCPU(); + break; + case ESoundDeviceType.DirectSound: + f = 0.0f; + break; + default: + f = 0.0f; + break; + } + return f; + } + + public string GetCurrentSoundDeviceType() + { + switch ( SoundDeviceType ) + { + case ESoundDeviceType.ExclusiveWASAPI: + case ESoundDeviceType.SharedWASAPI: + return "WASAPI"; + case ESoundDeviceType.ASIO: + return "ASIO"; + case ESoundDeviceType.DirectSound: + return "DirectSound"; + default: + return "Unknown"; + } + } + + public void AddMixer( CSound cs, double db再生速度, bool _b演奏終了後も再生が続くチップである ) + { + cs.b演奏終了後も再生が続くチップである = _b演奏終了後も再生が続くチップである; + cs.db再生速度 = db再生速度; + cs.tBASSサウンドをミキサーに追加する(); + } + public void AddMixer( CSound cs, double db再生速度 ) + { + cs.db再生速度 = db再生速度; + cs.tBASSサウンドをミキサーに追加する(); + } + public void AddMixer( CSound cs ) + { + cs.tBASSサウンドをミキサーに追加する(); + } + public void RemoveMixer( CSound cs ) + { + cs.tBASSサウンドをミキサーから削除する(); + } + } + #endregion + + // CSound は、サウンドデバイスが変更されたときも、インスタンスを再作成することなく、新しいデバイスで作り直せる必要がある。 + // そのため、デバイスごとに別のクラスに分割するのではなく、1つのクラスに集約するものとする。 + + public class CSound : IDisposable + { + public const int MinimumSongVol = 0; + public const int MaximumSongVol = 200; // support an approximate doubling in volume. + public const int DefaultSongVol = 100; + + // 2018-08-19 twopointzero: Note the present absence of a MinimumAutomationLevel. + // We will revisit this if/when song select BGM fade-in/fade-out needs + // updating due to changing the type or range of AutomationLevel + public const int MaximumAutomationLevel = 100; + public const int DefaultAutomationLevel = 100; + + public const int MinimumGroupLevel = 0; + public const int MaximumGroupLevel = 100; + public const int DefaultGroupLevel = 100; + public const int DefaultSoundEffectLevel = 80; + public const int DefaultVoiceLevel = 90; + public const int DefaultSongPlaybackLevel = 90; + + public static readonly Lufs MinimumLufs = new Lufs(-100.0); + public static readonly Lufs MaximumLufs = new Lufs(10.0); // support an approximate doubling in volume. + + private static readonly Lufs DefaultGain = new Lufs(0.0); + + public readonly ESoundGroup SoundGroup; + + #region [ DTXMania用拡張 ] + + public int n総演奏時間ms + { + get; + private set; + } + public int nサウンドバッファサイズ // 取りあえず0固定★★★★★★★★★★★★★★★★★★★★ + { + get { return 0; } + } + public bool bストリーム再生する // 取りあえずfalse固定★★★★★★★★★★★★★★★★★★★★ + // trueにすると同一チップ音の多重再生で問題が出る(4POLY音源として動かない) + { + get { return false; } + } + public double db周波数倍率 + { + get + { + return _db周波数倍率; + } + set + { + if ( _db周波数倍率 != value ) + { + _db周波数倍率 = value; + if ( bBASSサウンドである ) + { + Bass.BASS_ChannelSetAttribute( this.hBassStream, BASSAttribute.BASS_ATTRIB_FREQ, ( float ) ( _db周波数倍率 * _db再生速度 * nオリジナルの周波数 ) ); + } + else + { + try + { + this.Buffer.Frequency = (int)(_db周波数倍率 * _db再生速度 * nオリジナルの周波数); + } + catch + { + //例外処理は出さない + this.b速度上げすぎ問題 = true; + } + } + } + } + } + public double db再生速度 + { + get + { + return _db再生速度; + } + set + { + if ( _db再生速度 != value ) + { + _db再生速度 = value; + bIs1倍速再生 = ( _db再生速度 == 1.000f ); + if ( bBASSサウンドである ) + { + if ( _hTempoStream != 0 && !this.bIs1倍速再生 ) // 再生速度がx1.000のときは、TempoStreamを用いないようにして高速化する + { + this.hBassStream = _hTempoStream; + } + else + { + this.hBassStream = _hBassStream; + } + + if ( CSound管理.bIsTimeStretch ) + { + Bass.BASS_ChannelSetAttribute( this.hBassStream, BASSAttribute.BASS_ATTRIB_TEMPO, (float) ( db再生速度 * 100 - 100 ) ); + //double seconds = Bass.BASS_ChannelBytes2Seconds( this.hTempoStream, nBytes ); + //this.n総演奏時間ms = (int) ( seconds * 1000 ); + } + else + { + Bass.BASS_ChannelSetAttribute( this.hBassStream, BASSAttribute.BASS_ATTRIB_FREQ, ( float ) ( _db周波数倍率 * _db再生速度 * nオリジナルの周波数 ) ); + } + } + else + { + try + { + this.Buffer.Frequency = (int)(_db周波数倍率 * _db再生速度 * nオリジナルの周波数); + } + catch + { + //例外処理は出さない + this.b速度上げすぎ問題 = true; + } + } + } + } + } + #endregion + + public bool b速度上げすぎ問題 = false; + public bool b演奏終了後も再生が続くチップである = false; // これがtrueなら、本サウンドの再生終了のコールバック時に自動でミキサーから削除する + + //private STREAMPROC _cbStreamXA; // make it global, so that the GC can not remove it + private SYNCPROC _cbEndofStream; // ストリームの終端まで再生されたときに呼び出されるコールバック +// private WaitCallback _cbRemoveMixerChannel; + + /// + /// Gain is applied "first" to the audio data, much as in a physical or + /// software mixer. Later steps in the flow of audio apply "channel" level + /// (e.g. AutomationLevel) and mixing group level (e.g. GroupLevel) before + /// the audio is output. + /// + /// This method, taking an integer representing a percent value, is used + /// for mixing in the SONGVOL value, when available. It is also used for + /// DTXViewer preview mode. + /// + public void SetGain(int songVol) + { + SetGain(LinearIntegerPercentToLufs(songVol), null); + } + + private static Lufs LinearIntegerPercentToLufs(int percent) + { + // 2018-08-27 twopointzero: We'll use the standard conversion until an appropriate curve can be selected + return new Lufs(20.0 * Math.Log10(percent / 100.0)); + } + + /// + /// Gain is applied "first" to the audio data, much as in a physical or + /// software mixer. Later steps in the flow of audio apply "channel" level + /// (e.g. AutomationLevel) and mixing group level (e.g. GroupLevel) before + /// the audio is output. + /// + /// This method, taking a LUFS gain value and a LUFS true audio peak value, + /// is used for mixing in the loudness-metadata-base gain value, when available. + /// + public void SetGain(Lufs gain, Lufs? truePeak) + { + if (Equals(_gain, gain)) + { + return; + } + + _gain = gain; + _truePeak = truePeak; + + if (SoundGroup == ESoundGroup.SongPlayback) + { + Trace.TraceInformation($"{nameof(CSound)}.{nameof(SetGain)}: Gain: {_gain}. True Peak: {_truePeak}"); + } + + SetVolume(); + } + + /// + /// AutomationLevel is applied "second" to the audio data, much as in a + /// physical or sofware mixer and its channel level. Before this Gain is + /// applied, and after this the mixing group level is applied. + /// + /// This is currently used only for automated fade in and out as is the + /// case right now for the song selection screen background music fade + /// in and fade out. + /// + public int AutomationLevel + { + get => _automationLevel; + set + { + if (_automationLevel == value) + { + return; + } + + _automationLevel = value; + + if (SoundGroup == ESoundGroup.SongPlayback) + { + Trace.TraceInformation($"{nameof(CSound)}.{nameof(AutomationLevel)} set: {AutomationLevel}"); + } + + SetVolume(); + } + } + + /// + /// GroupLevel is applied "third" to the audio data, much as in the sub + /// mixer groups of a physical or software mixer. Before this both the + /// Gain and AutomationLevel are applied, and after this the audio + /// flows into the audio subsystem for mixing and output based on the + /// master volume. + /// + /// This is currently automatically managed for each sound based on the + /// configured and dynamically adjustable sound group levels for each of + /// sound effects, voice, song preview, and song playback. + /// + /// See the SoundGroupLevelController and related classes for more. + /// + public int GroupLevel + { + private get => _groupLevel; + set + { + if (_groupLevel == value) + { + return; + } + + _groupLevel = value; + + if (SoundGroup == ESoundGroup.SongPlayback) + { + Trace.TraceInformation($"{nameof(CSound)}.{nameof(GroupLevel)} set: {GroupLevel}"); + } + + SetVolume(); + } + } + + private void SetVolume() + { + var automationLevel = LinearIntegerPercentToLufs(AutomationLevel); + var groupLevel = LinearIntegerPercentToLufs(GroupLevel); + + var gain = + _gain + + automationLevel + + groupLevel; + + var safeTruePeakGain = _truePeak?.Negate() ?? new Lufs(0); + var finalGain = gain.Min(safeTruePeakGain); + + if (SoundGroup == ESoundGroup.SongPlayback) + { + Trace.TraceInformation( + $"{nameof(CSound)}.{nameof(SetVolume)}: Gain:{_gain}. Automation Level: {automationLevel}. Group Level: {groupLevel}. Summed Gain: {gain}. Safe True Peak Gain: {safeTruePeakGain}. Final Gain: {finalGain}."); + } + + lufs音量 = finalGain; + } + + private Lufs lufs音量 + { + set + { + if (this.bBASSサウンドである) + { + var db音量 = ((value.ToDouble() / 100.0) + 1.0).Clamp(0, 1); + Bass.BASS_ChannelSetAttribute(this.hBassStream, BASSAttribute.BASS_ATTRIB_VOL, (float) db音量); + } + else if (this.bDirectSoundである) + { + var db音量 = (value.ToDouble() * 100.0).Clamp(-10000, 0); + this.Buffer.Volume = (int) Math.Round(db音量); + } + } + } + + /// + /// 左:-100~中央:0~100:右。set のみ。 + /// + public int n位置 + { + get + { + if( this.bBASSサウンドである ) + { + float f位置 = 0.0f; + if ( !Bass.BASS_ChannelGetAttribute( this.hBassStream, BASSAttribute.BASS_ATTRIB_PAN, ref f位置 ) ) + //if( BassMix.BASS_Mixer_ChannelGetEnvelopePos( this.hBassStream, BASSMIXEnvelope.BASS_MIXER_ENV_PAN, ref f位置 ) == -1 ) + return 0; + return (int) ( f位置 * 100 ); + } + else if( this.bDirectSoundである ) + { + return this._n位置; + } + return -9999; + } + set + { + if( this.bBASSサウンドである ) + { + float f位置 = Math.Min( Math.Max( value, -100 ), 100 ) / 100.0f; // -100~100 → -1.0~1.0 + //var nodes = new BASS_MIXER_NODE[ 1 ] { new BASS_MIXER_NODE( 0, f位置 ) }; + //BassMix.BASS_Mixer_ChannelSetEnvelope( this.hBassStream, BASSMIXEnvelope.BASS_MIXER_ENV_PAN, nodes ); + Bass.BASS_ChannelSetAttribute( this.hBassStream, BASSAttribute.BASS_ATTRIB_PAN, f位置 ); + } + else if( this.bDirectSoundである ) + { + this._n位置 = Math.Min( Math.Max( -100, value ), 100 ); // -100~100 + + if( this._n位置 == 0 ) + { + this._n位置db = 0; + } + else if( this._n位置 == -100 ) + { + this._n位置db = -10000; + } + else if( this._n位置 == 100 ) + { + this._n位置db = 10000; + } + else if( this._n位置 < 0 ) + { + this._n位置db = (int) ( ( 20.0 * Math.Log10( ( (double) ( this._n位置 + 100 ) ) / 100.0 ) ) * 100.0 ); + } + else + { + this._n位置db = (int) ( ( -20.0 * Math.Log10( ( (double) ( 100 - this._n位置 ) ) / 100.0 ) ) * 100.0 ); + } + + this.Buffer.Pan = this._n位置db; + } + } + } + + /// + /// DirectSoundのセカンダリバッファ。 + /// + //public SecondarySoundBuffer DirectSoundBuffer + public SoundBuffer DirectSoundBuffer + { + get { return this.Buffer; } + } + + /// + /// DirectSoundのセカンダリバッファ作成時のフラグ。 + /// + public BufferFlags DirectSoundBufferFlags + { + get; + protected set; + } + + /// + /// 全インスタンスリスト。 + /// ~を作成する() で追加され、t解放する() or Dispose() で解放される。 + /// + public static readonly ObservableCollection listインスタンス = new ObservableCollection(); + + public static void ShowAllCSoundFiles() + { + int i = 0; + foreach ( CSound cs in listインスタンス ) + { + Debug.WriteLine( i++.ToString( "d3" ) + ": " + Path.GetFileName( cs.strファイル名 ) ); + } + } + + public CSound(ESoundGroup soundGroup) + { + SoundGroup = soundGroup; + this.n位置 = 0; + this._db周波数倍率 = 1.0; + this._db再生速度 = 1.0; +// this._cbRemoveMixerChannel = new WaitCallback( RemoveMixerChannelLater ); + this._hBassStream = -1; + this._hTempoStream = 0; + } + + public void tASIOサウンドを作成する( string strファイル名, int hMixer ) + { + this.eデバイス種別 = ESoundDeviceType.ASIO; // 作成後に設定する。(作成に失敗してると例外発出されてここは実行されない) + this.tBASSサウンドを作成する( strファイル名, hMixer, BASSFlag.BASS_STREAM_DECODE ); + } + public void tASIOサウンドを作成する( byte[] byArrWAVファイルイメージ, int hMixer ) + { + this.eデバイス種別 = ESoundDeviceType.ASIO; // 作成後に設定する。(作成に失敗してると例外発出されてここは実行されない) + this.tBASSサウンドを作成する( byArrWAVファイルイメージ, hMixer, BASSFlag.BASS_STREAM_DECODE ); + } + public void tWASAPIサウンドを作成する( string strファイル名, int hMixer, ESoundDeviceType eデバイス種別 ) + { + this.eデバイス種別 = eデバイス種別; // 作成後に設定する。(作成に失敗してると例外発出されてここは実行されない) + this.tBASSサウンドを作成する( strファイル名, hMixer, BASSFlag.BASS_STREAM_DECODE | BASSFlag.BASS_SAMPLE_FLOAT ); + } + public void tWASAPIサウンドを作成する( byte[] byArrWAVファイルイメージ, int hMixer, ESoundDeviceType eデバイス種別 ) + { + this.eデバイス種別 = eデバイス種別; // 作成後に設定する。(作成に失敗してると例外発出されてここは実行されない) + this.tBASSサウンドを作成する( byArrWAVファイルイメージ, hMixer, BASSFlag.BASS_STREAM_DECODE | BASSFlag.BASS_SAMPLE_FLOAT ); + } + public void tDirectSoundサウンドを作成する( string strファイル名, DirectSound DirectSound ) + { + this.e作成方法 = E作成方法.ファイルから; + this.strファイル名 = strファイル名; + if ( String.Compare( Path.GetExtension( strファイル名 ), ".xa", true ) == 0 || + String.Compare( Path.GetExtension( strファイル名 ), ".mp3", true ) == 0 || + String.Compare( Path.GetExtension( strファイル名 ), ".ogg", true ) == 0 ) // caselessで文字列比較 + { + tDirectSoundサウンドを作成するXaOggMp3( strファイル名, DirectSound ); + return; + } + + // すべてのファイルを DirectShow でデコードすると時間がかかるので、ファイルが WAV かつ PCM フォーマットでない場合のみ DirectShow でデコードする。 + + byte[] byArrWAVファイルイメージ = null; + bool bファイルがWAVかつPCMフォーマットである = true; + + { + #region [ ファイルがWAVかつPCMフォーマットか否か調べる。] + //----------------- + try + { + Stream str = File.Open(strファイル名, FileMode.Open, FileAccess.Read); + using (var ws = new SoundStream(str)) + { + if (ws.Format.Encoding != WaveFormatEncoding.Pcm) + bファイルがWAVかつPCMフォーマットである = false; + } + } + catch + { + bファイルがWAVかつPCMフォーマットである = false; + } + //----------------- + #endregion + + if ( bファイルがWAVかつPCMフォーマットである ) + { + #region [ ファイルを読み込んで byArrWAVファイルイメージへ格納。] + //----------------- + var fs = File.Open( strファイル名, FileMode.Open, FileAccess.Read ); + var br = new BinaryReader( fs ); + + byArrWAVファイルイメージ = new byte[ fs.Length ]; + br.Read( byArrWAVファイルイメージ, 0, (int) fs.Length ); + + br.Close(); + fs.Close(); + //----------------- + #endregion + } + else + { + #region [ DirectShow でデコード変換し、 byArrWAVファイルイメージへ格納。] + //----------------- + CDStoWAVFileImage.t変換( strファイル名, out byArrWAVファイルイメージ ); + //----------------- + #endregion + } + } + + // あとはあちらで。 + + this.tDirectSoundサウンドを作成する( byArrWAVファイルイメージ, DirectSound ); + } + public void tDirectSoundサウンドを作成するXaOggMp3( string strファイル名, DirectSound DirectSound ) + { + try + { + this.e作成方法 = E作成方法.ファイルから; + this.strファイル名 = strファイル名; + WaveFormat wfx = new WaveFormat(); + int nPCMデータの先頭インデックス = 0; + // int nPCMサイズbyte = (int) ( xa.xaheader.nSamples * xa.xaheader.nChannels * 2 ); // nBytes = Bass.BASS_ChannelGetLength( this.hBassStream ); + + + + int nPCMサイズbyte; + CWin32.WAVEFORMATEX cw32wfx; + tオンメモリ方式でデコードする(strファイル名, out this.byArrWAVファイルイメージ, + out nPCMデータの先頭インデックス, out nPCMサイズbyte, out cw32wfx, false); + + wfx = WaveFormat.CreateCustomFormat((WaveFormatEncoding)cw32wfx.wFormatTag, (int)cw32wfx.nSamplesPerSec, cw32wfx.nChannels, (int)cw32wfx.nAvgBytesPerSec, cw32wfx.nBlockAlign, cw32wfx.wBitsPerSample); + + // セカンダリバッファを作成し、PCMデータを書き込む。 + tDirectSoundサウンドを作成する_セカンダリバッファの作成とWAVデータ書き込み + (ref this.byArrWAVファイルイメージ, DirectSound, CSoundDeviceDirectSound.DefaultFlags, wfx, + nPCMサイズbyte, nPCMデータの先頭インデックス); + return; + } + catch (Exception e) + { + string s = Path.GetFileName(strファイル名); + Trace.TraceWarning($"Failed to create DirectSound buffer by using BASS.DLL.({s}: {e.Message})"); + Trace.TraceWarning("Retrying by using DirectShow decoder."); + } + // すべてのファイルを DirectShow でデコードすると時間がかかるので、ファイルが WAV かつ PCM フォーマットでない場合のみ DirectShow でデコードする。 + + byte[] byArrWAVファイルイメージ = null; + bool bファイルがWAVかつPCMフォーマットである = true; + + { + #region [ ファイルがWAVかつPCMフォーマットか否か調べる。] + //----------------- + SoundStream ws = null; + try + { + using (ws = new SoundStream(new FileStream(strファイル名, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))) + { + if (ws.Format.Encoding != WaveFormatEncoding.Pcm) + bファイルがWAVかつPCMフォーマットである = false; + } + } + catch + { + bファイルがWAVかつPCMフォーマットである = false; + } + finally + { + if (ws != null) + { + ws.Close(); + ws.Dispose(); + } + } + //----------------- + #endregion + + if (bファイルがWAVかつPCMフォーマットである) + { + #region [ ファイルを読み込んで byArrWAVファイルイメージへ格納。] + //----------------- + var fs = File.Open(strファイル名, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); + var br = new BinaryReader(fs); + + byArrWAVファイルイメージ = new byte[fs.Length]; + br.Read(byArrWAVファイルイメージ, 0, (int)fs.Length); + + br.Close(); + fs.Close(); + //----------------- + #endregion + } + else + { + #region [ DirectShow でデコード変換し、 byArrWAVファイルイメージへ格納。] + //----------------- + CDStoWAVFileImage.t変換(strファイル名, out byArrWAVファイルイメージ); + //----------------- + #endregion + } + } + + // あとはあちらで。 + + this.tDirectSoundサウンドを作成する(byArrWAVファイルイメージ, DirectSound); + } + + public void tDirectSoundサウンドを作成する( byte[] byArrWAVファイルイメージ, DirectSound DirectSound ) + { + this.tDirectSoundサウンドを作成する( byArrWAVファイルイメージ, DirectSound, CSoundDeviceDirectSound.DefaultFlags ); + } + public void tDirectSoundサウンドを作成する( byte[] byArrWAVファイルイメージ, DirectSound DirectSound, BufferFlags flags ) + { + if( this.e作成方法 == E作成方法.Unknown ) + this.e作成方法 = E作成方法.WAVファイルイメージから; + + WaveFormat wfx = null; + int nPCMデータの先頭インデックス = -1; + int nPCMサイズbyte = -1; + + #region [ byArrWAVファイルイメージ[] から上記3つのデータを取得。] + //----------------- + var ms = new MemoryStream( byArrWAVファイルイメージ ); + var br = new BinaryReader( ms ); + + try + { + // 'RIFF'+RIFFデータサイズ + + if( br.ReadUInt32() != 0x46464952 ) + throw new InvalidDataException( "RIFFファイルではありません。" ); + br.ReadInt32(); + + // 'WAVE' + if( br.ReadUInt32() != 0x45564157 ) + throw new InvalidDataException( "WAVEファイルではありません。" ); + + // チャンク + while( ( ms.Position + 8 ) < ms.Length ) // +8 は、チャンク名+チャンクサイズ。残り8バイト未満ならループ終了。 + { + uint chunkName = br.ReadUInt32(); + + // 'fmt ' + if( chunkName == 0x20746D66 ) + { + long chunkSize = (long) br.ReadUInt32(); + + var tag = (WaveFormatEncoding)br.ReadUInt16(); + int Channels = br.ReadInt16(); + int SamplesPerSecond = br.ReadInt32(); + int AverageBytesPerSecond = br.ReadInt32(); + int BlockAlignment = br.ReadInt16(); + int BitsPerSample = br.ReadInt16(); + + if (tag == WaveFormatEncoding.Pcm) wfx = new WaveFormat(); + else if (tag == WaveFormatEncoding.Extensible) wfx = new WaveFormatExtensible(SamplesPerSecond, BitsPerSample, Channels); // このクラスは WaveFormat を継承している。 + else + throw new InvalidDataException( string.Format( "未対応のWAVEフォーマットタグです。(Tag:{0})", tag.ToString() ) ); + + wfx = WaveFormat.CreateCustomFormat((WaveFormatEncoding)tag, SamplesPerSecond, Channels, AverageBytesPerSecond, BlockAlignment, BitsPerSample); + + long nフォーマットサイズbyte = 16; + + if (wfx.Encoding == WaveFormatEncoding.Extensible) + { + br.ReadUInt16(); // 拡張領域サイズbyte + var wfxEx = (SharpDX.Multimedia.WaveFormatExtensible)wfx; + int ValidBitsPerSample = br.ReadInt16(); + wfxEx.ChannelMask = (Speakers) br.ReadInt32(); + wfxEx.GuidSubFormat = new Guid(br.ReadBytes(16)); // GUID は 16byte (128bit) + + nフォーマットサイズbyte += 24; + } + + ms.Seek( chunkSize - nフォーマットサイズbyte, SeekOrigin.Current ); + continue; + } + + // 'data' + else if( chunkName == 0x61746164 ) + { + nPCMサイズbyte = br.ReadInt32(); + nPCMデータの先頭インデックス = (int) ms.Position; + + ms.Seek( nPCMサイズbyte, SeekOrigin.Current ); + continue; + } + + // その他 + else + { + long chunkSize = (long) br.ReadUInt32(); + ms.Seek( chunkSize, SeekOrigin.Current ); + continue; + } + } + + if( wfx == null ) + throw new InvalidDataException( "fmt チャンクが存在しません。不正なサウンドデータです。" ); + if( nPCMサイズbyte < 0 ) + throw new InvalidDataException( "data チャンクが存在しません。不正なサウンドデータです。" ); + } + finally + { + ms.Close(); + br.Close(); + } + //----------------- + #endregion + + + // セカンダリバッファを作成し、PCMデータを書き込む。 + tDirectSoundサウンドを作成する_セカンダリバッファの作成とWAVデータ書き込み( + ref byArrWAVファイルイメージ, DirectSound, flags, wfx, nPCMサイズbyte, nPCMデータの先頭インデックス ); + } + + private void tDirectSoundサウンドを作成する_セカンダリバッファの作成とWAVデータ書き込み + ( ref byte[] byArrWAVファイルイメージ, DirectSound DirectSound, BufferFlags flags, WaveFormat wfx, + int nPCMサイズbyte, int nPCMデータの先頭インデックス ) + { + this._Format = wfx; + // セカンダリバッファを作成し、PCMデータを書き込む。 + + this.Buffer = new SecondarySoundBuffer( DirectSound, new SoundBufferDescription() + { + Format = (wfx.Encoding == WaveFormatEncoding.Pcm) ? wfx : (SharpDX.Multimedia.WaveFormatExtensible)wfx, + Flags = flags, + BufferBytes = nPCMサイズbyte, + }); + this.Buffer.Write( byArrWAVファイルイメージ, nPCMデータの先頭インデックス, nPCMサイズbyte, 0, LockFlags.None ); + + // 作成完了。 + + this.eデバイス種別 = ESoundDeviceType.DirectSound; + this.DirectSoundBufferFlags = flags; + this.byArrWAVファイルイメージ = byArrWAVファイルイメージ; + this.DirectSound = DirectSound; + + // DTXMania用に追加 + this.nオリジナルの周波数 = wfx.SampleRate; + n総演奏時間ms = (int)(((double)nPCMサイズbyte) / (this._Format.AverageBytesPerSecond * 0.001)); + + + // インスタンスリストに登録。 + + CSound.listインスタンス.Add( this ); + } + + #region [ DTXMania用の変換 ] + + public void tサウンドを破棄する( CSound cs ) + { + cs.t解放する(); + } + public void t再生を開始する() + { + t再生位置を先頭に戻す(); + if (!b速度上げすぎ問題) + tサウンドを再生する(false); + } + public void t再生を開始する( bool bループする ) + { + if ( bBASSサウンドである ) + { + if ( bループする ) + { + Bass.BASS_ChannelFlags( this.hBassStream, BASSFlag.BASS_SAMPLE_LOOP, BASSFlag.BASS_SAMPLE_LOOP ); + } + else + { + Bass.BASS_ChannelFlags( this.hBassStream, BASSFlag.BASS_DEFAULT, BASSFlag.BASS_DEFAULT ); + } + } + t再生位置を先頭に戻す(); + tサウンドを再生する( bループする ); + } + public void t再生を停止する() + { + tサウンドを停止する(); + t再生位置を先頭に戻す(); + } + public void t再生を一時停止する() + { + tサウンドを停止する(true); + this.n一時停止回数++; + } + public void t再生を再開する( long t ) // ★★★★★★★★★★★★★★★★★★★★★★★★★★★★ + { + Debug.WriteLine( "t再生を再開する(long " + t + ")" ); + t再生位置を変更する( t ); + tサウンドを再生する(); + this.n一時停止回数--; + } + public bool b一時停止中 + { + get + { + if ( this.bBASSサウンドである ) + { + bool ret = ( BassMix.BASS_Mixer_ChannelIsActive( this.hBassStream ) == BASSActive.BASS_ACTIVE_PAUSED ) & + ( BassMix.BASS_Mixer_ChannelGetPosition( this.hBassStream ) > 0 ); + return ret; + } + else + { + return ( this.n一時停止回数 > 0 ); + } + } + } + public bool b再生中 + { + get + { + if ( this.eデバイス種別 == ESoundDeviceType.DirectSound ) + { + return ((this.Buffer.Status & (int)BufferStatus.Playing) != (int)BufferStatus.None); + } + else + { + // 基本的にはBASS_ACTIVE_PLAYINGなら再生中だが、最後まで再生しきったchannelも + // BASS_ACTIVE_PLAYINGのままになっているので、小細工が必要。 + bool ret = ( BassMix.BASS_Mixer_ChannelIsActive( this.hBassStream ) == BASSActive.BASS_ACTIVE_PLAYING ); + if ( BassMix.BASS_Mixer_ChannelGetPosition( this.hBassStream ) >= nBytes ) + { + ret = false; + } + return ret; + } + } + } + //public lint t時刻から位置を返す( long t ) + //{ + // double num = ( n時刻 * this.db再生速度 ) * this.db周波数倍率; + // return (int) ( ( num * 0.01 ) * this.nSamplesPerSecond ); + //} + #endregion + + + public void t解放する() + { + t解放する( false ); + } + + public void t解放する( bool _bインスタンス削除 ) + { + if ( this.bBASSサウンドである ) // stream数の削減用 + { + tBASSサウンドをミキサーから削除する(); + _cbEndofStream = null; + //_cbStreamXA = null; + CSound管理.nStreams--; + } + bool bManagedも解放する = true; + bool bインスタンス削除 = _bインスタンス削除; // CSoundの再初期化時は、インスタンスは存続する。 + this.Dispose( bManagedも解放する, bインスタンス削除 ); +//Debug.WriteLine( "Disposed: " + _bインスタンス削除 + " : " + Path.GetFileName( this.strファイル名 ) ); + } + public void tサウンドを再生する() + { + tサウンドを再生する( false ); + } + private void tサウンドを再生する( bool bループする ) + { + if ( this.bBASSサウンドである ) // BASSサウンド時のループ処理は、t再生を開始する()側に実装。ここでは「bループする」は未使用。 + { +//Debug.WriteLine( "再生中?: " + System.IO.Path.GetFileName(this.strファイル名) + " status=" + BassMix.BASS_Mixer_ChannelIsActive( this.hBassStream ) + " current=" + BassMix.BASS_Mixer_ChannelGetPosition( this.hBassStream ) + " nBytes=" + nBytes ); + bool b = BassMix.BASS_Mixer_ChannelPlay( this.hBassStream ); + if ( !b ) + { +//Debug.WriteLine( "再生しようとしたが、Mixerに登録されていなかった: " + Path.GetFileName( this.strファイル名 ) + ", stream#=" + this.hBassStream + ", ErrCode=" + Bass.BASS_ErrorGetCode() ); + + bool bb = tBASSサウンドをミキサーに追加する(); + if ( !bb ) + { +Debug.WriteLine( "Mixerへの登録に失敗: " + Path.GetFileName( this.strファイル名 ) + ", ErrCode=" + Bass.BASS_ErrorGetCode() ); + } + else + { +//Debug.WriteLine( "Mixerへの登録に成功: " + Path.GetFileName( this.strファイル名 ) + ": " + Bass.BASS_ErrorGetCode() ); + } + //this.t再生位置を先頭に戻す(); + + bool bbb = BassMix.BASS_Mixer_ChannelPlay( this.hBassStream ); + if (!bbb) + { +Debug.WriteLine("更に再生に失敗: " + Path.GetFileName(this.strファイル名) + ", ErrCode=" + Bass.BASS_ErrorGetCode() ); + } + else + { +// Debug.WriteLine("再生成功(ミキサー追加後) : " + Path.GetFileName(this.strファイル名)); + } + } + else + { +//Debug.WriteLine( "再生成功: " + Path.GetFileName( this.strファイル名 ) + " (" + hBassStream + ")" ); + } + } + else if( this.bDirectSoundである ) + { + PlayFlags pf = ( bループする ) ? PlayFlags.Looping : PlayFlags.None; + this.Buffer.Play( 0, pf ); + } + } + public void tサウンドを停止してMixerからも削除する() + { + tサウンドを停止する( false ); + if ( bBASSサウンドである ) + { + tBASSサウンドをミキサーから削除する(); + } + } + public void tサウンドを停止する() + { + tサウンドを停止する( false ); + } + public void tサウンドを停止する( bool pause ) + { + if( this.bBASSサウンドである ) + { +//Debug.WriteLine( "停止: " + System.IO.Path.GetFileName( this.strファイル名 ) + " status=" + BassMix.BASS_Mixer_ChannelIsActive( this.hBassStream ) + " current=" + BassMix.BASS_Mixer_ChannelGetPosition( this.hBassStream ) + " nBytes=" + nBytes ); + BassMix.BASS_Mixer_ChannelPause( this.hBassStream ); + if ( !pause ) + { + // tBASSサウンドをミキサーから削除する(); // PAUSEと再生停止を区別できるようにすること!! + } + } + else if( this.bDirectSoundである ) + { + try + { + this.Buffer.Stop(); + } + catch ( Exception ) + { + // WASAPI/ASIOとDirectSoundを同時使用すると、Bufferがlostしてここで例外発生する。→ catchして無視する。 + // DTXCからDTXManiaを呼び出すと、DTXC終了時にこの現象が発生する。 + } + } + this.n一時停止回数 = 0; + } + + public void t再生位置を先頭に戻す() + { + if( this.bBASSサウンドである ) + { + BassMix.BASS_Mixer_ChannelSetPosition( this.hBassStream, 0 ); + //pos = 0; + } + else if( this.bDirectSoundである ) + { + this.Buffer.CurrentPosition = 0; + } + } + public void t再生位置を変更する( long n位置ms ) + { + if( this.bBASSサウンドである ) + { + bool b = true; + try + { + b = BassMix.BASS_Mixer_ChannelSetPosition( this.hBassStream, Bass.BASS_ChannelSeconds2Bytes( this.hBassStream, n位置ms * this.db周波数倍率 * this.db再生速度 / 1000.0 ), BASSMode.BASS_POS_BYTES ); + } + catch( Exception e ) + { + Trace.TraceError( e.ToString() ); + Trace.TraceInformation( Path.GetFileName( this.strファイル名 ) + ": Seek error: " + e.ToString() + ": " + n位置ms + "ms" ); + } + finally + { + if ( !b ) + { + BASSError be = Bass.BASS_ErrorGetCode(); + Trace.TraceInformation( Path.GetFileName( this.strファイル名 ) + ": Seek error: " + be.ToString() + ": " + n位置ms + "MS" ); + } + } + //if ( this.n総演奏時間ms > 5000 ) + //{ + // Trace.TraceInformation( Path.GetFileName( this.strファイル名 ) + ": Seeked to " + n位置ms + "ms = " + Bass.BASS_ChannelSeconds2Bytes( this.hBassStream, n位置ms * this.db周波数倍率 * this.db再生速度 / 1000.0 ) ); + //} + } + else if( this.bDirectSoundである ) + { + int n位置sample = (int)(this._Format.SampleRate * n位置ms * 0.001 * _db周波数倍率 * _db再生速度); // #30839 2013.2.24 yyagi; add _db周波数倍率 and _db再生速度 + try + { + this.Buffer.CurrentPosition = n位置sample * this._Format.BlockAlign; + } + catch + { + Trace.TraceError( "{0}: Seek error: {1}", Path.GetFileName( this.strファイル名 ), n位置ms); + Trace.TraceError( "例外が発生しましたが処理を継続します。 (95dee242-1f92-4fcf-aaf6-b162ad2bfc03)" ); + } + //if ( this.n総演奏時間ms > 5000 ) + //{ + // Trace.TraceInformation( Path.GetFileName( this.strファイル名 ) + ": Seeked to " + n位置ms + "ms = " + n位置sample ); + //} + } + } + /// + /// デバッグ用 + /// + /// + /// + public void t再生位置を取得する( out long n位置byte, out double db位置ms ) + { + if ( this.bBASSサウンドである ) + { + n位置byte = BassMix.BASS_Mixer_ChannelGetPosition( this.hBassStream ); + db位置ms = Bass.BASS_ChannelBytes2Seconds( this.hBassStream, n位置byte ); + } + else if ( this.bDirectSoundである ) + { + this.Buffer.GetCurrentPosition(out int n位置tmp, out int _); + n位置byte = (long)n位置tmp; + db位置ms = n位置byte / this._Format.SampleRate / 0.001 / _db周波数倍率 / _db再生速度; + } + else + { + n位置byte = 0; + db位置ms = 0.0; + } + } + + + public static void tすべてのサウンドを初期状態に戻す() + { + foreach ( var sound in CSound.listインスタンス ) + { + sound.t解放する( false ); + } + } + internal static void tすべてのサウンドを再構築する( ISoundDevice device ) + { + if( CSound.listインスタンス.Count == 0 ) + return; + + + // サウンドを再生する際にインスタンスリストも更新されるので、配列にコピーを取っておき、リストはクリアする。 + + var sounds = CSound.listインスタンス.ToArray(); + CSound.listインスタンス.Clear(); + + + // 配列に基づいて個々のサウンドを作成する。 + + for( int i = 0; i < sounds.Length; i++ ) + { + switch( sounds[ i ].e作成方法 ) + { + #region [ ファイルから ] + case E作成方法.ファイルから: + string strファイル名 = sounds[ i ].strファイル名; + sounds[ i ].Dispose( true, false ); + device.tサウンドを作成する( strファイル名, sounds[ i ] ); + break; + #endregion + #region [ WAVファイルイメージから ] + case E作成方法.WAVファイルイメージから: + if( sounds[ i ].bBASSサウンドである ) + { + byte[] byArrWaveファイルイメージ = sounds[ i ].byArrWAVファイルイメージ; + sounds[ i ].Dispose( true, false ); + device.tサウンドを作成する( byArrWaveファイルイメージ, sounds[ i ] ); + } + else if( sounds[ i ].bDirectSoundである ) + { + byte[] byArrWaveファイルイメージ = sounds[ i ].byArrWAVファイルイメージ; + var flags = sounds[ i ].DirectSoundBufferFlags; + sounds[ i ].Dispose( true, false ); + ( (CSoundDeviceDirectSound) device ).tサウンドを作成する( byArrWaveファイルイメージ, flags, sounds[ i ] ); + } + break; + #endregion + } + } + } + + #region [ Dispose-Finalizeパターン実装 ] + //----------------- + public void Dispose() + { + this.Dispose( true, true ); + GC.SuppressFinalize( this ); + } + private void Dispose( bool bManagedも解放する, bool bインスタンス削除 ) + { + if( this.bBASSサウンドである ) + { + #region [ ASIO, WASAPI の解放 ] + //----------------- + if ( _hTempoStream != 0 ) + { + BassMix.BASS_Mixer_ChannelRemove( this._hTempoStream ); + Bass.BASS_StreamFree( this._hTempoStream ); + } + BassMix.BASS_Mixer_ChannelRemove( this._hBassStream ); + Bass.BASS_StreamFree( this._hBassStream ); + this.hBassStream = -1; + this._hBassStream = -1; + this._hTempoStream = 0; + //----------------- + #endregion + } + + if( bManagedも解放する ) + { + //int freeIndex = -1; + + //if ( CSound.listインスタンス != null ) + //{ + // freeIndex = CSound.listインスタンス.IndexOf( this ); + // if ( freeIndex == -1 ) + // { + // Debug.WriteLine( "ERR: freeIndex==-1 : Count=" + CSound.listインスタンス.Count + ", filename=" + Path.GetFileName( this.strファイル名 ) ); + // } + //} + + if( this.eデバイス種別 == ESoundDeviceType.DirectSound ) + { + #region [ DirectSound の解放 ] + //----------------- + if( this.Buffer != null ) + { + try + { + this.Buffer.Stop(); + } + catch (Exception e) + { + // 演奏終了後、長時間解放しないでいると、たまに AccessViolationException が発生することがある。 + Trace.TraceError( e.ToString() ); + Trace.TraceError( "例外が発生しましたが処理を継続します。 (19bcaa24-5259-4198-bf74-41eb1114ba28)" ); + } + C共通.tDisposeする( ref this.Buffer ); + } + //----------------- + #endregion + } + + if( this.e作成方法 == E作成方法.WAVファイルイメージから && + this.eデバイス種別 != ESoundDeviceType.DirectSound ) // DirectSound は hGC 未使用。 + { + if ( this.hGC != null && this.hGC.IsAllocated ) + { + this.hGC.Free(); + this.hGC = default( GCHandle ); + } + } + if ( this.byArrWAVファイルイメージ != null ) + { + this.byArrWAVファイルイメージ = null; + } + + this.eデバイス種別 = ESoundDeviceType.Unknown; + + if ( bインスタンス削除 ) + { + //try + //{ + // CSound.listインスタンス.RemoveAt( freeIndex ); + //} + //catch + //{ + // Debug.WriteLine( "FAILED to remove CSound.listインスタンス: Count=" + CSound.listインスタンス.Count + ", filename=" + Path.GetFileName( this.strファイル名 ) ); + //} + bool b = CSound.listインスタンス.Remove( this ); // これだと、Clone()したサウンドのremoveに失敗する + if ( !b ) + { + Debug.WriteLine( "FAILED to remove CSound.listインスタンス: Count=" + CSound.listインスタンス.Count + ", filename=" + Path.GetFileName( this.strファイル名 ) ); + } + + } + } + } + ~CSound() + { + this.Dispose( false, true ); + } + //----------------- + #endregion + + #region [ protected ] + //----------------- + protected enum E作成方法 { ファイルから, WAVファイルイメージから, Unknown } + protected E作成方法 e作成方法 = E作成方法.Unknown; + protected ESoundDeviceType eデバイス種別 = ESoundDeviceType.Unknown; + public string strファイル名 = null; + protected byte[] byArrWAVファイルイメージ = null; // WAVファイルイメージ、もしくはchunkのDATA部のみ + protected GCHandle hGC; + protected int _hTempoStream = 0; + protected int _hBassStream = -1; // ASIO, WASAPI 用 + protected int hBassStream = 0; // #31076 2013.4.1 yyagi; プロパティとして実装すると動作が低速になったため、 + // tBASSサウンドを作成する_ストリーム生成後の共通処理()のタイミングと、 + // 再生速度を変更したタイミングでのみ、 + // hBassStreamを更新するようにした。 + //{ + // get + // { + // if ( _hTempoStream != 0 && !this.bIs1倍速再生 ) // 再生速度がx1.000のときは、TempoStreamを用いないようにして高速化する + // { + // return _hTempoStream; + // } + // else + // { + // return _hBassStream; + // } + // } + // set + // { + // _hBassStream = value; + // } + //} + protected SoundBuffer Buffer = null; // DirectSound 用 + protected DirectSound DirectSound; + protected int hMixer = -1; // 設計壊してゴメン Mixerに後で登録するときに使う + //----------------- + #endregion + + #region [ private ] + //----------------- + private bool bDirectSoundである + { + get { return ( this.eデバイス種別 == ESoundDeviceType.DirectSound ); } + } + private bool bBASSサウンドである + { + get + { + return ( + this.eデバイス種別 == ESoundDeviceType.ASIO || + this.eデバイス種別 == ESoundDeviceType.ExclusiveWASAPI || + this.eデバイス種別 == ESoundDeviceType.SharedWASAPI ); + } + } + private int _n位置 = 0; + private int _n位置db; + private Lufs _gain = DefaultGain; + private Lufs? _truePeak = null; + private int _automationLevel = DefaultAutomationLevel; + private int _groupLevel = DefaultGroupLevel; + private long nBytes = 0; + private int n一時停止回数 = 0; + private int nオリジナルの周波数 = 0; + private double _db周波数倍率 = 1.0; + private double _db再生速度 = 1.0; + private bool bIs1倍速再生 = true; + private WaveFormat _Format; + + private void tBASSサウンドを作成する( string strファイル名, int hMixer, BASSFlag flags ) + { + #region [ xaとwav(RIFF chunked vorbis)に対しては専用の処理をする ] + switch ( Path.GetExtension( strファイル名 ).ToLower() ) + { + case ".xa": + tBASSサウンドを作成するXA( strファイル名, hMixer, flags ); + return; + + case ".wav": + if ( tRIFFchunkedVorbisならDirectShowでDecodeする( strファイル名, ref byArrWAVファイルイメージ ) ) + { + tBASSサウンドを作成する( byArrWAVファイルイメージ, hMixer, flags ); + return; + } + break; + + default: + break; + } + #endregion + + this.e作成方法 = E作成方法.ファイルから; + this.strファイル名 = strファイル名; + + + // BASSファイルストリームを作成。 + + this._hBassStream = Bass.BASS_StreamCreateFile( strファイル名, 0, 0, flags ); + if( this._hBassStream == 0 ) + throw new Exception( string.Format( "サウンドストリームの生成に失敗しました。(BASS_StreamCreateFile)[{0}]", Bass.BASS_ErrorGetCode().ToString() ) ); + + nBytes = Bass.BASS_ChannelGetLength( this._hBassStream ); + + tBASSサウンドを作成する_ストリーム生成後の共通処理( hMixer ); + } + private void tBASSサウンドを作成する( byte[] byArrWAVファイルイメージ, int hMixer, BASSFlag flags ) + { + this.e作成方法 = E作成方法.WAVファイルイメージから; + this.byArrWAVファイルイメージ = byArrWAVファイルイメージ; + this.hGC = GCHandle.Alloc( byArrWAVファイルイメージ, GCHandleType.Pinned ); // byte[] をピン留め + + + // BASSファイルストリームを作成。 + + this._hBassStream = Bass.BASS_StreamCreateFile( hGC.AddrOfPinnedObject(), 0, byArrWAVファイルイメージ.Length, flags ); + if ( this._hBassStream == 0 ) + throw new Exception( string.Format( "サウンドストリームの生成に失敗しました。(BASS_StreamCreateFile)[{0}]", Bass.BASS_ErrorGetCode().ToString() ) ); + + nBytes = Bass.BASS_ChannelGetLength( this._hBassStream ); + + tBASSサウンドを作成する_ストリーム生成後の共通処理( hMixer ); + } + + /// + /// Decode "RIFF chunked Vorbis" to "raw wave" + /// because BASE.DLL has two problems for RIFF chunked Vorbis; + /// 1. time seek is not fine 2. delay occurs (about 10ms) + /// + /// wave filename + /// wav file image + /// + private bool tRIFFchunkedVorbisならDirectShowでDecodeする( string strファイル名, ref byte[] byArrWAVファイルイメージ ) + { + bool bファイルにVorbisコンテナが含まれている = false; + + #region [ ファイルがWAVかつ、Vorbisコンテナが含まれているかを調べ、それに該当するなら、DirectShowでデコードする。] + //----------------- + try + { + Stream str = File.Open(strファイル名, FileMode.Open, FileAccess.Read); + using (var ws = new SoundStream(str)) + { + if (ws.Format.Encoding == (WaveFormatEncoding)0x6770 || // Ogg Vorbis Mode 2+ + ws.Format.Encoding == (WaveFormatEncoding)0x6771) // Ogg Vorbis Mode 3+ + { + Trace.TraceInformation( Path.GetFileName( strファイル名 ) + ": RIFF chunked Vorbis. Decode to raw Wave first, to avoid BASS.DLL troubles" ); + try + { + CDStoWAVFileImage.t変換( strファイル名, out byArrWAVファイルイメージ ); + bファイルにVorbisコンテナが含まれている = true; + } + catch + { + Trace.TraceWarning( "Warning: " + Path.GetFileName( strファイル名 ) + " : RIFF chunked Vorbisのデコードに失敗しました。" ); + } + } + } + } + catch ( InvalidDataException ) + { + // DirectShowのデコードに失敗したら、次はACMでのデコードを試すことになるため、ここではエラーログを出さない。 + // Trace.TraceWarning( "Warning: " + Path.GetFileName( strファイル名 ) + " : デコードに失敗しました。" ); + } + catch ( Exception e ) + { + Trace.TraceWarning( e.ToString() ); + Trace.TraceWarning( "Warning: " + Path.GetFileName( strファイル名 ) + " : 読み込みに失敗しました。" ); + } + #endregion + + return bファイルにVorbisコンテナが含まれている; + } + + private void tBASSサウンドを作成するXA( string strファイル名, int hMixer, BASSFlag flags ) + { + int nPCMデータの先頭インデックス; + CWin32.WAVEFORMATEX wfx; + int totalPCMSize; + + tオンメモリ方式でデコードする( strファイル名, out this.byArrWAVファイルイメージ, + out nPCMデータの先頭インデックス, out totalPCMSize, out wfx, true ); + + nBytes = totalPCMSize; + + this.e作成方法 = E作成方法.WAVファイルイメージから; //.ファイルから; // 再構築時はデコード後のイメージを流用する&Dispose時にhGCを解放する + this.strファイル名 = strファイル名; + this.hGC = GCHandle.Alloc( this.byArrWAVファイルイメージ, GCHandleType.Pinned ); // byte[] をピン留め + + //_cbStreamXA = new STREAMPROC( CallbackPlayingXA ); + + // BASSファイルストリームを作成。 + + //this.hBassStream = Bass.BASS_StreamCreate( xa.xaheader.nSamplesPerSec, xa.xaheader.nChannels, BASSFlag.BASS_STREAM_DECODE, _myStreamCreate, IntPtr.Zero ); + //this._hBassStream = Bass.BASS_StreamCreate( (int) wfx.nSamplesPerSec, (int) wfx.nChannels, BASSFlag.BASS_STREAM_DECODE, _cbStreamXA, IntPtr.Zero ); + + // StreamCreate()で作成したstreamはseek不可のため、StreamCreateFile()を使う。 + this._hBassStream = Bass.BASS_StreamCreateFile( this.hGC.AddrOfPinnedObject(), 0L, totalPCMSize, flags ); + if ( this._hBassStream == 0 ) + { + hGC.Free(); + throw new Exception( string.Format( "サウンドストリームの生成に失敗しました。(BASS_SampleCreate)[{0}]", Bass.BASS_ErrorGetCode().ToString() ) ); + } + + nBytes = Bass.BASS_ChannelGetLength( this._hBassStream ); + + + tBASSサウンドを作成する_ストリーム生成後の共通処理( hMixer ); + } + + + private void tBASSサウンドを作成する_ストリーム生成後の共通処理( int hMixer ) + { + CSound管理.nStreams++; + + // 個々のストリームの出力をテンポ変更のストリームに入力する。テンポ変更ストリームの出力を、Mixerに出力する。 + +// if ( CSound管理.bIsTimeStretch ) // TimeStretchのON/OFFに関わりなく、テンポ変更のストリームを生成する。後からON/OFF切り替え可能とするため。 + { + this._hTempoStream = BassFx.BASS_FX_TempoCreate( this._hBassStream, BASSFlag.BASS_STREAM_DECODE | BASSFlag.BASS_FX_FREESOURCE ); + if ( this._hTempoStream == 0 ) + { + hGC.Free(); + throw new Exception( string.Format( "サウンドストリームの生成に失敗しました。(BASS_FX_TempoCreate)[{0}]", Bass.BASS_ErrorGetCode().ToString() ) ); + } + else + { + Bass.BASS_ChannelSetAttribute( this._hTempoStream, BASSAttribute.BASS_ATTRIB_TEMPO_OPTION_USE_QUICKALGO, 1f ); // 高速化(音の品質は少し落ちる) + } + } + + if ( _hTempoStream != 0 && !this.bIs1倍速再生 ) // 再生速度がx1.000のときは、TempoStreamを用いないようにして高速化する + { + this.hBassStream = _hTempoStream; + } + else + { + this.hBassStream = _hBassStream; + } + + // #32248 再生終了時に発火するcallbackを登録する (演奏終了後に再生終了するチップを非同期的にミキサーから削除するため。) + _cbEndofStream = new SYNCPROC( CallbackEndofStream ); + Bass.BASS_ChannelSetSync( hBassStream, BASSSync.BASS_SYNC_END | BASSSync.BASS_SYNC_MIXTIME, 0, _cbEndofStream, IntPtr.Zero ); + + // n総演奏時間の取得; DTXMania用に追加。 + double seconds = Bass.BASS_ChannelBytes2Seconds( this._hBassStream, nBytes ); + this.n総演奏時間ms = (int) ( seconds * 1000 ); + //this.pos = 0; + this.hMixer = hMixer; + float freq = 0.0f; + if ( !Bass.BASS_ChannelGetAttribute( this._hBassStream, BASSAttribute.BASS_ATTRIB_FREQ, ref freq ) ) + { + hGC.Free(); + throw new Exception( string.Format( "サウンドストリームの周波数取得に失敗しました。(BASS_ChannelGetAttribute)[{0}]", Bass.BASS_ErrorGetCode().ToString() ) ); + } + this.nオリジナルの周波数 = (int) freq; + + // インスタンスリストに登録。 + + CSound.listインスタンス.Add( this ); + } + //----------------- + + //private int pos = 0; + //private int CallbackPlayingXA( int handle, IntPtr buffer, int length, IntPtr user ) + //{ + // int bytesread = ( pos + length > Convert.ToInt32( nBytes ) ) ? Convert.ToInt32( nBytes ) - pos : length; + + // Marshal.Copy( byArrWAVファイルイメージ, pos, buffer, bytesread ); + // pos += bytesread; + // if ( pos >= nBytes ) + // { + // // set indicator flag + // bytesread |= (int) BASSStreamProc.BASS_STREAMPROC_END; + // } + // return bytesread; + //} + /// + /// ストリームの終端まで再生したときに呼び出されるコールバック + /// + /// + /// + /// + /// + private void CallbackEndofStream( int handle, int channel, int data, IntPtr user ) // #32248 2013.10.14 yyagi + { +// Trace.TraceInformation( "Callback!(remove): " + Path.GetFileName( this.strファイル名 ) ); + if ( b演奏終了後も再生が続くチップである ) // 演奏終了後に再生終了するチップ音のミキサー削除は、再生終了のコールバックに引っ掛けて、自前で行う。 + { // そうでないものは、ミキサー削除予定時刻に削除する。 + tBASSサウンドをミキサーから削除する( channel ); + } + } + +// mixerからの削除 + + public bool tBASSサウンドをミキサーから削除する() + { + return tBASSサウンドをミキサーから削除する( this.hBassStream ); + } + public bool tBASSサウンドをミキサーから削除する( int channel ) + { + bool b = BassMix.BASS_Mixer_ChannelRemove( channel ); + if ( b ) + { + Interlocked.Decrement( ref CSound管理.nMixing ); +// Debug.WriteLine( "Removed: " + Path.GetFileName( this.strファイル名 ) + " (" + channel + ")" + " MixedStreams=" + CSound管理.nMixing ); + } + return b; + } + + +// mixer への追加 + + public bool tBASSサウンドをミキサーに追加する() + { + if ( BassMix.BASS_Mixer_ChannelGetMixer( hBassStream ) == 0 ) + { + BASSFlag bf = BASSFlag.BASS_SPEAKER_FRONT | BASSFlag.BASS_MIXER_NORAMPIN | BASSFlag.BASS_MIXER_PAUSE; + Interlocked.Increment( ref CSound管理.nMixing ); + + // preloadされることを期待して、敢えてflagからはBASS_MIXER_PAUSEを外してAddChannelした上で、すぐにPAUSEする + // -> ChannelUpdateでprebufferできることが分かったため、BASS_MIXER_PAUSEを使用することにした + + bool b1 = BassMix.BASS_Mixer_StreamAddChannel( this.hMixer, this.hBassStream, bf ); + //bool b2 = BassMix.BASS_Mixer_ChannelPause( this.hBassStream ); + t再生位置を先頭に戻す(); // StreamAddChannelの後で再生位置を戻さないとダメ。逆だと再生位置が変わらない。 +//Trace.TraceInformation( "Add Mixer: " + Path.GetFileName( this.strファイル名 ) + " (" + hBassStream + ")" + " MixedStreams=" + CSound管理.nMixing ); + Bass.BASS_ChannelUpdate( this.hBassStream, 0 ); // pre-buffer + return b1; // &b2; + } + return true; + } + + #region [ tオンメモリ方式でデコードする() ] + public void tオンメモリ方式でデコードする( string strファイル名, out byte[] buffer, + out int nPCMデータの先頭インデックス, out int totalPCMSize, out CWin32.WAVEFORMATEX wfx, + bool bIntegrateWaveHeader ) + { + nPCMデータの先頭インデックス = 0; + //int nPCMサイズbyte = (int) ( xa.xaheader.nSamples * xa.xaheader.nChannels * 2 ); // nBytes = Bass.BASS_ChannelGetLength( this.hBassStream ); + + SoundDecoder sounddecoder; + + if ( String.Compare( Path.GetExtension( strファイル名 ), ".xa", true ) == 0 ) + { + sounddecoder = new Cxa(); + } + else if ( String.Compare( Path.GetExtension( strファイル名 ), ".ogg", true ) == 0 ) + { + sounddecoder = new Cogg(); + } + else if ( String.Compare( Path.GetExtension( strファイル名 ), ".mp3", true ) == 0 ) + { + sounddecoder = new Cmp3(); + } + else + { + throw new NotImplementedException(); + } + + if ( !File.Exists( strファイル名 ) ) + { + throw new Exception( string.Format( "ファイルが見つかりませんでした。({0})", strファイル名 ) ); + } + int nHandle = sounddecoder.Open( strファイル名 ); + if ( nHandle < 0 ) + { + throw new Exception( string.Format( "Open() に失敗しました。({0})({1})", nHandle, strファイル名 ) ); + } + wfx = new CWin32.WAVEFORMATEX(); + if ( sounddecoder.GetFormat( nHandle, ref wfx ) < 0 ) + { + sounddecoder.Close( nHandle ); + throw new Exception( string.Format( "GetFormat() に失敗しました。({0})", strファイル名 ) ); + } + //totalPCMSize = (int) sounddecoder.nTotalPCMSize; // tデコード後のサイズを調べる()で既に取得済みの値を流用する。ms単位の高速化だが、チップ音がたくさんあると塵積で結構効果がある + totalPCMSize = (int) sounddecoder.GetTotalPCMSize( nHandle ); + if ( totalPCMSize == 0 ) + { + sounddecoder.Close( nHandle ); + throw new Exception( string.Format( "GetTotalPCMSize() に失敗しました。({0})", strファイル名 ) ); + } + totalPCMSize += ( ( totalPCMSize % 2 ) != 0 ) ? 1 : 0; + int wavheadersize = ( bIntegrateWaveHeader ) ? 44 : 0; + byte[] buffer_rawdata = new byte[ totalPCMSize ]; + buffer = new byte[ wavheadersize + totalPCMSize ]; + GCHandle handle = GCHandle.Alloc( buffer_rawdata, GCHandleType.Pinned ); + try + { + if ( sounddecoder.Decode( nHandle, handle.AddrOfPinnedObject(), (uint) totalPCMSize, 0 ) < 0 ) + { + buffer = null; + throw new Exception( string.Format( "デコードに失敗しました。({0})", strファイル名 ) ); + } + if ( bIntegrateWaveHeader ) + { + // wave headerを書き込む + + int wfx拡張領域_Length = 0; + var ms = new MemoryStream(); + var bw = new BinaryWriter( ms ); + bw.Write( new byte[] { 0x52, 0x49, 0x46, 0x46 } ); // 'RIFF' + bw.Write( (UInt32) totalPCMSize + 44 - 8 ); // ファイルサイズ - 8 [byte];今は不明なので後で上書きする。 + bw.Write( new byte[] { 0x57, 0x41, 0x56, 0x45 } ); // 'WAVE' + bw.Write( new byte[] { 0x66, 0x6D, 0x74, 0x20 } ); // 'fmt ' + bw.Write( (UInt32) ( 16 + ( ( wfx拡張領域_Length > 0 ) ? ( 2/*sizeof(WAVEFORMATEX.cbSize)*/ + wfx拡張領域_Length ) : 0 ) ) ); // fmtチャンクのサイズ[byte] + bw.Write( (UInt16) wfx.wFormatTag ); // フォーマットID(リニアPCMなら1) + bw.Write( (UInt16) wfx.nChannels ); // チャンネル数 + bw.Write( (UInt32) wfx.nSamplesPerSec ); // サンプリングレート + bw.Write( (UInt32) wfx.nAvgBytesPerSec ); // データ速度 + bw.Write( (UInt16) wfx.nBlockAlign ); // ブロックサイズ + bw.Write( (UInt16) wfx.wBitsPerSample ); // サンプルあたりのビット数 + //if ( wfx拡張領域_Length > 0 ) + //{ + // bw.Write( (UInt16) wfx拡張領域.Length ); // 拡張領域のサイズ[byte] + // bw.Write( wfx拡張領域 ); // 拡張データ + //} + bw.Write( new byte[] { 0x64, 0x61, 0x74, 0x61 } ); // 'data' + //int nDATAチャンクサイズ位置 = (int) ms.Position; + bw.Write( (UInt32) totalPCMSize ); // dataチャンクのサイズ[byte] + + byte[] bs = ms.ToArray(); + + bw.Close(); + ms.Close(); + + for ( int i = 0; i < bs.Length; i++ ) + { + buffer[ i ] = bs[ i ]; + } + } + int s = ( bIntegrateWaveHeader ) ? 44 : 0; + for ( int i = 0; i < totalPCMSize; i++ ) + { + buffer[ i + s ] = buffer_rawdata[ i ]; + } + totalPCMSize += wavheadersize; + nPCMデータの先頭インデックス = wavheadersize; + } + finally + { + handle.Free(); + sounddecoder.Close( nHandle ); + sounddecoder = null; + } + } + #endregion + #endregion + } +} diff --git a/FDK19/コード/03.サウンド/CSoundDeviceASIO.cs b/FDK19/コード/03.サウンド/CSoundDeviceASIO.cs new file mode 100644 index 00000000..8012b8e7 --- /dev/null +++ b/FDK19/コード/03.サウンド/CSoundDeviceASIO.cs @@ -0,0 +1,455 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Diagnostics; +using Un4seen.Bass; +using Un4seen.BassAsio; +using Un4seen.Bass.AddOn.Mix; + +namespace FDK +{ + /// + /// 全ASIOデバイスを列挙する静的クラス。 + /// BASS_Init()やBASS_ASIO_Init()の状態とは無関係に使用可能。 + /// + public static class CEnumerateAllAsioDevices + { + public static string[] GetAllASIODevices() + { + //Debug.WriteLine( "BassAsio.BASS_ASIO_GetDeviceInfos():" ); + BASS_ASIO_DEVICEINFO[] bassAsioDevInfo = BassAsio.BASS_ASIO_GetDeviceInfos(); + + List asioDeviceList = new List(); + + if ( bassAsioDevInfo.Length == 0 ) + { + asioDeviceList.Add( "None" ); + } + else + { + for ( int i = 0; i < bassAsioDevInfo.Length; i++ ) + { + asioDeviceList.Add( bassAsioDevInfo[ i ].name ); + //Trace.TraceInformation( "ASIO Device {0}: {1}", i, bassAsioDevInfo[ i ].name ); + } + } + + return asioDeviceList.ToArray(); + } + } + + internal class CSoundDeviceASIO : ISoundDevice + { + // プロパティ + + public ESoundDeviceType e出力デバイス + { + get; + protected set; + } + public long n実出力遅延ms + { + get; + protected set; + } + public long n実バッファサイズms + { + get; + protected set; + } + public int nASIODevice + { + get; + set; + } + + // CSoundTimer 用に公開しているプロパティ + + public long n経過時間ms + { + get; + protected set; + } + public long n経過時間を更新したシステム時刻ms + { + get; + protected set; + } + public CTimer tmシステムタイマ + { + get; + protected set; + } + + + // マスターボリュームの制御コードは、WASAPI/ASIOで全く同じ。 + public int nMasterVolume + { + get + { + float f音量 = 0.0f; + bool b = Bass.BASS_ChannelGetAttribute( this.hMixer, BASSAttribute.BASS_ATTRIB_VOL, ref f音量 ); + if ( !b ) + { + BASSError be = Bass.BASS_ErrorGetCode(); + Trace.TraceInformation( "ASIO Master Volume Get Error: " + be.ToString() ); + } + else + { + //Trace.TraceInformation( "ASIO Master Volume Get Success: " + (f音量 * 100) ); + + } + return (int) ( f音量 * 100 ); + } + set + { + bool b = Bass.BASS_ChannelSetAttribute( this.hMixer, BASSAttribute.BASS_ATTRIB_VOL, (float) ( value / 100.0 ) ); + if ( !b ) + { + BASSError be = Bass.BASS_ErrorGetCode(); + Trace.TraceInformation( "ASIO Master Volume Set Error: " + be.ToString() ); + } + else + { + // int n = this.nMasterVolume; + // Trace.TraceInformation( "ASIO Master Volume Set Success: " + value ); + } + } + } + + // メソッド + + public CSoundDeviceASIO( long n希望バッファサイズms, int _nASIODevice ) + { + // 初期化。 + + Trace.TraceInformation( "BASS (ASIO) の初期化を開始します。" ); + this.e出力デバイス = ESoundDeviceType.Unknown; + this.n実出力遅延ms = 0; + this.n経過時間ms = 0; + this.n経過時間を更新したシステム時刻ms = CTimer.n未使用; + this.tmシステムタイマ = new CTimer( CTimer.E種別.MultiMedia ); + this.nASIODevice = _nASIODevice; + + #region [ BASS registration ] + // BASS.NET ユーザ登録(BASSスプラッシュが非表示になる)。 + BassNet.Registration( "dtx2013@gmail.com", "2X9181017152222" ); + #endregion + + #region [ BASS Version Check ] + // BASS のバージョンチェック。 + int nBASSVersion = Utils.HighWord( Bass.BASS_GetVersion() ); + if( nBASSVersion != Bass.BASSVERSION ) + throw new DllNotFoundException( string.Format( "bass.dll のバージョンが異なります({0})。このプログラムはバージョン{1}で動作します。", nBASSVersion, Bass.BASSVERSION ) ); + + int nBASSMixVersion = Utils.HighWord( BassMix.BASS_Mixer_GetVersion() ); + if( nBASSMixVersion != BassMix.BASSMIXVERSION ) + throw new DllNotFoundException( string.Format( "bassmix.dll のバージョンが異なります({0})。このプログラムはバージョン{1}で動作します。", nBASSMixVersion, BassMix.BASSMIXVERSION ) ); + + int nBASSASIO = Utils.HighWord( BassAsio.BASS_ASIO_GetVersion() ); + if( nBASSASIO != BassAsio.BASSASIOVERSION ) + throw new DllNotFoundException( string.Format( "bassasio.dll のバージョンが異なります({0})。このプログラムはバージョン{1}で動作します。", nBASSASIO, BassAsio.BASSASIOVERSION ) ); + #endregion + + // BASS の設定。 + + this.bIsBASSFree = true; + + if (!Bass.BASS_SetConfig( BASSConfig.BASS_CONFIG_UPDATEPERIOD, 0 )) // 0:BASSストリームの自動更新を行わない。 + { + Trace.TraceWarning($"BASS_SetConfig({nameof(BASSConfig.BASS_CONFIG_UPDATEPERIOD)}) に失敗しました。[{Bass.BASS_ErrorGetCode()}]"); + } + if (!Bass.BASS_SetConfig( BASSConfig.BASS_CONFIG_UPDATETHREADS, 0 )) // 0:BASSストリームの自動更新を行わない。 + { + Trace.TraceWarning($"BASS_SetConfig({nameof(BASSConfig.BASS_CONFIG_UPDATETHREADS)}) に失敗しました。[{Bass.BASS_ErrorGetCode()}]"); + } + + // BASS の初期化。 + + int nデバイス = 0; // 0:"no device" … BASS からはデバイスへアクセスさせない。アクセスは BASSASIO アドオンから行う。 + int n周波数 = 44100; // 仮決め。最終的な周波数はデバイス(≠ドライバ)が決める。 + if( !Bass.BASS_Init( nデバイス, n周波数, BASSInit.BASS_DEVICE_DEFAULT, IntPtr.Zero ) ) + throw new Exception( string.Format( "BASS の初期化に失敗しました。(BASS_Init)[{0}]", Bass.BASS_ErrorGetCode().ToString() ) ); + + Bass.BASS_SetConfig(BASSConfig.BASS_CONFIG_CURVE_VOL, true); + +//Debug.WriteLine( "BASS_Init()完了。" ); + #region [ デバッグ用: ASIOデバイスのenumerateと、ログ出力 ] +// CEnumerateAllAsioDevices.GetAllASIODevices(); +//Debug.WriteLine( "BassAsio.BASS_ASIO_GetDeviceInfo():" ); +// int a, count = 0; +// BASS_ASIO_DEVICEINFO asioDevInfo; +// for ( a = 0; ( asioDevInfo = BassAsio.BASS_ASIO_GetDeviceInfo( a ) ) != null; a++ ) +// { +// Trace.TraceInformation( "ASIO Device {0}: {1}, driver={2}", a, asioDevInfo.name, asioDevInfo.driver ); +// count++; // count it +// } + #endregion + + // BASS ASIO の初期化。 + BASS_ASIO_INFO asioInfo = null; + if ( BassAsio.BASS_ASIO_Init( nASIODevice, BASSASIOInit.BASS_ASIO_THREAD ) ) // 専用スレッドにて起動 + { + #region [ ASIO の初期化に成功。] + //----------------- + this.e出力デバイス = ESoundDeviceType.ASIO; + asioInfo = BassAsio.BASS_ASIO_GetInfo(); + this.n出力チャンネル数 = asioInfo.outputs; + this.db周波数 = BassAsio.BASS_ASIO_GetRate(); + this.fmtASIOデバイスフォーマット = BassAsio.BASS_ASIO_ChannelGetFormat( false, 0 ); + + Trace.TraceInformation( "BASS を初期化しました。(ASIO, デバイス:\"{0}\", 入力{1}, 出力{2}, {3}Hz, バッファ{4}~{6}sample ({5:0.###}~{7:0.###}ms), デバイスフォーマット:{8})", + asioInfo.name, + asioInfo.inputs, + asioInfo.outputs, + this.db周波数.ToString( "0.###" ), + asioInfo.bufmin, asioInfo.bufmin * 1000 / this.db周波数, + asioInfo.bufmax, asioInfo.bufmax * 1000 / this.db周波数, + this.fmtASIOデバイスフォーマット.ToString() + ); + this.bIsBASSFree = false; + #region [ debug: channel format ] + //BASS_ASIO_CHANNELINFO chinfo = new BASS_ASIO_CHANNELINFO(); + //int chan = 0; + //while ( true ) + //{ + // if ( !BassAsio.BASS_ASIO_ChannelGetInfo( false, chan, chinfo ) ) + // break; + // Debug.WriteLine( "Ch=" + chan + ": " + chinfo.name.ToString() + ", " + chinfo.group.ToString() + ", " + chinfo.format.ToString() ); + // chan++; + //} + #endregion + //----------------- + #endregion + } + else + { + #region [ ASIO の初期化に失敗。] + //----------------- + BASSError errcode = Bass.BASS_ErrorGetCode(); + string errmes = errcode.ToString(); + if ( errcode == BASSError.BASS_OK ) + { + errmes = "BASS_OK; The device may be dissconnected"; + } + Bass.BASS_Free(); + this.bIsBASSFree = true; + throw new Exception( string.Format( "BASS (ASIO) の初期化に失敗しました。(BASS_ASIO_Init)[{0}]", errmes ) ); + //----------------- + #endregion + } + + + // ASIO 出力チャンネルの初期化。 + + this.tAsioProc = new ASIOPROC( this.tAsio処理 ); // アンマネージに渡す delegate は、フィールドとして保持しておかないとGCでアドレスが変わってしまう。 + if ( !BassAsio.BASS_ASIO_ChannelEnable( false, 0, this.tAsioProc, IntPtr.Zero ) ) // 出力チャンネル0 の有効化。 + { + #region [ ASIO 出力チャンネルの初期化に失敗。] + //----------------- + BassAsio.BASS_ASIO_Free(); + Bass.BASS_Free(); + this.bIsBASSFree = true; + throw new Exception( string.Format( "Failed BASS_ASIO_ChannelEnable() [{0}]", BassAsio.BASS_ASIO_ErrorGetCode().ToString() ) ); + //----------------- + #endregion + } + for ( int i = 1; i < this.n出力チャンネル数; i++ ) // 出力チャネルを全てチャネル0とグループ化する。 + { // チャネル1だけを0とグループ化すると、3ch以上の出力をサポートしたカードでの動作がおかしくなる + if ( !BassAsio.BASS_ASIO_ChannelJoin( false, i, 0 ) ) + { + #region [ 初期化に失敗。] + //----------------- + BassAsio.BASS_ASIO_Free(); + Bass.BASS_Free(); + this.bIsBASSFree = true; + throw new Exception( string.Format( "Failed BASS_ASIO_ChannelJoin({1}) [{0}]", BassAsio.BASS_ASIO_ErrorGetCode().ToString(), i ) ); + //----------------- + #endregion + } + } + if ( !BassAsio.BASS_ASIO_ChannelSetFormat( false, 0, this.fmtASIOチャンネルフォーマット ) ) // 出力チャンネル0のフォーマット + { + #region [ ASIO 出力チャンネルの初期化に失敗。] + //----------------- + BassAsio.BASS_ASIO_Free(); + Bass.BASS_Free(); + this.bIsBASSFree = true; + throw new Exception( string.Format( "Failed BASS_ASIO_ChannelSetFormat() [{0}]", BassAsio.BASS_ASIO_ErrorGetCode().ToString() ) ); + //----------------- + #endregion + } + + // ASIO 出力と同じフォーマットを持つ BASS ミキサーを作成。 + + var flag = BASSFlag.BASS_MIXER_NONSTOP | BASSFlag.BASS_STREAM_DECODE; // デコードのみ=発声しない。ASIO に出力されるだけ。 + if( this.fmtASIOデバイスフォーマット == BASSASIOFormat.BASS_ASIO_FORMAT_FLOAT ) + flag |= BASSFlag.BASS_SAMPLE_FLOAT; + this.hMixer = BassMix.BASS_Mixer_StreamCreate( (int) this.db周波数, this.n出力チャンネル数, flag ); + + if ( this.hMixer == 0 ) + { + BASSError err = Bass.BASS_ErrorGetCode(); + BassAsio.BASS_ASIO_Free(); + Bass.BASS_Free(); + this.bIsBASSFree = true; + throw new Exception( string.Format( "BASSミキサ(mixing)の作成に失敗しました。[{0}]", err ) ); + } + + // BASS ミキサーの1秒あたりのバイト数を算出。 + + var mixerInfo = Bass.BASS_ChannelGetInfo( this.hMixer ); + int nサンプルサイズbyte = 0; + switch( this.fmtASIOチャンネルフォーマット ) + { + case BASSASIOFormat.BASS_ASIO_FORMAT_16BIT: nサンプルサイズbyte = 2; break; + case BASSASIOFormat.BASS_ASIO_FORMAT_24BIT: nサンプルサイズbyte = 3; break; + case BASSASIOFormat.BASS_ASIO_FORMAT_32BIT: nサンプルサイズbyte = 4; break; + case BASSASIOFormat.BASS_ASIO_FORMAT_FLOAT: nサンプルサイズbyte = 4; break; + } + //long nミキサーの1サンプルあたりのバイト数 = /*mixerInfo.chans*/ 2 * nサンプルサイズbyte; + long nミキサーの1サンプルあたりのバイト数 = mixerInfo.chans * nサンプルサイズbyte; + this.nミキサーの1秒あたりのバイト数 = nミキサーの1サンプルあたりのバイト数 * mixerInfo.freq; + + + // 単純に、hMixerの音量をMasterVolumeとして制御しても、 + // ChannelGetData()の内容には反映されない。 + // そのため、もう一段mixerを噛ませて、一段先のmixerからChannelGetData()することで、 + // hMixerの音量制御を反映させる。 + this.hMixer_DeviceOut = BassMix.BASS_Mixer_StreamCreate( + (int) this.db周波数, this.n出力チャンネル数, flag ); + if ( this.hMixer_DeviceOut == 0 ) + { + BASSError errcode = Bass.BASS_ErrorGetCode(); + BassAsio.BASS_ASIO_Free(); + Bass.BASS_Free(); + this.bIsBASSFree = true; + throw new Exception( string.Format( "BASSミキサ(最終段)の作成に失敗しました。[{0}]", errcode ) ); + } + { + bool b1 = BassMix.BASS_Mixer_StreamAddChannel( this.hMixer_DeviceOut, this.hMixer, BASSFlag.BASS_DEFAULT ); + if ( !b1 ) + { + BASSError errcode = Bass.BASS_ErrorGetCode(); + BassAsio.BASS_ASIO_Free(); + Bass.BASS_Free(); + this.bIsBASSFree = true; + throw new Exception( string.Format( "BASSミキサ(最終段とmixing)の接続に失敗しました。[{0}]", errcode ) ); + }; + } + + + // 出力を開始。 + + this.nバッファサイズsample = (int) ( n希望バッファサイズms * this.db周波数 / 1000.0 ); + //this.nバッファサイズsample = (int) nバッファサイズbyte; + if ( !BassAsio.BASS_ASIO_Start( this.nバッファサイズsample ) ) // 範囲外の値を指定した場合は自動的にデフォルト値に設定される。 + { + BASSError err = BassAsio.BASS_ASIO_ErrorGetCode(); + BassAsio.BASS_ASIO_Free(); + Bass.BASS_Free(); + this.bIsBASSFree = true; + throw new Exception( "ASIO デバイス出力開始に失敗しました。" + err.ToString() ); + } + else + { + int n遅延sample = BassAsio.BASS_ASIO_GetLatency( false ); // この関数は BASS_ASIO_Start() 後にしか呼び出せない。 + int n希望遅延sample = (int) ( n希望バッファサイズms * this.db周波数 / 1000.0 ); + this.n実バッファサイズms = this.n実出力遅延ms = (long) ( n遅延sample * 1000.0f / this.db周波数 ); + Trace.TraceInformation( "ASIO デバイス出力開始:バッファ{0}sample(希望{1}) [{2}ms(希望{3}ms)]", n遅延sample, n希望遅延sample, this.n実出力遅延ms, n希望バッファサイズms ); + } + } + + #region [ tサウンドを作成する() ] + public CSound tサウンドを作成する( string strファイル名, ESoundGroup soundGroup ) + { + var sound = new CSound(soundGroup); + sound.tASIOサウンドを作成する( strファイル名, this.hMixer ); + return sound; + } + + public void tサウンドを作成する( string strファイル名, CSound sound ) + { + sound.tASIOサウンドを作成する( strファイル名, this.hMixer ); + } + public void tサウンドを作成する( byte[] byArrWAVファイルイメージ, CSound sound ) + { + sound.tASIOサウンドを作成する( byArrWAVファイルイメージ, this.hMixer ); + } + #endregion + + + #region [ Dispose-Finallizeパターン実装 ] + //----------------- + public void Dispose() + { + this.Dispose( true ); + GC.SuppressFinalize( this ); + } + protected void Dispose( bool bManagedDispose ) + { + this.e出力デバイス = ESoundDeviceType.Unknown; // まず出力停止する(Dispose中にクラス内にアクセスされることを防ぐ) + if ( hMixer != -1 ) + { + Bass.BASS_StreamFree( this.hMixer ); + } + if ( !this.bIsBASSFree ) + { + BassAsio.BASS_ASIO_Free(); // システムタイマより先に呼び出すこと。(tAsio処理() の中でシステムタイマを参照してるため) + Bass.BASS_Free(); + } + + if( bManagedDispose ) + { + C共通.tDisposeする( this.tmシステムタイマ ); + this.tmシステムタイマ = null; + } + } + ~CSoundDeviceASIO() + { + this.Dispose( false ); + } + //----------------- + #endregion + + + protected int hMixer = -1; + protected int hMixer_DeviceOut = -1; + protected int n出力チャンネル数 = 0; + protected double db周波数 = 0.0; + protected int nバッファサイズsample = 0; + protected BASSASIOFormat fmtASIOデバイスフォーマット = BASSASIOFormat.BASS_ASIO_FORMAT_UNKNOWN; + protected BASSASIOFormat fmtASIOチャンネルフォーマット = BASSASIOFormat.BASS_ASIO_FORMAT_16BIT; // 16bit 固定 + //protected BASSASIOFormat fmtASIOチャンネルフォーマット = BASSASIOFormat.BASS_ASIO_FORMAT_32BIT;// 16bit 固定 + protected ASIOPROC tAsioProc = null; + + protected int tAsio処理( bool input, int channel, IntPtr buffer, int length, IntPtr user ) + { + if( input ) return 0; + + + // BASSミキサからの出力データをそのまま ASIO buffer へ丸投げ。 + + int num = Bass.BASS_ChannelGetData( this.hMixer_DeviceOut, buffer, length ); // num = 実際に転送した長さ + + if ( num == -1 ) num = 0; + + + // 経過時間を更新。 + // データの転送差分ではなく累積転送バイト数から算出する。 + + this.n経過時間ms = ( this.n累積転送バイト数 * 1000 / this.nミキサーの1秒あたりのバイト数 ) - this.n実出力遅延ms; + this.n経過時間を更新したシステム時刻ms = this.tmシステムタイマ.nシステム時刻ms; + + + // 経過時間を更新後に、今回分の累積転送バイト数を反映。 + + this.n累積転送バイト数 += num; + return num; + } + + private long nミキサーの1秒あたりのバイト数 = 0; + private long n累積転送バイト数 = 0; + private bool bIsBASSFree = true; + } +} diff --git a/FDK19/コード/03.サウンド/CSoundDeviceDirectSound.cs b/FDK19/コード/03.サウンド/CSoundDeviceDirectSound.cs new file mode 100644 index 00000000..13a27965 --- /dev/null +++ b/FDK19/コード/03.サウンド/CSoundDeviceDirectSound.cs @@ -0,0 +1,278 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Diagnostics; +using System.IO; +using System.Threading; +using SlimDX; +using SharpDX.DirectSound; + +namespace FDK +{ + internal class CSoundDeviceDirectSound : ISoundDevice + { + // プロパティ + + public ESoundDeviceType e出力デバイス + { + get; + protected set; + } + public long n実出力遅延ms + { + get; + protected set; + } + public long n実バッファサイズms + { + get; + protected set; + } + + public static readonly BufferFlags DefaultFlags = BufferFlags.Defer | BufferFlags.GetCurrentPosition2 | BufferFlags.GlobalFocus | BufferFlags.ControlVolume | BufferFlags.ControlPan | BufferFlags.ControlFrequency; + + // CSoundTimer 用に公開しているプロパティ + + public long n経過時間ms + { + get + { + if ( ctimer != null ) + { + this.sd経過時間計測用サウンドバッファ.DirectSoundBuffer.GetCurrentPosition(out int n現在位置, out int _); + long n現在のシステム時刻ms = this.tmシステムタイマ.nシステム時刻ms; + + + // ループ回数を調整。 + + long nシステム時刻での間隔ms = n現在のシステム時刻ms - this.n前に経過時間を測定したシステム時刻ms; + + while ( nシステム時刻での間隔ms >= n単位繰り上げ間隔ms ) // 前回から単位繰り上げ間隔以上経過してるなら確実にループしている。誤差は大きくないだろうから無視。 + { + this.nループ回数++; + nシステム時刻での間隔ms -= n単位繰り上げ間隔ms; + } + + if ( n現在位置 < this.n前回の位置 ) // 単位繰り上げ間隔以内であっても、現在位置が前回より手前にあるなら1回ループしている。 + this.nループ回数++; + + + // 経過時間を算出。 + + long n経過時間ms = (long) ( ( this.nループ回数 * n単位繰り上げ間隔ms ) + ( n現在位置 * 1000.0 / ( 44100.0 * 2 * 2 ) ) ); + + + // 今回の値を次回に向けて保存。 + + this.n前に経過時間を測定したシステム時刻ms = n現在のシステム時刻ms; + this.n前回の位置 = n現在位置; + + return n経過時間ms; + } + else + { + long nRet = ctimer.nシステム時刻ms - this.n前に経過時間を測定したシステム時刻ms; + if ( nRet < 0 ) // カウンタがループしたときは + { + nRet = ( ctimer.nシステム時刻 - long.MinValue ) + ( long.MaxValue - this.n前に経過時間を測定したシステム時刻ms ) + 1; + } + this.n前に経過時間を測定したシステム時刻ms = ctimer.nシステム時刻ms; + + return nRet; + } + } + } + public long n経過時間を更新したシステム時刻ms + { + get { throw new NotImplementedException(); } + } + public CTimer tmシステムタイマ + { + get; + protected set; + } + + public int nMasterVolume + { + get + { + return (int) 100; + } + set + { + // 特に何もしない + } + } + + + // メソッド + + public CSoundDeviceDirectSound( IntPtr hWnd, long n遅延時間ms, bool bUseOSTimer ) + { + Trace.TraceInformation( "DirectSound の初期化を開始します。" ); + + this.e出力デバイス = ESoundDeviceType.Unknown; + this.n実バッファサイズms = this.n実出力遅延ms = n遅延時間ms; + this.tmシステムタイマ = new CTimer( CTimer.E種別.MultiMedia ); + + #region [ DirectSound デバイスを作成する。] + //----------------- + this.DirectSound = new DirectSound(); // 失敗したら例外をそのまま発出。 + + // デバイスの協調レベルを設定する。 + + bool priority = true; + try + { + this.DirectSound.SetCooperativeLevel( hWnd, CooperativeLevel.Priority ); + } + catch + { + this.DirectSound.SetCooperativeLevel( hWnd, CooperativeLevel.Normal ); // これでも失敗したら例外をそのまま発出。 + priority = false; + } + + // デバイス作成完了。 + + this.e出力デバイス = ESoundDeviceType.DirectSound; + //----------------- + #endregion + + if ( !bUseOSTimer ) + { + #region [ 経過時間計測用サウンドバッファを作成し、ループ再生を開始する。] + //----------------- + + // 単位繰り上げ間隔[秒]の長さを持つ無音のサウンドを作成。 + + uint nデータサイズbyte = n単位繰り上げ間隔sec * 44100 * 2 * 2; + var ms = new MemoryStream(); + var bw = new BinaryWriter( ms ); + bw.Write( (uint) 0x46464952 ); // 'RIFF' + bw.Write( (uint) ( 44 + nデータサイズbyte - 8 ) ); // ファイルサイズ - 8 + bw.Write( (uint) 0x45564157 ); // 'WAVE' + bw.Write( (uint) 0x20746d66 ); // 'fmt ' + bw.Write( (uint) 16 ); // バイト数 + bw.Write( (ushort) 1 ); // フォーマットID(リニアPCM) + bw.Write( (ushort) 2 ); // チャンネル数 + bw.Write( (uint) 44100 ); // サンプリング周波数 + bw.Write( (uint) ( 44100 * 2 * 2 ) ); // bytes/sec + bw.Write( (ushort) ( 2 * 2 ) ); // blockサイズ + bw.Write( (ushort) 16 ); // bit/sample + bw.Write( (uint) 0x61746164 ); // 'data' + bw.Write( (uint) nデータサイズbyte ); // データ長 + for ( int i = 0; i < nデータサイズbyte / sizeof( long ); i++ ) // PCMデータ + bw.Write( (long) 0 ); + var byArrWaveFleImage = ms.ToArray(); + bw.Close(); + ms = null; + bw = null; + this.sd経過時間計測用サウンドバッファ = this.tサウンドを作成する( byArrWaveFleImage, ESoundGroup.Unknown ); + + CSound.listインスタンス.Remove( this.sd経過時間計測用サウンドバッファ ); // 特殊用途なのでインスタンスリストからは除外する。 + + // サウンドのループ再生開始。 + + this.nループ回数 = 0; + this.n前回の位置 = 0; + this.sd経過時間計測用サウンドバッファ.DirectSoundBuffer.Play( 0, PlayFlags.Looping ); + this.n前に経過時間を測定したシステム時刻ms = this.tmシステムタイマ.nシステム時刻ms; + //----------------- + #endregion + } + else + { + ctimer = new CTimer( CTimer.E種別.MultiMedia ); + } + Trace.TraceInformation( "DirectSound を初期化しました。({0})({1})", ( priority ) ? "Priority" : "Normal", bUseOSTimer? "OStimer" : "FDKtimer" ); + } + + public CSound tサウンドを作成する( string strファイル名, ESoundGroup soundGroup ) + { + var sound = new CSound(soundGroup); + sound.tDirectSoundサウンドを作成する( strファイル名, this.DirectSound ); + return sound; + } + + private CSound tサウンドを作成する( byte[] byArrWAVファイルイメージ, ESoundGroup soundGroup ) + { + var sound = new CSound(soundGroup); + sound.tDirectSoundサウンドを作成する( byArrWAVファイルイメージ, this.DirectSound ); + return sound; + } + + // 既存のインスタンス(生成直後 or Dispose済み)に対してサウンドを生成する。 + public void tサウンドを作成する( string strファイル名, CSound sound ) + { + sound.tDirectSoundサウンドを作成する( strファイル名, this.DirectSound ); + } + public void tサウンドを作成する( byte[] byArrWAVファイルイメージ, CSound sound ) + { + sound.tDirectSoundサウンドを作成する( byArrWAVファイルイメージ, this.DirectSound ); + } + public void tサウンドを作成する( byte[] byArrWAVファイルイメージ, BufferFlags flags, CSound sound ) + { + sound.tDirectSoundサウンドを作成する( byArrWAVファイルイメージ, this.DirectSound, flags ); + } + + #region [ Dispose-Finallizeパターン実装 ] + //----------------- + public void Dispose() + { + this.Dispose( true ); + GC.SuppressFinalize( this ); + } + protected void Dispose( bool bManagedDispose ) + { + this.e出力デバイス = ESoundDeviceType.Unknown; // まず出力停止する(Dispose中にクラス内にアクセスされることを防ぐ) + if ( bManagedDispose ) + { + #region [ 経緯時間計測用サウンドバッファを解放。] + //----------------- + if ( this.sd経過時間計測用サウンドバッファ != null ) + { + this.sd経過時間計測用サウンドバッファ.tサウンドを停止する(); + C共通.tDisposeする( ref this.sd経過時間計測用サウンドバッファ ); + } + //----------------- + #endregion + #region [ 単位繰り上げ用スレッド停止。] + //----------------- + if( this.th経過時間測定用スレッド != null ) + { + this.th経過時間測定用スレッド.Abort(); + this.th経過時間測定用スレッド = null; + + } + //----------------- + #endregion + + C共通.tDisposeする( ref this.DirectSound ); + C共通.tDisposeする( this.tmシステムタイマ ); + } + if ( ctimer != null ) + { + C共通.tDisposeする( ref this.ctimer ); + } + } + ~CSoundDeviceDirectSound() + { + this.Dispose( false ); + } + //----------------- + #endregion + + protected DirectSound DirectSound = null; + protected CSound sd経過時間計測用サウンドバッファ = null; + protected Thread th経過時間測定用スレッド = null; +// protected AutoResetEvent autoResetEvent = new AutoResetEvent( false ); + protected const uint n単位繰り上げ間隔sec = 1; // [秒] + protected const uint n単位繰り上げ間隔ms = n単位繰り上げ間隔sec * 1000; // [ミリ秒] + protected int nループ回数 = 0; + + private long n前に経過時間を測定したシステム時刻ms = CTimer.n未使用; + private int n前回の位置 = 0; + + private CTimer ctimer = null; + } +} diff --git a/FDK19/コード/03.サウンド/CSoundDeviceWASAPI.cs b/FDK19/コード/03.サウンド/CSoundDeviceWASAPI.cs new file mode 100644 index 00000000..8e1cd920 --- /dev/null +++ b/FDK19/コード/03.サウンド/CSoundDeviceWASAPI.cs @@ -0,0 +1,447 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Diagnostics; +using Un4seen.Bass; +using Un4seen.BassWasapi; +using Un4seen.Bass.AddOn.Mix; + +namespace FDK +{ + internal class CSoundDeviceWASAPI : ISoundDevice + { + // プロパティ + + public ESoundDeviceType e出力デバイス + { + get; + protected set; + } + public long n実出力遅延ms + { + get; + protected set; + } + public long n実バッファサイズms + { + get; + protected set; + } + + // CSoundTimer 用に公開しているプロパティ + + public long n経過時間ms + { + get; + protected set; + } + public long n経過時間を更新したシステム時刻ms + { + get; + protected set; + } + public CTimer tmシステムタイマ + { + get; + protected set; + } + + public enum Eデバイスモード { 排他, 共有 } + + public int nMasterVolume + { + get + { + float f音量 = 0.0f; + //if ( BassMix.BASS_Mixer_ChannelGetEnvelopePos( this.hMixer, BASSMIXEnvelope.BASS_MIXER_ENV_VOL, ref f音量 ) == -1 ) + // return 100; + //bool b = Bass.BASS_ChannelGetAttribute( this.hMixer, BASSAttribute.BASS_ATTRIB_VOL, ref f音量 ); + bool b = Bass.BASS_ChannelGetAttribute( this.hMixer, BASSAttribute.BASS_ATTRIB_VOL, ref f音量 ); + if ( !b ) + { + BASSError be = Bass.BASS_ErrorGetCode(); + Trace.TraceInformation( "WASAPI Master Volume Get Error: " + be.ToString() ); + } + else + { + Trace.TraceInformation( "WASAPI Master Volume Get Success: " + (f音量 * 100) ); + + } + return (int) ( f音量 * 100 ); + } + set + { + // bool b = Bass.BASS_SetVolume( value / 100.0f ); + // →Exclusiveモード時は無効 + +// bool b = BassWasapi.BASS_WASAPI_SetVolume( BASSWASAPIVolume.BASS_WASAPI_VOL_SESSION, (float) ( value / 100 ) ); +// bool b = BassWasapi.BASS_WASAPI_SetVolume( BASSWASAPIVolume.BASS_WASAPI_CURVE_WINDOWS, (float) ( value / 100 ) ); + bool b = Bass.BASS_ChannelSetAttribute( this.hMixer, BASSAttribute.BASS_ATTRIB_VOL, (float) ( value / 100.0 ) ); + // If you would like to have a volume control in exclusive mode too, and you're using the BASSmix add-on, + // you can adjust the source's BASS_ATTRIB_VOL setting via BASS_ChannelSetAttribute. + // しかし、hMixerに対するBASS_ChannelSetAttribute()でBASS_ATTRIB_VOLを変更: なぜか出力音量に反映されず + + // Bass_SetVolume(): BASS_ERROR_NOTAVIL ("no sound" deviceには適用不可) + + // Mixer_ChannelSetEnvelope(): + + //var nodes = new BASS_MIXER_NODE[ 1 ] { new BASS_MIXER_NODE( 0, (float) value ) }; + //bool b = BassMix.BASS_Mixer_ChannelSetEnvelope( this.hMixer, BASSMIXEnvelope.BASS_MIXER_ENV_VOL, nodes ); + //bool b = Bass.BASS_ChannelSetAttribute( this.hMixer, BASSAttribute.BASS_ATTRIB_VOL, value / 100.0f ); + if ( !b ) + { + BASSError be = Bass.BASS_ErrorGetCode(); + Trace.TraceInformation( "WASAPI Master Volume Set Error: " + be.ToString() ); + } + else + { + // int n = this.nMasterVolume; + // Trace.TraceInformation( "WASAPI Master Volume Set Success: " + value ); + + } + } + } + // メソッド + + /// + /// WASAPIの初期化 + /// + /// + /// (未使用; 本メソッド内で自動設定する) + /// (未使用; 本メソッド内で自動設定する) + public CSoundDeviceWASAPI( Eデバイスモード mode, long n希望バッファサイズms, long n更新間隔ms ) + { + // 初期化。 + + Trace.TraceInformation( "BASS (WASAPI) の初期化を開始します。" ); + + this.e出力デバイス = ESoundDeviceType.Unknown; + this.n実出力遅延ms = 0; + this.n経過時間ms = 0; + this.n経過時間を更新したシステム時刻ms = CTimer.n未使用; + this.tmシステムタイマ = new CTimer( CTimer.E種別.MultiMedia ); + this.b最初の実出力遅延算出 = true; + + #region [ BASS registration ] + // BASS.NET ユーザ登録(BASSスプラッシュが非表示になる)。 + + BassNet.Registration( "dtx2013@gmail.com", "2X9181017152222" ); + #endregion + + #region [ BASS Version Check ] + // BASS のバージョンチェック。 + int nBASSVersion = Utils.HighWord( Bass.BASS_GetVersion() ); + if( nBASSVersion != Bass.BASSVERSION ) + throw new DllNotFoundException( string.Format( "bass.dll のバージョンが異なります({0})。このプログラムはバージョン{1}で動作します。", nBASSVersion, Bass.BASSVERSION ) ); + + int nBASSMixVersion = Utils.HighWord( BassMix.BASS_Mixer_GetVersion() ); + if( nBASSMixVersion != BassMix.BASSMIXVERSION ) + throw new DllNotFoundException( string.Format( "bassmix.dll のバージョンが異なります({0})。このプログラムはバージョン{1}で動作します。", nBASSMixVersion, BassMix.BASSMIXVERSION ) ); + + int nBASSWASAPIVersion = Utils.HighWord( BassWasapi.BASS_WASAPI_GetVersion() ); + if( nBASSWASAPIVersion != BassWasapi.BASSWASAPIVERSION ) + throw new DllNotFoundException( string.Format( "basswasapi.dll のバージョンが異なります({0})。このプログラムはバージョン{1}で動作します。", nBASSWASAPIVersion, BassWasapi.BASSWASAPIVERSION ) ); + #endregion + + // BASS の設定。 + + this.bIsBASSFree = true; + + if (!Bass.BASS_SetConfig( BASSConfig.BASS_CONFIG_UPDATEPERIOD, 0 )) // 0:BASSストリームの自動更新を行わない。 + { + Trace.TraceWarning($"BASS_SetConfig({nameof(BASSConfig.BASS_CONFIG_UPDATEPERIOD)}) に失敗しました。[{Bass.BASS_ErrorGetCode()}]"); + } + if (!Bass.BASS_SetConfig( BASSConfig.BASS_CONFIG_UPDATETHREADS, 0 )) // 0:BASSストリームの自動更新を行わない。 + { + Trace.TraceWarning($"BASS_SetConfig({nameof(BASSConfig.BASS_CONFIG_UPDATETHREADS)}) に失敗しました。[{Bass.BASS_ErrorGetCode()}]"); + } + + // BASS の初期化。 + + int nデバイス = 0; // 0:"no device" … BASS からはデバイスへアクセスさせない。アクセスは BASSWASAPI アドオンから行う。 + int n周波数 = 44100; // 仮決め。lデバイス(≠ドライバ)がネイティブに対応している周波数であれば何でもいい?ようだ。BASSWASAPIでデバイスの周波数は変えられる。いずれにしろBASSMXで自動的にリサンプリングされる。 + if( !Bass.BASS_Init( nデバイス, n周波数, BASSInit.BASS_DEVICE_DEFAULT, IntPtr.Zero ) ) + throw new Exception( string.Format( "BASS (WASAPI) の初期化に失敗しました。(BASS_Init)[{0}]", Bass.BASS_ErrorGetCode().ToString() ) ); + + Bass.BASS_SetConfig(BASSConfig.BASS_CONFIG_CURVE_VOL, true); + + #region [ デバッグ用: WASAPIデバイスのenumerateと、ログ出力 ] + // (デバッグ用) + //Trace.TraceInformation( "WASAPIデバイス一覧:" ); + //int a, count = 0; + //BASS_WASAPI_DEVICEINFO wasapiDevInfo; + //for ( a = 0; ( wasapiDevInfo = BassWasapi.BASS_WASAPI_GetDeviceInfo( a ) ) != null; a++ ) + //{ + // if ( ( wasapiDevInfo.flags & BASSWASAPIDeviceInfo.BASS_DEVICE_INPUT ) == 0 // device is an output device (not input) + // && ( wasapiDevInfo.flags & BASSWASAPIDeviceInfo.BASS_DEVICE_ENABLED ) != 0 ) // and it is enabled + // { + // Trace.TraceInformation( "WASAPI Device #{0}: {1}", a, wasapiDevInfo.name ); + // count++; // count it + // } + //} + #endregion + + // BASS WASAPI の初期化。 + + nデバイス = -1; + n周波数 = 0; // デフォルトデバイスの周波数 (0="mix format" sample rate) + int nチャンネル数 = 0; // デフォルトデバイスのチャンネル数 (0="mix format" channels) + this.tWasapiProc = new WASAPIPROC( this.tWASAPI処理 ); // アンマネージに渡す delegate は、フィールドとして保持しておかないとGCでアドレスが変わってしまう。 + + // WASAPIの更新間隔(period)は、バッファサイズにも影響を与える。 + // 更新間隔を最小にするには、BassWasapi.BASS_WASAPI_GetDeviceInfo( ndevNo ).minperiod の値を使えばよい。 + // これをやらないと、更新間隔ms=6ms となり、バッファサイズを 6ms x 4 = 24msより小さくできない。 + #region [ 既定の出力デバイスと設定されているWASAPIデバイスを検索し、更新間隔msを設定できる最小値にする ] + int nDevNo = -1; + BASS_WASAPI_DEVICEINFO deviceInfo; + for ( int n = 0; ( deviceInfo = BassWasapi.BASS_WASAPI_GetDeviceInfo( n ) ) != null; n++ ) + { + if ( deviceInfo.IsDefault ) + { + nDevNo = n; + break; + } + } + if ( nDevNo != -1 ) + { + // Trace.TraceInformation( "Selected Default WASAPI Device: {0}", deviceInfo.name ); + // Trace.TraceInformation( "MinPeriod={0}, DefaultPeriod={1}", deviceInfo.minperiod, deviceInfo.defperiod ); + n更新間隔ms = (long) ( deviceInfo.minperiod * 1000 ); + if ( n希望バッファサイズms <= 0 || n希望バッファサイズms < n更新間隔ms + 1 ) + { + n希望バッファサイズms = n更新間隔ms + 1; // 2013.4.25 #31237 yyagi; バッファサイズ設定の完全自動化。更新間隔=バッファサイズにするとBASS_ERROR_UNKNOWNになるので+1する。 + } + } + else + { + Trace.TraceError( "Error: Default WASAPI Device is not found." ); + } + #endregion + +//Retry: + var flags = ( mode == Eデバイスモード.排他 ) ? BASSWASAPIInit.BASS_WASAPI_AUTOFORMAT | BASSWASAPIInit.BASS_WASAPI_EXCLUSIVE : BASSWASAPIInit.BASS_WASAPI_AUTOFORMAT; + //var flags = ( mode == Eデバイスモード.排他 ) ? BASSWASAPIInit.BASS_WASAPI_AUTOFORMAT | BASSWASAPIInit.BASS_WASAPI_EVENT | BASSWASAPIInit.BASS_WASAPI_EXCLUSIVE : BASSWASAPIInit.BASS_WASAPI_AUTOFORMAT | BASSWASAPIInit.BASS_WASAPI_EVENT; + if ( BassWasapi.BASS_WASAPI_Init( nデバイス, n周波数, nチャンネル数, flags, ( n希望バッファサイズms / 1000.0f ), ( n更新間隔ms / 1000.0f ), this.tWasapiProc, IntPtr.Zero ) ) + { + if( mode == Eデバイスモード.排他 ) + { + #region [ 排他モードで作成成功。] + //----------------- + this.e出力デバイス = ESoundDeviceType.ExclusiveWASAPI; + + nDevNo = BassWasapi.BASS_WASAPI_GetDevice(); + deviceInfo = BassWasapi.BASS_WASAPI_GetDeviceInfo( nDevNo ); + var wasapiInfo = BassWasapi.BASS_WASAPI_GetInfo(); + int n1サンプルのバイト数 = 2 * wasapiInfo.chans; // default; + switch( wasapiInfo.format ) // BASS WASAPI で扱うサンプルはすべて 32bit float で固定されているが、デバイスはそうとは限らない。 + { + case BASSWASAPIFormat.BASS_WASAPI_FORMAT_8BIT: n1サンプルのバイト数 = 1 * wasapiInfo.chans; break; + case BASSWASAPIFormat.BASS_WASAPI_FORMAT_16BIT: n1サンプルのバイト数 = 2 * wasapiInfo.chans; break; + case BASSWASAPIFormat.BASS_WASAPI_FORMAT_24BIT: n1サンプルのバイト数 = 3 * wasapiInfo.chans; break; + case BASSWASAPIFormat.BASS_WASAPI_FORMAT_32BIT: n1サンプルのバイト数 = 4 * wasapiInfo.chans; break; + case BASSWASAPIFormat.BASS_WASAPI_FORMAT_FLOAT: n1サンプルのバイト数 = 4 * wasapiInfo.chans; break; + } + int n1秒のバイト数 = n1サンプルのバイト数 * wasapiInfo.freq; + this.n実バッファサイズms = (long) ( wasapiInfo.buflen * 1000.0f / n1秒のバイト数 ); + this.n実出力遅延ms = 0; // 初期値はゼロ + Trace.TraceInformation( "使用デバイス: #" + nDevNo + " : " + deviceInfo.name + ", flags=" + deviceInfo.flags ); + Trace.TraceInformation( "BASS を初期化しました。(WASAPI排他モード, {0}Hz, {1}ch, フォーマット:{2}, バッファ{3}bytes [{4}ms(希望{5}ms)], 更新間隔{6}ms)", + wasapiInfo.freq, + wasapiInfo.chans, + wasapiInfo.format.ToString(), + wasapiInfo.buflen, + n実バッファサイズms.ToString(), + n希望バッファサイズms.ToString(), + n更新間隔ms.ToString() ); + Trace.TraceInformation( "デバイスの最小更新時間={0}ms, 既定の更新時間={1}ms", deviceInfo.minperiod * 1000, deviceInfo.defperiod * 1000 ); + this.bIsBASSFree = false; + //----------------- + #endregion + } + else + { + #region [ 共有モードで作成成功。] + //----------------- + this.e出力デバイス = ESoundDeviceType.SharedWASAPI; + + this.n実出力遅延ms = 0; // 初期値はゼロ + var devInfo = BassWasapi.BASS_WASAPI_GetDeviceInfo( BassWasapi.BASS_WASAPI_GetDevice() ); // 共有モードの場合、更新間隔はデバイスのデフォルト値に固定される。 + Trace.TraceInformation( "BASS を初期化しました。(WASAPI共有モード, {0}ms, 更新間隔{1}ms)", n希望バッファサイズms, devInfo.defperiod * 1000.0f ); + this.bIsBASSFree = false; + //----------------- + #endregion + } + } + #region [ #31737 WASAPI排他モードのみ利用可能とし、WASAPI共有モードは使用できないようにするために、WASAPI共有モードでの初期化フローを削除する。 ] + //else if ( mode == Eデバイスモード.排他 ) + //{ + // Trace.TraceInformation("Failed to initialize setting BASS (WASAPI) mode [{0}]", Bass.BASS_ErrorGetCode().ToString() ); + // #region [ 排他モードに失敗したのなら共有モードでリトライ。] + // //----------------- + // mode = Eデバイスモード.共有; + // goto Retry; + // //----------------- + // #endregion + //} + #endregion + else + { + #region [ それでも失敗したら例外発生。] + //----------------- + BASSError errcode = Bass.BASS_ErrorGetCode(); + Bass.BASS_Free(); + this.bIsBASSFree = true; + throw new Exception( string.Format( "BASS (WASAPI) の初期化に失敗しました。(BASS_WASAPI_Init)[{0}]", errcode ) ); + //----------------- + #endregion + } + + + // WASAPI出力と同じフォーマットを持つ BASS ミキサーを作成。 + + var info = BassWasapi.BASS_WASAPI_GetInfo(); + this.hMixer = BassMix.BASS_Mixer_StreamCreate( + info.freq, + info.chans, + BASSFlag.BASS_MIXER_NONSTOP | BASSFlag.BASS_SAMPLE_FLOAT | BASSFlag.BASS_STREAM_DECODE ); // デコードのみ=発声しない。WASAPIに出力されるだけ。 + if ( this.hMixer == 0 ) + { + BASSError errcode = Bass.BASS_ErrorGetCode(); + BassWasapi.BASS_WASAPI_Free(); + Bass.BASS_Free(); + this.bIsBASSFree = true; + throw new Exception( string.Format( "BASSミキサ(mixing)の作成に失敗しました。[{0}]", errcode ) ); + } + + + // BASS ミキサーの1秒あたりのバイト数を算出。 + + var mixerInfo = Bass.BASS_ChannelGetInfo( this.hMixer ); + long nミキサーの1サンプルあたりのバイト数 = mixerInfo.chans * 4; // 4 = sizeof(FLOAT) + this.nミキサーの1秒あたりのバイト数 = nミキサーの1サンプルあたりのバイト数 * mixerInfo.freq; + + + + // 単純に、hMixerの音量をMasterVolumeとして制御しても、 + // ChannelGetData()の内容には反映されない。 + // そのため、もう一段mixerを噛ませて、一段先のmixerからChannelGetData()することで、 + // hMixerの音量制御を反映させる。 + this.hMixer_DeviceOut = BassMix.BASS_Mixer_StreamCreate( + info.freq, + info.chans, + BASSFlag.BASS_MIXER_NONSTOP | BASSFlag.BASS_SAMPLE_FLOAT | BASSFlag.BASS_STREAM_DECODE ); // デコードのみ=発声しない。WASAPIに出力されるだけ。 + if ( this.hMixer_DeviceOut == 0 ) + { + BASSError errcode = Bass.BASS_ErrorGetCode(); + BassWasapi.BASS_WASAPI_Free(); + Bass.BASS_Free(); + this.bIsBASSFree = true; + throw new Exception( string.Format( "BASSミキサ(最終段)の作成に失敗しました。[{0}]", errcode ) ); + } + + { + bool b1 = BassMix.BASS_Mixer_StreamAddChannel( this.hMixer_DeviceOut, this.hMixer, BASSFlag.BASS_DEFAULT ); + if ( !b1 ) + { + BASSError errcode = Bass.BASS_ErrorGetCode(); + BassWasapi.BASS_WASAPI_Free(); + Bass.BASS_Free(); + this.bIsBASSFree = true; + throw new Exception( string.Format( "BASSミキサ(最終段とmixing)の接続に失敗しました。[{0}]", errcode ) ); + }; + } + + + // 出力を開始。 + + BassWasapi.BASS_WASAPI_Start(); + } + #region [ tサウンドを作成する() ] + public CSound tサウンドを作成する( string strファイル名, ESoundGroup soundGroup ) + { + var sound = new CSound(soundGroup); + sound.tWASAPIサウンドを作成する( strファイル名, this.hMixer, this.e出力デバイス ); + return sound; + } + + public void tサウンドを作成する( string strファイル名, CSound sound ) + { + sound.tWASAPIサウンドを作成する( strファイル名, this.hMixer, this.e出力デバイス ); + } + public void tサウンドを作成する( byte[] byArrWAVファイルイメージ, CSound sound ) + { + sound.tWASAPIサウンドを作成する( byArrWAVファイルイメージ, this.hMixer, this.e出力デバイス ); + } + #endregion + + #region [ Dispose-Finallizeパターン実装 ] + //----------------- + public void Dispose() + { + this.Dispose( true ); + GC.SuppressFinalize( this ); + } + protected void Dispose( bool bManagedDispose ) + { + this.e出力デバイス = ESoundDeviceType.Unknown; // まず出力停止する(Dispose中にクラス内にアクセスされることを防ぐ) + if ( hMixer != -1 ) + { + Bass.BASS_StreamFree( this.hMixer ); + } + if ( !this.bIsBASSFree ) + { + BassWasapi.BASS_WASAPI_Free(); // システムタイマより先に呼び出すこと。(tWasapi処理() の中でシステムタイマを参照してるため) + Bass.BASS_Free(); + } + if( bManagedDispose ) + { + C共通.tDisposeする( this.tmシステムタイマ ); + this.tmシステムタイマ = null; + } + } + ~CSoundDeviceWASAPI() + { + this.Dispose( false ); + } + //----------------- + #endregion + + protected int hMixer = -1; + protected int hMixer_DeviceOut = -1; + protected WASAPIPROC tWasapiProc = null; + + protected int tWASAPI処理( IntPtr buffer, int length, IntPtr user ) + { + // BASSミキサからの出力データをそのまま WASAPI buffer へ丸投げ。 + + int num = Bass.BASS_ChannelGetData( this.hMixer_DeviceOut, buffer, length ); // num = 実際に転送した長さ + if ( num == -1 ) num = 0; + + + // 経過時間を更新。 + // データの転送差分ではなく累積転送バイト数から算出する。 + + int n未再生バイト数 = BassWasapi.BASS_WASAPI_GetData( null, (int) BASSData.BASS_DATA_AVAILABLE ); // 誤差削減のため、必要となるギリギリ直前に取得する。 + this.n経過時間ms = ( this.n累積転送バイト数 - n未再生バイト数 ) * 1000 / this.nミキサーの1秒あたりのバイト数; + this.n経過時間を更新したシステム時刻ms = this.tmシステムタイマ.nシステム時刻ms; + + // 実出力遅延を更新。 + // 未再生バイト数の平均値。 + + long n今回の遅延ms = n未再生バイト数 * 1000 / this.nミキサーの1秒あたりのバイト数; + this.n実出力遅延ms = ( this.b最初の実出力遅延算出 ) ? n今回の遅延ms : ( this.n実出力遅延ms + n今回の遅延ms ) / 2; + this.b最初の実出力遅延算出 = false; + + + // 経過時間を更新後に、今回分の累積転送バイト数を反映。 + + this.n累積転送バイト数 += num; + return num; + } + + private long nミキサーの1秒あたりのバイト数 = 0; + private long n累積転送バイト数 = 0; + private bool b最初の実出力遅延算出 = true; + private bool bIsBASSFree = true; + } +} diff --git a/FDK19/コード/03.サウンド/CSoundTimer.cs b/FDK19/コード/03.サウンド/CSoundTimer.cs new file mode 100644 index 00000000..86060758 --- /dev/null +++ b/FDK19/コード/03.サウンド/CSoundTimer.cs @@ -0,0 +1,214 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Threading; +using System.Runtime.InteropServices; +using System.Diagnostics; + +namespace FDK +{ + public class CSoundTimer : CTimerBase + { + public override long nシステム時刻ms + { + get + { + if( this.Device.e出力デバイス == ESoundDeviceType.ExclusiveWASAPI || + this.Device.e出力デバイス == ESoundDeviceType.SharedWASAPI || + this.Device.e出力デバイス == ESoundDeviceType.ASIO ) + { + // BASS 系の ISoundDevice.n経過時間ms はオーディオバッファの更新間隔ずつでしか更新されないため、単にこれを返すだけではとびとびの値になる。 + // そこで、更新間隔の最中に呼ばれた場合は、システムタイマを使って補間する。 + // この場合の経過時間との誤差は更新間隔以内に収まるので問題ないと判断する。 + // ただし、ASIOの場合は、転送byte数から時間算出しているため、ASIOの音声合成処理の負荷が大きすぎる場合(処理時間が実時間を超えている場合)は + // 動作がおかしくなる。(具体的には、ここで返すタイマー値の逆行が発生し、スクロールが巻き戻る) + // この場合の対策は、ASIOのバッファ量を増やして、ASIOの音声合成処理の負荷を下げること。 + + if ( this.Device.n経過時間を更新したシステム時刻ms == CTimer.n未使用 ) // #33890 2014.5.27 yyagi + { + // 環境によっては、ASIOベースの演奏タイマーが動作する前(つまりASIOのサウンド転送が始まる前)に + // DTXデータの演奏が始まる場合がある。 + // その場合、"this.Device.n経過時間を更新したシステム時刻" が正しい値でないため、 + // 演奏タイマの値が正しいものとはならない。そして、演奏タイマーの動作が始まると同時に、 + // 演奏タイマの値がすっ飛ぶ(極端な負の値になる)ため、演奏のみならず画面表示もされない状態となる。 + // (画面表示はタイマの値に連動して行われるが、0以上のタイマ値に合わせて動作するため、 + // 不の値が来ると画面に何も表示されなくなる) + + // そこで、演奏タイマが動作を始める前(this.Device.n経過時間を更新したシステム時刻ms == CTimer.n未使用)は、 + // 補正部分をゼロにして、n経過時間msだけを返すようにする。 + // こうすることで、演奏タイマが動作を始めても、破綻しなくなる。 + return this.Device.n経過時間ms; + } + else + { + if ( FDK.CSound管理.bUseOSTimer ) + //if ( true ) + { + return ctDInputTimer.nシステム時刻ms; // 仮にCSoundTimerをCTimer相当の動作にしてみた + } + else + { + return this.Device.n経過時間ms + + ( this.Device.tmシステムタイマ.nシステム時刻ms - this.Device.n経過時間を更新したシステム時刻ms ); + } + } + } + else if( this.Device.e出力デバイス == ESoundDeviceType.DirectSound ) + { + //return this.Device.n経過時間ms; // #24820 2013.2.3 yyagi TESTCODE DirectSoundでスクロールが滑らかにならないため、 + return ct.nシステム時刻ms; // 仮にCSoundTimerをCTimer相当の動作にしてみた + } + return CTimerBase.n未使用; + } + } + + internal CSoundTimer( ISoundDevice device ) + { + this.Device = device; + + if ( this.Device.e出力デバイス != ESoundDeviceType.DirectSound ) + { + TimerCallback timerDelegate = new TimerCallback( SnapTimers ); // CSoundTimerをシステム時刻に変換するために、 + timer = new Timer( timerDelegate, null, 0, 1000 ); // CSoundTimerとCTimerを両方とも走らせておき、 + ctDInputTimer = new CTimer( CTimer.E種別.MultiMedia ); // 1秒に1回時差を測定するようにしておく + } + else // TESTCODE DirectSound時のみ、CSoundTimerでなくCTimerを使う + { + ct = new CTimer( CTimer.E種別.MultiMedia ); + } + } + + private void SnapTimers(object o) // 1秒に1回呼び出され、2つのタイマー間の現在値をそれぞれ保持する。 + { + if ( this.Device.e出力デバイス != ESoundDeviceType.DirectSound ) + { + try + { + this.nDInputTimerCounter = this.ctDInputTimer.nシステム時刻ms; + this.nSoundTimerCounter = this.nシステム時刻ms; + //Debug.WriteLine( "BaseCounter: " + nDInputTimerCounter + ", " + nSoundTimerCounter ); + } + catch ( Exception e ) + // サウンド設定変更時に、timer.Dispose()した後、timerが実際に停止する前にここに来てしまう場合があり + // その際にNullReferenceExceptionが発生する + // timerが実際に停止したことを検出してから次の設定をすべきだが、実装が難しいため、 + // ここで単に例外破棄することで代替する + { + Trace.TraceInformation( e.ToString() ); + Trace.TraceInformation("FDK: CSoundTimer.SnapTimers(): 例外発生しましたが、継続します。" ); + } + } + } + public long nサウンドタイマーのシステム時刻msへの変換( long nDInputのタイムスタンプ ) + { + return nDInputのタイムスタンプ - this.nDInputTimerCounter + this.nSoundTimerCounter; // Timer違いによる時差を補正する + } + +#if false + // キーボードイベント(keybd_eventの引数と同様のデータ) + [StructLayout( LayoutKind.Sequential )] + private struct KEYBDINPUT + { + public ushort wVk; + public ushort wScan; + public uint dwFlags; + public uint time; + public IntPtr dwExtraInfo; + }; + // 各種イベント(SendInputの引数データ) + [StructLayout( LayoutKind.Sequential )] + private struct INPUT + { + public int type; + public KEYBDINPUT ki; + }; + // キー操作、マウス操作をシミュレート(擬似的に操作する) + [DllImport( "user32.dll" )] + private extern static void SendInput( + int nInputs, ref INPUT pInputs, int cbsize ); + + // 仮想キーコードをスキャンコードに変換 + [DllImport( "user32.dll", EntryPoint = "MapVirtualKeyA" )] + private extern static int MapVirtualKey( + int wCode, int wMapType ); + + [DllImport( "user32.dll" )] + static extern IntPtr GetMessageExtraInfo(); + + private const int INPUT_MOUSE = 0; // マウスイベント + private const int INPUT_KEYBOARD = 1; // キーボードイベント + private const int INPUT_HARDWARE = 2; // ハードウェアイベント + private const int KEYEVENTF_KEYDOWN = 0x0; // キーを押す + private const int KEYEVENTF_KEYUP = 0x2; // キーを離す + private const int KEYEVENTF_EXTENDEDKEY = 0x1; // 拡張コード + private const int KEYEVENTF_SCANCODE = 0x8; + private const int KEYEVENTF_UNIOCODE = 0x4; + private const int VK_SHIFT = 0x10; // SHIFTキー + + private void pollingSendInput() + { +// INPUT[] inp = new INPUT[ 2 ]; + INPUT inp = new INPUT(); + while ( true ) + { + // (2)キーボード(A)を押す + //inp[0].type = INPUT_KEYBOARD; + //inp[ 0 ].ki.wVk = ( ushort ) Key.B; + //inp[ 0 ].ki.wScan = ( ushort ) MapVirtualKey( inp[ 0 ].ki.wVk, 0 ); + //inp[ 0 ].ki.dwFlags = KEYEVENTF_KEYDOWN; + //inp[ 0 ].ki.dwExtraInfo = IntPtr.Zero; + //inp[ 0 ].ki.time = 0; + inp.type = INPUT_KEYBOARD; + inp.ki.wVk = ( ushort ) Key.B; + inp.ki.wScan = ( ushort ) MapVirtualKey( inp.ki.wVk, 0 ); + inp.ki.dwFlags = KEYEVENTF_SCANCODE | KEYEVENTF_KEYDOWN; + inp.ki.dwExtraInfo = GetMessageExtraInfo(); + inp.ki.time = 0; + + //// (3)キーボード(A)を離す + //inp[ 1 ].type = INPUT_KEYBOARD; + //inp[ 1 ].ki.wVk = ( short ) Key.B; + //inp[ 1 ].ki.wScan = ( short ) MapVirtualKey( inp[ 1 ].ki.wVk, 0 ); + //inp[ 1 ].ki.dwFlags = KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP; + //inp[ 1 ].ki.dwExtraInfo = 0; + //inp[ 1 ].ki.time = 0; + + // キーボード操作実行 + SendInput( 1, ref inp, Marshal.SizeOf( inp ) ); +Debug.WriteLine( "B" ); + Thread.Sleep( 1000 ); + } + } +#endif + public override void Dispose() + { + // 特になし; ISoundDevice の解放は呼び出し元で行うこと。 + + //sendinputスレッド削除 + if ( timer != null ) + { + timer.Change( System.Threading.Timeout.Infinite, System.Threading.Timeout.Infinite ); + // ここで、実際にtimerが停止したことを確認するコードを追加すべきだが、やり方わからず。 + // 代替策として、SnapTimers()中で、例外発生を破棄している。 + timer.Dispose(); + timer = null; + } + if ( ct != null ) + { + ct.t一時停止(); + ct.Dispose(); + ct = null; + } + } + + internal ISoundDevice Device = null; // debugのため、一時的にprotectedをpublicにする。後で元に戻しておくこと。 + //protected Thread thSendInput = null; + //protected Thread thSnapTimers = null; + private CTimer ctDInputTimer = null; + private long nDInputTimerCounter = 0; + private long nSoundTimerCounter = 0; + Timer timer = null; + + private CTimer ct = null; // TESTCODE + } +} diff --git a/FDK19/コード/03.サウンド/Cmp3.cs b/FDK19/コード/03.サウンド/Cmp3.cs new file mode 100644 index 00000000..761122be --- /dev/null +++ b/FDK19/コード/03.サウンド/Cmp3.cs @@ -0,0 +1,62 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Runtime.InteropServices; +using System.IO; +using System.Diagnostics; +using System.Threading; + + +namespace FDK +{ + public unsafe class Cmp3 : SoundDecoder + { +// static byte[] FOURCC = Encoding.ASCII.GetBytes( "SggO" ); // OggS の little endian + + + #region [ SoundDecoder.dll インポート(mpr 関連)] + //----------------- + [DllImport( "SoundDecoder.dll" )] + private static extern void mp3Close( int nHandle ); + [DllImport( "SoundDecoder.dll" )] + private static extern int mp3Decode( int nHandle, IntPtr pDest, uint szDestSize, int bLoop ); + [DllImport( "SoundDecoder.dll" )] + private static extern int mp3GetFormat( int nHandle, ref CWin32.WAVEFORMATEX wfx ); + [DllImport( "SoundDecoder.dll" )] + private static extern uint mp3GetTotalPCMSize( int nHandle ); + [DllImport( "SoundDecoder.dll" )] + private static extern int mp3Open( string fileName ); + [DllImport( "SoundDecoder.dll" )] + private static extern int mp3Seek( int nHandle, uint dwPosition ); + //----------------- + #endregion + + + public override int Open( string filename ) + { + return mp3Open( filename ); + } + public override int GetFormat( int nHandle, ref CWin32.WAVEFORMATEX wfx ) + { + return mp3GetFormat( nHandle, ref wfx ); + } + public override uint GetTotalPCMSize( int nHandle ) + { + return mp3GetTotalPCMSize( nHandle ); + } + public override int Seek( int nHandle, uint dwPosition ) + { + return mp3Seek( nHandle, dwPosition ); + } + public override int Decode( int nHandle, IntPtr pDest, uint szDestSize, int bLoop ) + { + return mp3Decode( nHandle, pDest, szDestSize, bLoop ); + } + + public override void Close( int nHandle ) + { + mp3Close( nHandle ); + } + + } +} diff --git a/FDK19/コード/03.サウンド/Cogg.cs b/FDK19/コード/03.サウンド/Cogg.cs new file mode 100644 index 00000000..c99b9ebe --- /dev/null +++ b/FDK19/コード/03.サウンド/Cogg.cs @@ -0,0 +1,62 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Runtime.InteropServices; +using System.IO; +using System.Diagnostics; +using System.Threading; + + +namespace FDK +{ + public unsafe class Cogg : SoundDecoder + { + static byte[] FOURCC = Encoding.ASCII.GetBytes( "SggO" ); // OggS の little endian + + + #region [ SoundDecoder.dll インポート(ogg 関連)] + //----------------- + [DllImport( "SoundDecoder.dll" )] + private static extern void oggClose( int nHandle ); + [DllImport( "SoundDecoder.dll" )] + private static extern int oggDecode( int nHandle, IntPtr pDest, uint szDestSize, int bLoop ); + [DllImport( "SoundDecoder.dll" )] + private static extern int oggGetFormat( int nHandle, ref CWin32.WAVEFORMATEX wfx ); + [DllImport( "SoundDecoder.dll" )] + private static extern uint oggGetTotalPCMSize( int nHandle ); + [DllImport( "SoundDecoder.dll" )] + private static extern int oggOpen( string fileName ); + [DllImport( "SoundDecoder.dll" )] + private static extern int oggSeek( int nHandle, uint dwPosition ); + //----------------- + #endregion + + + public override int Open( string filename ) + { + return oggOpen( filename ); + } + public override int GetFormat( int nHandle, ref CWin32.WAVEFORMATEX wfx ) + { + return oggGetFormat( nHandle, ref wfx ); + } + public override uint GetTotalPCMSize( int nHandle ) + { + return oggGetTotalPCMSize( nHandle ); + } + public override int Seek( int nHandle, uint dwPosition ) + { + return oggSeek( nHandle, dwPosition ); + } + public override int Decode( int nHandle, IntPtr pDest, uint szDestSize, int bLoop ) + { + return oggDecode( nHandle, pDest, szDestSize, bLoop ); + } + + public override void Close( int nHandle ) + { + oggClose( nHandle ); + } + + } +} diff --git a/FDK19/コード/03.サウンド/Cxa.cs b/FDK19/コード/03.サウンド/Cxa.cs new file mode 100644 index 00000000..ee239fe0 --- /dev/null +++ b/FDK19/コード/03.サウンド/Cxa.cs @@ -0,0 +1,380 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Runtime.InteropServices; +using System.IO; +using System.Diagnostics; +using System.Threading; + + +namespace FDK +{ + public unsafe class Cxa : SoundDecoder //, IDisposable + { + static byte[] FOURCC = Encoding.ASCII.GetBytes( "1DWK" ); // KWD1 の little endian + + #region [ XA用構造体の宣言 ] + [StructLayout(LayoutKind.Sequential)] + public struct XASTREAMHEADER { + public byte* pSrc; + public uint nSrcLen; + public uint nSrcUsed; + public byte* pDst; + public uint nDstLen; + public uint nDstUsed; + } + + [StructLayout( LayoutKind.Sequential )] + public struct XAHEADER + { + public uint id; + public uint nDataLen; + public uint nSamples; + public ushort nSamplesPerSec; + public byte nBits; + public byte nChannels; + public uint nLoopPtr; + [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)] + public short[] befL; + [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)] + public short[] befR; + [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)] + public byte[] pad; + } + #endregion + + #region [ xadec.dllとのリンク ] + [DllImport( "xadec.dll", EntryPoint = "xaDecodeOpen", CallingConvention = CallingConvention.Cdecl )] + public extern static IntPtr xaDecodeOpen( ref XAHEADER pxah, out FDK.CWin32.WAVEFORMATEX pwfx ); + [DllImport( "xadec.dll", EntryPoint = "xaDecodeClose", CallingConvention = CallingConvention.Cdecl )] + public extern static bool xaDecodeClose( IntPtr hxas ); + [DllImport( "xadec.dll", EntryPoint = "xaDecodeSize", CallingConvention = CallingConvention.Cdecl )] + public extern static bool xaDecodeSize( IntPtr hxas, uint slen, out uint pdlen ); + [DllImport( "xadec.dll", EntryPoint = "xaDecodeConvert", CallingConvention = CallingConvention.Cdecl )] + public extern static bool xaDecodeConvert( IntPtr hxas, ref XASTREAMHEADER psh ); + #endregion + + public XAHEADER xaheader; + public XASTREAMHEADER xastreamheader; + public CWin32.WAVEFORMATEX waveformatex; + + private string filename; + private byte[] srcBuf = null; + private int nHandle = -1; + + public override int Open( string filename ) + { + this.filename = filename; + + #region [ XAヘッダと、XAデータの読み出し ] + xaheader = new XAHEADER(); + using ( FileStream fs = new FileStream( filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite ) ) // FileShare を付けとかないと、Close() 後もロックがかかる?? + { + using ( BinaryReader br = new BinaryReader( fs ) ) + { + xaheader.id = br.ReadUInt32(); + xaheader.nDataLen = br.ReadUInt32(); + xaheader.nSamples = br.ReadUInt32(); + xaheader.nSamplesPerSec = br.ReadUInt16(); + xaheader.nBits = br.ReadByte(); + xaheader.nChannels = br.ReadByte(); + xaheader.nLoopPtr = br.ReadUInt32(); + + xaheader.befL = new short[ 2 ]; + xaheader.befR = new short[ 2 ]; + xaheader.pad = new byte[ 4 ]; + + xaheader.befL[ 0 ] = br.ReadInt16(); + xaheader.befL[ 1 ] = br.ReadInt16(); + xaheader.befR[ 0 ] = br.ReadInt16(); + xaheader.befR[ 1 ] = br.ReadInt16(); + xaheader.pad = br.ReadBytes( 4 ); + + srcBuf = new byte[ xaheader.nDataLen ]; + srcBuf = br.ReadBytes( (int) xaheader.nDataLen ); + } + } + //string xaid = Encoding.ASCII.GetString( xah.id ); + #region [ デバッグ表示 ] + //Debug.WriteLine( "**XAHEADER**" ); + //Debug.WriteLine( "id= " + xaheader.id.ToString( "X8" ) ); + //Debug.WriteLine( "nDataLen= " + xaheader.nDataLen.ToString( "X8" ) ); + //Debug.WriteLine( "nSamples= " + xaheader.nSamples.ToString( "X8" ) ); + //Debug.WriteLine( "nSamplesPerSec= " + xaheader.nSamplesPerSec.ToString( "X4" ) ); + //Debug.WriteLine( "nBits= " + xaheader.nBits.ToString( "X2" ) ); + //Debug.WriteLine( "nChannels= " + xaheader.nChannels.ToString( "X2" ) ); + //Debug.WriteLine( "nLoopPtr= " + xaheader.nLoopPtr.ToString( "X8" ) ); + //Debug.WriteLine( "befL[0]= " + xaheader.befL[ 0 ].ToString( "X4" ) ); + //Debug.WriteLine( "befL[1]= " + xaheader.befL[ 1 ].ToString( "X4" ) ); + //Debug.WriteLine( "befR[0]= " + xaheader.befR[ 0 ].ToString( "X4" ) ); + //Debug.WriteLine( "befR[1]= " + xaheader.befR[ 1 ].ToString( "X4" ) ); + #endregion + #endregion + + IntPtr hxas; + + #region [ WAVEFORMEX情報の取得 ] + waveformatex = new CWin32.WAVEFORMATEX(); + hxas = xaDecodeOpen( ref xaheader, out waveformatex ); + if ( hxas == null ) + { + Trace.TraceError( "Error: xa: Open(): xaDecodeOpen(): " + Path.GetFileName( filename ) ); + return -1; + } + + #region [ デバッグ表示 ] + //Debug.WriteLine( "**WAVEFORMATEX**" ); + //Debug.WriteLine( "wFormatTag= " + waveformatex.wFormatTag.ToString( "X4" ) ); + //Debug.WriteLine( "nChannels = " + waveformatex.nChannels.ToString( "X4" ) ); + //Debug.WriteLine( "nSamplesPerSec= " + waveformatex.nSamplesPerSec.ToString( "X8" ) ); + //Debug.WriteLine( "nAvgBytesPerSec= " + waveformatex.nAvgBytesPerSec.ToString( "X8" ) ); + //Debug.WriteLine( "nBlockAlign= " + waveformatex.nBlockAlign.ToString( "X4" ) ); + //Debug.WriteLine( "wBitsPerSample= " + waveformatex.wBitsPerSample.ToString( "X4" ) ); + //Debug.WriteLine( "cbSize= " + waveformatex.cbSize.ToString( "X4" ) ); + #endregion + #endregion + + this.nHandle = (int) hxas; + return (int) hxas; + } + public override int GetFormat( int nHandle, ref CWin32.WAVEFORMATEX wfx ) + { + #region [ WAVEFORMATEX構造体の手動コピー ] + wfx.nAvgBytesPerSec = waveformatex.nAvgBytesPerSec; + wfx.wBitsPerSample = waveformatex.wBitsPerSample; + wfx.nBlockAlign = waveformatex.nBlockAlign; + wfx.nChannels = waveformatex.nChannels; + wfx.wFormatTag = waveformatex.wFormatTag; + wfx.nSamplesPerSec = waveformatex.nSamplesPerSec; + + return 0; + #endregion + } + public override uint GetTotalPCMSize( int nHandle ) + { + #region [ データ長の取得 ] + uint dlen; + xaDecodeSize( (IntPtr) nHandle, xaheader.nDataLen, out dlen ); + #region [ デバッグ表示 ] + //Debug.WriteLine( "**INTERNAL VALUE**" ); + //Debug.WriteLine( "dlen= " + dlen ); + #endregion + #endregion + + return dlen; + } + public override int Seek( int nHandle, uint dwPosition ) + { + return 0; + } + public override int Decode( int nHandle, IntPtr pDest, uint szDestSize, int bLoop ) + { + #region [ xaデータのデコード ] + xastreamheader = new XASTREAMHEADER(); + unsafe + { + fixed ( byte* pXaBuf = srcBuf ) + { + byte* pWavBuf = (byte*) pDest; + + xastreamheader.pSrc = pXaBuf; + xastreamheader.nSrcLen = xaheader.nDataLen; + xastreamheader.nSrcUsed = 0; + xastreamheader.pDst = pWavBuf; + xastreamheader.nDstLen = szDestSize; + xastreamheader.nDstUsed = 0; + if ( !xaDecodeConvert( (IntPtr) nHandle, ref xastreamheader ) ) + { + Trace.TraceError( "Error: xaDecodeConvert(): " + Path.GetFileName( filename ) ); + return -1; + } + } + } + #region [ デバッグ表示 ] + //Debug.WriteLine( "**XASTREAMHEADER**" ); + //Debug.WriteLine( "nSrcLen= " + xastreamheader.nSrcLen ); + //Debug.WriteLine( "nSrcUsed= " + xastreamheader.nSrcUsed ); + //Debug.WriteLine( "nDstLen= " + xastreamheader.nDstLen ); + //Debug.WriteLine( "nDstUsed= " + xastreamheader.nDstUsed ); + #endregion + #endregion + + return 0; + } + public override void Close( int nHandle ) + { + #region [ xaファイルのクローズ ] + if ( !xaDecodeClose( (IntPtr) nHandle ) ) + { + Trace.TraceError( "Error: xaDecodeClose(): " + Path.GetFileName( filename ) ); + } + srcBuf = null; + #endregion + } + + + + //#region [ IDisposable 実装 ] + ////----------------- + //private bool bDispose完了済み = false; + //public void Dispose() + //{ + // if ( !this.bDispose完了済み ) + // { + // if ( srcBuf != null ) + // { + // srcBuf = null; + // } + // if ( dstBuf != null ) + // { + // dstBuf = null; + // } + + // if ( this.nHandle >= 0 ) + // { + // this.Close( this.nHandle ); + // this.nHandle = -1; + // } + // this.bDispose完了済み = true; + // } + //} + ////----------------- + //#endregion + +#if false + /// + /// xaファイルを読み込んで、wavにdecodeする + /// + /// xaファイル名 + /// wavファイルが格納されるバッファ + /// + public bool Decode( string filename, out byte[] wavBuf ) + { + // Debug.WriteLine( "xa: Decode: " + Path.GetFileName( filename ) ); + + #region [ XAヘッダと、XAデータの読み出し ] + xaheader = new XAHEADER(); + byte[] xaBuf; + using ( FileStream fs = new FileStream( filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite ) ) // FileShare を付けとかないと、Close() 後もロックがかかる?? + { + using ( BinaryReader br = new BinaryReader( fs ) ) + { + xaheader.id = br.ReadUInt32(); + xaheader.nDataLen = br.ReadUInt32(); + xaheader.nSamples = br.ReadUInt32(); + xaheader.nSamplesPerSec = br.ReadUInt16(); + xaheader.nBits = br.ReadByte(); + xaheader.nChannels = br.ReadByte(); + xaheader.nLoopPtr = br.ReadUInt32(); + + xaheader.befL = new short[ 2 ]; + xaheader.befR = new short[ 2 ]; + xaheader.pad = new byte[ 4 ]; + + xaheader.befL[ 0 ] = br.ReadInt16(); + xaheader.befL[ 1 ] = br.ReadInt16(); + xaheader.befR[ 0 ] = br.ReadInt16(); + xaheader.befR[ 1 ] = br.ReadInt16(); + xaheader.pad = br.ReadBytes( 4 ); + + xaBuf = new byte[ xaheader.nDataLen ]; + xaBuf = br.ReadBytes( (int) xaheader.nDataLen ); + } + } + //string xaid = Encoding.ASCII.GetString( xah.id ); + #region [ デバッグ表示 ] + //Debug.WriteLine( "**XAHEADER**" ); + //Debug.WriteLine( "id= " + xaheader.id.ToString( "X8" ) ); + //Debug.WriteLine( "nDataLen= " + xaheader.nDataLen.ToString( "X8" ) ); + //Debug.WriteLine( "nSamples= " + xaheader.nSamples.ToString( "X8" ) ); + //Debug.WriteLine( "nSamplesPerSec= " + xaheader.nSamplesPerSec.ToString( "X4" ) ); + //Debug.WriteLine( "nBits= " + xaheader.nBits.ToString( "X2" ) ); + //Debug.WriteLine( "nChannels= " + xaheader.nChannels.ToString( "X2" ) ); + //Debug.WriteLine( "nLoopPtr= " + xaheader.nLoopPtr.ToString( "X8" ) ); + //Debug.WriteLine( "befL[0]= " + xaheader.befL[ 0 ].ToString( "X4" ) ); + //Debug.WriteLine( "befL[1]= " + xaheader.befL[ 1 ].ToString( "X4" ) ); + //Debug.WriteLine( "befR[0]= " + xaheader.befR[ 0 ].ToString( "X4" ) ); + //Debug.WriteLine( "befR[1]= " + xaheader.befR[ 1 ].ToString( "X4" ) ); + #endregion + #endregion + + object lockobj = new object(); + lock ( lockobj ) // スレッドセーフじゃないかも知れないので、念のため + { + #region [ WAVEFORMEX情報の取得 ] + waveformatex = new CWin32.WAVEFORMATEX(); + IntPtr hxas = xaDecodeOpen( ref xaheader, out waveformatex ); + if ( hxas == null ) + { + Trace.TraceError( "Error: xaDecodeOpen(): " + Path.GetFileName( filename ) ); + wavBuf = null; + return false; + } + + #region [ デバッグ表示 ] + //Debug.WriteLine( "**WAVEFORMATEX**" ); + //Debug.WriteLine( "wFormatTag= " + waveformatex.wFormatTag.ToString( "X4" ) ); + //Debug.WriteLine( "nChannels = " + waveformatex.nChannels.ToString( "X4" ) ); + //Debug.WriteLine( "nSamplesPerSec= " + waveformatex.nSamplesPerSec.ToString( "X8" ) ); + //Debug.WriteLine( "nAvgBytesPerSec= " + waveformatex.nAvgBytesPerSec.ToString( "X8" ) ); + //Debug.WriteLine( "nBlockAlign= " + waveformatex.nBlockAlign.ToString( "X4" ) ); + //Debug.WriteLine( "wBitsPerSample= " + waveformatex.wBitsPerSample.ToString( "X4" ) ); + //Debug.WriteLine( "cbSize= " + waveformatex.cbSize.ToString( "X4" ) ); + #endregion + #endregion + + #region [ データ長の取得 ] + uint dlen; + xaDecodeSize( hxas, xaheader.nDataLen, out dlen ); + #region [ デバッグ表示 ] + //Debug.WriteLine( "**INTERNAL VALUE**" ); + //Debug.WriteLine( "dlen= " + dlen ); + #endregion + #endregion + + #region [ xaデータのデコード ] + wavBuf = new byte[ dlen ]; + xastreamheader = new XASTREAMHEADER(); + + unsafe + { + fixed ( byte* pXaBuf = xaBuf, pWavBuf = wavBuf ) + { + xastreamheader.pSrc = pXaBuf; + xastreamheader.nSrcLen = xaheader.nDataLen; + xastreamheader.nSrcUsed = 0; + xastreamheader.pDst = pWavBuf; + xastreamheader.nDstLen = dlen; + xastreamheader.nDstUsed = 0; + bool b = xaDecodeConvert( hxas, ref xastreamheader ); + if ( !b ) + { + Trace.TraceError( "Error: xaDecodeConvert(): " + Path.GetFileName( filename ) ); + wavBuf = null; + return false; + } + } + } + #region [ デバッグ表示 ] + //Debug.WriteLine( "**XASTREAMHEADER**" ); + //Debug.WriteLine( "nSrcLen= " + xastreamheader.nSrcLen ); + //Debug.WriteLine( "nSrcUsed= " + xastreamheader.nSrcUsed ); + //Debug.WriteLine( "nDstLen= " + xastreamheader.nDstLen ); + //Debug.WriteLine( "nDstUsed= " + xastreamheader.nDstUsed ); + #endregion + #endregion + + #region [ xaファイルのクローズ ] + bool bb = xaDecodeClose( hxas ); + if ( !bb ) + { + Trace.TraceError( "Error: xaDecodeClose(): " + Path.GetFileName( filename ) ); + } + #endregion + } + + return true; + } +#endif + } +} diff --git a/FDK19/コード/03.サウンド/ESoundDeviceType.cs b/FDK19/コード/03.サウンド/ESoundDeviceType.cs new file mode 100644 index 00000000..fe0edf0e --- /dev/null +++ b/FDK19/コード/03.サウンド/ESoundDeviceType.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace FDK +{ + public enum ESoundDeviceType + { + ExclusiveWASAPI, + SharedWASAPI, + ASIO, + DirectSound, + Unknown, + } +} diff --git a/FDK19/コード/03.サウンド/ESoundGroup.cs b/FDK19/コード/03.サウンド/ESoundGroup.cs new file mode 100644 index 00000000..23d91f8d --- /dev/null +++ b/FDK19/コード/03.サウンド/ESoundGroup.cs @@ -0,0 +1,11 @@ +namespace FDK +{ + public enum ESoundGroup + { + SoundEffect = 1, + Voice = 2, + SongPreview = 3, + SongPlayback = 4, + Unknown = 0 + } +} diff --git a/FDK19/コード/03.サウンド/ISoundDevice.cs b/FDK19/コード/03.サウンド/ISoundDevice.cs new file mode 100644 index 00000000..b362eb22 --- /dev/null +++ b/FDK19/コード/03.サウンド/ISoundDevice.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Diagnostics; +using Un4seen.Bass; +using Un4seen.BassAsio; +using Un4seen.BassWasapi; +using Un4seen.Bass.AddOn.Mix; + +namespace FDK +{ + internal interface ISoundDevice : IDisposable + { + ESoundDeviceType e出力デバイス { get; } + int nMasterVolume { get; set; } + long n実出力遅延ms { get; } + long n実バッファサイズms { get; } + long n経過時間ms { get; } + long n経過時間を更新したシステム時刻ms { get; } + CTimer tmシステムタイマ { get; } + + CSound tサウンドを作成する( string strファイル名, ESoundGroup soundGroup ); + void tサウンドを作成する( string strファイル名, CSound sound ); + void tサウンドを作成する( byte[] byArrWAVファイルイメージ, CSound sound ); + } +} diff --git a/FDK19/コード/03.サウンド/LoudnessMetadata.cs b/FDK19/コード/03.サウンド/LoudnessMetadata.cs new file mode 100644 index 00000000..8c0f6ee9 --- /dev/null +++ b/FDK19/コード/03.サウンド/LoudnessMetadata.cs @@ -0,0 +1,22 @@ +using System; + +namespace FDK +{ + /// + /// The LoudnessMetadata structure is used to carry, and assist with + /// calculations related to, integrated loudness and true peak + /// loudness. + /// + [Serializable] + public struct LoudnessMetadata + { + public readonly Lufs Integrated; + public readonly Lufs? TruePeak; + + public LoudnessMetadata(Lufs integrated, Lufs? truePeak) + { + Integrated = integrated; + TruePeak = truePeak; + } + } +} \ No newline at end of file diff --git a/FDK19/コード/03.サウンド/LoudnessMetadataScanner.cs b/FDK19/コード/03.サウンド/LoudnessMetadataScanner.cs new file mode 100644 index 00000000..f3d26467 --- /dev/null +++ b/FDK19/コード/03.サウンド/LoudnessMetadataScanner.cs @@ -0,0 +1,357 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Diagnostics; +using System.IO; +using System.Linq; +using System.Threading; +using System.Xml.XPath; + +namespace FDK +{ + /// + /// The LoudnessMetadataScanner plays two roles: + /// 1. Scanning of song audio files using BS1770GAIN (http://bs1770gain.sourceforge.net/) + /// to determine their perceived loudness. Running on a background thread while not + /// in song gameplay, songs without existing loudness metadata files (e.g. *.bs1770gain.xml) + /// have their perceived loudness determined and saved into an associated metadata file + /// without modifying the original audio file. This scanning process begins running + /// with scanning jobs ordered based on the order in which songs are enumerated when + /// the application starts, but shifts to prioritize songs which are browsed and previewed + /// while on the song select screen. + /// 2. Loading of loudness metadata from the BS1770GAIN metadata file alongside each audio file. + /// This occurs when parsing .tja files, when song preview begins, and when song playback + /// begins. When no file is available on disk, a scanning job is passed to the background + /// scanning thread for processing. The loaded metadata is then passed into the + /// SongGainController for combination with a configured target loudness, resulting in a + /// gain value assigned to the sound object just before playback begins. + /// + public static class LoudnessMetadataScanner + { + private const string Bs1770GainExeFileName = "bs1770gain.exe"; + + private static readonly Stack Jobs = new Stack(); + private static readonly object LockObject = new object(); + private static readonly Queue RecentFileScanDurations = new Queue(); + + private static Thread ScanningThread; + private static Semaphore Semaphore; + + public static void StartBackgroundScanning() + { + var tracePrefix = $"{nameof(LoudnessMetadataScanner)}.{nameof(StartBackgroundScanning)}"; + + if (!IsBs1770GainAvailable()) + { + Trace.TraceInformation($"{tracePrefix}: BS1770GAIN is not available. A background scanning thread will not be started."); + return; + } + + Trace.TraceInformation($"{tracePrefix}: BS1770GAIN is available. Starting background scanning thread..."); + + lock (LockObject) + { + Semaphore = new Semaphore(Jobs.Count, int.MaxValue); + ScanningThread = new Thread(Scan) + { + IsBackground = true, + Name = "LoudnessMetadataScanner background scanning thread.", + Priority = ThreadPriority.Lowest + }; + ScanningThread.Start(); + } + + Trace.TraceInformation($"{tracePrefix}: Background scanning thread started."); + } + + public static void StopBackgroundScanning(bool joinImmediately) + { + var scanningThread = ScanningThread; + + if (scanningThread == null) + { + return; + } + + var tracePrefix = $"{nameof(LoudnessMetadataScanner)}.{nameof(StopBackgroundScanning)}"; + + Trace.TraceInformation($"{tracePrefix}: Stopping background scanning thread..."); + + lock (LockObject) + { + ScanningThread = null; + Semaphore.Release(); + Semaphore = null; + } + + if (joinImmediately) + { + scanningThread.Join(); + } + + Trace.TraceInformation($"{tracePrefix}: Background scanning thread stopped."); + } + + public static LoudnessMetadata? LoadForAudioPath(string absoluteBgmPath) + { + try + { + var loudnessMetadataPath = GetLoudnessMetadataPath(absoluteBgmPath); + + if (File.Exists(loudnessMetadataPath)) + { + return LoadFromMetadataPath(loudnessMetadataPath); + } + + SubmitForBackgroundScanning(absoluteBgmPath); + } + catch (Exception e) + { + var tracePrefix = $"{nameof(LoudnessMetadataScanner)}.{nameof(LoadForAudioPath)}"; + Trace.TraceError($"{tracePrefix}: Encountered an exception while attempting to load {absoluteBgmPath}"); + Trace.TraceError(e.ToString()); + } + + return null; + } + + private static string GetLoudnessMetadataPath(string absoluteBgmPath) + { + return Path.Combine( + Path.GetDirectoryName(absoluteBgmPath), + Path.GetFileNameWithoutExtension(absoluteBgmPath) + ".bs1770gain.xml"); + } + + private static LoudnessMetadata? LoadFromMetadataPath(string loudnessMetadataPath) + { + XPathDocument xPathDocument; + try + { + xPathDocument = new XPathDocument(loudnessMetadataPath); + } + catch (IOException) + { + var tracePrefix = $"{nameof(LoudnessMetadataScanner)}.{nameof(LoadFromMetadataPath)}"; + Trace.TraceWarning($"{tracePrefix}: Encountered IOException while attempting to read {loudnessMetadataPath}. This can occur when attempting to load while scanning the same file. Returning null..."); + return null; + } + + var trackNavigator = xPathDocument.CreateNavigator() + .SelectSingleNode(@"//bs1770gain/track[@ToTal=""1"" and @Number=""1""]"); + + var integratedLufsNode = trackNavigator?.SelectSingleNode(@"integrated/@lufs"); + var truePeakTpfsNode = trackNavigator?.SelectSingleNode(@"true-peak/@tpfs"); + + if (trackNavigator == null || integratedLufsNode == null || truePeakTpfsNode == null) + { + var tracePrefix = $"{nameof(LoudnessMetadataScanner)}.{nameof(LoadFromMetadataPath)}"; + Trace.TraceWarning($"{tracePrefix}: Encountered incorrect xml element structure while parsing {loudnessMetadataPath}. Returning null..."); + return null; + } + + var integrated = integratedLufsNode.ValueAsDouble; + var truePeak = truePeakTpfsNode.ValueAsDouble; + + if (integrated <= -70.0 || truePeak >= 12.04) + { + var tracePrefix = $"{nameof(LoudnessMetadataScanner)}.{nameof(LoadFromMetadataPath)}"; + Trace.TraceWarning($"{tracePrefix}: Encountered evidence of extreme clipping while parsing {loudnessMetadataPath}. Returning null..."); + return null; + } + + return new LoudnessMetadata(new Lufs(integrated), new Lufs(truePeak)); + } + + private static void SubmitForBackgroundScanning(string absoluteBgmPath) + { + lock (LockObject) + { + // Quite often, the loading process will cause the same job to be submitted many times. + // As such, we'll do a quick check as when this happens an equivalent job will often + // already be at the top of the stack and we need not add it again. + // + // Note that we will not scan the whole stack as that is an O(n) operation on the main + // thread, whereas redundant file existence checks on the background thread are not harmful. + // + // We also do not want to scan the whole stack, for example to skip pushing a new item onto it, + // because we want to re-submit jobs as the user interacts with their data, usually by + // scrolling through songs and previewing them. Their current interests should drive + // scanning priorities, and it is for this reason that a stack is used instead of a queue. + var semaphore = Semaphore; + if (semaphore != null && (Jobs.Count == 0 || Jobs.Peek() != absoluteBgmPath)) + { + Jobs.Push(absoluteBgmPath); + semaphore.Release(); + } + } + } + + private static void Scan() + { + try + { + while (true) + { + RaiseScanningStateChanged(false); + + Semaphore?.WaitOne(); + + if (ScanningThread == null) + { + return; + } + + RaiseScanningStateChanged(true); + + int jobCount; + string absoluteBgmPath; + lock (LockObject) + { + jobCount = Jobs.Count; + absoluteBgmPath = Jobs.Pop(); + } + + var tracePrefix = $"{nameof(LoudnessMetadataScanner)}.{nameof(Scan)}"; + + try + { + if (!File.Exists(absoluteBgmPath)) + { + Trace.TraceWarning($"{tracePrefix}: Scanning jobs outstanding: {jobCount - 1}. Missing audio file. Skipping {absoluteBgmPath}..."); + continue; + } + + var loudnessMetadataPath = GetLoudnessMetadataPath(absoluteBgmPath); + + if (File.Exists(loudnessMetadataPath)) + { + Trace.TraceWarning($"{tracePrefix}: Scanning jobs outstanding: {jobCount - 1}. Pre-existing metadata. Skipping {absoluteBgmPath}..."); + continue; + } + + Trace.TraceInformation($"{tracePrefix}: Scanning jobs outstanding: {jobCount}. Scanning {absoluteBgmPath}..."); + var stopwatch = Stopwatch.StartNew(); + + File.Delete(loudnessMetadataPath); + var arguments = $"-it --xml -f \"{Path.GetFileName(loudnessMetadataPath)}\" \"{Path.GetFileName(absoluteBgmPath)}\""; + Execute(Path.GetDirectoryName(absoluteBgmPath), Bs1770GainExeFileName, arguments, true); + + var seconds = stopwatch.Elapsed.TotalSeconds; + RecentFileScanDurations.Enqueue(seconds); + while (RecentFileScanDurations.Count > 20) + { + RecentFileScanDurations.Dequeue(); + } + var averageSeconds = RecentFileScanDurations.Average(); + Trace.TraceInformation($"{tracePrefix}: Scanned in {seconds}s. Estimated remaining: {(int)(averageSeconds * (jobCount - 1))}s."); + } + catch (Exception e) + { + Trace.TraceError($"{tracePrefix}: Encountered an exception while attempting to scan {absoluteBgmPath}"); + Trace.TraceError(e.ToString()); + } + } + } + catch (Exception e) + { + var tracePrefix = $"{nameof(LoudnessMetadataScanner)}.{nameof(Scan)}"; + Trace.TraceError($"{tracePrefix}: caught an exception at the level of the thread method. The background scanning thread will now terminate."); + Trace.TraceError(e.ToString()); + } + } + + private static bool IsBs1770GainAvailable() + { + try + { + Execute(null, Bs1770GainExeFileName, "-h"); + return true; + } + catch (Win32Exception) + { + return false; + } + catch (Exception e) + { + var tracePrefix = $"{nameof(LoudnessMetadataScanner)}.{nameof(IsBs1770GainAvailable)}"; + Trace.TraceError($"{tracePrefix}: Encountered an exception. Returning false..."); + Trace.TraceError(e.ToString()); + + return false; + } + } + + private static string Execute( + string workingDirectory, string fileName, string arguments, bool shouldFailOnStdErrDataReceived = false) + { + var processStartInfo = new ProcessStartInfo(fileName, arguments) + { + CreateNoWindow = true, + RedirectStandardError = true, + RedirectStandardOutput = true, + UseShellExecute = false, + WorkingDirectory = workingDirectory ?? "" + }; + + var stdoutWriter = new StringWriter(); + var stderrWriter = new StringWriter(); + using (var process = Process.Start(processStartInfo)) + { + process.OutputDataReceived += (s, e) => + { + if (e.Data != null) + { + stdoutWriter.Write(e.Data); + stdoutWriter.Write(Environment.NewLine); + } + }; + + var errorDataReceived = false; + process.ErrorDataReceived += (s, e) => + { + if (e.Data != null) + { + errorDataReceived = true; + stderrWriter.Write(e.Data); + stderrWriter.Write(Environment.NewLine); + } + }; + + process.BeginOutputReadLine(); + process.BeginErrorReadLine(); + process.WaitForExit(); + + if ((shouldFailOnStdErrDataReceived && errorDataReceived) || process.ExitCode != 0) + { + var stderr = stderrWriter.ToString(); + if (string.IsNullOrEmpty(stderr)) + { + stderr = stdoutWriter.ToString(); + } + + throw new Exception( + $"Execution of {processStartInfo.FileName} with arguments {processStartInfo.Arguments} failed with exit code {process.ExitCode}: {stderr}"); + } + + return stdoutWriter.ToString(); + } + } + + private static void RaiseScanningStateChanged(bool isActivelyScanning) + { + ScanningStateChanged?.Invoke(null, new ScanningStateChangedEventArgs(isActivelyScanning)); + } + + public class ScanningStateChangedEventArgs : EventArgs + { + public ScanningStateChangedEventArgs(bool isActivelyScanning) + { + IsActivelyScanning = isActivelyScanning; + } + + public bool IsActivelyScanning { get; private set; } + } + + public static event EventHandler ScanningStateChanged; + } +} \ No newline at end of file diff --git a/FDK19/コード/03.サウンド/Lufs.cs b/FDK19/コード/03.サウンド/Lufs.cs new file mode 100644 index 00000000..aad1efd5 --- /dev/null +++ b/FDK19/コード/03.サウンド/Lufs.cs @@ -0,0 +1,47 @@ +using System; + +namespace FDK +{ + /// + /// The Lufs structure is used to carry, and assist with calculations related to, + /// Loudness Units relative to Full Scale. LUFS are measured in absolute scale + /// and whole values represent one decibel. + /// + [Serializable] + public struct Lufs + { + private readonly double _value; + + public Lufs(double value) + { + _value = value; + } + + public double ToDouble() => _value; + + public Lufs Min(Lufs lufs) + { + return new Lufs(Math.Min(_value, lufs._value)); + } + + public Lufs Negate() + { + return new Lufs(-_value); + } + + public override string ToString() + { + return _value.ToString(); + } + + public static Lufs operator- (Lufs left, Lufs right) + { + return new Lufs(left._value - right._value); + } + + public static Lufs operator+ (Lufs left, Lufs right) + { + return new Lufs(left._value + right._value); + } + } +} diff --git a/FDK19/コード/03.サウンド/SongGainController.cs b/FDK19/コード/03.サウンド/SongGainController.cs new file mode 100644 index 00000000..7020e323 --- /dev/null +++ b/FDK19/コード/03.サウンド/SongGainController.cs @@ -0,0 +1,32 @@ +namespace FDK +{ + /// + /// SongGainController provides a central place through which song preview + /// and song playback attempt to apply BS1770GAIN-based loudness metadata + /// or .tja SONGVOL as the Gain of a song sound. + /// + /// By doing so through SongGainController instead of directly against the + /// song (preview) CSound object, SongGainController can override the Gain + /// value based on configuration or other information. + /// + public sealed class SongGainController + { + public bool ApplyLoudnessMetadata { private get; set; } + public Lufs TargetLoudness { private get; set; } + public bool ApplySongVol { private get; set; } + + public void Set(int songVol, LoudnessMetadata? songLoudnessMetadata, CSound sound) + { + if (ApplyLoudnessMetadata && songLoudnessMetadata.HasValue) + { + var gain = TargetLoudness - songLoudnessMetadata.Value.Integrated; + + sound.SetGain(gain, songLoudnessMetadata.Value.TruePeak); + } + else + { + sound.SetGain(ApplySongVol ? songVol : CSound.DefaultSongVol); + } + } + } +} diff --git a/FDK19/コード/03.サウンド/SoundDecoder.cs b/FDK19/コード/03.サウンド/SoundDecoder.cs new file mode 100644 index 00000000..94d77ad1 --- /dev/null +++ b/FDK19/コード/03.サウンド/SoundDecoder.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Diagnostics; + +namespace FDK +{ + /// + /// xa,oggデコード用の基底クラス + /// + public abstract class SoundDecoder //: IDisposable + { + public abstract int Open( string filename ); + public abstract int GetFormat( int nHandle, ref CWin32.WAVEFORMATEX wfx ); + public abstract uint GetTotalPCMSize( int nHandle ); + public abstract int Seek( int nHandle, uint dwPosition ); + public abstract int Decode( int nHandle, IntPtr pDest, uint szDestSize, int bLoop ); + public abstract void Close( int nHandle ); + } +} diff --git a/FDK19/コード/03.サウンド/SoundGroupLevelController.cs b/FDK19/コード/03.サウンド/SoundGroupLevelController.cs new file mode 100644 index 00000000..1b3e9d6c --- /dev/null +++ b/FDK19/コード/03.サウンド/SoundGroupLevelController.cs @@ -0,0 +1,132 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Collections.Specialized; +using FDK.ExtensionMethods; + +namespace FDK +{ + /// + /// SoundGroupLevelController holds the current sound level value for each + /// of the unique sound groups, along with an increment by which they can + /// easily be adjusted. + /// + /// Configuration changes to the sound group levels are provided to the + /// controller via binding code which allows CConfigIni and + /// SoundGroupLevelController to be unaware of one another. + /// See ConfigIniToSoundGroupLevelControllerBinder for more details. + /// + /// Dynamic adjustment of sound group levels during song selection and song + /// playback are managed via a small dependency taken by the respective + /// stage classes. See KeyboardSoundGroupLevelControlHandler and its usages + /// for more details. + /// + /// As new sound objects are created, including when reloading sounds due + /// to a changer in audio output device, SoundGroupLevelController ensures + /// that they are provided with the current level for their associated + /// sound group by subscribing to notifications regarding changes to a + /// collection of sound objects provided during construction. This + /// observable collection comes from the sound manager, but without either + /// it or this class being directly aware of one another. + /// + /// As sound group levels are changed, SoundGroupLevelController updates + /// all existing sound objects group levels by iterating that same + /// observable collection. + /// + public sealed class SoundGroupLevelController + { + private readonly Dictionary _levelBySoundGroup = new Dictionary + { + [ESoundGroup.SoundEffect] = CSound.MaximumGroupLevel, + [ESoundGroup.Voice] = CSound.MaximumGroupLevel, + [ESoundGroup.SongPreview] = CSound.MaximumGroupLevel, + [ESoundGroup.SongPlayback] = CSound.MaximumGroupLevel, + [ESoundGroup.Unknown] = CSound.MaximumGroupLevel + }; + + private readonly ObservableCollection _sounds; + + private int _keyboardSoundLevelIncrement; + + public SoundGroupLevelController(ObservableCollection sounds) + { + _sounds = sounds; + + _sounds.CollectionChanged += SoundsOnCollectionChanged; + } + + public void SetLevel(ESoundGroup soundGroup, int level) + { + var clampedLevel = level.Clamp(CSound.MinimumGroupLevel, CSound.MaximumGroupLevel); + + if (_levelBySoundGroup[soundGroup] == clampedLevel) + { + return; + } + + _levelBySoundGroup[soundGroup] = clampedLevel; + + foreach (var sound in _sounds) + { + if (sound.SoundGroup == soundGroup) + { + SetLevel(sound); + } + } + + RaiseLevelChanged(soundGroup, clampedLevel); + } + + public void SetKeyboardSoundLevelIncrement(int keyboardSoundLevelIncrement) + { + _keyboardSoundLevelIncrement = keyboardSoundLevelIncrement; + } + + public void AdjustLevel(ESoundGroup soundGroup, bool isAdjustmentPositive) + { + var adjustmentIncrement = isAdjustmentPositive + ? _keyboardSoundLevelIncrement + : -_keyboardSoundLevelIncrement; + + SetLevel(soundGroup, _levelBySoundGroup[soundGroup] + adjustmentIncrement); + } + + private void SetLevel(CSound sound) + { + sound.GroupLevel = _levelBySoundGroup[sound.SoundGroup]; + } + + private void SoundsOnCollectionChanged(object sender, NotifyCollectionChangedEventArgs e) + { + switch (e.Action) + { + case NotifyCollectionChangedAction.Add: + case NotifyCollectionChangedAction.Replace: + foreach (CSound sound in e.NewItems) + { + SetLevel(sound); + } + break; + } + } + + private void RaiseLevelChanged(ESoundGroup soundGroup, int level) + { + LevelChanged?.Invoke(this, new LevelChangedEventArgs(soundGroup, level)); + } + + public class LevelChangedEventArgs : EventArgs + { + public LevelChangedEventArgs(ESoundGroup soundGroup, int level) + { + SoundGroup = soundGroup; + Level = level; + } + + public ESoundGroup SoundGroup { get; private set; } + public int Level { get; private set; } + } + + public event EventHandler LevelChanged; + } +} diff --git a/FDK19/コード/04.グラフィック/BitmapUtil.cs b/FDK19/コード/04.グラフィック/BitmapUtil.cs new file mode 100644 index 00000000..83061321 --- /dev/null +++ b/FDK19/コード/04.グラフィック/BitmapUtil.cs @@ -0,0 +1,74 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Runtime.InteropServices; +using System.Drawing; +using System.IO; + +namespace FDK +{ + public static class BitmapUtil + { + // 定数 + + public const uint DIB_PAL_COLORS = 1; + public const uint DIB_RGB_COLORS = 0; + + + // 構造体 + + [StructLayout( LayoutKind.Sequential, Pack = 1 )] + public struct BITMAPFILEHEADER + { + public ushort bfType; + public uint bfSize; + public ushort bfReserved1; + public ushort bfReserved2; + public uint bfOffBits; + } + + [StructLayout( LayoutKind.Sequential, Pack = 1 )] + public struct BITMAPINFOHEADER + { + public const int BI_RGB = 0; + public uint biSize構造体のサイズ; + public int biWidthビットマップの幅dot; + public int biHeightビットマップの高さdot; + public ushort biPlanes面の数; + public ushort biBitCount; + public uint biCompression圧縮形式; + public uint biSizeImage画像イメージのサイズ; + public int biXPelsPerMete水平方向の解像度; + public int biYPelsPerMeter垂直方向の解像度; + public uint biClrUsed色テーブルのインデックス数; + public uint biClrImportant表示に必要な色インデックスの数; + } + + + // メソッド + + public static unsafe Bitmap ToBitmap( IntPtr pBITMAPINFOHEADER ) + { + BITMAPFILEHEADER bitmapfileheader; + BITMAPINFOHEADER* bitmapinfoheaderPtr = (BITMAPINFOHEADER*) pBITMAPINFOHEADER; + bitmapfileheader.bfType = 0x4d42; + bitmapfileheader.bfOffBits = (uint) ( sizeof( BITMAPFILEHEADER ) + sizeof( BITMAPINFOHEADER ) ); + bitmapfileheader.bfSize = bitmapfileheader.bfOffBits + bitmapinfoheaderPtr->biSizeImage画像イメージのサイズ; + MemoryStream output = new MemoryStream(); + BinaryWriter writer = new BinaryWriter( output ); + byte[] destination = new byte[ sizeof( BITMAPFILEHEADER ) ]; + Marshal.Copy( (IntPtr) ( &bitmapfileheader ), destination, 0, destination.Length ); + writer.Write( destination ); + destination = new byte[ sizeof( BITMAPINFOHEADER ) ]; + Marshal.Copy( pBITMAPINFOHEADER, destination, 0, destination.Length ); + writer.Write( destination ); + destination = new byte[ bitmapinfoheaderPtr->biSizeImage画像イメージのサイズ ]; + bitmapinfoheaderPtr++; + Marshal.Copy( (IntPtr) bitmapinfoheaderPtr, destination, 0, destination.Length ); + writer.Write( destination ); + writer.Flush(); + writer.BaseStream.Position = 0L; + return new Bitmap( writer.BaseStream ); + } + } +} diff --git a/FDK19/コード/04.グラフィック/CAero.cs b/FDK19/コード/04.グラフィック/CAero.cs new file mode 100644 index 00000000..98765b2e --- /dev/null +++ b/FDK19/コード/04.グラフィック/CAero.cs @@ -0,0 +1,78 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Runtime.InteropServices; +using System.Drawing; +using SlimDX; + +namespace FDK +{ + //http://spazzarama.wordpress.com/2009/09/30/enable-or-disable-dwm-composition-aero/ + /// + /// To control Aerograph in Vista and Windows7. Don't use this class in XP. + /// + public static class DWM + { + const uint DWM_EC_DISABLECOMPOSITION = 0; + const uint DWM_EC_ENABLECOMPOSITION = 1; + + [DllImport( "dwmapi.dll", EntryPoint = "DwmEnableComposition" )] + extern static uint DwmEnableComposition( uint compositionAction ); + [DllImport( "dwmapi.dll", EntryPoint = "DwmEnableComposition" )] + public extern static bool DwmIsCompositionEnabled(out bool pfEnabled); + [DllImport( "dwmapi.dll", EntryPoint = "DwmFlush" )] + extern static int DwmFlush(); +// [DllImport( "dwmapi.dll", EntryPoint = "DwmEnableMMCSS" )] +// extern static int DwmEnableMMCSS( bool fEnableMMCSS ); + [DllImport( "dwmapi.dll", EntryPoint = "DwmFlush" )] + extern static int DwmEnableMMCSS( bool fEnableMMCSS ); + + public static int IsCompositionEnabled(out bool enabled) + { +#if TEST_Direct3DEx + return DwmIsCompositionEnabled( out enabled ); +#else + enabled = false; + return 0; +#endif + } + public static int Flush() + { +#if TEST_Direct3DEx + return DwmFlush(); +#else + return 0; // 0(S_OK)なら成功 +#endif + } + + /// + /// Enable/Disable DWM composition (aka Aero) + /// + /// True to enable composition, false to disable composition. + /// True if the operation was successful. + public static bool EnableComposition( bool bIsAeroEnabled ) + { +// DwmEnableMMCSS( true ); +#if TEST_Direct3D9Ex + try + { + if ( bIsAeroEnabled ) + { + DwmEnableComposition( DWM_EC_ENABLECOMPOSITION ); + } + else + { + DwmEnableComposition( DWM_EC_DISABLECOMPOSITION ); + } + return true; + } + catch ( DllNotFoundException ) + { + return false; + } +#else + return true; +#endif + } + } +} diff --git a/FDK19/コード/04.グラフィック/CAvi.cs b/FDK19/コード/04.グラフィック/CAvi.cs new file mode 100644 index 00000000..9e8244f4 --- /dev/null +++ b/FDK19/コード/04.グラフィック/CAvi.cs @@ -0,0 +1,306 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Runtime.InteropServices; +using System.Drawing; +using SlimDX; + +namespace FDK +{ + public class CAvi : IDisposable + { + // プロパティ + + public uint dwスケール + { + get; + set; + } + public uint dwレート + { + get; + set; + } + public uint nフレーム高さ + { + get; + set; + } + public uint nフレーム幅 + { + get; + set; + } + + + // コンストラクタ + + public CAvi( string filename ) + { + if ( AVIFileOpen( out this.aviFile, filename, OpenFileFlags.OF_READ, IntPtr.Zero ) != 0 ) + { + this.Release(); + throw new Exception( "AVIFileOpen failed." ); + } + if ( AVIFileGetStream( this.aviFile, out this.aviStream, streamtypeVIDEO, 0 ) != 0 ) + { + this.Release(); + throw new Exception( "AVIFileGetStream failed." ); + } + var info = new AVISTREAMINFO(); + AVIStreamInfo( this.aviStream, ref info, Marshal.SizeOf( info ) ); + this.dwレート = info.dwRate; + this.dwスケール = info.dwScale; + this.nフレーム幅 = info.rcFrame.right - info.rcFrame.left; + this.nフレーム高さ = info.rcFrame.bottom - info.rcFrame.top; + try + { + this.frame = AVIStreamGetFrameOpen( this.aviStream, 0 ); + } + catch + { + this.Release(); + throw new Exception( "AVIStreamGetFrameOpen failed." ); + } + } + + + // メソッド + + public static void t初期化() + { + AVIFileInit(); + } + public static void t終了() + { + AVIFileExit(); + } + + public Bitmap GetFrame( int no ) + { + if( this.aviStream == IntPtr.Zero ) + throw new InvalidOperationException(); + + return BitmapUtil.ToBitmap( AVIStreamGetFrame( this.frame, no ) ); + } + public int GetFrameNoFromTime( int time ) + { + return (int) ( time * ( ( (double) this.dwレート ) / ( 1000.0 * this.dwスケール ) ) ); + } + public IntPtr GetFramePtr( int no ) + { + if( this.aviStream == IntPtr.Zero ) + throw new InvalidOperationException(); + + return AVIStreamGetFrame( this.frame, no ); + } + public int GetMaxFrameCount() + { + if( this.aviStream == IntPtr.Zero ) + throw new InvalidOperationException(); + + return AVIStreamLength( this.aviStream ); + } + + public unsafe void tBitmap24ToGraphicsStreamR5G6B5( BitmapUtil.BITMAPINFOHEADER* pBITMAPINFOHEADER, DataStream gs, int nWidth, int nHeight ) + { + int nBmpWidth = pBITMAPINFOHEADER->biWidthビットマップの幅dot; + int nBmpHeight = pBITMAPINFOHEADER->biHeightビットマップの高さdot; + int nBmpLineByte = ( nBmpWidth * 3 ) + ( ( 4 - ( ( nBmpWidth * 3 ) % 4 ) ) % 4 ); + + ushort* pTexture = (ushort*) gs.DataPointer.ToPointer(); + byte* pBitmap = (byte*) ( pBITMAPINFOHEADER + 1 ); + + for( int i = 0; i < nBmpHeight; i++ ) + { + if( i >= nHeight ) + break; + + for( int j = 0; j < nBmpWidth; j++ ) + { + if( j >= nWidth ) + break; + + ushort B = (ushort) ( ( *( ( pBitmap + ( ( ( nBmpHeight - i ) - 1 ) * nBmpLineByte ) ) + ( j * 3 ) + 0 ) >> 3 ) & 0x1f ); + ushort G = (ushort) ( ( *( ( pBitmap + ( ( ( nBmpHeight - i ) - 1 ) * nBmpLineByte ) ) + ( j * 3 ) + 1 ) >> 2 ) & 0x3f ); + ushort R = (ushort) ( ( *( ( pBitmap + ( ( ( nBmpHeight - i ) - 1 ) * nBmpLineByte ) ) + ( j * 3 ) + 2 ) >> 3 ) & 0x1f ); + *( pTexture + ( i * nWidth ) + j ) = (ushort) ( ( R << 11 ) | ( G << 5 ) | B ); + } + } + } + public unsafe void tBitmap24ToGraphicsStreamX8R8G8B8( BitmapUtil.BITMAPINFOHEADER* pBITMAPINFOHEADER, DataStream ds, int nWidth, int nHeight ) + { + int nBmpWidth = pBITMAPINFOHEADER->biWidthビットマップの幅dot; + int nBmpHeight = pBITMAPINFOHEADER->biHeightビットマップの高さdot; + int nBmpLineByte = ( nBmpWidth * 3 ) + ( ( 4 - ( ( nBmpWidth * 3 ) % 4 ) ) % 4 ); + + uint* pTexture = (uint*) ds.DataPointer.ToPointer(); + byte* pBitmap = (byte*) ( pBITMAPINFOHEADER + 1 ); + + for( int i = 0; i < nBmpHeight; i++ ) + { + if( i >= nHeight ) + break; + + for( int j = 0; j < nBmpWidth; j++ ) + { + if( j >= nWidth ) + break; + + uint B = *( ( pBitmap + ( ( ( nBmpHeight - i ) - 1 ) * nBmpLineByte ) ) + ( j * 3 ) + 0 ); + uint G = *( ( pBitmap + ( ( ( nBmpHeight - i ) - 1 ) * nBmpLineByte ) ) + ( j * 3 ) + 1 ); + uint R = *( ( pBitmap + ( ( ( nBmpHeight - i ) - 1 ) * nBmpLineByte ) ) + ( j * 3 ) + 2 ); + *( pTexture + ( i * nWidth ) + j ) = ( R << 16 ) | ( G << 8 ) | B; + } + } + } + + #region [ Dispose-Finalize パターン実装 ] + //----------------- + public void Dispose() + { + this.Dispose( true ); + GC.SuppressFinalize( this ); // 2011.8.19 from: 忘れてた。 + } + protected void Dispose( bool disposeManagedObjects ) + { + if( this.bDispose完了済み ) + return; + + if( disposeManagedObjects ) + { + // (A) Managed リソースの解放 + } + + // (B) Unamanaged リソースの解放 + + if( this.frame != IntPtr.Zero ) + AVIStreamGetFrameClose( this.frame ); + + this.Release(); + this.bDispose完了済み = true; + } + ~CAvi() + { + this.Dispose( false ); + } + //----------------- + #endregion + + + // その他 + + #region [ Win32 AVI関連関数インポート ] + //----------------- + internal enum OpenFileFlags : uint + { + OF_CANCEL = 0x800, + OF_CREATE = 0x1000, + OF_DELETE = 0x200, + OF_EXIST = 0x4000, + OF_PARSE = 0x100, + OF_PROMPT = 0x2000, + OF_READ = 0, + OF_READWRITE = 2, + OF_REOPEN = 0x8000, + OF_SHARE_COMPAT = 0, + OF_SHARE_DENY_NONE = 0x40, + OF_SHARE_DENY_READ = 0x30, + OF_SHARE_DENY_WRITE = 0x20, + OF_SHARE_EXCLUSIVE = 0x10, + OF_VERIFY = 0x400, + OF_WRITE = 1 + } + + [StructLayout( LayoutKind.Sequential, Pack = 1 )] + internal struct AVISTREAMINFO + { + public uint fccType; + public uint fccHandler; + public uint dwFlags; + public uint dwCaps; + public ushort wPriority; + public ushort wLanguage; + public uint dwScale; + public uint dwRate; + public uint dwStart; + public uint dwLength; + public uint dwInitialFrames; + public uint dwSuggestedBufferSize; + public uint dwQuality; + public uint dwSampleSize; + public CAvi.RECT rcFrame; + public uint dwEditCount; + public uint dwFormatChangeCount; + [MarshalAs( UnmanagedType.ByValArray, SizeConst = 0x40 )] + public ushort[] szName; + } + + [StructLayout( LayoutKind.Sequential, Pack = 1 )] + internal struct RECT + { + public uint left; + public uint top; + public uint right; + public uint bottom; + } + + [DllImport( "AVIFIL32" )] + private static extern void AVIFileExit(); + [DllImport( "AVIFIL32" )] + private static extern uint AVIFileGetStream( IntPtr pfile, out IntPtr ppavi, uint fccType, int lParam ); + [DllImport( "AVIFIL32" )] + private static extern void AVIFileInit(); + [DllImport( "AVIFIL32" )] + private static extern uint AVIFileOpen( out IntPtr ppfile, string szFile, OpenFileFlags mode, IntPtr pclsidHandler ); + [DllImport( "AVIFIL32" )] + private static extern int AVIFileRelease( IntPtr pfile ); + [DllImport( "AVIFIL32" )] + private static extern IntPtr AVIStreamGetFrame( IntPtr pgf, int lPos ); + [DllImport( "AVIFIL32" )] + private static extern uint AVIStreamGetFrameClose( IntPtr pget ); + [DllImport( "AVIFIL32" )] + private static extern IntPtr AVIStreamGetFrameOpen( IntPtr pavi, int lpbiWanted ); + [DllImport( "AVIFIL32" )] + private static extern int AVIStreamInfo( IntPtr pavi, ref AVISTREAMINFO psi, int lSize ); + [DllImport( "AVIFIL32" )] + private static extern int AVIStreamLength( IntPtr pavi ); + [DllImport( "AVIFIL32" )] + private static extern int AVIStreamRelease( IntPtr pavi ); + //----------------- + #endregion + + #region [ private ] + //----------------- + private IntPtr aviFile = IntPtr.Zero; + private const string AVIFILE32 = "AVIFIL32"; + private const int AVIGETFRAMEF_BESTDISPLAYFMT = 1; + private IntPtr aviStream = IntPtr.Zero; + private bool bDispose完了済み; + private IntPtr frame = IntPtr.Zero; + private static readonly uint streamtypeAUDIO = mmioFOURCC( 'a', 'u', 'd', 's' ); + private static readonly uint streamtypeMIDI = mmioFOURCC( 'm', 'i', 'd', 's' ); + private static readonly uint streamtypeTEXT = mmioFOURCC( 't', 'x', 't', 's' ); + private static readonly uint streamtypeVIDEO = mmioFOURCC( 'v', 'i', 'd', 's' ); + + private static uint mmioFOURCC( char c0, char c1, char c2, char c3 ) + { + return ( (uint) c3 << 0x18 ) | ( (uint) c2 << 0x10 ) | ( (uint) c1 << 0x08 ) | (uint) c0; + } + private void Release() + { + if( this.aviStream != IntPtr.Zero ) + { + AVIStreamRelease( this.aviStream ); + this.aviStream = IntPtr.Zero; + } + if( this.aviFile != IntPtr.Zero ) + { + AVIFileRelease( this.aviFile ); + this.aviFile = IntPtr.Zero; + } + } + //----------------- + #endregion + } +} diff --git a/FDK19/コード/04.グラフィック/CTaskBar.cs b/FDK19/コード/04.グラフィック/CTaskBar.cs new file mode 100644 index 00000000..05d6732a --- /dev/null +++ b/FDK19/コード/04.グラフィック/CTaskBar.cs @@ -0,0 +1,145 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Reflection; +using System.Windows.Forms; +using System.Runtime.InteropServices; + +namespace FDK +{ + // referenced from http://dalmore.blog7.fc2.com/blog-entry-34.html + + public static class CTaskBar + { + public static void ShowTaskBar( bool bShowTaskBar ) + { + Int32 hWnd1 = FindWindow( "Shell_TrayWnd", null ); + if( hWnd1 != 0 ) + { //タスクバーの表示 + if ( bShowTaskBar ) + { + ShowWindow( hWnd1, TASKBAR_SHOW ); //// タスクバーを常に表示 + } + else + { + ShowWindow( hWnd1, TASKBAR_HIDE ); + } + APPBARDATA pData = new APPBARDATA(); + pData.cbSize = Marshal.SizeOf( pData ); + pData.hWnd = (IntPtr)hWnd1; + pData.lParam = (int)ABMsg.ABM_NEW; //REMOVEにするとオートハイドになる + //タスクバーにメッセージ送信 + SHAppBarMessage( ABMsg.ABM_SETSTATE, ref pData ); + } + + Int32 hWnd2 = FindWindow( "Button", "スタート" ); + if ( hWnd2 != 0 ) + { //タスクバーの表示 + if ( bShowTaskBar ) + { + ShowWindow( hWnd2, TASKBAR_SHOW ); //// タスクバーを常に表示 + } + else + { + ShowWindow( hWnd2, TASKBAR_HIDE ); + } + APPBARDATA pData = new APPBARDATA(); + pData.cbSize = Marshal.SizeOf( pData ); + pData.hWnd = (IntPtr) hWnd2; + pData.lParam = (int) ABMsg.ABM_NEW; //REMOVEにするとオートハイドになる + //タスクバーにメッセージ送信 + SHAppBarMessage( ABMsg.ABM_SETSTATE, ref pData ); + } + } + + /// + /// ABMsg 送るAppBarメッセージの識別子(以下のいずれか1つ) + /// _ABM_ACTIVATE---AppBarがアクティブになった事をシステムに通知 + /// _ABM_GETAUTOHIDEBAR---スクリーンの特定の端に関連付けられているオートハイドAppBarのハンドルを返す + /// _ABM_GETSTATE---タスクバーがオートハイドか常に最前面のどちらの常態にあるかを返す + /// _ABM_GETTASKBARPOS---タスクバーの使用領域を返す + /// _ABM_NEW---新しいAppBarを登録し、システムが通知に使用するメッセージIDを指定する + /// _ABM_QUERYPOS---AppBarのためのサイズとスクリーン位置を要求する + /// _ABM_REMOVE---AppBarの登録を削除する + /// _ABM_SETAUTOHIDEBAR---スクリーンの端にオートハイドAppBarを登録または削除する + /// _ABM_SETPOS---AppBarのサイズとスクリーン座標を設定する + /// _ABM_WINDOWPOSCHANGED---AppBarの位置が変更されたことをシステムに通知する + /// pData: TAppBarData構造体(各フィールドはdwMessageに依存する) + /// + private enum ABMsg : int + { + ABM_NEW = 0, + ABM_REMOVE = 1, + ABM_QUERYPOS = 2, + ABM_SETPOS = 3, + ABM_GETSTATE = 4, + ABM_GETTASKBARPOS = 5, + ABM_ACTIVATE = 6, + ABM_GETAUTOHIDEBAR = 7, + ABM_SETAUTOHIDEBAR = 8, + ABM_WINDOWPOSCHANGED = 9, + ABM_SETSTATE = 10 + } + + /// + /// APPBARDATA SHAppBarMessage関数にて使用されるAppBarに関する構造体。 + /// cbSize.....SizeOf(TAppBarData) + /// hWnd.....AppBarのハンドル + /// uCallbackMessage.....任意のメッセージID(hWndのAppBarにメッセージを通知する際(ABM_NEWメッセージを送る際)に使用) + /// uEdge.....スクリーンの端を指定するフラグ(ABM_GETAUTOHIDEBAR、ABM_QUERYPOS、ABM_SETAUTOHIDEBAR、ABM_SETPOSメッセージを送る際に使用し、以下のいずれか1つ) + /// _ABE_BOTTOM---下サイド + /// _ABE_LEFT--- 左サイド + /// _ABE_RIGHT---右サイド + /// _ABE_TOP---上サイド + /// rc.....AppBarやタスクバーのスクリーン座標での表示領域(ABM_GETTASKBARPOS、ABM_QUERYPOS、ABM_SETPOSメッセージを送る際に使用する) + /// lParam.....メッセージ依存のパラメータ(ABM_SETAUTOHIDEBARメッセージと共に使用される) + /// + [StructLayout( LayoutKind.Sequential )] + private struct APPBARDATA + { + public int cbSize; + public IntPtr hWnd; + public uint uCallbackMessage; + public ABEdge uEdge; + public RECT rc; + public int lParam; + } + /// + /// ABEdge + /// + private enum ABEdge : int + { + ABE_LEFT = 0, + ABE_TOP = 1, + ABE_RIGHT = 2, + ABE_BOTTOM = 3 + } + /// + /// RECT + /// + [StructLayout( LayoutKind.Sequential )] + private struct RECT + { + public int left; + public int top; + public int right; + public int bottom; + } + /// + /// SHAppBarMessage + /// + /// + /// + /// + [DllImport( "shell32.dll", CallingConvention = CallingConvention.StdCall )] + private static extern int SHAppBarMessage( ABMsg dwMessage, ref APPBARDATA pData ); + + [DllImport("user32.dll", EntryPoint = "ShowWindow")] + private static extern int ShowWindow(Int32 hWnd, int nCmdShow); + private const int TASKBAR_HIDE = 0; + private const int TASKBAR_SHOW = 5; + + [DllImport( "user32.dll", EntryPoint = "FindWindow" )] + private static extern Int32 FindWindow( String lpClassName, String lpWindowName ); + } +} diff --git a/FDK19/コード/04.グラフィック/CTexture.cs b/FDK19/コード/04.グラフィック/CTexture.cs new file mode 100644 index 00000000..7975124a --- /dev/null +++ b/FDK19/コード/04.グラフィック/CTexture.cs @@ -0,0 +1,1240 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Drawing; +using System.Drawing.Imaging; +using System.IO; +using System.Diagnostics; +using SlimDX; +using SlimDX.Direct3D9; + +using Device = SampleFramework.DeviceCache; + +namespace FDK +{ + public class CTexture : IDisposable + { + // プロパティ + public bool b加算合成 + { + get; + set; + } + public bool b乗算合成 + { + get; + set; + } + public bool b減算合成 + { + get; + set; + } + public bool bスクリーン合成 + { + get; + set; + } + public float fZ軸中心回転 + { + get; + set; + } + public int Opacity + { + get + { + return this._opacity; + } + set + { + if (value < 0) + { + this._opacity = 0; + } + else if (value > 0xff) + { + this._opacity = 0xff; + } + else + { + this._opacity = value; + } + } + } + public Size szテクスチャサイズ + { + get; + private set; + } + public Size sz画像サイズ + { + get; + protected set; + } + public Texture texture + { + get; + private set; + } + public Format Format + { + get; + protected set; + } + public Vector3 vc拡大縮小倍率; + + // 画面が変わるたび以下のプロパティを設定し治すこと。 + + public static Size sz論理画面 = Size.Empty; + public static Size sz物理画面 = Size.Empty; + public static Rectangle rc物理画面描画領域 = Rectangle.Empty; + /// + /// 論理画面を1とする場合の物理画面の倍率。 + /// 論理値×画面比率=物理値。 + /// + public static float f画面比率 = 1.0f; + + // コンストラクタ + + public CTexture() + { + this.sz画像サイズ = new Size(0, 0); + this.szテクスチャサイズ = new Size(0, 0); + this._opacity = 0xff; + this.texture = null; + this.cvPositionColoredVertexies = null; + this.b加算合成 = false; + this.fZ軸中心回転 = 0f; + this.vc拡大縮小倍率 = new Vector3(1f, 1f, 1f); + // this._txData = null; + } + + /// + /// 指定されたビットマップオブジェクトから Managed テクスチャを作成する。 + /// テクスチャのサイズは、BITMAP画像のサイズ以上、かつ、D3D9デバイスで生成可能な最小のサイズに自動的に調節される。 + /// その際、テクスチャの調節後のサイズにあわせた画像の拡大縮小は行わない。 + /// その他、ミップマップ数は 1、Usage は None、Pool は Managed、イメージフィルタは Point、ミップマップフィルタは + /// None、カラーキーは 0xFFFFFFFF(完全なる黒を透過)になる。 + /// + /// Direct3D9 デバイス。 + /// 作成元のビットマップ。 + /// テクスチャのフォーマット。 + /// テクスチャの作成に失敗しました。 + public CTexture(Device device, Bitmap bitmap, Format format) + : this() + { + try + { + this.Format = format; + this.sz画像サイズ = new Size(bitmap.Width, bitmap.Height); + this.szテクスチャサイズ = this.t指定されたサイズを超えない最適なテクスチャサイズを返す(device, this.sz画像サイズ); + this.rc全画像 = new Rectangle(0, 0, this.sz画像サイズ.Width, this.sz画像サイズ.Height); + + using (var stream = new MemoryStream()) + { + bitmap.Save(stream, ImageFormat.Bmp); + stream.Seek(0L, SeekOrigin.Begin); + int colorKey = unchecked((int)0xFF000000); + this.texture = Texture.FromStream(device.UnderlyingDevice, stream, this.szテクスチャサイズ.Width, this.szテクスチャサイズ.Height, 1, Usage.None, format, poolvar, Filter.Point, Filter.None, colorKey); + } + } + catch (Exception e) + { + this.Dispose(); + throw new CTextureCreateFailedException("ビットマップからのテクスチャの生成に失敗しました。", e); + } + } + + /// + /// 空の Managed テクスチャを作成する。 + /// テクスチャのサイズは、指定された希望サイズ以上、かつ、D3D9デバイスで生成可能な最小のサイズに自動的に調節される。 + /// その際、テクスチャの調節後のサイズにあわせた画像の拡大縮小は行わない。 + /// テクスチャのテクセルデータは未初期化。(おそらくゴミデータが入ったまま。) + /// その他、ミップマップ数は 1、Usage は None、イメージフィルタは Point、ミップマップフィルタは None、 + /// カラーキーは 0x00000000(透過しない)になる。 + /// + /// Direct3D9 デバイス。 + /// テクスチャの幅(希望値)。 + /// テクスチャの高さ(希望値)。 + /// テクスチャのフォーマット。 + /// テクスチャの作成に失敗しました。 + public CTexture(Device device, int n幅, int n高さ, Format format) + : this(device, n幅, n高さ, format, Pool.Managed) + { + } + + /// + /// 指定された画像ファイルから Managed テクスチャを作成する。 + /// 利用可能な画像形式は、BMP, JPG, PNG, TGA, DDS, PPM, DIB, HDR, PFM のいずれか。 + /// + /// Direct3D9 デバイス。 + /// 画像ファイル名。 + /// テクスチャのフォーマット。 + /// 画像の黒(0xFFFFFFFF)を透過させるなら true。 + /// テクスチャの作成に失敗しました。 + public CTexture(Device device, string strファイル名, Format format, bool b黒を透過する) + : this(device, strファイル名, format, b黒を透過する, Pool.Managed) + { + } + public CTexture(Device device, byte[] txData, Format format, bool b黒を透過する) + : this(device, txData, format, b黒を透過する, Pool.Managed) + { + } + public CTexture(Device device, Bitmap bitmap, Format format, bool b黒を透過する) + : this(device, bitmap, format, b黒を透過する, Pool.Managed) + { + } + + /// + /// 空のテクスチャを作成する。 + /// テクスチャのサイズは、指定された希望サイズ以上、かつ、D3D9デバイスで生成可能な最小のサイズに自動的に調節される。 + /// その際、テクスチャの調節後のサイズにあわせた画像の拡大縮小は行わない。 + /// テクスチャのテクセルデータは未初期化。(おそらくゴミデータが入ったまま。) + /// その他、ミップマップ数は 1、Usage は None、イメージフィルタは Point、ミップマップフィルタは None、 + /// カラーキーは 0x00000000(透過しない)になる。 + /// + /// Direct3D9 デバイス。 + /// テクスチャの幅(希望値)。 + /// テクスチャの高さ(希望値)。 + /// テクスチャのフォーマット。 + /// テクスチャの管理方法。 + /// テクスチャの作成に失敗しました。 + public CTexture(Device device, int n幅, int n高さ, Format format, Pool pool) + : this(device, n幅, n高さ, format, pool, Usage.None) + { + } + + public CTexture(Device device, int n幅, int n高さ, Format format, Pool pool, Usage usage) + : this() + { + try + { + this.Format = format; + this.sz画像サイズ = new Size(n幅, n高さ); + this.szテクスチャサイズ = this.t指定されたサイズを超えない最適なテクスチャサイズを返す(device, this.sz画像サイズ); + this.rc全画像 = new Rectangle(0, 0, this.sz画像サイズ.Width, this.sz画像サイズ.Height); + + using (var bitmap = new Bitmap(1, 1)) + { + using (var graphics = Graphics.FromImage(bitmap)) + { + graphics.FillRectangle(Brushes.Black, 0, 0, 1, 1); + } + using (var stream = new MemoryStream()) + { + bitmap.Save(stream, ImageFormat.Bmp); + stream.Seek(0L, SeekOrigin.Begin); +#if TEST_Direct3D9Ex + pool = poolvar; +#endif + // 中で更にメモリ読み込みし直していて無駄なので、Streamを使うのは止めたいところ + this.texture = Texture.FromStream(device.UnderlyingDevice, stream, n幅, n高さ, 1, usage, format, pool, Filter.Point, Filter.None, 0); + } + } + } + catch + { + this.Dispose(); + throw new CTextureCreateFailedException(string.Format("テクスチャの生成に失敗しました。\n({0}x{1}, {2})", n幅, n高さ, format)); + } + } + + /// + /// 画像ファイルからテクスチャを生成する。 + /// 利用可能な画像形式は、BMP, JPG, PNG, TGA, DDS, PPM, DIB, HDR, PFM のいずれか。 + /// テクスチャのサイズは、画像のサイズ以上、かつ、D3D9デバイスで生成可能な最小のサイズに自動的に調節される。 + /// その際、テクスチャの調節後のサイズにあわせた画像の拡大縮小は行わない。 + /// その他、ミップマップ数は 1、Usage は None、イメージフィルタは Point、ミップマップフィルタは None になる。 + /// + /// Direct3D9 デバイス。 + /// 画像ファイル名。 + /// テクスチャのフォーマット。 + /// 画像の黒(0xFFFFFFFF)を透過させるなら true。 + /// テクスチャの管理方法。 + /// テクスチャの作成に失敗しました。 + public CTexture(Device device, string strファイル名, Format format, bool b黒を透過する, Pool pool) + : this() + { + MakeTexture(device, strファイル名, format, b黒を透過する, pool); + } + public void MakeTexture(Device device, string strファイル名, Format format, bool b黒を透過する, Pool pool) + { + if (!File.Exists(strファイル名)) // #27122 2012.1.13 from: ImageInformation では FileNotFound 例外は返ってこないので、ここで自分でチェックする。わかりやすいログのために。 + throw new FileNotFoundException(string.Format("ファイルが存在しません。\n[{0}]", strファイル名)); + + Byte[] _txData = File.ReadAllBytes(strファイル名); + MakeTexture(device, _txData, format, b黒を透過する, pool); + } + + public CTexture(Device device, byte[] txData, Format format, bool b黒を透過する, Pool pool) + : this() + { + MakeTexture(device, txData, format, b黒を透過する, pool); + } + public void MakeTexture(Device device, byte[] txData, Format format, bool b黒を透過する, Pool pool) + { + try + { + var information = ImageInformation.FromMemory(txData); + this.Format = format; + this.sz画像サイズ = new Size(information.Width, information.Height); + this.rc全画像 = new Rectangle(0, 0, this.sz画像サイズ.Width, this.sz画像サイズ.Height); + int colorKey = (b黒を透過する) ? unchecked((int)0xFF000000) : 0; + this.szテクスチャサイズ = this.t指定されたサイズを超えない最適なテクスチャサイズを返す(device, this.sz画像サイズ); +#if TEST_Direct3D9Ex + pool = poolvar; +#endif + // lock ( lockobj ) + // { + //Trace.TraceInformation( "CTexture() start: " ); + this.texture = Texture.FromMemory(device.UnderlyingDevice, txData, this.sz画像サイズ.Width, this.sz画像サイズ.Height, 1, Usage.None, format, pool, Filter.Point, Filter.None, colorKey); + //Trace.TraceInformation( "CTexture() end: " ); + // } + } + catch + { + this.Dispose(); + // throw new CTextureCreateFailedException( string.Format( "テクスチャの生成に失敗しました。\n{0}", strファイル名 ) ); + throw new CTextureCreateFailedException(string.Format("テクスチャの生成に失敗しました。\n")); + } + } + + public CTexture(Device device, Bitmap bitmap, Format format, bool b黒を透過する, Pool pool) + : this() + { + MakeTexture(device, bitmap, format, b黒を透過する, pool); + } + public void MakeTexture(Device device, Bitmap bitmap, Format format, bool b黒を透過する, Pool pool) + { + try + { + this.Format = format; + this.sz画像サイズ = new Size(bitmap.Width, bitmap.Height); + this.rc全画像 = new Rectangle(0, 0, this.sz画像サイズ.Width, this.sz画像サイズ.Height); + int colorKey = (b黒を透過する) ? unchecked((int)0xFF000000) : 0; + this.szテクスチャサイズ = this.t指定されたサイズを超えない最適なテクスチャサイズを返す(device, this.sz画像サイズ); +#if TEST_Direct3D9Ex + pool = poolvar; +#endif + //Trace.TraceInformation( "CTExture() start: " ); + unsafe // Bitmapの内部データ(a8r8g8b8)を自前でゴリゴリコピーする + { + int tw = +#if TEST_Direct3D9Ex + 288; // 32の倍数にする(グラフによっては2のべき乗にしないとダメかも) +#else + this.sz画像サイズ.Width; +#endif +#if TEST_Direct3D9Ex + this.texture = new Texture( device, tw, this.sz画像サイズ.Height, 1, Usage.Dynamic, format, Pool.Default ); +#else + this.texture = new Texture(device.UnderlyingDevice, this.sz画像サイズ.Width, this.sz画像サイズ.Height, 1, Usage.None, format, pool); +#endif + BitmapData srcBufData = bitmap.LockBits(new Rectangle(0, 0, this.sz画像サイズ.Width, this.sz画像サイズ.Height), ImageLockMode.ReadOnly, PixelFormat.Format32bppArgb); + DataRectangle destDataRectangle = texture.LockRectangle(0, LockFlags.Discard); // None +#if TEST_Direct3D9Ex + byte[] filldata = null; + if ( tw > this.sz画像サイズ.Width ) + { + filldata = new byte[ (tw - this.sz画像サイズ.Width) * 4 ]; + } + for ( int y = 0; y < this.sz画像サイズ.Height; y++ ) + { + IntPtr src_scan0 = (IntPtr) ( (Int64) srcBufData.Scan0 + y * srcBufData.Stride ); + destDataRectangle.Data.WriteRange( src_scan0, this.sz画像サイズ.Width * 4 ); + if ( tw > this.sz画像サイズ.Width ) + { + destDataRectangle.Data.WriteRange( filldata ); + } + } +#else + IntPtr src_scan0 = (IntPtr)((Int64)srcBufData.Scan0); + destDataRectangle.Data.WriteRange(src_scan0, this.sz画像サイズ.Width * 4 * this.sz画像サイズ.Height); +#endif + texture.UnlockRectangle(0); + bitmap.UnlockBits(srcBufData); + } + //Trace.TraceInformation( "CTExture() End: " ); + } + catch + { + this.Dispose(); + // throw new CTextureCreateFailedException( string.Format( "テクスチャの生成に失敗しました。\n{0}", strファイル名 ) ); + throw new CTextureCreateFailedException(string.Format("テクスチャの生成に失敗しました。\n")); + } + } + // メソッド + + // 2016.11.10 kairera0467 拡張 + // Rectangleを使う場合、座標調整のためにテクスチャサイズの値をそのまま使うとまずいことになるため、Rectragleから幅を取得して調整をする。 + public void t2D中心基準描画(Device device, int x, int y) + { + this.t2D描画(device, x - (this.szテクスチャサイズ.Width / 2), y - (this.szテクスチャサイズ.Height / 2), 1f, this.rc全画像); + } + public void t2D中心基準描画(Device device, int x, int y, Rectangle rc画像内の描画領域) + { + this.t2D描画(device, x - (rc画像内の描画領域.Width / 2), y - (rc画像内の描画領域.Height / 2), 1f, rc画像内の描画領域); + } + public void t2D中心基準描画(Device device, float x, float y) + { + this.t2D描画(device, (int)x - (this.szテクスチャサイズ.Width / 2), (int)y - (this.szテクスチャサイズ.Height / 2), 1f, this.rc全画像); + } + public void t2D中心基準描画(Device device, float x, float y, Rectangle rc画像内の描画領域) + { + this.t2D描画(device, (int)x - (rc画像内の描画領域.Width / 2), (int)y - (rc画像内の描画領域.Height / 2), 1.0f, rc画像内の描画領域); + } + public void t2D中心基準描画(Device device, float x, float y, float depth, Rectangle rc画像内の描画領域) + { + this.t2D描画(device, (int)x - (rc画像内の描画領域.Width / 2), (int)y - (rc画像内の描画領域.Height / 2), depth, rc画像内の描画領域); + } + + // 下を基準にして描画する(拡大率考慮)メソッドを追加。 (AioiLight) + public void t2D拡大率考慮下基準描画(Device device, int x, int y) + { + this.t2D描画(device, x, y - (szテクスチャサイズ.Height * this.vc拡大縮小倍率.Y), 1f, this.rc全画像); + } + public void t2D拡大率考慮下基準描画(Device device, int x, int y, Rectangle rc画像内の描画領域) + { + this.t2D描画(device, x, y - (rc画像内の描画領域.Height * this.vc拡大縮小倍率.Y), 1f, rc画像内の描画領域); + } + public void t2D拡大率考慮下中心基準描画(Device device, int x, int y) + { + this.t2D描画(device, x - (this.szテクスチャサイズ.Width / 2 * this.vc拡大縮小倍率.X), y - (szテクスチャサイズ.Height * this.vc拡大縮小倍率.Y), 1f, this.rc全画像); + } + public void t2D拡大率考慮下中心基準描画(Device device, float x, float y) + { + this.t2D拡大率考慮下中心基準描画(device, (int)x, (int)y); + } + + public void t2D拡大率考慮下中心基準描画(Device device, int x, int y, Rectangle rc画像内の描画領域) + { + this.t2D描画(device, x - ((rc画像内の描画領域.Width / 2)), y - (rc画像内の描画領域.Height * this.vc拡大縮小倍率.Y), 1f, rc画像内の描画領域); + } + public void t2D拡大率考慮下中心基準描画(Device device, float x, float y, Rectangle rc画像内の描画領域) + { + this.t2D拡大率考慮下中心基準描画(device, (int)x, (int)y, rc画像内の描画領域); + } + public void t2D下中央基準描画(Device device, int x, int y) + { + this.t2D描画(device, x - (this.szテクスチャサイズ.Width / 2), y - (szテクスチャサイズ.Height), this.rc全画像); + } + public void t2D下中央基準描画(Device device, int x, int y, Rectangle rc画像内の描画領域) + { + this.t2D描画(device, x - (rc画像内の描画領域.Width / 2), y - (rc画像内の描画領域.Height), rc画像内の描画領域); + //this.t2D描画(devicek x, y, rc画像内の描画領域; + } + + + public void t2D拡大率考慮中央基準描画(Device device, int x, int y) + { + this.t2D描画(device, x - (this.szテクスチャサイズ.Width / 2 * this.vc拡大縮小倍率.X), y - (szテクスチャサイズ.Height / 2 * this.vc拡大縮小倍率.Y), 1f, this.rc全画像); + } + public void t2D拡大率考慮中央基準描画(Device device, int x, int y, RectangleF rc) + { + this.t2D描画(device, x - (rc.Width / 2 * this.vc拡大縮小倍率.X), y - (rc.Height / 2 * this.vc拡大縮小倍率.Y), 1f, rc); + } + public void t2D拡大率考慮上中央基準描画(Device device, int x, int y, RectangleF rc) + { + this.t2D描画(device, x - (rc.Width / 2 * this.vc拡大縮小倍率.X), y, 1f, rc); + } + public void t2D拡大率考慮上中央基準描画(Device device, int x, int y) + { + this.t2D描画(device, x - (rc全画像.Width / 2 * this.vc拡大縮小倍率.X), y, 1f, rc全画像); + } + public void t2D拡大率考慮中央基準描画(Device device, float x, float y) + { + this.t2D描画(device, x - (this.szテクスチャサイズ.Width / 2 * this.vc拡大縮小倍率.X), y - (szテクスチャサイズ.Height / 2 * this.vc拡大縮小倍率.Y), 1f, this.rc全画像); + } + public void t2D拡大率考慮中央基準描画(Device device, float x, float y, RectangleF rc) + { + this.t2D描画(device, x - (rc.Width / 2 * this.vc拡大縮小倍率.X), y - (rc.Height / 2 * this.vc拡大縮小倍率.Y), 1f, rc); + } + public void t2D拡大率考慮描画(Device device, RefPnt refpnt, float x, float y) + { + this.t2D拡大率考慮描画(device, refpnt, x, y, rc全画像); + } + public void t2D拡大率考慮描画(Device device, RefPnt refpnt, float x, float y, Rectangle rect) + { + this.t2D拡大率考慮描画(device, refpnt, x, y, 1f, rect); + } + public void t2D拡大率考慮描画(Device device, RefPnt refpnt, float x, float y, float depth, Rectangle rect) + { + switch (refpnt) + { + case RefPnt.UpLeft: + this.t2D描画(device, x, y, depth, rect); + break; + case RefPnt.Up: + this.t2D描画(device, x - (rect.Width / 2 * this.vc拡大縮小倍率.X), y, depth, rect); + break; + case RefPnt.UpRight: + this.t2D描画(device, x - rect.Width * this.vc拡大縮小倍率.X, y, depth, rect); + break; + case RefPnt.Left: + this.t2D描画(device, x, y - (rect.Height / 2 * this.vc拡大縮小倍率.Y), depth, rect); + break; + case RefPnt.Center: + this.t2D描画(device, x - (rect.Width / 2 * this.vc拡大縮小倍率.X), y - (rect.Height / 2 * this.vc拡大縮小倍率.Y), depth, rect); + break; + case RefPnt.Right: + this.t2D描画(device, x - rect.Width * this.vc拡大縮小倍率.X, y - (rect.Height / 2 * this.vc拡大縮小倍率.Y), depth, rect); + break; + case RefPnt.DownLeft: + this.t2D描画(device, x, y - rect.Height * this.vc拡大縮小倍率.Y, depth, rect); + break; + case RefPnt.Down: + this.t2D描画(device, x - (rect.Width / 2 * this.vc拡大縮小倍率.X), y - rect.Height * this.vc拡大縮小倍率.Y, depth, rect); + break; + case RefPnt.DownRight: + this.t2D描画(device, x - rect.Width * this.vc拡大縮小倍率.X, y - rect.Height * this.vc拡大縮小倍率.Y, depth, rect); + break; + default: + break; + } + + } + + public enum RefPnt + { + UpLeft, + Up, + UpRight, + Left, + Center, + Right, + DownLeft, + Down, + DownRight, + } + + /// + /// テクスチャを 2D 画像と見なして描画する。 + /// + /// Direct3D9 デバイス。 + /// 描画位置(テクスチャの左上位置の X 座標[dot])。 + /// 描画位置(テクスチャの左上位置の Y 座標[dot])。 + public void t2D描画(Device device, int x, int y) + { + this.t2D描画(device, x, y, 1f, this.rc全画像); + } + public void t2D描画(Device device, int x, int y, RectangleF rc画像内の描画領域) + { + this.t2D描画(device, x, y, 1f, rc画像内の描画領域); + } + public void t2D描画(Device device, float x, float y) + { + this.t2D描画(device, (int)x, (int)y, 1f, this.rc全画像); + } + public void t2D描画(Device device, float x, float y, RectangleF rc画像内の描画領域) + { + this.t2D描画(device, (int)x, (int)y, 1f, rc画像内の描画領域); + } + public void t2D描画(Device device, float x, float y, float depth, RectangleF rc画像内の描画領域) + { + if (this.texture == null) + return; + + this.tレンダリングステートの設定(device); + + if (this.fZ軸中心回転 == 0f) + { + #region [ (A) 回転なし ] + //----------------- + float f補正値X = -0.5f; // -0.5 は座標とピクセルの誤差を吸収するための座標補正値。(MSDN参照) + float f補正値Y = -0.5f; // + float w = rc画像内の描画領域.Width; + float h = rc画像内の描画領域.Height; + float f左U値 = ((float)rc画像内の描画領域.Left) / ((float)this.szテクスチャサイズ.Width); + float f右U値 = ((float)rc画像内の描画領域.Right) / ((float)this.szテクスチャサイズ.Width); + float f上V値 = ((float)rc画像内の描画領域.Top) / ((float)this.szテクスチャサイズ.Height); + float f下V値 = ((float)rc画像内の描画領域.Bottom) / ((float)this.szテクスチャサイズ.Height); + this.color4.Alpha = ((float)this._opacity) / 255f; + int color = this.color4.ToArgb(); + + if (this.cvTransformedColoredVertexies == null) + this.cvTransformedColoredVertexies = new TransformedColoredTexturedVertex[4]; + + // #27122 2012.1.13 from: 以下、マネージドオブジェクト(=ガベージ)の量産を抑えるため、new は使わず、メンバに値を1つずつ直接上書きする。 + + this.cvTransformedColoredVertexies[0].Position.X = x + f補正値X; + this.cvTransformedColoredVertexies[0].Position.Y = y + f補正値Y; + this.cvTransformedColoredVertexies[0].Position.Z = depth; + this.cvTransformedColoredVertexies[0].Position.W = 1.0f; + this.cvTransformedColoredVertexies[0].Color = color; + this.cvTransformedColoredVertexies[0].TextureCoordinates.X = f左U値; + this.cvTransformedColoredVertexies[0].TextureCoordinates.Y = f上V値; + + this.cvTransformedColoredVertexies[1].Position.X = (x + (w * this.vc拡大縮小倍率.X)) + f補正値X; + this.cvTransformedColoredVertexies[1].Position.Y = y + f補正値Y; + this.cvTransformedColoredVertexies[1].Position.Z = depth; + this.cvTransformedColoredVertexies[1].Position.W = 1.0f; + this.cvTransformedColoredVertexies[1].Color = color; + this.cvTransformedColoredVertexies[1].TextureCoordinates.X = f右U値; + this.cvTransformedColoredVertexies[1].TextureCoordinates.Y = f上V値; + + this.cvTransformedColoredVertexies[2].Position.X = x + f補正値X; + this.cvTransformedColoredVertexies[2].Position.Y = (y + (h * this.vc拡大縮小倍率.Y)) + f補正値Y; + this.cvTransformedColoredVertexies[2].Position.Z = depth; + this.cvTransformedColoredVertexies[2].Position.W = 1.0f; + this.cvTransformedColoredVertexies[2].Color = color; + this.cvTransformedColoredVertexies[2].TextureCoordinates.X = f左U値; + this.cvTransformedColoredVertexies[2].TextureCoordinates.Y = f下V値; + + this.cvTransformedColoredVertexies[3].Position.X = (x + (w * this.vc拡大縮小倍率.X)) + f補正値X; + this.cvTransformedColoredVertexies[3].Position.Y = (y + (h * this.vc拡大縮小倍率.Y)) + f補正値Y; + this.cvTransformedColoredVertexies[3].Position.Z = depth; + this.cvTransformedColoredVertexies[3].Position.W = 1.0f; + this.cvTransformedColoredVertexies[3].Color = color; + this.cvTransformedColoredVertexies[3].TextureCoordinates.X = f右U値; + this.cvTransformedColoredVertexies[3].TextureCoordinates.Y = f下V値; + + device.SetTexture(0, this.texture); + device.VertexFormat = TransformedColoredTexturedVertex.Format; + device.DrawUserPrimitives(PrimitiveType.TriangleStrip, 0, 2, in this.cvTransformedColoredVertexies); + //----------------- + #endregion + } + else + { + #region [ (B) 回転あり ] + //----------------- + float f補正値X = ((rc画像内の描画領域.Width % 2) == 0) ? -0.5f : 0f; // -0.5 は座標とピクセルの誤差を吸収するための座標補正値。(MSDN参照) + float f補正値Y = ((rc画像内の描画領域.Height % 2) == 0) ? -0.5f : 0f; // 3D(回転する)なら補正はいらない。 + float f中央X = ((float)rc画像内の描画領域.Width) / 2f; + float f中央Y = ((float)rc画像内の描画領域.Height) / 2f; + float f左U値 = ((float)rc画像内の描画領域.Left) / ((float)this.szテクスチャサイズ.Width); + float f右U値 = ((float)rc画像内の描画領域.Right) / ((float)this.szテクスチャサイズ.Width); + float f上V値 = ((float)rc画像内の描画領域.Top) / ((float)this.szテクスチャサイズ.Height); + float f下V値 = ((float)rc画像内の描画領域.Bottom) / ((float)this.szテクスチャサイズ.Height); + this.color4.Alpha = ((float)this._opacity) / 255f; + int color = this.color4.ToArgb(); + + if (this.cvPositionColoredVertexies == null) + this.cvPositionColoredVertexies = new PositionColoredTexturedVertex[4]; + + // #27122 2012.1.13 from: 以下、マネージドオブジェクト(=ガベージ)の量産を抑えるため、new は使わず、メンバに値を1つずつ直接上書きする。 + + this.cvPositionColoredVertexies[0].Position.X = -f中央X + f補正値X; + this.cvPositionColoredVertexies[0].Position.Y = f中央Y + f補正値Y; + this.cvPositionColoredVertexies[0].Position.Z = depth; + this.cvPositionColoredVertexies[0].Color = color; + this.cvPositionColoredVertexies[0].TextureCoordinates.X = f左U値; + this.cvPositionColoredVertexies[0].TextureCoordinates.Y = f上V値; + + this.cvPositionColoredVertexies[1].Position.X = f中央X + f補正値X; + this.cvPositionColoredVertexies[1].Position.Y = f中央Y + f補正値Y; + this.cvPositionColoredVertexies[1].Position.Z = depth; + this.cvPositionColoredVertexies[1].Color = color; + this.cvPositionColoredVertexies[1].TextureCoordinates.X = f右U値; + this.cvPositionColoredVertexies[1].TextureCoordinates.Y = f上V値; + + this.cvPositionColoredVertexies[2].Position.X = -f中央X + f補正値X; + this.cvPositionColoredVertexies[2].Position.Y = -f中央Y + f補正値Y; + this.cvPositionColoredVertexies[2].Position.Z = depth; + this.cvPositionColoredVertexies[2].Color = color; + this.cvPositionColoredVertexies[2].TextureCoordinates.X = f左U値; + this.cvPositionColoredVertexies[2].TextureCoordinates.Y = f下V値; + + this.cvPositionColoredVertexies[3].Position.X = f中央X + f補正値X; + this.cvPositionColoredVertexies[3].Position.Y = -f中央Y + f補正値Y; + this.cvPositionColoredVertexies[3].Position.Z = depth; + this.cvPositionColoredVertexies[3].Color = color; + this.cvPositionColoredVertexies[3].TextureCoordinates.X = f右U値; + this.cvPositionColoredVertexies[3].TextureCoordinates.Y = f下V値; + + float n描画領域内X = x + (rc画像内の描画領域.Width / 2.0f); + float n描画領域内Y = y + (rc画像内の描画領域.Height / 2.0f); + var vc3移動量 = new Vector3(n描画領域内X - (((float)device.Viewport.Width) / 2f), -(n描画領域内Y - (((float)device.Viewport.Height) / 2f)), 0f); + + var matrix = Matrix.Identity * Matrix.Scaling(this.vc拡大縮小倍率); + matrix *= Matrix.RotationZ(this.fZ軸中心回転); + matrix *= Matrix.Translation(vc3移動量); + device.SetTransform(TransformState.World, matrix); + + device.SetTexture(0, this.texture); + device.VertexFormat = PositionColoredTexturedVertex.Format; + device.DrawUserPrimitives(PrimitiveType.TriangleStrip, 2, in this.cvPositionColoredVertexies); + //----------------- + #endregion + } + } + public void t2D描画(Device device, int x, int y, float depth, Rectangle rc画像内の描画領域) + { + if (this.texture == null) + return; + + this.tレンダリングステートの設定(device); + + if (this.fZ軸中心回転 == 0f) + { + #region [ (A) 回転なし ] + //----------------- + float f補正値X = -0.5f; // -0.5 は座標とピクセルの誤差を吸収するための座標補正値。(MSDN参照) + float f補正値Y = -0.5f; // + float w = rc画像内の描画領域.Width; + float h = rc画像内の描画領域.Height; + float f左U値 = ((float)rc画像内の描画領域.Left) / ((float)this.szテクスチャサイズ.Width); + float f右U値 = ((float)rc画像内の描画領域.Right) / ((float)this.szテクスチャサイズ.Width); + float f上V値 = ((float)rc画像内の描画領域.Top) / ((float)this.szテクスチャサイズ.Height); + float f下V値 = ((float)rc画像内の描画領域.Bottom) / ((float)this.szテクスチャサイズ.Height); + this.color4.Alpha = ((float)this._opacity) / 255f; + int color = this.color4.ToArgb(); + + if (this.cvTransformedColoredVertexies == null) + this.cvTransformedColoredVertexies = new TransformedColoredTexturedVertex[4]; + + // #27122 2012.1.13 from: 以下、マネージドオブジェクト(=ガベージ)の量産を抑えるため、new は使わず、メンバに値を1つずつ直接上書きする。 + + this.cvTransformedColoredVertexies[0].Position.X = x + f補正値X; + this.cvTransformedColoredVertexies[0].Position.Y = y + f補正値Y; + this.cvTransformedColoredVertexies[0].Position.Z = depth; + this.cvTransformedColoredVertexies[0].Position.W = 1.0f; + this.cvTransformedColoredVertexies[0].Color = color; + this.cvTransformedColoredVertexies[0].TextureCoordinates.X = f左U値; + this.cvTransformedColoredVertexies[0].TextureCoordinates.Y = f上V値; + + this.cvTransformedColoredVertexies[1].Position.X = (x + (w * this.vc拡大縮小倍率.X)) + f補正値X; + this.cvTransformedColoredVertexies[1].Position.Y = y + f補正値Y; + this.cvTransformedColoredVertexies[1].Position.Z = depth; + this.cvTransformedColoredVertexies[1].Position.W = 1.0f; + this.cvTransformedColoredVertexies[1].Color = color; + this.cvTransformedColoredVertexies[1].TextureCoordinates.X = f右U値; + this.cvTransformedColoredVertexies[1].TextureCoordinates.Y = f上V値; + + this.cvTransformedColoredVertexies[2].Position.X = x + f補正値X; + this.cvTransformedColoredVertexies[2].Position.Y = (y + (h * this.vc拡大縮小倍率.Y)) + f補正値Y; + this.cvTransformedColoredVertexies[2].Position.Z = depth; + this.cvTransformedColoredVertexies[2].Position.W = 1.0f; + this.cvTransformedColoredVertexies[2].Color = color; + this.cvTransformedColoredVertexies[2].TextureCoordinates.X = f左U値; + this.cvTransformedColoredVertexies[2].TextureCoordinates.Y = f下V値; + + this.cvTransformedColoredVertexies[3].Position.X = (x + (w * this.vc拡大縮小倍率.X)) + f補正値X; + this.cvTransformedColoredVertexies[3].Position.Y = (y + (h * this.vc拡大縮小倍率.Y)) + f補正値Y; + this.cvTransformedColoredVertexies[3].Position.Z = depth; + this.cvTransformedColoredVertexies[3].Position.W = 1.0f; + this.cvTransformedColoredVertexies[3].Color = color; + this.cvTransformedColoredVertexies[3].TextureCoordinates.X = f右U値; + this.cvTransformedColoredVertexies[3].TextureCoordinates.Y = f下V値; + + device.SetTexture(0, this.texture); + device.VertexFormat = TransformedColoredTexturedVertex.Format; + device.DrawUserPrimitives(PrimitiveType.TriangleStrip, 0, 2, in this.cvTransformedColoredVertexies); + //----------------- + #endregion + } + else + { + #region [ (B) 回転あり ] + //----------------- + float f補正値X = ((rc画像内の描画領域.Width % 2) == 0) ? -0.5f : 0f; // -0.5 は座標とピクセルの誤差を吸収するための座標補正値。(MSDN参照) + float f補正値Y = ((rc画像内の描画領域.Height % 2) == 0) ? -0.5f : 0f; // 3D(回転する)なら補正はいらない。 + float f中央X = ((float)rc画像内の描画領域.Width) / 2f; + float f中央Y = ((float)rc画像内の描画領域.Height) / 2f; + float f左U値 = ((float)rc画像内の描画領域.Left) / ((float)this.szテクスチャサイズ.Width); + float f右U値 = ((float)rc画像内の描画領域.Right) / ((float)this.szテクスチャサイズ.Width); + float f上V値 = ((float)rc画像内の描画領域.Top) / ((float)this.szテクスチャサイズ.Height); + float f下V値 = ((float)rc画像内の描画領域.Bottom) / ((float)this.szテクスチャサイズ.Height); + this.color4.Alpha = ((float)this._opacity) / 255f; + int color = this.color4.ToArgb(); + + if (this.cvPositionColoredVertexies == null) + this.cvPositionColoredVertexies = new PositionColoredTexturedVertex[4]; + + // #27122 2012.1.13 from: 以下、マネージドオブジェクト(=ガベージ)の量産を抑えるため、new は使わず、メンバに値を1つずつ直接上書きする。 + + this.cvPositionColoredVertexies[0].Position.X = -f中央X + f補正値X; + this.cvPositionColoredVertexies[0].Position.Y = f中央Y + f補正値Y; + this.cvPositionColoredVertexies[0].Position.Z = depth; + this.cvPositionColoredVertexies[0].Color = color; + this.cvPositionColoredVertexies[0].TextureCoordinates.X = f左U値; + this.cvPositionColoredVertexies[0].TextureCoordinates.Y = f上V値; + + this.cvPositionColoredVertexies[1].Position.X = f中央X + f補正値X; + this.cvPositionColoredVertexies[1].Position.Y = f中央Y + f補正値Y; + this.cvPositionColoredVertexies[1].Position.Z = depth; + this.cvPositionColoredVertexies[1].Color = color; + this.cvPositionColoredVertexies[1].TextureCoordinates.X = f右U値; + this.cvPositionColoredVertexies[1].TextureCoordinates.Y = f上V値; + + this.cvPositionColoredVertexies[2].Position.X = -f中央X + f補正値X; + this.cvPositionColoredVertexies[2].Position.Y = -f中央Y + f補正値Y; + this.cvPositionColoredVertexies[2].Position.Z = depth; + this.cvPositionColoredVertexies[2].Color = color; + this.cvPositionColoredVertexies[2].TextureCoordinates.X = f左U値; + this.cvPositionColoredVertexies[2].TextureCoordinates.Y = f下V値; + + this.cvPositionColoredVertexies[3].Position.X = f中央X + f補正値X; + this.cvPositionColoredVertexies[3].Position.Y = -f中央Y + f補正値Y; + this.cvPositionColoredVertexies[3].Position.Z = depth; + this.cvPositionColoredVertexies[3].Color = color; + this.cvPositionColoredVertexies[3].TextureCoordinates.X = f右U値; + this.cvPositionColoredVertexies[3].TextureCoordinates.Y = f下V値; + + int n描画領域内X = x + (rc画像内の描画領域.Width / 2); + int n描画領域内Y = y + (rc画像内の描画領域.Height / 2); + var vc3移動量 = new Vector3(n描画領域内X - (((float)device.Viewport.Width) / 2f), -(n描画領域内Y - (((float)device.Viewport.Height) / 2f)), 0f); + + var matrix = Matrix.Identity * Matrix.Scaling(this.vc拡大縮小倍率); + matrix *= Matrix.RotationZ(this.fZ軸中心回転); + matrix *= Matrix.Translation(vc3移動量); + device.SetTransform(TransformState.World, matrix); + + device.SetTexture(0, this.texture); + device.VertexFormat = PositionColoredTexturedVertex.Format; + device.DrawUserPrimitives(PrimitiveType.TriangleStrip, 2, in this.cvPositionColoredVertexies); + //----------------- + #endregion + } + } + public void t2D上下反転描画(Device device, int x, int y) + { + this.t2D上下反転描画(device, x, y, 1f, this.rc全画像); + } + public void t2D上下反転描画(Device device, int x, int y, Rectangle rc画像内の描画領域) + { + this.t2D上下反転描画(device, x, y, 1f, rc画像内の描画領域); + } + public void t2D左右反転描画(Device device, int x, int y) + { + this.t2D左右反転描画(device, x, y, 1f, this.rc全画像); + } + public void t2D左右反転描画(Device device, float x, float y) + { + this.t2D左右反転描画(device, x, y, 1f, this.rc全画像); + } + public void t2D左右反転描画(Device device, int x, int y, Rectangle rc画像内の描画領域) + { + this.t2D左右反転描画(device, x, y, 1f, rc画像内の描画領域); + } + public void t2D左右反転描画(Device device, float x, float y, float depth, Rectangle rc画像内の描画領域) + { + if (this.texture == null) + throw new InvalidOperationException("テクスチャは生成されていません。"); + + this.tレンダリングステートの設定(device); + + float fx = x * CTexture.f画面比率 + CTexture.rc物理画面描画領域.X - 0.5f; // -0.5 は座標とピクセルの誤差を吸収するための座標補正値。(MSDN参照) + float fy = y * CTexture.f画面比率 + CTexture.rc物理画面描画領域.Y - 0.5f; // + float w = rc画像内の描画領域.Width * this.vc拡大縮小倍率.X * CTexture.f画面比率; + float h = rc画像内の描画領域.Height * this.vc拡大縮小倍率.Y * CTexture.f画面比率; + float f左U値 = ((float)rc画像内の描画領域.Left) / ((float)this.szテクスチャサイズ.Width); + float f右U値 = ((float)rc画像内の描画領域.Right) / ((float)this.szテクスチャサイズ.Width); + float f上V値 = ((float)rc画像内の描画領域.Top) / ((float)this.szテクスチャサイズ.Height); + float f下V値 = ((float)rc画像内の描画領域.Bottom) / ((float)this.szテクスチャサイズ.Height); + this.color4.Alpha = ((float)this._opacity) / 255f; + int color = this.color4.ToArgb(); + + + if (this.cvTransformedColoredVertexies == null) + this.cvTransformedColoredVertexies = new TransformedColoredTexturedVertex[4]; + + // 以下、マネージドオブジェクトの量産を抑えるため new は使わない。 + + this.cvTransformedColoredVertexies[0].TextureCoordinates.X = f右U値; // 左上 → 左下 + this.cvTransformedColoredVertexies[0].TextureCoordinates.Y = f上V値; + this.cvTransformedColoredVertexies[0].Position.X = fx; + this.cvTransformedColoredVertexies[0].Position.Y = fy; + this.cvTransformedColoredVertexies[0].Position.Z = depth; + this.cvTransformedColoredVertexies[0].Position.W = 1.0f; + this.cvTransformedColoredVertexies[0].Color = color; + + this.cvTransformedColoredVertexies[1].TextureCoordinates.X = f左U値; // 右上 → 右下 + this.cvTransformedColoredVertexies[1].TextureCoordinates.Y = f上V値; + this.cvTransformedColoredVertexies[1].Position.X = fx + w; + this.cvTransformedColoredVertexies[1].Position.Y = fy; + this.cvTransformedColoredVertexies[1].Position.Z = depth; + this.cvTransformedColoredVertexies[1].Position.W = 1.0f; + this.cvTransformedColoredVertexies[1].Color = color; + + this.cvTransformedColoredVertexies[2].TextureCoordinates.X = f右U値; // 左下 → 左上 + this.cvTransformedColoredVertexies[2].TextureCoordinates.Y = f下V値; + this.cvTransformedColoredVertexies[2].Position.X = fx; + this.cvTransformedColoredVertexies[2].Position.Y = fy + h; + this.cvTransformedColoredVertexies[2].Position.Z = depth; + this.cvTransformedColoredVertexies[2].Position.W = 1.0f; + this.cvTransformedColoredVertexies[2].Color = color; + + this.cvTransformedColoredVertexies[3].TextureCoordinates.X = f左U値; // 右下 → 右上 + this.cvTransformedColoredVertexies[3].TextureCoordinates.Y = f下V値; + this.cvTransformedColoredVertexies[3].Position.X = fx + w; + this.cvTransformedColoredVertexies[3].Position.Y = fy + h; + this.cvTransformedColoredVertexies[3].Position.Z = depth; + this.cvTransformedColoredVertexies[3].Position.W = 1.0f; + this.cvTransformedColoredVertexies[3].Color = color; + + device.SetTexture(0, this.texture); + device.VertexFormat = TransformedColoredTexturedVertex.Format; + device.DrawUserPrimitives(PrimitiveType.TriangleStrip, 2, this.cvTransformedColoredVertexies); + } + public void t2D上下反転描画(Device device, int x, int y, float depth, Rectangle rc画像内の描画領域) + { + if (this.texture == null) + throw new InvalidOperationException("テクスチャは生成されていません。"); + + this.tレンダリングステートの設定(device); + + float fx = x * CTexture.f画面比率 + CTexture.rc物理画面描画領域.X - 0.5f; // -0.5 は座標とピクセルの誤差を吸収するための座標補正値。(MSDN参照) + float fy = y * CTexture.f画面比率 + CTexture.rc物理画面描画領域.Y - 0.5f; // + float w = rc画像内の描画領域.Width * this.vc拡大縮小倍率.X * CTexture.f画面比率; + float h = rc画像内の描画領域.Height * this.vc拡大縮小倍率.Y * CTexture.f画面比率; + float f左U値 = ((float)rc画像内の描画領域.Left) / ((float)this.szテクスチャサイズ.Width); + float f右U値 = ((float)rc画像内の描画領域.Right) / ((float)this.szテクスチャサイズ.Width); + float f上V値 = ((float)rc画像内の描画領域.Top) / ((float)this.szテクスチャサイズ.Height); + float f下V値 = ((float)rc画像内の描画領域.Bottom) / ((float)this.szテクスチャサイズ.Height); + this.color4.Alpha = ((float)this._opacity) / 255f; + int color = this.color4.ToArgb(); + + if (this.cvTransformedColoredVertexies == null) + this.cvTransformedColoredVertexies = new TransformedColoredTexturedVertex[4]; + + // 以下、マネージドオブジェクトの量産を抑えるため new は使わない。 + + this.cvTransformedColoredVertexies[0].TextureCoordinates.X = f左U値; // 左上 → 左下 + this.cvTransformedColoredVertexies[0].TextureCoordinates.Y = f下V値; + this.cvTransformedColoredVertexies[0].Position.X = fx; + this.cvTransformedColoredVertexies[0].Position.Y = fy; + this.cvTransformedColoredVertexies[0].Position.Z = depth; + this.cvTransformedColoredVertexies[0].Position.W = 1.0f; + this.cvTransformedColoredVertexies[0].Color = color; + + this.cvTransformedColoredVertexies[1].TextureCoordinates.X = f右U値; // 右上 → 右下 + this.cvTransformedColoredVertexies[1].TextureCoordinates.Y = f下V値; + this.cvTransformedColoredVertexies[1].Position.X = fx + w; + this.cvTransformedColoredVertexies[1].Position.Y = fy; + this.cvTransformedColoredVertexies[1].Position.Z = depth; + this.cvTransformedColoredVertexies[1].Position.W = 1.0f; + this.cvTransformedColoredVertexies[1].Color = color; + + this.cvTransformedColoredVertexies[2].TextureCoordinates.X = f左U値; // 左下 → 左上 + this.cvTransformedColoredVertexies[2].TextureCoordinates.Y = f上V値; + this.cvTransformedColoredVertexies[2].Position.X = fx; + this.cvTransformedColoredVertexies[2].Position.Y = fy + h; + this.cvTransformedColoredVertexies[2].Position.Z = depth; + this.cvTransformedColoredVertexies[2].Position.W = 1.0f; + this.cvTransformedColoredVertexies[2].Color = color; + + this.cvTransformedColoredVertexies[3].TextureCoordinates.X = f右U値; // 右下 → 右上 + this.cvTransformedColoredVertexies[3].TextureCoordinates.Y = f上V値; + this.cvTransformedColoredVertexies[3].Position.X = fx + w; + this.cvTransformedColoredVertexies[3].Position.Y = fy + h; + this.cvTransformedColoredVertexies[3].Position.Z = depth; + this.cvTransformedColoredVertexies[3].Position.W = 1.0f; + this.cvTransformedColoredVertexies[3].Color = color; + + device.SetTexture(0, this.texture); + device.VertexFormat = TransformedColoredTexturedVertex.Format; + device.DrawUserPrimitives(PrimitiveType.TriangleStrip, 2, in this.cvTransformedColoredVertexies); + } + public void t2D上下反転描画(Device device, Point pt) + { + this.t2D上下反転描画(device, pt.X, pt.Y, 1f, this.rc全画像); + } + public void t2D上下反転描画(Device device, Point pt, Rectangle rc画像内の描画領域) + { + this.t2D上下反転描画(device, pt.X, pt.Y, 1f, rc画像内の描画領域); + } + public void t2D上下反転描画(Device device, Point pt, float depth, Rectangle rc画像内の描画領域) + { + this.t2D上下反転描画(device, pt.X, pt.Y, depth, rc画像内の描画領域); + } + + public static Vector3 t論理画面座標をワールド座標へ変換する(int x, int y) + { + return CTexture.t論理画面座標をワールド座標へ変換する(new Vector3((float)x, (float)y, 0f)); + } + public static Vector3 t論理画面座標をワールド座標へ変換する(float x, float y) + { + return CTexture.t論理画面座標をワールド座標へ変換する(new Vector3(x, y, 0f)); + } + public static Vector3 t論理画面座標をワールド座標へ変換する(Point pt論理画面座標) + { + return CTexture.t論理画面座標をワールド座標へ変換する(new Vector3(pt論理画面座標.X, pt論理画面座標.Y, 0.0f)); + } + public static Vector3 t論理画面座標をワールド座標へ変換する(Vector2 v2論理画面座標) + { + return CTexture.t論理画面座標をワールド座標へ変換する(new Vector3(v2論理画面座標, 0f)); + } + public static Vector3 t論理画面座標をワールド座標へ変換する(Vector3 v3論理画面座標) + { + return new Vector3( + (v3論理画面座標.X - (CTexture.sz論理画面.Width / 2.0f)) * CTexture.f画面比率, + (-(v3論理画面座標.Y - (CTexture.sz論理画面.Height / 2.0f)) * CTexture.f画面比率), + v3論理画面座標.Z); + } + + /// + /// テクスチャを 3D 画像と見なして描画する。 + /// + public void t3D描画(Device device, Matrix mat) + { + this.t3D描画(device, mat, this.rc全画像); + } + public void t3D描画(Device device, Matrix mat, Rectangle rc画像内の描画領域) + { + if (this.texture == null) + return; + + float x = ((float)rc画像内の描画領域.Width) / 2f; + float y = ((float)rc画像内の描画領域.Height) / 2f; + float z = 0.0f; + float f左U値 = ((float)rc画像内の描画領域.Left) / ((float)this.szテクスチャサイズ.Width); + float f右U値 = ((float)rc画像内の描画領域.Right) / ((float)this.szテクスチャサイズ.Width); + float f上V値 = ((float)rc画像内の描画領域.Top) / ((float)this.szテクスチャサイズ.Height); + float f下V値 = ((float)rc画像内の描画領域.Bottom) / ((float)this.szテクスチャサイズ.Height); + this.color4.Alpha = ((float)this._opacity) / 255f; + int color = this.color4.ToArgb(); + + if (this.cvPositionColoredVertexies == null) + this.cvPositionColoredVertexies = new PositionColoredTexturedVertex[4]; + + // #27122 2012.1.13 from: 以下、マネージドオブジェクト(=ガベージ)の量産を抑えるため、new は使わず、メンバに値を1つずつ直接上書きする。 + + this.cvPositionColoredVertexies[0].Position.X = -x; + this.cvPositionColoredVertexies[0].Position.Y = y; + this.cvPositionColoredVertexies[0].Position.Z = z; + this.cvPositionColoredVertexies[0].Color = color; + this.cvPositionColoredVertexies[0].TextureCoordinates.X = f左U値; + this.cvPositionColoredVertexies[0].TextureCoordinates.Y = f上V値; + + this.cvPositionColoredVertexies[1].Position.X = x; + this.cvPositionColoredVertexies[1].Position.Y = y; + this.cvPositionColoredVertexies[1].Position.Z = z; + this.cvPositionColoredVertexies[1].Color = color; + this.cvPositionColoredVertexies[1].TextureCoordinates.X = f右U値; + this.cvPositionColoredVertexies[1].TextureCoordinates.Y = f上V値; + + this.cvPositionColoredVertexies[2].Position.X = -x; + this.cvPositionColoredVertexies[2].Position.Y = -y; + this.cvPositionColoredVertexies[2].Position.Z = z; + this.cvPositionColoredVertexies[2].Color = color; + this.cvPositionColoredVertexies[2].TextureCoordinates.X = f左U値; + this.cvPositionColoredVertexies[2].TextureCoordinates.Y = f下V値; + + this.cvPositionColoredVertexies[3].Position.X = x; + this.cvPositionColoredVertexies[3].Position.Y = -y; + this.cvPositionColoredVertexies[3].Position.Z = z; + this.cvPositionColoredVertexies[3].Color = color; + this.cvPositionColoredVertexies[3].TextureCoordinates.X = f右U値; + this.cvPositionColoredVertexies[3].TextureCoordinates.Y = f下V値; + + this.tレンダリングステートの設定(device); + + device.SetTransform(TransformState.World, mat); + device.SetTexture(0, this.texture); + device.VertexFormat = PositionColoredTexturedVertex.Format; + device.DrawUserPrimitives(PrimitiveType.TriangleStrip, 2, in this.cvPositionColoredVertexies); + } + + public void t3D左上基準描画(Device device, Matrix mat) + { + this.t3D左上基準描画(device, mat, this.rc全画像); + } + /// + /// ○覚書 + /// SlimDX.Matrix mat = SlimDX.Matrix.Identity; + /// mat *= SlimDX.Matrix.Translation( x, y, z ); + /// 「mat =」ではなく「mat *=」であることを忘れないこと。 + /// + public void t3D左上基準描画(Device device, Matrix mat, Rectangle rc画像内の描画領域) + { + //とりあえず補正値などは無し。にしても使う機会少なさそうだなー + if (this.texture == null) + return; + + float x = 0.0f; + float y = 0.0f; + float z = 0.0f; + float f左U値 = ((float)rc画像内の描画領域.Left) / ((float)this.szテクスチャサイズ.Width); + float f右U値 = ((float)rc画像内の描画領域.Right) / ((float)this.szテクスチャサイズ.Width); + float f上V値 = ((float)rc画像内の描画領域.Top) / ((float)this.szテクスチャサイズ.Height); + float f下V値 = ((float)rc画像内の描画領域.Bottom) / ((float)this.szテクスチャサイズ.Height); + this.color4.Alpha = ((float)this._opacity) / 255f; + int color = this.color4.ToArgb(); + + if (this.cvPositionColoredVertexies == null) + this.cvPositionColoredVertexies = new PositionColoredTexturedVertex[4]; + + // #27122 2012.1.13 from: 以下、マネージドオブジェクト(=ガベージ)の量産を抑えるため、new は使わず、メンバに値を1つずつ直接上書きする。 + + this.cvPositionColoredVertexies[0].Position.X = -x; + this.cvPositionColoredVertexies[0].Position.Y = y; + this.cvPositionColoredVertexies[0].Position.Z = z; + this.cvPositionColoredVertexies[0].Color = color; + this.cvPositionColoredVertexies[0].TextureCoordinates.X = f左U値; + this.cvPositionColoredVertexies[0].TextureCoordinates.Y = f上V値; + + this.cvPositionColoredVertexies[1].Position.X = x; + this.cvPositionColoredVertexies[1].Position.Y = y; + this.cvPositionColoredVertexies[1].Position.Z = z; + this.cvPositionColoredVertexies[1].Color = color; + this.cvPositionColoredVertexies[1].TextureCoordinates.X = f右U値; + this.cvPositionColoredVertexies[1].TextureCoordinates.Y = f上V値; + + this.cvPositionColoredVertexies[2].Position.X = -x; + this.cvPositionColoredVertexies[2].Position.Y = -y; + this.cvPositionColoredVertexies[2].Position.Z = z; + this.cvPositionColoredVertexies[2].Color = color; + this.cvPositionColoredVertexies[2].TextureCoordinates.X = f左U値; + this.cvPositionColoredVertexies[2].TextureCoordinates.Y = f下V値; + + this.cvPositionColoredVertexies[3].Position.X = x; + this.cvPositionColoredVertexies[3].Position.Y = -y; + this.cvPositionColoredVertexies[3].Position.Z = z; + this.cvPositionColoredVertexies[3].Color = color; + this.cvPositionColoredVertexies[3].TextureCoordinates.X = f右U値; + this.cvPositionColoredVertexies[3].TextureCoordinates.Y = f下V値; + + this.tレンダリングステートの設定(device); + + device.SetTransform(TransformState.World, mat); + device.SetTexture(0, this.texture); + device.VertexFormat = PositionColoredTexturedVertex.Format; + device.DrawUserPrimitives(PrimitiveType.TriangleStrip, 2, in this.cvPositionColoredVertexies); + } + + #region [ IDisposable 実装 ] + //----------------- + public void Dispose() + { + if (!this.bDispose完了済み) + { + // テクスチャの破棄 + if (this.texture != null) + { + this.texture.Dispose(); + this.texture = null; + } + + this.bDispose完了済み = true; + } + } + //----------------- + #endregion + + + // その他 + + #region [ private ] + //----------------- + private int _opacity; + private bool bDispose完了済み; + private PositionColoredTexturedVertex[] cvPositionColoredVertexies; + protected TransformedColoredTexturedVertex[] cvTransformedColoredVertexies = new TransformedColoredTexturedVertex[] + { + new TransformedColoredTexturedVertex(), + new TransformedColoredTexturedVertex(), + new TransformedColoredTexturedVertex(), + new TransformedColoredTexturedVertex(), + }; + private const Pool poolvar = // 2011.4.25 yyagi +#if TEST_Direct3D9Ex + Pool.Default; +#else + Pool.Managed; +#endif + // byte[] _txData; + static object lockobj = new object(); + + /// + /// どれか一つが有効になります。 + /// + /// Direct3Dのデバイス + private void tレンダリングステートの設定(Device device) + { + if (this.b加算合成) + { + device.SetRenderState(RenderState.SourceBlend, SlimDX.Direct3D9.Blend.SourceAlpha); // 5 + device.SetRenderState(RenderState.DestinationBlend, SlimDX.Direct3D9.Blend.One); // 2 + } + else if (this.b乗算合成) + { + //参考:http://sylphylunar.seesaa.net/article/390331341.html + //C++から引っ張ってきたのでちょっと不安。 + device.SetRenderState(RenderState.SourceBlend, SlimDX.Direct3D9.Blend.DestinationColor); + device.SetRenderState(RenderState.DestinationBlend, SlimDX.Direct3D9.Blend.Zero); + } + else if (this.b減算合成) + { + //参考:http://www3.pf-x.net/~chopper/home2/DirectX/MD20.html + device.SetRenderState(RenderState.BlendOperation, SlimDX.Direct3D9.BlendOperation.Subtract); + device.SetRenderState(RenderState.SourceBlend, SlimDX.Direct3D9.Blend.One); + device.SetRenderState(RenderState.DestinationBlend, SlimDX.Direct3D9.Blend.One); + } + else if (this.bスクリーン合成) + { + //参考:http://sylphylunar.seesaa.net/article/390331341.html + //C++から引っ張ってきたのでちょっと不安。 + device.SetRenderState(RenderState.SourceBlend, SlimDX.Direct3D9.Blend.InverseDestinationColor); + device.SetRenderState(RenderState.DestinationBlend, SlimDX.Direct3D9.Blend.One); + } + else + { + device.SetRenderState(RenderState.SourceBlend, SlimDX.Direct3D9.Blend.SourceAlpha); // 5 + device.SetRenderState(RenderState.DestinationBlend, SlimDX.Direct3D9.Blend.InverseSourceAlpha); // 6 + } + } + private Size t指定されたサイズを超えない最適なテクスチャサイズを返す(Device device, Size sz指定サイズ) + { + var deviceCapabilities = device.Capabilities; + var deviceCapabilitiesTextureCaps = deviceCapabilities.TextureCaps; + + bool b条件付きでサイズは2の累乗でなくてもOK = (deviceCapabilitiesTextureCaps & TextureCaps.NonPow2Conditional) != 0; + bool bサイズは2の累乗でなければならない = (deviceCapabilitiesTextureCaps & TextureCaps.Pow2) != 0; + bool b正方形でなければならない = (deviceCapabilitiesTextureCaps & TextureCaps.SquareOnly) != 0; + int n最大幅 = deviceCapabilities.MaxTextureWidth; + int n最大高 = deviceCapabilities.MaxTextureHeight; + var szサイズ = new Size(sz指定サイズ.Width, sz指定サイズ.Height); + + if (bサイズは2の累乗でなければならない && !b条件付きでサイズは2の累乗でなくてもOK) + { + // 幅を2の累乗にする + int n = 1; + do + { + n *= 2; + } + while (n <= sz指定サイズ.Width); + sz指定サイズ.Width = n; + + // 高さを2の累乗にする + n = 1; + do + { + n *= 2; + } + while (n <= sz指定サイズ.Height); + sz指定サイズ.Height = n; + } + + if (sz指定サイズ.Width > n最大幅) + sz指定サイズ.Width = n最大幅; + + if (sz指定サイズ.Height > n最大高) + sz指定サイズ.Height = n最大高; + + if (b正方形でなければならない) + { + if (szサイズ.Width > szサイズ.Height) + { + szサイズ.Height = szサイズ.Width; + } + else if (szサイズ.Width < szサイズ.Height) + { + szサイズ.Width = szサイズ.Height; + } + } + + return szサイズ; + } + + + // 2012.3.21 さらなる new の省略作戦 + + protected Rectangle rc全画像; // テクスチャ作ったらあとは不変 + public Color4 color4 = new Color4(1f, 1f, 1f, 1f); // アルファ以外は不変 + //----------------- + #endregion + } +} diff --git a/FDK19/コード/04.グラフィック/CTextureAutofold.cs b/FDK19/コード/04.グラフィック/CTextureAutofold.cs new file mode 100644 index 00000000..34566f82 --- /dev/null +++ b/FDK19/コード/04.グラフィック/CTextureAutofold.cs @@ -0,0 +1,390 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Drawing; +using System.Drawing.Imaging; +using System.IO; +using System.Diagnostics; +using SlimDX; +using SlimDX.Direct3D9; + +using Device = SampleFramework.DeviceCache; + +namespace FDK +{ + /// + /// 縦長_横長の画像を自動で折りたたんでテクスチャ化するCTexture。 + /// 例えば、768x30 のテクスチャファイルが入力されたら、 + /// 内部で256x90 など、2のべき乗サイズに収めるよう、内部でテクスチャ画像を自動的に折り返す。 + /// 必要に応じて、正方形テクスチャにもする。 + /// また、t2D描画は、その折り返しを加味して実行する。 + /// + public class CTextureAf : CTexture, IDisposable + { + + /// + /// 指定された画像ファイルから Managed テクスチャを作成する。 + /// 利用可能な画像形式は、BMP, JPG, PNG, TGA, DDS, PPM, DIB, HDR, PFM のいずれか。 + /// + /// Direct3D9 デバイス。 + /// 画像ファイル名。 + /// テクスチャのフォーマット。 + /// 画像の黒(0xFFFFFFFF)を透過させるなら true。 + /// テクスチャの作成に失敗しました。 + public CTextureAf( Device device, string strファイル名, Format format, bool b黒を透過する ) + : this( device, strファイル名, format, b黒を透過する, Pool.Managed ) + { + } + + /// + /// 画像ファイルからテクスチャを生成する。 + /// 利用可能な画像形式は、BMP, JPG, PNG, TGA, DDS, PPM, DIB, HDR, PFM のいずれか。 + /// テクスチャのサイズは、画像のサイズ以上、かつ、D3D9デバイスで生成可能な最小のサイズに自動的に調節される。 + /// その際、テクスチャの調節後のサイズにあわせた画像の拡大縮小は行わない。 + /// その他、ミップマップ数は 1、Usage は None、イメージフィルタは Point、ミップマップフィルタは None になる。 + /// + /// Direct3D9 デバイス。 + /// 画像ファイル名。 + /// テクスチャのフォーマット。 + /// 画像の黒(0xFFFFFFFF)を透過させるなら true。 + /// テクスチャの管理方法。 + /// テクスチャの作成に失敗しました。 + public CTextureAf( Device device, string strファイル名, Format format, bool b黒を透過する, Pool pool ) + { + MakeTexture( device, strファイル名, format, b黒を透過する, pool ); + } + + + + + public new void MakeTexture( Device device, string strファイル名, Format format, bool b黒を透過する, Pool pool ) + { + if ( !File.Exists( strファイル名 ) ) // #27122 2012.1.13 from: ImageInformation では FileNotFound 例外は返ってこないので、ここで自分でチェックする。わかりやすいログのために。 + throw new FileNotFoundException( string.Format( "ファイルが存在しません。\n[{0}]", strファイル名 ) ); + + Byte[] _txData = File.ReadAllBytes( strファイル名 ); + bool b条件付きでサイズは2の累乗でなくてもOK = ( device.Capabilities.TextureCaps & TextureCaps.NonPow2Conditional ) != 0; + bool bサイズは2の累乗でなければならない = ( device.Capabilities.TextureCaps & TextureCaps.Pow2 ) != 0; + bool b正方形でなければならない = ( device.Capabilities.TextureCaps & TextureCaps.SquareOnly ) != 0; + + // そもそもこんな最適化をしなくてよいのなら、さっさとbaseに処理を委ねて終了 + if ( !bサイズは2の累乗でなければならない && b条件付きでサイズは2の累乗でなくてもOK ) + { + //Debug.WriteLine( Path.GetFileName( strファイル名 ) + ": 最適化は不要です。" ); + base.MakeTexture( device, strファイル名, format, b黒を透過する, pool ); + return; + } + + var information = ImageInformation.FromMemory( _txData ); + int orgWidth = information.Width, orgHeight = information.Height; + int w = orgWidth, h = orgHeight, foldtimes; + + #region [ 折りたたみありで最適なテクスチャサイズがどうなるかを確認する(正方形にするかは考慮せず) ] + if ( orgWidth >= orgHeight ) // 横長画像なら + { + this.b横長のテクスチャである = true; + if ( !GetFoldedTextureSize( ref w, ref h, out foldtimes ) ) + { +//Debug.WriteLine( Path.GetFileName( strファイル名 ) + ": 最適化を断念。" ); + base.MakeTexture( device, strファイル名, format, b黒を透過する, pool ); + return; + } + } + else // 縦長画像なら + { + this.b横長のテクスチャである = false; + if ( !GetFoldedTextureSize( ref h, ref w, out foldtimes ) ) // 縦横入れ替えて呼び出し + { +//Debug.WriteLine( Path.GetFileName( strファイル名 ) + ": 最適化を断念。" ); + base.MakeTexture( device, strファイル名, format, b黒を透過する, pool ); + return; + } + } + #endregion + +//Debug.WriteLine( Path.GetFileName( strファイル名 ) + ": texture最適化結果: width=" + w + ", height=" + h + ", 折りたたみ回数=" + foldtimes ); + #region [ 折りたたみテクスチャ画像を作り、テクスチャ登録する ] + // バイナリ(Byte配列)をBitmapに変換 + MemoryStream mms = new MemoryStream( _txData ); + Bitmap bmpOrg = new Bitmap( mms ); + mms.Close(); + + Bitmap bmpNew = new Bitmap( w, h ); + Graphics g = Graphics.FromImage( bmpNew ); + + for ( int n = 0; n <= foldtimes; n++ ) + { + if ( b横長のテクスチャである ) + { + int x = n * w; + int currentHeight = n * orgHeight; + int currentWidth = ( n < foldtimes ) ? w : orgWidth - x; + Rectangle r = new Rectangle( x, 0, currentWidth, orgHeight ); + Bitmap bmpTmp = bmpOrg.Clone( r, bmpOrg.PixelFormat ); // ここがボトルネックになるようなら、後日unsafeコードにする。 + g.DrawImage( bmpTmp, 0, currentHeight, currentWidth, orgHeight ); + bmpTmp.Dispose(); + } + else + { + int y = n * h; + int currentWidth = n * orgWidth; + int currentHeight = ( n < foldtimes ) ? h : orgHeight - y; + Rectangle r = new Rectangle( 0, y, orgWidth, currentHeight ); + Bitmap bmpTmp = bmpOrg.Clone( r, bmpOrg.PixelFormat ); // ここがボトルネックになるようなら、後日unsafeコードにする。 + g.DrawImage( bmpTmp, currentWidth, 0, orgWidth, currentHeight ); + bmpTmp.Dispose(); + } + }; + if ( b黒を透過する ) + { + bmpNew.MakeTransparent( Color.Black ); + } + g.Dispose(); + g = null; + bmpOrg.Dispose(); + bmpOrg = null; + base.MakeTexture( device, bmpNew, format, b黒を透過する, pool ); + bmpNew.Dispose(); + bmpNew = null; + #endregion + + _orgWidth = orgWidth; + _orgHeight = orgHeight; + _foldtimes = foldtimes; + this.sz画像サイズ = new Size( orgWidth, orgHeight ); + } + + /// + /// 横長画像を適切なサイズに折りたたんだときの最適テクスチャサイズを得る。 + /// 縦長画像に対しては、width/heightを入れ替えて呼び出すこと。 + /// + /// + /// + /// + /// + private bool GetFoldedTextureSize( ref int width, ref int height, out int foldtimes ) + { + int orgWidth = width, orgHeight = height; + + #region [ widthが、2のべき乗からどれくらい溢れているか確認 ] + int pow = 1; + while ( orgWidth >= pow ) + { + pow *= 2; + } + pow /= 2; + #endregion + #region [ まず、2のべき乗からあふれる分を折り返して、2のべき乗の正方形サイズに収まるかを確認 ] + foldtimes = ( orgWidth == pow ) ? 0 : 1; // 2のべき乗からの溢れがあれば、まずその溢れ分で1回折り畳む + if ( foldtimes != 0 ) + { +//Debug.WriteLine( "powちょうどではないので、溢れあり。まずは1回折りたたむ。" ); + // 試しに、widthをpowに切り詰め、1回折り返してみる。 + // width>heightを維持しているなら、テクスチャサイズはより最適な状態になったということになる。 + if ( pow <= orgHeight * 2 ) // 新width > 新heightを維持できなくなったなら + { // 最適化不可とみなし、baseの処理に委ねる + return false; + } + } + #endregion + #region [ width > height ではなくなるまで、折りたたみ続ける ] + width = pow; + height = orgHeight * 2; // 初期値=1回折りたたんだ状態 + do + { + width /= 2; + foldtimes = ( orgWidth / width ) + ( ( orgWidth % width > 0 ) ? 1 : 0 ) - 1; + height = orgHeight * ( foldtimes + 1 ); + } while ( width > height ); + width *= 2; + foldtimes = ( orgWidth / width ) + ( ( orgWidth % width > 0 ) ? 1 : 0 ) - 1; + height = orgHeight * ( foldtimes + 1 ); + #endregion + + return true; + } + + + + /// + /// テクスチャを 2D 画像と見なして描画する。 + /// + /// Direct3D9 デバイス。 + /// 描画位置(テクスチャの左上位置の X 座標[dot])。 + /// 描画位置(テクスチャの左上位置の Y 座標[dot])。 + public new void t2D描画( Device device, int x, int y ) + { +#if TEST_FOLDTEXTURE + base.t2D描画( device, x, y, 1f, rc全画像 ); +#else + for ( int n = 0; n <= _foldtimes; n++ ) + { + Rectangle r; + if ( b横長のテクスチャである ) + { + int currentHeight = n * _orgHeight; + r = new Rectangle( 0, currentHeight, this.rc全画像.Width, _orgHeight ); + base.t2D描画( device, x + n * this.rc全画像.Width, y, 1f, r ); + } + else + { + int currentWidth = n * _orgWidth; + r = new Rectangle( currentWidth, 0, _orgWidth, this.rc全画像.Height ); + base.t2D描画( device, x, y + n * this.rc全画像.Height, 1f, r ); + } + } +#endif + } + public new void t2D描画( Device device, int x, int y, Rectangle rc ) + { + Rectangle r; + if ( b横長のテクスチャである ) + { + int beginFold = rc.X / this.rc全画像.Width; + int endFold = ( rc.X + rc.Width ) / rc全画像.Width; + for ( int i = beginFold; i <= endFold; i++ ) + { + if ( i > _foldtimes ) break; + + int newRcY = i * _orgHeight + rc.Y; + int newRcX = ( i == beginFold ) ? ( rc.X % this.rc全画像.Width ) : 0; + int newRcWidth = ( newRcX + rc.Width > rc全画像.Width ) ? rc全画像.Width - newRcX : rc.Width; + + r = new Rectangle( newRcX, newRcY, newRcWidth, rc.Height ); + base.t2D描画( device, x, y, 1f, r ); + + int deltaX = ( i == beginFold ) ? ( i + 1 ) * rc全画像.Width - rc.X : rc全画像.Width; + int newWidth = rc.Width - deltaX; + x += deltaX; + rc.Width = newWidth; + } + } + else + { + int beginFold = rc.Y / this.rc全画像.Height; + int endFold = ( rc.Y + rc.Height ) / rc全画像.Height; + for ( int i = beginFold; i <= endFold; i++ ) + { + if ( i > _foldtimes ) break; + + int newRcX = i * _orgWidth + rc.X; + int newRcY = ( i == beginFold ) ? ( rc.Y % this.rc全画像.Height ) : 0; + int newRcHeight = ( newRcY + rc.Height > rc全画像.Height ) ? rc全画像.Height - newRcY : rc.Height; + + r = new Rectangle( newRcX, newRcY, rc.Width, newRcHeight ); + base.t2D描画( device, x, y, 1f, r ); + + int deltaY = ( i == beginFold ) ? ( i + 1 ) * rc全画像.Height - rc.Y : rc全画像.Height; + int newHeight = rc.Height - deltaY; + y += deltaY; + rc.Height = newHeight; + } + } + + } + public new void t2D描画( Device device, float x, float y ) + { + t2D描画( device, (int) x, (int) y ); + } + public void t2D描画( Device device, float x, float y, Rectangle rc ) + { + t2D描画( device, (int) x, (int) y, rc ); + } + + /// + /// テクスチャを 2D 画像と見なして描画する。 + /// + /// Direct3D9 デバイス。 + /// 描画位置(テクスチャの左上位置の X 座標[dot])。 + /// 描画位置(テクスチャの左上位置の Y 座標[dot])。 + public void t3D描画( Device device, Matrix mat, float x, float y ) + { +#if TEST_FOLDTEXTURE + base.t2D描画( device, x, y, 1f, rc全画像 ); +#else + for ( int n = 0; n <= _foldtimes; n++ ) + { + Rectangle r; + if ( b横長のテクスチャである ) + { + int currentHeight = n * _orgHeight; + r = new Rectangle( 0, currentHeight, this.rc全画像.Width, _orgHeight ); + base.t3D描画( device, mat ); + } + else + { + int currentWidth = n * _orgWidth; + r = new Rectangle( currentWidth, 0, _orgWidth, this.rc全画像.Height ); + base.t3D描画( device, mat ); + } + } +#endif + } + public void t3D描画( Device device, Matrix mat, float x, float y, Rectangle rc ) + { + Rectangle r; + if ( b横長のテクスチャである ) + { + int beginFold = rc.X / this.rc全画像.Width; + int endFold = ( rc.X + rc.Width ) / rc全画像.Width; + for ( int i = beginFold; i <= endFold; i++ ) + { + if ( i > _foldtimes ) break; + + int newRcY = i * _orgHeight + rc.Y; + int newRcX = ( i == beginFold ) ? ( rc.X % this.rc全画像.Width ) : 0; + int newRcWidth = ( newRcX + rc.Width > rc全画像.Width ) ? rc全画像.Width - newRcX : rc.Width; + + r = new Rectangle( newRcX, newRcY, newRcWidth, rc.Height ); + base.t3D描画( device, mat, r ); + + int deltaX = ( i == beginFold ) ? ( i + 1 ) * rc全画像.Width - rc.X : rc全画像.Width; + int newWidth = rc.Width - deltaX; + x += deltaX; + rc.Width = newWidth; + } + } + else + { + int beginFold = rc.Y / this.rc全画像.Height; + int endFold = ( rc.Y + rc.Height ) / rc全画像.Height; + for ( int i = beginFold; i <= endFold; i++ ) + { + if ( i > _foldtimes ) break; + + int newRcX = i * _orgWidth + rc.X; + int newRcY = ( i == beginFold ) ? ( rc.Y % this.rc全画像.Height ) : 0; + int newRcHeight = ( newRcY + rc.Height > rc全画像.Height ) ? rc全画像.Height - newRcY : rc.Height; + + r = new Rectangle( newRcX, newRcY, rc.Width, newRcHeight ); + base.t3D描画( device, mat, r ); + + int deltaY = ( i == beginFold ) ? ( i + 1 ) * rc全画像.Height - rc.Y : rc全画像.Height; + int newHeight = rc.Height - deltaY; + y += deltaY; + rc.Height = newHeight; + } + } + + } + + #region [ private ] + //----------------- + private bool b横長のテクスチャである; + + /// + /// 元画像のWidth + /// + private int _orgWidth; + /// + /// 元画像のHeight + /// + private int _orgHeight; + /// + /// 折りたたみ回数 + /// + private int _foldtimes; + //----------------- + #endregion + } +} diff --git a/FDK19/コード/04.グラフィック/CTextureCreateFailedException.cs b/FDK19/コード/04.グラフィック/CTextureCreateFailedException.cs new file mode 100644 index 00000000..1644e050 --- /dev/null +++ b/FDK19/コード/04.グラフィック/CTextureCreateFailedException.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Runtime.Serialization; + +namespace FDK +{ + /// + /// テクスチャの作成に失敗しました。 + /// + public class CTextureCreateFailedException : Exception + { + public CTextureCreateFailedException() + { + } + public CTextureCreateFailedException( string message ) + : base( message ) + { + } + public CTextureCreateFailedException( SerializationInfo info, StreamingContext context ) + : base( info, context ) + { + } + public CTextureCreateFailedException( string message, Exception innerException ) + : base( message, innerException ) + { + } + } +} diff --git a/FDK19/コード/04.グラフィック/頂点フォーマット(Vertex)/ColoredVertex.cs b/FDK19/コード/04.グラフィック/頂点フォーマット(Vertex)/ColoredVertex.cs new file mode 100644 index 00000000..9bfe05d9 --- /dev/null +++ b/FDK19/コード/04.グラフィック/頂点フォーマット(Vertex)/ColoredVertex.cs @@ -0,0 +1,120 @@ +/* +* Copyright (c) 2007-2010 SlimDX Group +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +* THE SOFTWARE. +*/ + +using System; +using System.Globalization; +using System.Runtime.InteropServices; + +using SlimDX; + +namespace FDK { + /// + /// Represents a vertex with a position and a color. + /// + [StructLayout(LayoutKind.Sequential)] + public struct ColoredVertex : IEquatable { + /// + /// Gets or sets the position of the vertex. + /// + public Vector3 Position { + get; + set; + } + + /// + /// Gets or sets the color of the vertex. + /// + public int Color { + get; + set; + } + + /// + /// Initializes a new instance of the struct. + /// + /// The position. + /// The color. + public ColoredVertex(Vector3 position, int color) + : this() { + Position = position; + Color = color; + } + + /// + /// Implements operator ==. + /// + /// The left. + /// The right. + /// The result of the operator. + public static bool operator ==(ColoredVertex left, ColoredVertex right) { + return left.Equals(right); + } + + /// + /// Implements operator !=. + /// + /// The left side of the operator. + /// The right side of the operator. + /// The result of the operator. + public static bool operator !=(ColoredVertex left, ColoredVertex right) { + return !(left == right); + } + + /// + /// Returns the hash code for this instance. + /// + /// + /// A 32-bit signed integer that is the hash code for this instance. + /// + public override int GetHashCode() { + return Position.GetHashCode() + Color.GetHashCode(); + } + + /// + /// Indicates whether this instance and a specified object are equal. + /// + /// Another object to compare to. + /// + /// true if and this instance are the same type and represent the same value; otherwise, false. + /// + public override bool Equals(object obj) { + if (obj == null) + return false; + + if (GetType() != obj.GetType()) + return false; + + return Equals((ColoredVertex)obj); + } + + /// + /// Indicates whether the current object is equal to another object of the same type. + /// + /// An object to compare with this object. + /// + /// true if the current object is equal to the parameter; otherwise, false. + /// + public bool Equals(ColoredVertex other) { + return (Position == other.Position && Color == other.Color); + } + } +} diff --git a/FDK19/コード/04.グラフィック/頂点フォーマット(Vertex)/PositionColoredTexturedVertex.cs b/FDK19/コード/04.グラフィック/頂点フォーマット(Vertex)/PositionColoredTexturedVertex.cs new file mode 100644 index 00000000..ea0110cb --- /dev/null +++ b/FDK19/コード/04.グラフィック/頂点フォーマット(Vertex)/PositionColoredTexturedVertex.cs @@ -0,0 +1,73 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Runtime.InteropServices; +using System.Globalization; +using SlimDX; +using SlimDX.Direct3D9; + +namespace FDK +{ + [StructLayout( LayoutKind.Sequential )] + public struct PositionColoredTexturedVertex : IEquatable + { + public Vector3 Position; + public int Color; + public Vector2 TextureCoordinates; + + public static int SizeInBytes + { + get + { + return Marshal.SizeOf( typeof( PositionColoredTexturedVertex ) ); + } + } + public static VertexFormat Format + { + get + { + return ( VertexFormat.Texture1 | VertexFormat.Diffuse | VertexFormat.Position ); + } + } + public PositionColoredTexturedVertex( Vector3 position, int color, Vector2 textureCoordinates ) + { + this = new PositionColoredTexturedVertex(); + this.Position = position; + this.Color = color; + this.TextureCoordinates = textureCoordinates; + } + + public static bool operator ==( PositionColoredTexturedVertex left, PositionColoredTexturedVertex right ) + { + return left.Equals( right ); + } + public static bool operator !=( PositionColoredTexturedVertex left, PositionColoredTexturedVertex right ) + { + return !( left == right ); + } + public override int GetHashCode() + { + return ( ( this.Position.GetHashCode() + this.Color.GetHashCode() ) + this.TextureCoordinates.GetHashCode() ); + } + public override bool Equals( object obj ) + { + if( obj == null ) + { + return false; + } + if( base.GetType() != obj.GetType() ) + { + return false; + } + return this.Equals( (PositionColoredTexturedVertex) obj ); + } + public bool Equals( PositionColoredTexturedVertex other ) + { + return ( ( ( this.Position == other.Position ) && ( this.Color == other.Color ) ) && ( this.TextureCoordinates == other.TextureCoordinates ) ); + } + public override string ToString() + { + return string.Format( CultureInfo.CurrentCulture, "{0} ({1}, {2})", new object[] { this.Position.ToString(), System.Drawing.Color.FromArgb( this.Color ).ToString(), this.TextureCoordinates.ToString() } ); + } + } +} diff --git a/FDK19/コード/04.グラフィック/頂点フォーマット(Vertex)/TexturedVertex.cs b/FDK19/コード/04.グラフィック/頂点フォーマット(Vertex)/TexturedVertex.cs new file mode 100644 index 00000000..22356fdc --- /dev/null +++ b/FDK19/コード/04.グラフィック/頂点フォーマット(Vertex)/TexturedVertex.cs @@ -0,0 +1,120 @@ +/* +* Copyright (c) 2007-2010 SlimDX Group +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +* THE SOFTWARE. +*/ + +using System; +using System.Globalization; +using System.Runtime.InteropServices; + +using SlimDX; + +namespace FDK { + /// + /// Represents a vertex with a position and a texture coordinate. + /// + [StructLayout(LayoutKind.Sequential)] + public struct TexturedVertex : IEquatable { + /// + /// Gets or sets the position of the vertex. + /// + public Vector3 Position { + get; + set; + } + + /// + /// Gets or sets the texture coordinate for the vertex. + /// + public Vector2 TextureCoordinate { + get; + set; + } + + /// + /// Initializes a new instance of the struct. + /// + /// The position. + /// The color. + public TexturedVertex(Vector3 position, Vector2 textureCoordinate) + : this() { + Position = position; + TextureCoordinate = textureCoordinate; + } + + /// + /// Implements operator ==. + /// + /// The left. + /// The right. + /// The result of the operator. + public static bool operator ==(TexturedVertex left, TexturedVertex right) { + return left.Equals(right); + } + + /// + /// Implements operator !=. + /// + /// The left side of the operator. + /// The right side of the operator. + /// The result of the operator. + public static bool operator !=(TexturedVertex left, TexturedVertex right) { + return !(left == right); + } + + /// + /// Returns the hash code for this instance. + /// + /// + /// A 32-bit signed integer that is the hash code for this instance. + /// + public override int GetHashCode() { + return Position.GetHashCode() + TextureCoordinate.GetHashCode(); + } + + /// + /// Indicates whether this instance and a specified object are equal. + /// + /// Another object to compare to. + /// + /// true if and this instance are the same type and represent the same value; otherwise, false. + /// + public override bool Equals(object obj) { + if (obj == null) + return false; + + if (GetType() != obj.GetType()) + return false; + + return Equals((TexturedVertex)obj); + } + + /// + /// Indicates whether the current object is equal to another object of the same type. + /// + /// An object to compare with this object. + /// + /// true if the current object is equal to the parameter; otherwise, false. + /// + public bool Equals(TexturedVertex other) { + return (Position == other.Position && TextureCoordinate == other.TextureCoordinate); + } + } +} diff --git a/FDK19/コード/04.グラフィック/頂点フォーマット(Vertex)/TransformedColoredTexturedVertex.cs b/FDK19/コード/04.グラフィック/頂点フォーマット(Vertex)/TransformedColoredTexturedVertex.cs new file mode 100644 index 00000000..44ad7770 --- /dev/null +++ b/FDK19/コード/04.グラフィック/頂点フォーマット(Vertex)/TransformedColoredTexturedVertex.cs @@ -0,0 +1,73 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Runtime.InteropServices; +using System.Globalization; +using SlimDX; +using SlimDX.Direct3D9; + +namespace FDK +{ + [StructLayout( LayoutKind.Sequential )] + public struct TransformedColoredTexturedVertex : IEquatable + { + public Vector4 Position; + public int Color; + public Vector2 TextureCoordinates; + + public static int SizeInBytes + { + get + { + return Marshal.SizeOf( typeof( TransformedColoredTexturedVertex ) ); + } + } + public static VertexFormat Format + { + get + { + return ( VertexFormat.Texture1 | VertexFormat.Diffuse | VertexFormat.PositionRhw ); + } + } + public TransformedColoredTexturedVertex( Vector4 position, int color, Vector2 textureCoordinates ) + { + this = new TransformedColoredTexturedVertex(); + this.Position = position; + this.Color = color; + this.TextureCoordinates = textureCoordinates; + } + + public static bool operator ==( TransformedColoredTexturedVertex left, TransformedColoredTexturedVertex right ) + { + return left.Equals( right ); + } + public static bool operator !=( TransformedColoredTexturedVertex left, TransformedColoredTexturedVertex right ) + { + return !( left == right ); + } + public override int GetHashCode() + { + return ( ( this.Position.GetHashCode() + this.Color.GetHashCode() ) + this.TextureCoordinates.GetHashCode() ); + } + public override bool Equals( object obj ) + { + if( obj == null ) + { + return false; + } + if( base.GetType() != obj.GetType() ) + { + return false; + } + return this.Equals( (TransformedColoredTexturedVertex) obj ); + } + public bool Equals( TransformedColoredTexturedVertex other ) + { + return ( ( ( this.Position == other.Position ) && ( this.Color == other.Color ) ) && ( this.TextureCoordinates == other.TextureCoordinates ) ); + } + public override string ToString() + { + return string.Format( CultureInfo.CurrentCulture, "{0} ({1}, {2})", new object[] { this.Position.ToString(), System.Drawing.Color.FromArgb( this.Color ).ToString(), this.TextureCoordinates.ToString() } ); + } + } +} diff --git a/FDK19/コード/04.グラフィック/頂点フォーマット(Vertex)/TransformedColoredVertex.cs b/FDK19/コード/04.グラフィック/頂点フォーマット(Vertex)/TransformedColoredVertex.cs new file mode 100644 index 00000000..71bd1a7d --- /dev/null +++ b/FDK19/コード/04.グラフィック/頂点フォーマット(Vertex)/TransformedColoredVertex.cs @@ -0,0 +1,120 @@ +/* +* Copyright (c) 2007-2010 SlimDX Group +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in +* all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +* THE SOFTWARE. +*/ + +using System; +using System.Globalization; +using System.Runtime.InteropServices; + +using SlimDX; + +namespace FDK { + /// + /// Represents a vertex with a pre-transformed position and a color. + /// + [StructLayout(LayoutKind.Sequential)] + public struct TransformedColoredVertex : IEquatable { + /// + /// Gets or sets the pre-transformed position of the vertex. + /// + public Vector4 Position { + get; + set; + } + + /// + /// Gets or sets the color of the vertex. + /// + public int Color { + get; + set; + } + + /// + /// Initializes a new instance of the struct. + /// + /// The position. + /// The color. + public TransformedColoredVertex(Vector4 position, int color) + : this() { + Position = position; + Color = color; + } + + /// + /// Implements operator ==. + /// + /// The left. + /// The right. + /// The result of the operator. + public static bool operator ==(TransformedColoredVertex left, TransformedColoredVertex right) { + return left.Equals(right); + } + + /// + /// Implements operator !=. + /// + /// The left side of the operator. + /// The right side of the operator. + /// The result of the operator. + public static bool operator !=(TransformedColoredVertex left, TransformedColoredVertex right) { + return !(left == right); + } + + /// + /// Returns the hash code for this instance. + /// + /// + /// A 32-bit signed integer that is the hash code for this instance. + /// + public override int GetHashCode() { + return Position.GetHashCode() + Color.GetHashCode(); + } + + /// + /// Indicates whether this instance and a specified object are equal. + /// + /// Another object to compare to. + /// + /// true if and this instance are the same type and represent the same value; otherwise, false. + /// + public override bool Equals(object obj) { + if (obj == null) + return false; + + if (GetType() != obj.GetType()) + return false; + + return Equals((TransformedColoredVertex)obj); + } + + /// + /// Indicates whether the current object is equal to another object of the same type. + /// + /// An object to compare with this object. + /// + /// true if the current object is equal to the parameter; otherwise, false. + /// + public bool Equals(TransformedColoredVertex other) { + return (Position == other.Position && Color == other.Color); + } + } +} diff --git a/FDK19/コード/05.DirectShow/CDStoWAVFileImage.cs b/FDK19/コード/05.DirectShow/CDStoWAVFileImage.cs new file mode 100644 index 00000000..9a1bbbab --- /dev/null +++ b/FDK19/コード/05.DirectShow/CDStoWAVFileImage.cs @@ -0,0 +1,198 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.IO; +using System.Runtime.InteropServices; +using System.Diagnostics; +using DirectShowLib; +using SharpDX.Multimedia; + +namespace FDK +{ + public class CDStoWAVFileImage + { + /// + /// 指定された動画ファイルから音声のみをエンコードし、WAVファイルイメージを作成して返す。 + /// + public static void t変換( string fileName, out byte[] wavFileImage ) + { + int hr = 0; + + IGraphBuilder graphBuilder = null; + + try + { + graphBuilder = (IGraphBuilder) new FilterGraph(); + + #region [ オーディオ用サンプルグラバの作成と追加。] + //----------------- + ISampleGrabber sampleGrabber = null; + try + { + sampleGrabber = (ISampleGrabber) new SampleGrabber(); + + + // サンプルグラバのメディアタイプの設定。 + + var mediaType = new AMMediaType() { + majorType = MediaType.Audio, + subType = MediaSubType.PCM, + formatType = FormatType.WaveEx, + }; + try + { + hr = sampleGrabber.SetMediaType( mediaType ); + DsError.ThrowExceptionForHR( hr ); + } + finally + { + if( mediaType != null ) + DsUtils.FreeAMMediaType( mediaType ); + } + + + // サンプルグラバのバッファリングを有効にする。 + + hr = sampleGrabber.SetBufferSamples( true ); + DsError.ThrowExceptionForHR( hr ); + + + // サンプルグラバにコールバックを追加する。 + + sampleGrabberProc = new CSampleGrabberCallBack(); + hr = sampleGrabber.SetCallback( sampleGrabberProc, 1 ); // 1:コールバックの BufferCB() メソッドの方を呼び出す。 + + + // サンプルグラバをグラフに追加する。 + + hr = graphBuilder.AddFilter( (IBaseFilter) sampleGrabber, "SampleGrabber for Audio/PCM" ); + DsError.ThrowExceptionForHR( hr ); + } + finally + { + C共通.tCOMオブジェクトを解放する( ref sampleGrabber ); + } + //----------------- + #endregion + + var e = new DirectShowLib.DsROTEntry( graphBuilder ); + + // fileName からグラフを自動生成。 + + hr = graphBuilder.RenderFile( fileName, null ); // IMediaControl.RenderFile() は推奨されない + DsError.ThrowExceptionForHR( hr ); + + + // ビデオレンダラを除去。 + + CDirectShow.tビデオレンダラをグラフから除去する( graphBuilder ); // オーディオレンダラをNullに変えるより前に実行すること。(CDirectShow.tオーディオレンダラをNullレンダラに変えてフォーマットを取得する() の中で一度再生するので、そのときにActiveウィンドウが表示されてしまうため。) + + + // オーディオレンダラを NullRenderer に置換。 + + WaveFormat wfx; + byte[] wfx拡張領域; + CDirectShow.tオーディオレンダラをNullレンダラに変えてフォーマットを取得する( graphBuilder, out wfx, out wfx拡張領域 ); + + + // 基準クロックを NULL(最高速)に設定する。 + + IMediaFilter mediaFilter = graphBuilder as IMediaFilter; + mediaFilter.SetSyncSource( null ); + mediaFilter = null; + + + // メモリストリームにデコードデータを出力する。 + + sampleGrabberProc.MemoryStream = new MemoryStream(); // CDirectShow.tオーディオレンダラをNullレンダラに変えてフォーマットを取得する() で一度再生しているので、ストリームをクリアする。 + var ms = sampleGrabberProc.MemoryStream; + var bw = new BinaryWriter( ms ); + bw.Write( new byte[] { 0x52, 0x49, 0x46, 0x46 } ); // 'RIFF' + bw.Write( (UInt32) 0 ); // ファイルサイズ - 8 [byte];今は不明なので後で上書きする。 + bw.Write( new byte[] { 0x57, 0x41, 0x56, 0x45 } ); // 'WAVE' + bw.Write( new byte[] { 0x66, 0x6D, 0x74, 0x20 } ); // 'fmt ' + bw.Write( (UInt32) ( 16 + ( ( wfx拡張領域.Length > 0 ) ? ( 2/*sizeof(WAVEFORMATEX.cbSize)*/ + wfx拡張領域.Length ) : 0 ) ) ); // fmtチャンクのサイズ[byte] + bw.Write( (UInt16) wfx.Encoding); // フォーマットID(リニアPCMなら1) + bw.Write( (UInt16) wfx.Channels ); // チャンネル数 + bw.Write( (UInt32) wfx.SampleRate); // サンプリングレート + bw.Write( (UInt32) wfx.AverageBytesPerSecond ); // データ速度 + bw.Write( (UInt16) wfx.BlockAlign); // ブロックサイズ + bw.Write( (UInt16) wfx.BitsPerSample ); // サンプルあたりのビット数 + if( wfx拡張領域.Length > 0 ) + { + bw.Write( (UInt16) wfx拡張領域.Length ); // 拡張領域のサイズ[byte] + bw.Write( wfx拡張領域 ); // 拡張データ + } + bw.Write( new byte[] { 0x64, 0x61, 0x74, 0x61 } ); // 'data' + int nDATAチャンクサイズ位置 = (int) ms.Position; + bw.Write( (UInt32) 0 ); // dataチャンクのサイズ[byte];今は不明なので後で上書きする。 + + #region [ 再生を開始し、終了を待つ。- 再生中、sampleGrabberProc.MemoryStream に PCM データが蓄積されていく。] + //----------------- + IMediaControl mediaControl = graphBuilder as IMediaControl; + mediaControl.Run(); // 再生開始 + + IMediaEvent mediaEvent = graphBuilder as IMediaEvent; + EventCode eventCode; + hr = mediaEvent.WaitForCompletion( -1, out eventCode ); + DsError.ThrowExceptionForHR( hr ); + if( eventCode != EventCode.Complete ) + throw new Exception( "再生待ちに失敗しました。" ); + + mediaControl.Stop(); + mediaEvent = null; + mediaControl = null; + //----------------- + #endregion + + bw.Seek( 4, SeekOrigin.Begin ); + bw.Write( (UInt32) ms.Length - 8 ); // ファイルサイズ - 8 [byte] + + bw.Seek( nDATAチャンクサイズ位置, SeekOrigin.Begin ); + bw.Write( (UInt32) ms.Length - ( nDATAチャンクサイズ位置 + 4 ) ); // dataチャンクサイズ [byte] + + + // 出力その2を作成。 + + wavFileImage = ms.ToArray(); + + + // 終了処理。 + + bw.Close(); + sampleGrabberProc.Dispose(); // ms.Close() + } + finally + { + C共通.tCOMオブジェクトを解放する( ref graphBuilder ); + } + } + + #region [ private ] + //----------------- + private class CSampleGrabberCallBack : ISampleGrabberCB, IDisposable + { + public MemoryStream MemoryStream = new MemoryStream(); + + public int BufferCB( double SampleTime, IntPtr pBuffer, int BufferLen ) + { + var bytes = new byte[ BufferLen ]; + Marshal.Copy( pBuffer, bytes, 0, BufferLen ); // unmanage → manage + this.MemoryStream.Write( bytes, 0, BufferLen ); // byte[] → Stream + return CWin32.S_OK; + } + public int SampleCB( double SampleTime, IMediaSample pSample ) + { + throw new NotImplementedException( "実装されていません。" ); + } + + public void Dispose() + { + this.MemoryStream.Close(); + } + } + private static CSampleGrabberCallBack sampleGrabberProc = null; + //----------------- + #endregion + } +} diff --git a/FDK19/コード/05.DirectShow/CDirectShow.cs b/FDK19/コード/05.DirectShow/CDirectShow.cs new file mode 100644 index 00000000..b7ca2f2d --- /dev/null +++ b/FDK19/コード/05.DirectShow/CDirectShow.cs @@ -0,0 +1,1610 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Runtime.InteropServices; +using System.IO; +using System.Drawing; +using System.Drawing.Imaging; +using System.Threading; +using SlimDX; +using SlimDX.Direct3D9; +using SharpDX.Multimedia; +using DirectShowLib; + +namespace FDK +{ + /// + /// DirectShowを用いたクリップ(動画+音声)を扱う。 + /// 1つのクリップにつき1つの CDirectShow インスタンスを生成する。 + /// 再生の開始や停止などの操作の他、任意の時点でスナップイメージを取得することができる。 + /// + public class CDirectShow : IDisposable + { + // プロパティ + + public const uint WM_DSGRAPHNOTIFY = CWin32.WM_APP + 1; + + public enum Eグラフの状態 { 完全停止中, 再生のみ停止中, 再生中, 完全停止へ遷移中, 再生のみ停止へ遷移中, 再生へ遷移中, 未定 } + public Eグラフの状態 eグラフの状態 + { + get + { + var status = Eグラフの状態.未定; + + if( this.MediaCtrl != null ) + { + FilterState fs; + int hr = this.MediaCtrl.GetState( 0, out fs ); // それなりに重たいので注意。 + + if( hr == CWin32.E_FAIL ) + { + #region [ 失敗。] + //----------------- + status = Eグラフの状態.未定; + //----------------- + #endregion + } + else if( hr == CWin32.VFW_S_STATE_INTERMEDIATE ) + { + #region [ 遷移中。] + //----------------- + switch( fs ) + { + case FilterState.Running: + status = Eグラフの状態.再生へ遷移中; + break; + + case FilterState.Paused: + status = Eグラフの状態.再生のみ停止へ遷移中; + break; + + case FilterState.Stopped: + status = Eグラフの状態.完全停止へ遷移中; + break; + + default: + status = Eグラフの状態.未定; + break; + } + //----------------- + #endregion + } + else + { + #region [ 安定状態。] + //----------------- + switch( fs ) + { + case FilterState.Running: + status = Eグラフの状態.再生中; + break; + + case FilterState.Paused: + status = Eグラフの状態.再生のみ停止中; + break; + + case FilterState.Stopped: + status = Eグラフの状態.完全停止中; + break; + + default: + status = Eグラフの状態.未定; + break; + } + //----------------- + #endregion + } + } + return status; + } + } + public bool b再生中; + public bool bループ再生; + + public int n幅px + { + get; + protected set; + } + public int n高さpx + { + get; + protected set; + } + public int nスキャンライン幅byte + { + get; + protected set; + } + public int nデータサイズbyte + { + get; + protected set; + } + public bool b上下反転 + { + get; + protected set; + } + + public bool b音声のみ + { + get; + protected set; + } + + public long n現在のグラフの再生位置ms + { + get + { + if( this.MediaSeeking == null ) + return 0; + + long current; + int hr = this.MediaSeeking.GetCurrentPosition( out current ); + DsError.ThrowExceptionForHR( hr ); + return (long) ( current / ( 1000.0 * 10.0 ) ); + } + } + /// + /// 無音:0~100:原音。set のみ。 + /// + public int n音量 + { + get + { + return this._n音量; + } + set + { + if( this.BasicAudio == null ) + return; + + + // 値を保存。 + + this._n音量 = value; + + + // リニア音量をデシベル音量に変換。 + + int n音量db = 0; + + if( value == 0 ) + { + n音量db = -10000; // 完全無音 + } + else + { + n音量db = (int) ( ( 20.0 * Math.Log10( ( (double) value ) / 100.0 ) ) * 100.0 ); + } + + + // デシベル音量でグラフの音量を変更。 + + this.BasicAudio.put_Volume( n音量db ); + } + } + /// + /// 左:-100~中央:0~100:右。set のみ。 + /// + public int n位置 + { + set + { + if( this.BasicAudio == null ) + return; + + // リニア位置をデシベル位置に変換。 + + int n位置 = Math.Min( Math.Max( value, -100 ), +100 ); + int n位置db = 0; + + if( n位置 == 0 ) + { + n位置db = 0; + } + else if( n位置 == -100 ) + { + n位置db = -10000; + } + else if( n位置 == 100 ) + { + n位置db = +10000; + } + else if( n位置 < 0 ) + { + n位置db = (int) ( ( 20.0 * Math.Log10( ( (double) ( n位置 + 100 ) ) / 100.0 ) ) * 100.0 ); + } + else + { + n位置db = (int) ( ( -20.0 * Math.Log10( ( (double) ( 100 - n位置 ) ) / 100.0 ) ) * 100.0 ); + } + + // デシベル位置でグラフの位置を変更。 + + this.BasicAudio.put_Balance( n位置db ); + } + } + public IMediaControl MediaCtrl; + public IMediaEventEx MediaEventEx; + public IMediaSeeking MediaSeeking; + public IBasicAudio BasicAudio; + public IGraphBuilder graphBuilder; + + /// + /// CDirectShowインスタンスに固有のID。 + /// DirectShow イベントをウィンドウに発信する際、MessageID として "WM_APP+インスタンスID" を発信する。 + /// これにより、受け側でイベント発信インスタンスを特定することが可能になる。 + /// + public int nインスタンスID + { + get; + protected set; + } + + + // メソッド + + public CDirectShow() + { + } + public CDirectShow( string fileName, IntPtr hWnd, bool bオーディオレンダラなし ) + { + // 初期化。 + + this.n幅px = 0; + this.n高さpx = 0; + this.b上下反転 = false; + this.nスキャンライン幅byte = 0; + this.nデータサイズbyte = 0; + this.b音声のみ = false; + this.graphBuilder = null; + this.MediaCtrl = null; + this.b再生中 = false; + this.bループ再生 = false; + + + // 静的リストに登録し、インスタンスIDを得る。 + + CDirectShow.tインスタンスを登録する( this ); + + + // 並列処理準備。 + + if( CDirectShow.n並列度 == 0 ) // 算出がまだなら算出する。 + CDirectShow.n並列度 = Environment.ProcessorCount; // 並列度=CPU数とする。 + + unsafe + { + this.dgライン描画ARGB32 = new DGライン描画[ CDirectShow.n並列度 ]; + this.dgライン描画XRGB32 = new DGライン描画[ CDirectShow.n並列度 ]; + + for( int i = 0; i < CDirectShow.n並列度; i++ ) + { + this.dgライン描画ARGB32[ i ] = new DGライン描画( this.tライン描画ARGB32 ); + this.dgライン描画XRGB32[ i ] = new DGライン描画( this.tライン描画XRGB32 ); + } + } + + try + { + int hr = 0; + + + // グラフビルダを生成。 + + this.graphBuilder = (IGraphBuilder) new FilterGraph(); +#if DEBUG + // ROT への登録。 + this.rot = new DsROTEntry( graphBuilder ); +#endif + + + // QueryInterface。存在しなければ null。 + + this.MediaCtrl = this.graphBuilder as IMediaControl; + this.MediaEventEx = this.graphBuilder as IMediaEventEx; + this.MediaSeeking = this.graphBuilder as IMediaSeeking; + this.BasicAudio = this.graphBuilder as IBasicAudio; + + + // IMemoryRenderer をグラフに挿入。 + + AMMediaType mediaType = null; + + this.memoryRendererObject = new MemoryRenderer(); + this.memoryRenderer = (IMemoryRenderer) this.memoryRendererObject; + var baseFilter = (IBaseFilter) this.memoryRendererObject; + + hr = this.graphBuilder.AddFilter( baseFilter, "MemoryRenderer" ); + DsError.ThrowExceptionForHR( hr ); + + + // fileName からグラフを自動生成。 + + hr = this.graphBuilder.RenderFile( fileName, null ); // IMediaControl.RenderFile() は推奨されない + DsError.ThrowExceptionForHR( hr ); + + + // 音声のみ? + + { + IBaseFilter videoRenderer; + IPin videoInputPin; + IBaseFilter audioRenderer; + IPin audioInputPin; +#if MemoryRenderer + CDirectShow.tビデオレンダラとその入力ピンを探して返す( this.graphBuilder, out videoRenderer, out videoInputPin ); +#else + CDirectShow.SearchMMRenderers( this.graphBuilder, out videoRenderer, out videoInputPin, out audioRenderer, out audioInputPin ); +#endif + if( videoRenderer == null && audioRenderer != null ) + this.b音声のみ = true; + else + { + C共通.tCOMオブジェクトを解放する( ref videoInputPin ); + C共通.tCOMオブジェクトを解放する( ref videoRenderer ); + C共通.tCOMオブジェクトを解放する( ref audioInputPin ); + C共通.tCOMオブジェクトを解放する( ref audioRenderer ); + } + } + + + // イメージ情報を取得。 + + if( !this.b音声のみ ) + { + long n; + int m; + this.memoryRenderer.GetWidth( out n ); + this.n幅px = (int) n; + this.memoryRenderer.GetHeight( out n ); + this.n高さpx = (int) n; + this.memoryRenderer.IsBottomUp( out m ); + this.b上下反転 = ( m != 0 ); + this.memoryRenderer.GetBufferSize( out n ); + this.nデータサイズbyte = (int) n; + this.nスキャンライン幅byte = (int) this.nデータサイズbyte / this.n高さpx; + // C共通.tCOMオブジェクトを解放する( ref baseFilter ); なんかキャスト元のオブジェクトまで解放されるので解放禁止。 + } + + + // グラフを修正する。 + + if( bオーディオレンダラなし ) + { + WaveFormat dummy1; + byte[] dummy2; + CDirectShow.tオーディオレンダラをNullレンダラに変えてフォーマットを取得する( this.graphBuilder, out dummy1, out dummy2 ); + } + + + // その他の処理。 + + this.t再生準備開始(); // 1回以上 IMediaControl を呼び出してないと、IReferenceClock は取得できない。 + this.t遷移完了まで待って状態を取得する(); // 完全に Pause へ遷移するのを待つ。(環境依存) + + + // イベント用ウィンドウハンドルを設定。 + + this.MediaEventEx.SetNotifyWindow( hWnd, (int) WM_DSGRAPHNOTIFY, new IntPtr( this.nインスタンスID ) ); + } +#if !DEBUG + catch( Exception e ) + { + C共通.t例外の詳細をログに出力する( e ); + this.Dispose(); + throw; // 例外発出。 + } +#endif + finally + { + } + } + + public void t再生準備開始() + { + if( this.MediaCtrl != null ) + { + int hr = this.MediaCtrl.Pause(); // 再生準備を開始する。ここでは準備が完了するまで待たない。 + DsError.ThrowExceptionForHR( hr ); + } + } + public void t再生開始() + { + if( this.MediaCtrl != null && --this.n再生一時停止呼び出しの累積回数 <= 0 ) + { + //this.t遷移完了まで待って状態を取得する(); // 再生準備(だろう)がまだ完了してなければ、待つ。 → 意外と重い処理なので外部で判断して実行するよう変更する。(2011.8.7) + + int hr = this.MediaCtrl.Run(); // 再生開始。 + DsError.ThrowExceptionForHR( hr ); + + this.n再生一時停止呼び出しの累積回数 = 0; // 一時停止回数はここでリセットされる。 + this.b再生中 = true; + } + } + public void t再生一時停止() + { + if( this.MediaCtrl != null && this.n再生一時停止呼び出しの累積回数 == 0 ) + { + int hr = this.MediaCtrl.Pause(); + DsError.ThrowExceptionForHR( hr ); + } + this.n再生一時停止呼び出しの累積回数++; + this.b再生中 = false; + } + public void t再生停止() + { + if( this.MediaCtrl != null ) + { + int hr = this.MediaCtrl.Stop(); + DsError.ThrowExceptionForHR( hr ); + } + + // 次への準備。 + //this.t再生位置を変更する( 0.0 ); → より細かく制御するために、FDK外部で制御するように変更。(2011.8.7) + //this.t再生準備開始(); + + this.n再生一時停止呼び出しの累積回数 = 0; // 停止すると、一時停止呼び出し累積回数はリセットされる。 + this.b再生中 = false; + } + public void t再生位置を変更( double db再生位置ms ) + { + if( this.MediaSeeking == null ) + return; + + int hr = this.MediaSeeking.SetPositions( + DsLong.FromInt64( (long) ( db再生位置ms * 1000.0 * 10.0 ) ), + AMSeekingSeekingFlags.AbsolutePositioning, + null, + AMSeekingSeekingFlags.NoPositioning ); + + DsError.ThrowExceptionForHR( hr ); + } + public void t最初から再生開始() + { + this.t再生位置を変更( 0.0 ); + this.t再生開始(); + } + public Eグラフの状態 t遷移完了まで待って状態を取得する() + { + var status = Eグラフの状態.未定; + + if( this.MediaCtrl != null ) + { + FilterState fs; + int hr = this.MediaCtrl.GetState( 1000, out fs ); // 遷移完了まで最大1000ms待つ。 + } + return this.eグラフの状態; + } + public unsafe void t現時点における最新のスナップイメージをTextureに転写する( CTexture texture ) + { + int hr; + + #region [ 再生してないなら何もせず帰還。(一時停止中はOK。)] + //----------------- + if( !this.b再生中 ) + return; + //----------------- + #endregion + #region [ 音声のみなら何もしない。] + //----------------- + if( this.b音声のみ ) + return; + //----------------- + #endregion + + DataRectangle dr = texture.texture.LockRectangle( 0, LockFlags.Discard ); + try + { + if( this.nスキャンライン幅byte == dr.Pitch ) + { + #region [ (A) ピッチが合うので、テクスチャに直接転送する。] + //----------------- + hr = this.memoryRenderer.GetCurrentBuffer( dr.Data.DataPointer, this.nデータサイズbyte ); + DsError.ThrowExceptionForHR( hr ); + //----------------- + #endregion + } + else + { + this.b上下反転 = false; // こちらの方法では常に正常 + + #region [ (B) ピッチが合わないので、メモリに転送してからテクスチャに転送する。] + //----------------- + + #region [ IMemoryRenderer からバッファにイメージデータを読み込む。] + //----------------- + if( this.ip == IntPtr.Zero ) + this.ip = Marshal.AllocCoTaskMem( this.nデータサイズbyte ); + + hr = this.memoryRenderer.GetCurrentBuffer( this.ip, this.nデータサイズbyte ); + DsError.ThrowExceptionForHR( hr ); + //----------------- + #endregion + + #region [ テクスチャにスナップイメージを転送。] + //----------------- + bool bARGB32 = true; + + switch( texture.Format ) + { + case Format.A8R8G8B8: + bARGB32 = true; + break; + + case Format.X8R8G8B8: + bARGB32 = false; + break; + + default: + return; // 未対応のフォーマットは無視。 + } + + // スレッドプールを使って並列転送する準備。 + + this.ptrSnap = (byte*) this.ip.ToPointer(); + var ptr = stackalloc UInt32*[ CDirectShow.n並列度 ]; // stackalloc(GC対象外、メソッド終了時に自動開放)は、スタック変数相手にしか使えない。 + ptr[ 0 ] = (UInt32*) dr.Data.DataPointer.ToPointer(); // ↓ + for( int i = 1; i < CDirectShow.n並列度; i++ ) // スタック変数で確保、初期化して… + ptr[ i ] = ptr[ i - 1 ] + this.n幅px; // ↓ + this.ptrTexture = ptr; // スタック変数をクラスメンバに渡す(これならOK)。 + + + // 並列度が1ならシングルスレッド、2以上ならマルチスレッドで転送する。 + // → CPUが1つの場合、わざわざスレッドプールのスレッドで処理するのは無駄。 + + if( CDirectShow.n並列度 == 1 ) + { + if( bARGB32 ) + this.tライン描画ARGB32( 0 ); + else + this.tライン描画XRGB32( 0 ); + } + else + { + // 転送開始。 + + var ar = new IAsyncResult[ CDirectShow.n並列度 ]; + for( int i = 0; i < CDirectShow.n並列度; i++ ) + { + ar[ i ] = ( bARGB32 ) ? + this.dgライン描画ARGB32[ i ].BeginInvoke( i, null, null ) : + this.dgライン描画XRGB32[ i ].BeginInvoke( i, null, null ); + } + + + // 転送完了待ち。 + + for( int i = 0; i < CDirectShow.n並列度; i++ ) + { + if( bARGB32 ) + this.dgライン描画ARGB32[ i ].EndInvoke( ar[ i ] ); + else + this.dgライン描画XRGB32[ i ].EndInvoke( ar[ i ] ); + } + } + + this.ptrSnap = null; + this.ptrTexture = null; + //----------------- + #endregion + + //----------------- + #endregion + } + } + finally + { + texture.texture.UnlockRectangle( 0 ); + } + } + + private IntPtr ip = IntPtr.Zero; + + public static void tグラフを解析しデバッグ出力する( IGraphBuilder graphBuilder ) + { + if( graphBuilder == null ) + { + Debug.WriteLine( "指定されたグラフが null です。" ); + return; + } + + int hr = 0; + + IEnumFilters eFilters; + hr = graphBuilder.EnumFilters( out eFilters ); + DsError.ThrowExceptionForHR( hr ); + { + var filters = new IBaseFilter[ 1 ]; + while( eFilters.Next( 1, filters, IntPtr.Zero ) == CWin32.S_OK ) + { + FilterInfo filterInfo; + hr = filters[ 0 ].QueryFilterInfo( out filterInfo ); + DsError.ThrowExceptionForHR( hr ); + { + Debug.WriteLine( filterInfo.achName ); // フィルタ名表示。 + if( filterInfo.pGraph != null ) + C共通.tCOMオブジェクトを解放する( ref filterInfo.pGraph ); + } + + IEnumPins ePins; + hr = filters[ 0 ].EnumPins( out ePins ); + DsError.ThrowExceptionForHR( hr ); + { + var pins = new IPin[ 1 ]; + while( ePins.Next( 1, pins, IntPtr.Zero ) == CWin32.S_OK ) + { + PinInfo pinInfo; + hr = pins[ 0 ].QueryPinInfo( out pinInfo ); + DsError.ThrowExceptionForHR( hr ); + { + Debug.Write( " " + pinInfo.name ); // ピン名表示。 + Debug.Write( ( pinInfo.dir == PinDirection.Input ) ? " ← " : " → " ); + + IPin connectPin; + hr = pins[ 0 ].ConnectedTo( out connectPin ); + if( hr != CWin32.S_OK ) + Debug.WriteLine( "(未接続)" ); + else + { + DsError.ThrowExceptionForHR( hr ); + + PinInfo connectPinInfo; + hr = connectPin.QueryPinInfo( out connectPinInfo ); + DsError.ThrowExceptionForHR( hr ); + { + FilterInfo connectFilterInfo; + hr = connectPinInfo.filter.QueryFilterInfo( out connectFilterInfo ); + DsError.ThrowExceptionForHR( hr ); + { + Debug.Write( "[" + connectFilterInfo.achName + "]." ); // 接続先フィルタ名 + + if( connectFilterInfo.pGraph != null ) + C共通.tCOMオブジェクトを解放する( ref connectFilterInfo.pGraph ); + } + + Debug.WriteLine( connectPinInfo.name ); // 接続先ピン名 + if( connectPinInfo.filter != null ) + C共通.tCOMオブジェクトを解放する( ref connectPinInfo.filter ); + DsUtils.FreePinInfo( connectPinInfo ); + } + C共通.tCOMオブジェクトを解放する( ref connectPin ); + } + if( pinInfo.filter != null ) + C共通.tCOMオブジェクトを解放する( ref pinInfo.filter ); + DsUtils.FreePinInfo( pinInfo ); + } + C共通.tCOMオブジェクトを解放する( ref pins[ 0 ] ); + } + } + C共通.tCOMオブジェクトを解放する( ref ePins ); + + C共通.tCOMオブジェクトを解放する( ref filters[ 0 ] ); + } + } + C共通.tCOMオブジェクトを解放する( ref eFilters ); + + Debug.Flush(); + } + public static void tオーディオレンダラをNullレンダラに変えてフォーマットを取得する( IGraphBuilder graphBuilder, out WaveFormat wfx, out byte[] wfx拡張データ ) + { + int hr = 0; + + IBaseFilter audioRenderer = null; + IPin rendererInputPin = null; + IPin rendererConnectedOutputPin = null; + IBaseFilter nullRenderer = null; + IPin nullRendererInputPin = null; + wfx = null; + wfx拡張データ = new byte[ 0 ]; + + try + { + // audioRenderer を探す。 + + audioRenderer = CDirectShow.tオーディオレンダラを探して返す( graphBuilder ); + if( audioRenderer == null ) + return; // なかった + + #region [ 音量ゼロで一度再生する。(オーディオレンダラの入力ピンMediaTypeが、接続時とは異なる「正しいもの」に変わる可能性があるため。)] + //----------------- + { + // ここに来た時点で、グラフのビデオレンダラは無効化(NullRendererへの置換や除去など)しておくこと。 + // さもないと、StopWhenReady() 時に一瞬だけ Activeウィンドウが表示されてしまう。 + + var mediaCtrl = (IMediaControl) graphBuilder; + var basicAudio = (IBasicAudio) graphBuilder; + + basicAudio.put_Volume( -10000 ); // 最小音量 + + + // グラフを再生してすぐ止める。(Paused → Stopped へ遷移する) + + mediaCtrl.StopWhenReady(); + + + // グラフが Stopped に遷移完了するまで待つ。(StopWhenReady() はグラフが Stopped になるのを待たずに帰ってくる。) + + FilterState fs = FilterState.Paused; + hr = CWin32.S_FALSE; + while( fs != FilterState.Stopped || hr != CWin32.S_OK ) + hr = mediaCtrl.GetState( 10, out fs ); + + + // 終了処理。 + + basicAudio.put_Volume( 0 ); // 最大音量 + + basicAudio = null; + mediaCtrl = null; + } + //----------------- + #endregion + + // audioRenderer の入力ピンを探す。 + + rendererInputPin = t最初の入力ピンを探して返す( audioRenderer ); + if( rendererInputPin == null ) + return; + + + // WAVEフォーマットを取得し、wfx 引数へ格納する。 + + var type = new AMMediaType(); + hr = rendererInputPin.ConnectionMediaType( type ); + DsError.ThrowExceptionForHR( hr ); + try + { + wfx = new WaveFormat(); + + #region [ type.formatPtr から wfx に、拡張領域を除くデータをコピーする。] + //----------------- + var wfxTemp = new WaveFormatEx(); // SlimDX.Multimedia.WaveFormat は Marshal.PtrToStructure() で使えないので、それが使える DirectShowLib.WaveFormatEx を介して取得する。(面倒…) + Marshal.PtrToStructure( type.formatPtr, (object) wfxTemp ); + wfx = WaveFormat.CreateCustomFormat((WaveFormatEncoding)wfxTemp.wFormatTag, wfxTemp.nSamplesPerSec, wfxTemp.nChannels, wfxTemp.nAvgBytesPerSec, wfxTemp.nBlockAlign, wfxTemp.wBitsPerSample); + //----------------- + #endregion + #region [ 拡張領域が存在するならそれを wfx拡張データ に格納する。 ] + //----------------- + int nWaveFormatEx本体サイズ = 16 + 2; // sizeof( WAVEFORMAT ) + sizof( WAVEFORMATEX.cbSize ) + int nはみ出しサイズbyte = type.formatSize - nWaveFormatEx本体サイズ; + + if( nはみ出しサイズbyte > 0 ) + { + wfx拡張データ = new byte[ nはみ出しサイズbyte ]; + var hGC = GCHandle.Alloc( wfx拡張データ, GCHandleType.Pinned ); // 動くなよー + unsafe + { + byte* src = (byte*) type.formatPtr.ToPointer(); + byte* dst = (byte*) hGC.AddrOfPinnedObject().ToPointer(); + CWin32.CopyMemory( dst, src + nWaveFormatEx本体サイズ, (uint) nはみ出しサイズbyte ); + } + hGC.Free(); + } + //----------------- + #endregion + } + finally + { + if( type != null ) + DsUtils.FreeAMMediaType( type ); + } + + + // audioRenderer につながる出力ピンを探す。 + + hr = rendererInputPin.ConnectedTo( out rendererConnectedOutputPin ); + DsError.ThrowExceptionForHR( hr ); + + + // audioRenderer をグラフから切断する。 + + rendererInputPin.Disconnect(); + rendererConnectedOutputPin.Disconnect(); + + + // audioRenderer をグラフから除去する。 + + hr = graphBuilder.RemoveFilter( audioRenderer ); + DsError.ThrowExceptionForHR( hr ); + + + // nullRenderer を作成し、グラフに追加する。 + + nullRenderer = (IBaseFilter) new NullRenderer(); + hr = graphBuilder.AddFilter( nullRenderer, "Audio Null Renderer" ); + DsError.ThrowExceptionForHR( hr ); + + + // nullRenderer の入力ピンを探す。 + + hr = nullRenderer.FindPin( "In", out nullRendererInputPin ); + DsError.ThrowExceptionForHR( hr ); + + + // nullRenderer をグラフに接続する。 + + hr = rendererConnectedOutputPin.Connect( nullRendererInputPin, null ); + DsError.ThrowExceptionForHR( hr ); + } + finally + { + C共通.tCOMオブジェクトを解放する( ref nullRendererInputPin ); + C共通.tCOMオブジェクトを解放する( ref nullRenderer ); + C共通.tCOMオブジェクトを解放する( ref rendererConnectedOutputPin ); + C共通.tCOMオブジェクトを解放する( ref rendererInputPin ); + C共通.tCOMオブジェクトを解放する( ref audioRenderer ); + } + } + public static void ConnectNullRendererFromSampleGrabber(IGraphBuilder graphBuilder, IBaseFilter sampleGrabber) + { + int hr = 0; + IBaseFilter videoRenderer = null; + IPin videoRendererInputPin = null; + IBaseFilter audioRenderer = null; + IPin audioRendererInputPin = null; + IPin connectedOutputPin = null; + IPin nullRendererInputPin = null; + IPin grabberOutputPin = null; + IPin grabberOutputConnectedPin = null; + + try + { + // videoRenderer を探す。 + CDirectShow.SearchMMRenderers(graphBuilder, out videoRenderer, out videoRendererInputPin, out audioRenderer, out audioRendererInputPin); + if (videoRenderer != null && videoRendererInputPin != null) + { + // 既存のレンダラにつながっているピン対を取得 + hr = videoRendererInputPin.ConnectedTo(out connectedOutputPin); + DsError.ThrowExceptionForHR(hr); + + // それらを切断。前段の出力ピンとビデオレンダラの入力ピンを切断する。双方向から切断しないとグラフから切り離されないので注意。 + hr = videoRendererInputPin.Disconnect(); + DsError.ThrowExceptionForHR(hr); + hr = connectedOutputPin.Disconnect(); + DsError.ThrowExceptionForHR(hr); + + // ビデオレンダラをグラフから除去し、ヌルレンダラを追加 + hr = graphBuilder.RemoveFilter(videoRenderer); + DsError.ThrowExceptionForHR(hr); + IBaseFilter nullRenderer = new NullRenderer() as IBaseFilter; + hr = graphBuilder.AddFilter(nullRenderer, "Video Null Renderer"); + DsError.ThrowExceptionForHR(hr); + + // nullRenderer の入力ピンを探す。 + hr = nullRenderer.FindPin("In", out nullRendererInputPin); + DsError.ThrowExceptionForHR(hr); + hr = nullRendererInputPin.Disconnect(); + DsError.ThrowExceptionForHR(hr); + + // グラバの Out と Null Renderer の In を接続する。 + hr = sampleGrabber.FindPin("Out", out grabberOutputPin); + DsError.ThrowExceptionForHR(hr); + hr = grabberOutputPin.ConnectedTo(out grabberOutputConnectedPin); + // grabberのoutに何もつながっていない場合(つまり、grabberのoutとrendererのinが直結している場合)は、 + // grabberのoutと、別のフィルタのinの間の切断処理を行わない。 + if (hr != CWin32.S_OK) + { + //Debug.WriteLine("grabber out: 未接続:"); + } + else + { + hr = grabberOutputConnectedPin.Disconnect(); + DsError.ThrowExceptionForHR(hr); + hr = grabberOutputPin.Disconnect(); + DsError.ThrowExceptionForHR(hr); + } + hr = grabberOutputPin.Connect(nullRendererInputPin, null); + DsError.ThrowExceptionForHR(hr); + } + + if ( audioRenderer != null && audioRendererInputPin != null ) + { + C共通.tCOMオブジェクトを解放する(ref connectedOutputPin); + + // 既存のレンダラにつながっているピン対を取得 + hr = audioRendererInputPin.ConnectedTo(out connectedOutputPin); + DsError.ThrowExceptionForHR(hr); + + // それらを切断。前段の出力ピンとビデオレンダラの入力ピンを切断する。双方向から切断しないとグラフから切り離されないので注意。 + hr = audioRendererInputPin.Disconnect(); + DsError.ThrowExceptionForHR(hr); + hr = connectedOutputPin.Disconnect(); + DsError.ThrowExceptionForHR(hr); + + // ビデオレンダラをグラフから除去し、ヌルレンダラを追加 + hr = graphBuilder.RemoveFilter(audioRenderer); + DsError.ThrowExceptionForHR(hr); + IBaseFilter nullRenderer = new NullRenderer() as IBaseFilter; + hr = graphBuilder.AddFilter(nullRenderer, "Audio Null Renderer"); + DsError.ThrowExceptionForHR(hr); + + C共通.tCOMオブジェクトを解放する(ref nullRendererInputPin); + hr = nullRenderer.FindPin("In", out nullRendererInputPin); + DsError.ThrowExceptionForHR(hr); + hr = connectedOutputPin.Connect(nullRendererInputPin, null); + DsError.ThrowExceptionForHR(hr); + } + } + finally + { + C共通.tCOMオブジェクトを解放する(ref connectedOutputPin); + C共通.tCOMオブジェクトを解放する(ref videoRendererInputPin); + C共通.tCOMオブジェクトを解放する(ref videoRenderer); + C共通.tCOMオブジェクトを解放する(ref audioRenderer); + C共通.tCOMオブジェクトを解放する(ref audioRendererInputPin); + C共通.tCOMオブジェクトを解放する(ref nullRendererInputPin); + C共通.tCOMオブジェクトを解放する(ref grabberOutputPin); + C共通.tCOMオブジェクトを解放する(ref grabberOutputConnectedPin); + } + } + private static void SearchMMRenderers( IFilterGraph graph, out IBaseFilter videoRenderer, out IPin inputVPin, out IBaseFilter audioRenderer, out IPin inputAPin ) + { + int hr = 0; + string strVRフィルタ名 = null; + string strVRピンID = null; + string strARフィルタ名 = null; + string strARピンID = null; + + // ビデオレンダラと入力ピンを探し、そのフィルタ名とピンIDを控える。 + + IEnumFilters eFilters; + hr = graph.EnumFilters( out eFilters ); + DsError.ThrowExceptionForHR( hr ); + try + { + var filters = new IBaseFilter[ 1 ]; + while( eFilters.Next( 1, filters, IntPtr.Zero ) == CWin32.S_OK ) + { + try + { + #region [ 出力ピンがない(レンダラである)ことを確認する。] + //----------------- + IEnumPins ePins; + bool b出力ピンがある = false; + + hr = filters[ 0 ].EnumPins( out ePins ); + DsError.ThrowExceptionForHR( hr ); + try + { + var pins = new IPin[ 1 ]; + while( ePins.Next( 1, pins, IntPtr.Zero ) == CWin32.S_OK ) + { + try + { + if( b出力ピンがある ) + continue; + + PinDirection dir; + hr = pins[ 0 ].QueryDirection( out dir ); + DsError.ThrowExceptionForHR( hr ); + if( dir == PinDirection.Output ) + b出力ピンがある = true; + } + finally + { + C共通.tCOMオブジェクトを解放する( ref pins[ 0 ] ); + } + } + } + finally + { + C共通.tCOMオブジェクトを解放する( ref ePins ); + } + + if( b出力ピンがある ) + continue; // 次のフィルタへ + + //----------------- + #endregion + #region [ 接続中の入力ピンが MEDIATYPE_Video に対応していたら、フィルタ名とピンIDを取得する。] + //----------------- + hr = filters[ 0 ].EnumPins( out ePins ); + DsError.ThrowExceptionForHR( hr ); + try + { + var pins = new IPin[ 1 ]; + while( ePins.Next( 1, pins, IntPtr.Zero ) == CWin32.S_OK ) + { + try + { + if( !string.IsNullOrEmpty( strVRフィルタ名 ) ) + continue; + + var mediaType = new AMMediaType(); + + #region [ 現在接続中の MediaType を取得。つながってなければ次のピンへ。] + //----------------- + hr = pins[ 0 ].ConnectionMediaType( mediaType ); + if( hr == CWin32.VFW_E_NOT_CONNECTED ) + continue; // つながってない + DsError.ThrowExceptionForHR( hr ); + //----------------- + #endregion + + try + { + if( mediaType.majorType.Equals( MediaType.Video ) ) + { + #region [ フィルタ名取得!] + //----------------- + FilterInfo filterInfo; + hr = filters[ 0 ].QueryFilterInfo( out filterInfo ); + DsError.ThrowExceptionForHR( hr ); + strVRフィルタ名 = filterInfo.achName; + C共通.tCOMオブジェクトを解放する( ref filterInfo.pGraph ); + //----------------- + #endregion + #region [ ピンID取得!] + //----------------- + hr = pins[ 0 ].QueryId( out strVRピンID ); + DsError.ThrowExceptionForHR( hr ); + //----------------- + #endregion + } + else if( mediaType.majorType.Equals( MediaType.Audio ) ) + { + FilterInfo filterInfo; + hr = filters[0].QueryFilterInfo(out filterInfo); + DsError.ThrowExceptionForHR(hr); + strARフィルタ名 = filterInfo.achName; + C共通.tCOMオブジェクトを解放する(ref filterInfo.pGraph); + hr = pins[0].QueryId(out strARピンID); + DsError.ThrowExceptionForHR(hr); + } + } + finally + { + DsUtils.FreeAMMediaType( mediaType ); + } + } + finally + { + C共通.tCOMオブジェクトを解放する( ref pins[ 0 ] ); + } + } + } + finally + { + C共通.tCOMオブジェクトを解放する( ref ePins ); + } + + //----------------- + #endregion + } + finally + { + C共通.tCOMオブジェクトを解放する( ref filters[ 0 ] ); + } + } + } + finally + { + C共通.tCOMオブジェクトを解放する( ref eFilters ); + } + + + // 改めてフィルタ名とピンIDからこれらのインターフェースを取得し、戻り値として返す。 + + videoRenderer = null; + inputVPin = null; + audioRenderer = null; + inputAPin = null; + + if( !string.IsNullOrEmpty( strVRフィルタ名 ) ) + { + hr = graph.FindFilterByName( strVRフィルタ名, out videoRenderer ); + DsError.ThrowExceptionForHR( hr ); + + hr = videoRenderer.FindPin( strVRピンID, out inputVPin ); + DsError.ThrowExceptionForHR( hr ); + } + + if( !string.IsNullOrEmpty( strARフィルタ名 ) ) + { + hr = graph.FindFilterByName(strARフィルタ名, out audioRenderer); + DsError.ThrowExceptionForHR(hr); + + hr = audioRenderer.FindPin(strARピンID, out inputAPin); + DsError.ThrowExceptionForHR(hr); + } + } + + public static void tビデオレンダラをグラフから除去する( IGraphBuilder graphBuilder ) + { + int hr = 0; + + IBaseFilter videoRenderer = null; + IPin renderInputPin = null; + IPin connectedOutputPin = null; + + try + { + // videoRenderer を探す。 + + CDirectShow.tビデオレンダラとその入力ピンを探して返す( graphBuilder, out videoRenderer, out renderInputPin ); + if( videoRenderer == null || renderInputPin == null ) + return; // なかった + + #region [ renderInputPin へ接続している前段の出力ピン connectedOutputPin を探す。 ] + //----------------- + renderInputPin.ConnectedTo( out connectedOutputPin ); + //----------------- + #endregion + + if( connectedOutputPin == null ) + return; // なかった + + + // 前段の出力ピンとビデオレンダラの入力ピンを切断する。双方向から切断しないとグラフから切り離されないので注意。 + + renderInputPin.Disconnect(); + connectedOutputPin.Disconnect(); + + + // ビデオレンダラをグラフから除去。 + + graphBuilder.RemoveFilter( videoRenderer ); + } + finally + { + C共通.tCOMオブジェクトを解放する( ref connectedOutputPin ); + C共通.tCOMオブジェクトを解放する( ref renderInputPin ); + C共通.tCOMオブジェクトを解放する( ref videoRenderer ); + } + } + + private static IPin t最初の入力ピンを探して返す( IBaseFilter baseFilter ) + { + int hr = 0; + + IPin firstInputPin = null; + + IEnumPins ePins; + hr = baseFilter.EnumPins( out ePins ); + DsError.ThrowExceptionForHR( hr ); + try + { + var pins = new IPin[ 1 ]; + while( ePins.Next( 1, pins, IntPtr.Zero ) == CWin32.S_OK ) + { + PinInfo pinfo = new PinInfo() { filter = null }; + try + { + hr = pins[ 0 ].QueryPinInfo( out pinfo ); + DsError.ThrowExceptionForHR( hr ); + + if( pinfo.dir == PinDirection.Input ) + { + firstInputPin = pins[ 0 ]; + break; + } + } + finally + { + if( pinfo.filter != null ) + C共通.tCOMオブジェクトを解放する( ref pinfo.filter ); + DsUtils.FreePinInfo( pinfo ); + + if( firstInputPin == null ) + C共通.tCOMオブジェクトを解放する( ref pins[ 0 ] ); + } + } + } + finally + { + C共通.tCOMオブジェクトを解放する( ref ePins ); + } + + return firstInputPin; + } + private static void tビデオレンダラとその入力ピンを探して返す( IFilterGraph graph, out IBaseFilter videoRenderer, out IPin inputPin ) + { + int hr = 0; + string strフィルタ名 = null; + string strピンID = null; + + + // ビデオレンダラと入力ピンを探し、そのフィルタ名とピンIDを控える。 + + IEnumFilters eFilters; + hr = graph.EnumFilters( out eFilters ); + DsError.ThrowExceptionForHR( hr ); + try + { + var filters = new IBaseFilter[ 1 ]; + while( eFilters.Next( 1, filters, IntPtr.Zero ) == CWin32.S_OK ) + { + try + { + #region [ 出力ピンがない(レンダラである)ことを確認する。] + //----------------- + IEnumPins ePins; + bool b出力ピンがある = false; + + hr = filters[ 0 ].EnumPins( out ePins ); + DsError.ThrowExceptionForHR( hr ); + try + { + var pins = new IPin[ 1 ]; + while( ePins.Next( 1, pins, IntPtr.Zero ) == CWin32.S_OK ) + { + try + { + if( b出力ピンがある ) + continue; + + PinDirection dir; + hr = pins[ 0 ].QueryDirection( out dir ); + DsError.ThrowExceptionForHR( hr ); + if( dir == PinDirection.Output ) + b出力ピンがある = true; + } + finally + { + C共通.tCOMオブジェクトを解放する( ref pins[ 0 ] ); + } + } + } + finally + { + C共通.tCOMオブジェクトを解放する( ref ePins ); + } + + if( b出力ピンがある ) + continue; // 次のフィルタへ + + //----------------- + #endregion + #region [ 接続中の入力ピンが MEDIATYPE_Video に対応していたら、フィルタ名とピンIDを取得する。] + //----------------- + hr = filters[ 0 ].EnumPins( out ePins ); + DsError.ThrowExceptionForHR( hr ); + try + { + var pins = new IPin[ 1 ]; + while( ePins.Next( 1, pins, IntPtr.Zero ) == CWin32.S_OK ) + { + try + { + if( !string.IsNullOrEmpty( strフィルタ名 ) ) + continue; + + var mediaType = new AMMediaType(); + + #region [ 現在接続中の MediaType を取得。つながってなければ次のピンへ。] + //----------------- + hr = pins[ 0 ].ConnectionMediaType( mediaType ); + if( hr == CWin32.VFW_E_NOT_CONNECTED ) + continue; // つながってない + DsError.ThrowExceptionForHR( hr ); + //----------------- + #endregion + + try + { + if( mediaType.majorType.Equals( MediaType.Video ) ) + { + #region [ フィルタ名取得!] + //----------------- + FilterInfo filterInfo; + hr = filters[ 0 ].QueryFilterInfo( out filterInfo ); + DsError.ThrowExceptionForHR( hr ); + strフィルタ名 = filterInfo.achName; + C共通.tCOMオブジェクトを解放する( ref filterInfo.pGraph ); + //----------------- + #endregion + #region [ ピンID取得!] + //----------------- + hr = pins[ 0 ].QueryId( out strピンID ); + DsError.ThrowExceptionForHR( hr ); + //----------------- + #endregion + + continue; // 次のピンへ。 + } + } + finally + { + DsUtils.FreeAMMediaType( mediaType ); + } + } + finally + { + C共通.tCOMオブジェクトを解放する( ref pins[ 0 ] ); + } + } + } + finally + { + C共通.tCOMオブジェクトを解放する( ref ePins ); + } + + //----------------- + #endregion + } + finally + { + C共通.tCOMオブジェクトを解放する( ref filters[ 0 ] ); + } + } + } + finally + { + C共通.tCOMオブジェクトを解放する( ref eFilters ); + } + + + // 改めてフィルタ名とピンIDからこれらのインターフェースを取得し、戻り値として返す。 + + videoRenderer = null; + inputPin = null; + + if( !string.IsNullOrEmpty( strフィルタ名 ) ) + { + hr = graph.FindFilterByName( strフィルタ名, out videoRenderer ); + DsError.ThrowExceptionForHR( hr ); + + hr = videoRenderer.FindPin( strピンID, out inputPin ); + DsError.ThrowExceptionForHR( hr ); + } + } + private static IBaseFilter tオーディオレンダラを探して返す( IFilterGraph graph ) + { + int hr = 0; + IBaseFilter audioRenderer = null; + + IEnumFilters eFilters; + hr = graph.EnumFilters( out eFilters ); + DsError.ThrowExceptionForHR( hr ); + try + { + var filters = new IBaseFilter[ 1 ]; + while( eFilters.Next( 1, filters, IntPtr.Zero ) == CWin32.S_OK ) + { + if( ( filters[ 0 ] as IAMAudioRendererStats ) != null ) + { + audioRenderer = filters[ 0 ]; + break; + } + + C共通.tCOMオブジェクトを解放する( ref filters[ 0 ] ); + } + } + finally + { + C共通.tCOMオブジェクトを解放する( ref eFilters ); + } + return audioRenderer; + } + + + #region [ 静的インスタンス管理 ] + //----------------- + public const int nインスタンスIDの最大数 = 100; + protected static Dictionary dicインスタンス = new Dictionary(); // <インスタンスID, そのIDを持つインスタンス> + + protected static void tインスタンスを登録する( CDirectShow ds ) + { + for( int i = 1; i < CDirectShow.nインスタンスIDの最大数; i++ ) + { + if( !CDirectShow.dicインスタンス.ContainsKey( i ) ) // 空いている番号を使う。 + { + ds.nインスタンスID = i; + CDirectShow.dicインスタンス.Add( i, ds ); + break; + } + } + } + protected static void tインスタンスを解放する( int nインスタンスID ) + { + if( CDirectShow.dicインスタンス.ContainsKey( nインスタンスID ) ) + CDirectShow.dicインスタンス.Remove( nインスタンスID ); + } + //----------------- + #endregion + + #region [ Dispose-Finalize パターン実装 ] + //----------------- + public virtual void Dispose() + { + this.Dispose( true ); + GC.SuppressFinalize( this ); // ちゃんと Dispose されたので、ファイナライズ不要であることを CLR に伝える。 + } + protected virtual void Dispose( bool bManagedリソースも解放する ) + { + if( bManagedリソースも解放する ) + { + #region [ ROTから解放する。] + //----------------- +#if DEBUG + C共通.tDisposeする( ref this.rot ); +#endif + //----------------- + #endregion + + CDirectShow.tインスタンスを解放する( this.nインスタンスID ); + } + + #region [ インターフェース参照をなくし、COMオブジェクトを解放する。 ] + //----------------- + if( this.ip != IntPtr.Zero ) + { + Marshal.FreeCoTaskMem( this.ip ); + this.ip = IntPtr.Zero; + } + + if( this.MediaCtrl != null ) + { + this.MediaCtrl.Stop(); + this.MediaCtrl = null; + } + + if( this.MediaEventEx != null ) + { + this.MediaEventEx.SetNotifyWindow( IntPtr.Zero, 0, IntPtr.Zero ); + this.MediaEventEx = null; + } + + if( this.MediaSeeking != null ) + this.MediaSeeking = null; + + if( this.BasicAudio != null ) + this.BasicAudio = null; + + C共通.tCOMオブジェクトを解放する( ref this.nullRenderer ); + C共通.tCOMオブジェクトを解放する( ref this.memoryRenderer ); + C共通.tCOMオブジェクトを解放する( ref this.memoryRendererObject ); + C共通.tCOMオブジェクトを解放する( ref this.graphBuilder ); + //----------------- + #endregion + + C共通.t完全なガベージコレクションを実施する(); + } + ~CDirectShow() + { + // ファイナライザが呼ばれたということは、Dispose() されなかったということ。 + // この場合、Managed リソースは先にファイナライズされている可能性があるので、Unmamaed リソースのみを解放する。 + + this.Dispose( false ); + } + //----------------- + #endregion + + #region [ protected ] + //----------------- + protected MemoryRenderer memoryRendererObject = null; + protected IMemoryRenderer memoryRenderer = null; + protected IBaseFilter nullRenderer = null; + protected int n再生一時停止呼び出しの累積回数 = 0; + //----------------- + #endregion + + #region [ private ] + //----------------- + private int _n音量 = 100; +#if DEBUG + private DsROTEntry rot = null; +#endif + + // 可能な数のスレッドを使用して画像を転送する。大きい画像ほど有効。多すぎるとプール内のスレッドが空くまで待たされるので注意。 + private static int n並列度 = 0; // 0 の場合、最初の生成時に並列度を決定する。 + + private DGライン描画[] dgライン描画ARGB32; + private DGライン描画[] dgライン描画XRGB32; + private unsafe delegate void DGライン描画( int n ); + private unsafe byte* ptrSnap = null; + private unsafe UInt32** ptrTexture = null; + + private unsafe void tライン描画XRGB32( int n ) + { + // Snap は RGB32、Textureは X8R8G8B8 + + UInt32* ptrTexture = this.ptrTexture[ n ]; + for( int y = n; y < this.n高さpx; y += CDirectShow.n並列度 ) + { + byte* ptrPixel = ptrSnap + ( ( ( this.n高さpx - y ) - 1 ) * this.nスキャンライン幅byte ); + + // アルファ無視なので一括コピー。CopyMemory() は自前でループ展開するよりも速い。 + CWin32.CopyMemory( (void*) ptrTexture, (void*) ptrPixel, (uint) ( this.n幅px * 4 ) ); + + ptrTexture += this.n幅px * CDirectShow.n並列度; + } + } + private unsafe void tライン描画ARGB32( int n ) + { + // Snap は RGB32、Textureは A8R8G8B8 + + UInt32* ptrTexture = this.ptrTexture[ n ]; + for( int y = n; y < this.n高さpx; y += CDirectShow.n並列度 ) + { + UInt32* ptrPixel = (UInt32*) ( ptrSnap + ( ( ( this.n高さpx - y ) - 1 ) * this.nスキャンライン幅byte ) ); + + //for( int x = 0; x < this.n幅px; x++ ) + // *( ptrTexture + x ) = 0xFF000000 | *ptrPixel++; + // ↓ループ展開により高速化。160fps の曲が 200fps まで上がった。 + + if( this.n幅px == 0 ) goto LEXIT; + UInt32* pt = ptrTexture; + UInt32 nAlpha = 0xFF000000; + int d = ( this.n幅px % 32 ); + + switch( d ) + { + case 1: goto L031; + case 2: goto L030; + case 3: goto L029; + case 4: goto L028; + case 5: goto L027; + case 6: goto L026; + case 7: goto L025; + case 8: goto L024; + case 9: goto L023; + case 10: goto L022; + case 11: goto L021; + case 12: goto L020; + case 13: goto L019; + case 14: goto L018; + case 15: goto L017; + case 16: goto L016; + case 17: goto L015; + case 18: goto L014; + case 19: goto L013; + case 20: goto L012; + case 21: goto L011; + case 22: goto L010; + case 23: goto L009; + case 24: goto L008; + case 25: goto L007; + case 26: goto L006; + case 27: goto L005; + case 28: goto L004; + case 29: goto L003; + case 30: goto L002; + case 31: goto L001; + } + + L000: *pt++ = nAlpha | *ptrPixel++; + L001: *pt++ = nAlpha | *ptrPixel++; + L002: *pt++ = nAlpha | *ptrPixel++; + L003: *pt++ = nAlpha | *ptrPixel++; + L004: *pt++ = nAlpha | *ptrPixel++; + L005: *pt++ = nAlpha | *ptrPixel++; + L006: *pt++ = nAlpha | *ptrPixel++; + L007: *pt++ = nAlpha | *ptrPixel++; + L008: *pt++ = nAlpha | *ptrPixel++; + L009: *pt++ = nAlpha | *ptrPixel++; + L010: *pt++ = nAlpha | *ptrPixel++; + L011: *pt++ = nAlpha | *ptrPixel++; + L012: *pt++ = nAlpha | *ptrPixel++; + L013: *pt++ = nAlpha | *ptrPixel++; + L014: *pt++ = nAlpha | *ptrPixel++; + L015: *pt++ = nAlpha | *ptrPixel++; + L016: *pt++ = nAlpha | *ptrPixel++; + L017: *pt++ = nAlpha | *ptrPixel++; + L018: *pt++ = nAlpha | *ptrPixel++; + L019: *pt++ = nAlpha | *ptrPixel++; + L020: *pt++ = nAlpha | *ptrPixel++; + L021: *pt++ = nAlpha | *ptrPixel++; + L022: *pt++ = nAlpha | *ptrPixel++; + L023: *pt++ = nAlpha | *ptrPixel++; + L024: *pt++ = nAlpha | *ptrPixel++; + L025: *pt++ = nAlpha | *ptrPixel++; + L026: *pt++ = nAlpha | *ptrPixel++; + L027: *pt++ = nAlpha | *ptrPixel++; + L028: *pt++ = nAlpha | *ptrPixel++; + L029: *pt++ = nAlpha | *ptrPixel++; + L030: *pt++ = nAlpha | *ptrPixel++; + L031: *pt++ = nAlpha | *ptrPixel++; + if( ( pt - ptrTexture ) < this.n幅px ) goto L000; + + LEXIT: + ptrTexture += this.n幅px * CDirectShow.n並列度; + } + } + //----------------- + #endregion + } +} diff --git a/FDK19/コード/05.DirectShow/MemoryRenderer.cs b/FDK19/コード/05.DirectShow/MemoryRenderer.cs new file mode 100644 index 00000000..06b4f24d --- /dev/null +++ b/FDK19/コード/05.DirectShow/MemoryRenderer.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Runtime.InteropServices; + +namespace FDK +{ + using HRESULT = Int32; + using BOOL = Int32; + + [ComImport, Guid( "CE3CE3EE-5C4E-4BDC-A467-C068E1FC3DA5" )] + public class MemoryRenderer // 何も継承してはならない。 + { + // 何も記述してはならない。 + // 代わりに、MemoryRenderer の生成後、キャストで↓のインターフェースを取得する。 + } + + [ComImport, Guid( "FFAA4A1A-D63D-4688-9C66-D18CA7B99488" ), InterfaceType( ComInterfaceType.InterfaceIsIUnknown )] + public interface IMemoryRenderer + { + [PreserveSig] + HRESULT GetWidth( out long nWidht ); + + [PreserveSig] + HRESULT GetHeight( out long nHeight ); + + [PreserveSig] + HRESULT GetBufferSize( out long nBufferSize ); + + [PreserveSig] + HRESULT GetCurrentBuffer( IntPtr pBuffer, long nBufferSize ); + + [PreserveSig] + HRESULT IsBottomUp( out BOOL bBottomUp ); + } +} diff --git a/FDK19/コード/06.Tempo/CBeatDetect.cs b/FDK19/コード/06.Tempo/CBeatDetect.cs new file mode 100644 index 00000000..4b3b9734 --- /dev/null +++ b/FDK19/コード/06.Tempo/CBeatDetect.cs @@ -0,0 +1,209 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Diagnostics; +using System.Threading; +using Un4seen.Bass; +//using Un4seen.BassAsio; +//using Un4seen.BassWasapi; +//using Un4seen.Bass.AddOn.Mix; +using Un4seen.Bass.AddOn.Fx; + +namespace FDK +{ + public class CBeatDetect : IDisposable + { + public struct stBeatPos + { + public float fBeatTime; + public int n小節番号; + public int nGrid; + public int n小節内Grid; + public bool b無効; // + public bool bレーン表示する; // 未使用 + + public stBeatPos( float _fBeatTime, int _n小節番号, int _nGrid, int _n小節内Grid, bool _b無効, bool _bレーン表示する ) + { + fBeatTime = _fBeatTime; + n小節番号 = _n小節番号; + nGrid = _nGrid; + n小節内Grid = _n小節内Grid; + b無効 = _b無効; + bレーン表示する= _bレーン表示する; + } + } + + #region [ コンストラクタ ] + public CBeatDetect() + { + Initialize(); + } + public CBeatDetect( string _filename ) + { + this.filename = _filename; + Initialize(); + } + #endregion + #region [ 初期化(コンストラクタから呼び出される) ] + private void Initialize() + { + if ( this.listBeatPositions == null ) + { + this.listBeatPositions = new List(); + } + + #region [ BASS registration ] + // BASS.NET ユーザ登録(BASSスプラッシュが非表示になる)。 + + BassNet.Registration( "dtx2013@gmail.com", "2X9181017152222" ); + #endregion + #region [ BASS Version Check ] + // BASS のバージョンチェック。 + int nBASSVersion = Utils.HighWord( Bass.BASS_GetVersion() ); + if ( nBASSVersion != Bass.BASSVERSION ) + throw new DllNotFoundException( string.Format( "bass.dll のバージョンが異なります({0})。このプログラムはバージョン{1}で動作します。", nBASSVersion, Bass.BASSVERSION ) ); + + int nBASSFXVersion = Utils.HighWord( BassFx.BASS_FX_GetVersion() ); + if ( nBASSFXVersion != BassFx.BASSFXVERSION ) + throw new DllNotFoundException( string.Format( "bass_fx.dll のバージョンが異なります({0})。このプログラムはバージョン{1}で動作します。", nBASSFXVersion, BassFx.BASSFXVERSION ) ); + #endregion + + #region [ BASS の設定。] + //this.bIsBASSFree = true; + //Debug.Assert( Bass.BASS_SetConfig( BASSConfig.BASS_CONFIG_UPDATEPERIOD, 0 ), // 0:BASSストリームの自動更新を行わない。(サウンド出力しないため) + // string.Format( "BASS_SetConfig() に失敗しました。[{0}", Bass.BASS_ErrorGetCode() ) ); + #endregion + #region [ BASS の初期化。] + int nデバイス = 0; // 0:"no sound" … BASS からはデバイスへアクセスさせない。 + int n周波数 = 44100; // 仮決め。lデバイス(≠ドライバ)がネイティブに対応している周波数であれば何でもいい?ようだ。いずれにしろBASSMXで自動的にリサンプリングされる。 + if ( !Bass.BASS_Init( nデバイス, n周波数, BASSInit.BASS_DEVICE_DEFAULT, IntPtr.Zero ) ) + throw new Exception( string.Format( "BASS の初期化に失敗しました。(BASS_Init)[{0}]", Bass.BASS_ErrorGetCode().ToString() ) ); + #endregion + + #region [ 指定されたサウンドファイルをBASSでオープンし、必要最小限の情報を取得する。] + //this.hBassStream = Bass.BASS_StreamCreateFile( this.filename, 0, 0, BASSFlag.BASS_STREAM_PRESCAN | BASSFlag.BASS_STREAM_DECODE ); + this.hBassStream = Bass.BASS_StreamCreateFile( this.filename, 0, 0, BASSFlag.BASS_STREAM_DECODE ); + if ( this.hBassStream == 0 ) + throw new Exception( string.Format( "{0}: サウンドストリームの生成に失敗しました。(BASS_StreamCreateFile)[{1}]", filename, Bass.BASS_ErrorGetCode().ToString() ) ); + + this.nTotalBytes = Bass.BASS_ChannelGetLength( this.hBassStream ); + + this.nTotalSeconds = Bass.BASS_ChannelBytes2Seconds( this.hBassStream, nTotalBytes ); + if ( !Bass.BASS_ChannelGetAttribute( this.hBassStream, BASSAttribute.BASS_ATTRIB_FREQ, ref fFreq ) ) + { + string errmes = string.Format( "サウンドストリームの周波数取得に失敗しました。(BASS_ChannelGetAttribute)[{0}]", Bass.BASS_ErrorGetCode().ToString() ); + Bass.BASS_Free(); + throw new Exception( errmes ); + } + #endregion + } + #endregion + + /// + /// 曲全体のテンポを取得する + /// + /// テンポ値 + /// テンポ値の範囲は70-300 + public float GetTempo() + { + fTempo = BassFx.BASS_FX_BPM_DecodeGet( + this.hBassStream, + 0, + nTotalSeconds, + ( 300 << 16 ) + 70, // MAX BPM=320, MIN BPM=70 + //0, + BASSFXBpm.BASS_FX_BPM_DEFAULT, //BASSFXBpm.BASS_FX_BPM_MULT2, + null, + IntPtr.Zero ); + return fTempo; + } + /// + /// 曲の一部分のテンポを取得する + /// + /// 開始位置 + /// 終了位置 + /// テンポ値 + /// テンポ値の範囲は70-300 + public float GetTempo( double startSec, double endSec ) + { + fTempo = BassFx.BASS_FX_BPM_DecodeGet( + this.hBassStream, + startSec, + endSec, + ( 300 << 16 ) + 70, // MAX BPM=320, MIN BPM=70 + //0, + BASSFXBpm.BASS_FX_BPM_DEFAULT, //BASSFXBpm.BASS_FX_BPM_MULT2, + null, + IntPtr.Zero ); + return fTempo; + } + + + /// + /// Beatの検出位置をListで返す + /// + /// Beat検出位置群 + public List GetBeatPositions() + { + #region [ BeatPosition格納リストの初期化 ] + if ( this.listBeatPositions != null ) + { + this.listBeatPositions.Clear(); + } + else + { + this.listBeatPositions = new List(); + } + #endregion + + BPMBEATPROC _beatProc = new BPMBEATPROC( GetBeat_ProgressCallback ); + + bool ret = BassFx.BASS_FX_BPM_BeatDecodeGet( + this.hBassStream, + 0, + nTotalSeconds, + //0, + BASSFXBpm.BASS_FX_BPM_DEFAULT, //BASSFXBpm.BASS_FX_BPM_MULT2, + _beatProc, + IntPtr.Zero ); + + return this.listBeatPositions; + } + + private void GetBeat_ProgressCallback( int channel, double beatpos, IntPtr user ) + { + stBeatPos sbp = new stBeatPos( + (float) beatpos, + 0, + 0, + 0, + false, + true + ); + + + listBeatPositions.Add( sbp ); +// Debug.WriteLine( "Beat at: " + beatpos.ToString() ); + } + + + + + public void Dispose() // 使い終わったら必ずDispose()すること。BASSのリソースを握りっぱなしにすると、他の再生に不都合が生じるため。 + { + BassFx.BASS_FX_BPM_Free( this.hBassStream ); + Bass.BASS_StreamFree( this.hBassStream ); + this.hBassStream = -1; + Bass.BASS_Free(); + } + + // ============= + private string filename = ""; + private int hBassStream = -1; + private long nTotalBytes = 0; + private double nTotalSeconds = 0.0f; + private float fFreq = 0.0f; + private float fTempo; + private List listBeatPositions = null; + } +} diff --git a/README.old.md b/README.old.md new file mode 100644 index 00000000..ac769ac7 --- /dev/null +++ b/README.old.md @@ -0,0 +1,35 @@ +# TJAPlayer3-Develop-ReWrite +DTXManiaをいじってtja再生プログラムにしちゃった[TJAPlayer2fPC](https://github.com/kairera0467/TJAP2fPC)をForkして本家風に改造した +[TJAPlayer3](https://github.com/AioiLight/TJAPlayer3)を超本家風に改造したアレを書き直したもの。 + +このプログラムを使用した不具合・問題については責任を負いかねます。 + +## How 2 Build +- VisualStudio 2017 & C# 7.3 +- VC++ toolset +- SlimDX用の署名 + +## ライセンス関係 +Fork元より引用。 + +> 以下のライブラリを使用しています。 +> * bass +> * Bass.Net +> * DirectShowLib +> * FDK21 +> * SlimDX +> * SharpDX +> * ReadJEnc +> * xadec +> * IPAフォント +> * libogg +> * libvorbis +> 「実行時フォルダ/Licenses」に収録しています。 +> +> また、このプログラムはFROM氏の「DTXMania」を元に製作しています。 + +## クレジット +> * [TwoPointZero/TJAPlayer3](https://github.com/twopointzero/TJAPlayer3)(@twopointzero) +> * [KabanFriends/TJAPlayer3](https://github.com/KabanFriends/TJAPlayer3/tree/features)(@KabanFriends) +> * [Mr-Ojii/TJAPlayer3-f](https://github.com/Mr-Ojii/TJAPlayer3-f)(@Mr-Ojii) +> * [Akasoko/TJAPlayer3](https://github.com/Akasoko-Master/TJAPlayer3)(@AkasokoR) diff --git a/Readme.txt b/Readme.txt new file mode 100644 index 00000000..dd0e3356 --- /dev/null +++ b/Readme.txt @@ -0,0 +1,79 @@ +############ +TJAPlayer3 Readme.txt +############ +公開日:2018/5/5 +更新日:2018/12/21 + +== はじめに == +TJAPlayer3をダウンロードしていただき、ありがとうございます。 +このシミュレータは、アーケード/家庭用ゲーム「太鼓の達人」シリーズのシミュレータです。 +このシミュレータは、TJAPlayer2 forPCというシミュレーターを改造したものです。 +太鼓さん次郎・TJAPlayer等で使われている.tjaファイルを読み込み、プレイすることができます。 +(すべての.tjaファイルが読み込めるわけではありません。また、TJAPlayer3側で追加した命令もあります。) +開発途中のシミュレータのため、不具合やバグがある場合があります。ご了承ください。 +(もし不具合を見つけた場合は、GitHubのissueやTwitterで連絡してくださると、大変助かります。) + +== 使用上の注意 == +・TJAPlayer3はオープンソースソフトウェア(MIT)です。 +・このシミュレータを使用する場合は、**全て自己責任**でお願いします。 +・説明書や、ドキュメントを見れば解決できる質問がよく来ます。人に質問する前に、まずは自分で調べることをしてください。 +・プログラムの制作者(AioiLight)は、TJAPlayer3本体(AioiLight.spaceからダウンロードしたもの)とデフォルトのスキン「SimpleStyle」のサポートのみ行います。 + その他のスキン(例:本家風スキン)や、TJAPlayer3の改造品(派生ビルド)のサポートは原則行いませんのでご了承ください。 +・すべての環境で動作確認はできない(できるはずがない)ので、動いたら運がいい、程度でお願いします。 + ドキュメントを読んでも解決しなかったら、諦めましょう。諦めも肝心です。 +・常時60fpsを保てないPCでの動作は期待できません。 + +== 操作方法、曲の追加方法、更新情報など == +https://aioilight.space/taiko/tjap3/ +ドキュメントに情報が集められているので、それをお読みください。随時更新しています。 + +== デフォルトスキン(SimpleStyle)について == +一部画像はTJAPlayer2 forPCのデフォルトスキンから流用しています。 +ライセンスはMITのもと運用しています。MITライセンスを厳守する場合、改変、配布等OKです。 +作成ツール: Photoshop/After Effects + +== 動画、配信等でのご利用について == +TJAPlayer3を動画共有サイトやライブ配信サービス、ウェブサイトやブログ等でご利用になられる場合、 +バンダイナムコエンターテインメント公式のものでないこと、他の太鼓の達人シミュレーターと混同しないよう配慮をお願いいたします。 +また、タグ機能のあるサイトの場合、「TJAPlayer3」「TJAP3」といったタグを付けることで、 +他シミュレータとの誤解を防ぐとともに、関連動画として出やすくなるメリットがあるため、推奨します。 + +== TJAPlayer3の改造・再配布(二次配布)を行う場合について == +TJAPlayer3、デフォルトスキンはMITライセンスで制作されています。 +MITライセンスのルールのもと、改造・再配布を行うことは自由ですが、**全て自己責任**でお願いします。 +また、使用しているライブラリのライセンス上、**必ず**「Licenses」フォルダを同梱の上、改造・再配布をお願いします。 +外部スキンや、譜面パッケージを同梱する場合は、それぞれの制作者のルールや規約を守ってください。 +これらにTJAPlayer3のライセンスは適用されません。 + +== スペシャルサンクス == +FROM氏/yyagi氏 - DTXMania 開発者 +kairera0467氏 - TJAPlayer2 forPC 開発者 +ろみゅ~?氏 - バグ報告、不具合報告 +コーシー氏 - バグ報告、不具合報告 +twopointzero氏 - プログラムの最適化 + + +== 不具合報告、連絡先など == + +=== 既知の問題点 === +・日本語環境でもプログラム内部では英語環境と認識されてシステムメッセージがほぼ英語です。 →Ver.1.5.6から日本語環境の場合は日本語で表示されるようになりました。 +・ダンサー、モブ、ランナー画像のサイズが大きいと瞬間的にカクつくかもしれません。これについては一度再生すると直ります。→FastRenderをONにすれば大抵のPCではカクつかずに再生されます。 +・命令と値の間に半角スペースが入ってないと正常に再生されません。(e.g. #SCROLL1.5) +・一曲再生後の曲のソートができません。→修正されました。 +・やり直し時にふうせんが消えます。 +・譜面分岐の不具合がいくつか残ったままです。 + +=== 質問をする前に === +質問をする前に、 +1.調べる前に考える +2.人に聞く前に調べる +3.過去に同じような質問がなかったか調べる +4.使用しているパソコンの環境、どういう動作をしたら不具合を起こしたかの過程等を添えて連絡する +この4つのルールを守っていただければ幸いです。どうかよろしくおねがいします。 + +=== 各連絡先 === +不具合報告、新規機能追加のリクエスト等、大歓迎です。 +Twitter: @TJAPlayer3 +メール: info@aioilight.space +Discord: AioiLight#7839 +GitHub: https://github.com/AioiLight/TJAPlayer3 diff --git a/TJAPlayer3.sln b/TJAPlayer3.sln new file mode 100644 index 00000000..ca03a716 --- /dev/null +++ b/TJAPlayer3.sln @@ -0,0 +1,45 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.30621.155 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TJAPlayer3", "TJAPlayer3\TJAPlayer3.csproj", "{81BEC512-8074-4BD1-8A3C-AC73BC7BF846}" + ProjectSection(ProjectDependencies) = postProject + {BCD40908-F3E2-4707-BFAA-1DD99DF6357D} = {BCD40908-F3E2-4707-BFAA-1DD99DF6357D} + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FDK19", "FDK19\FDK19.csproj", "{BCD40908-F3E2-4707-BFAA-1DD99DF6357D}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{8559AC0D-9443-4CF6-A376-B72664B2DC0B}" + ProjectSection(SolutionItems) = preProject + Readme.txt = Readme.txt + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x86 = Debug|x86 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {81BEC512-8074-4BD1-8A3C-AC73BC7BF846}.Debug|x86.ActiveCfg = Debug|x86 + {81BEC512-8074-4BD1-8A3C-AC73BC7BF846}.Debug|x86.Build.0 = Debug|x86 + {81BEC512-8074-4BD1-8A3C-AC73BC7BF846}.Release|x86.ActiveCfg = Release|x86 + {81BEC512-8074-4BD1-8A3C-AC73BC7BF846}.Release|x86.Build.0 = Release|x86 + {BCD40908-F3E2-4707-BFAA-1DD99DF6357D}.Debug|x86.ActiveCfg = Debug|x86 + {BCD40908-F3E2-4707-BFAA-1DD99DF6357D}.Debug|x86.Build.0 = Debug|x86 + {BCD40908-F3E2-4707-BFAA-1DD99DF6357D}.Release|x86.ActiveCfg = Release|x86 + {BCD40908-F3E2-4707-BFAA-1DD99DF6357D}.Release|x86.Build.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {20D6B8F0-EEEF-4E88-BC6A-DC1FF10E5AEA} + EndGlobalSection + GlobalSection(Performance) = preSolution + HasPerformanceSessions = true + EndGlobalSection + GlobalSection(Performance) = preSolution + HasPerformanceSessions = true + EndGlobalSection +EndGlobal diff --git a/TJAPlayer3/Animations/Animator.cs b/TJAPlayer3/Animations/Animator.cs new file mode 100644 index 00000000..995946e8 --- /dev/null +++ b/TJAPlayer3/Animations/Animator.cs @@ -0,0 +1,119 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using TJAPlayer3; +using FDK; + +namespace TJAPlayer3.Animations +{ + class Animator : IAnimatable + { + public Animator(int startValue, int endValue, int tickInterval, bool isLoop) + { + Type = CounterType.Normal; + StartValue = startValue; + EndValue = endValue; + TickInterval = tickInterval; + IsLoop = isLoop; + Counter = new CCounter(); + } + public Animator(double startValue, double endValue, double tickInterval, bool isLoop) + { + Type = CounterType.Double; + StartValue = startValue; + EndValue = endValue; + TickInterval = tickInterval; + IsLoop = isLoop; + Counter = new CCounter(); + } + public void Start() + { + if (Counter == null) throw new NullReferenceException(); + switch (Type) + { + case CounterType.Normal: + Counter.t開始((int)StartValue, (int)EndValue, (int)TickInterval, TJAPlayer3.Timer); + break; + case CounterType.Double: + Counter.t開始((double)StartValue, (double)EndValue, (double)TickInterval, CSound管理.rc演奏用タイマ); + break; + default: + break; + } + } + public void Stop() + { + if (Counter == null) throw new NullReferenceException(); + Counter.t停止(); + } + public void Reset() + { + if (Counter == null) throw new NullReferenceException(); + Start(); + } + + public void Tick() + { + if (Counter == null) throw new NullReferenceException(); + switch (Type) + { + case CounterType.Normal: + if (IsLoop) Counter.t進行Loop(); else Counter.t進行(); + if (!IsLoop && Counter.b終了値に達した) Stop(); + break; + case CounterType.Double: + if (IsLoop) Counter.t進行LoopDb(); else Counter.t進行db(); + if (!IsLoop && Counter.b終了値に達した) Stop(); + break; + default: + break; + } + } + + public virtual object GetAnimation() + { + throw new NotImplementedException(); + } + + + + // プロパティ + public CCounter Counter + { + get; + private set; + } + public CounterType Type + { + get; + private set; + } + public object StartValue + { + get; + private set; + } + public object EndValue + { + get; + private set; + } + public object TickInterval + { + get; + private set; + } + public bool IsLoop + { + get; + private set; + } + } + + enum CounterType + { + Normal, + Double + } +} diff --git a/TJAPlayer3/Animations/EaseIn.cs b/TJAPlayer3/Animations/EaseIn.cs new file mode 100644 index 00000000..a8031c32 --- /dev/null +++ b/TJAPlayer3/Animations/EaseIn.cs @@ -0,0 +1,38 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace TJAPlayer3.Animations +{ + /// + /// イーズインを行うクラス。 + /// + class EaseIn : Animator + { + /// + /// イーズインを初期化します。 + /// + /// 始点。 + /// 終点。 + /// イージングにかける時間。 + public EaseIn(int startPoint, int endPoint, int timeMs) : base(0, timeMs, 1, false) + { + StartPoint = startPoint; + EndPoint = endPoint; + Sa = EndPoint - StartPoint; + TimeMs = timeMs; + } + + public override object GetAnimation() + { + var persent = Counter.n現在の値 / (double)TimeMs; + return ((double)Sa * persent * persent * persent) + StartPoint; + } + + private readonly int StartPoint; + private readonly int EndPoint; + private readonly int Sa; + private readonly int TimeMs; + } +} diff --git a/TJAPlayer3/Animations/EaseInOut.cs b/TJAPlayer3/Animations/EaseInOut.cs new file mode 100644 index 00000000..2b077582 --- /dev/null +++ b/TJAPlayer3/Animations/EaseInOut.cs @@ -0,0 +1,46 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace TJAPlayer3.Animations +{ + /// + /// イーズイン・アウトを行うクラス。 + /// + class EaseInOut : Animator + { + /// + /// イーズイン・アウトを初期化します。 + /// + /// 始点。 + /// 終点。 + /// イージングにかける時間。 + public EaseInOut(int startPoint, int endPoint, int timeMs) : base(0, timeMs, 1, false) + { + StartPoint = startPoint; + EndPoint = endPoint; + Sa = EndPoint - StartPoint; + TimeMs = timeMs; + } + + public override object GetAnimation() + { + var persent = Counter.n現在の値 / (double)TimeMs * 2.0; + if (persent < 1) + { + return ((double)Sa / 2.0 * persent * persent * persent) + StartPoint; + } + else + { + persent -= 2; + return ((double)Sa / 2.0 * ((persent * persent * persent) + 2)) + StartPoint; + } + } + + private readonly int StartPoint; + private readonly int EndPoint; + private readonly int Sa; + private readonly int TimeMs; + } +} diff --git a/TJAPlayer3/Animations/EaseOut.cs b/TJAPlayer3/Animations/EaseOut.cs new file mode 100644 index 00000000..3e6a03f9 --- /dev/null +++ b/TJAPlayer3/Animations/EaseOut.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace TJAPlayer3.Animations +{ + /// + /// イーズアウトを行うクラス。 + /// + class EaseOut : Animator + { + /// + /// イーズアウトを初期化します。 + /// + /// 始点。 + /// 終点。 + /// イージングにかける時間。 + public EaseOut(int startPoint, int endPoint, int timeMs) : base(0, timeMs, 1, false) + { + StartPoint = startPoint; + EndPoint = endPoint; + Sa = EndPoint - StartPoint; + TimeMs = timeMs; + } + + public override object GetAnimation() + { + var persent = Counter.n現在の値 / (double)TimeMs; + persent -= 1; + return (double)Sa * (persent * persent * persent + 1) + StartPoint; + } + + private readonly int StartPoint; + private readonly int EndPoint; + private readonly int Sa; + private readonly int TimeMs; + } +} diff --git a/TJAPlayer3/Animations/FadeIn.cs b/TJAPlayer3/Animations/FadeIn.cs new file mode 100644 index 00000000..9e4a3521 --- /dev/null +++ b/TJAPlayer3/Animations/FadeIn.cs @@ -0,0 +1,34 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace TJAPlayer3.Animations +{ + /// + /// フェードインを行うクラス。 + /// + internal class FadeIn : Animator + { + /// + /// フェードインを初期化します。 + /// + /// フェードインに掛ける秒数(ミリ秒) + public FadeIn(int timems) : base(0, timems - 1, 1, false) + { + TimeMs = timems; + } + + /// + /// フェードインの不透明度を255段階で返します。 + /// + /// 不透明度。 + public override object GetAnimation() + { + var opacity = base.Counter.n現在の値 * 255 / TimeMs; + return opacity; + } + + private readonly int TimeMs; + } +} diff --git a/TJAPlayer3/Animations/FadeOut.cs b/TJAPlayer3/Animations/FadeOut.cs new file mode 100644 index 00000000..87989cf5 --- /dev/null +++ b/TJAPlayer3/Animations/FadeOut.cs @@ -0,0 +1,34 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace TJAPlayer3.Animations +{ + /// + /// フェードアウトを行うクラス。 + /// + internal class FadeOut : Animator + { + /// + /// フェードアウトを初期化します。 + /// + /// フェードアウトに掛ける秒数(ミリ秒) + public FadeOut(int timems) : base(0, timems - 1, 1, false) + { + TimeMs = timems; + } + + /// + /// フェードアウトの不透明度を255段階で返します。 + /// + /// 不透明度。 + public override object GetAnimation() + { + var opacity = (TimeMs - base.Counter.n現在の値) * 255 / TimeMs; + return opacity; + } + + private readonly int TimeMs; + } +} diff --git a/TJAPlayer3/Animations/IAnimatable.cs b/TJAPlayer3/Animations/IAnimatable.cs new file mode 100644 index 00000000..4e09befa --- /dev/null +++ b/TJAPlayer3/Animations/IAnimatable.cs @@ -0,0 +1,35 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace TJAPlayer3.Animations +{ + /// + /// アニメーション インターフェイス。 + /// + interface IAnimatable + { + /// + /// アニメーションを開始します。 + /// + void Start(); + /// + /// アニメーションを停止します。 + /// + void Stop(); + /// + /// アニメーションをリセットします。 + /// + void Reset(); + /// + /// アニメーションの進行を行います。 + /// + void Tick(); + /// + /// アニメーションのパラメータを返します。 + /// + /// アニメーションのパラメータを返します。 + object GetAnimation(); + } +} diff --git a/TJAPlayer3/Animations/Linear.cs b/TJAPlayer3/Animations/Linear.cs new file mode 100644 index 00000000..c6d0b6f9 --- /dev/null +++ b/TJAPlayer3/Animations/Linear.cs @@ -0,0 +1,38 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace TJAPlayer3.Animations +{ + /// + /// リニア移動を行うクラス。 + /// + class Linear : Animator + { + /// + /// リニア移動を初期化します。 + /// + /// 始点。 + /// 終点。 + /// 移動にかける時間。 + public Linear(int startPoint, int endPoint, int timeMs) : base(0, timeMs, 1, false) + { + StartPoint = startPoint; + EndPoint = endPoint; + Sa = EndPoint - StartPoint; + TimeMs = timeMs; + } + + public override object GetAnimation() + { + var persent = Counter.n現在の値 / (double)TimeMs; + return (Sa * persent) + StartPoint; + } + + private readonly int StartPoint; + private readonly int EndPoint; + private readonly int Sa; + private readonly int TimeMs; + } +} diff --git a/TJAPlayer3/Common/CActFlushGPU.cs b/TJAPlayer3/Common/CActFlushGPU.cs new file mode 100644 index 00000000..ee28d54b --- /dev/null +++ b/TJAPlayer3/Common/CActFlushGPU.cs @@ -0,0 +1,61 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Diagnostics; +using SlimDX.Direct3D9; +using FDK; + +namespace TJAPlayer3 +{ + /// + /// 描画フレーム毎にGPUをフラッシュして、描画遅延を防ぐ。 + /// DirectX9の、Occlusion Queryを用いる。(Flush属性付きでGetDataする) + /// Device Lost対策のため、QueueをCActivitiyのManagedリソースとして扱う。 + /// On進行描画()を呼び出すことで、GPUをフラッシュする。 + /// + internal class CActFlushGPU : CActivity + { + // CActivity 実装 + + public override void OnManagedリソースの作成() + { + if ( !base.b活性化してない ) + { + try // #xxxxx 2012.12.31 yyagi: to prepare flush, first of all, I create q queue to the GPU. + { + IDirect3DQuery9 = new Query(TJAPlayer3.app.Device.UnderlyingDevice, QueryType.Occlusion); + } + catch ( Exception e ) + { + Trace.TraceError( e.ToString() ); + Trace.TraceError( "例外が発生しましたが処理を継続します。 (e5c7cd0b-f7bb-4bf1-9ad9-db27b43ff63d)" ); + } + base.OnManagedリソースの作成(); + } + } + public override void OnManagedリソースの解放() + { + IDirect3DQuery9.Dispose(); + IDirect3DQuery9 = null; + base.OnManagedリソースの解放(); + } + public override int On進行描画() + { + if ( !base.b活性化してない ) + { + IDirect3DQuery9.Issue( Issue.End ); + DWM.Flush(); + IDirect3DQuery9.GetData( true ); // flush GPU queue + } + return 0; + } + + // その他 + + #region [ private ] + //----------------- + private Query IDirect3DQuery9; + //----------------- + #endregion + } +} diff --git a/TJAPlayer3/Common/CConfigIni.cs b/TJAPlayer3/Common/CConfigIni.cs new file mode 100644 index 00000000..57dfd006 --- /dev/null +++ b/TJAPlayer3/Common/CConfigIni.cs @@ -0,0 +1,3066 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Text; +using System.Runtime.InteropServices; +using System.IO; +using System.Diagnostics; +using FDK; +using FDK.ExtensionMethods; + +namespace TJAPlayer3 +{ + internal class CConfigIni : INotifyPropertyChanged + { + private const int MinimumKeyboardSoundLevelIncrement = 1; + private const int MaximumKeyboardSoundLevelIncrement = 20; + private const int DefaultKeyboardSoundLevelIncrement = 5; + + // クラス + + #region [ CKeyAssign ] + public class CKeyAssign + { + public class CKeyAssignPad + { + public CConfigIni.CKeyAssign.STKEYASSIGN[] HH + { + get + { + return this.padHH_R; + } + set + { + this.padHH_R = value; + } + } + public CConfigIni.CKeyAssign.STKEYASSIGN[] R + { + get + { + return this.padHH_R; + } + set + { + this.padHH_R = value; + } + } + public CConfigIni.CKeyAssign.STKEYASSIGN[] SD + { + get + { + return this.padSD_G; + } + set + { + this.padSD_G = value; + } + } + public CConfigIni.CKeyAssign.STKEYASSIGN[] G + { + get + { + return this.padSD_G; + } + set + { + this.padSD_G = value; + } + } + public CConfigIni.CKeyAssign.STKEYASSIGN[] BD + { + get + { + return this.padBD_B; + } + set + { + this.padBD_B = value; + } + } + public CConfigIni.CKeyAssign.STKEYASSIGN[] B + { + get + { + return this.padBD_B; + } + set + { + this.padBD_B = value; + } + } + public CConfigIni.CKeyAssign.STKEYASSIGN[] HT + { + get + { + return this.padHT_Pick; + } + set + { + this.padHT_Pick = value; + } + } + public CConfigIni.CKeyAssign.STKEYASSIGN[] Pick + { + get + { + return this.padHT_Pick; + } + set + { + this.padHT_Pick = value; + } + } + public CConfigIni.CKeyAssign.STKEYASSIGN[] LT + { + get + { + return this.padLT_Wail; + } + set + { + this.padLT_Wail = value; + } + } + public CConfigIni.CKeyAssign.STKEYASSIGN[] Wail + { + get + { + return this.padLT_Wail; + } + set + { + this.padLT_Wail = value; + } + } + public CConfigIni.CKeyAssign.STKEYASSIGN[] FT + { + get + { + return this.padFT_Cancel; + } + set + { + this.padFT_Cancel = value; + } + } + public CConfigIni.CKeyAssign.STKEYASSIGN[] Cancel + { + get + { + return this.padFT_Cancel; + } + set + { + this.padFT_Cancel = value; + } + } + public CConfigIni.CKeyAssign.STKEYASSIGN[] CY + { + get + { + return this.padCY_Decide; + } + set + { + this.padCY_Decide = value; + } + } + public CConfigIni.CKeyAssign.STKEYASSIGN[] Decide + { + get + { + return this.padCY_Decide; + } + set + { + this.padCY_Decide = value; + } + } + public CConfigIni.CKeyAssign.STKEYASSIGN[] HHO + { + get + { + return this.padHHO; + } + set + { + this.padHHO = value; + } + } + public CConfigIni.CKeyAssign.STKEYASSIGN[] RD + { + get + { + return this.padRD; + } + set + { + this.padRD = value; + } + } + public CConfigIni.CKeyAssign.STKEYASSIGN[] LC + { + get + { + return this.padLC; + } + set + { + this.padLC = value; + } + } + public CConfigIni.CKeyAssign.STKEYASSIGN[] LP + { + get + { + return this.padLP; + } + set + { + this.padLP = value; + } + } + public CConfigIni.CKeyAssign.STKEYASSIGN[] LBD + { + get + { + return this.padLBD; + } + set + { + this.padLBD = value; + } + } + public CConfigIni.CKeyAssign.STKEYASSIGN[] Capture + { + get + { + return this.padCapture; + } + set + { + this.padCapture = value; + } + } + public CConfigIni.CKeyAssign.STKEYASSIGN[] LeftRed + { + get + { + return this.padLRed; + } + set + { + this.padLRed = value; + } + } + public CConfigIni.CKeyAssign.STKEYASSIGN[] RightRed + { + get + { + return this.padRRed; + } + set + { + this.padRRed = value; + } + } + public CConfigIni.CKeyAssign.STKEYASSIGN[] LeftBlue + { + get + { + return this.padLBlue; + } + set + { + this.padLBlue = value; + } + } + public CConfigIni.CKeyAssign.STKEYASSIGN[] RightBlue + { + get + { + return this.padRBlue; + } + set + { + this.padRBlue = value; + } + } + public CConfigIni.CKeyAssign.STKEYASSIGN[] LeftRed2P + { + get + { + return this.padLRed2P; + } + set + { + this.padLRed2P = value; + } + } + public CConfigIni.CKeyAssign.STKEYASSIGN[] RightRed2P + { + get + { + return this.padRRed2P; + } + set + { + this.padRRed2P = value; + } + } + public CConfigIni.CKeyAssign.STKEYASSIGN[] LeftBlue2P + { + get + { + return this.padLBlue2P; + } + set + { + this.padLBlue2P = value; + } + } + public CConfigIni.CKeyAssign.STKEYASSIGN[] RightBlue2P + { + get + { + return this.padRBlue2P; + } + set + { + this.padRBlue2P = value; + } + } + public CConfigIni.CKeyAssign.STKEYASSIGN[] this[ int index ] + { + get + { + switch ( index ) + { + case (int) EKeyConfigPad.HH: + return this.padHH_R; + + case (int) EKeyConfigPad.SD: + return this.padSD_G; + + case (int) EKeyConfigPad.BD: + return this.padBD_B; + + case (int) EKeyConfigPad.HT: + return this.padHT_Pick; + + case (int) EKeyConfigPad.LT: + return this.padLT_Wail; + + case (int) EKeyConfigPad.FT: + return this.padFT_Cancel; + + case (int) EKeyConfigPad.CY: + return this.padCY_Decide; + + case (int) EKeyConfigPad.HHO: + return this.padHHO; + + case (int) EKeyConfigPad.RD: + return this.padRD; + + case (int) EKeyConfigPad.LC: + return this.padLC; + + case (int) EKeyConfigPad.LP: // #27029 2012.1.4 from + return this.padLP; // + + case (int) EKeyConfigPad.LBD: // #27029 2012.1.4 from + return this.padLBD; // + + case (int) EKeyConfigPad.LRed: + return this.padLRed; + + case (int) EKeyConfigPad.RRed: + return this.padRRed; + + case (int) EKeyConfigPad.LBlue: + return this.padLBlue; + + case (int) EKeyConfigPad.RBlue: + return this.padRBlue; + + case (int) EKeyConfigPad.LRed2P: + return this.padLRed2P; + + case (int) EKeyConfigPad.RRed2P: + return this.padRRed2P; + + case (int) EKeyConfigPad.LBlue2P: + return this.padLBlue2P; + + case (int) EKeyConfigPad.RBlue2P: + return this.padRBlue2P; + + case (int) EKeyConfigPad.Capture: + return this.padCapture; + } + throw new IndexOutOfRangeException(); + } + set + { + switch ( index ) + { + case (int) EKeyConfigPad.HH: + this.padHH_R = value; + return; + + case (int) EKeyConfigPad.SD: + this.padSD_G = value; + return; + + case (int) EKeyConfigPad.BD: + this.padBD_B = value; + return; + + case (int) EKeyConfigPad.Pick: + this.padHT_Pick = value; + return; + + case (int) EKeyConfigPad.LT: + this.padLT_Wail = value; + return; + + case (int) EKeyConfigPad.FT: + this.padFT_Cancel = value; + return; + + case (int) EKeyConfigPad.CY: + this.padCY_Decide = value; + return; + + case (int) EKeyConfigPad.HHO: + this.padHHO = value; + return; + + case (int) EKeyConfigPad.RD: + this.padRD = value; + return; + + case (int) EKeyConfigPad.LC: + this.padLC = value; + return; + + case (int) EKeyConfigPad.LP: + this.padLP = value; + return; + + case (int) EKeyConfigPad.LBD: + this.padLBD = value; + return; + + case (int) EKeyConfigPad.LRed: + this.padLRed = value; + return; + + case (int) EKeyConfigPad.RRed: + this.padRRed = value; + return; + + case (int) EKeyConfigPad.LBlue: + this.padLBlue = value; + return; + + case (int) EKeyConfigPad.RBlue: + this.padRBlue = value; + return; + + case (int) EKeyConfigPad.LRed2P: + this.padLRed2P = value; + return; + + case (int) EKeyConfigPad.RRed2P: + this.padRRed2P = value; + return; + + case (int) EKeyConfigPad.LBlue2P: + this.padLBlue2P = value; + return; + + case (int) EKeyConfigPad.RBlue2P: + this.padRBlue2P = value; + return; + + case (int) EKeyConfigPad.Capture: + this.padCapture = value; + return; + } + throw new IndexOutOfRangeException(); + } + } + + #region [ private ] + //----------------- + private CConfigIni.CKeyAssign.STKEYASSIGN[] padBD_B; + private CConfigIni.CKeyAssign.STKEYASSIGN[] padCY_Decide; + private CConfigIni.CKeyAssign.STKEYASSIGN[] padFT_Cancel; + private CConfigIni.CKeyAssign.STKEYASSIGN[] padHH_R; + private CConfigIni.CKeyAssign.STKEYASSIGN[] padHHO; + private CConfigIni.CKeyAssign.STKEYASSIGN[] padHT_Pick; + private CConfigIni.CKeyAssign.STKEYASSIGN[] padLC; + private CConfigIni.CKeyAssign.STKEYASSIGN[] padLT_Wail; + private CConfigIni.CKeyAssign.STKEYASSIGN[] padRD; + private CConfigIni.CKeyAssign.STKEYASSIGN[] padSD_G; + private CConfigIni.CKeyAssign.STKEYASSIGN[] padLP; + private CConfigIni.CKeyAssign.STKEYASSIGN[] padLBD; + private CConfigIni.CKeyAssign.STKEYASSIGN[] padLRed; + private CConfigIni.CKeyAssign.STKEYASSIGN[] padLBlue; + private CConfigIni.CKeyAssign.STKEYASSIGN[] padRRed; + private CConfigIni.CKeyAssign.STKEYASSIGN[] padRBlue; + private CConfigIni.CKeyAssign.STKEYASSIGN[] padLRed2P; + private CConfigIni.CKeyAssign.STKEYASSIGN[] padLBlue2P; + private CConfigIni.CKeyAssign.STKEYASSIGN[] padRRed2P; + private CConfigIni.CKeyAssign.STKEYASSIGN[] padRBlue2P; + + private CConfigIni.CKeyAssign.STKEYASSIGN[] padCapture; + //----------------- + #endregion + } + + [StructLayout( LayoutKind.Sequential )] + public struct STKEYASSIGN + { + public E入力デバイス 入力デバイス; + public int ID; + public int コード; + public STKEYASSIGN( E入力デバイス DeviceType, int nID, int nCode ) + { + this.入力デバイス = DeviceType; + this.ID = nID; + this.コード = nCode; + } + } + + public CKeyAssignPad Bass = new CKeyAssignPad(); + public CKeyAssignPad Drums = new CKeyAssignPad(); + public CKeyAssignPad Guitar = new CKeyAssignPad(); + public CKeyAssignPad Taiko = new CKeyAssignPad(); + public CKeyAssignPad System = new CKeyAssignPad(); + public CKeyAssignPad this[ int index ] + { + get + { + switch( index ) + { + case (int) EKeyConfigPart.DRUMS: + return this.Drums; + + case (int) EKeyConfigPart.GUITAR: + return this.Guitar; + + case (int) EKeyConfigPart.BASS: + return this.Bass; + + case (int) EKeyConfigPart.TAIKO: + return this.Taiko; + + case (int) EKeyConfigPart.SYSTEM: + return this.System; + } + throw new IndexOutOfRangeException(); + } + set + { + switch( index ) + { + case (int) EKeyConfigPart.DRUMS: + this.Drums = value; + return; + + case (int) EKeyConfigPart.GUITAR: + this.Guitar = value; + return; + + case (int) EKeyConfigPart.BASS: + this.Bass = value; + return; + + case (int) EKeyConfigPart.TAIKO: + this.Taiko = value; + return; + + case (int) EKeyConfigPart.SYSTEM: + this.System = value; + return; + } + throw new IndexOutOfRangeException(); + } + } + } + #endregion + + // + public enum ESoundDeviceTypeForConfig + { + ACM = 0, + // DirectSound, + ASIO, + WASAPI, + Unknown=99 + } + // プロパティ + +#if false // #23625 2011.1.11 Config.iniからダメージ/回復値の定数変更を行う場合はここを有効にする 087リリースに合わせ機能無効化 + //---------------------------------------- + public float[,] fGaugeFactor = new float[5,2]; + public float[] fDamageLevelFactor = new float[3]; + //---------------------------------------- +#endif + public int nBGAlpha; + public bool bAVI有効; + public bool bBGA有効; + public bool bBGM音を発声する; + public STDGBVALUE bHidden; + public STDGBVALUE bLeft; + public STDGBVALUE bLight; + public bool bLogDTX詳細ログ出力; + public bool bLog曲検索ログ出力; + public bool bLog作成解放ログ出力; + public STDGBVALUE bReverse; + + public E判定表示優先度 e判定表示優先度; + public STDGBVALUE e判定位置; // #33891 2014.6.26 yyagi + public bool bScoreIniを出力する; + public bool bSTAGEFAILED有効; + public STDGBVALUE bSudden; + public bool bTight; + public STDGBVALUE bGraph; // #24074 2011.01.23 add ikanick + public bool bWave再生位置自動調整機能有効; + public bool bストイックモード; + public bool bランダムセレクトで子BOXを検索対象とする; + public bool bログ出力; + public bool b演奏情報を表示する; + public bool b垂直帰線待ちを行う; + public bool b全画面モード; + public int n初期ウィンドウ開始位置X; // #30675 2013.02.04 ikanick add + public int n初期ウィンドウ開始位置Y; + public int nウインドウwidth; // #23510 2010.10.31 yyagi add + public int nウインドウheight; // #23510 2010.10.31 yyagi add + public Dictionary dicJoystick; + public Eダークモード eDark; + public STDGBVALUE eRandom; + public Eダメージレベル eダメージレベル; + public CKeyAssign KeyAssign; + public int n非フォーカス時スリープms; // #23568 2010.11.04 ikanick add + public int nフレーム毎スリープms; // #xxxxx 2011.11.27 yyagi add + public int n演奏速度; + public bool b演奏速度が一倍速であるとき以外音声を再生しない; + public int n曲が選択されてからプレビュー音が鳴るまでのウェイトms; + public int n曲が選択されてからプレビュー画像が表示開始されるまでのウェイトms; + + private bool _applyLoudnessMetadata; + + public bool ApplyLoudnessMetadata + { + get => _applyLoudnessMetadata; + set => SetProperty(ref _applyLoudnessMetadata, value, nameof(ApplyLoudnessMetadata)); + } + + private double _targetLoudness; + + public double TargetLoudness + { + get => _targetLoudness; + set => SetProperty(ref _targetLoudness, value, nameof(TargetLoudness)); + } + + private bool _applySongVol; + + public bool ApplySongVol + { + get => _applySongVol; + set => SetProperty(ref _applySongVol, value, nameof(ApplySongVol)); + } + + private int _soundEffectLevel; + + public int SoundEffectLevel + { + get => _soundEffectLevel; + set => SetProperty(ref _soundEffectLevel, value, nameof(SoundEffectLevel)); + } + + private int _voiceLevel; + + public int VoiceLevel + { + get => _voiceLevel; + set => SetProperty(ref _voiceLevel, value, nameof(VoiceLevel)); + } + + private int _songPreviewLevel; + + public int SongPreviewLevel + { + get => _songPreviewLevel; + set => SetProperty(ref _songPreviewLevel, value, nameof(SongPlaybackLevel)); + } + + private int _songPlaybackLevel; + + public int SongPlaybackLevel + { + get => _songPlaybackLevel; + set => SetProperty(ref _songPlaybackLevel, value, nameof(SongPlaybackLevel)); + } + + private int _keyboardSoundLevelIncrement; + + public int KeyboardSoundLevelIncrement + { + get => _keyboardSoundLevelIncrement; + set => SetProperty( + ref _keyboardSoundLevelIncrement, + value.Clamp(MinimumKeyboardSoundLevelIncrement, MaximumKeyboardSoundLevelIncrement), + nameof(KeyboardSoundLevelIncrement)); + } + + public STDGBVALUE n表示可能な最小コンボ数; + public STDGBVALUE n譜面スクロール速度; + public string strDTXManiaのバージョン; + public string str曲データ検索パス; + public string FontName; + public string BoxFontName; + public bool bBranchGuide; + public int nScoreMode; + public int nDefaultCourse; //2017.01.30 DD デフォルトでカーソルをあわせる難易度 + + + public int nPlayerCount; //2017.08.18 kairera0467 マルチプレイ対応 + public bool b太鼓パートAutoPlay; + public bool b太鼓パートAutoPlay2P; //2017.08.16 kairera0467 マルチプレイ対応 + public bool bAuto先生の連打; + public bool b大音符判定; + public int n両手判定の待ち時間; + public int nBranchAnime; + + public bool bJudgeCountDisplay; + + public bool bEnableCountdownTimer; + + // 各画像の表示・非表示設定 + public bool ShowChara; + public bool ShowDancer; + public bool ShowRunner; + public bool ShowFooter; + public bool ShowMob; + public bool ShowPuchiChara; // リザーブ + // + + public EScrollMode eScrollMode = EScrollMode.Normal; + public bool bスクロールモードを上書き = false; + + public bool bHispeedRandom; + public Eステルスモード eSTEALTH; + public bool bNoInfo; + + public int nDefaultSongSort; + + public EGame eGameMode; + public int TokkunSkipMeasures; + public int TokkunMashInterval; + public bool bSuperHard = false; + public bool bTokkunMode = false; + public bool bJust; + + public bool bEndingAnime = false; // 2017.01.27 DD 「また遊んでね」画面の有効/無効オプション追加 + + + public STDGBVALUE 判定文字表示位置; +// public int nハイハット切り捨て下限Velocity; +// public int n切り捨て下限Velocity; // #23857 2010.12.12 yyagi VelocityMin + public int nInputAdjustTimeMs; + public STDGBVALUE nJudgeLinePosOffset; // #31602 2013.6.23 yyagi 判定ライン表示位置のオフセット + public bool bIsAutoResultCapture; // #25399 2011.6.9 yyagi リザルト画像自動保存機能のON/OFF制御 + public int nPoliphonicSounds; // #28228 2012.5.1 yyagi レーン毎の最大同時発音数 + public bool bバッファ入力を行う; + public bool bIsEnabledSystemMenu; // #28200 2012.5.1 yyagi System Menuの使用可否切替 + public string strSystemSkinSubfolderFullName; // #28195 2012.5.2 yyagi Skin切替用 System/以下のサブフォルダ名 + public bool bConfigIniがないかDTXManiaのバージョンが異なる + { + get + { + return ( !this.bConfigIniが存在している || !TJAPlayer3.VERSION.Equals( this.strDTXManiaのバージョン ) ); + } + } + public bool bEnterがキー割り当てのどこにも使用されていない + { + get + { + for( int i = 0; i <= (int)EKeyConfigPart.SYSTEM; i++ ) + { + for( int j = 0; j <= (int)EKeyConfigPad.Capture; j++ ) + { + for( int k = 0; k < 0x10; k++ ) + { + if( ( this.KeyAssign[ i ][ j ][ k ].入力デバイス == E入力デバイス.キーボード ) && ( this.KeyAssign[ i ][ j ][ k ].コード == (int)SlimDXKeys.Key.Return ) ) + { + return false; + } + } + } + } + return true; + } + } + public bool bウィンドウモード + { + get + { + return !this.b全画面モード; + } + set + { + this.b全画面モード = !value; + } + } + public bool b演奏情報を表示しない + { + get + { + return !this.b演奏情報を表示する; + } + set + { + this.b演奏情報を表示する = !value; + } + } + public int n背景の透過度 + { + get + { + return this.nBGAlpha; + } + set + { + if( value < 0 ) + { + this.nBGAlpha = 0; + } + else if( value > 0xff ) + { + this.nBGAlpha = 0xff; + } + else + { + this.nBGAlpha = value; + } + } + } + public int nRisky; // #23559 2011.6.20 yyagi Riskyでの残ミス数。0で閉店 + public bool bIsAllowedDoubleClickFullscreen; // #26752 2011.11.27 yyagi ダブルクリックしてもフルスクリーンに移行しない + public STAUTOPLAY bAutoPlay; + public int nSoundDeviceType; // #24820 2012.12.23 yyagi 出力サウンドデバイス(0=ACM(にしたいが設計がきつそうならDirectShow), 1=ASIO, 2=WASAPI) + public int nWASAPIBufferSizeMs; // #24820 2013.1.15 yyagi WASAPIのバッファサイズ +// public int nASIOBufferSizeMs; // #24820 2012.12.28 yyagi ASIOのバッファサイズ + public int nASIODevice; // #24820 2013.1.17 yyagi ASIOデバイス + public bool bUseOSTimer; // #33689 2014.6.6 yyagi 演奏タイマーの種類 + public bool bDynamicBassMixerManagement; // #24820 + public bool bTimeStretch; // #23664 2013.2.24 yyagi ピッチ変更無しで再生速度を変更するかどうか + public STDGBVALUE eInvisible; // #32072 2013.9.20 yyagi チップを非表示にする + public int nDisplayTimesMs, nFadeoutTimeMs; + + public STDGBVALUE nViewerScrollSpeed; + public bool bViewerVSyncWait; + public bool bViewerShowDebugStatus; + public bool bViewerTimeStretch; + public bool bViewerDrums有効, bViewerGuitar有効; + //public bool bNoMP3Streaming; // 2014.4.14 yyagi; mp3のシーク位置がおかしくなる場合は、これをtrueにすることで、wavにデコードしてからオンメモリ再生する + public int nMasterVolume; + public bool ShinuchiMode; // 真打モード + public bool FastRender; // 事前画像描画モード + public int MusicPreTimeMs; // 音源再生前の待機時間ms + /// + /// DiscordのRitch Presenceに再生中の.tjaファイルの情報を送信するかどうか。 + /// + public bool SendDiscordPlayingInformation; +#if false + [StructLayout( LayoutKind.Sequential )] + public struct STAUTOPLAY // C定数のEレーンとindexを一致させること + { + public bool LC; // 0 + public bool HH; // 1 + public bool SD; // 2 + public bool BD; // 3 + public bool HT; // 4 + public bool LT; // 5 + public bool FT; // 6 + public bool CY; // 7 + public bool RD; // 8 + public bool Guitar; // 9 (not used) + public bool Bass; // 10 (not used) + public bool GtR; // 11 + public bool GtG; // 12 + public bool GtB; // 13 + public bool GtPick; // 14 + public bool GtW; // 15 + public bool BsR; // 16 + public bool BsG; // 17 + public bool BsB; // 18 + public bool BsPick; // 19 + public bool BsW; // 20 + public bool this[ int index ] + { + get + { + switch ( index ) + { + case (int) Eレーン.LC: + return this.LC; + case (int) Eレーン.HH: + return this.HH; + case (int) Eレーン.SD: + return this.SD; + case (int) Eレーン.BD: + return this.BD; + case (int) Eレーン.HT: + return this.HT; + case (int) Eレーン.LT: + return this.LT; + case (int) Eレーン.FT: + return this.FT; + case (int) Eレーン.CY: + return this.CY; + case (int) Eレーン.RD: + return this.RD; + case (int) Eレーン.Guitar: + return this.Guitar; + case (int) Eレーン.Bass: + return this.Bass; + case (int) Eレーン.GtR: + return this.GtR; + case (int) Eレーン.GtG: + return this.GtG; + case (int) Eレーン.GtB: + return this.GtB; + case (int) Eレーン.GtPick: + return this.GtPick; + case (int) Eレーン.GtW: + return this.GtW; + case (int) Eレーン.BsR: + return this.BsR; + case (int) Eレーン.BsG: + return this.BsG; + case (int) Eレーン.BsB: + return this.BsB; + case (int) Eレーン.BsPick: + return this.BsPick; + case (int) Eレーン.BsW: + return this.BsW; + } + throw new IndexOutOfRangeException(); + } + set + { + switch ( index ) + { + case (int) Eレーン.LC: + this.LC = value; + return; + case (int) Eレーン.HH: + this.HH = value; + return; + case (int) Eレーン.SD: + this.SD = value; + return; + case (int) Eレーン.BD: + this.BD = value; + return; + case (int) Eレーン.HT: + this.HT = value; + return; + case (int) Eレーン.LT: + this.LT = value; + return; + case (int) Eレーン.FT: + this.FT = value; + return; + case (int) Eレーン.CY: + this.CY = value; + return; + case (int) Eレーン.RD: + this.RD = value; + return; + case (int) Eレーン.Guitar: + this.Guitar = value; + return; + case (int) Eレーン.Bass: + this.Bass = value; + return; + case (int) Eレーン.GtR: + this.GtR = value; + return; + case (int) Eレーン.GtG: + this.GtG = value; + return; + case (int) Eレーン.GtB: + this.GtB = value; + return; + case (int) Eレーン.GtPick: + this.GtPick = value; + return; + case (int) Eレーン.GtW: + this.GtW = value; + return; + case (int) Eレーン.BsR: + this.BsR = value; + return; + case (int) Eレーン.BsG: + this.BsG = value; + return; + case (int) Eレーン.BsB: + this.BsB = value; + return; + case (int) Eレーン.BsPick: + this.BsPick = value; + return; + case (int) Eレーン.BsW: + this.BsW = value; + return; + } + throw new IndexOutOfRangeException(); + } + } + } +#endif + #region [ STRANGE ] + public STRANGE nヒット範囲ms; + [StructLayout( LayoutKind.Sequential )] + public struct STRANGE + { + public int Perfect; + public int Great; + public int Good; + public int Poor; + public int this[ int index ] + { + get + { + switch( index ) + { + case 0: + return this.Perfect; + + case 1: + return this.Great; + + case 2: + return this.Good; + + case 3: + return this.Poor; + } + throw new IndexOutOfRangeException(); + } + set + { + switch( index ) + { + case 0: + this.Perfect = value; + return; + + case 1: + this.Great = value; + return; + + case 2: + this.Good = value; + return; + + case 3: + this.Poor = value; + return; + } + throw new IndexOutOfRangeException(); + } + } + } + #endregion + #region [ STLANEVALUE ] + public STLANEVALUE nVelocityMin; + [StructLayout( LayoutKind.Sequential )] + public struct STLANEVALUE + { + public int LC; + public int HH; + public int SD; + public int BD; + public int HT; + public int LT; + public int FT; + public int CY; + public int RD; + public int LP; + public int LBD; + public int Guitar; + public int Bass; + public int this[ int index ] + { + get + { + switch( index ) + { + case 0: + return this.LC; + + case 1: + return this.HH; + + case 2: + return this.SD; + + case 3: + return this.BD; + + case 4: + return this.HT; + + case 5: + return this.LT; + + case 6: + return this.FT; + + case 7: + return this.CY; + + case 8: + return this.RD; + + case 9: + return this.LP; + + case 10: + return this.LBD; + + case 11: + return this.Guitar; + + case 12: + return this.Bass; + } + throw new IndexOutOfRangeException(); + } + set + { + switch( index ) + { + case 0: + this.LC = value; + return; + + case 1: + this.HH = value; + return; + + case 2: + this.SD = value; + return; + + case 3: + this.BD = value; + return; + + case 4: + this.HT = value; + return; + + case 5: + this.LT = value; + return; + + case 6: + this.FT = value; + return; + + case 7: + this.CY = value; + return; + + case 8: + this.RD = value; + return; + + case 9: + this.LP = value; + return; + + case 10: + this.LBD = value; + return; + + case 11: + this.Guitar = value; + return; + + case 12: + this.Bass = value; + return; + } + throw new IndexOutOfRangeException(); + } + } + } + #endregion + + + #region[Ver.K追加オプション] + //-------------------------- + //ゲーム内のオプションに加えて、 + //システム周りのオプションもこのブロックで記述している。 + #region[Display] + //-------------------------- + public EClipDispType eClipDispType; + #endregion + + #region[Position] + public Eレーンタイプ eLaneType; + public Eミラー eMirror; + + #endregion + #region[System] + public bool bDirectShowMode; + #endregion + + //-------------------------- + #endregion + + + // コンストラクタ + + public CConfigIni() + { +#if false // #23625 2011.1.11 Config.iniからダメージ/回復値の定数変更を行う場合はここを有効にする 087リリースに合わせ機能無効化 + //---------------------------------------- + this.fGaugeFactor[0,0] = 0.004f; + this.fGaugeFactor[0,1] = 0.006f; + this.fGaugeFactor[1,0] = 0.002f; + this.fGaugeFactor[1,1] = 0.003f; + this.fGaugeFactor[2,0] = 0.000f; + this.fGaugeFactor[2,1] = 0.000f; + this.fGaugeFactor[3,0] = -0.020f; + this.fGaugeFactor[3,1] = -0.030f; + this.fGaugeFactor[4,0] = -0.050f; + this.fGaugeFactor[4,1] = -0.050f; + + this.fDamageLevelFactor[0] = 0.5f; + this.fDamageLevelFactor[1] = 1.0f; + this.fDamageLevelFactor[2] = 1.5f; + //---------------------------------------- +#endif + this.strDTXManiaのバージョン = "Unknown"; + this.str曲データ検索パス = @".\"; + this.b全画面モード = false; + this.b垂直帰線待ちを行う = true; + this.n初期ウィンドウ開始位置X = 0; // #30675 2013.02.04 ikanick add + this.n初期ウィンドウ開始位置Y = 0; + this.nウインドウwidth = SampleFramework.GameWindowSize.Width; // #23510 2010.10.31 yyagi add + this.nウインドウheight = SampleFramework.GameWindowSize.Height; // + this.nフレーム毎スリープms = -1; // #xxxxx 2011.11.27 yyagi add + this.n非フォーカス時スリープms = 1; // #23568 2010.11.04 ikanick add + this._bGuitar有効 = true; + this._bDrums有効 = true; + this.nBGAlpha = 100; + this.eダメージレベル = Eダメージレベル.普通; + this.bSTAGEFAILED有効 = true; + this.bAVI有効 = false; + this.bBGA有効 = true; + this.n曲が選択されてからプレビュー音が鳴るまでのウェイトms = 1000; + this.n曲が選択されてからプレビュー画像が表示開始されるまでのウェイトms = 100; + //this.bWave再生位置自動調整機能有効 = true; + this.bWave再生位置自動調整機能有効 = false; + this.bBGM音を発声する = true; + this.bScoreIniを出力する = true; + this.bランダムセレクトで子BOXを検索対象とする = true; + this.n表示可能な最小コンボ数 = new STDGBVALUE(); + this.n表示可能な最小コンボ数.Drums = 10; + this.n表示可能な最小コンボ数.Guitar = 10; + this.n表示可能な最小コンボ数.Bass = 10; + this.n表示可能な最小コンボ数.Taiko = 10; + this.FontName = "MS UI Gothic"; + this.BoxFontName = "MS UI Gothic"; + this.ApplyLoudnessMetadata = true; + this.bEnableCountdownTimer = true; + + // 2018-08-28 twopointzero: + // There exists a particular large, well-known, well-curated, and + // regularly-updated collection of content for use with Taiko no + // Tatsujin simulators. A statistical analysis was performed on the + // the integrated loudness and true peak loudness of the thousands + // of songs within this collection as of late August 2018. + // + // The analysis allows us to select a target loudness which + // results in the smallest total amount of loudness adjustment + // applied to the songs of that collection. The selected target + // loudness should result in the least-noticeable average + // adjustment for the most users, assuming their collection is + // similar to the exemplar. + // + // The target loudness which achieves this is -7.4 LUFS. + this.TargetLoudness = -7.4; + + this.ApplySongVol = false; + this.SoundEffectLevel = CSound.DefaultSoundEffectLevel; + this.VoiceLevel = CSound.DefaultVoiceLevel; + this.SongPreviewLevel = CSound.DefaultSongPlaybackLevel; + this.SongPlaybackLevel = CSound.DefaultSongPlaybackLevel; + this.KeyboardSoundLevelIncrement = DefaultKeyboardSoundLevelIncrement; + this.bログ出力 = true; + this.bSudden = new STDGBVALUE(); + this.bHidden = new STDGBVALUE(); + this.bReverse = new STDGBVALUE(); + this.eRandom = new STDGBVALUE(); + this.bLight = new STDGBVALUE(); + this.bLeft = new STDGBVALUE(); + this.e判定位置 = new STDGBVALUE(); // #33891 2014.6.26 yyagi + this.判定文字表示位置 = new STDGBVALUE(); + this.n譜面スクロール速度 = new STDGBVALUE(); + this.nInputAdjustTimeMs = 0; + this.nJudgeLinePosOffset = new STDGBVALUE(); // #31602 2013.6.23 yyagi + this.e判定表示優先度 = E判定表示優先度.Chipより下; + for ( int i = 0; i < 3; i++ ) + { + this.bSudden[ i ] = false; + this.bHidden[ i ] = false; + this.bReverse[ i ] = false; + this.eRandom[ i ] = Eランダムモード.OFF; + this.bLight[ i ] = false; + this.bLeft[ i ] = false; + this.判定文字表示位置[ i ] = E判定文字表示位置.レーン上; + this.n譜面スクロール速度[ i ] = 9; + this.nJudgeLinePosOffset[ i ] = 0; + this.eInvisible[ i ] = EInvisible.OFF; + this.nViewerScrollSpeed[ i ] = 1; + this.e判定位置[ i ] = E判定位置.標準; + //this.e判定表示優先度[ i ] = E判定表示優先度.Chipより下; + } + this.n演奏速度 = 20; + this.b演奏速度が一倍速であるとき以外音声を再生しない = false; + #region [ AutoPlay ] + this.bAutoPlay = new STAUTOPLAY(); + + this.b太鼓パートAutoPlay = true; + this.b太鼓パートAutoPlay2P = true; + this.bAuto先生の連打 = true; + #endregion + this.nヒット範囲ms = new STRANGE(); + this.nヒット範囲ms.Perfect = 30; + this.nヒット範囲ms.Great = -1; //使用しません。 + this.nヒット範囲ms.Good = 100; + this.nヒット範囲ms.Poor = 130; + this.ConfigIniファイル名 = ""; + this.dicJoystick = new Dictionary( 10 ); + this.tデフォルトのキーアサインに設定する(); + #region [ velocityMin ] + this.nVelocityMin.LC = 0; // #23857 2011.1.31 yyagi VelocityMin + this.nVelocityMin.HH = 20; + this.nVelocityMin.SD = 0; + this.nVelocityMin.BD = 0; + this.nVelocityMin.HT = 0; + this.nVelocityMin.LT = 0; + this.nVelocityMin.FT = 0; + this.nVelocityMin.CY = 0; + this.nVelocityMin.RD = 0; + this.nVelocityMin.LP = 0; + this.nVelocityMin.LBD = 0; + #endregion + this.nRisky = 0; // #23539 2011.7.26 yyagi RISKYモード + this.bIsAutoResultCapture = false; // #25399 2011.6.9 yyagi リザルト画像自動保存機能ON/OFF + + this.bバッファ入力を行う = true; + this.bIsAllowedDoubleClickFullscreen = true; // #26752 2011.11.26 ダブルクリックでのフルスクリーンモード移行を許可 + this.nPoliphonicSounds = 4; // #28228 2012.5.1 yyagi レーン毎の最大同時発音数 + // #24820 2013.1.15 yyagi 初期値を4から2に変更。BASS.net使用時の負荷軽減のため。 + // #24820 2013.1.17 yyagi 初期値を4に戻した。動的なミキサー制御がうまく動作しているため。 + this.bIsEnabledSystemMenu = true; // #28200 2012.5.1 yyagi System Menuの利用可否切替(使用可) + this.strSystemSkinSubfolderFullName = ""; // #28195 2012.5.2 yyagi 使用中のSkinサブフォルダ名 + this.bTight = false; // #29500 2012.9.11 kairera0467 TIGHTモード + #region [ WASAPI/ASIO ] + this.nSoundDeviceType = FDK.COS.bIsVistaOrLater ? + (int) ESoundDeviceTypeForConfig.WASAPI : (int) ESoundDeviceTypeForConfig.ACM; // #24820 2012.12.23 yyagi 初期値はACM | #31927 2013.8.25 yyagi OSにより初期値変更 + this.nWASAPIBufferSizeMs = 50; // #24820 2013.1.15 yyagi 初期値は50(0で自動設定) + this.nASIODevice = 0; // #24820 2013.1.17 yyagi +// this.nASIOBufferSizeMs = 0; // #24820 2012.12.25 yyagi 初期値は0(自動設定) + #endregion + this.bUseOSTimer = false;; // #33689 2014.6.6 yyagi 初期値はfalse (FDKのタイマー。FROM氏考案の独自タイマー) + this.bDynamicBassMixerManagement = true; // + this.bTimeStretch = false; // #23664 2013.2.24 yyagi 初期値はfalse (再生速度変更を、ピッチ変更にて行う) + this.nDisplayTimesMs = 3000; // #32072 2013.10.24 yyagi Semi-Invisibleでの、チップ再表示期間 + this.nFadeoutTimeMs = 2000; // #32072 2013.10.24 yyagi Semi-Invisibleでの、チップフェードアウト時間 + + bViewerVSyncWait = true; + bViewerShowDebugStatus = true; + bViewerTimeStretch = false; + bViewerDrums有効 = true; + bViewerGuitar有効 = true; + + + + this.bBranchGuide = false; + this.nScoreMode = 2; + this.nDefaultCourse = 3; + this.nBranchAnime = 1; + + this.b大音符判定 = false; + this.n両手判定の待ち時間 = 50; + + this.bJudgeCountDisplay = false; + + ShowChara = true; + ShowDancer = true; + ShowRunner = true; + ShowFooter = true; + ShowMob = true; + ShowPuchiChara = true; + + this.eSTEALTH = Eステルスモード.OFF; + this.bNoInfo = false; + + //this.bNoMP3Streaming = false; + this.nMasterVolume = 100; // #33700 2014.4.26 yyagi マスターボリュームの設定(WASAPI/ASIO用) + this.bHispeedRandom = false; + this.nDefaultSongSort = 2; + this.eGameMode = EGame.OFF; + this.TokkunMashInterval = 750; + this.bEndingAnime = false; + this.nPlayerCount = 1; //2017.08.18 kairera0467 マルチプレイ対応 + ShinuchiMode = false; + FastRender = true; + MusicPreTimeMs = 1000; // 一秒 + SendDiscordPlayingInformation = true; + #region[ Ver.K追加 ] + this.eLaneType = Eレーンタイプ.TypeA; + this.bDirectShowMode = false; + #endregion + } + public CConfigIni( string iniファイル名 ) + : this() + { + this.tファイルから読み込み( iniファイル名 ); + } + + + // メソッド + + public void t指定した入力が既にアサイン済みである場合はそれを全削除する( E入力デバイス DeviceType, int nID, int nCode ) + { + for( int i = 0; i <= (int)EKeyConfigPart.SYSTEM; i++ ) + { + for( int j = 0; j <= (int)EKeyConfigPad.Capture; j++ ) + { + for( int k = 0; k < 0x10; k++ ) + { + if( ( ( this.KeyAssign[ i ][ j ][ k ].入力デバイス == DeviceType ) && ( this.KeyAssign[ i ][ j ][ k ].ID == nID ) ) && ( this.KeyAssign[ i ][ j ][ k ].コード == nCode ) ) + { + for( int m = k; m < 15; m++ ) + { + this.KeyAssign[ i ][ j ][ m ] = this.KeyAssign[ i ][ j ][ m + 1 ]; + } + this.KeyAssign[ i ][ j ][ 15 ].入力デバイス = E入力デバイス.不明; + this.KeyAssign[ i ][ j ][ 15 ].ID = 0; + this.KeyAssign[ i ][ j ][ 15 ].コード = 0; + k--; + } + } + } + } + } + public void t書き出し( string iniファイル名 ) + { + StreamWriter sw = new StreamWriter( iniファイル名, false, Encoding.GetEncoding( "Shift_JIS" ) ); + sw.WriteLine( ";-------------------" ); + + #region [ System ] + sw.WriteLine( "[System]" ); + sw.WriteLine(); + +#if false // #23625 2011.1.11 Config.iniからダメージ/回復値の定数変更を行う場合はここを有効にする 087リリースに合わせ機能無効化 + //------------------------------ + sw.WriteLine("; ライフゲージのパラメータ調整(調整完了後削除予定)"); + sw.WriteLine("; GaugeFactorD: ドラムのPerfect, Great,... の回復量(ライフMAXを1.0としたときの値を指定)"); + sw.WriteLine("; GaugeFactorG: Gt/BsのPerfect, Great,... の回復量(ライフMAXを1.0としたときの値を指定)"); + sw.WriteLine("; DamageFactorD: DamageLevelがSmall, Normal, Largeの時に対するダメージ係数"); + sw.WriteLine("GaugeFactorD={0}, {1}, {2}, {3}, {4}", this.fGaugeFactor[0, 0], this.fGaugeFactor[1, 0], this.fGaugeFactor[2, 0], this.fGaugeFactor[3, 0], this.fGaugeFactor[4, 0]); + sw.WriteLine("GaugeFactorG={0}, {1}, {2}, {3}, {4}", this.fGaugeFactor[0, 1], this.fGaugeFactor[1, 1], this.fGaugeFactor[2, 1], this.fGaugeFactor[3, 1], this.fGaugeFactor[4, 1]); + sw.WriteLine("DamageFactor={0}, {1}, {2}", this.fDamageLevelFactor[0], this.fDamageLevelFactor[1], fDamageLevelFactor[2]); + sw.WriteLine(); + //------------------------------ +#endif + #region [ Version ] + sw.WriteLine( "; リリースバージョン" ); + sw.WriteLine( "; Release Version." ); + sw.WriteLine( "Version={0}", TJAPlayer3.VERSION ); + sw.WriteLine(); + #endregion + #region [ TJAPath ] + sw.WriteLine( "; 譜面ファイルが格納されているフォルダへのパス。" ); + sw.WriteLine( @"; セミコロン(;)で区切ることにより複数のパスを指定できます。(例: d:\tja\;e:\tja2\)" ); + sw.WriteLine( "; Pathes for TJA data." ); + sw.WriteLine( @"; You can specify many pathes separated with semicolon(;). (e.g. d:\tja\;e:\tja2\)" ); + sw.WriteLine( "TJAPath={0}", this.str曲データ検索パス ); + sw.WriteLine(); + #endregion + #region [ スキン関連 ] + #region [ Skinパスの絶対パス→相対パス変換 ] + Uri uriRoot = new Uri( System.IO.Path.Combine( TJAPlayer3.strEXEのあるフォルダ, "System" + System.IO.Path.DirectorySeparatorChar ) ); + if ( strSystemSkinSubfolderFullName != null && strSystemSkinSubfolderFullName.Length == 0 ) + { + // Config.iniが空の状態でDTXManiaをViewerとして起動_終了すると、strSystemSkinSubfolderFullName が空の状態でここに来る。 + // → 初期値として Default/ を設定する。 + strSystemSkinSubfolderFullName = System.IO.Path.Combine( TJAPlayer3.strEXEのあるフォルダ, "System" + System.IO.Path.DirectorySeparatorChar + "Default" + System.IO.Path.DirectorySeparatorChar ); + } + Uri uriPath = new Uri( System.IO.Path.Combine( this.strSystemSkinSubfolderFullName, "." + System.IO.Path.DirectorySeparatorChar ) ); + string relPath = uriRoot.MakeRelativeUri( uriPath ).ToString(); // 相対パスを取得 + relPath = System.Web.HttpUtility.UrlDecode( relPath ); // デコードする + relPath = relPath.Replace( '/', System.IO.Path.DirectorySeparatorChar ); // 区切り文字が\ではなく/なので置換する + #endregion + sw.WriteLine( "; 使用するSkinのフォルダ名。" ); + sw.WriteLine( "; 例えば System\\Default\\Graphics\\... などの場合は、SkinPath=.\\Default\\ を指定します。" ); + sw.WriteLine( "; Skin folder path." ); + sw.WriteLine( "; e.g. System\\Default\\Graphics\\... -> Set SkinPath=.\\Default\\" ); + sw.WriteLine( "SkinPath={0}", relPath ); + sw.WriteLine(); + sw.WriteLine("; 事前画像描画機能を使うかどうか。(0: OFF, 1: ON)"); + sw.WriteLine("; Use pre-textures render."); + sw.WriteLine("{0}={1}", nameof(FastRender), FastRender ? 1 : 0); + sw.WriteLine(); + #endregion + #region [ Window関連 ] + sw.WriteLine( "; 画面モード(0:ウィンドウ, 1:全画面)" ); + sw.WriteLine( "; Screen mode. (0:Window, 1:Fullscreen)" ); + sw.WriteLine( "FullScreen={0}", this.b全画面モード ? 1 : 0 ); + sw.WriteLine(); + sw.WriteLine("; ウインドウモード時の画面幅"); // #23510 2010.10.31 yyagi add + sw.WriteLine("; A width size in the window mode."); // + sw.WriteLine("WindowWidth={0}", this.nウインドウwidth); // + sw.WriteLine(); // + sw.WriteLine("; ウインドウモード時の画面高さ"); // + sw.WriteLine("; A height size in the window mode."); // + sw.WriteLine("WindowHeight={0}", this.nウインドウheight); // + sw.WriteLine(); // + sw.WriteLine( "; ウィンドウモード時の位置X" ); // #30675 2013.02.04 ikanick add + sw.WriteLine( "; X position in the window mode." ); // + sw.WriteLine( "WindowX={0}", this.n初期ウィンドウ開始位置X ); // + sw.WriteLine(); // + sw.WriteLine( "; ウィンドウモード時の位置Y" ); // + sw.WriteLine( "; Y position in the window mode." ); // + sw.WriteLine( "WindowY={0}", this.n初期ウィンドウ開始位置Y ); // + sw.WriteLine(); // + + sw.WriteLine( "; ウインドウをダブルクリックした時にフルスクリーンに移行するか(0:移行しない,1:移行する)" ); // #26752 2011.11.27 yyagi + sw.WriteLine( "; Whether double click to go full screen mode or not.(0:No, 1:Yes)" ); // + sw.WriteLine( "DoubleClickFullScreen={0}", this.bIsAllowedDoubleClickFullscreen? 1 : 0); // + sw.WriteLine(); // + sw.WriteLine( "; ALT+SPACEのメニュー表示を抑制するかどうか(0:抑制する 1:抑制しない)" ); // #28200 2012.5.1 yyagi + sw.WriteLine( "; Whether ALT+SPACE menu would be masked or not.(0=masked 1=not masked)" ); // + sw.WriteLine( "EnableSystemMenu={0}", this.bIsEnabledSystemMenu? 1 : 0 ); // + sw.WriteLine(); // + sw.WriteLine( "; 非フォーカス時のsleep値[ms]" ); // #23568 2011.11.04 ikanick add + sw.WriteLine( "; A sleep time[ms] while the window is inactive." ); // + sw.WriteLine( "BackSleep={0}", this.n非フォーカス時スリープms ); // そのまま引用(苦笑) + sw.WriteLine(); // + #endregion + #region [ フォント ] + sw.WriteLine("; フォントレンダリングに使用するフォント名"); + sw.WriteLine("; Font name used for font rendering."); + sw.WriteLine("FontName={0}", this.FontName); + sw.WriteLine(); + sw.WriteLine("; Boxの説明文のフォントレンダリングに使用するフォント名"); + sw.WriteLine("; Font name used for font rendering."); + sw.WriteLine("BoxFontName={0}", this.BoxFontName); + sw.WriteLine(); + #endregion + #region [ フレーム処理関連(VSync, フレーム毎のsleep) ] + sw.WriteLine("; 垂直帰線同期(0:OFF,1:ON)"); + sw.WriteLine( "VSyncWait={0}", this.b垂直帰線待ちを行う ? 1 : 0 ); + sw.WriteLine(); + sw.WriteLine( "; フレーム毎のsleep値[ms] (-1でスリープ無し, 0以上で毎フレームスリープ。動画キャプチャ等で活用下さい)" ); // #xxxxx 2011.11.27 yyagi add + sw.WriteLine( "; A sleep time[ms] per frame." ); // + sw.WriteLine( "SleepTimePerFrame={0}", this.nフレーム毎スリープms ); // + sw.WriteLine(); // + #endregion + + #region [ WASAPI/ASIO関連 ] + sw.WriteLine( "; サウンド出力方式(0=ACM(って今はまだDirectSoundですが), 1=ASIO, 2=WASAPI)" ); + sw.WriteLine( "; WASAPIはVista以降のOSで使用可能。推奨方式はWASAPI。" ); + sw.WriteLine( "; なお、WASAPIが使用不可ならASIOを、ASIOが使用不可ならACMを使用します。" ); + sw.WriteLine( "; Sound device type(0=ACM, 1=ASIO, 2=WASAPI)" ); + sw.WriteLine( "; WASAPI can use on Vista or later OSs." ); + sw.WriteLine( "; If WASAPI is not available, DTXMania try to use ASIO. If ASIO can't be used, ACM is used." ); + sw.WriteLine( "SoundDeviceType={0}", (int) this.nSoundDeviceType ); + sw.WriteLine(); + + sw.WriteLine( "; WASAPI使用時のサウンドバッファサイズ" ); + sw.WriteLine( "; (0=デバイスに設定されている値を使用, 1~9999=バッファサイズ(単位:ms)の手動指定" ); + sw.WriteLine( "; WASAPI Sound Buffer Size." ); + sw.WriteLine( "; (0=Use system default buffer size, 1-9999=specify the buffer size(ms) by yourself)" ); + sw.WriteLine( "WASAPIBufferSizeMs={0}", (int) this.nWASAPIBufferSizeMs ); + sw.WriteLine(); + + sw.WriteLine( "; ASIO使用時のサウンドデバイス" ); + sw.WriteLine( "; 存在しないデバイスを指定すると、DTXManiaが起動しないことがあります。" ); + sw.WriteLine( "; Sound device used by ASIO." ); + sw.WriteLine( "; Don't specify unconnected device, as the DTXMania may not bootup." ); + string[] asiodev = CEnumerateAllAsioDevices.GetAllASIODevices(); + for ( int i = 0; i < asiodev.Length; i++ ) + { + sw.WriteLine( "; {0}: {1}", i, asiodev[ i ] ); + } + sw.WriteLine( "ASIODevice={0}", (int) this.nASIODevice ); + sw.WriteLine(); + + //sw.WriteLine( "; ASIO使用時のサウンドバッファサイズ" ); + //sw.WriteLine( "; (0=デバイスに設定されている値を使用, 1~9999=バッファサイズ(単位:ms)の手動指定" ); + //sw.WriteLine( "; ASIO Sound Buffer Size." ); + //sw.WriteLine( "; (0=Use the value specified to the device, 1-9999=specify the buffer size(ms) by yourself)" ); + //sw.WriteLine( "ASIOBufferSizeMs={0}", (int) this.nASIOBufferSizeMs ); + //sw.WriteLine(); + + //sw.WriteLine( "; Bass.Mixの制御を動的に行うか否か。" ); + //sw.WriteLine( "; ONにすると、ギター曲などチップ音の多い曲も再生できますが、画面が少しがたつきます。" ); + //sw.WriteLine( "; (0=行わない, 1=行う)" ); + //sw.WriteLine( "DynamicBassMixerManagement={0}", this.bDynamicBassMixerManagement ? 1 : 0 ); + //sw.WriteLine(); + + sw.WriteLine( "; WASAPI/ASIO時に使用する演奏タイマーの種類" ); + sw.WriteLine( "; Playback timer used for WASAPI/ASIO" ); + sw.WriteLine( "; (0=FDK Timer, 1=System Timer)" ); + sw.WriteLine( "SoundTimerType={0}", this.bUseOSTimer ? 1 : 0 ); + sw.WriteLine(); + + //sw.WriteLine( "; 全体ボリュームの設定" ); + //sw.WriteLine( "; (0=無音 ~ 100=最大。WASAPI/ASIO時のみ有効)" ); + //sw.WriteLine( "; Master volume settings" ); + //sw.WriteLine( "; (0=Silent - 100=Max)" ); + //sw.WriteLine( "MasterVolume={0}", this.nMasterVolume ); + //sw.WriteLine(); + + #endregion + sw.WriteLine( "; 背景画像の半透明割合(0:透明~255:不透明)" ); + sw.WriteLine( "; Transparency for background image in playing screen.(0:tranaparent - 255:no transparent)" ); + sw.WriteLine( "BGAlpha={0}", this.nBGAlpha ); + sw.WriteLine(); + sw.WriteLine( "; ゲージゼロでSTAGE FAILED (0:OFF, 1:ON)" ); + sw.WriteLine( "StageFailed={0}", this.bSTAGEFAILED有効 ? 1 : 0 ); + sw.WriteLine(); + #region [ AVI/BGA ] + sw.WriteLine( "; AVIの表示(0:OFF, 1:ON)" ); + sw.WriteLine( "AVI={0}", this.bAVI有効 ? 1 : 0 ); + sw.WriteLine(); + sw.WriteLine( "; BGAの表示(0:OFF, 1:ON)" ); + sw.WriteLine( "BGA={0}", this.bBGA有効 ? 1 : 0 ); + sw.WriteLine(); + sw.WriteLine( "; 動画表示モード( 0:表示しない, 1:背景のみ, 2:窓表示のみ, 3:両方)" ); + sw.WriteLine( "ClipDispType={0}", (int) this.eClipDispType ); + sw.WriteLine(); + #endregion + #region [ プレビュー音 ] + sw.WriteLine( "; 曲選択からプレビュー音の再生までのウェイト[ms]" ); + sw.WriteLine( "PreviewSoundWait={0}", this.n曲が選択されてからプレビュー音が鳴るまでのウェイトms ); + sw.WriteLine(); + sw.WriteLine( "; 曲選択からプレビュー画像表示までのウェイト[ms]" ); + sw.WriteLine( "PreviewImageWait={0}", this.n曲が選択されてからプレビュー画像が表示開始されるまでのウェイトms ); + sw.WriteLine(); + #endregion + //sw.WriteLine( "; Waveの再生位置自動補正(0:OFF, 1:ON)" ); + //sw.WriteLine( "AdjustWaves={0}", this.bWave再生位置自動調整機能有効 ? 1 : 0 ); + #region [ BGM/ドラムヒット音の再生 ] + sw.WriteLine( "; BGM の再生(0:OFF, 1:ON)" ); + sw.WriteLine( "BGMSound={0}", this.bBGM音を発声する ? 1 : 0 ); + sw.WriteLine(); + #endregion + sw.WriteLine( "; 演奏記録(~.score.ini)の出力 (0:OFF, 1:ON)" ); + sw.WriteLine( "SaveScoreIni={0}", this.bScoreIniを出力する ? 1 : 0 ); + sw.WriteLine(); + sw.WriteLine("; 最小表示コンボ数"); + sw.WriteLine("MinComboDrums={0}", this.n表示可能な最小コンボ数.Drums); + sw.WriteLine(); + sw.WriteLine( "; RANDOM SELECT で子BOXを検索対象に含める (0:OFF, 1:ON)" ); + sw.WriteLine( "RandomFromSubBox={0}", this.bランダムセレクトで子BOXを検索対象とする ? 1 : 0 ); + sw.WriteLine(); + sw.WriteLine( "; 演奏情報を表示する (0:OFF, 1:ON)" ); + sw.WriteLine( "; Showing playing info on the playing screen. (0:OFF, 1:ON)" ); + sw.WriteLine( "ShowDebugStatus={0}", this.b演奏情報を表示する ? 1 : 0 ); + sw.WriteLine(); + sw.WriteLine("; BS1770GAIN によるラウドネスメータの測量を適用する (0:OFF, 1:ON)"); + sw.WriteLine( "; Apply BS1770GAIN loudness metadata (0:OFF, 1:ON)" ); + sw.WriteLine( "{0}={1}", nameof(ApplyLoudnessMetadata), this.ApplyLoudnessMetadata ? 1 : 0 ); + sw.WriteLine(); + sw.WriteLine( $"; BS1770GAIN によるラウドネスメータの目標値 (0). ({CSound.MinimumLufs}-{CSound.MaximumLufs})" ); + sw.WriteLine( $"; Loudness Target in dB (decibels) relative to full scale (0). ({CSound.MinimumLufs}-{CSound.MaximumLufs})" ); + sw.WriteLine( "{0}={1}", nameof(TargetLoudness), TargetLoudness ); + sw.WriteLine(); + sw.WriteLine("; .tjaファイルのSONGVOLヘッダを音源の音量に適用する (0:OFF, 1:ON)"); + sw.WriteLine( "; Apply SONGVOL (0:OFF, 1:ON)" ); + sw.WriteLine( "{0}={1}", nameof(ApplySongVol), this.ApplySongVol ? 1 : 0 ); + sw.WriteLine(); + sw.WriteLine( $"; 効果音の音量 ({CSound.MinimumGroupLevel}-{CSound.MaximumGroupLevel}%)" ); + sw.WriteLine( $"; Sound effect level ({CSound.MinimumGroupLevel}-{CSound.MaximumGroupLevel}%)" ); + sw.WriteLine( "{0}={1}", nameof(SoundEffectLevel), SoundEffectLevel ); + sw.WriteLine(); + sw.WriteLine( $"; 各ボイス、コンボボイスの音量 ({CSound.MinimumGroupLevel}-{CSound.MaximumGroupLevel}%)" ); + sw.WriteLine( $"; Voice level ({CSound.MinimumGroupLevel}-{CSound.MaximumGroupLevel}%)" ); + sw.WriteLine( "{0}={1}", nameof(VoiceLevel), VoiceLevel ); + sw.WriteLine(); + sw.WriteLine( $"; ゲーム中の音源の音量 ({CSound.MinimumGroupLevel}-{CSound.MaximumGroupLevel}%)" ); + sw.WriteLine( $"; Song playback level ({CSound.MinimumGroupLevel}-{CSound.MaximumGroupLevel}%)" ); + sw.WriteLine( "{0}={1}", nameof(SongPlaybackLevel), SongPlaybackLevel ); + sw.WriteLine(); + sw.WriteLine( $"; キーボードによる音量変更の増加量、減少量 ({MinimumKeyboardSoundLevelIncrement}-{MaximumKeyboardSoundLevelIncrement})" ); + sw.WriteLine( $"; Keyboard sound level increment ({MinimumKeyboardSoundLevelIncrement}-{MaximumKeyboardSoundLevelIncrement})" ); + sw.WriteLine( "{0}={1}", nameof(KeyboardSoundLevelIncrement), KeyboardSoundLevelIncrement ); + sw.WriteLine($"; 音源再生前の空白時間 (ms)"); + sw.WriteLine($"; Blank time before music source to play. (ms)"); + sw.WriteLine("{0}={1}", nameof(MusicPreTimeMs), MusicPreTimeMs); + sw.WriteLine(); + sw.WriteLine( "; ストイックモード(0:OFF, 1:ON)" ); + sw.WriteLine( "; Stoic mode. (0:OFF, 1:ON)" ); + sw.WriteLine( "StoicMode={0}", this.bストイックモード ? 1 : 0 ); + sw.WriteLine(); + sw.WriteLine( "; バッファ入力モード(0:OFF, 1:ON)" ); + sw.WriteLine( "; Using Buffered input (0:OFF, 1:ON)" ); + sw.WriteLine( "BufferedInput={0}", this.bバッファ入力を行う ? 1 : 0 ); + sw.WriteLine(); + sw.WriteLine( "; リザルト画像自動保存機能(0:OFF, 1:ON)" ); // #25399 2011.6.9 yyagi + sw.WriteLine( "; Set \"1\" if you'd like to save result screen image automatically"); // + sw.WriteLine( "; when you get hiscore/hiskill."); // + sw.WriteLine( "AutoResultCapture={0}", this.bIsAutoResultCapture? 1 : 0 ); // + sw.WriteLine(); + sw.WriteLine("; Discordに再生中の譜面情報を送信する(0:OFF, 1:ON)"); // #25399 2011.6.9 yyagi + sw.WriteLine("; Share Playing .tja file infomation on Discord."); // + sw.WriteLine("{0}={1}", nameof(SendDiscordPlayingInformation), SendDiscordPlayingInformation ? 1 : 0); // + sw.WriteLine(); + sw.WriteLine( "; 再生速度変更を、ピッチ変更で行うかどうか(0:ピッチ変更, 1:タイムストレッチ" ); // #23664 2013.2.24 yyagi + sw.WriteLine( "; (WASAPI/ASIO使用時のみ有効) " ); + sw.WriteLine( "; Set \"0\" if you'd like to use pitch shift with PlaySpeed." ); // + sw.WriteLine( "; Set \"1\" for time stretch." ); // + sw.WriteLine( "; (Only available when you're using using WASAPI or ASIO)" ); // + sw.WriteLine( "TimeStretch={0}", this.bTimeStretch ? 1 : 0 ); // + sw.WriteLine(); + //sw.WriteLine( "; WASAPI/ASIO使用時に、MP3をストリーム再生するかどうか(0:ストリーム再生する, 1:しない)" ); // + //sw.WriteLine( "; (mp3のシークがおかしくなる場合は、これを1にしてください) " ); // + //sw.WriteLine( "; Set \"0\" if you'd like to use mp3 streaming playback on WASAPI/ASIO." ); // + //sw.WriteLine( "; Set \"1\" not to use streaming playback for mp3." ); // + //sw.WriteLine( "; (If you feel illegal seek with mp3, please set it to 1.)" ); // + //sw.WriteLine( "NoMP3Streaming={0}", this.bNoMP3Streaming ? 1 : 0 ); // + //sw.WriteLine(); + sw.WriteLine( "; 動画再生にDirectShowを使用する(0:OFF, 1:ON)" ); + sw.WriteLine( "; 動画再生にDirectShowを使うことによって、再生時の負担を軽減できます。"); + sw.WriteLine( "; ただし使用時にはセットアップが必要になるのでご注意ください。"); + sw.WriteLine( "DirectShowMode={0}", this.bDirectShowMode ? 1 : 0 ); + sw.WriteLine(); + + #region [ Adjust ] + sw.WriteLine( "; 判定タイミング調整(-99~99)[ms]" ); + sw.WriteLine("; Revision value to adjust judgment timing."); // + sw.WriteLine("InputAdjustTime={0}", this.nInputAdjustTimeMs); // + sw.WriteLine(); + + sw.WriteLine( "; 判定ラインの表示位置調整(ドラム, ギター, ベース)(-99~99)[px]" ); // #31602 2013.6.23 yyagi 判定ラインの表示位置オフセット + sw.WriteLine( "; Offset value to adjust displaying judgement line for the drums, guitar and bass." ); // + sw.WriteLine( "JudgeLinePosOffsetDrums={0}", this.nJudgeLinePosOffset.Drums ); // + sw.WriteLine(); + #endregion + sw.WriteLine( "; 「また遊んでね」画面(0:OFF, 1:ON)" ); + sw.WriteLine( "EndingAnime={0}", this.bEndingAnime ? 1 : 0 ); + sw.WriteLine(); + sw.WriteLine( ";-------------------" ); + #endregion + + #region [ AutoPlay ] + sw.WriteLine("[AutoPlay]"); + sw.WriteLine(); + sw.WriteLine("; 自動演奏(0:OFF, 1:ON)"); + sw.WriteLine("Taiko={0}", this.b太鼓パートAutoPlay ? 1 : 0); + sw.WriteLine("Taiko2P={0}", this.b太鼓パートAutoPlay2P ? 1 : 0); + sw.WriteLine("TaikoAutoRoll={0}", this.bAuto先生の連打 ? 1 : 0); + sw.WriteLine(); + sw.WriteLine(";-------------------"); + #endregion + + #region [ HitRange ] + sw.WriteLine("[HitRange]"); + sw.WriteLine(); + sw.WriteLine("; Perfect~Poor とみなされる範囲[ms]"); + sw.WriteLine("Perfect={0}", this.nヒット範囲ms.Perfect); + sw.WriteLine("Good={0}", this.nヒット範囲ms.Good); + sw.WriteLine("Poor={0}", this.nヒット範囲ms.Poor); + sw.WriteLine(); + sw.WriteLine(";-------------------"); + #endregion + + #region [ Log ] + sw.WriteLine( "[Log]" ); + sw.WriteLine(); + sw.WriteLine( "; Log出力(0:OFF, 1:ON)" ); + sw.WriteLine( "OutputLog={0}", this.bログ出力 ? 1 : 0 ); + sw.WriteLine(); + sw.WriteLine( "; 曲データ検索に関するLog出力(0:OFF, 1:ON)" ); + sw.WriteLine( "TraceSongSearch={0}", this.bLog曲検索ログ出力 ? 1 : 0 ); + sw.WriteLine(); + sw.WriteLine( "; 画像やサウンドの作成_解放に関するLog出力(0:OFF, 1:ON)" ); + sw.WriteLine( "TraceCreatedDisposed={0}", this.bLog作成解放ログ出力 ? 1 : 0 ); + sw.WriteLine(); + sw.WriteLine( "; DTX読み込み詳細に関するLog出力(0:OFF, 1:ON)" ); + sw.WriteLine( "TraceDTXDetails={0}", this.bLogDTX詳細ログ出力 ? 1 : 0 ); + sw.WriteLine(); + sw.WriteLine( ";-------------------" ); + #endregion + + #region [ PlayOption ] + sw.WriteLine( "[PlayOption]" ); + sw.WriteLine(); + sw.WriteLine("; 各画像の表示設定"); + sw.WriteLine("; キャラクター画像を表示する (0:OFF, 1:ON)"); + sw.WriteLine("ShowChara={0}", ShowChara ? 1 : 0); + sw.WriteLine("; ダンサー画像を表示する (0:OFF, 1:ON)"); + sw.WriteLine("ShowDancer={0}", ShowDancer ? 1 : 0); + sw.WriteLine("; ランナー画像を表示する (0:OFF, 1:ON)"); + sw.WriteLine("ShowRunner={0}", ShowRunner ? 1 : 0); + sw.WriteLine("; モブ画像を表示する (0:OFF, 1:ON)"); + sw.WriteLine("ShowMob={0}", ShowMob ? 1 : 0); + sw.WriteLine("; フッター画像 (0:OFF, 1:ON)"); + sw.WriteLine("ShowFooter={0}", ShowFooter ? 1 : 0); + sw.WriteLine("; ぷちキャラ画像 (0:OFF, 1:ON)"); + sw.WriteLine("ShowPuchiChara={0}", ShowPuchiChara ? 1 : 0); + sw.WriteLine(); + sw.WriteLine( "; DARKモード(0:OFF, 1:HALF, 2:FULL)" ); + sw.WriteLine( "Dark={0}", (int) this.eDark ); + sw.WriteLine(); + sw.WriteLine(); + sw.WriteLine("; 選曲画面でのタイマーを有効にするかどうか(0:無効,1:有効)"); + sw.WriteLine("; Enable countdown in songselect.(0:No, 1:Yes)"); + sw.WriteLine("EnableCountDownTimer={0}", this.bEnableCountdownTimer ? 1 : 0); + sw.WriteLine(); + #region [ SUDDEN ] + sw.WriteLine( "; ドラムSUDDENモード(0:OFF, 1:ON)" ); + sw.WriteLine( "DrumsSudden={0}", this.bSudden.Drums ? 1 : 0 ); + sw.WriteLine(); + #endregion + #region [ HIDDEN ] + sw.WriteLine( "; ドラムHIDDENモード(0:OFF, 1:ON)" ); + sw.WriteLine( "DrumsHidden={0}", this.bHidden.Drums ? 1 : 0 ); + sw.WriteLine(); + #endregion + #region [ Invisible ] + sw.WriteLine( "; ドラムチップ非表示モード (0:OFF, 1=SEMI, 2:FULL)" ); + sw.WriteLine( "; Drums chip invisible mode" ); + sw.WriteLine( "DrumsInvisible={0}", (int) this.eInvisible.Drums ); + sw.WriteLine(); + //sw.WriteLine( "; Semi-InvisibleでMissった時のチップ再表示時間(ms)" ); + //sw.WriteLine( "InvisibleDisplayTimeMs={0}", (int) this.nDisplayTimesMs ); + //sw.WriteLine(); + //sw.WriteLine( "; Semi-InvisibleでMissってチップ再表示時間終了後のフェードアウト時間(ms)" ); + //sw.WriteLine( "InvisibleFadeoutTimeMs={0}", (int) this.nFadeoutTimeMs ); + //sw.WriteLine(); + #endregion + sw.WriteLine( "; ドラムREVERSEモード(0:OFF, 1:ON)" ); + sw.WriteLine( "DrumsReverse={0}", this.bReverse.Drums ? 1 : 0 ); + sw.WriteLine(); + sw.WriteLine( "; RISKYモード(0:OFF, 1-10)" ); // #23559 2011.6.23 yyagi + sw.WriteLine( "; RISKY mode. 0=OFF, 1-10 is the times of misses to be Failed." ); // + sw.WriteLine( "Risky={0}", this.nRisky ); // + sw.WriteLine(); + sw.WriteLine( "; TIGHTモード(0:OFF, 1:ON)" ); // #29500 2012.9.11 kairera0467 + sw.WriteLine( "; TIGHT mode. 0=OFF, 1=ON " ); + sw.WriteLine( "DrumsTight={0}", this.bTight ? 1 : 0 ); + sw.WriteLine(); + sw.WriteLine("; ドラム譜面スクロール速度(0:x0.1, 9:x1.0, 14:x1.5,…,1999:x200.0)"); + sw.WriteLine( "DrumsScrollSpeed={0}", this.n譜面スクロール速度.Drums ); + sw.WriteLine(); + sw.WriteLine( "; 演奏速度(5~40)(→x5/20~x40/20)" ); + sw.WriteLine( "PlaySpeed={0}", this.n演奏速度 ); + sw.WriteLine(); + + sw.WriteLine("; 演奏速度が一倍速であるときのみBGMを再生する(0:OFF, 1:ON)"); + sw.WriteLine("PlaySpeedNotEqualOneNoSound={0}", this.b演奏速度が一倍速であるとき以外音声を再生しない ? 1 : 0); + sw.WriteLine(); + sw.WriteLine("; デフォルトで選択される難易度"); + sw.WriteLine("DefaultCourse={0}", this.nDefaultCourse); + sw.WriteLine(); + sw.WriteLine( "; 譜面分岐のガイド表示(0:OFF, 1:ON)" ); + sw.WriteLine( "BranchGuide={0}", this.bGraph.Drums ? 1 : 0 ); + sw.WriteLine(); + sw.WriteLine( "; スコア計算方法(0:旧配点, 1:旧筐体配点, 2:新配点)" ); + sw.WriteLine( "ScoreMode={0}", this.nScoreMode ); + sw.WriteLine(); + sw.WriteLine("; 真打モード (0:OFF, 1:ON)"); + sw.WriteLine("; Fixed score mode (0:OFF, 1:ON)"); + sw.WriteLine("{0}={1}", nameof(ShinuchiMode), ShinuchiMode ? 1 : 0); + //sw.WriteLine( "; 1ノーツごとのスクロール速度をランダムで変更します。(0:OFF, 1:ON)" ); + //sw.WriteLine( "HispeedRandom={0}", this.bHispeedRandom ? 1 : 0 ); + //sw.WriteLine(); + sw.WriteLine( "; 大音符の両手入力待機時間(ms)" ); + sw.WriteLine( "BigNotesWaitTime={0}", this.n両手判定の待ち時間 ); + sw.WriteLine(); + sw.WriteLine( "; 大音符の両手判定(0:OFF, 1:ON)" ); + sw.WriteLine( "BigNotesJudge={0}", this.b大音符判定 ? 1 : 0 ); + sw.WriteLine(); + sw.WriteLine( "; NoInfo(0:OFF, 1:ON)" ); + sw.WriteLine( "NoInfo={0}", this.bNoInfo ? 1 : 0 ); + sw.WriteLine(); + sw.WriteLine( "; 譜面分岐のアニメーション(0:7~14, 1:15)" ); + sw.WriteLine( "BranchAnime={0}", this.nBranchAnime ); + sw.WriteLine(); + sw.WriteLine( "; デフォルトの曲ソート(0:絶対パス順, 1:ジャンル名ソートOLD, 2:ジャンル名ソートNEW )" ); + sw.WriteLine( "0:Path, 1:GenreName(AC8~AC14), 2GenreName(AC15~)" ); + sw.WriteLine( "DefaultSongSort={0}", this.nDefaultSongSort ); + sw.WriteLine(); + sw.WriteLine( "; RANDOMモード(0:OFF, 1:Random, 2:Mirorr 3:SuperRandom, 4:HyperRandom)" ); + sw.WriteLine( "TaikoRandom={0}", (int) this.eRandom.Taiko ); + sw.WriteLine(); + sw.WriteLine( "; STEALTHモード(0:OFF, 1:ドロン, 2:ステルス)" ); + sw.WriteLine( "TaikoStealth={0}", (int) this.eSTEALTH ); + sw.WriteLine(); + sw.WriteLine( "; ゲーム(0:OFF, 1:完走!叩ききりまショー!, 2:完走!叩ききりまショー!(激辛) )" ); + sw.WriteLine( "GameMode={0}", (int) this.eGameMode ); + sw.WriteLine(); + sw.WriteLine(); + sw.WriteLine("; 特訓モード時にPgUp/PgDnで何小節飛ばすか"); + sw.WriteLine("TokkunSkipMeasures={0}", this.TokkunSkipMeasures); + sw.WriteLine(); + sw.WriteLine("; 特訓モード時にジャンプポイントに飛ばすための時間(ms)"); + sw.WriteLine("; 指定ms以内に5回縁を叩きましょう"); + sw.WriteLine("{1}={0}", this.TokkunMashInterval, nameof(this.TokkunMashInterval)); + sw.WriteLine(); + sw.WriteLine( "; JUST(0:OFF, 1:ON)" ); + sw.WriteLine( "Just={0}", this.bJust ? 1 : 0 ); + sw.WriteLine(); + sw.WriteLine( "; 判定数の表示(0:OFF, 1:ON)" ); + sw.WriteLine( "JudgeCountDisplay={0}", this.bJudgeCountDisplay ? 1 : 0 ); + sw.WriteLine(); + sw.WriteLine( "; プレイ人数" ); + sw.WriteLine( "PlayerCount={0}", this.nPlayerCount ); + sw.WriteLine(); + //sw.WriteLine( "; 選曲画面の初期選択難易度(ベータ版)" ); + //sw.WriteLine( "DifficultPriority={0}", this.bJudgeCountDisplay ? 1 : 0 ); + //sw.WriteLine(); + + sw.WriteLine( ";-------------------" ); + #endregion + #region [ GUID ] + sw.WriteLine( "[GUID]" ); + sw.WriteLine(); + foreach( KeyValuePair pair in this.dicJoystick ) + { + sw.WriteLine( "JoystickID={0},{1}", pair.Key, pair.Value ); + } + #endregion + #region [ DrumsKeyAssign ] + sw.WriteLine(); + sw.WriteLine( ";-------------------" ); + sw.WriteLine( "; キーアサイン" ); + sw.WriteLine( "; 項 目:Keyboard → 'K'+'0'+キーコード(10進数)" ); + sw.WriteLine( "; Mouse → 'N'+'0'+ボタン番号(0~7)" ); + sw.WriteLine( "; MIDI In → 'M'+デバイス番号1桁(0~9,A~Z)+ノート番号(10進数)" ); + sw.WriteLine( "; Joystick → 'J'+デバイス番号1桁(0~9,A~Z)+ 0 ...... X減少(左)ボタン" ); + sw.WriteLine( "; 1 ...... X増加(右)ボタン" ); + sw.WriteLine( "; 2 ...... Y減少(上)ボタン" ); + sw.WriteLine( "; 3 ...... Y増加(下)ボタン" ); + sw.WriteLine( "; 4 ...... Z減少(前)ボタン" ); + sw.WriteLine( "; 5 ...... Z増加(後)ボタン" ); + sw.WriteLine( "; 6~133.. ボタン1~128" ); + sw.WriteLine( "; これらの項目を 16 個まで指定可能(',' で区切って記述)。" ); + sw.WriteLine( ";" ); + sw.WriteLine( "; 表記例:HH=K044,M042,J16" ); + sw.WriteLine( "; → HiHat を Keyboard の 44 ('Z'), MidiIn#0 の 42, JoyPad#1 の 6(ボタン1) に割当て" ); + sw.WriteLine( ";" ); + sw.WriteLine( "; ※Joystick のデバイス番号とデバイスとの関係は [GUID] セクションに記してあるものが有効。" ); + sw.WriteLine( ";" ); + sw.WriteLine(); + sw.WriteLine( "[DrumsKeyAssign]" ); + sw.WriteLine(); + sw.Write( "LeftRed=" ); + this.tキーの書き出し( sw, this.KeyAssign.Drums.LeftRed ); + sw.WriteLine(); + sw.Write( "RightRed=" ); + this.tキーの書き出し( sw, this.KeyAssign.Drums.RightRed ); + sw.WriteLine(); + sw.Write( "LeftBlue=" ); // #27029 2012.1.4 from + this.tキーの書き出し( sw, this.KeyAssign.Drums.LeftBlue ); // + sw.WriteLine(); // + sw.Write( "RightBlue=" ); // #27029 2012.1.4 from + this.tキーの書き出し( sw, this.KeyAssign.Drums.RightBlue ); // + sw.WriteLine(); + sw.Write( "LeftRed2P=" ); + this.tキーの書き出し( sw, this.KeyAssign.Drums.LeftRed2P ); + sw.WriteLine(); + sw.Write( "RightRed2P=" ); + this.tキーの書き出し( sw, this.KeyAssign.Drums.RightRed2P ); + sw.WriteLine(); + sw.Write( "LeftBlue2P=" ); // #27029 2012.1.4 from + this.tキーの書き出し( sw, this.KeyAssign.Drums.LeftBlue2P ); // + sw.WriteLine(); // + sw.Write( "RightBlue2P=" ); // #27029 2012.1.4 from + this.tキーの書き出し( sw, this.KeyAssign.Drums.RightBlue2P ); // + sw.WriteLine(); + sw.WriteLine(); + #endregion + #region [ SystemkeyAssign ] + sw.WriteLine( "[SystemKeyAssign]" ); + sw.WriteLine(); + sw.Write( "Capture=" ); + this.tキーの書き出し( sw, this.KeyAssign.System.Capture ); + sw.WriteLine(); + sw.WriteLine(); + #endregion + + sw.Close(); + } + public void tファイルから読み込み( string iniファイル名 ) + { + this.ConfigIniファイル名 = iniファイル名; + this.bConfigIniが存在している = File.Exists( this.ConfigIniファイル名 ); + if( this.bConfigIniが存在している ) + { + string str; + this.tキーアサインを全部クリアする(); + using ( StreamReader reader = new StreamReader( this.ConfigIniファイル名, Encoding.GetEncoding( "Shift_JIS" ) ) ) + { + str = reader.ReadToEnd(); + } + t文字列から読み込み( str ); + CDTXVersion version = new CDTXVersion( this.strDTXManiaのバージョン ); + //if( version.n整数部 <= 69 ) + //{ + // this.tデフォルトのキーアサインに設定する(); + //} + } + } + + private void t文字列から読み込み( string strAllSettings ) // 2011.4.13 yyagi; refactored to make initial KeyConfig easier. + { + Eセクション種別 unknown = Eセクション種別.Unknown; + string[] delimiter = { "\n" }; + string[] strSingleLine = strAllSettings.Split( delimiter, StringSplitOptions.RemoveEmptyEntries ); + foreach ( string s in strSingleLine ) + { + string str = s.Replace( '\t', ' ' ).TrimStart( new char[] { '\t', ' ' } ); + if ( ( str.Length != 0 ) && ( str[ 0 ] != ';' ) ) + { + try + { + string str3; + string str4; + if ( str[ 0 ] == '[' ) + { + #region [ セクションの変更 ] + //----------------------------- + StringBuilder builder = new StringBuilder( 0x20 ); + int num = 1; + while ( ( num < str.Length ) && ( str[ num ] != ']' ) ) + { + builder.Append( str[ num++ ] ); + } + string str2 = builder.ToString(); + if ( str2.Equals( "System" ) ) + { + unknown = Eセクション種別.System; + } + else if (str2.Equals("AutoPlay")) + { + unknown = Eセクション種別.AutoPlay; + } + else if (str2.Equals("HitRange")) + { + unknown = Eセクション種別.HitRange; + } + else if ( str2.Equals( "Log" ) ) + { + unknown = Eセクション種別.Log; + } + else if ( str2.Equals( "PlayOption" ) ) + { + unknown = Eセクション種別.PlayOption; + } + else if ( str2.Equals( "ViewerOption" ) ) + { + unknown = Eセクション種別.ViewerOption; + } + else if ( str2.Equals( "GUID" ) ) + { + unknown = Eセクション種別.GUID; + } + else if ( str2.Equals( "DrumsKeyAssign" ) ) + { + unknown = Eセクション種別.DrumsKeyAssign; + } + else if ( str2.Equals( "SystemKeyAssign" ) ) + { + unknown = Eセクション種別.SystemKeyAssign; + } + else if( str2.Equals( "Temp" ) ) + { + unknown = Eセクション種別.Temp; + } + else + { + unknown = Eセクション種別.Unknown; + } + //----------------------------- + #endregion + } + else + { + string[] strArray = str.Split( new char[] { '=' } ); + if( strArray.Length == 2 ) + { + str3 = strArray[ 0 ].Trim(); + str4 = strArray[ 1 ].Trim(); + switch( unknown ) + { + #region [ [System] ] + //----------------------------- + case Eセクション種別.System: + { +#if false // #23625 2011.1.11 Config.iniからダメージ/回復値の定数変更を行う場合はここを有効にする 087リリースに合わせ機能無効化 + //---------------------------------------- + if (str3.Equals("GaugeFactorD")) + { + int p = 0; + string[] splittedFactor = str4.Split(','); + foreach (string s in splittedFactor) { + this.fGaugeFactor[p++, 0] = Convert.ToSingle(s); + } + } else + if (str3.Equals("GaugeFactorG")) + { + int p = 0; + string[] splittedFactor = str4.Split(','); + foreach (string s in splittedFactor) + { + this.fGaugeFactor[p++, 1] = Convert.ToSingle(s); + } + } + else + if (str3.Equals("DamageFactor")) + { + int p = 0; + string[] splittedFactor = str4.Split(','); + foreach (string s in splittedFactor) + { + this.fDamageLevelFactor[p++] = Convert.ToSingle(s); + } + } + else + //---------------------------------------- +#endif + #region [ Version ] + if ( str3.Equals( "Version" ) ) + { + this.strDTXManiaのバージョン = str4; + } + #endregion + #region [ TJAPath ] + else if( str3.Equals( "TJAPath" ) ) + { + this.str曲データ検索パス = str4; + } + #endregion + #region [ skin関係 ] + else if ( str3.Equals( "SkinPath" ) ) + { + string absSkinPath = str4; + if ( !System.IO.Path.IsPathRooted( str4 ) ) + { + absSkinPath = System.IO.Path.Combine( TJAPlayer3.strEXEのあるフォルダ, "System" ); + absSkinPath = System.IO.Path.Combine( absSkinPath, str4 ); + Uri u = new Uri( absSkinPath ); + absSkinPath = u.AbsolutePath.ToString(); // str4内に相対パスがある場合に備える + absSkinPath = System.Web.HttpUtility.UrlDecode( absSkinPath ); // デコードする + absSkinPath = absSkinPath.Replace( '/', System.IO.Path.DirectorySeparatorChar ); // 区切り文字が\ではなく/なので置換する + } + if ( absSkinPath[ absSkinPath.Length - 1 ] != System.IO.Path.DirectorySeparatorChar ) // フォルダ名末尾に\を必ずつけて、CSkin側と表記を統一する + { + absSkinPath += System.IO.Path.DirectorySeparatorChar; + } + this.strSystemSkinSubfolderFullName = absSkinPath; + } + else if (str3.Equals(nameof(FastRender))) + { + FastRender = C変換.bONorOFF(str4[0]); + } + #endregion + #region [ Window関係 ] + else if (str3.Equals("FullScreen")) + { + this.b全画面モード = C変換.bONorOFF(str4[0]); + } + else if ( str3.Equals( "WindowX" ) ) // #30675 2013.02.04 ikanick add + { + this.n初期ウィンドウ開始位置X = C変換.n値を文字列から取得して範囲内に丸めて返す( + str4, 0, System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width - 1 , this.n初期ウィンドウ開始位置X ); + } + else if ( str3.Equals( "WindowY" ) ) // #30675 2013.02.04 ikanick add + { + this.n初期ウィンドウ開始位置Y = C変換.n値を文字列から取得して範囲内に丸めて返す( + str4, 0, System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height - 1 , this.n初期ウィンドウ開始位置Y ); + } + else if ( str3.Equals( "WindowWidth" ) ) // #23510 2010.10.31 yyagi add + { + this.nウインドウwidth = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 1, 65535, this.nウインドウwidth ); + if( this.nウインドウwidth <= 0 ) + { + this.nウインドウwidth = SampleFramework.GameWindowSize.Width; + } + } + else if( str3.Equals( "WindowHeight" ) ) // #23510 2010.10.31 yyagi add + { + this.nウインドウheight = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 1, 65535, this.nウインドウheight ); + if( this.nウインドウheight <= 0 ) + { + this.nウインドウheight = SampleFramework.GameWindowSize.Height; + } + } + else if ( str3.Equals( "DoubleClickFullScreen" ) ) // #26752 2011.11.27 yyagi + { + this.bIsAllowedDoubleClickFullscreen = C変換.bONorOFF( str4[ 0 ] ); + } + else if ( str3.Equals( "EnableSystemMenu" ) ) // #28200 2012.5.1 yyagi + { + this.bIsEnabledSystemMenu = C変換.bONorOFF( str4[ 0 ] ); + } + else if ( str3.Equals( "BackSleep" ) ) // #23568 2010.11.04 ikanick add + { + this.n非フォーカス時スリープms = C変換.n値を文字列から取得して範囲内にちゃんと丸めて返す( str4, 0, 50, this.n非フォーカス時スリープms ); + } + #endregion + + #region [ WASAPI/ASIO関係 ] + else if ( str3.Equals( "SoundDeviceType" ) ) + { + this.nSoundDeviceType = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 2, this.nSoundDeviceType ); + } + else if ( str3.Equals( "WASAPIBufferSizeMs" ) ) + { + this.nWASAPIBufferSizeMs = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 9999, this.nWASAPIBufferSizeMs ); + } + else if ( str3.Equals( "ASIODevice" ) ) + { + string[] asiodev = CEnumerateAllAsioDevices.GetAllASIODevices(); + this.nASIODevice = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, asiodev.Length - 1, this.nASIODevice ); + } + //else if ( str3.Equals( "ASIOBufferSizeMs" ) ) + //{ + // this.nASIOBufferSizeMs = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 9999, this.nASIOBufferSizeMs ); + //} + //else if ( str3.Equals( "DynamicBassMixerManagement" ) ) + //{ + // this.bDynamicBassMixerManagement = C変換.bONorOFF( str4[ 0 ] ); + //} + else if ( str3.Equals( "SoundTimerType" ) ) // #33689 2014.6.6 yyagi + { + this.bUseOSTimer = C変換.bONorOFF( str4[ 0 ] ); + } + //else if ( str3.Equals( "MasterVolume" ) ) + //{ + // this.nMasterVolume = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 100, this.nMasterVolume ); + //} + #endregion + + #region [ フォント ] + else if (str3.Equals("FontName")) + { + this.FontName = str4; + } + else if (str3.Equals("BoxFontName")) + { + this.BoxFontName = str4; + } + #endregion + + else if ( str3.Equals( "VSyncWait" ) ) + { + this.b垂直帰線待ちを行う = C変換.bONorOFF( str4[ 0 ] ); + } + else if( str3.Equals( "SleepTimePerFrame" ) ) // #23568 2011.11.27 yyagi + { + this.nフレーム毎スリープms = C変換.n値を文字列から取得して範囲内にちゃんと丸めて返す( str4, -1, 50, this.nフレーム毎スリープms ); + } + else if( str3.Equals( "BGAlpha" ) ) + { + this.n背景の透過度 = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 0xff, this.n背景の透過度 ); + } + else if( str3.Equals( "DamageLevel" ) ) + { + this.eダメージレベル = (Eダメージレベル) C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 2, (int) this.eダメージレベル ); + } + else if ( str3.Equals( "StageFailed" ) ) + { + this.bSTAGEFAILED有効 = C変換.bONorOFF( str4[ 0 ] ); + } + #region [ AVI/BGA ] + else if( str3.Equals( "AVI" ) ) + { + this.bAVI有効 = C変換.bONorOFF( str4[ 0 ] ); + } + else if( str3.Equals( "BGA" ) ) + { + this.bBGA有効 = C変換.bONorOFF( str4[ 0 ] ); + } + else if( str3.Equals( "ClipDispType" ) ) + { + this.eClipDispType = (EClipDispType)C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 3, (int) this.eClipDispType ); + } + #endregion + #region [ プレビュー音 ] + else if( str3.Equals( "PreviewSoundWait" ) ) + { + this.n曲が選択されてからプレビュー音が鳴るまでのウェイトms = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 0x5f5e0ff, this.n曲が選択されてからプレビュー音が鳴るまでのウェイトms ); + } + else if( str3.Equals( "PreviewImageWait" ) ) + { + this.n曲が選択されてからプレビュー画像が表示開始されるまでのウェイトms = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 0x5f5e0ff, this.n曲が選択されてからプレビュー画像が表示開始されるまでのウェイトms ); + } + #endregion + //else if( str3.Equals( "AdjustWaves" ) ) + //{ + // this.bWave再生位置自動調整機能有効 = C変換.bONorOFF( str4[ 0 ] ); + //} + #region [ BGM/ドラムのヒット音 ] + else if( str3.Equals( "BGMSound" ) ) + { + this.bBGM音を発声する = C変換.bONorOFF( str4[ 0 ] ); + } + #endregion + else if( str3.Equals( "SaveScoreIni" ) ) + { + this.bScoreIniを出力する = C変換.bONorOFF( str4[ 0 ] ); + } + else if( str3.Equals( "RandomFromSubBox" ) ) + { + this.bランダムセレクトで子BOXを検索対象とする = C変換.bONorOFF( str4[ 0 ] ); + } + #region [ コンボ数 ] + else if( str3.Equals( "MinComboDrums" ) ) + { + this.n表示可能な最小コンボ数.Drums = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 1, 0x1869f, this.n表示可能な最小コンボ数.Drums ); + } + #endregion + else if( str3.Equals( "ShowDebugStatus" ) ) + { + this.b演奏情報を表示する = C変換.bONorOFF( str4[ 0 ] ); + } + else if( str3.Equals( nameof(ApplyLoudnessMetadata) ) ) + { + this.ApplyLoudnessMetadata = C変換.bONorOFF( str4[ 0 ] ); + } + else if( str3.Equals( nameof(TargetLoudness) ) ) + { + this.TargetLoudness = C変換.db値を文字列から取得して範囲内に丸めて返す( str4, CSound.MinimumLufs.ToDouble(), CSound.MaximumLufs.ToDouble(), this.TargetLoudness ); + } + else if( str3.Equals( nameof(ApplySongVol) ) ) + { + this.ApplySongVol = C変換.bONorOFF( str4[ 0 ] ); + } + else if( str3.Equals( nameof(SoundEffectLevel) ) ) + { + this.SoundEffectLevel = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, CSound.MinimumGroupLevel, CSound.MaximumGroupLevel, this.SoundEffectLevel ); + } + else if( str3.Equals( nameof(VoiceLevel) ) ) + { + this.VoiceLevel = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, CSound.MinimumGroupLevel, CSound.MaximumGroupLevel, this.VoiceLevel ); + } + else if( str3.Equals( nameof(SongPreviewLevel) ) ) + { + this.SongPreviewLevel = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, CSound.MinimumGroupLevel, CSound.MaximumGroupLevel, this.SongPreviewLevel ); + } + else if( str3.Equals( nameof(KeyboardSoundLevelIncrement) ) ) + { + this.KeyboardSoundLevelIncrement = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, MinimumKeyboardSoundLevelIncrement, MaximumKeyboardSoundLevelIncrement, this.KeyboardSoundLevelIncrement ); + } + else if( str3.Equals(nameof(MusicPreTimeMs))) + { + MusicPreTimeMs = int.Parse(str4); + } + else if( str3.Equals( "StoicMode" ) ) + { + this.bストイックモード = C変換.bONorOFF( str4[ 0 ] ); + } + else if ( str3.Equals( "JudgeDispPriority" ) ) + { + this.e判定表示優先度 = (E判定表示優先度) C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 1, (int) this.e判定表示優先度 ); + } + else if ( str3.Equals( "AutoResultCapture" ) ) // #25399 2011.6.9 yyagi + { + this.bIsAutoResultCapture = C変換.bONorOFF( str4[ 0 ] ); + } + else if (str3.Equals(nameof(SendDiscordPlayingInformation))) + { + SendDiscordPlayingInformation = C変換.bONorOFF(str4[0]); + } + else if ( str3.Equals( "TimeStretch" ) ) // #23664 2013.2.24 yyagi + { + this.bTimeStretch = C変換.bONorOFF( str4[ 0 ] ); + } + #region [ AdjustTime ] + else if( str3.Equals( "InputAdjustTime" ) ) + { + this.nInputAdjustTimeMs = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, -99, 99, this.nInputAdjustTimeMs ); + } + else if ( str3.Equals( "JudgeLinePosOffsetDrums" ) ) // #31602 2013.6.23 yyagi + { + this.nJudgeLinePosOffset.Drums = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, -99, 99, this.nJudgeLinePosOffset.Drums ); + } + else if ( str3.Equals( "JudgeLinePosOffsetGuitar" ) ) // #31602 2013.6.23 yyagi + { + this.nJudgeLinePosOffset.Guitar = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, -99, 99, this.nJudgeLinePosOffset.Guitar ); + } + else if ( str3.Equals( "JudgeLinePosOffsetBass" ) ) // #31602 2013.6.23 yyagi + { + this.nJudgeLinePosOffset.Bass = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, -99, 99, this.nJudgeLinePosOffset.Bass ); + } + else if ( str3.Equals( "JudgeLinePosModeGuitar" ) ) // #33891 2014.6.26 yyagi + { + this.e判定位置.Guitar = (E判定位置) C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 2, (int) this.e判定位置.Guitar ); + } + else if ( str3.Equals( "JudgeLinePosModeBass" ) ) // #33891 2014.6.26 yyagi + { + this.e判定位置.Bass = (E判定位置) C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 2, (int) this.e判定位置.Bass ); + } + #endregion + else if( str3.Equals( "BufferedInput" ) ) + { + this.bバッファ入力を行う = C変換.bONorOFF( str4[ 0 ] ); + } + else if ( str3.Equals( "PolyphonicSounds" ) ) // #28228 2012.5.1 yyagi + { + this.nPoliphonicSounds = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 1, 8, this.nPoliphonicSounds ); + } + #region [ VelocityMin ] + else if ( str3.Equals( "LCVelocityMin" ) ) // #23857 2010.12.12 yyagi + { + this.nVelocityMin.LC = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 127, this.nVelocityMin.LC ); + } + else if( str3.Equals( "HHVelocityMin" ) ) + { + this.nVelocityMin.HH = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 127, this.nVelocityMin.HH ); + } + else if( str3.Equals( "SDVelocityMin" ) ) // #23857 2011.1.31 yyagi + { + this.nVelocityMin.SD = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 127, this.nVelocityMin.SD ); + } + else if( str3.Equals( "BDVelocityMin" ) ) // #23857 2011.1.31 yyagi + { + this.nVelocityMin.BD = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 127, this.nVelocityMin.BD ); + } + else if( str3.Equals( "HTVelocityMin" ) ) // #23857 2011.1.31 yyagi + { + this.nVelocityMin.HT = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 127, this.nVelocityMin.HT ); + } + else if( str3.Equals( "LTVelocityMin" ) ) // #23857 2011.1.31 yyagi + { + this.nVelocityMin.LT = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 127, this.nVelocityMin.LT ); + } + else if( str3.Equals( "FTVelocityMin" ) ) // #23857 2011.1.31 yyagi + { + this.nVelocityMin.FT = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 127, this.nVelocityMin.FT ); + } + else if( str3.Equals( "CYVelocityMin" ) ) // #23857 2011.1.31 yyagi + { + this.nVelocityMin.CY = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 127, this.nVelocityMin.CY ); + } + else if( str3.Equals( "RDVelocityMin" ) ) // #23857 2011.1.31 yyagi + { + this.nVelocityMin.RD = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 127, this.nVelocityMin.RD ); + } + #endregion + //else if ( str3.Equals( "NoMP3Streaming" ) ) + //{ + // this.bNoMP3Streaming = C変換.bONorOFF( str4[ 0 ] ); + //} + #region[ Ver.K追加 ] + else if ( str3.Equals( "DirectShowMode" ) ) // #28228 2012.5.1 yyagi + { + this.bDirectShowMode = C変換.bONorOFF( str4[ 0 ] ); ; + } + #endregion + else if( str3.Equals( "EndingAnime" ) ) + { + this.bEndingAnime = C変換.bONorOFF( str4[ 0 ] ); + } + + continue; + } + //----------------------------- + #endregion + + #region [ [AutoPlay] ] + //----------------------------- + case Eセクション種別.AutoPlay: + if (str3.Equals("Taiko")) + { + this.b太鼓パートAutoPlay = C変換.bONorOFF(str4[0]); + } + else if (str3.Equals("Taiko2P")) + { + this.b太鼓パートAutoPlay2P = C変換.bONorOFF(str4[0]); + } + else if (str3.Equals("TaikoAutoRoll")) + { + this.bAuto先生の連打 = C変換.bONorOFF(str4[0]); + } + continue; + //----------------------------- + #endregion + + #region [ [HitRange] ] + //----------------------------- + case Eセクション種別.HitRange: + if (str3.Equals("Perfect")) + { + this.nヒット範囲ms.Perfect = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 0x3e7, this.nヒット範囲ms.Perfect); + } + else if (str3.Equals("Great")) + { + this.nヒット範囲ms.Great = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 0x3e7, this.nヒット範囲ms.Great); + } + else if (str3.Equals("Good")) + { + this.nヒット範囲ms.Good = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 0x3e7, this.nヒット範囲ms.Good); + } + else if (str3.Equals("Poor")) + { + this.nヒット範囲ms.Poor = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 0x3e7, this.nヒット範囲ms.Poor); + } + continue; + //----------------------------- + #endregion + + + + #region [ [Log] ] + //----------------------------- + case Eセクション種別.Log: + { + if( str3.Equals( "OutputLog" ) ) + { + this.bログ出力 = C変換.bONorOFF( str4[ 0 ] ); + } + else if( str3.Equals( "TraceCreatedDisposed" ) ) + { + this.bLog作成解放ログ出力 = C変換.bONorOFF( str4[ 0 ] ); + } + else if( str3.Equals( "TraceDTXDetails" ) ) + { + this.bLogDTX詳細ログ出力 = C変換.bONorOFF( str4[ 0 ] ); + } + else if( str3.Equals( "TraceSongSearch" ) ) + { + this.bLog曲検索ログ出力 = C変換.bONorOFF( str4[ 0 ] ); + } + continue; + } + //----------------------------- + #endregion + + #region [ [PlayOption] ] + //----------------------------- + case Eセクション種別.PlayOption: + { + if (str3.Equals("ShowChara")) + { + ShowChara = C変換.bONorOFF(str4[0]); + } + else if( str3.Equals("ShowDancer")) + { + ShowDancer = C変換.bONorOFF(str4[0]); + } + else if (str3.Equals("ShowRunner")) + { + ShowRunner = C変換.bONorOFF(str4[0]); + } + else if (str3.Equals("ShowMob")) + { + ShowMob = C変換.bONorOFF(str4[0]); + } + else if (str3.Equals("ShowFooter")) + { + ShowFooter = C変換.bONorOFF(str4[0]); + } + else if (str3.Equals("ShowPuchiChara")) + { + ShowPuchiChara = C変換.bONorOFF(str4[0]); + } + else if( str3.Equals( "Dark" ) ) + { + this.eDark = (Eダークモード) C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 2, (int) this.eDark ); + } + else if( str3.Equals( "ScrollMode" ) ) + { + this.eScrollMode = ( EScrollMode )C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 2, 0 ); + } + else if (str3.Equals("EnableCountDownTimer")) + { + this.bEnableCountdownTimer = C変換.bONorOFF(str4[0]); + } + #region [ Sudden ] + else if( str3.Equals( "DrumsSudden" ) ) + { + this.bSudden.Drums = C変換.bONorOFF( str4[ 0 ] ); + } + #endregion + #region [ Hidden ] + else if( str3.Equals( "DrumsHidden" ) ) + { + this.bHidden.Drums = C変換.bONorOFF( str4[ 0 ] ); + } + #endregion + #region [ Invisible ] + else if ( str3.Equals( "DrumsInvisible" ) ) + { + this.eInvisible.Drums = (EInvisible) C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 2, (int) this.eInvisible.Drums ); + } + //else if ( str3.Equals( "InvisibleDisplayTimeMs" ) ) + //{ + // this.nDisplayTimesMs = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 9999999, (int) this.nDisplayTimesMs ); + //} + //else if ( str3.Equals( "InvisibleFadeoutTimeMs" ) ) + //{ + // this.nFadeoutTimeMs = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 9999999, (int) this.nFadeoutTimeMs ); + //} + #endregion + else if ( str3.Equals( "DrumsReverse" ) ) + { + this.bReverse.Drums = C変換.bONorOFF( str4[ 0 ] ); + } + else if( str3.Equals( "DrumsPosition" ) ) + { + this.判定文字表示位置.Drums = (E判定文字表示位置) C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 2, (int) this.判定文字表示位置.Drums ); + } + else if( str3.Equals( "DrumsScrollSpeed" ) ) + { + this.n譜面スクロール速度.Drums = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 0x7cf, this.n譜面スクロール速度.Drums ); + } + else if( str3.Equals( "PlaySpeed" ) ) + { + this.n演奏速度 = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 5, 400, this.n演奏速度 ); + } + else if (str3.Equals("PlaySpeedNotEqualOneNoSound")) + { + this.b演奏速度が一倍速であるとき以外音声を再生しない = C変換.bONorOFF(str4[0]); + } + //else if ( str3.Equals( "JudgeDispPriorityDrums" ) ) + //{ + // this.e判定表示優先度.Drums = (E判定表示優先度) C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 1, (int) this.e判定表示優先度.Drums ); + //} + //else if ( str3.Equals( "JudgeDispPriorityGuitar" ) ) + //{ + // this.e判定表示優先度.Guitar = (E判定表示優先度) C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 1, (int) this.e判定表示優先度.Guitar ); + //} + //else if ( str3.Equals( "JudgeDispPriorityBass" ) ) + //{ + // this.e判定表示優先度.Bass = (E判定表示優先度) C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 1, (int) this.e判定表示優先度.Bass ); + //} + else if ( str3.Equals( "Risky" ) ) // #23559 2011.6.23 yyagi + { + this.nRisky = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 10, this.nRisky ); + } + else if ( str3.Equals( "DrumsTight" ) ) + { + this.bTight = C変換.bONorOFF( str4[ 0 ] ); + } + else if ( str3.Equals( "BranchGuide" ) ) + { + this.bBranchGuide = C変換.bONorOFF( str4[ 0 ] ); + } + else if ( str3.Equals( "DefaultCourse" ) ) //2017.01.30 DD + { + this.nDefaultCourse = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 4, this.nDefaultCourse ); + } + else if ( str3.Equals( "ScoreMode" ) ) + { + this.nScoreMode = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 3, this.nScoreMode ); + } + else if ( str3.Equals( "HispeedRandom" ) ) + { + this.bHispeedRandom = C変換.bONorOFF( str4[ 0 ] ); + } + else if ( str3.Equals( "BigNotesWaitTime" ) ) + { + this.n両手判定の待ち時間 = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 1, 100, this.n両手判定の待ち時間 ); + } + else if ( str3.Equals( "BigNotesJudge" ) ) + { + this.b大音符判定 = C変換.bONorOFF( str4[ 0 ] ); + } + else if ( str3.Equals( "BranchAnime" ) ) + { + this.nBranchAnime = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 1, this.nBranchAnime ); + } + else if ( str3.Equals( "NoInfo" ) ) + { + this.bNoInfo = C変換.bONorOFF( str4[ 0 ] ); + } + else if ( str3.Equals( "DefaultSongSort" ) ) + { + this.nDefaultSongSort = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 2, this.nDefaultSongSort ); + } + else if( str3.Equals( "TaikoRandom" ) ) + { + this.eRandom.Taiko = (Eランダムモード) C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 4, (int) this.eRandom.Taiko ); + } + else if( str3.Equals( "TaikoStealth" ) ) + { + this.eSTEALTH = (Eステルスモード) C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 3, (int) this.eSTEALTH ); + } + else if( str3.Equals( "GameMode" ) ) + { + this.eGameMode = (EGame) C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 2, (int) this.eGameMode ); + } + else if (str3.Equals("TokkunSkipMeasures")) + { + this.TokkunSkipMeasures = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 9999, this.TokkunSkipMeasures); + } + else if (str3.Equals(nameof(TokkunMashInterval))) + { + this.TokkunMashInterval = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 9999, this.TokkunMashInterval); + } + else if( str3.Equals( "JudgeCountDisplay" ) ) + { + this.bJudgeCountDisplay = C変換.bONorOFF( str4[ 0 ] ); + } + else if( str3.Equals( "Just" ) ) + { + this.bJust = C変換.bONorOFF( str4[ 0 ] ); + } + else if( str3.Equals( "PlayerCount" ) ) + { + this.nPlayerCount = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 1, 2, this.nPlayerCount ); + } + else if(str3.Equals(nameof(ShinuchiMode))) + { + ShinuchiMode = C変換.bONorOFF(str4[0]); + } + continue; + } + //----------------------------- + #endregion + + #region [ [ViewerOption] ] + //----------------------------- + case Eセクション種別.ViewerOption: + { + if ( str3.Equals( "ViewerDrumsScrollSpeed" ) ) + { + this.nViewerScrollSpeed.Drums = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 1999, this.nViewerScrollSpeed.Drums ); + } + else if ( str3.Equals( "ViewerGuitarScrollSpeed" ) ) + { + this.nViewerScrollSpeed.Guitar = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 1999, this.nViewerScrollSpeed.Guitar ); + } + else if ( str3.Equals( "ViewerBassScrollSpeed" ) ) + { + this.nViewerScrollSpeed.Bass = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 0, 1999, this.nViewerScrollSpeed.Bass ); + } + else if ( str3.Equals( "ViewerVSyncWait" ) ) + { + this.bViewerVSyncWait = C変換.bONorOFF( str4[ 0 ] ); + } + else if ( str3.Equals( "ViewerShowDebugStatus" ) ) + { + this.bViewerShowDebugStatus = C変換.bONorOFF( str4[ 0 ] ); + } + else if ( str3.Equals( "ViewerTimeStretch" ) ) + { + this.bViewerTimeStretch = C変換.bONorOFF( str4[ 0 ] ); + } + else if ( str3.Equals( "ViewerGuitar" ) ) + { + this.bViewerGuitar有効 = C変換.bONorOFF( str4[ 0 ] ); + } + else if ( str3.Equals( "ViewerDrums" ) ) + { + this.bViewerDrums有効 = C変換.bONorOFF( str4[ 0 ] ); + } + continue; + } + //----------------------------- + #endregion + + #region [ [GUID] ] + //----------------------------- + case Eセクション種別.GUID: + if( str3.Equals( "JoystickID" ) ) + { + this.tJoystickIDの取得( str4 ); + } + continue; + //----------------------------- + #endregion + + #region [ [DrumsKeyAssign] ] + //----------------------------- + case Eセクション種別.DrumsKeyAssign: + { + if( str3.Equals( "LeftRed" ) ) + { + this.tキーの読み出しと設定( str4, this.KeyAssign.Drums.LeftRed ); + } + else if( str3.Equals( "RightRed" ) ) + { + this.tキーの読み出しと設定( str4, this.KeyAssign.Drums.RightRed ); + } + else if( str3.Equals( "LeftBlue" ) ) // #27029 2012.1.4 from + { // + this.tキーの読み出しと設定( str4, this.KeyAssign.Drums.LeftBlue ); // + } // + else if( str3.Equals( "RightBlue" ) ) // #27029 2012.1.4 from + { // + this.tキーの読み出しと設定( str4, this.KeyAssign.Drums.RightBlue ); // + } + + else if( str3.Equals( "LeftRed2P" ) ) + { + this.tキーの読み出しと設定( str4, this.KeyAssign.Drums.LeftRed2P ); + } + else if( str3.Equals( "RightRed2P" ) ) + { + this.tキーの読み出しと設定( str4, this.KeyAssign.Drums.RightRed2P ); + } + else if( str3.Equals( "LeftBlue2P" ) ) // #27029 2012.1.4 from + { // + this.tキーの読み出しと設定( str4, this.KeyAssign.Drums.LeftBlue2P ); // + } // + else if( str3.Equals( "RightBlue2P" ) ) // #27029 2012.1.4 from + { // + this.tキーの読み出しと設定( str4, this.KeyAssign.Drums.RightBlue2P ); // + } + + continue; + } + //----------------------------- + #endregion + + #region [ [SystemKeyAssign] ] + //----------------------------- + case Eセクション種別.SystemKeyAssign: + if( str3.Equals( "Capture" ) ) + { + this.tキーの読み出しと設定( str4, this.KeyAssign.System.Capture ); + } + continue; + //----------------------------- + #endregion + } + } + } + continue; + } + catch ( Exception exception ) + { + Trace.TraceError( exception.ToString() ); + Trace.TraceError( "例外が発生しましたが処理を継続します。 (93c4c5cd-4996-4e8c-a82f-a179ff590b44)" ); + continue; + } + } + } + } + + /// + /// ギターとベースのキーアサイン入れ替え + /// + //public void SwapGuitarBassKeyAssign() // #24063 2011.1.16 yyagi + //{ + // for ( int j = 0; j <= (int)EKeyConfigPad.Capture; j++ ) + // { + // CKeyAssign.STKEYASSIGN t; //= new CConfigIni.CKeyAssign.STKEYASSIGN(); + // for ( int k = 0; k < 16; k++ ) + // { + // t = this.KeyAssign[ (int)EKeyConfigPart.GUITAR ][ j ][ k ]; + // this.KeyAssign[ (int)EKeyConfigPart.GUITAR ][ j ][ k ] = this.KeyAssign[ (int)EKeyConfigPart.BASS ][ j ][ k ]; + // this.KeyAssign[ (int)EKeyConfigPart.BASS ][ j ][ k ] = t; + // } + // } + // this.bIsSwappedGuitarBass = !bIsSwappedGuitarBass; + //} + + + // その他 + + #region [ private ] + //----------------- + private enum Eセクション種別 + { + Unknown, + System, + Log, + PlayOption, + ViewerOption, + AutoPlay, + HitRange, + GUID, + DrumsKeyAssign, + SystemKeyAssign, + Temp, + } + + private bool _bDrums有効; + private bool _bGuitar有効; + private bool bConfigIniが存在している; + private string ConfigIniファイル名; + + private void tJoystickIDの取得( string strキー記述 ) + { + string[] strArray = strキー記述.Split( new char[] { ',' } ); + if( strArray.Length >= 2 ) + { + int result = 0; + if( ( int.TryParse( strArray[ 0 ], out result ) && ( result >= 0 ) ) && ( result <= 9 ) ) + { + if( this.dicJoystick.ContainsKey( result ) ) + { + this.dicJoystick.Remove( result ); + } + this.dicJoystick.Add( result, strArray[ 1 ] ); + } + } + } + private void tキーアサインを全部クリアする() + { + this.KeyAssign = new CKeyAssign(); + for( int i = 0; i <= (int)EKeyConfigPart.SYSTEM; i++ ) + { + for( int j = 0; j <= (int)EKeyConfigPad.Capture; j++ ) + { + this.KeyAssign[ i ][ j ] = new CKeyAssign.STKEYASSIGN[ 16 ]; + for( int k = 0; k < 16; k++ ) + { + this.KeyAssign[ i ][ j ][ k ] = new CKeyAssign.STKEYASSIGN( E入力デバイス.不明, 0, 0 ); + } + } + } + } + private void tキーの書き出し( StreamWriter sw, CKeyAssign.STKEYASSIGN[] assign ) + { + bool flag = true; + for( int i = 0; i < 0x10; i++ ) + { + if( assign[ i ].入力デバイス == E入力デバイス.不明 ) + { + continue; + } + if( !flag ) + { + sw.Write( ',' ); + } + flag = false; + switch( assign[ i ].入力デバイス ) + { + case E入力デバイス.キーボード: + sw.Write( 'K' ); + break; + + case E入力デバイス.MIDI入力: + sw.Write( 'M' ); + break; + + case E入力デバイス.ジョイパッド: + sw.Write( 'J' ); + break; + + case E入力デバイス.マウス: + sw.Write( 'N' ); + break; + } + sw.Write( "{0}{1}", "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".Substring( assign[ i ].ID, 1 ), assign[ i ].コード ); // #24166 2011.1.15 yyagi: to support ID > 10, change 2nd character from Decimal to 36-numeral system. (e.g. J1023 -> JA23) + } + } + private void tキーの読み出しと設定( string strキー記述, CKeyAssign.STKEYASSIGN[] assign ) + { + string[] strArray = strキー記述.Split( new char[] { ',' } ); + for( int i = 0; ( i < strArray.Length ) && ( i < 0x10 ); i++ ) + { + E入力デバイス e入力デバイス; + int id; + int code; + string str = strArray[ i ].Trim().ToUpper(); + if ( str.Length >= 3 ) + { + e入力デバイス = E入力デバイス.不明; + switch ( str[ 0 ] ) + { + case 'J': + e入力デバイス = E入力デバイス.ジョイパッド; + break; + + case 'K': + e入力デバイス = E入力デバイス.キーボード; + break; + + case 'L': + continue; + + case 'M': + e入力デバイス = E入力デバイス.MIDI入力; + break; + + case 'N': + e入力デバイス = E入力デバイス.マウス; + break; + } + } + else + { + continue; + } + id = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".IndexOf( str[ 1 ] ); // #24166 2011.1.15 yyagi: to support ID > 10, change 2nd character from Decimal to 36-numeral system. (e.g. J1023 -> JA23) + if( ( ( id >= 0 ) && int.TryParse( str.Substring( 2 ), out code ) ) && ( ( code >= 0 ) && ( code <= 0xff ) ) ) + { + this.t指定した入力が既にアサイン済みである場合はそれを全削除する( e入力デバイス, id, code ); + assign[ i ].入力デバイス = e入力デバイス; + assign[ i ].ID = id; + assign[ i ].コード = code; + } + } + } + private void tデフォルトのキーアサインに設定する() + { + this.tキーアサインを全部クリアする(); + + string strDefaultKeyAssign = @" +[DrumsKeyAssign] +LeftRed=K015 +RightRed=K019 +LeftBlue=K013 +RightBlue=K020 +LeftRed2P=K011 +RightRed2P=K023 +LeftBlue2P=K012 +RightBlue2P=K047 + +[SystemKeyAssign] +Capture=K065 +"; + t文字列から読み込み( strDefaultKeyAssign ); + } + //----------------- + #endregion + + + public event PropertyChangedEventHandler PropertyChanged; + + private bool SetProperty(ref T storage, T value, string propertyName = null) + { + if (Equals(storage, value)) + { + return false; + } + + storage = value; + OnPropertyChanged(propertyName); + return true; + } + + private void OnPropertyChanged(string propertyName) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } + } +} diff --git a/TJAPlayer3/Common/CDTXVersion.cs b/TJAPlayer3/Common/CDTXVersion.cs new file mode 100644 index 00000000..a83090ce --- /dev/null +++ b/TJAPlayer3/Common/CDTXVersion.cs @@ -0,0 +1,210 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace TJAPlayer3 +{ + /// + /// DTXMania のバージョン。 + /// 例1:"078b" → 整数部=078, 小数部=2000000 ('英字'+'yymmdd') + /// 例2:"078a(100124)" → 整数部=078, 小数部=1100124 ('英字'+'yymmdd') + /// + public class CDTXVersion + { + // プロパティ + + /// + /// バージョンが未知のときに true になる。 + /// + public bool Unknown + { + get; + private set; + } + + /// + /// DTXMania のバージョンの整数部を表す。 + /// 例1:"078b" → 整数部=078 + /// 例2:"078a(100124)" → 整数部=078 + /// + public int n整数部; + + /// + /// DTXMania のバージョンの小数部を表す。 + /// 小数部は、'英字(0~26) * 1000000 + 日付(yymmdd)' の式で表される整数。 + /// 例1:"078b" → 小数部=2000000 + /// 例2:"078a(100124)" → 小数部=1100124 + /// + public int n小数部; + + + // コンストラクタ + + public CDTXVersion() + { + this.n整数部 = 0; + this.n小数部 = 0; + this.Unknown = true; + } + public CDTXVersion( int n整数部 ) + { + this.n整数部 = n整数部; + this.n小数部 = 0; + this.Unknown = false; + } + public CDTXVersion( string Version ) + { + this.n整数部 = 0; + this.n小数部 = 0; + this.Unknown = true; + + if( Version.ToLower().Equals( "unknown" ) ) + { + this.Unknown = true; + } + else + { + int num = 0; + int length = Version.Length; + if( ( num < length ) && char.IsDigit( Version[ num ] ) ) + { + // 整数部 取得 + while( ( num < length ) && char.IsDigit( Version[ num ] ) ) + { + this.n整数部 = ( this.n整数部 * 10 ) + CDTXVersion.DIG10.IndexOf( Version[ num++ ] ); + } + + // 小数部(1)英字部分 取得 + while( ( num < length ) && ( ( Version[ num ] == ' ' ) || ( Version[ num ] == '(' ) ) ) + { + num++; + } + if( ( num < length ) && ( CDTXVersion.DIG36.IndexOf( Version[ num ] ) >= 10 ) ) + { + this.n小数部 = CDTXVersion.DIG36.IndexOf( Version[ num++ ] ) - 10; + if( this.n小数部 >= 0x1a ) + { + this.n小数部 -= 0x1a; + } + this.n小数部++; + } + + // 小数部(2)日付部分(yymmdd) 取得 + while( ( num < length ) && ( ( Version[ num ] == ' ' ) || ( Version[ num ] == '(' ) ) ) + { + num++; + } + for( int i = 0; i < 6; i++ ) + { + this.n小数部 *= 10; + if( ( num < length ) && char.IsDigit( Version[ num ] ) ) + { + this.n小数部 += CDTXVersion.DIG10.IndexOf( Version[ num ] ); + } + num++; + } + this.Unknown = false; + } + else + { + this.Unknown = true; + } + } + } + public CDTXVersion( int n整数部, int n小数部 ) + { + this.n整数部 = n整数部; + this.n小数部 = n小数部; + this.Unknown = false; + } + + + // メソッド + + public string toString() + { + var result = new StringBuilder( 32 ); + + // 整数部 + result.Append( this.n整数部.ToString( "000" ) ); + + // 英字部分(あれば) + if( this.n小数部 >= 1000000 ) + { + int n英字 = Math.Min( this.n小数部 / 1000000, 26 ); // 1~26 + result.Append( CDTXVersion.DIG36[ 10 + ( n英字 - 1 ) ] ); + } + + // 日付部分(あれば) + int n日付 = this.n小数部 % 1000000; + if( n日付 > 0 ) + { + result.Append( '(' ); + result.Append( n日付.ToString( "000000" ) ); + result.Append( ')' ); + } + + return result.ToString(); + } + + public static bool operator ==( CDTXVersion x, CDTXVersion y ) + { + return ( ( ( x.n整数部 == y.n整数部 ) && ( x.n小数部 == y.n小数部 ) ) && ( x.Unknown == y.Unknown ) ); + } + public static bool operator >( CDTXVersion x, CDTXVersion y ) + { + return ( ( x.n整数部 > y.n整数部 ) || ( ( x.n整数部 == y.n整数部 ) && ( x.n小数部 > y.n小数部 ) ) ); + } + public static bool operator >=( CDTXVersion x, CDTXVersion y ) + { + return ( ( x.n整数部 > y.n整数部 ) || ( ( x.n整数部 == y.n整数部 ) && ( x.n小数部 >= y.n小数部 ) ) ); + } + public static bool operator !=( CDTXVersion x, CDTXVersion y ) + { + if( ( x.n整数部 == y.n整数部 ) && ( x.n小数部 == y.n小数部 ) ) + { + return ( x.Unknown != y.Unknown ); + } + return true; + } + public static bool operator <( CDTXVersion x, CDTXVersion y ) + { + return ( ( x.n整数部 < y.n整数部 ) || ( ( x.n整数部 == y.n整数部 ) && ( x.n小数部 < y.n小数部 ) ) ); + } + public static bool operator <=( CDTXVersion x, CDTXVersion y ) + { + return ( ( x.n整数部 < y.n整数部 ) || ( ( x.n整数部 == y.n整数部 ) && ( x.n小数部 <= y.n小数部 ) ) ); + } + public override bool Equals(object obj) // 2011.1.3 yyagi: warningを無くすために追加 + { + if (obj == null) + { + return false; + } + if (this.GetType() != obj.GetType()) + { + return false; + } + CDTXVersion objCDTXVersion = (CDTXVersion)obj; + if (!int.Equals(this.n整数部, objCDTXVersion.n整数部) || !int.Equals(this.n小数部, objCDTXVersion.n小数部)) + { + return false; + } + return true; + } + public override int GetHashCode() // 2011.1.3 yyagi: warningを無くすために追加 + { + string v = this.toString(); + return v.GetHashCode(); + } + + // その他 + + #region [ private ] + //----------------- + private const string DIG36 = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; + private const string DIG10 = "0123456789"; + //----------------- + #endregion + } +} diff --git a/TJAPlayer3/Common/CPad.cs b/TJAPlayer3/Common/CPad.cs new file mode 100644 index 00000000..32243313 --- /dev/null +++ b/TJAPlayer3/Common/CPad.cs @@ -0,0 +1,225 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Runtime.InteropServices; +using FDK; + +namespace TJAPlayer3 +{ + public class CPad + { + // プロパティ + + internal STHIT st検知したデバイス; + [StructLayout( LayoutKind.Sequential )] + internal struct STHIT + { + public bool Keyboard; + public bool MIDIIN; + public bool Joypad; + public bool Mouse; + public void Clear() + { + this.Keyboard = false; + this.MIDIIN = false; + this.Joypad = false; + this.Mouse = false; + } + } + + + // コンストラクタ + + internal CPad( CConfigIni configIni, CInput管理 mgrInput ) + { + this.rConfigIni = configIni; + this.rInput管理 = mgrInput; + this.st検知したデバイス.Clear(); + } + + + // メソッド + + public List GetEvents( E楽器パート part, Eパッド pad ) + { + CConfigIni.CKeyAssign.STKEYASSIGN[] stkeyassignArray = this.rConfigIni.KeyAssign[ (int) part ][ (int) pad ]; + List list = new List(); + + // すべての入力デバイスについて… + foreach( IInputDevice device in this.rInput管理.list入力デバイス ) + { + if( ( device.list入力イベント != null ) && ( device.list入力イベント.Count != 0 ) ) + { + foreach( STInputEvent event2 in device.list入力イベント ) + { + for( int i = 0; i < stkeyassignArray.Length; i++ ) + { + switch( stkeyassignArray[ i ].入力デバイス ) + { + case E入力デバイス.キーボード: + if( ( device.e入力デバイス種別 == E入力デバイス種別.Keyboard ) && ( event2.nKey == stkeyassignArray[ i ].コード ) ) + { + list.Add( event2 ); + this.st検知したデバイス.Keyboard = true; + } + break; + + case E入力デバイス.MIDI入力: + if( ( ( device.e入力デバイス種別 == E入力デバイス種別.MidiIn ) && ( device.ID == stkeyassignArray[ i ].ID ) ) && ( event2.nKey == stkeyassignArray[ i ].コード ) ) + { + list.Add( event2 ); + this.st検知したデバイス.MIDIIN = true; + } + break; + + case E入力デバイス.ジョイパッド: + if( ( ( device.e入力デバイス種別 == E入力デバイス種別.Joystick ) && ( device.ID == stkeyassignArray[ i ].ID ) ) && ( event2.nKey == stkeyassignArray[ i ].コード ) ) + { + list.Add( event2 ); + this.st検知したデバイス.Joypad = true; + } + break; + + case E入力デバイス.マウス: + if( ( device.e入力デバイス種別 == E入力デバイス種別.Mouse ) && ( event2.nKey == stkeyassignArray[ i ].コード ) ) + { + list.Add( event2 ); + this.st検知したデバイス.Mouse = true; + } + break; + } + } + } + continue; + } + } + return list; + } + public bool b押された( E楽器パート part, Eパッド pad ) + { + if( part != E楽器パート.UNKNOWN ) + { + + CConfigIni.CKeyAssign.STKEYASSIGN[] stkeyassignArray = this.rConfigIni.KeyAssign[ (int) part ][ (int) pad ]; + for( int i = 0; i < stkeyassignArray.Length; i++ ) + { + switch( stkeyassignArray[ i ].入力デバイス ) + { + case E入力デバイス.キーボード: + if( !this.rInput管理.Keyboard.bキーが押された( stkeyassignArray[ i ].コード ) ) + break; + + this.st検知したデバイス.Keyboard = true; + return true; + + case E入力デバイス.MIDI入力: + { + IInputDevice device2 = this.rInput管理.MidiIn( stkeyassignArray[ i ].ID ); + if( ( device2 == null ) || !device2.bキーが押された( stkeyassignArray[ i ].コード ) ) + break; + + this.st検知したデバイス.MIDIIN = true; + return true; + } + case E入力デバイス.ジョイパッド: + { + if( !this.rConfigIni.dicJoystick.ContainsKey( stkeyassignArray[ i ].ID ) ) + break; + + IInputDevice device = this.rInput管理.Joystick( stkeyassignArray[ i ].ID ); + if( ( device == null ) || !device.bキーが押された( stkeyassignArray[ i ].コード ) ) + break; + + this.st検知したデバイス.Joypad = true; + return true; + } + case E入力デバイス.マウス: + if( !this.rInput管理.Mouse.bキーが押された( stkeyassignArray[ i ].コード ) ) + break; + + this.st検知したデバイス.Mouse = true; + return true; + } + } + } + return false; + } + public bool b押されたDGB( Eパッド pad ) + { + if( !this.b押された( E楽器パート.DRUMS, pad ) && !this.b押された( E楽器パート.GUITAR, pad ) ) + { + return this.b押された( E楽器パート.BASS, pad ); + } + return true; + } + public bool b押されたGB( Eパッド pad ) + { + if( !this.b押された( E楽器パート.GUITAR, pad ) ) + { + return this.b押された( E楽器パート.BASS, pad ); + } + return true; + } + public bool b押されている( E楽器パート part, Eパッド pad ) + { + if( part != E楽器パート.UNKNOWN ) + { + CConfigIni.CKeyAssign.STKEYASSIGN[] stkeyassignArray = this.rConfigIni.KeyAssign[ (int) part ][ (int) pad ]; + for( int i = 0; i < stkeyassignArray.Length; i++ ) + { + switch( stkeyassignArray[ i ].入力デバイス ) + { + case E入力デバイス.キーボード: + if( !this.rInput管理.Keyboard.bキーが押されている( stkeyassignArray[ i ].コード ) ) + { + break; + } + this.st検知したデバイス.Keyboard = true; + return true; + + case E入力デバイス.ジョイパッド: + { + if( !this.rConfigIni.dicJoystick.ContainsKey( stkeyassignArray[ i ].ID ) ) + { + break; + } + IInputDevice device = this.rInput管理.Joystick( stkeyassignArray[ i ].ID ); + if( ( device == null ) || !device.bキーが押されている( stkeyassignArray[ i ].コード ) ) + { + break; + } + this.st検知したデバイス.Joypad = true; + return true; + } + case E入力デバイス.マウス: + if( !this.rInput管理.Mouse.bキーが押されている( stkeyassignArray[ i ].コード ) ) + { + break; + } + this.st検知したデバイス.Mouse = true; + return true; + } + } + } + return false; + } + public bool b押されているGB( Eパッド pad ) + { + if( !this.b押されている( E楽器パート.GUITAR, pad ) ) + { + return this.b押されている( E楽器パート.BASS, pad ); + } + return true; + } + + + // その他 + + #region [ private ] + //----------------- + private CConfigIni rConfigIni; + private CInput管理 rInput管理; + //----------------- + #endregion + } +} diff --git a/TJAPlayer3/Common/CPrivateFastFont.cs b/TJAPlayer3/Common/CPrivateFastFont.cs new file mode 100644 index 00000000..4d8edb67 --- /dev/null +++ b/TJAPlayer3/Common/CPrivateFastFont.cs @@ -0,0 +1,427 @@ +using System; +using System.Collections.Generic; +using System.Runtime.InteropServices; +using System.Text; +using System.Drawing; +using System.Drawing.Drawing2D; +using System.Diagnostics; + +namespace TJAPlayer3 +{ + /// + /// 高速描画版のCPrivateFontクラス。 + /// といっても、一度レンダリングした結果をキャッシュして使いまわしているだけ。 + /// + public class CPrivateFastFont : CPrivateFont + { + /// + /// キャッシュ容量 + /// + private const int MAXCACHESIZE = 128; + + private struct FontCache + { + // public Font font; + public int edgePt; + public string drawstr; + public DrawMode drawmode; + public Color fontColor; + public Color edgeColor; + public Color gradationTopColor; + public Color gradationBottomColor; + public Bitmap bmp; + public Rectangle rectStrings; + public Point ptOrigin; + } + private List listFontCache; + + + #region [ コンストラクタ ] + public CPrivateFastFont(FontFamily fontfamily, int pt, FontStyle style) + { + Initialize(null, fontfamily, pt, style); + } + public CPrivateFastFont(FontFamily fontfamily, int pt) + { + Initialize(null, fontfamily, pt, FontStyle.Regular); + } + public CPrivateFastFont(string fontpath, int pt, FontStyle style) + { + Initialize(fontpath, null, pt, style); + } + public CPrivateFastFont(string fontpath, int pt) + { + Initialize(fontpath, null, pt, FontStyle.Regular); + } + public CPrivateFastFont() + { + throw new ArgumentException("CPrivateFastFont: 引数があるコンストラクタを使用してください。"); + } + #endregion + #region [ コンストラクタから呼ばれる初期化処理 ] + protected new void Initialize(string fontpath, FontFamily fontfamily, int pt, FontStyle style) + { + this.bDispose完了済み_CPrivateFastFont = false; + this.listFontCache = new List(); + base.Initialize(fontpath, fontfamily, pt, style); + } + #endregion + + + #region [ DrawPrivateFontのオーバーロード群 ] + /// + /// 文字列を描画したテクスチャを返す + /// + /// 描画文字列 + /// 描画色 + /// 描画済テクスチャ + public new Bitmap DrawPrivateFont(string drawstr, Color fontColor) + { + return DrawPrivateFont(drawstr, DrawMode.Normal, fontColor, Color.White, Color.White, Color.White); + } + + public new Bitmap DrawPrivateFont(string drawstr, Color fontColor, Color edgeColor, int edgePt) + { + return DrawPrivateFont_E(drawstr, DrawMode.Edge, fontColor, edgeColor, Color.White, Color.White, edgePt); + } + + /// + /// 文字列を描画したテクスチャを返す + /// + /// 描画文字列 + /// 描画色 + /// 縁取色 + /// 描画済テクスチャ + public new Bitmap DrawPrivateFont(string drawstr, Color fontColor, Color edgeColor) + { + return DrawPrivateFont(drawstr, DrawMode.Edge, fontColor, edgeColor, Color.White, Color.White); + } + + /// + /// 文字列を描画したテクスチャを返す + /// + /// 描画文字列 + /// 描画色 + /// 縁取色 + /// 描画済テクスチャ + public Bitmap DrawPrivateFont(string drawstr, Color fontColor, Color edgeColor, DrawMode dMode) + { + return DrawPrivateFont(drawstr, dMode, fontColor, edgeColor, Color.White, Color.White); + } + /// + /// 文字列を描画したテクスチャを返す + /// + /// 描画文字列 + /// 描画色 + /// グラデーション 上側の色 + /// グラデーション 下側の色 + /// 描画済テクスチャ + //public new Bitmap DrawPrivateFont( string drawstr, Color fontColor, Color gradationTopColor, Color gradataionBottomColor ) + //{ + // return DrawPrivateFont( drawstr, DrawMode.Gradation, fontColor, Color.White, gradationTopColor, gradataionBottomColor ); + //} + + /// + /// 文字列を描画したテクスチャを返す + /// + /// 描画文字列 + /// 描画色 + /// 縁取色 + /// グラデーション 上側の色 + /// グラデーション 下側の色 + /// 描画済テクスチャ + public new Bitmap DrawPrivateFont(string drawstr, Color fontColor, Color edgeColor, Color gradationTopColor, Color gradataionBottomColor) + { + return DrawPrivateFont(drawstr, DrawMode.Edge | DrawMode.Gradation, fontColor, edgeColor, gradationTopColor, gradataionBottomColor); + } + + /// + /// 文字列を描画したテクスチャを返す + /// + /// 描画文字列 + /// 描画色 + /// 縁取色 + /// グラデーション 上側の色 + /// グラデーション 下側の色 + /// 描画済テクスチャ + public Bitmap DrawPrivateFont(string drawstr, Color fontColor, Color edgeColor, bool bVertical) + { + return DrawPrivateFont_V(drawstr, fontColor, edgeColor, bVertical); + } + +#if こちらは使わない // (Bitmapではなく、CTextureを返す版) + /// + /// 文字列を描画したテクスチャを返す + /// + /// 描画文字列 + /// 描画色 + /// 描画済テクスチャ + public CTexture DrawPrivateFont( string drawstr, Color fontColor ) + { + Bitmap bmp = DrawPrivateFont( drawstr, DrawMode.Normal, fontColor, Color.White, Color.White, Color.White ); + return CDTXMania.tテクスチャの生成( bmp, false ); + } + + /// + /// 文字列を描画したテクスチャを返す + /// + /// 描画文字列 + /// 描画色 + /// 縁取色 + /// 描画済テクスチャ + public CTexture DrawPrivateFont( string drawstr, Color fontColor, Color edgeColor ) + { + Bitmap bmp = DrawPrivateFont( drawstr, DrawMode.Edge, fontColor, edgeColor, Color.White, Color.White ); + return CDTXMania.tテクスチャの生成( bmp, false ); + } + + /// + /// 文字列を描画したテクスチャを返す + /// + /// 描画文字列 + /// 描画色 + /// グラデーション 上側の色 + /// グラデーション 下側の色 + /// 描画済テクスチャ + //public CTexture DrawPrivateFont( string drawstr, Color fontColor, Color gradationTopColor, Color gradataionBottomColor ) + //{ + // Bitmap bmp = DrawPrivateFont( drawstr, DrawMode.Gradation, fontColor, Color.White, gradationTopColor, gradataionBottomColor ); + // return CDTXMania.tテクスチャの生成( bmp, false ); + //} + + /// + /// 文字列を描画したテクスチャを返す + /// + /// 描画文字列 + /// 描画色 + /// 縁取色 + /// グラデーション 上側の色 + /// グラデーション 下側の色 + /// 描画済テクスチャ + public CTexture DrawPrivateFont( string drawstr, Color fontColor, Color edgeColor, Color gradationTopColor, Color gradataionBottomColor ) + { + Bitmap bmp = DrawPrivateFont( drawstr, DrawMode.Edge | DrawMode.Gradation, fontColor, edgeColor, gradationTopColor, gradataionBottomColor ); + return CDTXMania.tテクスチャの生成( bmp, false ); + } +#endif + #endregion + + protected new Bitmap DrawPrivateFont_E(string drawstr, DrawMode drawmode, Color fontColor, Color edgeColor, Color gradationTopColor, Color gradationBottomColor, int edgePt) + { + #region [ 以前レンダリングしたことのある文字列/フォントか? (キャッシュにヒットするか?) ] + int index = listFontCache.FindIndex( + delegate (FontCache fontcache) + { + return ( + drawstr == fontcache.drawstr && + drawmode == fontcache.drawmode && + fontColor == fontcache.fontColor && + edgeColor == fontcache.edgeColor && + gradationTopColor == fontcache.gradationTopColor && + gradationBottomColor == fontcache.gradationBottomColor && + edgePt == fontcache.edgePt + // _font == fontcache.font + ); + } + ); + #endregion + if (index < 0) + { + // キャッシュにヒットせず。 + #region [ レンダリングして、キャッシュに登録 ] + FontCache fc = new FontCache(); + fc.bmp = base.DrawPrivateFont_E(drawstr, drawmode, fontColor, edgeColor, gradationTopColor, gradationBottomColor, edgePt); + fc.drawstr = drawstr; + fc.drawmode = drawmode; + fc.fontColor = fontColor; + fc.edgeColor = edgeColor; + fc.gradationTopColor = gradationTopColor; + fc.gradationBottomColor = gradationBottomColor; + fc.edgePt = edgePt; + fc.rectStrings = RectStrings; + fc.ptOrigin = PtOrigin; + listFontCache.Add(fc); + Debug.WriteLine(drawstr + ": Cacheにヒットせず。(cachesize=" + listFontCache.Count + ")"); + #endregion + #region [ もしキャッシュがあふれたら、最も古いキャッシュを破棄する ] + if (listFontCache.Count > MAXCACHESIZE) + { + Debug.WriteLine("Cache溢れ。" + listFontCache[0].drawstr + " を解放します。"); + if (listFontCache[0].bmp != null) + { + listFontCache[0].bmp.Dispose(); + } + listFontCache.RemoveAt(0); + } + #endregion + + // 呼び出し元のDispose()でキャッシュもDispose()されないように、Clone()で返す。 + return (Bitmap)listFontCache[listFontCache.Count - 1].bmp.Clone(); + } + else + { + Debug.WriteLine(drawstr + ": Cacheにヒット!! index=" + index); + #region [ キャッシュにヒット。レンダリングは行わず、キャッシュ内のデータを返して終了。] + RectStrings = listFontCache[index].rectStrings; + PtOrigin = listFontCache[index].ptOrigin; + // 呼び出し元のDispose()でキャッシュもDispose()されないように、Clone()で返す。 + return (Bitmap)listFontCache[index].bmp.Clone(); + #endregion + } + } + + protected new Bitmap DrawPrivateFont(string drawstr, DrawMode drawmode, Color fontColor, Color edgeColor, Color gradationTopColor, Color gradationBottomColor) + { + #region [ 以前レンダリングしたことのある文字列/フォントか? (キャッシュにヒットするか?) ] + int index = listFontCache.FindIndex( + delegate (FontCache fontcache) + { + return ( + drawstr == fontcache.drawstr && + drawmode == fontcache.drawmode && + fontColor == fontcache.fontColor && + edgeColor == fontcache.edgeColor && + gradationTopColor == fontcache.gradationTopColor && + gradationBottomColor == fontcache.gradationBottomColor + // _font == fontcache.font + ); + } + ); + #endregion + if (index < 0) + { + // キャッシュにヒットせず。 + #region [ レンダリングして、キャッシュに登録 ] + FontCache fc = new FontCache(); + fc.bmp = base.DrawPrivateFont(drawstr, drawmode, fontColor, edgeColor, gradationTopColor, gradationBottomColor); + fc.drawstr = drawstr; + fc.drawmode = drawmode; + fc.fontColor = fontColor; + fc.edgeColor = edgeColor; + fc.gradationTopColor = gradationTopColor; + fc.gradationBottomColor = gradationBottomColor; + fc.rectStrings = RectStrings; + fc.ptOrigin = PtOrigin; + listFontCache.Add(fc); + Debug.WriteLine(drawstr + ": Cacheにヒットせず。(cachesize=" + listFontCache.Count + ")"); + #endregion + #region [ もしキャッシュがあふれたら、最も古いキャッシュを破棄する ] + if (listFontCache.Count > MAXCACHESIZE) + { + Debug.WriteLine("Cache溢れ。" + listFontCache[0].drawstr + " を解放します。"); + if (listFontCache[0].bmp != null) + { + listFontCache[0].bmp.Dispose(); + } + listFontCache.RemoveAt(0); + } + #endregion + + // 呼び出し元のDispose()でキャッシュもDispose()されないように、Clone()で返す。 + return (Bitmap)listFontCache[listFontCache.Count - 1].bmp.Clone(); + } + else + { + Debug.WriteLine(drawstr + ": Cacheにヒット!! index=" + index); + #region [ キャッシュにヒット。レンダリングは行わず、キャッシュ内のデータを返して終了。] + RectStrings = listFontCache[index].rectStrings; + PtOrigin = listFontCache[index].ptOrigin; + // 呼び出し元のDispose()でキャッシュもDispose()されないように、Clone()で返す。 + return (Bitmap)listFontCache[index].bmp.Clone(); + #endregion + } + } + + protected new Bitmap DrawPrivateFont_V(string drawstr, Color fontColor, Color edgeColor, bool bVertical) + { + #region [ 以前レンダリングしたことのある文字列/フォントか? (キャッシュにヒットするか?) ] + int index = listFontCache.FindIndex( + delegate (FontCache fontcache) + { + return ( + drawstr == fontcache.drawstr && + fontColor == fontcache.fontColor && + edgeColor == fontcache.edgeColor && + bVertical == true + // _font == fontcache.font + ); + } + ); + #endregion + if (index < 0) + { + // キャッシュにヒットせず。 + #region [ レンダリングして、キャッシュに登録 ] + FontCache fc = new FontCache(); + fc.bmp = base.DrawPrivateFont_V(drawstr, fontColor, edgeColor, true); + fc.drawstr = drawstr; + fc.fontColor = fontColor; + fc.edgeColor = edgeColor; + fc.rectStrings = RectStrings; + fc.ptOrigin = PtOrigin; + listFontCache.Add(fc); + Debug.WriteLine(drawstr + ": Cacheにヒットせず。(cachesize=" + listFontCache.Count + ")"); + #endregion + #region [ もしキャッシュがあふれたら、最も古いキャッシュを破棄する ] + if (listFontCache.Count > MAXCACHESIZE) + { + Debug.WriteLine("Cache溢れ。" + listFontCache[0].drawstr + " を解放します。"); + if (listFontCache[0].bmp != null) + { + listFontCache[0].bmp.Dispose(); + } + listFontCache.RemoveAt(0); + } + #endregion + + // 呼び出し元のDispose()でキャッシュもDispose()されないように、Clone()で返す。 + return (Bitmap)listFontCache[listFontCache.Count - 1].bmp.Clone(); + } + else + { + Debug.WriteLine(drawstr + ": Cacheにヒット!! index=" + index); + #region [ キャッシュにヒット。レンダリングは行わず、キャッシュ内のデータを返して終了。] + RectStrings = listFontCache[index].rectStrings; + PtOrigin = listFontCache[index].ptOrigin; + // 呼び出し元のDispose()でキャッシュもDispose()されないように、Clone()で返す。 + return (Bitmap)listFontCache[index].bmp.Clone(); + #endregion + } + } + + #region [ IDisposable 実装 ] + //----------------- + public new void Dispose() + { + if (!this.bDispose完了済み_CPrivateFastFont) + { + if (listFontCache != null) + { + //Debug.WriteLine( "Disposing CPrivateFastFont()" ); + #region [ キャッシュしている画像を破棄する ] + foreach (FontCache bc in listFontCache) + + { + if (bc.bmp != null) + { + bc.bmp.Dispose(); + } + } + #endregion + listFontCache.Clear(); + listFontCache = null; + } + this.bDispose完了済み_CPrivateFastFont = true; + } + base.Dispose(); + } + //----------------- + #endregion + + #region [ private ] + //----------------- + protected bool bDispose完了済み_CPrivateFastFont; + //----------------- + #endregion + } +} diff --git a/TJAPlayer3/Common/CPrivateFont.cs b/TJAPlayer3/Common/CPrivateFont.cs new file mode 100644 index 00000000..c154eee3 --- /dev/null +++ b/TJAPlayer3/Common/CPrivateFont.cs @@ -0,0 +1,1121 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.IO; +using System.Runtime.InteropServices; +using System.Drawing; +using System.Drawing.Drawing2D; +using System.Diagnostics; +using SlimDX; +using FDK; +using System.Linq; + +namespace TJAPlayer3 +{ + /// + /// プライベートフォントでの描画を扱うクラス。 + /// + /// フォントファイルが見つからない時に例外発生 + /// スタイル指定不正時に例外発生 + /// + /// 簡単な使い方 + /// CPrivateFont prvFont = new CPrivateFont( CSkin.Path( @"Graphics\fonts\mplus-1p-bold.ttf" ), 36 ); // プライベートフォント + /// とか + /// CPrivateFont prvFont = new CPrivateFont( new FontFamily("MS UI Gothic"), 36, FontStyle.Bold ); // システムフォント + /// とかした上で、 + /// Bitmap bmp = prvFont.DrawPrivateFont( "ABCDE", Color.White, Color.Black ); // フォント色=白、縁の色=黒の例。縁の色は省略可能 + /// とか + /// Bitmap bmp = prvFont.DrawPrivateFont( "ABCDE", Color.White, Color.Black, Color.Yellow, Color.OrangeRed ); // 上下グラデーション(Yellow→OrangeRed) + /// とかして、 + /// CTexture ctBmp = CDTXMania.tテクスチャの生成( bmp, false ); + /// ctBMP.t2D描画( ~~~ ); + /// で表示してください。 + /// + /// 注意点 + /// 任意のフォントでのレンダリングは結構負荷が大きいので、なるべkなら描画フレーム毎にフォントを再レンダリングするようなことはせず、 + /// 一旦レンダリングしたものを描画に使い回すようにしてください。 + /// また、長い文字列を与えると、返されるBitmapも横長になります。この横長画像をそのままテクスチャとして使うと、 + /// 古いPCで問題を発生させやすいです。これを回避するには、一旦Bitmapとして取得したのち、256pixや512pixで分割して + /// テクスチャに定義するようにしてください。 + /// + + #region In拡張子 + public static class StringExtensions + { + public static bool In(this string str, params string[] param) + { + return param.Contains(str); + } + } + #endregion + + public class CPrivateFont : IDisposable + { + #region [ コンストラクタ ] + public CPrivateFont( FontFamily fontfamily, int pt, FontStyle style ) + { + Initialize( null, fontfamily, pt, style ); + } + public CPrivateFont( FontFamily fontfamily, int pt ) + { + Initialize( null, fontfamily, pt, FontStyle.Regular ); + } + public CPrivateFont( string fontpath, int pt, FontStyle style ) + { + Initialize( fontpath, null, pt, style ); + } + public CPrivateFont( string fontpath, int pt ) + { + Initialize( fontpath, null, pt, FontStyle.Regular ); + } + public CPrivateFont() + { + //throw new ArgumentException("CPrivateFont: 引数があるコンストラクタを使用してください。"); + } + #endregion + + protected void Initialize( string fontpath, FontFamily fontfamily, int pt, FontStyle style ) + { + this._pfc = null; + this._fontfamily = null; + this._font = null; + this._pt = pt; + this._rectStrings = new Rectangle(0, 0, 0, 0); + this._ptOrigin = new Point(0, 0); + this.bDispose完了済み = false; + + if (fontfamily != null) + { + this._fontfamily = fontfamily; + } + else + { + try + { + this._pfc = new System.Drawing.Text.PrivateFontCollection(); //PrivateFontCollectionオブジェクトを作成する + this._pfc.AddFontFile(fontpath); //PrivateFontCollectionにフォントを追加する + _fontfamily = _pfc.Families[0]; + } + catch (System.IO.FileNotFoundException) + { + Trace.TraceWarning("プライベートフォントの追加に失敗しました({0})。代わりにMS UI Gothicの使用を試みます。", fontpath); + //throw new FileNotFoundException( "プライベートフォントの追加に失敗しました。({0})", Path.GetFileName( fontpath ) ); + //return; + _fontfamily = null; + } + + //foreach ( FontFamily ff in _pfc.Families ) + //{ + // Debug.WriteLine( "fontname=" + ff.Name ); + // if ( ff.Name == Path.GetFileNameWithoutExtension( fontpath ) ) + // { + // _fontfamily = ff; + // break; + // } + //} + //if ( _fontfamily == null ) + //{ + // Trace.TraceError( "プライベートフォントの追加後、検索に失敗しました。({0})", fontpath ); + // return; + //} + } + + // 指定されたフォントスタイルが適用できない場合は、フォント内で定義されているスタイルから候補を選んで使用する + // 何もスタイルが使えないようなフォントなら、例外を出す。 + if (_fontfamily != null) + { + if (!_fontfamily.IsStyleAvailable(style)) + { + FontStyle[] FS = { FontStyle.Regular, FontStyle.Bold, FontStyle.Italic, FontStyle.Underline, FontStyle.Strikeout }; + style = FontStyle.Regular | FontStyle.Bold | FontStyle.Italic | FontStyle.Underline | FontStyle.Strikeout; // null非許容型なので、代わりに全盛をNGワードに設定 + foreach (FontStyle ff in FS) + { + if (this._fontfamily.IsStyleAvailable(ff)) + { + style = ff; + Trace.TraceWarning("フォント{0}へのスタイル指定を、{1}に変更しました。", Path.GetFileName(fontpath), style.ToString()); + break; + } + } + if (style == (FontStyle.Regular | FontStyle.Bold | FontStyle.Italic | FontStyle.Underline | FontStyle.Strikeout)) + { + Trace.TraceWarning("フォント{0}は適切なスタイル{1}を選択できませんでした。", Path.GetFileName(fontpath), style.ToString()); + } + } + //this._font = new Font(this._fontfamily, pt, style); //PrivateFontCollectionの先頭のフォントのFontオブジェクトを作成する + float emSize = pt * 96.0f / 72.0f; + this._font = new Font(this._fontfamily, emSize, style, GraphicsUnit.Pixel); //PrivateFontCollectionの先頭のフォントのFontオブジェクトを作成する + //HighDPI対応のため、pxサイズで指定 + } + else + // フォントファイルが見つからなかった場合 (MS PGothicを代わりに指定する) + { + float emSize = pt * 96.0f / 72.0f; + this._font = new Font("MS UI Gothic", emSize, style, GraphicsUnit.Pixel); //MS PGothicのFontオブジェクトを作成する + FontFamily[] ffs = new System.Drawing.Text.InstalledFontCollection().Families; + int lcid = System.Globalization.CultureInfo.GetCultureInfo("en-us").LCID; + foreach (FontFamily ff in ffs) + { + // Trace.WriteLine( lcid ) ); + if (ff.GetName(lcid) == "MS UI Gothic") + { + this._fontfamily = ff; + Trace.TraceInformation("MS UI Gothicを代わりに指定しました。"); + return; + } + } + throw new FileNotFoundException("プライベートフォントの追加に失敗し、MS UI Gothicでの代替処理にも失敗しました。({0})", Path.GetFileName(fontpath)); + } + } + + [Flags] + public enum DrawMode + { + Normal, + Edge, + Gradation, + Vertical + } + + #region [ DrawPrivateFontのオーバーロード群 ] + /// + /// 文字列を描画したテクスチャを返す + /// + /// 描画文字列 + /// 描画色 + /// 描画済テクスチャ + public Bitmap DrawPrivateFont( string drawstr, Color fontColor ) + { + return DrawPrivateFont( drawstr, DrawMode.Normal, fontColor, Color.White, Color.White, Color.White ); + } + + /// + /// 文字列を描画したテクスチャを返す + /// + /// 描画文字列 + /// 描画色 + /// 縁取色 + /// 描画済テクスチャ + public Bitmap DrawPrivateFont( string drawstr, Color fontColor, Color edgeColor ) + { + return DrawPrivateFont( drawstr, DrawMode.Edge, fontColor, edgeColor, Color.White, Color.White ); + } + + /// + /// 文字列を描画したテクスチャを返す + /// + /// 描画文字列 + /// 描画色 + /// グラデーション 上側の色 + /// グラデーション 下側の色 + /// 描画済テクスチャ + //public Bitmap DrawPrivateFont( string drawstr, Color fontColor, Color gradationTopColor, Color gradataionBottomColor ) + //{ + // return DrawPrivateFont( drawstr, DrawMode.Gradation, fontColor, Color.White, gradationTopColor, gradataionBottomColor ); + //} + + /// + /// 文字列を描画したテクスチャを返す + /// + /// 描画文字列 + /// 描画色 + /// 縁取色 + /// グラデーション 上側の色 + /// グラデーション 下側の色 + /// 描画済テクスチャ + public Bitmap DrawPrivateFont( string drawstr, Color fontColor, Color edgeColor, Color gradationTopColor, Color gradataionBottomColor ) + { + return DrawPrivateFont( drawstr, DrawMode.Edge | DrawMode.Gradation, fontColor, edgeColor, gradationTopColor, gradataionBottomColor ); + } + +#if こちらは使わない // (Bitmapではなく、CTextureを返す版) + /// + /// 文字列を描画したテクスチャを返す + /// + /// 描画文字列 + /// 描画色 + /// 描画済テクスチャ + public CTexture DrawPrivateFont( string drawstr, Color fontColor ) + { + Bitmap bmp = DrawPrivateFont( drawstr, DrawMode.Normal, fontColor, Color.White, Color.White, Color.White ); + return CDTXMania.tテクスチャの生成( bmp, false ); + } + + /// + /// 文字列を描画したテクスチャを返す + /// + /// 描画文字列 + /// 描画色 + /// 縁取色 + /// 描画済テクスチャ + public CTexture DrawPrivateFont( string drawstr, Color fontColor, Color edgeColor ) + { + Bitmap bmp = DrawPrivateFont( drawstr, DrawMode.Edge, fontColor, edgeColor, Color.White, Color.White ); + return CDTXMania.tテクスチャの生成( bmp, false ); + } + + /// + /// 文字列を描画したテクスチャを返す + /// + /// 描画文字列 + /// 描画色 + /// グラデーション 上側の色 + /// グラデーション 下側の色 + /// 描画済テクスチャ + //public CTexture DrawPrivateFont( string drawstr, Color fontColor, Color gradationTopColor, Color gradataionBottomColor ) + //{ + // Bitmap bmp = DrawPrivateFont( drawstr, DrawMode.Gradation, fontColor, Color.White, gradationTopColor, gradataionBottomColor ); + // return CDTXMania.tテクスチャの生成( bmp, false ); + //} + + /// + /// 文字列を描画したテクスチャを返す + /// + /// 描画文字列 + /// 描画色 + /// 縁取色 + /// グラデーション 上側の色 + /// グラデーション 下側の色 + /// 描画済テクスチャ + public CTexture DrawPrivateFont( string drawstr, Color fontColor, Color edgeColor, Color gradationTopColor, Color gradataionBottomColor ) + { + Bitmap bmp = DrawPrivateFont( drawstr, DrawMode.Edge | DrawMode.Gradation, fontColor, edgeColor, gradationTopColor, gradataionBottomColor ); + return CDTXMania.tテクスチャの生成( bmp, false ); + } +#endif + #endregion + + protected Bitmap DrawPrivateFont_E(string drawstr, DrawMode drawmode, Color fontColor, Color edgeColor, Color gradationTopColor, Color gradationBottomColor, int edgePt) + { + if (this._fontfamily == null || drawstr == null || drawstr == "") + { + // nullを返すと、その後bmp→texture処理や、textureのサイズを見て__の処理で全部例外が発生することになる。 + // それは非常に面倒なので、最小限のbitmapを返してしまう。 + // まずはこの仕様で進めますが、問題有れば(上位側からエラー検出が必要であれば)例外を出したりエラー状態であるプロパティを定義するなり検討します。 + if (drawstr != "") + { + Trace.TraceWarning("DrawPrivateFont()の入力不正。最小値のbitmapを返します。"); + } + _rectStrings = new Rectangle(0, 0, 0, 0); + _ptOrigin = new Point(0, 0); + return new Bitmap(1, 1); + } + bool bEdge = ((drawmode & DrawMode.Edge) == DrawMode.Edge); + bool bGradation = ((drawmode & DrawMode.Gradation) == DrawMode.Gradation); + + // 縁取りの縁のサイズは、とりあえずフォントの大きさの1/4とする + //int nEdgePt = (bEdge)? _pt / 4 : 0; + //int nEdgePt = (bEdge) ? (_pt / 3) : 0; // 縁取りが少なすぎるという意見が多かったため変更。 (AioiLight) + int nEdgePt = (bEdge) ? (10 * _pt / edgePt) : 0; //SkinConfigにて設定可能に(rhimm) + + // 描画サイズを測定する + Size stringSize = System.Windows.Forms.TextRenderer.MeasureText(drawstr, this._font, new Size(int.MaxValue, int.MaxValue), + System.Windows.Forms.TextFormatFlags.NoPrefix | + System.Windows.Forms.TextFormatFlags.NoPadding + ); + stringSize.Width += 10; //2015.04.01 kairera0467 ROTTERDAM NATIONの描画サイズがうまくいかんので。 + stringSize.Height += 5; + + //取得した描画サイズを基に、描画先のbitmapを作成する + Bitmap bmp = new Bitmap(stringSize.Width + nEdgePt * 2, stringSize.Height + nEdgePt * 3); + bmp.MakeTransparent(); + Graphics g = Graphics.FromImage(bmp); + g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; + + StringFormat sf = new StringFormat(); + sf.LineAlignment = StringAlignment.Far; // 画面下部(垂直方向位置) + sf.Alignment = StringAlignment.Center; // 画面中央(水平方向位置) + sf.FormatFlags = StringFormatFlags.NoWrap; // どんなに長くて単語の区切りが良くても改行しない (AioiLight) + sf.Trimming = StringTrimming.None; // どんなに長くてもトリミングしない (AioiLight) + // レイアウト枠 + Rectangle r = new Rectangle(0, 0, stringSize.Width + nEdgePt * 2 + (TJAPlayer3.Skin.Text_Correction_X * stringSize.Width / 100), stringSize.Height + nEdgePt * 2 + (TJAPlayer3.Skin.Text_Correction_Y * stringSize.Height / 100)); + + if (bEdge) // 縁取り有りの描画 + { + // DrawPathで、ポイントサイズを使って描画するために、DPIを使って単位変換する + // (これをしないと、単位が違うために、小さめに描画されてしまう) + float sizeInPixels = _font.SizeInPoints * g.DpiY / 72; // 1 inch = 72 points + + System.Drawing.Drawing2D.GraphicsPath gp = new System.Drawing.Drawing2D.GraphicsPath(); + gp.AddString(drawstr, this._fontfamily, (int)this._font.Style, sizeInPixels, r, sf); + + // 縁取りを描画する + Pen p = new Pen(edgeColor, nEdgePt); + p.LineJoin = System.Drawing.Drawing2D.LineJoin.Round; + g.DrawPath(p, gp); + + // 塗りつぶす + Brush br; + if (bGradation) + { + br = new LinearGradientBrush(r, gradationTopColor, gradationBottomColor, LinearGradientMode.Vertical); + } + else + { + br = new SolidBrush(fontColor); + } + g.FillPath(br, gp); + + if (br != null) br.Dispose(); br = null; + if (p != null) p.Dispose(); p = null; + if (gp != null) gp.Dispose(); gp = null; + } + else + { + // 縁取りなしの描画 + System.Windows.Forms.TextRenderer.DrawText(g, drawstr, _font, new Point(0, 0), fontColor); + } + + _rectStrings = new Rectangle(0, 0, stringSize.Width, stringSize.Height); + _ptOrigin = new Point(nEdgePt * 2, nEdgePt * 2); + + + #region [ リソースを解放する ] + if (sf != null) sf.Dispose(); sf = null; + if (g != null) g.Dispose(); g = null; + #endregion + + return bmp; + } + + + /// + /// 文字列を描画したテクスチャを返す(メイン処理) + /// + /// 描画された領域 + /// 描画文字列 + /// 描画文字列 + /// 描画モード + /// 描画色 + /// 縁取色 + /// グラデーション 上側の色 + /// グラデーション 下側の色 + /// 描画済テクスチャ + protected Bitmap DrawPrivateFont(string drawstr, DrawMode drawmode, Color fontColor, Color edgeColor, Color gradationTopColor, Color gradationBottomColor) + { + int Interval = 5; + + if (this._fontfamily == null || drawstr == null || drawstr == "" || drawstr == " " || drawstr == " ") + { + // nullを返すと、その後bmp→texture処理や、textureのサイズを見て__の処理で全部例外が発生することになる。 + // それは非常に面倒なので、最小限のbitmapを返してしまう。 + // まずはこの仕様で進めますが、問題有れば(上位側からエラー検出が必要であれば)例外を出したりエラー状態であるプロパティを定義するなり検討します。 + if (drawstr != "") + { + Trace.TraceWarning("DrawPrivateFont()の入力不正。最小値のbitmapを返します。"); + } + _rectStrings = new Rectangle(0, 0, 0, 0); + _ptOrigin = new Point(0, 0); + return new Bitmap(1, 1); + } + bool bEdge = ((drawmode & DrawMode.Edge) == DrawMode.Edge); + bool bGradation = ((drawmode & DrawMode.Gradation) == DrawMode.Gradation); + + // 縁取りの縁のサイズは、とりあえずフォントの大きさの1/4とする + //int nEdgePt = (bEdge)? _pt / 4 : 0; + //int nEdgePt = (bEdge) ? (_pt / 3) : 0; // 縁取りが少なすぎるという意見が多かったため変更。 (AioiLight) + int nEdgePt = (bEdge) ? (10 * _pt / TJAPlayer3.Skin.Font_Edge_Ratio) : 0; //SkinConfigにて設定可能に(rhimm) + + // 描画サイズを測定する + Size stringSize = System.Windows.Forms.TextRenderer.MeasureText(drawstr, this._font, new Size(int.MaxValue, int.MaxValue), + System.Windows.Forms.TextFormatFlags.NoPrefix | + System.Windows.Forms.TextFormatFlags.NoPadding + ); + stringSize.Width += 10; //2015.04.01 kairera0467 ROTTERDAM NATIONの描画サイズがうまくいかんので。 + stringSize.Height += 5; + + //取得した描画サイズを基に、描画先のbitmapを作成する + Bitmap bmp = new Bitmap(stringSize.Width + nEdgePt * 2, stringSize.Height + nEdgePt * 2); + bmp.MakeTransparent(); + Graphics g = Graphics.FromImage(bmp); + g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; + + StringFormat sf = new StringFormat(); + sf.LineAlignment = StringAlignment.Far; // 画面下部(垂直方向位置) + sf.Alignment = StringAlignment.Center; // 画面中央(水平方向位置) + sf.FormatFlags = StringFormatFlags.NoWrap; // どんなに長くて単語の区切りが良くても改行しない (AioiLight) + sf.Trimming = StringTrimming.None; // どんなに長くてもトリミングしない (AioiLight) + // レイアウト枠 + Rectangle r = new Rectangle(0, 0, stringSize.Width + nEdgePt * 2 + (TJAPlayer3.Skin.Text_Correction_X * stringSize.Width / 100), stringSize.Height + nEdgePt * 2 + (TJAPlayer3.Skin.Text_Correction_Y * stringSize.Height / 100)); + + if (bEdge) // 縁取り有りの描画 + { + // DrawPathで、ポイントサイズを使って描画するために、DPIを使って単位変換する + // (これをしないと、単位が違うために、小さめに描画されてしまう) + float sizeInPixels = _font.SizeInPoints * g.DpiY / 72; // 1 inch = 72 points + + System.Drawing.Drawing2D.GraphicsPath gp = new System.Drawing.Drawing2D.GraphicsPath(); + gp.AddString(drawstr, this._fontfamily, (int)this._font.Style, sizeInPixels, r, sf); + + // 縁取りを描画する + Pen p = new Pen(edgeColor, nEdgePt); + p.LineJoin = System.Drawing.Drawing2D.LineJoin.Round; + g.DrawPath(p, gp); + + // 塗りつぶす + Brush br; + if (bGradation) + { + br = new LinearGradientBrush(r, gradationTopColor, gradationBottomColor, LinearGradientMode.Vertical); + } + else + { + br = new SolidBrush(fontColor); + } + g.FillPath(br, gp); + + if (br != null) br.Dispose(); br = null; + if (p != null) p.Dispose(); p = null; + if (gp != null) gp.Dispose(); gp = null; + } + else + { + // 縁取りなしの描画 + System.Windows.Forms.TextRenderer.DrawText(g, drawstr, _font, new Point(0, 0), fontColor); + } + +#if debug表示 + g.DrawRectangle( new Pen( Color.White, 1 ), new Rectangle( 1, 1, stringSize.Width-1, stringSize.Height-1 ) ); + g.DrawRectangle( new Pen( Color.Green, 1 ), new Rectangle( 0, 0, bmp.Width - 1, bmp.Height - 1 ) ); +#endif + _rectStrings = new Rectangle(0, 0, stringSize.Width, stringSize.Height); + _ptOrigin = new Point(nEdgePt * 2, nEdgePt * 2); + + + #region [ リソースを解放する ] + if (sf != null) sf.Dispose(); sf = null; + if (g != null) g.Dispose(); g = null; + #endregion + + return bmp; + } + + /// + /// 文字列を描画したテクスチャを返す(メイン処理) + /// + /// 描画された領域 + /// 描画文字列 + /// 描画文字列 + /// 描画モード + /// 描画色 + /// 縁取色 + /// グラデーション 上側の色 + /// グラデーション 下側の色 + /// 描画済テクスチャ + protected Bitmap DrawPrivateFont_V( string drawstr, Color fontColor, Color edgeColor, bool bVertical ) + { + if ( this._fontfamily == null || drawstr == null || drawstr == "" ) + { + // nullを返すと、その後bmp→texture処理や、textureのサイズを見て__の処理で全部例外が発生することになる。 + // それは非常に面倒なので、最小限のbitmapを返してしまう。 + // まずはこの仕様で進めますが、問題有れば(上位側からエラー検出が必要であれば)例外を出したりエラー状態であるプロパティを定義するなり検討します。 + if ( drawstr != "" ) + { + Trace.TraceWarning( "DrawPrivateFont()の入力不正。最小値のbitmapを返します。" ); + } + _rectStrings = new Rectangle( 0, 0, 0, 0 ); + _ptOrigin = new Point( 0, 0 ); + return new Bitmap(1, 1); + } + + //StreamWriter stream = stream = new StreamWriter("Test.txt", false); + + //try + //{ + // stream = new StreamWriter("Test.txt", false); + //} + //catch (Exception ex) + //{ + // stream.Close(); + // stream = new StreamWriter("Test.txt", false); + //} + + string[] strName = new string[ drawstr.Length ]; + for( int i = 0; i < drawstr.Length; i++ ) strName[i] = drawstr.Substring(i, 1); + + #region[ キャンバスの大きさ予測 ] + //大きさを計算していく。 + int nHeight = 0; + for( int i = 0; i < strName.Length; i++ ) + { + Size strSize = System.Windows.Forms.TextRenderer.MeasureText( strName[ i ], this._font, new Size( int.MaxValue, int.MaxValue ), + System.Windows.Forms.TextFormatFlags.NoPrefix | + System.Windows.Forms.TextFormatFlags.NoPadding ); + + //stringformatは最初にやっていてもいいだろう。 + StringFormat sFormat = new StringFormat(); + sFormat.LineAlignment = StringAlignment.Center; // 画面下部(垂直方向位置) + sFormat.Alignment = StringAlignment.Center; // 画面中央(水平方向位置) + + + //できるだけ正確な値を計算しておきたい...! + Bitmap bmpDummy = new Bitmap( 150, 150 ); //とりあえず150 + Graphics gCal = Graphics.FromImage( bmpDummy ); + Rectangle rect正確なサイズ = this.MeasureStringPrecisely( gCal, strName[ i ], this._font, strSize, sFormat ); + int n余白サイズ = strSize.Height - rect正確なサイズ.Height; + + Rectangle rect = new Rectangle( 0, -n余白サイズ + 2, 46, ( strSize.Height + 16 )); + + if( strName[ i ] == "ー" || strName[ i ] == "-" || strName[ i ] == "~" || strName[ i ] == "<" || strName[ i ] == ">" || strName[ i ] == "(" || strName[ i ] == ")" || strName[ i ] == "「" || strName[ i ] == "」" || strName[ i ] == "[" || strName[ i ] == "]" ) + { + nHeight += ( rect正確なサイズ.Width ) + 4; + } + else if( strName[ i ] == "_" ){ nHeight += ( rect正確なサイズ.Height ) + 6; } + else if( strName[ i ] == " " ) + { nHeight += ( 12 ); } + else { nHeight += ( rect正確なサイズ.Height ) + 10; } + + //念のため解放 + bmpDummy.Dispose(); + gCal.Dispose(); + + //stream.WriteLine( "文字の大きさ{0},大きさ合計{1}", ( rect正確なサイズ.Height ) + 6, nHeight ); + + } + #endregion + + Bitmap bmpCambus = new Bitmap( 46, nHeight ); + Graphics Gcambus = Graphics.FromImage( bmpCambus ); + + //キャンバス作成→1文字ずつ作成してキャンバスに描画という形がよさそうかな? + int nNowPos = 0; + int nAdded = 0; + int nEdge補正X = 0; + int nEdge補正Y = 0; + if (this._pt < 18) + nAdded = nAdded - 2; + + for (int i = 0; i < strName.Length; i++) + { + Size strSize = System.Windows.Forms.TextRenderer.MeasureText(strName[i], this._font, new Size(int.MaxValue, int.MaxValue), + System.Windows.Forms.TextFormatFlags.NoPrefix | + System.Windows.Forms.TextFormatFlags.NoPadding); + + //stringformatは最初にやっていてもいいだろう。 + StringFormat sFormat = new StringFormat(); + sFormat.LineAlignment = StringAlignment.Center; // 画面下部(垂直方向位置) + sFormat.Alignment = StringAlignment.Near; // 画面中央(水平方向位置) + + //できるだけ正確な値を計算しておきたい...! + Bitmap bmpDummy = new Bitmap(150, 150); //とりあえず150 + Graphics gCal = Graphics.FromImage(bmpDummy); + Rectangle rect正確なサイズ = this.MeasureStringPrecisely(gCal, strName[i], this._font, strSize, sFormat); + int n余白サイズ = strSize.Height - rect正確なサイズ.Height; + + //Bitmap bmpV = new Bitmap( 36, ( strSize.Height + 12 ) - 6 ); + + Bitmap bmpV = new Bitmap((rect正確なサイズ.Width + 12) + nAdded, (rect正確なサイズ.Height) + 12); + + bmpV.MakeTransparent(); + Graphics gV = Graphics.FromImage(bmpV); + gV.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; + + + if (strName[i].In(TJAPlayer3.Skin.SongSelect_CorrectionX_Chara)) + { + nEdge補正X = TJAPlayer3.Skin.SongSelect_CorrectionX_Chara_Value; + } + else + { + nEdge補正X = 0; + } + if (strName[i].In(TJAPlayer3.Skin.SongSelect_CorrectionY_Chara)) + { + nEdge補正Y = TJAPlayer3.Skin.SongSelect_CorrectionY_Chara_Value; + } + else + { + nEdge補正Y = 0; + } + //X座標、Y座標それぞれについて、SkinConfig内でズレを直したい文字を , で区切って列挙して、 + //補正値を記入することで、特定のそれらの文字について一括で座標をずらす。 + //現時点では補正値をX,Y各座標について1個ずつしか取れない(複数対1)ので、 + //文字を列挙して、同じ数だけそれぞれの文字の補正値を記入できるような枠組をつくりたい。(20181205 rhimm) + + Rectangle rect = new Rectangle(-3 - nAdded + (nEdge補正X * _pt / 100), -rect正確なサイズ.Y - 2 + (nEdge補正Y * _pt / 100), (strSize.Width + 12), (strSize.Height + 12)); + //Rectangle rect = new Rectangle( 0, -rect正確なサイズ.Y - 2, 36, rect正確なサイズ.Height + 10); + + // DrawPathで、ポイントサイズを使って描画するために、DPIを使って単位変換する + // (これをしないと、単位が違うために、小さめに描画されてしまう) + float sizeInPixels = _font.SizeInPoints * gV.DpiY / 72; // 1 inch = 72 points + + System.Drawing.Drawing2D.GraphicsPath gpV = new System.Drawing.Drawing2D.GraphicsPath(); + gpV.AddString(strName[i], this._fontfamily, (int)this._font.Style, sizeInPixels, rect, sFormat); + + // 縁取りを描画する + //int nEdgePt = (_pt / 3); // 縁取りをフォントサイズ基準に変更 + int nEdgePt = (10 * _pt / TJAPlayer3.Skin.Font_Edge_Ratio_Vertical); // SkinConfigにて設定可能に(rhimm) + Pen pV = new Pen(edgeColor, nEdgePt); + pV.LineJoin = System.Drawing.Drawing2D.LineJoin.Round; + gV.DrawPath(pV, gpV); + + // 塗りつぶす + Brush brV; + { + brV = new SolidBrush(fontColor); + } + gV.FillPath(brV, gpV); + + if (brV != null) brV.Dispose(); brV = null; + if (pV != null) pV.Dispose(); pV = null; + if (gpV != null) gpV.Dispose(); gpV = null; + if (gV != null) gV.Dispose(); gV = null; + + int n補正 = 0; + int nY補正 = 0; + + if (strName[i] == "ー" || strName[i] == "-" || strName[i] == "~") + { + bmpV.RotateFlip(RotateFlipType.Rotate90FlipNone); + n補正 = 2; + if (this._pt < 20) + n補正 = 0; + //nNowPos = nNowPos - 2; + } + else if (strName[i] == "<" || strName[i] == ">" || strName[i] == "(" || strName[i] == ")" || strName[i] == "[" || strName[i] == "]" || strName[i] == "」" || strName[i] == ")" || strName[i] == "』") + { + bmpV.RotateFlip(RotateFlipType.Rotate90FlipNone); + n補正 = 2; + if (this._pt < 20) + { + n補正 = 0; + //nNowPos = nNowPos - 4; + } + } + else if (strName[i] == "「" || strName[i] == "(" || strName[i] == "『") + { + bmpV.RotateFlip(RotateFlipType.Rotate90FlipNone); + n補正 = 2; + if (this._pt < 20) + { + n補正 = 2; + //nNowPos = nNowPos; + } + } + else if (strName[i] == "・") + { + n補正 = -8; + if (this._pt < 20) + { + n補正 = -8; + //nNowPos = nNowPos; + } + } + else if (strName[i] == ".") + { + n補正 = 8; + if (this._pt < 20) + { + n補正 = 8; + //nNowPos = nNowPos; + } + } + else if (strName[i].In(TJAPlayer3.Skin.SongSelect_Rotate_Chara)) + { + bmpV.RotateFlip(RotateFlipType.Rotate90FlipNone); + } + //個別の文字に関して、カンマで区切ってSkinConfigに記入したものを回転させる(20181205 rhimm) + + + //else if( strName[ i ] == "_" ) + // nNowPos = nNowPos + 20; + else if( strName[ i ] == " " ) + nNowPos = nNowPos + 10; + + + //bmpV.Save( "String" + i.ToString() + ".png" ); + + + if( i == 0 ) + { + nNowPos = 4; + } + Gcambus.DrawImage( bmpV, (bmpCambus.Width / 2) - (bmpV.Width / 2) + n補正, nNowPos + nY補正 ); + nNowPos += bmpV.Size.Height - 6; + + if( bmpV != null ) bmpV.Dispose(); bmpV = null; + if( gCal != null ) gCal.Dispose(); gCal = null; + + //bmpCambus.Save( "test.png" ); + //if( this._pt < 20 ) + // bmpCambus.Save( "test_S.png" ); + + _rectStrings = new Rectangle( 0, 0, strSize.Width, strSize.Height ); + _ptOrigin = new Point( 6 * 2, 6 * 2 ); + + + //stream.WriteLine( "黒無しサイズ{0},余白{1},黒あり予測サイズ{2},ポ↑ジ↓{3}",rect正確なサイズ.Height, n余白サイズ, rect正確なサイズ.Height + 8, nNowPos ); + + } + //stream.Close(); + + if( Gcambus != null ) Gcambus.Dispose(); + + //return bmp; + return bmpCambus; + } + + ///// + ///// 文字列を描画したテクスチャを返す(メイン処理) + ///// + ///// 描画された領域 + ///// 描画文字列 + ///// 描画文字列 + ///// 描画モード + ///// 描画色 + ///// 縁取色 + ///// グラデーション 上側の色 + ///// グラデーション 下側の色 + ///// 描画済テクスチャ + //protected Bitmap DrawPrivateFont_V( string drawstr, Color fontColor, Color edgeColor, bool bVertical ) + //{ + // if ( this._fontfamily == null || drawstr == null || drawstr == "" ) + // { + // // nullを返すと、その後bmp→texture処理や、textureのサイズを見て__の処理で全部例外が発生することになる。 + // // それは非常に面倒なので、最小限のbitmapを返してしまう。 + // // まずはこの仕様で進めますが、問題有れば(上位側からエラー検出が必要であれば)例外を出したりエラー状態であるプロパティを定義するなり検討します。 + // if ( drawstr != "" ) + // { + // Trace.TraceWarning( "DrawPrivateFont()の入力不正。最小値のbitmapを返します。" ); + // } + // _rectStrings = new Rectangle( 0, 0, 0, 0 ); + // _ptOrigin = new Point( 0, 0 ); + // return new Bitmap(1, 1); + // } + + // //StreamWriter stream = stream = new StreamWriter("Test.txt", false); + + // //try + // //{ + // // stream = new StreamWriter("Test.txt", false); + // //} + // //catch (Exception ex) + // //{ + // // stream.Close(); + // // stream = new StreamWriter("Test.txt", false); + // //} + + // string[] strName = new string[] { "焼","肉","定","食", "X", "G", "t", "e", "s", "t" }; + // strName = new string[ drawstr.Length ]; + // for( int i = 0; i < drawstr.Length; i++ ) strName[i] = drawstr.Substring(i, 1); + + + // Bitmap bmpCambus = new Bitmap( 48, ( drawstr.Length * 31 ) ); + // Graphics Gcambus = Graphics.FromImage( bmpCambus ); + + // //キャンバス作成→1文字ずつ作成してキャンバスに描画という形がよさそうかな? + + // int nStartPos = 0; + // int nNowPos = 0; + + // //forループで1文字ずつbitmap作成? + // for( int i = 0; i < strName.Length; i++ ) + // { + // Size strSize = System.Windows.Forms.TextRenderer.MeasureText( strName[ i ], this._font, new Size( int.MaxValue, int.MaxValue ), + // System.Windows.Forms.TextFormatFlags.NoPrefix | + // System.Windows.Forms.TextFormatFlags.NoPadding ); + + // //Bitmap bmpV = new Bitmap( strSize.Width + 12, ( strSize.Height + 12 ) - 6 ); + // Bitmap bmpV = new Bitmap( 36, ( strSize.Height + 12 ) - 6 ); + // bmpV.MakeTransparent(); + // Graphics gV = Graphics.FromImage( bmpV ); + // gV.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; + + // StringFormat sFormat = new StringFormat(); + // sFormat.LineAlignment = StringAlignment.Center; // 画面下部(垂直方向位置) + // sFormat.Alignment = StringAlignment.Center; // 画面中央(水平方向位置) + + + // //Rectangle rect = new Rectangle( 0, 0, strSize.Width + 12, ( strSize.Height + 12 )); + // Rectangle rect = new Rectangle( 0, 0, 36, ( strSize.Height + 12 )); + + // // DrawPathで、ポイントサイズを使って描画するために、DPIを使って単位変換する + // // (これをしないと、単位が違うために、小さめに描画されてしまう) + // float sizeInPixels = _font.SizeInPoints * gV.DpiY / 72; // 1 inch = 72 points + + // System.Drawing.Drawing2D.GraphicsPath gpV = new System.Drawing.Drawing2D.GraphicsPath(); + // gpV.AddString( strName[ i ], this._fontfamily, (int) this._font.Style, sizeInPixels, rect, sFormat ); + + + // Rectangle rect正確なサイズ = this.MeasureStringPrecisely( gV, strName[ i ], this._font, strSize, sFormat ); + + // // 縁取りを描画する + // Pen pV = new Pen( edgeColor, 6 ); + // pV.LineJoin = System.Drawing.Drawing2D.LineJoin.Round; + // gV.DrawPath( pV, gpV ); + + // // 塗りつぶす + // Brush brV; + // { + // brV = new SolidBrush( fontColor ); + // } + // gV.FillPath( brV, gpV ); + + // if ( brV != null ) brV.Dispose(); brV = null; + // if ( pV != null ) pV.Dispose(); pV = null; + // if ( gpV != null ) gpV.Dispose(); gpV = null; + + // int n補正 = 0; + + // //bmpV.Save( "String" + i.ToString() + ".png" ); + // if( strName[ i ] == "ー" || strName[ i ] == "-" || strName[ i ] == "~") + // { + // bmpV.RotateFlip( RotateFlipType.Rotate90FlipNone ); + // nNowPos = nNowPos + 20; + // n補正 = 2; + // } + // else if( strName[ i ] == "<" || strName[ i ] == ">" || strName[ i ] == "(" || strName[ i ] == ")" ) + // { + // bmpV.RotateFlip( RotateFlipType.Rotate90FlipNone ); + // nNowPos = nNowPos + 8; + // n補正 = 2; + // } + // else if( strName[ i ] == "_" ) + // nNowPos = nNowPos + 20; + // else if( strName[ i ] == " " ) + // nNowPos = nNowPos + 10; + + // int n余白サイズ = strSize.Height - rect正確なサイズ.Height; + // if( i == 0 ) + // { + // nStartPos = -n余白サイズ + 2; + // nNowPos = -n余白サイズ + 2; + // Gcambus.DrawImage( bmpV, ( bmpCambus.Size.Width - bmpV.Size.Width ) + n補正, nStartPos ); + // //nNowPos += ( rect正確なサイズ.Height + 6 ); + // } + // else + // { + // nNowPos += ( strSize.Height - n余白サイズ ) + 4; + // Gcambus.DrawImage( bmpV, ( bmpCambus.Size.Width - bmpV.Size.Width ) + n補正, nNowPos ); + // } + + // if ( bmpV != null ) bmpV.Dispose(); + + // //bmpCambus.Save( "test.png" ); + + // _rectStrings = new Rectangle( 0, 0, strSize.Width, strSize.Height ); + // _ptOrigin = new Point( 6 * 2, 6 * 2 ); + + + // //stream.WriteLine( "黒無しサイズ{0},余白{1},黒あり予測サイズ{2},ポ↑ジ↓{3}",rect正確なサイズ.Height, n余白サイズ, rect正確なサイズ.Height + 6, nNowPos ); + + // } + // //stream.Close(); + + // //return bmp; + // return bmpCambus; + //} + + + //------------------------------------------------ + //使用:http://dobon.net/vb/dotnet/graphics/measurestring.html + + /// + /// Graphics.DrawStringで文字列を描画した時の大きさと位置を正確に計測する + /// + /// 文字列を描画するGraphics + /// 描画する文字列 + /// 描画に使用するフォント + /// これ以上大きいことはないというサイズ。 + /// できるだけ小さくすること。 + /// 描画に使用するStringFormat + /// 文字列が描画される範囲。 + /// 見つからなかった時は、Rectangle.Empty。 + public Rectangle MeasureStringPrecisely(Graphics g, + string text, Font font, Size proposedSize, StringFormat stringFormat) + { + //解像度を引き継いで、Bitmapを作成する + Bitmap bmp = new Bitmap(proposedSize.Width, proposedSize.Height, g); + //BitmapのGraphicsを作成する + Graphics bmpGraphics = Graphics.FromImage(bmp); + //Graphicsのプロパティを引き継ぐ + bmpGraphics.TextRenderingHint = g.TextRenderingHint; + bmpGraphics.TextContrast = g.TextContrast; + bmpGraphics.PixelOffsetMode = g.PixelOffsetMode; + //文字列の描かれていない部分の色を取得する + Color backColor = bmp.GetPixel(0, 0); + //実際にBitmapに文字列を描画する + bmpGraphics.DrawString(text, font, Brushes.Black, + new RectangleF(0f, 0f, proposedSize.Width, proposedSize.Height), + stringFormat); + bmpGraphics.Dispose(); + //文字列が描画されている範囲を計測する + Rectangle resultRect = MeasureForegroundArea(bmp, backColor); + bmp.Dispose(); + + return resultRect; + } + + /// + /// 指定されたBitmapで、backColor以外の色が使われている範囲を計測する + /// + private Rectangle MeasureForegroundArea(Bitmap bmp, Color backColor) + { + int backColorArgb = backColor.ToArgb(); + int maxWidth = bmp.Width; + int maxHeight = bmp.Height; + + //左側の空白部分を計測する + int leftPosition = -1; + for (int x = 0; x < maxWidth; x++) + { + for (int y = 0; y < maxHeight; y++) + { + //違う色を見つけたときは、位置を決定する + if (bmp.GetPixel(x, y).ToArgb() != backColorArgb) + { + leftPosition = x; + break; + } + } + if (0 <= leftPosition) + { + break; + } + } + //違う色が見つからなかった時 + if (leftPosition < 0) + { + return Rectangle.Empty; + } + + //右側の空白部分を計測する + int rightPosition = -1; + for (int x = maxWidth - 1; leftPosition < x; x--) + { + for (int y = 0; y < maxHeight; y++) + { + if (bmp.GetPixel(x, y).ToArgb() != backColorArgb) + { + rightPosition = x; + break; + } + } + if (0 <= rightPosition) + { + break; + } + } + if (rightPosition < 0) + { + rightPosition = leftPosition; + } + + //上の空白部分を計測する + int topPosition = -1; + for (int y = 0; y < maxHeight; y++) + { + for (int x = leftPosition; x <= rightPosition; x++) + { + if (bmp.GetPixel(x, y).ToArgb() != backColorArgb) + { + topPosition = y; + break; + } + } + if (0 <= topPosition) + { + break; + } + } + if (topPosition < 0) + { + return Rectangle.Empty; + } + + //下の空白部分を計測する + int bottomPosition = -1; + for (int y = maxHeight - 1; topPosition < y; y--) + { + for (int x = leftPosition; x <= rightPosition; x++) + { + if (bmp.GetPixel(x, y).ToArgb() != backColorArgb) + { + bottomPosition = y; + break; + } + } + if (0 <= bottomPosition) + { + break; + } + } + if (bottomPosition < 0) + { + bottomPosition = topPosition; + } + + //結果を返す + return new Rectangle(leftPosition, topPosition, + rightPosition - leftPosition, bottomPosition - topPosition); + } + + private Rectangle MeasureForegroundArea(Bitmap bmp) + { + return MeasureForegroundArea(bmp, bmp.GetPixel(0, 0)); + } + + //------------------------------------------------ + + /// + /// 最後にDrawPrivateFont()した文字列の描画領域を取得します。 + /// + public Rectangle RectStrings + { + get + { + return _rectStrings; + } + protected set + { + _rectStrings = value; + } + } + public Point PtOrigin + { + get + { + return _ptOrigin; + } + protected set + { + _ptOrigin = value; + } + } + + #region [ IDisposable 実装 ] + //----------------- + public void Dispose() + { + if (!this.bDispose完了済み) + { + if (this._font != null) + { + this._font.Dispose(); + this._font = null; + } + if (this._pfc != null) + { + this._pfc.Dispose(); + this._pfc = null; + } + + this.bDispose完了済み = true; + } + } + //----------------- + #endregion + #region [ private ] + //----------------- + protected bool bDispose完了済み; + protected Font _font; + + private System.Drawing.Text.PrivateFontCollection _pfc; + private FontFamily _fontfamily; + private int _pt; + private Rectangle _rectStrings; + private Point _ptOrigin; + //----------------- + #endregion + } +} diff --git a/TJAPlayer3/Common/CSkin.cs b/TJAPlayer3/Common/CSkin.cs new file mode 100644 index 00000000..a3844a9b --- /dev/null +++ b/TJAPlayer3/Common/CSkin.cs @@ -0,0 +1,2921 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.IO; +using System.Diagnostics; +using FDK; +using System.Drawing; +using System.Linq; + +namespace TJAPlayer3 +{ + // グローバル定数 + + public enum Eシステムサウンド + { + BGMオプション画面 = 0, + BGMコンフィグ画面, + BGM起動画面, + BGM選曲画面, + SOUNDステージ失敗音, + SOUNDカーソル移動音, + SOUNDゲーム開始音, + SOUNDゲーム終了音, + SOUNDステージクリア音, + SOUNDタイトル音, + SOUNDフルコンボ音, + SOUND歓声音, + SOUND曲読込開始音, + SOUND決定音, + SOUND取消音, + SOUND変更音, + //SOUND赤, + //SOUND青, + SOUND風船, + SOUND曲決定音, + SOUND成績発表, + SOUND特訓再生, + SOUND特訓停止, + sound特訓ジャンプポイント, + sound特訓スキップ音, + SOUND特訓スクロール, + Count // システムサウンド総数の計算用 + } + + internal class CSkin : IDisposable + { + // クラス + + public class Cシステムサウンド : IDisposable + { + // static フィールド + + public static CSkin.Cシステムサウンド r最後に再生した排他システムサウンド; + + private readonly ESoundGroup _soundGroup; + + // フィールド、プロパティ + + public bool bPlayed; + public bool bCompact対象; + public bool bループ; + public bool b読み込み未試行; + public bool b読み込み成功; + public bool b排他; + public string strファイル名 = ""; + public bool b再生中 + { + get + { + if (this.rSound[1 - this.n次に鳴るサウンド番号] == null) + return false; + + return this.rSound[1 - this.n次に鳴るサウンド番号].b再生中; + } + } + public int n位置_現在のサウンド + { + get + { + CSound sound = this.rSound[1 - this.n次に鳴るサウンド番号]; + if (sound == null) + return 0; + + return sound.n位置; + } + set + { + CSound sound = this.rSound[1 - this.n次に鳴るサウンド番号]; + if (sound != null) + sound.n位置 = value; + } + } + public int n位置_次に鳴るサウンド + { + get + { + CSound sound = this.rSound[this.n次に鳴るサウンド番号]; + if (sound == null) + return 0; + + return sound.n位置; + } + set + { + CSound sound = this.rSound[this.n次に鳴るサウンド番号]; + if (sound != null) + sound.n位置 = value; + } + } + public int nAutomationLevel_現在のサウンド + { + get + { + CSound sound = this.rSound[1 - this.n次に鳴るサウンド番号]; + if (sound == null) + return 0; + + return sound.AutomationLevel; + } + set + { + CSound sound = this.rSound[1 - this.n次に鳴るサウンド番号]; + if (sound != null) + { + sound.AutomationLevel = value; + } + } + } + public int n長さ_現在のサウンド + { + get + { + CSound sound = this.rSound[1 - this.n次に鳴るサウンド番号]; + if (sound == null) + { + return 0; + } + return sound.n総演奏時間ms; + } + } + public int n長さ_次に鳴るサウンド + { + get + { + CSound sound = this.rSound[this.n次に鳴るサウンド番号]; + if (sound == null) + { + return 0; + } + return sound.n総演奏時間ms; + } + } + + + /// + /// コンストラクタ + /// + /// + /// + /// + /// + public Cシステムサウンド(string strファイル名, bool bループ, bool b排他, bool bCompact対象, ESoundGroup soundGroup) + { + this.strファイル名 = strファイル名; + this.bループ = bループ; + this.b排他 = b排他; + this.bCompact対象 = bCompact対象; + _soundGroup = soundGroup; + this.b読み込み未試行 = true; + this.bPlayed = false; + } + + + // メソッド + + public void t読み込み() + { + this.b読み込み未試行 = false; + this.b読み込み成功 = false; + if (string.IsNullOrEmpty(this.strファイル名)) + throw new InvalidOperationException("ファイル名が無効です。"); + + if (!File.Exists(CSkin.Path(this.strファイル名))) + { + Trace.TraceWarning($"ファイルが存在しません。: {this.strファイル名}"); + return; + } + //// for( int i = 0; i < 2; i++ ) // #27790 2012.3.10 yyagi 2回読み出しを、1回読みだし+1回メモリコピーに変更 + //// { + // try + // { + // this.rSound[ 0 ] = CDTXMania.Sound管理.tサウンドを生成する( CSkin.Path( this.strファイル名 ) ); + // } + // catch + // { + // this.rSound[ 0 ] = null; + // throw; + // } + // if ( this.rSound[ 0 ] == null ) // #28243 2012.5.3 yyagi "this.rSound[ 0 ].bストリーム再生する"時もCloneするようにし、rSound[1]がnullにならないよう修正→rSound[1]の再生正常化 + // { + // this.rSound[ 1 ] = null; + // } + // else + // { + // this.rSound[ 1 ] = ( CSound ) this.rSound[ 0 ].Clone(); // #27790 2012.3.10 yyagi add: to accelerate loading chip sounds + // CDTXMania.Sound管理.tサウンドを登録する( this.rSound[ 1 ] ); // #28243 2012.5.3 yyagi add (登録漏れによりストリーム再生処理が発生していなかった) + // } + + //// } + + for (int i = 0; i < 2; i++) // 一旦Cloneを止めてASIO対応に専念 + { + try + { + this.rSound[i] = TJAPlayer3.Sound管理?.tサウンドを生成する(CSkin.Path(this.strファイル名), _soundGroup); + } + catch + { + this.rSound[i] = null; + throw; + } + } + this.b読み込み成功 = true; + } + public void t再生する() + { + if (this.b読み込み未試行) + { + try + { + t読み込み(); + } + catch (Exception e) + { + Trace.TraceError(e.ToString()); + Trace.TraceError("例外が発生しましたが処理を継続します。 (17668977-4686-4aa7-b3f0-e0b9a44975b8)"); + this.b読み込み未試行 = false; + } + } + if (this.b排他) + { + if (r最後に再生した排他システムサウンド != null) + r最後に再生した排他システムサウンド.t停止する(); + + r最後に再生した排他システムサウンド = this; + } + CSound sound = this.rSound[this.n次に鳴るサウンド番号]; + if (sound != null) + sound.t再生を開始する(this.bループ); + + this.bPlayed = true; + this.n次に鳴るサウンド番号 = 1 - this.n次に鳴るサウンド番号; + } + public void t停止する() + { + this.bPlayed = false; + if (this.rSound[0] != null) + this.rSound[0].t再生を停止する(); + + if (this.rSound[1] != null) + this.rSound[1].t再生を停止する(); + + if (r最後に再生した排他システムサウンド == this) + r最後に再生した排他システムサウンド = null; + } + + public void tRemoveMixer() + { + if (TJAPlayer3.Sound管理.GetCurrentSoundDeviceType() != "DirectShow") + { + for (int i = 0; i < 2; i++) + { + if (this.rSound[i] != null) + { + TJAPlayer3.Sound管理.RemoveMixer(this.rSound[i]); + } + } + } + } + + #region [ IDisposable 実装 ] + //----------------- + public void Dispose() + { + if (!this.bDisposed済み) + { + for (int i = 0; i < 2; i++) + { + if (this.rSound[i] != null) + { + TJAPlayer3.Sound管理.tサウンドを破棄する(this.rSound[i]); + this.rSound[i] = null; + } + } + this.b読み込み成功 = false; + this.bDisposed済み = true; + } + } + //----------------- + #endregion + + #region [ private ] + //----------------- + private bool bDisposed済み; + private int n次に鳴るサウンド番号; + private CSound[] rSound = new CSound[2]; + //----------------- + #endregion + } + + + // プロパティ + + public Cシステムサウンド bgmオプション画面 = null; + public Cシステムサウンド bgmコンフィグ画面 = null; + public Cシステムサウンド bgm起動画面 = null; + public Cシステムサウンド soundSTAGEFAILED音 = null; + public Cシステムサウンド soundカーソル移動音 = null; + public Cシステムサウンド soundゲーム開始音 = null; + public Cシステムサウンド soundゲーム終了音 = null; + public Cシステムサウンド soundステージクリア音 = null; + public Cシステムサウンド soundフルコンボ音 = null; + public Cシステムサウンド sound歓声音 = null; + public Cシステムサウンド sound曲読込開始音 = null; + public Cシステムサウンド sound決定音 = null; + public Cシステムサウンド sound取消音 = null; + public Cシステムサウンド sound変更音 = null; + public Cシステムサウンド soundSongSelectChara = null; + public Cシステムサウンド soundSkip = null; + public Cシステムサウンド soundEntry = null; + public Cシステムサウンド soundError = null; + public Cシステムサウンド soundsanka = null; + //add + public Cシステムサウンド sound曲決定音 = null; + public Cシステムサウンド bgmリザルトイン音 = null; + public Cシステムサウンド bgmリザルト音 = null; + + public Cシステムサウンド bgmタイトル = null; + public Cシステムサウンド bgmタイトルイン = null; + public Cシステムサウンド bgm選曲画面 = null; + public Cシステムサウンド bgm選曲画面イン = null; + public Cシステムサウンド bgmリザルト = null; + public Cシステムサウンド bgmリザルトイン = null; + + public Cシステムサウンド SoundBanapas = null; + + public Cシステムサウンド sound特訓再生音 = null; + public Cシステムサウンド sound特訓停止音 = null; + public Cシステムサウンド sound特訓ジャンプポイント = null; + public Cシステムサウンド sound特訓スキップ音 = null; + public Cシステムサウンド sound特訓スクロール音 = null; + public Cシステムサウンド soundPon = null; + public Cシステムサウンド soundGauge = null; + public Cシステムサウンド soundScoreDon = null; + public Cシステムサウンド soundChallengeVoice = null; + public Cシステムサウンド soundDanSelectStart = null; + public Cシステムサウンド soundDanSongSelectCheck = null; + public Cシステムサウンド soundDanSelectBGM = null; + public Cシステムサウンド soundDanSongSelect = null; + + public Cシステムサウンド soundCrownIn = null; + public Cシステムサウンド soundRankIn = null; + public Cシステムサウンド soundDonClear = null; + public Cシステムサウンド soundDonFailed = null; + + public Cシステムサウンド soundSelectAnnounce = null; + + //public Cシステムサウンド soundRed = null; + //public Cシステムサウンド soundBlue = null; + public Cシステムサウンド soundBalloon = null; + + + public readonly int nシステムサウンド数 = (int)Eシステムサウンド.Count; + public Cシステムサウンド this[Eシステムサウンド sound] + { + get + { + switch (sound) + { + case Eシステムサウンド.SOUNDカーソル移動音: + return this.soundカーソル移動音; + + case Eシステムサウンド.SOUND決定音: + return this.sound決定音; + + case Eシステムサウンド.SOUND変更音: + return this.sound変更音; + + case Eシステムサウンド.SOUND取消音: + return this.sound取消音; + + case Eシステムサウンド.SOUND歓声音: + return this.sound歓声音; + + case Eシステムサウンド.SOUNDステージ失敗音: + return this.soundSTAGEFAILED音; + + case Eシステムサウンド.SOUNDゲーム開始音: + return this.soundゲーム開始音; + + case Eシステムサウンド.SOUNDゲーム終了音: + return this.soundゲーム終了音; + + case Eシステムサウンド.SOUNDステージクリア音: + return this.soundステージクリア音; + + case Eシステムサウンド.SOUNDフルコンボ音: + return this.soundフルコンボ音; + + case Eシステムサウンド.SOUND曲読込開始音: + return this.sound曲読込開始音; + + case Eシステムサウンド.SOUNDタイトル音: + return this.bgmタイトル; + + case Eシステムサウンド.BGM起動画面: + return this.bgm起動画面; + + case Eシステムサウンド.BGMオプション画面: + return this.bgmオプション画面; + + case Eシステムサウンド.BGMコンフィグ画面: + return this.bgmコンフィグ画面; + + case Eシステムサウンド.BGM選曲画面: + return this.bgm選曲画面; + + //case Eシステムサウンド.SOUND赤: + // return this.soundRed; + + //case Eシステムサウンド.SOUND青: + // return this.soundBlue; + + case Eシステムサウンド.SOUND風船: + return this.soundBalloon; + + case Eシステムサウンド.SOUND曲決定音: + return this.sound曲決定音; + + case Eシステムサウンド.SOUND成績発表: + return this.bgmリザルトイン音; + + case Eシステムサウンド.SOUND特訓再生: + return this.sound特訓再生音; + + case Eシステムサウンド.SOUND特訓停止: + return this.sound特訓停止音; + + case Eシステムサウンド.sound特訓ジャンプポイント: + return this.sound特訓ジャンプポイント; + + case Eシステムサウンド.sound特訓スキップ音: + return this.sound特訓スキップ音; + + case Eシステムサウンド.SOUND特訓スクロール: + return this.sound特訓スクロール音; + + } + throw new IndexOutOfRangeException(); + } + } + public Cシステムサウンド this[int index] + { + get + { + switch (index) + { + case 0: + return this.soundカーソル移動音; + + case 1: + return this.sound決定音; + + case 2: + return this.sound変更音; + + case 3: + return this.sound取消音; + + case 4: + return this.sound歓声音; + + case 5: + return this.soundSTAGEFAILED音; + + case 6: + return this.soundゲーム開始音; + + case 7: + return this.soundゲーム終了音; + + case 8: + return this.soundステージクリア音; + + case 9: + return this.soundフルコンボ音; + + case 10: + return this.sound曲読込開始音; + + case 11: + return this.bgmタイトル; + + case 12: + return this.bgm起動画面; + + case 13: + return this.bgmオプション画面; + + case 14: + return this.bgmコンフィグ画面; + + case 15: + return this.bgm選曲画面; + + case 16: + return this.soundBalloon; + + case 17: + return this.sound曲決定音; + + case 18: + return this.bgmリザルトイン音; + + case 19: + return this.sound特訓再生音; + + case 20: + return this.sound特訓停止音; + + case 21: + return this.sound特訓スクロール音; + + case 22: + return this.sound特訓ジャンプポイント; + + case 23: + return this.sound特訓スキップ音; + } + throw new IndexOutOfRangeException(); + } + } + + + // スキンの切り替えについて___ + // + // _スキンの種類は大きく分けて2種類。Systemスキンとboxdefスキン。 + //  前者はSystem/フォルダにユーザーが自らインストールしておくスキン。 + //  後者はbox.defで指定する、曲データ制作者が提示するスキン。 + // + // _Config画面で、2種のスキンを区別無く常時使用するよう設定することができる。 + // _box.defの#SKINPATH 設定により、boxdefスキンを一時的に使用するよう設定する。 + //  (box.defの効果の及ばない他のmuxic boxでは、当該boxdefスキンの有効性が無くなる) + // + // これを実現するために___ + // _Systemスキンの設定情報と、boxdefスキンの設定情報は、分離して持つ。 + //  (strSystem~~ と、strBoxDef~~~) + // _Config画面からは前者のみ書き換えできるようにし、 + //  選曲画面からは後者のみ書き換えできるようにする。(SetCurrent...()) + // _読み出しは両者から行えるようにすると共に + //  選曲画面用に二種の情報を区別しない読み出し方法も提供する(GetCurrent...) + + private object lockBoxDefSkin; + public static bool bUseBoxDefSkin = true; // box.defからのスキン変更を許容するか否か + + public string strSystemSkinRoot = null; + public string[] strSystemSkinSubfolders = null; // ListだとignoreCaseな検索が面倒なので、配列に逃げる :-) + private string[] _strBoxDefSkinSubfolders = null; + public string[] strBoxDefSkinSubfolders + { + get + { + lock (lockBoxDefSkin) + { + return _strBoxDefSkinSubfolders; + } + } + set + { + lock (lockBoxDefSkin) + { + _strBoxDefSkinSubfolders = value; + } + } + } // 別スレッドからも書き込みアクセスされるため、スレッドセーフなアクセス法を提供 + + private static string strSystemSkinSubfolderFullName; // Config画面で設定されたスキン + private static string strBoxDefSkinSubfolderFullName = ""; // box.defで指定されているスキン + + /// + /// スキンパス名をフルパスで取得する + /// + /// ユーザー設定用ならtrue, box.defからの設定ならfalse + /// + public string GetCurrentSkinSubfolderFullName(bool bFromUserConfig) + { + if (!bUseBoxDefSkin || bFromUserConfig == true || strBoxDefSkinSubfolderFullName == "") + { + return strSystemSkinSubfolderFullName; + } + else + { + return strBoxDefSkinSubfolderFullName; + } + } + /// + /// スキンパス名をフルパスで設定する + /// + /// スキンパス名 + /// ユーザー設定用ならtrue, box.defからの設定ならfalse + public void SetCurrentSkinSubfolderFullName(string value, bool bFromUserConfig) + { + if (bFromUserConfig) + { + strSystemSkinSubfolderFullName = value; + } + else + { + strBoxDefSkinSubfolderFullName = value; + } + } + + + // コンストラクタ + public CSkin(string _strSkinSubfolderFullName, bool _bUseBoxDefSkin) + { + lockBoxDefSkin = new object(); + strSystemSkinSubfolderFullName = _strSkinSubfolderFullName; + bUseBoxDefSkin = _bUseBoxDefSkin; + InitializeSkinPathRoot(); + ReloadSkinPaths(); + PrepareReloadSkin(); + } + public CSkin() + { + lockBoxDefSkin = new object(); + InitializeSkinPathRoot(); + bUseBoxDefSkin = true; + ReloadSkinPaths(); + PrepareReloadSkin(); + } + private string InitializeSkinPathRoot() + { + strSystemSkinRoot = System.IO.Path.Combine(TJAPlayer3.strEXEのあるフォルダ, "System" + System.IO.Path.DirectorySeparatorChar); + return strSystemSkinRoot; + } + + /// + /// Skin(Sounds)を再読込する準備をする(再生停止,Dispose,ファイル名再設定)。 + /// あらかじめstrSkinSubfolderを適切に設定しておくこと。 + /// その後、ReloadSkinPaths()を実行し、strSkinSubfolderの正当性を確認した上で、本メソッドを呼び出すこと。 + /// 本メソッド呼び出し後に、ReloadSkin()を実行することで、システムサウンドを読み込み直す。 + /// ReloadSkin()の内容は本メソッド内に含めないこと。起動時はReloadSkin()相当の処理をCEnumSongsで行っているため。 + /// + public void PrepareReloadSkin() + { + Trace.TraceInformation("SkinPath設定: {0}", + (strBoxDefSkinSubfolderFullName == "") ? + strSystemSkinSubfolderFullName : + strBoxDefSkinSubfolderFullName + ); + + for (int i = 0; i < nシステムサウンド数; i++) + { + if (this[i] != null && this[i].b読み込み成功) + { + this[i].t停止する(); + this[i].Dispose(); + } + } + + this.soundカーソル移動音 = new Cシステムサウンド(@"Sounds\Move.ogg", false, false, false, ESoundGroup.SoundEffect); + this.sound決定音 = new Cシステムサウンド(@"Sounds\Decide.ogg", false, false, false, ESoundGroup.SoundEffect); + this.sound変更音 = new Cシステムサウンド(@"Sounds\Change.ogg", false, false, false, ESoundGroup.SoundEffect); + this.sound取消音 = new Cシステムサウンド(@"Sounds\Cancel.ogg", false, false, true, ESoundGroup.SoundEffect); + this.sound歓声音 = new Cシステムサウンド(@"Sounds\Audience.ogg", false, false, true, ESoundGroup.SoundEffect); + this.soundSTAGEFAILED音 = new Cシステムサウンド(@"Sounds\Stage failed.ogg", false, true, true, ESoundGroup.Voice); + this.soundゲーム開始音 = new Cシステムサウンド(@"Sounds\Game start.ogg", false, false, false, ESoundGroup.Voice); + this.soundゲーム終了音 = new Cシステムサウンド(@"Sounds\Game end.ogg", false, true, false, ESoundGroup.Voice); + this.soundステージクリア音 = new Cシステムサウンド(@"Sounds\Stage clear.ogg", false, true, true, ESoundGroup.Voice); + this.soundフルコンボ音 = new Cシステムサウンド(@"Sounds\Full combo.ogg", false, false, true, ESoundGroup.Voice); + this.sound曲読込開始音 = new Cシステムサウンド(@"Sounds\Now loading.ogg", false, true, true, ESoundGroup.Unknown); + this.bgm起動画面 = new Cシステムサウンド(@"Sounds\Setup BGM.ogg", true, true, false, ESoundGroup.SongPlayback); + this.bgmオプション画面 = new Cシステムサウンド(@"Sounds\Option BGM.ogg", true, true, false, ESoundGroup.SongPlayback); + this.bgmコンフィグ画面 = new Cシステムサウンド(@"Sounds\Config BGM.ogg", true, true, false, ESoundGroup.SongPlayback); + this.bgm選曲画面 = new Cシステムサウンド(@"Sounds\Select BGM.ogg", true, true, false, ESoundGroup.SongPlayback); + this.soundSongSelectChara = new Cシステムサウンド(@"Sounds\SongSelect Chara.ogg", false, false, false, ESoundGroup.SongPlayback); + this.soundSkip = new Cシステムサウンド(@"Sounds\Skip.ogg", false, false, false, ESoundGroup.SoundEffect); + this.SoundBanapas = new Cシステムサウンド(@"Sounds\Banapas.ogg", false, false, false, ESoundGroup.SoundEffect); + this.soundEntry = new Cシステムサウンド(@"Sounds\Entry.ogg", true, false, false, ESoundGroup.Voice); + this.soundError = new Cシステムサウンド(@"Sounds\Error.ogg", false, false, false, ESoundGroup.SoundEffect); + this.soundsanka = new Cシステムサウンド(@"Sounds\sanka.ogg", false, false, false, ESoundGroup.Voice); + + //this.soundRed = new Cシステムサウンド( @"Sounds\dong.ogg", false, false, true, ESoundType.SoundEffect ); + //this.soundBlue = new Cシステムサウンド( @"Sounds\ka.ogg", false, false, true, ESoundType.SoundEffect ); + this.soundBalloon = new Cシステムサウンド(@"Sounds\balloon.ogg", false, false, true, ESoundGroup.SoundEffect); + this.sound曲決定音 = new Cシステムサウンド(@"Sounds\SongDecide.ogg", false, false, true, ESoundGroup.Voice); + + this.bgmタイトルイン = new Cシステムサウンド(@"Sounds\BGM\Title_Start.ogg", false, false, true, ESoundGroup.SongPlayback); + this.bgmタイトル = new Cシステムサウンド(@"Sounds\BGM\Title.ogg", true, false, true, ESoundGroup.SongPlayback); + this.bgm選曲画面イン = new Cシステムサウンド(@"Sounds\BGM\SongSelect_Start.ogg", false, false, true, ESoundGroup.SongPlayback); + this.bgm選曲画面 = new Cシステムサウンド(@"Sounds\BGM\SongSelect.ogg", true, false, true, ESoundGroup.SongPlayback); + this.bgmリザルトイン音 = new Cシステムサウンド(@"Sounds\BGM\Result_In.ogg", false, false, true, ESoundGroup.SongPlayback); + this.bgmリザルト音 = new Cシステムサウンド(@"Sounds\BGM\Result.ogg", true, false, true, ESoundGroup.SongPlayback); + + + this.soundCrownIn = new Cシステムサウンド(@"Sounds\ResultScreen\CrownIn.ogg", false, false, false, ESoundGroup.SoundEffect); + this.soundRankIn = new Cシステムサウンド(@"Sounds\ResultScreen\RankIn.ogg", false, false, false, ESoundGroup.SoundEffect); + this.soundDonClear = new Cシステムサウンド(@"Sounds\ResultScreen\Donchan_Clear.ogg", false, false,true, ESoundGroup.Voice); + this.soundDonFailed = new Cシステムサウンド(@"Sounds\ResultScreen\Donchan_Miss.ogg", false, false, true, ESoundGroup.Voice); + + this.soundSelectAnnounce = new Cシステムサウンド(@"Sounds\DiffSelect.ogg", false, false, true, ESoundGroup.Voice); + this.sound特訓再生音 = new Cシステムサウンド(@"Sounds\Resume.ogg", false, false,false, ESoundGroup.SoundEffect); + this.sound特訓停止音 = new Cシステムサウンド(@"Sounds\Pause.ogg", false, false, false, ESoundGroup.SoundEffect); + this.sound特訓スクロール音 = new Cシステムサウンド(@"Sounds\Scroll.ogg", false, false, false, ESoundGroup.SoundEffect); + this.sound特訓ジャンプポイント = new Cシステムサウンド(@"Sounds\Jump Point.ogg", false, false, false, ESoundGroup.SoundEffect); + this.sound特訓スキップ音 = new Cシステムサウンド(@"Sounds\Traning Skip.ogg", false, false, false, ESoundGroup.SoundEffect); + this.soundPon = new Cシステムサウンド(@"Sounds\Pon.ogg", false, false, false, ESoundGroup.SoundEffect); + this.soundGauge = new Cシステムサウンド(@"Sounds\Gauge.ogg", false, false, false, ESoundGroup.SoundEffect); + this.soundScoreDon = new Cシステムサウンド(@"Sounds\ScoreDon.ogg", false, false, false, ESoundGroup.SoundEffect); + this.soundChallengeVoice = new Cシステムサウンド(@"Sounds\Dan\ChallengeVoice.wav", false, false, false, ESoundGroup.SoundEffect); + this.soundDanSelectStart = new Cシステムサウンド(@"Sounds\Dan\DanSelectStart.wav", false, false, false, ESoundGroup.SoundEffect); + this.soundDanSongSelectCheck = new Cシステムサウンド(@"Sounds\Dan\DanSongSelectCheck.wav", false, false, false, ESoundGroup.SoundEffect); + this.soundDanSelectBGM = new Cシステムサウンド(@"Sounds\Dan\DanSelectBGM.wav", true, false, false, ESoundGroup.SongPlayback); + this.soundDanSongSelect = new Cシステムサウンド(@"Sounds\Dan\DanSongSelect.wav", false, false, false, ESoundGroup.SoundEffect); + ReloadSkin(); + tReadSkinConfig(); + } + + public void ReloadSkin() + { + for (int i = 0; i < nシステムサウンド数; i++) + { + if (!this[i].b排他) // BGM系以外のみ読み込む。(BGM系は必要になったときに読み込む) + { + Cシステムサウンド cシステムサウンド = this[i]; + if (!TJAPlayer3.bコンパクトモード || cシステムサウンド.bCompact対象) + { + try + { + cシステムサウンド.t読み込み(); + Trace.TraceInformation("システムサウンドを読み込みました。({0})", cシステムサウンド.strファイル名); + } + catch (FileNotFoundException e) + { + Trace.TraceWarning(e.ToString()); + Trace.TraceWarning("システムサウンドが存在しません。({0})", cシステムサウンド.strファイル名); + } + catch (Exception e) + { + Trace.TraceWarning(e.ToString()); + Trace.TraceWarning("システムサウンドの読み込みに失敗しました。({0})", cシステムサウンド.strファイル名); + } + } + } + } + } + + + /// + /// Skinの一覧を再取得する。 + /// System/*****/Graphics (やSounds/) というフォルダ構成を想定している。 + /// もし再取得の結果、現在使用中のSkinのパス(strSystemSkinSubfloderFullName)が消えていた場合は、 + /// 以下の優先順位で存在確認の上strSystemSkinSubfolderFullNameを再設定する。 + /// 1. System/Default/ + /// 2. System/*****/ で最初にenumerateされたもの + /// 3. System/ (従来互換) + /// + public void ReloadSkinPaths() + { + #region [ まず System/*** をenumerateする ] + string[] tempSkinSubfolders = System.IO.Directory.GetDirectories(strSystemSkinRoot, "*"); + strSystemSkinSubfolders = new string[tempSkinSubfolders.Length]; + int size = 0; + for (int i = 0; i < tempSkinSubfolders.Length; i++) + { + #region [ 検出したフォルダがスキンフォルダかどうか確認する] + if (!bIsValid(tempSkinSubfolders[i])) + continue; + #endregion + #region [ スキンフォルダと確認できたものを、strSkinSubfoldersに入れる ] + // フォルダ名末尾に必ず\をつけておくこと。さもないとConfig読み出し側(必ず\をつける)とマッチできない + if (tempSkinSubfolders[i][tempSkinSubfolders[i].Length - 1] != System.IO.Path.DirectorySeparatorChar) + { + tempSkinSubfolders[i] += System.IO.Path.DirectorySeparatorChar; + } + strSystemSkinSubfolders[size] = tempSkinSubfolders[i]; + Trace.TraceInformation("SkinPath検出: {0}", strSystemSkinSubfolders[size]); + size++; + #endregion + } + Trace.TraceInformation("SkinPath入力: {0}", strSystemSkinSubfolderFullName); + Array.Resize(ref strSystemSkinSubfolders, size); + Array.Sort(strSystemSkinSubfolders); // BinarySearch実行前にSortが必要 + #endregion + + #region [ 現在のSkinパスがbox.defスキンをCONFIG指定していた場合のために、最初にこれが有効かチェックする。有効ならこれを使う。 ] + if (bIsValid(strSystemSkinSubfolderFullName) && + Array.BinarySearch(strSystemSkinSubfolders, strSystemSkinSubfolderFullName, + StringComparer.InvariantCultureIgnoreCase) < 0) + { + strBoxDefSkinSubfolders = new string[1] { strSystemSkinSubfolderFullName }; + return; + } + #endregion + + #region [ 次に、現在のSkinパスが存在するか調べる。あれば終了。] + if (Array.BinarySearch(strSystemSkinSubfolders, strSystemSkinSubfolderFullName, + StringComparer.InvariantCultureIgnoreCase) >= 0) + return; + #endregion + #region [ カレントのSkinパスが消滅しているので、以下で再設定する。] + /// 以下の優先順位で現在使用中のSkinパスを再設定する。 + /// 1. System/Default/ + /// 2. System/*****/ で最初にenumerateされたもの + /// 3. System/ (従来互換) + #region [ System/Default/ があるなら、そこにカレントSkinパスを設定する] + string tempSkinPath_default = System.IO.Path.Combine(strSystemSkinRoot, "Default" + System.IO.Path.DirectorySeparatorChar); + if (Array.BinarySearch(strSystemSkinSubfolders, tempSkinPath_default, + StringComparer.InvariantCultureIgnoreCase) >= 0) + { + strSystemSkinSubfolderFullName = tempSkinPath_default; + return; + } + #endregion + #region [ System/SkinFiles.*****/ で最初にenumerateされたものを、カレントSkinパスに再設定する ] + if (strSystemSkinSubfolders.Length > 0) + { + strSystemSkinSubfolderFullName = strSystemSkinSubfolders[0]; + return; + } + #endregion + #region [ System/ に、カレントSkinパスを再設定する。] + strSystemSkinSubfolderFullName = strSystemSkinRoot; + strSystemSkinSubfolders = new string[1] { strSystemSkinSubfolderFullName }; + #endregion + #endregion + } + + // メソッド + + public static string Path(string strファイルの相対パス) + { + if (strBoxDefSkinSubfolderFullName == "" || !bUseBoxDefSkin) + { + return System.IO.Path.Combine(strSystemSkinSubfolderFullName, strファイルの相対パス); + } + else + { + return System.IO.Path.Combine(strBoxDefSkinSubfolderFullName, strファイルの相対パス); + } + } + + /// + /// フルパス名を与えると、スキン名として、ディレクトリ名末尾の要素を返す + /// 例: C:\foo\bar\ なら、barを返す + /// + /// スキンが格納されたパス名(フルパス) + /// スキン名 + public static string GetSkinName(string skinPathFullName) + { + if (skinPathFullName != null) + { + if (skinPathFullName == "") // 「box.defで未定義」用 + skinPathFullName = strSystemSkinSubfolderFullName; + string[] tmp = skinPathFullName.Split(System.IO.Path.DirectorySeparatorChar); + return tmp[tmp.Length - 2]; // ディレクトリ名の最後から2番目の要素がスキン名(最後の要素はnull。元stringの末尾が\なので。) + } + return null; + } + public static string[] GetSkinName(string[] skinPathFullNames) + { + string[] ret = new string[skinPathFullNames.Length]; + for (int i = 0; i < skinPathFullNames.Length; i++) + { + ret[i] = GetSkinName(skinPathFullNames[i]); + } + return ret; + } + + + public string GetSkinSubfolderFullNameFromSkinName(string skinName) + { + foreach (string s in strSystemSkinSubfolders) + { + if (GetSkinName(s) == skinName) + return s; + } + foreach (string b in strBoxDefSkinSubfolders) + { + if (GetSkinName(b) == skinName) + return b; + } + return null; + } + + /// + /// スキンパス名が妥当かどうか + /// (タイトル画像にアクセスできるかどうかで判定する) + /// + /// 妥当性を確認するスキンパス(フルパス) + /// 妥当ならtrue + public bool bIsValid(string skinPathFullName) + { + string filePathTitle; + filePathTitle = System.IO.Path.Combine(skinPathFullName, @"Graphics\1_Title\Background.png"); + return (File.Exists(filePathTitle)); + } + + + public void tRemoveMixerAll() + { + for (int i = 0; i < nシステムサウンド数; i++) + { + if (this[i] != null && this[i].b読み込み成功) + { + this[i].t停止する(); + this[i].tRemoveMixer(); + } + } + + } + + /// + /// 変数の初期化 + /// + public void tSkinConfigInit() + { + this.eDiffDispMode = E難易度表示タイプ.mtaikoに画像で表示; + this.b現在のステージ数を表示しない = false; + } + + public void tReadSkinConfig() + { + var str = ""; + LoadSkinConfigFromFile(Path(@"SkinConfig.ini"), ref str); + this.t文字列から読み込み(str); + + void LoadSkinConfigFromFile(string path, ref string work) + { + if (!File.Exists(Path(path))) return; + using (var streamReader = new StreamReader(Path(path), Encoding.GetEncoding("Shift_JIS"))) + { + while (streamReader.Peek() > -1) // 一行ずつ読み込む。 + { + var nowLine = streamReader.ReadLine(); + if (nowLine.StartsWith("#include")) + { + // #include hogehoge.iniにぶち当たった + var includePath = nowLine.Substring("#include ".Length).Trim(); + LoadSkinConfigFromFile(includePath, ref work); // 再帰的に読み込む + } + else + { + work += nowLine + Environment.NewLine; + } + } + } + } + } + + private void t文字列から読み込み(string strAllSettings) // 2011.4.13 yyagi; refactored to make initial KeyConfig easier. + { + string[] delimiter = { "\n" }; + string[] strSingleLine = strAllSettings.Split(delimiter, StringSplitOptions.RemoveEmptyEntries); + foreach (string s in strSingleLine) + { + string str = s.Replace('\t', ' ').TrimStart(new char[] { '\t', ' ' }); + if ((str.Length != 0) && (str[0] != ';')) + { + try + { + string strCommand; + string strParam; + string[] strArray = str.Split(new char[] { '=' }); + if (strArray.Length == 2) + { + strCommand = strArray[0].Trim(); + strParam = strArray[1].Trim(); + + #region スキン設定 + + void ParseInt32(Action setValue) + { + if (int.TryParse(strParam, out var unparsedValue)) + { + setValue(unparsedValue); + } + else + { + Trace.TraceWarning($"SkinConfigの値 {strCommand} は整数値である必要があります。現在の値: {strParam}"); + } + } + + if (strCommand == "Name") + { + this.Skin_Name = strParam; + } + else if (strCommand == "Version") + { + this.Skin_Version = strParam; + } + else if (strCommand == "Creator") + { + this.Skin_Creator = strParam; + } + #endregion + + #region 背景(スクロール) + else if (strCommand == "Background_Scroll_Y") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + this.Background_Scroll_Y[i] = int.Parse(strSplit[i]); + } + } + #endregion + + #region[ 演奏 ] + //----------------------------- + else if (strCommand == "ScrollFieldP1Y") + { + this.nScrollFieldY[0] = C変換.n値を文字列から取得して返す(strParam, 192); + } + else if (strCommand == "ScrollFieldP2Y") + { + this.nScrollFieldY[1] = C変換.n値を文字列から取得して返す(strParam, 192); + } + else if (strCommand == "SENotesP1Y") + { + this.nSENotesY[0] = C変換.n値を文字列から取得して返す(strParam, this.nSENotesY[0]); + } + else if (strCommand == "SENotesP2Y") + { + this.nSENotesY[1] = C変換.n値を文字列から取得して返す(strParam, this.nSENotesY[1]); + } + else if (strCommand == "JudgePointP1Y") + { + this.nJudgePointY[0] = C変換.n値を文字列から取得して返す(strParam, this.nJudgePointY[0]); + } + else if (strCommand == "JudgePointP2Y") + { + this.nJudgePointY[1] = C変換.n値を文字列から取得して返す(strParam, this.nJudgePointY[1]); + } + + else if (strCommand == "DiffDispMode") + { + this.eDiffDispMode = (E難易度表示タイプ)C変換.n値を文字列から取得して範囲内に丸めて返す(strParam, 0, 2, (int)this.eDiffDispMode); + } + else if (strCommand == "NowStageDisp") + { + this.b現在のステージ数を表示しない = C変換.bONorOFF(strParam[0]); + } + + //----------------------------- + #endregion + #region[ 成績発表 ] + //----------------------------- + else if (strCommand == "ResultPanelP1X") + { + this.nResultPanelP1X = C変換.n値を文字列から取得して返す(strParam, 515); + } + else if (strCommand == "ResultPanelP1Y") + { + this.nResultPanelP1Y = C変換.n値を文字列から取得して返す(strParam, 75); + } + else if (strCommand == "ResultPanelP2X") + { + this.nResultPanelP2X = C変換.n値を文字列から取得して返す(strParam, 515); + } + else if (strCommand == "ResultPanelP2Y") + { + this.nResultPanelP2Y = C変換.n値を文字列から取得して返す(strParam, 75); + } + else if (strCommand == "ResultScoreP1X") + { + this.nResultScoreP1X = C変換.n値を文字列から取得して返す(strParam, 582); + } + else if (strCommand == "ResultScoreP1Y") + { + this.nResultScoreP1Y = C変換.n値を文字列から取得して返す(strParam, 252); + } + //----------------------------- + #endregion + #region[ その他 ] + #endregion + + #region 新・SkinConfig + #region Config + else if (strCommand == nameof(Config_ItemText_Correction_X)) + { + Config_ItemText_Correction_X = int.Parse(strParam); + } + else if (strCommand == nameof(Config_ItemText_Correction_Y)) + { + Config_ItemText_Correction_Y = int.Parse(strParam); + } + #endregion + #region SongSelect + else if (strCommand == "SongSelect_Overall_Y") + { + if (int.Parse(strParam) != 0) + { + SongSelect_Overall_Y = int.Parse(strParam); + } + } + else if (strCommand == "SongSelect_BoxExplanation_X") + { + SongSelect_BoxExplanation_X = int.Parse(strParam); + } + else if (strCommand == "SongSelect_BoxExplanation_Y") + { + SongSelect_BoxExplanation_Y = int.Parse(strParam); + } + else if (strCommand == "SongSelect_Title_X") + { + SongSelect_Title_X = int.Parse(strParam); + } + else if (strCommand == "SongSelect_Title_Y") + { + SongSelect_Title_Y = int.Parse(strParam); + } + else if (strCommand == "SongSelect_BoxExplanation_Interval") + { + SongSelect_BoxExplanation_Interval = int.Parse(strParam); + } + else if (strCommand == "SongSelect_GenreName") + { + SongSelect_GenreName = this.strStringを配列に直す(strParam); + } + else if (strCommand == "SongSelect_NamePlate_X") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + SongSelect_NamePlate_X[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "SongSelect_NamePlate_Y") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + SongSelect_NamePlate_Y[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "SongSelect_Auto_X") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + SongSelect_Auto_X[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "SongSelect_Auto_Y") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + SongSelect_Auto_Y[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "SongSelect_ForeColor_JPOP") + { + SongSelect_ForeColor_JPOP = ColorTranslator.FromHtml(strParam); + } + else if (strCommand == "SongSelect_ForeColor_Anime") + { + SongSelect_ForeColor_Anime = ColorTranslator.FromHtml(strParam); + } + else if (strCommand == "SongSelect_ForeColor_VOCALOID") + { + SongSelect_ForeColor_VOCALOID = ColorTranslator.FromHtml(strParam); + } + else if (strCommand == "SongSelect_ForeColor_Children") + { + SongSelect_ForeColor_Children = ColorTranslator.FromHtml(strParam); + } + else if (strCommand == "SongSelect_ForeColor_Variety") + { + SongSelect_ForeColor_Variety = ColorTranslator.FromHtml(strParam); + } + else if (strCommand == "SongSelect_ForeColor_Classic") + { + SongSelect_ForeColor_Classic = ColorTranslator.FromHtml(strParam); + } + else if (strCommand == "SongSelect_ForeColor_GameMusic") + { + SongSelect_ForeColor_GameMusic = ColorTranslator.FromHtml(strParam); + } + else if (strCommand == nameof(SongSelect_ForeColor_Namco)) + { + SongSelect_ForeColor_GameMusic = ColorTranslator.FromHtml(strParam); + } + else if (strCommand == "SongSelect_BackColor_JPOP") + { + SongSelect_BackColor_JPOP = ColorTranslator.FromHtml(strParam); + } + else if (strCommand == "SongSelect_BackColor_Anime") + { + SongSelect_BackColor_Anime = ColorTranslator.FromHtml(strParam); + } + else if (strCommand == "SongSelect_BackColor_VOCALOID") + { + SongSelect_BackColor_VOCALOID = ColorTranslator.FromHtml(strParam); + } + else if (strCommand == "SongSelect_BackColor_Children") + { + SongSelect_BackColor_Children = ColorTranslator.FromHtml(strParam); + } + else if (strCommand == "SongSelect_BackColor_Variety") + { + SongSelect_BackColor_Variety = ColorTranslator.FromHtml(strParam); + } + else if (strCommand == "SongSelect_BackColor_Classic") + { + SongSelect_BackColor_Classic = ColorTranslator.FromHtml(strParam); + } + else if (strCommand == "SongSelect_BackColor_GameMusic") + { + SongSelect_BackColor_GameMusic = ColorTranslator.FromHtml(strParam); + } + else if (strCommand == nameof(SongSelect_BackColor_Namco)) + { + SongSelect_BackColor_Namco = ColorTranslator.FromHtml(strParam); + } + else if (strCommand == nameof(SongSelect_CorrectionX_Chara)) + { + SongSelect_CorrectionX_Chara = strParam.Split(',').ToArray(); + } + else if (strCommand == nameof(SongSelect_CorrectionY_Chara)) + { + SongSelect_CorrectionY_Chara = strParam.Split(',').ToArray(); + } + else if (strCommand == nameof(SongSelect_CorrectionX_Chara_Value)) + { + SongSelect_CorrectionX_Chara_Value = int.Parse(strParam); + } + else if (strCommand == nameof(SongSelect_CorrectionY_Chara_Value)) + { + SongSelect_CorrectionY_Chara_Value = int.Parse(strParam); + } + else if (strCommand == nameof(SongSelect_Rotate_Chara)) + { + SongSelect_Rotate_Chara = strParam.Split(',').ToArray(); + } + #endregion + #region SongLoading + else if (strCommand == nameof(SongLoading_Plate_X)) + { + SongLoading_Plate_X = int.Parse(strParam); + } + else if (strCommand == nameof(SongLoading_Plate_Y)) + { + SongLoading_Plate_Y = int.Parse(strParam); + } + else if (strCommand == nameof(SongLoading_Title_X)) + { + SongLoading_Title_X = int.Parse(strParam); + } + else if (strCommand == nameof(SongLoading_Title_Y)) + { + SongLoading_Title_Y = int.Parse(strParam); + } + else if (strCommand == nameof(SongLoading_SubTitle_X)) + { + SongLoading_SubTitle_X = int.Parse(strParam); + } + else if (strCommand == nameof(SongLoading_SubTitle_Y)) + { + SongLoading_SubTitle_Y = int.Parse(strParam); + } + else if (strCommand == nameof(SongLoading_Title_FontSize)) + { + if (int.Parse(strParam) > 0) + SongLoading_Title_FontSize = int.Parse(strParam); + } + else if (strCommand == nameof(SongLoading_SubTitle_FontSize)) + { + if (int.Parse(strParam) > 0) + SongLoading_SubTitle_FontSize = int.Parse(strParam); + } + else if (strCommand == nameof(SongLoading_Plate_ReferencePoint)) + { + SongLoading_Plate_ReferencePoint = (ReferencePoint)int.Parse(strParam); + } + else if (strCommand == nameof(SongLoading_Title_ReferencePoint)) + { + SongLoading_Title_ReferencePoint = (ReferencePoint)int.Parse(strParam); + } + else if (strCommand == nameof(SongLoading_SubTitle_ReferencePoint)) + { + SongLoading_SubTitle_ReferencePoint = (ReferencePoint)int.Parse(strParam); + } + + else if (strCommand == nameof(SongLoading_Title_ForeColor)) + { + SongLoading_Title_ForeColor = ColorTranslator.FromHtml(strParam); + } + else if (strCommand == nameof(SongLoading_Title_BackColor)) + { + SongLoading_Title_BackColor = ColorTranslator.FromHtml(strParam); + } + else if (strCommand == nameof(SongLoading_SubTitle_ForeColor)) + { + SongLoading_SubTitle_ForeColor = ColorTranslator.FromHtml(strParam); + } + else if (strCommand == nameof(SongLoading_SubTitle_BackColor)) + { + SongLoading_SubTitle_BackColor = ColorTranslator.FromHtml(strParam); + } + else if (strCommand == nameof(SongLoading_Plate_ScreenBlend)) + { + SongLoading_Plate_ScreenBlend = C変換.bONorOFF(strParam[0]); + } + #endregion + #region Game + else if (strCommand == "Game_Notes_Anime") + { + Game_Notes_Anime = C変換.bONorOFF(strParam[0]); + } + else if (strCommand == "Game_StageText") + { + Game_StageText = strParam; + } + else if (strCommand == nameof(Game_RollColorMode)) + { + Game_RollColorMode = (RollColorMode)int.Parse(strParam); + } + else if (strCommand == nameof(Game_JudgeFrame_AddBlend)) + { + Game_JudgeFrame_AddBlend = C変換.bONorOFF(strParam[0]); + } + + #region CourseSymbol + else if (strCommand == "Game_CourseSymbol_X") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_CourseSymbol_X[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_CourseSymbol_Y") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_CourseSymbol_Y[i] = int.Parse(strSplit[i]); + } + } + #endregion + #region PanelFont + else if (strCommand == nameof(Game_MusicName_X)) + { + Game_MusicName_X = int.Parse(strParam); + } + else if (strCommand == nameof(Game_MusicName_Y)) + { + Game_MusicName_Y = int.Parse(strParam); + } + else if (strCommand == nameof(Game_MusicName_FontSize)) + { + if (int.Parse(strParam) > 0) + Game_MusicName_FontSize = int.Parse(strParam); + } + else if (strCommand == nameof(Game_MusicName_ReferencePoint)) + { + Game_MusicName_ReferencePoint = (ReferencePoint)int.Parse(strParam); + } + else if (strCommand == nameof(Game_Genre_X)) + { + Game_Genre_X = int.Parse(strParam); + } + else if (strCommand == nameof(Game_Genre_Y)) + { + Game_Genre_Y = int.Parse(strParam); + } + else if (strCommand == nameof(Game_Lyric_X)) + { + Game_Lyric_X = int.Parse(strParam); + } + else if (strCommand == nameof(Game_Lyric_Y)) + { + Game_Lyric_Y = int.Parse(strParam); + } + else if (strCommand == nameof(Game_Lyric_FontName)) + { + Game_Lyric_FontName = strParam; + } + else if (strCommand == nameof(Game_Lyric_FontSize)) + { + if (int.Parse(strParam) > 0) + Game_Lyric_FontSize = int.Parse(strParam); + } + else if (strCommand == nameof(Game_Lyric_ReferencePoint)) + { + Game_Lyric_ReferencePoint = (ReferencePoint)int.Parse(strParam); + } + + else if (strCommand == nameof(Game_MusicName_ForeColor)) + { + Game_MusicName_ForeColor = ColorTranslator.FromHtml(strParam); + } + else if (strCommand == nameof(Game_StageText_ForeColor)) + { + Game_StageText_ForeColor = ColorTranslator.FromHtml(strParam); + } + else if (strCommand == nameof(Game_Lyric_ForeColor)) + { + Game_Lyric_ForeColor = ColorTranslator.FromHtml(strParam); + } + else if (strCommand == nameof(Game_MusicName_BackColor)) + { + Game_MusicName_BackColor = ColorTranslator.FromHtml(strParam); + } + else if (strCommand == nameof(Game_StageText_BackColor)) + { + Game_StageText_BackColor = ColorTranslator.FromHtml(strParam); + } + else if (strCommand == nameof(Game_Lyric_BackColor)) + { + Game_Lyric_BackColor = ColorTranslator.FromHtml(strParam); + } + #endregion + #region Chara + else if (strCommand == "Game_Chara_X") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Chara_X[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Chara_Y") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Chara_Y[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Chara_Balloon_X") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Chara_Balloon_X[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Chara_Balloon_Y") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Chara_Balloon_Y[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == nameof(Game_Chara_Balloon_Timer)) + { + if (int.Parse(strParam) > 0) + Game_Chara_Balloon_Timer = int.Parse(strParam); + } + else if (strCommand == nameof(Game_Chara_Balloon_Delay)) + { + if (int.Parse(strParam) > 0) + Game_Chara_Balloon_Delay = int.Parse(strParam); + } + else if (strCommand == nameof(Game_Chara_Balloon_FadeOut)) + { + if (int.Parse(strParam) > 0) + Game_Chara_Balloon_FadeOut = int.Parse(strParam); + } + // パターン数の設定はTextureLoader.csで反映されます。 + else if (strCommand == "Game_Chara_Motion_Normal") + { + Game_Chara_Motion_Normal = strParam; + } + else if (strCommand == "Game_Chara_Motion_Clear") + { + Game_Chara_Motion_Clear = strParam; + } + else if (strCommand == "Game_Chara_Motion_GoGo") + { + Game_Chara_Motion_GoGo = strParam; + } + else if (strCommand == "Game_Chara_Beat_Normal") + { + ParseInt32(value => Game_Chara_Beat_Normal = value); + } + else if (strCommand == "Game_Chara_Beat_Clear") + { + ParseInt32(value => Game_Chara_Beat_Clear = value); + } + else if (strCommand == "Game_Chara_Beat_GoGo") + { + ParseInt32(value => Game_Chara_Beat_GoGo = value); + } + #endregion + #region Dancer + else if (strCommand == "Game_Dancer_X") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 5; i++) + { + Game_Dancer_X[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Dancer_Y") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 5; i++) + { + Game_Dancer_Y[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Dancer_Motion") + { + Game_Dancer_Motion = strParam; + } + // Game_Dancer_PtnはTextrueLoader.csで反映されます。 + else if (strCommand == "Game_Dancer_Beat") + { + ParseInt32(value => Game_Dancer_Beat = value); + } + else if (strCommand == "Game_Dancer_Gauge") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 5; i++) + { + Game_Dancer_Gauge[i] = int.Parse(strSplit[i]); + } + } + #endregion + #region Mob + else if (strCommand == "Game_Mob_Beat") + { + ParseInt32(value => Game_Mob_Beat = value); + } + else if (strCommand == "Game_Mob_Ptn_Beat") + { + ParseInt32(value => Game_Mob_Ptn_Beat = value); + } + #endregion + #region Score + else if (strCommand == "Game_Score_X") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + this.Game_Score_X[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Score_Y") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + this.Game_Score_Y[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Score_Add_X") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + this.Game_Score_Add_X[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Score_Add_Y") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + this.Game_Score_Add_Y[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Score_AddBonus_X") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + this.Game_Score_AddBonus_X[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Score_AddBonus_Y") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + this.Game_Score_AddBonus_Y[i] = int.Parse(strSplit[i]); + } + } + + else if (strCommand == "Game_Score_Padding") + { + ParseInt32(value => Game_Score_Padding = value); + } + else if (strCommand == "Game_Score_Size") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Score_Size[i] = int.Parse(strSplit[i]); + } + } + #endregion + #region Taiko + else if (strCommand == "Game_Taiko_NamePlate_X") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Taiko_NamePlate_X[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Taiko_NamePlate_Y") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Taiko_NamePlate_Y[i] = int.Parse(strSplit[i]); + } + } + + else if (strCommand == "Game_Taiko_PlayerNumber_X") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Taiko_PlayerNumber_X[i] = int.Parse(strSplit[i]); + } + } + + else if (strCommand == "Game_Taiko_PlayerNumber_Y") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Taiko_PlayerNumber_Y[i] = int.Parse(strSplit[i]); + } + } + + else if (strCommand == "Game_Taiko_X") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Taiko_X[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Taiko_Y") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Taiko_Y[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Taiko_Combo_X") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Taiko_Combo_X[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Taiko_Combo_Y") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Taiko_Combo_Y[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Taiko_Combo_Ex_X") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Taiko_Combo_Ex_X[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Taiko_Combo_Ex_Y") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Taiko_Combo_Ex_Y[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Taiko_Combo_Ex4_X") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Taiko_Combo_Ex4_X[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Taiko_Combo_Ex4_Y") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Taiko_Combo_Ex4_Y[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Taiko_Combo_Padding") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 3; i++) + { + Game_Taiko_Combo_Padding[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Taiko_Combo_Size") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Taiko_Combo_Size[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Taiko_Combo_Size_Ex") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Taiko_Combo_Size_Ex[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Taiko_Combo_Scale") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 3; i++) + { + Game_Taiko_Combo_Scale[i] = float.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Taiko_Combo_Text_X") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Taiko_Combo_Text_X[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Taiko_Combo_Text_Y") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Taiko_Combo_Text_Y[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Taiko_Combo_Text_Size") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Taiko_Combo_Text_Size[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == nameof(Game_Taiko_Combo_Ex_IsJumping)) + { + Game_Taiko_Combo_Ex_IsJumping = C変換.bONorOFF(strParam[0]); + } + #endregion + #region Gauge + else if (strCommand == "Game_Gauge_Rainbow_Timer") + { + if (int.Parse(strParam) != 0) + { + Game_Gauge_Rainbow_Timer = int.Parse(strParam); + } + } + #endregion + #region Balloon + else if (strCommand == "Game_Balloon_Combo_X") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Balloon_Combo_X[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Balloon_Combo_Y") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Balloon_Combo_Y[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Balloon_Combo_Number_X") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Balloon_Combo_Number_X[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Balloon_Combo_Number_Y") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Balloon_Combo_Number_Y[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Balloon_Combo_Number_Ex_X") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Balloon_Combo_Number_Ex_X[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Balloon_Combo_Number_Ex_Y") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Balloon_Combo_Number_Ex_Y[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Balloon_Combo_Text_X") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Balloon_Combo_Text_X[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Balloon_Combo_Text_Y") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Balloon_Combo_Text_Y[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Balloon_Combo_Text_Ex_X") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Balloon_Combo_Text_Ex_X[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Balloon_Combo_Text_Ex_Y") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Balloon_Combo_Text_Ex_Y[i] = int.Parse(strSplit[i]); + } + } + + + else if (strCommand == "Game_Balloon_Balloon_X") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + this.Game_Balloon_Balloon_X[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Balloon_Balloon_Y") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + this.Game_Balloon_Balloon_Y[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Balloon_Balloon_Frame_X") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + this.Game_Balloon_Balloon_Frame_X[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Balloon_Balloon_Frame_Y") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + this.Game_Balloon_Balloon_Frame_Y[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Balloon_Balloon_Number_X") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + this.Game_Balloon_Balloon_Number_X[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Balloon_Balloon_Number_Y") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + this.Game_Balloon_Balloon_Number_Y[i] = int.Parse(strSplit[i]); + } + } + + else if (strCommand == "Game_Balloon_Roll_Frame_X") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Balloon_Roll_Frame_X[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Balloon_Roll_Frame_Y") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Balloon_Roll_Frame_Y[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Balloon_Roll_Number_X") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Balloon_Roll_Number_X[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Balloon_Roll_Number_Y") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Balloon_Roll_Number_Y[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Balloon_Number_Size") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Balloon_Number_Size[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Balloon_Number_Padding") + { + ParseInt32(value => Game_Balloon_Number_Padding = value); + } + else if (strCommand == "Game_Balloon_Roll_Number_Scale") + { + ParseInt32(value => Game_Balloon_Roll_Number_Scale = value); + } + else if (strCommand == "Game_Balloon_Balloon_Number_Scale") + { + ParseInt32(value => Game_Balloon_Balloon_Number_Scale = value); + } + + #endregion + #region Effects + else if (strCommand == nameof(Game_Effect_Roll_StartPoint_X)) + { + Game_Effect_Roll_StartPoint_X = strParam.Split(',').Select(int.Parse).ToArray(); + } + else if (strCommand == nameof(Game_Effect_Roll_StartPoint_Y)) + { + Game_Effect_Roll_StartPoint_Y = strParam.Split(',').Select(int.Parse).ToArray(); + } + else if (strCommand == nameof(Game_Effect_Roll_StartPoint_1P_X)) + { + Game_Effect_Roll_StartPoint_1P_X = strParam.Split(',').Select(int.Parse).ToArray(); + } + else if (strCommand == nameof(Game_Effect_Roll_StartPoint_1P_Y)) + { + Game_Effect_Roll_StartPoint_1P_Y = strParam.Split(',').Select(int.Parse).ToArray(); + } + else if (strCommand == nameof(Game_Effect_Roll_StartPoint_2P_X)) + { + Game_Effect_Roll_StartPoint_2P_X = strParam.Split(',').Select(int.Parse).ToArray(); + } + else if (strCommand == nameof(Game_Effect_Roll_StartPoint_2P_Y)) + { + Game_Effect_Roll_StartPoint_2P_Y = strParam.Split(',').Select(int.Parse).ToArray(); + } + else if (strCommand == nameof(Game_Effect_Roll_Speed_X)) + { + Game_Effect_Roll_Speed_X = strParam.Split(',').Select(float.Parse).ToArray(); + } + else if (strCommand == nameof(Game_Effect_Roll_Speed_Y)) + { + Game_Effect_Roll_Speed_Y = strParam.Split(',').Select(float.Parse).ToArray(); + } + else if (strCommand == nameof(Game_Effect_Roll_Speed_1P_X)) + { + Game_Effect_Roll_Speed_1P_X = strParam.Split(',').Select(float.Parse).ToArray(); + } + else if (strCommand == nameof(Game_Effect_Roll_Speed_1P_Y)) + { + Game_Effect_Roll_Speed_1P_Y = strParam.Split(',').Select(float.Parse).ToArray(); + } + else if (strCommand == nameof(Game_Effect_Roll_Speed_2P_X)) + { + Game_Effect_Roll_Speed_2P_X = strParam.Split(',').Select(float.Parse).ToArray(); + } + else if (strCommand == nameof(Game_Effect_Roll_Speed_2P_Y)) + { + Game_Effect_Roll_Speed_2P_Y = strParam.Split(',').Select(float.Parse).ToArray(); + } + else if (strCommand == nameof(Game_Effect_NotesFlash)) + { + Game_Effect_NotesFlash = strParam.Split(',').Select(int.Parse).ToArray(); + } + else if (strCommand == nameof(Game_Effect_NotesFlash_Timer)) + { + Game_Effect_NotesFlash_Timer = int.Parse(strParam); + } + else if (strCommand == nameof(Game_Effect_GoGoSplash)) + { + Game_Effect_GoGoSplash = strParam.Split(',').Select(int.Parse).ToArray(); + } + else if (strCommand == nameof(Game_Effect_GoGoSplash_X)) + { + Game_Effect_GoGoSplash_X = strParam.Split(',').Select(int.Parse).ToArray(); + } + else if (strCommand == nameof(Game_Effect_GoGoSplash_Y)) + { + Game_Effect_GoGoSplash_Y = strParam.Split(',').Select(int.Parse).ToArray(); + } + else if (strCommand == nameof(Game_Effect_GoGoSplash_Rotate)) + { + Game_Effect_GoGoSplash_Rotate = C変換.bONorOFF(strParam[0]); + } + else if (strCommand == nameof(Game_Effect_GoGoSplash_Timer)) + { + Game_Effect_GoGoSplash_Timer = int.Parse(strParam); + } + else if (strCommand == nameof(Game_Effect_FlyingNotes_StartPoint_X)) + { + Game_Effect_FlyingNotes_StartPoint_X = strParam.Split(',').Select(int.Parse).ToArray(); + } + else if (strCommand == nameof(Game_Effect_FlyingNotes_StartPoint_Y)) + { + Game_Effect_FlyingNotes_StartPoint_Y = strParam.Split(',').Select(int.Parse).ToArray(); + } + else if (strCommand == nameof(Game_Effect_FlyingNotes_EndPoint_X)) + { + Game_Effect_FlyingNotes_EndPoint_X = strParam.Split(',').Select(int.Parse).ToArray(); + } + else if (strCommand == nameof(Game_Effect_FlyingNotes_EndPoint_Y)) + { + Game_Effect_FlyingNotes_EndPoint_Y = strParam.Split(',').Select(int.Parse).ToArray(); + } + else if (strCommand == nameof(Game_Effect_FlyingNotes_Sine)) + { + Game_Effect_FlyingNotes_Sine = int.Parse(strParam); + } + else if (strCommand == nameof(Game_Effect_FlyingNotes_IsUsingEasing)) + { + Game_Effect_FlyingNotes_IsUsingEasing = C変換.bONorOFF(strParam[0]); + } + else if (strCommand == nameof(Game_Effect_FlyingNotes_Timer)) + { + Game_Effect_FlyingNotes_Timer = int.Parse(strParam); + } + else if (strCommand == nameof(Game_Effect_FireWorks)) + { + Game_Effect_FireWorks = strParam.Split(',').Select(int.Parse).ToArray(); + } + else if (strCommand == nameof(Game_Effect_FireWorks_Timer)) + { + Game_Effect_FireWorks_Timer = int.Parse(strParam); + } + else if (strCommand == nameof(Game_Effect_Rainbow_Timer)) + { + Game_Effect_Rainbow_Timer = int.Parse(strParam); + } + else if (strCommand == nameof(Game_Effect_HitExplosion_AddBlend)) + { + Game_Effect_HitExplosion_AddBlend = C変換.bONorOFF(strParam[0]); + } + else if (strCommand == nameof(Game_Effect_HitExplosionBig_AddBlend)) + { + Game_Effect_HitExplosionBig_AddBlend = C変換.bONorOFF(strParam[0]); + } + else if (strCommand == nameof(Game_Effect_FireWorks_AddBlend)) + { + Game_Effect_FireWorks_AddBlend = C変換.bONorOFF(strParam[0]); + } + else if (strCommand == nameof(Game_Effect_Fire_AddBlend)) + { + Game_Effect_Fire_AddBlend = C変換.bONorOFF(strParam[0]); + } + else if (strCommand == nameof(Game_Effect_GoGoSplash_AddBlend)) + { + Game_Effect_GoGoSplash_AddBlend = C変換.bONorOFF(strParam[0]); + } + else if (strCommand == nameof(Game_Effect_FireWorks_Timing)) + { + Game_Effect_FireWorks_Timing = int.Parse(strParam); + } + #endregion + #region Runner + else if (strCommand == "Game_Runner_Size") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Runner_Size[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Runner_Ptn") + { + ParseInt32(value => Game_Runner_Ptn = value); + } + else if (strCommand == "Game_Runner_Type") + { + ParseInt32(value => Game_Runner_Type = value); + } + else if (strCommand == "Game_Runner_StartPoint_X") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Runner_StartPoint_X[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Runner_StartPoint_Y") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Game_Runner_StartPoint_Y[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Game_Runner_Timer") + { + if (int.Parse(strParam) != 0) + { + Game_Runner_Timer = int.Parse(strParam); + } + } + #endregion + #region Dan_C + else if (strCommand == nameof(Game_DanC_Title_ForeColor)) + { + Game_DanC_Title_ForeColor = ColorTranslator.FromHtml(strParam); + } + else if (strCommand == nameof(Game_DanC_Title_BackColor)) + { + Game_DanC_Title_BackColor = ColorTranslator.FromHtml(strParam); + } + else if (strCommand == nameof(Game_DanC_SubTitle_ForeColor)) + { + Game_DanC_SubTitle_ForeColor = ColorTranslator.FromHtml(strParam); + } + else if (strCommand == nameof(Game_DanC_SubTitle_BackColor)) + { + Game_DanC_SubTitle_BackColor = ColorTranslator.FromHtml(strParam); + } + else if (strCommand == nameof(Game_DanC_X)) + { + Game_DanC_X = strParam.Split(',').Select(int.Parse).ToArray(); + } + else if (strCommand == nameof(Game_DanC_Y)) + { + Game_DanC_Y = strParam.Split(',').Select(int.Parse).ToArray(); + } + + else if (strCommand == nameof(Game_DanC_Size)) + { + Game_DanC_Size = strParam.Split(',').Select(int.Parse).ToArray(); + } + + else if (strCommand == nameof(Game_DanC_Padding)) + { + ParseInt32(value => Game_DanC_Padding = value); + } + + else if (strCommand == nameof(Game_DanC_Offset)) + { + Game_DanC_Offset = strParam.Split(',').Select(int.Parse).ToArray(); + } + + else if (strCommand == nameof(Game_DanC_Number_Size)) + { + Game_DanC_Number_Size = strParam.Split(',').Select(int.Parse).ToArray(); + } + + else if (strCommand == nameof(Game_DanC_Number_Padding)) + { + ParseInt32(value => Game_DanC_Number_Padding = value); + } + + else if (strCommand == nameof(Game_DanC_Number_Small_Scale)) + { + Game_DanC_Number_Small_Scale = float.Parse(strParam); + } + + else if (strCommand == nameof(Game_DanC_Number_Small_Padding)) + { + ParseInt32(value => Game_DanC_Number_Small_Padding = value); + } + + else if (strCommand == nameof(Game_DanC_Number_XY)) + { + Game_DanC_Number_XY = strParam.Split(',').Select(int.Parse).ToArray(); + } + else if (strCommand == nameof(Game_DanC_Number_Small_Number_Offset)) + { + Game_DanC_Number_Small_Number_Offset = strParam.Split(',').Select(int.Parse).ToArray(); + } + else if (strCommand == nameof(Game_DanC_ExamType_Size)) + { + Game_DanC_ExamType_Size = strParam.Split(',').Select(int.Parse).ToArray(); + } + else if (strCommand == nameof(Game_DanC_ExamRange_Size)) + { + Game_DanC_ExamRange_Size = strParam.Split(',').Select(int.Parse).ToArray(); + } + + else if (strCommand == nameof(Game_DanC_ExamRange_Padding)) + { + ParseInt32(value => Game_DanC_ExamRange_Padding = value); + } + + else if (strCommand == nameof(Game_DanC_Percent_Hit_Score_Padding)) + { + Game_DanC_Percent_Hit_Score_Padding = strParam.Split(',').Select(int.Parse).ToArray(); + } + else if (strCommand == nameof(Game_DanC_ExamUnit_Size)) + { + Game_DanC_ExamUnit_Size = strParam.Split(',').Select(int.Parse).ToArray(); + } + else if (strCommand == nameof(Game_DanC_Exam_Offset)) + { + Game_DanC_Exam_Offset = strParam.Split(',').Select(int.Parse).ToArray(); + } + else if (strCommand == nameof(Game_DanC_Dan_Plate)) + { + Game_DanC_Dan_Plate = strParam.Split(',').Select(int.Parse).ToArray(); + } + + #endregion + #region PuchiChara + else if (strCommand == nameof(Game_PuchiChara_X)) + { + Game_PuchiChara_X = strParam.Split(',').Select(int.Parse).ToArray(); + } + else if (strCommand == nameof(Game_PuchiChara_Y)) + { + Game_PuchiChara_Y = strParam.Split(',').Select(int.Parse).ToArray(); + } + else if (strCommand == nameof(Game_PuchiChara_BalloonX)) + { + Game_PuchiChara_BalloonX = strParam.Split(',').Select(int.Parse).ToArray(); + } + else if (strCommand == nameof(Game_PuchiChara_BalloonY)) + { + Game_PuchiChara_BalloonY = strParam.Split(',').Select(int.Parse).ToArray(); + } + else if (strCommand == nameof(Game_PuchiChara_Scale)) + { + Game_PuchiChara_Scale = strParam.Split(',').Select(float.Parse).ToArray(); + } + else if (strCommand == nameof(Game_PuchiChara)) + { + Game_PuchiChara = strParam.Split(',').Select(int.Parse).ToArray(); + } + else if (strCommand == nameof(Game_PuchiChara_Sine)) + { + ParseInt32(value => Game_PuchiChara_Sine = value); + } + else if (strCommand == nameof(Game_PuchiChara_Timer)) + { + ParseInt32(value => Game_PuchiChara_Timer = value); + } + else if (strCommand == nameof(Game_PuchiChara_SineTimer)) + { + Game_PuchiChara_SineTimer = double.Parse(strParam); + } + #endregion + #region Training + else if (strCommand == nameof(Game_Training_ScrollTime)) + { + Game_Training_ScrollTime = int.Parse(strParam); + } + else if (strCommand == nameof(Game_Training_ProgressBar_XY)) + { + Game_Training_ProgressBar_XY = strParam.Split(',').Select(int.Parse).ToArray(); + } + else if (strCommand == nameof(Game_Training_GoGoPoint_Y)) + { + Game_Training_GoGoPoint_Y = int.Parse(strParam); + } + else if (strCommand == nameof(Game_Training_JumpPoint_Y)) + { + Game_Training_JumpPoint_Y = int.Parse(strParam); + } + else if (strCommand == nameof(Game_Training_MaxMeasureCount_XY)) + { + Game_Training_MaxMeasureCount_XY = strParam.Split(',').Select(int.Parse).ToArray(); + } + else if (strCommand == nameof(Game_Training_CurrentMeasureCount_XY)) + { + Game_Training_CurrentMeasureCount_XY = strParam.Split(',').Select(int.Parse).ToArray(); + } + else if (strCommand == nameof(Game_Training_SpeedDisplay_XY)) + { + Game_Training_CurrentMeasureCount_XY = strParam.Split(',').Select(int.Parse).ToArray(); + } + else if (strCommand == nameof(Game_Training_SmallNumber_Width)) + { + Game_Training_SmallNumber_Width = int.Parse(strParam); + } + else if (strCommand == nameof(Game_Training_BigNumber_Width)) + { + Game_Training_BigNumber_Width = int.Parse(strParam); + } + #endregion + + #endregion + #region Result + else if (strCommand == nameof(Result_MusicName_X)) + { + Result_MusicName_X = int.Parse(strParam); + } + else if (strCommand == nameof(Result_MusicName_Y)) + { + Result_MusicName_Y = int.Parse(strParam); + } + else if (strCommand == nameof(Result_MusicName_FontSize)) + { + if (int.Parse(strParam) > 0) + Result_MusicName_FontSize = int.Parse(strParam); + } + else if (strCommand == nameof(Result_MusicName_ReferencePoint)) + { + Result_MusicName_ReferencePoint = (ReferencePoint)int.Parse(strParam); + } + else if (strCommand == nameof(Result_StageText_X)) + { + Result_StageText_X = int.Parse(strParam); + } + else if (strCommand == nameof(Result_StageText_Y)) + { + Result_StageText_Y = int.Parse(strParam); + } + else if (strCommand == nameof(Result_StageText_FontSize)) + { + if (int.Parse(strParam) > 0) + Result_StageText_FontSize = int.Parse(strParam); + } + else if (strCommand == nameof(Result_StageText_ReferencePoint)) + { + Result_StageText_ReferencePoint = (ReferencePoint)int.Parse(strParam); + } + + else if (strCommand == nameof(Result_MusicName_ForeColor)) + { + Result_MusicName_ForeColor = ColorTranslator.FromHtml(strParam); + } + else if (strCommand == nameof(Result_StageText_ForeColor)) + { + Result_StageText_ForeColor = ColorTranslator.FromHtml(strParam); + } + //else if (strCommand == nameof(Result_StageText_ForeColor_Red)) + //{ + // Result_StageText_ForeColor_Red = ColorTranslator.FromHtml(strParam); + //} + else if (strCommand == nameof(Result_MusicName_BackColor)) + { + Result_MusicName_BackColor = ColorTranslator.FromHtml(strParam); + } + else if (strCommand == nameof(Result_StageText_BackColor)) + { + Result_StageText_BackColor = ColorTranslator.FromHtml(strParam); + } + //else if (strCommand == nameof(Result_StageText_BackColor_Red)) + //{ + // Result_StageText_BackColor_Red = ColorTranslator.FromHtml(strParam); + //} + + else if (strCommand == "Result_NamePlate_X") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Result_NamePlate_X[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "Result_NamePlate_Y") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 2; i++) + { + Result_NamePlate_Y[i] = int.Parse(strSplit[i]); + } + } + + else if (strCommand == nameof(Result_Dan)) + { + Result_Dan = strParam.Split(',').Select(int.Parse).ToArray(); + } + else if (strCommand == nameof(Result_Dan_XY)) + { + Result_Dan_XY = strParam.Split(',').Select(int.Parse).ToArray(); + } + else if (strCommand == nameof(Result_Dan_Plate_XY)) + { + Result_Dan_Plate_XY = strParam.Split(',').Select(int.Parse).ToArray(); + } + + #endregion + #region Font + else if (strCommand == nameof(Font_Edge_Ratio)) //Config画面や簡易メニューのフォントについて(rhimm) + { + if (int.Parse(strParam) > 0) + Font_Edge_Ratio = int.Parse(strParam); + } + else if (strCommand == nameof(Font_Edge_Ratio_Vertical)) //TITLEやSUBTITLEなど、縦に書かれることのあるフォントについて(rhimm) + { + if (int.Parse(strParam) > 0) + Font_Edge_Ratio_Vertical = int.Parse(strParam); + } + else if (strCommand == nameof(Text_Correction_X)) + { + Text_Correction_X = int.Parse(strParam); + } + else if (strCommand == nameof(Text_Correction_Y)) + { + Text_Correction_Y = int.Parse(strParam); + } + #endregion + #endregion + } + continue; + } + catch (Exception exception) + { + Trace.TraceError(exception.ToString()); + Trace.TraceError("例外が発生しましたが処理を継続します。 (6a32cc37-1527-412e-968a-512c1f0135cd)"); + continue; + } + } + } + } + + private void t座標の追従設定() + { + // + if (bFieldBgPointOverride == true) + { + + } + } + + #region [ IDisposable 実装 ] + //----------------- + public void Dispose() + { + if (!this.bDisposed済み) + { + for (int i = 0; i < this.nシステムサウンド数; i++) + this[i].Dispose(); + + this.bDisposed済み = true; + } + } + //----------------- + #endregion + + + // その他 + + #region [ private ] + //----------------- + private bool bDisposed済み; + //----------------- + #endregion + + #region 背景(スクロール) + public int[] Background_Scroll_Y = new int[] { 0, 536 }; + #endregion + + + #region[ 座標 ] + //2017.08.11 kairera0467 DP実用化に向けてint配列に変更 + + //フィールド位置 Xは判定枠部分の位置。Yはフィールドの最上部の座標。 + //現時点ではノーツ画像、Senotes画像、判定枠が連動する。 + //Xは中央基準描画、Yは左上基準描画 + public int[] nScrollFieldX = new int[] { 414, 414 }; + public int[] nScrollFieldY = new int[] { 192, 368 }; + + //中心座標指定 + public int[] nJudgePointX = new int[] { 413, 413, 413, 413 }; + public int[] nJudgePointY = new int[] { 256, 433, 0, 0 }; + + //フィールド背景画像 + //ScrollField座標への追従設定が可能。 + //分岐背景、ゴーゴー背景が連動する。(全て同じ大きさ、位置で作成すること。) + //左上基準描画 + public bool bFieldBgPointOverride = false; + public int[] nScrollFieldBGX = new int[] { 333, 333, 333, 333 }; + public int[] nScrollFieldBGY = new int[] { 192, 368, 0, 0 }; + + //SEnotes + //音符座標に加算 + public int[] nSENotesY = new int[] { 131, 131 }; + + //光る太鼓部分 + public int nMtaikoBackgroundX = 0; + public int nMtaikoBackgroundY = 184; + public int nMtaikoFieldX = 0; + public int nMtaikoFieldY = 184; + public int nMtaikoMainX = 0; + public int nMtaikoMainY = 0; + + //コンボ + public int[] nComboNumberX = new int[] { 0, 0, 0, 0 }; + public int[] nComboNumberY = new int[] { 212, 388, 0, 0 }; + public int[] nComboNumberTextY = new int[] { 271, 447, 0, 0 }; + public int[] nComboNumberTextLargeY = new int[] { 270, 446, 0, 0 }; + public float fComboNumberSpacing = 0; + public float fComboNumberSpacing_l = 0; + + public E難易度表示タイプ eDiffDispMode; + public bool b現在のステージ数を表示しない; + + //リザルト画面 + //現在のデフォルト値はダミーです。 + public int nResultPanelP1X = 0; + public int nResultPanelP1Y = 0; + public int nResultPanelP2X = 515; + public int nResultPanelP2Y = 75; + public int nResultScoreP1X = 295; + public int nResultScoreP1Y = 212; + public int nResultJudge1_P1X = 495; + public int nResultJudge1_P1Y = 182; + public int nResultJudge2_P1X = 968; + public int nResultJudge2_P1Y = 174; + + public int nResultNumberP1X = 490; + public int nResultNumberP2X = 875; + + public int nResultNumberY = 188; + public int nResultNumberYPadding = 42; + + public int nResultGaugeBaseP1X = 56; + public int nResultGaugeBaseP1Y = 141; + public int nResultGaugeBaseP2X = 555; + public int nResultGaugeBaseP2Y = 122; + public int nResultGaugeBodyP1X = 559; + public int nResultGaugeBodyP1Y = 125; + #endregion + + public string[] strStringを配列に直す(string str) + { + string[] strArray = str.Split(','); + return strArray; + } + + public enum RollColorMode + { + None, // PS4, Switchなど + All, // 旧筐体(旧作含む) + WithoutStart // 新筐体 + } + public enum ReferencePoint //テクスチャ描画の基準点を変更可能にするための値(rhimm) + { + Center, + Left, + Right + } + + #region 新・SkinConfig + #region General + public string Skin_Name = "Unknown"; + public string Skin_Version = "Unknown"; + public string Skin_Creator = "Unknown"; + #endregion + #region Config + public int Config_ItemText_Correction_X = 0; + public int Config_ItemText_Correction_Y = 0; + #endregion + #region SongSelect + public int SongSelect_Overall_Y = 123; + public int SongSelect_BoxExplanation_X = 0; + public int SongSelect_BoxExplanation_Y = 0; + public int SongSelect_BoxExplanation_Interval = 30; + public int SongSelect_Title_X = 0; + public int SongSelect_Title_Y = 0; + public string[] SongSelect_GenreName = { "ポップス", "アニメ", "ゲームバラエティ", "ナムコオリジナル", "クラシック", "バラエティ", "キッズ", "ボーカロイド", "最近遊んだ曲"}; + public int[] SongSelect_NamePlate_X = new int[] { 36, 1020 }; + public int[] SongSelect_NamePlate_Y = new int[] { 615, 615 }; + public int[] SongSelect_Auto_X = new int[] { 60, 950 }; + public int[] SongSelect_Auto_Y = new int[] { 650, 650 }; + public Color SongSelect_ForeColor_JPOP = ColorTranslator.FromHtml("#FFFFFF"); + public Color SongSelect_ForeColor_Anime = ColorTranslator.FromHtml("#FFFFFF"); + public Color SongSelect_ForeColor_VOCALOID = ColorTranslator.FromHtml("#FFFFFF"); + public Color SongSelect_ForeColor_Children = ColorTranslator.FromHtml("#FFFFFF"); + public Color SongSelect_ForeColor_Variety = ColorTranslator.FromHtml("#FFFFFF"); + public Color SongSelect_ForeColor_Classic = ColorTranslator.FromHtml("#FFFFFF"); + public Color SongSelect_ForeColor_GameMusic = ColorTranslator.FromHtml("#FFFFFF"); + public Color SongSelect_ForeColor_Namco = ColorTranslator.FromHtml("#FFFFFF"); + public Color SongSelect_BackColor_JPOP = ColorTranslator.FromHtml("#01455B"); + public Color SongSelect_BackColor_Anime = ColorTranslator.FromHtml("#99001F"); + public Color SongSelect_BackColor_VOCALOID = ColorTranslator.FromHtml("#5B6278"); + public Color SongSelect_BackColor_Children = ColorTranslator.FromHtml("#9D3800"); + public Color SongSelect_BackColor_Variety = ColorTranslator.FromHtml("#366600"); + public Color SongSelect_BackColor_Classic = ColorTranslator.FromHtml("#875600"); + public Color SongSelect_BackColor_GameMusic = ColorTranslator.FromHtml("#412080"); + public Color SongSelect_BackColor_Namco = ColorTranslator.FromHtml("#980E00"); + public int SongSelect_Bar_Genre_Count, + SongSelect_Genre_Background_Count, + SongSelect_Box_Chara_Count, + SongSelect_Difficulty_Background_Count; + public string[] SongSelect_CorrectionX_Chara = { "ここにX座標を補正したい文字をカンマで区切って記入" }; + public string[] SongSelect_CorrectionY_Chara = { "ここにY座標を補正したい文字をカンマで区切って記入" }; + public int SongSelect_CorrectionX_Chara_Value = 0; + public int SongSelect_CorrectionY_Chara_Value = 0; + public string[] SongSelect_Rotate_Chara = { "ここに90℃回転させたい文字をカンマで区切って記入" }; + + #endregion + #region SongLoading + public int SongLoading_Plate_X = 640; + public int SongLoading_Plate_Y = 360; + public int SongLoading_Title_X = 640; + public int SongLoading_Title_Y = 280; + public int SongLoading_SubTitle_X = 640; + public int SongLoading_SubTitle_Y = 325; + public int SongLoading_Title_FontSize = 31; + public int SongLoading_SubTitle_FontSize = 20; + public ReferencePoint SongLoading_Plate_ReferencePoint = ReferencePoint.Center; + public ReferencePoint SongLoading_Title_ReferencePoint = ReferencePoint.Center; + public ReferencePoint SongLoading_SubTitle_ReferencePoint = ReferencePoint.Center; + public Color SongLoading_Title_ForeColor = ColorTranslator.FromHtml("#FFFFFF"); + public Color SongLoading_Title_BackColor = ColorTranslator.FromHtml("#000000"); + public Color SongLoading_SubTitle_ForeColor = ColorTranslator.FromHtml("#000000"); + public Color SongLoading_SubTitle_BackColor = ColorTranslator.FromHtml("#00000000"); + public bool SongLoading_Plate_ScreenBlend = false; + + #endregion + #region Game + public bool Game_Notes_Anime = false; + public string Game_StageText = "1曲目"; + public RollColorMode Game_RollColorMode = RollColorMode.All; + public bool Game_JudgeFrame_AddBlend = true; + #region Chara + public int[] Game_Chara_X = new int[] { 0, 0 }; + public int[] Game_Chara_Y = new int[] { 0, 537 }; + public int[] Game_Chara_Balloon_X = new int[] { 240, 240, 0, 0 }; + public int[] Game_Chara_Balloon_Y = new int[] { 0, 297, 0, 0 }; + public int Game_Chara_Ptn_Normal, + Game_Chara_Ptn_GoGo, + Game_Chara_Ptn_Clear, + Game_Chara_Ptn_10combo, + Game_Chara_Ptn_10combo_Max, + Game_Chara_Ptn_GoGoStart, + Game_Chara_Ptn_GoGoStart_Max, + Game_Chara_Ptn_ClearIn, + Game_Chara_Ptn_SoulIn, + Game_Chara_Ptn_Balloon_Breaking, + Game_Chara_Ptn_Balloon_Broke, + Game_Chara_Ptn_Balloon_Miss; + public string Game_Chara_Motion_Normal, + Game_Chara_Motion_Clear, + Game_Chara_Motion_GoGo = "0"; + public int Game_Chara_Beat_Normal = 1; + public int Game_Chara_Beat_Clear = 2; + public int Game_Chara_Beat_GoGo = 2; + public int Game_Chara_Balloon_Timer = 28; + public int Game_Chara_Balloon_Delay = 500; + public int Game_Chara_Balloon_FadeOut = 84; + #endregion + #region Dancer + public int[] Game_Dancer_X = new int[] { 640, 430, 856, 215, 1070 }; + public int[] Game_Dancer_Y = new int[] { 500, 500, 500, 500, 500 }; + public string Game_Dancer_Motion = "0"; + public int Game_Dancer_Ptn = 0; + public int Game_Dancer_Beat = 8; + public int[] Game_Dancer_Gauge = new int[] { 0, 0, 0, 40, 80 }; + #endregion + #region Mob + public int Game_Mob_Ptn = 1; + public int Game_Mob_Beat, + Game_Mob_Ptn_Beat = 1; + #endregion + #region CourseSymbol + public int[] Game_CourseSymbol_X = new int[] { 64, 64 }; + public int[] Game_CourseSymbol_Y = new int[] { 232, 582 }; + #endregion + #region PanelFont + public int Game_MusicName_X = 1160; + public int Game_MusicName_Y = 24; + public int Game_MusicName_FontSize = 27; + public ReferencePoint Game_MusicName_ReferencePoint = ReferencePoint.Center; + public int Game_Genre_X = 1015; + public int Game_Genre_Y = 70; + public int Game_Lyric_X = 640; + public int Game_Lyric_Y = 630; + public string Game_Lyric_FontName = "MS UI Gothic"; + public int Game_Lyric_FontSize = 38; + public ReferencePoint Game_Lyric_ReferencePoint = ReferencePoint.Center; + + public Color Game_MusicName_ForeColor = ColorTranslator.FromHtml("#FFFFFF"); + public Color Game_StageText_ForeColor = ColorTranslator.FromHtml("#FFFFFF"); + public Color Game_Lyric_ForeColor = ColorTranslator.FromHtml("#FFFFFF"); + public Color Game_MusicName_BackColor = ColorTranslator.FromHtml("#000000"); + public Color Game_StageText_BackColor = ColorTranslator.FromHtml("#000000"); + public Color Game_Lyric_BackColor = ColorTranslator.FromHtml("#0000FF"); + + #endregion + #region Score + public int[] Game_Score_X = new int[] { 20, 20, 0, 0 }; + public int[] Game_Score_Y = new int[] { 226, 530, 0, 0 }; + public int[] Game_Score_Add_X = new int[] { 20, 20, 0, 0 }; + public int[] Game_Score_Add_Y = new int[] { 186, 570, 0, 0 }; + public int[] Game_Score_AddBonus_X = new int[] { 20, 20, 0, 0 }; + public int[] Game_Score_AddBonus_Y = new int[] { 136, 626, 0, 0 }; + public int Game_Score_Padding = 20; + public int[] Game_Score_Size = new int[] { 24, 40 }; + #endregion + #region Taiko + public int[] Game_Taiko_NamePlate_X = new int[] { 0, 0 }; + public int[] Game_Taiko_NamePlate_Y = new int[] { 300, 380 }; + public int[] Game_Taiko_PlayerNumber_X = new int[] { 4, 4 }; + public int[] Game_Taiko_PlayerNumber_Y = new int[] { 233, 435 }; + public int[] Game_Taiko_X = new int[] { 190, 190 }; + public int[] Game_Taiko_Y = new int[] { 190, 368 }; + public int[] Game_Taiko_Combo_X = new int[] { 267, 267 }; + public int[] Game_Taiko_Combo_Y = new int[] { 272, 447 }; + public int[] Game_Taiko_Combo_Ex_X = new int[] { 267, 267 }; + public int[] Game_Taiko_Combo_Ex_Y = new int[] { 274, 451 }; + public int[] Game_Taiko_Combo_Ex4_X = new int[] { 267, 267 }; + public int[] Game_Taiko_Combo_Ex4_Y = new int[] { 269, 447 }; + public int[] Game_Taiko_Combo_Padding = new int[] { 34, 34, 30 }; + public int[] Game_Taiko_Combo_Size = new int[] { 40, 48 }; + public int[] Game_Taiko_Combo_Size_Ex = new int[] { 40, 48 }; + public float[] Game_Taiko_Combo_Scale = new float[] { 1.0f, 1.0f, 0.9f }; + public int[] Game_Taiko_Combo_Text_X = new int[] { 268, 268 }; + public int[] Game_Taiko_Combo_Text_Y = new int[] { 298, 475 }; + public int[] Game_Taiko_Combo_Text_Size = new int[] { 100, 50 }; + public bool Game_Taiko_Combo_Ex_IsJumping = true; + #endregion + #region Gauge + public int Game_Gauge_Rainbow_Ptn; + public int Game_Gauge_Dan_Rainbow_Ptn; + public int Game_Gauge_Rainbow_Timer = 50; + #endregion + #region Balloon + public int[] Game_Balloon_Combo_X = new int[] { 253, 253 }; + public int[] Game_Balloon_Combo_Y = new int[] { -11, 538 }; + public int[] Game_Balloon_Combo_Number_X = new int[] { 257, 257 }; + public int[] Game_Balloon_Combo_Number_Y = new int[] { 54, 603 }; + public int[] Game_Balloon_Combo_Number_Ex_X = new int[] { 297, 297 }; + public int[] Game_Balloon_Combo_Number_Ex_Y = new int[] { 54, 603 }; + public int[] Game_Balloon_Combo_Text_X = new int[] { 440, 440 }; + public int[] Game_Balloon_Combo_Text_Y = new int[] { 85, 634 }; + public int[] Game_Balloon_Combo_Text_Ex_X = new int[] { 440, 440 }; + public int[] Game_Balloon_Combo_Text_Ex_Y = new int[] { 85, 594 }; + + public int[] Game_Balloon_Balloon_X = new int[] { 382, 382 }; + public int[] Game_Balloon_Balloon_Y = new int[] { 115, 290 }; + public int[] Game_Balloon_Balloon_Frame_X = new int[] { 382, 382 }; + public int[] Game_Balloon_Balloon_Frame_Y = new int[] { 80, 260 }; + public int[] Game_Balloon_Balloon_Number_X = new int[] { 486, 486 }; + public int[] Game_Balloon_Balloon_Number_Y = new int[] { 187, 373 }; + public int[] Game_Balloon_Roll_Frame_X = new int[] { 218, 218 }; + public int[] Game_Balloon_Roll_Frame_Y = new int[] { -3, 514 }; + public int[] Game_Balloon_Roll_Number_X = new int[] { 376, 376 }; + public int[] Game_Balloon_Roll_Number_Y = new int[] { 122, 633 }; + public int[] Game_Balloon_Number_Size = new int[] { 63, 75 }; + public int Game_Balloon_Number_Padding = 55; + public float Game_Balloon_Roll_Number_Scale = 1.000f; + public float Game_Balloon_Balloon_Number_Scale = 0.879f; + #endregion + #region Effects + public int[] Game_Effect_Roll_StartPoint_X = new int[] { 56, -10, 200, 345, 100, 451, 600, 260, -30, 534, 156, 363 }; + public int[] Game_Effect_Roll_StartPoint_Y = new int[] { 720 }; + public int[] Game_Effect_Roll_StartPoint_1P_X = new int[] { 56, -10, 200, 345, 100, 451, 600, 260, -30, 534, 156, 363 }; + public int[] Game_Effect_Roll_StartPoint_1P_Y = new int[] { 240 }; + public int[] Game_Effect_Roll_StartPoint_2P_X = new int[] { 56, -10, 200, 345, 100, 451, 600, 260, -30, 534, 156, 363 }; + public int[] Game_Effect_Roll_StartPoint_2P_Y = new int[] { 360 }; + public float[] Game_Effect_Roll_Speed_X = new float[] { 0.6f }; + public float[] Game_Effect_Roll_Speed_Y = new float[] { -0.6f }; + public float[] Game_Effect_Roll_Speed_1P_X = new float[] { 0.6f }; + public float[] Game_Effect_Roll_Speed_1P_Y = new float[] { -0.6f }; + public float[] Game_Effect_Roll_Speed_2P_X = new float[] { 0.6f }; + public float[] Game_Effect_Roll_Speed_2P_Y = new float[] { 0.6f }; + public int Game_Effect_Roll_Ptn; + public int[] Game_Effect_NotesFlash = new int[] { 180, 180, 16 }; // Width, Height, Ptn + public int Game_Effect_NotesFlash_Timer = 20; + public int[] Game_Effect_GoGoSplash = new int[] { 300, 400, 30 }; + public int[] Game_Effect_GoGoSplash_X = new int[] { 120, 300, 520, 760, 980, 1160 }; + public int[] Game_Effect_GoGoSplash_Y = new int[] { 740, 730, 720, 720, 730, 740 }; + public bool Game_Effect_GoGoSplash_Rotate = true; + public int Game_Effect_GoGoSplash_Timer = 18; + // super-flying-notes AioiLight + public int[] Game_Effect_FlyingNotes_StartPoint_X = new int[] { 414, 414 }; + public int[] Game_Effect_FlyingNotes_StartPoint_Y = new int[] { 260, 434 }; + public int[] Game_Effect_FlyingNotes_EndPoint_X = new int[] { 1222, 1222 }; // 1P, 2P + public int[] Game_Effect_FlyingNotes_EndPoint_Y = new int[] { 164, 554 }; + + public int Game_Effect_FlyingNotes_Sine = 220; + public bool Game_Effect_FlyingNotes_IsUsingEasing = true; + public int Game_Effect_FlyingNotes_Timer = 4; + public int[] Game_Effect_FireWorks = new int[] { 180, 180, 30 }; + public int Game_Effect_FireWorks_Timer = 5; + public int Game_Effect_Rainbow_Timer = 8; + + public bool Game_Effect_HitExplosion_AddBlend = true; + public bool Game_Effect_HitExplosionBig_AddBlend = true; + public bool Game_Effect_FireWorks_AddBlend = true; + public bool Game_Effect_Fire_AddBlend = true; + public bool Game_Effect_GoGoSplash_AddBlend = true; + public int Game_Effect_FireWorks_Timing = 8; + #endregion + #region Runner + public int[] Game_Runner_Size = new int[] { 60, 125 }; + public int Game_Runner_Ptn = 48; + public int Game_Runner_Type = 4; + public int[] Game_Runner_StartPoint_X = new int[] { 175, 175 }; + public int[] Game_Runner_StartPoint_Y = new int[] { 40, 560 }; + public int Game_Runner_Timer = 16; + #endregion + #region PuchiChara + public int[] Game_PuchiChara_X = new int[] { 100, 100 }; + public int[] Game_PuchiChara_Y = new int[] { 140, 600 }; + public int[] Game_PuchiChara_BalloonX = new int[] { 300, 300 }; + public int[] Game_PuchiChara_BalloonY = new int[] { 240, 500 }; + public float[] Game_PuchiChara_Scale = new float[] { 0.7f, 1.0f }; // 通常時、 ふうせん連打時 + public int[] Game_PuchiChara = new int[] { 180, 180, 2 }; // Width, Height, Ptn + public int Game_PuchiChara_Sine = 20; + public int Game_PuchiChara_Timer = 4800; + public double Game_PuchiChara_SineTimer = 2; + #endregion + #region Dan-C + public Color Game_DanC_Title_ForeColor = ColorTranslator.FromHtml("#FFFFFF"); + public Color Game_DanC_Title_BackColor = ColorTranslator.FromHtml("#000000"); + public Color Game_DanC_SubTitle_ForeColor = ColorTranslator.FromHtml("#FFFFFF"); + public Color Game_DanC_SubTitle_BackColor = ColorTranslator.FromHtml("#000000"); + + public int[] Game_DanC_Size = new int[] { 1006, 92 }; + public int[] Game_DanC_Number_Size = new int[] { 48, 58 }; + public int[] Game_DanC_Small_Number_Size = new int[] { 24, 29 }; + public int[] Game_DanC_MiniNumber_Size = new int[] { 23, 28 }; + public int[] Game_DanC_ExamType_Size = new int[] { 247, 28 }; + public int[] Game_DanC_ExamRange_Size = new int[] { 54, 30 }; + public int[] Game_DanC_ExamUnit_Size = new int[] { 30, 36 }; + + public int[] Game_DanC_Offset = new int[] { 259, 27 }; + public int[] Game_DanC_Number_Small_Number_Offset = new int[] { 285, 38 }; + public int[] Game_DanC_Exam_Offset = new int[] { 222, 27 }; + + public int[] Game_DanC_X = new int[] { 807, 70, 70, 70 }; // 329, 437 + public int[] Game_DanC_Y = new int[] { 116, 292, 292, 292 }; // { 116, 190, 236, 292 }; + public int[] Game_DanC_Number_XY = new int[] { 214, 67 }; + public int[] Game_DanC_Dan_Plate = new int[] { 149, 416 }; + + public int Game_DanC_Padding = 9; + public int Game_DanC_Number_Padding = 35; + public int Game_DanC_Number_Small_Padding = 41; + public int Game_DanC_ExamRange_Padding = 49; + public int[] Game_DanC_Percent_Hit_Score_Padding = new int[] { 20, 20, 20 }; + + public float Game_DanC_Number_Small_Scale = 0.92f; + public float Game_DanC_Exam_Number_Scale = 0.47f; + + #endregion + #region Training + public int Game_Training_ScrollTime = 350; + public int[] Game_Training_ProgressBar_XY = { 333, 378 }; + public int Game_Training_GoGoPoint_Y = 396; + public int Game_Training_JumpPoint_Y = 375; + public int[] Game_Training_MaxMeasureCount_XY = { 284, 377 }; + public int[] Game_Training_CurrentMeasureCount_XY = { 254, 370 }; + public int[] Game_Training_SpeedDisplay_XY = { 110, 370 }; + public int Game_Training_SmallNumber_Width = 17; + public int Game_Training_BigNumber_Width = 20; + #endregion + + #endregion + #region Result + public int Result_MusicName_X = 640; + public int Result_MusicName_Y = 30; + public int Result_MusicName_FontSize = 25; + public ReferencePoint Result_MusicName_ReferencePoint = ReferencePoint.Center; + public int Result_StageText_X = 230; + public int Result_StageText_Y = 6; + public int Result_StageText_FontSize = 30; + public ReferencePoint Result_StageText_ReferencePoint = ReferencePoint.Left; + + public Color Result_MusicName_ForeColor = ColorTranslator.FromHtml("#FFFFFF"); + public Color Result_StageText_ForeColor = ColorTranslator.FromHtml("#FFFFFF"); + //public Color Result_StageText_ForeColor_Red = ColorTranslator.FromHtml("#FFFFFF"); + public Color Result_MusicName_BackColor = ColorTranslator.FromHtml("#000000"); + public Color Result_StageText_BackColor = ColorTranslator.FromHtml("#000000"); + //public Color Result_StageText_BackColor_Red = ColorTranslator.FromHtml("#FF0000"); + + public int[] Result_NamePlate_X = new int[] { 6, 260 }; + public int[] Result_NamePlate_Y = new int[] { 611, 611 }; + + public int[] Result_Dan = new int[] { 500, 500 }; + public int[] Result_Dan_XY = new int[] { 100, 0 }; + public int[] Result_Dan_Plate_XY = new int[] { 149, 416 }; + #endregion + #region Font + public int Font_Edge_Ratio = 30; + public int Font_Edge_Ratio_Vertical = 30; + public int Text_Correction_X = 0; + public int Text_Correction_Y = 0; + #endregion + #endregion + } +} \ No newline at end of file diff --git a/TJAPlayer3/Common/CVeirticalSongNameFont.cs b/TJAPlayer3/Common/CVeirticalSongNameFont.cs new file mode 100644 index 00000000..ef110efb --- /dev/null +++ b/TJAPlayer3/Common/CVeirticalSongNameFont.cs @@ -0,0 +1,35 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.IO; +using System.Runtime.InteropServices; +using System.Drawing; +using System.Drawing.Drawing2D; +using System.Diagnostics; +using SlimDX; +using FDK; + +namespace TJAPlayer3 +{ + public class CVerticalSongNameFont + { + //必要な値 + //_タイトル + //_サブタイトル(とりあえず最初は無しで進める) + //_ + //_ + //_ + + + + + + + + #region [ private ] + //----------------- + private const string str回転させる文字 = "「」~()ー-~-∞—()《》{}<>『』[]…"; + //----------------- + #endregion + } +} diff --git a/TJAPlayer3/Common/ConfigIniToSongGainControllerBinder.cs b/TJAPlayer3/Common/ConfigIniToSongGainControllerBinder.cs new file mode 100644 index 00000000..2e2e604f --- /dev/null +++ b/TJAPlayer3/Common/ConfigIniToSongGainControllerBinder.cs @@ -0,0 +1,38 @@ +using FDK; + +namespace TJAPlayer3 +{ + /// + /// The ConfigIniToSongGainControllerBinder allows for SONGVOL and/or other + /// properties related to the Gain levels applied to song preview and + /// playback, to be applied conditionally based on settings flowing from + /// ConfigIni. This binder class allows that to take place without either + /// ConfigIni or SongGainController having awareness of one another. + /// See those classes properties, methods, and events for more details. + /// + internal static class ConfigIniToSongGainControllerBinder + { + internal static void Bind(CConfigIni configIni, SongGainController songGainController) + { + songGainController.ApplyLoudnessMetadata = configIni.ApplyLoudnessMetadata; + songGainController.TargetLoudness = new Lufs(configIni.TargetLoudness); + songGainController.ApplySongVol = configIni.ApplySongVol; + + configIni.PropertyChanged += (sender, args) => + { + switch (args.PropertyName) + { + case nameof(CConfigIni.ApplyLoudnessMetadata): + songGainController.ApplyLoudnessMetadata = configIni.ApplyLoudnessMetadata; + break; + case nameof(CConfigIni.TargetLoudness): + songGainController.TargetLoudness = new Lufs(configIni.TargetLoudness); + break; + case nameof(CConfigIni.ApplySongVol): + songGainController.ApplySongVol = configIni.ApplySongVol; + break; + } + }; + } + } +} \ No newline at end of file diff --git a/TJAPlayer3/Common/ConfigIniToSoundGroupLevelControllerBinder.cs b/TJAPlayer3/Common/ConfigIniToSoundGroupLevelControllerBinder.cs new file mode 100644 index 00000000..2ebca6be --- /dev/null +++ b/TJAPlayer3/Common/ConfigIniToSoundGroupLevelControllerBinder.cs @@ -0,0 +1,67 @@ +using System; +using FDK; + +namespace TJAPlayer3 +{ + /// + /// The ConfigIniToSoundGroupLevelControllerBinder allows for updated sound + /// group level values, and keyboard sound level adjustment increment + /// values, to flow between CConfigIni and the SoundGroupLevelController + /// without either of those two classes being aware of one another. + /// See those classes properties, methods, and events for more details. + /// + internal static class ConfigIniToSoundGroupLevelControllerBinder + { + internal static void Bind(CConfigIni configIni, SoundGroupLevelController soundGroupLevelController) + { + soundGroupLevelController.SetLevel(ESoundGroup.SoundEffect, configIni.SoundEffectLevel); + soundGroupLevelController.SetLevel(ESoundGroup.Voice, configIni.VoiceLevel); + soundGroupLevelController.SetLevel(ESoundGroup.SongPreview, configIni.SongPlaybackLevel); + soundGroupLevelController.SetLevel(ESoundGroup.SongPlayback, configIni.SongPlaybackLevel); + soundGroupLevelController.SetKeyboardSoundLevelIncrement(configIni.KeyboardSoundLevelIncrement); + + configIni.PropertyChanged += (sender, args) => + { + switch (args.PropertyName) + { + case nameof(CConfigIni.SoundEffectLevel): + soundGroupLevelController.SetLevel(ESoundGroup.SoundEffect, configIni.SoundEffectLevel); + break; + case nameof(CConfigIni.VoiceLevel): + soundGroupLevelController.SetLevel(ESoundGroup.Voice, configIni.VoiceLevel); + break; + case nameof(CConfigIni.SongPreviewLevel): + soundGroupLevelController.SetLevel(ESoundGroup.SongPreview, configIni.SongPlaybackLevel); + break; + case nameof(CConfigIni.SongPlaybackLevel): + soundGroupLevelController.SetLevel(ESoundGroup.SongPlayback, configIni.SongPlaybackLevel); + break; + case nameof(CConfigIni.KeyboardSoundLevelIncrement): + soundGroupLevelController.SetKeyboardSoundLevelIncrement(configIni.KeyboardSoundLevelIncrement); + break; + } + }; + + soundGroupLevelController.LevelChanged += (sender, args) => + { + switch (args.SoundGroup) + { + case ESoundGroup.SoundEffect: + configIni.SoundEffectLevel = args.Level; + break; + case ESoundGroup.Voice: + configIni.VoiceLevel = args.Level; + break; + case ESoundGroup.SongPreview: + configIni.SongPlaybackLevel = args.Level; + break; + case ESoundGroup.SongPlayback: + configIni.SongPlaybackLevel = args.Level; + break; + default: + throw new ArgumentOutOfRangeException(); + } + }; + } + } +} diff --git a/TJAPlayer3/Common/ConfigManager.cs b/TJAPlayer3/Common/ConfigManager.cs new file mode 100644 index 00000000..5200e802 --- /dev/null +++ b/TJAPlayer3/Common/ConfigManager.cs @@ -0,0 +1,56 @@ +using System.Text; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using Newtonsoft.Json.Serialization; + +namespace TJAPlayer3 +{ + /// + /// 設定ファイル入出力クラス。 + /// + public static class ConfigManager + { + private static readonly JsonSerializerSettings Settings = + new JsonSerializerSettings() + { + ObjectCreationHandling = ObjectCreationHandling.Auto, + DefaultValueHandling = DefaultValueHandling.Include, + ContractResolver = new CamelCasePropertyNamesContractResolver(), + Converters = new StringEnumConverter[] { new StringEnumConverter() } + }; + + /// + /// 設定ファイルの読み込みを行います。ファイルが存在しなかった場合、そのクラスの新規インスタンスを返します。 + /// + /// シリアライズしたクラス。 + /// ファイル名。 + /// デシリアライズ結果。 + public static T GetConfig(string filePath) where T : new() + { + var json = ""; + if (!System.IO.File.Exists(filePath)) + { + // ファイルが存在しないので + SaveConfig(new T(), filePath); + } + using (var stream = new System.IO.StreamReader(filePath, Encoding.UTF8)) + { + json = stream.ReadToEnd(); + } + return JsonConvert.DeserializeObject(json, Settings); + } + + /// + /// 設定ファイルの書き込みを行います。 + /// + /// シリアライズするインスタンス。 + /// ファイル名。 + public static void SaveConfig(object obj, string filePath) + { + using (var stream = new System.IO.StreamWriter(filePath, false, Encoding.UTF8)) + { + stream.Write(JsonConvert.SerializeObject(obj, Formatting.Indented, Settings)); + } + } + } +} diff --git a/TJAPlayer3/Common/C定数.cs b/TJAPlayer3/Common/C定数.cs new file mode 100644 index 00000000..5b5aa8e5 --- /dev/null +++ b/TJAPlayer3/Common/C定数.cs @@ -0,0 +1,774 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Runtime.InteropServices; + +namespace TJAPlayer3 +{ + + /// + /// 難易度。 + /// + public enum Difficulty + { + Easy, + Normal, + Hard, + Oni, + Edit, + Tower, + Dan, + Total + } + + public enum EScrollMode + { + Normal, + BMSCROLL, + HBSCROLL + } + public enum Eジャンル + { + None = 0, + JPOP = 1, + ゲーム = 2, + ナムコ = 3, + クラシック = 4, + バラエティ = 5, + どうよう = 6, + ボーカロイド = 7, + アニメ = 8 + } + public enum EGame + { + OFF = 0, + 完走叩ききりまショー = 1, + 完走叩ききりまショー激辛 = 2 + } + public enum E難易度表示タイプ + { + OFF = 0, + n曲目に表示 = 1, + mtaikoに画像で表示 = 2, + } + public enum Eダークモード + { + OFF, + HALF, + FULL + } + public enum EWindowMovieMode + { + OFF = 0, + 左下 = 1, + 中央下 = 2 + } + public enum Eダメージレベル + { + 少ない = 0, + 普通 = 1, + 大きい = 2 + } + public enum Eパッド // 演奏用のenum。ここを修正するときは、次に出てくる EKeyConfigPad と EパッドFlag もセットで修正すること。 + { + HH = 0, + R = 0, + SD = 1, + G = 1, + BD = 2, + B = 2, + HT = 3, + Pick = 3, + LT = 4, + Wail = 4, + FT = 5, + Cancel = 5, + CY = 6, + Decide = 6, + HHO = 7, + RD = 8, + LC = 9, + LP = 10, // #27029 2012.1.4 from + LBD = 11, + LRed = 12, + RRed = 13, + LBlue = 14, + RBlue = 15, + LRed2P = 16, + RRed2P = 17, + LBlue2P = 18, + RBlue2P = 19, + MAX, // 門番用として定義 + UNKNOWN = 99 + } + public enum EKeyConfigPad // #24609 キーコンフィグで使うenum。capture要素あり。 + { + HH = Eパッド.HH, + R = Eパッド.R, + SD = Eパッド.SD, + G = Eパッド.G, + BD = Eパッド.BD, + B = Eパッド.B, + HT = Eパッド.HT, + Pick = Eパッド.Pick, + LT = Eパッド.LT, + Wail = Eパッド.Wail, + FT = Eパッド.FT, + Cancel = Eパッド.Cancel, + CY = Eパッド.CY, + Decide = Eパッド.Decide, + HHO = Eパッド.HHO, + RD = Eパッド.RD, + LC = Eパッド.LC, + LP = Eパッド.LP, // #27029 2012.1.4 from + LBD = Eパッド.LBD, + LRed = Eパッド.LRed, + RRed = Eパッド.RRed, + LBlue = Eパッド.LBlue, + RBlue = Eパッド.RBlue, + LRed2P = Eパッド.LRed2P, + RRed2P = Eパッド.RRed2P, + LBlue2P = Eパッド.LBlue2P, + RBlue2P = Eパッド.RBlue2P, + Capture, + UNKNOWN = Eパッド.UNKNOWN + } + [Flags] + public enum EパッドFlag // #24063 2011.1.16 yyagi コマンド入力用 パッド入力のフラグ化 + { + None = 0, + HH = 1, + R = 1, + SD = 2, + G = 2, + B = 4, + BD = 4, + HT = 8, + Pick = 8, + LT = 16, + Wail = 16, + FT = 32, + Cancel = 32, + CY = 64, + Decide = 128, + HHO = 128, + RD = 256, + LC = 512, + LP = 1024, // #27029 + LBD = 2048, + LRed = 0, + RRed = 1, + LBlue = 2, + RBlue = 4, + LRed2P = 8, + RRed2P = 16, + LBlue2P = 32, + RBlue2P = 64, + UNKNOWN = 4096 + } + public enum Eランダムモード + { + OFF, + RANDOM, + MIRROR, + SUPERRANDOM, + HYPERRANDOM + } + public enum E楽器パート // ここを修正するときは、セットで次の EKeyConfigPart も修正すること。 + { + DRUMS = 0, + GUITAR = 1, + BASS = 2, + TAIKO = 3, + UNKNOWN = 99 + } + public enum EKeyConfigPart // : E楽器パート + { + DRUMS = E楽器パート.DRUMS, + GUITAR = E楽器パート.GUITAR, + BASS = E楽器パート.BASS, + TAIKO = E楽器パート.TAIKO, + SYSTEM, + UNKNOWN = E楽器パート.UNKNOWN + } + + public enum E打ち分け時の再生の優先順位 + { + ChipがPadより優先, + PadがChipより優先 + } + internal enum E入力デバイス + { + キーボード = 0, + MIDI入力 = 1, + ジョイパッド = 2, + マウス = 3, + 不明 = -1 + } + public enum E判定 + { + Perfect = 0, + Great = 1, + Good = 2, + Poor = 3, + Miss = 4, + Bad = 5, + Auto + } + internal enum E判定文字表示位置 + { + 表示OFF, + レーン上, + 判定ライン上, + コンボ下 + } + internal enum E判定位置 + { + 標準 = 0, + Lower, + MAX + } + internal enum E判定表示優先度 + { + Chipより下, + Chipより上 + } + internal enum EAVI種別 + { + Unknown, + AVI, + AVIPAN + } + internal enum EBGA種別 + { + Unknown, + BMP, + BMPTEX, + BGA, + BGAPAN + } + internal enum EFIFOモード + { + フェードイン, + フェードアウト + } + internal enum Eレーン + { + LC = 0, + HH, + SD, + BD, + HT, + LT, + FT, + CY, + LP, + RD, // 将来の独立レーン化/独立AUTO設定を見越して追加 + LBD = 10, + Guitar, // AUTOレーン判定を容易にするため、便宜上定義しておく(未使用) + Bass, // (未使用) + GtR, + GtG, + GtB, + GtPick, + GtW, + BsR, + BsG, + BsB, + BsPick, + BsW, + MAX, // 要素数取得のための定義 ("BGM"は使わない前提で) + BGM + } + internal enum Eレーン数 + { + 物理 = 8, // LC, HH, SD, BD, HT, LT, FT, CY + 論理 = 10, // LC, HO, HC, SD, BD, HT, LT, FT, RC, RD + DTXG物理 = 10, // LC, HH, LP, SD, BD, HT, LT, FT, CY, RD + DTXG論理 = 12 // LC, HO, HC, LP, LB, SD, BD, HT, LT, FT, CY, RD + } + internal enum Eログ出力 + { + OFF, + ON通常, + ON詳細あり + } + internal enum E演奏画面の戻り値 + { + 継続, + 演奏中断, + ステージ失敗, + ステージクリア, + 再読込_再演奏, + 再演奏 + } + internal enum E曲読込画面の戻り値 + { + 継続 = 0, + 読込完了, + 読込中止 + } + + public enum ENoteState + { + none, + wait, + perfect, + grade, + bad + } + + public enum E連打State + { + none, + roll, + rollB, + balloon, + potato + } + + public enum Eステルスモード + { + OFF = 0, + DORON = 1, + STEALTH = 2 + } + + /// + /// 透明チップの種類 + /// + public enum EInvisible + { + OFF, // チップを透明化しない + SEMI, // Poor/Miss時だけ、一時的に透明解除する + FULL // チップを常に透明化する + } + + /// + /// Drum/Guitar/Bass の値を扱う汎用の構造体。 + /// + /// 値の型。 + [Serializable] + [StructLayout( LayoutKind.Sequential )] + public struct STDGBVALUE // indexはE楽器パートと一致させること + { + public T Drums; + public T Guitar; + public T Bass; + public T Taiko; + public T Unknown; + public T this[ int index ] + { + get + { + switch( index ) + { + case (int) E楽器パート.DRUMS: + return this.Drums; + + case (int) E楽器パート.GUITAR: + return this.Guitar; + + case (int) E楽器パート.BASS: + return this.Bass; + + case (int) E楽器パート.TAIKO: + return this.Taiko; + + case (int) E楽器パート.UNKNOWN: + return this.Unknown; + } + throw new IndexOutOfRangeException(); + } + set + { + switch( index ) + { + case (int) E楽器パート.DRUMS: + this.Drums = value; + return; + + case (int) E楽器パート.GUITAR: + this.Guitar = value; + return; + + case (int) E楽器パート.BASS: + this.Bass = value; + return; + + case (int) E楽器パート.TAIKO: + this.Taiko = value; + return; + + case (int) E楽器パート.UNKNOWN: + this.Unknown = value; + return; + } + throw new IndexOutOfRangeException(); + } + } + } + + /// + /// レーンの値を扱う汎用の構造体。列挙型"Eドラムレーン"に準拠。 + /// + /// 値の型。 + [StructLayout( LayoutKind.Sequential )] + public struct STLANEVALUE + { + public T LC; + public T HH; + public T SD; + public T LP; + public T LBD; + public T BD; + public T HT; + public T LT; + public T FT; + public T CY; + public T RD; + public T Guitar; + public T Bass; + public T GtR; + public T GtG; + public T GtB; + public T GtPick; + public T GtW; + public T BsR; + public T BsG; + public T BsB; + public T BsPick; + public T BsW; + public T BGM; + + public T this[ int index ] + { + get + { + switch ( index ) + { + case (int) Eレーン.LC: + return this.LC; + case (int) Eレーン.HH: + return this.HH; + case (int) Eレーン.SD: + return this.SD; + case (int) Eレーン.LP: + return this.LP; + case (int) Eレーン.LBD: + return this.LBD; + case (int) Eレーン.BD: + return this.BD; + case (int) Eレーン.HT: + return this.HT; + case (int) Eレーン.LT: + return this.LT; + case (int) Eレーン.FT: + return this.FT; + case (int) Eレーン.CY: + return this.CY; + case (int) Eレーン.RD: + return this.RD; + case (int) Eレーン.Guitar: + return this.Guitar; + case (int) Eレーン.Bass: + return this.Bass; + case (int) Eレーン.GtR: + return this.GtR; + case (int) Eレーン.GtG: + return this.GtG; + case (int) Eレーン.GtB: + return this.GtB; + case (int) Eレーン.GtPick: + return this.GtPick; + case (int) Eレーン.GtW: + return this.GtW; + case (int) Eレーン.BsR: + return this.BsR; + case (int) Eレーン.BsG: + return this.BsG; + case (int) Eレーン.BsB: + return this.BsB; + case (int) Eレーン.BsPick: + return this.BsPick; + case (int) Eレーン.BsW: + return this.BsW; + } + throw new IndexOutOfRangeException(); + } + set + { + switch ( index ) + { + case (int) Eレーン.LC: + this.LC = value; + return; + case (int) Eレーン.HH: + this.HH = value; + return; + case (int) Eレーン.SD: + this.SD = value; + return; + case (int) Eレーン.LP: + this.LP = value; + return; + case (int) Eレーン.LBD: + this.LBD = value; + return; + case (int) Eレーン.BD: + this.BD = value; + return; + case (int) Eレーン.HT: + this.HT = value; + return; + case (int) Eレーン.LT: + this.LT = value; + return; + case (int) Eレーン.FT: + this.FT = value; + return; + case (int) Eレーン.CY: + this.CY = value; + return; + case (int) Eレーン.RD: + this.RD = value; + return; + case (int) Eレーン.Guitar: + this.Guitar = value; + return; + case (int) Eレーン.Bass: + this.Bass = value; + return; + case (int) Eレーン.GtR: + this.GtR = value; + return; + case (int) Eレーン.GtG: + this.GtG = value; + return; + case (int) Eレーン.GtB: + this.GtB = value; + return; + case (int) Eレーン.GtPick: + this.GtPick = value; + return; + case (int) Eレーン.GtW: + this.GtW = value; + return; + case (int) Eレーン.BsR: + this.BsR = value; + return; + case (int) Eレーン.BsG: + this.BsG = value; + return; + case (int) Eレーン.BsB: + this.BsB = value; + return; + case (int) Eレーン.BsPick: + this.BsPick = value; + return; + case (int) Eレーン.BsW: + this.BsW = value; + return; + } + throw new IndexOutOfRangeException(); + } + } + } + + + [StructLayout( LayoutKind.Sequential )] + public struct STAUTOPLAY // Eレーンとindexを一致させること + { + public bool LC; // 0 + public bool HH; // 1 + public bool SD; // 2 + public bool BD; // 3 + public bool HT; // 4 + public bool LT; // 5 + public bool FT; // 6 + public bool CY; // 7 + public bool LP; + public bool RD; // 8 + public bool LBD; + public bool Guitar; // 9 (not used) + public bool Bass; // 10 (not used) + public bool GtR; // 11 + public bool GtG; // 12 + public bool GtB; // 13 + public bool GtPick; // 14 + public bool GtW; // 15 + public bool BsR; // 16 + public bool BsG; // 17 + public bool BsB; // 18 + public bool BsPick; // 19 + public bool BsW; // 20 + public bool this[ int index ] + { + get + { + switch ( index ) + { + case (int) Eレーン.LC: + return this.LC; + case (int) Eレーン.HH: + return this.HH; + case (int) Eレーン.SD: + return this.SD; + case (int) Eレーン.BD: + return this.BD; + case (int) Eレーン.HT: + return this.HT; + case (int) Eレーン.LT: + return this.LT; + case (int) Eレーン.FT: + return this.FT; + case (int) Eレーン.CY: + return this.CY; + case (int) Eレーン.LP: + return this.LP; + case (int) Eレーン.RD: + return this.RD; + case (int) Eレーン.LBD: + return this.LBD; + case (int) Eレーン.Guitar: + if ( !this.GtR ) return false; + if ( !this.GtG ) return false; + if ( !this.GtB ) return false; + if ( !this.GtPick ) return false; + if ( !this.GtW ) return false; + return true; + case (int) Eレーン.Bass: + if ( !this.BsR ) return false; + if ( !this.BsG ) return false; + if ( !this.BsB) return false; + if ( !this.BsPick ) return false; + if ( !this.BsW ) return false; + return true; + case (int) Eレーン.GtR: + return this.GtR; + case (int) Eレーン.GtG: + return this.GtG; + case (int) Eレーン.GtB: + return this.GtB; + case (int) Eレーン.GtPick: + return this.GtPick; + case (int) Eレーン.GtW: + return this.GtW; + case (int) Eレーン.BsR: + return this.BsR; + case (int) Eレーン.BsG: + return this.BsG; + case (int) Eレーン.BsB: + return this.BsB; + case (int) Eレーン.BsPick: + return this.BsPick; + case (int) Eレーン.BsW: + return this.BsW; + } + throw new IndexOutOfRangeException(); + } + set + { + switch ( index ) + { + case (int) Eレーン.LC: + this.LC = value; + return; + case (int) Eレーン.HH: + this.HH = value; + return; + case (int) Eレーン.SD: + this.SD = value; + return; + case (int) Eレーン.BD: + this.BD = value; + return; + case (int) Eレーン.HT: + this.HT = value; + return; + case (int) Eレーン.LT: + this.LT = value; + return; + case (int) Eレーン.FT: + this.FT = value; + return; + case (int) Eレーン.CY: + this.CY = value; + return; + case (int) Eレーン.LP: + this.LP = value; + return; + case (int) Eレーン.RD: + this.RD = value; + return; + case (int) Eレーン.LBD: + this.LBD = value; + return; + case (int) Eレーン.Guitar: + this.GtR = this.GtG = this.GtB = this.GtPick = this.GtW = value; + return; + case (int) Eレーン.Bass: + this.BsR = this.BsG = this.BsB = this.BsPick = this.BsW = value; + return; + case (int) Eレーン.GtR: + this.GtR = value; + return; + case (int) Eレーン.GtG: + this.GtG = value; + return; + case (int) Eレーン.GtB: + this.GtB = value; + return; + case (int) Eレーン.GtPick: + this.GtPick = value; + return; + case (int) Eレーン.GtW: + this.GtW = value; + return; + case (int) Eレーン.BsR: + this.BsR = value; + return; + case (int) Eレーン.BsG: + this.BsG = value; + return; + case (int) Eレーン.BsB: + this.BsB = value; + return; + case (int) Eレーン.BsPick: + this.BsPick = value; + return; + case (int) Eレーン.BsW: + this.BsW = value; + return; + } + throw new IndexOutOfRangeException(); + } + } + } + + #region[Ver.K追加] + public enum Eレーンタイプ + { + TypeA, + TypeB, + TypeC, + TypeD + } + public enum Eミラー + { + TypeA, + TypeB + } + public enum EClipDispType + { + 背景のみ = 1, + ウィンドウのみ = 2, + 両方 = 3, + OFF = 0 + } + #endregion + + internal class C定数 + { + } +} diff --git a/TJAPlayer3/Common/C文字コンソール.cs b/TJAPlayer3/Common/C文字コンソール.cs new file mode 100644 index 00000000..262ee656 --- /dev/null +++ b/TJAPlayer3/Common/C文字コンソール.cs @@ -0,0 +1,128 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Drawing; +using FDK; + +namespace TJAPlayer3 +{ + internal class C文字コンソール : CActivity + { + // 定数 + + public enum Eフォント種別 + { + 白, + 赤, + 灰, + 白細, + 赤細, + 灰細 + } + public enum E配置 + { + 左詰, + 中央, + 右詰 + } + + + // メソッド + + public void tPrint( int x, int y, Eフォント種別 font, string str英数字文字列 ) + { + if( !base.b活性化してない && !string.IsNullOrEmpty( str英数字文字列 ) ) + { + int BOL = x; + for( int i = 0; i < str英数字文字列.Length; i++ ) + { + char ch = str英数字文字列[ i ]; + if( ch == '\n' ) + { + x = BOL; + y += nFontHeight; + } + else + { + int index = str表記可能文字.IndexOf( ch ); + if( index < 0 ) + { + x += nFontWidth; + } + else + { + if( this.txフォント8x16[ (int) ( (int) font / (int) Eフォント種別.白細 ) ] != null ) + { + this.txフォント8x16[ (int) ( (int) font / (int) Eフォント種別.白細 ) ].t2D描画( TJAPlayer3.app.Device, x, y, this.rc文字の矩形領域[ (int) ( (int) font % (int) Eフォント種別.白細 ), index ] ); + } + x += nFontWidth; + } + } + } + } + } + + + // CActivity 実装 + + public override void On活性化() + { + this.rc文字の矩形領域 = new Rectangle[3, str表記可能文字.Length ]; + for( int i = 0; i < 3; i++ ) + { + for (int j = 0; j < str表記可能文字.Length; j++) + { + const int regionX = 128, regionY = 16; + this.rc文字の矩形領域[ i, j ].X = ( ( i / 2 ) * regionX ) + ( ( j % regionY ) * nFontWidth ); + this.rc文字の矩形領域[ i, j ].Y = ( ( i % 2 ) * regionX ) + ( ( j / regionY ) * nFontHeight ); + this.rc文字の矩形領域[ i, j ].Width = nFontWidth; + this.rc文字の矩形領域[ i, j ].Height = nFontHeight; + } + } + base.On活性化(); + } + public override void On非活性化() + { + if( this.rc文字の矩形領域 != null ) + this.rc文字の矩形領域 = null; + + base.On非活性化(); + } + public override void OnManagedリソースの作成() + { + if( !base.b活性化してない ) + { + this.txフォント8x16[ 0 ] = TJAPlayer3.Tx.TxC(@"Console_Font.png"); + this.txフォント8x16[ 1 ] = TJAPlayer3.Tx.TxC(@"Console_Font_Small.png"); + base.OnManagedリソースの作成(); + } + } + public override void OnManagedリソースの解放() + { + if( !base.b活性化してない ) + { + for( int i = 0; i < 2; i++ ) + { + if( this.txフォント8x16[ i ] != null ) + { + this.txフォント8x16[ i ].Dispose(); + this.txフォント8x16[ i ] = null; + } + } + base.OnManagedリソースの解放(); + } + } + + + // その他 + + #region [ private ] + //----------------- + private Rectangle[,] rc文字の矩形領域; + private const string str表記可能文字 = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ "; + private const int nFontWidth = 8, nFontHeight = 16; + private CTexture[] txフォント8x16 = new CTexture[ 2 ]; + //----------------- + #endregion + } +} diff --git a/TJAPlayer3/Common/Discord.cs b/TJAPlayer3/Common/Discord.cs new file mode 100644 index 00000000..d806ba8c --- /dev/null +++ b/TJAPlayer3/Common/Discord.cs @@ -0,0 +1,180 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Runtime.InteropServices; +using System.Text; + +namespace TJAPlayer3 +{ + public static class DiscordRpc + { + [UnmanagedFunctionPointer(CallingConvention.Cdecl, CharSet = CharSet.Auto)] + public delegate void ReadyCallback(); + + [UnmanagedFunctionPointer(CallingConvention.Cdecl, CharSet = CharSet.Auto)] + public delegate void DisconnectedCallback(int errorCode, string message); + + [UnmanagedFunctionPointer(CallingConvention.Cdecl, CharSet = CharSet.Auto)] + public delegate void ErrorCallback(int errorCode, string message); + + public struct EventHandlers + { + public ReadyCallback readyCallback; + public DisconnectedCallback disconnectedCallback; + public ErrorCallback errorCallback; + } + + [Serializable, StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)] + public struct RichPresence + { + public IntPtr state; + public IntPtr details; + public long startTimestamp; + public long endTimestamp; + public IntPtr largeImageKey; + public IntPtr largeImageText; + public IntPtr smallImageKey; + public IntPtr smallImageText; + public IntPtr partyId; + public int partySize; + public int partyMax; + public IntPtr matchSecret; + public IntPtr joinSecret; + public IntPtr spectateSecret; + public bool instance; + } + + [DllImport("discord-rpc", EntryPoint = "Discord_Initialize", CallingConvention = CallingConvention.Cdecl)] + public static extern void Initialize(string applicationId, ref EventHandlers handlers, bool autoRegister, string optionalSteamId); + + [DllImport("discord-rpc", EntryPoint = "Discord_Shutdown", CallingConvention = CallingConvention.Cdecl)] + public static extern void Shutdown(); + + [DllImport("discord-rpc", EntryPoint = "Discord_RunCallbacks", CallingConvention = CallingConvention.Cdecl)] + public static extern void RunCallbacks(); + + [DllImport("discord-rpc", EntryPoint = "Discord_UpdatePresence", CallingConvention = CallingConvention.Cdecl)] + public static extern void UpdatePresence(ref RichPresence presence); + + [DllImport("discord-rpc", EntryPoint = "Discord_ClearPresence", CallingConvention = CallingConvention.Cdecl)] + public static extern void ClearPresence(); + + [DllImport("discord-rpc", EntryPoint = "Discord_UpdateHandlers", CallingConvention = CallingConvention.Cdecl)] + public static extern void UpdateHandlers(ref EventHandlers handlers); + } + + public static class Discord + { + + private static readonly List _buffers = new List(10); + + /// + /// Discord Rich Presenceの初期化をします。 + /// + /// Discord APIのクライアントID。 + public static void Initialize(string clientId) + { + var handlers = new DiscordRpc.EventHandlers(); + handlers.readyCallback = ReadyCallback; + handlers.disconnectedCallback += DisconnectedCallback; + handlers.errorCallback += ErrorCallback; + + DiscordRpc.Initialize(clientId, ref handlers, true, null); + + } + + /// + /// Discord Rich Presenceの更新をします。 + /// + /// 現在の説明。 + /// 現在の状態。 + /// 開始時間(Unix時間) + /// 終了時間(Unix時間) + /// 小さなアイコン用キー。 + /// 小さなアイコンのツールチップに表示するテキスト。 + public static void UpdatePresence(string details, string state, long startTimeStamp = 0, long endTimeStamp = 0, string smallImageKey = null, string smallImageText = null) + { + var presence = new DiscordRpc.RichPresence(); + presence.details = StrToPtr(details); + presence.state = StrToPtr(state); + + if (startTimeStamp != 0) presence.startTimestamp = startTimeStamp; + if (endTimeStamp != 0) presence.endTimestamp = endTimeStamp; + presence.largeImageKey = StrToPtr("rewrite"); + presence.largeImageText = StrToPtr("Ver." + TJAPlayer3.VERSION); + if (!string.IsNullOrEmpty(smallImageKey)) presence.smallImageKey = StrToPtr(smallImageKey); + if (!string.IsNullOrEmpty(smallImageText)) presence.smallImageText = StrToPtr(smallImageText); + + DiscordRpc.UpdatePresence(ref presence); + FreeMem(); + } + + /// + /// Discord Rich Presenceのシャットダウンを行います。 + /// 終了時に必ず呼び出す必要があります。 + /// + public static void Shutdown() + { + DiscordRpc.Shutdown(); + Trace.TraceInformation("[Discord] Shutdowned."); + } + + private static void ReadyCallback() + { + Trace.TraceInformation("[Discord] Ready."); + } + + /// + /// Discordとの接続が切断された場合呼び出されます。 + /// + /// エラーコード。 + /// エラーメッセージ。 + private static void DisconnectedCallback(int errorCode, string message) + { + Trace.TraceInformation("[Discord] Disconnected."); + } + + /// + /// Discordとの接続でエラーが発生した場合呼び出されます。 + /// + /// エラーコード。 + /// エラーメッセージ。 + private static void ErrorCallback(int errorCode, string message) + { + Trace.TraceInformation("[Discord] Error occured: {0} {1}", errorCode, message); + } + + // string型の文字列をポインタで参照させるようにするためのメソッド。 + private static IntPtr StrToPtr(string input) + { + if (string.IsNullOrEmpty(input)) return IntPtr.Zero; + var convbytecnt = Encoding.UTF8.GetByteCount(input); + var buffer = Marshal.AllocHGlobal(convbytecnt + 1); + for (int i = 0; i < convbytecnt + 1; i++) + { + Marshal.WriteByte(buffer, i, 0); + } + _buffers.Add(buffer); + Marshal.Copy(Encoding.UTF8.GetBytes(input), 0, buffer, convbytecnt); + return buffer; + } + + internal static void FreeMem() + { + for (var i = _buffers.Count - 1; i >= 0; i--) + { + Marshal.FreeHGlobal(_buffers[i]); + _buffers.RemoveAt(i); + } + } + + /// + /// 現在のUnix時間をlong型で返します。 + /// + /// Unix時間。 + public static long GetUnixTime() + { + return (long)(DateTime.UtcNow - new DateTime(1970, 1, 1)).Ticks / 10000000; + } + } +} diff --git a/TJAPlayer3/Common/Easing.cs b/TJAPlayer3/Common/Easing.cs new file mode 100644 index 00000000..dc863fea --- /dev/null +++ b/TJAPlayer3/Common/Easing.cs @@ -0,0 +1,117 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using TJAPlayer3; +using FDK; + +namespace TJAPlayer3 +{ + class Easing + { + public int EaseIn(CCounter counter, int startPoint, int endPoint, CalcType type) + { + StartPoint = startPoint; + EndPoint = endPoint; + Sa = EndPoint - StartPoint; + TimeMs = (int)counter.n終了値; + Type = type; + CounterValue = counter.n現在の値; + + switch (Type) + { + case CalcType.Quadratic: //Quadratic + CounterValue /= TimeMs; + Value = Sa * CounterValue * CounterValue + StartPoint; + break; + case CalcType.Cubic: //Cubic + CounterValue /= TimeMs; + Value = Sa * CounterValue * CounterValue * CounterValue + StartPoint; + break; + case CalcType.Quartic: //Quartic + CounterValue /= TimeMs; + Value = Sa * CounterValue * CounterValue * CounterValue * CounterValue + StartPoint; + break; + case CalcType.Quintic: //Quintic + CounterValue /= TimeMs; + Value = Sa * CounterValue * CounterValue * CounterValue * CounterValue * CounterValue + StartPoint; + break; + case CalcType.Sinusoidal: //Sinusoidal + Value = -Sa * Math.Cos(CounterValue / TimeMs * (Math.PI / 2)) + Sa + StartPoint; + break; + case CalcType.Exponential: //Exponential + Value = Sa * Math.Pow(2, 10 * (CounterValue / TimeMs - 1)) + StartPoint; + break; + case CalcType.Circular: //Circular + CounterValue /= TimeMs; + Value = -Sa * (Math.Sqrt(1 - CounterValue * CounterValue) - 1) + StartPoint; + break; + } + + return (int)Value; + } + public int EaseOut(CCounter counter, int startPoint, int endPoint, CalcType type) + { + StartPoint = startPoint; + EndPoint = endPoint; + Sa = EndPoint - StartPoint; + TimeMs = (int)counter.n終了値; + Type = type; + CounterValue = counter.n現在の値; + + switch (Type) + { + case CalcType.Quadratic: //Quadratic + CounterValue /= TimeMs; + Value = -Sa * CounterValue * (CounterValue - 2) + StartPoint; + break; + case CalcType.Cubic: //Cubic + CounterValue /= TimeMs; + CounterValue--; + Value = Sa * (CounterValue * CounterValue * CounterValue + 1) + StartPoint; + break; + case CalcType.Quartic: //Quartic + CounterValue /= TimeMs; + CounterValue--; + Value = -Sa * (CounterValue * CounterValue * CounterValue * CounterValue - 1) + StartPoint; + break; + case CalcType.Quintic: //Quintic + CounterValue /= TimeMs; + CounterValue--; + Value = Sa * (CounterValue * CounterValue * CounterValue * CounterValue * CounterValue + 1) + StartPoint; + break; + case CalcType.Sinusoidal: //Sinusoidal + Value = Sa * Math.Sin(CounterValue / TimeMs * (Math.PI / 2)) + StartPoint; + break; + case CalcType.Exponential: //Exponential + Value = Sa * (-Math.Pow(2, -10 * CounterValue / TimeMs) + 1) + StartPoint; + break; + case CalcType.Circular: //Circular + CounterValue /= TimeMs; + CounterValue--; + Value = Sa * Math.Sqrt(1 - CounterValue * CounterValue) + StartPoint; + break; + } + + return (int)Value; + } + + private int StartPoint; + private int EndPoint; + private int Sa; + private int TimeMs; + private CalcType Type; + private double CounterValue; + private double Value; + public enum CalcType + { + Quadratic, + Cubic, + Quartic, + Quintic, + Sinusoidal, + Exponential, + Circular + } + } +} \ No newline at end of file diff --git a/TJAPlayer3/Common/KeyboardSoundGroupLevelControlHandler.cs b/TJAPlayer3/Common/KeyboardSoundGroupLevelControlHandler.cs new file mode 100644 index 00000000..10c24063 --- /dev/null +++ b/TJAPlayer3/Common/KeyboardSoundGroupLevelControlHandler.cs @@ -0,0 +1,63 @@ +using FDK; + +namespace TJAPlayer3 +{ + /// + /// KeyboardSoundGroupLevelControlHandler is called by the song selection + /// and song play stages when handling keyboard input. By delegating to + /// this class they are able to support a centrally-managed and consistent + /// set of keyboard shortcuts for dynamically adjusting four sound group + /// levels: + /// - sound effect level, via Ctrl and either of the Minus or Equals keys + /// - voice level, via Shift and either of the Minus or Equals keys + /// - song preview and song playback level, via the Minus or Equals key + /// + /// When the sound group levels are adjusted in this manner, the + /// SoundGroupLevelController (and handlers bound to its events) ensure + /// that both the sound object group levels are updated and the application + /// configuration is updated. See ConfigIniToSoundGroupLevelControllerBinder + /// for more details on the latter. + /// + internal static class KeyboardSoundGroupLevelControlHandler + { + internal static void Handle( + IInputDevice keyboard, + SoundGroupLevelController soundGroupLevelController, + CSkin skin, + bool isSongPreview) + { + var isAdjustmentPositive = keyboard.bキーが押された((int)SlimDXKeys.Key.RightBracket); + if (!(isAdjustmentPositive || keyboard.bキーが押された((int)SlimDXKeys.Key.LeftBracket))) + { + return; + } + + ESoundGroup soundGroup; + CSkin.Cシステムサウンド システムサウンド = null; + + if (keyboard.bキーが押されている((int)SlimDXKeys.Key.LeftControl) || + keyboard.bキーが押されている((int)SlimDXKeys.Key.RightControl)) + { + soundGroup = ESoundGroup.SoundEffect; + システムサウンド = skin.sound決定音; + } + else if (keyboard.bキーが押されている((int)SlimDXKeys.Key.LeftShift) || + keyboard.bキーが押されている((int)SlimDXKeys.Key.RightShift)) + { + soundGroup = ESoundGroup.Voice; + システムサウンド = skin.soundゲーム開始音; + } + else if (isSongPreview) + { + soundGroup = ESoundGroup.SongPlayback; + } + else + { + soundGroup = ESoundGroup.SongPlayback; + } + + soundGroupLevelController.AdjustLevel(soundGroup, isAdjustmentPositive); + システムサウンド?.t再生する(); + } + } +} diff --git a/TJAPlayer3/Common/NamePlateConfig.cs b/TJAPlayer3/Common/NamePlateConfig.cs new file mode 100644 index 00000000..bd26bf80 --- /dev/null +++ b/TJAPlayer3/Common/NamePlateConfig.cs @@ -0,0 +1,35 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace TJAPlayer3 +{ + class NamePlateConfig + { + public void tNamePlateConfig() + { + if (!File.Exists("NamePlate.json")) + ConfigManager.SaveConfig(data, "NamePlate.json"); + + data = ConfigManager.GetConfig(@"NamePlate.json"); + } + + public class Data + { + public string[] Name = { "どんちゃん", "かっちゃん" }; + public string[] Title = { "どんちゃんですよ!", "かっちゃんですよ!" }; + public string[] Dan = { "達人", "達人" }; + + public bool[] DanGold = { false, true }; + + public int[] DanType = { 1, 2 }; + public int[] TitleType = { 1, 2 }; + } + + public Data data = new Data(); + } +} diff --git a/TJAPlayer3/Common/Program.cs b/TJAPlayer3/Common/Program.cs new file mode 100644 index 00000000..34237244 --- /dev/null +++ b/TJAPlayer3/Common/Program.cs @@ -0,0 +1,244 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Text; +using System.Runtime.InteropServices; +using System.Threading; +using System.Diagnostics; +using System.Windows.Forms; +using System.IO; +using FDK; +using System.Reflection; + +namespace TJAPlayer3 +{ + internal class Program + { + #region [ 二重起動チェック、DLL存在チェック ] + //----------------------------- + private static Mutex mutex二重起動防止用; + + private static bool tDLLの存在チェック( string strDll名, string str存在しないときに表示するエラー文字列jp, string str存在しないときに表示するエラー文字列en, bool bLoadDllCheck ) + { + string str存在しないときに表示するエラー文字列 = ( CultureInfo.CurrentUICulture.TwoLetterISOLanguageName == "ja" ) ? + str存在しないときに表示するエラー文字列jp : str存在しないときに表示するエラー文字列en; + if ( bLoadDllCheck ) + { + IntPtr hModule = LoadLibrary( strDll名 ); // 実際にLoadDll()してチェックする + if ( hModule == IntPtr.Zero ) + { + MessageBox.Show( str存在しないときに表示するエラー文字列, "DTXMania runtime error", MessageBoxButtons.OK, MessageBoxIcon.Hand ); + return false; + } + FreeLibrary( hModule ); + } + else + { // 単純にファイルの存在有無をチェックするだけ (プロジェクトで「参照」していたり、アンマネージドなDLLが暗黙リンクされるものはこちら) + string path = Path.Combine( System.IO.Directory.GetCurrentDirectory(), strDll名 ); + if ( !File.Exists( path ) ) + { + MessageBox.Show( str存在しないときに表示するエラー文字列, "DTXMania runtime error", MessageBoxButtons.OK, MessageBoxIcon.Hand ); + return false; + } + } + return true; + } + private static bool tDLLの存在チェック( string strDll名, string str存在しないときに表示するエラー文字列jp, string str存在しないときに表示するエラー文字列en ) + { + return true; + //return tDLLの存在チェック( strDll名, str存在しないときに表示するエラー文字列jp, str存在しないときに表示するエラー文字列en, false ); + } + + #region [DllImport] + [DllImport( "kernel32", CharSet = CharSet.Unicode, SetLastError = true )] + internal static extern void FreeLibrary( IntPtr hModule ); + + [DllImport( "kernel32", CharSet = CharSet.Unicode, SetLastError = true )] + internal static extern IntPtr LoadLibrary( string lpFileName ); + #endregion + //----------------------------- + #endregion + + [STAThread] + static void Main() + { + mutex二重起動防止用 = new Mutex( false, "DTXManiaMutex" ); + + if ( mutex二重起動防止用.WaitOne( 0, false ) ) + { + string newLine = Environment.NewLine; + bool bDLLnotfound = false; + + Trace.WriteLine( "Current Directory: " + Environment.CurrentDirectory ); + Trace.WriteLine( "EXEのあるフォルダ: " + Path.GetDirectoryName( Application.ExecutablePath ) ); + + Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture; + + + #region [DLLの存在チェック] + if ( !tDLLの存在チェック( "dll\\SlimDX" + TJAPlayer3.SLIMDXDLL + ".dll", + "SlimDX" + TJAPlayer3.SLIMDXDLL + ".dll またはその依存するdllが存在しません。" + newLine + "DTXManiaをダウンロードしなおしてください。", + "SlimDX" + TJAPlayer3.SLIMDXDLL + ".dll, or its depended DLL, is not found." + newLine + "Please download DTXMania again." + ) ) bDLLnotfound = true; + if ( !tDLLの存在チェック( "dll\\FDK.dll", + "FDK.dll またはその依存するdllが存在しません。" + newLine + "DTXManiaをダウンロードしなおしてください。", + "FDK.dll, or its depended DLL, is not found." + newLine + "Please download DTXMania again." + ) ) bDLLnotfound = true; + if ( !tDLLの存在チェック( "dll\\xadec.dll", + "xadec.dll が存在しません。" + newLine + "DTXManiaをダウンロードしなおしてください。", + "xadec.dll is not found." + newLine + "Please download DTXMania again." + ) ) bDLLnotfound = true; + if ( !tDLLの存在チェック( "dll\\SoundDecoder.dll", + "SoundDecoder.dll またはその依存するdllが存在しません。" + newLine + "DTXManiaをダウンロードしなおしてください。", + "SoundDecoder.dll, or its depended DLL, is not found." + newLine + "Please download DTXMania again." + ) ) bDLLnotfound = true; + if ( !tDLLの存在チェック( TJAPlayer3.D3DXDLL, + TJAPlayer3.D3DXDLL + " が存在しません。" + newLine + "DirectX Redist フォルダの DXSETUP.exe を実行し、" + newLine + "必要な DirectX ランタイムをインストールしてください。", + TJAPlayer3.D3DXDLL + " is not found." + newLine + "Please execute DXSETUP.exe in \"DirectX Redist\" folder, to install DirectX runtimes required for DTXMania.", + true + ) ) bDLLnotfound = true; + if ( !tDLLの存在チェック( "dll\\bass.dll", + "bass.dll が存在しません。" + newLine + "DTXManiaをダウンロードしなおしてください。", + "baas.dll is not found." + newLine + "Please download DTXMania again." + ) ) bDLLnotfound = true; + if ( !tDLLの存在チェック( "dll\\Bass.Net.dll", + "Bass.Net.dll が存在しません。" + newLine + "DTXManiaをダウンロードしなおしてください。", + "Bass.Net.dll is not found." + newLine + "Please download DTXMania again." + ) ) bDLLnotfound = true; + if ( !tDLLの存在チェック( "dll\\bassmix.dll", + "bassmix.dll を読み込めません。bassmix.dll か bass.dll が存在しません。" + newLine + "DTXManiaをダウンロードしなおしてください。", + "bassmix.dll is not loaded. bassmix.dll or bass.dll must not exist." + newLine + "Please download DTXMania again." + ) ) bDLLnotfound = true; + if ( !tDLLの存在チェック( "dll\\bassasio.dll", + "bassasio.dll を読み込めません。bassasio.dll か bass.dll が存在しません。" + newLine + "DTXManiaをダウンロードしなおしてください。", + "bassasio.dll is not loaded. bassasio.dll or bass.dll must not exist." + newLine + "Please download DTXMania again." + ) ) bDLLnotfound = true; + if ( !tDLLの存在チェック( "dll\\basswasapi.dll", + "basswasapi.dll を読み込めません。basswasapi.dll か bass.dll が存在しません。" + newLine + "DTXManiaをダウンロードしなおしてください。", + "basswasapi.dll is not loaded. basswasapi.dll or bass.dll must not exist." + newLine + "Please download DTXMania again." + ) ) bDLLnotfound = true; + if ( !tDLLの存在チェック( "dll\\bass_fx.dll", + "bass_fx.dll を読み込めません。bass_fx.dll か bass.dll が存在しません。" + newLine + "DTXManiaをダウンロードしなおしてください。", + "bass_fx.dll is not loaded. bass_fx.dll or bass.dll must not exist." + newLine + "Please download DTXMania again." + ) ) bDLLnotfound = true; + if ( !tDLLの存在チェック( "dll\\DirectShowLib-2005.dll", + "DirectShowLib-2005.dll が存在しません。" + newLine + "DTXManiaをダウンロードしなおしてください。", + "DirectShowLib-2005.dll is not found." + newLine + "Please download DTXMania again." + ) ) bDLLnotfound = true; + #endregion + if ( !bDLLnotfound ) + { +#if DEBUG && TEST_ENGLISH + Thread.CurrentThread.CurrentCulture = new CultureInfo( "en-US" ); +#endif + + DWM.EnableComposition( false ); // Disable AeroGrass temporally + + // BEGIN #23670 2010.11.13 from: キャッチされない例外は放出せずに、ログに詳細を出力する。 + // BEGIM #24606 2011.03.08 from: DEBUG 時は例外発生箇所を直接デバッグできるようにするため、例外をキャッチしないようにする。 +#if !DEBUG + try +#endif + { + using ( var mania = new TJAPlayer3() ) + mania.Run(); + + Trace.WriteLine( "" ); + Trace.WriteLine( "遊んでくれてありがとう!" ); + } +#if !DEBUG + catch( Exception e ) + { + Trace.WriteLine( "" ); + Trace.Write( e.ToString() ); + Trace.WriteLine( "" ); + Trace.WriteLine( "エラーだゴメン!(涙" ); + AssemblyName asmApp = Assembly.GetExecutingAssembly().GetName(); + MessageBox.Show( "エラーが発生しました。\n" + + e.ToString(), asmApp.Name + " Ver." + asmApp.Version.ToString().Substring(0, asmApp.Version.ToString().Length - 2) + " Error", MessageBoxButtons.OK, MessageBoxIcon.Error ); // #23670 2011.2.28 yyagi to show error dialog + } +#endif + // END #24606 2011.03.08 from + // END #23670 2010.11.13 from + + if ( Trace.Listeners.Count > 1 ) + Trace.Listeners.RemoveAt( 1 ); + } + + // BEGIN #24615 2011.03.09 from: Mutex.WaitOne() が true を返した場合は、Mutex のリリースが必要である。 + + mutex二重起動防止用.ReleaseMutex(); + mutex二重起動防止用 = null; + + // END #24615 2011.03.09 from + } + else // DTXManiaが既に起動中 + { + + // → 引数が0個の時はそのまま終了 + // 1個( コンパクトモード or DTXV -S) か2個 (DTXV -Nxxx ファイル名)のときは、そのプロセスにコマンドラインを丸々投げて終了する + + for ( int i = 0; i < 5; i++ ) // 検索結果のハンドルがZeroになることがあるので、200ms間隔で5回リトライする + { + #region [ 既に起動中のDTXManiaプロセスを検索する。] + // このやり方だと、ShowInTaskbar=falseでタスクバーに表示されないパターンの時に検索に失敗するようだが + // DTXManiaでそのパターンはない?のでこのままいく。 + // FindWindowを使えばこのパターンにも対応できるが、C#でビルドするアプリはウインドウクラス名を自前指定できないので、これは使わない。 + + Process current = Process.GetCurrentProcess(); + Process[] running = Process.GetProcessesByName( current.ProcessName ); + Process target = null; + //IntPtr hWnd = FindWindow( null, "DTXMania .NET style release " + CDTXMania.VERSION ); + + foreach ( Process p in running ) + { + if ( p.Id != current.Id ) // プロセス名は同じでかつ、プロセスIDが自分自身とは異なるものを探す + { + if ( p.MainModule.FileName == current.MainModule.FileName && p.MainWindowHandle != IntPtr.Zero ) + { + target = p; + break; + } + } + } + #endregion + + #region [ 起動中のDTXManiaがいれば、そのプロセスにコマンドラインを投げる ] + if ( target != null ) + { + string[] commandLineArgs = Environment.GetCommandLineArgs(); + if ( commandLineArgs != null && commandLineArgs.Length > 1 ) + { + string arg = null; + for ( int j = 1; j < commandLineArgs.Length; j++ ) + { + if ( j == 1 ) + { + arg += commandLineArgs[ j ]; + } + else + { + arg += " " + "\"" + commandLineArgs[ j ] + "\""; + } + } + +//Trace.TraceInformation( "Message=" + arg + ", len(w/o null)=" + arg.Length ); + + if ( arg != null ) + { + FDK.CSendMessage.sendmessage( target.MainWindowHandle, current.MainWindowHandle, arg ); + } + } + break; + } + #endregion + else + { + Trace.TraceInformation( "メッセージ送信先のプロセスが見つからず。5回リトライします。" ); + Thread.Sleep( 200 ); + } + } + } + } + } +} diff --git a/TJAPlayer3/Common/TJAPlayer3.cs b/TJAPlayer3/Common/TJAPlayer3.cs new file mode 100644 index 00000000..628cbefd --- /dev/null +++ b/TJAPlayer3/Common/TJAPlayer3.cs @@ -0,0 +1,2990 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Text; +using System.Windows.Forms; +using System.Drawing; +using System.Diagnostics; +using System.IO; +using System.Threading; +using System.Net.NetworkInformation; +using System.Runtime.Serialization.Formatters.Binary; +using SlimDX; +using SlimDX.Direct3D9; +using FDK; +using SampleFramework; +using System.Reflection; +using System.Threading.Tasks; +using System.Linq; + +namespace TJAPlayer3 +{ + internal class TJAPlayer3 : Game + { + // プロパティ + #region [ properties ] + public static readonly string VERSION = Assembly.GetExecutingAssembly().GetName().Version.ToString().Substring(0, Assembly.GetExecutingAssembly().GetName().Version.ToString().Length - 2); + public static readonly string AppDisplayThreePartVersion = GetAppDisplayThreePartVersion(); + public static readonly string AppNumericThreePartVersion = GetAppNumericThreePartVersion(); + + private static string GetAppDisplayThreePartVersion() + { + return $"v{GetAppNumericThreePartVersion()}"; + } + + private static string GetAppNumericThreePartVersion() + { + var version = Assembly.GetExecutingAssembly().GetName().Version; + + return $"{version.Major}.{version.Minor}.{version.Build}"; + } + + public static readonly string AppInformationalVersion = + Assembly + .GetExecutingAssembly() + .GetCustomAttributes(typeof(AssemblyInformationalVersionAttribute), false) + .Cast() + .FirstOrDefault() + ?.InformationalVersion + ?? $"{GetAppDisplayThreePartVersion()} (unknown informational version)"; + public static readonly string SLIMDXDLL = "c_net20x86_Jun2010"; + public static readonly string D3DXDLL = "d3dx9_43.dll"; // June 2010 + //public static readonly string D3DXDLL = "d3dx9_42.dll"; // February 2010 + //public static readonly string D3DXDLL = "d3dx9_41.dll"; // March 2009 + + public static TJAPlayer3 app + { + get; + private set; + } + public static C文字コンソール act文字コンソール + { + get; + private set; + } + public static bool bコンパクトモード + { + get; + private set; + } + public static CConfigIni ConfigIni + { + get; + private set; + } + public static CDTX DTX + { + get + { + return dtx[ 0 ]; + } + set + { + if( ( dtx[ 0 ] != null ) && ( app != null ) ) + { + dtx[ 0 ].On非活性化(); + app.listトップレベルActivities.Remove( dtx[ 0 ] ); + } + dtx[ 0 ] = value; + if( ( dtx[ 0 ] != null ) && ( app != null ) ) + { + app.listトップレベルActivities.Add( dtx[ 0 ] ); + } + } + } + public static CDTX DTX_2P + { + get + { + return dtx[ 1 ]; + } + set + { + if( ( dtx[ 1 ] != null ) && ( app != null ) ) + { + dtx[ 1 ].On非活性化(); + app.listトップレベルActivities.Remove( dtx[ 1 ] ); + } + dtx[ 1 ] = value; + if( ( dtx[ 1 ] != null ) && ( app != null ) ) + { + app.listトップレベルActivities.Add( dtx[ 1 ] ); + } + } + } + + public static bool IsPerformingCalibration; + + public static CFPS FPS + { + get; + private set; + } + public static CInput管理 Input管理 + { + get; + private set; + } + #region [ 入力範囲ms ] + public static int nPerfect範囲ms + { + get + { + if( stage選曲.r確定された曲 != null ) + { + C曲リストノード c曲リストノード = stage選曲.r確定された曲.r親ノード; + if( ( ( c曲リストノード != null ) && ( c曲リストノード.eノード種別 == C曲リストノード.Eノード種別.BOX ) ) && ( c曲リストノード.nPerfect範囲ms >= 0 ) ) + { + return c曲リストノード.nPerfect範囲ms; + } + } + return ConfigIni.nヒット範囲ms.Perfect; + } + } + public static int nGreat範囲ms + { + get + { + if( stage選曲.r確定された曲 != null ) + { + C曲リストノード c曲リストノード = stage選曲.r確定された曲.r親ノード; + if( ( ( c曲リストノード != null ) && ( c曲リストノード.eノード種別 == C曲リストノード.Eノード種別.BOX ) ) && ( c曲リストノード.nGreat範囲ms >= 0 ) ) + { + return c曲リストノード.nGreat範囲ms; + } + } + return ConfigIni.nヒット範囲ms.Great; + } + } + public static int nGood範囲ms + { + get + { + if( stage選曲.r確定された曲 != null ) + { + C曲リストノード c曲リストノード = stage選曲.r確定された曲.r親ノード; + if( ( ( c曲リストノード != null ) && ( c曲リストノード.eノード種別 == C曲リストノード.Eノード種別.BOX ) ) && ( c曲リストノード.nGood範囲ms >= 0 ) ) + { + return c曲リストノード.nGood範囲ms; + } + } + return ConfigIni.nヒット範囲ms.Good; + } + } + public static int nPoor範囲ms + { + get + { + if( stage選曲.r確定された曲 != null ) + { + C曲リストノード c曲リストノード = stage選曲.r確定された曲.r親ノード; + if( ( ( c曲リストノード != null ) && ( c曲リストノード.eノード種別 == C曲リストノード.Eノード種別.BOX ) ) && ( c曲リストノード.nPoor範囲ms >= 0 ) ) + { + return c曲リストノード.nPoor範囲ms; + } + } + return ConfigIni.nヒット範囲ms.Poor; + } + } + #endregion + public static CPad Pad + { + get; + private set; + } + public static Random Random + { + get; + private set; + } + public static CSkin Skin + { + get; + private set; + } + public static CSongs管理 Songs管理 + { + get; + set; // 2012.1.26 yyagi private解除 CStage起動でのdesirialize読み込みのため + } + public static CEnumSongs EnumSongs + { + get; + private set; + } + public static CActEnumSongs actEnumSongs + { + get; + private set; + } + public static CActScanningLoudness actScanningLoudness + { + get; + private set; + } + public static CActFlushGPU actFlushGPU + { + get; + private set; + } + + public static CSound管理 Sound管理 + { + get; + private set; + } + + public static SongGainController SongGainController + { + get; + private set; + } + + public static SoundGroupLevelController SoundGroupLevelController + { + get; + private set; + } + + public static CNamePlate NamePlate + { + get; + private set; + } + + public static NamePlateConfig NamePlateConfig + { + get; + private set; + } + + public static CStage起動 stage起動 + { + get; + private set; + } + public static CStageタイトル stageタイトル + { + get; + private set; + } +// public static CStageオプション stageオプション +// { +// get; +// private set; +// } + public static CStageコンフィグ stageコンフィグ + { + get; + private set; + } + public static CStage選曲 stage選曲 + { + get; + private set; + } + public static CStage段位選択 stage段位選択 + { + get; + private set; + } + public static CStage曲読み込み stage曲読み込み + { + get; + private set; + } + public static CStage演奏ドラム画面 stage演奏ドラム画面 + { + get; + private set; + } + public static CStage結果 stage結果 + { + get; + private set; + } + public static CStageChangeSkin stageChangeSkin + { + get; + private set; + } + public static CStage終了 stage終了 + { + get; + private set; + } + public static CStage r現在のステージ = null; + public static CStage r直前のステージ = null; + public static string strEXEのあるフォルダ + { + get; + private set; + } + public static string strコンパクトモードファイル + { + get; + private set; + } + public static CTimer Timer + { + get; + private set; + } + public static Format TextureFormat = Format.A8R8G8B8; + internal static IPluginActivity act現在入力を占有中のプラグイン = null; + public bool bApplicationActive + { + get; + private set; + } + public bool b次のタイミングで垂直帰線同期切り替えを行う + { + get; + set; + } + public bool b次のタイミングで全画面_ウィンドウ切り替えを行う + { + get; + set; + } + public DeviceCache Device + { + get { return base.GraphicsDeviceManager.Direct3D9.Device; } + } + public CPluginHost PluginHost + { + get; + private set; + } + public List listプラグイン = new List(); + public struct STPlugin + { + public IPluginActivity plugin; + public string strプラグインフォルダ; + public string strアセンブリ簡易名; + public Version Version; + } + private static Size currentClientSize // #23510 2010.10.27 add yyagi to keep current window size + { + get; + set; + } + // public static CTimer ct; + public IntPtr WindowHandle // 2012.10.24 yyagi; to add ASIO support + { + get { return base.Window.Handle; } + } + public static CDTXVmode DTXVmode // #28821 2014.1.23 yyagi + { + get; + set; + } + + #endregion + + // コンストラクタ + + public TJAPlayer3() + { + TJAPlayer3.app = this; + this.t起動処理(); + } + + + // メソッド + + public void t全画面_ウィンドウモード切り替え() + { +#if WindowedFullscreen + if ( ConfigIni != null ) +#else + DeviceSettings settings = base.GraphicsDeviceManager.CurrentSettings.Clone(); + if ( ( ConfigIni != null ) && ( ConfigIni.bウィンドウモード != settings.Windowed ) ) +#endif + { +#if !WindowedFullscreen + settings.Windowed = ConfigIni.bウィンドウモード; +#endif + if ( ConfigIni.bウィンドウモード == false ) // #23510 2010.10.27 yyagi: backup current window size before going fullscreen mode + { + currentClientSize = this.Window.ClientSize; + ConfigIni.nウインドウwidth = this.Window.ClientSize.Width; + ConfigIni.nウインドウheight = this.Window.ClientSize.Height; +// FDK.CTaskBar.ShowTaskBar( false ); + } +#if !WindowedFullscreen + base.GraphicsDeviceManager.ChangeDevice( settings ); +#endif + if ( ConfigIni.bウィンドウモード == true ) // #23510 2010.10.27 yyagi: to resume window size from backuped value + { +#if WindowedFullscreen + // #30666 2013.2.2 yyagi Don't use Fullscreen mode becasue NVIDIA GeForce is + // tend to delay drawing on Fullscreen mode. So DTXMania uses Maximized window + // in spite of using fullscreen mode. + app.Window.WindowState = FormWindowState.Normal; + app.Window.FormBorderStyle = FormBorderStyle.Sizable; + app.Window.WindowState = FormWindowState.Normal; +#endif + base.Window.ClientSize = + new Size( currentClientSize.Width, currentClientSize.Height ); + base.Window.Icon = Properties.Resources.tjap3; +// FDK.CTaskBar.ShowTaskBar( true ); + } +#if WindowedFullscreen + else + { + app.Window.WindowState = FormWindowState.Normal; + app.Window.FormBorderStyle = FormBorderStyle.None; + app.Window.WindowState = FormWindowState.Maximized; + } + if ( ConfigIni.bウィンドウモード ) + { + if ( !this.bマウスカーソル表示中 ) + { + Cursor.Show(); + this.bマウスカーソル表示中 = true; + } + } + else if ( this.bマウスカーソル表示中 ) + { + Cursor.Hide(); + this.bマウスカーソル表示中 = false; + } +#endif + } + } + + #region [ #24609 リザルト画像をpngで保存する ] // #24609 2011.3.14 yyagi; to save result screen in case BestRank or HiSkill. + /// + /// リザルト画像のキャプチャと保存。 + /// + /// 保存するファイル名(フルパス) + public bool SaveResultScreen( string strFullPath ) + { + string strSavePath = Path.GetDirectoryName( strFullPath ); + if ( !Directory.Exists( strSavePath ) ) + { + try + { + Directory.CreateDirectory( strSavePath ); + } + catch + { + Trace.TraceError(ToString()); + Trace.TraceError( "例外が発生しましたが処理を継続します。 (0bfe6bff-2a56-4df4-9333-2df26d9b765b)" ); + return false; + } + } + + // http://www.gamedev.net/topic/594369-dx9slimdxati-incorrect-saving-surface-to-file/ + using ( Surface pSurface = TJAPlayer3.app.Device.GetRenderTarget( 0 ) ) + { + Surface.ToFile( pSurface, strFullPath, ImageFileFormat.Png ); + } + return true; + } + #endregion + + // Game 実装 + + protected override void Initialize() + { +// new GCBeep(); + //sw.Start(); + //swlist1 = new List( 8192 ); + //swlist2 = new List( 8192 ); + //swlist3 = new List( 8192 ); + //swlist4 = new List( 8192 ); + //swlist5 = new List( 8192 ); + if ( this.listトップレベルActivities != null ) + { + foreach( CActivity activity in this.listトップレベルActivities ) + activity.OnManagedリソースの作成(); + } + + foreach( STPlugin st in this.listプラグイン ) + { + Directory.SetCurrentDirectory( st.strプラグインフォルダ ); + st.plugin.OnManagedリソースの作成(); + Directory.SetCurrentDirectory( TJAPlayer3.strEXEのあるフォルダ ); + } +#if GPUFlushAfterPresent + FrameEnd += dtxmania_FrameEnd; +#endif + } +#if GPUFlushAfterPresent + void dtxmania_FrameEnd( object sender, EventArgs e ) // GraphicsDeviceManager.game_FrameEnd()後に実行される + { // → Present()直後にGPUをFlushする + // → 画面のカクツキが頻発したため、ここでのFlushは行わない + actFlushGPU.On進行描画(); // Flush GPU + } +#endif + protected override void LoadContent() + { + if ( ConfigIni.bウィンドウモード ) + { + if( !this.bマウスカーソル表示中 ) + { + Cursor.Show(); + this.bマウスカーソル表示中 = true; + } + } + else if( this.bマウスカーソル表示中 ) + { + Cursor.Hide(); + this.bマウスカーソル表示中 = false; + } + this.Device.SetTransform(TransformState.View, Matrix.LookAtLH(new Vector3(0f, 0f, (float)(-SampleFramework.GameWindowSize.Height / 2 * Math.Sqrt(3.0))), new Vector3(0f, 0f, 0f), new Vector3(0f, 1f, 0f))); + this.Device.SetTransform(TransformState.Projection, Matrix.PerspectiveFovLH(C変換.DegreeToRadian((float)60f), ((float)this.Device.Viewport.Width) / ((float)this.Device.Viewport.Height), -100f, 100f)); + this.Device.SetRenderState(RenderState.Lighting, false); + this.Device.SetRenderState( RenderState.ZEnable, false ); + this.Device.SetRenderState( RenderState.AntialiasedLineEnable, false ); + this.Device.SetRenderState( RenderState.AlphaTestEnable, true ); + this.Device.SetRenderState( RenderState.AlphaRef, 10 ); + + this.Device.SetRenderState( RenderState.MultisampleAntialias, true ); + this.Device.SetSamplerState( 0, SamplerState.MinFilter, TextureFilter.Linear ); + this.Device.SetSamplerState( 0, SamplerState.MagFilter, TextureFilter.Linear ); + + this.Device.SetRenderState( RenderState.AlphaFunc, Compare.Greater ); + this.Device.SetRenderState( RenderState.AlphaBlendEnable, true ); + this.Device.SetRenderState( RenderState.SourceBlend, Blend.SourceAlpha ); + this.Device.SetRenderState( RenderState.DestinationBlend, Blend.InverseSourceAlpha ); + this.Device.SetTextureStageState( 0, TextureStage.AlphaOperation, TextureOperation.Modulate ); + this.Device.SetTextureStageState( 0, TextureStage.AlphaArg1, 2 ); + this.Device.SetTextureStageState( 0, TextureStage.AlphaArg2, 1 ); + + if( this.listトップレベルActivities != null ) + { + foreach( CActivity activity in this.listトップレベルActivities ) + activity.OnUnmanagedリソースの作成(); + } + + foreach( STPlugin st in this.listプラグイン ) + { + Directory.SetCurrentDirectory( st.strプラグインフォルダ ); + st.plugin.OnUnmanagedリソースの作成(); + Directory.SetCurrentDirectory( TJAPlayer3.strEXEのあるフォルダ ); + } + } + protected override void UnloadContent() + { + if( this.listトップレベルActivities != null ) + { + foreach( CActivity activity in this.listトップレベルActivities ) + activity.OnUnmanagedリソースの解放(); + } + + foreach( STPlugin st in this.listプラグイン ) + { + Directory.SetCurrentDirectory( st.strプラグインフォルダ ); + st.plugin.OnUnmanagedリソースの解放(); + Directory.SetCurrentDirectory( TJAPlayer3.strEXEのあるフォルダ ); + } + } + protected override void OnExiting( EventArgs e ) + { + CPowerManagement.tEnableMonitorSuspend(); // スリープ抑止状態を解除 + this.t終了処理(); + base.OnExiting( e ); + } + protected override void Update( GameTime gameTime ) + { + } + protected override void Draw( GameTime gameTime ) + { + Sound管理?.t再生中の処理をする(); + Timer?.t更新(); + CSound管理.rc演奏用タイマ?.t更新(); + Input管理?.tポーリング( this.bApplicationActive, TJAPlayer3.ConfigIni.bバッファ入力を行う ); + FPS?.tカウンタ更新(); + + if( this.Device == null ) + return; + + if ( this.bApplicationActive ) // DTXMania本体起動中の本体/モニタの省電力モード移行を抑止 + CPowerManagement.tDisableMonitorSuspend(); + + // #xxxxx 2013.4.8 yyagi; sleepの挿入位置を、EndScnene~Present間から、BeginScene前に移動。描画遅延を小さくするため。 + #region [ スリープ ] + if ( ConfigIni.nフレーム毎スリープms >= 0 ) // #xxxxx 2011.11.27 yyagi + { + Thread.Sleep( ConfigIni.nフレーム毎スリープms ); + } + #endregion + + #region [ DTXCreatorからの指示 ] + if ( this.Window.IsReceivedMessage ) // ウインドウメッセージで、 + { + string strMes = this.Window.strMessage; + this.Window.IsReceivedMessage = false; + + if ( strMes != null ) + { + DTXVmode.ParseArguments( strMes ); + + if ( DTXVmode.Enabled ) + { + bコンパクトモード = true; + strコンパクトモードファイル = DTXVmode.filename; + if ( DTXVmode.Command == CDTXVmode.ECommand.Preview ) + { + // preview soundの再生 + string strPreviewFilename = DTXVmode.previewFilename; +//Trace.TraceInformation( "Preview Filename=" + DTXVmode.previewFilename ); + try + { + if ( this.previewSound != null ) + { + this.previewSound.tサウンドを停止する(); + this.previewSound.Dispose(); + this.previewSound = null; + } + this.previewSound = TJAPlayer3.Sound管理.tサウンドを生成する( strPreviewFilename, ESoundGroup.SongPlayback ); + + // 2018-08-23 twopointzero: DTXVmode previewVolume will always set + // Gain since in this mode it should override the application of + // SONGVOL or any other Gain source regardless of configuration. + this.previewSound.SetGain(DTXVmode.previewVolume); + + this.previewSound.n位置 = DTXVmode.previewPan; + this.previewSound.t再生を開始する(); + Trace.TraceInformation( "DTXCからの指示で、サウンドを生成しました。({0})", strPreviewFilename ); + } + catch + { + Trace.TraceError(ToString()); + Trace.TraceError( "DTXCからの指示での、サウンドの生成に失敗しました。({0})", strPreviewFilename ); + if ( this.previewSound != null ) + { + this.previewSound.Dispose(); + } + this.previewSound = null; + } + } + } + } + } + #endregion + + this.Device.BeginScene(); + this.Device.Clear( ClearFlags.ZBuffer | ClearFlags.Target, Color.Black, 1f, 0 ); + + if( r現在のステージ != null ) + { + this.n進行描画の戻り値 = ( r現在のステージ != null ) ? r現在のステージ.On進行描画() : 0; + + #region [ プラグインの進行描画 ] + //--------------------- + foreach( STPlugin sp in this.listプラグイン ) + { + Directory.SetCurrentDirectory( sp.strプラグインフォルダ ); + + if( TJAPlayer3.act現在入力を占有中のプラグイン == null || TJAPlayer3.act現在入力を占有中のプラグイン == sp.plugin ) + sp.plugin.On進行描画(TJAPlayer3.Pad, TJAPlayer3.Input管理.Keyboard ); + else + sp.plugin.On進行描画( null, null ); + + Directory.SetCurrentDirectory( TJAPlayer3.strEXEのあるフォルダ ); + } + //--------------------- + #endregion + + + CScoreIni scoreIni = null; + + if ( Control.IsKeyLocked( Keys.CapsLock ) ) // #30925 2013.3.11 yyagi; capslock=ON時は、EnumSongsしないようにして、起動負荷とASIOの音切れの関係を確認する + { // → songs.db等の書き込み時だと音切れするっぽい + actEnumSongs.On非活性化(); + EnumSongs.SongListEnumCompletelyDone(); + TJAPlayer3.stage選曲.bIsEnumeratingSongs = false; + } + #region [ 曲検索スレッドの起動/終了 ] // ここに"Enumerating Songs..."表示を集約 + if ( !TJAPlayer3.bコンパクトモード ) + { + actEnumSongs.On進行描画(); // "Enumerating Songs..."アイコンの描画 + } + switch ( r現在のステージ.eステージID ) + { + case CStage.Eステージ.タイトル: + case CStage.Eステージ.コンフィグ: + case CStage.Eステージ.選曲: + case CStage.Eステージ.曲読み込み: + if ( EnumSongs != null ) + { + #region [ (特定条件時) 曲検索スレッドの起動_開始 ] + if ( r現在のステージ.eステージID == CStage.Eステージ.タイトル && + r直前のステージ.eステージID == CStage.Eステージ.起動 && + this.n進行描画の戻り値 == (int) CStageタイトル.E戻り値.継続 && + !EnumSongs.IsSongListEnumStarted ) + { + actEnumSongs.On活性化(); + TJAPlayer3.stage選曲.bIsEnumeratingSongs = true; + EnumSongs.Init(); // 取得した曲数を、新インスタンスにも与える + EnumSongs.StartEnumFromDisk(); // 曲検索スレッドの起動_開始 + } + #endregion + + #region [ 曲検索の中断と再開 ] + if ( r現在のステージ.eステージID == CStage.Eステージ.選曲 && !EnumSongs.IsSongListEnumCompletelyDone ) + { + switch ( this.n進行描画の戻り値 ) + { + case 0: // 何もない + //if ( CDTXMania.stage選曲.bIsEnumeratingSongs ) + if ( !TJAPlayer3.stage選曲.bIsPlayingPremovie ) + { + EnumSongs.Resume(); // #27060 2012.2.6 yyagi 中止していたバックグランド曲検索を再開 + EnumSongs.IsSlowdown = false; + } + else + { + // EnumSongs.Suspend(); // #27060 2012.3.2 yyagi #PREMOVIE再生中は曲検索を低速化 + EnumSongs.IsSlowdown = true; + } + actEnumSongs.On活性化(); + break; + + case 2: // 曲決定 + EnumSongs.Suspend(); // #27060 バックグラウンドの曲検索を一時停止 + actEnumSongs.On非活性化(); + break; + } + } + #endregion + + #region [ 曲探索中断待ち待機 ] + if ( r現在のステージ.eステージID == CStage.Eステージ.曲読み込み && !EnumSongs.IsSongListEnumCompletelyDone && + EnumSongs.thDTXFileEnumerate != null ) // #28700 2012.6.12 yyagi; at Compact mode, enumerating thread does not exist. + { + EnumSongs.WaitUntilSuspended(); // 念のため、曲検索が一時中断されるまで待機 + } + #endregion + + #region [ 曲検索が完了したら、実際の曲リストに反映する ] + // CStage選曲.On活性化() に回した方がいいかな? + if ( EnumSongs.IsSongListEnumerated ) + { + actEnumSongs.On非活性化(); + TJAPlayer3.stage選曲.bIsEnumeratingSongs = false; + + bool bRemakeSongTitleBar = ( r現在のステージ.eステージID == CStage.Eステージ.選曲 ) ? true : false; + TJAPlayer3.stage選曲.Refresh( EnumSongs.Songs管理, bRemakeSongTitleBar ); + EnumSongs.SongListEnumCompletelyDone(); + } + #endregion + } + break; + } + #endregion + + switch ( r現在のステージ.eステージID ) + { + case CStage.Eステージ.何もしない: + break; + + case CStage.Eステージ.起動: + #region [ *** ] + //----------------------------- + if( this.n進行描画の戻り値 != 0 ) + { + if( !bコンパクトモード ) + { + r現在のステージ.On非活性化(); + Trace.TraceInformation( "----------------------" ); + Trace.TraceInformation( "■ タイトル" ); + stageタイトル.On活性化(); + r直前のステージ = r現在のステージ; + r現在のステージ = stageタイトル; + } + else + { + r現在のステージ.On非活性化(); + Trace.TraceInformation( "----------------------" ); + Trace.TraceInformation( "■ 曲読み込み" ); + stage曲読み込み.On活性化(); + r直前のステージ = r現在のステージ; + r現在のステージ = stage曲読み込み; + } + foreach( STPlugin pg in this.listプラグイン ) + { + Directory.SetCurrentDirectory( pg.strプラグインフォルダ ); + pg.plugin.Onステージ変更(); + Directory.SetCurrentDirectory( TJAPlayer3.strEXEのあるフォルダ ); + } + + this.tガベージコレクションを実行する(); + } + //----------------------------- + #endregion + break; + + case CStage.Eステージ.タイトル: + #region [ *** ] + //----------------------------- + switch( this.n進行描画の戻り値 ) + { + case (int)CStageタイトル.E戻り値.GAMESTART: + #region [ 選曲処理へ ] + //----------------------------- + r現在のステージ.On非活性化(); + Trace.TraceInformation( "----------------------" ); + Trace.TraceInformation( "■ 選曲" ); + stage選曲.On活性化(); + r直前のステージ = r現在のステージ; + r現在のステージ = stage選曲; + //----------------------------- + #endregion + break; + + case (int)CStageタイトル.E戻り値.DANGAMESTART: + #region [ 段位選択処理へ ] + //----------------------------- + r現在のステージ.On非活性化(); + Trace.TraceInformation( "----------------------" ); + Trace.TraceInformation( "■ 段位選択" ); + stage段位選択.On活性化(); + r直前のステージ = r現在のステージ; + r現在のステージ = stage段位選択; + //----------------------------- + #endregion + break; + + #region [ OPTION: 廃止済 ] +// case 2: // #24525 OPTIONとCONFIGの統合に伴い、OPTIONは廃止 +// #region [ *** ] +// //----------------------------- +// r現在のステージ.On非活性化(); +// Trace.TraceInformation( "----------------------" ); +// Trace.TraceInformation( "■ オプション" ); +// stageオプション.On活性化(); +// r直前のステージ = r現在のステージ; +// r現在のステージ = stageオプション; +// //----------------------------- +// #endregion + // break; + #endregion + + case (int)CStageタイトル.E戻り値.CONFIG: + #region [ *** ] + //----------------------------- + r現在のステージ.On非活性化(); + Trace.TraceInformation( "----------------------" ); + Trace.TraceInformation( "■ コンフィグ" ); + stageコンフィグ.On活性化(); + r直前のステージ = r現在のステージ; + r現在のステージ = stageコンフィグ; + //----------------------------- + #endregion + break; + + case (int)CStageタイトル.E戻り値.EXIT: + #region [ *** ] + //----------------------------- + r現在のステージ.On非活性化(); + Trace.TraceInformation( "----------------------" ); + Trace.TraceInformation( "■ 終了" ); + stage終了.On活性化(); + r直前のステージ = r現在のステージ; + r現在のステージ = stage終了; + //----------------------------- + #endregion + break; + } + + foreach( STPlugin pg in this.listプラグイン ) + { + Directory.SetCurrentDirectory( pg.strプラグインフォルダ ); + pg.plugin.Onステージ変更(); + Directory.SetCurrentDirectory( TJAPlayer3.strEXEのあるフォルダ ); + } + + //this.tガベージコレクションを実行する(); // #31980 2013.9.3 yyagi タイトル画面でだけ、毎フレームGCを実行して重くなっていた問題の修正 + //----------------------------- + #endregion + break; + + case CStage.Eステージ.コンフィグ: + #region [ *** ] + //----------------------------- + if( this.n進行描画の戻り値 != 0 ) + { + switch( r直前のステージ.eステージID ) + { + case CStage.Eステージ.タイトル: + #region [ *** ] + //----------------------------- + r現在のステージ.On非活性化(); + Trace.TraceInformation( "----------------------" ); + Trace.TraceInformation( "■ タイトル" ); + stageタイトル.On活性化(); + r直前のステージ = r現在のステージ; + r現在のステージ = stageタイトル; + + foreach( STPlugin pg in this.listプラグイン ) + { + Directory.SetCurrentDirectory( pg.strプラグインフォルダ ); + pg.plugin.Onステージ変更(); + Directory.SetCurrentDirectory( TJAPlayer3.strEXEのあるフォルダ ); + } + + this.tガベージコレクションを実行する(); + break; + //----------------------------- + #endregion + + case CStage.Eステージ.選曲: + #region [ *** ] + //----------------------------- + r現在のステージ.On非活性化(); + Trace.TraceInformation( "----------------------" ); + Trace.TraceInformation( "■ 選曲" ); + stage選曲.On活性化(); + r直前のステージ = r現在のステージ; + r現在のステージ = stage選曲; + + foreach( STPlugin pg in this.listプラグイン ) + { + Directory.SetCurrentDirectory( pg.strプラグインフォルダ ); + pg.plugin.Onステージ変更(); + Directory.SetCurrentDirectory( TJAPlayer3.strEXEのあるフォルダ ); + } + + this.tガベージコレクションを実行する(); + break; + //----------------------------- + #endregion + } + } + //----------------------------- + #endregion + break; + + case CStage.Eステージ.選曲: + #region [ *** ] + //----------------------------- + switch( this.n進行描画の戻り値 ) + { + case (int) CStage選曲.E戻り値.タイトルに戻る: + #region [ *** ] + //----------------------------- + r現在のステージ.On非活性化(); + Trace.TraceInformation( "----------------------" ); + Trace.TraceInformation( "■ タイトル" ); + stageタイトル.On活性化(); + r直前のステージ = r現在のステージ; + r現在のステージ = stageタイトル; + + Skin.bgm選曲画面イン.t停止する(); + Skin.bgm選曲画面.t停止する(); + foreach ( STPlugin pg in this.listプラグイン ) + { + Directory.SetCurrentDirectory( pg.strプラグインフォルダ ); + pg.plugin.Onステージ変更(); + Directory.SetCurrentDirectory( TJAPlayer3.strEXEのあるフォルダ ); + } + + this.tガベージコレクションを実行する(); + break; + //----------------------------- + #endregion + + case (int) CStage選曲.E戻り値.選曲した: + #region [ *** ] + //----------------------------- + r現在のステージ.On非活性化(); + Trace.TraceInformation( "----------------------" ); + Trace.TraceInformation( "■ 曲読み込み" ); + stage曲読み込み.On活性化(); + r直前のステージ = r現在のステージ; + r現在のステージ = stage曲読み込み; + + Skin.bgm選曲画面イン.t停止する(); + Skin.bgm選曲画面.t停止する(); + foreach ( STPlugin pg in this.listプラグイン ) + { + Directory.SetCurrentDirectory( pg.strプラグインフォルダ ); + pg.plugin.Onステージ変更(); + Directory.SetCurrentDirectory( TJAPlayer3.strEXEのあるフォルダ ); + } + + this.tガベージコレクションを実行する(); + break; + //----------------------------- + #endregion + +// case (int) CStage選曲.E戻り値.オプション呼び出し: + #region [ *** ] +// //----------------------------- +// r現在のステージ.On非活性化(); +// Trace.TraceInformation( "----------------------" ); +// Trace.TraceInformation( "■ オプション" ); +// stageオプション.On活性化(); +// r直前のステージ = r現在のステージ; +// r現在のステージ = stageオプション; +// +// foreach( STPlugin pg in this.listプラグイン ) +// { +// Directory.SetCurrentDirectory( pg.strプラグインフォルダ ); +// pg.plugin.Onステージ変更(); +// Directory.SetCurrentDirectory( CDTXMania.strEXEのあるフォルダ ); +// } +// +// this.tガベージコレクションを実行する(); +// break; +// //----------------------------- + #endregion + + case (int) CStage選曲.E戻り値.コンフィグ呼び出し: + #region [ *** ] + //----------------------------- + r現在のステージ.On非活性化(); + Trace.TraceInformation( "----------------------" ); + Trace.TraceInformation( "■ コンフィグ" ); + stageコンフィグ.On活性化(); + r直前のステージ = r現在のステージ; + r現在のステージ = stageコンフィグ; + + foreach( STPlugin pg in this.listプラグイン ) + { + Directory.SetCurrentDirectory( pg.strプラグインフォルダ ); + pg.plugin.Onステージ変更(); + Directory.SetCurrentDirectory( TJAPlayer3.strEXEのあるフォルダ ); + } + + this.tガベージコレクションを実行する(); + break; + //----------------------------- + #endregion + + case (int) CStage選曲.E戻り値.スキン変更: + + #region [ *** ] + //----------------------------- + r現在のステージ.On非活性化(); + Trace.TraceInformation( "----------------------" ); + Trace.TraceInformation( "■ スキン切り替え" ); + stageChangeSkin.On活性化(); + r直前のステージ = r現在のステージ; + r現在のステージ = stageChangeSkin; + break; + //----------------------------- + #endregion + } + //----------------------------- + #endregion + break; + + case CStage.Eステージ.段位選択: + #region [ *** ] + switch (this.n進行描画の戻り値) + { + case (int)CStage選曲.E戻り値.タイトルに戻る: + #region [ *** ] + //----------------------------- + r現在のステージ.On非活性化(); + Trace.TraceInformation("----------------------"); + Trace.TraceInformation("■ タイトル"); + stageタイトル.On活性化(); + r直前のステージ = r現在のステージ; + r現在のステージ = stageタイトル; + + Skin.bgm選曲画面イン.t停止する(); + Skin.bgm選曲画面.t停止する(); + foreach (STPlugin pg in this.listプラグイン) + { + Directory.SetCurrentDirectory(pg.strプラグインフォルダ); + pg.plugin.Onステージ変更(); + Directory.SetCurrentDirectory(TJAPlayer3.strEXEのあるフォルダ); + } + + this.tガベージコレクションを実行する(); + break; + //----------------------------- + #endregion + + case (int)CStage選曲.E戻り値.選曲した: + #region [ *** ] + //----------------------------- + r現在のステージ.On非活性化(); + Trace.TraceInformation("----------------------"); + Trace.TraceInformation("■ 曲読み込み"); + stage曲読み込み.On活性化(); + r直前のステージ = r現在のステージ; + r現在のステージ = stage曲読み込み; + + foreach (STPlugin pg in this.listプラグイン) + { + Directory.SetCurrentDirectory(pg.strプラグインフォルダ); + pg.plugin.Onステージ変更(); + Directory.SetCurrentDirectory(TJAPlayer3.strEXEのあるフォルダ); + } + + this.tガベージコレクションを実行する(); + break; + //----------------------------- + #endregion + } + #endregion + break; + + case CStage.Eステージ.曲読み込み: + #region [ *** ] + //----------------------------- + DTXVmode.Refreshed = false; // 曲のリロード中に発生した再リロードは、無視する。 + if( this.n進行描画の戻り値 != 0 ) + { + TJAPlayer3.Pad.st検知したデバイス.Clear(); // 入力デバイスフラグクリア(2010.9.11) + r現在のステージ.On非活性化(); + #region [ ESC押下時は、曲の読み込みを中止して選曲画面に戻る ] + if ( this.n進行描画の戻り値 == (int) E曲読込画面の戻り値.読込中止 ) + { + //DTX.t全チップの再生停止(); + if( DTX != null ) + DTX.On非活性化(); + if (stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan) + { + Trace.TraceInformation("----------------------"); + Trace.TraceInformation("■ 段位選択"); + stage段位選択.On活性化(); + r直前のステージ = r現在のステージ; + r現在のステージ = stage段位選択; + } + else + { + Trace.TraceInformation("----------------------"); + Trace.TraceInformation("■ 選曲"); + stage選曲.On活性化(); + r直前のステージ = r現在のステージ; + r現在のステージ = stage選曲; + } + foreach ( STPlugin pg in this.listプラグイン ) + { + Directory.SetCurrentDirectory( pg.strプラグインフォルダ ); + pg.plugin.Onステージ変更(); + Directory.SetCurrentDirectory( TJAPlayer3.strEXEのあるフォルダ ); + } + break; + } + #endregion + + Trace.TraceInformation( "----------------------" ); + Trace.TraceInformation( "■ 演奏(ドラム画面)" ); +#if false // #23625 2011.1.11 Config.iniからダメージ/回復値の定数変更を行う場合はここを有効にする 087リリースに合わせ機能無効化 +for (int i = 0; i < 5; i++) +{ + for (int j = 0; j < 2; j++) + { + stage演奏ドラム画面.fDamageGaugeDelta[i, j] = ConfigIni.fGaugeFactor[i, j]; + } +} +for (int i = 0; i < 3; i++) { + stage演奏ドラム画面.fDamageLevelFactor[i] = ConfigIni.fDamageLevelFactor[i]; +} +#endif + r直前のステージ = r現在のステージ; + r現在のステージ = stage演奏ドラム画面; + foreach( STPlugin pg in this.listプラグイン ) + { + Directory.SetCurrentDirectory( pg.strプラグインフォルダ ); + pg.plugin.Onステージ変更(); + Directory.SetCurrentDirectory( TJAPlayer3.strEXEのあるフォルダ ); + } + + this.tガベージコレクションを実行する(); + } + //----------------------------- + #endregion + break; + + case CStage.Eステージ.演奏: + #region [ *** ] + //----------------------------- + //long n1 = FDK.CSound管理.rc演奏用タイマ.nシステム時刻ms; + //long n2 = FDK.CSound管理.SoundDevice.n経過時間ms; + //long n3 = FDK.CSound管理.SoundDevice.tmシステムタイマ.nシステム時刻ms; + //long n4 = FDK.CSound管理.rc演奏用タイマ.n現在時刻; + //long n5 = FDK.CSound管理.SoundDevice.n経過時間を更新したシステム時刻ms; + + //swlist1.Add( Convert.ToInt32(n1) ); + //swlist2.Add( Convert.ToInt32(n2) ); + //swlist3.Add( Convert.ToInt32( n3 ) ); + //swlist4.Add( Convert.ToInt32( n4 ) ); + //swlist5.Add( Convert.ToInt32( n5 ) ); + + #region [ DTXVモード中にDTXCreatorから指示を受けた場合の処理 ] + if ( DTXVmode.Enabled && DTXVmode.Refreshed ) + { + DTXVmode.Refreshed = false; + + if ( DTXVmode.Command == CDTXVmode.ECommand.Stop ) + { + TJAPlayer3.stage演奏ドラム画面.t停止(); + if ( previewSound != null ) + { + this.previewSound.tサウンドを停止する(); + this.previewSound.Dispose(); + this.previewSound = null; + } + //{ + // int lastd = 0; + // int f = 0; + // for ( int i = 0; i < swlist1.Count; i++ ) + // { + // int d1 = swlist1[ i ]; + // int d2 = swlist2[ i ]; + // int d3 = swlist3[ i ]; + // int d4 = swlist4[ i ]; + // int d5 = swlist5[ i ]; + + // int dif = d1 - lastd; + // string s = ""; + // if ( 16 <= dif && dif <= 17 ) + // { + // } + // else + // { + // s = "★"; + // } + // Trace.TraceInformation( "frame {0:D4}: {1:D3} ( {2:D3}, {3:D3} - {7:D3}, {4:D3} ) {5}, n現在時刻={6}", f, dif, d1, d2, d3, s, d4, d5 ); + // lastd = d1; + // f++; + // } + // swlist1.Clear(); + // swlist2.Clear(); + // swlist3.Clear(); + // swlist4.Clear(); + // swlist5.Clear(); + + //} + } + else if ( DTXVmode.Command == CDTXVmode.ECommand.Play ) + { + if ( DTXVmode.NeedReload ) + { + TJAPlayer3.stage演奏ドラム画面.t再読込(); + + TJAPlayer3.ConfigIni.bTimeStretch = DTXVmode.TimeStretch; + CSound管理.bIsTimeStretch = DTXVmode.TimeStretch; + if ( TJAPlayer3.ConfigIni.b垂直帰線待ちを行う != DTXVmode.VSyncWait ) + { + TJAPlayer3.ConfigIni.b垂直帰線待ちを行う = DTXVmode.VSyncWait; + TJAPlayer3.app.b次のタイミングで垂直帰線同期切り替えを行う = true; + } + } + else + { + TJAPlayer3.stage演奏ドラム画面.t演奏位置の変更( TJAPlayer3.DTXVmode.nStartBar, 0 ); + } + } + } + #endregion + + switch( this.n進行描画の戻り値 ) + { + case (int) E演奏画面の戻り値.再読込_再演奏: + #region [ DTXファイルを再読み込みして、再演奏 ] + DTX.t全チップの再生停止(); + DTX.On非活性化(); + r現在のステージ.On非活性化(); + stage曲読み込み.On活性化(); + r直前のステージ = r現在のステージ; + r現在のステージ = stage曲読み込み; + this.tガベージコレクションを実行する(); + break; + #endregion + + //case (int) E演奏画面の戻り値.再演奏: + #region [ 再読み込み無しで、再演奏 ] + #endregion + // break; + + case (int) E演奏画面の戻り値.継続: + break; + + case (int) E演奏画面の戻り値.演奏中断: + #region [ 演奏キャンセル ] + //----------------------------- + scoreIni = this.tScoreIniへBGMAdjustとHistoryとPlayCountを更新( "Play canceled" ); + + #region [ プラグイン On演奏キャンセル() の呼び出し ] + //--------------------- + foreach( STPlugin pg in this.listプラグイン ) + { + Directory.SetCurrentDirectory( pg.strプラグインフォルダ ); + pg.plugin.On演奏キャンセル( scoreIni ); + Directory.SetCurrentDirectory( TJAPlayer3.strEXEのあるフォルダ ); + } + //--------------------- + #endregion + + DTX.t全チップの再生停止(); + DTX.On非活性化(); + r現在のステージ.On非活性化(); + if( bコンパクトモード ) + { + base.Window.Close(); + } + else + { + if(stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan) + { + Trace.TraceInformation("----------------------"); + Trace.TraceInformation("■ 段位選択"); + stage段位選択.On活性化(); + r直前のステージ = r現在のステージ; + r現在のステージ = stage段位選択; + } + else + { + Trace.TraceInformation("----------------------"); + Trace.TraceInformation("■ 選曲"); + stage選曲.On活性化(); + r直前のステージ = r現在のステージ; + r現在のステージ = stage選曲; + } + + #region [ プラグイン Onステージ変更() の呼び出し ] + //--------------------- + foreach ( STPlugin pg in this.listプラグイン ) + { + Directory.SetCurrentDirectory( pg.strプラグインフォルダ ); + pg.plugin.Onステージ変更(); + Directory.SetCurrentDirectory( TJAPlayer3.strEXEのあるフォルダ ); + } + //--------------------- + #endregion + + this.tガベージコレクションを実行する(); + } + this.tガベージコレクションを実行する(); + break; + //----------------------------- + #endregion + + case (int) E演奏画面の戻り値.ステージ失敗: + #region [ 演奏失敗(StageFailed) ] + //----------------------------- + scoreIni = this.tScoreIniへBGMAdjustとHistoryとPlayCountを更新( "Stage failed" ); + + #region [ プラグイン On演奏失敗() の呼び出し ] + //--------------------- + foreach( STPlugin pg in this.listプラグイン ) + { + Directory.SetCurrentDirectory( pg.strプラグインフォルダ ); + pg.plugin.On演奏失敗( scoreIni ); + Directory.SetCurrentDirectory( TJAPlayer3.strEXEのあるフォルダ ); + } + //--------------------- + #endregion + + DTX.t全チップの再生停止(); + DTX.On非活性化(); + r現在のステージ.On非活性化(); + if( bコンパクトモード ) + { + base.Window.Close(); + } + else + { + Trace.TraceInformation( "----------------------" ); + Trace.TraceInformation( "■ 選曲" ); + stage選曲.On活性化(); + r直前のステージ = r現在のステージ; + r現在のステージ = stage選曲; + + #region [ プラグイン Onステージ変更() の呼び出し ] + //--------------------- + foreach( STPlugin pg in this.listプラグイン ) + { + Directory.SetCurrentDirectory( pg.strプラグインフォルダ ); + pg.plugin.Onステージ変更(); + Directory.SetCurrentDirectory( TJAPlayer3.strEXEのあるフォルダ ); + } + //--------------------- + #endregion + + this.tガベージコレクションを実行する(); + } + break; + //----------------------------- + #endregion + + case (int) E演奏画面の戻り値.ステージクリア: + #region [ 演奏クリア ] + //----------------------------- + CScoreIni.C演奏記録 c演奏記録_Drums; + stage演奏ドラム画面.t演奏結果を格納する( out c演奏記録_Drums ); + + double ps = 0.0, gs = 0.0; + if ( !c演奏記録_Drums.b全AUTOである && c演奏記録_Drums.n全チップ数 > 0) { + ps = c演奏記録_Drums.db演奏型スキル値; + gs = c演奏記録_Drums.dbゲーム型スキル値; + } + string str = "Cleared"; + switch( CScoreIni.t総合ランク値を計算して返す( c演奏記録_Drums, null, null ) ) + { + case (int)CScoreIni.ERANK.SS: + str = string.Format( "Cleared (SS: {0:F2})", ps ); + break; + + case (int) CScoreIni.ERANK.S: + str = string.Format( "Cleared (S: {0:F2})", ps ); + break; + + case (int) CScoreIni.ERANK.A: + str = string.Format( "Cleared (A: {0:F2})", ps ); + break; + + case (int) CScoreIni.ERANK.B: + str = string.Format( "Cleared (B: {0:F2})", ps ); + break; + + case (int) CScoreIni.ERANK.C: + str = string.Format( "Cleared (C: {0:F2})", ps ); + break; + + case (int) CScoreIni.ERANK.D: + str = string.Format( "Cleared (D: {0:F2})", ps ); + break; + + case (int) CScoreIni.ERANK.E: + str = string.Format( "Cleared (E: {0:F2})", ps ); + break; + + case (int)CScoreIni.ERANK.UNKNOWN: // #23534 2010.10.28 yyagi add: 演奏チップが0個のとき + str = "Cleared (No chips)"; + break; + } + + scoreIni = this.tScoreIniへBGMAdjustとHistoryとPlayCountを更新( str ); + + #region [ プラグイン On演奏クリア() の呼び出し ] + //--------------------- + foreach( STPlugin pg in this.listプラグイン ) + { + Directory.SetCurrentDirectory( pg.strプラグインフォルダ ); + pg.plugin.On演奏クリア( scoreIni ); + Directory.SetCurrentDirectory( TJAPlayer3.strEXEのあるフォルダ ); + } + //--------------------- + #endregion + + r現在のステージ.On非活性化(); + Trace.TraceInformation( "----------------------" ); + Trace.TraceInformation( "■ 結果" ); + stage結果.st演奏記録.Drums = c演奏記録_Drums; + stage結果.On活性化(); + r直前のステージ = r現在のステージ; + r現在のステージ = stage結果; + + #region [ プラグイン Onステージ変更() の呼び出し ] + //--------------------- + foreach( STPlugin pg in this.listプラグイン ) + { + Directory.SetCurrentDirectory( pg.strプラグインフォルダ ); + pg.plugin.Onステージ変更(); + Directory.SetCurrentDirectory( TJAPlayer3.strEXEのあるフォルダ ); + } + //--------------------- + #endregion + + break; + //----------------------------- + #endregion + } + //----------------------------- + #endregion + break; + + case CStage.Eステージ.結果: + #region [ *** ] + //----------------------------- + if( this.n進行描画の戻り値 != 0 ) + { + //DTX.t全チップの再生一時停止(); + DTX.t全チップの再生停止とミキサーからの削除(); + DTX.On非活性化(); + r現在のステージ.On非活性化(); + this.tガベージコレクションを実行する(); + if ( !bコンパクトモード ) + { + if (stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan) + { + Trace.TraceInformation("----------------------"); + Trace.TraceInformation("■ 段位選択"); + stage段位選択.On活性化(); + r直前のステージ = r現在のステージ; + r現在のステージ = stage段位選択; + } + else + { + Trace.TraceInformation("----------------------"); + Trace.TraceInformation("■ 選曲"); + stage選曲.On活性化(); + r直前のステージ = r現在のステージ; + r現在のステージ = stage選曲; + } + stage選曲.NowSong++; + + foreach( STPlugin pg in this.listプラグイン ) + { + Directory.SetCurrentDirectory( pg.strプラグインフォルダ ); + pg.plugin.Onステージ変更(); + Directory.SetCurrentDirectory( TJAPlayer3.strEXEのあるフォルダ ); + } + + this.tガベージコレクションを実行する(); + } + else + { + base.Window.Close(); + } + } + //----------------------------- + #endregion + break; + + case CStage.Eステージ.ChangeSkin: + #region [ *** ] + //----------------------------- + if ( this.n進行描画の戻り値 != 0 ) + { + r現在のステージ.On非活性化(); + Trace.TraceInformation( "----------------------" ); + Trace.TraceInformation( "■ 選曲" ); + stage選曲.On活性化(); + r直前のステージ = r現在のステージ; + r現在のステージ = stage選曲; + this.tガベージコレクションを実行する(); + } + //----------------------------- + #endregion + break; + + case CStage.Eステージ.終了: + #region [ *** ] + //----------------------------- + if( this.n進行描画の戻り値 != 0 ) + { + base.Exit(); + } + //----------------------------- + #endregion + break; + } + + actScanningLoudness.On進行描画(); + + if (r現在のステージ != null && r現在のステージ.eステージID != CStage.Eステージ.起動 && TJAPlayer3.Tx.Network_Connection != null) + { + if (Math.Abs(CSound管理.rc演奏用タイマ.nシステム時刻ms - this.前回のシステム時刻ms) > 10000) + { + this.前回のシステム時刻ms = CSound管理.rc演奏用タイマ.nシステム時刻ms; + Task.Factory.StartNew(() => + { + //IPv4 8.8.8.8にPingを送信する(timeout 5000ms) + PingReply reply = new Ping().Send("8.8.8.8", 5000); + this.bネットワークに接続中 = reply.Status == IPStatus.Success; + }); + } + TJAPlayer3.Tx.Network_Connection.t2D描画(app.Device, GameWindowSize.Width - (TJAPlayer3.Tx.Network_Connection.szテクスチャサイズ.Width / 2), GameWindowSize.Height - TJAPlayer3.Tx.Network_Connection.szテクスチャサイズ.Height, new Rectangle((TJAPlayer3.Tx.Network_Connection.szテクスチャサイズ.Width / 2) * (this.bネットワークに接続中 ? 0 : 1), 0, TJAPlayer3.Tx.Network_Connection.szテクスチャサイズ.Width / 2, TJAPlayer3.Tx.Network_Connection.szテクスチャサイズ.Height)); + } + // オーバレイを描画する(テクスチャの生成されていない起動ステージは例外 + if (r現在のステージ != null && r現在のステージ.eステージID != CStage.Eステージ.起動 && TJAPlayer3.Tx.Overlay != null) + { + TJAPlayer3.Tx.Overlay.t2D描画(app.Device, 0, 0); + } + } + this.Device.EndScene(); // Present()は game.csのOnFrameEnd()に登録された、GraphicsDeviceManager.game_FrameEnd() 内で実行されるので不要 + // (つまり、Present()は、Draw()完了後に実行される) +#if !GPUFlushAfterPresent + actFlushGPU?.On進行描画(); // Flush GPU // EndScene()~Present()間 (つまりVSync前) でFlush実行 +#endif + if ( Sound管理?.GetCurrentSoundDeviceType() != "DirectSound" ) + { + Sound管理?.t再生中の処理をする(); // サウンドバッファの更新; 画面描画と同期させることで、スクロールをスムーズにする + } + + + #region [ 全画面_ウインドウ切り替え ] + if ( this.b次のタイミングで全画面_ウィンドウ切り替えを行う ) + { + ConfigIni.b全画面モード = !ConfigIni.b全画面モード; + app.t全画面_ウィンドウモード切り替え(); + this.b次のタイミングで全画面_ウィンドウ切り替えを行う = false; + } + #endregion + #region [ 垂直基線同期切り替え ] + if ( this.b次のタイミングで垂直帰線同期切り替えを行う ) + { + bool bIsMaximized = this.Window.IsMaximized; // #23510 2010.11.3 yyagi: to backup current window mode before changing VSyncWait + currentClientSize = this.Window.ClientSize; // #23510 2010.11.3 yyagi: to backup current window size before changing VSyncWait + DeviceSettings currentSettings = app.GraphicsDeviceManager.CurrentSettings; + currentSettings.EnableVSync = ConfigIni.b垂直帰線待ちを行う; + app.GraphicsDeviceManager.ChangeDevice( currentSettings ); + this.b次のタイミングで垂直帰線同期切り替えを行う = false; + base.Window.ClientSize = new Size(currentClientSize.Width, currentClientSize.Height); // #23510 2010.11.3 yyagi: to resume window size after changing VSyncWait + if (bIsMaximized) + { + this.Window.WindowState = FormWindowState.Maximized; // #23510 2010.11.3 yyagi: to resume window mode after changing VSyncWait + } + } + #endregion + } + + // その他 + + #region [ 汎用ヘルパー ] + //----------------- + public static CTexture tテクスチャの生成( string fileName ) + { + return tテクスチャの生成( fileName, false ); + } + public static CTexture tテクスチャの生成( string fileName, bool b黒を透過する ) + { + if ( app == null ) + { + return null; + } + try + { + return new CTexture( app.Device, fileName, TextureFormat, b黒を透過する ); + } + catch ( CTextureCreateFailedException e ) + { + Trace.TraceError( e.ToString() ); + Trace.TraceError( "テクスチャの生成に失敗しました。({0})", fileName ); + return null; + } + catch ( FileNotFoundException ) + { + Trace.TraceWarning( "テクスチャファイルが見つかりませんでした。({0})", fileName ); + return null; + } + } + public static void tテクスチャの解放(ref CTexture tx ) + { + TJAPlayer3.t安全にDisposeする( ref tx ); + } + public static void tテクスチャの解放( ref CTextureAf tx ) + { + TJAPlayer3.t安全にDisposeする( ref tx ); + } + public static CTexture tテクスチャの生成( byte[] txData ) + { + return tテクスチャの生成( txData, false ); + } + public static CTexture tテクスチャの生成( byte[] txData, bool b黒を透過する ) + { + if ( app == null ) + { + return null; + } + try + { + return new CTexture( app.Device, txData, TextureFormat, b黒を透過する ); + } + catch ( CTextureCreateFailedException e ) + { + Trace.TraceError( e.ToString() ); + Trace.TraceError( "テクスチャの生成に失敗しました。(txData)" ); + return null; + } + } + public static CTexture tテクスチャの生成( Bitmap bitmap ) + { + return tテクスチャの生成( bitmap, false ); + } + public static CTexture tテクスチャの生成( Bitmap bitmap, bool b黒を透過する ) + { + if ( app == null ) + { + return null; + } + if (bitmap == null) + { + Trace.TraceError("テクスチャの生成に失敗しました。(bitmap==null)"); + return null; + } + try + { + return new CTexture( app.Device, bitmap, TextureFormat, b黒を透過する ); + } + catch ( CTextureCreateFailedException e ) + { + Trace.TraceError( e.ToString() ); + Trace.TraceError( "テクスチャの生成に失敗しました。(txData)" ); + return null; + } + } + + public static CTextureAf tテクスチャの生成Af( string fileName ) + { + return tテクスチャの生成Af( fileName, false ); + } + public static CTextureAf tテクスチャの生成Af( string fileName, bool b黒を透過する ) + { + if ( app == null ) + { + return null; + } + try + { + return new CTextureAf( app.Device, fileName, TextureFormat, b黒を透過する ); + } + catch ( CTextureCreateFailedException e ) + { + Trace.TraceError( e.ToString() ); + Trace.TraceError( "テクスチャの生成に失敗しました。({0})", fileName ); + return null; + } + catch ( FileNotFoundException e ) + { + Trace.TraceError( e.ToString() ); + Trace.TraceError( "テクスチャファイルが見つかりませんでした。({0})", fileName ); + return null; + } + } + public static CDirectShow t失敗してもスキップ可能なDirectShowを生成する(string fileName, IntPtr hWnd, bool bオーディオレンダラなし) + { + CDirectShow ds = null; + if( File.Exists( fileName ) ) + { + try + { + ds = new CDirectShow(fileName, hWnd, bオーディオレンダラなし); + } + catch (FileNotFoundException e) + { + Trace.TraceError( e.ToString() ); + Trace.TraceError("動画ファイルが見つかりませんでした。({0})", fileName); + ds = null; // Dispose はコンストラクタ内で実施済み + } + catch (Exception e) + { + Trace.TraceError( e.ToString() ); + Trace.TraceError("DirectShow の生成に失敗しました。[{0}]", fileName); + ds = null; // Dispose はコンストラクタ内で実施済み + } + } + else + { + Trace.TraceError("動画ファイルが見つかりませんでした。({0})", fileName); + return null; + } + + return ds; + } + + /// プロパティ、インデクサには ref は使用できないので注意。 + public static void t安全にDisposeする(ref T obj) + { + if (obj == null) + return; + + var d = obj as IDisposable; + + if (d != null) + d.Dispose(); + + obj = default(T); + } + + public static void t安全にDisposeする(ref T[] array) where T : class, IDisposable //2020.08.01 Mr-Ojii twopointzero氏のソースコードをもとに追加 + { + if (array == null) + { + return; + } + + for (var i = 0; i < array.Length; i++) + { + array[i]?.Dispose(); + array[i] = null; + } + } + + /// + /// そのフォルダの連番画像の最大値を返す。 + /// + public static int t連番画像の枚数を数える(string ディレクトリ名, string プレフィックス = "", string 拡張子 = ".png") + { + int num = 0; + while(File.Exists(ディレクトリ名 + プレフィックス + num + 拡張子)) + { + num++; + } + return num; + } + + /// + /// 曲名テクスチャの縮小倍率を返す。 + /// + /// 曲名テクスチャ。 + /// 等倍で表示するピクセル数の最大値(デフォルト値:645) + /// 曲名テクスチャの縮小倍率。そのテクスチャがnullならば一倍(1f)を返す。 + public static float GetSongNameXScaling(ref CTexture cTexture, int samePixel = 660) + { + if (cTexture == null) return 1f; + float scalingRate = (float)samePixel / (float)cTexture.szテクスチャサイズ.Width; + if (cTexture.szテクスチャサイズ.Width <= samePixel) + scalingRate = 1.0f; + return scalingRate; + } + + /// + /// 難易度を表す数字を列挙体に変換します。 + /// + /// 難易度を表す数字。 + /// Difficulty 列挙体 + public static Difficulty DifficultyNumberToEnum(int number) + { + switch (number) + { + case 0: + return Difficulty.Easy; + case 1: + return Difficulty.Normal; + case 2: + return Difficulty.Hard; + case 3: + return Difficulty.Oni; + case 4: + return Difficulty.Edit; + case 5: + return Difficulty.Tower; + case 6: + return Difficulty.Dan; + default: + throw new IndexOutOfRangeException(); + } + } + + //----------------- + #endregion + + #region [ private ] + //----------------- + private bool bマウスカーソル表示中 = true; + private bool b終了処理完了済み; + private bool bネットワークに接続中 = false; + private long 前回のシステム時刻ms = long.MinValue; + private static CDTX[] dtx = new CDTX[ 4 ]; + + public static TextureLoader Tx = new TextureLoader(); + + private List listトップレベルActivities; + private int n進行描画の戻り値; + private MouseButtons mb = System.Windows.Forms.MouseButtons.Left; + private string strWindowTitle + { + get + { + if ( DTXVmode.Enabled ) + { + return "DTXViewer release " + VERSION; + } + else + { + return "TJAPlayer3 feat.DTXMania"; + } + } + } + private CSound previewSound; + public static long StartupTime + { + get; + private set; + } + + private void t起動処理() + { + #region [ strEXEのあるフォルダを決定する ] + //----------------- +// BEGIN #23629 2010.11.13 from: デバッグ時は Application.ExecutablePath が ($SolutionDir)/bin/x86/Debug/ などになり System/ の読み込みに失敗するので、カレントディレクトリを採用する。(プロジェクトのプロパティ→デバッグ→作業ディレクトリが有効になる) +#if DEBUG + strEXEのあるフォルダ = Environment.CurrentDirectory + @"\"; +#else + strEXEのあるフォルダ = Path.GetDirectoryName( Application.ExecutablePath ) + @"\"; // #23629 2010.11.9 yyagi: set correct pathname where DTXManiaGR.exe is. +#endif + // END #23629 2010.11.13 from + //----------------- + #endregion + + #region [ Config.ini の読込み ] + //--------------------- + NamePlateConfig = new NamePlateConfig(); + NamePlateConfig.tNamePlateConfig(); + ConfigIni = new CConfigIni(); + string path = strEXEのあるフォルダ + "Config.ini"; + if( File.Exists( path ) ) + { + try + { + ConfigIni.tファイルから読み込み( path ); + } + catch (Exception e) + { + //ConfigIni = new CConfigIni(); // 存在してなければ新規生成 + Trace.TraceError( e.ToString() ); + Trace.TraceError( "例外が発生しましたが処理を継続します。 (b8d93255-bbe4-4ca3-8264-7ee5175b19f3)" ); + } + } + this.Window.EnableSystemMenu = TJAPlayer3.ConfigIni.bIsEnabledSystemMenu; // #28200 2011.5.1 yyagi + // 2012.8.22 Config.iniが無いときに初期値が適用されるよう、この設定行をifブロック外に移動 + + //--------------------- + #endregion + #region [ ログ出力開始 ] + //--------------------- + Trace.AutoFlush = true; + if( ConfigIni.bログ出力 ) + { + try + { + Trace.Listeners.Add( new CTraceLogListener( new StreamWriter( System.IO.Path.Combine( strEXEのあるフォルダ, "TJAPlayer3.log" ), false, Encoding.GetEncoding( "Shift_JIS" ) ) ) ); + } + catch ( System.UnauthorizedAccessException ) // #24481 2011.2.20 yyagi + { + int c = (CultureInfo.CurrentUICulture.TwoLetterISOLanguageName == "ja")? 0 : 1; + string[] mes_writeErr = { + "DTXManiaLog.txtへの書き込みができませんでした。書き込みできるようにしてから、再度起動してください。", + "Failed to write DTXManiaLog.txt. Please set it writable and try again." + }; + MessageBox.Show( mes_writeErr[c], "DTXMania boot error", MessageBoxButtons.OK, MessageBoxIcon.Error ); + Environment.Exit(1); + } + } + Trace.WriteLine(""); + Trace.WriteLine( "DTXMania powered by YAMAHA Silent Session Drums" ); + Trace.WriteLine( string.Format( "Release: {0}", VERSION ) ); + Trace.WriteLine( "" ); + Trace.TraceInformation( "----------------------" ); + Trace.TraceInformation( "■ アプリケーションの初期化" ); + Trace.TraceInformation( "OS Version: " + Environment.OSVersion ); + Trace.TraceInformation( "ProcessorCount: " + Environment.ProcessorCount.ToString() ); + Trace.TraceInformation( "CLR Version: " + Environment.Version.ToString() ); + //--------------------- + #endregion + #region [ DTXVmodeクラス の初期化 ] + //--------------------- + //Trace.TraceInformation( "DTXVモードの初期化を行います。" ); + //Trace.Indent(); + try + { + DTXVmode = new CDTXVmode(); + DTXVmode.Enabled = false; + //Trace.TraceInformation( "DTXVモードの初期化を完了しました。" ); + } + finally + { + //Trace.Unindent(); + } + //--------------------- + #endregion + + + #region [ ウィンドウ初期化 ] + //--------------------- + base.Window.StartPosition = FormStartPosition.Manual; // #30675 2013.02.04 ikanick add + base.Window.Location = new Point( ConfigIni.n初期ウィンドウ開始位置X, ConfigIni.n初期ウィンドウ開始位置Y ); // #30675 2013.02.04 ikanick add + + + base.Window.Text = ""; + + base.Window.StartPosition = FormStartPosition.Manual; // #30675 2013.02.04 ikanick add + base.Window.Location = new Point(ConfigIni.n初期ウィンドウ開始位置X, ConfigIni.n初期ウィンドウ開始位置Y); // #30675 2013.02.04 ikanick add + + base.Window.ClientSize = new Size(ConfigIni.nウインドウwidth, ConfigIni.nウインドウheight); // #34510 yyagi 2010.10.31 to change window size got from Config.ini +#if !WindowedFullscreen + if (!ConfigIni.bウィンドウモード) // #23510 2010.11.02 yyagi: add; to recover window size in case bootup with fullscreen mode + { // #30666 2013.02.02 yyagi: currentClientSize should be always made +#endif + currentClientSize = new Size( ConfigIni.nウインドウwidth, ConfigIni.nウインドウheight ); +#if !WindowedFullscreen + } +#endif + base.Window.MaximizeBox = true; // #23510 2010.11.04 yyagi: to support maximizing window + base.Window.FormBorderStyle = FormBorderStyle.Sizable; // #23510 2010.10.27 yyagi: changed from FixedDialog to Sizable, to support window resize + // #30666 2013.02.02 yyagi: moved the code to t全画面_ウインドウモード切り替え() + base.Window.ShowIcon = true; + base.Window.Icon = global::TJAPlayer3.Properties.Resources.tjap3; + base.Window.KeyDown += new KeyEventHandler( this.Window_KeyDown ); + base.Window.MouseUp +=new MouseEventHandler( this.Window_MouseUp); + base.Window.MouseDoubleClick += new MouseEventHandler(this.Window_MouseDoubleClick); // #23510 2010.11.13 yyagi: to go fullscreen mode + base.Window.ResizeEnd += new EventHandler(this.Window_ResizeEnd); // #23510 2010.11.20 yyagi: to set resized window size in Config.ini + base.Window.ApplicationActivated += new EventHandler(this.Window_ApplicationActivated); + base.Window.ApplicationDeactivated += new EventHandler( this.Window_ApplicationDeactivated ); + //--------------------- + #endregion + #region [ Direct3D9Exを使うかどうか判定 ] + #endregion + #region [ Direct3D9 デバイスの生成 ] + //--------------------- + DeviceSettings settings = new DeviceSettings(); +#if WindowedFullscreen + settings.Windowed = true; // #30666 2013.2.2 yyagi: Fullscreenmode is "Maximized window" mode +#else + settings.Windowed = ConfigIni.bウィンドウモード; +#endif + settings.BackBufferWidth = SampleFramework.GameWindowSize.Width; + settings.BackBufferHeight = SampleFramework.GameWindowSize.Height; +// settings.BackBufferCount = 3; + settings.EnableVSync = ConfigIni.b垂直帰線待ちを行う; +// settings.BackBufferFormat = Format.A8R8G8B8; +// settings.MultisampleType = MultisampleType.FourSamples; +// settings.MultisampleQuality = 4; +// settings.MultisampleType = MultisampleType.None; +// settings.MultisampleQuality = 0; + + try + { + base.GraphicsDeviceManager.ChangeDevice(settings); + } + catch (DeviceCreationException e) + { + Trace.TraceError(e.ToString()); + MessageBox.Show(e.ToString(), "DTXMania failed to boot: DirectX9 Initialize Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + Environment.Exit(-1); + } + + base.IsFixedTimeStep = false; +// base.TargetElapsedTime = TimeSpan.FromTicks( 10000000 / 75 ); + base.Window.ClientSize = new Size(ConfigIni.nウインドウwidth, ConfigIni.nウインドウheight); // #23510 2010.10.31 yyagi: to recover window size. width and height are able to get from Config.ini. + base.InactiveSleepTime = TimeSpan.FromMilliseconds((float)(ConfigIni.n非フォーカス時スリープms)); // #23568 2010.11.3 yyagi: to support valiable sleep value when !IsActive + // #23568 2010.11.4 ikanick changed ( 1 -> ConfigIni ) +#if WindowedFullscreen + this.t全画面_ウィンドウモード切り替え(); // #30666 2013.2.2 yyagi: finalize settings for "Maximized window mode" +#endif + actFlushGPU = new CActFlushGPU(); + //--------------------- + #endregion + + DTX = null; + + #region [ Skin の初期化 ] + //--------------------- + Trace.TraceInformation( "スキンの初期化を行います。" ); + Trace.Indent(); + try + { + Skin = new CSkin( TJAPlayer3.ConfigIni.strSystemSkinSubfolderFullName, false); + TJAPlayer3.ConfigIni.strSystemSkinSubfolderFullName = TJAPlayer3.Skin.GetCurrentSkinSubfolderFullName( true ); // 旧指定のSkinフォルダが消滅していた場合に備える + Trace.TraceInformation( "スキンの初期化を完了しました。" ); + } + catch (Exception e) + { + Trace.TraceInformation( "スキンの初期化に失敗しました。" ); + throw; + } + finally + { + Trace.Unindent(); + } + //--------------------- + #endregion + //----------- + #region [ Timer の初期化 ] + //--------------------- + Trace.TraceInformation( "タイマの初期化を行います。" ); + Trace.Indent(); + try + { + Timer = new CTimer( CTimer.E種別.MultiMedia ); + Trace.TraceInformation( "タイマの初期化を完了しました。" ); + } + finally + { + Trace.Unindent(); + } + //--------------------- + #endregion + //----------- + + #region [ FPS カウンタの初期化 ] + //--------------------- + Trace.TraceInformation( "FPSカウンタの初期化を行います。" ); + Trace.Indent(); + try + { + FPS = new CFPS(); + Trace.TraceInformation( "FPSカウンタを生成しました。" ); + } + finally + { + Trace.Unindent(); + } + //--------------------- + #endregion + #region [ act文字コンソールの初期化 ] + //--------------------- + Trace.TraceInformation( "文字コンソールの初期化を行います。" ); + Trace.Indent(); + try + { + act文字コンソール = new C文字コンソール(); + Trace.TraceInformation( "文字コンソールを生成しました。" ); + act文字コンソール.On活性化(); + Trace.TraceInformation( "文字コンソールを活性化しました。" ); + Trace.TraceInformation( "文字コンソールの初期化を完了しました。" ); + } + catch( Exception exception ) + { + Trace.TraceError( exception.ToString() ); + Trace.TraceError( "文字コンソールの初期化に失敗しました。" ); + } + finally + { + Trace.Unindent(); + } + //--------------------- + #endregion + #region [ Input管理 の初期化 ] + //--------------------- + Trace.TraceInformation( "DirectInput, MIDI入力の初期化を行います。" ); + Trace.Indent(); + try + { + bool bUseMIDIIn = !DTXVmode.Enabled; + Input管理 = new CInput管理( base.Window.Handle, bUseMIDIIn ); + foreach( IInputDevice device in Input管理.list入力デバイス ) + { + if( ( device.e入力デバイス種別 == E入力デバイス種別.Joystick ) && !ConfigIni.dicJoystick.ContainsValue( device.GUID ) ) + { + int key = 0; + while( ConfigIni.dicJoystick.ContainsKey( key ) ) + { + key++; + } + ConfigIni.dicJoystick.Add( key, device.GUID ); + } + } + foreach( IInputDevice device2 in Input管理.list入力デバイス ) + { + if( device2.e入力デバイス種別 == E入力デバイス種別.Joystick ) + { + foreach( KeyValuePair pair in ConfigIni.dicJoystick ) + { + if( device2.GUID.Equals( pair.Value ) ) + { + ( (CInputJoystick) device2 ).SetID( pair.Key ); + break; + } + } + continue; + } + } + Trace.TraceInformation( "DirectInput の初期化を完了しました。" ); + } + catch( Exception exception2 ) + { + Trace.TraceError( "DirectInput, MIDI入力の初期化に失敗しました。" ); + throw; + } + finally + { + Trace.Unindent(); + } + //--------------------- + #endregion + #region [ Pad の初期化 ] + //--------------------- + Trace.TraceInformation( "パッドの初期化を行います。" ); + Trace.Indent(); + try + { + Pad = new CPad( ConfigIni, Input管理 ); + Trace.TraceInformation( "パッドの初期化を完了しました。" ); + } + catch( Exception exception3 ) + { + Trace.TraceError( exception3.ToString() ); + Trace.TraceError( "パッドの初期化に失敗しました。" ); + } + finally + { + Trace.Unindent(); + } + //--------------------- + #endregion + #region [ Sound管理 の初期化 ] + //--------------------- + Trace.TraceInformation( "サウンドデバイスの初期化を行います。" ); + Trace.Indent(); + try + { + ESoundDeviceType soundDeviceType; + switch ( TJAPlayer3.ConfigIni.nSoundDeviceType ) + { + case 0: + soundDeviceType = ESoundDeviceType.DirectSound; + break; + case 1: + soundDeviceType = ESoundDeviceType.ASIO; + break; + case 2: + soundDeviceType = ESoundDeviceType.ExclusiveWASAPI; + break; + default: + soundDeviceType = ESoundDeviceType.Unknown; + break; + } + Sound管理 = new CSound管理(base.Window.Handle, + soundDeviceType, + TJAPlayer3.ConfigIni.nWASAPIBufferSizeMs, + // CDTXMania.ConfigIni.nASIOBufferSizeMs, + 0, + TJAPlayer3.ConfigIni.nASIODevice, + TJAPlayer3.ConfigIni.bUseOSTimer + ); + //Sound管理 = FDK.CSound管理.Instance; + //Sound管理.t初期化( soundDeviceType, 0, 0, CDTXMania.ConfigIni.nASIODevice, base.Window.Handle ); + + + Trace.TraceInformation("Initializing loudness scanning, song gain control, and sound group level control..."); + Trace.Indent(); + try + { + actScanningLoudness = new CActScanningLoudness(); + actScanningLoudness.On活性化(); + LoudnessMetadataScanner.ScanningStateChanged += + (_, args) => actScanningLoudness.bIsActivelyScanning = args.IsActivelyScanning; + LoudnessMetadataScanner.StartBackgroundScanning(); + + SongGainController = new SongGainController(); + ConfigIniToSongGainControllerBinder.Bind(ConfigIni, SongGainController); + + SoundGroupLevelController = new SoundGroupLevelController(CSound.listインスタンス); + ConfigIniToSoundGroupLevelControllerBinder.Bind(ConfigIni, SoundGroupLevelController); + } + finally + { + Trace.Unindent(); + Trace.TraceInformation("Initialized loudness scanning, song gain control, and sound group level control."); + } + + ShowWindowTitleWithSoundType(); + FDK.CSound管理.bIsTimeStretch = TJAPlayer3.ConfigIni.bTimeStretch; + Sound管理.nMasterVolume = TJAPlayer3.ConfigIni.nMasterVolume; + //FDK.CSound管理.bIsMP3DecodeByWindowsCodec = CDTXMania.ConfigIni.bNoMP3Streaming; + Trace.TraceInformation( "サウンドデバイスの初期化を完了しました。" ); + } + catch (Exception e) + { + throw new NullReferenceException("サウンドデバイスがひとつも有効になっていないため、サウンドデバイスの初期化ができませんでした。", e); + } + finally + { + Trace.Unindent(); + } + //--------------------- + #endregion + #region [ Songs管理 の初期化 ] + //--------------------- + Trace.TraceInformation( "曲リストの初期化を行います。" ); + Trace.Indent(); + try + { + Songs管理 = new CSongs管理(); +// Songs管理_裏読 = new CSongs管理(); + EnumSongs = new CEnumSongs(); + actEnumSongs = new CActEnumSongs(); + Trace.TraceInformation( "曲リストの初期化を完了しました。" ); + } + catch( Exception e ) + { + Trace.TraceError( e.ToString() ); + Trace.TraceError( "曲リストの初期化に失敗しました。" ); + } + finally + { + Trace.Unindent(); + } + //--------------------- + #endregion + #region [ CAvi の初期化 ] + //--------------------- + CAvi.t初期化(); + //--------------------- + #endregion + #region [ Random の初期化 ] + //--------------------- + Random = new Random( (int) Timer.nシステム時刻 ); + //--------------------- + #endregion + #region [ ステージの初期化 ] + //--------------------- + r現在のステージ = null; + r直前のステージ = null; + stage起動 = new CStage起動(); + stageタイトル = new CStageタイトル(); +// stageオプション = new CStageオプション(); + stageコンフィグ = new CStageコンフィグ(); + stage選曲 = new CStage選曲(); + stage段位選択 = new CStage段位選択(); + stage曲読み込み = new CStage曲読み込み(); + stage演奏ドラム画面 = new CStage演奏ドラム画面(); + stage結果 = new CStage結果(); + stageChangeSkin = new CStageChangeSkin(); + stage終了 = new CStage終了(); + NamePlate = new CNamePlate(); + this.listトップレベルActivities = new List(); + this.listトップレベルActivities.Add( actEnumSongs ); + this.listトップレベルActivities.Add( act文字コンソール ); + this.listトップレベルActivities.Add( stage起動 ); + this.listトップレベルActivities.Add( stageタイトル ); +// this.listトップレベルActivities.Add( stageオプション ); + this.listトップレベルActivities.Add( stageコンフィグ ); + this.listトップレベルActivities.Add( stage選曲 ); + this.listトップレベルActivities.Add( stage段位選択 ); + this.listトップレベルActivities.Add( stage曲読み込み ); + this.listトップレベルActivities.Add( stage演奏ドラム画面 ); + this.listトップレベルActivities.Add( stage結果 ); + this.listトップレベルActivities.Add( stageChangeSkin ); + this.listトップレベルActivities.Add( stage終了 ); + this.listトップレベルActivities.Add( actFlushGPU ); + //--------------------- + #endregion + #region [ プラグインの検索と生成 ] + //--------------------- + PluginHost = new CPluginHost(); + + Trace.TraceInformation( "プラグインの検索と生成を行います。" ); + Trace.Indent(); + try + { + this.tプラグイン検索と生成(); + Trace.TraceInformation( "プラグインの検索と生成を完了しました。" ); + } + finally + { + Trace.Unindent(); + } + //--------------------- + #endregion + #region [ プラグインの初期化 ] + //--------------------- + if( this.listプラグイン != null && this.listプラグイン.Count > 0 ) + { + Trace.TraceInformation( "プラグインの初期化を行います。" ); + Trace.Indent(); + try + { + foreach( STPlugin st in this.listプラグイン ) + { + Directory.SetCurrentDirectory( st.strプラグインフォルダ ); + st.plugin.On初期化( this.PluginHost ); + st.plugin.OnManagedリソースの作成(); + st.plugin.OnUnmanagedリソースの作成(); + Directory.SetCurrentDirectory( TJAPlayer3.strEXEのあるフォルダ ); + } + Trace.TraceInformation( "すべてのプラグインの初期化を完了しました。" ); + } + catch + { + Trace.TraceError( "プラグインのどれかの初期化に失敗しました。" ); + throw; + } + finally + { + Trace.Unindent(); + } + } + + //--------------------- + #endregion + + #region Discordの処理 + Discord.Initialize("784989629728161813"); + StartupTime = Discord.GetUnixTime(); + Discord.UpdatePresence("", Properties.Discord.Stage_StartUp, StartupTime); + #endregion + + + Trace.TraceInformation( "アプリケーションの初期化を完了しました。" ); + + + #region [ 最初のステージの起動 ] + //--------------------- + Trace.TraceInformation( "----------------------" ); + Trace.TraceInformation( "■ 起動" ); + + if ( TJAPlayer3.bコンパクトモード ) + { + r現在のステージ = stage曲読み込み; + } + else + { + r現在のステージ = stage起動; + } + r現在のステージ.On活性化(); + + //--------------------- + #endregion + } + + public void ShowWindowTitleWithSoundType() + { + string delay = ""; + if ( Sound管理.GetCurrentSoundDeviceType() != "DirectSound" ) + { + delay = "(" + Sound管理.GetSoundDelay() + "ms)"; + } + AssemblyName asmApp = Assembly.GetExecutingAssembly().GetName(); + base.Window.Text = asmApp.Name + " Ver." + VERSION + " (" + Sound管理.GetCurrentSoundDeviceType() + delay + ")"; + } + + private void t終了処理() + { + if( !this.b終了処理完了済み ) + { + Trace.TraceInformation( "----------------------" ); + Trace.TraceInformation( "■ アプリケーションの終了" ); + #region [ 曲検索の終了処理 ] + //--------------------- + if ( actEnumSongs != null ) + { + Trace.TraceInformation( "曲検索actの終了処理を行います。" ); + Trace.Indent(); + try + { + actEnumSongs.On非活性化(); + actEnumSongs= null; + Trace.TraceInformation( "曲検索actの終了処理を完了しました。" ); + } + catch ( Exception e ) + { + Trace.TraceError( e.ToString() ); + Trace.TraceError( "曲検索actの終了処理に失敗しました。" ); + } + finally + { + Trace.Unindent(); + } + } + //--------------------- + #endregion + #region [ 現在のステージの終了処理 ] + //--------------------- + if( TJAPlayer3.r現在のステージ != null && TJAPlayer3.r現在のステージ.b活性化してる ) // #25398 2011.06.07 MODIFY FROM + { + Trace.TraceInformation( "現在のステージを終了します。" ); + Trace.Indent(); + try + { + r現在のステージ.On非活性化(); + Trace.TraceInformation( "現在のステージの終了処理を完了しました。" ); + } + finally + { + Trace.Unindent(); + } + } + //--------------------- + #endregion + #region [ プラグインの終了処理 ] + //--------------------- + if (this.listプラグイン != null && this.listプラグイン.Count > 0) + { + Trace.TraceInformation( "すべてのプラグインを終了します。" ); + Trace.Indent(); + try + { + foreach( STPlugin st in this.listプラグイン ) + { + Directory.SetCurrentDirectory( st.strプラグインフォルダ ); + st.plugin.OnUnmanagedリソースの解放(); + st.plugin.OnManagedリソースの解放(); + st.plugin.On終了(); + Directory.SetCurrentDirectory( TJAPlayer3.strEXEのあるフォルダ ); + } + PluginHost = null; + Trace.TraceInformation( "すべてのプラグインの終了処理を完了しました。" ); + } + finally + { + Trace.Unindent(); + } + } + //--------------------- + #endregion + #region Discordの処理 + Discord.Shutdown(); + #endregion + #region [ 曲リストの終了処理 ] + //--------------------- + if (Songs管理 != null) + { + Trace.TraceInformation( "曲リストの終了処理を行います。" ); + Trace.Indent(); + try + { + Songs管理 = null; + Trace.TraceInformation( "曲リストの終了処理を完了しました。" ); + } + catch( Exception exception ) + { + Trace.TraceError( exception.ToString() ); + Trace.TraceError( "曲リストの終了処理に失敗しました。" ); + } + finally + { + Trace.Unindent(); + } + } + CAvi.t終了(); + //--------------------- + #endregion + #region TextureLoaderの処理 + Tx.DisposeTexture(); + #endregion + #region [ スキンの終了処理 ] + //--------------------- + if (Skin != null) + { + Trace.TraceInformation( "スキンの終了処理を行います。" ); + Trace.Indent(); + try + { + Skin.Dispose(); + Skin = null; + Trace.TraceInformation( "スキンの終了処理を完了しました。" ); + } + catch( Exception exception2 ) + { + Trace.TraceError( exception2.ToString() ); + Trace.TraceError( "スキンの終了処理に失敗しました。" ); + } + finally + { + Trace.Unindent(); + } + } + //--------------------- + #endregion + #region [ DirectSoundの終了処理 ] + //--------------------- + if (Sound管理 != null) + { + Trace.TraceInformation( "DirectSound の終了処理を行います。" ); + Trace.Indent(); + try + { + Sound管理.Dispose(); + Sound管理 = null; + Trace.TraceInformation( "DirectSound の終了処理を完了しました。" ); + } + catch( Exception exception3 ) + { + Trace.TraceError( exception3.ToString() ); + Trace.TraceError( "DirectSound の終了処理に失敗しました。" ); + } + finally + { + Trace.Unindent(); + } + } + //--------------------- + #endregion + #region [ パッドの終了処理 ] + //--------------------- + if (Pad != null) + { + Trace.TraceInformation( "パッドの終了処理を行います。" ); + Trace.Indent(); + try + { + Pad = null; + Trace.TraceInformation( "パッドの終了処理を完了しました。" ); + } + catch( Exception exception4 ) + { + Trace.TraceError( exception4.ToString() ); + Trace.TraceError( "パッドの終了処理に失敗しました。" ); + } + finally + { + Trace.Unindent(); + } + } + //--------------------- + #endregion + #region [ DirectInput, MIDI入力の終了処理 ] + //--------------------- + if (Input管理 != null) + { + Trace.TraceInformation( "DirectInput, MIDI入力の終了処理を行います。" ); + Trace.Indent(); + try + { + Input管理.Dispose(); + Input管理 = null; + Trace.TraceInformation( "DirectInput, MIDI入力の終了処理を完了しました。" ); + } + catch( Exception exception5 ) + { + Trace.TraceError( exception5.ToString() ); + Trace.TraceError( "DirectInput, MIDI入力の終了処理に失敗しました。" ); + } + finally + { + Trace.Unindent(); + } + } + //--------------------- + #endregion + #region [ 文字コンソールの終了処理 ] + //--------------------- + if (act文字コンソール != null) + { + Trace.TraceInformation( "文字コンソールの終了処理を行います。" ); + Trace.Indent(); + try + { + act文字コンソール.On非活性化(); + act文字コンソール = null; + Trace.TraceInformation( "文字コンソールの終了処理を完了しました。" ); + } + catch( Exception exception6 ) + { + Trace.TraceError( exception6.ToString() ); + Trace.TraceError( "文字コンソールの終了処理に失敗しました。" ); + } + finally + { + Trace.Unindent(); + } + } + //--------------------- + #endregion + #region [ FPSカウンタの終了処理 ] + //--------------------- + Trace.TraceInformation("FPSカウンタの終了処理を行います。"); + Trace.Indent(); + try + { + if( FPS != null ) + { + FPS = null; + } + Trace.TraceInformation( "FPSカウンタの終了処理を完了しました。" ); + } + finally + { + Trace.Unindent(); + } + //--------------------- + #endregion + #region [ タイマの終了処理 ] + //--------------------- + Trace.TraceInformation("タイマの終了処理を行います。"); + Trace.Indent(); + try + { + if( Timer != null ) + { + Timer.Dispose(); + Timer = null; + Trace.TraceInformation( "タイマの終了処理を完了しました。" ); + } + else + { + Trace.TraceInformation( "タイマは使用されていません。" ); + } + } + finally + { + Trace.Unindent(); + } + //--------------------- + #endregion + #region [ Config.iniの出力 ] + //--------------------- + Trace.TraceInformation("Config.ini を出力します。"); +// if ( ConfigIni.bIsSwappedGuitarBass ) // #24063 2011.1.16 yyagi ギターベースがスワップしているときは元に戻す + string str = strEXEのあるフォルダ + "Config.ini"; + Trace.Indent(); + try + { + if ( DTXVmode.Enabled ) + { + DTXVmode.tUpdateConfigIni(); + Trace.TraceInformation( "DTXVモードの設定情報を、Config.iniに保存しました。" ); + } + else + { + ConfigIni.t書き出し( str ); + Trace.TraceInformation( "保存しました。({0})", str ); + } + } + catch( Exception e ) + { + Trace.TraceError( e.ToString() ); + Trace.TraceError( "Config.ini の出力に失敗しました。({0})", str ); + } + finally + { + Trace.Unindent(); + } + + Trace.TraceInformation("Deinitializing loudness scanning, song gain control, and sound group level control..."); + Trace.Indent(); + try + { + SoundGroupLevelController = null; + SongGainController = null; + LoudnessMetadataScanner.StopBackgroundScanning(joinImmediately: true); + actScanningLoudness.On非活性化(); + actScanningLoudness = null; + } + finally + { + Trace.Unindent(); + Trace.TraceInformation("Deinitialized loudness scanning, song gain control, and sound group level control."); + } + + ConfigIni = null; + + //--------------------- + #endregion + #region [ DTXVmodeの終了処理 ] + //--------------------- + //Trace.TraceInformation( "DTXVモードの終了処理を行います。" ); + //Trace.Indent(); + try + { + if ( DTXVmode != null ) + { + DTXVmode = null; + //Trace.TraceInformation( "DTXVモードの終了処理を完了しました。" ); + } + else + { + //Trace.TraceInformation( "DTXVモードは使用されていません。" ); + } + } + finally + { + //Trace.Unindent(); + } + //--------------------- + #endregion + #region [ DirectXの終了処理 ] + base.GraphicsDeviceManager.Dispose(); + #endregion + Trace.TraceInformation( "アプリケーションの終了処理を完了しました。" ); + + + this.b終了処理完了済み = true; + } + } + private CScoreIni tScoreIniへBGMAdjustとHistoryとPlayCountを更新(string str新ヒストリ行) + { + bool bIsUpdatedDrums, bIsUpdatedGuitar, bIsUpdatedBass; + string strFilename = DTX.strファイル名の絶対パス + ".score.ini"; + CScoreIni ini = new CScoreIni( strFilename ); + if( !File.Exists( strFilename ) ) + { + ini.stファイル.Title = DTX.TITLE; + ini.stファイル.Name = DTX.strファイル名; + ini.stファイル.Hash = CScoreIni.tファイルのMD5を求めて返す( DTX.strファイル名の絶対パス ); + for( int i = 0; i < 6; i++ ) + { + ini.stセクション[ i ].nPerfectになる範囲ms = nPerfect範囲ms; + ini.stセクション[ i ].nGreatになる範囲ms = nGreat範囲ms; + ini.stセクション[ i ].nGoodになる範囲ms = nGood範囲ms; + ini.stセクション[ i ].nPoorになる範囲ms = nPoor範囲ms; + } + } + ini.stファイル.BGMAdjust = DTX.nBGMAdjust; + CScoreIni.t更新条件を取得する( out bIsUpdatedDrums, out bIsUpdatedGuitar, out bIsUpdatedBass ); + if( bIsUpdatedDrums || bIsUpdatedGuitar || bIsUpdatedBass ) + { + if( bIsUpdatedDrums ) + { + ini.stファイル.PlayCountDrums++; + } + if( bIsUpdatedGuitar ) + { + ini.stファイル.PlayCountGuitar++; + } + if( bIsUpdatedBass ) + { + ini.stファイル.PlayCountBass++; + } + ini.tヒストリを追加する( str新ヒストリ行 ); + if( !bコンパクトモード ) + { + stage選曲.r確定されたスコア.譜面情報.演奏回数.Drums = ini.stファイル.PlayCountDrums; + stage選曲.r確定されたスコア.譜面情報.演奏回数.Guitar = ini.stファイル.PlayCountGuitar; + stage選曲.r確定されたスコア.譜面情報.演奏回数.Bass = ini.stファイル.PlayCountBass; + for( int j = 0; j < ini.stファイル.History.Length; j++ ) + { + stage選曲.r確定されたスコア.譜面情報.演奏履歴[ j ] = ini.stファイル.History[ j ]; + } + } + } + if( ConfigIni.bScoreIniを出力する ) + { + ini.t書き出し( strFilename ); + } + + return ini; + } + private void tガベージコレクションを実行する() + { + GC.Collect(GC.MaxGeneration); + GC.WaitForPendingFinalizers(); + GC.Collect(GC.MaxGeneration); + } + private void tプラグイン検索と生成() + { + this.listプラグイン = new List(); + + string strIPluginActivityの名前 = typeof( IPluginActivity ).FullName; + string strプラグインフォルダパス = strEXEのあるフォルダ + "Plugins\\"; + + this.t指定フォルダ内でのプラグイン検索と生成( strプラグインフォルダパス, strIPluginActivityの名前 ); + + if( this.listプラグイン.Count > 0 ) + Trace.TraceInformation( this.listプラグイン.Count + " 個のプラグインを読み込みました。" ); + } + + public void RefleshSkin() + { + Trace.TraceInformation("スキン変更:" + TJAPlayer3.Skin.GetCurrentSkinSubfolderFullName(false)); + + TJAPlayer3.act文字コンソール.On非活性化(); + + TJAPlayer3.Skin.Dispose(); + TJAPlayer3.Skin = null; + TJAPlayer3.Skin = new CSkin(TJAPlayer3.ConfigIni.strSystemSkinSubfolderFullName, false); + + + TJAPlayer3.Tx.DisposeTexture(); + TJAPlayer3.Tx.LoadTexture(); + + TJAPlayer3.act文字コンソール.On活性化(); + } + #region [ Windowイベント処理 ] + private void t指定フォルダ内でのプラグイン検索と生成( string strプラグインフォルダパス, string strプラグイン型名 ) + { + // 指定されたパスが存在しないとエラー + if( !Directory.Exists( strプラグインフォルダパス ) ) + { + Trace.TraceWarning( "プラグインフォルダが存在しません。(" + strプラグインフォルダパス + ")" ); + return; + } + + // (1) すべての *.dll について… + string[] strDLLs = System.IO.Directory.GetFiles( strプラグインフォルダパス, "*.dll" ); + foreach( string dllName in strDLLs ) + { + try + { + // (1-1) dll をアセンブリとして読み込む。 + System.Reflection.Assembly asm = System.Reflection.Assembly.LoadFrom( dllName ); + + // (1-2) アセンブリ内のすべての型について、プラグインとして有効か調べる + foreach( Type t in asm.GetTypes() ) + { + // (1-3) ↓クラスであり↓Publicであり↓抽象クラスでなく↓IPlugin型のインスタンスが作れる 型を持っていれば有効 + if( t.IsClass && t.IsPublic && !t.IsAbstract && t.GetInterface( strプラグイン型名 ) != null ) + { + // (1-4) クラス名からインスタンスを作成する + var st = new STPlugin() { + plugin = (IPluginActivity) asm.CreateInstance( t.FullName ), + strプラグインフォルダ = Path.GetDirectoryName( dllName ), + strアセンブリ簡易名 = asm.GetName().Name, + Version = asm.GetName().Version, + }; + + // (1-5) プラグインリストへ登録 + this.listプラグイン.Add( st ); + Trace.TraceInformation( "プラグイン {0} ({1}, {2}, {3}) を読み込みました。", t.FullName, Path.GetFileName( dllName ), st.strアセンブリ簡易名, st.Version.ToString() ); + } + } + } + catch (Exception e) + { + Trace.TraceError( e.ToString() ); + Trace.TraceInformation( dllName + " からプラグインを生成することに失敗しました。スキップします。" ); + } + } + + // (2) サブフォルダがあれば再帰する + string[] strDirs = Directory.GetDirectories( strプラグインフォルダパス, "*" ); + foreach( string dir in strDirs ) + this.t指定フォルダ内でのプラグイン検索と生成( dir + "\\", strプラグイン型名 ); + } + //----------------- + private void Window_ApplicationActivated( object sender, EventArgs e ) + { + this.bApplicationActive = true; + } + private void Window_ApplicationDeactivated( object sender, EventArgs e ) + { + this.bApplicationActive = false; + } + private void Window_KeyDown( object sender, KeyEventArgs e ) + { + if ( e.KeyCode == Keys.Menu ) + { + e.Handled = true; + e.SuppressKeyPress = true; + } + else if ( ( e.KeyCode == Keys.Return ) && e.Alt ) + { + if ( ConfigIni != null ) + { + ConfigIni.bウィンドウモード = !ConfigIni.bウィンドウモード; + this.t全画面_ウィンドウモード切り替え(); + } + e.Handled = true; + e.SuppressKeyPress = true; + } + else + { + for ( int i = 0; i < 0x10; i++ ) + { + if ( ConfigIni.KeyAssign.System.Capture[ i ].コード > 0 && + e.KeyCode == DeviceConstantConverter.KeyToKeyCode( (SlimDXKeys.Key) ConfigIni.KeyAssign.System.Capture[ i ].コード ) ) + { + // Debug.WriteLine( "capture: " + string.Format( "{0:2x}", (int) e.KeyCode ) + " " + (int) e.KeyCode ); + string strFullPath = + Path.Combine( TJAPlayer3.strEXEのあるフォルダ, "Capture_img" ); + strFullPath = Path.Combine( strFullPath, DateTime.Now.ToString( "yyyyMMddHHmmss" ) + ".png" ); + SaveResultScreen( strFullPath ); + } + } + } + } + private void Window_MouseUp( object sender, MouseEventArgs e ) + { + mb = e.Button; + } + + private void Window_MouseDoubleClick( object sender, MouseEventArgs e) // #23510 2010.11.13 yyagi: to go full screen mode + { + if ( mb.Equals(MouseButtons.Left) && ConfigIni.bIsAllowedDoubleClickFullscreen ) // #26752 2011.11.27 yyagi + { + ConfigIni.bウィンドウモード = false; + this.t全画面_ウィンドウモード切り替え(); + } + } + private void Window_ResizeEnd(object sender, EventArgs e) // #23510 2010.11.20 yyagi: to get resized window size + { + if ( ConfigIni.bウィンドウモード ) + { + ConfigIni.n初期ウィンドウ開始位置X = base.Window.Location.X; // #30675 2013.02.04 ikanick add + ConfigIni.n初期ウィンドウ開始位置Y = base.Window.Location.Y; // + } + + ConfigIni.nウインドウwidth = (ConfigIni.bウィンドウモード) ? base.Window.ClientSize.Width : currentClientSize.Width; // #23510 2010.10.31 yyagi add + ConfigIni.nウインドウheight = (ConfigIni.bウィンドウモード) ? base.Window.ClientSize.Height : currentClientSize.Height; + } + #endregion + #endregion + } +} diff --git a/TJAPlayer3/DTXManiaGR.exe.x86.manifest b/TJAPlayer3/DTXManiaGR.exe.x86.manifest new file mode 100644 index 00000000..0bfcb3b0 --- /dev/null +++ b/TJAPlayer3/DTXManiaGR.exe.x86.manifest @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/TJAPlayer3/GlobalSuppressions.cs b/TJAPlayer3/GlobalSuppressions.cs new file mode 100644 index 0000000000000000000000000000000000000000..92c01f871d97730a8f3eb0aa9c317d9dcb54537f GIT binary patch literal 26902 zcmeHQU2IfE6rTEk(S+!O#>A%vVypqn0g=QSO|}$FcMGin zf{9u|LoFdB)dx`%6OF;(gAg!05KWCS!G}srG?6D0s)=cRFcE*gGqabw_X3-xu*=*! z*)+R*XLf$hH*@C9nQu=2{U;&%#1LMV7!*mdQ;divQ7__n9}aAD{}Iw zEmC-I6l?K)JMu)3(kFjAgq)lb7X`5kuRKz@^bN&#F2xcJVhNsbDS269PNY#6*TcDO zS<@1+9PL?vS+#0voOkf9zLbf74EQe}<7ekCzS4j_XZe3(t`rANKvU z!rEi|JB!Z_au%d@p2H{h2(XvwTAvSF>g*5WvQ?f+{XWVU)F_t13&b8EuBQPtl={=+ zvK=;B)DK^f!9o`-mIrWZ26{P+G7BRsYmh3AW*uftd8C4=tTzfpuW&GpwSyy`fQ~UU zQE97%imySQPiu5v4}&QAb#O4XvY8$Hl{e=rPw}_I=n8#xMP*|mdSc4Ad6wPYK#T|vv8 zE3d)Y--JEFAbQ1?p6jD;z3v$??<07(p*;M2T7LVb&Dv>L?hEar%~C4$Qr|hBr2BUk zMoZOdpVtbjkw*)kuQ7YV?D%xpea|12<(Ti+vN(d}Efed6@}o44J`xMx8WJ8qN>K8Z z&#(C)8MFgS*ENH3^=v(TP&Olg8FIDXAKuCc@Y_CS&eq1mT^+>C{JXRB&t<1pzRsF; zvHI)c&7(3O>ql24!?kZ`Zj+6jJG0W6ea`zr2k*QiWp?{gpGSfB?nds`RSy09SoT4g zD_QG#q8jeeywFDRlRiE{46~J)Ul#WFdvI=V!5hfjUFA(;k6ai2ETr-66F%3sU@J$F zo|5z3&3XI1fr^{J9!GA4EtbLK*D21>3HqFVp*do`;#y>hfH%-P=hzZLmI3=^OTC@0 zf2q=YJ&cgTgZUtQ3rTTKTk+hzxswC~V^DlV7mLz-x{y3p4Gc3tE*q*fpd1&ccF25& z5k5`t)2C#Rac{}#fz0kVr(*^ay)fA`KASd}=z_@*tb+oyKHoT1Y(-|1Wvg&v7zc~r ztS=sOzmk>TLx=6D2yQB_!(J@{TPliAEn?2t0dm)Rr&k*fr;q6hI1e-Q*T{6tprdZg z>x0fopz|{|?|rq+V528ChmL;JW3bT;o740aX3i<>=P%QHWbn}qpL6s9ZidYmWQs9b z^jUGHfeQNvel*xUH<=lu8!ASRd2^*43nOeXCgbuvfg>9pe`%2u zKGsY4L%^jofP|cec3p)7iuO zO@t(zvj*b~S8KHMX}+GLyxblwEOC0`h#PG~v!rmN+2zmOJlk4V2CqSgx!4?E>Hour zC-5aVz#`;`SRIlrI*e}_$$jLz`fXT6nbXSY{s>uXar0e8fxnS1n{PZU=4a=CLLTK0 zO8(<|d3)ZH(a@9fc^H7Tz7maqfPQN9W+qlJuQxjo?;AQ*;u#a#40$w}v^ z5j?K0H?P8QN3uK`;o$8nPFWY2W$n<#QSi!or1oymj_FBR+#EO#_Qnk5sE+viMfwd)n-9UYnL^wod%U60 zMQ_j{;s~JS{$EYK{BJE>?$*tZZkwQ=+Urt1_+2j@Ksj|_AzVQurbV&w{tS&#iqf>d zU6s9$dgw0V|Mj9;Roa4j@hkm+)@A9faL?pU`AX(X*O(R?iWDCUR(En~o5q-KUxrAUTxrn~9QRVi^^!Fs#gXfdevHn0m TzU)2ldafvi1RW{j#5Mj0Q)2hs literal 0 HcmV?d00001 diff --git a/TJAPlayer3/Items/CItemBase.cs b/TJAPlayer3/Items/CItemBase.cs new file mode 100644 index 00000000..7a1be928 --- /dev/null +++ b/TJAPlayer3/Items/CItemBase.cs @@ -0,0 +1,120 @@ +using System; +using System.Globalization; +using System.Collections.Generic; +using System.Text; +using System.Diagnostics; + +namespace TJAPlayer3 +{ + /// + /// すべてのアイテムの基本クラス。 + /// + internal class CItemBase + { + // プロパティ + + public Eパネル種別 eパネル種別; + public enum Eパネル種別 + { + 通常, + その他 + } + + public E種別 e種別; + public enum E種別 + { + 基本形, + ONorOFFトグル, + ONorOFFor不定スリーステート, + 整数, + リスト, + 切替リスト + } + + public string str項目名; + public string str説明文; + + + // コンストラクタ + + public CItemBase() + { + this.str項目名 = ""; + this.str説明文 = ""; + } + public CItemBase( string str項目名 ) + : this() + { + this.t初期化( str項目名 ); + } + public CItemBase(string str項目名, string str説明文jp) + : this() { + this.t初期化(str項目名, str説明文jp); + } + public CItemBase(string str項目名, string str説明文jp, string str説明文en) + : this() { + this.t初期化(str項目名, str説明文jp, str説明文en); + } + + public CItemBase(string str項目名, Eパネル種別 eパネル種別) + : this() + { + this.t初期化( str項目名, eパネル種別 ); + } + public CItemBase(string str項目名, Eパネル種別 eパネル種別, string str説明文jp) + : this() { + this.t初期化(str項目名, eパネル種別, str説明文jp); + } + public CItemBase(string str項目名, Eパネル種別 eパネル種別, string str説明文jp, string str説明文en) + : this() { + this.t初期化(str項目名, eパネル種別, str説明文jp, str説明文en); + } + + + // メソッド;子クラスで実装する + + public virtual void tEnter押下() + { + } + public virtual void t項目値を次へ移動() + { + } + public virtual void t項目値を前へ移動() + { + } + public virtual void t初期化( string str項目名 ) + { + this.t初期化( str項目名, Eパネル種別.通常 ); + } + public virtual void t初期化(string str項目名, string str説明文jp) { + this.t初期化(str項目名, Eパネル種別.通常, str説明文jp, str説明文jp); + } + public virtual void t初期化(string str項目名, string str説明文jp, string str説明文en) { + this.t初期化(str項目名, Eパネル種別.通常, str説明文jp, str説明文en); + } + + public virtual void t初期化( string str項目名, Eパネル種別 eパネル種別 ) + { + this.t初期化(str項目名, eパネル種別, "", ""); + } + public virtual void t初期化(string str項目名, Eパネル種別 eパネル種別, string str説明文jp) { + this.t初期化(str項目名, eパネル種別, str説明文jp, str説明文jp); + } + public virtual void t初期化(string str項目名, Eパネル種別 eパネル種別, string str説明文jp, string str説明文en) { + this.str項目名 = str項目名; + this.eパネル種別 = eパネル種別; + this.str説明文 = (CultureInfo.CurrentUICulture.TwoLetterISOLanguageName == "ja") ? str説明文jp : str説明文en; + } + public virtual object obj現在値() + { + return null; + } + public virtual int GetIndex() + { + return 0; + } + public virtual void SetIndex( int index ) + { + } + } +} diff --git a/TJAPlayer3/Items/CItemInteger.cs b/TJAPlayer3/Items/CItemInteger.cs new file mode 100644 index 00000000..d86f7832 --- /dev/null +++ b/TJAPlayer3/Items/CItemInteger.cs @@ -0,0 +1,125 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace TJAPlayer3 +{ + /// + /// 「整数」を表すアイテム。 + /// + internal class CItemInteger : CItemBase + { + // プロパティ + + public int n現在の値; + public bool b値がフォーカスされている; + + + // コンストラクタ + + public CItemInteger() + { + base.e種別 = CItemBase.E種別.整数; + this.n最小値 = 0; + this.n最大値 = 0; + this.n現在の値 = 0; + this.b値がフォーカスされている = false; + } + public CItemInteger( string str項目名, int n最小値, int n最大値, int n初期値 ) + : this() + { + this.t初期化( str項目名, n最小値, n最大値, n初期値 ); + } + public CItemInteger(string str項目名, int n最小値, int n最大値, int n初期値, string str説明文jp) + : this() { + this.t初期化(str項目名, n最小値, n最大値, n初期値, str説明文jp); + } + public CItemInteger(string str項目名, int n最小値, int n最大値, int n初期値, string str説明文jp, string str説明文en) + : this() { + this.t初期化(str項目名, n最小値, n最大値, n初期値, str説明文jp, str説明文en); + } + + + public CItemInteger( string str項目名, int n最小値, int n最大値, int n初期値, CItemBase.Eパネル種別 eパネル種別 ) + : this() + { + this.t初期化( str項目名, n最小値, n最大値, n初期値, eパネル種別 ); + } + public CItemInteger(string str項目名, int n最小値, int n最大値, int n初期値, CItemBase.Eパネル種別 eパネル種別, string str説明文jp) + : this() { + this.t初期化(str項目名, n最小値, n最大値, n初期値, eパネル種別, str説明文jp); + } + public CItemInteger(string str項目名, int n最小値, int n最大値, int n初期値, CItemBase.Eパネル種別 eパネル種別, string str説明文jp, string str説明文en) + : this() { + this.t初期化(str項目名, n最小値, n最大値, n初期値, eパネル種別, str説明文jp, str説明文en); + } + + + // CItemBase 実装 + + public override void tEnter押下() + { + this.b値がフォーカスされている = !this.b値がフォーカスされている; + } + public override void t項目値を次へ移動() + { + if( ++this.n現在の値 > this.n最大値 ) + { + this.n現在の値 = this.n最大値; + } + } + public override void t項目値を前へ移動() + { + if( --this.n現在の値 < this.n最小値 ) + { + this.n現在の値 = this.n最小値; + } + } + public void t初期化( string str項目名, int n最小値, int n最大値, int n初期値 ) + { + this.t初期化( str項目名, n最小値, n最大値, n初期値, CItemBase.Eパネル種別.通常, "", "" ); + } + public void t初期化(string str項目名, int n最小値, int n最大値, int n初期値, string str説明文jp) { + this.t初期化(str項目名, n最小値, n最大値, n初期値, CItemBase.Eパネル種別.通常, str説明文jp, str説明文jp); + } + public void t初期化(string str項目名, int n最小値, int n最大値, int n初期値, string str説明文jp, string str説明文en) { + this.t初期化(str項目名, n最小値, n最大値, n初期値, CItemBase.Eパネル種別.通常, str説明文jp, str説明文en); + } + + + public void t初期化( string str項目名, int n最小値, int n最大値, int n初期値, CItemBase.Eパネル種別 eパネル種別 ) + { + this.t初期化( str項目名, n最小値, n最大値, n初期値, eパネル種別, "", "" ); + } + public void t初期化(string str項目名, int n最小値, int n最大値, int n初期値, CItemBase.Eパネル種別 eパネル種別, string str説明文jp) { + this.t初期化(str項目名, n最小値, n最大値, n初期値, eパネル種別, str説明文jp, str説明文jp); + } + public void t初期化(string str項目名, int n最小値, int n最大値, int n初期値, CItemBase.Eパネル種別 eパネル種別, string str説明文jp, string str説明文en) { + base.t初期化(str項目名, eパネル種別, str説明文jp, str説明文en); + this.n最小値 = n最小値; + this.n最大値 = n最大値; + this.n現在の値 = n初期値; + this.b値がフォーカスされている = false; + } + public override object obj現在値() + { + return this.n現在の値; + } + public override int GetIndex() + { + return this.n現在の値; + } + public override void SetIndex( int index ) + { + this.n現在の値 = index; + } + // その他 + + #region [ private ] + //----------------- + private int n最小値; + private int n最大値; + //----------------- + #endregion + } +} diff --git a/TJAPlayer3/Items/CItemList.cs b/TJAPlayer3/Items/CItemList.cs new file mode 100644 index 00000000..4035bdb1 --- /dev/null +++ b/TJAPlayer3/Items/CItemList.cs @@ -0,0 +1,153 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace TJAPlayer3 +{ + /// + /// 「リスト」(複数の固定値からの1つを選択可能)を表すアイテム。 + /// + internal class CItemList : CItemBase + { + // プロパティ + + public List list項目値; + public int n現在選択されている項目番号; + + + // コンストラクタ + + public CItemList() + { + base.e種別 = CItemBase.E種別.リスト; + this.n現在選択されている項目番号 = 0; + this.list項目値 = new List(); + } + public CItemList( string str項目名 ) + : this() + { + this.t初期化( str項目名 ); + } + public CItemList( string str項目名, CItemBase.Eパネル種別 eパネル種別 ) + : this() + { + this.t初期化( str項目名, eパネル種別 ); + } + public CItemList( string str項目名, CItemBase.Eパネル種別 eパネル種別, int n初期インデックス値, params string[] arg項目リスト ) + : this() + { + this.t初期化( str項目名, eパネル種別, n初期インデックス値, arg項目リスト ); + } + public CItemList(string str項目名, CItemBase.Eパネル種別 eパネル種別, int n初期インデックス値, string str説明文jp, params string[] arg項目リスト) + : this() { + this.t初期化(str項目名, eパネル種別, n初期インデックス値, str説明文jp, arg項目リスト); + } + public CItemList(string str項目名, CItemBase.Eパネル種別 eパネル種別, int n初期インデックス値, string str説明文jp, string str説明文en, params string[] arg項目リスト) + : this() { + this.t初期化(str項目名, eパネル種別, n初期インデックス値, str説明文jp, str説明文en, arg項目リスト); + } + + + // CItemBase 実装 + + public override void tEnter押下() + { + this.t項目値を次へ移動(); + } + public override void t項目値を次へ移動() + { + if( ++this.n現在選択されている項目番号 >= this.list項目値.Count ) + { + this.n現在選択されている項目番号 = 0; + } + } + public override void t項目値を前へ移動() + { + if( --this.n現在選択されている項目番号 < 0 ) + { + this.n現在選択されている項目番号 = this.list項目値.Count - 1; + } + } + public override void t初期化( string str項目名, CItemBase.Eパネル種別 eパネル種別 ) + { + base.t初期化( str項目名, eパネル種別 ); + this.n現在選択されている項目番号 = 0; + this.list項目値.Clear(); + } + public void t初期化( string str項目名, CItemBase.Eパネル種別 eパネル種別, int n初期インデックス値, params string[] arg項目リスト ) + { + this.t初期化(str項目名, eパネル種別, n初期インデックス値, "", "",arg項目リスト); + } + public void t初期化(string str項目名, CItemBase.Eパネル種別 eパネル種別, int n初期インデックス値, string str説明文jp, params string[] arg項目リスト) { + this.t初期化(str項目名, eパネル種別, n初期インデックス値, str説明文jp, str説明文jp, arg項目リスト); + } + public void t初期化(string str項目名, CItemBase.Eパネル種別 eパネル種別, int n初期インデックス値, string str説明文jp, string str説明文en, params string[] arg項目リスト) { + base.t初期化(str項目名, eパネル種別, str説明文jp, str説明文en); + this.n現在選択されている項目番号 = n初期インデックス値; + foreach (string str in arg項目リスト) { + this.list項目値.Add(str); + } + } + public override object obj現在値() + { + return this.list項目値[ n現在選択されている項目番号 ]; + } + public override int GetIndex() + { + return n現在選択されている項目番号; + } + public override void SetIndex( int index ) + { + n現在選択されている項目番号 = index; + } + } + + + + + /// + /// 簡易コンフィグの「切り替え」に使用する、「リスト」(複数の固定値からの1つを選択可能)を表すアイテム。 + /// e種別が違うのと、tEnter押下()で何もしない以外は、「リスト」そのまま。 + /// + internal class CSwitchItemList : CItemList + { + // コンストラクタ + + public CSwitchItemList() + { + base.e種別 = CItemBase.E種別.切替リスト; + this.n現在選択されている項目番号 = 0; + this.list項目値 = new List(); + } + public CSwitchItemList( string str項目名 ) + : this() + { + this.t初期化( str項目名 ); + } + public CSwitchItemList( string str項目名, CItemBase.Eパネル種別 eパネル種別 ) + : this() + { + this.t初期化( str項目名, eパネル種別 ); + } + public CSwitchItemList( string str項目名, CItemBase.Eパネル種別 eパネル種別, int n初期インデックス値, params string[] arg項目リスト ) + : this() + { + this.t初期化( str項目名, eパネル種別, n初期インデックス値, arg項目リスト ); + } + public CSwitchItemList(string str項目名, CItemBase.Eパネル種別 eパネル種別, int n初期インデックス値, string str説明文jp, params string[] arg項目リスト) + : this() { + this.t初期化(str項目名, eパネル種別, n初期インデックス値, str説明文jp, arg項目リスト); + } + public CSwitchItemList( string str項目名, CItemBase.Eパネル種別 eパネル種別, int n初期インデックス値, string str説明文jp, string str説明文en, params string[] arg項目リスト ) + : this() + { + this.t初期化( str項目名, eパネル種別, n初期インデックス値, str説明文jp, str説明文en, arg項目リスト ); + } + + public override void tEnter押下() + { + // this.t項目値を次へ移動(); // 何もしない + } + } + +} diff --git a/TJAPlayer3/Items/CItemThreeState.cs b/TJAPlayer3/Items/CItemThreeState.cs new file mode 100644 index 00000000..bc6f5622 --- /dev/null +++ b/TJAPlayer3/Items/CItemThreeState.cs @@ -0,0 +1,154 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace TJAPlayer3 +{ + /// + /// 「スリーステート」(ON, OFF, 不定 の3状態)を表すアイテム。 + /// + internal class CItemThreeState : CItemBase + { + // プロパティ + + public E状態 e現在の状態; + public enum E状態 + { + ON, + OFF, + 不定 + } + + + // コンストラクタ + + public CItemThreeState() + { + base.e種別 = CItemBase.E種別.ONorOFFor不定スリーステート; + this.e現在の状態 = E状態.不定; + } + public CItemThreeState( string str項目名, E状態 e初期状態 ) + : this() + { + this.t初期化( str項目名, e初期状態 ); + } + public CItemThreeState(string str項目名, E状態 e初期状態, string str説明文jp) + : this() { + this.t初期化(str項目名, e初期状態, str説明文jp, str説明文jp); + } + public CItemThreeState(string str項目名, E状態 e初期状態, string str説明文jp, string str説明文en) + : this() { + this.t初期化(str項目名, e初期状態, str説明文jp, str説明文en); + } + + public CItemThreeState( string str項目名, E状態 e初期状態, CItemBase.Eパネル種別 eパネル種別 ) + : this() + { + this.t初期化( str項目名, e初期状態, eパネル種別 ); + } + public CItemThreeState(string str項目名, E状態 e初期状態, CItemBase.Eパネル種別 eパネル種別, string str説明文jp) + : this() { + this.t初期化(str項目名, e初期状態, eパネル種別, str説明文jp, str説明文jp); + } + public CItemThreeState(string str項目名, E状態 e初期状態, CItemBase.Eパネル種別 eパネル種別, string str説明文jp, string str説明文en) + : this() { + this.t初期化(str項目名, e初期状態, eパネル種別, str説明文jp, str説明文en); + } + + + // CItemBase 実装 + + public override void tEnter押下() + { + this.t項目値を次へ移動(); + } + public override void t項目値を次へ移動() + { + switch( this.e現在の状態 ) + { + case E状態.ON: + this.e現在の状態 = E状態.OFF; + return; + + case E状態.OFF: + this.e現在の状態 = E状態.ON; + return; + + case E状態.不定: + this.e現在の状態 = E状態.ON; + return; + } + } + public override void t項目値を前へ移動() + { + switch( this.e現在の状態 ) + { + case E状態.ON: + this.e現在の状態 = E状態.OFF; + return; + + case E状態.OFF: + this.e現在の状態 = E状態.ON; + return; + + case E状態.不定: + this.e現在の状態 = E状態.OFF; + return; + } + } + public void t初期化( string str項目名, E状態 e初期状態 ) + { + this.t初期化( str項目名, e初期状態, CItemBase.Eパネル種別.通常 ); + } + public void t初期化(string str項目名, E状態 e初期状態, string str説明文jp) { + this.t初期化(str項目名, e初期状態, CItemBase.Eパネル種別.通常, str説明文jp, str説明文jp); + } + public void t初期化(string str項目名, E状態 e初期状態, string str説明文jp, string str説明文en) { + this.t初期化(str項目名, e初期状態, CItemBase.Eパネル種別.通常, str説明文jp, str説明文en); + } + + public void t初期化( string str項目名, E状態 e初期状態, CItemBase.Eパネル種別 eパネル種別 ) + { + this.t初期化(str項目名, e初期状態, CItemBase.Eパネル種別.通常, "", ""); + } + public void t初期化(string str項目名, E状態 e初期状態, CItemBase.Eパネル種別 eパネル種別, string str説明文jp) { + this.t初期化(str項目名, e初期状態, CItemBase.Eパネル種別.通常, str説明文jp, str説明文jp); + } + public void t初期化(string str項目名, E状態 e初期状態, CItemBase.Eパネル種別 eパネル種別, string str説明文jp, string str説明文en) { + base.t初期化(str項目名, eパネル種別, str説明文jp, str説明文en); + this.e現在の状態 = e初期状態; + } + public override object obj現在値() + { + if ( this.e現在の状態 == E状態.不定 ) + { + return "- -"; + } + else + { + return this.e現在の状態.ToString(); + } + } + public override int GetIndex() + { + return (int)this.e現在の状態; + } + public override void SetIndex( int index ) + { + switch (index ) + { + case 0: + this.e現在の状態 = E状態.ON; + break; + case 1: + this.e現在の状態 = E状態.OFF; + break; + case 2: + this.e現在の状態 = E状態.不定; + break; + default: + throw new ArgumentOutOfRangeException(); + } + } + } +} diff --git a/TJAPlayer3/Items/CItemToggle.cs b/TJAPlayer3/Items/CItemToggle.cs new file mode 100644 index 00000000..495dd1fe --- /dev/null +++ b/TJAPlayer3/Items/CItemToggle.cs @@ -0,0 +1,111 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace TJAPlayer3 +{ + /// + /// 「トグル」(ON, OFF の2状態)を表すアイテム。 + /// + internal class CItemToggle : CItemBase + { + // プロパティ + + public bool bON; + + + // コンストラクタ + + public CItemToggle() + { + base.e種別 = CItemBase.E種別.ONorOFFトグル; + this.bON = false; + } + public CItemToggle( string str項目名, bool b初期状態 ) + : this() + { + this.t初期化( str項目名, b初期状態 ); + } + public CItemToggle(string str項目名, bool b初期状態, string str説明文jp) + : this() { + this.t初期化(str項目名, b初期状態, str説明文jp); + } + public CItemToggle(string str項目名, bool b初期状態, string str説明文jp, string str説明文en) + : this() { + this.t初期化(str項目名, b初期状態, str説明文jp, str説明文en); + } + public CItemToggle(string str項目名, bool b初期状態, CItemBase.Eパネル種別 eパネル種別) + : this() + { + this.t初期化( str項目名, b初期状態, eパネル種別 ); + } + public CItemToggle(string str項目名, bool b初期状態, CItemBase.Eパネル種別 eパネル種別, string str説明文jp) + : this() { + this.t初期化(str項目名, b初期状態, eパネル種別, str説明文jp); + } + public CItemToggle(string str項目名, bool b初期状態, CItemBase.Eパネル種別 eパネル種別, string str説明文jp, string str説明文en) + : this() { + this.t初期化(str項目名, b初期状態, eパネル種別, str説明文jp, str説明文en); + } + + + // CItemBase 実装 + + public override void tEnter押下() + { + this.t項目値を次へ移動(); + } + public override void t項目値を次へ移動() + { + this.bON = !this.bON; + } + public override void t項目値を前へ移動() + { + this.t項目値を次へ移動(); + } + public void t初期化( string str項目名, bool b初期状態 ) + { + this.t初期化( str項目名, b初期状態, CItemBase.Eパネル種別.通常 ); + } + public void t初期化(string str項目名, bool b初期状態, string str説明文jp) { + this.t初期化(str項目名, b初期状態, CItemBase.Eパネル種別.通常, str説明文jp, str説明文jp); + } + public void t初期化(string str項目名, bool b初期状態, string str説明文jp, string str説明文en) { + this.t初期化(str項目名, b初期状態, CItemBase.Eパネル種別.通常, str説明文jp, str説明文en); + } + + public void t初期化(string str項目名, bool b初期状態, CItemBase.Eパネル種別 eパネル種別) + { + this.t初期化(str項目名, b初期状態, eパネル種別, "", ""); + } + public void t初期化(string str項目名, bool b初期状態, CItemBase.Eパネル種別 eパネル種別, string str説明文jp) { + this.t初期化(str項目名, b初期状態, eパネル種別, str説明文jp, str説明文jp); + } + public void t初期化(string str項目名, bool b初期状態, CItemBase.Eパネル種別 eパネル種別, string str説明文jp, string str説明文en) { + base.t初期化(str項目名, eパネル種別, str説明文jp, str説明文en); + this.bON = b初期状態; + } + public override object obj現在値() + { + return ( this.bON ) ? "ON" : "OFF"; + } + public override int GetIndex() + { + return ( this.bON ) ? 1 : 0; + } + public override void SetIndex( int index ) + { + switch ( index ) + { + case 0: + this.bON = false; + break; + case 1: + this.bON = true; + break; + default: + throw new ArgumentOutOfRangeException(); + } + } + } +} diff --git a/TJAPlayer3/Plugins/CPluginHost.cs b/TJAPlayer3/Plugins/CPluginHost.cs new file mode 100644 index 00000000..80710234 --- /dev/null +++ b/TJAPlayer3/Plugins/CPluginHost.cs @@ -0,0 +1,87 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.IO; +using System.Drawing; +using SlimDX; +using SlimDX.Direct3D9; +using FDK; + +namespace TJAPlayer3 +{ + internal class CPluginHost : IPluginHost + { + // コンストラクタ + + public CPluginHost() + { + this._DTXManiaVersion = new CDTXVersion( TJAPlayer3.VERSION ); + } + + + // IPluginHost 実装 + + public CDTXVersion DTXManiaVersion + { + get { return this._DTXManiaVersion; } + } + public Device D3D9Device + { + get { return (TJAPlayer3.app != null ) ? TJAPlayer3.app.Device.UnderlyingDevice : null; } + } + public Format TextureFormat + { + get { return TJAPlayer3.TextureFormat; } + } + public CTimer Timer + { + get { return TJAPlayer3.Timer; } + } + public CSound管理 Sound管理 + { + get { return TJAPlayer3.Sound管理; } + } + public Size ClientSize + { + get { return TJAPlayer3.app.Window.ClientSize; } + } + public CStage.Eステージ e現在のステージ + { + get { return ( TJAPlayer3.r現在のステージ != null ) ? TJAPlayer3.r現在のステージ.eステージID : CStage.Eステージ.何もしない; } + } + public CStage.Eフェーズ e現在のフェーズ + { + get { return ( TJAPlayer3.r現在のステージ != null ) ? TJAPlayer3.r現在のステージ.eフェーズID : CStage.Eフェーズ.共通_通常状態; } + } + public bool t入力を占有する(IPluginActivity act) + { + if (TJAPlayer3.act現在入力を占有中のプラグイン != null) + return false; + + TJAPlayer3.act現在入力を占有中のプラグイン = act; + return true; + } + public bool t入力の占有を解除する(IPluginActivity act) + { + if (TJAPlayer3.act現在入力を占有中のプラグイン == null || TJAPlayer3.act現在入力を占有中のプラグイン != act) + return false; + + TJAPlayer3.act現在入力を占有中のプラグイン = null; + return true; + } + public void tシステムサウンドを再生する( Eシステムサウンド sound ) + { + if( TJAPlayer3.Skin != null ) + TJAPlayer3.Skin[ sound ].t再生する(); + } + + + // その他 + + #region [ private ] + //----------------- + private CDTXVersion _DTXManiaVersion; + //----------------- + #endregion + } +} diff --git a/TJAPlayer3/Plugins/IPluginActivity.cs b/TJAPlayer3/Plugins/IPluginActivity.cs new file mode 100644 index 00000000..845b3208 --- /dev/null +++ b/TJAPlayer3/Plugins/IPluginActivity.cs @@ -0,0 +1,76 @@ +namespace TJAPlayer3 +{ + /// + /// Activity プラグインへのインターフェース。 + /// DTXMania は、IPluginActivity に対して、以下のライフサイクルを実行します。 + /// (1) DTXMania の起動処理の最後(セットアップ画面が表示される直前)に一度だけ、On初期化()_OnManagedリソースの作成()_OnUnmanagedリソースの作成() をこの順番で1回ずつ呼び出します。 + /// (2) DTXMania の終了処理の最初(Thank you for playing が消えた直後)に一度だけ、OnUnmanagedリソースの解放()_OnManagedリソースの解放()_On終了() をこの順番で1回ずつ呼び出します。 + /// (3) DTXMania の起動中、すなわち(1)~(2)の間は、どんなシーンであっても、常に On進行描画() を1フレームにつき1回ずつ呼び出します。 + /// (4) Direct3D デバイスのリセット時には、デバイスのリセット前に OnUnmanagedリソースの解放() を1回呼び出し、デバイスをリセットしたのち、OnUnmanagedリソースの作成() を1回呼び出します。 + /// (5) Direct3D デバイスのロスト時には、デバイスの再生成前に OnUnmanagedリソースの解放()_OnManagedリソースの解放() を1回ずつ呼び出し、デバイスを再生成したのち、OnManagedリソースの作成()_OnUnmanagedリソースの作成() を1回ずつ呼び出します。 + /// + public interface IPluginActivity + { + /// + /// プラグインの初期化を行います。 + /// DTXMania の起動処理の最後(セットアップ画面が表示される直前)に、DTXMania から一度だけ呼び出されます。 + /// プラグインが、ホスト(DTXMania)の情報にアクセスするためのオブジェクト。 + /// + void On初期化( global::TJAPlayer3.IPluginHost PluginHost ); + + /// + /// プラグインの終了処理を行います。 + /// DTXMania の終了処理の最初(Thank you for playing が消えた直後)に、DTXMania から一度だけ呼び出されます。 + /// + void On終了(); + + /// + /// Managed リソースを作成します。 + /// + void OnManagedリソースの作成(); + + /// + /// Unmanaged リソースを作成します。 + /// + void OnUnmanagedリソースの作成(); + + /// + /// Unmanaged リソースを解放します。 + /// + void OnUnmanagedリソースの解放(); + + /// + /// Managed リソースを解放します。 + /// + void OnManagedリソースの解放(); + + /// + /// プラグインの進行と描画を行います。 + /// ※現在の DTXMania では、進行と描画は分離されていません。 + /// ※BeginScene()/EndScene() は DTXMania 側で行うため、プラグイン側では不要です。 + /// ※keyboard.tポーリング() は DTXMania 側で行いますのでプラグイン側では行わないで下さい。 + /// パッド入力。他のプラグインが入力占有中である場合は null が渡されます。 + /// キーボード入力。他のプラグインが入力占有中である場合は null が渡されます。 + /// + void On進行描画( global::TJAPlayer3.CPad pad, FDK.IInputDevice keyboard ); + + /// + /// ステージが変わる度に呼び出されます。 + /// 呼び出しタイミングは、新しいステージの活性化直後かつ描画開始前です。 + /// + void Onステージ変更(); + + /// + /// 選曲画面で選択曲が変更された場合に呼び出されます。 + /// 同じ set.def に属する曲の難易度が(HH×2で)変更された場合でも呼び出されます。 + /// ただし、選択が曲でない(BOX, BACK, RANDOM など)場合には呼び出されません。 + /// + /// 選択されている曲のファイルの名前。絶対パス。 + /// 選択されている曲のブロック内の曲番号(0~4)。 + void On選択曲変更( string str選択曲ファイル名, int n曲番号inブロック ); + + void On演奏クリア( global::TJAPlayer3.CScoreIni scoreIni ); + void On演奏失敗( global::TJAPlayer3.CScoreIni scoreIni ); + void On演奏キャンセル( global::TJAPlayer3.CScoreIni scoreIni ); + } +} diff --git a/TJAPlayer3/Plugins/IPluginHost.cs b/TJAPlayer3/Plugins/IPluginHost.cs new file mode 100644 index 00000000..7e47436a --- /dev/null +++ b/TJAPlayer3/Plugins/IPluginHost.cs @@ -0,0 +1,64 @@ +namespace TJAPlayer3 +{ + /// + /// プラグインホスト情報提供インターフェース。 + /// プラグインでは、On初期化() で渡されるこのインターフェースオブジェクトを通じて、 + /// DTXMania の持つ様々なリソースにアクセスできます。 + /// + public interface IPluginHost + { + /// + /// DTXMania のバージョンを表します。 + /// + global::TJAPlayer3.CDTXVersion DTXManiaVersion { get; } + + /// + /// Direct3D9 デバイスオブジェクト。 + /// ロストしたりリセットしたりすることがあるので、常に同じ値であるとは保証されません。 + /// + SlimDX.Direct3D9.Device D3D9Device { get; } + + /// + /// DirectSound の管理クラス。 + /// WAV, XA, OGG, MP3 のサウンドファイルから CSound オブジェクトを生成できます。 + /// + FDK.CSound管理 Sound管理 { get; } + + /// + /// 描画エリアのサイズを返します(ピクセル単位)。 + /// + System.Drawing.Size ClientSize { get; } + + /// + /// 現在のステージのIDを表します。 + /// + global::TJAPlayer3.CStage.Eステージ e現在のステージ { get; } + + /// + /// 現在のステージにおけるフェーズのIDを表します。 + /// + global::TJAPlayer3.CStage.Eフェーズ e現在のフェーズ { get; } + + /// + /// 自分以外は入力データを扱ってはならないことを宣言します。 + /// DTXMania 本体は入力データのポーリングのみを行い、他のプラグインに対しては、On進行描画() の2つの入力に null を渡します。 + /// + /// 宣言するプラグイン(すなわち this を指定する) + /// 占有に成功すれば true を返し、既に誰かが占有中である場合には false を返します。 + bool t入力を占有する( IPluginActivity act ); + + /// + /// 自分以外が入力データを扱って良いことを宣言します。 + /// DTXMania 本体はポーリング以外の入力処理を開始し、他のプラグインに対しては、On進行描画() の2つの引数に有効な値を渡します。 + /// + /// 宣言するプラグイン(すなわち this を指定する) + /// 占有解除に成功すれば true、失敗すれば flase を返します。 + bool t入力の占有を解除する( IPluginActivity act ); + + /// + /// 指定されたシステムサウンド/BGMを再生します。 + /// + /// 再生するシステムサウンドの識別子。 + void tシステムサウンドを再生する( Eシステムサウンド sound ); + } +} diff --git a/TJAPlayer3/Properties/AssemblyInfo.cs b/TJAPlayer3/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..26a12c0d --- /dev/null +++ b/TJAPlayer3/Properties/AssemblyInfo.cs @@ -0,0 +1,42 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Resources; + +// アセンブリに関する一般情報は以下の属性セットをとおして制御されます。 +// アセンブリに関連付けられている情報を変更するには、 +// これらの属性値を変更してください。 +[assembly: AssemblyTitle("TJAPlayer3 - A .tja file player.")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("TJAPlayer3")] +[assembly: AssemblyCopyright("")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// ComVisible を false に設定すると、その型はこのアセンブリ内で COM コンポーネントから +// 参照不可能になります。COM からこのアセンブリ内の型にアクセスする場合は、 +// その型の ComVisible 属性を true に設定してください。 +[assembly: ComVisible(false)] + +// 次の GUID は、このプロジェクトが COM に公開される場合の、typelib の ID です +[assembly: Guid("ee05cb8c-73a8-41c3-8677-a0afbe7401f7")] + +// アセンブリのバージョン情報は、以下の 4 つの値で構成されています: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// すべての値を指定するか、下のように '*' を使ってビルドおよびリビジョン番号を +// 既定値にすることができます: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("0.1.0")] +[assembly: AssemblyFileVersion("1.4.5.3")] +[assembly: NeutralResourcesLanguage("ja-JP")] + +// このアセンブリは「ライブラリ」である(難読化ツールへの指示)。 +// → デフォルトの true のままだと、アセンブリ public なメンバもすべて難読化されてしまう。 +[assembly: ObfuscateAssembly( false )] diff --git a/TJAPlayer3/Properties/Discord.Designer.cs b/TJAPlayer3/Properties/Discord.Designer.cs new file mode 100644 index 00000000..8591c74c --- /dev/null +++ b/TJAPlayer3/Properties/Discord.Designer.cs @@ -0,0 +1,117 @@ +//------------------------------------------------------------------------------ +// +// このコードはツールによって生成されました。 +// ランタイム バージョン:4.0.30319.42000 +// +// このファイルへの変更は、以下の状況下で不正な動作の原因になったり、 +// コードが再生成されるときに損失したりします。 +// +//------------------------------------------------------------------------------ + +namespace TJAPlayer3.Properties { + using System; + + + /// + /// ローカライズされた文字列などを検索するための、厳密に型指定されたリソース クラスです。 + /// + // このクラスは StronglyTypedResourceBuilder クラスが ResGen + // または Visual Studio のようなツールを使用して自動生成されました。 + // メンバーを追加または削除するには、.ResX ファイルを編集して、/str オプションと共に + // ResGen を実行し直すか、または VS プロジェクトをビルドし直します。 + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Discord { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Discord() { + } + + /// + /// このクラスで使用されているキャッシュされた ResourceManager インスタンスを返します。 + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("TJAPlayer3.Properties.Discord", typeof(Discord).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// すべてについて、現在のスレッドの CurrentUICulture プロパティをオーバーライドします + /// 現在のスレッドの CurrentUICulture プロパティをオーバーライドします。 + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Auto に類似しているローカライズされた文字列を検索します。 + /// + internal static string Info_IsAuto { + get { + return ResourceManager.GetString("Info_IsAuto", resourceCulture); + } + } + + /// + /// Playing に類似しているローカライズされた文字列を検索します。 + /// + internal static string Stage_InGame { + get { + return ResourceManager.GetString("Stage_InGame", resourceCulture); + } + } + + /// + /// Result に類似しているローカライズされた文字列を検索します。 + /// + internal static string Stage_Result { + get { + return ResourceManager.GetString("Stage_Result", resourceCulture); + } + } + + /// + /// Settings に類似しているローカライズされた文字列を検索します。 + /// + internal static string Stage_Settings { + get { + return ResourceManager.GetString("Stage_Settings", resourceCulture); + } + } + + /// + /// SongSelect に類似しているローカライズされた文字列を検索します。 + /// + internal static string Stage_SongSelect { + get { + return ResourceManager.GetString("Stage_SongSelect", resourceCulture); + } + } + + /// + /// Startup に類似しているローカライズされた文字列を検索します。 + /// + internal static string Stage_StartUp { + get { + return ResourceManager.GetString("Stage_StartUp", resourceCulture); + } + } + } +} diff --git a/TJAPlayer3/Properties/Discord.resx b/TJAPlayer3/Properties/Discord.resx new file mode 100644 index 00000000..1219284d --- /dev/null +++ b/TJAPlayer3/Properties/Discord.resx @@ -0,0 +1,138 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Auto + + + Playing + + + Result + + + Settings + + + SongSelect + + + Startup + + \ No newline at end of file diff --git a/TJAPlayer3/Properties/Resources.Designer.cs b/TJAPlayer3/Properties/Resources.Designer.cs new file mode 100644 index 00000000..be4b21fc --- /dev/null +++ b/TJAPlayer3/Properties/Resources.Designer.cs @@ -0,0 +1,83 @@ +//------------------------------------------------------------------------------ +// +// このコードはツールによって生成されました。 +// ランタイム バージョン:4.0.30319.42000 +// +// このファイルへの変更は、以下の状況下で不正な動作の原因になったり、 +// コードが再生成されるときに損失したりします。 +// +//------------------------------------------------------------------------------ + +namespace TJAPlayer3.Properties { + using System; + + + /// + /// ローカライズされた文字列などを検索するための、厳密に型指定されたリソース クラスです。 + /// + // このクラスは StronglyTypedResourceBuilder クラスが ResGen + // または Visual Studio のようなツールを使用して自動生成されました。 + // メンバーを追加または削除するには、.ResX ファイルを編集して、/str オプションと共に + // ResGen を実行し直すか、または VS プロジェクトをビルドし直します。 + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// このクラスで使用されているキャッシュされた ResourceManager インスタンスを返します。 + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("TJAPlayer3.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// すべてについて、現在のスレッドの CurrentUICulture プロパティをオーバーライドします + /// 現在のスレッドの CurrentUICulture プロパティをオーバーライドします。 + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// (アイコン) に類似した型 System.Drawing.Icon のローカライズされたリソースを検索します。 + /// + internal static System.Drawing.Icon dtx { + get { + object obj = ResourceManager.GetObject("dtx", resourceCulture); + return ((System.Drawing.Icon)(obj)); + } + } + + /// + /// (アイコン) に類似した型 System.Drawing.Icon のローカライズされたリソースを検索します。 + /// + internal static System.Drawing.Icon tjap3 { + get { + object obj = ResourceManager.GetObject("tjap3", resourceCulture); + return ((System.Drawing.Icon)(obj)); + } + } + } +} diff --git a/TJAPlayer3/Properties/Resources.resx b/TJAPlayer3/Properties/Resources.resx new file mode 100644 index 00000000..ecc4e445 --- /dev/null +++ b/TJAPlayer3/Properties/Resources.resx @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\dtx.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\TJAPlayer3-Develop-ReWrite.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/TJAPlayer3/Properties/Settings.Designer.cs b/TJAPlayer3/Properties/Settings.Designer.cs new file mode 100644 index 00000000..6e6c2f25 --- /dev/null +++ b/TJAPlayer3/Properties/Settings.Designer.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// このコードはツールによって生成されました。 +// ランタイム バージョン:4.0.30319.42000 +// +// このファイルへの変更は、以下の状況下で不正な動作の原因になったり、 +// コードが再生成されるときに損失したりします。 +// +//------------------------------------------------------------------------------ + +namespace TJAPlayer3.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.7.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + } +} diff --git a/TJAPlayer3/Properties/Settings.settings b/TJAPlayer3/Properties/Settings.settings new file mode 100644 index 00000000..39645652 --- /dev/null +++ b/TJAPlayer3/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/TJAPlayer3/Resources/TJAPlayer3-Develop-ReWrite.ico b/TJAPlayer3/Resources/TJAPlayer3-Develop-ReWrite.ico new file mode 100644 index 0000000000000000000000000000000000000000..0f583138af91afd5b8cf946db62e1017edf845f2 GIT binary patch literal 72393 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

&l$RKbOvbD{sGj9I0Hcqgp&Dv(! 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

fDp>Xy73kebKXT5npw;`c~h* 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 P00000NkvXXu0mjfBdoTB literal 0 HcmV?d00001 diff --git a/TJAPlayer3/Songs/CBoxDef.cs b/TJAPlayer3/Songs/CBoxDef.cs new file mode 100644 index 00000000..d693a985 --- /dev/null +++ b/TJAPlayer3/Songs/CBoxDef.cs @@ -0,0 +1,113 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Text; +using System.IO; +using System.Drawing; + +namespace TJAPlayer3 +{ + internal class CBoxDef + { + // プロパティ + + public Color Color; + public string Genre; + public string Title; + public string[] strBoxText = new string[3]; + public Color ForeColor; + public Color BackColor; + public bool IsChangedForeColor; + public bool IsChangedBackColor; + + + // コンストラクタ + + public CBoxDef() + { + for (int i = 0; i < 3; i++) + this.strBoxText[i] = ""; + this.Title = ""; + this.Genre = ""; + ForeColor = Color.White; + BackColor = Color.Black; + + } + public CBoxDef( string boxdefファイル名 ) + : this() + { + this.t読み込み( boxdefファイル名 ); + } + + + // メソッド + + public void t読み込み( string boxdefファイル名 ) + { + StreamReader reader = new StreamReader( boxdefファイル名, Encoding.GetEncoding( "Shift_JIS" ) ); + string str = null; + while( ( str = reader.ReadLine() ) != null ) + { + if( str.Length != 0 ) + { + try + { + char[] ignoreCharsWoColon = new char[] { ' ', '\t' }; + + str = str.TrimStart( ignoreCharsWoColon ); + if( ( str[ 0 ] == '#' ) && ( str[ 0 ] != ';' ) ) + { + if( str.IndexOf( ';' ) != -1 ) + { + str = str.Substring( 0, str.IndexOf( ';' ) ); + } + + char[] ignoreChars = new char[] { ':', ' ', '\t' }; + + if ( str.StartsWith( "#TITLE", StringComparison.OrdinalIgnoreCase ) ) + { + this.Title = str.Substring( 6 ).Trim( ignoreChars ); + } + else if( str.StartsWith( "#GENRE", StringComparison.OrdinalIgnoreCase ) ) + { + this.Genre = str.Substring( 6 ).Trim( ignoreChars ); + } + else if ( str.StartsWith( "#FONTCOLOR", StringComparison.OrdinalIgnoreCase ) ) + { + this.Color = ColorTranslator.FromHtml( str.Substring( 10 ).Trim( ignoreChars ) ); + } + else if (str.StartsWith("#FORECOLOR", StringComparison.OrdinalIgnoreCase)) + { + this.ForeColor = ColorTranslator.FromHtml(str.Substring(10).Trim(ignoreChars)); + IsChangedForeColor = true; + } + else if (str.StartsWith("#BACKCOLOR", StringComparison.OrdinalIgnoreCase)) + { + this.BackColor = ColorTranslator.FromHtml(str.Substring(10).Trim(ignoreChars)); + IsChangedBackColor = true; + } + else + { + for(int i = 0; i < 3; i++) + { + if (str.StartsWith("#BOXEXPLANATION" + (i + 1).ToString(), StringComparison.OrdinalIgnoreCase)) + { + this.strBoxText[i] = str.Substring(16).Trim(ignoreChars); + } + } + } + } + continue; + } + catch (Exception e) + { + Trace.TraceError( e.ToString() ); + Trace.TraceError( "例外が発生しましたが処理を継続します。 (178a9a36-a59e-4264-8e4c-b3c3459db43c)" ); + continue; + } + } + } + reader.Close(); + } + } +} diff --git a/TJAPlayer3/Songs/CCourse.cs b/TJAPlayer3/Songs/CCourse.cs new file mode 100644 index 00000000..bb72afa1 --- /dev/null +++ b/TJAPlayer3/Songs/CCourse.cs @@ -0,0 +1,48 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; + +namespace TJAPlayer3 +{ + public class CCourse + { + //2016.11.07 kairera0467 + //とりあえずメモ代わりに + // + // + //○コースデータ(.tjc) + + //複数の曲を共通のゲージで連続して演奏します。 + //通常ゲージは某段位認定っぽい増減の仕方をします(補正なし)。 + + //また曲は自動的に再生されるため、ばいそく等のオプションの使用は出来ません。 + + //.tjcのファイルは他の譜面(.tja等)と同様に扱われるので譜面データと同じフォルダに入れても構いません。 + // + // ●ヘッダ + + // TITLE: コースの名前。 + + // COURSE: 「Easy」「Normal」「Hard」「Oni」「Edit」もしくは0-4の値。 + // 譜面の難易度。(コースと呼ぶとややこしいですがご諒承ください) + // 指定した譜面は全てここで指定する難易度の譜面が流れます。 + // 曲ごとの指定は(今のところ)できません。 + + // LIFE: ライフ。省略可。 + // ここに値を入れると通常ゲージの代わりにライフ制になります。 + + // SONG: 曲データ。 + // 演奏する曲のファイル名(.tja/.tjf)をtaikojiro.exeのあるディレクトリからの相対パスで指定。 + // 指定されたデータは上にあるものから順に演奏されます。 + + + public void t入力( string strファイル名 ) + { + StreamReader reader = new StreamReader( strファイル名 ); + string str = reader.ReadToEnd(); + reader.Close(); + } + } +} diff --git a/TJAPlayer3/Songs/CDTX.cs b/TJAPlayer3/Songs/CDTX.cs new file mode 100644 index 00000000..2d63b090 --- /dev/null +++ b/TJAPlayer3/Songs/CDTX.cs @@ -0,0 +1,8495 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Runtime.InteropServices; +using System.Drawing; +using System.Diagnostics; +using System.IO; +using System.Globalization; +using System.Threading; +using System.Text.RegularExpressions; +using FDK; +using FDK.ExtensionMethods; +using TJAPlayer3; + +namespace TJAPlayer3 +{ + internal class CDTX : CActivity + { + // 定数 + + public enum E種別 { DTX, GDA, G2D, BMS, BME, SMF } + + // クラス + + public class CAVI : IDisposable + { + public CAvi avi; + private bool bDispose済み; + public int n番号; + public string strコメント文 = ""; + public string strファイル名 = ""; + + public void OnDeviceCreated() + { + #region [ strAVIファイル名の作成。] + //----------------- + string strAVIファイル名; + if (!string.IsNullOrEmpty(TJAPlayer3.DTX.PATH_WAV)) + strAVIファイル名 = TJAPlayer3.DTX.PATH_WAV + this.strファイル名; + else + strAVIファイル名 = TJAPlayer3.DTX.strフォルダ名 + this.strファイル名; + //----------------- + #endregion + + if (!File.Exists(strAVIファイル名)) + { + Trace.TraceWarning("ファイルが存在しません。({0})({1})", this.strコメント文, strAVIファイル名); + this.avi = null; + return; + } + + // AVI の生成。 + + try + { + this.avi = new CAvi(strAVIファイル名); + Trace.TraceInformation("動画を生成しました。({0})({1})({2}frames)", this.strコメント文, strAVIファイル名, this.avi.GetMaxFrameCount()); + } + catch (Exception e) + { + Trace.TraceError(e.ToString()); + Trace.TraceError("動画の生成に失敗しました。({0})({1})", this.strコメント文, strAVIファイル名); + this.avi = null; + } + } + public override string ToString() + { + return string.Format("CAVI{0}: File:{1}, Comment:{2}", CDTX.tZZ(this.n番号), this.strファイル名, this.strコメント文); + } + + #region [ IDisposable 実装 ] + //----------------- + public void Dispose() + { + if (this.bDispose済み) + return; + + if (this.avi != null) + { + #region [ strAVIファイル名 の作成。 ] + //----------------- + string strAVIファイル名; + if (!string.IsNullOrEmpty(TJAPlayer3.DTX.PATH_WAV)) + strAVIファイル名 = TJAPlayer3.DTX.PATH_WAV + this.strファイル名; + else + strAVIファイル名 = TJAPlayer3.DTX.strフォルダ名 + this.strファイル名; + //----------------- + #endregion + + this.avi.Dispose(); + this.avi = null; + + Trace.TraceInformation("動画を解放しました。({0})({1})", this.strコメント文, strAVIファイル名); + } + + this.bDispose済み = true; + } + //----------------- + #endregion + } + public class CAVIPAN + { + public int nAVI番号; + public int n移動時間ct; + public int n番号; + public Point pt動画側開始位置 = new Point(0, 0); + public Point pt動画側終了位置 = new Point(0, 0); + public Point pt表示側開始位置 = new Point(0, 0); + public Point pt表示側終了位置 = new Point(0, 0); + public Size sz開始サイズ = new Size(0, 0); + public Size sz終了サイズ = new Size(0, 0); + + public override string ToString() + { + return string.Format("CAVIPAN{0}: AVI:{14}, 開始サイズ:{1}x{2}, 終了サイズ:{3}x{4}, 動画側開始位置:{5}x{6}, 動画側終了位置:{7}x{8}, 表示側開始位置:{9}x{10}, 表示側終了位置:{11}x{12}, 移動時間:{13}ct", + CDTX.tZZ(this.n番号), + this.sz開始サイズ.Width, this.sz開始サイズ.Height, + this.sz終了サイズ.Width, this.sz終了サイズ.Height, + this.pt動画側開始位置.X, this.pt動画側開始位置.Y, + this.pt動画側終了位置.X, this.pt動画側終了位置.Y, + this.pt表示側開始位置.X, this.pt表示側開始位置.Y, + this.pt表示側終了位置.X, this.pt表示側終了位置.Y, + this.n移動時間ct, + CDTX.tZZ(this.nAVI番号)); + } + } + public class CDirectShow : IDisposable + { + public FDK.CDirectShow dshow; + private bool bDispose済み; + public int n番号; + public string strコメント文 = ""; + public string strファイル名 = ""; + + public void OnDeviceCreated() + { + #region [ str動画ファイル名の作成。] + //----------------- + string str動画ファイル名; + if (!string.IsNullOrEmpty(TJAPlayer3.DTX.PATH_WAV)) + str動画ファイル名 = TJAPlayer3.DTX.PATH_WAV + this.strファイル名; + else + str動画ファイル名 = TJAPlayer3.DTX.strフォルダ名 + this.strファイル名; + //----------------- + #endregion + + if (!File.Exists(str動画ファイル名)) + { + Trace.TraceWarning("ファイルが存在しません。({0})({1})", this.strコメント文, str動画ファイル名); + this.dshow = null; + } + + // AVI の生成。 + + try + { + this.dshow = new FDK.CDirectShow(TJAPlayer3.stage選曲.r確定されたスコア.ファイル情報.フォルダの絶対パス + this.strファイル名, TJAPlayer3.app.WindowHandle, true); + Trace.TraceInformation("DirectShowを生成しました。({0})({1})({2}byte)", this.strコメント文, str動画ファイル名, this.dshow.nデータサイズbyte); + } + catch (Exception e) + { + Trace.TraceError(e.ToString()); + Trace.TraceError("DirectShowの生成に失敗しました。({0})({1})", this.strコメント文, str動画ファイル名); + this.dshow = null; + } + } + public override string ToString() + { + return string.Format("CAVI{0}: File:{1}, Comment:{2}", CDTX.tZZ(this.n番号), this.strファイル名, this.strコメント文); + } + + #region [ IDisposable 実装 ] + //----------------- + public void Dispose() + { + if (this.bDispose済み) + return; + + if (this.dshow != null) + { + #region [ strAVIファイル名 の作成。 ] + //----------------- + string str動画ファイル名; + if (!string.IsNullOrEmpty(TJAPlayer3.DTX.PATH_WAV)) + str動画ファイル名 = TJAPlayer3.DTX.PATH_WAV + this.strファイル名; + else + str動画ファイル名 = TJAPlayer3.DTX.strフォルダ名 + this.strファイル名; + //----------------- + #endregion + + this.dshow.Dispose(); + this.dshow = null; + + Trace.TraceInformation("動画を解放しました。({0})({1})", this.strコメント文, str動画ファイル名); + } + + this.bDispose済み = true; + } + //----------------- + #endregion + } + + public class CBPM + { + public double dbBPM値; + public double bpm_change_time; + public double bpm_change_bmscroll_time; + public ECourse bpm_change_course = ECourse.eNormal; + public int n内部番号; + public int n表記上の番号; + + public override string ToString() + { + StringBuilder builder = new StringBuilder(0x80); + if (this.n内部番号 != this.n表記上の番号) + { + builder.Append(string.Format("CBPM{0}(内部{1})", CDTX.tZZ(this.n表記上の番号), this.n内部番号)); + } + else + { + builder.Append(string.Format("CBPM{0}", CDTX.tZZ(this.n表記上の番号))); + } + builder.Append(string.Format(", BPM:{0}", this.dbBPM値)); + return builder.ToString(); + } + } + public class CSCROLL + { + public double dbSCROLL値; + public double dbSCROLL値Y; + public int n内部番号; + public int n表記上の番号; + + public override string ToString() + { + StringBuilder builder = new StringBuilder(0x80); + if (this.n内部番号 != this.n表記上の番号) + { + builder.Append(string.Format("CSCROLL{0}(内部{1})", CDTX.tZZ(this.n表記上の番号), this.n内部番号)); + } + else + { + builder.Append(string.Format("CSCROLL{0}", CDTX.tZZ(this.n表記上の番号))); + } + builder.Append(string.Format(", SCROLL:{0}", this.dbSCROLL値)); + return builder.ToString(); + } + } + ///

+ /// 判定ライン移動命令 + /// + public class CJPOSSCROLL + { + public double db移動時間; + public int n移動距離px; + public int n移動方向; //移動方向は0(左)、1(右)の2つだけ。 + public int n内部番号; + public int n表記上の番号; + + public override string ToString() + { + StringBuilder builder = new StringBuilder(0x80); + if (this.n内部番号 != this.n表記上の番号) + { + builder.Append(string.Format("CJPOSSCROLL{0}(内部{1})", CDTX.tZZ(this.n表記上の番号), this.n内部番号)); + } + else + { + builder.Append(string.Format("CJPOSSCROLL{0}", CDTX.tZZ(this.n表記上の番号))); + } + builder.Append(string.Format(", JPOSSCROLL:{0}", this.db移動時間)); + return builder.ToString(); + } + } + + public class CDELAY + { + public int nDELAY値; //格納時にはmsになっているため、doubleにはしない。 + public int n内部番号; + public int n表記上の番号; + public double delay_time; + public double delay_bmscroll_time; + public double delay_bpm; + public ECourse delay_course = ECourse.eNormal; + + public override string ToString() + { + StringBuilder builder = new StringBuilder(0x80); + if (this.n内部番号 != this.n表記上の番号) + { + builder.Append(string.Format("CDELAY{0}(内部{1})", CDTX.tZZ(this.n表記上の番号), this.n内部番号)); + } + else + { + builder.Append(string.Format("CDELAY{0}", CDTX.tZZ(this.n表記上の番号))); + } + builder.Append(string.Format(", DELAY:{0}", this.nDELAY値)); + return builder.ToString(); + } + } + public enum E分岐種類 + { + e精度分岐, + e連打分岐, + eスコア分岐, + e大音符のみ精度分岐 + } + public class CBRANCH + { + public E分岐種類 e分岐の種類; //0:精度分岐 1:連打分岐 2:スコア分岐 3:大音符のみの精度分岐 + public double n条件数値A; + public double n条件数値B; + public double db分岐時間; + public double db分岐時間ms; + public double db判定時間; + public double dbBMScrollTime; + public double dbBPM; + public double dbSCROLL; + public int n現在の小節; + public int n命令時のChipList番号; + + public int n表記上の番号; + public int n内部番号; + + public override string ToString() + { + StringBuilder builder = new StringBuilder(0x80); + if (this.n内部番号 != this.n表記上の番号) + { + builder.Append(string.Format("CBRANCH{0}(内部{1})", CDTX.tZZ(this.n表記上の番号), this.n内部番号)); + } + else + { + builder.Append(string.Format("CBRANCH{0}", CDTX.tZZ(this.n表記上の番号))); + } + builder.Append(string.Format(", BRANCH:{0}", this.e分岐の種類)); + return builder.ToString(); + } + } + + + public class CChip : IComparable, ICloneable + { + public bool bHit; + public bool b可視 = true; + public bool bShow; + public bool bShowRoll; + public bool bBranch = false; + public double dbチップサイズ倍率 = 1.0; + public double db実数値; + public double dbBPM; + public float fNow_Measure_s = 4.0f;//強制分岐のために追加.2020.04.21.akasoko26 + public float fNow_Measure_m = 4.0f;//強制分岐のために追加.2020.04.21.akasoko26 + public bool IsEndedBranching = false;//分岐が終わった時の連打譜面が非可視化になってしまうためフラグを追加.2020.04.21.akasoko26 + public double dbSCROLL; + public double dbSCROLL_Y; + public ECourse nコース; + public int nSenote; + public int nState; + public int nRollCount; + public int nBalloon; + public int nProcessTime; + public int nスクロール方向; + public int n描画優先度; //(特殊)現状連打との判断目的で使用 + public ENoteState eNoteState; + public EAVI種別 eAVI種別; + public E楽器パート e楽器パート = E楽器パート.UNKNOWN; + public int nチャンネル番号; + public STDGBVALUE nバーからの距離dot; + public int nバーからのノーツ末端距離dot; + public int n整数値; + public int n文字数 = 16; + + public int n整数値_内部番号; + public int n総移動時間; + public int n透明度 = 0xff; + public int n発声位置; + public double n条件数値A; + public double n条件数値B; + public double db分岐時間のズレ; + public E分岐種類 e分岐の種類; + + public double db発声位置; // 発声時刻を格納していた変数のうちの1つをfloat型からdouble型に変更。(kairera0467) + public double fBMSCROLLTime; + public double fBMSCROLLTime_end; + public int n発声時刻ms; + public double n分岐時刻ms; + + + public double db発声時刻ms; + public int nノーツ終了位置; + public int nノーツ終了時刻ms; + public int nノーツ出現時刻ms; + public int nノーツ移動開始時刻ms; + public int n分岐回数; + public int n連打音符State; + public int nLag; // 2011.2.1 yyagi + public CDTX.CAVI rAVI; + public CDTX.CAVIPAN rAVIPan; + public CDTX.CDirectShow rDShow; + public double db発声時刻; + public double db判定終了時刻;//連打系音符で使用 + public double dbProcess_Time; + public int nPlayerSide; + public bool bGOGOTIME = false; //2018.03.11 k1airera0467 ゴーゴータイム内のチップであるか + public int nList上の位置; + public bool IsFixedSENote; + public bool IsHitted = false; + public bool IsMissed = false; + + public bool bBPMチップである + { + get + { + if (this.nチャンネル番号 == 3 || this.nチャンネル番号 == 8) + { + return true; + } + else + { + return false; + } + } + } + public bool b自動再生音チャンネルである + { + get + { + int num = this.nチャンネル番号; + if ((((num != 1) && ((0x61 > num) || (num > 0x69))) && ((0x70 > num) || (num > 0x79))) && ((0x80 > num) || (num > 0x89))) + { + return ((0x90 <= num) && (num <= 0x92)); + } + return true; + } + } + + + + public bool b演奏終了後も再生が続くチップである; // #32248 2013.10.14 yyagi + public CCounter RollDelay; // 18.9.22 AioiLight Add 連打時に赤くなるやつのタイマー + public CCounter RollInputTime; // 18.9.22 AioiLight Add 連打入力後、RollDelayが作動するまでのタイマー + public int RollEffectLevel; // 18.9.22 AioiLight Add 連打時に赤くなるやつの度合い + + public CChip() + { + this.nバーからの距離dot = new STDGBVALUE() + { + Drums = 0, + Guitar = 0, + Bass = 0, + Taiko = 0 + }; + } + public void t初期化() + { + this.bBranch = false; + this.nチャンネル番号 = 0; + this.n整数値 = 0; //整数値をList上の番号として用いる。 + this.n整数値_内部番号 = 0; + this.db実数値 = 0.0; + this.n発声位置 = 0; + this.db発声位置 = 0.0D; + this.n発声時刻ms = 0; + this.db発声時刻ms = 0.0D; + this.fBMSCROLLTime = 0; + this.nノーツ終了位置 = 0; + this.nノーツ終了時刻ms = 0; + this.n描画優先度 = 0; + this.nLag = -999; + this.b演奏終了後も再生が続くチップである = false; + this.nList上の位置 = 0; + this.dbチップサイズ倍率 = 1.0; + this.bHit = false; + this.IsMissed = false; + this.b可視 = true; + this.e楽器パート = E楽器パート.UNKNOWN; + this.n透明度 = 0xff; + this.nバーからの距離dot.Drums = 0; + this.nバーからの距離dot.Guitar = 0; + this.nバーからの距離dot.Bass = 0; + this.nバーからの距離dot.Taiko = 0; + this.nバーからのノーツ末端距離dot = 0; + this.n総移動時間 = 0; + this.dbBPM = 120.0; + this.fNow_Measure_m = 4.0f; + this.fNow_Measure_s = 4.0f; + this.nスクロール方向 = 0; + this.dbSCROLL = 1.0; + this.dbSCROLL_Y = 0.0f; + } + public override string ToString() + { + + //2016.10.07 kairera0467 近日中に再編成予定 + string[] chToStr = + { + //システム + "??", "バックコーラス", "小節長変更", "BPM変更", "??", "??", "??", "??", + "BPM変更(拡張)", "??", "??", "??", "??", "??", "??", "??", + + //太鼓1P(移動予定) + "??", "ドン", "カツ", "ドン(大)", "カツ(大)", "連打", "連打(大)", "ふうせん連打", + "連打終点", "芋", "ドン(手)", "カッ(手)", "??", "??", "??", "AD-LIB", + + //太鼓予備 + "??", "??", "??", "??", "??", "??", "??", "??", + "??", "??", "??", "??", "??", "??", "??", "??", + + //太鼓予備 + "??", "??", "??", "??", "??", "??", "??", "??", + "??", "??", "??", "??", "??", "??", "??", "??", + + //太鼓予備 + "??", "??", "??", "??", "??", "??", "??", "??", + "??", "??", "??", "??", "??", "??", "??", "??", + + //システム + "小節線", "拍線", "??", "??", "AVI", "??", "??", "??", + "??", "??", "??", "??", "??", "??", "??", "??", + + //システム(移動予定) + "SCROLL", "DELAY", "ゴーゴータイム開始", "ゴーゴータイム終了", "??", "??", "??", "??", + "??", "??", "??", "??", "??", "??", "??", "??", + + "??", "??", "??", "??", "??", "??", "??", "??", + "??", "??", "??", "??", "??", "??", "??", "??", + + "??", "??", "??", "??", "??", "??", "??", "??", + "??", "??", "??", "??", "??", "??", "??", "??", + + //太鼓1P、システム(現行) + "??", "??", "??", "太鼓_赤", "太鼓_青", "太鼓_赤(大)", "太鼓_青(大)", "太鼓_黄", + "太鼓_黄(大)", "太鼓_風船", "太鼓_連打末端", "太鼓_芋", "??", "SCROLL", "ゴーゴータイム開始", "ゴーゴータイム終了", + + "??", "??", "??", "??", "??", "??", "??", "??", + "??", "??", "??", "??", "??", "??", "??", "太鼓 AD-LIB", + + "??", "??", "??", "??", "??", "??", "??", "??", + "??", "??", "??", "??", "??", "??", "??", "??", + + "??", "??", "??", "??", "0xC4", "0xC5", "0xC6", "??", + "??", "??", "0xCA", "??", "??", "??", "??", "0xCF", + + //システム(現行) + "0xD0", "??", "??", "??", "??", "??", "??", "??", + "??", "??", "ミキサー追加", "ミキサー削除", "DELAY", "譜面分岐リセット", "譜面分岐アニメ", "譜面分岐内部処理", + + //システム(現行) + "小節線ON/OFF", "分岐固定", "判定枠移動", "", "", "", "", "", + "", "", "", "", "", "", "", "", + + "0xF0", "歌詞", "??", "SUDDEN", "??", "??", "??", "??", + "??", "??", "??", "??", "??", "??", "??", "??", "譜面終了" + }; + return string.Format("CChip: 位置:{0:D4}.{1:D3}, 時刻{2:D6}, Ch:{3:X2}({4}), Pn:{5}({11})(内部{6}), Pd:{7}, Sz:{8}, BMScroll:{9}, Auto:{10}, コース:{11}", + this.n発声位置 / 384, this.n発声位置 % 384, + this.n発声時刻ms, + this.nチャンネル番号, chToStr[this.nチャンネル番号], + this.n整数値, this.n整数値_内部番号, + this.db実数値, + this.dbチップサイズ倍率, + this.fBMSCROLLTime, + this.b自動再生音チャンネルである, + this.nコース, + CDTX.tZZ(this.n整数値)); + } + /// + /// チップの再生長を取得する。現状、WAVチップとBGAチップでのみ使用可能。 + /// + /// 再生長(ms) + public int GetDuration() + { + int nDuration = 0; + + if (this.nチャンネル番号 == 0x01) // WAV + { + CDTX.CWAV wc; + TJAPlayer3.DTX.listWAV.TryGetValue(this.n整数値_内部番号, out wc); + if (wc == null) + { + nDuration = 0; + } + else + { + nDuration = (wc.rSound[0] == null) ? 0 : wc.rSound[0].n総演奏時間ms; + } + } + else if (this.nチャンネル番号 == 0x54) // AVI + { + if (this.rAVI != null && this.rAVI.avi != null) + { + int dwRate = (int)this.rAVI.avi.dwレート; + int dwScale = (int)this.rAVI.avi.dwスケール; + nDuration = (int)(1000.0f * dwScale / dwRate * this.rAVI.avi.GetMaxFrameCount()); + } + } + + double _db再生速度 = (TJAPlayer3.DTXVmode.Enabled) ? TJAPlayer3.DTX.dbDTXVPlaySpeed : TJAPlayer3.DTX.db再生速度; + return (int)(nDuration / _db再生速度); + } + + #region [ IComparable 実装 ] + //----------------- + + private static readonly byte[] n優先度 = new byte[] { + 5, 5, 3, 7, 5, 5, 5, 5, 3, 5, 5, 5, 5, 5, 5, 5, //0x00 + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, //0x10 + 7, 7, 7, 7, 7, 7, 7, 7, 5, 5, 5, 5, 5, 5, 5, 5, //0x20 + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, //0x30 + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, //0x40 + 9, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, //0x50 + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, //0x60 + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, //0x70 + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, //0x80 + 5, 5, 5, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 9, 9, 9, //0x90 + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, //0xA0 + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, //0xB0 + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, //0xC0 + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 3, 4, 4, //0xD0 + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, //0xE0 + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, //0xF0 + }; + + public int CompareTo(CDTX.CChip other) + { + // まずは位置で比較。 + + //BGMチップだけ発声位置 + //if( this.nチャンネル番号 == 0x01 || this.nチャンネル番号 == 0x02 ) + //{ + // if( this.n発声位置 < other.n発声位置 ) + // return -1; + + // if( this.n発声位置 > other.n発声位置 ) + // return 1; + //} + + //if( this.n発声位置 < other.n発声位置 ) + // return -1; + + //if( this.n発声位置 > other.n発声位置 ) + // return 1; + + //譜面解析メソッドV4では発声時刻msで比較する。 + var n発声時刻msCompareToResult = 0; + n発声時刻msCompareToResult = this.n発声時刻ms.CompareTo(other.n発声時刻ms); + if (n発声時刻msCompareToResult != 0) + { + return n発声時刻msCompareToResult; + } + + n発声時刻msCompareToResult = this.db発声時刻ms.CompareTo(other.db発声時刻ms); + if (n発声時刻msCompareToResult != 0) + { + return n発声時刻msCompareToResult; + } + + // 位置が同じなら優先度で比較。 + return n優先度[this.nチャンネル番号].CompareTo(n優先度[other.nチャンネル番号]); + } + //----------------- + #endregion + /// + /// shallow copyです。 + /// + /// + public object Clone() + { + return MemberwiseClone(); + } + } + public class CWAV : IDisposable + { + public bool bBGMとして使う; + public List listこのWAVを使用するチャンネル番号の集合 = new List(16); + public int nチップサイズ = 100; + public int n位置; + public long[] n一時停止時刻 = new long[TJAPlayer3.ConfigIni.nPoliphonicSounds]; // 4 + public int SongVol = CSound.DefaultSongVol; + public LoudnessMetadata? SongLoudnessMetadata = null; + public int n現在再生中のサウンド番号; + public long[] n再生開始時刻 = new long[TJAPlayer3.ConfigIni.nPoliphonicSounds]; // 4 + public int n内部番号; + public int n表記上の番号; + public CSound[] rSound = new CSound[TJAPlayer3.ConfigIni.nPoliphonicSounds]; // 4 + public string strコメント文 = ""; + public string strファイル名 = ""; + public bool bBGMとして使わない + { + get + { + return !this.bBGMとして使う; + } + set + { + this.bBGMとして使う = !value; + } + } + public bool bIsBassSound = false; + public bool bIsGuitarSound = false; + public bool bIsDrumsSound = false; + public bool bIsSESound = false; + public bool bIsBGMSound = false; + + public override string ToString() + { + var sb = new StringBuilder(128); + + if (this.n表記上の番号 == this.n内部番号) + { + sb.Append(string.Format("CWAV{0}: ", CDTX.tZZ(this.n表記上の番号))); + } + else + { + sb.Append(string.Format("CWAV{0}(内部{1}): ", CDTX.tZZ(this.n表記上の番号), this.n内部番号)); + } + sb.Append( + $"{nameof(SongVol)}:{this.SongVol}, {nameof(LoudnessMetadata.Integrated)}:{this.SongLoudnessMetadata?.Integrated}, {nameof(LoudnessMetadata.TruePeak)}:{this.SongLoudnessMetadata?.TruePeak}, 位置:{this.n位置}, サイズ:{this.nチップサイズ}, BGM:{(this.bBGMとして使う ? 'Y' : 'N')}, File:{this.strファイル名}, Comment:{this.strコメント文}"); + + return sb.ToString(); + } + + #region [ Dispose-Finalize パターン実装 ] + //----------------- + public void Dispose() + { + this.Dispose(true); + GC.SuppressFinalize(this); + } + public void Dispose(bool bManagedリソースの解放も行う) + { + if (this.bDisposed済み) + return; + + if (bManagedリソースの解放も行う) + { + for (int i = 0; i < TJAPlayer3.ConfigIni.nPoliphonicSounds; i++) // 4 + { + if (this.rSound[i] != null) + TJAPlayer3.Sound管理.tサウンドを破棄する(this.rSound[i]); + this.rSound[i] = null; + + if ((i == 0) && TJAPlayer3.ConfigIni.bLog作成解放ログ出力) + Trace.TraceInformation("サウンドを解放しました。({0})({1})", this.strコメント文, this.strファイル名); + } + } + + this.bDisposed済み = true; + } + ~CWAV() + { + this.Dispose(false); + } + //----------------- + #endregion + + #region [ private ] + //----------------- + private bool bDisposed済み; + //----------------- + #endregion + } + + public class DanSongs + { + public CTexture TitleTex; + public CTexture SubTitleTex; + public string Title; + public string SubTitle; + public string FileName; + public string Genre; + public int ScoreInit; + public int ScoreDiff; + public int Level; + public int Difficulty; + public static int Number = 0; + public bool bTitleShow; + public Dan_C[] Dan_C = new Dan_C[4]; + public CWAV Wave; + + public DanSongs() + { + Number++; + } + } + + public struct STLYRIC + { + public long Time; + public Bitmap TextTex; + public string Text; + public int index; + } + + + // 構造体 + + public struct STLANEINT + { + public int HH; + public int SD; + public int BD; + public int HT; + public int LT; + public int CY; + public int FT; + public int HHO; + public int RD; + public int LC; + public int LP; + public int LBD; + + public int Drums + { + get + { + return this.HH + this.SD + this.BD + this.HT + this.LT + this.CY + this.FT + this.HHO + this.RD + this.LC + this.LP + this.LBD; + } + } + public int Guitar; + public int Bass; + public int Taiko_Red; + public int Taiko_Blue; + + public int this[int index] + { + get + { + switch (index) + { + case 0: + return this.HH; + + case 1: + return this.SD; + + case 2: + return this.BD; + + case 3: + return this.HT; + + case 4: + return this.LT; + + case 5: + return this.CY; + + case 6: + return this.FT; + + case 7: + return this.HHO; + + case 8: + return this.RD; + + case 9: + return this.LC; + + case 10: + return this.LP; + + case 11: + return this.LBD; + + case 12: + return this.Guitar; + + case 13: + return this.Bass; + + case 14: + return this.Taiko_Red; + + case 15: + return this.Taiko_Blue; + } + throw new IndexOutOfRangeException(); + } + set + { + if (value < 0) + { + throw new ArgumentOutOfRangeException(); + } + switch (index) + { + case 0: + this.HH = value; + return; + + case 1: + this.SD = value; + return; + + case 2: + this.BD = value; + return; + + case 3: + this.HT = value; + return; + + case 4: + this.LT = value; + return; + + case 5: + this.CY = value; + return; + + case 6: + this.FT = value; + return; + + case 7: + this.HHO = value; + return; + + case 8: + this.RD = value; + return; + + case 9: + this.LC = value; + return; + + case 10: + this.LP = value; + return; + + case 11: + this.LBD = value; + return; + + case 12: + this.Guitar = value; + return; + + case 13: + this.Bass = value; + return; + + case 14: + this.Taiko_Red = value; + return; + + case 15: + this.Taiko_Blue = value; + return; + } + throw new IndexOutOfRangeException(); + } + } + } + public struct STRESULT + { + public string SS; + public string S; + public string A; + public string B; + public string C; + public string D; + public string E; + + public string this[int index] + { + get + { + switch (index) + { + case 0: + return this.SS; + + case 1: + return this.S; + + case 2: + return this.A; + + case 3: + return this.B; + + case 4: + return this.C; + + case 5: + return this.D; + + case 6: + return this.E; + } + throw new IndexOutOfRangeException(); + } + set + { + switch (index) + { + case 0: + this.SS = value; + return; + + case 1: + this.S = value; + return; + + case 2: + this.A = value; + return; + + case 3: + this.B = value; + return; + + case 4: + this.C = value; + return; + + case 5: + this.D = value; + return; + + case 6: + this.E = value; + return; + } + throw new IndexOutOfRangeException(); + } + } + } + public struct STチップがある + { + public bool Drums; + public bool Guitar; + public bool Bass; + + public bool HHOpen; + public bool Ride; + public bool LeftCymbal; + public bool OpenGuitar; + public bool OpenBass; + + public bool Branch; + + public bool this[int index] + { + get + { + switch (index) + { + case 0: + return this.Drums; + + case 1: + return this.Guitar; + + case 2: + return this.Bass; + + case 3: + return this.HHOpen; + + case 4: + return this.Ride; + + case 5: + return this.LeftCymbal; + + case 6: + return this.OpenGuitar; + + case 7: + return this.OpenBass; + + case 8: + return this.Branch; + } + throw new IndexOutOfRangeException(); + } + set + { + switch (index) + { + case 0: + this.Drums = value; + return; + + case 1: + this.Guitar = value; + return; + + case 2: + this.Bass = value; + return; + + case 3: + this.HHOpen = value; + return; + + case 4: + this.Ride = value; + return; + + case 5: + this.LeftCymbal = value; + return; + + case 6: + this.OpenGuitar = value; + return; + + case 7: + this.OpenBass = value; + return; + + case 8: + this.Branch = value; + return; + } + throw new IndexOutOfRangeException(); + } + } + } + public enum ECourse + { + eNormal, + eExpert, + eMaster + } + public class CLine + { + public int n小節番号; + public int n文字数; + public double db発声時刻; + public double dbBMS時刻; + public ECourse nコース = ECourse.eNormal; + public int nタイプ; + } + + // プロパティ + + + public class CBranchStartInfo + { + public int nMeasureCount; + public double dbTime; + public double dbBPM; + public double dbSCROLL; + public double dbSCROLLY; + public double dbBMScollTime; + public double db移動待機時刻; + public double db出現時刻; + public double db再生速度; + public float fMeasure_s; + public float fMeasure_m; + } + + /// + /// 分岐開始時の情報を記録するためのあれ 2020.04.21 + /// + public CBranchStartInfo cBranchStart = new CBranchStartInfo(); + + public int nBGMAdjust + { + get; + private set; + } + public bool b分岐を一回でも開始した = false; //2020.04.22 akasoko26 分岐譜面のみ値を代入するように。 + + public int nPlayerSide; //2017.08.14 kairera0467 引数で指定する + public bool bSession譜面を読み込む; + public string ARTIST; + public string BACKGROUND; + public string BACKGROUND_GR; + public double BASEBPM; + public double BPM; + public STチップがある bチップがある; + public string COMMENT; + public double db再生速度; + public string GENRE; + public Eジャンル eジャンル; + public bool HIDDENLEVEL; + public STDGBVALUE LEVEL; + public bool bLyrics; + public int[] LEVELtaiko = new int[(int)Difficulty.Total] { -1, -1, -1, -1, -1, -1, -1 }; + public Dictionary listAVI; + public Dictionary listAVIPAN; + public Dictionary listDS; + public Dictionary listBPM; + public List listChip; + public List[] listChip_Branch; + public Dictionary listWAV; + public Dictionary listSCROLL; + public Dictionary listSCROLL_Normal; + public Dictionary listSCROLL_Expert; + public Dictionary listSCROLL_Master; + public Dictionary listJPOSSCROLL; + public List List_DanSongs; + + + private double[] dbNowSCROLL_Normal; + private double[] dbNowSCROLL_Expert; + private double[] dbNowSCROLL_Master; + + + public Dictionary listDELAY; + public Dictionary listBRANCH; + public STLANEINT n可視チップ数; + public const int n最大音数 = 4; + public const int n小節の解像度 = 384; + public string PANEL; + public string PATH_WAV; + public string PREIMAGE; + public string PREVIEW; + public string strハッシュofDTXファイル; + public string strファイル名; + public string strファイル名の絶対パス; + public string strフォルダ名; + public string SUBTITLE; + public string TITLE; + public double dbDTXVPlaySpeed; + public double dbScrollSpeed; + public int nデモBGMオフセット; + + private int n現在の小節数 = 1; + + private int nNowRoll = 0; + private int nNowRollCount = 0; + + private int[] n連打チップ_temp = new int[3]; + public int nOFFSET = 0; + private bool bOFFSETの値がマイナスである = false; + private int nMOVIEOFFSET = 0; + private bool bMOVIEOFFSETの値がマイナスである = false; + private double dbNowBPM = 120.0; + private int nDELAY = 0; + public bool[] bHasBranch = new bool[(int)Difficulty.Total] { false, false, false, false, false, false, false }; + + //分岐関連 + private ECourse n現在のコース = ECourse.eNormal; + + private bool b最初の分岐である; + public int[] nノーツ数 = new int[4]; //3:共通 + public int[] nDan_NotesCount = new int[1]; + public int[] nノーツ数_Branch = new int[4]; // + public CChip[] pDan_LastChip; + public int[] n風船数 = new int[4]; //0~2:各コース 3:共通 + + private List listLine; + private int nLineCountTemp; //分岐開始時の小節数を記録。 + private ECourse nLineCountCourseTemp = ECourse.eNormal; //現在カウント中のコースを記録。 + + public int n参照中の難易度 = 3; + public int nScoreModeTmp = 99; //2017.01.28 DD + public int[,] nScoreInit = new int[2, (int)Difficulty.Total]; //[ x, y ] x=通常or真打 y=コース + public int[] nScoreDiff = new int[(int)Difficulty.Total]; //[y] + public bool[,] b配点が指定されている = new bool[3, (int)Difficulty.Total]; //2017.06.04 kairera0467 [ x, y ] x=通常(Init)or真打orDiff y=コース + + private double dbBarLength; + public float fNow_Measure_s = 4.0f; + public float fNow_Measure_m = 4.0f; + public double dbNowTime = 0.0; + public double dbNowBMScollTime = 0.0; + public double dbNowScroll = 1.0; + public double dbNowScrollY = 0.0; //2016.08.13 kairera0467 複素数スクロール + public double dbLastTime = 0.0; //直前の小節の開始時間 + public double dbLastBMScrollTime = 0.0; + + public int[] bBARLINECUE = new int[2]; //命令を入れた次の小節の操作を実現するためのフラグ。0 = mainflag, 1 = cuetype + public bool b小節線を挿入している = false; + + //Normal Regular Masterにしたいけどここは我慢。 + private List listBalloon_Normal; + private List listBalloon_Expert; + private List listBalloon_Master; + private List listBalloon; //旧構文用 + + public List listLyric; //歌詞を格納していくリスト。スペル忘れた(ぉい + public List listLyric2; + + private int listBalloon_Normal_数値管理; + private int listBalloon_Expert_数値管理; + private int listBalloon_Master_数値管理; + + public bool[] b譜面が存在する = new bool[(int)Difficulty.Total]; + + private string[] dlmtSpace = { " " }; + private string[] dlmtEnter = { "\n" }; + private string[] dlmtCOURSE = { "COURSE:" }; + + private int nスクロール方向 = 0; + //2015.09.18 kairera0467 + //バタフライスライドみたいなアレをやりたいがために実装。 + //次郎2みたいな複素数とかは意味不明なので、方向を指定してスクロールさせることにした。 + //0:通常 + //1:上 + //2:下 + //3:右上 + //4:右下 + //5:左 + //6:左上 + //7:左下 + + public string strBGIMAGE_PATH; + public string strBGVIDEO_PATH; + + public double db出現時刻; + public double db移動待機時刻; + + public string strBGM_PATH; + public int SongVol; + public LoudnessMetadata? SongLoudnessMetadata; + + public bool bHIDDENBRANCH; //2016.04.01 kairera0467 選曲画面上、譜面分岐開始前まで譜面分岐の表示を隠す + public bool bGOGOTIME; //2018.03.11 kairera0467 + + public bool[] IsBranchBarDraw = new bool[4]; // 仕様変更により、黄色lineの表示法を変更.2020.04.21.akasoko26 + public bool IsEndedBranching; // BRANCHENDが呼び出されたかどうか + public Dan_C[] Dan_C; + + public bool IsEnabledFixSENote; + public int FixSENote; + public GaugeIncreaseMode GaugeIncreaseMode; + + + +#if TEST_NOTEOFFMODE + public STLANEVALUE b演奏で直前の音を消音する; +// public bool bHH演奏で直前のHHを消音する; +// public bool bGUITAR演奏で直前のGUITARを消音する; +// public bool bBASS演奏で直前のBASSを消音する; +#endif + // コンストラクタ + + public CDTX() + { + this.nPlayerSide = 0; + this.TITLE = ""; + this.SUBTITLE = ""; + this.ARTIST = ""; + this.COMMENT = ""; + this.PANEL = ""; + this.GENRE = ""; + this.bLyrics = false; + this.eジャンル = Eジャンル.None; + this.PREVIEW = ""; + this.PREIMAGE = ""; + this.BACKGROUND = ""; + this.BACKGROUND_GR = ""; + this.PATH_WAV = ""; + this.BPM = 120.0; + STDGBVALUE stdgbvalue = new STDGBVALUE(); + stdgbvalue.Drums = 0; + stdgbvalue.Guitar = 0; + stdgbvalue.Bass = 0; + this.LEVEL = stdgbvalue; + this.bHIDDENBRANCH = false; + this.db再生速度 = 1.0; + this.bチップがある = new STチップがある(); + this.bチップがある.Drums = false; + this.bチップがある.Guitar = false; + this.bチップがある.Bass = false; + this.bチップがある.HHOpen = false; + this.bチップがある.Ride = false; + this.bチップがある.LeftCymbal = false; + this.bチップがある.OpenGuitar = false; + this.bチップがある.OpenBass = false; + this.strファイル名 = ""; + this.strフォルダ名 = ""; + this.strファイル名の絶対パス = ""; + this.n無限管理WAV = new int[36 * 36]; + this.n無限管理BPM = new int[36 * 36]; + this.n無限管理PAN = new int[36 * 36]; + this.n無限管理SIZE = new int[36 * 36]; + this.listBalloon_Normal_数値管理 = 0; + this.listBalloon_Expert_数値管理 = 0; + this.listBalloon_Master_数値管理 = 0; + this.nRESULTIMAGE用優先順位 = new int[7]; + this.nRESULTMOVIE用優先順位 = new int[7]; + this.nRESULTSOUND用優先順位 = new int[7]; + + #region [ 2011.1.1 yyagi GDA->DTX変換テーブル リファクタ後 ] + STGDAPARAM[] stgdaparamArray = new STGDAPARAM[] { // GDA->DTX conversion table + new STGDAPARAM("TC", 0x03), new STGDAPARAM("BL", 0x02), new STGDAPARAM("GS", 0x29), + new STGDAPARAM("DS", 0x30), new STGDAPARAM("FI", 0x53), new STGDAPARAM("HH", 0x11), + new STGDAPARAM("SD", 0x12), new STGDAPARAM("BD", 0x13), new STGDAPARAM("HT", 0x14), + new STGDAPARAM("LT", 0x15), new STGDAPARAM("CY", 0x16), new STGDAPARAM("G1", 0x21), + new STGDAPARAM("G2", 0x22), new STGDAPARAM("G3", 0x23), new STGDAPARAM("G4", 0x24), + new STGDAPARAM("G5", 0x25), new STGDAPARAM("G6", 0x26), new STGDAPARAM("G7", 0x27), + new STGDAPARAM("GW", 0x28), new STGDAPARAM("01", 0x61), new STGDAPARAM("02", 0x62), + new STGDAPARAM("03", 0x63), new STGDAPARAM("04", 0x64), new STGDAPARAM("05", 0x65), + new STGDAPARAM("06", 0x66), new STGDAPARAM("07", 0x67), new STGDAPARAM("08", 0x68), + new STGDAPARAM("09", 0x69), new STGDAPARAM("0A", 0x70), new STGDAPARAM("0B", 0x71), + new STGDAPARAM("0C", 0x72), new STGDAPARAM("0D", 0x73), new STGDAPARAM("0E", 0x74), + new STGDAPARAM("0F", 0x75), new STGDAPARAM("10", 0x76), new STGDAPARAM("11", 0x77), + new STGDAPARAM("12", 0x78), new STGDAPARAM("13", 0x79), new STGDAPARAM("14", 0x80), + new STGDAPARAM("15", 0x81), new STGDAPARAM("16", 0x82), new STGDAPARAM("17", 0x83), + new STGDAPARAM("18", 0x84), new STGDAPARAM("19", 0x85), new STGDAPARAM("1A", 0x86), + new STGDAPARAM("1B", 0x87), new STGDAPARAM("1C", 0x88), new STGDAPARAM("1D", 0x89), + new STGDAPARAM("1E", 0x90), new STGDAPARAM("1F", 0x91), new STGDAPARAM("20", 0x92), + new STGDAPARAM("B1", 0xA1), new STGDAPARAM("B2", 0xA2), new STGDAPARAM("B3", 0xA3), + new STGDAPARAM("B4", 0xA4), new STGDAPARAM("B5", 0xA5), new STGDAPARAM("B6", 0xA6), + new STGDAPARAM("B7", 0xA7), new STGDAPARAM("BW", 0xA8), new STGDAPARAM("G0", 0x20), + new STGDAPARAM("B0", 0xA0) + }; + this.stGDAParam = stgdaparamArray; + #endregion + this.nBGMAdjust = 0; + this.nPolyphonicSounds = TJAPlayer3.ConfigIni.nPoliphonicSounds; + this.dbDTXVPlaySpeed = 1.0f; + + //this.nScoreModeTmp = 1; + for (int y = 0; y < (int)Difficulty.Total; y++) + { + this.nScoreInit[0, y] = 300; + this.nScoreInit[1, y] = 1000; + this.nScoreDiff[y] = 120; + this.b配点が指定されている[0, y] = false; + this.b配点が指定されている[1, y] = false; + this.b配点が指定されている[2, y] = false; + } + + this.dbBarLength = 1.0; + + this.b最初の分岐である = true; + + this.SongVol = CSound.DefaultSongVol; + this.SongLoudnessMetadata = null; + + GaugeIncreaseMode = GaugeIncreaseMode.Normal; + +#if TEST_NOTEOFFMODE + this.bHH演奏で直前のHHを消音する = true; + this.bGUITAR演奏で直前のGUITARを消音する = true; + this.bBASS演奏で直前のBASSを消音する = true; +#endif + + Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture; // Change default culture to invariant, fixes (Purota) + Dan_C = new Dan_C[4]; + pDan_LastChip = new CChip[1]; + DanSongs.Number = 0; + } + public CDTX(string str全入力文字列, int difficulty) + : this() + { + this.On活性化(); + this.t入力_全入力文字列から(str全入力文字列, difficulty); + } + public CDTX(string strファイル名, bool bヘッダのみ, int difficulty) + : this() + { + this.On活性化(); + this.t入力(strファイル名, bヘッダのみ, difficulty); + } + public CDTX(string str全入力文字列, double db再生速度, int nBGMAdjust, int difficulty) + : this() + { + this.On活性化(); + this.t入力_全入力文字列から(str全入力文字列, str全入力文字列, db再生速度, nBGMAdjust, difficulty); + } + public CDTX(string strファイル名, bool bヘッダのみ, double db再生速度, int nBGMAdjust, int difficulty) + : this() + { + this.On活性化(); + this.t入力(strファイル名, bヘッダのみ, db再生速度, nBGMAdjust, 0, 0, false, difficulty); + } + public CDTX(string strファイル名, bool bヘッダのみ, double db再生速度, int nBGMAdjust, int nReadVersion, int difficulty) + : this() + { + this.On活性化(); + this.t入力(strファイル名, bヘッダのみ, db再生速度, nBGMAdjust, nReadVersion, 0, false, difficulty); + } + public CDTX(string strファイル名, bool bヘッダのみ, double db再生速度, int nBGMAdjust, int nReadVersion, int nPlayerSide, bool bSession, int difficulty) + : this() + { + this.On活性化(); + this.t入力(strファイル名, bヘッダのみ, db再生速度, nBGMAdjust, nReadVersion, nPlayerSide, bSession, difficulty); + } + + + // メソッド + + public void tAVIの読み込み() + { + if (this.listAVI != null) + { + foreach (CAVI cavi in this.listAVI.Values) + { + cavi.OnDeviceCreated(); + } + } + if (this.listDS != null) + { + foreach (CDirectShow cds in this.listDS.Values) + { + cds.OnDeviceCreated(); + } + } + if (!this.bヘッダのみ)//&& this.b動画読み込み ) + { + foreach (CChip chip in this.listChip) + { + if (chip.nチャンネル番号 == 0x54 || chip.nチャンネル番号 == 0x5A) + { + chip.eAVI種別 = EAVI種別.Unknown; + chip.rAVI = null; + chip.rDShow = null; + chip.rAVIPan = null; + if (this.listAVIPAN.TryGetValue(chip.n整数値, out CAVIPAN cavipan)) + { + if (this.listAVI.TryGetValue(cavipan.nAVI番号, out CAVI cavi) && (cavi.avi != null)) + { + chip.eAVI種別 = EAVI種別.AVIPAN; + chip.rAVI = cavi; + //if( CDTXMania.ConfigIni.bDirectShowMode == true ) + chip.rDShow = this.listDS[cavipan.nAVI番号]; + chip.rAVIPan = cavipan; + continue; + } + } + + CDirectShow ds = null; + if (this.listAVI.TryGetValue(chip.n整数値, out CAVI cavi2) && (cavi2.avi != null) || (this.listDS.TryGetValue(chip.n整数値, out ds) && (ds.dshow != null))) + { + chip.eAVI種別 = EAVI種別.AVI; + chip.rAVI = cavi2; + //if(CDTXMania.ConfigIni.bDirectShowMode == true) + chip.rDShow = ds; + } + } + } + } + } + + public void tWave再生位置自動補正() + { + foreach (CWAV cwav in this.listWAV.Values) + { + this.tWave再生位置自動補正(cwav); + } + } + public void tWave再生位置自動補正(CWAV wc) + { + if (wc.rSound[0] != null && wc.rSound[0].n総演奏時間ms >= 5000) + { + for (int i = 0; i < nPolyphonicSounds; i++) + { + if ((wc.rSound[i] != null) && (wc.rSound[i].b再生中)) + { + long nCurrentTime = CSound管理.rc演奏用タイマ.nシステム時刻ms; + if (nCurrentTime > wc.n再生開始時刻[i]) + { + long nAbsTimeFromStartPlaying = nCurrentTime - wc.n再生開始時刻[i]; + //Trace.TraceInformation( "再生位置自動補正: {0}, seek先={1}ms, 全音長={2}ms", + // Path.GetFileName( wc.rSound[ 0 ].strファイル名 ), + // nAbsTimeFromStartPlaying, + // wc.rSound[ 0 ].n総演奏時間ms + //); + // wc.rSound[ i ].t再生位置を変更する( wc.rSound[ i ].t時刻から位置を返す( nAbsTimeFromStartPlaying ) ); + // WASAPI/ASIO用↓ + if (!TJAPlayer3.stage演奏ドラム画面.bPAUSE) + { + if (wc.rSound[i].b一時停止中) wc.rSound[i].t再生を再開する(nAbsTimeFromStartPlaying); + else wc.rSound[i].t再生位置を変更する(nAbsTimeFromStartPlaying); + } + else + { + wc.rSound[i].t再生を一時停止する(); + } + } + } + } + } + } + public void tWavの再生停止(int nWaveの内部番号) + { + tWavの再生停止(nWaveの内部番号, false); + } + public void tWavの再生停止(int nWaveの内部番号, bool bミキサーからも削除する) + { + if (this.listWAV.TryGetValue(nWaveの内部番号, out CWAV cwav)) + { + for (int i = 0; i < nPolyphonicSounds; i++) + { + if (cwav.rSound[i] != null && cwav.rSound[i].b再生中) + { + if (bミキサーからも削除する) + { + cwav.rSound[i].tサウンドを停止してMixerからも削除する(); + } + else + { + cwav.rSound[i].t再生を停止する(); + } + } + } + } + } + public void tWAVの読み込み(CWAV cwav) + { + string str = string.IsNullOrEmpty(this.PATH_WAV) ? this.strフォルダ名 : this.PATH_WAV; + str = str + cwav.strファイル名; + + try + { + #region [ 同時発音数を、チャンネルによって変える ] + + int nPoly = nPolyphonicSounds; + if (TJAPlayer3.Sound管理.GetCurrentSoundDeviceType() != "DirectSound") // DShowでの再生の場合はミキシング負荷が高くないため、 + { + // チップのライフタイム管理を行わない + if (cwav.bIsBassSound) nPoly = (nPolyphonicSounds >= 2) ? 2 : 1; + else if (cwav.bIsGuitarSound) nPoly = (nPolyphonicSounds >= 2) ? 2 : 1; + else if (cwav.bIsSESound) nPoly = 1; + else if (cwav.bIsBGMSound) nPoly = 1; + } + + if (cwav.bIsBGMSound) nPoly = 1; + + #endregion + + for (int i = 0; i < nPoly; i++) + { + try + { + cwav.rSound[i] = TJAPlayer3.Sound管理.tサウンドを生成する(str, ESoundGroup.SongPlayback); + + if (!TJAPlayer3.ConfigIni.bDynamicBassMixerManagement) + { + cwav.rSound[i].tBASSサウンドをミキサーに追加する(); + } + + if (TJAPlayer3.ConfigIni.bLog作成解放ログ出力) + { + Trace.TraceInformation("サウンドを作成しました。({3})({0})({1})({2}bytes)", cwav.strコメント文, str, + cwav.rSound[0].nサウンドバッファサイズ, cwav.rSound[0].bストリーム再生する ? "Stream" : "OnMemory"); + } + } + catch (Exception e) + { + cwav.rSound[i] = null; + Trace.TraceError("サウンドの作成に失敗しました。({0})({1})", cwav.strコメント文, str); + Trace.TraceError(e.ToString()); + } + } + } + catch (Exception exception) + { + Trace.TraceError("サウンドの生成に失敗しました。({0})({1})", cwav.strコメント文, str); + Trace.TraceError(exception.ToString()); + + for (int j = 0; j < nPolyphonicSounds; j++) + { + cwav.rSound[j] = null; + } + + //continue; + } + } + + public static string tZZ(int n) + { + if (n < 0 || n >= 36 * 36) + return "!!"; // オーバー/アンダーフロー。 + + // n を36進数2桁の文字列にして返す。 + + string str = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; + return new string(new char[] { str[n / 36], str[n % 36] }); + } + public void tギターとベースのランダム化(E楽器パート part, Eランダムモード eRandom) + { + } + public void t太鼓チップのランダム化(Eランダムモード eRandom) + { + //2016.02.11 kairera0467 + //なんだよこのクソ実装は(怒) + Random rnd = new System.Random(); + + switch (eRandom) + { + case Eランダムモード.MIRROR: + foreach (var chip in this.listChip) + { + switch (chip.nチャンネル番号) + { + case 0x11: + chip.nチャンネル番号 = 0x12; + break; + case 0x12: + chip.nチャンネル番号 = 0x11; + break; + case 0x13: + chip.nチャンネル番号 = 0x14; + chip.nSenote = 6; + break; + case 0x14: + chip.nチャンネル番号 = 0x13; + chip.nSenote = 5; + break; + } + } + break; + case Eランダムモード.RANDOM: + foreach (var chip in this.listChip) + { + int n = rnd.Next(50); + + if (n >= 5 && n <= 10) + { + switch (chip.nチャンネル番号) + { + case 0x11: + chip.nチャンネル番号 = 0x12; + break; + case 0x12: + chip.nチャンネル番号 = 0x11; + break; + case 0x13: + chip.nチャンネル番号 = 0x14; + chip.nSenote = 6; + break; + case 0x14: + chip.nチャンネル番号 = 0x13; + chip.nSenote = 5; + break; + } + } + } + break; + case Eランダムモード.SUPERRANDOM: + foreach (var chip in this.listChip) + { + int n = rnd.Next(80); + + if (n >= 3 && n <= 43) + { + switch (chip.nチャンネル番号) + { + case 0x11: + chip.nチャンネル番号 = 0x12; + break; + case 0x12: + chip.nチャンネル番号 = 0x11; + break; + case 0x13: + chip.nチャンネル番号 = 0x14; + chip.nSenote = 6; + break; + case 0x14: + chip.nチャンネル番号 = 0x13; + chip.nSenote = 5; + break; + } + } + } + break; + case Eランダムモード.HYPERRANDOM: + foreach (var chip in this.listChip) + { + int n = rnd.Next(100); + + if (n >= 20 && n <= 80) + { + switch (chip.nチャンネル番号) + { + case 0x11: + chip.nチャンネル番号 = 0x12; + break; + case 0x12: + chip.nチャンネル番号 = 0x11; + break; + case 0x13: + chip.nチャンネル番号 = 0x14; + chip.nSenote = 6; + break; + case 0x14: + chip.nチャンネル番号 = 0x13; + chip.nSenote = 5; + break; + } + } + } + break; + case Eランダムモード.OFF: + default: + break; + } + if (eRandom != Eランダムモード.OFF) + { + #region[ list作成 ] + //ひとまずチップだけのリストを作成しておく。 + List list音符のみのリスト; + list音符のみのリスト = new List(); + int nCount = 0; + int dkdkCount = 0; + + foreach (CChip chip in this.listChip) + { + if (chip.nチャンネル番号 >= 0x11 && chip.nチャンネル番号 < 0x18) + { + list音符のみのリスト.Add(chip); + } + } + #endregion + + this.tSenotes_Core_V2(list音符のみのリスト); + + } + + + } + + #region [ チップの再生と停止 ] + public void tチップの再生(CChip pChip, long n再生開始システム時刻ms) + { + if (TJAPlayer3.ConfigIni.b演奏速度が一倍速であるとき以外音声を再生しない && TJAPlayer3.ConfigIni.n演奏速度 != 20) + return; + + if (pChip.n整数値_内部番号 >= 0) + { + if (this.listWAV.TryGetValue(pChip.n整数値_内部番号, out CWAV wc)) + { + int index = wc.n現在再生中のサウンド番号 = (wc.n現在再生中のサウンド番号 + 1) % nPolyphonicSounds; + if ((wc.rSound[0] != null) && + (wc.rSound[0].bストリーム再生する || wc.rSound[index] == null)) + { + index = wc.n現在再生中のサウンド番号 = 0; + } + CSound sound = wc.rSound[index]; + if (sound != null) + { + sound.db再生速度 = ((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0; + // 再生速度によって、WASAPI/ASIOで使う使用mixerが決まるため、付随情報の設定(音量/PAN)は、再生速度の設定後に行う + + // 2018-08-27 twopointzero - DON'T attempt to load (or queue scanning) loudness metadata here. + // This code is called right after loading the .tja, and that code + // will have just made such an attempt. + TJAPlayer3.SongGainController.Set(wc.SongVol, wc.SongLoudnessMetadata, sound); + + sound.n位置 = wc.n位置; + sound.t再生を開始する(); + } + wc.n再生開始時刻[wc.n現在再生中のサウンド番号] = n再生開始システム時刻ms; + this.tWave再生位置自動補正(wc); + } + } + } + public void t各自動再生音チップの再生時刻を変更する(int nBGMAdjustの増減値) + { + this.nBGMAdjust += nBGMAdjustの増減値; + for (int i = 0; i < this.listChip.Count; i++) + { + int nChannelNumber = this.listChip[i].nチャンネル番号; + if ((( + (nChannelNumber == 1) || + ((0x61 <= nChannelNumber) && (nChannelNumber <= 0x69)) + ) || + ((0x70 <= nChannelNumber) && (nChannelNumber <= 0x79)) + ) || + (((0x80 <= nChannelNumber) && (nChannelNumber <= 0x89)) || ((0x90 <= nChannelNumber) && (nChannelNumber <= 0x92))) + ) + { + this.listChip[i].n発声時刻ms += nBGMAdjustの増減値; + } + } + foreach (CWAV cwav in this.listWAV.Values) + { + for (int j = 0; j < nPolyphonicSounds; j++) + { + if ((cwav.rSound[j] != null) && cwav.rSound[j].b再生中) + { + cwav.n再生開始時刻[j] += nBGMAdjustの増減値; + } + } + } + } + public void t全チップの再生一時停止() + { + foreach (CWAV cwav in this.listWAV.Values) + { + for (int i = 0; i < nPolyphonicSounds; i++) + { + if ((cwav.rSound[i] != null) && cwav.rSound[i].b再生中) + { + cwav.rSound[i].t再生を一時停止する(); + cwav.n一時停止時刻[i] = CSound管理.rc演奏用タイマ.nシステム時刻ms; + } + } + } + } + public void t全チップの再生再開() + { + foreach (CWAV cwav in this.listWAV.Values) + { + for (int i = 0; i < nPolyphonicSounds; i++) + { + if ((cwav.rSound[i] != null) && cwav.rSound[i].b一時停止中) + { + //long num1 = cwav.n一時停止時刻[ i ]; + //long num2 = cwav.n再生開始時刻[ i ]; + cwav.rSound[i].t再生を再開する(cwav.n一時停止時刻[i] - cwav.n再生開始時刻[i]); + cwav.n再生開始時刻[i] += CSound管理.rc演奏用タイマ.nシステム時刻ms - cwav.n一時停止時刻[i]; + } + } + } + } + public void t全チップの再生停止() + { + foreach (CWAV cwav in this.listWAV.Values) + { + this.tWavの再生停止(cwav.n内部番号); + } + } + public void t全チップの再生停止とミキサーからの削除() + { + foreach (CWAV cwav in this.listWAV.Values) + { + this.tWavの再生停止(cwav.n内部番号, true); + } + } + #endregion + + public void t入力(string strファイル名, bool bヘッダのみ, int difficulty) + { + this.t入力(strファイル名, bヘッダのみ, 1.0, 0, 0, 0, false, difficulty); + } + public void t入力(string strファイル名, bool bヘッダのみ, double db再生速度, int nBGMAdjust, int nReadVersion, int nPlayerSide, bool bSession, int difficulty) + { + this.bヘッダのみ = bヘッダのみ; + this.strファイル名の絶対パス = Path.GetFullPath(strファイル名); + this.strファイル名 = Path.GetFileName(this.strファイル名の絶対パス); + this.strフォルダ名 = Path.GetDirectoryName(this.strファイル名の絶対パス) + @"\"; + //if ( this.e種別 != E種別.SMF ) + { + try + { + this.nPlayerSide = nPlayerSide; + this.bSession譜面を読み込む = bSession; + if (nReadVersion != 0) + { + //DTX方式 + + //DateTime timeBeginLoad = DateTime.Now; + //TimeSpan span; + string[] files = Directory.GetFiles(this.strフォルダ名, "*.tja"); + + StreamReader reader = new StreamReader(strファイル名, Encoding.GetEncoding("Shift_JIS")); + string str2 = reader.ReadToEnd(); + reader.Close(); + + //StreamReader reader2 = new StreamReader( this.strフォルダ名 + "test.tja", Encoding.GetEncoding( "Shift_JIS" ) ); + StreamReader reader2 = new StreamReader(files[0], Encoding.GetEncoding("Shift_JIS")); + string str3 = reader2.ReadToEnd(); + reader2.Close(); + + //span = (TimeSpan) ( DateTime.Now - timeBeginLoad ); + //Trace.TraceInformation( "DTXfileload時間: {0}", span.ToString() ); + + this.t入力_全入力文字列から(str2, str3, db再生速度, nBGMAdjust, difficulty); + } + else + { + //次郎方式 + + //DateTime timeBeginLoad = DateTime.Now; + //TimeSpan span; + + StreamReader reader = new StreamReader(strファイル名, Encoding.GetEncoding("Shift_JIS")); + string str2 = reader.ReadToEnd(); + reader.Close(); + + //StreamReader reader2 = new StreamReader( this.strフォルダ名 + "test.tja", Encoding.GetEncoding( "Shift_JIS" ) ); + //StreamReader reader2 = new StreamReader( strファイル名, Encoding.GetEncoding( "Shift_JIS" ) ); + //string str3 = reader2.ReadToEnd(); + //reader2.Close(); + string str3 = str2; + + //span = (TimeSpan) ( DateTime.Now - timeBeginLoad ); + //Trace.TraceInformation( "DTXfileload時間: {0}", span.ToString() ); + + this.t入力_全入力文字列から(str2, str3, db再生速度, nBGMAdjust, difficulty); + } + } + catch (Exception ex) + { + //MessageBox.Show( "おや?エラーが出たようです。お兄様。" ); + Trace.TraceError("おや?エラーが出たようです。お兄様。"); + Trace.TraceError(ex.ToString()); + Trace.TraceError("例外が発生しましたが処理を継続します。 (79ff8639-9b3c-477f-bc4a-f2eea9784860)"); + } + } + } + public void t入力_全入力文字列から(string str全入力文字列, int difficulty) + { + this.t入力_全入力文字列から(str全入力文字列, str全入力文字列, 1.0, 0, difficulty); + } + public void t入力_全入力文字列から(string str全入力文字列, string str1, double db再生速度, int nBGMAdjust, int Difficulty) + { + //DateTime timeBeginLoad = DateTime.Now; + //TimeSpan span; + + if (!string.IsNullOrEmpty(str全入力文字列)) + { + #region [ 改行カット ] + this.db再生速度 = db再生速度; + str全入力文字列 = str全入力文字列.Replace(Environment.NewLine, "\n"); + str全入力文字列 = str全入力文字列.Replace('\t', ' '); + str全入力文字列 = str全入力文字列 + "\n"; + #endregion + //span = (TimeSpan) ( DateTime.Now - timeBeginLoad ); + //Trace.TraceInformation( "改行カット時間: {0}", span.ToString() ); + //timeBeginLoad = DateTime.Now; + #region [ 初期化 ] + for (int j = 0; j < 36 * 36; j++) + { + this.n無限管理WAV[j] = -j; + this.n無限管理BPM[j] = -j; + this.n無限管理PAN[j] = -10000 - j; + this.n無限管理SIZE[j] = -j; + } + this.n内部番号WAV1to = 1; + this.n内部番号BPM1to = 1; + this.bstackIFからENDIFをスキップする = new Stack(); + this.bstackIFからENDIFをスキップする.Push(false); + this.n現在の乱数 = 0; + for (int k = 0; k < 7; k++) + { + this.nRESULTIMAGE用優先順位[k] = 0; + this.nRESULTMOVIE用優先順位[k] = 0; + this.nRESULTSOUND用優先順位[k] = 0; + } + #endregion + #region [ 入力/行解析 ] + #region[初期化] + this.dbNowScroll = 1.0; + this.dbNowSCROLL_Normal = new double[] { 1.0, 0.0 }; + this.dbNowSCROLL_Expert = new double[] { 1.0, 0.0 }; + this.dbNowSCROLL_Master = new double[] { 1.0, 0.0 }; + this.n現在のコース = ECourse.eNormal; + #endregion + CharEnumerator ce = str全入力文字列.GetEnumerator(); + if (ce.MoveNext()) + { + this.n現在の行数 = 1; + do + { + if (!this.t入力_空白と改行をスキップする(ref ce)) + { + break; + } + if (this.listChip.Count == 0) + { + //this.t入力(str1); + //this.t入力_V3( str1, 3 ); + this.t入力_V4(str1, Difficulty); + } + if (ce.Current == '#') + { + if (ce.MoveNext()) + { + StringBuilder builder = new StringBuilder(0x20); + if (this.t入力_コマンド文字列を抜き出す(ref ce, ref builder)) + { + StringBuilder builder2 = new StringBuilder(0x400); + if (this.t入力_パラメータ文字列を抜き出す(ref ce, ref builder2)) + { + StringBuilder builder3 = new StringBuilder(0x400); + if (this.t入力_コメント文字列を抜き出す(ref ce, ref builder3)) + { + this.t入力_行解析(ref builder, ref builder2, ref builder3); + + this.n現在の行数++; + continue; + } + } + } + } + break; + } + //this.t入力(str1); + } + while (this.t入力_コメントをスキップする(ref ce)); + + #endregion + //span = (TimeSpan) ( DateTime.Now - timeBeginLoad ); + //Trace.TraceInformation( "抜き出し時間: {0}", span.ToString() ); + //timeBeginLoad = DateTime.Now; + this.n無限管理WAV = null; + this.n無限管理BPM = null; + this.n無限管理PAN = null; + this.n無限管理SIZE = null; + //this.t入力_行解析ヘッダ( str1 ); + if (!this.bヘッダのみ) + { + #region [ BPM/BMP初期化 ] + int ch; + CBPM cbpm = null; + foreach (CBPM cbpm2 in this.listBPM.Values) + { + if (cbpm2.n表記上の番号 == 0) + { + cbpm = cbpm2; + break; + } + } + if (cbpm == null) + { + cbpm = new CBPM(); + cbpm.n内部番号 = this.n内部番号BPM1to++; + cbpm.n表記上の番号 = 0; + cbpm.dbBPM値 = 120.0; + this.listBPM.Add(cbpm.n内部番号, cbpm); + CChip chip = new CChip(); + chip.n発声位置 = 0; + chip.nチャンネル番号 = 8; // 拡張BPM + chip.n整数値 = 0; + chip.n整数値_内部番号 = cbpm.n内部番号; + this.listChip.Insert(0, chip); + } + else + { + CChip chip = new CChip(); + chip.n発声位置 = 0; + chip.nチャンネル番号 = 8; // 拡張BPM + chip.n整数値 = 0; + chip.n整数値_内部番号 = cbpm.n内部番号; + this.listChip.Insert(0, chip); + } + #endregion + //span = (TimeSpan) ( DateTime.Now - timeBeginLoad ); + //Trace.TraceInformation( "前準備完了時間: {0}", span.ToString() ); + //timeBeginLoad = DateTime.Now; + #region [ CWAV初期化 ] + foreach (CWAV cwav in this.listWAV.Values) + { + if (cwav.nチップサイズ < 0) + { + cwav.nチップサイズ = 100; + } + if (cwav.n位置 <= -10000) + { + cwav.n位置 = 0; + } + } + #endregion + //span = (TimeSpan) ( DateTime.Now - timeBeginLoad ); + //Trace.TraceInformation( "CWAV前準備時間: {0}", span.ToString() ); + //timeBeginLoad = DateTime.Now; + #region [ チップ倍率設定 ] // #28145 2012.4.22 yyagi 二重ループを1重ループに変更して高速化) + //foreach ( CWAV cwav in this.listWAV.Values ) + //{ + // foreach( CChip chip in this.listChip ) + // { + // if( chip.n整数値_内部番号 == cwav.n内部番号 ) + // { + // chip.dbチップサイズ倍率 = ( (double) cwav.nチップサイズ ) / 100.0; + // if (chip.nチャンネル番号 == 0x01 ) // BGMだったら + // { + // cwav.bIsOnBGMLane = true; + // } + // } + // } + //} + foreach (CChip chip in this.listChip) + { + if (this.listWAV.TryGetValue(chip.n整数値_内部番号, out CWAV cwav)) + //foreach ( CWAV cwav in this.listWAV.Values ) + { + // if ( chip.n整数値_内部番号 == cwav.n内部番号 ) + // { + chip.dbチップサイズ倍率 = ((double)cwav.nチップサイズ) / 100.0; + //if ( chip.nチャンネル番号 == 0x01 ) // BGMだったら + //{ + // cwav.bIsOnBGMLane = true; + //} + // } + } + } + #endregion + //span = (TimeSpan) ( DateTime.Now - timeBeginLoad ); + //Trace.TraceInformation( "CWAV全準備時間: {0}", span.ToString() ); + //timeBeginLoad = DateTime.Now; + #region [ 必要に応じて空打ち音を0小節に定義する ] + //for ( int m = 0xb1; m <= 0xbc; m++ ) // #28146 2012.4.21 yyagi; bb -> bc + //{ + // foreach ( CChip chip in this.listChip ) + // { + // if ( chip.nチャンネル番号 == m ) + // { + // CChip c = new CChip(); + // c.n発声位置 = 0; + // c.nチャンネル番号 = chip.nチャンネル番号; + // c.n整数値 = chip.n整数値; + // c.n整数値_内部番号 = chip.n整数値_内部番号; + // this.listChip.Insert( 0, c ); + // break; + // } + // } + //} + #endregion + //span = (TimeSpan) ( DateTime.Now - timeBeginLoad ); + //Trace.TraceInformation( "空打確認時間: {0}", span.ToString() ); + //timeBeginLoad = DateTime.Now; + #region [ 拍子_拍線の挿入 ] + if (this.listChip.Count > 0) + { + this.listChip.Sort(); // 高速化のためにはこれを削りたいが、listChipの最後がn発声位置の終端である必要があるので、 + // 保守性確保を優先してここでのソートは残しておく + // なお、093時点では、このソートを削除しても動作するようにはしてある。 + // (ここまでの一部チップ登録を、listChip.Add(c)から同Insert(0,c)に変更してある) + // これにより、数ms程度ながらここでのソートも高速化されている。 + + //double barlength = 1.0; + //int nEndOfSong = ( this.listChip[ this.listChip.Count - 1 ].n発声位置 + 384 ) - ( this.listChip[ this.listChip.Count - 1 ].n発声位置 % 384 ); + //for ( int tick384 = 0; tick384 <= nEndOfSong; tick384 += 384 ) // 小節線の挿入 (後に出てくる拍子線とループをまとめようとするなら、forループの終了条件の微妙な違いに注意が必要) + //{ + // CChip chip = new CChip(); + // chip.n発声位置 = tick384; + // chip.nチャンネル番号 = 0x50; // 小節線 + // chip.n整数値 = 36 * 36 - 1; + // chip.dbSCROLL = 1.0; + // this.listChip.Add( chip ); + //} + ////this.listChip.Sort(); // ここでのソートは不要。ただし最後にソートすること + //int nChipNo_BarLength = 0; + //int nChipNo_C1 = 0; + + //this.listChip.Sort(); + } + #endregion + //span = (TimeSpan) ( DateTime.Now - timeBeginLoad ); + //Trace.TraceInformation( "拍子_拍線挿入時間: {0}", span.ToString() ); + //timeBeginLoad = DateTime.Now; + #region [ C2 [拍線_小節線表示指定] の処理 ] // #28145 2012.4.21 yyagi; 2重ループをほぼ1重にして高速化 + bool bShowBeatBarLine = true; + for (int i = 0; i < this.listChip.Count; i++) + { + bool bChangedBeatBarStatus = false; + if ((this.listChip[i].nチャンネル番号 == 0xc2)) + { + if (this.listChip[i].n整数値 == 1) // BAR/BEAT LINE = ON + { + bShowBeatBarLine = true; + bChangedBeatBarStatus = true; + } + else if (this.listChip[i].n整数値 == 2) // BAR/BEAT LINE = OFF + { + bShowBeatBarLine = false; + bChangedBeatBarStatus = true; + } + } + int startIndex = i; + if (bChangedBeatBarStatus) // C2チップの前に50/51チップが来ている可能性に配慮 + { + while (startIndex > 0 && this.listChip[startIndex].n発声位置 == this.listChip[i].n発声位置) + { + startIndex--; + } + startIndex++; // 1つ小さく過ぎているので、戻す + } + for (int j = startIndex; j <= i; j++) + { + if (((this.listChip[j].nチャンネル番号 == 0x50) || (this.listChip[j].nチャンネル番号 == 0x51)) && + (this.listChip[j].n整数値 == (36 * 36 - 1))) + { + this.listChip[j].b可視 = bShowBeatBarLine; + } + } + } + #endregion + //span = (TimeSpan) ( DateTime.Now - timeBeginLoad ); + //Trace.TraceInformation( "C2 [拍線_小節線表示指定]: {0}", span.ToString() ); + //timeBeginLoad = DateTime.Now; + this.n内部番号BRANCH1to = 0; + this.n内部番号JSCROLL1to = 0; + #region [ 発声時刻の計算 ] + double bpm = 120.0; + //double dbBarLength = 1.0; + int n発声位置 = 0; + int ms = 0; + int nBar = 0; + int nCount = 0; + this.nNowRollCount = 0; + + List tmplistlyric = new List(); + int BGM番号 = 0; + + foreach (CChip chip in this.listChip) + { + if (chip.nチャンネル番号 == 0x02) { } + //else if( chip.nチャンネル番号 == 0x03 ){} + else if (chip.nチャンネル番号 == 0x01) { } + else if (chip.nチャンネル番号 == 0x08) { } + else if (chip.nチャンネル番号 >= 0x11 && chip.nチャンネル番号 <= 0x1F) { } + else if (chip.nチャンネル番号 == 0x50) { } + else if (chip.nチャンネル番号 == 0x51) { } + else if (chip.nチャンネル番号 == 0x54) { } + else if (chip.nチャンネル番号 == 0x08) { } + else if (chip.nチャンネル番号 == 0xF1) { } + else if (chip.nチャンネル番号 == 0xF2) { } + else if (chip.nチャンネル番号 == 0xFF) { } + else if (chip.nチャンネル番号 == 0xDD) { chip.n発声時刻ms = ms + ((int)(((625 * (chip.n発声位置 - n発声位置)) * this.dbBarLength) / bpm)); } + else if (chip.nチャンネル番号 == 0xDF) { chip.n発声時刻ms = ms + ((int)(((625 * (chip.n発声位置 - n発声位置)) * this.dbBarLength) / bpm)); } + else if (chip.nチャンネル番号 < 0x93) + chip.n発声時刻ms = ms + ((int)(((625 * (chip.n発声位置 - n発声位置)) * this.dbBarLength) / bpm)); + else if ((chip.nチャンネル番号 > 0x9F && chip.nチャンネル番号 < 0xA0) || (chip.nチャンネル番号 >= 0xF0 && chip.nチャンネル番号 < 0xFE)) + chip.n発声時刻ms = ms + ((int)(((625 * (chip.n発声位置 - n発声位置)) * this.dbBarLength) / bpm)); + nBar = chip.n発声位置 / 384; + ch = chip.nチャンネル番号; + + nCount++; + this.nNowRollCount++; + + switch (ch) + { + case 0x01: + { + n発声位置 = chip.n発声位置; + + if (this.bOFFSETの値がマイナスである == false) + chip.n発声時刻ms += this.nOFFSET; + ms = chip.n発声時刻ms; + + #region[listlyric2の時間合わせ] + for (int ind = 0; ind < listLyric2.Count; ind++) + { + if (listLyric2[ind].index == BGM番号) + { + STLYRIC lyrictmp = this.listLyric2[ind]; + + lyrictmp.Time += chip.n発声時刻ms; + + tmplistlyric.Add(lyrictmp); + } + } + + + BGM番号++; + #endregion + continue; + } + case 0x02: // BarLength + { + n発声位置 = chip.n発声位置; + if (this.bOFFSETの値がマイナスである == false) + chip.n発声時刻ms += this.nOFFSET; + ms = chip.n発声時刻ms; + dbBarLength = chip.db実数値; + continue; + } + case 0x03: // BPM + { + n発声位置 = chip.n発声位置; + if (this.bOFFSETの値がマイナスである == false) + chip.n発声時刻ms += this.nOFFSET; + ms = chip.n発声時刻ms; + bpm = this.BASEBPM + chip.n整数値; + this.dbNowBPM = bpm; + continue; + } + case 0x04: // BGA (レイヤBGA1) + case 0x07: // レイヤBGA2 + break; + + case 0x15: + case 0x16: + case 0x17: + { + if (this.bOFFSETの値がマイナスである) + { + chip.n発声時刻ms += this.nOFFSET; + chip.nノーツ終了時刻ms += this.nOFFSET; + } + + this.nNowRoll = this.nNowRollCount - 1; + continue; + } + case 0x18: + { + if (this.bOFFSETの値がマイナスである) + { + chip.n発声時刻ms += this.nOFFSET; + } + continue; + } + + case 0x55: + case 0x56: + case 0x57: + case 0x58: + case 0x59: + case 0x60: + break; + + case 0x50: + { + if (this.bOFFSETの値がマイナスである) + chip.n発声時刻ms += this.nOFFSET; + //chip.n発声時刻ms += this.nDELAY; + //chip.dbBPM = this.dbNowBPM; + //chip.dbSCROLL = this.dbNowSCROLL; + + if (this.n内部番号BRANCH1to + 1 > this.listBRANCH.Count) + continue; + + if (this.listBRANCH[this.n内部番号BRANCH1to].n現在の小節 == nBar) + { + chip.bBranch = true; + this.n内部番号BRANCH1to++; + } + + //switch (this.n現在のコース) + //{ + // case 0: + // chip.dbSCROLL = this.dbNowSCROLL_Normal; + // break; + // case 1: + // chip.dbSCROLL = this.dbNowSCROLL_Expert; + // break; + // case 2: + // chip.dbSCROLL = this.dbNowSCROLL_Master; + // break; + //} + + //if( this.bBarLine == true ) + // chip.b可視 = true; + //else + // chip.b可視 = false; + + //if( this.b次の小節が分岐である ) + //{ + // chip.bBranch = true; + // this.b次の小節が分岐である = false; + //} + continue; + } + + case 0x05: // Extended Object (非対応) + case 0x06: // Missアニメ (非対応) + case 0x5A: // 未定義 + case 0x5b: // 未定義 + case 0x5c: // 未定義 + case 0x5d: // 未定義 + case 0x5e: // 未定義 + case 0x5f: // 未定義 + { + continue; + } + case 0x08: // 拡張BPM + { + n発声位置 = chip.n発声位置; + if (this.bOFFSETの値がマイナスである == false) + chip.n発声時刻ms += this.nOFFSET; + ms = chip.n発声時刻ms; + if (this.listBPM.TryGetValue(chip.n整数値_内部番号, out CBPM cBPM)) + { + bpm = (cBPM.n表記上の番号 == 0 ? 0.0 : this.BASEBPM) + cBPM.dbBPM値; + this.dbNowBPM = bpm; + } + continue; + } + case 0x54: // 動画再生 + { + if (this.bOFFSETの値がマイナスである == false) + chip.n発声時刻ms += this.nOFFSET; + if (this.bMOVIEOFFSETの値がマイナスである == false) + chip.n発声時刻ms += this.nMOVIEOFFSET; + else + chip.n発声時刻ms -= this.nMOVIEOFFSET; + if (this.listAVIPAN.TryGetValue(chip.n整数値, out CAVIPAN cavipan)) + { + int num21 = ms + ((int)(((0x271 * (chip.n発声位置 - n発声位置)) * this.dbBarLength) / bpm)); + int num22 = ms + ((int)(((0x271 * ((chip.n発声位置 + cavipan.n移動時間ct) - n発声位置)) * this.dbBarLength) / bpm)); + chip.n総移動時間 = num22 - num21; + } + continue; + } + case 0x97: + case 0x98: + case 0x99: + { + if (this.bOFFSETの値がマイナスである) + { + chip.n発声時刻ms += this.nOFFSET; + chip.nノーツ終了時刻ms += this.nOFFSET; + } + + //chip.dbBPM = this.dbNowBPM; + //chip.dbSCROLL = this.dbNowSCROLL; + this.nNowRoll = this.nNowRollCount - 1; + + //chip.nノーツ終了時刻ms = ms + ( (int) ( ( ( 0x271 * ( chip.nノーツ終了位置 - n発声位置 ) ) * dbBarLength ) / bpm ) ); + + #region[チップ番号を記録] + //switch(chip.nコース) + //{ + // case 0: + // this.n連打チップ_temp[0] = this.nNowRoll; + // this.dbSCROLL_temp[0] = this.dbNowSCROLL; + // break; + // case 1: + // this.n連打チップ_temp[1] = this.nNowRoll; + // this.dbSCROLL_temp[1] = this.dbNowSCROLL; + // break; + // case 2: + // this.n連打チップ_temp[2] = this.nNowRoll; + // this.dbSCROLL_temp[2] = this.dbNowSCROLL; + // break; + //} + + #endregion + + continue; + } + case 0x9A: + { + + if (this.bOFFSETの値がマイナスである) + { + chip.n発声時刻ms += this.nOFFSET; + } + //chip.n発声時刻ms += this.nDELAY; + //chip.dbBPM = this.dbNowBPM; + //chip.dbSCROLL = this.dbNowSCROLL; + + #region[チップ番号を記録] + //風船は現時点では未実装のため処理しない。 + + + //switch (chip.nコース) + //{ + // case 0: + // if (this.listChip[this.n連打チップ_temp[0]].nチャンネル番号 == 0x99) break; + // this.listChip[this.n連打チップ_temp[0]].nノーツ終了時刻ms = chip.n発声時刻ms; + // this.listChip[this.n連打チップ_temp[0]].dbSCROLL = this.dbSCROLL_temp[0]; + // break; + // case 1: + // if (this.listChip[this.n連打チップ_temp[1]].nチャンネル番号 == 0x99) break; + // this.listChip[this.n連打チップ_temp[1]].nノーツ終了時刻ms = chip.n発声時刻ms; + // this.listChip[this.n連打チップ_temp[1]].dbSCROLL = this.dbSCROLL_temp[1]; + // break; + // case 2: + // if (this.listChip[this.n連打チップ_temp[2]].nチャンネル番号 == 0x99) break; + // this.listChip[this.n連打チップ_temp[2]].nノーツ終了時刻ms = chip.n発声時刻ms; + // this.listChip[this.n連打チップ_temp[2]].dbSCROLL = this.dbSCROLL_temp[2]; + // break; + //} + + #endregion + + //this.listChip[this.nNowRoll].nノーツ終了時刻ms = chip.n発声時刻ms; + //this.listChip[this.nNowRoll].dbSCROLL = this.dbNowSCROLL; + //this.listChip[this.nNowRoll].dbBPM = this.dbNowBPM; + continue; + } + case 0x9D: + { + //if ( this.listSCROLL.ContainsKey( chip.n整数値_内部番号 ) ) + //{ + //this.dbNowSCROLL = ( ( this.listSCROLL[ chip.n整数値_内部番号 ].n表記上の番号 == 0 ) ? 0.0 : 1.0 ) + this.listSCROLL[ chip.n整数値_内部番号 ].dbSCROLL値; + //} + + //switch (chip.nコース) + //{ + // case 0: + // this.dbNowSCROLL_Normal = this.dbNowSCROLL; + // this.n現在のコース = 0; + // break; + // case 1: + // this.dbNowSCROLL_Expert = this.dbNowSCROLL; + // this.n現在のコース = 1; + // break; + // case 2: + // this.dbNowSCROLL_Master = this.dbNowSCROLL; + // this.n現在のコース = 2; + // break; + //} + + continue; + } + case 0xDC: + { + if (this.bOFFSETの値がマイナスである) + chip.n発声時刻ms += this.nOFFSET; + //if ( this.listDELAY.ContainsKey( chip.n整数値_内部番号 ) ) + //{ + // this.nDELAY = ( ( this.listDELAY[ chip.n整数値_内部番号 ].n表記上の番号 == 0 ) ? 0 : 0 ) + this.listDELAY[ chip.n整数値_内部番号 ].nDELAY値; + //} + continue; + } + case 0xDE: + { + if (this.bOFFSETの値がマイナスである) + { + chip.n発声時刻ms += this.nOFFSET; + chip.n分岐時刻ms += this.nOFFSET; + } + this.n現在のコース = chip.nコース; + continue; + } + case 0x52: + { + if (this.bOFFSETの値がマイナスである) + { + chip.n発声時刻ms += this.nOFFSET; + chip.n分岐時刻ms += this.nOFFSET; + } + this.n現在のコース = chip.nコース; + continue; + } + case 0xDF: + { + if (this.bOFFSETの値がマイナスである) + chip.n発声時刻ms += this.nOFFSET; + //if ( this.listBRANCH.ContainsKey( chip.n整数値_内部番号 ) ) + //{ + //this.listBRANCH[chip.n整数値_内部番号].db分岐時間ms = chip.n発声時刻ms + ( this.bOFFSETの値がマイナスである ? this.nOFFSET : 0 ); + //} + + continue; + } + case 0xE0: + { + //if (this.bOFFSETの値がマイナスである) + // chip.n発声時刻ms += this.nOFFSET; + + //chip.dbBPM = this.dbNowBPM; + //chip.dbSCROLL = this.dbNowSCROLL; + //if( chip.n整数値_内部番号 == 1 ) + // this.bBarLine = false; + //else + // this.bBarLine = true; + continue; + } + default: + { + if (this.bOFFSETの値がマイナスである) + chip.n発声時刻ms += this.nOFFSET; + //chip.n発声時刻ms += this.nDELAY; + chip.dbBPM = this.dbNowBPM; + //chip.dbSCROLL = this.dbNowSCROLL; + continue; + } + } + } + if (this.db再生速度 > 0.0) + { + double _db再生速度 = (TJAPlayer3.DTXVmode.Enabled) ? this.dbDTXVPlaySpeed : this.db再生速度; + foreach (CChip chip in this.listChip) + { + chip.n発声時刻ms = (int)(((double)chip.n発声時刻ms) / _db再生速度); + chip.db発声時刻ms = (((double)chip.n発声時刻ms) / _db再生速度); + chip.nノーツ終了時刻ms = (int)(((double)chip.nノーツ終了時刻ms) / _db再生速度); + } + } + #endregion + //span = (TimeSpan) ( DateTime.Now - timeBeginLoad ); + //Trace.TraceInformation( "発声時刻計算: {0}", span.ToString() ); + //timeBeginLoad = DateTime.Now; + + #region[listlyricを時間順に並び替え。] + this.listLyric2 = tmplistlyric; + this.listLyric2.Sort((a, b) => a.Time.CompareTo(b.Time)); + #endregion + + this.nBGMAdjust = 0; + this.t各自動再生音チップの再生時刻を変更する(nBGMAdjust); + //span = (TimeSpan) ( DateTime.Now - timeBeginLoad ); + //Trace.TraceInformation( "再生時刻変更: {0}", span.ToString() ); + //timeBeginLoad = DateTime.Now; + + #region [ 可視チップ数カウント ] + for (int n = 0; n < 14; n++) + { + this.n可視チップ数[n] = 0; + } + foreach (CChip chip in this.listChip) + { + int c = chip.nチャンネル番号; + if ((0x11 <= c) && (c <= 0x14)) + { + if (c == 0x11 || c == 0x13) + this.n可視チップ数.Taiko_Red++; + else if (c == 0x12 || c == 0x14) + this.n可視チップ数.Taiko_Blue++; + } + } + #endregion + //span = (TimeSpan) ( DateTime.Now - timeBeginLoad ); + //Trace.TraceInformation( "可視チップ数カウント {0}", span.ToString() ); + //timeBeginLoad = DateTime.Now; + #region [ チップの種類を分類し、対応するフラグを立てる ] + foreach (CChip chip in this.listChip) + { + if ((chip.nチャンネル番号 == 0x01 && this.listWAV.TryGetValue(chip.n整数値_内部番号, out CWAV cwav)) && !cwav.listこのWAVを使用するチャンネル番号の集合.Contains(chip.nチャンネル番号)) + { + cwav.listこのWAVを使用するチャンネル番号の集合.Add(chip.nチャンネル番号); + + int c = chip.nチャンネル番号 >> 4; + switch (c) + { + case 0x01: + cwav.bIsDrumsSound = true; break; + case 0x02: + cwav.bIsGuitarSound = true; break; + case 0x0A: + cwav.bIsBassSound = true; break; + case 0x06: + case 0x07: + case 0x08: + case 0x09: + cwav.bIsSESound = true; break; + case 0x00: + if (chip.nチャンネル番号 == 0x01) + { + cwav.bIsBGMSound = true; break; + } + break; + } + } + } + #endregion + //span = (TimeSpan) ( DateTime.Now - timeBeginLoad ); + //Trace.TraceInformation( "ch番号集合確認: {0}", span.ToString() ); + //timeBeginLoad = DateTime.Now; + #region[ seNotes計算 ] + if (this.listBRANCH.Count != 0) + this.tSetSenotes_branch(); + else + this.tSetSenotes(); + + #endregion + #region [ bLogDTX詳細ログ出力 ] + if (TJAPlayer3.ConfigIni.bLogDTX詳細ログ出力) + { + foreach (CWAV cwav in this.listWAV.Values) + { + Trace.TraceInformation(cwav.ToString()); + } + foreach (CAVI cavi in this.listAVI.Values) + { + Trace.TraceInformation(cavi.ToString()); + } + foreach (CBPM cbpm3 in this.listBPM.Values) + { + Trace.TraceInformation(cbpm3.ToString()); + } + foreach (CChip chip in this.listChip) + { + Trace.TraceInformation(chip.ToString()); + } + } + #endregion + + //ソートっぽい + //this.listChip.Sort(delegate(CChip pchipA, CChip pchipB) { return pchipA.n発声時刻ms - pchipB.n発声時刻ms; } ); + //Random ran1 = new Random(); + //for (int n = 0; n < this.listChip.Count; n++ ) + //{ + + // if (CDTXMania.ConfigIni.bHispeedRandom) + // { + + // int nRan = ran1.Next(5, 40); + // this.listChip[n].dbSCROLL = nRan / 10.0; + // } + //} + int n整数値管理 = 0; + foreach (CChip chip in this.listChip) + { + if (chip.nチャンネル番号 != 0x54) + chip.n整数値 = n整数値管理; + n整数値管理++; + } + + } + } + } + } + + private string tコメントを削除する(string input) + { + string strOutput = Regex.Replace(input, @" *//.*", ""); //2017.01.28 DD コメント前のスペースも削除するように修正 + + return strOutput; + } + + private string[] tコマンド行を削除したTJAを返す(string[] input) + { + return this.tコマンド行を削除したTJAを返す(input, 0); + } + + private string[] tコマンド行を削除したTJAを返す(string[] input, int nMode) + { + var sb = new StringBuilder(); + + // 18/11/11 AioiLight 譜面にSpace、スペース、Tab等が入っているとおかしくなるので修正。 + // 多分コマンドもスペースが抜かれちゃっているが、コマンド行を除く譜面を返すので大丈夫(たぶん)。 + for (int i = 0; i < input.Length; i++) + { + input[i] = input[i].Trim(); + } + + for (int n = 0; n < input.Length; n++) + { + if (nMode == 0) + { + if (!string.IsNullOrEmpty(input[n]) && this.CharConvertNote(input[n].Substring(0, 1)) != -1) + { + sb.Append(input[n] + "\n"); + } + } + else if (nMode == 1) + { + if (!string.IsNullOrEmpty(input[n]) && (input[n].Substring(0, 1) == "#" || this.CharConvertNote(input[n].Substring(0, 1)) != -1)) + { + if (input[n].StartsWith("BALLOON") || input[n].StartsWith("BPM")) + { + //A~Fで始まる命令が削除されない不具合の対策 + } + else + { + sb.Append(input[n] + "\n"); + } + } + } + else if (nMode == 2) + { + if (!string.IsNullOrEmpty(input[n]) && this.CharConvertNote(input[n].Substring(0, 1)) != -1) + { + if (input[n].StartsWith("BALLOON") || input[n].StartsWith("BPM")) + { + //A~Fで始まる命令が削除されない不具合の対策 + } + else + { + sb.Append(input[n] + "\n"); + } + } + else + { + if (input[n].StartsWith("#BRANCHSTART") || input[n] == "#N" || input[n] == "#E" || input[n] == "#M") + { + sb.Append(input[n] + "\n"); + } + + } + } + } + + string[] strOutput = sb.ToString().Split(this.dlmtEnter, StringSplitOptions.None); + + return strOutput; + } + + private string[] t空のstring配列を詰めたstring配列を返す(string[] input) + { + var sb = new StringBuilder(); + + for (int n = 0; n < input.Length; n++) + { + if (!string.IsNullOrEmpty(input[n])) + { + sb.Append(input[n] + "\n"); + } + } + + string[] strOutput = sb.ToString().Split(this.dlmtEnter, StringSplitOptions.None); + + return strOutput; + } + + private string StringArrayToString(string[] input) + { + return this.StringArrayToString(input, ""); + } + private string StringArrayToString(string[] input, string strデリミタ文字) + { + var sb = new StringBuilder(); + + for (int n = 0; n < input.Length; n++) + { + sb.Append(input[n] + strデリミタ文字); + } + + return sb.ToString(); + } + + /// + /// + /// + /// + /// 1小節内の文字数 + private int t1小節の文字数をカウントする(string InputText) + { + return InputText.Length - 1; + } + + /// + /// + /// + /// + /// 1小節内の文字数 + private void t1小節の文字数をカウントしてリストに追加する(string InputText) + { + int nCount = 0; + + if (InputText.StartsWith("#BRANCHSTART")) + { + this.nLineCountTemp = this.n現在の小節数; + return; + } + else if (InputText.StartsWith("#N")) + { + this.nLineCountCourseTemp = ECourse.eNormal; + this.n現在の小節数 = this.nLineCountTemp; + return; + } + else if (InputText.StartsWith("#E")) + { + this.nLineCountCourseTemp = ECourse.eExpert; + this.n現在の小節数 = this.nLineCountTemp; + return; + } + else if (InputText.StartsWith("#M")) + { + this.nLineCountCourseTemp = ECourse.eMaster; + this.n現在の小節数 = this.nLineCountTemp; + return; + } + + + var line = new CLine(); + line.nコース = this.nLineCountCourseTemp; + line.n文字数 = InputText.Length - 1; + line.n小節番号 = this.n現在の小節数; + + this.listLine.Add(line); + + this.n現在の小節数++; + + } + + /// + /// 0:改行文字を削除して、デリミタとしてスペースを入れる。(返り値:string) + /// 1:改行文字を削除、さらにSplitして返す(返り値:string[n]) + /// + /// + /// + /// + private object str改行文字を削除する(string strInput, int nMode) + { + string str = ""; + str = strInput.Replace(Environment.NewLine, "\n"); + str = str.Replace('\t', ' '); + + if (nMode == 0) + { + str = str.Replace("\n", " "); + } + else if (nMode == 1) + { + str = str + "\n"; + + string[] strArray; + strArray = str.Split(this.dlmtEnter, StringSplitOptions.RemoveEmptyEntries); + + return strArray; + } + + return str; + } + + /// + /// コースごとに譜面を分割する。 + /// + /// + /// 各コースの譜面(string[5]) + private string[] tコースで譜面を分割する(string strTJA) + { + string[] strCourseTJA = new string[(int)Difficulty.Total]; + + if (strTJA.IndexOf("COURSE", 0) != -1) + { + //tja内に「COURSE」があればここを使う。 + string[] strTemp = strTJA.Split(this.dlmtCOURSE, StringSplitOptions.RemoveEmptyEntries); + + for (int n = 1; n < strTemp.Length; n++) + { + int nCourse = 0; + string nNC = ""; + while (strTemp[n].Substring(0, 1) != "\n") //2017.01.29 DD COURSE単語表記に対応 + { + nNC += strTemp[n].Substring(0, 1); + strTemp[n] = strTemp[n].Remove(0, 1); + } + + if (this.strConvertCourse(nNC) != -1) + { + nCourse = this.strConvertCourse(nNC); + strCourseTJA[nCourse] = strTemp[n]; + } + else + { + + } + //strCourseTJA[ ]; + + } + } + else + { + strCourseTJA[3] = strTJA; + } + + return strCourseTJA; + } + + private static readonly Regex regexForPrefixingCommaStartingLinesWithZero = new Regex(@"^,", RegexOptions.Multiline | RegexOptions.Compiled); + private static readonly Regex regexForStrippingHeadingLines = new Regex( + @"^(?!(TITLE|LEVEL|BPM|WAVE|OFFSET|BALLOON|EXAM1|EXAM2|EXAM3|EXAM4|RENREN22|RENREN23|RENREN32|RENREN33|RENREN42|RENREN43|BALLOONNOR|BALLOONEXP|BALLOONMAS|SONGVOL|SEVOL|SCOREINIT|SCOREDIFF|COURSE|STYLE|GAME|LIFE|DEMOSTART|SIDE|SUBTITLE|SCOREMODE|GENRE|MOVIEOFFSET|BGIMAGE|BGMOVIE|HIDDENBRANCH|GAUGEINCR|LYRICFILE|#HBSCROLL|#BMSCROLL)).+\n", + RegexOptions.Multiline | RegexOptions.Compiled); + + /// + /// 新型。 + /// ○未実装 + /// _「COURSE」定義が無い譜面は未対応 + ///  →ver2015082200で対応完了。 + /// + /// + /// 譜面のデータ + private void t入力_V4(string strInput, int difficulty) + { + if (!String.IsNullOrEmpty(strInput)) //空なら通さない + { + //StreamWriter stream = null; + //bool bLog = true; + //try + //{ + // stream = new StreamWriter("noteTest.txt", false); + //} + //catch (Exception ex) + //{ + // Trace.TraceError( ex.StackTrace ); + //} + + //2017.01.31 DD カンマのみの行を0,に置き換え + strInput = regexForPrefixingCommaStartingLinesWithZero.Replace(strInput, "0,"); + + //2017.02.03 DD ヘッダ内にある命令以外の文字列を削除 + var startIndex = strInput.IndexOf("#START"); + if (startIndex < 0) + { + Trace.TraceWarning($"#START命令が少なくとも1つは必要です。 ({strファイル名の絶対パス})"); + } + string strInputHeader = strInput.Remove(startIndex); + strInput = strInput.Remove(0, startIndex); + strInputHeader = regexForStrippingHeadingLines.Replace(strInputHeader, ""); + strInput = strInputHeader + "\n" + strInput; + + //どうせ使わないので先にSplitしてコメントを削除。 + var strSplitした譜面 = (string[])this.str改行文字を削除する(strInput, 1); + for (int i = 0; strSplitした譜面.Length > i; i++) + { + strSplitした譜面[i] = this.tコメントを削除する(strSplitした譜面[i]); + } + //空のstring配列を詰める + strSplitした譜面 = this.t空のstring配列を詰めたstring配列を返す(strSplitした譜面); + + #region[ヘッダ] + + //2015.05.21 kairera0467 + //ヘッダの読み込みは譜面全体から該当する命令を探す。 + //少し処理が遅くなる可能性はあるが、ここは正確性を重視する。 + //点数などの指定は後から各コースで行うので問題は無いだろう。 + + //SplitしたヘッダのLengthの回数だけ、forで回して各種情報を読み取っていく。 + for (int i = 0; strSplitした譜面.Length > i; i++) + { + this.t入力_行解析ヘッダ(strSplitした譜面[i]); + } + #endregion + + #region[譜面] + + int n読み込むコース = 3; + int n譜面数 = 0; //2017.07.22 kairera0467 tjaに含まれる譜面の数 + + + bool b新処理 = false; + + //まずはコースごとに譜面を分割。 + strSplitした譜面 = this.tコースで譜面を分割する(this.StringArrayToString(strSplitした譜面, "\n")); + string strTest = ""; + //存在するかのフラグ作成。 + for (int i = 0; i < strSplitした譜面.Length; i++) + { + if (!String.IsNullOrEmpty(strSplitした譜面[i])) + { + this.b譜面が存在する[i] = true; + n譜面数++; + } + else + this.b譜面が存在する[i] = false; + } + #region[ 読み込ませるコースを決定 ] + if (this.b譜面が存在する[difficulty] == false) + { + n読み込むコース = difficulty; + n読み込むコース++; + for (int n = 1; n < (int)Difficulty.Total; n++) + { + if (this.b譜面が存在する[n読み込むコース] == false) + { + n読み込むコース++; + if (n読み込むコース > (int)Difficulty.Total - 1) + n読み込むコース = 0; + } + else + break; + } + } + else + n読み込むコース = difficulty; + #endregion + + //指定したコースの譜面の命令を消去する。 + strSplitした譜面[n読み込むコース] = CDTXStyleExtractor.tセッション譜面がある( + strSplitした譜面[n読み込むコース], + TJAPlayer3.ConfigIni.nPlayerCount > 1 ? (this.nPlayerSide + 1) : 0, + this.strファイル名の絶対パス); + + //命令をすべて消去した譜面 + var str命令消去譜面 = strSplitした譜面[n読み込むコース].Split(this.dlmtEnter, StringSplitOptions.RemoveEmptyEntries); + //if( bLog && stream != null ) + //{ + // stream.WriteLine( "-------------------------------------------------" ); + // stream.WriteLine( ">>this.str命令消去譜面(コマンド削除前)" ); + // for( int i = 0; i < this.str命令消去譜面.Length; i++ ) + // { + // stream.WriteLine( this.str命令消去譜面[ i ] ); + // } + // stream.WriteLine( "-------------------------------------------------" ); + //} + str命令消去譜面 = this.tコマンド行を削除したTJAを返す(str命令消去譜面, 2); + + //if( bLog && stream != null ) + //{ + // stream.WriteLine( "-------------------------------------------------" ); + // stream.WriteLine( ">>this.str命令消去譜面" ); + // for( int i = 0; i < this.str命令消去譜面.Length; i++ ) + // { + // stream.WriteLine( this.str命令消去譜面[ i ] ); + // } + // stream.WriteLine( "-------------------------------------------------" ); + //} + + + //ここで1行の文字数をカウント。配列にして返す。 + var strSplit読み込むコース = strSplitした譜面[n読み込むコース].Split(this.dlmtEnter, StringSplitOptions.RemoveEmptyEntries); + string str = ""; + try + { + if (n譜面数 > 0) + { + //2017.07.22 kairera0467 譜面が2つ以上ある場合はCOURSE以下のBALLOON命令を使う + this.listBalloon.Clear(); + this.listBalloon_Normal.Clear(); + this.listBalloon_Expert.Clear(); + this.listBalloon_Master.Clear(); + this.listBalloon_Normal_数値管理 = 0; + this.listBalloon_Expert_数値管理 = 0; + this.listBalloon_Master_数値管理 = 0; + } + + for (int i = 0; i < strSplit読み込むコース.Length; i++) + { + if (!String.IsNullOrEmpty(strSplit読み込むコース[i])) + { + this.t難易度別ヘッダ(strSplit読み込むコース[i]); + } + } + for (int i = 0; i < str命令消去譜面.Length; i++) + { + if (str命令消去譜面[i].IndexOf(',', 0) == -1 && !String.IsNullOrEmpty(str命令消去譜面[i])) + { + if (str命令消去譜面[i].Substring(0, 1) == "#") + { + this.t1小節の文字数をカウントしてリストに追加する(str + str命令消去譜面[i]); + } + + if (this.CharConvertNote(str命令消去譜面[i].Substring(0, 1)) != -1) + str += str命令消去譜面[i]; + } + else + { + this.t1小節の文字数をカウントしてリストに追加する(str + str命令消去譜面[i]); + str = ""; + } + } + } + catch (Exception ex) + { + Trace.TraceError(ex.ToString()); + Trace.TraceError("例外が発生しましたが処理を継続します。 (9e401212-0b78-4073-88d0-f7e791f36a91)"); + } + + //if( bLog && stream != null ) + //{ + // stream.WriteLine( "-------------------------------------------------" ); + // stream.WriteLine( ">>this.str命令消去譜面 (命令消去した後)" ); + // for( int i = 0; i < this.str命令消去譜面.Length; i++ ) + // { + // stream.WriteLine( this.str命令消去譜面[ i ] ); + // } + // stream.WriteLine( "-------------------------------------------------" ); + //} + + //読み込み部分本体に渡す譜面を作成。 + //0:ヘッダー情報 1:#START以降 となる。個数の定義は後からされるため、ここでは省略。 + var strSplitした後の譜面 = strSplit読み込むコース; //strSplitした譜面[ n読み込むコース ].Split( this.dlmtEnter, StringSplitOptions.RemoveEmptyEntries ); + strSplitした後の譜面 = this.tコマンド行を削除したTJAを返す(strSplitした後の譜面, 1); + //string str命令消去譜面temp = this.StringArrayToString( this.str命令消去譜面 ); + //string[] strDelimiter = { "," }; + //this.str命令消去譜面 = str命令消去譜面temp.Split( strDelimiter, StringSplitOptions.RemoveEmptyEntries ); + + //if( bLog && stream != null ) + //{ + // stream.WriteLine( "-------------------------------------------------" ); + // stream.WriteLine( ">>this.str命令消去譜面 (Splitした後)" ); + // for( int i = 0; i < this.str命令消去譜面.Length; i++ ) + // { + // stream.WriteLine( this.str命令消去譜面[ i ] ); + // } + // stream.WriteLine( "-------------------------------------------------" ); + //} + + this.n現在の小節数 = 1; + try + { + #region[ 最初の処理 ] + //1小節の時間を挿入して開始時間を調節。 + this.dbNowTime += ((15000.0 / 120.0 * (4.0 / 4.0)) * 16.0); + //this.dbNowBMScollTime += (( this.dbBarLength ) * 16.0 ); + #endregion + //string strWrite = ""; + for (int i = 0; strSplitした後の譜面.Length > i; i++) + { + str = strSplitした後の譜面[i]; + //strWrite += str; + //if( !str.StartsWith( "#" ) && !string.IsNullOrEmpty( this.strTemp ) ) + //{ + // str = this.strTemp + str; + //} + + this.t入力_行解析譜面_V4(str); + + if (!String.IsNullOrEmpty(strSplit読み込むコース[i])) + this.tDanExamLoad(strSplit読み込むコース[i]); + } + } + catch (Exception ex) + { + Trace.TraceError(ex.ToString()); + Trace.TraceError("例外が発生しましたが処理を継続します。 (2da1e880-6b63-4e82-b018-bf18c3568335)"); + } + //if( stream != null ) + //{ + // stream.Flush(); + // stream.Close(); + //} + #endregion + } + } + + private CChip t発声位置から過去方向で一番近くにある指定チャンネルのチップを返す(int n発声時刻, int nチャンネル番号) + { + //過去方向への検索 + for (int i = this.listChip.Count - 1; i >= 0; i--) + { + if (this.listChip[i].nチャンネル番号 == nチャンネル番号) + { + return this.listChip[i]; + } + } + + return null; + } + + //現在、以下のような行には対応できていません。 + //_パラメータを持つ命令がある + //_行の途中に命令がある + private int t文字数解析(string InputText) + { + int n文字数 = 0; + + for (int i = 0; i < InputText.Length; i++) + { + if (this.CharConvertNote(InputText.Substring(i, 1)) != -1) + { + n文字数++; + } + } + + + return n文字数; + } + + private static readonly Regex CommandAndArgumentRegex = + new Regex(@"^(#[A-Z]+)(?:\s?)(.+?)?$", RegexOptions.Compiled); + + private static readonly Regex BranchStartArgumentRegex = + new Regex(@"^([^,\s]+)\s*,\s*([^,\s]+)\s*,\s*([^,\s]+)$", RegexOptions.Compiled); + + private string[] SplitComma(string input) + { + var result = new List(); + var workingIndex = 0; + for (int i = 0; i < input.Length; i++) + { + if (input[i].Equals(',')) // カンマにぶち当たった + { + if (i - 1 >= 0)// &&演算子でも、例外が起きるので... + { + if (input[i - 1].Equals('\\')) // 1文字前がバックスラッシュ + { + input = input.Remove(i - 1, 1); + } + else + { + // workingIndexから今の位置までをリストにブチ込む + result.Add(input.Substring(workingIndex, i - workingIndex)); + // workingIndexに今の位置+1を代入 + workingIndex = i + 1; + } + } + else + { + // workingIndexから今の位置までをリストにブチ込む + result.Add(input.Substring(workingIndex, i - workingIndex)); + // workingIndexに今の位置+1を代入 + workingIndex = i + 1; + } + } + if (i + 1 == input.Length) // 最後に + { + result.Add(input.Substring(workingIndex, input.Length - workingIndex)); + } + } + return result.ToArray(); + } + + /// + /// 譜面読み込みメソッドV4で使用。 + /// + /// + private void t命令を挿入する(string InputText) + { + string[] SplitComma(string input) + { + var result = new List(); + var workingIndex = 0; + for (int i = 0; i < input.Length; i++) + { + if (input[i] == ',') // カンマにぶち当たった + { + if (input[i - 1] == '\\') // 1文字前がバックスラッシュ + { + input = input.Remove(i - 1, 1); + } + else + { + // workingIndexから今の位置までをリストにブチ込む + result.Add(input.Substring(workingIndex, i - workingIndex)); + // workingIndexに今の位置+1を代入 + workingIndex = i + 1; + } + } + if (i + 1 == input.Length) // 最後に + { + result.Add(input.Substring(workingIndex, input.Length - workingIndex)); + } + } + return result.ToArray(); + } + + + var match = CommandAndArgumentRegex.Match(InputText); + if (!match.Success) + { + return; + } + + var command = match.Groups[1].Value; + var argumentMatchGroup = match.Groups[2]; + var argument = argumentMatchGroup.Success ? argumentMatchGroup.Value : null; + + while (true) + {//命令の最後に,が残ってしまっているときの対応 + if (argument != null && argument[argument.Length - 1] == ',') + argument = argument.Substring(0, argument.Length - 1); + else + break; + } + + char[] chDelimiter = new char[] { ' ' }; + string[] strArray = null; + + if (command == "#START") + { + //#STARTと同時に鳴らすのはどうかと思うけどしゃーなしだな。 + AddMusicPreTimeMs(); // 音源を鳴らす前に遅延。 + var chip = new CChip(); + + chip.nチャンネル番号 = 0x01; + chip.n発声位置 = 384; + chip.n発声時刻ms = (int)this.dbNowTime; + chip.fNow_Measure_m = this.fNow_Measure_m; + chip.fNow_Measure_s = this.fNow_Measure_s; + chip.fBMSCROLLTime = this.dbNowBMScollTime; + chip.n整数値 = 0x01; + chip.n整数値_内部番号 = 1; + + // チップを配置。 + this.listChip.Add(chip); + + var chip1 = new CChip(); + chip1.nチャンネル番号 = 0x54; + //chip1.n発声位置 = 384; + //chip1.n発声時刻ms = (int)this.dbNowTime; + if (this.nMOVIEOFFSET == 0) + chip1.n発声時刻ms = (int)this.dbNowTime; + else + chip1.n発声時刻ms = (int)this.nMOVIEOFFSET; + chip1.dbBPM = this.dbNowBPM; + chip1.fNow_Measure_m = this.fNow_Measure_m; + chip1.fNow_Measure_s = this.fNow_Measure_s; + chip1.dbSCROLL = this.dbNowScroll; + chip1.n整数値 = 0x01; + chip1.n整数値_内部番号 = 1; + chip1.eAVI種別 = EAVI種別.AVI; + + // チップを配置。 + + this.listChip.Add(chip1); + } + else if (command == "#END") + { + //ためしに割り込む。 + var chip = new CChip(); + + chip.nチャンネル番号 = 0xFF; + chip.n発声位置 = ((this.n現在の小節数 + 2) * 384); + //chip.n発声時刻ms = (int)( this.dbNowTime + ((15000.0 / this.dbNowBPM * ( 4.0 / 4.0 )) * 16.0) * 2 ); + chip.n発声時刻ms = (int)(this.dbNowTime + 1000); //2016.07.16 kairera0467 終了時から1秒後に設置するよう変更。 + chip.fNow_Measure_m = this.fNow_Measure_m; + chip.fNow_Measure_s = this.fNow_Measure_s; + chip.n整数値 = 0xFF; + chip.n整数値_内部番号 = 1; + // チップを配置。 + + if(n参照中の難易度 == (int)Difficulty.Dan) + { + for (int i = listChip.Count - 1; i >= 0; i--) + { + if (listChip[i].nチャンネル番号 >= 0x11 && listChip[i].nチャンネル番号 <= 0x18) + { + if (DanSongs.Number != 0) + { + Array.Resize(ref this.pDan_LastChip, this.pDan_LastChip.Length + 1); + this.pDan_LastChip[DanSongs.Number - 1] = listChip[i]; + break; + } + } + } + } + + this.listChip.Add(chip); + } + + else if (command == "#BPMCHANGE") + { + double dbBPM = Convert.ToDouble(argument); + this.dbNowBPM = dbBPM; + + this.listBPM.Add(this.n内部番号BPM1to - 1, new CBPM() { n内部番号 = this.n内部番号BPM1to - 1, n表記上の番号 = 0, dbBPM値 = dbBPM, bpm_change_time = this.dbNowTime, bpm_change_bmscroll_time = this.dbNowBMScollTime, bpm_change_course = this.n現在のコース }); + + + //チップ追加して割り込んでみる。 + var chip = new CChip(); + + chip.nチャンネル番号 = 0x08; + chip.n発声位置 = ((this.n現在の小節数) * 384); + chip.n発声時刻ms = (int)this.dbNowTime; + chip.fNow_Measure_m = this.fNow_Measure_m; + chip.fNow_Measure_s = this.fNow_Measure_s; + chip.fBMSCROLLTime = (float)this.dbNowBMScollTime; + chip.dbBPM = dbBPM; + chip.n整数値_内部番号 = this.n内部番号BPM1to - 1; + + // チップを配置。 + + this.listChip.Add(chip); + + var chip1 = new CChip(); + chip1.nチャンネル番号 = 0x9C; + chip1.n発声位置 = ((this.n現在の小節数) * 384); + chip1.n発声時刻ms = (int)this.dbNowTime; + chip.fNow_Measure_m = this.fNow_Measure_m; + chip.fNow_Measure_s = this.fNow_Measure_s; + chip1.fBMSCROLLTime = (float)this.dbNowBMScollTime; + chip1.dbBPM = dbBPM; + chip1.dbSCROLL = this.dbNowScroll; + chip1.n整数値_内部番号 = this.n内部番号BPM1to - 1; + + // チップを配置。 + + this.listChip.Add(chip1); + + this.n内部番号BPM1to++; + } + else if (command == "#SCROLL") + { + //2016.08.13 kairera0467 複素数スクロールもどきのテスト + if (argument.IndexOf('i') != -1) + { + //iが入っていた場合、複素数スクロールとみなす。 + + double[] dbComplexNum = new double[2]; + this.tParsedComplexNumber(argument, ref dbComplexNum); + + this.dbNowScroll = dbComplexNum[0]; + this.dbNowScrollY = dbComplexNum[1]; + + this.listSCROLL.Add(this.n内部番号SCROLL1to, new CSCROLL() { n内部番号 = this.n内部番号SCROLL1to, n表記上の番号 = 0, dbSCROLL値 = dbComplexNum[0], dbSCROLL値Y = dbComplexNum[1] }); + + switch (this.n現在のコース) + { + case ECourse.eNormal: + this.dbNowSCROLL_Normal[0] = dbComplexNum[0]; + this.dbNowSCROLL_Normal[1] = dbComplexNum[1]; + break; + case ECourse.eExpert: + this.dbNowSCROLL_Expert[0] = dbComplexNum[0]; + this.dbNowSCROLL_Expert[1] = dbComplexNum[1]; + break; + case ECourse.eMaster: + this.dbNowSCROLL_Master[0] = dbComplexNum[0]; + this.dbNowSCROLL_Master[1] = dbComplexNum[1]; + break; + default: + this.dbNowSCROLL_Normal[0] = dbComplexNum[0]; + this.dbNowSCROLL_Normal[1] = dbComplexNum[1]; + break; + } + + //チップ追加して割り込んでみる。 + var chip = new CChip(); + + chip.nチャンネル番号 = 0x9D; + chip.n発声位置 = ((this.n現在の小節数) * 384) - 1; + chip.n発声時刻ms = (int)this.dbNowTime; + chip.fNow_Measure_m = this.fNow_Measure_m; + chip.fNow_Measure_s = this.fNow_Measure_s; + chip.n整数値_内部番号 = this.n内部番号SCROLL1to; + chip.dbSCROLL = dbComplexNum[0]; + chip.dbSCROLL_Y = dbComplexNum[1]; + chip.nコース = this.n現在のコース; + + // チップを配置。 + + this.listChip.Add(chip); + } + else + { + double dbSCROLL = Convert.ToDouble(argument); + this.dbNowScroll = dbSCROLL; + this.dbNowScrollY = 0.0; + + this.listSCROLL.Add(this.n内部番号SCROLL1to, new CSCROLL() { n内部番号 = this.n内部番号SCROLL1to, n表記上の番号 = 0, dbSCROLL値 = dbSCROLL, dbSCROLL値Y = 0.0 }); + + switch (this.n現在のコース) + { + case ECourse.eNormal: + this.dbNowSCROLL_Normal[0] = dbSCROLL; + break; + case ECourse.eExpert: + this.dbNowSCROLL_Expert[0] = dbSCROLL; + break; + case ECourse.eMaster: + this.dbNowSCROLL_Master[0] = dbSCROLL; + break; + } + + //チップ追加して割り込んでみる。 + var chip = new CChip(); + + chip.nチャンネル番号 = 0x9D; + chip.n発声位置 = ((this.n現在の小節数) * 384) - 1; + chip.n発声時刻ms = (int)this.dbNowTime; + chip.fNow_Measure_m = this.fNow_Measure_m; + chip.fNow_Measure_s = this.fNow_Measure_s; + chip.n整数値_内部番号 = this.n内部番号SCROLL1to; + chip.dbSCROLL = dbSCROLL; + chip.dbSCROLL_Y = 0.0; + chip.nコース = this.n現在のコース; + + // チップを配置。 + + this.listChip.Add(chip); + } + + + + + this.n内部番号SCROLL1to++; + } + else if (command == "#MEASURE") + { + strArray = argument.Split(new char[] { '/' }); + WarnSplitLength("#MEASURE subsplit", strArray, 2); + + double[] dbLength = new double[2]; + dbLength[0] = Convert.ToDouble(strArray[0]); + dbLength[1] = Convert.ToDouble(strArray[1]); + + double db小節長倍率 = dbLength[0] / dbLength[1]; + this.dbBarLength = db小節長倍率; + this.fNow_Measure_m = (float)dbLength[1]; + this.fNow_Measure_s = (float)dbLength[0]; + + var chip = new CChip(); + + chip.nチャンネル番号 = 0x02; + chip.n発声位置 = ((this.n現在の小節数) * 384); + chip.n発声時刻ms = (int)this.dbNowTime; + chip.fNow_Measure_m = this.fNow_Measure_m; + chip.fNow_Measure_s = this.fNow_Measure_s; + chip.dbSCROLL = this.dbNowScroll; + chip.db実数値 = db小節長倍率; + chip.n整数値_内部番号 = 1; + // チップを配置。 + + this.listChip.Add(chip); + + //lbMaster.Items.Add( ";拍子変更 " + strArray[0] + "/" + strArray[1] ); + } + else if (command == "#DELAY") + { + double nDELAY = (Convert.ToDouble(argument) * 1000.0); + + + this.listDELAY.Add(this.n内部番号DELAY1to, new CDELAY() { n内部番号 = this.n内部番号DELAY1to, n表記上の番号 = 0, nDELAY値 = (int)nDELAY, delay_bmscroll_time = this.dbLastBMScrollTime, delay_bpm = this.dbNowBPM, delay_course = this.n現在のコース, delay_time = this.dbLastTime }); + + + //チップ追加して割り込んでみる。 + var chip = new CChip(); + + chip.nチャンネル番号 = 0xDC; + chip.n発声位置 = ((this.n現在の小節数) * 384); + chip.db発声時刻ms = this.dbNowTime; + chip.fNow_Measure_m = this.fNow_Measure_m; + chip.fNow_Measure_s = this.fNow_Measure_s; + chip.nコース = this.n現在のコース; + chip.n整数値_内部番号 = this.n内部番号DELAY1to; + chip.fBMSCROLLTime = this.dbNowBMScollTime; + // チップを配置。 + + this.dbNowTime += nDELAY; + this.dbNowBMScollTime += nDELAY * this.dbNowBPM / 15000; + + this.listChip.Add(chip); + this.n内部番号DELAY1to++; + } + + else if (command == "#GOGOSTART") + { + var chip = new CChip(); + + chip.nチャンネル番号 = 0x9E; + chip.n発声位置 = ((this.n現在の小節数) * 384); + chip.dbBPM = this.dbNowBPM; + chip.n発声時刻ms = (int)this.dbNowTime; + chip.fNow_Measure_m = this.fNow_Measure_m; + chip.fNow_Measure_s = this.fNow_Measure_s; + chip.n整数値_内部番号 = 1; + this.bGOGOTIME = true; + + // チップを配置。 + this.listChip.Add(chip); + } + else if (command == "#GOGOEND") + { + var chip = new CChip(); + + chip.nチャンネル番号 = 0x9F; + chip.n発声位置 = ((this.n現在の小節数) * 384); + chip.n発声時刻ms = (int)this.dbNowTime; + chip.fNow_Measure_m = this.fNow_Measure_m; + chip.fNow_Measure_s = this.fNow_Measure_s; + chip.dbBPM = this.dbNowBPM; + chip.n整数値_内部番号 = 1; + this.bGOGOTIME = false; + + // チップを配置。 + this.listChip.Add(chip); + } + else if (command == "#SECTION") + { + //分岐:条件リセット + var chip = new CChip(); + + chip.nチャンネル番号 = 0xDD; + chip.n発声位置 = ((this.n現在の小節数 - 1) * 384); + chip.n発声時刻ms = (int)this.dbNowTime; + chip.fNow_Measure_m = this.fNow_Measure_m; + chip.fNow_Measure_s = this.fNow_Measure_s; + chip.n整数値_内部番号 = 1; + chip.db発声時刻ms = this.dbNowTime; + // チップを配置。 + this.listChip.Add(chip); + } + else if (command == "#BRANCHSTART") + { + #region [ 譜面分岐のパース方法を作り直し ] + this.bチップがある.Branch = true; + this.b最初の分岐である = false; + this.b分岐を一回でも開始した = true; + + //分岐:分岐スタート + E分岐種類 e条件; + + //条件数値。 + double[] nNum = new double[2]; + + //名前と条件Aの間に,が無いと正常に動作しなくなる.2020.04.23.akasoko26 + #region [ 名前と条件Aの間に,が無いと正常に動作しなくなる ] + //空白を削除する。 + argument = Regex.Replace(argument, @"\s", ""); + //2文字目が,か数値かをチェック + var IsNumber = bIsNumber(argument[1]); + //IsNumber == true であったら,が無いということなので,を2文字目にぶち込む・・・ + if (IsNumber) + argument = argument.Insert(1, ","); + #endregion + + var branchStartArgumentMatch = BranchStartArgumentRegex.Match(argument); + nNum[0] = Convert.ToDouble(branchStartArgumentMatch.Groups[2].Value); + nNum[1] = Convert.ToDouble(branchStartArgumentMatch.Groups[3].Value); + + switch (branchStartArgumentMatch.Groups[1].Value) + { + case "p": + e条件 = E分岐種類.e精度分岐; + break; + case "r": + e条件 = E分岐種類.e連打分岐; + break; + case "s": + e条件 = E分岐種類.eスコア分岐; + break; + case "d": + e条件 = E分岐種類.e大音符のみ精度分岐; + break; + default: + e条件 = E分岐種類.e精度分岐; + break; + } + + #region [ 分岐開始時のチップ情報を記録 ] + //現在のチップ情報を記録する必要がある。 + this.t現在のチップ情報を記録する(true); + #endregion + + #region [ 一小節前の分岐開始Chip ] + //16分前に戻す計算なんか当てにしちゃだめよ。。(by Akasoko) + var c小節前の小節線情報 = c一小節前の小節線情報を返す(listChip, e条件); + CChip c小節前の連打開始位置 = null; + + var chip = new CChip(); + + if (e条件 == E分岐種類.e連打分岐) + { + /* + c小節前の連打開始位置 = c一小節前の小節線情報を返す(listChip, e条件, true); + //連打分岐の位置を再現 + //この計算式はあてにならないと思うが、まあどうしようもないんでこれで + //なるべく連打のケツの部分に + var f連打の長さの半分 = (c小節前の小節線情報.n発声時刻ms - c小節前の連打開始位置.n発声時刻ms) / 2.0f; + */ + + chip.n発声時刻ms = c小節前の小節線情報.n発声時刻ms; + } + else chip.n発声時刻ms = c小節前の小節線情報.n発声時刻ms; + + chip.nチャンネル番号 = 0xDE; + chip.fNow_Measure_m = c小節前の小節線情報.fNow_Measure_m; + chip.fNow_Measure_s = c小節前の小節線情報.fNow_Measure_s; + + //ノーツ * 0.5分後ろにして、ノーツが残らないようにする + chip.n分岐時刻ms = this.dbNowTime - ((15000.0 / this.dbNowBPM * (this.fNow_Measure_s / this.fNow_Measure_m)) * 0.5); + chip.e分岐の種類 = e条件; + chip.n条件数値A = nNum[0];// listに追加していたが仕様を変更。 + chip.n条件数値B = nNum[1];// "" + chip.dbSCROLL = c小節前の小節線情報.dbSCROLL; + chip.dbBPM = c小節前の小節線情報.dbBPM; + this.listChip.Add(chip); + #endregion + + for (int i = 0; i < 3; i++) + IsBranchBarDraw[i] = true;//3コース分の黄色小説線表示㋫ラブ + + IsEndedBranching = false; + #endregion + } + else if (command == "#N" || command == "#E" || command == "#M")//これCourseを全部集めてあとから分岐させればいい件 + { + //開始時の情報にセット + t現在のチップ情報を記録する(false); + + if (command == "#N") + this.n現在のコース = ECourse.eNormal;//分岐:普通譜面 + else if (command == "#E") + this.n現在のコース = ECourse.eExpert;//分岐:玄人譜面 + else if (command == "#M") + this.n現在のコース = ECourse.eMaster;//分岐:達人譜面 + } + else if (command == "#LEVELHOLD") + { + var chip = new CChip(); + chip.nチャンネル番号 = 0xE1; + chip.n発声位置 = ((this.n現在の小節数) * 384) - 1; + chip.n発声時刻ms = (int)this.dbNowTime; + chip.fNow_Measure_m = this.fNow_Measure_m; + chip.fNow_Measure_s = this.fNow_Measure_s; + chip.n整数値_内部番号 = 1; + + this.listChip.Add(chip); + } + else if (command == "#BRANCHEND") + { + var GoBranch = new CChip(); + + //End用チャンネルをEmptyから引っ張ってきた。 + GoBranch.nチャンネル番号 = 0x52; + GoBranch.n発声位置 = ((this.n現在の小節数) * 384) - 1; + GoBranch.n発声時刻ms = (int)this.dbNowTime; + GoBranch.fNow_Measure_m = this.fNow_Measure_m; + GoBranch.fNow_Measure_s = this.fNow_Measure_s; + GoBranch.dbSCROLL = this.dbNowScroll; + GoBranch.dbBPM = this.dbNowBPM; + GoBranch.n整数値_内部番号 = 1; + + this.listChip.Add(GoBranch); + + //End時にも黄色い小節線あったべ? + for (int i = 0; i < 3; i++) + IsBranchBarDraw[i] = true;//3コース分の黄色小説線表示㋫ラブ + + IsEndedBranching = true; + } + else if (command == "#BARLINEOFF") + { + var chip = new CChip(); + + chip.nチャンネル番号 = 0xE0; + chip.n発声位置 = ((this.n現在の小節数) * 384) - 1; + chip.n発声時刻ms = (int)this.dbNowTime + 1; + chip.n整数値_内部番号 = 1; + chip.nコース = this.n現在のコース; + this.bBARLINECUE[0] = 1; + + this.listChip.Add(chip); + } + else if (command == "#BARLINEON") + { + var chip = new CChip(); + + chip.nチャンネル番号 = 0xE0; + chip.n発声位置 = ((this.n現在の小節数) * 384) - 1; + chip.n発声時刻ms = (int)this.dbNowTime + 1; + chip.fNow_Measure_m = this.fNow_Measure_m; + chip.fNow_Measure_s = this.fNow_Measure_s; + chip.n整数値_内部番号 = 2; + chip.nコース = this.n現在のコース; + this.bBARLINECUE[0] = 0; + + this.listChip.Add(chip); + } + else if (command == "#LYRIC") + { + if (TJAPlayer3.r現在のステージ.eステージID == CStage.Eステージ.曲読み込み)//起動時に重たくなってしまう問題の修正用 + this.listLyric.Add(this.pf歌詞フォント.DrawPrivateFont(argument, TJAPlayer3.Skin.Game_Lyric_ForeColor, TJAPlayer3.Skin.Game_Lyric_BackColor)); + + var chip = new CChip(); + + chip.nチャンネル番号 = 0xF1; + chip.n発声時刻ms = (int)this.dbNowTime; + chip.fNow_Measure_m = this.fNow_Measure_m; + chip.fNow_Measure_s = this.fNow_Measure_s; + chip.n整数値_内部番号 = 0; + chip.nコース = this.n現在のコース; + + // チップを配置。 + + this.listChip.Add(chip); + this.bLyrics = true; + } + else if (command == "#DIRECTION") + { + double dbSCROLL = Convert.ToDouble(argument); + this.nスクロール方向 = (int)dbSCROLL; + + //チップ追加して割り込んでみる。 + var chip = new CChip(); + + chip.nチャンネル番号 = 0xF2; + chip.n発声位置 = ((this.n現在の小節数) * 384) - 1; + chip.n発声時刻ms = (int)this.dbNowTime; + chip.fNow_Measure_m = this.fNow_Measure_m; + chip.fNow_Measure_s = this.fNow_Measure_s; + chip.n整数値_内部番号 = 0; + chip.nスクロール方向 = (int)dbSCROLL; + chip.nコース = this.n現在のコース; + + // チップを配置。 + + this.listChip.Add(chip); + } + else if (command == "#SUDDEN") + { + strArray = argument.Split(chDelimiter); + WarnSplitLength("#SUDDEN", strArray, 2); + double db出現時刻 = Convert.ToDouble(strArray[0]); + double db移動待機時刻 = Convert.ToDouble(strArray[1]); + this.db出現時刻 = db出現時刻; + this.db移動待機時刻 = db移動待機時刻; + + //チップ追加して割り込んでみる。 + var chip = new CChip(); + + chip.nチャンネル番号 = 0xF3; + chip.n発声位置 = ((this.n現在の小節数) * 384) - 1; + chip.n発声時刻ms = (int)this.dbNowTime; + chip.fNow_Measure_m = this.fNow_Measure_m; + chip.fNow_Measure_s = this.fNow_Measure_s; + chip.n整数値_内部番号 = 0; + chip.nノーツ出現時刻ms = (int)this.db出現時刻; + chip.nノーツ移動開始時刻ms = (int)this.db移動待機時刻; + chip.nコース = this.n現在のコース; + + // チップを配置。 + + this.listChip.Add(chip); + } + else if (command == "#JPOSSCROLL") + { + strArray = argument.Split(chDelimiter); + WarnSplitLength("#JPOSSCROLL", strArray, 3); + double db移動時刻 = Convert.ToDouble(strArray[0]); + int n移動px = Convert.ToInt32(strArray[1]); + int n移動方向 = Convert.ToInt32(strArray[2]); + + //チップ追加して割り込んでみる。 + var chip = new CChip(); + + chip.nチャンネル番号 = 0xE2; + chip.n発声位置 = ((this.n現在の小節数) * 384) - 1; + chip.n発声時刻ms = (int)this.dbNowTime; + chip.fNow_Measure_m = this.fNow_Measure_m; + chip.fNow_Measure_s = this.fNow_Measure_s; + chip.n整数値_内部番号 = 0; + chip.nコース = this.n現在のコース; + + // チップを配置。 + + this.listJPOSSCROLL.Add(this.n内部番号JSCROLL1to, new CJPOSSCROLL() { n内部番号 = this.n内部番号JSCROLL1to, n表記上の番号 = 0, db移動時間 = db移動時刻, n移動距離px = n移動px, n移動方向 = n移動方向 }); + this.listChip.Add(chip); + this.n内部番号JSCROLL1to++; + } + else if (command == "#SENOTECHANGE") + { + FixSENote = int.Parse(argument); + IsEnabledFixSENote = true; + } + else if (command == "#NEXTSONG") + { + var delayTime = 6200.0; // 6.2秒ディレイ + //チップ追加して割り込んでみる。 + var chip = new CChip(); + + chip.nチャンネル番号 = 0x9B; + chip.n発声位置 = ((this.n現在の小節数) * 384) - 1; + chip.n発声時刻ms = (int)this.dbNowTime; + chip.fNow_Measure_m = this.fNow_Measure_m; + chip.fNow_Measure_s = this.fNow_Measure_s; + this.dbNowTime += delayTime; + this.dbNowBMScollTime += delayTime * this.dbNowBPM / 15000; + chip.n整数値_内部番号 = 0; + chip.nコース = this.n現在のコース; + + // チップを配置。 + this.listChip.Add(chip); + + AddMusicPreTimeMs(); // 段位の幕が開いてからの遅延。 + + strArray = SplitComma(argument); // \,をエスケープ処理するメソッドだぞっ + + for (int i = listChip.Count - 1; i >= 0; i--) + { + if (listChip[i].nチャンネル番号 >= 0x11 && listChip[i].nチャンネル番号 <= 0x18) + { + if(DanSongs.Number != 0) + { + Array.Resize(ref this.pDan_LastChip, this.pDan_LastChip.Length + 1); + this.pDan_LastChip[DanSongs.Number - 1] = listChip[i]; + break; + } + } + } + + WarnSplitLength("#NEXTSONG", strArray, 8); + var dansongs = new DanSongs(); + dansongs.Title = strArray[0]; + dansongs.SubTitle = strArray[1]; + dansongs.Genre = strArray[2]; + dansongs.FileName = strArray[3]; + dansongs.ScoreInit = int.Parse(strArray[4]); + dansongs.ScoreDiff = int.Parse(strArray[5]); + + if (strArray.Length >= 7 && strArray[6] != "" && strArray[6] != null) + dansongs.Level = int.Parse(strArray[6]); + else if (strArray.Length < 7) + dansongs.Level = 10; + + if (strArray.Length >= 8 && strArray[7] != "" && strArray[7] != null) + dansongs.Difficulty = strConvertCourse(strArray[7]); + else if (strArray.Length < 8) + dansongs.Difficulty = 3; + + if (strArray.Length == 9 && strArray[8] != "" && strArray[8] != null) + dansongs.bTitleShow = bool.Parse(strArray[8]); + else if (strArray.Length < 9) + dansongs.bTitleShow = false; + + dansongs.Wave = new CWAV + { + n内部番号 = this.n内部番号WAV1to, + n表記上の番号 = this.n内部番号WAV1to, + nチップサイズ = this.n無限管理SIZE[this.n内部番号WAV1to], + n位置 = this.n無限管理PAN[this.n内部番号WAV1to], + SongVol = this.SongVol, + SongLoudnessMetadata = this.SongLoudnessMetadata, + strファイル名 = CDTXCompanionFileFinder.FindFileName(this.strフォルダ名, strファイル名, dansongs.FileName), + strコメント文 = "TJA BGM" + }; + dansongs.Wave.SongLoudnessMetadata = LoudnessMetadataScanner.LoadForAudioPath(dansongs.Wave.strファイル名); + List_DanSongs.Add(dansongs); + this.listWAV.Add(this.n内部番号WAV1to, dansongs.Wave); + this.n内部番号WAV1to++; + + var nextSongnextSongChip = new CChip(); + + nextSongnextSongChip.nチャンネル番号 = 0x01; + nextSongnextSongChip.n発声位置 = 384; + nextSongnextSongChip.n発声時刻ms = (int)this.dbNowTime; + nextSongnextSongChip.fNow_Measure_m = this.fNow_Measure_m; + nextSongnextSongChip.fNow_Measure_s = this.fNow_Measure_s; + nextSongnextSongChip.n整数値 = 0x01; + nextSongnextSongChip.n整数値_内部番号 = 1 + List_DanSongs.Count; + + this.listWAV[1].strファイル名 = ""; + + // チップを配置。 + this.listChip.Add(nextSongnextSongChip); + + } + } + void t現在のチップ情報を記録する(bool bInPut) + { + //2020.04.21 こうなってしまったのは仕方がないな。。 + if (bInPut) + { + #region [ 記録する ] + cBranchStart.dbTime = this.dbNowTime; + cBranchStart.dbSCROLL = this.dbNowScroll; + cBranchStart.dbSCROLLY = this.dbNowScrollY; + cBranchStart.dbBMScollTime = this.dbNowBMScollTime; + cBranchStart.dbBPM = this.dbNowBPM; + cBranchStart.fMeasure_s = this.fNow_Measure_s; + cBranchStart.fMeasure_m = this.fNow_Measure_m; + cBranchStart.nMeasureCount = this.n現在の小節数; + cBranchStart.db移動待機時刻 = this.db移動待機時刻; + cBranchStart.db再生速度 = this.db再生速度; + cBranchStart.db出現時刻 = this.db出現時刻; + #endregion + } + else + { + #region [ 記録した情報をNow~に適応 ] + this.dbNowTime = cBranchStart.dbTime; + this.dbNowScroll = cBranchStart.dbSCROLL; + this.dbNowScrollY = cBranchStart.dbSCROLLY; + this.dbNowBMScollTime = cBranchStart.dbBMScollTime; + this.dbNowBPM = cBranchStart.dbBPM; + this.fNow_Measure_s = cBranchStart.fMeasure_s; + this.fNow_Measure_m = cBranchStart.fMeasure_m; + this.n現在の小節数 = cBranchStart.nMeasureCount; + this.db移動待機時刻 = cBranchStart.db移動待機時刻; + this.db再生速度 = cBranchStart.db再生速度; + this.db出現時刻 = cBranchStart.db出現時刻; + #endregion + } + } + + /// + /// 一小節前の小節線情報を返すMethod 2020.04.21.akasoko26 + /// + /// + /// + private CChip c一小節前の小節線情報を返す(List listChips, E分岐種類 e分岐種類, bool b分岐前の連打開始 = false) + { + //2020.04.20 c一小節前の小節線情報を返すMethodを追加 + //連打分岐時は現在の小節以降の連打の終わり部分の時刻を取得する + + int? nReturnChip = null; + + //--して取得しないとだめよ~ダメダメ💛 + for (int i = listChips.Count - 1; i >= 0; i--) + { + if (b分岐前の連打開始) + { + if (listChips[i].nチャンネル番号 == 0x15 || listChips[i].nチャンネル番号 == 0x16) + { + if (nReturnChip == null) + nReturnChip = i; + + //ReturnChipがnullであったら適応 + } + } + else + { + var Flag = e分岐種類 == E分岐種類.e連打分岐 ? 0x18 : 0x50; + + if (listChips[i].nチャンネル番号 == Flag) + { + if (nReturnChip == null) + nReturnChip = i; + //ReturnChipがnullであったら適応 + } + } + } + + //もし、nReturnChipがnullだったらlistChipのCount - 1にセットする。 + return listChips[nReturnChip == null ? listChips.Count - 1 : (int)nReturnChip]; + } + + private void WarnSplitLength(string name, string[] strArray, int minimumLength) + { + if (strArray.Length < minimumLength) + { + Trace.TraceWarning( + $"命令 {name} のパラメータが足りません。少なくとも {minimumLength} つのパラメータが必要です。 (現在のパラメータ数: {strArray.Length}). ({strファイル名の絶対パス})"); + } + } + + private void t入力_行解析譜面_V4(string InputText) + { + if (!String.IsNullOrEmpty(InputText)) + { + int n文字数 = 16; + + //現在のコース、小節に当てはまるものをリストから探して文字数を返す。 + for (int i = 0; i < this.listLine.Count; i++) + { + if (this.listLine[i].n小節番号 == this.n現在の小節数 && this.listLine[i].nコース == this.n現在のコース) + { + n文字数 = this.listLine[i].n文字数; + } + + } + + if (InputText.StartsWith("#")) + { + this.t命令を挿入する(InputText); + return; + } + else + { + if (this.b小節線を挿入している == false) + { + // 小節線にもやってあげないと + // IsEndedBranchingがfalseで1回 + // trueで3回だよ3回 + for (int i = 0; i < (IsEndedBranching == true ? 3 : 1); i++) + { + CChip chip = new CChip(); + chip.n発声位置 = ((this.n現在の小節数) * 384); + chip.nチャンネル番号 = 0x50; + chip.n発声時刻ms = (int)this.dbNowTime; + chip.n整数値 = this.n現在の小節数; + chip.n文字数 = n文字数; + chip.n整数値_内部番号 = this.n現在の小節数; + chip.dbBPM = this.dbNowBPM; + chip.fNow_Measure_m = this.fNow_Measure_m; + chip.fNow_Measure_s = this.fNow_Measure_s; + chip.IsEndedBranching = IsEndedBranching; + chip.dbSCROLL = this.dbNowScroll; + chip.dbSCROLL_Y = this.dbNowScrollY; + chip.fBMSCROLLTime = (float)this.dbNowBMScollTime; + + if (IsEndedBranching) + chip.nコース = (ECourse)i; + else + chip.nコース = n現在のコース; + + if (this.bBARLINECUE[0] == 1) + { + chip.b可視 = false; + } + #region [ 作り直し ] + if (IsEndedBranching) + { + if (this.IsBranchBarDraw[i]) + chip.bBranch = true; + } + else + { + if (this.IsBranchBarDraw[(int)n現在のコース]) + chip.bBranch = true; + } + #endregion + + this.listChip.Add(chip); + + #region [ 作り直し ] + if (IsEndedBranching) + this.IsBranchBarDraw[i] = false; + else this.IsBranchBarDraw[(int)n現在のコース] = false; + #endregion + } + + + this.dbLastTime = this.dbNowTime; + this.b小節線を挿入している = true; + + #region[ 拍線チップテスト ] + //1拍の時間を計算 + double db1拍 = (60.0 / this.dbNowBPM) / 4.0; + //forループ(拍数) + for (int measure = 1; measure < this.fNow_Measure_s; measure++) + { + CChip hakusen = new CChip(); + hakusen.n発声位置 = ((this.n現在の小節数) * 384); + hakusen.n発声時刻ms = (int)(this.dbNowTime + (((db1拍 * 4.0)) * measure) * 1000.0); + hakusen.nチャンネル番号 = 0x51; + //hakusen.n発声時刻ms = (int)this.dbNowTime; + hakusen.fBMSCROLLTime = this.dbNowBMScollTime; + hakusen.n整数値_内部番号 = this.n現在の小節数; + hakusen.n整数値 = 0; + hakusen.dbBPM = this.dbNowBPM; + hakusen.dbSCROLL = this.dbNowScroll; + hakusen.fNow_Measure_m = this.fNow_Measure_m; + hakusen.fNow_Measure_s = this.fNow_Measure_s; + hakusen.dbSCROLL_Y = this.dbNowScrollY; + hakusen.nコース = n現在のコース; + + this.listChip.Add(hakusen); + //--全ての拍線の時間を出力する-- + //Trace.WriteLine( string.Format( "|| {0,3:##0} Time:{1} Beat:{2}", this.n現在の小節数, hakusen.n発声時刻ms, measure ) ); + //-------------------------------- + } + + #endregion + + } + + for (int n = 0; n < InputText.Length; n++) + { + if (InputText.Substring(n, 1) == ",") + { + this.n現在の小節数++; + this.b小節線を挿入している = false; + return; + } + + if (InputText.Substring(0, 1) == "F") + { + bool bTest = true; + } + + + int nObjectNum = this.CharConvertNote(InputText.Substring(n, 1)); + + if (nObjectNum != 0) + { + if ((nObjectNum >= 5 && nObjectNum <= 7) || nObjectNum == 9) + { + if (nNowRoll != 0) + { + this.dbNowTime += (15000.0 / this.dbNowBPM * (this.fNow_Measure_s / this.fNow_Measure_m) * (16.0 / n文字数)); + this.dbNowBMScollTime += (double)((this.dbBarLength) * (16.0 / n文字数)); + continue; + } + else + { + this.nNowRollCount = listChip.Count; + nNowRoll = nObjectNum; + } + } + + // IsEndedBranchingがfalseで1回 + // trueで3回だよ3回 + for (int i = 0; i < (IsEndedBranching == true ? 3 : 1); i++) + { + var chip = new CChip(); + chip.IsMissed = false; + chip.bHit = false; + chip.b可視 = true; + chip.bShow = true; + chip.bShowRoll = true; + chip.nチャンネル番号 = 0x10 + nObjectNum; + //chip.n発声位置 = (this.n現在の小節数 * 384) + ((384 * n) / n文字数); + chip.n発声位置 = (int)((this.n現在の小節数 * 384.0) + ((384.0 * n) / n文字数)); + chip.db発声位置 = this.dbNowTime; + chip.n発声時刻ms = (int)this.dbNowTime; + //chip.fBMSCROLLTime = (float)(( this.dbBarLength ) * (16.0f / this.n各小節の文字数[this.n現在の小節数])); + chip.fBMSCROLLTime = (float)this.dbNowBMScollTime; + chip.n整数値 = nObjectNum; + chip.n整数値_内部番号 = 1; + chip.IsEndedBranching = IsEndedBranching; + chip.fNow_Measure_m = this.fNow_Measure_m; + chip.fNow_Measure_s = this.fNow_Measure_s; + chip.dbBPM = this.dbNowBPM; + chip.dbSCROLL = this.dbNowScroll; + chip.dbSCROLL_Y = this.dbNowScrollY; + chip.nスクロール方向 = this.nスクロール方向; + + if (IsEndedBranching) + chip.nコース = (ECourse)i; + else + chip.nコース = n現在のコース; + + chip.n分岐回数 = this.n内部番号BRANCH1to; + chip.e楽器パート = E楽器パート.TAIKO; + chip.nノーツ出現時刻ms = (int)(this.db出現時刻 * 1000.0); + chip.nノーツ移動開始時刻ms = (int)(this.db移動待機時刻 * 1000.0); + chip.nPlayerSide = this.nPlayerSide; + chip.bGOGOTIME = this.bGOGOTIME; + + if (nObjectNum == 7 || nObjectNum == 9) + { + //this.n現在のコースをswitchで分岐していたため風船の値がうまく割り当てられていない 2020.04.21 akasoko26 + + switch (chip.nコース) + { + case ECourse.eNormal: + if (this.listBalloon_Normal.Count == 0) + { + chip.nBalloon = 5; + break; + } + + if (this.listBalloon_Normal.Count > this.listBalloon_Normal_数値管理) + { + chip.nBalloon = this.listBalloon_Normal[this.listBalloon_Normal_数値管理]; + this.listBalloon_Normal_数値管理++; + break; + } + //else if( this.listBalloon.Count != 0 ) + //{ + // chip.nBalloon = this.listBalloon[ this.listBalloon_Normal_数値管理 ]; + // this.listBalloon_Normal_数値管理++; + // break; + //} + break; + case ECourse.eExpert: + if (this.listBalloon_Expert.Count == 0) + { + chip.nBalloon = 5; + break; + } + + if (this.listBalloon_Expert.Count > this.listBalloon_Expert_数値管理) + { + chip.nBalloon = this.listBalloon_Expert[this.listBalloon_Expert_数値管理]; + this.listBalloon_Expert_数値管理++; + break; + } + //else if( this.listBalloon.Count != 0 ) + //{ + // chip.nBalloon = this.listBalloon[ this.listBalloon_Normal_数値管理 ]; + // this.listBalloon_Normal_数値管理++; + // break; + //} + break; + case ECourse.eMaster: + if (this.listBalloon_Master.Count == 0) + { + chip.nBalloon = 5; + break; + } + + if (this.listBalloon_Master.Count > this.listBalloon_Master_数値管理) + { + chip.nBalloon = this.listBalloon_Master[this.listBalloon_Master_数値管理]; + this.listBalloon_Master_数値管理++; + break; + } + //else if( this.listBalloon.Count != 0 ) + //{ + // chip.nBalloon = this.listBalloon[ this.listBalloon_Normal_数値管理 ]; + // this.listBalloon_Normal_数値管理++; + // break; + //} + break; + } + } + if (nObjectNum == 8) + { + chip.nノーツ終了位置 = (this.n現在の小節数 * 384) + ((384 * n) / n文字数); + chip.nノーツ終了時刻ms = (int)this.dbNowTime; + chip.fBMSCROLLTime_end = (float)this.dbNowBMScollTime; + + chip.nノーツ出現時刻ms = listChip[nNowRollCount].nノーツ出現時刻ms; + chip.nノーツ移動開始時刻ms = listChip[nNowRollCount].nノーツ移動開始時刻ms; + + chip.n連打音符State = nNowRoll; + listChip[nNowRollCount].nノーツ終了位置 = (this.n現在の小節数 * 384) + ((384 * n) / n文字数); + listChip[nNowRollCount].nノーツ終了時刻ms = (int)this.dbNowTime; + listChip[nNowRollCount].fBMSCROLLTime_end = (int)this.dbNowBMScollTime; + //listChip[ nNowRollCount ].dbBPM = this.dbNowBPM; + //listChip[ nNowRollCount ].dbSCROLL = this.dbNowSCROLL; + nNowRoll = 0; + //continue; + } + + if (IsEnabledFixSENote) + { + chip.IsFixedSENote = true; + chip.nSenote = FixSENote - 1; + } + + #region[ 固定される種類のsenotesはここで設定しておく。 ] + switch (nObjectNum) + { + case 3: + chip.nSenote = 5; + break; + case 4: + chip.nSenote = 6; + break; + case 5: + chip.nSenote = 7; + break; + case 6: + chip.nSenote = 0xA; + break; + case 7: + chip.nSenote = 0xB; + break; + case 8: + chip.nSenote = 0xC; + break; + case 9: + chip.nSenote = 0xD; + break; + case 10: + chip.nSenote = 0xE; + break; + case 11: + chip.nSenote = 0xF; + break; + } + #endregion + + if (nObjectNum < 5) + { + #region [ 作り直し ] + //譜面分岐がない譜面でも値は加算されてしまうがしゃあない + //分岐を開始しない間は共通譜面としてみなす。 + if (IsEndedBranching) + this.nノーツ数_Branch[i]++; + else this.nノーツ数_Branch[(int)chip.nコース]++; + + if (!IsEndedBranching && !this.b分岐を一回でも開始した) + { + //IsEndedBranching==false = forloopが行われていないときのみ + for (int l = 0; l < 3; l++) + this.nノーツ数_Branch[l]++; + } + + + if(this.n参照中の難易度 == (int)Difficulty.Dan) + this.nDan_NotesCount[DanSongs.Number - 1]++; + + this.nノーツ数[3]++; + #endregion + } + else if (nObjectNum == 7) + { + //風船はこのままでも機能しているので何もしない. + + if (this.b最初の分岐である == false) + this.n風船数[(int)this.n現在のコース]++; + else + this.n風船数[3]++; + } + + Array.Resize(ref nDan_NotesCount, nDan_NotesCount.Length + 1); + this.listChip.Add(chip); + + if(IsEndedBranching) + this.listChip_Branch[i].Add(chip); + else + this.listChip_Branch[(int)chip.nコース].Add(chip); + } + } + + if (IsEnabledFixSENote) IsEnabledFixSENote = false; + + this.dbLastTime = this.dbNowTime; + this.dbLastBMScrollTime = this.dbNowBMScollTime; + this.dbNowTime += (15000.0 / this.dbNowBPM * (this.fNow_Measure_s / this.fNow_Measure_m) * (16.0 / n文字数)); + this.dbNowBMScollTime += (((this.fNow_Measure_s / this.fNow_Measure_m)) * (16.0 / (double)n文字数)); + } + } + } + } + + /// + /// 難易度ごとによって変わるヘッダ値を読み込む。 + /// (BALLOONなど。) + /// + /// + private void t難易度別ヘッダ(string InputText) + { + if (TJAPlayer3.actEnumSongs.b活性化してない) + { + if (InputText.Equals("#HBSCROLL") && TJAPlayer3.ConfigIni.bスクロールモードを上書き == false) + { + TJAPlayer3.ConfigIni.eScrollMode = EScrollMode.HBSCROLL; + } + if (InputText.Equals("#BMSCROLL") && TJAPlayer3.ConfigIni.bスクロールモードを上書き == false) + { + TJAPlayer3.ConfigIni.eScrollMode = EScrollMode.BMSCROLL; + } + } + + string[] strArray = InputText.Split(new char[] { ':' }); + string strCommandName = ""; + string strCommandParam = ""; + + if (strArray.Length == 2) + { + strCommandName = strArray[0].Trim(); + strCommandParam = strArray[1].Trim(); + } + + void ParseOptionalInt16(Action setValue) + { + this.ParseOptionalInt16(strCommandName, strCommandParam, setValue); + } + + if (strCommandName.Equals("BALLOON") || strCommandName.Equals("BALLOONNOR")) + { + ParseBalloon(strCommandParam, this.listBalloon_Normal); + } + else if (strCommandName.Equals("BALLOONEXP")) + { + ParseBalloon(strCommandParam, this.listBalloon_Expert); + //tbBALLOON.Text = strCommandParam; + } + else if (strCommandName.Equals("BALLOONMAS")) + { + ParseBalloon(strCommandParam, this.listBalloon_Master); + //tbBALLOON.Text = strCommandParam; + } + else if (strCommandName.Equals("SCOREMODE")) + { + ParseOptionalInt16(value => this.nScoreModeTmp = value); + } + else if (strCommandName.Equals("SCOREINIT")) + { + if (!string.IsNullOrEmpty(strCommandParam)) + { + string[] scoreinit = strCommandParam.Split(','); + + this.ParseOptionalInt16("SCOREINIT first value", scoreinit[0], value => + { + this.nScoreInit[0, this.n参照中の難易度] = value; + this.b配点が指定されている[0, this.n参照中の難易度] = true; + }); + + if (scoreinit.Length == 2) + { + this.ParseOptionalInt16("SCOREINIT second value", scoreinit[1], value => + { + this.nScoreInit[1, this.n参照中の難易度] = value; + this.b配点が指定されている[2, this.n参照中の難易度] = true; + }); + } + } + } + else if (strCommandName.Equals("SCOREDIFF")) + { + ParseOptionalInt16(value => + { + this.nScoreDiff[this.n参照中の難易度] = value; + this.b配点が指定されている[1, this.n参照中の難易度] = true; + }); + } + + //if( this.nScoreModeTmp == 99 ) //2017.01.28 DD SCOREMODEを入力していない場合のみConfigで設定したモードにする + //{ + // this.nScoreModeTmp = CDTXMania.ConfigIni.nScoreMode; + //} + //if( CDTXMania.ConfigIni.nScoreMode == 3 && !this.b配点が指定されている[ 2, this.n参照中の難易度 ] ){ //2017.06.04 kairera0467 + // this.nScoreModeTmp = 3; + //} + + + + else if (strCommandName.Equals("SCOREMODE")) + { + if (!string.IsNullOrEmpty(strCommandParam)) + { + this.nScoreModeTmp = Convert.ToInt16(strCommandParam); + } + } + else if (strCommandName.Equals("SCOREINIT")) + { + if (!string.IsNullOrEmpty(strCommandParam)) + { + string[] scoreinit = strCommandParam.Split(','); + + this.nScoreInit[0, this.n参照中の難易度] = Convert.ToInt16(scoreinit[0]); + this.b配点が指定されている[0, this.n参照中の難易度] = true; + if (scoreinit.Length == 2) + { + this.nScoreInit[1, this.n参照中の難易度] = Convert.ToInt16(scoreinit[1]); + this.b配点が指定されている[2, this.n参照中の難易度] = true; + } + } + } + else if (strCommandName.Equals("SCOREDIFF")) + { + if (!string.IsNullOrEmpty(strCommandParam)) + { + this.nScoreDiff[this.n参照中の難易度] = Convert.ToInt16(strCommandParam); + this.b配点が指定されている[1, this.n参照中の難易度] = true; + } + } + if (this.nScoreModeTmp == 99) //2017.01.28 DD SCOREMODEを入力していない場合のみConfigで設定したモードにする + { + this.nScoreModeTmp = TJAPlayer3.ConfigIni.nScoreMode; + } + if (TJAPlayer3.ConfigIni.nScoreMode == 3 && !this.b配点が指定されている[2, this.n参照中の難易度]) + { //2017.06.04 kairera0467 + this.nScoreModeTmp = 3; + } + } + + private void tDanExamLoad(string input) + { + string[] strArray = input.Split(new char[] { ':' }); + string strCommandName = ""; + string strCommandParam = ""; + + if (strArray.Length == 2) + { + strCommandName = strArray[0].Trim(); + strCommandParam = strArray[1].Trim(); + } + + if (strCommandName.Equals("EXAM1") || strCommandName.Equals("EXAM2") || strCommandName.Equals("EXAM3") || strCommandName.Equals("EXAM4")) + { + if (!string.IsNullOrEmpty(strCommandParam)) + { + Exam.Type examType; + int[] examValue; + Exam.Range examRange; + var splitExam = strCommandParam.Split(','); + switch (splitExam[0]) + { + case "g": + examType = Exam.Type.Gauge; + break; + case "jp": + examType = Exam.Type.JudgePerfect; + break; + case "jg": + examType = Exam.Type.JudgeGood; + break; + case "jb": + examType = Exam.Type.JudgeBad; + break; + case "s": + examType = Exam.Type.Score; + break; + case "r": + examType = Exam.Type.Roll; + break; + case "h": + examType = Exam.Type.Hit; + break; + case "c": + examType = Exam.Type.Combo; + break; + default: + examType = Exam.Type.Gauge; + break; + } + try + { + examValue = new int[] { int.Parse(splitExam[1]), int.Parse(splitExam[2]) }; + } + catch (Exception) + { + examValue = new int[] { 100, 100 }; + } + switch (splitExam[3]) + { + case "m": + examRange = Exam.Range.More; + break; + case "l": + examRange = Exam.Range.Less; + break; + default: + examRange = Exam.Range.More; + break; + } + + if(Dan_C[int.Parse(strCommandName.Substring(4)) - 1] == null) + Dan_C[int.Parse(strCommandName.Substring(4)) - 1] = new Dan_C(examType, examValue, examRange); + + List_DanSongs[DanSongs.Number - 1].Dan_C[int.Parse(strCommandName.Substring(4)) - 1] = new Dan_C(examType, examValue, examRange); + } + } + } + + private void ParseOptionalInt16(string name, string unparsedValue, Action setValue) + { + if (string.IsNullOrEmpty(unparsedValue)) + { + return; + } + + if (short.TryParse(unparsedValue, out var value)) + { + setValue(value); + } + else + { + Trace.TraceWarning($"命令名: {name} のパラメータの値が正しくないことを検知しました。値: {unparsedValue} ({strファイル名の絶対パス})"); + } + } + + + private void ParseBalloon(string strCommandParam, List listBalloon) + { + string[] strParam = strCommandParam.Split(','); + for (int n = 0; n < strParam.Length; n++) + { + int n打数; + try + { + if (strParam[n] == null || strParam[n] == "") + break; + + n打数 = Convert.ToInt32(strParam[n]); + } + catch (Exception ex) + { + Trace.TraceError($"おや?エラーが出たようです。お兄様。 ({strファイル名の絶対パス})"); + Trace.TraceError(ex.ToString()); + Trace.TraceError("例外が発生しましたが処理を継続します。 (95327158-4e83-4fa9-b5e9-ad3c3d4c2a22)"); + break; + } + + listBalloon.Add(n打数); + } + } + private void t入力_行解析ヘッダ(string InputText) + { + //やべー。先頭にコメント行あったらやばいやん。 + string[] strArray = InputText.Split(new char[] { ':' }); + string strCommandName = ""; + string strCommandParam = ""; + + if (InputText.StartsWith("#BRANCHSTART")) + { + //2015.08.18 kairera0467 + //本来はヘッダ命令ではありませんが、難易度ごとに違う項目なのでここで読み込ませます。 + //Lengthのチェックをされる前ににif文を入れています。 + this.bHasBranch[this.n参照中の難易度] = true; + } + + //まずは「:」でSplitして割り当てる。 + if (strArray.Length == 2) + { + strCommandName = strArray[0].Trim(); + strCommandParam = strArray[1].Trim(); + } + else if (strArray.Length > 2) + { + //strArrayが2じゃない場合、ヘッダのSplitを通していない可能性がある。 + //この処理自体は「t入力」を改造したもの。STARTでSplitしていない等、一部の処理が異なる。 + + #region[ヘッダ] + InputText = InputText.Replace(Environment.NewLine, "\n"); //改行文字を別の文字列に差し替え。 + InputText = InputText.Replace('\t', ' '); //何の文字か知らないけどスペースに差し替え。 + InputText = InputText + "\n"; + + string[] strDelimiter2 = { "\n" }; + strArray = InputText.Split(strDelimiter2, StringSplitOptions.RemoveEmptyEntries); + + + strArray = strArray[0].Split(new char[] { ':' }); + WarnSplitLength("Header Name & Value", strArray, 2); + + strCommandName = strArray[0].Trim(); + strCommandParam = strArray[1].Trim(); + + #endregion + //lblMessage.Text = "おや?strArrayのLengthが2じゃないようですね。お兄様。"; + } + + void ParseOptionalInt16(Action setValue) + { + this.ParseOptionalInt16(strCommandName, strCommandParam, setValue); + } + + //パラメータを分別、そこから割り当てていきます。 + if (strCommandName.Equals("TITLE")) + { + //this.TITLE = strCommandParam; + var subTitle = ""; + for (int i = 0; i < strArray.Length; i++) + { + subTitle += strArray[i]; + } + this.TITLE = subTitle.Substring(5); + //tbTitle.Text = strCommandParam; + } + if (strCommandName.Equals("SUBTITLE")) + { + if (strCommandParam.StartsWith("--")) + { + //this.SUBTITLE = strCommandParam.Remove( 0, 2 ); + var subTitle = ""; + for (int i = 0; i < strArray.Length; i++) + { + subTitle += strArray[i]; + } + this.SUBTITLE = subTitle.Substring(10); + } + else if (strCommandParam.StartsWith("++")) + { + // //this.TITLE += strCommandParam.Remove( 0, 2 ); //このままだと選曲画面の表示がうまくいかない。 + //this.SUBTITLE = strCommandParam.Remove( 0, 2 ); + var subTitle = ""; + for (int i = 0; i < strArray.Length; i++) + { + subTitle += strArray[i]; + } + this.SUBTITLE = subTitle.Substring(10); + } + } + else if (strCommandName.Equals("LEVEL")) + { + var level = (int)Convert.ToDouble(strCommandParam); + this.LEVEL.Drums = level; + this.LEVEL.Taiko = level; + this.LEVELtaiko[this.n参照中の難易度] = level; + } + else if (strCommandName.Equals("BPM")) + { + if (strCommandParam.IndexOf(",") != -1) + strCommandParam = strCommandParam.Replace(',', '.'); + + double dbBPM = Convert.ToDouble(strCommandParam); + this.BPM = dbBPM; + this.BASEBPM = dbBPM; + this.dbNowBPM = dbBPM; + + this.listBPM.Add(this.n内部番号BPM1to - 1, new CBPM() { n内部番号 = this.n内部番号BPM1to - 1, n表記上の番号 = this.n内部番号BPM1to - 1, dbBPM値 = dbBPM, }); + this.n内部番号BPM1to++; + + + //チップ追加して割り込んでみる。 + var chip = new CChip(); + + chip.nチャンネル番号 = 0x03; + chip.n発声位置 = ((this.n現在の小節数 - 1) * 384); + chip.n整数値 = 0x00; + chip.n整数値_内部番号 = 1; + + this.listChip.Add(chip); + //tbBPM.Text = strCommandParam; + } + else if (strCommandName.Equals("WAVE")) + { + if (strBGM_PATH != null) + { + Trace.TraceWarning($"{nameof(CDTX)} is ignoring an extra WAVE header in {this.strファイル名の絶対パス}"); + } + else + { + this.strBGM_PATH = CDTXCompanionFileFinder.FindFileName(this.strフォルダ名, strファイル名, strCommandParam); + //tbWave.Text = strCommandParam; + if (this.listWAV != null) + { + // 2018-08-27 twopointzero - DO attempt to load (or queue scanning) loudness metadata here. + // TJAP3 is either launching, enumerating songs, or is about to + // begin playing a song. If metadata is available, we want it now. + // If is not yet available then we wish to queue scanning. + var absoluteBgmPath = Path.Combine(this.strフォルダ名, this.strBGM_PATH); + this.SongLoudnessMetadata = LoudnessMetadataScanner.LoadForAudioPath(absoluteBgmPath); + + var wav = new CWAV() + { + n内部番号 = this.n内部番号WAV1to, + n表記上の番号 = 1, + nチップサイズ = this.n無限管理SIZE[this.n内部番号WAV1to], + n位置 = this.n無限管理PAN[this.n内部番号WAV1to], + SongVol = this.SongVol, + SongLoudnessMetadata = this.SongLoudnessMetadata, + strファイル名 = this.strBGM_PATH, + strコメント文 = "TJA BGM", + }; + + this.listWAV.Add(this.n内部番号WAV1to, wav); + this.n内部番号WAV1to++; + } + } + } + else if (strCommandName.Equals("OFFSET") && !string.IsNullOrEmpty(strCommandParam)) + { + this.nOFFSET = (int)(Convert.ToDouble(strCommandParam) * 1000); + this.bOFFSETの値がマイナスである = this.nOFFSET < 0 ? true : false; + + this.listBPM[0].bpm_change_bmscroll_time = -2000 * this.dbNowBPM / 15000; + if (this.bOFFSETの値がマイナスである == true) + this.nOFFSET = this.nOFFSET * -1; //OFFSETは秒を加算するので、必ず正の数にすること。 + //tbOFFSET.Text = strCommandParam; + } + else if (strCommandName.Equals("MOVIEOFFSET")) + { + this.nMOVIEOFFSET = (int)(Convert.ToDouble(strCommandParam) * 1000); + this.bMOVIEOFFSETの値がマイナスである = this.nMOVIEOFFSET < 0 ? true : false; + + if (this.bMOVIEOFFSETの値がマイナスである == true) + this.nMOVIEOFFSET = this.nMOVIEOFFSET * -1; //OFFSETは秒を加算するので、必ず正の数にすること。 + //tbOFFSET.Text = strCommandParam; + } + #region[移動→不具合が起こるのでここも一応復活させておく] + else if (strCommandName.Equals("BALLOON") || strCommandName.Equals("BALLOONNOR")) + { + ParseBalloon(strCommandParam, this.listBalloon_Normal); + } + else if (strCommandName.Equals("BALLOONEXP")) + { + ParseBalloon(strCommandParam, this.listBalloon_Expert); + //tbBALLOON.Text = strCommandParam; + } + else if (strCommandName.Equals("BALLOONMAS")) + { + ParseBalloon(strCommandParam, this.listBalloon_Master); + //tbBALLOON.Text = strCommandParam; + } + else if (strCommandName.Equals("SCOREMODE")) + { + ParseOptionalInt16(value => this.nScoreModeTmp = value); + } + else if (strCommandName.Equals("SCOREINIT")) + { + if (!string.IsNullOrEmpty(strCommandParam)) + { + string[] scoreinit = strCommandParam.Split(','); + + this.ParseOptionalInt16("SCOREINIT first value", scoreinit[0], value => + { + this.nScoreInit[0, this.n参照中の難易度] = value; + }); + + if (scoreinit.Length == 2) + { + this.ParseOptionalInt16("SCOREINIT second value", scoreinit[1], value => + { + this.nScoreInit[1, this.n参照中の難易度] = value; + }); + } + } + } + else if (strCommandName.Equals("GAUGEINCR")) + { + if (!string.IsNullOrEmpty(strCommandParam)) + { + switch (strCommandParam.ToLower()) + { + case "normal": + GaugeIncreaseMode = GaugeIncreaseMode.Normal; + break; + case "floor": + GaugeIncreaseMode = GaugeIncreaseMode.Floor; + break; + case "round": + GaugeIncreaseMode = GaugeIncreaseMode.Round; + break; + case "ceiling": + GaugeIncreaseMode = GaugeIncreaseMode.Ceiling; + break; + case "notfix": + GaugeIncreaseMode = GaugeIncreaseMode.NotFix; + break; + default: + GaugeIncreaseMode = GaugeIncreaseMode.Normal; + break; + } + } + } + else if (strCommandName.Equals("SCOREDIFF")) + { + ParseOptionalInt16(value => this.nScoreDiff[this.n参照中の難易度] = value); + } + #endregion + else if (strCommandName.Equals("SONGVOL") && !string.IsNullOrEmpty(strCommandParam)) + { + this.SongVol = Convert.ToInt32(strCommandParam).Clamp(CSound.MinimumSongVol, CSound.MaximumSongVol); + + foreach (var kvp in this.listWAV) + { + kvp.Value.SongVol = this.SongVol; + } + } + else if (strCommandName.Equals("SEVOL")) + { + //tbSeVol.Text = strCommandParam; + } + else if (strCommandName.Equals("COURSE")) + { + if (!string.IsNullOrEmpty(strCommandParam)) + { + //this.n参照中の難易度 = Convert.ToInt16( strCommandParam ); + this.n参照中の難易度 = this.strConvertCourse(strCommandParam); + } + } + + else if (strCommandName.Equals("HEADSCROLL")) + { + //新定義:初期スクロール速度設定(というよりこのシステムに合わせるには必須。) + //どうしても一番最初に1小節挿入されるから、こうするしかなかったんだ___ + + this.dbScrollSpeed = Convert.ToDouble(strCommandParam); + + this.listSCROLL.Add(this.n内部番号SCROLL1to, new CSCROLL() { n内部番号 = this.n内部番号SCROLL1to, n表記上の番号 = 0, dbSCROLL値 = this.dbScrollSpeed, }); + + + //チップ追加して割り込んでみる。 + var chip = new CChip(); + + chip.nチャンネル番号 = 0x9D; + chip.n発声位置 = ((this.n現在の小節数 - 2) * 384); + chip.n整数値 = 0x00; + chip.n整数値_内部番号 = this.n内部番号SCROLL1to; + chip.dbSCROLL = this.dbScrollSpeed; + + // チップを配置。 + + this.listChip.Add(chip); + this.n内部番号SCROLL1to++; + + //this.nScoreDiff = Convert.ToInt16( strCommandParam ); + //tbScoreDiff.Text = strCommandParam; + } + else if (strCommandName.Equals("GENRE")) + { + //2015.03.28 kairera0467 + //ジャンルの定義。DTXから入力もできるが、tjaからも入力できるようにする。 + //日本語名だと選曲画面でバグが出るので、そこもどうにかしていく予定。 + + if (!string.IsNullOrEmpty(strCommandParam)) + { + this.GENRE = strCommandParam; + } + } + else if (strCommandName.Equals("DEMOSTART")) + { + //2015.04.10 kairera0467 + + if (!string.IsNullOrEmpty(strCommandParam)) + { + int nOFFSETms; + try + { + nOFFSETms = (int)(Convert.ToDouble(strCommandParam) * 1000.0); + } + catch + { + nOFFSETms = 0; + } + + + this.nデモBGMオフセット = nOFFSETms; + } + } + else if (strCommandName.Equals("BGMOVIE")) + { + //2016.02.02 kairera0467 + //背景動画の定義。DTXから入力もできるが、tjaからも入力できるようにする。 + + if (!string.IsNullOrEmpty(strCommandParam)) + { + this.strBGVIDEO_PATH = + CDTXCompanionFileFinder.FindFileName(this.strフォルダ名, strファイル名, strCommandParam); + } + + var avi = new CAVI() + { + n番号 = 1, + strファイル名 = this.strBGVIDEO_PATH, + strコメント文 = "BGMOVIE命令", + }; + + if (this.listAVI.ContainsKey(1)) // 既にリスト中に存在しているなら削除。後のものが有効。 + this.listAVI.Remove(1); + + this.listAVI.Add(1, avi); + + var ds = new CDirectShow() + { + n番号 = 1, + strファイル名 = this.strBGVIDEO_PATH, + strコメント文 = "BGMOVIE命令", + }; + + if (this.listDS.ContainsKey(1)) // 既にリスト中に存在しているなら削除。後のものが有効。 + this.listDS.Remove(1); + + this.listDS.Add(1, ds); + } + else if (strCommandName.Equals("BGIMAGE")) + { + //2016.02.02 kairera0467 + if (!string.IsNullOrEmpty(strCommandParam)) + { + this.strBGIMAGE_PATH = strCommandParam; + } + } + else if (strCommandName.Equals("HIDDENBRANCH")) + { + //2016.04.01 kairera0467 パラメーターは + if (!string.IsNullOrEmpty(strCommandParam)) + { + this.bHIDDENBRANCH = true; + } + } + else if (strCommandName.Equals("LYRICFILE")) + { + if (!string.IsNullOrEmpty(strCommandParam)) + { + string[] strFiles = SplitComma(strCommandParam); + string[] strFilePath = new string[strFiles.Length]; + for (int index = 0; index < strFiles.Length; index++) + { + strFilePath[index] = this.strフォルダ名 + strFiles[index]; + if (File.Exists(strFilePath[index])) + { + try + { + if (TJAPlayer3.r現在のステージ.eステージID == CStage.Eステージ.曲読み込み)//起動時に重たくなってしまう問題の修正用 + this.LyricFileParser(strFilePath[index], index); + this.bLyrics = true; + } + catch + { + Console.WriteLine("lrcファイルNo.{0}の読み込みに失敗しましたが、", index); + Console.WriteLine("処理を続行します。"); + } + } + } + } + } + if (this.nScoreModeTmp == 99) + { + //2017.01.28 DD + this.nScoreModeTmp = TJAPlayer3.ConfigIni.nScoreMode; + } + } + /// + /// 指定した文字が数値かを返すメソッド + /// + /// + /// + public bool bIsNumber(char Char) + { + if ((Char >= '0') && (Char <= '9')) + return true; + else + return false; + } + + /// + /// string型からint型に変換する。 + /// TJAP2から持ってきた。 + /// + private int CharConvertNote(string str) + { + switch (str) + { + case "0": + return 0; + case "1": + return 1; + case "2": + return 2; + case "3": + return 3; + case "4": + return 4; + case "5": + return 5; + case "6": + return 6; + case "7": + return 7; + case "8": + return 8; + case "9": + return 7; //2017.01.30 DD 芋連打を風船連打扱いに + case "A": //2017.08.22 kairera0467 手つなぎ + return 10; + case "B": + return 11; + case "F": + return 15; + default: + return -1; + } + } + + private int strConvertCourse(string str) + { + //2016.08.24 kairera0467 + //正規表現を使っているため、easyでもEASYでもOK。 + + // 小文字大文字区別しない正規表現で仮対応。 (AioiLight) + // 相変わらず原始的なやり方だが、正常に動作した。 + string[] Matchptn = new string[7] { "easy", "normal", "hard", "oni", "edit", "tower", "dan" }; + for (int i = 0; i < Matchptn.Length; i++) + { + if (Regex.IsMatch(str, Matchptn[i], RegexOptions.IgnoreCase)) + { + return i; + } + } + + switch (str) + { + case "0": + return 0; + case "1": + return 1; + case "2": + return 2; + case "3": + return 3; + case "4": + return 4; + case "5": + return 5; + case "6": + return 6; + default: + return 3; + } + } + + /// + /// Lyricファイルのパースもどき + /// 自力で作ったので、うまくパースしてくれないかも + /// + /// lrcファイルのパス + private void LyricFileParser(string strFilePath, int ordnumber)//lrcファイルのパース用 + { + string str = CJudgeTextEncoding.ReadTextFile(strFilePath); + var strSplit後 = str.Split(this.dlmtEnter, StringSplitOptions.RemoveEmptyEntries); + Regex timeRegex = new Regex(@"^(\[)(\d{2})(:)(\d{2})([:.])(\d{2})(\])", RegexOptions.Multiline | RegexOptions.Compiled); + Regex timeRegexO = new Regex(@"^(\[)(\d{2})(:)(\d{2})(\])", RegexOptions.Multiline | RegexOptions.Compiled); + List list; + for (int i = 0; i < strSplit後.Length; i++) + { + list = new List(); + if (!String.IsNullOrEmpty(strSplit後[i])) + { + if (strSplit後[i].StartsWith("[")) + { + Match timestring = timeRegex.Match(strSplit後[i]), timestringO = timeRegexO.Match(strSplit後[i]); + while (timestringO.Success || timestring.Success) + { + long time; + if (timestring.Success) + { + time = Int32.Parse(timestring.Groups[2].Value) * 60000 + Int32.Parse(timestring.Groups[4].Value) * 1000 + Int32.Parse(timestring.Groups[6].Value) * 10; + strSplit後[i] = strSplit後[i].Remove(0, 10); + } + else if (timestringO.Success) + { + time = Int32.Parse(timestringO.Groups[2].Value) * 60000 + Int32.Parse(timestringO.Groups[4].Value) * 1000; + strSplit後[i] = strSplit後[i].Remove(0, 7); + } + else + break; + list.Add(time); + timestring = timeRegex.Match(strSplit後[i]); + timestringO = timeRegexO.Match(strSplit後[i]); + } + strSplit後[i] = strSplit後[i].Replace("\r", "").Replace("\n", ""); + + for (int listindex = 0; listindex < list.Count; listindex++) + { + STLYRIC stlrc; + stlrc.Text = strSplit後[i]; + stlrc.TextTex = this.pf歌詞フォント.DrawPrivateFont(strSplit後[i], TJAPlayer3.Skin.Game_Lyric_ForeColor, TJAPlayer3.Skin.Game_Lyric_BackColor); + stlrc.Time = list[listindex]; + stlrc.index = ordnumber; + this.listLyric2.Add(stlrc); + } + } + } + } + } + + + /// + /// 複素数のパースもどき + /// + private void tParsedComplexNumber(string strScroll, ref double[] dbScroll) + { + bool bFirst = true; //最初の数値か + bool bUse = false; //数値扱い中 + string[] arScroll = new string[2]; + char[] c = strScroll.ToCharArray(); + //1.0-1.0i + for (int i = 0; i < strScroll.Length; i++) + { + if (bFirst) + arScroll[0] += c[i]; + else + arScroll[1] += c[i]; + + //次の文字が'i'なら脱出。 + if (c[i + 1] == 'i') + break; + else if (c[i + 1] == '-' || c[i + 1] == '+') + bFirst = false; + + } + + dbScroll[0] = Convert.ToDouble(arScroll[0]); + dbScroll[1] = Convert.ToDouble(arScroll[1]); + return; + } + + private void tSetSenotes() + { + #region[ list作成 ] + //ひとまずチップだけのリストを作成しておく。 + List list音符のみのリスト; + list音符のみのリスト = new List(); + int nCount = 0; + int dkdkCount = 0; + + foreach (CChip chip in this.listChip) + { + if (chip.nチャンネル番号 >= 0x11 && chip.nチャンネル番号 < 0x18) + { + list音符のみのリスト.Add(chip); + } + } + #endregion + + //時間判定は、「次のチップの発声時刻」から「現在(過去)のチップの発声時刻」で引く必要がある。 + //逆にしてしまうと計算がとてつもないことになるので注意。 + + try + { + //this.tSenotes_Core( list音符のみのリスト ); + this.tSenotes_Core_V2(list音符のみのリスト, true); + } + catch (Exception ex) + { + Trace.TraceError(ex.ToString()); + Trace.TraceError("例外が発生しましたが処理を継続します。 (b67473e4-1930-44f1-b320-4ead5786e74c)"); + } + + + #region[統合前] + //foreach( CChip pChip in list音符のみのリスト ) + //{ + // int dbUnitTime = ( int )( ( ( 60.0 / this.dbNowBPM ) / 4.0 ) * 1000.0 ); + // int nUnit4 = dbUnitTime * 4; + // int nUnit8 = dbUnitTime * 2; + // int nUnit16 = dbUnitTime; + + // if( nCount == 0 ) + // { + // nCount++; + // continue; + // } + + // double db1個前の発生時刻ms = list音符のみのリスト[nCount - 1].n発声時刻ms * 1; + + // if( nCount == 1 ) + // { + // //nCount - 1は一番最初のノーツになる。 + + // if( pChip.n発声時刻ms - list音符のみのリスト[ nCount - 1 ].n発声時刻ms >= nUnit4 ) + // { + // if( list音符のみのリスト[ nCount - 1 ].nチャンネル番号 == 0x93 ) + // list音符のみのリスト[ nCount - 1 ].nSenote = 0; + // else if( list音符のみのリスト[ nCount - 1 ].nチャンネル番号 == 0x94 ) + // list音符のみのリスト[ nCount - 1 ].nSenote = 3; + + // if( list音符のみのリスト[ nCount + 1 ].n発声時刻ms - pChip.n発声時刻ms < nUnit4 ) + // { + // if( list音符のみのリスト[ nCount + 1 ].n発声時刻ms - pChip.n発声時刻ms < nUnit8 ) + // { + // //16分なら「ド」 + // pChip.nSenote = 1; + // } + // else + // { + // if( dkdkCount == 0 ) + // { + // pChip.nSenote = 1; + // dkdkCount++; + // } + // else if( dkdkCount == 1 ) + // { + // pChip.nSenote = 2; + // dkdkCount = 0; + // } + + // } + // } + // else + // { + // //次も4分なら「ドン」か「カッ」 + // if( pChip.nチャンネル番号 == 0x93 ) + // { + // pChip.nSenote = 0; + // } + // else if( pChip.nチャンネル番号 == 0x94 ) + // { + // pChip.nSenote = 3; + // } + // } + // } + // else if( pChip.n発声時刻ms - list音符のみのリスト[ nCount - 1 ].n発声時刻ms <= nUnit4 && pChip.n発声時刻ms - list音符のみのリスト[ nCount - 1 ].n発声時刻ms >= nUnit8 ) + // { + // if( list音符のみのリスト[ nCount - 1 ].nチャンネル番号 == 0x93 ) + // list音符のみのリスト[ nCount - 1 ].nSenote = 1; + // else if( list音符のみのリスト[ nCount - 1 ].nチャンネル番号 == 0x94 ) + // list音符のみのリスト[ nCount - 1 ].nSenote = 4; + + // if( pChip.nチャンネル番号 == 0x93 ) + // { + // pChip.nSenote = 1; + // } + // else if( pChip.nチャンネル番号 == 0x94 ) + // { + // pChip.nSenote = 4; + // } + // } + // else if( pChip.n発声時刻ms - list音符のみのリスト[ nCount - 1 ].n発声時刻ms < nUnit8 ) + // { + // if( list音符のみのリスト[ nCount - 1 ].nチャンネル番号 == 0x93 ) + // list音符のみのリスト[ nCount - 1 ].nSenote = 1; + // else if( list音符のみのリスト[ nCount - 1 ].nチャンネル番号 == 0x94 ) + // list音符のみのリスト[ nCount - 1 ].nSenote = 4; + + // if( pChip.nチャンネル番号 == 0x93 ) + // { + // pChip.nSenote = 1; + // } + // else if( pChip.nチャンネル番号 == 0x94 ) + // { + // pChip.nSenote = 4; + // } + // } + + // nCount++; + // continue; + // } + + // double db2個前の発声時刻ms = list音符のみのリスト[ nCount - 2 ].n発声時刻ms * 1; + + // #region[新しいやつ] + // if( nCount + 1 >= list音符のみのリスト.Count ) + // break; + + // if( pChip.n発声時刻ms - list音符のみのリスト[ nCount - 1 ].n発声時刻ms >= nUnit4 ) + // { + // if( pChip.nチャンネル番号 == 0x93 ) + // { + // pChip.nSenote = 0; + // } + // else if( pChip.nチャンネル番号 == 0x94 ) + // { + // pChip.nSenote = 3; + // } + + // if( list音符のみのリスト[ nCount + 1 ].n発声時刻ms - pChip.n発声時刻ms <= nUnit4 ) + // { + // if( pChip.nチャンネル番号 == 0x93 ) + // pChip.nSenote = 1; + // else if( pChip.nチャンネル番号 == 0x94 ) + // pChip.nSenote = 4; + // } + // } + // else if( pChip.n発声時刻ms - list音符のみのリスト[ nCount - 1 ].n発声時刻ms < nUnit4 && pChip.n発声時刻ms - list音符のみのリスト[ nCount - 1 ].n発声時刻ms >= nUnit8 ) + // { + // if( pChip.nチャンネル番号 == 0x93 ) + // { + // pChip.nSenote = 1; + // } + // else if( pChip.nチャンネル番号 == 0x94 ) + // { + // pChip.nSenote = 4; + // } + + // if( list音符のみのリスト[ nCount + 1 ].n発声時刻ms - pChip.n発声時刻ms <= nUnit4 ) + // { + // if( pChip.nチャンネル番号 == 0x93 ) + // pChip.nSenote = 0; + // else if( pChip.nチャンネル番号 == 0x94 ) + // pChip.nSenote = 3; + + // if( list音符のみのリスト[ nCount + 2 ].n発声時刻ms - list音符のみのリスト[ nCount + 1 ].n発声時刻ms >= nUnit8 ) + // { + // if( pChip.nチャンネル番号 == 0x93 ) + // pChip.nSenote = 1; + // else if( pChip.nチャンネル番号 == 0x94 ) + // pChip.nSenote = 4; + // } + // else if( list音符のみのリスト[ nCount + 2 ].n発声時刻ms - list音符のみのリスト[ nCount + 1 ].n発声時刻ms < nUnit8 ) + // { + // if( pChip.nチャンネル番号 == 0x93 ) + // pChip.nSenote = 1; + // else if( pChip.nチャンネル番号 == 0x94 ) + // pChip.nSenote = 4; + // } + + // } + // else + // { + // if( pChip.nチャンネル番号 == 0x93 ) + // pChip.nSenote = 0; + // else if( pChip.nチャンネル番号 == 0x94 ) + // pChip.nSenote = 3; + // } + // } + // else if( pChip.n発声時刻ms - list音符のみのリスト[ nCount - 1 ].n発声時刻ms < nUnit8 ) //8分以下 + // { + // if( pChip.nチャンネル番号 == 0x93 ) + // { + // pChip.nSenote = 1; + // } + // else if( pChip.nチャンネル番号 == 0x94 ) + // { + // pChip.nSenote = 4; + // } + + // //後ろが4分 + // try + // { + // if( nCount + 1 >= list音符のみのリスト.Count ) + // break; + + // if( list音符のみのリスト[ nCount + 1 ].n発声時刻ms - pChip.n発声時刻ms >= nUnit8 ) //分岐があるとここがバグるっぽい?(Indexエラー) + // { + // if( pChip.nチャンネル番号 == 0x93 ) + // { + // pChip.nSenote = 0; + // } + // else if( pChip.nチャンネル番号 == 0x94 ) + // { + // pChip.nSenote = 3; + // } + // } + // } + // catch( Exception ex ) + // { + + // } + + + // } + // #endregion + + // #region[古いやつ] + // ////2つ前と1つ前のチップのSenoteを決めていく。 + // ////連打、大音符などはチップ配置の際に決めます。 + // //if (( db1個前の発生時刻ms - db2個前の発声時刻ms ) >= nUnit4) + // //{ + // // //2つ前の音符と1つ前の音符の間が4分以上でかつ、その音符がドンなら2つ前のSenoteは「ドン」で確定。 + // // //同時にdkdkをリセット + // // dkdkCount = false; + // // if( list音符のみのリスト[nCount - 2].nチャンネル番号 == 0x93 ) + // // list音符のみのリスト[nCount - 2].nSenote = 0; + // // else if( list音符のみのリスト[nCount - 2].nチャンネル番号 == 0x94 ) + // // list音符のみのリスト[nCount - 2].nSenote = 3; + + // // if( ( pChip.n発声時刻ms - db1個前の発生時刻ms ) >= nUnit4 ) + // // { + // // //1つ前の音符と現在の音符の間が4分以上かつ、その音符がドンなら1つ前の音符は「ドン」で確定。 + // // if( list音符のみのリスト[nCount - 1].nチャンネル番号 == 0x93 ) + // // list音符のみのリスト[nCount - 1].nSenote = 0; + // // else if( list音符のみのリスト[nCount - 1].nチャンネル番号 == 0x94 ) + // // list音符のみのリスト[nCount - 1].nSenote = 3; + // // } + // // else if( ( pChip.n発声時刻ms - db1個前の発生時刻ms ) <= nUnit4 ) + // // { + // // //4分 + // // if( ( pChip.n発声時刻ms - db1個前の発生時刻ms ) >= nUnit8 ) + // // { + // // dkdkCount = false; + // // //1つ前の音符と現在の音符の間が8分以内で16分以上でかつ、その音符が赤なら1つ前の音符は「ド」で確定。 + // // if( list音符のみのリスト[ nCount - 1 ].nチャンネル番号 == 0x94 ) + // // list音符のみのリスト[ nCount - 1 ].nSenote = 2; + // // else if( list音符のみのリスト[ nCount - 1 ].nチャンネル番号 == 0x94 ) + // // list音符のみのリスト[ nCount - 1 ].nSenote = 4; + // // } + // // else if( ( db1個前の発生時刻ms - db2個前の発声時刻ms ) <= nUnit8 ) + // // { + // // dkdkCount = false; + // // if( list音符のみのリスト[ nCount - 2 ].nチャンネル番号 == 0x93 ) + // // { + // // list音符のみのリスト[ nCount - 2 ].nSenote = 1; + + // // //ドコドン + // // if( list音符のみのリスト[ nCount - 1 ].nチャンネル番号 == 0x93 ) + // // { + // // if( pChip.nチャンネル番号 == 0x93 ) + // // pChip.nSenote = dkdkCount ? 2 : 1; + // // if( dkdkCount == false ) + // // dkdkCount = true; + // // else + // // dkdkCount = false; + // // } + // // } + // // else if( list音符のみのリスト[ nCount - 2 ].nチャンネル番号 == 0x94 ) + // // list音符のみのリスト[ nCount - 2 ].nSenote = 4; + // // } + + // // } + // //} + // //else if ( ( db1個前の発生時刻ms - db2個前の発声時刻ms ) <= nUnit4 && ( db1個前の発生時刻ms - db2個前の発声時刻ms ) >= nUnit8) + // //{ + // // //2つ前の音符と1つ前の音符の間が8分以上でかつ、16分以内 + + // // if( ( db1個前の発生時刻ms - db2個前の発声時刻ms ) >= nUnit8 && ( db1個前の発生時刻ms - db2個前の発声時刻ms ) > nUnit16 ) + // // { + // // //2つ前の音符と1つ前の音符の間が8分以上でかつ、16分以内なら「ド」 + // // if( list音符のみのリスト[ nCount - 2 ].nチャンネル番号 == 0x93 ) + // // { + // // list音符のみのリスト[ nCount - 2 ].nSenote = 1; + // // } + // // else if( list音符のみのリスト[ nCount - 2 ].nチャンネル番号 == 0x94 ) + // // { + // // list音符のみのリスト[ nCount - 2 ].nSenote = 4; + // // } + // // } + // // else if( ( db1個前の発生時刻ms - db2個前の発声時刻ms ) < nUnit8 ) + // // { + // // //2つ前の音符と1つ前の音符の間が16分以内なら「ド」で確定 + // // if( list音符のみのリスト[ nCount - 2 ].nチャンネル番号 == 0x93 ) + // // { + // // list音符のみのリスト[ nCount - 2 ].nSenote = 1; + // // } + // // else if( list音符のみのリスト[ nCount - 2 ].nチャンネル番号 == 0x94 ) + // // list音符のみのリスト[ nCount - 2 ].nSenote = 4; + // // } + + // // if( ( pChip.n発声時刻ms - db1個前の発生時刻ms ) >= nUnit16 ) + // // { + // // if( ( pChip.n発声時刻ms - db1個前の発生時刻ms ) >= nUnit8 ) + // // { + // // if( list音符のみのリスト[ nCount - 2 ].nチャンネル番号 == 0x93 ) + // // { + // // list音符のみのリスト[ nCount - 1 ].nSenote = 0; + // // } + // // else if( list音符のみのリスト[ nCount - 2 ].nチャンネル番号 == 0x94 ) + // // list音符のみのリスト[ nCount - 1 ].nSenote = 3; + // // } + // // } + // //} + // //else if ( ( db1個前の発生時刻ms - db2個前の発声時刻ms ) >= nUnit16 && ( db1個前の発生時刻ms - db2個前の発声時刻ms ) <= nUnit8 ) + // //{ + // // //2つ前の音符と1つ前の音符の間が16分以上 + // // if( list音符のみのリスト[ nCount - 2 ].nチャンネル番号 == 0x93 ) + // // { + // // list音符のみのリスト[ nCount - 2 ].nSenote = 1; + // // } + // // else if( list音符のみのリスト[ nCount - 2 ].nチャンネル番号 == 0x94 ) + // // list音符のみのリスト[ nCount - 2 ].nSenote = 4; + + // // if( ( pChip.n発声時刻ms - db1個前の発生時刻ms ) >= nUnit8 ) + // // { + // // if( list音符のみのリスト[ nCount - 2 ].nチャンネル番号 == 0x93 ) + // // { + // // list音符のみのリスト[ nCount - 1 ].nSenote = 0; + // // } + // // else if( list音符のみのリスト[ nCount - 2 ].nチャンネル番号 == 0x94 ) + // // list音符のみのリスト[ nCount - 1 ].nSenote = 3; + // // } + + + // //} + // #endregion + + // nCount++; + //} + #endregion + + + } + + /// + /// 譜面分岐がある場合はこちらを使う + /// + private void tSetSenotes_branch() + { + #region[ list作成 ] + //ひとまずチップだけのリストを作成しておく。 + List list音符のみのリスト; + List list普通譜面のみのリスト; + List list玄人譜面のみのリスト; + List list達人譜面のみのリスト; + list音符のみのリスト = new List(); + list普通譜面のみのリスト = new List(); + list玄人譜面のみのリスト = new List(); + list達人譜面のみのリスト = new List(); + int nCount = 0; + int dkdkCount = 0; + + foreach (CChip chip in this.listChip) + { + if (chip.nチャンネル番号 >= 0x11 && chip.nチャンネル番号 < 0x18) + { + list音符のみのリスト.Add(chip); + + switch (chip.nコース) + { + case ECourse.eNormal: + list普通譜面のみのリスト.Add(chip); + break; + case ECourse.eExpert: + list玄人譜面のみのリスト.Add(chip); + break; + case ECourse.eMaster: + list達人譜面のみのリスト.Add(chip); + break; + } + } + } + #endregion + + //forで処理。 + for (int n = 0; n < 3; n++) + { + switch (n) + { + case 0: + list音符のみのリスト = list普通譜面のみのリスト; + break; + case 1: + list音符のみのリスト = list玄人譜面のみのリスト; + break; + case 2: + list音符のみのリスト = list達人譜面のみのリスト; + break; + } + + //this.tSenotes_Core( list音符のみのリスト ); + this.tSenotes_Core_V2(list音符のみのリスト, true); + } + + } + + /// + /// コア部分。譜面分岐時の処理実装にあたって分離。 + /// + private void tSenotes_Core(List list音符のみのリスト) + { + int nCount = 0; + int dkdkCount = 0; + + foreach (CChip pChip in list音符のみのリスト) + { + int dbUnitTime = (int)(((60.0 / pChip.dbBPM) / 4.0) * 1000.0); + int nUnit4 = dbUnitTime * 4; + int nUnit6 = dbUnitTime * 3; + int nUnit8 = dbUnitTime * 2; + int nUnit16 = dbUnitTime; + + float fUnitTime = (((60.0f / (float)pChip.dbBPM) / 4.0f) * 1000.0f); + //float fUnitTime = (float)Math.Round( ( ( ( 60.0f / (float)pChip.dbBPM ) / 4.0f ) * 1000.0f ), 0 ); + float fUnit4 = fUnitTime * 4.0f; + float fUnit8 = fUnitTime * 2.0f; + float fUnit16 = fUnitTime; + + if (pChip.dbBPM < 120) + { + nUnit4 = (dbUnitTime * 4) / 2; + nUnit8 = (dbUnitTime * 2) / 2; + nUnit16 = dbUnitTime / 2; + + fUnit4 = fUnitTime * 4.0f; + fUnit8 = fUnitTime * 2.0f; + fUnit16 = fUnitTime; + } + + if (nCount == 0) + { + nCount++; + continue; + } + + double db1個前の発生時刻ms = list音符のみのリスト[nCount - 1].n発声時刻ms * 1; + + #region[ float ] + /* + if( nCount == 1 ) + { + //nCount - 1は一番最初のノーツになる。 + + if( pChip.f発声時刻ms - list音符のみのリスト[ nCount - 1 ].f発声時刻ms >= fUnit4 ) + { + //2番目のノーツと1番目のノーツの間隔が4分かそれ以上 + if( list音符のみのリスト[ nCount - 1 ].nチャンネル番号 == 0x93 ) + list音符のみのリスト[ nCount - 1 ].nSenote = 0; + else if( list音符のみのリスト[ nCount - 1 ].nチャンネル番号 == 0x94 ) + list音符のみのリスト[ nCount - 1 ].nSenote = 3; + + if( list音符のみのリスト[ nCount + 1 ].f発声時刻ms - pChip.f発声時刻ms < fUnit4 ) + { + if( list音符のみのリスト[ nCount + 1 ].f発声時刻ms - pChip.f発声時刻ms < fUnit8 ) + { + //16分なら「ド」 + if( pChip.nチャンネル番号 == 0x93 ) + pChip.nSenote = 1; + } + else + { + if (pChip.nチャンネル番号 != 0x93) + break; + + if( dkdkCount == 0 ) + { + pChip.nSenote = 1; + dkdkCount++; + } + else if( dkdkCount == 1 ) + { + pChip.nSenote = 2; + dkdkCount = 0; + } + + } + } + else + { + //次も4分なら「ドン」か「カッ」 + if( pChip.nチャンネル番号 == 0x93 ) + { + pChip.nSenote = 0; + } + else if( pChip.nチャンネル番号 == 0x94 ) + { + pChip.nSenote = 3; + } + } + } + else if( pChip.f発声時刻ms - list音符のみのリスト[ nCount - 1 ].f発声時刻ms < fUnit4 && pChip.f発声時刻ms - list音符のみのリスト[ nCount - 1 ].f発声時刻ms > fUnit16 ) + { + //2番目のチップと1番目のチップの間隔が4分以下でかつ16分以上 + if( list音符のみのリスト[ nCount - 1 ].nチャンネル番号 == 0x93 ) + list音符のみのリスト[ nCount - 1 ].nSenote = 1; + else if( list音符のみのリスト[ nCount - 1 ].nチャンネル番号 == 0x94 ) + list音符のみのリスト[ nCount - 1 ].nSenote = 4; + + + + if( pChip.nチャンネル番号 == 0x93 ) + { + pChip.nSenote = 1; + } + else if( pChip.nチャンネル番号 == 0x94 ) + { + pChip.nSenote = 4; + } + // + //if (list音符のみのリスト[nCount - 1].nチャンネル番号 == 0x93) + // list音符のみのリスト[nCount - 1].nSenote = 0; + //else if (list音符のみのリスト[nCount - 1].nチャンネル番号 == 0x94) + // list音符のみのリスト[nCount - 1].nSenote = 3; + + if (list音符のみのリスト[ nCount + 1 ].f発声時刻ms - pChip.f発声時刻ms >= fUnit4) + { + //3番目のチップと2番目のチップの間隔が4分以上 + if( pChip.nチャンネル番号 == 0x93 ) + { + pChip.nSenote = 0; + } + else if( pChip.nチャンネル番号 == 0x94 ) + { + pChip.nSenote = 3; + } + } + } + else if( pChip.f発声時刻ms - list音符のみのリスト[ nCount - 1 ].f発声時刻ms <= fUnit16 ) + { + //2番目のチップと1番目のチップの間隔が16分かそれ以下 + if( list音符のみのリスト[ nCount - 1 ].nチャンネル番号 == 0x93 ) + list音符のみのリスト[ nCount - 1 ].nSenote = 1; + else if( list音符のみのリスト[ nCount - 1 ].nチャンネル番号 == 0x94 ) + list音符のみのリスト[ nCount - 1 ].nSenote = 4; + + if (pChip.nチャンネル番号 == 0x93) + { + pChip.nSenote = 1; + } + else if (pChip.nチャンネル番号 == 0x94) + { + pChip.nSenote = 4; + } + + //1番目のチップが0x93 + if( list音符のみのリスト[ nCount - 1 ].nチャンネル番号 == 0x93 ) + { + //3番目のチップと2番目のチップの間隔が16分 + if( list音符のみのリスト[ nCount + 1 ].f発声時刻ms - pChip.f発声時刻ms == fUnit16 ) + { + if( list音符のみのリスト[ nCount + 1 ].nチャンネル番号 == 0x93 ) + { + pChip.nSenote = 2; + } + } + } + + + } + + nCount++; + continue; + } + + double db2個前の発声時刻ms = list音符のみのリスト[ nCount - 2 ].n発声時刻ms * 1; + + #region[新しいやつ] + if( pChip.f発声時刻ms - list音符のみのリスト[ nCount - 1 ].f発声時刻ms >= fUnit4 ) + { + //現在のチップと1つ前のチップの間隔が4分以上 + dkdkCount = 0; + if( pChip.nチャンネル番号 == 0x93 ) + { + pChip.nSenote = 0; + //break; + } + else if( pChip.nチャンネル番号 == 0x94 ) + { + pChip.nSenote = 3; + } + + if( nCount + 1 >= list音符のみのリスト.Count ) + break; + + //次のチップと現在のチップの間が4分以下 + if( list音符のみのリスト[ nCount + 1 ].f発声時刻ms - pChip.f発声時刻ms < fUnit4 ) + { + if( pChip.nチャンネル番号 == 0x93 ) + pChip.nSenote = 1; + else if( pChip.nチャンネル番号 == 0x94 ) + pChip.nSenote = 4; + } + } + else if( pChip.f発声時刻ms - list音符のみのリスト[ nCount - 1 ].f発声時刻ms < fUnit4 && pChip.f発声時刻ms - list音符のみのリスト[ nCount - 1 ].f発声時刻ms > fUnit16 ) + { + //現在のチップと1つ前のチップの間隔が4分以下かつ16分以上 + dkdkCount = 0; + if( pChip.nチャンネル番号 == 0x93 ) + { + pChip.nSenote = 1; + } + else if( pChip.nチャンネル番号 == 0x94 ) + { + pChip.nSenote = 4; + } + + if( nCount + 1 >= list音符のみのリスト.Count ) + break; + + + if( list音符のみのリスト[ nCount + 1 ].f発声時刻ms - pChip.f発声時刻ms >= fUnit4 ) + { + //次のチップと現在のチップの間隔が4分以上 + if( pChip.nチャンネル番号 == 0x93 ) + pChip.nSenote = 0; + else if( pChip.nチャンネル番号 == 0x94 ) + pChip.nSenote = 3; + } + else if( list音符のみのリスト[ nCount + 1 ].f発声時刻ms - pChip.f発声時刻ms < fUnit4 && list音符のみのリスト[ nCount + 1 ].f発声時刻ms - pChip.f発声時刻ms > fUnit16 ) + { + //次のチップと現在のチップの間隔が4分以下 + if( pChip.nチャンネル番号 == 0x93 ) + pChip.nSenote = 1; + else if( pChip.nチャンネル番号 == 0x94 ) + pChip.nSenote = 4; + + if( nCount + 2 >= list音符のみのリスト.Count ) + break; + + //次のチップが0x93 + //if( list音符のみのリスト[ nCount + 1 ].nチャンネル番号 == 0x93 ) + //{ + // if( list音符のみのリスト[ nCount + 2 ].n発声時刻ms - list音符のみのリスト[ nCount + 1 ].n発声時刻ms < nUnit8 ) + // { + // list音符のみのリスト[ nCount + 1 ].nSenote = 2; + // } + //} + } + else if( list音符のみのリスト[ nCount + 1 ].f発声時刻ms - pChip.f発声時刻ms <= fUnit16 ) + { + //次のチップと現在のチップの間隔が16分以下 + //そうなると1つ前のチップは「ドン」か「カッ」になる + //if( list音符のみのリスト[ nCount - 1 ].nチャンネル番号 == 0x93 ) + // list音符のみのリスト[ nCount - 1 ].nSenote = 0; + //else if( list音符のみのリスト[ nCount - 1 ].nチャンネル番号 == 0x94 ) + // list音符のみのリスト[ nCount - 1 ].nSenote = 0; + } + } + else if( pChip.f発声時刻ms - list音符のみのリスト[ nCount - 1 ].f発声時刻ms <= fUnit16 ) + { + //現在のノーツと1つ前のノーツの間隔が16分かそれ以下 + if( pChip.nチャンネル番号 == 0x93 ) + { + pChip.nSenote = 1; + } + else if( pChip.nチャンネル番号 == 0x94 ) + { + pChip.nSenote = 4; + } + + + try + { + if( nCount + 1 >= list音符のみのリスト.Count ) //一番最後のノーツだった時のエラー対策。 + break; + + //後ろが4分 + if( list音符のみのリスト[ nCount + 1 ].f発声時刻ms - pChip.f発声時刻ms >= fUnit4 ) + { + dkdkCount = 0; + if( pChip.nチャンネル番号 == 0x93 ) + { + pChip.nSenote = 0; + } + else if( pChip.nチャンネル番号 == 0x94 ) + { + pChip.nSenote = 3; + } + } + else if( list音符のみのリスト[ nCount + 1 ].f発声時刻ms - pChip.f発声時刻ms <= fUnit8 && list音符のみのリスト[ nCount + 1 ].f発声時刻ms - pChip.f発声時刻ms > fUnit16 ) + { + //次のノーツと現在のノーツの間隔が8分かそれ以下でかつ16分以上 + dkdkCount = 0; + if( pChip.nチャンネル番号 == 0x93 ) + { + pChip.nSenote = 0; + } + else if( pChip.nチャンネル番号 == 0x94 ) + { + pChip.nSenote = 3; + } + } + else if( list音符のみのリスト[ nCount + 1 ].f発声時刻ms - pChip.f発声時刻ms <= fUnit16 ) + { + if( pChip.nチャンネル番号 == 0x93 ) + { + pChip.nSenote = 1; + + if( nCount + 2 >= list音符のみのリスト.Count ) + break; + + if( pChip.f発声時刻ms - list音符のみのリスト[ nCount - 1 ].f発声時刻ms == fUnit16 ) + { + //1つ前のノーツと現在のノーツの間隔が16分 + if( list音符のみのリスト[ nCount - 1 ].nチャンネル番号 == 0x93 ) + { + //チャンネル番号が0x93 + if( dkdkCount == 0 ) + { + pChip.nSenote = 2; + dkdkCount = 1; + } + else + { + pChip.nSenote = 1; + dkdkCount = 0; + } + } + + } + else + { + if (pChip.nチャンネル番号 == 0x93) + pChip.nSenote = 1; + else + pChip.nSenote = 4; + } + } + else if( pChip.nチャンネル番号 == 0x94 ) + { + pChip.nSenote = 4; + } + } + } + catch( Exception ex ) + { + + } + + + } + #endregion + */ + #endregion + + #region[ ミリ秒 ] + + if (nCount == 1) + { + #region[ 一番最初 ] + //nCount - 1は一番最初のノーツになる。 + + if (pChip.n発声時刻ms - list音符のみのリスト[0].n発声時刻ms >= nUnit4) + { + //2番目のノーツと1番目のノーツの間隔が4分かそれ以上 + if (list音符のみのリスト[0].nチャンネル番号 == 0x93) + list音符のみのリスト[0].nSenote = 0; + else if (list音符のみのリスト[0].nチャンネル番号 == 0x94) + list音符のみのリスト[0].nSenote = 3; + + if (list音符のみのリスト[nCount + 1].n発声時刻ms - pChip.n発声時刻ms < nUnit4) + { + if (list音符のみのリスト[nCount + 1].n発声時刻ms - pChip.n発声時刻ms < nUnit8) + { + + + + //16分なら「ド」 + if (pChip.nチャンネル番号 == 0x93) + pChip.nSenote = 1; + } + else + { + if (pChip.nチャンネル番号 == 0x93) + { + pChip.nSenote = 0; + } + else if (pChip.nチャンネル番号 == 0x94) + { + pChip.nSenote = 3; + } + } + } + else + { + //次も4分なら「ドン」か「カッ」 + if (pChip.nチャンネル番号 == 0x93) + { + pChip.nSenote = 0; + } + else if (pChip.nチャンネル番号 == 0x94) + { + pChip.nSenote = 3; + } + } + } + else if (pChip.n発声時刻ms - list音符のみのリスト[nCount - 1].n発声時刻ms < nUnit4 && pChip.n発声時刻ms - list音符のみのリスト[nCount - 1].n発声時刻ms > nUnit16) + { + //2番目のチップと1番目のチップの間隔が4分以下でかつ16分以上 + if (list音符のみのリスト[0].nチャンネル番号 == 0x93) + list音符のみのリスト[0].nSenote = 1; + else if (list音符のみのリスト[0].nチャンネル番号 == 0x94) + list音符のみのリスト[0].nSenote = 4; + + + + if (pChip.nチャンネル番号 == 0x93) + { + pChip.nSenote = 1; + } + else if (pChip.nチャンネル番号 == 0x94) + { + pChip.nSenote = 4; + } + + if (list音符のみのリスト[nCount + 1].n発声時刻ms - pChip.n発声時刻ms >= nUnit4) + { + //3番目のチップと2番目のチップの間隔が4分以上 + if (pChip.nチャンネル番号 == 0x93) + { + pChip.nSenote = 0; + } + else if (pChip.nチャンネル番号 == 0x94) + { + pChip.nSenote = 3; + } + } + if (list音符のみのリスト[nCount + 1].n発声時刻ms - pChip.n発声時刻ms < nUnit4) + { + //3番目のチップと2番目のチップの間隔が4分以下 + if (list音符のみのリスト[nCount + 1].n発声時刻ms - pChip.n発声時刻ms <= nUnit8) + { + + if (list音符のみのリスト[nCount + 1].n発声時刻ms - pChip.n発声時刻ms < nUnit8) + { + if (list音符のみのリスト[0].nチャンネル番号 == 0x93) + list音符のみのリスト[0].nSenote = 0; + else if (list音符のみのリスト[0].nチャンネル番号 == 0x94) + list音符のみのリスト[0].nSenote = 3; + } + + + + + //16分なら「ド」 + if (pChip.nチャンネル番号 == 0x93) + pChip.nSenote = 1; + } + else + { + if (pChip.nチャンネル番号 == 0x93) + { + pChip.nSenote = 1; + } + else if (pChip.nチャンネル番号 == 0x94) + { + pChip.nSenote = 4; + } + } + } + } + else if (pChip.n発声時刻ms - list音符のみのリスト[nCount - 1].n発声時刻ms <= nUnit16) + { + //2番目のチップと1番目のチップの間隔が16分かそれ以下 + if (list音符のみのリスト[nCount - 1].nチャンネル番号 == 0x93) + list音符のみのリスト[nCount - 1].nSenote = 1; + else if (list音符のみのリスト[nCount - 1].nチャンネル番号 == 0x94) + list音符のみのリスト[nCount - 1].nSenote = 4; + + if (pChip.nチャンネル番号 == 0x93) + { + pChip.nSenote = 1; + } + else if (pChip.nチャンネル番号 == 0x94) + { + pChip.nSenote = 4; + } + + //1番目のチップが0x93 + if (list音符のみのリスト[nCount - 1].nチャンネル番号 == 0x93) + { + //3番目のチップと2番目のチップの間隔が16分 + if (list音符のみのリスト[nCount + 1].n発声時刻ms - pChip.n発声時刻ms == nUnit16) + { + if (list音符のみのリスト[nCount + 1].nチャンネル番号 == 0x93) + { + pChip.nSenote = 2; + } + } + } + + + } + + nCount++; + continue; + + #endregion + } + + double db2個前の発声時刻ms = list音符のみのリスト[nCount - 2].n発声時刻ms * 1; + + #region[新しいやつ] + if (pChip.n発声時刻ms - list音符のみのリスト[nCount - 1].n発声時刻ms >= nUnit4) + { + //現在のチップと1つ前のチップの間隔が4分以上 + dkdkCount = 0; + if (pChip.nチャンネル番号 == 0x93) + { + pChip.nSenote = 0; + } + else if (pChip.nチャンネル番号 == 0x94) + { + pChip.nSenote = 3; + } + + if (nCount + 1 >= list音符のみのリスト.Count) + break; + + //次のチップと現在のチップの間が4分以下 + if (list音符のみのリスト[nCount + 1].n発声時刻ms - pChip.n発声時刻ms < nUnit6) + { + if (pChip.nチャンネル番号 == 0x93) + pChip.nSenote = 1; + else if (pChip.nチャンネル番号 == 0x94) + pChip.nSenote = 4; + + //12、16分があるなら「ドン」か「カッ」に変える + + if (list音符のみのリスト[nCount + 2].n発声時刻ms - list音符のみのリスト[nCount + 1].n発声時刻ms <= nUnit16) + { + if (pChip.nチャンネル番号 == 0x93) + pChip.nSenote = 1; + else if (pChip.nチャンネル番号 == 0x94) + pChip.nSenote = 4; + } + if (list音符のみのリスト[nCount + 2].n発声時刻ms - list音符のみのリスト[nCount + 1].n発声時刻ms < nUnit8) + { + if (pChip.nチャンネル番号 == 0x93) + pChip.nSenote = 0; + else if (pChip.nチャンネル番号 == 0x94) + pChip.nSenote = 3; + } + } + //else + //{ + // if( pChip.nチャンネル番号 == 0x93 ) + // { + // pChip.nSenote = 0; + // } + // else if( pChip.nチャンネル番号 == 0x94 ) + // { + // pChip.nSenote = 3; + // } + //} + } + else if (pChip.n発声時刻ms - list音符のみのリスト[nCount - 1].n発声時刻ms < nUnit4 && pChip.n発声時刻ms - list音符のみのリスト[nCount - 1].n発声時刻ms > nUnit16) + { + //現在のチップと1つ前のチップの間隔が4分以下かつ16分以上 + dkdkCount = 0; + if (pChip.nチャンネル番号 == 0x93) + { + pChip.nSenote = 1; + } + else if (pChip.nチャンネル番号 == 0x94) + { + pChip.nSenote = 4; + } + + if (nCount + 1 >= list音符のみのリスト.Count) + break; + + + if (list音符のみのリスト[nCount + 1].n発声時刻ms - pChip.n発声時刻ms >= nUnit4) + { + //次のチップと現在のチップの間隔が4分以上 + if (pChip.nチャンネル番号 == 0x93) + pChip.nSenote = 0; + else if (pChip.nチャンネル番号 == 0x94) + pChip.nSenote = 3; + } + else if (list音符のみのリスト[nCount + 1].n発声時刻ms - pChip.n発声時刻ms < nUnit4 && list音符のみのリスト[nCount + 1].n発声時刻ms - pChip.n発声時刻ms > nUnit16) + { + //次のチップと現在のチップの間隔が4分以下 + if (pChip.nチャンネル番号 == 0x93) + pChip.nSenote = 1; + else if (pChip.nチャンネル番号 == 0x94) + pChip.nSenote = 4; + + if (nCount + 2 >= list音符のみのリスト.Count) + break; + + //次のチップが0x93 + //if( list音符のみのリスト[ nCount + 1 ].nチャンネル番号 == 0x93 ) + //{ + // if( list音符のみのリスト[ nCount + 2 ].n発声時刻ms - list音符のみのリスト[ nCount + 1 ].n発声時刻ms < nUnit8 ) + // { + // list音符のみのリスト[ nCount + 1 ].nSenote = 2; + // } + //} + + //12、16分があるなら「ドン」か「カッ」に変える + if (list音符のみのリスト[nCount + 2].n発声時刻ms - list音符のみのリスト[nCount + 1].n発声時刻ms < nUnit8) + { + if (pChip.nチャンネル番号 == 0x93) + pChip.nSenote = 0; + else if (pChip.nチャンネル番号 == 0x94) + pChip.nSenote = 3; + + if (list音符のみのリスト[nCount - 1].n発声時刻ms - list音符のみのリスト[nCount - 2].n発声時刻ms >= nUnit8) + { + if (pChip.nチャンネル番号 == 0x93) + pChip.nSenote = 1; + else if (pChip.nチャンネル番号 == 0x94) + pChip.nSenote = 4; + } + + + } + } + else if (list音符のみのリスト[nCount + 1].n発声時刻ms - pChip.n発声時刻ms <= nUnit16) + { + //次のチップと現在のチップの間隔が16分以下 + //そうなると1つ前のチップは「ドン」か「カッ」になる + //if( list音符のみのリスト[ nCount - 1 ].nチャンネル番号 == 0x93 ) + // list音符のみのリスト[ nCount - 1 ].nSenote = 0; + //else if( list音符のみのリスト[ nCount - 1 ].nチャンネル番号 == 0x94 ) + // list音符のみのリスト[ nCount - 1 ].nSenote = 3; + } + else + { + if (pChip.nチャンネル番号 == 0x93) + pChip.nSenote = 0; + else if (pChip.nチャンネル番号 == 0x94) + pChip.nSenote = 3; + } + } + else if (pChip.n発声時刻ms - list音符のみのリスト[nCount - 1].n発声時刻ms <= nUnit16) + { + //現在のノーツと1つ前のノーツの間隔が16分かそれ以下 + if (pChip.nチャンネル番号 == 0x93) + { + pChip.nSenote = 1; + } + else if (pChip.nチャンネル番号 == 0x94) + { + pChip.nSenote = 4; + } + + + try + { + if (nCount + 1 >= list音符のみのリスト.Count) //一番最後のノーツだった時のエラー対策。 + break; + + //後ろが4分 + if (list音符のみのリスト[nCount + 1].n発声時刻ms - pChip.n発声時刻ms >= nUnit4) + { + dkdkCount = 0; + if (pChip.nチャンネル番号 == 0x93) + { + pChip.nSenote = 0; + } + else if (pChip.nチャンネル番号 == 0x94) + { + pChip.nSenote = 3; + } + } + else if (list音符のみのリスト[nCount + 1].n発声時刻ms - pChip.n発声時刻ms <= nUnit4 && list音符のみのリスト[nCount + 1].n発声時刻ms - pChip.n発声時刻ms >= nUnit8) + { + //次のノーツと現在のノーツの間隔が8分かそれ以下でかつ16分以上 + dkdkCount = 0; + if (pChip.nチャンネル番号 == 0x93) + { + pChip.nSenote = 0; + } + else if (pChip.nチャンネル番号 == 0x94) + { + pChip.nSenote = 3; + } + } + else if (list音符のみのリスト[nCount + 1].n発声時刻ms - pChip.n発声時刻ms < nUnit8) + { + if (pChip.nチャンネル番号 == 0x93) + { + pChip.nSenote = 1; + + if (nCount + 2 >= list音符のみのリスト.Count) + break; + + + //2015.03.31 kairera0467 「コ」を調節する部分。ただし動作があやしすぎるため、いったん封印。 + if (pChip.n発声時刻ms - list音符のみのリスト[nCount - 1].n発声時刻ms <= nUnit16) + { + //1つ前のノーツと現在のノーツの間隔が16分 + if (list音符のみのリスト[nCount - 1].nチャンネル番号 == 0x93) + { + //チャンネル番号が0x93 + //if( dkdkCount == 0 ) + //{ + // pChip.nSenote = 2; + // dkdkCount = 1; + //} + //else + //{ + // pChip.nSenote = 1; + // dkdkCount = 0; + //} + } + + } + } + else if (pChip.nチャンネル番号 == 0x94) + { + pChip.nSenote = 4; + } + } + } + catch (Exception ex) + { + Trace.TraceError(ex.ToString()); + Trace.TraceError("例外が発生しましたが処理を継続します。 (1503896a-0dfb-4643-87f1-bd821a125137)"); + } + } + else + { + if (pChip.nチャンネル番号 == 0x93) + { + pChip.nSenote = 0; + } + else if (pChip.nチャンネル番号 == 0x94) + { + pChip.nSenote = 3; + } + } + #endregion + + #endregion + + #region[古いやつ] + ////2つ前と1つ前のチップのSenoteを決めていく。 + ////連打、大音符などはチップ配置の際に決めます。 + //if (( db1個前の発生時刻ms - db2個前の発声時刻ms ) >= nUnit4) + //{ + // //2つ前の音符と1つ前の音符の間が4分以上でかつ、その音符がドンなら2つ前のSenoteは「ドン」で確定。 + // //同時にdkdkをリセット + // dkdkCount = false; + // if( list音符のみのリスト[nCount - 2].nチャンネル番号 == 0x93 ) + // list音符のみのリスト[nCount - 2].nSenote = 0; + // else if( list音符のみのリスト[nCount - 2].nチャンネル番号 == 0x94 ) + // list音符のみのリスト[nCount - 2].nSenote = 3; + + // if( ( pChip.n発声時刻ms - db1個前の発生時刻ms ) >= nUnit4 ) + // { + // //1つ前の音符と現在の音符の間が4分以上かつ、その音符がドンなら1つ前の音符は「ドン」で確定。 + // if( list音符のみのリスト[nCount - 1].nチャンネル番号 == 0x93 ) + // list音符のみのリスト[nCount - 1].nSenote = 0; + // else if( list音符のみのリスト[nCount - 1].nチャンネル番号 == 0x94 ) + // list音符のみのリスト[nCount - 1].nSenote = 3; + // } + // else if( ( pChip.n発声時刻ms - db1個前の発生時刻ms ) <= nUnit4 ) + // { + // //4分 + // if( ( pChip.n発声時刻ms - db1個前の発生時刻ms ) >= nUnit8 ) + // { + // dkdkCount = false; + // //1つ前の音符と現在の音符の間が8分以内で16分以上でかつ、その音符が赤なら1つ前の音符は「ド」で確定。 + // if( list音符のみのリスト[ nCount - 1 ].nチャンネル番号 == 0x94 ) + // list音符のみのリスト[ nCount - 1 ].nSenote = 2; + // else if( list音符のみのリスト[ nCount - 1 ].nチャンネル番号 == 0x94 ) + // list音符のみのリスト[ nCount - 1 ].nSenote = 4; + // } + // else if( ( db1個前の発生時刻ms - db2個前の発声時刻ms ) <= nUnit8 ) + // { + // dkdkCount = false; + // if( list音符のみのリスト[ nCount - 2 ].nチャンネル番号 == 0x93 ) + // { + // list音符のみのリスト[ nCount - 2 ].nSenote = 1; + + // //ドコドン + // if( list音符のみのリスト[ nCount - 1 ].nチャンネル番号 == 0x93 ) + // { + // if( pChip.nチャンネル番号 == 0x93 ) + // pChip.nSenote = dkdkCount ? 2 : 1; + // if( dkdkCount == false ) + // dkdkCount = true; + // else + // dkdkCount = false; + // } + // } + // else if( list音符のみのリスト[ nCount - 2 ].nチャンネル番号 == 0x94 ) + // list音符のみのリスト[ nCount - 2 ].nSenote = 4; + // } + + // } + //} + //else if ( ( db1個前の発生時刻ms - db2個前の発声時刻ms ) <= nUnit4 && ( db1個前の発生時刻ms - db2個前の発声時刻ms ) >= nUnit8) + //{ + // //2つ前の音符と1つ前の音符の間が8分以上でかつ、16分以内 + + // if( ( db1個前の発生時刻ms - db2個前の発声時刻ms ) >= nUnit8 && ( db1個前の発生時刻ms - db2個前の発声時刻ms ) > nUnit16 ) + // { + // //2つ前の音符と1つ前の音符の間が8分以上でかつ、16分以内なら「ド」 + // if( list音符のみのリスト[ nCount - 2 ].nチャンネル番号 == 0x93 ) + // { + // list音符のみのリスト[ nCount - 2 ].nSenote = 1; + // } + // else if( list音符のみのリスト[ nCount - 2 ].nチャンネル番号 == 0x94 ) + // { + // list音符のみのリスト[ nCount - 2 ].nSenote = 4; + // } + // } + // else if( ( db1個前の発生時刻ms - db2個前の発声時刻ms ) < nUnit8 ) + // { + // //2つ前の音符と1つ前の音符の間が16分以内なら「ド」で確定 + // if( list音符のみのリスト[ nCount - 2 ].nチャンネル番号 == 0x93 ) + // { + // list音符のみのリスト[ nCount - 2 ].nSenote = 1; + // } + // else if( list音符のみのリスト[ nCount - 2 ].nチャンネル番号 == 0x94 ) + // list音符のみのリスト[ nCount - 2 ].nSenote = 4; + // } + + // if( ( pChip.n発声時刻ms - db1個前の発生時刻ms ) >= nUnit16 ) + // { + // if( ( pChip.n発声時刻ms - db1個前の発生時刻ms ) >= nUnit8 ) + // { + // if( list音符のみのリスト[ nCount - 2 ].nチャンネル番号 == 0x93 ) + // { + // list音符のみのリスト[ nCount - 1 ].nSenote = 0; + // } + // else if( list音符のみのリスト[ nCount - 2 ].nチャンネル番号 == 0x94 ) + // list音符のみのリスト[ nCount - 1 ].nSenote = 3; + // } + // } + //} + //else if ( ( db1個前の発生時刻ms - db2個前の発声時刻ms ) >= nUnit16 && ( db1個前の発生時刻ms - db2個前の発声時刻ms ) <= nUnit8 ) + //{ + // //2つ前の音符と1つ前の音符の間が16分以上 + // if( list音符のみのリスト[ nCount - 2 ].nチャンネル番号 == 0x93 ) + // { + // list音符のみのリスト[ nCount - 2 ].nSenote = 1; + // } + // else if( list音符のみのリスト[ nCount - 2 ].nチャンネル番号 == 0x94 ) + // list音符のみのリスト[ nCount - 2 ].nSenote = 4; + + // if( ( pChip.n発声時刻ms - db1個前の発生時刻ms ) >= nUnit8 ) + // { + // if( list音符のみのリスト[ nCount - 2 ].nチャンネル番号 == 0x93 ) + // { + // list音符のみのリスト[ nCount - 1 ].nSenote = 0; + // } + // else if( list音符のみのリスト[ nCount - 2 ].nチャンネル番号 == 0x94 ) + // list音符のみのリスト[ nCount - 1 ].nSenote = 3; + // } + + + //} + #endregion + + nCount++; + } + } + + /// + /// コア部分Ver2。TJAP2から移植しただけ。 + /// + /// + private void tSenotes_Core_V2(List list音符のみのリスト, bool ignoreSENote = false) + { + const int DATA = 3; + int doco_count = 0; + int[] sort = new int[7]; + double[] time = new double[7]; + double[] scroll = new double[7]; + double time_tmp; + + for (int i = 0; i < list音符のみのリスト.Count; i++) + { + for (int j = 0; j < 7; j++) + { + if (i + (j - 3) < 0) + { + sort[j] = -1; + time[j] = -1000000000; + scroll[j] = 1.0; + } + else if (i + (j - 3) >= list音符のみのリスト.Count) + { + sort[j] = -1; + time[j] = 1000000000; + scroll[j] = 1.0; + } + else + { + sort[j] = list音符のみのリスト[i + (j - 3)].nチャンネル番号; + time[j] = list音符のみのリスト[i + (j - 3)].fBMSCROLLTime; + scroll[j] = list音符のみのリスト[i + (j - 3)].dbSCROLL; + } + } + time_tmp = time[DATA]; + for (int j = 0; j < 7; j++) + { + time[j] = (time[j] - time_tmp) * scroll[j]; + if (time[j] < 0) time[j] *= -1; + } + + if (ignoreSENote && list音符のみのリスト[i].IsFixedSENote) continue; + + switch (list音符のみのリスト[i].nチャンネル番号) + { + case 0x11: + + //(左2より離れている|)_右2_右ドン_右右4_右右ドン… + if ((time[DATA - 1] > 2/* || (sort[DATA-1] != 1 && time[DATA-1] >= 2 && time[DATA-2] >= 4 && time[DATA-3] <= 5)*/) && time[DATA + 1] == 2 && sort[DATA + 1] == 1 && time[DATA + 2] == 4 && sort[DATA + 2] == 0x11 && time[DATA + 3] == 6 && sort[DATA + 3] == 0x11) + { + list音符のみのリスト[i].nSenote = 1; + doco_count = 1; + break; + } + //ドコドコ中_左2_右2_右ドン + else if (doco_count != 0 && time[DATA - 1] == 2 && time[DATA + 1] == 2 && (sort[DATA + 1] == 0x11 || sort[DATA + 1] == 0x11)) + { + if (doco_count % 2 == 0) + list音符のみのリスト[i].nSenote = 1; + else + list音符のみのリスト[i].nSenote = 2; + doco_count++; + break; + } + else + { + doco_count = 0; + } + + //8分ドコドン + if ((time[DATA - 2] >= 4.1 && time[DATA - 1] == 2 && time[DATA + 1] == 2 && time[DATA + 2] >= 4.1) && (sort[DATA - 1] == 0x11 && sort[DATA + 1] == 0x11)) + { + if (list音符のみのリスト[i].dbBPM >= 120.0) + { + list音符のみのリスト[i - 1].nSenote = 1; + list音符のみのリスト[i].nSenote = 2; + list音符のみのリスト[i + 1].nSenote = 0; + break; + } + else if (list音符のみのリスト[i].dbBPM < 120.0) + { + list音符のみのリスト[i - 1].nSenote = 0; + list音符のみのリスト[i].nSenote = 0; + list音符のみのリスト[i + 1].nSenote = 0; + break; + } + } + + //BPM120以下のみ + //8分間隔の「ドドド」→「ドンドンドン」 + + if (time[DATA - 1] >= 2 && time[DATA + 1] >= 2) + { + if (list音符のみのリスト[i].dbBPM < 120.0) + { + list音符のみのリスト[i].nSenote = 0; + break; + } + } + + //ドコドコドン + if (time[DATA - 3] >= 3.4 && time[DATA - 2] == 2 && time[DATA - 1] == 1 && time[DATA + 1] == 1 && time[DATA + 2] == 2 && time[DATA + 3] >= 3.4 && sort[DATA - 2] == 0x93 && sort[DATA - 1] == 0x11 && sort[DATA + 1] == 0x11 && sort[DATA + 2] == 0x11) + { + list音符のみのリスト[i - 2].nSenote = 1; + list音符のみのリスト[i - 1].nSenote = 2; + list音符のみのリスト[i + 0].nSenote = 1; + list音符のみのリスト[i + 1].nSenote = 2; + list音符のみのリスト[i + 2].nSenote = 0; + i += 2; + //break; + } + //ドコドン + else if (time[DATA - 2] >= 2.4 && time[DATA - 1] == 1 && time[DATA + 1] == 1 && time[DATA + 2] >= 2.4 && sort[DATA - 1] == 0x11 && sort[DATA + 1] == 0x11) + { + list音符のみのリスト[i].nSenote = 2; + } + //右の音符が2以上離れている + else if (time[DATA + 1] > 2) + { + list音符のみのリスト[i].nSenote = 0; + } + //右の音符が1.4以上_左の音符が1.4以内 + else if (time[DATA + 1] >= 1.4 && time[DATA - 1] <= 1.4) + { + list音符のみのリスト[i].nSenote = 0; + } + //右の音符が2以上_右右の音符が3以内 + else if (time[DATA + 1] >= 2 && time[DATA + 2] <= 3) + { + list音符のみのリスト[i].nSenote = 0; + } + //右の音符が2以上_大音符 + else if (time[DATA + 1] >= 2 && (sort[DATA + 1] == 0x13 || sort[DATA + 1] == 0x14)) + { + list音符のみのリスト[i].nSenote = 0; + } + else + { + list音符のみのリスト[i].nSenote = 1; + } + break; + case 0x12: + doco_count = 0; + + //BPM120以下のみ + //8分間隔の「ドドド」→「ドンドンドン」 + if (time[DATA - 1] == 2 && time[DATA + 1] == 2) + { + if (list音符のみのリスト[i - 1].dbBPM < 120.0 && list音符のみのリスト[i].dbBPM < 120.0 && list音符のみのリスト[i + 1].dbBPM < 120.0) + { + list音符のみのリスト[i].nSenote = 3; + break; + } + } + + //右の音符が2以上離れている + if (time[DATA + 1] > 2) + { + list音符のみのリスト[i].nSenote = 3; + } + //右の音符が1.4以上_左の音符が1.4以内 + else if (time[DATA + 1] >= 1.4 && time[DATA - 1] <= 1.4) + { + list音符のみのリスト[i].nSenote = 3; + } + //右の音符が2以上_右右の音符が3以内 + else if (time[DATA + 1] >= 2 && time[DATA + 2] <= 3) + { + list音符のみのリスト[i].nSenote = 3; + } + //右の音符が2以上_大音符 + else if (time[DATA + 1] >= 2 && (sort[DATA + 1] == 0x13 || sort[DATA + 1] == 0x14)) + { + list音符のみのリスト[i].nSenote = 3; + } + else + { + list音符のみのリスト[i].nSenote = 4; + } + break; + default: + doco_count = 0; + break; + } + } + } + + /// + /// サウンドミキサーにサウンドを登録_削除する時刻を事前に算出する + /// + public void PlanToAddMixerChannel() + { + if (TJAPlayer3.Sound管理.GetCurrentSoundDeviceType() == "DirectSound") // DShowでの再生の場合はミキシング負荷が高くないため、 + { // チップのライフタイム管理を行わない + return; + } + + List listAddMixerChannel = new List(128); ; + List listRemoveMixerChannel = new List(128); + List listRemoveTiming = new List(128); + + foreach (CChip pChip in listChip) + { + switch (pChip.nチャンネル番号) + { + // BGM, 演奏チャネル, 不可視サウンド, フィルインサウンド, 空打ち音はミキサー管理の対象 + // BGM: + case 0x01: + // Dr演奏チャネル + //case 0x11: case 0x12: case 0x13: case 0x14: case 0x15: case 0x16: case 0x17: case 0x18: case 0x19: case 0x1A: case 0x1B: case 0x1C: + // Gt演奏チャネル + //case 0x20: case 0x21: case 0x22: case 0x23: case 0x24: case 0x25: case 0x26: case 0x27: case 0x28: + // Bs演奏チャネル + //case 0xA0: case 0xA1: case 0xA2: case 0xA3: case 0xA4: case 0xA5: case 0xA6: case 0xA7: case 0xA8: + // Dr不可視チップ + //case 0x31: case 0x32: case 0x33: case 0x34: case 0x35: case 0x36: case 0x37: + //case 0x38: case 0x39: case 0x3A: + // Dr/Gt/Bs空打ち + //case 0xB1: case 0xB2: case 0xB3: case 0xB4: case 0xB5: case 0xB6: case 0xB7: case 0xB8: + //case 0xB9: case 0xBA: case 0xBB: case 0xBC: + // フィルインサウンド + //case 0x1F: case 0x2F: case 0xAF: + // 自動演奏チップ + //case 0x61: case 0x62: case 0x63: case 0x64: case 0x65: case 0x66: case 0x67: case 0x68: case 0x69: + //case 0x70: case 0x71: case 0x72: case 0x73: case 0x74: case 0x75: case 0x76: case 0x77: case 0x78: case 0x79: + //case 0x80: case 0x81: case 0x82: case 0x83: case 0x84: case 0x85: case 0x86: case 0x87: case 0x88: case 0x89: + //case 0x90: case 0x91: case 0x92: + + #region [ 発音1秒前のタイミングを算出 ] + int n発音前余裕ms = 1000, n発音後余裕ms = 800; + { + int ch = pChip.nチャンネル番号 >> 4; + if (ch == 0x02 || ch == 0x0A) + { + n発音前余裕ms = 800; + n発音前余裕ms = 500; + } + if (ch == 0x06 || ch == 0x07 || ch == 0x08 || ch == 0x09) + { + n発音前余裕ms = 200; + n発音前余裕ms = 500; + } + } + #endregion + #region [ BGMチップならば即ミキサーに追加 ] + //if ( pChip.nチャンネル番号 == 0x01 ) // BGMチップは即ミキサーに追加 + //{ + // if ( listWAV.ContainsKey( pChip.n整数値_内部番号 ) ) + // { + // CDTX.CWAV wc = CDTXMania.DTX.listWAV[ pChip.n整数値_内部番号 ]; + // if ( wc.rSound[ 0 ] != null ) + // { + // CDTXMania.Sound管理.AddMixer( wc.rSound[ 0 ] ); // BGMは多重再生しない仕様としているので、1個目だけミキサーに登録すればよい + // } + // } + //} + #endregion + #region [ 発音1秒前のタイミングを算出 ] + int nAddMixer時刻ms, nAddMixer位置 = 0; + //Debug.WriteLine("=================================================================="); + //Debug.WriteLine( "Start: ch=" + pChip.nチャンネル番号.ToString("x2") + ", nWAV番号=" + pChip.n整数値 + ", time=" + pChip.n発声時刻ms + ", lasttime=" + listChip[ listChip.Count - 1 ].n発声時刻ms ); + t発声時刻msと発声位置を取得する(pChip.n発声時刻ms - n発音前余裕ms, out nAddMixer時刻ms, out nAddMixer位置); + //Debug.WriteLine( "nAddMixer時刻ms=" + nAddMixer時刻ms + ",nAddMixer位置=" + nAddMixer位置 ); + + CChip c_AddMixer = new CChip() + { + nチャンネル番号 = 0xDA, + n整数値 = pChip.n整数値, + n整数値_内部番号 = pChip.n整数値_内部番号, + n発声時刻ms = nAddMixer時刻ms, + n発声位置 = nAddMixer位置, + b演奏終了後も再生が続くチップである = false + }; + listAddMixerChannel.Add(c_AddMixer); + //Debug.WriteLine("listAddMixerChannel:" ); + //DebugOut_CChipList( listAddMixerChannel ); + #endregion + + int duration = 0; + if (listWAV.TryGetValue(pChip.n整数値_内部番号, out CDTX.CWAV wc)) + { + double _db再生速度 = (TJAPlayer3.DTXVmode.Enabled) ? this.dbDTXVPlaySpeed : this.db再生速度; + duration = (wc.rSound[0] == null) ? 0 : (int)(wc.rSound[0].n総演奏時間ms / _db再生速度); // #23664 durationに再生速度が加味されておらず、低速再生でBGMが途切れる問題を修正 (発声時刻msは、DTX読み込み時に再生速度加味済) + } + //Debug.WriteLine("duration=" + duration ); + int n新RemoveMixer時刻ms, n新RemoveMixer位置; + t発声時刻msと発声位置を取得する(pChip.n発声時刻ms + duration + n発音後余裕ms, out n新RemoveMixer時刻ms, out n新RemoveMixer位置); + //Debug.WriteLine( "n新RemoveMixer時刻ms=" + n新RemoveMixer時刻ms + ",n新RemoveMixer位置=" + n新RemoveMixer位置 ); + if (n新RemoveMixer時刻ms < pChip.n発声時刻ms + duration) // 曲の最後でサウンドが切れるような場合は + { + CChip c_AddMixer_noremove = c_AddMixer; + c_AddMixer_noremove.b演奏終了後も再生が続くチップである = true; + listAddMixerChannel[listAddMixerChannel.Count - 1] = c_AddMixer_noremove; + //continue; // 発声位置の計算ができないので、Mixer削除をあきらめる___のではなく + // #32248 2013.10.15 yyagi 演奏終了後も再生を続けるチップであるというフラグをpChip内に立てる + break; + } + #region [ 未使用コード ] + //if ( n新RemoveMixer時刻ms < pChip.n発声時刻ms + duration ) // 曲の最後でサウンドが切れるような場合 + //{ + // n新RemoveMixer時刻ms = pChip.n発声時刻ms + duration; + // // 「位置」は比例計算で求めてお茶を濁す...このやり方だと誤動作したため対応中止 + // n新RemoveMixer位置 = listChip[ listChip.Count - 1 ].n発声位置 * n新RemoveMixer時刻ms / listChip[ listChip.Count - 1 ].n発声時刻ms; + //} + #endregion + + #region [ 発音終了2秒後にmixerから削除するが、その前に再発音することになるのかを確認(再発音ならmixer削除タイミングを延期) ] + int n整数値 = pChip.n整数値; + int index = listRemoveTiming.FindIndex( + delegate (CChip cchip) { return cchip.n整数値 == n整数値; } + ); + //Debug.WriteLine( "index=" + index ); + if (index >= 0) // 過去に同じチップで発音中のものが見つかった場合 + { // 過去の発音のmixer削除を確定させるか、延期するかの2択。 + int n旧RemoveMixer時刻ms = listRemoveTiming[index].n発声時刻ms; + int n旧RemoveMixer位置 = listRemoveTiming[index].n発声位置; + + //Debug.WriteLine( "n旧RemoveMixer時刻ms=" + n旧RemoveMixer時刻ms + ",n旧RemoveMixer位置=" + n旧RemoveMixer位置 ); + if (pChip.n発声時刻ms - n発音前余裕ms <= n旧RemoveMixer時刻ms) // mixer削除前に、同じ音の再発音がある場合は、 + { // mixer削除時刻を遅延させる(if-else後に行う) + //Debug.WriteLine( "remove TAIL of listAddMixerChannel. TAIL INDEX=" + listAddMixerChannel.Count ); + //DebugOut_CChipList( listAddMixerChannel ); + listAddMixerChannel.RemoveAt(listAddMixerChannel.Count - 1); // また、同じチップ音の「mixerへの再追加」は削除する + //Debug.WriteLine( "removed result:" ); + //DebugOut_CChipList( listAddMixerChannel ); + } + else // 逆に、時間軸上、mixer削除後に再発音するような流れの場合は + { + //Debug.WriteLine( "Publish the value(listRemoveTiming[index] to listRemoveMixerChannel." ); + listRemoveMixerChannel.Add(listRemoveTiming[index]); // mixer削除を確定させる + //Debug.WriteLine( "listRemoveMixerChannel:" ); + //DebugOut_CChipList( listRemoveMixerChannel ); + //listRemoveTiming.RemoveAt( index ); + } + CChip c = new CChip() // mixer削除時刻を更新(遅延)する + { + nチャンネル番号 = 0xDB, + n整数値 = listRemoveTiming[index].n整数値, + n整数値_内部番号 = listRemoveTiming[index].n整数値_内部番号, + n発声時刻ms = n新RemoveMixer時刻ms, + n発声位置 = n新RemoveMixer位置 + }; + listRemoveTiming[index] = c; + //listRemoveTiming[ index ].n発声時刻ms = n新RemoveMixer時刻ms; // mixer削除時刻を更新(遅延)する + //listRemoveTiming[ index ].n発声位置 = n新RemoveMixer位置; + //Debug.WriteLine( "listRemoveTiming: modified" ); + //DebugOut_CChipList( listRemoveTiming ); + } + else // 過去に同じチップを発音していないor + { // 発音していたが既にmixer削除確定していたなら + CChip c = new CChip() // 新しくmixer削除候補として追加する + { + nチャンネル番号 = 0xDB, + n整数値 = pChip.n整数値, + n整数値_内部番号 = pChip.n整数値_内部番号, + n発声時刻ms = n新RemoveMixer時刻ms, + n発声位置 = n新RemoveMixer位置 + }; + //Debug.WriteLine( "Add new chip to listRemoveMixerTiming: " ); + //Debug.WriteLine( "ch=" + c.nチャンネル番号.ToString( "x2" ) + ", nWAV番号=" + c.n整数値 + ", time=" + c.n発声時刻ms + ", lasttime=" + listChip[ listChip.Count - 1 ].n発声時刻ms ); + listRemoveTiming.Add(c); + //Debug.WriteLine( "listRemoveTiming:" ); + //DebugOut_CChipList( listRemoveTiming ); + } + #endregion + break; + } + } + //Debug.WriteLine("=================================================================="); + //Debug.WriteLine( "Result:" ); + //Debug.WriteLine( "listAddMixerChannel:" ); + //DebugOut_CChipList( listAddMixerChannel ); + //Debug.WriteLine( "listRemoveMixerChannel:" ); + //DebugOut_CChipList( listRemoveMixerChannel ); + //Debug.WriteLine( "listRemoveTiming:" ); + //DebugOut_CChipList( listRemoveTiming ); + //Debug.WriteLine( "==================================================================" ); + + listChip.AddRange(listAddMixerChannel); + listChip.AddRange(listRemoveMixerChannel); + listChip.AddRange(listRemoveTiming); + listChip.Sort(); + } + private void DebugOut_CChipList(List c) + { + //Debug.WriteLine( "Count=" + c.Count ); + for (int i = 0; i < c.Count; i++) + { + Debug.WriteLine(i + ": ch=" + c[i].nチャンネル番号.ToString("x2") + ", WAV番号=" + c[i].n整数値 + ", time=" + c[i].n発声時刻ms); + } + } + private bool t発声時刻msと発声位置を取得する(int n希望発声時刻ms, out int n新発声時刻ms, out int n新発声位置) + { + // 発声時刻msから発声位置を逆算することはできないため、近似計算する。 + // 具体的には、希望発声位置前後の2つのチップの発声位置の中間を取る。 + + if (n希望発声時刻ms < 0) + { + n希望発声時刻ms = 0; + } + //else if ( n希望発声時刻ms > listChip[ listChip.Count - 1 ].n発声時刻ms ) // BGMの最後の余韻を殺してしまうので、この条件は外す + //{ + // n希望発声時刻ms = listChip[ listChip.Count - 1 ].n発声時刻ms; + //} + + int index_min = -1, index_max = -1; + for (int i = 0; i < listChip.Count; i++) // 希望発声位置前後の「前」の方のチップを検索 + { + if (listChip[i].n発声時刻ms >= n希望発声時刻ms) + { + index_min = i; + break; + } + } + if (index_min < 0) // 希望発声時刻に至らずに曲が終了してしまう場合 + { + // listの最終項目の時刻をそのまま使用する + //___のではダメ。BGMが尻切れになる。 + // そこで、listの最終項目の発声時刻msと発生位置から、希望発声時刻に相当する希望発声位置を比例計算して求める。 + //n新発声時刻ms = n希望発声時刻ms; + //n新発声位置 = listChip[ listChip.Count - 1 ].n発声位置 * n希望発声時刻ms / listChip[ listChip.Count - 1 ].n発声時刻ms; + n新発声時刻ms = listChip[listChip.Count - 1].n発声時刻ms; + n新発声位置 = listChip[listChip.Count - 1].n発声位置; + return false; + } + index_max = index_min + 1; + if (index_max >= listChip.Count) + { + index_max = index_min; + } + n新発声時刻ms = (listChip[index_max].n発声時刻ms + listChip[index_min].n発声時刻ms) / 2; + n新発声位置 = (listChip[index_max].n発声位置 + listChip[index_min].n発声位置) / 2; + + return true; + } + + public void SwapGuitarBassInfos() + { + } + + // SwapGuitarBassInfos_AutoFlags()は、CDTXからCConfigIniに移動。 + + // CActivity 実装 + private CPrivateFastFont pf歌詞フォント; + public override void On活性化() + { + if (!string.IsNullOrEmpty(TJAPlayer3.Skin.Game_Lyric_FontName)) + { + this.pf歌詞フォント = new CPrivateFastFont(new FontFamily(TJAPlayer3.Skin.Game_Lyric_FontName), TJAPlayer3.Skin.Game_Lyric_FontSize); + } + else + { + this.pf歌詞フォント = new CPrivateFastFont(new FontFamily("MS UI Gothic"), TJAPlayer3.Skin.Game_Lyric_FontSize); + } + this.listWAV = new Dictionary(); + this.listBPM = new Dictionary(); + this.listSCROLL = new Dictionary(); + this.listSCROLL_Normal = new Dictionary(); + this.listSCROLL_Expert = new Dictionary(); + this.listSCROLL_Master = new Dictionary(); + this.listJPOSSCROLL = new Dictionary(); + this.listDELAY = new Dictionary(); + this.listBRANCH = new Dictionary(); + this.listAVI = new Dictionary(); + this.listAVIPAN = new Dictionary(); + this.listDS = new Dictionary(); + this.listChip = new List(); + this.listChip_Branch = new List[3]; + this.listChip_Branch[0] = new List(); + this.listChip_Branch[1] = new List(); + this.listChip_Branch[2] = new List(); + this.listBalloon = new List(); + this.listBalloon_Normal = new List(); + this.listBalloon_Expert = new List(); + this.listBalloon_Master = new List(); + this.listLine = new List(); + this.listLyric = new List(); + this.listLyric2 = new List(); + this.List_DanSongs = new List(); + base.On活性化(); + } + public override void On非活性化() + { + if (this.listWAV != null) + { + foreach (CWAV cwav in this.listWAV.Values) + { + cwav.Dispose(); + } + this.listWAV = null; + } + if (this.listAVI != null) + { + foreach (CAVI cavi in this.listAVI.Values) + { + cavi.Dispose(); + } + this.listAVI = null; + } + if (this.listAVIPAN != null) + { + this.listAVIPAN.Clear(); + this.listAVIPAN = null; + } + if (this.listDS != null) + { + foreach (CDirectShow cds in this.listDS.Values) + { + cds.Dispose(); + } + this.listDS = null; + } + if (this.listBPM != null) + { + this.listBPM.Clear(); + this.listBPM = null; + } + if (this.listDELAY != null) + { + this.listDELAY.Clear(); + this.listDELAY = null; + } + if (this.listBRANCH != null) + { + this.listBRANCH.Clear(); + this.listBRANCH = null; + } + if (this.listSCROLL != null) + { + this.listSCROLL.Clear(); + this.listSCROLL = null; + } + + if (this.listSCROLL_Normal != null) + { + this.listSCROLL_Normal.Clear(); + this.listSCROLL_Normal = null; + } + if (this.listSCROLL_Expert != null) + { + this.listSCROLL_Expert.Clear(); + this.listSCROLL_Expert = null; + } + if (this.listSCROLL_Master != null) + { + this.listSCROLL_Master.Clear(); + this.listSCROLL_Master = null; + } + if (this.listJPOSSCROLL != null) + { + this.listJPOSSCROLL.Clear(); + this.listJPOSSCROLL = null; + } + if (this.List_DanSongs != null) + { + this.List_DanSongs.Clear(); + this.List_DanSongs = null; + } + + if (this.listChip != null) + { + this.listChip.Clear(); + } + + if (this.listBalloon != null) + { + this.listBalloon.Clear(); + } + if (this.listBalloon_Normal != null) + { + this.listBalloon_Normal.Clear(); + } + if (this.listBalloon_Expert != null) + { + this.listBalloon_Expert.Clear(); + } + if (this.listBalloon_Master != null) + { + this.listBalloon_Master.Clear(); + } + if (this.listLyric != null) + { + this.listLyric.Clear(); + } + if (this.listLyric2 != null) + { + this.listLyric2.Clear(); + } + base.On非活性化(); + } + public override void OnManagedリソースの作成() + { + if (!base.b活性化してない) + { + this.tAVIの読み込み(); + base.OnManagedリソースの作成(); + } + } + public override void OnManagedリソースの解放() + { + if (!base.b活性化してない) + { + if (this.listAVI != null) + { + foreach (CAVI cavi in this.listAVI.Values) + { + cavi.Dispose(); + } + } + if (this.listDS != null) + { + foreach (CDirectShow cds in this.listDS.Values) + { + cds.Dispose(); + } + } + TJAPlayer3.t安全にDisposeする(ref this.pf歌詞フォント); + base.OnManagedリソースの解放(); + } + } + + // その他 + + #region [ private ] + //----------------- + /// + /// GDAチャンネル番号に対応するDTXチャンネル番号。 + /// + [StructLayout(LayoutKind.Sequential)] + private struct STGDAPARAM + { + public string strGDAのチャンネル文字列; + public int nDTXのチャンネル番号; + + public STGDAPARAM(string strGDAのチャンネル文字列, int nDTXのチャンネル番号) // 2011.1.1 yyagi 構造体のコンストラクタ追加(初期化簡易化のため) + { + this.strGDAのチャンネル文字列 = strGDAのチャンネル文字列; + this.nDTXのチャンネル番号 = nDTXのチャンネル番号; + } + } + + private readonly STGDAPARAM[] stGDAParam; + private bool bヘッダのみ; + private Stack bstackIFからENDIFをスキップする; + + private int n現在の行数; + private int n現在の乱数; + + private int nPolyphonicSounds = 4; // #28228 2012.5.1 yyagi + + private int n内部番号BPM1to; + private int n内部番号SCROLL1to; + private int n内部番号JSCROLL1to; + private int n内部番号DELAY1to; + private int n内部番号BRANCH1to; + private int n内部番号WAV1to; + private int[] n無限管理BPM; + private int[] n無限管理PAN; + private int[] n無限管理SIZE; + private int[] n無限管理WAV; + private int[] nRESULTIMAGE用優先順位; + private int[] nRESULTMOVIE用優先順位; + private int[] nRESULTSOUND用優先順位; + + private void t行のコメント処理(ref string strText) + { + int nCommentPos = strText.IndexOf("//"); + if (nCommentPos != -1) + strText = strText.Remove(nCommentPos); + } + + private bool t入力_コマンド文字列を抜き出す(ref CharEnumerator ce, ref StringBuilder sb文字列) + { + if (!this.t入力_空白をスキップする(ref ce)) + return false; // 文字が尽きた + + #region [ コマンド終端文字(':')、半角空白、コメント開始文字(';')、改行のいずれかが出現するまでをコマンド文字列と見なし、sb文字列 にコピーする。] + //----------------- + while (ce.Current != ':' && ce.Current != ' ' && ce.Current != ';' && ce.Current != '\n') + { + sb文字列.Append(ce.Current); + + if (!ce.MoveNext()) + return false; // 文字が尽きた + } + //----------------- + #endregion + + #region [ コマンド終端文字(':')で終端したなら、その次から空白をスキップしておく。] + //----------------- + if (ce.Current == ':') + { + if (!ce.MoveNext()) + return false; // 文字が尽きた + + if (!this.t入力_空白をスキップする(ref ce)) + return false; // 文字が尽きた + } + //----------------- + #endregion + + return true; + } + private bool t入力_コメントをスキップする(ref CharEnumerator ce) + { + // 改行が現れるまでをコメントと見なしてスキップする。 + + while (ce.Current != '\n') + { + if (!ce.MoveNext()) + return false; // 文字が尽きた + } + + // 改行の次の文字へ移動した結果を返す。 + + return ce.MoveNext(); + } + private bool t入力_コメント文字列を抜き出す(ref CharEnumerator ce, ref StringBuilder sb文字列) + { + if (ce.Current != ';') // コメント開始文字(';')じゃなければ正常帰還。 + return true; + + if (!ce.MoveNext()) // ';' の次で文字列が終わってたら終了帰還。 + return false; + + #region [ ';' の次の文字から '\n' の1つ前までをコメント文字列と見なし、sb文字列にコピーする。] + //----------------- + while (ce.Current != '\n') + { + sb文字列.Append(ce.Current); + + if (!ce.MoveNext()) + return false; + } + //----------------- + #endregion + + return true; + } + private void t入力_パラメータ食い込みチェック(string strコマンド名, ref string strコマンド, ref string strパラメータ) + { + if ((strコマンド.Length > strコマンド名.Length) && strコマンド.StartsWith(strコマンド名, StringComparison.OrdinalIgnoreCase)) + { + strパラメータ = strコマンド.Substring(strコマンド名.Length).Trim(); + strコマンド = strコマンド.Substring(0, strコマンド名.Length); + } + } + private bool t入力_パラメータ文字列を抜き出す(ref CharEnumerator ce, ref StringBuilder sb文字列) + { + if (!this.t入力_空白をスキップする(ref ce)) + return false; // 文字が尽きた + + #region [ 改行またはコメント開始文字(';')が出現するまでをパラメータ文字列と見なし、sb文字列 にコピーする。] + //----------------- + while (ce.Current != '\n' && ce.Current != ';') + { + sb文字列.Append(ce.Current); + + if (!ce.MoveNext()) + return false; + } + //----------------- + #endregion + + return true; + } + private bool t入力_空白と改行をスキップする(ref CharEnumerator ce) + { + // 空白と改行が続く間はこれらをスキップする。 + + while (ce.Current == ' ' || ce.Current == '\n') + { + if (ce.Current == '\n') + this.n現在の行数++; // 改行文字では行番号が増える。 + + if (!ce.MoveNext()) + return false; // 文字が尽きた + } + + return true; + } + private bool t入力_空白をスキップする(ref CharEnumerator ce) + { + // 空白が続く間はこれをスキップする。 + + while (ce.Current == ' ') + { + if (!ce.MoveNext()) + return false; // 文字が尽きた + } + + return true; + } + private void t入力_行解析(ref StringBuilder sbコマンド, ref StringBuilder sbパラメータ, ref StringBuilder sbコメント) + { + string strコマンド = sbコマンド.ToString(); + string strパラメータ = sbパラメータ.ToString().Trim(); + string strコメント = sbコメント.ToString(); + + // 行頭コマンドの処理 + + #region [ IF ] + //----------------- + if (strコマンド.StartsWith("IF", StringComparison.OrdinalIgnoreCase)) + { + this.t入力_パラメータ食い込みチェック("IF", ref strコマンド, ref strパラメータ); + + if (this.bstackIFからENDIFをスキップする.Count == 255) + { + Trace.TraceWarning("#IF の入れ子の数が 255 を超えました。この #IF を無視します。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数); + } + else if (this.bstackIFからENDIFをスキップする.Peek()) + { + this.bstackIFからENDIFをスキップする.Push(true); // 親が true ならその入れ子も問答無用で true 。 + } + else // 親が false なら入れ子はパラメータと乱数を比較して結果を判断する。 + { + int n数値 = 0; + + if (!int.TryParse(strパラメータ, out n数値)) + n数値 = 1; + + this.bstackIFからENDIFをスキップする.Push(n数値 != this.n現在の乱数); // 乱数と数値が一致したら true 。 + } + } + //----------------- + #endregion + #region [ ENDIF ] + //----------------- + else if (strコマンド.StartsWith("ENDIF", StringComparison.OrdinalIgnoreCase)) + { + this.t入力_パラメータ食い込みチェック("ENDIF", ref strコマンド, ref strパラメータ); + + if (this.bstackIFからENDIFをスキップする.Count > 1) + { + this.bstackIFからENDIFをスキップする.Pop(); // 入れ子を1つ脱出。 + } + else + { + Trace.TraceWarning("#ENDIF に対応する #IF がありません。この #ENDIF を無視します。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数); + } + } + //----------------- + #endregion + + else if (!this.bstackIFからENDIFをスキップする.Peek()) // IF~ENDIF をスキップするなら以下はすべて無視。 + { + #region [ PATH_WAV ] + //----------------- + if (strコマンド.StartsWith("PATH_WAV", StringComparison.OrdinalIgnoreCase)) + { + this.t入力_パラメータ食い込みチェック("PATH_WAV", ref strコマンド, ref strパラメータ); + this.PATH_WAV = strパラメータ; + } + //----------------- + #endregion + #region [ TITLE ] + //----------------- + else if (strコマンド.StartsWith("TITLE", StringComparison.OrdinalIgnoreCase)) + { + //this.t入力_パラメータ食い込みチェック( "TITLE", ref strコマンド, ref strパラメータ ); + //this.TITLE = strパラメータ; + } + //----------------- + #endregion + #region [ ARTIST ] + //----------------- + else if (strコマンド.StartsWith("ARTIST", StringComparison.OrdinalIgnoreCase)) + { + this.t入力_パラメータ食い込みチェック("ARTIST", ref strコマンド, ref strパラメータ); + this.ARTIST = strパラメータ; + } + //----------------- + #endregion + #region [ COMMENT ] + //----------------- + else if (strコマンド.StartsWith("COMMENT", StringComparison.OrdinalIgnoreCase)) + { + this.t入力_パラメータ食い込みチェック("COMMENT", ref strコマンド, ref strパラメータ); + this.COMMENT = strパラメータ; + } + //----------------- + #endregion + #region [ GENRE ] + //----------------- + else if (strコマンド.StartsWith("GENRE", StringComparison.OrdinalIgnoreCase)) + { + this.t入力_パラメータ食い込みチェック("GENRE", ref strコマンド, ref strパラメータ); + this.GENRE = strパラメータ; + } + //----------------- + #endregion + #region [ HIDDENLEVEL ] + //----------------- + else if (strコマンド.StartsWith("HIDDENLEVEL", StringComparison.OrdinalIgnoreCase)) + { + this.t入力_パラメータ食い込みチェック("HIDDENLEVEL", ref strコマンド, ref strパラメータ); + this.HIDDENLEVEL = strパラメータ.ToLower().Equals("on"); + } + //----------------- + #endregion + #region [ PREVIEW ] + //----------------- + else if (strコマンド.StartsWith("PREVIEW", StringComparison.OrdinalIgnoreCase)) + { + this.t入力_パラメータ食い込みチェック("PREVIEW", ref strコマンド, ref strパラメータ); + this.PREVIEW = strパラメータ; + } + //----------------- + #endregion + #region [ PREIMAGE ] + //----------------- + else if (strコマンド.StartsWith("PREIMAGE", StringComparison.OrdinalIgnoreCase)) + { + this.t入力_パラメータ食い込みチェック("PREIMAGE", ref strコマンド, ref strパラメータ); + this.PREIMAGE = strパラメータ; + } + //----------------- + #endregion + #region [ RANDOM ] + //----------------- + else if (strコマンド.StartsWith("RANDOM", StringComparison.OrdinalIgnoreCase)) + { + this.t入力_パラメータ食い込みチェック("RANDOM", ref strコマンド, ref strパラメータ); + + int n数値 = 1; + if (!int.TryParse(strパラメータ, out n数値)) + n数値 = 1; + + this.n現在の乱数 = TJAPlayer3.Random.Next(n数値) + 1; // 1~数値 までの乱数を生成。 + } + //----------------- + #endregion + #region [ BPM ] + //----------------- + else if (strコマンド.StartsWith("BPM", StringComparison.OrdinalIgnoreCase)) + { + //this.t入力_行解析_BPM_BPMzz( strコマンド, strパラメータ, strコメント ); + } + //----------------- + #endregion + #region [ DTXVPLAYSPEED ] + //----------------- + else if (strコマンド.StartsWith("DTXVPLAYSPEED", StringComparison.OrdinalIgnoreCase)) + { + this.t入力_パラメータ食い込みチェック("DTXVPLAYSPEED", ref strコマンド, ref strパラメータ); + + double dtxvplayspeed = 0.0; + if (TryParse(strパラメータ, out dtxvplayspeed) && dtxvplayspeed > 0.0) + { + this.dbDTXVPlaySpeed = dtxvplayspeed; + } + } + //----------------- + #endregion + else if (!this.bヘッダのみ) // ヘッダのみの解析の場合、以下は無視。 + { + #region [ PANEL ] + //----------------- + if (strコマンド.StartsWith("PANEL", StringComparison.OrdinalIgnoreCase)) + { + this.t入力_パラメータ食い込みチェック("PANEL", ref strコマンド, ref strパラメータ); + + int dummyResult; // #23885 2010.12.12 yyagi: not to confuse "#PANEL strings (panel)" and "#PANEL int (panpot of EL)" + if (!int.TryParse(strパラメータ, out dummyResult)) + { // 数値じゃないならPANELとみなす + this.PANEL = strパラメータ; // + goto EOL; // + } // 数値ならPAN ELとみなす + + } + //----------------- + #endregion + #region [ BASEBPM ] + //----------------- + else if (strコマンド.StartsWith("BASEBPM", StringComparison.OrdinalIgnoreCase)) + { + this.t入力_パラメータ食い込みチェック("BASEBPM", ref strコマンド, ref strパラメータ); + + double basebpm = 0.0; + //if( double.TryParse( str2, out num6 ) && ( num6 > 0.0 ) ) + if (TryParse(strパラメータ, out basebpm) && basebpm > 0.0) // #23880 2010.12.30 yyagi: alternative TryParse to permit both '.' and ',' for decimal point + { // #24204 2011.01.21 yyagi: Fix the condition correctly + this.BASEBPM = basebpm; + } + } + //----------------- + #endregion + + // オブジェクト記述コマンドの処理。 + + else if ( + !this.t入力_行解析_WAVPAN_PAN(strコマンド, strパラメータ, strコメント) && + !this.t入力_行解析_AVIPAN(strコマンド, strパラメータ, strコメント) && + !this.t入力_行解析_AVI_VIDEO(strコマンド, strパラメータ, strコメント) && + // !this.t入力_行解析_BPM_BPMzz( strコマンド, strパラメータ, strコメント ) && // bヘッダのみ==trueの場合でもチェックするよう変更 + !this.t入力_行解析_SIZE(strコマンド, strパラメータ, strコメント)) + { + this.t入力_行解析_チップ配置(strコマンド, strパラメータ, strコメント); + } + EOL: + Debug.Assert(true); // #23885 2010.12.12 yyagi: dummy line to exit parsing the line + // 2011.8.17 from: "int xx=0;" から変更。毎回警告が出るので。 + } + //else + //{ // Duration測定のため、bヘッダのみ==trueでも、チップ配置は行う + // this.t入力_行解析_チップ配置( strコマンド, strパラメータ, strコメント ); + //} + } + } + private bool t入力_行解析_AVI_VIDEO(string strコマンド, string strパラメータ, string strコメント) + { + // (1) コマンドを処理。 + + #region [ "AVI" or "VIDEO" で始まらないコマンドは無効。] + //----------------- + if (strコマンド.StartsWith("AVI", StringComparison.OrdinalIgnoreCase)) + strコマンド = strコマンド.Substring(3); // strコマンド から先頭の"AVI"文字を除去。 + + else if (strコマンド.StartsWith("VIDEO", StringComparison.OrdinalIgnoreCase)) + strコマンド = strコマンド.Substring(5); // strコマンド から先頭の"VIDEO"文字を除去。 + + else + return false; + //----------------- + #endregion + + // (2) パラメータを処理。 + + if (strコマンド.Length < 2) + return false; // AVI番号 zz がないなら無効。 + + #region [ AVI番号 zz を取得する。] + //----------------- + int zz = C変換.n36進数2桁の文字列を数値に変換して返す(strコマンド.Substring(0, 2)); + if (zz < 0 || zz >= 36 * 36) + { + Trace.TraceError("AVI(VIDEO)番号に 00~ZZ 以外の値または不正な文字列が指定されました。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数); + return false; + } + //----------------- + #endregion + + #region [ AVIリストに {zz, avi} の組を登録する。 ] + //----------------- + var avi = new CAVI() + { + n番号 = zz, + strファイル名 = strパラメータ, + strコメント文 = strコメント, + }; + + if (this.listAVI.ContainsKey(zz)) // 既にリスト中に存在しているなら削除。後のものが有効。 + this.listAVI.Remove(zz); + + this.listAVI.Add(zz, avi); + + var ds = new CDirectShow() + { + n番号 = zz, + strファイル名 = strパラメータ, + strコメント文 = strコメント, + }; + + if (this.listDS.ContainsKey(zz)) // 既にリスト中に存在しているなら削除。後のものが有効。 + this.listDS.Remove(zz); + + this.listDS.Add(zz, ds); + //----------------- + #endregion + + return true; + } + private bool t入力_行解析_AVIPAN(string strコマンド, string strパラメータ, string strコメント) + { + // (1) コマンドを処理。 + + #region [ "AVIPAN" で始まらないコマンドは無効。] + //----------------- + if (!strコマンド.StartsWith("AVIPAN", StringComparison.OrdinalIgnoreCase)) + return false; + + strコマンド = strコマンド.Substring(6); // strコマンド から先頭の"AVIPAN"文字を除去。 + //----------------- + #endregion + + // (2) パラメータを処理。 + + if (strコマンド.Length < 2) + return false; // AVIPAN番号 zz がないなら無効。 + + #region [ AVIPAN番号 zz を取得する。] + //----------------- + int zz = C変換.n36進数2桁の文字列を数値に変換して返す(strコマンド.Substring(0, 2)); + if (zz < 0 || zz >= 36 * 36) + { + Trace.TraceError("AVIPAN番号に 00~ZZ 以外の値または不正な文字列が指定されました。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数); + return false; + } + //----------------- + #endregion + + var avipan = new CAVIPAN() + { + n番号 = zz, + }; + + // パラメータ引数(14個)を取得し、avipan に登録していく。 + + string[] strParams = strパラメータ.Split(new char[] { ' ', ',', '(', ')', '[', ']', 'x', '|' }, StringSplitOptions.RemoveEmptyEntries); + + #region [ パラメータ引数は全14個ないと無効。] + //----------------- + if (strParams.Length < 14) + { + Trace.TraceError("AVIPAN: 引数が足りません。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数); + return false; + } + //----------------- + #endregion + + int i = 0; + int n値 = 0; + + #region [ 1. AVI番号 ] + //----------------- + if (string.IsNullOrEmpty(strParams[i]) || strParams[i].Length > 2) + { + Trace.TraceError("AVIPAN: {2}番目の数(AVI番号)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1); + return false; + } + avipan.nAVI番号 = C変換.n36進数2桁の文字列を数値に変換して返す(strParams[i]); + if (avipan.nAVI番号 < 1 || avipan.nAVI番号 >= 36 * 36) + { + Trace.TraceError("AVIPAN: {2}番目の数(AVI番号)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1); + return false; + } + i++; + //----------------- + #endregion + #region [ 2. 開始転送サイズ_幅 ] + //----------------- + n値 = 0; + if (!int.TryParse(strParams[i], out n値)) + { + Trace.TraceError("AVIPAN: {2}番目の引数(開始転送サイズ_幅)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1); + return false; + } + avipan.sz開始サイズ.Width = n値; + i++; + //----------------- + #endregion + #region [ 3. 転送サイズ_高さ ] + //----------------- + n値 = 0; + if (!int.TryParse(strParams[i], out n値)) + { + Trace.TraceError("AVIPAN: {2}番目の引数(開始転送サイズ_高さ)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1); + return false; + } + avipan.sz開始サイズ.Height = n値; + i++; + //----------------- + #endregion + #region [ 4. 終了転送サイズ_幅 ] + //----------------- + n値 = 0; + if (!int.TryParse(strParams[i], out n値)) + { + Trace.TraceError("AVIPAN: {2}番目の引数(終了転送サイズ_幅)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1); + return false; + } + avipan.sz終了サイズ.Width = n値; + i++; + //----------------- + #endregion + #region [ 5. 終了転送サイズ_高さ ] + //----------------- + n値 = 0; + if (!int.TryParse(strParams[i], out n値)) + { + Trace.TraceError("AVIPAN: {2}番目の引数(終了転送サイズ_高さ)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1); + return false; + } + avipan.sz終了サイズ.Height = n値; + i++; + //----------------- + #endregion + #region [ 6. 動画側開始位置_X ] + //----------------- + n値 = 0; + if (!int.TryParse(strParams[i], out n値)) + { + Trace.TraceError("AVIPAN: {2}番目の引数(動画側開始位置_X)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1); + return false; + } + avipan.pt動画側開始位置.X = n値; + i++; + //----------------- + #endregion + #region [ 7. 動画側開始位置_Y ] + //----------------- + n値 = 0; + if (!int.TryParse(strParams[i], out n値)) + { + Trace.TraceError("AVIPAN: {2}番目の引数(動画側開始位置_Y)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1); + return false; + } + avipan.pt動画側開始位置.Y = n値; + i++; + //----------------- + #endregion + #region [ 8. 動画側終了位置_X ] + //----------------- + n値 = 0; + if (!int.TryParse(strParams[i], out n値)) + { + Trace.TraceError("AVIPAN: {2}番目の引数(動画側終了位置_X)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1); + return false; + } + avipan.pt動画側終了位置.X = n値; + i++; + //----------------- + #endregion + #region [ 9. 動画側終了位置_Y ] + //----------------- + n値 = 0; + if (!int.TryParse(strParams[i], out n値)) + { + Trace.TraceError("AVIPAN: {2}番目の引数(動画側終了位置_Y)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1); + return false; + } + avipan.pt動画側終了位置.Y = n値; + i++; + //----------------- + #endregion + #region [ 10.表示側開始位置_X ] + //----------------- + n値 = 0; + if (!int.TryParse(strParams[i], out n値)) + { + Trace.TraceError("AVIPAN: {2}番目の引数(表示側開始位置_X)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1); + return false; + } + avipan.pt表示側開始位置.X = n値; + i++; + //----------------- + #endregion + #region [ 11.表示側開始位置_Y ] + //----------------- + n値 = 0; + if (!int.TryParse(strParams[i], out n値)) + { + Trace.TraceError("AVIPAN: {2}番目の引数(表示側開始位置_Y)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1); + return false; + } + avipan.pt表示側開始位置.Y = n値; + i++; + //----------------- + #endregion + #region [ 12.表示側終了位置_X ] + //----------------- + n値 = 0; + if (!int.TryParse(strParams[i], out n値)) + { + Trace.TraceError("AVIPAN: {2}番目の引数(表示側終了位置_X)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1); + return false; + } + avipan.pt表示側終了位置.X = n値; + i++; + //----------------- + #endregion + #region [ 13.表示側終了位置_Y ] + //----------------- + n値 = 0; + if (!int.TryParse(strParams[i], out n値)) + { + Trace.TraceError("AVIPAN: {2}番目の引数(表示側終了位置_Y)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1); + return false; + } + avipan.pt表示側終了位置.Y = n値; + i++; + //----------------- + #endregion + #region [ 14.移動時間 ] + //----------------- + n値 = 0; + if (!int.TryParse(strParams[i], out n値)) + { + Trace.TraceError("AVIPAN: {2}番目の引数(移動時間)が異常です。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数, i + 1); + return false; + } + + if (n値 < 0) + n値 = 0; + + avipan.n移動時間ct = n値; + i++; + //----------------- + #endregion + + #region [ AVIPANリストに {zz, avipan} の組を登録する。] + //----------------- + if (this.listAVIPAN.ContainsKey(zz)) // 既にリスト中に存在しているなら削除。後のものが有効。 + this.listAVIPAN.Remove(zz); + + this.listAVIPAN.Add(zz, avipan); + //----------------- + #endregion + + return true; + } + private bool t入力_行解析_BPM_BPMzz(string strコマンド, string strパラメータ, string strコメント) + { + // (1) コマンドを処理。 + + #region [ "BPM" で始まらないコマンドは無効。] + //----------------- + if (!strコマンド.StartsWith("BPM", StringComparison.OrdinalIgnoreCase)) + return false; + + strコマンド = strコマンド.Substring(3); // strコマンド から先頭の"BPM"文字を除去。 + //----------------- + #endregion + + // (2) パラメータを処理。 + + int zz = 0; + + #region [ BPM番号 zz を取得する。] + //----------------- + if (strコマンド.Length < 2) + { + #region [ (A) "#BPM:" の場合 → zz = 00 ] + //----------------- + zz = 0; + //----------------- + #endregion + } + else + { + #region [ (B) "#BPMzz:" の場合 → zz = 00 ~ ZZ ] + //----------------- + zz = C変換.n36進数2桁の文字列を数値に変換して返す(strコマンド.Substring(0, 2)); + if (zz < 0 || zz >= 36 * 36) + { + Trace.TraceError("BPM番号に 00~ZZ 以外の値または不正な文字列が指定されました。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数); + return false; + } + //----------------- + #endregion + } + //----------------- + #endregion + + double dbBPM = 0.0; + + #region [ BPM値を取得する。] + //----------------- + //if( !double.TryParse( strパラメータ, out result ) ) + if (!TryParse(strパラメータ, out dbBPM)) // #23880 2010.12.30 yyagi: alternative TryParse to permit both '.' and ',' for decimal point + return false; + + if (dbBPM <= 0.0) + return false; + //----------------- + #endregion + + if (zz == 0) // "#BPM00:" と "#BPM:" は等価。 + this.BPM = dbBPM; // この曲の代表 BPM に格納する。 + + #region [ BPMリストに {内部番号, zz, dbBPM} の組を登録。] + //----------------- + this.listBPM.Add( + this.n内部番号BPM1to, + new CBPM() + { + n内部番号 = this.n内部番号BPM1to, + n表記上の番号 = zz, + dbBPM値 = dbBPM, + }); + //----------------- + #endregion + + #region [ BPM番号が zz であるBPM未設定のBPMチップがあれば、そのサイズを変更する。無限管理に対応。] + //----------------- + if (this.n無限管理BPM[zz] == -zz) // 初期状態では n無限管理BPM[zz] = -zz である。この場合、#BPMzz がまだ出現していないことを意味する。 + { + for (int i = 0; i < this.listChip.Count; i++) // これまでに出てきたチップのうち、該当する(BPM値が未設定の)BPMチップの値を変更する(仕組み上、必ず後方参照となる)。 + { + var chip = this.listChip[i]; + + if (chip.bBPMチップである && chip.n整数値_内部番号 == -zz) // #BPMzz 行より前の行に出現した #BPMzz では、整数値_内部番号は -zz に初期化されている。 + chip.n整数値_内部番号 = this.n内部番号BPM1to; + } + } + this.n無限管理BPM[zz] = this.n内部番号BPM1to; // 次にこの BPM番号 zz を使うBPMチップが現れたら、このBPM値が格納されることになる。 + this.n内部番号BPM1to++; // 内部番号は単純増加連番。 + //----------------- + #endregion + + return true; + } + + private bool t入力_行解析_SIZE(string strコマンド, string strパラメータ, string strコメント) + { + // (1) コマンドを処理。 + + #region [ "SIZE" で始まらないコマンドや、その後ろに2文字(番号)が付随してないコマンドは無効。] + //----------------- + if (!strコマンド.StartsWith("SIZE", StringComparison.OrdinalIgnoreCase)) + return false; + + strコマンド = strコマンド.Substring(4); // strコマンド から先頭の"SIZE"文字を除去。 + + if (strコマンド.Length < 2) // サイズ番号の指定がない場合は無効。 + return false; + //----------------- + #endregion + + #region [ nWAV番号(36進数2桁)を取得。] + //----------------- + int nWAV番号 = C変換.n36進数2桁の文字列を数値に変換して返す(strコマンド.Substring(0, 2)); + + if (nWAV番号 < 0 || nWAV番号 >= 36 * 36) + { + Trace.TraceError("SIZEのWAV番号に 00~ZZ 以外の値または不正な文字列が指定されました。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数); + return false; + } + //----------------- + #endregion + + + // (2) パラメータを処理。 + + #region [ nサイズ値 を取得する。値は 0~100 に収める。] + //----------------- + int nサイズ値; + + if (!int.TryParse(strパラメータ, out nサイズ値)) + return true; // int変換に失敗しても、この行自体の処理は終えたのでtrueを返す。 + + nサイズ値 = Math.Min(Math.Max(nサイズ値, 0), 100); // 0未満は0、100超えは100に強制変換。 + //----------------- + #endregion + + #region [ nWAV番号で示されるサイズ未設定のWAVチップがあれば、そのサイズを変更する。無限管理に対応。] + //----------------- + if (this.n無限管理SIZE[nWAV番号] == -nWAV番号) // 初期状態では n無限管理SIZE[xx] = -xx である。この場合、#SIZExx がまだ出現していないことを意味する。 + { + foreach (CWAV wav in this.listWAV.Values) // これまでに出てきたWAVチップのうち、該当する(サイズが未設定の)チップのサイズを変更する(仕組み上、必ず後方参照となる)。 + { + if (wav.nチップサイズ == -nWAV番号) // #SIZExx 行より前の行に出現した #WAVxx では、チップサイズは -xx に初期化されている。 + wav.nチップサイズ = nサイズ値; + } + } + this.n無限管理SIZE[nWAV番号] = nサイズ値; // 次にこの nWAV番号を使うWAVチップが現れたら、負数の代わりに、このサイズ値が格納されることになる。 + //----------------- + #endregion + + return true; + } + private bool t入力_行解析_WAVPAN_PAN(string strコマンド, string strパラメータ, string strコメント) + { + // (1) コマンドを処理。 + + #region [ "WAVPAN" or "PAN" で始まらないコマンドは無効。] + //----------------- + if (strコマンド.StartsWith("WAVPAN", StringComparison.OrdinalIgnoreCase)) + strコマンド = strコマンド.Substring(6); // strコマンド から先頭の"WAVPAN"文字を除去。 + + else if (strコマンド.StartsWith("PAN", StringComparison.OrdinalIgnoreCase)) + strコマンド = strコマンド.Substring(3); // strコマンド から先頭の"PAN"文字を除去。 + + else + return false; + //----------------- + #endregion + + // (2) パラメータを処理。 + + if (strコマンド.Length < 2) + return false; // WAV番号 zz がないなら無効。 + + #region [ WAV番号 zz を取得する。] + //----------------- + int zz = C変換.n36進数2桁の文字列を数値に変換して返す(strコマンド.Substring(0, 2)); + if (zz < 0 || zz >= 36 * 36) + { + Trace.TraceError("WAVPAN(PAN)のWAV番号に 00~ZZ 以外の値または不正な文字列が指定されました。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数); + return false; + } + //----------------- + #endregion + + #region [ WAV番号 zz を持つWAVチップの位置を変更する。無限定義対応。] + //----------------- + int n位置; + if (int.TryParse(strパラメータ, out n位置)) + { + n位置 = Math.Min(Math.Max(n位置, -100), 100); // -100~+100 に丸める + + if (this.n無限管理PAN[zz] == (-10000 - zz)) // 初期状態では n無限管理PAN[zz] = -10000 - zz である。この場合、#WAVPANzz, #PANzz がまだ出現していないことを意味する。 + { + foreach (CWAV wav in this.listWAV.Values) // これまでに出てきたチップのうち、該当する(位置が未設定の)WAVチップの値を変更する(仕組み上、必ず後方参照となる)。 + { + if (wav.n位置 == (-10000 - zz)) // #WAVPANzz, #PANzz 行より前の行に出現した #WAVzz では、位置は -10000-zz に初期化されている。 + wav.n位置 = n位置; + } + } + this.n無限管理PAN[zz] = n位置; // 次にこの WAV番号 zz を使うWAVチップが現れたら、この位置が格納されることになる。 + } + //----------------- + #endregion + + return true; + } + private bool t入力_行解析_チップ配置(string strコマンド, string strパラメータ, string strコメント) + { + // (1) コマンドを処理。 + + if (strコマンド.Length != 5) // コマンドは必ず5文字であること。 + return false; + + #region [ n小節番号 を取得する。] + //----------------- + int n小節番号 = C変換.n小節番号の文字列3桁を数値に変換して返す(strコマンド.Substring(0, 3)); + if (n小節番号 < 0) + return false; + + n小節番号++; // 先頭に空の1小節を設ける。 + //----------------- + #endregion + + #region [ nチャンネル番号 を取得する。] + //----------------- + int nチャンネル番号 = -1; + + // ファイルフォーマットによって処理が異なる。 + #region [ (B) その他の場合:チャンネル番号は16進数2桁。] + //----------------- + nチャンネル番号 = C変換.n16進数2桁の文字列を数値に変換して返す(strコマンド.Substring(3, 2)); + + if (nチャンネル番号 < 0) + return false; + //----------------- + #endregion + //----------------- + #endregion + #region [ 取得したチャンネル番号で、this.bチップがある に該当があれば設定する。] + //----------------- + if ((nチャンネル番号 >= 0x11) && (nチャンネル番号 <= 0x1a)) + { + this.bチップがある.Drums = true; + } + else if ((nチャンネル番号 >= 0x20) && (nチャンネル番号 <= 0x27)) + { + this.bチップがある.Guitar = true; + } + else if ((nチャンネル番号 >= 0xA0) && (nチャンネル番号 <= 0xa7)) + { + this.bチップがある.Bass = true; + } + switch (nチャンネル番号) + { + case 0x18: + this.bチップがある.HHOpen = true; + break; + + case 0x19: + this.bチップがある.Ride = true; + break; + + case 0x1a: + this.bチップがある.LeftCymbal = true; + break; + + case 0x20: + this.bチップがある.OpenGuitar = true; + break; + + case 0xA0: + this.bチップがある.OpenBass = true; + break; + } + //----------------- + #endregion + + + // (2) Ch.02を処理。 + + #region [ 小節長変更(Ch.02)は他のチャンネルとはパラメータが特殊なので、先にとっとと終わらせる。 ] + //----------------- + if (nチャンネル番号 == 0x02) + { + // 小節長倍率を取得する。 + + double db小節長倍率 = 1.0; + //if( !double.TryParse( strパラメータ, out result ) ) + if (!this.TryParse(strパラメータ, out db小節長倍率)) // #23880 2010.12.30 yyagi: alternative TryParse to permit both '.' and ',' for decimal point + { + Trace.TraceError("小節長倍率に不正な値を指定しました。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数); + return false; + } + + // 小節長倍率チップを配置する。 + + this.listChip.Insert( + 0, + new CChip() + { + nチャンネル番号 = nチャンネル番号, + db実数値 = db小節長倍率, + n発声位置 = n小節番号 * 384, + }); + + return true; // 配置終了。 + } + //----------------- + #endregion + + + // (3) パラメータを処理。 + + if (string.IsNullOrEmpty(strパラメータ)) // パラメータはnullまたは空文字列ではないこと。 + return false; + + #region [ strパラメータ にオブジェクト記述を格納し、その n文字数 をカウントする。] + //----------------- + int n文字数 = 0; + + var sb = new StringBuilder(strパラメータ.Length); + + // strパラメータを先頭から1文字ずつ見ながら正規化(無効文字('_')を飛ばしたり不正な文字でエラーを出したり)し、sb へ格納する。 + + CharEnumerator ce = strパラメータ.GetEnumerator(); + while (ce.MoveNext()) + { + if (ce.Current == '_') // '_' は無視。 + continue; + + if (C変換.str36進数文字.IndexOf(ce.Current) < 0) // オブジェクト記述は36進数文字であること。 + { + Trace.TraceError("不正なオブジェクト指定があります。[{0}: {1}行]", this.strファイル名の絶対パス, this.n現在の行数); + return false; + } + + sb.Append(ce.Current); + n文字数++; + } + + strパラメータ = sb.ToString(); // 正規化された文字列になりました。 + + if ((n文字数 % 2) != 0) // パラメータの文字数が奇数の場合、最後の1文字を無視する。 + n文字数--; + //----------------- + #endregion + + + // (4) パラメータをオブジェクト数値に分解して配置する。 + + for (int i = 0; i < (n文字数 / 2); i++) // 2文字で1オブジェクト数値 + { + #region [ nオブジェクト数値 を1つ取得する。'00' なら無視。] + //----------------- + int nオブジェクト数値 = 0; + + if (nチャンネル番号 == 0x03) + { + // Ch.03 のみ 16進数2桁。 + nオブジェクト数値 = C変換.n16進数2桁の文字列を数値に変換して返す(strパラメータ.Substring(i * 2, 2)); + } + else + { + // その他のチャンネルは36進数2桁。 + nオブジェクト数値 = C変換.n36進数2桁の文字列を数値に変換して返す(strパラメータ.Substring(i * 2, 2)); + } + + if (nオブジェクト数値 == 0x00) + continue; + //----------------- + #endregion + + // オブジェクト数値に対応するチップを生成。 + + var chip = new CChip(); + + chip.nチャンネル番号 = nチャンネル番号; + chip.n発声位置 = (n小節番号 * 384) + ((384 * i) / (n文字数 / 2)); + chip.n整数値 = nオブジェクト数値; + chip.n整数値_内部番号 = nオブジェクト数値; + + #region [ chip.e楽器パート = ... ] + //----------------- + if ((nチャンネル番号 >= 0x11) && (nチャンネル番号 <= 0x1C)) + { + chip.e楽器パート = E楽器パート.DRUMS; + } + if ((nチャンネル番号 >= 0x20) && (nチャンネル番号 <= 0x27)) + { + chip.e楽器パート = E楽器パート.GUITAR; + } + if ((nチャンネル番号 >= 160) && (nチャンネル番号 <= 0xA7)) + { + chip.e楽器パート = E楽器パート.BASS; + } + //----------------- + #endregion + + #region [ 無限定義への対応 → 内部番号の取得。] + //----------------- + if (chip.nチャンネル番号 == 0x01) + { + chip.n整数値_内部番号 = this.n無限管理WAV[nオブジェクト数値]; // これが本当に一意なWAV番号となる。(無限定義の場合、chip.n整数値 は一意である保証がない。) + } + else if (chip.bBPMチップである) + { + chip.n整数値_内部番号 = this.n無限管理BPM[nオブジェクト数値]; // これが本当に一意なBPM番号となる。(同上。) + } + //----------------- + #endregion + + #region [ フィルインON/OFFチャンネル(Ch.53)の場合、発声位置を少し前後にずらす。] + //----------------- + if (nチャンネル番号 == 0x53) + { + // ずらすのは、フィルインONチップと同じ位置にいるチップでも確実にフィルインが発動し、 + // 同様に、フィルインOFFチップと同じ位置にいるチップでも確実にフィルインが終了するようにするため。 + + if ((nオブジェクト数値 > 0) && (nオブジェクト数値 != 2)) + { + chip.n発声位置 -= 32; // 384÷32=12 ということで、フィルインONチップは12分音符ほど前へ移動。 + } + else if (nオブジェクト数値 == 2) + { + chip.n発声位置 += 32; // 同じく、フィルインOFFチップは12分音符ほど後ろへ移動。 + } + } + //----------------- + #endregion + + // チップを配置。 + + this.listChip.Add(chip); + } + return true; + } + #region [#23880 2010.12.30 yyagi: コンマとスペースの両方を小数点として扱うTryParse] + /// + /// 小数点としてコンマとピリオドの両方を受け付けるTryParse() + /// + /// strings convert to double + /// parsed double value + /// s が正常に変換された場合は true。それ以外の場合は false。 + /// style が NumberStyles 値でないか、style に NumberStyles.AllowHexSpecifier 値が含まれている + private bool TryParse(string s, out double result) + { // #23880 2010.12.30 yyagi: alternative TryParse to permit both '.' and ',' for decimal point + // EU諸国での #BPM 123,45 のような記述に対応するため、 + // 小数点の最終位置を検出して、それをlocaleにあった + // 文字に置き換えてからTryParse()する + // 桁区切りの文字はスキップする + + const string DecimalSeparators = ".,"; // 小数点文字 + const string GroupSeparators = ".,' "; // 桁区切り文字 + const string NumberSymbols = "0123456789"; // 数値文字 + + int len = s.Length; // 文字列長 + int decimalPosition = len; // 真の小数点の位置 最初は文字列終端位置に仮置きする + + for (int i = 0; i < len; i++) + { // まず、真の小数点(一番最後に現れる小数点)の位置を求める + char c = s[i]; + if (NumberSymbols.IndexOf(c) >= 0) + { // 数値だったらスキップ + continue; + } + else if (DecimalSeparators.IndexOf(c) >= 0) + { // 小数点文字だったら、その都度位置を上書き記憶 + decimalPosition = i; + } + else if (GroupSeparators.IndexOf(c) >= 0) + { // 桁区切り文字の場合もスキップ + continue; + } + else + { // 数値_小数点_区切り文字以外がきたらループ終了 + break; + } + } + + StringBuilder decimalStr = new StringBuilder(16); + for (int i = 0; i < len; i++) + { // 次に、localeにあった数値文字列を生成する + char c = s[i]; + if (NumberSymbols.IndexOf(c) >= 0) + { // 数値だったら + decimalStr.Append(c); // そのままコピー + } + else if (DecimalSeparators.IndexOf(c) >= 0) + { // 小数点文字だったら + if (i == decimalPosition) + { // 最後に出現した小数点文字なら、localeに合った小数点を出力する + decimalStr.Append(CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator); + } + } + else if (GroupSeparators.IndexOf(c) >= 0) + { // 桁区切り文字だったら + continue; // 何もしない(スキップ) + } + else + { + break; + } + } + return double.TryParse(decimalStr.ToString(), out result); // 最後に、自分のlocale向けの文字列に対してTryParse実行 + } + #endregion + /// + /// 音源再生前の空白を追加するメソッド。 + /// + private void AddMusicPreTimeMs() + { + this.dbNowTime += TJAPlayer3.ConfigIni.MusicPreTimeMs; + this.dbNowBMScollTime += TJAPlayer3.ConfigIni.MusicPreTimeMs * this.dbNowBPM / 15000; + } + //----------------- + #endregion + } +} diff --git a/TJAPlayer3/Songs/CDTXCompanionFileFinder.cs b/TJAPlayer3/Songs/CDTXCompanionFileFinder.cs new file mode 100644 index 00000000..ade714a3 --- /dev/null +++ b/TJAPlayer3/Songs/CDTXCompanionFileFinder.cs @@ -0,0 +1,228 @@ +using System.Diagnostics; +using System.IO; +using System.Text; + +namespace TJAPlayer3 +{ + internal static class CDTXCompanionFileFinder + { + internal static string FindFileName( + string directory, + string mainFileName, + string expectedCompanionFileName) + { + var expectedCompanionPath = Path.Combine(directory, expectedCompanionFileName); + + if (File.Exists(expectedCompanionPath)) + { + return expectedCompanionFileName; + } + + // If we could not find the file by its exact provided name, in + // the vast majority of cases it has been mangled during zip + // compression by a zip tool which is not properly aware of + // multi-byte encodings, Unicode, etc. When decompressed, such + // zipped files end up a file names which are simply the raw bytes + // of the Shift-JIS encoded form. Some of these bytes will be + // invalid as characters of file names and will have been further + // mangled, usually to a single underscore character. + + // To begin finding the right file, we first need to get the raw + // bytes that would comprise the file name if encoded into + // Shift-JIS. + var encodedCompanionFileNameBytes = Encoding.GetEncoding("Shift_JIS").GetBytes(expectedCompanionFileName); + + // Here we have a helper method that will be used to try finding + // the file by interpreting the byte representation encoded + // just above, this time in terms of some other encoding which + // might be in use in the user's file system. + bool TryFindViaDecodedFileName(string prefix, Encoding encoding, out string foundCompanionFileName) + { + var decodedCompanionFileName = DecodeToLegalFileName(encodedCompanionFileNameBytes, encoding); + + try + { + if (!File.Exists(Path.Combine(directory, decodedCompanionFileName))) + { + foundCompanionFileName = null; + return false; + } + } + catch + { + Trace.TraceWarning( + $"{nameof(CDTXCompanionFileFinder)} could not find expected file '{expectedCompanionPath}' and could not check the existence of a file via {prefix} '{encoding.EncodingName}'. Possible illegal file path when combining directory '{directory}' with encoded file name '{decodedCompanionFileName}'."); + + foundCompanionFileName = null; + return false; + } + + Trace.TraceInformation( + $"{nameof(CDTXCompanionFileFinder)} could not find expected file '{expectedCompanionPath}' but found '{decodedCompanionFileName}' via {prefix} '{encoding.EncodingName}', Code Page {encoding.CodePage}, Windows Code Page {encoding.WindowsCodePage}."); + + foundCompanionFileName = decodedCompanionFileName; + return true; + } + + // Attempt to find the file as if the companion file's name was + // mangled into codepage 437 (effectively the legacy DOS codepage, + // and the one used by zip tools that are not unicode aware.) + // This step finds >99% of files with mangled names. + if (TryFindViaDecodedFileName( + "Encoding.GetEncoding(437)", + Encoding.GetEncoding(437), + out var foundCompanionFileNameViaEncoding437)) + { + return foundCompanionFileNameViaEncoding437; + } + + // Attempt to find the file as if the companion file's name + // was mangled into this computer's default encoding. This case + // has not been observed during testing on US English computers, + // but it is safe to perform and may assist other locales. + if (TryFindViaDecodedFileName( + "Encoding.Default", + Encoding.Default, + out var foundCompanionFileNameViaEncodingDefault)) + { + return foundCompanionFileNameViaEncodingDefault; + } + + // If the companion file still cannot be found, try to find a file + // with the expected extension but having the same file name as the + // main file with which it is associated (in most use cases: the .tja file.) + if (TryFindViaMainFileName( + directory, + mainFileName, + expectedCompanionPath, + out var foundCompanionFileNameByMainFileName)) + { + return foundCompanionFileNameByMainFileName; + } + + // If the file still cannot be found, try to find a single file + // with the expected supplementary file extension. (If more than + // one file is found with the same extension, we can't reliably + // choose the right one of them.) + if (TryFindViaCompanionFileExtension( + directory, + expectedCompanionPath, + out var foundCompanionFileNameByExtension)) + { + return foundCompanionFileNameByExtension; + } + + // If the file still cannot be found, produce a warning + // and return the original file name unchanged. + + Trace.TraceWarning( + $"{nameof(CDTXCompanionFileFinder)} could not find expected file '{expectedCompanionPath}' by any available means."); + + return expectedCompanionFileName; + } + + private static string DecodeToLegalFileName(byte[] encodedBytes, Encoding encoding) + { + // Decode and then replace characters which are illegal in file + // names in all locales, except for the backslash character which + // will be handled immediately after this. + var decodedBeforeDirectoryRemoval = encoding.GetString(encodedBytes) + .Replace('<', '_') + .Replace('>', '_') + .Replace(':', '_') + .Replace('"', '_') + .Replace('/', '_') + .Replace('|', '_') + .Replace('?', '_') + .Replace('*', '_'); + + // During decompression of incorrectly-generated zip files, + // Shift-JIS characters which encode to a representation that + // includes a backslash result in the decompressor placing the files + // in a subdirectory (or even subdirectories) based on characters + // before and between all backslashes, and then names the file based + // on the characters appearing after the final backslash. In these + // cases, we're already parsing files in one of those generated + // subdirectories and have only to deal with the file names having + // been abbreviated. We can usually find such files in the + // applicable directory via the substring after the final backslash. + var lastIndexOfBackslash = decodedBeforeDirectoryRemoval.LastIndexOf('\\'); + return lastIndexOfBackslash == -1 + ? decodedBeforeDirectoryRemoval + : decodedBeforeDirectoryRemoval.Substring(lastIndexOfBackslash + 1); + } + + private static bool TryFindViaMainFileName( + string directory, + string mainFileName, + string expectedCompanionPath, + out string foundCompanionFileName) + { + var mainFilePath = Path.Combine(directory, mainFileName); + + var companionFileExtension = Path.GetExtension(expectedCompanionPath); + + var mainFilePathWithCompanionFileExtension = + Path.ChangeExtension(mainFilePath, companionFileExtension); + + // Whether mangled or not, most companion files have names which + // match the name of the main file, except for the difference in + // the file extension. We can check for these by determining what + // the file might be called when the extension is replaced with the + // appropriate one and then check for the existence of that file. + var mainFileNameWithCompanionFileExtension = + Path.GetFileName(mainFilePathWithCompanionFileExtension); + if (File.Exists(mainFilePathWithCompanionFileExtension)) + { + Trace.TraceInformation( + $"{nameof(CDTXCompanionFileFinder)} could not find expected file '{expectedCompanionPath}' but found '{mainFileNameWithCompanionFileExtension}' by matching the '{mainFileName}' file name with the expected file extension."); + + foundCompanionFileName = mainFileNameWithCompanionFileExtension; + return true; + } + + foundCompanionFileName = null; + return false; + } + + private static bool TryFindViaCompanionFileExtension( + string directory, + string expectedCompanionPath, + out string foundCompanionFileName) + { + var companionFileExtension = Path.GetExtension(expectedCompanionPath); + + if (string.IsNullOrEmpty(companionFileExtension)) + { + Trace.TraceWarning( + $"{nameof(CDTXCompanionFileFinder)} could not find expected file '{expectedCompanionPath}' and could not search for appropriate sibling files because this file has no extension."); + } + else + { + // If no more precise approach can find the right file, we can + // usually safely find it by looking for any file with the + // expected file extension in the same folder as the main file. + // However, if someone extracts a collection of songs into a + // single folder, we will see many files with the expected + // extension. Therefore, we will only treat the file as found + // if there is one and only one file with the expected file + // extension within in the directory in question. + var filesWithTheCompanionFileExtension = + Directory.GetFiles(directory, "*" + companionFileExtension); + if (filesWithTheCompanionFileExtension.Length == 1) + { + var foundCompanionFilePath = filesWithTheCompanionFileExtension[0]; + foundCompanionFileName = Path.GetFileName(foundCompanionFilePath); + + Trace.TraceInformation( + $"{nameof(CDTXCompanionFileFinder)} could not find expected file '{expectedCompanionPath}' but found '{foundCompanionFileName}' by searching for a single sibling file with the expected extension."); + + return true; + } + } + + foundCompanionFileName = null; + return false; + } + } +} \ No newline at end of file diff --git a/TJAPlayer3/Songs/CDTXStyleExtractor.cs b/TJAPlayer3/Songs/CDTXStyleExtractor.cs new file mode 100644 index 00000000..a43568d8 --- /dev/null +++ b/TJAPlayer3/Songs/CDTXStyleExtractor.cs @@ -0,0 +1,546 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Text; +using System.Text.RegularExpressions; + +namespace TJAPlayer3 +{ + /// + /// CDTXStyleExtractor determines if there is a session notation, and if there is then + /// it returns a sheet of music clipped according to the specified player Side. + /// + /// The process operates as follows: + /// 1. Break the string up into top-level sections of the following types: + /// a) STYLE Single + /// b) STYLE Double/Couple + /// c) STYLE unrecognized + /// d) non-STYLE + /// 2. Within the top-level sections, break each up into sub-sections of the following types: + /// a) sheet START P1 + /// b) sheet START P2 + /// c) sheet START bare + /// d) sheet START unrecognized + /// e) non-sheet + /// 3. For the current seqNo, rank the found sheets + /// using a per-seqNo set of rankings for each + /// relevant section/subsection combination. + /// 4. Determine the best-ranked sheet + /// 5. Remove sheets other than the best-ranked + /// 6. Remove top-level STYLE-type sections which no longer contain a sheet + /// 7. From supported STYLE-type sections, remove non-sheet subsections beyond + /// the selected sheet, to reduce risk of incorrect command processing. + /// 8. Reassemble the string + /// + public static class CDTXStyleExtractor + { + private const RegexOptions StyleExtractorRegexOptions = + RegexOptions.Compiled | + RegexOptions.CultureInvariant | + RegexOptions.IgnoreCase | + RegexOptions.Multiline | + RegexOptions.Singleline; + + private const string StylePrefixRegexPattern = @"^STYLE\s*:\s*"; + private const string SheetStartPrefixRegexPattern = @"^#START"; + + private static readonly string StyleSingleSectionRegexMatchPattern = + $"{StylePrefixRegexPattern}(?:Single|1)"; + + private static readonly string StyleDoubleSectionRegexMatchPattern = + $"{StylePrefixRegexPattern}(?:Double|Couple|2)"; + + private static readonly string StyleUnrecognizedSectionRegexMatchPattern = + $"{StylePrefixRegexPattern}"; + + private static readonly string SheetStartBareRegexMatchPattern = + $"{SheetStartPrefixRegexPattern}$"; + + private static readonly string SheetStartP1RegexMatchPattern = + $"{SheetStartPrefixRegexPattern}\\s*P1"; + + private static readonly string SheetStartP2RegexMatchPattern = + $"{SheetStartPrefixRegexPattern}\\s*P2"; + + private static readonly string SheetStartUnrecognizedRegexMatchPattern = + $"{SheetStartPrefixRegexPattern}.*$"; + + private static readonly Regex SectionSplitRegex = new Regex($"(?={StylePrefixRegexPattern})", StyleExtractorRegexOptions); + private static readonly Regex SubSectionSplitRegex = new Regex($"(?={SheetStartPrefixRegexPattern})|(?<=#END\\n)", StyleExtractorRegexOptions); + + private static readonly Regex StyleSingleSectionMatchRegex = new Regex(StyleSingleSectionRegexMatchPattern, StyleExtractorRegexOptions); + private static readonly Regex StyleDoubleSectionMatchRegex = new Regex(StyleDoubleSectionRegexMatchPattern, StyleExtractorRegexOptions); + private static readonly Regex StyleUnrecognizedSectionMatchRegex = new Regex(StyleUnrecognizedSectionRegexMatchPattern, StyleExtractorRegexOptions); + + private static readonly Regex SheetStartPrefixMatchRegex = new Regex(SheetStartPrefixRegexPattern, StyleExtractorRegexOptions); + private static readonly Regex SheetStartBareMatchRegex = new Regex(SheetStartBareRegexMatchPattern, StyleExtractorRegexOptions); + private static readonly Regex SheetStartP1MatchRegex = new Regex(SheetStartP1RegexMatchPattern, StyleExtractorRegexOptions); + private static readonly Regex SheetStartP2MatchRegex = new Regex(SheetStartP2RegexMatchPattern, StyleExtractorRegexOptions); + private static readonly Regex SheetStartUnrecognizedMatchRegex = new Regex(SheetStartUnrecognizedRegexMatchPattern, StyleExtractorRegexOptions); + + private static readonly SectionKindAndSubSectionKind StyleSingleAndSheetStartBare = + new SectionKindAndSubSectionKind(SectionKind.StyleSingle, SubSectionKind.SheetStartBare); + + private static readonly SectionKindAndSubSectionKind StyleSingleAndSheetStartP1 = + new SectionKindAndSubSectionKind(SectionKind.StyleSingle, SubSectionKind.SheetStartP1); + + private static readonly SectionKindAndSubSectionKind StyleSingleAndSheetStartP2 = + new SectionKindAndSubSectionKind(SectionKind.StyleSingle, SubSectionKind.SheetStartP2); + + private static readonly SectionKindAndSubSectionKind StyleSingleAndSheetStartUnrecognized = + new SectionKindAndSubSectionKind(SectionKind.StyleSingle, SubSectionKind.SheetStartUnrecognized); + + private static readonly SectionKindAndSubSectionKind StyleDoubleAndSheetStartBare = + new SectionKindAndSubSectionKind(SectionKind.StyleDouble, SubSectionKind.SheetStartBare); + + private static readonly SectionKindAndSubSectionKind StyleDoubleAndSheetStartP1 = + new SectionKindAndSubSectionKind(SectionKind.StyleDouble, SubSectionKind.SheetStartP1); + + private static readonly SectionKindAndSubSectionKind StyleDoubleAndSheetStartP2 = + new SectionKindAndSubSectionKind(SectionKind.StyleDouble, SubSectionKind.SheetStartP2); + + private static readonly SectionKindAndSubSectionKind StyleDoubleAndSheetStartUnrecognized = + new SectionKindAndSubSectionKind(SectionKind.StyleDouble, SubSectionKind.SheetStartUnrecognized); + + private static readonly SectionKindAndSubSectionKind StyleUnrecognizedAndSheetStartBare = + new SectionKindAndSubSectionKind(SectionKind.StyleUnrecognized, SubSectionKind.SheetStartBare); + + private static readonly SectionKindAndSubSectionKind StyleUnrecognizedAndSheetStartP1 = + new SectionKindAndSubSectionKind(SectionKind.StyleUnrecognized, SubSectionKind.SheetStartP1); + + private static readonly SectionKindAndSubSectionKind StyleUnrecognizedAndSheetStartP2 = + new SectionKindAndSubSectionKind(SectionKind.StyleUnrecognized, SubSectionKind.SheetStartP2); + + private static readonly SectionKindAndSubSectionKind StyleUnrecognizedAndSheetStartUnrecognized = + new SectionKindAndSubSectionKind(SectionKind.StyleUnrecognized, SubSectionKind.SheetStartUnrecognized); + + private static readonly SectionKindAndSubSectionKind NonStyleAndSheetStartBare = + new SectionKindAndSubSectionKind(SectionKind.NonStyle, SubSectionKind.SheetStartBare); + + private static readonly SectionKindAndSubSectionKind NonStyleAndSheetStartP1 = + new SectionKindAndSubSectionKind(SectionKind.NonStyle, SubSectionKind.SheetStartP1); + + private static readonly SectionKindAndSubSectionKind NonStyleAndSheetStartP2 = + new SectionKindAndSubSectionKind(SectionKind.NonStyle, SubSectionKind.SheetStartP2); + + private static readonly SectionKindAndSubSectionKind NonStyleAndSheetStartUnrecognized = + new SectionKindAndSubSectionKind(SectionKind.NonStyle, SubSectionKind.SheetStartUnrecognized); + + private static readonly IDictionary[] + SeqNoSheetRanksBySectionKindAndSubSectionKind = + { + // seqNo 0 + new Dictionary + { + [StyleSingleAndSheetStartBare] = 1, + [StyleSingleAndSheetStartP1] = 2, + [StyleSingleAndSheetStartUnrecognized] = 3, + [NonStyleAndSheetStartBare] = 4, + [NonStyleAndSheetStartP1] = 5, + [NonStyleAndSheetStartUnrecognized] = 6, + + [StyleUnrecognizedAndSheetStartBare] = 7, + [StyleUnrecognizedAndSheetStartUnrecognized] = 8, + [StyleUnrecognizedAndSheetStartP1] = 9, + [StyleDoubleAndSheetStartP1] = 10, + [StyleDoubleAndSheetStartBare] = 11, + [StyleDoubleAndSheetStartUnrecognized] = 12, + + [StyleSingleAndSheetStartP2] = 13, + [NonStyleAndSheetStartP2] = 14, + [StyleUnrecognizedAndSheetStartP2] = 15, + [StyleDoubleAndSheetStartP2] = 16, + }, + // seqNo 1 + new Dictionary + { + [StyleDoubleAndSheetStartP1] = 1, + [StyleUnrecognizedAndSheetStartP1] = 2, + [NonStyleAndSheetStartP1] = 3, + [StyleSingleAndSheetStartP1] = 4, + + [StyleDoubleAndSheetStartBare] = 5, + [StyleDoubleAndSheetStartUnrecognized] = 6, + [StyleUnrecognizedAndSheetStartBare] = 7, + [StyleUnrecognizedAndSheetStartUnrecognized] = 8, + [StyleSingleAndSheetStartBare] = 9, + [StyleSingleAndSheetStartUnrecognized] = 10, + [NonStyleAndSheetStartBare] = 11, + [NonStyleAndSheetStartUnrecognized] = 12, + + [StyleDoubleAndSheetStartP2] = 13, + [StyleUnrecognizedAndSheetStartP2] = 14, + [NonStyleAndSheetStartP2] = 15, + [StyleSingleAndSheetStartP2] = 16, + }, + // seqNo 2 + new Dictionary + { + [StyleDoubleAndSheetStartP2] = 1, + [StyleUnrecognizedAndSheetStartP2] = 2, + [NonStyleAndSheetStartP2] = 3, + [StyleSingleAndSheetStartP2] = 4, + + [StyleDoubleAndSheetStartUnrecognized] = 5, + [StyleDoubleAndSheetStartBare] = 6, + [StyleUnrecognizedAndSheetStartUnrecognized] = 7, + [StyleUnrecognizedAndSheetStartBare] = 8, + [StyleSingleAndSheetStartUnrecognized] = 9, + [StyleSingleAndSheetStartBare] = 10, + [NonStyleAndSheetStartUnrecognized] = 11, + [NonStyleAndSheetStartBare] = 12, + + [StyleDoubleAndSheetStartP1] = 13, + [StyleUnrecognizedAndSheetStartP1] = 14, + [NonStyleAndSheetStartP1] = 15, + [StyleSingleAndSheetStartP1] = 16, + }, + }; + + public static string tセッション譜面がある(string strTJA, int seqNo, string strファイル名の絶対パス) + { + void TraceError(string subMessage) + { + Trace.TraceError(FormatTraceMessage(subMessage)); + } + + string FormatTraceMessage(string subMessage) + { + return $"{nameof(CDTXStyleExtractor)} {subMessage} (seqNo={seqNo}, {strファイル名の絶対パス})"; + } + + //入力された譜面がnullでないかチェック。 + if (string.IsNullOrEmpty(strTJA)) + { + TraceError("is returning its input value early due to null or empty strTJA."); + return strTJA; + } + + // 1. Break the string up into top-level sections of the following types: + // a) STYLE Single + // b) STYLE Double/Couple + // c) STYLE unrecognized + // d) non-STYLE + var sections = GetSections(strTJA); + + // 2. Within the top-level sections, break each up into sub-sections of the following types: + // a) sheet START P1 + // b) sheet START P2 + // c) sheet START bare + // d) sheet START unrecognized + // e) non-sheet + SubdivideSectionsIntoSubSections(sections); + + // 3. For the current seqNo, rank the found sheets + // using a per-seqNo set of rankings for each + // relevant section/subsection combination. + RankSheets(seqNo, sections); + + // 4. Determine the best-ranked sheet + int bestRank; + try + { + bestRank = GetBestRank(sections); + } + catch (Exception) + { + TraceError("is returning its input value early due to an inability to determine the best rank. This can occur if a course contains no #START."); + return strTJA; + } + + // 5. Remove sheets other than the best-ranked + RemoveSheetsOtherThanTheBestRanked(sections, bestRank); + + // 6. Remove top-level STYLE-type sections which no longer contain a sheet + RemoveRecognizedStyleSectionsWithoutSheets(sections); + + // 7. From supported STYLE-type sections, remove non-sheet subsections beyond + // the selected sheet, to reduce risk of incorrect command processing. + RemoveStyleSectionSubSectionsBeyondTheSelectedSheet(sections); + + // 8. Reassemble the string + return Reassemble(sections); + } + + // 1. Break the string up into top-level sections of the following types: + // a) STYLE Single + // b) STYLE Double/Couple + // c) STYLE unrecognized + // d) non-STYLE + private static List
GetSections(string strTJA) + { + return SectionSplitRegex + .Split(strTJA) + .Select(o => new Section(GetSectionKind(o), o)) + .ToList(); + } + + private static SectionKind GetSectionKind(string section) + { + if (StyleSingleSectionMatchRegex.IsMatch(section)) + { + return SectionKind.StyleSingle; + } + + if (StyleDoubleSectionMatchRegex.IsMatch(section)) + { + return SectionKind.StyleDouble; + } + + if (StyleUnrecognizedSectionMatchRegex.IsMatch(section)) + { + return SectionKind.StyleUnrecognized; + } + + return SectionKind.NonStyle; + } + + private enum SectionKind + { + StyleSingle, + StyleDouble, + StyleUnrecognized, + NonStyle + } + + private sealed class Section + { + public readonly SectionKind SectionKind; + public readonly string OriginalRawValue; + + public List SubSections; + + public Section(SectionKind sectionKind, string originalRawValue) + { + SectionKind = sectionKind; + OriginalRawValue = originalRawValue; + } + } + + // 2. Within the top-level sections, break each up into sub-sections of the following types: + // a) sheet START P1 + // b) sheet START P2 + // c) sheet START bare + // d) sheet START unrecognized + // e) non-sheet + private static void SubdivideSectionsIntoSubSections(IEnumerable
sections) + { + foreach (var section in sections) + { + section.SubSections = SubSectionSplitRegex + .Split(section.OriginalRawValue) + .Select(o => new SubSection(GetSubsectionKind(o), o)) + .ToList(); + } + } + + private static SubSectionKind GetSubsectionKind(string subsection) + { + if (SheetStartPrefixMatchRegex.IsMatch(subsection)) + { + if (SheetStartBareMatchRegex.IsMatch(subsection)) + { + return SubSectionKind.SheetStartBare; + } + + if (SheetStartP1MatchRegex.IsMatch(subsection)) + { + return SubSectionKind.SheetStartP1; + } + + if (SheetStartP2MatchRegex.IsMatch(subsection)) + { + return SubSectionKind.SheetStartP2; + } + + if (SheetStartUnrecognizedMatchRegex.IsMatch(subsection)) + { + return SubSectionKind.SheetStartUnrecognized; + } + } + + return SubSectionKind.NonSheet; + } + + private enum SubSectionKind + { + SheetStartP1, + SheetStartP2, + SheetStartBare, + SheetStartUnrecognized, + NonSheet + } + + private sealed class SubSection + { + public readonly SubSectionKind SubSectionKind; + public readonly string OriginalRawValue; + + public int Rank; + + public SubSection(SubSectionKind subSectionKind, string originalRawValue) + { + SubSectionKind = subSectionKind; + OriginalRawValue = originalRawValue; + } + } + + // 3. For the current seqNo, rank the found sheets + // using a per-seqNo set of rankings for each + // relevant section/subsection combination. + private static void RankSheets(int seqNo, IList
sections) + { + var sheetRanksBySectionKindAndSubSectionKind = SeqNoSheetRanksBySectionKindAndSubSectionKind[seqNo]; + + foreach (var section in sections) + { + var sectionKind = section.SectionKind; + + foreach (var subSection in section.SubSections) + { + var subSectionKind = subSection.SubSectionKind; + + if (subSectionKind == SubSectionKind.NonSheet) + { + continue; + } + + var sectionKindAndSubSectionKind = new SectionKindAndSubSectionKind( + sectionKind, subSectionKind); + + subSection.Rank = sheetRanksBySectionKindAndSubSectionKind[sectionKindAndSubSectionKind]; + } + } + } + + private sealed class SectionKindAndSubSectionKind : IEquatable + { + public readonly SectionKind SectionKind; + public readonly SubSectionKind SubSectionKind; + + public SectionKindAndSubSectionKind(SectionKind sectionKind, SubSectionKind subSectionKind) + { + SectionKind = sectionKind; + SubSectionKind = subSectionKind; + } + + public bool Equals(SectionKindAndSubSectionKind other) + { + if (ReferenceEquals(null, other)) return false; + if (ReferenceEquals(this, other)) return true; + return SectionKind == other.SectionKind && SubSectionKind == other.SubSectionKind; + } + + public override bool Equals(object obj) + { + if (ReferenceEquals(null, obj)) return false; + if (ReferenceEquals(this, obj)) return true; + return obj is SectionKindAndSubSectionKind other && Equals(other); + } + + public override int GetHashCode() + { + unchecked + { + return ((int) SectionKind * 397) ^ (int) SubSectionKind; + } + } + + public static bool operator ==(SectionKindAndSubSectionKind left, SectionKindAndSubSectionKind right) + { + return Equals(left, right); + } + + public static bool operator !=(SectionKindAndSubSectionKind left, SectionKindAndSubSectionKind right) + { + return !Equals(left, right); + } + } + + // 4. Determine the best-ranked sheet + private static int GetBestRank(IList
sections) + { + return sections + .SelectMany(o => o.SubSections) + .Where(o => o.SubSectionKind != SubSectionKind.NonSheet) + .Select(o => o.Rank) + .Min(); + } + + // 5. Remove sheets other than the best-ranked + private static void RemoveSheetsOtherThanTheBestRanked(IList
sections, int bestRank) + { + // We can safely remove based on > bestRank because the subsection types + // which are never removed always have a Rank value of 0. + + foreach (var section in sections) + { + section.SubSections.RemoveAll(o => o.Rank > bestRank); + } + + // If there was a tie for the best sheet, + // take the first and remove the rest. + var extraBestRankedSheets = new HashSet(sections + .SelectMany(o => o.SubSections) + .Where(o => o.Rank == bestRank) + .Skip(1)); + + foreach (var section in sections) + { + section.SubSections.RemoveAll(extraBestRankedSheets.Contains); + } + } + + // 6. Remove top-level STYLE-type sections which no longer contain a sheet + private static void RemoveRecognizedStyleSectionsWithoutSheets(List
sections) + { + // Note that we dare not remove SectionKind.StyleUnrecognized instances without sheets. + // The reason is because there are plenty of .tja files with weird STYLE: header values + // and which are located very early in the file. Removing those sections would remove + // important information, and was one of the problems with the years-old splitting code + // which was replaced in late summer 2018 and which is now being overhauled in early fall 2018. + + sections.RemoveAll(o => + (o.SectionKind == SectionKind.StyleSingle || o.SectionKind == SectionKind.StyleDouble) && + o.SubSections.Count(subSection => subSection.SubSectionKind == SubSectionKind.NonSheet) == o.SubSections.Count); + } + + // 7. From supported STYLE-type sections, remove non-sheet subsections beyond + // the selected sheet, to reduce risk of incorrect command processing. + private static void RemoveStyleSectionSubSectionsBeyondTheSelectedSheet(List
sections) + { + foreach (var section in sections) + { + if (section.SectionKind == SectionKind.StyleSingle || section.SectionKind == SectionKind.StyleDouble) + { + var subSections = section.SubSections; + + var lastIndex = subSections.FindIndex(o => o.SubSectionKind != SubSectionKind.NonSheet); + var removalIndex = lastIndex + 1; + + if (lastIndex != -1 && removalIndex < subSections.Count) + { + subSections.RemoveRange(removalIndex, subSections.Count - removalIndex); + } + } + } + } + + // 8. Reassemble the string + private static string Reassemble(List
sections) + { + var sb = new StringBuilder(); + + foreach (var section in sections) + { + foreach (var subSection in section.SubSections) + { + sb.Append(subSection.OriginalRawValue); + } + } + + return sb.ToString(); + } + } +} \ No newline at end of file diff --git a/TJAPlayer3/Songs/CScoreIni.cs b/TJAPlayer3/Songs/CScoreIni.cs new file mode 100644 index 00000000..a3cb8634 --- /dev/null +++ b/TJAPlayer3/Songs/CScoreIni.cs @@ -0,0 +1,1545 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Runtime.InteropServices; +using System.Drawing; +using System.Drawing.Imaging; +using System.Diagnostics; +using System.IO; +using System.Security.Cryptography; +using FDK; +using TJAPlayer3; + +namespace TJAPlayer3 +{ + public class CScoreIni + { + // プロパティ + + // [File] セクション + public STファイル stファイル; + [StructLayout( LayoutKind.Sequential )] + public struct STファイル + { + public string Title; + public string Name; + public string Hash; + public int PlayCountDrums; + public int PlayCountGuitar; + public int PlayCountBass; + // #23596 10.11.16 add ikanick-----/ + public int ClearCountDrums; + public int ClearCountGuitar; + public int ClearCountBass; + // #24459 2011.2.24 yyagi----------/ + public STDGBVALUE BestRank; + // --------------------------------/ + public int HistoryCount; + public string[] History; + public int BGMAdjust; + } + + // 演奏記録セクション(9種類) + public STセクション stセクション; + [StructLayout( LayoutKind.Sequential )] + public struct STセクション + { + public CScoreIni.C演奏記録 HiScoreDrums; + public CScoreIni.C演奏記録 HiSkillDrums; + public CScoreIni.C演奏記録 HiScoreGuitar; + public CScoreIni.C演奏記録 HiSkillGuitar; + public CScoreIni.C演奏記録 HiScoreBass; + public CScoreIni.C演奏記録 HiSkillBass; + public CScoreIni.C演奏記録 LastPlayDrums; // #23595 2011.1.9 ikanick + public CScoreIni.C演奏記録 LastPlayGuitar; // + public CScoreIni.C演奏記録 LastPlayBass; // + public CScoreIni.C演奏記録 this[ int index ] + { + get + { + switch( index ) + { + case 0: + return this.HiScoreDrums; + + case 1: + return this.HiSkillDrums; + + case 2: + return this.HiScoreGuitar; + + case 3: + return this.HiSkillGuitar; + + case 4: + return this.HiScoreBass; + + case 5: + return this.HiSkillBass; + + // #23595 2011.1.9 ikanick + case 6: + return this.LastPlayDrums; + + case 7: + return this.LastPlayGuitar; + + case 8: + return this.LastPlayBass; + //------------ + } + throw new IndexOutOfRangeException(); + } + set + { + switch( index ) + { + case 0: + this.HiScoreDrums = value; + return; + + case 1: + this.HiSkillDrums = value; + return; + + case 2: + this.HiScoreGuitar = value; + return; + + case 3: + this.HiSkillGuitar = value; + return; + + case 4: + this.HiScoreBass = value; + return; + + case 5: + this.HiSkillBass = value; + return; + // #23595 2011.1.9 ikanick + case 6: + this.LastPlayDrums = value; + return; + + case 7: + this.LastPlayGuitar = value; + return; + + case 8: + this.LastPlayBass = value; + return; + //------------------ + } + throw new IndexOutOfRangeException(); + } + } + } + public enum Eセクション種別 : int + { + Unknown = -2, + File = -1, + HiScoreDrums = 0, + HiSkillDrums = 1, + HiScoreGuitar = 2, + HiSkillGuitar = 3, + HiScoreBass = 4, + HiSkillBass = 5, + LastPlayDrums = 6, // #23595 2011.1.9 ikanick + LastPlayGuitar = 7, // + LastPlayBass = 8, // + } + public enum ERANK : int // #24459 yyagi + { + SS = 0, + S = 1, + A = 2, + B = 3, + C = 4, + D = 5, + E = 6, + UNKNOWN = 99 + } + public class C演奏記録 + { + public STAUTOPLAY bAutoPlay; + public bool bDrums有効; + public bool bGuitar有効; + public STDGBVALUE bHidden; + public STDGBVALUE bLeft; + public STDGBVALUE bLight; + public STDGBVALUE bReverse; + public bool bSTAGEFAILED有効; + public STDGBVALUE bSudden; + public STDGBVALUE eInvisible; + public bool bTight; + public bool b演奏にMIDI入力を使用した; + public bool b演奏にキーボードを使用した; + public bool b演奏にジョイパッドを使用した; + public bool b演奏にマウスを使用した; + public double dbゲーム型スキル値; + public double db演奏型スキル値; + public Eダークモード eDark; + public STDGBVALUE eRandom; + public Eダメージレベル eダメージレベル; + public STDGBVALUE f譜面スクロール速度; + public string Hash; + public int nGoodになる範囲ms; + public int nGood数; + public int nGreatになる範囲ms; + public int nGreat数; + public int nMiss数; + public int nPerfectになる範囲ms; + public int nPerfect数; + public int nPoorになる範囲ms; + public int nPoor数; + public int nPerfect数_Auto含まない; + public int nGreat数_Auto含まない; + public int nGood数_Auto含まない; + public int nPoor数_Auto含まない; + public int nMiss数_Auto含まない; + public long nスコア; + public int n連打数; + public int n演奏速度分子; + public int n演奏速度分母; + public int n最大コンボ数; + public int n全チップ数; + public string strDTXManiaのバージョン; + public bool レーン9モード; + public int nRisky; // #23559 2011.6.20 yyagi 0=OFF, 1-10=Risky + public string 最終更新日時; + public float fゲージ; + public int[] n良 = new int[(int)Difficulty.Total]; + public int[] n可 = new int[(int)Difficulty.Total]; + public int[] n不可 = new int[(int)Difficulty.Total]; + public int[] n連打 = new int[(int)Difficulty.Total]; + public int[] nハイスコア = new int[(int)Difficulty.Total]; + public Dan_C[] Dan_C; + public int[] nクリア; //0:未クリア 1:クリア 2:フルコンボ 3:ドンダフルコンボ + public int[] nスコアランク; //0:未取得 1:白粋 2:銅粋 3:銀粋 4:金雅 5:桃雅 6:紫雅 7:虹極 + + public C演奏記録() + { + this.bAutoPlay = new STAUTOPLAY(); + this.bAutoPlay.LC = false; + this.bAutoPlay.HH = false; + this.bAutoPlay.SD = false; + this.bAutoPlay.BD = false; + this.bAutoPlay.HT = false; + this.bAutoPlay.LT = false; + this.bAutoPlay.FT = false; + this.bAutoPlay.CY = false; + this.bAutoPlay.Guitar = false; + this.bAutoPlay.Bass = false; + this.bAutoPlay.GtR = false; + this.bAutoPlay.GtG = false; + this.bAutoPlay.GtB = false; + this.bAutoPlay.GtPick = false; + this.bAutoPlay.GtW = false; + this.bAutoPlay.BsR = false; + this.bAutoPlay.BsG = false; + this.bAutoPlay.BsB = false; + this.bAutoPlay.BsPick = false; + this.bAutoPlay.BsW = false; + + this.bSudden = new STDGBVALUE(); + this.bSudden.Drums = false; + this.bSudden.Guitar = false; + this.bSudden.Bass = false; + this.bHidden = new STDGBVALUE(); + this.bHidden.Drums = false; + this.bHidden.Guitar = false; + this.bHidden.Bass = false; + this.eInvisible = new STDGBVALUE(); + this.eInvisible.Drums = EInvisible.OFF; + this.eInvisible.Guitar = EInvisible.OFF; + this.eInvisible.Bass = EInvisible.OFF; + this.bReverse = new STDGBVALUE(); + this.bReverse.Drums = false; + this.bReverse.Guitar = false; + this.bReverse.Bass = false; + this.eRandom = new STDGBVALUE(); + this.eRandom.Drums = Eランダムモード.OFF; + this.eRandom.Guitar = Eランダムモード.OFF; + this.eRandom.Bass = Eランダムモード.OFF; + this.bLight = new STDGBVALUE(); + this.bLight.Drums = false; + this.bLight.Guitar = false; + this.bLight.Bass = false; + this.bLeft = new STDGBVALUE(); + this.bLeft.Drums = false; + this.bLeft.Guitar = false; + this.bLeft.Bass = false; + this.f譜面スクロール速度 = new STDGBVALUE(); + this.f譜面スクロール速度.Drums = 1f; + this.f譜面スクロール速度.Guitar = 1f; + this.f譜面スクロール速度.Bass = 1f; + this.n演奏速度分子 = 20; + this.n演奏速度分母 = 20; + this.bGuitar有効 = true; + this.bDrums有効 = true; + this.bSTAGEFAILED有効 = true; + this.eダメージレベル = Eダメージレベル.普通; + this.nPerfectになる範囲ms = 34; + this.nGreatになる範囲ms = 67; + this.nGoodになる範囲ms = 84; + this.nPoorになる範囲ms = 117; + this.strDTXManiaのバージョン = "Unknown"; + this.最終更新日時 = ""; + this.Hash = "00000000000000000000000000000000"; + this.レーン9モード = true; + this.nRisky = 0; // #23559 2011.6.20 yyagi + this.fゲージ = 0.0f; + this.nクリア = new int[5]; + this.nスコアランク = new int[5]; + Dan_C = new Dan_C[4]; + } + + public bool bフルコンボじゃない + { + get + { + return !this.bフルコンボである; + } + } + public bool bフルコンボである + { + get + { + return ( ( this.n最大コンボ数 > 0 ) && ( this.n最大コンボ数 == ( this.nPerfect数 + this.nGreat数 + this.nGood数 + this.nPoor数 + this.nMiss数 ) ) ); + } + } + + public bool b全AUTOじゃない + { + get + { + return !b全AUTOである; + } + } + public bool b全AUTOである + { + get + { + return (this.n全チップ数 - this.nPerfect数_Auto含まない - this.nGreat数_Auto含まない - this.nGood数_Auto含まない - this.nPoor数_Auto含まない - this.nMiss数_Auto含まない) == this.n全チップ数; + } + } +#if false + [StructLayout( LayoutKind.Sequential )] + public struct STAUTOPLAY + { + public bool LC; + public bool HH; + public bool SD; + public bool BD; + public bool HT; + public bool LT; + public bool FT; + public bool CY; + public bool RD; + public bool Guitar; + public bool Bass; + public bool GtR; + public bool GtG; + public bool GtB; + public bool GtPick; + public bool GtW; + public bool BsR; + public bool BsG; + public bool BsB; + public bool BsPick; + public bool BsW; + public bool this[ int index ] + { + get + { + switch ( index ) + { + case (int) Eレーン.LC: + return this.LC; + case (int) Eレーン.HH: + return this.HH; + case (int) Eレーン.SD: + return this.SD; + case (int) Eレーン.BD: + return this.BD; + case (int) Eレーン.HT: + return this.HT; + case (int) Eレーン.LT: + return this.LT; + case (int) Eレーン.FT: + return this.FT; + case (int) Eレーン.CY: + return this.CY; + case (int) Eレーン.RD: + return this.RD; + case (int) Eレーン.Guitar: + return this.Guitar; + case (int) Eレーン.Bass: + return this.Bass; + case (int) Eレーン.GtR: + return this.GtR; + case (int) Eレーン.GtG: + return this.GtG; + case (int) Eレーン.GtB: + return this.GtB; + case (int) Eレーン.GtPick: + return this.GtPick; + case (int) Eレーン.GtW: + return this.GtW; + case (int) Eレーン.BsR: + return this.BsR; + case (int) Eレーン.BsG: + return this.BsG; + case (int) Eレーン.BsB: + return this.BsB; + case (int) Eレーン.BsPick: + return this.BsPick; + case (int) Eレーン.BsW: + return this.BsW; + } + throw new IndexOutOfRangeException(); + } + set + { + switch ( index ) + { + case (int) Eレーン.LC: + this.LC = value; + return; + case (int) Eレーン.HH: + this.HH = value; + return; + case (int) Eレーン.SD: + this.SD = value; + return; + case (int) Eレーン.BD: + this.BD = value; + return; + case (int) Eレーン.HT: + this.HT = value; + return; + case (int) Eレーン.LT: + this.LT = value; + return; + case (int) Eレーン.FT: + this.FT = value; + return; + case (int) Eレーン.CY: + this.CY = value; + return; + case (int) Eレーン.RD: + this.RD = value; + return; + case (int) Eレーン.Guitar: + this.Guitar = value; + return; + case (int) Eレーン.Bass: + this.Bass = value; + return; + case (int) Eレーン.GtR: + this.GtR = value; + return; + case (int) Eレーン.GtG: + this.GtG = value; + return; + case (int) Eレーン.GtB: + this.GtB = value; + return; + case (int) Eレーン.GtPick: + this.GtPick = value; + return; + case (int) Eレーン.GtW: + this.GtW = value; + return; + case (int) Eレーン.BsR: + this.BsR = value; + return; + case (int) Eレーン.BsG: + this.BsG = value; + return; + case (int) Eレーン.BsB: + this.BsB = value; + return; + case (int) Eレーン.BsPick: + this.BsPick = value; + return; + case (int) Eレーン.BsW: + this.BsW = value; + return; + } + throw new IndexOutOfRangeException(); + } + } + } +#endif + } + + /// + /// .score.ini の存在するフォルダ(絶対パス;末尾に '\' はついていない)。 + /// 未保存などでファイル名がない場合は null。 + /// + public string iniファイルのあるフォルダ名 + { + get; + private set; + } + + /// + /// .score.ini のファイル名(絶対パス)。 + /// 未保存などでファイル名がない場合は null。 + /// + public string iniファイル名 + { + get; + private set; + } + + + // コンストラクタ + + public CScoreIni() + { + this.iniファイルのあるフォルダ名 = null; + this.iniファイル名 = null; + this.stファイル = new STファイル(); + stファイル.Title = ""; + stファイル.Name = ""; + stファイル.Hash = ""; + stファイル.History = new string[] { "", "", "", "", "" }; + stファイル.BestRank.Drums = (int)ERANK.UNKNOWN; // #24459 2011.2.24 yyagi + stファイル.BestRank.Guitar = (int)ERANK.UNKNOWN; // + stファイル.BestRank.Bass = (int)ERANK.UNKNOWN; // + + this.stセクション = new STセクション(); + stセクション.HiScoreDrums = new C演奏記録(); + stセクション.HiSkillDrums = new C演奏記録(); + stセクション.HiScoreGuitar = new C演奏記録(); + stセクション.HiSkillGuitar = new C演奏記録(); + stセクション.HiScoreBass = new C演奏記録(); + stセクション.HiSkillBass = new C演奏記録(); + stセクション.LastPlayDrums = new C演奏記録(); + stセクション.LastPlayGuitar = new C演奏記録(); + stセクション.LastPlayBass = new C演奏記録(); + } + + /// + /// 初期化後にiniファイルを読み込むコンストラクタ。 + /// 読み込んだiniに不正値があれば、それが含まれるセクションをリセットする。 + /// + public CScoreIni( string str読み込むiniファイル ) + : this() + { + this.t読み込み( str読み込むiniファイル ); + this.t全演奏記録セクションの整合性をチェックし不整合があればリセットする(); + } + + + // メソッド + + /// + /// 現在の this.Record[] オブジェクトの、指定されたセクションの情報が正当であるか否かを判定する。 + /// 真偽どちらでも、その内容は書き換えない。 + /// + /// 判定するセクション。 + /// 正当である(整合性がある)場合は true。 + public bool b整合性がある( Eセクション種別 eセクション ) + { + return true; // オープンソース化に伴い、整合性チェックを無効化。(2010.10.21) + } + + /// + /// 指定されたファイルの内容から MD5 値を求め、それを16進数に変換した文字列を返す。 + /// + /// MD5 を求めるファイル名。 + /// 算出結果の MD5 を16進数で並べた文字列。 + public static string tファイルのMD5を求めて返す( string ファイル名 ) + { + byte[] buffer = null; + FileStream stream = new FileStream( ファイル名, FileMode.Open, FileAccess.Read ); + buffer = new byte[ stream.Length ]; + stream.Read( buffer, 0, (int) stream.Length ); + stream.Close(); + StringBuilder builder = new StringBuilder(0x21); + { + MD5CryptoServiceProvider m = new MD5CryptoServiceProvider(); + byte[] buffer2 = m.ComputeHash(buffer); + foreach (byte num in buffer2) + builder.Append(num.ToString("x2")); + } + return builder.ToString(); + } + + /// + /// 指定された .score.ini を読み込む。内容の真偽は判定しない。 + /// + /// 読み込む .score.ini ファイルを指定します(絶対パスが安全)。 + public void t読み込み( string iniファイル名 ) + { + this.iniファイルのあるフォルダ名 = Path.GetDirectoryName( iniファイル名 ); + this.iniファイル名 = Path.GetFileName( iniファイル名 ); + + Eセクション種別 section = Eセクション種別.Unknown; + if( File.Exists( iniファイル名 ) ) + { + string str; + StreamReader reader = new StreamReader( iniファイル名, Encoding.GetEncoding( "Shift_JIS" ) ); + while( ( str = reader.ReadLine() ) != null ) + { + str = str.Replace( '\t', ' ' ).TrimStart( new char[] { '\t', ' ' } ); + if( ( str.Length != 0 ) && ( str[ 0 ] != ';' ) ) + { + try + { + string item; + string para; + C演奏記録 c演奏記録; + #region [ section ] + if ( str[ 0 ] == '[' ) + { + StringBuilder builder = new StringBuilder( 0x20 ); + int num = 1; + while( ( num < str.Length ) && ( str[ num ] != ']' ) ) + { + builder.Append( str[ num++ ] ); + } + string str2 = builder.ToString(); + if( str2.Equals( "File" ) ) + { + section = Eセクション種別.File; + } + else if( str2.Equals( "HiScore.Drums" ) ) + { + section = Eセクション種別.HiScoreDrums; + } + else if( str2.Equals( "HiSkill.Drums" ) ) + { + section = Eセクション種別.HiSkillDrums; + } + else if( str2.Equals( "HiScore.Guitar" ) ) + { + section = Eセクション種別.HiScoreGuitar; + } + else if( str2.Equals( "HiSkill.Guitar" ) ) + { + section = Eセクション種別.HiSkillGuitar; + } + else if( str2.Equals( "HiScore.Bass" ) ) + { + section = Eセクション種別.HiScoreBass; + } + else if (str2.Equals("HiSkill.Bass")) + { + section = Eセクション種別.HiSkillBass; + } + // #23595 2011.1.9 ikanick + else if (str2.Equals("LastPlay.Drums")) + { + section = Eセクション種別.LastPlayDrums; + } + else if (str2.Equals("LastPlay.Guitar")) + { + section = Eセクション種別.LastPlayGuitar; + } + else if (str2.Equals("LastPlay.Bass")) + { + section = Eセクション種別.LastPlayBass; + } + //---------------------------------------------------- + else + { + section = Eセクション種別.Unknown; + } + } + #endregion + else + { + string[] strArray = str.Split( new char[] { '=' } ); + if( strArray.Length == 2 ) + { + item = strArray[ 0 ].Trim(); + para = strArray[ 1 ].Trim(); + switch( section ) + { + case Eセクション種別.File: + { + if( !item.Equals( "Title" ) ) + { + goto Label_01C7; + } + this.stファイル.Title = para; + continue; + } + case Eセクション種別.HiScoreDrums: + case Eセクション種別.HiSkillDrums: + case Eセクション種別.HiScoreGuitar: + case Eセクション種別.HiSkillGuitar: + case Eセクション種別.HiScoreBass: + case Eセクション種別.HiSkillBass: + case Eセクション種別.LastPlayDrums:// #23595 2011.1.9 ikanick + case Eセクション種別.LastPlayGuitar: + case Eセクション種別.LastPlayBass: + { + c演奏記録 = this.stセクション[ (int) section ]; + if( !item.Equals( "Score" ) ) + { + goto Label_03B9; + } + c演奏記録.nスコア = long.Parse( para ); + + + continue; + } + } + } + } + continue; + #region [ File section ] + Label_01C7: + if( item.Equals( "Name" ) ) + { + this.stファイル.Name = para; + } + else if( item.Equals( "Hash" ) ) + { + this.stファイル.Hash = para; + } + else if( item.Equals( "PlayCountDrums" ) ) + { + this.stファイル.PlayCountDrums = C変換.n値を文字列から取得して範囲内に丸めて返す( para, 0, 99999999, 0 ); + } + else if( item.Equals( "PlayCountGuitars" ) )// #23596 11.2.5 changed ikanick + { + this.stファイル.PlayCountGuitar = C変換.n値を文字列から取得して範囲内に丸めて返す( para, 0, 99999999, 0 ); + } + else if( item.Equals( "PlayCountBass" ) ) + { + this.stファイル.PlayCountBass = C変換.n値を文字列から取得して範囲内に丸めて返す( para, 0, 99999999, 0 ); + } + // #23596 10.11.16 add ikanick------------------------------------/ + else if (item.Equals("ClearCountDrums")) + { + this.stファイル.ClearCountDrums = C変換.n値を文字列から取得して範囲内に丸めて返す(para, 0, 99999999, 0); + } + else if (item.Equals("ClearCountGuitars"))// #23596 11.2.5 changed ikanick + { + this.stファイル.ClearCountGuitar = C変換.n値を文字列から取得して範囲内に丸めて返す(para, 0, 99999999, 0); + } + else if (item.Equals("ClearCountBass")) + { + this.stファイル.ClearCountBass = C変換.n値を文字列から取得して範囲内に丸めて返す(para, 0, 99999999, 0); + } + // #24459 2011.2.24 yyagi-----------------------------------------/ + else if ( item.Equals( "BestRankDrums" ) ) + { + this.stファイル.BestRank.Drums = C変換.n値を文字列から取得して範囲内に丸めて返す( para, (int) ERANK.SS, (int) ERANK.E, (int) ERANK.UNKNOWN ); + } + else if ( item.Equals( "BestRankGuitar" ) ) + { + this.stファイル.BestRank.Guitar = C変換.n値を文字列から取得して範囲内に丸めて返す( para, (int) ERANK.SS, (int) ERANK.E, (int) ERANK.UNKNOWN ); + } + else if ( item.Equals( "BestRankBass" ) ) + { + this.stファイル.BestRank.Bass = C変換.n値を文字列から取得して範囲内に丸めて返す( para, (int) ERANK.SS, (int) ERANK.E, (int) ERANK.UNKNOWN ); + } + //----------------------------------------------------------------/ + else if ( item.Equals( "History0" ) ) + { + this.stファイル.History[ 0 ] = para; + } + else if( item.Equals( "History1" ) ) + { + this.stファイル.History[ 1 ] = para; + } + else if( item.Equals( "History2" ) ) + { + this.stファイル.History[ 2 ] = para; + } + else if( item.Equals( "History3" ) ) + { + this.stファイル.History[ 3 ] = para; + } + else if( item.Equals( "History4" ) ) + { + this.stファイル.History[ 4 ] = para; + } + else if( item.Equals( "HistoryCount" ) ) + { + this.stファイル.HistoryCount = C変換.n値を文字列から取得して範囲内に丸めて返す( para, 0, 99999999, 0 ); + } + else if( item.Equals( "BGMAdjust" ) ) + { + this.stファイル.BGMAdjust = C変換.n値を文字列から取得して返す( para, 0 ); + } + continue; + #endregion + #region [ Score section ] + Label_03B9: + if ( item.Equals( "HiScore1" ) ) + { + c演奏記録.nハイスコア[ 0 ] = int.Parse( para ); + } + else if ( item.Equals( "HiScore2" ) ) + { + c演奏記録.nハイスコア[ 1 ] = int.Parse( para ); + } + else if ( item.Equals( "HiScore3" ) ) + { + c演奏記録.nハイスコア[ 2 ] = int.Parse( para ); + } + else if ( item.Equals( "HiScore4" ) ) + { + c演奏記録.nハイスコア[ 3 ] = int.Parse( para ); + } + else if ( item.Equals( "HiScore5" ) ) + { + c演奏記録.nハイスコア[ 4 ] = int.Parse( para ); + } + if( item.Equals( "PlaySkill" ) ) + { + try + { + c演奏記録.db演奏型スキル値 = (double) decimal.Parse( para ); + } + catch + { + c演奏記録.db演奏型スキル値 = 0.0; + } + } + else if( item.Equals( "Skill" ) ) + { + try + { + c演奏記録.dbゲーム型スキル値 = (double) decimal.Parse( para ); + } + catch + { + c演奏記録.dbゲーム型スキル値 = 0.0; + } + } + else if( item.Equals( "Perfect" ) ) + { + c演奏記録.nPerfect数 = int.Parse( para ); + } + else if( item.Equals( "Great" ) ) + { + c演奏記録.nGreat数 = int.Parse( para ); + } + else if( item.Equals( "Good" ) ) + { + c演奏記録.nGood数 = int.Parse( para ); + } + else if( item.Equals( "Poor" ) ) + { + c演奏記録.nPoor数 = int.Parse( para ); + } + else if( item.Equals( "Miss" ) ) + { + c演奏記録.nMiss数 = int.Parse( para ); + } + else if( item.Equals( "Roll" ) ) + { + c演奏記録.n連打数 = int.Parse( para ); + } + else if( item.Equals( "MaxCombo" ) ) + { + c演奏記録.n最大コンボ数 = int.Parse( para ); + } + else if( item.Equals( "TotalChips" ) ) + { + c演奏記録.n全チップ数 = int.Parse( para ); + } + else if( item.Equals( "AutoPlay" ) ) + { + // LCなし LCあり CYとRDが別 Gt/Bs autolane/pick + if( para.Length == 9 || para.Length == 10 || para.Length == 11 || para.Length == 21 ) + { + for( int i = 0; i < para.Length; i++ ) + { + c演奏記録.bAutoPlay[ i ] = this.ONorOFF( para[ i ] ); + } + } + } + else if ( item.Equals( "Risky" ) ) + { + c演奏記録.nRisky = int.Parse( para ); + } + else if ( item.Equals( "TightDrums" ) ) + { + c演奏記録.bTight = C変換.bONorOFF( para[ 0 ] ); + } + else if ( item.Equals( "SuddenDrums" ) ) + { + c演奏記録.bSudden.Drums = C変換.bONorOFF( para[ 0 ] ); + } + else if ( item.Equals( "SuddenGuitar" ) ) + { + c演奏記録.bSudden.Guitar = C変換.bONorOFF( para[ 0 ] ); + } + else if ( item.Equals( "SuddenBass" ) ) + { + c演奏記録.bSudden.Bass = C変換.bONorOFF( para[ 0 ] ); + } + else if ( item.Equals( "HiddenDrums" ) ) + { + c演奏記録.bHidden.Drums = C変換.bONorOFF( para[ 0 ] ); + } + else if ( item.Equals( "HiddenGuitar" ) ) + { + c演奏記録.bHidden.Guitar = C変換.bONorOFF( para[ 0 ] ); + } + else if ( item.Equals( "HiddenBass" ) ) + { + c演奏記録.bHidden.Bass = C変換.bONorOFF( para[ 0 ] ); + } + else if ( item.Equals( "InvisibleDrums" ) ) + { + c演奏記録.eInvisible.Drums = (EInvisible) int.Parse( para ); + } + else if ( item.Equals( "InvisibleGuitar" ) ) + { + c演奏記録.eInvisible.Guitar = (EInvisible) int.Parse( para ); + } + else if ( item.Equals( "InvisibleBass" ) ) + { + c演奏記録.eInvisible.Bass = (EInvisible) int.Parse( para ); + } + else if ( item.Equals( "ReverseDrums" ) ) + { + c演奏記録.bReverse.Drums = C変換.bONorOFF( para[ 0 ] ); + } + else if ( item.Equals( "ReverseGuitar" ) ) + { + c演奏記録.bReverse.Guitar = C変換.bONorOFF( para[ 0 ] ); + } + else if ( item.Equals( "ReverseBass" ) ) + { + c演奏記録.bReverse.Bass = C変換.bONorOFF( para[ 0 ] ); + } + #endregion + else + { + #region [ RandomGuitar ] + if ( item.Equals( "RandomGuitar" ) ) + { + switch ( int.Parse( para ) ) + { + case (int) Eランダムモード.OFF: + { + c演奏記録.eRandom.Guitar = Eランダムモード.OFF; + continue; + } + case (int) Eランダムモード.RANDOM: + { + c演奏記録.eRandom.Guitar = Eランダムモード.RANDOM; + continue; + } + case (int) Eランダムモード.SUPERRANDOM: + { + c演奏記録.eRandom.Guitar = Eランダムモード.SUPERRANDOM; + continue; + } + case (int) Eランダムモード.HYPERRANDOM: // #25452 2011.6.20 yyagi + { + c演奏記録.eRandom.Guitar = Eランダムモード.SUPERRANDOM; + continue; + } + } + throw new Exception( "RandomGuitar の値が無効です。" ); + } + #endregion + #region [ RandomBass ] + if ( item.Equals( "RandomBass" ) ) + { + switch ( int.Parse( para ) ) + { + case (int) Eランダムモード.OFF: + { + c演奏記録.eRandom.Bass = Eランダムモード.OFF; + continue; + } + case (int) Eランダムモード.RANDOM: + { + c演奏記録.eRandom.Bass = Eランダムモード.RANDOM; + continue; + } + case (int) Eランダムモード.SUPERRANDOM: + { + c演奏記録.eRandom.Bass = Eランダムモード.SUPERRANDOM; + continue; + } + case (int) Eランダムモード.HYPERRANDOM: // #25452 2011.6.20 yyagi + { + c演奏記録.eRandom.Bass = Eランダムモード.SUPERRANDOM; + continue; + } + } + throw new Exception( "RandomBass の値が無効です。" ); + } + #endregion + #region [ LightGuitar ] + if ( item.Equals( "LightGuitar" ) ) + { + c演奏記録.bLight.Guitar = C変換.bONorOFF( para[ 0 ] ); + } + #endregion + #region [ LightBass ] + else if ( item.Equals( "LightBass" ) ) + { + c演奏記録.bLight.Bass = C変換.bONorOFF( para[ 0 ] ); + } + #endregion + #region [ LeftGuitar ] + else if ( item.Equals( "LeftGuitar" ) ) + { + c演奏記録.bLeft.Guitar = C変換.bONorOFF( para[ 0 ] ); + } + #endregion + #region [ LeftBass ] + else if ( item.Equals( "LeftBass" ) ) + { + c演奏記録.bLeft.Bass = C変換.bONorOFF( para[ 0 ] ); + } + #endregion + else + { + #region [ Dark ] + if ( item.Equals( "Dark" ) ) + { + switch ( int.Parse( para ) ) + { + case 0: + { + c演奏記録.eDark = Eダークモード.OFF; + continue; + } + case 1: + { + c演奏記録.eDark = Eダークモード.HALF; + continue; + } + case 2: + { + c演奏記録.eDark = Eダークモード.FULL; + continue; + } + } + throw new Exception( "Dark の値が無効です。" ); + } + #endregion + #region [ ScrollSpeedDrums ] + if ( item.Equals( "ScrollSpeedDrums" ) ) + { + c演奏記録.f譜面スクロール速度.Drums = (float) decimal.Parse( para ); + } + #endregion + #region [ ScrollSpeedGuitar ] + else if ( item.Equals( "ScrollSpeedGuitar" ) ) + { + c演奏記録.f譜面スクロール速度.Guitar = (float) decimal.Parse( para ); + } + #endregion + #region [ ScrollSpeedBass ] + else if ( item.Equals( "ScrollSpeedBass" ) ) + { + c演奏記録.f譜面スクロール速度.Bass = (float) decimal.Parse( para ); + } + #endregion + #region [ PlaySpeed ] + else if ( item.Equals( "PlaySpeed" ) ) + { + string[] strArray2 = para.Split( new char[] { '/' } ); + if ( strArray2.Length == 2 ) + { + c演奏記録.n演奏速度分子 = int.Parse( strArray2[ 0 ] ); + c演奏記録.n演奏速度分母 = int.Parse( strArray2[ 1 ] ); + } + } + #endregion + else + { + #region [ Guitar ] + if ( item.Equals( "Guitar" ) ) + { + c演奏記録.bGuitar有効 = C変換.bONorOFF( para[ 0 ] ); + } + #endregion + #region [ Drums ] + else if ( item.Equals( "Drums" ) ) + { + c演奏記録.bDrums有効 = C変換.bONorOFF( para[ 0 ] ); + } + #endregion + #region [ StageFailed ] + else if ( item.Equals( "StageFailed" ) ) + { + c演奏記録.bSTAGEFAILED有効 = C変換.bONorOFF( para[ 0 ] ); + } + #endregion + else + { + #region [ DamageLevel ] + if ( item.Equals( "DamageLevel" ) ) + { + switch ( int.Parse( para ) ) + { + case 0: + { + c演奏記録.eダメージレベル = Eダメージレベル.少ない; + continue; + } + case 1: + { + c演奏記録.eダメージレベル = Eダメージレベル.普通; + continue; + } + case 2: + { + c演奏記録.eダメージレベル = Eダメージレベル.大きい; + continue; + } + } + throw new Exception( "DamageLevel の値が無効です。" ); + } + #endregion + if ( item.Equals( "UseKeyboard" ) ) + { + c演奏記録.b演奏にキーボードを使用した = C変換.bONorOFF( para[ 0 ] ); + } + else if ( item.Equals( "UseMIDIIN" ) ) + { + c演奏記録.b演奏にMIDI入力を使用した = C変換.bONorOFF( para[ 0 ] ); + } + else if ( item.Equals( "UseJoypad" ) ) + { + c演奏記録.b演奏にジョイパッドを使用した = C変換.bONorOFF( para[ 0 ] ); + } + else if ( item.Equals( "UseMouse" ) ) + { + c演奏記録.b演奏にマウスを使用した = C変換.bONorOFF( para[ 0 ] ); + } + else if ( item.Equals( "PerfectRange" ) ) + { + c演奏記録.nPerfectになる範囲ms = int.Parse( para ); + } + else if ( item.Equals( "GreatRange" ) ) + { + c演奏記録.nGreatになる範囲ms = int.Parse( para ); + } + else if ( item.Equals( "GoodRange" ) ) + { + c演奏記録.nGoodになる範囲ms = int.Parse( para ); + } + else if ( item.Equals( "PoorRange" ) ) + { + c演奏記録.nPoorになる範囲ms = int.Parse( para ); + } + else if ( item.Equals( "DTXManiaVersion" ) ) + { + c演奏記録.strDTXManiaのバージョン = para; + } + else if ( item.Equals( "DateTime" ) ) + { + c演奏記録.最終更新日時 = para; + } + else if ( item.Equals( "Hash" ) ) + { + c演奏記録.Hash = para; + } + else if ( item.Equals( "9LaneMode" ) ) + { + c演奏記録.レーン9モード = C変換.bONorOFF( para[ 0 ] ); + } + else if ( item.Equals( "HiScore1" ) ) + { + c演奏記録.nハイスコア[ 0 ] = int.Parse( para ); + } + else if ( item.Equals( "HiScore2" ) ) + { + c演奏記録.nハイスコア[ 1 ] = int.Parse( para ); + } + else if ( item.Equals( "HiScore3" ) ) + { + c演奏記録.nハイスコア[ 2 ] = int.Parse( para ); + } + else if ( item.Equals( "HiScore4" ) ) + { + c演奏記録.nハイスコア[ 3 ] = int.Parse( para ); + } + else + { + for (int i = 0; i < 5; i++) + { + if (item.Equals("Clear" + i.ToString())) + { + c演奏記録.nクリア[i] = int.Parse(para); + } + else if (item.Equals("ScoreRank" + i.ToString())) + { + c演奏記録.nスコアランク[i] = int.Parse(para); + } + } + } + //else if ( item.Equals( "HiScore5" ) ) + //{ + // c演奏記録.nハイスコア[ 4 ] = int.Parse( para ); + //} + + + } + } + } + } + continue; + } + catch( Exception exception ) + { + Trace.TraceError( exception.ToString() ); + Trace.TraceError( "読み込みを中断します。({0})", iniファイル名 ); + break; + } + } + } + reader.Close(); + } + } + + internal void tヒストリを追加する( string str追加文字列 ) + { + this.stファイル.HistoryCount++; + for( int i = 3; i >= 0; i-- ) + this.stファイル.History[ i + 1 ] = this.stファイル.History[ i ]; + DateTime now = DateTime.Now; + this.stファイル.History[ 0 ] = string.Format( "{0:0}.{1:D2}/{2}/{3} {4}", this.stファイル.HistoryCount, now.Year % 100, now.Month, now.Day, str追加文字列 ); + } + internal void t書き出し( string iniファイル名 ) + { + this.iniファイルのあるフォルダ名 = Path.GetDirectoryName( iniファイル名 ); + this.iniファイル名 = Path.GetFileName( iniファイル名 ); + + StreamWriter writer = new StreamWriter( iniファイル名, false, Encoding.GetEncoding( "Shift_JIS" ) ); + writer.WriteLine( "[File]" ); + writer.WriteLine( "Title={0}", this.stファイル.Title ); + writer.WriteLine( "Name={0}", this.stファイル.Name ); + writer.WriteLine( "Hash={0}", this.stファイル.Hash ); + writer.WriteLine( "PlayCountDrums={0}", this.stファイル.PlayCountDrums ); + writer.WriteLine( "PlayCountGuitars={0}", this.stファイル.PlayCountGuitar ); + writer.WriteLine( "PlayCountBass={0}", this.stファイル.PlayCountBass ); + writer.WriteLine( "ClearCountDrums={0}", this.stファイル.ClearCountDrums ); // #23596 10.11.16 add ikanick + writer.WriteLine( "ClearCountGuitars={0}", this.stファイル.ClearCountGuitar ); // + writer.WriteLine( "ClearCountBass={0}", this.stファイル.ClearCountBass ); // + writer.WriteLine( "BestRankDrums={0}", this.stファイル.BestRank.Drums ); // #24459 2011.2.24 yyagi + writer.WriteLine( "BestRankGuitar={0}", this.stファイル.BestRank.Guitar ); // + writer.WriteLine( "BestRankBass={0}", this.stファイル.BestRank.Bass ); // + writer.WriteLine( "HistoryCount={0}", this.stファイル.HistoryCount ); + writer.WriteLine( "History0={0}", this.stファイル.History[ 0 ] ); + writer.WriteLine( "History1={0}", this.stファイル.History[ 1 ] ); + writer.WriteLine( "History2={0}", this.stファイル.History[ 2 ] ); + writer.WriteLine( "History3={0}", this.stファイル.History[ 3 ] ); + writer.WriteLine( "History4={0}", this.stファイル.History[ 4 ] ); + writer.WriteLine( "BGMAdjust={0}", this.stファイル.BGMAdjust ); + writer.WriteLine(); + for ( int i = 0; i < 9; i++ ) + { + string[] strArray = { "HiScore.Drums", "HiSkill.Drums", "HiScore.Guitar", "HiSkill.Guitar", "HiScore.Bass", "HiSkill.Bass", "LastPlay.Drums", "LastPlay.Guitar", "LastPlay.Bass" }; + writer.WriteLine( "[{0}]", strArray[ i ] ); + writer.WriteLine( "Score={0}", this.stセクション[ i ].nスコア ); + writer.WriteLine( "PlaySkill={0}", this.stセクション[ i ].db演奏型スキル値 ); + writer.WriteLine( "Skill={0}", this.stセクション[ i ].dbゲーム型スキル値 ); + writer.WriteLine( "Perfect={0}", this.stセクション[ i ].nPerfect数 ); + writer.WriteLine( "Great={0}", this.stセクション[ i ].nGreat数 ); + writer.WriteLine( "Good={0}", this.stセクション[ i ].nGood数 ); + writer.WriteLine( "Poor={0}", this.stセクション[ i ].nPoor数 ); + writer.WriteLine( "Miss={0}", this.stセクション[ i ].nMiss数 ); + writer.WriteLine( "MaxCombo={0}", this.stセクション[ i ].n最大コンボ数 ); + writer.WriteLine( "TotalChips={0}", this.stセクション[ i ].n全チップ数 ); + writer.Write( "AutoPlay=" ); + for ( int j = 0; j < (int) Eレーン.MAX; j++ ) + { + writer.Write( this.stセクション[ i ].bAutoPlay[ j ] ? 1 : 0 ); + } + writer.WriteLine(); + writer.WriteLine( "Risky={0}", this.stセクション[ i ].nRisky ); + writer.WriteLine( "SuddenDrums={0}", this.stセクション[ i ].bSudden.Drums ? 1 : 0 ); + writer.WriteLine( "SuddenGuitar={0}", this.stセクション[ i ].bSudden.Guitar ? 1 : 0 ); + writer.WriteLine( "SuddenBass={0}", this.stセクション[ i ].bSudden.Bass ? 1 : 0 ); + writer.WriteLine( "HiddenDrums={0}", this.stセクション[ i ].bHidden.Drums ? 1 : 0 ); + writer.WriteLine( "HiddenGuitar={0}", this.stセクション[ i ].bHidden.Guitar ? 1 : 0 ); + writer.WriteLine( "HiddenBass={0}", this.stセクション[ i ].bHidden.Bass ? 1 : 0 ); + writer.WriteLine( "InvisibleDrums={0}", (int) this.stセクション[ i ].eInvisible.Drums ); + writer.WriteLine( "InvisibleGuitar={0}", (int) this.stセクション[ i ].eInvisible.Guitar ); + writer.WriteLine( "InvisibleBass={0}", (int) this.stセクション[ i ].eInvisible.Bass ); + writer.WriteLine( "ReverseDrums={0}", this.stセクション[ i ].bReverse.Drums ? 1 : 0 ); + writer.WriteLine( "ReverseGuitar={0}", this.stセクション[ i ].bReverse.Guitar ? 1 : 0 ); + writer.WriteLine( "ReverseBass={0}", this.stセクション[ i ].bReverse.Bass ? 1 : 0 ); + writer.WriteLine( "TightDrums={0}", this.stセクション[ i ].bTight ? 1 : 0 ); + writer.WriteLine( "RandomGuitar={0}", (int) this.stセクション[ i ].eRandom.Guitar ); + writer.WriteLine( "RandomBass={0}", (int) this.stセクション[ i ].eRandom.Bass ); + writer.WriteLine( "LightGuitar={0}", this.stセクション[ i ].bLight.Guitar ? 1 : 0 ); + writer.WriteLine( "LightBass={0}", this.stセクション[ i ].bLight.Bass ? 1 : 0 ); + writer.WriteLine( "LeftGuitar={0}", this.stセクション[ i ].bLeft.Guitar ? 1 : 0 ); + writer.WriteLine( "LeftBass={0}", this.stセクション[ i ].bLeft.Bass ? 1 : 0 ); + writer.WriteLine( "Dark={0}", (int) this.stセクション[ i ].eDark ); + writer.WriteLine( "ScrollSpeedDrums={0}", this.stセクション[ i ].f譜面スクロール速度.Drums ); + writer.WriteLine( "ScrollSpeedGuitar={0}", this.stセクション[ i ].f譜面スクロール速度.Guitar ); + writer.WriteLine( "ScrollSpeedBass={0}", this.stセクション[ i ].f譜面スクロール速度.Bass ); + writer.WriteLine( "PlaySpeed={0}/{1}", this.stセクション[ i ].n演奏速度分子, this.stセクション[ i ].n演奏速度分母 ); + writer.WriteLine( "Guitar={0}", this.stセクション[ i ].bGuitar有効 ? 1 : 0 ); + writer.WriteLine( "Drums={0}", this.stセクション[ i ].bDrums有効 ? 1 : 0 ); + writer.WriteLine( "StageFailed={0}", this.stセクション[ i ].bSTAGEFAILED有効 ? 1 : 0 ); + writer.WriteLine( "DamageLevel={0}", (int) this.stセクション[ i ].eダメージレベル ); + writer.WriteLine( "UseKeyboard={0}", this.stセクション[ i ].b演奏にキーボードを使用した ? 1 : 0 ); + writer.WriteLine( "UseMIDIIN={0}", this.stセクション[ i ].b演奏にMIDI入力を使用した ? 1 : 0 ); + writer.WriteLine( "UseJoypad={0}", this.stセクション[ i ].b演奏にジョイパッドを使用した ? 1 : 0 ); + writer.WriteLine( "UseMouse={0}", this.stセクション[ i ].b演奏にマウスを使用した ? 1 : 0 ); + writer.WriteLine( "PerfectRange={0}", this.stセクション[ i ].nPerfectになる範囲ms ); + writer.WriteLine( "GreatRange={0}", this.stセクション[ i ].nGreatになる範囲ms ); + writer.WriteLine( "GoodRange={0}", this.stセクション[ i ].nGoodになる範囲ms ); + writer.WriteLine( "PoorRange={0}", this.stセクション[ i ].nPoorになる範囲ms ); + writer.WriteLine( "DTXManiaVersion={0}", this.stセクション[ i ].strDTXManiaのバージョン ); + writer.WriteLine( "DateTime={0}", this.stセクション[ i ].最終更新日時 ); + writer.WriteLine( "Hash={0}", this.stセクション[ i ].Hash ); + writer.WriteLine( "HiScore1={0}", this.stセクション[ i ].nハイスコア[ 0 ] ); + writer.WriteLine( "HiScore2={0}", this.stセクション[ i ].nハイスコア[ 1 ] ); + writer.WriteLine( "HiScore3={0}", this.stセクション[ i ].nハイスコア[ 2 ] ); + writer.WriteLine( "HiScore4={0}", this.stセクション[ i ].nハイスコア[ 3 ] ); + writer.WriteLine( "HiScore5={0}", this.stセクション[ i ].nハイスコア[ 4 ] ); + writer.WriteLine( "Roll1={0}", this.stセクション[ i ].n連打[ 0 ] ); + writer.WriteLine( "Roll2={0}", this.stセクション[ i ].n連打[ 1 ] ); + writer.WriteLine( "Roll3={0}", this.stセクション[ i ].n連打[ 2 ] ); + writer.WriteLine( "Roll4={0}", this.stセクション[ i ].n連打[ 3 ] ); + writer.WriteLine( "Roll5={0}", this.stセクション[ i ].n連打[ 4 ] ); + writer.WriteLine("Clear0={0}", this.stセクション[i].nクリア[0]); + writer.WriteLine("Clear1={0}", this.stセクション[i].nクリア[1]); + writer.WriteLine("Clear2={0}", this.stセクション[i].nクリア[2]); + writer.WriteLine("Clear3={0}", this.stセクション[i].nクリア[3]); + writer.WriteLine("Clear4={0}", this.stセクション[i].nクリア[4]); + writer.WriteLine("ScoreRank0={0}", this.stセクション[i].nスコアランク[0]); + writer.WriteLine("ScoreRank1={0}", this.stセクション[i].nスコアランク[1]); + writer.WriteLine("ScoreRank2={0}", this.stセクション[i].nスコアランク[2]); + writer.WriteLine("ScoreRank3={0}", this.stセクション[i].nスコアランク[3]); + writer.WriteLine("ScoreRank4={0}", this.stセクション[i].nスコアランク[4]); + } + writer.Close(); + } + internal void t全演奏記録セクションの整合性をチェックし不整合があればリセットする() + { + for( int i = 0; i < 9; i++ ) + { + if( !this.b整合性がある( (Eセクション種別) i ) ) + this.stセクション[ i ] = new C演奏記録(); + } + } + internal static int tランク値を計算して返す( C演奏記録 part ) + { + if( part.b演奏にMIDI入力を使用した || part.b演奏にキーボードを使用した || part.b演奏にジョイパッドを使用した || part.b演奏にマウスを使用した ) // 2010.9.11 + { + int nTotal = part.nPerfect数 + part.nGreat数 + part.nGood数 + part.nPoor数 + part.nMiss数; + return tランク値を計算して返す( nTotal, part.nPerfect数, part.nGreat数, part.nGood数, part.nPoor数, part.nMiss数 ); + } + return (int)ERANK.UNKNOWN; + } + internal static int tランク値を計算して返す( int nTotal, int nPerfect, int nGreat, int nGood, int nPoor, int nMiss ) + { + if( nTotal <= 0 ) + return (int)ERANK.UNKNOWN; + + //int nRank = (int)ERANK.E; + int nAuto = nTotal - ( nPerfect + nGreat + nGood + nPoor + nMiss ); + if( nTotal == nAuto ) + { + return (int)ERANK.SS; + } + double dRate = ( (double) ( nPerfect + nGreat ) ) / ( (double) ( nTotal - nAuto ) ); + if( dRate == 1.0 ) + { + return (int)ERANK.SS; + } + if( dRate >= 0.95 ) + { + return (int)ERANK.S; + } + if( dRate >= 0.9 ) + { + return (int)ERANK.A; + } + if( dRate >= 0.85 ) + { + return (int)ERANK.B; + } + if( dRate >= 0.8 ) + { + return (int)ERANK.C; + } + if( dRate >= 0.7 ) + { + return (int)ERANK.D; + } + return (int)ERANK.E; + } + internal static double tゲーム型スキルを計算して返す( int nLevel, int nTotal, int nPerfect, int nCombo, E楽器パート inst, STAUTOPLAY bAutoPlay ) + { + double ret; + if( ( nTotal == 0 ) || ( ( nPerfect == 0 ) && ( nCombo == 0 ) ) ) + ret = 0.0; + + ret = ( ( nLevel * ( ( nPerfect * 0.8 + nCombo * 0.2 ) / ( (double) nTotal ) ) ) / 2.0 ); + ret *= dbCalcReviseValForDrGtBsAutoLanes( inst, bAutoPlay ); + + return ret; + } + internal static double t演奏型スキルを計算して返す( int nTotal, int nPerfect, int nGreat, int nGood, int nPoor, int nMiss, E楽器パート inst, STAUTOPLAY bAutoPlay) + { + if( nTotal == 0 ) + return 0.0; + + int nAuto = nTotal - ( nPerfect + nGreat + nGood + nPoor + nMiss ); + double y = ( ( nPerfect * 1.0 + nGreat * 0.8 + nGood * 0.5 + nPoor * 0.2 + nMiss * 0.0 + nAuto * 0.0 ) * 100.0 ) / ( (double) nTotal ); + double ret = ( 100.0 * ( ( Math.Pow( 1.03, y ) - 1.0 ) / ( Math.Pow( 1.03, 100.0 ) - 1.0 ) ) ); + + ret *= dbCalcReviseValForDrGtBsAutoLanes( inst, bAutoPlay ); + return ret; + } + internal static double dbCalcReviseValForDrGtBsAutoLanes( E楽器パート inst, STAUTOPLAY bAutoPlay ) + { + //削除 + return 1.0; + } + internal static double t超精密型スキルを計算して返す( CDTX dtx, int nTotal, int nPerfect, int nGood, int nMiss, int Poor, int nMaxLagTime, int nMinLagTimen, int nMaxCombo ) + { + //演奏成績 最大60点 + //最大コンボ 最大5点 + //空打ち 最大10点(減点あり) + //最大_最小ズレ時間 最大10点 + //平均ズレ時間 最大5点 + //ボーナスA 最大5点 + //ボーナスB 最大5点 + + double db演奏点 = 0; + double db最大コンボ = 0; + double db空打ち = 0; + double db最大ズレ時間 = 0; + double db最小ズレ時間 = 0; + double db平均最大ズレ時間 = 0; + double db平均最小ズレ時間 = 0; + double dbボーナスA = 0; + double dbボーナスB = 0; + + #region[ 演奏点 ] + + #endregion + #region[ 空打ち ] + int[] n空打ちArray = new int[] { 1, 2, 3, 5, 10, 15, 20, 30, 40, 50 }; + int n空打ちpt = 0; + for( n空打ちpt = 0; n空打ちpt < 10; n空打ちpt++ ) + { + if( Poor == n空打ちArray[ n空打ちpt ] ) + break; + } + db空打ち = ( Poor == 0 ? 10 : 10 - n空打ちpt ); + #endregion + + return 1.0; + } + internal static string t演奏セクションのMD5を求めて返す( C演奏記録 cc ) + { + StringBuilder builder = new StringBuilder(); + builder.Append( cc.nスコア.ToString() ); + builder.Append( cc.dbゲーム型スキル値.ToString( ".000000" ) ); + builder.Append( cc.db演奏型スキル値.ToString( ".000000" ) ); + builder.Append( cc.nPerfect数 ); + builder.Append( cc.nGreat数 ); + builder.Append( cc.nGood数 ); + builder.Append( cc.nPoor数 ); + builder.Append( cc.nMiss数 ); + builder.Append( cc.n最大コンボ数 ); + builder.Append( cc.n全チップ数 ); + for( int i = 0; i < 10; i++ ) + builder.Append( boolToChar( cc.bAutoPlay[ i ] ) ); + builder.Append( boolToChar( cc.bTight ) ); + builder.Append( boolToChar( cc.bSudden.Drums ) ); + builder.Append( boolToChar( cc.bSudden.Guitar ) ); + builder.Append( boolToChar( cc.bSudden.Bass ) ); + builder.Append( boolToChar( cc.bHidden.Drums ) ); + builder.Append( boolToChar( cc.bHidden.Guitar ) ); + builder.Append( boolToChar( cc.bHidden.Bass ) ); + builder.Append( (int) cc.eInvisible.Drums ); + builder.Append( (int) cc.eInvisible.Guitar ); + builder.Append( (int) cc.eInvisible.Bass ); + builder.Append( boolToChar( cc.bReverse.Drums ) ); + builder.Append( boolToChar( cc.bReverse.Guitar ) ); + builder.Append( boolToChar( cc.bReverse.Bass ) ); + builder.Append( (int) cc.eRandom.Guitar ); + builder.Append( (int) cc.eRandom.Bass ); + builder.Append( boolToChar( cc.bLight.Guitar ) ); + builder.Append( boolToChar( cc.bLight.Bass ) ); + builder.Append( boolToChar( cc.bLeft.Guitar ) ); + builder.Append( boolToChar( cc.bLeft.Bass ) ); + builder.Append( (int) cc.eDark ); + builder.Append( cc.f譜面スクロール速度.Drums.ToString( ".000000" ) ); + builder.Append( cc.f譜面スクロール速度.Guitar.ToString( ".000000" ) ); + builder.Append( cc.f譜面スクロール速度.Bass.ToString( ".000000" ) ); + builder.Append( cc.n演奏速度分子 ); + builder.Append( cc.n演奏速度分母 ); + builder.Append( boolToChar( cc.bGuitar有効 ) ); + builder.Append( boolToChar( cc.bDrums有効 ) ); + builder.Append( boolToChar( cc.bSTAGEFAILED有効 ) ); + builder.Append( (int) cc.eダメージレベル ); + builder.Append( boolToChar( cc.b演奏にキーボードを使用した ) ); + builder.Append( boolToChar( cc.b演奏にMIDI入力を使用した ) ); + builder.Append( boolToChar( cc.b演奏にジョイパッドを使用した ) ); + builder.Append( boolToChar( cc.b演奏にマウスを使用した ) ); + builder.Append( cc.nPerfectになる範囲ms ); + builder.Append( cc.nGreatになる範囲ms ); + builder.Append( cc.nGoodになる範囲ms ); + builder.Append( cc.nPoorになる範囲ms ); + builder.Append( cc.strDTXManiaのバージョン ); + builder.Append( cc.最終更新日時 ); + + byte[] bytes = Encoding.GetEncoding( "Shift_JIS" ).GetBytes( builder.ToString() ); + StringBuilder builder2 = new StringBuilder(0x21); + { + MD5CryptoServiceProvider m = new MD5CryptoServiceProvider(); + byte[] buffer2 = m.ComputeHash(bytes); + foreach (byte num2 in buffer2) + builder2.Append(num2.ToString("x2")); + } + return builder2.ToString(); + } + internal static void t更新条件を取得する( out bool bDrumsを更新する, out bool bGuitarを更新する, out bool bBassを更新する ) + { + bDrumsを更新する = !TJAPlayer3.ConfigIni.b太鼓パートAutoPlay; + bGuitarを更新する = false; + bBassを更新する = false; + } + internal static int t総合ランク値を計算して返す( C演奏記録 Drums, C演奏記録 Guitar, C演奏記録 Bass ) + { + int nTotal = Drums.n全チップ数; + int nPerfect = Drums.nPerfect数_Auto含まない; // #24569 2011.3.1 yyagi: to calculate result rank without AUTO chips + int nGreat = Drums.nGreat数_Auto含まない; // + int nGood = Drums.nGood数_Auto含まない; // + int nPoor = Drums.nPoor数_Auto含まない; // + int nMiss = Drums.nMiss数_Auto含まない; // + return tランク値を計算して返す( nTotal, nPerfect, nGreat, nGood, nPoor, nMiss ); + } + + // その他 + + #region [ private ] + //----------------- + private bool ONorOFF( char c ) + { + return ( c != '0' ); + } + private static char boolToChar( bool b ) + { + if( !b ) + { + return '0'; + } + return '1'; + } + //----------------- + #endregion + } +} diff --git a/TJAPlayer3/Songs/CSong管理.cs b/TJAPlayer3/Songs/CSong管理.cs new file mode 100644 index 00000000..fcdc9a0c --- /dev/null +++ b/TJAPlayer3/Songs/CSong管理.cs @@ -0,0 +1,1827 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Text; +using System.Diagnostics; +using System.IO; +using System.Threading; +using TJAPlayer3.C曲リストノードComparers; +using FDK; +using System.Web.UI; +using System.Drawing; + +namespace TJAPlayer3 +{ + [Serializable] + internal class CSongs管理 + { + // プロパティ + + /*public int nSongsDBから取得できたスコア数 + { + get; + set; + } + public int nSongsDBへ出力できたスコア数 + { + get; + set; + }*/ + public int nスコアキャッシュから反映できたスコア数 + { + get; + set; + } + public int nファイルから反映できたスコア数 + { + get; + set; + } + public int n検索されたスコア数 + { + get; + set; + } + public int n検索された曲ノード数 + { + get; + set; + } + /*[NonSerialized] + public List listSongsDB;*/ // songs.dbから構築されるlist + public List list曲ルート; // 起動時にフォルダ検索して構築されるlist + public List list曲ルート_Dan = new List(); // 起動時にフォルダ検索して構築されるlist + public bool bIsSuspending // 外部スレッドから、内部スレッドのsuspendを指示する時にtrueにする + { // 再開時は、これをfalseにしてから、次のautoReset.Set()を実行する + get; + set; + } + public bool bIsSlowdown // #PREMOVIE再生時に曲検索を遅くする + { + get; + set; + } + [NonSerialized] + public AutoResetEvent AutoReset; + /*public AutoResetEvent AutoReset + { + get + { + return autoReset; + } + private set + { + autoReset = value; + } + }*/ + + private int searchCount; // #PREMOVIE中は検索n回実行したら少しスリープする + + // コンストラクタ + + public CSongs管理() + { + //this.listSongsDB = new List(); + this.list曲ルート = new List(); + this.n検索された曲ノード数 = 0; + this.n検索されたスコア数 = 0; + this.bIsSuspending = false; // #27060 + this.AutoReset = new AutoResetEvent( true ); // #27060 + this.searchCount = 0; + } + + + // メソッド + /* + #region [ SongsDB(songs.db) を読み込む ] + //----------------- + public void tSongsDBを読み込む( string SongsDBファイル名 ) + { + this.nSongsDBから取得できたスコア数 = 0; + if( File.Exists( SongsDBファイル名 ) ) + { + BinaryReader br = null; + try + { + br = new BinaryReader( File.OpenRead( SongsDBファイル名 ) ); + if ( !br.ReadString().Equals( SONGSDB_VERSION ) ) + { + throw new InvalidDataException( "ヘッダが異なります。" ); + } + this.listSongsDB = new List(); + + while( true ) + { + try + { + Cスコア item = this.tSongsDBからスコアを1つ読み込む( br ); + this.listSongsDB.Add( item ); + this.nSongsDBから取得できたスコア数++; + } + catch( EndOfStreamException ) + { + break; + } + } + } + finally + { + if( br != null ) + br.Close(); + } + } + } + //----------------- + #endregion + */ + #region [ 曲を検索してリストを作成する ] + //----------------- + public void t曲を検索してリストを作成する( string str基点フォルダ, bool b子BOXへ再帰する ) + { + this.t曲を検索してリストを作成する( str基点フォルダ, b子BOXへ再帰する, this.list曲ルート, null ); + } + private void t曲を検索してリストを作成する( string str基点フォルダ, bool b子BOXへ再帰する, List listノードリスト, C曲リストノード node親 ) + { + if( !str基点フォルダ.EndsWith( @"\" ) ) + str基点フォルダ = str基点フォルダ + @"\"; + + DirectoryInfo info = new DirectoryInfo( str基点フォルダ ); + + if( TJAPlayer3.ConfigIni.bLog曲検索ログ出力 ) + Trace.TraceInformation( "基点フォルダ: " + str基点フォルダ ); + + #region [ a.フォルダ内に set.def が存在する場合 → 1フォルダ内のtjaファイル無制限] + //----------------------------- + string path = str基点フォルダ + "set.def"; + if( File.Exists( path ) ) + { + new FileInfo( path ); + if( TJAPlayer3.ConfigIni.bLog曲検索ログ出力 ) + { + Trace.TraceInformation( "set.def検出 : {0}", path ); + Trace.Indent(); + } + try + { + foreach( FileInfo fileinfo in info.GetFiles() ) + { + SlowOrSuspendSearchTask(); + #region[ 拡張子を取得 ] + string strExt = fileinfo.Extension.ToLower(); + #endregion + if( ( strExt.Equals( ".tja" ) || strExt.Equals( ".dtx" ) ) ) + { + if( strExt.Equals( ".tja" ) ) + { + //tja、dtxが両方存在していた場合、tjaを読み込まずにtjaと同名のdtxだけを使う。 + string dtxscoreini = str基点フォルダ + ( fileinfo.Name.Replace( strExt, ".dtx" ) ); + if( File.Exists( dtxscoreini ) ) + { + continue; + } + } + + #region[ 新処理 ] + CDTX dtx = new CDTX( fileinfo.FullName, false, 1.0, 0, 1 ); + C曲リストノード c曲リストノード = new C曲リストノード(); + c曲リストノード.eノード種別 = C曲リストノード.Eノード種別.SCORE; + + bool b = false; + for( int n = 0; n < (int)Difficulty.Total; n++ ) + { + if( dtx.b譜面が存在する[ n ] ) + { + c曲リストノード.nスコア数++; + c曲リストノード.r親ノード = node親; + c曲リストノード.strBreadcrumbs = ( c曲リストノード.r親ノード == null ) ? + str基点フォルダ + fileinfo.Name : c曲リストノード.r親ノード.strBreadcrumbs + " > " + str基点フォルダ + fileinfo.Name; + + c曲リストノード.strタイトル = dtx.TITLE; + c曲リストノード.strサブタイトル = dtx.SUBTITLE; + c曲リストノード.strジャンル = dtx.GENRE; + if (c曲リストノード.r親ノード != null && c曲リストノード.r親ノード.strジャンル != "") + { + c曲リストノード.strジャンル = c曲リストノード.r親ノード.strジャンル; + } + c曲リストノード.nLevel = dtx.LEVELtaiko; + + switch (c曲リストノード.strジャンル) + { + case "J-POP": + c曲リストノード.strジャンル = "ポップス"; + break; + case "ゲームミュージック": + c曲リストノード.strジャンル = "ゲームバラエティ"; + break; + case "どうよう": + c曲リストノード.strジャンル = "キッズ"; + break; + } + c曲リストノード.str本当のジャンル = c曲リストノード.strジャンル; + + + c曲リストノード.arスコア[ n ] = new Cスコア(); + c曲リストノード.arスコア[ n ].ファイル情報.ファイルの絶対パス = str基点フォルダ + fileinfo.Name; + c曲リストノード.arスコア[ n ].ファイル情報.フォルダの絶対パス = str基点フォルダ; + c曲リストノード.arスコア[ n ].ファイル情報.ファイルサイズ = fileinfo.Length; + c曲リストノード.arスコア[ n ].ファイル情報.最終更新日時 = fileinfo.LastWriteTime; + string strFileNameScoreIni = c曲リストノード.arスコア[ n ].ファイル情報.ファイルの絶対パス + ".score.ini"; + if( File.Exists( strFileNameScoreIni ) ) + { + FileInfo infoScoreIni = new FileInfo( strFileNameScoreIni ); + c曲リストノード.arスコア[ n ].ScoreIni情報.ファイルサイズ = infoScoreIni.Length; + c曲リストノード.arスコア[ n ].ScoreIni情報.最終更新日時 = infoScoreIni.LastWriteTime; + } + if( b == false ) + { + this.n検索されたスコア数++; + listノードリスト.Add( c曲リストノード ); + this.n検索された曲ノード数++; + b = true; + } + } + } + dtx = null; + } + #endregion + } + } + finally + { + if( TJAPlayer3.ConfigIni.bLog曲検索ログ出力 ) + { + Trace.Unindent(); + } + } + } + //----------------------------- + #endregion + + #region [ b.フォルダ内に set.def が存在しない場合 → 個別ファイルからノード作成 ] + //----------------------------- + else + { + foreach( FileInfo fileinfo in info.GetFiles() ) + { + SlowOrSuspendSearchTask(); // #27060 中断要求があったら、解除要求が来るまで待機, #PREMOVIE再生中は検索負荷を落とす + string strExt = fileinfo.Extension.ToLower(); + + if( ( strExt.Equals( ".tja" ) || strExt.Equals( ".dtx" ) ) ) + { + // 2017.06.02 kairera0467 廃止。 + //if( strExt.Equals( ".tja" ) ) + //{ + // //tja、dtxが両方存在していた場合、tjaを読み込まずにdtxだけ使う。 + // string[] dtxscoreini = Directory.GetFiles( str基点フォルダ, "*.dtx"); + // if(dtxscoreini.Length != 0 ) + // { + // continue; + // } + //} + + #region[ 新処理 ] + CDTX dtx = new CDTX( str基点フォルダ + fileinfo.Name, false, 1.0, 0, 0 ); + C曲リストノード c曲リストノード = new C曲リストノード(); + c曲リストノード.eノード種別 = C曲リストノード.Eノード種別.SCORE; + + bool b = false; + for( int n = 0; n < (int)Difficulty.Total; n++ ) + { + if( dtx.b譜面が存在する[ n ] ) + { + c曲リストノード.nスコア数++; + c曲リストノード.r親ノード = node親; + c曲リストノード.strBreadcrumbs = ( c曲リストノード.r親ノード == null ) ? + str基点フォルダ + fileinfo.Name : c曲リストノード.r親ノード.strBreadcrumbs + " > " + str基点フォルダ + fileinfo.Name; + + c曲リストノード.strタイトル = dtx.TITLE; + c曲リストノード.strサブタイトル = dtx.SUBTITLE; + + if (dtx.List_DanSongs != null) + c曲リストノード.DanSongs = dtx.List_DanSongs; + + if (dtx.Dan_C != null) + c曲リストノード.Dan_C = dtx.Dan_C; + + if (!string.IsNullOrEmpty(dtx.GENRE)) + { + if(c曲リストノード.r親ノード != null) + { + c曲リストノード.strジャンル = c曲リストノード.r親ノード.strジャンル; + c曲リストノード.str本当のジャンル = dtx.GENRE; + } + else + { + c曲リストノード.strジャンル = dtx.GENRE; + c曲リストノード.str本当のジャンル = dtx.GENRE; + } + } + else + { + c曲リストノード.strジャンル = c曲リストノード.r親ノード.strジャンル; + c曲リストノード.str本当のジャンル = c曲リストノード.r親ノード.strジャンル; + } + + switch (c曲リストノード.strジャンル) + { + case "J-POP": + c曲リストノード.strジャンル = "ポップス"; + break; + case "ゲームミュージック": + c曲リストノード.strジャンル = "ゲームバラエティ"; + break; + case "どうよう": + c曲リストノード.strジャンル = "キッズ"; + break; + } + + switch (c曲リストノード.str本当のジャンル) + { + case "J-POP": + c曲リストノード.str本当のジャンル = "ポップス"; + break; + case "ゲームミュージック": + c曲リストノード.str本当のジャンル = "ゲームバラエティ"; + break; + case "どうよう": + c曲リストノード.str本当のジャンル = "キッズ"; + break; + } + + if (c曲リストノード.r親ノード != null) + { + if (c曲リストノード.r親ノード.IsChangedForeColor) + { + c曲リストノード.ForeColor = c曲リストノード.r親ノード.ForeColor; + c曲リストノード.IsChangedForeColor = true; + } + if (c曲リストノード.r親ノード.IsChangedBackColor) + { + c曲リストノード.BackColor = c曲リストノード.r親ノード.BackColor; + c曲リストノード.IsChangedBackColor = true; + } + } + + + switch (CStrジャンルtoNum.ForAC15(c曲リストノード.strジャンル)) + { + case 0: + c曲リストノード.ForeColor = TJAPlayer3.Skin.SongSelect_ForeColor_JPOP; + c曲リストノード.BackColor = TJAPlayer3.Skin.SongSelect_BackColor_JPOP; + break; + case 1: + c曲リストノード.ForeColor = TJAPlayer3.Skin.SongSelect_ForeColor_Anime; + c曲リストノード.BackColor = TJAPlayer3.Skin.SongSelect_BackColor_Anime; + break; + case 2: + c曲リストノード.ForeColor = TJAPlayer3.Skin.SongSelect_ForeColor_VOCALOID; + c曲リストノード.BackColor = TJAPlayer3.Skin.SongSelect_BackColor_VOCALOID; + break; + case 3: + c曲リストノード.ForeColor = TJAPlayer3.Skin.SongSelect_ForeColor_Children; + c曲リストノード.BackColor = TJAPlayer3.Skin.SongSelect_BackColor_Children; + break; + case 4: + c曲リストノード.ForeColor = TJAPlayer3.Skin.SongSelect_ForeColor_Variety; + c曲リストノード.BackColor = TJAPlayer3.Skin.SongSelect_BackColor_Variety; + break; + case 5: + c曲リストノード.ForeColor = TJAPlayer3.Skin.SongSelect_ForeColor_Classic; + c曲リストノード.BackColor = TJAPlayer3.Skin.SongSelect_BackColor_Classic; + break; + case 6: + c曲リストノード.ForeColor = TJAPlayer3.Skin.SongSelect_ForeColor_GameMusic; + c曲リストノード.BackColor = TJAPlayer3.Skin.SongSelect_BackColor_GameMusic; + break; + case 7: + c曲リストノード.ForeColor = TJAPlayer3.Skin.SongSelect_ForeColor_Namco; + c曲リストノード.BackColor = TJAPlayer3.Skin.SongSelect_BackColor_Namco; + break; + default: + break; + } + + + c曲リストノード.nLevel = dtx.LEVELtaiko; + + c曲リストノード.arスコア[ n ] = new Cスコア(); + c曲リストノード.arスコア[ n ].ファイル情報.ファイルの絶対パス = str基点フォルダ + fileinfo.Name; + c曲リストノード.arスコア[ n ].ファイル情報.フォルダの絶対パス = str基点フォルダ; + c曲リストノード.arスコア[ n ].ファイル情報.ファイルサイズ = fileinfo.Length; + c曲リストノード.arスコア[ n ].ファイル情報.最終更新日時 = fileinfo.LastWriteTime; + string strFileNameScoreIni = c曲リストノード.arスコア[ n ].ファイル情報.ファイルの絶対パス + ".score.ini"; + if( File.Exists( strFileNameScoreIni ) ) + { + FileInfo infoScoreIni = new FileInfo( strFileNameScoreIni ); + c曲リストノード.arスコア[ n ].ScoreIni情報.ファイルサイズ = infoScoreIni.Length; + c曲リストノード.arスコア[ n ].ScoreIni情報.最終更新日時 = infoScoreIni.LastWriteTime; + } + if( b == false ) + { + this.n検索されたスコア数++; + listノードリスト.Add( c曲リストノード ); + this.n検索された曲ノード数++; + b = true; + } + + if( TJAPlayer3.ConfigIni.bLog曲検索ログ出力 ) + { + // Trace.Indent(); + // try + // { + // StringBuilder sb = new StringBuilder( 0x100 ); + // sb.Append( string.Format( "nID#{0:D3}", c曲リストノード.nID ) ); + // if( c曲リストノード.r親ノード != null ) + // { + // sb.Append( string.Format( "(in#{0:D3}):", c曲リストノード.r親ノード.nID ) ); + // } + // else + // { + // sb.Append( "(onRoot):" ); + // } + // sb.Append( " SONG, File=" + c曲リストノード.arスコア[ 0 ].ファイル情報.ファイルの絶対パス ); + // sb.Append( ", Size=" + c曲リストノード.arスコア[ 0 ].ファイル情報.ファイルサイズ ); + // sb.Append( ", LastUpdate=" + c曲リストノード.arスコア[ 0 ].ファイル情報.最終更新日時 ); + // Trace.TraceInformation( sb.ToString() ); + // } + // finally + // { + // Trace.Unindent(); + // } + } + } + } + #endregion + } + } + } + //----------------------------- + #endregion + + foreach( DirectoryInfo infoDir in info.GetDirectories() ) + { + SlowOrSuspendSearchTask(); // #27060 中断要求があったら、解除要求が来るまで待機, #PREMOVIE再生中は検索負荷を落とす + + #region [ a. "dtxfiles." で始まるフォルダの場合 ] + //----------------------------- + if( infoDir.Name.ToLower().StartsWith( "dtxfiles." ) ) + { + C曲リストノード c曲リストノード = new C曲リストノード(); + c曲リストノード.eノード種別 = C曲リストノード.Eノード種別.BOX; + c曲リストノード.bDTXFilesで始まるフォルダ名のBOXである = true; + c曲リストノード.strタイトル = infoDir.Name.Substring( 9 ); + c曲リストノード.nスコア数 = 1; + c曲リストノード.r親ノード = node親; + + + // 一旦、上位BOXのスキン情報をコピー (後でbox.defの記載にて上書きされる場合がある) + c曲リストノード.strSkinPath = ( c曲リストノード.r親ノード == null ) ? + "" : c曲リストノード.r親ノード.strSkinPath; + + c曲リストノード.strBreadcrumbs = ( c曲リストノード.r親ノード == null ) ? + c曲リストノード.strタイトル : c曲リストノード.r親ノード.strBreadcrumbs + " > " + c曲リストノード.strタイトル; + + + + c曲リストノード.list子リスト = new List(); + c曲リストノード.arスコア[ 0 ] = new Cスコア(); + c曲リストノード.arスコア[ 0 ].ファイル情報.フォルダの絶対パス = infoDir.FullName + @"\"; + c曲リストノード.arスコア[ 0 ].譜面情報.タイトル = c曲リストノード.strタイトル; + c曲リストノード.arスコア[ 0 ].譜面情報.コメント = + (CultureInfo.CurrentCulture.TwoLetterISOLanguageName == "ja") ? + "BOX に移動します。" : + "Enter into the BOX."; + listノードリスト.Add(c曲リストノード); + if( File.Exists( infoDir.FullName + @"\box.def" ) ) + { + CBoxDef boxdef = new CBoxDef( infoDir.FullName + @"\box.def" ); + if( ( boxdef.Title != null ) && ( boxdef.Title.Length > 0 ) ) + { + c曲リストノード.strタイトル = boxdef.Title; + } + for(int i = 0; i < 3; i++) + { + if ((boxdef.strBoxText[i] != null) && (boxdef.strBoxText[i].Length > 0)) + { + c曲リストノード.strBoxText[i] = boxdef.strBoxText[i]; + } + } + if( ( boxdef.Genre != null ) && ( boxdef.Genre.Length > 0 ) ) + { + c曲リストノード.strジャンル = boxdef.Genre; + } + if(boxdef.IsChangedForeColor) + { + c曲リストノード.ForeColor = boxdef.ForeColor; + } + if (boxdef.IsChangedBackColor) + { + c曲リストノード.BackColor = boxdef.BackColor; + } + } + + switch (c曲リストノード.strジャンル) + { + case "J-POP": + c曲リストノード.strジャンル = "ポップス"; + break; + case "ゲームミュージック": + case "バラエティー": + case "バラエティ": + c曲リストノード.strジャンル = "ゲームバラエティ"; + break; + case "どうよう": + c曲リストノード.strジャンル = "キッズ"; + break; + } + if ( TJAPlayer3.ConfigIni.bLog曲検索ログ出力 ) + { + Trace.Indent(); + try + { + StringBuilder sb = new StringBuilder( 0x100 ); + sb.Append( string.Format( "nID#{0:D3}", c曲リストノード.nID ) ); + if( c曲リストノード.r親ノード != null ) + { + sb.Append( string.Format( "(in#{0:D3}):", c曲リストノード.r親ノード.nID ) ); + } + else + { + sb.Append( "(onRoot):" ); + } + sb.Append( " BOX, Title=" + c曲リストノード.strタイトル ); + sb.Append( ", Folder=" + c曲リストノード.arスコア[ 0 ].ファイル情報.フォルダの絶対パス ); + sb.Append( ", Comment=" + c曲リストノード.arスコア[ 0 ].譜面情報.コメント ); + sb.Append( ", SkinPath=" + c曲リストノード.strSkinPath ); + Trace.TraceInformation( sb.ToString() ); + } + finally + { + Trace.Unindent(); + } + } + if( b子BOXへ再帰する ) + { + this.t曲を検索してリストを作成する( infoDir.FullName + @"\", b子BOXへ再帰する, c曲リストノード.list子リスト, c曲リストノード ); + } + } + //----------------------------- + #endregion + + #region [ b.box.def を含むフォルダの場合 ] + //----------------------------- + else if( File.Exists( infoDir.FullName + @"\box.def" ) ) + { + CBoxDef boxdef = new CBoxDef( infoDir.FullName + @"\box.def" ); + C曲リストノード c曲リストノード = new C曲リストノード(); + c曲リストノード.eノード種別 = C曲リストノード.Eノード種別.BOX; + c曲リストノード.bDTXFilesで始まるフォルダ名のBOXである = false; + c曲リストノード.strタイトル = boxdef.Title; + c曲リストノード.strジャンル = boxdef.Genre; + + switch (c曲リストノード.strジャンル) + { + case "J-POP": + c曲リストノード.strジャンル = "ポップス"; + break; + case "ゲームミュージック": + c曲リストノード.strジャンル = "ゲームバラエティ"; + break; + case "どうよう": + c曲リストノード.strジャンル = "キッズ"; + break; + } + + if (boxdef.IsChangedForeColor) + { + c曲リストノード.ForeColor = boxdef.ForeColor; + c曲リストノード.IsChangedForeColor = true; + } + if (boxdef.IsChangedBackColor) + { + c曲リストノード.BackColor = boxdef.BackColor; + c曲リストノード.IsChangedBackColor = true; + } + + for (int i = 0; i < 3; i++) + { + if ((boxdef.strBoxText[i] != null) && (boxdef.strBoxText[i].Length > 0)) + { + c曲リストノード.strBoxText[i] = boxdef.strBoxText[i]; + } + } + switch (CStrジャンルtoNum.ForAC15(c曲リストノード.strジャンル)) + { + case 0: + c曲リストノード.ForeColor = TJAPlayer3.Skin.SongSelect_ForeColor_JPOP; + c曲リストノード.BackColor = TJAPlayer3.Skin.SongSelect_BackColor_JPOP; + break; + case 1: + c曲リストノード.ForeColor = TJAPlayer3.Skin.SongSelect_ForeColor_Anime; + c曲リストノード.BackColor = TJAPlayer3.Skin.SongSelect_BackColor_Anime; + break; + case 2: + c曲リストノード.ForeColor = TJAPlayer3.Skin.SongSelect_ForeColor_VOCALOID; + c曲リストノード.BackColor = TJAPlayer3.Skin.SongSelect_BackColor_VOCALOID; + break; + case 3: + c曲リストノード.ForeColor = TJAPlayer3.Skin.SongSelect_ForeColor_Children; + c曲リストノード.BackColor = TJAPlayer3.Skin.SongSelect_BackColor_Children; + break; + case 4: + c曲リストノード.ForeColor = TJAPlayer3.Skin.SongSelect_ForeColor_Variety; + c曲リストノード.BackColor = TJAPlayer3.Skin.SongSelect_BackColor_Variety; + break; + case 5: + c曲リストノード.ForeColor = TJAPlayer3.Skin.SongSelect_ForeColor_Classic; + c曲リストノード.BackColor = TJAPlayer3.Skin.SongSelect_BackColor_Classic; + break; + case 6: + c曲リストノード.ForeColor = TJAPlayer3.Skin.SongSelect_ForeColor_GameMusic; + c曲リストノード.BackColor = TJAPlayer3.Skin.SongSelect_BackColor_GameMusic; + break; + case 7: + c曲リストノード.ForeColor = TJAPlayer3.Skin.SongSelect_ForeColor_Namco; + c曲リストノード.BackColor = TJAPlayer3.Skin.SongSelect_BackColor_Namco; + break; + default: + break; + } + + + + c曲リストノード.nスコア数 = 1; + c曲リストノード.arスコア[ 0 ] = new Cスコア(); + c曲リストノード.arスコア[ 0 ].ファイル情報.フォルダの絶対パス = infoDir.FullName + @"\"; + c曲リストノード.arスコア[ 0 ].譜面情報.タイトル = boxdef.Title; + c曲リストノード.arスコア[ 0 ].譜面情報.ジャンル = boxdef.Genre; + c曲リストノード.r親ノード = node親; + + c曲リストノード.strBreadcrumbs = ( c曲リストノード.r親ノード == null ) ? + c曲リストノード.strタイトル : c曲リストノード.r親ノード.strBreadcrumbs + " > " + c曲リストノード.strタイトル; + + + c曲リストノード.list子リスト = new List(); + listノードリスト.Add( c曲リストノード ); + if( TJAPlayer3.ConfigIni.bLog曲検索ログ出力 ) + { + Trace.TraceInformation( "box.def検出 : {0}", infoDir.FullName + @"\box.def" ); + Trace.Indent(); + try + { + StringBuilder sb = new StringBuilder( 0x400 ); + sb.Append( string.Format( "nID#{0:D3}", c曲リストノード.nID ) ); + if( c曲リストノード.r親ノード != null ) + { + sb.Append( string.Format( "(in#{0:D3}):", c曲リストノード.r親ノード.nID ) ); + } + else + { + sb.Append( "(onRoot):" ); + } + sb.Append( "BOX, Title=" + c曲リストノード.strタイトル ); + if( ( c曲リストノード.strジャンル != null ) && ( c曲リストノード.strジャンル.Length > 0 ) ) + { + sb.Append( ", Genre=" + c曲リストノード.strジャンル ); + } + if (c曲リストノード.IsChangedForeColor) + { + sb.Append(", ForeColor=" + c曲リストノード.ForeColor.ToString()); + } + if (c曲リストノード.IsChangedBackColor) + { + sb.Append(", BackColor=" + c曲リストノード.BackColor.ToString()); + } + Trace.TraceInformation( sb.ToString() ); + } + finally + { + Trace.Unindent(); + } + } + if( b子BOXへ再帰する ) + { + this.t曲を検索してリストを作成する( infoDir.FullName + @"\", b子BOXへ再帰する, c曲リストノード.list子リスト, c曲リストノード ); + } + } + //----------------------------- + #endregion + + #region [ c.通常フォルダの場合 ] + //----------------------------- + else + { + this.t曲を検索してリストを作成する( infoDir.FullName + @"\", b子BOXへ再帰する, listノードリスト, node親 ); + } + //----------------------------- + #endregion + } + } + //----------------- + #endregion + /*#region [ スコアキャッシュを曲リストに反映する ] + //----------------- + public void tスコアキャッシュを曲リストに反映する() + { + this.nスコアキャッシュから反映できたスコア数 = 0; + this.tスコアキャッシュを曲リストに反映する( this.list曲ルート ); + } + private void tスコアキャッシュを曲リストに反映する( List ノードリスト ) + { + using( List.Enumerator enumerator = ノードリスト.GetEnumerator() ) + { + while( enumerator.MoveNext() ) + { + SlowOrSuspendSearchTask(); // #27060 中断要求があったら、解除要求が来るまで待機, #PREMOVIE再生中は検索負荷を落とす + + C曲リストノード node = enumerator.Current; + if( node.eノード種別 == C曲リストノード.Eノード種別.BOX ) + { + this.tスコアキャッシュを曲リストに反映する( node.list子リスト ); + } + else if( ( node.eノード種別 == C曲リストノード.Eノード種別.SCORE ) || ( node.eノード種別 == C曲リストノード.Eノード種別.SCORE_MIDI ) ) + { + Predicate match = null; + for( int lv = 0; lv < (int)Difficulty.Total; lv++ ) + { + if( node.arスコア[ lv ] != null ) + { + if( match == null ) + { + match = delegate( Cスコア sc ) + { + return + ( + ( sc.ファイル情報.ファイルの絶対パス.Equals( node.arスコア[ lv ].ファイル情報.ファイルの絶対パス ) + && sc.ファイル情報.ファイルサイズ.Equals( node.arスコア[ lv ].ファイル情報.ファイルサイズ ) ) + && ( sc.ファイル情報.最終更新日時.Equals( node.arスコア[ lv ].ファイル情報.最終更新日時 ) + && sc.ScoreIni情報.ファイルサイズ.Equals( node.arスコア[ lv ].ScoreIni情報.ファイルサイズ ) ) ) + && sc.ScoreIni情報.最終更新日時.Equals( node.arスコア[ lv ].ScoreIni情報.最終更新日時 ); + }; + } + int nMatched = this.listSongsDB.FindIndex( match ); + if( nMatched == -1 ) + { +//Trace.TraceInformation( "songs.db に存在しません。({0})", node.arスコア[ lv ].ファイル情報.ファイルの絶対パス ); + if ( TJAPlayer3.ConfigIni.bLog曲検索ログ出力 ) + { + Trace.TraceInformation( "songs.db に存在しません。({0})", node.arスコア[ lv ].ファイル情報.ファイルの絶対パス ); + } + } + else + { + node.arスコア[ lv ].譜面情報 = this.listSongsDB[ nMatched ].譜面情報; + node.arスコア[ lv ].bSongDBにキャッシュがあった = true; + if( TJAPlayer3.ConfigIni.bLog曲検索ログ出力 ) + { + Trace.TraceInformation( "songs.db から転記しました。({0})", node.arスコア[ lv ].ファイル情報.ファイルの絶対パス ); + } + this.nスコアキャッシュから反映できたスコア数++; + } + } + } + } + } + } + } + private Cスコア tSongsDBからスコアを1つ読み込む( BinaryReader br ) + { + Cスコア cスコア = new Cスコア(); + cスコア.ファイル情報.ファイルの絶対パス = br.ReadString(); + cスコア.ファイル情報.フォルダの絶対パス = br.ReadString(); + cスコア.ファイル情報.最終更新日時 = new DateTime( br.ReadInt64() ); + cスコア.ファイル情報.ファイルサイズ = br.ReadInt64(); + cスコア.ScoreIni情報.最終更新日時 = new DateTime( br.ReadInt64() ); + cスコア.ScoreIni情報.ファイルサイズ = br.ReadInt64(); + cスコア.譜面情報.タイトル = br.ReadString(); + cスコア.譜面情報.アーティスト名 = br.ReadString(); + cスコア.譜面情報.コメント = br.ReadString(); + cスコア.譜面情報.ジャンル = br.ReadString(); + cスコア.譜面情報.Preimage = br.ReadString(); + cスコア.譜面情報.Premovie = br.ReadString(); + cスコア.譜面情報.Presound = br.ReadString(); + cスコア.譜面情報.Backgound = br.ReadString(); + cスコア.譜面情報.レベル.Drums = br.ReadInt32(); + cスコア.譜面情報.レベル.Guitar = br.ReadInt32(); + cスコア.譜面情報.レベル.Bass = br.ReadInt32(); + cスコア.譜面情報.最大ランク.Drums = br.ReadInt32(); + cスコア.譜面情報.最大ランク.Guitar = br.ReadInt32(); + cスコア.譜面情報.最大ランク.Bass = br.ReadInt32(); + cスコア.譜面情報.最大スキル.Drums = br.ReadDouble(); + cスコア.譜面情報.最大スキル.Guitar = br.ReadDouble(); + cスコア.譜面情報.最大スキル.Bass = br.ReadDouble(); + cスコア.譜面情報.フルコンボ.Drums = br.ReadBoolean(); + cスコア.譜面情報.フルコンボ.Guitar = br.ReadBoolean(); + cスコア.譜面情報.フルコンボ.Bass = br.ReadBoolean(); + cスコア.譜面情報.演奏回数.Drums = br.ReadInt32(); + cスコア.譜面情報.演奏回数.Guitar = br.ReadInt32(); + cスコア.譜面情報.演奏回数.Bass = br.ReadInt32(); + cスコア.譜面情報.演奏履歴.行1 = br.ReadString(); + cスコア.譜面情報.演奏履歴.行2 = br.ReadString(); + cスコア.譜面情報.演奏履歴.行3 = br.ReadString(); + cスコア.譜面情報.演奏履歴.行4 = br.ReadString(); + cスコア.譜面情報.演奏履歴.行5 = br.ReadString(); + cスコア.譜面情報.演奏履歴.行6 = br.ReadString(); + cスコア.譜面情報.演奏履歴.行7 = br.ReadString(); + cスコア.譜面情報.レベルを非表示にする = br.ReadBoolean(); + cスコア.譜面情報.曲種別 = (CDTX.E種別) br.ReadInt32(); + cスコア.譜面情報.Bpm = br.ReadDouble(); + cスコア.譜面情報.Duration = br.ReadInt32(); + cスコア.譜面情報.strBGMファイル名 = br.ReadString(); + cスコア.譜面情報.SongVol = br.ReadInt32(); + var hasSongIntegratedLoudness = br.ReadBoolean(); + var songIntegratedLoudness = br.ReadDouble(); + var integratedLoudness = hasSongIntegratedLoudness ? new Lufs(songIntegratedLoudness) : default(Lufs?); + var hasSongPeakLoudness = br.ReadBoolean(); + var songPeakLoudness = br.ReadDouble(); + var peakLoudness = hasSongPeakLoudness ? new Lufs(songPeakLoudness) : default(Lufs?); + var songLoudnessMetadata = hasSongIntegratedLoudness + ? new LoudnessMetadata(integratedLoudness.Value, peakLoudness) + : default(LoudnessMetadata?); + cスコア.譜面情報.SongLoudnessMetadata = songLoudnessMetadata; + cスコア.譜面情報.nデモBGMオフセット = br.ReadInt32(); + cスコア.譜面情報.b譜面分岐[0] = br.ReadBoolean(); + cスコア.譜面情報.b譜面分岐[1] = br.ReadBoolean(); + cスコア.譜面情報.b譜面分岐[2] = br.ReadBoolean(); + cスコア.譜面情報.b譜面分岐[3] = br.ReadBoolean(); + cスコア.譜面情報.b譜面分岐[4] = br.ReadBoolean(); + cスコア.譜面情報.b譜面分岐[5] = br.ReadBoolean(); + cスコア.譜面情報.b譜面分岐[6] = br.ReadBoolean(); + cスコア.譜面情報.ハイスコア = br.ReadInt32(); + cスコア.譜面情報.nハイスコア[0] = br.ReadInt32(); + cスコア.譜面情報.nハイスコア[1] = br.ReadInt32(); + cスコア.譜面情報.nハイスコア[2] = br.ReadInt32(); + cスコア.譜面情報.nハイスコア[3] = br.ReadInt32(); + cスコア.譜面情報.nハイスコア[4] = br.ReadInt32(); + cスコア.譜面情報.nハイスコア[5] = br.ReadInt32(); + cスコア.譜面情報.nハイスコア[6] = br.ReadInt32(); + cスコア.譜面情報.strサブタイトル = br.ReadString(); + cスコア.譜面情報.nレベル[0] = br.ReadInt32(); + cスコア.譜面情報.nレベル[1] = br.ReadInt32(); + cスコア.譜面情報.nレベル[2] = br.ReadInt32(); + cスコア.譜面情報.nレベル[3] = br.ReadInt32(); + cスコア.譜面情報.nレベル[4] = br.ReadInt32(); + cスコア.譜面情報.nレベル[5] = br.ReadInt32(); + cスコア.譜面情報.nレベル[6] = br.ReadInt32(); + cスコア.譜面情報.nクリア[0] = br.ReadInt32(); + cスコア.譜面情報.nクリア[1] = br.ReadInt32(); + cスコア.譜面情報.nクリア[2] = br.ReadInt32(); + cスコア.譜面情報.nクリア[3] = br.ReadInt32(); + cスコア.譜面情報.nクリア[4] = br.ReadInt32(); + cスコア.譜面情報.nスコアランク[0] = br.ReadInt32(); + cスコア.譜面情報.nスコアランク[1] = br.ReadInt32(); + cスコア.譜面情報.nスコアランク[2] = br.ReadInt32(); + cスコア.譜面情報.nスコアランク[3] = br.ReadInt32(); + cスコア.譜面情報.nスコアランク[4] = br.ReadInt32(); + + + //Debug.WriteLine( "songs.db: " + cスコア.ファイル情報.ファイルの絶対パス ); + return cスコア; + } + //----------------- + #endregion*/ + #region [ SongsDBになかった曲をファイルから読み込んで反映する ] + //----------------- + public void tSongsDBになかった曲をファイルから読み込んで反映する() + { + this.nファイルから反映できたスコア数 = 0; + this.tSongsDBになかった曲をファイルから読み込んで反映する( this.list曲ルート ); + } + private void tSongsDBになかった曲をファイルから読み込んで反映する( List ノードリスト ) + { + foreach( C曲リストノード c曲リストノード in ノードリスト ) + { + SlowOrSuspendSearchTask(); // #27060 中断要求があったら、解除要求が来るまで待機, #PREMOVIE再生中は検索負荷を落とす + + if( c曲リストノード.eノード種別 == C曲リストノード.Eノード種別.BOX ) + { + this.tSongsDBになかった曲をファイルから読み込んで反映する( c曲リストノード.list子リスト ); + } + else if( ( c曲リストノード.eノード種別 == C曲リストノード.Eノード種別.SCORE ) + || ( c曲リストノード.eノード種別 == C曲リストノード.Eノード種別.SCORE_MIDI ) ) + { + for( int i = 0; i < (int)Difficulty.Total; i++ ) + { + if( ( c曲リストノード.arスコア[ i ] != null ) && !c曲リストノード.arスコア[ i ].bSongDBにキャッシュがあった ) + { + #region [ DTX ファイルのヘッダだけ読み込み、Cスコア.譜面情報 を設定する ] + //----------------- + string path = c曲リストノード.arスコア[ i ].ファイル情報.ファイルの絶対パス; + if( File.Exists( path ) ) + { + try + { + CDTX cdtx = new CDTX( c曲リストノード.arスコア[ i ].ファイル情報.ファイルの絶対パス, true, 0, 0, 0 ); + if( File.Exists( c曲リストノード.arスコア[ i ].ファイル情報.フォルダの絶対パス + "set.def" ) ) + cdtx = new CDTX( c曲リストノード.arスコア[ i ].ファイル情報.ファイルの絶対パス, true, 0, 0, 1 ); + + c曲リストノード.arスコア[ i ].譜面情報.タイトル = cdtx.TITLE; + + + c曲リストノード.arスコア[ i ].譜面情報.アーティスト名 = cdtx.ARTIST; + c曲リストノード.arスコア[ i ].譜面情報.コメント = cdtx.COMMENT; + c曲リストノード.arスコア[ i ].譜面情報.ジャンル = cdtx.GENRE; + c曲リストノード.arスコア[ i ].譜面情報.Preimage = cdtx.PREIMAGE; + c曲リストノード.arスコア[ i ].譜面情報.Presound = cdtx.PREVIEW; + c曲リストノード.arスコア[ i ].譜面情報.Backgound = ( ( cdtx.BACKGROUND != null ) && ( cdtx.BACKGROUND.Length > 0 ) ) ? cdtx.BACKGROUND : cdtx.BACKGROUND_GR; + c曲リストノード.arスコア[ i ].譜面情報.レベル.Drums = cdtx.LEVEL.Drums; + c曲リストノード.arスコア[ i ].譜面情報.レベル.Guitar = cdtx.LEVEL.Guitar; + c曲リストノード.arスコア[ i ].譜面情報.レベル.Bass = cdtx.LEVEL.Bass; + c曲リストノード.arスコア[ i ].譜面情報.レベルを非表示にする = cdtx.HIDDENLEVEL; + c曲リストノード.arスコア[ i ].譜面情報.Bpm = cdtx.BPM; + c曲リストノード.arスコア[ i ].譜面情報.Duration = 0; // (cdtx.listChip == null)? 0 : cdtx.listChip[ cdtx.listChip.Count - 1 ].n発声時刻ms; + c曲リストノード.arスコア[ i ].譜面情報.strBGMファイル名 = cdtx.strBGM_PATH; + c曲リストノード.arスコア[ i ].譜面情報.SongVol = cdtx.SongVol; + c曲リストノード.arスコア[ i ].譜面情報.SongLoudnessMetadata = cdtx.SongLoudnessMetadata; + c曲リストノード.arスコア[ i ].譜面情報.nデモBGMオフセット = cdtx.nデモBGMオフセット; + c曲リストノード.arスコア[ i ].譜面情報.b譜面分岐[0] = cdtx.bHIDDENBRANCH ? false : cdtx.bHasBranch[ 0 ]; + c曲リストノード.arスコア[ i ].譜面情報.b譜面分岐[1] = cdtx.bHIDDENBRANCH ? false : cdtx.bHasBranch[ 1 ]; + c曲リストノード.arスコア[ i ].譜面情報.b譜面分岐[2] = cdtx.bHIDDENBRANCH ? false : cdtx.bHasBranch[ 2 ]; + c曲リストノード.arスコア[ i ].譜面情報.b譜面分岐[3] = cdtx.bHIDDENBRANCH ? false : cdtx.bHasBranch[ 3 ]; + c曲リストノード.arスコア[i].譜面情報.b譜面分岐[4] = cdtx.bHIDDENBRANCH ? false : cdtx.bHasBranch[4]; + c曲リストノード.arスコア[i].譜面情報.b譜面分岐[5] = cdtx.bHIDDENBRANCH ? false : cdtx.bHasBranch[5]; + c曲リストノード.arスコア[i].譜面情報.b譜面分岐[6] = cdtx.bHIDDENBRANCH ? false : cdtx.bHasBranch[6]; + c曲リストノード.arスコア[ i ].譜面情報.strサブタイトル = cdtx.SUBTITLE; + c曲リストノード.arスコア[ i ].譜面情報.nレベル[0] = cdtx.LEVELtaiko[0]; + c曲リストノード.arスコア[ i ].譜面情報.nレベル[1] = cdtx.LEVELtaiko[1]; + c曲リストノード.arスコア[ i ].譜面情報.nレベル[2] = cdtx.LEVELtaiko[2]; + c曲リストノード.arスコア[ i ].譜面情報.nレベル[3] = cdtx.LEVELtaiko[3]; + c曲リストノード.arスコア[ i ].譜面情報.nレベル[4] = cdtx.LEVELtaiko[4]; + c曲リストノード.arスコア[i].譜面情報.nレベル[5] = cdtx.LEVELtaiko[5]; + c曲リストノード.arスコア[i].譜面情報.nレベル[6] = cdtx.LEVELtaiko[6]; + this.nファイルから反映できたスコア数++; + cdtx.On非活性化(); +//Debug.WriteLine( "★" + this.nファイルから反映できたスコア数 + " " + c曲リストノード.arスコア[ i ].譜面情報.タイトル ); + #region [ 曲検索ログ出力 ] + //----------------- + if( TJAPlayer3.ConfigIni.bLog曲検索ログ出力 ) + { + StringBuilder sb = new StringBuilder( 0x400 ); + sb.Append( string.Format( "曲データファイルから譜面情報を転記しました。({0})", path ) ); + sb.Append( "(title=" + c曲リストノード.arスコア[ i ].譜面情報.タイトル ); + sb.Append( ", artist=" + c曲リストノード.arスコア[ i ].譜面情報.アーティスト名 ); + sb.Append( ", comment=" + c曲リストノード.arスコア[ i ].譜面情報.コメント ); + sb.Append( ", genre=" + c曲リストノード.arスコア[ i ].譜面情報.ジャンル ); + sb.Append( ", preimage=" + c曲リストノード.arスコア[ i ].譜面情報.Preimage ); + sb.Append( ", premovie=" + c曲リストノード.arスコア[ i ].譜面情報.Premovie ); + sb.Append( ", presound=" + c曲リストノード.arスコア[ i ].譜面情報.Presound ); + sb.Append( ", background=" + c曲リストノード.arスコア[ i ].譜面情報.Backgound ); + sb.Append( ", lvDr=" + c曲リストノード.arスコア[ i ].譜面情報.レベル.Drums ); + sb.Append( ", lvGt=" + c曲リストノード.arスコア[ i ].譜面情報.レベル.Guitar ); + sb.Append( ", lvBs=" + c曲リストノード.arスコア[ i ].譜面情報.レベル.Bass ); + sb.Append( ", lvHide=" + c曲リストノード.arスコア[ i ].譜面情報.レベルを非表示にする ); + sb.Append( ", type=" + c曲リストノード.arスコア[ i ].譜面情報.曲種別 ); + sb.Append( ", bpm=" + c曲リストノード.arスコア[ i ].譜面情報.Bpm ); + // sb.Append( ", duration=" + c曲リストノード.arスコア[ i ].譜面情報.Duration ); + Trace.TraceInformation( sb.ToString() ); + } + //----------------- + #endregion + } + catch( Exception exception ) + { + Trace.TraceError( exception.ToString() ); + c曲リストノード.arスコア[ i ] = null; + c曲リストノード.nスコア数--; + this.n検索されたスコア数--; + Trace.TraceError( "曲データファイルの読み込みに失敗しました。({0})", path ); + } + } + //----------------- + #endregion + + #region [ 対応する .score.ini が存在していれば読み込み、Cスコア.譜面情報 に追加設定する ] + //----------------- + try + { + var scoreIniPath = c曲リストノード.arスコア[ i ].ファイル情報.ファイルの絶対パス + ".score.ini"; + if( File.Exists( scoreIniPath ) ) + this.tScoreIniを読み込んで譜面情報を設定する( scoreIniPath, c曲リストノード.arスコア[ i ] ); + else + { + string[] dtxscoreini = Directory.GetFiles(c曲リストノード.arスコア[i].ファイル情報.フォルダの絶対パス, "*.dtx.score.ini"); + if (dtxscoreini.Length != 0 && File.Exists(dtxscoreini[0])) + { + this.tScoreIniを読み込んで譜面情報を設定する(dtxscoreini[0], c曲リストノード.arスコア[i]); + } + } + } + catch (Exception e) + { + Trace.TraceError( e.ToString() ); + Trace.TraceError( "例外が発生しましたが処理を継続します。 (c8b6538c-46a1-403e-8cc3-fc7e7ff914fb)" ); + } + + //----------------- + #endregion + } + } + } + } + } + //----------------- + #endregion + #region [ 曲リストへ後処理を適用する ] + //----------------- + public void t曲リストへ後処理を適用する() + { + listStrBoxDefSkinSubfolderFullName = new List(); + if ( TJAPlayer3.Skin.strBoxDefSkinSubfolders != null ) + { + foreach ( string b in TJAPlayer3.Skin.strBoxDefSkinSubfolders ) + { + listStrBoxDefSkinSubfolderFullName.Add( b ); + } + } + + #region [ "最近遊んだ曲"BOXを生成する ] + + if(list曲ルート.Count > 0) + { + C曲リストノード crecentryplaysong = new C曲リストノード(); + crecentryplaysong.eノード種別 = C曲リストノード.Eノード種別.BOX; + crecentryplaysong.strタイトル = "最近あそんだ曲"; + crecentryplaysong.strBoxText[0] = ""; + crecentryplaysong.strBoxText[1] = "最近あそんだ曲を集めたよ!"; + crecentryplaysong.strBoxText[2] = ""; + crecentryplaysong.strジャンル = "最近遊んだ曲"; + crecentryplaysong.nスコア数 = 1; + crecentryplaysong.list子リスト = new List(); + crecentryplaysong.BackColor = ColorTranslator.FromHtml("#164748"); + + crecentryplaysong.arスコア[0] = new Cスコア(); + crecentryplaysong.arスコア[0].ファイル情報.フォルダの絶対パス = ""; + crecentryplaysong.arスコア[0].譜面情報.タイトル = crecentryplaysong.strタイトル; + crecentryplaysong.arスコア[0].譜面情報.コメント = + (CultureInfo.CurrentCulture.TwoLetterISOLanguageName == "ja") ? + "最近遊んだ曲" : + "Recentry play songs"; + + list曲ルート.Add(crecentryplaysong); + } + + #endregion + + this.t曲リストへ後処理を適用する(this.list曲ルート); + + foreach (C曲リストノード c曲リストノード in list曲ルート) + { + if(c曲リストノード.eノード種別 == C曲リストノード.Eノード種別.BOX) + { + if (c曲リストノード.strタイトル == "段位道場") + { + list曲ルート.Remove(c曲リストノード); + for (int i = 0; i < c曲リストノード.list子リスト.Count; i++) + { + if(c曲リストノード.list子リスト[i].eノード種別 == C曲リストノード.Eノード種別.SCORE) + { + list曲ルート_Dan.Add(c曲リストノード.list子リスト[i]); + continue; + } + } + } + else + { + for (int i = 0; i < c曲リストノード.list子リスト.Count; i++) + { + if(c曲リストノード.list子リスト[i].arスコア[6] != null) + { + list曲ルート_Dan.Add(c曲リストノード.list子リスト[i]); + c曲リストノード.list子リスト.Remove(c曲リストノード.list子リスト[i]); + continue; + } + } + } + } + else + { + if (c曲リストノード.arスコア[5] != null) + { + c曲リストノード.list子リスト.Remove(c曲リストノード); + list曲ルート_Dan.Add(c曲リストノード); + continue; + } + } + } + + #region [ skin名で比較して、systemスキンとboxdefスキンに重複があれば、boxdefスキン側を削除する ] + string[] systemSkinNames = CSkin.GetSkinName( TJAPlayer3.Skin.strSystemSkinSubfolders ); + List l = new List( listStrBoxDefSkinSubfolderFullName ); + foreach ( string boxdefSkinSubfolderFullName in l ) + { + if ( Array.BinarySearch( systemSkinNames, + CSkin.GetSkinName( boxdefSkinSubfolderFullName ), + StringComparer.InvariantCultureIgnoreCase ) >= 0 ) + { + listStrBoxDefSkinSubfolderFullName.Remove( boxdefSkinSubfolderFullName ); + } + } + #endregion + string[] ba = listStrBoxDefSkinSubfolderFullName.ToArray(); + Array.Sort( ba ); + TJAPlayer3.Skin.strBoxDefSkinSubfolders = ba; + } + private void t曲リストへ後処理を適用する( List ノードリスト ) + { + // すべてのノードについて… + foreach ( C曲リストノード c曲リストノード in ノードリスト ) + { + SlowOrSuspendSearchTask(); // #27060 中断要求があったら、解除要求が来るまで待機, #PREMOVIE再生中は検索負荷を落とす + + #region [ BOXノードなら子リストに < " + itemBack.strタイトル; + + itemBack.arスコア[0] = new Cスコア(); + itemBack.arスコア[0].ファイル情報.フォルダの絶対パス = ""; + itemBack.arスコア[0].譜面情報.タイトル = itemBack.strタイトル; + itemBack.arスコア[0].譜面情報.コメント = + (CultureInfo.CurrentCulture.TwoLetterISOLanguageName == "ja") ? + "BOX を出ます。" : + "Exit from the BOX."; + + c曲リストノード.list子リスト.Insert(Math.Min(index * (7 + 1), c曲リストノード.list子リスト.Count), itemBack); + + #region [ ログ出力 ] + //----------------------------- + if (TJAPlayer3.ConfigIni.bLog曲検索ログ出力) + { + StringBuilder sb = new StringBuilder(0x100); + sb.Append(string.Format("nID#{0:D3}", itemBack.nID)); + if (itemBack.r親ノード != null) + { + sb.Append(string.Format("(in#{0:D3}):", itemBack.r親ノード.nID)); + } + else + { + sb.Append("(onRoot):"); + } + sb.Append(" BACKBOX"); + Trace.TraceInformation(sb.ToString()); + } + //----------------------------- + #endregion + } + + continue; + } + //----------------------------- + #endregion + + #region [ ノードにタイトルがないなら、最初に見つけたスコアのタイトルを設定する ] + //----------------------------- + if ( string.IsNullOrEmpty( c曲リストノード.strタイトル ) ) + { + for( int j = 0; j < (int)Difficulty.Total; j++ ) + { + if( ( c曲リストノード.arスコア[ j ] != null ) && !string.IsNullOrEmpty( c曲リストノード.arスコア[ j ].譜面情報.タイトル ) ) + { + c曲リストノード.strタイトル = c曲リストノード.arスコア[ j ].譜面情報.タイトル; + + if( TJAPlayer3.ConfigIni.bLog曲検索ログ出力 ) + Trace.TraceInformation( "タイトルを設定しました。(nID#{0:D3}, title={1})", c曲リストノード.nID, c曲リストノード.strタイトル ); + + break; + } + } + } + //----------------------------- + #endregion + } + + #region [ ノードをソートする ] + //----------------------------- + if ( TJAPlayer3.ConfigIni.nDefaultSongSort == 0 ) + { + t曲リストのソート1_絶対パス順( ノードリスト ); + } + else if( TJAPlayer3.ConfigIni.nDefaultSongSort == 1 ) + { + t曲リストのソート9_ジャンル順( ノードリスト, E楽器パート.TAIKO, 1, 0 ); + } + else if( TJAPlayer3.ConfigIni.nDefaultSongSort == 2 ) + { + t曲リストのソート9_ジャンル順( ノードリスト, E楽器パート.TAIKO, 2, 0 ); + } + //----------------------------- + #endregion + } + //----------------- + #endregion + + /*#region [ スコアキャッシュをSongsDBに出力する ] + //----------------- + public void tスコアキャッシュをSongsDBに出力する( string SongsDBファイル名 ) + { + this.nSongsDBへ出力できたスコア数 = 0; + try + { + BinaryWriter bw = new BinaryWriter( new FileStream( SongsDBファイル名, FileMode.Create, FileAccess.Write ) ); + bw.Write( SONGSDB_VERSION ); + this.tSongsDBにリストを1つ出力する( bw, this.list曲ルート ); + bw.Close(); + } + catch (Exception e) + { + Trace.TraceError( "songs.dbの出力に失敗しました。" ); + Trace.TraceError( e.ToString() ); + Trace.TraceError( "例外が発生しましたが処理を継続します。 (ca70d133-f092-4351-8ebd-0906d8f1cffa)" ); + } + } + private void tSongsDBにノードを1つ出力する( BinaryWriter bw, C曲リストノード node ) + { + for( int i = 0; i < (int)Difficulty.Total; i++ ) + { + // ここではsuspendに応じないようにしておく(深い意味はない。ファイルの書き込みオープン状態を長時間維持したくないだけ) + //if ( this.bIsSuspending ) // #27060 中断要求があったら、解除要求が来るまで待機 + //{ + // autoReset.WaitOne(); + //} + + if( node.arスコア[ i ] != null ) + { + bw.Write( node.arスコア[ i ].ファイル情報.ファイルの絶対パス ); + bw.Write( node.arスコア[ i ].ファイル情報.フォルダの絶対パス ); + bw.Write( node.arスコア[ i ].ファイル情報.最終更新日時.Ticks ); + bw.Write( node.arスコア[ i ].ファイル情報.ファイルサイズ ); + bw.Write( node.arスコア[ i ].ScoreIni情報.最終更新日時.Ticks ); + bw.Write( node.arスコア[ i ].ScoreIni情報.ファイルサイズ ); + bw.Write( node.arスコア[ i ].譜面情報.タイトル ); + bw.Write( node.arスコア[ i ].譜面情報.アーティスト名 ); + bw.Write( node.arスコア[ i ].譜面情報.コメント ); + bw.Write( node.arスコア[ i ].譜面情報.ジャンル ); + bw.Write( node.arスコア[ i ].譜面情報.Preimage ); + bw.Write( node.arスコア[ i ].譜面情報.Premovie ); + bw.Write( node.arスコア[ i ].譜面情報.Presound ); + bw.Write( node.arスコア[ i ].譜面情報.Backgound ); + bw.Write( node.arスコア[ i ].譜面情報.レベル.Drums ); + bw.Write( node.arスコア[ i ].譜面情報.レベル.Guitar ); + bw.Write( node.arスコア[ i ].譜面情報.レベル.Bass ); + bw.Write( node.arスコア[ i ].譜面情報.最大ランク.Drums ); + bw.Write( node.arスコア[ i ].譜面情報.最大ランク.Guitar ); + bw.Write( node.arスコア[ i ].譜面情報.最大ランク.Bass ); + bw.Write( node.arスコア[ i ].譜面情報.最大スキル.Drums ); + bw.Write( node.arスコア[ i ].譜面情報.最大スキル.Guitar ); + bw.Write( node.arスコア[ i ].譜面情報.最大スキル.Bass ); + bw.Write( node.arスコア[ i ].譜面情報.フルコンボ.Drums ); + bw.Write( node.arスコア[ i ].譜面情報.フルコンボ.Guitar ); + bw.Write( node.arスコア[ i ].譜面情報.フルコンボ.Bass ); + bw.Write( node.arスコア[ i ].譜面情報.演奏回数.Drums ); + bw.Write( node.arスコア[ i ].譜面情報.演奏回数.Guitar ); + bw.Write( node.arスコア[ i ].譜面情報.演奏回数.Bass ); + bw.Write( node.arスコア[ i ].譜面情報.演奏履歴.行1 ); + bw.Write( node.arスコア[ i ].譜面情報.演奏履歴.行2 ); + bw.Write( node.arスコア[ i ].譜面情報.演奏履歴.行3 ); + bw.Write( node.arスコア[ i ].譜面情報.演奏履歴.行4 ); + bw.Write( node.arスコア[ i ].譜面情報.演奏履歴.行5 ); + bw.Write(node.arスコア[i].譜面情報.演奏履歴.行6); + bw.Write(node.arスコア[i].譜面情報.演奏履歴.行7); + bw.Write( node.arスコア[ i ].譜面情報.レベルを非表示にする ); + bw.Write( (int) node.arスコア[ i ].譜面情報.曲種別 ); + bw.Write( node.arスコア[ i ].譜面情報.Bpm ); + bw.Write( node.arスコア[ i ].譜面情報.Duration ); + bw.Write( node.arスコア[ i ].譜面情報.strBGMファイル名 ); + bw.Write( node.arスコア[ i ].譜面情報.SongVol ); + var songLoudnessMetadata = node.arスコア[ i ].譜面情報.SongLoudnessMetadata; + bw.Write( songLoudnessMetadata.HasValue ); + bw.Write( songLoudnessMetadata?.Integrated.ToDouble() ?? 0.0 ); + bw.Write( songLoudnessMetadata?.TruePeak.HasValue ?? false ); + bw.Write( songLoudnessMetadata?.TruePeak?.ToDouble() ?? 0.0 ); + bw.Write( node.arスコア[ i ].譜面情報.nデモBGMオフセット ); + bw.Write( node.arスコア[ i ].譜面情報.b譜面分岐[0] ); + bw.Write( node.arスコア[ i ].譜面情報.b譜面分岐[1] ); + bw.Write( node.arスコア[ i ].譜面情報.b譜面分岐[2] ); + bw.Write( node.arスコア[ i ].譜面情報.b譜面分岐[3] ); + bw.Write( node.arスコア[ i ].譜面情報.b譜面分岐[4] ); + bw.Write(node.arスコア[i].譜面情報.b譜面分岐[5]); + bw.Write( node.arスコア[ i ].譜面情報.b譜面分岐[6] ); + bw.Write( node.arスコア[ i ].譜面情報.ハイスコア ); + bw.Write( node.arスコア[ i ].譜面情報.nハイスコア[0] ); + bw.Write( node.arスコア[ i ].譜面情報.nハイスコア[1] ); + bw.Write( node.arスコア[ i ].譜面情報.nハイスコア[2] ); + bw.Write( node.arスコア[ i ].譜面情報.nハイスコア[3] ); + bw.Write( node.arスコア[ i ].譜面情報.nハイスコア[4] ); + bw.Write(node.arスコア[i].譜面情報.nハイスコア[5]); + bw.Write(node.arスコア[i].譜面情報.nハイスコア[6]); + bw.Write( node.arスコア[ i ].譜面情報.strサブタイトル ); + bw.Write( node.arスコア[ i ].譜面情報.nレベル[0] ); + bw.Write( node.arスコア[ i ].譜面情報.nレベル[1] ); + bw.Write( node.arスコア[ i ].譜面情報.nレベル[2] ); + bw.Write( node.arスコア[ i ].譜面情報.nレベル[3] ); + bw.Write( node.arスコア[ i ].譜面情報.nレベル[4] ); + bw.Write(node.arスコア[i].譜面情報.nレベル[5]); + bw.Write(node.arスコア[i].譜面情報.nレベル[6]); + bw.Write(node.arスコア[i].譜面情報.nクリア[0]); + bw.Write(node.arスコア[i].譜面情報.nクリア[1]); + bw.Write(node.arスコア[i].譜面情報.nクリア[2]); + bw.Write(node.arスコア[i].譜面情報.nクリア[3]); + bw.Write(node.arスコア[i].譜面情報.nクリア[4]); + bw.Write(node.arスコア[i].譜面情報.nスコアランク[0]); + bw.Write(node.arスコア[i].譜面情報.nスコアランク[1]); + bw.Write(node.arスコア[i].譜面情報.nスコアランク[2]); + bw.Write(node.arスコア[i].譜面情報.nスコアランク[3]); + bw.Write(node.arスコア[i].譜面情報.nスコアランク[4]); + this.nSongsDBへ出力できたスコア数++; + } + } + } + private void tSongsDBにリストを1つ出力する( BinaryWriter bw, List list ) + { + foreach( C曲リストノード c曲リストノード in list ) + { + if( ( c曲リストノード.eノード種別 == C曲リストノード.Eノード種別.SCORE ) + || ( c曲リストノード.eノード種別 == C曲リストノード.Eノード種別.SCORE_MIDI ) ) + { + this.tSongsDBにノードを1つ出力する( bw, c曲リストノード ); + } + if( c曲リストノード.list子リスト != null ) + { + this.tSongsDBにリストを1つ出力する( bw, c曲リストノード.list子リスト ); + } + } + } + //----------------- + #endregion*/ + + #region [ 曲リストソート ] + //----------------- + + public static void t曲リストのソート1_絶対パス順( List ノードリスト ) + { + t曲リストのソート1_絶対パス順(ノードリスト, E楽器パート.TAIKO, 1, 0); + + foreach( C曲リストノード c曲リストノード in ノードリスト ) + { + if( ( c曲リストノード.list子リスト != null ) && ( c曲リストノード.list子リスト.Count > 1 ) ) + { + t曲リストのソート1_絶対パス順( c曲リストノード.list子リスト ); + } + } + } + + public static void t曲リストのソート1_絶対パス順( List ノードリスト, E楽器パート part, int order, params object[] p ) + { + var comparer = new ComparerChain( + new C曲リストノードComparerノード種別(), + new C曲リストノードComparer絶対パス(order), + new C曲リストノードComparerタイトル(order)); + + ノードリスト.Sort( comparer ); + } + + public static void t曲リストのソート2_タイトル順( List ノードリスト, E楽器パート part, int order, params object[] p ) + { + var comparer = new ComparerChain( + new C曲リストノードComparerノード種別(), + new C曲リストノードComparerタイトル(order), + new C曲リストノードComparer絶対パス(order)); + + ノードリスト.Sort( comparer ); + } + + /// + /// + /// + /// + /// + /// 1=Ascend -1=Descend + public static void t曲リストのソート3_演奏回数の多い順( List ノードリスト, E楽器パート part, int order, params object[] p ) + { + order = -order; + int nL12345 = (int) p[ 0 ]; + if ( part != E楽器パート.UNKNOWN ) + { + ノードリスト.Sort( delegate( C曲リストノード n1, C曲リストノード n2 ) + { + #region [ 共通処理 ] + if( ( n1.eノード種別 == C曲リストノード.Eノード種別.BOX ) && ( n2.eノード種別 == C曲リストノード.Eノード種別.BOX ) ) + { + return order * n1.arスコア[ 0 ].ファイル情報.フォルダの絶対パス.CompareTo( n2.arスコア[ 0 ].ファイル情報.フォルダの絶対パス ); + } + #endregion + int nSumPlayCountN1 = 0, nSumPlayCountN2 = 0; +// for( int i = 0; i <(int)Difficulty.Total; i++ ) +// { + if( n1.arスコア[ nL12345 ] != null ) + { + nSumPlayCountN1 += n1.arスコア[ nL12345 ].譜面情報.演奏回数[ (int) part ]; + } + if( n2.arスコア[ nL12345 ] != null ) + { + nSumPlayCountN2 += n2.arスコア[ nL12345 ].譜面情報.演奏回数[ (int) part ]; + } +// } + var num = nSumPlayCountN2 - nSumPlayCountN1; + if( num != 0 ) + { + return order * num; + } + return order * n1.strタイトル.CompareTo( n2.strタイトル ); + } ); + foreach ( C曲リストノード c曲リストノード in ノードリスト ) + { + int nSumPlayCountN1 = 0; +// for ( int i = 0; i < 5; i++ ) +// { + if ( c曲リストノード.arスコア[ nL12345 ] != null ) + { + nSumPlayCountN1 += c曲リストノード.arスコア[ nL12345 ].譜面情報.演奏回数[ (int) part ]; + } +// } +// Debug.WriteLine( nSumPlayCountN1 + ":" + c曲リストノード.strタイトル ); + } + } + } + public static void t曲リストのソート4_LEVEL順( List ノードリスト, E楽器パート part, int order, params object[] p ) + { + order = -order; + int nL12345 = (int)p[ 0 ]; + if ( part != E楽器パート.UNKNOWN ) + { + ノードリスト.Sort( delegate( C曲リストノード n1, C曲リストノード n2 ) + { + #region [ 共通処理 ] + if ( ( n1.eノード種別 == C曲リストノード.Eノード種別.BOX ) && ( n2.eノード種別 == C曲リストノード.Eノード種別.BOX ) ) + { + return order * n1.arスコア[ 0 ].ファイル情報.フォルダの絶対パス.CompareTo( n2.arスコア[ 0 ].ファイル情報.フォルダの絶対パス ); + } + #endregion + int nSumPlayCountN1 = 0, nSumPlayCountN2 = 0; + if ( n1.arスコア[ nL12345 ] != null ) + { + nSumPlayCountN1 = n1.nLevel[ nL12345 ]; + } + if ( n2.arスコア[ nL12345 ] != null ) + { + nSumPlayCountN2 = n2.nLevel[ nL12345 ]; + } + var num = nSumPlayCountN2 - nSumPlayCountN1; + if ( num != 0 ) + { + return order * num; + } + return order * n1.strタイトル.CompareTo( n2.strタイトル ); + } ); + foreach ( C曲リストノード c曲リストノード in ノードリスト ) + { + int nSumPlayCountN1 = 0; + if ( c曲リストノード.arスコア[ nL12345 ] != null ) + { + nSumPlayCountN1 = c曲リストノード.nLevel[ nL12345 ]; + } +// Debug.WriteLine( nSumPlayCountN1 + ":" + c曲リストノード.strタイトル ); + } + } + } + public static void t曲リストのソート5_BestRank順( List ノードリスト, E楽器パート part, int order, params object[] p ) + { + order = -order; + int nL12345 = (int) p[ 0 ]; + if ( part != E楽器パート.UNKNOWN ) + { + ノードリスト.Sort( delegate( C曲リストノード n1, C曲リストノード n2 ) + { + #region [ 共通処理 ] + if ( ( n1.eノード種別 == C曲リストノード.Eノード種別.BOX ) && ( n2.eノード種別 == C曲リストノード.Eノード種別.BOX ) ) + { + return order * n1.arスコア[ 0 ].ファイル情報.フォルダの絶対パス.CompareTo( n2.arスコア[ 0 ].ファイル情報.フォルダの絶対パス ); + } + #endregion + int nSumPlayCountN1 = 0, nSumPlayCountN2 = 0; + bool isFullCombo1 = false, isFullCombo2 = false; + if ( n1.arスコア[ nL12345 ] != null ) + { + isFullCombo1 = n1.arスコア[ nL12345 ].譜面情報.フルコンボ[ (int) part ]; + nSumPlayCountN1 = n1.arスコア[ nL12345 ].譜面情報.最大ランク[ (int) part ]; + } + if ( n2.arスコア[ nL12345 ] != null ) + { + isFullCombo2 = n2.arスコア[ nL12345 ].譜面情報.フルコンボ[ (int) part ]; + nSumPlayCountN2 = n2.arスコア[ nL12345 ].譜面情報.最大ランク[ (int) part ]; + } + if ( isFullCombo1 ^ isFullCombo2 ) + { + if ( isFullCombo1 ) return order; else return -order; + } + var num = nSumPlayCountN2 - nSumPlayCountN1; + if ( num != 0 ) + { + return order * num; + } + return order * n1.strタイトル.CompareTo( n2.strタイトル ); + } ); + foreach ( C曲リストノード c曲リストノード in ノードリスト ) + { + int nSumPlayCountN1 = 0; + if ( c曲リストノード.arスコア[ nL12345 ] != null ) + { + nSumPlayCountN1 = c曲リストノード.arスコア[ nL12345 ].譜面情報.最大ランク[ (int) part ]; + } +// Debug.WriteLine( nSumPlayCountN1 + ":" + c曲リストノード.strタイトル ); + } + } + } + public static void t曲リストのソート6_SkillPoint順( List ノードリスト, E楽器パート part, int order, params object[] p ) + { + order = -order; + int nL12345 = (int) p[ 0 ]; + if ( part != E楽器パート.UNKNOWN ) + { + ノードリスト.Sort( delegate( C曲リストノード n1, C曲リストノード n2 ) + { + #region [ 共通処理 ] + if ( ( n1.eノード種別 == C曲リストノード.Eノード種別.BOX ) && ( n2.eノード種別 == C曲リストノード.Eノード種別.BOX ) ) + { + return order * n1.arスコア[ 0 ].ファイル情報.フォルダの絶対パス.CompareTo( n2.arスコア[ 0 ].ファイル情報.フォルダの絶対パス ); + } + #endregion + double nSumPlayCountN1 = 0, nSumPlayCountN2 = 0; + if ( n1.arスコア[ nL12345 ] != null ) + { + nSumPlayCountN1 = n1.arスコア[ nL12345 ].譜面情報.最大スキル[ (int) part ]; + } + if ( n2.arスコア[ nL12345 ] != null ) + { + nSumPlayCountN2 = n2.arスコア[ nL12345 ].譜面情報.最大スキル[ (int) part ]; + } + double d = nSumPlayCountN2 - nSumPlayCountN1; + if ( d != 0 ) + { + return order * System.Math.Sign(d); + } + return order * n1.strタイトル.CompareTo( n2.strタイトル ); + } ); + foreach ( C曲リストノード c曲リストノード in ノードリスト ) + { + double nSumPlayCountN1 = 0; + if ( c曲リストノード.arスコア[ nL12345 ] != null ) + { + nSumPlayCountN1 = c曲リストノード.arスコア[ nL12345 ].譜面情報.最大スキル[ (int) part ]; + } +// Debug.WriteLine( nSumPlayCountN1 + ":" + c曲リストノード.strタイトル ); + } + } + } + public static void t曲リストのソート7_更新日時順( List ノードリスト, E楽器パート part, int order, params object[] p ) + { + int nL12345 = (int) p[ 0 ]; + if ( part != E楽器パート.UNKNOWN ) + { + ノードリスト.Sort( delegate( C曲リストノード n1, C曲リストノード n2 ) + { + #region [ 共通処理 ] + if ( ( n1.eノード種別 == C曲リストノード.Eノード種別.BOX ) && ( n2.eノード種別 == C曲リストノード.Eノード種別.BOX ) ) + { + return order * n1.arスコア[ 0 ].ファイル情報.フォルダの絶対パス.CompareTo( n2.arスコア[ 0 ].ファイル情報.フォルダの絶対パス ); + } + #endregion + DateTime nSumPlayCountN1 = DateTime.Parse("0001/01/01 12:00:01.000"); + DateTime nSumPlayCountN2 = DateTime.Parse("0001/01/01 12:00:01.000"); + if ( n1.arスコア[ nL12345 ] != null ) + { + nSumPlayCountN1 = n1.arスコア[ nL12345 ].ファイル情報.最終更新日時; + } + if ( n2.arスコア[ nL12345 ] != null ) + { + nSumPlayCountN2 = n2.arスコア[ nL12345 ].ファイル情報.最終更新日時; + } + int d = nSumPlayCountN1.CompareTo(nSumPlayCountN2); + if ( d != 0 ) + { + return order * System.Math.Sign( d ); + } + return order * n1.strタイトル.CompareTo( n2.strタイトル ); + } ); + foreach ( C曲リストノード c曲リストノード in ノードリスト ) + { + DateTime nSumPlayCountN1 = DateTime.Parse( "0001/01/01 12:00:01.000" ); + if ( c曲リストノード.arスコア[ nL12345 ] != null ) + { + nSumPlayCountN1 = c曲リストノード.arスコア[ nL12345 ].ファイル情報.最終更新日時; + } +// Debug.WriteLine( nSumPlayCountN1 + ":" + c曲リストノード.strタイトル ); + } + } + } + public static void t曲リストのソート8_アーティスト名順( List ノードリスト, E楽器パート part, int order, params object[] p ) + { + int nL12345 = (int) p[ 0 ]; + ノードリスト.Sort( delegate( C曲リストノード n1, C曲リストノード n2 ) + { + string strAuthorN1 = ""; + string strAuthorN2 = ""; + if (n1.arスコア[ nL12345 ] != null ) { + strAuthorN1 = n1.arスコア[ nL12345 ].譜面情報.アーティスト名; + } + if ( n2.arスコア[ nL12345 ] != null ) + { + strAuthorN2 = n2.arスコア[ nL12345 ].譜面情報.アーティスト名; + } + + return order * strAuthorN1.CompareTo( strAuthorN2 ); + } ); + foreach ( C曲リストノード c曲リストノード in ノードリスト ) + { + string s = ""; + if ( c曲リストノード.arスコア[ nL12345 ] != null ) + { + s = c曲リストノード.arスコア[ nL12345 ].譜面情報.アーティスト名; + } +Debug.WriteLine( s + ":" + c曲リストノード.strタイトル ); + } + } + + public static void t曲リストのソート9_ジャンル順(List ノードリスト, E楽器パート part, int order, params object[] p) + { + try + { + var acGenreComparer = order == 1 + ? (IComparer) new C曲リストノードComparerAC8_14() + : new C曲リストノードComparerAC15(); + + var comparer = new ComparerChain( + new C曲リストノードComparerノード種別(), + acGenreComparer, + new C曲リストノードComparer絶対パス(1), + new C曲リストノードComparerタイトル(1)); + + ノードリスト.Sort( comparer ); + } + catch (Exception ex) + { + Trace.TraceError(ex.ToString()); + Trace.TraceError("例外が発生しましたが処理を継続します。 (bca6dda7-76ad-42fc-a415-250f52c0b17d)"); + } + } + +#if TEST_SORTBGM + public static void t曲リストのソート9_BPM順( List ノードリスト, E楽器パート part, int order, params object[] p ) + { + order = -order; + int nL12345 = (int) p[ 0 ]; + if ( part != E楽器パート.UNKNOWN ) + { + ノードリスト.Sort( delegate( C曲リストノード n1, C曲リストノード n2 ) + { + #region [ 共通処理 ] + if ( n1 == n2 ) + { + return 0; + } + int num = this.t比較0_共通( n1, n2 ); + if ( num != 0 ) + { + return num; + } + if ( ( n1.eノード種別 == C曲リストノード.Eノード種別.BOX ) && ( n2.eノード種別 == C曲リストノード.Eノード種別.BOX ) ) + { + return order * n1.arスコア[ 0 ].ファイル情報.フォルダの絶対パス.CompareTo( n2.arスコア[ 0 ].ファイル情報.フォルダの絶対パス ); + } + #endregion + double dBPMn1 = 0.0, dBPMn2 = 0.0; + if ( n1.arスコア[ nL12345 ] != null ) + { + dBPMn1 = n1.arスコア[ nL12345 ].譜面情報.bpm; + } + if ( n2.arスコア[ nL12345 ] != null ) + { + dBPMn2 = n2.arスコア[ nL12345 ].譜面情報.bpm; + } + double d = dBPMn1- dBPMn2; + if ( d != 0 ) + { + return order * System.Math.Sign( d ); + } + return order * n1.strタイトル.CompareTo( n2.strタイトル ); + } ); + foreach ( C曲リストノード c曲リストノード in ノードリスト ) + { + double dBPM = 0; + if ( c曲リストノード.arスコア[ nL12345 ] != null ) + { + dBPM = c曲リストノード.arスコア[ nL12345 ].譜面情報.bpm; + } +Debug.WriteLine( dBPM + ":" + c曲リストノード.strタイトル ); + } + } + } +#endif + //----------------- + #endregion + #region [ .score.ini を読み込んで Cスコア.譜面情報に設定する ] + //----------------- + public void tScoreIniを読み込んで譜面情報を設定する( string strScoreIniファイルパス, Cスコア score ) + { + if( !File.Exists( strScoreIniファイルパス ) ) + return; + + try + { + var ini = new CScoreIni( strScoreIniファイルパス ); + ini.t全演奏記録セクションの整合性をチェックし不整合があればリセットする(); + + for( int n楽器番号 = 0; n楽器番号 < 3; n楽器番号++ ) + { + int n = ( n楽器番号 * 2 ) + 1; // n = 0~5 + + #region socre.譜面情報.最大ランク[ n楽器番号 ] = ... + //----------------- + if( ini.stセクション[ n ].b演奏にMIDI入力を使用した || + ini.stセクション[ n ].b演奏にキーボードを使用した || + ini.stセクション[ n ].b演奏にジョイパッドを使用した || + ini.stセクション[ n ].b演奏にマウスを使用した ) + { + // (A) 全オートじゃないようなので、演奏結果情報を有効としてランクを算出する。 + + score.譜面情報.最大ランク[ n楽器番号 ] = + CScoreIni.tランク値を計算して返す( + ini.stセクション[ n ].n全チップ数, + ini.stセクション[ n ].nPerfect数, + ini.stセクション[ n ].nGreat数, + ini.stセクション[ n ].nGood数, + ini.stセクション[ n ].nPoor数, + ini.stセクション[ n ].nMiss数 ); + } + else + { + // (B) 全オートらしいので、ランクは無効とする。 + + score.譜面情報.最大ランク[ n楽器番号 ] = (int) CScoreIni.ERANK.UNKNOWN; + } + //----------------- + #endregion + score.譜面情報.最大スキル[ n楽器番号 ] = ini.stセクション[ n ].db演奏型スキル値; + score.譜面情報.フルコンボ[ n楽器番号 ] = ini.stセクション[ n ].bフルコンボである; + score.譜面情報.ハイスコア = (int)ini.stセクション.HiScoreDrums.nスコア; + score.譜面情報.nクリア = ini.stセクション.HiScoreDrums.nクリア; + score.譜面情報.nスコアランク = ini.stセクション.HiScoreDrums.nスコアランク; + for( int i = 0; i < (int)Difficulty.Total; i++ ) + { + score.譜面情報.nハイスコア[ i ] = (int)ini.stセクション.HiScoreDrums.nハイスコア[ i ]; + } + } + score.譜面情報.演奏回数.Drums = ini.stファイル.PlayCountDrums; + score.譜面情報.演奏回数.Guitar = ini.stファイル.PlayCountGuitar; + score.譜面情報.演奏回数.Bass = ini.stファイル.PlayCountBass; + for( int i = 0; i < (int)Difficulty.Total; i++ ) + score.譜面情報.演奏履歴[ i ] = ini.stファイル.History[ i ]; + } + catch (Exception e) + { + Trace.TraceError( "演奏記録ファイルの読み込みに失敗しました。[{0}]", strScoreIniファイルパス ); + Trace.TraceError( e.ToString() ); + Trace.TraceError( "例外が発生しましたが処理を継続します。 (801f823d-a952-4809-a1bb-cf6a56194f5c)" ); + } + } + //----------------- + #endregion + + // その他 + + #region [ private ] + //----------------- + //private const string SONGSDB_VERSION = "SongsDB5"; + private List listStrBoxDefSkinSubfolderFullName; + + /// + /// 検索を中断_スローダウンする + /// + private void SlowOrSuspendSearchTask() + { + if ( this.bIsSuspending ) // #27060 中断要求があったら、解除要求が来るまで待機 + { + AutoReset.WaitOne(); + } + if ( this.bIsSlowdown && ++this.searchCount > 10 ) // #27060 #PREMOVIE再生中は検索負荷を下げる + { + Thread.Sleep( 100 ); + this.searchCount = 0; + } + } + + //----------------- + #endregion + } +} +  diff --git a/TJAPlayer3/Songs/CStrジャンルtoNum.cs b/TJAPlayer3/Songs/CStrジャンルtoNum.cs new file mode 100644 index 00000000..080b2aa3 --- /dev/null +++ b/TJAPlayer3/Songs/CStrジャンルtoNum.cs @@ -0,0 +1,57 @@ +namespace TJAPlayer3 +{ + internal static class CStrジャンルtoNum + { + internal static int ForAC8_14( string strジャンル ) + { + switch( strジャンル ) + { + case "アニメ": + return 0; + case "ポップス": + return 1; + case "ゲームミュージック": + return 2; + case "ナムコオリジナル": + return 3; + case "クラシック": + return 4; + case "どうよう": + return 5; + case "バラエティ": + return 6; + case "ボーカロイド": + case "VOCALOID": + return 7; + default: + return 8; + } + } + + internal static int ForAC15(string strジャンル) + { + switch (strジャンル) + { + case "ポップス": + return 0; + case "アニメ": + return 1; + case "ボーカロイド": + case "VOCALOID": + return 2; + case "キッズ": + return 3; + case "バラエティ": + return 4; + case "クラシック": + return 5; + case "ゲームバラエティ": + return 6; + case "ナムコオリジナル": + return 7; + default: + return 8; + } + } + } +} \ No newline at end of file diff --git a/TJAPlayer3/Songs/Cスコア.cs b/TJAPlayer3/Songs/Cスコア.cs new file mode 100644 index 00000000..7329a286 --- /dev/null +++ b/TJAPlayer3/Songs/Cスコア.cs @@ -0,0 +1,315 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Runtime.InteropServices; +using System.Runtime.Serialization.Formatters.Binary; +using FDK; + +namespace TJAPlayer3 +{ + [Serializable] + internal class Cスコア + { + // プロパティ + + public STScoreIni情報 ScoreIni情報; + [Serializable] + [StructLayout( LayoutKind.Sequential )] + public struct STScoreIni情報 + { + public DateTime 最終更新日時; + public long ファイルサイズ; + + public STScoreIni情報( DateTime 最終更新日時, long ファイルサイズ ) + { + this.最終更新日時 = 最終更新日時; + this.ファイルサイズ = ファイルサイズ; + } + } + + public STファイル情報 ファイル情報; + [Serializable] + [StructLayout( LayoutKind.Sequential )] + public struct STファイル情報 + { + public string ファイルの絶対パス; + public string フォルダの絶対パス; + public DateTime 最終更新日時; + public long ファイルサイズ; + + public STファイル情報( string ファイルの絶対パス, string フォルダの絶対パス, DateTime 最終更新日時, long ファイルサイズ ) + { + this.ファイルの絶対パス = ファイルの絶対パス; + this.フォルダの絶対パス = フォルダの絶対パス; + this.最終更新日時 = 最終更新日時; + this.ファイルサイズ = ファイルサイズ; + } + } + + public ST譜面情報 譜面情報; + [Serializable] + [StructLayout( LayoutKind.Sequential )] + public struct ST譜面情報 + { + public string タイトル; + public string アーティスト名; + public string コメント; + public string ジャンル; + public string Preimage; + public string Premovie; + public string Presound; + public string Backgound; + public STDGBVALUE レベル; + public STRANK 最大ランク; + public STSKILL 最大スキル; + public STDGBVALUE フルコンボ; + public STDGBVALUE 演奏回数; + public STHISTORY 演奏履歴; + public bool レベルを非表示にする; + public CDTX.E種別 曲種別; + public double Bpm; + public int Duration; + public string strBGMファイル名; + public int SongVol; + public LoudnessMetadata? SongLoudnessMetadata; + public int nデモBGMオフセット; + public bool[] b譜面分岐; + public int ハイスコア; + public int[] nハイスコア; + public string strサブタイトル; + public int[] nレベル; + public int[] nクリア; //0:未クリア 1:クリア 2:フルコンボ 3:ドンダフルコンボ + public int[] nスコアランク; //0:未取得 1:白粋 2:銅粋 3:銀粋 4:金雅 5:桃雅 6:紫雅 7:虹極 + + [Serializable] + [StructLayout( LayoutKind.Sequential )] + public struct STHISTORY + { + public string 行1; + public string 行2; + public string 行3; + public string 行4; + public string 行5; + public string 行6; + public string 行7; + public string this[ int index ] + { + get + { + switch( index ) + { + case 0: + return this.行1; + + case 1: + return this.行2; + + case 2: + return this.行3; + + case 3: + return this.行4; + + case 4: + return this.行5; + case 5: + return this.行6; + case 6: + return this.行7; + } + throw new IndexOutOfRangeException(); + } + set + { + switch( index ) + { + case 0: + this.行1 = value; + return; + + case 1: + this.行2 = value; + return; + + case 2: + this.行3 = value; + return; + + case 3: + this.行4 = value; + return; + + case 4: + this.行5 = value; + return; + case 5: + this.行6 = value; + return; + case 6: + this.行7 = value; + return; + } + throw new IndexOutOfRangeException(); + } + } + } + + [Serializable] + [StructLayout( LayoutKind.Sequential )] + public struct STRANK + { + public int Drums; + public int Guitar; + public int Bass; + public int this[ int index ] + { + get + { + switch( index ) + { + case 0: + return this.Drums; + + case 1: + return this.Guitar; + + case 2: + return this.Bass; + } + throw new IndexOutOfRangeException(); + } + set + { + if ( ( value < (int)CScoreIni.ERANK.SS ) || ( ( value != (int)CScoreIni.ERANK.UNKNOWN ) && ( value > (int)CScoreIni.ERANK.E ) ) ) + { + throw new ArgumentOutOfRangeException(); + } + switch( index ) + { + case 0: + this.Drums = value; + return; + + case 1: + this.Guitar = value; + return; + + case 2: + this.Bass = value; + return; + } + throw new IndexOutOfRangeException(); + } + } + } + + [Serializable] + [StructLayout( LayoutKind.Sequential )] + public struct STSKILL + { + public double Drums; + public double Guitar; + public double Bass; + public double this[ int index ] + { + get + { + switch( index ) + { + case 0: + return this.Drums; + + case 1: + return this.Guitar; + + case 2: + return this.Bass; + } + throw new IndexOutOfRangeException(); + } + set + { + if( ( value < 0.0 ) || ( value > 100.0 ) ) + { + throw new ArgumentOutOfRangeException(); + } + switch( index ) + { + case 0: + this.Drums = value; + return; + + case 1: + this.Guitar = value; + return; + + case 2: + this.Bass = value; + return; + } + throw new IndexOutOfRangeException(); + } + } + } + } + + public bool bSongDBにキャッシュがあった; + public bool bスコアが有効である + { + get + { + return ( ( ( this.譜面情報.レベル[ 0 ] + this.譜面情報.レベル[ 1 ] ) + this.譜面情報.レベル[ 2 ] ) != 0 ); + } + } + + + // コンストラクタ + + public Cスコア() + { + this.ScoreIni情報 = new STScoreIni情報( DateTime.MinValue, 0L ); + this.bSongDBにキャッシュがあった = false; + this.ファイル情報 = new STファイル情報( "", "", DateTime.MinValue, 0L ); + this.譜面情報 = new ST譜面情報(); + this.譜面情報.タイトル = ""; + this.譜面情報.アーティスト名 = ""; + this.譜面情報.コメント = ""; + this.譜面情報.ジャンル = ""; + this.譜面情報.Preimage = ""; + this.譜面情報.Premovie = ""; + this.譜面情報.Presound = ""; + this.譜面情報.Backgound = ""; + this.譜面情報.レベル = new STDGBVALUE(); + this.譜面情報.最大ランク = new ST譜面情報.STRANK(); + this.譜面情報.最大ランク.Drums = (int)CScoreIni.ERANK.UNKNOWN; + this.譜面情報.最大ランク.Guitar = (int)CScoreIni.ERANK.UNKNOWN; + this.譜面情報.最大ランク.Bass = (int)CScoreIni.ERANK.UNKNOWN; + this.譜面情報.フルコンボ = new STDGBVALUE(); + this.譜面情報.演奏回数 = new STDGBVALUE(); + this.譜面情報.演奏履歴 = new ST譜面情報.STHISTORY(); + this.譜面情報.演奏履歴.行1 = ""; + this.譜面情報.演奏履歴.行2 = ""; + this.譜面情報.演奏履歴.行3 = ""; + this.譜面情報.演奏履歴.行4 = ""; + this.譜面情報.演奏履歴.行5 = ""; + this.譜面情報.演奏履歴.行6 = ""; + this.譜面情報.演奏履歴.行7 = ""; + this.譜面情報.レベルを非表示にする = false; + this.譜面情報.最大スキル = new ST譜面情報.STSKILL(); + this.譜面情報.曲種別 = CDTX.E種別.DTX; + this.譜面情報.Bpm = 120.0; + this.譜面情報.Duration = 0; + this.譜面情報.strBGMファイル名 = ""; + this.譜面情報.SongVol = CSound.DefaultSongVol; + this.譜面情報.SongLoudnessMetadata = null; + this.譜面情報.nデモBGMオフセット = 0; + this.譜面情報.b譜面分岐 = new bool[(int)Difficulty.Total]; + this.譜面情報.ハイスコア = 0; + this.譜面情報.nハイスコア = new int[(int)Difficulty.Total]; + this.譜面情報.strサブタイトル = ""; + this.譜面情報.nレベル = new int[(int)Difficulty.Total] { -1, -1, -1, -1, -1, -1, -1}; + this.譜面情報.nクリア = new int[5]; + this.譜面情報.nスコアランク = new int[5]; + } + } +} diff --git a/TJAPlayer3/Songs/C曲リストノード.cs b/TJAPlayer3/Songs/C曲リストノード.cs new file mode 100644 index 00000000..be7521f5 --- /dev/null +++ b/TJAPlayer3/Songs/C曲リストノード.cs @@ -0,0 +1,86 @@ +using System; +using System.Collections.Generic; +using System.Drawing; + +namespace TJAPlayer3 +{ + [Serializable] + internal class C曲リストノード + { + // プロパティ + + public Eノード種別 eノード種別 = Eノード種別.UNKNOWN; + public enum Eノード種別 + { + SCORE, + SCORE_MIDI, + BOX, + BACKBOX, + RANDOM, + UNKNOWN + } + public int nID { get; private set; } + public Cスコア[] arスコア = new Cスコア[(int)Difficulty.Total]; + public string[] ar難易度ラベル = new string[(int)Difficulty.Total]; + public bool bDTXFilesで始まるフォルダ名のBOXである; + public bool bBoxDefで作成されたBOXである + { + get + { + return !this.bDTXFilesで始まるフォルダ名のBOXである; + } + set + { + this.bDTXFilesで始まるフォルダ名のBOXである = !value; + } + } + public Color col文字色 = Color.White; + public Color ForeColor = Color.White; + public Color BackColor = Color.Black; + public bool IsChangedForeColor; + public bool IsChangedBackColor; + public List listランダム用ノードリスト; + public List list子リスト; + public int nGood範囲ms = -1; + public int nGreat範囲ms = -1; + public int nPerfect範囲ms = -1; + public int nPoor範囲ms = -1; + public int nスコア数; + public C曲リストノード r親ノード; + public int Openindex; + public Stack stackランダム演奏番号 = new Stack(); + public string strジャンル = ""; + public string str本当のジャンル = ""; + public string strタイトル = ""; + public List DanSongs; + public Dan_C[] Dan_C; + public string strサブタイトル = ""; + public string strBreadcrumbs = ""; // #27060 2011.2.27 yyagi; MUSIC BOXのパンくずリスト (曲リスト構造内の絶対位置捕捉のために使う) + public string strSkinPath = ""; // #28195 2012.5.4 yyagi; box.defでのスキン切り替え対応 + public bool bBranch = false; + public int[] nLevel = new int[(int)Difficulty.Total]{ 0, 0, 0, 0, 0, 0, 0 }; + public string[] strBoxText = new string[3]; + public Eジャンル eジャンル = Eジャンル.None; + + // コンストラクタ + + public C曲リストノード() + { + this.nID = id++; + } + + public C曲リストノード Clone() + { + return (C曲リストノード)MemberwiseClone(); + } + + + // その他 + + #region [ private ] + //----------------- + private static int id; + //----------------- + #endregion + } +} diff --git a/TJAPlayer3/Songs/C曲リストノードComparers/ComparerChain.cs b/TJAPlayer3/Songs/C曲リストノードComparers/ComparerChain.cs new file mode 100644 index 00000000..358edcc9 --- /dev/null +++ b/TJAPlayer3/Songs/C曲リストノードComparers/ComparerChain.cs @@ -0,0 +1,34 @@ +using System.Collections.Generic; + +namespace TJAPlayer3.C曲リストノードComparers +{ + internal sealed class ComparerChain : IComparer where T : class + { + private readonly IComparer[] _comparers; + + public ComparerChain(params IComparer[] comparers) + { + _comparers = comparers; + } + + public int Compare(T x, T y) + { + if (ReferenceEquals(x, y)) + { + return 0; + } + + for (int i = 0; i < _comparers.Length; i++) + { + var result = _comparers[i].Compare(x, y); + + if (result != 0) + { + return result; + } + } + + return 0; + } + } +} \ No newline at end of file diff --git a/TJAPlayer3/Songs/C曲リストノードComparers/C曲リストノードComparerAC15.cs b/TJAPlayer3/Songs/C曲リストノードComparers/C曲リストノードComparerAC15.cs new file mode 100644 index 00000000..8d8e8374 --- /dev/null +++ b/TJAPlayer3/Songs/C曲リストノードComparers/C曲リストノードComparerAC15.cs @@ -0,0 +1,12 @@ +using System.Collections.Generic; + +namespace TJAPlayer3.C曲リストノードComparers +{ + internal sealed class C曲リストノードComparerAC15 : IComparer + { + public int Compare(C曲リストノード n1, C曲リストノード n2) + { + return CStrジャンルtoNum.ForAC15(n1.strジャンル).CompareTo(CStrジャンルtoNum.ForAC15(n2.strジャンル)); + } + } +} \ No newline at end of file diff --git a/TJAPlayer3/Songs/C曲リストノードComparers/C曲リストノードComparerAC8_14.cs b/TJAPlayer3/Songs/C曲リストノードComparers/C曲リストノードComparerAC8_14.cs new file mode 100644 index 00000000..58edc97e --- /dev/null +++ b/TJAPlayer3/Songs/C曲リストノードComparers/C曲リストノードComparerAC8_14.cs @@ -0,0 +1,12 @@ +using System.Collections.Generic; + +namespace TJAPlayer3.C曲リストノードComparers +{ + internal sealed class C曲リストノードComparerAC8_14 : IComparer + { + public int Compare(C曲リストノード n1, C曲リストノード n2) + { + return CStrジャンルtoNum.ForAC8_14(n1.strジャンル).CompareTo(CStrジャンルtoNum.ForAC8_14(n2.strジャンル)); + } + } +} \ No newline at end of file diff --git a/TJAPlayer3/Songs/C曲リストノードComparers/C曲リストノードComparerタイトル.cs b/TJAPlayer3/Songs/C曲リストノードComparers/C曲リストノードComparerタイトル.cs new file mode 100644 index 00000000..829d0f10 --- /dev/null +++ b/TJAPlayer3/Songs/C曲リストノードComparers/C曲リストノードComparerタイトル.cs @@ -0,0 +1,19 @@ +using System.Collections.Generic; + +namespace TJAPlayer3.C曲リストノードComparers +{ + internal sealed class C曲リストノードComparerタイトル : IComparer + { + private readonly int _order; + + public C曲リストノードComparerタイトル(int order) + { + this._order = order; + } + + public int Compare(C曲リストノード n1, C曲リストノード n2) + { + return _order * n1.strタイトル.CompareTo( n2.strタイトル ); + } + } +} \ No newline at end of file diff --git a/TJAPlayer3/Songs/C曲リストノードComparers/C曲リストノードComparerノード種別.cs b/TJAPlayer3/Songs/C曲リストノードComparers/C曲リストノードComparerノード種別.cs new file mode 100644 index 00000000..bdc9fd53 --- /dev/null +++ b/TJAPlayer3/Songs/C曲リストノードComparers/C曲リストノードComparerノード種別.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; + +namespace TJAPlayer3.C曲リストノードComparers +{ + internal sealed class C曲リストノードComparerノード種別 : IComparer + { + public int Compare(C曲リストノード x, C曲リストノード y) + { + return ToComparable(x.eノード種別).CompareTo(ToComparable(y.eノード種別)); + } + + private static int ToComparable(C曲リストノード.Eノード種別 eノード種別) + { + switch (eノード種別) + { + case C曲リストノード.Eノード種別.BOX: + return 0; + case C曲リストノード.Eノード種別.SCORE: + case C曲リストノード.Eノード種別.SCORE_MIDI: + return 1; + case C曲リストノード.Eノード種別.UNKNOWN: + return 2; + case C曲リストノード.Eノード種別.RANDOM: + return 3; + case C曲リストノード.Eノード種別.BACKBOX: + return 4; + default: + throw new ArgumentOutOfRangeException(); + } + } + } +} diff --git a/TJAPlayer3/Songs/C曲リストノードComparers/C曲リストノードComparer絶対パス.cs b/TJAPlayer3/Songs/C曲リストノードComparers/C曲リストノードComparer絶対パス.cs new file mode 100644 index 00000000..2df01ab7 --- /dev/null +++ b/TJAPlayer3/Songs/C曲リストノードComparers/C曲リストノードComparer絶対パス.cs @@ -0,0 +1,40 @@ +using System.Collections.Generic; + +namespace TJAPlayer3.C曲リストノードComparers +{ + internal sealed class C曲リストノードComparer絶対パス : IComparer + { + private readonly int _order; + + public C曲リストノードComparer絶対パス(int order) + { + this._order = order; + } + + public int Compare(C曲リストノード n1, C曲リストノード n2) + { + if( ( n1.eノード種別 == C曲リストノード.Eノード種別.BOX ) && ( n2.eノード種別 == C曲リストノード.Eノード種別.BOX ) ) + { + return _order * n1.arスコア[ 0 ].ファイル情報.フォルダの絶対パス.CompareTo( n2.arスコア[ 0 ].ファイル情報.フォルダの絶対パス ); + } + + var str = strファイルの絶対パス(n1); + var strB = strファイルの絶対パス(n2); + + return _order * str.CompareTo( strB ); + } + + private static string strファイルの絶対パス(C曲リストノード c曲リストノード) + { + for (int i = 0; i < (int)Difficulty.Total; i++) + { + if (c曲リストノード.arスコア[i] != null) + { + return c曲リストノード.arスコア[i].ファイル情報.ファイルの絶対パス ?? ""; + } + } + + return ""; + } + } +} \ No newline at end of file diff --git a/TJAPlayer3/Songs/Dan-C.cs b/TJAPlayer3/Songs/Dan-C.cs new file mode 100644 index 00000000..df9ac9b3 --- /dev/null +++ b/TJAPlayer3/Songs/Dan-C.cs @@ -0,0 +1,391 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace TJAPlayer3 +{ + /// + /// 段位認定を管理するクラス。 + /// + public class Dan_C + { + public Dan_C() + { + + } + + public Dan_C(Dan_C dan_C) : this(dan_C.GetExamType(), new int[] { dan_C.GetValue(false), dan_C.GetValue(true) }, dan_C.GetExamRange()) + { + + } + + /// + /// 段位認定の条件を初期化し、生成します。 + /// + /// 条件の種別。 + /// 条件の合格量。 + /// 条件の合格の範囲。 + public Dan_C(Exam.Type examType, int[] value, Exam.Range examRange) + { + IsEnable = true; + NotReached = false; + SetExamType(examType); + SetValue(value[0], value[1]); + SetExamRange(examRange); + } + + /// + /// 条件と現在の値を評価して、クリアしたかどうかを判断します。 + /// + /// その条件の現在の値。 + public bool Update(int nowValue) + { + var isChangedAmount = false; + if (!GetEnable()) return isChangedAmount; + if (GetAmount() < nowValue) isChangedAmount = true; + if (GetExamRange() == Exam.Range.Less && nowValue > GetValue(false)) isChangedAmount = false; // n未満でその数を超えたらfalseを返す。 + SetAmount(nowValue); + switch (GetExamType()) + { + case Exam.Type.Gauge: + SetCleared(); + break; + case Exam.Type.JudgePerfect: + SetCleared(); + break; + case Exam.Type.JudgeGood: + SetCleared(); + break; + case Exam.Type.JudgeBad: + SetCleared(); + break; + case Exam.Type.Score: + SetCleared(); + break; + case Exam.Type.Roll: + SetCleared(); + break; + case Exam.Type.Hit: + SetCleared(); + break; + case Exam.Type.Combo: + SetCleared(); + break; + default: + break; + } + return isChangedAmount; + } + + /// + /// 段位認定の条件が有効であるかどうかを返します。 + /// + /// 段位認定の条件が有効であるかどうか。 + public bool GetEnable() + { + return this.IsEnable; + } + + /// + /// 各合格条件のボーダーを設定します。 + /// + /// 赤合格条件 + /// 金合格条件 + public void SetValue(int redValue, int goldValue) + { + if (redValue != -1) this.Value[0] = redValue; + if (goldValue != -1) this.Value[1] = goldValue; + } + + /// + /// 各合格条件のボーダーを返します。 + /// + /// trueを指定すると、金合格条件を返します。 + /// 合格条件の値。 + public int GetValue(bool isGoldValue) + { + return isGoldValue == true ? this.Value[1] : this.Value[0]; + } + + /// + /// 現在の値を設定します。 + /// + /// 現在の値。 + public void SetAmount(int amount) + { + this.Amount = amount; + } + + /// + /// 現在の値を返します。 + /// + /// 現在の値。 + public int GetAmount() + { + return this.Amount; + } + + /// + /// 条件の種別を返します。 + /// + /// 条件の種別 + public Exam.Type GetExamType() + { + return this.Type; + } + + /// + /// 条件の種別を設定します。 + /// + /// 条件の種別。 + private void SetExamType(Exam.Type type) + { + this.Type = type; + } + + /// + /// 条件の範囲を返します。 + /// + /// 条件の範囲 + public Exam.Range GetExamRange() + { + return this.Range; + } + + /// + /// 条件の範囲を設定します。 + /// + /// + private void SetExamRange(Exam.Range range) + { + this.Range = range; + } + + /// + /// 条件にクリアしているかどうか返します。 + /// + /// 条件にクリアしているかどうか。 + public bool[] GetCleared() + { + return IsCleared; + } + + + /// + /// 条件と現在の値をチェックして、合格もしくは金合格をしてるか否かを更新する。 + /// + private void SetCleared() + { + if (GetExamRange() == Exam.Range.More) + { + if (GetAmount() >= GetValue(false)) + { + IsCleared[0] = true; + if (GetAmount() >= GetValue(true)) + { + IsCleared[1] = true; + } + } + else + { + IsCleared[0] = false; + IsCleared[1] = false; + } + } + else + { + if (GetAmount() < GetValue(true)) + { + IsCleared[1] = true; + } + else + { + IsCleared[1] = false; + } + if (GetAmount() < GetValue(false)) + { + IsCleared[0] = true; + } + else + { + IsCleared[0] = false; + } + } + } + + /// + /// ゲージの描画のための百分率を返す。 + /// + /// Amountの百分率。 + public int GetAmountToPercent() + { + var percent = 0.0D; + if(GetValue(false) == 0) + { + return 0; + } + if(GetExamRange() == Exam.Range.More) + { + switch (GetExamType()) + { + case Exam.Type.Gauge: + case Exam.Type.JudgePerfect: + case Exam.Type.JudgeGood: + case Exam.Type.JudgeBad: + case Exam.Type.Score: + case Exam.Type.Roll: + case Exam.Type.Hit: + case Exam.Type.Combo: + percent = 1.0 * GetAmount() / GetValue(false); + break; + default: + break; + } + } + else + { + switch (GetExamType()) + { + case Exam.Type.Gauge: + case Exam.Type.JudgePerfect: + case Exam.Type.JudgeGood: + case Exam.Type.JudgeBad: + case Exam.Type.Score: + case Exam.Type.Roll: + case Exam.Type.Hit: + case Exam.Type.Combo: + percent = (1.0 * (GetValue(false) - GetAmount())) / GetValue(false); + break; + default: + break; + } + } + percent = percent * 100.0; + if (percent < 0.0) + percent = 0.0D; + if (percent > 100.0) + percent = 100.0D; + return (int)percent; + } + + /// + /// 条件に達成できる見込みがあるかどうか値を代入します。 + /// + /// 未達成かどうか。 + public void SetReached(bool notReached) + { + NotReached = notReached; + } + + /// + /// 条件に達成できる見込みがあるかどうかを返します。 + /// + /// 条件に達成できる見込みがあるかどうか。 + public bool GetReached() + { + return NotReached; + } + + // オーバーライドメソッド + /// + /// ToString()のオーバーライドメソッド。段位認定モードの各条件の現在状況をString型で返します。 + /// + /// 段位認定モードの各条件の現在状況。 + public override string ToString() + { + return String.Format("Type: {0} / Value: {1}/{2} / Range: {3} / Amount: {4} / Clear: {5}/{6} / Percent: {7} / NotReached: {8}", GetExamType(), GetValue(false), GetValue(true), GetExamRange(), GetAmount(), GetCleared()[0], GetCleared()[1], GetAmountToPercent(), GetReached()); + } + + + // フィールド + /// + /// その条件が有効であるかどうか。 + /// + private bool IsEnable; + /// + /// 条件の種別。 + /// + private Exam.Type Type; + /// + /// 条件の範囲。 + /// + private Exam.Range Range; + /// + /// 条件の値。 + /// + public int[] Value = new int[] { 0, 0 }; + /// + /// 量。 + /// + public int Amount; + /// + /// 条件をクリアしているか否か。 + /// + public readonly bool[] IsCleared = new[] { false, false }; + + /// + /// 曲ごとの条件を格納する + /// + public Dan_C[] SongExam = new Dan_C[3]; + + /// + /// 条件の達成見込みがなくなったら、真になる。 + /// この変数が一度trueになれば、基本的にfalseに戻ることはない。 + /// (スコア加算については、この限りではない。) + /// + private bool NotReached = false; + } + + public static class Exam + { + /// + /// 段位認定の条件の種別。 + /// + public enum Type + { + Gauge, + JudgePerfect, + JudgeGood, + JudgeBad, + Score, + Roll, + Hit, + Combo + } + + /// + /// 段位認定の合格範囲。 + /// + public enum Range + { + /// + /// 以上 + /// + More, + /// + /// 未満 + /// + Less + } + + /// + /// ステータス。 + /// + public enum Status + { + /// + /// 不合格 + /// + Failure, + /// + /// 合格 + /// + Success, + /// + /// より良い合格 + /// + Better_Success + } + } +} diff --git a/TJAPlayer3/Songs/GaugeIncreaseMode.cs b/TJAPlayer3/Songs/GaugeIncreaseMode.cs new file mode 100644 index 00000000..427579f6 --- /dev/null +++ b/TJAPlayer3/Songs/GaugeIncreaseMode.cs @@ -0,0 +1,29 @@ +namespace TJAPlayer3 +{ + /// + /// ゲージ増加量の種類。 + /// + public enum GaugeIncreaseMode + { + /// + /// 切り捨てる。Floorと同義。 + /// + Normal, + /// + /// 切り捨てる。 + /// + Floor, + /// + /// 四捨五入する。 + /// + Round, + /// + /// 切り上げる。 + /// + Ceiling, + /// + /// 丸め処理を行わない。 + /// + NotFix + } +} diff --git a/TJAPlayer3/Stages/01.StartUp/CStage起動.cs b/TJAPlayer3/Stages/01.StartUp/CStage起動.cs new file mode 100644 index 00000000..cbd59964 --- /dev/null +++ b/TJAPlayer3/Stages/01.StartUp/CStage起動.cs @@ -0,0 +1,365 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Diagnostics; +using System.Threading; +using System.IO; +using FDK; +using System.Runtime.Serialization.Formatters.Binary; +using System.Windows.Input; + +namespace TJAPlayer3 +{ + internal class CStage起動 : CStage + { + // コンストラクタ + + public CStage起動() + { + base.eステージID = CStage.Eステージ.起動; + base.b活性化してない = true; + } + + public List list進行文字列; + + // CStage 実装 + + public override void On活性化() + { + Trace.TraceInformation( "起動ステージを活性化します。" ); + Trace.Indent(); + try + { + this.list進行文字列 = new List(); + base.eフェーズID = CStage.Eフェーズ.共通_通常状態; + base.On活性化(); + Trace.TraceInformation( "起動ステージの活性化を完了しました。" ); + } + finally + { + Trace.Unindent(); + } + } + public override void On非活性化() + { + Trace.TraceInformation( "起動ステージを非活性化します。" ); + Trace.Indent(); + try + { + this.list進行文字列 = null; + if ( es != null ) + { + if ( ( es.thDTXFileEnumerate != null ) && es.thDTXFileEnumerate.IsAlive ) + { + Trace.TraceWarning( "リスト構築スレッドを強制停止します。" ); + es.thDTXFileEnumerate.Abort(); + es.thDTXFileEnumerate.Join(); + } + } + base.On非活性化(); + Trace.TraceInformation( "起動ステージの非活性化を完了しました。" ); + } + finally + { + Trace.Unindent(); + } + } + public override void OnManagedリソースの作成() + { + if( !base.b活性化してない ) + { + this.tx背景 = TJAPlayer3.tテクスチャの生成( CSkin.Path( @"Graphics\1_Title\Background.png" ), false ); + base.OnManagedリソースの作成(); + } + } + public override void OnManagedリソースの解放() + { + if( !base.b活性化してない ) + { + TJAPlayer3.tテクスチャの解放( ref this.tx背景 ); + base.OnManagedリソースの解放(); + } + } + public override int On進行描画() + { + if( !base.b活性化してない ) + { + if( base.b初めての進行描画 ) + { + this.list進行文字列.Add( "DTXManiaXG Ver.K powered by YAMAHA Silent Session Drums\n" ); + this.list進行文字列.Add( "Product by.kairera0467\n" ); + this.list進行文字列.Add( "Release: " + TJAPlayer3.VERSION + " [" + System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString() + "]" ); + + this.list進行文字列.Add(""); + this.list進行文字列.Add("TJAPlayer3-Develop-ReWrite forked TJAPlayer3(@aioilight)"); + this.list進行文字列.Add("TJAPlayer3-Develop-BSQ forked TJAPlayer3-Develop-ReWrite(@TouhouRenren)"); + this.list進行文字列.Add("-Develop-BSQ edited by 0AuBSQ"); + this.list進行文字列.Add(""); + + es = new CEnumSongs(); + es.StartEnumFromCache(); // 曲リスト取得(別スレッドで実行される) + base.b初めての進行描画 = false; + return 0; + } + + // CSongs管理 s管理 = CDTXMania.Songs管理; + + //if( this.tx背景 != null ) + // this.tx背景.t2D描画( CDTXMania.app.Device, 0, 0 ); + + #region [ this.str現在進行中 の決定 ] + //----------------- + switch( base.eフェーズID ) + { + case CStage.Eフェーズ.起動0_システムサウンドを構築: + this.str現在進行中 = "SYSTEM SOUND..."; + break; + + case CStage.Eフェーズ.起動00_songlistから曲リストを作成する: + this.str現在進行中 = "SONG LIST..."; + break; + + /*case CStage.Eフェーズ.起動1_SongsDBからスコアキャッシュを構築: + this.str現在進行中 = "SONG DATABASE..."; + break;*/ + + case CStage.Eフェーズ.起動2_曲を検索してリストを作成する: + this.str現在進行中 = string.Format( "{0} ... {1}", "Enumerating songs", es.Songs管理.n検索されたスコア数 ); + break; + + case CStage.Eフェーズ.起動3_スコアキャッシュをリストに反映する: + this.str現在進行中 = string.Format( "{0} ... {1}/{2}", "Loading score properties from songs.db", es.Songs管理.nスコアキャッシュから反映できたスコア数, es.Songs管理.n検索されたスコア数 ); + break; + + case CStage.Eフェーズ.起動4_スコアキャッシュになかった曲をファイルから読み込んで反映する: + this.str現在進行中 = string.Format( "{0} ... {1}/{2}", "Loading score properties from files", es.Songs管理.nファイルから反映できたスコア数, es.Songs管理.n検索されたスコア数 - es.Songs管理.nスコアキャッシュから反映できたスコア数 ); + break; + + case CStage.Eフェーズ.起動5_曲リストへ後処理を適用する: + this.str現在進行中 = string.Format( "{0} ... ", "Building songlists" ); + break; + + /*case CStage.Eフェーズ.起動6_スコアキャッシュをSongsDBに出力する: + this.str現在進行中 = string.Format( "{0} ... ", "Saving songs.db" ); + break;*/ + + case CStage.Eフェーズ.起動_テクスチャの読み込み: + this.list進行文字列.Add("LOADING TEXTURES..."); + TJAPlayer3.Tx.LoadTexture(); + this.list進行文字列.Add("LOADING TEXTURES...OK"); + this.str現在進行中 = "Setup done."; + this.eフェーズID = Eフェーズ.起動7_完了; + break; + } + //----------------- + #endregion + + if(eフェーズID != Eフェーズ.起動7_完了) + { + #region [ this.list進行文字列+this.現在進行中 の表示 ] + //----------------- + lock (this.list進行文字列) + { + int x = 320; + int y = 20; + foreach (string str in this.list進行文字列) + { + TJAPlayer3.act文字コンソール.tPrint(x, y, C文字コンソール.Eフォント種別.白, str); + y += 24; + } + TJAPlayer3.act文字コンソール.tPrint(x, y, C文字コンソール.Eフォント種別.白, this.str現在進行中); + } + //----------------- + #endregion + } + else + { + TJAPlayer3.Tx.Readme.t2D描画(TJAPlayer3.app.Device, 0, 0); + } + + if ( es != null && es.IsSongListEnumCompletelyDone ) // 曲リスト作成が終わったら + { + TJAPlayer3.Songs管理 = ( es != null ) ? es.Songs管理 : null; // 最後に、曲リストを拾い上げる + + if(TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.Return)) + { + TJAPlayer3.Skin.sound決定音.t再生する(); + return 1; + } + } + } + return 0; + } + + + // その他 + + #region [ private ] + //----------------- + private string str現在進行中 = ""; + private CTexture tx背景; + private CEnumSongs es; + +#if false + private void t曲リストの構築() + { + // !注意! + // 本メソッドは別スレッドで動作するが、プラグイン側でカレントディレクトリを変更しても大丈夫なように、 + // すべてのファイルアクセスは「絶対パス」で行うこと。(2010.9.16) + + DateTime now = DateTime.Now; + string strPathSongsDB = CDTXMania.strEXEのあるフォルダ + "songs.db"; + string strPathSongList = CDTXMania.strEXEのあるフォルダ + "songlist.db"; + + try + { + #region [ 0) システムサウンドの構築 ] + //----------------------------- + base.eフェーズID = CStage.Eフェーズ.起動0_システムサウンドを構築; + + Trace.TraceInformation( "0) システムサウンドを構築します。" ); + Trace.Indent(); + + try + { + for( int i = 0; i < CDTXMania.Skin.nシステムサウンド数; i++ ) + { + CSkin.Cシステムサウンド cシステムサウンド = CDTXMania.Skin[ i ]; + if( !CDTXMania.bコンパクトモード || cシステムサウンド.bCompact対象 ) + { + try + { + cシステムサウンド.t読み込み(); + Trace.TraceInformation( "システムサウンドを読み込みました。({0})", new object[] { cシステムサウンド.strファイル名 } ); + if( ( cシステムサウンド == CDTXMania.Skin.bgm起動画面 ) && cシステムサウンド.b読み込み成功 ) + { + cシステムサウンド.t再生する(); + } + } + catch( FileNotFoundException ) + { + Trace.TraceWarning( "システムサウンドが存在しません。({0})", new object[] { cシステムサウンド.strファイル名 } ); + } + catch( Exception exception ) + { + Trace.TraceError( exception.Message ); + Trace.TraceWarning( "システムサウンドの読み込みに失敗しました。({0})", new object[] { cシステムサウンド.strファイル名 } ); + } + } + } + lock( this.list進行文字列 ) + { + this.list進行文字列.Add( "Loading system sounds ... OK " ); + } + } + finally + { + Trace.Unindent(); + } + //----------------------------- + #endregion + + if( CDTXMania.bコンパクトモード ) + { + Trace.TraceInformation( "コンパクトモードなので残りの起動処理は省略します。" ); + return; + } + + #region [ 00) songlist.dbの読み込みによる曲リストの構築 ] + //----------------------------- + base.eフェーズID = CStage.Eフェーズ.起動00_songlistから曲リストを作成する; + + Trace.TraceInformation( "1) songlist.dbを読み込みます。" ); + Trace.Indent(); + + try + { + if ( !CDTXMania.ConfigIni.bConfigIniがないかDTXManiaのバージョンが異なる ) + { + try + { + CDTXMania.Songs管理.tSongListDBを読み込む( strPathSongList ); + } + catch + { + Trace.TraceError( "songlist.db の読み込みに失敗しました。" ); + } + + int scores = ( CDTXMania.Songs管理 == null ) ? 0 : CDTXMania.Songs管理.n検索されたスコア数; // 読み込み途中でアプリ終了した場合など、CDTXMania.Songs管理 がnullの場合があるので注意 + Trace.TraceInformation( "songlist.db の読み込みを完了しました。[{0}スコア]", scores ); + lock ( this.list進行文字列 ) + { + this.list進行文字列.Add( "Loading songlist.db ... OK" ); + } + } + else + { + Trace.TraceInformation( "初回の起動であるかまたはDTXManiaのバージョンが上がったため、songlist.db の読み込みをスキップします。" ); + lock ( this.list進行文字列 ) + { + this.list進行文字列.Add( "Loading songlist.db ... Skip" ); + } + } + } + finally + { + Trace.Unindent(); + } + + #endregion + + #region [ 1) songs.db の読み込み ] + //----------------------------- + base.eフェーズID = CStage.Eフェーズ.起動1_SongsDBからスコアキャッシュを構築; + + Trace.TraceInformation( "2) songs.db を読み込みます。" ); + Trace.Indent(); + + try + { + if ( !CDTXMania.ConfigIni.bConfigIniがないかDTXManiaのバージョンが異なる ) + { + try + { + CDTXMania.Songs管理.tSongsDBを読み込む( strPathSongsDB ); + } + catch + { + Trace.TraceError( "songs.db の読み込みに失敗しました。" ); + } + + int scores = ( CDTXMania.Songs管理 == null ) ? 0 : CDTXMania.Songs管理.nSongsDBから取得できたスコア数; // 読み込み途中でアプリ終了した場合など、CDTXMania.Songs管理 がnullの場合があるので注意 + Trace.TraceInformation( "songs.db の読み込みを完了しました。[{0}スコア]", scores ); + lock ( this.list進行文字列 ) + { + this.list進行文字列.Add( "Loading songs.db ... OK" ); + } + } + else + { + Trace.TraceInformation( "初回の起動であるかまたはDTXManiaのバージョンが上がったため、songs.db の読み込みをスキップします。" ); + lock ( this.list進行文字列 ) + { + this.list進行文字列.Add( "Loading songs.db ... Skip" ); + } + } + } + finally + { + Trace.Unindent(); + } + //----------------------------- + #endregion + + } + finally + { + base.eフェーズID = CStage.Eフェーズ.起動7_完了; + TimeSpan span = (TimeSpan) ( DateTime.Now - now ); + Trace.TraceInformation( "起動所要時間: {0}", new object[] { span.ToString() } ); + } + } +#endif + #endregion + } +} diff --git a/TJAPlayer3/Stages/01.StartUp/TextureLoader.cs b/TJAPlayer3/Stages/01.StartUp/TextureLoader.cs new file mode 100644 index 00000000..a43dad93 --- /dev/null +++ b/TJAPlayer3/Stages/01.StartUp/TextureLoader.cs @@ -0,0 +1,1114 @@ +using FDK; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace TJAPlayer3 +{ + class TextureLoader + { + const string BASE = @"Graphics\"; + + // Stage + const string TITLE = @"1_Title\"; + const string CONFIG = @"2_Config\"; + const string SONGSELECT = @"3_SongSelect\"; + const string DANISELECT = @"3_DaniSelect\"; + const string SONGLOADING = @"4_SongLoading\"; + const string GAME = @"5_Game\"; + const string RESULT = @"6_Result\"; + const string EXIT = @"7_Exit\"; + + // InGame + const string CHARA = @"1_Chara\"; + const string DANCER = @"2_Dancer\"; + const string MOB = @"3_Mob\"; + const string COURSESYMBOL = @"4_CourseSymbol\"; + const string BACKGROUND = @"5_Background\"; + const string TAIKO = @"6_Taiko\"; + const string GAUGE = @"7_Gauge\"; + const string FOOTER = @"8_Footer\"; + const string END = @"9_End\"; + const string EFFECTS = @"10_Effects\"; + const string BALLOON = @"11_Balloon\"; + const string LANE = @"12_Lane\"; + const string GENRE = @"13_Genre\"; + const string GAMEMODE = @"14_GameMode\"; + const string FAILED = @"15_Failed\"; + const string RUNNER = @"16_Runner\"; + const string PUCHICHARA = @"18_PuchiChara\"; + const string TRAINING = @"19_Training\"; + const string DANC = @"17_DanC\"; + + // InGame_Effects + const string FIRE = @"Fire\"; + const string HIT = @"Hit\"; + const string ROLL = @"Roll\"; + const string SPLASH = @"Splash\"; + + + public TextureLoader() + { + // コンストラクタ + } + + internal CTexture TxC(string FileName) + { + var tex = TJAPlayer3.tテクスチャの生成(CSkin.Path(BASE + FileName)); + listTexture.Add(tex); + return tex; + } + internal CTextureAf TxCAf(string FileName) + { + var tex = TJAPlayer3.tテクスチャの生成Af(CSkin.Path(BASE + FileName)); + listTexture.Add(tex); + return tex; + } + internal CTexture TxCGen(string FileName) + { + return TJAPlayer3.tテクスチャの生成(CSkin.Path(BASE + GAME + GENRE + FileName + ".png")); + } + + public void LoadTexture() + { + #region 共通 + Tile_Black = TxC(@"Tile_Black.png"); + Menu_Title = TxC(@"Menu_Title.png"); + Menu_Highlight = TxC(@"Menu_Highlight.png"); + Enum_Song = TxC(@"Enum_Song.png"); + Scanning_Loudness = TxC(@"Scanning_Loudness.png"); + Overlay = TxC(@"Overlay.png"); + Network_Connection = TxC(@"Network_Connection.png"); + Readme = TxC(@"Readme.png"); + NamePlate = new CTexture[2]; + NamePlateBase = TxC(@"NamePlate.png"); + NamePlate[0] = TxC(@"1P_NamePlate.png"); + NamePlate[1] = TxC(@"2P_NamePlate.png"); + NamePlate_Effect[0] = TxC(@"9_NamePlateEffect\GoldMStar.png"); + NamePlate_Effect[1] = TxC(@"9_NamePlateEffect\PurpleMStar.png"); + NamePlate_Effect[2] = TxC(@"9_NamePlateEffect\GoldBStar.png"); + NamePlate_Effect[3] = TxC(@"9_NamePlateEffect\PurpleBStar.png"); + NamePlate_Effect[4] = TxC(@"9_NamePlateEffect\Slash.png"); + #endregion + #region 1_タイトル画面 + Title_Background = TxC(TITLE + @"Background.png"); + Entry_Bar = TxC(TITLE + @"Entry_Bar.png"); + Entry_Bar_Text = TxC(TITLE + @"Entry_Bar_Text.png"); + + Banapas_Load[0] = TxC(TITLE + @"Banapas_Load.png"); + Banapas_Load[1] = TxC(TITLE + @"Banapas_Load_Text.png"); + Banapas_Load[2] = TxC(TITLE + @"Banapas_Load_Anime.png"); + + Banapas_Load_Clear[0] = TxC(TITLE + @"Banapas_Load_Clear.png"); + Banapas_Load_Clear[1] = TxC(TITLE + @"Banapas_Load_Clear_Anime.png"); + + Banapas_Load_Failure[0] = TxC(TITLE + @"Banapas_Load_Failure.png"); + Banapas_Load_Failure[1] = TxC(TITLE + @"Banapas_Load_Clear_Anime.png"); + + Entry_Player[0] = TxC(TITLE + @"Entry_Player.png"); + Entry_Player[1] = TxC(TITLE + @"Entry_Player_Select_Bar.png"); + Entry_Player[2] = TxC(TITLE + @"Entry_Player_Select.png"); + + for(int i = 0; i < Donchan_Entry.Length; i++) + { + Donchan_Entry[i] = TxC(TITLE + @"Donchan_Entry\" + i.ToString() + ".png"); + } + + for(int i = 0; i < Entry_Donchan_Normal.Length; i++) + { + Entry_Donchan_Normal[i] = TxC(TITLE + @"Donchan_Normal\" + i.ToString() + ".png"); + } + + for(int i = 0; i < 6; i++) + { + ModeSelect_Bar[i] = TxC(TITLE + @"ModeSelect_Bar_" + i.ToString() + ".png"); + } + + for(int i = 0; i < 6; i++) + { + ModeSelect_Bar_Chara[i] = TxC(TITLE + @"ModeSelect_Bar_Chara_" + i.ToString() + ".png"); + } + + for(int i = 0; i < 6; i++) + { + ModeSelect_Bar_Text[i] = TxC(TITLE + @"ModeSelect_Bar_Text_" + i.ToString() + ".png"); + } + + ModeSelect_Bar[6] = TxC(TITLE + @"ModeSelect_Bar_Overlay.png"); + + #endregion + + #region 2_コンフィグ画面 + Config_Background = TxC(CONFIG + @"Background.png"); + Config_Header = TxC(CONFIG + @"Header.png"); + Config_Cursor = TxC(CONFIG + @"Cursor.png"); + Config_ItemBox = TxC(CONFIG + @"ItemBox.png"); + Config_Arrow = TxC(CONFIG + @"Arrow.png"); + Config_KeyAssign = TxC(CONFIG + @"KeyAssign.png"); + Config_Font = TxC(CONFIG + @"Font.png"); + Config_Font_Bold = TxC(CONFIG + @"Font_Bold.png"); + Config_Enum_Song = TxC(CONFIG + @"Enum_Song.png"); + #endregion + + #region 3_選曲画面 + SongSelect_Background = TxC(SONGSELECT + @"Background.png"); + SongSelect_Header = TxC(SONGSELECT + @"Header.png"); + SongSelect_Auto = TxC(SONGSELECT + @"Auto.png"); + SongSelect_Level = TxC(SONGSELECT + @"Level.png"); + SongSelect_Branch = TxC(SONGSELECT + @"Branch.png"); + SongSelect_Branch_Text = TxC(SONGSELECT + @"Branch_Text.png"); + SongSelect_Bar_Center = TxC(SONGSELECT + @"Bar_Center.png"); + SongSelect_Frame_Score = TxC(SONGSELECT + @"Frame_Score.png"); + SongSelect_Frame_Box = TxC(SONGSELECT + @"Frame_Box.png"); + SongSelect_Frame_BackBox = TxC(SONGSELECT + @"Frame_BackBox.png"); + SongSelect_Frame_Random = TxC(SONGSELECT + @"Frame_Random.png"); + SongSelect_Bar_Genre_Back = TxC(SONGSELECT + @"Bar_Genre_Back.png"); + SongSelect_Bar_Genre_RecentryPlaySong = TxC(SONGSELECT + @"Bar_Genre_RecentryPlaySong.png"); + SongSelect_Bar_Select = TxC(SONGSELECT + @"Bar_Select.png"); + SongSelect_Level_Number = TxC(SONGSELECT + @"Level_Number.png"); + SongSelect_Credit = TxC(SONGSELECT + @"Credit.png"); + SongSelect_Timer = TxC(SONGSELECT + @"Timer.png"); + SongSelect_Song_Number = TxC(SONGSELECT + @"Song_Number.png"); + SongSelect_Bar_Genre_Overlay = TxC(SONGSELECT + @"Bar_Genre_Overlay.png"); + SongSelect_Crown = TxC(SONGSELECT + @"SongSelect_Crown.png"); + SongSelect_ScoreRank = TxC(SONGSELECT + @"ScoreRank.png"); + SongSelect_BoardNumber = TxC(SONGSELECT + @"BoardNumber.png"); + + for (int i = 0; i < (int)Difficulty.Total; i++) + { + SongSelect_ScoreWindow[i] = TxC(SONGSELECT + @"ScoreWindow_" + i.ToString() + ".png"); + } + for (int i = 0; i < SongSelect_Donchan_Select.Length; i++) + { + SongSelect_Donchan_Select[i] = TxC(SONGSELECT + @"Donchan\Select\" + i.ToString() + ".png"); + } + for (int i = 0; i < SongSelect_Donchan_Normal.Length; i++) + { + SongSelect_Donchan_Normal[i] = TxC(SONGSELECT + @"Donchan\Loop\" + i.ToString() + ".png"); + } + for (int i = 0; i < SongSelect_Donchan_Jump.Length; i++) + { + SongSelect_Donchan_Jump[i] = TxC(SONGSELECT + @"Donchan\Start\" + i.ToString() + ".png"); + } + + SongSelect_ScoreWindow_Text = TxC(SONGSELECT + @"ScoreWindow_Text.png"); + + TJAPlayer3.Skin.SongSelect_Bar_Genre_Count = TJAPlayer3.t連番画像の枚数を数える(CSkin.Path(BASE + SONGSELECT + @"Bar_Genre\"), "Bar_Genre_"); + + if (TJAPlayer3.Skin.SongSelect_Bar_Genre_Count != 0) + { + SongSelect_Bar_Genre = new CTexture[TJAPlayer3.Skin.SongSelect_Bar_Genre_Count]; + for (int i = 0; i < SongSelect_Bar_Genre.Length; i++) + { + SongSelect_Bar_Genre[i] = TxC(SONGSELECT + @"Bar_Genre\Bar_Genre_" + i.ToString() + ".png"); + } + } + + TJAPlayer3.Skin.SongSelect_Genre_Background_Count = TJAPlayer3.t連番画像の枚数を数える(CSkin.Path(BASE + SONGSELECT + @"Genre_Background\"), "GenreBackground_"); + + if (TJAPlayer3.Skin.SongSelect_Genre_Background_Count != 0) + { + SongSelect_GenreBack = new CTexture[TJAPlayer3.Skin.SongSelect_Genre_Background_Count]; + for (int i = 0; i < SongSelect_GenreBack.Length; i++) + { + SongSelect_GenreBack[i] = TxC(SONGSELECT + @"Genre_Background\GenreBackground_" + i.ToString() + ".png"); + } + } + + TJAPlayer3.Skin.SongSelect_Box_Chara_Count = TJAPlayer3.t連番画像の枚数を数える(CSkin.Path(BASE + SONGSELECT + @"Box_Chara\"), "Box_Chara_"); + + if (TJAPlayer3.Skin.SongSelect_Box_Chara_Count != 0) + { + SongSelect_Box_Chara = new CTexture[TJAPlayer3.Skin.SongSelect_Box_Chara_Count]; + for (int i = 0; i < SongSelect_Box_Chara.Length; i++) + { + SongSelect_Box_Chara[i] = TxC(SONGSELECT + @"Box_Chara\Box_Chara_" + i.ToString() + ".png"); + } + } + + #region [ 難易度選択画面 ] + Difficulty_Bar = TxC(SONGSELECT + @"Difficulty_Select\Difficulty_Bar.png"); + Difficulty_Number = TxC(SONGSELECT + @"Difficulty_Select\Difficulty_Number.png"); + Difficulty_Star = TxC(SONGSELECT + @"Difficulty_Select\Difficulty_Star.png"); + Difficulty_Star_Red = TxC(SONGSELECT + @"Difficulty_Select\Difficulty_Star_Red.png"); + Difficulty_Crown = TxC(SONGSELECT + @"Difficulty_Select\Difficulty_Crown.png"); + Difficulty_Option = TxC($"{SONGSELECT}Difficulty_Select/Difficulty_Option.png"); + Difficulty_Option_Select = TxC($"{SONGSELECT}Difficulty_Select/Difficulty_Option_Select.png"); + + Difficulty_Select_Bar[0] = TxC(SONGSELECT + @"Difficulty_Select\Difficulty_Select_Bar.png"); + Difficulty_Select_Bar[1] = TxC(SONGSELECT + @"Difficulty_Select\Difficulty_Select_Bar2.png"); + + TJAPlayer3.Skin.SongSelect_Difficulty_Background_Count = TJAPlayer3.t連番画像の枚数を数える(CSkin.Path(BASE + SONGSELECT + @"Difficulty_Select\Difficulty_Back\"), "Difficulty_Back_"); + + if (TJAPlayer3.Skin.SongSelect_Difficulty_Background_Count != 0) + { + Difficulty_Back = new CTexture[TJAPlayer3.Skin.SongSelect_Difficulty_Background_Count]; + for (int i = 0; i < Difficulty_Back.Length; i++) + { + Difficulty_Back[i] = TxC(SONGSELECT + @"Difficulty_Select\Difficulty_Back\Difficulty_Back_" + i.ToString() + ".png"); + } + } + #endregion + + #endregion + + #region 3_段位選択画面 + + Dani_Background = TxC(DANISELECT + "Background.png"); + Dani_Difficulty_Cymbol = TxC(DANISELECT + "Difficulty_Cymbol.png"); + Dani_Level_Number = TxC(DANISELECT + "Level_Number.png"); + Dani_Soul_Number = TxC(DANISELECT + "SoulNumber.png"); + Dani_Exam_Number = TxC(DANISELECT + "ExamNumber.png"); + Dani_Bar_Center = TxC(DANISELECT + "Bar_Center.png"); + + for (int i = 0; i < 2; i++) + Challenge_Select[i] = TxC(DANISELECT + "Challenge_Select_" + i.ToString() + ".png"); + + #endregion + + #region 4_読み込み画面 + SongLoading_Plate = TxC(SONGLOADING + @"Plate.png"); + SongLoading_Bg = TxC(SONGLOADING + @"Bg.png"); + SongLoading_BgWait = TxC(SONGLOADING + @"Bg_Wait.png"); + SongLoading_Chara = TxC(SONGLOADING + @"Chara.png"); + SongLoading_Fade = TxC(SONGLOADING + @"Fade.png"); + SongLoading_Bg_Dan = TxC(SONGLOADING + @"Bg_Dan.png"); + #endregion + + #region 5_演奏画面 + #region 共通 + Notes = TxC(GAME + @"Notes.png"); + Judge_Frame = TxC(GAME + @"Notes.png"); + SENotes = TxC(GAME + @"SENotes.png"); + Notes_Arm = TxC(GAME + @"Notes_Arm.png"); + Judge = TxC(GAME + @"Judge.png"); + ChipEffect = TxC(GAME + @"ChipEffect.png"); + ScoreRank = TxC(GAME + @"ScoreRank.png"); + + Judge_Meter = TxC(GAME + @"Judge_Meter.png"); + Bar = TxC(GAME + @"Bar.png"); + Bar_Branch = TxC(GAME + @"Bar_Branch.png"); + + #endregion + #region キャラクター + TJAPlayer3.Skin.Game_Chara_Ptn_Normal = TJAPlayer3.t連番画像の枚数を数える(CSkin.Path(BASE + GAME + CHARA + @"Normal\")); + if (TJAPlayer3.Skin.Game_Chara_Ptn_Normal != 0) + { + Chara_Normal = new CTexture[TJAPlayer3.Skin.Game_Chara_Ptn_Normal]; + for (int i = 0; i < TJAPlayer3.Skin.Game_Chara_Ptn_Normal; i++) + { + Chara_Normal[i] = TxC(GAME + CHARA + @"Normal\" + i.ToString() + ".png"); + } + } + TJAPlayer3.Skin.Game_Chara_Ptn_Clear = TJAPlayer3.t連番画像の枚数を数える(CSkin.Path(BASE + GAME + CHARA + @"Clear\")); + if (TJAPlayer3.Skin.Game_Chara_Ptn_Clear != 0) + { + Chara_Normal_Cleared = new CTexture[TJAPlayer3.Skin.Game_Chara_Ptn_Clear]; + for (int i = 0; i < TJAPlayer3.Skin.Game_Chara_Ptn_Clear; i++) + { + Chara_Normal_Cleared[i] = TxC(GAME + CHARA + @"Clear\" + i.ToString() + ".png"); + } + } + if (TJAPlayer3.Skin.Game_Chara_Ptn_Clear != 0) + { + Chara_Normal_Maxed = new CTexture[TJAPlayer3.Skin.Game_Chara_Ptn_Clear]; + for (int i = 0; i < TJAPlayer3.Skin.Game_Chara_Ptn_Clear; i++) + { + Chara_Normal_Maxed[i] = TxC(GAME + CHARA + @"Clear_Max\" + i.ToString() + ".png"); + } + } + TJAPlayer3.Skin.Game_Chara_Ptn_GoGo = TJAPlayer3.t連番画像の枚数を数える(CSkin.Path(BASE + GAME + CHARA + @"GoGo\")); + if (TJAPlayer3.Skin.Game_Chara_Ptn_GoGo != 0) + { + Chara_GoGoTime = new CTexture[TJAPlayer3.Skin.Game_Chara_Ptn_GoGo]; + for (int i = 0; i < TJAPlayer3.Skin.Game_Chara_Ptn_GoGo; i++) + { + Chara_GoGoTime[i] = TxC(GAME + CHARA + @"GoGo\" + i.ToString() + ".png"); + } + } + if (TJAPlayer3.Skin.Game_Chara_Ptn_GoGo != 0) + { + Chara_GoGoTime_Maxed = new CTexture[TJAPlayer3.Skin.Game_Chara_Ptn_GoGo]; + for (int i = 0; i < TJAPlayer3.Skin.Game_Chara_Ptn_GoGo; i++) + { + Chara_GoGoTime_Maxed[i] = TxC(GAME + CHARA + @"GoGo_Max\" + i.ToString() + ".png"); + } + } + + TJAPlayer3.Skin.Game_Chara_Ptn_10combo = TJAPlayer3.t連番画像の枚数を数える(CSkin.Path(BASE + GAME + CHARA + @"10combo\")); + if (TJAPlayer3.Skin.Game_Chara_Ptn_10combo != 0) + { + Chara_10Combo = new CTexture[TJAPlayer3.Skin.Game_Chara_Ptn_10combo]; + for (int i = 0; i < TJAPlayer3.Skin.Game_Chara_Ptn_10combo; i++) + { + Chara_10Combo[i] = TxC(GAME + CHARA + @"10combo\" + i.ToString() + ".png"); + } + } + TJAPlayer3.Skin.Game_Chara_Ptn_10combo_Max = TJAPlayer3.t連番画像の枚数を数える(CSkin.Path(BASE + GAME + CHARA + @"10combo_Max\")); + if (TJAPlayer3.Skin.Game_Chara_Ptn_10combo_Max != 0) + { + Chara_10Combo_Maxed = new CTexture[TJAPlayer3.Skin.Game_Chara_Ptn_10combo_Max]; + for (int i = 0; i < TJAPlayer3.Skin.Game_Chara_Ptn_10combo_Max; i++) + { + Chara_10Combo_Maxed[i] = TxC(GAME + CHARA + @"10combo_Max\" + i.ToString() + ".png"); + } + } + + TJAPlayer3.Skin.Game_Chara_Ptn_GoGoStart = TJAPlayer3.t連番画像の枚数を数える(CSkin.Path(BASE + GAME + CHARA + @"GoGoStart\")); + if (TJAPlayer3.Skin.Game_Chara_Ptn_GoGoStart != 0) + { + Chara_GoGoStart = new CTexture[TJAPlayer3.Skin.Game_Chara_Ptn_GoGoStart]; + for (int i = 0; i < TJAPlayer3.Skin.Game_Chara_Ptn_GoGoStart; i++) + { + Chara_GoGoStart[i] = TxC(GAME + CHARA + @"GoGoStart\" + i.ToString() + ".png"); + } + } + TJAPlayer3.Skin.Game_Chara_Ptn_GoGoStart_Max = TJAPlayer3.t連番画像の枚数を数える(CSkin.Path(BASE + GAME + CHARA + @"GoGoStart_Max\")); + if (TJAPlayer3.Skin.Game_Chara_Ptn_GoGoStart_Max != 0) + { + Chara_GoGoStart_Maxed = new CTexture[TJAPlayer3.Skin.Game_Chara_Ptn_GoGoStart_Max]; + for (int i = 0; i < TJAPlayer3.Skin.Game_Chara_Ptn_GoGoStart_Max; i++) + { + Chara_GoGoStart_Maxed[i] = TxC(GAME + CHARA + @"GoGoStart_Max\" + i.ToString() + ".png"); + } + } + TJAPlayer3.Skin.Game_Chara_Ptn_ClearIn = TJAPlayer3.t連番画像の枚数を数える(CSkin.Path(BASE + GAME + CHARA + @"ClearIn\")); + if (TJAPlayer3.Skin.Game_Chara_Ptn_ClearIn != 0) + { + Chara_Become_Cleared = new CTexture[TJAPlayer3.Skin.Game_Chara_Ptn_ClearIn]; + for (int i = 0; i < TJAPlayer3.Skin.Game_Chara_Ptn_ClearIn; i++) + { + Chara_Become_Cleared[i] = TxC(GAME + CHARA + @"ClearIn\" + i.ToString() + ".png"); + } + } + TJAPlayer3.Skin.Game_Chara_Ptn_SoulIn = TJAPlayer3.t連番画像の枚数を数える(CSkin.Path(BASE + GAME + CHARA + @"SoulIn\")); + if (TJAPlayer3.Skin.Game_Chara_Ptn_SoulIn != 0) + { + Chara_Become_Maxed = new CTexture[TJAPlayer3.Skin.Game_Chara_Ptn_SoulIn]; + for (int i = 0; i < TJAPlayer3.Skin.Game_Chara_Ptn_SoulIn; i++) + { + Chara_Become_Maxed[i] = TxC(GAME + CHARA + @"SoulIn\" + i.ToString() + ".png"); + } + } + TJAPlayer3.Skin.Game_Chara_Ptn_Balloon_Breaking = TJAPlayer3.t連番画像の枚数を数える(CSkin.Path(BASE + GAME + CHARA + @"Balloon_Breaking\")); + if (TJAPlayer3.Skin.Game_Chara_Ptn_Balloon_Breaking != 0) + { + Chara_Balloon_Breaking = new CTexture[TJAPlayer3.Skin.Game_Chara_Ptn_Balloon_Breaking]; + for (int i = 0; i < TJAPlayer3.Skin.Game_Chara_Ptn_Balloon_Breaking; i++) + { + Chara_Balloon_Breaking[i] = TxC(GAME + CHARA + @"Balloon_Breaking\" + i.ToString() + ".png"); + } + } + TJAPlayer3.Skin.Game_Chara_Ptn_Balloon_Broke = TJAPlayer3.t連番画像の枚数を数える(CSkin.Path(BASE + GAME + CHARA + @"Balloon_Broke\")); + if (TJAPlayer3.Skin.Game_Chara_Ptn_Balloon_Broke != 0) + { + Chara_Balloon_Broke = new CTexture[TJAPlayer3.Skin.Game_Chara_Ptn_Balloon_Broke]; + for (int i = 0; i < TJAPlayer3.Skin.Game_Chara_Ptn_Balloon_Broke; i++) + { + Chara_Balloon_Broke[i] = TxC(GAME + CHARA + @"Balloon_Broke\" + i.ToString() + ".png"); + } + } + TJAPlayer3.Skin.Game_Chara_Ptn_Balloon_Miss = TJAPlayer3.t連番画像の枚数を数える(CSkin.Path(BASE + GAME + CHARA + @"Balloon_Miss\")); + if (TJAPlayer3.Skin.Game_Chara_Ptn_Balloon_Miss != 0) + { + Chara_Balloon_Miss = new CTexture[TJAPlayer3.Skin.Game_Chara_Ptn_Balloon_Miss]; + for (int i = 0; i < TJAPlayer3.Skin.Game_Chara_Ptn_Balloon_Miss; i++) + { + Chara_Balloon_Miss[i] = TxC(GAME + CHARA + @"Balloon_Miss\" + i.ToString() + ".png"); + } + } + #endregion + #region 踊り子 + TJAPlayer3.Skin.Game_Dancer_Ptn = TJAPlayer3.t連番画像の枚数を数える(CSkin.Path(BASE + GAME + DANCER + @"1\")); + if (TJAPlayer3.Skin.Game_Dancer_Ptn != 0) + { + Dancer = new CTexture[5][]; + for (int i = 0; i < 5; i++) + { + Dancer[i] = new CTexture[TJAPlayer3.Skin.Game_Dancer_Ptn]; + for (int p = 0; p < TJAPlayer3.Skin.Game_Dancer_Ptn; p++) + { + Dancer[i][p] = TxC(GAME + DANCER + (i + 1) + @"\" + p.ToString() + ".png"); + } + } + } + #endregion + #region モブ + TJAPlayer3.Skin.Game_Mob_Ptn = TJAPlayer3.t連番画像の枚数を数える(CSkin.Path(BASE + GAME + MOB)); + Mob = new CTexture[TJAPlayer3.Skin.Game_Mob_Ptn]; + for (int i = 0; i < TJAPlayer3.Skin.Game_Mob_Ptn; i++) + { + Mob[i] = TxC(GAME + MOB + i.ToString() + ".png"); + } + #endregion + #region フッター + Mob_Footer = TxC(GAME + FOOTER + @"0.png"); + #endregion + #region 背景 + + Background = TxC(GAME + Background + @"0\" + @"Background.png"); + + Background_Up_1st = new CTexture[3]; + Background_Up_1st[0] = TxC(GAME + BACKGROUND + @"0\" + @"1P_Up_1st.png"); + Background_Up_1st[1] = TxC(GAME + BACKGROUND + @"0\" + @"2P_Up_1st.png"); + Background_Up_1st[2] = TxC(GAME + BACKGROUND + @"0\" + @"Clear_Up_1st.png"); + + Background_Up_2nd = new CTexture[3]; + Background_Up_2nd[0] = TxC(GAME + BACKGROUND + @"0\" + @"1P_Up_2nd.png"); + Background_Up_2nd[1] = TxC(GAME + BACKGROUND + @"0\" + @"2P_Up_2nd.png"); + Background_Up_2nd[2] = TxC(GAME + BACKGROUND + @"0\" + @"Clear_Up_2nd.png"); + + Background_Up_3rd = new CTexture[3]; + Background_Up_3rd[0] = TxC(GAME + BACKGROUND + @"0\" + @"1P_Up_3rd.png"); + Background_Up_3rd[1] = TxC(GAME + BACKGROUND + @"0\" + @"2P_Up_3rd.png"); + Background_Up_3rd[2] = TxC(GAME + BACKGROUND + @"0\" + @"Clear_Up_3rd.png"); + + for(int i = 0; i < Background_Up_Dan.Length; i++) + Background_Up_Dan[i] = TxC(GAME + BACKGROUND + @"1\" + i.ToString() + @".png"); + + Background_Down = TxC(GAME + BACKGROUND + @"0\" + @"Down.png"); + Background_Down_Clear = TxC(GAME + BACKGROUND + @"0\" + @"Down_Clear.png"); + Background_Down_Scroll = TxC(GAME + BACKGROUND + @"0\" + @"Down_Scroll.png"); + + #endregion + #region 太鼓 + Taiko_Background = new CTexture[3]; + Taiko_Background[0] = TxC(GAME + TAIKO + @"1P_Background.png"); + Taiko_Background[1] = TxC(GAME + TAIKO + @"2P_Background.png"); + Taiko_Background[2] = TxC(GAME + TAIKO + @"Dan_Background.png"); + Taiko_Frame = new CTexture[2]; + Taiko_Frame[0] = TxC(GAME + TAIKO + @"1P_Frame.png"); + Taiko_Frame[1] = TxC(GAME + TAIKO + @"2P_Frame.png"); + Taiko_PlayerNumber = new CTexture[2]; + Taiko_PlayerNumber[0] = TxC(GAME + TAIKO + @"1P_PlayerNumber.png"); + Taiko_PlayerNumber[1] = TxC(GAME + TAIKO + @"2P_PlayerNumber.png"); + Taiko_NamePlate = new CTexture[2]; + Taiko_NamePlate[0] = TxC(GAME + TAIKO + @"1P_NamePlate.png"); + Taiko_NamePlate[1] = TxC(GAME + TAIKO + @"2P_NamePlate.png"); + Taiko_Base = TxC(GAME + TAIKO + @"Base.png"); + Taiko_Don_Left = TxC(GAME + TAIKO + @"Don.png"); + Taiko_Don_Right = TxC(GAME + TAIKO + @"Don.png"); + Taiko_Ka_Left = TxC(GAME + TAIKO + @"Ka.png"); + Taiko_Ka_Right = TxC(GAME + TAIKO + @"Ka.png"); + Taiko_LevelUp = TxC(GAME + TAIKO + @"LevelUp.png"); + Taiko_LevelDown = TxC(GAME + TAIKO + @"LevelDown.png"); + Couse_Symbol = new CTexture[(int)Difficulty.Total + 1]; // +1は真打ちモードの分 + string[] Couse_Symbols = new string[(int)Difficulty.Total + 1] { "Easy", "Normal", "Hard", "Oni", "Edit", "Tower", "Dan", "Shin" }; + for (int i = 0; i < (int)Difficulty.Total + 1; i++) + { + Couse_Symbol[i] = TxC(GAME + COURSESYMBOL + Couse_Symbols[i] + ".png"); + } + Taiko_Score = new CTexture[3]; + Taiko_Score[0] = TxC(GAME + TAIKO + @"Score.png"); + Taiko_Score[1] = TxC(GAME + TAIKO + @"Score_1P.png"); + Taiko_Score[2] = TxC(GAME + TAIKO + @"Score_2P.png"); + Taiko_Combo = new CTexture[3]; + Taiko_Combo[0] = TxC(GAME + TAIKO + @"Combo.png"); + Taiko_Combo[1] = TxC(GAME + TAIKO + @"Combo_Big.png"); + Taiko_Combo[2] = TxC(GAME + TAIKO + @"Combo_Midium.png"); + Taiko_Combo_Effect = TxC(GAME + TAIKO + @"Combo_Effect.png"); + Taiko_Combo_Text = TxC(GAME + TAIKO + @"Combo_Text.png"); + #endregion + #region ゲージ + Gauge = new CTexture[2]; + Gauge[0] = TxC(GAME + GAUGE + @"1P.png"); + Gauge[1] = TxC(GAME + GAUGE + @"2P.png"); + Gauge_Base = new CTexture[2]; + Gauge_Base[0] = TxC(GAME + GAUGE + @"1P_Base.png"); + Gauge_Base[1] = TxC(GAME + GAUGE + @"2P_Base.png"); + Gauge_Line = new CTexture[2]; + Gauge_Line[0] = TxC(GAME + GAUGE + @"1P_Line.png"); + Gauge_Line[1] = TxC(GAME + GAUGE + @"2P_Line.png"); + TJAPlayer3.Skin.Game_Gauge_Rainbow_Ptn = TJAPlayer3.t連番画像の枚数を数える(CSkin.Path(BASE + GAME + GAUGE + @"Rainbow\")); + if (TJAPlayer3.Skin.Game_Gauge_Rainbow_Ptn != 0) + { + Gauge_Rainbow = new CTexture[TJAPlayer3.Skin.Game_Gauge_Rainbow_Ptn]; + for (int i = 0; i < TJAPlayer3.Skin.Game_Gauge_Rainbow_Ptn; i++) + { + Gauge_Rainbow[i] = TxC(GAME + GAUGE + @"Rainbow\" + i.ToString() + ".png"); + } + } + + TJAPlayer3.Skin.Game_Gauge_Dan_Rainbow_Ptn = TJAPlayer3.t連番画像の枚数を数える(CSkin.Path(BASE + GAME + DANC + @"Rainbow\")); + if (TJAPlayer3.Skin.Game_Gauge_Dan_Rainbow_Ptn != 0) + { + Gauge_Dan_Rainbow = new CTexture[TJAPlayer3.Skin.Game_Gauge_Dan_Rainbow_Ptn]; + for (int i = 0; i < TJAPlayer3.Skin.Game_Gauge_Dan_Rainbow_Ptn; i++) + { + Gauge_Dan_Rainbow[i] = TxC(GAME + DANC + @"Rainbow\" + i.ToString() + ".png"); + } + } + Gauge_Dan = new CTexture[4]; + + Gauge_Dan[0] = TxC(GAME + GAUGE + @"1P_Dan_Base.png"); + Gauge_Dan[1] = TxC(GAME + GAUGE + @"1P_Dan.png"); + Gauge_Dan[2] = TxC(GAME + GAUGE + @"1P_Dan_Clear_Base.png"); + Gauge_Dan[3] = TxC(GAME + GAUGE + @"1P_Dan_Clear.png"); + + Gauge_Soul = TxC(GAME + GAUGE + @"Soul.png"); + Gauge_Flash = TxC(GAME + GAUGE + @"Flash.png"); + Gauge_Soul_Fire = TxC(GAME + GAUGE + @"Fire.png"); + Gauge_Soul_Explosion = new CTexture[2]; + Gauge_Soul_Explosion[0] = TxC(GAME + GAUGE + @"1P_Explosion.png"); + Gauge_Soul_Explosion[1] = TxC(GAME + GAUGE + @"2P_Explosion.png"); + #endregion + #region 吹き出し + Balloon_Combo = new CTexture[2]; + Balloon_Combo[0] = TxC(GAME + BALLOON + @"Combo_1P.png"); + Balloon_Combo[1] = TxC(GAME + BALLOON + @"Combo_2P.png"); + Balloon_Roll = TxC(GAME + BALLOON + @"Roll.png"); + Balloon_Balloon = TxC(GAME + BALLOON + @"Balloon.png"); + Balloon_Number_Roll = TxC(GAME + BALLOON + @"Number_Roll.png"); + Balloon_Number_Combo = TxC(GAME + BALLOON + @"Number_Combo.png"); + + Balloon_Breaking = new CTexture[6]; + for (int i = 0; i < 6; i++) + { + Balloon_Breaking[i] = TxC(GAME + BALLOON + @"Breaking_" + i.ToString() + ".png"); + } + #endregion + #region エフェクト + Effects_Hit_Explosion = TxCAf(GAME + EFFECTS + @"Hit\Explosion.png"); + if (Effects_Hit_Explosion != null) Effects_Hit_Explosion.b加算合成 = TJAPlayer3.Skin.Game_Effect_HitExplosion_AddBlend; + Effects_Hit_Explosion_Big = TxC(GAME + EFFECTS + @"Hit\Explosion_Big.png"); + if (Effects_Hit_Explosion_Big != null) Effects_Hit_Explosion_Big.b加算合成 = TJAPlayer3.Skin.Game_Effect_HitExplosionBig_AddBlend; + Effects_Hit_FireWorks = TxC(GAME + EFFECTS + @"Hit\FireWorks.png"); + if (Effects_Hit_FireWorks != null) Effects_Hit_FireWorks.b加算合成 = TJAPlayer3.Skin.Game_Effect_FireWorks_AddBlend; + + + Effects_Fire = TxC(GAME + EFFECTS + @"Fire.png"); + if (Effects_Fire != null) Effects_Fire.b加算合成 = TJAPlayer3.Skin.Game_Effect_Fire_AddBlend; + + Effects_Rainbow = TxC(GAME + EFFECTS + @"Rainbow.png"); + + Effects_GoGoSplash = TxC(GAME + EFFECTS + @"GoGoSplash.png"); + if (Effects_GoGoSplash != null) Effects_GoGoSplash.b加算合成 = TJAPlayer3.Skin.Game_Effect_GoGoSplash_AddBlend; + Effects_Hit_Great = new CTexture[15]; + Effects_Hit_Great_Big = new CTexture[15]; + Effects_Hit_Good = new CTexture[15]; + Effects_Hit_Good_Big = new CTexture[15]; + for (int i = 0; i < 15; i++) + { + Effects_Hit_Great[i] = TxC(GAME + EFFECTS + @"Hit\" + @"Great\" + i.ToString() + ".png"); + Effects_Hit_Great_Big[i] = TxC(GAME + EFFECTS + @"Hit\" + @"Great_Big\" + i.ToString() + ".png"); + Effects_Hit_Good[i] = TxC(GAME + EFFECTS + @"Hit\" + @"Good\" + i.ToString() + ".png"); + Effects_Hit_Good_Big[i] = TxC(GAME + EFFECTS + @"Hit\" + @"Good_Big\" + i.ToString() + ".png"); + } + TJAPlayer3.Skin.Game_Effect_Roll_Ptn = TJAPlayer3.t連番画像の枚数を数える(CSkin.Path(BASE + GAME + EFFECTS + @"Roll\")); + Effects_Roll = new CTexture[TJAPlayer3.Skin.Game_Effect_Roll_Ptn]; + for (int i = 0; i < TJAPlayer3.Skin.Game_Effect_Roll_Ptn; i++) + { + Effects_Roll[i] = TxC(GAME + EFFECTS + @"Roll\" + i.ToString() + ".png"); + } + #endregion + #region レーン + Lane_Base = new CTexture[3]; + Lane_Text = new CTexture[3]; + string[] Lanes = new string[3] { "Normal", "Expert", "Master" }; + for (int i = 0; i < 3; i++) + { + Lane_Base[i] = TxC(GAME + LANE + "Base_" + Lanes[i] + ".png"); + Lane_Text[i] = TxC(GAME + LANE + "Text_" + Lanes[i] + ".png"); + } + Lane_Red = TxC(GAME + LANE + @"Red.png"); + Lane_Blue = TxC(GAME + LANE + @"Blue.png"); + Lane_Yellow = TxC(GAME + LANE + @"Yellow.png"); + Lane_Background_Main = TxC(GAME + LANE + @"Background_Main.png"); + Lane_Background_Sub = TxC(GAME + LANE + @"Background_Sub.png"); + Lane_Background_GoGo = TxC(GAME + LANE + @"Background_GoGo.png"); + + #endregion + #region 終了演出 + End_Clear_Chara = TxC(GAME + END + @"Clear_Chara.png"); + End_Star = TxC(GAME + END + @"Star.png"); + + End_Clear_Text = new CTexture[2]; + End_Clear_Text[0] = TxC(GAME + END + @"Clear_Text.png"); + End_Clear_Text[1] = TxC(GAME + END + @"Clear_Text_End.png"); + + End_Clear_L = new CTexture[5]; + End_Clear_R = new CTexture[5]; + for (int i = 0; i < 5; i++) + { + End_Clear_L[i] = TxC(GAME + END + @"Clear\" + @"Clear_L_" + i.ToString() + ".png"); + End_Clear_R[i] = TxC(GAME + END + @"Clear\" + @"Clear_R_" + i.ToString() + ".png"); + } + End_Clear_Text_ = TxC(GAME + END + @"Clear\" + @"Clear_Text.png"); + End_Clear_Text_Effect = TxC(GAME + END + @"Clear\" + @"Clear_Text_Effect.png"); + if (End_Clear_Text_Effect != null) End_Clear_Text_Effect.b加算合成 = true; + + ClearFailed = TxC(GAME + END + @"ClearFailed\" + "Clear_Failed.png"); + ClearFailed1 = TxC(GAME + END + @"ClearFailed\" + "Clear_Failed1.png"); + ClearFailed2 = TxC(GAME + END + @"ClearFailed\" + "Clear_Failed2.png"); + End_ClearFailed = new CTexture[26]; + for (int i = 0; i < 26; i++) + End_ClearFailed[i] = TxC(GAME + END + @"ClearFailed\" + i.ToString() + ".png"); + + End_FullCombo = new CTexture[67]; + for (int i = 0; i < 67; i++) + End_FullCombo[i] = TxC(GAME + END + @"FullCombo\" + i.ToString() + ".png"); + End_FullComboLoop = new CTexture[3]; + for (int i = 0; i < 3; i++) + End_FullComboLoop[i] = TxC(GAME + END + @"FullCombo\" + "loop_" + i.ToString() + ".png"); + + End_DondaFullComboBg = TxC(GAME + END + @"DondaFullCombo\" + "bg.png"); + End_DondaFullCombo = new CTexture[62]; + for (int i = 0; i < 62; i++) + End_DondaFullCombo[i] = TxC(GAME + END + @"DondaFullCombo\" + i.ToString() + ".png"); + End_DondaFullComboLoop = new CTexture[3]; + for (int i = 0; i < 3; i++) + End_DondaFullComboLoop[i] = TxC(GAME + END + @"DondaFullCombo\" + "loop_" + i.ToString() + ".png"); + #endregion + #region ゲームモード + GameMode_Timer_Tick = TxC(GAME + GAMEMODE + @"Timer_Tick.png"); + GameMode_Timer_Frame = TxC(GAME + GAMEMODE + @"Timer_Frame.png"); + #endregion + #region ステージ失敗 + Failed_Game = TxC(GAME + FAILED + @"Game.png"); + Failed_Stage = TxC(GAME + FAILED + @"Stage.png"); + #endregion + #region ランナー + Runner = TxC(GAME + RUNNER + @"0.png"); + #endregion + #region DanC + DanC_Background = TxC(GAME + DANC + @"Background.png"); + DanC_Gauge = new CTexture[4]; + var type = new string[] { "Normal", "Reach", "Clear", "Flush" }; + for (int i = 0; i < 4; i++) + { + DanC_Gauge[i] = TxC(GAME + DANC + @"Gauge_" + type[i] + ".png"); + } + DanC_Base = TxC(GAME + DANC + @"Base.png"); + DanC_Gauge_Base = TxC(GAME + DANC + @"Gauge_Base.png"); + DanC_Failed = TxC(GAME + DANC + @"Failed.png"); + DanC_Number = TxC(GAME + DANC + @"Number.png"); + DanC_Small_Number = TxC(GAME + DANC + @"Small_Number.png"); + DanC_ExamType = TxC(GAME + DANC + @"ExamType.png"); + DanC_ExamRange = TxC(GAME + DANC + @"ExamRange.png"); + DanC_ExamUnit = TxC(GAME + DANC + @"ExamUnit.png"); + DanC_Screen = TxC(GAME + DANC + @"Screen.png"); + DanC_SmallBase = TxC(GAME + DANC + @"SmallBase.png"); + DanC_Small_ExamCymbol = TxC(GAME + DANC + @"Small_ExamCymbol.png"); + DanC_ExamCymbol = TxC(GAME + DANC + @"ExamCymbol.png"); + DanC_MiniNumber = TxC(GAME + DANC + @"MiniNumber.png"); + #endregion + #region PuichiChara + PuchiChara = TxC(GAME + PUCHICHARA + @"0.png"); + #endregion + #region Training + Tokkun_DownBG = TxC(GAME + TRAINING + @"Down.png"); + Tokkun_BigTaiko = TxC(GAME + TRAINING + @"BigTaiko.png"); + Tokkun_ProgressBar = TxC(GAME + TRAINING + @"ProgressBar_Red.png"); + Tokkun_ProgressBarWhite = TxC(GAME + TRAINING + @"ProgressBar_White.png"); + Tokkun_GoGoPoint = TxC(GAME + TRAINING + @"GoGoPoint.png"); + Tokkun_JumpPoint = TxC(GAME + TRAINING + @"JumpPoint.png"); + Tokkun_Background_Up = TxC(GAME + TRAINING + @"Background_Up.png"); + Tokkun_BigNumber = TxC(GAME + TRAINING + @"BigNumber.png"); + Tokkun_SmallNumber = TxC(GAME + TRAINING + @"SmallNumber.png"); + Tokkun_Speed_Measure = TxC(GAME + TRAINING + @"Speed_Measure.png"); + #endregion + #endregion + + #region 6_結果発表 + Result_FadeIn = TxC(RESULT + @"FadeIn.png"); + Result_Gauge = TxC(RESULT + @"Gauge.png"); + Result_Gauge_Base = TxC(RESULT + @"Gauge_Base.png"); + Result_Header = TxC(RESULT + @"Header.png"); + Result_Number = TxC(RESULT + @"Number.png"); + Result_Panel = TxC(RESULT + @"Panel.png"); + Result_Soul_Text = TxC(RESULT + @"Soul_Text.png"); + Result_Soul_Fire = TxC(RESULT + @"Result_Soul_Fire.png"); + Result_Diff_Bar = TxC(RESULT + @"DifficultyBar.png"); + Result_Score_Number = TxC(RESULT + @"Score_Number.png"); + Result_Dan = TxC(RESULT + @"Dan.png"); + + Result_CrownEffect = TxC(RESULT + @"CrownEffect.png"); + Result_ScoreRankEffect = TxC(RESULT + @"ScoreRankEffect.png"); + Result_Cloud = TxC(RESULT + @"Cloud.png"); + Result_Shine = TxC(RESULT + @"Shine.png"); + Result_Speech_Bubble = TxC(RESULT + @"Speech_Bubble.png"); + Result_Flower = TxC(RESULT + @"Flower\Flower.png"); + + for (int i = 1; i <= 5; i++) + Result_Flower_Rotate[i - 1] = TxC(RESULT + @"Flower\Rotate_" + i.ToString() + ".png"); + + for (int i = 0; i < 3; i++) + Result_Work[i] = TxC(RESULT + @"Work\" + i.ToString() + ".png"); + + + for (int i = 0; i < 41; i++) + Result_Rainbow[i] = TxC(RESULT + @"Rainbow\" + i.ToString() + ".png"); + + for (int i = 0; i < 2; i++) + Result_Background[i] = TxC(RESULT + @"Background_" + i.ToString() + ".png"); + + for (int i = 0; i < 2; i++) + Result_Mountain[i] = TxC(RESULT + @"Background_Mountain_" + i.ToString() + ".png"); + + for (int i = 0; i < 3; i++) + Result_Crown[i] = TxC(RESULT + @"Crown\Crown_" + i.ToString() + ".png"); + + for (int i = 0; i < Result_Donchan_Normal.Length; i++) + Result_Donchan_Normal[i] = TxC(RESULT + @"Result_Donchan_Normal\" + i.ToString() + ".png"); + + for (int i = 0; i < Result_Donchan_Clear.Length; i++) + Result_Donchan_Clear[i] = TxC(RESULT + @"Result_Donchan_Clear\" + i.ToString() + ".png"); + + for (int i = 0; i < Result_Donchan_Failed.Length; i++) + Result_Donchan_Failed[i] = TxC(RESULT + @"Result_Donchan_Failed\" + i.ToString() + ".png"); + + for (int i = 0; i < Result_Donchan_Failed_In.Length; i++) + Result_Donchan_Failed_In[i] = TxC(RESULT + @"Result_Donchan_Failed_In\" + i.ToString() + ".png"); + + #endregion + + #region 7_終了画面 + Exit_Background = TxC(EXIT + @"Background.png"); + #endregion + + } + + public void DisposeTexture() + { + foreach (var tex in listTexture) + { + var texture = tex; + TJAPlayer3.tテクスチャの解放(ref texture); + texture?.Dispose(); + texture = null; + } + listTexture.Clear(); + } + + #region 共通 + public CTexture Tile_Black, + Menu_Title, + Menu_Highlight, + Enum_Song, + Scanning_Loudness, + NamePlateBase, + Overlay, + Readme, + Network_Connection; + public CTexture[] NamePlate; + + public CTexture[] NamePlate_Effect = new CTexture[5]; + #endregion + #region 1_タイトル画面 + public CTexture Title_Background, + Entry_Bar, + Entry_Bar_Text; + + public CTexture[] Banapas_Load = new CTexture[3]; + public CTexture[] Banapas_Load_Clear = new CTexture[2]; + public CTexture[] Banapas_Load_Failure = new CTexture[2]; + public CTexture[] Entry_Player = new CTexture[3]; + public CTexture[] Donchan_Entry = new CTexture[44]; + public CTexture[] Entry_Donchan_Normal = new CTexture[13]; + public CTexture[] ModeSelect_Bar = new CTexture[7]; + public CTexture[] ModeSelect_Bar_Chara = new CTexture[6]; + public CTexture[] ModeSelect_Bar_Text = new CTexture[6]; + #endregion + + #region 2_コンフィグ画面 + public CTexture Config_Background, + Config_Header, + Config_Cursor, + Config_ItemBox, + Config_Arrow, + Config_KeyAssign, + Config_Font, + Config_Font_Bold, + Config_Enum_Song; + #endregion + + #region 3_選曲画面 + + public CTexture SongSelect_Background, + SongSelect_Header, + SongSelect_Auto, + SongSelect_Level, + SongSelect_Branch, + SongSelect_Branch_Text, + SongSelect_Frame_Score, + SongSelect_Frame_Box, + SongSelect_Frame_BackBox, + SongSelect_Frame_Random, + SongSelect_Bar_Center, + SongSelect_Bar_Genre_Back, + SongSelect_Bar_Genre_RecentryPlaySong, + SongSelect_Level_Number, + SongSelect_Bar_Select, + SongSelect_Bar_Genre_Overlay, + SongSelect_Credit, + SongSelect_Timer, + SongSelect_Crown, + SongSelect_ScoreRank, + SongSelect_Song_Number, + SongSelect_BoardNumber, + SongSelect_ScoreWindow_Text; + public CTexture[] SongSelect_GenreBack, + SongSelect_Bar_Genre, + SongSelect_Box_Chara, + SongSelect_ScoreWindow = new CTexture[(int)Difficulty.Total], + SongSelect_Donchan_Select = new CTexture[47], + SongSelect_Donchan_Normal = new CTexture[49], + SongSelect_Donchan_Jump = new CTexture[18], + SongSelect_NamePlate = new CTexture[1]; + + #region [ 難易度選択画面 ] + public CTexture Difficulty_Bar; + public CTexture Difficulty_Number; + public CTexture Difficulty_Star; + public CTexture Difficulty_Star_Red; + public CTexture Difficulty_Crown; + public CTexture Difficulty_Option; + public CTexture Difficulty_Option_Select; + + public CTexture[] Difficulty_Select_Bar = new CTexture[2]; + public CTexture[] Difficulty_Back; + #endregion + + #endregion + + #region 3_段位選択画面 + + public CTexture Dani_Background; + public CTexture Dani_Difficulty_Cymbol; + public CTexture Dani_Level_Number; + public CTexture Dani_Soul_Number; + public CTexture Dani_Exam_Number; + public CTexture Dani_Bar_Center; + + public CTexture[] Challenge_Select = new CTexture[2]; + + #endregion + + #region 4_読み込み画面 + public CTexture SongLoading_Plate, + SongLoading_Bg, + SongLoading_BgWait, + SongLoading_Chara, + SongLoading_Bg_Dan, + SongLoading_Fade; + #endregion + + #region 5_演奏画面 + #region 共通 + public CTexture Notes, + Judge_Frame, + SENotes, + Notes_Arm, + ChipEffect, + ScoreRank, + Judge; + public CTexture Judge_Meter, + Bar, + Bar_Branch; + #endregion + #region キャラクター + public CTexture[] Chara_Normal, + Chara_Normal_Cleared, + Chara_Normal_Maxed, + Chara_GoGoTime, + Chara_GoGoTime_Maxed, + Chara_10Combo, + Chara_10Combo_Maxed, + Chara_GoGoStart, + Chara_GoGoStart_Maxed, + Chara_Become_Cleared, + Chara_Become_Maxed, + Chara_Balloon_Breaking, + Chara_Balloon_Broke, + Chara_Balloon_Miss; + #endregion + #region 踊り子 + public CTexture[][] Dancer; + #endregion + #region モブ + public CTexture[] Mob; + public CTexture Mob_Footer; + #endregion + #region 背景 + public CTexture Background, + Background_Down, + Background_Down_Clear, + Background_Down_Scroll; + public CTexture[] Background_Up_1st, + Background_Up_2nd, + Background_Up_3rd, + Background_Up_Dan = new CTexture[6]; + #endregion + #region 太鼓 + public CTexture[] Taiko_Frame, // MTaiko下敷き + Taiko_Background; + public CTexture Taiko_Base, + Taiko_Don_Left, + Taiko_Don_Right, + Taiko_Ka_Left, + Taiko_Ka_Right, + Taiko_LevelUp, + Taiko_LevelDown, + Taiko_Combo_Effect, + Taiko_Combo_Text; + public CTexture[] Couse_Symbol, // コースシンボル + Taiko_PlayerNumber, + Taiko_NamePlate; // ネームプレート + public CTexture[] Taiko_Score, + Taiko_Combo; + #endregion + #region ゲージ + public CTexture[] Gauge, + Gauge_Base, + Gauge_Line, + Gauge_Rainbow, + Gauge_Soul_Explosion; + public CTexture Gauge_Soul, + Gauge_Flash, + Gauge_Soul_Fire; + public CTexture[] Gauge_Dan; + public CTexture[] Gauge_Dan_Rainbow; + #endregion + #region 吹き出し + public CTexture[] Balloon_Combo; + public CTexture Balloon_Roll, + Balloon_Balloon, + Balloon_Number_Roll, + Balloon_Number_Combo/*,*/ + /*Balloon_Broken*/; + public CTexture[] Balloon_Breaking; + #endregion + #region エフェクト + public CTexture Effects_Hit_Explosion, + Effects_Hit_Explosion_Big, + Effects_Fire, + Effects_Rainbow, + Effects_GoGoSplash, + Effects_Hit_FireWorks; + public CTexture[] Effects_Hit_Great, + Effects_Hit_Good, + Effects_Hit_Great_Big, + Effects_Hit_Good_Big; + public CTexture[] Effects_Roll; + #endregion + #region レーン + public CTexture[] Lane_Base, + Lane_Text; + public CTexture Lane_Red, + Lane_Blue, + Lane_Yellow; + public CTexture Lane_Background_Main, + Lane_Background_Sub, + Lane_Background_GoGo; + #endregion + #region 終了演出 + public CTexture End_Clear_Chara; + public CTexture[] End_Clear_Text; + public CTexture End_Star; + + public CTexture[] End_Clear_L, + End_Clear_R, + End_ClearFailed, + End_FullCombo, + End_FullComboLoop, + End_DondaFullCombo, + End_DondaFullComboLoop; + public CTexture End_Clear_Text_, + End_Clear_Text_Effect, + ClearFailed, + ClearFailed1, + ClearFailed2, + End_DondaFullComboBg; + #endregion + #region ゲームモード + public CTexture GameMode_Timer_Frame, + GameMode_Timer_Tick; + #endregion + #region ステージ失敗 + public CTexture Failed_Game, + Failed_Stage; + #endregion + #region ランナー + public CTexture Runner; + #endregion + #region DanC + public CTexture DanC_Background; + public CTexture[] DanC_Gauge; + public CTexture DanC_Base; + public CTexture DanC_Gauge_Base; + public CTexture DanC_Failed; + public CTexture DanC_Number, + DanC_Small_Number, + DanC_SmallBase, + DanC_ExamType, + DanC_ExamRange, + DanC_Small_ExamCymbol, + DanC_ExamCymbol, + DanC_MiniNumber, + DanC_ExamUnit; + public CTexture DanC_Screen; + #endregion + #region PuchiChara + public CTexture PuchiChara; + #endregion + #region Training + public CTexture Tokkun_DownBG, + Tokkun_BigTaiko, + Tokkun_ProgressBar, + Tokkun_ProgressBarWhite, + Tokkun_GoGoPoint, + Tokkun_JumpPoint, + Tokkun_Background_Up, + Tokkun_BigNumber, + Tokkun_SmallNumber, + Tokkun_Speed_Measure; + #endregion + #endregion + + #region 6_結果発表 + public CTexture Result_FadeIn, + Result_Gauge, + Result_Gauge_Base, + Result_Header, + Result_Number, + Result_Panel, + Result_Soul_Text, + Result_Soul_Fire, + Result_Diff_Bar, + Result_Score_Number, + + Result_CrownEffect, + Result_ScoreRankEffect, + Result_Speech_Bubble, + Result_Cloud, + Result_Flower, + Result_Shine, + + Result_Dan; + + public CTexture[] + Result_Rainbow = new CTexture[41], + Result_Background = new CTexture[2], + Result_Crown = new CTexture[3], + Result_Donchan_Normal = new CTexture[28], + Result_Donchan_Clear = new CTexture[38], + Result_Donchan_Failed = new CTexture[29], + Result_Donchan_Failed_In = new CTexture[15], + + Result_Flower_Rotate = new CTexture[5], + Result_Work = new CTexture[3], + + Result_Mountain = new CTexture[2]; + #endregion + + #region 7_終了画面 + public CTexture Exit_Background/* , */ + /*Exit_Text */; + #endregion + + #region [ 解放用 ] + public List listTexture = new List(); + #endregion + } +} diff --git a/TJAPlayer3/Stages/02.Title/CActEnumSongs.cs b/TJAPlayer3/Stages/02.Title/CActEnumSongs.cs new file mode 100644 index 00000000..332a82c1 --- /dev/null +++ b/TJAPlayer3/Stages/02.Title/CActEnumSongs.cs @@ -0,0 +1,168 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Diagnostics; +using System.Runtime.InteropServices; +using System.IO; +using System.Drawing; +using System.Threading; +using System.Globalization; +using System.Runtime.Serialization.Formatters.Binary; +using SlimDX; +using SlimDX.Direct3D9; +using FDK; +using SampleFramework; + +namespace TJAPlayer3 +{ + internal class CActEnumSongs : CActivity + { + public bool bコマンドでの曲データ取得; + + + /// + /// Constructor + /// + public CActEnumSongs() + { + Init( false ); + } + + public CActEnumSongs( bool _bコマンドでの曲データ取得 ) + { + Init( _bコマンドでの曲データ取得 ); + } + private void Init( bool _bコマンドでの曲データ取得 ) + { + base.b活性化してない = true; + bコマンドでの曲データ取得 = _bコマンドでの曲データ取得; + } + + // CActivity 実装 + + public override void On活性化() + { + if ( this.b活性化してる ) + return; + base.On活性化(); + + try + { + this.ctNowEnumeratingSongs = new CCounter(); // 0, 1000, 17, CDTXMania.Timer ); + this.ctNowEnumeratingSongs.t開始( 0, 100, 17, TJAPlayer3.Timer ); + } + finally + { + } + } + public override void On非活性化() + { + if ( this.b活性化してない ) + return; + base.On非活性化(); + this.ctNowEnumeratingSongs = null; + } + public override void OnManagedリソースの作成() + { + if ( this.b活性化してない ) + return; + //string pathNowEnumeratingSongs = CSkin.Path( @"Graphics\ScreenTitle NowEnumeratingSongs.png" ); + //if ( File.Exists( pathNowEnumeratingSongs ) ) + //{ + // this.txNowEnumeratingSongs = CDTXMania.tテクスチャの生成( pathNowEnumeratingSongs, false ); + //} + //else + //{ + // this.txNowEnumeratingSongs = null; + //} + //string pathDialogNowEnumeratingSongs = CSkin.Path( @"Graphics\ScreenConfig NowEnumeratingSongs.png" ); + //if ( File.Exists( pathDialogNowEnumeratingSongs ) ) + //{ + // this.txDialogNowEnumeratingSongs = CDTXMania.tテクスチャの生成( pathDialogNowEnumeratingSongs, false ); + //} + //else + //{ + // this.txDialogNowEnumeratingSongs = null; + //} + + try + { + System.Drawing.Font ftMessage = new System.Drawing.Font("MS UI Gothic", 40f, FontStyle.Bold, GraphicsUnit.Pixel ); + string[] strMessage = + { + " 曲データの一覧を\n 取得しています。\n しばらくお待ちください。", + " Now enumerating songs.\n Please wait..." + }; + int ci = ( CultureInfo.CurrentUICulture.TwoLetterISOLanguageName == "ja" ) ? 0 : 1; + if ( ( strMessage != null ) && ( strMessage.Length > 0 ) ) + { + Bitmap image = new Bitmap( 1, 1 ); + Graphics graphics = Graphics.FromImage( image ); + SizeF ef = graphics.MeasureString( strMessage[ ci ], ftMessage ); + Size size = new Size( (int) Math.Ceiling( (double) ef.Width ), (int) Math.Ceiling( (double) ef.Height ) ); + graphics.Dispose(); + image.Dispose(); + image = new Bitmap( size.Width, size.Height ); + graphics = Graphics.FromImage( image ); + graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias; + graphics.DrawString( strMessage[ ci ], ftMessage, Brushes.White, (float) 0f, (float) 0f ); + graphics.Dispose(); + this.txMessage = new CTexture( TJAPlayer3.app.Device, image, TJAPlayer3.TextureFormat ); + this.txMessage.vc拡大縮小倍率 = new Vector3( 0.5f, 0.5f, 1f ); + image.Dispose(); + TJAPlayer3.t安全にDisposeする( ref ftMessage ); + } + else + { + this.txMessage = null; + } + } + catch ( CTextureCreateFailedException e ) + { + Trace.TraceError( "テクスチャの生成に失敗しました。(txMessage)" ); + Trace.TraceError( e.ToString() ); + Trace.TraceError( "例外が発生しましたが処理を継続します。 (761b726d-d27c-470d-be0b-a702971601b5)" ); + this.txMessage = null; + } + + base.OnManagedリソースの作成(); + } + public override void OnManagedリソースの解放() + { + if ( this.b活性化してない ) + return; + + //CDTXMania.t安全にDisposeする( ref this.txDialogNowEnumeratingSongs ); + //CDTXMania.t安全にDisposeする( ref this.txNowEnumeratingSongs ); + TJAPlayer3.t安全にDisposeする( ref this.txMessage ); + base.OnManagedリソースの解放(); + } + + public override int On進行描画() + { + if ( this.b活性化してない ) + { + return 0; + } + this.ctNowEnumeratingSongs.t進行Loop(); + if ( TJAPlayer3.Tx.Enum_Song != null ) + { + TJAPlayer3.Tx.Enum_Song.Opacity = (int) ( 176.0 + 80.0 * Math.Sin( (double) (2 * Math.PI * this.ctNowEnumeratingSongs.n現在の値 * 2 / 100.0 ) ) ); + TJAPlayer3.Tx.Enum_Song.t2D描画( TJAPlayer3.app.Device, 18, 7 ); + } + if ( bコマンドでの曲データ取得 && TJAPlayer3.Tx.Config_Enum_Song != null ) + { + TJAPlayer3.Tx.Config_Enum_Song.t2D描画( TJAPlayer3.app.Device, 180, 177 ); + this.txMessage.t2D描画( TJAPlayer3.app.Device, 190, 197 ); + } + + return 0; + } + + + private CCounter ctNowEnumeratingSongs; + //private CTexture txNowEnumeratingSongs = null; + //private CTexture txDialogNowEnumeratingSongs = null; + private CTexture txMessage; + } +} diff --git a/TJAPlayer3/Stages/02.Title/CActScanningLoudness.cs b/TJAPlayer3/Stages/02.Title/CActScanningLoudness.cs new file mode 100644 index 00000000..a77bfc7e --- /dev/null +++ b/TJAPlayer3/Stages/02.Title/CActScanningLoudness.cs @@ -0,0 +1,54 @@ +using System; +using FDK; + +namespace TJAPlayer3 +{ + internal class CActScanningLoudness : CActivity + { + public bool bIsActivelyScanning; + + // CActivity 実装 + + public override void On活性化() + { + if ( this.b活性化してる ) + return; + base.On活性化(); + + try + { + this.ctNowScanningLoudness = new CCounter(); + this.ctNowScanningLoudness.t開始( 0, 200, 29, TJAPlayer3.Timer ); + } + finally + { + } + } + + public override void On非活性化() + { + if ( this.b活性化してない ) + return; + base.On非活性化(); + this.ctNowScanningLoudness = null; + } + + public override int On進行描画() + { + if ( this.b活性化してない ) + { + return 0; + } + this.ctNowScanningLoudness.t進行Loop(); + if ( bIsActivelyScanning && TJAPlayer3.Tx.Scanning_Loudness != null ) + { + TJAPlayer3.Tx.Scanning_Loudness.Opacity = (int) ( 176.0 + 80.0 * Math.Sin( (double) (2 * Math.PI * this.ctNowScanningLoudness.n現在の値 / 100.0 ) ) ); + TJAPlayer3.Tx.Scanning_Loudness.t2D描画( TJAPlayer3.app.Device, 18 + 89 + 18, 7 ); // 2018-09-03 twopointzero: display right of Enum_Song, using its width and margin + } + + return 0; + } + + private CCounter ctNowScanningLoudness; + } +} diff --git a/TJAPlayer3/Stages/02.Title/CEnumSongs.cs b/TJAPlayer3/Stages/02.Title/CEnumSongs.cs new file mode 100644 index 00000000..7e0a3ce4 --- /dev/null +++ b/TJAPlayer3/Stages/02.Title/CEnumSongs.cs @@ -0,0 +1,594 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Diagnostics; +using System.Runtime.InteropServices; +using System.IO; +using System.Threading; +using System.Runtime.Serialization.Formatters.Binary; +using SlimDX; +using SlimDX.Direct3D9; +using FDK; +using SampleFramework; + +namespace TJAPlayer3 +{ + internal class CEnumSongs // #27060 2011.2.7 yyagi 曲リストを取得するクラス + { // ファイルキャッシュ(songslist.db)からの取得と、ディスクからの取得を、この一つのクラスに集約。 + + public CSongs管理 Songs管理 // 曲の探索結果はこのSongs管理に読み込まれる + { + get; + private set; + } + + public bool IsSongListEnumCompletelyDone // 曲リスト探索と、実際の曲リストへの反映が完了した? + { + get + { + return ( this.state == DTXEnumState.CompletelyDone ); + } + } + public bool IsEnumerating + { + get + { + if ( thDTXFileEnumerate == null ) + { + return false; + } + return thDTXFileEnumerate.IsAlive; + } + } + public bool IsSongListEnumerated // 曲リスト探索が完了したが、実際の曲リストへの反映はまだ? + { + get + { + return ( this.state == DTXEnumState.Enumeratad ); + } + } + public bool IsSongListEnumStarted // 曲リスト探索開始後?(探索完了も含む) + { + get + { + return ( this.state != DTXEnumState.None ); + } + } + public void SongListEnumCompletelyDone() + { + this.state = DTXEnumState.CompletelyDone; + this.Songs管理 = null; // GCはOSに任せる + } + public bool IsSlowdown // #PREMOVIE再生中は検索負荷を落とす + { + get + { + return this.Songs管理.bIsSlowdown; + } + set + { + this.Songs管理.bIsSlowdown = value; + } + } + + public void ChangeEnumeratePriority( ThreadPriority tp ) + { + if ( this.thDTXFileEnumerate != null && this.thDTXFileEnumerate.IsAlive == true ) + { + this.thDTXFileEnumerate.Priority = tp; + } + } + private readonly string strPathSongsDB = TJAPlayer3.strEXEのあるフォルダ + "songs.db"; + private readonly string strPathSongList = TJAPlayer3.strEXEのあるフォルダ + "songlist.db"; + + public Thread thDTXFileEnumerate + { + get; + private set; + } + private enum DTXEnumState + { + None, + Ongoing, + Suspended, + Enumeratad, // 探索完了、現在の曲リストに未反映 + CompletelyDone // 探索完了、現在の曲リストに反映完了 + } + private DTXEnumState state = DTXEnumState.None; + + + /// + /// Constractor + /// + public CEnumSongs() + { + this.Songs管理 = new CSongs管理(); + } + + public void Init() + { + + } + + /// + /// 曲リストのキャッシュ(songlist.db)取得スレッドの開始 + /// + public void StartEnumFromCache() + { + this.thDTXFileEnumerate = new Thread( new ThreadStart( this.t曲リストの構築1 ) ); + this.thDTXFileEnumerate.Name = "曲リストの構築"; + this.thDTXFileEnumerate.IsBackground = true; + this.thDTXFileEnumerate.Start(); + } + + /// + /// + /// + public delegate void AsyncDelegate(); + + /// + /// 曲検索スレッドの開始 + /// + public void StartEnumFromDisk() + { + if ( state == DTXEnumState.None || state == DTXEnumState.CompletelyDone ) + { + Trace.TraceInformation( "★曲データ検索スレッドを起動しました。" ); + lock ( this ) + { + state = DTXEnumState.Ongoing; + } + // this.autoReset = new AutoResetEvent( true ); + + if ( this.Songs管理 == null ) // Enumerating Songs完了後、CONFIG画面から再スキャンしたときにこうなる + { + this.Songs管理 = new CSongs管理(); + } + this.thDTXFileEnumerate = new Thread( new ThreadStart( this.t曲リストの構築2 ) ); + this.thDTXFileEnumerate.Name = "曲リストの構築"; + this.thDTXFileEnumerate.IsBackground = true; + this.thDTXFileEnumerate.Priority = System.Threading.ThreadPriority.Lowest; + this.thDTXFileEnumerate.Start(); + } + } + + + /// + /// 曲探索スレッドのサスペンド + /// + public void Suspend() + { + if ( this.state != DTXEnumState.CompletelyDone && + ( ( thDTXFileEnumerate.ThreadState & ( System.Threading.ThreadState.Background ) ) != 0 ) ) + { + // this.thDTXFileEnumerate.Suspend(); // obsoleteにつき使用中止 + this.Songs管理.bIsSuspending = true; + this.state = DTXEnumState.Suspended; + Trace.TraceInformation( "★曲データ検索スレッドを中断しました。" ); + } + } + + /// + /// 曲探索スレッドのレジューム + /// + public void Resume() + { + if ( this.state == DTXEnumState.Suspended ) + { + if ( ( this.thDTXFileEnumerate.ThreadState & ( System.Threading.ThreadState.WaitSleepJoin | System.Threading.ThreadState.StopRequested ) ) != 0 ) // + { + // this.thDTXFileEnumerate.Resume(); // obsoleteにつき使用中止 + this.Songs管理.bIsSuspending = false; + this.Songs管理.AutoReset.Set(); + this.state = DTXEnumState.Ongoing; + Trace.TraceInformation( "★曲データ検索スレッドを再開しました。" ); + } + } + } + + /// + /// 曲探索スレッドにサスペンド指示を出してから、本当にサスペンド状態に遷移するまでの間、ブロックする + /// 500ms * 10回=5秒でタイムアウトし、サスペンド完了して無くてもブロック解除する + /// + public void WaitUntilSuspended() + { + // 曲検索が一時中断されるまで待機 + for ( int i = 0; i < 10; i++ ) + { + if ( this.state == DTXEnumState.CompletelyDone || + ( thDTXFileEnumerate.ThreadState & ( System.Threading.ThreadState.WaitSleepJoin | System.Threading.ThreadState.Background | System.Threading.ThreadState.Stopped ) ) != 0 ) + { + break; + } + Trace.TraceInformation( "★曲データ検索スレッドの中断待ちです: {0}", this.thDTXFileEnumerate.ThreadState.ToString() ); + Thread.Sleep( 500 ); + } + + } + + /// + /// 曲探索スレッドを強制終了する + /// + public void Abort() + { + if ( thDTXFileEnumerate != null ) + { + thDTXFileEnumerate.Abort(); + thDTXFileEnumerate = null; + this.state = DTXEnumState.None; + + this.Songs管理 = null; // Songs管理を再初期化する (途中まで作った曲リストの最後に、一から重複して追記することにならないようにする。) + this.Songs管理 = new CSongs管理(); + } + } + + + + /// + /// songlist.dbからの曲リスト構築 + /// + public void t曲リストの構築1() + { + // !注意! + // 本メソッドは別スレッドで動作するが、プラグイン側でカレントディレクトリを変更しても大丈夫なように、 + // すべてのファイルアクセスは「絶対パス」で行うこと。(2010.9.16) + // 構築が完了したら、DTXEnumerateState state を DTXEnumerateState.Done にすること。(2012.2.9) + DateTime now = DateTime.Now; + + try + { + #region [ 0) システムサウンドの構築 ] + //----------------------------- + TJAPlayer3.stage起動.eフェーズID = CStage.Eフェーズ.起動0_システムサウンドを構築; + + Trace.TraceInformation( "0) システムサウンドを構築します。" ); + Trace.Indent(); + + try + { + TJAPlayer3.Skin.bgm起動画面.t再生する(); + for ( int i = 0; i < TJAPlayer3.Skin.nシステムサウンド数; i++ ) + { + if ( !TJAPlayer3.Skin[ i ].b排他 ) // BGM系以外のみ読み込む。(BGM系は必要になったときに読み込む) + { + CSkin.Cシステムサウンド cシステムサウンド = TJAPlayer3.Skin[ i ]; + if ( !TJAPlayer3.bコンパクトモード || cシステムサウンド.bCompact対象 ) + { + try + { + cシステムサウンド.t読み込み(); + Trace.TraceInformation( "システムサウンドを読み込みました。({0})", cシステムサウンド.strファイル名 ); + //if ( ( cシステムサウンド == CDTXMania.Skin.bgm起動画面 ) && cシステムサウンド.b読み込み成功 ) + //{ + // cシステムサウンド.t再生する(); + //} + } + catch ( FileNotFoundException ) + { + Trace.TraceWarning( "システムサウンドが存在しません。({0})", cシステムサウンド.strファイル名 ); + } + catch ( Exception e ) + { + Trace.TraceWarning( e.ToString() ); + Trace.TraceWarning( "システムサウンドの読み込みに失敗しました。({0})", cシステムサウンド.strファイル名 ); + } + } + } + } + lock ( TJAPlayer3.stage起動.list進行文字列 ) + { + TJAPlayer3.stage起動.list進行文字列.Add( "SYSTEM SOUND...OK" ); + } + } + finally + { + Trace.Unindent(); + } + //----------------------------- + #endregion + + if ( TJAPlayer3.bコンパクトモード ) + { + Trace.TraceInformation( "コンパクトモードなので残りの起動処理は省略します。" ); + return; + } + + #region [ 00) songlist.dbの読み込みによる曲リストの構築 ] + //----------------------------- + TJAPlayer3.stage起動.eフェーズID = CStage.Eフェーズ.起動00_songlistから曲リストを作成する; + + Trace.TraceInformation( "1) songlist.dbを読み込みます。" ); + Trace.Indent(); + + try + { + if ( !TJAPlayer3.ConfigIni.bConfigIniがないかDTXManiaのバージョンが異なる ) + { + CSongs管理 s = new CSongs管理(); + s = Deserialize( strPathSongList ); // 直接this.Songs管理にdeserialize()結果を代入するのは避ける。nullにされてしまうことがあるため。 + if ( s != null ) + { + this.Songs管理 = s; + } + + int scores = this.Songs管理.n検索されたスコア数; + Trace.TraceInformation( "songlist.db の読み込みを完了しました。[{0}スコア]", scores ); + lock ( TJAPlayer3.stage起動.list進行文字列 ) + { + TJAPlayer3.stage起動.list進行文字列.Add( "SONG LIST...OK" ); + } + } + else + { + Trace.TraceInformation( "初回の起動であるかまたはDTXManiaのバージョンが上がったため、songlist.db の読み込みをスキップします。" ); + lock ( TJAPlayer3.stage起動.list進行文字列 ) + { + TJAPlayer3.stage起動.list進行文字列.Add( "SONG LIST...SKIPPED" ); + } + } + } + finally + { + Trace.Unindent(); + } + + #endregion + } + finally + { + TJAPlayer3.stage起動.eフェーズID = CStage.Eフェーズ.起動_テクスチャの読み込み; + TimeSpan span = (TimeSpan) ( DateTime.Now - now ); + Trace.TraceInformation( "起動所要時間: {0}", span.ToString() ); + lock ( this ) // #28700 2012.6.12 yyagi; state change must be in finally{} for exiting as of compact mode. + { + state = DTXEnumState.CompletelyDone; + } + } + } + + + /// + /// 起動してタイトル画面に遷移した後にバックグラウンドで発生させる曲検索 + /// #27060 2012.2.6 yyagi + /// + private void t曲リストの構築2() + { + // !注意! + // 本メソッドは別スレッドで動作するが、プラグイン側でカレントディレクトリを変更しても大丈夫なように、 + // すべてのファイルアクセスは「絶対パス」で行うこと。(2010.9.16) + // 構築が完了したら、DTXEnumerateState state を DTXEnumerateState.Done にすること。(2012.2.9) + + DateTime now = DateTime.Now; + + try + { + + #region [ 2) 曲データの検索 ] + //----------------------------- + // base.eフェーズID = CStage.Eフェーズ.起動2_曲を検索してリストを作成する; + + Trace.TraceInformation( "enum2) 曲データを検索します。" ); + Trace.Indent(); + + try + { + if ( !string.IsNullOrEmpty( TJAPlayer3.ConfigIni.str曲データ検索パス ) ) + { + string[] strArray = TJAPlayer3.ConfigIni.str曲データ検索パス.Split( new char[] { ';' } ); + if ( strArray.Length > 0 ) + { + // 全パスについて… + foreach ( string str in strArray ) + { + string path = str; + if ( !Path.IsPathRooted( path ) ) + { + path = TJAPlayer3.strEXEのあるフォルダ + str; // 相対パスの場合、絶対パスに直す(2010.9.16) + } + + if ( !string.IsNullOrEmpty( path ) ) + { + Trace.TraceInformation( "検索パス: " + path ); + Trace.Indent(); + + try + { + this.Songs管理.t曲を検索してリストを作成する(path, true); + } + catch ( Exception e ) + { + Trace.TraceError( e.ToString() ); + Trace.TraceError( "例外が発生しましたが処理を継続します。 (105fd674-e722-4a4e-bd9a-e6f82ac0b1d3)" ); + } + finally + { + Trace.Unindent(); + } + } + } + } + } + else + { + Trace.TraceWarning( "曲データの検索パス(TJAPath)の指定がありません。" ); + } + } + finally + { + Trace.TraceInformation( "曲データの検索を完了しました。[{0}曲{1}スコア]", this.Songs管理.n検索された曲ノード数, this.Songs管理.n検索されたスコア数 ); + Trace.Unindent(); + } + // lock ( this.list進行文字列 ) + // { + // this.list進行文字列.Add( string.Format( "{0} ... {1} scores ({2} songs)", "Enumerating songs", this..Songs管理_裏読.n検索されたスコア数, this.Songs管理_裏読.n検索された曲ノード数 ) ); + // } + //----------------------------- + #endregion + #region [ 4) songs.db になかった曲データをファイルから読み込んで反映 ] + //----------------------------- + // base.eフェーズID = CStage.Eフェーズ.起動4_スコアキャッシュになかった曲をファイルから読み込んで反映する; + + int num2 = this.Songs管理.n検索されたスコア数 - this.Songs管理.nスコアキャッシュから反映できたスコア数; + + Trace.TraceInformation( "{0}, {1}", this.Songs管理.n検索されたスコア数, this.Songs管理.nスコアキャッシュから反映できたスコア数 ); + Trace.TraceInformation( "enum4) songs.db になかった曲データ[{0}スコア]の情報をファイルから読み込んで反映します。", num2 ); + Trace.Indent(); + + try + { + this.Songs管理.tSongsDBになかった曲をファイルから読み込んで反映する(); + } + catch ( Exception e ) + { + Trace.TraceError( e.ToString() ); + Trace.TraceError( "例外が発生しましたが処理を継続します。 (276bb40f-6406-40c1-9f03-e2a9869dbc88)" ); + } + finally + { + Trace.TraceInformation( "曲データへの反映を完了しました。[{0}/{1}スコア]", this.Songs管理.nファイルから反映できたスコア数, num2 ); + Trace.Unindent(); + } + // lock ( this.list進行文字列 ) + // { + // this.list進行文字列.Add( string.Format( "{0} ... {1}/{2}", "Loading score properties from files", CDTXMania.Songs管理_裏読.nファイルから反映できたスコア数, CDTXMania.Songs管理_裏読.n検索されたスコア数 - cs.nスコアキャッシュから反映できたスコア数 ) ); + // } + //----------------------------- + #endregion + #region [ 5) 曲リストへの後処理の適用 ] + //----------------------------- + // base.eフェーズID = CStage.Eフェーズ.起動5_曲リストへ後処理を適用する; + + Trace.TraceInformation( "enum5) 曲リストへの後処理を適用します。" ); + Trace.Indent(); + + try + { + this.Songs管理.t曲リストへ後処理を適用する(); + } + catch ( Exception e ) + { + Trace.TraceError( e.ToString() ); + Trace.TraceError( "例外が発生しましたが処理を継続します。 (6480ffa0-1cc1-40d4-9cc9-aceeecd0264b)" ); + } + finally + { + Trace.TraceInformation( "曲リストへの後処理を完了しました。" ); + Trace.Unindent(); + } + // lock ( this.list進行文字列 ) + // { + // this.list進行文字列.Add( string.Format( "{0} ... OK", "Building songlists" ) ); + // } + //----------------------------- + #endregion + + // if ( !bSucceededFastBoot ) // songs2.db読み込みに成功したなら、songs2.dbを新たに作らない + #region [ 7) songs2.db への保存 ] // #27060 2012.1.26 yyagi + Trace.TraceInformation( "enum7) 曲データの情報を songlist.db へ出力します。" ); + Trace.Indent(); + + SerializeSongList( this.Songs管理, strPathSongList ); + Trace.TraceInformation("songlist.db への出力を完了しました。"); + Trace.Unindent(); + //----------------------------- + #endregion + // } + + } + finally + { + // base.eフェーズID = CStage.Eフェーズ.起動7_完了; + TimeSpan span = (TimeSpan) ( DateTime.Now - now ); + Trace.TraceInformation( "曲探索所要時間: {0}", span.ToString() ); + } + lock ( this ) + { + // state = DTXEnumState.Done; // DoneにするのはCDTXMania.cs側にて。 + state = DTXEnumState.Enumeratad; + } + } + + + + /// + /// 曲リストのserialize + /// + private static void SerializeSongList( CSongs管理 cs, string strPathSongList ) + { + bool bSucceededSerialize = true; + Stream output = null; + try + { + output = File.Create( strPathSongList ); + BinaryFormatter formatter = new BinaryFormatter(); + formatter.Serialize( output, cs ); + } + catch ( Exception e ) + { + bSucceededSerialize = false; + Trace.TraceError( e.ToString() ); + Trace.TraceError( "例外が発生しましたが処理を継続します。 (9ad477a4-d922-412c-b87d-e3a49a608e92)" ); + } + finally + { + output.Close(); + if ( !bSucceededSerialize ) + { + try + { + File.Delete( strPathSongList ); // serializeに失敗したら、songs2.dbファイルを消しておく + } + catch ( Exception e ) + { + Trace.TraceError( e.ToString() ); + Trace.TraceError( "例外が発生しましたが処理を継続します。 (62860c67-b44f-46f4-b4fc-999c6fe18cce)" ); + } + } + } + } + + /// + /// 曲リストのdeserialize + /// + /// + /// + private CSongs管理 Deserialize( string strPathSongList ) + { + try + { + #region [ SongListDB(songlist.db)を読み込む ] + + if (!File.Exists(strPathSongList)) + { + return null; + } + + // byte[] buf = File.ReadAllBytes( SongListDBファイル名 ); // 一旦メモリにまとめ読みしてからdeserializeした方が高速かと思ったら全く変わらなかったので削除 + // using ( MemoryStream input = new MemoryStream(buf, false) ) + using ( Stream input = File.OpenRead( strPathSongList ) ) + { + try + { + BinaryFormatter formatter = new BinaryFormatter(); + return (CSongs管理) formatter.Deserialize( input ); + } + catch ( Exception e ) + { + // songs管理 = null; + + Trace.TraceError( e.ToString() ); + Trace.TraceError( "例外が発生しましたが処理を継続します。 (a4289e34-7140-4b67-b821-3b5370a725e1)" ); + } + } + #endregion + } + catch (Exception e) + { + Trace.TraceError( "songlist.db の読み込みに失敗しました。" ); + Trace.TraceError( e.ToString() ); + Trace.TraceError( "例外が発生しましたが処理を継続します。 (5a907ed2-f849-4bc4-acd0-d2a6aa3c9c87)" ); + } + return null; + } + } +} diff --git a/TJAPlayer3/Stages/02.Title/CStageタイトル.cs b/TJAPlayer3/Stages/02.Title/CStageタイトル.cs new file mode 100644 index 00000000..6b1478e1 --- /dev/null +++ b/TJAPlayer3/Stages/02.Title/CStageタイトル.cs @@ -0,0 +1,758 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Runtime.InteropServices; +using System.Diagnostics; +using System.Drawing; +using FDK; +using System.Reflection; + +namespace TJAPlayer3 +{ + internal class CStageタイトル : CStage + { + // コンストラクタ + + public CStageタイトル() + { + base.eステージID = CStage.Eステージ.タイトル; + base.b活性化してない = true; + base.list子Activities.Add( this.actFIfromSetup = new CActFIFOBlack() ); + base.list子Activities.Add( this.actFI = new CActFIFOBlack() ); + base.list子Activities.Add( this.actFO = new CActFIFOBlack() ); + + } + + + // CStage 実装 + + public override void On活性化() + { + Trace.TraceInformation( "タイトルステージを活性化します。" ); + Trace.Indent(); + try + { + this.ctバナパス読み込み待機 = new CCounter(); + + this.ctコインイン待機 = new CCounter(0, 2000, 1, TJAPlayer3.Timer); + + this.ctバナパス読み込み成功 = new CCounter(); + this.ctバナパス読み込み失敗 = new CCounter(); + + this.ctエントリーバー点滅 = new CCounter(0, 510, 2, TJAPlayer3.Timer); + this.ctエントリーバー決定点滅 = new CCounter(); + + this.ctどんちゃんエントリーループ = new CCounter(); + this.ctどんちゃんイン = new CCounter(); + this.ctどんちゃんループ = new CCounter(0, TJAPlayer3.Tx.Entry_Donchan_Normal.Length - 1, 1000 / 30, TJAPlayer3.Timer); + + this.ctBarAnimeIn = new CCounter(); + this.ctBarMove = new CCounter(); + this.ctBarMove.n現在の値 = 250; + + this.bバナパス読み込み = false; + this.bバナパス読み込み失敗 = false; + this.bプレイヤーエントリー = false; + this.bプレイヤーエントリー決定 = false; + this.bモード選択 = false; + this.bどんちゃんカウンター初期化 = false; + + this.n現在の選択行プレイヤーエントリー = 1; + + for (int i = 0; i < this.nbModes; i++) + { + this.stModeBar[i].BarTexture = TJAPlayer3.Tx.ModeSelect_Bar[i]; + this.stModeBar[i].n現在存在している行 = i + 1; + } + + TJAPlayer3.Skin.soundEntry.t再生する(); + TJAPlayer3.Skin.SoundBanapas.bPlayed = false; + if (TJAPlayer3.ConfigIni.bBGM音を発声する) + TJAPlayer3.Skin.bgmタイトルイン.t再生する(); + b音声再生 = false; + base.On活性化(); + } + finally + { + Trace.TraceInformation( "タイトルステージの活性化を完了しました。" ); + Trace.Unindent(); + } + } + public override void On非活性化() + { + Trace.TraceInformation( "タイトルステージを非活性化します。" ); + Trace.Indent(); + try + { + + } + finally + { + Trace.TraceInformation( "タイトルステージの非活性化を完了しました。" ); + Trace.Unindent(); + } + base.On非活性化(); + } + public override void OnManagedリソースの作成() + { + + } + public override void OnManagedリソースの解放() + { + + } + public override int On進行描画() + { + if( !base.b活性化してない ) + { + #region [ 初めての進行描画 ] + //--------------------- + if ( base.b初めての進行描画 ) + { + if( TJAPlayer3.r直前のステージ == TJAPlayer3.stage起動 ) + { + this.actFIfromSetup.tフェードイン開始(); + base.eフェーズID = CStage.Eフェーズ.タイトル_起動画面からのフェードイン; + } + else + { + this.actFI.tフェードイン開始(); + base.eフェーズID = CStage.Eフェーズ.共通_フェードイン; + } + base.b初めての進行描画 = false; + } + //--------------------- + #endregion + + this.ctコインイン待機.t進行Loop(); + this.ctバナパス読み込み成功.t進行(); + this.ctバナパス読み込み失敗.t進行(); + this.ctエントリーバー点滅.t進行Loop(); + this.ctエントリーバー決定点滅.t進行(); + this.ctどんちゃんイン.t進行(); + this.ctどんちゃんループ.t進行Loop(); + this.ctどんちゃんエントリーループ.t進行Loop(); + this.ctBarMove.t進行(); + + if (!TJAPlayer3.Skin.bgmタイトルイン.b再生中) + { + if (TJAPlayer3.ConfigIni.bBGM音を発声する && !b音声再生) + { + TJAPlayer3.Skin.bgmタイトル.t再生する(); + b音声再生 = true; + } + } + + // 進行 + + #region [ キー関係 ] + + if (base.eフェーズID == CStage.Eフェーズ.共通_通常状態 // 通常状態、かつ + && TJAPlayer3.act現在入力を占有中のプラグイン == null) // プラグインの入力占有がない + { + if (TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.Escape)) + return (int)E戻り値.EXIT; + + if ((TJAPlayer3.Input管理.Keyboard.bキーが押されている((int)SlimDXKeys.Key.RightShift) || TJAPlayer3.Input管理.Keyboard.bキーが押されている((int)SlimDXKeys.Key.LeftShift)) && TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.F1)) + { + TJAPlayer3.Skin.soundEntry.t停止する(); + n現在の選択行モード選択 = (int)E戻り値.CONFIG - 1; + this.actFO.tフェードアウト開始(); + base.eフェーズID = CStage.Eフェーズ.共通_フェードアウト; + TJAPlayer3.Skin.sound取消音.t再生する(); + } + + if (!bバナパス読み込み && !bバナパス読み込み失敗) + { + if (TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.P)) + this.ctバナパス読み込み待機.t開始(0, 600, 1, TJAPlayer3.Timer); + if (TJAPlayer3.Input管理.Keyboard.bキーが押されている((int)SlimDXKeys.Key.P)) + ctバナパス読み込み待機.t進行(); + if (TJAPlayer3.Input管理.Keyboard.bキーが離された((int)SlimDXKeys.Key.P)) + { + this.ctバナパス読み込み待機.t停止(); + if (this.ctバナパス読み込み待機.n現在の値 < 600 && !bバナパス読み込み失敗) + { + ctバナパス読み込み失敗.t開始(0, 1128, 1, TJAPlayer3.Timer); + bバナパス読み込み失敗 = true; + } + } + } + + if (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RBlue) || TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.RightArrow)) + { + if(bプレイヤーエントリー && !bプレイヤーエントリー決定) + { + if(n現在の選択行プレイヤーエントリー + 1 <= 2) + { + TJAPlayer3.Skin.sound変更音.t再生する(); + n現在の選択行プレイヤーエントリー += 1; + } + } + + if (bモード選択) + { + if (n現在の選択行モード選択 < this.nbModes - 1) + { + TJAPlayer3.Skin.sound変更音.t再生する(); + ctBarMove.t開始(0, 250, 1.2f, TJAPlayer3.Timer); + n現在の選択行モード選択++; + for (int i = 0; i < this.nbModes; i++) + this.stModeBar[i].n現在存在している行 = Math.Max(0, i + 1 - n現在の選択行モード選択); + } + } + } + + if (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LBlue)||TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.LeftArrow)) + { + if(bプレイヤーエントリー && !bプレイヤーエントリー決定) + { + if(n現在の選択行プレイヤーエントリー - 1 >= 0) + { + TJAPlayer3.Skin.sound変更音.t再生する(); + n現在の選択行プレイヤーエントリー -= 1; + } + } + + if (bモード選択) + { + if(n現在の選択行モード選択 > 0) + { + TJAPlayer3.Skin.sound変更音.t再生する(); + ctBarMove.t開始(0, 250, 1.2f, TJAPlayer3.Timer); + n現在の選択行モード選択--; + for (int i = 0; i < this.nbModes; i++) + this.stModeBar[i].n現在存在している行 = Math.Max(0, i + 1 - n現在の選択行モード選択); + } + } + } + + + if (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RRed) || TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LRed) || TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.Return)) + { + if (bプレイヤーエントリー) + { + if (n現在の選択行プレイヤーエントリー == 0 || n現在の選択行プレイヤーエントリー == 2) + { + if (!bプレイヤーエントリー決定) + { + TJAPlayer3.Skin.sound決定音.t再生する(); + ctエントリーバー決定点滅.t開始(0, 1055, 1, TJAPlayer3.Timer); + bプレイヤーエントリー決定 = true; + } + } + else + { + TJAPlayer3.Skin.sound決定音.t再生する(); + bプレイヤーエントリー = false; + bバナパス読み込み = false; + TJAPlayer3.Skin.SoundBanapas.bPlayed = false; + ctバナパス読み込み成功 = new CCounter(); + ctバナパス読み込み待機 = new CCounter(); + } + } + if (bモード選択) + { + if (this.n現在の選択行モード選択 == (int)E戻り値.CONFIG - 1) + { + TJAPlayer3.Skin.sound決定音.t再生する(); + n現在の選択行モード選択 = (int)E戻り値.CONFIG - 1; + this.actFO.tフェードアウト開始(0, 500); + base.eフェーズID = CStage.Eフェーズ.共通_フェードアウト; + } + else if (this.n現在の選択行モード選択 == (int)E戻り値.DANGAMESTART - 1) + { + if (TJAPlayer3.Songs管理.list曲ルート_Dan.Count > 0 && TJAPlayer3.ConfigIni.nPlayerCount != 2) + { + TJAPlayer3.Skin.sound決定音.t再生する(); + n現在の選択行モード選択 = (int)E戻り値.DANGAMESTART - 1; + this.actFO.tフェードアウト開始(0, 500); + base.eフェーズID = CStage.Eフェーズ.共通_フェードアウト; + } + else + { + TJAPlayer3.Skin.soundError.t再生する(); + } + } + else if (this.n現在の選択行モード選択 == (int)E戻り値.GAMESTART - 1) + { + TJAPlayer3.Skin.sound決定音.t再生する(); + n現在の選択行モード選択 = (int)E戻り値.GAMESTART - 1; + this.actFO.tフェードアウト開始(0, 500); + base.eフェーズID = CStage.Eフェーズ.共通_フェードアウト; + } + else + { + TJAPlayer3.Skin.soundError.t再生する(); + } + } + } + + if (ctバナパス読み込み待機.n現在の値 >= 500) + { + if (!bバナパス読み込み) + { + TJAPlayer3.Skin.soundEntry.t停止する(); + ctバナパス読み込み成功.t開始(0, 3655, 1, TJAPlayer3.Timer); + bバナパス読み込み = true; + } + } + + if (ctエントリーバー決定点滅.n現在の値 >= 1055) + { + if (!bモード選択) + { + if (!TJAPlayer3.Skin.soundsanka.bPlayed) + TJAPlayer3.Skin.soundsanka.t再生する(); + + ctどんちゃんイン.t開始(0, 180, 2, TJAPlayer3.Timer); + ctBarAnimeIn.t開始(0, 1295, 1, TJAPlayer3.Timer); + bモード選択 = true; + } + } + } + + #endregion + + #region [ 背景描画 ] + + if (TJAPlayer3.Tx.Title_Background != null ) + TJAPlayer3.Tx.Title_Background.t2D描画( TJAPlayer3.app.Device, 0, 0 ); + + #endregion + + #region [ バナパス読み込み ] + + if (!bバナパス読み込み && !bバナパス読み込み失敗) + { + TJAPlayer3.Tx.Entry_Bar.t2D描画(TJAPlayer3.app.Device, 0, 0); + + if (this.ctコインイン待機.n現在の値 <= 255) + TJAPlayer3.Tx.Entry_Bar_Text.Opacity = this.ctコインイン待機.n現在の値; + else if (this.ctコインイン待機.n現在の値 <= 2000 - 355) + TJAPlayer3.Tx.Entry_Bar_Text.Opacity = 255; + else + TJAPlayer3.Tx.Entry_Bar_Text.Opacity = 255 - (this.ctコインイン待機.n現在の値 - (2000 - 355)); + + TJAPlayer3.Tx.Entry_Bar_Text.t2D描画(TJAPlayer3.app.Device, 563, 312, new RectangleF(0, 0, 395, 50)); + TJAPlayer3.Tx.Entry_Bar_Text.t2D描画(TJAPlayer3.app.Device, 563, 430, new RectangleF(0, 50, 395, 50)); + } + else + { + if (this.ctバナパス読み込み成功.n現在の値 <= 1000 && this.ctバナパス読み込み失敗.n現在の値 <= 1128) + { + if (bバナパス読み込み) + { + TJAPlayer3.Tx.Tile_Black.Opacity = this.ctバナパス読み込み成功.n現在の値 <= 2972 ? 128 : 128 - (this.ctバナパス読み込み成功.n現在の値 - 2972); + + for (int i = 0; i < 1280 / TJAPlayer3.Tx.Tile_Black.szテクスチャサイズ.Width + 1; i++) + for (int j = 0; j < 720 / TJAPlayer3.Tx.Tile_Black.szテクスチャサイズ.Height + 1; j++) + TJAPlayer3.Tx.Tile_Black.t2D描画(TJAPlayer3.app.Device, i * TJAPlayer3.Tx.Tile_Black.szテクスチャサイズ.Width, j * TJAPlayer3.Tx.Tile_Black.szテクスチャサイズ.Height); + + TJAPlayer3.Tx.Banapas_Load[0].Opacity = ctバナパス読み込み成功.n現在の値 >= 872 ? 255 - (ctバナパス読み込み成功.n現在の値 - 872) * 2 : ctバナパス読み込み成功.n現在の値 * 2; + TJAPlayer3.Tx.Banapas_Load[0].vc拡大縮小倍率.Y = ctバナパス読み込み成功.n現在の値 <= 100 ? ctバナパス読み込み成功.n現在の値 * 0.01f : 1.0f; + TJAPlayer3.Tx.Banapas_Load[0].t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 640, 360); + + TJAPlayer3.Tx.Banapas_Load[1].Opacity = ctバナパス読み込み成功.n現在の値 >= 872 ? 255 - (ctバナパス読み込み成功.n現在の値 - 872) * 2 : ctバナパス読み込み成功.n現在の値 <= 96 ? (int)((ctバナパス読み込み成功.n現在の値 - 96) * 7.96875f) : 255; + TJAPlayer3.Tx.Banapas_Load[1].t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 640, 360); + + for (int i = 0; i < 5; i++) + { + TJAPlayer3.Tx.Banapas_Load[2].Opacity = ctバナパス読み込み成功.n現在の値 >= 872 ? 255 - (ctバナパス読み込み成功.n現在の値 - 872) * 2 : ctバナパス読み込み成功.n現在の値 <= 96 ? (int)((ctバナパス読み込み成功.n現在の値 - 96) * 7.96875f) : 255; + TJAPlayer3.Tx.Banapas_Load[2].t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 480 + 90 * i, 410, new Rectangle(0 + 72 * (ctバナパス読み込み成功.n現在の値 >= 200 + (i - 1) * 320 ? ctバナパス読み込み成功.n現在の値 <= (200 + i * 320) ? (ctバナパス読み込み成功.n現在の値 - (200 + i * 320)) / 40 : 0 : 0), 0, 72, 72)); + } + } + if (bバナパス読み込み失敗) + { + TJAPlayer3.Tx.Tile_Black.Opacity = this.ctバナパス読み込み失敗.n現在の値 <= 1000 ? 128 : 128 - (this.ctバナパス読み込み失敗.n現在の値 - 1000); + + for (int i = 0; i < 1280 / TJAPlayer3.Tx.Tile_Black.szテクスチャサイズ.Width + 1; i++) + for (int j = 0; j < 720 / TJAPlayer3.Tx.Tile_Black.szテクスチャサイズ.Height + 1; j++) + TJAPlayer3.Tx.Tile_Black.t2D描画(TJAPlayer3.app.Device, i * TJAPlayer3.Tx.Tile_Black.szテクスチャサイズ.Width, j * TJAPlayer3.Tx.Tile_Black.szテクスチャサイズ.Height); + + if (!TJAPlayer3.Skin.soundError.bPlayed) + TJAPlayer3.Skin.soundError.t再生する(); + + int count = this.ctバナパス読み込み失敗.n現在の値; + TJAPlayer3.Tx.Banapas_Load_Failure[0].Opacity = count >= 872 ? 255 - (count - 872) * 2 : count * 2; + TJAPlayer3.Tx.Banapas_Load_Failure[0].vc拡大縮小倍率.Y = count <= 100 ? count * 0.01f : 1.0f; + TJAPlayer3.Tx.Banapas_Load_Failure[0].t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 640, 360); + + if (ctバナパス読み込み失敗.n現在の値 >= 1128) + { + bバナパス読み込み失敗 = false; + TJAPlayer3.Skin.soundError.bPlayed = false; + } + } + } + else + { + if (bバナパス読み込み) + { + TJAPlayer3.Tx.Tile_Black.Opacity = this.ctバナパス読み込み成功.n現在の値 <= 2972 ? 128 : 128 - (this.ctバナパス読み込み成功.n現在の値 - 2972); + + for (int i = 0; i < 1280 / TJAPlayer3.Tx.Tile_Black.szテクスチャサイズ.Width + 1; i++) + for (int j = 0; j < 720 / TJAPlayer3.Tx.Tile_Black.szテクスチャサイズ.Height + 1; j++) + TJAPlayer3.Tx.Tile_Black.t2D描画(TJAPlayer3.app.Device, i * TJAPlayer3.Tx.Tile_Black.szテクスチャサイズ.Width, j * TJAPlayer3.Tx.Tile_Black.szテクスチャサイズ.Height); + + if (!TJAPlayer3.Skin.SoundBanapas.bPlayed) + TJAPlayer3.Skin.SoundBanapas.t再生する(); + + int count = this.ctバナパス読み込み成功.n現在の値 - 1000; + TJAPlayer3.Tx.Banapas_Load_Clear[0].Opacity = count >= 1872 ? 255 - (count - 1872) * 2 : count * 2; + TJAPlayer3.Tx.Banapas_Load_Clear[0].vc拡大縮小倍率.Y = count <= 100 ? count * 0.01f : 1.0f; + TJAPlayer3.Tx.Banapas_Load_Clear[0].t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 640, 360); + + float anime = 0f; + float scalex = 0f; + float scaley = 0f; + + if (count >= 300) + { + if (count <= 300 + 270) + { + anime = (float)Math.Sin((float)(count - 300) / 1.5f * (Math.PI / 180)) * 95f; + scalex = -(float)Math.Sin((float)(count - 300) / 1.5f * (Math.PI / 180)) * 0.15f; + scaley = (float)Math.Sin((float)(count - 300) / 1.5f * (Math.PI / 180)) * 0.2f; + } + else if (count <= 300 + 270 + 100) + { + scalex = (float)Math.Sin((float)(count - (300 + 270)) * 1.8f * (Math.PI / 180)) * 0.13f; + scaley = -(float)Math.Sin((float)(count - (300 + 270)) * 1.8f * (Math.PI / 180)) * 0.1f; + anime = 0; + } + else if (count <= 300 + 540 + 100) + { + anime = (float)Math.Sin((float)(count - (300 + 270 + 100)) / 1.5f * (Math.PI / 180)) * 95f; + scalex = -(float)Math.Sin((float)(count - (300 + 270 + 100)) / 1.5f * (Math.PI / 180)) * 0.15f; + scaley = (float)Math.Sin((float)(count - (300 + 270 + 100)) / 1.5f * (Math.PI / 180)) * 0.2f; + } + else if (count <= 300 + 540 + 100 + 100) + { + scalex = (float)Math.Sin((float)(count - (300 + 540 + 100)) * 1.8f * (Math.PI / 180)) * 0.13f; + scaley = -(float)Math.Sin((float)(count - (300 + 540 + 100)) * 1.8f * (Math.PI / 180)) * 0.1f; + } + } + + TJAPlayer3.Tx.Banapas_Load_Clear[1].vc拡大縮小倍率.X = 1.0f + scalex; + TJAPlayer3.Tx.Banapas_Load_Clear[1].vc拡大縮小倍率.Y = 1.0f + scaley; + TJAPlayer3.Tx.Banapas_Load_Clear[1].Opacity = count >= 1872 ? 255 - (count - 1872) * 2 : count * 2; + TJAPlayer3.Tx.Banapas_Load_Clear[1].t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device, 198, 514 - anime); + + if (ctバナパス読み込み成功.n現在の値 >= 2000) + { + bプレイヤーエントリー = true; + } + } + } + } + + #endregion + + #region [ プレイヤーエントリー ] + + if (bプレイヤーエントリー) + { + if (!this.bどんちゃんカウンター初期化) + { + this.ctどんちゃんエントリーループ = new CCounter(0, TJAPlayer3.Tx.Donchan_Entry.Length - 1, 1000 / 60, TJAPlayer3.Timer); + this.bどんちゃんカウンター初期化 = true; + } + + TJAPlayer3.Tx.Entry_Player[0].Opacity = ctエントリーバー決定点滅.n現在の値 >= 800 ? 255 - (ctエントリーバー決定点滅.n現在の値 - 800) : (this.ctバナパス読み込み成功.n現在の値 - 3400); + TJAPlayer3.Tx.Entry_Player[1].Opacity = ctエントリーバー決定点滅.n現在の値 >= 800 ? 255 - (ctエントリーバー決定点滅.n現在の値 - 800) : (this.ctバナパス読み込み成功.n現在の値 - 3400); + TJAPlayer3.Tx.Donchan_Entry[this.ctどんちゃんエントリーループ.n現在の値].Opacity = ctエントリーバー決定点滅.n現在の値 >= 800 ? 255 - (ctエントリーバー決定点滅.n現在の値 - 800) : (this.ctバナパス読み込み成功.n現在の値 - 3400); + + TJAPlayer3.Tx.Entry_Player[0].t2D描画(TJAPlayer3.app.Device, 0, 0); + + TJAPlayer3.Tx.Donchan_Entry[this.ctどんちゃんエントリーループ.n現在の値].t2D描画(TJAPlayer3.app.Device, 485, 140); + + TJAPlayer3.Tx.Entry_Player[2].Opacity = ctエントリーバー決定点滅.n現在の値 >= 800 ? 255 - (ctエントリーバー決定点滅.n現在の値 - 800 ) : (this.ctバナパス読み込み成功.n現在の値 - 3400) - (this.ctエントリーバー点滅.n現在の値 <= 255 ? this.ctエントリーバー点滅.n現在の値 : 255 - (this.ctエントリーバー点滅.n現在の値 - 255)); + TJAPlayer3.Tx.Entry_Player[2].t2D描画(TJAPlayer3.app.Device, ptプレイヤーエントリーバー座標[n現在の選択行プレイヤーエントリー].X, ptプレイヤーエントリーバー座標[n現在の選択行プレイヤーエントリー].Y, + new RectangleF(n現在の選択行プレイヤーエントリー == 1 ? 199 : 0, 0, n現在の選択行プレイヤーエントリー == 1 ? 224 : 199, 92)); + + TJAPlayer3.Tx.Entry_Player[2].Opacity = ctエントリーバー決定点滅.n現在の値 >= 800 ? 255 - (ctエントリーバー決定点滅.n現在の値 - 800) : (this.ctバナパス読み込み成功.n現在の値 - 3400); + TJAPlayer3.Tx.Entry_Player[2].t2D描画(TJAPlayer3.app.Device, ptプレイヤーエントリーバー座標[n現在の選択行プレイヤーエントリー].X, ptプレイヤーエントリーバー座標[n現在の選択行プレイヤーエントリー].Y, + new RectangleF(n現在の選択行プレイヤーエントリー == 1 ? 199 : 0, 92, n現在の選択行プレイヤーエントリー == 1 ? 224 : 199, 92)); + + TJAPlayer3.Tx.Entry_Player[1].t2D描画(TJAPlayer3.app.Device, 0, 0); + + #region [ 透明度 ] + + int Opacity = 0; + + if (ctエントリーバー決定点滅.n現在の値 <= 100) + Opacity = (int)(ctエントリーバー決定点滅.n現在の値 * 2.55f); + else if (ctエントリーバー決定点滅.n現在の値 <= 200) + Opacity = 255 - (int)((ctエントリーバー決定点滅.n現在の値 - 100) * 2.55f); + else if (ctエントリーバー決定点滅.n現在の値 <= 300) + Opacity = (int)((ctエントリーバー決定点滅.n現在の値 - 200) * 2.55f); + else if (ctエントリーバー決定点滅.n現在の値 <= 400) + Opacity = 255 - (int)((ctエントリーバー決定点滅.n現在の値 - 300) * 2.55f); + else if (ctエントリーバー決定点滅.n現在の値 <= 500) + Opacity = (int)((ctエントリーバー決定点滅.n現在の値 - 400) * 2.55f); + else if (ctエントリーバー決定点滅.n現在の値 <= 600) + Opacity = 255 - (int)((ctエントリーバー決定点滅.n現在の値 - 500) * 2.55f); + + #endregion + + TJAPlayer3.Tx.Entry_Player[2].Opacity = Opacity; + TJAPlayer3.Tx.Entry_Player[2].t2D描画(TJAPlayer3.app.Device, ptプレイヤーエントリーバー座標[n現在の選択行プレイヤーエントリー].X, ptプレイヤーエントリーバー座標[n現在の選択行プレイヤーエントリー].Y, + new RectangleF(n現在の選択行プレイヤーエントリー == 1 ? 199 : 0, 92 * 2, n現在の選択行プレイヤーエントリー == 1 ? 224 : 199, 92)); + + TJAPlayer3.NamePlate.tNamePlateDraw(530, 385, 0, true, ctエントリーバー決定点滅.n現在の値 >= 800 ? 255 - (ctエントリーバー決定点滅.n現在の値 - 800) : (this.ctバナパス読み込み成功.n現在の値 - 3400)); + } + + #endregion + + #region [ モード選択 ] + + if (bモード選択) + { + this.ctBarAnimeIn.t進行(); + + #region [ どんちゃん描画 ] + + float DonchanX = 0f, DonchanY = 0f; + + DonchanX = (float)Math.Sin(ctどんちゃんイン.n現在の値 / 2 * (Math.PI / 180)) * 200f; + DonchanY = ( (float)Math.Sin((90 + (ctどんちゃんイン.n現在の値 / 2)) * (Math.PI / 180)) * 150f); + + TJAPlayer3.Tx.Entry_Donchan_Normal[ctどんちゃんループ.n現在の値].t2D描画(TJAPlayer3.app.Device, -200 + DonchanX, 341 - DonchanY); + + #endregion + + if(ctBarAnimeIn.n現在の値 >= (int)(16 * 16.6f)) + { + TJAPlayer3.act文字コンソール.tPrint(0, 0, C文字コンソール.Eフォント種別.白, ctBarMove.n現在の値.ToString()); + + for (int i = 0; i < this.nbModes; i++) + { + if(this.stModeBar[i].n現在存在している行 == 1 && ctBarMove.n現在の値 >= 150) + { + int BarAnime = ctBarAnimeIn.n現在の値 >= (int)(26 * 16.6f) + 100 ? 0 : ctBarAnimeIn.n現在の値 >= (int)(26 * 16.6f) && ctBarAnimeIn.n現在の値 <= (int)(26 * 16.6f) + 100 ? 40 + (int)((ctBarAnimeIn.n現在の値 - (26 * 16.6)) / 100f * 71f) : ctBarAnimeIn.n現在の値 < (int)(26 * 16.6f) ? 40 : 111; + int BarAnime1 = BarAnime == 0 ? ctBarMove.n現在の値 >= 150 ? 40 + (int)((ctBarMove.n現在の値 - 150) / 100f * 71f) : ctBarMove.n現在の値 < 150 ? 40 : 111 : 0; + + this.stModeBar[i].BarTexture.Opacity = (int)((ctBarAnimeIn.n現在の値 - (16 * 16.6f)) * 1.23f); + + this.stModeBar[i].BarTexture.vc拡大縮小倍率.Y = 1.0f; + this.stModeBar[i].BarTexture.t2D描画(TJAPlayer3.app.Device, 320, 347 - BarAnime - BarAnime1, new Rectangle(0, 0, 641, 27)); + this.stModeBar[i].BarTexture.t2D描画(TJAPlayer3.app.Device, 320, 346 + BarAnime + BarAnime1, new Rectangle(0, 76, 641, 30)); + + this.stModeBar[i].BarTexture.vc拡大縮小倍率.Y = BarAnime / 25.7f + BarAnime1 / 25.7f; + this.stModeBar[i].BarTexture.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 640, 360, new Rectangle(0, 27, 641, 45)); + + TJAPlayer3.Tx.ModeSelect_Bar[this.nbModes].vc拡大縮小倍率.Y = 1.0f; + TJAPlayer3.Tx.ModeSelect_Bar[this.nbModes].t2D描画(TJAPlayer3.app.Device, 320, 306, new Rectangle(0, 0, 641, 27)); + TJAPlayer3.Tx.ModeSelect_Bar[this.nbModes].t2D描画(TJAPlayer3.app.Device, 320, 334 + (BarAnime + BarAnime1) / 0.95238f, new Rectangle(0, 71, 641, 35)); + + TJAPlayer3.Tx.ModeSelect_Bar[this.nbModes].vc拡大縮小倍率.Y = (BarAnime + BarAnime1) / 0.95238f; + TJAPlayer3.Tx.ModeSelect_Bar[this.nbModes].t2D拡大率考慮上中央基準描画(TJAPlayer3.app.Device, 640, 333, new Rectangle(0, 27, 641, 1)); + + float anime = 0; + float BarAnimeCount = this.ctBarMove.n現在の値 - 150; + + if (BarAnimeCount <= 45) + anime = BarAnimeCount * 3.333333333f; + else + anime = 150 - (BarAnimeCount - 45) * 0.61764705f; + + TJAPlayer3.Tx.ModeSelect_Bar_Chara[i].Opacity = (int)(BarAnimeCount * 2.55f) + (int)(BarAnime * 2.5f); + //130 + TJAPlayer3.Tx.ModeSelect_Bar_Chara[i].t2D中心基準描画(TJAPlayer3.app.Device, 640 - TJAPlayer3.Tx.ModeSelect_Bar_Chara[i].szテクスチャサイズ.Width / 4 + 114 - anime, 360, + new Rectangle(0, 0, TJAPlayer3.Tx.ModeSelect_Bar_Chara[i].szテクスチャサイズ.Width / 2, TJAPlayer3.Tx.ModeSelect_Bar_Chara[i].szテクスチャサイズ.Height)); + + TJAPlayer3.Tx.ModeSelect_Bar_Chara[i].t2D中心基準描画(TJAPlayer3.app.Device, 640 + TJAPlayer3.Tx.ModeSelect_Bar_Chara[i].szテクスチャサイズ.Width / 4 - 114 + anime, 360, + new Rectangle(TJAPlayer3.Tx.ModeSelect_Bar_Chara[i].szテクスチャサイズ.Width / 2, 0, TJAPlayer3.Tx.ModeSelect_Bar_Chara[i].szテクスチャサイズ.Width / 2, TJAPlayer3.Tx.ModeSelect_Bar_Chara[i].szテクスチャサイズ.Height)); + + TJAPlayer3.Tx.ModeSelect_Bar_Text[i].Opacity = 255; + TJAPlayer3.Tx.ModeSelect_Bar_Text[i]?.t2D中心基準描画(TJAPlayer3.app.Device, 640, 355 - BarAnimeCount / 1.5f, new Rectangle(0, 0, 642, 122)); + + TJAPlayer3.Tx.ModeSelect_Bar_Text[i].Opacity = (int)(BarAnimeCount * 2.55f); + TJAPlayer3.Tx.ModeSelect_Bar_Text[i]?.t2D中心基準描画(TJAPlayer3.app.Device, 640, 355 + 132 / 2, new Rectangle(0, 122, 642, 148)); + + } + else if (this.stModeBar[i].n現在存在している行 <= 2) + { + int BarAnimeY = ctBarAnimeIn.n現在の値 >= (int)(26 * 16.6f) + 100 && ctBarAnimeIn.n現在の値 <= (int)(26 * 16.6f) + 299 ? 600 - (ctBarAnimeIn.n現在の値 - (int)(26 * 16.6f + 100)) * 3 : ctBarAnimeIn.n現在の値 >= (int)(26 * 16.6f) + 100 ? 0 : 600; + int BarAnimeX = ctBarAnimeIn.n現在の値 >= (int)(26 * 16.6f) + 100 && ctBarAnimeIn.n現在の値 <= (int)(26 * 16.6f) + 299 ? 100 - (int)((ctBarAnimeIn.n現在の値 - (int)(26 * 16.6f + 100)) * 0.5f) : ctBarAnimeIn.n現在の値 >= (int)(26 * 16.6f) + 100 ? 0 : 100; + + int BarMoveX = 0; + int BarMoveY = 0; + + if (this.stModeBar[i].n現在存在している行 - n現在の選択行モード選択 != 0) + { + if (this.stModeBar[i].n現在存在している行 - this.n現在の選択行モード選択 != this.nbModes) + { + BarMoveX = ctBarMove.n現在の値 <= 100 ? (int)(this.ptモード選択バー座標[this.stModeBar[i].n現在存在している行].X - this.ptモード選択バー座標[this.n現在の選択行モード選択].X) - (int)(ctBarMove.n現在の値 / 100f * (this.ptモード選択バー座標[this.stModeBar[i].n現在存在している行].X - this.ptモード選択バー座標[this.n現在の選択行モード選択].X)) : 0; + BarMoveY = ctBarMove.n現在の値 <= 100 ? (int)(this.ptモード選択バー座標[this.stModeBar[i].n現在存在している行].Y - this.ptモード選択バー座標[this.n現在の選択行モード選択].Y) - (int)(ctBarMove.n現在の値 / 100f * (this.ptモード選択バー座標[this.stModeBar[i].n現在存在している行].Y - this.ptモード選択バー座標[this.n現在の選択行モード選択].Y)) : 0; + } + else + { + BarMoveX = ctBarMove.n現在の値 <= 100 ? (int)(this.ptモード選択バー座標[this.stModeBar[i].n現在存在している行].X - this.ptモード選択バー座標[this.n現在の選択行モード選択 + 1].X) - (int)(ctBarMove.n現在の値 / 100f * (this.ptモード選択バー座標[this.stModeBar[i].n現在存在している行].X - this.ptモード選択バー座標[this.n現在の選択行モード選択 + 1].X)) : 0; + BarMoveY = ctBarMove.n現在の値 <= 100 ? (int)(this.ptモード選択バー座標[this.stModeBar[i].n現在存在している行].Y - this.ptモード選択バー座標[this.n現在の選択行モード選択 + 1].Y) - (int)(ctBarMove.n現在の値 / 100f * (this.ptモード選択バー座標[this.stModeBar[i].n現在存在している行].Y - this.ptモード選択バー座標[this.n現在の選択行モード選択 + 1].Y)) : 0; + } + } + else + { + BarMoveX = ctBarMove.n現在の値 <= 100 ? (int)(this.ptモード選択バー座標[this.stModeBar[i].n現在存在している行 - 1].X - this.ptモード選択バー座標[this.n現在の選択行モード選択].X) - (int)(ctBarMove.n現在の値 / 100f * (this.ptモード選択バー座標[this.stModeBar[i].n現在存在している行 - 1].X - this.ptモード選択バー座標[this.n現在の選択行モード選択].X)) : 0; + BarMoveY = ctBarMove.n現在の値 <= 100 ? (int)(this.ptモード選択バー座標[this.stModeBar[i].n現在存在している行 - 1].Y - this.ptモード選択バー座標[this.n現在の選択行モード選択].Y) - (int)(ctBarMove.n現在の値 / 100f * (this.ptモード選択バー座標[this.stModeBar[i].n現在存在している行 - 1].Y - this.ptモード選択バー座標[this.n現在の選択行モード選択].Y)) : 0; + } + + this.stModeBar[i].BarTexture.vc拡大縮小倍率.Y = 1.0f; + TJAPlayer3.Tx.ModeSelect_Bar[this.nbModes].vc拡大縮小倍率.Y = 1.0f; + this.stModeBar[i].BarTexture.t2D描画(TJAPlayer3.app.Device, this.ptモード選択バー座標[stModeBar[i].n現在存在している行].X + BarAnimeX - BarMoveX, this.ptモード選択バー座標[stModeBar[i].n現在存在している行].Y + BarAnimeY - BarMoveY); + TJAPlayer3.Tx.ModeSelect_Bar[this.nbModes].t2D描画(TJAPlayer3.app.Device, this.ptモード選択バー座標[stModeBar[i].n現在存在している行].X + BarAnimeX - BarMoveX, this.ptモード選択バー座標[stModeBar[i].n現在存在している行].Y + BarAnimeY - BarMoveY); + TJAPlayer3.Tx.ModeSelect_Bar_Text[i]?.t2D描画(TJAPlayer3.app.Device, this.ptモード選択バー座標[stModeBar[i].n現在存在している行].X + BarAnimeX - BarMoveX, this.ptモード選択バー座標[stModeBar[i].n現在存在している行].Y + BarAnimeY - BarMoveY - 13, new Rectangle(0, 0, 642, 122)); + } + } + } + + TJAPlayer3.NamePlate.tNamePlateDraw(TJAPlayer3.Skin.SongSelect_NamePlate_X[0], TJAPlayer3.Skin.SongSelect_NamePlate_Y[0], 0, false, 255); + } + + #endregion + + #region[ バージョン表示 ] + +#if DEBUG + + //string strVersion = "KTT:J:A:I:2017072200"; + string strCreator = "https://github.com/AioiLight/TJAPlayer3"; + AssemblyName asmApp = Assembly.GetExecutingAssembly().GetName(); + TJAPlayer3.act文字コンソール.tPrint(4, 44, C文字コンソール.Eフォント種別.白, "DEBUG BUILD"); + TJAPlayer3.act文字コンソール.tPrint(4, 4, C文字コンソール.Eフォント種別.白, asmApp.Name + " Ver." + TJAPlayer3.VERSION + " (" + strCreator + ")" ); + TJAPlayer3.act文字コンソール.tPrint(4, 24, C文字コンソール.Eフォント種別.白, "Skin:" + TJAPlayer3.Skin.Skin_Name + " Ver." + TJAPlayer3.Skin.Skin_Version + " (" + TJAPlayer3.Skin.Skin_Creator + ")"); + //CDTXMania.act文字コンソール.tPrint(4, 24, C文字コンソール.Eフォント種別.白, strSubTitle); + TJAPlayer3.act文字コンソール.tPrint(4, (720 - 24), C文字コンソール.Eフォント種別.白, "TJAPlayer3 forked TJAPlayer2 forPC(kairera0467)"); + +#endif + #endregion + + CStage.Eフェーズ eフェーズid = base.eフェーズID; + switch( eフェーズid ) + { + case CStage.Eフェーズ.共通_フェードイン: + if( this.actFI.On進行描画() != 0 ) + { + base.eフェーズID = CStage.Eフェーズ.共通_通常状態; + } + break; + + case CStage.Eフェーズ.共通_フェードアウト: + if( this.actFO.On進行描画() == 0 ) + { + TJAPlayer3.Skin.bgmタイトル.t停止する(); + TJAPlayer3.Skin.bgmタイトルイン.t停止する(); + break; + } + base.eフェーズID = CStage.Eフェーズ.共通_終了状態; + + switch ( this.n現在の選択行モード選択) + { + case (int)E戻り値.GAMESTART - 1: + return (int)E戻り値.GAMESTART; + + case (int)E戻り値.DANGAMESTART - 1: + return (int)E戻り値.DANGAMESTART; + + case (int)E戻り値.TAIKOTOWERSSTART - 1: + return (int)E戻り値.TAIKOTOWERSSTART; + + case (int)E戻り値.SHOPSTART - 1: + return (int)E戻り値.SHOPSTART; + + case (int)E戻り値.BOUKENSTART - 1: + return (int)E戻り値.BOUKENSTART; + + case (int) E戻り値.CONFIG - 1: + return (int) E戻り値.CONFIG; + + case (int)E戻り値.EXIT - 1: + return (int) E戻り値.EXIT; + } + break; + + case CStage.Eフェーズ.タイトル_起動画面からのフェードイン: + if( this.actFIfromSetup.On進行描画() != 0 ) + { + base.eフェーズID = CStage.Eフェーズ.共通_通常状態; + } + break; + } + } + return 0; + } + public enum E戻り値 + { + 継続 = 0, + GAMESTART, + DANGAMESTART, + TAIKOTOWERSSTART, + SHOPSTART, + BOUKENSTART, + CONFIG, + EXIT + } + + + // その他 + + #region [ private ] + //----------------- + private CCounter ctコインイン待機; + + private CCounter ctバナパス読み込み待機; + + private CCounter ctバナパス読み込み成功; + private CCounter ctバナパス読み込み失敗; + + private CCounter ctエントリーバー点滅; + private CCounter ctエントリーバー決定点滅; + + private CCounter ctどんちゃんエントリーループ; + private CCounter ctどんちゃんイン; + private CCounter ctどんちゃんループ; + + private CCounter ctBarAnimeIn; + private CCounter ctBarMove; + + + + private bool bバナパス読み込み; + private bool bバナパス読み込み失敗; + private bool bプレイヤーエントリー; + private bool bプレイヤーエントリー決定; + private bool bモード選択; + private bool bどんちゃんカウンター初期化; + + private int n現在の選択行プレイヤーエントリー; + private int n現在の選択行モード選択; + + private Point[] ptプレイヤーエントリーバー座標 = + { new Point(337, 488), new Point( 529, 487), new Point(743, 486) }; + + //private Point[] ptモード選択バー座標 = + // { new Point(290, 107), new Point(319, 306), new Point(356, 513), new Point(385, 712), new Point(414, 911), new Point(443, 1110), new Point(472, 1309) }; + + + private Point[] ptモード選択バー座標 = + { new Point(290, 107), new Point(319, 306), new Point(356, 513), new Point(385, 712), new Point(385, 712), new Point(385, 712), new Point(385, 712) }; + + private int nbModes = 6; + private STModeBar[] stModeBar = new STModeBar[6]; + + private struct STModeBar + { + public int n現在存在している行; + public CTexture BarTexture; + } + + private bool b音声再生; + private CActFIFOBlack actFI; + private CActFIFOBlack actFIfromSetup; + private CActFIFOBlack actFO; + //----------------- + #endregion + } +} diff --git a/TJAPlayer3/Stages/04.Config/CActConfigKeyAssign.cs b/TJAPlayer3/Stages/04.Config/CActConfigKeyAssign.cs new file mode 100644 index 00000000..05ebb023 --- /dev/null +++ b/TJAPlayer3/Stages/04.Config/CActConfigKeyAssign.cs @@ -0,0 +1,396 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Runtime.InteropServices; +using System.Drawing; +using FDK; + +namespace TJAPlayer3 +{ + internal class CActConfigKeyAssign : CActivity + { + // プロパティ + + public bool bキー入力待ちの最中である + { + get + { + return this.bキー入力待ち; + } + } + + + // メソッド + + public void t開始( EKeyConfigPart part, EKeyConfigPad pad, string strパッド名 ) + { + if( part != EKeyConfigPart.UNKNOWN ) + { + this.part = part; + this.pad = pad; + this.strパッド名 = strパッド名; + for( int i = 0; i < 0x10; i++ ) + { + this.structReset用KeyAssign[ i ].入力デバイス = TJAPlayer3.ConfigIni.KeyAssign[ (int) part ][ (int) pad ][ i ].入力デバイス; + this.structReset用KeyAssign[ i ].ID = TJAPlayer3.ConfigIni.KeyAssign[ (int) part ][ (int) pad ][ i ].ID; + this.structReset用KeyAssign[ i ].コード = TJAPlayer3.ConfigIni.KeyAssign[ (int) part ][ (int) pad ][ i ].コード; + } + } + } + + public void tEnter押下() + { + if( !this.bキー入力待ち ) + { + TJAPlayer3.Skin.sound決定音.t再生する(); + switch( this.n現在の選択行 ) + { + case 0x10: + for( int i = 0; i < 0x10; i++ ) + { + TJAPlayer3.ConfigIni.KeyAssign[ (int) this.part ][ (int) this.pad ][ i ].入力デバイス = this.structReset用KeyAssign[ i ].入力デバイス; + TJAPlayer3.ConfigIni.KeyAssign[ (int) this.part ][ (int) this.pad ][ i ].ID = this.structReset用KeyAssign[ i ].ID; + TJAPlayer3.ConfigIni.KeyAssign[ (int) this.part ][ (int) this.pad ][ i ].コード = this.structReset用KeyAssign[ i ].コード; + } + return; + + case 0x11: + TJAPlayer3.stageコンフィグ.tアサイン完了通知(); + return; + } + this.bキー入力待ち = true; + } + } + public void t次に移動() + { + if( !this.bキー入力待ち ) + { + TJAPlayer3.Skin.soundカーソル移動音.t再生する(); + this.n現在の選択行 = ( this.n現在の選択行 + 1 ) % 0x12; + } + } + public void t前に移動() + { + if( !this.bキー入力待ち ) + { + TJAPlayer3.Skin.soundカーソル移動音.t再生する(); + this.n現在の選択行 = ( ( this.n現在の選択行 - 1 ) + 0x12 ) % 0x12; + } + } + + + // CActivity 実装 + + public override void On活性化() + { + this.part = EKeyConfigPart.UNKNOWN; + this.pad = EKeyConfigPad.UNKNOWN; + this.strパッド名 = ""; + this.n現在の選択行 = 0; + this.bキー入力待ち = false; + this.structReset用KeyAssign = new CConfigIni.CKeyAssign.STKEYASSIGN[ 0x10 ]; + base.On活性化(); + } + public override void On非活性化() + { + if( !base.b活性化してない ) + { + //CDTXMania.tテクスチャの解放( ref this.txカーソル ); + //CDTXMania.tテクスチャの解放( ref this.txHitKeyダイアログ ); + base.On非活性化(); + } + } + public override void OnManagedリソースの作成() + { + if( !base.b活性化してない ) + { + //this.txカーソル = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenConfig menu cursor.png" ), false ); + //this.txHitKeyダイアログ = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenConfig hit key to assign dialog.png" ), false ); + base.OnManagedリソースの作成(); + } + } + public override int On進行描画() + { + if( !base.b活性化してない ) + { + if( this.bキー入力待ち ) + { + if( TJAPlayer3.Input管理.Keyboard.bキーが押された( (int)SlimDXKeys.Key.Escape ) ) + { + TJAPlayer3.Skin.sound取消音.t再生する(); + this.bキー入力待ち = false; + TJAPlayer3.Input管理.tポーリング( TJAPlayer3.app.bApplicationActive, false ); + } + else if( ( this.tキーチェックとアサイン_Keyboard() || this.tキーチェックとアサイン_MidiIn() ) || ( this.tキーチェックとアサイン_Joypad() || this.tキーチェックとアサイン_Mouse() ) ) + { + this.bキー入力待ち = false; + TJAPlayer3.Input管理.tポーリング( TJAPlayer3.app.bApplicationActive, false ); + } + } + else if( ( TJAPlayer3.Input管理.Keyboard.bキーが押された( (int)SlimDXKeys.Key.Delete ) && ( this.n現在の選択行 >= 0 ) ) && ( this.n現在の選択行 <= 15 ) ) + { + TJAPlayer3.Skin.sound決定音.t再生する(); + TJAPlayer3.ConfigIni.KeyAssign[ (int) this.part ][ (int) this.pad ][ this.n現在の選択行 ].入力デバイス = E入力デバイス.不明; + TJAPlayer3.ConfigIni.KeyAssign[ (int) this.part ][ (int) this.pad ][ this.n現在の選択行 ].ID = 0; + TJAPlayer3.ConfigIni.KeyAssign[ (int) this.part ][ (int) this.pad ][ this.n現在の選択行 ].コード = 0; + } + if(TJAPlayer3.Tx.Menu_Highlight != null ) + { + int num = 20; + int num2 = 0x144; + int num3 = 0x3e + ( num * ( this.n現在の選択行 + 1 ) ); + TJAPlayer3.Tx.Menu_Highlight.t2D描画( TJAPlayer3.app.Device, num2, num3, new Rectangle( 0, 0, 0x10, 0x20 ) ); + num2 += 0x10; + Rectangle rectangle = new Rectangle( 8, 0, 0x10, 0x20 ); + for( int j = 0; j < 14; j++ ) + { + TJAPlayer3.Tx.Menu_Highlight.t2D描画( TJAPlayer3.app.Device, num2, num3, rectangle ); + num2 += 0x10; + } + TJAPlayer3.Tx.Menu_Highlight.t2D描画( TJAPlayer3.app.Device, num2, num3, new Rectangle( 0x10, 0, 0x10, 0x20 ) ); + } + int num5 = 20; + int x = 0x134; + int y = 0x40; + TJAPlayer3.stageコンフィグ.actFont.t文字列描画( x, y, this.strパッド名, false, 0.75f ); + y += num5; + CConfigIni.CKeyAssign.STKEYASSIGN[] stkeyassignArray = TJAPlayer3.ConfigIni.KeyAssign[ (int) this.part ][ (int) this.pad ]; + for( int i = 0; i < 0x10; i++ ) + { + switch( stkeyassignArray[ i ].入力デバイス ) + { + case E入力デバイス.キーボード: + this.tアサインコードの描画_Keyboard( i + 1, x + 20, y, stkeyassignArray[ i ].ID, stkeyassignArray[ i ].コード, this.n現在の選択行 == i ); + break; + + case E入力デバイス.MIDI入力: + this.tアサインコードの描画_MidiIn( i + 1, x + 20, y, stkeyassignArray[ i ].ID, stkeyassignArray[ i ].コード, this.n現在の選択行 == i ); + break; + + case E入力デバイス.ジョイパッド: + this.tアサインコードの描画_Joypad( i + 1, x + 20, y, stkeyassignArray[ i ].ID, stkeyassignArray[ i ].コード, this.n現在の選択行 == i ); + break; + + case E入力デバイス.マウス: + this.tアサインコードの描画_Mouse( i + 1, x + 20, y, stkeyassignArray[ i ].ID, stkeyassignArray[ i ].コード, this.n現在の選択行 == i ); + break; + + default: + TJAPlayer3.stageコンフィグ.actFont.t文字列描画( x + 20, y, string.Format( "{0,2}.", i + 1 ), this.n現在の選択行 == i, 0.75f ); + break; + } + y += num5; + } + TJAPlayer3.stageコンフィグ.actFont.t文字列描画( x + 20, y, "Reset", this.n現在の選択行 == 0x10, 0.75f ); + y += num5; + TJAPlayer3.stageコンフィグ.actFont.t文字列描画( x + 20, y, "<< Returnto List", this.n現在の選択行 == 0x11, 0.75f ); + y += num5; + if( this.bキー入力待ち && ( TJAPlayer3.Tx.Config_KeyAssign != null ) ) + { + TJAPlayer3.Tx.Config_KeyAssign.t2D描画( TJAPlayer3.app.Device, 0x185, 0xd7 ); + } + } + return 0; + } + + + // その他 + + #region [ private ] + //----------------- + [StructLayout( LayoutKind.Sequential )] + private struct STKEYLABEL + { + public int nCode; + public string strLabel; + public STKEYLABEL( int nCode, string strLabel ) + { + this.nCode = nCode; + this.strLabel = strLabel; + } + } + + private bool bキー入力待ち; + private STKEYLABEL[] KeyLabel = new STKEYLABEL[] { + new STKEYLABEL(0x35, "[ESC]"), new STKEYLABEL(1, "[ 1 ]"), new STKEYLABEL(2, "[ 2 ]"), new STKEYLABEL(3, "[ 3 ]"), new STKEYLABEL(4, "[ 4 ]"), new STKEYLABEL(5, "[ 5 ]"), new STKEYLABEL(6, "[ 6 ]"), new STKEYLABEL(7, "[ 7 ]"), new STKEYLABEL(8, "[ 8 ]"), new STKEYLABEL(9, "[ 9 ]"), new STKEYLABEL(0, "[ 0 ]"), new STKEYLABEL(0x53, "[ - ]"), new STKEYLABEL(0x34, "[ = ]"), new STKEYLABEL(0x2a, "[BSC]"), new STKEYLABEL(0x81, "[TAB]"), new STKEYLABEL(0x1a, "[ Q ]"), + new STKEYLABEL(0x20, "[ W ]"), new STKEYLABEL(14, "[ E ]"), new STKEYLABEL(0x1b, "[ R ]"), new STKEYLABEL(0x1d, "[ T ]"), new STKEYLABEL(0x22, "[ Y ]"), new STKEYLABEL(30, "[ U ]"), new STKEYLABEL(0x12, "[ I ]"), new STKEYLABEL(0x18, "[ O ]"), new STKEYLABEL(0x19, "[ P ]"), new STKEYLABEL(0x4a, "[ [ ]"), new STKEYLABEL(0x73, "[ ] ]"), new STKEYLABEL(0x75, "[Enter]"), new STKEYLABEL(0x4b, "[L-Ctrl]"), new STKEYLABEL(10, "[ A ]"), new STKEYLABEL(0x1c, "[ S ]"), new STKEYLABEL(13, "[ D ]"), + new STKEYLABEL(15, "[ F ]"), new STKEYLABEL(0x10, "[ G ]"), new STKEYLABEL(0x11, "[ H ]"), new STKEYLABEL(0x13, "[ J ]"), new STKEYLABEL(20, "[ K ]"), new STKEYLABEL(0x15, "[ L ]"), new STKEYLABEL(0x7b, "[ ; ]"), new STKEYLABEL(0x26, "[ ' ]"), new STKEYLABEL(0x45, "[ ` ]"), new STKEYLABEL(0x4e, "[L-Shift]"), new STKEYLABEL(0x2b, @"[ \]"), new STKEYLABEL(0x23, "[ Z ]"), new STKEYLABEL(0x21, "[ X ]"), new STKEYLABEL(12, "[ C ]"), new STKEYLABEL(0x1f, "[ V ]"), new STKEYLABEL(11, "[ B ]"), + new STKEYLABEL(0x17, "[ N ]"), new STKEYLABEL(0x16, "[ M ]"), new STKEYLABEL(0x2f, "[ , ]"), new STKEYLABEL(0x6f, "[ . ]"), new STKEYLABEL(0x7c, "[ / ]"), new STKEYLABEL(120, "[R-Shift]"), new STKEYLABEL(0x6a, "[ * ]"), new STKEYLABEL(0x4d, "[L-Alt]"), new STKEYLABEL(0x7e, "[Space]"), new STKEYLABEL(0x2d, "[CAPS]"), new STKEYLABEL(0x36, "[F1]"), new STKEYLABEL(0x37, "[F2]"), new STKEYLABEL(0x38, "[F3]"), new STKEYLABEL(0x39, "[F4]"), new STKEYLABEL(0x3a, "[F5]"), new STKEYLABEL(0x3b, "[F6]"), + new STKEYLABEL(60, "[F7]"), new STKEYLABEL(0x3d, "[F8]"), new STKEYLABEL(0x3e, "[F9]"), new STKEYLABEL(0x3f, "[F10]"), new STKEYLABEL(0x58, "[NumLock]"), new STKEYLABEL(0x7a, "[Scroll]"), new STKEYLABEL(0x60, "[NPad7]"), new STKEYLABEL(0x61, "[NPad8]"), new STKEYLABEL(0x62, "[NPad9]"), new STKEYLABEL(0x66, "[NPad-]"), new STKEYLABEL(0x5d, "[NPad4]"), new STKEYLABEL(0x5e, "[NPad5]"), new STKEYLABEL(0x5f, "[NPad6]"), new STKEYLABEL(0x68, "[NPad+]"), new STKEYLABEL(90, "[NPad1]"), new STKEYLABEL(0x5b, "[NPad2]"), + new STKEYLABEL(0x5c, "[NPad3]"), new STKEYLABEL(0x59, "[NPad0]"), new STKEYLABEL(0x67, "[NPad.]"), new STKEYLABEL(0x40, "[F11]"), new STKEYLABEL(0x41, "[F12]"), new STKEYLABEL(0x42, "[F13]"), new STKEYLABEL(0x43, "[F14]"), new STKEYLABEL(0x44, "[F15]"), new STKEYLABEL(0x48, "[Kana]"), new STKEYLABEL(0x24, "[ ? ]"), new STKEYLABEL(0x30, "[Henkan]"), new STKEYLABEL(0x57, "[MuHenkan]"), new STKEYLABEL(0x8f, @"[ \ ]"), new STKEYLABEL(0x25, "[NPad.]"), new STKEYLABEL(0x65, "[NPad=]"), new STKEYLABEL(0x72, "[ ^ ]"), + new STKEYLABEL(40, "[ @ ]"), new STKEYLABEL(0x2e, "[ : ]"), new STKEYLABEL(130, "[ _ ]"), new STKEYLABEL(0x49, "[Kanji]"), new STKEYLABEL(0x7f, "[Stop]"), new STKEYLABEL(0x29, "[AX]"), new STKEYLABEL(100, "[NPEnter]"), new STKEYLABEL(0x74, "[R-Ctrl]"), new STKEYLABEL(0x54, "[Mute]"), new STKEYLABEL(0x2c, "[Calc]"), new STKEYLABEL(0x70, "[PlayPause]"), new STKEYLABEL(0x52, "[MediaStop]"), new STKEYLABEL(0x85, "[Volume-]"), new STKEYLABEL(0x86, "[Volume+]"), new STKEYLABEL(0x8b, "[WebHome]"), new STKEYLABEL(0x63, "[NPad,]"), + new STKEYLABEL(0x69, "[ / ]"), new STKEYLABEL(0x80, "[PrtScn]"), new STKEYLABEL(0x77, "[R-Alt]"), new STKEYLABEL(110, "[Pause]"), new STKEYLABEL(70, "[Home]"), new STKEYLABEL(0x84, "[Up]"), new STKEYLABEL(0x6d, "[PageUp]"), new STKEYLABEL(0x4c, "[Left]"), new STKEYLABEL(0x76, "[Right]"), new STKEYLABEL(0x33, "[End]"), new STKEYLABEL(50, "[Down]"), new STKEYLABEL(0x6c, "[PageDown]"), new STKEYLABEL(0x47, "[Insert]"), new STKEYLABEL(0x31, "[Delete]"), new STKEYLABEL(0x4f, "[L-Win]"), new STKEYLABEL(0x79, "[R-Win]"), + new STKEYLABEL(0x27, "[APP]"), new STKEYLABEL(0x71, "[Power]"), new STKEYLABEL(0x7d, "[Sleep]"), new STKEYLABEL(0x87, "[Wake]") + }; + private int n現在の選択行; + private EKeyConfigPad pad; + private EKeyConfigPart part; + private CConfigIni.CKeyAssign.STKEYASSIGN[] structReset用KeyAssign; + private string strパッド名; + //private CTexture txHitKeyダイアログ; + //private CTexture txカーソル; + + private void tアサインコードの描画_Joypad( int line, int x, int y, int nID, int nCode, bool b強調 ) + { + string str = ""; + switch( nCode ) + { + case 0: + str = "Left"; + break; + + case 1: + str = "Right"; + break; + + case 2: + str = "Up"; + break; + + case 3: + str = "Down"; + break; + + case 4: + str = "Forward"; + break; + + case 5: + str = "Back"; + break; + + case 6: + str = "CCW"; + break; + + case 7: + str = "CW"; + break; + + default: + if ((8 <= nCode) && (nCode < 8 + 128)) // other buttons (128 types) + { + str = string.Format("Button{0}", nCode - 7); + } + else if ((8 + 128 <= nCode) && (nCode < 8 + 128 + 8)) // POV HAT ( 8 types; 45 degrees per HATs) + { + str = string.Format("POV {0}", (nCode - 8 - 128) * 45); + } + else + { + str = string.Format( "Code{0}", nCode ); + } + break; + } + TJAPlayer3.stageコンフィグ.actFont.t文字列描画( x, y, string.Format( "{0,2}. Joypad #{1} ", line, nID ) + str, b強調, 0.75f ); + } + private void tアサインコードの描画_Keyboard( int line, int x, int y, int nID, int nCode, bool b強調 ) + { + string str = null; + foreach( STKEYLABEL stkeylabel in this.KeyLabel ) + { + if( stkeylabel.nCode == nCode ) + { + str = string.Format( "{0,2}. Key {1}", line, stkeylabel.strLabel ); + break; + } + } + if( str == null ) + { + str = string.Format( "{0,2}. Key 0x{1:X2}", line, nCode ); + } + TJAPlayer3.stageコンフィグ.actFont.t文字列描画( x, y, str, b強調, 0.75f ); + } + private void tアサインコードの描画_MidiIn( int line, int x, int y, int nID, int nCode, bool b強調 ) + { + TJAPlayer3.stageコンフィグ.actFont.t文字列描画( x, y, string.Format( "{0,2}. MidiIn #{1} code.{2}", line, nID, nCode ), b強調, 0.75f ); + } + private void tアサインコードの描画_Mouse( int line, int x, int y, int nID, int nCode, bool b強調 ) + { + TJAPlayer3.stageコンフィグ.actFont.t文字列描画( x, y, string.Format( "{0,2}. Mouse Button{1}", line, nCode ), b強調, 0.75f ); + } + private bool tキーチェックとアサイン_Joypad() + { + foreach( IInputDevice device in TJAPlayer3.Input管理.list入力デバイス ) + { + if( device.e入力デバイス種別 == E入力デバイス種別.Joystick ) + { + for (int i = 0; i < 8 + 0x80 + 8; i++) // +8 for Axis, +8 for HAT + { + if (device.bキーが押された(i)) + { + TJAPlayer3.Skin.sound決定音.t再生する(); + TJAPlayer3.ConfigIni.t指定した入力が既にアサイン済みである場合はそれを全削除する( E入力デバイス.ジョイパッド, device.ID, i ); + TJAPlayer3.ConfigIni.KeyAssign[ (int) this.part ][ (int) this.pad ][ this.n現在の選択行 ].入力デバイス = E入力デバイス.ジョイパッド; + TJAPlayer3.ConfigIni.KeyAssign[ (int) this.part ][ (int) this.pad ][ this.n現在の選択行 ].ID = device.ID; + TJAPlayer3.ConfigIni.KeyAssign[ (int) this.part ][ (int) this.pad ][ this.n現在の選択行 ].コード = i; + return true; + } + } + } + } + return false; + } + private bool tキーチェックとアサイン_Keyboard() + { + for( int i = 0; i < 0x100; i++ ) + { + if (i != (int)SlimDXKeys.Key.Escape && + i != (int)SlimDXKeys.Key.Return && + i != (int)SlimDXKeys.Key.UpArrow && + i != (int)SlimDXKeys.Key.DownArrow && + i != (int)SlimDXKeys.Key.LeftArrow && + i != (int)SlimDXKeys.Key.RightArrow && + i != (int)SlimDXKeys.Key.Delete && + TJAPlayer3.Input管理.Keyboard.bキーが押された( i ) ) + { + TJAPlayer3.Skin.sound決定音.t再生する(); + TJAPlayer3.ConfigIni.t指定した入力が既にアサイン済みである場合はそれを全削除する( E入力デバイス.キーボード, 0, i ); + TJAPlayer3.ConfigIni.KeyAssign[ (int) this.part ][ (int) this.pad ][ this.n現在の選択行 ].入力デバイス = E入力デバイス.キーボード; + TJAPlayer3.ConfigIni.KeyAssign[ (int) this.part ][ (int) this.pad ][ this.n現在の選択行 ].ID = 0; + TJAPlayer3.ConfigIni.KeyAssign[ (int) this.part ][ (int) this.pad ][ this.n現在の選択行 ].コード = i; + return true; + } + } + return false; + } + private bool tキーチェックとアサイン_MidiIn() + { + foreach( IInputDevice device in TJAPlayer3.Input管理.list入力デバイス ) + { + if( device.e入力デバイス種別 == E入力デバイス種別.MidiIn ) + { + for( int i = 0; i < 0x100; i++ ) + { + if( device.bキーが押された( i ) ) + { + TJAPlayer3.Skin.sound決定音.t再生する(); + TJAPlayer3.ConfigIni.t指定した入力が既にアサイン済みである場合はそれを全削除する( E入力デバイス.MIDI入力, device.ID, i ); + TJAPlayer3.ConfigIni.KeyAssign[ (int) this.part ][ (int) this.pad ][ this.n現在の選択行 ].入力デバイス = E入力デバイス.MIDI入力; + TJAPlayer3.ConfigIni.KeyAssign[ (int) this.part ][ (int) this.pad ][ this.n現在の選択行 ].ID = device.ID; + TJAPlayer3.ConfigIni.KeyAssign[ (int) this.part ][ (int) this.pad ][ this.n現在の選択行 ].コード = i; + return true; + } + } + } + } + return false; + } + private bool tキーチェックとアサイン_Mouse() + { + for( int i = 0; i < 8; i++ ) + { + if( TJAPlayer3.Input管理.Mouse.bキーが押された( i ) ) + { + TJAPlayer3.ConfigIni.t指定した入力が既にアサイン済みである場合はそれを全削除する( E入力デバイス.マウス, 0, i ); + TJAPlayer3.ConfigIni.KeyAssign[ (int) this.part ][ (int) this.pad ][ this.n現在の選択行 ].入力デバイス = E入力デバイス.マウス; + TJAPlayer3.ConfigIni.KeyAssign[ (int) this.part ][ (int) this.pad ][ this.n現在の選択行 ].ID = 0; + TJAPlayer3.ConfigIni.KeyAssign[ (int) this.part ][ (int) this.pad ][ this.n現在の選択行 ].コード = i; + } + } + return false; + } + //----------------- + #endregion + } +} diff --git a/TJAPlayer3/Stages/04.Config/CActConfigList.cs b/TJAPlayer3/Stages/04.Config/CActConfigList.cs new file mode 100644 index 00000000..657d02eb --- /dev/null +++ b/TJAPlayer3/Stages/04.Config/CActConfigList.cs @@ -0,0 +1,1773 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Text; +using System.Drawing; +using System.Threading; +using SlimDX; +using FDK; + +namespace TJAPlayer3 +{ + internal class CActConfigList : CActivity + { + // プロパティ + + public bool bIsKeyAssignSelected // #24525 2011.3.15 yyagi + { + get + { + Eメニュー種別 e = this.eメニュー種別; + if (e == Eメニュー種別.KeyAssignDrums || e == Eメニュー種別.KeyAssignSystem) + { + return true; + } + else + { + return false; + } + } + } + public bool bIsFocusingParameter // #32059 2013.9.17 yyagi + { + get + { + return b要素値にフォーカス中; + } + } + public bool b現在選択されている項目はReturnToMenuである + { + get + { + CItemBase currentItem = this.list項目リスト[ this.n現在の選択項目 ]; + if (currentItem == this.iSystemReturnToMenu || currentItem == this.iDrumsReturnToMenu) + { + return true; + } + else + { + return false; + } + } + } + public CItemBase ib現在の選択項目 + { + get + { + return this.list項目リスト[ this.n現在の選択項目 ]; + } + } + public int n現在の選択項目; + + + // メソッド + #region [ t項目リストの設定_System() ] + public void t項目リストの設定_System() + { + this.tConfigIniへ記録する(); + this.list項目リスト.Clear(); + + // #27029 2012.1.5 from: 説明文は最大9行→13行に変更。 + + this.iSystemReturnToMenu = new CItemBase( "<< ReturnTo Menu", CItemBase.Eパネル種別.その他, + "左側のメニューに戻ります。", + "Return to left menu." ); + this.list項目リスト.Add( this.iSystemReturnToMenu ); + + this.iSystemReloadDTX = new CItemBase( "曲データ再読込み", CItemBase.Eパネル種別.通常, + "曲データの一覧情報を取得し直します。", + "Reload song data." ); + this.list項目リスト.Add( this.iSystemReloadDTX ); + + //this.iCommonDark = new CItemList( "Dark", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eDark, + // "HALF: 背景、レーン、ゲージが表示\nされなくなります。\nFULL: さらに小節線、拍線、判定ラ\nイン、パッドも表示されなくなります。", + // "OFF: all display parts are shown.\nHALF: wallpaper, lanes and gauge are\n disappeared.\nFULL: additionaly to HALF, bar/beat\n lines, hit bar, pads are disappeared.", + // new string[] { "OFF", "HALF", "FULL" } ); + //this.list項目リスト.Add( this.iCommonDark ); + + this.iTaikoPlayerCount = new CItemInteger( "プレイ人数", 1, 2, TJAPlayer3.ConfigIni.nPlayerCount, + "プレイ人数切り替え:\n2にすると演奏画面が2人プレイ専用のレイアウトになり、2P専用譜面を読み込むようになります。", + "" ); + this.list項目リスト.Add( this.iTaikoPlayerCount ); + + this.iSystemRisky = new CItemInteger( "Risky", 0, 10, TJAPlayer3.ConfigIni.nRisky, + "Riskyモードの設定:\n1以上の値にすると、その回数分の\nPoor/MissでFAILEDとなります。\n0にすると無効になり、\nDamageLevelに従ったゲージ増減と\nなります。\nStageFailedの設定と併用できます。", + "Risky mode:\nSet over 1, in case you'd like to specify\n the number of Poor/Miss times to be\n FAILED.\nSet 0 to disable Risky mode." ); + this.list項目リスト.Add( this.iSystemRisky ); + + this.iCommonPlaySpeed = new CItemInteger("再生速度", 5, 400, TJAPlayer3.ConfigIni.n演奏速度, + "曲の演奏速度を、速くしたり遅くした\n" + + "りすることができます。\n" + + "(※一部のサウンドカードでは正しく\n" + + " 再生できない可能性があります。)\n" + + "\n" + + "TimeStretchがONのときに、演奏\n" + + "速度をx0.850以下にすると、チップの\n" + + "ズレが大きくなります。", + "It changes the song speed.\n" + + "For example, you can play in half\n" + + " speed by setting PlaySpeed = 0.500\n" + + " for your practice.\n" + + "\n" + + "Note: It also changes the songs' pitch.\n" + + "In case TimeStretch=ON, some sound\n" + + "lag occurs slower than x0.900."); + this.list項目リスト.Add( this.iCommonPlaySpeed ); + + this.iSystemTimeStretch = new CItemToggle( "TimeStretch", TJAPlayer3.ConfigIni.bTimeStretch, + "演奏速度の変更方式:\n" + + "ONにすると、演奏速度の変更を、\n" + + "周波数変更ではなく\n" + + "タイムストレッチで行います。" + + "\n" + + "これをONにすると、サウンド処理に\n" + + "より多くのCPU性能を使用します。\n" + + "また、演奏速度をx0.850以下にすると、\n" + + "チップのズレが大きくなります。", + "How to change the playing speed:\n" + + "Turn ON to use time stretch\n" + + "to change the play speed." + + "\n" + + "If you set TimeStretch=ON, it usese\n" + + "more CPU power. And some sound\n" + + "lag occurs slower than x0.900."); + this.list項目リスト.Add( this.iSystemTimeStretch ); + + + this.iSystemFullscreen = new CItemToggle( "Fullscreen", TJAPlayer3.ConfigIni.b全画面モード, + "画面モード設定:\nON で全画面モード、OFF でウィンド\nウモードになります。", + "Fullscreen mode or window mode." ); + this.list項目リスト.Add( this.iSystemFullscreen ); + this.iSystemStageFailed = new CItemToggle( "StageFailed", TJAPlayer3.ConfigIni.bSTAGEFAILED有効, + "STAGE FAILED 有効:\nON にすると、ゲージがなくなった時\nに STAGE FAILED となり演奏が中断\nされます。OFF の場合は、ゲージが\nなくなっても最後まで演奏できます。", + "Turn OFF if you don't want to encount\n GAME OVER." ); + this.list項目リスト.Add( this.iSystemStageFailed ); + this.iSystemRandomFromSubBox = new CItemToggle( "RandSubBox", TJAPlayer3.ConfigIni.bランダムセレクトで子BOXを検索対象とする, + "子BOXをRANDOMの対象とする:\nON にすると、RANDOM SELECT 時\nに子BOXも選択対象とします。", + "Turn ON to use child BOX (subfolders)\n at RANDOM SELECT." ); + this.list項目リスト.Add( this.iSystemRandomFromSubBox ); + + + + //this.iSystemAdjustWaves = new CItemToggle( "AdjustWaves", CDTXMania.ConfigIni.bWave再生位置自動調整機能有効, + // "サウンド再生位置自動補正:\n" + + // "ハードウェアやOSに起因するサウン\n" + + // "ドのずれを強制的に補正します。\n" + + // "BGM のように再生時間の長い音声\n" + + // "データが使用されている曲で効果が\n" + + // "あります。" + + // "\n" + + // "※ DirectSound使用時のみ有効です。", + // "Automatic wave playing position\n" + + // " adjustment feature. If you turn it ON,\n" + + // " it decrease the lag which comes from\n" + + // " the difference of hardware/OS.\n" + + // "Usually, you should turn it ON." + + // "\n"+ + // "Note: This setting is effetive\n" + + // " only when DirectSound is used."); + //this.list項目リスト.Add( this.iSystemAdjustWaves ); + this.iSystemVSyncWait = new CItemToggle( "VSyncWait", TJAPlayer3.ConfigIni.b垂直帰線待ちを行う, + "垂直帰線同期:\n画面の描画をディスプレイの垂直帰\n線中に行なう場合には ON を指定し\nます。ON にすると、ガタつきのない\n滑らかな画面描画が実現されます。", + "Turn ON to wait VSync (Vertical\n Synchronizing signal) at every\n drawings. (so FPS becomes 60)\nIf you have enough CPU/GPU power,\n the scroll would become smooth." ); + this.list項目リスト.Add( this.iSystemVSyncWait ); + this.iSystemAVI = new CItemToggle( "AVI", TJAPlayer3.ConfigIni.bAVI有効, + "AVIの使用:\n動画(AVI)を再生可能にする場合に\nON にします。AVI の再生には、それ\nなりのマシンパワーが必要とされます。", + "To use AVI playback or not." ); + this.list項目リスト.Add( this.iSystemAVI ); + this.iSystemBGA = new CItemToggle( "BGA", TJAPlayer3.ConfigIni.bBGA有効, + "BGAの使用:\n画像(BGA)を表示可能にする場合に\nON にします。BGA の再生には、それ\nなりのマシンパワーが必要とされます。", + "To draw BGA (back ground animations)\n or not." ); + this.list項目リスト.Add( this.iSystemBGA ); + this.iSystemPreviewSoundWait = new CItemInteger( "PreSoundWait", 0, 0x2710, TJAPlayer3.ConfigIni.n曲が選択されてからプレビュー音が鳴るまでのウェイトms, + "プレビュー音演奏までの時間:\n曲にカーソルが合わされてからプレ\nビュー音が鳴り始めるまでの時間を\n指定します。\n0 ~ 10000 [ms] が指定可能です。", + "Delay time(ms) to start playing preview\n sound in SELECT MUSIC screen.\nYou can specify from 0ms to 10000ms." ); + this.list項目リスト.Add( this.iSystemPreviewSoundWait ); + this.iSystemPreviewImageWait = new CItemInteger( "PreImageWait", 0, 0x2710, TJAPlayer3.ConfigIni.n曲が選択されてからプレビュー画像が表示開始されるまでのウェイトms, + "プレビュー画像表示までの時間:\n曲にカーソルが合わされてからプレ\nビュー画像が表示されるまでの時間\nを指定します。\n0 ~ 10000 [ms] が指定可能です。", + "Delay time(ms) to show preview image\n in SELECT MUSIC screen.\nYou can specify from 0ms to 10000ms." ); + this.list項目リスト.Add( this.iSystemPreviewImageWait ); + this.iSystemDebugInfo = new CItemToggle( "Debug Info", TJAPlayer3.ConfigIni.b演奏情報を表示する, + "演奏情報の表示:\n演奏中、BGA領域の下部に演奏情報\n(FPS、BPM、演奏時間など)を表示し\nます。\nまた、小節線の横に小節番号が表示\nされるようになります。", + "To show song informations on playing\n BGA area. (FPS, BPM, total time etc)\nYou can ON/OFF the indications\n by pushing [Del] while playing drums" ); + this.list項目リスト.Add( this.iSystemDebugInfo ); + this.iSystemBGAlpha = new CItemInteger( "BG Alpha", 0, 0xff, TJAPlayer3.ConfigIni.n背景の透過度, + "背景画像の半透明割合:\n背景画像をDTXManiaのフレーム画像\nと合成する際の、背景画像の透明度\nを指定します。\n0 が完全透明で、255 が完全不透明\nとなります。", + "The degree for transparing playing\n screen and wallpaper.\n\n0=completely transparent,\n255=no transparency" ); + this.list項目リスト.Add( this.iSystemBGAlpha ); + this.iSystemBGMSound = new CItemToggle( "BGM Sound", TJAPlayer3.ConfigIni.bBGM音を発声する, + "BGMの再生:\nこれをOFFにすると、BGM を再生しな\nくなります。", + "Turn OFF if you don't want to play\n BGM." ); + this.list項目リスト.Add( this.iSystemBGMSound ); + //this.iSystemAudienceSound = new CItemToggle( "Audience", CDTXMania.ConfigIni.b歓声を発声する, + // "歓声の再生:\nこれをOFFにすると、歓声を再生しな\nくなります。", + // "Turn ON if you want to be cheered\n at the end of fill-in zone or not." ); + //this.list項目リスト.Add( this.iSystemAudienceSound ); + //this.iSystemDamageLevel = new CItemList( "DamageLevel", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.eダメージレベル, + // "ゲージ減少割合:\nMiss ヒット時のゲージの減少度合い\nを指定します。\nRiskyが1以上の場合は無効となります", + // "Damage level at missing (and\n recovering level) at playing.\nThis setting is ignored when Risky >= 1.", + // new string[] { "Small", "Normal", "Large" } ); + //this.list項目リスト.Add( this.iSystemDamageLevel ); + this.iSystemSaveScore = new CItemToggle( "SaveScore", TJAPlayer3.ConfigIni.bScoreIniを出力する, + "演奏記録の保存:\nON で演奏記録を ~.score.ini ファイ\nルに保存します。\n", + "To save high-scores/skills, turn it ON.\nTurn OFF in case your song data are\n in read-only media (CD-ROM etc).\nNote that the score files also contain\n 'BGM Adjust' parameter. So if you\n want to keep adjusting parameter,\n you need to set SaveScore=ON." ); + this.list項目リスト.Add( this.iSystemSaveScore ); + + this.iSystemApplyLoudnessMetadata = new CItemToggle( "Apply Loudness Metadata", TJAPlayer3.ConfigIni.ApplyLoudnessMetadata, + "BS1770GAIN によるラウドネスメータの測量を適用します。\n利用するにはBS1770GAINが必要です。", + "To apply BS1770GAIN loudness\nmetadata when playing songs, turn it ON.\nTurn OFF if you prefer to use only\nthe main song level controls.\nIt needs BS1770GAIN." ); + this.list項目リスト.Add( this.iSystemApplyLoudnessMetadata ); + + this.iSystemTargetLoudness = new CItemInteger( "Target Loudness", (int)Math.Round(CSound.MinimumLufs.ToDouble() * 10.0), (int)Math.Round(CSound.MaximumLufs.ToDouble() * 10.0), (int)Math.Round(TJAPlayer3.ConfigIni.TargetLoudness * 10.0), + "BS1770GAIN によるラウドネスメータの目標値を指定します。", + "When applying BS1770GAIN loudness\nmetadata while playing songs, song levels\nwill be adjusted to target this loudness,\nmeasured in cB (centibels) relative to full scale.\n"); + this.list項目リスト.Add( this.iSystemTargetLoudness ); + + this.iSystemApplySongVol = new CItemToggle( "Apply SONGVOL", TJAPlayer3.ConfigIni.ApplySongVol, + ".tjaファイルのSONGVOLヘッダを音源の音量に適用します。設定による音量調整を使用する場合はこの設定をOFFにしてください。", + "To apply .tja SONGVOL properties when playing\nsongs, turn it ON. Turn OFF if you prefer to\nuse only the main song level controls." ); + this.list項目リスト.Add( this.iSystemApplySongVol ); + + this.iSystemSoundEffectLevel = new CItemInteger( "Sound Effect Level", CSound.MinimumGroupLevel, CSound.MaximumGroupLevel, TJAPlayer3.ConfigIni.SoundEffectLevel, + $"効果音の音量を調節します。\n{CSound.MinimumGroupLevel} ~ {CSound.MaximumGroupLevel} % の値が指定可能です。\n", + $"The level adjustment for sound effects.\nYou can specify from {CSound.MinimumGroupLevel} to {CSound.MaximumGroupLevel}%." ); + this.list項目リスト.Add( this.iSystemSoundEffectLevel ); + + this.iSystemVoiceLevel = new CItemInteger( "Voice Level", CSound.MinimumGroupLevel, CSound.MaximumGroupLevel, TJAPlayer3.ConfigIni.VoiceLevel, + $"各画面で流れるボイス、コンボボイスの音量を調節します。\n{CSound.MinimumGroupLevel} ~ {CSound.MaximumGroupLevel} % の値が指定可能です。\n", + $"The level adjustment for voices.\nYou can specify from {CSound.MinimumGroupLevel} to {CSound.MaximumGroupLevel}%." ); + this.list項目リスト.Add( this.iSystemVoiceLevel ); + + this.iSystemSongPlaybackLevel = new CItemInteger( "Song Playback Level", CSound.MinimumGroupLevel, CSound.MaximumGroupLevel, TJAPlayer3.ConfigIni.SongPlaybackLevel, + $"ゲーム中の音源の音量を調節します。\n{CSound.MinimumGroupLevel} ~ {CSound.MaximumGroupLevel} % の値が指定可能です。\n", + $"The level adjustment for songs during gameplay.\nYou can specify from {CSound.MinimumGroupLevel} to {CSound.MaximumGroupLevel}%." ); + this.list項目リスト.Add( this.iSystemSongPlaybackLevel ); + + this.iSystemKeyboardSoundLevelIncrement = new CItemInteger( "Keyboard Level Increment", 1, 20, TJAPlayer3.ConfigIni.KeyboardSoundLevelIncrement, + "キーボードで音量調整をするときの増加量、減少量を指定します。\n1 ~ 20 の値が指定可能です。\n", + "The amount of sound level change for each press\nof a sound level control key.\nYou can specify from 1 to 20." ); + this.list項目リスト.Add( this.iSystemKeyboardSoundLevelIncrement ); + + this.MusicPreTimeMs = new CItemInteger("MusicPreTimeMs", 0, 10000, TJAPlayer3.ConfigIni.MusicPreTimeMs, + "音源再生前の空白時間 (ms)。\n", + "Blank time before music source to play. (ms)\n"); + this.list項目リスト.Add(this.MusicPreTimeMs); + + //this.iSystemStoicMode = new CItemToggle( "StoicMode", CDTXMania.ConfigIni.bストイックモード, + // "ストイック(禁欲)モード:\n以下をまとめて表示ON/OFFします。\n_プレビュー画像/動画\n_リザルト画像/動画\n_NowLoading画像\n_演奏画面の背景画像\n_BGA 画像 / AVI 動画\n_グラフ画像\n", + // "Turn ON to disable drawing\n * preview image / movie\n * result image / movie\n * nowloading image\n * wallpaper (in playing screen)\n * BGA / AVI (in playing screen)" ); + //this.list項目リスト.Add( this.iSystemStoicMode ); + //this.iSystemShowLag = new CItemList( "ShowLagTime", CItemBase.Eパネル種別.通常, CDTXMania.ConfigIni.nShowLagType, + // "ズレ時間表示:\nジャストタイミングからのズレ時間(ms)\nを表示します。\n OFF: ズレ時間を表示しません。\n ON: ズレ時間を表示します。\n GREAT-: PERFECT以外の時のみ\n表示します。", + // "About displaying the lag from\n the \"just timing\".\n OFF: Don't show it.\n ON: Show it.\n GREAT-: Show it except you've\n gotten PERFECT.", + // new string[] { "OFF", "ON", "GREAT-" } ); + //this.list項目リスト.Add( this.iSystemShowLag ); + this.iSystemAutoResultCapture = new CItemToggle( "Autosaveresult", TJAPlayer3.ConfigIni.bIsAutoResultCapture, + "リザルト画像自動保存機能:\nONにすると、ハイスコア/ハイスキル時に\n自動でリザルト画像を曲データと同じ\nフォルダに保存します。", + "AutoSaveResult:\nTurn ON to save your result screen\n image automatically when you get\n hiscore/hiskill." ); + this.list項目リスト.Add( this.iSystemAutoResultCapture ); + + SendDiscordPlayingInformation = new CItemToggle(nameof(SendDiscordPlayingInformation), + TJAPlayer3.ConfigIni.SendDiscordPlayingInformation, + "Discordに再生中の譜面情報を送信する", + "Share Playing .tja file infomation on Discord."); + list項目リスト.Add(SendDiscordPlayingInformation); + + //this.iSystemJudgeDispPriority = new CItemList( "JudgePriority", CItemBase.Eパネル種別.通常, (int) CDTXMania.ConfigIni.e判定表示優先度, + // "判定文字列とコンボ表示の優先順位を\n" + + // "指定します。\n" + + // "\n" + + // " Under: チップの下に表示します。\n" + + // " Over: チップの上に表示します。", + // "The display prioity between chips\n" + + // " and judge mark/combo.\n" + + // "\n" + + // " Under: Show them under the chips.\n" + + // " Over: Show them over the chips.", + // new string[] { "Under", "Over" } ); + //this.list項目リスト.Add( this.iSystemJudgeDispPriority ); + + this.iSystemBufferedInput = new CItemToggle( "BufferedInput", TJAPlayer3.ConfigIni.bバッファ入力を行う, + "バッファ入力モード:\nON にすると、FPS を超える入力解像\n度を実現します。\nOFF にすると、入力解像度は FPS に\n等しくなります。", + "To select joystick input method.\n\nON to use buffer input. No lost/lags.\nOFF to use realtime input. It may\n causes lost/lags for input.\n Moreover, input frequency is\n synchronized with FPS." ); + this.list項目リスト.Add( this.iSystemBufferedInput ); + this.iLogOutputLog = new CItemToggle( "TraceLog", TJAPlayer3.ConfigIni.bログ出力, + "Traceログ出力:\nDTXManiaLog.txt にログを出力します。\n変更した場合は、DTXMania の再起動\n後に有効となります。", + "Turn ON to put debug log to\n DTXManiaLog.txt\nTo take it effective, you need to\n re-open DTXMania." ); + this.list項目リスト.Add( this.iLogOutputLog ); + + // #24820 2013.1.3 yyagi + this.iSystemSoundType = new CItemList("SoundType", CItemList.Eパネル種別.通常, TJAPlayer3.ConfigIni.nSoundDeviceType, + "サウンドの出力方式:\n" + + "WASAPI, ASIO, DSound(DirectSound)\n" + + "の中からサウンド出力方式を選択\n" + + "します。\n" + + "WASAPIはVista以降でのみ使用可能\n" + + "です。ASIOは対応機器でのみ使用\n" + + "可能です。\n" + + "WASAPIかASIOを指定することで、\n" + + "遅延の少ない演奏を楽しむことが\n" + + "できます。\n" + + "\n" + + "※ 設定はCONFIGURATION画面の\n" + + " 終了時に有効になります。", + "Sound output type:\n" + + "You can choose WASAPI, ASIO or\n" + + "DShow(DirectShow).\n" + + "WASAPI can use only after Vista.\n" + + "ASIO can use on the\n" + + "\"ASIO-supported\" sound device.\n" + + "You should use WASAPI or ASIO\n" + + "to decrease the sound lag.\n" + + "\n" + + "Note: Exit CONFIGURATION to make\n" + + " the setting take effect.", + new string[] { "DSound", "ASIO", "WASAPI" }); + this.list項目リスト.Add(this.iSystemSoundType); + + // #24820 2013.1.15 yyagi + this.iSystemWASAPIBufferSizeMs = new CItemInteger( "WASAPIBufSize", 0, 99999, TJAPlayer3.ConfigIni.nWASAPIBufferSizeMs, + "WASAPI使用時のバッファサイズ:\n" + + "0~99999ms を指定可能です。\n" + + "0を指定すると、OSがバッファの\n" + + "サイズを自動設定します。\n" + + "値を小さくするほど発音ラグが\n" + + "減少しますが、音割れや異常動作を\n" + + "引き起こす場合があります。\n" + + "※ 設定はCONFIGURATION画面の\n" + + " 終了時に有効になります。", + "Sound buffer size for WASAPI:\n" + + "You can set from 0 to 99999ms.\n" + + "Set 0 to use a default sysytem\n" + + "buffer size.\n" + + "Smaller value makes smaller lag,\n" + + "but it may cause sound troubles.\n" + + "\n" + + "Note: Exit CONFIGURATION to make\n" + + " the setting take effect." ); + this.list項目リスト.Add( this.iSystemWASAPIBufferSizeMs ); + + // #24820 2013.1.17 yyagi + string[] asiodevs = CEnumerateAllAsioDevices.GetAllASIODevices(); + this.iSystemASIODevice = new CItemList( "ASIO device", CItemList.Eパネル種別.通常, TJAPlayer3.ConfigIni.nASIODevice, + "ASIOデバイス:\n" + + "ASIO使用時のサウンドデバイスを\n" + + "選択します。\n" + + "\n" + + "※ 設定はCONFIGURATION画面の\n" + + " 終了時に有効になります。", + "ASIO Sound Device:\n" + + "Select the sound device to use\n" + + "under ASIO mode.\n" + + "\n" + + "Note: Exit CONFIGURATION to make\n" + + " the setting take effect.", + asiodevs ); + this.list項目リスト.Add( this.iSystemASIODevice ); + + // #24820 2013.1.3 yyagi + //this.iSystemASIOBufferSizeMs = new CItemInteger("ASIOBuffSize", 0, 99999, CDTXMania.ConfigIni.nASIOBufferSizeMs, + // "ASIO使用時のバッファサイズ:\n" + + // "0~99999ms を指定可能です。\n" + + // "推奨値は0で、サウンドデバイスでの\n" + + // "設定値をそのまま使用します。\n" + + // "(サウンドデバイスのASIO設定は、\n" + + // " ASIO capsなどで行います)\n" + + // "値を小さくするほど発音ラグが\n" + + // "減少しますが、音割れや異常動作を\n" + + // "引き起こす場合があります。\n" + + // "\n" + + // "※ 設定はCONFIGURATION画面の\n" + + // " 終了時に有効になります。", + // "Sound buffer size for ASIO:\n" + + // "You can set from 0 to 99999ms.\n" + + // "You should set it to 0, to use\n" + + // "a default value specified to\n" + + // "the sound device.\n" + + // "Smaller value makes smaller lag,\n" + + // "but it may cause sound troubles.\n" + + // "\n" + + // "Note: Exit CONFIGURATION to make\n" + + // " the setting take effect." ); + //this.list項目リスト.Add( this.iSystemASIOBufferSizeMs ); + + // #33689 2014.6.17 yyagi + this.iSystemSoundTimerType = new CItemToggle( "UseOSTimer", TJAPlayer3.ConfigIni.bUseOSTimer, + "OSタイマーを使用するかどうか:\n" + + "演奏タイマーとして、DTXMania独自の\n" + + "タイマーを使うか、OS標準のタイマー\n" + + "を使うかを選択します。\n" + + "OS標準タイマーを使うとスクロールが\n" + + "滑らかになりますが、演奏で音ズレが\n" + + "発生することがあります。(そのため\n" + + "AdjustWavesの効果が適用されます。)\n" + + "\n" + + "この指定はWASAPI/ASIO使用時のみ有効\n" + + "です。\n", + "Use OS Timer or not:\n" + + "If this settings is ON, DTXMania uses\n" + + "OS Standard timer. It brings smooth\n" + + "scroll, but may cause some sound lag.\n" + + "(so AdjustWaves is also avilable)\n" + + "\n" + + "If OFF, DTXMania uses its original\n" + + "timer and the effect is vice versa.\n" + + "\n" + + "This settings is avilable only when\n" + + "you uses WASAPI/ASIO.\n" + ); + this.list項目リスト.Add( this.iSystemSoundTimerType ); + + + ShowChara = new CItemToggle("ShowChara", TJAPlayer3.ConfigIni.ShowChara, + "キャラクター画像を表示するかどうか\n", + "Show Character Images.\n" + + ""); + this.list項目リスト.Add(ShowChara); + + ShowDancer = new CItemToggle("ShowDancer", TJAPlayer3.ConfigIni.ShowDancer, + "ダンサー画像を表示するかどうか\n", + "Show Dancer Images.\n" + + ""); + this.list項目リスト.Add(ShowDancer); + + ShowMob = new CItemToggle("ShowMob", TJAPlayer3.ConfigIni.ShowMob, + "モブ画像を表示するかどうか\n", + "Show Mob Images.\n" + + ""); + this.list項目リスト.Add(ShowMob); + + ShowRunner = new CItemToggle("ShowRunner", TJAPlayer3.ConfigIni.ShowRunner, + "ランナー画像を表示するかどうか\n", + "Show Runner Images.\n" + + ""); + this.list項目リスト.Add(ShowRunner); + + ShowFooter = new CItemToggle("ShowFooter", TJAPlayer3.ConfigIni.ShowFooter, + "フッター画像を表示するかどうか\n", + "Show Footer Image.\n" + + ""); + this.list項目リスト.Add(ShowFooter); + + FastRender = new CItemToggle(nameof(FastRender), TJAPlayer3.ConfigIni.FastRender, + "事前画像描画機能を使うかどうか。\n", + "Use pre-textures render.\n"); + this.list項目リスト.Add(FastRender); + ShowPuchiChara = new CItemToggle("ShowPuchiChara", TJAPlayer3.ConfigIni.ShowPuchiChara, + "ぷちキャラ画像を表示するかどうか\n", + "Show PuchiChara Images.\n" + + ""); + this.list項目リスト.Add(ShowPuchiChara); + + + + this.iSystemSkinSubfolder = new CItemList("Skin (全体)", CItemBase.Eパネル種別.通常, nSkinIndex, + "スキン切替:\n" + + "スキンを切り替えます。\n", + //"CONFIGURATIONを抜けると、設定した\n" + + //"スキンに変更されます。", + "Skin:\n" + + "Change skin.", + skinNames); + this.list項目リスト.Add(this.iSystemSkinSubfolder); + //this.iSystemUseBoxDefSkin = new CItemToggle( "Skin (Box)", CDTXMania.ConfigIni.bUseBoxDefSkin, + // "Music boxスキンの利用:\n" + + // "特別なスキンが設定されたMusic box\n" + + // "に出入りしたときに、自動でスキンを\n" + + // "切り替えるかどうかを設定します。\n", + // //"\n" + + // //"(Music Boxスキンは、box.defファイル\n" + + // //" で指定できます)\n", + // "Box skin:\n" + + // "Automatically change skin\n" + + // "specified in box.def file." ); + //this.list項目リスト.Add( this.iSystemUseBoxDefSkin ); + + + this.iSystemGoToKeyAssign = new CItemBase( "System Keys", CItemBase.Eパネル種別.通常, + "システムのキー入力に関する項目を設\n定します。", + "Settings for the system key/pad inputs." ); + this.list項目リスト.Add( this.iSystemGoToKeyAssign ); + + OnListMenuの初期化(); + this.n現在の選択項目 = 0; + this.eメニュー種別 = Eメニュー種別.System; + } + #endregion + #region [ t項目リストの設定_Drums() ] + public void t項目リストの設定_Drums() + { + this.tConfigIniへ記録する(); + this.list項目リスト.Clear(); + + // #27029 2012.1.5 from: 説明文は最大9行→13行に変更。 + + this.iDrumsReturnToMenu = new CItemBase( "<< Return To Menu", CItemBase.Eパネル種別.その他, + "左側のメニューに戻ります。", + "Return to left menu." ); + this.list項目リスト.Add( this.iDrumsReturnToMenu ); + + #region [ AutoPlay ] + this.iTaikoAutoPlay = new CItemToggle( "AUTO PLAY", TJAPlayer3.ConfigIni.b太鼓パートAutoPlay, + "すべての音符を自動で演奏します。\n" + + "", + "To play both Taiko\n" + + " automatically." ); + this.list項目リスト.Add( this.iTaikoAutoPlay ); + + this.iTaikoAutoPlay2P = new CItemToggle( "AUTO PLAY 2P", TJAPlayer3.ConfigIni.b太鼓パートAutoPlay, + "すべての音符を自動で演奏します。\n" + + "", + "To play both Taiko\n" + + " automatically." ); + this.list項目リスト.Add( this.iTaikoAutoPlay2P ); + + this.iTaikoAutoRoll = new CItemToggle( "AUTO Roll", TJAPlayer3.ConfigIni.bAuto先生の連打, + "OFFにするとAUTO先生が黄色連打を\n" + + "叩かなくなります。", + "To play both Taiko\n" + + " automatically." ); + this.list項目リスト.Add( this.iTaikoAutoRoll ); + #endregion + + this.iDrumsScrollSpeed = new CItemInteger( "ScrollSpeed", 0, 0x7cf, TJAPlayer3.ConfigIni.n譜面スクロール速度.Drums, + "演奏時のドラム譜面のスクロールの\n" + + "速度を指定します。\n" + + "x0.1 ~ x200.0 を指定可能です。", + "To change the scroll speed for the\n" + + "drums lanes.\n" + + "You can set it from x0.1 to x200.0.\n" + + "(ScrollSpeed=x0.5 means half speed)" ); + this.list項目リスト.Add( this.iDrumsScrollSpeed ); + + this.iSystemRisky = new CItemInteger( "Risky", 0, 10, TJAPlayer3.ConfigIni.nRisky, + "Riskyモードの設定:\n" + + "1以上の値にすると、その回数分の\n" + + "不可で演奏が強制終了します。\n" + + "0にすると無効になり、\n" + + "ノルマゲージのみになります。\n" + + "\n" + + "", + "Risky mode:\n" + + "Set over 1, in case you'd like to specify\n" + + " the number of Poor/Miss times to be\n" + + " FAILED.\n" + + "Set 0 to disable Risky mode." ); + this.list項目リスト.Add( this.iSystemRisky ); + + this.iTaikoRandom = new CItemList( "Random", CItemBase.Eパネル種別.通常, (int) TJAPlayer3.ConfigIni.eRandom.Taiko, + "いわゆるランダム。\n RANDOM: ちょっと変わる\n MIRROR: あべこべ \n SUPER: そこそこヤバい\n HYPER: 結構ヤバい\nなお、実装は適当な模様", + "Notes come randomly.\n\n Part: swapping lanes randomly for each\n measures.\n Super: swapping chip randomly\n Hyper: swapping randomly\n (number of lanes also changes)", + new string[] { "OFF", "RANDOM", "MIRROR", "SUPER", "HYPER" } ); + this.list項目リスト.Add( this.iTaikoRandom ); + + this.iTaikoStealth = new CItemList( "Stealth", CItemBase.Eパネル種別.通常, (int) TJAPlayer3.ConfigIni.eSTEALTH, + "DORON:ドロン\n"+ + "STEALTH:ステルス", + "DORON:Hidden for NoteImage.\n"+ + "STEALTH:Hidden for NoteImage and SeNotes", + new string[] { "OFF", "DORON", "STEALTH" } ); + this.list項目リスト.Add( this.iTaikoStealth ); + + this.iTaikoNoInfo = new CItemToggle( "NoInfo", TJAPlayer3.ConfigIni.bNoInfo, + "有効にすると曲情報などが見えなくなります。\n" + + "", + "It becomes MISS to hit pad without\n" + + " chip." ); + this.list項目リスト.Add( this.iTaikoNoInfo ); + + this.iTaikoJust = new CItemToggle( "JUST", TJAPlayer3.ConfigIni.bJust, + "有効にすると「良」以外の判定が全て不可になります。\n" + + "", + "有効にすると「良」以外の判定が全て不可になります。" ); + this.list項目リスト.Add( this.iTaikoJust ); + + this.iDrumsTight = new CItemToggle( "Tight", TJAPlayer3.ConfigIni.bTight, + "ドラムチップのないところでパッドを\n" + + "叩くとミスになります。", + "It becomes MISS to hit pad without\n" + + " chip." ); + this.list項目リスト.Add( this.iDrumsTight ); + + this.iSystemMinComboDrums = new CItemInteger( "D-MinCombo", 1, 0x1869f, TJAPlayer3.ConfigIni.n表示可能な最小コンボ数.Drums, + "表示可能な最小コンボ数(ドラム):\n" + + "画面に表示されるコンボの最小の数\n" + + "を指定します。\n" + + "1 ~ 99999 の値が指定可能です。", + "Initial number to show the combo\n" + + " for the drums.\n" + + "You can specify from 1 to 99999." ); + this.list項目リスト.Add( this.iSystemMinComboDrums ); + + + // #23580 2011.1.3 yyagi + this.iInputAdjustTimeMs = new CItemInteger( "InputAdjust", -99, 99, TJAPlayer3.ConfigIni.nInputAdjustTimeMs, + "ドラムの入力タイミングの微調整を\n" + + "行います。\n" + + "-99 ~ 99ms まで指定可能です。\n" + + "入力ラグを軽減するためには、負の\n" + + "値を指定してください。\n", + "To adjust the input timing.\n" + + "You can set from -99 to 99ms.\n" + + "To decrease input lag, set minus value." ); + this.list項目リスト.Add( this.iInputAdjustTimeMs ); + + this.iTaikoDefaultCourse = new CItemList( "DefaultCourse", CItemBase.Eパネル種別.通常, TJAPlayer3.ConfigIni.nDefaultCourse, + "デフォルトで選択される難易度\n" + + " \n" + + " ", + new string[] { "Easy", "Normal", "Hard", "Oni", "Edit" }); + this.list項目リスト.Add(this.iTaikoDefaultCourse); + + this.iTaikoScoreMode = new CItemList("ScoreMode", CItemBase.Eパネル種別.通常, TJAPlayer3.ConfigIni.nScoreMode, + "スコア計算方法\n" + + "TYPE-A: 旧配点\n" + + "TYPE-B: 旧筐体配点\n" + + "TYPE-C: 新配点\n", + " \n" + + " \n" + + " ", + new string[] { "TYPE-A", "TYPE-B", "TYPE-C"}); + this.list項目リスト.Add(this.iTaikoScoreMode); + + ShinuchiMode = new CItemToggle(nameof(ShinuchiMode), TJAPlayer3.ConfigIni.ShinuchiMode, CItemBase.Eパネル種別.通常, + "真打モードを有効にする。", + "Turn on fixed score mode."); + this.list項目リスト.Add(this.ShinuchiMode); + + this.iTaikoBranchGuide = new CItemToggle("BranchGuide", TJAPlayer3.ConfigIni.bBranchGuide, + "譜面分岐の参考になる数値などを表示します。\n" + + "オートプレイだと表示されません。", + "\n" + + ""); + this.list項目リスト.Add(this.iTaikoBranchGuide); + + this.iTaikoBranchAnime = new CItemList("BranchAnime", CItemBase.Eパネル種別.通常, TJAPlayer3.ConfigIni.nBranchAnime, + "譜面分岐時のアニメーション\n" + + "TYPE-A: 太鼓7~太鼓14\n" + + "TYPE-B: 太鼓15~\n" + + " \n", + " \n" + + " \n" + + " ", + new string[] { "TYPE-A", "TYPE-B" }); + this.list項目リスト.Add(this.iTaikoBranchAnime); + + this.iTaikoGameMode = new CItemList("GameMode", CItemBase.Eパネル種別.通常, (int)TJAPlayer3.ConfigIni.eGameMode, + "ゲームモード\n" + + "(1人プレイ専用)\n" + + "TYPE-A: 完走!叩ききりまショー!\n" + + "TYPE-B: 完走!叩ききりまショー!(激辛)\n" + + " \n", + " \n" + + " \n" + + " ", + new string[] { "OFF", "TYPE-A", "TYPE-B" }); + this.list項目リスト.Add( this.iTaikoGameMode ); + + this.iTaikoBigNotesJudge = new CItemToggle( "BigNotesJudge", TJAPlayer3.ConfigIni.b大音符判定, + "大音符の両手判定を有効にします。", + "大音符の両手判定を有効にします。"); + this.list項目リスト.Add( this.iTaikoBigNotesJudge ); + + this.iTaikoJudgeCountDisp = new CItemToggle( "JudgeCountDisp", TJAPlayer3.ConfigIni.bJudgeCountDisplay, + "左下に判定数を表示します。\n" + + "(1人プレイ専用)", + "Show the JudgeCount\n" + + "(SinglePlay Only)"); + this.list項目リスト.Add( this.iTaikoJudgeCountDisp ); + + this.iDrumsGoToKeyAssign = new CItemBase( "KEY CONFIG", CItemBase.Eパネル種別.通常, + "ドラムのキー入力に関する項目を設\n"+ + "定します。", + "Settings for the drums key/pad inputs." ); + this.list項目リスト.Add( this.iDrumsGoToKeyAssign ); + + OnListMenuの初期化(); + this.n現在の選択項目 = 0; + this.eメニュー種別 = Eメニュー種別.Drums; + } + #endregion + + /// Sud+Hidの初期値を返す + /// + /// + /// 0: None + /// 1: Sudden + /// 2: Hidden + /// 3: Sud+Hid + /// 4: Semi-Invisible + /// 5: Full-Invisible + /// + private int getDefaultSudHidValue( E楽器パート eInst ) + { + int defvar; + int nInst = (int) eInst; + if ( TJAPlayer3.ConfigIni.eInvisible[ nInst ] != EInvisible.OFF ) + { + defvar = (int) TJAPlayer3.ConfigIni.eInvisible[ nInst ] + 3; + } + else + { + defvar = ( TJAPlayer3.ConfigIni.bSudden[ nInst ] ? 1 : 0 ) + + ( TJAPlayer3.ConfigIni.bHidden[ nInst ] ? 2 : 0 ); + } + return defvar; + } + + /// + /// ESC押下時の右メニュー描画 + /// + public void tEsc押下() + { + if ( this.b要素値にフォーカス中 ) // #32059 2013.9.17 add yyagi + { + this.b要素値にフォーカス中 = false; + } + + if ( this.eメニュー種別 == Eメニュー種別.KeyAssignSystem ) + { + t項目リストの設定_System(); + } + else if ( this.eメニュー種別 == Eメニュー種別.KeyAssignDrums ) + { + t項目リストの設定_Drums(); + } + // これ以外なら何もしない + } + public void tEnter押下() + { + TJAPlayer3.Skin.sound決定音.t再生する(); + if( this.b要素値にフォーカス中 ) + { + this.b要素値にフォーカス中 = false; + } + else if( this.list項目リスト[ this.n現在の選択項目 ].e種別 == CItemBase.E種別.整数 ) + { + this.b要素値にフォーカス中 = true; + } + else if( this.b現在選択されている項目はReturnToMenuである ) + { + //this.tConfigIniへ記録する(); + //CONFIG中にスキン変化が発生すると面倒なので、一旦マスクした。 + } + #region [ 個々のキーアサイン ] + //太鼓のキー設定。 + else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignTaikoLRed ) + { + TJAPlayer3.stageコンフィグ.tパッド選択通知( EKeyConfigPart.DRUMS, EKeyConfigPad.LRed ); + } + else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignTaikoRRed ) + { + TJAPlayer3.stageコンフィグ.tパッド選択通知( EKeyConfigPart.DRUMS, EKeyConfigPad.RRed ); + } + else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignTaikoLBlue ) + { + TJAPlayer3.stageコンフィグ.tパッド選択通知( EKeyConfigPart.DRUMS, EKeyConfigPad.LBlue ); + } + else if ( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignTaikoRBlue ) + { + TJAPlayer3.stageコンフィグ.tパッド選択通知( EKeyConfigPart.DRUMS, EKeyConfigPad.RBlue ); + } + + //太鼓のキー設定。2P + else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignTaikoLRed2P ) + { + TJAPlayer3.stageコンフィグ.tパッド選択通知( EKeyConfigPart.DRUMS, EKeyConfigPad.LRed2P ); + } + else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignTaikoRRed2P ) + { + TJAPlayer3.stageコンフィグ.tパッド選択通知( EKeyConfigPart.DRUMS, EKeyConfigPad.RRed2P ); + } + else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignTaikoLBlue2P ) + { + TJAPlayer3.stageコンフィグ.tパッド選択通知( EKeyConfigPart.DRUMS, EKeyConfigPad.LBlue2P ); + } + else if ( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignTaikoRBlue2P ) + { + TJAPlayer3.stageコンフィグ.tパッド選択通知( EKeyConfigPart.DRUMS, EKeyConfigPad.RBlue2P ); + } + + else if ( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignSystemCapture ) + { + TJAPlayer3.stageコンフィグ.tパッド選択通知( EKeyConfigPart.SYSTEM, EKeyConfigPad.Capture); + } + #endregion + else + { + // #27029 2012.1.5 from + //if( ( this.iSystemBDGroup.n現在選択されている項目番号 == (int) EBDGroup.どっちもBD ) && + // ( ( this.list項目リスト[ this.n現在の選択項目 ] == this.iSystemHHGroup ) || ( this.list項目リスト[ this.n現在の選択項目 ] == this.iSystemHitSoundPriorityHH ) ) ) + //{ + // // 変更禁止(何もしない) + //} + //else + //{ + // // 変更許可 + this.list項目リスト[ this.n現在の選択項目 ].tEnter押下(); + //} + + + // Enter押下後の後処理 + + if( this.list項目リスト[ this.n現在の選択項目 ] == this.iSystemFullscreen ) + { + TJAPlayer3.app.b次のタイミングで全画面_ウィンドウ切り替えを行う = true; + } + else if( this.list項目リスト[ this.n現在の選択項目 ] == this.iSystemVSyncWait ) + { + TJAPlayer3.ConfigIni.b垂直帰線待ちを行う = this.iSystemVSyncWait.bON; + TJAPlayer3.app.b次のタイミングで垂直帰線同期切り替えを行う = true; + } + #region [ キーアサインへの遷移と脱出 ] + else if ( this.list項目リスト[ this.n現在の選択項目 ] == this.iSystemGoToKeyAssign ) // #24609 2011.4.12 yyagi + { + t項目リストの設定_KeyAssignSystem(); + } + else if ( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignSystemReturnToMenu ) // #24609 2011.4.12 yyagi + { + t項目リストの設定_System(); + } + else if ( this.list項目リスト[ this.n現在の選択項目 ] == this.iDrumsGoToKeyAssign ) // #24525 2011.3.15 yyagi + { + t項目リストの設定_KeyAssignDrums(); + } + else if ( this.list項目リスト[ this.n現在の選択項目 ] == this.iKeyAssignDrumsReturnToMenu ) // #24525 2011.3.15 yyagi + { + t項目リストの設定_Drums(); + } + #endregion + #region [ スキン項目でEnterを押下した場合に限り、スキンの縮小サンプルを生成する。] + else if ( this.list項目リスト[ this.n現在の選択項目 ] == this.iSystemSkinSubfolder ) // #28195 2012.5.2 yyagi + { + tGenerateSkinSample(); + } + #endregion + #region [ 曲データ一覧の再読み込み ] + else if ( this.list項目リスト[ this.n現在の選択項目 ] == this.iSystemReloadDTX ) // #32081 2013.10.21 yyagi + { + if ( TJAPlayer3.EnumSongs.IsEnumerating ) + { + // Debug.WriteLine( "バックグラウンドでEnumeratingSongs中だったので、一旦中断します。" ); + TJAPlayer3.EnumSongs.Abort(); + TJAPlayer3.actEnumSongs.On非活性化(); + } + + TJAPlayer3.EnumSongs.StartEnumFromDisk(); + TJAPlayer3.EnumSongs.ChangeEnumeratePriority( ThreadPriority.Normal ); + TJAPlayer3.actEnumSongs.bコマンドでの曲データ取得 = true; + TJAPlayer3.actEnumSongs.On活性化(); + } + #endregion + } + } + + private void tGenerateSkinSample() + { + nSkinIndex = ( ( CItemList ) this.list項目リスト[ this.n現在の選択項目 ] ).n現在選択されている項目番号; + if ( nSkinSampleIndex != nSkinIndex ) + { + string path = skinSubFolders[ nSkinIndex ]; + path = System.IO.Path.Combine( path, @"Graphics\1_Title\Background.png" ); + Bitmap bmSrc = new Bitmap( path ); + Bitmap bmDest = new Bitmap( bmSrc.Width / 4, bmSrc.Height / 4 ); + Graphics g = Graphics.FromImage( bmDest ); + g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; + g.DrawImage( bmSrc, new Rectangle( 0, 0, bmSrc.Width / 4, bmSrc.Height / 4 ), + 0, 0, bmSrc.Width, bmSrc.Height, GraphicsUnit.Pixel ); + if ( txSkinSample1 != null ) + { + TJAPlayer3.t安全にDisposeする( ref txSkinSample1 ); + } + txSkinSample1 = TJAPlayer3.tテクスチャの生成( bmDest, false ); + g.Dispose(); + bmDest.Dispose(); + bmSrc.Dispose(); + nSkinSampleIndex = nSkinIndex; + } + } + + #region [ 項目リストの設定 ( Exit, KeyAssignSystem/Drums) ] + public void t項目リストの設定_Exit() + { + this.tConfigIniへ記録する(); + this.eメニュー種別 = Eメニュー種別.Unknown; + } + public void t項目リストの設定_KeyAssignSystem() + { + //this.tConfigIniへ記録する(); + this.list項目リスト.Clear(); + + // #27029 2012.1.5 from: 説明文は最大9行→13行に変更。 + + this.iKeyAssignSystemReturnToMenu = new CItemBase( "<< ReturnTo Menu", CItemBase.Eパネル種別.その他, + "左側のメニューに戻ります。", + "Return to left menu." ); + this.list項目リスト.Add( this.iKeyAssignSystemReturnToMenu ); + this.iKeyAssignSystemCapture = new CItemBase( "Capture", + "キャプチャキー設定:\n画面キャプチャのキーの割り当てを設\n定します。", + "Capture key assign:\nTo assign key for screen capture.\n (You can use keyboard only. You can't\nuse pads to capture screenshot." ); + this.list項目リスト.Add( this.iKeyAssignSystemCapture ); + + OnListMenuの初期化(); + this.n現在の選択項目 = 0; + this.eメニュー種別 = Eメニュー種別.KeyAssignSystem; + } + public void t項目リストの設定_KeyAssignDrums() + { +// this.tConfigIniへ記録する(); + this.list項目リスト.Clear(); + + // #27029 2012.1.5 from: 説明文は最大9行→13行に変更。 + + this.iKeyAssignDrumsReturnToMenu = new CItemBase( "<< ReturnTo Menu", CItemBase.Eパネル種別.その他, + "左側のメニューに戻ります。", + "Return to left menu."); + this.list項目リスト.Add(this.iKeyAssignDrumsReturnToMenu); + + this.iKeyAssignTaikoLRed = new CItemBase( "LeftRed", + "左側の面へのキーの割り当てを設\n定します。", + "Drums key assign:\nTo assign key/pads for LeftRed\n button."); + this.list項目リスト.Add(this.iKeyAssignTaikoLRed); + this.iKeyAssignTaikoRRed = new CItemBase( "RightRed", + "右側の面へのキーの割り当て\nを設定します。", + "Drums key assign:\nTo assign key/pads for RightRed\n button."); + this.list項目リスト.Add(this.iKeyAssignTaikoRRed); + this.iKeyAssignTaikoLBlue = new CItemBase( "LeftBlue", + "左側のふちへのキーの\n割り当てを設定します。", + "Drums key assign:\nTo assign key/pads for LeftBlue\n button."); + this.list項目リスト.Add( this.iKeyAssignTaikoLBlue ); + this.iKeyAssignTaikoRBlue = new CItemBase( "RightBlue", + "右側のふちへのキーの\n割り当てを設定します。", + "Drums key assign:\nTo assign key/pads for RightBlue\n button."); + this.list項目リスト.Add( this.iKeyAssignTaikoRBlue ); + + this.iKeyAssignTaikoLRed2P = new CItemBase( "LeftRed2P", + "左側の面へのキーの割り当てを設\n定します。", + "Drums key assign:\nTo assign key/pads for RightCymbal\n button."); + this.list項目リスト.Add( this.iKeyAssignTaikoLRed2P ); + this.iKeyAssignTaikoRRed2P = new CItemBase( "RightRed2P", + "右側の面へのキーの割り当て\nを設定します。", + "Drums key assign:\nTo assign key/pads for RightRed2P\n button."); + this.list項目リスト.Add( this.iKeyAssignTaikoRRed2P ); + this.iKeyAssignTaikoLBlue2P = new CItemBase( "LeftBlue2P", + "左側のふちへのキーの\n割り当てを設定します。", + "Drums key assign:\nTo assign key/pads for LeftBlue2P\n button."); + this.list項目リスト.Add( this.iKeyAssignTaikoLBlue2P ); + this.iKeyAssignTaikoRBlue2P = new CItemBase( "RightBlue2P", + "右側のふちへのキーの\n割り当てを設定します。", + "Drums key assign:\nTo assign key/pads for RightBlue2P\n button."); + this.list項目リスト.Add( this.iKeyAssignTaikoRBlue2P ); + + OnListMenuの初期化(); + this.n現在の選択項目 = 0; + this.eメニュー種別 = Eメニュー種別.KeyAssignDrums; + } + #endregion + public void t次に移動() + { + TJAPlayer3.Skin.soundカーソル移動音.t再生する(); + if( this.b要素値にフォーカス中 ) + { + this.list項目リスト[ this.n現在の選択項目 ].t項目値を前へ移動(); + t要素値を上下に変更中の処理(); + } + else + { + this.n目標のスクロールカウンタ += 100; + } + } + public void t前に移動() + { + TJAPlayer3.Skin.soundカーソル移動音.t再生する(); + if( this.b要素値にフォーカス中 ) + { + this.list項目リスト[ this.n現在の選択項目 ].t項目値を次へ移動(); + t要素値を上下に変更中の処理(); + } + else + { + this.n目標のスクロールカウンタ -= 100; + } + } + private void t要素値を上下に変更中の処理() + { + //if ( this.list項目リスト[ this.n現在の選択項目 ] == this.iSystemMasterVolume ) // #33700 2014.4.26 yyagi + //{ + // CDTXMania.Sound管理.nMasterVolume = this.iSystemMasterVolume.n現在の値; + //} + } + + + // CActivity 実装 + + public override void On活性化() + { + if( this.b活性化してる ) + return; + + this.list項目リスト = new List(); + this.eメニュー種別 = Eメニュー種別.Unknown; + + #region [ スキン選択肢と、現在選択中のスキン(index)の準備 #28195 2012.5.2 yyagi ] + int ns = ( TJAPlayer3.Skin.strSystemSkinSubfolders == null ) ? 0 : TJAPlayer3.Skin.strSystemSkinSubfolders.Length; + int nb = ( TJAPlayer3.Skin.strBoxDefSkinSubfolders == null ) ? 0 : TJAPlayer3.Skin.strBoxDefSkinSubfolders.Length; + skinSubFolders = new string[ ns + nb ]; + for ( int i = 0; i < ns; i++ ) + { + skinSubFolders[ i ] = TJAPlayer3.Skin.strSystemSkinSubfolders[ i ]; + } + for ( int i = 0; i < nb; i++ ) + { + skinSubFolders[ ns + i ] = TJAPlayer3.Skin.strBoxDefSkinSubfolders[ i ]; + } + skinSubFolder_org = TJAPlayer3.Skin.GetCurrentSkinSubfolderFullName( true ); + Array.Sort( skinSubFolders ); + skinNames = CSkin.GetSkinName( skinSubFolders ); + nSkinIndex = Array.BinarySearch( skinSubFolders, skinSubFolder_org ); + if ( nSkinIndex < 0 ) // 念のため + { + nSkinIndex = 0; + } + nSkinSampleIndex = -1; + #endregion + + if ( !string.IsNullOrEmpty(TJAPlayer3.ConfigIni.FontName)) + this.prvFont = new CPrivateFastFont(new FontFamily(TJAPlayer3.ConfigIni.FontName), 20 ); // t項目リストの設定 の前に必要 + else + this.prvFont = new CPrivateFastFont(new FontFamily("MS UI Gothic"), 20); + + // this.listMenu = new List(); + + this.t項目リストの設定_Drums(); // + this.t項目リストの設定_System(); // 順番として、最後にSystemを持ってくること。設定一覧の初期位置がSystemのため。 + this.b要素値にフォーカス中 = false; + this.n目標のスクロールカウンタ = 0; + this.n現在のスクロールカウンタ = 0; + this.nスクロール用タイマ値 = -1; + this.ct三角矢印アニメ = new CCounter(); + + this.iSystemSoundType_initial = this.iSystemSoundType.n現在選択されている項目番号; // CONFIGに入ったときの値を保持しておく + this.iSystemWASAPIBufferSizeMs_initial = this.iSystemWASAPIBufferSizeMs.n現在の値; // CONFIG脱出時にこの値から変更されているようなら + // this.iSystemASIOBufferSizeMs_initial = this.iSystemASIOBufferSizeMs.n現在の値; // サウンドデバイスを再構築する + this.iSystemASIODevice_initial = this.iSystemASIODevice.n現在選択されている項目番号; // + this.iSystemSoundTimerType_initial = this.iSystemSoundTimerType.GetIndex(); // + base.On活性化(); + } + public override void On非活性化() + { + if( this.b活性化してない ) + return; + + this.tConfigIniへ記録する(); + this.list項目リスト.Clear(); + this.ct三角矢印アニメ = null; + + prvFont.Dispose(); + base.On非活性化(); + #region [ Skin変更 ] + if ( TJAPlayer3.Skin.GetCurrentSkinSubfolderFullName( true ) != this.skinSubFolder_org ) + { + TJAPlayer3.app.RefleshSkin(); + } + #endregion + + // #24820 2013.1.22 yyagi CONFIGでWASAPI/ASIO/DirectSound関連の設定を変更した場合、サウンドデバイスを再構築する。 + // #33689 2014.6.17 yyagi CONFIGでSoundTimerTypeの設定を変更した場合も、サウンドデバイスを再構築する。 + #region [ サウンドデバイス変更 ] + if ( this.iSystemSoundType_initial != this.iSystemSoundType.n現在選択されている項目番号 || + this.iSystemWASAPIBufferSizeMs_initial != this.iSystemWASAPIBufferSizeMs.n現在の値 || + // this.iSystemASIOBufferSizeMs_initial != this.iSystemASIOBufferSizeMs.n現在の値 || + this.iSystemASIODevice_initial != this.iSystemASIODevice.n現在選択されている項目番号 || + this.iSystemSoundTimerType_initial != this.iSystemSoundTimerType.GetIndex() ) + { + ESoundDeviceType soundDeviceType; + switch ( this.iSystemSoundType.n現在選択されている項目番号 ) + { + case 0: + soundDeviceType = ESoundDeviceType.DirectSound; + break; + case 1: + soundDeviceType = ESoundDeviceType.ASIO; + break; + case 2: + soundDeviceType = ESoundDeviceType.ExclusiveWASAPI; + break; + default: + soundDeviceType = ESoundDeviceType.Unknown; + break; + } + TJAPlayer3.Sound管理.t初期化( soundDeviceType, + this.iSystemWASAPIBufferSizeMs.n現在の値, + 0, + // this.iSystemASIOBufferSizeMs.n現在の値, + this.iSystemASIODevice.n現在選択されている項目番号, + this.iSystemSoundTimerType.bON ); + TJAPlayer3.app.ShowWindowTitleWithSoundType(); + TJAPlayer3.Skin.ReloadSkin();// 音声の再読み込みをすることによって、音量の初期化を防ぐ + } + #endregion + #region [ サウンドのタイムストレッチモード変更 ] + FDK.CSound管理.bIsTimeStretch = this.iSystemTimeStretch.bON; + #endregion + } + public override void OnManagedリソースの作成() + { + if( this.b活性化してない ) + return; + + //this.tx通常項目行パネル = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\4_itembox.png" ), false ); + //this.txその他項目行パネル = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\4_itembox other.png" ), false ); + //this.tx三角矢印 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\4_triangle arrow.png" ), false ); + this.txSkinSample1 = null; // スキン選択時に動的に設定するため、ここでは初期化しない + base.OnManagedリソースの作成(); + } + public override void OnManagedリソースの解放() + { + if( this.b活性化してない ) + return; + + TJAPlayer3.tテクスチャの解放( ref this.txSkinSample1 ); + //CDTXMania.tテクスチャの解放( ref this.tx通常項目行パネル ); + //CDTXMania.tテクスチャの解放( ref this.txその他項目行パネル ); + //CDTXMania.tテクスチャの解放( ref this.tx三角矢印 ); + + base.OnManagedリソースの解放(); + } + private void OnListMenuの初期化() + { + OnListMenuの解放(); + this.listMenu = new stMenuItemRight[ this.list項目リスト.Count ]; + } + + /// + /// 事前にレンダリングしておいたテクスチャを解放する。 + /// + private void OnListMenuの解放() + { + if ( listMenu != null ) + { + for ( int i = 0; i < listMenu.Length; i++ ) + { + if ( listMenu[ i ].txParam != null ) + { + listMenu[ i ].txParam.Dispose(); + } + if ( listMenu[ i ].txMenuItemRight != null ) + { + listMenu[ i ].txMenuItemRight.Dispose(); + } + } + this.listMenu = null; + } + } + public override int On進行描画() + { + throw new InvalidOperationException( "t進行描画(bool)のほうを使用してください。" ); + } + public int t進行描画( bool b項目リスト側にフォーカスがある ) + { + if( this.b活性化してない ) + return 0; + + // 進行 + + #region [ 初めての進行描画 ] + //----------------- + if( base.b初めての進行描画 ) + { + this.nスクロール用タイマ値 = (long)(CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)); + this.ct三角矢印アニメ.t開始( 0, 9, 50, TJAPlayer3.Timer ); + + base.b初めての進行描画 = false; + } + //----------------- + #endregion + + this.b項目リスト側にフォーカスがある = b項目リスト側にフォーカスがある; // 記憶 + + #region [ 項目スクロールの進行 ] + //----------------- + long n現在時刻 = TJAPlayer3.Timer.n現在時刻; + if( n現在時刻 < this.nスクロール用タイマ値 ) this.nスクロール用タイマ値 = n現在時刻; + + const int INTERVAL = 2; // [ms] + while( ( n現在時刻 - this.nスクロール用タイマ値 ) >= INTERVAL ) + { + int n目標項目までのスクロール量 = Math.Abs( (int) ( this.n目標のスクロールカウンタ - this.n現在のスクロールカウンタ ) ); + int n加速度 = 0; + + #region [ n加速度の決定;目標まで遠いほど加速する。] + //----------------- + if( n目標項目までのスクロール量 <= 100 ) + { + n加速度 = 2; + } + else if( n目標項目までのスクロール量 <= 300 ) + { + n加速度 = 3; + } + else if( n目標項目までのスクロール量 <= 500 ) + { + n加速度 = 4; + } + else + { + n加速度 = 8; + } + //----------------- + #endregion + #region [ this.n現在のスクロールカウンタに n加速度 を加減算。] + //----------------- + if( this.n現在のスクロールカウンタ < this.n目標のスクロールカウンタ ) + { + this.n現在のスクロールカウンタ += n加速度; + if( this.n現在のスクロールカウンタ > this.n目標のスクロールカウンタ ) + { + // 目標を超えたら目標値で停止。 + this.n現在のスクロールカウンタ = this.n目標のスクロールカウンタ; + } + } + else if( this.n現在のスクロールカウンタ > this.n目標のスクロールカウンタ ) + { + this.n現在のスクロールカウンタ -= n加速度; + if( this.n現在のスクロールカウンタ < this.n目標のスクロールカウンタ ) + { + // 目標を超えたら目標値で停止。 + this.n現在のスクロールカウンタ = this.n目標のスクロールカウンタ; + } + } + //----------------- + #endregion + #region [ 行超え処理、ならびに目標位置に到達したらスクロールを停止して項目変更通知を発行。] + //----------------- + if( this.n現在のスクロールカウンタ >= 100 ) + { + this.n現在の選択項目 = this.t次の項目( this.n現在の選択項目 ); + this.n現在のスクロールカウンタ -= 100; + this.n目標のスクロールカウンタ -= 100; + if( this.n目標のスクロールカウンタ == 0 ) + { + TJAPlayer3.stageコンフィグ.t項目変更通知(); + } + } + else if( this.n現在のスクロールカウンタ <= -100 ) + { + this.n現在の選択項目 = this.t前の項目( this.n現在の選択項目 ); + this.n現在のスクロールカウンタ += 100; + this.n目標のスクロールカウンタ += 100; + if( this.n目標のスクロールカウンタ == 0 ) + { + TJAPlayer3.stageコンフィグ.t項目変更通知(); + } + } + //----------------- + #endregion + + this.nスクロール用タイマ値 += INTERVAL; + } + //----------------- + #endregion + + #region [ ▲印アニメの進行 ] + //----------------- + if( this.b項目リスト側にフォーカスがある && ( this.n目標のスクロールカウンタ == 0 ) ) + this.ct三角矢印アニメ.t進行Loop(); + //----------------- + #endregion + + + // 描画 + + this.ptパネルの基本座標[ 4 ].X = this.b項目リスト側にフォーカスがある ? 0x228 : 0x25a; // メニューにフォーカスがあるなら、項目リストの中央は頭を出さない。 + + #region [ 計11個の項目パネルを描画する。] + //----------------- + int nItem = this.n現在の選択項目; + for( int i = 0; i < 4; i++ ) + nItem = this.t前の項目( nItem ); + + for( int n行番号 = -4; n行番号 < 6; n行番号++ ) // n行番号 == 0 がフォーカスされている項目パネル。 + { + #region [ 今まさに画面外に飛びだそうとしている項目パネルは描画しない。] + //----------------- + if( ( ( n行番号 == -4 ) && ( this.n現在のスクロールカウンタ > 0 ) ) || // 上に飛び出そうとしている + ( ( n行番号 == +5 ) && ( this.n現在のスクロールカウンタ < 0 ) ) ) // 下に飛び出そうとしている + { + nItem = this.t次の項目( nItem ); + continue; + } + //----------------- + #endregion + + int n移動元の行の基本位置 = n行番号 + 4; + int n移動先の行の基本位置 = ( this.n現在のスクロールカウンタ <= 0 ) ? ( ( n移動元の行の基本位置 + 1 ) % 10 ) : ( ( ( n移動元の行の基本位置 - 1 ) + 10 ) % 10 ); + int x = this.ptパネルの基本座標[ n移動元の行の基本位置 ].X + ( (int) ( ( this.ptパネルの基本座標[ n移動先の行の基本位置 ].X - this.ptパネルの基本座標[ n移動元の行の基本位置 ].X ) * ( ( (double) Math.Abs( this.n現在のスクロールカウンタ ) ) / 100.0 ) ) ); + int y = this.ptパネルの基本座標[ n移動元の行の基本位置 ].Y + ( (int) ( ( this.ptパネルの基本座標[ n移動先の行の基本位置 ].Y - this.ptパネルの基本座標[ n移動元の行の基本位置 ].Y ) * ( ( (double) Math.Abs( this.n現在のスクロールカウンタ ) ) / 100.0 ) ) ); + + #region [ 現在の行の項目パネル枠を描画。] + //----------------- + switch( this.list項目リスト[ nItem ].eパネル種別 ) + { + case CItemBase.Eパネル種別.通常: + case CItemBase.Eパネル種別.その他: + if ( TJAPlayer3.Tx.Config_ItemBox != null ) + TJAPlayer3.Tx.Config_ItemBox.t2D描画( TJAPlayer3.app.Device, x, y ); + break; + } + //----------------- + #endregion + #region [ 現在の行の項目名を描画。] + //----------------- + if ( listMenu[ nItem ].txMenuItemRight != null ) // 自前のキャッシュに含まれているようなら、再レンダリングせずキャッシュを使用 + { + listMenu[nItem].txMenuItemRight.t2D描画(TJAPlayer3.app.Device, x + 20 + TJAPlayer3.Skin.Config_ItemText_Correction_X, y + 12 + TJAPlayer3.Skin.Config_ItemText_Correction_Y); + } + else + { + using (var bmpItem = prvFont.DrawPrivateFont( this.list項目リスト[ nItem ].str項目名, Color.White, Color.Black )) + { + listMenu[ nItem ].txMenuItemRight = TJAPlayer3.tテクスチャの生成( bmpItem ); + // ctItem.t2D描画( CDTXMania.app.Device, ( x + 0x12 ) * Scale.X, ( y + 12 ) * Scale.Y - 20 ); + // CDTXMania.tテクスチャの解放( ref ctItem ); + } + } + //CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 0x12, y + 12, this.list項目リスト[ nItem ].str項目名 ); + //----------------- + #endregion + #region [ 現在の行の項目の要素を描画。] + //----------------- + string strParam = null; + bool b強調 = false; + switch ( this.list項目リスト[ nItem ].e種別 ) + { + case CItemBase.E種別.ONorOFFトグル: + #region [ *** ] + //----------------- + //CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 210, y + 12, ( (CItemToggle) this.list項目リスト[ nItem ] ).bON ? "ON" : "OFF" ); + strParam = ( (CItemToggle) this.list項目リスト[ nItem ] ).bON ? "ON" : "OFF"; + break; + //----------------- + #endregion + + case CItemBase.E種別.ONorOFFor不定スリーステート: + #region [ *** ] + //----------------- + switch ( ( (CItemThreeState) this.list項目リスト[ nItem ] ).e現在の状態 ) + { + case CItemThreeState.E状態.ON: + strParam = "ON"; + break; + + case CItemThreeState.E状態.不定: + strParam = "- -"; + break; + + default: + strParam = "OFF"; + break; + } + //CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 210, y + 12, "ON" ); + break; + //----------------- + #endregion + + case CItemBase.E種別.整数: // #24789 2011.4.8 yyagi: add PlaySpeed supports (copied them from OPTION) + #region [ *** ] + //----------------- + if ( this.list項目リスト[ nItem ] == this.iCommonPlaySpeed ) + { + double d = ( (double) ( (CItemInteger) this.list項目リスト[ nItem ] ).n現在の値 ) / 20.0; + //CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 210, y + 12, d.ToString( "0.000" ), ( n行番号 == 0 ) && this.b要素値にフォーカス中 ); + strParam = d.ToString( "0.000" ); + } + else if ( this.list項目リスト[ nItem ] == this.iDrumsScrollSpeed) + { + float f = ( ( (CItemInteger) this.list項目リスト[ nItem ] ).n現在の値 + 1 ) * 0.5f; + //CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 210, y + 12, f.ToString( "x0.0" ), ( n行番号 == 0 ) && this.b要素値にフォーカス中 ); + strParam = f.ToString( "x0.0" ); + } + else + { + //CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 210, y + 12, ( (CItemInteger) this.list項目リスト[ nItem ] ).n現在の値.ToString(), ( n行番号 == 0 ) && this.b要素値にフォーカス中 ); + strParam = ( (CItemInteger) this.list項目リスト[ nItem ] ).n現在の値.ToString(); + } + b強調 = ( n行番号 == 0 ) && this.b要素値にフォーカス中; + break; + //----------------- + #endregion + + case CItemBase.E種別.リスト: // #28195 2012.5.2 yyagi: add Skin supports + #region [ *** ] + //----------------- + { + CItemList list = (CItemList) this.list項目リスト[ nItem ]; + //CDTXMania.stageコンフィグ.actFont.t文字列描画( x + 210, y + 12, list.list項目値[ list.n現在選択されている項目番号 ] ); + strParam = list.list項目値[ list.n現在選択されている項目番号 ]; + + #region [ 必要な場合に、Skinのサンプルを生成・描画する。#28195 2012.5.2 yyagi ] + if ( this.list項目リスト[ this.n現在の選択項目 ] == this.iSystemSkinSubfolder ) + { + tGenerateSkinSample(); // 最初にSkinの選択肢にきたとき(Enterを押す前)に限り、サンプル生成が発生する。 + if ( txSkinSample1 != null ) + { + txSkinSample1.t2D描画( TJAPlayer3.app.Device, 124, 449 ); + txSkinSample1.t2D描画( TJAPlayer3.app.Device, 124, 449 ); + } + } + #endregion + break; + } + //----------------- + #endregion + } + if ( b強調 ) + { + using (var bmpStr = prvFont.DrawPrivateFont(strParam, Color.Black, Color.White, Color.Yellow, Color.OrangeRed)) + { + using (var txStr = TJAPlayer3.tテクスチャの生成( bmpStr, false )) + { + txStr.t2D描画( TJAPlayer3.app.Device, x + 400 + TJAPlayer3.Skin.Config_ItemText_Correction_X, y + 12 + TJAPlayer3.Skin.Config_ItemText_Correction_Y ); + } + } + } + else + { + int nIndex = this.list項目リスト[ nItem ].GetIndex(); + if ( listMenu[ nItem ].nParam != nIndex || listMenu[ nItem ].txParam == null ) + { + stMenuItemRight stm = listMenu[ nItem ]; + stm.nParam = nIndex; + object o = this.list項目リスト[ nItem ].obj現在値(); + stm.strParam = ( o == null ) ? "" : o.ToString(); + + using (var bmpStr = prvFont.DrawPrivateFont( strParam, Color.White, Color.Black )) + { + stm.txParam = TJAPlayer3.tテクスチャの生成( bmpStr, false ); + } + + listMenu[ nItem ] = stm; + } + listMenu[ nItem ].txParam.t2D描画( TJAPlayer3.app.Device, x + 400 + TJAPlayer3.Skin.Config_ItemText_Correction_X, y + 12 + TJAPlayer3.Skin.Config_ItemText_Correction_Y ); + } + //----------------- + #endregion + + nItem = this.t次の項目( nItem ); + } + //----------------- + #endregion + + #region [ 項目リストにフォーカスがあって、かつスクロールが停止しているなら、パネルの上下に▲印を描画する。] + //----------------- + if( this.b項目リスト側にフォーカスがある && ( this.n目標のスクロールカウンタ == 0 ) ) + { + int x; + int y_upper; + int y_lower; + + // 位置決定。 + + if( this.b要素値にフォーカス中 ) + { + x = 552; // 要素値の上下あたり。 + y_upper = 0x117 - this.ct三角矢印アニメ.n現在の値; + y_lower = 0x17d + this.ct三角矢印アニメ.n現在の値; + } + else + { + x = 552; // 項目名の上下あたり。 + y_upper = 0x129 - this.ct三角矢印アニメ.n現在の値; + y_lower = 0x16b + this.ct三角矢印アニメ.n現在の値; + } + + // 描画。 + + if( TJAPlayer3.Tx.Config_Arrow != null ) + { + TJAPlayer3.Tx.Config_Arrow.t2D描画( TJAPlayer3.app.Device, x, y_upper, new Rectangle( 0, 0, 0x40, 0x18 ) ); + TJAPlayer3.Tx.Config_Arrow.t2D描画( TJAPlayer3.app.Device, x, y_lower, new Rectangle( 0, 0x18, 0x40, 0x18 ) ); + } + } + //----------------- + #endregion + return 0; + } + + + // その他 + + #region [ private ] + //----------------- + private enum Eメニュー種別 + { + System, + Drums, + KeyAssignSystem, // #24609 2011.4.12 yyagi: 画面キャプチャキーのアサイン + KeyAssignDrums, + Unknown + + } + + private bool b項目リスト側にフォーカスがある; + private bool b要素値にフォーカス中; + private CCounter ct三角矢印アニメ; + private Eメニュー種別 eメニュー種別; + #region [ キーコンフィグ ] + private CItemBase iKeyAssignSystemCapture; // #24609 + private CItemBase iKeyAssignSystemReturnToMenu; // #24609 + private CItemBase iKeyAssignDrumsReturnToMenu; + + private CItemBase iKeyAssignTaikoLRed; + private CItemBase iKeyAssignTaikoRRed; + private CItemBase iKeyAssignTaikoLBlue; + private CItemBase iKeyAssignTaikoRBlue; + private CItemBase iKeyAssignTaikoLRed2P; + private CItemBase iKeyAssignTaikoRRed2P; + private CItemBase iKeyAssignTaikoLBlue2P; + private CItemBase iKeyAssignTaikoRBlue2P; + + #endregion + private CItemToggle iLogOutputLog; + private CItemToggle iSystemApplyLoudnessMetadata; + private CItemInteger iSystemTargetLoudness; + private CItemToggle iSystemApplySongVol; + private CItemInteger iSystemSoundEffectLevel; + private CItemInteger iSystemVoiceLevel; + private CItemInteger iSystemSongPlaybackLevel; + private CItemInteger iSystemKeyboardSoundLevelIncrement; + private CItemToggle iSystemAVI; + private CItemToggle iSystemBGA; + private CItemInteger iSystemBGAlpha; + private CItemToggle iSystemBGMSound; + private CItemToggle iSystemDebugInfo; + private CItemToggle iSystemFullscreen; + private CItemInteger iSystemMinComboDrums; + private CItemInteger iSystemPreviewImageWait; + private CItemInteger iSystemPreviewSoundWait; + private CItemToggle iSystemRandomFromSubBox; + private CItemBase iSystemReturnToMenu; + private CItemToggle iSystemSaveScore; + private CItemToggle iSystemStageFailed; + private CItemToggle iSystemVSyncWait; + private CItemToggle iSystemAutoResultCapture; // #25399 2011.6.9 yyagi + private CItemToggle SendDiscordPlayingInformation; + private CItemToggle iSystemBufferedInput; + private CItemInteger iSystemRisky; // #23559 2011.7.27 yyagi + private CItemList iSystemSoundType; // #24820 2013.1.3 yyagi + private CItemInteger iSystemWASAPIBufferSizeMs; // #24820 2013.1.15 yyagi +// private CItemInteger iSystemASIOBufferSizeMs; // #24820 2013.1.3 yyagi + private CItemList iSystemASIODevice; // #24820 2013.1.17 yyagi + + private int iSystemSoundType_initial; + private int iSystemWASAPIBufferSizeMs_initial; +// private int iSystemASIOBufferSizeMs_initial; + private int iSystemASIODevice_initial; + private CItemToggle iSystemSoundTimerType; // #33689 2014.6.17 yyagi + private int iSystemSoundTimerType_initial; // #33689 2014.6.17 yyagi + + private CItemToggle iSystemTimeStretch; // #23664 2013.2.24 yyagi + + private List list項目リスト; + private long nスクロール用タイマ値; + private int n現在のスクロールカウンタ; + private int n目標のスクロールカウンタ; + private Point[] ptパネルの基本座標 = new Point[] { new Point(0x25a, 4), new Point(0x25a, 0x4f), new Point(0x25a, 0x9a), new Point(0x25a, 0xe5), new Point(0x228, 0x130), new Point(0x25a, 0x17b), new Point(0x25a, 0x1c6), new Point(0x25a, 0x211), new Point(0x25a, 0x25c), new Point(0x25a, 0x2a7) }; + //private CTexture txその他項目行パネル; + //private CTexture tx三角矢印; + //private CTexture tx通常項目行パネル; + + private CPrivateFastFont prvFont; + //private List list項目リスト_str最終描画名; + private struct stMenuItemRight + { + // public string strMenuItem; + public CTexture txMenuItemRight; + public int nParam; + public string strParam; + public CTexture txParam; + } + private stMenuItemRight[] listMenu; + + private CTexture txSkinSample1; // #28195 2012.5.2 yyagi + private string[] skinSubFolders; // + private string[] skinNames; // + private string skinSubFolder_org; // + private int nSkinSampleIndex; // + private int nSkinIndex; // + + private CItemBase iDrumsGoToKeyAssign; + private CItemBase iSystemGoToKeyAssign; // #24609 + private CItemInteger iCommonPlaySpeed; + private CItemBase iDrumsReturnToMenu; + private CItemInteger iDrumsScrollSpeed; + private CItemToggle iDrumsTight; + private CItemToggle iTaikoAutoPlay; + private CItemToggle iTaikoAutoPlay2P; + private CItemToggle iTaikoAutoRoll; + private CItemToggle iTaikoBranchGuide; + private CItemList iTaikoDefaultCourse; //2017.01.30 DD デフォルトでカーソルをあわせる難易度 + private CItemList iTaikoScoreMode; + private CItemList iTaikoBranchAnime; + private CItemToggle iTaikoNoInfo; + private CItemList iTaikoRandom; + private CItemList iTaikoStealth; + private CItemList iTaikoGameMode; + private CItemToggle iTaikoJust; + private CItemToggle iTaikoJudgeCountDisp; + private CItemToggle iTaikoBigNotesJudge; + private CItemInteger iTaikoPlayerCount; + CItemToggle ShowChara; + CItemToggle ShowDancer; + CItemToggle ShowRunner; + CItemToggle ShowMob; + CItemToggle ShowFooter; + CItemToggle ShowPuchiChara; + CItemToggle ShinuchiMode; + CItemToggle FastRender; + CItemInteger MusicPreTimeMs; + + private CItemInteger iInputAdjustTimeMs; + private CItemList iSystemSkinSubfolder; // #28195 2012.5.2 yyagi + private CItemBase iSystemReloadDTX; // #32081 2013.10.21 yyagi + //private CItemInteger iSystemMasterVolume; // #33700 2014.4.26 yyagi + + private int t前の項目( int nItem ) + { + if( --nItem < 0 ) + { + nItem = this.list項目リスト.Count - 1; + } + return nItem; + } + private int t次の項目( int nItem ) + { + if( ++nItem >= this.list項目リスト.Count ) + { + nItem = 0; + } + return nItem; + } + private void tConfigIniへ記録する() + { + switch( this.eメニュー種別 ) + { + case Eメニュー種別.System: + this.tConfigIniへ記録する_System(); + return; + + case Eメニュー種別.Drums: + this.tConfigIniへ記録する_Drums(); + return; + } + } + private void tConfigIniへ記録する_System() + { + //CDTXMania.ConfigIni.eDark = (Eダークモード) this.iCommonDark.n現在選択されている項目番号; + TJAPlayer3.ConfigIni.n演奏速度 = this.iCommonPlaySpeed.n現在の値; + + TJAPlayer3.ConfigIni.b全画面モード = this.iSystemFullscreen.bON; + TJAPlayer3.ConfigIni.bSTAGEFAILED有効 = this.iSystemStageFailed.bON; + TJAPlayer3.ConfigIni.bランダムセレクトで子BOXを検索対象とする = this.iSystemRandomFromSubBox.bON; + + //CDTXMania.ConfigIni.bWave再生位置自動調整機能有効 = this.iSystemAdjustWaves.bON; + TJAPlayer3.ConfigIni.b垂直帰線待ちを行う = this.iSystemVSyncWait.bON; + TJAPlayer3.ConfigIni.bバッファ入力を行う = this.iSystemBufferedInput.bON; + TJAPlayer3.ConfigIni.bAVI有効 = this.iSystemAVI.bON; + TJAPlayer3.ConfigIni.bBGA有効 = this.iSystemBGA.bON; +// CDTXMania.ConfigIni.bGraph有効 = this.iSystemGraph.bON;#24074 2011.01.23 comment-out ikanick オプション(Drums)へ移行 + TJAPlayer3.ConfigIni.n曲が選択されてからプレビュー音が鳴るまでのウェイトms = this.iSystemPreviewSoundWait.n現在の値; + TJAPlayer3.ConfigIni.n曲が選択されてからプレビュー画像が表示開始されるまでのウェイトms = this.iSystemPreviewImageWait.n現在の値; + TJAPlayer3.ConfigIni.b演奏情報を表示する = this.iSystemDebugInfo.bON; + TJAPlayer3.ConfigIni.n背景の透過度 = this.iSystemBGAlpha.n現在の値; + TJAPlayer3.ConfigIni.bBGM音を発声する = this.iSystemBGMSound.bON; + //CDTXMania.ConfigIni.b歓声を発声する = this.iSystemAudienceSound.bON; + //CDTXMania.ConfigIni.eダメージレベル = (Eダメージレベル) this.iSystemDamageLevel.n現在選択されている項目番号; + TJAPlayer3.ConfigIni.bScoreIniを出力する = this.iSystemSaveScore.bON; + + TJAPlayer3.ConfigIni.ApplyLoudnessMetadata = this.iSystemApplyLoudnessMetadata.bON; + TJAPlayer3.ConfigIni.TargetLoudness = this.iSystemTargetLoudness.n現在の値 / 10.0; + TJAPlayer3.ConfigIni.ApplySongVol = this.iSystemApplySongVol.bON; + TJAPlayer3.ConfigIni.SoundEffectLevel = this.iSystemSoundEffectLevel.n現在の値; + TJAPlayer3.ConfigIni.VoiceLevel = this.iSystemVoiceLevel.n現在の値; + TJAPlayer3.ConfigIni.SongPlaybackLevel = this.iSystemSongPlaybackLevel.n現在の値; + TJAPlayer3.ConfigIni.KeyboardSoundLevelIncrement = this.iSystemKeyboardSoundLevelIncrement.n現在の値; + TJAPlayer3.ConfigIni.MusicPreTimeMs = this.MusicPreTimeMs.n現在の値; + + TJAPlayer3.ConfigIni.bログ出力 = this.iLogOutputLog.bON; + //CDTXMania.ConfigIni.bストイックモード = this.iSystemStoicMode.bON; + + //CDTXMania.ConfigIni.nShowLagType = this.iSystemShowLag.n現在選択されている項目番号; // #25370 2011.6.3 yyagi + TJAPlayer3.ConfigIni.bIsAutoResultCapture = this.iSystemAutoResultCapture.bON; // #25399 2011.6.9 yyagi + TJAPlayer3.ConfigIni.SendDiscordPlayingInformation = this.SendDiscordPlayingInformation.bON; + + TJAPlayer3.ConfigIni.nRisky = this.iSystemRisky.n現在の値; // #23559 2011.7.27 yyagi + + TJAPlayer3.ConfigIni.strSystemSkinSubfolderFullName = skinSubFolders[ nSkinIndex ]; // #28195 2012.5.2 yyagi + TJAPlayer3.Skin.SetCurrentSkinSubfolderFullName( TJAPlayer3.ConfigIni.strSystemSkinSubfolderFullName, true ); + + TJAPlayer3.ConfigIni.nSoundDeviceType = this.iSystemSoundType.n現在選択されている項目番号; // #24820 2013.1.3 yyagi + TJAPlayer3.ConfigIni.nWASAPIBufferSizeMs = this.iSystemWASAPIBufferSizeMs.n現在の値; // #24820 2013.1.15 yyagi +// CDTXMania.ConfigIni.nASIOBufferSizeMs = this.iSystemASIOBufferSizeMs.n現在の値; // #24820 2013.1.3 yyagi + TJAPlayer3.ConfigIni.nASIODevice = this.iSystemASIODevice.n現在選択されている項目番号; // #24820 2013.1.17 yyagi + TJAPlayer3.ConfigIni.bUseOSTimer = this.iSystemSoundTimerType.bON; // #33689 2014.6.17 yyagi + + TJAPlayer3.ConfigIni.bTimeStretch = this.iSystemTimeStretch.bON; // #23664 2013.2.24 yyagi +//Trace.TraceInformation( "saved" ); +//Trace.TraceInformation( "Skin現在Current : " + CDTXMania.Skin.GetCurrentSkinSubfolderFullName(true) ); +//Trace.TraceInformation( "Skin現在System : " + CSkin.strSystemSkinSubfolderFullName ); +//Trace.TraceInformation( "Skin現在BoxDef : " + CSkin.strBoxDefSkinSubfolderFullName ); + //CDTXMania.ConfigIni.nMasterVolume = this.iSystemMasterVolume.n現在の値; // #33700 2014.4.26 yyagi + //CDTXMania.ConfigIni.e判定表示優先度 = (E判定表示優先度) this.iSystemJudgeDispPriority.n現在選択されている項目番号; + TJAPlayer3.ConfigIni.ShowChara = this.ShowChara.bON; + TJAPlayer3.ConfigIni.ShowDancer = this.ShowDancer.bON; + TJAPlayer3.ConfigIni.ShowRunner = this.ShowRunner.bON; + TJAPlayer3.ConfigIni.ShowMob = this.ShowMob.bON; + TJAPlayer3.ConfigIni.ShowFooter = this.ShowFooter.bON; + TJAPlayer3.ConfigIni.ShowPuchiChara = this.ShowPuchiChara.bON; + TJAPlayer3.ConfigIni.nPlayerCount = this.iTaikoPlayerCount.n現在の値; + TJAPlayer3.ConfigIni.FastRender = this.FastRender.bON; + } + private void tConfigIniへ記録する_Drums() + { + TJAPlayer3.ConfigIni.b太鼓パートAutoPlay = this.iTaikoAutoPlay.bON; + TJAPlayer3.ConfigIni.b太鼓パートAutoPlay2P = this.iTaikoAutoPlay2P.bON; + TJAPlayer3.ConfigIni.bAuto先生の連打 = this.iTaikoAutoRoll.bON; + + TJAPlayer3.ConfigIni.n譜面スクロール速度.Drums = this.iDrumsScrollSpeed.n現在の値; + //CDTXMania.ConfigIni.bドラムコンボ表示 = this.iDrumsComboDisp.bON; + // "Sudden" || "Sud+Hid" + //CDTXMania.ConfigIni.bSudden.Drums = ( this.iDrumsSudHid.n現在選択されている項目番号 == 1 || this.iDrumsSudHid.n現在選択されている項目番号 == 3 ) ? true : false; + // "Hidden" || "Sud+Hid" + //CDTXMania.ConfigIni.bHidden.Drums = ( this.iDrumsSudHid.n現在選択されている項目番号 == 2 || this.iDrumsSudHid.n現在選択されている項目番号 == 3 ) ? true : false; + //if ( this.iDrumsSudHid.n現在選択されている項目番号 == 4 ) CDTXMania.ConfigIni.eInvisible.Drums = EInvisible.SEMI; // "S-Invisible" + //else if ( this.iDrumsSudHid.n現在選択されている項目番号 == 5 ) CDTXMania.ConfigIni.eInvisible.Drums = EInvisible.FULL; // "F-Invisible" + //else CDTXMania.ConfigIni.eInvisible.Drums = EInvisible.OFF; + //CDTXMania.ConfigIni.bReverse.Drums = this.iDrumsReverse.bON; + //CDTXMania.ConfigIni.判定文字表示位置.Drums = (E判定文字表示位置) this.iDrumsPosition.n現在選択されている項目番号; + TJAPlayer3.ConfigIni.bTight = this.iDrumsTight.bON; + + TJAPlayer3.ConfigIni.nInputAdjustTimeMs = this.iInputAdjustTimeMs.n現在の値; + + TJAPlayer3.ConfigIni.n表示可能な最小コンボ数.Drums = this.iSystemMinComboDrums.n現在の値; + TJAPlayer3.ConfigIni.nRisky = this.iSystemRisky.n現在の値; // #23559 2911.7.27 yyagi + //CDTXMania.ConfigIni.e判定表示優先度.Drums = (E判定表示優先度) this.iDrumsJudgeDispPriority.n現在選択されている項目番号; + + TJAPlayer3.ConfigIni.bBranchGuide = this.iTaikoBranchGuide.bON; + TJAPlayer3.ConfigIni.nDefaultCourse = this.iTaikoDefaultCourse.n現在選択されている項目番号; + TJAPlayer3.ConfigIni.nScoreMode = this.iTaikoScoreMode.n現在選択されている項目番号; + TJAPlayer3.ConfigIni.ShinuchiMode = this.ShinuchiMode.bON; + TJAPlayer3.ConfigIni.nBranchAnime = this.iTaikoBranchAnime.n現在選択されている項目番号; + //CDTXMania.ConfigIni.bHispeedRandom = this.iTaikoHispeedRandom.bON; + TJAPlayer3.ConfigIni.bNoInfo = this.iTaikoNoInfo.bON; + TJAPlayer3.ConfigIni.eRandom.Taiko = (Eランダムモード)this.iTaikoRandom.n現在選択されている項目番号; + TJAPlayer3.ConfigIni.eSTEALTH = (Eステルスモード)this.iTaikoStealth.n現在選択されている項目番号; + TJAPlayer3.ConfigIni.eGameMode = (EGame)this.iTaikoGameMode.n現在選択されている項目番号; + TJAPlayer3.ConfigIni.bJust = this.iTaikoJust.bON; + TJAPlayer3.ConfigIni.bJudgeCountDisplay = this.iTaikoJudgeCountDisp.bON; + TJAPlayer3.ConfigIni.b大音符判定 = this.iTaikoBigNotesJudge.bON; + } + //----------------- + #endregion + } +} diff --git a/TJAPlayer3/Stages/04.Config/CStageコンフィグ.cs b/TJAPlayer3/Stages/04.Config/CStageコンフィグ.cs new file mode 100644 index 00000000..2348f231 --- /dev/null +++ b/TJAPlayer3/Stages/04.Config/CStageコンフィグ.cs @@ -0,0 +1,632 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Globalization; +using System.Runtime.InteropServices; +using System.Drawing; +using System.Diagnostics; +using FDK; + +namespace TJAPlayer3 +{ + internal class CStageコンフィグ : CStage + { + // プロパティ + + public CActDFPFont actFont { get; private set; } + + + // コンストラクタ + + public CStageコンフィグ() + { + CActDFPFont font; + base.eステージID = CStage.Eステージ.コンフィグ; + base.eフェーズID = CStage.Eフェーズ.共通_通常状態; + this.actFont = font = new CActDFPFont(); + base.list子Activities.Add( font ); + base.list子Activities.Add( this.actFIFO = new CActFIFOWhite() ); + base.list子Activities.Add( this.actList = new CActConfigList() ); + base.list子Activities.Add( this.actKeyAssign = new CActConfigKeyAssign() ); + base.list子Activities.Add( this.actオプションパネル = new CActオプションパネル() ); + base.b活性化してない = true; + } + + + // メソッド + + public void tアサイン完了通知() // CONFIGにのみ存在 + { // + this.eItemPanelモード = EItemPanelモード.パッド一覧; // + } // + public void tパッド選択通知( EKeyConfigPart part, EKeyConfigPad pad ) // + { // + this.actKeyAssign.t開始( part, pad, this.actList.ib現在の選択項目.str項目名 ); // + this.eItemPanelモード = EItemPanelモード.キーコード一覧; // + } // + public void t項目変更通知() // OPTIONと共通 + { // + this.t説明文パネルに現在選択されている項目の説明を描画する(); // + } // + + + // CStage 実装 + + public override void On活性化() + { + Trace.TraceInformation( "コンフィグステージを活性化します。" ); + Trace.Indent(); + try + { + this.n現在のメニュー番号 = 0; // + if (!string.IsNullOrEmpty(TJAPlayer3.ConfigIni.FontName)) + { + this.ftフォント = new Font(TJAPlayer3.ConfigIni.FontName, 18.0f, FontStyle.Bold, GraphicsUnit.Pixel); + } + else + { + this.ftフォント = new Font("MS UI Gothic", 18.0f, FontStyle.Bold, GraphicsUnit.Pixel); + } + for( int i = 0; i < 4; i++ ) // + { // + this.ctキー反復用[ i ] = new CCounter( 0, 0, 0, TJAPlayer3.Timer ); // + } // + this.bメニューにフォーカス中 = true; // ここまでOPTIONと共通 + this.eItemPanelモード = EItemPanelモード.パッド一覧; + } + finally + { + Trace.TraceInformation( "コンフィグステージの活性化を完了しました。" ); + Trace.Unindent(); + } + base.On活性化(); // 2011.3.14 yyagi: On活性化()をtryの中から外に移動 + } + public override void On非活性化() + { + Trace.TraceInformation( "コンフィグステージを非活性化します。" ); + Trace.Indent(); + try + { + TJAPlayer3.ConfigIni.t書き出し( TJAPlayer3.strEXEのあるフォルダ + "Config.ini" ); // CONFIGだけ + if( this.ftフォント != null ) // 以下OPTIONと共通 + { + this.ftフォント.Dispose(); + this.ftフォント = null; + } + for( int i = 0; i < 4; i++ ) + { + this.ctキー反復用[ i ] = null; + } + base.On非活性化(); + } + catch ( UnauthorizedAccessException e ) + { + Trace.TraceError( e.ToString() ); + Trace.TraceError( "ファイルが読み取り専用になっていないか、管理者権限がないと書き込めなくなっていないか等を確認して下さい" ); + Trace.TraceError( "例外が発生しましたが処理を継続します。 (7a61f01b-1703-4aad-8d7d-08bd88ae8760)" ); + } + catch ( Exception e ) + { + Trace.TraceError( e.ToString() ); + Trace.TraceError( "例外が発生しましたが処理を継続します。 (83f0d93c-bb04-4a19-a596-bc32de39f496)" ); + } + finally + { + Trace.TraceInformation( "コンフィグステージの非活性化を完了しました。" ); + Trace.Unindent(); + } + } + public override void OnManagedリソースの作成() // OPTIONと画像以外共通 + { + if( !base.b活性化してない ) + { + ctBackgroundAnime = new CCounter(0, 1280, 20, TJAPlayer3.Timer); + //this.tx背景 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\4_background.jpg" ), false ); + //this.tx上部パネル = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\4_header panel.png" ) ); + //this.tx下部パネル = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\4_footer panel.png" ) ); + //this.txMenuカーソル = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenConfig menu cursor.png" ) ); + string[] strMenuItem = {"System", "Drums", "Exit"}; + txMenuItemLeft = new CTexture[strMenuItem.Length, 2]; + using (var prvFont = new CPrivateFastFont(CSkin.Path(@"mplus-1p-heavy.ttf"), 20)) + { + for (int i = 0; i < strMenuItem.Length; i++) + { + using (var bmpStr = prvFont.DrawPrivateFont(strMenuItem[i], Color.White, Color.Black)) + { + txMenuItemLeft[i, 0] = TJAPlayer3.tテクスチャの生成(bmpStr, false); + } + using (var bmpStr = prvFont.DrawPrivateFont(strMenuItem[i], Color.White, Color.Black, Color.Yellow, Color.OrangeRed)) + { + txMenuItemLeft[i, 1] = TJAPlayer3.tテクスチャの生成(bmpStr, false); + } + } + } + + if( this.bメニューにフォーカス中 ) + { + this.t説明文パネルに現在選択されているメニューの説明を描画する(); + } + else + { + this.t説明文パネルに現在選択されている項目の説明を描画する(); + } + base.OnManagedリソースの作成(); + } + } + public override void OnManagedリソースの解放() // OPTIONと同じ(COnfig.iniの書き出しタイミングのみ異なるが、無視して良い) + { + if( !base.b活性化してない ) + { + //CDTXMania.tテクスチャの解放( ref this.tx背景 ); + //CDTXMania.tテクスチャの解放( ref this.tx上部パネル ); + //CDTXMania.tテクスチャの解放( ref this.tx下部パネル ); + //CDTXMania.tテクスチャの解放( ref this.txMenuカーソル ); + TJAPlayer3.tテクスチャの解放( ref this.tx説明文パネル ); + for ( int i = 0; i < txMenuItemLeft.GetLength( 0 ); i++ ) + { + txMenuItemLeft[ i, 0 ].Dispose(); + txMenuItemLeft[ i, 0 ] = null; + txMenuItemLeft[ i, 1 ].Dispose(); + txMenuItemLeft[ i, 1 ] = null; + } + txMenuItemLeft = null; + base.OnManagedリソースの解放(); + } + } + public override int On進行描画() + { + if( base.b活性化してない ) + return 0; + + if( base.b初めての進行描画 ) + { + base.eフェーズID = CStage.Eフェーズ.共通_フェードイン; + this.actFIFO.tフェードイン開始(); + base.b初めての進行描画 = false; + } + + ctBackgroundAnime.t進行Loop(); + + // 描画 + + #region [ 背景 ] + //--------------------- + for(int i = 0; i < 2; i++) + if (TJAPlayer3.Tx.Config_Background != null ) + TJAPlayer3.Tx.Config_Background.t2D描画( TJAPlayer3.app.Device, 0 + -(1280 * i) + ctBackgroundAnime.n現在の値, 0 ); + if(TJAPlayer3.Tx.Config_Header != null ) + TJAPlayer3.Tx.Config_Header.t2D描画( TJAPlayer3.app.Device, 0, 0 ); + //--------------------- + #endregion + #region [ メニューカーソル ] + //--------------------- + if( TJAPlayer3.Tx.Config_Cursor != null ) + { + Rectangle rectangle; + TJAPlayer3.Tx.Config_Cursor.Opacity = this.bメニューにフォーカス中 ? 255 : 128; + int x = 110; + int y = (int)( 145.5 + ( this.n現在のメニュー番号 * 37.5 ) ); + int num3 = 340; + TJAPlayer3.Tx.Config_Cursor.t2D描画( TJAPlayer3.app.Device, x, y, new Rectangle( 0, 0, 32, 48 ) ); + TJAPlayer3.Tx.Config_Cursor.t2D描画( TJAPlayer3.app.Device, ( x + num3 ) - 32, y, new Rectangle( 20, 0, 32, 48 ) ); + x += 32; + for( num3 -= 64; num3 > 0; num3 -= rectangle.Width ) + { + rectangle = new Rectangle( 16, 0, 32, 48 ); + if( num3 < 32 ) + { + rectangle.Width -= 32 - num3; + } + TJAPlayer3.Tx.Config_Cursor.t2D描画( TJAPlayer3.app.Device, x, y, rectangle ); + x += rectangle.Width; + } + } + //--------------------- + #endregion + #region [ メニュー ] + //--------------------- + int menuY = 162 - 22; + int stepY = 39; + for ( int i = 0; i < txMenuItemLeft.GetLength( 0 ); i++ ) + { + //Bitmap bmpStr = (this.n現在のメニュー番号 == i) ? + // prvFont.DrawPrivateFont( strMenuItem[ i ], Color.White, Color.Black, Color.Yellow, Color.OrangeRed ) : + // prvFont.DrawPrivateFont( strMenuItem[ i ], Color.White, Color.Black ); + //txMenuItemLeft = CDTXMania.tテクスチャの生成( bmpStr, false ); + int flag = ( this.n現在のメニュー番号 == i ) ? 1 : 0; + int num4 = txMenuItemLeft[ i, flag ].sz画像サイズ.Width; + txMenuItemLeft[i, flag].t2D描画(TJAPlayer3.app.Device, 282 - (num4 / 2) + TJAPlayer3.Skin.Config_ItemText_Correction_X, menuY + TJAPlayer3.Skin.Config_ItemText_Correction_Y ); //55 + //txMenuItem.Dispose(); + menuY += stepY; + } + //--------------------- + #endregion + #region [ 説明文パネル ] + //--------------------- + if( this.tx説明文パネル != null ) + this.tx説明文パネル.t2D描画( TJAPlayer3.app.Device, 67, 382 ); + //--------------------- + #endregion + #region [ アイテム ] + //--------------------- + switch( this.eItemPanelモード ) + { + case EItemPanelモード.パッド一覧: + this.actList.t進行描画( !this.bメニューにフォーカス中 ); + break; + + case EItemPanelモード.キーコード一覧: + this.actKeyAssign.On進行描画(); + break; + } + //--------------------- + #endregion + //#region [ 上部パネル ] + ////--------------------- + //if( this.tx上部パネル != null ) + // this.tx上部パネル.t2D描画( CDTXMania.app.Device, 0, 0 ); + ////--------------------- + //#endregion + //#region [ 下部パネル ] + ////--------------------- + //if( this.tx下部パネル != null ) + // this.tx下部パネル.t2D描画( CDTXMania.app.Device, 0, 720 - this.tx下部パネル.szテクスチャサイズ.Height ); + ////--------------------- + //#endregion + #region [ オプションパネル ] + //--------------------- + //this.actオプションパネル.On進行描画(); + //--------------------- + #endregion + #region [ フェードイン_アウト ] + //--------------------- + switch( base.eフェーズID ) + { + case CStage.Eフェーズ.共通_フェードイン: + if( this.actFIFO.On進行描画() != 0 ) + { + TJAPlayer3.Skin.bgmコンフィグ画面.t再生する(); + base.eフェーズID = CStage.Eフェーズ.共通_通常状態; + } + break; + + case CStage.Eフェーズ.共通_フェードアウト: + if( this.actFIFO.On進行描画() == 0 ) + { + break; + } + return 1; + } + //--------------------- + #endregion + + #region [ Enumerating Songs ] + // CActEnumSongs側で表示する + #endregion + + // キー入力 + + if( ( base.eフェーズID != CStage.Eフェーズ.共通_通常状態 ) + || this.actKeyAssign.bキー入力待ちの最中である + || TJAPlayer3.act現在入力を占有中のプラグイン != null ) + return 0; + + // 曲データの一覧取得中は、キー入力を無効化する + if ( !TJAPlayer3.EnumSongs.IsEnumerating || TJAPlayer3.actEnumSongs.bコマンドでの曲データ取得 != true ) + { + if ( ( TJAPlayer3.Input管理.Keyboard.bキーが押された( (int)SlimDXKeys.Key.Escape ) || TJAPlayer3.Pad.b押された( E楽器パート.DRUMS, Eパッド.FT ) ) || TJAPlayer3.Pad.b押されたGB( Eパッド.FT ) ) + { + TJAPlayer3.Skin.sound取消音.t再生する(); + if ( !this.bメニューにフォーカス中 ) + { + if ( this.eItemPanelモード == EItemPanelモード.キーコード一覧 ) + { + TJAPlayer3.stageコンフィグ.tアサイン完了通知(); + return 0; + } + if ( !this.actList.bIsKeyAssignSelected && !this.actList.bIsFocusingParameter ) // #24525 2011.3.15 yyagi, #32059 2013.9.17 yyagi + { + this.bメニューにフォーカス中 = true; + } + this.t説明文パネルに現在選択されているメニューの説明を描画する(); + this.actList.tEsc押下(); // #24525 2011.3.15 yyagi ESC押下時の右メニュー描画用 + } + else + { + this.actFIFO.tフェードアウト開始(); + base.eフェーズID = CStage.Eフェーズ.共通_フェードアウト; + } + } + else if ( ( TJAPlayer3.Pad.b押されたDGB( Eパッド.CY ) || TJAPlayer3.Pad.b押された( E楽器パート.DRUMS, Eパッド.RD ) ) || ( TJAPlayer3.Pad.b押された( E楽器パート.DRUMS, Eパッド.LC ) || ( TJAPlayer3.ConfigIni.bEnterがキー割り当てのどこにも使用されていない && TJAPlayer3.Input管理.Keyboard.bキーが押された( (int)SlimDXKeys.Key.Return ) ) ) ) + { + if ( this.n現在のメニュー番号 == 2 ) + { + TJAPlayer3.Skin.sound決定音.t再生する(); + this.actFIFO.tフェードアウト開始(); + base.eフェーズID = CStage.Eフェーズ.共通_フェードアウト; + } + else if ( this.bメニューにフォーカス中 ) + { + TJAPlayer3.Skin.sound決定音.t再生する(); + this.bメニューにフォーカス中 = false; + this.t説明文パネルに現在選択されている項目の説明を描画する(); + } + else + { + switch ( this.eItemPanelモード ) + { + case EItemPanelモード.パッド一覧: + bool bIsKeyAssignSelectedBeforeHitEnter = this.actList.bIsKeyAssignSelected; // #24525 2011.3.15 yyagi + this.actList.tEnter押下(); + if ( this.actList.b現在選択されている項目はReturnToMenuである ) + { + this.t説明文パネルに現在選択されているメニューの説明を描画する(); + if ( bIsKeyAssignSelectedBeforeHitEnter == false ) // #24525 2011.3.15 yyagi + { + this.bメニューにフォーカス中 = true; + } + } + break; + + case EItemPanelモード.キーコード一覧: + this.actKeyAssign.tEnter押下(); + break; + } + } + } + this.ctキー反復用.Up.tキー反復( TJAPlayer3.Input管理.Keyboard.bキーが押されている( (int)SlimDXKeys.Key.UpArrow ), new CCounter.DGキー処理( this.tカーソルを上へ移動する ) ); + this.ctキー反復用.R.tキー反復( TJAPlayer3.Pad.b押されているGB( Eパッド.HH ), new CCounter.DGキー処理( this.tカーソルを上へ移動する ) ); + if ( TJAPlayer3.Pad.b押された( E楽器パート.DRUMS, Eパッド.SD ) ) + { + this.tカーソルを上へ移動する(); + } + this.ctキー反復用.Down.tキー反復( TJAPlayer3.Input管理.Keyboard.bキーが押されている( (int)SlimDXKeys.Key.DownArrow ), new CCounter.DGキー処理( this.tカーソルを下へ移動する ) ); + this.ctキー反復用.B.tキー反復( TJAPlayer3.Pad.b押されているGB( Eパッド.BD ), new CCounter.DGキー処理( this.tカーソルを下へ移動する ) ); + if ( TJAPlayer3.Pad.b押された( E楽器パート.DRUMS, Eパッド.LT ) ) + { + this.tカーソルを下へ移動する(); + } + } + return 0; + } + + + // その他 + + #region [ private ] + //----------------- + private enum EItemPanelモード + { + パッド一覧, + キーコード一覧 + } + + [StructLayout( LayoutKind.Sequential )] + private struct STキー反復用カウンタ + { + public CCounter Up; + public CCounter Down; + public CCounter R; + public CCounter B; + public CCounter this[ int index ] + { + get + { + switch( index ) + { + case 0: + return this.Up; + + case 1: + return this.Down; + + case 2: + return this.R; + + case 3: + return this.B; + } + throw new IndexOutOfRangeException(); + } + set + { + switch( index ) + { + case 0: + this.Up = value; + return; + + case 1: + this.Down = value; + return; + + case 2: + this.R = value; + return; + + case 3: + this.B = value; + return; + } + throw new IndexOutOfRangeException(); + } + } + } + + private CCounter ctBackgroundAnime; + private CActFIFOWhite actFIFO; + private CActConfigKeyAssign actKeyAssign; + private CActConfigList actList; + private CActオプションパネル actオプションパネル; + private bool bメニューにフォーカス中; + private STキー反復用カウンタ ctキー反復用; + private const int DESC_H = 0x80; + private const int DESC_W = 220; + private EItemPanelモード eItemPanelモード; + private Font ftフォント; + private int n現在のメニュー番号; + //private CTexture txMenuカーソル; + //private CTexture tx下部パネル; + //private CTexture tx上部パネル; + private CTexture tx説明文パネル; + //private CTexture tx背景; + private CTexture[ , ] txMenuItemLeft; + + private void tカーソルを下へ移動する() + { + if( !this.bメニューにフォーカス中 ) + { + switch( this.eItemPanelモード ) + { + case EItemPanelモード.パッド一覧: + this.actList.t次に移動(); + return; + + case EItemPanelモード.キーコード一覧: + this.actKeyAssign.t次に移動(); + return; + } + } + else + { + TJAPlayer3.Skin.soundカーソル移動音.t再生する(); + this.n現在のメニュー番号 = ( this.n現在のメニュー番号 + 1 ) % 3; + switch( this.n現在のメニュー番号 ) + { + case 0: + this.actList.t項目リストの設定_System(); + break; + + case 1: + this.actList.t項目リストの設定_Drums(); + break; + + case 2: + this.actList.t項目リストの設定_Exit(); + break; + } + this.t説明文パネルに現在選択されているメニューの説明を描画する(); + } + } + private void tカーソルを上へ移動する() + { + if( !this.bメニューにフォーカス中 ) + { + switch( this.eItemPanelモード ) + { + case EItemPanelモード.パッド一覧: + this.actList.t前に移動(); + return; + + case EItemPanelモード.キーコード一覧: + this.actKeyAssign.t前に移動(); + return; + } + } + else + { + TJAPlayer3.Skin.soundカーソル移動音.t再生する(); + this.n現在のメニュー番号 = ((this.n現在のメニュー番号 - 1) + 3) % 3; + switch ( this.n現在のメニュー番号 ) + { + case 0: + this.actList.t項目リストの設定_System(); + break; + + case 1: + this.actList.t項目リストの設定_Drums(); + break; + + case 2: + this.actList.t項目リストの設定_Exit(); + break; + } + this.t説明文パネルに現在選択されているメニューの説明を描画する(); + } + } + private void t説明文パネルに現在選択されているメニューの説明を描画する() + { + try + { + var image = new Bitmap( 440, 288 ); // 説明文領域サイズの縦横 2 倍。(描画時に 0.5 倍で表示する。) + var graphics = Graphics.FromImage( image ); + graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias; + graphics.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality; + + string[,] str = new string[ 2, 2 ]; + switch( this.n現在のメニュー番号 ) + { + case 0: + str[ 0, 0 ] = "システムに関係する項目を設定します。"; + str[ 0, 1 ] = ""; + str[ 1, 0 ] = "Settings for an overall systems."; + break; + + case 1: + str[ 0, 0 ] = "ドラムの演奏に関する項目を設定します。"; + str[ 0, 1 ] = ""; + str[ 1, 0 ] = "Settings to play the drums."; + str[ 1, 1 ] = ""; + break; + + case 2: + str[ 0, 0 ] = "設定を保存し、コンフィグ画面を終了します。"; + str[ 0, 1 ] = ""; + str[ 1, 0 ] = "Save the settings and exit from"; + str[ 1, 1 ] = "CONFIGURATION menu."; + break; + } + + int c = (CultureInfo.CurrentUICulture.TwoLetterISOLanguageName == "ja") ? 0 : 1; + for (int i = 0; i < 2; i++) + { + graphics.DrawString( str[ c, i ], this.ftフォント, Brushes.White, new PointF( 8f, ( i * 30 ) * 1.5f ) ); + } + graphics.Dispose(); + if( this.tx説明文パネル != null ) + { + this.tx説明文パネル.Dispose(); + } + this.tx説明文パネル = new CTexture( TJAPlayer3.app.Device, image, TJAPlayer3.TextureFormat ); + image.Dispose(); + } + catch( CTextureCreateFailedException e) + { + Trace.TraceError( e.ToString() ); + Trace.TraceError( "説明文テクスチャの作成に失敗しました。" ); + this.tx説明文パネル = null; + } + } + private void t説明文パネルに現在選択されている項目の説明を描画する() + { + try + { + var image = new Bitmap( 440, 288 ); // 説明文領域サイズの縦横 2 倍。(描画時に 0.5 倍で表示する___のは中止。処理速度向上のため。) + var graphics = Graphics.FromImage( image ); + graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias; + graphics.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality; + + CItemBase item = this.actList.ib現在の選択項目; + if( ( item.str説明文 != null ) && ( item.str説明文.Length > 0 ) ) + { + graphics.DrawString( item.str説明文, this.ftフォント, Brushes.White, new RectangleF( 8f, 0, 630, 430 ) ); + } + graphics.Dispose(); + if( this.tx説明文パネル != null ) + { + this.tx説明文パネル.Dispose(); + } + this.tx説明文パネル = new CTexture( TJAPlayer3.app.Device, image, TJAPlayer3.TextureFormat ); + image.Dispose(); + } + catch( CTextureCreateFailedException e ) + { + Trace.TraceError( e.ToString() ); + Trace.TraceError( "説明文パネルテクスチャの作成に失敗しました。" ); + this.tx説明文パネル = null; + } + } + //----------------- + #endregion + } +} diff --git a/TJAPlayer3/Stages/05.DaniSelect/CActSelect段位リスト.cs b/TJAPlayer3/Stages/05.DaniSelect/CActSelect段位リスト.cs new file mode 100644 index 00000000..00f73e6b --- /dev/null +++ b/TJAPlayer3/Stages/05.DaniSelect/CActSelect段位リスト.cs @@ -0,0 +1,376 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using FDK; +using static TJAPlayer3.CActSelect曲リスト; + +namespace TJAPlayer3 +{ + class CActSelect段位リスト : CStage + { + public CActSelect段位リスト() + { + for(int i = 0; i < 10; i++) + { + stLevel[i].ch = i.ToString().ToCharArray()[0]; + stLevel[i].pt = new Point(i * 14, 0); + + stSoulNumber[i].ch = i.ToString().ToCharArray()[0]; + stSoulNumber[i].pt = new Point(i * 23, 0); + + stExamNumber[i].ch = i.ToString().ToCharArray()[0]; + stExamNumber[i].pt = new Point(i * 19, 0); + } + } + + public bool bスクロール中 + { + get + { + return ctDaniMoveAnime.b進行中; + } + } + + public override void On活性化() + { + if (this.b活性化してる) + return; + + DaniInAnime = false; + + ctDaniMoveAnime = new CCounter(); + ctDanAnimeIn = new CCounter(); + ctDaniIn = new CCounter(0, 3000, 1, TJAPlayer3.Timer); + + stバー情報 = new STバー情報[TJAPlayer3.Songs管理.list曲ルート_Dan.Count]; + + if (!string.IsNullOrEmpty(TJAPlayer3.ConfigIni.FontName)) + pfDanSong = new CPrivateFastFont(new FontFamily(TJAPlayer3.ConfigIni.FontName), 24); + else + pfDanSong = new CPrivateFastFont(new FontFamily("MS UI Gothic"), 16); + + //一応チェックしておく。 + if(TJAPlayer3.Songs管理.list曲ルート_Dan.Count > 0) + this.tバーの初期化(); + + base.On活性化(); + } + + public override void On非活性化() + { + base.On非活性化(); + } + + public override void OnManagedリソースの作成() + { + base.OnManagedリソースの作成(); + } + + public override void OnManagedリソースの解放() + { + base.OnManagedリソースの解放(); + } + + public override int On進行描画() + { + ctDaniMoveAnime.t進行(); + ctDaniIn.t進行(); + ctDanAnimeIn.t進行(); + + if (ctDaniIn.n現在の値 == 3000) + { + if(!DaniInAnime) + { + ctDanAnimeIn.t開始(0, 90, 2f, TJAPlayer3.Timer); + DaniInAnime = true; + } + } + + #region [ バー表示 ] + + if (stバー情報.Length != 0) + { + TJAPlayer3.Tx.DanC_ExamType.vc拡大縮小倍率.X = 0.81f; + TJAPlayer3.Tx.DanC_ExamType.vc拡大縮小倍率.Y = 0.81f; + + float Anime = ctDanAnimeIn.n現在の値 == 90 ? bLeftMove ? (float)Math.Sin(ctDaniMoveAnime.n現在の値 * (Math.PI / 180)) * 1280 : -((float)Math.Sin(ctDaniMoveAnime.n現在の値 * (Math.PI / 180)) * 1280) : 1280 - (float)Math.Sin(ctDanAnimeIn.n現在の値 * (Math.PI / 180)) * 1280; + + #region [ 中央バーの表示 ] + + if (stバー情報[n現在の選択行].txBarCenter != null) stバー情報[n現在の選択行].txBarCenter?.t2D描画(TJAPlayer3.app.Device, Anime, 0); + else TJAPlayer3.Tx.Dani_Bar_Center.t2D描画(TJAPlayer3.app.Device, Anime, 0); + if (stバー情報[n現在の選択行].txDanPlate != null) stバー情報[n現在の選択行].txDanPlate.Opacity = 255; + stバー情報[n現在の選択行].txDanPlate?.t2D中心基準描画(TJAPlayer3.app.Device, 173 + Anime, 301); + + if (stバー情報[n現在の選択行].List_DanSongs[0].Dan_C[0] != null) + tSoulDraw(370 + Anime, 462, stバー情報[n現在の選択行].List_DanSongs[0].Dan_C[0].Value[0].ToString()); + + for (int i = 0; i < stバー情報[n現在の選択行].ttkタイトル.Length; i++) + TJAPlayer3.stage選曲.act曲リスト.ResolveTitleTexture(stバー情報[n現在の選択行].ttkタイトル[i]).t2D描画(TJAPlayer3.app.Device, 401 + Anime, 173 + i * 73); + for (int i = 0; i < stバー情報[n現在の選択行].n曲難易度.Length; i++) + TJAPlayer3.Tx.Dani_Difficulty_Cymbol.t2D中心基準描画(TJAPlayer3.app.Device, 377 + Anime, 180 + i * 73, new Rectangle(stバー情報[n現在の選択行].n曲難易度[i] * 53, 0, 53, 53)); + for (int i = 0; i < stバー情報[n現在の選択行].n曲レベル.Length; i++) + this.tLevelNumberDraw(383 + Anime, 207 + i * 73, stバー情報[n現在の選択行].n曲レベル[i].ToString()); + + for (int j = 1; j < 4; j++) //段位条件のループ(魂ゲージを除く) 縦(y) + { + if (stバー情報[n現在の選択行].List_DanSongs[0].Dan_C[j] != null) + { + TJAPlayer3.Tx.DanC_ExamType?.t2D描画(TJAPlayer3.app.Device, 515 + Anime, 412 + (j - 1) * 88, new Rectangle(0, TJAPlayer3.Skin.Game_DanC_ExamType_Size[1] * (int)stバー情報[n現在の選択行].List_DanSongs[0].Dan_C[j].GetExamType(), TJAPlayer3.Skin.Game_DanC_ExamType_Size[0], TJAPlayer3.Skin.Game_DanC_ExamType_Size[1])); + } + + for (int i = 0; i < stバー情報[n現在の選択行].List_DanSongs.Count; i++) //曲ごとのループ(魂ゲージを除く) 横(x) + { + if (stバー情報[n現在の選択行].List_DanSongs[i].Dan_C[j] != null) + { + if (stバー情報[n現在の選択行].List_DanSongs[stバー情報[n現在の選択行].List_DanSongs.Count - 1].Dan_C[j] != null) //個別の条件がありますよー + { + tExamDraw(590 + Anime + i * 220, 455 + (j - 1) * 88, stバー情報[n現在の選択行].List_DanSongs[i].Dan_C[j].Value[0].ToString(), stバー情報[n現在の選択行].List_DanSongs[i].Dan_C[j].GetExamRange()); + } + else //全体の条件ですよー + { + tExamDraw(590 + Anime, 455 + (j - 1) * 88, stバー情報[n現在の選択行].List_DanSongs[0].Dan_C[j].Value[0].ToString(), stバー情報[n現在の選択行].List_DanSongs[0].Dan_C[j].GetExamRange()); + } + } + } + } + + #endregion + + if (bLeftMove && n現在の選択行 - 1 >= 0) + { + #region [ 左バーの表示 ] + + if (stバー情報[n現在の選択行 - 1].txBarCenter != null) stバー情報[n現在の選択行 - 1].txBarCenter?.t2D描画(TJAPlayer3.app.Device, -1280 + Anime, 0); + else TJAPlayer3.Tx.Dani_Bar_Center.t2D描画(TJAPlayer3.app.Device, -1280 + Anime, 0); + + if (stバー情報[n現在の選択行 - 1].txDanPlate != null) stバー情報[n現在の選択行 - 1].txDanPlate.Opacity = 255; + stバー情報[n現在の選択行 - 1].txDanPlate?.t2D中心基準描画(TJAPlayer3.app.Device, -1280 + 173 + Anime, 301); + + if (stバー情報[n現在の選択行 - 1].List_DanSongs[0].Dan_C[0] != null) + tSoulDraw(-1280 + 370 + Anime, 462, stバー情報[n現在の選択行 - 1].List_DanSongs[0].Dan_C[0].Value[0].ToString()); + + for (int i = 0; i < stバー情報[n現在の選択行 - 1].ttkタイトル.Length; i++) + TJAPlayer3.stage選曲.act曲リスト.ResolveTitleTexture(stバー情報[n現在の選択行 - 1].ttkタイトル[i]).t2D描画(TJAPlayer3.app.Device, -879 + Anime, 173 + i * 73); + for (int i = 0; i < stバー情報[n現在の選択行 - 1].n曲難易度.Length; i++) + TJAPlayer3.Tx.Dani_Difficulty_Cymbol.t2D中心基準描画(TJAPlayer3.app.Device, -1280 + 377 + +Anime, 180 + i * 73, new Rectangle(stバー情報[n現在の選択行 - 1].n曲難易度[i] * 53, 0, 53, 53)); + for (int i = 0; i < stバー情報[n現在の選択行 - 1].n曲レベル.Length; i++) + this.tLevelNumberDraw(-1280 + 383 + Anime, 207 + i * 73, stバー情報[n現在の選択行 - 1].n曲レベル[i].ToString()); + + for (int j = 1; j < 4; j++) //段位条件のループ(魂ゲージを除く) 縦(y) + { + if (stバー情報[n現在の選択行 - 1].List_DanSongs[0].Dan_C[j] != null) + { + TJAPlayer3.Tx.DanC_ExamType?.t2D描画(TJAPlayer3.app.Device, -1280 + 515 + Anime, 412 + (j - 1) * 88, new Rectangle(0, TJAPlayer3.Skin.Game_DanC_ExamType_Size[1] * (int)stバー情報[n現在の選択行 - 1].List_DanSongs[0].Dan_C[j].GetExamType(), TJAPlayer3.Skin.Game_DanC_ExamType_Size[0], TJAPlayer3.Skin.Game_DanC_ExamType_Size[1])); + } + + for (int i = 0; i < stバー情報[n現在の選択行 - 1].List_DanSongs.Count; i++) //曲ごとのループ(魂ゲージを除く) 横(x) + { + if (stバー情報[n現在の選択行 - 1].List_DanSongs[i].Dan_C[j] != null) + { + if (stバー情報[n現在の選択行 - 1].List_DanSongs[stバー情報[n現在の選択行 - 1].List_DanSongs.Count - 1].Dan_C[j] != null) //個別の条件がありますよー + { + tExamDraw(-1280 + 590 + Anime + i * 220, 455 + (j - 1) * 88, stバー情報[n現在の選択行 - 1].List_DanSongs[i].Dan_C[j].Value[0].ToString(), stバー情報[n現在の選択行 - 1].List_DanSongs[i].Dan_C[j].GetExamRange()); + } + else //全体の条件ですよー + { + tExamDraw(-1280 + 590 + Anime, 455 + (j - 1) * 88, stバー情報[n現在の選択行 - 1].List_DanSongs[0].Dan_C[j].Value[0].ToString(), stバー情報[n現在の選択行 - 1].List_DanSongs[0].Dan_C[j].GetExamRange()); + } + } + } + } + + #endregion + } + if (!bLeftMove && n現在の選択行 + 1 <= stバー情報.Length - 1) + { + #region [ 右バーの表示 ] + + if (stバー情報[n現在の選択行 + 1].txBarCenter != null) stバー情報[n現在の選択行 + 1].txBarCenter?.t2D描画(TJAPlayer3.app.Device, 1280 + Anime, 0); + else TJAPlayer3.Tx.Dani_Bar_Center.t2D描画(TJAPlayer3.app.Device, 1280 + Anime, 0); + + if(stバー情報[n現在の選択行 + 1].txDanPlate != null) stバー情報[n現在の選択行 + 1].txDanPlate.Opacity = 255; + stバー情報[n現在の選択行 + 1].txDanPlate?.t2D中心基準描画(TJAPlayer3.app.Device, 1280 + 173 + Anime, 301); + + if (stバー情報[n現在の選択行 + 1].List_DanSongs[0].Dan_C[0] != null) + tSoulDraw(1280 + 370 + Anime, 462, stバー情報[n現在の選択行 + 1].List_DanSongs[0].Dan_C[0].Value[0].ToString()); + + for (int i = 0; i < stバー情報[n現在の選択行 + 1].ttkタイトル.Length; i++) + TJAPlayer3.stage選曲.act曲リスト.ResolveTitleTexture(stバー情報[n現在の選択行 + 1].ttkタイトル[i]).t2D描画(TJAPlayer3.app.Device, 1280 + 401 + Anime, 173 + i * 73); + for (int i = 0; i < stバー情報[n現在の選択行 + 1].n曲難易度.Length; i++) + TJAPlayer3.Tx.Dani_Difficulty_Cymbol.t2D中心基準描画(TJAPlayer3.app.Device, 1280 + 377 + Anime, 180 + i * 73, new Rectangle(stバー情報[n現在の選択行 + 1].n曲難易度[i] * 53, 0, 53, 53)); + for (int i = 0; i < stバー情報[n現在の選択行 + 1].n曲レベル.Length; i++) + this.tLevelNumberDraw(1280 + 383 + Anime, 207 + i * 73, stバー情報[n現在の選択行 + 1].n曲レベル[i].ToString()); + + for (int j = 1; j < 4; j++) //段位条件のループ(魂ゲージを除く) 縦(y) + { + if (stバー情報[n現在の選択行 + 1].List_DanSongs[0].Dan_C[j] != null) + { + TJAPlayer3.Tx.DanC_ExamType?.t2D描画(TJAPlayer3.app.Device, 1280 + 515 + Anime, 412 + (j - 1) * 88, new Rectangle(0, TJAPlayer3.Skin.Game_DanC_ExamType_Size[1] * (int)stバー情報[n現在の選択行 + 1].List_DanSongs[0].Dan_C[j].GetExamType(), TJAPlayer3.Skin.Game_DanC_ExamType_Size[0], TJAPlayer3.Skin.Game_DanC_ExamType_Size[1])); + } + + for (int i = 0; i < stバー情報[n現在の選択行 + 1].List_DanSongs.Count; i++) //曲ごとのループ(魂ゲージを除く) 横(x) + { + if (stバー情報[n現在の選択行 + 1].List_DanSongs[i].Dan_C[j] != null) + { + if (stバー情報[n現在の選択行 + 1].List_DanSongs[stバー情報[n現在の選択行 + 1].List_DanSongs.Count - 1].Dan_C[j] != null) //個別の条件がありますよー + { + tExamDraw(1280 + 590 + Anime + i * 220, 455 + (j - 1) * 88, stバー情報[n現在の選択行 + 1].List_DanSongs[i].Dan_C[j].Value[0].ToString(), stバー情報[n現在の選択行 + 1].List_DanSongs[i].Dan_C[j].GetExamRange()); + } + else //全体の条件ですよー + { + tExamDraw(1280 + 590 + Anime, 455 + (j - 1) * 88, stバー情報[n現在の選択行 + 1].List_DanSongs[0].Dan_C[j].Value[0].ToString(), stバー情報[n現在の選択行 + 1].List_DanSongs[0].Dan_C[j].GetExamRange()); + } + } + } + } + #endregion + } + } + + #endregion + + #region [ バー移動 ] + + if (ctDaniMoveAnime.n現在の値 == 90) + { + if (bLeftMove) + { + this.n現在の選択行 -= n現在の選択行 - 1 >= 0 ? 1 : 0; + } + else + { + this.n現在の選択行 += n現在の選択行 + 1 < this.stバー情報.Length ? 1 : 0; + } + ctDaniMoveAnime.t停止(); + ctDaniMoveAnime.n現在の値 = 0; + } + + #endregion + + return 0; + } + + private bool DaniInAnime; + public CCounter ctDaniIn; + + private CCounter ctDanAnimeIn; + + private CCounter ctDaniMoveAnime; + public int n現在の選択行; + + private bool bLeftMove; + + private CPrivateFastFont pfDanSong; + + private CStage選曲.STNumber[] stLevel = new CStage選曲.STNumber[10]; + private CStage選曲.STNumber[] stSoulNumber = new CStage選曲.STNumber[10]; + private CStage選曲.STNumber[] stExamNumber = new CStage選曲.STNumber[10]; + + public STバー情報[] stバー情報; + + public struct STバー情報 + { + public TitleTextureKey[] ttkタイトル; + public int[] n曲難易度; + public int[] n曲レベル; + public List List_DanSongs; + public CTexture txBarCenter; + public CTexture txDanPlate; + } + + private void tバーの初期化() + { + for(int i = 0; i < stバー情報.Length; i++) + { + stバー情報[i].ttkタイトル = new TitleTextureKey[TJAPlayer3.Songs管理.list曲ルート_Dan[i].DanSongs.Count]; + stバー情報[i].n曲難易度 = new int[TJAPlayer3.Songs管理.list曲ルート_Dan[i].DanSongs.Count]; + stバー情報[i].n曲レベル = new int[TJAPlayer3.Songs管理.list曲ルート_Dan[i].DanSongs.Count]; + for (int j = 0; j < TJAPlayer3.Songs管理.list曲ルート_Dan[i].DanSongs.Count; j++) + { + var song = TJAPlayer3.Songs管理.list曲ルート_Dan[i]; + + stバー情報[i].ttkタイトル[j] = new TitleTextureKey(song.DanSongs[j].bTitleShow ? "???" : song.DanSongs[j].Title, pfDanSong, Color.White, Color.Black, 700); + stバー情報[i].n曲難易度[j] = song.DanSongs[j].Difficulty; + stバー情報[i].n曲レベル[j] = song.DanSongs[j].Level; + stバー情報[i].List_DanSongs = song.DanSongs; + stバー情報[i].txBarCenter = TJAPlayer3.tテクスチャの生成(Path.GetDirectoryName(song.arスコア[6].ファイル情報.ファイルの絶対パス) + @"\Bar_Center.png"); + stバー情報[i].txDanPlate = TJAPlayer3.tテクスチャの生成(Path.GetDirectoryName(song.arスコア[6].ファイル情報.ファイルの絶対パス) + @"\Dan_Plate.png"); + } + } + } + + public void t右に移動() + { + if(n現在の選択行 < stバー情報.Length - 1) + { + TJAPlayer3.Skin.sound変更音.t再生する(); + this.bLeftMove = false; + this.ctDaniMoveAnime.t開始(0, 90, 2f, TJAPlayer3.Timer); + } + } + + public void t左に移動() + { + if (n現在の選択行 > 0) + { + TJAPlayer3.Skin.sound変更音.t再生する(); + this.bLeftMove = true; + this.ctDaniMoveAnime.t開始(0, 90, 2f, TJAPlayer3.Timer); + } + } + + public void tLevelNumberDraw(float x, float y, string str) + { + for (int j = 0; j < str.Length; j++) + { + for (int i = 0; i < 10; i++) + { + if (str[j] == stLevel[i].ch) + { + TJAPlayer3.Tx.Dani_Level_Number.t2D描画(TJAPlayer3.app.Device, x - (str.Length * 14 + 10 * str.Length - str.Length * 14) / 2 + 14 / 2, (float)y - 18 / 2, new RectangleF(stLevel[i].pt.X, stLevel[i].pt.Y, 14, 18)); + x += 10; + } + } + } + } + + public void tSoulDraw(float x, float y, string str) + { + TJAPlayer3.Tx.Dani_Soul_Number.t2D描画(TJAPlayer3.app.Device, x + 16 * str.Length, y - 30 / 2, new RectangleF(0, 30, 80, 30)); + + for (int j = 0; j < str.Length; j++) + { + for (int i = 0; i < 10; i++) + { + if (str[j] == stSoulNumber[i].ch) + { + TJAPlayer3.Tx.Dani_Soul_Number.t2D描画(TJAPlayer3.app.Device, x - (str.Length * 23 + 18 * str.Length - str.Length * 23) / 2 + 23 / 2, (float)y - 30 / 2, new RectangleF(stSoulNumber[i].pt.X, stSoulNumber[i].pt.Y, 23, 30)); + x += 16; + } + } + } + } + + public void tExamDraw(float x, float y, string str, Exam.Range Range) + { + TJAPlayer3.Tx.Dani_Exam_Number.t2D描画(TJAPlayer3.app.Device, x + 19 * str.Length, y - 24 / 2, new RectangleF(45 * (int)Range, 24, 45, 24)); + + for (int j = 0; j < str.Length; j++) + { + for (int i = 0; i < 10; i++) + { + if (str[j] == stExamNumber[i].ch) + { + TJAPlayer3.Tx.Dani_Exam_Number.t2D描画(TJAPlayer3.app.Device, x, (float)y - 24 / 2, new RectangleF(stExamNumber[i].pt.X, stExamNumber[i].pt.Y, 19, 24)); + x += 16; + } + } + } + } + } +} diff --git a/TJAPlayer3/Stages/05.DaniSelect/CActSelect段位挑戦選択画面.cs b/TJAPlayer3/Stages/05.DaniSelect/CActSelect段位挑戦選択画面.cs new file mode 100644 index 00000000..684c0007 --- /dev/null +++ b/TJAPlayer3/Stages/05.DaniSelect/CActSelect段位挑戦選択画面.cs @@ -0,0 +1,89 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using FDK; +using SlimDX.DirectInput; + +namespace TJAPlayer3 +{ + class CActSelect段位挑戦選択画面 : CActivity + { + public override void On活性化() + { + ctBarIn = new CCounter(); + ctBarOut = new CCounter(); + ctBarOut.n現在の値 = 255; + TJAPlayer3.stage段位選択.bDifficultyIn = false; + + base.On活性化(); + } + + public override void On非活性化() + { + base.On非活性化(); + } + + public override int On進行描画() + { + if(TJAPlayer3.stage段位選択.bDifficultyIn || ctBarOut.n現在の値 < ctBarOut.n終了値) + { + ctBarIn.t進行(); + ctBarOut.t進行(); + + TJAPlayer3.Tx.Challenge_Select[0].Opacity = TJAPlayer3.stage段位選択.bDifficultyIn ? ctBarIn.n現在の値 : 255 - ctBarOut.n現在の値; + TJAPlayer3.Tx.Challenge_Select[1].Opacity = TJAPlayer3.stage段位選択.bDifficultyIn ? ctBarIn.n現在の値 : 255 - ctBarOut.n現在の値; + TJAPlayer3.Tx.Challenge_Select[0].t2D描画(TJAPlayer3.app.Device, 0, 0); + TJAPlayer3.Tx.Challenge_Select[1].t2D描画(TJAPlayer3.app.Device, 0, 0); + + if (ctBarIn.b終了値に達した && !TJAPlayer3.stage段位選択.b選択した) + { + if (TJAPlayer3.Input管理.Keyboard.bキーが押された((int)Key.RightArrow) || + TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RBlue)) + { + if (n現在の選択行 - 1 >= 0) + { + TJAPlayer3.Skin.sound変更音.t再生する(); + n現在の選択行--; + } + } + + if (TJAPlayer3.Input管理.Keyboard.bキーが押された((int)Key.LeftArrow) || + TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LBlue)) + { + if (n現在の選択行 + 1 <= 2) + { + TJAPlayer3.Skin.sound変更音.t再生する(); + n現在の選択行++; + } + } + + if (TJAPlayer3.Input管理.Keyboard.bキーが押された((int)Key.Return) || + TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LRed) || + TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RRed)) + { + if (n現在の選択行 == 0) + { + this.ctBarOut.t開始(0, 255, 0.5f, TJAPlayer3.Timer); + TJAPlayer3.Skin.sound取消音.t再生する(); + TJAPlayer3.stage段位選択.bDifficultyIn = false; + } + else if (n現在の選択行 == 1) + { + TJAPlayer3.Skin.soundDanSongSelect.t再生する(); + TJAPlayer3.stage段位選択.ct待機.t開始(0, 3000, 1, TJAPlayer3.Timer); + } + } + } + } + + return base.On進行描画(); + } + + public CCounter ctBarIn; + public CCounter ctBarOut; + + private int n現在の選択行; + } +} diff --git a/TJAPlayer3/Stages/05.DaniSelect/CStage段位選択.cs b/TJAPlayer3/Stages/05.DaniSelect/CStage段位選択.cs new file mode 100644 index 00000000..0a287236 --- /dev/null +++ b/TJAPlayer3/Stages/05.DaniSelect/CStage段位選択.cs @@ -0,0 +1,200 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using FDK; +using SlimDX.DirectInput; + +namespace TJAPlayer3 +{ + class CStage段位選択 : CStage + { + public CStage段位選択() + { + base.eステージID = Eステージ.段位選択; + base.eフェーズID = CStage.Eフェーズ.共通_通常状態; + + base.list子Activities.Add(this.段位リスト = new CActSelect段位リスト()); + base.list子Activities.Add(this.actFOtoNowLoading = new CActFIFOStart()); + base.list子Activities.Add(this.段位挑戦選択画面 = new CActSelect段位挑戦選択画面()); + base.list子Activities.Add(this.actFOtoTitle = new CActFIFOBlack()); + } + + public override void On活性化() + { + if (base.b活性化してる) + return; + + this.b選択した = false; + + base.eフェーズID = CStage.Eフェーズ.共通_通常状態; + this.eフェードアウト完了時の戻り値 = E戻り値.継続; + + ct待機 = new CCounter(); + ctDonchan_In = new CCounter(); + ctDonchan_Normal = new CCounter(0, TJAPlayer3.Tx.SongSelect_Donchan_Normal.Length - 1, 1000 / 45, TJAPlayer3.Timer); + + base.On活性化(); + } + + public override void On非活性化() + { + base.On非活性化(); + } + + public override void OnManagedリソースの作成() + { + base.OnManagedリソースの作成(); + } + + public override void OnManagedリソースの解放() + { + base.OnManagedリソースの解放(); + } + + public override int On進行描画() + { + ctDonchan_Normal.t進行Loop(); + ctDonchan_In.t進行(); + ct待機.t進行(); + + TJAPlayer3.Tx.Dani_Background.t2D描画(TJAPlayer3.app.Device, 0, 0); + + this.段位リスト.On進行描画(); + + if(this.段位リスト.ctDaniIn.n現在の値 == 3000) + { + if (!ctDonchan_In.b開始した) + { + TJAPlayer3.Skin.soundDanSelectStart.t再生する(); + TJAPlayer3.Skin.soundDanSelectBGM.t再生する(); + ctDonchan_In.t開始(0, 180, 1.25f, TJAPlayer3.Timer); + } + + TJAPlayer3.NamePlate.tNamePlateDraw(TJAPlayer3.Skin.SongSelect_NamePlate_X[0], TJAPlayer3.Skin.SongSelect_NamePlate_Y[0] + 5, 0); + + #region [ キー関連 ] + + if (!this.段位リスト.bスクロール中 && !b選択した && !bDifficultyIn) + { + if (TJAPlayer3.Input管理.Keyboard.bキーが押された((int)Key.RightArrow) || + TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RBlue)) + { + this.段位リスト.t右に移動(); + } + + if (TJAPlayer3.Input管理.Keyboard.bキーが押された((int)Key.LeftArrow) || + TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LBlue)) + { + this.段位リスト.t左に移動(); + } + + if (TJAPlayer3.Input管理.Keyboard.bキーが押された((int)Key.Return) || + TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LRed) || + TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RRed)) + { + //this.t段位を選択する(); + TJAPlayer3.Skin.soundDanSongSelectCheck.t再生する(); + this.bDifficultyIn = true; + this.段位挑戦選択画面.ctBarIn.t開始(0, 255, 1, TJAPlayer3.Timer); + } + + if(TJAPlayer3.Input管理.Keyboard.bキーが押された((int)Key.Escape)) + { + TJAPlayer3.Skin.soundDanSelectBGM.t停止する(); + TJAPlayer3.Skin.sound取消音.t再生する(); + this.eフェードアウト完了時の戻り値 = E戻り値.タイトルに戻る; + this.actFOtoTitle.tフェードアウト開始(); + base.eフェーズID = CStage.Eフェーズ.共通_フェードアウト; + return 0; + } + } + + #endregion + + #region [ どんちゃん関連 ] + + if(ctDonchan_In.n現在の値 != 90) + { + float DonchanX = 0f, DonchanY = 0f; + + DonchanX = (float)Math.Sin(ctDonchan_In.n現在の値 / 2 * (Math.PI / 180)) * 200f; + DonchanY = ((float)Math.Sin((90 + (ctDonchan_In.n現在の値 / 2)) * (Math.PI / 180)) * 150f); + + TJAPlayer3.Tx.SongSelect_Donchan_Normal[ctDonchan_Normal.n現在の値].Opacity = ctDonchan_In.n現在の値 * 2; + TJAPlayer3.Tx.SongSelect_Donchan_Normal[ctDonchan_Normal.n現在の値].t2D描画(TJAPlayer3.app.Device, -200 + DonchanX, 336 - DonchanY); + } + + #endregion + + this.段位挑戦選択画面.On進行描画(); + } + + if(ct待機.n現在の値 >= 3000) + { + TJAPlayer3.stage段位選択.t段位を選択する(); + ct待機.n現在の値 = 0; + ct待機.t停止(); + } + + switch (base.eフェーズID) + { + case CStage.Eフェーズ.選曲_NowLoading画面へのフェードアウト: + if (this.actFOtoNowLoading.On進行描画() == 0) + { + break; + } + return (int)this.eフェードアウト完了時の戻り値; + + case CStage.Eフェーズ.共通_フェードアウト: + if (this.actFOtoTitle.On進行描画() == 0) + { + break; + } + return (int)this.eフェードアウト完了時の戻り値; + + } + + return 0; + } + + public enum E戻り値 : int + { + 継続, + タイトルに戻る, + 選曲した + } + + public void t段位を選択する() + { + this.b選択した = true; + TJAPlayer3.stage選曲.r確定された曲 = TJAPlayer3.Songs管理.list曲ルート_Dan[段位リスト.n現在の選択行]; + TJAPlayer3.stage選曲.r確定されたスコア = TJAPlayer3.Songs管理.list曲ルート_Dan[段位リスト.n現在の選択行].arスコア[(int)Difficulty.Dan]; + TJAPlayer3.stage選曲.n確定された曲の難易度[0] = (int)Difficulty.Dan; + TJAPlayer3.stage選曲.str確定された曲のジャンル = TJAPlayer3.Songs管理.list曲ルート_Dan[段位リスト.n現在の選択行].strジャンル; + if ((TJAPlayer3.stage選曲.r確定された曲 != null) && (TJAPlayer3.stage選曲.r確定されたスコア != null)) + { + this.eフェードアウト完了時の戻り値 = E戻り値.選曲した; + this.actFOtoNowLoading.tフェードアウト開始(); // #27787 2012.3.10 yyagi 曲決定時の画面フェードアウトの省略 + base.eフェーズID = CStage.Eフェーズ.選曲_NowLoading画面へのフェードアウト; + } + TJAPlayer3.Skin.bgm選曲画面.t停止する(); + } + + public CCounter ct待機; + + public bool b選択した; + public bool bDifficultyIn; + + private CCounter ctDonchan_In; + private CCounter ctDonchan_Normal; + + public E戻り値 eフェードアウト完了時の戻り値; + + public CActFIFOStart actFOtoNowLoading; + public CActFIFOBlack actFOtoTitle; + public CActSelect段位リスト 段位リスト; + public CActSelect段位挑戦選択画面 段位挑戦選択画面; + } +} diff --git a/TJAPlayer3/Stages/05.SongSelect/CActPlayOption.cs b/TJAPlayer3/Stages/05.SongSelect/CActPlayOption.cs new file mode 100644 index 00000000..5d073e95 --- /dev/null +++ b/TJAPlayer3/Stages/05.SongSelect/CActPlayOption.cs @@ -0,0 +1,350 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Drawing; +using FDK; + +namespace TJAPlayer3 +{ + internal class CActPlayOption : CActivity + { + public CActPlayOption() + { + base.b活性化してない = true; + } + + public override void On活性化() + { + if (this.b活性化してる) + return; + + ctOpen = new CCounter(); + ctClose = new CCounter(); + + for (int i = 0; i < OptionType.Length; i++) + OptionType[i] = new CTexture(); + + #region [ Speed ] + + txSpeed[0] = OptionTypeTx("0.5", Color.White, Color.Black); + txSpeed[1] = OptionTypeTx("1.0", Color.White, Color.Black); + txSpeed[2] = OptionTypeTx("1.1", Color.White, Color.Black); + txSpeed[3] = OptionTypeTx("1.2", Color.White, Color.Black); + txSpeed[4] = OptionTypeTx("1.3", Color.White, Color.Black); + txSpeed[5] = OptionTypeTx("1.4", Color.White, Color.Black); + txSpeed[6] = OptionTypeTx("1.5", Color.White, Color.Black); + txSpeed[7] = OptionTypeTx("1.6", Color.White, Color.Black); + txSpeed[8] = OptionTypeTx("1.7", Color.White, Color.Black); + txSpeed[9] = OptionTypeTx("1.8", Color.White, Color.Black); + txSpeed[10] = OptionTypeTx("1.9", Color.White, Color.Black); + txSpeed[11] = OptionTypeTx("2.0", Color.White, Color.Black); + txSpeed[12] = OptionTypeTx("2.5", Color.White, Color.Black); + txSpeed[13] = OptionTypeTx("3.0", Color.White, Color.Black); + txSpeed[14] = OptionTypeTx("3.5", Color.White, Color.Black); + txSpeed[15] = OptionTypeTx("4.0", Color.White, Color.Black); + + #endregion + + txSwitch[0] = OptionTypeTx("しない", Color.White, Color.Black); + txSwitch[1] = OptionTypeTx("する", Color.White, Color.Black); + + txRandom[0] = OptionTypeTx("なし", Color.White, Color.Black); + txRandom[1] = OptionTypeTx("きまぐれ", Color.White, Color.Black); + txRandom[2] = OptionTypeTx("でたらめ", Color.White, Color.Black); + + txGameMode[0] = OptionTypeTx("なし", Color.White, Color.Black); + txGameMode[1] = OptionTypeTx("特訓モード", Color.White, Color.Black); + + txNone = OptionTypeTx("使用不可" ,Color.White, Color.Black); + + OptionType[0] = OptionTypeTx("はやさ", Color.White, Color.Black); + OptionType[1] = OptionTypeTx("ドロン", Color.White, Color.Black); + OptionType[2] = OptionTypeTx("あべこべ", Color.White, Color.Black); + OptionType[3] = OptionTypeTx("ランダム", Color.White, Color.Black); + OptionType[4] = OptionTypeTx("ゲームモード", Color.White, Color.Black); + OptionType[5] = OptionTypeTx("オート", Color.White, Color.Black); + OptionType[6] = OptionTypeTx("ボイス", Color.White, Color.Black); + OptionType[7] = OptionTypeTx("音色", Color.White, Color.Black); + + for (int i = 0; i < OptionType.Length; i++) + OptionType[i].vc拡大縮小倍率.X = 0.96f; + + base.On活性化(); + } + + public override void On非活性化() + { + + base.On非活性化(); + } + public override void OnManagedリソースの作成() + { + base.OnManagedリソースの作成(); + } + public override void OnManagedリソースの解放() + { + if (this.b活性化してない) + return; + base.OnManagedリソースの解放(); + } + + public int On進行描画(int player) + { + if (this.b活性化してない) + return 0; + + ctOpen.t進行(); + ctClose.t進行(); + + if (!ctOpen.b進行中) ctOpen.t開始(0, 50, 6, TJAPlayer3.Timer); + + var act難易度 = TJAPlayer3.stage選曲.act難易度選択画面; + + #region [ Open & Close ] + + float oy1 = ctOpen.n現在の値 * 18; + float oy2 = (ctOpen.n現在の値 - 30) * 4; + float oy3 = ctOpen.n現在の値 < 30 ? 410 - oy1 : -80 + oy2; + + float cy1 = ctClose.n現在の値 * 3; + float cy2 = (ctClose.n現在の値 - 20) * 16; + float cy3 = ctClose.n現在の値 < 20 ? 0 - cy1 : 20 + cy2; + + float y = oy3 + cy3; + + #endregion + + TJAPlayer3.Tx.Difficulty_Option.t2D描画(TJAPlayer3.app.Device, 0, y); + + TJAPlayer3.Tx.Difficulty_Option_Select.t2D描画(TJAPlayer3.app.Device, 0, y + NowCount * 40.7f); + + + for (int i = 0; i < OptionType.Length; i++) + { + OptionType[i].t2D描画(TJAPlayer3.app.Device, 16, 379 + i * 40.8f + y); + } + + txSpeed[nSpeedCount].t2D拡大率考慮描画(TJAPlayer3.app.Device, CTexture.RefPnt.Up, 200, 375 + y); + txSwitch[nStealth].t2D拡大率考慮描画(TJAPlayer3.app.Device, CTexture.RefPnt.Up, 200, 375 + y + 1 * 40.7f); + txSwitch[nAbekobe].t2D拡大率考慮描画(TJAPlayer3.app.Device, CTexture.RefPnt.Up, 200, 375 + y + 2 * 40.7f); + txRandom[nRandom].t2D拡大率考慮描画(TJAPlayer3.app.Device, CTexture.RefPnt.Up, 200, 375 + y + 3 * 40.7f); + txGameMode[nGameMode].t2D拡大率考慮描画(TJAPlayer3.app.Device, CTexture.RefPnt.Up, 200, 375 + y + 4 * 40.7f); + txSwitch[nAutoMode].t2D拡大率考慮描画(TJAPlayer3.app.Device, CTexture.RefPnt.Up, 200, 375 + y + 5 * 40.7f); + + for (int i = 6; i < 8; i++) + { + txNone.t2D拡大率考慮描画(TJAPlayer3.app.Device, CTexture.RefPnt.Up, 200, 375 + y + i * 40.7f); + } + + if (ctClose.n現在の値 >= 50) + { + Decision(); + NowCount = 0; + ctOpen.t停止(); + ctOpen.n現在の値 = 0; + ctClose.t停止(); + ctClose.n現在の値 = 0; + bEnd = false; + act難易度.bOption[player] = false; + } + + #region [ Key ] + + if (!ctClose.b進行中) + { + if (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LBlue)) { OptionSelect(true); TJAPlayer3.Skin.sound変更音.t再生する(); }; + if (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RBlue)) { OptionSelect(false); TJAPlayer3.Skin.sound変更音.t再生する(); }; + + if ((TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LRed) || TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RRed)) && ctOpen.n現在の値 >= ctOpen.n終了値) + { + TJAPlayer3.Skin.sound決定音.t再生する(); + if (NowCount < 7) + { + NowCount++; + } + else if (NowCount >= 7 && !bEnd) + { + bEnd = true; + ctClose.t開始(0, 50, 6, TJAPlayer3.Timer); + } + } + } + + + #endregion + return 0; + } + + + public CCounter ctOpen; + public CCounter ctClose; + public CTexture[] OptionType = new CTexture[8]; + + public int NowCount; + public int[] NowCountType = new int[8]; + + public bool bEnd; + + public CTexture[] txSpeed = new CTexture[16]; + public int nSpeedCount = 1; + + public int nStealth = 0; + public int nAbekobe = 0; + + public CTexture[] txRandom = new CTexture[3]; + public int nRandom = 0; + + public CTexture[] txGameMode = new CTexture[2]; + public int nGameMode; + + public CTexture[] txAutoMode = new CTexture[2]; + public int nAutoMode = 0; + public CTexture txNone = new CTexture(); + + public CTexture[] txSwitch = new CTexture[2]; + + public CTexture OptionTypeTx(string str文字, Color forecolor, Color backcolor) + { + using (var bmp = new CPrivateFastFont(new FontFamily(TJAPlayer3.ConfigIni.FontName), 13).DrawPrivateFont(str文字, forecolor, backcolor)) + { + return TJAPlayer3.tテクスチャの生成(bmp); + } + } + + public void OptionSelect(bool left) + { + switch (NowCount) + { + case 0: + if (left) + { + if (nSpeedCount > 0) nSpeedCount--; + else nSpeedCount = 15; + } + else + { + if (nSpeedCount < 15) nSpeedCount++; + else nSpeedCount = 0; + } + break; + case 1: + if (nStealth == 0) nStealth = 1; + else nStealth = 0; + break; + case 2: + if (nAbekobe == 0) nAbekobe = 1; + else nAbekobe = 0; + break; + case 3: + if (left) + { + if (nRandom > 0) nRandom--; + else nRandom = 2; + } + else + { + if (nRandom < 2) nRandom++; + else nRandom = 0; + } + break; + case 4: + if (nGameMode == 0) nGameMode = 1; + else nGameMode = 0; + break; + case 5: + if (nAutoMode == 0) nAutoMode = 1; + else nAutoMode = 0; + break; + + } + } + public void Decision() + { + #region [ Speed ] + + if (nSpeedCount == 0) + { + TJAPlayer3.ConfigIni.n譜面スクロール速度[0] = 4; + } + else if (nSpeedCount > 0 && nSpeedCount <= 11) + { + TJAPlayer3.ConfigIni.n譜面スクロール速度[0] = nSpeedCount + 8; + } + else if (nSpeedCount == 12) + { + TJAPlayer3.ConfigIni.n譜面スクロール速度[0] = 20 + 4; + } + else if (nSpeedCount == 13) + { + TJAPlayer3.ConfigIni.n譜面スクロール速度[0] = 20 + 9; + } + else if (nSpeedCount == 14) + { + TJAPlayer3.ConfigIni.n譜面スクロール速度[0] = 20 + 14; + } + else if (nSpeedCount == 15) + { + TJAPlayer3.ConfigIni.n譜面スクロール速度[0] = 20 + 19; + } + + #endregion + #region [ Doron ] + if (nStealth == 0) + { + TJAPlayer3.ConfigIni.eSTEALTH = Eステルスモード.OFF; + } + else + { + TJAPlayer3.ConfigIni.eSTEALTH = Eステルスモード.DORON; + } + #endregion + #region [ Random ] + if(nRandom == 2 && nAbekobe == 1) + { + TJAPlayer3.ConfigIni.eRandom.Taiko = Eランダムモード.HYPERRANDOM; + } + else if (nRandom == 2 && nAbekobe == 0) + { + TJAPlayer3.ConfigIni.eRandom.Taiko = Eランダムモード.SUPERRANDOM; + } + else if (nRandom == 1 && nAbekobe == 1) + { + TJAPlayer3.ConfigIni.eRandom.Taiko = Eランダムモード.RANDOM; + } + else if (nRandom == 1 && nAbekobe == 0) + { + TJAPlayer3.ConfigIni.eRandom.Taiko = Eランダムモード.RANDOM; + } + else if (nRandom == 0 && nAbekobe == 1) + { + TJAPlayer3.ConfigIni.eRandom.Taiko = Eランダムモード.MIRROR; + } + else if (nRandom == 0 && nAbekobe == 0) + { + TJAPlayer3.ConfigIni.eRandom.Taiko = Eランダムモード.OFF; + } + #endregion + #region [ GameMode ] + if(nGameMode == 0) + { + TJAPlayer3.ConfigIni.bTokkunMode = false; + } + else + { + TJAPlayer3.ConfigIni.bTokkunMode = true; + } + #endregion + #region [ AutoMode ] + if(nAutoMode == 1) + { + TJAPlayer3.ConfigIni.b太鼓パートAutoPlay = true; + } + else + { + TJAPlayer3.ConfigIni.b太鼓パートAutoPlay = false; + } + #endregion + } + + } +} diff --git a/TJAPlayer3/Stages/05.SongSelect/CActSelectArtistComment.cs b/TJAPlayer3/Stages/05.SongSelect/CActSelectArtistComment.cs new file mode 100644 index 00000000..f136cfb8 --- /dev/null +++ b/TJAPlayer3/Stages/05.SongSelect/CActSelectArtistComment.cs @@ -0,0 +1,236 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Drawing; +using System.Diagnostics; +using SlimDX; +using FDK; + +namespace TJAPlayer3 +{ + internal class CActSelectArtistComment : CActivity + { + // メソッド + + public CActSelectArtistComment() + { + base.b活性化してない = true; + } + public void t選択曲が変更された() + { + Cスコア cスコア = TJAPlayer3.stage選曲.r現在選択中のスコア; + if( cスコア != null ) + { + Bitmap image = new Bitmap( 1, 1 ); + TJAPlayer3.tテクスチャの解放( ref this.txArtist ); + this.strArtist = cスコア.譜面情報.アーティスト名; + if( ( this.strArtist != null ) && ( this.strArtist.Length > 0 ) ) + { + Graphics graphics = Graphics.FromImage( image ); + graphics.PageUnit = GraphicsUnit.Pixel; + SizeF ef = graphics.MeasureString( this.strArtist, this.ft描画用フォント ); + graphics.Dispose(); + if (ef.Width > SampleFramework.GameWindowSize.Width) + { + ef.Width = SampleFramework.GameWindowSize.Width; + } + try + { + Bitmap bitmap2 = new Bitmap( (int) Math.Ceiling( (double) ef.Width ), (int) Math.Ceiling( (double) this.ft描画用フォント.Size ) ); + graphics = Graphics.FromImage( bitmap2 ); + graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias; + graphics.DrawString( this.strArtist, this.ft描画用フォント, Brushes.White, ( float ) 0f, ( float ) 0f ); + graphics.Dispose(); + this.txArtist = new CTexture( TJAPlayer3.app.Device, bitmap2, TJAPlayer3.TextureFormat ); + this.txArtist.vc拡大縮小倍率 = new Vector3( 0.5f, 0.5f, 1f ); + bitmap2.Dispose(); + } + catch( CTextureCreateFailedException e ) + { + Trace.TraceError( e.ToString() ); + Trace.TraceError( "ARTISTテクスチャの生成に失敗しました。" ); + this.txArtist = null; + } + } + TJAPlayer3.tテクスチャの解放( ref this.txComment ); + //this.strComment = cスコア.譜面情報.コメント; + this.strComment = cスコア.譜面情報.ジャンル; + if( ( this.strComment != null ) && ( this.strComment.Length > 0 ) ) + { + Graphics graphics2 = Graphics.FromImage( image ); + graphics2.PageUnit = GraphicsUnit.Pixel; + SizeF ef2 = graphics2.MeasureString( this.strComment, this.ft描画用フォント ); + Size size = new Size( (int) Math.Ceiling( (double) ef2.Width ), (int) Math.Ceiling( (double) ef2.Height ) ); + graphics2.Dispose(); + this.nテクスチャの最大幅 = TJAPlayer3.app.Device.Capabilities.MaxTextureWidth; + int maxTextureHeight = TJAPlayer3.app.Device.Capabilities.MaxTextureHeight; + Bitmap bitmap3 = new Bitmap( size.Width, (int) Math.Ceiling( (double) this.ft描画用フォント.Size ) ); + graphics2 = Graphics.FromImage( bitmap3 ); + graphics2.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias; + graphics2.DrawString( this.strComment, this.ft描画用フォント, Brushes.White, ( float ) 0f, ( float ) 0f ); + graphics2.Dispose(); + this.nComment行数 = 1; + this.nComment最終行の幅 = size.Width; + while( this.nComment最終行の幅 > this.nテクスチャの最大幅 ) + { + this.nComment行数++; + this.nComment最終行の幅 -= this.nテクスチャの最大幅; + } + while( ( this.nComment行数 * ( (int) Math.Ceiling( (double) this.ft描画用フォント.Size ) ) ) > maxTextureHeight ) + { + this.nComment行数--; + this.nComment最終行の幅 = this.nテクスチャの最大幅; + } + Bitmap bitmap4 = new Bitmap( ( this.nComment行数 > 1 ) ? this.nテクスチャの最大幅 : this.nComment最終行の幅, this.nComment行数 * ( (int) Math.Ceiling( (double) this.ft描画用フォント.Size ) ) ); + graphics2 = Graphics.FromImage( bitmap4 ); + Rectangle srcRect = new Rectangle(); + Rectangle destRect = new Rectangle(); + for( int i = 0; i < this.nComment行数; i++ ) + { + srcRect.X = i * this.nテクスチャの最大幅; + srcRect.Y = 0; + srcRect.Width = ( ( i + 1 ) == this.nComment行数 ) ? this.nComment最終行の幅 : this.nテクスチャの最大幅; + srcRect.Height = bitmap3.Height; + destRect.X = 0; + destRect.Y = i * bitmap3.Height; + destRect.Width = srcRect.Width; + destRect.Height = srcRect.Height; + graphics2.DrawImage( bitmap3, destRect, srcRect, GraphicsUnit.Pixel ); + } + graphics2.Dispose(); + try + { + this.txComment = new CTexture( TJAPlayer3.app.Device, bitmap4, TJAPlayer3.TextureFormat ); + this.txComment.vc拡大縮小倍率 = new Vector3( 0.5f, 0.5f, 1f ); + } + catch( CTextureCreateFailedException e ) + { + Trace.TraceError( e.ToString() ); + Trace.TraceError( "COMMENTテクスチャの生成に失敗しました。" ); + this.txComment = null; + } + bitmap4.Dispose(); + bitmap3.Dispose(); + } + image.Dispose(); + if( this.txComment != null ) + { + this.ctComment = new CCounter( -740, (int) ( ( ( ( this.nComment行数 - 1 ) * this.nテクスチャの最大幅 ) + this.nComment最終行の幅 ) * this.txComment.vc拡大縮小倍率.X ), 10, TJAPlayer3.Timer ); + } + } + } + + + // CActivity 実装 + + public override void On活性化() + { + this.ft描画用フォント = new Font("MS UI Gothic", 26f, GraphicsUnit.Pixel ); + this.txArtist = null; + this.txComment = null; + this.strArtist = ""; + this.strComment = ""; + this.nComment最終行の幅 = 0; + this.nComment行数 = 0; + this.nテクスチャの最大幅 = 0; + this.ctComment = new CCounter(); + base.On活性化(); + } + public override void On非活性化() + { + TJAPlayer3.tテクスチャの解放( ref this.txArtist ); + TJAPlayer3.tテクスチャの解放( ref this.txComment ); + if( this.ft描画用フォント != null ) + { + this.ft描画用フォント.Dispose(); + this.ft描画用フォント = null; + } + this.ctComment = null; + base.On非活性化(); + } + public override void OnManagedリソースの作成() + { + if( !base.b活性化してない ) + { + this.t選択曲が変更された(); + base.OnManagedリソースの作成(); + } + } + public override void OnManagedリソースの解放() + { + if( !base.b活性化してない ) + { + TJAPlayer3.tテクスチャの解放( ref this.txArtist ); + TJAPlayer3.tテクスチャの解放( ref this.txComment ); + base.OnManagedリソースの解放(); + } + } + public override int On進行描画() + { + if( !base.b活性化してない ) + { + if( this.ctComment.b進行中 ) + { + this.ctComment.t進行Loop(); + } + if( this.txArtist != null ) + { + int x = 1260 - ( (int) ( this.txArtist.szテクスチャサイズ.Width * this.txArtist.vc拡大縮小倍率.X ) ); // #27648 2012.3.14 yyagi: -12 for scrollbar + int y = 322; + this.txArtist.t2D描画( TJAPlayer3.app.Device, x, y ); + } + if( ( this.txComment != null ) && ( ( this.ctComment.n現在の値 + 750 ) >= 0 ) ) + { + int num3 = 510; + int num4 = 342; + Rectangle rectangle = new Rectangle( this.ctComment.n現在の値, 0, 750, (int) this.ft描画用フォント.Size ); + if( rectangle.X < 0 ) + { + num3 += -rectangle.X; + rectangle.Width -= -rectangle.X; + rectangle.X = 0; + } + int num5 = ( (int) ( ( (float) rectangle.X ) / this.txComment.vc拡大縮小倍率.X ) ) / this.nテクスチャの最大幅; + Rectangle rectangle2 = new Rectangle(); + while( rectangle.Width > 0 ) + { + rectangle2.X = ( (int) ( ( (float) rectangle.X ) / this.txComment.vc拡大縮小倍率.X ) ) % this.nテクスチャの最大幅; + rectangle2.Y = num5 * ( (int) this.ft描画用フォント.Size ); + int num6 = ( ( num5 + 1 ) == this.nComment行数 ) ? this.nComment最終行の幅 : this.nテクスチャの最大幅; + int num7 = num6 - rectangle2.X; + rectangle2.Width = num7; + rectangle2.Height = (int) this.ft描画用フォント.Size; + this.txComment.t2D描画( TJAPlayer3.app.Device, num3, num4, rectangle2 ); + if( ++num5 == this.nComment行数 ) + { + break; + } + int num8 = (int) ( rectangle2.Width * this.txComment.vc拡大縮小倍率.X ); + rectangle.X += num8; + rectangle.Width -= num8; + num3 += num8; + } + } + } + return 0; + } + + + // その他 + + #region [ private ] + //----------------- + private CCounter ctComment; + private Font ft描画用フォント; + private int nComment行数; + private int nComment最終行の幅; + private const int nComment表示幅 = 750; + private int nテクスチャの最大幅; + private string strArtist; + private string strComment; + private CTexture txArtist; + private CTexture txComment; + //----------------- + #endregion + } +} diff --git a/TJAPlayer3/Stages/05.SongSelect/CActSelectInformation.cs b/TJAPlayer3/Stages/05.SongSelect/CActSelectInformation.cs new file mode 100644 index 00000000..00c9d096 --- /dev/null +++ b/TJAPlayer3/Stages/05.SongSelect/CActSelectInformation.cs @@ -0,0 +1,151 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Globalization; +using System.Text; +using System.Runtime.InteropServices; +using System.Drawing; +using FDK; + +namespace TJAPlayer3 +{ + internal class CActSelectInformation : CActivity + { + // コンストラクタ + + public CActSelectInformation() + { + base.b活性化してない = true; + } + + + // CActivity 実装 + + public override void On活性化() + { + this.n画像Index上 = -1; + this.n画像Index下 = 0; + + this.bFirst = true; + this.ct進行用 = new CCounter( 0, 3000, 3, TJAPlayer3.Timer ); + base.On活性化(); + } + public override void On非活性化() + { + this.ctスクロール用 = null; + base.On非活性化(); + } + public override void OnManagedリソースの作成() + { + if( !base.b活性化してない ) + { + this.txInfo_Back = TJAPlayer3.tテクスチャの生成( CSkin.Path( @"Graphics\5_information_BG.png" ) ); + this.txInfo[ 0 ] = TJAPlayer3.tテクスチャの生成( CSkin.Path( @"Graphics\5_information.png" ) ); + this.txInfo[ 1 ] = TJAPlayer3.tテクスチャの生成( CSkin.Path( @"Graphics\5_information2.png" ) ); + base.OnManagedリソースの作成(); + } + } + public override void OnManagedリソースの解放() + { + if( !base.b活性化してない ) + { + TJAPlayer3.tテクスチャの解放( ref this.txInfo_Back ); + TJAPlayer3.tテクスチャの解放( ref this.txInfo[ 0 ] ); + TJAPlayer3.tテクスチャの解放( ref this.txInfo[ 1 ] ); + base.OnManagedリソースの解放(); + } + } + public override int On進行描画() + { + if( !base.b活性化してない ) + { + if( base.b初めての進行描画 ) + { + base.b初めての進行描画 = false; + } + + if( this.txInfo_Back != null ) + this.txInfo_Back.t2D描画( TJAPlayer3.app.Device, 340, 600 ); + + + this.ct進行用.t進行Loop(); + if( this.bFirst ) + { + this.ct進行用.n現在の値 = 300; + } + + #region[ 透明度制御 ] + if( this.txInfo[ 0 ] != null && this.txInfo[ 1 ] != null ) + { + if( this.ct進行用.n現在の値 < 255 ) + { + this.txInfo[ 0 ].Opacity = this.ct進行用.n現在の値; + this.txInfo[ 1 ].Opacity = 255 - this.ct進行用.n現在の値; + } + else if( this.ct進行用.n現在の値 >= 255 && this.ct進行用.n現在の値 < 1245 ) + { + this.bFirst = false; + this.txInfo[ 0 ].Opacity = 255; + this.txInfo[ 1 ].Opacity = 0; + } + else if( this.ct進行用.n現在の値 >= 1245 && this.ct進行用.n現在の値 < 1500 ) + { + this.txInfo[ 0 ].Opacity = 255 - ( this.ct進行用.n現在の値 - 1245 ); + this.txInfo[ 1 ].Opacity = this.ct進行用.n現在の値 - 1245; + } + else if( this.ct進行用.n現在の値 >= 1500 && this.ct進行用.n現在の値 <= 3000 ) + { + this.txInfo[ 0 ].Opacity = 0; + this.txInfo[ 1 ].Opacity = 255; + } + + this.txInfo[ 0 ].t2D描画( TJAPlayer3.app.Device, 340, 600 ); + this.txInfo[ 1 ].t2D描画( TJAPlayer3.app.Device, 340, 600 ); + } + + #endregion + + + } + return 0; + } + + + // その他 + + #region [ private ] + //----------------- + [StructLayout( LayoutKind.Sequential )] + private struct STINFO + { + public int nTexture番号; + public Point pt左上座標; + public STINFO( int nTexture番号, int x, int y ) + { + this.nTexture番号 = nTexture番号; + this.pt左上座標 = new Point( x, y ); + } + } + + private CCounter ctスクロール用; + private int n画像Index下; + private int n画像Index上; + private readonly STINFO[] stInfo = new STINFO[] { + new STINFO( 0, 0, 0 ), + new STINFO( 0, 0, 49 ), + new STINFO( 0, 0, 97 ), + new STINFO( 0, 0, 147 ), + new STINFO( 0, 0, 196 ), + new STINFO( 1, 0, 0 ), + new STINFO( 1, 0, 49 ), + new STINFO( 1, 0, 97 ), + new STINFO( 1, 0, 147 ) + }; + private CTexture txInfo_Back; + private CTexture[] txInfo = new CTexture[ 2 ]; + private bool bFirst; + private CCounter ct進行用; + //----------------- + #endregion + } +} diff --git a/TJAPlayer3/Stages/05.SongSelect/CActSelectPopupMenu.cs b/TJAPlayer3/Stages/05.SongSelect/CActSelectPopupMenu.cs new file mode 100644 index 00000000..3866250c --- /dev/null +++ b/TJAPlayer3/Stages/05.SongSelect/CActSelectPopupMenu.cs @@ -0,0 +1,494 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Globalization; +using System.Text; +using System.Runtime.InteropServices; +using System.Drawing; +using System.IO; +using FDK; + + +namespace TJAPlayer3 +{ + internal class CActSelectPopupMenu : CActivity + { + + // プロパティ + + + public int GetIndex(int pos) + { + return lciMenuItems[ pos ].cItem.GetIndex(); + } + public object GetObj現在値( int pos ) + { + return lciMenuItems[ pos ].cItem.obj現在値(); + } + public bool bGotoDetailConfig + { + get; + internal set; + } + + /// + /// ソートメニュー機能を使用中かどうか。外部からこれをtrueにすると、ソートメニューが出現する。falseにすると消える。 + /// + public bool bIsActivePopupMenu + { + get; + private set; + } + public virtual void tActivatePopupMenu( E楽器パート einst ) + { + nItemSelecting = -1; // #24757 2011.4.1 yyagi: Clear sorting status in each stating menu. + this.eInst = einst; + this.bIsActivePopupMenu = true; + this.bIsSelectingIntItem = false; + this.bGotoDetailConfig = false; + } + public virtual void tDeativatePopupMenu() + { + this.bIsActivePopupMenu = false; + } + + + protected void Initialize( List menulist, bool showAllItems, string title ) + { + Initialize( menulist, showAllItems, title, 0 ); + } + + protected void Initialize( List menulist, bool showAllItems, string title, int defaultPos ) + { + ConditionallyInitializePrvFont(); + + b選択した = false; + stqMenuTitle = new stQuickMenuItem(); + stqMenuTitle.cItem = new CItemBase(); + stqMenuTitle.cItem.str項目名 = title; + using (var bitmap = prvFont.DrawPrivateFont( title, Color.White, Color.Black )) + { + stqMenuTitle.txName = TJAPlayer3.tテクスチャの生成( bitmap, false ); + stqMenuTitle.rectName = prvFont.RectStrings; + } + lciMenuItems = new stQuickMenuItem[ menulist.Count ]; + for (int i = 0; i < menulist.Count; i++ ) + { + stQuickMenuItem stqm = new stQuickMenuItem(); + stqm.cItem = menulist[ i ]; + using (var bitmap = prvFont.DrawPrivateFont( menulist[ i ].str項目名, Color.White, Color.Black )) + { + stqm.txName = TJAPlayer3.tテクスチャの生成( bitmap, false ); + stqm.rectName = prvFont.RectStrings; + } + lciMenuItems[ i ] = stqm; + } + + bShowAllItems = showAllItems; + n現在の選択行 = defaultPos; + } + + private void ConditionallyInitializePrvFont() + { + if (prvFont == null) + { + prvFont = new CPrivateFastFont(CSkin.Path(@"Graphics\ipag.ttf"), 18); + } + } + + public void tEnter押下() + { + if ( this.bキー入力待ち ) + { + TJAPlayer3.Skin.sound決定音.t再生する(); + + if ( this.n現在の選択行 != lciMenuItems.Length - 1 ) + { + if ( lciMenuItems[ n現在の選択行 ].cItem.e種別 == CItemBase.E種別.リスト || + lciMenuItems[ n現在の選択行 ].cItem.e種別 == CItemBase.E種別.ONorOFFトグル || + lciMenuItems[ n現在の選択行 ].cItem.e種別 == CItemBase.E種別.ONorOFFor不定スリーステート ) + { + lciMenuItems[ n現在の選択行 ].cItem.t項目値を次へ移動(); + } + else if ( lciMenuItems[ n現在の選択行 ].cItem.e種別 == CItemBase.E種別.整数 ) + { + bIsSelectingIntItem = !bIsSelectingIntItem; // 選択状態/選択解除状態を反転する + } + else if ( lciMenuItems[ n現在の選択行 ].cItem.e種別 == CItemBase.E種別.切替リスト ) + { + // 特に何もしない + } + else + { + throw new ArgumentException(); + } + nItemSelecting = n現在の選択行; + } + tEnter押下Main( (int) lciMenuItems[ n現在の選択行 ].cItem.GetIndex() ); + + this.bキー入力待ち = true; + } + } + + /// + /// Decide押下時の処理を、継承先で記述する。 + /// + /// CItemBaseの現在の設定値のindex + public virtual void tEnter押下Main( int val ) + { + } + /// + /// Cancel押下時の追加処理があれば、継承先で記述する。 + /// + public virtual void tCancel() + { + } + /// + /// 追加の描画処理。必要に応じて、継承先で記述する。 + /// + public virtual void t進行描画sub() + { + } + + public void t次に移動() + { + if ( this.bキー入力待ち ) + { + TJAPlayer3.Skin.soundカーソル移動音.t再生する(); + if ( bIsSelectingIntItem ) + { + lciMenuItems[ n現在の選択行 ].cItem.t項目値を前へ移動(); // 項目移動と数値上下は方向が逆になるので注意 + } + else + { + if ( ++this.n現在の選択行 >= this.lciMenuItems.Length ) + { + this.n現在の選択行 = 0; + } + } + } + } + public void t前に移動() + { + if ( this.bキー入力待ち ) + { + TJAPlayer3.Skin.soundカーソル移動音.t再生する(); + if ( bIsSelectingIntItem ) + { + lciMenuItems[ n現在の選択行 ].cItem.t項目値を次へ移動(); // 項目移動と数値上下は方向が逆になるので注意 + } + else + { + if ( --this.n現在の選択行 < 0 ) + { + this.n現在の選択行 = this.lciMenuItems.Length - 1; + } + } + } + } + + // CActivity 実装 + + public override void On活性化() + { + // this.n現在の選択行 = 0; + this.bキー入力待ち = true; + for ( int i = 0; i < 4; i++ ) + { + this.ctキー反復用[ i ] = new CCounter( 0, 0, 0, TJAPlayer3.Timer ); + } + base.b活性化してない = true; + b選択した = false; + this.bIsActivePopupMenu = false; + this.font = new CActDFPFont(); + base.list子Activities.Add( this.font ); + nItemSelecting = -1; + + base.On活性化(); + } + public override void On非活性化() + { + if ( !base.b活性化してない ) + { + base.list子Activities.Remove( this.font ); + this.font.On非活性化(); + this.font = null; + + //CDTXMania.tテクスチャの解放( ref this.txCursor ); + //CDTXMania.tテクスチャの解放( ref this.txPopupMenuBackground ); + for ( int i = 0; i < 4; i++ ) + { + this.ctキー反復用[ i ] = null; + } + base.On非活性化(); + } + } + + public override void OnManagedリソースの作成() + { + base.OnManagedリソースの作成(); + + ConditionallyInitializePrvFont(); + } + + public override void OnManagedリソースの解放() + { + if ( !base.b活性化してない ) + { + //CDTXMania.tテクスチャの解放( ref this.txPopupMenuBackground ); + //CDTXMania.tテクスチャの解放( ref this.txCursor ); + TJAPlayer3.t安全にDisposeする( ref this.prvFont ); + } + base.OnManagedリソースの解放(); + } + + public override int On進行描画() + { + throw new InvalidOperationException( "t進行描画(bool)のほうを使用してください。" ); + } + + public int t進行描画() + { + if ( !base.b活性化してない && this.bIsActivePopupMenu ) + { + if ( this.bキー入力待ち ) + { + #region [ Shift-F1: CONFIG画面 ] + if ( ( TJAPlayer3.Input管理.Keyboard.bキーが押されている( (int)SlimDXKeys.Key.RightShift ) || TJAPlayer3.Input管理.Keyboard.bキーが押されている( (int)SlimDXKeys.Key.LeftShift ) ) && + TJAPlayer3.Input管理.Keyboard.bキーが押された( (int)SlimDXKeys.Key.F1 ) ) + { // [SHIFT] + [F1] CONFIG + TJAPlayer3.Skin.sound取消音.t再生する(); + tCancel(); + this.bGotoDetailConfig = true; + } + #endregion + #region [ キー入力: キャンセル ] + else if ( ( TJAPlayer3.Input管理.Keyboard.bキーが押された( (int)SlimDXKeys.Key.Escape ) + || TJAPlayer3.Pad.b押された( E楽器パート.DRUMS, Eパッド.FT ) + || TJAPlayer3.Pad.b押されたGB( Eパッド.Cancel ) ) + && this.bEsc有効 ) + { // キャンセル + TJAPlayer3.Skin.sound取消音.t再生する(); + tCancel(); + this.bIsActivePopupMenu = false; + } + #endregion + + if (!b選択した) + { + #region [ キー入力: 決定 ] + // E楽器パート eInst = E楽器パート.UNKNOWN; + ESortAction eAction = ESortAction.END; + if (TJAPlayer3.Pad.b押された(E楽器パート.GUITAR, Eパッド.Decide)) + { + eInst = E楽器パート.GUITAR; + eAction = ESortAction.Decide; + } + else if (TJAPlayer3.Pad.b押された(E楽器パート.BASS, Eパッド.Decide)) + { + eInst = E楽器パート.BASS; + eAction = ESortAction.Decide; + } + else if ( + TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.Decide) // #24756 2011.4.1 yyagi: Add condition "Drum-Decide" to enable CY in Sort Menu. + || TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RD) + || TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LC) + || TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LRed) + || TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RRed) + || (TJAPlayer3.ConfigIni.bEnterがキー割り当てのどこにも使用されていない && TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.Return))) + { + eInst = E楽器パート.DRUMS; + eAction = ESortAction.Decide; + } + if (eAction == ESortAction.Decide) // 決定 + { + this.tEnter押下(); + } + #endregion + #region [ キー入力: 前に移動 ] + this.ctキー反復用.Up.tキー反復(TJAPlayer3.Input管理.Keyboard.bキーが押されている((int)SlimDXKeys.Key.UpArrow), new CCounter.DGキー処理(this.t前に移動)); + this.ctキー反復用.R.tキー反復(TJAPlayer3.Pad.b押されているGB(Eパッド.R), new CCounter.DGキー処理(this.t前に移動)); + if (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.SD) || TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LBlue)) + { + this.t前に移動(); + } + #endregion + #region [ キー入力: 次に移動 ] + this.ctキー反復用.Down.tキー反復(TJAPlayer3.Input管理.Keyboard.bキーが押されている((int)SlimDXKeys.Key.DownArrow), new CCounter.DGキー処理(this.t次に移動)); + this.ctキー反復用.B.tキー反復(TJAPlayer3.Pad.b押されているGB(Eパッド.B), new CCounter.DGキー処理(this.t次に移動)); + if (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LT) || TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RBlue)) + { + this.t次に移動(); + } + #endregion + } + } + #region [ ポップアップメニュー 背景描画 ] + if ( TJAPlayer3.Tx.Menu_Title != null ) + { + TJAPlayer3.Tx.Menu_Title.t2D描画( TJAPlayer3.app.Device, 160, 40 ); + } + #endregion + #region [ ソートメニュータイトル描画 ] + int x = 240, y = 44; + stqMenuTitle.txName.t2D描画( TJAPlayer3.app.Device, x, y ); + #endregion + #region [ カーソル描画 ] + if ( TJAPlayer3.Tx.Menu_Highlight != null ) + { + int height = 32; + int curX = 180; + int curY = 46 + ( height * ( this.n現在の選択行 + 1 ) ); + TJAPlayer3.Tx.Menu_Highlight.t2D描画( TJAPlayer3.app.Device, curX, curY, new Rectangle( 0, 0, 16, 32 ) ); + curX += 0x10; + Rectangle rectangle = new Rectangle( 8, 0, 0x10, 0x20 ); + for ( int j = 0; j < 16; j++ ) + { + TJAPlayer3.Tx.Menu_Highlight.t2D描画( TJAPlayer3.app.Device, curX, curY, rectangle ); + curX += 16; + } + TJAPlayer3.Tx.Menu_Highlight.t2D描画( TJAPlayer3.app.Device, curX, curY, new Rectangle( 0x10, 0, 16, 32 ) ); + } + #endregion + #region [ ソート候補文字列描画 ] + for ( int i = 0; i < lciMenuItems.Length; i++ ) + { + bool bItemBold = ( i == nItemSelecting && !bShowAllItems ) ? true : false; + //font.t文字列描画( 190, 80 + i * 32, lciMenuItems[ i ].cItem.str項目名, bItemBold, 1.0f ); + if ( lciMenuItems[ i ].txName != null ) + { + int height = lciMenuItems[ i ].rectName.Height; + lciMenuItems[ i ].txName.t2D描画( TJAPlayer3.app.Device, 180, 77 + i * 32 ); + } + + bool bValueBold = (bItemBold || (i == nItemSelecting && bIsSelectingIntItem)) ? true : false; + if (bItemBold || bShowAllItems) + { + string s; + switch (lciMenuItems[i].cItem.str項目名) + { + case "演奏速度": + { + double d = (double)((int)lciMenuItems[i].cItem.obj現在値() / 20.0); + s = "x" + d.ToString("0.000"); + } + break; + case "ばいそく": + { + double d = (double)((((int)lciMenuItems[i].cItem.obj現在値()) + 1) / 10.0); + s = "x" + d.ToString("0.0"); + } + break; + + default: + s = lciMenuItems[i].cItem.obj現在値().ToString(); + break; + } + //font.t文字列描画( (int)(340 * Scale.X), (int)(80 + i * 32), s, bValueBold, 1.0f * Scale.Y); + using (var bmpStr = bValueBold ? + prvFont.DrawPrivateFont(s, Color.White, Color.Black, Color.Yellow, Color.OrangeRed) : + prvFont.DrawPrivateFont(s, Color.White, Color.Black)) + { + using (var ctStr = TJAPlayer3.tテクスチャの生成(bmpStr, false)) + { + ctStr.t2D描画(TJAPlayer3.app.Device, 330, 77 + i * 32); + } + } + } + } + #endregion + t進行描画sub(); + } + return 0; + } + + + // その他 + + #region [ private ] + //----------------- + private bool bキー入力待ち; + protected bool bEsc有効; + + internal int n現在の選択行; + internal E楽器パート eInst = E楽器パート.UNKNOWN; + + //private CTexture txPopupMenuBackground; + //private CTexture txCursor; + private CActDFPFont font; + CPrivateFastFont prvFont; + + internal struct stQuickMenuItem + { + internal CItemBase cItem; + internal CTexture txName; + internal Rectangle rectName; + } + private stQuickMenuItem[] lciMenuItems; + private stQuickMenuItem stqMenuTitle; + private string strMenuTitle; + private bool bShowAllItems; + private bool bIsSelectingIntItem; + public static bool b選択した; + [StructLayout( LayoutKind.Sequential )] + private struct STキー反復用カウンタ + { + public CCounter Up; + public CCounter Down; + public CCounter R; + public CCounter B; + public CCounter this[ int index ] + { + get + { + switch ( index ) + { + case 0: + return this.Up; + + case 1: + return this.Down; + + case 2: + return this.R; + + case 3: + return this.B; + } + throw new IndexOutOfRangeException(); + } + set + { + switch ( index ) + { + case 0: + this.Up = value; + return; + + case 1: + this.Down = value; + return; + + case 2: + this.R = value; + return; + + case 3: + this.B = value; + return; + } + throw new IndexOutOfRangeException(); + } + } + } + private STキー反復用カウンタ ctキー反復用; + + private enum ESortAction : int + { + Cancel, Decide, Previous, Next, END + } + private int nItemSelecting; // 「n現在の選択行」とは別に設ける。sortでメニュー表示直後にアイテムの中身を表示しないようにするため + //----------------- + #endregion + } +} diff --git a/TJAPlayer3/Stages/05.SongSelect/CActSelectPreimageパネル.cs b/TJAPlayer3/Stages/05.SongSelect/CActSelectPreimageパネル.cs new file mode 100644 index 00000000..8bf51c1c --- /dev/null +++ b/TJAPlayer3/Stages/05.SongSelect/CActSelectPreimageパネル.cs @@ -0,0 +1,585 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Drawing; +using System.IO; +using System.Diagnostics; +using SlimDX; +using SlimDX.Direct3D9; +using FDK; + +namespace TJAPlayer3 +{ + internal class CActSelectPreimageパネル : CActivity + { + // メソッド + + public CActSelectPreimageパネル() + { + base.b活性化してない = true; + } + public void t選択曲が変更された() + { + this.ct遅延表示 = new CCounter( -TJAPlayer3.ConfigIni.n曲が選択されてからプレビュー画像が表示開始されるまでのウェイトms, 100, 1, TJAPlayer3.Timer ); + this.b新しいプレビューファイルを読み込んだ = false; + } + + public bool bIsPlayingPremovie // #27060 + { + get + { + return (this.avi != null); + } + } + + // CActivity 実装 + + public override void On活性化() + { + this.n本体X = 8; + this.n本体Y = 0x39; + this.r表示するプレビュー画像 = this.txプレビュー画像がないときの画像; + this.str現在のファイル名 = ""; + this.b新しいプレビューファイルを読み込んだ = false; + base.On活性化(); + } + public override void On非活性化() + { + this.ct登場アニメ用 = null; + this.ct遅延表示 = null; + if( this.avi != null ) + { + this.avi.Dispose(); + this.avi = null; + } + base.On非活性化(); + } + public override void OnManagedリソースの作成() + { + if( !base.b活性化してない ) + { + this.txパネル本体 = TJAPlayer3.tテクスチャの生成( CSkin.Path( @"Graphics\5_preimage panel.png" ), false ); + this.txセンサ = TJAPlayer3.tテクスチャの生成( CSkin.Path( @"Graphics\5_sensor.png" ), false ); + //this.txセンサ光 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_sensor light.png" ), false ); + this.txプレビュー画像 = null; + this.txプレビュー画像がないときの画像 = TJAPlayer3.tテクスチャの生成( CSkin.Path( @"Graphics\5_preimage default.png" ), false ); + this.sfAVI画像 = Surface.CreateOffscreenPlain( TJAPlayer3.app.Device.UnderlyingDevice, 0xcc, 0x10d, TJAPlayer3.app.GraphicsDeviceManager.CurrentSettings.BackBufferFormat, Pool.SystemMemory ); + this.nAVI再生開始時刻 = -1; + this.n前回描画したフレーム番号 = -1; + this.b動画フレームを作成した = false; + this.pAVIBmp = IntPtr.Zero; + this.tプレビュー画像_動画の変更(); + base.OnManagedリソースの作成(); + } + } + public override void OnManagedリソースの解放() + { + if( !base.b活性化してない ) + { + TJAPlayer3.tテクスチャの解放( ref this.txパネル本体 ); + TJAPlayer3.tテクスチャの解放( ref this.txセンサ ); + TJAPlayer3.tテクスチャの解放( ref this.txセンサ光 ); + TJAPlayer3.tテクスチャの解放( ref this.txプレビュー画像 ); + TJAPlayer3.tテクスチャの解放( ref this.txプレビュー画像がないときの画像 ); + if( this.sfAVI画像 != null ) + { + this.sfAVI画像.Dispose(); + this.sfAVI画像 = null; + } + base.OnManagedリソースの解放(); + } + } + public override int On進行描画() + { + if( !base.b活性化してない ) + { + if( base.b初めての進行描画 ) + { + this.ct登場アニメ用 = new CCounter( 0, 100, 5, TJAPlayer3.Timer ); + this.ctセンサ光 = new CCounter( 0, 100, 30, TJAPlayer3.Timer ); + this.ctセンサ光.n現在の値 = 70; + base.b初めての進行描画 = false; + } + this.ct登場アニメ用.t進行(); + this.ctセンサ光.t進行Loop(); + if( ( !TJAPlayer3.stage選曲.bスクロール中 && ( this.ct遅延表示 != null ) ) && this.ct遅延表示.b進行中 ) + { + this.ct遅延表示.t進行(); + if ( ( this.ct遅延表示.n現在の値 >= 0 ) && this.b新しいプレビューファイルをまだ読み込んでいない ) + { + this.tプレビュー画像_動画の変更(); + TJAPlayer3.Timer.t更新(); + this.ct遅延表示.n現在の経過時間ms = TJAPlayer3.Timer.n現在時刻; + this.b新しいプレビューファイルを読み込んだ = true; + } + else if ( this.ct遅延表示.b終了値に達した && this.ct遅延表示.b進行中 ) + { + this.ct遅延表示.t停止(); + } + } + else if( ( ( this.avi != null ) && ( this.sfAVI画像 != null ) ) && ( this.nAVI再生開始時刻 != -1 ) ) + { + int time = (int) ( ( TJAPlayer3.Timer.n現在時刻 - this.nAVI再生開始時刻 ) * ( ( (double) TJAPlayer3.ConfigIni.n演奏速度 ) / 20.0 ) ); + int frameNoFromTime = this.avi.GetFrameNoFromTime( time ); + if( frameNoFromTime >= this.avi.GetMaxFrameCount() ) + { + this.nAVI再生開始時刻 = TJAPlayer3.Timer.n現在時刻; + } + else if( ( this.n前回描画したフレーム番号 != frameNoFromTime ) && !this.b動画フレームを作成した ) + { + this.b動画フレームを作成した = true; + this.n前回描画したフレーム番号 = frameNoFromTime; + this.pAVIBmp = this.avi.GetFramePtr( frameNoFromTime ); + } + } + this.t描画処理_パネル本体(); + //this.t描画処理_ジャンル文字列(); + this.t描画処理_プレビュー画像(); + //this.t描画処理_センサ光(); + //this.t描画処理_センサ本体(); + } + return 0; + } + + + // その他 + + #region [ private ] + //----------------- + private CAvi avi; + private bool b動画フレームを作成した; + private CCounter ctセンサ光; + private CCounter ct遅延表示; + private CCounter ct登場アニメ用; + private long nAVI再生開始時刻; + private int n前回描画したフレーム番号; + private int n本体X; + private int n本体Y; + private IntPtr pAVIBmp; + private readonly Rectangle rcセンサ光 = new Rectangle( 0, 0xc0, 0x40, 0x40 ); + private readonly Rectangle rcセンサ本体下半分 = new Rectangle( 0x40, 0, 0x40, 0x80 ); + private readonly Rectangle rcセンサ本体上半分 = new Rectangle( 0, 0, 0x40, 0x80 ); + private CTexture r表示するプレビュー画像; + private Surface sfAVI画像; + private string str現在のファイル名; + private CTexture txセンサ; + private CTexture txセンサ光; + private CTexture txパネル本体; + private CTexture txプレビュー画像; + private CTexture txプレビュー画像がないときの画像; + private bool b新しいプレビューファイルを読み込んだ; + private bool b新しいプレビューファイルをまだ読み込んでいない + { + get + { + return !this.b新しいプレビューファイルを読み込んだ; + } + set + { + this.b新しいプレビューファイルを読み込んだ = !value; + } + } + + private unsafe void tサーフェイスをクリアする( Surface sf ) + { + DataRectangle rectangle = sf.LockRectangle( LockFlags.None ); + DataStream data = rectangle.Data; + switch( ( rectangle.Pitch / sf.Description.Width ) ) + { + case 4: + { + uint* numPtr = (uint*) data.DataPointer.ToPointer(); + for( int i = 0; i < sf.Description.Height; i++ ) + { + for( int j = 0; j < sf.Description.Width; j++ ) + { + ( numPtr + ( i * sf.Description.Width ) )[ j ] = 0; + } + } + break; + } + case 2: + { + ushort* numPtr2 = (ushort*) data.DataPointer.ToPointer(); + for( int k = 0; k < sf.Description.Height; k++ ) + { + for( int m = 0; m < sf.Description.Width; m++ ) + { + ( numPtr2 + ( k * sf.Description.Width ) )[ m ] = 0; + } + } + break; + } + } + sf.UnlockRectangle(); + } + private void tプレビュー画像_動画の変更() + { + if( this.avi != null ) + { + this.avi.Dispose(); + this.avi = null; + } + this.pAVIBmp = IntPtr.Zero; + this.nAVI再生開始時刻 = -1; + if( !TJAPlayer3.ConfigIni.bストイックモード ) + { + if( this.tプレビュー動画の指定があれば構築する() ) + { + return; + } + if( this.tプレビュー画像の指定があれば構築する() ) + { + return; + } + if( this.t背景画像があればその一部からプレビュー画像を構築する() ) + { + return; + } + } + this.r表示するプレビュー画像 = this.txプレビュー画像がないときの画像; + this.str現在のファイル名 = ""; + } + private bool tプレビュー画像の指定があれば構築する() + { + Cスコア cスコア = TJAPlayer3.stage選曲.r現在選択中のスコア; + if( ( cスコア == null ) || string.IsNullOrEmpty( cスコア.譜面情報.Preimage ) ) + { + return false; + } + string str = cスコア.ファイル情報.フォルダの絶対パス + cスコア.譜面情報.Preimage; + if( !str.Equals( this.str現在のファイル名 ) ) + { + TJAPlayer3.tテクスチャの解放( ref this.txプレビュー画像 ); + this.str現在のファイル名 = str; + if( !File.Exists( this.str現在のファイル名 ) ) + { + Trace.TraceWarning( "ファイルが存在しません。({0})", new object[] { this.str現在のファイル名 } ); + return false; + } + this.txプレビュー画像 = TJAPlayer3.tテクスチャの生成( this.str現在のファイル名, false ); + if( this.txプレビュー画像 != null ) + { + this.r表示するプレビュー画像 = this.txプレビュー画像; + } + else + { + this.r表示するプレビュー画像 = this.txプレビュー画像がないときの画像; + } + } + return true; + } + private bool tプレビュー動画の指定があれば構築する() + { + Cスコア cスコア = TJAPlayer3.stage選曲.r現在選択中のスコア; + if( ( TJAPlayer3.ConfigIni.bAVI有効 && ( cスコア != null ) ) && !string.IsNullOrEmpty( cスコア.譜面情報.Premovie ) ) + { + string filename = cスコア.ファイル情報.フォルダの絶対パス + cスコア.譜面情報.Premovie; + if( filename.Equals( this.str現在のファイル名 ) ) + { + return true; + } + if( this.avi != null ) + { + this.avi.Dispose(); + this.avi = null; + } + this.str現在のファイル名 = filename; + if( !File.Exists( this.str現在のファイル名 ) ) + { + Trace.TraceWarning( "ファイルが存在しません。({0})", new object[] { this.str現在のファイル名 } ); + return false; + } + try + { + this.avi = new CAvi( filename ); + this.nAVI再生開始時刻 = TJAPlayer3.Timer.n現在時刻; + this.n前回描画したフレーム番号 = -1; + this.b動画フレームを作成した = false; + this.tサーフェイスをクリアする( this.sfAVI画像 ); + Trace.TraceInformation( "動画を生成しました。({0})", new object[] { filename } ); + } + catch (Exception e) + { + Trace.TraceError( e.ToString() ); + Trace.TraceError( "動画の生成に失敗しました。({0})", new object[] { filename } ); + this.avi = null; + this.nAVI再生開始時刻 = -1; + } + } + return false; + } + private bool t背景画像があればその一部からプレビュー画像を構築する() + { + Cスコア cスコア = TJAPlayer3.stage選曲.r現在選択中のスコア; + if( ( cスコア == null ) || string.IsNullOrEmpty( cスコア.譜面情報.Backgound ) ) + { + return false; + } + string path = cスコア.ファイル情報.フォルダの絶対パス + cスコア.譜面情報.Backgound; + if( !path.Equals( this.str現在のファイル名 ) ) + { + if( !File.Exists( path ) ) + { + Trace.TraceWarning( "ファイルが存在しません。({0})", new object[] { path } ); + return false; + } + TJAPlayer3.tテクスチャの解放( ref this.txプレビュー画像 ); + this.str現在のファイル名 = path; + Bitmap image = null; + Bitmap bitmap2 = null; + Bitmap bitmap3 = null; + try + { + image = new Bitmap( this.str現在のファイル名 ); + bitmap2 = new Bitmap(SampleFramework.GameWindowSize.Width, SampleFramework.GameWindowSize.Height); + Graphics graphics = Graphics.FromImage( bitmap2 ); + int x = 0; + for (int i = 0; i < SampleFramework.GameWindowSize.Height; i += image.Height) + { + for (x = 0; x < SampleFramework.GameWindowSize.Width; x += image.Width) + { + graphics.DrawImage( image, x, i, image.Width, image.Height ); + } + } + graphics.Dispose(); + bitmap3 = new Bitmap( 0xcc, 0x10d ); + graphics = Graphics.FromImage( bitmap3 ); + graphics.DrawImage( bitmap2, 5, 5, new Rectangle( 0x157, 0x6d, 0xcc, 0x10d ), GraphicsUnit.Pixel ); + graphics.Dispose(); + this.txプレビュー画像 = new CTexture( TJAPlayer3.app.Device, bitmap3, TJAPlayer3.TextureFormat ); + this.r表示するプレビュー画像 = this.txプレビュー画像; + } + catch (Exception e) + { + Trace.TraceError( e.ToString() ); + Trace.TraceError( "背景画像の読み込みに失敗しました。({0})", new object[] { this.str現在のファイル名 } ); + this.r表示するプレビュー画像 = this.txプレビュー画像がないときの画像; + return false; + } + finally + { + if( image != null ) + { + image.Dispose(); + } + if( bitmap2 != null ) + { + bitmap2.Dispose(); + } + if( bitmap3 != null ) + { + bitmap3.Dispose(); + } + } + } + return true; + } + /// + /// 一時的に使用禁止。 + /// + private void t描画処理_ジャンル文字列() + { + C曲リストノード c曲リストノード = TJAPlayer3.stage選曲.r現在選択中の曲; + Cスコア cスコア = TJAPlayer3.stage選曲.r現在選択中のスコア; + if( ( c曲リストノード != null ) && ( cスコア != null ) ) + { + string str = ""; + switch( c曲リストノード.eノード種別 ) + { + case C曲リストノード.Eノード種別.SCORE: + if( ( c曲リストノード.strジャンル == null ) || ( c曲リストノード.strジャンル.Length <= 0 ) ) + { + if( ( cスコア.譜面情報.ジャンル != null ) && ( cスコア.譜面情報.ジャンル.Length > 0 ) ) + { + str = cスコア.譜面情報.ジャンル; + } +#if false // #32644 2013.12.21 yyagi "Unknown"なジャンル表示を削除。DTX/BMSなどの種別表示もしない。 + else + { + switch( cスコア.譜面情報.曲種別 ) + { + case CDTX.E種別.DTX: + str = "DTX"; + break; + + case CDTX.E種別.GDA: + str = "GDA"; + break; + + case CDTX.E種別.G2D: + str = "G2D"; + break; + + case CDTX.E種別.BMS: + str = "BMS"; + break; + + case CDTX.E種別.BME: + str = "BME"; + break; + } + str = "Unknown"; + } +#endif + break; + } + str = c曲リストノード.strジャンル; + break; + + case C曲リストノード.Eノード種別.SCORE_MIDI: + str = "MIDI"; + break; + + case C曲リストノード.Eノード種別.BOX: + str = "MusicBox"; + break; + + case C曲リストノード.Eノード種別.BACKBOX: + str = "BackBox"; + break; + + case C曲リストノード.Eノード種別.RANDOM: + str = "Random"; + break; + + default: + str = "Unknown"; + break; + } + TJAPlayer3.act文字コンソール.tPrint( this.n本体X + 0x12, this.n本体Y - 1, C文字コンソール.Eフォント種別.赤細, str ); + } + } + private void t描画処理_センサ光() + { + int num = (int)this.ctセンサ光.n現在の値; + if( num < 12 ) + { + int x = this.n本体X + 0xcc; + int y = this.n本体Y + 0x7b; + if( this.txセンサ光 != null ) + { + this.txセンサ光.vc拡大縮小倍率 = new Vector3( 1f, 1f, 1f ); + this.txセンサ光.Opacity = 0xff; + this.txセンサ光.t2D描画( TJAPlayer3.app.Device, x, y, new Rectangle( ( num % 4 ) * 0x40, ( num / 4 ) * 0x40, 0x40, 0x40 ) ); + } + } + else if( num < 0x18 ) + { + int num4 = num - 11; + double num5 = ( (double) num4 ) / 11.0; + double num6 = 1.0 + ( num5 * 0.5 ); + int num7 = (int) ( 64.0 * num6 ); + int num8 = (int) ( 64.0 * num6 ); + int num9 = ( ( this.n本体X + 0xcc ) + 0x20 ) - ( num7 / 2 ); + int num10 = ( ( this.n本体Y + 0x7b ) + 0x20 ) - ( num8 / 2 ); + if( this.txセンサ光 != null ) + { + this.txセンサ光.vc拡大縮小倍率 = new Vector3( (float) num6, (float) num6, 1f ); + this.txセンサ光.Opacity = (int) ( 255.0 * ( 1.0 - num5 ) ); + this.txセンサ光.t2D描画( TJAPlayer3.app.Device, num9, num10, this.rcセンサ光 ); + } + } + } + private void t描画処理_センサ本体() + { + int x = this.n本体X + 0xcd; + int y = this.n本体Y - 4; + if( this.txセンサ != null ) + { + this.txセンサ.t2D描画( TJAPlayer3.app.Device, x, y, this.rcセンサ本体上半分 ); + y += 0x80; + this.txセンサ.t2D描画( TJAPlayer3.app.Device, x, y, this.rcセンサ本体下半分 ); + } + } + private void t描画処理_パネル本体() + { + if( this.ct登場アニメ用.b終了値に達した || ( this.txパネル本体 != null ) ) + { + this.n本体X = 16; + this.n本体Y = 86; + } + else + { + double num = ( (double) this.ct登場アニメ用.n現在の値 ) / 100.0; + double num2 = Math.Cos( ( 1.5 + ( 0.5 * num ) ) * Math.PI ); + this.n本体X = 8; + this.n本体Y = 0x39 - ( (int) ( this.txパネル本体.sz画像サイズ.Height * ( 1.0 - ( num2 * num2 ) ) ) ); + } + if( this.txパネル本体 != null ) + { + this.txパネル本体.t2D描画( TJAPlayer3.app.Device, this.n本体X, this.n本体Y ); + } + } + private unsafe void t描画処理_プレビュー画像() + { + if( !TJAPlayer3.stage選曲.bスクロール中 && ( ( ( this.ct遅延表示 != null ) && ( this.ct遅延表示.n現在の値 > 0 ) ) && !this.b新しいプレビューファイルをまだ読み込んでいない ) ) + { + int x = this.n本体X + 0x12; + int y = this.n本体Y + 0x10; + float num3 = ( (float) this.ct遅延表示.n現在の値 ) / 100f; + float num4 = 0.9f + ( 0.1f * num3 ); + if( ( this.nAVI再生開始時刻 != -1 ) && ( this.sfAVI画像 != null ) ) + { + if( this.b動画フレームを作成した && ( this.pAVIBmp != IntPtr.Zero ) ) + { + DataRectangle rectangle = this.sfAVI画像.LockRectangle( LockFlags.None ); + DataStream data = rectangle.Data; + int num5 = rectangle.Pitch / this.sfAVI画像.Description.Width; + BitmapUtil.BITMAPINFOHEADER* pBITMAPINFOHEADER = (BitmapUtil.BITMAPINFOHEADER*) this.pAVIBmp.ToPointer(); + if( pBITMAPINFOHEADER->biBitCount == 0x18 ) + { + switch( num5 ) + { + case 2: + this.avi.tBitmap24ToGraphicsStreamR5G6B5( pBITMAPINFOHEADER, data, this.sfAVI画像.Description.Width, this.sfAVI画像.Description.Height ); + break; + + case 4: + this.avi.tBitmap24ToGraphicsStreamX8R8G8B8( pBITMAPINFOHEADER, data, this.sfAVI画像.Description.Width, this.sfAVI画像.Description.Height ); + break; + } + } + this.sfAVI画像.UnlockRectangle(); + this.b動画フレームを作成した = false; + } + using( Surface surface = TJAPlayer3.app.Device.GetBackBuffer( 0, 0 ) ) + { + try + { + TJAPlayer3.app.Device.UpdateSurface( this.sfAVI画像, new Rectangle( 0, 0, this.sfAVI画像.Description.Width, this.sfAVI画像.Description.Height ), surface, new Point( x, y ) ); + } + catch( Exception e ) // #32335 2013.10.26 yyagi: codecがないと、D3DERR_INVALIDCALLが発生する場合がある + { + Trace.TraceError( "codecがないと、D3DERR_INVALIDCALLが発生する場合がある" ); + Trace.TraceError( e.ToString() ); + Trace.TraceError( "例外が発生しましたが処理を継続します。 (ba21ae56-afaa-47b9-a5c7-1a6bb21085eb)" ); + } + return; + } + } + if( this.r表示するプレビュー画像 != null ) + { + int width = this.r表示するプレビュー画像.sz画像サイズ.Width; + int height = this.r表示するプレビュー画像.sz画像サイズ.Height; + if( width > 400 ) + { + width = 400; + } + if( height > 400 ) + { + height = 400; + } + x += ( 400 - ( (int) ( width * num4 ) ) ) / 2; + y += ( 400 - ( (int) ( height * num4 ) ) ) / 2; + this.r表示するプレビュー画像.Opacity = (int) ( 255f * num3 ); + this.r表示するプレビュー画像.vc拡大縮小倍率.X = num4; + this.r表示するプレビュー画像.vc拡大縮小倍率.Y = num4; + this.r表示するプレビュー画像.t2D描画( TJAPlayer3.app.Device, x + 22, y + 12, new Rectangle( 0, 0, width, height ) ); + } + } + } + //----------------- + #endregion + } +} diff --git a/TJAPlayer3/Stages/05.SongSelect/CActSelectPresound.cs b/TJAPlayer3/Stages/05.SongSelect/CActSelectPresound.cs new file mode 100644 index 00000000..92f77aba --- /dev/null +++ b/TJAPlayer3/Stages/05.SongSelect/CActSelectPresound.cs @@ -0,0 +1,235 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Diagnostics; +using FDK; +using System.Windows.Forms.VisualStyles; + +namespace TJAPlayer3 +{ + internal class CActSelectPresound : CActivity + { + // メソッド + + public CActSelectPresound() + { + base.b活性化してない = true; + } + public void tサウンド停止() + { + if( this.sound != null ) + { + this.sound.t再生を停止する(); + TJAPlayer3.Sound管理.tサウンドを破棄する( this.sound ); + this.sound = null; + } + } + public void t選択曲が変更された() + { + Cスコア cスコア = TJAPlayer3.stage選曲.r現在選択中のスコア; + + if( ( cスコア != null ) && ( ( !( cスコア.ファイル情報.フォルダの絶対パス + cスコア.譜面情報.strBGMファイル名 ).Equals( this.str現在のファイル名 ) || ( this.sound == null ) ) || !this.sound.b再生中 ) ) + { + this.tサウンド停止(); + this.tBGMフェードイン開始(); + this.long再生位置 = -1; + if( ( cスコア.譜面情報.strBGMファイル名 != null ) && ( cスコア.譜面情報.strBGMファイル名.Length > 0 ) ) + { + //this.ct再生待ちウェイト = new CCounter( 0, CDTXMania.ConfigIni.n曲が選択されてからプレビュー音が鳴るまでのウェイトms, 1, CDTXMania.Timer ); + if(TJAPlayer3.Sound管理.GetCurrentSoundDeviceType() != "DirectSound") + { + this.ct再生待ちウェイト = new CCounter(0, 1, 270, TJAPlayer3.Timer); + } else + { + this.ct再生待ちウェイト = new CCounter(0, 1, 500, TJAPlayer3.Timer); + } + } + } + + //if( ( cスコア != null ) && ( ( !( cスコア.ファイル情報.フォルダの絶対パス + cスコア.譜面情報.Presound ).Equals( this.str現在のファイル名 ) || ( this.sound == null ) ) || !this.sound.b再生中 ) ) + //{ + // this.tサウンド停止(); + // this.tBGMフェードイン開始(); + // if( ( cスコア.譜面情報.Presound != null ) && ( cスコア.譜面情報.Presound.Length > 0 ) ) + // { + // this.ct再生待ちウェイト = new CCounter( 0, CDTXMania.ConfigIni.n曲が選択されてからプレビュー音が鳴るまでのウェイトms, 1, CDTXMania.Timer ); + // } + //} + } + + + // CActivity 実装 + + public override void On活性化() + { + this.sound = null; + this.str現在のファイル名 = ""; + this.ct再生待ちウェイト = null; + this.ctBGMフェードアウト用 = null; + this.ctBGMフェードイン用 = null; + this.long再生位置 = -1; + this.long再生開始時のシステム時刻 = -1; + base.On活性化(); + } + public override void On非活性化() + { + this.tサウンド停止(); + this.ct再生待ちウェイト = null; + this.ctBGMフェードイン用 = null; + this.ctBGMフェードアウト用 = null; + base.On非活性化(); + } + public override int On進行描画() + { + if( !base.b活性化してない ) + { + if( ( this.ctBGMフェードイン用 != null ) && this.ctBGMフェードイン用.b進行中 ) + { + this.ctBGMフェードイン用.t進行(); + TJAPlayer3.Skin.bgm選曲画面.nAutomationLevel_現在のサウンド = this.ctBGMフェードイン用.n現在の値; + if( this.ctBGMフェードイン用.b終了値に達した ) + { + this.ctBGMフェードイン用.t停止(); + } + } + if( ( this.ctBGMフェードアウト用 != null ) && this.ctBGMフェードアウト用.b進行中 ) + { + this.ctBGMフェードアウト用.t進行(); + TJAPlayer3.Skin.bgm選曲画面.nAutomationLevel_現在のサウンド = CSound.MaximumAutomationLevel - this.ctBGMフェードアウト用.n現在の値; + if( this.ctBGMフェードアウト用.b終了値に達した ) + { + this.ctBGMフェードアウト用.t停止(); + } + } + this.t進行処理_プレビューサウンド(); + + if (this.sound != null) + { + Cスコア cスコア = TJAPlayer3.stage選曲.r現在選択中のスコア; + if (long再生位置 == -1) + { + this.long再生開始時のシステム時刻 = CSound管理.rc演奏用タイマ.nシステム時刻ms; + this.long再生位置 = cスコア.譜面情報.nデモBGMオフセット; + this.sound.t再生位置を変更する(cスコア.譜面情報.nデモBGMオフセット); + } + else + { + this.long再生位置 = CSound管理.rc演奏用タイマ.nシステム時刻ms - this.long再生開始時のシステム時刻; + if (this.long再生位置 >= this.sound.n総演奏時間ms - cスコア.譜面情報.nデモBGMオフセット) //2020.04.18 Mr-Ojii #DEMOSTARTから何度も再生するために追加 + this.long再生位置 = -1; + } + //if (this.long再生位置 >= (this.sound.n総演奏時間ms - cスコア.譜面情報.nデモBGMオフセット) - 1 && this.long再生位置 <= (this.sound.n総演奏時間ms - cスコア.譜面情報.nデモBGMオフセット) + 0) + //this.long再生位置 = -1; + + //CDTXMania.act文字コンソール.tPrint( 0, 0, C文字コンソール.Eフォント種別.白, this.long再生位置.ToString() ); + //CDTXMania.act文字コンソール.tPrint( 0, 20, C文字コンソール.Eフォント種別.白, (this.sound.n総演奏時間ms - cスコア.譜面情報.nデモBGMオフセット).ToString() ); + } + } + return 0; + } + + + // その他 + + #region [ private ] + //----------------- + private CCounter ctBGMフェードアウト用; + private CCounter ctBGMフェードイン用; + private CCounter ct再生待ちウェイト; + private long long再生位置; + private long long再生開始時のシステム時刻; + private CSound sound; + private string str現在のファイル名; + + private void tBGMフェードアウト開始() + { + if( this.ctBGMフェードイン用 != null ) + { + this.ctBGMフェードイン用.t停止(); + } + this.ctBGMフェードアウト用 = new CCounter( 0, 100, 10, TJAPlayer3.Timer ); + this.ctBGMフェードアウト用.n現在の値 = 100 - TJAPlayer3.Skin.bgm選曲画面.nAutomationLevel_現在のサウンド; + } + private void tBGMフェードイン開始() + { + if( this.ctBGMフェードアウト用 != null ) + { + this.ctBGMフェードアウト用.t停止(); + } + this.ctBGMフェードイン用 = new CCounter( 0, 100, 20, TJAPlayer3.Timer ); + this.ctBGMフェードイン用.n現在の値 = TJAPlayer3.Skin.bgm選曲画面.nAutomationLevel_現在のサウンド; + } + private void tプレビューサウンドの作成() + { + Cスコア cスコア = TJAPlayer3.stage選曲.r現在選択中のスコア; + if( ( cスコア != null ) && !string.IsNullOrEmpty( cスコア.譜面情報.strBGMファイル名 ) && TJAPlayer3.stage選曲.eフェーズID != CStage.Eフェーズ.選曲_NowLoading画面へのフェードアウト ) + { + string strPreviewFilename = cスコア.ファイル情報.フォルダの絶対パス + cスコア.譜面情報.Presound; + try + { + strPreviewFilename = cスコア.ファイル情報.フォルダの絶対パス + cスコア.譜面情報.strBGMファイル名; + if(TJAPlayer3.ConfigIni.bBGM音を発声する) + this.sound = TJAPlayer3.Sound管理.tサウンドを生成する( strPreviewFilename, ESoundGroup.SongPlayback ); + + // 2018-08-27 twopointzero - DO attempt to load (or queue scanning) loudness metadata here. + // Initialization, song enumeration, and/or interactions may have + // caused background scanning and the metadata may now be available. + // If is not yet available then we wish to queue scanning. + var loudnessMetadata = cスコア.譜面情報.SongLoudnessMetadata + ?? LoudnessMetadataScanner.LoadForAudioPath(strPreviewFilename); + TJAPlayer3.SongGainController.Set( cスコア.譜面情報.SongVol, loudnessMetadata, this.sound ); + + this.sound.t再生を開始する( true ); + + if( long再生位置 == -1 ) + { + this.long再生開始時のシステム時刻 = CSound管理.rc演奏用タイマ.nシステム時刻ms; + this.long再生位置 = cスコア.譜面情報.nデモBGMオフセット; + this.sound.t再生位置を変更する( cスコア.譜面情報.nデモBGMオフセット ); + this.long再生位置 = CSound管理.rc演奏用タイマ.nシステム時刻ms - this.long再生開始時のシステム時刻; + } + //if( long再生位置 == this.sound.n総演奏時間ms - 10 ) + // this.long再生位置 = -1; + + this.str現在のファイル名 = strPreviewFilename; + this.tBGMフェードアウト開始(); + Trace.TraceInformation( "プレビューサウンドを生成しました。({0})", strPreviewFilename ); + #region[ DTXMania(コメントアウト) ] + //this.sound = CDTXMania.Sound管理.tサウンドを生成する( strPreviewFilename ); + //this.sound.t再生を開始する( true ); + //this.str現在のファイル名 = strPreviewFilename; + //this.tBGMフェードアウト開始(); + //Trace.TraceInformation( "プレビューサウンドを生成しました。({0})", strPreviewFilename ); + #endregion + } + catch (Exception e) + { + Trace.TraceError( e.ToString() ); + Trace.TraceError( "プレビューサウンドの生成に失敗しました。({0})", strPreviewFilename ); + if( this.sound != null ) + { + this.sound.Dispose(); + } + this.sound = null; + } + } + } + private void t進行処理_プレビューサウンド() + { + if( ( this.ct再生待ちウェイト != null ) && !this.ct再生待ちウェイト.b停止中 ) + { + this.ct再生待ちウェイト.t進行(); + if( !this.ct再生待ちウェイト.b終了値に達してない ) + { + this.ct再生待ちウェイト.t停止(); + if( !TJAPlayer3.stage選曲.bスクロール中 ) + { + this.tプレビューサウンドの作成(); + } + } + } + } + //----------------- + #endregion + } +} diff --git a/TJAPlayer3/Stages/05.SongSelect/CActSelectQuickConfig.cs b/TJAPlayer3/Stages/05.SongSelect/CActSelectQuickConfig.cs new file mode 100644 index 00000000..0d94d716 --- /dev/null +++ b/TJAPlayer3/Stages/05.SongSelect/CActSelectQuickConfig.cs @@ -0,0 +1,273 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Text; +using System.Drawing; +using System.IO; +using SlimDX; +using FDK; + +namespace TJAPlayer3 +{ + internal class CActSelectQuickConfig : CActSelectPopupMenu + { + private readonly string QuickCfgTitle = "Quick Config"; + // コンストラクタ + + public CActSelectQuickConfig() + { + CActSelectQuickConfigMain(); + } + + private void CActSelectQuickConfigMain() + { +/* +•Target: Drums/Guitar/Bass +•Auto Mode: All ON/All OFF/CUSTOM +•Auto Lane: +•Scroll Speed: +•Play Speed: +•Risky: +•Hidden/Sudden: None/Hidden/Sudden/Both +•Conf SET: SET-1/SET-2/SET-3 +•More... +•EXIT +*/ + lci = new List>>(); // この画面に来る度に、メニューを作り直す。 + for ( int nConfSet = 0; nConfSet < 3; nConfSet++ ) + { + lci.Add( new List>() ); // ConfSet用の3つ分の枠。 + for ( int nInst = 0; nInst < 3; nInst++ ) + { + lci[ nConfSet ].Add( null ); // Drum/Guitar/Bassで3つ分、枠を作っておく + lci[ nConfSet ][ nInst ] = MakeListCItemBase( nConfSet, nInst ); + } + } + base.Initialize( lci[ nCurrentConfigSet ][ 0 ], true, QuickCfgTitle, 0 ); // ConfSet=0, nInst=Drums + } + + private List MakeListCItemBase( int nConfigSet, int nInst ) + { + List l = new List(); + + #region [ 共通 Target/AutoMode/AutoLane ] + #endregion + #region [ 個別 ScrollSpeed ] + l.Add( new CItemInteger( "ばいそく", 0, 1999, TJAPlayer3.ConfigIni.n譜面スクロール速度[ nInst ], + "演奏時のドラム譜面のスクロールの\n" + + "速度を指定します。\n" + + "x0.1 ~ x200.0 を指定可能です。", + "To change the scroll speed for the\n" + + "drums lanes.\n" + + "You can set it from x0.5 to x1000.0.\n" + + "(ScrollSpeed=x0.5 means half speed)" ) ); + #endregion + #region [ 共通 Dark/Risky/PlaySpeed ] + l.Add( new CItemInteger( "演奏速度", 5, 400, TJAPlayer3.ConfigIni.n演奏速度, + "曲の演奏速度を、速くしたり遅くした\n" + + "りすることができます。\n" + + "(※一部のサウンドカードでは正しく\n" + + "再生できない可能性があります。)", + "It changes the song speed.\n" + + "For example, you can play in half\n" + + " speed by setting PlaySpeed = 0.500\n" + + " for your practice.\n" + + "Note: It also changes the songs' pitch." ) ); + #endregion + #region [ 個別 Sud/Hid ] + l.Add( new CItemList( "ランダム", CItemBase.Eパネル種別.通常, (int) TJAPlayer3.ConfigIni.eRandom.Taiko, + "いわゆるランダム。\n RANDOM: ちょっと変わる\n MIRROR: あべこべ \n SUPER: そこそこヤバい\n HYPER: 結構ヤバい\nなお、実装は適当な模様", + "Guitar chips come randomly.\n\n Part: swapping lanes randomly for each\n measures.\n Super: swapping chip randomly\n Hyper: swapping randomly\n (number of lanes also changes)", + new string[] { "OFF", "RANDOM", "あべこべ", "SUPER", "HYPER" } ) ); + l.Add( new CItemList( "ドロン", CItemBase.Eパネル種別.通常, (int) TJAPlayer3.ConfigIni.eSTEALTH, + "", + new string[] { "OFF", "ドロン", "ステルス" } ) ); + l.Add( new CItemList( "ゲーム", CItemBase.Eパネル種別.通常, (int)TJAPlayer3.ConfigIni.eGameMode, + "ゲームモード\n" + + "TYPE-A: 完走!叩ききりまショー!\n" + + "TYPE-B: 完走!叩ききりまショー!(激辛)\n" + + " \n", + " \n" + + " \n" + + " ", + new string[] { "OFF", "完走!", "完走!激辛" }) ); + + l.Add(new CItemList(nameof(TJAPlayer3.ConfigIni.ShinuchiMode), CItemBase.Eパネル種別.通常, TJAPlayer3.ConfigIni.ShinuchiMode ? 1 : 0, "", "", new string[] { "OFF", "ON" })); + + #endregion + #region [ 共通 SET切り替え/More/Return ] + l.Add(new CItemInteger("PlayerCount", 1, 2, TJAPlayer3.ConfigIni.nPlayerCount, "プレイヤーの人数を指定します。" ,"Set a player count.")); + l.Add( new CSwitchItemList( "More...", CItemBase.Eパネル種別.通常, 0, "", "", new string[] { "" } ) ); + l.Add( new CSwitchItemList( "戻る", CItemBase.Eパネル種別.通常, 0, "", "", new string[] { "", "" } ) ); + #endregion + + return l; + } + + // メソッド + public override void tActivatePopupMenu( E楽器パート einst ) + { + this.CActSelectQuickConfigMain(); + base.tActivatePopupMenu( einst ); + } + //public void tDeativatePopupMenu() + //{ + // base.tDeativatePopupMenu(); + //} + + public override void t進行描画sub() + { + + } + + public override void tEnter押下Main( int nSortOrder ) + { + switch ( n現在の選択行 ) + { + case (int) EOrder.ScrollSpeed: + TJAPlayer3.ConfigIni.n譜面スクロール速度[ nCurrentTarget ] = (int) GetObj現在値( (int) EOrder.ScrollSpeed ); + break; + + case (int) EOrder.PlaySpeed: + TJAPlayer3.ConfigIni.n演奏速度 = (int) GetObj現在値( (int) EOrder.PlaySpeed ); + break; + case (int) EOrder.Random: + TJAPlayer3.ConfigIni.eRandom.Taiko = (Eランダムモード)GetIndex( (int)EOrder.Random ); + break; + case (int) EOrder.Stealth: + TJAPlayer3.ConfigIni.eSTEALTH = (Eステルスモード)GetIndex( (int)EOrder.Stealth ); + break; + case (int) EOrder.GameMode: + EGame game = EGame.OFF; + switch( (int) GetIndex( (int) EOrder.GameMode ) ) + { + case 0: game = EGame.OFF; break; + case 1: game = EGame.完走叩ききりまショー; break; + case 2: game = EGame.完走叩ききりまショー激辛; break; + } + TJAPlayer3.ConfigIni.eGameMode = game; + break; + case (int)EOrder.ShinuchiMode: + TJAPlayer3.ConfigIni.ShinuchiMode = !TJAPlayer3.ConfigIni.ShinuchiMode; + break; + case (int)EOrder.PlayerCount: + TJAPlayer3.ConfigIni.nPlayerCount = (int)GetObj現在値((int) EOrder.PlayerCount ); + break; + case (int) EOrder.More: + SetAutoParameters(); // 簡易CONFIGメニュー脱出に伴い、簡易CONFIG内のAUTOの設定をConfigIniクラスに反映する + this.bGotoDetailConfig = true; + this.tDeativatePopupMenu(); + break; + + case (int) EOrder.Return: + SetAutoParameters(); // 簡易CONFIGメニュー脱出に伴い、簡易CONFIG内のAUTOの設定をConfigIniクラスに反映する + this.tDeativatePopupMenu(); + break; + default: + break; + } + } + + public override void tCancel() + { + SetAutoParameters(); + // Autoの設定値保持のロジックを書くこと! + // (Autoのパラメータ切り替え時は実際に値設定していないため、キャンセルまたはRetern, More...時に値設定する必要有り) + } + + /// + /// 1つの値を、全targetに適用する。RiskyやDarkなど、全tatgetで共通の設定となるもので使う。 + /// + /// 設定項目リストの順番 + /// 設定値(index) + private void SetValueToAllTarget( int order, int index ) + { + for ( int i = 0; i < 3; i++ ) + { + lci[ nCurrentConfigSet ][ i ][ order ].SetIndex( index ); + } + } + + + /// + /// ConfigIni.bAutoPlayに簡易CONFIGの状態を反映する + /// + private void SetAutoParameters() + { + for ( int target = 0; target < 3; target++ ) + { + int[] pa = { (int) Eレーン.LC, (int) Eレーン.GtR, (int) Eレーン.BsR }; + int start = pa[ target ]; + } + } + + // CActivity 実装 + + public override void On活性化() + { + this.ft表示用フォント = new Font( "Arial", 26f, FontStyle.Bold, GraphicsUnit.Pixel ); + base.On活性化(); + this.bGotoDetailConfig = false; + } + public override void On非活性化() + { + if ( this.ft表示用フォント != null ) + { + this.ft表示用フォント.Dispose(); + this.ft表示用フォント = null; + } + base.On非活性化(); + } + public override void OnManagedリソースの作成() + { + if( !base.b活性化してない ) + { + //string pathパネル本体 = CSkin.Path( @"Graphics\ScreenSelect popup auto settings.png" ); + //if ( File.Exists( pathパネル本体 ) ) + //{ + // this.txパネル本体 = CDTXMania.tテクスチャの生成( pathパネル本体, true ); + //} + + base.OnManagedリソースの作成(); + } + } + public override void OnManagedリソースの解放() + { + if ( !base.b活性化してない ) + { + //CDTXMania.tテクスチャの解放( ref this.txパネル本体 ); + TJAPlayer3.tテクスチャの解放( ref this.tx文字列パネル ); + base.OnManagedリソースの解放(); + } + } + + #region [ private ] + //----------------- + private int nCurrentTarget = 0; + private int nCurrentConfigSet = 0; + private List>> lci; // DrGtBs, ConfSet, 選択肢一覧。都合、3次のListとなる。 + private enum EOrder : int + { + ScrollSpeed = 0, + PlaySpeed, + Random, + Stealth, + GameMode, + ShinuchiMode, + PlayerCount, + More, + Return, + END, + Default = 99 + }; + + private Font ft表示用フォント; + //private CTexture txパネル本体; + private CTexture tx文字列パネル; + private CTexture tx説明文1; + //----------------- + #endregion + } + + +} diff --git a/TJAPlayer3/Stages/05.SongSelect/CActSelectShowCurrentPosition.cs b/TJAPlayer3/Stages/05.SongSelect/CActSelectShowCurrentPosition.cs new file mode 100644 index 00000000..714adb6a --- /dev/null +++ b/TJAPlayer3/Stages/05.SongSelect/CActSelectShowCurrentPosition.cs @@ -0,0 +1,90 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Drawing; +using System.Diagnostics; +using System.IO; +using SlimDX; +using FDK; + +namespace TJAPlayer3 +{ + internal class CActSelectShowCurrentPosition : CActivity + { + // メソッド + + public CActSelectShowCurrentPosition() + { + base.b活性化してない = true; + } + + // CActivity 実装 + + public override void On活性化() + { + if ( this.b活性化してる ) + return; + + base.On活性化(); + } + public override void On非活性化() + { + base.On非活性化(); + } + public override void OnManagedリソースの作成() + { + if ( !base.b活性化してない ) + { + string pathScrollBar = CSkin.Path( @"Graphics\5_scrollbar.png" ); + string pathScrollPosition = CSkin.Path( @"Graphics\5_scrollbar.png" ); + if ( File.Exists( pathScrollBar ) ) + { + this.txScrollBar = TJAPlayer3.tテクスチャの生成( pathScrollBar, false ); + } + if ( File.Exists( pathScrollPosition ) ) + { + this.txScrollPosition = TJAPlayer3.tテクスチャの生成( pathScrollPosition, false ); + } + base.OnManagedリソースの作成(); + } + } + public override void OnManagedリソースの解放() + { + if ( !base.b活性化してない ) + { + TJAPlayer3.t安全にDisposeする( ref this.txScrollBar ); + TJAPlayer3.t安全にDisposeする( ref this.txScrollPosition ); + + base.OnManagedリソースの解放(); + } + } + public override int On進行描画() + { + if ( this.txScrollBar != null ) + { + #region [ スクロールバーの描画 #27648 ] + //this.txScrollBar.t2D描画( CDTXMania.app.Device, (int)(1280 - ((429.0f / 100.0f ) * CDTXMania.stage選曲.ct登場時アニメ用共通.n現在の値)), 164, new Rectangle( 0, 0, 352, 26 ) ); //移動後のxは851 + #endregion + #region [ スクロール地点の描画 (計算はCActSelect曲リストで行う。スクロール位置と選曲項目の同期のため。)#27648 ] + int py = TJAPlayer3.stage選曲.nスクロールバー相対y座標; + if( py <= 336 && py >= 0 ) + { + //this.txScrollBar.t2D描画( CDTXMania.app.Device, (int)( 1280 - 4 - (( 424.0f / 100.0f ) * CDTXMania.stage選曲.ct登場時アニメ用共通.n現在の値 ) ) + py, 164, new Rectangle( 352, 0, 26, 26 ) );//856 + } + #endregion + } + + return 0; + } + + + // その他 + + #region [ private ] + //----------------- + private CTexture txScrollPosition; + private CTexture txScrollBar; + //----------------- + #endregion + } +} diff --git a/TJAPlayer3/Stages/05.SongSelect/CActSelectステータスパネル.cs b/TJAPlayer3/Stages/05.SongSelect/CActSelectステータスパネル.cs new file mode 100644 index 00000000..833563d1 --- /dev/null +++ b/TJAPlayer3/Stages/05.SongSelect/CActSelectステータスパネル.cs @@ -0,0 +1,69 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Runtime.InteropServices; +using System.Drawing; +using FDK; + +namespace TJAPlayer3 +{ + internal class CActSelectステータスパネル : CActivity + { + // メソッド + + public CActSelectステータスパネル() + { + base.b活性化してない = true; + } + public void t選択曲が変更された() + { + + } + + + // CActivity 実装 + + public override void On活性化() + { + + base.On活性化(); + } + public override void On非活性化() + { + + base.On非活性化(); + } + public override void OnManagedリソースの作成() + { + if( !base.b活性化してない ) + { + + base.OnManagedリソースの作成(); + } + } + public override void OnManagedリソースの解放() + { + if( !base.b活性化してない ) + { + + base.OnManagedリソースの解放(); + } + } + public override int On進行描画() + { + if( !base.b活性化してない ) + { + + } + return 0; + } + + + // その他 + + #region [ private ] + //----------------- + //----------------- + #endregion + } +} diff --git a/TJAPlayer3/Stages/05.SongSelect/CActSelect曲リスト.cs b/TJAPlayer3/Stages/05.SongSelect/CActSelect曲リスト.cs new file mode 100644 index 00000000..eb169cbb --- /dev/null +++ b/TJAPlayer3/Stages/05.SongSelect/CActSelect曲リスト.cs @@ -0,0 +1,2300 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Globalization; +using System.Runtime.InteropServices; +using System.Drawing; +using System.Drawing.Imaging; +using System.Diagnostics; +using System.Drawing.Text; +using SlimDX; +using FDK; +using System.Linq; + +namespace TJAPlayer3 +{ + internal class CActSelect曲リスト : CActivity + { + // プロパティ + + public bool bIsEnumeratingSongs + { + get; + set; + } + public bool bスクロール中 + { + get + { + if( this.n目標のスクロールカウンタ == 0 ) + { + return ( this.n現在のスクロールカウンタ != 0 ); + } + return true; + } + } + public int n現在のアンカ難易度レベル + { + get; + private set; + } + public int n現在選択中の曲の現在の難易度レベル + { + get + { + return this.n現在のアンカ難易度レベルに最も近い難易度レベルを返す( this.r現在選択中の曲 ); + } + } + public Cスコア r現在選択中のスコア + { + get + { + if( this.r現在選択中の曲 != null ) + { + return this.r現在選択中の曲.arスコア[ this.n現在選択中の曲の現在の難易度レベル ]; + } + return null; + } + } + public C曲リストノード r現在選択中の曲 + { + get; + private set; + } + + public int nスクロールバー相対y座標 + { + get; + private set; + } + + // t選択曲が変更された()内で使う、直前の選曲の保持 + // (前と同じ曲なら選択曲変更に掛かる再計算を省略して高速化するため) + private C曲リストノード song_last = null; + + + // コンストラクタ + + public CActSelect曲リスト() + { + #region[ レベル数字 ] + STレベル数字[] stレベル数字Ar = new STレベル数字[10]; + STレベル数字 st数字0 = new STレベル数字(); + STレベル数字 st数字1 = new STレベル数字(); + STレベル数字 st数字2 = new STレベル数字(); + STレベル数字 st数字3 = new STレベル数字(); + STレベル数字 st数字4 = new STレベル数字(); + STレベル数字 st数字5 = new STレベル数字(); + STレベル数字 st数字6 = new STレベル数字(); + STレベル数字 st数字7 = new STレベル数字(); + STレベル数字 st数字8 = new STレベル数字(); + STレベル数字 st数字9 = new STレベル数字(); + + st数字0.ch = '0'; + st数字1.ch = '1'; + st数字2.ch = '2'; + st数字3.ch = '3'; + st数字4.ch = '4'; + st数字5.ch = '5'; + st数字6.ch = '6'; + st数字7.ch = '7'; + st数字8.ch = '8'; + st数字9.ch = '9'; + st数字0.ptX = 0; + st数字1.ptX = 21; + st数字2.ptX = 42; + st数字3.ptX = 63; + st数字4.ptX = 84; + st数字5.ptX = 105; + st数字6.ptX = 126; + st数字7.ptX = 147; + st数字8.ptX = 168; + st数字9.ptX = 189; + + stレベル数字Ar[0] = st数字0; + stレベル数字Ar[1] = st数字1; + stレベル数字Ar[2] = st数字2; + stレベル数字Ar[3] = st数字3; + stレベル数字Ar[4] = st数字4; + stレベル数字Ar[5] = st数字5; + stレベル数字Ar[6] = st数字6; + stレベル数字Ar[7] = st数字7; + stレベル数字Ar[8] = st数字8; + stレベル数字Ar[9] = st数字9; + this.st小文字位置 = stレベル数字Ar; + #endregion + + this.r現在選択中の曲 = null; + this.n現在のアンカ難易度レベル = TJAPlayer3.ConfigIni.nDefaultCourse; + base.b活性化してない = true; + this.bIsEnumeratingSongs = false; + } + + + // メソッド + + public int n現在のアンカ難易度レベルに最も近い難易度レベルを返す( C曲リストノード song ) + { + // 事前チェック。 + + if( song == null ) + return this.n現在のアンカ難易度レベル; // 曲がまったくないよ + + if( song.arスコア[ this.n現在のアンカ難易度レベル ] != null ) + return this.n現在のアンカ難易度レベル; // 難易度ぴったりの曲があったよ + + if( ( song.eノード種別 == C曲リストノード.Eノード種別.BOX ) || ( song.eノード種別 == C曲リストノード.Eノード種別.BACKBOX ) ) + return 0; // BOX と BACKBOX は関係無いよ + + + // 現在のアンカレベルから、難易度上向きに検索開始。 + + int n最も近いレベル = this.n現在のアンカ難易度レベル; + + for( int i = 0; i < (int)Difficulty.Total; i++ ) + { + if( song.arスコア[ n最も近いレベル ] != null ) + break; // 曲があった。 + + n最も近いレベル = ( n最も近いレベル + 1 ) % (int)Difficulty.Total; // 曲がなかったので次の難易度レベルへGo。(5以上になったら0に戻る。) + } + + + // 見つかった曲がアンカより下のレベルだった場合…… + // アンカから下向きに検索すれば、もっとアンカに近い曲があるんじゃね? + + if( n最も近いレベル < this.n現在のアンカ難易度レベル ) + { + // 現在のアンカレベルから、難易度下向きに検索開始。 + + n最も近いレベル = this.n現在のアンカ難易度レベル; + + for( int i = 0; i < (int)Difficulty.Total; i++ ) + { + if( song.arスコア[ n最も近いレベル ] != null ) + break; // 曲があった。 + + n最も近いレベル = ( ( n最も近いレベル - 1 ) + (int)Difficulty.Total) % (int)Difficulty.Total; // 曲がなかったので次の難易度レベルへGo。(0未満になったら4に戻る。) + } + } + + return n最も近いレベル; + } + public C曲リストノード r指定された曲が存在するリストの先頭の曲( C曲リストノード song ) + { + List songList = GetSongListWithinMe( song ); + return ( songList == null ) ? null : songList[ 0 ]; + } + public C曲リストノード r指定された曲が存在するリストの末尾の曲( C曲リストノード song ) + { + List songList = GetSongListWithinMe( song ); + return ( songList == null ) ? null : songList[ songList.Count - 1 ]; + } + + private List GetSongListWithinMe( C曲リストノード song ) + { + if ( song.r親ノード == null ) // root階層のノートだったら + { + return TJAPlayer3.Songs管理.list曲ルート; // rootのリストを返す + } + else + { + if ( ( song.r親ノード.list子リスト != null ) && ( song.r親ノード.list子リスト.Count > 0 ) ) + { + return song.r親ノード.list子リスト; + } + else + { + return null; + } + } + } + + + public delegate void DGSortFunc( List songList, E楽器パート eInst, int order, params object[] p); + /// + /// 主にCSong管理.cs内にあるソート機能を、delegateで呼び出す。 + /// + /// ソート用に呼び出すメソッド + /// ソート基準とする楽器 + /// -1=降順, 1=昇順 + public void t曲リストのソート( DGSortFunc sf, E楽器パート eInst, int order, params object[] p ) + { + List songList = GetSongListWithinMe( this.r現在選択中の曲 ); + if ( songList == null ) + { + // 何もしない; + } + else + { +// CDTXMania.Songs管理.t曲リストのソート3_演奏回数の多い順( songList, eInst, order ); + sf( songList, eInst, order, p ); +// this.r現在選択中の曲 = CDTXMania + this.t現在選択中の曲を元に曲バーを再構成する(); + } + } + + public bool tBOXに入る() + { + //Trace.TraceInformation( "box enter" ); + //Trace.TraceInformation( "Skin現在Current : " + CDTXMania.Skin.GetCurrentSkinSubfolderFullName(false) ); + //Trace.TraceInformation( "Skin現在System : " + CSkin.strSystemSkinSubfolderFullName ); + //Trace.TraceInformation( "Skin現在BoxDef : " + CSkin.strBoxDefSkinSubfolderFullName ); + //Trace.TraceInformation( "Skin現在: " + CSkin.GetSkinName( CDTXMania.Skin.GetCurrentSkinSubfolderFullName(false) ) ); + //Trace.TraceInformation( "Skin現pt: " + CDTXMania.Skin.GetCurrentSkinSubfolderFullName(false) ); + //Trace.TraceInformation( "Skin指定: " + CSkin.GetSkinName( this.r現在選択中の曲.strSkinPath ) ); + //Trace.TraceInformation( "Skinpath: " + this.r現在選択中の曲.strSkinPath ); + bool ret = false; + if (CSkin.GetSkinName(TJAPlayer3.Skin.GetCurrentSkinSubfolderFullName(false)) != CSkin.GetSkinName(this.r現在選択中の曲.strSkinPath) + && CSkin.bUseBoxDefSkin) + { + ret = true; + // BOXに入るときは、スキン変更発生時のみboxdefスキン設定の更新を行う + TJAPlayer3.Skin.SetCurrentSkinSubfolderFullName( + TJAPlayer3.Skin.GetSkinSubfolderFullNameFromSkinName(CSkin.GetSkinName(this.r現在選択中の曲.strSkinPath)), false); + } + + //Trace.TraceInformation( "Skin変更: " + CSkin.GetSkinName( CDTXMania.Skin.GetCurrentSkinSubfolderFullName(false) ) ); + //Trace.TraceInformation( "Skin変更Current : "+ CDTXMania.Skin.GetCurrentSkinSubfolderFullName(false) ); + //Trace.TraceInformation( "Skin変更System : "+ CSkin.strSystemSkinSubfolderFullName ); + //Trace.TraceInformation( "Skin変更BoxDef : "+ CSkin.strBoxDefSkinSubfolderFullName ); + if(r現在選択中の曲.list子リスト.Count != 1) + { + List list = TJAPlayer3.Songs管理.list曲ルート; + list.InsertRange(list.IndexOf(this.r現在選択中の曲) + 1, this.r現在選択中の曲.list子リスト); + int n回数 = this.r現在選択中の曲.Openindex; + for (int index = 0; index <= n回数; index++) + this.r現在選択中の曲 = this.r次の曲(this.r現在選択中の曲); + list.RemoveAt(list.IndexOf(this.r現在選択中の曲.r親ノード)); + this.t現在選択中の曲を元に曲バーを再構成する(); + this.t選択曲が変更された(false); + TJAPlayer3.stage選曲.t選択曲変更通知(); // #27648 項目数変更を反映させる + this.b選択曲が変更された = true; + TJAPlayer3.Skin.bgm選曲画面.t停止する(); + } + return ret; + } + public bool tBOXを出る() + { +//Trace.TraceInformation( "box exit" ); +//Trace.TraceInformation( "Skin現在Current : " + CDTXMania.Skin.GetCurrentSkinSubfolderFullName(false) ); +//Trace.TraceInformation( "Skin現在System : " + CSkin.strSystemSkinSubfolderFullName ); +//Trace.TraceInformation( "Skin現在BoxDef : " + CSkin.strBoxDefSkinSubfolderFullName ); +//Trace.TraceInformation( "Skin現在: " + CSkin.GetSkinName( CDTXMania.Skin.GetCurrentSkinSubfolderFullName(false) ) ); +//Trace.TraceInformation( "Skin現pt: " + CDTXMania.Skin.GetCurrentSkinSubfolderFullName(false) ); +//Trace.TraceInformation( "Skin指定: " + CSkin.GetSkinName( this.r現在選択中の曲.strSkinPath ) ); +//Trace.TraceInformation( "Skinpath: " + this.r現在選択中の曲.strSkinPath ); + bool ret = false; + if ( CSkin.GetSkinName( TJAPlayer3.Skin.GetCurrentSkinSubfolderFullName( false ) ) != CSkin.GetSkinName( this.r現在選択中の曲.strSkinPath ) + && CSkin.bUseBoxDefSkin ) + { + ret = true; + } + // スキン変更が発生しなくても、boxdef圏外に出る場合は、boxdefスキン設定の更新が必要 + // (ユーザーがboxdefスキンをConfig指定している場合への対応のために必要) + // tBoxに入る()とは処理が微妙に異なるので注意 + TJAPlayer3.Skin.SetCurrentSkinSubfolderFullName( + ( this.r現在選択中の曲.strSkinPath == "" ) ? "" : TJAPlayer3.Skin.GetSkinSubfolderFullNameFromSkinName( CSkin.GetSkinName( this.r現在選択中の曲.strSkinPath ) ), false ); + //Trace.TraceInformation( "SKIN変更: " + CSkin.GetSkinName( CDTXMania.Skin.GetCurrentSkinSubfolderFullName(false) ) ); + //Trace.TraceInformation( "SKIN変更Current : "+ CDTXMania.Skin.GetCurrentSkinSubfolderFullName(false) ); + //Trace.TraceInformation( "SKIN変更System : "+ CSkin.strSystemSkinSubfolderFullName ); + //Trace.TraceInformation( "SKIN変更BoxDef : "+ CSkin.strBoxDefSkinSubfolderFullName ); + + List list = TJAPlayer3.Songs管理.list曲ルート; + list.Insert(list.IndexOf(this.r現在選択中の曲) + 1, this.r現在選択中の曲.r親ノード); + this.r現在選択中の曲.r親ノード.Openindex = r現在選択中の曲.r親ノード.list子リスト.IndexOf(this.r現在選択中の曲); + this.r現在選択中の曲 = this.r次の曲(r現在選択中の曲); + for (int index = 0; index < list.Count; index++) + { + if (this.r現在選択中の曲.list子リスト.Contains(list[index])) + { + list.RemoveAt(index); + index--; + } + } + this.t現在選択中の曲を元に曲バーを再構成する(); + this.t選択曲が変更された(false); // #27648 項目数変更を反映させる + this.b選択曲が変更された = true; + + return ret; + } + public void t現在選択中の曲を元に曲バーを再構成する() + { + this.tバーの初期化(); + } + public void t次に移動() + { + if( this.r現在選択中の曲 != null ) + { + ctScoreFrameAnime.t停止(); + ctScoreFrameAnime.n現在の値 = 0; + ctBarOpen.t停止(); + ctBarOpen.n現在の値 = 0; + this.n目標のスクロールカウンタ += 100; + } + this.b選択曲が変更された = true; + } + public void t前に移動() + { + if( this.r現在選択中の曲 != null ) + { + ctScoreFrameAnime.t停止(); + ctScoreFrameAnime.n現在の値 = 0; + ctBarOpen.t停止(); + ctBarOpen.n現在の値 = 0; + this.n目標のスクロールカウンタ -= 100; + } + this.b選択曲が変更された = true; + } + public void t難易度レベルをひとつ進める() + { + if( ( this.r現在選択中の曲 == null ) || ( this.r現在選択中の曲.nスコア数 <= 1 ) ) + return; // 曲にスコアが0~1個しかないなら進める意味なし。 + + + // 難易度レベルを+1し、現在選曲中のスコアを変更する。 + + this.n現在のアンカ難易度レベル = this.n現在のアンカ難易度レベルに最も近い難易度レベルを返す( this.r現在選択中の曲 ); + + for( int i = 0; i < (int)Difficulty.Total; i++ ) + { + this.n現在のアンカ難易度レベル = ( this.n現在のアンカ難易度レベル + 1 ) % (int)Difficulty.Total; // 5以上になったら0に戻る。 + if( this.r現在選択中の曲.arスコア[ this.n現在のアンカ難易度レベル ] != null ) // 曲が存在してるならここで終了。存在してないなら次のレベルへGo。 + break; + } + + + // 曲毎に表示しているスキル値を、新しい難易度レベルに合わせて取得し直す。(表示されている13曲全部。) + + C曲リストノード song = this.r現在選択中の曲; + for( int i = 0; i < 4; i++ ) + song = this.r前の曲( song ); + + for( int i = this.n現在の選択行 - 4; i < ( ( this.n現在の選択行 - 4 ) + 9 ); i++ ) + { + int index = ( i + 9 ) % 9; + for( int m = 0; m < 3; m++ ) + { + this.stバー情報[ index ].nスキル値[ m ] = (int) song.arスコア[ this.n現在のアンカ難易度レベルに最も近い難易度レベルを返す( song ) ].譜面情報.最大スキル[ m ]; + } + song = this.r次の曲( song ); + } + + + // 選曲ステージに変更通知を発出し、関係Activityの対応を行ってもらう。 + + TJAPlayer3.stage選曲.t選択曲変更通知(); + } + /// + /// 不便だったから作った。 + /// + public void t難易度レベルをひとつ戻す() + { + if( ( this.r現在選択中の曲 == null ) || ( this.r現在選択中の曲.nスコア数 <= 1 ) ) + return; // 曲にスコアが0~1個しかないなら進める意味なし。 + + + // 難易度レベルを+1し、現在選曲中のスコアを変更する。 + + this.n現在のアンカ難易度レベル = this.n現在のアンカ難易度レベルに最も近い難易度レベルを返す( this.r現在選択中の曲 ); + + this.n現在のアンカ難易度レベル--; + if( this.n現在のアンカ難易度レベル < 0 ) // 0より下になったら4に戻す。 + { + this.n現在のアンカ難易度レベル = 4; + } + + //2016.08.13 kairera0467 かんたん譜面が無い譜面(ふつう、むずかしいのみ)で、難易度を最上位に戻せない不具合の修正。 + bool bLabel0NotFound = true; + for( int i = this.n現在のアンカ難易度レベル; i >= 0; i-- ) + { + if( this.r現在選択中の曲.arスコア[ i ] != null ) + { + this.n現在のアンカ難易度レベル = i; + bLabel0NotFound = false; + break; + } + } + if( bLabel0NotFound ) + { + for( int i = 4; i >= 0; i-- ) + { + if( this.r現在選択中の曲.arスコア[ i ] != null ) + { + this.n現在のアンカ難易度レベル = i; + break; + } + } + } + + // 曲毎に表示しているスキル値を、新しい難易度レベルに合わせて取得し直す。(表示されている13曲全部。) + + C曲リストノード song = this.r現在選択中の曲; + for( int i = 0; i < 4; i++ ) + song = this.r前の曲( song ); + + for( int i = this.n現在の選択行 - 4; i < ( ( this.n現在の選択行 - 4 ) + 9 ); i++ ) + { + int index = ( i + 9 ) % 9; + for( int m = 0; m < 3; m++ ) + { + this.stバー情報[ index ].nスキル値[ m ] = (int) song.arスコア[ this.n現在のアンカ難易度レベルに最も近い難易度レベルを返す( song ) ].譜面情報.最大スキル[ m ]; + } + song = this.r次の曲( song ); + } + + + // 選曲ステージに変更通知を発出し、関係Activityの対応を行ってもらう。 + + TJAPlayer3.stage選曲.t選択曲変更通知(); + } + + + /// + /// 曲リストをリセットする + /// + /// + public void Refresh(CSongs管理 cs, bool bRemakeSongTitleBar ) // #26070 2012.2.28 yyagi + { +// this.On非活性化(); + + if ( cs != null && cs.list曲ルート.Count > 0 ) // 新しい曲リストを検索して、1曲以上あった + { + TJAPlayer3.Songs管理 = cs; + + if ( this.r現在選択中の曲 != null ) // r現在選択中の曲==null とは、「最初songlist.dbが無かった or 検索したが1曲もない」 + { + this.r現在選択中の曲 = searchCurrentBreadcrumbsPosition( TJAPlayer3.Songs管理.list曲ルート, this.r現在選択中の曲.strBreadcrumbs ); + if ( bRemakeSongTitleBar ) // 選曲画面以外に居るときには再構成しない (非活性化しているときに実行すると例外となる) + { + this.t現在選択中の曲を元に曲バーを再構成する(); + } + return; + } + } + if (this.b活性化してる) + { + this.On非活性化(); + this.r現在選択中の曲 = null; + this.On活性化(); + } + } + + + /// + /// 現在選曲している位置を検索する + /// (曲一覧クラスを新しいものに入れ替える際に用いる) + /// + /// 検索対象のList + /// 検索するパンくずリスト(文字列) + /// + private C曲リストノード searchCurrentBreadcrumbsPosition( List ln, string bc ) + { + foreach (C曲リストノード n in ln) + { + if ( n.strBreadcrumbs == bc ) + { + return n; + } + else if ( n.list子リスト != null && n.list子リスト.Count > 0 ) // 子リストが存在するなら、再帰で探す + { + C曲リストノード r = searchCurrentBreadcrumbsPosition( n.list子リスト, bc ); + if ( r != null ) return r; + } + } + return null; + } + + /// + /// BOXのアイテム数と、今何番目を選択しているかをセットする + /// + public void t選択曲が変更された( bool bForce ) // #27648 + { + C曲リストノード song = TJAPlayer3.stage選曲.r現在選択中の曲; + if ( song == null ) + return; + if ( song == song_last && bForce == false ) + return; + + song_last = song; + List list =TJAPlayer3.Songs管理.list曲ルート; + int index = list.IndexOf( song ) + 1; + if ( index <= 0 ) + { + nCurrentPosition = nNumOfItems = 0; + } + else + { + nCurrentPosition = index; + nNumOfItems = list.Count; + } + TJAPlayer3.stage選曲.act演奏履歴パネル.tSongChange(); + } + + // CActivity 実装 + + public override void On活性化() + { + if( this.b活性化してる ) + return; + + if (!bFirstCrownLoad) + { + + for (int i = 0; i < ScoreRankCount.Length; i++) + ScoreRankCount[i] = 0; + + for (int i = 0; i < CrownCount.Length; i++) + CrownCount[i] = 0; + + foreach (var song in TJAPlayer3.Songs管理.list曲ルート) + { + if (song.eノード種別 == C曲リストノード.Eノード種別.BOX) + { + for (int i = 0; i < ScoreRankCount.Length; i++) + { + ScoreRankCount[i] += song.list子リスト.Where(a => a.eノード種別 == C曲リストノード.Eノード種別.SCORE && a.arスコア[3] != null && a.arスコア[3].譜面情報.nスコアランク[3] == (i + 1)).Count(); + ScoreRankCount[i] += song.list子リスト.Where(a => a.eノード種別 == C曲リストノード.Eノード種別.SCORE && a.arスコア[3] != null && a.arスコア[3].譜面情報.nスコアランク[4] == (i + 1)).Count(); + } + for (int i = 0; i < CrownCount.Length; i++) + { + CrownCount[i] += song.list子リスト.Where(a => a.eノード種別 == C曲リストノード.Eノード種別.SCORE && a.arスコア[3] != null && a.arスコア[3].譜面情報.nクリア[3] == (i + 1)).Count(); + CrownCount[i] += song.list子リスト.Where(a => a.eノード種別 == C曲リストノード.Eノード種別.SCORE && a.arスコア[3] != null && a.arスコア[3].譜面情報.nクリア[4] == (i + 1)).Count(); + } + } + else + { + if (song.eノード種別 == C曲リストノード.Eノード種別.SCORE) + { + for (int i = 0; i < ScoreRankCount.Length; i++) + { + ScoreRankCount[i] += TJAPlayer3.Songs管理.list曲ルート.Where(a => a.eノード種別 == C曲リストノード.Eノード種別.SCORE && a.arスコア[3] != null && a.arスコア[3].譜面情報.nスコアランク[3] == (i + 1)).Count(); + ScoreRankCount[i] += TJAPlayer3.Songs管理.list曲ルート.Where(a => a.eノード種別 == C曲リストノード.Eノード種別.SCORE && a.arスコア[3] != null && a.arスコア[3].譜面情報.nスコアランク[4] == (i + 1)).Count(); + } + for (int i = 0; i < CrownCount.Length; i++) + { + CrownCount[i] += TJAPlayer3.Songs管理.list曲ルート.Where(a => a.eノード種別 == C曲リストノード.Eノード種別.SCORE && a.arスコア[3] != null && a.arスコア[3].譜面情報.nクリア[3] == (i + 1)).Count(); + CrownCount[i] += TJAPlayer3.Songs管理.list曲ルート.Where(a => a.eノード種別 == C曲リストノード.Eノード種別.SCORE && a.arスコア[3] != null && a.arスコア[3].譜面情報.nクリア[4] == (i + 1)).Count(); + } + } + } + } + + bFirstCrownLoad = true; + + } + + TJAPlayer3.IsPerformingCalibration = false; + + TJAPlayer3.stage選曲.act難易度選択画面.bIsDifficltSelect = false; + + if (!string.IsNullOrEmpty(TJAPlayer3.ConfigIni.FontName)) + { + this.pfBoxName = new CPrivateFastFont(new FontFamily(TJAPlayer3.ConfigIni.FontName), 28); + this.pfMusicName = new CPrivateFastFont(new FontFamily(TJAPlayer3.ConfigIni.FontName), 22); + this.pfSubtitle = new CPrivateFastFont(new FontFamily(TJAPlayer3.ConfigIni.FontName), 13); + } + else + { + this.pfBoxName = new CPrivateFastFont(new FontFamily("MS UI Gothic"), 28); + this.pfMusicName = new CPrivateFastFont(new FontFamily("MS UI Gothic"), 22); + this.pfSubtitle = new CPrivateFastFont(new FontFamily("MS UI Gothic"), 13); + } + + if(!string.IsNullOrEmpty(TJAPlayer3.ConfigIni.BoxFontName)) + this.pfBoxText = new CPrivateFastFont(new FontFamily(TJAPlayer3.ConfigIni.BoxFontName), 14); + else + this.pfBoxText = new CPrivateFastFont(new FontFamily("MS UI Gothic"), 14); + + + this.b登場アニメ全部完了 = false; + this.n目標のスクロールカウンタ = 0; + this.n現在のスクロールカウンタ = 0; + this.nスクロールタイマ = -1; + + // フォント作成。 + // 曲リスト文字は2倍(面積4倍)でテクスチャに描画してから縮小表示するので、フォントサイズは2倍とする。 + + FontStyle regular = FontStyle.Regular; + this.ft曲リスト用フォント = new Font( TJAPlayer3.ConfigIni.FontName, 40f, regular, GraphicsUnit.Pixel ); + + // 現在選択中の曲がない(=はじめての活性化)なら、現在選択中の曲をルートの先頭ノードに設定する。 + + if( ( this.r現在選択中の曲 == null ) && ( TJAPlayer3.Songs管理.list曲ルート.Count > 0 ) ) + this.r現在選択中の曲 = TJAPlayer3.Songs管理.list曲ルート[ 0 ]; + + this.tバーの初期化(); + + this.ctBarOpen = new CCounter(); + this.ctBoxOpen = new CCounter(); + this.ctDifficultyIn = new CCounter(); + + this.ct三角矢印アニメ = new CCounter(); + + this.ctBarFlash = new CCounter(); + + this.ctScoreFrameAnime = new CCounter(); + + if (this.r現在選択中の曲 != null) + { + for (int i = 0; i < 3; i++) + { + using (var texture = pfBoxText.DrawPrivateFont(this.r現在選択中の曲.strBoxText[i], r現在選択中の曲.ForeColor, r現在選択中の曲.BackColor, 26)) + { + this.txBoxText[i] = TJAPlayer3.tテクスチャの生成(texture); + this.strBoxText = this.r現在選択中の曲.strBoxText[0] + this.r現在選択中の曲.strBoxText[1] + this.r現在選択中の曲.strBoxText[2]; + } + } + } + else + { + strBoxText = "null"; + } + + base.On活性化(); + + this.t選択曲が変更された(true); // #27648 2012.3.31 yyagi 選曲画面に入った直後の 現在位置/全アイテム数 の表示を正しく行うため + } + public override void On非活性化() + { + if( this.b活性化してない ) + return; + + TJAPlayer3.t安全にDisposeする(ref pfBoxName); + TJAPlayer3.t安全にDisposeする(ref pfMusicName); + TJAPlayer3.t安全にDisposeする(ref pfSubtitle); + + TJAPlayer3.t安全にDisposeする( ref this.ft曲リスト用フォント ); + + this.ct三角矢印アニメ = null; + + base.On非活性化(); + } + public override void OnManagedリソースの作成() + { + if( this.b活性化してない ) + return; + + for( int i = 0; i < 9; i++ ) + { + this.stバー情報[ i ].ttkタイトル = this.ttk曲名テクスチャを生成する( this.stバー情報[ i ].strタイトル文字列, this.stバー情報[i].ForeColor, this.stバー情報[i].BackColor, stバー情報[i].eバー種別 == Eバー種別.Box ? this.pfBoxName : this.pfMusicName); + } + + int c = ( CultureInfo.CurrentCulture.TwoLetterISOLanguageName == "ja" ) ? 0 : 1; + + #region [ Songs not found画像 ] + try + { + using( Bitmap image = new Bitmap( 640, 128 ) ) + using( Graphics graphics = Graphics.FromImage( image ) ) + { + string[] s1 = { "曲データが見つかりません。", "Songs not found." }; + string[] s2 = { "曲データをDTXManiaGR.exe以下の", "You need to install songs." }; + string[] s3 = { "フォルダにインストールして下さい。", "" }; + graphics.DrawString( s1[c], this.ft曲リスト用フォント, Brushes.DarkGray, (float) 2f, (float) 2f ); + graphics.DrawString( s1[c], this.ft曲リスト用フォント, Brushes.White, (float) 0f, (float) 0f ); + graphics.DrawString( s2[c], this.ft曲リスト用フォント, Brushes.DarkGray, (float) 2f, (float) 44f ); + graphics.DrawString( s2[c], this.ft曲リスト用フォント, Brushes.White, (float) 0f, (float) 42f ); + graphics.DrawString( s3[c], this.ft曲リスト用フォント, Brushes.DarkGray, (float) 2f, (float) 86f ); + graphics.DrawString( s3[c], this.ft曲リスト用フォント, Brushes.White, (float) 0f, (float) 84f ); + + this.txSongNotFound = new CTexture( TJAPlayer3.app.Device, image, TJAPlayer3.TextureFormat ); + + this.txSongNotFound.vc拡大縮小倍率 = new Vector3( 0.5f, 0.5f, 1f ); // 半分のサイズで表示する。 + } + } + catch( CTextureCreateFailedException e ) + { + Trace.TraceError( e.ToString() ); + Trace.TraceError( "SoungNotFoundテクスチャの作成に失敗しました。" ); + this.txSongNotFound = null; + } + #endregion + #region [ "曲データを検索しています"画像 ] + try + { + using ( Bitmap image = new Bitmap( 640, 96 ) ) + using ( Graphics graphics = Graphics.FromImage( image ) ) + { + string[] s1 = { "曲データを検索しています。", "Now enumerating songs." }; + string[] s2 = { "そのまましばらくお待ち下さい。", "Please wait..." }; + graphics.DrawString( s1[c], this.ft曲リスト用フォント, Brushes.DarkGray, (float) 2f, (float) 2f ); + graphics.DrawString( s1[c], this.ft曲リスト用フォント, Brushes.White, (float) 0f, (float) 0f ); + graphics.DrawString( s2[c], this.ft曲リスト用フォント, Brushes.DarkGray, (float) 2f, (float) 44f ); + graphics.DrawString( s2[c], this.ft曲リスト用フォント, Brushes.White, (float) 0f, (float) 42f ); + + this.txEnumeratingSongs = new CTexture( TJAPlayer3.app.Device, image, TJAPlayer3.TextureFormat ); + + this.txEnumeratingSongs.vc拡大縮小倍率 = new Vector3( 0.5f, 0.5f, 1f ); // 半分のサイズで表示する。 + } + } + catch ( CTextureCreateFailedException e ) + { + Trace.TraceError( e.ToString() ); + Trace.TraceError( "txEnumeratingSongsテクスチャの作成に失敗しました。" ); + this.txEnumeratingSongs = null; + } + #endregion + #region [ 曲数表示 ] + //this.txアイテム数数字 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenSelect skill number on gauge etc.png" ), false ); + #endregion + + base.OnManagedリソースの作成(); + } + public override void OnManagedリソースの解放() + { + if( this.b活性化してない ) + return; + + for( int i = 0; i < 9; i++ ) + { + TJAPlayer3.tテクスチャの解放( ref this.stバー情報[ i ].txタイトル名 ); + this.stバー情報[ i ].ttkタイトル = null; + } + + ClearTitleTextureCache(); + + TJAPlayer3.tテクスチャの解放( ref this.txEnumeratingSongs ); + TJAPlayer3.tテクスチャの解放( ref this.txSongNotFound ); + + base.OnManagedリソースの解放(); + } + public override int On進行描画() + { + if (this.b活性化してない) + return 0; + + #region [ 初めての進行描画 ] + //----------------- + if (this.b初めての進行描画) + { + this.nスクロールタイマ = (long)(CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)); + TJAPlayer3.stage選曲.t選択曲変更通知(); + + ctBarOpen.t開始(0, 260, 2, TJAPlayer3.Timer); + this.ct三角矢印アニメ.t開始(0, 1000, 1, TJAPlayer3.Timer); + base.b初めての進行描画 = false; + } + //----------------- + #endregion + + ctBarFlash.t進行(); + ctBoxOpen.t進行(); + ctBarOpen.t進行(); + ctDifficultyIn.t進行(); + + int BarAnimeCount = this.ctBarOpen.n現在の値 <= 200 ? 0 : (int)(Math.Sin(((this.ctBarOpen.n現在の値 - 200) * 1.5f) * (Math.PI / 180)) * 62.0f); + + if (BarAnimeCount == 62) + ctScoreFrameAnime.t進行Loop(); + + // まだ選択中の曲が決まってなければ、曲ツリールートの最初の曲にセットする。 + + if ((this.r現在選択中の曲 == null) && (TJAPlayer3.Songs管理.list曲ルート.Count > 0)) + this.r現在選択中の曲 = TJAPlayer3.Songs管理.list曲ルート[0]; + + // 描画。 + if (this.r現在選択中の曲 == null) + { + #region [ 曲が1つもないなら「Songs not found.」を表示してここで帰れ。] + //----------------- + if (bIsEnumeratingSongs) + { + if (this.txEnumeratingSongs != null) + { + this.txEnumeratingSongs.t2D描画(TJAPlayer3.app.Device, 320, 160); + } + } + else + { + if (this.txSongNotFound != null) + this.txSongNotFound.t2D描画(TJAPlayer3.app.Device, 320, 160); + } + //----------------- + #endregion + + return 0; + } + + // 本ステージは、(1)登場アニメフェーズ → (2)通常フェーズ と二段階にわけて進む。 + + if (strBoxText != r現在選択中の曲.strBoxText[0] + r現在選択中の曲.strBoxText[1] + r現在選択中の曲.strBoxText[2]) + { + for (int i = 0; i < 3; i++) + { + using (var texture = pfBoxText.DrawPrivateFont(this.r現在選択中の曲.strBoxText[i], r現在選択中の曲.ForeColor, r現在選択中の曲.BackColor, 26)) + { + this.txBoxText[i] = TJAPlayer3.tテクスチャの生成(texture); + this.strBoxText = this.r現在選択中の曲.strBoxText[0] + this.r現在選択中の曲.strBoxText[1] + this.r現在選択中の曲.strBoxText[2]; + } + } + } + + + // 進行。 + if (n現在のスクロールカウンタ == 0) ct三角矢印アニメ.t進行Loop(); + else ct三角矢印アニメ.n現在の値 = 0; + + { + #region [ (2) 通常フェーズの進行。] + //----------------- + long n現在時刻 = CSound管理.rc演奏用タイマ.n現在時刻; + + if (n現在時刻 < this.nスクロールタイマ) // 念のため + this.nスクロールタイマ = n現在時刻; + + const int nアニメ間隔 = 2; + while ((n現在時刻 - this.nスクロールタイマ) >= nアニメ間隔) + { + int n加速度 = 1; + int n残距離 = Math.Abs((int)(this.n目標のスクロールカウンタ - this.n現在のスクロールカウンタ)); + + #region [ 残距離が遠いほどスクロールを速くする(=n加速度を多くする)。] + //----------------- + if (n残距離 <= 10) + { + n加速度 = 1; + } + else if (n残距離 <= 100) + { + n加速度 = 2; + } + else if (n残距離 <= 300) + { + n加速度 = 3; + } + else if (n残距離 <= 500) + { + n加速度 = 4; + } + else + { + n加速度 = 650; + } + //----------------- + #endregion + + #region [ 加速度を加算し、現在のスクロールカウンタを目標のスクロールカウンタまで近づける。 ] + //----------------- + if (this.n現在のスクロールカウンタ < this.n目標のスクロールカウンタ) // (A) 正の方向に未達の場合: + { + this.n現在のスクロールカウンタ += n加速度; // カウンタを正方向に移動する。 + + if (this.n現在のスクロールカウンタ > this.n目標のスクロールカウンタ) + this.n現在のスクロールカウンタ = this.n目標のスクロールカウンタ; // 到着!スクロール停止! + } + + else if (this.n現在のスクロールカウンタ > this.n目標のスクロールカウンタ) // (B) 負の方向に未達の場合: + { + this.n現在のスクロールカウンタ -= n加速度; // カウンタを負方向に移動する。 + + if (this.n現在のスクロールカウンタ < this.n目標のスクロールカウンタ) // 到着!スクロール停止! + this.n現在のスクロールカウンタ = this.n目標のスクロールカウンタ; + } + //----------------- + #endregion + + if (this.n現在のスクロールカウンタ >= 100) // 1行=100カウント。 + { + #region [ パネルを1行上にシフトする。] + //----------------- + + // 選択曲と選択行を1つ下の行に移動。 + + this.r現在選択中の曲 = this.r次の曲(this.r現在選択中の曲); + this.n現在の選択行 = (this.n現在の選択行 + 1) % 9; + + // 選択曲から7つ下のパネル(=新しく最下部に表示されるパネル。消えてしまう一番上のパネルを再利用する)に、新しい曲の情報を記載する。 + + C曲リストノード song = this.r現在選択中の曲; + for (int i = 0; i < 4; i++) + song = this.r次の曲(song); + + int index = (this.n現在の選択行 + 4) % 9; // 新しく最下部に表示されるパネルのインデックス(0~12)。 + this.stバー情報[index].strタイトル文字列 = song.strタイトル; + this.stバー情報[index].ForeColor = song.ForeColor; + this.stバー情報[index].BackColor = song.BackColor; + this.stバー情報[index].strジャンル = song.strジャンル; + this.stバー情報[index].strサブタイトル = song.strサブタイトル; + this.stバー情報[index].ar難易度 = song.nLevel; + for (int f = 0; f < (int)Difficulty.Total; f++) + { + if (song.arスコア[f] != null) + this.stバー情報[index].b分岐 = song.arスコア[f].譜面情報.b譜面分岐; + } + + if (stバー情報[index].nクリア == null) + this.stバー情報[index].nクリア = new int[5]; + if (stバー情報[index].nスコアランク == null) + this.stバー情報[index].nスコアランク = new int[5]; + + if (song.arスコア[3] != null) + { + this.stバー情報[index].nクリア = song.arスコア[3].譜面情報.nクリア; + this.stバー情報[index].nスコアランク = song.arスコア[3].譜面情報.nスコアランク; + } + + // stバー情報[] の内容を1行ずつずらす。 + + C曲リストノード song2 = this.r現在選択中の曲; + for (int i = 0; i < 4; i++) + song2 = this.r前の曲(song2); + + for (int i = 0; i < 9; i++) + { + int n = (((this.n現在の選択行 - 4) + i) + 9) % 9; + this.stバー情報[n].eバー種別 = this.e曲のバー種別を返す(song2); + song2 = this.r次の曲(song2); + this.stバー情報[n].ttkタイトル = this.ttk曲名テクスチャを生成する(this.stバー情報[n].strタイトル文字列, this.stバー情報[n].ForeColor, this.stバー情報[n].BackColor, stバー情報[n].eバー種別 == Eバー種別.Box ? this.pfBoxName : this.pfMusicName); + } + + + // 新しく最下部に表示されるパネル用のスキル値を取得。 + + for (int i = 0; i < 3; i++) + this.stバー情報[index].nスキル値[i] = (int)song.arスコア[this.n現在のアンカ難易度レベルに最も近い難易度レベルを返す(song)].譜面情報.最大スキル[i]; + + + // 1行(100カウント)移動完了。 + + this.n現在のスクロールカウンタ -= 100; + this.n目標のスクロールカウンタ -= 100; + + this.t選択曲が変更された(false); // スクロールバー用に今何番目を選択しているかを更新 + + + + if (this.n目標のスクロールカウンタ == 0) + { + TJAPlayer3.stage選曲.t選択曲変更通知(); // スクロール完了=選択曲変更! + ctBarOpen.t開始(0, 260, 2, TJAPlayer3.Timer); + TJAPlayer3.stage選曲.NowGenre = this.r現在選択中の曲.strジャンル; + ctScoreFrameAnime.t開始(0, 6000, 1, TJAPlayer3.Timer); + } + + //----------------- + #endregion + } + else if (this.n現在のスクロールカウンタ <= -100) + { + #region [ パネルを1行下にシフトする。] + //----------------- + + // 選択曲と選択行を1つ上の行に移動。 + + this.r現在選択中の曲 = this.r前の曲(this.r現在選択中の曲); + this.n現在の選択行 = ((this.n現在の選択行 - 1) + 9) % 9; + + + // 選択曲から5つ上のパネル(=新しく最上部に表示されるパネル。消えてしまう一番下のパネルを再利用する)に、新しい曲の情報を記載する。 + + C曲リストノード song = this.r現在選択中の曲; + for (int i = 0; i < 4; i++) + song = this.r前の曲(song); + + int index = ((this.n現在の選択行 - 4) + 9) % 9; // 新しく最上部に表示されるパネルのインデックス(0~12)。 + this.stバー情報[index].strタイトル文字列 = song.strタイトル; + this.stバー情報[index].ForeColor = song.ForeColor; + this.stバー情報[index].BackColor = song.BackColor; + this.stバー情報[index].strサブタイトル = song.strサブタイトル; + this.stバー情報[index].strジャンル = song.strジャンル; + this.stバー情報[index].ar難易度 = song.nLevel; + for (int f = 0; f < (int)Difficulty.Total; f++) + { + if (song.arスコア[f] != null) + this.stバー情報[index].b分岐 = song.arスコア[f].譜面情報.b譜面分岐; + } + + if (stバー情報[index].nクリア == null) + this.stバー情報[index].nクリア = new int[5]; + if (stバー情報[index].nスコアランク == null) + this.stバー情報[index].nスコアランク = new int[5]; + + if (song.arスコア[3] != null) + { + this.stバー情報[index].nクリア = song.arスコア[3].譜面情報.nクリア; + this.stバー情報[index].nスコアランク = song.arスコア[3].譜面情報.nスコアランク; + } + + // stバー情報[] の内容を1行ずつずらす。 + + C曲リストノード song2 = this.r現在選択中の曲; + for (int i = 0; i < 4; i++) + song2 = this.r前の曲(song2); + + for (int i = 0; i < 9; i++) + { + int n = (((this.n現在の選択行 - 4) + i) + 9) % 9; + this.stバー情報[n].eバー種別 = this.e曲のバー種別を返す(song2); + song2 = this.r次の曲(song2); + this.stバー情報[n].ttkタイトル = this.ttk曲名テクスチャを生成する(this.stバー情報[n].strタイトル文字列, this.stバー情報[n].ForeColor, this.stバー情報[n].BackColor, stバー情報[n].eバー種別 == Eバー種別.Box ? this.pfBoxName : this.pfMusicName); + } + + + // 新しく最上部に表示されるパネル用のスキル値を取得。 + + for (int i = 0; i < 3; i++) + this.stバー情報[index].nスキル値[i] = (int)song.arスコア[this.n現在のアンカ難易度レベルに最も近い難易度レベルを返す(song)].譜面情報.最大スキル[i]; + + + // 1行(100カウント)移動完了。 + + this.n現在のスクロールカウンタ += 100; + this.n目標のスクロールカウンタ += 100; + + this.t選択曲が変更された(false); // スクロールバー用に今何番目を選択しているかを更新 + + this.ttk選択している曲の曲名 = null; + this.ttk選択している曲のサブタイトル = null; + + if (this.n目標のスクロールカウンタ == 0) + { + TJAPlayer3.stage選曲.t選択曲変更通知(); // スクロール完了=選択曲変更! + ctBarOpen.t開始(0, 260, 2, TJAPlayer3.Timer); + TJAPlayer3.stage選曲.NowGenre = this.r現在選択中の曲.strジャンル; + ctScoreFrameAnime.t開始(0, 6000, 1, TJAPlayer3.Timer); + } + //----------------- + #endregion + } + + if (this.b選択曲が変更された && n現在のスクロールカウンタ == 0) + { + if (this.ttk選択している曲の曲名 != null) + { + this.ttk選択している曲の曲名 = null; + this.b選択曲が変更された = false; + } + if (this.ttk選択している曲のサブタイトル != null) + { + this.ttk選択している曲のサブタイトル = null; + this.b選択曲が変更された = false; + } + } + this.nスクロールタイマ += nアニメ間隔; + } + //----------------- + #endregion + } + + int i選曲バーX座標 = 673; //選曲バーの座標用 + int i選択曲バーX座標 = 665; //選択曲バーの座標用 + + #region [ (2) 通常フェーズの描画。] + //----------------- + for (int i = 0; i < 9; i++) // パネルは全13枚。 + { + if ((i == 0 && this.n現在のスクロールカウンタ > 0) || // 最上行は、上に移動中なら表示しない。 + (i == 8 && this.n現在のスクロールカウンタ < 0)) // 最下行は、下に移動中なら表示しない。 + continue; + + int nパネル番号 = (((this.n現在の選択行 - 4) + i) + 9) % 9; + int n見た目の行番号 = i; + int n次のパネル番号 = (this.n現在のスクロールカウンタ <= 0) ? ((i + 1) % 9) : (((i - 1) + 9) % 9); + int x = i選曲バーX座標; + int xAnime = this.ptバーの座標[n見た目の行番号].X + ((int)((this.ptバーの座標[n次のパネル番号].X - this.ptバーの座標[n見た目の行番号].X) * (((double)Math.Abs(this.n現在のスクロールカウンタ)) / 100.0))); + int y = this.ptバーの座標[n見た目の行番号].Y + ((int)((this.ptバーの座標[n次のパネル番号].Y - this.ptバーの座標[n見た目の行番号].Y) * (((double)Math.Abs(this.n現在のスクロールカウンタ)) / 100.0))); + + // (B) スクロール中の選択曲バー、またはその他のバーの描画。 + + float Box = 0; + + #region [ BoxOpenAnime ] + + if (ctBoxOpen.n現在の値 <= 560 + 1000) + { + if (i == 1) + { + if (ctBoxOpen.n現在の値 >= 1000 && ctBoxOpen.n現在の値 <= 360 + 1000) + Box = 400.0f - (float)Math.Sin(((ctBoxOpen.n現在の値 - 1000) / 4 + 90) * (Math.PI / 180)) * 400.0f; + if (ctBoxOpen.n現在の値 >= 360 + 1000) + Box = 400.0f; + } + if (i == 2) + { + if (ctBoxOpen.n現在の値 >= 75 + 1000 && ctBoxOpen.n現在の値 <= 435 + 1000) + Box = 500.0f - (float)Math.Sin(((ctBoxOpen.n現在の値 - 1075) / 4 + 90) * (Math.PI / 180)) * 500.0f; + if (ctBoxOpen.n現在の値 >= 435 + 1000) + Box = 500.0f; + } + if (i == 3) + { + if (ctBoxOpen.n現在の値 >= 150 + 1000 && ctBoxOpen.n現在の値 <= 510 + 1000) + Box = 600.0f - (float)Math.Sin(((ctBoxOpen.n現在の値 - 1150) / 4 + 90) * (Math.PI / 180)) * 600.0f; + if (ctBoxOpen.n現在の値 >= 510 + 1000) + Box = 600.0f; + } + if (i == 5) + { + if (ctBoxOpen.n現在の値 >= 150 + 1000 && ctBoxOpen.n現在の値 <= 510 + 1000) + Box = -600.0f + (float)Math.Sin(((ctBoxOpen.n現在の値 - 1150) / 4 + 90) * (Math.PI / 180)) * 600.0f; + if (ctBoxOpen.n現在の値 >= 510 + 1000) + Box = 600.0f; + } + if (i == 6) + { + if (ctBoxOpen.n現在の値 >= 75 + 1000 && ctBoxOpen.n現在の値 <= 435 + 1000) + Box = -500.0f + (float)Math.Sin(((ctBoxOpen.n現在の値 - 1075) / 4 + 90) * (Math.PI / 180)) * 500.0f; + if (ctBoxOpen.n現在の値 >= 435 + 1000) + Box = 500.0f; + } + if (i == 7) + { + if (ctBoxOpen.n現在の値 >= 1000 && ctBoxOpen.n現在の値 <= 360 + 1000) + Box = -400.0f + (float)Math.Sin(((ctBoxOpen.n現在の値 - 1000) / 4 + 90) * (Math.PI / 180)) * 400.0f; + if (ctBoxOpen.n現在の値 >= 360 + 1000) + Box = 400.0f; + } + } + + if (ctBoxOpen.n現在の値 > 1300 && ctBoxOpen.n現在の値 < 1940) + { + ctBoxOpen.t間隔値変更(0.65); + if (i == 1) + Box = 600.0f; + if (i == 2) + Box = 600.0f; + if (i == 3) + Box = 600.0f; + if (i == 5) + Box = -600.0f; + if (i == 6) + Box = -600.0f; + if (i == 7) + Box = -600.0f; + } + + if (ctBoxOpen.n現在の値 >= 1840 && ctBoxOpen.n現在の値 <= 560 + 1840) + { + ctBoxOpen.t間隔値変更(1.3); + if (i == 1) + { + if (ctBoxOpen.n現在の値 >= 100 + 1840 && ctBoxOpen.n現在の値 <= 460 + 1840) + Box = 600.0f - (float)Math.Sin(((ctBoxOpen.n現在の値 - 1940) / 4) * (Math.PI / 180)) * 600.0f; + if (ctBoxOpen.n現在の値 < 100 + 1840) + Box = 600.0f; + } + if (i == 2) + { + if (ctBoxOpen.n現在の値 >= 50 + 1840 && ctBoxOpen.n現在の値 <= 410 + 1840) + Box = 500.0f - (float)Math.Sin(((ctBoxOpen.n現在の値 - 1890) / 4) * (Math.PI / 180)) * 500.0f; + if (ctBoxOpen.n現在の値 < 50 + 1840) + Box = 600.0f; + } + if (i == 3) + { + if (ctBoxOpen.n現在の値 >= 1840 && ctBoxOpen.n現在の値 <= 360 + 1840) + Box = 400.0f - (float)Math.Sin(((ctBoxOpen.n現在の値 - 1840) / 4) * (Math.PI / 180)) * 400.0f; + if (ctBoxOpen.n現在の値 < 1840) + Box = 600.0f; + } + if (i == 5) + { + if (ctBoxOpen.n現在の値 >= 1840 && ctBoxOpen.n現在の値 <= 360 + 1840) + Box = -400.0f + (float)Math.Sin(((ctBoxOpen.n現在の値 - 1840) / 4) * (Math.PI / 180)) * 400.0f; + if (ctBoxOpen.n現在の値 < 1840) + Box = -600.0f; + } + if (i == 6) + { + if (ctBoxOpen.n現在の値 >= 50 + 1840 && ctBoxOpen.n現在の値 <= 410 + 1840) + Box = -500.0f + (float)Math.Sin(((ctBoxOpen.n現在の値 - 1890) / 4) * (Math.PI / 180)) * 500.0f; + if (ctBoxOpen.n現在の値 < 50 + 1840) + Box = -600.0f; + } + if (i == 7) + { + if (ctBoxOpen.n現在の値 >= 100 + 1840 && ctBoxOpen.n現在の値 <= 460 + 1840) + Box = -600.0f + (float)Math.Sin(((ctBoxOpen.n現在の値 - 1940) / 4) * (Math.PI / 180)) * 600.0f; + if (ctBoxOpen.n現在の値 < 100 + 1840) + Box = -600.0f; + } + } + + #endregion + + + #region [ バーテクスチャを描画。] + //----------------- + TJAPlayer3.Tx.SongSelect_Bar_Genre[nStrジャンルtoNum(stバー情報[nパネル番号].strジャンル)].vc拡大縮小倍率.X = 1.0f; + TJAPlayer3.Tx.SongSelect_Bar_Genre_Overlay.vc拡大縮小倍率.X = 1.0f; + TJAPlayer3.Tx.SongSelect_Bar_Genre_Back.vc拡大縮小倍率.X = 1.0f; + + if (n現在のスクロールカウンタ != 0) + this.tジャンル別選択されていない曲バーの描画(xAnime - (int)Box, y - ((int)Box * 3), this.stバー情報[nパネル番号].strジャンル, stバー情報[nパネル番号].eバー種別, stバー情報[nパネル番号].nクリア, stバー情報[nパネル番号].nスコアランク); + else if (n見た目の行番号 != 4) + this.tジャンル別選択されていない曲バーの描画(xAnime - (int)Box, y - ((int)Box * 3), this.stバー情報[nパネル番号].strジャンル, stバー情報[nパネル番号].eバー種別, stバー情報[nパネル番号].nクリア, stバー情報[nパネル番号].nスコアランク); + //----------------- + #endregion + + #region [ タイトル名テクスチャを描画。] + if (ctDifficultyIn.n現在の値 >= 1000 && TJAPlayer3.stage選曲.act難易度選択画面.bIsDifficltSelect) + ResolveTitleTexture(this.stバー情報[nパネル番号].ttkタイトル).Opacity = (int)255.0f - (ctDifficultyIn.n現在の値 - 1000); + else + ResolveTitleTexture(this.stバー情報[nパネル番号].ttkタイトル).Opacity = 255; + + if (n現在のスクロールカウンタ != 0) + ResolveTitleTexture(this.stバー情報[nパネル番号].ttkタイトル).t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, xAnime + 316 - Box + TJAPlayer3.Skin.SongSelect_Title_X, y + 59 - (Box * 3) + TJAPlayer3.Skin.SongSelect_Title_Y); + else if (n見た目の行番号 != 4) + ResolveTitleTexture(this.stバー情報[nパネル番号].ttkタイトル).t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, xAnime + 316 - Box + TJAPlayer3.Skin.SongSelect_Title_X, y + 62 - (Box * 3) + TJAPlayer3.Skin.SongSelect_Title_Y); + #endregion + + //----------------- + } + #endregion + + if (this.n現在のスクロールカウンタ == 0) + { + #region [ Draw BarCenter ] + + #region [ Bar_Select ] + + if (ctBoxOpen.n現在の値 >= 1300 && ctBoxOpen.n現在の値 <= 1940) + TJAPlayer3.Tx.SongSelect_Bar_Select.vc拡大縮小倍率.X = 1.0f - (float)Math.Sin(((ctBoxOpen.n現在の値 - 1300) * 0.28125f) * (Math.PI / 180)) * 1.0f; + else + TJAPlayer3.Tx.SongSelect_Bar_Select.vc拡大縮小倍率.X = 1.0f; + + + if (ctBarFlash.b終了値に達した && !TJAPlayer3.stage選曲.act難易度選択画面.bIsDifficltSelect) + TJAPlayer3.Tx.SongSelect_Bar_Select.Opacity = (int)(BarAnimeCount * 4.25f); + else + TJAPlayer3.Tx.SongSelect_Bar_Select.Opacity = (int)(255 - (ctBarFlash.n現在の値 - 700) * 2.55f); + + TJAPlayer3.Tx.SongSelect_Bar_Select.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 640, 322 - BarAnimeCount, new Rectangle(0, 0, 662, 40)); + + TJAPlayer3.Tx.SongSelect_Bar_Select.vc拡大縮小倍率.Y = BarAnimeCount == 0 ? 0.2f : 0.2f + (float)(BarAnimeCount * 0.012f); + TJAPlayer3.Tx.SongSelect_Bar_Select.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 640, 360, new Rectangle(0, 40, 662, 172)); + TJAPlayer3.Tx.SongSelect_Bar_Select.vc拡大縮小倍率.Y = 1.0f; + + TJAPlayer3.Tx.SongSelect_Bar_Select.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 640, 398 + BarAnimeCount, new Rectangle(0, 208, 662, 43)); + + #region [ BarFlash ] + + if (ctBarFlash.n現在の値 <= 100) + TJAPlayer3.Tx.SongSelect_Bar_Select.Opacity = (int)(ctBarFlash.n現在の値 * 2.55f); + else if (ctBarFlash.n現在の値 <= 200) + TJAPlayer3.Tx.SongSelect_Bar_Select.Opacity = (int)(255 - (ctBarFlash.n現在の値 - 100) * 2.55f); + else if (ctBarFlash.n現在の値 <= 300) + TJAPlayer3.Tx.SongSelect_Bar_Select.Opacity = (int)((ctBarFlash.n現在の値 - 200) * 2.55f); + else if (ctBarFlash.n現在の値 <= 400) + TJAPlayer3.Tx.SongSelect_Bar_Select.Opacity = (int)(255 - (ctBarFlash.n現在の値 - 300) * 2.55f); + else if (ctBarFlash.n現在の値 <= 500) + TJAPlayer3.Tx.SongSelect_Bar_Select.Opacity = (int)((ctBarFlash.n現在の値 - 400) * 2.55f); + else if (ctBarFlash.n現在の値 <= 600) + TJAPlayer3.Tx.SongSelect_Bar_Select.Opacity = (int)(255 - (ctBarFlash.n現在の値 - 500) * 2.55f); + else if (ctBarFlash.n現在の値 <= 700) + TJAPlayer3.Tx.SongSelect_Bar_Select.Opacity = (int)((ctBarFlash.n現在の値 - 600) * 2.55f); + else if (ctBarFlash.n現在の値 <= 800) + TJAPlayer3.Tx.SongSelect_Bar_Select.Opacity = (int)(255 - (ctBarFlash.n現在の値 - 700) * 2.55f); + else + TJAPlayer3.Tx.SongSelect_Bar_Select.Opacity = 0; + + TJAPlayer3.Tx.SongSelect_Bar_Select.t2D中心基準描画(TJAPlayer3.app.Device, 640, 360, new Rectangle(0, 251, 662, 251)); + + #endregion + + #endregion + + if (r現在選択中の曲.eノード種別 == C曲リストノード.Eノード種別.SCORE) + { + #region [ Score ] + + #region [ Bar ] + + if (ctBoxOpen.n現在の値 >= 1300 && ctBoxOpen.n現在の値 <= 1940) + { + TJAPlayer3.Tx.SongSelect_Bar_Genre_Overlay.vc拡大縮小倍率.X = 1.0f - (float)Math.Sin(((ctBoxOpen.n現在の値 - 1300) * 0.28125f) * (Math.PI / 180)) * 1.0f; + TJAPlayer3.Tx.SongSelect_Bar_Genre[nStrジャンルtoNum(r現在選択中の曲.strジャンル)].vc拡大縮小倍率.X = 1.0f - (float)Math.Sin(((ctBoxOpen.n現在の値 - 1300) * 0.28125f) * (Math.PI / 180)) * 1.0f; + } + else + { + TJAPlayer3.Tx.SongSelect_Bar_Genre_Overlay.vc拡大縮小倍率.X = 1.0f; + TJAPlayer3.Tx.SongSelect_Bar_Genre[nStrジャンルtoNum(r現在選択中の曲.strジャンル)].vc拡大縮小倍率.X = 1.0f; + } + + TJAPlayer3.Tx.SongSelect_Bar_Genre[nStrジャンルtoNum(r現在選択中の曲.strジャンル)].t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 640, 326 - BarAnimeCount, new Rectangle(0, 0, 632, 21)); + + TJAPlayer3.Tx.SongSelect_Bar_Genre[nStrジャンルtoNum(r現在選択中の曲.strジャンル)].vc拡大縮小倍率.Y = BarAnimeCount == 0 ? 1.0f : 1.0f + (float)(BarAnimeCount) / 23.6f; + TJAPlayer3.Tx.SongSelect_Bar_Genre[nStrジャンルtoNum(r現在選択中の曲.strジャンル)].t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 640, 360, new Rectangle(0, 21, 632, 48)); + TJAPlayer3.Tx.SongSelect_Bar_Genre[nStrジャンルtoNum(r現在選択中の曲.strジャンル)].vc拡大縮小倍率.Y = 1.0f; + + TJAPlayer3.Tx.SongSelect_Bar_Genre[nStrジャンルtoNum(r現在選択中の曲.strジャンル)].t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 640, 394 + BarAnimeCount, new Rectangle(0, 69, 632, 23)); + + if (BarAnimeCount != 0) + { + TJAPlayer3.Tx.SongSelect_Bar_Genre_Overlay.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 640, 326 - BarAnimeCount, new Rectangle(0, 0, 632, 21)); + + TJAPlayer3.Tx.SongSelect_Bar_Genre_Overlay.vc拡大縮小倍率.Y = BarAnimeCount == 0 ? 1.0f : 1.0f + (float)(BarAnimeCount) / 24.5f; + TJAPlayer3.Tx.SongSelect_Bar_Genre_Overlay.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 640, 359, new Rectangle(0, 21, 632, 48)); + TJAPlayer3.Tx.SongSelect_Bar_Genre_Overlay.vc拡大縮小倍率.Y = 1.0f; + + TJAPlayer3.Tx.SongSelect_Bar_Genre_Overlay.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 640, 394 + BarAnimeCount, new Rectangle(0, 69, 632, 23)); + } + else + { + TJAPlayer3.Tx.SongSelect_Bar_Genre_Overlay.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 640, 360, new Rectangle(0, 0, 632, 92)); + } + #endregion + + #region [ Crown and ScoreRank ] + + if (this.r現在選択中の曲.arスコア[3] != null) + { + var クリア = this.r現在選択中の曲.arスコア[3].譜面情報.nクリア; + var スコアランク = this.r現在選択中の曲.arスコア[3].譜面情報.nスコアランク; + + TJAPlayer3.Tx.SongSelect_Crown.vc拡大縮小倍率.X = 0.8f + BarAnimeCount / 620f; + TJAPlayer3.Tx.SongSelect_Crown.vc拡大縮小倍率.Y = 0.8f + BarAnimeCount / 620f; + TJAPlayer3.Tx.SongSelect_ScoreRank.vc拡大縮小倍率.X = 0.8f + BarAnimeCount / 620f; + TJAPlayer3.Tx.SongSelect_ScoreRank.vc拡大縮小倍率.Y = 0.8f + BarAnimeCount / 620f; + + if (クリア[3] != 0) + TJAPlayer3.Tx.SongSelect_Crown.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 354, 344 - BarAnimeCount / 1.1f, new RectangleF(9 * 43.2f + (クリア[3] - 1) * 43.2f, 0, 43.2f, 39)); + else if (クリア[4] != 0) + TJAPlayer3.Tx.SongSelect_Crown.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 354, 344 - BarAnimeCount / 1.1f, new RectangleF(12 * 43.2f + (クリア[4] - 1) * 43.2f, 0, 43.2f, 39)); + + if (スコアランク[3] != 0) + TJAPlayer3.Tx.SongSelect_ScoreRank.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 354, 374 - BarAnimeCount / 1.15f, new RectangleF(0, (スコアランク[3] - 1) * 42.71f, 50, 42.71f)); + else if (スコアランク[4] != 0) + TJAPlayer3.Tx.SongSelect_ScoreRank.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 354, 374 - BarAnimeCount / 1.15f, new RectangleF(0, (スコアランク[4] - 1) * 42.71f, 50, 42.71f)); + } + + #endregion + + #endregion + } + if (r現在選択中の曲.eノード種別 == C曲リストノード.Eノード種別.BOX) + { + #region [ Box ] + if (ctBoxOpen.n現在の値 >= 1300 && ctBoxOpen.n現在の値 <= 1940) + { + TJAPlayer3.Tx.SongSelect_Bar_Genre_Overlay.vc拡大縮小倍率.X = 1.0f - (float)Math.Sin(((ctBoxOpen.n現在の値 - 1300) * 0.28125f) * (Math.PI / 180)) * 1.0f; + TJAPlayer3.Tx.SongSelect_Bar_Genre[nStrジャンルtoNum(r現在選択中の曲.strジャンル)].vc拡大縮小倍率.X = 1.0f - (float)Math.Sin(((ctBoxOpen.n現在の値 - 1300) * 0.28125f) * (Math.PI / 180)) * 1.0f; + } + else + { + TJAPlayer3.Tx.SongSelect_Bar_Genre_Overlay.vc拡大縮小倍率.X = 1.0f; + TJAPlayer3.Tx.SongSelect_Bar_Genre[nStrジャンルtoNum(r現在選択中の曲.strジャンル)].vc拡大縮小倍率.X = 1.0f; + } + + TJAPlayer3.Tx.SongSelect_Bar_Genre[nStrジャンルtoNum(r現在選択中の曲.strジャンル)].t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 640, 326 - BarAnimeCount, new Rectangle(0, 0, 632, 21)); + + TJAPlayer3.Tx.SongSelect_Bar_Genre[nStrジャンルtoNum(r現在選択中の曲.strジャンル)].vc拡大縮小倍率.Y = BarAnimeCount == 0 ? 1.0f : 1.0f + (float)(BarAnimeCount) / 23.6f; + TJAPlayer3.Tx.SongSelect_Bar_Genre[nStrジャンルtoNum(r現在選択中の曲.strジャンル)].t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 640, 360, new Rectangle(0, 21, 632, 48)); + TJAPlayer3.Tx.SongSelect_Bar_Genre[nStrジャンルtoNum(r現在選択中の曲.strジャンル)].vc拡大縮小倍率.Y = 1.0f; + + TJAPlayer3.Tx.SongSelect_Bar_Genre[nStrジャンルtoNum(r現在選択中の曲.strジャンル)].t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 640, 394 + BarAnimeCount, new Rectangle(0, 69, 632, 23)); + + if (BarAnimeCount != 0) + { + TJAPlayer3.Tx.SongSelect_Bar_Genre_Overlay.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 640, 326, new Rectangle(0, 0, 632, 21)); + + TJAPlayer3.Tx.SongSelect_Bar_Genre_Overlay.vc拡大縮小倍率.Y = BarAnimeCount == 0 ? 1.0f : 1.0f + (float)(BarAnimeCount) / 50; + TJAPlayer3.Tx.SongSelect_Bar_Genre_Overlay.t2D拡大率考慮上中央基準描画(TJAPlayer3.app.Device, 640, 336, new Rectangle(0, 21, 632, 48)); + TJAPlayer3.Tx.SongSelect_Bar_Genre_Overlay.vc拡大縮小倍率.Y = 1.0f; + + TJAPlayer3.Tx.SongSelect_Bar_Genre_Overlay.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 640, 394 + BarAnimeCount, new Rectangle(0, 69, 632, 23)); + } + else + { + TJAPlayer3.Tx.SongSelect_Bar_Genre_Overlay.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 640, 360, new Rectangle(0, 0, 632, 92)); + } + #endregion + } + if(r現在選択中の曲.eノード種別 == C曲リストノード.Eノード種別.BACKBOX) + { + #region [ BackBox ] + + if (ctBoxOpen.n現在の値 >= 1300 && ctBoxOpen.n現在の値 <= 1940) + TJAPlayer3.Tx.SongSelect_Bar_Genre_Back.vc拡大縮小倍率.X = 1.0f - (float)Math.Sin(((ctBoxOpen.n現在の値 - 1300) * 0.28125f) * (Math.PI / 180)) * 1.0f; + else + TJAPlayer3.Tx.SongSelect_Bar_Genre_Back.vc拡大縮小倍率.X = 1.0f; + + TJAPlayer3.Tx.SongSelect_Bar_Genre_Back.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 640, 326 - BarAnimeCount, new Rectangle(0, 0, 632, 21)); + + TJAPlayer3.Tx.SongSelect_Bar_Genre_Back.vc拡大縮小倍率.Y = BarAnimeCount == 0 ? 1.0f : 1.0f + (float)(BarAnimeCount) / 23.6f; + TJAPlayer3.Tx.SongSelect_Bar_Genre_Back.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 640, 360, new Rectangle(0, 21, 632, 48)); + TJAPlayer3.Tx.SongSelect_Bar_Genre_Back.vc拡大縮小倍率.Y = 1.0f; + + TJAPlayer3.Tx.SongSelect_Bar_Genre_Back.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 640, 394 + BarAnimeCount, new Rectangle(0, 69, 632, 23)); + + #endregion + } + + #endregion + + switch (r現在選択中の曲.eノード種別) + { + case C曲リストノード.Eノード種別.SCORE: + { + if (TJAPlayer3.Tx.SongSelect_Frame_Score != null) + { + // 難易度がTower、Danではない + if (TJAPlayer3.stage選曲.n現在選択中の曲の難易度 != (int)Difficulty.Tower && TJAPlayer3.stage選曲.n現在選択中の曲の難易度 != (int)Difficulty.Dan) + { + for (int i = 0; i < (int)Difficulty.Edit + 1; i++) + { + if (ctBarOpen.n現在の値 >= 100) + { + if (TJAPlayer3.stage選曲.r現在選択中のスコア.譜面情報.nレベル[i] >= 0) + { + TJAPlayer3.Tx.SongSelect_Frame_Score.color4 = new Color4(1f, 1f, 1f); + + int opacity = 0; + + if(BarAnimeCount == 62) + { + if (ctScoreFrameAnime.n現在の値 <= 3000 - 255) + opacity = 0; + else if (ctScoreFrameAnime.n現在の値 <= 3000) + opacity = ctScoreFrameAnime.n現在の値 - (3000 - 255); + else if (ctScoreFrameAnime.n現在の値 <= 6000 - 255) + opacity = 255; + else + opacity = 255 - (ctScoreFrameAnime.n現在の値 - (6000 - 255)); + } + + if (i == 4) + { + if (!TJAPlayer3.stage選曲.act難易度選択画面.bIsDifficltSelect) + TJAPlayer3.Tx.SongSelect_Frame_Score.Opacity = BarAnimeCount < 62 ? 0 : opacity; + else if (ctDifficultyIn.n現在の値 >= 1000) + TJAPlayer3.Tx.SongSelect_Frame_Score.Opacity = (int)255.0f - (ctDifficultyIn.n現在の値 - 1000); + + TJAPlayer3.Tx.SongSelect_Frame_Score.t2D下中央基準描画(TJAPlayer3.app.Device, 494 + (3 * 122) - 31, TJAPlayer3.Skin.SongSelect_Overall_Y + 465, new Rectangle(122 * i, 0, 122, 360)); + } + else if (i != 4) + { + if (!TJAPlayer3.stage選曲.act難易度選択画面.bIsDifficltSelect) + TJAPlayer3.Tx.SongSelect_Frame_Score.Opacity = (int)(BarAnimeCount * 4.25f); + else if (ctDifficultyIn.n現在の値 >= 1000) + TJAPlayer3.Tx.SongSelect_Frame_Score.Opacity = (int)255.0f - (ctDifficultyIn.n現在の値 - 1000); + + TJAPlayer3.Tx.SongSelect_Frame_Score.t2D下中央基準描画(TJAPlayer3.app.Device, 494 + (i * 122) - 31, TJAPlayer3.Skin.SongSelect_Overall_Y + 465, new Rectangle(122 * i, 0, 122, 360)); + } + + if (i == 4) + { + if (!TJAPlayer3.stage選曲.act難易度選択画面.bIsDifficltSelect) + TJAPlayer3.Tx.SongSelect_Level_Number.Opacity = BarAnimeCount < 62 ? 0 : opacity; + else if (ctDifficultyIn.n現在の値 >= 1000) + TJAPlayer3.Tx.SongSelect_Level_Number.Opacity = (int)255.0f - (ctDifficultyIn.n現在の値 - 1000); + + t小文字表示(TJAPlayer3.stage選曲.r現在選択中のスコア.譜面情報.nレベル[4] < 10 ? 497 + (3 * 122) - 5 : 492 + (3 * 122) - 5, TJAPlayer3.Skin.SongSelect_Overall_Y + 277, TJAPlayer3.stage選曲.r現在選択中のスコア.譜面情報.nレベル[4].ToString()); + } + else if (i != 4) + { + if (!TJAPlayer3.stage選曲.act難易度選択画面.bIsDifficltSelect) + TJAPlayer3.Tx.SongSelect_Level_Number.Opacity = (int)(BarAnimeCount * 4.25f); + else if (ctDifficultyIn.n現在の値 >= 1000) + TJAPlayer3.Tx.SongSelect_Level_Number.Opacity = (int)255.0f - (ctDifficultyIn.n現在の値 - 1000); + + t小文字表示(TJAPlayer3.stage選曲.r現在選択中のスコア.譜面情報.nレベル[i] < 10 ? 497 + (i * 122) - 5 : 492 + (i * 122) - 5, TJAPlayer3.Skin.SongSelect_Overall_Y + 277, TJAPlayer3.stage選曲.r現在選択中のスコア.譜面情報.nレベル[i].ToString()); + } + + } + else + { + // レベルが0未満 = 譜面がないとみなす + TJAPlayer3.Tx.SongSelect_Frame_Score.color4 = new Color4(0.5f, 0.5f, 0.5f); + if (i == 4 && TJAPlayer3.stage選曲.n現在選択中の曲の難易度 == 4) + { + if (!TJAPlayer3.stage選曲.act難易度選択画面.bIsDifficltSelect) + TJAPlayer3.Tx.SongSelect_Level_Number.Opacity = (int)(BarAnimeCount * 4.25f); + else if (ctDifficultyIn.n現在の値 >= 1000) + TJAPlayer3.Tx.SongSelect_Level_Number.Opacity = (int)255.0f - (ctDifficultyIn.n現在の値 - 1000); + // エディット + TJAPlayer3.Tx.SongSelect_Frame_Score.t2D下中央基準描画(TJAPlayer3.app.Device, 494 + (3 * 122) - 31, TJAPlayer3.Skin.SongSelect_Overall_Y + 465, new Rectangle(122 * i, 0, 122, 360)); + } + else if (i != 4) + { + if (!TJAPlayer3.stage選曲.act難易度選択画面.bIsDifficltSelect) + TJAPlayer3.Tx.SongSelect_Level_Number.Opacity = (int)(BarAnimeCount * 4.25f); + else if (ctDifficultyIn.n現在の値 >= 1000) + TJAPlayer3.Tx.SongSelect_Level_Number.Opacity = (int)255.0f - (ctDifficultyIn.n現在の値 - 1000); + + TJAPlayer3.Tx.SongSelect_Frame_Score.t2D下中央基準描画(TJAPlayer3.app.Device, 494 + (i * 122) - 31, TJAPlayer3.Skin.SongSelect_Overall_Y + 465, new Rectangle(122 * i, 0, 122, 360)); + } + } + } + } + } + else + { + if (TJAPlayer3.stage選曲.r現在選択中のスコア.譜面情報.nレベル[TJAPlayer3.stage選曲.n現在選択中の曲の難易度] >= 0) + { + // 譜面がありますね + TJAPlayer3.Tx.SongSelect_Frame_Score.color4 = new Color4(1f, 1f, 1f); + TJAPlayer3.Tx.SongSelect_Frame_Score.t2D下中央基準描画(TJAPlayer3.app.Device, 494 + (3 * 122) - 31, TJAPlayer3.Skin.SongSelect_Overall_Y + 465, new Rectangle(0, 360 + (360 * (TJAPlayer3.stage選曲.n現在選択中の曲の難易度 - (int)Difficulty.Tower)), TJAPlayer3.Tx.SongSelect_Frame_Score.szテクスチャサイズ.Width, 360)); + } + else + { + // ないですね + TJAPlayer3.Tx.SongSelect_Frame_Score.color4 = new Color4(0.5f, 0.5f, 0.5f); + TJAPlayer3.Tx.SongSelect_Frame_Score.t2D下中央基準描画(TJAPlayer3.app.Device, 494 + (3 * 122) - 31, TJAPlayer3.Skin.SongSelect_Overall_Y + 465, new Rectangle(0, 360 + (360 * (TJAPlayer3.stage選曲.n現在選択中の曲の難易度 - (int)Difficulty.Tower)), TJAPlayer3.Tx.SongSelect_Frame_Score.szテクスチャサイズ.Width, 360)); + } + } + } + } + break; + + case C曲リストノード.Eノード種別.BOX: + { + for (int j = 0; j < 3; j++) + { + if (!ctBoxOpen.b終了値に達した && ctBoxOpen.n現在の値 != 0) + { + if (txBoxText[j] != null) + this.txBoxText[j].Opacity = (int)(ctBoxOpen.n現在の値 >= 1200 && ctBoxOpen.n現在の値 <= 1620 ? 255 - (ctBoxOpen.n現在の値 - 1200) * 2.55f : + ctBoxOpen.n現在の値 >= 2000 ? (ctBoxOpen.n現在の値 - 2000) * 2.55f : ctBoxOpen.n現在の値 <= 1200 ? 255 : 0); + } + else + if (txBoxText[j] != null) + this.txBoxText[j].Opacity = (int)(BarAnimeCount * 4.25f); + + if (this.txBoxText[j].szテクスチャサイズ.Width >= 510) + this.txBoxText[j].vc拡大縮小倍率.X = 510f / this.txBoxText[j].szテクスチャサイズ.Width; + + this.txBoxText[j].t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 640 + TJAPlayer3.Skin.SongSelect_BoxExplanation_X, 360 + j * TJAPlayer3.Skin.SongSelect_BoxExplanation_Interval + TJAPlayer3.Skin.SongSelect_BoxExplanation_Y); + } + + if (!ctBoxOpen.b終了値に達した) + TJAPlayer3.Tx.SongSelect_Box_Chara[this.nStrジャンルtoNumBox(r現在選択中の曲.strジャンル)].Opacity = (int)(ctBoxOpen.n現在の値 >= 1200 && ctBoxOpen.n現在の値 <= 1620 ? 255 - (ctBoxOpen.n現在の値 - 1200) * 2.55f : + ctBoxOpen.n現在の値 >= 2000 ? (ctBoxOpen.n現在の値 - 2000) * 2.55f : ctBoxOpen.n現在の値 <= 1200 ? 255 : 0); + else + { + if (!TJAPlayer3.stage選曲.act難易度選択画面.bIsDifficltSelect) + TJAPlayer3.Tx.SongSelect_Box_Chara[this.nStrジャンルtoNumBox(r現在選択中の曲.strジャンル)].Opacity = (int)(BarAnimeCount * 4.25f); + else if (ctDifficultyIn.n現在の値 >= 1000) + TJAPlayer3.Tx.SongSelect_Box_Chara[this.nStrジャンルtoNumBox(r現在選択中の曲.strジャンル)].Opacity = (int)255.0f - (ctDifficultyIn.n現在の値 - 1000); + } + + float anime = 0; + + if(BarAnimeCount <= 45) + anime = BarAnimeCount * 3.333333333f; + else + anime = 150 - (BarAnimeCount - 45) * 2.11764705f; + + TJAPlayer3.Tx.SongSelect_Box_Chara[this.nStrジャンルtoNumBox(r現在選択中の曲.strジャンル)].t2D中心基準描画(TJAPlayer3.app.Device, 640 - TJAPlayer3.Tx.SongSelect_Box_Chara[this.nStrジャンルtoNumBox(r現在選択中の曲.strジャンル)].szテクスチャサイズ.Width / 4 + 114 - anime, 360, + new Rectangle(0, 0, TJAPlayer3.Tx.SongSelect_Box_Chara[this.nStrジャンルtoNumBox(r現在選択中の曲.strジャンル)].szテクスチャサイズ.Width / 2, TJAPlayer3.Tx.SongSelect_Box_Chara[this.nStrジャンルtoNumBox(r現在選択中の曲.strジャンル)].szテクスチャサイズ.Height)); + + TJAPlayer3.Tx.SongSelect_Box_Chara[this.nStrジャンルtoNumBox(r現在選択中の曲.strジャンル)].t2D中心基準描画(TJAPlayer3.app.Device, 640 + TJAPlayer3.Tx.SongSelect_Box_Chara[this.nStrジャンルtoNumBox(r現在選択中の曲.strジャンル)].szテクスチャサイズ.Width / 4 - 114 + anime, 360, + new Rectangle(TJAPlayer3.Tx.SongSelect_Box_Chara[this.nStrジャンルtoNumBox(r現在選択中の曲.strジャンル)].szテクスチャサイズ.Width / 2, 0, TJAPlayer3.Tx.SongSelect_Box_Chara[this.nStrジャンルtoNumBox(r現在選択中の曲.strジャンル)].szテクスチャサイズ.Width / 2, TJAPlayer3.Tx.SongSelect_Box_Chara[this.nStrジャンルtoNumBox(r現在選択中の曲.strジャンル)].szテクスチャサイズ.Height)); + } + break; + + case C曲リストノード.Eノード種別.BACKBOX: + if (TJAPlayer3.Tx.SongSelect_Frame_BackBox != null) + TJAPlayer3.Tx.SongSelect_Frame_BackBox.t2D描画(TJAPlayer3.app.Device, 450, TJAPlayer3.Skin.SongSelect_Overall_Y); + break; + + case C曲リストノード.Eノード種別.RANDOM: + if (TJAPlayer3.Tx.SongSelect_Frame_Random != null) + TJAPlayer3.Tx.SongSelect_Frame_Random.t2D描画(TJAPlayer3.app.Device, 450, TJAPlayer3.Skin.SongSelect_Overall_Y); + break; + } + + if (TJAPlayer3.Tx.SongSelect_Branch_Text != null && TJAPlayer3.stage選曲.r現在選択中のスコア.譜面情報.b譜面分岐[TJAPlayer3.stage選曲.n現在選択中の曲の難易度]) + TJAPlayer3.Tx.SongSelect_Branch_Text.t2D描画(TJAPlayer3.app.Device, 483, TJAPlayer3.Skin.SongSelect_Overall_Y + 21); + + } + + if (ctBoxOpen.n現在の値 >= 1620) + { + if (bBoxOpen) + { + this.tBOXに入る(); + bBoxOpen = false; + } + if (bBoxClose) + { + this.tBOXを出る(); + TJAPlayer3.stage選曲.bBGM再生済み = false; + if (TJAPlayer3.ConfigIni.bBGM音を発声する) + TJAPlayer3.Skin.bgm選曲画面イン.t再生する(); + TJAPlayer3.stage選曲.bBGMIn再生した = true; + bBoxClose = false; + } + } + + if(ctDifficultyIn.n現在の値 >= ctDifficultyIn.n終了値) + { + ctDifficultyIn.t停止(); + } + + for (int i = 0; i < 9; i++) // パネルは全13枚。 + { + if ((i == 0 && this.n現在のスクロールカウンタ > 0) || // 最上行は、上に移動中なら表示しない。 + (i == 8 && this.n現在のスクロールカウンタ < 0)) // 最下行は、下に移動中なら表示しない。 + continue; + + int nパネル番号 = (((this.n現在の選択行 - 4) + i) + 9) % 9; + int n見た目の行番号 = i; + int n次のパネル番号 = (this.n現在のスクロールカウンタ <= 0) ? ((i + 1) % 9) : (((i - 1) + 9) % 9); + //int x = this.ptバーの基本座標[ n見た目の行番号 ].X + ( (int) ( ( this.ptバーの基本座標[ n次のパネル番号 ].X - this.ptバーの基本座標[ n見た目の行番号 ].X ) * ( ( (double) Math.Abs( this.n現在のスクロールカウンタ ) ) / 100.0 ) ) ); + int x = i選曲バーX座標; + int xAnime = this.ptバーの座標[n見た目の行番号].X + ((int)((this.ptバーの座標[n次のパネル番号].X - this.ptバーの座標[n見た目の行番号].X) * (((double)Math.Abs(this.n現在のスクロールカウンタ)) / 100.0))); + int y = this.ptバーの座標[n見た目の行番号].Y + ((int)((this.ptバーの座標[n次のパネル番号].Y - this.ptバーの座標[n見た目の行番号].Y) * (((double)Math.Abs(this.n現在のスクロールカウンタ)) / 100.0))); + if ((i == 4) && (this.n現在のスクロールカウンタ == 0)) + { + CTexture tx選択している曲のサブタイトル = null; + + // (A) スクロールが停止しているときの選択曲バーの描画。 + + #region [ タイトル名テクスチャを描画。] + //----------------- + if (this.stバー情報[nパネル番号].strタイトル文字列 != "" && this.ttk選択している曲の曲名 == null) + this.ttk選択している曲の曲名 = this.ttk曲名テクスチャを生成する(this.stバー情報[nパネル番号].strタイトル文字列, this.stバー情報[nパネル番号].ForeColor, this.stバー情報[nパネル番号].BackColor, stバー情報[nパネル番号].eバー種別 == Eバー種別.Box ? this.pfBoxName : this.pfMusicName); + if (this.stバー情報[nパネル番号].strサブタイトル != "" && this.ttk選択している曲のサブタイトル == null) + this.ttk選択している曲のサブタイトル = this.ttkサブタイトルテクスチャを生成する(this.stバー情報[nパネル番号].strサブタイトル, this.stバー情報[nパネル番号].ForeColor, this.stバー情報[nパネル番号].BackColor); + + if (this.ttk選択している曲のサブタイトル != null) + tx選択している曲のサブタイトル = ResolveTitleTexture(ttk選択している曲のサブタイトル); + + //サブタイトルがあったら700 + + if (ttk選択している曲の曲名 != null) + { + if (!ctBoxOpen.b終了値に達した) + ResolveTitleTexture(this.ttk選択している曲の曲名).Opacity = (int)(ctBoxOpen.n現在の値 >= 1200 && ctBoxOpen.n現在の値 <= 1620 ? 255 - (ctBoxOpen.n現在の値 - 1200) * 2.55f : + ctBoxOpen.n現在の値 >= 2000 ? (ctBoxOpen.n現在の値 - 2000) * 2.55f : ctBoxOpen.n現在の値 <= 1200 ? 255 : 0); + else + { + if (!TJAPlayer3.stage選曲.act難易度選択画面.bIsDifficltSelect) + ResolveTitleTexture(this.ttk選択している曲の曲名).Opacity = 255; + else if (ctDifficultyIn.n現在の値 >= 1000) + ResolveTitleTexture(this.ttk選択している曲の曲名).Opacity = (int)255.0f - (ctDifficultyIn.n現在の値 - 1000); + } + } + + if (this.ttk選択している曲のサブタイトル != null) + { + if (!ctBoxOpen.b終了値に達した) + tx選択している曲のサブタイトル.Opacity = (int)(ctBoxOpen.n現在の値 >= 1200 && ctBoxOpen.n現在の値 <= 1620 ? 255 - (ctBoxOpen.n現在の値 - 1200) * 2.55f : + ctBoxOpen.n現在の値 >= 2000 ? (ctBoxOpen.n現在の値 - 2000) * 2.55f : ctBoxOpen.n現在の値 <= 1200 ? 255 : 0); + else + { + if (!TJAPlayer3.stage選曲.act難易度選択画面.bIsDifficltSelect) + tx選択している曲のサブタイトル.Opacity = (int)(BarAnimeCount * 4.25f); + else if (ctDifficultyIn.n現在の値 >= 1000) + tx選択している曲のサブタイトル.Opacity = (int)255.0f - (ctDifficultyIn.n現在の値 - 1000); + } + + tx選択している曲のサブタイトル.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 640 + TJAPlayer3.Skin.SongSelect_Title_X, y + 90 - (this.stバー情報[nパネル番号].eバー種別 == Eバー種別.Box ? BarAnimeCount : BarAnimeCount / 1.1f) + TJAPlayer3.Skin.SongSelect_Title_Y); + if (this.ttk選択している曲の曲名 != null) + { + ResolveTitleTexture(this.ttk選択している曲の曲名).t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 640 + TJAPlayer3.Skin.SongSelect_Title_X, y + 61 - (r現在選択中の曲.eノード種別 != C曲リストノード.Eノード種別.BACKBOX ? (this.stバー情報[nパネル番号].eバー種別 == Eバー種別.Box ? BarAnimeCount : BarAnimeCount / 1.1f) : 0) + TJAPlayer3.Skin.SongSelect_Title_Y); + } + } + else + { + if (this.ttk選択している曲の曲名 != null) + { + ResolveTitleTexture(this.ttk選択している曲の曲名).t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 640 + TJAPlayer3.Skin.SongSelect_Title_X, y + 61 - (r現在選択中の曲.eノード種別 != C曲リストノード.Eノード種別.BACKBOX ? (this.stバー情報[nパネル番号].eバー種別 == Eバー種別.Box ? BarAnimeCount : BarAnimeCount / 1.1f) : 0) + TJAPlayer3.Skin.SongSelect_Title_Y); + } + } + //----------------- + #endregion + } + } + //----------------- + + return 0; + } + + + // その他 + + #region [ private ] + //----------------- + private enum Eバー種別 { Score, Box, Other, BackBox } + + public int[] ScoreRankCount = new int[7]; + public int[] CrownCount = new int[3]; + + private struct STバー + { + public CTexture Score; + public CTexture Box; + public CTexture Other; + public CTexture this[ int index ] + { + get + { + switch( index ) + { + case 0: + return this.Score; + + case 1: + return this.Box; + + case 2: + return this.Other; + } + throw new IndexOutOfRangeException(); + } + set + { + switch( index ) + { + case 0: + this.Score = value; + return; + + case 1: + this.Box = value; + return; + + case 2: + this.Other = value; + return; + } + throw new IndexOutOfRangeException(); + } + } + } + + private struct STバー情報 + { + public CActSelect曲リスト.Eバー種別 eバー種別; + public string strタイトル文字列; + public CTexture txタイトル名; + public STDGBVALUE nスキル値; + public Color col文字色; + public Color ForeColor; + public Color BackColor; + public int[] ar難易度; + public bool[] b分岐; + public string strジャンル; + public string strサブタイトル; + public TitleTextureKey ttkタイトル; + public int[] nクリア; + public int[] nスコアランク; + } + + private bool bFirstCrownLoad; + + public CCounter ctBarFlash; + public CCounter ctDifficultyIn; + + private CCounter ctScoreFrameAnime; + + public CCounter ctBarOpen; + public CCounter ctBoxOpen; + public bool bBoxOpen; + public bool bBoxClose; + + public bool b選択曲が変更された = true; + private bool b登場アニメ全部完了; + private CCounter[] ct登場アニメ用 = new CCounter[ 13 ]; + private CCounter ct三角矢印アニメ; + private CPrivateFastFont pfMusicName; + private CPrivateFastFont pfSubtitle; + private CPrivateFastFont pfBoxName; + + private string strBoxText; + private CPrivateFastFont pfBoxText; + private CTexture[] txBoxText = new CTexture[3]; + + private readonly Dictionary _titledictionary + = new Dictionary(); + + private Font ft曲リスト用フォント; + private long nスクロールタイマ; + private int n現在のスクロールカウンタ; + private int n現在の選択行; + private int n目標のスクロールカウンタ; + private readonly Point[] ptバーの座標 = new Point[] { + new Point(214, -127),new Point(239, -36), new Point(263, 55), new Point(291, 145), + new Point(324, 314), + new Point(358, 485), new Point(386, 574), new Point(411, 665), new Point(436, 756) }; + + private STバー情報[] stバー情報 = new STバー情報[ 9 ]; + private CTexture txSongNotFound, txEnumeratingSongs; + + private TitleTextureKey ttk選択している曲の曲名; + private TitleTextureKey ttk選択している曲のサブタイトル; + + private CTexture[] tx曲バー_難易度 = new CTexture[ 5 ]; + + private int nCurrentPosition = 0; + private int nNumOfItems = 0; + + private Eバー種別 e曲のバー種別を返す( C曲リストノード song ) + { + if( song != null ) + { + switch( song.eノード種別 ) + { + case C曲リストノード.Eノード種別.SCORE: + case C曲リストノード.Eノード種別.SCORE_MIDI: + return Eバー種別.Score; + + case C曲リストノード.Eノード種別.BOX: + return Eバー種別.Box; + + case C曲リストノード.Eノード種別.BACKBOX: + return Eバー種別.BackBox; + } + } + return Eバー種別.Other; + } + public C曲リストノード r次の曲( C曲リストノード song ) + { + if( song == null ) + return null; + + List list = TJAPlayer3.Songs管理.list曲ルート; + + int index = list.IndexOf( song ); + + if( index < 0 ) + return null; + + if( index == ( list.Count - 1 ) ) + return list[ 0 ]; + + return list[ index + 1 ]; + } + public C曲リストノード r前の曲( C曲リストノード song ) + { + if( song == null ) + return null; + + List list = TJAPlayer3.Songs管理.list曲ルート; + + int index = list.IndexOf( song ); + + if( index < 0 ) + return null; + + if( index == 0 ) + return list[ list.Count - 1 ]; + + return list[ index - 1 ]; + } + private void tスキル値の描画( int x, int y, int nスキル値 ) + { + if( nスキル値 <= 0 || nスキル値 > 100 ) // スキル値 0 = 未プレイ なので表示しない。 + return; + + int color = ( nスキル値 == 100 ) ? 3 : ( nスキル値 / 25 ); + + int n百の位 = nスキル値 / 100; + int n十の位 = ( nスキル値 % 100 ) / 10; + int n一の位 = ( nスキル値 % 100 ) % 10; + + + // 百の位の描画。 + + if( n百の位 > 0 ) + this.tスキル値の描画_1桁描画( x, y, n百の位, color ); + + + // 十の位の描画。 + + if( n百の位 != 0 || n十の位 != 0 ) + this.tスキル値の描画_1桁描画( x + 7, y, n十の位, color ); + + + // 一の位の描画。 + + this.tスキル値の描画_1桁描画( x + 14, y, n一の位, color ); + } + private void tスキル値の描画_1桁描画( int x, int y, int n数値, int color ) + { + //int dx = ( n数値 % 5 ) * 9; + //int dy = ( n数値 / 5 ) * 12; + + //switch( color ) + //{ + // case 0: + // if( this.txスキル数字 != null ) + // this.txスキル数字.t2D描画( CDTXMania.app.Device, x, y, new Rectangle( 45 + dx, 24 + dy, 9, 12 ) ); + // break; + + // case 1: + // if( this.txスキル数字 != null ) + // this.txスキル数字.t2D描画( CDTXMania.app.Device, x, y, new Rectangle( 45 + dx, dy, 9, 12 ) ); + // break; + + // case 2: + // if( this.txスキル数字 != null ) + // this.txスキル数字.t2D描画( CDTXMania.app.Device, x, y, new Rectangle( dx, 24 + dy, 9, 12 ) ); + // break; + + // case 3: + // if( this.txスキル数字 != null ) + // this.txスキル数字.t2D描画( CDTXMania.app.Device, x, y, new Rectangle( dx, dy, 9, 12 ) ); + // break; + //} + } + private void tバーの初期化() + { + C曲リストノード song = this.r現在選択中の曲; + + if( song == null ) + return; + + for( int i = 0; i < 4; i++ ) + song = this.r前の曲( song ); + + for( int i = 0; i < 9; i++ ) + { + this.stバー情報[ i ].strタイトル文字列 = song.strタイトル; + this.stバー情報[ i ].strジャンル = song.strジャンル; + this.stバー情報[ i ].col文字色 = song.col文字色; + this.stバー情報[i].ForeColor = song.ForeColor; + this.stバー情報[i].BackColor = song.BackColor; + this.stバー情報[ i ].eバー種別 = this.e曲のバー種別を返す( song ); + this.stバー情報[ i ].strサブタイトル = song.strサブタイトル; + this.stバー情報[ i ].ar難易度 = song.nLevel; + + for( int f = 0; f < (int)Difficulty.Total; f++ ) + { + if( song.arスコア[ f ] != null ) + this.stバー情報[ i ].b分岐 = song.arスコア[ f ].譜面情報.b譜面分岐; + } + + + if (stバー情報[i].nクリア == null) + this.stバー情報[i].nクリア = new int[5]; + if (stバー情報[i].nスコアランク == null) + this.stバー情報[i].nスコアランク = new int[5]; + + if(this.stバー情報[i].eバー種別 == Eバー種別.Score) + { + if (song.arスコア[3] != null) + { + this.stバー情報[i].nクリア = song.arスコア[3].譜面情報.nクリア; + this.stバー情報[i].nスコアランク = song.arスコア[3].譜面情報.nスコアランク; + } + } + + for ( int j = 0; j < 3; j++ ) + this.stバー情報[ i ].nスキル値[ j ] = (int) song.arスコア[ this.n現在のアンカ難易度レベルに最も近い難易度レベルを返す( song ) ].譜面情報.最大スキル[ j ]; + + this.stバー情報[ i ].ttkタイトル = this.ttk曲名テクスチャを生成する( this.stバー情報[ i ].strタイトル文字列, this.stバー情報[i].ForeColor, this.stバー情報[i].BackColor, stバー情報[i].eバー種別 == Eバー種別.Box ? this.pfBoxName : this.pfMusicName); + + song = this.r次の曲( song ); + } + + this.n現在の選択行 = 4; + } + + private void tジャンル別選択されていない曲バーの描画(int x, int y, string strジャンル, Eバー種別 eバー種別, int[] クリア, int[] スコアランク) + { + if (x >= SampleFramework.GameWindowSize.Width || y >= SampleFramework.GameWindowSize.Height) + return; + + var rc = new Rectangle(0, 48, 128, 48); + + for (int i = 0; i < TJAPlayer3.Skin.SongSelect_Bar_Genre_Count; i++) + { + if (TJAPlayer3.stage選曲.act難易度選択画面.bIsDifficltSelect) + { + if (ctDifficultyIn.n現在の値 >= 1000) + { + if (ctDifficultyIn.n現在の値 <= 1255) + { + TJAPlayer3.Tx.SongSelect_Crown.Opacity = (int)255.0f - (ctDifficultyIn.n現在の値 - 1000); + TJAPlayer3.Tx.SongSelect_ScoreRank.Opacity = (int)255.0f - (ctDifficultyIn.n現在の値 - 1000); + TJAPlayer3.Tx.SongSelect_Bar_Genre[i].Opacity = (int)255.0f - (ctDifficultyIn.n現在の値 - 1000); + TJAPlayer3.Tx.SongSelect_Bar_Genre_Back.Opacity = (int)255.0f - (ctDifficultyIn.n現在の値 - 1000); + TJAPlayer3.Tx.SongSelect_Bar_Genre_Overlay.Opacity = (int)255.0f - (ctDifficultyIn.n現在の値 - 1000); + } + else + { + TJAPlayer3.Tx.SongSelect_ScoreRank.Opacity = 0; + } + } + } + else + { + TJAPlayer3.Tx.SongSelect_Crown.Opacity = (int)255.0f; + TJAPlayer3.Tx.SongSelect_ScoreRank.Opacity = (int)255.0f; + TJAPlayer3.Tx.SongSelect_Bar_Genre[i].Opacity = (int)255.0f; + TJAPlayer3.Tx.SongSelect_Bar_Genre_Back.Opacity = (int)255.0f; + TJAPlayer3.Tx.SongSelect_Bar_Genre_Overlay.Opacity = (int)255.0f; + } + } + + if (eバー種別 != Eバー種別.BackBox) + { + if (this.nStrジャンルtoNum(strジャンル) == 0) + { + if (TJAPlayer3.Tx.SongSelect_Bar_Genre[0] != null) + TJAPlayer3.Tx.SongSelect_Bar_Genre[0].t2D描画(TJAPlayer3.app.Device, x, y); + } + else + { + for (int i = 0; i < TJAPlayer3.Skin.SongSelect_GenreName.Length; i++) + { + if (TJAPlayer3.Skin.SongSelect_GenreName[i] == strジャンル) + { + if (i + 1 >= TJAPlayer3.Skin.SongSelect_Bar_Genre_Count) + { + if (TJAPlayer3.Tx.SongSelect_Bar_Genre[0] != null) + TJAPlayer3.Tx.SongSelect_Bar_Genre[0].t2D描画(TJAPlayer3.app.Device, x, y); + break; + } + else + { + if (TJAPlayer3.Tx.SongSelect_Bar_Genre[i + 1] != null) + TJAPlayer3.Tx.SongSelect_Bar_Genre[i + 1].t2D描画(TJAPlayer3.app.Device, x, y); + break; + } + } + } + } + + if (TJAPlayer3.Tx.SongSelect_Bar_Genre_Overlay != null) + TJAPlayer3.Tx.SongSelect_Bar_Genre_Overlay.t2D描画(TJAPlayer3.app.Device, x, y); + } + else + { + TJAPlayer3.Tx.SongSelect_Bar_Genre_Back.t2D描画(TJAPlayer3.app.Device, x, y); + } + + if (eバー種別 == Eバー種別.Score) + { + TJAPlayer3.Tx.SongSelect_Crown.vc拡大縮小倍率.X = 0.8f; + TJAPlayer3.Tx.SongSelect_Crown.vc拡大縮小倍率.Y = 0.8f; + TJAPlayer3.Tx.SongSelect_ScoreRank.vc拡大縮小倍率.X = 0.8f; + TJAPlayer3.Tx.SongSelect_ScoreRank.vc拡大縮小倍率.Y = 0.8f; + + if (クリア[3] != 0 && クリア[4] == 0) + TJAPlayer3.Tx.SongSelect_Crown.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, x + 30, y + 30, new RectangleF(9 * 43.2f + (クリア[3] - 1) * 43.2f, 0, 43.2f, 39)); + if (クリア[4] != 0) + TJAPlayer3.Tx.SongSelect_Crown.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, x + 30, y + 30, new RectangleF(12 * 43.2f + (クリア[4] - 1) * 43.2f, 0, 43.2f, 39)); + + if (スコアランク[3] != 0 && スコアランク[4] == 0) + TJAPlayer3.Tx.SongSelect_ScoreRank.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, x + 30, y + 60, new RectangleF(0, (スコアランク[3] - 1) * 42.71f, 50, 42.71f)); + if (スコアランク[4] != 0) + TJAPlayer3.Tx.SongSelect_ScoreRank.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, x + 30, y + 60, new RectangleF(0, (スコアランク[4] - 1) * 42.71f, 50, 42.71f)); + } + } + + public int nStrジャンルtoNum(string strジャンル) + { + int nGenre = 8; + for (int i = 0; i < TJAPlayer3.Skin.SongSelect_GenreName.Length; i++) + { + if (TJAPlayer3.Skin.SongSelect_GenreName[i] == strジャンル) + { + if (i + 1 >= TJAPlayer3.Skin.SongSelect_Bar_Genre_Count) + { + nGenre = 0; + } + else + { + nGenre = i + 1; + } + break; + } + else + { + nGenre = 0; + } + } + return nGenre; + } + + public int nStrジャンルtoNumBox(string strジャンル) + { + int nGenre = 8; + for (int i = 0; i < TJAPlayer3.Skin.SongSelect_GenreName.Length; i++) + { + if (TJAPlayer3.Skin.SongSelect_GenreName[i] == strジャンル) + { + if (i + 1 >= TJAPlayer3.Skin.SongSelect_Box_Chara_Count) + { + nGenre = 0; + } + else + { + nGenre = i + 1; + } + break; + } + else + { + nGenre = 0; + } + } + return nGenre; + } + + private TitleTextureKey ttk曲名テクスチャを生成する( string str文字, Color forecolor, Color backcolor, CPrivateFastFont pf) + { + return new TitleTextureKey(str文字, pf, forecolor, backcolor, 550); + } + + private TitleTextureKey ttkサブタイトルテクスチャを生成する( string str文字, Color forecolor, Color backcolor) + { + return new TitleTextureKey(str文字, pfSubtitle, forecolor, backcolor, 510); + } + + public CTexture ResolveTitleTexture(TitleTextureKey titleTextureKey) + { + if (!_titledictionary.TryGetValue(titleTextureKey, out var texture)) + { + texture = GenerateTitleTexture(titleTextureKey); + _titledictionary.Add(titleTextureKey, texture); + } + + return texture; + } + + private static CTexture GenerateTitleTexture(TitleTextureKey titleTextureKey) + { + using (var bmp = new Bitmap(titleTextureKey.cPrivateFastFont.DrawPrivateFont( + titleTextureKey.str文字, titleTextureKey.forecolor, titleTextureKey.backcolor))) + { + CTexture tx文字テクスチャ = TJAPlayer3.tテクスチャの生成(bmp, false); + if (tx文字テクスチャ.szテクスチャサイズ.Width > titleTextureKey.maxWidth) + { + tx文字テクスチャ.vc拡大縮小倍率.X = (float) (((double) titleTextureKey.maxWidth) / tx文字テクスチャ.szテクスチャサイズ.Width); + tx文字テクスチャ.vc拡大縮小倍率.Y = (float) (((double) titleTextureKey.maxWidth) / tx文字テクスチャ.szテクスチャサイズ.Width); + } + + return tx文字テクスチャ; + } + } + + private void ClearTitleTextureCache() + { + foreach (var titleTexture in _titledictionary.Values) + { + titleTexture.Dispose(); + } + + _titledictionary.Clear(); + } + + public sealed class TitleTextureKey + { + public readonly string str文字; + public readonly CPrivateFastFont cPrivateFastFont; + public readonly Color forecolor; + public readonly Color backcolor; + public readonly int maxWidth; + + public TitleTextureKey(string str文字, CPrivateFastFont cPrivateFastFont, Color forecolor, Color backcolor, int maxHeight) + { + this.str文字 = str文字; + this.cPrivateFastFont = cPrivateFastFont; + this.forecolor = forecolor; + this.backcolor = backcolor; + this.maxWidth = maxHeight; + } + + private bool Equals(TitleTextureKey other) + { + return string.Equals(str文字, other.str文字) && + cPrivateFastFont.Equals(other.cPrivateFastFont) && + forecolor.Equals(other.forecolor) && + backcolor.Equals(other.backcolor) && + maxWidth == other.maxWidth; + } + + public override bool Equals(object obj) + { + if (ReferenceEquals(null, obj)) return false; + if (ReferenceEquals(this, obj)) return true; + return obj is TitleTextureKey other && Equals(other); + } + + public override int GetHashCode() + { + unchecked + { + var hashCode = str文字.GetHashCode(); + hashCode = (hashCode * 397) ^ cPrivateFastFont.GetHashCode(); + hashCode = (hashCode * 397) ^ forecolor.GetHashCode(); + hashCode = (hashCode * 397) ^ backcolor.GetHashCode(); + hashCode = (hashCode * 397) ^ maxWidth; + return hashCode; + } + } + + public static bool operator ==(TitleTextureKey left, TitleTextureKey right) + { + return Equals(left, right); + } + + public static bool operator !=(TitleTextureKey left, TitleTextureKey right) + { + return !Equals(left, right); + } + } + + private void tアイテム数の描画() + { + string s = nCurrentPosition.ToString() + "/" + nNumOfItems.ToString(); + int x = 639 - 8 - 12; + int y = 362; + + for ( int p = s.Length - 1; p >= 0; p-- ) + { + tアイテム数の描画_1桁描画( x, y, s[ p ] ); + x -= 8; + } + } + private void tアイテム数の描画_1桁描画( int x, int y, char s数値 ) + { + int dx, dy; + if ( s数値 == '/' ) + { + dx = 48; + dy = 0; + } + else + { + int n = (int) s数値 - (int) '0'; + dx = ( n % 6 ) * 8; + dy = ( n / 6 ) * 12; + } + //if ( this.txアイテム数数字 != null ) + //{ + // this.txアイテム数数字.t2D描画( CDTXMania.app.Device, x, y, new Rectangle( dx, dy, 8, 12 ) ); + //} + } + + + //数字フォント + private CTexture txレベル数字フォント; + [StructLayout( LayoutKind.Sequential )] + private struct STレベル数字 + { + public char ch; + public int ptX; + } + private STレベル数字[] st小文字位置 = new STレベル数字[ 10 ]; + private void t小文字表示(int x, int y, string str) + { + foreach (char ch in str) + { + for (int i = 0; i < this.st小文字位置.Length; i++) + { + if (this.st小文字位置[i].ch == ch) + { + Rectangle rectangle = new Rectangle(this.st小文字位置[i].ptX, 0, 21, 25); + if (TJAPlayer3.Tx.SongSelect_Level_Number != null) + { + if (str.Length > 1) TJAPlayer3.Tx.SongSelect_Level_Number.vc拡大縮小倍率.X = 0.8f; + else TJAPlayer3.Tx.SongSelect_Level_Number.vc拡大縮小倍率.X = 1.0f; + TJAPlayer3.Tx.SongSelect_Level_Number.t2D描画(TJAPlayer3.app.Device, x, y, rectangle); + } + break; + } + } + x += 11; + } + } + //----------------- + #endregion + } +} diff --git a/TJAPlayer3/Stages/05.SongSelect/CActSelect演奏履歴パネル.cs b/TJAPlayer3/Stages/05.SongSelect/CActSelect演奏履歴パネル.cs new file mode 100644 index 00000000..a7afaa13 --- /dev/null +++ b/TJAPlayer3/Stages/05.SongSelect/CActSelect演奏履歴パネル.cs @@ -0,0 +1,225 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Diagnostics; +using System.Drawing; +using System.Runtime.InteropServices; +using SlimDX; +using FDK; + +namespace TJAPlayer3 +{ + internal class CActSelect演奏履歴パネル : CActivity + { + // メソッド + + public CActSelect演奏履歴パネル() + { + ST文字位置[] st文字位置Array = new ST文字位置[10]; + + ST文字位置 st文字位置 = new ST文字位置(); + st文字位置.ch = '0'; + st文字位置.pt = new Point(0, 0); + st文字位置Array[0] = st文字位置; + ST文字位置 st文字位置2 = new ST文字位置(); + st文字位置2.ch = '1'; + st文字位置2.pt = new Point(26, 0); + st文字位置Array[1] = st文字位置2; + ST文字位置 st文字位置3 = new ST文字位置(); + st文字位置3.ch = '2'; + st文字位置3.pt = new Point(52, 0); + st文字位置Array[2] = st文字位置3; + ST文字位置 st文字位置4 = new ST文字位置(); + st文字位置4.ch = '3'; + st文字位置4.pt = new Point(78, 0); + st文字位置Array[3] = st文字位置4; + ST文字位置 st文字位置5 = new ST文字位置(); + st文字位置5.ch = '4'; + st文字位置5.pt = new Point(104, 0); + st文字位置Array[4] = st文字位置5; + ST文字位置 st文字位置6 = new ST文字位置(); + st文字位置6.ch = '5'; + st文字位置6.pt = new Point(130, 0); + st文字位置Array[5] = st文字位置6; + ST文字位置 st文字位置7 = new ST文字位置(); + st文字位置7.ch = '6'; + st文字位置7.pt = new Point(156, 0); + st文字位置Array[6] = st文字位置7; + ST文字位置 st文字位置8 = new ST文字位置(); + st文字位置8.ch = '7'; + st文字位置8.pt = new Point(182, 0); + st文字位置Array[7] = st文字位置8; + ST文字位置 st文字位置9 = new ST文字位置(); + st文字位置9.ch = '8'; + st文字位置9.pt = new Point(208, 0); + st文字位置Array[8] = st文字位置9; + ST文字位置 st文字位置10 = new ST文字位置(); + st文字位置10.ch = '9'; + st文字位置10.pt = new Point(234, 0); + st文字位置Array[9] = st文字位置10; + this.st小文字位置 = st文字位置Array; + + base.b活性化してない = true; + } + public void t選択曲が変更された() + { + Cスコア cスコア = TJAPlayer3.stage選曲.r現在選択中のスコア; + if( ( cスコア != null ) && !TJAPlayer3.stage選曲.bスクロール中 ) + { + try + { + Bitmap image = new Bitmap( 800, 240 ); + Graphics graphics = Graphics.FromImage( image ); + graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias; + for ( int i = 0; i < (int)Difficulty.Total; i++ ) + { + if( ( cスコア.譜面情報.演奏履歴[ i ] != null ) && ( cスコア.譜面情報.演奏履歴[ i ].Length > 0 ) ) + { + graphics.DrawString( cスコア.譜面情報.演奏履歴[ i ], this.ft表示用フォント, Brushes.Yellow, (float) 0f, (float) ( i * 36f ) ); + } + } + graphics.Dispose(); + if( this.tx文字列パネル != null ) + { + this.tx文字列パネル.Dispose(); + } + this.tx文字列パネル = new CTexture( TJAPlayer3.app.Device, image, TJAPlayer3.TextureFormat ); + this.tx文字列パネル.vc拡大縮小倍率 = new Vector3( 0.5f, 0.5f, 1f ); + image.Dispose(); + } + catch( CTextureCreateFailedException e ) + { + Trace.TraceError( e.ToString() ); + Trace.TraceError( "演奏履歴文字列テクスチャの作成に失敗しました。" ); + this.tx文字列パネル = null; + } + } + } + + + // CActivity 実装 + + public override void On活性化() + { + this.n本体X = 810; + this.n本体Y = 558; + this.ft表示用フォント = new Font( "Arial", 30f, FontStyle.Bold, GraphicsUnit.Pixel ); + base.On活性化(); + } + public override void On非活性化() + { + if( this.ft表示用フォント != null ) + { + this.ft表示用フォント.Dispose(); + this.ft表示用フォント = null; + } + this.ct登場アニメ用 = null; + base.On非活性化(); + } + public override void OnManagedリソースの作成() + { + if( !base.b活性化してない ) + { + //this.txパネル本体 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_play history panel.png" ) ); + //this.txスコアボード[0] = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_scoreboard_0.png" ) ); + //this.txスコアボード[1] = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_scoreboard_1.png" ) ); + //this.txスコアボード[2] = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_scoreboard_2.png" ) ); + //this.txスコアボード[3] = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_scoreboard_3.png" ) ); + //this.tx文字 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_scoreboard_number.png" ) ); + this.t選択曲が変更された(); + base.OnManagedリソースの作成(); + } + } + public override void OnManagedリソースの解放() + { + if( !base.b活性化してない ) + { + //CDTXMania.tテクスチャの解放( ref this.txパネル本体 ); + //CDTXMania.tテクスチャの解放( ref this.tx文字列パネル ); + // CDTXMania.tテクスチャの解放( ref this.txスコアボード[0] ); + // CDTXMania.tテクスチャの解放( ref this.txスコアボード[1] ); + // CDTXMania.tテクスチャの解放( ref this.txスコアボード[2] ); + // CDTXMania.tテクスチャの解放( ref this.txスコアボード[3] ); + // CDTXMania.tテクスチャの解放( ref this.tx文字 ); + base.OnManagedリソースの解放(); + } + } + public override int On進行描画() + { + if( !base.b活性化してない ) + { + if( base.b初めての進行描画 ) + { + this.ct登場アニメ用 = new CCounter( 0, 3000, 1, TJAPlayer3.Timer ); + base.b初めての進行描画 = false; + } + this.ct登場アニメ用.t進行(); + int x = 980; + int y = 350; + if (TJAPlayer3.stage選曲.r現在選択中のスコア != null && this.ct登場アニメ用.n現在の値 >= 2000 && TJAPlayer3.stage選曲.r現在選択中の曲.eノード種別 == C曲リストノード.Eノード種別.SCORE) + { + //CDTXMania.Tx.SongSelect_ScoreWindow_Text.n透明度 = ct登場アニメ用.n現在の値 - 1745; + if (TJAPlayer3.Tx.SongSelect_ScoreWindow[TJAPlayer3.stage選曲.n現在選択中の曲の難易度] != null) + { + //CDTXMania.Tx.SongSelect_ScoreWindow[CDTXMania.stage選曲.n現在選択中の曲の難易度].n透明度 = ct登場アニメ用.n現在の値 - 1745; + TJAPlayer3.Tx.SongSelect_ScoreWindow[TJAPlayer3.stage選曲.n現在選択中の曲の難易度].t2D描画(TJAPlayer3.app.Device, x, y); + this.t小文字表示(x + 56, y + 160, string.Format("{0,7:######0}", TJAPlayer3.stage選曲.r現在選択中のスコア.譜面情報.nハイスコア[TJAPlayer3.stage選曲.n現在選択中の曲の難易度].ToString())); + TJAPlayer3.Tx.SongSelect_ScoreWindow_Text.t2D描画(TJAPlayer3.app.Device, x + 236, y + 166, new Rectangle(0, 36, 32, 30)); + } + } + } + return 0; + } + + + // その他 + + #region [ private ] + //----------------- + private CCounter ct登場アニメ用; + private CCounter ctスコアボード登場アニメ; + private Font ft表示用フォント; + private int n本体X; + private int n本体Y; + //private CTexture txパネル本体; + private CTexture tx文字列パネル; + // private CTexture[] txスコアボード = new CTexture[4]; + // private CTexture tx文字; + //----------------- + + [StructLayout(LayoutKind.Sequential)] + private struct ST文字位置 + { + public char ch; + public Point pt; + } + private readonly ST文字位置[] st小文字位置; + private void t小文字表示(int x, int y, string str) + { + foreach (char ch in str) + { + for (int i = 0; i < this.st小文字位置.Length; i++) + { + if (this.st小文字位置[i].ch == ch) + { + Rectangle rectangle = new Rectangle( this.st小文字位置[i].pt.X, this.st小文字位置[i].pt.Y, 26, 36 ); + if (TJAPlayer3.Tx.SongSelect_ScoreWindow_Text != null) + { + TJAPlayer3.Tx.SongSelect_ScoreWindow_Text.t2D描画(TJAPlayer3.app.Device, x, y, rectangle); + } + break; + } + } + x += 26; + } + } + + public void tSongChange() + { + this.ct登場アニメ用 = new CCounter( 0, 3000, 1, TJAPlayer3.Timer ); + } + + + #endregion + } +} diff --git a/TJAPlayer3/Stages/05.SongSelect/CActSelect難易度選択画面.cs b/TJAPlayer3/Stages/05.SongSelect/CActSelect難易度選択画面.cs new file mode 100644 index 00000000..86f51f82 --- /dev/null +++ b/TJAPlayer3/Stages/05.SongSelect/CActSelect難易度選択画面.cs @@ -0,0 +1,490 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Globalization; +using System.Runtime.InteropServices; +using System.Drawing; +using System.Drawing.Imaging; +using System.Diagnostics; +using System.Drawing.Text; + +using SlimDX; +using FDK; + +namespace TJAPlayer3 +{ + /// + /// 難易度選択画面。 + /// この難易度選択画面はAC7~AC14のような方式であり、WiiまたはAC15移行の方式とは異なる。 + /// + internal class CActSelect難易度選択画面 : CActivity + { + // プロパティ + + public bool bIsDifficltSelect; + + // コンストラクタ + + public CActSelect難易度選択画面() + { + for(int i = 0; i < 10; i++) + { + st小文字位置[i].ptX = i * 18; + st小文字位置[i].ch = i.ToString().ToCharArray()[0]; + } + base.b活性化してない = true; + } + + public void t次に移動(int player) + { + if (n現在の選択行[player] < 5) + { + ctBarAnime[player].t開始(0, 180, 1, TJAPlayer3.Timer); + if (!b裏譜面) + { + n現在の選択行[player]++; + } + else + { + if (n現在の選択行[player] == 4) + { + n現在の選択行[player] += 2; + } + else + { + n現在の選択行[player]++; + } + } + } + else if (n現在の選択行[player] >= 5) + { + if (nスイッチカウント < 0 && TJAPlayer3.stage選曲.r現在選択中のスコア.譜面情報.nレベル[4] >= 0) + { + nスイッチカウント++; + } + else if (nスイッチカウント == 0 && TJAPlayer3.stage選曲.r現在選択中のスコア.譜面情報.nレベル[4] >= 0) + { + for(int i = 0; i < 2; i++) + { + if(!bSelect[i]) + { + if (n現在の選択行[i] == 5) + { + n現在の選択行[i] = 6; + } + else if (n現在の選択行[i] == 6) + { + n現在の選択行[i] = 5; + } + } + } + + b裏譜面 = !b裏譜面; + nスイッチカウント = 0; + } + } + } + + public void t前に移動(int player) + { + if(n現在の選択行[player] - 1 >= 0) + { + ctBarAnime[player].t開始(0, 180, 1, TJAPlayer3.Timer); + nスイッチカウント = 0; + if(n現在の選択行[player] == 6) + n現在の選択行[player] -= 2; + else + n現在の選択行[player]--; + } + } + + public void t選択画面初期化() + { + if (!string.IsNullOrEmpty(TJAPlayer3.ConfigIni.FontName)) + { + this.pfTitle = new CPrivateFastFont(new FontFamily(TJAPlayer3.ConfigIni.FontName), 28); + this.pfSubTitle = new CPrivateFastFont(new FontFamily(TJAPlayer3.ConfigIni.FontName), 16); + } + else + { + this.pfTitle = new CPrivateFastFont(new FontFamily("MS UI Gothic"), 28); + this.pfSubTitle = new CPrivateFastFont(new FontFamily("MS UI Gothic"), 16); + } + + this.txTitle = TJAPlayer3.tテクスチャの生成(pfTitle.DrawPrivateFont(TJAPlayer3.stage選曲.r現在選択中の曲.strタイトル, Color.White, Color.Black )); + this.txSubTitle = TJAPlayer3.tテクスチャの生成(pfSubTitle.DrawPrivateFont(TJAPlayer3.stage選曲.r現在選択中の曲.strサブタイトル, Color.White, Color.Black)); + + this.n現在の選択行 = new int[2]; + this.bSelect[0] = false; + this.bSelect[1] = false; + this.b裏譜面 = false; + + this.b初めての進行描画 = true; + } + + // CActivity 実装 + + public override void On活性化() + { + if( this.b活性化してる ) + return; + ctBarAnime = new CCounter[2]; + ctBarAnime[0] = new CCounter(); + ctBarAnime[1] = new CCounter(); + + base.On活性化(); + } + public override void On非活性化() + { + if( this.b活性化してない ) + return; + + ctBarAnime = null; + + base.On非活性化(); + } + public override void OnManagedリソースの作成() + { + if( this.b活性化してない ) + return; + + // this.soundSelectAnnounce = TJAPlayer3.Sound管理.tサウンドを生成する( CSkin.Path( @"Sounds\DiffSelect.ogg" ), ESoundGroup.SoundEffect ); + + base.OnManagedリソースの作成(); + } + public override void OnManagedリソースの解放() + { + if( this.b活性化してない ) + return; + + // TJAPlayer3.t安全にDisposeする( ref this.soundSelectAnnounce ); + + base.OnManagedリソースの解放(); + } + public override int On進行描画() + { + if (this.b活性化してない) + return 0; + + #region [ 初めての進行描画 ] + //----------------- + if (this.b初めての進行描画) + { + ctBarAnimeIn = new CCounter(0, 170, 4, TJAPlayer3.Timer); + // this.soundSelectAnnounce?.tサウンドを再生する(); + TJAPlayer3.Skin.soundSelectAnnounce.t再生する(); + base.b初めての進行描画 = false; + } + //----------------- + #endregion + + ctBarAnimeIn.t進行(); + ctBarAnime[0].t進行(); + ctBarAnime[1].t進行(); + + #region [ キー入力 ] + + if (this.ctBarAnimeIn.b終了値に達した) + { + if (!bSelect[0] && !bOption[0]) + { + if (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RBlue) || TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.RightArrow)) + { + TJAPlayer3.Skin.sound変更音.t再生する(); + this.t次に移動(0); + } + else if (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LBlue) || TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.LeftArrow)) + { + TJAPlayer3.Skin.sound変更音.t再生する(); + this.t前に移動(0); + } + if (TJAPlayer3.Pad.b押されたDGB(Eパッド.Decide) || TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LRed) || TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RRed) || + (TJAPlayer3.ConfigIni.bEnterがキー割り当てのどこにも使用されていない && TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.Return))) + { + if (n現在の選択行[0] == 0) + { + TJAPlayer3.Skin.sound決定音.t再生する(); + TJAPlayer3.stage選曲.act曲リスト.ctBarOpen.t開始(100, 260, 2, TJAPlayer3.Timer); + this.bIsDifficltSelect = false; + } + else if (n現在の選択行[0] == 1) + { + TJAPlayer3.Skin.sound決定音.t再生する(); + bOption[0] = true; + } + else + { + if (TJAPlayer3.stage選曲.r現在選択中のスコア.譜面情報.nレベル[n現在の選択行[0] - 2] > 0) + { + TJAPlayer3.stage選曲.ctDonchan_Jump[0].t開始(0, TJAPlayer3.Tx.SongSelect_Donchan_Jump.Length - 1, 1000 / 45, TJAPlayer3.Timer); + this.bSelect[0] = true; + TJAPlayer3.Skin.sound曲決定音.t再生する(); + + if(TJAPlayer3.ConfigIni.nPlayerCount == 2) + { + if (bSelect[1]) + { + TJAPlayer3.stage選曲.t曲を選択する(n現在の選択行[0] - 2, 0); + TJAPlayer3.stage選曲.t曲を選択する(n現在の選択行[1] - 2, 1); + } + } + else + { + TJAPlayer3.stage選曲.t曲を選択する(n現在の選択行[0] - 2, 0); + } + } + } + } + } + + if (!bSelect[1] && !bOption[1]) + { + if (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RBlue2P)) + { + TJAPlayer3.Skin.sound変更音.t再生する(); + this.t次に移動(1); + } + else if (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LBlue2P)) + { + TJAPlayer3.Skin.sound変更音.t再生する(); + this.t前に移動(1); + } + if (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LRed2P) || TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RRed2P)) + { + if (n現在の選択行[1] == 0) + { + TJAPlayer3.Skin.sound決定音.t再生する(); + TJAPlayer3.stage選曲.act曲リスト.ctBarOpen.t開始(100, 260, 2, TJAPlayer3.Timer); + this.bIsDifficltSelect = false; + } + else if (n現在の選択行[1] == 1) + { + TJAPlayer3.Skin.sound決定音.t再生する(); + bOption[1] = true; + } + else + { + if (TJAPlayer3.stage選曲.r現在選択中のスコア.譜面情報.nレベル[n現在の選択行[1] - 2] > 0) + { + TJAPlayer3.stage選曲.ctDonchan_Jump[1].t開始(0, TJAPlayer3.Tx.SongSelect_Donchan_Jump.Length - 1, 1000 / 45, TJAPlayer3.Timer); + this.bSelect[1] = true; + TJAPlayer3.Skin.sound曲決定音.t再生する(); + + if (bSelect[0]) + { + TJAPlayer3.stage選曲.t曲を選択する(n現在の選択行[0] - 2, 0); + TJAPlayer3.stage選曲.t曲を選択する(n現在の選択行[1] - 2, 1); + } + } + } + } + } + } + + #endregion + + #region [ 画像描画 ] + + TJAPlayer3.Tx.Difficulty_Back[nStrジャンルtoNum(TJAPlayer3.stage選曲.r現在選択中の曲.strジャンル)].Opacity = + (TJAPlayer3.stage選曲.act曲リスト.ctDifficultyIn.n現在の値 - 1255); + TJAPlayer3.Tx.Difficulty_Bar.Opacity = (TJAPlayer3.stage選曲.act曲リスト.ctDifficultyIn.n現在の値 - 1255); + TJAPlayer3.Tx.Difficulty_Number.Opacity = (TJAPlayer3.stage選曲.act曲リスト.ctDifficultyIn.n現在の値 - 1255); + TJAPlayer3.Tx.Difficulty_Crown.Opacity = (TJAPlayer3.stage選曲.act曲リスト.ctDifficultyIn.n現在の値 - 1255); + TJAPlayer3.Tx.SongSelect_ScoreRank.vc拡大縮小倍率.X = 0.65f; + TJAPlayer3.Tx.SongSelect_ScoreRank.vc拡大縮小倍率.Y = 0.65f; + TJAPlayer3.Tx.SongSelect_ScoreRank.Opacity = (TJAPlayer3.stage選曲.act曲リスト.ctDifficultyIn.n現在の値 - 1255); + TJAPlayer3.Tx.Difficulty_Star.Opacity = (TJAPlayer3.stage選曲.act曲リスト.ctDifficultyIn.n現在の値 - 1255); + + TJAPlayer3.Tx.Difficulty_Back[nStrジャンルtoNum(TJAPlayer3.stage選曲.r現在選択中の曲.strジャンル)].t2D中心基準描画(TJAPlayer3.app.Device, 640, 290); + + for(int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) + { + TJAPlayer3.Tx.Difficulty_Select_Bar[i].Opacity = (int)(ctBarAnimeIn.n現在の値 >= 80 ? (ctBarAnimeIn.n現在の値 - 80) * 2.84f : 0); + TJAPlayer3.Tx.Difficulty_Select_Bar[i].t2D描画(TJAPlayer3.app.Device, (float)this.BarX[n現在の選択行[i]], 242, new RectangleF(0, (n現在の選択行[i] >= 2 ? 114 : 387), 259, 275 - (n現在の選択行[i] >= 2 ? 0 : 164))); + } + + TJAPlayer3.Tx.Difficulty_Bar.color4 = new Color4(1.0f, 1.0f, 1.0f); + TJAPlayer3.Tx.Difficulty_Bar.t2D描画(TJAPlayer3.app.Device, 255, 270, new RectangleF(0, 0, 171, 236)); //閉じる、演奏オプション + + for (int i = 0; i < 3; i++) + { + if(TJAPlayer3.stage選曲.r現在選択中のスコア.譜面情報.nレベル[i] > 0) + TJAPlayer3.Tx.Difficulty_Bar.color4 = new Color4(1.0f, 1.0f, 1.0f); + else + TJAPlayer3.Tx.Difficulty_Bar.color4 = new Color4(0.5f, 0.5f, 0.5f); + + TJAPlayer3.Tx.Difficulty_Bar.t2D描画(TJAPlayer3.app.Device, 255 + 171 + 143 * i, 270, new RectangleF(171 + 143 * i, 0, 143, 236)); //閉じる~難しいまで + + TJAPlayer3.Tx.Difficulty_Crown.t2D描画(TJAPlayer3.app.Device, 445 + i * 144, 284, new RectangleF(TJAPlayer3.stage選曲.r現在選択中の曲.arスコア[3].譜面情報.nクリア[i] * 24.5f, 0, 24.5f, 26)); + + if(TJAPlayer3.stage選曲.r現在選択中の曲.arスコア[3].譜面情報.nスコアランク[i] != 0) + TJAPlayer3.Tx.SongSelect_ScoreRank.t2D描画(TJAPlayer3.app.Device, 467 + i * 144, 281, new RectangleF(0, (TJAPlayer3.stage選曲.r現在選択中の曲.arスコア[3].譜面情報.nスコアランク[i] - 1) * 42.71f, 50, 42.71f)); + + if (TJAPlayer3.stage選曲.r現在選択中のスコア.譜面情報.nレベル[i] > 0) + t小文字表示(TJAPlayer3.stage選曲.r現在選択中のスコア.譜面情報.nレベル[i].ToString(), 498 + i * 144, 434.5f); + + + + for (int g = 0; g < 10; g++) + { + if (TJAPlayer3.stage選曲.r現在選択中のスコア.譜面情報.nレベル[i] > g + 10) + TJAPlayer3.Tx.Difficulty_Star_Red.t2D描画(TJAPlayer3.app.Device, 444 + i * 143 + g * 10, 459); + else if (TJAPlayer3.stage選曲.r現在選択中のスコア.譜面情報.nレベル[i] > g) + TJAPlayer3.Tx.Difficulty_Star.t2D描画(TJAPlayer3.app.Device, 444 + i * 143 + g * 10, 459); + } + } + + if (b裏譜面) + { + if (TJAPlayer3.stage選曲.r現在選択中のスコア.譜面情報.nレベル[4] > 0) + TJAPlayer3.Tx.Difficulty_Bar.color4 = new Color4(1.0f, 1.0f, 1.0f); + else + TJAPlayer3.Tx.Difficulty_Bar.color4 = new Color4(0.5f, 0.5f, 0.5f); + + TJAPlayer3.Tx.Difficulty_Bar.t2D描画(TJAPlayer3.app.Device, 855, 270, new RectangleF(743, 0, 138, 236)); + + TJAPlayer3.Tx.Difficulty_Crown.t2D描画(TJAPlayer3.app.Device, 445 + 3 * 144, 284, new RectangleF(TJAPlayer3.stage選曲.r現在選択中の曲.arスコア[3].譜面情報.nクリア[4] * 24.5f, 0, 24.5f, 26)); + + if (TJAPlayer3.stage選曲.r現在選択中の曲.arスコア[3].譜面情報.nスコアランク[4] != 0) + TJAPlayer3.Tx.SongSelect_ScoreRank.t2D描画(TJAPlayer3.app.Device, 467 + 3 * 144, 281, new RectangleF(0, (TJAPlayer3.stage選曲.r現在選択中の曲.arスコア[3].譜面情報.nスコアランク[4] - 1) * 42.71f, 50, 42.71f)); + + if (TJAPlayer3.stage選曲.r現在選択中のスコア.譜面情報.nレベル[4] > 0) + t小文字表示(TJAPlayer3.stage選曲.r現在選択中のスコア.譜面情報.nレベル[4].ToString(), 498 + 3 * 143, 434.5f); + + for (int g = 0; g < 10; g++) + { + if (TJAPlayer3.stage選曲.r現在選択中のスコア.譜面情報.nレベル[4] > g + 10) + TJAPlayer3.Tx.Difficulty_Star_Red.t2D描画(TJAPlayer3.app.Device, 444 + 3 * 143 + g * 10, 459); + else if (TJAPlayer3.stage選曲.r現在選択中のスコア.譜面情報.nレベル[4] > g) + TJAPlayer3.Tx.Difficulty_Star.t2D描画(TJAPlayer3.app.Device, 444 + 3 * 143 + g * 10, 459); + } + + } + else + { + if (TJAPlayer3.stage選曲.r現在選択中のスコア.譜面情報.nレベル[3] > 0) + TJAPlayer3.Tx.Difficulty_Bar.color4 = new Color4(1.0f, 1.0f, 1.0f); + else + TJAPlayer3.Tx.Difficulty_Bar.color4 = new Color4(0.5f, 0.5f, 0.5f); + + TJAPlayer3.Tx.Difficulty_Bar.t2D描画(TJAPlayer3.app.Device, 855, 270, new RectangleF(600, 0, 143, 236)); + + TJAPlayer3.Tx.Difficulty_Crown.t2D描画(TJAPlayer3.app.Device, 445 + 3 * 144, 284, new RectangleF(TJAPlayer3.stage選曲.r現在選択中の曲.arスコア[3].譜面情報.nクリア[3] * 24.5f, 0, 24.5f, 26)); + + if (TJAPlayer3.stage選曲.r現在選択中の曲.arスコア[3].譜面情報.nスコアランク[3] != 0) + TJAPlayer3.Tx.SongSelect_ScoreRank.t2D描画(TJAPlayer3.app.Device, 467 + 3 * 144, 281, new RectangleF(0, (TJAPlayer3.stage選曲.r現在選択中の曲.arスコア[3].譜面情報.nスコアランク[3] - 1) * 42.71f, 50, 42.71f)); + + if (TJAPlayer3.stage選曲.r現在選択中のスコア.譜面情報.nレベル[3] > 0) + t小文字表示(TJAPlayer3.stage選曲.r現在選択中のスコア.譜面情報.nレベル[3].ToString(), 498 + 3 * 143, 434.5f); + + for (int g = 0; g < 10; g++) + { + if (TJAPlayer3.stage選曲.r現在選択中のスコア.譜面情報.nレベル[3] > g + 10) + TJAPlayer3.Tx.Difficulty_Star_Red.t2D描画(TJAPlayer3.app.Device, 444 + 3 * 143 + g * 10, 459); + else if (TJAPlayer3.stage選曲.r現在選択中のスコア.譜面情報.nレベル[3] > g) + TJAPlayer3.Tx.Difficulty_Star.t2D描画(TJAPlayer3.app.Device, 444 + 3 * 143 + g * 10, 459); + } + } + + this.txTitle.t2D中心基準描画(TJAPlayer3.app.Device, 640 + TJAPlayer3.Skin.SongSelect_Title_X, 140 + TJAPlayer3.Skin.SongSelect_Title_Y); + this.txSubTitle.t2D中心基準描画(TJAPlayer3.app.Device, 640 + TJAPlayer3.Skin.SongSelect_Title_X, 180 + TJAPlayer3.Skin.SongSelect_Title_Y); + + #region [ バーの描画 ] + + for(int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) + { + TJAPlayer3.Tx.Difficulty_Select_Bar[i].t2D描画(TJAPlayer3.app.Device, + TJAPlayer3.ConfigIni.nPlayerCount == 2 ? n現在の選択行[0] != n現在の選択行[1] ? (float)this.BarX[n現在の選択行[i]] : i == 0 ? (float)this.BarX[n現在の選択行[i]] - 25 : (float)this.BarX[n現在の選択行[i]] + 25 : (float)this.BarX[n現在の選択行[i]], + 126 + ((float)Math.Sin((float)(ctBarAnimeIn.n現在の値 >= 80 ? (ctBarAnimeIn.n現在の値 - 80) : 0) * (Math.PI / 180)) * 50) + (float)Math.Sin((float)ctBarAnime[i].n現在の値 * (Math.PI / 180)) * 10, + new RectangleF(0, 0, 259, 114)); + } + + #endregion + + #endregion + + return 0; + } + + // その他 + + #region [ private ] + //----------------- + + public bool[] bSelect = new bool[2]; + public bool[] bOption = new bool[2]; + + private CPrivateFastFont pfTitle; + private CPrivateFastFont pfSubTitle; + private CTexture txTitle; + private CTexture txSubTitle; + + private CCounter ctBarAnimeIn; + private CCounter[] ctBarAnime = new CCounter[2]; + + //0 閉じる 1 演奏オプション 2~ 難易度 + private int[] n現在の選択行; + private int nスイッチカウント; + + private bool b裏譜面; + //176 + private int[] BarX = new int[] { 163, 251, 367, 510, 653, 797, 797 }; + + private CSound soundSelectAnnounce; + + [StructLayout(LayoutKind.Sequential)] + private struct STレベル数字 + { + public char ch; + public int ptX; + } + private STレベル数字[] st小文字位置 = new STレベル数字[10]; + + private void t小文字表示(string str, float x, float y) + { + foreach (char ch in str) + { + for (int i = 0; i < this.st小文字位置.Length; i++) + { + if (this.st小文字位置[i].ch == ch) + { + Rectangle rectangle = new Rectangle(this.st小文字位置[i].ptX, 0, 18, 23); + if (TJAPlayer3.Tx.Difficulty_Number != null) + { + TJAPlayer3.Tx.Difficulty_Number.t2D描画(TJAPlayer3.app.Device, x, y, rectangle); + } + break; + } + } + x += 11; + } + } + + public int nStrジャンルtoNum(string strジャンル) + { + int nGenre = 8; + for (int i = 0; i < TJAPlayer3.Skin.SongSelect_GenreName.Length; i++) + { + if (TJAPlayer3.Skin.SongSelect_GenreName[i] == strジャンル) + { + if (i + 1 >= TJAPlayer3.Skin.SongSelect_Difficulty_Background_Count) + { + nGenre = 0; + } + else + { + nGenre = i + 1; + } + break; + } + else + { + nGenre = 0; + } + } + return nGenre; + } + //----------------- + #endregion + } +} diff --git a/TJAPlayer3/Stages/05.SongSelect/CActSortSongs.cs b/TJAPlayer3/Stages/05.SongSelect/CActSortSongs.cs new file mode 100644 index 00000000..052bdfa6 --- /dev/null +++ b/TJAPlayer3/Stages/05.SongSelect/CActSortSongs.cs @@ -0,0 +1,165 @@ +using System.Collections.Generic; + +namespace TJAPlayer3 +{ + internal class CActSortSongs : CActSelectPopupMenu + { + + // コンストラクタ + + public CActSortSongs() + { + List lci = new List(); + lci.Add( new CItemList( "絶対パス", CItemBase.Eパネル種別.通常, 0, "", "", new string[] { "Z,Y,X,...", "A,B,C,..." } ) ); + lci.Add( new CItemList( "曲名", CItemBase.Eパネル種別.通常, 0, "", "", new string[] { "Z,Y,X,...", "A,B,C,..." } ) ); + //lci.Add( new CItemList( "Level", CItemBase.Eパネル種別.通常, 0, "", "", new string[] { "99,98,97,...", "1,2,3,..." } ) ); + //lci.Add( new CItemList( "Best Rank", CItemBase.Eパネル種別.通常, 0, "", "", new string[] { "E,D,C,...", "SS,S,A,..." } ) ); + //lci.Add( new CItemList( "PlayCount", CItemBase.Eパネル種別.通常, 0, "", "", new string[] { "10,9,8,...", "1,2,3,..." } ) ); + //lci.Add( new CItemList( "Author", CItemBase.Eパネル種別.通常, 0, "", "", new string[] { "Z,Y,X,...", "A,B,C,..." } ) ); + //lci.Add( new CItemList( "SkillPoint", CItemBase.Eパネル種別.通常, 0, "", "", new string[] { "100,99,98,...", "1,2,3,..." } ) ); +#if TEST_SORTBGM + lci.Add( new CItemList( "BPM", CItemBase.Eパネル種別.通常, 0, "", "", new string[] { "300,200,...", "70,80,90,..." } ) ); +#endif + lci.Add( new CItemList( "ジャンル", CItemBase.Eパネル種別.通常, 0, "", "", new string[] { "AC15", "AC8-14" } ) ); + lci.Add( new CItemList( "戻る", CItemBase.Eパネル種別.通常, 0, "", "", new string[] { "", "" } ) ); + + base.Initialize( lci, false, "SORT MENU" ); + } + + + // メソッド + public void tActivatePopupMenu( E楽器パート einst, ref CActSelect曲リスト ca ) + { + this.act曲リスト = ca; + base.tActivatePopupMenu( einst ); + } + //public void tDeativatePopupMenu() + //{ + // base.tDeativatePopupMenu(); + //} + + + public override void tEnter押下Main( int nSortOrder ) + { + nSortOrder *= 2; // 0,1 => -1, 1 + nSortOrder -= 1; + switch ( (EOrder)n現在の選択行 ) + { + case EOrder.Path: + this.act曲リスト.t曲リストのソート( + CSongs管理.t曲リストのソート1_絶対パス順, eInst, nSortOrder + ); + this.act曲リスト.t選択曲が変更された(true); + break; + case EOrder.Title: + this.act曲リスト.t曲リストのソート( + CSongs管理.t曲リストのソート2_タイトル順, eInst, nSortOrder + ); + this.act曲リスト.t選択曲が変更された(true); + break; + //case (int) EOrder.Level: + // this.act曲リスト.t曲リストのソート( + // CSongs管理.t曲リストのソート4_LEVEL順, eInst, nSortOrder, + // this.act曲リスト.n現在のアンカ難易度レベル + // ); + // this.act曲リスト.t選択曲が変更された( true ); + // break; + //case (int) EOrder.BestRank: + // this.act曲リスト.t曲リストのソート( + // CSongs管理.t曲リストのソート5_BestRank順, eInst, nSortOrder, + // this.act曲リスト.n現在のアンカ難易度レベル + // ); + // break; + //case (int) EOrder.PlayCount: + // // this.act曲リスト.t曲リストのソート3_演奏回数の多い順( eInst, nSortOrder ); + // this.act曲リスト.t曲リストのソート( + // CSongs管理.t曲リストのソート3_演奏回数の多い順, eInst, nSortOrder, + // this.act曲リスト.n現在のアンカ難易度レベル + // ); + // this.act曲リスト.t選択曲が変更された( true ); + // break; + //case (int) EOrder.Author: + // this.act曲リスト.t曲リストのソート( + // CSongs管理.t曲リストのソート8_アーティスト名順, eInst, nSortOrder, + // this.act曲リスト.n現在のアンカ難易度レベル + // ); + // this.act曲リスト.t選択曲が変更された( true ); + // break; + //case (int) EOrder.SkillPoint: + // this.act曲リスト.t曲リストのソート( + // CSongs管理.t曲リストのソート6_SkillPoint順, eInst, nSortOrder, + // this.act曲リスト.n現在のアンカ難易度レベル + // ); + // this.act曲リスト.t選択曲が変更された( true ); + // break; +#if TEST_SORTBGM + case (int) ESortItem.BPM: + this.act曲リスト.t曲リストのソート( + CSongs管理.t曲リストのソート9_BPM順, eInst, nSortOrder, + this.act曲リスト.n現在のアンカ難易度レベル + ); + this.act曲リスト.t選択曲が変更された(true); + break; +#endif + //ジャンル順 + case EOrder.Genre: + this.act曲リスト.t曲リストのソート( + //CDTXMania.Songs管理.t曲リストのソート7_更新日時順, eInst, nSortOrder, + //this.act曲リスト.n現在のアンカ難易度レベル + CSongs管理.t曲リストのソート9_ジャンル順, eInst, nSortOrder, 0 + ); + this.act曲リスト.t選択曲が変更された( true ); + break; + case EOrder.Return: + this.tDeativatePopupMenu(); + break; + default: + break; + } + } + + // CActivity 実装 + + public override void On活性化() + { + //this.e現在のソート = EOrder.Title; + base.On活性化(); + } + public override void On非活性化() + { + if( !base.b活性化してない ) + { + base.On非活性化(); + } + } + public override void OnManagedリソースの作成() + { + if( !base.b活性化してない ) + { + base.OnManagedリソースの作成(); + } + } + public override void OnManagedリソースの解放() + { + base.OnManagedリソースの解放(); + } + + #region [ private ] + //----------------- + + private CActSelect曲リスト act曲リスト; + + private enum EOrder : int + { + Path = 0, + Title = 1, + Genre = 2, + Return = 3 + } + + //----------------- + #endregion + } + + +} diff --git a/TJAPlayer3/Stages/05.SongSelect/CStage選曲.cs b/TJAPlayer3/Stages/05.SongSelect/CStage選曲.cs new file mode 100644 index 00000000..88e3f02a --- /dev/null +++ b/TJAPlayer3/Stages/05.SongSelect/CStage選曲.cs @@ -0,0 +1,1297 @@ +using FDK; +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Drawing; +using System.IO; +using System.Runtime.InteropServices; +using System.Text; + +namespace TJAPlayer3 +{ + internal class CStage選曲 : CStage + { + // プロパティ + public int nスクロールバー相対y座標 + { + get + { + if (act曲リスト != null) + { + return act曲リスト.nスクロールバー相対y座標; + } + else + { + return 0; + } + } + } + public bool bIsEnumeratingSongs + { + get + { + return act曲リスト.bIsEnumeratingSongs; + } + set + { + act曲リスト.bIsEnumeratingSongs = value; + } + } + public bool bIsPlayingPremovie + { + get + { + return this.actPreimageパネル.bIsPlayingPremovie; + } + } + public bool bスクロール中 + { + get + { + return this.act曲リスト.bスクロール中; + } + } + public int[] n確定された曲の難易度 = new int[2]; + + public string str確定された曲のジャンル + { + get; + set; + } + public Cスコア r確定されたスコア + { + get; + set; + } + public C曲リストノード r確定された曲 + { + get; + set; + } + public int n現在選択中の曲の難易度 + { + get + { + return this.act曲リスト.n現在選択中の曲の現在の難易度レベル; + } + } + public Cスコア r現在選択中のスコア + { + get + { + return this.act曲リスト.r現在選択中のスコア; + } + } + public C曲リストノード r現在選択中の曲 + { + get + { + return this.act曲リスト.r現在選択中の曲; + } + } + + // コンストラクタ + public CStage選曲() + { + base.eステージID = CStage.Eステージ.選曲; + base.eフェーズID = CStage.Eフェーズ.共通_通常状態; + base.b活性化してない = true; + base.list子Activities.Add(this.actオプションパネル = new CActオプションパネル()); + base.list子Activities.Add(this.actFIFO = new CActFIFOBlack()); + base.list子Activities.Add(this.actFIfrom結果画面 = new CActFIFOBlack()); + //base.list子Activities.Add( this.actFOtoNowLoading = new CActFIFOBlack() ); + base.list子Activities.Add(this.actFOtoNowLoading = new CActFIFOStart()); + base.list子Activities.Add(this.act曲リスト = new CActSelect曲リスト()); + base.list子Activities.Add(this.actステータスパネル = new CActSelectステータスパネル()); + base.list子Activities.Add(this.act演奏履歴パネル = new CActSelect演奏履歴パネル()); + base.list子Activities.Add(this.actPreimageパネル = new CActSelectPreimageパネル()); + base.list子Activities.Add(this.actPresound = new CActSelectPresound()); + base.list子Activities.Add(this.actArtistComment = new CActSelectArtistComment()); + base.list子Activities.Add(this.actInformation = new CActSelectInformation()); + base.list子Activities.Add(this.actSortSongs = new CActSortSongs()); + base.list子Activities.Add(this.actShowCurrentPosition = new CActSelectShowCurrentPosition()); + base.list子Activities.Add(this.actQuickConfig = new CActSelectQuickConfig()); + base.list子Activities.Add(this.act難易度選択画面 = new CActSelect難易度選択画面()); + base.list子Activities.Add(this.actPlayOption = new CActPlayOption()); + + for(int i = 0; i < 10; i++) + { + stTimer[i].ch = i.ToString().ToCharArray()[0]; + stTimer[i].pt = new Point(46 * i, 0); + } + + for(int i = 0; i < 10; i++) + { + stSongNumber[i].ch = i.ToString().ToCharArray()[0]; + stSongNumber[i].pt = new Point(27 * i, 0); + } + + for(int i = 0; i < 10; i++) + { + stBoardNumber[i].ch = i.ToString().ToCharArray()[0]; + stBoardNumber[i].pt = new Point(15 * i, 0); + } + + this.CommandHistory = new CCommandHistory(); // #24063 2011.1.16 yyagi + } + + + // メソッド + + public void t選択曲変更通知() + { + this.actPreimageパネル.t選択曲が変更された(); + this.actPresound.t選択曲が変更された(); + this.act演奏履歴パネル.t選択曲が変更された(); + this.actステータスパネル.t選択曲が変更された(); + this.actArtistComment.t選択曲が変更された(); + + #region [ プラグインにも通知する(BOX, RANDOM, BACK なら通知しない)] + //--------------------- + if (TJAPlayer3.app != null) + { + var c曲リストノード = TJAPlayer3.stage選曲.r現在選択中の曲; + var cスコア = TJAPlayer3.stage選曲.r現在選択中のスコア; + + if (c曲リストノード != null && cスコア != null && c曲リストノード.eノード種別 == C曲リストノード.Eノード種別.SCORE) + { + string str選択曲ファイル名 = cスコア.ファイル情報.ファイルの絶対パス; + int n曲番号inブロック = TJAPlayer3.stage選曲.act曲リスト.n現在のアンカ難易度レベルに最も近い難易度レベルを返す(c曲リストノード); + + foreach (TJAPlayer3.STPlugin stPlugin in TJAPlayer3.app.listプラグイン) + { + Directory.SetCurrentDirectory(stPlugin.strプラグインフォルダ); + stPlugin.plugin.On選択曲変更(str選択曲ファイル名, n曲番号inブロック); + Directory.SetCurrentDirectory(TJAPlayer3.strEXEのあるフォルダ); + } + } + } + //--------------------- + #endregion + } + + // CStage 実装 + + /// + /// 曲リストをリセットする + /// + /// + public void Refresh(CSongs管理 cs, bool bRemakeSongTitleBar) + { + this.act曲リスト.Refresh(cs, bRemakeSongTitleBar); + } + + public override void On活性化() + { + Trace.TraceInformation("選曲ステージを活性化します。"); + Trace.Indent(); + try + { + n確定された曲の難易度 = new int[2]; + this.eフェードアウト完了時の戻り値 = E戻り値.継続; + this.bBGM再生済み = false; + this.ftフォント = new Font("MS UI Gothic", 26f, GraphicsUnit.Pixel); + for (int i = 0; i < 2; i++) + this.ctキー反復用[i] = new CCounter(0, 0, 0, TJAPlayer3.Timer); + + ctDonchan_Normal = new CCounter(0, TJAPlayer3.Tx.SongSelect_Donchan_Normal.Length - 1, 1000 / 45, TJAPlayer3.Timer); + ctDonchan_Select = new CCounter(); + ctDonchan_Jump[0] = new CCounter(); + ctDonchan_Jump[1] = new CCounter(); + ctBackgroundFade = new CCounter(); + ctCreditAnime = new CCounter(0, 4500, 1, TJAPlayer3.Timer); + ctTimer = new CCounter(0, 100, 1000, TJAPlayer3.Timer); + + + ctBackgroundFade.n現在の値 = 600; + + if(TJAPlayer3.ConfigIni.bBGM音を発声する) + TJAPlayer3.Skin.bgm選曲画面イン.t再生する(); + + for (int i = 0; i < 3; i++) + r[i] = new Random(); + + //this.act難易度選択画面.bIsDifficltSelect = true; + base.On活性化(); + + this.actステータスパネル.t選択曲が変更された(); // 最大ランクを更新 + // Discord Presenceの更新 + Discord.UpdatePresence("", Properties.Discord.Stage_SongSelect, TJAPlayer3.StartupTime); + + + + if(r現在選択中の曲 != null) + NowGenre = r現在選択中の曲.strジャンル; + } + finally + { + TJAPlayer3.ConfigIni.eScrollMode = EScrollMode.Normal; + TJAPlayer3.ConfigIni.bスクロールモードを上書き = false; + Trace.TraceInformation("選曲ステージの活性化を完了しました。"); + Trace.Unindent(); + } + } + public override void On非活性化() + { + Trace.TraceInformation("選曲ステージを非活性化します。"); + Trace.Indent(); + try + { + if (this.ftフォント != null) + { + this.ftフォント.Dispose(); + this.ftフォント = null; + } + for (int i = 0; i < 2; i++) + { + this.ctキー反復用[i] = null; + } + base.On非活性化(); + } + finally + { + Trace.TraceInformation("選曲ステージの非活性化を完了しました。"); + Trace.Unindent(); + } + } + public override void OnManagedリソースの作成() + { + if (!base.b活性化してない) + { + //this.tx背景 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_background.jpg" ), false ); + //this.tx上部パネル = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_header_panel.png" ), false ); + //this.tx下部パネル = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_footer panel.png" ) ); + + //this.txFLIP = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_skill number on gauge etc.png" ), false ); + //this.tx難易度名 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_difficulty name.png" ) ); + //this.txジャンル別背景[0] = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_background_Anime.png" ) ); + //this.txジャンル別背景[1] = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_background_JPOP.png" ) ); + //this.txジャンル別背景[2] = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_background_Game.png" ) ); + //this.txジャンル別背景[3] = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_background_Namco.png" ) ); + //this.txジャンル別背景[4] = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_background_Classic.png" ) ); + //this.txジャンル別背景[5] = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_background_Child.png" ) ); + //this.txジャンル別背景[6] = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_background_Variety.png" ) ); + //this.txジャンル別背景[7] = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_background_VOCALID.png" ) ); + //this.txジャンル別背景[8] = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_background_Other.png" ) ); + + //this.tx難易度別背景[0] = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_background_Easy.png" ) ); + //this.tx難易度別背景[1] = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_background_Normal.png" ) ); + //this.tx難易度別背景[2] = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_background_Hard.png" ) ); + //this.tx難易度別背景[3] = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_background_Master.png" ) ); + //this.tx難易度別背景[4] = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_background_Edit.png" ) ); + //this.tx下部テキスト = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_footer text.png" ) ); + this.ct背景スクロール用タイマー = new CCounter(0, TJAPlayer3.Tx.SongSelect_Background.szテクスチャサイズ.Width, 30, TJAPlayer3.Timer); + base.OnManagedリソースの作成(); + } + } + public override void OnManagedリソースの解放() + { + if (!base.b活性化してない) + { + //CDTXMania.tテクスチャの解放( ref this.tx背景 ); + //CDTXMania.tテクスチャの解放( ref this.tx上部パネル ); + //CDTXMania.tテクスチャの解放( ref this.tx下部パネル ); + //CDTXMania.tテクスチャの解放( ref this.txFLIP ); + //CDTXMania.tテクスチャの解放( ref this.tx難易度名 ); + //CDTXMania.tテクスチャの解放( ref this.tx下部テキスト ); + //for( int j = 0; j < 9; j++ ) + //{ + // CDTXMania.tテクスチャの解放( ref this.txジャンル別背景[ j ] ); + //} + //for( int j = 0; j < 5; j++ ) + //{ + // CDTXMania.tテクスチャの解放( ref this.tx難易度別背景[ j ] ); + //} + base.OnManagedリソースの解放(); + } + } + public override int On進行描画() + { + if (!base.b活性化してない) + { + this.ct背景スクロール用タイマー.t進行Loop(); + #region [ 初めての進行描画 ] + //--------------------- + if (base.b初めての進行描画) + { + this.ct登場時アニメ用共通 = new CCounter(0, 100, 3, TJAPlayer3.Timer); + if (TJAPlayer3.r直前のステージ == TJAPlayer3.stage結果) + { + this.actFIfrom結果画面.tフェードイン開始(); + base.eフェーズID = CStage.Eフェーズ.選曲_結果画面からのフェードイン; + } + else + { + this.actFIFO.tフェードイン開始(); + base.eフェーズID = CStage.Eフェーズ.共通_フェードイン; + } + this.t選択曲変更通知(); + base.b初めての進行描画 = false; + } + //--------------------- + #endregion + + + ctTimer.t進行(); + ctCreditAnime.t進行Loop(); + ctBackgroundFade.t進行(); + ctDonchan_Select.t進行(); + ctDonchan_Jump[0].t進行(); + ctDonchan_Jump[1].t進行(); + ctDonchan_Normal.t進行Loop(); + + this.ct登場時アニメ用共通.t進行(); + + if (TJAPlayer3.Tx.SongSelect_Background != null) + TJAPlayer3.Tx.SongSelect_Background.t2D描画(TJAPlayer3.app.Device, 0, 0); + + if (this.r現在選択中の曲 != null) + { + if (this.nStrジャンルtoNum(this.r現在選択中の曲.strジャンル) != 0 || r現在選択中の曲.eノード種別 == C曲リストノード.Eノード種別.BOX || r現在選択中の曲.eノード種別 == C曲リストノード.Eノード種別.SCORE) + { + nGenreBack = this.nStrジャンルtoNum(this.NowGenre); + nOldGenreBack = this.nStrジャンルtoNum(this.OldGenre); + } + if (TJAPlayer3.Tx.SongSelect_GenreBack[nGenreBack] != null) + { + for (int i = 0; i < (1280 / TJAPlayer3.Tx.SongSelect_Background.szテクスチャサイズ.Width) + 2; i++) + { + if (TJAPlayer3.Tx.SongSelect_GenreBack[nGenreBack] != null) + { + TJAPlayer3.Tx.SongSelect_GenreBack[nGenreBack].Opacity = 255; + TJAPlayer3.Tx.SongSelect_GenreBack[nGenreBack].t2D描画(TJAPlayer3.app.Device, -(int)ct背景スクロール用タイマー.n現在の値 + TJAPlayer3.Tx.SongSelect_Background.szテクスチャサイズ.Width * i, 0); + } + if (TJAPlayer3.Tx.SongSelect_GenreBack[nOldGenreBack] != null) + { + TJAPlayer3.Tx.SongSelect_GenreBack[nOldGenreBack].Opacity = 600 - ctBackgroundFade.n現在の値; + TJAPlayer3.Tx.SongSelect_GenreBack[nOldGenreBack].t2D描画(TJAPlayer3.app.Device, -(int)ct背景スクロール用タイマー.n現在の値 + TJAPlayer3.Tx.SongSelect_Background.szテクスチャサイズ.Width * i, 0); + } + } + } + } + + this.act曲リスト.On進行描画(); + int y = 0; + if (this.ct登場時アニメ用共通.b進行中) + { + double db登場割合 = ((double)this.ct登場時アニメ用共通.n現在の値) / 100.0; // 100が最終値 + double dbY表示割合 = Math.Sin(Math.PI / 2 * db登場割合); + y = ((int)(TJAPlayer3.Tx.SongSelect_Header.sz画像サイズ.Height * dbY表示割合)) - TJAPlayer3.Tx.SongSelect_Header.sz画像サイズ.Height; + } + if (TJAPlayer3.Tx.SongSelect_Header != null) + TJAPlayer3.Tx.SongSelect_Header.t2D描画(TJAPlayer3.app.Device, 0, 0); + + tTimerDraw((100 - ctTimer.n現在の値).ToString()); + + tSongNumberDraw(1097, 167, NowSong.ToString()); + tSongNumberDraw(1190, 167, MaxSong.ToString()); + + this.actInformation.On進行描画(); + + #region [ ネームプレート ] + for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) + { + TJAPlayer3.NamePlate.tNamePlateDraw(TJAPlayer3.Skin.SongSelect_NamePlate_X[i], TJAPlayer3.Skin.SongSelect_NamePlate_Y[i], i); + } + #endregion + + #region[ 下部テキスト ] + + if (TJAPlayer3.Tx.SongSelect_Auto != null) + { + if (TJAPlayer3.ConfigIni.b太鼓パートAutoPlay) + { + TJAPlayer3.Tx.SongSelect_Auto.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.SongSelect_Auto_X[0], TJAPlayer3.Skin.SongSelect_Auto_Y[0]); + } + if (TJAPlayer3.ConfigIni.nPlayerCount > 1 && TJAPlayer3.ConfigIni.b太鼓パートAutoPlay2P) + { + TJAPlayer3.Tx.SongSelect_Auto.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.SongSelect_Auto_X[1], TJAPlayer3.Skin.SongSelect_Auto_Y[1]); + } + } + if (TJAPlayer3.ConfigIni.bTokkunMode) + TJAPlayer3.act文字コンソール.tPrint(0, 0, C文字コンソール.Eフォント種別.白, "GAME: TRAINING MODE"); + if (TJAPlayer3.ConfigIni.eGameMode == EGame.完走叩ききりまショー) + TJAPlayer3.act文字コンソール.tPrint(0, 16, C文字コンソール.Eフォント種別.白, "GAME: SURVIVAL"); + if (TJAPlayer3.ConfigIni.eGameMode == EGame.完走叩ききりまショー激辛) + TJAPlayer3.act文字コンソール.tPrint(0, 16, C文字コンソール.Eフォント種別.白, "GAME: SURVIVAL HARD"); + if (TJAPlayer3.ConfigIni.bSuperHard) + TJAPlayer3.act文字コンソール.tPrint(0, 32, C文字コンソール.Eフォント種別.赤, "SUPER HARD MODE : ON"); + if (TJAPlayer3.ConfigIni.eScrollMode == EScrollMode.BMSCROLL) + TJAPlayer3.act文字コンソール.tPrint(0, 48, C文字コンソール.Eフォント種別.赤, "BMSCROLL : ON"); + else if (TJAPlayer3.ConfigIni.eScrollMode == EScrollMode.HBSCROLL) + TJAPlayer3.act文字コンソール.tPrint(0, 48, C文字コンソール.Eフォント種別.赤, "HBSCROLL : ON"); + + #endregion + + this.actPresound.On進行描画(); + + this.act演奏履歴パネル.On進行描画(); + + this.actShowCurrentPosition.On進行描画(); // #27648 2011.3.28 yyagi + + if (TJAPlayer3.ConfigIni.bBGM音を発声する && !this.bBGM再生済み && (base.eフェーズID == CStage.Eフェーズ.共通_通常状態) && !TJAPlayer3.Skin.bgm選曲画面イン.b再生中) + { + TJAPlayer3.Skin.bgm選曲画面.t再生する(); + this.bBGM再生済み = true; + } + + + if (this.ctDiffSelect移動待ち != null) + this.ctDiffSelect移動待ち.t進行(); + + + + // キー入力 + if (base.eフェーズID == CStage.Eフェーズ.共通_通常状態 + && TJAPlayer3.act現在入力を占有中のプラグイン == null) + { + #region [ 簡易CONFIGでMore、またはShift+F1: 詳細CONFIG呼び出し ] + if (actQuickConfig.bGotoDetailConfig) + { // 詳細CONFIG呼び出し + actQuickConfig.tDeativatePopupMenu(); + this.actPresound.tサウンド停止(); + this.eフェードアウト完了時の戻り値 = E戻り値.コンフィグ呼び出し; // #24525 2011.3.16 yyagi: [SHIFT]-[F1]でCONFIG呼び出し + this.actFIFO.tフェードアウト開始(); + base.eフェーズID = CStage.Eフェーズ.共通_フェードアウト; + TJAPlayer3.Skin.sound取消音.t再生する(); + return 0; + } + #endregion + if (!this.actSortSongs.bIsActivePopupMenu && !this.actQuickConfig.bIsActivePopupMenu && !this.act難易度選択画面.bIsDifficltSelect) + { + #region [ ESC ] + if (TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.Escape) && (this.act曲リスト.r現在選択中の曲 != null))// && ( ) ) ) + if (this.act曲リスト.r現在選択中の曲.r親ノード == null) + { // [ESC] + TJAPlayer3.Skin.sound取消音.t再生する(); + this.eフェードアウト完了時の戻り値 = E戻り値.タイトルに戻る; + this.actFIFO.tフェードアウト開始(); + base.eフェーズID = CStage.Eフェーズ.共通_フェードアウト; + return 0; + } + else + { + if (this.act曲リスト.ctBoxOpen.b終了値に達した || this.act曲リスト.ctBoxOpen.n現在の値 == 0) + { + TJAPlayer3.Skin.sound取消音.t再生する(); + this.act曲リスト.ctBarFlash.t開始(0, 2700, 1, TJAPlayer3.Timer); + this.act曲リスト.ctBoxOpen.t開始(200, 2700, 1.3f, TJAPlayer3.Timer); + this.act曲リスト.bBoxClose = true; + this.ctDonchan_Select.t開始(0, TJAPlayer3.Tx.SongSelect_Donchan_Select.Length - 1, 1000 / 45, TJAPlayer3.Timer); + } + } + #endregion + #region [ Shift-F1: CONFIG画面 ] + if ((TJAPlayer3.Input管理.Keyboard.bキーが押されている((int)SlimDXKeys.Key.RightShift) || TJAPlayer3.Input管理.Keyboard.bキーが押されている((int)SlimDXKeys.Key.LeftShift)) && + TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.F1)) + { // [SHIFT] + [F1] CONFIG + this.actPresound.tサウンド停止(); + this.eフェードアウト完了時の戻り値 = E戻り値.コンフィグ呼び出し; // #24525 2011.3.16 yyagi: [SHIFT]-[F1]でCONFIG呼び出し + this.actFIFO.tフェードアウト開始(); + base.eフェーズID = CStage.Eフェーズ.共通_フェードアウト; + TJAPlayer3.Skin.sound取消音.t再生する(); + return 0; + } + #endregion + #region [ F2 簡易オプション ] + if (TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.F2)) + { + TJAPlayer3.Skin.sound変更音.t再生する(); + this.actQuickConfig.tActivatePopupMenu(E楽器パート.DRUMS); + } + #endregion + #region [ F3 1PオートON/OFF ] + if (TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.F3)) + { + TJAPlayer3.Skin.sound変更音.t再生する(); + C共通.bToggleBoolian(ref TJAPlayer3.ConfigIni.b太鼓パートAutoPlay); + } + #endregion + #region [ F4 2PオートON/OFF ] + if (TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.F4)) + { + if (TJAPlayer3.ConfigIni.nPlayerCount > 1) + { + TJAPlayer3.Skin.sound変更音.t再生する(); + C共通.bToggleBoolian(ref TJAPlayer3.ConfigIni.b太鼓パートAutoPlay2P); + } + } + #endregion + #region [ F5 スーパーハード ] + if (TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.F5)) + { + TJAPlayer3.Skin.sound変更音.t再生する(); + C共通.bToggleBoolian(ref TJAPlayer3.ConfigIni.bSuperHard); + } + #endregion + #region [ F6 SCROLL ] + if (TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.F6)) + { + TJAPlayer3.Skin.sound変更音.t再生する(); + TJAPlayer3.ConfigIni.bスクロールモードを上書き = true; + switch ((int)TJAPlayer3.ConfigIni.eScrollMode) + { + case 0: + TJAPlayer3.ConfigIni.eScrollMode = EScrollMode.BMSCROLL; + break; + case 1: + TJAPlayer3.ConfigIni.eScrollMode = EScrollMode.HBSCROLL; + break; + case 2: + TJAPlayer3.ConfigIni.eScrollMode = EScrollMode.Normal; + TJAPlayer3.ConfigIni.bスクロールモードを上書き = false; + break; + } + } + #endregion + #region [ F7 TokkunMode ] + if (TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.F7)) + { + if (TJAPlayer3.ConfigIni.nPlayerCount != 2) + { + TJAPlayer3.Skin.sound変更音.t再生する(); + C共通.bToggleBoolian(ref TJAPlayer3.ConfigIni.bTokkunMode); + } + } + #endregion + #region [ F8 ランダム選曲 ] + if (TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.F8)) + { + if (TJAPlayer3.Skin.sound曲決定音.b読み込み成功) + TJAPlayer3.Skin.sound曲決定音.t再生する(); + else + TJAPlayer3.Skin.sound決定音.t再生する(); + this.t曲をランダム選択する(); + } + #endregion + + if (this.act曲リスト.r現在選択中の曲 != null) + { + if (this.act曲リスト.ctBoxOpen.b終了値に達した || this.act曲リスト.ctBoxOpen.n現在の値 == 0) + { + if (!this.bスクロール中) + { + #region [ Decide ] + if ((TJAPlayer3.Pad.b押されたDGB(Eパッド.Decide) || (TJAPlayer3.Pad.b押されたDGB(Eパッド.LRed) || TJAPlayer3.Pad.b押されたDGB(Eパッド.RRed)) || + ((TJAPlayer3.ConfigIni.bEnterがキー割り当てのどこにも使用されていない && TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.Return))))) + { + if (this.act曲リスト.r現在選択中の曲 != null) + { + switch (this.act曲リスト.r現在選択中の曲.eノード種別) + { + case C曲リストノード.Eノード種別.SCORE: + { + if (this.n現在選択中の曲の難易度 == (int)Difficulty.Dan) + { + TJAPlayer3.Skin.sound決定音.t再生する(); + this.t曲を選択する(); + } + else + { + TJAPlayer3.Skin.sound決定音.t再生する(); + this.act難易度選択画面.bIsDifficltSelect = true; + this.act難易度選択画面.t選択画面初期化(); + this.act曲リスト.ctBarFlash.t開始(0, 2700, 1, TJAPlayer3.Timer); + this.act曲リスト.ctDifficultyIn.t開始(0, 3200, 1, TJAPlayer3.Timer); + this.ctDonchan_Select.t開始(0, TJAPlayer3.Tx.SongSelect_Donchan_Select.Length - 1, 1000 / 45, TJAPlayer3.Timer); + } + } + break; + case C曲リストノード.Eノード種別.BOX: + { + TJAPlayer3.Skin.sound決定音.t再生する(); + this.act曲リスト.ctBarFlash.t開始(0, 2700, 1, TJAPlayer3.Timer); + this.act曲リスト.ctBoxOpen.t開始(200, 2700, 1.3f, TJAPlayer3.Timer); + this.act曲リスト.bBoxOpen = true; + this.ctDonchan_Select.t開始(0, TJAPlayer3.Tx.SongSelect_Donchan_Select.Length - 1, 1000 / 45, TJAPlayer3.Timer); + } + break; + case C曲リストノード.Eノード種別.BACKBOX: + { + TJAPlayer3.Skin.sound取消音.t再生する(); + this.act曲リスト.ctBarFlash.t開始(0, 2700, 1, TJAPlayer3.Timer); + this.act曲リスト.ctBoxOpen.t開始(200, 2700, 1.3f, TJAPlayer3.Timer); + this.act曲リスト.bBoxClose = true; + this.ctDonchan_Select.t開始(0, TJAPlayer3.Tx.SongSelect_Donchan_Select.Length - 1, 1000 / 45, TJAPlayer3.Timer); + } + break; + } + } + } + #endregion + } + #region [ Up ] + if (!this.bスクロール中) + { + this.ctキー反復用.Up.tキー反復(TJAPlayer3.Input管理.Keyboard.bキーが押されている((int)SlimDXKeys.Key.LeftArrow), new CCounter.DGキー処理(this.tカーソルを上へ移動する)); + //this.ctキー反復用.Up.tキー反復( CDTXMania.Input管理.Keyboard.bキーが押されている( (int) SlimDXKeys.Key.UpArrow ) || CDTXMania.Input管理.Keyboard.bキーが押されている( (int) SlimDXKeys.Key.LeftArrow ), new CCounter.DGキー処理( this.tカーソルを上へ移動する ) ); + if (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LBlue)) + { + this.tカーソルを上へ移動する(); + } + } + else + { + if (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LBlue)) + { + this.ctDonchan_Jump[0].t開始(0, TJAPlayer3.Tx.SongSelect_Donchan_Jump.Length + 8, 1000 / 45, TJAPlayer3.Timer); + this.ctDonchan_Jump[1].t開始(0, TJAPlayer3.Tx.SongSelect_Donchan_Jump.Length + 8, 1000 / 45, TJAPlayer3.Timer); + for (int i = 0; i < 7; i++) tカーソルスキップ(true); + } + } + #endregion + #region [ Down ] + if (!this.bスクロール中) + { + this.ctキー反復用.Down.tキー反復(TJAPlayer3.Input管理.Keyboard.bキーが押されている((int)SlimDXKeys.Key.RightArrow), new CCounter.DGキー処理(this.tカーソルを下へ移動する)); + //this.ctキー反復用.Down.tキー反復( CDTXMania.Input管理.Keyboard.bキーが押されている( (int) SlimDXKeys.Key.DownArrow ) || CDTXMania.Input管理.Keyboard.bキーが押されている( (int) SlimDXKeys.Key.RightArrow ), new CCounter.DGキー処理( this.tカーソルを下へ移動する ) ); + if (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RBlue)) + { + this.tカーソルを下へ移動する(); + } + } + else + { + if (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RBlue)) + { + this.ctDonchan_Jump[0].t開始(0, TJAPlayer3.Tx.SongSelect_Donchan_Jump.Length + 8, 1000 / 45, TJAPlayer3.Timer); + this.ctDonchan_Jump[1].t開始(0, TJAPlayer3.Tx.SongSelect_Donchan_Jump.Length + 8, 1000 / 45, TJAPlayer3.Timer); + for (int i = 0; i < 7; i++) tカーソルスキップ(false); + } + } + #endregion + } + #region [ Upstairs ] + if (((this.act曲リスト.r現在選択中の曲 != null) && (this.act曲リスト.r現在選択中の曲.r親ノード != null)) && (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.FT) || TJAPlayer3.Pad.b押されたGB(Eパッド.Cancel))) + { + this.actPresound.tサウンド停止(); + TJAPlayer3.Skin.sound取消音.t再生する(); + this.act曲リスト.tBOXを出る(); + this.t選択曲変更通知(); + } + #endregion + #region [ BDx2: 簡易CONFIG ] + if (TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.Space)) + { + TJAPlayer3.Skin.sound変更音.t再生する(); + this.actSortSongs.tActivatePopupMenu(E楽器パート.DRUMS, ref this.act曲リスト); + } + #endregion + #region [ HHx2: 難易度変更 ] + if (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.HH) || TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.HHO)) + { // [HH]x2 難易度変更 + CommandHistory.Add(E楽器パート.DRUMS, EパッドFlag.HH); + EパッドFlag[] comChangeDifficulty = new EパッドFlag[] { EパッドFlag.HH, EパッドFlag.HH }; + if (CommandHistory.CheckCommand(comChangeDifficulty, E楽器パート.DRUMS)) + { + Debug.WriteLine("ドラムス難易度変更"); + this.act曲リスト.t難易度レベルをひとつ進める(); + TJAPlayer3.Skin.sound変更音.t再生する(); + } + } + #endregion + } + } + + #region [ Minus & Equals Sound Group Level ] + KeyboardSoundGroupLevelControlHandler.Handle( + TJAPlayer3.Input管理.Keyboard, TJAPlayer3.SoundGroupLevelController, TJAPlayer3.Skin, true); + #endregion + + this.actSortSongs.t進行描画(); + this.actQuickConfig.t進行描画(); + } + + //------------------------------ + if (this.act難易度選択画面.bIsDifficltSelect) + { + if (this.act曲リスト.ctDifficultyIn.n現在の値 >= 1255) + { + this.act難易度選択画面.On進行描画(); + } + } + //------------------------------ + + + + + if (TJAPlayer3.ConfigIni.nPlayerCount == 1) + { + var opacity = 0; + + if (ctCreditAnime.n現在の値 <= 510) + opacity = ctCreditAnime.n現在の値 / 2; + else if (ctCreditAnime.n現在の値 <= 4500 - 510) + opacity = 255; + else + opacity = 255 - ((ctCreditAnime.n現在の値 - (4500 - 510)) / 2); + + TJAPlayer3.Tx.SongSelect_Credit.Opacity = opacity; + + TJAPlayer3.Tx.SongSelect_Credit.t2D描画(TJAPlayer3.app.Device, 0, 0); + } + for(int i = 0; i < 2; i++) + { + if (this.ctDonchan_Jump[i].n現在の値 >= this.ctDonchan_Jump[i].n終了値) + { + this.ctDonchan_Jump[i].t停止(); + + if (!this.act難易度選択画面.bIsDifficltSelect) + { + this.ctDonchan_Jump[i].n現在の値 = 0; + } + } + } + + if (this.ctDonchan_Select.b終了値に達してない) + { + if (TJAPlayer3.ConfigIni.nPlayerCount == 2) + TJAPlayer3.Tx.SongSelect_Donchan_Select[ctDonchan_Select.n現在の値].t2D左右反転描画(TJAPlayer3.app.Device, 981, 330); + + TJAPlayer3.Tx.SongSelect_Donchan_Select[ctDonchan_Select.n現在の値].t2D描画(TJAPlayer3.app.Device, 0, 330); + } + else + { + if (TJAPlayer3.ConfigIni.nPlayerCount == 2) + { + if (this.ctDonchan_Jump[1].n現在の値 > 0) + { + TJAPlayer3.Tx.SongSelect_Donchan_Jump[ctDonchan_Jump[1].n現在の値 >= 17 ? 17 : ctDonchan_Jump[1].n現在の値].t2D左右反転描画(TJAPlayer3.app.Device, 981, 330); + } + else + { + TJAPlayer3.Tx.SongSelect_Donchan_Normal[ctDonchan_Normal.n現在の値].t2D左右反転描画(TJAPlayer3.app.Device, 981, 330); + } + } + if (this.ctDonchan_Jump[0].n現在の値 > 0) + { + TJAPlayer3.Tx.SongSelect_Donchan_Jump[ctDonchan_Jump[0].n現在の値 >= 17 ? 17 : ctDonchan_Jump[0].n現在の値].t2D描画(TJAPlayer3.app.Device, 0, 330); + } + else + { + TJAPlayer3.Tx.SongSelect_Donchan_Normal[ctDonchan_Normal.n現在の値].t2D描画(TJAPlayer3.app.Device, 0, 330); + } + } + + + for (int i = 0; i < 10; i++) + { + tBoardNumberDraw(this.ptBoardNumber[i].X - 10, this.ptBoardNumber[i].Y, i < 7 ? this.act曲リスト.ScoreRankCount[i].ToString() : this.act曲リスト.CrownCount[i - 7].ToString()); + } + + if (act難易度選択画面.bOption[0]) actPlayOption.On進行描画(0); + if (act難易度選択画面.bOption[1]) actPlayOption.On進行描画(1); + + switch (base.eフェーズID) + { + case CStage.Eフェーズ.共通_フェードイン: + if (this.actFIFO.On進行描画() != 0) + { + base.eフェーズID = CStage.Eフェーズ.共通_通常状態; + } + break; + + case CStage.Eフェーズ.共通_フェードアウト: + if (this.actFIFO.On進行描画() == 0) + { + break; + } + return (int)this.eフェードアウト完了時の戻り値; + + case CStage.Eフェーズ.選曲_結果画面からのフェードイン: + if (this.actFIfrom結果画面.On進行描画() != 0) + { + base.eフェーズID = CStage.Eフェーズ.共通_通常状態; + } + break; + + case CStage.Eフェーズ.選曲_NowLoading画面へのフェードアウト: + if (this.actFOtoNowLoading.On進行描画() == 0) + { + break; + } + return (int)this.eフェードアウト完了時の戻り値; + } + } + return 0; + } + public enum E戻り値 : int + { + 継続, + タイトルに戻る, + 選曲した, + オプション呼び出し, + コンフィグ呼び出し, + スキン変更 + } + + + // その他 + + #region [ private ] + //----------------- + [StructLayout(LayoutKind.Sequential)] + private struct STキー反復用カウンタ + { + public CCounter Up; + public CCounter Down; + public CCounter this[int index] + { + get + { + switch (index) + { + case 0: + return this.Up; + + case 1: + return this.Down; + } + throw new IndexOutOfRangeException(); + } + set + { + switch (index) + { + case 0: + this.Up = value; + return; + + case 1: + this.Down = value; + return; + } + throw new IndexOutOfRangeException(); + } + } + } + private CCounter ctTimer; + private CCounter ctCreditAnime; + private Random[] r = new Random[3]; + public CCounter ctBackgroundFade; + public string NowGenre; + public string OldGenre; + private CActSelectArtistComment actArtistComment; + private CActFIFOBlack actFIFO; + private CActFIFOBlack actFIfrom結果画面; + //private CActFIFOBlack actFOtoNowLoading; + public CActFIFOStart actFOtoNowLoading; + private CActSelectInformation actInformation; + private CActSelectPreimageパネル actPreimageパネル; + public CActSelectPresound actPresound; + private CActオプションパネル actオプションパネル; + private CActSelectステータスパネル actステータスパネル; + public CActSelect演奏履歴パネル act演奏履歴パネル; + public CActSelect曲リスト act曲リスト; + private CActSelectShowCurrentPosition actShowCurrentPosition; + public CActSelect難易度選択画面 act難易度選択画面; + public CActPlayOption actPlayOption; + + public CActSortSongs actSortSongs; + private CActSelectQuickConfig actQuickConfig; + + private const int MaxSong = 3; + public int NowSong = 1; + + private CCounter ctDonchan_Normal; + private CCounter ctDonchan_Select; + public CCounter[] ctDonchan_Jump = new CCounter[2]; + private int nGenreBack; + private int nOldGenreBack; + public bool bBGM再生済み; + public bool bBGMIn再生した; + private STキー反復用カウンタ ctキー反復用; + public CCounter ct登場時アニメ用共通; + private CCounter ct背景スクロール用タイマー; + private E戻り値 eフェードアウト完了時の戻り値; + private Font ftフォント; + //private CTexture tx下部パネル; + //private CTexture tx上部パネル; + //private CTexture tx背景; + // private CTexture[] txジャンル別背景 = new CTexture[9]; + // private CTexture[] tx難易度別背景 = new CTexture[5]; + // private CTexture tx難易度名; + // private CTexture tx下部テキスト; + private CCounter ctDiffSelect移動待ち; + + private STNumber[] stTimer = new STNumber[10]; + private STNumber[] stSongNumber = new STNumber[10]; + private STNumber[] stBoardNumber = new STNumber[10]; + + public struct STNumber + { + public char ch; + public Point pt; + } + private struct STCommandTime // #24063 2011.1.16 yyagi コマンド入力時刻の記録用 + { + public E楽器パート eInst; // 使用楽器 + public EパッドFlag ePad; // 押されたコマンド(同時押しはOR演算で列挙する) + public long time; // コマンド入力時刻 + } + + private Point[] ptBoardNumber = + { new Point(72, 283), new Point(135, 283), new Point(200, 283), new Point(72, 258), new Point(135, 258), new Point(200, 258), new Point(200, 233), new Point(72, 311), new Point(135, 311), new Point(200, 311) }; + + public void tBoardNumberDraw(int x, int y, string str) + { + for (int j = 0; j < str.Length; j++) + { + for (int i = 0; i < 10; i++) + { + if (str[j] == stSongNumber[i].ch) + { + TJAPlayer3.Tx.SongSelect_BoardNumber.t2D描画(TJAPlayer3.app.Device, x - (str.Length * 15 + 9 * str.Length - str.Length * 15) / 2 + 15 / 2, (float)y - 17 / 2, new RectangleF(stBoardNumber[i].pt.X, stBoardNumber[i].pt.Y, 15, 17)); + x += 9; + } + } + } + } + + private void tSongNumberDraw(int x, int y, string str) + { + for (int j = 0; j < str.Length; j++) + { + for (int i = 0; i < 10; i++) + { + if (str[j] == stSongNumber[i].ch) + { + TJAPlayer3.Tx.SongSelect_Song_Number.t2D描画(TJAPlayer3.app.Device, x - (str.Length * 27 + 27 * str.Length - str.Length * 27) / 2 + 27 / 2, (float)y, new RectangleF(stSongNumber[i].pt.X, stSongNumber[i].pt.Y, 27, 29)); + x += str.Length >= 2 ? 16 : 27; + } + } + } + } + + private void tTimerDraw(string str) + { + int x = 1171, y = 57; + + for (int j = 0; j < str.Length; j++) + { + for (int i = 0; i < 10; i++) + { + if (TJAPlayer3.ConfigIni.bEnableCountdownTimer) + { + if (str[j] == stTimer[i].ch) + { + TJAPlayer3.Tx.SongSelect_Timer.t2D描画(TJAPlayer3.app.Device, x - (str.Length * 46 + 46 * str.Length - str.Length * 46) / 2 + 46 / 2, (float)y, new RectangleF(stTimer[i].pt.X, stTimer[i].pt.Y, 46, 64)); + x += str.Length >= 3 ? 40 : 46; + } + } + } + } + } + + private class CCommandHistory // #24063 2011.1.16 yyagi コマンド入力履歴を保持_確認するクラス + { + readonly int buffersize = 16; + private List stct; + + public CCommandHistory() // コンストラクタ + { + stct = new List(buffersize); + } + + /// + /// コマンド入力履歴へのコマンド追加 + /// + /// 楽器の種類 + /// 入力コマンド(同時押しはOR演算で列挙すること) + public void Add(E楽器パート _eInst, EパッドFlag _ePad) + { + STCommandTime _stct = new STCommandTime + { + eInst = _eInst, + ePad = _ePad, + time = TJAPlayer3.Timer.n現在時刻 + }; + + if (stct.Count >= buffersize) + { + stct.RemoveAt(0); + } + stct.Add(_stct); + //Debug.WriteLine( "CMDHIS: 楽器=" + _stct.eInst + ", CMD=" + _stct.ePad + ", time=" + _stct.time ); + } + public void RemoveAt(int index) + { + stct.RemoveAt(index); + } + + /// + /// コマンド入力に成功しているか調べる + /// + /// 入力が成功したか調べたいコマンド + /// 対象楽器 + /// コマンド入力成功時true + public bool CheckCommand(EパッドFlag[] _ePad, E楽器パート _eInst) + { + int targetCount = _ePad.Length; + int stciCount = stct.Count; + if (stciCount < targetCount) + { + //Debug.WriteLine("NOT start checking...stciCount=" + stciCount + ", targetCount=" + targetCount); + return false; + } + + long curTime = TJAPlayer3.Timer.n現在時刻; + //Debug.WriteLine("Start checking...targetCount=" + targetCount); + for (int i = targetCount - 1, j = stciCount - 1; i >= 0; i--, j--) + { + if (_ePad[i] != stct[j].ePad) + { + //Debug.WriteLine( "CMD解析: false targetCount=" + targetCount + ", i=" + i + ", j=" + j + ": ePad[]=" + _ePad[i] + ", stci[j] = " + stct[j].ePad ); + return false; + } + if (stct[j].eInst != _eInst) + { + //Debug.WriteLine( "CMD解析: false " + i ); + return false; + } + if (curTime - stct[j].time > 500) + { + //Debug.WriteLine( "CMD解析: false " + i + "; over 500ms" ); + return false; + } + curTime = stct[j].time; + } + + //Debug.Write( "CMD解析: 成功!(" + _ePad.Length + ") " ); + //for ( int i = 0; i < _ePad.Length; i++ ) Debug.Write( _ePad[ i ] + ", " ); + //Debug.WriteLine( "" ); + //stct.RemoveRange( 0, targetCount ); // #24396 2011.2.13 yyagi + stct.Clear(); // #24396 2011.2.13 yyagi Clear all command input history in case you succeeded inputting some command + + return true; + } + } + private CCommandHistory CommandHistory; + + private void tカーソルを下へ移動する() + { + if ((this.act曲リスト.r次の曲(r現在選択中の曲).eノード種別 == C曲リストノード.Eノード種別.SCORE) || this.act曲リスト.r次の曲(r現在選択中の曲).eノード種別 == C曲リストノード.Eノード種別.BACKBOX) + { + TJAPlayer3.stage選曲.bBGMIn再生した = false; + TJAPlayer3.Skin.bgm選曲画面イン.n位置_現在のサウンド = 0; + TJAPlayer3.Skin.bgm選曲画面.n位置_現在のサウンド = 0; + TJAPlayer3.Skin.bgm選曲画面イン.t停止する(); + TJAPlayer3.Skin.bgm選曲画面.t停止する(); + } + else + { + if (!bBGMIn再生した) + { + TJAPlayer3.stage選曲.bBGM再生済み = false; + if (TJAPlayer3.ConfigIni.bBGM音を発声する) + TJAPlayer3.Skin.bgm選曲画面イン.t再生する(); + bBGMIn再生した = true; + } + } + this.ctBackgroundFade.t開始(0, 600, 1, TJAPlayer3.Timer); + if (this.act曲リスト.ctBarOpen.n現在の値 >= 200 || this.ctBackgroundFade.n現在の値 >= 600 - 255) + TJAPlayer3.stage選曲.OldGenre = this.r現在選択中の曲.strジャンル; + this.act曲リスト.t次に移動(); + TJAPlayer3.Skin.soundカーソル移動音.t再生する(); + } + private void tカーソルを上へ移動する() + { + if ((this.act曲リスト.r前の曲(r現在選択中の曲).eノード種別 == C曲リストノード.Eノード種別.SCORE) || this.act曲リスト.r前の曲(r現在選択中の曲).eノード種別 == C曲リストノード.Eノード種別.BACKBOX) + { + TJAPlayer3.stage選曲.bBGMIn再生した = false; + TJAPlayer3.Skin.bgm選曲画面.t停止する(); + TJAPlayer3.Skin.bgm選曲画面イン.t停止する(); + } + else + { + if (!bBGMIn再生した) + { + TJAPlayer3.stage選曲.bBGM再生済み = false; + if (TJAPlayer3.ConfigIni.bBGM音を発声する) + TJAPlayer3.Skin.bgm選曲画面イン.t再生する(); + bBGMIn再生した = true; + } + } + this.ctBackgroundFade.t開始(0, 600, 1, TJAPlayer3.Timer); + if (this.act曲リスト.ctBarOpen.n現在の値 >= 200 || this.ctBackgroundFade.n現在の値 >= 600 - 255) + TJAPlayer3.stage選曲.OldGenre = this.r現在選択中の曲.strジャンル; + this.act曲リスト.t前に移動(); + TJAPlayer3.Skin.soundカーソル移動音.t再生する(); + } + private void tカーソルスキップ(bool Up) + { + this.ctBackgroundFade.t開始(0, 600, 1, TJAPlayer3.Timer); + if (this.act曲リスト.ctBarOpen.n現在の値 >= 200 || this.ctBackgroundFade.n現在の値 >= 600 - 255) + TJAPlayer3.stage選曲.OldGenre = this.r現在選択中の曲.strジャンル; + if (Up) this.act曲リスト.t前に移動(); + else this.act曲リスト.t次に移動(); + + TJAPlayer3.Skin.soundSkip.t再生する(); + } + + private void t曲をランダム選択する() + { + C曲リストノード song = this.act曲リスト.r現在選択中の曲; + if ((song.stackランダム演奏番号.Count == 0) || (song.listランダム用ノードリスト == null)) + { + if (song.listランダム用ノードリスト == null) + { + song.listランダム用ノードリスト = this.t指定された曲が存在する場所の曲を列挙する_子リスト含む(song); + } + int count = song.listランダム用ノードリスト.Count; + if (count == 0) + { + return; + } + int[] numArray = new int[count]; + for (int i = 0; i < count; i++) + { + numArray[i] = i; + } + for (int j = 0; j < (count * 1.5); j++) + { + int index = TJAPlayer3.Random.Next(count); + int num5 = TJAPlayer3.Random.Next(count); + int num6 = numArray[num5]; + numArray[num5] = numArray[index]; + numArray[index] = num6; + } + for (int k = 0; k < count; k++) + { + song.stackランダム演奏番号.Push(numArray[k]); + } + if (TJAPlayer3.ConfigIni.bLogDTX詳細ログ出力) + { + StringBuilder builder = new StringBuilder(0x400); + builder.Append(string.Format("ランダムインデックスリストを作成しました: {0}曲: ", song.stackランダム演奏番号.Count)); + for (int m = 0; m < count; m++) + { + builder.Append(string.Format("{0} ", numArray[m])); + } + Trace.TraceInformation(builder.ToString()); + } + } + this.r確定された曲 = song.listランダム用ノードリスト[song.stackランダム演奏番号.Pop()]; + this.n確定された曲の難易度[0] = this.act曲リスト.n現在のアンカ難易度レベルに最も近い難易度レベルを返す(this.r確定された曲); + this.r確定されたスコア = this.r確定された曲.arスコア[this.n確定された曲の難易度[0]]; + this.str確定された曲のジャンル = this.r確定された曲.strジャンル; + this.eフェードアウト完了時の戻り値 = E戻り値.選曲した; + this.actFOtoNowLoading.tフェードアウト開始(); // #27787 2012.3.10 yyagi 曲決定時の画面フェードアウトの省略 + base.eフェーズID = CStage.Eフェーズ.選曲_NowLoading画面へのフェードアウト; + if (TJAPlayer3.ConfigIni.bLogDTX詳細ログ出力) + { + int[] numArray2 = song.stackランダム演奏番号.ToArray(); + StringBuilder builder2 = new StringBuilder(0x400); + builder2.Append("ランダムインデックスリスト残り: "); + if (numArray2.Length > 0) + { + for (int n = 0; n < numArray2.Length; n++) + { + builder2.Append(string.Format("{0} ", numArray2[n])); + } + } + else + { + builder2.Append("(なし)"); + } + Trace.TraceInformation(builder2.ToString()); + } + TJAPlayer3.Skin.bgm選曲画面.t停止する(); + } + private void t曲を選択する() + { + this.r確定された曲 = this.act曲リスト.r現在選択中の曲; + this.r確定されたスコア = this.act曲リスト.r現在選択中のスコア; + this.n確定された曲の難易度[0] = this.act曲リスト.n現在選択中の曲の現在の難易度レベル; + this.str確定された曲のジャンル = this.r確定された曲.strジャンル; + if ((this.r確定された曲 != null) && (this.r確定されたスコア != null)) + { + this.eフェードアウト完了時の戻り値 = E戻り値.選曲した; + this.actFOtoNowLoading.tフェードアウト開始(); // #27787 2012.3.10 yyagi 曲決定時の画面フェードアウトの省略 + base.eフェーズID = CStage.Eフェーズ.選曲_NowLoading画面へのフェードアウト; + } + TJAPlayer3.Skin.bgm選曲画面.t停止する(); + } + public void t曲を選択する(int nCurrentLevel, int player) + { + this.r確定された曲 = this.act曲リスト.r現在選択中の曲; + this.r確定されたスコア = this.act曲リスト.r現在選択中のスコア; + this.n確定された曲の難易度[player] = nCurrentLevel; + this.str確定された曲のジャンル = this.r確定された曲.strジャンル; + if ((this.r確定された曲 != null) && (this.r確定されたスコア != null)) + { + this.eフェードアウト完了時の戻り値 = E戻り値.選曲した; + this.actFOtoNowLoading.tフェードアウト開始(); // #27787 2012.3.10 yyagi 曲決定時の画面フェードアウトの省略 + base.eフェーズID = CStage.Eフェーズ.選曲_NowLoading画面へのフェードアウト; + } + + TJAPlayer3.Skin.bgm選曲画面.t停止する(); + } + private List t指定された曲が存在する場所の曲を列挙する_子リスト含む(C曲リストノード song) + { + List list = new List(); + song = song.r親ノード; + if ((song == null) && (TJAPlayer3.Songs管理.list曲ルート.Count > 0)) + { + foreach (C曲リストノード c曲リストノード in TJAPlayer3.Songs管理.list曲ルート) + { + if ((c曲リストノード.eノード種別 == C曲リストノード.Eノード種別.SCORE) || (c曲リストノード.eノード種別 == C曲リストノード.Eノード種別.SCORE_MIDI)) + { + list.Add(c曲リストノード); + } + if ((c曲リストノード.list子リスト != null) && TJAPlayer3.ConfigIni.bランダムセレクトで子BOXを検索対象とする) + { + this.t指定された曲の子リストの曲を列挙する_孫リスト含む(c曲リストノード, ref list); + } + } + return list; + } + this.t指定された曲の子リストの曲を列挙する_孫リスト含む(song, ref list); + return list; + } + private void t指定された曲の子リストの曲を列挙する_孫リスト含む(C曲リストノード r親, ref List list) + { + if ((r親 != null) && (r親.list子リスト != null)) + { + foreach (C曲リストノード c曲リストノード in r親.list子リスト) + { + if ((c曲リストノード.eノード種別 == C曲リストノード.Eノード種別.SCORE) || (c曲リストノード.eノード種別 == C曲リストノード.Eノード種別.SCORE_MIDI)) + { + list.Add(c曲リストノード); + } + if ((c曲リストノード.list子リスト != null) && TJAPlayer3.ConfigIni.bランダムセレクトで子BOXを検索対象とする) + { + this.t指定された曲の子リストの曲を列挙する_孫リスト含む(c曲リストノード, ref list); + } + } + } + } + + public int nStrジャンルtoNum(string strジャンル) + { + int nGenre = 8; + for(int i = 0; i < TJAPlayer3.Skin.SongSelect_GenreName.Length; i++) + { + if(TJAPlayer3.Skin.SongSelect_GenreName[i] == strジャンル) + { + if (i + 1 >= TJAPlayer3.Skin.SongSelect_Genre_Background_Count) + { + nGenre = 0; + } + else + { + nGenre = i + 1; + } + break; + } + else + { + nGenre = 0; + } + } + return nGenre; + } + //----------------- + #endregion + } +} \ No newline at end of file diff --git a/TJAPlayer3/Stages/06.SongLoading/CStage曲読み込み.cs b/TJAPlayer3/Stages/06.SongLoading/CStage曲読み込み.cs new file mode 100644 index 00000000..54de732a --- /dev/null +++ b/TJAPlayer3/Stages/06.SongLoading/CStage曲読み込み.cs @@ -0,0 +1,645 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Diagnostics; +using System.Drawing; +using System.IO; +using SlimDX; +using System.Drawing.Text; +using FDK; + +namespace TJAPlayer3 +{ + internal class CStage曲読み込み : CStage + { + // コンストラクタ + + public CStage曲読み込み() + { + base.eステージID = CStage.Eステージ.曲読み込み; + base.eフェーズID = CStage.Eフェーズ.共通_通常状態; + base.b活性化してない = true; + //base.list子Activities.Add( this.actFI = new CActFIFOBlack() ); // #27787 2012.3.10 yyagi 曲読み込み画面のフェードインの省略 + //base.list子Activities.Add( this.actFO = new CActFIFOBlack() ); + } + + + // CStage 実装 + + public override void On活性化() + { + Trace.TraceInformation( "曲読み込みステージを活性化します。" ); + Trace.Indent(); + try + { + this.str曲タイトル = ""; + this.strSTAGEFILE = ""; + if( !string.IsNullOrEmpty( TJAPlayer3.ConfigIni.FontName ) ) + { + this.pfTITLE = new CPrivateFastFont( new FontFamily( TJAPlayer3.ConfigIni.FontName ), TJAPlayer3.Skin.SongLoading_Title_FontSize ); + this.pfSUBTITLE = new CPrivateFastFont( new FontFamily( TJAPlayer3.ConfigIni.FontName ), TJAPlayer3.Skin.SongLoading_SubTitle_FontSize); + } + else + { + this.pfTITLE = new CPrivateFastFont( new FontFamily("MS UI Gothic"), TJAPlayer3.Skin.SongLoading_Title_FontSize); + this.pfSUBTITLE = new CPrivateFastFont( new FontFamily("MS UI Gothic" ), TJAPlayer3.Skin.SongLoading_SubTitle_FontSize); + } + this.nBGM再生開始時刻 = -1; + this.nBGMの総再生時間ms = 0; + if( this.sd読み込み音 != null ) + { + TJAPlayer3.Sound管理.tサウンドを破棄する( this.sd読み込み音 ); + this.sd読み込み音 = null; + } + + if (TJAPlayer3.bコンパクトモード) + { + string strDTXファイルパス = TJAPlayer3.strコンパクトモードファイル; + + CDTX cdtx = new CDTX( strDTXファイルパス, true, 1.0, 0, 0 ); + if( File.Exists( cdtx.strフォルダ名 + @"set.def" ) ) + cdtx = new CDTX( strDTXファイルパス, true, 1.0, 0, 1 ); + + this.str曲タイトル = cdtx.TITLE; + this.strサブタイトル = cdtx.SUBTITLE; + + cdtx.On非活性化(); + } + else + { + string strDTXファイルパス = TJAPlayer3.stage選曲.r確定されたスコア.ファイル情報.ファイルの絶対パス; + + var strフォルダ名 = Path.GetDirectoryName(strDTXファイルパス) + @"\"; + + if (File.Exists(strフォルダ名 + @"set.def")) + { + var cdtx = new CDTX(strDTXファイルパス, true, 1.0, 0, 1); + + this.str曲タイトル = cdtx.TITLE; + this.strサブタイトル = cdtx.SUBTITLE; + + cdtx.On非活性化(); + } + else + { + var 譜面情報 = TJAPlayer3.stage選曲.r確定されたスコア.譜面情報; + this.str曲タイトル = 譜面情報.タイトル; + this.strサブタイトル = 譜面情報.strサブタイトル; + } + } + + // For the moment, detect that we are performing + // calibration via there being an actual single + // player and the special song title and subtitle + // of the .tja used to perform input calibration + TJAPlayer3.IsPerformingCalibration = + !TJAPlayer3.ConfigIni.b太鼓パートAutoPlay && + TJAPlayer3.ConfigIni.nPlayerCount == 1 && + str曲タイトル == "Input Calibration" && + strサブタイトル == "TJAPlayer3 Developers"; + + this.strSTAGEFILE = CSkin.Path(@"Graphics\4_SongLoading\Background.png"); + + base.On活性化(); + } + finally + { + Trace.TraceInformation( "曲読み込みステージの活性化を完了しました。" ); + Trace.Unindent(); + } + } + public override void On非活性化() + { + Trace.TraceInformation( "曲読み込みステージを非活性化します。" ); + Trace.Indent(); + try + { + TJAPlayer3.t安全にDisposeする(ref this.pfTITLE); + TJAPlayer3.t安全にDisposeする(ref this.pfSUBTITLE); + base.On非活性化(); + } + finally + { + Trace.TraceInformation( "曲読み込みステージの非活性化を完了しました。" ); + Trace.Unindent(); + } + } + public override void OnManagedリソースの作成() + { + if( !base.b活性化してない ) + { + this.tx背景 = TJAPlayer3.tテクスチャの生成( this.strSTAGEFILE, false ); + //this.txSongnamePlate = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\6_SongnamePlate.png" ) ); + this.ct待機 = new CCounter( 0, TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan ? 1000 : 600, 5, TJAPlayer3.Timer ); + this.ct曲名表示 = new CCounter( 1, 30, 30, TJAPlayer3.Timer ); + try + { + // When performing calibration, inform the player that + // calibration is about to begin, rather than + // displaying the song title and subtitle as usual. + + var タイトル = TJAPlayer3.IsPerformingCalibration + ? "Input calibration is about to begin." + : this.str曲タイトル; + + var サブタイトル = TJAPlayer3.IsPerformingCalibration + ? "Please play as accurately as possible." + : this.strサブタイトル; + + if( !string.IsNullOrEmpty(タイトル) ) + { + //this.txタイトル = new CTexture( CDTXMania.app.Device, image, CDTXMania.TextureFormat ); + //this.txタイトル.vc拡大縮小倍率 = new Vector3( 0.5f, 0.5f, 1f ); + + + using (var bmpSongTitle = this.pfTITLE.DrawPrivateFont( タイトル, TJAPlayer3.Skin.SongLoading_Title_ForeColor, TJAPlayer3.Skin.SongLoading_Title_BackColor )) + + { + this.txタイトル = new CTexture( TJAPlayer3.app.Device, bmpSongTitle, TJAPlayer3.TextureFormat, false ); + txタイトル.vc拡大縮小倍率.X = TJAPlayer3.GetSongNameXScaling(ref txタイトル, 710); + } + + using (var bmpSongSubTitle = this.pfSUBTITLE.DrawPrivateFont( サブタイトル, TJAPlayer3.Skin.SongLoading_SubTitle_ForeColor, TJAPlayer3.Skin.SongLoading_SubTitle_BackColor )) + + + { + this.txサブタイトル = new CTexture( TJAPlayer3.app.Device, bmpSongSubTitle, TJAPlayer3.TextureFormat, false ); + } + } + else + { + this.txタイトル = null; + this.txサブタイトル = null; + } + + } + catch ( CTextureCreateFailedException e ) + { + Trace.TraceError( e.ToString() ); + Trace.TraceError( "テクスチャの生成に失敗しました。({0})", new object[] { this.strSTAGEFILE } ); + this.txタイトル = null; + this.txサブタイトル = null; + this.tx背景 = null; + } + base.OnManagedリソースの作成(); + } + } + public override void OnManagedリソースの解放() + { + if( !base.b活性化してない ) + { + TJAPlayer3.tテクスチャの解放( ref this.tx背景 ); + TJAPlayer3.tテクスチャの解放( ref this.txタイトル ); + //CDTXMania.tテクスチャの解放( ref this.txSongnamePlate ); + TJAPlayer3.tテクスチャの解放( ref this.txサブタイトル ); + base.OnManagedリソースの解放(); + } + } + public override int On進行描画() + { + string str; + + if( base.b活性化してない ) + return 0; + + #region [ 初めての進行描画 ] + //----------------------------- + if( base.b初めての進行描画 ) + { + Cスコア cスコア1 = TJAPlayer3.stage選曲.r確定されたスコア; + if( this.sd読み込み音 != null ) + { + if( TJAPlayer3.Skin.sound曲読込開始音.b排他 && ( CSkin.Cシステムサウンド.r最後に再生した排他システムサウンド != null ) ) + { + CSkin.Cシステムサウンド.r最後に再生した排他システムサウンド.t停止する(); + } + this.sd読み込み音.t再生を開始する(); + this.nBGM再生開始時刻 = CSound管理.rc演奏用タイマ.n現在時刻; + this.nBGMの総再生時間ms = this.sd読み込み音.n総演奏時間ms; + } + else + { + TJAPlayer3.Skin.sound曲読込開始音.t再生する(); + this.nBGM再生開始時刻 = CSound管理.rc演奏用タイマ.n現在時刻; + this.nBGMの総再生時間ms = TJAPlayer3.Skin.sound曲読込開始音.n長さ_現在のサウンド; + } + //this.actFI.tフェードイン開始(); // #27787 2012.3.10 yyagi 曲読み込み画面のフェードインの省略 + base.eフェーズID = CStage.Eフェーズ.共通_フェードイン; + base.b初めての進行描画 = false; + + nWAVcount = 1; + bitmapFilename = new Bitmap( 640, 24 ); + graphicsFilename = Graphics.FromImage( bitmapFilename ); + graphicsFilename.TextRenderingHint = TextRenderingHint.AntiAlias; + ftFilename = new Font("MS UI Gothic", 24f, FontStyle.Bold, GraphicsUnit.Pixel ); + } + //----------------------------- + #endregion + this.ct待機.t進行(); + + #region [ ESC押下時は選曲画面に戻る ] + if ( tキー入力() ) + { + if ( this.sd読み込み音 != null ) + { + this.sd読み込み音.tサウンドを停止する(); + this.sd読み込み音.t解放する(); + } + return (int) E曲読込画面の戻り値.読込中止; + } + #endregion + + if(TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Dan) + { + #region [ 背景、音符+タイトル表示 ] + //----------------------------- + this.ct曲名表示.t進行(); + if (TJAPlayer3.Tx.SongLoading_BgWait != null) TJAPlayer3.Tx.SongLoading_BgWait.t2D描画(TJAPlayer3.app.Device, 0, 0); + if (TJAPlayer3.Tx.SongLoading_Chara != null) TJAPlayer3.Tx.SongLoading_Chara.t2D描画(TJAPlayer3.app.Device, 0, 0); + //CDTXMania.act文字コンソール.tPrint( 0, 0, C文字コンソール.Eフォント種別.灰, this.ct曲名表示.n現在の値.ToString() ); + + if (TJAPlayer3.Tx.SongLoading_Plate != null) + { + TJAPlayer3.Tx.SongLoading_Plate.bスクリーン合成 = TJAPlayer3.Skin.SongLoading_Plate_ScreenBlend; //あまりにも出番が無い + TJAPlayer3.Tx.SongLoading_Plate.Opacity = 255; + if (TJAPlayer3.Skin.SongLoading_Plate_ReferencePoint == CSkin.ReferencePoint.Left) + { + TJAPlayer3.Tx.SongLoading_Plate.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.SongLoading_Plate_X, TJAPlayer3.Skin.SongLoading_Plate_Y - (TJAPlayer3.Tx.SongLoading_Plate.sz画像サイズ.Height / 2)); + } + else if (TJAPlayer3.Skin.SongLoading_Plate_ReferencePoint == CSkin.ReferencePoint.Right) + { + TJAPlayer3.Tx.SongLoading_Plate.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.SongLoading_Plate_X - TJAPlayer3.Tx.SongLoading_Plate.sz画像サイズ.Width, TJAPlayer3.Skin.SongLoading_Plate_Y - (TJAPlayer3.Tx.SongLoading_Plate.sz画像サイズ.Height / 2)); + } + else + { + TJAPlayer3.Tx.SongLoading_Plate.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.SongLoading_Plate_X - (TJAPlayer3.Tx.SongLoading_Plate.sz画像サイズ.Width / 2), TJAPlayer3.Skin.SongLoading_Plate_Y - (TJAPlayer3.Tx.SongLoading_Plate.sz画像サイズ.Height / 2)); + } + } + //CDTXMania.act文字コンソール.tPrint( 0, 16, C文字コンソール.Eフォント種別.灰, C変換.nParsentTo255( ( this.ct曲名表示.n現在の値 / 30.0 ) ).ToString() ); + + + int y = 720 - 45; + if (this.txタイトル != null) + { + int nサブタイトル補正 = string.IsNullOrEmpty(TJAPlayer3.stage選曲.r確定されたスコア.譜面情報.strサブタイトル) ? 15 : 0; + + this.txタイトル.Opacity = 255; + if (TJAPlayer3.Skin.SongLoading_Title_ReferencePoint == CSkin.ReferencePoint.Left) + { + this.txタイトル.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.SongLoading_Title_X, TJAPlayer3.Skin.SongLoading_Title_Y - (this.txタイトル.sz画像サイズ.Height / 2) + nサブタイトル補正); + } + else if (TJAPlayer3.Skin.SongLoading_Title_ReferencePoint == CSkin.ReferencePoint.Right) + { + this.txタイトル.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.SongLoading_Title_X - (this.txタイトル.sz画像サイズ.Width * txタイトル.vc拡大縮小倍率.X), TJAPlayer3.Skin.SongLoading_Title_Y - (this.txタイトル.sz画像サイズ.Height / 2) + nサブタイトル補正); + } + else + { + this.txタイトル.t2D描画(TJAPlayer3.app.Device, (TJAPlayer3.Skin.SongLoading_Title_X - ((this.txタイトル.sz画像サイズ.Width * txタイトル.vc拡大縮小倍率.X) / 2)), TJAPlayer3.Skin.SongLoading_Title_Y - (this.txタイトル.sz画像サイズ.Height / 2) + nサブタイトル補正); + } + } + if (this.txサブタイトル != null) + { + this.txサブタイトル.Opacity = 255; + if (TJAPlayer3.Skin.SongLoading_SubTitle_ReferencePoint == CSkin.ReferencePoint.Left) + { + this.txサブタイトル.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.SongLoading_SubTitle_X, TJAPlayer3.Skin.SongLoading_SubTitle_Y - (this.txサブタイトル.sz画像サイズ.Height / 2)); + } + else if (TJAPlayer3.Skin.SongLoading_Title_ReferencePoint == CSkin.ReferencePoint.Right) + { + this.txサブタイトル.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.SongLoading_SubTitle_X - (this.txサブタイトル.sz画像サイズ.Width * txタイトル.vc拡大縮小倍率.X), TJAPlayer3.Skin.SongLoading_SubTitle_Y - (this.txサブタイトル.sz画像サイズ.Height / 2)); + } + else + { + this.txサブタイトル.t2D描画(TJAPlayer3.app.Device, (TJAPlayer3.Skin.SongLoading_SubTitle_X - ((this.txサブタイトル.sz画像サイズ.Width * txサブタイトル.vc拡大縮小倍率.X) / 2)), TJAPlayer3.Skin.SongLoading_SubTitle_Y - (this.txサブタイトル.sz画像サイズ.Height / 2)); + } + } + //----------------------------- + #endregion + } + else + { + #region [ 段位時の曲読み込み画面 ] + + TJAPlayer3.Tx.SongLoading_Bg_Dan.t2D描画(TJAPlayer3.app.Device, 0, 0 - (ct待機.n現在の値 <= 600 ? ct待機.n現在の値 / 10f : 60)); + if(TJAPlayer3.stage段位選択.段位リスト.stバー情報[TJAPlayer3.stage段位選択.段位リスト.n現在の選択行].txDanPlate != null) TJAPlayer3.stage段位選択.段位リスト.stバー情報[TJAPlayer3.stage段位選択.段位リスト.n現在の選択行].txDanPlate.Opacity = (int)(ct待機.n現在の値 <= 51 ? ( ct待機.n現在の値 / 0.2f) : 255 - (this.ct待機.n現在の値 - 949) / 0.2); + TJAPlayer3.stage段位選択.段位リスト.stバー情報[TJAPlayer3.stage段位選択.段位リスト.n現在の選択行].txDanPlate?.t2D中心基準描画(TJAPlayer3.app.Device, 1121, 213); + + if (TJAPlayer3.Tx.Tile_Black != null) + { + TJAPlayer3.Tx.Tile_Black.Opacity = (int)(ct待機.n現在の値 <= 51 ? (255 - ct待機.n現在の値 / 0.2f) : (this.ct待機.n現在の値 - 949) / 0.2); + for (int i = 0; i <= (SampleFramework.GameWindowSize.Width / 64); i++) // #23510 2010.10.31 yyagi: change "clientSize.Width" to "640" to fix FIFO drawing size + { + for (int j = 0; j <= (SampleFramework.GameWindowSize.Height / 64); j++) // #23510 2010.10.31 yyagi: change "clientSize.Height" to "480" to fix FIFO drawing size + { + TJAPlayer3.Tx.Tile_Black.t2D描画(TJAPlayer3.app.Device, i * 64, j * 64); + } + } + } + + #endregion + } + + switch ( base.eフェーズID ) + { + case CStage.Eフェーズ.共通_フェードイン: + //if( this.actFI.On進行描画() != 0 ) // #27787 2012.3.10 yyagi 曲読み込み画面のフェードインの省略 + // 必ず一度「CStaeg.Eフェーズ.共通_フェードイン」フェーズを経由させること。 + // さもないと、曲読み込みが完了するまで、曲読み込み画面が描画されない。 + base.eフェーズID = CStage.Eフェーズ.NOWLOADING_DTXファイルを読み込む; + return (int) E曲読込画面の戻り値.継続; + + case CStage.Eフェーズ.NOWLOADING_DTXファイルを読み込む: + { + timeBeginLoad = DateTime.Now; + TimeSpan span; + str = null; + if( !TJAPlayer3.bコンパクトモード ) + str = TJAPlayer3.stage選曲.r確定されたスコア.ファイル情報.ファイルの絶対パス; + else + str = TJAPlayer3.strコンパクトモードファイル; + + CScoreIni ini = new CScoreIni( str + ".score.ini" ); + ini.t全演奏記録セクションの整合性をチェックし不整合があればリセットする(); + + if( ( TJAPlayer3.DTX != null ) && TJAPlayer3.DTX.b活性化してる ) + TJAPlayer3.DTX.On非活性化(); + + //if( CDTXMania.DTX == null ) + { + TJAPlayer3.DTX = new CDTX(str, false, 1.0, ini.stファイル.BGMAdjust, 0, 0, true, TJAPlayer3.stage選曲.n確定された曲の難易度[0]); + if ( TJAPlayer3.ConfigIni.nPlayerCount == 2 ) + TJAPlayer3.DTX_2P = new CDTX(str, false, 1.0, ini.stファイル.BGMAdjust, 0, 1, true, TJAPlayer3.stage選曲.n確定された曲の難易度[1]); + if ( File.Exists( TJAPlayer3.DTX.strフォルダ名 + @"\\set.def" ) ) + { + TJAPlayer3.DTX_2P = new CDTX(str, false, 1.0, ini.stファイル.BGMAdjust, 0, 1, true, TJAPlayer3.stage選曲.n確定された曲の難易度[0]); + if ( TJAPlayer3.ConfigIni.nPlayerCount == 2 ) + TJAPlayer3.DTX_2P = new CDTX(str, false, 1.0, ini.stファイル.BGMAdjust, 0, 1, true, TJAPlayer3.stage選曲.n確定された曲の難易度[1]); + } + + Trace.TraceInformation( "----曲情報-----------------" ); + Trace.TraceInformation( "TITLE: {0}", TJAPlayer3.DTX.TITLE ); + Trace.TraceInformation( "FILE: {0}", TJAPlayer3.DTX.strファイル名の絶対パス ); + Trace.TraceInformation( "---------------------------" ); + + span = (TimeSpan) ( DateTime.Now - timeBeginLoad ); + Trace.TraceInformation( "DTX読込所要時間: {0}", span.ToString() ); + + // 段位認定モード用。 + if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan && TJAPlayer3.DTX.List_DanSongs != null) + { + var pfTitle = new CPrivateFont(); + var pfSubTitle = new CPrivateFont(); + if (!string.IsNullOrEmpty(TJAPlayer3.ConfigIni.FontName)) + { + pfTitle = new CPrivateFont(new FontFamily(TJAPlayer3.ConfigIni.FontName), 30); + pfSubTitle = new CPrivateFont(new FontFamily(TJAPlayer3.ConfigIni.FontName), 22); + } + else + { + pfTitle = new CPrivateFont(new FontFamily("MS UI Gothic"), 30); + pfSubTitle = new CPrivateFont(new FontFamily("MS UI Gothic"), 22); + } + + var titleForeColor = TJAPlayer3.Skin.Game_DanC_Title_ForeColor; + var titleBackColor = TJAPlayer3.Skin.Game_DanC_Title_BackColor; + var subtitleForeColor = TJAPlayer3.Skin.Game_DanC_SubTitle_ForeColor; + var subtitleBackColor = TJAPlayer3.Skin.Game_DanC_SubTitle_BackColor; + + for (int i = 0; i < TJAPlayer3.DTX.List_DanSongs.Count; i++) + { + if (!string.IsNullOrEmpty(TJAPlayer3.DTX.List_DanSongs[i].Title)) + { + using (var bmpSongTitle = pfTitle.DrawPrivateFont(TJAPlayer3.DTX.List_DanSongs[i].Title, titleForeColor, titleBackColor)) + { + TJAPlayer3.DTX.List_DanSongs[i].TitleTex = TJAPlayer3.tテクスチャの生成(bmpSongTitle, false); + TJAPlayer3.DTX.List_DanSongs[i].TitleTex.vc拡大縮小倍率.X = TJAPlayer3.GetSongNameXScaling(ref TJAPlayer3.DTX.List_DanSongs[i].TitleTex, 710); + } + } + + if (!string.IsNullOrEmpty(TJAPlayer3.DTX.List_DanSongs[i].SubTitle)) + { + using (var bmpSongSubTitle = pfSubTitle.DrawPrivateFont(TJAPlayer3.DTX.List_DanSongs[i].SubTitle, subtitleForeColor, subtitleBackColor)) + { + TJAPlayer3.DTX.List_DanSongs[i].SubTitleTex = TJAPlayer3.tテクスチャの生成(bmpSongSubTitle, false); + TJAPlayer3.DTX.List_DanSongs[i].SubTitleTex.vc拡大縮小倍率.X = TJAPlayer3.GetSongNameXScaling(ref TJAPlayer3.DTX.List_DanSongs[i].SubTitleTex, 710); + } + } + + } + + pfTitle?.Dispose(); + pfSubTitle?.Dispose(); + } + } + + //2017.01.28 DD Config.iniに反映しないように変更 + /* + switch( CDTXMania.DTX.nScoreModeTmp ) + { + case 0: + CDTXMania.ConfigIni.nScoreMode = 0; + break; + case 1: + CDTXMania.ConfigIni.nScoreMode = 1; + break; + case 2: + CDTXMania.ConfigIni.nScoreMode = 2; + break; + case -1: + CDTXMania.ConfigIni.nScoreMode = 1; + break; + } + */ + + base.eフェーズID = CStage.Eフェーズ.NOWLOADING_WAV読み込み待機; + timeBeginLoadWAV = DateTime.Now; + return (int) E曲読込画面の戻り値.継続; + } + + case CStage.Eフェーズ.NOWLOADING_WAV読み込み待機: + { + if( this.ct待機.n現在の値 > 260 ) + { + base.eフェーズID = CStage.Eフェーズ.NOWLOADING_WAVファイルを読み込む; + } + return (int) E曲読込画面の戻り値.継続; + } + + case CStage.Eフェーズ.NOWLOADING_WAVファイルを読み込む: + { + if ( nWAVcount == 1 && TJAPlayer3.DTX.listWAV.Count > 0 ) // #28934 2012.7.7 yyagi (added checking Count) + { + ShowProgressByFilename( TJAPlayer3.DTX.listWAV[ nWAVcount ].strファイル名 ); + } + int looptime = (TJAPlayer3.ConfigIni.b垂直帰線待ちを行う)? 3 : 1; // VSyncWait=ON時は1frame(1/60s)あたり3つ読むようにする + for ( int i = 0; i < looptime && nWAVcount <= TJAPlayer3.DTX.listWAV.Count; i++ ) + { + if ( TJAPlayer3.DTX.listWAV[ nWAVcount ].listこのWAVを使用するチャンネル番号の集合.Count > 0 ) // #28674 2012.5.8 yyagi + { + TJAPlayer3.DTX.tWAVの読み込み( TJAPlayer3.DTX.listWAV[ nWAVcount ] ); + } + nWAVcount++; + } + if ( nWAVcount <= TJAPlayer3.DTX.listWAV.Count ) + { + ShowProgressByFilename( TJAPlayer3.DTX.listWAV[ nWAVcount ].strファイル名 ); + } + if ( nWAVcount > TJAPlayer3.DTX.listWAV.Count ) + { + TimeSpan span = ( TimeSpan ) ( DateTime.Now - timeBeginLoadWAV ); + Trace.TraceInformation( "WAV読込所要時間({0,4}): {1}", TJAPlayer3.DTX.listWAV.Count, span.ToString() ); + timeBeginLoadWAV = DateTime.Now; + + if ( TJAPlayer3.ConfigIni.bDynamicBassMixerManagement ) + { + TJAPlayer3.DTX.PlanToAddMixerChannel(); + } + TJAPlayer3.DTX.t太鼓チップのランダム化( TJAPlayer3.ConfigIni.eRandom.Taiko ); + + TJAPlayer3.stage演奏ドラム画面.On活性化(); + + span = (TimeSpan) ( DateTime.Now - timeBeginLoadWAV ); + + base.eフェーズID = CStage.Eフェーズ.NOWLOADING_BMPファイルを読み込む; + } + return (int) E曲読込画面の戻り値.継続; + } + + case CStage.Eフェーズ.NOWLOADING_BMPファイルを読み込む: + { + TimeSpan span; + DateTime timeBeginLoadBMPAVI = DateTime.Now; + + if ( TJAPlayer3.ConfigIni.bAVI有効 ) + TJAPlayer3.DTX.tAVIの読み込み(); + span = ( TimeSpan ) ( DateTime.Now - timeBeginLoadBMPAVI ); + + span = ( TimeSpan ) ( DateTime.Now - timeBeginLoad ); + Trace.TraceInformation( "総読込時間: {0}", span.ToString() ); + + if(TJAPlayer3.ConfigIni.FastRender) + { + var fastRender = new FastRender(); + fastRender.Render(); + fastRender = null; + } + + + if ( bitmapFilename != null ) + { + bitmapFilename.Dispose(); + bitmapFilename = null; + } + if ( graphicsFilename != null ) + { + graphicsFilename.Dispose(); + graphicsFilename = null; + } + if ( ftFilename != null ) + { + ftFilename.Dispose(); + ftFilename = null; + } + TJAPlayer3.Timer.t更新(); + //CSound管理.rc演奏用タイマ.t更新(); + base.eフェーズID = CStage.Eフェーズ.NOWLOADING_システムサウンドBGMの完了を待つ; + return (int) E曲読込画面の戻り値.継続; + } + + case CStage.Eフェーズ.NOWLOADING_システムサウンドBGMの完了を待つ: + { + long nCurrentTime = TJAPlayer3.Timer.n現在時刻; + if( nCurrentTime < this.nBGM再生開始時刻 ) + this.nBGM再生開始時刻 = nCurrentTime; + +// if ( ( nCurrentTime - this.nBGM再生開始時刻 ) > ( this.nBGMの総再生時間ms - 1000 ) ) + if ( ( nCurrentTime - this.nBGM再生開始時刻 ) >= ( this.nBGMの総再生時間ms ) ) // #27787 2012.3.10 yyagi 1000ms == フェードイン分の時間 + { + if ( !TJAPlayer3.DTXVmode.Enabled ) + { + } + base.eフェーズID = CStage.Eフェーズ.共通_フェードアウト; + } + return (int) E曲読込画面の戻り値.継続; + } + + case CStage.Eフェーズ.共通_フェードアウト: + if ( this.ct待機.b終了値に達してない ) // DTXVモード時は、フェードアウト省略 + return (int)E曲読込画面の戻り値.継続; + + if ( txFilename != null ) + { + txFilename.Dispose(); + } + if ( this.sd読み込み音 != null ) + { + this.sd読み込み音.t解放する(); + } + return (int) E曲読込画面の戻り値.読込完了; + } + return (int) E曲読込画面の戻り値.継続; + } + + /// + /// ESC押下時、trueを返す + /// + /// + protected bool tキー入力() + { + IInputDevice keyboard = TJAPlayer3.Input管理.Keyboard; + if ( keyboard.bキーが押された( (int)SlimDXKeys.Key.Escape ) ) // escape (exit) + { + return true; + } + return false; + } + + + private void ShowProgressByFilename(string strファイル名 ) + { + if ( graphicsFilename != null && ftFilename != null ) + { + graphicsFilename.Clear( Color.Transparent ); + graphicsFilename.DrawString( strファイル名, ftFilename, Brushes.White, new RectangleF( 0, 0, 640, 24 ) ); + if ( txFilename != null ) + { + txFilename.Dispose(); + } + txFilename = new CTexture( TJAPlayer3.app.Device, bitmapFilename, TJAPlayer3.TextureFormat ); + txFilename.vc拡大縮小倍率 = new Vector3( 0.5f, 0.5f, 1f ); + txFilename.t2D描画( TJAPlayer3.app.Device, 0, 720 - 16 ); + } + } + + // その他 + + #region [ private ] + //----------------- + //private CActFIFOBlack actFI; + //private CActFIFOBlack actFO; + private long nBGMの総再生時間ms; + private long nBGM再生開始時刻; + private CSound sd読み込み音; + private string strSTAGEFILE; + private string str曲タイトル; + private string strサブタイトル; + private CTexture txタイトル; + private CTexture txサブタイトル; + private CTexture tx背景; + //private CTexture txSongnamePlate; + private DateTime timeBeginLoad; + private DateTime timeBeginLoadWAV; + private int nWAVcount; + private CTexture txFilename; + private Bitmap bitmapFilename; + private Graphics graphicsFilename; + private Font ftFilename; + private CCounter ct待機; + private CCounter ct曲名表示; + + private CPrivateFastFont pfTITLE; + private CPrivateFastFont pfSUBTITLE; + //----------------- + #endregion + } +} diff --git a/TJAPlayer3/Stages/06.SongLoading/FastRender.cs b/TJAPlayer3/Stages/06.SongLoading/FastRender.cs new file mode 100644 index 00000000..2ef61480 --- /dev/null +++ b/TJAPlayer3/Stages/06.SongLoading/FastRender.cs @@ -0,0 +1,90 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using FDK; + +namespace TJAPlayer3 +{ + class FastRender + { + public FastRender() + { + + } + + public void Render() + { + for (int i = 0; i < TJAPlayer3.Skin.Game_Chara_Ptn_10combo; i++) + { + NullCheckAndRender(ref TJAPlayer3.Tx.Chara_10Combo[i]); + } + for (int i = 0; i < TJAPlayer3.Skin.Game_Chara_Ptn_10combo_Max; i++) + { + NullCheckAndRender(ref TJAPlayer3.Tx.Chara_10Combo_Maxed[i]); + } + for (int i = 0; i < TJAPlayer3.Skin.Game_Chara_Ptn_GoGoStart; i++) + { + NullCheckAndRender(ref TJAPlayer3.Tx.Chara_GoGoStart[i]); + } + for (int i = 0; i < TJAPlayer3.Skin.Game_Chara_Ptn_GoGoStart_Max; i++) + { + NullCheckAndRender(ref TJAPlayer3.Tx.Chara_GoGoStart_Maxed[i]); + } + for (int i = 0; i < TJAPlayer3.Skin.Game_Chara_Ptn_Normal; i++) + { + NullCheckAndRender(ref TJAPlayer3.Tx.Chara_Normal[i]); + } + for (int i = 0; i < TJAPlayer3.Skin.Game_Chara_Ptn_Clear; i++) + { + NullCheckAndRender(ref TJAPlayer3.Tx.Chara_Normal_Cleared[i]); + } + for (int i = 0; i < TJAPlayer3.Skin.Game_Chara_Ptn_ClearIn; i++) + { + NullCheckAndRender(ref TJAPlayer3.Tx.Chara_Become_Cleared[i]); + } + for (int i = 0; i < TJAPlayer3.Skin.Game_Chara_Ptn_SoulIn; i++) + { + NullCheckAndRender(ref TJAPlayer3.Tx.Chara_Become_Maxed[i]); + } + for (int i = 0; i < TJAPlayer3.Skin.Game_Chara_Ptn_Balloon_Breaking; i++) + { + NullCheckAndRender(ref TJAPlayer3.Tx.Chara_Balloon_Breaking[i]); + } + for (int i = 0; i < TJAPlayer3.Skin.Game_Chara_Ptn_Balloon_Broke; i++) + { + NullCheckAndRender(ref TJAPlayer3.Tx.Chara_Balloon_Broke[i]); + } + for (int i = 0; i < TJAPlayer3.Skin.Game_Chara_Ptn_Balloon_Miss; i++) + { + NullCheckAndRender(ref TJAPlayer3.Tx.Chara_Balloon_Miss[i]); + } + + for (int i = 0; i < 5; i++) + { + for (int k = 0; k < TJAPlayer3.Skin.Game_Dancer_Ptn; k++) + { + NullCheckAndRender(ref TJAPlayer3.Tx.Dancer[i][k]); + } + } + + NullCheckAndRender(ref TJAPlayer3.Tx.Effects_GoGoSplash); + NullCheckAndRender(ref TJAPlayer3.Tx.Runner); + for (int i = 0; i < TJAPlayer3.Skin.Game_Mob_Ptn; i++) + { + NullCheckAndRender(ref TJAPlayer3.Tx.Mob[i]); + } + + NullCheckAndRender(ref TJAPlayer3.Tx.PuchiChara); + + } + + private void NullCheckAndRender(ref CTexture tx) + { + if (tx == null) return; + tx.Opacity = 0; + tx.t2D描画(TJAPlayer3.app.Device, 0, 0); + tx.Opacity = 255; + } + } +} diff --git a/TJAPlayer3/Stages/07.Game/CAct演奏AVI.cs b/TJAPlayer3/Stages/07.Game/CAct演奏AVI.cs new file mode 100644 index 00000000..36355be0 --- /dev/null +++ b/TJAPlayer3/Stages/07.Game/CAct演奏AVI.cs @@ -0,0 +1,610 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Drawing; +using SlimDX; +using SlimDX.Direct3D9; +using FDK; +using DirectShowLib; + +namespace TJAPlayer3 +{ + internal class CAct演奏AVI : CActivity + { + // コンストラクタ + + public CAct演奏AVI() + { + base.b活性化してない = true; + } + + + // メソッド + + public void Start( int nチャンネル番号, CDTX.CAVI rAVI, CDTX.CDirectShow dsBGV, int n開始サイズW, int n開始サイズH, int n終了サイズW, int n終了サイズH, int n画像側開始位置X, int n画像側開始位置Y, int n画像側終了位置X, int n画像側終了位置Y, int n表示側開始位置X, int n表示側開始位置Y, int n表示側終了位置X, int n表示側終了位置Y, int n総移動時間ms, int n移動開始時刻ms ) + { + if ( ( nチャンネル番号 == 0x54 || nチャンネル番号 == 0x5A ) && TJAPlayer3.ConfigIni.bAVI有効 ) + { + this.rAVI = rAVI; + this.dsBGV = dsBGV; + if (this.dsBGV != null && this.dsBGV.dshow != null) + { + this.framewidth = (uint)this.dsBGV.dshow.n幅px; + this.frameheight = (uint)this.dsBGV.dshow.n高さpx; + float f拡大率x; + float f拡大率y; + this.fAVIアスペクト比 = ((float)this.framewidth) / ((float)this.frameheight); + + if ( fAVIアスペクト比 < 1.77f ) + { + #region[ 旧規格クリップ時の処理。結果的には面倒な処理なんだよな____ ] + this.n開始サイズW = n開始サイズW; + this.n開始サイズH = n開始サイズH; + this.n終了サイズW = n終了サイズW; + this.n終了サイズH = n終了サイズH; + this.n画像側開始位置X = n画像側開始位置X; + this.n画像側開始位置Y = n画像側開始位置Y; + this.n画像側終了位置X = n画像側終了位置X; + this.n画像側終了位置Y = n画像側終了位置Y; + this.n表示側開始位置X = n表示側開始位置X; + this.n表示側開始位置Y = n表示側開始位置Y; + this.n表示側終了位置X = n表示側終了位置X; + this.n表示側終了位置Y = n表示側終了位置Y; + this.n総移動時間ms = n総移動時間ms; + this.n移動開始時刻ms = (n移動開始時刻ms != -1) ? n移動開始時刻ms : (long)(CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)); + this.n前回表示したフレーム番号 = -1; + + this.vclip = new Vector3(1.42f, 1.42f, 1f); + this.dsBGV = null; + #endregion + } + if (this.tx描画用 == null) + { + this.tx描画用 = new CTexture(TJAPlayer3.app.Device, (int)this.framewidth, (int)this.frameheight, TJAPlayer3.app.GraphicsDeviceManager.CurrentSettings.BackBufferFormat, Pool.Managed); + } + + #region[ リサイズ処理 ] + if (fAVIアスペクト比 < 1.77f) + { + //旧企画クリップだった場合 + this.ratio1 = 720f / ((float)this.frameheight); + this.position = (int)((1280f - (this.framewidth * this.ratio1)) / 2f); + int num = (int)(this.framewidth * this.ratio1); + if (num <= 565) + { + this.position = 295 + ((int)((565f - (this.framewidth * this.ratio1)) / 2f)); + this.i1 = 0; + this.i2 = (int)this.framewidth; + this.rec = new Rectangle(0, 0, 0, 0); + this.rec3 = new Rectangle(0, 0, 0, 0); + this.rec2 = new Rectangle(0, 0, (int)this.framewidth, (int)this.frameheight); + } + else + { + this.position = 295 - ((int)(((this.framewidth * this.ratio1) - 565f) / 2f)); + this.i1 = (int)(((float)(295 - this.position)) / this.ratio1); + this.i2 = (int)((565f / ((float)num)) * this.framewidth); + this.rec = new Rectangle(0, 0, this.i1, (int)this.frameheight); + this.rec3 = new Rectangle(this.i1 + this.i2, 0, (((int)this.framewidth) - this.i1) - this.i2, (int)this.frameheight); + this.rec2 = new Rectangle(this.i1, 0, this.i2, (int)this.frameheight); + } + this.tx描画用.vc拡大縮小倍率.X = this.ratio1; + this.tx描画用.vc拡大縮小倍率.Y = this.ratio1; + } + else + { + //ワイドクリップの処理 + this.ratio1 = 1280f / ((float)this.framewidth); + this.position = (int)((720f - (this.frameheight * this.ratio1)) / 2f); + this.i1 = (int)(this.framewidth * 0.23046875); + this.i2 = (int)(this.framewidth * 0.44140625); + this.rec = new Rectangle(0, 0, this.i1, (int)this.frameheight); + this.rec2 = new Rectangle(this.i1, 0, this.i2, (int)this.frameheight); + this.rec3 = new Rectangle(this.i1 + this.i2, 0, (((int)this.framewidth) - this.i1) - this.i2, (int)this.frameheight); + this.tx描画用.vc拡大縮小倍率.X = this.ratio1; + this.tx描画用.vc拡大縮小倍率.Y = this.ratio1; + } + + + if (this.framewidth > 420) + { + f拡大率x = 420f / ((float)this.framewidth); + } + else + { + f拡大率x = 1f; + } + if (this.frameheight > 580) + { + f拡大率y = 580f / ((float)this.frameheight); + } + else + { + f拡大率y = 1f; + } + if (f拡大率x > f拡大率y) + { + f拡大率x = f拡大率y; + } + else + { + f拡大率y = f拡大率x; + } + + this.smallvc = new Vector3(f拡大率x, f拡大率y, 1f); + #endregion + } + + if ( fAVIアスペクト比 > 1.77f && this.dsBGV != null && this.dsBGV.dshow != null ) + { + this.dsBGV.dshow.t再生開始(); + this.bDShowクリップを再生している = true; + this.b再生トグル = true; + } + } + } + public void SkipStart( int n移動開始時刻ms ) + { + foreach ( CDTX.CChip chip in TJAPlayer3.DTX.listChip ) + { + if ( chip.n発声時刻ms > n移動開始時刻ms ) + { + break; + } + switch ( chip.eAVI種別 ) + { + case EAVI種別.AVI: + { + if ( chip.rAVI != null ) + { + this.Start( chip.nチャンネル番号, chip.rAVI, chip.rDShow, 1280, 720, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, chip.n発声時刻ms ); + } + continue; + } + } + } + } + public void Stop() + { + if ( ( this.rAVI != null ) && ( this.rAVI.avi != null ) ) + { + this.n移動開始時刻ms = -1; + } + + if( this.dsBGV != null ) + { + if( this.dsBGV.dshow != null ) + this.dsBGV.dshow.MediaCtrl.Stop(); + this.bDShowクリップを再生している = false; + } + } + public void Cont( int n再開時刻ms ) + { + if ( ( this.rAVI != null ) && ( this.rAVI.avi != null ) ) + { + this.n移動開始時刻ms = n再開時刻ms; + } + } + public unsafe int t進行描画( int x, int y ) + { + if ( !base.b活性化してない ) + { + Rectangle rectangle; + Rectangle rectangle2; + if( !this.bDShowクリップを再生している || ( this.dsBGV.dshow == null || this.dsBGV == null ) ) + { + if( ( ( this.n移動開始時刻ms == -1 ) || ( this.rAVI == null ) ) || ( this.rAVI.avi == null ) ) + { + return 0; + } + } + if ( this.tx描画用 == null ) + { + return 0; + } + int time = (int) ( ( CSound管理.rc演奏用タイマ.n現在時刻 - this.n移動開始時刻ms ) * ( ( (double) TJAPlayer3.ConfigIni.n演奏速度 ) / 20.0 ) ); + int frameNoFromTime = 0; + + #region[ frameNoFromTime ] + if ( (this.dsBGV != null) ) + { + if ( this.fAVIアスペクト比 > 1.77f ) + { + this.dsBGV.dshow.MediaSeeking.GetPositions(out this.lDshowPosition, out this.lStopPosition); + frameNoFromTime = (int)lDshowPosition; + } + else + { + frameNoFromTime = this.rAVI.avi.GetFrameNoFromTime(time); + } + } + #endregion + + if ( ( this.n総移動時間ms != 0 ) && ( this.n総移動時間ms < time ) ) + { + this.n総移動時間ms = 0; + this.n移動開始時刻ms = -1; + return 0; + } + + //2014.11.17 kairera0467 AVIが無い状態でAVIのフレームカウントをさせるとエラーを吐くため、かなり雑ではあるが対策。 + if( ( this.n総移動時間ms == 0 ) && this.rAVI.avi != null ? ( frameNoFromTime >= this.rAVI.avi.GetMaxFrameCount() ) : false ) + { + this.n移動開始時刻ms = -1L; + } + if((((this.n前回表示したフレーム番号 != frameNoFromTime) || !this.bフレームを作成した)) && (fAVIアスペクト比 < 1.77f )) + { + this.pBmp = this.rAVI.avi.GetFramePtr(frameNoFromTime); + this.n前回表示したフレーム番号 = frameNoFromTime; + this.bフレームを作成した = true; + } + + //ループ防止 + if ( this.lDshowPosition >= this.lStopPosition && this.dsBGV != null ) + { + this.dsBGV.dshow.MediaSeeking.SetPositions( + DsLong.FromInt64((long)(0)), + AMSeekingSeekingFlags.AbsolutePositioning, + null, + AMSeekingSeekingFlags.NoPositioning); + this.dsBGV.dshow.MediaCtrl.Stop(); + this.bDShowクリップを再生している = false; + } + + #region[ フレーム幅 ] + //uintじゃなくてint。DTXHDでは無駄に変換してたね。 + int nフレーム幅 = 0; + int nフレーム高さ = 0; + + if( this.dsBGV != null ) + { + nフレーム幅 = this.dsBGV.dshow.n幅px; + nフレーム高さ = this.dsBGV.dshow.n高さpx; + } + else if( this.rAVI != null || this.rAVI.avi != null ) + { + nフレーム幅 = (int)this.rAVI.avi.nフレーム幅; + nフレーム高さ = (int)this.rAVI.avi.nフレーム高さ; + } + #endregion + + //2014.11.17 kairera0467 フレーム幅をrAVIから参照していたため、先にローカル関数で決めるよう変更。 + Size szフレーム幅 = new Size( nフレーム幅, nフレーム高さ ); + Size sz最大フレーム幅 = new Size( 1280, 720 ); + Size size3 = new Size( this.n開始サイズW, this.n開始サイズH ); + Size size4 = new Size( this.n終了サイズW, this.n終了サイズH ); + Point location = new Point( this.n画像側開始位置X, this.n画像側終了位置Y ); + Point point2 = new Point( this.n画像側終了位置X, this.n画像側終了位置Y ); + Point point3 = new Point( this.n表示側開始位置X, this.n表示側開始位置Y ); + Point point4 = new Point( this.n表示側終了位置X, this.n表示側終了位置Y ); + long num3 = this.n総移動時間ms; + long num4 = this.n移動開始時刻ms; + if ((CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)) < num4) + { + num4 = (long)(CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)); + } + time = (int)(((CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)) - num4)); + if ( num3 == 0 ) + { + rectangle = new Rectangle( location, size3 ); + rectangle2 = new Rectangle( point3, size3 ); + } + else + { + double num5 = ( (double) time ) / ( (double) num3 ); + Size size5 = new Size( size3.Width + ( (int) ( ( size4.Width - size3.Width ) * num5 ) ), size3.Height + ( (int) ( ( size4.Height - size3.Height ) * num5 ) ) ); + rectangle = new Rectangle( (int) ( ( point2.X - location.X ) * num5 ), (int) ( ( point2.Y - location.Y ) * num5 ), ( (int) ( ( point2.X - location.X ) * num5 ) ) + size5.Width, ( (int) ( ( point2.Y - location.Y ) * num5 ) ) + size5.Height ); + rectangle2 = new Rectangle( (int) ( ( point4.X - point3.X ) * num5 ), (int) ( ( point4.Y - point3.Y ) * num5 ), ( (int) ( ( point4.X - point3.X ) * num5 ) ) + size5.Width, ( (int) ( ( point4.Y - point3.Y ) * num5 ) ) + size5.Height ); + if ( ( ( rectangle.Right <= 0 ) || ( rectangle.Bottom <= 0 ) ) || ( ( rectangle.Left >= szフレーム幅.Width ) || ( rectangle.Top >= szフレーム幅.Height ) ) ) + { + return 0; + } + if ( ( ( rectangle2.Right <= 0 ) || ( rectangle2.Bottom <= 0 ) ) || ( ( rectangle2.Left >= sz最大フレーム幅.Width ) || ( rectangle2.Top >= sz最大フレーム幅.Height ) ) ) + { + return 0; + } + if ( rectangle.X < 0 ) + { + int num6 = -rectangle.X; + rectangle2.X += num6; + rectangle2.Width -= num6; + rectangle.X = 0; + rectangle.Width -= num6; + } + if ( rectangle.Y < 0 ) + { + int num7 = -rectangle.Y; + rectangle2.Y += num7; + rectangle2.Height -= num7; + rectangle.Y = 0; + rectangle.Height -= num7; + } + if ( rectangle.Right > szフレーム幅.Width ) + { + int num8 = rectangle.Right - szフレーム幅.Width; + rectangle2.Width -= num8; + rectangle.Width -= num8; + } + if ( rectangle.Bottom > szフレーム幅.Height ) + { + int num9 = rectangle.Bottom - szフレーム幅.Height; + rectangle2.Height -= num9; + rectangle.Height -= num9; + } + if ( rectangle2.X < 0 ) + { + int num10 = -rectangle2.X; + rectangle.X += num10; + rectangle.Width -= num10; + rectangle2.X = 0; + rectangle2.Width -= num10; + } + if ( rectangle2.Y < 0 ) + { + int num11 = -rectangle2.Y; + rectangle.Y += num11; + rectangle.Height -= num11; + rectangle2.Y = 0; + rectangle2.Height -= num11; + } + if ( rectangle2.Right > sz最大フレーム幅.Width ) + { + int num12 = rectangle2.Right - sz最大フレーム幅.Width; + rectangle.Width -= num12; + rectangle2.Width -= num12; + } + if ( rectangle2.Bottom > sz最大フレーム幅.Height ) + { + int num13 = rectangle2.Bottom - sz最大フレーム幅.Height; + rectangle.Height -= num13; + rectangle2.Height -= num13; + } + if ( ( rectangle.X >= rectangle.Right ) || ( rectangle.Y >= rectangle.Bottom ) ) + { + return 0; + } + if ( ( rectangle2.X >= rectangle2.Right ) || ( rectangle2.Y >= rectangle2.Bottom ) ) + { + return 0; + } + if ( ( ( rectangle.Right < 0 ) || ( rectangle.Bottom < 0 ) ) || ( ( rectangle.X > szフレーム幅.Width ) || ( rectangle.Y > szフレーム幅.Height ) ) ) + { + return 0; + } + if ( ( ( rectangle2.Right < 0 ) || ( rectangle2.Bottom < 0 ) ) || ( ( rectangle2.X > sz最大フレーム幅.Width ) || ( rectangle2.Y > sz最大フレーム幅.Height ) ) ) + { + return 0; + } + } + if( ( this.tx描画用 != null )) + { + if ( ( this.bDShowクリップを再生している == true ) && this.dsBGV.dshow != null ) + { + #region[ ワイドクリップ ] + this.dsBGV.dshow.t現時点における最新のスナップイメージをTextureに転写する( this.tx描画用 ); + this.dsBGV.dshow.t現時点における最新のスナップイメージをTextureに転写する( this.tx窓描画用 ); + + if( TJAPlayer3.ConfigIni.eClipDispType == EClipDispType.背景のみ || TJAPlayer3.ConfigIni.eClipDispType == EClipDispType.両方 ) + { + if( this.dsBGV.dshow.b上下反転 ) + this.tx描画用.t2D上下反転描画( TJAPlayer3.app.Device, x, y ); + else + this.tx描画用.t2D描画( TJAPlayer3.app.Device, x, y ); + } + #endregion + } + } + else if ( ( this.tx描画用 != null ) && ( this.n総移動時間ms != -1 ) ) + { + if ( this.bフレームを作成した && ( this.pBmp != IntPtr.Zero ) ) + { + DataRectangle rectangle3 = this.tx描画用.texture.LockRectangle( 0, LockFlags.None ); + DataStream data = rectangle3.Data; + int num14 = rectangle3.Pitch / this.tx描画用.szテクスチャサイズ.Width; + BitmapUtil.BITMAPINFOHEADER* pBITMAPINFOHEADER = (BitmapUtil.BITMAPINFOHEADER*) this.pBmp.ToPointer(); + if ( pBITMAPINFOHEADER->biBitCount == 0x18 ) + { + switch ( num14 ) + { + case 2: + this.rAVI.avi.tBitmap24ToGraphicsStreamR5G6B5( pBITMAPINFOHEADER, data, this.tx描画用.szテクスチャサイズ.Width, this.tx描画用.szテクスチャサイズ.Height ); + break; + + case 4: + this.rAVI.avi.tBitmap24ToGraphicsStreamX8R8G8B8( pBITMAPINFOHEADER, data, this.tx描画用.szテクスチャサイズ.Width, this.tx描画用.szテクスチャサイズ.Height ); + break; + } + } + this.tx描画用.texture.UnlockRectangle( 0 ); + this.bフレームを作成した = false; + } + double dbAVI比率 = this.rAVI.avi.nフレーム幅 / this.rAVI.avi.nフレーム高さ; + + //とりあえず16:9以外は再生しない。 + if( dbAVI比率 < 1.77 ) + this.tx描画用.t2D描画( TJAPlayer3.app.Device, 0, 0 ); + } + } + return 0; + } + + public void t窓表示() + { + //return; + + if( ( this.bDShowクリップを再生している == true ) && this.dsBGV.dshow != null ) + { + #region[ ワイドクリップ ] + float fRet = this.dsBGV.dshow.n幅px / this.dsBGV.dshow.n高さpx; + + //横幅,縦幅,X,Y + float[] fRatio = new float[] { 320.0f, 180.0f, 6, 450 }; //左下表示 + if( this.tx窓描画用 != null && fRet == 1.0 ) + { + //if( ) + { + fRatio = new float[] { 640.0f - 4.0f, 360.0f - 4.0f, 322, 362 }; //中央下表示 + } + // + + this.tx窓描画用.vc拡大縮小倍率.X = (float)( fRatio[ 0 ] / this.dsBGV.dshow.n幅px ); + this.tx窓描画用.vc拡大縮小倍率.Y = (float)( fRatio[ 1 ] / this.dsBGV.dshow.n高さpx ); + if( this.dsBGV.dshow.b上下反転 ) + this.tx窓描画用.t2D上下反転描画( TJAPlayer3.app.Device, (int)fRatio[ 2 ], (int)fRatio[ 3 ] ); + else + this.tx窓描画用.t2D描画( TJAPlayer3.app.Device, (int)fRatio[ 2 ], (int)fRatio[ 3 ] ); + } + + #endregion + } + } + + public void tPauseControl() + { + if( this.b再生トグル == true ) + { + if( this.dsBGV != null ) + { + if( this.dsBGV.dshow != null ) + this.dsBGV.dshow.MediaCtrl.Pause(); + } + this.b再生トグル = false; + } + else if( this.b再生トグル == false ) + { + if(this.dsBGV != null ) + { + if( this.dsBGV.dshow != null ) + this.dsBGV.dshow.MediaCtrl.Run(); + } + this.b再生トグル = true; + } + } + + public void tReset() + { + if( this.dsBGV != null ) + { + if( this.dsBGV.dshow != null ) + { + this.dsBGV.dshow.MediaSeeking.SetPositions( + DsLong.FromInt64((long)(0)), + AMSeekingSeekingFlags.AbsolutePositioning, + null, + AMSeekingSeekingFlags.NoPositioning); + this.dsBGV.dshow.MediaCtrl.Stop(); + } + } + if( this.tx描画用 != null && this.tx窓描画用 != null ) + { + //2016.12.22 kairera0467 解放→生成というのもどうなのだろうか... + TJAPlayer3.t安全にDisposeする( ref this.tx描画用 ); + TJAPlayer3.t安全にDisposeする( ref this.tx窓描画用 ); + + this.tx描画用 = new CTexture( TJAPlayer3.app.Device, 1280, 720, TJAPlayer3.app.GraphicsDeviceManager.CurrentSettings.BackBufferFormat, Pool.Managed ); + this.tx窓描画用 = new CTexture( TJAPlayer3.app.Device, 1280, 720, TJAPlayer3.app.GraphicsDeviceManager.CurrentSettings.BackBufferFormat, Pool.Managed ); + } + + } + + // CActivity 実装 + + public override void On活性化() + { + this.rAVI = null; + this.n移動開始時刻ms = -1; + this.n前回表示したフレーム番号 = -1; + this.bフレームを作成した = false; + this.pBmp = IntPtr.Zero; + base.On活性化(); + } + public override void OnManagedリソースの作成() + { + if ( !base.b活性化してない ) + { +#if TEST_Direct3D9Ex + this.tx描画用 = new CTexture( CDTXMania.app.Device, 320, 355, CDTXMania.app.GraphicsDeviceManager.CurrentSettings.BackBufferFormat, Pool.Default, Usage.Dynamic ); +#else + this.tx描画用 = new CTexture( TJAPlayer3.app.Device, 1280, 720, TJAPlayer3.app.GraphicsDeviceManager.CurrentSettings.BackBufferFormat, Pool.Managed ); + this.tx窓描画用 = new CTexture( TJAPlayer3.app.Device, 1280, 720, TJAPlayer3.app.GraphicsDeviceManager.CurrentSettings.BackBufferFormat, Pool.Managed ); +#endif + base.OnManagedリソースの作成(); + } + } + public override void OnManagedリソースの解放() + { + if ( !base.b活性化してない ) + { + if ( this.tx描画用 != null ) + { + this.tx描画用.Dispose(); + this.tx描画用 = null; + } + if( this.tx窓描画用 != null ) + { + this.tx窓描画用.Dispose(); + this.tx窓描画用 = null; + } + base.OnManagedリソースの解放(); + } + } + public override int On進行描画() + { + throw new InvalidOperationException( "t進行描画(int,int)のほうを使用してください。" ); + } + + + // その他 + + #region [ private ] + //----------------- + private bool bフレームを作成した; + private long n移動開始時刻ms; + private int n画像側開始位置X; + private int n画像側開始位置Y; + private int n画像側終了位置X; + private int n画像側終了位置Y; + private int n開始サイズH; + private int n開始サイズW; + private int n終了サイズH; + private int n終了サイズW; + private int n前回表示したフレーム番号; + private int n総移動時間ms; + private int n表示側開始位置X; + private int n表示側開始位置Y; + private int n表示側終了位置X; + private int n表示側終了位置Y; + + public float fAVIアスペクト比; + private uint frameheight; + private uint framewidth; + private int i1; + private int i2; + private int position; + private int position2; + private float ratio1; + private float ratio2; + private Rectangle rec; + private Rectangle rec2; + private Rectangle rec3; + public Vector3 smallvc; + private Vector3 vclip; + public Vector3 vector; + + private IntPtr pBmp; + private CDTX.CAVI rAVI; + private CTexture tx描画用; + private CTexture tx窓描画用; + + //DirectShow用 + private bool b再生トグル; + private bool bDShowクリップを再生している; + private long lDshowPosition; + private long lStopPosition; + + public CDTX.CDirectShow dsBGV; + + //----------------- + #endregion + } +} diff --git a/TJAPlayer3/Stages/07.Game/CAct演奏Combo共通.cs b/TJAPlayer3/Stages/07.Game/CAct演奏Combo共通.cs new file mode 100644 index 00000000..ec56d17f --- /dev/null +++ b/TJAPlayer3/Stages/07.Game/CAct演奏Combo共通.cs @@ -0,0 +1,777 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Runtime.InteropServices; +using System.Drawing; +using SlimDX; +using FDK; + +namespace TJAPlayer3 +{ + internal class CAct演奏Combo共通 : CActivity + { + // プロパティ + + public STCOMBO n現在のコンボ数; + public struct STCOMBO + { + public CAct演奏Combo共通 act; + + public int this[int index] + { + get + { + switch (index) + { + case 0: + return this.P1; + + case 1: + return this.P2; + + case 2: + return this.P3; + + case 3: + return this.P4; + } + throw new IndexOutOfRangeException(); + } + set + { + switch (index) + { + case 0: + this.P1 = value; + return; + + case 1: + this.P2 = value; + return; + + case 2: + this.P3 = value; + return; + + case 3: + this.P4 = value; + return; + } + throw new IndexOutOfRangeException(); + } + } + public int P1 + { + get + { + return this.p1; + } + set + { + this.p1 = value; + if (this.p1 > this.最高値[0]) + { + this.最高値[0] = this.p1; + } + this.act.status.P1.nCOMBO値 = this.p1; + this.act.status.P1.n最高COMBO値 = this.最高値[0]; + } + } + public int P2 + { + get + { + return this.p2; + } + set + { + this.p2 = value; + if (this.p2 > this.最高値[1]) + { + this.最高値[1] = this.p2; + } + this.act.status.P2.nCOMBO値 = this.p2; + this.act.status.P2.n最高COMBO値 = this.最高値[1]; + } + } + public int P3 + { + get + { + return this.p3; + } + set + { + this.p3 = value; + if (this.p3 > this.最高値[2]) + { + this.最高値[2] = this.p3; + } + this.act.status.P3.nCOMBO値 = this.p3; + this.act.status.P3.n最高COMBO値 = this.最高値[2]; + } + } + public int P4 + { + get + { + return this.p4; + } + set + { + this.p4 = value; + if (this.p4 > this.最高値[3]) + { + this.最高値[3] = this.p4; + } + this.act.status.P4.nCOMBO値 = this.p4; + this.act.status.P4.n最高COMBO値 = this.最高値[3]; + } + } + public int[] 最高値 { get; set; } + + private int p1; + private int p2; + private int p3; + private int p4; + } + public C演奏判定ライン座標共通 演奏判定ライン座標 + { + get; + set; + } + + protected enum EEvent { 非表示, 数値更新, 同一数値, ミス通知 } + protected enum EMode { 非表示中, 進行表示中, 残像表示中 } + protected const int nドラムコンボのCOMBO文字の高さ = 32; + protected const int nドラムコンボのCOMBO文字の幅 = 90; + protected const int nドラムコンボの高さ = 115; + protected const int nドラムコンボの幅 = 90; + protected const int nドラムコンボの文字間隔 = -6; + protected int[] nジャンプ差分値 = new int[180]; + protected CSTATUS status; + //protected CTexture txCOMBO太鼓; + //protected CTexture txCOMBO太鼓_でかいやつ; + //protected CTexture txコンボラメ; + public CCounter[] ctコンボ加算; + public CCounter ctコンボラメ; + + protected float[,] nコンボ拡大率_座標 = new float[,]{ + {1.11f,-7}, + {1.22f,-14}, + {1.2f,-12}, + {1.15f,-9}, + {1.13f,-8}, + {1.11f,-7}, + {1.06f,-3}, + {1.04f,-2}, + {1.0f,0}, + }; + protected float[,] nコンボ拡大率_座標_100combo = new float[,]{ + {0.81f,-7}, + {0.92f,-14}, + {0.9f,-12}, + {0.85f,-9}, + {0.83f,-8}, + {0.81f,-7}, + {0.78f,-3}, + {0.74f,-2}, + {0.7f,0}, + }; + protected float[,] nコンボ拡大率_座標_1000combo = new float[,]{ + {1.11f,-7}, + {1.22f,-14}, + {1.2f,-12}, + {1.15f,-9}, + {1.13f,-8}, + {1.11f,-7}, + {1.06f,-3}, + {1.04f,-2}, + {1.0f,0}, + }; + + + private float[] ComboScale = new float[] + { + 0.000f, + 0.042f, + 0.120f, + 0.160f, + 0.180f, + 0.120f, + 0.110f, + 0.095f, + 0.086f, + 0.044f, + 0.032f, + 0.011f, + 0.000f + }; + private float[,] ComboScale_Ex = new float[,] + { + { 0.000f, 0}, + { 0.042f, 0}, + { 0.120f, 0}, + { 0.160f, 0}, + { 0.180f, 0}, + { 0.120f, 0}, + { 0.110f, 0}, + { 0.095f, 0}, + { 0.086f, 0}, + { 0.044f, 0}, + { 0.032f, 0}, + { 0.011f, 0}, + { 0.000f, 0}, + }; + // 内部クラス + + protected class CSTATUS + { + public CSTAT P1 = new CSTAT(); + public CSTAT P2 = new CSTAT(); + public CSTAT P3 = new CSTAT(); + public CSTAT P4 = new CSTAT(); + public CSTAT this[int index] + { + get + { + switch (index) + { + case 0: + return this.P1; + + case 1: + return this.P2; + + case 2: + return this.P3; + + case 3: + return this.P4; + } + throw new IndexOutOfRangeException(); + } + set + { + switch (index) + { + case 0: + this.P1 = value; + return; + + case 1: + this.P2 = value; + return; + + case 2: + this.P3 = value; + return; + + case 3: + this.P4 = value; + return; + } + throw new IndexOutOfRangeException(); + } + } + + public class CSTAT + { + public CAct演奏Combo共通.EMode e現在のモード; + public int nCOMBO値; + public long nコンボが切れた時刻; + public int nジャンプインデックス値; + public int n現在表示中のCOMBO値; + public int n最高COMBO値; + public int n残像表示中のCOMBO値; + public long n前回の時刻_ジャンプ用; + } + } + + + // コンストラクタ + + public CAct演奏Combo共通() + { + this.b活性化してない = true; + + // 180度分のジャンプY座標差分を取得。(0度: 0 → 90度:-15 → 180度: 0) + for (int i = 0; i < 180; i++) + this.nジャンプ差分値[i] = (int)(-15.0 * Math.Sin((Math.PI * i) / 180.0)); + 演奏判定ライン座標 = new C演奏判定ライン座標共通(); + } + + + // メソッド + + protected virtual void tコンボ表示_ドラム(int nCombo値, int nジャンプインデックス) + { + } + + protected virtual void tコンボ表示_太鼓(int nCombo値, int nジャンプインデックス, int nPlayer) + { + //テスト用コンボ数 + //nCombo値 = 72; + #region [ 事前チェック。] + //----------------- + //if( CDTXMania.ConfigIni.bドラムコンボ表示 == false ) + // return; // 表示OFF。 + + if (nCombo値 == 0) + return; // コンボゼロは表示しない。 + //----------------- + #endregion + + int[] n位の数 = new int[10]; // 表示は10桁もあれば足りるだろう + + this.ctコンボラメ.t進行Loop(); + this.ctコンボ加算[nPlayer].t進行(); + + #region [ nCombo値を桁数ごとに n位の数[] に格納する。(例:nCombo値=125 のとき n位の数 = { 5,2,1,0,0,0,0,0,0,0 } ) ] + //----------------- + int n = nCombo値; + int n桁数 = 0; + while ((n > 0) && (n桁数 < 10)) + { + n位の数[n桁数] = n % 10; // 1の位を格納 + n = (n - (n % 10)) / 10; // 右へシフト(例: 12345 → 1234 ) + n桁数++; + } + //----------------- + #endregion + + #region [ n位の数[] を、"COMBO" → 1の位 → 10の位 … の順に、右から左へ向かって順番に表示する。] + //----------------- + const int n1桁ごとのジャンプの遅れ = 30; // 1桁につき 50 インデックス遅れる + + + //X右座標を元にして、右座標 - ( コンボの幅 * 桁数 ) でX座標を求めていく? + + int nY上辺位置px = TJAPlayer3.ConfigIni.bReverse.Drums ? 350 : 10; + int n数字とCOMBOを合わせた画像の全長px = ((44) * n桁数); + int x = 245 + (n数字とCOMBOを合わせた画像の全長px / 2); + //int y = 212; + //int y = CDTXMania.Skin.nComboNumberY[ nPlayer ]; + + #region[ コンボ文字 ] + if (n桁数 <= 2) + { + TJAPlayer3.Tx.Taiko_Combo_Text?.t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_Combo_Text_X[nPlayer], TJAPlayer3.Skin.Game_Taiko_Combo_Text_Y[nPlayer]); + } + else + { + TJAPlayer3.Tx.Taiko_Combo_Text?.t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_Combo_Text_X[nPlayer], TJAPlayer3.Skin.Game_Taiko_Combo_Text_Y[nPlayer]); + } + #endregion + + int rightX = 0; + #region 一番右の数字の座標の決定 + if (n桁数 == 1) + { + // 一桁ならそのままSkinConfigの座標を使用する。 + rightX = TJAPlayer3.Skin.Game_Taiko_Combo_X[nPlayer]; + } + else if (n桁数 == 2) + { + // 二桁ならSkinConfigの座標+パディング/2を使用する + rightX = TJAPlayer3.Skin.Game_Taiko_Combo_X[nPlayer] + TJAPlayer3.Skin.Game_Taiko_Combo_Padding[0] / 2; + } + else if (n桁数 == 3) + { + // 三桁ならSkinConfigの座標+パディングを使用する + rightX = TJAPlayer3.Skin.Game_Taiko_Combo_Ex_X[nPlayer] + TJAPlayer3.Skin.Game_Taiko_Combo_Padding[1]; + } + else if (n桁数 == 4) + { + // 四桁ならSkinconfigの座標+パディング/2 + パディングを使用する + rightX = TJAPlayer3.Skin.Game_Taiko_Combo_Ex4_X[nPlayer] + TJAPlayer3.Skin.Game_Taiko_Combo_Padding[2] / 2 + TJAPlayer3.Skin.Game_Taiko_Combo_Padding[2]; + } + else + { + // 五桁以上の場合 + int rightDigit = 0; + switch (n桁数 % 2) + { + case 0: + // 2で割り切れる + // パディング/2を足す必要がある + // 右に表示される桁数を求め、-1する + rightDigit = n桁数 / 2 - 1; + rightX = TJAPlayer3.Skin.Game_Taiko_Combo_Ex4_X[nPlayer] + TJAPlayer3.Skin.Game_Taiko_Combo_Padding[2] / 2 + TJAPlayer3.Skin.Game_Taiko_Combo_Padding[2] * rightDigit; + break; + case 1: + // 2で割るとあまりが出る + // そのままパディングを足していく + // 右に表示される桁数を求める(中央除く -1) + rightDigit = (n桁数 - 1) / 2; + rightX = TJAPlayer3.Skin.Game_Taiko_Combo_Ex4_X[nPlayer] + TJAPlayer3.Skin.Game_Taiko_Combo_Padding[2] * rightDigit; + break; + default: + break; + } + } + #endregion + + + for (int i = 0; i < n桁数; i++) + { + + TJAPlayer3.Tx.Taiko_Combo[0].Opacity = 255; + TJAPlayer3.Tx.Taiko_Combo[1].Opacity = 255; + + if (n桁数 <= 1) + { + if (TJAPlayer3.Tx.Taiko_Combo[0] != null) + { + var yScalling = ComboScale[this.ctコンボ加算[nPlayer].n現在の値]; + TJAPlayer3.Tx.Taiko_Combo[0].vc拡大縮小倍率.Y = TJAPlayer3.Skin.Game_Taiko_Combo_Scale[0] + yScalling; + TJAPlayer3.Tx.Taiko_Combo[0].vc拡大縮小倍率.X = TJAPlayer3.Skin.Game_Taiko_Combo_Scale[0]; + TJAPlayer3.Tx.Taiko_Combo[0].t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device, rightX, TJAPlayer3.Skin.Game_Taiko_Combo_Y[nPlayer], new Rectangle(n位の数[i] * TJAPlayer3.Skin.Game_Taiko_Combo_Size[0], 0, TJAPlayer3.Skin.Game_Taiko_Combo_Size[0], TJAPlayer3.Skin.Game_Taiko_Combo_Size[1])); + } + } + else if (n桁数 <= 2) + { + //int[] arComboX = { CDTXMania.Skin.Game_Taiko_Combo_X[nPlayer] + CDTXMania.Skin.Game_Taiko_Combo_Padding[0], CDTXMania.Skin.Game_Taiko_Combo_X[nPlayer] - CDTXMania.Skin.Game_Taiko_Combo_Padding[0] }; + if (nCombo値 < 50) + { + if (TJAPlayer3.Tx.Taiko_Combo[0] != null) + { + var yScalling = ComboScale[this.ctコンボ加算[nPlayer].n現在の値]; + TJAPlayer3.Tx.Taiko_Combo[0].vc拡大縮小倍率.Y = TJAPlayer3.Skin.Game_Taiko_Combo_Scale[0] + yScalling; + TJAPlayer3.Tx.Taiko_Combo[0].vc拡大縮小倍率.X = TJAPlayer3.Skin.Game_Taiko_Combo_Scale[0]; + TJAPlayer3.Tx.Taiko_Combo[0].t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device, rightX - TJAPlayer3.Skin.Game_Taiko_Combo_Padding[0] * i, TJAPlayer3.Skin.Game_Taiko_Combo_Y[nPlayer], new Rectangle(n位の数[i] * TJAPlayer3.Skin.Game_Taiko_Combo_Size[0], 0, TJAPlayer3.Skin.Game_Taiko_Combo_Size[0], TJAPlayer3.Skin.Game_Taiko_Combo_Size[1])); + } + } + else + { + if (TJAPlayer3.Tx.Taiko_Combo[2] != null) + { + var yScalling = ComboScale[this.ctコンボ加算[nPlayer].n現在の値]; + TJAPlayer3.Tx.Taiko_Combo[2].vc拡大縮小倍率.Y = TJAPlayer3.Skin.Game_Taiko_Combo_Scale[0] + yScalling; + TJAPlayer3.Tx.Taiko_Combo[2].vc拡大縮小倍率.X = TJAPlayer3.Skin.Game_Taiko_Combo_Scale[0]; + TJAPlayer3.Tx.Taiko_Combo[2].t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device, rightX - TJAPlayer3.Skin.Game_Taiko_Combo_Padding[0] * i, TJAPlayer3.Skin.Game_Taiko_Combo_Y[nPlayer], new Rectangle(n位の数[i] * TJAPlayer3.Skin.Game_Taiko_Combo_Size[0], 0, TJAPlayer3.Skin.Game_Taiko_Combo_Size[0], TJAPlayer3.Skin.Game_Taiko_Combo_Size[1])); + } + if (TJAPlayer3.Tx.Taiko_Combo_Effect != null) + { + if (ctコンボラメ.n現在の値 < 13) // First + { + // まんなか + #region[透明度制御] + //if (this.ctコンボラメ.n現在の値 < 252) TJAPlayer3.Tx.Taiko_Combo_Effect.Opacity = 255; + //else if (this.ctコンボラメ.n現在の値 >= 22 && this.ctコンボラメ.n現在の値 < 30) TJAPlayer3.Tx.Taiko_Combo_Effect.Opacity = (int)(204 - (6 * this.ctコンボラメ.n現在の値)); + #endregion + TJAPlayer3.Tx.Taiko_Combo_Effect.t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device, (rightX - TJAPlayer3.Skin.Game_Taiko_Combo_Padding[0] * i), TJAPlayer3.Skin.Game_Taiko_Combo_Ex_Y[nPlayer] - ((TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[1] / 4) * TJAPlayer3.Skin.Game_Taiko_Combo_Scale[0]) - (int)(1.05 * this.ctコンボラメ.n現在の値) - 13); + } + if (ctコンボラメ.n現在の値 >= 8 && ctコンボラメ.n現在の値 < 23) // Unko + { + // みぎ + #region[透明度制御] + //if (this.ctコンボラメ.n現在の値 < 11) TJAPlayer3.Tx.Taiko_Combo_Effect.Opacity = 255; + //else if (this.ctコンボラメ.n現在の値 >= 11 && this.ctコンボラメ.n現在の値 < 24) TJAPlayer3.Tx.Taiko_Combo_Effect.Opacity = (int)(204 - (12 * this.ctコンボラメ.n現在の値)); + #endregion + TJAPlayer3.Tx.Taiko_Combo_Effect.t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device, (rightX - TJAPlayer3.Skin.Game_Taiko_Combo_Padding[0] * i) + ((TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[0] / 4) * TJAPlayer3.Skin.Game_Taiko_Combo_Scale[0]), TJAPlayer3.Skin.Game_Taiko_Combo_Ex_Y[nPlayer] - ((TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[1] / 4) * TJAPlayer3.Skin.Game_Taiko_Combo_Scale[0]) - (int)(1.05 * (this.ctコンボラメ.n現在の値 - 10)) - 3); + + } + if (this.ctコンボラメ.n現在の値 >= 17 && this.ctコンボラメ.n現在の値 < 32) // Tintin + { + // ひだり + #region[透明度制御] + //if (this.ctコンボラメ.n現在の値 < 7) TJAPlayer3.Tx.Taiko_Combo_Effect.Opacity = 255; + //else if (this.ctコンボラメ.n現在の値 >= 7 && this.ctコンボラメ.n現在の値 < 14) TJAPlayer3.Tx.Taiko_Combo_Effect.Opacity = (int)(204 - (24 * this.ctコンボラメ.n現在の値)); + #endregion + TJAPlayer3.Tx.Taiko_Combo_Effect.t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device, (rightX - TJAPlayer3.Skin.Game_Taiko_Combo_Padding[0] * i) - ((TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[0] / 4) * TJAPlayer3.Skin.Game_Taiko_Combo_Scale[0]), TJAPlayer3.Skin.Game_Taiko_Combo_Ex_Y[nPlayer] - ((TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[1] / 4) * TJAPlayer3.Skin.Game_Taiko_Combo_Scale[0]) - (int)(1.05 * this.ctコンボラメ.n現在の値 - 20) - 8); + } + } + } + } + else if (n桁数 == 3) + { + if (TJAPlayer3.Tx.Taiko_Combo[1] != null) + { + var yScalling = ComboScale_Ex[this.ctコンボ加算[nPlayer].n現在の値, 0]; + TJAPlayer3.Tx.Taiko_Combo[1].vc拡大縮小倍率.Y = TJAPlayer3.Skin.Game_Taiko_Combo_Scale[1] + yScalling; + TJAPlayer3.Tx.Taiko_Combo[1].vc拡大縮小倍率.X = TJAPlayer3.Skin.Game_Taiko_Combo_Scale[1]; + var yJumping = TJAPlayer3.Skin.Game_Taiko_Combo_Ex_IsJumping ? (int)ComboScale_Ex[this.ctコンボ加算[nPlayer].n現在の値, 1] : 0; + TJAPlayer3.Tx.Taiko_Combo[1].t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device, rightX - TJAPlayer3.Skin.Game_Taiko_Combo_Padding[1] * i, TJAPlayer3.Skin.Game_Taiko_Combo_Ex_Y[nPlayer] + yJumping, new Rectangle(n位の数[i] * TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[0], 0, TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[0], TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[1])); + } + if (TJAPlayer3.Tx.Taiko_Combo_Effect != null) + { + if (ctコンボラメ.n現在の値 < 13) // First + { + // まんなか + #region[透明度制御] + //if (this.ctコンボラメ.n現在の値 < 252) TJAPlayer3.Tx.Taiko_Combo_Effect.Opacity = 255; + //else if (this.ctコンボラメ.n現在の値 >= 22 && this.ctコンボラメ.n現在の値 < 30) TJAPlayer3.Tx.Taiko_Combo_Effect.Opacity = (int)(204 - (6 * this.ctコンボラメ.n現在の値)); + #endregion + TJAPlayer3.Tx.Taiko_Combo_Effect.t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device, (rightX - TJAPlayer3.Skin.Game_Taiko_Combo_Padding[1] * i), TJAPlayer3.Skin.Game_Taiko_Combo_Ex_Y[nPlayer] - ((TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[1] / 4) * TJAPlayer3.Skin.Game_Taiko_Combo_Scale[1]) - (int)(1.05 * this.ctコンボラメ.n現在の値) - 13); + } + if (ctコンボラメ.n現在の値 >= 8 && ctコンボラメ.n現在の値 < 23) // Unko + { + // みぎ + #region[透明度制御] + //if (this.ctコンボラメ.n現在の値 < 11) TJAPlayer3.Tx.Taiko_Combo_Effect.Opacity = 255; + //else if (this.ctコンボラメ.n現在の値 >= 11 && this.ctコンボラメ.n現在の値 < 24) TJAPlayer3.Tx.Taiko_Combo_Effect.Opacity = (int)(204 - (12 * this.ctコンボラメ.n現在の値)); + #endregion + TJAPlayer3.Tx.Taiko_Combo_Effect.t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device, (rightX - TJAPlayer3.Skin.Game_Taiko_Combo_Padding[1] * i) + ((TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[0] / 4) * TJAPlayer3.Skin.Game_Taiko_Combo_Scale[1]), TJAPlayer3.Skin.Game_Taiko_Combo_Ex_Y[nPlayer] - ((TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[1] / 4) * TJAPlayer3.Skin.Game_Taiko_Combo_Scale[1]) - (int)(1.05 * (this.ctコンボラメ.n現在の値 - 10)) - 3); + + } + if (this.ctコンボラメ.n現在の値 >= 17 && this.ctコンボラメ.n現在の値 < 32) // Tintin + { + // ひだり + #region[透明度制御] + //if (this.ctコンボラメ.n現在の値 < 7) TJAPlayer3.Tx.Taiko_Combo_Effect.Opacity = 255; + //else if (this.ctコンボラメ.n現在の値 >= 7 && this.ctコンボラメ.n現在の値 < 14) TJAPlayer3.Tx.Taiko_Combo_Effect.Opacity = (int)(204 - (24 * this.ctコンボラメ.n現在の値)); + #endregion + TJAPlayer3.Tx.Taiko_Combo_Effect.t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device, (rightX - TJAPlayer3.Skin.Game_Taiko_Combo_Padding[1] * i) - ((TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[0] / 4) * TJAPlayer3.Skin.Game_Taiko_Combo_Scale[1]), TJAPlayer3.Skin.Game_Taiko_Combo_Ex_Y[nPlayer] - ((TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[1] / 4) * TJAPlayer3.Skin.Game_Taiko_Combo_Scale[1]) - (int)(1.05 * this.ctコンボラメ.n現在の値 - 20) - 8); + } + } + } + else + { + if (TJAPlayer3.Tx.Taiko_Combo[1] != null) + { + var yScalling = ComboScale_Ex[this.ctコンボ加算[nPlayer].n現在の値, 0]; + TJAPlayer3.Tx.Taiko_Combo[1].vc拡大縮小倍率.Y = 1.0f + yScalling; + TJAPlayer3.Tx.Taiko_Combo[1].vc拡大縮小倍率.X = TJAPlayer3.Skin.Game_Taiko_Combo_Scale[2]; + var yJumping = TJAPlayer3.Skin.Game_Taiko_Combo_Ex_IsJumping ? (int)ComboScale_Ex[this.ctコンボ加算[nPlayer].n現在の値, 1] : 0; + TJAPlayer3.Tx.Taiko_Combo[1].t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device, rightX - TJAPlayer3.Skin.Game_Taiko_Combo_Padding[2] * i, TJAPlayer3.Skin.Game_Taiko_Combo_Ex4_Y[nPlayer] + yJumping, new Rectangle(n位の数[i] * TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[0], 0, TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[0], TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[1])); + } + if (TJAPlayer3.Tx.Taiko_Combo_Effect != null) + { + if (ctコンボラメ.n現在の値 < 13) // First + { + // まんなか + #region[透明度制御] + //if (this.ctコンボラメ.n現在の値 < 252) TJAPlayer3.Tx.Taiko_Combo_Effect.Opacity = 255; + //else if (this.ctコンボラメ.n現在の値 >= 22 && this.ctコンボラメ.n現在の値 < 30) TJAPlayer3.Tx.Taiko_Combo_Effect.Opacity = (int)(204 - (6 * this.ctコンボラメ.n現在の値)); + #endregion + TJAPlayer3.Tx.Taiko_Combo_Effect.t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device, (rightX - TJAPlayer3.Skin.Game_Taiko_Combo_Padding[2] * i), TJAPlayer3.Skin.Game_Taiko_Combo_Ex_Y[nPlayer] - ((TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[1] / 4) * TJAPlayer3.Skin.Game_Taiko_Combo_Scale[2]) - (int)(1.05 * this.ctコンボラメ.n現在の値) - 13); + } + if (ctコンボラメ.n現在の値 >= 8 && ctコンボラメ.n現在の値 < 23) // Unko + { + // みぎ + #region[透明度制御] + //if (this.ctコンボラメ.n現在の値 < 11) TJAPlayer3.Tx.Taiko_Combo_Effect.Opacity = 255; + //else if (this.ctコンボラメ.n現在の値 >= 11 && this.ctコンボラメ.n現在の値 < 24) TJAPlayer3.Tx.Taiko_Combo_Effect.Opacity = (int)(204 - (12 * this.ctコンボラメ.n現在の値)); + #endregion + TJAPlayer3.Tx.Taiko_Combo_Effect.t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device, (rightX - TJAPlayer3.Skin.Game_Taiko_Combo_Padding[2] * i) + ((TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[0] / 4) * TJAPlayer3.Skin.Game_Taiko_Combo_Scale[2]), TJAPlayer3.Skin.Game_Taiko_Combo_Ex_Y[nPlayer] - ((TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[1] / 4) * TJAPlayer3.Skin.Game_Taiko_Combo_Scale[2]) - (int)(1.05 * (this.ctコンボラメ.n現在の値 - 10)) - 3); + + } + if (this.ctコンボラメ.n現在の値 >= 17 && this.ctコンボラメ.n現在の値 < 32) // Tintin + { + // ひだり + #region[透明度制御] + //if (this.ctコンボラメ.n現在の値 < 7) TJAPlayer3.Tx.Taiko_Combo_Effect.Opacity = 255; + //else if (this.ctコンボラメ.n現在の値 >= 7 && this.ctコンボラメ.n現在の値 < 14) TJAPlayer3.Tx.Taiko_Combo_Effect.Opacity = (int)(204 - (24 * this.ctコンボラメ.n現在の値)); + #endregion + TJAPlayer3.Tx.Taiko_Combo_Effect.t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device, (rightX - TJAPlayer3.Skin.Game_Taiko_Combo_Padding[2] * i) - ((TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[0] / 4) * TJAPlayer3.Skin.Game_Taiko_Combo_Scale[2]), TJAPlayer3.Skin.Game_Taiko_Combo_Ex_Y[nPlayer] - ((TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[1] / 4) * TJAPlayer3.Skin.Game_Taiko_Combo_Scale[2]) - (int)(1.05 * this.ctコンボラメ.n現在の値 - 20) - 8); + } + } + + } + } + + //----------------- + #endregion + } + + protected virtual void tコンボ表示_ギター(int nCombo値, int nジャンプインデックス) + { + } + protected virtual void tコンボ表示_ベース(int nCombo値, int nジャンプインデックス) + { + } + protected void tコンボ表示_ギター(int nCombo値, int n表示中央X, int n表示中央Y, int nジャンプインデックス) + { + + } + protected void tコンボ表示_ベース(int nCombo値, int n表示中央X, int n表示中央Y, int nジャンプインデックス) + { + + } + protected void tコンボ表示_ギターベース(int nCombo値, int n表示中央X, int n表示中央Y, int nジャンプインデックス) + { + } + + + // CActivity 実装 + + public override void On活性化() + { + this.n現在のコンボ数 = new STCOMBO() { act = this }; + this.n現在のコンボ数.最高値 = new int[4]; + this.status = new CSTATUS(); + this.ctコンボ加算 = new CCounter[4]; + for (int i = 0; i < 4; i++) + { + this.status[i].e現在のモード = EMode.非表示中; + this.status[i].nCOMBO値 = 0; + this.status[i].n最高COMBO値 = 0; + this.status[i].n現在表示中のCOMBO値 = 0; + this.status[i].n残像表示中のCOMBO値 = 0; + this.status[i].nジャンプインデックス値 = 99999; + this.status[i].n前回の時刻_ジャンプ用 = -1; + this.status[i].nコンボが切れた時刻 = -1; + this.ctコンボ加算[i] = new CCounter(0, 12, 12, TJAPlayer3.Timer); + } + this.ctコンボラメ = new CCounter(0, 35, 16, TJAPlayer3.Timer); + base.On活性化(); + } + public override void On非活性化() + { + if (this.status != null) + this.status = null; + + base.On非活性化(); + } + public override void OnManagedリソースの作成() + { + if (this.b活性化してない) + return; + base.OnManagedリソースの作成(); + } + public override void OnManagedリソースの解放() + { + if (this.b活性化してない) + return; + base.OnManagedリソースの解放(); + } + public override int On進行描画() + { + if (this.b活性化してない) + return 0; + + for (int i = 0; i < 4; i++) + { + EEvent e今回の状態遷移イベント; + + #region [ 前回と今回の COMBO 値から、e今回の状態遷移イベントを決定する。] + //----------------- + if (this.status[i].n現在表示中のCOMBO値 == this.status[i].nCOMBO値) + { + e今回の状態遷移イベント = EEvent.同一数値; + } + else if (this.status[i].n現在表示中のCOMBO値 > this.status[i].nCOMBO値) + { + e今回の状態遷移イベント = EEvent.ミス通知; + } + else if ((this.status[i].n現在表示中のCOMBO値 < TJAPlayer3.ConfigIni.n表示可能な最小コンボ数.Drums) && (this.status[i].nCOMBO値 < TJAPlayer3.ConfigIni.n表示可能な最小コンボ数.Drums)) + { + e今回の状態遷移イベント = EEvent.非表示; + } + else + { + e今回の状態遷移イベント = EEvent.数値更新; + } + //----------------- + #endregion + + #region [ nジャンプインデックス値 の進行。] + //----------------- + if (this.status[i].nジャンプインデックス値 < 360) + { + if ((this.status[i].n前回の時刻_ジャンプ用 == -1) || (TJAPlayer3.Timer.n現在時刻 < this.status[i].n前回の時刻_ジャンプ用)) + this.status[i].n前回の時刻_ジャンプ用 = TJAPlayer3.Timer.n現在時刻; + + const long INTERVAL = 2; + while ((TJAPlayer3.Timer.n現在時刻 - this.status[i].n前回の時刻_ジャンプ用) >= INTERVAL) + { + if (this.status[i].nジャンプインデックス値 < 2000) + this.status[i].nジャンプインデックス値 += 3; + + this.status[i].n前回の時刻_ジャンプ用 += INTERVAL; + } + } + //----------------- + #endregion + + Retry: // モードが変化した場合はここからリトライする。 + + switch (this.status[i].e現在のモード) + { + case EMode.非表示中: + #region [ *** ] + //----------------- + + if (e今回の状態遷移イベント == EEvent.数値更新) + { + // モード変更 + this.status[i].e現在のモード = EMode.進行表示中; + this.status[i].nジャンプインデックス値 = 0; + this.status[i].n前回の時刻_ジャンプ用 = TJAPlayer3.Timer.n現在時刻; + goto Retry; + } + + this.status[i].n現在表示中のCOMBO値 = this.status[i].nCOMBO値; + break; + //----------------- + #endregion + + case EMode.進行表示中: + #region [ *** ] + //----------------- + + if ((e今回の状態遷移イベント == EEvent.非表示) || (e今回の状態遷移イベント == EEvent.ミス通知)) + { + // モード変更 + this.status[i].e現在のモード = EMode.残像表示中; + this.status[i].n残像表示中のCOMBO値 = this.status[i].n現在表示中のCOMBO値; + this.status[i].nコンボが切れた時刻 = TJAPlayer3.Timer.n現在時刻; + goto Retry; + } + + if (e今回の状態遷移イベント == EEvent.数値更新) + { + this.status[i].nジャンプインデックス値 = 0; + this.status[i].n前回の時刻_ジャンプ用 = TJAPlayer3.Timer.n現在時刻; + } + + this.status[i].n現在表示中のCOMBO値 = this.status[i].nCOMBO値; + switch (i) + { + case 0: + this.tコンボ表示_太鼓(this.status[i].nCOMBO値, this.status[i].nジャンプインデックス値, 0); + break; + + case 1: + this.tコンボ表示_太鼓(this.status[i].nCOMBO値, this.status[i].nジャンプインデックス値, 1); + break; + + case 2: + this.tコンボ表示_ベース(this.status[i].nCOMBO値, this.status[i].nジャンプインデックス値); + break; + + case 3: + this.tコンボ表示_ドラム(this.status[i].nCOMBO値, this.status[i].nジャンプインデックス値); + break; + } + break; + //----------------- + #endregion + + case EMode.残像表示中: + #region [ *** ] + //----------------- + if (e今回の状態遷移イベント == EEvent.数値更新) + { + // モード変更1 + this.status[i].e現在のモード = EMode.進行表示中; + goto Retry; + } + if ((TJAPlayer3.Timer.n現在時刻 - this.status[i].nコンボが切れた時刻) > 1000) + { + // モード変更2 + this.status[i].e現在のモード = EMode.非表示中; + goto Retry; + } + this.status[i].n現在表示中のCOMBO値 = this.status[i].nCOMBO値; + break; + //----------------- + #endregion + } + } + + return 0; + } + } +} \ No newline at end of file diff --git a/TJAPlayer3/Stages/07.Game/CAct演奏Combo音声.cs b/TJAPlayer3/Stages/07.Game/CAct演奏Combo音声.cs new file mode 100644 index 00000000..a63d2b20 --- /dev/null +++ b/TJAPlayer3/Stages/07.Game/CAct演奏Combo音声.cs @@ -0,0 +1,143 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Text; +using System.Runtime.InteropServices; +using System.Drawing; +using FDK; + +namespace TJAPlayer3 +{ + internal class CAct演奏Combo音声 : CActivity + { + // コンストラクタ + + public CAct演奏Combo音声() + { + base.b活性化してない = true; + } + + // メソッド + public void t再生( int nCombo, int player ) + { + if(VoiceIndex[player] < ListCombo[player].Count) + { + + var index = ListCombo[player][VoiceIndex[player]]; + if (nCombo == index.nCombo) + { + index.soundComboVoice.t再生を開始する(); + VoiceIndex[player]++; + } + + } + } + + /// + /// カーソルを戻す。 + /// コンボが切れた時に使う。 + /// + public void tReset(int nPlayer) + { + VoiceIndex[nPlayer] = 0; + } + + // CActivity 実装 + + public override void On活性化() + { + for (int i = 0; i < 2; i++) + { + ListCombo[i] = new List(); + } + VoiceIndex = new int[] { 0, 0 }; + base.On活性化(); + } + public override void OnManagedリソースの作成() + { + if( !base.b活性化してない ) + { + // フォルダ内を走査してコンボボイスをListに入れていく + // 1P、2P コンボボイス + for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) + { + var currentDir = CSkin.Path(string.Format(@"Sounds\Combo_{0}P\", i + 1)); + if (Directory.Exists(currentDir)) + { + foreach (var item in Directory.GetFiles(currentDir)) + { + var comboVoice = new CComboVoice(); + comboVoice.bFileFound = true; + comboVoice.nPlayer = i; + comboVoice.strFilePath = item; + comboVoice.soundComboVoice = TJAPlayer3.Sound管理.tサウンドを生成する(item, ESoundGroup.Voice); + if (TJAPlayer3.ConfigIni.nPlayerCount >= 2) //2020.05.06 Mr-Ojii 左右に出したかったから追加。 + { + if (i == 0) + comboVoice.soundComboVoice.n位置 = -100; + else + comboVoice.soundComboVoice.n位置 = 100; + } + comboVoice.nCombo = int.Parse(Path.GetFileNameWithoutExtension(item)); + ListCombo[i].Add(comboVoice); + } + if(ListCombo[i].Count > 0) + { + ListCombo[i].Sort(); + } + } + } + base.OnManagedリソースの作成(); + } + } + public override void OnManagedリソースの解放() + { + if( !base.b活性化してない ) + { + for (int i = 0; i < 2; i++) + { + foreach (var item in ListCombo[i]) + { + TJAPlayer3.Sound管理.tサウンドを破棄する(item.soundComboVoice); + } + ListCombo[i].Clear(); + } + + base.OnManagedリソースの解放(); + } + } + + #region [ private ] + //----------------- + int[] VoiceIndex; + readonly List[] ListCombo = new List[2]; + //----------------- + #endregion + } + + public class CComboVoice : IComparable + { + public bool bFileFound; + public int nCombo; + public int nPlayer; + public string strFilePath; + public CSound soundComboVoice; + + public CComboVoice() + { + bFileFound = false; + nCombo = 0; + nPlayer = 0; + strFilePath = ""; + soundComboVoice = null; + } + + public int CompareTo( CComboVoice other ) + { + if( this.nCombo > other.nCombo ) return 1; + else if( this.nCombo < other.nCombo ) return -1; + + return 0; + } + } +} diff --git a/TJAPlayer3/Stages/07.Game/CAct演奏Danger共通.cs b/TJAPlayer3/Stages/07.Game/CAct演奏Danger共通.cs new file mode 100644 index 00000000..7b8ce7b1 --- /dev/null +++ b/TJAPlayer3/Stages/07.Game/CAct演奏Danger共通.cs @@ -0,0 +1,63 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Drawing; +using FDK; + +namespace TJAPlayer3 +{ + internal abstract class CAct演奏Danger共通 : CActivity + { + // コンストラクタ + + public CAct演奏Danger共通() + { + base.b活性化してない = true; + } + + + // CActivity 実装 + + public override void On活性化() + { + for ( int i = 0; i < 3; i++ ) + { + this.bDanger中[i] = false; + } +// this.ct移動用 = new CCounter(); +// this.ct透明度用 = new CCounter(); + this.ct移動用 = null; + this.ct透明度用 = null; + + base.On活性化(); + } + public override void On非活性化() + { + this.ct移動用 = null; + this.ct透明度用 = null; + base.On非活性化(); + } + + /// + /// DANGER描画 + /// + /// DrumsがDangerならtrue + /// GuitarがDangerならtrue + /// BassがDangerならtrue + /// + public abstract int t進行描画( bool bIsDangerDrums, bool bIsDamgerGuitar, bool bIsDangerBass ); + + + + // その他 + + #region [ private ] + //----------------- + protected bool[] bDanger中 = { false, false, false}; + protected CCounter ct移動用; + protected CCounter ct透明度用; + //----------------- + #endregion + + } +} diff --git a/TJAPlayer3/Stages/07.Game/CAct演奏PauseMenu.cs b/TJAPlayer3/Stages/07.Game/CAct演奏PauseMenu.cs new file mode 100644 index 00000000..8d38ff82 --- /dev/null +++ b/TJAPlayer3/Stages/07.Game/CAct演奏PauseMenu.cs @@ -0,0 +1,186 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Text; +using System.Drawing; +using System.IO; +using SlimDX; +using FDK; + +namespace TJAPlayer3 +{ + internal class CAct演奏PauseMenu : CActSelectPopupMenu + { + private readonly string QuickCfgTitle = "ポーズ"; + // コンストラクタ + + public CAct演奏PauseMenu() + { + CAct演奏PauseMenuMain(); + } + + private void CAct演奏PauseMenuMain() + { + this.bEsc有効 = false; + lci = new List>>(); // この画面に来る度に、メニューを作り直す。 + for ( int nConfSet = 0; nConfSet < (TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Dan ? 3 : 2); nConfSet++ ) + { + lci.Add( new List>() ); // ConfSet用の3つ分の枠。 + for ( int nInst = 0; nInst < 3; nInst++ ) + { + lci[ nConfSet ].Add( null ); // Drum/Guitar/Bassで3つ分、枠を作っておく + lci[ nConfSet ][ nInst ] = MakeListCItemBase( nConfSet, nInst ); + } + } + base.Initialize( lci[ nCurrentConfigSet ][ 0 ], true, QuickCfgTitle, 0 ); // ConfSet=0, nInst=Drums + } + + private List MakeListCItemBase( int nConfigSet, int nInst ) + { + List l = new List(); + + #region [ 共通 SET切り替え/More/Return ] + l.Add( new CSwitchItemList( "続ける", CItemBase.Eパネル種別.通常, 0, "", "", new string[] { "" } ) ); + if(TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Dan) l.Add( new CSwitchItemList( "やり直し", CItemBase.Eパネル種別.通常, 0, "", "", new string[] { "" } ) ); + l.Add( new CSwitchItemList( "演奏中止", CItemBase.Eパネル種別.通常, 0, "", "", new string[] { "", "" } ) ); + #endregion + + return l; + } + + // メソッド + public override void tActivatePopupMenu( E楽器パート einst ) + { + this.CAct演奏PauseMenuMain(); + CActSelectPopupMenu.b選択した = false; + this.bやり直しを選択した = false; + base.tActivatePopupMenu( einst ); + } + //public void tDeativatePopupMenu() + //{ + // base.tDeativatePopupMenu(); + //} + + public override void t進行描画sub() + { + if( this.bやり直しを選択した ) + { + if( !sw.IsRunning ) + this.sw = Stopwatch.StartNew(); + if( sw.ElapsedMilliseconds > 1500 ) + { + TJAPlayer3.stage演奏ドラム画面.bPAUSE = false; + TJAPlayer3.stage演奏ドラム画面.t演奏やりなおし(); + + this.tDeativatePopupMenu(); + this.sw.Reset(); + } + } + } + + public override void tEnter押下Main( int nSortOrder ) + { + switch ( n現在の選択行 ) + { + case (int) EOrder.Continue: + TJAPlayer3.stage演奏ドラム画面.bPAUSE = false; + + CSound管理.rc演奏用タイマ.t再開(); + TJAPlayer3.Timer.t再開(); + TJAPlayer3.DTX.t全チップの再生再開(); + TJAPlayer3.stage演奏ドラム画面.actAVI.tPauseControl(); + CActSelectPopupMenu.b選択した = true; + this.tDeativatePopupMenu(); + break; + + case (int) EOrder.Redoing: + if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Dan) + { + this.bやり直しを選択した = true; + CActSelectPopupMenu.b選択した = true; + } + else + { + CSound管理.rc演奏用タイマ.t再開(); + TJAPlayer3.Timer.t再開(); + TJAPlayer3.stage演奏ドラム画面.t演奏中止(); + CActSelectPopupMenu.b選択した = true; + this.tDeativatePopupMenu(); + } + break; + + case (int) EOrder.Return: + CSound管理.rc演奏用タイマ.t再開(); + TJAPlayer3.Timer.t再開(); + TJAPlayer3.stage演奏ドラム画面.t演奏中止(); + CActSelectPopupMenu.b選択した = true; + this.tDeativatePopupMenu(); + break; + default: + break; + } + } + + public override void tCancel() + { + } + + // CActivity 実装 + + public override void On活性化() + { + base.On活性化(); + this.bGotoDetailConfig = false; + this.sw = new Stopwatch(); + } + public override void On非活性化() + { + base.On非活性化(); + } + public override void OnManagedリソースの作成() + { + if( !base.b活性化してない ) + { + string pathパネル本体 = CSkin.Path( @"Graphics\ScreenSelect popup auto settings.png" ); + if ( File.Exists( pathパネル本体 ) ) + { + this.txパネル本体 = TJAPlayer3.tテクスチャの生成( pathパネル本体, true ); + } + + base.OnManagedリソースの作成(); + } + } + public override void OnManagedリソースの解放() + { + if ( !base.b活性化してない ) + { + TJAPlayer3.tテクスチャの解放( ref this.txパネル本体 ); + TJAPlayer3.tテクスチャの解放( ref this.tx文字列パネル ); + base.OnManagedリソースの解放(); + } + } + + #region [ private ] + //----------------- + private int nCurrentTarget = 0; + private int nCurrentConfigSet = 0; + private List>> lci; + private enum EOrder : int + { + Continue, + Redoing, + Return, END, + Default = 99 + }; + + private bool b選択した; + private CTexture txパネル本体; + private CTexture tx文字列パネル; + private Stopwatch sw; + private bool bやり直しを選択した; + //----------------- + #endregion + } + + +} diff --git a/TJAPlayer3/Stages/07.Game/CAct演奏ゲージ共通.cs b/TJAPlayer3/Stages/07.Game/CAct演奏ゲージ共通.cs new file mode 100644 index 00000000..bd0bf961 --- /dev/null +++ b/TJAPlayer3/Stages/07.Game/CAct演奏ゲージ共通.cs @@ -0,0 +1,527 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Runtime.InteropServices; +using System.Drawing; +using System.Diagnostics; +using SlimDX; +using FDK; + +namespace TJAPlayer3 +{ + /// + /// CAct演奏Drumsゲージ と CAct演奏Gutiarゲージ のbaseクラス。ダメージ計算やDanger/Failed判断もこのクラスで行う。 + /// + /// 課題 + /// _STAGE FAILED OFF時にゲージ回復を止める + /// _黒→閉店までの差を大きくする。 + /// + internal class CAct演奏ゲージ共通 : CActivity + { + // プロパティ + public CActLVLNFont actLVLNFont { get; protected set; } + + // コンストラクタ + public CAct演奏ゲージ共通() + { + //actLVLNFont = new CActLVLNFont(); // On活性化()に移動 + //actLVLNFont.On活性化(); + } + + // CActivity 実装 + + public override void On活性化() + { + for (int i = 0; i < 3; i++) + { + dbゲージ増加量[i] = new float[2]; + for (int n = 0; n < 3; n++) + { + dbゲージ増加量_Branch[i, n] = new float[2]; + } + } + this.DTX[0] = TJAPlayer3.DTX; + this.DTX[1] = TJAPlayer3.DTX_2P; + actLVLNFont = new CActLVLNFont(); + actLVLNFont.On活性化(); + base.On活性化(); + } + public override void On非活性化() + { + actLVLNFont.On非活性化(); + actLVLNFont = null; + base.On非活性化(); + } + + const double GAUGE_MAX = 100.0; + const double GAUGE_INITIAL = 2.0 / 3; + const double GAUGE_MIN = -0.1; + const double GAUGE_ZERO = 0.0; + const double GAUGE_DANGER = 0.3; + + public bool bRisky // Riskyモードか否か + { + get; + private set; + } + public int nRiskyTimes_Initial // Risky初期値 + { + get; + private set; + } + public int nRiskyTimes // 残Miss回数 + { + get; + private set; + } + public bool IsFailed(E楽器パート part) // 閉店状態になったかどうか + { + if (bRisky) + { + return (nRiskyTimes <= 0); + } + return this.db現在のゲージ値[(int)part] <= GAUGE_MIN; + } + public bool IsDanger(E楽器パート part) // DANGERかどうか + { + if (bRisky) + { + switch (nRiskyTimes_Initial) + { + case 1: + return false; + case 2: + case 3: + return (nRiskyTimes <= 1); + default: + return (nRiskyTimes <= 2); + } + } + return (this.db現在のゲージ値[(int)part] <= GAUGE_DANGER); + } + + /// + /// ゲージの初期化 + /// + /// Riskyの初期値(0でRisky未使用) + public void Init(int nRiskyTimes_InitialVal, int nPlayer) // ゲージ初期化 + { + //ダメージ値の計算は太鼓の達人譜面Wikiのものを参考にしました。 + + for (int i = 0; i < 4; i++) + { + this.db現在のゲージ値[i] = 0; + } + + //ゲージのMAXまでの最低コンボ数を計算 + float dbGaugeMaxComboValue = 0; + float[] dbGaugeMaxComboValue_branch = new float[3]; + float dbDamageRate = 2.0f; + + if (nRiskyTimes_InitialVal > 0) + { + this.bRisky = true; + this.nRiskyTimes = TJAPlayer3.ConfigIni.nRisky; + this.nRiskyTimes_Initial = TJAPlayer3.ConfigIni.nRisky; + } + + switch (this.DTX[nPlayer].LEVELtaiko[TJAPlayer3.stage選曲.n確定された曲の難易度[nPlayer]]) + { + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + { + if (this.DTX[nPlayer].bチップがある.Branch) + { + dbGaugeMaxComboValue = this.DTX[nPlayer].nノーツ数[3] * (this.fGaugeMaxRate[0] / 100.0f); + for (int i = 0; i < 3; i++) + { + dbGaugeMaxComboValue_branch[i] = this.DTX[nPlayer].nノーツ数_Branch[i] * (this.fGaugeMaxRate[0] / 100.0f); + } + dbDamageRate = 0.625f; + } + else + { + dbGaugeMaxComboValue = this.DTX[nPlayer].nノーツ数[3] * (this.fGaugeMaxRate[0] / 100.0f); + dbDamageRate = 0.625f; + } + break; + } + + + case 8: + { + if (this.DTX[nPlayer].bチップがある.Branch) + { + dbGaugeMaxComboValue = this.DTX[nPlayer].nノーツ数[3] * (this.fGaugeMaxRate[1] / 100.0f); + for (int i = 0; i < 3; i++) + { + dbGaugeMaxComboValue_branch[i] = this.DTX[nPlayer].nノーツ数_Branch[i] * (this.fGaugeMaxRate[1] / 100.0f); + } + dbDamageRate = 0.625f; + } + else + { + dbGaugeMaxComboValue = this.DTX[nPlayer].nノーツ数[3] * (this.fGaugeMaxRate[1] / 100.0f); + dbDamageRate = 0.625f; + } + break; + } + + case 9: + case 10: + { + if (this.DTX[nPlayer].bチップがある.Branch) + { + dbGaugeMaxComboValue = this.DTX[nPlayer].nノーツ数[3] * (this.fGaugeMaxRate[2] / 100.0f); + for (int i = 0; i < 3; i++) + { + dbGaugeMaxComboValue_branch[i] = this.DTX[nPlayer].nノーツ数_Branch[i] * (this.fGaugeMaxRate[2] / 100.0f); + } + } + else + { + dbGaugeMaxComboValue = this.DTX[nPlayer].nノーツ数[3] * (this.fGaugeMaxRate[2] / 100.0f); + } + break; + } + + default: + { + if (this.DTX[nPlayer].bチップがある.Branch) + { + dbGaugeMaxComboValue = this.DTX[nPlayer].nノーツ数[3] * (this.fGaugeMaxRate[2] / 100.0f); + for (int i = 0; i < 3; i++) + { + dbGaugeMaxComboValue_branch[i] = this.DTX[nPlayer].nノーツ数[i] * (this.fGaugeMaxRate[2] / 100.0f); + } + } + else + { + dbGaugeMaxComboValue = this.DTX[nPlayer].nノーツ数[3] * (this.fGaugeMaxRate[2] / 100.0f); + } + break; + } + + } + + double nGaugeRankValue = 0D; + double[] nGaugeRankValue_branch = new double[] { 0D, 0D, 0D }; + if (this.DTX[nPlayer].GaugeIncreaseMode == GaugeIncreaseMode.Normal) + { + nGaugeRankValue = Math.Floor(10000.0f / dbGaugeMaxComboValue); + for (int i = 0; i < 3; i++) + { + nGaugeRankValue_branch[i] = Math.Floor(10000.0f / dbGaugeMaxComboValue_branch[i]); + } + } + else + { + nGaugeRankValue = 10000.0f / dbGaugeMaxComboValue; + for (int i = 0; i < 3; i++) + { + nGaugeRankValue_branch[i] = 10000.0f / dbGaugeMaxComboValue_branch[i]; + } + } + + //ゲージ値計算 + //実機に近い計算 + + this.dbゲージ増加量[0][nPlayer] = (float)nGaugeRankValue / 100.0f; + this.dbゲージ増加量[1][nPlayer] = (float)(nGaugeRankValue / 100.0f) * 0.5f; + this.dbゲージ増加量[2][nPlayer] = (float)(nGaugeRankValue / 100.0f) * dbDamageRate; + + for (int i = 0; i < 3; i++) + { + this.dbゲージ増加量_Branch[i, 0][nPlayer] = (float)nGaugeRankValue_branch[i] / 100.0f; + this.dbゲージ増加量_Branch[i, 1][nPlayer] = (float)(nGaugeRankValue_branch[i] / 100.0f) * 0.5f; + this.dbゲージ増加量_Branch[i, 2][nPlayer] = (float)(nGaugeRankValue_branch[i] / 100.0f) * dbDamageRate; + } + + //this.dbゲージ増加量[ 0 ] = CDTXMania.DTX.bチップがある.Branch ? ( 130.0 / CDTXMania.DTX.nノーツ数[ 0 ] ) : ( 130.0 / CDTXMania.DTX.nノーツ数[ 3 ] ); + //this.dbゲージ増加量[ 1 ] = CDTXMania.DTX.bチップがある.Branch ? ( 65.0 / CDTXMania.DTX.nノーツ数[ 0 ] ) : 65.0 / CDTXMania.DTX.nノーツ数[ 3 ]; + //this.dbゲージ増加量[ 2 ] = CDTXMania.DTX.bチップがある.Branch ? ( -260.0 / CDTXMania.DTX.nノーツ数[ 0 ] ) : -260.0 / CDTXMania.DTX.nノーツ数[ 3 ]; + + //2015.03.26 kairera0467 計算を初期化時にするよう修正。 + + #region [ 計算結果がInfintyだった場合も考えて ] + float fIsDontInfinty = 0.4f;//適当に0.4で + float[] fAddVolume = new float[] { 1.0f, 0.5f, dbDamageRate }; + + for (int i = 0; i < 3; i++) + { + for (int l = 0; l < 3; l++) + { + if (!double.IsInfinity(nGaugeRankValue_branch[i] / 100.0f))//値がInfintyかチェック + { + fIsDontInfinty = (float)(nGaugeRankValue_branch[i] / 100.0f); + this.dbゲージ増加量_Branch[i, l][nPlayer] = fIsDontInfinty * fAddVolume[l]; + } + } + } + for (int i = 0; i < 3; i++) + { + for (int l = 0; l < 3; l++) + { + if (double.IsInfinity(nGaugeRankValue_branch[i] / 100.0f))//値がInfintyかチェック + { + //Infintyだった場合はInfintyではない値 * 3.0をしてその値を利用する。 + this.dbゲージ増加量_Branch[i, l][nPlayer] = (fIsDontInfinty * fAddVolume[l]) * 3f; + } + } + } + #endregion + + #region ゲージの丸め処理 + var increase = new float[] { dbゲージ増加量[0][nPlayer], dbゲージ増加量[1][nPlayer], dbゲージ増加量[2][nPlayer] }; + var increaseBranch = new float[3, 3]; + for (int i = 0; i < 3; i++) + { + increaseBranch[i, 0] = dbゲージ増加量_Branch[i, 0][nPlayer]; + increaseBranch[i, 1] = dbゲージ増加量_Branch[i, 1][nPlayer]; + increaseBranch[i, 2] = dbゲージ増加量_Branch[i, 0][nPlayer]; + } + switch (this.DTX[nPlayer].GaugeIncreaseMode) + { + case GaugeIncreaseMode.Normal: + case GaugeIncreaseMode.Floor: + // 切り捨て + for (int i = 0; i < 3; i++) + { + increase[i] = (float)Math.Truncate(increase[i] * 10000.0f) / 10000.0f; + } + for (int i = 0; i < 3; i++) + { + increaseBranch[i, 0] = (float)Math.Truncate(increaseBranch[i, 0] * 10000.0f) / 10000.0f; + increaseBranch[i, 1] = (float)Math.Truncate(increaseBranch[i, 1] * 10000.0f) / 10000.0f; + increaseBranch[i, 2] = (float)Math.Truncate(increaseBranch[i, 2] * 10000.0f) / 10000.0f; + } + break; + case GaugeIncreaseMode.Round: + // 四捨五入 + for (int i = 0; i < 3; i++) + { + increase[i] = (float)Math.Round(increase[i] * 10000.0f) / 10000.0f; + } + for (int i = 0; i < 3; i++) + { + increaseBranch[i, 0] = (float)Math.Round(increaseBranch[i, 0] * 10000.0f) / 10000.0f; + increaseBranch[i, 1] = (float)Math.Round(increaseBranch[i, 1] * 10000.0f) / 10000.0f; + increaseBranch[i, 2] = (float)Math.Round(increaseBranch[i, 2] * 10000.0f) / 10000.0f; + } + break; + case GaugeIncreaseMode.Ceiling: + // 切り上げ + for (int i = 0; i < 3; i++) + { + increase[i] = (float)Math.Ceiling(increase[i] * 10000.0f) / 10000.0f; + } + for (int i = 0; i < 3; i++) + { + increaseBranch[i, 0] = (float)Math.Ceiling(increaseBranch[i, 0] * 10000.0f) / 10000.0f; + increaseBranch[i, 1] = (float)Math.Ceiling(increaseBranch[i, 1] * 10000.0f) / 10000.0f; + increaseBranch[i, 2] = (float)Math.Ceiling(increaseBranch[i, 2] * 10000.0f) / 10000.0f; + } + break; + case GaugeIncreaseMode.NotFix: + default: + // 丸めない + break; + } + + for (int i = 0; i < 3; i++) + { + dbゲージ増加量[i][nPlayer] = increase[i]; + } + for (int i = 0; i < 3; i++) + { + dbゲージ増加量_Branch[i, 0][nPlayer] = increaseBranch[i, 0]; + dbゲージ増加量_Branch[i, 1][nPlayer] = increaseBranch[i, 1]; + dbゲージ増加量_Branch[i, 2][nPlayer] = increaseBranch[i, 2]; + } + #endregion + } + + #region [ DAMAGE ] +#if true // DAMAGELEVELTUNING + #region [ DAMAGELEVELTUNING ] + // ---------------------------------- + public float[,] fDamageGaugeDelta = { // #23625 2011.1.10 ickw_284: tuned damage/recover factors + // drums, guitar, bass + { 0.004f, 0.006f, 0.006f, 0.004f }, + { 0.002f, 0.003f, 0.003f, 0.002f }, + { 0.000f, 0.000f, 0.000f, 0.000f }, + { -0.020f, -0.030f, -0.030f, -0.020f }, + { -0.050f, -0.050f, -0.050f, -0.050f } + }; + public float[] fDamageLevelFactor = { + 0.5f, 1.0f, 1.5f + }; + + public float[][] dbゲージ増加量 = new float[3][]; + + //譜面レベル, 判定 + public float[,][] dbゲージ増加量_Branch = new float[3, 3][]; + + + public float[] fGaugeMaxRate = + { + 70.7f,//1~7 + 70f, //8 + 75.0f //9~10 + };//おおよその値。 + + // ---------------------------------- + #endregion +#endif + + public void Damage(E楽器パート screenmode, E楽器パート part, E判定 e今回の判定, int nPlayer) + { + float fDamage; + int nコース = (int)TJAPlayer3.stage演奏ドラム画面.n現在のコース[nPlayer]; + + +#if true // DAMAGELEVELTUNING + switch (e今回の判定) + { + case E判定.Perfect: + case E判定.Great: + { + if (this.DTX[nPlayer].bチップがある.Branch) + { + fDamage = this.dbゲージ増加量_Branch[nコース, 0][nPlayer]; + } + else + fDamage = this.dbゲージ増加量[0][nPlayer]; + } + break; + case E判定.Good: + { + if (this.DTX[nPlayer].bチップがある.Branch) + { + fDamage = this.dbゲージ増加量_Branch[nコース, 1][nPlayer]; + } + else + fDamage = this.dbゲージ増加量[1][nPlayer]; + } + break; + case E判定.Poor: + case E判定.Miss: + { + if (this.DTX[nPlayer].bチップがある.Branch) + { + fDamage = this.dbゲージ増加量_Branch[nコース, 2][nPlayer]; + } + else + fDamage = this.dbゲージ増加量[2][nPlayer]; + + + if (fDamage >= 0) + { + fDamage = -fDamage; + } + + if (this.bRisky) + { + this.nRiskyTimes--; + } + } + + break; + + + + default: + { + if (nPlayer == 0 ? TJAPlayer3.ConfigIni.bAutoPlay[0] : TJAPlayer3.ConfigIni.bAutoPlay[1]) + { + if (this.DTX[nPlayer].bチップがある.Branch) + { + fDamage = this.dbゲージ増加量_Branch[nコース, 0][nPlayer]; + } + else + fDamage = this.dbゲージ増加量[0][nPlayer]; + } + else + fDamage = 0; + break; + } + + + } +#else // before applying #23625 modifications + switch (e今回の判定) + { + case E判定.Perfect: + fDamage = ( part == E楽器パート.DRUMS ) ? 0.01 : 0.015; + break; + + case E判定.Great: + fDamage = ( part == E楽器パート.DRUMS ) ? 0.006 : 0.009; + break; + + case E判定.Good: + fDamage = ( part == E楽器パート.DRUMS ) ? 0.002 : 0.003; + break; + + case E判定.Poor: + fDamage = ( part == E楽器パート.DRUMS ) ? 0.0 : 0.0; + break; + + case E判定.Miss: + fDamage = ( part == E楽器パート.DRUMS ) ? -0.035 : -0.035; + switch( CDTXMania.ConfigIni.eダメージレベル ) + { + case Eダメージレベル.少ない: + fDamage *= 0.6; + break; + + case Eダメージレベル.普通: + fDamage *= 1.0; + break; + + case Eダメージレベル.大きい: + fDamage *= 1.6; + break; + } + break; + + default: + fDamage = 0.0; + break; + } +#endif + + + this.db現在のゲージ値[nPlayer] = Math.Round(this.db現在のゲージ値[nPlayer] + fDamage, 5, MidpointRounding.ToEven); + + if (this.db現在のゲージ値[nPlayer] >= 100.0) + this.db現在のゲージ値[nPlayer] = 100.0; + else if (this.db現在のゲージ値[nPlayer] <= 0.0) + this.db現在のゲージ値[nPlayer] = 0.0; + + + //CDTXMania.stage演奏ドラム画面.nGauge = fDamage; + + } + + public virtual void Start(int nLane, E判定 judge, int player) + { + } + + //----------------- + #endregion + + private CDTX[] DTX = new CDTX[2]; + public double[] db現在のゲージ値 = new double[4]; + protected CCounter ct炎; + protected CCounter ct虹アニメ; + protected CCounter ct虹透明度; + protected CTexture[] txゲージ虹 = new CTexture[12]; + protected CTexture[] txゲージ虹2P = new CTexture[12]; + } +} diff --git a/TJAPlayer3/Stages/07.Game/CAct演奏スクロール速度.cs b/TJAPlayer3/Stages/07.Game/CAct演奏スクロール速度.cs new file mode 100644 index 00000000..d285cc0c --- /dev/null +++ b/TJAPlayer3/Stages/07.Game/CAct演奏スクロール速度.cs @@ -0,0 +1,87 @@ +using System; +using System.Collections.Generic; +using System.Text; +using FDK; + +namespace TJAPlayer3 +{ + internal class CAct演奏スクロール速度 : CActivity + { + // プロパティ + + public STDGBVALUE db現在の譜面スクロール速度; + + + // コンストラクタ + + public CAct演奏スクロール速度() + { + base.b活性化してない = true; + } + + + // CActivity 実装 + + public override void On活性化() + { + for( int i = 0; i < 3; i++ ) + { + this.db現在の譜面スクロール速度[ i ] = (double) TJAPlayer3.ConfigIni.n譜面スクロール速度[ i ]; + this.n速度変更制御タイマ[ i ] = -1; + } + base.On活性化(); + } + public override unsafe int On進行描画() + { + if( !base.b活性化してない ) + { + if( base.b初めての進行描画 ) + { + this.n速度変更制御タイマ.Drums = this.n速度変更制御タイマ.Guitar = this.n速度変更制御タイマ.Bass = (long)(CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)); + base.b初めての進行描画 = false; + } + long n現在時刻 = CSound管理.rc演奏用タイマ.n現在時刻; + for( int i = 0; i < 3; i++ ) + { + double db譜面スクロールスピード = (double) TJAPlayer3.ConfigIni.n譜面スクロール速度[ i ]; + if( n現在時刻 < this.n速度変更制御タイマ[ i ] ) + { + this.n速度変更制御タイマ[ i ] = n現在時刻; + } + while( ( n現在時刻 - this.n速度変更制御タイマ[ i ] ) >= 2 ) // 2msに1回ループ + { + if( this.db現在の譜面スクロール速度[ i ] < db譜面スクロールスピード ) // Config.iniのスクロール速度を変えると、それに追いつくように実画面のスクロール速度を変える + { + this.db現在の譜面スクロール速度[ i ] += 0.012; + + if( this.db現在の譜面スクロール速度[ i ] > db譜面スクロールスピード ) + { + this.db現在の譜面スクロール速度[ i ] = db譜面スクロールスピード; + } + } + else if ( this.db現在の譜面スクロール速度[ i ] > db譜面スクロールスピード ) + { + this.db現在の譜面スクロール速度[ i ] -= 0.012; + + if( this.db現在の譜面スクロール速度[ i ] < db譜面スクロールスピード ) + { + this.db現在の譜面スクロール速度[ i ] = db譜面スクロールスピード; + } + } + this.n速度変更制御タイマ[ i ] += 2; + } + } + } + return 0; + } + + + // その他 + + #region [ private ] + //----------------- + private STDGBVALUE n速度変更制御タイマ; + //----------------- + #endregion + } +} diff --git a/TJAPlayer3/Stages/07.Game/CAct演奏スコア共通.cs b/TJAPlayer3/Stages/07.Game/CAct演奏スコア共通.cs new file mode 100644 index 00000000..29ad1be8 --- /dev/null +++ b/TJAPlayer3/Stages/07.Game/CAct演奏スコア共通.cs @@ -0,0 +1,384 @@ +using System; +using System.Collections.Generic; +using System.Text; +using FDK; +using System.Drawing; +using System.Runtime.InteropServices; + +namespace TJAPlayer3 +{ + internal class CAct演奏スコア共通 : CActivity + { + // プロパティ + + protected STDGBVALUE[] nスコアの増分; + protected STDGBVALUE[] n現在の本当のスコア; + protected STDGBVALUE[] n現在表示中のスコア; + //protected CTexture txScore; + + // protected CTexture txScore_1P; + protected CCounter ctTimer; + public CCounter[] ct点数アニメタイマ; + + public CCounter[] ctボーナス加算タイマ; + + protected STスコア[] stScore; + protected int n現在表示中のAddScore; + + [StructLayout( LayoutKind.Sequential )] + protected struct STスコア + { + public bool bAddEnd; + public bool b使用中; + public bool b表示中; + public bool bBonusScore; + public CCounter ctTimer; + public int nAddScore; + public int nPlayer; + } + + [StructLayout(LayoutKind.Sequential)] + private struct ST文字位置 + { + public char ch; + public Point pt; + } + private ST文字位置[] stFont; + + + public long GetScore(int player) + { + return n現在表示中のスコア[player].Taiko; + } + + // コンストラクタ + + public CAct演奏スコア共通() + { + ST文字位置[] st文字位置Array = new ST文字位置[11]; + ST文字位置 st文字位置 = new ST文字位置(); + st文字位置.ch = '0'; + st文字位置.pt = new Point(0, 0); + st文字位置Array[0] = st文字位置; + ST文字位置 st文字位置2 = new ST文字位置(); + st文字位置2.ch = '1'; + st文字位置2.pt = new Point(24, 0); + st文字位置Array[1] = st文字位置2; + ST文字位置 st文字位置3 = new ST文字位置(); + st文字位置3.ch = '2'; + st文字位置3.pt = new Point(48, 0); + st文字位置Array[2] = st文字位置3; + ST文字位置 st文字位置4 = new ST文字位置(); + st文字位置4.ch = '3'; + st文字位置4.pt = new Point(72, 0); + st文字位置Array[3] = st文字位置4; + ST文字位置 st文字位置5 = new ST文字位置(); + st文字位置5.ch = '4'; + st文字位置5.pt = new Point(96, 0); + st文字位置Array[4] = st文字位置5; + ST文字位置 st文字位置6 = new ST文字位置(); + st文字位置6.ch = '5'; + st文字位置6.pt = new Point(120, 0); + st文字位置Array[5] = st文字位置6; + ST文字位置 st文字位置7 = new ST文字位置(); + st文字位置7.ch = '6'; + st文字位置7.pt = new Point(144, 0); + st文字位置Array[6] = st文字位置7; + ST文字位置 st文字位置8 = new ST文字位置(); + st文字位置8.ch = '7'; + st文字位置8.pt = new Point(168, 0); + st文字位置Array[7] = st文字位置8; + ST文字位置 st文字位置9 = new ST文字位置(); + st文字位置9.ch = '8'; + st文字位置9.pt = new Point(192, 0); + st文字位置Array[8] = st文字位置9; + ST文字位置 st文字位置10 = new ST文字位置(); + st文字位置10.ch = '9'; + st文字位置10.pt = new Point(216, 0); + st文字位置Array[9] = st文字位置10; + this.stFont = st文字位置Array; + + this.stScore = new STスコア[ 256 ]; + base.b活性化してない = true; + } + + + // メソッド + + private float[,] n点数アニメ拡大率_座標 = new float[,] + { + { + 1.14f, + -5f + }, + { + 1.2f, + -6f + }, + { + 1.23f, + -8f + }, + { + 1.25f, + -9f + }, + { + 1.23f, + -8f + }, + { + 1.2f, + -6f + }, + { + 1.14f, + -5f + }, + { + 1.08f, + -4f + }, + { + 1.04f, + -2f + }, + { + 1.02f, + -1f + }, + { + 1.01f, + -1f + }, + { + 1f, + 0f + } + }; + + private float[] ScoreScale = new float[] + { + 1f, + 1.050f, + 1.100f, + 1.110f, + 1.120f, + 1.125f, + 1.120f, + 1.080f, + 1.065f, + 1.030f, + 1.015f, + 1f + }; + + public double Get( E楽器パート part, int player ) + { + return this.n現在の本当のスコア[ player ][ (int) part ]; + } + public void Set( E楽器パート part, double nScore, int player ) + { + //現状、TAIKOパートでの演奏記録を結果ステージに持っていけないので、ドラムパートにも加算することでお茶を濁している。 + if( part == E楽器パート.TAIKO ) + part = E楽器パート.DRUMS; + + int nPart = (int) part; + if( this.n現在の本当のスコア[ player ][ nPart ] != nScore ) + { + this.n現在の本当のスコア[ player ][ nPart ] = nScore; + this.nスコアの増分[ player ][ nPart ] = (long) ( ( (double) ( this.n現在の本当のスコア[ player ][ nPart ] - this.n現在表示中のスコア[ player ][ nPart ] ) ) / 20.0 ); + this.nスコアの増分[ player ].Guitar = (long) ( ( (double) ( this.n現在の本当のスコア[ player ][ nPart ] - this.n現在表示中のスコア[ player ][ nPart ] ) ) ); + if( this.nスコアの増分[ player ][ nPart ] < 1L ) + { + this.nスコアの増分[ player ][ nPart ] = 1L; + } + } + + if( part == E楽器パート.DRUMS ) + part = E楽器パート.TAIKO; + + nPart = (int) part; + if( this.n現在の本当のスコア[ player ][ nPart ] != nScore ) + { + this.n現在の本当のスコア[ player ][ nPart ] = nScore; + this.nスコアの増分[ player ][ nPart ] = (long) ( ( (double) ( this.n現在の本当のスコア[ player ][ nPart ] - this.n現在表示中のスコア[ player ][ nPart ] ) ) / 20.0 ); + this.nスコアの増分[ player ].Guitar = (long) ( ( (double) ( this.n現在の本当のスコア[ player ][ nPart ] - this.n現在表示中のスコア[ player ][ nPart ] ) ) ); + if( this.nスコアの増分[ player ][ nPart ] < 1L ) + { + this.nスコアの増分[ player ][ nPart ] = 1L; + } + } + + } + /// + /// 点数を加える(各種AUTO補正つき) + /// + /// + /// + /// + public void Add( E楽器パート part, STAUTOPLAY bAutoPlay, long delta, int player ) + { + double rev = 1.0; + switch ( part ) + { + #region [ Unknown ] + case E楽器パート.UNKNOWN: + throw new ArgumentException(); + #endregion + } + this.ctTimer = new CCounter( 0, 400, 1, TJAPlayer3.Timer ); + + for( int sc = 0; sc < 1; sc++ ) + { + for( int i = 0; i < 256; i++ ) + { + if( this.stScore[ i ].b使用中 == false ) + { + this.stScore[ i ].b使用中 = true; + this.stScore[ i ].b表示中 = true; + this.stScore[ i ].nAddScore = (int)delta; + this.stScore[ i ].ctTimer = new CCounter( 0, 465, 2, TJAPlayer3.Timer ); + this.stScore[ i ].bBonusScore = false; + this.stScore[ i ].bAddEnd = false; + this.stScore[ i ].nPlayer = player; + this.n現在表示中のAddScore++; + break; + } + } + } + + this.Set( part, this.Get( part, player ) + delta * rev, player ); + } + + public void BonusAdd( int player ) + { + for( int sc = 0; sc < 1; sc++ ) + { + for( int i = 0; i < 256; i++ ) + { + if( this.stScore[ i ].b使用中 == false ) + { + this.stScore[ i ].b使用中 = true; + this.stScore[ i ].b表示中 = true; + this.stScore[ i ].nAddScore = 10000; + this.stScore[ i ].ctTimer = new CCounter( 0, 100, 4, TJAPlayer3.Timer ); + this.stScore[ i ].bBonusScore = true; + this.stScore[ i ].bAddEnd = true; + this.stScore[ i ].nPlayer = player; + this.n現在表示中のAddScore++; + break; + } + } + } + + this.Set( E楽器パート.TAIKO, this.Get( E楽器パート.TAIKO, player ) + 10000, player ); + } + + // CActivity 実装 + + public override void On活性化() + { + this.n現在表示中のスコア = new STDGBVALUE[ 4 ]; + this.n現在の本当のスコア = new STDGBVALUE[ 4 ]; + this.nスコアの増分 = new STDGBVALUE[ 4 ]; + for( int i = 0; i < 4; i++ ) + { + this.n現在表示中のスコア[ i ][ i ] = 0L; + this.n現在の本当のスコア[ i ][ i ] = 0L; + this.nスコアの増分[ i ][ i ] = 0L; + } + for( int sc = 0; sc < 256; sc++ ) + { + this.stScore[ sc ].b使用中 = false; + this.stScore[ sc ].ctTimer = new CCounter(); + this.stScore[ sc ].nAddScore = 0; + this.stScore[ sc ].bBonusScore = false; + this.stScore[ sc ].bAddEnd = false; + } + + this.n現在表示中のAddScore = 0; + + this.ctTimer = new CCounter(); + + this.ct点数アニメタイマ = new CCounter[4]; + for (int i = 0; i < 4; i++) + { + this.ct点数アニメタイマ[i] = new CCounter(); + } + this.ctボーナス加算タイマ = new CCounter[4]; + for (int i = 0; i < 4; i++) + { + this.ctボーナス加算タイマ[i] = new CCounter(); + } + base.On活性化(); + } + public override void OnManagedリソースの作成() + { + if( !base.b活性化してない ) + { + //this.txScore = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\7_Score_number.png" ) ); + // this.txScore_1P = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\7_Score_number_1P.png")); + base.OnManagedリソースの作成(); + } + } + public override void OnManagedリソースの解放() + { + if( !base.b活性化してない ) + { + //CDTXMania.tテクスチャの解放( ref this.txScore ); + // CDTXMania.tテクスチャの解放(ref this.txScore_1P); + base.OnManagedリソースの解放(); + } + } + + protected void t小文字表示( int x, int y, string str, int mode , int alpha, int player ) + { + foreach( char ch in str ) + { + for( int i = 0; i < this.stFont.Length; i++ ) + { + if( this.stFont[ i ].ch == ch ) + { + Rectangle rectangle = new Rectangle(TJAPlayer3.Skin.Game_Score_Size[0] * i, 0, TJAPlayer3.Skin.Game_Score_Size[0], TJAPlayer3.Skin.Game_Score_Size[1]); + switch( mode ) + { + case 0: + if( TJAPlayer3.Tx.Taiko_Score[0] != null ) + { + //this.txScore.color4 = new SlimDX.Color4( 1.0f, 1.0f, 1.0f ); + TJAPlayer3.Tx.Taiko_Score[0].Opacity = alpha; + TJAPlayer3.Tx.Taiko_Score[0].vc拡大縮小倍率.Y = ScoreScale[this.ct点数アニメタイマ[player].n現在の値]; + TJAPlayer3.Tx.Taiko_Score[0].t2D拡大率考慮下基準描画( TJAPlayer3.app.Device, x , y, rectangle ); + + } + break; + case 1: + if(TJAPlayer3.Tx.Taiko_Score[1] != null ) + { + //this.txScore.color4 = new SlimDX.Color4( 1.0f, 0.5f, 0.4f ); + //this.txScore.color4 = CDTXMania.Skin.cScoreColor1P; + TJAPlayer3.Tx.Taiko_Score[1].Opacity = alpha; + TJAPlayer3.Tx.Taiko_Score[1].vc拡大縮小倍率.Y = 1; + TJAPlayer3.Tx.Taiko_Score[1].t2D拡大率考慮下基準描画( TJAPlayer3.app.Device, x, y, rectangle ); + } + break; + case 2: + if(TJAPlayer3.Tx.Taiko_Score[2] != null ) + { + //this.txScore.color4 = new SlimDX.Color4( 0.4f, 0.5f, 1.0f ); + //this.txScore.color4 = CDTXMania.Skin.cScoreColor2P; + TJAPlayer3.Tx.Taiko_Score[2].Opacity = alpha; + TJAPlayer3.Tx.Taiko_Score[2].vc拡大縮小倍率.Y = 1; + TJAPlayer3.Tx.Taiko_Score[2].t2D拡大率考慮下基準描画( TJAPlayer3.app.Device, x, y, rectangle ); + } + break; + } + break; + } + } + x += TJAPlayer3.Skin.Game_Score_Padding; + } + } + } +} diff --git a/TJAPlayer3/Stages/07.Game/CAct演奏ステージ失敗.cs b/TJAPlayer3/Stages/07.Game/CAct演奏ステージ失敗.cs new file mode 100644 index 00000000..087fb579 --- /dev/null +++ b/TJAPlayer3/Stages/07.Game/CAct演奏ステージ失敗.cs @@ -0,0 +1,256 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Drawing; +using System.IO; +using System.Runtime.InteropServices; +using FDK; + +namespace TJAPlayer3 +{ + internal class CAct演奏ステージ失敗 : CActivity + { + // コンストラクタ + + public CAct演奏ステージ失敗() + { + ST文字位置[] st文字位置Array = new ST文字位置[ 11 ]; + + ST文字位置 st文字位置 = new ST文字位置(); + st文字位置.ch = '0'; + st文字位置.pt = new Point( 0, 0 ); + st文字位置Array[ 0 ] = st文字位置; + ST文字位置 st文字位置2 = new ST文字位置(); + st文字位置2.ch = '1'; + st文字位置2.pt = new Point( 62, 0 ); + st文字位置Array[ 1 ] = st文字位置2; + ST文字位置 st文字位置3 = new ST文字位置(); + st文字位置3.ch = '2'; + st文字位置3.pt = new Point( 124, 0 ); + st文字位置Array[ 2 ] = st文字位置3; + ST文字位置 st文字位置4 = new ST文字位置(); + st文字位置4.ch = '3'; + st文字位置4.pt = new Point( 186, 0 ); + st文字位置Array[ 3 ] = st文字位置4; + ST文字位置 st文字位置5 = new ST文字位置(); + st文字位置5.ch = '4'; + st文字位置5.pt = new Point( 248, 0 ); + st文字位置Array[ 4 ] = st文字位置5; + ST文字位置 st文字位置6 = new ST文字位置(); + st文字位置6.ch = '5'; + st文字位置6.pt = new Point( 310, 0 ); + st文字位置Array[ 5 ] = st文字位置6; + ST文字位置 st文字位置7 = new ST文字位置(); + st文字位置7.ch = '6'; + st文字位置7.pt = new Point( 372, 0 ); + st文字位置Array[ 6 ] = st文字位置7; + ST文字位置 st文字位置8 = new ST文字位置(); + st文字位置8.ch = '7'; + st文字位置8.pt = new Point( 434, 0 ); + st文字位置Array[ 7 ] = st文字位置8; + ST文字位置 st文字位置9 = new ST文字位置(); + st文字位置9.ch = '8'; + st文字位置9.pt = new Point( 496, 0 ); + st文字位置Array[ 8 ] = st文字位置9; + ST文字位置 st文字位置10 = new ST文字位置(); + st文字位置10.ch = '9'; + st文字位置10.pt = new Point( 558, 0 ); + st文字位置Array[ 9 ] = st文字位置10; + ST文字位置 st文字位置11 = new ST文字位置(); + st文字位置11.ch = '%'; + st文字位置11.pt = new Point( 558 + 62, 0 ); + st文字位置Array[ 10 ] = st文字位置11; + this.st文字位置 = st文字位置Array; + base.b活性化してない = true; + } + + + // メソッド + + public void Start() + { + this.dbFailedTime = TJAPlayer3.Timer.n現在時刻; + this.ct進行 = new CCounter( 0, 1000, 2, TJAPlayer3.Timer ); + if( TJAPlayer3.ConfigIni.eGameMode != EGame.OFF ) + { + this.ct進行 = new CCounter( 0, 4000, 2, TJAPlayer3.Timer ); + } + } + + + // CActivity 実装 + + public override void On活性化() + { + this.sd効果音 = null; + this.b効果音再生済み = false; + this.ct進行 = new CCounter(); + base.On活性化(); + } + public override void On非活性化() + { + this.ct進行 = null; + if( this.sd効果音 != null ) + { + TJAPlayer3.Sound管理.tサウンドを破棄する( this.sd効果音 ); + this.sd効果音 = null; + } + base.On非活性化(); + } + public override void OnManagedリソースの作成() + { + if( !base.b活性化してない ) + { + // this.txBlack = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\Tile black 64x64.png" ) ); + //this.txStageFailed = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\7_stage_failed.jpg" ) ); + //this.txGameFailed = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\7_GameFailed.png" ) ); + // this.tx数字 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\7_RollNumber.png" ) ); + base.OnManagedリソースの作成(); + } + } + public override void OnManagedリソースの解放() + { + if( !base.b活性化してない ) + { + //CDTXMania.tテクスチャの解放( ref this.txStageFailed ); + //CDTXMania.tテクスチャの解放( ref this.txGameFailed ); + // CDTXMania.tテクスチャの解放( ref this.txBlack ); + // CDTXMania.tテクスチャの解放( ref this.tx数字 ); + base.OnManagedリソースの解放(); + } + } + public override int On進行描画() + { + if( base.b活性化してない ) + { + return 0; + } + if( ( this.ct進行 == null ) || this.ct進行.b停止中 ) + { + return 0; + } + this.ct進行.t進行(); + + if (TJAPlayer3.ConfigIni.eGameMode == EGame.完走叩ききりまショー || TJAPlayer3.ConfigIni.eGameMode == EGame.完走叩ききりまショー激辛) + { + if (TJAPlayer3.Tx.Tile_Black != null) + { + for (int i = 0; i <= (SampleFramework.GameWindowSize.Width / 64); i++) + { + for (int j = 0; j <= (SampleFramework.GameWindowSize.Height / 64); j++) + { + TJAPlayer3.Tx.Tile_Black.t2D描画(TJAPlayer3.app.Device, i * 64, j * 64); + } + } + } + if (this.ct進行.n現在の値 > 1500) + { + if (TJAPlayer3.Tx.Failed_Game != null) + TJAPlayer3.Tx.Failed_Game.t2D描画(TJAPlayer3.app.Device, 0, 0); + + int num = (TJAPlayer3.DTX.listChip.Count > 0) ? TJAPlayer3.DTX.listChip[TJAPlayer3.DTX.listChip.Count - 1].n発声時刻ms : 0; + this.t文字表示(640, 520, (((this.dbFailedTime) / 1000.0) / (((double)num) / 1000.0) * 100).ToString("##0") + "%"); + } + + //int num = ( CDTXMania.DTX.listChip.Count > 0 ) ? CDTXMania.DTX.listChip[ CDTXMania.DTX.listChip.Count - 1 ].n発声時刻ms : 0; + //string str = "Time: " + ( ( ( this.dbFailedTime ) / 1000.0 ) ).ToString( "####0.00" ) + " / " + ( ( ( ( double ) num ) / 1000.0 ) ).ToString( "####0.00" ); + //CDTXMania.act文字コンソール.tPrint( 0, 0, C文字コンソール.Eフォント種別.白, str ); + + } + else + { + if (this.ct進行.n現在の値 < 100) + { + int x = (int)(640.0 * Math.Cos((Math.PI / 2 * this.ct進行.n現在の値) / 100.0)); + if ((x != 640) && (TJAPlayer3.Tx.Failed_Stage != null)) + { + TJAPlayer3.Tx.Failed_Stage.t2D描画(TJAPlayer3.app.Device, 0, 0, new Rectangle(x, 0, 640 - x, 720)); + TJAPlayer3.Tx.Failed_Stage.t2D描画(TJAPlayer3.app.Device, 640 + x, 0, new Rectangle(640, 0, 640 - x, 720)); + } + } + else + { + if (TJAPlayer3.Tx.Failed_Stage != null) + { + TJAPlayer3.Tx.Failed_Stage.t2D描画(TJAPlayer3.app.Device, 0, 0); + } + if (this.ct進行.n現在の値 <= 250) + { + int num2 = TJAPlayer3.Random.Next(5) - 2; + int y = TJAPlayer3.Random.Next(5) - 2; + if (TJAPlayer3.Tx.Failed_Stage != null) + { + TJAPlayer3.Tx.Failed_Stage.t2D描画(TJAPlayer3.app.Device, num2, y); + } + } + if (!this.b効果音再生済み) + { + TJAPlayer3.Skin.soundSTAGEFAILED音.t再生する(); + this.b効果音再生済み = true; + } + } + } + + if( !this.ct進行.b終了値に達した ) + { + return 0; + } + return 1; + } + + + // その他 + + #region [ private ] + //----------------- + private bool b効果音再生済み; + private CCounter ct進行; + private CSound sd効果音; + //private CTexture txStageFailed; + // private CTexture txGameFailed; + // private CTexture txBlack; + // private CTexture tx数字; + private double dbFailedTime; + //----------------- + private ST文字位置[] st文字位置; + + [StructLayout(LayoutKind.Sequential)] + public struct ST文字位置 + { + public char ch; + public Point pt; + public ST文字位置( char ch, Point pt ) + { + this.ch = ch; + this.pt = pt; + } + } + + private void t文字表示( int x, int y, string str ) + { + foreach( char ch in str ) + { + for( int i = 0; i < this.st文字位置.Length; i++ ) + { + if( this.st文字位置[ i ].ch == ch ) + { + Rectangle rectangle = new Rectangle( this.st文字位置[ i ].pt.X, this.st文字位置[ i ].pt.Y, 62, 80 ); + if( ch == '%' ) + { + rectangle.Width = 80; + } + if(TJAPlayer3.Tx.Balloon_Number_Roll != null ) + { + TJAPlayer3.Tx.Balloon_Number_Roll.t2D描画( TJAPlayer3.app.Device, x - ( 62 * str.Length / 2 ), y, rectangle ); + } + break; + } + } + x += 62; + } + } + + + #endregion + } +} diff --git a/TJAPlayer3/Stages/07.Game/CAct演奏ステータスパネル共通.cs b/TJAPlayer3/Stages/07.Game/CAct演奏ステータスパネル共通.cs new file mode 100644 index 00000000..50327bc2 --- /dev/null +++ b/TJAPlayer3/Stages/07.Game/CAct演奏ステータスパネル共通.cs @@ -0,0 +1,134 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Runtime.InteropServices; +using System.Drawing; +using System.Diagnostics; +using FDK; + +namespace TJAPlayer3 +{ + internal class CAct演奏ステータスパネル共通 : CActivity + { + // コンストラクタ + public CAct演奏ステータスパネル共通() + { + this.stパネルマップ = new STATUSPANEL[ 12 ]; // yyagi: 以下、手抜きの初期化でスマン + // { "DTXMANIA", 0 }, { "EXTREME", 1 }, ... みたいに書きたいが___ + string[] labels = new string[ 12 ] { + "DTXMANIA", "EXTREME", "ADVANCED", "ADVANCE", "BASIC", "RAW", + "REAL", "EASY", "EX-REAL", "ExREAL", "ExpertReal", "NORMAL" + }; + int[] status = new int[ 12 ] { + 0, 1, 2, 2, 3, 4, 5, 6, 7, 7, 7, 8 + }; + + for ( int i = 0; i < 12; i++ ) + { + this.stパネルマップ[ i ] = new STATUSPANEL(); + this.stパネルマップ[ i ].status = status[ i ]; + this.stパネルマップ[ i ].label = labels[ i ]; + } + + #region [ 旧初期化処理(注釈化) ] + //STATUSPANEL[] statuspanelArray = new STATUSPANEL[ 12 ]; + //STATUSPANEL statuspanel = new STATUSPANEL(); + //statuspanel.status = 0; + //statuspanel.label = "DTXMANIA"; + //statuspanelArray[ 0 ] = statuspanel; + //STATUSPANEL statuspanel2 = new STATUSPANEL(); + //statuspanel2.status = 1; + //statuspanel2.label = "EXTREME"; + //statuspanelArray[ 1 ] = statuspanel2; + //STATUSPANEL statuspanel3 = new STATUSPANEL(); + //statuspanel3.status = 2; + //statuspanel3.label = "ADVANCED"; + //statuspanelArray[ 2 ] = statuspanel3; + //STATUSPANEL statuspanel4 = new STATUSPANEL(); + //statuspanel4.status = 2; + //statuspanel4.label = "ADVANCE"; + //statuspanelArray[ 3 ] = statuspanel4; + //STATUSPANEL statuspanel5 = new STATUSPANEL(); + //statuspanel5.status = 3; + //statuspanel5.label = "BASIC"; + //statuspanelArray[ 4 ] = statuspanel5; + //STATUSPANEL statuspanel6 = new STATUSPANEL(); + //statuspanel6.status = 4; + //statuspanel6.label = "RAW"; + //statuspanelArray[ 5 ] = statuspanel6; + //STATUSPANEL statuspanel7 = new STATUSPANEL(); + //statuspanel7.status = 5; + //statuspanel7.label = "REAL"; + //statuspanelArray[ 6 ] = statuspanel7; + //STATUSPANEL statuspanel8 = new STATUSPANEL(); + //statuspanel8.status = 6; + //statuspanel8.label = "EASY"; + //statuspanelArray[ 7 ] = statuspanel8; + //STATUSPANEL statuspanel9 = new STATUSPANEL(); + //statuspanel9.status = 7; + //statuspanel9.label = "EX-REAL"; + //statuspanelArray[ 8 ] = statuspanel9; + //STATUSPANEL statuspanel10 = new STATUSPANEL(); + //statuspanel10.status = 7; + //statuspanel10.label = "ExREAL"; + //statuspanelArray[ 9 ] = statuspanel10; + //STATUSPANEL statuspanel11 = new STATUSPANEL(); + //statuspanel11.status = 7; + //statuspanel11.label = "ExpertReal"; + //statuspanelArray[ 10 ] = statuspanel11; + //STATUSPANEL statuspanel12 = new STATUSPANEL(); + //statuspanel12.status = 8; + //statuspanel12.label = "NORMAL"; + //statuspanelArray[ 11 ] = statuspanel12; + //this.stパネルマップ = statuspanelArray; + #endregion + base.b活性化してない = true; + } + + + // メソッド + + public void tラベル名からステータスパネルを決定する( string strラベル名 ) + { + if ( string.IsNullOrEmpty( strラベル名 ) ) + { + this.nStatus = 0; + } + else + { + foreach ( STATUSPANEL statuspanel in this.stパネルマップ ) + { + if ( strラベル名.Equals( statuspanel.label, StringComparison.CurrentCultureIgnoreCase ) ) // #24482 2011.2.17 yyagi ignore case + { + this.nStatus = statuspanel.status; + return; + } + } + this.nStatus = 0; + } + } + + // CActivity 実装 + + public override void On活性化() + { + this.nStatus = 0; + base.On活性化(); + } + + + #region [ protected ] + //----------------- + [StructLayout( LayoutKind.Sequential )] + protected struct STATUSPANEL + { + public string label; + public int status; + } + + protected int nStatus; + protected STATUSPANEL[] stパネルマップ = null; + //----------------- + #endregion + } +} diff --git a/TJAPlayer3/Stages/07.Game/CAct演奏チップファイアGB.cs b/TJAPlayer3/Stages/07.Game/CAct演奏チップファイアGB.cs new file mode 100644 index 00000000..7dcd825c --- /dev/null +++ b/TJAPlayer3/Stages/07.Game/CAct演奏チップファイアGB.cs @@ -0,0 +1,71 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Drawing; +using SlimDX; +using FDK; + +namespace TJAPlayer3 +{ + internal abstract class CAct演奏チップファイアGB : CActivity + { + // コンストラクタ + + public CAct演奏チップファイアGB() + { + base.b活性化してない = true; + } + + + // メソッド + + public virtual void Start( int nLane, int n中央X, int n中央Y, C演奏判定ライン座標共通 演奏判定ライン座標 ) + { + } + + public abstract void Start( int nLane, C演奏判定ライン座標共通 演奏判定ライン座標 ); +// public abstract void Start( int nLane ); + + // CActivity 実装 + + public override void On活性化() + { + base.On活性化(); + } + public override void On非活性化() + { + base.On非活性化(); + } + public override void OnManagedリソースの作成() + { + if( !base.b活性化してない ) + { + base.OnManagedリソースの作成(); + } + } + public override void OnManagedリソースの解放() + { + if( !base.b活性化してない ) + { + base.OnManagedリソースの解放(); + } + } + public override int On進行描画() + { + if( !base.b活性化してない ) + { + } + return 0; + } + + + // その他 + + #region [ private ] + //----------------- + //private STDGBVALUE nJudgeLinePosY_delta = new STDGBVALUE(); + C演奏判定ライン座標共通 _演奏判定ライン座標 = new C演奏判定ライン座標共通(); + //----------------- + #endregion + } +} diff --git a/TJAPlayer3/Stages/07.Game/CAct演奏パネル文字列.cs b/TJAPlayer3/Stages/07.Game/CAct演奏パネル文字列.cs new file mode 100644 index 00000000..e7ad7aa1 --- /dev/null +++ b/TJAPlayer3/Stages/07.Game/CAct演奏パネル文字列.cs @@ -0,0 +1,338 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Drawing; +using System.Diagnostics; +using SlimDX; +using FDK; + +namespace TJAPlayer3 +{ + internal class CAct演奏パネル文字列 : CActivity + { + + // コンストラクタ + + public CAct演奏パネル文字列() + { + base.b活性化してない = true; + this.Start(); + } + + + // メソッド + + /// + /// 右上の曲名、曲数表示の更新を行います。 + /// + /// 曲名 + /// ジャンル名 + /// 曲数 + public void SetPanelString(string songName, string genreName, string stageText = null) + { + if( base.b活性化してる ) + { + TJAPlayer3.tテクスチャの解放( ref this.txPanel ); + if( (songName != null ) && (songName.Length > 0 ) ) + { + try + { + using (var bmpSongTitle = pfMusicName.DrawPrivateFont(songName, TJAPlayer3.Skin.Game_MusicName_ForeColor, TJAPlayer3.Skin.Game_MusicName_BackColor)) + { + this.txMusicName = TJAPlayer3.tテクスチャの生成( bmpSongTitle, false ); + } + if (txMusicName != null) + { + this.txMusicName.vc拡大縮小倍率.X = TJAPlayer3.GetSongNameXScaling(ref txMusicName); + } + + Bitmap bmpDiff; + string strDiff = ""; + if (TJAPlayer3.Skin.eDiffDispMode == E難易度表示タイプ.n曲目に表示) + { + switch (TJAPlayer3.stage選曲.n確定された曲の難易度[0]) + { + case 0: + strDiff = "かんたん "; + break; + case 1: + strDiff = "ふつう "; + break; + case 2: + strDiff = "むずかしい "; + break; + case 3: + strDiff = "おに "; + break; + case 4: + strDiff = "えでぃと "; + break; + default: + strDiff = "おに "; + break; + } + bmpDiff = pfMusicName.DrawPrivateFont(strDiff + stageText, TJAPlayer3.Skin.Game_StageText_ForeColor, TJAPlayer3.Skin.Game_StageText_BackColor ); + } + else + { + bmpDiff = pfMusicName.DrawPrivateFont(stageText, TJAPlayer3.Skin.Game_StageText_ForeColor, TJAPlayer3.Skin.Game_StageText_BackColor ); + } + + using (bmpDiff) + { + txStage = TJAPlayer3.Tx.TxCGen("Songs"); + } + } + catch( CTextureCreateFailedException e ) + { + Trace.TraceError( e.ToString() ); + Trace.TraceError( "パネル文字列テクスチャの生成に失敗しました。" ); + this.txPanel = null; + } + } + if( !string.IsNullOrEmpty(genreName) ) + { + if (genreName.Equals("J-POP")) + { + this.txGENRE = TJAPlayer3.Tx.TxCGen("Pops"); + } + else if (genreName.Equals( "アニメ" ) ) + { + this.txGENRE = TJAPlayer3.Tx.TxCGen("Anime"); + } + else if(genreName.Equals( "ゲームミュージック" ) ) + { + this.txGENRE = TJAPlayer3.Tx.TxCGen("Game"); + } + else if(genreName.Equals( "ナムコオリジナル" ) ) + { + this.txGENRE = TJAPlayer3.Tx.TxCGen("Namco"); + } + else if(genreName.Equals( "クラシック" ) ) + { + this.txGENRE = TJAPlayer3.Tx.TxCGen("Classic"); + } + else if(genreName.Equals( "バラエティ" ) ) + { + this.txGENRE = TJAPlayer3.Tx.TxCGen("Variety"); + } + else if(genreName.Equals( "どうよう" ) ) + { + this.txGENRE = TJAPlayer3.Tx.TxCGen("Child"); + } + else if(genreName.Equals( "バラエティ" ) ) + { + this.txGENRE = TJAPlayer3.Tx.TxCGen("Variety"); + } + else if(genreName.Equals( "ボーカロイド" ) || genreName.Equals("Vocaloid") ) + { + this.txGENRE = TJAPlayer3.Tx.TxCGen("Vocaloid"); + } + else + { + using (var bmpDummy = new Bitmap( 1, 1 )) + { + this.txGENRE = TJAPlayer3.tテクスチャの生成( bmpDummy, true ); + } + } + } + + this.ct進行用 = new CCounter( 0, 2000, 2, TJAPlayer3.Timer ); + this.Start(); + + + + } + } + + public void t歌詞テクスチャを生成する( Bitmap bmplyric ) + { + TJAPlayer3.t安全にDisposeする(ref this.tx歌詞テクスチャ); + this.tx歌詞テクスチャ = TJAPlayer3.tテクスチャの生成( bmplyric ); + } + public void t歌詞テクスチャを削除する() + { + TJAPlayer3.tテクスチャの解放(ref this.tx歌詞テクスチャ); + } + /// + /// レイヤー管理のため、On進行描画から分離。 + /// + public void t歌詞テクスチャを描画する() + { + if( this.tx歌詞テクスチャ != null ) + { + if (TJAPlayer3.Skin.Game_Lyric_ReferencePoint == CSkin.ReferencePoint.Left) + { + this.tx歌詞テクスチャ.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lyric_X , TJAPlayer3.Skin.Game_Lyric_Y); + } + else if (TJAPlayer3.Skin.Game_Lyric_ReferencePoint == CSkin.ReferencePoint.Right) + { + this.tx歌詞テクスチャ.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lyric_X - this.tx歌詞テクスチャ.szテクスチャサイズ.Width, TJAPlayer3.Skin.Game_Lyric_Y); + } + else + { + this.tx歌詞テクスチャ.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lyric_X - (this.tx歌詞テクスチャ.szテクスチャサイズ.Width / 2), TJAPlayer3.Skin.Game_Lyric_Y); + } + } + } + + public void Stop() + { + this.bMute = true; + } + public void Start() + { + this.bMute = false; + } + + + // CActivity 実装 + + public override void On活性化() + { + if( !string.IsNullOrEmpty( TJAPlayer3.ConfigIni.FontName ) ) + { + this.pfMusicName = new CPrivateFastFont( new FontFamily( TJAPlayer3.ConfigIni.FontName), TJAPlayer3.Skin.Game_MusicName_FontSize); + //this.pf縦書きテスト = new CPrivateFastFont( new FontFamily( CDTXMania.ConfigIni.strPrivateFontで使うフォント名 ), 22 ); + } + + this.txPanel = null; + this.ct進行用 = new CCounter(); + this.Start(); + this.bFirst = true; + base.On活性化(); + } + public override void On非活性化() + { + this.ct進行用 = null; + base.On非活性化(); + } + public override void OnManagedリソースの作成() + { + if( !base.b活性化してない ) + { + base.OnManagedリソースの作成(); + } + } + public override void OnManagedリソースの解放() + { + if( !base.b活性化してない ) + { + TJAPlayer3.t安全にDisposeする( ref this.txPanel ); + TJAPlayer3.t安全にDisposeする( ref this.txMusicName ); + TJAPlayer3.t安全にDisposeする( ref this.txGENRE ); + TJAPlayer3.t安全にDisposeする(ref this.txPanel); + TJAPlayer3.t安全にDisposeする(ref this.tx歌詞テクスチャ); + TJAPlayer3.t安全にDisposeする(ref this.pfMusicName); + TJAPlayer3.t安全にDisposeする(ref this.pf歌詞フォント); + base.OnManagedリソースの解放(); + } + } + public override int On進行描画() + { + throw new InvalidOperationException( "t進行描画(x,y)のほうを使用してください。" ); + } + public int t進行描画( int x, int y ) + { + if (TJAPlayer3.stage演奏ドラム画面.actDan.IsAnimating) return 0; + if( !base.b活性化してない && !this.bMute ) + { + this.ct進行用.t進行Loop(); + if( this.txGENRE != null ) + this.txGENRE.t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Genre_X, TJAPlayer3.Skin.Game_Genre_Y ); + if( this.txStage != null ) + this.txStage.t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Genre_X, TJAPlayer3.Skin.Game_Genre_Y ); + + if( TJAPlayer3.Skin.b現在のステージ数を表示しない ) + { + if( this.txMusicName != null ) + { + float fRate = 660.0f / this.txMusicName.szテクスチャサイズ.Width; + if (this.txMusicName.szテクスチャサイズ.Width <= 660.0f) + fRate = 1.0f; + + this.txMusicName.vc拡大縮小倍率.X = fRate; + + if (this.txMusicName.szテクスチャサイズ.Width >= 195) + this.txMusicName.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_MusicName_X - ((this.txMusicName.szテクスチャサイズ.Width * fRate) / 2) - (this.txMusicName.szテクスチャサイズ.Width / 2), TJAPlayer3.Skin.Game_MusicName_Y); + else + this.txMusicName.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_MusicName_X - ((this.txMusicName.szテクスチャサイズ.Width * fRate) / 2), TJAPlayer3.Skin.Game_MusicName_Y); + } + } + else + { + #region[ 透明度制御 ] + + if( this.ct進行用.n現在の値 < 745 ) + { + if( this.txStage != null ) + this.txStage.Opacity = 0; + } + else if( this.ct進行用.n現在の値 >= 745 && this.ct進行用.n現在の値 < 1000 ) + { + if( this.txStage != null ) + this.txStage.Opacity = ( this.ct進行用.n現在の値 - 745 ); + } + else if( this.ct進行用.n現在の値 >= 1000 && this.ct進行用.n現在の値 <= 1745 ) + { + if( this.txStage != null ) + this.txStage.Opacity = 255; + } + else if( this.ct進行用.n現在の値 >= 1745 ) + { + if( this.txStage != null ) + this.txStage.Opacity = 255 - (this.ct進行用.n現在の値 - 1745); + } + #endregion + + if( this.txMusicName != null ) + { + if(this.b初めての進行描画) + { + b初めての進行描画 = false; + } + if (this.txMusicName != null) + { + float fRate = 660.0f / this.txMusicName.szテクスチャサイズ.Width; + if (this.txMusicName.szテクスチャサイズ.Width <= 660.0f) + fRate = 1.0f; + + this.txMusicName.vc拡大縮小倍率.X = fRate; + + if (this.txMusicName.szテクスチャサイズ.Width >= 195) + this.txMusicName.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_MusicName_X - ((this.txMusicName.szテクスチャサイズ.Width * fRate) / 2) - ((this.txMusicName.szテクスチャサイズ.Width - 195) / 2), TJAPlayer3.Skin.Game_MusicName_Y); + else + this.txMusicName.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_MusicName_X - ((this.txMusicName.szテクスチャサイズ.Width * fRate) / 2), TJAPlayer3.Skin.Game_MusicName_Y); + } + } + } + + //CDTXMania.act文字コンソール.tPrint( 0, 0, C文字コンソール.Eフォント種別.白, this.ct進行用.n現在の値.ToString() ); + + //this.txMusicName.t2D描画( CDTXMania.app.Device, 1250 - this.txMusicName.szテクスチャサイズ.Width, 14 ); + } + return 0; + } + + + // その他 + + #region [ private ] + //----------------- + private CCounter ct進行用; + + private CTexture txPanel; + private bool bMute; + private bool bFirst; + + private CTexture txMusicName; + private CTexture txStage; + private CTexture txGENRE; + private CTexture tx歌詞テクスチャ; + private CPrivateFastFont pfMusicName; + private CPrivateFastFont pf歌詞フォント; + //----------------- + #endregion + } +} +  diff --git a/TJAPlayer3/Stages/07.Game/CAct演奏レーンフラッシュGB共通.cs b/TJAPlayer3/Stages/07.Game/CAct演奏レーンフラッシュGB共通.cs new file mode 100644 index 00000000..b0fb7ef7 --- /dev/null +++ b/TJAPlayer3/Stages/07.Game/CAct演奏レーンフラッシュGB共通.cs @@ -0,0 +1,49 @@ +using System; +using System.Collections.Generic; +using System.Text; +using FDK; + +namespace TJAPlayer3 +{ + internal class CAct演奏レーンフラッシュGB共通 : CActivity + { + // プロパティ + + // コンストラクタ + + public CAct演奏レーンフラッシュGB共通() + { + base.b活性化してない = true; + } + + + // メソッド + + + // CActivity 実装 + + public override void On活性化() + { + base.On活性化(); + } + public override void On非活性化() + { + base.On非活性化(); + } + public override void OnManagedリソースの作成() + { + if( !base.b活性化してない ) + { + + base.OnManagedリソースの作成(); + } + } + public override void OnManagedリソースの解放() + { + if( !base.b活性化してない ) + { + base.OnManagedリソースの解放(); + } + } + } +} diff --git a/TJAPlayer3/Stages/07.Game/CAct演奏演奏情報.cs b/TJAPlayer3/Stages/07.Game/CAct演奏演奏情報.cs new file mode 100644 index 00000000..2225025c --- /dev/null +++ b/TJAPlayer3/Stages/07.Game/CAct演奏演奏情報.cs @@ -0,0 +1,82 @@ +using System; +using System.Collections.Generic; +using System.Text; +using FDK; +using System.Diagnostics; + +namespace TJAPlayer3 +{ + internal class CAct演奏演奏情報 : CActivity + { + // プロパティ + + public double dbBPM; + public readonly int[] NowMeasure = new int[2]; + public double dbSCROLL; + + // コンストラクタ + + public CAct演奏演奏情報() + { + base.b活性化してない = true; + } + + + // CActivity 実装 + + public override void On活性化() + { + for (int i = 0; i < 2; i++) + { + NowMeasure[i] = 0; + } + this.dbBPM = TJAPlayer3.DTX.BASEBPM; + this.dbSCROLL = 1.0; + base.On活性化(); + } + public override int On進行描画() + { + throw new InvalidOperationException( "t進行描画(int x, int y) のほうを使用してください。" ); + } + public void t進行描画( int x, int y ) + { + if ( !base.b活性化してない ) + { + y += 0x153; + TJAPlayer3.act文字コンソール.tPrint( x, y, C文字コンソール.Eフォント種別.白, string.Format( "BGM/Taiko Adj: {0:####0}/{1:####0} ms", TJAPlayer3.DTX.nBGMAdjust, TJAPlayer3.ConfigIni.nInputAdjustTimeMs ) ); + y -= 0x10; + int num = ( TJAPlayer3.DTX.listChip.Count > 0 ) ? TJAPlayer3.DTX.listChip[ TJAPlayer3.DTX.listChip.Count - 1 ].n発声時刻ms : 0; + string str = "Time: " + ((((double)(CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0))) / 1000.0)).ToString("####0.00") + " / " + ((((double)num) / 1000.0)).ToString("####0.00"); + TJAPlayer3.act文字コンソール.tPrint( x, y, C文字コンソール.Eフォント種別.白, str ); + y -= 0x10; + TJAPlayer3.act文字コンソール.tPrint( x, y, C文字コンソール.Eフォント種別.白, string.Format( "Part: {0:####0}/{1:####0}", NowMeasure[0], NowMeasure[1] ) ); + y -= 0x10; + TJAPlayer3.act文字コンソール.tPrint( x, y, C文字コンソール.Eフォント種別.白, string.Format( "BPM: {0:####0.0000}", this.dbBPM ) ); + y -= 0x10; + TJAPlayer3.act文字コンソール.tPrint( x, y, C文字コンソール.Eフォント種別.白, string.Format( "Frame: {0:####0} fps", TJAPlayer3.FPS.n現在のFPS ) ); + y -= 0x10; + TJAPlayer3.act文字コンソール.tPrint( x, y, C文字コンソール.Eフォント種別.白, string.Format( "NoteN: {0:####0}", TJAPlayer3.DTX.nノーツ数[0] ) ); + y -= 0x10; + TJAPlayer3.act文字コンソール.tPrint( x, y, C文字コンソール.Eフォント種別.白, string.Format( "NoteE: {0:####0}", TJAPlayer3.DTX.nノーツ数[1] ) ); + y -= 0x10; + TJAPlayer3.act文字コンソール.tPrint( x, y, C文字コンソール.Eフォント種別.白, string.Format( "NoteM: {0:####0}", TJAPlayer3.DTX.nノーツ数[2] ) ); + y -= 0x10; + TJAPlayer3.act文字コンソール.tPrint( x, y, C文字コンソール.Eフォント種別.白, string.Format( "NoteC: {0:####0}", TJAPlayer3.DTX.nノーツ数[3] ) ); + y -= 0x10; + TJAPlayer3.act文字コンソール.tPrint( x, y, C文字コンソール.Eフォント種別.白, string.Format( "SCROLL: {0:####0.00}", this.dbSCROLL ) ); + y -= 0x10; + TJAPlayer3.act文字コンソール.tPrint( x, y, C文字コンソール.Eフォント種別.白, string.Format( "SCOREMODE: {0:####0}", TJAPlayer3.DTX.nScoreModeTmp ) ); + y -= 0x10; + TJAPlayer3.act文字コンソール.tPrint( x, y, C文字コンソール.Eフォント種別.白, string.Format( "SCROLLMODE: {0:####0}", Enum.GetName(typeof(EScrollMode), TJAPlayer3.ConfigIni.eScrollMode ) ) ); + + + //CDTXMania.act文字コンソール.tPrint( x, y, C文字コンソール.Eフォント種別.白, string.Format( "Sound CPU : {0:####0.00}%", CDTXMania.Sound管理.GetCPUusage() ) ); + //y -= 0x10; + //CDTXMania.act文字コンソール.tPrint( x, y, C文字コンソール.Eフォント種別.白, string.Format( "Sound Mixing: {0:####0}", CDTXMania.Sound管理.GetMixingStreams() ) ); + //y -= 0x10; + //CDTXMania.act文字コンソール.tPrint( x, y, C文字コンソール.Eフォント種別.白, string.Format( "Sound Streams: {0:####0}", CDTXMania.Sound管理.GetStreams() ) ); + //y -= 0x10; + } + } + } +} diff --git a/TJAPlayer3/Stages/07.Game/CInvisibleChip.cs b/TJAPlayer3/Stages/07.Game/CInvisibleChip.cs new file mode 100644 index 00000000..a44b1488 --- /dev/null +++ b/TJAPlayer3/Stages/07.Game/CInvisibleChip.cs @@ -0,0 +1,196 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Diagnostics; +using FDK; + +namespace TJAPlayer3 +{ + public class CInvisibleChip : IDisposable + { + /// ミス後表示する時間(ms) + public int nDisplayTimeMs + { + get; + set; + } + /// 表示期間終了後、フェードアウトする時間 + public int nFadeoutTimeMs + { + get; + set; + } + /// 楽器ごとのInvisibleモード + public STDGBVALUE eInvisibleMode; + + + + #region [ コンストラクタ ] + public CInvisibleChip() + { + Initialize( 3000, 2000 ); + } + /// + /// コンストラクタ + /// + /// ミス時再表示する時間(秒) + /// 再表示後フェードアウトする時間(秒) + public CInvisibleChip( int _nDisplayTimeMs, int _nFadeoutTimeMs ) + { + Initialize( _nDisplayTimeMs, _nFadeoutTimeMs ); + } + private void Initialize( int _nDisplayTimeMs, int _nFadeoutTimeMs ) + { + nDisplayTimeMs = _nDisplayTimeMs; + nFadeoutTimeMs = _nFadeoutTimeMs; + Reset(); + } + #endregion + + /// + /// 内部状態を初期化する + /// + public void Reset() + { + for ( int i = 0; i < 4; i++ ) + { + ccounter[ i ] = new CCounter(); + b演奏チップが1つでもバーを通過した[ i ] = false; + } + } + + /// + /// まだSemi-Invisibleを開始していなければ、開始する + /// + /// + public void StartSemiInvisible( E楽器パート eInst ) + { + int nInst = (int) eInst; + if ( !b演奏チップが1つでもバーを通過した[ nInst ] ) + { + b演奏チップが1つでもバーを通過した[ nInst ] = true; + if ( this.eInvisibleMode[ nInst ] == EInvisible.SEMI ) + { + ShowChipTemporally( eInst ); + ccounter[ nInst ].n現在の値 = nDisplayTimeMs; + } + } + } + /// + /// 一時的にチップを表示するモードを開始する + /// + /// 楽器パート + public void ShowChipTemporally( E楽器パート eInst ) + { + ccounter[ (int) eInst ].t開始( 0, nDisplayTimeMs + nFadeoutTimeMs + 1, 1, TJAPlayer3.Timer ); + } + + /// + /// チップの表示/非表示の状態 + /// + public enum EChipInvisibleState + { + SHOW, // Missなどしてチップを表示中 + FADEOUT, // 表示期間終了後、フェードアウト中 + INVISIBLE // 完全非表示 + } + + internal EChipInvisibleState SetInvisibleStatus( ref CDTX.CChip cc ) + { + if ( cc.e楽器パート == E楽器パート.UNKNOWN ) + { + return EChipInvisibleState.SHOW; + } + int nInst = (int) cc.e楽器パート; + EChipInvisibleState retcode = EChipInvisibleState.SHOW; + + ccounter[ nInst ].t進行(); + + switch ( eInvisibleMode[ nInst ] ) + { + case EInvisible.OFF: + cc.b可視 = true; + retcode = EChipInvisibleState.SHOW; + break; + + case EInvisible.FULL: + cc.b可視 = false; + retcode = EChipInvisibleState.INVISIBLE; + break; + + case EInvisible.SEMI: + if ( !b演奏チップが1つでもバーを通過した[ nInst ] ) // まだ1つもチップがバーを通過していない時は、チップを表示する + { + cc.b可視 = true; + cc.n透明度 = 255; + return EChipInvisibleState.SHOW; + } + + if ( ccounter[ nInst ].n現在の値 <= 0 || ccounter[ nInst ].n現在の値 > nDisplayTimeMs + nFadeoutTimeMs ) + // まだ一度もMissっていない or フェードアウトしきった後 + { + cc.b可視 = false; + cc.n透明度 = 255; + retcode = EChipInvisibleState.INVISIBLE; + } + else if ( ccounter[ nInst ].n現在の値 < nDisplayTimeMs ) // 表示期間 + { + cc.b可視 = true; + cc.n透明度 = 255; + retcode = EChipInvisibleState.SHOW; + } + else if ( ccounter[ nInst ].n現在の値 < nDisplayTimeMs + nFadeoutTimeMs ) // フェードアウト期間 + { + cc.b可視 = true; + cc.n透明度 = 255 - (int) ( Convert.ToDouble( ccounter[ nInst ].n現在の値 - nDisplayTimeMs ) / nFadeoutTimeMs * 255.0 ); + retcode = EChipInvisibleState.FADEOUT; + } + break; + default: + cc.b可視 = true; + cc.n透明度 = 255; + retcode = EChipInvisibleState.SHOW; + break; + } + return retcode; + } + + #region [ Dispose-Finalize パターン実装 ] + //----------------- + public void Dispose() + { + this.Dispose( true ); + GC.SuppressFinalize( this ); + } + protected void Dispose( bool disposeManagedObjects ) + { + if( this.bDispose完了済み ) + return; + + if( disposeManagedObjects ) + { + // (A) Managed リソースの解放 + for ( int i = 0; i < 4; i++ ) + { + // ctInvisibleTimer[ i ].Dispose(); + ccounter[ i ].t停止(); + ccounter[ i ] = null; + } + } + + // (B) Unamanaged リソースの解放 + + this.bDispose完了済み = true; + } + ~CInvisibleChip() + { + this.Dispose( false ); + } + //----------------- + #endregion + + private STDGBVALUE ccounter; + private bool bDispose完了済み = false; + private STDGBVALUE b演奏チップが1つでもバーを通過した; + } +} diff --git a/TJAPlayer3/Stages/07.Game/CLagLogger.cs b/TJAPlayer3/Stages/07.Game/CLagLogger.cs new file mode 100644 index 00000000..aac1aeeb --- /dev/null +++ b/TJAPlayer3/Stages/07.Game/CLagLogger.cs @@ -0,0 +1,112 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Text; +using FDK.ExtensionMethods; + +namespace TJAPlayer3 +{ + internal static class CLagLogger + { + private const int MaximumLag = 200; + private const int MinimumLag = 0 - MaximumLag; + private const int Offset = 1 - MinimumLag; + + private static readonly List LagValues = new List(2000); + + public static void Add(int nPlayer, CDTX.CChip pChip) + { + if (nPlayer != 0) + { + return; + } + + switch (pChip.nチャンネル番号) + { + case 0x15: + case 0x16: + case 0x17: + case 0x18: + case 0x1F: + return; + } + + var pChipNLag = pChip.nLag; + + LagValues.Add(pChipNLag); + } + + public static double? LogAndReturnMeanLag() + { + if (LagValues.Count < 30) + { + return null; + } + + var orderedLagValues = LagValues.OrderBy(x => x).ToList(); + + var mean = orderedLagValues.Average(); + var mid = (orderedLagValues.Count - 1) / 2.0; + var median = (orderedLagValues[(int)(mid)] + orderedLagValues[(int)(mid + 0.5)]) / 2.0; + var groups = orderedLagValues.GroupBy(v => v).ToList(); + var maxCount = groups.Max(g => g.Count()); + var modes = string.Join(",", groups.Where(g => g.Count() == maxCount).Select(o => o.Key.ToString()).ToArray()); + var stdev = Math.Sqrt(orderedLagValues.Select(o => Math.Pow(o - mean, 2)).Average()); + + Trace.TraceInformation( + $"{nameof(CLagLogger)}.{nameof(LogAndReturnMeanLag)}: Mean lag: {mean}. Median lag: {median}. Mode(s) of lag: {modes}. Standard deviation of lag: {stdev}."); + + var hitChipCountsIndexedByOffsetLag = new int[1 + MaximumLag + 1 + MaximumLag + 1]; + foreach (var pChipNLag in LagValues) + { + hitChipCountsIndexedByOffsetLag[pChipNLag.Clamp(MinimumLag - 1, MaximumLag + 1) + Offset]++; + } + + var sbHeader = new StringBuilder(); + var sbData = new StringBuilder(); + + var doneOne = false; + for (var i = 0; i < hitChipCountsIndexedByOffsetLag.Length; i++) + { + var count = hitChipCountsIndexedByOffsetLag[i]; + + if (count != 0) + { + if (doneOne) + { + sbHeader.Append(","); + sbData.Append(","); + } + else + { + doneOne = true; + } + + var lag = i - Offset; + if (lag < MinimumLag) + { + sbHeader.Append($"< {MinimumLag}"); + } + else if (lag > MaximumLag) + { + sbHeader.Append($"> {MaximumLag}"); + } + else + { + sbHeader.Append(lag); + } + + sbData.Append(count); + } + } + + Trace.TraceInformation( + $"{nameof(CLagLogger)}.{nameof(LogAndReturnMeanLag)}: Hit chip counts, indexed by lag in milliseconds:{Environment.NewLine}{sbHeader}{Environment.NewLine}{sbData}"); + + LagValues.Clear(); + + return mean; + } + } +} diff --git a/TJAPlayer3/Stages/07.Game/CStage演奏画面共通.cs b/TJAPlayer3/Stages/07.Game/CStage演奏画面共通.cs new file mode 100644 index 00000000..c3934342 --- /dev/null +++ b/TJAPlayer3/Stages/07.Game/CStage演奏画面共通.cs @@ -0,0 +1,4893 @@ +using System; +using System.Collections.Generic; +using System.Runtime.InteropServices; +using System.Drawing; +using System.Diagnostics; +using FDK; +using FDK.ExtensionMethods; +using TJAPlayer3; +using System.Linq; + +namespace TJAPlayer3 +{ + /// + /// 演奏画面の共通クラス (ドラム演奏画面, ギター演奏画面の継承元) + /// + internal abstract class CStage演奏画面共通 : CStage + { + // プロパティ + + // メソッド + + #region [ t演奏結果を格納する_ドラム() ] + public void t演奏結果を格納する_ドラム( out CScoreIni.C演奏記録 Drums ) + { + Drums = new CScoreIni.C演奏記録(); + + //if ( ) + { + Drums.nスコア = (long) this.actScore.Get( E楽器パート.DRUMS, 0 ); + Drums.dbゲーム型スキル値 = CScoreIni.tゲーム型スキルを計算して返す(TJAPlayer3.DTX.LEVEL.Drums, TJAPlayer3.DTX.n可視チップ数.Drums, this.nヒット数_Auto含まない.Drums.Perfect, this.actCombo.n現在のコンボ数.最高値[0], E楽器パート.DRUMS, bIsAutoPlay); + Drums.db演奏型スキル値 = CScoreIni.t演奏型スキルを計算して返す( TJAPlayer3.DTX.n可視チップ数.Drums, this.nヒット数_Auto含まない.Drums.Perfect, this.nヒット数_Auto含まない.Drums.Great, this.nヒット数_Auto含まない.Drums.Good, this.nヒット数_Auto含まない.Drums.Poor, this.nヒット数_Auto含まない.Drums.Miss, E楽器パート.DRUMS, bIsAutoPlay ); + Drums.nPerfect数 = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay ? this.nヒット数_Auto含む.Drums.Perfect : this.nヒット数_Auto含まない.Drums.Perfect; + Drums.nGreat数 = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay ? this.nヒット数_Auto含む.Drums.Great : this.nヒット数_Auto含まない.Drums.Great; + Drums.nGood数 = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay ? this.nヒット数_Auto含む.Drums.Good : this.nヒット数_Auto含まない.Drums.Good; + Drums.nPoor数 = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay ? this.nヒット数_Auto含む.Drums.Poor : this.nヒット数_Auto含まない.Drums.Poor; + Drums.nMiss数 = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay ? this.nヒット数_Auto含む.Drums.Miss : this.nヒット数_Auto含まない.Drums.Miss; + Drums.nPerfect数_Auto含まない = this.nヒット数_Auto含まない.Drums.Perfect; + Drums.nGreat数_Auto含まない = this.nヒット数_Auto含まない.Drums.Great; + Drums.nGood数_Auto含まない = this.nヒット数_Auto含まない.Drums.Good; + Drums.nPoor数_Auto含まない = this.nヒット数_Auto含まない.Drums.Poor; + Drums.nMiss数_Auto含まない = this.nヒット数_Auto含まない.Drums.Miss; + Drums.n連打数 = this.n合計連打数[ 0 ]; + Drums.n最大コンボ数 = this.actCombo.n現在のコンボ数.最高値[0]; + Drums.n全チップ数 = TJAPlayer3.DTX.n可視チップ数.Drums; + for ( int i = 0; i < (int) Eレーン.MAX; i++ ) + { + Drums.bAutoPlay[ i ] = bIsAutoPlay[ i ]; + } + Drums.bTight = TJAPlayer3.ConfigIni.bTight; + for ( int i = 0; i < 3; i++ ) + { + Drums.bSudden[ i ] = TJAPlayer3.ConfigIni.bSudden[ i ]; + Drums.bHidden[ i ] = TJAPlayer3.ConfigIni.bHidden[ i ]; + Drums.eInvisible[ i ] = TJAPlayer3.ConfigIni.eInvisible[ i ]; + Drums.bReverse[ i ] = TJAPlayer3.ConfigIni.bReverse[ i ]; + Drums.eRandom[ i ] = TJAPlayer3.ConfigIni.eRandom[ i ]; + Drums.bLight[ i ] = TJAPlayer3.ConfigIni.bLight[ i ]; + Drums.bLeft[ i ] = TJAPlayer3.ConfigIni.bLeft[ i ]; + Drums.f譜面スクロール速度[ i ] = ( (float) ( TJAPlayer3.ConfigIni.n譜面スクロール速度[ i ] + 1 ) ) * 0.5f; + } + Drums.eDark = TJAPlayer3.ConfigIni.eDark; + Drums.n演奏速度分子 = TJAPlayer3.ConfigIni.n演奏速度; + Drums.n演奏速度分母 = 20; + Drums.bSTAGEFAILED有効 = TJAPlayer3.ConfigIni.bSTAGEFAILED有効; + Drums.eダメージレベル = TJAPlayer3.ConfigIni.eダメージレベル; + Drums.b演奏にキーボードを使用した = this.b演奏にキーボードを使った; + Drums.b演奏にMIDI入力を使用した = this.b演奏にMIDI入力を使った; + Drums.b演奏にジョイパッドを使用した = this.b演奏にジョイパッドを使った; + Drums.b演奏にマウスを使用した = this.b演奏にマウスを使った; + Drums.nPerfectになる範囲ms = TJAPlayer3.nPerfect範囲ms; + Drums.nGreatになる範囲ms = TJAPlayer3.nGreat範囲ms; + Drums.nGoodになる範囲ms = TJAPlayer3.nGood範囲ms; + Drums.nPoorになる範囲ms = TJAPlayer3.nPoor範囲ms; + Drums.strDTXManiaのバージョン = TJAPlayer3.VERSION; + Drums.最終更新日時 = DateTime.Now.ToString(); + Drums.Hash = CScoreIni.t演奏セクションのMD5を求めて返す( Drums ); + Drums.fゲージ = (float)this.actGauge.db現在のゲージ値[ 0 ]; + if( !TJAPlayer3.ConfigIni.b太鼓パートAutoPlay ) + { + Drums.nハイスコア = TJAPlayer3.stage選曲.r確定されたスコア.譜面情報.nハイスコア; //2015.06.16 kairera0467 他難易度の上書き防止。 + if( TJAPlayer3.stage選曲.r確定されたスコア.譜面情報.nハイスコア[ TJAPlayer3.stage選曲.n確定された曲の難易度[0]] < (int)this.actScore.Get( E楽器パート.DRUMS, 0 ) ) + Drums.nハイスコア[ TJAPlayer3.stage選曲.n確定された曲の難易度[0]] = (int)this.actScore.Get( E楽器パート.DRUMS, 0 ); + } + var danC = TJAPlayer3.stage演奏ドラム画面.actDan.GetExam(); + for (int i = 0; i < danC.Length; i++) + { + Drums.Dan_C[i] = danC[i]; + } + } + } + #endregion + #region [ t演奏結果を格納する_太鼓() ] + public void t演奏結果を格納する_太鼓( out CScoreIni.C演奏記録 Drums ) + { + Drums = new CScoreIni.C演奏記録(); + + //if ( CDTXMania.DTX.bチップがある.Drums ) + { + Drums.nスコア = (long) this.actScore.Get( E楽器パート.DRUMS, 0 ); + Drums.dbゲーム型スキル値 = CScoreIni.tゲーム型スキルを計算して返す( TJAPlayer3.DTX.LEVEL.Drums, TJAPlayer3.DTX.n可視チップ数.Drums, this.nヒット数_Auto含まない.Drums.Perfect, this.actCombo.n現在のコンボ数.P2, E楽器パート.DRUMS, bIsAutoPlay ); + Drums.db演奏型スキル値 = CScoreIni.t演奏型スキルを計算して返す( TJAPlayer3.DTX.n可視チップ数.Drums, this.nヒット数_Auto含まない.Drums.Perfect, this.nヒット数_Auto含まない.Drums.Great, this.nヒット数_Auto含まない.Drums.Good, this.nヒット数_Auto含まない.Drums.Poor, this.nヒット数_Auto含まない.Drums.Miss, E楽器パート.DRUMS, bIsAutoPlay ); + Drums.nPerfect数 = this.nヒット数_Auto含まない.Taiko.Perfect; + Drums.nGreat数 = this.nヒット数_Auto含まない.Taiko.Great; + Drums.nGood数 = this.nヒット数_Auto含まない.Taiko.Good; + Drums.nPoor数 = this.nヒット数_Auto含まない.Taiko.Poor; + Drums.nMiss数 = this.nヒット数_Auto含まない.Taiko.Miss; + Drums.nPerfect数_Auto含まない = this.nヒット数_Auto含まない.Taiko.Perfect; + Drums.nGreat数_Auto含まない = this.nヒット数_Auto含まない.Taiko.Great; + Drums.nGood数_Auto含まない = this.nヒット数_Auto含まない.Taiko.Good; + Drums.nPoor数_Auto含まない = this.nヒット数_Auto含まない.Taiko.Poor; + Drums.nMiss数_Auto含まない = this.nヒット数_Auto含まない.Taiko.Miss; + Drums.n連打数 = this.n合計連打数[ 0 ]; + Drums.n最大コンボ数 = this.actCombo.n現在のコンボ数.P2; + Drums.n全チップ数 = TJAPlayer3.DTX.nノーツ数[ 3 ]; + for ( int i = 0; i < (int) Eレーン.MAX; i++ ) + { + Drums.bAutoPlay[ i ] = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay; + } + Drums.bTight = TJAPlayer3.ConfigIni.bTight; + for ( int i = 0; i < 3; i++ ) + { + Drums.bSudden[ i ] = TJAPlayer3.ConfigIni.bSudden[ i ]; + Drums.bHidden[ i ] = TJAPlayer3.ConfigIni.bHidden[ i ]; + Drums.eInvisible[ i ] = TJAPlayer3.ConfigIni.eInvisible[ i ]; + Drums.bReverse[ i ] = TJAPlayer3.ConfigIni.bReverse[ i ]; + Drums.eRandom[ i ] = TJAPlayer3.ConfigIni.eRandom[ i ]; + Drums.bLight[ i ] = TJAPlayer3.ConfigIni.bLight[ i ]; + Drums.bLeft[ i ] = TJAPlayer3.ConfigIni.bLeft[ i ]; + Drums.f譜面スクロール速度[ i ] = ( (float) ( TJAPlayer3.ConfigIni.n譜面スクロール速度[ i ] + 1 ) ) * 0.5f; + } + Drums.eDark = TJAPlayer3.ConfigIni.eDark; + Drums.n演奏速度分子 = TJAPlayer3.ConfigIni.n演奏速度; + Drums.n演奏速度分母 = 20; + Drums.bSTAGEFAILED有効 = TJAPlayer3.ConfigIni.bSTAGEFAILED有効; + Drums.eダメージレベル = TJAPlayer3.ConfigIni.eダメージレベル; + Drums.b演奏にキーボードを使用した = this.b演奏にキーボードを使った; + Drums.b演奏にMIDI入力を使用した = this.b演奏にMIDI入力を使った; + Drums.b演奏にジョイパッドを使用した = this.b演奏にジョイパッドを使った; + Drums.b演奏にマウスを使用した = this.b演奏にマウスを使った; + Drums.nPerfectになる範囲ms = TJAPlayer3.nPerfect範囲ms; + Drums.nGreatになる範囲ms = TJAPlayer3.nGreat範囲ms; + Drums.nGoodになる範囲ms = TJAPlayer3.nGood範囲ms; + Drums.nPoorになる範囲ms = TJAPlayer3.nPoor範囲ms; + Drums.strDTXManiaのバージョン = TJAPlayer3.VERSION; + Drums.最終更新日時 = DateTime.Now.ToString(); + Drums.Hash = CScoreIni.t演奏セクションのMD5を求めて返す( Drums ); + Drums.fゲージ = (float)this.actGauge.db現在のゲージ値[ 0 ]; + } + } + #endregion + + // CStage 実装 + + public int[] nNoteCount = new int[2]; + public int[] nBalloonCount = new int[2]; + public double[] nAddScoreNiji = new double[2]; + + public override void On活性化() + { + listChip = new List[ 4 ]; + for( int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++ ) + { + switch( i ) + { + case 0: + listChip[i] = TJAPlayer3.DTX.listChip; + break; + case 1: + listChip[i] = TJAPlayer3.DTX_2P.listChip; + break; + } + + int n整数値管理 = 0; + if (r指定時刻に一番近い未ヒットChipを過去方向優先で検索する(0, i) != null) //2020.07.08 Mr-Ojii 未ヒットチップがないときの例外の発生回避 <-(KabanFriends)コード借りましたごめんなさい(´・ω・`) + { + foreach (CDTX.CChip chip in listChip[i]) + { + chip.nList上の位置 = n整数値管理; + if ((chip.nチャンネル番号 == 0x15 || chip.nチャンネル番号 == 0x16) && (n整数値管理 < this.listChip[i].Count - 1)) + { + if (chip.db発声時刻ms < r指定時刻に一番近い未ヒットChipを過去方向優先で検索する(0, i).db発声時刻ms) + { + chip.n描画優先度 = 1; + } + } + n整数値管理++; + } + } + } + + if(TJAPlayer3.DTX.bチップがある.Branch) + { + for (int i = 0; i < TJAPlayer3.DTX.listChip_Branch[2].Count; i++) + { + nNoteCount[0] = TJAPlayer3.DTX.listChip_Branch[2].Where(num => num.nチャンネル番号 > 16 && num.nチャンネル番号 < 21).Count(); + nBalloonCount[0] += TJAPlayer3.DTX.listChip_Branch[2][i].nRollCount; + } + } + else + { + for (int i = 0; i < TJAPlayer3.DTX.listChip.Count; i++) + { + nNoteCount[0] = TJAPlayer3.DTX.listChip.Where(num => num.nチャンネル番号 > 16 && num.nチャンネル番号 < 21).Count(); + nBalloonCount[0] += TJAPlayer3.DTX.listChip[i].nRollCount; + } + } + + //nAddScoreNiji = (1000000 - (15 * RollTimems * 100) - (nBalloonCount * 100)) / TJAPlayer3.DTX.listChip.Count; + if(nNoteCount[0] == 0 && nBalloonCount[0] == 0) + { + nAddScoreNiji[0] = 1000000; + } + else + { + nAddScoreNiji[0] = (double)Math.Ceiling((decimal)(1000000 - (nBalloonCount[0] * 100)) / nNoteCount[0] / 10) * 10; + } + + if(TJAPlayer3.ConfigIni.nPlayerCount == 2) + { + if (TJAPlayer3.DTX.bチップがある.Branch) + { + for (int i = 0; i < TJAPlayer3.DTX_2P.listChip_Branch[2].Count; i++) + { + nNoteCount[1] = TJAPlayer3.DTX_2P.listChip_Branch[2].Where(num => num.nチャンネル番号 > 16 && num.nチャンネル番号 < 21).Count(); + nBalloonCount[1] += TJAPlayer3.DTX_2P.listChip_Branch[2][i].nRollCount; + } + } + else + { + for (int i = 0; i < TJAPlayer3.DTX_2P.listChip.Count; i++) + { + nNoteCount[1] = TJAPlayer3.DTX_2P.listChip.Where(num => num.nチャンネル番号 > 16 && num.nチャンネル番号 < 21).Count(); + nBalloonCount[1] += TJAPlayer3.DTX_2P.listChip[i].nRollCount; + } + } + + //nAddScoreNiji = (1000000 - (15 * RollTimems * 100) - (nBalloonCount * 100)) / TJAPlayer3.DTX.listChip.Count; + if (nNoteCount[1] == 0 && nBalloonCount[1] == 0) + { + nAddScoreNiji[1] = 1000000; + } + else + { + nAddScoreNiji[1] = (double)Math.Ceiling((decimal)(1000000 - (nBalloonCount[1] * 100)) / nNoteCount[1] / 10) * 10; + } + } + + for (int index = TJAPlayer3.DTX.listChip.Count - 1; index >= 0; index--) + { + if (TJAPlayer3.DTX.listChip[index].nチャンネル番号 == 0x01) + { + this.bgmlength = TJAPlayer3.DTX.listChip[index].GetDuration() + TJAPlayer3.DTX.listChip[index].n発声時刻ms; + break; + } + } + + ctChipAnime = new CCounter[2]; + ctChipAnimeLag = new CCounter[2]; + for (int i = 0; i < 2; i++) + { + ctChipAnime[i] = new CCounter(); + ctChipAnimeLag[i] = new CCounter(); + } + + listWAV = TJAPlayer3.DTX.listWAV; + + this.eフェードアウト完了時の戻り値 = E演奏画面の戻り値.継続; + this.n現在のトップChip = ( listChip[0].Count > 0 ) ? 0 : -1; + this.L最後に再生したHHの実WAV番号 = new List( 16 ); + this.n最後に再生したHHのチャンネル番号 = 0; + this.n最後に再生した実WAV番号.Guitar = -1; + this.n最後に再生した実WAV番号.Bass = -1; + for ( int i = 0; i < 50; i++ ) + { + this.n最後に再生したBGMの実WAV番号[ i ] = -1; + } + + cInvisibleChip = new CInvisibleChip( TJAPlayer3.ConfigIni.nDisplayTimesMs, TJAPlayer3.ConfigIni.nFadeoutTimeMs ); + this.演奏判定ライン座標 = new C演奏判定ライン座標共通(); + for ( int k = 0; k < 4; k++ ) + { + //for ( int n = 0; n < 5; n++ ) + //{ + this.nヒット数_Auto含まない[ k ] = new CHITCOUNTOFRANK(); + this.nヒット数_Auto含む[ k ] = new CHITCOUNTOFRANK(); + //} + this.queWailing[ k ] = new Queue(); + this.r現在の歓声Chip[ k ] = null; + cInvisibleChip.eInvisibleMode[ k ] = TJAPlayer3.ConfigIni.eInvisible[ k ]; + if ( TJAPlayer3.DTXVmode.Enabled ) + { + TJAPlayer3.ConfigIni.n譜面スクロール速度[ k ] = TJAPlayer3.ConfigIni.nViewerScrollSpeed[ k ]; + } + + //this.nJudgeLinePosY_delta[ k ] = CDTXMania.ConfigIni.nJudgeLinePosOffset[ k ]; // #31602 2013.6.23 yyagi + + this.演奏判定ライン座標.n判定位置[ k ] = TJAPlayer3.ConfigIni.e判定位置[ k ]; + this.演奏判定ライン座標.nJudgeLinePosY_delta[ k ] = TJAPlayer3.ConfigIni.nJudgeLinePosOffset[ k ]; + this.bReverse[ k ] = TJAPlayer3.ConfigIni.bReverse[ k ]; // + + } + actCombo.演奏判定ライン座標 = 演奏判定ライン座標; + + this.b演奏にキーボードを使った = false; + this.b演奏にジョイパッドを使った = false; + this.b演奏にMIDI入力を使った = false; + this.b演奏にマウスを使った = false; + + cInvisibleChip.Reset(); + base.On活性化(); + this.tステータスパネルの選択(); + this.tパネル文字列の設定(); + //this.演奏判定ライン座標(); + this.bIsGOGOTIME = new bool[]{ false, false, false, false }; + this.bUseBranch = new bool[]{ false, false, false, false }; + this.n現在のコース = new CDTX.ECourse[4]; + this.n次回のコース = new CDTX.ECourse[4]; + for (int i = 0; i < 2; i++) + { + this.b強制的に分岐させた[i] = false; + + TJAPlayer3.stage演奏ドラム画面.actMtaiko.After[i] = CDTX.ECourse.eNormal; + TJAPlayer3.stage演奏ドラム画面.actLaneTaiko.stBranch[i].nAfter = CDTX.ECourse.eNormal; + TJAPlayer3.stage演奏ドラム画面.actMtaiko.Before[i] = CDTX.ECourse.eNormal; + TJAPlayer3.stage演奏ドラム画面.actLaneTaiko.stBranch[i].nBefore = CDTX.ECourse.eNormal; + } + for (int i = 0; i < CBranchScore.Length; i++) + { + this.CBranchScore[i] = new CBRANCHSCORE(); + + //大音符分岐時の情報をまとめるため + this.CBranchScore[i].cBigNotes = new CBRANCHSCORE(); + } + this.nレーン用表示コース = new CDTX.ECourse[4]; + this.b連打中 = new bool[] { false, false, false, false }; + this.n現在の連打数 = new int[]{ 0, 0, 0, 0 }; + this.n合計連打数 = new int[]{ 0, 0, 0, 0 }; + this.n分岐した回数 = new int[ 4 ]; + for (int i = 0; i < 2; i++) + { + ShownLyric[i] = 0; + } + this.nJPOSSCROLL = new int[ 4 ]; + this.bLEVELHOLD = new bool[]{ false, false, false, false }; + + this.bDoublePlay = TJAPlayer3.ConfigIni.nPlayerCount >= 2 ? true : false; + + this.nLoopCount_Clear = 1; + + this.tBranchReset(0); + + this.bIsAutoPlay = TJAPlayer3.ConfigIni.bAutoPlay; // #24239 2011.1.23 yyagi + + //this.bIsAutoPlay.Guitar = CDTXMania.ConfigIni.bギターが全部オートプレイである; + //this.bIsAutoPlay.Bass = CDTXMania.ConfigIni.bベースが全部オートプレイである; + // this.nRisky = CDTXMania.ConfigIni.nRisky; // #23559 2011.7.28 yyagi + actGauge.Init( TJAPlayer3.ConfigIni.nRisky, 0 ); // #23559 2011.7.28 yyagi + if(bDoublePlay) actGauge.Init( TJAPlayer3.ConfigIni.nRisky, 1 ); // #23559 2011.7.28 yyagi + this.nPolyphonicSounds = TJAPlayer3.ConfigIni.nPoliphonicSounds; + e判定表示優先度 = TJAPlayer3.ConfigIni.e判定表示優先度; + + TJAPlayer3.Skin.tRemoveMixerAll(); // 効果音のストリームをミキサーから解除しておく + + queueMixerSound = new Queue( 64 ); + bIsDirectSound = ( TJAPlayer3.Sound管理.GetCurrentSoundDeviceType() == "DirectSound" ); + bUseOSTimer = TJAPlayer3.ConfigIni.bUseOSTimer; + this.bPAUSE = false; + if ( TJAPlayer3.DTXVmode.Enabled ) + { + db再生速度 = TJAPlayer3.DTX.dbDTXVPlaySpeed; + TJAPlayer3.ConfigIni.n演奏速度 = (int) (TJAPlayer3.DTX.dbDTXVPlaySpeed * 20 + 0.5 ); + } + else + { + db再生速度 = ( (double) TJAPlayer3.ConfigIni.n演奏速度 ) / 20.0; + } + bValidScore = ( TJAPlayer3.DTXVmode.Enabled ) ? false : true; + + #region [ 演奏開始前にmixer登録しておくべきサウンド(開幕してすぐに鳴らすことになるチップ音)を登録しておく ] + foreach ( CDTX.CChip pChip in listChip[0] ) + { +// Debug.WriteLine( "CH=" + pChip.nチャンネル番号.ToString( "x2" ) + ", 整数値=" + pChip.n整数値 + ", time=" + pChip.n発声時刻ms ); + if ( pChip.n発声時刻ms <= 0 ) + { + if ( pChip.nチャンネル番号 == 0xDA ) + { + pChip.bHit = true; +// Trace.TraceInformation( "first [DA] BAR=" + pChip.n発声位置 / 384 + " ch=" + pChip.nチャンネル番号.ToString( "x2" ) + ", wav=" + pChip.n整数値 + ", time=" + pChip.n発声時刻ms ); + if ( listWAV.TryGetValue( pChip.n整数値_内部番号, out CDTX.CWAV wc ) ) + { + for ( int i = 0; i < nPolyphonicSounds; i++ ) + { + if ( wc.rSound[ i ] != null ) + { + TJAPlayer3.Sound管理.AddMixer( wc.rSound[ i ], db再生速度, pChip.b演奏終了後も再生が続くチップである ); + //AddMixer( wc.rSound[ i ] ); // 最初はqueueを介さず直接ミキサー登録する + } + } + } + } + } + else + { + break; + } + } + #endregion + + if(TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan) + { + n良 = new int[TJAPlayer3.stage選曲.r確定された曲.DanSongs.Count]; + n可 = new int[TJAPlayer3.stage選曲.r確定された曲.DanSongs.Count]; + n不可 = new int[TJAPlayer3.stage選曲.r確定された曲.DanSongs.Count]; + n連打 = new int[TJAPlayer3.stage選曲.r確定された曲.DanSongs.Count]; + } + + + this.sw = new Stopwatch(); + // this.sw2 = new Stopwatch(); + // this.gclatencymode = GCSettings.LatencyMode; + // GCSettings.LatencyMode = GCLatencyMode.Batch; // 演奏画面中はGCを抑止する + this.bIsAlreadyCleared = new bool[2]; + this.bIsAlreadyMaxed = new bool[2]; + + this.ListDan_Number = 0; + this.IsDanFailed = false; + } + public override void On非活性化() + { + this.bgmlength = 1; + this.L最後に再生したHHの実WAV番号.Clear(); // #23921 2011.1.4 yyagi + this.L最後に再生したHHの実WAV番号 = null; // + this.ctチップ模様アニメ.Drums = null; + this.ctチップ模様アニメ.Guitar = null; + this.ctチップ模様アニメ.Bass = null; + this.ctチップ模様アニメ.Taiko = null; + + for (int i = 0; i < 2; i++) + { + ctChipAnime[i] = null; + ctChipAnimeLag[i] = null; + } + + listWAV.Clear(); + listWAV = null; + listChip = null; + queueMixerSound.Clear(); + queueMixerSound = null; + cInvisibleChip.Dispose(); + cInvisibleChip = null; +// GCSettings.LatencyMode = this.gclatencymode; + + var meanLag = CLagLogger.LogAndReturnMeanLag(); + + if (TJAPlayer3.IsPerformingCalibration && meanLag != null) + { + var oldInputAdjustTimeMs = TJAPlayer3.ConfigIni.nInputAdjustTimeMs; + var newInputAdjustTimeMs = oldInputAdjustTimeMs - (int) Math.Round(meanLag.Value); + Trace.TraceInformation($"Calibration complete. Updating InputAdjustTime from {oldInputAdjustTimeMs}ms to {newInputAdjustTimeMs}ms."); + TJAPlayer3.ConfigIni.nInputAdjustTimeMs = newInputAdjustTimeMs; + } + this.actDan.IsAnimating = false;// IsAnimating=trueのときにそのまま選曲画面に戻ると、文字列が描画されない問題修正用。 + + base.On非活性化(); + } + public override void OnManagedリソースの作成() + { + if ( !base.b活性化してない ) + { + this.t背景テクスチャの生成(); + base.OnManagedリソースの作成(); + } + } + public override void OnManagedリソースの解放() + { + if ( !base.b活性化してない ) + { + TJAPlayer3.tテクスチャの解放( ref this.tx背景 ); + Trace.TraceInformation("CStage演奏画面共通 リソースの開放"); + base.OnManagedリソースの解放(); + } + } + + // その他 + + #region [ protected ] + //----------------- + public class CHITCOUNTOFRANK + { + // Fields + public int Good; + public int Great; + public int Miss; + public int Perfect; + public int Poor; + + // Properties + public int this[ int index ] + { + get + { + switch ( index ) + { + case 0: + return this.Perfect; + + case 1: + return this.Great; + + case 2: + return this.Good; + + case 3: + return this.Poor; + + case 4: + return this.Miss; + } + throw new IndexOutOfRangeException(); + } + set + { + switch ( index ) + { + case 0: + this.Perfect = value; + return; + + case 1: + this.Great = value; + return; + + case 2: + this.Good = value; + return; + + case 3: + this.Poor = value; + return; + + case 4: + this.Miss = value; + return; + } + throw new IndexOutOfRangeException(); + } + } + } + + [StructLayout( LayoutKind.Sequential )] + protected struct STKARAUCHI + { + public CDTX.CChip HH; + public CDTX.CChip SD; + public CDTX.CChip BD; + public CDTX.CChip HT; + public CDTX.CChip LT; + public CDTX.CChip FT; + public CDTX.CChip CY; + public CDTX.CChip HHO; + public CDTX.CChip RD; + public CDTX.CChip LC; + public CDTX.CChip LP; + public CDTX.CChip LBD; + public CDTX.CChip this[ int index ] + { + get + { + switch ( index ) + { + case 0: + return this.HH; + + case 1: + return this.SD; + + case 2: + return this.BD; + + case 3: + return this.HT; + + case 4: + return this.LT; + + case 5: + return this.FT; + + case 6: + return this.CY; + + case 7: + return this.HHO; + + case 8: + return this.RD; + + case 9: + return this.LC; + + case 10: + return this.LP; + + case 11: + return this.LBD; + } + throw new IndexOutOfRangeException(); + } + set + { + switch ( index ) + { + case 0: + this.HH = value; + return; + + case 1: + this.SD = value; + return; + + case 2: + this.BD = value; + return; + + case 3: + this.HT = value; + return; + + case 4: + this.LT = value; + return; + + case 5: + this.FT = value; + return; + + case 6: + this.CY = value; + return; + + case 7: + this.HHO = value; + return; + + case 8: + this.RD = value; + return; + + case 9: + this.LC = value; + return; + + case 10: + this.LP = value; + return; + } + throw new IndexOutOfRangeException(); + } + } + } + + protected struct stmixer + { + internal bool bIsAdd; + internal CSound csound; + internal bool b演奏終了後も再生が続くチップである; + }; + + /// + /// 分岐用のスコアをまとめるクラス。 + /// .2020.04.21.akasoko26 + /// + public class CBRANCHSCORE + { + public CBRANCHSCORE cBigNotes;//大音符分岐時の情報をまとめるため + public int nRoll; + public int nGreat; + public int nGood; + public int nMiss; + public int nScore; + } + + public CAct演奏AVI actAVI; + public Rainbow Rainbow; + protected CAct演奏チップファイアGB actChipFireGB; + public CAct演奏Combo共通 actCombo; + protected CAct演奏Danger共通 actDANGER; + //protected CActFIFOBlack actFI; + public CActFIFOStart actFI; + protected CActFIFOBlack actFO; + protected CActFIFOResult actFOClear; + public CAct演奏ゲージ共通 actGauge; + + public CAct演奏DrumsDancer actDancer; + protected CAct演奏Drums判定文字列 actJudgeString; + public TaikoLaneFlash actTaikoLaneFlash; + protected CAct演奏レーンフラッシュGB共通 actLaneFlushGB; + public CAct演奏パネル文字列 actPanel; + public CAct演奏演奏情報 actPlayInfo; + public CAct演奏スコア共通 actScore; + public CAct演奏ステージ失敗 actStageFailed; + protected CAct演奏ステータスパネル共通 actStatusPanels; + protected CAct演奏スクロール速度 act譜面スクロール速度; + public C演奏判定ライン座標共通 演奏判定ライン座標; + protected CAct演奏Drums連打 actRoll; + protected CAct演奏Drums風船 actBalloon; + public CAct演奏Drumsキャラクター actChara; + protected CAct演奏Drums連打キャラ actRollChara; + protected CAct演奏Drumsコンボ吹き出し actComboBalloon; + protected CAct演奏Combo音声 actComboVoice; + protected CAct演奏PauseMenu actPauseMenu; + public CAct演奏Drumsチップエフェクト actChipEffects; + public CAct演奏DrumsFooter actFooter; + public CAct演奏DrumsMob actMob; + public Dan_Cert actDan; + public CAct演奏Drums特訓モード actTokkun; + public bool bPAUSE; + public bool[] bIsAlreadyCleared; + public bool[] bIsAlreadyMaxed; + protected bool b演奏にMIDI入力を使った; + protected bool b演奏にキーボードを使った; + protected bool b演奏にジョイパッドを使った; + protected bool b演奏にマウスを使った; + protected STDGBVALUE ctチップ模様アニメ; + public CCounter[] ctChipAnime; + public CCounter[] ctChipAnimeLag; + private int bgmlength = 1; + + protected E演奏画面の戻り値 eフェードアウト完了時の戻り値; + protected readonly int[] nチャンネル0Atoパッド08 = new int[] { 1, 2, 3, 4, 5, 7, 6, 1, 8, 0, 9, 9 }; + protected readonly int[] nチャンネル0Atoレーン07 = new int[] { 1, 2, 3, 4, 5, 7, 6, 1, 9, 0, 8, 8 }; + // RD LC LP RD + protected readonly int[] nパッド0Atoチャンネル0A = new int[] { 0x11, 0x12, 0x13, 0x14, 0x15, 0x17, 0x16, 0x18, 0x19, 0x1a, 0x1b, 0x1c }; + protected readonly int[] nパッド0Atoパッド08 = new int[] { 1, 2, 3, 4, 5, 6, 7, 1, 8, 0, 9, 9 };// パッド画像のヒット処理用 + // HH SD BD HT LT FT CY HHO RD LC LP LBD + protected readonly int[] nパッド0Atoレーン07 = new int[] { 1, 2, 3, 4, 5, 6, 7, 1, 9, 0, 8, 8 }; + public STDGBVALUE nヒット数_Auto含まない; + public STDGBVALUE nヒット数_Auto含む; + public int[] n良; + public int[] n可; + public int[] n不可; + public int[] n連打; + public int n現在のトップChip = -1; + protected int[] n最後に再生したBGMの実WAV番号 = new int[ 50 ]; + protected int n最後に再生したHHのチャンネル番号; + protected List L最後に再生したHHの実WAV番号; // #23921 2011.1.4 yyagi: change "int" to "List", for recording multiple wav No. + protected STLANEVALUE n最後に再生した実WAV番号; // #26388 2011.11.8 yyagi: change "n最後に再生した実WAV番号.GUITAR" and "n最後に再生した実WAV番号.BASS" + // into "n最後に再生した実WAV番号"; +// protected int n最後に再生した実WAV番号.GUITAR; +// protected int n最後に再生した実WAV番号.BASS; + + protected volatile Queue queueMixerSound; // #24820 2013.1.21 yyagi まずは単純にAdd/Removeを1個のキューでまとめて管理するやり方で設計する + protected DateTime dtLastQueueOperation; // + protected bool bIsDirectSound; // + protected double db再生速度; + protected bool bValidScore; +// protected bool bDTXVmode; + protected STDGBVALUE bReverse; + + protected STDGBVALUE> queWailing; + protected STDGBVALUE r現在の歓声Chip; + protected CTexture txチップ; + protected CTexture txヒットバー; + + protected CTexture tx背景; + + protected STAUTOPLAY bIsAutoPlay; // #24239 2011.1.23 yyagi +// protected int nRisky_InitialVar, nRiskyTime; // #23559 2011.7.28 yyagi → CAct演奏ゲージ共通クラスに隠蔽 + protected int nPolyphonicSounds; + protected List[] listChip = new List[4]; + protected Dictionary listWAV; + protected CInvisibleChip cInvisibleChip; + protected bool bUseOSTimer; + protected E判定表示優先度 e判定表示優先度; + + public CBRANCHSCORE[] CBranchScore = new CBRANCHSCORE[6]; + public bool[] bIsGOGOTIME = new bool[4]; + public bool[] bUseBranch = new bool[ 4 ]; + public CDTX.ECourse[] n現在のコース = new CDTX.ECourse[4]; //0:普通譜面 1:玄人譜面 2:達人譜面 + public CDTX.ECourse[] n次回のコース = new CDTX.ECourse[4]; + public CDTX.ECourse[] nレーン用表示コース = new CDTX.ECourse[4]; + protected bool[] b譜面分岐中 = new bool[] { false, false, false, false }; + protected int[] n分岐した回数 = new int[ 4 ]; + protected int[] nJPOSSCROLL = new int[ 4 ]; + + public bool[] b強制的に分岐させた = new bool[] { false, false, false, false }; + public bool[] bLEVELHOLD = new bool[] { false, false, false, false }; + protected int nListCount; + + private readonly int[] ShownLyric = new int[] { 0, 0 }; + public bool[] b連打中 = new bool[]{ false, false, false, false }; //奥の手 + private int[] n合計連打数 = new int[ 4 ]; + protected int[] n風船残り = new int[ 4 ]; + protected int[] n現在の連打数 = new int[ 4 ]; + protected E連打State eRollState; + + protected int nタイマ番号; + protected int n現在の音符の顔番号; + + protected int nWaitButton; + + + public CDTX.CChip[] chip現在処理中の連打チップ = new CDTX.CChip[ 4 ]; + + protected const int NOTE_GAP = 25; + public int nLoopCount_Clear; + protected int[] nScore = new int[11]; + protected int[] nHand = new int[4]; + protected CSound soundRed; + protected CSound soundBlue; + protected CSound soundAdlib; + protected CSound soundRed2; + protected CSound soundBlue2; + protected CSound soundAdlib2; + public bool bDoublePlay; // 2016.08.21 kairera0467 表示だけ。 + protected Stopwatch sw; // 2011.6.13 最適化検討用のストップウォッチ + public int ListDan_Number; + private bool IsDanFailed; + private bool[] b強制分岐譜面 = new bool[4]; + private CDTX.E分岐種類 eBranch種類; + public double nBranch条件数値A; + public double nBranch条件数値B; + private readonly int[] NowProcessingChip = new int[] { 0, 0 }; + + public void AddMixer( CSound cs, bool _b演奏終了後も再生が続くチップである ) + { + stmixer stm = new stmixer() + { + bIsAdd = true, + csound = cs, + b演奏終了後も再生が続くチップである = _b演奏終了後も再生が続くチップである + }; + queueMixerSound.Enqueue( stm ); +// Debug.WriteLine( "★Queue: add " + Path.GetFileName( stm.csound.strファイル名 )); + } + public void RemoveMixer( CSound cs ) + { + stmixer stm = new stmixer() + { + bIsAdd = false, + csound = cs, + b演奏終了後も再生が続くチップである = false + }; + queueMixerSound.Enqueue( stm ); +// Debug.WriteLine( "★Queue: remove " + Path.GetFileName( stm.csound.strファイル名 )); + } + public void ManageMixerQueue() + { + // もしサウンドの登録/削除が必要なら、実行する + if ( queueMixerSound.Count > 0 ) + { + //Debug.WriteLine( "☆queueLength=" + queueMixerSound.Count ); + DateTime dtnow = DateTime.Now; + TimeSpan ts = dtnow - dtLastQueueOperation; + if ( ts.Milliseconds > 7 ) + { + for ( int i = 0; i < 2 && queueMixerSound.Count > 0; i++ ) + { + dtLastQueueOperation = dtnow; + stmixer stm = queueMixerSound.Dequeue(); + if ( stm.bIsAdd ) + { + TJAPlayer3.Sound管理.AddMixer( stm.csound, db再生速度, stm.b演奏終了後も再生が続くチップである ); + } + else + { + TJAPlayer3.Sound管理.RemoveMixer( stm.csound ); + } + } + } + } + } + + internal E判定 e指定時刻からChipのJUDGEを返す(long nTime, CDTX.CChip pChip) + { + var e判定 = e指定時刻からChipのJUDGEを返すImpl(nTime, pChip); + + // When performing calibration, reduce audio distraction from user input. + // For users who play primarily by watching notes cross the judgment position, + // you might think that we want them to see visual judgment feedback during + // calibration, but we do not. Humans are remarkably good at adjusting + // the timing of their own physical movement, even without realizing it. + // We are calibrating their input timing for the purposes of judgment. + // We do not want them subconsciously playing early so as to line up + // their hits with the perfect, good, etc. judgment results based on their + // current (and soon to be replaced) input adjust time values. + // Instead, we want them focused on the sounds of their keyboard, tatacon, + // other controller, etc. and the visuals of notes crossing the judgment position. + if (TJAPlayer3.IsPerformingCalibration) + { + return e判定 < E判定.Good ? E判定.Good : e判定; + } + else + { + return e判定; + } + } + + private E判定 e指定時刻からChipのJUDGEを返すImpl( long nTime, CDTX.CChip pChip ) + { + if ( pChip != null ) + { + pChip.nLag = (int) ( nTime - pChip.n発声時刻ms ); // #23580 2011.1.3 yyagi: add "nInputAdjustTime" to add input timing adjust feature + int nDeltaTime = Math.Abs( pChip.nLag ); + //Debug.WriteLine("nAbsTime=" + (nTime - pChip.n発声時刻ms) + ", nDeltaTime=" + (nTime + nInputAdjustTime - pChip.n発声時刻ms)); + if( pChip.nチャンネル番号 == 0x15 || pChip.nチャンネル番号 == 0x16 ) + { + if ((CSound管理.rc演奏用タイマ.n現在時刻ms * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)) > pChip.n発声時刻ms && (CSound管理.rc演奏用タイマ.n現在時刻ms * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)) < pChip.nノーツ終了時刻ms) + { + return E判定.Perfect; + } + } + else if( pChip.nチャンネル番号 == 0x17 ) + { + if ((CSound管理.rc演奏用タイマ.n現在時刻ms * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)) >= pChip.n発声時刻ms - 17 && (CSound管理.rc演奏用タイマ.n現在時刻ms * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)) < pChip.nノーツ終了時刻ms) + { + return E判定.Perfect; + } + } + if (nDeltaTime <= TJAPlayer3.nPerfect範囲ms * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)) + { + return E判定.Perfect; + } + if (nDeltaTime <= TJAPlayer3.nGood範囲ms * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)) + { + if ( TJAPlayer3.ConfigIni.bJust ) + return E判定.Poor; + return E判定.Good; + } + if (nDeltaTime <= TJAPlayer3.nPoor範囲ms * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)) + { + return E判定.Poor; + } + } + return E判定.Miss; + } + + protected CDTX.CChip r空うちChip( E楽器パート part, Eパッド pad ) + { + return null; + } + protected CDTX.CChip r指定時刻に一番近いChip_ヒット未済問わず不可視考慮( long nTime, int nChannel, int nInputAdjustTime, int nPlayer ) + { + //sw2.Start(); +//Trace.TraceInformation( "NTime={0}, nChannel={1:x2}", nTime, nChannel ); + nTime += nInputAdjustTime; // #24239 2011.1.23 yyagi InputAdjust + + int nIndex_InitialPositionSearchingToPast; + if ( this.n現在のトップChip == -1 ) // 演奏データとして1個もチップがない場合は + { + //sw2.Stop(); + return null; + } + int count = listChip[ nPlayer ].Count; + int nIndex_NearestChip_Future = nIndex_InitialPositionSearchingToPast = this.n現在のトップChip; + if ( this.n現在のトップChip >= count ) // その時点で演奏すべきチップが既に全部無くなっていたら + { + nIndex_NearestChip_Future = nIndex_InitialPositionSearchingToPast = count - 1; + } + //int nIndex_NearestChip_Future; // = nIndex_InitialPositionSearchingToFuture; + //while ( nIndex_NearestChip_Future < count ) // 未来方向への検索 + for ( ; nIndex_NearestChip_Future < count; nIndex_NearestChip_Future++) + { + CDTX.CChip chip = listChip[ nPlayer ][ nIndex_NearestChip_Future ]; + + if ( ( ( 0x11 <= nChannel ) && ( nChannel <= 0x14 ) ) || nChannel == 0x1F ) + { + if ( ( ( chip.nチャンネル番号 == nChannel ) || ( chip.nチャンネル番号 == ( nChannel ) ) ) ) + { + if ( chip.n発声時刻ms > nTime ) + { + break; + } + if( chip.nコース != this.n次回のコース[ nPlayer ] ) + { + break; + } + nIndex_InitialPositionSearchingToPast = nIndex_NearestChip_Future; + } + continue; // ほんの僅かながら高速化 + } + + // nIndex_NearestChip_Future++; + } + int nIndex_NearestChip_Past = nIndex_InitialPositionSearchingToPast; + //while ( nIndex_NearestChip_Past >= 0 ) // 過去方向への検索 + for ( ; nIndex_NearestChip_Past >= 0; nIndex_NearestChip_Past-- ) + { + CDTX.CChip chip = listChip[ nPlayer ][ nIndex_NearestChip_Past ]; + + if ( ( 0x11 <= nChannel ) && ( nChannel <= 0x14 ) ) + { + if ( ( ( chip.nチャンネル番号 == nChannel ) ) ) + { + break; + } + } + // nIndex_NearestChip_Past--; + } + + if ( nIndex_NearestChip_Future >= count ) + { + if ( nIndex_NearestChip_Past < 0 ) // 検索対象が過去未来どちらにも見つからなかった場合 + { + return null; + } + else // 検索対象が未来方向には見つからなかった(しかし過去方向には見つかった)場合 + { + //sw2.Stop(); + return listChip[ nPlayer ][ nIndex_NearestChip_Past ]; + } + } + else if ( nIndex_NearestChip_Past < 0 ) // 検索対象が過去方向には見つからなかった(しかし未来方向には見つかった)場合 + { + //sw2.Stop(); + return listChip[ nPlayer ][ nIndex_NearestChip_Future ]; + } + // 検索対象が過去未来の双方に見つかったなら、より近い方を採用する + CDTX.CChip nearestChip_Future = listChip[ nPlayer ][ nIndex_NearestChip_Future ]; + CDTX.CChip nearestChip_Past = listChip[ nPlayer ][ nIndex_NearestChip_Past ]; + int nDiffTime_Future = Math.Abs( (int) ( nTime - nearestChip_Future.n発声時刻ms ) ); + int nDiffTime_Past = Math.Abs( (int) ( nTime - nearestChip_Past.n発声時刻ms ) ); + if ( nDiffTime_Future >= nDiffTime_Past ) + { + //sw2.Stop(); + return nearestChip_Past; + } + //sw2.Stop(); + return nearestChip_Future; + } + + protected CDTX.CChip r指定時刻に一番近い連打Chip_ヒット未済問わず不可視考慮( long nTime, int nChannel, int nInputAdjustTime, int nPlayer ) + { + //sw2.Start(); +//Trace.TraceInformation( "NTime={0}, nChannel={1:x2}", nTime, nChannel ); + nTime += nInputAdjustTime; // #24239 2011.1.23 yyagi InputAdjust + + int nIndex_InitialPositionSearchingToPast; + if ( this.n現在のトップChip == -1 ) // 演奏データとして1個もチップがない場合は + { + //sw2.Stop(); + return null; + } + + List playerListChip = listChip[ nPlayer ]; + int count = playerListChip.Count; + int nIndex_NearestChip_Future = nIndex_InitialPositionSearchingToPast = this.n現在のトップChip; + if ( this.n現在のトップChip >= count ) // その時点で演奏すべきチップが既に全部無くなっていたら + { + nIndex_NearestChip_Future = nIndex_InitialPositionSearchingToPast = count - 1; + } + //int nIndex_NearestChip_Future; // = nIndex_InitialPositionSearchingToFuture; + //while ( nIndex_NearestChip_Future < count ) // 未来方向への検索 + for ( ; nIndex_NearestChip_Future < count; nIndex_NearestChip_Future++) + { + if ( ( ( 0x11 <= nChannel ) && ( nChannel <= 0x17 ) ) ) + { + CDTX.CChip chip = playerListChip[ nIndex_NearestChip_Future ]; + + if ( chip.nチャンネル番号 == nChannel ) + { + if ( chip.n発声時刻ms > nTime ) + { + break; + } + if( chip.nコース != this.n次回のコース[ nPlayer ] ) + { + break; + } + nIndex_InitialPositionSearchingToPast = nIndex_NearestChip_Future; + } + continue; // ほんの僅かながら高速化 + } + + // nIndex_NearestChip_Future++; + } + int nIndex_NearestChip_Past = nIndex_InitialPositionSearchingToPast; + //while ( nIndex_NearestChip_Past >= 0 ) // 過去方向への検索 + for ( ; nIndex_NearestChip_Past >= 0; nIndex_NearestChip_Past-- ) + { + if ( ( 0x15 <= nChannel ) && ( nChannel <= 0x17 ) ) + { + CDTX.CChip chip = playerListChip[ nIndex_NearestChip_Past ]; + + if ( ( ( chip.nチャンネル番号 == nChannel ) ) ) + { + break; + } + } + // nIndex_NearestChip_Past--; + } + + if ( nIndex_NearestChip_Future >= count ) + { + if ( nIndex_NearestChip_Past < 0 ) // 検索対象が過去未来どちらにも見つからなかった場合 + { + return null; + } + else // 検索対象が未来方向には見つからなかった(しかし過去方向には見つかった)場合 + { + //sw2.Stop(); + return playerListChip[ nIndex_NearestChip_Past ]; + } + } + else if ( nIndex_NearestChip_Past < 0 ) // 検索対象が過去方向には見つからなかった(しかし未来方向には見つかった)場合 + { + //sw2.Stop(); + return playerListChip[ nIndex_NearestChip_Future ]; + } + // 検索対象が過去未来の双方に見つかったなら、より近い方を採用する + CDTX.CChip nearestChip_Future = playerListChip[ nIndex_NearestChip_Future ]; + CDTX.CChip nearestChip_Past = playerListChip[ nIndex_NearestChip_Past ]; + int nDiffTime_Future = Math.Abs( (int) ( nTime - nearestChip_Future.n発声時刻ms ) ); + int nDiffTime_Past = Math.Abs( (int) ( nTime - nearestChip_Past.n発声時刻ms ) ); + if ( nDiffTime_Future >= nDiffTime_Past ) + { + //sw2.Stop(); + return nearestChip_Past; + } + //sw2.Stop(); + return nearestChip_Future; + } + protected void tサウンド再生( CDTX.CChip pChip, int nPlayer ) + { + int index = pChip.nチャンネル番号; + if (index == 0x11 || index == 0x13 || index == 0x1A) + { + if (pChip.nPlayerSide == 0) + { + this.soundRed?.t再生を開始する(); + } + else + { + this.soundRed2?.t再生を開始する(); + } + } + else if (index == 0x12 || index == 0x14 || index == 0x1B) + { + if (pChip.nPlayerSide == 0) + { + this.soundBlue?.t再生を開始する(); + } + else + { + this.soundBlue2?.t再生を開始する(); + } + } + else if (index == 0x1F) + { + if (pChip.nPlayerSide == 0) + { + this.soundAdlib?.t再生を開始する(); + } + else + { + this.soundAdlib2?.t再生を開始する(); + } + } + + if (this.nHand[nPlayer] == 0) + this.nHand[ nPlayer ]++; + else + this.nHand[ nPlayer ] = 0; + } + + protected void tステータスパネルの選択() + { + if ( TJAPlayer3.bコンパクトモード ) + { + this.actStatusPanels.tラベル名からステータスパネルを決定する( null ); + } + else if ( TJAPlayer3.stage選曲.r確定された曲 != null ) + { + this.actStatusPanels.tラベル名からステータスパネルを決定する( TJAPlayer3.stage選曲.r確定された曲.ar難易度ラベル[ TJAPlayer3.stage選曲.n確定された曲の難易度[0]] ); + } + } + + protected bool tRollProcess( CDTX.CChip pChip, double dbProcess_time, int num, int sort, int Input, int nPlayer ) + { + if (dbProcess_time >= pChip.n発声時刻ms && dbProcess_time < pChip.nノーツ終了時刻ms) + { + if( pChip.nRollCount == 0 ) //連打カウントが0の時 + { + this.actRoll.b表示[ nPlayer ] = true; + this.n現在の連打数[ nPlayer ] = 0; + this.actRoll.t枠表示時間延長(nPlayer, true); + } + else + { + this.actRoll.t枠表示時間延長(nPlayer, false); + } + this.b連打中[ nPlayer ] = true; + if(this.actRoll.ct連打アニメ[nPlayer].b終了値に達してない) + { + this.actRoll.ct連打アニメ[nPlayer] = new CCounter(0, 9, 14, TJAPlayer3.Timer); + this.actRoll.ct連打アニメ[nPlayer].n現在の値 = 1; + } + else + { + this.actRoll.ct連打アニメ[nPlayer] = new CCounter(0, 9, 14, TJAPlayer3.Timer); + } + + + pChip.RollEffectLevel += 10; + if(pChip.RollEffectLevel >= 100) + { + pChip.RollEffectLevel = 100; + pChip.RollInputTime = new CCounter(0, 1500, 1, TJAPlayer3.Timer); + pChip.RollDelay?.t停止(); + } else + { + pChip.RollInputTime = new CCounter(0, 150, 1, TJAPlayer3.Timer); + pChip.RollDelay?.t停止(); + } + + if ( pChip.nチャンネル番号 == 0x15 ) + this.eRollState = E連打State.roll; + else + this.eRollState = E連打State.rollB; + + pChip.nRollCount++; + + if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan) + this.n連打[actDan.NowShowingNumber]++; + + this.n現在の連打数[ nPlayer ]++; + this.CBranchScore[ nPlayer ].nRoll++; + this.n合計連打数[ nPlayer ]++; + if(TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Dan) this.actRollChara.Start(nPlayer); + + //2017.01.28 DD CDTXから直接呼び出す + if (pChip.bGOGOTIME && !TJAPlayer3.ConfigIni.ShinuchiMode) //2018.03.11 kairera0467 チップに埋め込んだフラグから読み取る + { + // 旧配点・旧筐体配点 + if( TJAPlayer3.DTX.nScoreModeTmp == 0 || TJAPlayer3.DTX.nScoreModeTmp == 1 ) + { + if( pChip.nチャンネル番号 == 0x15 ) + this.actScore.Add( E楽器パート.TAIKO, this.bIsAutoPlay, (long)( 300 * 1.2f ), nPlayer ); + else + this.actScore.Add( E楽器パート.TAIKO, this.bIsAutoPlay, (long)( 360 * 1.2f ), nPlayer ); + } + // 新配点 + else + { + if( pChip.nチャンネル番号 == 0x15 ) + this.actScore.Add( E楽器パート.TAIKO, this.bIsAutoPlay, (long)( 100 * 1.2f ), nPlayer ); + else + this.actScore.Add( E楽器パート.TAIKO, this.bIsAutoPlay, (long)( 200 * 1.2f ), nPlayer ); + } + } + else + { + // 旧配点・旧筐体配点 + if( TJAPlayer3.DTX.nScoreModeTmp == 0 || TJAPlayer3.DTX.nScoreModeTmp == 1 ) + { + if( pChip.nチャンネル番号 == 0x15 ) + this.actScore.Add( E楽器パート.TAIKO, this.bIsAutoPlay, 100L, nPlayer ); + else + this.actScore.Add( E楽器パート.TAIKO, this.bIsAutoPlay, 100L, nPlayer ); + } + // 新配点 + else + { + if( pChip.nチャンネル番号 == 0x15 ) + this.actScore.Add( E楽器パート.TAIKO, this.bIsAutoPlay, 100L, nPlayer ); + else + this.actScore.Add( E楽器パート.TAIKO, this.bIsAutoPlay, 100L, nPlayer ); + } + } + + + //赤か青かの分岐 + if( sort == 0 ) + { + if (pChip.nPlayerSide == 0) + this.soundRed?.t再生を開始する(); + else + this.soundRed2?.t再生を開始する(); + if (pChip.nチャンネル番号 == 0x15) + { + //CDTXMania.Skin.soundRed.t再生する(); + //CDTXMania.stage演奏ドラム画面.actChipFireTaiko.Start( 1, nPlayer ); + TJAPlayer3.stage演奏ドラム画面.FlyingNotes.Start(1, nPlayer, true); + } + else + { + //CDTXMania.Skin.soundRed.t再生する(); + //CDTXMania.stage演奏ドラム画面.actChipFireTaiko.Start( 3, nPlayer ); + TJAPlayer3.stage演奏ドラム画面.FlyingNotes.Start(3, nPlayer, true); + } + } + else + { + if (pChip.nPlayerSide == 0) + this.soundBlue?.t再生を開始する(); + else + this.soundBlue2?.t再生を開始する(); + if (pChip.nチャンネル番号 == 0x15) + { + //CDTXMania.Skin.soundBlue.t再生する(); + //CDTXMania.stage演奏ドラム画面.actChipFireTaiko.Start( 2, nPlayer ); + TJAPlayer3.stage演奏ドラム画面.FlyingNotes.Start(2, nPlayer, true); + } + else + { + //CDTXMania.Skin.soundBlue.t再生する(); + //CDTXMania.stage演奏ドラム画面.actChipFireTaiko.Start( 4, nPlayer ); + TJAPlayer3.stage演奏ドラム画面.FlyingNotes.Start(4, nPlayer, true); + } + } + + //TJAPlayer3.stage演奏ドラム画面.actTaikoLaneFlash.PlayerLane[nPlayer].Start(PlayerLane.FlashType.Hit); + } + else + { + this.b連打中[ nPlayer ] = false; + return true; + } + + return false; + } + + protected bool tBalloonProcess( CDTX.CChip pChip, double dbProcess_time, int player ) + { + //if( dbProcess_time >= pChip.n発声時刻ms && dbProcess_time < pChip.nノーツ終了時刻ms ) + if ((int)(long)(CSound管理.rc演奏用タイマ.n現在時刻ms * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)) >= pChip.n発声時刻ms && (int)(long)(CSound管理.rc演奏用タイマ.n現在時刻ms * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)) <= pChip.nノーツ終了時刻ms) + { + if ( pChip.nRollCount == 0 && this.bPAUSE == false) + { + this.n風船残り[ player ] = pChip.nBalloon; + } + + this.b連打中[ player ] = true; + if(actChara.CharaAction_Balloon_Breaking != null) + { + actChara.アクションタイマーリセット(player); + actChara.bマイどんアクション中[player] = true; + actChara.CharaAction_Balloon_Breaking[player] = new CCounter(0, TJAPlayer3.Skin.Game_Chara_Ptn_Balloon_Breaking - 1, TJAPlayer3.Skin.Game_Chara_Balloon_Timer, TJAPlayer3.Timer); + + } + + if (this.actBalloon.ct風船アニメ[player].b終了値に達してない) + { + this.actBalloon.ct風船アニメ[player] = new CCounter(0, 9, 14, TJAPlayer3.Timer); + this.actBalloon.ct風船アニメ[player].n現在の値 = 1; + } + else + { + this.actBalloon.ct風船アニメ[player] = new CCounter(0, 9, 14, TJAPlayer3.Timer); + } + this.eRollState = E連打State.balloon; + pChip.nRollCount++; + this.n風船残り[ player ]--; + + if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan) + this.n連打[actDan.NowShowingNumber]++; + + this.n合計連打数[player]++; // 成績発表の連打数に風船を含めるように (AioiLight) + + //分岐のための処理。実装してない。 + + //赤か青かの分岐 + if ( pChip.nBalloon == pChip.nRollCount ) + { + //パァーン + TJAPlayer3.Skin.soundBalloon.t再生する(); + //CDTXMania.stage演奏ドラム画面.actChipFireTaiko.Start( 3, player ); //ここで飛ばす。飛ばされるのは大音符のみ。 + TJAPlayer3.stage演奏ドラム画面.FlyingNotes.Start(3, player); + TJAPlayer3.stage演奏ドラム画面.Rainbow.Start( player ); + //CDTXMania.stage演奏ドラム画面.actChipFireD.Start( 0, player ); + if(pChip.bGOGOTIME && !TJAPlayer3.ConfigIni.ShinuchiMode) + { + this.actScore.Add(E楽器パート.TAIKO, this.bIsAutoPlay, 6000L, player); + } + pChip.bHit = true; + pChip.IsHitted = true; + chip現在処理中の連打チップ[ player ].bHit = true; + //this.b連打中 = false; + //this.actChara.b風船連打中 = false; + pChip.b可視 = false; + this.actChara.bマイどんアクション中[player] = false; // 風船終了後、再生されていたアクションがされないようにするために追加。(AioiLight) + if (actChara.CharaAction_Balloon_Broke != null) + { + actChara.アクションタイマーリセット(player); + actChara.bマイどんアクション中[player] = true; + actChara.CharaAction_Balloon_Broke[player] = new CCounter(0, TJAPlayer3.Skin.Game_Chara_Ptn_Balloon_Broke - 1, TJAPlayer3.Skin.Game_Chara_Balloon_Timer, TJAPlayer3.Timer); + if(actChara.CharaAction_Balloon_Delay != null )actChara.CharaAction_Balloon_Delay[player] = new CCounter(0, TJAPlayer3.Skin.Game_Chara_Balloon_Delay - 1, 1, TJAPlayer3.Timer); + } + this.eRollState = E連打State.none; + } + else + { + if(pChip.bGOGOTIME && !TJAPlayer3.ConfigIni.ShinuchiMode) + { + this.actScore.Add(E楽器パート.TAIKO, this.bIsAutoPlay, 360L, player); + } else + { + this.actScore.Add(E楽器パート.TAIKO, this.bIsAutoPlay, 100L, player); + } + //CDTXMania.Skin.soundRed.t再生する(); + if (pChip.nPlayerSide == 0) + this.soundRed?.t再生を開始する(); + else + this.soundRed2?.t再生を開始する(); + } + //TJAPlayer3.stage演奏ドラム画面.actTaikoLaneFlash.PlayerLane[player].Start(PlayerLane.FlashType.Hit); + } + else + { + if ( chip現在処理中の連打チップ[ player ] != null ) + chip現在処理中の連打チップ[ player ].bHit = true; + this.b連打中[ player ] = false; + this.actChara.b風船連打中[player] = false; + return false; + } + + + + return true; + } + + protected E判定 tチップのヒット処理( long nHitTime, CDTX.CChip pChip ) + { + return tチップのヒット処理( nHitTime, pChip, true ); + } + protected abstract E判定 tチップのヒット処理( long nHitTime, CDTX.CChip pChip, bool bCorrectLane ); + protected E判定 tチップのヒット処理( long nHitTime, CDTX.CChip pChip, E楽器パート screenmode ) // E楽器パート screenmode + { + return tチップのヒット処理( nHitTime, pChip, screenmode, true, 1, 0 ); + } + protected E判定 tチップのヒット処理( long nHitTime, CDTX.CChip pChip, E楽器パート screenmode, bool bCorrectLane, int nNowInput ) + { + return tチップのヒット処理( nHitTime, pChip, screenmode, bCorrectLane, nNowInput, 0 ); + } + protected unsafe E判定 tチップのヒット処理(long nHitTime, CDTX.CChip pChip, E楽器パート screenmode, bool bCorrectLane, int nNowInput, int nPlayer) + { + //unsafeコードにつき、デバッグ中の変更厳禁! + + bool bAutoPlay = false; + switch (nPlayer) + { + case 0: + bAutoPlay = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay; + break; + case 1: + bAutoPlay = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay2P; + break; + } + + if (!pChip.b可視) + return E判定.Auto; + + if (pChip.nチャンネル番号 != 0x15 && pChip.nチャンネル番号 != 0x16 && pChip.nチャンネル番号 != 0x17 && pChip.nチャンネル番号 != 0x18) + { + if (!pChip.IsMissed)//通り越したチップでなければ判定! + { + pChip.bHit = true; + pChip.IsHitted = true; + } + } + + E判定 eJudgeResult = E判定.Auto; + switch (pChip.e楽器パート) + { + case E楽器パート.DRUMS: + case E楽器パート.GUITAR: + case E楽器パート.BASS: + break; + case E楽器パート.TAIKO: + { + //連打が短すぎると発声されない + eJudgeResult = (bCorrectLane)? this.e指定時刻からChipのJUDGEを返す( nHitTime, pChip ) : E判定.Miss; + + if (!bAutoPlay && eJudgeResult != E判定.Miss) + { + CLagLogger.Add(nPlayer, pChip); + } + + if (pChip.nチャンネル番号 == 0x15 || pChip.nチャンネル番号 == 0x16) + { + #region[ 連打 ] + //--------------------------- + this.b連打中[nPlayer] = true; + if (bAutoPlay) + { + if (TJAPlayer3.ConfigIni.bAuto先生の連打 && this.bPAUSE == false) + { + if (((CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)) * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)) > (pChip.n発声時刻ms + (1000.0 / 15.0) * pChip.nRollCount)) + { + if (this.nHand[nPlayer] == 0) + this.nHand[nPlayer]++; + else + this.nHand[nPlayer] = 0; + + if (TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM < 0 && (TJAPlayer3.ConfigIni.eScrollMode == EScrollMode.HBSCROLL)) + pChip.fBMSCROLLTime -= TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM * -0.05; + + TJAPlayer3.stage演奏ドラム画面.actTaikoLaneFlash.PlayerLane[nPlayer].Start(PlayerLane.FlashType.Red); + //CDTXMania.stage演奏ドラム画面.actChipFireTaiko.Start( pChip.nチャンネル番号 == 0x15 ? 1 : 3, nPlayer ); + TJAPlayer3.stage演奏ドラム画面.FlyingNotes.Start(pChip.nチャンネル番号 == 0x15 ? 1 : 3, nPlayer, true); + TJAPlayer3.stage演奏ドラム画面.actMtaiko.tMtaikoEvent(pChip.nチャンネル番号, this.nHand[nPlayer], nPlayer); + + + this.tRollProcess(pChip, (CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)), 1, 0, 0, nPlayer); + } + } + } + else + { + this.eRollState = E連打State.roll; + this.tRollProcess(pChip, (CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)), 1, nNowInput, 0, nPlayer); + } + + //if ((int)CSound管理.rc演奏用タイマ.n現在時刻ms >= pChip.nノーツ終了時刻ms) + //{ + // if (actChara.CharaAction_Balloon_Breaking.b進行中) + // { + // this.actChara.bマイどんアクション中 = false; // 風船終了後、再生されていたアクションがされないようにするために追加。(AioiLight) + // if (actChara.CharaAction_Balloon_Miss != null) + // { + // actChara.アクションタイマーリセット(); + // actChara.bマイどんアクション中 = true; + // actChara.CharaAction_Balloon_Miss = new CCounter(0, CDTXMania.Skin.Game_Chara_Ptn_Balloon_Miss - 1, CDTXMania.Skin.Game_Chara_Balloon_Timer, CDTXMania.Timer); + // System.Windows.Forms.MessageBox.Show(""); + // } + // } + + //} + + break; + //--------------------------- + #endregion + } + else if (pChip.nチャンネル番号 == 0x17) + { + #region[ 風船 ] + this.b連打中[nPlayer] = true; + this.actChara.b風船連打中[nPlayer] = true; + + if (bAutoPlay) + { + if (pChip.nBalloon != 0 && this.bPAUSE == false) + { + if ((CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)) > (pChip.n発声時刻ms + ((pChip.nノーツ終了時刻ms - pChip.n発声時刻ms) / pChip.nBalloon) * pChip.nRollCount)) + { + if (this.nHand[nPlayer] == 0) + this.nHand[nPlayer]++; + else + this.nHand[nPlayer] = 0; + + TJAPlayer3.stage演奏ドラム画面.actTaikoLaneFlash.PlayerLane[nPlayer].Start(PlayerLane.FlashType.Red); + TJAPlayer3.stage演奏ドラム画面.actMtaiko.tMtaikoEvent(pChip.nチャンネル番号, this.nHand[nPlayer], nPlayer); + + this.tBalloonProcess(pChip, (CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)), nPlayer); + } + } + } + else + { + this.tBalloonProcess(pChip, (CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)), nPlayer); + } + break; + #endregion + } + else if (pChip.nチャンネル番号 == 0x18) + { + if (pChip.nノーツ終了時刻ms <= (CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0))) + { + this.b連打中[nPlayer] = false; + //this.actChara.b風船連打中 = false; + pChip.bHit = true; + pChip.IsHitted = true; + break; + } + } + else if (pChip.nチャンネル番号 == 0x1F) + { + if (eJudgeResult != E判定.Auto && eJudgeResult != E判定.Miss) + { + this.actJudgeString.Start(nPlayer, E判定.Bad); + TJAPlayer3.stage演奏ドラム画面.actLaneTaiko.Start(0x11, eJudgeResult, true, nPlayer); + TJAPlayer3.stage演奏ドラム画面.actChipFireD.Start(0x11, eJudgeResult, nPlayer); + } + break; + } + else + { + if (eJudgeResult != E判定.Miss) + { + pChip.bShow = false; + } + } + + if (eJudgeResult != E判定.Auto && eJudgeResult != E判定.Miss) + { + this.actJudgeString.Start(nPlayer, bAutoPlay ? E判定.Auto : eJudgeResult); + TJAPlayer3.stage演奏ドラム画面.actLaneTaiko.Start(pChip.nチャンネル番号, eJudgeResult, true, nPlayer); + TJAPlayer3.stage演奏ドラム画面.actChipFireD.Start(pChip.nチャンネル番号, eJudgeResult, nPlayer); + + if (TJAPlayer3.ConfigIni.b太鼓パートAutoPlay ? true : (nNowInput == 2 || nNowInput == 3)) + { + //if( pChip.nチャンネル番号 == 0x13 || pChip.nチャンネル番号 == 0x1A ) + // //CDTXMania.stage演奏ドラム画面.actChipFireD.Start( 0, nPlayer ); + //else if( pChip.nチャンネル番号 == 0x14 || pChip.nチャンネル番号 == 0x1B ) + // //CDTXMania.stage演奏ドラム画面.actChipFireD.Start( 1, nPlayer ); + } + } + else if (eJudgeResult != E判定.Poor && eJudgeResult != E判定.Bad) + { + //this.actJudgeString.Start( 0,bAutoPlay ? E判定.Auto : eJudgeResult, pChip.nLag, pChip, nPlayer ); + } + } + break; + } + if ((pChip.e楽器パート != E楽器パート.UNKNOWN)) + { + if (pChip.nチャンネル番号 != 0x15 && pChip.nチャンネル番号 != 0x16 && pChip.nチャンネル番号 != 0x17 && pChip.nチャンネル番号 != 0x18 && pChip.nチャンネル番号 != 0x1F) + { + actGauge.Damage(screenmode, pChip.e楽器パート, eJudgeResult, nPlayer); + } + } + + if (eJudgeResult != E判定.Poor && eJudgeResult != E判定.Miss) + { + double dbUnit = (((60.0 / (TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM)))); + + if ((int)actGauge.db現在のゲージ値[nPlayer] >= 100 && this.bIsAlreadyMaxed[nPlayer] == false) + { + if(TJAPlayer3.Skin.Game_Chara_Ptn_SoulIn != 0 && actChara.CharaAction_Balloon_Delay[nPlayer].b終了値に達した) + { + this.actChara.アクションタイマーリセット(nPlayer); + this.actChara.ctキャラクターアクション_魂MAX[nPlayer] = new CCounter(0, TJAPlayer3.Skin.Game_Chara_Ptn_SoulIn - 1, (dbUnit / TJAPlayer3.Skin.Game_Chara_Ptn_SoulIn) * 2, CSound管理.rc演奏用タイマ); + this.actChara.ctキャラクターアクション_魂MAX[nPlayer].t進行db(); + this.actChara.ctキャラクターアクション_魂MAX[nPlayer].n現在の値 = 0; + this.actChara.bマイどんアクション中[nPlayer] = true; + } + this.bIsAlreadyMaxed[nPlayer] = true; + } + if ((int)actGauge.db現在のゲージ値[nPlayer] >= 80 && this.bIsAlreadyCleared[nPlayer] == false) + { + if(TJAPlayer3.Skin.Game_Chara_Ptn_ClearIn != 0 && actChara.CharaAction_Balloon_Delay[nPlayer].b終了値に達した) + { + this.actChara.アクションタイマーリセット(nPlayer); + this.actChara.ctキャラクターアクション_ノルマ[nPlayer] = new CCounter(0, TJAPlayer3.Skin.Game_Chara_Ptn_ClearIn - 1, (dbUnit / TJAPlayer3.Skin.Game_Chara_Ptn_ClearIn) * 2, CSound管理.rc演奏用タイマ); + this.actChara.ctキャラクターアクション_ノルマ[nPlayer].t進行db(); + this.actChara.ctキャラクターアクション_ノルマ[nPlayer].n現在の値 = 0; + this.actChara.bマイどんアクション中[nPlayer] = true; + } + this.bIsAlreadyCleared[nPlayer] = true; + TJAPlayer3.stage演奏ドラム画面.actBackground.ClearIn(nPlayer); + } + } + + if ( eJudgeResult == E判定.Poor || eJudgeResult == E判定.Miss || eJudgeResult == E判定.Bad ) + { + //if (actGauge.db現在のゲージ値[nPlayer] < 80.0) + //{ + // CDTXMania.stage演奏ドラム画面.actBackground.tFadeOut(nPlayer); + //} + if ((int)actGauge.db現在のゲージ値[nPlayer] < 100 && this.bIsAlreadyMaxed[nPlayer] == true) + { + this.bIsAlreadyMaxed[nPlayer] = false; + } + if ((int)actGauge.db現在のゲージ値[nPlayer] < 80 && this.bIsAlreadyCleared[nPlayer] == true) + { + this.bIsAlreadyCleared[nPlayer] = false; + //CDTXMania.stage演奏ドラム画面.actBackground.ClearIn(nPlayer); + } + cInvisibleChip.ShowChipTemporally( pChip.e楽器パート ); + } + switch ( pChip.e楽器パート ) + { + case E楽器パート.DRUMS: + case E楽器パート.GUITAR: + case E楽器パート.BASS: + break; + case E楽器パート.TAIKO: + if( !bAutoPlay ) + { + if( pChip.nチャンネル番号 == 0x15 || pChip.nチャンネル番号 == 0x16 || pChip.nチャンネル番号 == 0x17 || pChip.nチャンネル番号 == 0x18 ) + break; + + switch ( eJudgeResult ) + { + case E判定.Perfect: + { + this.CBranchScore[nPlayer].nGreat++; + if ( nPlayer == 0 ) this.nヒット数_Auto含まない.Drums.Perfect++; + this.actCombo.n現在のコンボ数[nPlayer]++; + + if(TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan) + this.n良[actDan.NowShowingNumber]++; + + if (this.actCombo.ctコンボ加算[nPlayer].b終了値に達してない) + { + this.actCombo.ctコンボ加算[nPlayer].n現在の値 = 1; + } + else + { + this.actCombo.ctコンボ加算[nPlayer].n現在の値 = 0; + } + } + break; + case E判定.Great: + case E判定.Good: + { + this.CBranchScore[nPlayer].nGood++; + if ( nPlayer == 0 ) this.nヒット数_Auto含まない.Drums.Great++; + this.actCombo.n現在のコンボ数[ nPlayer ]++; + + if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan) + this.n可[actDan.NowShowingNumber]++; + //this.actCombo.ctコンボ加算 = new CCounter( 0, 8, 10, CDTXMania.Timer ); + //this.actCombo.ctコンボ加算.t進行(); + if (this.actCombo.ctコンボ加算[nPlayer].b終了値に達してない) + { + this.actCombo.ctコンボ加算[nPlayer].n現在の値 = 1; + } + else + { + this.actCombo.ctコンボ加算[nPlayer].n現在の値 = 0; + } + + } + break; + case E判定.Poor: + case E判定.Miss: + case E判定.Bad: + { + if( pChip.nチャンネル番号 == 0x1F ) + break; + + if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan) + this.n不可[actDan.NowShowingNumber]++; + this.CBranchScore[nPlayer].nMiss++; + if ( nPlayer == 0 ) this.nヒット数_Auto含まない.Drums.Miss++; + this.actCombo.n現在のコンボ数[ nPlayer ] = 0; + this.actComboVoice.tReset(nPlayer); + //for (int i = 0; i < 2; i++) + //{ + // ctChipAnime[i].t停止(); + //} + } + break; + default: + this.nヒット数_Auto含む.Drums[ (int) eJudgeResult ]++; + break; + } + } + else if ( bAutoPlay ) + { + switch ( eJudgeResult ) + { + case E判定.Perfect: + case E判定.Great: + case E判定.Good: + { + if( pChip.nチャンネル番号 != 0x15 && pChip.nチャンネル番号 != 0x16 && pChip.nチャンネル番号 != 0x17 && pChip.nチャンネル番号 != 0x18 ) + { + if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan) + this.n良[actDan.NowShowingNumber]++; + this.CBranchScore[nPlayer].nGreat++; + if ( nPlayer == 0 ) this.nヒット数_Auto含む.Drums.Perfect++; + this.actCombo.n現在のコンボ数[ nPlayer ]++; + //this.actCombo.ctコンボ加算.t進行(); + if (this.actCombo.ctコンボ加算[nPlayer].b終了値に達してない) + { + this.actCombo.ctコンボ加算[nPlayer].n現在の値 = 1; + } + else + { + this.actCombo.ctコンボ加算[nPlayer].n現在の値 = 0; + } + } + } + break; + + default: + { + if( pChip.nチャンネル番号 != 0x15 && pChip.nチャンネル番号 != 0x16 && pChip.nチャンネル番号 != 0x17 && pChip.nチャンネル番号 != 0x18 && pChip.nチャンネル番号 != 0x1F ) + { + if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan) + this.n不可[actDan.NowShowingNumber]++; + this.CBranchScore[nPlayer].nMiss++; + this.actCombo.n現在のコンボ数[ nPlayer ] = 0; + this.actComboVoice.tReset(nPlayer); + //for (int i = 0; i < 2; i++) + //{ + // ctChipAnime[i].t停止(); + //} + } + } + break; + } + } + actDan.Update(); + + #region[ コンボ音声 ] + if( pChip.nチャンネル番号 < 0x15 || ( pChip.nチャンネル番号 >= 0x1A ) ) + { + if((this.actCombo.n現在のコンボ数[ nPlayer ] % 100 == 0 || this.actCombo.n現在のコンボ数[nPlayer] == 50) && this.actCombo.n現在のコンボ数[ nPlayer ] > 0 ) + { + this.actComboBalloon.Start( this.actCombo.n現在のコンボ数[ nPlayer ], nPlayer ); + } + this.actComboVoice.t再生( this.actCombo.n現在のコンボ数[ nPlayer ], nPlayer ); + + double dbUnit = (((60.0 / (TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM)))); + dbUnit = (((60.0 / pChip.dbBPM))); + + //CDTXMania.act文字コンソール.tPrint(620, 80, C文字コンソール.Eフォント種別.白, "BPM: " + dbUnit.ToString()); + + for (int i = 0; i < 2; i++) + { + if (this.actCombo.n現在のコンボ数[i] == 50 || this.actCombo.n現在のコンボ数[i] == 300) + { + ctChipAnimeLag[i] = new CCounter(0, 664, 1, TJAPlayer3.Timer); + } + } + + if (this.actCombo.n現在のコンボ数[nPlayer] % 10 == 0 && this.actCombo.n現在のコンボ数[nPlayer] > 0) + { + //if (this.actChara.bマイどんアクション中 == false) + //{ + if (!pChip.bGOGOTIME) //2018.03.11 kairera0467 チップに埋め込んだフラグから読み取る + { + if (TJAPlayer3.Skin.Game_Chara_Ptn_10combo != 0 && !this.actChara.ctキャラクターアクション_ノルマ[nPlayer].b進行中 && actChara.CharaAction_Balloon_Delay[nPlayer].b終了値に達した) + { + if (TJAPlayer3.stage演奏ドラム画面.actGauge.db現在のゲージ値[nPlayer] < 100) + { + // 魂ゲージMAXではない + // ジャンプ_ノーマル + this.actChara.アクションタイマーリセット(nPlayer); + this.actChara.ctキャラクターアクション_10コンボ[nPlayer] = new CCounter(0, TJAPlayer3.Skin.Game_Chara_Ptn_10combo - 1, (dbUnit / TJAPlayer3.Skin.Game_Chara_Ptn_10combo) * 2, CSound管理.rc演奏用タイマ); + this.actChara.ctキャラクターアクション_10コンボ[nPlayer].t進行db(); + this.actChara.ctキャラクターアクション_10コンボ[nPlayer].n現在の値 = 0; + this.actChara.bマイどんアクション中[nPlayer] = true; + //this.actChara.マイどん_アクション_10コンボ(); + } + } + if (TJAPlayer3.Skin.Game_Chara_Ptn_10combo_Max != 0 && !this.actChara.ctキャラクターアクション_魂MAX[nPlayer].b進行中 && actChara.CharaAction_Balloon_Delay[nPlayer].b終了値に達した) + { + if (TJAPlayer3.stage演奏ドラム画面.actGauge.db現在のゲージ値[nPlayer] >= 100) + { + // 魂ゲージMAX + // ジャンプ_MAX + this.actChara.アクションタイマーリセット(nPlayer); + this.actChara.ctキャラクターアクション_10コンボMAX[nPlayer] = new CCounter(0, TJAPlayer3.Skin.Game_Chara_Ptn_10combo_Max - 1, (dbUnit / TJAPlayer3.Skin.Game_Chara_Ptn_10combo_Max) * 2, CSound管理.rc演奏用タイマ); + this.actChara.ctキャラクターアクション_10コンボMAX[nPlayer].t進行db(); + this.actChara.ctキャラクターアクション_10コンボMAX[nPlayer].n現在の値 = 0; + this.actChara.bマイどんアクション中[nPlayer] = true; + } + } + } + + //} + else + { + // 魂ゲージMAX + // ジャンプ_MAX + //CDTXMania.stage演奏ドラム画面.actChara.マイどん_アクション_タイマーリセット(); + //CDTXMania.stage演奏ドラム画面.actChara.マイどん_アクション_スタート(CDTXMania.stage演奏ドラム画面.actChara.nキャラクターアクション_10コンボMAX枚数, 2); + } + + /* + if (CDTXMania.stage演奏ドラム画面.actGauge.db現在のゲージ値[0] <= 100) + { + this.actChara.アクションタイマーリセット(); + this.actChara.ctキャラクターアクション_魂MAX = new CCounter(0, CDTXMania.stage演奏ドラム画面.actChara.nキャラクターアクション_魂MAX枚数 - 1, (dbUnit / CDTXMania.stage演奏ドラム画面.actChara.nキャラクターアクション_魂MAX枚数) * 2, CSound管理.rc演奏用タイマ); + this.actChara.ctキャラクターアクション_魂MAX.t進行db(); + this.actChara.ctキャラクターアクション_魂MAX.n現在の値 = 0D; + this.actChara.bマイどんアクション中 = true; + } else if (CDTXMania.stage演奏ドラム画面.actGauge.db現在のゲージ値[0] <= 80) + { + this.actChara.アクションタイマーリセット(); + this.actChara.ctキャラクターアクション_ノルマ = new CCounter(0, CDTXMania.stage演奏ドラム画面.actChara.nキャラクターアクション_ノルマ枚数 - 1, (dbUnit / CDTXMania.stage演奏ドラム画面.actChara.nキャラクターアクション_ノルマ枚数) * 2, CSound管理.rc演奏用タイマ); + this.actChara.ctキャラクターアクション_ノルマ.t進行db(); + this.actChara.ctキャラクターアクション_ノルマ.n現在の値 = 0D; + this.actChara.bマイどんアクション中 = true; + } + */ + } + if(this.actCombo.n現在のコンボ数[0] == 50 || this.actCombo.n現在のコンボ数[1] == 50) + { + + } + + + this.t紙吹雪_開始(); + } + #endregion + + + break; + + + default: + break; + } + if ( ( ( pChip.e楽器パート != E楽器パート.UNKNOWN ) ) && ( eJudgeResult != E判定.Miss ) && ( eJudgeResult != E判定.Bad ) && ( eJudgeResult != E判定.Poor ) && ( pChip.nチャンネル番号 <= 0x14 || pChip.nチャンネル番号 == 0x1A || pChip.nチャンネル番号 == 0x1B ) ) + { + int nCombos = this.actCombo.n現在のコンボ数[nPlayer]; + long nInit = TJAPlayer3.DTX.nScoreInit[0, TJAPlayer3.stage選曲.n確定された曲の難易度[nPlayer]]; + long nDiff = TJAPlayer3.DTX.nScoreDiff[TJAPlayer3.stage選曲.n確定された曲の難易度[nPlayer]]; + long nAddScore = 0; + + if ( TJAPlayer3.ConfigIni.ShinuchiMode ) //2016.07.04 kairera0467 真打モード。 + { + nAddScore = (long)nAddScoreNiji[nPlayer]; + + if (eJudgeResult == E判定.Great || eJudgeResult == E判定.Good) + { + nAddScore = (long)nAddScoreNiji[nPlayer] / 20; + nAddScore = (long)nAddScore * 10; + } + this.actScore.Add( E楽器パート.TAIKO, bIsAutoPlay, (long)nAddScore, nPlayer ); + } + else if( TJAPlayer3.DTX.nScoreModeTmp == 2 ) + { + if( nCombos < 10 ) + { + nAddScore = this.nScore[ 0 ]; + } + else if( nCombos >= 10 && nCombos <= 29 ) + { + nAddScore = this.nScore[ 1 ]; + } + else if( nCombos >= 30 && nCombos <= 49 ) + { + nAddScore = this.nScore[ 2 ]; + } + else if( nCombos >= 50 && nCombos <= 99 ) + { + nAddScore = this.nScore[ 3 ]; + } + else if (nCombos >= 100) + { + nAddScore = this.nScore[ 4 ]; + } + + if (eJudgeResult == E判定.Great || eJudgeResult == E判定.Good) + { + nAddScore = nAddScore / 2; + } + + if (pChip.bGOGOTIME) //2018.03.11 kairera0467 チップに埋め込んだフラグから読み取る + { + nAddScore = (int)(nAddScore * 1.2f); + } + + //100コンボ毎のボーナス + if (nCombos % 100 == 0 && nCombos > 99) + { + if (this.actScore.ctボーナス加算タイマ[nPlayer].b進行中) + { + this.actScore.ctボーナス加算タイマ[nPlayer].t停止(); + this.actScore.BonusAdd(nPlayer); + } + this.actScore.ctボーナス加算タイマ[nPlayer].n現在の値 = 0; + this.actScore.ctボーナス加算タイマ[nPlayer] = new CCounter(0, 2, 1000, TJAPlayer3.Timer); + + //combot = new System.Timers.Timer(); + //if(nPlayer == 0) + //{ + // combot.Elapsed += new System.Timers.ElapsedEventHandler(combotimer_event_1); + //} else + //{ + // combot.Elapsed += new System.Timers.ElapsedEventHandler(combotimer_event_2); + //} + + //combot.Interval = 2000; // ミリ秒単位で指定 + //combot.Enabled = true; + } + + nAddScore = (int)(nAddScore / 10); + nAddScore = (int)(nAddScore * 10); + + //大音符のボーナス + if (pChip.nチャンネル番号 == 0x13 || pChip.nチャンネル番号 == 0x14 || pChip.nチャンネル番号 == 0x1A || pChip.nチャンネル番号 == 0x1B) + { + nAddScore = nAddScore * 2; + } + + this.actScore.Add(E楽器パート.TAIKO, bIsAutoPlay, nAddScore, nPlayer); + //this.actScore.Add( E楽器パート.DRUMS, bIsAutoPlay, nAddScore ); + } + else if (TJAPlayer3.DTX.nScoreModeTmp == 1) + { + if (nCombos < 10) + { + nAddScore = this.nScore[0]; + } + else if (nCombos >= 10 && nCombos <= 19) + { + nAddScore = this.nScore[1]; + } + else if (nCombos >= 20 && nCombos <= 29) + { + nAddScore = this.nScore[2]; + } + else if (nCombos >= 30 && nCombos <= 39) + { + nAddScore = this.nScore[3]; + } + else if (nCombos >= 40 && nCombos <= 49) + { + nAddScore = this.nScore[4]; + } + else if (nCombos >= 50 && nCombos <= 59) + { + nAddScore = this.nScore[5]; + } + else if (nCombos >= 60 && nCombos <= 69) + { + nAddScore = this.nScore[6]; + } + else if (nCombos >= 70 && nCombos <= 79) + { + nAddScore = this.nScore[7]; + } + else if (nCombos >= 80 && nCombos <= 89) + { + nAddScore = this.nScore[8]; + } + else if (nCombos >= 90 && nCombos <= 99) + { + nAddScore = this.nScore[9]; + } + else if (nCombos >= 100) + { + nAddScore = this.nScore[10]; + } + + if (eJudgeResult == E判定.Great || eJudgeResult == E判定.Good) + { + nAddScore = nAddScore / 2; + } + + if (pChip.bGOGOTIME) //2018.03.11 kairera0467 チップに埋め込んだフラグから読み取る + nAddScore = (int)(nAddScore * 1.2f); + + nAddScore = (int)(nAddScore / 10.0); + nAddScore = (int)(nAddScore * 10); + + //大音符のボーナス + if (pChip.nチャンネル番号 == 0x13 || pChip.nチャンネル番号 == 0x14 || pChip.nチャンネル番号 == 0x1A || pChip.nチャンネル番号 == 0x1B) + { + nAddScore = nAddScore * 2; + } + + this.actScore.Add(E楽器パート.TAIKO, bIsAutoPlay, nAddScore, nPlayer); + } + else + { + if (eJudgeResult == E判定.Perfect) + { + if (nCombos < 200) + { + nAddScore = 1000; + } + else + { + nAddScore = 2000; + } + } + else if (eJudgeResult == E判定.Great || eJudgeResult == E判定.Good) + { + if (nCombos < 200) + { + nAddScore = 500; + } + else + { + nAddScore = 1000; + } + } + + if (pChip.bGOGOTIME) //2018.03.11 kairera0467 チップに埋め込んだフラグから読み取る + nAddScore = (int)(nAddScore * 1.2f); + + + //大音符のボーナス + if (pChip.nチャンネル番号 == 0x13 || pChip.nチャンネル番号 == 0x25) + { + nAddScore = nAddScore * 2; + } + + this.actScore.Add(E楽器パート.TAIKO, bIsAutoPlay, nAddScore, nPlayer); + //this.actScore.Add( E楽器パート.DRUMS, bIsAutoPlay, nAddScore ); + } + + //キーを押したときにスコア情報 + nAddScoreを置き換える様に + this.CBranchScore[nPlayer].nScore = (int)(this.actScore.GetScore(nPlayer) + nAddScore); + } + + + return E判定.Auto; + } + + protected void t分岐状況チェック( int n現在時刻, int nPlayer ) + { + CDTX dTX = TJAPlayer3.DTX; + + switch( nPlayer ) + { + case 1: + dTX = TJAPlayer3.DTX_2P; + break; + default: + break; + } + + for( int i = this.n現在のトップChip; i < dTX.listChip.Count; i++ ) + { + if( ( dTX.listChip[ i ].nチャンネル番号 <= 0x11 && dTX.listChip[ i ].nチャンネル番号 >= 0x18 ) != false ) + { + if( dTX.listChip[ i ].nコース == this.n現在のコース[ nPlayer ] ) + { + dTX.listChip[i].b可視 = true; + } + else + { + dTX.listChip[i].b可視 = false; + } + } + } + } + + + protected abstract void tチップのヒット処理_BadならびにTight時のMiss(CDTX.ECourse eCourse, E楽器パート part); + protected abstract void tチップのヒット処理_BadならびにTight時のMiss(CDTX.ECourse eCourse, E楽器パート part, int nLane); + protected void tチップのヒット処理_BadならびにTight時のMiss(CDTX.ECourse eCourse, E楽器パート part, E楽器パート screenmode) + { + this.tチップのヒット処理_BadならびにTight時のMiss(eCourse, part, 0, screenmode); + } + protected void tチップのヒット処理_BadならびにTight時のMiss(CDTX.ECourse eCourse, E楽器パート part, int nLane, E楽器パート screenmode) + { + cInvisibleChip.StartSemiInvisible( part ); + cInvisibleChip.ShowChipTemporally( part ); + + //ChipのCourseをベースにゲージの伸びを調節 + actGauge.Damage(screenmode, part, E判定.Miss, 0); + switch ( part ) + { + case E楽器パート.DRUMS: + case E楽器パート.GUITAR: + case E楽器パート.BASS: + break; + + case E楽器パート.TAIKO: + this.actCombo.n現在のコンボ数.P1 = 0; + break; + + default: + return; + } + } + + protected CDTX.CChip r指定時刻に一番近いChipを過去方向優先で検索する( long nTime, int nChannel, int nInputAdjustTime, int nPlayer ) + { + //sw2.Start(); + nTime += nInputAdjustTime; + + int nIndex_InitialPositionSearchingToPast; + int nTimeDiff; + int count = listChip[ nPlayer ].Count; + if ( count <= 0 ) // 演奏データとして1個もチップがない場合は + { + //sw2.Stop(); + return null; + } + + int nIndex_NearestChip_Future = nIndex_InitialPositionSearchingToPast = this.n現在のトップChip; + if ( this.n現在のトップChip >= count ) // その時点で演奏すべきチップが既に全部無くなっていたら + { + nIndex_NearestChip_Future = nIndex_InitialPositionSearchingToPast = count - 1; + } + // int nIndex_NearestChip_Future = nIndex_InitialPositionSearchingToFuture; +// while ( nIndex_NearestChip_Future < count ) // 未来方向への検索 + for ( ; nIndex_NearestChip_Future < count; nIndex_NearestChip_Future++ ) + { + CDTX.CChip chip = listChip[ nPlayer ][ nIndex_NearestChip_Future ]; + if ( chip.b可視 ) + { + if( chip.nチャンネル番号 == nChannel ) + { + if ( chip.n発声時刻ms > nTime ) + { + break; + } + nIndex_InitialPositionSearchingToPast = nIndex_NearestChip_Future; + } + } +// nIndex_NearestChip_Future++; + } + int nIndex_NearestChip_Past = nIndex_InitialPositionSearchingToPast; +// while ( nIndex_NearestChip_Past >= 0 ) // 過去方向への検索 + for ( ; nIndex_NearestChip_Past >= 0; nIndex_NearestChip_Past-- ) + { + CDTX.CChip chip = listChip[ nPlayer ][ nIndex_NearestChip_Past ]; + //if ( (!chip.bHit && chip.b可視 ) && ( ( 0x93 <= chip.nチャンネル番号 ) && ( chip.nチャンネル番号 <= 0x99 ) ) ) + if( chip.b可視 && chip.nチャンネル番号 == nChannel ) + { + break; + } + } + if ( ( nIndex_NearestChip_Future >= count ) && ( nIndex_NearestChip_Past < 0 ) ) // 検索対象が過去未来どちらにも見つからなかった場合 + { + //sw2.Stop(); + return null; + } + CDTX.CChip nearestChip; // = null; // 以下のifブロックのいずれかで必ずnearestChipには非nullが代入されるので、null初期化を削除 + if ( nIndex_NearestChip_Future >= count ) // 検索対象が未来方向には見つからなかった(しかし過去方向には見つかった)場合 + { + nearestChip = listChip[ nPlayer ][ nIndex_NearestChip_Past ]; +// nTimeDiff = Math.Abs( (int) ( nTime - nearestChip.n発声時刻ms ) ); + } + else if ( nIndex_NearestChip_Past < 0 ) // 検索対象が過去方向には見つからなかった(しかし未来方向には見つかった)場合 + { + nearestChip = listChip[ nPlayer ][ nIndex_NearestChip_Future ]; +// nTimeDiff = Math.Abs( (int) ( nTime - nearestChip.n発声時刻ms ) ); + } + else + { + int nTimeDiff_Future = Math.Abs( (int) ( nTime - listChip[ nPlayer ][ nIndex_NearestChip_Future ].n発声時刻ms ) ); + int nTimeDiff_Past = Math.Abs( (int) ( nTime - listChip[ nPlayer ][ nIndex_NearestChip_Past ].n発声時刻ms ) ); + if ( nTimeDiff_Future < nTimeDiff_Past ) + { + if( !listChip[ nPlayer ][ nIndex_NearestChip_Past ].bHit && ( listChip[ nPlayer ][ nIndex_NearestChip_Past ].n発声時刻ms + ( 108 ) >= nTime ) ) + { + nearestChip = listChip[ nPlayer ][ nIndex_NearestChip_Past ]; + } + else + nearestChip = listChip[ nPlayer ][ nIndex_NearestChip_Future ]; +// nTimeDiff = Math.Abs( (int) ( nTime - nearestChip.n発声時刻ms ) ); + } + else + { + nearestChip = listChip[ nPlayer ][ nIndex_NearestChip_Past ]; +// nTimeDiff = Math.Abs( (int) ( nTime - nearestChip.n発声時刻ms ) ); + } + } + nTimeDiff = Math.Abs( (int) ( nTime - nearestChip.n発声時刻ms ) ); + int n検索範囲時間ms = 0; + if ( ( n検索範囲時間ms > 0 ) && ( nTimeDiff > n検索範囲時間ms ) ) // チップは見つかったが、検索範囲時間外だった場合 + { + //sw2.Stop(); + return null; + } + //sw2.Stop(); + return nearestChip; + } + + protected CDTX.CChip r指定時刻に一番近い未ヒットChipを過去方向優先で検索する( long nTime, int nPlayer ) + { + //sw2.Start(); + int nIndex_InitialPositionSearchingToPast; + int nTimeDiff; + int count = listChip[ nPlayer ].Count; + if ( count <= 0 ) // 演奏データとして1個もチップがない場合は + { + //sw2.Stop(); + return null; + } + + int nIndex_NearestChip_Future = nIndex_InitialPositionSearchingToPast = this.n現在のトップChip; + if ( this.n現在のトップChip >= count ) // その時点で演奏すべきチップが既に全部無くなっていたら + { + nIndex_NearestChip_Future = nIndex_InitialPositionSearchingToPast = count - 1; + } + + + // int nIndex_NearestChip_Future = nIndex_InitialPositionSearchingToFuture; +// while ( nIndex_NearestChip_Future < count ) // 未来方向への検索 + for ( ; nIndex_NearestChip_Future < count; nIndex_NearestChip_Future++ ) + { + if( nIndex_NearestChip_Future < 0 ) + continue; + + CDTX.CChip chip = listChip[ nPlayer ][ nIndex_NearestChip_Future ]; + if ( !chip.bHit && chip.b可視 ) + { + if ( ( ( 0x11 <= chip.nチャンネル番号 ) && ( chip.nチャンネル番号 <= 0x18 ) ) || chip.nチャンネル番号 == 0x1A || chip.nチャンネル番号 == 0x1B || chip.nチャンネル番号 == 0x1F ) + { + if ( chip.n発声時刻ms > nTime ) + { + break; + } + nIndex_InitialPositionSearchingToPast = nIndex_NearestChip_Future; + } + } + if( chip.bHit && chip.b可視 ) // 2015.11.5 kairera0467 連打対策 + { + if( ( 0x15 <= chip.nチャンネル番号) && ( chip.nチャンネル番号 <= 0x17 ) ) + { + if (chip.nノーツ終了時刻ms > nTime) + { + nIndex_InitialPositionSearchingToPast = nIndex_NearestChip_Future; + break; + } + } + } +// nIndex_NearestChip_Future++; + } + + + int nIndex_NearestChip_Past = nIndex_InitialPositionSearchingToPast; +// while ( nIndex_NearestChip_Past >= 0 ) // 過去方向への検索 + for ( ; nIndex_NearestChip_Past >= 0; nIndex_NearestChip_Past-- ) + { + CDTX.CChip chip = listChip[ nPlayer ][ nIndex_NearestChip_Past ]; + //if ( (!chip.bHit && chip.b可視 ) && ( ( 0x93 <= chip.nチャンネル番号 ) && ( chip.nチャンネル番号 <= 0x99 ) ) ) + if ( (!chip.bHit && chip.b可視 ) && ( ( 0x11 <= chip.nチャンネル番号 ) && ( chip.nチャンネル番号 <= 0x17 ) ) || chip.nチャンネル番号 == 0x1A || chip.nチャンネル番号 == 0x1B || chip.nチャンネル番号 == 0x1F ) + { + break; + } + //2015.11.5 kairera0467 連打対策 + else if ( ( chip.b可視 ) && ( ( 0x15 <= chip.nチャンネル番号 ) && ( chip.nチャンネル番号 <= 0x17 ) ) ) + { + break; + } +// nIndex_NearestChip_Past--; + } + if ( ( nIndex_NearestChip_Future >= count ) && ( nIndex_NearestChip_Past < 0 ) ) // 検索対象が過去未来どちらにも見つからなかった場合 + { + //sw2.Stop(); + return null; + } + CDTX.CChip nearestChip; // = null; // 以下のifブロックのいずれかで必ずnearestChipには非nullが代入されるので、null初期化を削除 + if ( nIndex_NearestChip_Future >= count ) // 検索対象が未来方向には見つからなかった(しかし過去方向には見つかった)場合 + { + nearestChip = listChip[ nPlayer ][ nIndex_NearestChip_Past ]; +// nTimeDiff = Math.Abs( (int) ( nTime - nearestChip.n発声時刻ms ) ); + } + else if ( nIndex_NearestChip_Past < 0 ) // 検索対象が過去方向には見つからなかった(しかし未来方向には見つかった)場合 + { + nearestChip = listChip[ nPlayer ][ nIndex_NearestChip_Future ]; +// nTimeDiff = Math.Abs( (int) ( nTime - nearestChip.n発声時刻ms ) ); + } + else + { + int nTimeDiff_Future = Math.Abs( (int) ( nTime - listChip[ nPlayer ][ nIndex_NearestChip_Future ].n発声時刻ms ) ); + int nTimeDiff_Past = Math.Abs( (int) ( nTime - listChip[ nPlayer ][ nIndex_NearestChip_Past ].n発声時刻ms ) ); + if ( nTimeDiff_Future < nTimeDiff_Past ) + { + if( !listChip[ nPlayer ][ nIndex_NearestChip_Past ].bHit && ( listChip[ nPlayer ][ nIndex_NearestChip_Past ].n発声時刻ms + ( 108 ) >= nTime ) ) + { + nearestChip = listChip[ nPlayer ][ nIndex_NearestChip_Past ]; + } + else + nearestChip = listChip[ nPlayer ][ nIndex_NearestChip_Future ]; +// nTimeDiff = Math.Abs( (int) ( nTime - nearestChip.n発声時刻ms ) ); + } + else + { + nearestChip = listChip[ nPlayer ][ nIndex_NearestChip_Past ]; +// nTimeDiff = Math.Abs( (int) ( nTime - nearestChip.n発声時刻ms ) ); + } + + //2015.11.5 kairera0467 連打音符の判定 + if( listChip[ nPlayer ][ nIndex_NearestChip_Future ].nチャンネル番号 >= 0x15 && listChip[ nPlayer ][ nIndex_NearestChip_Future ].nチャンネル番号 <= 0x17 ) + { + if( listChip[ nPlayer ][ nIndex_NearestChip_Future ].n発声時刻ms <= nTime && listChip[ nPlayer ][ nIndex_NearestChip_Future ].nノーツ終了時刻ms >= nTime ) + { + nearestChip = listChip[ nPlayer ][ nIndex_NearestChip_Future ]; + } + } + } + nTimeDiff = Math.Abs( (int) ( nTime - nearestChip.n発声時刻ms ) ); + int n検索範囲時間ms = 0; + if ( ( n検索範囲時間ms > 0 ) && ( nTimeDiff > n検索範囲時間ms ) ) // チップは見つかったが、検索範囲時間外だった場合 + { + //sw2.Stop(); + return null; + } + //sw2.Stop(); + return nearestChip; + } + + protected CDTX.CChip r指定時刻に一番近い未ヒットChipを過去方向優先で検索する(long nTime, int nInputAdjustTime, int nPlayer) + { + //sw2.Start(); + nTime += nInputAdjustTime; + + int nIndex_InitialPositionSearchingToPast; + int nTimeDiff; + int count = listChip[nPlayer].Count; + if (count <= 0) // 演奏データとして1個もチップがない場合は + { + //sw2.Stop(); + return null; + } + #endregion + + int nIndex_NearestChip_Future = nIndex_InitialPositionSearchingToPast = this.n現在のトップChip; + if (this.n現在のトップChip >= count) // その時点で演奏すべきチップが既に全部無くなっていたら + { + nIndex_NearestChip_Future = nIndex_InitialPositionSearchingToPast = count - 1; + } + // int nIndex_NearestChip_Future = nIndex_InitialPositionSearchingToFuture; + // while ( nIndex_NearestChip_Future < count ) // 未来方向への検索 + for (; nIndex_NearestChip_Future < count; nIndex_NearestChip_Future++) + { + if (nIndex_NearestChip_Future < 0) + continue; + + CDTX.CChip chip = listChip[nPlayer][nIndex_NearestChip_Future]; + if (!chip.bHit && chip.b可視) + { + if (((0x11 <= chip.nチャンネル番号) && (chip.nチャンネル番号 <= 0x18)) || chip.nチャンネル番号 == 0x1A || chip.nチャンネル番号 == 0x1B || chip.nチャンネル番号 == 0x1F) + { + if (chip.n発声時刻ms > nTime) + { + break; + } + nIndex_InitialPositionSearchingToPast = nIndex_NearestChip_Future; + } + } + if (chip.bHit && chip.b可視) // 2015.11.5 kairera0467 連打対策 + { + if ((0x15 <= chip.nチャンネル番号) && (chip.nチャンネル番号 <= 0x17)) + { + if (chip.nノーツ終了時刻ms > nTime) + { + nIndex_InitialPositionSearchingToPast = nIndex_NearestChip_Future; + break; + } + } + } + // nIndex_NearestChip_Future++; + } + int nIndex_NearestChip_Past = nIndex_InitialPositionSearchingToPast; + // while ( nIndex_NearestChip_Past >= 0 ) // 過去方向への検索 + for (; nIndex_NearestChip_Past >= 0; nIndex_NearestChip_Past--) + { + CDTX.CChip chip = listChip[nPlayer][nIndex_NearestChip_Past]; + //if ( (!chip.bHit && chip.b可視 ) && ( ( 0x93 <= chip.nチャンネル番号 ) && ( chip.nチャンネル番号 <= 0x99 ) ) ) + if ((!chip.bHit && chip.b可視) && ((0x11 <= chip.nチャンネル番号) && (chip.nチャンネル番号 <= 0x17)) || chip.nチャンネル番号 == 0x1A || chip.nチャンネル番号 == 0x1B || chip.nチャンネル番号 == 0x1F) + { + break; + } + //2015.11.5 kairera0467 連打対策 + else if ((chip.b可視) && ((0x15 <= chip.nチャンネル番号) && (chip.nチャンネル番号 <= 0x17))) + { + break; + } + // nIndex_NearestChip_Past--; + } + if ((nIndex_NearestChip_Future >= count) && (nIndex_NearestChip_Past < 0)) // 検索対象が過去未来どちらにも見つからなかった場合 + { + //sw2.Stop(); + return null; + } + CDTX.CChip nearestChip; // = null; // 以下のifブロックのいずれかで必ずnearestChipには非nullが代入されるので、null初期化を削除 + if (nIndex_NearestChip_Future >= count) // 検索対象が未来方向には見つからなかった(しかし過去方向には見つかった)場合 + { + nearestChip = listChip[nPlayer][nIndex_NearestChip_Past]; + // nTimeDiff = Math.Abs( (int) ( nTime - nearestChip.n発声時刻ms ) ); + } + else if (nIndex_NearestChip_Past < 0) // 検索対象が過去方向には見つからなかった(しかし未来方向には見つかった)場合 + { + nearestChip = listChip[nPlayer][nIndex_NearestChip_Future]; + // nTimeDiff = Math.Abs( (int) ( nTime - nearestChip.n発声時刻ms ) ); + } + else + { + int nTimeDiff_Future = Math.Abs((int)(nTime - listChip[nPlayer][nIndex_NearestChip_Future].n発声時刻ms)); + int nTimeDiff_Past = Math.Abs((int)(nTime - listChip[nPlayer][nIndex_NearestChip_Past].n発声時刻ms)); + if (nTimeDiff_Future < nTimeDiff_Past) + { + if (!listChip[nPlayer][nIndex_NearestChip_Past].bHit && (listChip[nPlayer][nIndex_NearestChip_Past].n発声時刻ms + (108) >= nTime)) + { + nearestChip = listChip[nPlayer][nIndex_NearestChip_Past]; + } + else + nearestChip = listChip[nPlayer][nIndex_NearestChip_Future]; + // nTimeDiff = Math.Abs( (int) ( nTime - nearestChip.n発声時刻ms ) ); + } + else + { + nearestChip = listChip[nPlayer][nIndex_NearestChip_Past]; + // nTimeDiff = Math.Abs( (int) ( nTime - nearestChip.n発声時刻ms ) ); + } + //2015.11.5 kairera0467 連打音符の判定 + if (listChip[nPlayer][nIndex_NearestChip_Future].nチャンネル番号 >= 0x15 && listChip[nPlayer][nIndex_NearestChip_Future].nチャンネル番号 <= 0x17) + { + if (listChip[nPlayer][nIndex_NearestChip_Future].n発声時刻ms <= nTime && listChip[nPlayer][nIndex_NearestChip_Future].nノーツ終了時刻ms >= nTime) + { + nearestChip = listChip[nPlayer][nIndex_NearestChip_Future]; + } + } + } + nTimeDiff = Math.Abs((int)(nTime - nearestChip.n発声時刻ms)); + int n検索範囲時間ms = 0; + if ((n検索範囲時間ms > 0) && (nTimeDiff > n検索範囲時間ms)) // チップは見つかったが、検索範囲時間外だった場合 + { + //sw2.Stop(); + return null; + } + //sw2.Stop(); + return nearestChip; + } + + /// + /// 最も判定枠に近いドンカツを返します。 + /// + /// 判定時の時間。 + /// プレイヤー。 + /// ドンかどうか。 + /// 最も判定枠に近いノーツ。 + protected CDTX.CChip GetChipOfNearest(long nowTime, int player, bool don) + { + var nearestChip = new CDTX.CChip(); + var count = listChip[player].Count; + var chips = listChip[player]; + var startPosision = NowProcessingChip[player]; + CDTX.CChip pastChip; // 判定されるべき過去ノート + CDTX.CChip futureChip; // 判定されるべき未来ノート + var pastJudge = E判定.Miss; + var futureJudge = E判定.Miss; + + bool GetDon(CDTX.CChip note) + { + return note.nチャンネル番号 == 0x11 || note.nチャンネル番号 == 0x13 || note.nチャンネル番号 == 0x1A || note.nチャンネル番号 == 0x1F; + } + bool GetKatsu(CDTX.CChip note) + { + return note.nチャンネル番号 == 0x12 || note.nチャンネル番号 == 0x14 || note.nチャンネル番号 == 0x1B || note.nチャンネル番号 == 0x1F; + } + + if (count <= 0) + { + return null; + } + + if (startPosision >= count) + { + startPosision -= 1; + } + + #region 過去のノーツで、かつ可判定以上のノーツの決定 + CDTX.CChip afterChip = null; + for (int pastNote = startPosision - 1; ; pastNote--) + { + if (pastNote < 0) + { + pastChip = afterChip != null ? afterChip : null; // afterChipに過去の判定があるかもしれないので + break; + } + var processingChip = chips[pastNote]; + if (!processingChip.IsHitted && processingChip.nコース == n現在のコース[player]) // まだ判定されてない音符 + { + if (don ? GetDon(processingChip) : GetKatsu(processingChip)) // 音符のチャンネルである + { + var thisChipJudge = pastJudge = e指定時刻からChipのJUDGEを返すImpl(nowTime, processingChip); + if (thisChipJudge != E判定.Miss) + { + // 判定が見過ごし不可ではない(=たたいて不可以上) + // その前のノートがもしかしたら存在して、可以上の判定かもしれないからまだ処理を続行する。 + afterChip = processingChip; + continue; + } + else + { + // 判定が不可だった + // その前のノーツを過去で可以上のノート(つまり判定されるべきノート)とする。 + pastChip = afterChip; + break; // 検索終わり + } + } + } + if (processingChip.IsHitted && processingChip.nコース == n現在のコース[player]) // 連打 + { + if ((0x15 <= processingChip.nチャンネル番号) && (processingChip.nチャンネル番号 <= 0x17)) + { + if (processingChip.nノーツ終了時刻ms > nowTime) + { + pastChip = processingChip; + break; + } + } + } + } + #endregion + + #region 未来のノーツで、かつ可判定以上のノーツの決定 + for (int futureNote = startPosision; ; futureNote++) + { + if (futureNote >= count) + { + futureChip = null; + break; + } + var processingChip = chips[futureNote]; + if (!processingChip.IsHitted && processingChip.nコース == n現在のコース[player]) // まだ判定されてない音符 + { + if (don ? GetDon(processingChip) : GetKatsu(processingChip)) // 音符のチャンネルである + { + var thisChipJudge = futureJudge = e指定時刻からChipのJUDGEを返すImpl(nowTime, processingChip); + if (thisChipJudge != E判定.Miss) + { + // 判定が見過ごし不可ではない(=たたいて不可以上) + // そのノートを処理すべきなので、検索終わり。 + futureChip = processingChip; + break; // 検索終わり + } + else + { + // 判定が不可だった + // つまり未来に処理すべきノートはないので、検索終わり。 + futureChip = null; // 今処理中のノート + break; // 検索終わり + } + } + } + } + #endregion + + #region 過去のノーツが見つかったらそれを返却、そうでなければ未来のノーツを返却 + if ((pastJudge == E判定.Miss || pastJudge == E判定.Poor) && (pastJudge != E判定.Miss && pastJudge != E判定.Poor)) + { + // 過去の判定が不可で、未来の判定が可以上なら未来を返却。 + nearestChip = futureChip; + } + else if (futureChip == null && pastChip != null) + { + // 未来に処理するべきノートがなかったので、過去の処理すべきノートを返す。 + nearestChip = pastChip; + } + else if (pastChip == null && futureChip != null) + { + // 過去の検索が該当なしだったので、未来のノートを返す。 + nearestChip = futureChip; + } + else + { + // 基本的には過去のノートを返す。 + nearestChip = pastChip; + } + #endregion + + return nearestChip; + } + + + protected CDTX.CChip r指定時刻に一番近い未ヒットChip( long nTime, int nChannel, int nInputAdjustTime, int n検索範囲時間ms, int nPlayer ) + { + //sw2.Start(); +//Trace.TraceInformation( "nTime={0}, nChannel={1:x2}, 現在のTop={2}", nTime, nChannel,CDTXMania.DTX.listChip[ this.n現在のトップChip ].n発声時刻ms ); + nTime += nInputAdjustTime; + + int nIndex_InitialPositionSearchingToPast; + int nTimeDiff; + if ( this.n現在のトップChip == -1 ) // 演奏データとして1個もチップがない場合は + { + //sw2.Stop(); + return null; + } + int count = listChip[ nPlayer ].Count; + int nIndex_NearestChip_Future = nIndex_InitialPositionSearchingToPast = this.n現在のトップChip; + if ( this.n現在のトップChip >= count ) // その時点で演奏すべきチップが既に全部無くなっていたら + { + nIndex_NearestChip_Future = nIndex_InitialPositionSearchingToPast = count - 1; + } + // int nIndex_NearestChip_Future = nIndex_InitialPositionSearchingToFuture; +// while ( nIndex_NearestChip_Future < count ) // 未来方向への検索 + for ( ; nIndex_NearestChip_Future < count; nIndex_NearestChip_Future++ ) + { + CDTX.CChip chip = listChip[ nPlayer ][ nIndex_NearestChip_Future ]; + if ( !chip.bHit ) + { + if( ( 0x11 <= nChannel) && ( nChannel <= 0x1F ) ) + { + if ((chip.nチャンネル番号 == nChannel) || (chip.nチャンネル番号 == (nChannel + 0x20))) + { + if (chip.n発声時刻ms > nTime) + { + break; + } + nIndex_InitialPositionSearchingToPast = nIndex_NearestChip_Future; + } + continue; + } + + //if ( ( ( 0xDE <= nChannel ) && ( nChannel <= 0xDF ) ) ) + if ( ( ( 0xDF == nChannel ) ) ) + { + if( chip.nチャンネル番号 == nChannel ) + { + if ( chip.n発声時刻ms > nTime ) + { + break; + } + nIndex_InitialPositionSearchingToPast = nIndex_NearestChip_Future; + } + } + + if ( ( ( 0x50 == nChannel ) ) ) + { + if( chip.nチャンネル番号 == nChannel ) + { + if ( chip.n発声時刻ms > nTime ) + { + break; + } + nIndex_InitialPositionSearchingToPast = nIndex_NearestChip_Future; + } + } + + } +// nIndex_NearestChip_Future++; + } + int nIndex_NearestChip_Past = nIndex_InitialPositionSearchingToPast; +// while ( nIndex_NearestChip_Past >= 0 ) // 過去方向への検索 + for ( ; nIndex_NearestChip_Past >= 0; nIndex_NearestChip_Past-- ) + { + CDTX.CChip chip = listChip[ nPlayer ][ nIndex_NearestChip_Past ]; + if ( (!chip.bHit) && + ( + ( + ( ( ( ( nChannel >= 0x11 ) && ( nChannel <= 0x14 ) ) || nChannel == 0x1A || nChannel == 0x1B || nChannel == 0x1F ) && ( chip.nチャンネル番号 == nChannel ) ) + ) + || + ( + // ( ( ( nChannel >= 0xDE ) && ( nChannel <= 0xDF ) ) && ( chip.nチャンネル番号 == nChannel ) ) + ( ( ( nChannel == 0xDF ) ) && ( chip.nチャンネル番号 == nChannel ) ) + ) + || + ( + // ( ( ( nChannel >= 0xDE ) && ( nChannel <= 0xDF ) ) && ( chip.nチャンネル番号 == nChannel ) ) + ( ( ( nChannel == 0x50 ) ) && ( chip.nチャンネル番号 == nChannel ) ) + ) + ) + ) + { + break; + } +// nIndex_NearestChip_Past--; + } + if ( ( nIndex_NearestChip_Future >= count ) && ( nIndex_NearestChip_Past < 0 ) ) // 検索対象が過去未来どちらにも見つからなかった場合 + { + //sw2.Stop(); + return null; + } + CDTX.CChip nearestChip; // = null; // 以下のifブロックのいずれかで必ずnearestChipには非nullが代入されるので、null初期化を削除 + if ( nIndex_NearestChip_Future >= count ) // 検索対象が未来方向には見つからなかった(しかし過去方向には見つかった)場合 + { + nearestChip = listChip[ nPlayer ][ nIndex_NearestChip_Past ]; +// nTimeDiff = Math.Abs( (int) ( nTime - nearestChip.n発声時刻ms ) ); + } + else if ( nIndex_NearestChip_Past < 0 ) // 検索対象が過去方向には見つからなかった(しかし未来方向には見つかった)場合 + { + nearestChip = listChip[ nPlayer ][ nIndex_NearestChip_Future ]; +// nTimeDiff = Math.Abs( (int) ( nTime - nearestChip.n発声時刻ms ) ); + } + else + { + int nTimeDiff_Future = Math.Abs( (int) ( nTime - listChip[ nPlayer ][ nIndex_NearestChip_Future ].n発声時刻ms ) ); + int nTimeDiff_Past = Math.Abs( (int) ( nTime - listChip[ nPlayer ][ nIndex_NearestChip_Past ].n発声時刻ms ) ); + + if( nChannel == 0xDF ) //0xDFの場合は過去方向への検索をしない + { + return listChip[ nPlayer ][ nIndex_NearestChip_Future ]; + } + + if ( nTimeDiff_Future < nTimeDiff_Past ) + { + nearestChip = listChip[ nPlayer ][ nIndex_NearestChip_Future ]; +// nTimeDiff = Math.Abs( (int) ( nTime - nearestChip.n発声時刻ms ) ); + } + else + { + nearestChip = listChip[ nPlayer ][ nIndex_NearestChip_Past ]; +// nTimeDiff = Math.Abs( (int) ( nTime - nearestChip.n発声時刻ms ) ); + } + } + nTimeDiff = Math.Abs( (int) ( nTime - nearestChip.n発声時刻ms ) ); + if ( ( n検索範囲時間ms > 0 ) && ( nTimeDiff > n検索範囲時間ms ) ) // チップは見つかったが、検索範囲時間外だった場合 + { + //sw2.Stop(); + return null; + } + //sw2.Stop(); + return nearestChip; + } + public bool r検索範囲内にチップがあるか調べる( long nTime, int nInputAdjustTime, int n検索範囲時間ms, int nPlayer ) + { + nTime += nInputAdjustTime; + + for ( int i = 0; i < listChip[ nPlayer ].Count; i++ ) + { + CDTX.CChip chip = listChip[ nPlayer ][ i ]; + if ( !chip.bHit ) + { + if ( ( ( 0x11 <= chip.nチャンネル番号 ) && ( chip.nチャンネル番号 <= 0x14 ) ) || chip.nチャンネル番号 == 0x1A || chip.nチャンネル番号 == 0x1B ) + { + if ( chip.n発声時刻ms < nTime + n検索範囲時間ms ) + { + if( chip.nコース == this.n現在のコース[ nPlayer ] ) //2016.06.14 kairera0467 譜面分岐も考慮するようにしてみる。 + return true; + } + } + } + } + + return false; + } + + protected void ChangeInputAdjustTimeInPlaying( IInputDevice keyboard, int plusminus ) // #23580 2011.1.16 yyagi UI for InputAdjustTime in playing screen. + { + int offset; + if (keyboard.bキーが押されている((int)SlimDXKeys.Key.LeftControl) || + keyboard.bキーが押されている((int)SlimDXKeys.Key.RightControl)) + { + offset = plusminus; + } + else + { + offset = plusminus * 10; + } + + var newInputAdjustTimeMs = (TJAPlayer3.ConfigIni.nInputAdjustTimeMs + offset).Clamp(-99, 99); + TJAPlayer3.ConfigIni.nInputAdjustTimeMs = newInputAdjustTimeMs; + } + + protected abstract void t入力処理_ドラム(); + protected abstract void ドラムスクロール速度アップ(); + protected abstract void ドラムスクロール速度ダウン(); + protected void tキー入力() + { + IInputDevice keyboard = TJAPlayer3.Input管理.Keyboard; + if ( keyboard.bキーが押された( (int)SlimDXKeys.Key.F1 ) && + ( keyboard.bキーが押されている( (int)SlimDXKeys.Key.RightShift ) || keyboard.bキーが押されている( (int)SlimDXKeys.Key.LeftShift ) ) ) + { // shift+f1 (pause) + //this.bPAUSE = !this.bPAUSE; + //if ( this.bPAUSE ) + //{ + // CSound管理.rc演奏用タイマ.t一時停止(); + // CDTXMania.Timer.t一時停止(); + // CDTXMania.DTX.t全チップの再生一時停止(); + //} + //else + //{ + // CSound管理.rc演奏用タイマ.t再開(); + // CDTXMania.Timer.t再開(); + // CDTXMania.DTX.t全チップの再生再開(); + //} + } + if ( ( !this.bPAUSE && ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED ) ) && ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) ) + { + this.t入力処理_ドラム(); + if ( keyboard.bキーが押された( (int)SlimDXKeys.Key.UpArrow ) && ( keyboard.bキーが押されている( (int)SlimDXKeys.Key.RightShift ) || keyboard.bキーが押されている( (int)SlimDXKeys.Key.LeftShift ) ) ) + { // shift (+ctrl) + UpArrow (BGMAdjust) + TJAPlayer3.DTX.t各自動再生音チップの再生時刻を変更する( ( keyboard.bキーが押されている( (int)SlimDXKeys.Key.LeftControl ) || keyboard.bキーが押されている( (int)SlimDXKeys.Key.RightControl ) ) ? 1 : 10 ); + TJAPlayer3.DTX.tWave再生位置自動補正(); + } + else if ( keyboard.bキーが押された( (int)SlimDXKeys.Key.DownArrow ) && ( keyboard.bキーが押されている( (int)SlimDXKeys.Key.RightShift ) || keyboard.bキーが押されている( (int)SlimDXKeys.Key.LeftShift ) ) ) + { // shift + DownArrow (BGMAdjust) + TJAPlayer3.DTX.t各自動再生音チップの再生時刻を変更する( ( keyboard.bキーが押されている( (int)SlimDXKeys.Key.LeftControl ) || keyboard.bキーが押されている( (int)SlimDXKeys.Key.RightControl ) ) ? -1 : -10 ); + TJAPlayer3.DTX.tWave再生位置自動補正(); + } + else if ( keyboard.bキーが押された( (int)SlimDXKeys.Key.UpArrow ) ) + { // UpArrow(scrollspeed up) + ドラムスクロール速度アップ(); + } + else if ( keyboard.bキーが押された( (int)SlimDXKeys.Key.DownArrow ) ) + { // DownArrow (scrollspeed down) + ドラムスクロール速度ダウン(); + } + else if ( keyboard.bキーが押された( (int)SlimDXKeys.Key.Delete ) ) + { // del (debug info) + TJAPlayer3.ConfigIni.b演奏情報を表示する = !TJAPlayer3.ConfigIni.b演奏情報を表示する; + } + else if ( keyboard.bキーが押された( (int)SlimDXKeys.Key.LeftArrow ) ) // #24243 2011.1.16 yyagi UI for InputAdjustTime in playing screen. + { + ChangeInputAdjustTimeInPlaying( keyboard, -1 ); + } + else if ( keyboard.bキーが押された( (int)SlimDXKeys.Key.RightArrow ) ) // #24243 2011.1.16 yyagi UI for InputAdjustTime in playing screen. + { + ChangeInputAdjustTimeInPlaying( keyboard, +1 ); + } + else if ( ( base.eフェーズID == CStage.Eフェーズ.共通_通常状態 ) && ( keyboard.bキーが押された( (int)SlimDXKeys.Key.Escape ) || TJAPlayer3.Pad.b押されたGB( Eパッド.FT ) ) && !this.actPauseMenu.bIsActivePopupMenu ) + { // escape (exit) + this.t演奏中止(); + } + else if ( keyboard.bキーが押された( (int)SlimDXKeys.Key.D1 ) ) + { + if (!TJAPlayer3.DTX.bHasBranch[TJAPlayer3.stage選曲.n確定された曲の難易度[0]]) return; + + //listBRANCHを廃止したため強制分岐の開始値を + //rc演奏用タイマ.n現在時刻msから引っ張ることに + + //判定枠に一番近いチップの情報を元に一小節分の値を計算する. 2020.04.21 akasoko26 + + var p判定枠に最も近いチップ = r指定時刻に一番近い未ヒットChipを過去方向優先で検索する((long)(CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)), 0); + double db一小節後 = 0.0; + if (p判定枠に最も近いチップ != null) + db一小節後 = ((15000.0 / p判定枠に最も近いチップ.dbBPM * (p判定枠に最も近いチップ.fNow_Measure_s / p判定枠に最も近いチップ.fNow_Measure_m)) * 16.0); + + this.t分岐処理(CDTX.ECourse.eNormal, 0, (CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)) + db一小節後); + + TJAPlayer3.stage演奏ドラム画面.actLaneTaiko.t分岐レイヤー_コース変化(TJAPlayer3.stage演奏ドラム画面.actLaneTaiko.stBranch[0].nAfter, CDTX.ECourse.eNormal, 0); + TJAPlayer3.stage演奏ドラム画面.actMtaiko.tBranchEvent(TJAPlayer3.stage演奏ドラム画面.actMtaiko.After[0], CDTX.ECourse.eNormal, 0); + this.n現在のコース[0] = CDTX.ECourse.eNormal; + this.n次回のコース[0] = CDTX.ECourse.eNormal; + this.nレーン用表示コース[0] = CDTX.ECourse.eNormal; + + this.b強制的に分岐させた[0] = true; + } + else if ( keyboard.bキーが押された( (int)SlimDXKeys.Key.D2 ) ) // #24243 2011.1.16 yyagi UI for InputAdjustTime in playing screen. + { + if (!TJAPlayer3.DTX.bHasBranch[TJAPlayer3.stage選曲.n確定された曲の難易度[0]]) return; + + //listBRANCHを廃止したため強制分岐の開始値を + //rc演奏用タイマ.n現在時刻msから引っ張ることに + + //判定枠に一番近いチップの情報を元に一小節分の値を計算する. 2020.04.21 akasoko26 + var p判定枠に最も近いチップ = r指定時刻に一番近い未ヒットChipを過去方向優先で検索する((long)(CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)), 0); + + double db一小節後 = 0.0; + if (p判定枠に最も近いチップ != null) + db一小節後 = ((15000.0 / p判定枠に最も近いチップ.dbBPM * (p判定枠に最も近いチップ.fNow_Measure_s / p判定枠に最も近いチップ.fNow_Measure_m)) * 16.0); + + this.t分岐処理(CDTX.ECourse.eExpert, 0, (CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)) + db一小節後); + + TJAPlayer3.stage演奏ドラム画面.actLaneTaiko.t分岐レイヤー_コース変化(TJAPlayer3.stage演奏ドラム画面.actLaneTaiko.stBranch[0].nAfter, CDTX.ECourse.eExpert, 0); + TJAPlayer3.stage演奏ドラム画面.actMtaiko.tBranchEvent(TJAPlayer3.stage演奏ドラム画面.actMtaiko.After[0], CDTX.ECourse.eExpert, 0); + + this.n現在のコース[0] = CDTX.ECourse.eExpert; + this.n次回のコース[0] = CDTX.ECourse.eExpert; + this.nレーン用表示コース[0] = CDTX.ECourse.eExpert; + + this.b強制的に分岐させた[0] = true; + } + else if ( keyboard.bキーが押された( (int)SlimDXKeys.Key.D3 ) ) // #24243 2011.1.16 yyagi UI for InputAdjustTime in playing screen. + { + if (!TJAPlayer3.DTX.bHasBranch[TJAPlayer3.stage選曲.n確定された曲の難易度[0]]) return; + + //listBRANCHを廃止したため強制分岐の開始値を + //rc演奏用タイマ.n現在時刻msから引っ張ることに + + //判定枠に一番近いチップの情報を元に一小節分の値を計算する. 2020.04.21 akasoko26 + var p判定枠に最も近いチップ = r指定時刻に一番近い未ヒットChipを過去方向優先で検索する((long)(CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)), 0); + + double db一小節後 = 0.0; + if (p判定枠に最も近いチップ != null) + db一小節後 = ((15000.0 / p判定枠に最も近いチップ.dbBPM * (p判定枠に最も近いチップ.fNow_Measure_s / p判定枠に最も近いチップ.fNow_Measure_m)) * 16.0); + + this.t分岐処理(CDTX.ECourse.eMaster, 0, (CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)) + db一小節後); + + TJAPlayer3.stage演奏ドラム画面.actLaneTaiko.t分岐レイヤー_コース変化(TJAPlayer3.stage演奏ドラム画面.actLaneTaiko.stBranch[0].nAfter, CDTX.ECourse.eMaster, 0); + TJAPlayer3.stage演奏ドラム画面.actMtaiko.tBranchEvent(TJAPlayer3.stage演奏ドラム画面.actMtaiko.After[0], CDTX.ECourse.eMaster, 0); + + this.n現在のコース[0] = CDTX.ECourse.eMaster; + this.n次回のコース[0] = CDTX.ECourse.eMaster; + this.nレーン用表示コース[0] = CDTX.ECourse.eMaster; + + this.b強制的に分岐させた[0] = true; + } + + if ( keyboard.bキーが押された( (int)SlimDXKeys.Key.F4 ) ) + { + if( TJAPlayer3.ConfigIni.bJudgeCountDisplay == false ) + TJAPlayer3.ConfigIni.bJudgeCountDisplay = true; + else + TJAPlayer3.ConfigIni.bJudgeCountDisplay = false; + } + else if ( keyboard.bキーが押された( (int)SlimDXKeys.Key.F5 ) ) + { + switch( TJAPlayer3.ConfigIni.eClipDispType ) + { + case EClipDispType.OFF: + TJAPlayer3.ConfigIni.eClipDispType = EClipDispType.背景のみ; + break; + case EClipDispType.背景のみ: + TJAPlayer3.ConfigIni.eClipDispType = EClipDispType.ウィンドウのみ; + break; + case EClipDispType.ウィンドウのみ: + TJAPlayer3.ConfigIni.eClipDispType = EClipDispType.両方; + break; + case EClipDispType.両方: + TJAPlayer3.ConfigIni.eClipDispType = EClipDispType.OFF; + break; + } + } + if (TJAPlayer3.ConfigIni.bTokkunMode) + { + if (keyboard.bキーが押された((int)SlimDXKeys.Key.F6)) + { + if (TJAPlayer3.ConfigIni.b太鼓パートAutoPlay == false) + TJAPlayer3.ConfigIni.b太鼓パートAutoPlay = true; + else + TJAPlayer3.ConfigIni.b太鼓パートAutoPlay = false; + } + } + } + +#if DEBUG + + if (keyboard.bキーが押された((int)SlimDXKeys.Key.F7)) + { + if (TJAPlayer3.ConfigIni.b太鼓パートAutoPlay2P == false) + TJAPlayer3.ConfigIni.b太鼓パートAutoPlay2P = true; + else + TJAPlayer3.ConfigIni.b太鼓パートAutoPlay2P = false; + } +#endif + if ( !this.actPauseMenu.bIsActivePopupMenu && this.bPAUSE && ( ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED ) ) && ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) ) + { + if ( keyboard.bキーが押された( (int)SlimDXKeys.Key.UpArrow ) ) + { // UpArrow(scrollspeed up) + ドラムスクロール速度アップ(); + } + else if ( keyboard.bキーが押された( (int)SlimDXKeys.Key.DownArrow ) ) + { // DownArrow (scrollspeed down) + ドラムスクロール速度ダウン(); + } + else if ( keyboard.bキーが押された( (int)SlimDXKeys.Key.Delete ) ) + { // del (debug info) + TJAPlayer3.ConfigIni.b演奏情報を表示する = !TJAPlayer3.ConfigIni.b演奏情報を表示する; + } + else if ((keyboard.bキーが押された((int)SlimDXKeys.Key.Escape))) + { // escape (exit) + CSound管理.rc演奏用タイマ.t再開(); + TJAPlayer3.Timer.t再開(); + this.t演奏中止(); + } + } + +#region [ Minus & Equals Sound Group Level ] + KeyboardSoundGroupLevelControlHandler.Handle( + keyboard, TJAPlayer3.SoundGroupLevelController, TJAPlayer3.Skin, false); +#endregion + } + + protected void t入力メソッド記憶( E楽器パート part ) + { + if ( TJAPlayer3.Pad.st検知したデバイス.Keyboard ) + { + this.b演奏にキーボードを使った = true; + } + if ( TJAPlayer3.Pad.st検知したデバイス.Joypad ) + { + this.b演奏にジョイパッドを使った = true; + } + if ( TJAPlayer3.Pad.st検知したデバイス.MIDIIN ) + { + this.b演奏にMIDI入力を使った = true; + } + if ( TJAPlayer3.Pad.st検知したデバイス.Mouse ) + { + this.b演奏にマウスを使った = true; + } + } + + + protected abstract void t進行描画_AVI(); + protected void t進行描画_AVI(int x, int y) + { + if ( ( ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED ) && ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) ) && ( !TJAPlayer3.ConfigIni.bストイックモード && TJAPlayer3.ConfigIni.bAVI有効 ) ) + { + this.actAVI.t進行描画( x, y ); + } + } + protected abstract void t進行描画_DANGER(); + protected void t進行描画_MIDIBGM() + { + if ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED ) + { + CStage.Eフェーズ eフェーズid1 = base.eフェーズID; + } + } + protected void t進行描画_STAGEFAILED() + { + if ( ( ( base.eフェーズID == CStage.Eフェーズ.演奏_STAGE_FAILED ) || ( base.eフェーズID == CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) ) && ( ( this.actStageFailed.On進行描画() != 0 ) && ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) ) ) + { + this.eフェードアウト完了時の戻り値 = E演奏画面の戻り値.ステージ失敗; + base.eフェーズID = CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト; + this.actFO.tフェードアウト開始(); + } + } + + protected void t進行描画_チップファイアGB() + { + this.actChipFireGB.On進行描画(); + } + protected abstract void t進行描画_パネル文字列(); + protected void t進行描画_パネル文字列( int x, int y ) + { + if ( ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED ) && ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) ) + { + this.actPanel.t進行描画( x, y ); + } + } + protected void tパネル文字列の設定() + { + // When performing calibration, inform the player that + // calibration is taking place, rather than + // displaying the panel title or song title as usual. + + var panelString = TJAPlayer3.IsPerformingCalibration + ? "Calibrating input..." + : string.IsNullOrEmpty( TJAPlayer3.DTX.PANEL ) ? TJAPlayer3.DTX.TITLE: TJAPlayer3.DTX.PANEL; + + this.actPanel.SetPanelString( panelString, TJAPlayer3.stage選曲.r確定された曲.str本当のジャンル, TJAPlayer3.Skin.Game_StageText ); + } + + + protected void t進行描画_ゲージ() + { + if ( ( ( ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED ) && ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) ) ) ) + { + this.actGauge.On進行描画(); + } + } + protected void t進行描画_コンボ() + { + this.actCombo.On進行描画(); + } + protected void t進行描画_スコア() + { + this.actScore.On進行描画(); + } + protected void t進行描画_ステータスパネル() + { + this.actStatusPanels.On進行描画(); + } + protected bool t進行描画_チップ( E楽器パート ePlayMode ) + { + return this.t進行描画_チップ( ePlayMode, 0 ); + } + protected bool t進行描画_チップ( E楽器パート ePlayMode, int nPlayer ) + { + if ( ( base.eフェーズID == CStage.Eフェーズ.演奏_STAGE_FAILED ) || ( base.eフェーズID == CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) ) + { + return true; + } + if ( ( this.n現在のトップChip == -1 ) || ( this.n現在のトップChip >= listChip[ nPlayer ].Count ) ) + { + return true; + } + if (IsDanFailed) + { + return true; + } + + var n現在時刻ms = (long)(CSound管理.rc演奏用タイマ.n現在時刻ms * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)); + + if ( this.r指定時刻に一番近い未ヒットChip( (long)n現在時刻ms, 0x50, 0, 1000000, nPlayer ) == null ) + { + this.actChara.b演奏中[nPlayer] = false; + } + + var db現在の譜面スクロール速度 = this.act譜面スクロール速度.db現在の譜面スクロール速度; + + //double speed = 264.0; // BPM150の時の1小節の長さ[dot] + const double speed = 324.0; // BPM150の時の1小節の長さ[dot] + + double ScrollSpeedDrums = (( db現在の譜面スクロール速度.Drums + 1.0 ) * speed ) * 0.5 * 37.5 / 60000.0; + double ScrollSpeedGuitar = ( db現在の譜面スクロール速度.Guitar + 1.0 ) * 0.5 * 0.5 * 37.5 * speed / 60000.0; + double ScrollSpeedBass = ( db現在の譜面スクロール速度.Bass + 1.0 ) * 0.5 * 0.5 * 37.5 * speed / 60000.0; + double ScrollSpeedTaiko = (( db現在の譜面スクロール速度.Drums + 1.0 ) * speed ) * 0.5 * 37.5 / 60000.0; + + CConfigIni configIni = TJAPlayer3.ConfigIni; + + CDTX dTX = TJAPlayer3.DTX; + bool bAutoPlay = false; + switch( nPlayer ) //2017.08.11 kairera0467 + { + case 0: + bAutoPlay = configIni.b太鼓パートAutoPlay; + break; + case 1: + bAutoPlay = configIni.b太鼓パートAutoPlay2P; + dTX = TJAPlayer3.DTX_2P; + break; + default: + break; + } + + if( this.n分岐した回数[ nPlayer ] == 0 ) + { + this.bUseBranch[ nPlayer ] = dTX.bHIDDENBRANCH ? false : dTX.bチップがある.Branch; + } + + + //CDTXMania.act文字コンソール.tPrint(0, 0, C文字コンソール.Eフォント種別.灰, this.nLoopCount_Clear.ToString() ); + + float? play_bpm_time = null; + + //for ( int nCurrentTopChip = this.n現在のトップChip; nCurrentTopChip < dTX.listChip.Count; nCurrentTopChip++ ) + for ( int nCurrentTopChip = dTX.listChip.Count - 1; nCurrentTopChip > 0; nCurrentTopChip-- ) + { + CDTX.CChip pChip = dTX.listChip[ nCurrentTopChip ]; +//Debug.WriteLine( "nCurrentTopChip=" + nCurrentTopChip + ", ch=" + pChip.nチャンネル番号.ToString("x2") + ", 発音位置=" + pChip.n発声位置 + ", 発声時刻ms=" + pChip.n発声時刻ms ); + var time = pChip.n発声時刻ms - n現在時刻ms; + pChip.nバーからの距離dot.Drums = (int) ( time * ScrollSpeedDrums ); + pChip.nバーからの距離dot.Guitar = (int) ( time * ScrollSpeedGuitar ); + pChip.nバーからの距離dot.Bass = (int) ( time * ScrollSpeedBass ); + pChip.nバーからの距離dot.Taiko = (int)(time * pChip.dbBPM * pChip.dbSCROLL * (db現在の譜面スクロール速度.Drums + 1.0) / 502.8594 / 5.0); + if ( pChip.nノーツ終了時刻ms != 0 ) + pChip.nバーからのノーツ末端距離dot = (int)((pChip.nノーツ終了時刻ms - n現在時刻ms) * pChip.dbBPM * pChip.dbSCROLL * (db現在の譜面スクロール速度.Drums + 1) / 502.8594 / 5.0); + + if ( configIni.eScrollMode == EScrollMode.BMSCROLL || configIni.eScrollMode == EScrollMode.HBSCROLL ) + { + if( !play_bpm_time.HasValue ) + { + play_bpm_time = this.GetNowPBMTime( dTX, 0 ); + } + + var dbSCROLL = configIni.eScrollMode == EScrollMode.BMSCROLL ? 1.0 : pChip.dbSCROLL; + + pChip.nバーからの距離dot.Taiko = (int)(3 * 0.8335 * ((pChip.fBMSCROLLTime * NOTE_GAP) - (play_bpm_time * NOTE_GAP)) * dbSCROLL * (db現在の譜面スクロール速度.Drums + 1) / 2 / 5.0); + if ( pChip.nノーツ終了時刻ms != 0 ) + pChip.nバーからのノーツ末端距離dot = (int)(3 * 0.8335 * ((pChip.fBMSCROLLTime_end * NOTE_GAP) - (play_bpm_time * NOTE_GAP)) * pChip.dbSCROLL * (db現在の譜面スクロール速度.Drums + 1.0) / 2 / 5.0); + } + + int instIndex = (int) pChip.e楽器パート; + + if (!pChip.IsMissed && !pChip.bHit) + { + if ( pChip.nチャンネル番号 >= 0x11 && pChip.nチャンネル番号 <= 0x14 || pChip.nチャンネル番号 == 0x1A || pChip.nチャンネル番号 == 0x1B )//|| pChip.nチャンネル番号 == 0x9A ) + { + //こっちのほうが適格と考えたためフラグを変更.2020.04.20 Akasoko26 + if (time <= 0) + { + if (this.e指定時刻からChipのJUDGEを返す(n現在時刻ms, pChip) == E判定.Miss) + { + pChip.IsMissed = true; + pChip.eNoteState = ENoteState.bad; + this.tチップのヒット処理(n現在時刻ms, pChip, E楽器パート.TAIKO, false, 0, nPlayer); + } + } + } + } + + if( pChip.nバーからの距離dot[ instIndex ] < -150 ) + { + if( !( pChip.nチャンネル番号 >= 0x11 && pChip.nチャンネル番号 <= 0x14 ) || pChip.nチャンネル番号 == 0x1A || pChip.nチャンネル番号 == 0x1B ) + { + //2016.02.11 kairera0467 + //太鼓の単音符の場合は座標による判定を行わない。 + //(ここで判定をすると高スピードでスクロールしている時に見逃し不可判定が行われない。) + pChip.bHit = true; + } + } + + var cChipCurrentlyInProcess = chip現在処理中の連打チップ[ nPlayer ]; + if( cChipCurrentlyInProcess != null && !cChipCurrentlyInProcess.bHit ) + { + if( cChipCurrentlyInProcess.nチャンネル番号 >= 0x13 && cChipCurrentlyInProcess.nチャンネル番号 <= 0x15 )//|| pChip.nチャンネル番号 == 0x9A ) + { + if ( ( ( cChipCurrentlyInProcess.nバーからの距離dot.Taiko < -500 ) && ( cChipCurrentlyInProcess.n発声時刻ms <= n現在時刻ms && cChipCurrentlyInProcess.nノーツ終了時刻ms >= n現在時刻ms ) ) ) + //( ( chip現在処理中の連打チップ.nバーからのノーツ末端距離dot.Taiko < -500 ) && ( chip現在処理中の連打チップ.n発声時刻ms <= CSound管理.rc演奏用タイマ.n現在時刻ms && chip現在処理中の連打チップ.nノーツ終了時刻ms >= CSound管理.rc演奏用タイマ.n現在時刻ms ) ) ) + //( ( pChip.n発声時刻ms <= CSound管理.rc演奏用タイマ.n現在時刻ms && pChip.nノーツ終了時刻ms >= CSound管理.rc演奏用タイマ.n現在時刻ms ) ) ) + { + if( bAutoPlay ) + this.tチップのヒット処理( n現在時刻ms, cChipCurrentlyInProcess, E楽器パート.TAIKO, false, 0, nPlayer ); + } + } + } + + //if((!pChip.bHit || pChip.bShow) && (pChip.nバーからの距離dot.Drums < 0)) + //{ + // NowProcessingChip[pChip.nPlayerSide] = nCurrentTopChip; + //} + + if(pChip.nPlayerSide == nPlayer && pChip.n発声時刻ms >= n現在時刻ms) + { + NowProcessingChip[pChip.nPlayerSide] = nCurrentTopChip; + } + + switch ( pChip.nチャンネル番号 ) + { +#region [ 01: BGM ] + case 0x01: // BGM + if ( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) ) + { + pChip.bHit = true; + if ( configIni.bBGM音を発声する ) + { + dTX.tチップの再生(pChip, CSound管理.rc演奏用タイマ.n前回リセットした時のシステム時刻 + (long)(pChip.n発声時刻ms / (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0))); + } + } + break; +#endregion +#region [ 03: BPM変更 ] + case 0x03: // BPM変更 + if ( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) ) + { + pChip.bHit = true; + this.actPlayInfo.dbBPM = dTX.BASEBPM; //2016.07.10 kairera0467 太鼓の仕様にあわせて修正。(そもそもの仕様が不明&コードミス疑惑) + } + break; +#endregion +#region [ 08: BPM変更(拡張) ] + case 0x08: // BPM変更(拡張) + //CDTXMania.act文字コンソール.tPrint( 414 + pChip.nバーからの距離dot.Drums + 4, 192, C文字コンソール.Eフォント種別.白, "BRANCH START" + " " + pChip.n整数値.ToString() ); + if ( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) ) + { + pChip.bHit = true; + //if( pChip.nコース == this.n現在のコース[ nPlayer ] ) + //{ + //double bpm = ( dTX.listBPM[ pChip.n整数値_内部番号 ].dbBPM値 * ( ( (double) configIni.n演奏速度 ) / 20.0 ) ); + //int nUnit = (int)((60.0 / ( bpm ) / this.actChara.nキャラクター通常モーション枚数 ) * 1000 ); + //int nUnit_gogo = (int)((60.0 / ( bpm ) / this.actChara.nキャラクターゴーゴーモーション枚数 ) * 1000 ); + //this.actChara.ct通常モーション = new CCounter( 0, this.actChara.nキャラクター通常モーション枚数 - 1, nUnit, CDTXMania.Timer ); + //this.actChara.ctゴーゴーモーション = new CCounter(0, this.actChara.nキャラクターゴーゴーモーション枚数 - 1, nUnit_gogo * 2, CDTXMania.Timer); + + //} + } + break; +#endregion + +#region [ 11-1f: 太鼓1P ] + case 0x11: + case 0x12: + case 0x13: + case 0x14: + { + this.t進行描画_チップ_Taiko( configIni, ref dTX, ref pChip, nPlayer ); + } + break; + + case 0x15: + case 0x16: + case 0x17: + { + //2015.03.28 kairera0467 + //描画順序を変えるため、メイン処理だけをこちらに残して描画処理は分離。 + + //this.t進行描画_チップ_Taiko連打(configIni, ref dTX, ref pChip); + //2015.04.13 kairera0467 ここを外さないと恋文2000の連打に対応できず、ここをつけないと他のコースと重なっている連打をどうにもできない。 + //常時実行メソッドに渡したら対応できた!? + //if ((!pChip.bHit && (pChip.nバーからの距離dot.Drums < 0))) + { + if( ( pChip.n発声時刻ms <= (int)n現在時刻ms && pChip.nノーツ終了時刻ms >= (int)n現在時刻ms ) ) + { + //if( this.n現在のコース == pChip.nコース ) + if( pChip.b可視 == true ) + this.chip現在処理中の連打チップ[ nPlayer ] = pChip; + } + } + if (pChip.n描画優先度 <= 0) + this.t進行描画_チップ_Taiko連打(configIni, ref dTX, ref pChip, nPlayer); + } + + break; + case 0x18: + { + if( ( !pChip.bHit && (pChip.nバーからの距離dot.Drums < 0 ) ) ) + { + this.b連打中[ nPlayer ] = false; + this.actRoll.b表示[ nPlayer ] = false; + this.actChara.b風船連打中[nPlayer] = false; + pChip.bHit = true; + if( chip現在処理中の連打チップ[ nPlayer ] != null ) + { + chip現在処理中の連打チップ[ nPlayer ].bHit = true; + if (nPlayer == 0 && chip現在処理中の連打チップ[nPlayer].nBalloon > chip現在処理中の連打チップ[nPlayer].nRollCount && chip現在処理中の連打チップ[nPlayer].nRollCount > 0 && actChara.CharaAction_Balloon_Miss != null) + { + if (TJAPlayer3.Skin.Game_Chara_Ptn_Balloon_Miss > 0) + { + actChara.アクションタイマーリセット(nPlayer); + actChara.bマイどんアクション中[nPlayer] = true; + actChara.CharaAction_Balloon_Miss[nPlayer] = new CCounter(0, TJAPlayer3.Skin.Game_Chara_Ptn_Balloon_Miss - 1, TJAPlayer3.Skin.Game_Chara_Balloon_Timer, TJAPlayer3.Timer); + if (actChara.CharaAction_Balloon_Delay != null) actChara.CharaAction_Balloon_Delay[nPlayer] = new CCounter(0, TJAPlayer3.Skin.Game_Chara_Balloon_Delay - 1, 1, TJAPlayer3.Timer); + } + } + chip現在処理中の連打チップ[nPlayer] = null; + + } + this.eRollState = E連打State.none; + } + if( pChip.n描画優先度 <= 0 ) + this.t進行描画_チップ_Taiko連打(configIni, ref dTX, ref pChip, nPlayer); + } + + break; + case 0x19: + case 0x1c: + case 0x1d: + case 0x1e: + break; + + case 0x1a: + case 0x1b: + case 0x1f: + { + this.t進行描画_チップ_Taiko( configIni, ref dTX, ref pChip, nPlayer ); + } + break; +#endregion +#region [ 20-2F: EmptySlot ] + case 0x20: + case 0x21: + case 0x22: + case 0x23: + case 0x24: + case 0x25: + case 0x26: + case 0x27: + case 0x28: + case 0x29: + case 0x2a: + case 0x2b: + case 0x2c: + case 0x2d: + case 0x2e: + case 0x2f: + break; +#endregion +#region [ 31-3f: EmptySlot ] + case 0x31: + case 0x32: + case 0x33: + case 0x34: + case 0x35: + case 0x36: + case 0x37: + case 0x38: + case 0x39: + case 0x3a: + case 0x3b: + case 0x3c: + case 0x3d: + case 0x3e: + case 0x3f: + break; +#endregion + +#region [ 50: 小節線 ] + case 0x50: // 小節線 + { + if ( !pChip.bHit && ( pChip.nバーからの距離dot.Taiko < 0 ) ) + { + this.actChara.b演奏中[nPlayer] = true; + if( this.actPlayInfo.NowMeasure[nPlayer] == 0 ) + { + for (int i = 0; i < 2; i++) + { + ctChipAnime[i] = new CCounter(0, 3, 60.0 / TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM * 1 / 4 / (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0), CSound管理.rc演奏用タイマ); + } + + if (TJAPlayer3.Skin.Game_Chara_Ptn_Normal != 0) + { + double dbPtn_Normal = (60.0 / TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM) * TJAPlayer3.Skin.Game_Chara_Beat_Normal / this.actChara.arモーション番号.Length / (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0); + this.actChara.ctChara_Normal[nPlayer] = new CCounter(0, this.actChara.arモーション番号.Length - 1, dbPtn_Normal, CSound管理.rc演奏用タイマ); + } + else + { + this.actChara.ctChara_Normal[nPlayer] = new CCounter(); + } + if (TJAPlayer3.Skin.Game_Chara_Ptn_Clear != 0) + { + double dbPtn_Clear = (60.0 / TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM) * TJAPlayer3.Skin.Game_Chara_Beat_Clear / this.actChara.arクリアモーション番号.Length / (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0); + this.actChara.ctChara_Clear[nPlayer] = new CCounter(0, this.actChara.arクリアモーション番号.Length - 1, dbPtn_Clear, CSound管理.rc演奏用タイマ); + } + else + { + this.actChara.ctChara_Clear[nPlayer] = new CCounter(); + } + if (TJAPlayer3.Skin.Game_Chara_Ptn_GoGo != 0) + { + double dbPtn_GoGo = (60.0 / TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM) * TJAPlayer3.Skin.Game_Chara_Beat_GoGo / this.actChara.arゴーゴーモーション番号.Length / (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0); + this.actChara.ctChara_GoGo[nPlayer] = new CCounter(0, this.actChara.arゴーゴーモーション番号.Length - 1, dbPtn_GoGo, CSound管理.rc演奏用タイマ); + } + else + { + this.actChara.ctChara_GoGo[nPlayer] = new CCounter(); + } + if (TJAPlayer3.Skin.Game_Dancer_Ptn != 0) + { + double dbUnit_dancer = (((60 / (TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM))) / this.actDancer.ar踊り子モーション番号.Length) / (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0); + this.actDancer.ct踊り子モーション = new CCounter(0, this.actDancer.ar踊り子モーション番号.Length - 1, dbUnit_dancer * TJAPlayer3.Skin.Game_Dancer_Beat, CSound管理.rc演奏用タイマ); + } + else + { + this.actDancer.ct踊り子モーション = new CCounter(); + } + if (TJAPlayer3.Skin.Game_Mob_Ptn != 0 && TJAPlayer3.Skin.Game_Mob_Beat > 0 ) //2018.6.15 Game_Mob_Beatが0のままCCounter生成をされて無限ループが発生しないよう対策 + { + this.actMob.ctMob = new CCounter(1, 180, 60.0 / TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM * TJAPlayer3.Skin.Game_Mob_Beat / 180 / (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0), CSound管理.rc演奏用タイマ); + this.actMob.ctMobPtn = new CCounter(0, TJAPlayer3.Skin.Game_Mob_Ptn - 1, 60.0 / TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM * TJAPlayer3.Skin.Game_Mob_Ptn_Beat / TJAPlayer3.Skin.Game_Mob_Ptn / (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0), CSound管理.rc演奏用タイマ); + } + else + { + this.actMob.ctMob = new CCounter(); + this.actMob.ctMobPtn = new CCounter(); + } + TJAPlayer3.stage演奏ドラム画面.PuchiChara.ChangeBPM(60.0 / TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM / (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)); + } + if (!bPAUSE)//2020.07.08 Mr-Ojii KabanFriends氏のコードを参考に + { + actPlayInfo.NowMeasure[nPlayer] = pChip.n整数値_内部番号; + + //this.actChara.ctChara_Normal = new CCounter( 0, this.actChara.arモーション番号.Length - 1, dbPtn_Normal, CSound管理.rc演奏用タイマ ); + //this.actChara.ctChara_GoGo = new CCounter( 0, this.actChara.arゴーゴーモーション番号.Length - 1, dbPtn_GoGo, CSound管理.rc演奏用タイマ ); + //this.actChara.ctChara_Clear = new CCounter( 0, this.actChara.arクリアモーション番号.Length - 1, dbPtn_Clear, CSound管理.rc演奏用タイマ ); + + //this.ct制御タイマ = new CCounter(0, 10, 500, CSound管理.rc演奏用タイマ); + + //for (int i = 0; i < 2; i++) + //{ + // ctChipAnime[i] = new CCounter(0, 3, 60.0 / CDTXMania.stage演奏ドラム画面.actPlayInfo.dbBPM * 1 / 4, CSound管理.rc演奏用タイマ); + //} + + ////this.actChara.ctChara_Normal.n現在の値 = 0; + + ////this.actDancer.ct通常モーション = new CCounter( 0, this.actDancer.arモーション番号_通常.Length - 1, ( dbUnit * 4.0) / this.actDancer.arモーション番号_通常.Length, CSound管理.rc演奏用タイマ ); + + //// ↓踊り子・モブ↓ + //this.actDancer.ct踊り子モーション = new CCounter(0, this.actDancer.ar踊り子モーション番号.Length - 1, (dbUnit * CDTXMania.Skin.Game_Dancer_Beat) / this.actDancer.ar踊り子モーション番号.Length, CSound管理.rc演奏用タイマ); + ////this.actChara.ctモブモーション = new CCounter(0, this.actChara.arモブモーション番号.Length - 1, (dbUnit) / this.actChara.arモブモーション番号.Length, CSound管理.rc演奏用タイマ); + //this.actDancer.ct踊り子モーション.n現在の値 = 0; + ////this.actChara.ctモブモーション.n現在の値 = 0; + //this.actMob.ctMob = new CCounter(1, 180, 60.0 / CDTXMania.stage演奏ドラム画面.actPlayInfo.dbBPM * CDTXMania.Skin.Game_Mob_Beat / 180, CSound管理.rc演奏用タイマ); + //this.actMob.ctMobPtn = new CCounter(0, CDTXMania.Skin.Game_Mob_Ptn - 1, 60.0 / CDTXMania.stage演奏ドラム画面.actPlayInfo.dbBPM * CDTXMania.Skin.Game_Mob_Ptn_Beat / CDTXMania.Skin.Game_Mob_Ptn, CSound管理.rc演奏用タイマ); + //// ↑踊り子・モブ↑ + ////this.actDancer.ctモブ = new CCounter( 1.0, 16.0, (( dbUnit / 16.0 )), CSound管理.rc演奏用タイマ ); + + //if (CDTXMania.Skin.Game_Chara_Ptn_Clear != 0 ) + //{ + // double dbUnit_max = ( ( ( 60.0 / ( CDTXMania.stage演奏ドラム画面.actPlayInfo.dbBPM ) ) ) / this.actChara.arクリアモーション番号.Length ); + // this.actChara.ctChara_Clear = new CCounter( 0, this.actChara.arクリアモーション番号.Length - 1, dbPtn_Clear, CSound管理.rc演奏用タイマ ); + //} + //if(CDTXMania.Skin.Game_Chara_Ptn_GoGo != 0 ) + //{ + // double dbUnit_max_gogo = ( ( ( 60.0 / ( CDTXMania.stage演奏ドラム画面.actPlayInfo.dbBPM ) ) ) / this.actChara.arゴーゴーモーション番号.Length ); + // this.actChara.ctChara_GoGo = new CCounter( 0, this.actChara.arゴーゴーモーション番号.Length - 1, dbPtn_GoGo, CSound管理.rc演奏用タイマ ); + //} + } + pChip.bHit = true; + } + this.t進行描画_チップ_小節線( configIni, ref dTX, ref pChip, nPlayer ); + break; + } +#endregion +#region [ 51: 拍線 ] + case 0x51: // 拍線 + if ( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) ) + { + pChip.bHit = true; + } + //太鼓では拍線を使わない。 + //this.txチップ.t2D描画( CDTXMania.app.Device, 295, configIni.bReverse.Drums ? ( ( 0x38 + pChip.nバーからの距離dot.Drums ) - 1 ) : ( ( 567 - pChip.nバーからの距離dot.Drums ) - 1 ), new Rectangle( 0, 772, 559, 2 ) ); + + //this.t進行描画_チップ_小節線( configIni, ref dTX, ref pChip ); + break; +#endregion +#region [ 54: 動画再生 ] + case 0x54: // 動画再生 + if ( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) ) + { + pChip.bHit = true; + if ( configIni.bAVI有効 ) + { + switch ( pChip.eAVI種別 ) + { + case EAVI種別.AVI: + if ( pChip.rAVI != null ) + { + this.actAVI.Start( pChip.nチャンネル番号, pChip.rAVI, pChip.rDShow, 278, 355, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, pChip.n発声時刻ms ); + } + break; + case EAVI種別.Unknown: + if ( pChip.rAVI != null || pChip.rDShow != null ) + { + this.actAVI.Start( pChip.nチャンネル番号, pChip.rAVI, pChip.rDShow, 278, 355, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, pChip.n発声時刻ms ); + } + break; + } + } + } + break; +#endregion +#region[ 55-60: EmptySlot ] + case 0x55: + case 0x56: + case 0x57: + case 0x58: + case 0x59: + break; +#endregion +#region [ 61-89: EmptySlot ] + case 0x60: + case 0x61: + case 0x62: + case 0x63: + case 0x64: + case 0x65: + case 0x66: + case 0x67: + case 0x68: + case 0x69: + case 0x70: + case 0x71: + case 0x72: + case 0x73: + case 0x74: + case 0x75: + case 0x76: + case 0x77: + case 0x78: + case 0x79: + case 0x80: + case 0x81: + case 0x82: + case 0x83: + case 0x84: + case 0x85: + case 0x86: + case 0x87: + case 0x88: + case 0x89: + break; +#endregion + +#region[ 90-9A: EmptySlot ] + case 0x90: + case 0x91: + case 0x92: + case 0x93: + case 0x94: + case 0x95: + case 0x96: + case 0x97: + case 0x98: + case 0x99: + case 0x9A: + break; +#endregion + +#region[ 9B-9F: 太鼓 ] + case 0x9B: + // 段位認定モードの幕アニメーション + if ( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0)) + { + pChip.bHit = true; + this.actPanel.t歌詞テクスチャを削除する(); + if (pChip.nコース == this.n現在のコース[nPlayer]) + { + if(ListDan_Number != 0 && actDan.FirstSectionAnime) + { + if (this.actDan.GetFailedAllChallenges()) + { + this.n現在のトップChip = TJAPlayer3.DTX.listChip.Count - 1; // 終端にシーク + IsDanFailed = true; + return true; + } + this.actDan.Start(this.ListDan_Number); + ListDan_Number++; + } + else + { + actDan.FirstSectionAnime = true; + } + } + } + break; + //0x9C BPM変化(アニメーション用) + case 0x9C: + //CDTXMania.act文字コンソール.tPrint( 414 + pChip.nバーからの距離dot.Taiko + 8, 192, C文字コンソール.Eフォント種別.白, "BPMCHANGE" ); + if ( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) ) + { + pChip.bHit = true; + if( pChip.nコース == this.n現在のコース[ nPlayer ] ) + { + if ( dTX.listBPM.TryGetValue( pChip.n整数値_内部番号, out CDTX.CBPM cBPM ) ) + { + this.actPlayInfo.dbBPM = cBPM.dbBPM値;// + dTX.BASEBPM; + } + + + for (int i = 0; i < 2; i++) + { + ctChipAnime[i] = new CCounter(0, 3, 60.0 / TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM * 1 / 4, CSound管理.rc演奏用タイマ); + } + + if (TJAPlayer3.Skin.Game_Chara_Ptn_Normal != 0) + { + double dbPtn_Normal = (60.0 / TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM) * TJAPlayer3.Skin.Game_Chara_Beat_Normal / this.actChara.arモーション番号.Length / (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0); + this.actChara.ctChara_Normal[nPlayer] = new CCounter(0, this.actChara.arモーション番号.Length - 1, dbPtn_Normal, CSound管理.rc演奏用タイマ); + } else + { + this.actChara.ctChara_Normal[nPlayer] = new CCounter(); + } + if (TJAPlayer3.Skin.Game_Chara_Ptn_Clear != 0) + { + double dbPtn_Clear = (60.0 / TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM) * TJAPlayer3.Skin.Game_Chara_Beat_Clear / this.actChara.arクリアモーション番号.Length / (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0); + this.actChara.ctChara_Clear[nPlayer] = new CCounter(0, this.actChara.arクリアモーション番号.Length - 1, dbPtn_Clear, CSound管理.rc演奏用タイマ); + } + else + { + this.actChara.ctChara_Clear[nPlayer] = new CCounter(); + } + if (TJAPlayer3.Skin.Game_Chara_Ptn_GoGo != 0) + { + double dbPtn_GoGo = (60.0 / TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM) * TJAPlayer3.Skin.Game_Chara_Beat_GoGo / this.actChara.arゴーゴーモーション番号.Length / (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0); + this.actChara.ctChara_GoGo[nPlayer] = new CCounter(0, this.actChara.arゴーゴーモーション番号.Length - 1, dbPtn_GoGo, CSound管理.rc演奏用タイマ); + } else + { + this.actChara.ctChara_GoGo[nPlayer] = new CCounter(); + } + if (TJAPlayer3.Skin.Game_Dancer_Ptn != 0) + { + double dbUnit_dancer = (((60 / (TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM))) / this.actDancer.ar踊り子モーション番号.Length) / (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0); + this.actDancer.ct踊り子モーション = new CCounter(0, this.actDancer.ar踊り子モーション番号.Length - 1, dbUnit_dancer * TJAPlayer3.Skin.Game_Dancer_Beat, CSound管理.rc演奏用タイマ); + } + else + { + this.actDancer.ct踊り子モーション = new CCounter(); + } + if (TJAPlayer3.Skin.Game_Mob_Ptn != 0) + { + this.actMob.ctMobPtn = new CCounter(0, TJAPlayer3.Skin.Game_Mob_Ptn - 1, 60.0 / TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM * TJAPlayer3.Skin.Game_Mob_Ptn_Beat / TJAPlayer3.Skin.Game_Mob_Ptn / (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0), CSound管理.rc演奏用タイマ); + this.actMob.ctMobPtn = new CCounter(0, TJAPlayer3.Skin.Game_Mob_Ptn - 1, 60.0 / TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM * TJAPlayer3.Skin.Game_Mob_Ptn_Beat / TJAPlayer3.Skin.Game_Mob_Ptn, CSound管理.rc演奏用タイマ); + } else + { + this.actMob.ctMob = new CCounter(); + this.actMob.ctMobPtn = new CCounter(); + } + + TJAPlayer3.stage演奏ドラム画面.PuchiChara.ChangeBPM(60.0 / TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM); + //this.actDancer.ct踊り子モーション = new CCounter(0, this.actDancer.ar踊り子モーション番号.Length - 1, (dbUnit * CDTXMania.Skin.Game_Dancer_Beat) / this.actDancer.ar踊り子モーション番号.Length, CSound管理.rc演奏用タイマ); + //this.actChara.ctモブモーション = new CCounter(0, this.actChara.arモブモーション番号.Length - 1, (dbUnit) / this.actChara.arモブモーション番号.Length, CSound管理.rc演奏用タイマ); + //#if C_82D982F182AF82CD82A282AF82A2 + /* + * for( int dancer = 0; dancer < 5; dancer++ ) + this.actDancer.st投げ上げ[ dancer ].ct進行 = new CCounter( 0, this.actDancer.arモーション番号_登場.Length - 1, dbUnit / this.actDancer.arモーション番号_登場.Length, CSound管理.rc演奏用タイマ ); + + this.actDancer.ct通常モーション = new CCounter( 0, this.actDancer.arモーション番号_通常.Length - 1, ( dbUnit * 4 ) / this.actDancer.arモーション番号_通常.Length, CSound管理.rc演奏用タイマ ); + this.actDancer.ctモブ = new CCounter( 1.0, 16.0, (int)((60.0 / bpm / 16.0 ) * 1000 ), CSound管理.rc演奏用タイマ ); +//#endif + */ + } + + } + break; + + case 0x9D: //SCROLL + if ( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) ) + { + pChip.bHit = true; + //if ( dTX.listSCROLL.ContainsKey( pChip.n整数値_内部番号 ) ) + //{ + //this.actPlayInfo.dbBPM = ( dTX.listBPM[ pChip.n整数値_内部番号 ].dbBPM値 * ( ( (double) configIni.n演奏速度 ) / 20.0 ) );// + dTX.BASEBPM; + //} + } + break; + + case 0x9E: //ゴーゴータイム + if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) ) + { + pChip.bHit = true; + this.bIsGOGOTIME[ nPlayer ] = true; + //double dbUnit = (((60.0 / (CDTXMania.stage演奏ドラム画面.actPlayInfo.dbBPM)))); + double dbUnit = (((60.0 / pChip.dbBPM))); + + { + if (TJAPlayer3.Skin.Game_Chara_Ptn_GoGoStart != 0 && actChara.CharaAction_Balloon_Delay[nPlayer].b終了値に達した) + { + if (TJAPlayer3.stage演奏ドラム画面.actGauge.db現在のゲージ値[nPlayer] < 100) + { + // 魂ゲージMAXではない + // ゴーゴースタート_ノーマル + this.actChara.アクションタイマーリセット(nPlayer); + this.actChara.ctキャラクターアクション_ゴーゴースタート[nPlayer] = new CCounter(0, TJAPlayer3.Skin.Game_Chara_Ptn_GoGoStart - 1, (dbUnit / TJAPlayer3.Skin.Game_Chara_Ptn_GoGoStart) * 2, CSound管理.rc演奏用タイマ); + this.actChara.ctキャラクターアクション_ゴーゴースタート[nPlayer].t進行db(); + this.actChara.ctキャラクターアクション_ゴーゴースタート[nPlayer].n現在の値 = 0; + this.actChara.bマイどんアクション中[nPlayer] = true; + //this.actChara.マイどん_アクション_10コンボ(); + } + } + if (TJAPlayer3.Skin.Game_Chara_Ptn_GoGoStart_Max != 0 && actChara.CharaAction_Balloon_Delay[nPlayer].b終了値に達した) + { + if (TJAPlayer3.stage演奏ドラム画面.actGauge.db現在のゲージ値[nPlayer] >= 100) + { + // 魂ゲージMAX + // ゴーゴースタート_MAX + this.actChara.アクションタイマーリセット(nPlayer); + this.actChara.ctキャラクターアクション_ゴーゴースタートMAX[nPlayer] = new CCounter(0, TJAPlayer3.Skin.Game_Chara_Ptn_GoGoStart_Max - 1, (dbUnit / TJAPlayer3.Skin.Game_Chara_Ptn_GoGoStart_Max) * 2, CSound管理.rc演奏用タイマ); + this.actChara.ctキャラクターアクション_ゴーゴースタートMAX[nPlayer].t進行db(); + this.actChara.ctキャラクターアクション_ゴーゴースタートMAX[nPlayer].n現在の値 = 0; + this.actChara.bマイどんアクション中[nPlayer] = true; + } + } + + } + TJAPlayer3.stage演奏ドラム画面.actLaneTaiko.GOGOSTART(); + } + break; + case 0x9F: //ゴーゴータイム + if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) ) + { + pChip.bHit = true; + this.bIsGOGOTIME[ nPlayer ] = false; + } + break; +#endregion + +#region [ a0-a8: EmptySlot ] + case 0xa0: + case 0xa1: + case 0xa2: + case 0xa3: + case 0xa4: + case 0xa5: + case 0xa6: + case 0xa7: + case 0xa8: + break; +#endregion +#region [ B1~BC EmptySlot ] + case 0xb1: + case 0xb2: + case 0xb3: + case 0xb4: + case 0xb5: + case 0xb6: + case 0xb7: + case 0xb8: + case 0xb9: + case 0xba: + case 0xbb: + case 0xbc: + break; +#endregion +#region [ c4, c7, d5-d9: EmptySlot ] + case 0xc4: + case 0xc7: + case 0xd5: + case 0xd6: // BGA画像入れ替え + case 0xd7: + case 0xd8: + case 0xd9: + //case 0xe0: + if ( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) ) + { + pChip.bHit = true; + } + break; +#endregion + +#region [ da: ミキサーへチップ音追加 ] + case 0xDA: + if ( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) ) + { +//Debug.WriteLine( "[DA(AddMixer)] BAR=" + pChip.n発声位置 / 384 + " ch=" + pChip.nチャンネル番号.ToString( "x2" ) + ", wav=" + pChip.n整数値.ToString( "x2" ) + ", time=" + pChip.n発声時刻ms ); + pChip.bHit = true; + if ( listWAV.TryGetValue( pChip.n整数値_内部番号, out CDTX.CWAV wc ) ) // 参照が遠いので後日最適化する + { + for ( int i = 0; i < nPolyphonicSounds; i++ ) + { + if ( wc.rSound[ i ] != null ) + { + //CDTXMania.Sound管理.AddMixer( wc.rSound[ i ] ); + AddMixer( wc.rSound[ i ], pChip.b演奏終了後も再生が続くチップである ); + } + } + } + } + break; +#endregion +#region [ db: ミキサーからチップ音削除 ] + case 0xDB: + if ( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) ) + { +//Debug.WriteLine( "[DB(RemoveMixer)] BAR=" + pChip.n発声位置 / 384 + " ch=" + pChip.nチャンネル番号.ToString( "x2" ) + ", wav=" + pChip.n整数値.ToString( "x2" ) + ", time=" + pChip.n発声時刻ms ); + pChip.bHit = true; + if ( listWAV.TryGetValue( pChip.n整数値_内部番号, out CDTX.CWAV wc ) ) // 参照が遠いので後日最適化する + { + for ( int i = 0; i < nPolyphonicSounds; i++ ) + { + if ( wc.rSound[ i ] != null ) + { + //CDTXMania.Sound管理.RemoveMixer( wc.rSound[ i ] ); + if ( !wc.rSound[ i ].b演奏終了後も再生が続くチップである ) // #32248 2013.10.16 yyagi + { // DTX終了後も再生が続くチップの0xDB登録をなくすことはできず。 + RemoveMixer( wc.rSound[ i ] ); // (ミキサー解除のタイミングが遅延する場合の対応が面倒なので。) + } // そこで、代わりにフラグをチェックしてミキサー削除ロジックへの遷移をカットする。 + } + } + } + } + break; +#endregion + +#region[ dc-df:太鼓(特殊命令) ] + case 0xDC: //DELAY + if ( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) ) + { + pChip.bHit = true; + //if ( dTX.listDELAY.ContainsKey( pChip.n整数値_内部番号 ) ) + //{ + //this.actPlayInfo.dbBPM = ( dTX.listBPM[ pChip.n整数値_内部番号 ].dbBPM値 * ( ( (double) configIni.n演奏速度 ) / 20.0 ) );// + dTX.BASEBPM; + //} + } + break; + case 0xDD: //SECTION + if (!pChip.bHit && (pChip.nバーからの距離dot.Drums < -10)) + { + // 分岐毎にリセットしていたのでSECTIONの命令が来たらリセットする。 + this.tBranchReset(nPlayer); + pChip.bHit = true; + } + break; + + case 0xDE: //Judgeに応じたCourseを取得 + if (!pChip.bHit && (pChip.nバーからの距離dot.Drums < 0)) + { + this.b強制分岐譜面[nPlayer] = false; + //分岐の種類はプレイヤー関係ないと思う + this.eBranch種類 = pChip.e分岐の種類; + this.nBranch条件数値A = pChip.n条件数値A; + this.nBranch条件数値B = pChip.n条件数値B; + if (!this.bLEVELHOLD[nPlayer]) + { + //成仏2000にある-2,-1だったら達人に強制分岐みたいな。 + this.t強制用条件かを判断する(pChip.n条件数値A, pChip.n条件数値B, nPlayer); + + TJAPlayer3.stage演奏ドラム画面.bUseBranch[nPlayer] = true; + this.tBranchJudge(pChip, this.CBranchScore[nPlayer].cBigNotes, this.CBranchScore[nPlayer].nScore, this.CBranchScore[nPlayer].nRoll, this.CBranchScore[nPlayer].nGreat, this.CBranchScore[nPlayer].nGood, this.CBranchScore[nPlayer].nMiss, nPlayer); + + if (this.b強制分岐譜面[nPlayer])//強制分岐譜面だったら次回コースをそのコースにセット + this.n次回のコース[nPlayer] = this.E強制コース[nPlayer]; + + this.t分岐処理(this.n次回のコース[nPlayer], nPlayer, pChip.n分岐時刻ms, pChip.e分岐の種類); + + TJAPlayer3.stage演奏ドラム画面.actLaneTaiko.t分岐レイヤー_コース変化(TJAPlayer3.stage演奏ドラム画面.actLaneTaiko.stBranch[nPlayer].nAfter, this.n次回のコース[nPlayer], nPlayer); + TJAPlayer3.stage演奏ドラム画面.actMtaiko.tBranchEvent(TJAPlayer3.stage演奏ドラム画面.actMtaiko.After[nPlayer], this.n次回のコース[nPlayer], nPlayer); + this.n現在のコース[nPlayer] = this.n次回のコース[nPlayer]; + } + this.n分岐した回数[nPlayer]++; + pChip.bHit = true; + } + break; + case 0x52://End処理 + if (!pChip.bHit && (pChip.nバーからの距離dot.Drums < 0)) + { + + pChip.bHit = true; + } + + break; + case 0xE0: + //if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) ) + //{ + //#BARLINEONと#BARLINEOFF + //演奏中は使用しません。 + //} + break; + case 0xE1: + if (!pChip.bHit && (pChip.nバーからの距離dot.Drums < 0)) + { + //LEVELHOLD + this.bLEVELHOLD[nPlayer] = true; + } + break; + case 0xE2: + if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) ) + { + if (nPlayer == 0) + { + TJAPlayer3.stage演奏ドラム画面.actLaneTaiko.t判定枠移動(dTX.listJPOSSCROLL[nJPOSSCROLL[nPlayer]].db移動時間, dTX.listJPOSSCROLL[nJPOSSCROLL[nPlayer]].n移動距離px, dTX.listJPOSSCROLL[nJPOSSCROLL[nPlayer]].n移動方向); + } + else + { + TJAPlayer3.stage演奏ドラム画面.actLaneTaiko.t判定枠移動2(dTX.listJPOSSCROLL[nJPOSSCROLL[nPlayer]].db移動時間, dTX.listJPOSSCROLL[nJPOSSCROLL[nPlayer]].n移動距離px, dTX.listJPOSSCROLL[nJPOSSCROLL[nPlayer]].n移動方向); + } + this.nJPOSSCROLL[ nPlayer ]++; + pChip.bHit = true; + } + break; +#endregion +#region[ f1: 歌詞 ] + case 0xF1: + if (!pChip.bHit && (pChip.nバーからの距離dot.Drums < 0)) + { + if (dTX.listLyric.Count > ShownLyric[nPlayer] && dTX.nPlayerSide == nPlayer) + { + this.actPanel.t歌詞テクスチャを生成する(dTX.listLyric[ShownLyric[nPlayer]]); + ShownLyric[nPlayer]++; + } + pChip.bHit = true; + } + break; +#endregion +#region[ ff: 譜面の強制終了 ] + //バグで譜面がとてつもないことになっているため、#ENDがきたらこれを差し込む。 + case 0xFF: + if ( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) ) + { + if (TJAPlayer3.ConfigIni.bTokkunMode) + { + foreach (CDTX.CWAV cwav in TJAPlayer3.DTX.listWAV.Values) + { + for (int i = 0; i < nPolyphonicSounds; i++) + { + if ((cwav.rSound[i] != null) && cwav.rSound[i].b再生中) + { + return false; + } + } + } + } + pChip.bHit = true; + return true; + } + break; +#endregion + +#region [ その他(未定義) ] + default: + if ( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) ) + { + pChip.bHit = true; + } + break; +#endregion + } + + } + return false; + } + + protected bool t進行描画_チップ_連打( E楽器パート ePlayMode, int nPlayer ) + { + if ( ( base.eフェーズID == CStage.Eフェーズ.演奏_STAGE_FAILED ) || ( base.eフェーズID == CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) ) + { + return true; + } + if ( ( this.n現在のトップChip == -1 ) || ( this.n現在のトップChip >= listChip[ nPlayer ].Count ) ) + { + return true; + } + + CConfigIni configIni = TJAPlayer3.ConfigIni; + + CDTX dTX = TJAPlayer3.DTX; + bool bAutoPlay = false; + switch( nPlayer ) //2017.08.11 kairera0467 + { + case 0: + bAutoPlay = configIni.b太鼓パートAutoPlay; + break; + case 1: + bAutoPlay = configIni.b太鼓パートAutoPlay2P; + dTX = TJAPlayer3.DTX_2P; + break; + default: + break; + } + + var n現在時刻ms = (long)(CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)); + + //for ( int nCurrentTopChip = this.n現在のトップChip; nCurrentTopChip < dTX.listChip.Count; nCurrentTopChip++ ) + for ( int nCurrentTopChip = dTX.listChip.Count - 1; nCurrentTopChip > 0; nCurrentTopChip-- ) + { + CDTX.CChip pChip = dTX.listChip[ nCurrentTopChip ]; + + if ( !pChip.bHit ) + { + bool bRollChip = pChip.nチャンネル番号 >= 0x15 && pChip.nチャンネル番号 <= 0x19; + if( bRollChip && ( ( pChip.e楽器パート != E楽器パート.UNKNOWN ) ) ) + { + int instIndex = (int) pChip.e楽器パート; + if( pChip.nバーからの距離dot[instIndex] < -40 ) + { + if ( this.e指定時刻からChipのJUDGEを返す( n現在時刻ms, pChip ) == E判定.Miss ) + { + this.tチップのヒット処理( n現在時刻ms, pChip, E楽器パート.TAIKO, false, 0, nPlayer ); + } + } + } + } + + switch ( pChip.nチャンネル番号 ) + { +#region[ 15-19: 連打 ] + case 0x15: //連打 + case 0x16: //連打(大) + case 0x17: //風船 + case 0x18: //連打終了 + case 0x19: + { + if( pChip.n描画優先度 >= 1 ) + this.t進行描画_チップ_Taiko連打( configIni, ref dTX, ref pChip, nPlayer ); + } + break; +#endregion + } + + } + return false; + } + + public void tBranchReset(int player) + { + if (player != -1) + { + this.CBranchScore[player].cBigNotes.nGreat = 0; + this.CBranchScore[player].cBigNotes.nGood = 0; + this.CBranchScore[player].cBigNotes.nMiss = 0; + this.CBranchScore[player].cBigNotes.nRoll = 0; + + this.CBranchScore[player].nGreat = 0; + this.CBranchScore[player].nGood = 0; + this.CBranchScore[player].nMiss = 0; + this.CBranchScore[player].nRoll = 0; + } + else + { + for (int i = 0; i < CBranchScore.Length; i++) + { + this.CBranchScore[i].cBigNotes.nGreat = 0; + this.CBranchScore[i].cBigNotes.nGood = 0; + this.CBranchScore[i].cBigNotes.nMiss = 0; + this.CBranchScore[i].cBigNotes.nRoll = 0; + + this.CBranchScore[i].nGreat = 0; + this.CBranchScore[i].nGood = 0; + this.CBranchScore[i].nMiss = 0; + this.CBranchScore[i].nRoll = 0; + } + } + } + + public void tBranchJudge(CDTX.CChip pChip, CBRANCHSCORE cBRANCHSCORE, int nスコア, int n連打数, int n良, int n可, int n不可, int nPlayer) + { + if (this.b強制的に分岐させた[nPlayer]) return; + + var e種類 = pChip.e分岐の種類; + + //分岐の仕方が同じなので一緒にしていいと思う。 + var b分岐種類が一致 = e種類 == CDTX.E分岐種類.e精度分岐 || e種類 == CDTX.E分岐種類.eスコア分岐; + + + double dbRate = 0; + + if (e種類 == CDTX.E分岐種類.e精度分岐) + { + if ((n良 + n可 + n不可) != 0) + { + dbRate = ((double)n良 / (double)(n良 + n可 + n不可)) * 100.0; + } + } + else if (e種類 == CDTX.E分岐種類.eスコア分岐) + { + dbRate = nスコア; + } + else if (e種類 == CDTX.E分岐種類.e連打分岐) + { + dbRate = n連打数; + } + else if (e種類 == CDTX.E分岐種類.e大音符のみ精度分岐) + { + dbRate = cBRANCHSCORE.nGreat; + } + + + if (b分岐種類が一致) + { + if (dbRate < pChip.n条件数値A) + { + this.nレーン用表示コース[nPlayer] = CDTX.ECourse.eNormal; + this.n次回のコース[nPlayer] = CDTX.ECourse.eNormal; + } + else if (dbRate >= pChip.n条件数値A && dbRate < pChip.n条件数値B) + { + this.nレーン用表示コース[nPlayer] = CDTX.ECourse.eExpert; + this.n次回のコース[nPlayer] = CDTX.ECourse.eExpert; + } + else if (dbRate >= pChip.n条件数値B) + { + this.nレーン用表示コース[nPlayer] = CDTX.ECourse.eMaster; + this.n次回のコース[nPlayer] = CDTX.ECourse.eMaster; + } + + } + else if (e種類 == CDTX.E分岐種類.e連打分岐) + { + if (!(pChip.n条件数値A == 0 && pChip.n条件数値B == 0)) + { + if (dbRate < pChip.n条件数値A) + { + this.nレーン用表示コース[nPlayer] = CDTX.ECourse.eNormal; + this.n次回のコース[nPlayer] = CDTX.ECourse.eNormal; + } + else if (dbRate >= pChip.n条件数値A && dbRate < pChip.n条件数値B) + { + this.nレーン用表示コース[nPlayer] = CDTX.ECourse.eExpert; + this.n次回のコース[nPlayer] = CDTX.ECourse.eExpert; + } + else if (dbRate >= pChip.n条件数値B) + { + this.nレーン用表示コース[nPlayer] = CDTX.ECourse.eMaster; + this.n次回のコース[nPlayer] = CDTX.ECourse.eMaster; + } + } + } + else if (e種類 == CDTX.E分岐種類.e大音符のみ精度分岐) + { + if (!(pChip.n条件数値A == 0 && pChip.n条件数値B == 0)) + { + if (dbRate < pChip.n条件数値A) + { + this.nレーン用表示コース[nPlayer] = CDTX.ECourse.eNormal; + this.n次回のコース[nPlayer] = CDTX.ECourse.eNormal; + } + else if (dbRate >= pChip.n条件数値A && dbRate < pChip.n条件数値B) + { + this.nレーン用表示コース[nPlayer] = CDTX.ECourse.eExpert; + this.n次回のコース[nPlayer] = CDTX.ECourse.eExpert; + } + else if (dbRate >= pChip.n条件数値B) + { + this.nレーン用表示コース[nPlayer] = CDTX.ECourse.eMaster; + this.n次回のコース[nPlayer] = CDTX.ECourse.eMaster; + } + } + } + } + + private CDTX.ECourse[] E強制コース = new CDTX.ECourse[4]; + private void t強制用条件かを判断する(double db条件A, double db条件B, int nPlayer) + { + //Wiki参考 + //成仏 + + if (db条件A == 101 && db条件B == 102) //強制普通譜面 + { + E強制コース[nPlayer] = CDTX.ECourse.eNormal; + this.b強制分岐譜面[nPlayer] = true; + } + else if (db条件A == -1 && db条件B == 101) //強制玄人譜面 + { + E強制コース[nPlayer] = CDTX.ECourse.eExpert; + this.b強制分岐譜面[nPlayer] = true; + } + else if (db条件A == -2 && db条件B == -1) //強制達人譜面 + { + E強制コース[nPlayer] = CDTX.ECourse.eMaster; + this.b強制分岐譜面[nPlayer] = true; + } + } + + public void t分岐処理(CDTX.ECourse n分岐先, int nPlayer, double n発声位置, CDTX.E分岐種類 e分岐種類 = CDTX.E分岐種類.e精度分岐) + { + + CDTX dTX = TJAPlayer3.DTX; + switch ( nPlayer ) + { + case 1: + dTX = TJAPlayer3.DTX_2P; + break; + default: + break; + } + + + for (int A = 0; A < dTX.listChip.Count; A++) + { + var Chip = dTX.listChip[A].nチャンネル番号; + var bDontDeleteFlag = Chip >= 0x11 && Chip <= 0x19; + var bRollAllFlag = Chip >= 0x15 && Chip <= 0x19; + var bBalloonOnlyFlag = Chip == 0x17; + var bRollOnlyFlag = Chip >= 0x15 && Chip <= 0x16; + if (bDontDeleteFlag) + { + if (dTX.listChip[A].n発声時刻ms > n発声位置) + { + if (dTX.listChip[A].nコース == n分岐先) + { + dTX.listChip[A].b可視 = true; + + if (dTX.listChip[A].IsEndedBranching) + { + if (bRollAllFlag)//共通譜面時かつ、連打譜面だったら非可視化 + { + dTX.listChip[A].bHit = true; + dTX.listChip[A].bShow = false; + dTX.listChip[A].b可視 = false; + } + } + } + else + { + dTX.listChip[A].b可視 = false; + } + //共通なため分岐させない. + dTX.listChip[A].eNoteState = ENoteState.none; + + if (dTX.listChip[A].IsEndedBranching && (dTX.listChip[A].nコース == CDTX.ECourse.eNormal)) + { + if (bRollOnlyFlag)//共通譜面時かつ、連打譜面だったら可視化 + { + dTX.listChip[A].bHit = false; + dTX.listChip[A].bShow = true; + dTX.listChip[A].b可視 = true; + } + else + { + if (bBalloonOnlyFlag)//共通譜面時かつ、風船譜面だったら可視化 + { + dTX.listChip[A].bShow = true; + dTX.listChip[A].b可視 = true; + } + } + } + } + } + } + } + + public int GetRoll(int player) + { + return n合計連打数[player]; + } + + protected float GetNowPBMTime( CDTX tja, float play_time ) + { + float bpm_time = 0; + int last_input = 0; + float last_bpm_change_time; + play_time = CSound管理.rc演奏用タイマ.n現在時刻ms * (((float)TJAPlayer3.ConfigIni.n演奏速度) / 20.0f) - tja.nOFFSET; + + for (int i = 1; ; i++) + { + //BPMCHANGEの数越えた + if( i >= tja.listBPM.Count ) + { + CDTX.CBPM cBPM = tja.listBPM[ last_input ]; + bpm_time = (float)cBPM.bpm_change_bmscroll_time + ( ( play_time - (float)cBPM.bpm_change_time ) * (float)cBPM.dbBPM値 / 15000.0f ); + last_bpm_change_time = (float)cBPM.bpm_change_time; + break; + } + for( ; i < tja.listBPM.Count; i++ ) + { + CDTX.CBPM cBPM = tja.listBPM[ i ]; + if (cBPM.bpm_change_time == 0 || cBPM.bpm_change_course == this.n現在のコース[ 0 ] ) + { + break; + } + } + if( i == tja.listBPM.Count ) + { + i = tja.listBPM.Count - 1; + continue; + } + + if( play_time < tja.listBPM[ i ].bpm_change_time ) + { + CDTX.CBPM cBPM = tja.listBPM[ last_input ]; + bpm_time = (float)cBPM.bpm_change_bmscroll_time + ( ( play_time - (float)cBPM.bpm_change_time ) * (float)cBPM.dbBPM値 / 15000.0f ); + last_bpm_change_time = (float)cBPM.bpm_change_time; + break; + } + else + { + last_input = i; + } + } + + return bpm_time; + } + + public void t再読込() + { + TJAPlayer3.DTX.t全チップの再生停止とミキサーからの削除(); + this.eフェードアウト完了時の戻り値 = E演奏画面の戻り値.再読込_再演奏; + base.eフェーズID = CStage.Eフェーズ.演奏_再読込; + this.bPAUSE = false; + } + + public void t演奏やりなおし() + { + TJAPlayer3.DTX.t全チップの再生停止とミキサーからの削除(); + this.t数値の初期化( true, true ); + this.actAVI.tReset(); + this.actPanel.t歌詞テクスチャを削除する(); + for (int i = 0; i < 2; i++) + { + this.t演奏位置の変更(0, i); + this.actPlayInfo.NowMeasure[i] = 0; + } + TJAPlayer3.stage演奏ドラム画面.On活性化(); + for( int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++ ) + { + this.chip現在処理中の連打チップ[ i ] = null; + } + this.bPAUSE = false; + } + + public void t停止() + { + TJAPlayer3.DTX.t全チップの再生停止とミキサーからの削除(); + this.actAVI.Stop(); + this.actPanel.Stop(); // PANEL表示停止 + TJAPlayer3.Timer.t一時停止(); // 再生時刻カウンタ停止 + + this.n現在のトップChip = TJAPlayer3.DTX.listChip.Count - 1; // 終端にシーク + + // 自分自身のOn活性化()相当の処理もすべき。 + } + + public void t数値の初期化( bool b演奏記録, bool b演奏状態 ) + { + if( b演奏記録 ) + { + this.nヒット数_Auto含む.Taiko.Perfect = 0; + this.nヒット数_Auto含む.Taiko.Great = 0; + this.nヒット数_Auto含む.Taiko.Good = 0; + this.nヒット数_Auto含む.Taiko.Poor = 0; + this.nヒット数_Auto含む.Taiko.Miss = 0; + + this.nヒット数_Auto含まない.Taiko.Perfect = 0; + this.nヒット数_Auto含まない.Taiko.Great = 0; + this.nヒット数_Auto含まない.Taiko.Good = 0; + this.nヒット数_Auto含まない.Taiko.Poor = 0; + this.nヒット数_Auto含まない.Taiko.Miss = 0; + + this.actCombo.On活性化(); + this.actScore.On活性化(); + this.actGauge.Init( TJAPlayer3.ConfigIni.nRisky, 0 ); + if (bDoublePlay) this.actGauge.Init( TJAPlayer3.ConfigIni.nRisky, 1 ); + } + if( b演奏状態 ) + { + for( int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++ ) + { + this.bIsGOGOTIME[ i ] = false; + this.bLEVELHOLD[ i ] = false; + this.b強制的に分岐させた[ i ] = false; + this.b譜面分岐中[ i ] = false; + this.b連打中[ i ] = false; + this.n現在のコース[ i ] = 0; + this.n次回のコース[ i] = 0; + this.n現在の連打数[ i ] = 0; + this.n合計連打数[ i ] = 0; + this.n分岐した回数[ i ] = 0; + } + for (int i = 0; i < 2; i++) + { + this.actComboVoice.tReset(i); + NowProcessingChip[i] = 0; + } + } + + this.ReSetScore(TJAPlayer3.DTX.nScoreInit[0, TJAPlayer3.stage選曲.n確定された曲の難易度[0]], TJAPlayer3.DTX.nScoreDiff[TJAPlayer3.stage選曲.n確定された曲の難易度[0]]); + this.nHand = new int[]{ 0, 0, 0, 0 }; + } + + public void t演奏位置の変更( int nStartBar, int nPlayer ) + { + // まず全サウンドオフにする + TJAPlayer3.DTX.t全チップの再生停止(); + this.actAVI.Stop(); + CDTX dTX = TJAPlayer3.DTX; + switch (nPlayer) + { + case 1: + dTX = TJAPlayer3.DTX_2P; + break; + default: + break; + } + + if (dTX == null) return; //CDTXがnullの場合はプレイヤーが居ないのでその場で処理終了 + + +#region [ 再生開始小節の変更 ] + //nStartBar++; // +1が必要 + +#region [ 演奏済みフラグのついたChipをリセットする ] + for ( int i = 0; i < dTX.listChip.Count; i++ ) + { + //if(dTX.listChip[i].bHit) フラグが付いてなくてもすべてのチップをリセットする。(必要がある).2020.04.23.akasoko26 + + dTX.listChip[i].bHit = false; + dTX.listChip[i].bShow = true; + dTX.listChip[i].b可視 = true; + dTX.listChip[i].IsHitted = false; + dTX.listChip[i].IsMissed = false; + dTX.listChip[i].eNoteState = ENoteState.none; + dTX.listChip[i].nProcessTime = 0; + dTX.listChip[i].nRollCount = 0; + dTX.listChip[i].nRollCount = 0; + } +#endregion + +#region [ 処理を開始するチップの特定 ] + //for ( int i = this.n現在のトップChip; i < CDTXMania.DTX.listChip.Count; i++ ) + bool bSuccessSeek = false; + for (int i = 0; i < dTX.listChip.Count; i++) + { + CDTX.CChip pChip = dTX.listChip[i]; + if (nStartBar == 0) + { + if (pChip.n発声位置 < 384 * nStartBar) + { + continue; + } + else + { + bSuccessSeek = true; + this.n現在のトップChip = i; + break; + } + } + else + { + if (pChip.nチャンネル番号 == 0x50 && pChip.n整数値_内部番号 > nStartBar - 1) + { + bSuccessSeek = true; + this.n現在のトップChip = i; + break; + } + } + } + if (!bSuccessSeek) + { + // this.n現在のトップChip = CDTXMania.DTX.listChip.Count - 1; + this.n現在のトップChip = 0; // 対象小節が存在しないなら、最初から再生 + } + else + { + while (this.n現在のトップChip != 0 && dTX.listChip[this.n現在のトップChip].n発声時刻ms == dTX.listChip[TJAPlayer3.stage演奏ドラム画面.n現在のトップChip - 1].n発声時刻ms) + TJAPlayer3.stage演奏ドラム画面.n現在のトップChip--; + } +#endregion +#region [ 演奏開始の発声時刻msを取得し、タイマに設定 ] + int nStartTime = (int)(dTX.listChip[this.n現在のトップChip].n発声時刻ms / (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)); + + CSound管理.rc演奏用タイマ.tリセット(); // これでPAUSE解除されるので、次のPAUSEチェックは不要 + //if ( !this.bPAUSE ) + //{ + CSound管理.rc演奏用タイマ.t一時停止(); + //} + CSound管理.rc演奏用タイマ.n現在時刻 = nStartTime; +#endregion + + List pausedCSound = new List(); + +#region [ BGMやギターなど、演奏開始のタイミングで再生がかかっているサウンドのの途中再生開始 ] // (CDTXのt入力_行解析_チップ配置()で小節番号が+1されているのを削っておくこと) + for ( int i = this.n現在のトップChip; i >= 0; i-- ) + { + CDTX.CChip pChip = dTX.listChip[ i ]; + int nDuration = pChip.GetDuration(); + long n発声時刻ms = (long)(pChip.n発声時刻ms / (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)); + + if ((n発声時刻ms + nDuration > 0) && (n発声時刻ms <= nStartTime) && (nStartTime <= n発声時刻ms + nDuration)) + { + if (pChip.nチャンネル番号 == 0x01 && (pChip.nチャンネル番号 >> 4) != 0xB) // wav系チャンネル、且つ、空打ちチップではない + { + CDTX.CWAV wc; + bool b = dTX.listWAV.TryGetValue( pChip.n整数値_内部番号, out wc ); + if ( !b ) continue; + + if ( ( wc.bIsBGMSound && TJAPlayer3.ConfigIni.bBGM音を発声する ) || ( !wc.bIsBGMSound ) ) + { + TJAPlayer3.DTX.tチップの再生(pChip, (long)(CSound管理.rc演奏用タイマ.n前回リセットした時のシステム時刻) + (long)(pChip.n発声時刻ms / (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0))); +#region [ PAUSEする ] + int j = wc.n現在再生中のサウンド番号; + if ( wc.rSound[ j ] != null ) + { + wc.rSound[ j ].t再生を一時停止する(); + wc.rSound[j].t再生位置を変更する(nStartTime - n発声時刻ms); + pausedCSound.Add( wc.rSound[ j ] ); + } +#endregion + } + } + } + } +#endregion +#region [ 演奏開始時点で既に表示されているBGAとAVIの、シークと再生 ] + this.actAVI.SkipStart( nStartTime ); +#endregion +#region [ PAUSEしていたサウンドを一斉に再生再開する(ただしタイマを止めているので、ここではまだ再生開始しない) ] + + if (!(TJAPlayer3.ConfigIni.b演奏速度が一倍速であるとき以外音声を再生しない && TJAPlayer3.ConfigIni.n演奏速度 != 20)) + foreach (CSound cs in pausedCSound) + { + cs.tサウンドを再生する(); + } +#endregion + pausedCSound.Clear(); +#region [ タイマを再開して、PAUSEから復帰する ] + CSound管理.rc演奏用タイマ.n現在時刻 = nStartTime; + TJAPlayer3.Timer.tリセット(); // これでPAUSE解除されるので、3行先の再開()は不要 + TJAPlayer3.Timer.n現在時刻 = nStartTime; // Debug表示のTime: 表記を正しくするために必要 + CSound管理.rc演奏用タイマ.t再開(); + //CDTXMania.Timer.t再開(); + this.bPAUSE = false; // システムがPAUSE状態だったら、強制解除 + this.actPanel.Start(); +#endregion +#endregion + } + + public void t演奏中止() + { + this.actFO.tフェードアウト開始(); + base.eフェーズID = CStage.Eフェーズ.共通_フェードアウト; + this.eフェードアウト完了時の戻り値 = E演奏画面の戻り値.演奏中断; + } + + /// + /// DTXV用の設定をする。(全AUTOなど) + /// 元の設定のバックアップなどはしないので、あとでConfig.iniを上書き保存しないこと。 + /// + protected void tDTXV用の設定() + { + TJAPlayer3.ConfigIni.bAutoPlay.HH = true; + TJAPlayer3.ConfigIni.bAutoPlay.SD = true; + TJAPlayer3.ConfigIni.bAutoPlay.BD = true; + TJAPlayer3.ConfigIni.bAutoPlay.HT = true; + TJAPlayer3.ConfigIni.bAutoPlay.LT = true; + TJAPlayer3.ConfigIni.bAutoPlay.CY = true; + TJAPlayer3.ConfigIni.bAutoPlay.FT = true; + TJAPlayer3.ConfigIni.bAutoPlay.RD = true; + TJAPlayer3.ConfigIni.bAutoPlay.LC = true; + TJAPlayer3.ConfigIni.bAutoPlay.LP = true; + TJAPlayer3.ConfigIni.bAutoPlay.LBD = true; + TJAPlayer3.ConfigIni.bAutoPlay.GtR = true; + TJAPlayer3.ConfigIni.bAutoPlay.GtB = true; + TJAPlayer3.ConfigIni.bAutoPlay.GtB = true; + TJAPlayer3.ConfigIni.bAutoPlay.GtPick = true; + TJAPlayer3.ConfigIni.bAutoPlay.GtW = true; + TJAPlayer3.ConfigIni.bAutoPlay.BsR = true; + TJAPlayer3.ConfigIni.bAutoPlay.BsB = true; + TJAPlayer3.ConfigIni.bAutoPlay.BsB = true; + TJAPlayer3.ConfigIni.bAutoPlay.BsPick = true; + TJAPlayer3.ConfigIni.bAutoPlay.BsW = true; + + this.bIsAutoPlay = TJAPlayer3.ConfigIni.bAutoPlay; + + TJAPlayer3.ConfigIni.bAVI有効 = true; + TJAPlayer3.ConfigIni.bBGA有効 = true; + for ( int i = 0; i < 3; i++ ) + { + TJAPlayer3.ConfigIni.bGraph[ i ] = false; + TJAPlayer3.ConfigIni.bHidden[ i ] = false; + TJAPlayer3.ConfigIni.bLeft[ i ] = false; + TJAPlayer3.ConfigIni.bLight[ i ] = false; + TJAPlayer3.ConfigIni.bReverse[ i ] = false; + TJAPlayer3.ConfigIni.bSudden[ i ] = false; + TJAPlayer3.ConfigIni.eInvisible[ i ] = EInvisible.OFF; + TJAPlayer3.ConfigIni.eRandom[ i ] = Eランダムモード.OFF; + TJAPlayer3.ConfigIni.n表示可能な最小コンボ数[ i ] = 65535; + TJAPlayer3.ConfigIni.判定文字表示位置[ i ] = E判定文字表示位置.表示OFF; + // CDTXMania.ConfigIni.n譜面スクロール速度[ i ] = CDTXMania.ConfigIni.nViewerScrollSpeed[ i ]; // これだけはOn活性化()で行うこと。 + // そうしないと、演奏開始直後にスクロール速度が変化して見苦しい。 + } + + TJAPlayer3.ConfigIni.eDark = Eダークモード.OFF; + + TJAPlayer3.ConfigIni.b演奏情報を表示する = TJAPlayer3.ConfigIni.bViewerShowDebugStatus; + TJAPlayer3.ConfigIni.bScoreIniを出力する = false; + TJAPlayer3.ConfigIni.bSTAGEFAILED有効 = false; + TJAPlayer3.ConfigIni.bTight = false; + TJAPlayer3.ConfigIni.bストイックモード = false; + + TJAPlayer3.ConfigIni.nRisky = 0; + } + + protected abstract void t進行描画_チップ_ドラムス( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip ); + protected abstract void t進行描画_チップ本体_ドラムス( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip ); + protected abstract void t進行描画_チップ_Taiko( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip, int nPlayer ); + protected abstract void t進行描画_チップ_Taiko連打( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip, int nPlayer ); + + protected abstract void t進行描画_チップ_フィルイン( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip ); + protected abstract void t進行描画_チップ_小節線( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip, int nPlayer ); + protected void t進行描画_チップアニメ() + { + if( this.b初めての進行描画 ) + { + //this.ct制御タイマ = FDK.CSound管理.rc演奏用タイマ; + //this.ct制御タイマ = new CCounter(0, 10, 500, CSound管理.rc演奏用タイマ); + //this.ct制御タイマ.t進行LoopDb(); + } + for (int i = 0; i < 2; i++) + { + ctChipAnime[i].t進行LoopDb(); + //CDTXMania.act文字コンソール.tPrint(0, 20 * i, C文字コンソール.Eフォント種別.白, ctChipAnime[i].n現在の値.ToString()); + ctChipAnimeLag[i].t進行(); + // CDTXMania.act文字コンソール.tPrint(0, 20 * i, C文字コンソール.Eフォント種別.白, ctChipAnimeLag[i].n現在の値.ToString()); + // + } + + //CDTXMania.act文字コンソール.tPrint(60, 140, C文字コンソール.Eフォント種別.白, ct制御タイマ.n現在の値.ToString()); + //this.nタイマ番号 = (int)this.actChara.ctモブモーション.n現在の値; + //CDTXMania.act文字コンソール.tPrint(0, 0, C文字コンソール.Eフォント種別.白, this.nタイマ番号.ToString()); + + + //if (this.actChara.ctモブモーション.n現在の値 <= 30) + //{ + // this.n現在の音符の顔番号 = 0; + //} else + //{ + // this.n現在の音符の顔番号 = 1; + //} + + /*long num = FDK.CSound管理.rc演奏用タイマ.n現在時刻; + if( num < this.ct制御タイマ ) + { + this.ct制御タイマ = num; + } + while( ( num - this.ct制御タイマ ) >= 1000 ) + { + if( this.n現在の音符の顔番号 == 0 ) + { + this.n現在の音符の顔番号 = 1; + } + else if( this.n現在の音符の顔番号 == 1 ) + { + this.n現在の音符の顔番号 = 0; + } + + if( this.actCombo.n現在のコンボ数.P1 < 50 ) + { + this.ct制御タイマ += 500; + } + else if(this.actCombo.n現在のコンボ数.P1 >= 50 && this.actCombo.n現在のコンボ数.P1 < 150) + { + this.ct制御タイマ += 400; + } + else if( this.actCombo.n現在のコンボ数.P1 >= 150 && this.actCombo.n現在のコンボ数.P1 < 250 ) + { + this.ct制御タイマ += 300; + } + else if( this.actCombo.n現在のコンボ数.P1 >= 250 && this.actCombo.n現在のコンボ数.P1 < 300 ) + { + this.ct制御タイマ += 200; + } + else if( this.actCombo.n現在のコンボ数.P1 >= 300 ) + { + this.ct制御タイマ += 80; + } + else + { + this.ct制御タイマ += 500; + } + + }*/ + + //if ( this.actChara.ctゴーゴーモーション != null ) + //{ + // this.actChara.ctゴーゴーモーション.t進行LoopDb(); + //} + } + + protected bool t進行描画_フェードイン_アウト() + { + switch ( base.eフェーズID ) + { + case CStage.Eフェーズ.共通_フェードイン: + if ( this.actFI.On進行描画() != 0) + { + base.eフェーズID = CStage.Eフェーズ.共通_通常状態; + } + break; + + case CStage.Eフェーズ.共通_フェードアウト: + case CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト: + if ( this.actFO.On進行描画() != 0 ) + { + return true; + } + break; + + case CStage.Eフェーズ.演奏_STAGE_CLEAR_フェードアウト: + if ( this.actFOClear.On進行描画() == 0 ) + { + break; + } + return true; + + } + return false; + } + protected void t進行描画_レーンフラッシュD() + { + //if ( ( CDTXMania.ConfigIni.eDark == Eダークモード.OFF ) && ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED ) && ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) ) + { + this.actTaikoLaneFlash.On進行描画(); + } + } + protected abstract void t進行描画_演奏情報(); + protected void t進行描画_演奏情報(int x, int y) + { + if ( !TJAPlayer3.ConfigIni.b演奏情報を表示しない ) + { + this.actPlayInfo.t進行描画( x, y ); + } + } + protected void t進行描画_背景() + { + if ( this.tx背景 != null ) + { + this.tx背景.t2D描画( TJAPlayer3.app.Device, 0, 0 ); + } + } + + protected void t進行描画_判定ライン() + { + if ( TJAPlayer3.ConfigIni.eDark != Eダークモード.FULL ) + { + int y = TJAPlayer3.ConfigIni.bReverse.Drums ? 53 - 演奏判定ライン座標.nJudgeLinePosY_delta.Drums : 567 + 演奏判定ライン座標.nJudgeLinePosY_delta.Drums; + // #31602 2013.6.23 yyagi 描画遅延対策として、判定ラインの表示位置をオフセット調整できるようにする + if ( this.txヒットバー != null ) + { + this.txヒットバー.t2D描画( TJAPlayer3.app.Device, 295, y, new Rectangle( 0, 0, 558, 6 ) ); + } + } + } + protected void t進行描画_判定文字列() + { + this.actJudgeString.On進行描画(); + } + protected void t進行描画_判定文字列1_通常位置指定の場合() + { + if ( ( (E判定文字表示位置) TJAPlayer3.ConfigIni.判定文字表示位置.Drums ) != E判定文字表示位置.コンボ下 ) // 判定ライン上または横 + { + this.actJudgeString.On進行描画(); + } + } + protected void t進行描画_判定文字列2_判定ライン上指定の場合() + { + if ( ( (E判定文字表示位置) TJAPlayer3.ConfigIni.判定文字表示位置.Drums ) == E判定文字表示位置.コンボ下 ) // 判定ライン上または横 + { + this.actJudgeString.On進行描画(); + } + } + + protected void t進行描画_譜面スクロール速度() + { + this.act譜面スクロール速度.On進行描画(); + } + protected abstract void t紙吹雪_開始(); + protected abstract void t背景テクスチャの生成(); + protected void t背景テクスチャの生成( string DefaultBgFilename, Rectangle bgrect, string bgfilename ) + { + try + { + if( !String.IsNullOrEmpty( bgfilename ) ) + this.tx背景 = TJAPlayer3.tテクスチャの生成( TJAPlayer3.stage選曲.r確定されたスコア.ファイル情報.フォルダの絶対パス + bgfilename ); + else + this.tx背景 = TJAPlayer3.tテクスチャの生成( CSkin.Path( DefaultBgFilename ) ); + } + catch (Exception e) + { + Trace.TraceError( e.ToString() ); + Trace.TraceError( "例外が発生しましたが処理を継続します。 (a80767e1-4de7-4fec-b072-d078b3659e62)" ); + this.tx背景 = null; + } + } + + public void ReSetScore(int scoreInit, int scoreDiff) + { + //一打目の処理落ちがひどいので、あらかじめここで点数の計算をしておく。 + // -1だった場合、その前を引き継ぐ。 + int nInit = scoreInit != -1 ? scoreInit : this.nScore[0]; + int nDiff = scoreDiff != -1 ? scoreDiff : this.nScore[1] - this.nScore[0]; + int nAddScore = 0; + int[] n倍率 = { 0, 1, 2, 4, 8 }; + + if( TJAPlayer3.DTX.nScoreModeTmp == 1 ) + { + for( int i = 0; i < 11; i++ ) + { + this.nScore[ i ] = (int)( nInit + ( nDiff * ( i ) ) ); + } + } + else if( TJAPlayer3.DTX.nScoreModeTmp == 2 ) + { + for( int i = 0; i < 5; i++ ) + { + this.nScore[ i ] = (int)( nInit + ( nDiff * n倍率[ i ] ) ); + + this.nScore[ i ] = (int)( this.nScore[ i ] / 10.0 ); + this.nScore[ i ] = this.nScore[ i ] * 10; + + } + + //this.nScore[ 0 ] = (int)nInit; + //this.nScore[ 1 ] = (int)( nInit + nDiff ); + //this.nScore[ 2 ] = (int)( nInit + ( nDiff * 2 ) ); + //this.nScore[ 3 ] = (int)( nInit + ( nDiff * 4 ) ); + //this.nScore[ 4 ] = (int)( nInit + ( nDiff * 8 ) ); + } + } + } +} diff --git a/TJAPlayer3/Stages/07.Game/C演奏判定ライン座標共通.cs b/TJAPlayer3/Stages/07.Game/C演奏判定ライン座標共通.cs new file mode 100644 index 00000000..63b2d592 --- /dev/null +++ b/TJAPlayer3/Stages/07.Game/C演奏判定ライン座標共通.cs @@ -0,0 +1,202 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Diagnostics; + +namespace TJAPlayer3 +{ + /// + /// 判定ライン関係の座標処理をまとめたクラス + /// + internal class C演奏判定ライン座標共通 + { + /// + /// 判定ラインのy座標 + /// + private STDGBVALUE[,,] n判定ラインY座標元データ = null; // 補正無しの時の座標データ + private STDGBVALUE[,,] n演奏RGBボタンY座標元データ = null; + + /// + /// 表示位置の補正データ + /// 初期化は外部から行うこと。 + /// + public STDGBVALUE nJudgeLinePosY_delta; + + /// + /// 判定ライン表示位置を、Vシリーズ互換にするかどうか。 + /// 設定は外部から行うこと。 + /// + public STDGBVALUE n判定位置; + + /// + /// コンストラクタ(座標値の初期化) + /// + public C演奏判定ライン座標共通() + { + n判定ラインY座標元データ = new STDGBVALUE[ 2, 2, 2 ]; + #region [ 判定ライン座標の初期化] + // Normal, Drums画面, 判定ライン + n判定ラインY座標元データ[ 0, 0, 0 ].Drums = 0; //未使用 + n判定ラインY座標元データ[ 0, 0, 0 ].Guitar = 95; + n判定ラインY座標元データ[ 0, 0, 0 ].Bass = 95; + // Reverse, Drums画面, 判定ライン + n判定ラインY座標元データ[ 1, 0, 0 ].Drums = 0; //未使用 + n判定ラインY座標元データ[ 1, 0, 0 ].Guitar = 374; + n判定ラインY座標元データ[ 1, 0, 0 ].Bass = 374; + // Normal, Drums画面, Wailing枠 + n判定ラインY座標元データ[ 0, 0, 1 ].Drums = 0; //未使用 + n判定ラインY座標元データ[ 0, 0, 1 ].Guitar = 69; + n判定ラインY座標元データ[ 0, 0, 1 ].Bass = 69; + // Reverse, Drums画面, Wailing枠 + n判定ラインY座標元データ[ 1, 0, 1 ].Drums = 0; //未使用 + n判定ラインY座標元データ[ 1, 0, 1 ].Guitar = 350; + n判定ラインY座標元データ[ 1, 0, 1 ].Bass = 350; + + // Normal, GR画面, 判定ライン + n判定ラインY座標元データ[ 0, 1, 0 ].Drums = 0; //未使用 + n判定ラインY座標元データ[ 0, 1, 0 ].Guitar = 40; + n判定ラインY座標元データ[ 0, 1, 0 ].Bass = 40; + // Reverse, GR画面, 判定ライン + n判定ラインY座標元データ[ 1, 1, 0 ].Drums = 0; //未使用 + n判定ラインY座標元データ[ 1, 1, 0 ].Guitar = 369; + n判定ラインY座標元データ[ 1, 1, 0 ].Bass = 369; + // Normal, GR画面, Wailing枠 + n判定ラインY座標元データ[ 0, 1, 1 ].Drums = 0; //未使用 + n判定ラインY座標元データ[ 0, 1, 1 ].Guitar = 11; + n判定ラインY座標元データ[ 0, 1, 1 ].Bass = 11; + // Reverse, GR画面, Wailing枠 + n判定ラインY座標元データ[ 1, 1, 1 ].Drums = 0; //未使用 + n判定ラインY座標元データ[ 1, 1, 1 ].Guitar = 340; + n判定ラインY座標元データ[ 1, 1, 1 ].Bass = 340; + #endregion + + n演奏RGBボタンY座標元データ = new STDGBVALUE[ 2, 2, 2 ]; + #region [ RGBボタン座標の初期化] + // Normal, Drums画面, RGBボタン + n演奏RGBボタンY座標元データ[ 0, 0, 0 ].Drums = 0; // 未使用 + n演奏RGBボタンY座標元データ[ 0, 0, 0 ].Guitar = 57; + n演奏RGBボタンY座標元データ[ 0, 0, 0 ].Bass = 57; + // Reverse, Drums画面, RGBボタン + n演奏RGBボタンY座標元データ[ 1, 0, 0 ].Drums = 0; // 未使用 + n演奏RGBボタンY座標元データ[ 1, 0, 0 ].Guitar = 57; + n演奏RGBボタンY座標元データ[ 1, 0, 0 ].Bass = 57; + // Normal, Drums画面, RGBボタン(Vシリーズ) + n演奏RGBボタンY座標元データ[ 0, 0, 1 ].Drums = 0; // 未使用 + n演奏RGBボタンY座標元データ[ 0, 0, 1 ].Guitar = 107; + n演奏RGBボタンY座標元データ[ 0, 0, 1 ].Bass = 107; + // Reverse, Drums画面, RGBボタン(Vシリーズ) + n演奏RGBボタンY座標元データ[ 1, 0, 1 ].Drums = 0; // 未使用 + n演奏RGBボタンY座標元データ[ 1, 0, 1 ].Guitar = 107; + n演奏RGBボタンY座標元データ[ 1, 0, 1 ].Bass = 107; + + // Normal, GR画面, RGBボタン + n演奏RGBボタンY座標元データ[ 0, 1, 0 ].Drums = 0; // 未使用 + n演奏RGBボタンY座標元データ[ 0, 1, 0 ].Guitar = 3; + n演奏RGBボタンY座標元データ[ 0, 1, 0 ].Bass = 3; + // Reverse, GR画面, RGBボタン + n演奏RGBボタンY座標元データ[ 1, 1, 0 ].Drums = 0; // 未使用 + n演奏RGBボタンY座標元データ[ 1, 1, 0 ].Guitar = 3; + n演奏RGBボタンY座標元データ[ 1, 1, 0 ].Bass = 3; + // Normal, GR画面, RGBボタン(Vシリーズ) + n演奏RGBボタンY座標元データ[ 0, 1, 1 ].Drums = 0; // 未使用 + n演奏RGBボタンY座標元データ[ 0, 1, 1 ].Guitar = 44; + n演奏RGBボタンY座標元データ[ 0, 1, 1 ].Bass = 44; + // Reverse, GR画面, RGBボタン(Vシリーズ) + n演奏RGBボタンY座標元データ[ 1, 1, 1 ].Drums = 0; // 未使用 + n演奏RGBボタンY座標元データ[ 1, 1, 1 ].Guitar = 44; + n演奏RGBボタンY座標元データ[ 1, 1, 1 ].Bass = 44; + #endregion + + n判定位置 = new STDGBVALUE(); + n判定位置.Drums = E判定位置.標準; + n判定位置.Guitar = E判定位置.標準; + n判定位置.Bass = E判定位置.標準; + + // 補正値は、Normal/Reverse, Drums/GR画面共通 + nJudgeLinePosY_delta.Drums = 0; + nJudgeLinePosY_delta.Guitar = 0; + nJudgeLinePosY_delta.Bass = 0; + } + + + + /// + /// 判定ラインのY座標を返す。とりあえずGuitar/Bassのみ対応。 + /// + /// E楽器パート + /// GRmodeか否か + /// Reverseか否か + /// + public int n判定ラインY座標( E楽器パート eInst, bool bGRmode, bool bReverse ) + { + return n判定ラインY座標( eInst, bGRmode, bReverse, false ); + } + + public int n判定ラインY座標( E楽器パート eInst, bool bGRmode, bool bReverse, bool bWailingFrame ) + { + return n判定ラインY座標( eInst, bGRmode, bReverse, bWailingFrame, false ); + } + + /// + /// 判定ラインのY座標を返す。とりあえずGuitar/Bassのみ対応。 + /// + /// E楽器パート + /// GRmodeか否か + /// Reverseか否か + /// Wailing枠の座標か、判定ラインの座標か + /// プレーヤーのライン表示位置補正情報を加えるかどうか + /// + public int n判定ラインY座標( E楽器パート eInst, bool bGRmode, bool bReverse, bool bWailingFrame, bool b補正あり ) + { + if ( eInst == E楽器パート.DRUMS ) + { + throw new NotImplementedException(); + } + else if ( eInst == E楽器パート.UNKNOWN ) + { + throw new ArgumentOutOfRangeException(); + } + else + { + int nReverse = bReverse ? 1 : 0; + int nGRmode = bGRmode ? 1 : 0; + int nWailing = bWailingFrame ? 1 : 0; + int nInst = (int) eInst; + int ret = this.n判定ラインY座標元データ[ nReverse, nGRmode, nWailing ][ nInst ]; // 補正無しの値 + if ( bReverse ) + { + if ( n判定位置[ nInst ] == E判定位置.Lower ) ret += 13; + if ( b補正あり ) ret += nJudgeLinePosY_delta[ nInst ]; + } + else + { + if ( n判定位置[ nInst ] == E判定位置.Lower ) ret += 52; + if ( b補正あり ) ret -= nJudgeLinePosY_delta[ nInst ]; + } + return ret; + } + } + + public int n演奏RGBボタンY座標( E楽器パート eInst, bool bGRmode, bool bReverse ) + { + if ( eInst == E楽器パート.DRUMS ) + { + throw new NotImplementedException(); + } + else if ( eInst == E楽器パート.UNKNOWN ) + { + throw new ArgumentOutOfRangeException(); + } + else + { + int nInst = (int) eInst; + int nGRmode = bGRmode ? 1 : 0; + int nReverse = bReverse ? 1 : 0; + int nVseries = (int) n判定位置[ nInst ]; + int ret = n演奏RGBボタンY座標元データ[ nReverse, nGRmode, nVseries ][ nInst ]; // 補正無しの値 + + return ret; + } + } + } +} diff --git a/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏DrumsDancer.cs b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏DrumsDancer.cs new file mode 100644 index 00000000..2af6273a --- /dev/null +++ b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏DrumsDancer.cs @@ -0,0 +1,75 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Drawing; +using System.Runtime.InteropServices; +using FDK; + +namespace TJAPlayer3 +{ + internal class CAct演奏DrumsDancer : CActivity + { + /// + /// 踊り子 + /// + public CAct演奏DrumsDancer() + { + base.b活性化してない = true; + } + + public override void On活性化() + { + this.ct踊り子モーション = new CCounter(); + base.On活性化(); + } + + public override void On非活性化() + { + this.ct踊り子モーション = null; + base.On非活性化(); + } + + public override void OnManagedリソースの作成() + { + this.ar踊り子モーション番号 = C変換.ar配列形式のstringをint配列に変換して返す(TJAPlayer3.Skin.Game_Dancer_Motion); + if(this.ar踊り子モーション番号 == null) ar踊り子モーション番号 = C変換.ar配列形式のstringをint配列に変換して返す("0,0"); + this.ct踊り子モーション = new CCounter(0, this.ar踊り子モーション番号.Length - 1, 0.01, CSound管理.rc演奏用タイマ); + base.OnManagedリソースの作成(); + } + + public override void OnManagedリソースの解放() + { + base.OnManagedリソースの解放(); + } + + public override int On進行描画() + { + if( this.b初めての進行描画 ) + { + this.b初めての進行描画 = true; + } + + if (this.ct踊り子モーション != null || TJAPlayer3.Skin.Game_Dancer_Ptn != 0) this.ct踊り子モーション.t進行LoopDb(); + + if (TJAPlayer3.ConfigIni.ShowDancer && this.ct踊り子モーション != null && TJAPlayer3.Skin.Game_Dancer_Ptn != 0) + { + for (int i = 0; i < 5; i++) + { + if (TJAPlayer3.Tx.Dancer[i][this.ar踊り子モーション番号[(int)this.ct踊り子モーション.n現在の値]] != null) + { + if ((int)TJAPlayer3.stage演奏ドラム画面.actGauge.db現在のゲージ値[0] >= TJAPlayer3.Skin.Game_Dancer_Gauge[i]) + TJAPlayer3.Tx.Dancer[i][this.ar踊り子モーション番号[(int)this.ct踊り子モーション.n現在の値]].t2D中心基準描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Dancer_X[i], TJAPlayer3.Skin.Game_Dancer_Y[i]); + } + } + } + return base.On進行描画(); + } + + #region[ private ] + //----------------- + public int[] ar踊り子モーション番号; + public CCounter ct踊り子モーション; + //----------------- + #endregion + } +} diff --git a/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏DrumsDanger.cs b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏DrumsDanger.cs new file mode 100644 index 00000000..aeba30d2 --- /dev/null +++ b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏DrumsDanger.cs @@ -0,0 +1,80 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Drawing; +using FDK; + +namespace TJAPlayer3 +{ + internal class CAct演奏DrumsDanger : CAct演奏Danger共通 + { + // コンストラクタ + + //public CAct演奏DrumsDanger() + //{ + // base.b活性化してない = true; + //} + + + // CActivity 実装 + + //public override void On活性化() + //{ + // this.bDanger中 = false; + // this.ct移動用 = new CCounter(); + // this.ct透明度用 = new CCounter(); + // base.On活性化(); + //} + //public override void On非活性化() + //{ + // this.ct移動用 = null; + // this.ct透明度用 = null; + // base.On非活性化(); + //} + public override void OnManagedリソースの作成() + { + if( !base.b活性化してない ) + { + base.OnManagedリソースの作成(); + } + } + public override void OnManagedリソースの解放() + { + if( !base.b活性化してない ) + { + TJAPlayer3.tテクスチャの解放( ref this.txDANGER ); + base.OnManagedリソースの解放(); + } + } + public override int On進行描画() + { + throw new InvalidOperationException( "t進行描画(bool)のほうを使用してください。" ); + } + /// + /// ドラム画面のDANGER描画 + /// + /// DrumsのゲージがDangerかどうか(Guitar/Bassと共用のゲージ) + /// Guitarのゲージ(未使用) + /// Bassのゲージ(未使用) + /// + public override int t進行描画( bool bIsDangerDrums, bool bIsDangerGuitar, bool bIsDangerBass ) + { + return 0; + } + + + // その他 + + #region [ private ] + //----------------- + //private bool bDanger中; + //private CCounter ct移動用; + //private CCounter ct透明度用; +// private const int n右位置 = 0x12a; +// private const int n左位置 = 0x26; + private readonly Rectangle[] rc領域 = new Rectangle[] { new Rectangle( 0, 0, 0x20, 0x40 ), new Rectangle( 0x20, 0, 0x20, 0x40 ) }; + private CTexture txDANGER; + //----------------- + #endregion + } +} diff --git a/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏DrumsFooter.cs b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏DrumsFooter.cs new file mode 100644 index 00000000..31ee79a2 --- /dev/null +++ b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏DrumsFooter.cs @@ -0,0 +1,54 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Drawing; +using System.Runtime.InteropServices; +using FDK; + +namespace TJAPlayer3 +{ + internal class CAct演奏DrumsFooter : CActivity + { + /// + /// フッター + /// + public CAct演奏DrumsFooter() + { + base.b活性化してない = true; + } + + public override void On活性化() + { + base.On活性化(); + } + + public override void On非活性化() + { + base.On非活性化(); + } + + public override void OnManagedリソースの作成() + { + base.OnManagedリソースの作成(); + } + + public override void OnManagedリソースの解放() + { + base.OnManagedリソースの解放(); + } + + public override int On進行描画() + { + if (TJAPlayer3.Tx.Mob_Footer != null) + { + TJAPlayer3.Tx.Mob_Footer.t2D描画(TJAPlayer3.app.Device, 0, 720 - TJAPlayer3.Tx.Mob_Footer.szテクスチャサイズ.Height); + } + return base.On進行描画(); + } + + #region[ private ] + //----------------- + //----------------- + #endregion + } +} diff --git a/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏DrumsMob.cs b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏DrumsMob.cs new file mode 100644 index 00000000..73f622e8 --- /dev/null +++ b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏DrumsMob.cs @@ -0,0 +1,93 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Drawing; +using System.Runtime.InteropServices; +using FDK; + +namespace TJAPlayer3 +{ + internal class CAct演奏DrumsMob : CActivity + { + /// + /// 踊り子 + /// + public CAct演奏DrumsMob() + { + base.b活性化してない = true; + } + + public override void On活性化() + { + ctMob = new CCounter(); + //ctMob = new CCounter(1, 180, 60.0 / TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM * TJAPlayer3.Skin.Game_Mob_Beat / 180 / (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0), CSound管理.rc演奏用タイマ); + ctMobPtn = new CCounter(); + RandomMob = TJAPlayer3.Random.Next(TJAPlayer3.Skin.Game_Mob_Ptn); + base.On活性化(); + } + + public override void On非活性化() + { + ctMob = null; + ctMobPtn = null; + base.On非活性化(); + } + + public override void OnManagedリソースの作成() + { + base.OnManagedリソースの作成(); + } + + public override void OnManagedリソースの解放() + { + base.OnManagedリソースの解放(); + } + + public override int On進行描画() + { + if(!TJAPlayer3.stage演奏ドラム画面.bDoublePlay) + { + if (ctMob != null) ctMob.t進行LoopDb(); + if (ctMobPtn != null || TJAPlayer3.Skin.Game_Mob_Ptn != 0) ctMobPtn.t進行LoopDb(); + + if (TJAPlayer3.Skin.Game_Mob_Ptn != 0) + { + + TJAPlayer3.act文字コンソール.tPrint(0, 0, C文字コンソール.Eフォント種別.白, ctMob.n現在の値.ToString()); + TJAPlayer3.act文字コンソール.tPrint(0, 20, C文字コンソール.Eフォント種別.白, ctMobPtn.n現在の値.ToString()); + TJAPlayer3.act文字コンソール.tPrint(0, 30, C文字コンソール.Eフォント種別.白, ((int)ctMobPtn.n現在の値).ToString()); + TJAPlayer3.act文字コンソール.tPrint(0, 40, C文字コンソール.Eフォント種別.白, TJAPlayer3.stage演奏ドラム画面.actGauge.db現在のゲージ値[0].ToString()); + TJAPlayer3.act文字コンソール.tPrint(0, 10, C文字コンソール.Eフォント種別.白, Math.Sin((float)this.ctMob.n現在の値 * (Math.PI / 180)).ToString()); + + + if (TJAPlayer3.stage演奏ドラム画面.actGauge.db現在のゲージ値[0] >= 100) + { + + + + if (TJAPlayer3.Tx.Mob[RandomMob] != null) + TJAPlayer3.Tx.Mob[RandomMob].t2D描画(TJAPlayer3.app.Device, 0, (720 - (TJAPlayer3.Tx.Mob[RandomMob].szテクスチャサイズ.Height - 70)) + -((float)Math.Sin((float)this.ctMob.n現在の値 * (Math.PI / 180)) * 70)); + + + /* + if (TJAPlayer3.Tx.Mob[(int)ctMobPtn.n現在の値] != null) + { + TJAPlayer3.Tx.Mob[(int)ctMobPtn.n現在の値].t2D描画(TJAPlayer3.app.Device, 0, (720 - (TJAPlayer3.Tx.Mob[0].szテクスチャサイズ.Height - 70)) + -((float)Math.Sin((float)this.ctMob.n現在の値 * (Math.PI / 180)) * 70)); + } + */ + + } + + } + } + return base.On進行描画(); + } + #region[ private ] + //----------------- + public CCounter ctMob; + public CCounter ctMobPtn; + private int RandomMob; + //----------------- + #endregion + } +} diff --git a/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏DrumsMtaiko.cs b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏DrumsMtaiko.cs new file mode 100644 index 00000000..624e535c --- /dev/null +++ b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏DrumsMtaiko.cs @@ -0,0 +1,379 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Drawing; +using System.Runtime.InteropServices; +using FDK; + +namespace TJAPlayer3 +{ + internal class CAct演奏DrumsMtaiko : CActivity + { + /// + /// mtaiko部分を描画するクラス。左側だけ。 + /// + /// + public CAct演奏DrumsMtaiko() + { + base.b活性化してない = true; + } + + public override void On活性化() + { + for( int i = 0; i < 16; i++ ) + { + STパッド状態 stパッド状態 = new STパッド状態(); + stパッド状態.n明るさ = 0; + this.stパッド状態[ i ] = stパッド状態; + } + base.On活性化(); + } + + public override void On非活性化() + { + base.On非活性化(); + } + + public override void OnManagedリソースの作成() + { + this.ctレベルアップダウン = new CCounter[ 4 ]; + this.After = new CDTX.ECourse[ 4 ]; + this.Before = new CDTX.ECourse[ 4 ]; + for ( int i = 0; i < 4; i++ ) + { + this.ctレベルアップダウン[ i ] = new CCounter(); + } + + + base.OnManagedリソースの作成(); + } + + public override void OnManagedリソースの解放() + { + this.ctレベルアップダウン = null; + + base.OnManagedリソースの解放(); + } + + public override int On進行描画() + { + if( base.b初めての進行描画 ) + { + this.nフラッシュ制御タイマ = (long)(CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)); + base.b初めての進行描画 = false; + } + + long num = (long)(CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)); + if ( num < this.nフラッシュ制御タイマ ) + { + this.nフラッシュ制御タイマ = num; + } + while( ( num - this.nフラッシュ制御タイマ ) >= 20 ) + { + for( int j = 0; j < 16; j++ ) + { + if( this.stパッド状態[ j ].n明るさ > 0 ) + { + this.stパッド状態[ j ].n明るさ--; + } + } + this.nフラッシュ制御タイマ += 20; + } + + + this.nHS = TJAPlayer3.ConfigIni.n譜面スクロール速度.Drums < 8 ? TJAPlayer3.ConfigIni.n譜面スクロール速度.Drums : 7; + + if(TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan) + { + if (TJAPlayer3.Tx.Taiko_Background[2] != null) + TJAPlayer3.Tx.Taiko_Background[2].t2D描画(TJAPlayer3.app.Device, 0, 184); + } + else + { + if (TJAPlayer3.Tx.Taiko_Background[0] != null) + TJAPlayer3.Tx.Taiko_Background[0].t2D描画(TJAPlayer3.app.Device, 0, 184); + + if (TJAPlayer3.stage演奏ドラム画面.bDoublePlay) + { + if (TJAPlayer3.Tx.Taiko_Background[1] != null) + TJAPlayer3.Tx.Taiko_Background[1].t2D描画(TJAPlayer3.app.Device, 0, 360); + } + } + + if(TJAPlayer3.Tx.Taiko_Base != null ) + { + TJAPlayer3.Tx.Taiko_Base.t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_X[0], TJAPlayer3.Skin.Game_Taiko_Y[0]); + if( TJAPlayer3.stage演奏ドラム画面.bDoublePlay ) + TJAPlayer3.Tx.Taiko_Base.t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_X[1], TJAPlayer3.Skin.Game_Taiko_Y[1]); + } + if( TJAPlayer3.Tx.Taiko_Don_Left != null && TJAPlayer3.Tx.Taiko_Don_Right != null && TJAPlayer3.Tx.Taiko_Ka_Left != null && TJAPlayer3.Tx.Taiko_Ka_Right != null ) + { + TJAPlayer3.Tx.Taiko_Ka_Left.Opacity = this.stパッド状態[0].n明るさ * 73; + TJAPlayer3.Tx.Taiko_Ka_Right.Opacity = this.stパッド状態[1].n明るさ * 73; + TJAPlayer3.Tx.Taiko_Don_Left.Opacity = this.stパッド状態[2].n明るさ * 73; + TJAPlayer3.Tx.Taiko_Don_Right.Opacity = this.stパッド状態[3].n明るさ * 73; + + TJAPlayer3.Tx.Taiko_Ka_Left.t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_X[0], TJAPlayer3.Skin.Game_Taiko_Y[0], new Rectangle( 0, 0, TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Width / 2, TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Height) ); + TJAPlayer3.Tx.Taiko_Ka_Right.t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_X[0] + TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Width / 2, TJAPlayer3.Skin.Game_Taiko_Y[0], new Rectangle(TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Width / 2, 0, TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Width / 2, TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Height) ); + TJAPlayer3.Tx.Taiko_Don_Left.t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_X[0], TJAPlayer3.Skin.Game_Taiko_Y[0], new Rectangle( 0, 0, TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Width / 2, TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Height) ); + TJAPlayer3.Tx.Taiko_Don_Right.t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_X[0] + TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Width / 2, TJAPlayer3.Skin.Game_Taiko_Y[0], new Rectangle(TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Width / 2, 0, TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Width / 2, TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Height)); + } + + if( TJAPlayer3.Tx.Taiko_Don_Left != null && TJAPlayer3.Tx.Taiko_Don_Right != null && TJAPlayer3.Tx.Taiko_Ka_Left != null && TJAPlayer3.Tx.Taiko_Ka_Right != null ) + { + TJAPlayer3.Tx.Taiko_Ka_Left.Opacity = this.stパッド状態[4].n明るさ * 73; + TJAPlayer3.Tx.Taiko_Ka_Right.Opacity = this.stパッド状態[5].n明るさ * 73; + TJAPlayer3.Tx.Taiko_Don_Left.Opacity = this.stパッド状態[6].n明るさ * 73; + TJAPlayer3.Tx.Taiko_Don_Right.Opacity = this.stパッド状態[7].n明るさ * 73; + + TJAPlayer3.Tx.Taiko_Ka_Left.t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_X[1], TJAPlayer3.Skin.Game_Taiko_Y[1], new Rectangle( 0, 0, TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Width / 2, TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Height) ); + TJAPlayer3.Tx.Taiko_Ka_Right.t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_X[1] + TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Width / 2, TJAPlayer3.Skin.Game_Taiko_Y[1], new Rectangle(TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Width / 2, 0, TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Width / 2, TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Height) ); + TJAPlayer3.Tx.Taiko_Don_Left.t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_X[1], TJAPlayer3.Skin.Game_Taiko_Y[1], new Rectangle( 0, 0, TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Width / 2, TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Height) ); + TJAPlayer3.Tx.Taiko_Don_Right.t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_X[1] + TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Width / 2, TJAPlayer3.Skin.Game_Taiko_Y[1], new Rectangle(TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Width / 2, 0, TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Width / 2, TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Height) ); + } + + int[] nLVUPY = new int[] { 127, 127, 0, 0 }; + + for ( int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++ ) + { + if( !this.ctレベルアップダウン[ i ].b停止中 ) + { + this.ctレベルアップダウン[ i ].t進行(); + if( this.ctレベルアップダウン[ i ].b終了値に達した ) { + this.ctレベルアップダウン[ i ].t停止(); + } + } + if( ( this.ctレベルアップダウン[ i ].b進行中 && ( TJAPlayer3.Tx.Taiko_LevelUp != null && TJAPlayer3.Tx.Taiko_LevelDown != null ) ) && !TJAPlayer3.ConfigIni.bNoInfo ) + { + //this.ctレベルアップダウン[ i ].n現在の値 = 110; + + //2017.08.21 kairera0467 t3D描画に変更。 + float fScale = 1.0f; + int nAlpha = 255; + float[] fY = new float[] { 206, -206, 0, 0 }; + if( this.ctレベルアップダウン[ i ].n現在の値 >= 0 && this.ctレベルアップダウン[ i ].n現在の値 <= 20 ) + { + nAlpha = 60; + fScale = 1.14f; + } + else if( this.ctレベルアップダウン[ i ].n現在の値 >= 21 && this.ctレベルアップダウン[ i ].n現在の値 <= 40 ) + { + nAlpha = 60; + fScale = 1.19f; + } + else if( this.ctレベルアップダウン[ i ].n現在の値 >= 41 && this.ctレベルアップダウン[ i ].n現在の値 <= 60 ) + { + nAlpha = 220; + fScale = 1.23f; + } + else if( this.ctレベルアップダウン[ i ].n現在の値 >= 61 && this.ctレベルアップダウン[ i ].n現在の値 <= 80 ) + { + nAlpha = 230; + fScale = 1.19f; + } + else if( this.ctレベルアップダウン[ i ].n現在の値 >= 81 && this.ctレベルアップダウン[ i ].n現在の値 <= 100 ) + { + nAlpha = 240; + fScale = 1.14f; + } + else if( this.ctレベルアップダウン[ i ].n現在の値 >= 101 && this.ctレベルアップダウン[ i ].n現在の値 <= 120 ) + { + nAlpha = 255; + fScale = 1.04f; + } + else + { + nAlpha = 255; + fScale = 1.0f; + } + + SlimDX.Matrix mat = SlimDX.Matrix.Identity; + mat *= SlimDX.Matrix.Scaling( fScale, fScale, 1.0f ); + mat *= SlimDX.Matrix.Translation( -329, fY[ i ], 0 ); + if( this.After[ i ] - this.Before[ i ] >= 0 ) + { + //レベルアップ + TJAPlayer3.Tx.Taiko_LevelUp.Opacity = nAlpha; + TJAPlayer3.Tx.Taiko_LevelUp.t3D描画( TJAPlayer3.app.Device, mat ); + } + else + { + TJAPlayer3.Tx.Taiko_LevelDown.Opacity = nAlpha; + TJAPlayer3.Tx.Taiko_LevelDown.t3D描画( TJAPlayer3.app.Device, mat ); + } + } + } + + for( int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++ ) + { + // 2018/7/1 一時的にオプション画像の廃止。オプション画像については後日作り直します。(AioiLight) + //if( !CDTXMania.ConfigIni.bNoInfo && CDTXMania.Skin.eDiffDispMode != E難易度表示タイプ.mtaikoに画像で表示 ) + //{ + // this.txオプションパネル_HS.t2D描画( CDTXMania.app.Device, 0, 230, new Rectangle( 0, this.nHS * 44, 162, 44 ) ); + // switch( CDTXMania.ConfigIni.eRandom.Taiko ) + // { + // case Eランダムモード.RANDOM: + // if( this.txオプションパネル_RANMIR != null ) + // this.txオプションパネル_RANMIR.t2D描画( CDTXMania.app.Device, 0, 264, new Rectangle( 0, 0, 162, 44 ) ); + // break; + // case Eランダムモード.HYPERRANDOM: + // if( this.txオプションパネル_RANMIR != null ) + // this.txオプションパネル_RANMIR.t2D描画( CDTXMania.app.Device, 0, 264, new Rectangle( 0, 88, 162, 44 ) ); + // break; + // case Eランダムモード.SUPERRANDOM: + // if( this.txオプションパネル_RANMIR != null ) + // this.txオプションパネル_RANMIR.t2D描画( CDTXMania.app.Device, 0, 264, new Rectangle( 0, 132, 162, 44 ) ); + // break; + // case Eランダムモード.MIRROR: + // if( this.txオプションパネル_RANMIR != null ) + // this.txオプションパネル_RANMIR.t2D描画( CDTXMania.app.Device, 0, 264, new Rectangle( 0, 44, 162, 44 ) ); + // break; + // } + + // if( CDTXMania.ConfigIni.eSTEALTH == Eステルスモード.STEALTH ) + // this.txオプションパネル_特殊.t2D描画( CDTXMania.app.Device, 0, 300, new Rectangle( 0, 0, 162, 44 ) ); + // else if( CDTXMania.ConfigIni.eSTEALTH == Eステルスモード.DORON ) + // this.txオプションパネル_特殊.t2D描画( CDTXMania.app.Device, 0, 300, new Rectangle( 0, 44, 162, 44 ) ); + //} + if (TJAPlayer3.Tx.Couse_Symbol[TJAPlayer3.stage選曲.n確定された曲の難易度[i]] != null) + { + TJAPlayer3.Tx.Couse_Symbol[TJAPlayer3.stage選曲.n確定された曲の難易度[i]].t2D描画(TJAPlayer3.app.Device, + TJAPlayer3.Skin.Game_CourseSymbol_X[i], + TJAPlayer3.Skin.Game_CourseSymbol_Y[i] + ); + } + + if (TJAPlayer3.ConfigIni.ShinuchiMode) + { + if (TJAPlayer3.Tx.Couse_Symbol[(int)Difficulty.Total] != null) + { + TJAPlayer3.Tx.Couse_Symbol[(int)Difficulty.Total].t2D描画(TJAPlayer3.app.Device, + TJAPlayer3.Skin.Game_CourseSymbol_X[i], + TJAPlayer3.Skin.Game_CourseSymbol_Y[i] + ); + } + + } + } + + TJAPlayer3.NamePlate.tNamePlateDraw(TJAPlayer3.Skin.Game_Taiko_NamePlate_X[0], TJAPlayer3.Skin.Game_Taiko_NamePlate_Y[0], 0); + + if(TJAPlayer3.stage演奏ドラム画面.bDoublePlay) + { + TJAPlayer3.NamePlate.tNamePlateDraw(TJAPlayer3.Skin.Game_Taiko_NamePlate_X[1], TJAPlayer3.Skin.Game_Taiko_NamePlate_Y[1], 1); + } + + if (TJAPlayer3.Tx.Taiko_PlayerNumber[0] != null) + { + TJAPlayer3.Tx.Taiko_PlayerNumber[0].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_PlayerNumber_X[0], TJAPlayer3.Skin.Game_Taiko_PlayerNumber_Y[0]); + } + if (TJAPlayer3.stage演奏ドラム画面.bDoublePlay && TJAPlayer3.Tx.Taiko_PlayerNumber[1] != null) + { + TJAPlayer3.Tx.Taiko_PlayerNumber[1].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_PlayerNumber_X[1], TJAPlayer3.Skin.Game_Taiko_PlayerNumber_Y[1]); + } + return base.On進行描画(); + } + + public void tMtaikoEvent( int nChannel, int nHand, int nPlayer ) + { + if( !TJAPlayer3.ConfigIni.b太鼓パートAutoPlay ) + { + switch( nChannel ) + { + case 0x11: + case 0x13: + case 0x15: + case 0x16: + case 0x17: + { + this.stパッド状態[ 2 + nHand + ( 4 * nPlayer ) ].n明るさ = 8; + } + break; + case 0x12: + case 0x14: + { + this.stパッド状態[ nHand + ( 4 * nPlayer ) ].n明るさ = 8; + } + break; + + } + } + else + { + switch( nChannel ) + { + case 0x11: + case 0x15: + case 0x16: + case 0x17: + { + this.stパッド状態[ 2 + nHand + ( 4 * nPlayer ) ].n明るさ = 8; + } + break; + + case 0x13: + { + this.stパッド状態[ 2 + ( 4 * nPlayer ) ].n明るさ = 8; + this.stパッド状態[ 3 + ( 4 * nPlayer ) ].n明るさ = 8; + } + break; + + case 0x12: + { + this.stパッド状態[ nHand + ( 4 * nPlayer ) ].n明るさ = 8; + } + break; + + case 0x14: + { + this.stパッド状態[ 0 + ( 4 * nPlayer ) ].n明るさ = 8; + this.stパッド状態[ 1 + ( 4 * nPlayer ) ].n明るさ = 8; + } + break; + } + } + + } + + public void tBranchEvent(CDTX.ECourse Before, CDTX.ECourse After, int player) + { + if ( After != Before ) + this.ctレベルアップダウン[ player ] = new CCounter( 0, 1000, 1, TJAPlayer3.Timer ); + + this.After[ player ] = After; + this.Before[ player ] = Before; + } + + + #region[ private ] + //----------------- + //構造体 + [StructLayout(LayoutKind.Sequential)] + private struct STパッド状態 + { + public int n明るさ; + } + + //太鼓 + private STパッド状態[] stパッド状態 = new STパッド状態[ 4 * 4 ]; + private long nフラッシュ制御タイマ; + + //private CTexture[] txコースシンボル = new CTexture[ 6 ]; + private string[] strCourseSymbolFileName; + + //オプション + private CTexture txオプションパネル_HS; + private CTexture txオプションパネル_RANMIR; + private CTexture txオプションパネル_特殊; + private int nHS; + + //譜面分岐 + private CCounter[] ctレベルアップダウン; + public CDTX.ECourse[] After; + public CDTX.ECourse[] Before; + //----------------- + #endregion + + } +} +  diff --git a/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsキャラクター.cs b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsキャラクター.cs new file mode 100644 index 00000000..2067b8a5 --- /dev/null +++ b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsキャラクター.cs @@ -0,0 +1,394 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Globalization; +using System.Runtime.InteropServices; +using System.Drawing; +using System.Diagnostics; +using FDK; + + +namespace TJAPlayer3 +{ + //クラスの設置位置は必ず演奏画面共通に置くこと。 + //そうしなければBPM変化に対応できません。 + + //完成している部分は以下のとおり。(画像完成+動作確認完了で完成とする) + //_通常モーション + //_ゴーゴータイムモーション + //_クリア時モーション + // + internal class CAct演奏Drumsキャラクター : CActivity + { + public CAct演奏Drumsキャラクター() + { + + } + + public override void On活性化() + { + for(int i = 0; i < 2; i++) + { + ctChara_Normal[i] = new CCounter(); + ctChara_GoGo[i] = new CCounter(); + ctChara_Clear[i] = new CCounter(); + + this.ctキャラクターアクション_10コンボ[i] = new CCounter(); + this.ctキャラクターアクション_10コンボMAX[i] = new CCounter(); + this.ctキャラクターアクション_ゴーゴースタート[i] = new CCounter(); + this.ctキャラクターアクション_ゴーゴースタートMAX[i] = new CCounter(); + this.ctキャラクターアクション_ノルマ[i] = new CCounter(); + this.ctキャラクターアクション_魂MAX[i] = new CCounter(); + + CharaAction_Balloon_Breaking[i] = new CCounter(); + CharaAction_Balloon_Broke[i] = new CCounter(); + CharaAction_Balloon_Miss[i] = new CCounter(); + CharaAction_Balloon_Delay[i] = new CCounter(); + + this.b風船連打中[i] = false; + this.b演奏中[i] = false; + + CharaAction_Balloon_FadeOut[i] = new Animations.FadeOut(TJAPlayer3.Skin.Game_Chara_Balloon_FadeOut); + + this.bマイどんアクション中[i] = false; + } + + // ふうせん系アニメーションの総再生時間は画像枚数 x Tick間隔なので、 + // フェードアウトの開始タイミングは、総再生時間 - フェードアウト時間。 + var tick = TJAPlayer3.Skin.Game_Chara_Balloon_Timer; + var balloonBrokePtn = TJAPlayer3.Skin.Game_Chara_Ptn_Balloon_Broke; + var balloonMissPtn = TJAPlayer3.Skin.Game_Chara_Ptn_Balloon_Miss; + CharaAction_Balloon_FadeOut_StartMs[0] = (balloonBrokePtn * tick) - TJAPlayer3.Skin.Game_Chara_Balloon_FadeOut; + CharaAction_Balloon_FadeOut_StartMs[1] = (balloonMissPtn * tick) - TJAPlayer3.Skin.Game_Chara_Balloon_FadeOut; + if (balloonBrokePtn > 1) CharaAction_Balloon_FadeOut_StartMs[0] /= balloonBrokePtn - 1; + if (balloonMissPtn > 1) CharaAction_Balloon_FadeOut_StartMs[1] /= balloonMissPtn - 1; // - 1はタイマー用 + + base.On活性化(); + } + + public override void On非活性化() + { + for (int i = 0; i < 2; i++) + { + ctChara_Normal[i] = null; + ctChara_GoGo[i] = null; + ctChara_Clear[i] = null; + this.ctキャラクターアクション_10コンボ[i] = null; + this.ctキャラクターアクション_10コンボMAX[i] = null; + this.ctキャラクターアクション_ゴーゴースタート[i] = null; + this.ctキャラクターアクション_ゴーゴースタートMAX[i] = null; + this.ctキャラクターアクション_ノルマ[i] = null; + this.ctキャラクターアクション_魂MAX[i] = null; + + CharaAction_Balloon_Breaking[i] = null; + CharaAction_Balloon_Broke[i] = null; + CharaAction_Balloon_Miss[i] = null; + CharaAction_Balloon_Delay[i] = null; + + CharaAction_Balloon_FadeOut[i] = null; + } + + base.On非活性化(); + } + + public override void OnManagedリソースの作成() + { + this.arモーション番号 = C変換.ar配列形式のstringをint配列に変換して返す( TJAPlayer3.Skin.Game_Chara_Motion_Normal); + this.arゴーゴーモーション番号 = C変換.ar配列形式のstringをint配列に変換して返す(TJAPlayer3.Skin.Game_Chara_Motion_GoGo); + this.arクリアモーション番号 = C変換.ar配列形式のstringをint配列に変換して返す(TJAPlayer3.Skin.Game_Chara_Motion_Clear); + if (arモーション番号 == null) this.arモーション番号 = C変換.ar配列形式のstringをint配列に変換して返す("0,0"); + if (arゴーゴーモーション番号 == null) this.arゴーゴーモーション番号 = C変換.ar配列形式のstringをint配列に変換して返す("0,0"); + if (arクリアモーション番号 == null) this.arクリアモーション番号 = C変換.ar配列形式のstringをint配列に変換して返す("0,0"); + for (int i = 0; i < 2; i++) + { + ctChara_Normal[i] = new CCounter(0, arモーション番号.Length - 1, 10, CSound管理.rc演奏用タイマ); + ctChara_GoGo[i] = new CCounter(0, arゴーゴーモーション番号.Length - 1, 10, CSound管理.rc演奏用タイマ); + ctChara_Clear[i] = new CCounter(0, arクリアモーション番号.Length - 1, 10, CSound管理.rc演奏用タイマ); + if (CharaAction_Balloon_Delay[i] != null) CharaAction_Balloon_Delay[i].n現在の値 = (int)CharaAction_Balloon_Delay[i].n終了値; + } + base.OnManagedリソースの作成(); + } + + public override void OnManagedリソースの解放() + { + base.OnManagedリソースの解放(); + } + + public override int On進行描画() + { + for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) + { + if (ctChara_Normal != null || TJAPlayer3.Skin.Game_Chara_Ptn_Normal != 0) ctChara_Normal[i].t進行LoopDb(); + if (ctChara_GoGo != null || TJAPlayer3.Skin.Game_Chara_Ptn_GoGo != 0) ctChara_GoGo[i].t進行LoopDb(); + if (ctChara_Clear != null || TJAPlayer3.Skin.Game_Chara_Ptn_Clear != 0) ctChara_Clear[i].t進行LoopDb(); + if (this.ctキャラクターアクション_10コンボ != null || TJAPlayer3.Skin.Game_Chara_Ptn_10combo != 0) this.ctキャラクターアクション_10コンボ[i].t進行db(); + if (this.ctキャラクターアクション_10コンボMAX != null || TJAPlayer3.Skin.Game_Chara_Ptn_10combo_Max != 0) this.ctキャラクターアクション_10コンボMAX[i].t進行db(); + if (this.ctキャラクターアクション_ゴーゴースタート != null || TJAPlayer3.Skin.Game_Chara_Ptn_GoGoStart != 0) this.ctキャラクターアクション_ゴーゴースタート[i].t進行db(); + if (this.ctキャラクターアクション_ゴーゴースタートMAX != null || TJAPlayer3.Skin.Game_Chara_Ptn_GoGoStart_Max != 0) this.ctキャラクターアクション_ゴーゴースタートMAX[i].t進行db(); + if (this.ctキャラクターアクション_ノルマ != null || TJAPlayer3.Skin.Game_Chara_Ptn_ClearIn != 0) this.ctキャラクターアクション_ノルマ[i].t進行db(); + if (this.ctキャラクターアクション_魂MAX != null || TJAPlayer3.Skin.Game_Chara_Ptn_SoulIn != 0) this.ctキャラクターアクション_魂MAX[i].t進行db(); + + + if (this.b風船連打中[i] != true && this.bマイどんアクション中[i] != true && CharaAction_Balloon_Delay[i].b終了値に達した) + { + if (!TJAPlayer3.stage演奏ドラム画面.bIsGOGOTIME[i]) + { + if (TJAPlayer3.stage演奏ドラム画面.actGauge.db現在のゲージ値[i] >= 100.0 && TJAPlayer3.Skin.Game_Chara_Ptn_Clear != 0) + { + if (TJAPlayer3.Skin.Game_Chara_Ptn_Clear != 0) + TJAPlayer3.Tx.Chara_Normal_Maxed[this.arクリアモーション番号[(int)this.ctChara_Clear[i].n現在の値]].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Chara_X[i], TJAPlayer3.Skin.Game_Chara_Y[i]); + } + else if (TJAPlayer3.stage演奏ドラム画面.actGauge.db現在のゲージ値[i] >= 80.0 && TJAPlayer3.Skin.Game_Chara_Ptn_Clear != 0) + { + if (TJAPlayer3.Skin.Game_Chara_Ptn_Clear != 0) + { + TJAPlayer3.Tx.Chara_Normal_Cleared[this.arクリアモーション番号[(int)this.ctChara_Clear[i].n現在の値]].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Chara_X[i], TJAPlayer3.Skin.Game_Chara_Y[i]); + } + } + else + { + if (TJAPlayer3.Skin.Game_Chara_Ptn_Normal != 0) + { + TJAPlayer3.Tx.Chara_Normal[this.arモーション番号[(int)this.ctChara_Normal[i].n現在の値]].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Chara_X[i], TJAPlayer3.Skin.Game_Chara_Y[i]); + } + } + } + else + { + if (TJAPlayer3.stage演奏ドラム画面.actGauge.db現在のゲージ値[i] >= 100.0 && TJAPlayer3.Skin.Game_Chara_Ptn_GoGo != 0) + { + if (TJAPlayer3.Skin.Game_Chara_Ptn_GoGo != 0) + TJAPlayer3.Tx.Chara_GoGoTime_Maxed[this.arゴーゴーモーション番号[(int)this.ctChara_GoGo[i].n現在の値]].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Chara_X[i], TJAPlayer3.Skin.Game_Chara_Y[i]); + } + else + { + if (TJAPlayer3.Skin.Game_Chara_Ptn_GoGo != 0) + TJAPlayer3.Tx.Chara_GoGoTime[this.arゴーゴーモーション番号[(int)this.ctChara_GoGo[i].n現在の値]].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Chara_X[i], TJAPlayer3.Skin.Game_Chara_Y[i]); + } + } + } + + if (this.b風船連打中[i] != true && bマイどんアクション中[i] == true && CharaAction_Balloon_Delay[i].b終了値に達した) + { + + if (this.ctキャラクターアクション_10コンボ[i].b進行中) + { + if (TJAPlayer3.Tx.Chara_10Combo[i] != null && TJAPlayer3.Skin.Game_Chara_Ptn_10combo != 0) + { + TJAPlayer3.Tx.Chara_10Combo[(int)this.ctキャラクターアクション_10コンボ[i].n現在の値].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Chara_X[i], TJAPlayer3.Skin.Game_Chara_Y[i]); + } + if (this.ctキャラクターアクション_10コンボ[i].b終了値に達した) + { + this.bマイどんアクション中[i] = false; + this.ctキャラクターアクション_10コンボ[i].t停止(); + this.ctキャラクターアクション_10コンボ[i].n現在の値 = 0; + } + } + + + if (this.ctキャラクターアクション_10コンボMAX[i].b進行中) + { + if (TJAPlayer3.Tx.Chara_10Combo_Maxed[i] != null && TJAPlayer3.Skin.Game_Chara_Ptn_10combo_Max != 0) + { + TJAPlayer3.Tx.Chara_10Combo_Maxed[(int)this.ctキャラクターアクション_10コンボMAX[i].n現在の値].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Chara_X[i], TJAPlayer3.Skin.Game_Chara_Y[i]); + } + if (this.ctキャラクターアクション_10コンボMAX[i].b終了値に達した) + { + this.bマイどんアクション中[i] = false; + this.ctキャラクターアクション_10コンボMAX[i].t停止(); + this.ctキャラクターアクション_10コンボMAX[i].n現在の値 = 0; + } + + } + + if (this.ctキャラクターアクション_ゴーゴースタート[i].b進行中) + { + if (TJAPlayer3.Tx.Chara_GoGoStart[i] != null && TJAPlayer3.Skin.Game_Chara_Ptn_GoGoStart != 0) + { + TJAPlayer3.Tx.Chara_GoGoStart[(int)this.ctキャラクターアクション_ゴーゴースタート[i].n現在の値].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Chara_X[i], TJAPlayer3.Skin.Game_Chara_Y[i]); + } + if (this.ctキャラクターアクション_ゴーゴースタート[i].b終了値に達した) + { + this.bマイどんアクション中[i] = false; + this.ctキャラクターアクション_ゴーゴースタート[i].t停止(); + this.ctキャラクターアクション_ゴーゴースタート[i].n現在の値 = 0; + this.ctChara_GoGo[i].n現在の値 = TJAPlayer3.Skin.Game_Chara_Ptn_GoGo / 2; + } + } + + if (this.ctキャラクターアクション_ゴーゴースタートMAX[i].b進行中) + { + if (TJAPlayer3.Tx.Chara_GoGoStart_Maxed[i] != null && TJAPlayer3.Skin.Game_Chara_Ptn_GoGoStart_Max != 0) + { + TJAPlayer3.Tx.Chara_GoGoStart_Maxed[(int)this.ctキャラクターアクション_ゴーゴースタートMAX[i].n現在の値].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Chara_X[i], TJAPlayer3.Skin.Game_Chara_Y[i]); + } + if (this.ctキャラクターアクション_ゴーゴースタートMAX[i].b終了値に達した) + { + this.bマイどんアクション中[i] = false; + this.ctキャラクターアクション_ゴーゴースタートMAX[i].t停止(); + this.ctキャラクターアクション_ゴーゴースタートMAX[i].n現在の値 = 0; + this.ctChara_GoGo[i].n現在の値 = TJAPlayer3.Skin.Game_Chara_Ptn_GoGo / 2; + } + } + + if (this.ctキャラクターアクション_ノルマ[i].b進行中) + { + if (TJAPlayer3.Tx.Chara_Become_Cleared[i] != null && TJAPlayer3.Skin.Game_Chara_Ptn_ClearIn != 0) + { + TJAPlayer3.Tx.Chara_Become_Cleared[(int)this.ctキャラクターアクション_ノルマ[i].n現在の値].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Chara_X[i], TJAPlayer3.Skin.Game_Chara_Y[i]); + } + if (this.ctキャラクターアクション_ノルマ[i].b終了値に達した) + { + this.bマイどんアクション中[i] = false; + this.ctキャラクターアクション_ノルマ[i].t停止(); + this.ctキャラクターアクション_ノルマ[i].n現在の値 = 0; + } + } + + if (this.ctキャラクターアクション_魂MAX[i].b進行中) + { + if (TJAPlayer3.Tx.Chara_Become_Maxed[i] != null && TJAPlayer3.Skin.Game_Chara_Ptn_SoulIn != 0) + { + TJAPlayer3.Tx.Chara_Become_Maxed[(int)this.ctキャラクターアクション_魂MAX[i].n現在の値].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Chara_X[i], TJAPlayer3.Skin.Game_Chara_Y[i]); + } + if (this.ctキャラクターアクション_魂MAX[i].b終了値に達した) + { + this.bマイどんアクション中[i] = false; + this.ctキャラクターアクション_魂MAX[i].t停止(); + this.ctキャラクターアクション_魂MAX[i].n現在の値 = 0; + } + } + } + if (this.b風船連打中[i] != true && CharaAction_Balloon_Delay[i].b終了値に達した) + { + TJAPlayer3.stage演奏ドラム画面.PuchiChara.On進行描画(TJAPlayer3.Skin.Game_PuchiChara_X[i], TJAPlayer3.Skin.Game_PuchiChara_Y[i], TJAPlayer3.stage演奏ドラム画面.bIsAlreadyMaxed[i]); + } + } + return base.On進行描画(); + } + + public void OnDraw_Balloon() + { + for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) + { + if (TJAPlayer3.Skin.Game_Chara_Ptn_Balloon_Breaking != 0) CharaAction_Balloon_Breaking[i]?.t進行(); + if (TJAPlayer3.Skin.Game_Chara_Ptn_Balloon_Broke != 0) CharaAction_Balloon_Broke[i]?.t進行(); + CharaAction_Balloon_Delay[i]?.t進行(); + if (TJAPlayer3.Skin.Game_Chara_Ptn_Balloon_Miss != 0) CharaAction_Balloon_Miss[i]?.t進行(); + CharaAction_Balloon_FadeOut[i].Tick(); + + //CharaAction_Balloon_Delay?.t進行(); + //CDTXMania.act文字コンソール.tPrint(0, 0, C文字コンソール.Eフォント種別.白, CharaAction_Balloon_Broke?.b進行中.ToString()); + //CDTXMania.act文字コンソール.tPrint(0, 20, C文字コンソール.Eフォント種別.白, CharaAction_Balloon_Miss?.b進行中.ToString()); + //CDTXMania.act文字コンソール.tPrint(0, 40, C文字コンソール.Eフォント種別.白, CharaAction_Balloon_Breaking?.b進行中.ToString()); + + if (bマイどんアクション中[i]) + { + var nowOpacity = CharaAction_Balloon_FadeOut[i].Counter.b進行中 ? (int)CharaAction_Balloon_FadeOut[i].GetAnimation() : 255; + if (CharaAction_Balloon_Broke[i]?.b進行中 == true && TJAPlayer3.Skin.Game_Chara_Ptn_Balloon_Broke != 0) + { + if (CharaAction_Balloon_FadeOut[i].Counter.b停止中 && CharaAction_Balloon_Broke[i].n現在の値 > CharaAction_Balloon_FadeOut_StartMs[i]) + { + CharaAction_Balloon_FadeOut[i].Start(); + } + if (TJAPlayer3.Tx.Chara_Balloon_Broke[CharaAction_Balloon_Broke[i].n現在の値] != null) + { + TJAPlayer3.Tx.Chara_Balloon_Broke[CharaAction_Balloon_Broke[i].n現在の値].Opacity = nowOpacity; + TJAPlayer3.Tx.Chara_Balloon_Broke[CharaAction_Balloon_Broke[i].n現在の値].t2D描画(TJAPlayer3.app.Device, (TJAPlayer3.Skin.nScrollFieldX[0] - TJAPlayer3.stage演奏ドラム画面.actLaneTaiko.nDefaultJudgePos[0, 0]) + TJAPlayer3.Skin.Game_Chara_Balloon_X[0], TJAPlayer3.Skin.Game_Chara_Balloon_Y[i]); + } + TJAPlayer3.stage演奏ドラム画面.PuchiChara.On進行描画((TJAPlayer3.Skin.nScrollFieldX[0] - TJAPlayer3.stage演奏ドラム画面.actLaneTaiko.nDefaultJudgePos[0, 0]) + TJAPlayer3.Skin.Game_PuchiChara_BalloonX[0], TJAPlayer3.Skin.Game_PuchiChara_BalloonY[i], false, nowOpacity, true); + if (CharaAction_Balloon_Broke[i].b終了値に達した) + { + CharaAction_Balloon_Broke[i].t停止(); + CharaAction_Balloon_Broke[i].n現在の値 = 0; + bマイどんアクション中[i] = false; + } + } + else if (CharaAction_Balloon_Miss[i]?.b進行中 == true && TJAPlayer3.Skin.Game_Chara_Ptn_Balloon_Miss != 0) + { + if (CharaAction_Balloon_FadeOut[i].Counter.b停止中 && CharaAction_Balloon_Miss[i].n現在の値 > CharaAction_Balloon_FadeOut_StartMs[1]) + { + CharaAction_Balloon_FadeOut[i].Start(); + } + if (TJAPlayer3.Tx.Chara_Balloon_Miss[CharaAction_Balloon_Miss[i].n現在の値] != null) + { + TJAPlayer3.Tx.Chara_Balloon_Miss[CharaAction_Balloon_Miss[i].n現在の値].Opacity = nowOpacity; + TJAPlayer3.Tx.Chara_Balloon_Miss[CharaAction_Balloon_Miss[i].n現在の値].t2D描画(TJAPlayer3.app.Device, (TJAPlayer3.Skin.nScrollFieldX[0] - TJAPlayer3.stage演奏ドラム画面.actLaneTaiko.nDefaultJudgePos[0, 0]) + TJAPlayer3.Skin.Game_Chara_Balloon_X[0], TJAPlayer3.Skin.Game_Chara_Balloon_Y[i]); + } + TJAPlayer3.stage演奏ドラム画面.PuchiChara.On進行描画((TJAPlayer3.Skin.nScrollFieldX[0] - TJAPlayer3.stage演奏ドラム画面.actLaneTaiko.nDefaultJudgePos[0, 0]) + TJAPlayer3.Skin.Game_PuchiChara_BalloonX[0], TJAPlayer3.Skin.Game_PuchiChara_BalloonY[i], false, nowOpacity, true); + if (CharaAction_Balloon_Miss[i].b終了値に達した) + { + CharaAction_Balloon_Miss[i].t停止(); + CharaAction_Balloon_Miss[i].n現在の値 = 0; + bマイどんアクション中[i] = false; + } + } + else if (CharaAction_Balloon_Breaking[i]?.b進行中 == true && TJAPlayer3.Skin.Game_Chara_Ptn_Balloon_Breaking != 0) + { + TJAPlayer3.Tx.Chara_Balloon_Breaking[CharaAction_Balloon_Breaking[i].n現在の値]?.t2D描画(TJAPlayer3.app.Device, (TJAPlayer3.Skin.nScrollFieldX[0] - TJAPlayer3.stage演奏ドラム画面.actLaneTaiko.nDefaultJudgePos[0, 0]) + TJAPlayer3.Skin.Game_Chara_Balloon_X[0], TJAPlayer3.Skin.Game_Chara_Balloon_Y[i]); + TJAPlayer3.stage演奏ドラム画面.PuchiChara.On進行描画((TJAPlayer3.Skin.nScrollFieldX[0] - TJAPlayer3.stage演奏ドラム画面.actLaneTaiko.nDefaultJudgePos[0, 0]) + TJAPlayer3.Skin.Game_PuchiChara_BalloonX[0], TJAPlayer3.Skin.Game_PuchiChara_BalloonY[i], false, 255, true); + } + + //if (CDTXMania.stage演奏ドラム画面.actChara.CharaAction_Balloon_Breaking?.b終了値に達した == true) + //{ + // CDTXMania.stage演奏ドラム画面.actChara.bマイどんアクション中 = false; + // CDTXMania.stage演奏ドラム画面.actChara.CharaAction_Balloon_Breaking.t停止(); + // CDTXMania.stage演奏ドラム画面.actChara.CharaAction_Balloon_Breaking.n現在の値 = 0; + //} + + } + } + } + + public void アクションタイマーリセット(int player) + { + ctキャラクターアクション_10コンボ[player].t停止(); + ctキャラクターアクション_10コンボMAX[player].t停止(); + ctキャラクターアクション_ゴーゴースタート[player].t停止(); + ctキャラクターアクション_ゴーゴースタートMAX[player].t停止(); + ctキャラクターアクション_ノルマ[player].t停止(); + ctキャラクターアクション_魂MAX[player].t停止(); + ctキャラクターアクション_10コンボ[player].n現在の値 = 0; + ctキャラクターアクション_10コンボMAX[player].n現在の値 = 0; + ctキャラクターアクション_ゴーゴースタート[player].n現在の値 = 0; + ctキャラクターアクション_ゴーゴースタートMAX[player].n現在の値 = 0; + ctキャラクターアクション_ノルマ[player].n現在の値 = 0; + ctキャラクターアクション_魂MAX[player].n現在の値 = 0; + CharaAction_Balloon_Breaking[player]?.t停止(); + CharaAction_Balloon_Broke[player]?.t停止(); + CharaAction_Balloon_Miss[player]?.t停止(); + //CharaAction_Balloon_Delay?.t停止(); + CharaAction_Balloon_Breaking[player].n現在の値 = 0; + CharaAction_Balloon_Broke[player].n現在の値 = 0; + CharaAction_Balloon_Miss[player].n現在の値 = 0; + //CharaAction_Balloon_Delay.n現在の値 = 0; + } + + public int[] arモーション番号; + public int[] arゴーゴーモーション番号; + public int[] arクリアモーション番号; + + public CCounter[] ctキャラクターアクション_10コンボ = new CCounter[2]; + public CCounter[] ctキャラクターアクション_10コンボMAX = new CCounter[2]; + public CCounter[] ctキャラクターアクション_ゴーゴースタート = new CCounter[2]; + public CCounter[] ctキャラクターアクション_ゴーゴースタートMAX = new CCounter[2]; + public CCounter[] ctキャラクターアクション_ノルマ = new CCounter[2]; + public CCounter[] ctキャラクターアクション_魂MAX = new CCounter[2]; + public CCounter[] CharaAction_Balloon_Breaking = new CCounter[2]; + public CCounter[] CharaAction_Balloon_Broke = new CCounter[2]; + public CCounter[] CharaAction_Balloon_Miss = new CCounter[2]; + public CCounter[] CharaAction_Balloon_Delay = new CCounter[2]; + + public CCounter[] ctChara_Normal = new CCounter[2]; + public CCounter[] ctChara_GoGo = new CCounter[2]; + public CCounter[] ctChara_Clear = new CCounter[2]; + + public Animations.FadeOut[] CharaAction_Balloon_FadeOut = new Animations.FadeOut[2]; + private readonly int[] CharaAction_Balloon_FadeOut_StartMs = new int[2]; + + public bool[] bマイどんアクション中 = new bool[2]; + + public bool[] b風船連打中 = new bool[2]; + public bool[] b演奏中 = new bool[2]; + } +} diff --git a/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsグラフ.cs b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsグラフ.cs new file mode 100644 index 00000000..267642d0 --- /dev/null +++ b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsグラフ.cs @@ -0,0 +1,67 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Runtime.InteropServices; +using System.Drawing; +using System.IO; +using SlimDX; +using FDK; + +namespace TJAPlayer3 +{ + internal class CAct演奏Drumsグラフ : CActivity + { + + // コンストラクタ + + public CAct演奏Drumsグラフ() + { + base.b活性化してない = true; + } + + + // CActivity 実装 + + public override void On活性化() + { + base.On活性化(); + } + public override void On非活性化() + { + base.On非活性化(); + } + public override void OnManagedリソースの作成() + { + if( !base.b活性化してない ) + { + base.OnManagedリソースの作成(); + } + } + public override void OnManagedリソースの解放() + { + if( !base.b活性化してない ) + { + base.OnManagedリソースの解放(); + } + } + public override int On進行描画() + { + if( !base.b活性化してない ) + { + if( base.b初めての進行描画 ) + { + } + + } + return 0; + } + + + // その他 + + #region [ private ] + //---------------- + //----------------- + #endregion + } +} diff --git a/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsゲージ.cs b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsゲージ.cs new file mode 100644 index 00000000..999948e2 --- /dev/null +++ b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsゲージ.cs @@ -0,0 +1,466 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Runtime.InteropServices; +using System.Drawing; +using System.Diagnostics; +using SlimDX; +using FDK; + +namespace TJAPlayer3 +{ + internal class CAct演奏Drumsゲージ : CAct演奏ゲージ共通 + { + // プロパティ + +// public double db現在のゲージ値 +// { +// get +// { +// return this.dbゲージ値; +// } +// set +// { +// this.dbゲージ値 = value; +// if( this.dbゲージ値 > 1.0 ) +// { +// this.dbゲージ値 = 1.0; +// } +// } +// } + + + // コンストラクタ + /// + /// ゲージの描画クラス。ドラム側。 + /// + /// 課題 + /// _ゲージの実装。 + /// _Danger時にゲージの色が変わる演出の実装。 + /// _Danger、MAX時のアニメーション実装。 + /// + public CAct演奏Drumsゲージ() + { + base.b活性化してない = true; + } + + public override void Start(int nLane, E判定 judge, int player) + { + for (int j = 0; j < 32; j++) + { + if( player == 0 ) + { + if( !this.st花火状態[ j ].b使用中 ) + { + this.st花火状態[j].ct進行 = new CCounter(0, 10, 20, TJAPlayer3.Timer); + this.st花火状態[j].nPlayer = player; + + switch (nLane) + { + case 0x11: + case 0x12: + case 0x15: + this.st花火状態[j].isBig = false; + break; + case 0x13: + case 0x14: + case 0x16: + case 0x17: + this.st花火状態[j].isBig = true; + break; + } + this.st花火状態[j].nLane = nLane; + + this.st花火状態[j].b使用中 = true; + break; + } + } + if( player == 1 ) + { + if( !this.st花火状態2P[ j ].b使用中 ) + { + this.st花火状態2P[ j ].ct進行 = new CCounter(0, 10, 20, TJAPlayer3.Timer); + this.st花火状態2P[ j ].nPlayer = player; + + switch (nLane) + { + case 0x11: + case 0x12: + case 0x15: + this.st花火状態2P[ j ].isBig = false; + break; + case 0x13: + case 0x14: + case 0x16: + case 0x17: + this.st花火状態2P[ j ].isBig = true; + break; + } + this.st花火状態2P[j].nLane = nLane; + this.st花火状態2P[ j ].b使用中 = true; + break; + } + } + } + } + + // CActivity 実装 + + public override void On活性化() + { + this.ct炎 = new CCounter( 0, 6, 50, TJAPlayer3.Timer ); + + for (int i = 0; i < 32; i++ ) + { + this.st花火状態[i].ct進行 = new CCounter(); + this.st花火状態2P[i].ct進行 = new CCounter(); + } + base.On活性化(); + } + public override void On非活性化() + { + for (int i = 0; i < 32; i++ ) + { + this.st花火状態[i].ct進行 = null; + this.st花火状態2P[i].ct進行 = null; + } + this.ct炎 = null; + } + public override void OnManagedリソースの作成() + { + if( !base.b活性化してない ) + { + //this.txゲージ = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\7_Gauge.png" ) ); + //this.txゲージ背景 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\7_Gauge_base.png" ) ); + // if (CDTXMania.stage演奏ドラム画面.bDoublePlay) + // this.txゲージ2P = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\7_Gauge_2P.png" ) ); + // if (CDTXMania.stage演奏ドラム画面.bDoublePlay) + // this.txゲージ背景2P = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\7_Gauge_base_2P.png" ) ); + // this.txゲージ線 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\7_Gauge_line.png" ) ); + // if (CDTXMania.stage演奏ドラム画面.bDoublePlay) + // this.txゲージ線2P = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\7_Gauge_line_2P.png" ) ); + + // this.tx魂 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\7_Soul.png" ) ); + // this.tx炎 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\7_Soul_fire.png" ) ); + + // this.tx魂花火 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\7_explosion_soul.png" ) ); + //for( int i = 0; i < 12; i++ ) + //{ + // this.txゲージ虹[ i ] = CDTXMania.tテクスチャの生成( CSkin.Path(@"Graphics\Gauge\Gauge_rainbow_" + i.ToString() + ".png") ); + //} + if(TJAPlayer3.Skin.Game_Gauge_Rainbow_Timer <= 1) + { + throw new DivideByZeroException("SkinConfigの設定\"Game_Gauge_Rainbow_Timer\"を1以下にすることは出来ません。"); + } + this.ct虹アニメ = new CCounter( 0, TJAPlayer3.Skin.Game_Gauge_Rainbow_Ptn -1, TJAPlayer3.Skin.Game_Gauge_Rainbow_Timer, TJAPlayer3.Timer ); + this.ct虹透明度 = new CCounter(0, TJAPlayer3.Skin.Game_Gauge_Rainbow_Timer-1, 1, TJAPlayer3.Timer); + this.ctGaugeFlash = new CCounter(0, 532, 1, TJAPlayer3.Timer); + //this.tx音符 = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\7_taiko_notes.png")); + base.OnManagedリソースの作成(); + } + } + public override void OnManagedリソースの解放() + { + if( !base.b活性化してない ) + { + //CDTXMania.tテクスチャの解放( ref this.txゲージ ); + //CDTXMania.tテクスチャの解放( ref this.txゲージ背景 ); + // if (CDTXMania.stage演奏ドラム画面.bDoublePlay) + // CDTXMania.tテクスチャの解放( ref this.txゲージ2P ); + // if (CDTXMania.stage演奏ドラム画面.bDoublePlay) + // CDTXMania.tテクスチャの解放( ref this.txゲージ背景2P ); + // CDTXMania.tテクスチャの解放( ref this.txゲージ線 ); + // if (CDTXMania.stage演奏ドラム画面.bDoublePlay) + // CDTXMania.tテクスチャの解放( ref this.txゲージ線2P ); + // CDTXMania.tテクスチャの解放( ref this.tx魂 ); + // CDTXMania.tテクスチャの解放( ref this.tx炎 ); + // CDTXMania.tテクスチャの解放( ref this.tx魂花火 ); + + + // for( int i = 0; i < 12; i++ ) + // { + // CDTXMania.tテクスチャの解放( ref this.txゲージ虹[ i ] ); + // } + this.ct虹アニメ = null; + + //CDTXMania.tテクスチャの解放(ref this.tx音符); + base.OnManagedリソースの解放(); + } + } + public override int On進行描画() + { + if ( !base.b活性化してない ) + { + //CDTXMania.act文字コンソール.tPrint( 20, 150, C文字コンソール.Eフォント種別.白, this.db現在のゲージ値.Taiko.ToString() ); + + #region [ 初めての進行描画 ] + if ( base.b初めての進行描画 ) + { + base.b初めての進行描画 = false; + } + #endregion + + this.ctGaugeFlash.t進行Loop(); + + int nRectX2P = (int)(this.db現在のゲージ値[1] / 2) * 14; + int nRectX = (int)( this.db現在のゲージ値[ 0 ] / 2 ) * 14; + int 虹ベース = ct虹アニメ.n現在の値 + 1; + if (虹ベース == ct虹アニメ.n終了値+1) 虹ベース = 0; + /* + + 新虹ゲージの仕様 2018/08/10 ろみゅ~? + + フェードで動く虹ゲージが、ある程度強化できたので放出。 + 透明度255の虹ベースを描画し、その上から透明度可変式の虹ゲージを描画する。 + ゲージのパターン枚数は、読み込み枚数によって決定する。 + ゲージ描画の切り替え速度は、タイマーの値をSkinConfigで指定して行う(初期値50,1にするとエラーを吐く模様)。進行速度は1ms、高フレームレートでの滑らかさを重視。 + 虹ゲージの透明度調整値は、「255/パターン数」で算出する。 + こんな簡単なことを考えるのに30分(60f/s換算で108000f)を費やす。 + + */ + + + if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan) + { + if (TJAPlayer3.Tx.Gauge_Dan[0] != null) + { + TJAPlayer3.Tx.Gauge_Dan[0].t2D描画(TJAPlayer3.app.Device, 492, 144, new Rectangle(0, 0, 700, 44)); + } + if (TJAPlayer3.Tx.Gauge_Dan[2] != null) + { + for (int i = 0; i < TJAPlayer3.DTX.Dan_C.Length; i++) + { + if (TJAPlayer3.DTX.Dan_C[i] != null) + { + if (TJAPlayer3.DTX.Dan_C[i].GetExamType() == Exam.Type.Gauge) + { + TJAPlayer3.Tx.Gauge_Dan[2].t2D描画(TJAPlayer3.app.Device, 492 + (TJAPlayer3.DTX.Dan_C[i].GetValue(false) / 2 * 14), 144, new Rectangle((TJAPlayer3.DTX.Dan_C[i].GetValue(false) / 2 * 14), 0, 700 - (TJAPlayer3.DTX.Dan_C[i].GetValue(false) / 2 * 14), 44)); + } + } + } + } + } + else + { + if (TJAPlayer3.Tx.Gauge_Base[0] != null) + { + TJAPlayer3.Tx.Gauge_Base[0].t2D描画(TJAPlayer3.app.Device, 492, 144, new Rectangle(0, 0, 700, 44)); + } + if (TJAPlayer3.stage演奏ドラム画面.bDoublePlay && TJAPlayer3.Tx.Gauge_Base[1] != null) + { + TJAPlayer3.Tx.Gauge_Base[1].t2D描画(TJAPlayer3.app.Device, 492, 532, new Rectangle(0, 0, 700, 44)); + } + } + #region[ ゲージ1P ] + if( TJAPlayer3.Tx.Gauge[0] != null ) + { + if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan) + { + TJAPlayer3.Tx.Gauge_Dan[1]?.t2D描画(TJAPlayer3.app.Device, 492, 144, new Rectangle(0, 0, nRectX, 44)); + } + else + { + TJAPlayer3.Tx.Gauge[0].t2D描画(TJAPlayer3.app.Device, 492, 144, new Rectangle(0, 0, nRectX, 44)); + } + + if (db現在のゲージ値[0] >= 80.0 && db現在のゲージ値[0] < 100.0) + { + int Opacity = 0; + if (this.ctGaugeFlash.n現在の値 <= 365) Opacity = 0; + else if (this.ctGaugeFlash.n現在の値 <= 448) Opacity = (int)((this.ctGaugeFlash.n現在の値 - 365) / 83f * 255f); + else if (this.ctGaugeFlash.n現在の値 <= 531) Opacity = 255 - (int)((this.ctGaugeFlash.n現在の値 - 448) / 83f * 255f); + TJAPlayer3.Tx.Gauge_Flash.Opacity = Opacity; + TJAPlayer3.Tx.Gauge_Flash.t2D描画(TJAPlayer3.app.Device, 492, 144); + } + if (TJAPlayer3.Tx.Gauge_Line[0] != null ) + { + if( this.db現在のゲージ値[ 0 ] >= 100.0 ) + { + this.ct虹アニメ.t進行Loop(); + this.ct虹透明度.t進行Loop(); + if(TJAPlayer3.Tx.Gauge_Rainbow[ this.ct虹アニメ.n現在の値 ] != null ) + { + TJAPlayer3.Tx.Gauge_Rainbow[this.ct虹アニメ.n現在の値].Opacity = 255; + TJAPlayer3.Tx.Gauge_Rainbow[this.ct虹アニメ.n現在の値].t2D描画(TJAPlayer3.app.Device, 492, 144 + (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan ? 22 : 0), + new RectangleF(0, + TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan ? 22 : 0, + TJAPlayer3.Tx.Gauge_Rainbow[this.ct虹アニメ.n現在の値].szテクスチャサイズ.Width, + TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan ? TJAPlayer3.Tx.Gauge_Rainbow[this.ct虹アニメ.n現在の値].szテクスチャサイズ.Height - 22 : TJAPlayer3.Tx.Gauge_Rainbow[this.ct虹アニメ.n現在の値].szテクスチャサイズ.Height)); + TJAPlayer3.Tx.Gauge_Rainbow[虹ベース].Opacity = (ct虹透明度.n現在の値 * 255 / (int)ct虹透明度.n終了値)/1; + TJAPlayer3.Tx.Gauge_Rainbow[虹ベース].t2D描画(TJAPlayer3.app.Device, 492, 144 + (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan ? 22 : 0), + new RectangleF(0, + TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan ? 22 : 0, + TJAPlayer3.Tx.Gauge_Rainbow[虹ベース].szテクスチャサイズ.Width, + TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan ? TJAPlayer3.Tx.Gauge_Rainbow[虹ベース].szテクスチャサイズ.Height - 22 : TJAPlayer3.Tx.Gauge_Rainbow[虹ベース].szテクスチャサイズ.Height)); + } + } + TJAPlayer3.Tx.Gauge_Line[0].t2D描画( TJAPlayer3.app.Device, 492, 144 ); + } + #region[ 「クリア」文字 ] + if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Dan) + { + if (this.db現在のゲージ値[0] >= 80.0) + { + TJAPlayer3.Tx.Gauge[0].t2D描画(TJAPlayer3.app.Device, 1038, 144, new Rectangle(0, 44, 58, 24)); + } + else + { + TJAPlayer3.Tx.Gauge[0].t2D描画(TJAPlayer3.app.Device, 1038, 144, new Rectangle(58, 44, 58, 24)); + } + } + #endregion + } + #endregion + #region[ ゲージ2P ] + if( TJAPlayer3.stage演奏ドラム画面.bDoublePlay && TJAPlayer3.Tx.Gauge[1] != null ) + { + TJAPlayer3.Tx.Gauge[1].t2D描画( TJAPlayer3.app.Device, 492, 532, new Rectangle( 0, 0, nRectX2P, 44 ) ); + if (db現在のゲージ値[1] >= 80.0 && db現在のゲージ値[1] < 100.0) + { + int Opacity = 0; + if (this.ctGaugeFlash.n現在の値 <= 365) Opacity = 0; + else if (this.ctGaugeFlash.n現在の値 <= 448) Opacity = (int)((this.ctGaugeFlash.n現在の値 - 365) / 83f * 255f); + else if (this.ctGaugeFlash.n現在の値 <= 531) Opacity = 255 - (int)((this.ctGaugeFlash.n現在の値 - 448) / 83f * 255f); + TJAPlayer3.Tx.Gauge_Flash.Opacity = Opacity; + TJAPlayer3.Tx.Gauge_Flash.t2D上下反転描画(TJAPlayer3.app.Device, 492, 509); + } + if (TJAPlayer3.Tx.Gauge[1] != null ) + { + if (this.db現在のゲージ値[1] >= 100.0) + { + this.ct虹アニメ.t進行Loop(); + this.ct虹透明度.t進行Loop(); + if (TJAPlayer3.Tx.Gauge_Rainbow[this.ct虹アニメ.n現在の値] != null) + { + TJAPlayer3.Tx.Gauge_Rainbow[ct虹アニメ.n現在の値].Opacity = 255; + TJAPlayer3.Tx.Gauge_Rainbow[ct虹アニメ.n現在の値].t2D上下反転描画(TJAPlayer3.app.Device, 492, 532); + TJAPlayer3.Tx.Gauge_Rainbow[虹ベース].Opacity = (int)(ct虹透明度.n現在の値 * 255 / ct虹透明度.n終了値) / 1; + TJAPlayer3.Tx.Gauge_Rainbow[虹ベース].t2D上下反転描画(TJAPlayer3.app.Device, 492, 532); + } + } + TJAPlayer3.Tx.Gauge_Line[1].t2D描画( TJAPlayer3.app.Device, 492, 532 ); + } + #region[ 「クリア」文字 ] + if( this.db現在のゲージ値[ 1 ] >= 80.0 ) + { + TJAPlayer3.Tx.Gauge[1].t2D描画( TJAPlayer3.app.Device, 1038, 554, new Rectangle( 0, 44, 58, 24 ) ); + } + else + { + TJAPlayer3.Tx.Gauge[1].t2D描画( TJAPlayer3.app.Device, 1038, 554, new Rectangle( 58, 44, 58, 24 ) ); + } + #endregion + } + #endregion + + + if(TJAPlayer3.Tx.Gauge_Soul_Fire != null ) + { + //仮置き + int[] nSoulFire = new int[] { 52, 443, 0, 0 }; + for( int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++ ) + { + if( this.db現在のゲージ値[ i ] >= 100.0 ) + { + this.ct炎.t進行Loop(); + TJAPlayer3.Tx.Gauge_Soul_Fire.t2D描画( TJAPlayer3.app.Device, 1112, nSoulFire[ i ], new Rectangle( 230 * ( this.ct炎.n現在の値 ), 0, 230, 230 ) ); + } + } + } + if(TJAPlayer3.Tx.Gauge_Soul != null ) + { + //仮置き + int[] nSoulY = new int[] { 125, 516, 0, 0 }; + for( int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++ ) + { + if( this.db現在のゲージ値[ i ] >= 80.0 ) + { + TJAPlayer3.Tx.Gauge_Soul.t2D描画( TJAPlayer3.app.Device, 1184, nSoulY[ i ], new Rectangle( 0, 0, 80, 80 ) ); + } + else + { + TJAPlayer3.Tx.Gauge_Soul.t2D描画( TJAPlayer3.app.Device, 1184, nSoulY[ i ], new Rectangle( 0, 80, 80, 80 ) ); + } + } + } + + //仮置き + int[] nSoulExplosion = new int[] { 73, 468, 0, 0 }; + for( int d = 0; d < 32; d++ ) + { + if( this.st花火状態[d].b使用中 ) + { + this.st花火状態[d].ct進行.t進行(); + if (this.st花火状態[d].ct進行.b終了値に達した) + { + this.st花火状態[d].ct進行.t停止(); + this.st花火状態[d].b使用中 = false; + } + + + //if(CDTXMania.Tx.Gauge_Soul_Explosion != null ) + //{ + // CDTXMania.Tx.Gauge_Soul_Explosion.t2D描画( CDTXMania.app.Device, 1140, 73, new Rectangle( this.st花火状態[d].ct進行.n現在の値 * 140, 0, 140, 180 ) ); + //} + //if (CDTXMania.Tx.Notes != null) + //{ + //CDTXMania.Tx.Notes.t2D中心基準描画(CDTXMania.app.Device, 1224, 162, new Rectangle(this.st花火状態[d].nLane * 130, 0, 130, 130)); + //this.tx音符.color4 = new Color4( 1.0f, 1.0f, 1.0f - (this.st花火状態[d].ct進行.n現在の値 / 10f) ); + //CDTXMania.act文字コンソール.tPrint(60, 140, C文字コンソール.Eフォント種別.白, this.st花火状態[d].ct進行.n現在の値.ToString()); + //CDTXMania.act文字コンソール.tPrint(60, 160, C文字コンソール.Eフォント種別.白, (this.st花火状態[d].ct進行.n現在の値 / 10f).ToString()); + //} + break; + } + } + for( int d = 0; d < 32; d++ ) + { + if (this.st花火状態2P[d].b使用中) + { + this.st花火状態2P[d].ct進行.t進行(); + if (this.st花火状態2P[d].ct進行.b終了値に達した) + { + this.st花火状態2P[d].ct進行.t停止(); + this.st花火状態2P[d].b使用中 = false; + } + + + //if(CDTXMania.Tx.Gauge_Soul_Explosion != null ) + //{ + // CDTXMania.Tx.Gauge_Soul_Explosion.t2D描画( CDTXMania.app.Device, 1140, 468, new Rectangle( this.st花火状態2P[d].ct進行.n現在の値 * 140, 0, 140, 180 ) ); + //} + //if (CDTXMania.Tx.Notes != null) + //{ + // CDTXMania.Tx.Notes.t2D中心基準描画(CDTXMania.app.Device, 1224, 162, new Rectangle(this.st花火状態[d].nLane * 130, 0, 130, 130)); + // //this.tx音符.color4 = new Color4( 1.0f, 1.0f, 1.0f - (this.st花火状態[d].ct進行.n現在の値 / 10f) ); + // //CDTXMania.act文字コンソール.tPrint(60, 140, C文字コンソール.Eフォント種別.白, this.st花火状態[d].ct進行.n現在の値.ToString()); + // //CDTXMania.act文字コンソール.tPrint(60, 160, C文字コンソール.Eフォント種別.白, (this.st花火状態[d].ct進行.n現在の値 / 10f).ToString()); + //} + break; + } + } + } + return 0; + } + + + // その他 + + #region [ private ] + //----------------- + private CCounter ctGaugeFlash; + + protected STSTATUS[] st花火状態 = new STSTATUS[ 32 ]; + protected STSTATUS[] st花火状態2P = new STSTATUS[ 32 ]; + [StructLayout(LayoutKind.Sequential)] + protected struct STSTATUS + { + public CCounter ct進行; + public bool isBig; + public bool b使用中; + public int nPlayer; + public int nLane; + } + //----------------- + #endregion + } +} diff --git a/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsゲームモード.cs b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsゲームモード.cs new file mode 100644 index 00000000..9ca8646d --- /dev/null +++ b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsゲームモード.cs @@ -0,0 +1,896 @@ +using System; +using System.Drawing; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Runtime.InteropServices; +using FDK; + +namespace TJAPlayer3 +{ + internal class CAct演奏Drumsゲームモード : CActivity + { + /// + /// 現時点では「完走!叩ききりまショー!」のみ。 + /// + /// + public CAct演奏Drumsゲームモード() + { + this.b活性化してない = true; + } + + //叩ききりまショー! + //<ルール> + //_某DAMのやつに似てるやつ。 + //_演奏可能な残り時間が減っていく。 + //_複数の項目に対して、一定の条件をクリアしていって延命させていく。 + //_タイマーが0になったらSTAGE FAILED。 + // + //判定要素 + //_精度 + //_ミス数 + //_ズレ時間 + //_最大コンボ数 + //その他諸々 + + private long n叩ききりまショー_残り時間タイマー; + public ST叩ききりまショー st叩ききりまショー; + public struct ST叩ききりまショー + { + public bool b最初のチップが叩かれた; + public bool bタイマー使用中; + public bool b超激辛; + public bool b加算アニメ中; + public int nヒット数_PERFECT; + public int nヒット数_GREAT; + public int nヒット数_GOOD; + public int nヒット数_POOR; + public int nヒット数_MISS; + public int n最大コンボ; + public int n現在のコンボ; + public int n区間ノート数; + public int n最大ズレ時間; + public int n最小ズレ時間; + public int n現在通過したノート数; + public int n全体最大ズレ時間; + public int nおまけ加算が発生した回数; + public int n延長アニメ速度; + public CCounter ct残り時間; + public CCounter ct加算時間表示; + public CCounter ct加算審査中; + public CCounter ct針アニメ; + } + private int n最後に時間延長した時刻; + private int n演奏時間; + private int n前回の延長時間; + //private CTexture tx残り時間数字; + //private CTexture tx背景黒; + //private CTexture tx加算時間数字; + //private CTexture txタイマー枠; + //private CTexture txタイマー針; + + [StructLayout(LayoutKind.Sequential)] + private struct STボーナス + { + public double ret; + public double point; + public STボーナス( double ret, double point ) + { + this.ret = ret; + this.point = point; + } + } + + private STボーナス[] n精度ボーナス; + private STボーナス[] n最大ズレ時間ボーナス; + private STボーナス[] n最小ズレ時間ボーナス; + private STボーナス[] nコンボ率ボーナス; + private STボーナス[] nミス率ボーナス; + + private STボーナス[] n全体精度ボーナス; + private STボーナス[] n全体最大ズレ時間ボーナス; + private STボーナス[] n全体コンボ率ボーナス; + private STボーナス[] n全体ミス率ボーナス; + private int n加算時間; + + public void t叩ききりまショー_初期化() + { + this.st叩ききりまショー = new ST叩ききりまショー(); + this.n演奏時間 = ( TJAPlayer3.DTX.listChip.Count > 0 ) ? TJAPlayer3.DTX.listChip[ TJAPlayer3.DTX.listChip.Count - 1 ].n発声時刻ms : 0; + this.st叩ききりまショー.ct残り時間 = new CCounter( 0, 25000, 1, TJAPlayer3.Timer ); + this.st叩ききりまショー.ct加算時間表示 = new CCounter(); + this.st叩ききりまショー.ct加算審査中 = new CCounter(); + this.st叩ききりまショー.b最初のチップが叩かれた = false; + this.st叩ききりまショー.bタイマー使用中 = false; + this.st叩ききりまショー.b加算アニメ中 = false; + this.n最後に時間延長した時刻 = 0; + + this.st叩ききりまショー.nヒット数_PERFECT = 0; + this.st叩ききりまショー.nヒット数_GREAT = 0; + this.st叩ききりまショー.nヒット数_GOOD = 0; + this.st叩ききりまショー.nヒット数_POOR = 0; + this.st叩ききりまショー.nヒット数_MISS = 0; + this.st叩ききりまショー.n区間ノート数 = 0; + this.st叩ききりまショー.n現在のコンボ = 0; + this.st叩ききりまショー.n最小ズレ時間 = -1; + this.st叩ききりまショー.n最大ズレ時間 = -1; + this.st叩ききりまショー.n全体最大ズレ時間 = -1; + this.st叩ききりまショー.n現在通過したノート数 = 0; + this.st叩ききりまショー.b超激辛 = false; + this.st叩ききりまショー.nおまけ加算が発生した回数 = 0; + this.st叩ききりまショー.n延長アニメ速度 = 0; + this.n加算時間 = 0; + this.n前回の延長時間 = 0; + + this.st叩ききりまショー.ct針アニメ = new CCounter( 0, 1000, 1, TJAPlayer3.Timer ); + + this.t叩ききりまショー_判定項目と難易度を決める(); + } + + public void t叩ききりまショー_判定項目と難易度を決める() + { + //まず通常、激辛時でわける。 + if( TJAPlayer3.ConfigIni.eGameMode == EGame.完走叩ききりまショー ) + { + #region[ 通常 ] + //通常の査定 + // 精度 > 最小ズレ > コンボ > 最大ズレ > ミス + this.n精度ボーナス = new STボーナス[]{ + new STボーナス( 90, 5 ), + new STボーナス( 70, 4.5 ), + new STボーナス( 60, 3 ), + new STボーナス( 50, 1 ), + new STボーナス( 30, 0 ) + }; + this.n最小ズレ時間ボーナス = new STボーナス[]{ + new STボーナス( 5, 4 ), + new STボーナス( 10, 3.5 ), + new STボーナス( 20, 3 ), + new STボーナス( 50, 1.5 ), + new STボーナス( 80, -1 ) + }; + this.n最大ズレ時間ボーナス = new STボーナス[]{ + new STボーナス( 50, 2 ), + new STボーナス( 60, 1.5 ), + new STボーナス( 80, 0.5 ), + new STボーナス( 90, 0 ), + new STボーナス( 100, -1 ) + }; + this.nコンボ率ボーナス = new STボーナス[]{ + new STボーナス( 98.0, 3.5 ), + new STボーナス( 80.0, 1 ), + new STボーナス( 50.0, 0.5 ), + new STボーナス( 35.0, -1.5 ) + }; + this.nミス率ボーナス = new STボーナス[]{ + new STボーナス( 0, 2 ), + new STボーナス( 20.0, 1 ), + new STボーナス( 50.0, -0.5 ) + }; + + this.n全体精度ボーナス = new STボーナス[]{ + new STボーナス( 90, 3.5 ), + new STボーナス( 70, 2.5 ), + new STボーナス( 60, 1 ), + new STボーナス( 50, 0.5 ), + new STボーナス( 30, -0.5 ) + }; + this.n全体最大ズレ時間ボーナス = new STボーナス[]{ + new STボーナス( 50, 4.2 ), + new STボーナス( 60, 3.6 ), + new STボーナス( 80, 2 ), + new STボーナス( 90, -0.5 ), + new STボーナス( 100, -1 ) + }; + this.n全体コンボ率ボーナス = new STボーナス[]{ + new STボーナス( 98.0, 3 ), + new STボーナス( 80.0, 2.5 ), + new STボーナス( 50.0, 0.5 ) + }; + this.n全体ミス率ボーナス = new STボーナス[]{ + new STボーナス( 0, 2 ), + new STボーナス( 20.0, 1.5 ), + new STボーナス( 50.0, 0.5 ), + new STボーナス( 70.0, -0.5 ) + }; + #endregion + } + else if( TJAPlayer3.ConfigIni.eGameMode == EGame.完走叩ききりまショー激辛 ) + { + #region[ 激辛 ] + //激ムズの査定 + // 最大ズレ > 精度 > コンボ > 最小ズレ > ミス + //各項目最高値合計で20秒加算になるようにすること。 + this.n精度ボーナス = new STボーナス[]{ + new STボーナス( 100, 3 ), + new STボーナス( 95, 2 ), + new STボーナス( 90, 1 ), + new STボーナス( 70, -2 ), + new STボーナス( 50, -4 ), + new STボーナス( 0, -10 ) + }; + this.n最小ズレ時間ボーナス = new STボーナス[]{ + new STボーナス( 0, 2 ), + new STボーナス( 3, 1 ), + new STボーナス( 5, -2 ), + new STボーナス( 10, -3 ), + new STボーナス( 30, -3 ), + new STボーナス( 108, -4 ) + }; + this.n最大ズレ時間ボーナス = new STボーナス[]{ + new STボーナス( 3, 3.5 ), + new STボーナス( 10, 2 ), + new STボーナス( 15, 1 ), + new STボーナス( 20, 0 ), + new STボーナス( 50, -2 ), + new STボーナス( 108, -5 ) + }; + this.nコンボ率ボーナス = new STボーナス[]{ + new STボーナス( 100.0, 1 ), + new STボーナス( 50.0, 0.5 ), + new STボーナス( 0.0, -5 ) + }; + this.nミス率ボーナス = new STボーナス[]{ + new STボーナス( 0, 1 ), + new STボーナス( 100.0, -5 ) + }; + + this.n全体精度ボーナス = new STボーナス[]{ + new STボーナス( 100, 5 ), + new STボーナス( 99, 4 ), + new STボーナス( 90, 1.5 ), + new STボーナス( 80, 1 ), + new STボーナス( 50, -1 ), + new STボーナス( 30, -3 ), + new STボーナス( 0, -4.5 ) + }; + this.n全体最大ズレ時間ボーナス = new STボーナス[]{ + new STボーナス( 20, 3 ), + new STボーナス( 30, 1.5 ), + new STボーナス( 50, 1 ), + new STボーナス( 80, 0 ), + new STボーナス( 108, -2.5 ) + }; + this.n全体コンボ率ボーナス = new STボーナス[]{ + new STボーナス( 100.0, 1 ), + new STボーナス( 0.0, -2 ) + }; + this.n全体ミス率ボーナス = new STボーナス[]{ + new STボーナス( 0, 1 ), + new STボーナス( 100.0, -2 ), + }; + + //★10の場合超激辛モードになる。 + if( TJAPlayer3.DTX.LEVELtaiko[ TJAPlayer3.stage選曲.n確定された曲の難易度[0]] >= 10 ) + { + #region[ 超激辛 ] + this.st叩ききりまショー.b超激辛 = true; + + this.n精度ボーナス = new STボーナス[]{ + new STボーナス( 100, 3 ), + new STボーナス( 95, 2 ), + new STボーナス( 88, 1 ), + new STボーナス( 80, -3 ), + new STボーナス( 50, -6 ), + new STボーナス( 0, -10 ) + }; + + this.n最大ズレ時間ボーナス = new STボーナス[]{ + new STボーナス( 2, 4 ), + new STボーナス( 10, 1 ), + new STボーナス( 30, 0 ), + new STボーナス( 50, -1 ), + new STボーナス( 70, -3 ), + new STボーナス( 108, -5 ) + }; + this.nコンボ率ボーナス = new STボーナス[]{ + new STボーナス( 100.0, 1 ), + new STボーナス( 0.0, -6 ) + }; + this.nミス率ボーナス = new STボーナス[]{ + new STボーナス( 0, 1 ), + new STボーナス( 100.0, -6 ) + }; + + this.n全体最大ズレ時間ボーナス = new STボーナス[]{ + new STボーナス( 20, 3 ), + new STボーナス( 60, 1 ), + new STボーナス( 108, -5 ) + }; + this.n全体コンボ率ボーナス = new STボーナス[]{ + new STボーナス( 100.0, 1 ), + new STボーナス( 0.0, -5 ) + }; + this.n全体ミス率ボーナス = new STボーナス[]{ + new STボーナス( 0, 1 ), + new STボーナス( 100.0, -5 ), + }; + #endregion + } + + if( TJAPlayer3.ConfigIni.bSuperHard ) + { + #region[ 超激辛 ] + this.st叩ききりまショー.b超激辛 = true; + + this.n精度ボーナス = new STボーナス[]{ + new STボーナス( 100, 3 ), + new STボーナス( 98, 2.3 ), + new STボーナス( 95, 2 ), + new STボーナス( 90, 1.5 ), + new STボーナス( 85, 0 ), + new STボーナス( 80, -2 ), + new STボーナス( 60, -3 ), + new STボーナス( 40, -6 ), + new STボーナス( 0, -7.5 ) + }; + + this.n最大ズレ時間ボーナス = new STボーナス[]{ + new STボーナス( 8, 5 ), + new STボーナス( 18, 3 ), + new STボーナス( 40, 1 ), + new STボーナス( 50, -0.5 ), + new STボーナス( 70, -3 ), + new STボーナス( 108, -5 ) + }; + this.nコンボ率ボーナス = new STボーナス[]{ + new STボーナス( 100.0, 1 ), + new STボーナス( 0.0, -6 ) + }; + this.nミス率ボーナス = new STボーナス[]{ + new STボーナス( 0, 1 ), + new STボーナス( 100.0, -6 ) + }; + + this.n全体精度ボーナス = new STボーナス[]{ + new STボーナス( 100, 7 ), + new STボーナス( 99, 4 ), + new STボーナス( 90, 2 ), + new STボーナス( 80, 1 ), + new STボーナス( 50, -1 ), + new STボーナス( 0, -7 ) + }; + this.n全体最大ズレ時間ボーナス = new STボーナス[]{ + new STボーナス( 20, 3 ), + new STボーナス( 40, 1 ), + new STボーナス( 60, -3 ), + new STボーナス( 108, -5 ) + }; + this.n全体コンボ率ボーナス = new STボーナス[]{ + new STボーナス( 100.0, 1 ), + new STボーナス( 0.0, -5 ) + }; + this.n全体ミス率ボーナス = new STボーナス[]{ + new STボーナス( 0, 0 ), + new STボーナス( 100.0, -5 ), + }; + #endregion + } + #endregion + } + } + + public override void OnManagedリソースの作成() + { + //this.tx残り時間数字 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\7_combo taiko.png" ) ); + //this.tx加算時間数字 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\7_Score_number_1P.png" ) ); + //this.txタイマー枠 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\7_TimerPanel.png" ) ); + //this.txタイマー針 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\7_TimerTick.png" ) ); + //this.tx背景黒 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\Tile black 64x64.png" ) ); + base.OnManagedリソースの作成(); + } + + public override void OnManagedリソースの解放() + { + //CDTXMania.tテクスチャの解放( ref this.tx残り時間数字 ); + //CDTXMania.tテクスチャの解放( ref this.tx加算時間数字 ); + //CDTXMania.tテクスチャの解放( ref this.txタイマー枠 ); + //CDTXMania.tテクスチャの解放( ref this.txタイマー針 ); + //CDTXMania.tテクスチャの解放( ref this.tx背景黒 ); + base.OnManagedリソースの解放(); + } + + public override int On進行描画() + { + if( TJAPlayer3.ConfigIni.eGameMode == EGame.完走叩ききりまショー || TJAPlayer3.ConfigIni.eGameMode == EGame.完走叩ききりまショー激辛 ) + { + //if( this.st叩ききりまショー.b最初のチップが叩かれた == true )//&& + //CDTXMania.stage演奏ドラム画面.r検索範囲内にチップがあるか調べる( CSound管理.rc演奏用タイマ.n現在時刻ms, 0, 3000 ) ) + //this.st叩ききりまショー.ct残り時間.t進行(); + //else + //{ + // this.st叩ききりまショー.ct残り時間.n現在の値 = this.st叩ききりまショー.ct残り時間.n現在の値; + //} + + + //if( !this.st叩ききりまショー.ct残り時間.b停止中 ) + if( this.st叩ききりまショー.bタイマー使用中 ) + { + if( !this.st叩ききりまショー.ct残り時間.b停止中 || this.st叩ききりまショー.b加算アニメ中 == true ) + { + this.st叩ききりまショー.ct残り時間.t進行(); + if (!TJAPlayer3.stage演奏ドラム画面.r検索範囲内にチップがあるか調べる((long)(CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)), 0, 5000, 0) || this.st叩ききりまショー.b加算アニメ中 == true) + { + this.st叩ききりまショー.bタイマー使用中 = false; + this.st叩ききりまショー.ct残り時間.t停止(); + } + } + } + + if( !this.st叩ききりまショー.bタイマー使用中 && this.st叩ききりまショー.b加算アニメ中 == false ) + { + if ((this.st叩ききりまショー.b最初のチップが叩かれた == true && ( TJAPlayer3.stage演奏ドラム画面.r検索範囲内にチップがあるか調べる(CSound管理.rc演奏用タイマ.n現在時刻ms, 0, 2000, 0 ) ) ) ) + { + this.st叩ききりまショー.bタイマー使用中 = true; + int nCount = this.st叩ききりまショー.ct残り時間.n現在の値; + this.st叩ききりまショー.ct残り時間 = new CCounter( 0, 25000, 1, TJAPlayer3.Timer ); + this.st叩ききりまショー.ct針アニメ = new CCounter( 0, 1000, 1, TJAPlayer3.Timer ); + this.st叩ききりまショー.ct残り時間.n現在の値 = nCount; + } + + } + + + if( ( this.st叩ききりまショー.ct残り時間.n現在の値 >= 20000 ) && this.st叩ききりまショー.ct残り時間.n現在の値 != 25000 ) + this.t叩ききりまショー_評価をして残り時間を延長する(); + + if( TJAPlayer3.Tx.Tile_Black != null ) + { + if( this.st叩ききりまショー.ct残り時間.n現在の値 >= 22000 && this.st叩ききりまショー.ct残り時間.n現在の値 < 23000 ) + TJAPlayer3.Tx.Tile_Black.Opacity = 64; + else if( this.st叩ききりまショー.ct残り時間.n現在の値 >= 23000 && this.st叩ききりまショー.ct残り時間.n現在の値 < 24000 ) + TJAPlayer3.Tx.Tile_Black.Opacity = 128; + else if( this.st叩ききりまショー.ct残り時間.n現在の値 >= 24000 ) + TJAPlayer3.Tx.Tile_Black.Opacity = 192; + else + TJAPlayer3.Tx.Tile_Black.Opacity = 0; + + for (int i = 0; i <= (SampleFramework.GameWindowSize.Width / 64); i++) + { + for (int j = 0; j <= (SampleFramework.GameWindowSize.Height / 64); j++) + { + TJAPlayer3.Tx.Tile_Black.t2D描画(TJAPlayer3.app.Device, i * 64, j * 64); + } + } + } + + //CDTXMania.act文字コンソール.tPrint( 100, 0, C文字コンソール.Eフォント種別.白, ( 25 - this.st叩ききりまショー.ct残り時間.n現在の値 ).ToString() ); + //CDTXMania.act文字コンソール.tPrint( 100, 16, C文字コンソール.Eフォント種別.白, this.st叩ききりまショー.n区間ノート数.ToString() ); + //CDTXMania.act文字コンソール.tPrint( 100, 16 * 2, C文字コンソール.Eフォント種別.白, this.st叩ききりまショー.n現在通過したノート数.ToString() ); + //CDTXMania.act文字コンソール.tPrint( 100, 16 * 3, C文字コンソール.Eフォント種別.白, this.st叩ききりまショー.nヒット数_MISS.ToString() ); + //CDTXMania.act文字コンソール.tPrint( 100, 16 * 4, C文字コンソール.Eフォント種別.白, this.st叩ききりまショー.n最小ズレ時間.ToString() ); + //CDTXMania.act文字コンソール.tPrint( 100, 16 * 5, C文字コンソール.Eフォント種別.白, this.st叩ききりまショー.n最大ズレ時間.ToString() ); + //CDTXMania.act文字コンソール.tPrint( 100, 16 * 6, C文字コンソール.Eフォント種別.白, this.st叩ききりまショー.n全体最大ズレ時間.ToString() ); + //CDTXMania.act文字コンソール.tPrint( 100, 16 * 7, C文字コンソール.Eフォント種別.白, this.st叩ききりまショー.n最大コンボ.ToString() ); + //CDTXMania.act文字コンソール.tPrint( 100, 16 * 7, C文字コンソール.Eフォント種別.白, this.st叩ききりまショー.ct加算審査中.n現在の値.ToString() ); + + #region[ 残り時間描画 ] + if(TJAPlayer3.Tx.Taiko_Combo != null ) + { + if (TJAPlayer3.Tx.GameMode_Timer_Frame != null) + TJAPlayer3.Tx.GameMode_Timer_Frame.t2D描画( TJAPlayer3.app.Device, 230, 84 ); + this.st叩ききりまショー.ct針アニメ.t進行Loop(); + + int nCenterX = 230; + int nCerterY = 84; + float fRotate = -C変換.DegreeToRadian( 360.0f * ( this.st叩ききりまショー.ct針アニメ.n現在の値 / 1000.0f ) ); + if( this.st叩ききりまショー.b加算アニメ中 == true ) + fRotate = C変換.DegreeToRadian( 360.0f * ( this.st叩ききりまショー.ct針アニメ.n現在の値 / (float)this.st叩ききりまショー.n延長アニメ速度 ) ); + + SlimDX.Matrix mat = SlimDX.Matrix.Identity; + if( this.st叩ききりまショー.b最初のチップが叩かれた ) + { + mat *= SlimDX.Matrix.RotationZ( fRotate ); + mat *= SlimDX.Matrix.Translation( 280 - 640, -( 134 - 360 ), 0 ); + } + else + { + mat *= SlimDX.Matrix.Translation( 280 - 640, -( 134 - 360 ), 0 ); + } + + TJAPlayer3.Tx.GameMode_Timer_Tick.t3D描画( TJAPlayer3.app.Device, mat ); + + string str表示する残り時間 = ( this.st叩ききりまショー.ct残り時間.n現在の値 < 1000 ) ? "25" : ( ( 26000 - this.st叩ききりまショー.ct残り時間.n現在の値 ) / 1000 ).ToString(); + this.t小文字表示( 230 + (str表示する残り時間.Length * TJAPlayer3.Skin.Game_Taiko_Combo_Size[0] / 4 ), 84 + TJAPlayer3.Tx.GameMode_Timer_Frame.szテクスチャサイズ.Height / 2 , string.Format("{0,2:#0}", str表示する残り時間 )); + } + + if( !this.st叩ききりまショー.ct加算審査中.b停止中 ) + { + if( !this.st叩ききりまショー.ct加算審査中.b停止中 ) + { + this.st叩ききりまショー.ct加算審査中.t進行(); + if( this.st叩ききりまショー.ct加算審査中.b終了値に達した ) + { + this.st叩ききりまショー.ct加算審査中.t停止(); + this.st叩ききりまショー.b加算アニメ中 = false; + this.t加算時間描画_Start(); + } + } + } + if( !this.st叩ききりまショー.ct加算時間表示.b停止中 ) + { + if( !this.st叩ききりまショー.ct加算時間表示.b停止中 ) + { + this.st叩ききりまショー.ct加算時間表示.t進行(); + if( this.st叩ききりまショー.ct加算時間表示.b終了値に達した ) + { + this.st叩ききりまショー.ct加算時間表示.t停止(); + } + } + this.t加算時間描画( this.n前回の延長時間 ); + } + #endregion + } + return 0; + } + + private void t叩ききりまショー_評価をして残り時間を延長する() + { + double n延長する時間 = 0; + + //最後に延長した時刻から11秒経過していなければ延長を行わない。 + if (this.n最後に時間延長した時刻 + 11000 <= (CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0))) + { + //1項目につき5秒 + //-精度 + if ( this.st叩ききりまショー.nヒット数_PERFECT != 0 || this.st叩ききりまショー.nヒット数_GREAT != 0 ) + { + double db区間内精度 = ( (double) ( this.st叩ききりまショー.nヒット数_PERFECT + this.st叩ききりまショー.nヒット数_GREAT ) / this.st叩ききりまショー.n区間ノート数 ) * 100.0; + for( int i = 0; i < this.n精度ボーナス.Length; i++ ) + { + if( db区間内精度 >= this.n精度ボーナス[ i ].ret ) + { + n延長する時間 += this.n精度ボーナス[ i ].point; + break; + } + } + } + + //-ラグ時間 + #region[ ラグ時間による判定 ] + if( this.st叩ききりまショー.n最小ズレ時間 != -1 ) + { + for( int i = 0; i < this.n最小ズレ時間ボーナス.Length; i++ ) + { + if( this.st叩ききりまショー.n最小ズレ時間 >= this.n最小ズレ時間ボーナス[ i ].ret ) + { + n延長する時間 += this.n最小ズレ時間ボーナス[ i ].point; + break; + } + } + } + + if( this.st叩ききりまショー.n最大ズレ時間 != -1 ) + { + for( int i = 0; i < this.n最大ズレ時間ボーナス.Length; i++ ) + { + if( this.st叩ききりまショー.n最大ズレ時間 <= this.n最大ズレ時間ボーナス[ i ].ret ) + { + n延長する時間 += this.n最大ズレ時間ボーナス[ i ].point; + break; + } + } + } + #endregion + if( this.st叩ききりまショー.n最大コンボ != 0 ) + { + double db区間内コンボ精度 = ( (double)this.st叩ききりまショー.n最大コンボ / this.st叩ききりまショー.n区間ノート数 ) * 100.0; + for( int i = 0; i < this.nコンボ率ボーナス.Length; i++ ) + { + if( db区間内コンボ精度 >= this.nコンボ率ボーナス[ i ].ret ) + { + n延長する時間 += this.nコンボ率ボーナス[ i ].point; + break; + } + } + } + + double db区間内ミス率 = ( ( (double)this.st叩ききりまショー.nヒット数_POOR + this.st叩ききりまショー.nヒット数_MISS ) / this.st叩ききりまショー.n区間ノート数 ) * 100.0; + for( int i = 0; i < this.nミス率ボーナス.Length; i++ ) + { + if( db区間内ミス率 >= this.nミス率ボーナス[ i ].ret ) + { + n延長する時間 += this.nミス率ボーナス[ i ].point; + break; + } + } + #region[ 全体 ] + if( TJAPlayer3.stage演奏ドラム画面.nヒット数_Auto含まない.Drums.Perfect != 0 || TJAPlayer3.stage演奏ドラム画面.nヒット数_Auto含まない.Drums.Great != 0 ) + { + double db全体精度 = ( (double) ( TJAPlayer3.stage演奏ドラム画面.nヒット数_Auto含まない.Drums.Perfect + TJAPlayer3.stage演奏ドラム画面.nヒット数_Auto含まない.Drums.Great ) / this.st叩ききりまショー.n区間ノート数 ) * 100.0; + for( int i = 0; i < this.n全体精度ボーナス.Length; i++ ) + { + if( db全体精度 >= this.n全体精度ボーナス[ i ].ret ) + { + n延長する時間 += this.n全体精度ボーナス[ i ].point; + break; + } + } + } + + //-ラグ時間 + #region[ ラグ時間による判定 ] + if( this.st叩ききりまショー.n全体最大ズレ時間 != -1 ) + { + for( int i = 0; i < this.n全体最大ズレ時間ボーナス.Length; i++ ) + { + if( this.st叩ききりまショー.n全体最大ズレ時間 <= this.n全体最大ズレ時間ボーナス[ i ].ret ) + { + n延長する時間 += this.n全体最大ズレ時間ボーナス[ i ].point; + break; + } + } + } + #endregion + if( TJAPlayer3.stage演奏ドラム画面.actCombo.n現在のコンボ数.最高値[0] != 0 ) + { + double db全体コンボ率 = ( (double)TJAPlayer3.stage演奏ドラム画面.actCombo.n現在のコンボ数.最高値[0] / this.st叩ききりまショー.n現在通過したノート数 ) * 100.0; + for( int i = 0; i < this.n全体コンボ率ボーナス.Length; i++ ) + { + if( db全体コンボ率 >= this.n全体コンボ率ボーナス[ i ].ret ) + { + n延長する時間 += this.n全体コンボ率ボーナス[ i ].point; + break; + } + } + } + + double db全体ミス率 = ( ( (double)TJAPlayer3.stage演奏ドラム画面.nヒット数_Auto含まない.Drums.Poor + TJAPlayer3.stage演奏ドラム画面.nヒット数_Auto含まない.Drums.Miss ) / this.st叩ききりまショー.n現在通過したノート数 ) * 100.0; + for( int i = 0; i < this.n全体ミス率ボーナス.Length; i++ ) + { + if( db全体ミス率 >= this.n全体ミス率ボーナス[ i ].ret ) + { + n延長する時間 += this.n全体ミス率ボーナス[ i ].point; + break; + } + } + #endregion + + + this.n最後に時間延長した時刻 = (int)(CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)); + if ( n延長する時間 < 0 ) + n延長する時間 = 0; + if( this.st叩ききりまショー.n区間ノート数 == 0 ) + n延長する時間 = 15; + + //各数値を初期化 + this.st叩ききりまショー.nヒット数_PERFECT = 0; + this.st叩ききりまショー.nヒット数_GREAT = 0; + this.st叩ききりまショー.nヒット数_GOOD = 0; + this.st叩ききりまショー.nヒット数_POOR = 0; + this.st叩ききりまショー.nヒット数_MISS = 0; + this.st叩ききりまショー.n区間ノート数 = 0; + this.st叩ききりまショー.n現在のコンボ = 0; + this.st叩ききりまショー.n最小ズレ時間 = -1; + this.st叩ききりまショー.n最大ズレ時間 = -1; + + this.n前回の延長時間 = (int)n延長する時間; + n延長する時間 = n延長する時間 * 1000; + if( n延長する時間 > 0 ) + { + this.t加算審査アニメ_Start(); + if ( this.st叩ききりまショー.b加算アニメ中 == false ) + this.t加算時間描画_Start(); + } + this.st叩ききりまショー.ct残り時間.n現在の値 -= (int)n延長する時間; + } + else if( this.st叩ききりまショー.ct残り時間.n現在の値 >= 24000 ) + { + if( this.st叩ききりまショー.nおまけ加算が発生した回数 > 3 ) + return; + if (this.st叩ききりまショー.b超激辛 && (((double)this.st叩ききりまショー.nヒット数_POOR + this.st叩ききりまショー.nヒット数_MISS) > 0)) + return; //ミスが出るようでは上達しませんよ。お兄様。 + if( TJAPlayer3.ConfigIni.bSuperHard ) + return; //スーパーハード時はボーナス加点無し。 + + + this.st叩ききりまショー.nおまけ加算が発生した回数++; + + if( this.st叩ききりまショー.nヒット数_PERFECT != 0 || this.st叩ききりまショー.nヒット数_GREAT != 0 ) + { + double db区間内精度 = ( (double) ( this.st叩ききりまショー.nヒット数_PERFECT + this.st叩ききりまショー.nヒット数_GREAT ) / this.st叩ききりまショー.n区間ノート数 ) * 100.0; + if( this.st叩ききりまショー.b超激辛 ? ( db区間内精度 >= 95.0 ) : ( db区間内精度 >= 98.0 ) ) + { + n延長する時間 += 6; + } + } + #region[ ラグ時間による判定 ] + if( this.st叩ききりまショー.n最小ズレ時間 != -1 ) + { + if( this.st叩ききりまショー.n最小ズレ時間 >= 0 ) + { + n延長する時間 += 6; + } + } + + if( this.st叩ききりまショー.n最大ズレ時間 != -1 ) + { + if( this.st叩ききりまショー.n最大ズレ時間 <= 30 ) + { + n延長する時間 += 6; + } + } + #endregion + double db区間内ミス率 = ( ( (double)this.st叩ききりまショー.nヒット数_POOR + this.st叩ききりまショー.nヒット数_MISS ) / this.st叩ききりまショー.n区間ノート数 ) * 100.0; + if( db区間内ミス率 >= 5.0 ) + { + n延長する時間 -= 2; + } + + + this.n最後に時間延長した時刻 = (int)(CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)); + if ( n延長する時間 < 0 ) + n延長する時間 = 0; + + //各数値を初期化 + this.st叩ききりまショー.nヒット数_PERFECT = 0; + this.st叩ききりまショー.nヒット数_GREAT = 0; + this.st叩ききりまショー.nヒット数_GOOD = 0; + this.st叩ききりまショー.nヒット数_POOR = 0; + this.st叩ききりまショー.nヒット数_MISS = 0; + this.st叩ききりまショー.n区間ノート数 = 0; + this.st叩ききりまショー.n現在のコンボ = 0; + this.st叩ききりまショー.n最小ズレ時間 = -1; + this.st叩ききりまショー.n最大ズレ時間 = -1; + + this.n前回の延長時間 = (int)n延長する時間; + n延長する時間 = n延長する時間 * 1000; + if( n延長する時間 > 0 ) + { + this.t加算審査アニメ_Start(); + if ( this.st叩ききりまショー.b加算アニメ中 == false ) + this.t加算時間描画_Start(); + } + if( n延長する時間 > 5000 ) + this.st叩ききりまショー.ct残り時間.n現在の値 -= (int)n延長する時間; + } + + if (n延長する時間 >= 12000) + this.st叩ききりまショー.n延長アニメ速度 = 100; + else if (n延長する時間 < 12000 && n延長する時間 >= 5000) + this.st叩ききりまショー.n延長アニメ速度 = 250; + else + this.st叩ききりまショー.n延長アニメ速度 = 500; + } + + public void t叩ききりまショー_判定から各数値を増加させる( E判定 eJudge, int nLagTime ) + { + this.st叩ききりまショー.b最初のチップが叩かれた = true; + this.st叩ききりまショー.n区間ノート数++; + this.st叩ききりまショー.n現在通過したノート数++; + switch( eJudge ) + { + case E判定.Perfect: + this.st叩ききりまショー.nヒット数_PERFECT++; + break; + case E判定.Great: + this.st叩ききりまショー.nヒット数_GREAT++; + break; + case E判定.Good: + this.st叩ききりまショー.nヒット数_GOOD++; + break; + case E判定.Poor: + this.st叩ききりまショー.nヒット数_POOR++; + break; + case E判定.Miss: + this.st叩ききりまショー.nヒット数_MISS++; + break; + } + switch( eJudge ) + { + case E判定.Perfect: + case E判定.Great: + case E判定.Good: + this.st叩ききりまショー.n現在のコンボ++; + if( this.st叩ききりまショー.n現在のコンボ >= this.st叩ききりまショー.n最大コンボ ) + this.st叩ききりまショー.n最大コンボ = this.st叩ききりまショー.n現在のコンボ; + if( Math.Abs( nLagTime ) > this.st叩ききりまショー.n最大ズレ時間 ) + { + this.st叩ききりまショー.n最大ズレ時間 = Math.Abs( nLagTime ); + } + if( Math.Abs( nLagTime ) > this.st叩ききりまショー.n全体最大ズレ時間 ) + { + this.st叩ききりまショー.n全体最大ズレ時間 = Math.Abs( nLagTime ); + } + if( this.st叩ききりまショー.n最小ズレ時間 == -1 ) + this.st叩ききりまショー.n最小ズレ時間 = Math.Abs( nLagTime ); + if( Math.Abs( nLagTime ) < this.st叩ききりまショー.n最小ズレ時間 ) + { + this.st叩ききりまショー.n最小ズレ時間 = Math.Abs( nLagTime ); + } + break; + default: + this.st叩ききりまショー.n現在のコンボ = 0; + break; + } + } + + private void t加算審査アニメ_Start() + { + this.st叩ききりまショー.ct加算審査中 = new CCounter( 0, 2000, 1, TJAPlayer3.Timer ); + this.st叩ききりまショー.b加算アニメ中 = true; + } + private void t加算時間描画_Start() + { + this.st叩ききりまショー.ct加算時間表示 = new CCounter( 0, 1, 1000, TJAPlayer3.Timer ); + } + + private void t加算時間描画( int addtime ) + { + this.t加算文字表示( 258, 150, string.Format( "{0,2:#0}", addtime.ToString() ) ); + //CDTXMania.act文字コンソール.tPrint( 236, 80, C文字コンソール.Eフォント種別.赤, "+" + string.Format( "{0,2:#0}", addtime.ToString() ) ); + } + + private struct ST文字位置 + { + public char ch; + public Point pt; + public ST文字位置( char ch, Point pt ) + { + this.ch = ch; + this.pt = pt; + } + } + + private ST文字位置[] st小文字位置 = new ST文字位置[]{ + new ST文字位置( '0', new Point( 0, 0 ) ), + new ST文字位置( '1', new Point( 44, 0 ) ), + new ST文字位置( '2', new Point( 88, 0 ) ), + new ST文字位置( '3', new Point( 132, 0 ) ), + new ST文字位置( '4', new Point( 176, 0 ) ), + new ST文字位置( '5', new Point( 220, 0 ) ), + new ST文字位置( '6', new Point( 264, 0 ) ), + new ST文字位置( '7', new Point( 308, 0 ) ), + new ST文字位置( '8', new Point( 352, 0 ) ), + new ST文字位置( '9', new Point( 396, 0 ) ) + }; + + private void t小文字表示( int x, int y, string str ) + { + foreach( char ch in str ) + { + for( int i = 0; i < this.st小文字位置.Length; i++ ) + { + if (this.st小文字位置[i].ch == ch) + { + Rectangle rectangle = new Rectangle(TJAPlayer3.Skin.Game_Taiko_Combo_Size[0] * i, 0, TJAPlayer3.Skin.Game_Taiko_Combo_Size[0], TJAPlayer3.Skin.Game_Taiko_Combo_Size[1]); + if(TJAPlayer3.Tx.Taiko_Combo[0] != null ) + { + if( this.st叩ききりまショー.bタイマー使用中 ) + TJAPlayer3.Tx.Taiko_Combo[0].Opacity = 255; + else if( this.st叩ききりまショー.b最初のチップが叩かれた && !this.st叩ききりまショー.bタイマー使用中 ) + TJAPlayer3.Tx.Taiko_Combo[0].Opacity = 128; + if (this.st叩ききりまショー.b加算アニメ中) + TJAPlayer3.Tx.Taiko_Combo[0].Opacity = 0; + TJAPlayer3.Tx.Taiko_Combo[0].vc拡大縮小倍率.Y = 1f; + TJAPlayer3.Tx.Taiko_Combo[0].vc拡大縮小倍率.X = 1f; + TJAPlayer3.Tx.Taiko_Combo[0].t2D中心基準描画( TJAPlayer3.app.Device, x, y, rectangle ); + } + break; + } + } + x += TJAPlayer3.Skin.Game_Taiko_Combo_Padding[0] * 2; + } + } + protected void t加算文字表示( int x, int y, string str ) + { + char[] cFont = new char[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' }; + foreach( char ch in str ) + { + for( int i = 0; i < cFont.Length; i++ ) + { + if( cFont[ i ] == ch ) + { + Rectangle rectangle = new Rectangle(TJAPlayer3.Skin.Game_Score_Size[0] * i, 0, TJAPlayer3.Skin.Game_Score_Size[0], TJAPlayer3.Skin.Game_Score_Size[1]); + if (TJAPlayer3.Tx.Taiko_Score[0] != null ) + { + TJAPlayer3.Tx.Taiko_Score[0].vc拡大縮小倍率.Y = 1f; + TJAPlayer3.Tx.Taiko_Score[0].t2D描画( TJAPlayer3.app.Device, x, y, rectangle ); + } + } + } + x += 20; + } + } + } +} diff --git a/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏DrumsコンボDGB.cs b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏DrumsコンボDGB.cs new file mode 100644 index 00000000..c7b7e1bc --- /dev/null +++ b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏DrumsコンボDGB.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace TJAPlayer3 +{ + internal class CAct演奏DrumsコンボDGB : CAct演奏Combo共通 + { + // CAct演奏Combo共通 実装 + + protected override void tコンボ表示_ギター( int nCombo値, int nジャンプインデックス ) + { + } + protected override void tコンボ表示_ドラム( int nCombo値, int nジャンプインデックス ) + { + } + protected override void tコンボ表示_ベース( int nCombo値, int nジャンプインデックス ) + { + } + protected override void tコンボ表示_太鼓(int nCombo値, int nジャンプインデックス, int nPlayer) + { + base.tコンボ表示_太鼓( nCombo値, nジャンプインデックス, nPlayer ); + } + } +} diff --git a/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsコンボ吹き出し.cs b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsコンボ吹き出し.cs new file mode 100644 index 00000000..18add622 --- /dev/null +++ b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsコンボ吹き出し.cs @@ -0,0 +1,208 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Drawing; +using System.Runtime.InteropServices; +using SlimDX; +using FDK; + +namespace TJAPlayer3 +{ + internal class CAct演奏Drumsコンボ吹き出し : CActivity + { + // コンストラクタ + + /// + /// 100コンボごとに出る吹き出し。 + /// 本当は「10000点」のところも動かしたいけど、技術不足だし保留。 + /// + public CAct演奏Drumsコンボ吹き出し() + { + for (int i = 0; i < 10; i++) + { + this.st小文字位置[i].ch = i.ToString().ToCharArray()[0]; + this.st小文字位置[i].pt = new Point(i * 53, 0); + } + base.b活性化してない = true; + } + + + // メソッド + public virtual void Start( int nCombo, int player ) + { + this.NowDrawBalloon = 0; + this.ct進行[ player ] = new CCounter( 1, 42, 70, TJAPlayer3.Timer ); + this.nCombo_渡[player] = nCombo; + } + + // CActivity 実装 + + public override void On活性化() + { + for( int i = 0; i < 2; i++ ) + { + this.nCombo_渡[ i ] = 0; + this.ct進行[ i ] = new CCounter(); + } + + base.On活性化(); + } + public override void On非活性化() + { + for( int i = 0; i < 2; i++ ) + { + this.ct進行[ i ] = null; + } + base.On非活性化(); + } + public override void OnManagedリソースの作成() + { + if( !base.b活性化してない ) + { + //this.tx吹き出し本体[ 0 ] = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\7_combo balloon.png" ) ); + //if (CDTXMania.stage演奏ドラム画面.bDoublePlay) + // this.tx吹き出し本体[ 1 ] = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\7_combo balloon_2P.png" ) ); + //this.tx数字 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\7_combo balloon_number.png" ) ); + base.OnManagedリソースの作成(); + } + } + public override void OnManagedリソースの解放() + { + if( !base.b活性化してない ) + { + //CDTXMania.tテクスチャの解放( ref this.tx吹き出し本体[ 0 ] ); + //if (CDTXMania.stage演奏ドラム画面.bDoublePlay) + // CDTXMania.tテクスチャの解放( ref this.tx吹き出し本体[ 1 ] ); + //CDTXMania.tテクスチャの解放( ref this.tx数字 ); + base.OnManagedリソースの解放(); + } + } + public override int On進行描画() + { + if( !base.b活性化してない ) + { + for( int i = 0; i < 2; i++ ) + { + if( !this.ct進行[ i ].b停止中 ) + { + this.ct進行[ i ].t進行(); + if( this.ct進行[ i ].b終了値に達した ) + { + this.ct進行[ i ].t停止(); + } + } + + if( TJAPlayer3.Tx.Balloon_Combo[ i ] != null ) + { + //半透明4f + if( this.ct進行[ i ].n現在の値 == 1 || this.ct進行[ i ].n現在の値 == 42 ) + { + TJAPlayer3.Tx.Balloon_Number_Combo.Opacity = 0; + TJAPlayer3.Tx.Balloon_Combo[i].Opacity = 64; + NowDrawBalloon = 0; + } + else if( this.ct進行[ i ].n現在の値 == 2 || this.ct進行[ i ].n現在の値 == 41 ) + { + TJAPlayer3.Tx.Balloon_Number_Combo.Opacity = 0; + TJAPlayer3.Tx.Balloon_Combo[i].Opacity = 128; + NowDrawBalloon = 0; + } + else if( this.ct進行[ i ].n現在の値 == 3 || this.ct進行[ i ].n現在の値 == 40 ) + { + NowDrawBalloon = 1; + TJAPlayer3.Tx.Balloon_Combo[i].Opacity = 255; + TJAPlayer3.Tx.Balloon_Number_Combo.Opacity = 128; + } + else if( this.ct進行[ i ].n現在の値 == 4 || this.ct進行[ i ].n現在の値 == 39 ) + { + NowDrawBalloon = 2; + TJAPlayer3.Tx.Balloon_Combo[i].Opacity = 255; + TJAPlayer3.Tx.Balloon_Number_Combo.Opacity = 255; + } + else if( this.ct進行[ i ].n現在の値 == 5 || this.ct進行[ i ].n現在の値 == 38 ) + { + NowDrawBalloon = 2; + TJAPlayer3.Tx.Balloon_Combo[i].Opacity = 255; + TJAPlayer3.Tx.Balloon_Number_Combo.Opacity = 255; + } + else if( this.ct進行[ i ].n現在の値 >= 6 || this.ct進行[ i ].n現在の値 <= 37 ) + { + NowDrawBalloon = 2; + TJAPlayer3.Tx.Balloon_Combo[i].Opacity = 255; + TJAPlayer3.Tx.Balloon_Number_Combo.Opacity = 255; + } + + if( this.ct進行[ i ].b進行中 ) + { + TJAPlayer3.Tx.Balloon_Combo[ i ].t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Balloon_Combo_X[ i ], TJAPlayer3.Skin.Game_Balloon_Combo_Y[ i ], new RectangleF(NowDrawBalloon * 360f, 0, 360f, 192) ); + if( this.nCombo_渡[ i ] < 1000 ) //2016.08.23 kairera0467 仮実装。 + { + this.t小文字表示( TJAPlayer3.Skin.Game_Balloon_Combo_Number_X[ i], TJAPlayer3.Skin.Game_Balloon_Combo_Number_Y[ i ], string.Format( "{0,4:###0}", this.nCombo_渡[ i ] ), i); + TJAPlayer3.Tx.Balloon_Number_Combo.t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Balloon_Combo_Text_X[ i] + 6 - NowDrawBalloon * 3, TJAPlayer3.Skin.Game_Balloon_Combo_Text_Y[ i ], new Rectangle(0, 124, 100, 30)); + } + else + { + this.t小文字表示( TJAPlayer3.Skin.Game_Balloon_Combo_Number_Ex_X[ i], TJAPlayer3.Skin.Game_Balloon_Combo_Number_Ex_Y[ i ], string.Format( "{0,4:###0}", this.nCombo_渡[ i ] ), i ); + TJAPlayer3.Tx.Balloon_Number_Combo.vc拡大縮小倍率.X = 1.0f; + TJAPlayer3.Tx.Balloon_Number_Combo.t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Balloon_Combo_Text_Ex_X[ i] + 6 - NowDrawBalloon * 3, TJAPlayer3.Skin.Game_Balloon_Combo_Text_Ex_Y[ i ], new Rectangle( 0, 124, 100, 30 ) ); + } + } + } + } + } + return 0; + } + + + // その他 + + #region [ private ] + //----------------- + private CCounter[] ct進行 = new CCounter[ 2 ]; + //private CTexture[] tx吹き出し本体 = new CTexture[ 2 ]; + //private CTexture tx数字; + private int[] nCombo_渡 = new int[ 2 ]; + + private int NowDrawBalloon; + + [StructLayout(LayoutKind.Sequential)] + private struct ST文字位置 + { + public char ch; + public Point pt; + public ST文字位置( char ch, Point pt ) + { + this.ch = ch; + this.pt = pt; + } + } + private ST文字位置[] st小文字位置 = new ST文字位置[10]; + + private void t小文字表示( int x, int y, string str, int player ) + { + foreach( char ch in str ) + { + for( int i = 0; i < this.st小文字位置.Length; i++ ) + { + if( this.st小文字位置[ i ].ch == ch ) + { + Rectangle rectangle = new Rectangle( this.st小文字位置[ i ].pt.X, this.st小文字位置[ i ].pt.Y + player * 62, 53, 62 ); + if(TJAPlayer3.Tx.Balloon_Number_Combo != null ) + { + if (int.Parse(str) >= 1000) + TJAPlayer3.Tx.Balloon_Number_Combo.vc拡大縮小倍率.X = 0.8f; + else + TJAPlayer3.Tx.Balloon_Number_Combo.vc拡大縮小倍率.X = 1.0f; + + TJAPlayer3.Tx.Balloon_Number_Combo.t2D描画( TJAPlayer3.app.Device, x, y, rectangle ); + } + break; + } + } + x += (int)(45 * TJAPlayer3.Tx.Balloon_Number_Combo.vc拡大縮小倍率.X); + } + } + //----------------- + #endregion + } +} diff --git a/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsスコア.cs b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsスコア.cs new file mode 100644 index 00000000..69bcd63e --- /dev/null +++ b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsスコア.cs @@ -0,0 +1,247 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Drawing; +using System.Runtime.InteropServices; +using FDK; + +namespace TJAPlayer3 +{ + internal class CAct演奏Drumsスコア : CAct演奏スコア共通 + { + // CActivity 実装(共通クラスからの差分のみ) + + public unsafe override int On進行描画() + { + if (!base.b活性化してない) + { + if (base.b初めての進行描画) + { + base.b初めての進行描画 = false; + } + long num = FDK.CSound管理.rc演奏用タイマ.n現在時刻; + //if (num < base.n進行用タイマ) + //{ + // base.n進行用タイマ = num; + //} + //while ((num - base.n進行用タイマ) >= 10) + //{ + // for (int j = 0; j < 4; j++) + // { + // this.n現在表示中のスコア[j] += this.nスコアの増分[j]; + + // if (this.n現在表示中のスコア[j] > (long) this.n現在の本当のスコア[j]) + // this.n現在表示中のスコア[j] = (long) this.n現在の本当のスコア[j]; + // } + // base.n進行用タイマ += 10; + + //} + if( !this.ctTimer.b停止中 ) + { + this.ctTimer.t進行(); + if( this.ctTimer.b終了値に達した ) + { + this.ctTimer.t停止(); + } + + //base.t小文字表示( 20, 150, string.Format( "{0,7:######0}", this.nスコアの増分.Guitar ) ); + } + + for (int i = 0; i < 4; i++) + { + if (!this.ct点数アニメタイマ[i].b停止中) + { + this.ct点数アニメタイマ[i].t進行(); + if (this.ct点数アニメタイマ[i].b終了値に達した) + { + this.ct点数アニメタイマ[i].t停止(); + } + } + } + + for (int i = 0; i < 4; i++) + { + if (!this.ctボーナス加算タイマ[i].b停止中) + { + this.ctボーナス加算タイマ[i].t進行(); + if (this.ctボーナス加算タイマ[i].b終了値に達した) + { + TJAPlayer3.stage演奏ドラム画面.actScore.BonusAdd(i); + this.ctボーナス加算タイマ[i].t停止(); + } + } + } + + //CDTXMania.act文字コンソール.tPrint(0, 0, C文字コンソール.Eフォント種別.白, this.ctボーナス加算タイマ[0].n現在の値.ToString()); + + base.t小文字表示(TJAPlayer3.Skin.Game_Score_X[0], TJAPlayer3.Skin.Game_Score_Y[0], string.Format( "{0,7:######0}", this.n現在表示中のスコア[ 0 ].Taiko ), 0 , 256, 0); + if( TJAPlayer3.stage演奏ドラム画面.bDoublePlay ) base.t小文字表示(TJAPlayer3.Skin.Game_Score_X[1], TJAPlayer3.Skin.Game_Score_Y[1], string.Format( "{0,7:######0}", this.n現在表示中のスコア[ 1 ].Taiko ), 0 , 256, 1); + + for( int i = 0; i < 256; i++ ) + { + if( this.stScore[ i ].b使用中 ) + { + if( !this.stScore[ i ].ctTimer.b停止中 ) + { + this.stScore[ i ].ctTimer.t進行(); + if( this.stScore[ i ].ctTimer.b終了値に達した ) + { + if( this.stScore[ i ].b表示中 == true ) + this.n現在表示中のAddScore--; + this.stScore[ i ].ctTimer.t停止(); + this.stScore[ i ].b使用中 = false; + TJAPlayer3.stage演奏ドラム画面.actDan.Update(); + } + + if (!stScore[i].bAddEnd) + { + this.n現在表示中のスコア[this.stScore[i].nPlayer].Taiko += (long)this.stScore[i].nAddScore; + stScore[i].bAddEnd = true; + if (ct点数アニメタイマ[stScore[i].nPlayer].b終了値に達してない) + { + this.ct点数アニメタイマ[stScore[i].nPlayer] = new CCounter(0, 11, 13, TJAPlayer3.Timer); + this.ct点数アニメタイマ[stScore[i].nPlayer].n現在の値 = 1; + } + else + { + this.ct点数アニメタイマ[stScore[i].nPlayer] = new CCounter(0, 11, 13, TJAPlayer3.Timer); + } + } + + int xAdd = 0; + int yAdd = 0; + int alpha = 0; + + if ( this.stScore[i].ctTimer.n現在の値 < 10) + { + xAdd = 25; + alpha = 150; + } else if (this.stScore[i].ctTimer.n現在の値 < 20) + { + xAdd = 10; + alpha = 200; + } else if (this.stScore[i].ctTimer.n現在の値 < 30) + { + xAdd = -5; + alpha = 250; + } else if (this.stScore[i].ctTimer.n現在の値 < 40) + { + xAdd = -9; + alpha = 256; + } else if (this.stScore[i].ctTimer.n現在の値 < 50) + { + xAdd = -10; + alpha = 256; + } else if (this.stScore[i].ctTimer.n現在の値 < 60) + { + xAdd = -9; + alpha = 256; + } else if (this.stScore[i].ctTimer.n現在の値 < 70) + { + xAdd = -5; + alpha = 256; + } else if (this.stScore[i].ctTimer.n現在の値 < 80) + { + xAdd = -3; + alpha = 256; + } else + { + xAdd = 0; + alpha = 256; + } + + + + if ( this.stScore[ i ].ctTimer.n現在の値 > 120 ) + { + yAdd = -1; + } + if (this.stScore[i].ctTimer.n現在の値 > 130) + { + yAdd = -5; + } + if (this.stScore[i].ctTimer.n現在の値 > 140) + { + yAdd = -7; + } + if (this.stScore[i].ctTimer.n現在の値 > 150) + { + yAdd = -8; + } + if (this.stScore[i].ctTimer.n現在の値 > 160) + { + yAdd = -8; + alpha = 256; + } + if (this.stScore[i].ctTimer.n現在の値 > 170) + { + yAdd = -6; + alpha = 256; + } + if (this.stScore[i].ctTimer.n現在の値 > 180) + { + yAdd = 0; + alpha = 256; + } + if (this.stScore[i].ctTimer.n現在の値 > 190) + { + yAdd = 5; + alpha = 200; + } + if (this.stScore[i].ctTimer.n現在の値 > 200) + { + yAdd = 12; + alpha = 150; + } + if (this.stScore[i].ctTimer.n現在の値 > 210) + { + yAdd = 20; + alpha = 0; + } + + + if ( this.n現在表示中のAddScore < 10 && this.stScore[ i ].bBonusScore == false ) + base.t小文字表示(TJAPlayer3.Skin.Game_Score_Add_X[this.stScore[i].nPlayer] + xAdd, this.stScore[ i ].nPlayer == 0 ? TJAPlayer3.Skin.Game_Score_Add_Y[ this.stScore[ i ].nPlayer ] + yAdd : TJAPlayer3.Skin.Game_Score_Add_Y[ this.stScore[ i ].nPlayer ] - yAdd, string.Format( "{0,7:######0}", this.stScore[ i ].nAddScore ), this.stScore[ i ].nPlayer + 1 , alpha, stScore[i].nPlayer); + if( this.n現在表示中のAddScore < 10 && this.stScore[ i ].bBonusScore == true ) + base.t小文字表示(TJAPlayer3.Skin.Game_Score_AddBonus_X[this.stScore[i].nPlayer] + xAdd, TJAPlayer3.Skin.Game_Score_AddBonus_Y[ this.stScore[ i ].nPlayer ], string.Format( "{0,7:######0}", this.stScore[ i ].nAddScore ), this.stScore[ i ].nPlayer + 1 , alpha, stScore[i].nPlayer); + else + { + this.n現在表示中のAddScore--; + this.stScore[ i ].b表示中 = false; + } + } + } + //CDTXMania.act文字コンソール.tPrint(50, 0, C文字コンソール.Eフォント種別.白, this.ct点数アニメタイマ[0].n現在の値.ToString()); + //CDTXMania.act文字コンソール.tPrint(50, 20, C文字コンソール.Eフォント種別.白, this.ct点数アニメタイマ[0].b進行中.ToString()); + } + + + //this.n現在表示中のスコア.Taiko = (long)this.n現在の本当のスコア.Taiko; + + //string str = this.n現在表示中のスコア.Taiko.ToString( "0000000" ); + //for ( int i = 0; i < 7; i++ ) + //{ + // Rectangle rectangle; + // char ch = str[i]; + // if( ch.Equals(' ') ) + // { + // rectangle = new Rectangle(0, 0, 24, 34); + // } + // else + // { + // int num4 = int.Parse(str.Substring(i, 1)); + // rectangle = new Rectangle(num4 * 24, 0, 24, 34); + // } + // if( base.txScore != null ) + // { + // base.txScore.t2D描画(CDTXMania.app.Device, 20 + (i * 20), 192, rectangle); + // } + //} + + + //CDTXMania.act文字コンソール.tPrint( 50, 200, C文字コンソール.Eフォント種別.白, str ); + } + return 0; + } + } +} diff --git a/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsスコアランク.cs b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsスコアランク.cs new file mode 100644 index 00000000..4eb9a95c --- /dev/null +++ b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsスコアランク.cs @@ -0,0 +1,88 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using FDK; + +namespace TJAPlayer3 +{ + class CAct演奏Drumsスコアランク : CActivity + { + public override void On活性化() + { + double RollTimems = 0; + foreach (var chip in TJAPlayer3.DTX.listChip) + { + if (chip.nチャンネル番号 == 21 || chip.nチャンネル番号 == 22) + { + RollTimems += (chip.nノーツ終了時刻ms - chip.n発声時刻ms) / 1000.0; + } + } + + this.ScoreRank = new int[] { 500000, 600000, 700000, 800000, 900000, 950000, + (int)(TJAPlayer3.stage演奏ドラム画面.nAddScoreNiji[0] * TJAPlayer3.stage演奏ドラム画面.nNoteCount[0]) + (int)(TJAPlayer3.stage演奏ドラム画面.nBalloonCount[0] * 100) + (int)(Math.Ceiling(RollTimems * 16.6 / 10) * 100 * 10)}; + + for(int i = 0; i < 7; i++) + { + this.counter[i] = new CCounter(); + } + base.On活性化(); + } + + public override void On非活性化() + { + base.On非活性化(); + } + + public override int On進行描画() + { + if(TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Dan) + { + float x = 0; + for (int i = 0; i < 7; i++) + { + counter[i].t進行(); + if (TJAPlayer3.stage演奏ドラム画面.actScore.GetScore(0) >= ScoreRank[i]) + { + if (!this.counter[i].b進行中) + { + this.counter[i].t開始(0, 3000, 1, TJAPlayer3.Timer); + } + if (counter[i].n現在の値 <= 255) + { + TJAPlayer3.Tx.ScoreRank.Opacity = counter[i].n現在の値; + x = 51 - (counter[i].n現在の値 / 5.0f); + } + if (counter[i].n現在の値 > 255 && counter[i].n現在の値 <= 255 + 180) + { + TJAPlayer3.Tx.ScoreRank.Opacity = 255; + TJAPlayer3.Tx.ScoreRank.vc拡大縮小倍率.X = 1.0f + (float)Math.Sin((counter[i].n現在の値 - 255) * (Math.PI / 180)) * 0.2f; + TJAPlayer3.Tx.ScoreRank.vc拡大縮小倍率.Y = 1.0f + (float)Math.Sin((counter[i].n現在の値 - 255) * (Math.PI / 180)) * 0.2f; + x = 0; + } + if (counter[i].n現在の値 > 255 + 180 && counter[i].n現在の値 <= 2745) + { + TJAPlayer3.Tx.ScoreRank.Opacity = 255; + TJAPlayer3.Tx.ScoreRank.vc拡大縮小倍率.X = 1.0f; + TJAPlayer3.Tx.ScoreRank.vc拡大縮小倍率.Y = 1.0f; + x = 0; + } + if (counter[i].n現在の値 >= 2745 && counter[i].n現在の値 <= 3000) + { + TJAPlayer3.Tx.ScoreRank.Opacity = 255 - ((counter[i].n現在の値 - 2745)); + x = -((counter[i].n現在の値 - 2745) / 5.0f); + } + + TJAPlayer3.Tx.ScoreRank.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 87, 98 + (int)x, new System.Drawing.Rectangle(0, i == 0 ? i * 114 : i * 120, 140, i == 0 ? 114 : 120)); + } + } + } + + return base.On進行描画(); + } + + public int[] ScoreRank; + private CCounter[] counter = new CCounter[7]; + } +} diff --git a/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsステータスパネル.cs b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsステータスパネル.cs new file mode 100644 index 00000000..aad7b20a --- /dev/null +++ b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsステータスパネル.cs @@ -0,0 +1,49 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Runtime.InteropServices; +using System.Drawing; + +using FDK; + +namespace TJAPlayer3 +{ + internal class CAct演奏Drumsステータスパネル : CAct演奏ステータスパネル共通 + { + // コンストラクタ + public override void On活性化() + { + + base.On活性化(); + } + + public override void OnManagedリソースの作成() + { + if( !base.b活性化してない ) + { + + base.OnManagedリソースの作成(); + } + } + public override void OnManagedリソースの解放() + { + + base.OnManagedリソースの解放(); + } + public override int On進行描画() + { + + + return 0; + } + + + // その他 + + #region [ private ] + //----------------- + + //----------------- + #endregion + } +} diff --git a/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsチップエフェクト.cs b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsチップエフェクト.cs new file mode 100644 index 00000000..b0d2de6e --- /dev/null +++ b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsチップエフェクト.cs @@ -0,0 +1,134 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Drawing; +using System.Runtime.InteropServices; +using SlimDX; +using FDK; + +namespace TJAPlayer3 +{ + internal class CAct演奏Drumsチップエフェクト : CActivity + { + // コンストラクタ + + public CAct演奏Drumsチップエフェクト() + { + //base.b活性化してない = true; + } + + + // メソッド + public virtual void Start(int nPlayer, int Lane) + { + if (TJAPlayer3.Tx.Gauge_Soul_Explosion != null) + { + for (int i = 0; i < 128; i++) + { + if (!st[i].b使用中) + { + st[i].b使用中 = true; + st[i].ct進行 = new CCounter(0, TJAPlayer3.Skin.Game_Effect_NotesFlash[2], TJAPlayer3.Skin.Game_Effect_NotesFlash_Timer, TJAPlayer3.Timer); + st[i].ctChipEffect = new CCounter(0, 24, 17, TJAPlayer3.Timer); + st[i].nプレイヤー = nPlayer; + st[i].Lane = Lane; + break; + } + } + } + } + + // CActivity 実装 + + public override void On活性化() + { + for (int i = 0; i < 128; i++) + { + st[i] = new STチップエフェクト + { + b使用中 = false, + ct進行 = new CCounter(), + ctChipEffect = new CCounter() + }; + } + base.On活性化(); + } + public override void On非活性化() + { + for (int i = 0; i < 128; i++) + { + st[i].ct進行 = null; + st[i].ctChipEffect = null; + st[i].b使用中 = false; + } + base.On非活性化(); + } + public override int On進行描画() + { + for (int i = 0; i < 128; i++) + { + if (st[i].b使用中) + { + st[i].ct進行.t進行(); + st[i].ctChipEffect.t進行(); + if (st[i].ct進行.b終了値に達した) + { + st[i].ct進行.t停止(); + st[i].b使用中 = false; + } + switch (st[i].nプレイヤー) + { + case 0: + if (TJAPlayer3.Tx.Gauge_Soul_Explosion[0] != null) + TJAPlayer3.Tx.Gauge_Soul_Explosion[0].t2D中心基準描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Effect_FlyingNotes_EndPoint_X[0], TJAPlayer3.Skin.Game_Effect_FlyingNotes_EndPoint_Y[0], new Rectangle(st[i].ct進行.n現在の値 * TJAPlayer3.Skin.Game_Effect_NotesFlash[0], 0, TJAPlayer3.Skin.Game_Effect_NotesFlash[0], TJAPlayer3.Skin.Game_Effect_NotesFlash[1])); + if (this.st[i].ctChipEffect.n現在の値 < 13) + TJAPlayer3.Tx.Notes.t2D中心基準描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Effect_FlyingNotes_EndPoint_X[0], TJAPlayer3.Skin.Game_Effect_FlyingNotes_EndPoint_Y[0], new Rectangle(st[i].Lane * 130, 390, 130, 130)); + break; + + case 1: + if (TJAPlayer3.Tx.Gauge_Soul_Explosion[1] != null) + TJAPlayer3.Tx.Gauge_Soul_Explosion[1].t2D中心基準描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Effect_FlyingNotes_EndPoint_X[1], TJAPlayer3.Skin.Game_Effect_FlyingNotes_EndPoint_Y[1], new Rectangle(st[i].ct進行.n現在の値 * TJAPlayer3.Skin.Game_Effect_NotesFlash[0], 0, TJAPlayer3.Skin.Game_Effect_NotesFlash[0], TJAPlayer3.Skin.Game_Effect_NotesFlash[1])); + if (this.st[i].ctChipEffect.n現在の値 < 13) + TJAPlayer3.Tx.Notes.t2D中心基準描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Effect_FlyingNotes_EndPoint_X[1], TJAPlayer3.Skin.Game_Effect_FlyingNotes_EndPoint_Y[1], new Rectangle(st[i].Lane * 130, 390, 130, 130)); + break; + } + + if (this.st[i].ctChipEffect.n現在の値 < 12) + { + TJAPlayer3.Tx.ChipEffect.color4 = new Color4(1.0f, 1.0f, 0.0f); + TJAPlayer3.Tx.ChipEffect.Opacity = (int)(this.st[i].ctChipEffect.n現在の値 * (float)(225 / 11)); + TJAPlayer3.Tx.ChipEffect.t2D中心基準描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Effect_FlyingNotes_EndPoint_X[st[i].nプレイヤー], TJAPlayer3.Skin.Game_Effect_FlyingNotes_EndPoint_Y[st[i].nプレイヤー], new Rectangle(st[i].Lane * 130, 0, 130, 130)); + } + if (this.st[i].ctChipEffect.n現在の値 > 12 && this.st[i].ctChipEffect.n現在の値 < 24) + { + TJAPlayer3.Tx.ChipEffect.color4 = new Color4(1.0f, 1.0f, 1.0f); + TJAPlayer3.Tx.ChipEffect.Opacity = 255 - (int)((this.st[i].ctChipEffect.n現在の値 - 10) * (float)(255 / 14)); + TJAPlayer3.Tx.ChipEffect.t2D中心基準描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Effect_FlyingNotes_EndPoint_X[st[i].nプレイヤー], TJAPlayer3.Skin.Game_Effect_FlyingNotes_EndPoint_Y[st[i].nプレイヤー], new Rectangle(st[i].Lane * 130, 0, 130, 130)); + } + } + } + return 0; + } + + + // その他 + + #region [ private ] + //----------------- + //private CTexture[] txChara; + + [StructLayout(LayoutKind.Sequential)] + private struct STチップエフェクト + { + public bool b使用中; + public CCounter ct進行; + public CCounter ctChipEffect; + public int nプレイヤー; + public int Lane; + } + private STチップエフェクト[] st = new STチップエフェクト[128]; + + //----------------- + #endregion + } +} diff --git a/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏DrumsチップファイアD.cs b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏DrumsチップファイアD.cs new file mode 100644 index 00000000..2dd70757 --- /dev/null +++ b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏DrumsチップファイアD.cs @@ -0,0 +1,500 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Drawing; +using System.Runtime.InteropServices; +using SlimDX; +using FDK; + +namespace TJAPlayer3 +{ + internal class CAct演奏DrumsチップファイアD : CActivity + { + // コンストラクタ + + public CAct演奏DrumsチップファイアD() + { + base.b活性化してない = true; + } + + + // メソッド + + /// + /// 大音符の花火エフェクト + /// + /// + public virtual void Start( int nLane, int nPlayer ) + { + nY座標P2 = new int[] { 548, 612, 670, 712, 730, 780, 725, 690, 640 }; + if( TJAPlayer3.Tx.Effects_Hit_FireWorks != null && TJAPlayer3.Tx.Effects_Hit_FireWorks != null ) + { + for (int i = 0; i < 9; i++) + { + for (int j = 0; j < 45; j++) + { + if (!this.st大音符花火[j].b使用中) + { + this.st大音符花火[j].b使用中 = true; + this.st大音符花火[j].ct進行 = new CCounter(0, 40, 18, TJAPlayer3.Timer); // カウンタ + this.st大音符花火[j].fX = this.nX座標[ i ]; //X座標 + this.st大音符花火[j].fY = nPlayer == 0 ? this.nY座標[ i ] : this.nY座標P2[ i ]; + + switch(nLane) + { + case 0: + this.st大音符花火[j].nColor = 0; + break; + case 1: + this.st大音符花火[j].nColor = 1; + break; + } + + switch( i ) + { + case 0: + this.st大音符花火[ j ].n開始フレーム = 0; + this.st大音符花火[ j ].n終了フレーム = 16; + break; + case 1: + this.st大音符花火[ j ].n開始フレーム = 3; + this.st大音符花火[ j ].n終了フレーム = 19; + break; + case 2: + this.st大音符花火[ j ].n開始フレーム = 6; + this.st大音符花火[ j ].n終了フレーム = 22; + break; + case 3: + this.st大音符花火[ j ].n開始フレーム = 9; + this.st大音符花火[ j ].n終了フレーム = 25; + break; + case 4: + this.st大音符花火[ j ].n開始フレーム = 12; + this.st大音符花火[ j ].n終了フレーム = 28; + break; + case 5: + this.st大音符花火[ j ].n開始フレーム = 15; + this.st大音符花火[ j ].n終了フレーム = 31; + break; + case 6: + this.st大音符花火[ j ].n開始フレーム = 18; + this.st大音符花火[ j ].n終了フレーム = 34; + break; + case 7: + this.st大音符花火[ j ].n開始フレーム = 21; + this.st大音符花火[ j ].n終了フレーム = 37; + break; + case 8: + this.st大音符花火[ j ].n開始フレーム = 24; + this.st大音符花火[ j ].n終了フレーム = 40; + break; + } + + + + break; + } + } + } + } + } + + public virtual void Start( int nLane, E判定 judge, int player ) + { + for (int j = 0; j < 3 * 4; j++) + { + if( !this.st状態[ j ].b使用中 ) + //for( int n = 0; n < 1; n++ ) + { + this.st状態[ j ].b使用中 = true; + //this.st状態[ n ].ct進行 = new CCounter( 0, 9, 20, CDTXMania.Timer ); + this.st状態[ j ].ct進行 = new CCounter( 0, 6, 25, TJAPlayer3.Timer ); + this.st状態[ j ].judge = judge; + this.st状態[ j ].nPlayer = player; + this.st状態_大[ j ].nPlayer = player; + + switch( nLane ) + { + case 0x11: + case 0x12: + this.st状態[ j ].nIsBig = 0; + break; + case 0x13: + case 0x14: + case 0x1A: + case 0x1B: + this.st状態_大[ j ].ct進行 = new CCounter( 0, 9, 20, TJAPlayer3.Timer ); + this.st状態_大[ j ].judge = judge; + this.st状態_大[ j ].nIsBig = 1; + break; + } + break; + } + } + } + public void Start紙吹雪() + { + return; + /* + if (this.tx紙吹雪 != null) + { + for (int i = 0; i < 256; i++) + { + for (int j = 0; j < 16; j++) + { + if (!this.st紙吹雪[j].b使用中) + { + this.st紙吹雪[j].b使用中 = true; + int n回転初期値 = CDTXMania.Random.Next(360); + int nX拡散方向 = CDTXMania.Random.Next(10); + int n拡散の大きさ = CDTXMania.Random.Next( 50, 1400 ); + int n重力加速 = CDTXMania.Random.Next( 6, 100 ); + double num7 = ( n拡散の大きさ / 1000.0 ) + (1 / 100.0); // 拡散の大きさ + //double num7 = 0.9 + ( ( (double) CDTXMania.Random.Next( 40 ) ) / 100.0 ); + this.st紙吹雪[ j ].nGraphic = CDTXMania.Random.Next(3); + this.st紙吹雪[ j ].nColor = CDTXMania.Random.Next(3); + this.st紙吹雪[j].ct進行 = new CCounter(0, 500, 5, CDTXMania.Timer); // カウンタ + this.st紙吹雪[j].fX = 1000; //X座標(仮) + + this.st紙吹雪[j].fY = ((( 470 + (((float)Math.Sin((double)this.st紙吹雪[j].f半径)) * this.st紙吹雪[j].f半径)) )); //Y座標 + //this.st紙吹雪[j].f加速度X = (float)(num7 * Math.Cos((Math.PI * 2 * n回転初期値) / 360.0)); + //this.st紙吹雪[ j ].f加速度X = (float)( ( num7 * Math.Cos((Math.PI * 2 * n回転初期値) / 360.0)) > 0.005 ? Math.Abs( num7 * Math.Cos((Math.PI * 2 * n回転初期値) / 360.0)) : num7 * Math.Cos((Math.PI * 2 * n回転初期値) / 360.0) ); + this.st紙吹雪[ j ].f加速度X = (float)Math.Abs(num7 * Math.Cos((Math.PI * 2 * n回転初期値) / 360.0)) - ( nX拡散方向 / 20.0f ); + this.st紙吹雪[j].f加速度Y = (float)-Math.Abs( num7 * (Math.Sin((Math.PI * 2 * n回転初期値) / 360.0))) - 0.05f; + //this.st紙吹雪[j].f加速度Y = (float)( num7 * (Math.Sin((Math.PI * 2 * n回転初期値) / 360.0))) - 0.05f; + this.st紙吹雪[j].f加速度の加速度X = 1.009f + (float)(num7 / 1000); + this.st紙吹雪[j].f加速度の加速度Y = 0.989f + (float)(num7 / 1000); + //this.st紙吹雪[j].f重力加速度 = 0.0100f; + this.st紙吹雪[j].f重力加速度 = n重力加速 / 10000.0f; + this.st紙吹雪[j].f半径 = (float)(0.5 + (((double)CDTXMania.Random.Next(40)) / 100.0)); + + + break; + } + } + } + } */ + } + + // CActivity 実装 + + public override void On活性化() + { + for( int i = 0; i < 3 * 4; i++ ) + { + this.st状態[ i ].ct進行 = new CCounter(); + this.st状態[ i ].b使用中 = false; + this.st状態_大[ i ].ct進行 = new CCounter(); + } + for( int i = 0; i < 256; i++ ) + { + this.st紙吹雪[ i ] = new ST紙吹雪(); + this.st紙吹雪[ i ].b使用中 = false; + this.st紙吹雪[ i ].ct進行 = new CCounter(); + } + base.On活性化(); + } + public override void On非活性化() + { + for( int i = 0; i < 3 * 4; i++ ) + { + this.st状態[ i ].ct進行 = null; + this.st状態_大[ i ].ct進行 = null; + } + for( int i = 0; i < 256; i++ ) + { + this.st紙吹雪[ i ].ct進行 = null; + } + base.On非活性化(); + } + public override void OnManagedリソースの作成() + { + if( !base.b活性化してない ) + { + // this.txアタックエフェクトUpper = CDTXMania.tテクスチャの生成Af( CSkin.Path( @"Graphics\7_explosion_upper.png" ) ); + // this.txアタックエフェクトUpper_big = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\7_explosion_upper_big.png" ) ); + //if( this.txアタックエフェクトUpper != null ) + //{ + // this.txアタックエフェクトUpper.b加算合成 = true; + //} + // this.tx大音符花火[0] = CDTXMania.tテクスチャの生成Af( CSkin.Path( @"Graphics\7_explosion_bignotes_red.png" ) ); + // this.tx大音符花火[0].b加算合成 = true; + // this.tx大音符花火[1] = CDTXMania.tテクスチャの生成Af( CSkin.Path( @"Graphics\7_explosion_bignotes_blue.png" ) ); + // this.tx大音符花火[1].b加算合成 = true; + //this.tx紙吹雪 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\7_particle paper.png" ) ); + base.OnManagedリソースの作成(); + } + } + public override void OnManagedリソースの解放() + { + if( !base.b活性化してない ) + { + //CDTXMania.tテクスチャの解放( ref this.txアタックエフェクトUpper ); + //CDTXMania.tテクスチャの解放( ref this.txアタックエフェクトUpper_big ); + // CDTXMania.tテクスチャの解放( ref this.tx大音符花火[ 0 ] ); + // CDTXMania.tテクスチャの解放( ref this.tx大音符花火[ 1 ] ); + //CDTXMania.tテクスチャの解放( ref this.tx紙吹雪 ); + base.OnManagedリソースの解放(); + } + } + public override int On進行描画() + { + if( !base.b活性化してない ) + { + for( int i = 0; i < 3 * 4; i++ ) + { + if( this.st状態[ i ].b使用中 ) + { + if( !this.st状態[ i ].ct進行.b停止中 ) + { + this.st状態[ i ].ct進行.t進行(); + if( this.st状態[ i ].ct進行.b終了値に達した ) + { + this.st状態[ i ].ct進行.t停止(); + this.st状態[ i ].b使用中 = false; + } + + // (When performing calibration, reduce visual distraction + // and current judgment feedback near the judgment position.) + if( TJAPlayer3.Tx.Effects_Hit_Explosion != null && !TJAPlayer3.IsPerformingCalibration ) + { + int n = this.st状態[ i ].nIsBig == 1 ? 520 : 0; + int nX = ( TJAPlayer3.Skin.nScrollFieldX[ this.st状態[ i ].nPlayer ] ) - ( (TJAPlayer3.Tx.Effects_Hit_Explosion.sz画像サイズ.Width / 7 ) / 2 ); + int nY = ( TJAPlayer3.Skin.nJudgePointY[ this.st状態[ i ].nPlayer ] ) - ( (TJAPlayer3.Tx.Effects_Hit_Explosion.sz画像サイズ.Height / 4 ) / 2 ); + + switch( st状態[ i ].judge ) + { + case E判定.Perfect: + case E判定.Great: + case E判定.Auto: + if (!this.st状態_大[i].ct進行.b停止中 && TJAPlayer3.Tx.Effects_Hit_Explosion_Big != null && this.st状態_大[i].nIsBig == 1) + TJAPlayer3.Tx.Effects_Hit_Explosion.t2D描画(TJAPlayer3.app.Device, nX, nY, new Rectangle(this.st状態[i].ct進行.n現在の値 * 260, n + 520, 260, 260)); + else + TJAPlayer3.Tx.Effects_Hit_Explosion.t2D描画(TJAPlayer3.app.Device, nX, nY, new Rectangle(this.st状態[i].ct進行.n現在の値 * 260, n, 260, 260)); + break; + case E判定.Good: + if (!this.st状態_大[i].ct進行.b停止中 && TJAPlayer3.Tx.Effects_Hit_Explosion_Big != null && this.st状態_大[i].nIsBig == 1) + TJAPlayer3.Tx.Effects_Hit_Explosion.t2D描画( TJAPlayer3.app.Device, nX, nY, new Rectangle( this.st状態[ i ].ct進行.n現在の値 * 260, n + 780, 260, 260 ) ); + else + TJAPlayer3.Tx.Effects_Hit_Explosion.t2D描画(TJAPlayer3.app.Device, nX, nY, new Rectangle(this.st状態[i].ct進行.n現在の値 * 260, n + 260, 260, 260)); + break; + case E判定.Miss: + case E判定.Bad: + break; + } + } + } + } + } + + for( int i = 0; i < 3 * 4; i++ ) + { + if( !this.st状態_大[ i ].ct進行.b停止中 ) + { + this.st状態_大[ i ].ct進行.t進行(); + if( this.st状態_大[ i ].ct進行.b終了値に達した ) + { + this.st状態_大[ i ].ct進行.t停止(); + } + if(TJAPlayer3.Tx.Effects_Hit_Explosion_Big != null && this.st状態_大[ i ].nIsBig == 1 ) + { + + switch( st状態_大[ i ].judge ) + { + case E判定.Perfect: + case E判定.Great: + case E判定.Auto: + if( this.st状態_大[ i ].nIsBig == 1 ) + { + float fX = 415 - ((TJAPlayer3.Tx.Effects_Hit_Explosion_Big.sz画像サイズ.Width * TJAPlayer3.Tx.Effects_Hit_Explosion_Big.vc拡大縮小倍率.X ) / 2.0f); + float fY = TJAPlayer3.Skin.nJudgePointY[ this.st状態_大[ i ].nPlayer ] - ((TJAPlayer3.Tx.Effects_Hit_Explosion_Big.sz画像サイズ.Height * TJAPlayer3.Tx.Effects_Hit_Explosion_Big.vc拡大縮小倍率.Y ) / 2.0f); + //float fY = 257 - ((this.txアタックエフェクトUpper_big.sz画像サイズ.Height * this.txアタックエフェクトUpper_big.vc拡大縮小倍率.Y ) / 2.0f); + + ////7 + float f倍率 = 0.5f + ( (this.st状態_大[ i ].ct進行.n現在の値 * 0.5f) / 10.0f); + //this.txアタックエフェクトUpper_big.vc拡大縮小倍率.X = f倍率; + //this.txアタックエフェクトUpper_big.vc拡大縮小倍率.Y = f倍率; + //this.txアタックエフェクトUpper_big.n透明度 = (int)(255 * f倍率); + //this.txアタックエフェクトUpper_big.t2D描画( CDTXMania.app.Device, fX, fY ); + + Matrix mat = Matrix.Identity; + mat *= Matrix.Scaling( f倍率, f倍率, f倍率 ); + mat *= Matrix.Translation( TJAPlayer3.Skin.nScrollFieldX[0] - SampleFramework.GameWindowSize.Width / 2.0f, -(TJAPlayer3.Skin.nJudgePointY[ this.st状態[ i ].nPlayer ] - SampleFramework.GameWindowSize.Height / 2.0f), 0f ); + //mat *= Matrix.Billboard( new Vector3( 15, 15, 15 ), new Vector3(0, 0, 0), new Vector3( 0, 0, 0 ), new Vector3( 0, 0, 0 ) ); + //mat *= Matrix.Translation( 0f, 0f, 0f ); + + + TJAPlayer3.Tx.Effects_Hit_Explosion_Big.Opacity = 255; + TJAPlayer3.Tx.Effects_Hit_Explosion_Big.t3D描画( TJAPlayer3.app.Device, mat ); + } + break; + + case E判定.Good: + break; + + case E判定.Miss: + case E判定.Bad: + break; + } + } + } + } + + for (int i = 0; i < 45; i++) + { + if( TJAPlayer3.Skin.nScrollFieldX[0] != 414 ) + break; + + if (this.st大音符花火[i].b使用中) + { + this.st大音符花火[i].n前回のValue = this.st大音符花火[i].ct進行.n現在の値; + this.st大音符花火[i].ct進行.t進行(); + if (this.st大音符花火[i].ct進行.b終了値に達した) + { + this.st大音符花火[i].ct進行.t停止(); + this.st大音符花火[i].b使用中 = false; + } + Matrix mat = Matrix.Identity; + + mat *= Matrix.Translation(this.st大音符花火[i].fX - SampleFramework.GameWindowSize.Width / 2, -(this.st大音符花火[i].fY - SampleFramework.GameWindowSize.Height / 2), 0f); + float fX = this.st大音符花火[i].fX - ( 192 / 2 ); + float fY = this.st大音符花火[i].fY - ( 192 / 2 ); + + //if(CDTXMania.Tx.Effects_Hit_FireWorks[ 0 ] != null && this.st大音符花火[ i ].nColor == 0 ) + //{ + // if( this.st大音符花火[ i ].n開始フレーム <= this.st大音符花火[ i ].ct進行.n現在の値 && this.st大音符花火[ i ].n終了フレーム > this.st大音符花火[ i ].ct進行.n現在の値 ) + // { + // //this.tx大音符花火[ 0 ].t3D描画(CDTXMania.app.Device, mat, new Rectangle( ( this.st大音符花火[i].ct進行.n現在の値 - this.st大音符花火[ i ].n開始フレーム ) * 192, 0, 192, 192 )); + // //this.tx大音符花火[ 0 ].t3D描画( CDTXMania.app.Device, mat, fX, fY, new Rectangle( ( this.st大音符花火[i].ct進行.n現在の値 - this.st大音符花火[ i ].n開始フレーム ) * 192, 0, 192, 192 ) ); + // CDTXMania.Tx.Effects_Hit_FireWorks[ 0 ].t2D描画( CDTXMania.app.Device, (int)fX, (int)fY, new Rectangle( ( this.st大音符花火[i].ct進行.n現在の値 - this.st大音符花火[ i ].n開始フレーム ) * 192, 0, 192, 192 ) ); + // } + //} + ////if(CDTXMania.Tx.Effects_Hit_FireWorks[ 1 ] != null && this.st大音符花火[ i ].nColor == 1 ) + //{ + // if( this.st大音符花火[ i ].n開始フレーム <= this.st大音符花火[ i ].ct進行.n現在の値 && this.st大音符花火[ i ].n終了フレーム > this.st大音符花火[ i ].ct進行.n現在の値 ) + // { + // //this.tx大音符花火[ 1 ].t3D描画( CDTXMania.app.Device, mat, fX, fY, ); + // //CDTXMania.Tx.Effects_Hit_FireWorks[ 1 ].t2D描画( CDTXMania.app.Device, (int)fX, (int)fY, new Rectangle( ( this.st大音符花火[i].ct進行.n現在の値 - this.st大音符花火[ i ].n開始フレーム ) * 192, 0, 192, 192 ) ); + // } + //} + } + + } + + for (int i = 0; i < 256; i++) + { + if (this.st紙吹雪[i].b使用中) + { + this.st紙吹雪[i].n前回のValue = this.st紙吹雪[i].ct進行.n現在の値; + this.st紙吹雪[i].ct進行.t進行(); + if (this.st紙吹雪[i].ct進行.b終了値に達した) + { + this.st紙吹雪[i].ct進行.t停止(); + this.st紙吹雪[i].b使用中 = false; + } + else if( this.st紙吹雪[ i ].fX > 1300 || this.st紙吹雪[ i ].fX < -20 ) + { + this.st紙吹雪[i].ct進行.t停止(); + this.st紙吹雪[i].b使用中 = false; + } + for (int n = this.st紙吹雪[i].n前回のValue; n < this.st紙吹雪[i].ct進行.n現在の値; n++) + { + this.st紙吹雪[i].fX -= this.st紙吹雪[i].f加速度X; + this.st紙吹雪[i].fY -= this.st紙吹雪[i].f加速度Y; + this.st紙吹雪[i].f加速度X *= this.st紙吹雪[i].f加速度の加速度X; + this.st紙吹雪[i].f加速度Y *= this.st紙吹雪[i].f加速度の加速度Y; + this.st紙吹雪[i].f加速度Y -= this.st紙吹雪[i].f重力加速度; + } + Matrix mat = Matrix.Identity; + + float x = (float)(this.st紙吹雪[i].f半径 * Math.Cos((Math.PI / 2 * this.st紙吹雪[i].ct進行.n現在の値) / 100.0)) * 2.3f; + mat *= Matrix.Scaling(x, x, 1f); + mat *= Matrix.Translation(this.st紙吹雪[i].fX - SampleFramework.GameWindowSize.Width / 2, -(this.st紙吹雪[i].fY - SampleFramework.GameWindowSize.Height / 2), 0f); + + /*if (this.tx紙吹雪 != null) + { + this.tx紙吹雪.t3D描画(CDTXMania.app.Device, mat, new Rectangle( 32 * this.st紙吹雪[ i ].nGraphic, 32 * this.st紙吹雪[ i ].nColor, 32, 32 )); + + } */ + } + + } + } + return 0; + } + + + // その他 + + #region [ private ] + //----------------- + //private CTextureAf txアタックエフェクトUpper; + //private CTexture txアタックエフェクトUpper_big; + //private CTextureAf[] tx大音符花火 = new CTextureAf[2]; + //private CTexture tx紙吹雪; + + protected STSTATUS[] st状態 = new STSTATUS[ 3 * 4 ]; + protected STSTATUS_B[] st状態_大 = new STSTATUS_B[ 3 * 4 ]; + private ST大音符花火[] st大音符花火 = new ST大音符花火[45]; + + protected int[] nX座標 = new int[] { 450, 521, 596, 686, 778, 863, 970, 1070, 1150 }; + protected int[] nY座標 = new int[] { 172, 108, 50, 8, -10, -60, -5, 30, 90 }; + protected int[] nY座標P2 = new int[] { 172, 108, 50, 8, -10, -60, -5, 30, 90 }; + + [StructLayout(LayoutKind.Sequential)] + protected struct STSTATUS + { + public bool b使用中; + public CCounter ct進行; + public E判定 judge; + public int nIsBig; + public int n透明度; + public int nPlayer; + } + [StructLayout(LayoutKind.Sequential)] + protected struct STSTATUS_B + { + public CCounter ct進行; + public E判定 judge; + public int nIsBig; + public int n透明度; + public int nPlayer; + } + + [StructLayout(LayoutKind.Sequential)] + private struct ST大音符花火 + { + public int nColor; + public bool b使用中; + public CCounter ct進行; + public int n前回のValue; + public float fX; + public float fY; + public int n開始フレーム; + public int n終了フレーム; + } + + private ST紙吹雪[] st紙吹雪 = new ST紙吹雪[ 256 ]; + [StructLayout( LayoutKind.Sequential )] + private struct ST紙吹雪 + { + public int nGraphic; + public int nColor; + public bool b使用中; + public CCounter ct進行; + public int n前回のValue; + public float fX; + public float fY; + public float f加速度X; + public float f加速度Y; + public float f加速度の加速度X; + public float f加速度の加速度Y; + public float f重力加速度; + public float f半径; + public float f角度; + } + //----------------- + #endregion + } +} +  diff --git a/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsパッド.cs b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsパッド.cs new file mode 100644 index 00000000..e16aef0c --- /dev/null +++ b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsパッド.cs @@ -0,0 +1,219 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Runtime.InteropServices; +using System.Drawing; +using FDK; + +namespace TJAPlayer3 +{ + internal class CAct演奏Drumsパッド : CActivity + { + // コンストラクタ + + public CAct演奏Drumsパッド() + { + ST基本位置[] st基本位置Array = new ST基本位置[ 10 ]; + + //LC + ST基本位置 st基本位置 = new ST基本位置(); + st基本位置.x = 263; + st基本位置.y = 10; + st基本位置.rc = new Rectangle( 0, 0, 0x60, 0x60 ); + st基本位置Array[ 0 ] = st基本位置; + + //HH + ST基本位置 st基本位置2 = new ST基本位置(); + st基本位置2.x = 336; + st基本位置2.y = 10; + st基本位置2.rc = new Rectangle( 0x60, 0, 0x60, 0x60 ); + st基本位置Array[ 1 ] = st基本位置2; + + //SD + ST基本位置 st基本位置3 = new ST基本位置(); + st基本位置3.x = 446; + st基本位置3.y = 10; + st基本位置3.rc = new Rectangle( 0, 0x60, 0x60, 0x60 ); + st基本位置Array[ 2 ] = st基本位置3; + + //BD + ST基本位置 st基本位置4 = new ST基本位置(); + st基本位置4.x = 565; + st基本位置4.y = 10; + st基本位置4.rc = new Rectangle( 0, 0xc0, 0x60, 0x60); + st基本位置Array[ 3 ] = st基本位置4; + + //HT + ST基本位置 st基本位置5 = new ST基本位置(); + st基本位置5.x = 510; + st基本位置5.y = 10; + st基本位置5.rc = new Rectangle( 0x60, 0x60, 0x60, 0x60 ); + st基本位置Array[ 4 ] = st基本位置5; + + //LT + ST基本位置 st基本位置6 = new ST基本位置(); + st基本位置6.x = 622; + st基本位置6.y = 10; + st基本位置6.rc = new Rectangle( 0xc0, 0x60, 0x60, 0x60 ); + st基本位置Array[ 5 ] = st基本位置6; + + //FT + ST基本位置 st基本位置7 = new ST基本位置(); + st基本位置7.x = 672; + st基本位置7.y = 10; + st基本位置7.rc = new Rectangle( 288, 0x60, 0x60, 0x60 ); + st基本位置Array[ 6 ] = st基本位置7; + + //CY + ST基本位置 st基本位置8 = new ST基本位置(); + st基本位置8.x = 0x2df; + st基本位置8.y = 10; + st基本位置8.rc = new Rectangle( 0xc0, 0, 0x60, 0x60 ); + st基本位置Array[ 7 ] = st基本位置8; + + //RD + ST基本位置 st基本位置9 = new ST基本位置(); + st基本位置9.x = 0x317; + st基本位置9.y = 10; + st基本位置9.rc = new Rectangle( 288, 0, 0x60, 0x60 ); + st基本位置Array[ 8 ] = st基本位置9; + + //LP + ST基本位置 st基本位置10 = new ST基本位置(); + st基本位置10.x = 0x18c; + st基本位置10.y = 10; + st基本位置10.rc = new Rectangle( 0x60, 0xc0, 0x60, 0x60); + st基本位置Array[ 9 ] = st基本位置10; + + this.st基本位置 = st基本位置Array; + base.b活性化してない = true; + } + + + // メソッド + + public void Hit( int nLane ) + { + this.stパッド状態[ nLane ].n明るさ = 6; + this.stパッド状態[ nLane ].nY座標加速度dot = 2; + } + + + // CActivity 実装 + + public override void On活性化() + { + this.nフラッシュ制御タイマ = -1; + this.nY座標制御タイマ = -1; + for( int i = 0; i < 9; i++ ) + { + STパッド状態 stパッド状態2 = new STパッド状態(); + STパッド状態 stパッド状態 = stパッド状態2; + stパッド状態.nY座標オフセットdot = 0; + stパッド状態.nY座標加速度dot = 0; + stパッド状態.n明るさ = 0; + this.stパッド状態[ i ] = stパッド状態; + } + base.On活性化(); + } + public override void OnManagedリソースの作成() + { + if( !base.b活性化してない ) + { + + base.OnManagedリソースの作成(); + } + } + public override void OnManagedリソースの解放() + { + if( !base.b活性化してない ) + { + + base.OnManagedリソースの解放(); + } + } + public override int On進行描画() + { + if( !base.b活性化してない ) + { + if( base.b初めての進行描画 ) + { + this.nフラッシュ制御タイマ = (long)(CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)); + this.nY座標制御タイマ = (long)(CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)); + base.b初めての進行描画 = false; + } + long num = (long)(CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)); + if ( num < this.nフラッシュ制御タイマ ) + { + this.nフラッシュ制御タイマ = num; + } + while( ( num - this.nフラッシュ制御タイマ ) >= 15 ) + { + for( int j = 0; j < 10; j++ ) + { + if( this.stパッド状態[ j ].n明るさ > 0 ) + { + this.stパッド状態[ j ].n明るさ--; + } + } + this.nフラッシュ制御タイマ += 15; + } + long num3 = CSound管理.rc演奏用タイマ.n現在時刻; + if( num3 < this.nY座標制御タイマ ) + { + this.nY座標制御タイマ = num3; + } + while( ( num3 - this.nY座標制御タイマ ) >= 5 ) + { + for( int k = 0; k < 10; k++ ) + { + this.stパッド状態[ k ].nY座標オフセットdot += this.stパッド状態[ k ].nY座標加速度dot; + if( this.stパッド状態[ k ].nY座標オフセットdot > 15 ) + { + this.stパッド状態[ k ].nY座標オフセットdot = 15; + this.stパッド状態[ k ].nY座標加速度dot = -1; + } + else if( this.stパッド状態[ k ].nY座標オフセットdot < 0 ) + { + this.stパッド状態[ k ].nY座標オフセットdot = 0; + this.stパッド状態[ k ].nY座標加速度dot = 0; + } + } + this.nY座標制御タイマ += 5; + } + + + } + return 0; + } + + + // その他 + + #region [ private ] + //----------------- + [StructLayout( LayoutKind.Sequential )] + private struct STパッド状態 + { + public int n明るさ; + public int nY座標オフセットdot; + public int nY座標加速度dot; + } + [StructLayout( LayoutKind.Sequential )] + private struct ST基本位置 + { + public int x; + public int y; + public Rectangle rc; + } + + private long nY座標制御タイマ; + private long nフラッシュ制御タイマ; + private readonly int[] n描画順 = new int[] { 9, 3, 2, 6, 5, 4, 8, 7, 1, 0 }; + // LP BD SD FT HT LT RD CY HH LC + private STパッド状態[] stパッド状態 = new STパッド状態[ 10 ]; + private readonly ST基本位置[] st基本位置; + //----------------- + #endregion + } +} diff --git a/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsレーン.cs b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsレーン.cs new file mode 100644 index 00000000..7f53a308 --- /dev/null +++ b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsレーン.cs @@ -0,0 +1,191 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Drawing; +using FDK; + +namespace TJAPlayer3 +{ + internal class CAct演奏Drumsレーン : CActivity + { + public CAct演奏Drumsレーン() + { + base.b活性化してない = true; + } + + public override void On活性化() + { + base.On活性化(); + } + + public override void On非活性化() + { + TJAPlayer3.t安全にDisposeする( ref this.ct分岐アニメ進行 ); + base.On非活性化(); + } + + public override void OnManagedリソースの作成() + { + //this.tx普通譜面[ 0 ] = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\7_field_normal_base.png")); + //this.tx玄人譜面[ 0 ] = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\7_field_expert_base.png")); + //this.tx達人譜面[ 0 ] = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\7_field_master_base.png")); + //this.tx普通譜面[ 1 ] = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\7_field_normal.png")); + //this.tx玄人譜面[ 1 ] = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\7_field_expert.png")); + //this.tx達人譜面[ 1 ] = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\7_field_master.png")); + this.ct分岐アニメ進行 = new CCounter[ 4 ]; + this.nBefore = new CDTX.ECourse[ 4 ]; + this.nAfter = new CDTX.ECourse[ 4 ]; + for ( int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++ ) + { + this.ct分岐アニメ進行[ i ] = new CCounter(); + this.nBefore = new CDTX.ECourse[ 4 ]; + this.nAfter = new CDTX.ECourse[ 4 ]; + this.bState[ i ] = false; + } + TJAPlayer3.Tx.Lane_Base[0].Opacity = 255; + + base.OnManagedリソースの作成(); + } + + public override void OnManagedリソースの解放() + { + //CDTXMania.tテクスチャの解放( ref this.tx普通譜面[ 0 ] ); + //CDTXMania.tテクスチャの解放( ref this.tx玄人譜面[ 0 ] ); + //CDTXMania.tテクスチャの解放( ref this.tx達人譜面[ 0 ] ); + //CDTXMania.tテクスチャの解放( ref this.tx普通譜面[ 1 ] ); + //CDTXMania.tテクスチャの解放( ref this.tx玄人譜面[ 1 ] ); + //CDTXMania.tテクスチャの解放( ref this.tx達人譜面[ 1 ] ); + + base.OnManagedリソースの解放(); + } + + public override int On進行描画() + { + for( int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++ ) + { + if( !this.ct分岐アニメ進行[ i ].b停止中 ) + { + this.ct分岐アニメ進行[ i ].t進行(); + if( this.ct分岐アニメ進行[ i ].b終了値に達した ) + { + this.bState[ i ] = false; + this.ct分岐アニメ進行[ i ].t停止(); + } + } + } + + + //アニメーション中の分岐レイヤー(背景)の描画を行う。 + for( int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++ ) + { + if( TJAPlayer3.stage演奏ドラム画面.bUseBranch[ i ] == true ) + { + if( this.ct分岐アニメ進行[ i ].b進行中 ) + { + #region[ 普通譜面_レベルアップ ] + //普通→玄人 + if (nBefore[i] == 0 && nAfter[i] == CDTX.ECourse.eNormal) + { + TJAPlayer3.Tx.Lane_Base[1].Opacity = this.ct分岐アニメ進行[ i ].n現在の値 > 100 ? 255 : ( ( this.ct分岐アニメ進行[ i ].n現在の値 * 0xff ) / 100 ); + TJAPlayer3.Tx.Lane_Base[0].t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.nScrollFieldBGX[ i ], TJAPlayer3.Skin.nScrollFieldY[ i ] ); + TJAPlayer3.Tx.Lane_Base[1].t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.nScrollFieldBGX[ i ], TJAPlayer3.Skin.nScrollFieldY[ i ] ); + } + //普通→達人 + if (nBefore[i] == 0 && nAfter[i] == CDTX.ECourse.eMaster) + { + TJAPlayer3.Tx.Lane_Base[0].t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.nScrollFieldBGX[ i ], TJAPlayer3.Skin.nScrollFieldY[ i ] ); + if( this.ct分岐アニメ進行[ i ].n現在の値 < 100 ) + { + TJAPlayer3.Tx.Lane_Base[1].Opacity = this.ct分岐アニメ進行[ i ].n現在の値 > 100 ? 255 : ( ( this.ct分岐アニメ進行[ i ].n現在の値 * 0xff ) / 100 ); + TJAPlayer3.Tx.Lane_Base[1].t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.nScrollFieldBGX[ i ], TJAPlayer3.Skin.nScrollFieldY[ i ] ); + } + else if( this.ct分岐アニメ進行[ i ].n現在の値 >= 100 && this.ct分岐アニメ進行[ i ].n現在の値 < 150 ) + { + TJAPlayer3.Tx.Lane_Base[1].Opacity = 255; + TJAPlayer3.Tx.Lane_Base[1].t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.nScrollFieldBGX[ i ], TJAPlayer3.Skin.nScrollFieldY[ i ] ); + } + else if( this.ct分岐アニメ進行[ i ].n現在の値 >= 150 ) + { + TJAPlayer3.Tx.Lane_Base[1].t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.nScrollFieldBGX[ i ], TJAPlayer3.Skin.nScrollFieldY[ i ] ); + TJAPlayer3.Tx.Lane_Base[2].Opacity = this.ct分岐アニメ進行[ i ].n現在の値 > 250 ? 255 : ( ( (this.ct分岐アニメ進行[ i ].n現在の値 - 150) * 0xff ) / 100 ); + TJAPlayer3.Tx.Lane_Base[2].t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.nScrollFieldBGX[ i ], TJAPlayer3.Skin.nScrollFieldY[ i ] ); + } + } + #endregion + #region[ 玄人譜面_レベルアップ ] + if (nBefore[i] == CDTX.ECourse.eExpert && nAfter[i] == CDTX.ECourse.eMaster) + { + TJAPlayer3.Tx.Lane_Base[1].t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.nScrollFieldBGX[ i ], TJAPlayer3.Skin.nScrollFieldY[ i ] ); + TJAPlayer3.Tx.Lane_Base[2].Opacity = this.ct分岐アニメ進行[ i ].n現在の値 > 100 ? 255 : ( ( this.ct分岐アニメ進行[ i ].n現在の値 * 0xff ) / 100 ); + TJAPlayer3.Tx.Lane_Base[2].t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.nScrollFieldBGX[ i ], TJAPlayer3.Skin.nScrollFieldY[ i ] ); + } + #endregion + #region[ 玄人譜面_レベルダウン ] + if (nBefore[i] == CDTX.ECourse.eExpert && nAfter[i] == CDTX.ECourse.eNormal) + { + TJAPlayer3.Tx.Lane_Base[1].t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.nScrollFieldBGX[ i ], TJAPlayer3.Skin.nScrollFieldY[ i ] ); + TJAPlayer3.Tx.Lane_Base[0].Opacity = this.ct分岐アニメ進行[ i ].n現在の値 > 100 ? 255 : ( ( this.ct分岐アニメ進行[ i ].n現在の値 * 0xff ) / 100 ); + TJAPlayer3.Tx.Lane_Base[0].t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.nScrollFieldBGX[ i ], TJAPlayer3.Skin.nScrollFieldY[ i ] ); + } + #endregion + #region[ 達人譜面_レベルダウン ] + if (nBefore[i] == CDTX.ECourse.eMaster && nAfter[i] == CDTX.ECourse.eNormal) + { + TJAPlayer3.Tx.Lane_Base[2].t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.nScrollFieldBGX[ i ], TJAPlayer3.Skin.nScrollFieldY[ i ] ); + if( this.ct分岐アニメ進行[ i ].n現在の値 < 100 ) + { + TJAPlayer3.Tx.Lane_Base[1].Opacity = this.ct分岐アニメ進行[ i ].n現在の値 > 100 ? 255 : ( ( this.ct分岐アニメ進行[ i ].n現在の値 * 0xff ) / 100 ); + TJAPlayer3.Tx.Lane_Base[1].t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.nScrollFieldBGX[ i ], TJAPlayer3.Skin.nScrollFieldY[ i ] ); + } + else if( this.ct分岐アニメ進行[ i ].n現在の値 >= 100 && this.ct分岐アニメ進行[ i ].n現在の値 < 150 ) + { + TJAPlayer3.Tx.Lane_Base[1].Opacity = 255; + TJAPlayer3.Tx.Lane_Base[1].t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.nScrollFieldBGX[ i ], TJAPlayer3.Skin.nScrollFieldY[ i ] ); + } + else if( this.ct分岐アニメ進行[ i ].n現在の値 >= 150 ) + { + TJAPlayer3.Tx.Lane_Base[1].t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.nScrollFieldBGX[ i ], TJAPlayer3.Skin.nScrollFieldY[ i ] ); + TJAPlayer3.Tx.Lane_Base[0].Opacity = this.ct分岐アニメ進行[ i ].n現在の値 > 250 ? 255 : ( ( ( this.ct分岐アニメ進行[ i ].n現在の値 - 150 ) * 0xff ) / 100 ); + TJAPlayer3.Tx.Lane_Base[0].t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.nScrollFieldBGX[ i ], TJAPlayer3.Skin.nScrollFieldY[ i ] ); + } + } + if (nBefore[i] == CDTX.ECourse.eMaster && nAfter[i] == CDTX.ECourse.eExpert) + { + TJAPlayer3.Tx.Lane_Base[2].t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.nScrollFieldBGX[ i ], TJAPlayer3.Skin.nScrollFieldY[ i ] ); + TJAPlayer3.Tx.Lane_Base[2].Opacity = this.ct分岐アニメ進行[ i ].n現在の値 > 100 ? 255 : ( ( this.ct分岐アニメ進行[ i ].n現在の値 * 0xff ) / 100 ); + TJAPlayer3.Tx.Lane_Base[2].t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.nScrollFieldBGX[ i ], TJAPlayer3.Skin.nScrollFieldY[ i ] ); + } + #endregion + } + } + } + return base.On進行描画(); + } + + public virtual void t分岐レイヤー_コース変化(CDTX.ECourse n現在, CDTX.ECourse n次回, int player) + { + if ( n現在 == n次回 ) { + return; + } + this.ct分岐アニメ進行[ player ] = new CCounter( 0, 300, 2, TJAPlayer3.Timer ); + this.bState[ player ] = true; + + this.nBefore[ player ] = n現在; + this.nAfter[ player ] = n次回; + + } + + #region[ private ] + //----------------- + public bool[] bState = new bool[4]; + public CCounter[] ct分岐アニメ進行 = new CCounter[4]; + private CDTX.ECourse[] nBefore; + private CDTX.ECourse[] nAfter; + private int[] n透明度 = new int[4]; + //private CTexture[] tx普通譜面 = new CTexture[2]; + //private CTexture[] tx玄人譜面 = new CTexture[2]; + //private CTexture[] tx達人譜面 = new CTexture[2]; + //----------------- + #endregion + } +} diff --git a/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏DrumsレーンフラッシュGB.cs b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏DrumsレーンフラッシュGB.cs new file mode 100644 index 00000000..141804c8 --- /dev/null +++ b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏DrumsレーンフラッシュGB.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Drawing; +using FDK; + +namespace TJAPlayer3 +{ + internal class CAct演奏DrumsレーンフラッシュGB : CAct演奏レーンフラッシュGB共通 + { + // CActivity 実装(共通クラスからの差分のみ) + + public override int On進行描画() + { + if( !base.b活性化してない ) + { + } + return 0; + } + + + // その他 + + #region [ private ] + //----------------- + //----------------- + #endregion + } +} diff --git a/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsレーン太鼓.cs b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsレーン太鼓.cs new file mode 100644 index 00000000..89a3854c --- /dev/null +++ b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drumsレーン太鼓.cs @@ -0,0 +1,1027 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Drawing; +using System.Runtime.InteropServices; +using System.Diagnostics; +using SlimDX; +using FDK; + +namespace TJAPlayer3 +{ + internal class CAct演奏Drumsレーン太鼓 : CActivity + { + /// + /// レーンを描画するクラス。 + /// + /// + /// + public CAct演奏Drumsレーン太鼓() + { + base.b活性化してない = true; + } + + public override void On活性化() + { + for (int i = 0; i < 4; i++) + { + this.st状態[i].ct進行 = new CCounter(); + this.stBranch[i].ct分岐アニメ進行 = new CCounter(); + this.stBranch[i].nフラッシュ制御タイマ = -1; + this.stBranch[i].nBranchレイヤー透明度 = 0; + this.stBranch[i].nBranch文字透明度 = 0; + this.stBranch[i].nY座標 = 0; + } + this.ctゴーゴー = new CCounter(); + + + this.n総移動時間 = -1; + this.n総移動時間2 = -1; + this.nDefaultJudgePos[0, 0] = TJAPlayer3.Skin.nScrollFieldX[0]; + this.nDefaultJudgePos[0, 1] = TJAPlayer3.Skin.nScrollFieldY[0]; + this.nDefaultJudgePos[1, 0] = TJAPlayer3.Skin.nScrollFieldX[1]; + this.nDefaultJudgePos[1, 1] = TJAPlayer3.Skin.nScrollFieldY[1]; + this.ctゴーゴー炎 = new CCounter(0, 6, 50, TJAPlayer3.Timer); + base.On活性化(); + } + + public override void On非活性化() + { + for (int i = 0; i < 4; i++) + { + this.st状態[i].ct進行 = null; + this.stBranch[i].ct分岐アニメ進行 = null; + } + TJAPlayer3.Skin.nScrollFieldX[0] = this.nDefaultJudgePos[0, 0]; + TJAPlayer3.Skin.nScrollFieldY[0] = this.nDefaultJudgePos[0, 1]; + TJAPlayer3.Skin.nScrollFieldX[1] = this.nDefaultJudgePos[1, 0]; + TJAPlayer3.Skin.nScrollFieldY[1] = this.nDefaultJudgePos[1, 1]; + this.ctゴーゴー = null; + + base.On非活性化(); + } + + public override void OnManagedリソースの作成() + { + //this.txLane = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\7_fieldbgA.png")); + //this.txLaneB = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\7_fieldbgB.png")); + //this.txゴーゴー = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\7_fieldbgC.png")); + //this.tx普通譜面[0] = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\7_field_normal_base.png")); + //this.tx玄人譜面[0] = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\7_field_expert_base.png")); + //this.tx達人譜面[0] = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\7_field_master_base.png")); + //this.tx普通譜面[1] = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\7_field_normal.png")); + //this.tx玄人譜面[1] = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\7_field_expert.png")); + //this.tx達人譜面[1] = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\7_field_master.png")); + //this.tx枠線 = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\7_mtaiko_B.png")); + //this.tx判定枠 = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\7_taiko_notes.png")); + //this.txアタックエフェクトLower = CDTXMania.tテクスチャの生成Af( CSkin.Path( @"Graphics\7_explosion_lower.png" ) ); + + //this.txゴーゴー炎 = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\7_gogo_fire.png")); + + //this.txゴーゴースプラッシュ = new CTexture[29]; + //for (int i = 0; i < 29; i++) + //{ + // this.txゴーゴースプラッシュ[i] = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\Dancer\gogo_splash\" + i.ToString() + ".png")); + // this.txゴーゴースプラッシュ[i].b加算合成 = true; + //} + + //this.txArアタックエフェクトLower_A = new CTexture[15]; + //this.txArアタックエフェクトLower_B = new CTexture[15]; + //this.txArアタックエフェクトLower_C = new CTexture[15]; + //this.txArアタックエフェクトLower_D = new CTexture[15]; + //for (int i = 0; i < 15; i++) + //{ + // this.txArアタックエフェクトLower_A[i] = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\Effect\lower_1_" + i.ToString() + ".png")); + // this.txArアタックエフェクトLower_B[i] = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\Effect\lower_2_" + i.ToString() + ".png")); + // this.txArアタックエフェクトLower_C[i] = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\Effect\lower_3_" + i.ToString() + ".png")); + // this.txArアタックエフェクトLower_D[i] = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\Effect\lower_4_" + i.ToString() + ".png")); + + // //this.txArアタックエフェクトLower_A[ i ].b加算合成 = true; + // //this.txArアタックエフェクトLower_B[ i ].b加算合成 = true; + // //this.txArアタックエフェクトLower_C[ i ].b加算合成 = true; + // //this.txArアタックエフェクトLower_D[ i ].b加算合成 = true; + //} + base.OnManagedリソースの作成(); + } + + public override void OnManagedリソースの解放() + { + //CDTXMania.tテクスチャの解放(ref this.txLane); + //CDTXMania.tテクスチャの解放(ref this.txLaneB); + //CDTXMania.tテクスチャの解放(ref this.txゴーゴー); + //CDTXMania.tテクスチャの解放(ref this.tx普通譜面[0]); + //CDTXMania.tテクスチャの解放(ref this.tx玄人譜面[0]); + //CDTXMania.tテクスチャの解放(ref this.tx達人譜面[0]); + //CDTXMania.tテクスチャの解放(ref this.tx普通譜面[1]); + //CDTXMania.tテクスチャの解放(ref this.tx玄人譜面[1]); + //CDTXMania.tテクスチャの解放(ref this.tx達人譜面[1]); + + //CDTXMania.tテクスチャの解放(ref this.tx枠線); + //CDTXMania.tテクスチャの解放(ref this.tx判定枠); + ////CDTXMania.tテクスチャの解放( ref this.txアタックエフェクトLower ); + + //CDTXMania.tテクスチャの解放(ref this.txゴーゴー炎); + + //for (int i = 0; i < 29; i++) + //{ + // CDTXMania.tテクスチャの解放(ref this.txゴーゴースプラッシュ[i]); + //} + + //for (int i = 0; i < 15; i++) + //{ + // CDTXMania.tテクスチャの解放(ref this.txArアタックエフェクトLower_A[i]); + // CDTXMania.tテクスチャの解放(ref this.txArアタックエフェクトLower_B[i]); + // CDTXMania.tテクスチャの解放(ref this.txArアタックエフェクトLower_C[i]); + // CDTXMania.tテクスチャの解放(ref this.txArアタックエフェクトLower_D[i]); + //} + + base.OnManagedリソースの解放(); + } + + public override int On進行描画() + { + if (base.b初めての進行描画) + { + for (int i = 0; i < 4; i++) + this.stBranch[i].nフラッシュ制御タイマ = (long)(CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)); + base.b初めての進行描画 = false; + } + + //それぞれが独立したレイヤーでないといけないのでforループはパーツごとに分離すること。 + + #region[ レーン本体 ] + if (TJAPlayer3.Tx.Lane_Background_Main != null) + { + for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) + { + TJAPlayer3.Tx.Lane_Background_Main.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.nScrollFieldBGX[i], TJAPlayer3.Skin.nScrollFieldY[i]); + } + } + #endregion + for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) + { + #region[ 分岐アニメ制御タイマー ] + long num = FDK.CSound管理.rc演奏用タイマ.n現在時刻; + if (num < this.stBranch[i].nフラッシュ制御タイマ) + { + this.stBranch[i].nフラッシュ制御タイマ = num; + } + while ((num - this.stBranch[i].nフラッシュ制御タイマ) >= 30) + { + if (this.stBranch[i].nBranchレイヤー透明度 <= 255) + { + this.stBranch[i].nBranchレイヤー透明度 += 10; + } + + if (this.stBranch[i].nBranch文字透明度 >= 0) + { + this.stBranch[i].nBranch文字透明度 -= 10; + } + + if (this.stBranch[i].nY座標 != 0 && this.stBranch[i].nY座標 <= 20) + { + this.stBranch[i].nY座標++; + } + + this.stBranch[i].nフラッシュ制御タイマ += 8; + } + + if (!this.stBranch[i].ct分岐アニメ進行.b停止中) + { + this.stBranch[i].ct分岐アニメ進行.t進行(); + if (this.stBranch[i].ct分岐アニメ進行.b終了値に達した) + { + this.stBranch[i].ct分岐アニメ進行.t停止(); + } + } + #endregion + } + #region[ 分岐レイヤー ] + for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) + { + if (TJAPlayer3.stage演奏ドラム画面.bUseBranch[i] == true) + { + #region[ 動いていない ] + switch (TJAPlayer3.stage演奏ドラム画面.nレーン用表示コース[i]) + { + case CDTX.ECourse.eNormal: + if (TJAPlayer3.Tx.Lane_Base[0] != null) + { + TJAPlayer3.Tx.Lane_Base[0].Opacity = 255; + TJAPlayer3.Tx.Lane_Base[0].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.nScrollFieldBGX[i], TJAPlayer3.Skin.nScrollFieldY[i]); + } + break; + case CDTX.ECourse.eExpert: + if (TJAPlayer3.Tx.Lane_Base[1] != null) + { + TJAPlayer3.Tx.Lane_Base[1].Opacity = 255; + TJAPlayer3.Tx.Lane_Base[1].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.nScrollFieldBGX[i], TJAPlayer3.Skin.nScrollFieldY[i]); + } + break; + case CDTX.ECourse.eMaster: + if (TJAPlayer3.Tx.Lane_Base[2] != null) + { + TJAPlayer3.Tx.Lane_Base[2].Opacity = 255; + TJAPlayer3.Tx.Lane_Base[2].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.nScrollFieldBGX[i], TJAPlayer3.Skin.nScrollFieldY[i]); + } + break; + } + #endregion + + if (TJAPlayer3.ConfigIni.nBranchAnime == 1) + { + #region[ AC7~14風の背後レイヤー ] + if (this.stBranch[i].ct分岐アニメ進行.b進行中) + { + int n透明度 = ((100 - this.stBranch[i].ct分岐アニメ進行.n現在の値) * 0xff) / 100; + + if (this.stBranch[i].ct分岐アニメ進行.b終了値に達した) + { + n透明度 = 255; + this.stBranch[i].ct分岐アニメ進行.t停止(); + } + + #region[ 普通譜面_レベルアップ ] + //普通→玄人 + if (this.stBranch[i].nBefore == CDTX.ECourse.eNormal && this.stBranch[i].nAfter == CDTX.ECourse.eExpert) + { + if (TJAPlayer3.Tx.Lane_Base[0] != null && TJAPlayer3.Tx.Lane_Base[1] != null) + { + TJAPlayer3.Tx.Lane_Base[0].t2D描画(TJAPlayer3.app.Device, 333, TJAPlayer3.Skin.nScrollFieldY[i]); + TJAPlayer3.Tx.Lane_Base[1].Opacity = this.stBranch[i].nBranchレイヤー透明度; + TJAPlayer3.Tx.Lane_Base[1].t2D描画(TJAPlayer3.app.Device, 333, TJAPlayer3.Skin.nScrollFieldY[i]); + } + } + //普通→達人 + if (this.stBranch[i].nBefore == CDTX.ECourse.eNormal && this.stBranch[i].nAfter == CDTX.ECourse.eMaster) + { + if (this.stBranch[i].ct分岐アニメ進行.n現在の値 < 100) + { + n透明度 = ((100 - this.stBranch[i].ct分岐アニメ進行.n現在の値) * 0xff) / 100; + } + if (TJAPlayer3.Tx.Lane_Base[0] != null && TJAPlayer3.Tx.Lane_Base[2] != null) + { + TJAPlayer3.Tx.Lane_Base[0].t2D描画(TJAPlayer3.app.Device, 333, TJAPlayer3.Skin.nScrollFieldY[i]); + TJAPlayer3.Tx.Lane_Base[2].t2D描画(TJAPlayer3.app.Device, 333, TJAPlayer3.Skin.nScrollFieldY[i]); + TJAPlayer3.Tx.Lane_Base[2].Opacity = this.stBranch[i].nBranchレイヤー透明度; + } + } + #endregion + #region[ 玄人譜面_レベルアップ ] + if (this.stBranch[i].nBefore == CDTX.ECourse.eExpert && this.stBranch[i].nAfter == CDTX.ECourse.eMaster) + { + if (TJAPlayer3.Tx.Lane_Base[1] != null && TJAPlayer3.Tx.Lane_Base[2] != null) + { + TJAPlayer3.Tx.Lane_Base[1].t2D描画(TJAPlayer3.app.Device, 333, TJAPlayer3.Skin.nScrollFieldY[i]); + TJAPlayer3.Tx.Lane_Base[2].t2D描画(TJAPlayer3.app.Device, 333, TJAPlayer3.Skin.nScrollFieldY[i]); + TJAPlayer3.Tx.Lane_Base[2].Opacity = this.stBranch[i].nBranchレイヤー透明度; + } + } + #endregion + #region[ 玄人譜面_レベルダウン ] + if (this.stBranch[i].nBefore == CDTX.ECourse.eExpert && this.stBranch[i].nAfter == CDTX.ECourse.eNormal) + { + if (TJAPlayer3.Tx.Lane_Base[1] != null && TJAPlayer3.Tx.Lane_Base[0] != null) + { + TJAPlayer3.Tx.Lane_Base[1].t2D描画(TJAPlayer3.app.Device, 333, TJAPlayer3.Skin.nScrollFieldY[i]); + TJAPlayer3.Tx.Lane_Base[0].t2D描画(TJAPlayer3.app.Device, 333, TJAPlayer3.Skin.nScrollFieldY[i]); + TJAPlayer3.Tx.Lane_Base[0].Opacity = this.stBranch[i].nBranchレイヤー透明度; + } + } + #endregion + #region[ 達人譜面_レベルダウン ] + if (this.stBranch[i].nBefore == CDTX.ECourse.eMaster && this.stBranch[i].nAfter == CDTX.ECourse.eNormal) + { + if (TJAPlayer3.Tx.Lane_Base[2] != null && TJAPlayer3.Tx.Lane_Base[0] != null) + { + TJAPlayer3.Tx.Lane_Base[2].t2D描画(TJAPlayer3.app.Device, 333, TJAPlayer3.Skin.nScrollFieldY[i]); + TJAPlayer3.Tx.Lane_Base[0].t2D描画(TJAPlayer3.app.Device, 333, TJAPlayer3.Skin.nScrollFieldY[i]); + TJAPlayer3.Tx.Lane_Base[0].Opacity = this.stBranch[i].nBranchレイヤー透明度; + } + } + #endregion + } + #endregion + } + else if (TJAPlayer3.ConfigIni.nBranchAnime == 0) + { + TJAPlayer3.stage演奏ドラム画面.actLane.On進行描画(); + } + } + } + #endregion + for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) + { + #region[ ゴーゴータイムレーン背景レイヤー ] + if (TJAPlayer3.Tx.Lane_Background_GoGo != null && TJAPlayer3.stage演奏ドラム画面.bIsGOGOTIME[i]) + { + if (!this.ctゴーゴー.b停止中) + { + this.ctゴーゴー.t進行(); + } + + if (this.ctゴーゴー.n現在の値 <= 4) + { + TJAPlayer3.Tx.Lane_Background_GoGo.vc拡大縮小倍率.Y = 0.2f; + TJAPlayer3.Tx.Lane_Background_GoGo.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.nScrollFieldBGX[i], TJAPlayer3.Skin.nScrollFieldY[i] + 54); + } + else if (this.ctゴーゴー.n現在の値 <= 5) + { + TJAPlayer3.Tx.Lane_Background_GoGo.vc拡大縮小倍率.Y = 0.4f; + TJAPlayer3.Tx.Lane_Background_GoGo.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.nScrollFieldBGX[i], TJAPlayer3.Skin.nScrollFieldY[i] + 40); + } + else if (this.ctゴーゴー.n現在の値 <= 6) + { + TJAPlayer3.Tx.Lane_Background_GoGo.vc拡大縮小倍率.Y = 0.6f; + TJAPlayer3.Tx.Lane_Background_GoGo.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.nScrollFieldBGX[i], TJAPlayer3.Skin.nScrollFieldY[i] + 26); + } + else if (this.ctゴーゴー.n現在の値 <= 8) + { + TJAPlayer3.Tx.Lane_Background_GoGo.vc拡大縮小倍率.Y = 0.8f; + TJAPlayer3.Tx.Lane_Background_GoGo.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.nScrollFieldBGX[i], TJAPlayer3.Skin.nScrollFieldY[i] + 13); + } + else if (this.ctゴーゴー.n現在の値 >= 9) + { + TJAPlayer3.Tx.Lane_Background_GoGo.vc拡大縮小倍率.Y = 1.0f; + TJAPlayer3.Tx.Lane_Background_GoGo.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.nScrollFieldBGX[i], TJAPlayer3.Skin.nScrollFieldY[i]); + } + } + #endregion + } + + for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) + { + if (TJAPlayer3.stage演奏ドラム画面.bUseBranch[i] == true) + { + if (TJAPlayer3.ConfigIni.nBranchAnime == 0) + { + if (!this.stBranch[i].ct分岐アニメ進行.b進行中) + { + switch (TJAPlayer3.stage演奏ドラム画面.nレーン用表示コース[i]) + { + case CDTX.ECourse.eNormal: + TJAPlayer3.Tx.Lane_Text[0].Opacity = 255; + TJAPlayer3.Tx.Lane_Text[0].t2D描画(TJAPlayer3.app.Device, 333, TJAPlayer3.Skin.nScrollFieldY[i]); + break; + case CDTX.ECourse.eExpert: + TJAPlayer3.Tx.Lane_Text[1].Opacity = 255; + TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, 333, TJAPlayer3.Skin.nScrollFieldY[i]); + break; + case CDTX.ECourse.eMaster: + TJAPlayer3.Tx.Lane_Text[2].Opacity = 255; + TJAPlayer3.Tx.Lane_Text[2].t2D描画(TJAPlayer3.app.Device, 333, TJAPlayer3.Skin.nScrollFieldY[i]); + break; + } + } + if (this.stBranch[i].ct分岐アニメ進行.b進行中) + { + #region[ 普通譜面_レベルアップ ] + //普通→玄人 + if (this.stBranch[i].nBefore == 0 && this.stBranch[i].nAfter == CDTX.ECourse.eExpert) + { + TJAPlayer3.Tx.Lane_Text[0].Opacity = 255; + TJAPlayer3.Tx.Lane_Text[1].Opacity = 255; + TJAPlayer3.Tx.Lane_Text[2].Opacity = 255; + + TJAPlayer3.Tx.Lane_Text[0].Opacity = this.stBranch[i].ct分岐アニメ進行.n現在の値 > 100 ? 0 : (255 - ((this.stBranch[i].ct分岐アニメ進行.n現在の値 * 0xff) / 60)); + //CDTXMania.Tx.Lane_Text[1].n透明度 = this.ct分岐アニメ進行.n現在の値 > 100 ? 255 : ( ( ( this.ct分岐アニメ進行.n現在の値 * 0xff ) / 60 ) ); + if (this.stBranch[i].ct分岐アニメ進行.n現在の値 < 60) + { + this.stBranch[i].nY = this.stBranch[i].ct分岐アニメ進行.n現在の値 / 2; + TJAPlayer3.Tx.Lane_Text[0].t2D描画(TJAPlayer3.app.Device, 333, TJAPlayer3.Skin.nScrollFieldY[i] + this.stBranch[i].nY); + TJAPlayer3.Tx.Lane_Text[1].Opacity = 255; + TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, 333, (TJAPlayer3.Skin.nScrollFieldY[i] - 30) + this.stBranch[i].nY); + } + else + { + TJAPlayer3.Tx.Lane_Text[1].Opacity = 255; + TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, 333, TJAPlayer3.Skin.nScrollFieldY[i]); + } + + } + + //普通→達人 + if (this.stBranch[i].nBefore == 0 && this.stBranch[i].nAfter == CDTX.ECourse.eMaster) + { + TJAPlayer3.Tx.Lane_Text[0].Opacity = 255; + TJAPlayer3.Tx.Lane_Text[1].Opacity = 255; + TJAPlayer3.Tx.Lane_Text[2].Opacity = 255; + if (this.stBranch[i].ct分岐アニメ進行.n現在の値 < 60) + { + this.stBranch[i].nY = this.stBranch[i].ct分岐アニメ進行.n現在の値 / 2; + TJAPlayer3.Tx.Lane_Text[0].t2D描画(TJAPlayer3.app.Device, 333, (TJAPlayer3.Skin.nScrollFieldY[i] - 12) + this.stBranch[i].nY); + TJAPlayer3.Tx.Lane_Text[0].Opacity = this.stBranch[i].ct分岐アニメ進行.n現在の値 > 100 ? 0 : (255 - ((this.stBranch[i].ct分岐アニメ進行.n現在の値 * 0xff) / 100)); + TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, 333, (TJAPlayer3.Skin.nScrollFieldY[i] - 20) + this.stBranch[i].nY); + } + //if( this.stBranch[ i ].ct分岐アニメ進行.n現在の値 >= 5 && this.stBranch[ i ].ct分岐アニメ進行.n現在の値 < 60 ) + //{ + // this.stBranch[ i ].nY = this.stBranch[ i ].ct分岐アニメ進行.n現在の値 / 2; + // this.tx普通譜面[ 1 ].t2D描画(CDTXMania.app.Device, 333, CDTXMania.Skin.nScrollFieldY[ i ] + this.stBranch[ i ].nY); + // this.tx普通譜面[ 1 ].n透明度 = this.stBranch[ i ].ct分岐アニメ進行.n現在の値 > 100 ? 0 : ( 255 - ( ( this.stBranch[ i ].ct分岐アニメ進行.n現在の値 * 0xff) / 100)); + // this.tx玄人譜面[ 1 ].t2D描画(CDTXMania.app.Device, 333, ( CDTXMania.Skin.nScrollFieldY[ i ] - 10 ) + this.stBranch[ i ].nY); + //} + else if (this.stBranch[i].ct分岐アニメ進行.n現在の値 >= 60 && this.stBranch[i].ct分岐アニメ進行.n現在の値 < 150) + { + this.stBranch[i].nY = 21; + TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, 333, TJAPlayer3.Skin.nScrollFieldY[i]); + TJAPlayer3.Tx.Lane_Text[1].Opacity = 255; + TJAPlayer3.Tx.Lane_Text[2].Opacity = 255; + } + else if (this.stBranch[i].ct分岐アニメ進行.n現在の値 >= 150 && this.stBranch[i].ct分岐アニメ進行.n現在の値 < 210) + { + this.stBranch[i].nY = ((this.stBranch[i].ct分岐アニメ進行.n現在の値 - 150) / 2); + TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, 333, TJAPlayer3.Skin.nScrollFieldY[i] + this.stBranch[i].nY); + TJAPlayer3.Tx.Lane_Text[1].Opacity = this.stBranch[i].ct分岐アニメ進行.n現在の値 > 100 ? 0 : (255 - ((this.stBranch[i].ct分岐アニメ進行.n現在の値 * 0xff) / 100)); + TJAPlayer3.Tx.Lane_Text[2].t2D描画(TJAPlayer3.app.Device, 333, (TJAPlayer3.Skin.nScrollFieldY[i] - 20) + this.stBranch[i].nY); + } + else + { + TJAPlayer3.Tx.Lane_Text[2].Opacity = 255; + TJAPlayer3.Tx.Lane_Text[2].t2D描画(TJAPlayer3.app.Device, 333, TJAPlayer3.Skin.nScrollFieldY[i]); + } + } + #endregion + #region[ 玄人譜面_レベルアップ ] + //玄人→達人 + if (this.stBranch[i].nBefore == CDTX.ECourse.eExpert && this.stBranch[i].nAfter == CDTX.ECourse.eMaster) + { + TJAPlayer3.Tx.Lane_Text[0].Opacity = 255; + TJAPlayer3.Tx.Lane_Text[1].Opacity = 255; + TJAPlayer3.Tx.Lane_Text[2].Opacity = 255; + + TJAPlayer3.Tx.Lane_Text[1].Opacity = this.stBranch[i].ct分岐アニメ進行.n現在の値 > 100 ? 0 : (255 - ((this.stBranch[i].ct分岐アニメ進行.n現在の値 * 0xff) / 60)); + if (this.stBranch[i].ct分岐アニメ進行.n現在の値 < 60) + { + this.stBranch[i].nY = this.stBranch[i].ct分岐アニメ進行.n現在の値 / 2; + TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, 333, TJAPlayer3.Skin.nScrollFieldY[i] + this.stBranch[i].nY); + TJAPlayer3.Tx.Lane_Text[2].t2D描画(TJAPlayer3.app.Device, 333, (TJAPlayer3.Skin.nScrollFieldY[i] - 20) + this.stBranch[i].nY); + } + else + { + TJAPlayer3.Tx.Lane_Text[2].t2D描画(TJAPlayer3.app.Device, 333, TJAPlayer3.Skin.nScrollFieldY[i]); + } + } + #endregion + #region[ 玄人譜面_レベルダウン ] + if (this.stBranch[i].nBefore == CDTX.ECourse.eExpert && this.stBranch[i].nAfter == CDTX.ECourse.eNormal) + { + TJAPlayer3.Tx.Lane_Text[0].Opacity = 255; + TJAPlayer3.Tx.Lane_Text[1].Opacity = 255; + TJAPlayer3.Tx.Lane_Text[2].Opacity = 255; + + TJAPlayer3.Tx.Lane_Text[1].Opacity = this.stBranch[i].ct分岐アニメ進行.n現在の値 > 100 ? 0 : (255 - ((this.stBranch[i].ct分岐アニメ進行.n現在の値 * 0xff) / 60)); + if (this.stBranch[i].ct分岐アニメ進行.n現在の値 < 60) + { + this.stBranch[i].nY = this.stBranch[i].ct分岐アニメ進行.n現在の値 / 2; + TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, 333, TJAPlayer3.Skin.nScrollFieldY[i] - this.stBranch[i].nY); + TJAPlayer3.Tx.Lane_Text[0].t2D描画(TJAPlayer3.app.Device, 333, (TJAPlayer3.Skin.nScrollFieldY[i] + 30) - this.stBranch[i].nY); + } + else + { + TJAPlayer3.Tx.Lane_Text[0].t2D描画(TJAPlayer3.app.Device, 333, TJAPlayer3.Skin.nScrollFieldY[i]); + } + } + #endregion + #region[ 達人譜面_レベルダウン ] + if (this.stBranch[i].nBefore == CDTX.ECourse.eMaster && this.stBranch[i].nAfter == CDTX.ECourse.eNormal) + { + TJAPlayer3.Tx.Lane_Text[0].Opacity = 255; + TJAPlayer3.Tx.Lane_Text[1].Opacity = 255; + TJAPlayer3.Tx.Lane_Text[2].Opacity = 255; + + if (this.stBranch[i].ct分岐アニメ進行.n現在の値 < 60) + { + this.stBranch[i].nY = this.stBranch[i].ct分岐アニメ進行.n現在の値 / 2; + TJAPlayer3.Tx.Lane_Text[2].Opacity = this.stBranch[i].ct分岐アニメ進行.n現在の値 > 100 ? 0 : (255 - ((this.stBranch[i].ct分岐アニメ進行.n現在の値 * 0xff) / 60)); + TJAPlayer3.Tx.Lane_Text[2].t2D描画(TJAPlayer3.app.Device, 333, TJAPlayer3.Skin.nScrollFieldY[i] - this.stBranch[i].nY); + TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, 333, (TJAPlayer3.Skin.nScrollFieldY[i] + 30) - this.stBranch[i].nY); + } + else if (this.stBranch[i].ct分岐アニメ進行.n現在の値 >= 60 && this.stBranch[i].ct分岐アニメ進行.n現在の値 < 150) + { + this.stBranch[i].nY = 21; + TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, 333, TJAPlayer3.Skin.nScrollFieldY[i]); + TJAPlayer3.Tx.Lane_Text[1].Opacity = 255; + TJAPlayer3.Tx.Lane_Text[2].Opacity = 255; + } + else if (this.stBranch[i].ct分岐アニメ進行.n現在の値 >= 150 && this.stBranch[i].ct分岐アニメ進行.n現在の値 < 210) + { + this.stBranch[i].nY = ((this.stBranch[i].ct分岐アニメ進行.n現在の値 - 150) / 2); + TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, 333, TJAPlayer3.Skin.nScrollFieldY[i] - this.stBranch[i].nY); + TJAPlayer3.Tx.Lane_Text[1].Opacity = this.stBranch[i].ct分岐アニメ進行.n現在の値 > 100 ? 0 : (255 - ((this.stBranch[i].ct分岐アニメ進行.n現在の値 * 0xff) / 100)); + TJAPlayer3.Tx.Lane_Text[0].t2D描画(TJAPlayer3.app.Device, 333, (TJAPlayer3.Skin.nScrollFieldY[i] + 30) - this.stBranch[i].nY); + } + else if (this.stBranch[i].ct分岐アニメ進行.n現在の値 >= 210) + { + TJAPlayer3.Tx.Lane_Text[0].Opacity = 255; + TJAPlayer3.Tx.Lane_Text[0].t2D描画(TJAPlayer3.app.Device, 333, TJAPlayer3.Skin.nScrollFieldY[i]); + } + } + if (this.stBranch[i].nBefore == CDTX.ECourse.eMaster && this.stBranch[i].nAfter == CDTX.ECourse.eExpert) + { + TJAPlayer3.Tx.Lane_Text[0].Opacity = 255; + TJAPlayer3.Tx.Lane_Text[1].Opacity = 255; + TJAPlayer3.Tx.Lane_Text[2].Opacity = 255; + + TJAPlayer3.Tx.Lane_Text[2].Opacity = this.stBranch[i].ct分岐アニメ進行.n現在の値 > 100 ? 0 : (255 - ((this.stBranch[i].ct分岐アニメ進行.n現在の値 * 0xff) / 60)); + if (this.stBranch[i].ct分岐アニメ進行.n現在の値 < 60) + { + this.stBranch[i].nY = this.stBranch[i].ct分岐アニメ進行.n現在の値 / 2; + TJAPlayer3.Tx.Lane_Text[2].t2D描画(TJAPlayer3.app.Device, 333, TJAPlayer3.Skin.nScrollFieldY[i] - this.stBranch[i].nY); + TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, 333, (TJAPlayer3.Skin.nScrollFieldY[i] + 30) - this.stBranch[i].nY); + } + else + { + TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, 333, TJAPlayer3.Skin.nScrollFieldY[i]); + } + + } + #endregion + } + } + else + { + if (this.stBranch[i].nY座標 == 21) + { + this.stBranch[i].nY座標 = 0; + } + + if (this.stBranch[i].nY座標 == 0) + { + switch (TJAPlayer3.stage演奏ドラム画面.nレーン用表示コース[0]) + { + case CDTX.ECourse.eNormal: + TJAPlayer3.Tx.Lane_Text[0].Opacity = 255; + TJAPlayer3.Tx.Lane_Text[0].t2D描画(TJAPlayer3.app.Device, 333, TJAPlayer3.Skin.nScrollFieldY[i]); + break; + case CDTX.ECourse.eExpert: + TJAPlayer3.Tx.Lane_Text[1].Opacity = 255; + TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, 333, TJAPlayer3.Skin.nScrollFieldY[i]); + break; + case CDTX.ECourse.eMaster: + TJAPlayer3.Tx.Lane_Text[2].Opacity = 255; + TJAPlayer3.Tx.Lane_Text[2].t2D描画(TJAPlayer3.app.Device, 333, TJAPlayer3.Skin.nScrollFieldY[i]); + break; + } + } + + //fuck + if (this.stBranch[i].nY座標 != 0) + { + #region[ 普通譜面_レベルアップ ] + //普通→玄人 + if (this.stBranch[i].nBefore == CDTX.ECourse.eNormal && this.stBranch[i].nAfter == CDTX.ECourse.eExpert) + { + TJAPlayer3.Tx.Lane_Text[0].t2D描画(TJAPlayer3.app.Device, 333, TJAPlayer3.Skin.nScrollFieldY[i] - this.stBranch[i].nY座標); + TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, 333, (TJAPlayer3.Skin.nScrollFieldY[i] + 20) - this.stBranch[i].nY座標); + TJAPlayer3.Tx.Lane_Text[0].Opacity = this.stBranch[i].nBranchレイヤー透明度; + } + //普通→達人 + if (this.stBranch[i].nBefore == CDTX.ECourse.eNormal && this.stBranch[i].nAfter == CDTX.ECourse.eMaster) + { + TJAPlayer3.Tx.Lane_Text[0].t2D描画(TJAPlayer3.app.Device, 333, TJAPlayer3.Skin.nScrollFieldY[i] - this.stBranch[i].nY座標); + TJAPlayer3.Tx.Lane_Text[2].t2D描画(TJAPlayer3.app.Device, 333, (TJAPlayer3.Skin.nScrollFieldY[i] + 20) - this.stBranch[i].nY座標); + TJAPlayer3.Tx.Lane_Text[0].Opacity = this.stBranch[i].nBranchレイヤー透明度; + } + #endregion + #region[ 玄人譜面_レベルアップ ] + //玄人→達人 + if (this.stBranch[i].nBefore == CDTX.ECourse.eExpert && this.stBranch[i].nAfter == CDTX.ECourse.eMaster) + { + TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, 333, TJAPlayer3.Skin.nScrollFieldY[i] - this.stBranch[i].nY座標); + TJAPlayer3.Tx.Lane_Text[2].t2D描画(TJAPlayer3.app.Device, 333, (TJAPlayer3.Skin.nScrollFieldY[i] + 20) - this.stBranch[i].nY座標); + TJAPlayer3.Tx.Lane_Text[1].Opacity = this.stBranch[i].nBranchレイヤー透明度; + } + #endregion + #region[ 玄人譜面_レベルダウン ] + if (this.stBranch[i].nBefore == CDTX.ECourse.eExpert && this.stBranch[i].nAfter == CDTX.ECourse.eNormal) + { + TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, 333, TJAPlayer3.Skin.nScrollFieldY[i] + this.stBranch[i].nY座標); + TJAPlayer3.Tx.Lane_Text[0].t2D描画(TJAPlayer3.app.Device, 333, (TJAPlayer3.Skin.nScrollFieldY[i] - 24) + this.stBranch[i].nY座標); + TJAPlayer3.Tx.Lane_Text[1].Opacity = this.stBranch[i].nBranchレイヤー透明度; + } + #endregion + #region[ 達人譜面_レベルダウン ] + if (this.stBranch[i].nBefore == CDTX.ECourse.eMaster && this.stBranch[i].nAfter == CDTX.ECourse.eNormal) + { + TJAPlayer3.Tx.Lane_Text[2].t2D描画(TJAPlayer3.app.Device, 333, TJAPlayer3.Skin.nScrollFieldY[i] + this.stBranch[i].nY座標); + TJAPlayer3.Tx.Lane_Text[0].t2D描画(TJAPlayer3.app.Device, 333, (TJAPlayer3.Skin.nScrollFieldY[i] - 24) + this.stBranch[i].nY座標); + TJAPlayer3.Tx.Lane_Text[2].Opacity = this.stBranch[i].nBranchレイヤー透明度; + } + if (this.stBranch[i].nBefore == CDTX.ECourse.eMaster && this.stBranch[i].nAfter == CDTX.ECourse.eExpert) + { + TJAPlayer3.Tx.Lane_Text[2].t2D描画(TJAPlayer3.app.Device, 333, TJAPlayer3.Skin.nScrollFieldY[i] + this.stBranch[i].nY座標); + TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, 333, (TJAPlayer3.Skin.nScrollFieldY[i] - 24) + this.stBranch[i].nY座標); + TJAPlayer3.Tx.Lane_Text[2].Opacity = this.stBranch[i].nBranchレイヤー透明度; + } + #endregion + } + } + + } + } + + + + if (TJAPlayer3.Tx.Lane_Background_Sub != null) + { + TJAPlayer3.Tx.Lane_Background_Sub.t2D描画(TJAPlayer3.app.Device, 333, 326); + if (TJAPlayer3.stage演奏ドラム画面.bDoublePlay) + { + TJAPlayer3.Tx.Lane_Background_Sub.t2D描画(TJAPlayer3.app.Device, 333, 502); + } + } + + + TJAPlayer3.stage演奏ドラム画面.actTaikoLaneFlash.On進行描画(); + + + + if (TJAPlayer3.Tx.Taiko_Frame[0] != null) + { + TJAPlayer3.Tx.Taiko_Frame[0].t2D描画(TJAPlayer3.app.Device, 329, 136); + + if (TJAPlayer3.stage演奏ドラム画面.bDoublePlay) + { + if(TJAPlayer3.Tx.Taiko_Frame[1] != null) + { + TJAPlayer3.Tx.Taiko_Frame[1].t2D描画(TJAPlayer3.app.Device, 329, 360); + } + } + } + var nTime = (long)(CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)); + + if (this.n総移動時間 != -1) + { + if (n移動方向 == 1) + { + TJAPlayer3.Skin.nScrollFieldX[0] = this.n移動開始X + (int)((((int)nTime - this.n移動開始時刻) / (double)(this.n総移動時間)) * this.n移動距離px); + TJAPlayer3.stage演奏ドラム画面.FlyingNotes.StartPointX[0] = this.n移動開始X + (int)((((int)nTime - this.n移動開始時刻) / (double)(this.n総移動時間)) * this.n移動距離px); + } + else + { + TJAPlayer3.Skin.nScrollFieldX[0] = this.n移動開始X - (int)((((int)nTime - this.n移動開始時刻) / (double)(this.n総移動時間)) * this.n移動距離px); + TJAPlayer3.stage演奏ドラム画面.FlyingNotes.StartPointX[0] = this.n移動開始X - (int)((((int)nTime - this.n移動開始時刻) / (double)(this.n総移動時間)) * this.n移動距離px); + } + + if (((int)nTime) > this.n移動開始時刻 + this.n総移動時間) + { + this.n総移動時間 = -1; + TJAPlayer3.Skin.nScrollFieldX[0] = this.n移動目的場所X; + TJAPlayer3.stage演奏ドラム画面.FlyingNotes.StartPointX[0] = this.n移動目的場所X; + } + } + if (this.n総移動時間2 != -1) + { + if (n移動方向2 == 1) + { + TJAPlayer3.Skin.nScrollFieldX[1] = this.n移動開始X2 + (int)((((int)nTime - this.n移動開始時刻2) / (double)(this.n総移動時間2)) * this.n移動距離px2); + TJAPlayer3.Skin.Game_Effect_FlyingNotes_StartPoint_X[1] = this.n移動開始X2 + (int)((((int)nTime - this.n移動開始時刻2) / (double)(this.n総移動時間2)) * this.n移動距離px2); + } + else + { + TJAPlayer3.Skin.nScrollFieldX[1] = this.n移動開始X2 - (int)((((int)nTime - this.n移動開始時刻2) / (double)(this.n総移動時間2)) * this.n移動距離px2); + TJAPlayer3.Skin.Game_Effect_FlyingNotes_StartPoint_X[1] = this.n移動開始X2 - (int)((((int)nTime - this.n移動開始時刻2) / (double)(this.n総移動時間2)) * this.n移動距離px2); + } + + + if (((int)nTime) > this.n移動開始時刻2 + this.n総移動時間2) + { + this.n総移動時間2 = -1; + TJAPlayer3.Skin.nScrollFieldX[1] = this.n移動目的場所X2; + TJAPlayer3.stage演奏ドラム画面.FlyingNotes.StartPointX[1] = this.n移動目的場所X2; + } + } + + + + + if (TJAPlayer3.ConfigIni.bAVI有効 && TJAPlayer3.DTX.listAVI.Count > 0) + { + if (TJAPlayer3.Tx.Lane_Background_Main != null) TJAPlayer3.Tx.Lane_Background_Main.Opacity = TJAPlayer3.ConfigIni.nBGAlpha; + if(TJAPlayer3.Tx.Lane_Background_Sub != null) TJAPlayer3.Tx.Lane_Background_Sub.Opacity = TJAPlayer3.ConfigIni.nBGAlpha; + if (TJAPlayer3.Tx.Lane_Background_GoGo != null) TJAPlayer3.Tx.Lane_Background_GoGo.Opacity = TJAPlayer3.ConfigIni.nBGAlpha; + } + else + { + if (TJAPlayer3.Tx.Lane_Background_Main != null) TJAPlayer3.Tx.Lane_Background_Main.Opacity = 255; + if (TJAPlayer3.Tx.Lane_Background_Sub != null) TJAPlayer3.Tx.Lane_Background_Sub.Opacity = 255; + if (TJAPlayer3.Tx.Lane_Background_GoGo != null) TJAPlayer3.Tx.Lane_Background_GoGo.Opacity = 255; + } + + //CDTXMania.act文字コンソール.tPrint(0, 0, C文字コンソール.Eフォント種別.白, this.nBranchレイヤー透明度.ToString()); + //CDTXMania.act文字コンソール.tPrint(0, 16, C文字コンソール.Eフォント種別.白, this.ct分岐アニメ進行.n現在の値.ToString()); + //CDTXMania.act文字コンソール.tPrint(0, 32, C文字コンソール.Eフォント種別.白, this.ct分岐アニメ進行.n終了値.ToString()); + + //CDTXMania.act文字コンソール.tPrint(0, 32, C文字コンソール.Eフォント種別.白, this.ctゴーゴースプラッシュ.n現在の値.ToString()); + + /*#region[ ゴーゴースプラッシュ ] + for (int i = 0; i < CDTXMania.ConfigIni.nPlayerCount; i++) + { + if (CDTXMania.stage演奏ドラム画面.bIsGOGOTIME[i]) + { + + if (this.txゴーゴースプラッシュ != null) + { + this.txゴーゴースプラッシュ[(int)this.ctゴーゴースプラッシュ.n現在の値].t2D描画(CDTXMania.app.Device, 0, 260); + this.ctゴーゴースプラッシュ.n現在の値++; + if(this.ctゴーゴースプラッシュ.b終了値に達した) + { + this.ctゴーゴースプラッシュ.t停止(); + this.ctゴーゴースプラッシュ.n現在の値 = 0; + } + } + + + this.ctゴーゴースプラッシュ.t進行Loop(); + if (this.txゴーゴースプラッシュ != null) + { + if (this.ctゴーゴースプラッシュ.b終了値に達してない) + { + this.txゴーゴースプラッシュ[(int)this.ctゴーゴースプラッシュ.n現在の値].t2D描画(CDTXMania.app.Device, 0, 260); + } + + } + } + } + #endregion */ + /* + for (int i = 0; i < CDTXMania.ConfigIni.nPlayerCount; i++) + { + #region[ ゴーゴースプラッシュ ] + if (this.txゴーゴースプラッシュ != null && CDTXMania.stage演奏ドラム画面.bIsGOGOTIME[i]) + { + if (!this.ctゴーゴースプラッシュ.b停止中) + { + this.ctゴーゴースプラッシュ.t進行(); + } + if (this.ctゴーゴースプラッシュ.n現在の値 < 28) + { + for (int v = 0; v < 6; v++) + { + this.txゴーゴースプラッシュ[this.ctゴーゴースプラッシュ.n現在の値].t2D描画(CDTXMania.app.Device, 0 + (v * 213), 260); + } + + } + else + { + this.txゴーゴースプラッシュ[this.ctゴーゴースプラッシュ.n現在の値].n透明度 = 100; + } + + } + #endregion + } */ + return base.On進行描画(); + } + + public void ゴーゴー炎() + { + //判定枠 + if (TJAPlayer3.Tx.Notes != null) + { + int nJudgeX = TJAPlayer3.Skin.nScrollFieldX[0] - (130 / 2); //元の値は349なんだけど... + int nJudgeY = TJAPlayer3.Skin.nScrollFieldY[0]; //元の値は349なんだけど... + TJAPlayer3.Tx.Judge_Frame.b加算合成 = TJAPlayer3.Skin.Game_JudgeFrame_AddBlend; + TJAPlayer3.Tx.Judge_Frame.t2D描画(TJAPlayer3.app.Device, nJudgeX, nJudgeY, new Rectangle(0, 0, 130, 130)); + + if (TJAPlayer3.stage演奏ドラム画面.bDoublePlay) + TJAPlayer3.Tx.Judge_Frame.t2D描画(TJAPlayer3.app.Device, nJudgeX, nJudgeY + 176, new Rectangle(0, 0, 130, 130)); + } + + + #region[ ゴーゴー炎 ] + for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) + { + if (TJAPlayer3.stage演奏ドラム画面.bIsGOGOTIME[i]) + { + this.ctゴーゴー炎.t進行Loop(); + + if (TJAPlayer3.Tx.Effects_Fire != null) + { + float f倍率 = 1.0f; + + float[] ar倍率 = new float[] { 0.8f, 1.2f, 1.7f, 2.5f, 2.3f, 2.2f, 2.0f, 1.8f, 1.7f, 1.6f, 1.6f, 1.5f, 1.5f, 1.4f, 1.3f, 1.2f, 1.1f, 1.0f }; + + f倍率 = ar倍率[this.ctゴーゴー.n現在の値]; + + Matrix mat = Matrix.Identity; + mat *= Matrix.Scaling(f倍率, f倍率, 1.0f); + mat *= Matrix.Translation(TJAPlayer3.Skin.nScrollFieldX[i] - SampleFramework.GameWindowSize.Width / 2.0f, -(TJAPlayer3.Skin.nJudgePointY[i] - SampleFramework.GameWindowSize.Height / 2.0f), 0f); + + //this.txゴーゴー炎.b加算合成 = true; + + //this.ctゴーゴー.n現在の値 = 6; + if (this.ctゴーゴー.b終了値に達した) + { + TJAPlayer3.Tx.Effects_Fire.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.nScrollFieldX[i] - 180, TJAPlayer3.Skin.nJudgePointY[i] - (TJAPlayer3.Tx.Effects_Fire.szテクスチャサイズ.Height / 2), new Rectangle(360 * (this.ctゴーゴー炎.n現在の値), 0, 360, 370)); + } + else + { + TJAPlayer3.Tx.Effects_Fire.t3D描画(TJAPlayer3.app.Device, mat, new Rectangle(360 * (this.ctゴーゴー炎.n現在の値), 0, 360, 370)); + } + } + } + } + #endregion + for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) + { + if (!this.st状態[i].ct進行.b停止中) + { + this.st状態[i].ct進行.t進行(); + if (this.st状態[i].ct進行.b終了値に達した) + { + this.st状態[i].ct進行.t停止(); + } + //if( this.txアタックエフェクトLower != null ) + { + //this.txアタックエフェクトLower.b加算合成 = true; + int n = this.st状態[i].nIsBig == 1 ? 520 : 0; + + switch (st状態[i].judge) + { + case E判定.Perfect: + case E判定.Great: + case E判定.Auto: + //this.txアタックエフェクトLower.t2D描画( CDTXMania.app.Device, 285, 127, new Rectangle( this.st状態[ i ].ct進行.n現在の値 * 260, n, 260, 260 ) ); + if (this.st状態[i].nIsBig == 1 && TJAPlayer3.Tx.Effects_Hit_Great_Big[this.st状態[i].ct進行.n現在の値] != null) + TJAPlayer3.Tx.Effects_Hit_Great_Big[this.st状態[i].ct進行.n現在の値].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.nScrollFieldX[0] - TJAPlayer3.Tx.Effects_Hit_Great_Big[0].szテクスチャサイズ.Width / 2, TJAPlayer3.Skin.nJudgePointY[i] - TJAPlayer3.Tx.Effects_Hit_Great_Big[0].szテクスチャサイズ.Width / 2); + else if (TJAPlayer3.Tx.Effects_Hit_Great[this.st状態[i].ct進行.n現在の値] != null) + TJAPlayer3.Tx.Effects_Hit_Great[this.st状態[i].ct進行.n現在の値].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.nScrollFieldX[0] - TJAPlayer3.Tx.Effects_Hit_Great[0].szテクスチャサイズ.Width / 2, TJAPlayer3.Skin.nJudgePointY[i] - TJAPlayer3.Tx.Effects_Hit_Great[0].szテクスチャサイズ.Width / 2); + break; + + case E判定.Good: + //this.txアタックエフェクトLower.t2D描画( CDTXMania.app.Device, 285, 127, new Rectangle( this.st状態[ i ].ct進行.n現在の値 * 260, n + 260, 260, 260 ) ); + if (this.st状態[i].nIsBig == 1 && TJAPlayer3.Tx.Effects_Hit_Good_Big[this.st状態[i].ct進行.n現在の値] != null) + TJAPlayer3.Tx.Effects_Hit_Good_Big[this.st状態[i].ct進行.n現在の値].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.nScrollFieldX[0] - TJAPlayer3.Tx.Effects_Hit_Good_Big[0].szテクスチャサイズ.Width / 2, TJAPlayer3.Skin.nJudgePointY[i] - TJAPlayer3.Tx.Effects_Hit_Good_Big[0].szテクスチャサイズ.Width / 2); + else if (TJAPlayer3.Tx.Effects_Hit_Good[this.st状態[i].ct進行.n現在の値] != null) + TJAPlayer3.Tx.Effects_Hit_Good[this.st状態[i].ct進行.n現在の値].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.nScrollFieldX[0] - TJAPlayer3.Tx.Effects_Hit_Good[0].szテクスチャサイズ.Width / 2, TJAPlayer3.Skin.nJudgePointY[i] - TJAPlayer3.Tx.Effects_Hit_Good[0].szテクスチャサイズ.Width / 2); + break; + + case E判定.Miss: + case E判定.Bad: + break; + } + } + } + } + + + } + + public virtual void Start(int nLane, E判定 judge, bool b両手入力, int nPlayer) + { + //2017.08.15 kairera0467 排他なので番地をそのまま各レーンの状態として扱う + + //for( int n = 0; n < 1; n++ ) + { + this.st状態[nPlayer].ct進行 = new CCounter(0, 14, 20, TJAPlayer3.Timer); + this.st状態[nPlayer].judge = judge; + this.st状態[nPlayer].nPlayer = nPlayer; + + switch (nLane) + { + case 0x11: + case 0x12: + this.st状態[nPlayer].nIsBig = 0; + break; + case 0x13: + case 0x14: + case 0x1A: + case 0x1B: + { + if (b両手入力) + this.st状態[nPlayer].nIsBig = 1; + else + this.st状態[nPlayer].nIsBig = 0; + } + break; + } + } + } + + + public void GOGOSTART() + { + this.ctゴーゴー = new CCounter(0, 17, 18, TJAPlayer3.Timer); + if(TJAPlayer3.ConfigIni.nPlayerCount == 1 && TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Dan) TJAPlayer3.stage演奏ドラム画面.GoGoSplash.StartSplash(); + } + + + public void t分岐レイヤー_コース変化(CDTX.ECourse n現在, CDTX.ECourse n次回, int nPlayer) + { + if (n現在 == n次回) + { + return; + } + this.stBranch[nPlayer].ct分岐アニメ進行 = new CCounter(0, 300, 2, TJAPlayer3.Timer); + + this.stBranch[nPlayer].nBranchレイヤー透明度 = 6; + this.stBranch[nPlayer].nY座標 = 1; + + this.stBranch[nPlayer].nBefore = n現在; + this.stBranch[nPlayer].nAfter = n次回; + + TJAPlayer3.stage演奏ドラム画面.actLane.t分岐レイヤー_コース変化(n現在, n次回, nPlayer); + } + + public void t判定枠移動(double db移動時間, int n移動px, int n移動方向) + { + this.n移動開始時刻 = (int)(CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)); + this.n移動開始X = TJAPlayer3.Skin.nScrollFieldX[0]; + this.n総移動時間 = (int)(db移動時間 * 1000); + this.n移動方向 = n移動方向; + this.n移動距離px = n移動px; + if (n移動方向 == 0) + this.n移動目的場所X = TJAPlayer3.Skin.nScrollFieldX[0] - n移動px; + else + this.n移動目的場所X = TJAPlayer3.Skin.nScrollFieldX[0] + n移動px; + } + + public void t判定枠移動2(double db移動時間, int n移動px, int n移動方向) + { + this.n移動開始時刻2 = (int)(CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)); + this.n移動開始X2 = TJAPlayer3.Skin.nScrollFieldX[1]; + this.n総移動時間2 = (int)(db移動時間 * 1000); + this.n移動方向2 = n移動方向; + this.n移動距離px2 = n移動px; + if (n移動方向 == 0) + this.n移動目的場所X2 = TJAPlayer3.Skin.nScrollFieldX[1] - n移動px; + else + this.n移動目的場所X2 = TJAPlayer3.Skin.nScrollFieldX[1] + n移動px; + } + #region[ private ] + //----------------- + //private CTexture txLane; + //private CTexture txLaneB; + //private CTexture tx枠線; + //private CTexture tx判定枠; + //private CTexture txゴーゴー; + //private CTexture txゴーゴー炎; + //private CTexture[] txArゴーゴー炎; + //private CTexture[] txArアタックエフェクトLower_A; + //private CTexture[] txArアタックエフェクトLower_B; + //private CTexture[] txArアタックエフェクトLower_C; + //private CTexture[] txArアタックエフェクトLower_D; + + //private CTexture[] txLaneFlush = new CTexture[3]; + + //private CTexture[] tx普通譜面 = new CTexture[2]; + //private CTexture[] tx玄人譜面 = new CTexture[2]; + //private CTexture[] tx達人譜面 = new CTexture[2]; + + //private CTextureAf txアタックエフェクトLower; + + protected STSTATUS[] st状態 = new STSTATUS[4]; + + //private CTexture[] txゴーゴースプラッシュ; + + [StructLayout(LayoutKind.Sequential)] + protected struct STSTATUS + { + public bool b使用中; + public CCounter ct進行; + public E判定 judge; + public int nIsBig; + public int n透明度; + public int nPlayer; + } + private CCounter ctゴーゴー; + private CCounter ctゴーゴー炎; + + + + public STBRANCH[] stBranch = new STBRANCH[4]; + [StructLayout(LayoutKind.Sequential)] + public struct STBRANCH + { + public CCounter ct分岐アニメ進行; + public CDTX.ECourse nBefore; + public CDTX.ECourse nAfter; + + public long nフラッシュ制御タイマ; + public int nBranchレイヤー透明度; + public int nBranch文字透明度; + public int nY座標; + public int nY; + } + + + private int n総移動時間; + private int n移動開始X; + private int n移動開始時刻; + private int n移動距離px; + private int n移動目的場所X; + private int n移動方向; + private int n総移動時間2; + private int n移動開始X2; + private int n移動開始時刻2; + private int n移動距離px2; + private int n移動目的場所X2; + private int n移動方向2; + + internal int[,] nDefaultJudgePos = new int[2, 2]; + + + //----------------- + #endregion + } +} diff --git a/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drums判定文字列.cs b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drums判定文字列.cs new file mode 100644 index 00000000..eef63793 --- /dev/null +++ b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drums判定文字列.cs @@ -0,0 +1,95 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Text; +using System.Runtime.InteropServices; +using SlimDX; +using FDK; +using System.Drawing; + +namespace TJAPlayer3 +{ + internal class CAct演奏Drums判定文字列 : CActivity + { + // コンストラクタ + + public CAct演奏Drums判定文字列() + { + base.b活性化してない = true; + } + + public override void On活性化() + { + JudgeAnimes = new JudgeAnime[2, 512]; + for (int i = 0; i < 512; i++) + { + JudgeAnimes[0, i] = new JudgeAnime(); + JudgeAnimes[1, i] = new JudgeAnime(); + } + base.On活性化(); + } + + public override void On非活性化() + { + for (int i = 0; i < 512; i++) + { + JudgeAnimes[0, i] = null; + JudgeAnimes[1, i] = null; + } + base.On非活性化(); + } + + // CActivity 実装(共通クラスからの差分のみ) + public override int On進行描画() + { + if (!base.b活性化してない) + { + for (int i = 0; i < 512; i++) + { + for(int j = 0; j < 2; j++) + { + if (JudgeAnimes[j, i].counter.b停止中) continue; + JudgeAnimes[j, i].counter.t進行(); + float x = TJAPlayer3.Skin.nScrollFieldX[0] - TJAPlayer3.Tx.Judge.szテクスチャサイズ.Width / 2; + float y = (TJAPlayer3.Skin.nScrollFieldY[j] - 53 + CubicEaseOut((float)(JudgeAnimes[j, i].counter.n現在の値 >= 180 ? 180 : JudgeAnimes[j, i].counter.n現在の値) / 180f) * 20f) - 10; + TJAPlayer3.Tx.Judge.Opacity = (int)(255f - (JudgeAnimes[j, i].counter.n現在の値 >= 360 ? ((JudgeAnimes[j, i].counter.n現在の値 - 360) / 50.0f) * 255f : 0f)); + TJAPlayer3.Tx.Judge.t2D描画(TJAPlayer3.app.Device, x, y, JudgeAnimes[j, i].rc); + } + } + } + return 0; + } + + public void Start(int player, E判定 judge) + { + JudgeAnimes[player, JudgeAnime.Index].counter.t開始(0, 410, 1, TJAPlayer3.Timer); + JudgeAnimes[player, JudgeAnime.Index].Judge = judge; + int njudge = judge == E判定.Perfect ? 0 : judge == E判定.Good ? 1 : judge == E判定.Auto ? 0 : 2; + JudgeAnimes[player, JudgeAnime.Index].rc = new Rectangle(0, (int)njudge * 60, 90, 60); + JudgeAnime.Index++; + if (JudgeAnime.Index >= 511) JudgeAnime.Index = 0; + } + + // その他 + + #region [ private ] + //----------------- + + private JudgeAnime[,] JudgeAnimes; + private class JudgeAnime + { + public static int Index; + public E判定 Judge; + public Rectangle rc; + public CCounter counter = new CCounter(); + } + + private float CubicEaseOut(float p) + { + float f = (p - 1); + return f * f * f + 1; + } + //----------------- + #endregion + } +} diff --git a/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drums演奏終了演出.cs b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drums演奏終了演出.cs new file mode 100644 index 00000000..c4c64660 --- /dev/null +++ b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drums演奏終了演出.cs @@ -0,0 +1,453 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Runtime.InteropServices; +using System.Drawing; +using FDK; + +namespace TJAPlayer3 +{ + internal class CAct演奏Drums演奏終了演出 : CActivity + { + /// + /// 課題 + /// _クリア失敗 →素材不足(確保はできる。切り出しと加工をしてないだけ。) + /// _ + /// + public CAct演奏Drums演奏終了演出() + { + base.b活性化してない = true; + } + + public void Start() + { + // this.ct進行メイン = new CCounter(0, 500, 1000 / 60, TJAPlayer3.Timer); + + this.ct進行メイン = new CCounter(0, 300, 22, TJAPlayer3.Timer); + this.ctEnd_ClearFailed = new CCounter(0, 69, 30, TJAPlayer3.Timer); + this.ctEnd_FullCombo = new CCounter(0, 66, 33, TJAPlayer3.Timer); + this.ctEnd_FullComboLoop = new CCounter(0, 2, 30, TJAPlayer3.Timer); + this.ctEnd_DondaFullCombo = new CCounter(0, 61, 33, TJAPlayer3.Timer); + this.ctEnd_DondaFullComboLoop = new CCounter(0, 2, 30, TJAPlayer3.Timer); + + // モードの決定。クリア失敗・フルコンボも事前に作っとく。 + if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan) + { + // 段位認定モード。 + if (!TJAPlayer3.stage演奏ドラム画面.actDan.GetFailedAllChallenges()) + { + // 段位認定モード、クリア成功 + this.Mode[0] = EndMode.StageCleared; + } + else + { + // 段位認定モード、クリア失敗 + this.Mode[0] = EndMode.StageFailed; + } + } + else + { + // 通常のモード。 + // ここでフルコンボフラグをチェックするが現時点ではない。 + // 今の段階では魂ゲージ80%以上でチェック。 + for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) + { + if (TJAPlayer3.stage演奏ドラム画面.actGauge.db現在のゲージ値[i] >= 80) + { + if (TJAPlayer3.stage演奏ドラム画面.CBranchScore[i].nMiss == 0) + //if (TJAPlayer3.stage演奏ドラム画面.nヒット数_Auto含まない.Drums.Miss == 0) + { + if (TJAPlayer3.stage演奏ドラム画面.CBranchScore[i].nGood == 0) + //if (TJAPlayer3.stage演奏ドラム画面.nヒット数_Auto含まない.Drums.Great == 0) + { + this.Mode[i] = EndMode.StageDondaFullCombo; + } + else + { + this.Mode[i] = EndMode.StageFullCombo; + } + } + else + { + this.Mode[i] = EndMode.StageCleared; + } + } + else + { + this.Mode[i] = EndMode.StageFailed; + } + } + } + } + + public override void On活性化() + { + this.bリザルトボイス再生済み = false; + this.Mode = new EndMode[2]; + base.On活性化(); + } + + public override void On非活性化() + { + this.ct進行メイン = null; + base.On非活性化(); + } + + public override void OnManagedリソースの作成() + { + this.b再生済み = false; + this.soundClear = TJAPlayer3.Sound管理.tサウンドを生成する(CSkin.Path(@"Sounds\Clear.ogg"), ESoundGroup.SoundEffect); + this.soundFailed = TJAPlayer3.Sound管理.tサウンドを生成する(CSkin.Path(@"Sounds\Failed.ogg"), ESoundGroup.SoundEffect); + this.soundFullCombo = TJAPlayer3.Sound管理.tサウンドを生成する(CSkin.Path(@"Sounds\Full combo.ogg"), ESoundGroup.SoundEffect); + this.soundDondaFullCombo = TJAPlayer3.Sound管理.tサウンドを生成する(CSkin.Path(@"Sounds\Donda Full Combo.ogg"), ESoundGroup.SoundEffect); + base.OnManagedリソースの作成(); + } + + public override void OnManagedリソースの解放() + { + if (this.soundClear != null) + this.soundClear.t解放する(); + if (this.soundFailed != null) + this.soundFailed.t解放する(); + if (this.soundFullCombo != null) + this.soundFullCombo.t解放する(); + if (this.soundDondaFullCombo != null) + this.soundDondaFullCombo.t解放する(); + base.OnManagedリソースの解放(); + } + + #region [effects] + // ------------------------------------ + private void showEndEffect_Failed(int i) + { + int[] y = new int[] { 0, 176 }; + + this.ctEnd_ClearFailed.t進行(); + if (this.ctEnd_ClearFailed.n現在の値 <= 20) + { + TJAPlayer3.Tx.End_ClearFailed[this.ctEnd_ClearFailed.n現在の値].t2D描画(TJAPlayer3.app.Device, 505, y[i] + 145); + } + if (this.ctEnd_ClearFailed.n現在の値 >= 20 && this.ctEnd_ClearFailed.n現在の値 <= 67) + { + TJAPlayer3.Tx.ClearFailed.t2D描画(TJAPlayer3.app.Device, 502, y[i] + 192); + } + else if (this.ctEnd_ClearFailed.n現在の値 == 68) + { + TJAPlayer3.Tx.ClearFailed1.t2D描画(TJAPlayer3.app.Device, 502, y[i] + 192); + } + else if (this.ctEnd_ClearFailed.n現在の値 >= 69) + { + TJAPlayer3.Tx.ClearFailed2.t2D描画(TJAPlayer3.app.Device, 502, y[i] + 192); + } + } + private void showEndEffect_Clear(int i) + { + int[] y = new int[] { 210, 386 }; + #region[ 文字 ] + //登場アニメは20フレーム。うち最初の5フレームは半透過状態。 + float[] f文字拡大率 = new float[] { 1.04f, 1.11f, 1.15f, 1.19f, 1.23f, 1.26f, 1.30f, 1.31f, 1.32f, 1.32f, 1.32f, 1.30f, 1.30f, 1.26f, 1.25f, 1.19f, 1.15f, 1.11f, 1.05f, 1.0f }; + int[] n透明度 = new int[] { 43, 85, 128, 170, 213, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 }; + if (this.ct進行メイン.n現在の値 >= 17) + { + if (this.ct進行メイン.n現在の値 <= 36) + { + TJAPlayer3.Tx.End_Clear_Text_.vc拡大縮小倍率.Y = f文字拡大率[this.ct進行メイン.n現在の値 - 17]; + TJAPlayer3.Tx.End_Clear_Text_.Opacity = n透明度[this.ct進行メイン.n現在の値 - 17]; + TJAPlayer3.Tx.End_Clear_Text_.t2D描画(TJAPlayer3.app.Device, 634, (int)(y[i] - ((90 * f文字拡大率[this.ct進行メイン.n現在の値 - 17]) - 90)), new Rectangle(0, 0, 90, 90)); + } + else + { + TJAPlayer3.Tx.End_Clear_Text_.vc拡大縮小倍率.Y = 1.0f; + TJAPlayer3.Tx.End_Clear_Text_.t2D描画(TJAPlayer3.app.Device, 634, y[i], new Rectangle(0, 0, 90, 90)); + } + } + if (this.ct進行メイン.n現在の値 >= 19) + { + if (this.ct進行メイン.n現在の値 <= 38) + { + TJAPlayer3.Tx.End_Clear_Text_.vc拡大縮小倍率.Y = f文字拡大率[this.ct進行メイン.n現在の値 - 19]; + TJAPlayer3.Tx.End_Clear_Text_.Opacity = n透明度[this.ct進行メイン.n現在の値 - 19]; + TJAPlayer3.Tx.End_Clear_Text_.t2D描画(TJAPlayer3.app.Device, 692, (int)(y[i] - ((90 * f文字拡大率[this.ct進行メイン.n現在の値 - 19]) - 90)), new Rectangle(90, 0, 90, 90)); + } + else + { + TJAPlayer3.Tx.End_Clear_Text_.vc拡大縮小倍率.Y = 1.0f; + TJAPlayer3.Tx.End_Clear_Text_.t2D描画(TJAPlayer3.app.Device, 692, y[i], new Rectangle(90, 0, 90, 90)); + } + } + TJAPlayer3.Tx.End_Clear_Text_.vc拡大縮小倍率.Y = 1.0f; + if (this.ct進行メイン.n現在の値 >= 21) + { + if (this.ct進行メイン.n現在の値 <= 40) + { + TJAPlayer3.Tx.End_Clear_Text_.vc拡大縮小倍率.Y = f文字拡大率[this.ct進行メイン.n現在の値 - 21]; + TJAPlayer3.Tx.End_Clear_Text_.Opacity = n透明度[this.ct進行メイン.n現在の値 - 21]; + TJAPlayer3.Tx.End_Clear_Text_.t2D描画(TJAPlayer3.app.Device, 750, y[i] - (int)((90 * f文字拡大率[this.ct進行メイン.n現在の値 - 21]) - 90), new Rectangle(180, 0, 90, 90)); + } + else + { + TJAPlayer3.Tx.End_Clear_Text_.vc拡大縮小倍率.Y = 1.0f; + TJAPlayer3.Tx.End_Clear_Text_.t2D描画(TJAPlayer3.app.Device, 750, y[i], new Rectangle(180, 0, 90, 90)); + } + } + if (this.ct進行メイン.n現在の値 >= 23) + { + if (this.ct進行メイン.n現在の値 <= 42) + { + TJAPlayer3.Tx.End_Clear_Text_.vc拡大縮小倍率.Y = f文字拡大率[this.ct進行メイン.n現在の値 - 23]; + TJAPlayer3.Tx.End_Clear_Text_.Opacity = n透明度[this.ct進行メイン.n現在の値 - 23]; + TJAPlayer3.Tx.End_Clear_Text_.t2D描画(TJAPlayer3.app.Device, 819, y[i] - (int)((90 * f文字拡大率[this.ct進行メイン.n現在の値 - 23]) - 90), new Rectangle(270, 0, 90, 90)); + } + else + { + TJAPlayer3.Tx.End_Clear_Text_.vc拡大縮小倍率.Y = 1.0f; + TJAPlayer3.Tx.End_Clear_Text_.t2D描画(TJAPlayer3.app.Device, 819, y[i], new Rectangle(270, 0, 90, 90)); + } + } + if (this.ct進行メイン.n現在の値 >= 25) + { + if (this.ct進行メイン.n現在の値 <= 44) + { + TJAPlayer3.Tx.End_Clear_Text_.vc拡大縮小倍率.Y = f文字拡大率[this.ct進行メイン.n現在の値 - 25]; + TJAPlayer3.Tx.End_Clear_Text_.Opacity = n透明度[this.ct進行メイン.n現在の値 - 25]; + TJAPlayer3.Tx.End_Clear_Text_.t2D描画(TJAPlayer3.app.Device, 890, (y[i] + 2) - (int)((90 * f文字拡大率[this.ct進行メイン.n現在の値 - 25]) - 90), new Rectangle(360, 0, 90, 90)); + } + else + { + TJAPlayer3.Tx.End_Clear_Text_.vc拡大縮小倍率.Y = 1.0f; + TJAPlayer3.Tx.End_Clear_Text_.t2D描画(TJAPlayer3.app.Device, 890, y[i] + 2, new Rectangle(360, 0, 90, 90)); + } + } + if (this.ct進行メイン.n現在の値 >= 50 && this.ct進行メイン.n現在の値 < 90) + { + if (this.ct進行メイン.n現在の値 < 70) + { + TJAPlayer3.Tx.End_Clear_Text_Effect.Opacity = (this.ct進行メイン.n現在の値 - 50) * (255 / 20); + TJAPlayer3.Tx.End_Clear_Text_Effect.t2D描画(TJAPlayer3.app.Device, 634, y[i] - 2); + } + else + { + TJAPlayer3.Tx.End_Clear_Text_Effect.Opacity = 255 - ((this.ct進行メイン.n現在の値 - 70) * (255 / 20)); + TJAPlayer3.Tx.End_Clear_Text_Effect.t2D描画(TJAPlayer3.app.Device, 634, y[i] - 2); + } + } + #endregion + #region[ バチお ] + if (this.ct進行メイン.n現在の値 <= 11) + { + if (TJAPlayer3.Tx.End_Clear_L[1] != null) + { + TJAPlayer3.Tx.End_Clear_L[1].t2D描画(TJAPlayer3.app.Device, 697, y[i] - 30); + TJAPlayer3.Tx.End_Clear_L[1].Opacity = (int)(11.0 / this.ct進行メイン.n現在の値) * 255; + } + if (TJAPlayer3.Tx.End_Clear_R[1] != null) + { + TJAPlayer3.Tx.End_Clear_R[1].t2D描画(TJAPlayer3.app.Device, 738, y[i] - 30); + TJAPlayer3.Tx.End_Clear_R[1].Opacity = (int)(11.0 / this.ct進行メイン.n現在の値) * 255; + } + } + else if (this.ct進行メイン.n現在の値 <= 35) + { + if (TJAPlayer3.Tx.End_Clear_L[0] != null) + TJAPlayer3.Tx.End_Clear_L[0].t2D描画(TJAPlayer3.app.Device, 697 - (int)((this.ct進行メイン.n現在の値 - 12) * 10), y[i] - 30); + if (TJAPlayer3.Tx.End_Clear_R[0] != null) + TJAPlayer3.Tx.End_Clear_R[0].t2D描画(TJAPlayer3.app.Device, 738 + (int)((this.ct進行メイン.n現在の値 - 12) * 10), y[i] - 30); + } + else if (this.ct進行メイン.n現在の値 <= 46) + { + if (TJAPlayer3.Tx.End_Clear_L[0] != null) + { + //2016.07.16 kairera0467 またも原始的... + float[] fRet = new float[] { 1.0f, 0.99f, 0.98f, 0.97f, 0.96f, 0.95f, 0.96f, 0.97f, 0.98f, 0.99f, 1.0f }; + TJAPlayer3.Tx.End_Clear_L[0].t2D描画(TJAPlayer3.app.Device, 466, y[i] - 30); + TJAPlayer3.Tx.End_Clear_L[0].vc拡大縮小倍率 = new SlimDX.Vector3(fRet[this.ct進行メイン.n現在の値 - 36], 1.0f, 1.0f); + //CDTXMania.Tx.End_Clear_R[ 0 ].t2D描画( CDTXMania.app.Device, 956 + (( this.ct進行メイン.n現在の値 - 36 ) / 2), 180 ); + TJAPlayer3.Tx.End_Clear_R[0].t2D描画(TJAPlayer3.app.Device, 1136 - 180 * fRet[this.ct進行メイン.n現在の値 - 36], y[i] - 30); + TJAPlayer3.Tx.End_Clear_R[0].vc拡大縮小倍率 = new SlimDX.Vector3(fRet[this.ct進行メイン.n現在の値 - 36], 1.0f, 1.0f); + } + } + else if (this.ct進行メイン.n現在の値 <= 49) + { + if (TJAPlayer3.Tx.End_Clear_L[1] != null) + TJAPlayer3.Tx.End_Clear_L[1].t2D描画(TJAPlayer3.app.Device, 466, y[i] - 30); + if (TJAPlayer3.Tx.End_Clear_R[1] != null) + TJAPlayer3.Tx.End_Clear_R[1].t2D描画(TJAPlayer3.app.Device, 956, y[i] - 30); + } + else if (this.ct進行メイン.n現在の値 <= 54) + { + if (TJAPlayer3.Tx.End_Clear_L[2] != null) + TJAPlayer3.Tx.End_Clear_L[2].t2D描画(TJAPlayer3.app.Device, 466, y[i] - 30); + if (TJAPlayer3.Tx.End_Clear_R[2] != null) + TJAPlayer3.Tx.End_Clear_R[2].t2D描画(TJAPlayer3.app.Device, 956, y[i] - 30); + } + else if (this.ct進行メイン.n現在の値 <= 58) + { + if (TJAPlayer3.Tx.End_Clear_L[3] != null) + TJAPlayer3.Tx.End_Clear_L[3].t2D描画(TJAPlayer3.app.Device, 466, y[i] - 30); + if (TJAPlayer3.Tx.End_Clear_R[3] != null) + TJAPlayer3.Tx.End_Clear_R[3].t2D描画(TJAPlayer3.app.Device, 956, y[i] - 30); + } + else + { + if (TJAPlayer3.Tx.End_Clear_L[4] != null) + TJAPlayer3.Tx.End_Clear_L[4].t2D描画(TJAPlayer3.app.Device, 466, y[i] - 30); + if (TJAPlayer3.Tx.End_Clear_R[4] != null) + TJAPlayer3.Tx.End_Clear_R[4].t2D描画(TJAPlayer3.app.Device, 956, y[i] - 30); + } + #endregion + } + + private void showEndEffect_FullCombo(int i) + { + int[] y = new int[] { 0, 176 }; + + this.ctEnd_FullCombo.t進行(); + TJAPlayer3.Tx.End_FullCombo[this.ctEnd_FullCombo.n現在の値].t2D描画(TJAPlayer3.app.Device, 330, y[i] + 50); + if (this.ctEnd_FullCombo.b終了値に達した) + { + this.ctEnd_FullComboLoop.t進行Loop(); + TJAPlayer3.Tx.End_FullComboLoop[this.ctEnd_FullComboLoop.n現在の値].t2D描画(TJAPlayer3.app.Device, 330, y[i] + 196); + } + } + + private void showEndEffect_DondaFullCombo(int i) + { + int[] y = new int[] { 0, 176 }; + + this.ctEnd_DondaFullCombo.t進行(); + if (this.ctEnd_DondaFullCombo.n現在の値 >= 34) TJAPlayer3.Tx.End_DondaFullComboBg.t2D描画(TJAPlayer3.app.Device, 332, y[i] + 192); + TJAPlayer3.Tx.End_DondaFullCombo[this.ctEnd_DondaFullCombo.n現在の値].t2D描画(TJAPlayer3.app.Device, 330, y[i] + 50); + + /* + if (this.ctEnd_DondaFullCombo.b終了値に達した) + { + this.ctEnd_DondaFullComboLoop.t進行Loop(); + TJAPlayer3.Tx.End_DondaFullComboLoop[this.ctEnd_DondaFullComboLoop.n現在の値].t2D描画(TJAPlayer3.app.Device, 330, 196); + } + */ + } + // ------------------------------------ + #endregion + + public override int On進行描画() + { + if (base.b初めての進行描画) + { + base.b初めての進行描画 = false; + } + if (this.ct進行メイン != null && (TJAPlayer3.stage演奏ドラム画面.eフェーズID == CStage.Eフェーズ.演奏_演奏終了演出 || TJAPlayer3.stage演奏ドラム画面.eフェーズID == CStage.Eフェーズ.演奏_STAGE_CLEAR_フェードアウト)) + { + this.ct進行メイン.t進行(); + + //CDTXMania.act文字コンソール.tPrint( 0, 0, C文字コンソール.Eフォント種別.灰, this.ct進行メイン.n現在の値.ToString() ); + //仮置き + for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) + { + switch (this.Mode[i]) + { + case EndMode.StageFailed: + //this.ct進行メイン.n現在の値 = 18; + if (this.soundFailed != null && !this.b再生済み) + { + this.soundFailed.t再生を開始する(); + this.b再生済み = true; + } + this.showEndEffect_Failed(i); + break; + case EndMode.StageCleared: + //this.ct進行メイン.n現在の値 = 18; + if (this.soundClear != null && !this.b再生済み) + { + this.soundClear.t再生を開始する(); + this.b再生済み = true; + } + this.showEndEffect_Clear(i); + break; + case EndMode.StageFullCombo: + //this.ct進行メイン.n現在の値 = 18; + if (this.soundFullCombo != null && !this.b再生済み) + { + this.soundFullCombo.t再生を開始する(); + this.b再生済み = true; + } + this.showEndEffect_FullCombo(i); + break; + case EndMode.StageDondaFullCombo: + //this.ct進行メイン.n現在の値 = 18; + if (this.soundDondaFullCombo != null && !this.b再生済み) + { + this.soundDondaFullCombo.t再生を開始する(); + this.b再生済み = true; + } + this.showEndEffect_DondaFullCombo(i); + break; + default: + break; + } + + } + + + + if (this.ct進行メイン.b終了値に達した) + { + return 1; + } + } + + return 0; + } + + #region[ private ] + //----------------- + bool b再生済み; + bool bリザルトボイス再生済み; + CCounter ct進行メイン; + + CCounter ctEnd_ClearFailed; + CCounter ctEnd_FullCombo; + CCounter ctEnd_FullComboLoop; + CCounter ctEnd_DondaFullCombo; + CCounter ctEnd_DondaFullComboLoop; + + CCounter ct進行Loop; + CSound soundClear; + CSound soundFailed; + CSound soundFullCombo; + CSound soundDondaFullCombo; + EndMode[] Mode; + enum EndMode + { + StageFailed, + StageCleared, + StageFullCombo, + StageDondaFullCombo + } + + void StarDraw(int x, int y, int count, int starttime = 0, int Endtime = 20) + { + if (count >= 0 && count <= Endtime) + { + count += starttime; + + if (count <= 11) + { + TJAPlayer3.Tx.End_Star.vc拡大縮小倍率.X = count * 0.09f; + TJAPlayer3.Tx.End_Star.vc拡大縮小倍率.Y = count * 0.09f; + TJAPlayer3.Tx.End_Star.Opacity = 255; + TJAPlayer3.Tx.End_Star.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, x, y); + } + else if (count <= 20) + { + TJAPlayer3.Tx.End_Star.vc拡大縮小倍率.X = 1.0f; + TJAPlayer3.Tx.End_Star.vc拡大縮小倍率.Y = 1.0f; + TJAPlayer3.Tx.End_Star.Opacity = (int)(255 - (255.0f / 9.0f) * (count - 11)); + TJAPlayer3.Tx.End_Star.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, x, y); + } + } + } + + //----------------- + #endregion + } +} diff --git a/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drums特訓モード.cs b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drums特訓モード.cs new file mode 100644 index 00000000..8125eb13 --- /dev/null +++ b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drums特訓モード.cs @@ -0,0 +1,601 @@ +using FDK; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Diagnostics; +using System.Drawing; + +namespace TJAPlayer3 +{ + class CAct演奏Drums特訓モード : CActivity + { + public CAct演奏Drums特訓モード() + { + base.b活性化してない = true; + } + + public override void On活性化() + { + this.n現在の小節線 = 0; + this.b特訓PAUSE = false; + this.n最終演奏位置ms = 0; + + base.On活性化(); + + CDTX dTX = TJAPlayer3.DTX; + + var measureCount = 1; + var bIsInGoGo = false; + + int endtime = 1; + int bgmlength = 1; + + for (int index = 0; index < TJAPlayer3.DTX.listChip.Count; index++) + { + if (TJAPlayer3.DTX.listChip[index].nチャンネル番号 == 0xff) + { + endtime = TJAPlayer3.DTX.listChip[index].n発声時刻ms; + break; + } + } + for (int index = 0; index < TJAPlayer3.DTX.listChip.Count; index++) + { + if (TJAPlayer3.DTX.listChip[index].nチャンネル番号 == 0x01) + { + bgmlength = TJAPlayer3.DTX.listChip[index].GetDuration() + TJAPlayer3.DTX.listChip[index].n発声時刻ms; + break; + } + } + + length = Math.Max(endtime, bgmlength); + + gogoXList = new List(); + JumpPointList = new List(); + + for (int i = 0; i < dTX.listChip.Count; i++) + { + CDTX.CChip pChip = dTX.listChip[i]; + + if (pChip.n整数値_内部番号 > measureCount && pChip.nチャンネル番号 == 0x50) measureCount = pChip.n整数値_内部番号; + + if (pChip.nチャンネル番号 == 0x9E && !bIsInGoGo) + { + bIsInGoGo = true; + + var current = ((double)(pChip.db発声時刻ms * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0))); + var width = 0; + if (TJAPlayer3.Tx.Tokkun_ProgressBar != null) width = TJAPlayer3.Tx.Tokkun_ProgressBar.szテクスチャサイズ.Width; + + this.gogoXList.Add((int)(width * (current / length))); + } + if (pChip.nチャンネル番号 == 0x9F && bIsInGoGo) + { + bIsInGoGo = false; + } + } + + this.n小節の総数 = measureCount; + } + + public override void On非活性化() + { + length = 1; + gogoXList = null; + JumpPointList = null; + base.On非活性化(); + } + + public override void OnManagedリソースの作成() + { + if (!base.b活性化してない) + { + if (TJAPlayer3.Tx.Tokkun_Background_Up != null) this.ct背景スクロールタイマー = new CCounter(1, TJAPlayer3.Tx.Tokkun_Background_Up.szテクスチャサイズ.Width, 16, TJAPlayer3.Timer); + base.OnManagedリソースの作成(); + } + } + + public override void OnManagedリソースの解放() + { + if (!base.b活性化してない) + { + this.ctスクロールカウンター = null; + this.ct背景スクロールタイマー = null; + base.OnManagedリソースの解放(); + } + } + + public override int On進行描画() + { + if (!base.b活性化してない) + { + if (base.b初めての進行描画) + { + base.b初めての進行描画 = false; + } + + TJAPlayer3.act文字コンソール.tPrint(0, 0, C文字コンソール.Eフォント種別.白, "TRAINING MODE (BETA)"); + + if (TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.Space)|| TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RRed2P)) + { + if (this.b特訓PAUSE) + { + TJAPlayer3.Skin.sound特訓再生音.t再生する(); + this.t演奏を再開する(); + } + else + { + TJAPlayer3.Skin.sound特訓停止音.t再生する(); + this.t演奏を停止する(); + } + } + if (TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.LeftArrow) || TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LBlue)) + { + if (this.b特訓PAUSE) + { + if (this.n現在の小節線 > 1) + { + this.n現在の小節線--; + TJAPlayer3.stage演奏ドラム画面.actPlayInfo.NowMeasure[0] = this.n現在の小節線; + + this.t譜面の表示位置を合わせる(true); + TJAPlayer3.Skin.sound特訓スクロール音.t再生する(); + } + if (t配列の値interval以下か(ref this.LBlue, CSound管理.rc演奏用タイマ.nシステム時刻ms, TJAPlayer3.ConfigIni.TokkunMashInterval)) + { + for (int index = this.JumpPointList.Count - 1; index >= 0; index--) + { + if (this.JumpPointList[index].Time <= CSound管理.rc演奏用タイマ.n現在時刻ms * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)) + { + this.n現在の小節線 = this.JumpPointList[index].Measure; + TJAPlayer3.stage演奏ドラム画面.actPlayInfo.NowMeasure[0] = this.n現在の小節線; + TJAPlayer3.Skin.sound特訓スキップ音.t再生する(); + this.t譜面の表示位置を合わせる(false); + break; + } + } + } + } + } + if (TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.PageDown)) + { + if (this.b特訓PAUSE) + { + this.n現在の小節線 -= TJAPlayer3.ConfigIni.TokkunSkipMeasures; + if (this.n現在の小節線 <= 0) + this.n現在の小節線 = 1; + + TJAPlayer3.stage演奏ドラム画面.actPlayInfo.NowMeasure[0] = this.n現在の小節線; + + this.t譜面の表示位置を合わせる(true); + TJAPlayer3.Skin.sound特訓スクロール音.t再生する(); + } + } + if (TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.RightArrow) || TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RBlue)) + { + if (this.b特訓PAUSE) + { + if (this.n現在の小節線 < this.n小節の総数) + { + this.n現在の小節線++; + TJAPlayer3.stage演奏ドラム画面.actPlayInfo.NowMeasure[0] = this.n現在の小節線; + + this.t譜面の表示位置を合わせる(true); + TJAPlayer3.Skin.sound特訓スクロール音.t再生する(); + } + if (t配列の値interval以下か(ref this.RBlue, CSound管理.rc演奏用タイマ.nシステム時刻ms, TJAPlayer3.ConfigIni.TokkunMashInterval)) + { + for (int index = 0; index < this.JumpPointList.Count; index++) + { + if (this.JumpPointList[index].Time >= CSound管理.rc演奏用タイマ.n現在時刻ms * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)) + { + this.n現在の小節線 = this.JumpPointList[index].Measure; + TJAPlayer3.stage演奏ドラム画面.actPlayInfo.NowMeasure[0] = this.n現在の小節線; + TJAPlayer3.Skin.soundSkip.t再生する(); + this.t譜面の表示位置を合わせる(false); + break; + } + } + } + + } + } + if (TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.PageUp)) + { + if (this.b特訓PAUSE) + { + this.n現在の小節線 += TJAPlayer3.ConfigIni.TokkunSkipMeasures; + if (this.n現在の小節線 > this.n小節の総数) + this.n現在の小節線 = this.n小節の総数; + + TJAPlayer3.stage演奏ドラム画面.actPlayInfo.NowMeasure[0] = this.n現在の小節線; + + this.t譜面の表示位置を合わせる(true); + TJAPlayer3.Skin.sound特訓スクロール音.t再生する(); + } + } + if (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LBlue2P)) + { + if (this.b特訓PAUSE) + { + if (TJAPlayer3.ConfigIni.n演奏速度 > 6) + { + TJAPlayer3.ConfigIni.n演奏速度 = TJAPlayer3.ConfigIni.n演奏速度 - 2; + this.t譜面の表示位置を合わせる(false); + } + } + } + if (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RBlue2P)) + { + if (this.b特訓PAUSE) + { + if (TJAPlayer3.ConfigIni.n演奏速度 < 399) + { + TJAPlayer3.ConfigIni.n演奏速度 = TJAPlayer3.ConfigIni.n演奏速度 + 2; + this.t譜面の表示位置を合わせる(false); + } + } + } + if (TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.Home)) + { + if (this.b特訓PAUSE) + { + if (this.n現在の小節線 > 1) + { + this.n現在の小節線 = 1; + TJAPlayer3.stage演奏ドラム画面.actPlayInfo.NowMeasure[0] = this.n現在の小節線; + + this.t譜面の表示位置を合わせる(true); + TJAPlayer3.Skin.sound特訓スクロール音.t再生する(); + } + } + } + if (TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.End)) + { + if (this.b特訓PAUSE) + { + if (this.n現在の小節線 < this.n小節の総数) + { + this.n現在の小節線 = this.n小節の総数; + TJAPlayer3.stage演奏ドラム画面.actPlayInfo.NowMeasure[0] = this.n現在の小節線; + + this.t譜面の表示位置を合わせる(true); + TJAPlayer3.Skin.sound特訓スクロール音.t再生する(); + } + } + } + if (TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.A)) + this.t現在の位置にジャンプポイントを設定する(); + + if (this.bスクロール中) + { + CSound管理.rc演奏用タイマ.n現在時刻ms = easing.EaseOut(this.ctスクロールカウンター, (int)this.nスクロール前ms, (int)this.nスクロール後ms, Easing.CalcType.Circular); + + this.ctスクロールカウンター.t進行(); + + if ((int)CSound管理.rc演奏用タイマ.n現在時刻ms == (int)this.nスクロール後ms) + { + this.bスクロール中 = false; + CSound管理.rc演奏用タイマ.n現在時刻ms = this.nスクロール後ms; + } + } + if (!this.b特訓PAUSE) + { + if (this.n現在の小節線 < TJAPlayer3.stage演奏ドラム画面.actPlayInfo.NowMeasure[0]) + { + this.n現在の小節線 = TJAPlayer3.stage演奏ドラム画面.actPlayInfo.NowMeasure[0]; + } + + if (CSound管理.rc演奏用タイマ.n現在時刻ms * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0) > this.n最終演奏位置ms) + { + this.n最終演奏位置ms = (long)(CSound管理.rc演奏用タイマ.n現在時刻ms * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)); + } + } + + } + + var current = (double)(CSound管理.rc演奏用タイマ.n現在時刻ms * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)); + var percentage = current / length; + + var currentWhite = (double)(this.n最終演奏位置ms); + var percentageWhite = currentWhite / length; + + if (TJAPlayer3.Tx.Tokkun_ProgressBarWhite != null) TJAPlayer3.Tx.Tokkun_ProgressBarWhite.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Training_ProgressBar_XY[0], TJAPlayer3.Skin.Game_Training_ProgressBar_XY[1], new Rectangle(1, 1, (int)(TJAPlayer3.Tx.Tokkun_ProgressBarWhite.szテクスチャサイズ.Width * percentageWhite), TJAPlayer3.Tx.Tokkun_ProgressBarWhite.szテクスチャサイズ.Height)); + if (TJAPlayer3.Tx.Tokkun_ProgressBar != null) TJAPlayer3.Tx.Tokkun_ProgressBar.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Training_ProgressBar_XY[0], TJAPlayer3.Skin.Game_Training_ProgressBar_XY[1], new Rectangle(1, 1, (int)(TJAPlayer3.Tx.Tokkun_ProgressBar.szテクスチャサイズ.Width * percentage), TJAPlayer3.Tx.Tokkun_ProgressBar.szテクスチャサイズ.Height)); + if (TJAPlayer3.Tx.Tokkun_GoGoPoint != null) + { + foreach (int xpos in gogoXList) + { + TJAPlayer3.Tx.Tokkun_GoGoPoint.t2D描画(TJAPlayer3.app.Device, xpos + TJAPlayer3.Skin.Game_Training_ProgressBar_XY[0] - (TJAPlayer3.Tx.Tokkun_GoGoPoint.szテクスチャサイズ.Width / 2), TJAPlayer3.Skin.Game_Training_GoGoPoint_Y); + } + } + + if (TJAPlayer3.Tx.Tokkun_JumpPoint != null) + { + foreach (STJUMPP xpos in JumpPointList) + { + var width = 0; + if (TJAPlayer3.Tx.Tokkun_ProgressBar != null) width = TJAPlayer3.Tx.Tokkun_ProgressBar.szテクスチャサイズ.Width; + + int x = (int)((double)width * ((double)xpos.Time / (double)length)); + TJAPlayer3.Tx.Tokkun_JumpPoint.t2D描画(TJAPlayer3.app.Device, x + TJAPlayer3.Skin.Game_Training_ProgressBar_XY[0] - (TJAPlayer3.Tx.Tokkun_JumpPoint.szテクスチャサイズ.Width / 2), TJAPlayer3.Skin.Game_Training_JumpPoint_Y); + } + } + + return base.On進行描画(); + } + + public int On進行描画_背景() + { + if (this.ct背景スクロールタイマー != null) + { + this.ct背景スクロールタイマー.t進行Loop(); + + double TexSize = 1280 / TJAPlayer3.Tx.Tokkun_Background_Up.szテクスチャサイズ.Width; + // 1280をテクスチャサイズで割ったものを切り上げて、プラス+1足す。 + int ForLoop = (int)Math.Ceiling(TexSize) + 1; + TJAPlayer3.Tx.Tokkun_Background_Up.t2D描画(TJAPlayer3.app.Device, 0 - this.ct背景スクロールタイマー.n現在の値, TJAPlayer3.Skin.Background_Scroll_Y[0]); + for (int l = 1; l < ForLoop + 1; l++) + { + TJAPlayer3.Tx.Tokkun_Background_Up.t2D描画(TJAPlayer3.app.Device, +(l * TJAPlayer3.Tx.Tokkun_Background_Up.szテクスチャサイズ.Width) - this.ct背景スクロールタイマー.n現在の値, TJAPlayer3.Skin.Background_Scroll_Y[0]); + } + } + + if (TJAPlayer3.Tx.Tokkun_DownBG != null) TJAPlayer3.Tx.Tokkun_DownBG.t2D描画(TJAPlayer3.app.Device, 0, 360); + if (TJAPlayer3.Tx.Tokkun_BigTaiko != null) TJAPlayer3.Tx.Tokkun_BigTaiko.t2D描画(TJAPlayer3.app.Device, 334, 400); + + return base.On進行描画(); + } + + public void On進行描画_小節_速度() + { + if (TJAPlayer3.Tx.Tokkun_Speed_Measure != null) + TJAPlayer3.Tx.Tokkun_Speed_Measure.t2D描画(TJAPlayer3.app.Device, 0, 360); + var maxMeasureStr = this.n小節の総数.ToString(); + var measureStr = TJAPlayer3.stage演奏ドラム画面.actPlayInfo.NowMeasure[0].ToString(); + if (TJAPlayer3.Tx.Tokkun_SmallNumber != null) + { + var x = TJAPlayer3.Skin.Game_Training_MaxMeasureCount_XY[0]; + foreach (char c in maxMeasureStr) + { + var currentNum = int.Parse(c.ToString()); + TJAPlayer3.Tx.Tokkun_SmallNumber.t2D描画(TJAPlayer3.app.Device, x, TJAPlayer3.Skin.Game_Training_MaxMeasureCount_XY[1], new Rectangle(TJAPlayer3.Skin.Game_Training_SmallNumber_Width * currentNum, 0, TJAPlayer3.Skin.Game_Training_SmallNumber_Width, TJAPlayer3.Tx.Tokkun_SmallNumber.szテクスチャサイズ.Height)); + x += TJAPlayer3.Skin.Game_Training_SmallNumber_Width - 2; + } + } + + var subtractVal = (TJAPlayer3.Skin.Game_Training_BigNumber_Width - 2) * (measureStr.Length - 1); + + if (TJAPlayer3.Tx.Tokkun_BigNumber != null) + { + var x = TJAPlayer3.Skin.Game_Training_CurrentMeasureCount_XY[0]; + foreach (char c in measureStr) + { + var currentNum = int.Parse(c.ToString()); + TJAPlayer3.Tx.Tokkun_BigNumber.t2D描画(TJAPlayer3.app.Device, x - subtractVal, TJAPlayer3.Skin.Game_Training_CurrentMeasureCount_XY[1], new Rectangle(TJAPlayer3.Skin.Game_Training_BigNumber_Width * currentNum, 0, TJAPlayer3.Skin.Game_Training_BigNumber_Width, TJAPlayer3.Tx.Tokkun_BigNumber.szテクスチャサイズ.Height)); + x += TJAPlayer3.Skin.Game_Training_BigNumber_Width - 2; + } + + var PlaySpdtmp = TJAPlayer3.ConfigIni.n演奏速度 / 20.0d * 10.0d; + PlaySpdtmp = Math.Round(PlaySpdtmp, MidpointRounding.AwayFromZero); + + var playSpd = PlaySpdtmp / 10.0d; + var playSpdI = playSpd - (int)playSpd; + var playSpdStr = Decimal.Round((decimal)playSpdI, 1, MidpointRounding.AwayFromZero).ToString(); + var decimalStr = (playSpdStr == "0") ? "0" : playSpdStr[2].ToString(); + + TJAPlayer3.Tx.Tokkun_BigNumber.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Training_SpeedDisplay_XY[0], TJAPlayer3.Skin.Game_Training_SpeedDisplay_XY[1], new Rectangle(TJAPlayer3.Skin.Game_Training_BigNumber_Width * int.Parse(decimalStr), 0, TJAPlayer3.Skin.Game_Training_BigNumber_Width, TJAPlayer3.Tx.Tokkun_BigNumber.szテクスチャサイズ.Height)); + + x = TJAPlayer3.Skin.Game_Training_SpeedDisplay_XY[0] - 25; + + subtractVal = TJAPlayer3.Skin.Game_Training_BigNumber_Width * (((int)playSpd).ToString().Length - 1); + + foreach (char c in ((int)playSpd).ToString()) + { + var currentNum = int.Parse(c.ToString()); + TJAPlayer3.Tx.Tokkun_BigNumber.t2D描画(TJAPlayer3.app.Device, x - subtractVal, TJAPlayer3.Skin.Game_Training_SpeedDisplay_XY[1], new Rectangle(TJAPlayer3.Skin.Game_Training_BigNumber_Width * currentNum, 0, TJAPlayer3.Skin.Game_Training_BigNumber_Width, TJAPlayer3.Tx.Tokkun_BigNumber.szテクスチャサイズ.Height)); + x += TJAPlayer3.Skin.Game_Training_BigNumber_Width - 2; + } + } + } + + public void t演奏を停止する() + { + CDTX dTX = TJAPlayer3.DTX; + + this.nスクロール後ms = CSound管理.rc演奏用タイマ.n現在時刻ms; + + TJAPlayer3.stage演奏ドラム画面.On活性化(); + CSound管理.rc演奏用タイマ.t一時停止(); + + for (int i = 0; i < dTX.listChip.Count; i++) + { + CDTX.CChip pChip = dTX.listChip[i]; + pChip.bHit = false; + if (dTX.listChip[i].nチャンネル番号 != 0x50) + { + pChip.bShow = true; + pChip.b可視 = true; + } + } + + TJAPlayer3.DTX.t全チップの再生一時停止(); + TJAPlayer3.stage演奏ドラム画面.bPAUSE = true; + TJAPlayer3.stage演奏ドラム画面.actPlayInfo.NowMeasure[0] = this.n現在の小節線; + this.b特訓PAUSE = true; + + this.t譜面の表示位置を合わせる(false); + } + + public void t演奏を再開する() + { + CDTX dTX = TJAPlayer3.DTX; + + this.bスクロール中 = false; + CSound管理.rc演奏用タイマ.n現在時刻ms = this.nスクロール後ms; + + int n演奏開始Chip = TJAPlayer3.stage演奏ドラム画面.n現在のトップChip; + int finalStartBar; + + finalStartBar = this.n現在の小節線 - 2; + if (finalStartBar < 0) finalStartBar = 0; + + TJAPlayer3.stage演奏ドラム画面.t演奏位置の変更(finalStartBar, 0); + + + int n少し戻ってから演奏開始Chip = TJAPlayer3.stage演奏ドラム画面.n現在のトップChip; + + TJAPlayer3.stage演奏ドラム画面.actPlayInfo.NowMeasure[0] = 0; + TJAPlayer3.stage演奏ドラム画面.t数値の初期化(true, true); + TJAPlayer3.stage演奏ドラム画面.On活性化(); + + for (int i = 0; i < dTX.listChip.Count; i++) + { + if (i < n演奏開始Chip && (dTX.listChip[i].nチャンネル番号 > 0x10 && dTX.listChip[i].nチャンネル番号 < 0x20)) //2020.07.08 ノーツだけ消す。 null参照回避のために順番変更 + { + dTX.listChip[i].bHit = true; + dTX.listChip[i].IsHitted = true; + dTX.listChip[i].b可視 = false; + dTX.listChip[i].bShow = false; + } + if (i < n少し戻ってから演奏開始Chip && dTX.listChip[i].nチャンネル番号 == 0x01) + { + dTX.listChip[i].bHit = true; + dTX.listChip[i].IsHitted = true; + dTX.listChip[i].b可視 = false; + dTX.listChip[i].bShow = false; + } + if (dTX.listChip[i].nチャンネル番号 == 0x50 && dTX.listChip[i].n整数値_内部番号 < finalStartBar) + { + dTX.listChip[i].bHit = true; + dTX.listChip[i].IsHitted = true; + } + + } + + for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) + { + TJAPlayer3.stage演奏ドラム画面.chip現在処理中の連打チップ[i] = null; + } + + this.b特訓PAUSE = false; + } + + public void t譜面の表示位置を合わせる(bool doScroll) + { + this.nスクロール前ms = CSound管理.rc演奏用タイマ.n現在時刻ms; + + CDTX dTX = TJAPlayer3.DTX; + + bool bSuccessSeek = false; + for (int i = 0; i < dTX.listChip.Count; i++) + { + CDTX.CChip pChip = dTX.listChip[i]; + + if (pChip.nチャンネル番号 == 0x50 && pChip.n整数値_内部番号 > n現在の小節線 - 1) + { + bSuccessSeek = true; + TJAPlayer3.stage演奏ドラム画面.n現在のトップChip = i; + break; + } + } + if (!bSuccessSeek) + { + TJAPlayer3.stage演奏ドラム画面.n現在のトップChip = 0; + } + else + { + while (dTX.listChip[TJAPlayer3.stage演奏ドラム画面.n現在のトップChip].n発声時刻ms == dTX.listChip[TJAPlayer3.stage演奏ドラム画面.n現在のトップChip - 1].n発声時刻ms && TJAPlayer3.stage演奏ドラム画面.n現在のトップChip != 0) + TJAPlayer3.stage演奏ドラム画面.n現在のトップChip--; + } + + if (doScroll) + { + this.nスクロール後ms = (long)(dTX.listChip[TJAPlayer3.stage演奏ドラム画面.n現在のトップChip].n発声時刻ms / (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)); + this.bスクロール中 = true; + + this.ctスクロールカウンター = new CCounter(0, TJAPlayer3.Skin.Game_Training_ScrollTime, 1, TJAPlayer3.Timer); + } + else + { + CSound管理.rc演奏用タイマ.n現在時刻ms = (long)(dTX.listChip[TJAPlayer3.stage演奏ドラム画面.n現在のトップChip].n発声時刻ms / (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)); + this.nスクロール後ms = CSound管理.rc演奏用タイマ.n現在時刻ms; + } + } + + public void t現在の位置にジャンプポイントを設定する() + { + if (!this.bスクロール中 && this.b特訓PAUSE) + { + if (!JumpPointList.Contains(new STJUMPP() { Time = (long)(CSound管理.rc演奏用タイマ.n現在時刻ms * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)), Measure = this.n現在の小節線 })) + JumpPointList.Add(new STJUMPP() { Time = (long)(CSound管理.rc演奏用タイマ.n現在時刻ms * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)), Measure = this.n現在の小節線 }); + TJAPlayer3.Skin.sound特訓ジャンプポイント.t再生する(); + JumpPointList.Sort((a, b) => a.Time.CompareTo(b.Time)); + } + } + + private bool t配列の値interval以下か(ref long[] array, long num, int interval) + { + long[] arraytmp = array; + for (int index = 0; index < (array.Length - 1); index++) + { + array[index] = array[index + 1]; + } + array[array.Length - 1] = num; + return Math.Abs(num - arraytmp[0]) <= interval; + } + + public int n現在の小節線; + public int n小節の総数; + + #region [private] + private long nスクロール前ms; + private long nスクロール後ms; + private long n最終演奏位置ms; + + private bool b特訓PAUSE; + private bool bスクロール中; + + private CCounter ctスクロールカウンター; + private CCounter ct背景スクロールタイマー; + private Easing easing = new Easing(); + private long length = 1; + + private List gogoXList; + private List JumpPointList; + private long[] LBlue = new long[] { 0, 0, 0, 0, 0 }; + private long[] RBlue = new long[] { 0, 0, 0, 0, 0 }; + + private struct STJUMPP + { + public long Time; + public int Measure; + } + + /// + /// + /// + /// 今の時間 + /// 最初の値 + /// 最終の値-最初の値 + /// 全体の時間 + /// + private int EasingCircular(int time, int begin, int change, int duration) + { + double t = time, b = begin, c = change, d = duration; + + t = t / d * 2; + if (t < 1) + return (int)(-c / 2 * (Math.Sqrt(1 - t * t) - 1) + b); + else + { + t = t - 2; + return (int)(c / 2 * (Math.Sqrt(1 - t * t) + 1) + b); + } + } + + #endregion + } +} + diff --git a/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drums背景.cs b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drums背景.cs new file mode 100644 index 00000000..d9049de6 --- /dev/null +++ b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drums背景.cs @@ -0,0 +1,371 @@ +using System; +using FDK; + +namespace TJAPlayer3 +{ + internal class CAct演奏Drums背景 : CActivity + { + // 本家っぽい背景を表示させるメソッド。 + // + // 拡張性とかないんで。はい、ヨロシクゥ! + // + public CAct演奏Drums背景() + { + base.b活性化してない = true; + } + + public void tFadeIn(int player) + { + this.ct上背景クリアインタイマー[player] = new CCounter(0, 100, 2, TJAPlayer3.Timer); + this.eFadeMode = EFIFOモード.フェードイン; + } + + //public void tFadeOut(int player) + //{ + // this.ct上背景フェードタイマー[player] = new CCounter( 0, 100, 6, CDTXMania.Timer ); + // this.eFadeMode = EFIFOモード.フェードアウト; + //} + + public void ClearIn(int player) + { + this.ct上背景クリアインタイマー[player] = new CCounter(0, 100, 2, TJAPlayer3.Timer); + this.ct上背景クリアインタイマー[player].n現在の値 = 0; + this.ct上背景FIFOタイマー = new CCounter(0, 100, 2, TJAPlayer3.Timer); + this.ct上背景FIFOタイマー.n現在の値 = 0; + } + + public override void On活性化() + { + base.On活性化(); + } + + public override void On非活性化() + { + TJAPlayer3.t安全にDisposeする(ref this.ct上背景FIFOタイマー); + for (int i = 0; i < 2; i++) + { + ct上背景スクロール用タイマー1st[i] = null; + ct上背景スクロール用タイマー2nd[i] = null; + ct上背景スクロール用タイマー3rd[i] = null; + } + TJAPlayer3.t安全にDisposeする(ref this.ct下背景スクロール用タイマー1); + base.On非活性化(); + } + + public override void OnManagedリソースの作成() + { + this.ct上背景スクロール用タイマー1st = new CCounter[2]; + this.ct上背景スクロール用タイマー2nd = new CCounter[2]; + this.ct上背景スクロール用タイマー3rd = new CCounter[2]; + this.ct上背景クリアインタイマー = new CCounter[2]; + ct上背景スクロール用タイマー1stDan = new CCounter[4]; + + for (int i = 0; i < 2; i++) + { + if (TJAPlayer3.Tx.Background_Up_3rd[i] != null) + { + this.ct上背景スクロール用タイマー1st[i] = new CCounter(1, TJAPlayer3.Tx.Background_Up_1st[i].szテクスチャサイズ.Width, 16, TJAPlayer3.Timer); + this.ct上背景スクロール用タイマー2nd[i] = new CCounter(1, TJAPlayer3.Tx.Background_Up_2nd[i].szテクスチャサイズ.Height, 70, TJAPlayer3.Timer); + this.ct上背景スクロール用タイマー3rd[i] = new CCounter(1, 600, 3, TJAPlayer3.Timer); + this.ct上背景クリアインタイマー[i] = new CCounter(); + } + } + + this.ct上背景スクロール用タイマー1stDan[0] = new CCounter(0, TJAPlayer3.Tx.Background_Up_Dan[1].szテクスチャサイズ.Width, 8.453f * 2, TJAPlayer3.Timer); + this.ct上背景スクロール用タイマー1stDan[1] = new CCounter(0, TJAPlayer3.Tx.Background_Up_Dan[2].szテクスチャサイズ.Width, 10.885f * 2, TJAPlayer3.Timer); + this.ct上背景スクロール用タイマー1stDan[2] = new CCounter(0, TJAPlayer3.Tx.Background_Up_Dan[3].szテクスチャサイズ.Width, 11.4f * 2, TJAPlayer3.Timer); + this.ct上背景スクロール用タイマー1stDan[3] = new CCounter(0, TJAPlayer3.Tx.Background_Up_Dan[5].szテクスチャサイズ.Width, 33.88f, TJAPlayer3.Timer); + this.ct上背景スクロール用タイマー2stDan = new CCounter(0, TJAPlayer3.Tx.Background_Up_Dan[4].szテクスチャサイズ.Width + 200, 10, TJAPlayer3.Timer); + + if (TJAPlayer3.Tx.Background_Down_Scroll != null) + this.ct下背景スクロール用タイマー1 = new CCounter(1, TJAPlayer3.Tx.Background_Down_Scroll.szテクスチャサイズ.Width, 4, TJAPlayer3.Timer); + + this.ct上背景FIFOタイマー = new CCounter(); + base.OnManagedリソースの作成(); + } + + public override void OnManagedリソースの解放() + { + //CDTXMania.tテクスチャの解放( ref this.tx上背景メイン ); + //CDTXMania.tテクスチャの解放( ref this.tx上背景クリアメイン ); + //CDTXMania.tテクスチャの解放( ref this.tx下背景メイン ); + //CDTXMania.tテクスチャの解放( ref this.tx下背景クリアメイン ); + //CDTXMania.tテクスチャの解放( ref this.tx下背景クリアサブ1 ); + //Trace.TraceInformation("CActDrums背景 リソースの開放"); + base.OnManagedリソースの解放(); + } + + public override int On進行描画() + { + this.ct上背景FIFOタイマー.t進行(); + + for (int i = 0; i < 2; i++) + { + if (this.ct上背景クリアインタイマー[i] != null) + this.ct上背景クリアインタイマー[i].t進行(); + } + for (int i = 0; i < 2; i++) + { + if (this.ct上背景スクロール用タイマー1st[i] != null) + this.ct上背景スクロール用タイマー1st[i].t進行Loop(); + } + for (int i = 0; i < 2; i++) + { + if (this.ct上背景スクロール用タイマー2nd[i] != null) + this.ct上背景スクロール用タイマー2nd[i].t進行Loop(); + } + for (int i = 0; i < 2; i++) + { + if (this.ct上背景スクロール用タイマー3rd[i] != null) + this.ct上背景スクロール用タイマー3rd[i].t進行Loop(); + } + for (int i = 0; i < 4; i++) + { + if (this.ct上背景スクロール用タイマー1stDan[i] != null) + this.ct上背景スクロール用タイマー1stDan[i].t進行Loop(); + } + if (this.ct下背景スクロール用タイマー1 != null) + this.ct下背景スクロール用タイマー1.t進行Loop(); + + if (this.ct上背景スクロール用タイマー2stDan != null) + this.ct上背景スクロール用タイマー2stDan.t進行Loop(); + + #region 1P-2P-上背景 + + if(TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Dan) + { + #region [ 通常背景 ] + + for (int i = 0; i < 2; i++) + { + if (this.ct上背景スクロール用タイマー1st[i] != null) + { + double TexSizeL = 1280 / TJAPlayer3.Tx.Background_Up_1st[i].szテクスチャサイズ.Width; + double TexSizeW = 308 / TJAPlayer3.Tx.Background_Up_2nd[i].szテクスチャサイズ.Height; + double TexSizeF = 1280 / TJAPlayer3.Tx.Background_Up_3rd[i].szテクスチャサイズ.Width; + // 1280をテクスチャサイズで割ったものを切り上げて、プラス+1足す。 + int ForLoopL = (int)Math.Ceiling(TexSizeL) + 1; + int ForLoopW = (int)Math.Ceiling(TexSizeW) + 1; + int ForLoopF = (int)Math.Ceiling(TexSizeF) + 1; + //int nループ幅 = 328; + + #region [ 上背景-Back ] + + for (int W = 1; W < ForLoopW + 1; W++) + { + TJAPlayer3.Tx.Background_Up_1st[i].t2D描画(TJAPlayer3.app.Device, 0 - this.ct上背景スクロール用タイマー1st[i].n現在の値, (185 + i * 600) - (W * TJAPlayer3.Tx.Background_Up_1st[i].szテクスチャサイズ.Height) + ct上背景スクロール用タイマー2nd[i].n現在の値); + } + for (int l = 1; l < ForLoopL + 1; l++) + { + for (int W = 1; W < ForLoopW + 1; W++) + { + TJAPlayer3.Tx.Background_Up_1st[i].t2D描画(TJAPlayer3.app.Device, +(l * TJAPlayer3.Tx.Background_Up_1st[i].szテクスチャサイズ.Width) - this.ct上背景スクロール用タイマー1st[i].n現在の値, (185 + i * 600) - (W * TJAPlayer3.Tx.Background_Up_1st[i].szテクスチャサイズ.Height) + ct上背景スクロール用タイマー2nd[i].n現在の値); + } + } + + for (int W = 1; W < ForLoopW + 1; W++) + { + TJAPlayer3.Tx.Background_Up_2nd[i].t2D描画(TJAPlayer3.app.Device, 0 - this.ct上背景スクロール用タイマー1st[i].n現在の値, (370 + i * 600) - (W * TJAPlayer3.Tx.Background_Up_2nd[i].szテクスチャサイズ.Height) - ct上背景スクロール用タイマー2nd[i].n現在の値); + } + for (int l = 1; l < ForLoopL + 1; l++) + { + for (int W = 1; W < ForLoopW + 1; W++) + { + TJAPlayer3.Tx.Background_Up_2nd[i].t2D描画(TJAPlayer3.app.Device, +(l * TJAPlayer3.Tx.Background_Up_2nd[i].szテクスチャサイズ.Width) - this.ct上背景スクロール用タイマー1st[i].n現在の値, (370 + i * 600) - (W * TJAPlayer3.Tx.Background_Up_2nd[i].szテクスチャサイズ.Height) - ct上背景スクロール用タイマー2nd[i].n現在の値); + } + } + + #endregion + + #region [ 上背景-Front ] + + float thirdy = 0; + float thirdx = 0; + + if (this.ct上背景スクロール用タイマー3rd[i].n現在の値 <= 270) + { + thirdx = this.ct上背景スクロール用タイマー3rd[i].n現在の値 * 0.9258f; + thirdy = (float)Math.Sin((float)this.ct上背景スクロール用タイマー3rd[i].n現在の値 * (Math.PI / 270.0f)) * 40.0f; + } + else + { + thirdx = 250 + (ct上背景スクロール用タイマー3rd[i].n現在の値 - 270) * 0.24f; + + if (this.ct上背景スクロール用タイマー3rd[i].n現在の値 <= 490) thirdy = -(float)Math.Sin((float)(this.ct上背景スクロール用タイマー3rd[i].n現在の値 - 270) * (Math.PI / 170.0f)) * 15.0f; + else thirdy = -((float)Math.Sin((float)220f * (Math.PI / 170.0f)) * 15.0f) + (float)(((this.ct上背景スクロール用タイマー3rd[i].n現在の値 - 490) / 110f) * ((float)Math.Sin((float)220f * (Math.PI / 170.0f)) * 15.0f)); + } + + TJAPlayer3.Tx.Background_Up_3rd[i].t2D描画(TJAPlayer3.app.Device, 0 - thirdx, 0 + i * 540 - thirdy); + + for (int l = 1; l < ForLoopF + 1; l++) + { + TJAPlayer3.Tx.Background_Up_3rd[i].t2D描画(TJAPlayer3.app.Device, +(l * TJAPlayer3.Tx.Background_Up_3rd[i].szテクスチャサイズ.Width) - thirdx, 0 + i * 540 - thirdy); + } + + #endregion + } + + if (this.ct上背景スクロール用タイマー1st[i] != null) + { + if (TJAPlayer3.stage演奏ドラム画面.bIsAlreadyCleared[i]) + { + TJAPlayer3.Tx.Background_Up_1st[2].Opacity = ((this.ct上背景クリアインタイマー[i].n現在の値 * 0xff) / 100); + TJAPlayer3.Tx.Background_Up_2nd[2].Opacity = ((this.ct上背景クリアインタイマー[i].n現在の値 * 0xff) / 100); + TJAPlayer3.Tx.Background_Up_3rd[2].Opacity = ((this.ct上背景クリアインタイマー[i].n現在の値 * 0xff) / 100); + } + else + { + TJAPlayer3.Tx.Background_Up_1st[2].Opacity = 0; + TJAPlayer3.Tx.Background_Up_2nd[2].Opacity = 0; + TJAPlayer3.Tx.Background_Up_3rd[2].Opacity = 0; + } + + double TexSizeL = 1280 / TJAPlayer3.Tx.Background_Up_1st[2].szテクスチャサイズ.Width; + double TexSizeW = 308 / TJAPlayer3.Tx.Background_Up_2nd[2].szテクスチャサイズ.Height; + double TexSizeF = 1280 / TJAPlayer3.Tx.Background_Up_3rd[2].szテクスチャサイズ.Width; + // 1280をテクスチャサイズで割ったものを切り上げて、プラス+1足す。 + int ForLoopL = (int)Math.Ceiling(TexSizeL) + 1; + int ForLoopW = (int)Math.Ceiling(TexSizeW) + 1; + int ForLoopF = (int)Math.Ceiling(TexSizeF) + 1; + + #region [ 上背景-Back ] + + for (int W = 1; W < ForLoopW + 1; W++) + { + TJAPlayer3.Tx.Background_Up_1st[2].t2D描画(TJAPlayer3.app.Device, 0 - this.ct上背景スクロール用タイマー1st[i].n現在の値, (185 + i * 600) - (W * TJAPlayer3.Tx.Background_Up_1st[2].szテクスチャサイズ.Height) + ct上背景スクロール用タイマー2nd[i].n現在の値); + } + for (int l = 1; l < ForLoopL + 1; l++) + { + for (int W = 1; W < ForLoopW + 1; W++) + { + TJAPlayer3.Tx.Background_Up_1st[2].t2D描画(TJAPlayer3.app.Device, +(l * TJAPlayer3.Tx.Background_Up_1st[2].szテクスチャサイズ.Width) - this.ct上背景スクロール用タイマー1st[i].n現在の値, (185 + i * 600) - (W * TJAPlayer3.Tx.Background_Up_1st[2].szテクスチャサイズ.Height) + ct上背景スクロール用タイマー2nd[i].n現在の値); + } + } + + for (int W = 1; W < ForLoopW + 1; W++) + { + TJAPlayer3.Tx.Background_Up_2nd[2].t2D描画(TJAPlayer3.app.Device, 0 - this.ct上背景スクロール用タイマー1st[i].n現在の値, (370 + i * 600) - (W * TJAPlayer3.Tx.Background_Up_2nd[2].szテクスチャサイズ.Height) - ct上背景スクロール用タイマー2nd[i].n現在の値); + } + for (int l = 1; l < ForLoopL + 1; l++) + { + for (int W = 1; W < ForLoopW + 1; W++) + { + TJAPlayer3.Tx.Background_Up_2nd[2].t2D描画(TJAPlayer3.app.Device, +(l * TJAPlayer3.Tx.Background_Up_2nd[2].szテクスチャサイズ.Width) - this.ct上背景スクロール用タイマー1st[i].n現在の値, (370 + i * 600) - (W * TJAPlayer3.Tx.Background_Up_2nd[2].szテクスチャサイズ.Height) - ct上背景スクロール用タイマー2nd[i].n現在の値); + } + } + + #endregion + + #region [ 上背景-Front ] + + float thirdy = 0; + float thirdx = 0; + + if (this.ct上背景スクロール用タイマー3rd[i].n現在の値 <= 270) + { + thirdx = this.ct上背景スクロール用タイマー3rd[i].n現在の値 * 0.9258f; + thirdy = (float)Math.Sin((float)this.ct上背景スクロール用タイマー3rd[i].n現在の値 * (Math.PI / 270.0f)) * 40.0f; + } + else + { + thirdx = 250 + (ct上背景スクロール用タイマー3rd[i].n現在の値 - 270) * 0.24f; + + if (this.ct上背景スクロール用タイマー3rd[i].n現在の値 <= 490) thirdy = -(float)Math.Sin((float)(this.ct上背景スクロール用タイマー3rd[i].n現在の値 - 270) * (Math.PI / 170.0f)) * 15.0f; + else thirdy = -((float)Math.Sin((float)220f * (Math.PI / 170.0f)) * 15.0f) + (float)(((this.ct上背景スクロール用タイマー3rd[i].n現在の値 - 490) / 110f) * ((float)Math.Sin((float)220f * (Math.PI / 170.0f)) * 15.0f)); + } + + TJAPlayer3.Tx.Background_Up_3rd[2].t2D描画(TJAPlayer3.app.Device, 0 - thirdx, 0 + i * 540 - thirdy); + + for (int l = 1; l < ForLoopF + 1; l++) + { + TJAPlayer3.Tx.Background_Up_3rd[2].t2D描画(TJAPlayer3.app.Device, +(l * TJAPlayer3.Tx.Background_Up_3rd[2].szテクスチャサイズ.Width) - thirdx, 0 + i * 540 - thirdy); + } + + #endregion + } + } + + #endregion + } + else + { + #region [ 段位拝啓 ] + + TJAPlayer3.Tx.Background_Up_Dan[0].t2D描画(TJAPlayer3.app.Device, 0, 0); + + for(int i = 0; i < 1280 / TJAPlayer3.Tx.Background_Up_Dan[1].szテクスチャサイズ.Width + 2; i++) + TJAPlayer3.Tx.Background_Up_Dan[1].t2D描画(TJAPlayer3.app.Device, (i * TJAPlayer3.Tx.Background_Up_Dan[1].szテクスチャサイズ.Width) - ct上背景スクロール用タイマー1stDan[0].n現在の値, 0); + + for(int i = 0; i < 1280 / TJAPlayer3.Tx.Background_Up_Dan[2].szテクスチャサイズ.Width + 2; i++) + TJAPlayer3.Tx.Background_Up_Dan[2].t2D描画(TJAPlayer3.app.Device, (i * TJAPlayer3.Tx.Background_Up_Dan[2].szテクスチャサイズ.Width) - ct上背景スクロール用タイマー1stDan[1].n現在の値, 0); + + for(int i = 0; i < 1280 / TJAPlayer3.Tx.Background_Up_Dan[3].szテクスチャサイズ.Width + 2; i++) + TJAPlayer3.Tx.Background_Up_Dan[3].t2D描画(TJAPlayer3.app.Device, (i * TJAPlayer3.Tx.Background_Up_Dan[3].szテクスチャサイズ.Width) - ct上背景スクロール用タイマー1stDan[2].n現在の値, 0); + + for(int i = 0; i < 1280 / TJAPlayer3.Tx.Background_Up_Dan[4].szテクスチャサイズ.Width + 2; i++) + TJAPlayer3.Tx.Background_Up_Dan[4].t2D描画(TJAPlayer3.app.Device, + (i * TJAPlayer3.Tx.Background_Up_Dan[4].szテクスチャサイズ.Width) - ct上背景スクロール用タイマー2stDan.n現在の値, -200 + ct上背景スクロール用タイマー2stDan.n現在の値); + + for(int i = 0; i < 1280 / TJAPlayer3.Tx.Background_Up_Dan[5].szテクスチャサイズ.Width + 2; i++) + TJAPlayer3.Tx.Background_Up_Dan[5].t2D描画(TJAPlayer3.app.Device, (i * TJAPlayer3.Tx.Background_Up_Dan[5].szテクスチャサイズ.Width) - ct上背景スクロール用タイマー1stDan[3].n現在の値, 0); + + #endregion + } + + #endregion + #region 1P-下背景 + if (!TJAPlayer3.stage演奏ドラム画面.bDoublePlay) + { + if (TJAPlayer3.Tx.Background_Down != null) + { + TJAPlayer3.Tx.Background_Down.t2D描画(TJAPlayer3.app.Device, 0, 360); + } + if (TJAPlayer3.stage演奏ドラム画面.bIsAlreadyCleared[0]) + { + if (TJAPlayer3.Tx.Background_Down_Clear != null && TJAPlayer3.Tx.Background_Down_Scroll != null && ct下背景スクロール用タイマー1 != null) + { + TJAPlayer3.Tx.Background_Down_Clear.Opacity = ((this.ct上背景FIFOタイマー.n現在の値 * 0xff) / 100); + TJAPlayer3.Tx.Background_Down_Scroll.Opacity = ((this.ct上背景FIFOタイマー.n現在の値 * 0xff) / 100); + TJAPlayer3.Tx.Background_Down_Clear.t2D描画(TJAPlayer3.app.Device, 0, 360); + + //int nループ幅 = 1257; + //CDTXMania.Tx.Background_Down_Scroll.t2D描画( CDTXMania.app.Device, 0 - this.ct下背景スクロール用タイマー1.n現在の値, 360 ); + //CDTXMania.Tx.Background_Down_Scroll.t2D描画(CDTXMania.app.Device, (1 * nループ幅) - this.ct下背景スクロール用タイマー1.n現在の値, 360); + double TexSize = 1280 / TJAPlayer3.Tx.Background_Down_Scroll.szテクスチャサイズ.Width; + // 1280をテクスチャサイズで割ったものを切り上げて、プラス+1足す。 + int ForLoop = (int)Math.Ceiling(TexSize) + 1; + + //int nループ幅 = 328; + TJAPlayer3.Tx.Background_Down_Scroll.t2D描画(TJAPlayer3.app.Device, 0 - this.ct下背景スクロール用タイマー1.n現在の値, 360); + for (int l = 1; l < ForLoop + 1; l++) + { + TJAPlayer3.Tx.Background_Down_Scroll.t2D描画(TJAPlayer3.app.Device, +(l * TJAPlayer3.Tx.Background_Down_Scroll.szテクスチャサイズ.Width) - this.ct下背景スクロール用タイマー1.n現在の値, 360); + } + + } + } + } + #endregion + + return base.On進行描画(); + } + + #region[ private ] + //----------------- + private CCounter[] ct上背景スクロール用タイマー1st; //上背景のX方向スクロール用 + private CCounter[] ct上背景スクロール用タイマー2nd; //上背景のY方向スクロール用 + private CCounter[] ct上背景スクロール用タイマー3rd; //上背景のY方向スクロール用 + private CCounter ct下背景スクロール用タイマー1; //下背景パーツ1のX方向スクロール用 + private CCounter ct上背景FIFOタイマー; + private CCounter[] ct上背景クリアインタイマー; + private CCounter[] ct上背景スクロール用タイマー1stDan; //上背景のX方向スクロール用 + private CCounter ct上背景スクロール用タイマー2stDan; //上背景のY方向スクロール用 + //private CTexture tx上背景メイン; + //private CTexture tx上背景クリアメイン; + //private CTexture tx下背景メイン; + //private CTexture tx下背景クリアメイン; + //private CTexture tx下背景クリアサブ1; + private EFIFOモード eFadeMode; + //----------------- + #endregion + } +} diff --git a/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drums連打.cs b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drums連打.cs new file mode 100644 index 00000000..beb5a77a --- /dev/null +++ b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drums連打.cs @@ -0,0 +1,232 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Drawing; +using System.Diagnostics; +using System.Runtime.InteropServices; +using SlimDX; +using FDK; + +namespace TJAPlayer3 +{ + internal class CAct演奏Drums連打 : CActivity + { + + + public CAct演奏Drums連打() + { + ST文字位置[] st文字位置Array = new ST文字位置[ 11 ]; + + ST文字位置 st文字位置 = new ST文字位置(); + st文字位置.ch = '0'; + st文字位置.pt = new Point( 0, 0 ); + st文字位置Array[ 0 ] = st文字位置; + ST文字位置 st文字位置2 = new ST文字位置(); + st文字位置2.ch = '1'; + st文字位置2.pt = new Point( 62, 0 ); + st文字位置Array[ 1 ] = st文字位置2; + ST文字位置 st文字位置3 = new ST文字位置(); + st文字位置3.ch = '2'; + st文字位置3.pt = new Point( 124, 0 ); + st文字位置Array[ 2 ] = st文字位置3; + ST文字位置 st文字位置4 = new ST文字位置(); + st文字位置4.ch = '3'; + st文字位置4.pt = new Point( 186, 0 ); + st文字位置Array[ 3 ] = st文字位置4; + ST文字位置 st文字位置5 = new ST文字位置(); + st文字位置5.ch = '4'; + st文字位置5.pt = new Point( 248, 0 ); + st文字位置Array[ 4 ] = st文字位置5; + ST文字位置 st文字位置6 = new ST文字位置(); + st文字位置6.ch = '5'; + st文字位置6.pt = new Point( 310, 0 ); + st文字位置Array[ 5 ] = st文字位置6; + ST文字位置 st文字位置7 = new ST文字位置(); + st文字位置7.ch = '6'; + st文字位置7.pt = new Point( 372, 0 ); + st文字位置Array[ 6 ] = st文字位置7; + ST文字位置 st文字位置8 = new ST文字位置(); + st文字位置8.ch = '7'; + st文字位置8.pt = new Point( 434, 0 ); + st文字位置Array[ 7 ] = st文字位置8; + ST文字位置 st文字位置9 = new ST文字位置(); + st文字位置9.ch = '8'; + st文字位置9.pt = new Point( 496, 0 ); + st文字位置Array[ 8 ] = st文字位置9; + ST文字位置 st文字位置10 = new ST文字位置(); + st文字位置10.ch = '9'; + st文字位置10.pt = new Point( 558, 0 ); + st文字位置Array[ 9 ] = st文字位置10; + + this.st文字位置 = st文字位置Array; + + base.b活性化してない = true; + + } + + public override void On活性化() + { + this.ct連打枠カウンター = new CCounter[ 4 ]; + this.ct連打アニメ = new CCounter[4]; + FadeOut = new Animations.FadeOut[4]; + for ( int i = 0; i < 4; i++ ) + { + this.ct連打枠カウンター[ i ] = new CCounter(); + this.ct連打アニメ[i] = new CCounter(); + // 後から変えれるようにする。大体10フレーム分。 + FadeOut[i] = new Animations.FadeOut(167); + } + this.b表示 = new bool[]{ false, false, false, false }; + this.n連打数 = new int[ 4 ]; + + base.On活性化(); + } + + public override void On非活性化() + { + for (int i = 0; i < 4; i++) + { + ct連打枠カウンター[i] = null; + ct連打アニメ[i] = null; + FadeOut[i] = null; + } + base.On非活性化(); + } + + public override void OnManagedリソースの作成() + { + base.OnManagedリソースの作成(); + } + + public override void OnManagedリソースの解放() + { + base.OnManagedリソースの解放(); + } + + public override int On進行描画( ) + { + return base.On進行描画(); + } + + public int On進行描画( int n連打数, int player ) + { + this.ct連打枠カウンター[ player ].t進行(); + this.ct連打アニメ[player].t進行(); + FadeOut[player].Tick(); + //1PY:-3 2PY:514 + //仮置き + int[] nRollBalloon = new int[] { -3, 514, 0, 0 }; + int[] nRollNumber = new int[] { 48, 559, 0, 0 }; + for( int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++ ) + { + //CDTXMania.act文字コンソール.tPrint(0, 0, C文字コンソール.Eフォント種別.白, this.ct連打枠カウンター[player].n現在の値.ToString()); + if ( this.ct連打枠カウンター[ player ].b終了値に達してない) + { + if (ct連打枠カウンター[player].n現在の値 > 66 && !FadeOut[player].Counter.b進行中) + { + FadeOut[player].Start(); + } + var opacity = (int)FadeOut[player].GetAnimation(); + + if(ct連打枠カウンター[player].n現在の値 == 0 || ct連打枠カウンター[player].n現在の値 == 60) + { + bNowRollAnime = 0; + TJAPlayer3.Tx.Balloon_Number_Roll.Opacity = 64; + } + else if (ct連打枠カウンター[player].n現在の値 == 1 || ct連打枠カウンター[player].n現在の値 == 59) + { + bNowRollAnime = 1; + TJAPlayer3.Tx.Balloon_Number_Roll.Opacity = 128; + } + else if (ct連打枠カウンター[player].n現在の値 == 2 || ct連打枠カウンター[player].n現在の値 == 58) + { + bNowRollAnime = 2; + TJAPlayer3.Tx.Balloon_Number_Roll.Opacity = 192; + } + else if (ct連打枠カウンター[player].n現在の値 == 3 || ct連打枠カウンター[player].n現在の値 == 57) + { + bNowRollAnime = 3; + TJAPlayer3.Tx.Balloon_Number_Roll.Opacity = 255; + } + else if (ct連打枠カウンター[player].n現在の値 >= 4 || ct連打枠カウンター[player].n現在の値 <= 56) + { + bNowRollAnime = 4; + TJAPlayer3.Tx.Balloon_Number_Roll.Opacity = 255; + } + + TJAPlayer3.Tx.Balloon_Roll.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Balloon_Roll_Frame_X[player], TJAPlayer3.Skin.Game_Balloon_Roll_Frame_Y[player], new RectangleF(0 + bNowRollAnime * 334, 0, 334, 204)); ; + this.t文字表示(TJAPlayer3.Skin.Game_Balloon_Roll_Number_X[player], TJAPlayer3.Skin.Game_Balloon_Roll_Number_Y[player], n連打数.ToString(), n連打数, player); + } + } + + return base.On進行描画(); + } + + public void t枠表示時間延長(int player, bool first) + { + if ((this.ct連打枠カウンター[player].n現在の値 >= 6 && !first) || first) + this.ct連打枠カウンター[player] = new CCounter(0, 60, 40, TJAPlayer3.Timer); + + if(!first) + this.ct連打枠カウンター[player].n現在の値 = 5; + else + this.ct連打枠カウンター[player].n現在の値 = 0; + } + + public int bNowRollAnime; + public bool[] b表示; + public int[] n連打数; + public CCounter[] ct連打枠カウンター; + //private CTexture tx連打枠; + //private CTexture tx連打数字; + private readonly ST文字位置[] st文字位置; + public CCounter[] ct連打アニメ; + private float[] RollScale = new float[] + { + 0.000f, + 0.123f, // リピート + 0.164f, + 0.164f, + 0.164f, + 0.137f, + 0.110f, + 0.082f, + 0.055f, + 0.000f + }; + private Animations.FadeOut[] FadeOut; + + [StructLayout(LayoutKind.Sequential)] + private struct ST文字位置 + { + public char ch; + public Point pt; + } + + private void t文字表示( int x, int y, string str, int n連打, int nPlayer) + { + int n桁数 = n連打.ToString().Length; + + //CDTXMania.act文字コンソール.tPrint(0, 0, C文字コンソール.Eフォント種別.白, ct連打アニメ[nPlayer].n現在の値.ToString()); + foreach ( char ch in str ) + { + for( int i = 0; i < this.st文字位置.Length; i++ ) + { + if( this.st文字位置[ i ].ch == ch ) + { + Rectangle rectangle = new Rectangle(TJAPlayer3.Skin.Game_Balloon_Number_Size[0] * i, 0, TJAPlayer3.Skin.Game_Balloon_Number_Size[0], TJAPlayer3.Skin.Game_Balloon_Number_Size[1]); + + if(TJAPlayer3.Tx.Balloon_Number_Roll != null ) + { + TJAPlayer3.Tx.Balloon_Number_Roll.vc拡大縮小倍率.X = TJAPlayer3.Skin.Game_Balloon_Roll_Number_Scale; + TJAPlayer3.Tx.Balloon_Number_Roll.vc拡大縮小倍率.Y = TJAPlayer3.Skin.Game_Balloon_Roll_Number_Scale + RollScale[this.ct連打アニメ[nPlayer].n現在の値]; + TJAPlayer3.Tx.Balloon_Number_Roll.t2D拡大率考慮下基準描画( TJAPlayer3.app.Device, x - ( ( (TJAPlayer3.Skin.Game_Balloon_Number_Padding + 2) * n桁数 ) / 2 ), y, rectangle ); + } + break; + } + } + x += ( TJAPlayer3.Skin.Game_Balloon_Number_Padding - ( n桁数 > 2 ? n桁数 * 2 : 0 ) ); + } + } + } +} diff --git a/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drums連打キャラ.cs b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drums連打キャラ.cs new file mode 100644 index 00000000..cbc24aee --- /dev/null +++ b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drums連打キャラ.cs @@ -0,0 +1,262 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Drawing; +using System.Runtime.InteropServices; +using SlimDX; +using FDK; + +namespace TJAPlayer3 +{ + internal class CAct演奏Drums連打キャラ : CActivity + { + // コンストラクタ + + public CAct演奏Drums連打キャラ() + { + base.b活性化してない = true; + } + + + // メソッド + public virtual void Start( int player ) + { + //if( CDTXMania.Tx.Effects_Roll[0] != null ) + //{ + // int[] arXseed = new int[] { 56, -10, 200, 345, 100, 451, 600, 260, -30, 534, 156, 363 }; + // for (int i = 0; i < 1; i++) + // { + // for (int j = 0; j < 64; j++) + // { + // if (!this.st連打キャラ[j].b使用中) + // { + // this.st連打キャラ[j].b使用中 = true; + // if(this.nTex枚数 <= 1) this.st連打キャラ[j].nColor = 0; + // else this.st連打キャラ[j].nColor = CDTXMania.Random.Next( 0, this.nTex枚数 - 1); + // this.st連打キャラ[j].ct進行 = new CCounter( 0, 1000, 4, CDTXMania.Timer); // カウンタ + + // //位置生成(β版) + // int nXseed = CDTXMania.Random.Next(12); + // this.st連打キャラ[ j ].fX開始点 = arXseed[ nXseed ]; + // this.st連打キャラ[j].fX = arXseed[ nXseed ]; + // this.st連打キャラ[j].fY = 720; + // this.st連打キャラ[j].fX加速度 = 5/2; + // this.st連打キャラ[j].fY加速度 = 5/2; + // break; + // } + // } + // } + //} + for (int i = 0; i < 128; i++) + { + if(!RollCharas[i].IsUsing) + { + RollCharas[i].IsUsing = true; + RollCharas[i].Type = random.Next(0, TJAPlayer3.Skin.Game_Effect_Roll_Ptn); + RollCharas[i].OldValue = 0; + RollCharas[i].Counter = new CCounter(0, 5000, 1, TJAPlayer3.Timer); + if (TJAPlayer3.stage演奏ドラム画面.bDoublePlay) + { + switch (player) + { + case 0: + RollCharas[i].X = TJAPlayer3.Skin.Game_Effect_Roll_StartPoint_1P_X[random.Next(0, TJAPlayer3.Skin.Game_Effect_Roll_StartPoint_1P_X.Length)]; + RollCharas[i].Y = TJAPlayer3.Skin.Game_Effect_Roll_StartPoint_1P_Y[random.Next(0, TJAPlayer3.Skin.Game_Effect_Roll_StartPoint_1P_Y.Length)]; + RollCharas[i].XAdd = TJAPlayer3.Skin.Game_Effect_Roll_Speed_1P_X[random.Next(0, TJAPlayer3.Skin.Game_Effect_Roll_Speed_1P_X.Length)]; + RollCharas[i].YAdd = TJAPlayer3.Skin.Game_Effect_Roll_Speed_1P_Y[random.Next(0, TJAPlayer3.Skin.Game_Effect_Roll_Speed_1P_Y.Length)]; + break; + case 1: + RollCharas[i].X = TJAPlayer3.Skin.Game_Effect_Roll_StartPoint_2P_X[random.Next(0, TJAPlayer3.Skin.Game_Effect_Roll_StartPoint_2P_X.Length)]; + RollCharas[i].Y = TJAPlayer3.Skin.Game_Effect_Roll_StartPoint_2P_Y[random.Next(0, TJAPlayer3.Skin.Game_Effect_Roll_StartPoint_2P_Y.Length)]; + RollCharas[i].XAdd = TJAPlayer3.Skin.Game_Effect_Roll_Speed_2P_X[random.Next(0, TJAPlayer3.Skin.Game_Effect_Roll_Speed_2P_X.Length)]; + RollCharas[i].YAdd = TJAPlayer3.Skin.Game_Effect_Roll_Speed_2P_Y[random.Next(0, TJAPlayer3.Skin.Game_Effect_Roll_Speed_2P_Y.Length)]; + break; + default: + return; + } + } + else + { + RollCharas[i].X = TJAPlayer3.Skin.Game_Effect_Roll_StartPoint_X[random.Next(0, TJAPlayer3.Skin.Game_Effect_Roll_StartPoint_X.Length)]; + RollCharas[i].Y = TJAPlayer3.Skin.Game_Effect_Roll_StartPoint_Y[random.Next(0, TJAPlayer3.Skin.Game_Effect_Roll_StartPoint_Y.Length)]; + RollCharas[i].XAdd = TJAPlayer3.Skin.Game_Effect_Roll_Speed_X[random.Next(0, TJAPlayer3.Skin.Game_Effect_Roll_Speed_X.Length)]; + RollCharas[i].YAdd = TJAPlayer3.Skin.Game_Effect_Roll_Speed_Y[random.Next(0, TJAPlayer3.Skin.Game_Effect_Roll_Speed_Y.Length)]; + } + break; + } + } + + } + + // CActivity 実装 + + public override void On活性化() + { + //for (int i = 0; i < 64; i++) + //{ + // this.st連打キャラ[i] = new ST連打キャラ(); + // this.st連打キャラ[i].b使用中 = false; + // this.st連打キャラ[i].ct進行 = new CCounter(); + //} + for (int i = 0; i < 128; i++) + { + RollCharas[i] = new RollChara(); + RollCharas[i].IsUsing = false; + RollCharas[i].Counter = new CCounter(); + } + // SkinConfigで指定されたいくつかの変数からこのクラスに合ったものに変換していく + + base.On活性化(); + } + public override void On非活性化() + { + //for (int i = 0; i < 64; i++) + //{ + // this.st連打キャラ[i].ct進行 = null; + //} + for (int i = 0; i < 128; i++) + { + RollCharas[i].Counter = null; + } + base.On非活性化(); + } + public override void OnManagedリソースの作成() + { + if( !base.b活性化してない ) + { + //this.nTex枚数 = 4; + //this.txChara = new CTexture[ this.nTex枚数 ]; + + //for (int i = 0; i < this.nTex枚数; i++) + //{ + // this.txChara[ i ] = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\RollEffect\00\" + i.ToString() + ".png" ) ); + //} + base.OnManagedリソースの作成(); + } + } + public override void OnManagedリソースの解放() + { + if( !base.b活性化してない ) + { + // for (int i = 0; i < this.nTex枚数; i++) + // { + //CDTXMania.tテクスチャの解放( ref this.txChara[ i ] ); + // } + base.OnManagedリソースの解放(); + } + } + public override int On進行描画() + { + if( !base.b活性化してない ) + { + //for( int i = 0; i < 64; i++ ) + //{ + // if( this.st連打キャラ[i].b使用中 ) + // { + // this.st連打キャラ[i].n前回のValue = this.st連打キャラ[i].ct進行.n現在の値; + // this.st連打キャラ[i].ct進行.t進行(); + // if (this.st連打キャラ[i].ct進行.b終了値に達した) + // { + // this.st連打キャラ[i].ct進行.t停止(); + // this.st連打キャラ[i].b使用中 = false; + // } + // for (int n = this.st連打キャラ[i].n前回のValue; n < this.st連打キャラ[i].ct進行.n現在の値; n++) + // { + // this.st連打キャラ[i].fX += this.st連打キャラ[i].fX加速度; + // this.st連打キャラ[i].fY -= this.st連打キャラ[i].fY加速度; + // } + + // if(CDTXMania.Tx.Effects_Roll[ this.st連打キャラ[ i ].nColor ] != null ) + // { + // CDTXMania.Tx.Effects_Roll[ this.st連打キャラ[ i ].nColor ].t2D描画( CDTXMania.app.Device, (int)this.st連打キャラ[i].fX, (int)this.st連打キャラ[i].fY, new Rectangle( this.st連打キャラ[i].nColor * 0, 0, 128, 128 ) ); + // } + // } + + //} + for (int i = 0; i < 128; i++) + { + if(RollCharas[i].IsUsing) + { + RollCharas[i].OldValue = RollCharas[i].Counter.n現在の値; + RollCharas[i].Counter.t進行(); + if(RollCharas[i].Counter.b終了値に達した) + { + RollCharas[i].Counter.t停止(); + RollCharas[i].IsUsing = false; + } + for (int l = RollCharas[i].OldValue; l < RollCharas[i].Counter.n現在の値; l++) + { + RollCharas[i].X += RollCharas[i].XAdd; + RollCharas[i].Y += RollCharas[i].YAdd; + } + TJAPlayer3.Tx.Effects_Roll[RollCharas[i].Type]?.t2D描画(TJAPlayer3.app.Device, RollCharas[i].X, RollCharas[i].Y); + // 画面外にいたら描画をやめさせる + if(RollCharas[i].X < 0 - TJAPlayer3.Tx.Effects_Roll[RollCharas[i].Type].szテクスチャサイズ.Width || RollCharas[i].X > 1280) + { + RollCharas[i].Counter.t停止(); + RollCharas[i].IsUsing = false; + } + if (RollCharas[i].Y < 0 - TJAPlayer3.Tx.Effects_Roll[RollCharas[i].Type].szテクスチャサイズ.Height || RollCharas[i].Y > 720) + { + RollCharas[i].Counter.t停止(); + RollCharas[i].IsUsing = false; + } + } + } + } + return 0; + } + + + // その他 + + #region [ private ] + //----------------- + //private CTexture[] txChara; + private int nTex枚数; + + [StructLayout(LayoutKind.Sequential)] + private struct ST連打キャラ + { + public int nColor; + public bool b使用中; + public CCounter ct進行; + public int n前回のValue; + public float fX; + public float fY; + public float fX開始点; + public float fY開始点; + public float f進行方向; //進行方向 0:左→右 1:左下→右上 2:右→左 + public float fX加速度; + public float fY加速度; + } + private ST連打キャラ[] st連打キャラ = new ST連打キャラ[64]; + + [StructLayout(LayoutKind.Sequential)] + private struct RollChara + { + public CCounter Counter; + public int Type; + public bool IsUsing; + public float X; + public float Y; + public float XAdd; + public float YAdd; + public int OldValue; + } + + private RollChara[] RollCharas = new RollChara[128]; + + private Random random = new Random(); + + private int[,] StartPoint; + private int[,] StartPoint_1P; + private int[,] StartPoint_2P; + private float[,] Speed; + private float[,] Speed_1P; + private float[,] Speed_2P; + private int CharaPtn; + //----------------- + #endregion + } +} diff --git a/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drums風船.cs b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drums風船.cs new file mode 100644 index 00000000..97f00692 --- /dev/null +++ b/TJAPlayer3/Stages/07.Game/Taiko/CAct演奏Drums風船.cs @@ -0,0 +1,295 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Drawing; +using System.Diagnostics; +using System.Runtime.InteropServices; +using SlimDX; +using FDK; + +namespace TJAPlayer3 +{ + internal class CAct演奏Drums風船 : CActivity + { + + + public CAct演奏Drums風船() + { + ST文字位置[] st文字位置Array = new ST文字位置[11]; + + ST文字位置 st文字位置 = new ST文字位置(); + st文字位置.ch = '0'; + st文字位置.pt = new Point(0, 0); + st文字位置Array[0] = st文字位置; + ST文字位置 st文字位置2 = new ST文字位置(); + st文字位置2.ch = '1'; + st文字位置2.pt = new Point(62, 0); + st文字位置Array[1] = st文字位置2; + ST文字位置 st文字位置3 = new ST文字位置(); + st文字位置3.ch = '2'; + st文字位置3.pt = new Point(124, 0); + st文字位置Array[2] = st文字位置3; + ST文字位置 st文字位置4 = new ST文字位置(); + st文字位置4.ch = '3'; + st文字位置4.pt = new Point(186, 0); + st文字位置Array[3] = st文字位置4; + ST文字位置 st文字位置5 = new ST文字位置(); + st文字位置5.ch = '4'; + st文字位置5.pt = new Point(248, 0); + st文字位置Array[4] = st文字位置5; + ST文字位置 st文字位置6 = new ST文字位置(); + st文字位置6.ch = '5'; + st文字位置6.pt = new Point(310, 0); + st文字位置Array[5] = st文字位置6; + ST文字位置 st文字位置7 = new ST文字位置(); + st文字位置7.ch = '6'; + st文字位置7.pt = new Point(372, 0); + st文字位置Array[6] = st文字位置7; + ST文字位置 st文字位置8 = new ST文字位置(); + st文字位置8.ch = '7'; + st文字位置8.pt = new Point(434, 0); + st文字位置Array[7] = st文字位置8; + ST文字位置 st文字位置9 = new ST文字位置(); + st文字位置9.ch = '8'; + st文字位置9.pt = new Point(496, 0); + st文字位置Array[8] = st文字位置9; + ST文字位置 st文字位置10 = new ST文字位置(); + st文字位置10.ch = '9'; + st文字位置10.pt = new Point(558, 0); + st文字位置Array[9] = st文字位置10; + + this.st文字位置 = st文字位置Array; + + base.b活性化してない = true; + + } + + public override void On活性化() + { + this.ct風船終了 = new CCounter(); + this.ct風船ふきだしアニメ = new CCounter(); + this.ct風船アニメ = new CCounter[4]; + for (int i = 0; i < 4; i++) + { + this.ct風船アニメ[i] = new CCounter(); + } + base.On活性化(); + } + + public override void On非活性化() + { + this.ct風船終了 = null; + this.ct風船ふきだしアニメ = null; + base.On非活性化(); + } + + public override void OnManagedリソースの作成() + { + //this.tx連打枠 = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\7_balloon.png")); + //this.tx連打数字 = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\7_RollNumber.png")); + + //this.txキャラクター = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\Chara\balloon.png")); + //this.txキャラクター_風船終了 = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\Chara\balloon_break_0.png")); + + //for (int i = 0; i < 6; i++) + //{ + // this.tx風船枠[i] = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\Chara\balloon_" + i.ToString() + ".png")); + //} + + this.ct風船ふきだしアニメ = new CCounter(0, 1, 100, TJAPlayer3.Timer); + base.OnManagedリソースの作成(); + } + + public override void OnManagedリソースの解放() + { + //CDTXMania.tテクスチャの解放(ref this.tx連打枠); + //CDTXMania.tテクスチャの解放(ref this.tx連打数字); + + //CDTXMania.tテクスチャの解放(ref this.txキャラクター); + //CDTXMania.tテクスチャの解放(ref this.txキャラクター_風船終了); + + //for (int i = 0; i < 6; i++) + //{ + // CDTXMania.tテクスチャの解放(ref this.tx風船枠[i]); + //} + + base.OnManagedリソースの解放(); + } + + public override int On進行描画() + { + return base.On進行描画(); + } + + public int On進行描画(int n連打ノルマ, int n連打数, int player) + { + this.ct風船ふきだしアニメ.t進行Loop(); + this.ct風船アニメ[player].t進行(); + + //CDTXMania.act文字コンソール.tPrint( 0, 16, C文字コンソール.Eフォント種別.赤, this.ct風船終了.n現在の値.ToString() ); + int[] n残り打数 = new int[] { 0, 0, 0, 0, 0 }; + #region[ ] + if (n連打ノルマ > 0) + { + if (n連打ノルマ < 5) + { + n残り打数 = new int[] { 4, 3, 2, 1, 0 }; + } + else + { + n残り打数[0] = (n連打ノルマ / 5) * 4; + n残り打数[1] = (n連打ノルマ / 5) * 3; + n残り打数[2] = (n連打ノルマ / 5) * 2; + n残り打数[3] = (n連打ノルマ / 5) * 1; + } + } + #endregion + + if (n連打数 != 0) + { + //1P:0 2P:245 + //if (CDTXMania.Tx.Chara_Balloon_Breaking != null && CDTXMania.ConfigIni.ShowChara) + // CDTXMania.Tx.Chara_Balloon_Breaking.t2D描画(CDTXMania.app.Device, CDTXMania.Skin.Game_Chara_Balloon_X[player], CDTXMania.Skin.Game_Chara_Balloon_Y[player]); + for (int j = 0; j < 5; j++) + { + if (n残り打数[j] < n連打数) + { + if (TJAPlayer3.Tx.Balloon_Breaking[j] != null) + TJAPlayer3.Tx.Balloon_Breaking[j].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Balloon_Balloon_X[player] + (this.ct風船ふきだしアニメ.n現在の値 == 1 ? 3 : 0), TJAPlayer3.Skin.Game_Balloon_Balloon_Y[player]); + break; + } + } + //1P:31 2P:329 + if (TJAPlayer3.Tx.Balloon_Balloon != null) + TJAPlayer3.Tx.Balloon_Balloon.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Balloon_Balloon_Frame_X[player], TJAPlayer3.Skin.Game_Balloon_Balloon_Frame_Y[player]); + this.t文字表示(TJAPlayer3.Skin.Game_Balloon_Balloon_Number_X[player], TJAPlayer3.Skin.Game_Balloon_Balloon_Number_Y[player], n連打数.ToString(), n連打数, player); + //CDTXMania.act文字コンソール.tPrint( 0, 0, C文字コンソール.Eフォント種別.白, n連打数.ToString() ); + } + if (n連打数 == 0 && TJAPlayer3.stage演奏ドラム画面.actChara.b風船連打中[player]) + { + TJAPlayer3.stage演奏ドラム画面.actChara.b風船連打中[player] = false; + TJAPlayer3.stage演奏ドラム画面.b連打中[player] = false; + //this.tEnd(); + ////this.ct風船終了.n現在の値 = 0; + //if (this.ct風船終了.b進行中) + //{ + // this.ct風船終了.t進行db(); + // if (this.ct風船終了.b終了値に達した) + // { + // this.ct風船終了.t停止(); + // this.ct風船終了.n現在の値 = 0D; + // CDTXMania.stage演奏ドラム画面.actChara.b風船連打中 = false; + // CDTXMania.stage演奏ドラム画面.b連打中[player] = false; + // } + //} + + //if (this.ct風船終了.b進行中) + //{ + // int nY = 0; + // int nT = 255; + + + // if (this.ct風船終了.n現在の値 <= 10) + // { + // nY = (int)this.ct風船終了.n現在の値; + // } + // else if (this.ct風船終了.n現在の値 > 10) + // { + // nY = 100; + // } + // //else if( this.ct風船終了.n現在の値 > 800 ) + // { + // //nY = 100; + // //nT = 0; + // } + + // if (CDTXMania.Tx.Chara_Balloon_Broken != null) + // CDTXMania.Tx.Chara_Balloon_Broken.t2D描画(CDTXMania.app.Device, 240, 140 - nY); + // //this.txキャラクター_風船終了.n透明度 = nT; + // CDTXMania.act文字コンソール.tPrint( 0, 0, C文字コンソール.Eフォント種別.赤, this.ct風船終了.n現在の値.ToString() ); + + + //} + //if (!this.ct風船終了.b終了値に達してないdb) + //{ + // //CDTXMania.stage演奏ドラム画面.actChara.b風船連打中 = false; + // //CDTXMania.stage演奏ドラム画面.b連打中[player] = false; + //} + ////CDTXMania.stage演奏ドラム画面.actChara.b風船連打中 = false; + + + } + + + + + return base.On進行描画(); + } + + + + //private CTexture tx連打枠; + //private CTexture tx連打数字; + private readonly ST文字位置[] st文字位置; + + //private CTexture txキャラクター; + //private CTexture txキャラクター_風船終了; + + //private CTexture[] tx風船枠 = new CTexture[6]; + + private CCounter ct風船終了; + private CCounter ct風船ふきだしアニメ; + + public CCounter[] ct風船アニメ; + private float[] RollScale = new float[] + { + 0.000f, + 0.123f, // リピート + 0.164f, + 0.164f, + 0.164f, + 0.137f, + 0.110f, + 0.082f, + 0.055f, + 0.000f + }; + + [StructLayout(LayoutKind.Sequential)] + private struct ST文字位置 + { + public char ch; + public Point pt; + } + + private void t文字表示(int x, int y, string str, int n連打, int nPlayer) + { + int n桁数 = n連打.ToString().Length; + foreach (char ch in str) + { + for (int i = 0; i < this.st文字位置.Length; i++) + { + if (this.st文字位置[i].ch == ch) + { + Rectangle rectangle = new Rectangle(TJAPlayer3.Skin.Game_Balloon_Number_Size[0] * i, 0, TJAPlayer3.Skin.Game_Balloon_Number_Size[0], TJAPlayer3.Skin.Game_Balloon_Number_Size[1]); + + if (TJAPlayer3.Tx.Balloon_Number_Roll != null) + { + TJAPlayer3.Tx.Balloon_Number_Roll.Opacity = 255; + TJAPlayer3.Tx.Balloon_Number_Roll.vc拡大縮小倍率.X = TJAPlayer3.Skin.Game_Balloon_Balloon_Number_Scale; + TJAPlayer3.Tx.Balloon_Number_Roll.vc拡大縮小倍率.Y = TJAPlayer3.Skin.Game_Balloon_Balloon_Number_Scale + RollScale[this.ct風船アニメ[nPlayer].n現在の値]; + TJAPlayer3.Tx.Balloon_Number_Roll.t2D拡大率考慮下基準描画(TJAPlayer3.app.Device, x - (((TJAPlayer3.Skin.Game_Balloon_Number_Padding + 2) * n桁数) / 2), y, rectangle); + } + break; + } + } + x += (TJAPlayer3.Skin.Game_Balloon_Number_Padding - (n桁数 > 2 ? n桁数 * 2 : 0)); + } + } + + public void tEnd() + { + this.ct風船終了 = new CCounter(0, 80, 10, CSound管理.rc演奏用タイマ); + } + } +} diff --git a/TJAPlayer3/Stages/07.Game/Taiko/CStage演奏ドラム画面.cs b/TJAPlayer3/Stages/07.Game/Taiko/CStage演奏ドラム画面.cs new file mode 100644 index 00000000..69374e3f --- /dev/null +++ b/TJAPlayer3/Stages/07.Game/Taiko/CStage演奏ドラム画面.cs @@ -0,0 +1,2338 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Runtime.InteropServices; +using System.Drawing; +using System.Drawing.Imaging; +using System.IO; +using System.Diagnostics; +using System.Threading; +using SlimDX; +using SlimDX.Direct3D9; +using FDK; +using TJAPlayer3; + +namespace TJAPlayer3 +{ + internal class CStage演奏ドラム画面 : CStage演奏画面共通 + { + // コンストラクタ + + public CStage演奏ドラム画面() + { + base.eステージID = CStage.Eステージ.演奏; + base.eフェーズID = CStage.Eフェーズ.共通_通常状態; + base.b活性化してない = true; + base.list子Activities.Add( this.actPad = new CAct演奏Drumsパッド() ); + base.list子Activities.Add( this.actCombo = new CAct演奏DrumsコンボDGB() ); + base.list子Activities.Add( this.actDANGER = new CAct演奏DrumsDanger() ); + base.list子Activities.Add( this.actChipFireD = new CAct演奏DrumsチップファイアD() ); + base.list子Activities.Add( this.Rainbow = new Rainbow() ); + base.list子Activities.Add( this.actGauge = new CAct演奏Drumsゲージ() ); + base.list子Activities.Add( this.actGraph = new CAct演奏Drumsグラフ() ); // #24074 2011.01.23 add ikanick + base.list子Activities.Add( this.actJudgeString = new CAct演奏Drums判定文字列() ); + base.list子Activities.Add( this.actTaikoLaneFlash = new TaikoLaneFlash() ); + base.list子Activities.Add( this.actLaneFlushGB = new CAct演奏DrumsレーンフラッシュGB() ); + base.list子Activities.Add( this.actScore = new CAct演奏Drumsスコア() ); + base.list子Activities.Add( this.actStatusPanels = new CAct演奏Drumsステータスパネル() ); + base.list子Activities.Add( this.act譜面スクロール速度 = new CAct演奏スクロール速度() ); + base.list子Activities.Add( this.actAVI = new CAct演奏AVI() ); + base.list子Activities.Add( this.actPanel = new CAct演奏パネル文字列() ); + base.list子Activities.Add( this.actStageFailed = new CAct演奏ステージ失敗() ); + base.list子Activities.Add( this.actPlayInfo = new CAct演奏演奏情報() ); + //base.list子Activities.Add( this.actFI = new CActFIFOBlack() ); + base.list子Activities.Add( this.actFI = new CActFIFOStart() ); + base.list子Activities.Add( this.actFO = new CActFIFOBlack() ); + base.list子Activities.Add( this.actFOClear = new CActFIFOResult() ); + base.list子Activities.Add( this.actLane = new CAct演奏Drumsレーン() ); + base.list子Activities.Add( this.actEnd = new CAct演奏Drums演奏終了演出() ); + base.list子Activities.Add( this.actDancer = new CAct演奏DrumsDancer() ); + base.list子Activities.Add( this.actMtaiko = new CAct演奏DrumsMtaiko() ); + base.list子Activities.Add( this.actLaneTaiko = new CAct演奏Drumsレーン太鼓() ); + base.list子Activities.Add( this.actRoll = new CAct演奏Drums連打() ); + base.list子Activities.Add( this.actBalloon = new CAct演奏Drums風船() ); + base.list子Activities.Add( this.actChara = new CAct演奏Drumsキャラクター() ); + base.list子Activities.Add( this.actGame = new CAct演奏Drumsゲームモード() ); + base.list子Activities.Add( this.actBackground = new CAct演奏Drums背景() ); + base.list子Activities.Add( this.actRollChara = new CAct演奏Drums連打キャラ() ); + base.list子Activities.Add( this.actComboBalloon = new CAct演奏Drumsコンボ吹き出し() ); + base.list子Activities.Add( this.actComboVoice = new CAct演奏Combo音声() ); + base.list子Activities.Add( this.actPauseMenu = new CAct演奏PauseMenu() ); + base.list子Activities.Add(this.actChipEffects = new CAct演奏Drumsチップエフェクト()); + base.list子Activities.Add(this.actFooter = new CAct演奏DrumsFooter()); + base.list子Activities.Add(this.actMob = new CAct演奏DrumsMob()); + base.list子Activities.Add(this.GoGoSplash = new GoGoSplash()); + base.list子Activities.Add(this.FlyingNotes = new FlyingNotes()); + base.list子Activities.Add(this.FireWorks = new FireWorks()); + base.list子Activities.Add(this.PuchiChara = new PuchiChara()); + base.list子Activities.Add(this.ScoreRank = new CAct演奏Drumsスコアランク()); + + base.list子Activities.Add(this.actDan = new Dan_Cert()); + base.list子Activities.Add(this.actTokkun = new CAct演奏Drums特訓モード()); + #region[ 文字初期化 ] + ST文字位置[] st文字位置Array = new ST文字位置[ 12 ]; + ST文字位置 st文字位置 = new ST文字位置(); + st文字位置.ch = '0'; + st文字位置.pt = new Point( 0, 0 ); + st文字位置Array[ 0 ] = st文字位置; + ST文字位置 st文字位置2 = new ST文字位置(); + st文字位置2.ch = '1'; + st文字位置2.pt = new Point( 32, 0 ); + st文字位置Array[ 1 ] = st文字位置2; + ST文字位置 st文字位置3 = new ST文字位置(); + st文字位置3.ch = '2'; + st文字位置3.pt = new Point( 64, 0 ); + st文字位置Array[ 2 ] = st文字位置3; + ST文字位置 st文字位置4 = new ST文字位置(); + st文字位置4.ch = '3'; + st文字位置4.pt = new Point( 96, 0 ); + st文字位置Array[ 3 ] = st文字位置4; + ST文字位置 st文字位置5 = new ST文字位置(); + st文字位置5.ch = '4'; + st文字位置5.pt = new Point( 128, 0 ); + st文字位置Array[ 4 ] = st文字位置5; + ST文字位置 st文字位置6 = new ST文字位置(); + st文字位置6.ch = '5'; + st文字位置6.pt = new Point( 160, 0 ); + st文字位置Array[ 5 ] = st文字位置6; + ST文字位置 st文字位置7 = new ST文字位置(); + st文字位置7.ch = '6'; + st文字位置7.pt = new Point( 192, 0 ); + st文字位置Array[ 6 ] = st文字位置7; + ST文字位置 st文字位置8 = new ST文字位置(); + st文字位置8.ch = '7'; + st文字位置8.pt = new Point( 224, 0 ); + st文字位置Array[ 7 ] = st文字位置8; + ST文字位置 st文字位置9 = new ST文字位置(); + st文字位置9.ch = '8'; + st文字位置9.pt = new Point( 256, 0 ); + st文字位置Array[ 8 ] = st文字位置9; + ST文字位置 st文字位置10 = new ST文字位置(); + st文字位置10.ch = '9'; + st文字位置10.pt = new Point( 288, 0 ); + st文字位置Array[ 9 ] = st文字位置10; + ST文字位置 st文字位置11 = new ST文字位置(); + st文字位置11.ch = '%'; + st文字位置11.pt = new Point( 320, 0 ); + st文字位置Array[ 10 ] = st文字位置11; + ST文字位置 st文字位置12 = new ST文字位置(); + st文字位置12.ch = ' '; + st文字位置12.pt = new Point( 0, 0 ); + st文字位置Array[ 11 ] = st文字位置12; + this.st小文字位置 = st文字位置Array; + + st文字位置Array = new ST文字位置[ 12 ]; + st文字位置 = new ST文字位置(); + st文字位置.ch = '0'; + st文字位置.pt = new Point( 0, 0 ); + st文字位置Array[ 0 ] = st文字位置; + st文字位置2 = new ST文字位置(); + st文字位置2.ch = '1'; + st文字位置2.pt = new Point( 32, 0 ); + st文字位置Array[ 1 ] = st文字位置2; + st文字位置3 = new ST文字位置(); + st文字位置3.ch = '2'; + st文字位置3.pt = new Point( 64, 0 ); + st文字位置Array[ 2 ] = st文字位置3; + st文字位置4 = new ST文字位置(); + st文字位置4.ch = '3'; + st文字位置4.pt = new Point( 96, 0 ); + st文字位置Array[ 3 ] = st文字位置4; + st文字位置5 = new ST文字位置(); + st文字位置5.ch = '4'; + st文字位置5.pt = new Point( 128, 0 ); + st文字位置Array[ 4 ] = st文字位置5; + st文字位置6 = new ST文字位置(); + st文字位置6.ch = '5'; + st文字位置6.pt = new Point( 160, 0 ); + st文字位置Array[ 5 ] = st文字位置6; + st文字位置7 = new ST文字位置(); + st文字位置7.ch = '6'; + st文字位置7.pt = new Point( 192, 0 ); + st文字位置Array[ 6 ] = st文字位置7; + st文字位置8 = new ST文字位置(); + st文字位置8.ch = '7'; + st文字位置8.pt = new Point( 224, 0 ); + st文字位置Array[ 7 ] = st文字位置8; + st文字位置9 = new ST文字位置(); + st文字位置9.ch = '8'; + st文字位置9.pt = new Point( 256, 0 ); + st文字位置Array[ 8 ] = st文字位置9; + st文字位置10 = new ST文字位置(); + st文字位置10.ch = '9'; + st文字位置10.pt = new Point( 288, 0 ); + st文字位置Array[ 9 ] = st文字位置10; + st文字位置11 = new ST文字位置(); + st文字位置11.ch = '%'; + st文字位置11.pt = new Point( 320, 0 ); + st文字位置Array[ 10 ] = st文字位置11; + st文字位置12 = new ST文字位置(); + st文字位置12.ch = ' '; + st文字位置12.pt = new Point( 0, 0 ); + st文字位置Array[ 11 ] = st文字位置12; + this.st小文字位置 = st文字位置Array; + #endregion + } + + + // メソッド + + public void t演奏結果を格納する( out CScoreIni.C演奏記録 Drums ) + { + base.t演奏結果を格納する_ドラム( out Drums ); + } + + + // CStage 実装 + + public override void On活性化() + { + LoudnessMetadataScanner.StopBackgroundScanning(joinImmediately: false); + + this.bフィルイン中 = false; + this.n待機中の大音符の座標 = 0; + this.actGame.t叩ききりまショー_初期化(); + base.ReSetScore(TJAPlayer3.DTX.nScoreInit[0, TJAPlayer3.stage選曲.n確定された曲の難易度[0]], TJAPlayer3.DTX.nScoreDiff[TJAPlayer3.stage選曲.n確定された曲の難易度[0]]); + #region [ branch ] + for (int i = 0; i < 2; i++) + { + this.n分岐した回数[0] = 0; + this.bLEVELHOLD[i] = false; + } + this.nBranch条件数値A = 0; + this.nBranch条件数値B = 0; + #endregion + + base.On活性化(); + base.eフェーズID = CStage.Eフェーズ.共通_通常状態;//初期化すれば、リザルト変遷は止まる。 + + // MODIFY_BEGIN #25398 2011.06.07 FROM + if ( TJAPlayer3.bコンパクトモード ) + { + var score = new Cスコア(); + TJAPlayer3.Songs管理.tScoreIniを読み込んで譜面情報を設定する( TJAPlayer3.strコンパクトモードファイル + ".score.ini", score ); + } + else + { + } + // MODIFY_END #25398 + dtLastQueueOperation = DateTime.MinValue; + + //int nUnit = (int)( ( ( 60.0 / ( CDTXMania.stage演奏ドラム画面.actPlayInfo.dbBPM ) ) ) * 1000.0 / this.actChara.arモーション番号.Length ); + //int nUnit_gogo = (int)((60.0 / ( CDTXMania.stage演奏ドラム画面.actPlayInfo.dbBPM ) / this.actChara.arゴーゴーモーション番号.Length ) * 1000 ); + + //double dbUnit = ( ( ( 60.0 / ( CDTXMania.stage演奏ドラム画面.actPlayInfo.dbBPM ) ) ) ); + //double dbUnit_gogo = ( ( ( 60.0 / ( CDTXMania.stage演奏ドラム画面.actPlayInfo.dbBPM ) ) ) / this.actChara.arゴーゴーモーション番号.Length ); + + double dbPtn_Normal = (60.0 / TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM) * TJAPlayer3.Skin.Game_Chara_Beat_Normal / this.actChara.arモーション番号.Length; + double dbPtn_Clear = (60.0 / TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM) * TJAPlayer3.Skin.Game_Chara_Beat_Clear / this.actChara.arクリアモーション番号.Length; + double dbPtn_GoGo = (60.0 / TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM) * TJAPlayer3.Skin.Game_Chara_Beat_GoGo / this.actChara.arゴーゴーモーション番号.Length; + + PuchiChara.ChangeBPM(60.0 / TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM); + + //dbUnit = Math.Ceiling( dbUnit * 1000.0 ); + //dbUnit = dbUnit / 1000.0; + + //this.actChara.ctChara_Normal = new CCounter( 0, this.actChara.arモーション番号.Length - 1, dbPtn_Normal, CSound管理.rc演奏用タイマ ); + ////this.actChara.ct通常モーション = new CCounter( 0, this.actChara.arモーション番号.Length - 1, 0.07, CSound管理.rc演奏用タイマ ); + //this.actChara.ctChara_GoGo = new CCounter( 0, this.actChara.arゴーゴーモーション番号.Length - 1, dbPtn_GoGo, CSound管理.rc演奏用タイマ ); + + for(int nPlayer = 0; nPlayer < 2; nPlayer++) + { + if (TJAPlayer3.Skin.Game_Chara_Ptn_Normal != 0) + { + this.actChara.ctChara_Normal[nPlayer] = new CCounter(0, this.actChara.arモーション番号.Length - 1, dbPtn_Normal, CSound管理.rc演奏用タイマ); + } + else + { + this.actChara.ctChara_Normal[nPlayer] = new CCounter(); + } + if (TJAPlayer3.Skin.Game_Chara_Ptn_Clear != 0) + { + this.actChara.ctChara_Clear[nPlayer] = new CCounter(0, this.actChara.arクリアモーション番号.Length - 1, dbPtn_Clear, CSound管理.rc演奏用タイマ); + } + else + { + this.actChara.ctChara_Clear[nPlayer] = new CCounter(); + } + if (TJAPlayer3.Skin.Game_Chara_Ptn_GoGo != 0) + { + this.actChara.ctChara_GoGo[nPlayer] = new CCounter(0, this.actChara.arゴーゴーモーション番号.Length - 1, dbPtn_GoGo, CSound管理.rc演奏用タイマ); + } + else + { + this.actChara.ctChara_GoGo[nPlayer] = new CCounter(); + } + } + + //if (this.actChara.ctキャラクターアクションタイマ != null) this.actChara.ctキャラクターアクションタイマ = new CCounter(); + + //this.actDancer.ct通常モーション = new CCounter( 0, this.actDancer.arモーション番号_通常.Length - 1, ( dbUnit * 4.0) / this.actDancer.arモーション番号_通常.Length, CSound管理.rc演奏用タイマ ); + //this.actDancer.ctモブ = new CCounter( 1.0, 16.0, ((60.0 / CDTXMania.stage演奏ドラム画面.actPlayInfo.dbBPM / 16.0 )), CSound管理.rc演奏用タイマ ); + + if(this.actDancer.ct踊り子モーション != null) + { + double dbUnit_dancer = (((60 / (TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM))) / this.actDancer.ar踊り子モーション番号.Length); + this.actDancer.ct踊り子モーション = new CCounter(0, this.actDancer.ar踊り子モーション番号.Length - 1, dbUnit_dancer * TJAPlayer3.Skin.Game_Dancer_Beat, CSound管理.rc演奏用タイマ); + }else + { + this.actDancer.ct踊り子モーション = new CCounter(); + } + + this.ct手つなぎ = new CCounter( 0, 60, 20, TJAPlayer3.Timer ); + this.ShownLyric2 = 0; + + //try + //{ + // this.stream = new StreamWriter("noteTest.txt", false); + //} + //catch (Exception ex) + //{ + // this.stream.Close(); + // this.stream = new StreamWriter("noteTest.txt", false); + //} + // Discord Presence の更新 + var difficultyName = TJAPlayer3.DifficultyNumberToEnum(TJAPlayer3.stage選曲.n確定された曲の難易度[0]).ToString(); + Discord.UpdatePresence(TJAPlayer3.ConfigIni.SendDiscordPlayingInformation ? TJAPlayer3.DTX.strファイル名 : "", + Properties.Discord.Stage_InGame + (TJAPlayer3.ConfigIni.b太鼓パートAutoPlay == true ? " (" + Properties.Discord.Info_IsAuto + ")" : ""), + 0, + Discord.GetUnixTime() + (long)TJAPlayer3.DTX.listChip[TJAPlayer3.DTX.listChip.Count - 1].n発声時刻ms / 1000, + TJAPlayer3.ConfigIni.SendDiscordPlayingInformation ? difficultyName.ToLower() : "", + TJAPlayer3.ConfigIni.SendDiscordPlayingInformation ? String.Format("COURSE:{0} ({1})", difficultyName, TJAPlayer3.stage選曲.n確定された曲の難易度) : ""); + } + public override void On非活性化() + { + this.ct手つなぎ = null; + base.On非活性化(); + + LoudnessMetadataScanner.StartBackgroundScanning(); + } + public override void OnManagedリソースの作成() + { + if( !base.b活性化してない ) + { + //this.t背景テクスチャの生成(); + //this.tx太鼓ノーツ = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\7_taiko_notes.png" ) ); + //this.txHand = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\7_taiko_notes_arm.png" ) ); + //this.txSenotes = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\7_senotes.png" ) ); + //this.tx小節線 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\7_bar_line.png" ) ); + //this.tx小節線_branch = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\7_bar_line_branch.png" ) ); + // this.tx判定数小文字 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\8_Result_number_s.png" ) ); + // this.txNamePlate = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\7_NamePlate.png" ) ); + // if (CDTXMania.stage演奏ドラム画面.bDoublePlay) + // this.txNamePlate2P = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\7_NamePlate2P.png" ) ); + // this.txPlayerNumber = CDTXMania.tテクスチャの生成(CSkin.Path(@"Graphics\7_PlayerNumber.png")); + + // this.tx判定数表示パネル = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\7_Paramater Panel.png" ) ); + + // When performing calibration, reduce audio distraction from user input. + // For users who play primarily by listening to the music, + // you might think that we want them to hear drum sound effects during + // calibration, but we do not. Humans are remarkably good at adjusting + // the timing of their own physical movement, even without realizing it. + // We are calibrating their input timing for the purposes of judgment. + // We do not want them subconsciously playing early so as to line up + // their drum sound effects with the sounds of the input calibration file. + // Instead, we want them focused on the sounds of their keyboard, tatacon, + // other controller, etc. and the sounds of the input calibration audio file. + if (!TJAPlayer3.IsPerformingCalibration) + { + this.soundRed = TJAPlayer3.Sound管理.tサウンドを生成する( CSkin.Path( @"Sounds\Taiko\dong.ogg" ), ESoundGroup.SoundEffect ); + this.soundBlue = TJAPlayer3.Sound管理.tサウンドを生成する( CSkin.Path( @"Sounds\Taiko\ka.ogg" ), ESoundGroup.SoundEffect ); + this.soundAdlib = TJAPlayer3.Sound管理.tサウンドを生成する( CSkin.Path(@"Sounds\Taiko\Adlib.ogg"), ESoundGroup.SoundEffect ); + this.soundRed2 = TJAPlayer3.Sound管理.tサウンドを生成する(CSkin.Path(@"Sounds\Taiko\dong.ogg"), ESoundGroup.SoundEffect); + this.soundBlue2 = TJAPlayer3.Sound管理.tサウンドを生成する(CSkin.Path(@"Sounds\Taiko\ka.ogg"), ESoundGroup.SoundEffect); + this.soundAdlib2 = TJAPlayer3.Sound管理.tサウンドを生成する(CSkin.Path(@"Sounds\Taiko\Adlib.ogg"), ESoundGroup.SoundEffect); + + if (TJAPlayer3.ConfigIni.nPlayerCount >= 2)//2020.05.06 Mr-Ojii左右に出したかったから、追加。 + { + this.soundRed.n位置 = -100; + this.soundBlue.n位置 = -100; + this.soundAdlib.n位置 = -100; + this.soundRed2.n位置 = 100; + this.soundBlue2.n位置 = 100; + this.soundAdlib2.n位置 = 100; + } + } + + base.OnManagedリソースの作成(); + } + } + public override void OnManagedリソースの解放() + { + if( !base.b活性化してない ) + { + ////CDTXMania.tテクスチャの解放( ref this.tx背景 ); + //CDTXMania.tテクスチャの解放( ref this.txヒットバー ); + //CDTXMania.tテクスチャの解放( ref this.txヒットバーGB ); + //CDTXMania.tテクスチャの解放( ref this.txチップ ); + // //CDTXMania.tテクスチャの解放( ref this.tx太鼓ノーツ ); + // CDTXMania.tテクスチャの解放( ref this.txHand ); + // CDTXMania.tテクスチャの解放( ref this.txSenotes ); + // CDTXMania.tテクスチャの解放( ref this.tx小節線 ); + // CDTXMania.tテクスチャの解放( ref this.tx小節線_branch ); + //CDTXMania.tテクスチャの解放( ref this.txレーンフレームGB ); + ////CDTXMania.tテクスチャの解放( ref this.txWailing枠 ); + + // CDTXMania.tテクスチャの解放( ref this.tx判定数表示パネル ); + // CDTXMania.tテクスチャの解放( ref this.tx判定数小文字 ); + // CDTXMania.tテクスチャの解放( ref this.txNamePlate ); + // if (CDTXMania.stage演奏ドラム画面.bDoublePlay) + // CDTXMania.tテクスチャの解放( ref this.txNamePlate2P ); + // CDTXMania.tテクスチャの解放( ref this.txPlayerNumber); + + if( this.soundRed != null ) + this.soundRed.t解放する(); + if( this.soundBlue != null ) + this.soundBlue.t解放する(); + if( this.soundAdlib != null ) + this.soundAdlib.t解放する(); + if (this.soundRed2 != null) + this.soundRed2.t解放する(); + if (this.soundBlue2 != null) + this.soundBlue2.t解放する(); + if (this.soundAdlib2 != null) + this.soundAdlib2.t解放する(); + base.OnManagedリソースの解放(); + } + } + public override int On進行描画() + { + base.sw.Start(); + if( !base.b活性化してない ) + { + bool bIsFinishedPlaying = false; + bool bIsFinishedEndAnime = false; + bool bIsFinishedFadeout = false; + #region [ 初めての進行描画 ] + if ( base.b初めての進行描画 ) + { + CSound管理.rc演奏用タイマ.tリセット(); + TJAPlayer3.Timer.tリセット(); + this.ctチップ模様アニメ.Drums = new CCounter( 0, 1, 500, TJAPlayer3.Timer ); + this.ctチップ模様アニメ.Guitar = new CCounter( 0, 0x17, 20, TJAPlayer3.Timer ); + this.ctチップ模様アニメ.Bass = new CCounter( 0, 0x17, 20, TJAPlayer3.Timer ); + this.ctチップ模様アニメ.Taiko = new CCounter( 0, 1, 500, TJAPlayer3.Timer ); + + // this.actChipFireD.Start( Eレーン.HH ); // #31554 2013.6.12 yyagi + // 初チップヒット時のもたつき回避。最初にactChipFireD.Start()するときにJITが掛かって? + // ものすごく待たされる(2回目以降と比べると2,3桁tick違う)。そこで最初の画面フェードインの間に + // 一発Start()を掛けてJITの結果を生成させておく。 + + base.eフェーズID = CStage.Eフェーズ.共通_フェードイン; + + this.actFI.tフェードイン開始(); + + if ( TJAPlayer3.DTXVmode.Enabled ) // DTXVモードなら + { + #region [ DTXV用の再生設定にする(全AUTOなど) ] + tDTXV用の設定(); + #endregion + t演奏位置の変更( TJAPlayer3.DTXVmode.nStartBar, 0 ); + } + + TJAPlayer3.Sound管理.tDisableUpdateBufferAutomatically(); + base.b初めての進行描画 = false; + } + #endregion + if ( ( ( TJAPlayer3.ConfigIni.nRisky != 0 && this.actGauge.IsFailed( E楽器パート.TAIKO ) ) || this.actGame.st叩ききりまショー.ct残り時間.b終了値に達した ) && ( base.eフェーズID == CStage.Eフェーズ.共通_通常状態 ) ) + { + this.actStageFailed.Start(); + TJAPlayer3.DTX.t全チップの再生停止(); + base.eフェーズID = CStage.Eフェーズ.演奏_STAGE_FAILED; + } + if( !String.IsNullOrEmpty( TJAPlayer3.DTX.strBGIMAGE_PATH ) || ( TJAPlayer3.DTX.listAVI.Count == 0 )|| !TJAPlayer3.ConfigIni.bAVI有効 ) //背景動画があったら背景画像を描画しない。 + { + this.t進行描画_背景(); + } + + if (TJAPlayer3.ConfigIni.bAVI有効 && TJAPlayer3.DTX.listAVI.Count > 0 && !TJAPlayer3.ConfigIni.bTokkunMode) + { + this.t進行描画_AVI(); + } + else if (TJAPlayer3.ConfigIni.bBGA有効) + { + if (TJAPlayer3.ConfigIni.bTokkunMode) actTokkun.On進行描画_背景(); + else actBackground.On進行描画(); + } + + if (!TJAPlayer3.ConfigIni.bAVI有効 && !TJAPlayer3.ConfigIni.bTokkunMode) + { + actRollChara.On進行描画(); + } + + if (!TJAPlayer3.ConfigIni.bAVI有効 && !bDoublePlay && TJAPlayer3.ConfigIni.ShowDancer && !TJAPlayer3.ConfigIni.bTokkunMode) + { + actDancer.On進行描画(); + } + + if(!TJAPlayer3.ConfigIni.bAVI有効 && !bDoublePlay && TJAPlayer3.ConfigIni.ShowFooter && !TJAPlayer3.ConfigIni.bTokkunMode) + this.actFooter.On進行描画(); + + //this.t進行描画_グラフ(); // #24074 2011.01.23 add ikanick + + + //this.t進行描画_DANGER(); + //this.t進行描画_判定ライン(); + if (!TJAPlayer3.ConfigIni.bNoInfo && TJAPlayer3.ConfigIni.bTokkunMode) + this.t進行描画_ネームプレート(); + if( TJAPlayer3.ConfigIni.ShowChara ) + this.actChara.On進行描画(); + + if(!TJAPlayer3.ConfigIni.bAVI有効 && TJAPlayer3.ConfigIni.ShowMob && !TJAPlayer3.ConfigIni.bTokkunMode) + this.actMob.On進行描画(); + + if ( TJAPlayer3.ConfigIni.eGameMode != EGame.OFF ) + this.actGame.On進行描画(); + + this.t進行描画_譜面スクロール速度(); + this.t進行描画_チップアニメ(); + + this.actLaneTaiko.On進行描画(); + //this.t進行描画_レーン(); + //this.t進行描画_レーンフラッシュD(); + + if( ( TJAPlayer3.ConfigIni.eClipDispType == EClipDispType.ウィンドウのみ || TJAPlayer3.ConfigIni.eClipDispType == EClipDispType.両方 ) && TJAPlayer3.ConfigIni.nPlayerCount == 1 ) + this.actAVI.t窓表示(); + + if( !TJAPlayer3.ConfigIni.bNoInfo && !TJAPlayer3.ConfigIni.bTokkunMode) + this.t進行描画_ゲージ(); + + this.actLaneTaiko.ゴーゴー炎(); + + + for ( int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++ ) + { + bIsFinishedPlaying = this.t進行描画_チップ( E楽器パート.DRUMS, i ); + this.t進行描画_チップ_連打( E楽器パート.DRUMS, i ); + } + + this.actDan.On進行描画(); + + this.actMtaiko.On進行描画(); + this.GoGoSplash.On進行描画(); + this.t進行描画_リアルタイム判定数表示(); + if (TJAPlayer3.ConfigIni.bTokkunMode) + this.actTokkun.On進行描画_小節_速度(); + + if ( !TJAPlayer3.ConfigIni.bNoInfo ) + this.t進行描画_コンボ(); + if( !TJAPlayer3.ConfigIni.bNoInfo && !TJAPlayer3.ConfigIni.bTokkunMode) + this.t進行描画_スコア(); + + + this.Rainbow.On進行描画(); + this.FireWorks.On進行描画(); + this.actChipEffects.On進行描画(); + this.FlyingNotes.On進行描画(); + this.t進行描画_チップファイアD(); + + if (!TJAPlayer3.ConfigIni.bNoInfo) + this.t進行描画_パネル文字列(); + + this.actComboBalloon.On進行描画(); + + for ( int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++ ) + { + this.actRoll.On進行描画( this.n現在の連打数[ i ], i ); + } + + + if( !TJAPlayer3.ConfigIni.bNoInfo ) + this.t進行描画_判定文字列1_通常位置指定の場合(); + + this.t進行描画_演奏情報(); + + if (TJAPlayer3.DTX.listLyric2.Count > ShownLyric2 && TJAPlayer3.DTX.listLyric2[ShownLyric2].Time < (long)(CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0))) + { + this.actPanel.t歌詞テクスチャを生成する(TJAPlayer3.DTX.listLyric2[ShownLyric2++].TextTex); + } + + this.actPanel.t歌詞テクスチャを描画する(); + + actChara.OnDraw_Balloon(); + + this.t全体制御メソッド(); + + this.actPauseMenu.t進行描画(); + //this.actEnd.On進行描画(); + this.t進行描画_STAGEFAILED(); + + this.ScoreRank.On進行描画(); + + if (TJAPlayer3.ConfigIni.bTokkunMode) + { + actTokkun.On進行描画(); + } + + bIsFinishedEndAnime = this.actEnd.On進行描画() == 1 ? true : false; + bIsFinishedFadeout = this.t進行描画_フェードイン_アウト(); + + //演奏終了→演出表示→フェードアウト + if( bIsFinishedPlaying && base.eフェーズID == CStage.Eフェーズ.共通_通常状態 ) + { + if (TJAPlayer3.ConfigIni.bTokkunMode) + { + bIsFinishedPlaying = false; + TJAPlayer3.Skin.sound特訓停止音.t再生する(); + actTokkun.t演奏を停止する(); + + actTokkun.t譜面の表示位置を合わせる(true); + } + else + { + for(int i = 0; i < 2; i++) + { + base.eフェーズID = CStage.Eフェーズ.演奏_演奏終了演出; + + this.actEnd.Start(); + if (TJAPlayer3.Skin.Game_Chara_Ptn_10combo_Max != 0) + { + if (TJAPlayer3.stage演奏ドラム画面.actGauge.db現在のゲージ値[0] >= 100) + { + double dbUnit = (((60.0 / (TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM)))); + this.actChara.アクションタイマーリセット(i); + this.actChara.ctキャラクターアクション_10コンボMAX[i] = new CCounter(0, TJAPlayer3.Skin.Game_Chara_Ptn_10combo_Max - 1, (dbUnit / TJAPlayer3.Skin.Game_Chara_Ptn_10combo_Max) * 2, CSound管理.rc演奏用タイマ); + this.actChara.ctキャラクターアクション_10コンボMAX[i].t進行db(); + this.actChara.ctキャラクターアクション_10コンボMAX[i].n現在の値 = 0; + this.actChara.bマイどんアクション中[i] = true; + } + } + } + } + } + else if( bIsFinishedEndAnime && base.eフェーズID == Eフェーズ.演奏_演奏終了演出 ) + { + this.eフェードアウト完了時の戻り値 = E演奏画面の戻り値.ステージクリア; + base.eフェーズID = CStage.Eフェーズ.演奏_STAGE_CLEAR_フェードアウト; + this.actFOClear.tフェードアウト開始(); + } + + + //if( bIsFinishedPlaying && ( base.eフェーズID == CStage.Eフェーズ.共通_通常状態 ) ) + //{ + // this.eフェードアウト完了時の戻り値 = E演奏画面の戻り値.ステージクリア; + // base.eフェーズID = CStage.Eフェーズ.演奏_STAGE_CLEAR_フェードアウト; + // this.actFOClear.tフェードアウト開始(); + //} + + if( bIsFinishedFadeout ) + { + Debug.WriteLine( "Total On進行描画=" + sw.ElapsedMilliseconds + "ms" ); + return (int) this.eフェードアウト完了時の戻り値; + } + + ManageMixerQueue(); + + // キー入力 + + if( TJAPlayer3.act現在入力を占有中のプラグイン == null ) + this.tキー入力(); + + + } + base.sw.Stop(); + return 0; + } + + // その他 + + #region [ private ] + //----------------- + [StructLayout( LayoutKind.Sequential )] + private struct ST文字位置 + { + public char ch; + public Point pt; + } + public CAct演奏DrumsチップファイアD actChipFireD; + + private CAct演奏Drumsグラフ actGraph; // #24074 2011.01.23 add ikanick + private CAct演奏Drumsパッド actPad; + public CAct演奏Drumsレーン actLane; + public CAct演奏DrumsMtaiko actMtaiko; + public CAct演奏Drumsレーン太鼓 actLaneTaiko; + public CAct演奏Drums演奏終了演出 actEnd; + private CAct演奏Drumsゲームモード actGame; + public CAct演奏Drums特訓モード actTokkun; + public CAct演奏Drums背景 actBackground; + public GoGoSplash GoGoSplash; + public FlyingNotes FlyingNotes; + public FireWorks FireWorks; + public PuchiChara PuchiChara; + public CAct演奏Drumsスコアランク ScoreRank; + private bool bフィルイン中; + private readonly Eパッド[] eチャンネルtoパッド = new Eパッド[] + { + Eパッド.HH, Eパッド.SD, Eパッド.BD, Eパッド.HT, + Eパッド.LT, Eパッド.CY, Eパッド.FT, Eパッド.HHO, + Eパッド.RD, Eパッド.UNKNOWN, Eパッド.UNKNOWN, Eパッド.LC, + Eパッド.LP, Eパッド.LBD + }; + private int[] nチャンネルtoX座標 = new int[] { 370, 470, 582, 527, 645, 748, 694, 373, 815, 298, 419, 419 }; + private CCounter ct手つなぎ; + private CTexture txヒットバーGB; + private CTexture txレーンフレームGB; + //private CTexture tx太鼓ノーツ; + //private CTexture txHand; + //private CTexture txSenotes; + //private CTexture tx小節線; + //private CTexture tx小節線_branch; + + private CTexture tx判定数表示パネル; + private CTexture tx判定数小文字; + //private CTexture txNamePlate; //ちょっと描画順で都合が悪くなるので移動。 + //private CTexture txNamePlate2P; //ちょっと描画順で都合が悪くなるので移動。 + //private CTexture txPlayerNumber; + + private CTexture txMovie; //2016.08.30 kairera0467 ウィンドウ表示 + + public float nGauge = 0.0f; + private int ShownLyric2 = 0; + + private StreamWriter stream; + + private int n待機中の大音符の座標; + private readonly ST文字位置[] st小文字位置; + private readonly ST文字位置[] st大文字位置; + //----------------- + + private bool bフィルイン区間の最後のChipである( CDTX.CChip pChip ) + { + if( pChip == null ) + { + return false; + } + int num = pChip.n発声位置; + for( int i = listChip[0].IndexOf( pChip ) + 1; i < listChip[0].Count; i++ ) + { + pChip = listChip[0][ i ]; + if( ( pChip.nチャンネル番号 == 0x53 ) && ( pChip.n整数値 == 2 ) ) + { + return true; + } + if( ( ( pChip.nチャンネル番号 >= 0x11 ) && ( pChip.nチャンネル番号 <= 0x1C ) ) && ( ( pChip.n発声位置 - num ) > 0x18 ) ) + { + return false; + } + } + return true; + } + + protected override E判定 tチップのヒット処理( long nHitTime, CDTX.CChip pChip, bool bCorrectLane ) + { + E判定 eJudgeResult = tチップのヒット処理( nHitTime, pChip, E楽器パート.DRUMS, bCorrectLane, 0 ); + // #24074 2011.01.23 add ikanick + if( pChip.nコース == this.n現在のコース[ 0 ] && ( pChip.nチャンネル番号 >= 0x11 && pChip.nチャンネル番号 <= 0x14 ) && pChip.bShow == true && eJudgeResult != E判定.Auto ) + this.actGame.t叩ききりまショー_判定から各数値を増加させる( eJudgeResult, (int)( nHitTime - pChip.n発声時刻ms ) ); + return eJudgeResult; + } + + protected override void tチップのヒット処理_BadならびにTight時のMiss(CDTX.ECourse eCourse, E楽器パート part) + { + this.tチップのヒット処理_BadならびにTight時のMiss(eCourse, part, 0, E楽器パート.DRUMS); + } + protected override void tチップのヒット処理_BadならびにTight時のMiss(CDTX.ECourse eCourse, E楽器パート part, int nLane) + { + this.tチップのヒット処理_BadならびにTight時のMiss(eCourse, part, nLane, E楽器パート.DRUMS); + } + + private bool tドラムヒット処理( long nHitTime, Eパッド type, CDTX.CChip pChip, bool b両手入力, int nPlayer ) + { + int nInput = 0; + + switch( type ) + { + case Eパッド.LRed: + case Eパッド.RRed: + case Eパッド.LRed2P: + case Eパッド.RRed2P: + nInput = 0; + if( b両手入力 ) + nInput = 2; + break; + case Eパッド.LBlue: + case Eパッド.RBlue: + case Eパッド.LBlue2P: + case Eパッド.RBlue2P: + nInput = 1; + if( b両手入力 ) + nInput = 3; + break; + } + + + if( pChip == null ) + { + return false; + } + int index = pChip.nチャンネル番号; + if ( ( index >= 0x11 ) && ( index <= 0x12 ) ) + { + index -= 0x11; + } + else if ( ( index >= 0x13 ) && ( index <= 0x14 ) ) + { + index -= 0x13; + } + else if ( ( index >= 0x1A ) && ( index <= 0x1B ) ) + { + index -= 0x1A; + } + else if( index == 0x1F ) + { + index = 0x11 - 0x11; + } + else if( pChip.nチャンネル番号 >= 0x15 && pChip.nチャンネル番号 <= 0x17 ) + { + this.tチップのヒット処理( nHitTime, pChip, E楽器パート.TAIKO, true, nInput, nPlayer ); + return true; + } + else + { + return false; + } + + + int nLane = index; + int nPad = index; + + E判定 e判定 = this.e指定時刻からChipのJUDGEを返す( nHitTime, pChip ); + //if( pChip.nコース == this.n現在のコース ) + this.actGame.t叩ききりまショー_判定から各数値を増加させる( e判定, (int)( nHitTime - pChip.n発声時刻ms ) ); + if( e判定 == E判定.Miss ) + { + return false; + } + this.tチップのヒット処理( nHitTime, pChip, E楽器パート.TAIKO, true, nInput, nPlayer ); + if( ( e判定 != E判定.Poor ) && ( e判定 != E判定.Miss ) ) + { + TJAPlayer3.stage演奏ドラム画面.actLaneTaiko.Start( pChip.nチャンネル番号, e判定, b両手入力, nPlayer ); + + int nFly = 0; + switch(pChip.nチャンネル番号) + { + case 0x11: + nFly = 1; + break; + case 0x12: + nFly = 2; + break; + case 0x13: + case 0x1A: + nFly = b両手入力 ? 3 : 1; + break; + case 0x14: + case 0x1B: + nFly = b両手入力 ? 4 : 2; + break; + case 0x1F: + nFly = nInput == 0 ? 1 : 2; + break; + default: + nFly = 1; + break; + } + + + //this.actChipFireTaiko.Start( nFly, nPlayer ); + this.actTaikoLaneFlash.PlayerLane[nPlayer].Start(PlayerLane.FlashType.Hit); + this.FlyingNotes.Start(nFly, nPlayer); + } + + return true; + } + + protected override void ドラムスクロール速度アップ() + { + TJAPlayer3.ConfigIni.n譜面スクロール速度.Drums = Math.Min( TJAPlayer3.ConfigIni.n譜面スクロール速度.Drums + 1, 1999 ); + } + protected override void ドラムスクロール速度ダウン() + { + TJAPlayer3.ConfigIni.n譜面スクロール速度.Drums = Math.Max( TJAPlayer3.ConfigIni.n譜面スクロール速度.Drums - 1, 0 ); + } + + + protected override void t進行描画_AVI() + { + base.t進行描画_AVI( 0, 0 ); + } + protected override void t進行描画_DANGER() + { + this.actDANGER.t進行描画( this.actGauge.IsDanger(E楽器パート.DRUMS), false, false ); + } + + private void t進行描画_グラフ() + { + if( TJAPlayer3.ConfigIni.bGraph.Drums ) + { + this.actGraph.On進行描画(); + } + } + + private void t進行描画_チップファイアD() + { + this.actChipFireD.On進行描画(); + } + + + private void t進行描画_ドラムパッド() + { + if( TJAPlayer3.ConfigIni.eDark != Eダークモード.FULL ) + { + this.actPad.On進行描画(); + } + } + protected override void t進行描画_パネル文字列() + { + base.t進行描画_パネル文字列( 336, 427 ); + } + + protected override void t進行描画_演奏情報() + { + base.t進行描画_演奏情報( 1000, 257 ); + } + + protected override void t紙吹雪_開始() + { + //if( this.actCombo.n現在のコンボ数.Drums % 10 == 0 && this.actCombo.n現在のコンボ数.Drums > 0 ) + { + //this.actChipFireD.Start紙吹雪(); + } + } + + protected override void t入力処理_ドラム() + { + var nInputAdjustTimeMs = TJAPlayer3.ConfigIni.nInputAdjustTimeMs; + + for( int nPad = 0; nPad < (int) Eパッド.MAX; nPad++ ) // #27029 2012.1.4 from: <10 to <=10; Eパッドの要素が1つ(HP)増えたため。 + // 2012.1.5 yyagi: (int)Eパッド.MAX に変更。Eパッドの要素数への依存を無くすため。 + { + List listInputEvent = TJAPlayer3.Pad.GetEvents( E楽器パート.DRUMS, (Eパッド) nPad ); + + if( ( listInputEvent == null ) || ( listInputEvent.Count == 0 ) ) + continue; + + this.t入力メソッド記憶( E楽器パート.DRUMS ); + + foreach( STInputEvent inputEvent in listInputEvent ) + { + if( !inputEvent.b押された ) + continue; + + long nTime = (long)(((inputEvent.nTimeStamp + nInputAdjustTimeMs - CSound管理.rc演奏用タイマ.n前回リセットした時のシステム時刻) * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0))); + //int nPad09 = ( nPad == (int) Eパッド.HP ) ? (int) Eパッド.BD : nPad; // #27029 2012.1.5 yyagi + + bool bHitted = false; + + int nLane = 0; + int nHand = 0; + int nChannel = 0; + + //連打チップを検索してから通常音符検索 + //連打チップの検索は、 + //一番近くの連打音符を探す→時刻チェック + //発声 < 現在時刻 && 終わり > 現在時刻 + + //2015.03.19 kairera0467 Chipを1つにまとめて1つのレーン扱いにする。 + int nUsePlayer = 0; + if (nPad >= 12 && nPad <= 15) + { + nUsePlayer = 0; + } + else if (nPad >= 16 && nPad <= 19) + { + nUsePlayer = 1; + if (TJAPlayer3.ConfigIni.nPlayerCount < 2) //プレイ人数が2人以上でなければ入力をキャンセル + break; + } + if (!TJAPlayer3.ConfigIni.bTokkunMode && TJAPlayer3.ConfigIni.b太鼓パートAutoPlay && (nPad >= 12 && nPad <= 15))//2020.05.18 Mr-Ojii オート時の入力キャンセル + break; + else if (TJAPlayer3.ConfigIni.b太鼓パートAutoPlay && (nPad >= 16 && nPad <= 19)) + break; + var padTo = nUsePlayer == 0 ? nPad - 12 : nPad - 12 - 4; + var isDon = padTo < 2 ? true : false; + + CDTX.CChip chipNoHit = r指定時刻に一番近い未ヒットChipを過去方向優先で検索する(nTime, nUsePlayer); + E判定 e判定 = (chipNoHit != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipNoHit) : E判定.Miss; + + + bool b太鼓音再生フラグ = true; + if (chipNoHit != null) + { + if (chipNoHit.nチャンネル番号 == 0x1F && (e判定 == E判定.Perfect || e判定 == E判定.Good)) + b太鼓音再生フラグ = false; + if (chipNoHit.nチャンネル番号 == 0x1F && (e判定 != E判定.Miss && e判定 != E判定.Poor)) + if (chipNoHit.nPlayerSide == 0) + { + this.soundAdlib?.t再生を開始する(); + } + else + { + this.soundAdlib2?.t再生を開始する(); + } + } + + switch (nPad) + { + case 12: + nLane = 0; + nHand = 0; + nChannel = 0x11; + if (b太鼓音再生フラグ) + { + this.soundRed?.t再生を開始する(); + } + break; + case 13: + nLane = 0; + nHand = 1; + nChannel = 0x11; + if (b太鼓音再生フラグ) + { + this.soundRed?.t再生を開始する(); + } + break; + case 14: + nLane = 1; + nHand = 0; + nChannel = 0x12; + if (b太鼓音再生フラグ) + this.soundBlue?.t再生を開始する(); + break; + case 15: + nLane = 1; + nHand = 1; + nChannel = 0x12; + if (b太鼓音再生フラグ) + this.soundBlue?.t再生を開始する(); + break; + //以下2P + case 16: + nLane = 0; + nHand = 0; + nChannel = 0x11; + if (b太鼓音再生フラグ) + { + this.soundRed2?.t再生を開始する(); + } + break; + case 17: + nLane = 0; + nHand = 1; + nChannel = 0x11; + if (b太鼓音再生フラグ) + { + this.soundRed2?.t再生を開始する(); + } + break; + case 18: + nLane = 1; + nHand = 0; + nChannel = 0x12; + if (b太鼓音再生フラグ) + this.soundBlue2?.t再生を開始する(); + break; + case 19: + nLane = 1; + nHand = 1; + nChannel = 0x12; + if (b太鼓音再生フラグ) + this.soundBlue2?.t再生を開始する(); + break; + } + + TJAPlayer3.stage演奏ドラム画面.actTaikoLaneFlash.PlayerLane[nUsePlayer].Start((PlayerLane.FlashType)nLane); + TJAPlayer3.stage演奏ドラム画面.actMtaiko.tMtaikoEvent(nChannel, nHand, nUsePlayer); + + if (this.b連打中[nUsePlayer]) + { + chipNoHit = this.chip現在処理中の連打チップ[nUsePlayer]; + e判定 = E判定.Perfect; + } + + if (chipNoHit == null) + { + break; + } + + + #region [ (A) ヒットしていればヒット処理して次の inputEvent へ ] + //----------------------------- + switch (((Eパッド)nPad)) + { + case Eパッド.LRed: + case Eパッド.LRed2P: + #region[ 面のヒット処理 ] + //----------------------------- + { + if (e判定 != E判定.Miss && chipNoHit.nチャンネル番号 == 0x11) + { + this.tドラムヒット処理(nTime, Eパッド.LRed, chipNoHit, false, nUsePlayer); + bHitted = true; + } + if (e判定 != E判定.Miss && (chipNoHit.nチャンネル番号 == 0x13 || chipNoHit.nチャンネル番号 == 0x1A) && !TJAPlayer3.ConfigIni.b大音符判定) + { + this.tドラムヒット処理(nTime, Eパッド.LRed, chipNoHit, true, nUsePlayer); + bHitted = true; + this.nWaitButton = 0; + break; + } + if (e判定 != E判定.Miss && (chipNoHit.nチャンネル番号 == 0x13 || chipNoHit.nチャンネル番号 == 0x1A) && TJAPlayer3.ConfigIni.b大音符判定) + { + if (chipNoHit.eNoteState == ENoteState.none) + { + float time = chipNoHit.n発声時刻ms - (float)(CSound管理.rc演奏用タイマ.n現在時刻ms * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)); + if (time <= 110) + { + chipNoHit.nProcessTime = (int)(CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)); + chipNoHit.eNoteState = ENoteState.wait; + this.nWaitButton = 2; + } + } + else if (chipNoHit.eNoteState == ENoteState.wait) + { + float time = chipNoHit.n発声時刻ms - (float)(CSound管理.rc演奏用タイマ.n現在時刻ms * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)); + int nWaitTime = TJAPlayer3.ConfigIni.n両手判定の待ち時間; + if (this.nWaitButton == 1 && time <= 110 && chipNoHit.nProcessTime + nWaitTime > (int)(CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0))) + { + this.tドラムヒット処理(nTime, Eパッド.LRed, chipNoHit, true, nUsePlayer); + bHitted = true; + this.nWaitButton = 0; + } + else if (this.nWaitButton == 2 && time <= 110 && chipNoHit.nProcessTime + nWaitTime < (int)(CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0))) + { + this.tドラムヒット処理(nTime, Eパッド.LRed, chipNoHit, false, nUsePlayer); + bHitted = true; + this.nWaitButton = 0; + } + } + } + if (e判定 != E判定.Miss && (chipNoHit.nチャンネル番号 == 0x15 || chipNoHit.nチャンネル番号 == 0x16 || chipNoHit.nチャンネル番号 == 0x17)) + { + this.tドラムヒット処理(nTime, Eパッド.LRed, chipNoHit, false, nUsePlayer); + } + + if (!bHitted) + break; + continue; + } + //----------------------------- + #endregion + case Eパッド.RRed: + case Eパッド.RRed2P: + #region[ 面のヒット処理 ] + //----------------------------- + { + if (e判定 != E判定.Miss && chipNoHit.nチャンネル番号 == 0x11) + { + this.tドラムヒット処理(nTime, Eパッド.RRed, chipNoHit, false, nUsePlayer); + bHitted = true; + } + if (e判定 != E判定.Miss && (chipNoHit.nチャンネル番号 == 0x13 || chipNoHit.nチャンネル番号 == 0x1A) && !TJAPlayer3.ConfigIni.b大音符判定) + { + this.tドラムヒット処理(nTime, Eパッド.RRed, chipNoHit, true, nUsePlayer); + bHitted = true; + this.nWaitButton = 0; + break; + } + if (e判定 != E判定.Miss && (chipNoHit.nチャンネル番号 == 0x13 || chipNoHit.nチャンネル番号 == 0x1A) && TJAPlayer3.ConfigIni.b大音符判定) + { + if (chipNoHit.eNoteState == ENoteState.none) + { + float time = chipNoHit.n発声時刻ms - (float)(CSound管理.rc演奏用タイマ.n現在時刻ms * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)); + if (time <= 110) + { + chipNoHit.nProcessTime = (int)CSound管理.rc演奏用タイマ.n現在時刻ms; + this.n待機中の大音符の座標 = chipNoHit.nバーからの距離dot.Taiko; + chipNoHit.eNoteState = ENoteState.wait; + this.nWaitButton = 1; + } + } + else if (chipNoHit.eNoteState == ENoteState.wait) + { + float time = chipNoHit.n発声時刻ms - (float)(CSound管理.rc演奏用タイマ.n現在時刻ms * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)); + int nWaitTime = TJAPlayer3.ConfigIni.n両手判定の待ち時間; + if (this.nWaitButton == 2 && time <= 110 && chipNoHit.nProcessTime + nWaitTime > (int)(CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0))) + { + this.tドラムヒット処理(nTime, Eパッド.RRed, chipNoHit, true, nUsePlayer); + bHitted = true; + this.nWaitButton = 0; + break; + } + else if (this.nWaitButton == 2 && time <= 110 && chipNoHit.nProcessTime + nWaitTime < (int)(CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0))) + { + this.tドラムヒット処理(nTime, Eパッド.RRed, chipNoHit, false, nUsePlayer); + bHitted = true; + this.nWaitButton = 0; + } + } + } + if (e判定 != E判定.Miss && (chipNoHit.nチャンネル番号 == 0x15 || chipNoHit.nチャンネル番号 == 0x16 || chipNoHit.nチャンネル番号 == 0x17)) + { + this.tドラムヒット処理(nTime, Eパッド.RRed, chipNoHit, false, nUsePlayer); + } + + if (!bHitted) + break; + + continue; + } + //----------------------------- + #endregion + + case Eパッド.LBlue: + case Eパッド.LBlue2P: + #region[ ふちのヒット処理 ] + //----------------------------- + { + if (e判定 != E判定.Miss && chipNoHit.nチャンネル番号 == 0x12) + { + this.tドラムヒット処理(nTime, Eパッド.LBlue, chipNoHit, false, nUsePlayer); + bHitted = true; + } + if (e判定 != E判定.Miss && (chipNoHit.nチャンネル番号 == 0x14 || chipNoHit.nチャンネル番号 == 0x1B) && !TJAPlayer3.ConfigIni.b大音符判定) + { + this.tドラムヒット処理(nTime, Eパッド.LBlue, chipNoHit, true, nUsePlayer); + bHitted = true; + this.nWaitButton = 0; + break; + } + if (e判定 != E判定.Miss && (chipNoHit.nチャンネル番号 == 0x14 || chipNoHit.nチャンネル番号 == 0x1B) && TJAPlayer3.ConfigIni.b大音符判定) + { + if (chipNoHit.eNoteState == ENoteState.none) + { + float time = chipNoHit.n発声時刻ms - (float)(CSound管理.rc演奏用タイマ.n現在時刻ms * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)); + if (time <= 110) + { + chipNoHit.nProcessTime = (int)CSound管理.rc演奏用タイマ.n現在時刻ms; + chipNoHit.eNoteState = ENoteState.wait; + this.nWaitButton = 2; + } + } + else if (chipNoHit.eNoteState == ENoteState.wait) + { + float time = chipNoHit.n発声時刻ms - (float)(CSound管理.rc演奏用タイマ.n現在時刻ms * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)); + int nWaitTime = TJAPlayer3.ConfigIni.n両手判定の待ち時間; + if (this.nWaitButton == 1 && time <= 110 && chipNoHit.nProcessTime + nWaitTime > (int)(CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0))) + { + this.tドラムヒット処理(nTime, Eパッド.LBlue, chipNoHit, true, nUsePlayer); + bHitted = true; + this.nWaitButton = 0; + } + else if (this.nWaitButton == 2 && time <= 110 && chipNoHit.nProcessTime + nWaitTime < (int)(CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0))) + { + this.tドラムヒット処理(nTime, Eパッド.LBlue, chipNoHit, false, nUsePlayer); + bHitted = true; + this.nWaitButton = 0; + } + } + } + if (e判定 != E判定.Miss && (chipNoHit.nチャンネル番号 == 0x15 || chipNoHit.nチャンネル番号 == 0x16)) + { + this.tドラムヒット処理(nTime, Eパッド.LBlue, chipNoHit, false, nUsePlayer); + } + + if (!bHitted) + break; + continue; + } + //----------------------------- + #endregion + + case Eパッド.RBlue: + case Eパッド.RBlue2P: + #region[ ふちのヒット処理 ] + //----------------------------- + { + if (e判定 != E判定.Miss && chipNoHit.nチャンネル番号 == 0x12) + { + this.tドラムヒット処理(nTime, Eパッド.RBlue, chipNoHit, false, nUsePlayer); + bHitted = true; + } + if (e判定 != E判定.Miss && (chipNoHit.nチャンネル番号 == 0x14 || chipNoHit.nチャンネル番号 == 0x1B) && !TJAPlayer3.ConfigIni.b大音符判定) + { + this.tドラムヒット処理(nTime, Eパッド.RBlue, chipNoHit, true, nUsePlayer); + bHitted = true; + this.nWaitButton = 0; + break; + } + if (e判定 != E判定.Miss && (chipNoHit.nチャンネル番号 == 0x14 || chipNoHit.nチャンネル番号 == 0x1B) && TJAPlayer3.ConfigIni.b大音符判定) + { + if (chipNoHit.eNoteState == ENoteState.none) + { + float time = chipNoHit.n発声時刻ms - (float)(CSound管理.rc演奏用タイマ.n現在時刻ms * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)); + if (time <= 110) + { + chipNoHit.nProcessTime = (int)CSound管理.rc演奏用タイマ.n現在時刻ms; + this.n待機中の大音符の座標 = chipNoHit.nバーからの距離dot.Taiko; + chipNoHit.eNoteState = ENoteState.wait; + this.nWaitButton = 1; + } + } + else if (chipNoHit.eNoteState == ENoteState.wait) + { + float time = chipNoHit.n発声時刻ms - (float)(CSound管理.rc演奏用タイマ.n現在時刻ms * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)); + int nWaitTime = TJAPlayer3.ConfigIni.n両手判定の待ち時間; + if (this.nWaitButton == 2 && time <= 110 && chipNoHit.nProcessTime + nWaitTime > (int)(CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0))) + { + this.tドラムヒット処理(nTime, Eパッド.RBlue, chipNoHit, true, nUsePlayer); + bHitted = true; + this.nWaitButton = 0; + break; + } + else if (this.nWaitButton == 2 && time <= 110 && chipNoHit.nProcessTime + nWaitTime < (int)(CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0))) + { + this.tドラムヒット処理(nTime, Eパッド.RBlue, chipNoHit, false, nUsePlayer); + bHitted = true; + this.nWaitButton = 0; + } + } + } + if (e判定 != E判定.Miss && (chipNoHit.nチャンネル番号 == 0x15 || chipNoHit.nチャンネル番号 == 0x16)) + { + this.tドラムヒット処理(nTime, Eパッド.RBlue, chipNoHit, false, nUsePlayer); + } + + if (!bHitted) + break; + continue; + } + //----------------------------- + #endregion + } + //2016.07.14 kairera0467 Adlibの場合、一括して処理を行う。 + if (e判定 != E判定.Miss && chipNoHit.nチャンネル番号 == 0x1F) + { + this.tドラムヒット処理(nTime, (Eパッド)nPad, chipNoHit, false, nUsePlayer); + bHitted = true; + } + + //----------------------------- + #endregion + #region [ (B) ヒットしてなかった場合は、レーンフラッシュ、パッドアニメ、空打ち音再生を実行 ] + //----------------------------- + int pad = nPad; // 以下、nPad の代わりに pad を用いる。(成りすまし用) + // BAD or TIGHT 時の処理。 + if (TJAPlayer3.ConfigIni.bTight && !b連打中[nUsePlayer]) // 18/8/13 - 連打時にこれが発動すると困る!!! (AioiLight) + this.tチップのヒット処理_BadならびにTight時のMiss(chipNoHit.nコース, E楽器パート.DRUMS, 0, E楽器パート.TAIKO); + //----------------------------- + #endregion + } + } + } + + // t入力処理_ドラム()からメソッドを抽出したもの。 + /// + /// chipArrayの中を, n発生位置の小さい順に並べる + nullを大きい方に退かす。セットでe判定Arrayも並べ直す。 + /// + /// ソート対象chip群 + /// ソート対象e判定群 + /// チップ数 + private static void SortChipsByNTime( CDTX.CChip[] chipArray, E判定[] e判定Array, int NumOfChips ) + { + for ( int i = 0; i < NumOfChips - 1; i++ ) + { + //num9 = 2; + //while( num9 > num8 ) + for ( int j = NumOfChips - 1; j > i; j-- ) + { + if ( ( chipArray[ j - 1 ] == null ) || ( ( chipArray[ j ] != null ) && ( chipArray[ j - 1 ].n発声位置 > chipArray[ j ].n発声位置 ) ) ) + { + // swap + CDTX.CChip chipTemp = chipArray[ j - 1 ]; + chipArray[ j - 1 ] = chipArray[ j ]; + chipArray[ j ] = chipTemp; + E判定 e判定Temp = e判定Array[ j - 1 ]; + e判定Array[ j - 1 ] = e判定Array[ j ]; + e判定Array[ j ] = e判定Temp; + } + //num9--; + } + //num8++; + } + } + + protected override void t背景テクスチャの生成() + { + Rectangle bgrect = new Rectangle( 0, 0, 1280, 720 ); + string DefaultBgFilename = @"Graphics\5_Game\5_Background\0\Background.png"; + string BgFilename = ""; + if( !String.IsNullOrEmpty( TJAPlayer3.DTX.strBGIMAGE_PATH ) ) + BgFilename = TJAPlayer3.DTX.strBGIMAGE_PATH; + base.t背景テクスチャの生成( DefaultBgFilename, bgrect, BgFilename ); + } + protected override void t進行描画_チップ_Taiko( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip, int nPlayer ) + { + int nLane = 0; + + #region[ 作り直したもの ] + if (pChip.b可視) + { + if (!pChip.bHit) + { + long nPlayTime = (long)(CSound管理.rc演奏用タイマ.n現在時刻ms * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)); + if ((!pChip.bHit) && (pChip.n発声時刻ms <= nPlayTime)) + { + bool bAutoPlay = false; + switch (nPlayer) + { + case 0: + bAutoPlay = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay; + break; + case 1: + bAutoPlay = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay2P; + break; + case 2: + case 3: + bAutoPlay = true; + break; + } + + if (bAutoPlay && !this.bPAUSE) + { + pChip.bHit = true; + if (pChip.nチャンネル番号 != 0x1F) + this.FlyingNotes.Start(pChip.nチャンネル番号 < 0x1A ? (pChip.nチャンネル番号 - 0x10) : (pChip.nチャンネル番号 - 0x17), nPlayer); + //this.actChipFireTaiko.Start(pChip.nチャンネル番号 < 0x1A ? (pChip.nチャンネル番号 - 0x10) : (pChip.nチャンネル番号 - 0x17), nPlayer); + if (pChip.nチャンネル番号 == 0x12 || pChip.nチャンネル番号 == 0x14 || pChip.nチャンネル番号 == 0x1B) nLane = 1; + TJAPlayer3.stage演奏ドラム画面.actTaikoLaneFlash.PlayerLane[nPlayer].Start((nLane == 0 ? PlayerLane.FlashType.Red : PlayerLane.FlashType.Blue)); + TJAPlayer3.stage演奏ドラム画面.actTaikoLaneFlash.PlayerLane[nPlayer].Start(PlayerLane.FlashType.Hit); + this.actMtaiko.tMtaikoEvent(pChip.nチャンネル番号, this.nHand[nPlayer], nPlayer); + + int n大音符 = (pChip.nチャンネル番号 == 0x11 || pChip.nチャンネル番号 == 0x12 ? 2 : 0); + + this.tチップのヒット処理(pChip.n発声時刻ms, pChip, E楽器パート.TAIKO, true, nLane + n大音符, nPlayer); + this.tサウンド再生(pChip, nPlayer); + return; + } + } + + + if ( pChip.nノーツ出現時刻ms != 0 && ( nPlayTime < pChip.n発声時刻ms - pChip.nノーツ出現時刻ms ) ) + pChip.bShow = false; + else + pChip.bShow = true; + + + switch (nPlayer) + { + case 0: + break; + case 1: + break; + } + switch( pChip.nPlayerSide ) + { + case 1: + break; + } + + int x = 0; + int y = TJAPlayer3.Skin.nScrollFieldY[nPlayer];// + ((int)(pChip.nコース) * 100) + + if (pChip.nノーツ移動開始時刻ms != 0 && (nPlayTime < pChip.n発声時刻ms - pChip.nノーツ移動開始時刻ms)) + { + x = (int)( ( ( ( pChip.n発声時刻ms ) - ( pChip.n発声時刻ms - pChip.nノーツ移動開始時刻ms ) ) * pChip.dbBPM * pChip.dbSCROLL * ( this.act譜面スクロール速度.db現在の譜面スクロール速度.Drums + 1.5 ) ) / 628.7 ); + } + else + { + x = pChip.nバーからの距離dot.Taiko; + } + + int xTemp = 0; + int yTemp = 0; + + #region[ スクロール方向変更 ] + if( pChip.nスクロール方向 != 0 ) + { + xTemp = x; + yTemp = y; + } + switch ( pChip.nスクロール方向 ) + { + case 0: + x += ( TJAPlayer3.Skin.nScrollFieldX[ nPlayer ] ); + break; + case 1: + x = ( TJAPlayer3.Skin.nScrollFieldX[ nPlayer ] ); + y = TJAPlayer3.Skin.nScrollFieldY[ nPlayer ] - xTemp; + break; + case 2: + x = ( TJAPlayer3.Skin.nScrollFieldX[ nPlayer ] + 3 ); + y = TJAPlayer3.Skin.nScrollFieldY[ nPlayer ] + xTemp; + break; + case 3: + x += ( TJAPlayer3.Skin.nScrollFieldX[ nPlayer ] ); + y = TJAPlayer3.Skin.nScrollFieldY[ nPlayer ] - xTemp; + break; + case 4: + x += ( TJAPlayer3.Skin.nScrollFieldX[ nPlayer ] ); + y = TJAPlayer3.Skin.nScrollFieldY[ nPlayer ] + xTemp; + break; + case 5: + x = ( TJAPlayer3.Skin.nScrollFieldX[ nPlayer ] + 10 ) - xTemp; + break; + case 6: + x = ( TJAPlayer3.Skin.nScrollFieldX[ nPlayer ] ) - xTemp; + y = TJAPlayer3.Skin.nScrollFieldY[ nPlayer ] - xTemp; + break; + case 7: + x = ( TJAPlayer3.Skin.nScrollFieldX[ nPlayer ] ) - xTemp; + y = TJAPlayer3.Skin.nScrollFieldY[ nPlayer ] + xTemp; + break; + } + #endregion + + #region[ 両手待ち時 ] + if( pChip.eNoteState == ENoteState.wait ) + { + x = ( TJAPlayer3.Skin.nScrollFieldX[0] ); + } + #endregion + + #region[ HIDSUD & STEALTH ] + if( TJAPlayer3.ConfigIni.eSTEALTH == Eステルスモード.STEALTH ) + { + pChip.bShow = false; + } + #endregion + + if( pChip.dbSCROLL_Y != 0.0 ) + { + var dbSCROLL = configIni.eScrollMode == EScrollMode.BMSCROLL ? 1.0 : pChip.dbSCROLL; + + y = TJAPlayer3.Skin.nScrollFieldY[nPlayer]; + if (TJAPlayer3.ConfigIni.eScrollMode == EScrollMode.Normal) + y += (int)(((pChip.n発声時刻ms - CSound管理.rc演奏用タイマ.n現在時刻) * pChip.dbBPM * pChip.dbSCROLL_Y * (this.act譜面スクロール速度.db現在の譜面スクロール速度.Drums + 1.0)) / 502.8594 / 5.0); + else if (TJAPlayer3.ConfigIni.eScrollMode == EScrollMode.BMSCROLL || TJAPlayer3.ConfigIni.eScrollMode == EScrollMode.HBSCROLL) + { + float? play_bpm_time = null; + if (!play_bpm_time.HasValue) + { + play_bpm_time = this.GetNowPBMTime(dTX, 0); + } + var dbSCROLL_Y = configIni.eScrollMode == EScrollMode.BMSCROLL ? 1.0 : pChip.dbSCROLL_Y; + + y += (int)(3 * 0.8335 * ((pChip.fBMSCROLLTime * NOTE_GAP) - (play_bpm_time * NOTE_GAP)) * dbSCROLL_Y * (this.act譜面スクロール速度.db現在の譜面スクロール速度[nPlayer] + 1.0) / 2 / 5.0); + } + } + + if ( pChip.nバーからの距離dot.Drums < 0 ) + { + this.actGame.st叩ききりまショー.b最初のチップが叩かれた = true; + } + + if(( 1400 > x )) + { + if( TJAPlayer3.Tx.Notes != null ) + { + //int num9 = this.actCombo.n現在のコンボ数.Drums >= 50 ? this.ctチップ模様アニメ.Drums.n現在の値 * 130 : 0; + int num9 = 0; + if (TJAPlayer3.Skin.Game_Notes_Anime) + { + if (this.actCombo.n現在のコンボ数[nPlayer] >= 300 && ctChipAnimeLag[nPlayer].b終了値に達した) + { + //num9 = ctChipAnime[nPlayer].n現在の値 != 0 ? 260 : 0; + if ((int)ctChipAnime[nPlayer].n現在の値 == 1 || (int)ctChipAnime[nPlayer].n現在の値 == 3) + { + num9 = 260; + } + else + { + num9 = 0; + } + } + else if (this.actCombo.n現在のコンボ数[nPlayer] >= 300 && !ctChipAnimeLag[nPlayer].b終了値に達した) + { + //num9 = base.n現在の音符の顔番号 != 0 ? base.n現在の音符の顔番号 * 130 : 0; + if ((int)ctChipAnime[nPlayer].n現在の値 == 1 || (int)ctChipAnime[nPlayer].n現在の値 == 3) + { + num9 = 130; + } + else + { + num9 = 0; + } + } + else if (this.actCombo.n現在のコンボ数[nPlayer] >= 150) + { + //num9 = base.n現在の音符の顔番号 != 0 ? base.n現在の音符の顔番号 * 130 : 0; + if ((int)ctChipAnime[nPlayer].n現在の値 == 1 || (int)ctChipAnime[nPlayer].n現在の値 == 3) + { + num9 = 130; + } + else + { + num9 = 0; + } + } + else if (this.actCombo.n現在のコンボ数[nPlayer] >= 50 && ctChipAnimeLag[nPlayer].b終了値に達した) + { + //num9 = base.n現在の音符の顔番号 != 0 ? base.n現在の音符の顔番号 * 130 : 0; + if ((int)ctChipAnime[nPlayer].n現在の値 <= 1) + { + num9 = 130; + } + else + { + num9 = 0; + } + } + else if (this.actCombo.n現在のコンボ数[nPlayer] >= 50 && !ctChipAnimeLag[nPlayer].b終了値に達した) + { + //num9 = base.n現在の音符の顔番号 != 0 ? base.n現在の音符の顔番号 * 130 : 0; + num9 = 0; + } + else + { + num9 = 0; + } + } + + + + int nSenotesY = TJAPlayer3.Skin.nSENotesY[nPlayer]; + this.ct手つなぎ.t進行Loop(); + int nHand = this.ct手つなぎ.n現在の値 < 30 ? this.ct手つなぎ.n現在の値 : 60 - this.ct手つなぎ.n現在の値; + + + x = ( x ) - ( ( int ) ( ( 130.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) ); + TJAPlayer3.Tx.Notes.b加算合成 = false; + TJAPlayer3.Tx.SENotes.b加算合成 = false; + var device = TJAPlayer3.app.Device; + switch ( pChip.nチャンネル番号 ) + { + case 0x11: + + if( TJAPlayer3.Tx.Notes != null && pChip.bShow) + { + if( TJAPlayer3.ConfigIni.eSTEALTH != Eステルスモード.DORON ) + TJAPlayer3.Tx.Notes.t2D描画( device, x, y, new Rectangle( 130, num9, 130, 130 ) ); + TJAPlayer3.Tx.SENotes.t2D描画( device, x - 2, y + nSenotesY, new Rectangle( 0, 30 * pChip.nSenote, 136, 30 ) ); + //CDTXMania.act文字コンソール.tPrint( x + 60, y + 140, C文字コンソール.Eフォント種別.白, pChip.nSenote.ToString() ); + } + break; + + case 0x12: + if( TJAPlayer3.Tx.Notes != null && pChip.bShow) + { + if( TJAPlayer3.ConfigIni.eSTEALTH != Eステルスモード.DORON ) + TJAPlayer3.Tx.Notes.t2D描画( device, x, y, new Rectangle( 260, num9, 130, 130) ); + TJAPlayer3.Tx.SENotes.t2D描画( device, x - 2, y + nSenotesY, new Rectangle( 0, 30 * pChip.nSenote, 136, 30 ) ); + //CDTXMania.act文字コンソール.tPrint( x + 60, y + 140, C文字コンソール.Eフォント種別.白, pChip.nSenote.ToString() ); + } + nLane = 1; + break; + + case 0x13: + if( TJAPlayer3.Tx.Notes != null && pChip.bShow) + { + if( TJAPlayer3.ConfigIni.eSTEALTH != Eステルスモード.DORON ) + { + TJAPlayer3.Tx.Notes.t2D描画( device, x, y, new Rectangle( 390, num9, 130, 130 ) ); + //CDTXMania.Tx.Notes.t3D描画( device, mat, new Rectangle( 390, num9, 130, 130 ) ); + } + TJAPlayer3.Tx.SENotes.t2D描画( device, x - 2, y + nSenotesY, new Rectangle( 0, 30 * pChip.nSenote, 136, 30 ) ); + //CDTXMania.act文字コンソール.tPrint( x + 60, y + 140, C文字コンソール.Eフォント種別.白, pChip.nSenote.ToString() ); + } + break; + + case 0x14: + if( TJAPlayer3.Tx.Notes != null && pChip.bShow) + { + if( TJAPlayer3.ConfigIni.eSTEALTH != Eステルスモード.DORON ) + TJAPlayer3.Tx.Notes.t2D描画( device, x, y, new Rectangle( 520, num9, 130, 130 ) ); + TJAPlayer3.Tx.SENotes.t2D描画( device, x - 2, y + nSenotesY, new Rectangle( 0, 30 * pChip.nSenote, 136, 30 ) ); + //CDTXMania.act文字コンソール.tPrint( x + 60, y + 140, C文字コンソール.Eフォント種別.白, pChip.nSenote.ToString() ); + } + nLane = 1; + break; + + case 0x1A: + if( TJAPlayer3.Tx.Notes != null ) + { + if( TJAPlayer3.ConfigIni.eSTEALTH != Eステルスモード.DORON ) + { + if( nPlayer == 0 ) + { + TJAPlayer3.Tx.Notes_Arm.t2D上下反転描画( device, x + 25, ( y + 74 ) + nHand ); + TJAPlayer3.Tx.Notes_Arm.t2D上下反転描画( device, x + 60, ( y + 104 ) - nHand ); + } + else if( nPlayer == 1 ) + { + TJAPlayer3.Tx.Notes_Arm.t2D描画( device, x + 25, ( y - 44 ) + nHand ); + TJAPlayer3.Tx.Notes_Arm.t2D描画( device, x + 60, ( y - 14 ) - nHand ); + } + TJAPlayer3.Tx.Notes.t2D描画( device, x, y, new Rectangle( 1690, num9, 130, 130 ) ); + //CDTXMania.Tx.Notes.t3D描画( device, mat, new Rectangle( 390, num9, 130, 130 ) ); + } + TJAPlayer3.Tx.SENotes.t2D描画( device, x - 2, y + nSenotesY, new Rectangle( 0, 390, 136, 30 ) ); + } + break; + + case 0x1B: + if( TJAPlayer3.Tx.Notes != null ) + { + if( TJAPlayer3.ConfigIni.eSTEALTH != Eステルスモード.DORON ) + { + if( nPlayer == 0 ) + { + TJAPlayer3.Tx.Notes_Arm.t2D上下反転描画( device, x + 25, ( y + 74 ) + nHand ); + TJAPlayer3.Tx.Notes_Arm.t2D上下反転描画( device, x + 60, ( y + 104 ) - nHand ); + } + else if( nPlayer == 1 ) + { + TJAPlayer3.Tx.Notes_Arm.t2D描画( device, x + 25, ( y - 44 ) + nHand ); + TJAPlayer3.Tx.Notes_Arm.t2D描画( device, x + 60, ( y - 14 ) - nHand ); + } + TJAPlayer3.Tx.Notes.t2D描画( device, x, y, new Rectangle( 1820, num9, 130, 130 ) ); + } + TJAPlayer3.Tx.SENotes.t2D描画( device, x - 2, y + nSenotesY, new Rectangle( 0, 420, 136, 30 ) ); + } + nLane = 1; + break; + + case 0x1F: + break; + } + //CDTXMania.act文字コンソール.tPrint( x + 60, y + 160, C文字コンソール.Eフォント種別.白, pChip.nPlayerSide.ToString() ); + } + } + else if( x < -1000 ) + { + //pChip.bHit = true; + } + } + } + else + { + return; + } + #endregion + } + protected override void t進行描画_チップ_Taiko連打( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip, int nPlayer ) + { + int nSenotesY = TJAPlayer3.Skin.nSENotesY[ nPlayer ]; + int nノート座標 = 0; + int nノート末端座標 = 0; + int n先頭発声位置 = 0; + + // 2016.11.2 kairera0467 + // 黄連打音符を赤くするやつの実装方法メモ + //前面を黄色、背面を変色後にしたものを重ねて、打数に応じて前面の透明度を操作すれば、色を操作できるはず。 + //ただしテクスチャのαチャンネル部分が太くなるなどのデメリットが出る。備えよう。 + + #region[ 作り直したもの ] + if (pChip.b可視) + { + if (pChip.nチャンネル番号 >= 0x15 && pChip.nチャンネル番号 <= 0x18) + { + if (pChip.nノーツ出現時刻ms != 0 && ((long)(CSound管理.rc演奏用タイマ.n現在時刻ms * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)) < pChip.n発声時刻ms - pChip.nノーツ出現時刻ms)) + pChip.bShow = false; + else if (pChip.nノーツ出現時刻ms != 0 && pChip.nノーツ移動開始時刻ms != 0) + pChip.bShow = true; + + if (pChip.nノーツ移動開始時刻ms != 0 && ((long)(CSound管理.rc演奏用タイマ.n現在時刻ms * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)) < pChip.n発声時刻ms - pChip.nノーツ移動開始時刻ms)) + { + nノート座標 = (int)((((pChip.n発声時刻ms) - (pChip.n発声時刻ms - pChip.nノーツ移動開始時刻ms)) * pChip.dbBPM * pChip.dbSCROLL * (this.act譜面スクロール速度.db現在の譜面スクロール速度.Drums + 1.0)) / 502.8594 / 5.0); + nノート末端座標 = (int)(((pChip.nノーツ終了時刻ms - (pChip.n発声時刻ms - pChip.nノーツ移動開始時刻ms)) * pChip.dbBPM * pChip.dbSCROLL * (this.act譜面スクロール速度.db現在の譜面スクロール速度.Drums + 1.0)) / 502.8594 / 5.0); + } + else + { + nノート座標 = 0; + nノート末端座標 = 0; + } + } + if (pChip.nチャンネル番号 == 0x18) + { + if (pChip.nノーツ出現時刻ms != 0 && ((long)(CSound管理.rc演奏用タイマ.n現在時刻ms * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)) < n先頭発声位置 - pChip.nノーツ出現時刻ms)) + pChip.bShow = false; + else + pChip.bShow = true; + + CDTX.CChip cChip = null; + if (pChip.nノーツ移動開始時刻ms != 0) // n先頭発声位置 value is only used when this condition is met + { + cChip = TJAPlayer3.stage演奏ドラム画面.r指定時刻に一番近い連打Chip_ヒット未済問わず不可視考慮(pChip.n発声時刻ms, 0x10 + pChip.n連打音符State, 0, nPlayer); + if (cChip != null) + { + n先頭発声位置 = cChip.n発声時刻ms; + } + } + + //連打音符先頭の開始時刻を取得しなければならない。 + //そうしなければ連打先頭と連打末端の移動開始時刻にズレが出てしまう。 + if (pChip.nノーツ移動開始時刻ms != 0 && ((long)(CSound管理.rc演奏用タイマ.n現在時刻ms * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)) < n先頭発声位置 - pChip.nノーツ移動開始時刻ms)) + { + nノート座標 = (int)(((pChip.n発声時刻ms - (n先頭発声位置 - pChip.nノーツ移動開始時刻ms)) * pChip.dbBPM * pChip.dbSCROLL * (this.act譜面スクロール速度.db現在の譜面スクロール速度.Drums + 1.0)) / 502.8594 / 5.0); + } + else + { + nノート座標 = 0; + } + } + + int x = 349 + pChip.nバーからの距離dot.Taiko + 10; + int x末端 = 349 + pChip.nバーからのノーツ末端距離dot + 10; + int y = TJAPlayer3.Skin.nScrollFieldY[nPlayer];// + ((int)(pChip.nコース) * 100) + + if (pChip.nチャンネル番号 >= 0x15 && pChip.nチャンネル番号 <= 0x17) + { + if (pChip.nノーツ移動開始時刻ms != 0 && ((long)(CSound管理.rc演奏用タイマ.n現在時刻ms * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)) < pChip.n発声時刻ms - pChip.nノーツ移動開始時刻ms)) + { + x = 349 + nノート座標; + x末端 = 349 + nノート末端座標; + } + else + { + x = 349 + pChip.nバーからの距離dot.Taiko + 10; + x末端 = 349 + pChip.nバーからのノーツ末端距離dot + 10; + } + } + else if (pChip.nチャンネル番号 == 0x18) + { + if (pChip.nノーツ移動開始時刻ms != 0 && ((long)(CSound管理.rc演奏用タイマ.n現在時刻ms * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)) < n先頭発声位置 - pChip.nノーツ移動開始時刻ms)) + { + x = 349 + nノート座標; + } + else + { + x = 349 + pChip.nバーからの距離dot.Taiko + 10; + } + } + + if (pChip.nチャンネル番号 == 0x15 && pChip.n発声時刻ms < 5000) + { + + } + if (pChip.nチャンネル番号 == 0x18 && pChip.n発声時刻ms < 5000) + { + + } + + + #region[ HIDSUD & STEALTH ] + if (TJAPlayer3.ConfigIni.eSTEALTH == Eステルスモード.STEALTH) + { + pChip.bShow = false; + } + #endregion + + //if( CDTXMania.ConfigIni.eScrollMode != EScrollMode.Normal ) + x -= 10; + + if ((1400 > x)) + { + if (TJAPlayer3.Tx.Notes != null) + { + //int num9 = this.actCombo.n現在のコンボ数.Drums >= 50 ? this.ctチップ模様アニメ.Drums.n現在の値 * 130 : 0; + //int num9 = this.actCombo.n現在のコンボ数.Drums >= 50 ? base.n現在の音符の顔番号 * 130 : 0; + int num9 = 0; + //if( this.actCombo.n現在のコンボ数[ nPlayer ] >= 300 ) + //{ + // num9 = base.n現在の音符の顔番号 != 0 ? 260 : 0; + //} + //else if( this.actCombo.n現在のコンボ数[ nPlayer ] >= 50 ) + //{ + // num9 = base.n現在の音符の顔番号 != 0 ? base.n現在の音符の顔番号 * 130 : 0; + //} + if (TJAPlayer3.Skin.Game_Notes_Anime) + { + if (this.actCombo.n現在のコンボ数[nPlayer] >= 300 && ctChipAnimeLag[nPlayer].b終了値に達した) + { + //num9 = ctChipAnime[nPlayer].db現在の値 != 0 ? 260 : 0; + if ((int)ctChipAnime[nPlayer].n現在の値 == 1 || (int)ctChipAnime[nPlayer].n現在の値 == 3) + { + num9 = 260; + } + else + { + num9 = 0; + } + } + else if (this.actCombo.n現在のコンボ数[nPlayer] >= 300 && !ctChipAnimeLag[nPlayer].b終了値に達した) + { + //num9 = base.n現在の音符の顔番号 != 0 ? base.n現在の音符の顔番号 * 130 : 0; + if ((int)ctChipAnime[nPlayer].n現在の値 == 1 || (int)ctChipAnime[nPlayer].n現在の値 == 3) + { + num9 = 130; + } + else + { + num9 = 0; + } + } + else if (this.actCombo.n現在のコンボ数[nPlayer] >= 150) + { + //num9 = base.n現在の音符の顔番号 != 0 ? base.n現在の音符の顔番号 * 130 : 0; + if ((int)ctChipAnime[nPlayer].n現在の値 == 1 || (int)ctChipAnime[nPlayer].n現在の値 == 3) + { + num9 = 130; + } + else + { + num9 = 0; + } + } + else if (this.actCombo.n現在のコンボ数[nPlayer] >= 50 && ctChipAnimeLag[nPlayer].b終了値に達した) + { + //num9 = base.n現在の音符の顔番号 != 0 ? base.n現在の音符の顔番号 * 130 : 0; + if ((int)ctChipAnime[nPlayer].n現在の値 <= 1) + { + num9 = 130; + } + else + { + num9 = 0; + } + } + else if (this.actCombo.n現在のコンボ数[nPlayer] >= 50 && !ctChipAnimeLag[nPlayer].b終了値に達した) + { + //num9 = base.n現在の音符の顔番号 != 0 ? base.n現在の音符の顔番号 * 130 : 0; + num9 = 0; + } + else + { + num9 = 0; + } + } + + //kairera0467氏 の TJAPlayer2forPC のコードを参考にし、打数に応じて色を変える(打数の変更以外はほとんどそのまんま) ろみゅ~? 2018/8/20 + pChip.RollInputTime?.t進行(); + pChip.RollDelay?.t進行(); + + if (pChip.RollInputTime != null && pChip.RollInputTime.b終了値に達した) + { + pChip.RollInputTime.t停止(); + pChip.RollInputTime.n現在の値 = 0; + pChip.RollDelay = new CCounter(0, 1, 1, TJAPlayer3.Timer); + } + + if (pChip.RollDelay != null && pChip.RollDelay.b終了値に達した && pChip.RollEffectLevel > 0) + { + pChip.RollEffectLevel--; + pChip.RollDelay = new CCounter(0, 1, 1, TJAPlayer3.Timer); + pChip.RollDelay.n現在の値 = 0; + } + + float f減少するカラー = 1.0f - ((0.95f / 100) * pChip.RollEffectLevel); + var effectedColor = new Color4(1.0f, f減少するカラー, f減少するカラー); + var normalColor = new Color4(1.0f, 1.0f, 1.0f); + float f末端ノーツのテクスチャ位置調整 = 65f; + + if (pChip.nチャンネル番号 == 0x15 && pChip.bShow) //連打(小) + { + int index = x末端 - x; //連打の距離 + if (TJAPlayer3.ConfigIni.eSTEALTH != Eステルスモード.DORON) + { + #region[末端をテクスチャ側で中央に持ってくる場合の方式] + + //CDTXMania.Tx.Notes.color4 = new Color4(1.0f, f減少するカラー, f減少するカラー); + //CDTXMania.Tx.Notes.vc拡大縮小倍率.X = (index - 65.0f + f末端ノーツのテクスチャ位置調整+1) / 128.0f; + //CDTXMania.Tx.Notes.t2D描画(CDTXMania.app.Device, x + 64, y, new Rectangle(781, 0, 128, 130)); + //CDTXMania.Tx.Notes.vc拡大縮小倍率.X = 1.0f; + //CDTXMania.Tx.Notes.t2D描画(CDTXMania.app.Device, x末端, y, 0, new Rectangle(910, num9, 130, 130)); + //CDTXMania.Tx.Notes.color4 = new Color4(1.0f, 1.0f, 1.0f); //先端シンボルは色を変えない + //CDTXMania.Tx.Notes.t2D描画(CDTXMania.app.Device, x, y, 0, new Rectangle(650, num9, 130, 130)); + + #endregion + #region[末端をテクスチャ側でつなげる場合の方式] + + if (TJAPlayer3.Skin.Game_RollColorMode != CSkin.RollColorMode.None) + TJAPlayer3.Tx.Notes.color4 = effectedColor; + else + TJAPlayer3.Tx.Notes.color4 = normalColor; + TJAPlayer3.Tx.Notes.vc拡大縮小倍率.X = (index - 65.0f + f末端ノーツのテクスチャ位置調整 + 1) / 128.0f; + TJAPlayer3.Tx.Notes.t2D描画(TJAPlayer3.app.Device, x + 64, y, new Rectangle(781, 0, 128, 130)); + TJAPlayer3.Tx.Notes.vc拡大縮小倍率.X = 1.0f; + TJAPlayer3.Tx.Notes.t2D描画(TJAPlayer3.app.Device, x末端 + f末端ノーツのテクスチャ位置調整, y, 0, new Rectangle(910, num9, 130, 130)); + if (TJAPlayer3.Skin.Game_RollColorMode == CSkin.RollColorMode.All) + TJAPlayer3.Tx.Notes.color4 = effectedColor; + else + TJAPlayer3.Tx.Notes.color4 = normalColor; + + TJAPlayer3.Tx.Notes.t2D描画(TJAPlayer3.app.Device, x, y, 0, new Rectangle(650, num9, 130, 130)); + TJAPlayer3.Tx.Notes.color4 = normalColor; + #endregion + } + TJAPlayer3.Tx.SENotes.vc拡大縮小倍率.X = index - 44; + TJAPlayer3.Tx.SENotes.t2D描画(TJAPlayer3.app.Device, x + 90, y + nSenotesY, new Rectangle(60, 240, 1, 30)); + TJAPlayer3.Tx.SENotes.vc拡大縮小倍率.X = 1.0f; + TJAPlayer3.Tx.SENotes.t2D描画(TJAPlayer3.app.Device, x + 30, y + nSenotesY, new Rectangle(0, 240, 60, 30)); + TJAPlayer3.Tx.SENotes.t2D描画(TJAPlayer3.app.Device, x, y + nSenotesY, new Rectangle(0, 30 * pChip.nSenote, 136, 30)); + } + if (pChip.nチャンネル番号 == 0x16 && pChip.bShow) + { + int index = x末端 - x; //連打の距離 + + if (TJAPlayer3.ConfigIni.eSTEALTH != Eステルスモード.DORON) + { + #region[末端をテクスチャ側で中央に持ってくる場合の方式] + + //CDTXMania.Tx.Notes.color4 = new Color4(1.0f, f減少するカラー, f減少するカラー); + //CDTXMania.Tx.Notes.vc拡大縮小倍率.X = (index - 65.0f + f末端ノーツのテクスチャ位置調整+1) / 128f; + //CDTXMania.Tx.Notes.t2D描画(CDTXMania.app.Device, x + 64, y, new Rectangle(1171, 0, 128, 130)); + //CDTXMania.Tx.Notes.vc拡大縮小倍率.X = 1.0f; + //CDTXMania.Tx.Notes.t2D描画(CDTXMania.app.Device, x末端, y, 0, new Rectangle(1300, num9, 130, 130)); + //CDTXMania.Tx.Notes.color4 = new Color4(1.0f, 1.0f, 1.0f); //先端シンボルは色を変えない + //CDTXMania.Tx.Notes.t2D描画(CDTXMania.app.Device, x, y, new Rectangle(1040, num9, 130, 130)); + + #endregion + #region[末端をテクスチャ側でつなげる場合の方式] + + if (TJAPlayer3.Skin.Game_RollColorMode != CSkin.RollColorMode.None) + TJAPlayer3.Tx.Notes.color4 = effectedColor; + else + TJAPlayer3.Tx.Notes.color4 = normalColor; + + TJAPlayer3.Tx.Notes.vc拡大縮小倍率.X = (index - 65 + f末端ノーツのテクスチャ位置調整 + 1) / 128f; + TJAPlayer3.Tx.Notes.t2D描画(TJAPlayer3.app.Device, x + 64, y, new Rectangle(1171, 0, 128, 130)); + + TJAPlayer3.Tx.Notes.vc拡大縮小倍率.X = 1.0f; + TJAPlayer3.Tx.Notes.t2D描画(TJAPlayer3.app.Device, x末端 + f末端ノーツのテクスチャ位置調整, y, 0, new Rectangle(1300, num9, 130, 130)); + if (TJAPlayer3.Skin.Game_RollColorMode == CSkin.RollColorMode.All) + TJAPlayer3.Tx.Notes.color4 = effectedColor; + else + TJAPlayer3.Tx.Notes.color4 = normalColor; + + TJAPlayer3.Tx.Notes.t2D描画(TJAPlayer3.app.Device, x, y, new Rectangle(1040, num9, 130, 130)); + TJAPlayer3.Tx.Notes.color4 = normalColor; + #endregion + } + TJAPlayer3.Tx.SENotes.vc拡大縮小倍率.X = index - 70; + TJAPlayer3.Tx.SENotes.t2D描画(TJAPlayer3.app.Device, x + 116, y + nSenotesY, new Rectangle(60, 240, 1, 30)); + TJAPlayer3.Tx.SENotes.vc拡大縮小倍率.X = 1.0f; + TJAPlayer3.Tx.SENotes.t2D描画(TJAPlayer3.app.Device, x + 56, y + nSenotesY, new Rectangle(0, 240, 60, 30)); + TJAPlayer3.Tx.SENotes.t2D描画(TJAPlayer3.app.Device, x - 2, y + nSenotesY, new Rectangle(0, 30 * pChip.nSenote, 136, 30)); + } + if (pChip.nチャンネル番号 == 0x17) + { + if (pChip.bShow) + { + if ((long)(CSound管理.rc演奏用タイマ.n現在時刻ms * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)) >= pChip.n発声時刻ms && (long)(CSound管理.rc演奏用タイマ.n現在時刻ms * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)) < pChip.nノーツ終了時刻ms) + x = 349; + else if ((long)(CSound管理.rc演奏用タイマ.n現在時刻ms * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)) >= pChip.nノーツ終了時刻ms) + x = (349 + pChip.nバーからのノーツ末端距離dot); + + if (TJAPlayer3.ConfigIni.eSTEALTH != Eステルスモード.DORON) + TJAPlayer3.Tx.Notes.t2D描画(TJAPlayer3.app.Device, x, y, new Rectangle(1430, num9, 260, 130)); + + TJAPlayer3.Tx.SENotes.t2D描画(TJAPlayer3.app.Device, x - 2, y + nSenotesY, new Rectangle(0, 30 * pChip.nSenote, 136, 30)); + } + } + if (pChip.nチャンネル番号 == 0x18) + { + //大きい連打か小さい連打かの区別方法を考えてなかったよちくしょう + TJAPlayer3.Tx.Notes.vc拡大縮小倍率.X = 1.0f; + int n = 0; + switch (pChip.n連打音符State) + { + case 5: + n = 910; + break; + case 6: + n = 1300; + break; + default: + n = 910; + break; + } + if (pChip.n連打音符State != 7) + { + //if( CDTXMania.ConfigIni.eSTEALTH != Eステルスモード.DORON ) + // CDTXMania.Tx.Notes.t2D描画( CDTXMania.app.Device, x, y, new Rectangle( n, num9, 130, 130 ) );//大音符:1170 + TJAPlayer3.Tx.SENotes.t2D描画(TJAPlayer3.app.Device, x + 56, y + nSenotesY, new Rectangle(58, 270, 78, 30)); + } + + + //CDTXMania.act文字コンソール.tPrint(x, y - 10, C文字コンソール.Eフォント種別.白, pChip.n発声時刻ms.ToString()); + //CDTXMania.act文字コンソール.tPrint(x, y - 26, C文字コンソール.Eフォント種別.白, pChip.n連打音符State.ToString()); + //CDTXMania.act文字コンソール.tPrint(x, y - 42, C文字コンソール.Eフォント種別.白, pChip.dbSCROLL.ToString()); + //CDTXMania.act文字コンソール.tPrint(x, y - 58, C文字コンソール.Eフォント種別.白, pChip.dbBPM.ToString()); + + + } + } + } + if (pChip.n発声時刻ms < (CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)) && pChip.nノーツ終了時刻ms > (CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0))) + { + //時間内でかつ0x9Aじゃないならならヒット処理 + if (pChip.nチャンネル番号 != 0x18 && (nPlayer == 0 ? TJAPlayer3.ConfigIni.b太鼓パートAutoPlay : TJAPlayer3.ConfigIni.b太鼓パートAutoPlay2P)) + this.tチップのヒット処理(pChip.n発声時刻ms, pChip, E楽器パート.TAIKO, false, 0, nPlayer); + } + } + #endregion + } + + protected override void t進行描画_チップ_ドラムス( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip ) + { + } + protected override void t進行描画_チップ本体_ドラムス( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip ) + { + } + protected override void t進行描画_チップ_フィルイン( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip ) + { + + } + protected override void t進行描画_チップ_小節線( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip, int nPlayer ) + { + if( pChip.nコース != this.n現在のコース[ nPlayer ] ) + return; + + //int n小節番号plus1 = pChip.n発声位置 / 384; + int n小節番号plus1 = this.actPlayInfo.NowMeasure[nPlayer]; + int x = TJAPlayer3.Skin.nScrollFieldX[ nPlayer ] + pChip.nバーからの距離dot.Taiko; + int y = TJAPlayer3.Skin.nScrollFieldY[ nPlayer ]; + + if( pChip.dbSCROLL_Y != 0.0 ) + { + y = TJAPlayer3.Skin.nScrollFieldY[ nPlayer ]; + y += (int)(((pChip.n発声時刻ms - (CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0))) * pChip.dbBPM * pChip.dbSCROLL_Y * (this.act譜面スクロール速度.db現在の譜面スクロール速度.Drums + 1.5)) / 628.7); + } + + if ( !pChip.bHit && pChip.n発声時刻ms > CSound管理.rc演奏用タイマ.n現在時刻 ) + { + //pChip.bHit = true; + //this.actPlayInfo.n小節番号 = n小節番号plus1 - 1; + //this.actPlayInfo.n小節番号++; + if ( configIni.bWave再生位置自動調整機能有効 && ( bIsDirectSound || bUseOSTimer ) ) + { + dTX.tWave再生位置自動補正(); + } + } + if (configIni.b演奏情報を表示する || TJAPlayer3.ConfigIni.bTokkunMode) + { + var nowMeasure = pChip.n整数値_内部番号; + if ( x >= 310 ) + { + TJAPlayer3.act文字コンソール.tPrint(x + 8, y - 26, C文字コンソール.Eフォント種別.白, nowMeasure.ToString()); + } + } + if ( ( pChip.b可視 ) && (TJAPlayer3.Tx.Bar != null ) ) + { + if( x >= 0 ) + { + Matrix mat = Matrix.Identity; + mat *= Matrix.RotationZ(C変換.DegreeToRadian(-(90.0f * (float)pChip.dbSCROLL_Y))); + mat *= Matrix.Translation((float)(x - 640.0f) - 1.5f, -(y - 360.0f + 65.0f), 0f); + + if( pChip.bBranch ) + { + //this.tx小節線_branch.t2D描画( CDTXMania.app.Device, x - 3, y, new Rectangle( 0, 0, 3, 130 ) ); + TJAPlayer3.Tx.Bar_Branch.t3D描画( TJAPlayer3.app.Device, mat, new Rectangle( 0, 0, 3, 130 ) ); + } + else + { + //this.tx小節線.t2D描画( CDTXMania.app.Device, x - 3, y, new Rectangle( 0, 0, 3, 130 ) ); + TJAPlayer3.Tx.Bar.t3D描画( TJAPlayer3.app.Device, mat, new Rectangle( 0, 0, 3, 130 ) ); + } + } + } + } + + protected void t進行描画_レーン() + { + this.actLane.On進行描画(); + } + + /// + /// 全体にわたる制御をする。 + /// + public void t全体制御メソッド() + { + int t = (int)CSound管理.rc演奏用タイマ.n現在時刻ms; + //CDTXMania.act文字コンソール.tPrint( 0, 16, C文字コンソール.Eフォント種別.白, t.ToString() ); + + for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) + { + if (this.chip現在処理中の連打チップ[i] != null) + { + int n = this.chip現在処理中の連打チップ[i].nチャンネル番号; + + if (this.chip現在処理中の連打チップ[i].nチャンネル番号 == 0x17 && this.b連打中[i] == true) + { + //if (this.chip現在処理中の連打チップ.n発声時刻ms <= (int)CSound管理.rc演奏用タイマ.n現在時刻ms && this.chip現在処理中の連打チップ.nノーツ終了時刻ms >= (int)CSound管理.rc演奏用タイマ.n現在時刻ms) + if (this.chip現在処理中の連打チップ[i].n発声時刻ms <= (int)(CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)) && this.chip現在処理中の連打チップ[i].nノーツ終了時刻ms + 500 >= (int)(CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0))) + { + this.chip現在処理中の連打チップ[i].bShow = false; + this.actBalloon.On進行描画(this.chip現在処理中の連打チップ[i].nBalloon, this.n風船残り[i], i); + } + else + { + this.n現在の連打数[i] = 0; + + } + + } + else + { + //if (actChara.CharaAction_Balloon_Breaking.b進行中 && chip現在処理中の連打チップ[i].nPlayerSide == 0) + //{ + //} + } + } + } + #region[ 片手判定をこっちに持ってきてみる。] + //常時イベントが発生しているメソッドのほうがいいんじゃないかという予想。 + //CDTX.CChip chipNoHit = this.r指定時刻に一番近い未ヒットChip((int)CSound管理.rc演奏用タイマ.n現在時刻ms, 0); + for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) + { + CDTX.CChip chipNoHit = r指定時刻に一番近い未ヒットChipを過去方向優先で検索する((long)(CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)), i); + + + if (chipNoHit != null && (chipNoHit.nチャンネル番号 == 0x13 || chipNoHit.nチャンネル番号 == 0x14 || chipNoHit.nチャンネル番号 == 0x1A || chipNoHit.nチャンネル番号 == 0x1B)) + { + float timeC = chipNoHit.n発声時刻ms - (float)(CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)); + int nWaitTime = TJAPlayer3.ConfigIni.n両手判定の待ち時間; + if (chipNoHit.eNoteState == ENoteState.wait && timeC <= 110 && chipNoHit.nProcessTime + nWaitTime <= (int)(CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0))) + { + this.tドラムヒット処理(chipNoHit.nProcessTime, Eパッド.RRed, chipNoHit, false, i); + this.nWaitButton = 0; + chipNoHit.eNoteState = ENoteState.none; + chipNoHit.bHit = true; + chipNoHit.IsHitted = true; + } + } + } + + #endregion + + string strNull = "Found"; + if (TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDX.DirectInput.Key.F1)) + { + if (!this.actPauseMenu.bIsActivePopupMenu && this.bPAUSE == false) + { + TJAPlayer3.Skin.sound変更音.t再生する(); + + CSound管理.rc演奏用タイマ.t一時停止(); + TJAPlayer3.Timer.t一時停止(); + TJAPlayer3.DTX.t全チップの再生一時停止(); + this.actAVI.tPauseControl(); + + this.bPAUSE = true; + this.actPauseMenu.tActivatePopupMenu(0); + } + + } + //if( CDTXMania.Input管理.Keyboard.bキーが押された( (int)SlimDX.DirectInput.Key.F8 ) ) + //{ + //this.actChipFireD.Start紙吹雪(); + //this.actDancer.t入退場( 0, 0, 0.4 ); + //} + + if (!this.bStartFlag) + { + //CSound管理.rc演奏用タイマ.n現在時刻ms = 80000; + } + this.bStartFlag = true; + } + private bool bStartFlag; + private void t進行描画_ネームプレート() + { + //if( this.txNamePlate != null ) + //this.txNamePlate.t2D描画( CDTXMania.app.Device, 0, 100 ); + + //if(CDTXMania.Tx.Taiko_NamePlate[0] != null) CDTXMania.Tx.Taiko_NamePlate[0].t2D描画(CDTXMania.app.Device, 0, 100); + //if(CDTXMania.stage演奏ドラム画面.bDoublePlay && CDTXMania.Tx.Taiko_NamePlate[1] != null) CDTXMania.Tx.Taiko_NamePlate[0].t2D描画(CDTXMania.app.Device, 0, 600); + + //if ( CDTXMania.stage演奏ドラム画面.bDoublePlay ) + //{ + // if( this.txNamePlate2P != null ) + // this.txNamePlate2P.t2D描画( CDTXMania.app.Device, 314, 636 ); + //} + } + + private void t進行描画_リアルタイム判定数表示() + { + var showJudgeInfo = false; + + if (TJAPlayer3.ConfigIni.nPlayerCount == 1 ? (TJAPlayer3.ConfigIni.bJudgeCountDisplay && !TJAPlayer3.ConfigIni.b太鼓パートAutoPlay) : false) showJudgeInfo = true; + if (TJAPlayer3.ConfigIni.bTokkunMode) showJudgeInfo = true; + + if (showJudgeInfo) + { + //ボードの横幅は333px + //数字フォントの小さいほうはリザルトのものと同じ。 + if( TJAPlayer3.Tx.Judge_Meter != null ) + TJAPlayer3.Tx.Judge_Meter.t2D描画( TJAPlayer3.app.Device, 0, 360 ); + + this.t小文字表示( 102, 494, string.Format( "{0,4:###0}", this.nヒット数_Auto含まない.Drums.Perfect.ToString() ), false ); + this.t小文字表示( 102, 532, string.Format( "{0,4:###0}", this.nヒット数_Auto含まない.Drums.Great.ToString() ), false ); + this.t小文字表示( 102, 570, string.Format( "{0,4:###0}", this.nヒット数_Auto含まない.Drums.Miss.ToString() ), false ); + this.t小文字表示(102, 634, string.Format("{0,4:###0}", GetRoll(0)), false); + + int nNowTotal = this.nヒット数_Auto含まない.Drums.Perfect + this.nヒット数_Auto含まない.Drums.Great + this.nヒット数_Auto含まない.Drums.Miss; + double dbたたけた率 = Math.Round((100.0 * ( TJAPlayer3.stage演奏ドラム画面.nヒット数_Auto含まない.Drums.Perfect + TJAPlayer3.stage演奏ドラム画面.nヒット数_Auto含まない.Drums.Great)) / (double)nNowTotal); + double dbPERFECT率 = Math.Round((100.0 * TJAPlayer3.stage演奏ドラム画面.nヒット数_Auto含まない.Drums.Perfect) / (double)nNowTotal); + double dbGREAT率 = Math.Round((100.0 * TJAPlayer3.stage演奏ドラム画面.nヒット数_Auto含まない.Drums.Great / (double)nNowTotal)); + double dbMISS率 = Math.Round((100.0 * TJAPlayer3.stage演奏ドラム画面.nヒット数_Auto含まない.Drums.Miss / (double)nNowTotal)); + + if (double.IsNaN(dbたたけた率)) + dbたたけた率 = 0; + if (double.IsNaN(dbPERFECT率)) + dbPERFECT率 = 0; + if (double.IsNaN(dbGREAT率)) + dbGREAT率 = 0; + if (double.IsNaN(dbMISS率)) + dbMISS率 = 0; + + this.t大文字表示( 202, 436, string.Format( "{0,3:##0}%", dbたたけた率 ) ); + this.t小文字表示( 206, 494, string.Format( "{0,3:##0}%", dbPERFECT率 ), false ); + this.t小文字表示( 206, 532, string.Format( "{0,3:##0}%", dbGREAT率 ), false ); + this.t小文字表示( 206, 570, string.Format( "{0,3:##0}%", dbMISS率 ), false ); + } + } + + private void t小文字表示( int x, int y, string str, bool bOrange ) + { + foreach( char ch in str ) + { + for( int i = 0; i < this.st小文字位置.Length; i++ ) + { + if( ch == ' ' ) + { + break; + } + + if( this.st小文字位置[ i ].ch == ch ) + { + Rectangle rectangle = new Rectangle( this.st小文字位置[ i ].pt.X, this.st小文字位置[ i ].pt.Y, 32, 38 ); + if( TJAPlayer3.Tx.Result_Number != null ) + { + TJAPlayer3.Tx.Result_Number.t2D描画( TJAPlayer3.app.Device, x, y, rectangle ); + } + break; + } + } + x += 22; + } + } + + private void t大文字表示( int x, int y, string str ) + { + foreach( char ch in str ) + { + for( int i = 0; i < this.st小文字位置.Length; i++ ) + { + if( ch == ' ' ) + { + break; + } + + if( this.st小文字位置[ i ].ch == ch ) + { + Rectangle rectangle = new Rectangle( this.st小文字位置[ i ].pt.X, 38, 32, 42 ); + if(TJAPlayer3.Tx.Result_Number != null ) + { + TJAPlayer3.Tx.Result_Number.t2D描画( TJAPlayer3.app.Device, x, y, rectangle ); + } + break; + } + } + x += 28; + } + } + #endregion + } +} diff --git a/TJAPlayer3/Stages/07.Game/Taiko/Dan_Cert.cs b/TJAPlayer3/Stages/07.Game/Taiko/Dan_Cert.cs new file mode 100644 index 00000000..3fb53ee1 --- /dev/null +++ b/TJAPlayer3/Stages/07.Game/Taiko/Dan_Cert.cs @@ -0,0 +1,1079 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Drawing; +using System.Runtime.InteropServices; +using FDK; +using System.IO; +using TJAPlayer3; +using System.Linq; + +namespace TJAPlayer3 +{ + internal class Dan_Cert : CActivity + { + /// + /// 段位認定 + /// + public Dan_Cert() + { + base.b活性化してない = true; + } + + // + Dan_C[] Challenge = new Dan_C[4]; + // + + public void Start(int number) + { + NowShowingNumber = number; + if (number == 0) + { + Counter_Wait = new CCounter(0, 2299, 1, TJAPlayer3.Timer); + } + else + { + Counter_In = new CCounter(0, 999, 1, TJAPlayer3.Timer); + } + bExamChangeCheck = false; + + if(number == 0) + { + for (int i = 1; i < 4; i++) + ExamChange[i] = false; + + for (int j = 1; j < 4; j++) //段位条件のループ(魂ゲージを除く) 縦(y) + { + if (TJAPlayer3.stage選曲.r確定された曲.DanSongs[0].Dan_C[j] != null) + { + if (TJAPlayer3.stage選曲.r確定された曲.DanSongs[TJAPlayer3.stage選曲.r確定された曲.DanSongs.Count - 1].Dan_C[j] != null) //個別の条件がありますよー + { + if (TJAPlayer3.stage選曲.r確定された曲.DanSongs[NowShowingNumber].Dan_C[j].GetExamRange() == Exam.Range.Less) + { + TJAPlayer3.stage選曲.r確定された曲.DanSongs[NowShowingNumber].Dan_C[j].Amount = TJAPlayer3.stage選曲.r確定された曲.DanSongs[NowShowingNumber].Dan_C[j].Value[0]; + } + else + { + TJAPlayer3.stage選曲.r確定された曲.DanSongs[NowShowingNumber].Dan_C[j].Amount = 0; + } + + Challenge[j] = TJAPlayer3.stage選曲.r確定された曲.DanSongs[NowShowingNumber].Dan_C[j]; + ExamChange[j] = true; + } + } + } + } + + ScreenPoint = new double[] { TJAPlayer3.Skin.nScrollFieldBGX[0] - TJAPlayer3.Tx.DanC_Screen.szテクスチャサイズ.Width / 2, 1280 }; + TJAPlayer3.stage演奏ドラム画面.ReSetScore(TJAPlayer3.DTX.List_DanSongs[NowShowingNumber].ScoreInit, TJAPlayer3.DTX.List_DanSongs[NowShowingNumber].ScoreDiff); + IsAnimating = true; + TJAPlayer3.stage演奏ドラム画面.actPanel.SetPanelString(TJAPlayer3.DTX.List_DanSongs[NowShowingNumber].Title, TJAPlayer3.DTX.List_DanSongs[NowShowingNumber].Genre, 1 + NowShowingNumber + "曲目"); + if(number == 0) Sound_Section_First?.t再生を開始する(); + else Sound_Section?.t再生を開始する(); + } + + public override void On活性化() + { + for (int i = 0; i < 4; i++) + { + if(TJAPlayer3.DTX.Dan_C[i] != null) Challenge[i] = new Dan_C(TJAPlayer3.DTX.Dan_C[i]); + + for (int j = 0; j < TJAPlayer3.stage選曲.r確定された曲.DanSongs.Count; j++) + { + if (TJAPlayer3.stage選曲.r確定された曲.DanSongs[j].Dan_C[i] != null) + { + TJAPlayer3.stage選曲.r確定された曲.DanSongs[j].Dan_C[i] = new Dan_C(TJAPlayer3.stage選曲.r確定された曲.DanSongs[j].Dan_C[i]); + } + } + } + + if(TJAPlayer3.stage演奏ドラム画面.ListDan_Number >= 1 && FirstSectionAnime) + TJAPlayer3.stage演奏ドラム画面.ListDan_Number = 0; + + FirstSectionAnime = false; + // 始点を決定する。 + ExamCount = 0; + songsnotesremain = new int[TJAPlayer3.stage選曲.r確定された曲.DanSongs.Count]; + this.ct虹アニメ = new CCounter(0, TJAPlayer3.Skin.Game_Gauge_Dan_Rainbow_Ptn - 1, 30, TJAPlayer3.Timer); + this.ct虹透明度 = new CCounter(0, TJAPlayer3.Skin.Game_Gauge_Rainbow_Timer - 1, 1, TJAPlayer3.Timer); + for (int i = 0; i < 4; i++) + { + if (Challenge[i] != null && Challenge[i].GetEnable() == true) + this.ExamCount++; + } + NowCymbolShowingNumber = 0; + bExamChangeCheck = false; + + for (int i = 0; i < 4; i++) + { + Status[i] = new ChallengeStatus(); + Status[i].Timer_Amount = new CCounter(); + Status[i].Timer_Gauge = new CCounter(); + Status[i].Timer_Failed = new CCounter(); + } + + IsEnded = new bool[TJAPlayer3.stage選曲.r確定された曲.DanSongs.Count]; + + if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan) IsAnimating = true; + base.On活性化(); + } + + public void Update() + { + for (int i = 0; i < 4; i++) + { + if (Challenge[i] == null || !Challenge[i].GetEnable()) return; + var oldReached = Challenge[i].GetReached(); + var isChangedAmount = false; + switch (Challenge[i].GetExamType()) + { + case Exam.Type.Gauge: + isChangedAmount = Challenge[i].Update((int)TJAPlayer3.stage演奏ドラム画面.actGauge.db現在のゲージ値[0]); + break; + case Exam.Type.JudgePerfect: + isChangedAmount = Challenge[i].Update(ExamChange[i] ? TJAPlayer3.stage演奏ドラム画面.n良[NowShowingNumber] : (int)TJAPlayer3.stage演奏ドラム画面.nヒット数_Auto含む.Drums.Perfect + TJAPlayer3.stage演奏ドラム画面.nヒット数_Auto含まない.Drums.Perfect); + break; + case Exam.Type.JudgeGood: + isChangedAmount = Challenge[i].Update(ExamChange[i] ? TJAPlayer3.stage演奏ドラム画面.n可[NowShowingNumber] : (int)TJAPlayer3.stage演奏ドラム画面.nヒット数_Auto含む.Drums.Great + TJAPlayer3.stage演奏ドラム画面.nヒット数_Auto含まない.Drums.Great); + break; + case Exam.Type.JudgeBad: + isChangedAmount = Challenge[i].Update(ExamChange[i] ? TJAPlayer3.stage演奏ドラム画面.n不可[NowShowingNumber] : (int)TJAPlayer3.stage演奏ドラム画面.nヒット数_Auto含まない.Drums.Miss); + break; + case Exam.Type.Score: + isChangedAmount = Challenge[i].Update((int)TJAPlayer3.stage演奏ドラム画面.actScore.GetScore(0)); + break; + case Exam.Type.Roll: + isChangedAmount = Challenge[i].Update(ExamChange[i] ? TJAPlayer3.stage演奏ドラム画面.n連打[NowShowingNumber] : (int)(TJAPlayer3.stage演奏ドラム画面.GetRoll(0))); + break; + case Exam.Type.Hit: + isChangedAmount = Challenge[i].Update(ExamChange[i] ? TJAPlayer3.stage演奏ドラム画面.n良[NowShowingNumber] + TJAPlayer3.stage演奏ドラム画面.n可[NowShowingNumber] + TJAPlayer3.stage演奏ドラム画面.n連打[NowShowingNumber] : (int)(TJAPlayer3.stage演奏ドラム画面.nヒット数_Auto含む.Drums.Perfect + TJAPlayer3.stage演奏ドラム画面.nヒット数_Auto含まない.Drums.Perfect + TJAPlayer3.stage演奏ドラム画面.nヒット数_Auto含む.Drums.Great + TJAPlayer3.stage演奏ドラム画面.nヒット数_Auto含まない.Drums.Great + TJAPlayer3.stage演奏ドラム画面.GetRoll(0))); + break; + case Exam.Type.Combo: + isChangedAmount = Challenge[i].Update((int)TJAPlayer3.stage演奏ドラム画面.actCombo.n現在のコンボ数.最高値[0]); + break; + default: + break; + } + + // 値が変更されていたらアニメーションを行う。 + if (isChangedAmount) + { + if(Status[i].Timer_Amount != null && Status[i].Timer_Amount.b終了値に達してない) + { + Status[i].Timer_Amount = new CCounter(0, 11, 12, TJAPlayer3.Timer); + Status[i].Timer_Amount.n現在の値 = 1; + } + else + { + Status[i].Timer_Amount = new CCounter(0, 11, 12, TJAPlayer3.Timer); + } + } + + // 条件の達成見込みがあるかどうか判断する。 + if (Challenge[i].GetExamRange() == Exam.Range.Less) + { + Challenge[i].SetReached(!Challenge[i].IsCleared[0]); + } + else + { + songsnotesremain[NowShowingNumber] = TJAPlayer3.DTX.nDan_NotesCount[NowShowingNumber] - (TJAPlayer3.stage演奏ドラム画面.n良[NowShowingNumber] + TJAPlayer3.stage演奏ドラム画面.n可[NowShowingNumber] + TJAPlayer3.stage演奏ドラム画面.n不可[NowShowingNumber]); + notesremain = TJAPlayer3.DTX.nノーツ数[3] - (TJAPlayer3.stage演奏ドラム画面.nヒット数_Auto含む.Drums.Perfect + TJAPlayer3.stage演奏ドラム画面.nヒット数_Auto含まない.Drums.Perfect) - (TJAPlayer3.stage演奏ドラム画面.nヒット数_Auto含む.Drums.Great + TJAPlayer3.stage演奏ドラム画面.nヒット数_Auto含まない.Drums.Great) - (TJAPlayer3.stage演奏ドラム画面.nヒット数_Auto含む.Drums.Miss + TJAPlayer3.stage演奏ドラム画面.nヒット数_Auto含まない.Drums.Miss); + // 残り音符数が0になったときに判断されるやつ + if (ExamChange[i] ? songsnotesremain[NowShowingNumber] <= 0 : notesremain <= 0) + { + // 残り音符数ゼロ + switch (Challenge[i].GetExamType()) + { + case Exam.Type.Gauge: + if (Challenge[i].Amount < Challenge[i].Value[0]) Challenge[i].SetReached(true); + break; + case Exam.Type.Score: + if (Challenge[i].Amount < Challenge[i].Value[0]) Challenge[i].SetReached(true); + break; + default: + // 何もしない + break; + } + } + + // 常に監視されるやつ。 + switch (Challenge[i].GetExamType()) + { + case Exam.Type.JudgePerfect: + case Exam.Type.JudgeGood: + case Exam.Type.JudgeBad: + if (ExamChange[i] ? songsnotesremain[NowShowingNumber] < (Challenge[i].Value[0] - Challenge[i].Amount) : notesremain < (Challenge[i].Value[0] - Challenge[i].Amount)) Challenge[i].SetReached(true); + break; + case Exam.Type.Combo: + if (notesremain + TJAPlayer3.stage演奏ドラム画面.actCombo.n現在のコンボ数.P1 < ((Challenge[i].Value[0])) && TJAPlayer3.stage演奏ドラム画面.actCombo.n現在のコンボ数.最高値[0] < (Challenge[i].Value[0])) Challenge[i].SetReached(true); + break; + default: + break; + } + + // 音源が終了したやつの分岐。 + // ( CDTXMania.DTX.listChip.Count > 0 ) ? CDTXMania.DTX.listChip[ CDTXMania.DTX.listChip.Count - 1 ].n発声時刻ms : 0; + if(!IsEnded[NowShowingNumber]) + { + if (TJAPlayer3.DTX.listChip.Count <= 0) continue; + if (ExamChange[i] ? TJAPlayer3.DTX.pDan_LastChip[NowShowingNumber].n発声時刻ms <= TJAPlayer3.Timer.n現在時刻 : TJAPlayer3.DTX.listChip[TJAPlayer3.DTX.listChip.Count - 1].n発声時刻ms <= TJAPlayer3.Timer.n現在時刻) + { + switch (Challenge[i].GetExamType()) + { + case Exam.Type.Score: + case Exam.Type.Hit: + if (Challenge[i].Amount < Challenge[i].Value[0]) Challenge[i].SetReached(true); + break; + case Exam.Type.Roll: + if (Challenge[i].Amount < Challenge[i].Value[0]) Challenge[i].SetReached(true); + break; + default: + break; + } + IsEnded[NowShowingNumber] = true; + } + } + } + if(oldReached == false && Challenge[i].GetReached() == true) + { + Sound_Failed?.t再生を開始する(); + } + } + } + + public override void On非活性化() + { + for (int i = 0; i < 4; i++) + { + Challenge[i] = null; + } + + for (int i = 0; i < 4; i++) + { + Status[i].Timer_Amount = null; + Status[i].Timer_Gauge = null; + Status[i].Timer_Failed = null; + } + for(int i = 0; i < IsEnded.Length; i++) + IsEnded[i] = false; + + base.On非活性化(); + } + + public override void OnManagedリソースの作成() + { + Dan_Plate = TJAPlayer3.tテクスチャの生成(Path.GetDirectoryName(TJAPlayer3.DTX.strファイル名の絶対パス) + @"\Dan_Plate.png"); + Sound_Section = TJAPlayer3.Sound管理.tサウンドを生成する(CSkin.Path(@"Sounds\Dan\Section.ogg"), ESoundGroup.SoundEffect); + Sound_Section_First = TJAPlayer3.Sound管理.tサウンドを生成する(CSkin.Path(@"Sounds\Dan\Section_First.wav"), ESoundGroup.SoundEffect); + Sound_Failed = TJAPlayer3.Sound管理.tサウンドを生成する(CSkin.Path(@"Sounds\Dan\Failed.ogg"), ESoundGroup.SoundEffect); + base.OnManagedリソースの作成(); + } + + public override void OnManagedリソースの解放() + { + Dan_Plate?.Dispose(); + Sound_Section_First?.Dispose(); + Sound_Section?.t解放する(); + Sound_Failed?.t解放する(); + base.OnManagedリソースの解放(); + } + + public override int On進行描画() + { + if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Dan) return base.On進行描画(); + Counter_In?.t進行(); + Counter_Wait?.t進行(); + Counter_Out?.t進行(); + Counter_Text?.t進行(); + + if (Counter_Text != null) + { + if (Counter_Text.n現在の値 >= 2000) + { + for (int i = Counter_Text_Old; i < Counter_Text.n現在の値; i++) + { + if (i % 2 == 0) + { + if (TJAPlayer3.DTX.List_DanSongs[NowShowingNumber].TitleTex != null) + { + TJAPlayer3.DTX.List_DanSongs[NowShowingNumber].TitleTex.Opacity--; + } + if (TJAPlayer3.DTX.List_DanSongs[NowShowingNumber].SubTitleTex != null) + { + TJAPlayer3.DTX.List_DanSongs[NowShowingNumber].SubTitleTex.Opacity--; + } + } + } + } + else + { + if (TJAPlayer3.DTX.List_DanSongs[NowShowingNumber].TitleTex != null) + { + TJAPlayer3.DTX.List_DanSongs[NowShowingNumber].TitleTex.Opacity = 255; + } + if (TJAPlayer3.DTX.List_DanSongs[NowShowingNumber].SubTitleTex != null) + { + TJAPlayer3.DTX.List_DanSongs[NowShowingNumber].SubTitleTex.Opacity = 255; + } + } + Counter_Text_Old = Counter_Text.n現在の値; + } + + for (int i = 0; i < 4; i++) + { + Status[i].Timer_Amount?.t進行(); + } + + //for (int i = 0; i < 3; i++) + //{ + // if (Challenge[i] != null && Challenge[i].GetEnable()) + // CDTXMania.act文字コンソール.tPrint(0, 20 * i, C文字コンソール.Eフォント種別.白, Challenge[i].ToString()); + // else + // CDTXMania.act文字コンソール.tPrint(0, 20 * i, C文字コンソール.Eフォント種別.白, "None"); + //} + //CDTXMania.act文字コンソール.tPrint(0, 80, C文字コンソール.Eフォント種別.白, String.Format("Notes Remain: {0}", CDTXMania.DTX.nノーツ数[3] - (CDTXMania.stage演奏ドラム画面.nヒット数_Auto含む.Drums.Perfect + CDTXMania.stage演奏ドラム画面.nヒット数_Auto含まない.Drums.Perfect) - (CDTXMania.stage演奏ドラム画面.nヒット数_Auto含む.Drums.Great + CDTXMania.stage演奏ドラム画面.nヒット数_Auto含まない.Drums.Great) - (CDTXMania.stage演奏ドラム画面.nヒット数_Auto含む.Drums.Miss + CDTXMania.stage演奏ドラム画面.nヒット数_Auto含まない.Drums.Miss))); + + // 背景を描画する。 + + TJAPlayer3.Tx.DanC_Background?.t2D描画(TJAPlayer3.app.Device, 0, 0); + + DrawExam(Challenge); + + // 幕のアニメーション + if (Counter_In != null) + { + if (Counter_In.b終了値に達してない) + { + for (int i = Counter_In_Old; i < Counter_In.n現在の値; i++) + { + ScreenPoint[0] += (TJAPlayer3.Skin.nScrollFieldBGX[0] - ScreenPoint[0]) / 180.0; + ScreenPoint[1] += ((1280 / 2 + TJAPlayer3.Skin.nScrollFieldBGX[0] / 2) - ScreenPoint[1]) / 180.0; + } + Counter_In_Old = Counter_In.n現在の値; + TJAPlayer3.Tx.DanC_Screen?.t2D描画(TJAPlayer3.app.Device, (int)ScreenPoint[0], TJAPlayer3.Skin.nScrollFieldY[0], new Rectangle(0, 0, TJAPlayer3.Tx.DanC_Screen.szテクスチャサイズ.Width / 2, TJAPlayer3.Tx.DanC_Screen.szテクスチャサイズ.Height)); + TJAPlayer3.Tx.DanC_Screen?.t2D描画(TJAPlayer3.app.Device, (int)ScreenPoint[1], TJAPlayer3.Skin.nScrollFieldY[0], new Rectangle(TJAPlayer3.Tx.DanC_Screen.szテクスチャサイズ.Width / 2, 0, TJAPlayer3.Tx.DanC_Screen.szテクスチャサイズ.Width / 2, TJAPlayer3.Tx.DanC_Screen.szテクスチャサイズ.Height)); + //CDTXMania.act文字コンソール.tPrint(0, 420, C文字コンソール.Eフォント種別.白, String.Format("{0} : {1}", ScreenPoint[0], ScreenPoint[1])); + } + if (Counter_In.b終了値に達した) + { + Counter_In = null; + Counter_Wait = new CCounter(0, 2299, 1, TJAPlayer3.Timer); + } + } + + if (Counter_Wait != null) + { + if (Counter_Wait.b終了値に達してない) + { + TJAPlayer3.Tx.DanC_Screen?.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.nScrollFieldBGX[0], TJAPlayer3.Skin.nScrollFieldY[0]); + + if (NowShowingNumber != 0) + { + if (Counter_Wait.n現在の値 >= 800) + { + if (!bExamChangeCheck) + { + for (int i = 1; i < 4; i++) + ExamChange[i] = false; + + for (int j = 1; j < 4; j++) //段位条件のループ(魂ゲージを除く) 縦(y) + { + if (TJAPlayer3.stage選曲.r確定された曲.DanSongs[0].Dan_C[j] != null) + { + if (TJAPlayer3.stage選曲.r確定された曲.DanSongs[TJAPlayer3.stage選曲.r確定された曲.DanSongs.Count - 1].Dan_C[j] != null) //個別の条件がありますよー + { + Challenge[j] = TJAPlayer3.stage選曲.r確定された曲.DanSongs[NowShowingNumber].Dan_C[j]; + ExamChange[j] = true; + } + } + } + NowCymbolShowingNumber = NowShowingNumber; + bExamChangeCheck = true; + } + } + } + } + if (Counter_Wait.b終了値に達した) + { + Counter_Wait = null; + Counter_Out = new CCounter(0, 90, 3, TJAPlayer3.Timer); + Counter_Text = new CCounter(0, 2899, 1, TJAPlayer3.Timer); + } + } + if (Counter_Text != null) + { + if (Counter_Text.b終了値に達してない) + { + var title = TJAPlayer3.DTX.List_DanSongs[NowShowingNumber].TitleTex; + var subTitle = TJAPlayer3.DTX.List_DanSongs[NowShowingNumber].SubTitleTex; + if (subTitle == null) + title?.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 1280 / 2 + TJAPlayer3.Skin.nScrollFieldBGX[0] / 2, TJAPlayer3.Skin.nScrollFieldY[0] + 65); + else + { + title?.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 1280 / 2 + TJAPlayer3.Skin.nScrollFieldBGX[0] / 2, TJAPlayer3.Skin.nScrollFieldY[0] + 45); + subTitle?.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 1280 / 2 + TJAPlayer3.Skin.nScrollFieldBGX[0] / 2, TJAPlayer3.Skin.nScrollFieldY[0] + 85); + } + } + if (Counter_Text.b終了値に達した) + { + Counter_Text = null; + IsAnimating = false; + } + } + if (Counter_Out != null) + { + if (Counter_Out.b終了値に達してない) + { + ScreenPoint[0] = TJAPlayer3.Skin.nScrollFieldBGX[0] - Math.Sin(Counter_Out.n現在の値 * (Math.PI / 180)) * 500; + ScreenPoint[1] = TJAPlayer3.Skin.nScrollFieldBGX[0] + TJAPlayer3.Tx.DanC_Screen.szテクスチャサイズ.Width / 2 + Math.Sin(Counter_Out.n現在の値 * (Math.PI / 180)) * 500; + TJAPlayer3.Tx.DanC_Screen?.t2D描画(TJAPlayer3.app.Device, (int)ScreenPoint[0], TJAPlayer3.Skin.nScrollFieldY[0], new Rectangle(0, 0, TJAPlayer3.Tx.DanC_Screen.szテクスチャサイズ.Width / 2, TJAPlayer3.Tx.DanC_Screen.szテクスチャサイズ.Height)); + TJAPlayer3.Tx.DanC_Screen?.t2D描画(TJAPlayer3.app.Device, (int)ScreenPoint[1], TJAPlayer3.Skin.nScrollFieldY[0], new Rectangle(TJAPlayer3.Tx.DanC_Screen.szテクスチャサイズ.Width / 2, 0, TJAPlayer3.Tx.DanC_Screen.szテクスチャサイズ.Width / 2, TJAPlayer3.Tx.DanC_Screen.szテクスチャサイズ.Height)); + //CDTXMania.act文字コンソール.tPrint(0, 420, C文字コンソール.Eフォント種別.白, String.Format("{0} : {1}", ScreenPoint[0], ScreenPoint[1])); + } + if (Counter_Out.b終了値に達した) + { + Counter_Out = null; + } + } + // 段プレートを描画する。 + Dan_Plate?.t2D中心基準描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_DanC_Dan_Plate[0], TJAPlayer3.Skin.Game_DanC_Dan_Plate[1]); + + TJAPlayer3.act文字コンソール.tPrint(0, 0, C文字コンソール.Eフォント種別.白, TJAPlayer3.DTX.pDan_LastChip[NowShowingNumber].n発声時刻ms + " / " + CSound管理.rc演奏用タイマ.n現在時刻); + + + return base.On進行描画(); + } + + public void DrawExam(Dan_C[] dan_C) + { + var count = 0; + for (int i = 0; i < 4; i++) + { + if (dan_C[i] != null && dan_C[i].GetEnable() == true) + count++; + } + for (int i = 0; i < count; i++) + { + if (dan_C[i].GetExamType() != Exam.Type.Gauge) + { + #region ゲージの土台を描画する。 + + TJAPlayer3.Tx.DanC_Base?.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_DanC_X[count - 1], TJAPlayer3.Skin.Game_DanC_Y[count - 1] + TJAPlayer3.Skin.Game_DanC_Size[1] * i + (i * TJAPlayer3.Skin.Game_DanC_Padding), new RectangleF(0, ExamChange[i] ? 92 : 0, 1006, 92)); + + for (int j = 1; j < 3; j++) + { + if (TJAPlayer3.stage選曲.r確定された曲.DanSongs[j - 1].Dan_C[i] != null && TJAPlayer3.stage選曲.r確定された曲.DanSongs[NowShowingNumber].Dan_C[i] != null) + { + if (NowShowingNumber > j) + { + TJAPlayer3.Tx.DanC_SmallBase.Opacity = 255; + TJAPlayer3.Tx.DanC_Small_ExamCymbol.Opacity = 255; + } + + if (NowShowingNumber == j) + { + if (Counter_Wait != null && Counter_Wait.n現在の値 >= 800) + { + TJAPlayer3.Tx.DanC_SmallBase.Opacity = (Counter_Wait.n現在の値 - 800); + TJAPlayer3.Tx.DanC_Small_ExamCymbol.Opacity = (Counter_Wait.n現在の値 - 800); + } + else + { + if (Counter_In != null || (Counter_Wait != null && Counter_Wait.n現在の値 < 800)) + { + TJAPlayer3.Tx.DanC_SmallBase.Opacity = 0; + TJAPlayer3.Tx.DanC_Small_ExamCymbol.Opacity = 0; + } + else + { + TJAPlayer3.Tx.DanC_SmallBase.Opacity = 255; + TJAPlayer3.Tx.DanC_Small_ExamCymbol.Opacity = 255; + } + } + } + + if (NowShowingNumber >= j) + { + TJAPlayer3.Tx.DanC_SmallBase?.t2D描画(TJAPlayer3.app.Device, 815, 613 + (j - 1) * 33); + TJAPlayer3.Tx.DanC_Small_ExamCymbol?.t2D描画(TJAPlayer3.app.Device, 785, 610 + (j - 1) * 33, new RectangleF(0, (j - 1) * 28, 30, 28)); + } + } + } + + #endregion + + #region ゲージを描画する。 + + #region ゲージ横のシンボル描画しようぜ。 + + if (ExamChange[i] && NowShowingNumber != 0) + { + if (Counter_Wait != null) + { + if (Counter_Wait.n現在の値 >= 800) + { + TJAPlayer3.Tx.DanC_ExamCymbol.Opacity = (Counter_Wait.n現在の値 - 800); + } + else if (Counter_Wait.n現在の値 >= 800 - 255) + { + TJAPlayer3.Tx.DanC_ExamCymbol.Opacity = 255 - (Counter_Wait.n現在の値 - (800 - 255)); + } + } + else + { + TJAPlayer3.Tx.DanC_ExamCymbol.Opacity = 255; + } + } + else + { + TJAPlayer3.Tx.DanC_ExamCymbol.Opacity = 255; + } + + //75, 418 + if (ExamChange[i]) + { + TJAPlayer3.Tx.DanC_ExamCymbol.t2D描画(TJAPlayer3.app.Device, 75, 428 + (i - 1) * 100, new RectangleF(0, 41 * NowCymbolShowingNumber, 197, 41)); + } + + #endregion + + for (int j = 1; j < 3; j++) + { + if(TJAPlayer3.stage選曲.r確定された曲.DanSongs[j - 1].Dan_C[i] != null && TJAPlayer3.stage選曲.r確定された曲.DanSongs[NowShowingNumber].Dan_C[i] != null) + { + if (GetExamStatus(TJAPlayer3.stage選曲.r確定された曲.DanSongs[j - 1].Dan_C[i]) == Exam.Status.Better_Success && GetExamConfirmStatus(TJAPlayer3.stage選曲.r確定された曲.DanSongs[j - 1].Dan_C[i])) + { + if (NowShowingNumber > j) + { + TJAPlayer3.Tx.Gauge_Dan_Rainbow[0].Opacity = 255; + TJAPlayer3.Tx.DanC_MiniNumber.Opacity = 255; + } + + if (NowShowingNumber == j) + { + if (Counter_Wait != null && Counter_Wait.n現在の値 >= 800) + { + TJAPlayer3.Tx.Gauge_Dan_Rainbow[0].Opacity = (Counter_Wait.n現在の値 - 800); + TJAPlayer3.Tx.DanC_MiniNumber.Opacity = (Counter_Wait.n現在の値 - 800); + } + else + { + if (Counter_In != null || (Counter_Wait != null && Counter_Wait.n現在の値 < 800)) + { + TJAPlayer3.Tx.Gauge_Dan_Rainbow[0].Opacity = 0; + TJAPlayer3.Tx.DanC_MiniNumber.Opacity = 0; + } + else + { + TJAPlayer3.Tx.Gauge_Dan_Rainbow[0].Opacity = 255; + TJAPlayer3.Tx.DanC_MiniNumber.Opacity = 255; + } + } + } + + if (NowShowingNumber >= j) + { + TJAPlayer3.Tx.Gauge_Dan_Rainbow[0].vc拡大縮小倍率.X = 0.23875f; + TJAPlayer3.Tx.Gauge_Dan_Rainbow[0].vc拡大縮小倍率.Y = 0.35185f; + + TJAPlayer3.Tx.Gauge_Dan_Rainbow[0]?.t2D描画(TJAPlayer3.app.Device, 818, 615 + (j - 1) * 33, + new Rectangle(0, 0, (int)(TJAPlayer3.stage選曲.r確定された曲.DanSongs[j - 1].Dan_C[i].GetAmountToPercent() * (TJAPlayer3.Tx.Gauge_Dan_Rainbow[0].szテクスチャサイズ.Width / 100.0)), TJAPlayer3.Tx.Gauge_Dan_Rainbow[0].szテクスチャサイズ.Height)); + + DrawMiniNumber(TJAPlayer3.stage選曲.r確定された曲.DanSongs[j - 1].Dan_C[i].GetAmount(), 826, 636 + (j - 1) * 33, 14, TJAPlayer3.stage選曲.r確定された曲.DanSongs[j - 1].Dan_C[i]); + } + } + else + { + if (NowShowingNumber > j) + { + for (int l = 0; l < TJAPlayer3.Tx.DanC_Gauge.Length; l++) + TJAPlayer3.Tx.DanC_Gauge[l].Opacity = 255; + + TJAPlayer3.Tx.DanC_MiniNumber.Opacity = 255; + } + + if (NowShowingNumber == j) + { + if (Counter_Wait != null && Counter_Wait.n現在の値 >= 800) + { + for (int l = 0; l < TJAPlayer3.Tx.DanC_Gauge.Length; l++) + TJAPlayer3.Tx.DanC_Gauge[l].Opacity = (Counter_Wait.n現在の値 - 800); + + TJAPlayer3.Tx.DanC_MiniNumber.Opacity = (Counter_Wait.n現在の値 - 800); + } + else + { + if (Counter_In != null || (Counter_Wait != null && Counter_Wait.n現在の値 < 800)) + { + for (int l = 0; l < TJAPlayer3.Tx.DanC_Gauge.Length; l++) + TJAPlayer3.Tx.DanC_Gauge[l].Opacity = 0; + + TJAPlayer3.Tx.DanC_MiniNumber.Opacity = 0; + } + else + { + for (int l = 0; l < TJAPlayer3.Tx.DanC_Gauge.Length; l++) + TJAPlayer3.Tx.DanC_Gauge[l].Opacity = 255; + + TJAPlayer3.Tx.DanC_MiniNumber.Opacity = 255; + } + } + } + + if (NowShowingNumber >= j) + { + var drawGaugeTypetwo = 0; + if (TJAPlayer3.stage選曲.r確定された曲.DanSongs[j - 1].Dan_C[i].GetExamRange() == Exam.Range.More) + { + if (TJAPlayer3.stage選曲.r確定された曲.DanSongs[j - 1].Dan_C[i].GetAmountToPercent() >= 100) + drawGaugeTypetwo = 2; + else if (TJAPlayer3.stage選曲.r確定された曲.DanSongs[j - 1].Dan_C[i].GetAmountToPercent() >= 70) + drawGaugeTypetwo = 1; + else + drawGaugeTypetwo = 0; + } + else + { + if (TJAPlayer3.stage選曲.r確定された曲.DanSongs[j - 1].Dan_C[i].GetAmountToPercent() >= 100) + drawGaugeTypetwo = 2; + else if (TJAPlayer3.stage選曲.r確定された曲.DanSongs[j - 1].Dan_C[i].GetAmountToPercent() > 70) + drawGaugeTypetwo = 1; + else + drawGaugeTypetwo = 0; + } + + TJAPlayer3.Tx.DanC_Gauge[drawGaugeTypetwo].vc拡大縮小倍率.X = 0.23875f; + TJAPlayer3.Tx.DanC_Gauge[drawGaugeTypetwo].vc拡大縮小倍率.Y = 0.35185f; + TJAPlayer3.Tx.DanC_Gauge[drawGaugeTypetwo]?.t2D描画(TJAPlayer3.app.Device, 818, 615 + (j - 1) * 33, new Rectangle(0, 0, (int)(TJAPlayer3.stage選曲.r確定された曲.DanSongs[j - 1].Dan_C[i].GetAmountToPercent() * (TJAPlayer3.Tx.DanC_Gauge[drawGaugeTypetwo].szテクスチャサイズ.Width / 100.0)), TJAPlayer3.Tx.DanC_Gauge[drawGaugeTypetwo].szテクスチャサイズ.Height)); + + DrawMiniNumber(TJAPlayer3.stage選曲.r確定された曲.DanSongs[j - 1].Dan_C[i].GetAmount(), 826, 630 + (j - 1) * 33, 14, TJAPlayer3.stage選曲.r確定された曲.DanSongs[j - 1].Dan_C[i]); + } + } + } + } + + if (GetExamStatus(dan_C[i]) == Exam.Status.Better_Success && GetExamConfirmStatus(dan_C[i])) + { + if (ExamChange[i] && NowShowingNumber != 0) + { + if (Counter_Wait != null) + { + if (Counter_Wait.n現在の値 >= 800) + { + for (int j = 0; j < TJAPlayer3.Tx.DanC_Gauge.Length; j++) + TJAPlayer3.Tx.DanC_Gauge[j].Opacity = (Counter_Wait.n現在の値 - 800); + + for (int j = 0; j < TJAPlayer3.Tx.Gauge_Dan_Rainbow.Length; j++) + TJAPlayer3.Tx.Gauge_Dan_Rainbow[j].Opacity = (Counter_Wait.n現在の値 - 800); + + TJAPlayer3.Tx.DanC_Number.Opacity = (Counter_Wait.n現在の値 - 800); + TJAPlayer3.Tx.DanC_ExamRange.Opacity = (Counter_Wait.n現在の値 - 800); + TJAPlayer3.Tx.DanC_Small_Number.Opacity = (Counter_Wait.n現在の値 - 800); + } + else if (Counter_Wait.n現在の値 >= 800 - 255) + { + for (int j = 0; j < TJAPlayer3.Tx.DanC_Gauge.Length; j++) + TJAPlayer3.Tx.DanC_Gauge[j].Opacity = 255 - (Counter_Wait.n現在の値 - (800 - 255)); + + for (int j = 0; j < TJAPlayer3.Tx.Gauge_Dan_Rainbow.Length; j++) + TJAPlayer3.Tx.Gauge_Dan_Rainbow[j].Opacity = 255 - (Counter_Wait.n現在の値 - (800 - 255)); + + TJAPlayer3.Tx.DanC_Number.Opacity = 255 - (Counter_Wait.n現在の値 - (800 - 255)); + TJAPlayer3.Tx.DanC_ExamRange.Opacity = 255 - (Counter_Wait.n現在の値 - (800 - 255)); + TJAPlayer3.Tx.DanC_Small_Number.Opacity = 255 - (Counter_Wait.n現在の値 - (800 - 255)); + } + } + else + { + for (int j = 0; j < TJAPlayer3.Tx.DanC_Gauge.Length; j++) + TJAPlayer3.Tx.DanC_Gauge[j].Opacity = 255; + + for (int j = 0; j < TJAPlayer3.Tx.Gauge_Dan_Rainbow.Length; j++) + TJAPlayer3.Tx.Gauge_Dan_Rainbow[j].Opacity = 255; + + TJAPlayer3.Tx.DanC_Number.Opacity = 255; + TJAPlayer3.Tx.DanC_ExamRange.Opacity = 255; + TJAPlayer3.Tx.DanC_Small_Number.Opacity = 255; + } + } + else + { + for (int j = 0; j < TJAPlayer3.Tx.DanC_Gauge.Length; j++) + TJAPlayer3.Tx.DanC_Gauge[j].Opacity = 255; + + for (int j = 0; j < TJAPlayer3.Tx.Gauge_Dan_Rainbow.Length; j++) + TJAPlayer3.Tx.Gauge_Dan_Rainbow[j].Opacity = 255; + + TJAPlayer3.Tx.DanC_Number.Opacity = 255; + TJAPlayer3.Tx.DanC_ExamRange.Opacity = 255; + TJAPlayer3.Tx.DanC_Small_Number.Opacity = 255; + } + + this.ct虹アニメ.t進行Loop(); + this.ct虹透明度.t進行Loop(); + + int 虹ベース = ct虹アニメ.n現在の値; + if (虹ベース == ct虹アニメ.n終了値) 虹ベース = 0; + + TJAPlayer3.Tx.Gauge_Dan_Rainbow[this.ct虹アニメ.n現在の値].vc拡大縮小倍率.X = ExamChange[i] ? 0.663333333f : 1.0f; + TJAPlayer3.Tx.Gauge_Dan_Rainbow[0].vc拡大縮小倍率.X = ExamChange[i] ? 0.663333333f : 1.0f; + TJAPlayer3.Tx.Gauge_Dan_Rainbow[0].vc拡大縮小倍率.Y = 1.0f; + + if (Counter_Wait != null && !(Counter_Wait.n現在の値 <= 1055 && Counter_Wait.n現在の値 >= 800 - 255)) + { + TJAPlayer3.Tx.Gauge_Dan_Rainbow[this.ct虹アニメ.n現在の値].Opacity = 255; + } + TJAPlayer3.Tx.Gauge_Dan_Rainbow[this.ct虹アニメ.n現在の値]?.t2D拡大率考慮下基準描画(TJAPlayer3.app.Device, + TJAPlayer3.Skin.Game_DanC_X[count - 1] + TJAPlayer3.Skin.Game_DanC_Offset[0], TJAPlayer3.Skin.Game_DanC_Y[count - 1] + TJAPlayer3.Skin.Game_DanC_Size[1] * (i + 1) + ((i + 1) * TJAPlayer3.Skin.Game_DanC_Padding) - TJAPlayer3.Skin.Game_DanC_Offset[1], + new Rectangle(0, 0, (int)(dan_C[i].GetAmountToPercent() * (TJAPlayer3.Tx.Gauge_Dan_Rainbow[this.ct虹アニメ.n現在の値].szテクスチャサイズ.Width / 100.0)), TJAPlayer3.Tx.Gauge_Dan_Rainbow[this.ct虹アニメ.n現在の値].szテクスチャサイズ.Height)); + + if (Counter_Wait != null && !(Counter_Wait.n現在の値 <= 1055 && Counter_Wait.n現在の値 >= 800 - 255)) + { + TJAPlayer3.Tx.Gauge_Dan_Rainbow[虹ベース].Opacity = (ct虹透明度.n現在の値 * 255 / (int)ct虹透明度.n終了値) / 1; + } + + TJAPlayer3.Tx.Gauge_Dan_Rainbow[虹ベース]?.t2D拡大率考慮下基準描画(TJAPlayer3.app.Device, + TJAPlayer3.Skin.Game_DanC_X[count - 1] + TJAPlayer3.Skin.Game_DanC_Offset[0], TJAPlayer3.Skin.Game_DanC_Y[count - 1] + TJAPlayer3.Skin.Game_DanC_Size[1] * (i + 1) + ((i + 1) * TJAPlayer3.Skin.Game_DanC_Padding) - TJAPlayer3.Skin.Game_DanC_Offset[1], + new Rectangle(0, 0, (int)(dan_C[i].GetAmountToPercent() * (TJAPlayer3.Tx.Gauge_Dan_Rainbow[虹ベース].szテクスチャサイズ.Width / 100.0)), TJAPlayer3.Tx.Gauge_Dan_Rainbow[this.ct虹アニメ.n現在の値].szテクスチャサイズ.Height)); + + } + else + { + if(ExamChange[i] && NowShowingNumber != 0) + { + if (Counter_Wait != null) + { + if (Counter_Wait.n現在の値 >= 800) + { + for (int j = 0; j < TJAPlayer3.Tx.DanC_Gauge.Length; j++) + TJAPlayer3.Tx.DanC_Gauge[j].Opacity = (Counter_Wait.n現在の値 - 800); + + TJAPlayer3.Tx.DanC_Number.Opacity = (Counter_Wait.n現在の値 - 800); + TJAPlayer3.Tx.DanC_ExamRange.Opacity = (Counter_Wait.n現在の値 - 800); + TJAPlayer3.Tx.DanC_Small_Number.Opacity = (Counter_Wait.n現在の値 - 800); + } + else if (Counter_Wait.n現在の値 >= 800 - 255) + { + for (int j = 0; j < TJAPlayer3.Tx.DanC_Gauge.Length; j++) + TJAPlayer3.Tx.DanC_Gauge[j].Opacity = 255 - (Counter_Wait.n現在の値 - (800 - 255)); + + TJAPlayer3.Tx.DanC_Number.Opacity = 255 - (Counter_Wait.n現在の値 - (800 - 255)); + TJAPlayer3.Tx.DanC_ExamRange.Opacity = 255 - (Counter_Wait.n現在の値 - (800 - 255)); + TJAPlayer3.Tx.DanC_Small_Number.Opacity = 255 - (Counter_Wait.n現在の値 - (800 - 255)); + } + } + else + { + for (int j = 0; j < TJAPlayer3.Tx.DanC_Gauge.Length; j++) + TJAPlayer3.Tx.DanC_Gauge[j].Opacity = 255; + + TJAPlayer3.Tx.DanC_Number.Opacity = 255; + TJAPlayer3.Tx.DanC_ExamRange.Opacity = 255; + TJAPlayer3.Tx.DanC_Small_Number.Opacity = 255; + } + } + else + { + for (int j = 0; j < TJAPlayer3.Tx.DanC_Gauge.Length; j++) + TJAPlayer3.Tx.DanC_Gauge[j].Opacity = 255; + + TJAPlayer3.Tx.DanC_Number.Opacity = 255; + TJAPlayer3.Tx.DanC_ExamRange.Opacity = 255; + TJAPlayer3.Tx.DanC_Small_Number.Opacity = 255; + } + + var drawGaugeType = 0; + if (dan_C[i].GetExamRange() == Exam.Range.More) + { + if (dan_C[i].GetAmountToPercent() >= 100) + drawGaugeType = 2; + else if (dan_C[i].GetAmountToPercent() >= 70) + drawGaugeType = 1; + else + drawGaugeType = 0; + } + else + { + if (dan_C[i].GetAmountToPercent() >= 100) + drawGaugeType = 2; + else if (dan_C[i].GetAmountToPercent() > 70) + drawGaugeType = 1; + else + drawGaugeType = 0; + } + TJAPlayer3.Tx.DanC_Gauge[drawGaugeType].vc拡大縮小倍率.X = ExamChange[i] ? 0.663333333f : 1.0f; + TJAPlayer3.Tx.DanC_Gauge[drawGaugeType].vc拡大縮小倍率.Y = 1.0f; + TJAPlayer3.Tx.DanC_Gauge[drawGaugeType]?.t2D拡大率考慮下基準描画(TJAPlayer3.app.Device, + TJAPlayer3.Skin.Game_DanC_X[count - 1] + TJAPlayer3.Skin.Game_DanC_Offset[0], TJAPlayer3.Skin.Game_DanC_Y[count - 1] + TJAPlayer3.Skin.Game_DanC_Size[1] * (i + 1) + ((i + 1) * TJAPlayer3.Skin.Game_DanC_Padding) - TJAPlayer3.Skin.Game_DanC_Offset[1], + new Rectangle(0, 0, (int)(dan_C[i].GetAmountToPercent() * (TJAPlayer3.Tx.DanC_Gauge[drawGaugeType].szテクスチャサイズ.Width / 100.0)), TJAPlayer3.Tx.DanC_Gauge[drawGaugeType].szテクスチャサイズ.Height)); + + } + + #endregion + + #region 現在の値を描画する。 + var nowAmount = 0; + if (dan_C[i].GetExamRange() == Exam.Range.Less) + { + nowAmount = dan_C[i].Value[0] - dan_C[i].Amount; + } + else + { + nowAmount = dan_C[i].Amount; + } + if (nowAmount < 0) nowAmount = 0; + + DrawNumber(nowAmount, + TJAPlayer3.Skin.Game_DanC_X[count - 1] + TJAPlayer3.Skin.Game_DanC_Number_Small_Number_Offset[0], + TJAPlayer3.Skin.Game_DanC_Y[count - 1] + TJAPlayer3.Skin.Game_DanC_Size[1] * (i + 1) + ((i + 1) * TJAPlayer3.Skin.Game_DanC_Padding) - TJAPlayer3.Skin.Game_DanC_Number_Small_Number_Offset[1], + TJAPlayer3.Skin.Game_DanC_Number_Padding, + true, + Challenge[i], + TJAPlayer3.Skin.Game_DanC_Number_Small_Scale, + TJAPlayer3.Skin.Game_DanC_Number_Small_Scale, + (Status[i].Timer_Amount != null ? ScoreScale[Status[i].Timer_Amount.n現在の値] : 0f)); + + #endregion + + #region 条件の文字を描画する。 + var offset = TJAPlayer3.Skin.Game_DanC_Exam_Offset[0]; + //offset -= CDTXMania.Skin.Game_DanC_ExamRange_Padding; + // 条件の範囲 + TJAPlayer3.Tx.DanC_ExamType.vc拡大縮小倍率.X = 1.0f; + TJAPlayer3.Tx.DanC_ExamType.vc拡大縮小倍率.Y = 1.0f; + + TJAPlayer3.Tx.DanC_ExamRange?.t2D拡大率考慮下基準描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_DanC_X[count - 1] + offset - TJAPlayer3.Tx.DanC_ExamRange.szテクスチャサイズ.Width, TJAPlayer3.Skin.Game_DanC_Y[count - 1] + TJAPlayer3.Skin.Game_DanC_Size[1] * (i + 1) + ((i + 1) * TJAPlayer3.Skin.Game_DanC_Padding) - TJAPlayer3.Skin.Game_DanC_Exam_Offset[1], new Rectangle(0, TJAPlayer3.Skin.Game_DanC_ExamRange_Size[1] * (int)dan_C[i].GetExamRange(), TJAPlayer3.Skin.Game_DanC_ExamRange_Size[0], TJAPlayer3.Skin.Game_DanC_ExamRange_Size[1])); + //offset -= CDTXMania.Skin.Game_DanC_ExamRange_Padding; + offset -= TJAPlayer3.Skin.Game_DanC_ExamRange_Padding; + + // 条件の数字 + DrawNumber( + dan_C[i].Value[0], + TJAPlayer3.Skin.Game_DanC_X[count - 1] + offset - dan_C[i].Value[0].ToString().Length * (int)(TJAPlayer3.Skin.Game_DanC_Number_Small_Padding * TJAPlayer3.Skin.Game_DanC_Exam_Number_Scale), + TJAPlayer3.Skin.Game_DanC_Y[count - 1] + TJAPlayer3.Skin.Game_DanC_Size[1] * (i + 1) + ((i + 1) * TJAPlayer3.Skin.Game_DanC_Padding) - TJAPlayer3.Skin.Game_DanC_Exam_Offset[1] - 1, + (int)(TJAPlayer3.Skin.Game_DanC_Number_Small_Padding * TJAPlayer3.Skin.Game_DanC_Exam_Number_Scale), + false, + Challenge[i]); + + //offset -= CDTXMania.Skin.Game_DanC_Number_Small_Padding * (dan_C[i].Value[0].ToString().Length + 1); + offset -= TJAPlayer3.Skin.Game_DanC_Number_Small_Padding * (dan_C[i].Value[0].ToString().Length); + + // 条件の種類 + TJAPlayer3.Tx.DanC_ExamType?.t2D拡大率考慮下基準描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_DanC_X[1] + TJAPlayer3.Skin.Game_DanC_Exam_Offset[0] - TJAPlayer3.Tx.DanC_ExamType.szテクスチャサイズ.Width + 22, TJAPlayer3.Skin.Game_DanC_Y[count - 1] + TJAPlayer3.Skin.Game_DanC_Size[1] * (i + 1) + ((i + 1) * TJAPlayer3.Skin.Game_DanC_Padding) - TJAPlayer3.Skin.Game_DanC_Exam_Offset[1] - 48, new Rectangle(0, TJAPlayer3.Skin.Game_DanC_ExamType_Size[1] * (int)dan_C[i].GetExamType(), TJAPlayer3.Skin.Game_DanC_ExamType_Size[0], TJAPlayer3.Skin.Game_DanC_ExamType_Size[1])); + #endregion + + #region 条件達成失敗の画像を描画する。 + if (dan_C[i].GetReached()) + { + TJAPlayer3.Tx.DanC_Failed.t2D拡大率考慮下基準描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_DanC_X[count - 1] + TJAPlayer3.Skin.Game_DanC_Offset[0], TJAPlayer3.Skin.Game_DanC_Y[count - 1] + TJAPlayer3.Skin.Game_DanC_Size[1] * (i + 1) + ((i + 1) * TJAPlayer3.Skin.Game_DanC_Padding) - TJAPlayer3.Skin.Game_DanC_Offset[1]); + } + #endregion + } + else + { + #region ゲージの土台を描画する。 + TJAPlayer3.Tx.DanC_Gauge_Base?.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_DanC_X[0] - ((50 - dan_C[i].GetValue(false) / 2) * 14) + 4, TJAPlayer3.Skin.Game_DanC_Y[0] + TJAPlayer3.Skin.Game_DanC_Size[1] * i + (i * TJAPlayer3.Skin.Game_DanC_Padding)); + #endregion + } + } + } + + /// + /// 段位チャレンジの数字フォントで数字を描画します。 + /// + /// 値。 + /// 一桁目のX座標。 + /// 一桁目のY座標 + /// 桁数間の字間 + /// 拡大率X + /// 拡大率Y + /// アニメーション用拡大率(Yに加算される)。 + private void DrawNumber(int value, int x, int y, int padding, bool bBig, Dan_C dan_c, float scaleX = 1.0f, float scaleY = 1.0f, float scaleJump = 0.0f) + { + if (bBig) + { + var notesRemainDigit = 0; + for (int i = 0; i < value.ToString().Length; i++) + { + var number = Convert.ToInt32(value.ToString()[i].ToString()); + Rectangle rectangle = new Rectangle(TJAPlayer3.Skin.Game_DanC_Number_Size[0] * number - 1, GetExamConfirmStatus(dan_c) ? TJAPlayer3.Skin.Game_DanC_Number_Size[1] : 0, TJAPlayer3.Skin.Game_DanC_Number_Size[0], TJAPlayer3.Skin.Game_DanC_Number_Size[1]); + if (TJAPlayer3.Tx.DanC_Number != null) + { + TJAPlayer3.Tx.DanC_Number.vc拡大縮小倍率.X = scaleX; + TJAPlayer3.Tx.DanC_Number.vc拡大縮小倍率.Y = scaleY + scaleJump; + } + TJAPlayer3.Tx.DanC_Number?.t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device, x - (notesRemainDigit * padding), y, rectangle); + notesRemainDigit--; + } + } + else + { + var notesRemainDigit = 0; + for (int i = 0; i < value.ToString().Length; i++) + { + var number = Convert.ToInt32(value.ToString()[i].ToString()); + Rectangle rectangle = new Rectangle(TJAPlayer3.Skin.Game_DanC_Small_Number_Size[0] * number - 1, 0, TJAPlayer3.Skin.Game_DanC_Small_Number_Size[0], TJAPlayer3.Skin.Game_DanC_Small_Number_Size[1]); + if (TJAPlayer3.Tx.DanC_Small_Number != null) + { + TJAPlayer3.Tx.DanC_Small_Number.vc拡大縮小倍率.X = scaleX; + TJAPlayer3.Tx.DanC_Small_Number.vc拡大縮小倍率.Y = scaleY + scaleJump; + } + TJAPlayer3.Tx.DanC_Small_Number?.t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device, x - (notesRemainDigit * padding), y, rectangle); + notesRemainDigit--; + } + } + } + + public void DrawMiniNumber(int value, int x, int y, int padding, Dan_C dan_c) + { + var notesRemainDigit = 0; + for (int i = 0; i < value.ToString().Length; i++) + { + var number = Convert.ToInt32(value.ToString()[i].ToString()); + Rectangle rectangle = new Rectangle(TJAPlayer3.Skin.Game_DanC_MiniNumber_Size[0] * number - 1, GetExamConfirmStatus(dan_c) ? TJAPlayer3.Skin.Game_DanC_MiniNumber_Size[1] : 0, TJAPlayer3.Skin.Game_DanC_MiniNumber_Size[0], TJAPlayer3.Skin.Game_DanC_MiniNumber_Size[1]); + TJAPlayer3.Tx.DanC_MiniNumber?.t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device, x - (notesRemainDigit * padding), y, rectangle); + notesRemainDigit--; + } + } + + /// + /// n個の条件がひとつ以上達成失敗しているかどうかを返します。 + /// + /// n個の条件がひとつ以上達成失敗しているか。 + public bool GetFailedAllChallenges() + { + var isFailed = false; + for (int i = 0; i < this.ExamCount; i++) + { + for(int j = 0; j < TJAPlayer3.stage選曲.r確定された曲.DanSongs.Count; j++ ) + { + if(TJAPlayer3.stage選曲.r確定された曲.DanSongs[j].Dan_C[i] != null) + { + if (TJAPlayer3.stage選曲.r確定された曲.DanSongs[j].Dan_C[i].GetReached()) isFailed = true; + } + } + if (Challenge[i].GetReached()) isFailed = true; + } + return isFailed; + } + + /// + /// n個の条件で段位認定モードのステータスを返します。 + /// + /// 条件。 + /// ExamStatus。 + public Exam.Status GetExamStatus(Dan_C[] dan_C) + { + var status = Exam.Status.Better_Success; + var count = 0; + for (int i = 0; i < 4; i++) + { + if (dan_C[i] != null && dan_C[i].GetEnable() == true) + count++; + } + for (int i = 0; i < count; i++) + { + if (!dan_C[i].GetCleared()[1]) status = Exam.Status.Success; + } + for (int i = 0; i < count; i++) + { + if (!dan_C[i].GetCleared()[0]) status = Exam.Status.Failure; + } + return status; + } + + public Exam.Status GetExamStatus(Dan_C dan_C) + { + var status = Exam.Status.Better_Success; + if (!dan_C.GetCleared()[1]) status = Exam.Status.Success; + if (!dan_C.GetCleared()[0]) status = Exam.Status.Failure; + return status; + } + + public bool GetExamConfirmStatus(Dan_C dan_C) + { + switch (dan_C.GetExamRange()) + { + case Exam.Range.Less: + { + if (GetExamStatus(dan_C) == Exam.Status.Better_Success && notesremain == 0) + return true; + else + return false; + } + + case Exam.Range.More: + { + if (GetExamStatus(dan_C) == Exam.Status.Better_Success) + return true; + else + return false; + } + } + return false; + } + + public Dan_C[] GetExam() + { + return Challenge; + } + + + private readonly float[] ScoreScale = new float[] + { + 0.000f, + 0.111f, // リピート + 0.222f, + 0.185f, + 0.148f, + 0.129f, + 0.111f, + 0.074f, + 0.065f, + 0.033f, + 0.015f, + 0.000f + }; + + [StructLayout(LayoutKind.Sequential)] + struct ChallengeStatus + { + public SlimDX.Color4 Color; + public CCounter Timer_Gauge; + public CCounter Timer_Amount; + public CCounter Timer_Failed; + } + + #region[ private ] + //----------------- + + private bool bExamChangeCheck; + private int notesremain; + private int[] songsnotesremain; + private bool[] ExamChange = new bool[4]; + private int ExamCount; + private ChallengeStatus[] Status = new ChallengeStatus[4]; + private CTexture Dan_Plate; + private bool[] IsEnded; + public bool FirstSectionAnime; + + // アニメ関連 + public int NowShowingNumber; + public int NowCymbolShowingNumber; + private CCounter Counter_In, Counter_Wait, Counter_Out, Counter_Text; + private double[] ScreenPoint; + private int Counter_In_Old, Counter_Out_Old, Counter_Text_Old; + public bool IsAnimating; + + //音声関連 + private CSound Sound_Section; + private CSound Sound_Section_First; + private CSound Sound_Failed; + + private CCounter ct虹アニメ; + private CCounter ct虹透明度; + + //----------------- + #endregion + } +} diff --git a/TJAPlayer3/Stages/07.Game/Taiko/FireWorks.cs b/TJAPlayer3/Stages/07.Game/Taiko/FireWorks.cs new file mode 100644 index 00000000..1e120eee --- /dev/null +++ b/TJAPlayer3/Stages/07.Game/Taiko/FireWorks.cs @@ -0,0 +1,120 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Drawing; +using System.Runtime.InteropServices; +using SlimDX; +using FDK; + +namespace TJAPlayer3 +{ + internal class FireWorks : CActivity + { + // コンストラクタ + + public FireWorks() + { + base.b活性化してない = true; + } + + + // メソッド + + /// + /// 大音符の花火エフェクト + /// + /// + public virtual void Start(int nLane, int nPlayer, double x, double y) + { + for (int i = 0; i < 32; i++) + { + if(!FireWork[i].IsUsing) + { + FireWork[i].IsUsing = true; + FireWork[i].Lane = nLane; + FireWork[i].Player = nPlayer; + FireWork[i].X = x; + FireWork[i].Y = y; + FireWork[i].Counter = new CCounter(0, TJAPlayer3.Skin.Game_Effect_FireWorks[2] - 1, TJAPlayer3.Skin.Game_Effect_FireWorks_Timer, TJAPlayer3.Timer); + break; + } + } + } + + // CActivity 実装 + + public override void On活性化() + { + for (int i = 0; i < 32; i++) + { + FireWork[i] = new Status(); + FireWork[i].IsUsing = false; + FireWork[i].Counter = new CCounter(); + } + base.On活性化(); + } + public override void On非活性化() + { + for (int i = 0; i < 32; i++) + { + FireWork[i].Counter = null; + } + base.On非活性化(); + } + public override void OnManagedリソースの作成() + { + if (!base.b活性化してない) + { + base.OnManagedリソースの作成(); + } + } + public override void OnManagedリソースの解放() + { + if (!base.b活性化してない) + { + base.OnManagedリソースの解放(); + } + } + public override int On進行描画() + { + if (!base.b活性化してない) + { + for (int i = 0; i < 32; i++) + { + if(FireWork[i].IsUsing) + { + FireWork[i].Counter.t進行(); + TJAPlayer3.Tx.Effects_Hit_FireWorks.t2D中心基準描画(TJAPlayer3.app.Device, (float)FireWork[i].X, (float)FireWork[i].Y, 1, new Rectangle(FireWork[i].Counter.n現在の値 * TJAPlayer3.Skin.Game_Effect_FireWorks[0], 0, TJAPlayer3.Skin.Game_Effect_FireWorks[0], TJAPlayer3.Skin.Game_Effect_FireWorks[1])); + if (FireWork[i].Counter.b終了値に達した) + { + FireWork[i].Counter.t停止(); + FireWork[i].IsUsing = false; + } + } + } + } + return 0; + } + + + // その他 + + #region [ private ] + //----------------- + [StructLayout(LayoutKind.Sequential)] + private struct Status + { + public int Lane; + public int Player; + public bool IsUsing; + public CCounter Counter; + public double X; + public double Y; + } + private Status[] FireWork = new Status[32]; + + //----------------- + #endregion + } +} +  diff --git a/TJAPlayer3/Stages/07.Game/Taiko/FlyingNotes.cs b/TJAPlayer3/Stages/07.Game/Taiko/FlyingNotes.cs new file mode 100644 index 00000000..6c85c25c --- /dev/null +++ b/TJAPlayer3/Stages/07.Game/Taiko/FlyingNotes.cs @@ -0,0 +1,191 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Drawing; +using System.Runtime.InteropServices; +using SlimDX; +using FDK; + +namespace TJAPlayer3 +{ + internal class FlyingNotes : CActivity + { + // コンストラクタ + + public FlyingNotes() + { + base.b活性化してない = true; + } + + + // メソッド + public virtual void Start(int nLane, int nPlayer, bool isRoll = false) + { + if (TJAPlayer3.Tx.Notes != null) + { + for (int i = 0; i < 128; i++) + { + if (!Flying[i].IsUsing) + { + // 初期化 + Flying[i].IsUsing = true; + Flying[i].Lane = nLane; + Flying[i].Player = nPlayer; + Flying[i].X = -100; //StartPointX[nPlayer]; + Flying[i].Y = -100; //TJAPlayer3.Skin.Game_Effect_FlyingNotes_StartPoint_Y[nPlayer]; + Flying[i].StartPointX = StartPointX[nPlayer]; + Flying[i].StartPointY = TJAPlayer3.Skin.Game_Effect_FlyingNotes_StartPoint_Y[nPlayer]; + Flying[i].OldValue = 0; + Flying[i].IsRoll = isRoll; + // 角度の決定 + Flying[i].Height = Math.Abs(TJAPlayer3.Skin.Game_Effect_FlyingNotes_EndPoint_Y[nPlayer] - TJAPlayer3.Skin.Game_Effect_FlyingNotes_StartPoint_Y[nPlayer]); + Flying[i].Width = (Math.Abs((TJAPlayer3.Skin.Game_Effect_FlyingNotes_EndPoint_X[nPlayer] - StartPointX[nPlayer])) / 2); + //Console.WriteLine("{0}, {1}", width2P, height2P); + Flying[i].Theta = ((Math.Atan2(Flying[i].Height, Flying[i].Width) * 180.0) / Math.PI); + Flying[i].Counter = new CCounter(36, 140, TJAPlayer3.Skin.Game_Effect_FlyingNotes_Timer, TJAPlayer3.Timer); + //Flying[i].Counter = new CCounter(0, 200000, CDTXMania.Skin.Game_Effect_FlyingNotes_Timer, CDTXMania.Timer); + + Flying[i].IncreaseX = (1.00 * Math.Abs((TJAPlayer3.Skin.Game_Effect_FlyingNotes_EndPoint_X[nPlayer] - StartPointX[nPlayer]))) / (180); + Flying[i].IncreaseY = (1.00 * Math.Abs((TJAPlayer3.Skin.Game_Effect_FlyingNotes_EndPoint_Y[nPlayer] - TJAPlayer3.Skin.Game_Effect_FlyingNotes_StartPoint_Y[nPlayer]))) / (180); + break; + } + } + } + } + + // CActivity 実装 + + public override void On活性化() + { + for (int i = 0; i < 128; i++) + { + Flying[i] = new Status(); + Flying[i].IsUsing = false; + Flying[i].Counter = new CCounter(); + } + for (int i = 0; i < 2; i++) + { + StartPointX[i] = TJAPlayer3.Skin.Game_Effect_FlyingNotes_StartPoint_X[i]; + } + base.On活性化(); + } + public override void On非活性化() + { + for (int i = 0; i < 128; i++) + { + Flying[i].Counter = null; + } + base.On非活性化(); + } + public override void OnManagedリソースの作成() + { + if (!base.b活性化してない) + { + base.OnManagedリソースの作成(); + } + } + public override void OnManagedリソースの解放() + { + if (!base.b活性化してない) + { + base.OnManagedリソースの解放(); + } + } + public override int On進行描画() + { + if (!base.b活性化してない) + { + for (int i = 0; i < 128; i++) + { + if (Flying[i].IsUsing) + { + Flying[i].OldValue = Flying[i].Counter.n現在の値; + Flying[i].Counter.t進行(); + if (Flying[i].Counter.b終了値に達した) + { + Flying[i].Counter.t停止(); + Flying[i].IsUsing = false; + TJAPlayer3.stage演奏ドラム画面.actGauge.Start(Flying[i].Lane, E判定.Perfect, Flying[i].Player); + TJAPlayer3.stage演奏ドラム画面.actChipEffects.Start(Flying[i].Player, Flying[i].Lane); + } + for (int n = Flying[i].OldValue; n < Flying[i].Counter.n現在の値; n += 16) + { + if (TJAPlayer3.Skin.Game_Effect_FlyingNotes_IsUsingEasing) + { + Flying[i].X = (Flying[i].StartPointX + 499 + ((-Math.Cos(Flying[i].Counter.n現在の値 * (Math.PI / 180)) * 499))) - 85; + //Flying[i].X += (Math.Cos(Flying[i].Counter.n現在の値 * (Math.PI / 180))) * Flying[i].Increase; + } + else + { + Flying[i].X += Flying[i].IncreaseX; + } + + if (n % TJAPlayer3.Skin.Game_Effect_FireWorks_Timing == 0 && !Flying[i].IsRoll && Flying[i].Counter.n現在の値 > 18) + { + if (Flying[i].Lane == 3 || Flying[i].Lane == 4) + { + TJAPlayer3.stage演奏ドラム画面.FireWorks.Start(Flying[i].Lane, Flying[i].Player, Flying[i].X, Flying[i].Y); + } + } + + if (Flying[i].Player == 0) + { + Flying[i].Y = ((TJAPlayer3.Skin.Game_Effect_FlyingNotes_StartPoint_Y[Flying[i].Player]) + -Math.Sin(Flying[i].Counter.n現在の値 * (Math.PI / 180)) * 559) + 329; + Flying[i].Y -= Flying[i].IncreaseY * Flying[i].Counter.n現在の値; + } + else + { + Flying[i].Y = ((TJAPlayer3.Skin.Game_Effect_FlyingNotes_StartPoint_Y[Flying[i].Player]) + Math.Sin(Flying[i].Counter.n現在の値 * (Math.PI / 180)) * 559) - 329; + Flying[i].Y += Flying[i].IncreaseY * Flying[i].Counter.n現在の値; + } + + } + //Flying[i].OldValue = Flying[i].Counter.n現在の値; + + if (Flying[i].Player == 0) + { + TJAPlayer3.Tx.Notes?.t2D中心基準描画(TJAPlayer3.app.Device, (int)Flying[i].X, (int)Flying[i].Y, new Rectangle(Flying[i].Lane * 130, 0, 130, 130)); + } + else if (Flying[i].Player == 1) + { + // + TJAPlayer3.Tx.Notes?.t2D中心基準描画(TJAPlayer3.app.Device, (int)Flying[i].X, (int)Flying[i].Y, new Rectangle(Flying[i].Lane * 130, 0, 130, 130)); + } + } + } + } + return base.On進行描画(); + } + + + #region [ private ] + //----------------- + + [StructLayout(LayoutKind.Sequential)] + private struct Status + { + public int Lane; + public int Player; + public bool IsUsing; + public CCounter Counter; + public int OldValue; + public double X; + public double Y; + public int Height; + public int Width; + public double IncreaseX; + public double IncreaseY; + public bool IsRoll; + public int StartPointX; + public int StartPointY; + public double Theta; + } + + private Status[] Flying = new Status[128]; + + public readonly int[] StartPointX = new int[2]; + + //----------------- + #endregion + } +} \ No newline at end of file diff --git a/TJAPlayer3/Stages/07.Game/Taiko/GoGoSplash.cs b/TJAPlayer3/Stages/07.Game/Taiko/GoGoSplash.cs new file mode 100644 index 00000000..d91d5efa --- /dev/null +++ b/TJAPlayer3/Stages/07.Game/Taiko/GoGoSplash.cs @@ -0,0 +1,85 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using FDK; +using System.Drawing; + +namespace TJAPlayer3 +{ + class GoGoSplash : CActivity + { + public GoGoSplash() + { + this.b活性化してない = true; + } + + public override void On活性化() + { + Splash = new CCounter(); + base.On活性化(); + } + + public override void On非活性化() + { + base.On非活性化(); + } + + /// + /// ゴーゴースプラッシュの描画処理です。 + /// SkinCofigで本数を変更することができます。 + /// + /// + public override int On進行描画() + { + if (Splash == null) return base.On進行描画(); + Splash.t進行(); + if (Splash.b終了値に達した) + { + Splash.n現在の値 = 0; + Splash.t停止(); + } + if (Splash.b進行中) + { + for (int i = 0; i < TJAPlayer3.Skin.Game_Effect_GoGoSplash_X.Length; i++) + { + if (i > TJAPlayer3.Skin.Game_Effect_GoGoSplash_Y.Length) break; + // Yの配列がiよりも小さかったらそこでキャンセルする。 + if(TJAPlayer3.Skin.Game_Effect_GoGoSplash_Rotate && TJAPlayer3.Tx.Effects_GoGoSplash != null) + { + // Switch文を使いたかったが、定数じゃないから使えねぇ!!!! + if (i == 0) + { + TJAPlayer3.Tx.Effects_GoGoSplash.fZ軸中心回転 = -0.2792526803190927f; + } + else if (i == 1) + { + TJAPlayer3.Tx.Effects_GoGoSplash.fZ軸中心回転 = -0.13962634015954636f; + } + else if (i == TJAPlayer3.Skin.Game_Effect_GoGoSplash_X.Length - 2) + { + TJAPlayer3.Tx.Effects_GoGoSplash.fZ軸中心回転 = 0.13962634015954636f; + } + else if (i == TJAPlayer3.Skin.Game_Effect_GoGoSplash_X.Length - 1) + { + TJAPlayer3.Tx.Effects_GoGoSplash.fZ軸中心回転 = 0.2792526803190927f; + } + else + { + TJAPlayer3.Tx.Effects_GoGoSplash.fZ軸中心回転 = 0.0f; + } + } + TJAPlayer3.Tx.Effects_GoGoSplash?.t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Effect_GoGoSplash_X[i], TJAPlayer3.Skin.Game_Effect_GoGoSplash_Y[i], new Rectangle(TJAPlayer3.Skin.Game_Effect_GoGoSplash[0] * Splash.n現在の値, 0, TJAPlayer3.Skin.Game_Effect_GoGoSplash[0], TJAPlayer3.Skin.Game_Effect_GoGoSplash[1])); + } + } + return base.On進行描画(); + } + + public void StartSplash() + { + Splash = new CCounter(0, TJAPlayer3.Skin.Game_Effect_GoGoSplash[2] - 1, TJAPlayer3.Skin.Game_Effect_GoGoSplash_Timer, TJAPlayer3.Timer); + } + + private CCounter Splash; + } +} diff --git a/TJAPlayer3/Stages/07.Game/Taiko/LaneFlash.cs b/TJAPlayer3/Stages/07.Game/Taiko/LaneFlash.cs new file mode 100644 index 00000000..6957cd20 --- /dev/null +++ b/TJAPlayer3/Stages/07.Game/Taiko/LaneFlash.cs @@ -0,0 +1,58 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using TJAPlayer3; +using FDK; + +namespace TJAPlayer3 +{ + /// + /// レーンフラッシュのクラス。 + /// + public class LaneFlash : CActivity + { + + public LaneFlash(ref CTexture texture, int player) + { + Texture = texture; + Player = player; + base.b活性化してない = true; + } + + public void Start() + { + Counter = new CCounter(0, 100, 1, TJAPlayer3.Timer); + } + + public override void On活性化() + { + Counter = new CCounter(); + base.On活性化(); + } + + public override void On非活性化() + { + Counter = null; + base.On非活性化(); + } + + public override int On進行描画() + { + if (Texture == null || Counter == null) return base.On進行描画(); + if (!Counter.b停止中) + { + Counter.t進行(); + if (Counter.b終了値に達した) Counter.t停止(); + int opacity = (((150 - Counter.n現在の値) * 255) / 100); + Texture.Opacity = opacity; + Texture.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.nScrollFieldBGX[Player], TJAPlayer3.Skin.nScrollFieldY[Player]); + } + return base.On進行描画(); + } + + private CTexture Texture; + private CCounter Counter; + private int Player; + } +} diff --git a/TJAPlayer3/Stages/07.Game/Taiko/PuchiChara.cs b/TJAPlayer3/Stages/07.Game/Taiko/PuchiChara.cs new file mode 100644 index 00000000..334e4799 --- /dev/null +++ b/TJAPlayer3/Stages/07.Game/Taiko/PuchiChara.cs @@ -0,0 +1,60 @@ +using TJAPlayer3; +using FDK; +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; + +namespace TJAPlayer3 +{ + class PuchiChara : CActivity + { + public PuchiChara() + { + base.b活性化してない = true; + } + + public override void On活性化() + { + Counter = new CCounter(0, TJAPlayer3.Skin.Game_PuchiChara[2] - 1, TJAPlayer3.Skin.Game_PuchiChara_Timer, TJAPlayer3.Timer); + SineCounter = new CCounter(0, 360, TJAPlayer3.Skin.Game_PuchiChara_SineTimer, CSound管理.rc演奏用タイマ); + base.On活性化(); + } + public override void On非活性化() + { + Counter = null; + SineCounter = null; + base.On非活性化(); + } + + public void ChangeBPM(double bpm) + { + Counter = new CCounter(0, TJAPlayer3.Skin.Game_PuchiChara[2] - 1, (int)(TJAPlayer3.Skin.Game_PuchiChara_Timer * bpm / TJAPlayer3.Skin.Game_PuchiChara[2]), TJAPlayer3.Timer); + SineCounter = new CCounter(1, 360, TJAPlayer3.Skin.Game_PuchiChara_SineTimer * bpm / 180, CSound管理.rc演奏用タイマ); + } + + /// + /// ぷちキャラを描画する。(オーバーライドじゃないよ) + /// + /// X座標(中央) + /// Y座標(中央) + /// 不透明度 + /// + public int On進行描画(int x, int y, bool isGrowing, int alpha = 255, bool isBalloon = false) + { + if (!TJAPlayer3.ConfigIni.ShowPuchiChara) return base.On進行描画(); + if (Counter == null || SineCounter == null || TJAPlayer3.Tx.PuchiChara == null) return base.On進行描画(); + Counter.t進行Loop(); + SineCounter.t進行LoopDb(); + var sineY = Math.Sin(SineCounter.n現在の値 * (Math.PI / 180)) * (TJAPlayer3.Skin.Game_PuchiChara_Sine * (isBalloon ? TJAPlayer3.Skin.Game_PuchiChara_Scale[1] : TJAPlayer3.Skin.Game_PuchiChara_Scale[0])); + TJAPlayer3.Tx.PuchiChara.vc拡大縮小倍率 = new SlimDX.Vector3((isBalloon ? TJAPlayer3.Skin.Game_PuchiChara_Scale[1] : TJAPlayer3.Skin.Game_PuchiChara_Scale[0])); + TJAPlayer3.Tx.PuchiChara.Opacity = alpha; + TJAPlayer3.Tx.PuchiChara.t2D中心基準描画(TJAPlayer3.app.Device, x, y + (int)sineY, new Rectangle(Counter.n現在の値 * TJAPlayer3.Skin.Game_PuchiChara[0], (isGrowing ? TJAPlayer3.Skin.Game_PuchiChara[1] : 0), TJAPlayer3.Skin.Game_PuchiChara[0], TJAPlayer3.Skin.Game_PuchiChara[1])); + return base.On進行描画(); + } + + private CCounter Counter; + private CCounter SineCounter; + } +} \ No newline at end of file diff --git a/TJAPlayer3/Stages/07.Game/Taiko/Rainbow.cs b/TJAPlayer3/Stages/07.Game/Taiko/Rainbow.cs new file mode 100644 index 00000000..60c0da4f --- /dev/null +++ b/TJAPlayer3/Stages/07.Game/Taiko/Rainbow.cs @@ -0,0 +1,168 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Drawing; +using System.Runtime.InteropServices; +using SlimDX; +using FDK; + +namespace TJAPlayer3 +{ + internal class Rainbow : CActivity + { + // コンストラクタ + + public Rainbow() + { + base.b活性化してない = true; + } + + public virtual void Start( int player ) + { + if (TJAPlayer3.Tx.Effects_Rainbow != null) + { + for (int i = 0; i < 2; i++) + { + if (!this.Rainbow1P[i].IsUsing && player == 0) + { + this.Rainbow1P[i].IsUsing = true; + this.Rainbow1P[i].Counter = new CCounter(0, 164, TJAPlayer3.Skin.Game_Effect_Rainbow_Timer, TJAPlayer3.Timer); // カウンタ + this.Rainbow1P[i].Player = player; + break; + } + if (!this.Rainbow2P[i].IsUsing && player == 1) + { + this.Rainbow2P[i].IsUsing = true; + this.Rainbow2P[i].Counter = new CCounter(0, 164, TJAPlayer3.Skin.Game_Effect_Rainbow_Timer, TJAPlayer3.Timer); // カウンタ + this.Rainbow2P[i].Player = player; + break; + } + } + } + } + + + // CActivity 実装 + + public override void On活性化() + { + for( int i = 0; i < 2; i++ ) + { + this.Rainbow1P[ i ].Counter = new CCounter(); + this.Rainbow2P[ i ].Counter = new CCounter(); + } + base.On活性化(); + } + public override void On非活性化() + { + for( int i = 0; i < 2; i++ ) + { + this.Rainbow1P[ i ].Counter = null; + this.Rainbow2P[ i ].Counter = null; + } + base.On非活性化(); + } + public override void OnManagedリソースの作成() + { + if( !base.b活性化してない ) + { + base.OnManagedリソースの作成(); + } + } + public override void OnManagedリソースの解放() + { + if( !base.b活性化してない ) + { + base.OnManagedリソースの解放(); + } + } + public override int On進行描画() + { + if( !base.b活性化してない ) + { + for (int f = 0; f < 2; f++) + { + if (this.Rainbow1P[f].IsUsing) + { + this.Rainbow1P[f].Counter.t進行(); + if (this.Rainbow1P[f].Counter.b終了値に達した) + { + this.Rainbow1P[f].Counter.t停止(); + this.Rainbow1P[f].IsUsing = false; + } + + if(TJAPlayer3.Tx.Effects_Rainbow != null && this.Rainbow1P[f].Player == 0 ) //画像が出来るまで + { + //this.st虹[f].ct進行.n現在の値 = 164; + + if (this.Rainbow1P[f].Counter.n現在の値 < 82) + { + int nRectX = ((this.Rainbow1P[f].Counter.n現在の値 * 920) / 85); + TJAPlayer3.Tx.Effects_Rainbow.t2D描画(TJAPlayer3.app.Device, 360, -100, new Rectangle(0, 0, nRectX, 410)); + } + else if (this.Rainbow1P[f].Counter.n現在の値 >= 82) + { + int nRectX = (((this.Rainbow1P[f].Counter.n現在の値 - 82) * 920) / 85); + TJAPlayer3.Tx.Effects_Rainbow.t2D描画(TJAPlayer3.app.Device, 360 + nRectX, -100, new Rectangle(nRectX, 0, 920 - nRectX, 410)); + } + + } + + } + } + for (int f = 0; f < 2; f++) + { + if (this.Rainbow2P[f].IsUsing) + { + this.Rainbow2P[f].Counter.t進行(); + if (this.Rainbow2P[f].Counter.b終了値に達した) + { + this.Rainbow2P[f].Counter.t停止(); + this.Rainbow2P[f].IsUsing = false; + } + + if(TJAPlayer3.Tx.Effects_Rainbow != null && this.Rainbow2P[f].Player == 1 ) //画像が出来るまで + { + //this.st虹[f].ct進行.n現在の値 = 164; + + if (this.Rainbow2P[f].Counter.n現在の値 < 82) + { + int nRectX = ((this.Rainbow2P[f].Counter.n現在の値 * 920) / 85); + TJAPlayer3.Tx.Effects_Rainbow.t2D上下反転描画(TJAPlayer3.app.Device, 360, 410, new Rectangle(0, 0, nRectX, 410)); + } + else if (this.Rainbow2P[f].Counter.n現在の値 >= 82) + { + int nRectX = (((this.Rainbow2P[f].Counter.n現在の値 - 82) * 920) / 85); + TJAPlayer3.Tx.Effects_Rainbow.t2D上下反転描画(TJAPlayer3.app.Device, 360 + nRectX, 410, new Rectangle(nRectX, 0, 920 - nRectX, 410)); + } + + } + + } + } + } + return base.On進行描画(); + } + + + // その他 + + #region [ private ] + //----------------- + + [StructLayout(LayoutKind.Sequential)] + private struct StructRainbow + { + public bool IsUsing; + public int Player; + public CCounter Counter; + public float X; + } + + private StructRainbow[] Rainbow1P = new StructRainbow[2]; + private StructRainbow[] Rainbow2P = new StructRainbow[2]; + + //----------------- + #endregion + } +} diff --git a/TJAPlayer3/Stages/07.Game/Taiko/TaikoLaneFlash.cs b/TJAPlayer3/Stages/07.Game/Taiko/TaikoLaneFlash.cs new file mode 100644 index 00000000..a9ae3682 --- /dev/null +++ b/TJAPlayer3/Stages/07.Game/Taiko/TaikoLaneFlash.cs @@ -0,0 +1,93 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Runtime.InteropServices; +using System.Drawing; +using FDK; +using static TJAPlayer3.PlayerLane; + +namespace TJAPlayer3 +{ + internal class TaikoLaneFlash : CActivity + { + // コンストラクタ + + public TaikoLaneFlash() + { + base.b活性化してない = true; + } + + + public override void On活性化() + { + PlayerLane = new PlayerLane[TJAPlayer3.ConfigIni.nPlayerCount]; + for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) + { + PlayerLane[i] = new PlayerLane(i); + } + base.On活性化(); + } + public override void On非活性化() + { + for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) + { + PlayerLane[i] = null; + } + base.On非活性化(); + } + + public override int On進行描画() + { + for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) + { + for (int j = 0; j < (int)FlashType.Total; j++) + { + PlayerLane[i].Flash[j].On進行描画(); + } + } + return base.On進行描画(); + } + + public PlayerLane[] PlayerLane; + + } + public class PlayerLane + { + public PlayerLane(int player) + { + Flash = new LaneFlash[(int)FlashType.Total]; + for (int i = 0; i < (int)FlashType.Total; i++) + { + switch (i) + { + case (int)FlashType.Red: + Flash[i] = new LaneFlash(ref TJAPlayer3.Tx.Lane_Red, player); + break; + case (int)FlashType.Blue: + Flash[i] = new LaneFlash(ref TJAPlayer3.Tx.Lane_Blue, player); + break; + case (int)FlashType.Hit: + Flash[i] = new LaneFlash(ref TJAPlayer3.Tx.Lane_Yellow, player); + break; + default: + break; + } + } + } + public void Start(FlashType flashType) + { + if (flashType == FlashType.Total) return; + Flash[(int)flashType].Start(); + } + + public LaneFlash[] Flash; + + public enum FlashType + { + Red, + Blue, + Hit, + Total + } + } +} diff --git a/TJAPlayer3/Stages/08.Result/CActResultImage.cs b/TJAPlayer3/Stages/08.Result/CActResultImage.cs new file mode 100644 index 00000000..422abe4b --- /dev/null +++ b/TJAPlayer3/Stages/08.Result/CActResultImage.cs @@ -0,0 +1,115 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Diagnostics; +using System.IO; +using System.Drawing; +using SlimDX; +using SlimDX.Direct3D9; +using FDK; + +namespace TJAPlayer3 +{ + internal class CActResultImage : CActivity + { + // コンストラクタ + /// + /// リザルト画像を表示させるクラス。XG化するにあたって動画は廃止。 + /// また、中央の画像も表示する。(STAGE表示、STANDARD_CLASSICなど) + /// + public CActResultImage() + { + base.b活性化してない = true; + } + + + // メソッド + + public void tアニメを完了させる() + { + this.ct登場用.n現在の値 = (int)this.ct登場用.n終了値; + } + + + // CActivity 実装 + + public override void On活性化() + { + + base.On活性化(); + } + public override void On非活性化() + { + if( this.ct登場用 != null ) + { + this.ct登場用 = null; + } + base.On非活性化(); + } + public override void OnManagedリソースの作成() + { + if( !base.b活性化してない ) + { + + base.OnManagedリソースの作成(); + } + } + public override void OnManagedリソースの解放() + { + if( !base.b活性化してない ) + { + + base.OnManagedリソースの解放(); + } + } + public override unsafe int On進行描画() + { + if( base.b活性化してない ) + { + return 0; + } + if( base.b初めての進行描画 ) + { + this.ct登場用 = new CCounter( 0, 100, 5, TJAPlayer3.Timer ); + base.b初めての進行描画 = false; + } + this.ct登場用.t進行(); + + if( !this.ct登場用.b終了値に達した ) + { + return 0; + } + return 1; + } + + + // その他 + + #region [ private ] + //----------------- + private CCounter ct登場用; + private CTexture r表示するリザルト画像; + private CTexture txリザルト画像; + + private bool tプレビュー画像の指定があれば構築する() + { + if( string.IsNullOrEmpty( TJAPlayer3.DTX.PREIMAGE ) ) + { + return false; + } + TJAPlayer3.t安全にDisposeする( ref this.txリザルト画像 ); + this.r表示するリザルト画像 = null; + string path = TJAPlayer3.DTX.strフォルダ名 + TJAPlayer3.DTX.PREIMAGE; + if( !File.Exists( path ) ) + { + Trace.TraceWarning( "ファイルが存在しません。({0})", new object[] { path } ); + return false; + } + this.txリザルト画像 = TJAPlayer3.tテクスチャの生成( path ); + this.r表示するリザルト画像 = this.txリザルト画像; + return ( this.r表示するリザルト画像 != null ); + } + //----------------- + #endregion + } +} diff --git a/TJAPlayer3/Stages/08.Result/CActResultParameterPanel.cs b/TJAPlayer3/Stages/08.Result/CActResultParameterPanel.cs new file mode 100644 index 00000000..19bfdc6f --- /dev/null +++ b/TJAPlayer3/Stages/08.Result/CActResultParameterPanel.cs @@ -0,0 +1,856 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Runtime.InteropServices; +using System.Drawing; +using System.IO; +using SlimDX; +using FDK; + +namespace TJAPlayer3 +{ + internal class CActResultParameterPanel : CActivity + { + // コンストラクタ + + public CActResultParameterPanel() + { + ST文字位置[] st文字位置Array = new ST文字位置[11]; + ST文字位置 st文字位置 = new ST文字位置(); + st文字位置.ch = '0'; + st文字位置.pt = new Point(0, 0); + st文字位置Array[0] = st文字位置; + ST文字位置 st文字位置2 = new ST文字位置(); + st文字位置2.ch = '1'; + st文字位置2.pt = new Point(32, 0); + st文字位置Array[1] = st文字位置2; + ST文字位置 st文字位置3 = new ST文字位置(); + st文字位置3.ch = '2'; + st文字位置3.pt = new Point(64, 0); + st文字位置Array[2] = st文字位置3; + ST文字位置 st文字位置4 = new ST文字位置(); + st文字位置4.ch = '3'; + st文字位置4.pt = new Point(96, 0); + st文字位置Array[3] = st文字位置4; + ST文字位置 st文字位置5 = new ST文字位置(); + st文字位置5.ch = '4'; + st文字位置5.pt = new Point(128, 0); + st文字位置Array[4] = st文字位置5; + ST文字位置 st文字位置6 = new ST文字位置(); + st文字位置6.ch = '5'; + st文字位置6.pt = new Point(160, 0); + st文字位置Array[5] = st文字位置6; + ST文字位置 st文字位置7 = new ST文字位置(); + st文字位置7.ch = '6'; + st文字位置7.pt = new Point(192, 0); + st文字位置Array[6] = st文字位置7; + ST文字位置 st文字位置8 = new ST文字位置(); + st文字位置8.ch = '7'; + st文字位置8.pt = new Point(224, 0); + st文字位置Array[7] = st文字位置8; + ST文字位置 st文字位置9 = new ST文字位置(); + st文字位置9.ch = '8'; + st文字位置9.pt = new Point(256, 0); + st文字位置Array[8] = st文字位置9; + ST文字位置 st文字位置10 = new ST文字位置(); + st文字位置10.ch = '9'; + st文字位置10.pt = new Point(288, 0); + st文字位置Array[9] = st文字位置10; + ST文字位置 st文字位置11 = new ST文字位置(); + st文字位置11.ch = ' '; + st文字位置11.pt = new Point(0, 0); + st文字位置Array[10] = st文字位置11; + this.st小文字位置 = st文字位置Array; + + ST文字位置[] st文字位置Array2 = new ST文字位置[11]; + ST文字位置 st文字位置12 = new ST文字位置(); + st文字位置12.ch = '0'; + st文字位置12.pt = new Point(0, 0); + st文字位置Array2[0] = st文字位置12; + ST文字位置 st文字位置13 = new ST文字位置(); + st文字位置13.ch = '1'; + st文字位置13.pt = new Point(32, 0); + st文字位置Array2[1] = st文字位置13; + ST文字位置 st文字位置14 = new ST文字位置(); + st文字位置14.ch = '2'; + st文字位置14.pt = new Point(64, 0); + st文字位置Array2[2] = st文字位置14; + ST文字位置 st文字位置15 = new ST文字位置(); + st文字位置15.ch = '3'; + st文字位置15.pt = new Point(96, 0); + st文字位置Array2[3] = st文字位置15; + ST文字位置 st文字位置16 = new ST文字位置(); + st文字位置16.ch = '4'; + st文字位置16.pt = new Point(128, 0); + st文字位置Array2[4] = st文字位置16; + ST文字位置 st文字位置17 = new ST文字位置(); + st文字位置17.ch = '5'; + st文字位置17.pt = new Point(160, 0); + st文字位置Array2[5] = st文字位置17; + ST文字位置 st文字位置18 = new ST文字位置(); + st文字位置18.ch = '6'; + st文字位置18.pt = new Point(192, 0); + st文字位置Array2[6] = st文字位置18; + ST文字位置 st文字位置19 = new ST文字位置(); + st文字位置19.ch = '7'; + st文字位置19.pt = new Point(224, 0); + st文字位置Array2[7] = st文字位置19; + ST文字位置 st文字位置20 = new ST文字位置(); + st文字位置20.ch = '8'; + st文字位置20.pt = new Point(256, 0); + st文字位置Array2[8] = st文字位置20; + ST文字位置 st文字位置21 = new ST文字位置(); + st文字位置21.ch = '9'; + st文字位置21.pt = new Point(288, 0); + st文字位置Array2[9] = st文字位置21; + ST文字位置 st文字位置22 = new ST文字位置(); + st文字位置22.ch = '%'; + st文字位置22.pt = new Point(0x37, 0); + st文字位置Array2[10] = st文字位置22; + this.st大文字位置 = st文字位置Array2; + + ST文字位置[] stScore文字位置Array = new ST文字位置[10]; + ST文字位置 stScore文字位置 = new ST文字位置(); + stScore文字位置.ch = '0'; + stScore文字位置.pt = new Point(0, 0); + stScore文字位置Array[0] = stScore文字位置; + ST文字位置 stScore文字位置2 = new ST文字位置(); + stScore文字位置2.ch = '1'; + stScore文字位置2.pt = new Point(51, 0); + stScore文字位置Array[1] = stScore文字位置2; + ST文字位置 stScore文字位置3 = new ST文字位置(); + stScore文字位置3.ch = '2'; + stScore文字位置3.pt = new Point(102, 0); + stScore文字位置Array[2] = stScore文字位置3; + ST文字位置 stScore文字位置4 = new ST文字位置(); + stScore文字位置4.ch = '3'; + stScore文字位置4.pt = new Point(153, 0); + stScore文字位置Array[3] = stScore文字位置4; + ST文字位置 stScore文字位置5 = new ST文字位置(); + stScore文字位置5.ch = '4'; + stScore文字位置5.pt = new Point(204, 0); + stScore文字位置Array[4] = stScore文字位置5; + ST文字位置 stScore文字位置6 = new ST文字位置(); + stScore文字位置6.ch = '5'; + stScore文字位置6.pt = new Point(255, 0); + stScore文字位置Array[5] = stScore文字位置6; + ST文字位置 stScore文字位置7 = new ST文字位置(); + stScore文字位置7.ch = '6'; + stScore文字位置7.pt = new Point(306, 0); + stScore文字位置Array[6] = stScore文字位置7; + ST文字位置 stScore文字位置8 = new ST文字位置(); + stScore文字位置8.ch = '7'; + stScore文字位置8.pt = new Point(357, 0); + stScore文字位置Array[7] = stScore文字位置8; + ST文字位置 stScore文字位置9 = new ST文字位置(); + stScore文字位置9.ch = '8'; + stScore文字位置9.pt = new Point(408, 0); + stScore文字位置Array[8] = stScore文字位置9; + ST文字位置 stScore文字位置10 = new ST文字位置(); + stScore文字位置10.ch = '9'; + stScore文字位置10.pt = new Point(459, 0); + stScore文字位置Array[9] = stScore文字位置10; + this.stScoreFont = stScore文字位置Array; + + + + this.ptFullCombo位置 = new Point[] { new Point(0x80, 0xed), new Point(0xdf, 0xed), new Point(0x141, 0xed) }; + base.b活性化してない = true; + } + + + // メソッド + + public void tアニメを完了させる() + { + this.ct表示用.n現在の値 = (int)this.ct表示用.n終了値; + } + + + // CActivity 実装 + + public override void On活性化() + { + this.sdDTXで指定されたフルコンボ音 = null; + + base.On活性化(); + } + public override void On非活性化() + { + if (this.ct表示用 != null) + { + this.ct表示用 = null; + } + + for(int i = 0; i < this.b音声再生.Length; i++) + { + b音声再生[i] = false; + } + + if (this.sdDTXで指定されたフルコンボ音 != null) + { + TJAPlayer3.Sound管理.tサウンドを破棄する(this.sdDTXで指定されたフルコンボ音); + this.sdDTXで指定されたフルコンボ音 = null; + } + base.On非活性化(); + } + public override void OnManagedリソースの作成() + { + if (!base.b活性化してない) + { + ct全体進行 = new CCounter(0, 20000, 1, TJAPlayer3.Timer); + + ctゲージアニメ = new CCounter(); + ct虹ゲージアニメ = new CCounter(); + + ctSoul = new CCounter(); + + ctEndAnime = new CCounter(); + ctBackgroundAnime = new CCounter(0, 1000, 1, TJAPlayer3.Timer); + ctBackgroundAnime_Clear = new CCounter(0, 1000, 1, TJAPlayer3.Timer); + ctMountain_ClearIn = new CCounter(); + + RandomText = TJAPlayer3.Random.Next(3); + + ctFlash_Icon = new CCounter(0, 3000, 1, TJAPlayer3.Timer); + ctRotate_Flowers = new CCounter(0, 1500, 1, TJAPlayer3.Timer); + ctShine_Plate = new CCounter(0, 1000, 1, TJAPlayer3.Timer); + + ctDonchan_Normal = new CCounter(0, TJAPlayer3.Tx.Result_Donchan_Normal.Length - 1, 1000 / 60, TJAPlayer3.Timer); + ctDonchan_Clear = new CCounter(); + ctDonchan_Failed = new CCounter(); + ctDonchan_Failed_In = new CCounter(); + + Dan_Plate = TJAPlayer3.tテクスチャの生成(Path.GetDirectoryName(TJAPlayer3.DTX.strファイル名の絶対パス) + @"\Dan_Plate.png"); + + base.OnManagedリソースの作成(); + } + } + public override void OnManagedリソースの解放() + { + if (!base.b活性化してない) + { + Dan_Plate?.Dispose(); + base.OnManagedリソースの解放(); + } + } + public override int On進行描画() + { + if (base.b活性化してない) + { + return 0; + } + if (base.b初めての進行描画) + { + this.ct表示用 = new CCounter(0, 0x3e7, 2, TJAPlayer3.Timer); + base.b初めての進行描画 = false; + } + this.ct表示用.t進行(); + + ct全体進行.t進行(); + ctゲージアニメ.t進行(); + + ctEndAnime.t進行(); + ctBackgroundAnime.t進行Loop(); + ctMountain_ClearIn.t進行(); + ctDonchan_Clear.t進行Loop(); + ctDonchan_Failed.t進行Loop(); + ctDonchan_Failed_In.t進行(); + ctDonchan_Normal.t進行Loop(); + + ctFlash_Icon.t進行Loop(); + ctRotate_Flowers.t進行Loop(); + ctShine_Plate.t進行Loop(); + + if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Dan) + { + #region [ 通常時リザルト ] + + int AnimeCount = 3000 + (int)ctゲージアニメ.n終了値 * 59; + int ScoreApparitionTimeStamp = AnimeCount + 420 * 4 + 840; + + TJAPlayer3.Tx.Result_Panel.t2D描画(TJAPlayer3.app.Device, 0, 0); + + TJAPlayer3.Tx.Result_Diff_Bar.t2D描画(TJAPlayer3.app.Device, 18, 101, new RectangleF(0, TJAPlayer3.stage選曲.n確定された曲の難易度[0] * 54, 185, 54)); + + TJAPlayer3.Tx.Result_Gauge_Base.t2D描画(TJAPlayer3.app.Device, 55, 140); + + if (ct全体進行.n現在の値 >= 2000) + { + #region [ ゲージ関連 ] + + if (!b音声再生[0]) + { + TJAPlayer3.Skin.soundGauge.t再生する(); + b音声再生[0] = true; + } + + if (!ctゲージアニメ.b進行中) + ctゲージアニメ.t開始(0, (int)TJAPlayer3.stage結果.st演奏記録.Drums.fゲージ / 2, 59, TJAPlayer3.Timer); + + TJAPlayer3.Tx.Result_Gauge.t2D描画(TJAPlayer3.app.Device, 57, 140, new RectangleF(0, 0, 9.74f * ctゲージアニメ.n現在の値, 36)); + + if (ctゲージアニメ.b終了値に達した) + { + if(ctゲージアニメ.n現在の値 != 50) + TJAPlayer3.Skin.soundGauge.t停止する(); + else + { + if (!TJAPlayer3.Skin.soundGauge.b再生中) + TJAPlayer3.Skin.soundGauge.t停止する(); + + if (!ct虹ゲージアニメ.b進行中) + ct虹ゲージアニメ.t開始(0, 40, 1000 / 60, TJAPlayer3.Timer); + + if (!ctSoul.b進行中) + ctSoul.t開始(0, 8, 33, TJAPlayer3.Timer); + + ct虹ゲージアニメ.t進行Loop(); + ctSoul.t進行Loop(); + + TJAPlayer3.Tx.Result_Rainbow[ct虹ゲージアニメ.n現在の値].t2D描画(TJAPlayer3.app.Device, 57, 144); + + TJAPlayer3.Tx.Result_Soul_Fire.t2D中心基準描画(TJAPlayer3.app.Device, 576, 160, new Rectangle(150 * ctSoul.n現在の値, 0, 150, 131)); + + TJAPlayer3.Tx.Result_Soul_Text.t2D中心基準描画(TJAPlayer3.app.Device, 575, 159, new Rectangle(37 * 1, 0, 37, 37)); + + if (ctSoul.n現在の値 % 2 == 0) + TJAPlayer3.Tx.Result_Soul_Text.t2D中心基準描画(TJAPlayer3.app.Device, 575, 159, new Rectangle(37 * 2, 0, 37, 37)); + } + } + + #endregion + } + + if (ct全体進行.n現在の値 >= 2000) + { + #region [ 成績(スコアを除く)関連 ] + + int Interval = 420; + + float AddCount = 135; + + if (ct全体進行.n現在の値 >= AnimeCount) + { + TJAPlayer3.Tx.Result_Number.vc拡大縮小倍率.X = ct全体進行.n現在の値 <= AnimeCount + AddCount ? 1.3f - (float)Math.Sin((ct全体進行.n現在の値 - AnimeCount) / (AddCount / 90) * (Math.PI / 180)) * 0.3f : 1.0f; + TJAPlayer3.Tx.Result_Number.vc拡大縮小倍率.Y = ct全体進行.n現在の値 <= AnimeCount + AddCount ? 1.3f - (float)Math.Sin((ct全体進行.n現在の値 - AnimeCount) / (AddCount / 90) * (Math.PI / 180)) * 0.3f : 1.0f; + this.t小文字表示(TJAPlayer3.Skin.nResultNumberP1X, TJAPlayer3.Skin.nResultNumberY + TJAPlayer3.Skin.nResultNumberYPadding * 0, string.Format("{0,4:###0}", TJAPlayer3.stage結果.st演奏記録.Drums.nPerfect数.ToString())); + if (!this.b音声再生[1]) + { + TJAPlayer3.Skin.soundPon.t再生する(); + this.b音声再生[1] = true; + } + } + if (ct全体進行.n現在の値 >= AnimeCount + Interval) + { + TJAPlayer3.Tx.Result_Number.vc拡大縮小倍率.X = ct全体進行.n現在の値 <= AnimeCount + Interval + AddCount ? 1.3f - (float)Math.Sin((ct全体進行.n現在の値 - (AnimeCount + Interval)) / (AddCount / 90) * (Math.PI / 180)) * 0.3f : 1.0f; + TJAPlayer3.Tx.Result_Number.vc拡大縮小倍率.Y = ct全体進行.n現在の値 <= AnimeCount + Interval + AddCount ? 1.3f - (float)Math.Sin((ct全体進行.n現在の値 - (AnimeCount + Interval)) / (AddCount / 90) * (Math.PI / 180)) * 0.3f : 1.0f; + this.t小文字表示(TJAPlayer3.Skin.nResultNumberP1X, TJAPlayer3.Skin.nResultNumberY + TJAPlayer3.Skin.nResultNumberYPadding * 1, string.Format("{0,4:###0}", TJAPlayer3.stage結果.st演奏記録.Drums.nGreat数.ToString())); + if (!this.b音声再生[2]) + { + TJAPlayer3.Skin.soundPon.t再生する(); + this.b音声再生[2] = true; + } + } + if (ct全体進行.n現在の値 >= AnimeCount + Interval * 2) + { + TJAPlayer3.Tx.Result_Number.vc拡大縮小倍率.X = ct全体進行.n現在の値 <= AnimeCount + Interval * 2 + AddCount ? 1.3f - (float)Math.Sin((ct全体進行.n現在の値 - (AnimeCount + Interval * 2)) / (AddCount / 90) * (Math.PI / 180)) * 0.3f : 1.0f; + TJAPlayer3.Tx.Result_Number.vc拡大縮小倍率.Y = ct全体進行.n現在の値 <= AnimeCount + Interval * 2 + AddCount ? 1.3f - (float)Math.Sin((ct全体進行.n現在の値 - (AnimeCount + Interval * 2)) / (AddCount / 90) * (Math.PI / 180)) * 0.3f : 1.0f; + this.t小文字表示(TJAPlayer3.Skin.nResultNumberP1X, TJAPlayer3.Skin.nResultNumberY + TJAPlayer3.Skin.nResultNumberYPadding * 2, string.Format("{0,4:###0}", TJAPlayer3.stage結果.st演奏記録.Drums.nMiss数.ToString())); + if (!this.b音声再生[3]) + { + TJAPlayer3.Skin.soundPon.t再生する(); + this.b音声再生[3] = true; + } + } + if (ct全体進行.n現在の値 >= AnimeCount + Interval * 3) + { + TJAPlayer3.Tx.Result_Number.vc拡大縮小倍率.X = ct全体進行.n現在の値 <= AnimeCount + Interval * 3 + AddCount ? 1.3f - (float)Math.Sin((ct全体進行.n現在の値 - (AnimeCount + Interval * 3)) / (AddCount / 90) * (Math.PI / 180)) * 0.3f : 1.0f; + TJAPlayer3.Tx.Result_Number.vc拡大縮小倍率.Y = ct全体進行.n現在の値 <= AnimeCount + Interval * 3 + AddCount ? 1.3f - (float)Math.Sin((ct全体進行.n現在の値 - (AnimeCount + Interval * 3)) / (AddCount / 90) * (Math.PI / 180)) * 0.3f : 1.0f; + this.t小文字表示(TJAPlayer3.Skin.nResultNumberP1X, TJAPlayer3.Skin.nResultNumberY + TJAPlayer3.Skin.nResultNumberYPadding * 3, string.Format("{0,4:###0}", TJAPlayer3.stage結果.st演奏記録.Drums.n連打数.ToString())); + if (!this.b音声再生[4]) + { + TJAPlayer3.Skin.soundPon.t再生する(); + this.b音声再生[4] = true; + } + } + if (ct全体進行.n現在の値 >= AnimeCount + Interval * 4) + { + TJAPlayer3.Tx.Result_Number.vc拡大縮小倍率.X = ct全体進行.n現在の値 <= AnimeCount + Interval * 4 + AddCount ? 1.3f - (float)Math.Sin((ct全体進行.n現在の値 - (AnimeCount + Interval * 4)) / (AddCount / 90) * (Math.PI / 180)) * 0.3f : 1.0f; + TJAPlayer3.Tx.Result_Number.vc拡大縮小倍率.Y = ct全体進行.n現在の値 <= AnimeCount + Interval * 4 + AddCount ? 1.3f - (float)Math.Sin((ct全体進行.n現在の値 - (AnimeCount + Interval * 4)) / (AddCount / 90) * (Math.PI / 180)) * 0.3f : 1.0f; + this.t小文字表示(TJAPlayer3.Skin.nResultNumberP1X, TJAPlayer3.Skin.nResultNumberY + TJAPlayer3.Skin.nResultNumberYPadding * 4, string.Format("{0,4:###0}", TJAPlayer3.stage結果.st演奏記録.Drums.n最大コンボ数.ToString())); + if (!this.b音声再生[5]) + { + TJAPlayer3.Skin.soundPon.t再生する(); + this.b音声再生[5] = true; + } + } + + #endregion + + #region [ スコア関連 ] + + if (ct全体進行.n現在の値 >= AnimeCount + Interval * 4 + 840) + { + int AnimeCount1 = AnimeCount + Interval * 4 + 840; + + TJAPlayer3.Tx.Result_Score_Number.vc拡大縮小倍率.X = ct全体進行.n現在の値 <= AnimeCount1 + 270 ? 1.0f + (float)Math.Sin((ct全体進行.n現在の値 - AnimeCount1) / 1.5f * (Math.PI / 180)) * 0.65f : + ct全体進行.n現在の値 <= AnimeCount1 + 360 ? 1.0f - (float)Math.Sin((ct全体進行.n現在の値 - AnimeCount1 - 270) * (Math.PI / 180)) * 0.1f : 1.0f; + TJAPlayer3.Tx.Result_Score_Number.vc拡大縮小倍率.Y = ct全体進行.n現在の値 <= AnimeCount1 + 270 ? 1.0f + (float)Math.Sin((ct全体進行.n現在の値 - AnimeCount1) / 1.5f * (Math.PI / 180)) * 0.65f : + ct全体進行.n現在の値 <= AnimeCount1 + 360 ? 1.0f - (float)Math.Sin((ct全体進行.n現在の値 - AnimeCount1 - 270) * (Math.PI / 180)) * 0.1f : 1.0f; + + this.tスコア文字表示(TJAPlayer3.Skin.nResultScoreP1X, TJAPlayer3.Skin.nResultScoreP1Y, string.Format("{0,7:######0}", TJAPlayer3.stage結果.st演奏記録.Drums.nスコア)); + + if (!b音声再生[6]) + { + TJAPlayer3.Skin.soundScoreDon.t再生する(); + b音声再生[6] = true; + } + } + + #endregion + } + + + + if (ct全体進行.n現在の値 >= ScoreApparitionTimeStamp + 1000) + { + #region [Score rank apparition] + + if (ct全体進行.n現在の値 <= ScoreApparitionTimeStamp + 1180) + for (int i = 0; i < 3; i++) + { + TJAPlayer3.Tx.Result_ScoreRankEffect.Opacity = (int)((ct全体進行.n現在の値 - (ScoreApparitionTimeStamp + 1000)) / 180.0f * 255.0f); + TJAPlayer3.Tx.Result_ScoreRankEffect.vc拡大縮小倍率.X = 1.0f + (float)Math.Sin((float)(ct全体進行.n現在の値 - (ScoreApparitionTimeStamp + 910)) / 1.5f * (Math.PI / 180)) * 1.4f; + TJAPlayer3.Tx.Result_ScoreRankEffect.vc拡大縮小倍率.Y = 1.0f + (float)Math.Sin((float)(ct全体進行.n現在の値 - (ScoreApparitionTimeStamp + 910)) / 1.5f * (Math.PI / 180)) * 1.4f; + } + else if (ct全体進行.n現在の値 <= ScoreApparitionTimeStamp + 1270) + for (int i = 0; i < 3; i++) + { + TJAPlayer3.Tx.Result_ScoreRankEffect.vc拡大縮小倍率.X = 0.5f + (float)Math.Sin((float)(ct全体進行.n現在の値 - (ScoreApparitionTimeStamp + 1180)) * (Math.PI / 180)) * 0.5f; + TJAPlayer3.Tx.Result_ScoreRankEffect.vc拡大縮小倍率.Y = 0.5f + (float)Math.Sin((float)(ct全体進行.n現在の値 - (ScoreApparitionTimeStamp + 1180)) * (Math.PI / 180)) * 0.5f; + } + + if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Dan && TJAPlayer3.stage結果.nスコアランク > 0) + { + int CurrentFlash = 0; + int[] FlashTimes = { 1500, 1540, 1580, 1620, 1660, 1700, 1740, 1780 }; + + if (ctFlash_Icon.n現在の値 >= FlashTimes[0] && ctFlash_Icon.n現在の値 <= FlashTimes[1] || ctFlash_Icon.n現在の値 >= FlashTimes[4] && ctFlash_Icon.n現在の値 <= FlashTimes[5]) + CurrentFlash = 1; + else if (ctFlash_Icon.n現在の値 >= FlashTimes[1] && ctFlash_Icon.n現在の値 <= FlashTimes[2] || ctFlash_Icon.n現在の値 >= FlashTimes[5] && ctFlash_Icon.n現在の値 <= FlashTimes[6]) + CurrentFlash = 2; + else if (ctFlash_Icon.n現在の値 >= FlashTimes[2] && ctFlash_Icon.n現在の値 <= FlashTimes[3] || ctFlash_Icon.n現在の値 >= FlashTimes[6] && ctFlash_Icon.n現在の値 <= FlashTimes[7]) + CurrentFlash = 3; + + + TJAPlayer3.Tx.Result_ScoreRankEffect.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 135, 339, new Rectangle((TJAPlayer3.stage結果.nスコアランク - 1) * 229, CurrentFlash * 194, 229, 194)); + + if (!b音声再生[7] && ct全体進行.n現在の値 >= ScoreApparitionTimeStamp + 1180) + { + TJAPlayer3.Skin.soundRankIn.t再生する(); + b音声再生[7] = true; + } + } + + #endregion + } + + + if (ct全体進行.n現在の値 >= ScoreApparitionTimeStamp + 2500) + { + #region [Crown apparition] + + if (ct全体進行.n現在の値 <= ScoreApparitionTimeStamp + 2680) + for (int i = 0; i < 3; i++) + { + TJAPlayer3.Tx.Result_CrownEffect.Opacity = (int)((ct全体進行.n現在の値 - (ScoreApparitionTimeStamp + 2500)) / 180.0f * 255.0f); + TJAPlayer3.Tx.Result_CrownEffect.vc拡大縮小倍率.X = 1.0f + (float)Math.Sin((float)(ct全体進行.n現在の値 - (ScoreApparitionTimeStamp + 2410)) / 1.5f * (Math.PI / 180)) * 1.4f; + TJAPlayer3.Tx.Result_CrownEffect.vc拡大縮小倍率.Y = 1.0f + (float)Math.Sin((float)(ct全体進行.n現在の値 - (ScoreApparitionTimeStamp + 2410)) / 1.5f * (Math.PI / 180)) * 1.4f; + } + else if (ct全体進行.n現在の値 <= ScoreApparitionTimeStamp + 2770) + for (int i = 0; i < 3; i++) + { + TJAPlayer3.Tx.Result_CrownEffect.vc拡大縮小倍率.X = 0.5f + (float)Math.Sin((float)(ct全体進行.n現在の値 - (ScoreApparitionTimeStamp + 2680)) * (Math.PI / 180)) * 0.5f; + TJAPlayer3.Tx.Result_CrownEffect.vc拡大縮小倍率.Y = 0.5f + (float)Math.Sin((float)(ct全体進行.n現在の値 - (ScoreApparitionTimeStamp + 2680)) * (Math.PI / 180)) * 0.5f; + } + + int ClearType = TJAPlayer3.stage結果.nクリア - 1; + + if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)(Difficulty.Dan) && ClearType >= 0) + { + int CurrentFlash = 0; + int[] FlashTimes = { 2000, 2040, 2080, 2120, 2160, 2200, 2240, 2280 }; + + if (ctFlash_Icon.n現在の値 >= FlashTimes[0] && ctFlash_Icon.n現在の値 <= FlashTimes[1] || ctFlash_Icon.n現在の値 >= FlashTimes[4] && ctFlash_Icon.n現在の値 <= FlashTimes[5]) + CurrentFlash = 1; + else if (ctFlash_Icon.n現在の値 >= FlashTimes[1] && ctFlash_Icon.n現在の値 <= FlashTimes[2] || ctFlash_Icon.n現在の値 >= FlashTimes[5] && ctFlash_Icon.n現在の値 <= FlashTimes[6]) + CurrentFlash = 2; + else if (ctFlash_Icon.n現在の値 >= FlashTimes[2] && ctFlash_Icon.n現在の値 <= FlashTimes[3] || ctFlash_Icon.n現在の値 >= FlashTimes[6] && ctFlash_Icon.n現在の値 <= FlashTimes[7]) + CurrentFlash = 3; + + TJAPlayer3.Tx.Result_CrownEffect.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 262, 336, new Rectangle(ClearType * 113, CurrentFlash * 112, 113, 112)); + + if (!b音声再生[8] && ct全体進行.n現在の値 >= ScoreApparitionTimeStamp + 2680) + { + TJAPlayer3.Skin.soundCrownIn.t再生する(); + b音声再生[8] = true; + } + } + + #endregion + } + + float MountainAppearValue = 2000 + (ctゲージアニメ.n終了値 * 66) + 8360 - 85; + + if (ct全体進行.n現在の値 >= MountainAppearValue) + { + #region [Mountain animation counter setup] + + if (!this.ctMountain_ClearIn.b進行中) + this.ctMountain_ClearIn.t開始(0, 515, 3, TJAPlayer3.Timer); + + if (TJAPlayer3.stage結果.st演奏記録[0].fゲージ >= 80.0f) + { + if (!this.ctDonchan_Clear.b進行中) + this.ctDonchan_Clear.t開始(0, TJAPlayer3.Tx.Result_Donchan_Clear.Length - 1, 1000 / 60, TJAPlayer3.Timer); + } + else + { + if (!this.ctDonchan_Failed_In.b進行中) + this.ctDonchan_Failed_In.t開始(0, TJAPlayer3.Tx.Result_Donchan_Failed_In.Length - 1, 1000 / 60, TJAPlayer3.Timer); + else if (this.ctDonchan_Failed_In.b終了値に達した && !this.ctDonchan_Failed.b進行中) + this.ctDonchan_Failed.t開始(0, TJAPlayer3.Tx.Result_Donchan_Failed.Length - 1, 1000 / 60, TJAPlayer3.Timer); + } + + + #endregion + + /* TO DO */ + + // Reset counter for clouds + + // Random seed for fireworks + + // Random seed for shines + + // Alter Mountain appear value/Crown appear value if no Score Rank/no Crown + } + + #region [Don-chan Animations] + + if (this.ctDonchan_Clear.b進行中) + { + TJAPlayer3.Tx.Result_Donchan_Clear[ctDonchan_Clear.n現在の値].vc拡大縮小倍率.X = 0.8f; + TJAPlayer3.Tx.Result_Donchan_Clear[ctDonchan_Clear.n現在の値].vc拡大縮小倍率.Y = 0.8f; + + TJAPlayer3.Tx.Result_Donchan_Clear[ctDonchan_Clear.n現在の値].t2D中心基準描画(TJAPlayer3.app.Device, 202, 532); + } + else if (this.ctDonchan_Failed.b進行中) + { + TJAPlayer3.Tx.Result_Donchan_Failed[ctDonchan_Failed.n現在の値].vc拡大縮小倍率.X = 0.8f; + TJAPlayer3.Tx.Result_Donchan_Failed[ctDonchan_Failed.n現在の値].vc拡大縮小倍率.Y = 0.8f; + + TJAPlayer3.Tx.Result_Donchan_Failed[ctDonchan_Failed.n現在の値].t2D中心基準描画(TJAPlayer3.app.Device, 202, 532); + } + else if (this.ctDonchan_Failed_In.b進行中) + { + TJAPlayer3.Tx.Result_Donchan_Failed_In[ctDonchan_Failed_In.n現在の値].vc拡大縮小倍率.X = 0.8f; + TJAPlayer3.Tx.Result_Donchan_Failed_In[ctDonchan_Failed_In.n現在の値].vc拡大縮小倍率.Y = 0.8f; + + TJAPlayer3.Tx.Result_Donchan_Failed_In[ctDonchan_Failed_In.n現在の値].t2D中心基準描画(TJAPlayer3.app.Device, 202, 532); + } + else + { + TJAPlayer3.Tx.Result_Donchan_Normal[ctDonchan_Normal.n現在の値].vc拡大縮小倍率.X = 0.8f; + TJAPlayer3.Tx.Result_Donchan_Normal[ctDonchan_Normal.n現在の値].vc拡大縮小倍率.Y = 0.8f; + + TJAPlayer3.Tx.Result_Donchan_Normal[ctDonchan_Normal.n現在の値].t2D中心基準描画(TJAPlayer3.app.Device, 202, 532); + } + + #endregion + + if (ct全体進行.n現在の値 >= MountainAppearValue) + { + float AddCount = 135; + + int baseX = 182; + int baseY = 602; + + #region [Cherry blossom animation] + + if (TJAPlayer3.stage結果.st演奏記録[0].fゲージ >= 80.0f) + { + TJAPlayer3.Tx.Result_Flower.vc拡大縮小倍率.X = 0.6f * (ct全体進行.n現在の値 <= MountainAppearValue + AddCount ? 1.3f - (float)Math.Sin((ct全体進行.n現在の値 - MountainAppearValue) / (AddCount / 90) * (Math.PI / 180)) * 0.3f : 1.0f); + TJAPlayer3.Tx.Result_Flower.vc拡大縮小倍率.Y = 0.6f * (ct全体進行.n現在の値 <= MountainAppearValue + AddCount ? 1.3f - (float)Math.Sin((ct全体進行.n現在の値 - MountainAppearValue) / (AddCount / 90) * (Math.PI / 180)) * 0.3f : 1.0f); + TJAPlayer3.Tx.Result_Flower.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, baseX, baseY, new Rectangle(0, 0, 520, 195)); + } + + #endregion + + #region [Cherry blossom Rotating flowers] + + if (TJAPlayer3.stage結果.st演奏記録[0].fゲージ >= 80.0f) + { + float FlowerTime = ctRotate_Flowers.n現在の値; + + for (int i = 0; i < 5; i++) + { + + if ((int)FlowerTime < ApparitionTimeStamps[i] || (int)FlowerTime > ApparitionTimeStamps[i] + 2 * ApparitionFade + ApparitionDuration) + TJAPlayer3.Tx.Result_Flower_Rotate[i].Opacity = 0; + else if ((int)FlowerTime <= ApparitionTimeStamps[i] + ApparitionDuration + ApparitionFade && (int)FlowerTime >= ApparitionTimeStamps[i] + ApparitionFade) + TJAPlayer3.Tx.Result_Flower_Rotate[i].Opacity = 255; + else + { + int CurrentGradiant = 0; + if ((int)FlowerTime >= ApparitionTimeStamps[i] + ApparitionFade + ApparitionDuration) + CurrentGradiant = ApparitionFade - ((int)FlowerTime - ApparitionTimeStamps[i] - ApparitionDuration - ApparitionFade); + else + CurrentGradiant = (int)FlowerTime - ApparitionTimeStamps[i]; + + + TJAPlayer3.Tx.Result_Flower_Rotate[i].Opacity = (255 * CurrentGradiant) / ApparitionFade; + } + + TJAPlayer3.Tx.Result_Flower_Rotate[i].vc拡大縮小倍率.X = 0.6f; + TJAPlayer3.Tx.Result_Flower_Rotate[i].vc拡大縮小倍率.Y = 0.6f; + TJAPlayer3.Tx.Result_Flower_Rotate[i].fZ軸中心回転 = (float)(FlowerTime - ApparitionTimeStamps[i]) / (FlowerRotationSpeeds[i] * 360f); + + TJAPlayer3.Tx.Result_Flower_Rotate[i].t2D中心基準描画(TJAPlayer3.app.Device, baseX + FlowerXPos[i] - 20, baseY + FlowerYPos[i] - 20); + } + + } + + #endregion + + #region [Panel shines] + + if (TJAPlayer3.stage結果.st演奏記録[0].fゲージ >= 80.0f) + { + int ShineTime = (int)ctShine_Plate.n現在の値; + int Quadrant500 = ShineTime % 500; + + for (int i = 0; i < 6; i++) + { + if (i < 3 && ShineTime >= 500 || i >= 3 && ShineTime < 500) + TJAPlayer3.Tx.Result_Shine.Opacity = 0; + else if (Quadrant500 >= ShinePFade && Quadrant500 <= 500 - ShinePFade) + TJAPlayer3.Tx.Result_Shine.Opacity = 255; + else + TJAPlayer3.Tx.Result_Shine.Opacity = (255 * Math.Min(Quadrant500, 500 - Quadrant500)) / ShinePFade; + + TJAPlayer3.Tx.Result_Shine.vc拡大縮小倍率.X = 0.15f; + TJAPlayer3.Tx.Result_Shine.vc拡大縮小倍率.Y = 0.15f; + + TJAPlayer3.Tx.Result_Shine.t2D中心基準描画(TJAPlayer3.app.Device, baseX + ShinePXPos[i] + 62, baseY + ShinePYPos[i] + 52); + } + + } + + + #endregion + + #region [Speech bubble animation] + // Speech Bubble + + int Mood = 0; + + if (TJAPlayer3.stage結果.st演奏記録[0].fゲージ >= 100.0f) + Mood = 3; + else if (TJAPlayer3.stage結果.st演奏記録[0].fゲージ >= 80.0f) + Mood = 2; + else if (TJAPlayer3.stage結果.st演奏記録[0].fゲージ >= 40.0f) + Mood = 1; + + + TJAPlayer3.Tx.Result_Speech_Bubble.vc拡大縮小倍率.X = ct全体進行.n現在の値 <= MountainAppearValue + AddCount ? 1.3f - (float)Math.Sin((ct全体進行.n現在の値 - MountainAppearValue) / (AddCount / 90) * (Math.PI / 180)) * 0.3f : 1.0f; + TJAPlayer3.Tx.Result_Speech_Bubble.vc拡大縮小倍率.Y = ct全体進行.n現在の値 <= MountainAppearValue + AddCount ? 1.3f - (float)Math.Sin((ct全体進行.n現在の値 - MountainAppearValue) / (AddCount / 90) * (Math.PI / 180)) * 0.3f : 1.0f; + TJAPlayer3.Tx.Result_Speech_Bubble.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 430, 526, new Rectangle(Mood * 358, RandomText * 230, 358, 230)); + + if (!b音声再生[9]) + { + if (TJAPlayer3.stage結果.st演奏記録[0].fゲージ >= 80.0f) + TJAPlayer3.Skin.soundDonClear.t再生する(); + else + TJAPlayer3.Skin.soundDonFailed.t再生する(); + b音声再生[9] = true; + } + + #endregion + } + + + if (ctゲージアニメ.n現在の値 != 50) + { + TJAPlayer3.Tx.Result_Gauge.t2D描画(TJAPlayer3.app.Device, 441, 142, new RectangleF(ctゲージアニメ.n現在の値 < 40 ? 0 : 42, 35, 42, 20)); + + TJAPlayer3.Tx.Result_Soul_Text.t2D中心基準描画(TJAPlayer3.app.Device, 575, 159, new Rectangle(37 * (ctゲージアニメ.n現在の値 <= 30 ? 0 : 1), 0, 37, 37)); + } + + #endregion + } + else + { + #region 段位時リザルト + + switch (TJAPlayer3.stage演奏ドラム画面.actDan.GetExamStatus(TJAPlayer3.stage結果.st演奏記録.Drums.Dan_C)) + { + case Exam.Status.Failure: + TJAPlayer3.Tx.Result_Dan?.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Result_Dan_XY[0], TJAPlayer3.Skin.Result_Dan_XY[1], new Rectangle(0, 0, TJAPlayer3.Skin.Result_Dan[0], TJAPlayer3.Skin.Result_Dan[1])); + break; + case Exam.Status.Success: + TJAPlayer3.Tx.Result_Dan?.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Result_Dan_XY[0], TJAPlayer3.Skin.Result_Dan_XY[1], new Rectangle(TJAPlayer3.Skin.Result_Dan[0], 0, TJAPlayer3.Skin.Result_Dan[0], TJAPlayer3.Skin.Result_Dan[1])); + break; + case Exam.Status.Better_Success: + TJAPlayer3.Tx.Result_Dan?.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Result_Dan_XY[0], TJAPlayer3.Skin.Result_Dan_XY[1], new Rectangle(TJAPlayer3.Skin.Result_Dan[0] * 2, 0, TJAPlayer3.Skin.Result_Dan[0], TJAPlayer3.Skin.Result_Dan[1])); + break; + default: + break; + } + + Dan_Plate?.t2D中心基準描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Result_Dan_Plate_XY[0], TJAPlayer3.Skin.Result_Dan_Plate_XY[1]); + + #endregion + } + + if (!this.ct表示用.b終了値に達した) + { + return 0; + } + return 1; + } + + + + // その他 + + #region [ private ] + //----------------- + [StructLayout(LayoutKind.Sequential)] + private struct ST文字位置 + { + public char ch; + public Point pt; + } + + public CCounter ct全体進行; + public CCounter ctゲージアニメ; + private CCounter ct虹ゲージアニメ; + private CCounter ctSoul; + + public CCounter ctEndAnime; + public CCounter ctMountain_ClearIn; + public CCounter ctBackgroundAnime; + public CCounter ctBackgroundAnime_Clear; + private CCounter ctDonchan_Normal; + private CCounter ctDonchan_Clear; + private CCounter ctDonchan_Failed; + private CCounter ctDonchan_Failed_In; + + private int RandomText; + + private CCounter ctFlash_Icon; + private CCounter ctRotate_Flowers; + private CCounter ctShine_Plate; + + public bool[] b音声再生 = { false, false, false, false, false, false, false, false, false, false, false, false, false }; + + // Cherry blossom flowers variables + public int[] FlowerXPos = { -114, -37, 114, 78, -75 }; + public int[] FlowerYPos = { -33, 3, -36, -81, -73 }; + public float[] FlowerRotationSpeeds = { 5f, 3f, -6f, 4f, -2f }; + public int[] ApparitionTimeStamps = { 10, 30, 50, 100, 190 }; + public int ApparitionFade = 100; + public int ApparitionDuration = 300; + + // Plate shine variables + public int[] ShinePXPos = { 114 - 25, 114 - 16, -37 - 23, -37 - 9, -75 + 20, 78 - 13}; + public int[] ShinePYPos = { -36 + 52, -36 + 2, 3 - 7, 3 + 30, -73 - 23, -81 - 31}; + public int ShinePFade = 100; + + private CCounter ct表示用; + private readonly Point[] ptFullCombo位置; + private CSound sdDTXで指定されたフルコンボ音; + private readonly ST文字位置[] st小文字位置; + private readonly ST文字位置[] st大文字位置; + private ST文字位置[] stScoreFont; + + private CTexture Dan_Plate; + + private void t小文字表示(int x, int y, string str) + { + foreach (char ch in str) + { + for (int i = 0; i < this.st小文字位置.Length; i++) + { + if (ch == ' ') + { + break; + } + + if (this.st小文字位置[i].ch == ch) + { + Rectangle rectangle = new Rectangle(this.st小文字位置[i].pt.X, this.st小文字位置[i].pt.Y, 32, 38); + if (TJAPlayer3.Tx.Result_Number != null) + { + TJAPlayer3.Tx.Result_Number.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, x + 16, y + 19, rectangle); + } + break; + } + } + x += 22; + } + } + private void t大文字表示(int x, int y, string str) + { + this.t大文字表示(x, y, str, false); + } + private void t大文字表示(int x, int y, string str, bool b強調) + { + foreach (char ch in str) + { + for (int i = 0; i < this.st大文字位置.Length; i++) + { + if (this.st大文字位置[i].ch == ch) + { + Rectangle rectangle = new Rectangle(this.st大文字位置[i].pt.X, this.st大文字位置[i].pt.Y, 11, 0x10); + if (ch == '.') + { + rectangle.Width -= 2; + rectangle.Height -= 2; + } + if (TJAPlayer3.Tx.Result_Number != null) + { + TJAPlayer3.Tx.Result_Number.t2D描画(TJAPlayer3.app.Device, x, y, rectangle); + } + break; + } + } + x += 8; + } + } + + protected void tスコア文字表示(int x, int y, string str) + { + foreach (char ch in str) + { + for (int i = 0; i < this.stScoreFont.Length; i++) + { + if (this.stScoreFont[i].ch == ch) + { + Rectangle rectangle = new Rectangle(this.stScoreFont[i].pt.X, 0, 51, 60); + if (TJAPlayer3.Tx.Result_Score_Number != null) + { + TJAPlayer3.Tx.Result_Score_Number.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, x - (str.Length * 33) + 25, y + 30, rectangle); + } + break; + } + } + x += 33; + } + } + //----------------- + #endregion + } +} diff --git a/TJAPlayer3/Stages/08.Result/CActResultRank.cs b/TJAPlayer3/Stages/08.Result/CActResultRank.cs new file mode 100644 index 00000000..45c94a7d --- /dev/null +++ b/TJAPlayer3/Stages/08.Result/CActResultRank.cs @@ -0,0 +1,69 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Drawing; +using SlimDX; +using FDK; + +namespace TJAPlayer3 +{ + internal class CActResultRank : CActivity + { + // コンストラクタ + + public CActResultRank() + { + base.b活性化してない = true; + } + + // CActivity 実装 + + public override void On活性化() + { + + base.On活性化(); + } + public override void On非活性化() + { + + base.On非活性化(); + } + public override void OnManagedリソースの作成() + { + if( !base.b活性化してない ) + { + + base.OnManagedリソースの作成(); + } + } + public override void OnManagedリソースの解放() + { + if( !base.b活性化してない ) + { + + base.OnManagedリソースの解放(); + } + } + public override int On進行描画() + { + if( base.b活性化してない ) + { + return 0; + } + if( base.b初めての進行描画 ) + { + base.b初めての進行描画 = false; + } + + return 1; + } + + + // その他 + + #region [ private ] + //----------------- + //----------------- + #endregion + } +} diff --git a/TJAPlayer3/Stages/08.Result/CActResultSongBar.cs b/TJAPlayer3/Stages/08.Result/CActResultSongBar.cs new file mode 100644 index 00000000..75f183bd --- /dev/null +++ b/TJAPlayer3/Stages/08.Result/CActResultSongBar.cs @@ -0,0 +1,130 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Drawing; +using System.Diagnostics; +using SlimDX; +using FDK; + +namespace TJAPlayer3 +{ + internal class CActResultSongBar : CActivity + { + // コンストラクタ + + public CActResultSongBar() + { + base.b活性化してない = true; + } + + + // メソッド + + public void tアニメを完了させる() + { + this.ct登場用.n現在の値 = (int)this.ct登場用.n終了値; + } + + + // CActivity 実装 + + public override void On活性化() + { + if( !string.IsNullOrEmpty( TJAPlayer3.ConfigIni.FontName) ) + { + this.pfMusicName = new CPrivateFastFont(new FontFamily(TJAPlayer3.ConfigIni.FontName), TJAPlayer3.Skin.Result_MusicName_FontSize); + } + else + { + this.pfMusicName = new CPrivateFastFont(new FontFamily("MS UI Gothic"), TJAPlayer3.Skin.Result_MusicName_FontSize); + } + + // After performing calibration, inform the player that + // calibration has been completed, rather than + // displaying the song title as usual. + + + var title = TJAPlayer3.IsPerformingCalibration + ? $"Calibration complete. InputAdjustTime is now {TJAPlayer3.ConfigIni.nInputAdjustTimeMs}ms" + : TJAPlayer3.DTX.TITLE; + + using (var bmpSongTitle = pfMusicName.DrawPrivateFont(title, TJAPlayer3.Skin.Result_MusicName_ForeColor, TJAPlayer3.Skin.Result_MusicName_BackColor)) + + { + this.txMusicName = TJAPlayer3.tテクスチャの生成(bmpSongTitle, false); + txMusicName.vc拡大縮小倍率.X = TJAPlayer3.GetSongNameXScaling(ref txMusicName); + } + + base.On活性化(); + } + public override void On非活性化() + { + if( this.ct登場用 != null ) + { + this.ct登場用 = null; + } + base.On非活性化(); + } + public override void OnManagedリソースの作成() + { + if( !base.b活性化してない ) + { + base.OnManagedリソースの作成(); + } + } + public override void OnManagedリソースの解放() + { + if( !base.b活性化してない ) + { + TJAPlayer3.t安全にDisposeする(ref this.pfMusicName); + TJAPlayer3.tテクスチャの解放( ref this.txMusicName ); + + base.OnManagedリソースの解放(); + } + } + public override int On進行描画() + { + if( base.b活性化してない ) + { + return 0; + } + if( base.b初めての進行描画 ) + { + this.ct登場用 = new CCounter( 0, 270, 4, TJAPlayer3.Timer ); + base.b初めての進行描画 = false; + } + this.ct登場用.t進行(); + + if (TJAPlayer3.Skin.Result_MusicName_ReferencePoint == CSkin.ReferencePoint.Center) + { + this.txMusicName.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Result_MusicName_X - ((this.txMusicName.szテクスチャサイズ.Width * txMusicName.vc拡大縮小倍率.X) / 2), TJAPlayer3.Skin.Result_MusicName_Y); + } + else if (TJAPlayer3.Skin.Result_MusicName_ReferencePoint == CSkin.ReferencePoint.Left) + { + this.txMusicName.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Result_MusicName_X, TJAPlayer3.Skin.Result_MusicName_Y); + } + else + { + this.txMusicName.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Result_MusicName_X - this.txMusicName.szテクスチャサイズ.Width * txMusicName.vc拡大縮小倍率.X, TJAPlayer3.Skin.Result_MusicName_Y); + } + + if( !this.ct登場用.b終了値に達した ) + { + return 0; + } + return 1; + } + + + // その他 + + #region [ private ] + //----------------- + private CCounter ct登場用; + + private CTexture txMusicName; + private CPrivateFastFont pfMusicName; + //----------------- + #endregion + } +} diff --git a/TJAPlayer3/Stages/08.Result/CStage結果.cs b/TJAPlayer3/Stages/08.Result/CStage結果.cs new file mode 100644 index 00000000..1f8dcb21 --- /dev/null +++ b/TJAPlayer3/Stages/08.Result/CStage結果.cs @@ -0,0 +1,661 @@ +using System; +using System.IO; +using System.Diagnostics; +using FDK; +using System.Drawing; +using System.Collections.Generic; + +namespace TJAPlayer3 +{ + internal class CStage結果 : CStage + { + // プロパティ + + public STDGBVALUE b新記録スキル; + public STDGBVALUE b新記録スコア; + public STDGBVALUE b新記録ランク; + public STDGBVALUE fPerfect率; + public STDGBVALUE fGreat率; + public STDGBVALUE fGood率; + public STDGBVALUE fPoor率; + public STDGBVALUE fMiss率; + public STDGBVALUE bオート; // #23596 10.11.16 add ikanick + // 10.11.17 change (int to bool) ikanick + + public STDGBVALUE nランク値; + public STDGBVALUE n演奏回数; + public STDGBVALUE nScoreRank; + public int n総合ランク値; + public int nクリア; //0:未クリア 1:クリア 2:フルコンボ 3:ドンダフルコンボ + public int nスコアランク; //0:未取得 1:白粋 2:銅粋 3:銀粋 4:金雅 5:桃雅 6:紫雅 7:虹極 + public CDTX.CChip[] r空うちドラムチップ; + public STDGBVALUE st演奏記録; + + + // コンストラクタ + + public CStage結果() + { + this.st演奏記録.Drums = new CScoreIni.C演奏記録(); + this.st演奏記録.Guitar = new CScoreIni.C演奏記録(); + this.st演奏記録.Bass = new CScoreIni.C演奏記録(); + this.st演奏記録.Taiko = new CScoreIni.C演奏記録(); + this.r空うちドラムチップ = new CDTX.CChip[10]; + this.n総合ランク値 = -1; + this.nチャンネル0Atoレーン07 = new int[] { 1, 2, 3, 4, 5, 7, 6, 1, 7, 0 }; + base.eステージID = CStage.Eステージ.結果; + base.eフェーズID = CStage.Eフェーズ.共通_通常状態; + base.b活性化してない = true; + base.list子Activities.Add(this.actParameterPanel = new CActResultParameterPanel()); + base.list子Activities.Add(this.actSongBar = new CActResultSongBar()); + base.list子Activities.Add(this.actOption = new CActオプションパネル()); + base.list子Activities.Add(this.actFI = new CActFIFOResult()); + base.list子Activities.Add(this.actFO = new CActFIFOBlack()); + } + + + // CStage 実装 + + public override void On活性化() + { + TJAPlayer3.Skin.bgmリザルトイン音.t再生する(); + Trace.TraceInformation("結果ステージを活性化します。"); + Trace.Indent(); + b最近遊んだ曲追加済み = false; + try + { + { + #region [ 初期化 ] + //--------------------- + this.eフェードアウト完了時の戻り値 = E戻り値.継続; + this.bアニメが完了 = false; + this.bIsCheckedWhetherResultScreenShouldSaveOrNot = false; // #24609 2011.3.14 yyagi + this.n最後に再生したHHのWAV番号 = -1; + this.n最後に再生したHHのチャンネル番号 = 0; + + for (int i = 0; i < 3; i++) + { + this.b新記録スキル[i] = false; + this.b新記録スコア[i] = false; + this.b新記録ランク[i] = false; + } + //--------------------- + #endregion + + #region [ 結果の計算 ] + //--------------------- + for (int i = 0; i < 3; i++) + { + this.nランク値[i] = -1; + this.fPerfect率[i] = this.fGreat率[i] = this.fGood率[i] = this.fPoor率[i] = this.fMiss率[i] = 0.0f; // #28500 2011.5.24 yyagi + if ((((i != 0) || (TJAPlayer3.DTX.bチップがある.Drums)))) + { + CScoreIni.C演奏記録 part = this.st演奏記録[i]; + bool bIsAutoPlay = true; + switch (i) + { + case 0: + bIsAutoPlay = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay; + break; + + case 1: + bIsAutoPlay = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay; + break; + + case 2: + bIsAutoPlay = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay; + break; + } + this.fPerfect率[i] = bIsAutoPlay ? 0f : ((100f * part.nPerfect数) / ((float)part.n全チップ数)); + this.fGreat率[i] = bIsAutoPlay ? 0f : ((100f * part.nGreat数) / ((float)part.n全チップ数)); + this.fGood率[i] = bIsAutoPlay ? 0f : ((100f * part.nGood数) / ((float)part.n全チップ数)); + this.fPoor率[i] = bIsAutoPlay ? 0f : ((100f * part.nPoor数) / ((float)part.n全チップ数)); + this.fMiss率[i] = bIsAutoPlay ? 0f : ((100f * part.nMiss数) / ((float)part.n全チップ数)); + this.bオート[i] = bIsAutoPlay; // #23596 10.11.16 add ikanick そのパートがオートなら1 + // 10.11.17 change (int to bool) ikanick + this.nランク値[i] = CScoreIni.tランク値を計算して返す(part); + } + } + this.n総合ランク値 = CScoreIni.t総合ランク値を計算して返す(this.st演奏記録.Drums, this.st演奏記録.Guitar, this.st演奏記録.Bass); + if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Dan && TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Tower) + { + this.nクリア = (this.st演奏記録.Drums.nMiss数 == 0 && this.st演奏記録.Drums.fゲージ == 100) ? this.st演奏記録.Drums.nGreat数 == 0 ? 3 : 2 : this.st演奏記録.Drums.fゲージ >= 80 ? 1 : 0; + + if (this.st演奏記録.Drums.nスコア < 500000) + { + this.nスコアランク = 0; + } + else + { + for (int i = 0; i < 7; i++) + { + if (this.st演奏記録.Drums.nスコア >= TJAPlayer3.stage演奏ドラム画面.ScoreRank.ScoreRank[i]) + { + this.nスコアランク = i + 1; + } + } + } + } + //--------------------- + #endregion + + #region [ .score.ini の作成と出力 ] + //--------------------- + string str = TJAPlayer3.DTX.strファイル名の絶対パス + ".score.ini"; + CScoreIni ini = new CScoreIni(str); + + bool[] b今までにフルコンボしたことがある = new bool[] { false, false, false }; + + // フルコンボチェックならびに新記録ランクチェックは、ini.Record[] が、スコアチェックや演奏型スキルチェックの IF 内で書き直されてしまうよりも前に行う。(2010.9.10) + + b今までにフルコンボしたことがある[0] = ini.stセクション[0].bフルコンボである | ini.stセクション[0].bフルコンボである; + + // #24459 上記の条件だと[HiSkill.***]でのランクしかチェックしていないので、BestRankと比較するよう変更。 + if (this.nランク値[0] >= 0 && ini.stファイル.BestRank[0] > this.nランク値[0]) // #24459 2011.3.1 yyagi update BestRank + { + this.b新記録ランク[0] = true; + ini.stファイル.BestRank[0] = this.nランク値[0]; + } + + // 新記録スコアチェック + if ((this.st演奏記録[0].nスコア > ini.stセクション[0].nスコア) && !TJAPlayer3.ConfigIni.b太鼓パートAutoPlay) + { + this.b新記録スコア[0] = true; + ini.stセクション[0] = this.st演奏記録[0]; + } + + if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Dan && TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Tower) + if (this.st演奏記録[0].nスコア > ini.stセクション[0].nスコア) + this.st演奏記録[0].nハイスコア[TJAPlayer3.stage選曲.n確定された曲の難易度[0]] = (int)st演奏記録[0].nスコア; + + // 新記録スキルチェック + if (this.st演奏記録[0].db演奏型スキル値 > ini.stセクション[0].db演奏型スキル値) + { + this.b新記録スキル[0] = true; + ini.stセクション[0] = this.st演奏記録[0]; + } + + if(TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Dan && TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Tower) + { + ini.stセクション[0].nクリア[TJAPlayer3.stage選曲.n確定された曲の難易度[0]] = this.nクリア; + ini.stセクション[0].nスコアランク[TJAPlayer3.stage選曲.n確定された曲の難易度[0]] = this.nスコアランク; + } + + // ラストプレイ #23595 2011.1.9 ikanick + // オートじゃなければプレイ結果を書き込む + if (TJAPlayer3.ConfigIni.b太鼓パートAutoPlay == false) + { + ini.stセクション[0] = this.st演奏記録[0]; + } + + // #23596 10.11.16 add ikanick オートじゃないならクリア回数を1増やす + // 11.02.05 bオート to t更新条件を取得する use ikanick + bool[] b更新が必要か否か = new bool[3]; + CScoreIni.t更新条件を取得する(out b更新が必要か否か[0], out b更新が必要か否か[1], out b更新が必要か否か[2]); + + if (b更新が必要か否か[0]) + { + ini.stファイル.ClearCountDrums++; + } + //---------------------------------------------------------------------/ + if (TJAPlayer3.ConfigIni.bScoreIniを出力する) + ini.t書き出し(str); + + //--------------------- + #endregion + + #region [ リザルト画面への演奏回数の更新 #24281 2011.1.30 yyagi] + if (TJAPlayer3.ConfigIni.bScoreIniを出力する) + { + this.n演奏回数.Drums = ini.stファイル.PlayCountDrums; + this.n演奏回数.Guitar = ini.stファイル.PlayCountGuitar; + this.n演奏回数.Bass = ini.stファイル.PlayCountBass; + } + #endregion + } + + // Discord Presenseの更新 + Discord.UpdatePresence(TJAPlayer3.DTX.TITLE + ".tja", Properties.Discord.Stage_Result + (TJAPlayer3.ConfigIni.b太鼓パートAutoPlay == true ? " (" + Properties.Discord.Info_IsAuto + ")" : ""), TJAPlayer3.StartupTime); + + base.On活性化(); + } + finally + { + Trace.TraceInformation("結果ステージの活性化を完了しました。"); + Trace.Unindent(); + } + } + public override void On非活性化() + { + if (this.rResultSound != null) + { + TJAPlayer3.Sound管理.tサウンドを破棄する(this.rResultSound); + this.rResultSound = null; + } + base.On非活性化(); + } + public override void OnManagedリソースの作成() + { + if (!base.b活性化してない) + { + b音声再生 = false; + this.EndAnime = false; + //this.tx背景 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\8_background.png" ) ); + //this.tx上部パネル = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\8_header.png" ) ); + //this.tx下部パネル = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\8_footer panel.png" ), true ); + //this.txオプションパネル = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\Screen option panels.png" ) ); + base.OnManagedリソースの作成(); + } + } + public override void OnManagedリソースの解放() + { + if (!base.b活性化してない) + { + if (this.ct登場用 != null) + { + this.ct登場用 = null; + } + //CDTXMania.tテクスチャの解放( ref this.tx背景 ); + //CDTXMania.tテクスチャの解放( ref this.tx上部パネル ); + //CDTXMania.tテクスチャの解放( ref this.tx下部パネル ); + //CDTXMania.tテクスチャの解放( ref this.txオプションパネル ); + base.OnManagedリソースの解放(); + } + } + public override int On進行描画() + { + if (!base.b活性化してない) + { + int num; + if (base.b初めての進行描画) + { + this.ct登場用 = new CCounter(0, 100, 5, TJAPlayer3.Timer); + this.actFI.tフェードイン開始(); + base.eフェーズID = CStage.Eフェーズ.共通_フェードイン; + if (this.rResultSound != null) + { + this.rResultSound.t再生を開始する(); + } + base.b初めての進行描画 = false; + } + this.bアニメが完了 = true; + if (this.ct登場用.b進行中) + { + this.ct登場用.t進行(); + if (this.ct登場用.b終了値に達した) + { + this.ct登場用.t停止(); + } + else + { + this.bアニメが完了 = false; + } + } + + // 描画 + + if (!b音声再生 && !TJAPlayer3.Skin.bgmリザルトイン音.b再生中) + { + TJAPlayer3.Skin.bgmリザルト音.t再生する(); + b音声再生 = true; + } + + if (TJAPlayer3.Tx.Result_Background != null) + { + + int CloudType = 0; + float MountainAppearValue = 2000 + (this.actParameterPanel.ctゲージアニメ.n終了値 * 66) + 8360 - 85; + + if (this.actParameterPanel.ct全体進行.n現在の値 >= MountainAppearValue) + { + #region [Mountain Bump] + + if (this.st演奏記録.Drums.fゲージ >= 80.0) + { + TJAPlayer3.Tx.Result_Background[1].Opacity = (this.actParameterPanel.ct全体進行.n現在の値 - (10275 + ((int)this.actParameterPanel.ctゲージアニメ.n終了値 * 66))) * 3; + TJAPlayer3.Tx.Result_Mountain[1].Opacity = (this.actParameterPanel.ct全体進行.n現在の値 - (10275 + ((int)this.actParameterPanel.ctゲージアニメ.n終了値 * 66))) * 3; + TJAPlayer3.Tx.Result_Mountain[0].Opacity = 255 - (this.actParameterPanel.ct全体進行.n現在の値 - (10275 + ((int)this.actParameterPanel.ctゲージアニメ.n終了値 * 66))) * 3; + + if (this.actParameterPanel.ctMountain_ClearIn.n現在の値 <= 90) + { + TJAPlayer3.Tx.Result_Mountain[1].vc拡大縮小倍率.Y = 1.0f - (float)Math.Sin((float)this.actParameterPanel.ctMountain_ClearIn.n現在の値 * (Math.PI / 180)) * 0.18f; + } + else if (this.actParameterPanel.ctMountain_ClearIn.n現在の値 <= 225) + { + TJAPlayer3.Tx.Result_Mountain[1].vc拡大縮小倍率.Y = 0.82f + (float)Math.Sin((float)(this.actParameterPanel.ctMountain_ClearIn.n現在の値 - 90) / 1.5f * (Math.PI / 180)) * 0.58f; + } + else if (this.actParameterPanel.ctMountain_ClearIn.n現在の値 <= 245) + { + TJAPlayer3.Tx.Result_Mountain[1].vc拡大縮小倍率.Y = 1.4f; + } + else if (this.actParameterPanel.ctMountain_ClearIn.n現在の値 <= 335) + { + TJAPlayer3.Tx.Result_Mountain[1].vc拡大縮小倍率.Y = 0.9f + (float)Math.Sin((float)(this.actParameterPanel.ctMountain_ClearIn.n現在の値 - 155) * (Math.PI / 180)) * 0.5f; + } + else if (this.actParameterPanel.ctMountain_ClearIn.n現在の値 <= 515) + { + TJAPlayer3.Tx.Result_Mountain[1].vc拡大縮小倍率.Y = 0.9f + (float)Math.Sin((float)(this.actParameterPanel.ctMountain_ClearIn.n現在の値 - 335) * (Math.PI / 180)) * 0.4f; + } + } + + #endregion + } + else + { + + TJAPlayer3.Tx.Result_Background[1].Opacity = 0; + TJAPlayer3.Tx.Result_Mountain[0].Opacity = 255; + TJAPlayer3.Tx.Result_Mountain[1].Opacity = 0; + } + + TJAPlayer3.Tx.Result_Background[0].t2D描画(TJAPlayer3.app.Device, 0, 0); + TJAPlayer3.Tx.Result_Background[1].t2D描画(TJAPlayer3.app.Device, 0, 0); + TJAPlayer3.Tx.Result_Mountain[0].t2D描画(TJAPlayer3.app.Device, 0, 0); + TJAPlayer3.Tx.Result_Mountain[1].t2D拡大率考慮下基準描画(TJAPlayer3.app.Device, 0, 720); + + #region [Background Clouds] + + if (this.st演奏記録.Drums.fゲージ >= 80.0 && this.actParameterPanel.ct全体進行.n現在の値 >= MountainAppearValue) + { + CloudType = Math.Min(255, Math.Max(0, (int)this.actParameterPanel.ct全体進行.n現在の値 - (int)MountainAppearValue)); + } + + for (int i = 10; i >= 0; i--) + { + int CurMoveRed = (int)((double)CloudMaxMove[i] * Math.Tanh((double)this.actParameterPanel.ct全体進行.n現在の値 / 10000)); + int CurMoveGold = (int)((double)CloudMaxMove[i] * Math.Tanh(Math.Max(0, (double)this.actParameterPanel.ct全体進行.n現在の値 - (double)MountainAppearValue) / 10000)); + + TJAPlayer3.Tx.Result_Cloud.vc拡大縮小倍率.X = 0.65f; + TJAPlayer3.Tx.Result_Cloud.vc拡大縮小倍率.Y = 0.65f; + TJAPlayer3.Tx.Result_Cloud.Opacity = CloudType; + + TJAPlayer3.Tx.Result_Cloud.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, CloudXPos[i] - CurMoveGold, CloudYPos[i], new Rectangle(i * 1200, 360, 1200, 360)); + + TJAPlayer3.Tx.Result_Cloud.Opacity = 255 - CloudType; + + TJAPlayer3.Tx.Result_Cloud.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, CloudXPos[i] - CurMoveRed, CloudYPos[i], new Rectangle(i * 1200, 0, 1200, 360)); + } + + #endregion + + } + + if (this.ct登場用.b進行中 && (TJAPlayer3.Tx.Result_Header != null)) + { + double num2 = ((double)this.ct登場用.n現在の値) / 100.0; + double num3 = Math.Sin(Math.PI / 2 * num2); + num = ((int)(TJAPlayer3.Tx.Result_Header.sz画像サイズ.Height * num3)) - TJAPlayer3.Tx.Result_Header.sz画像サイズ.Height; + } + else + { + num = 0; + } + if (!b音声再生 && !TJAPlayer3.Skin.bgmリザルトイン音.b再生中) + { + TJAPlayer3.Skin.bgmリザルト音.t再生する(); + b音声再生 = true; + } + + if (TJAPlayer3.Tx.Result_Header != null) + { + TJAPlayer3.Tx.Result_Header.t2D描画(TJAPlayer3.app.Device, 0, 0); + } + + if (this.actParameterPanel.On進行描画() == 0) + { + this.bアニメが完了 = false; + } + + if (this.actSongBar.On進行描画() == 0) + { + this.bアニメが完了 = false; + } + + #region ネームプレート + for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) + { + TJAPlayer3.NamePlate.tNamePlateDraw(28, 621, i); + } + #endregion + + if (base.eフェーズID == CStage.Eフェーズ.共通_フェードイン) + { + if (this.actFI.On進行描画() != 0) + { + base.eフェーズID = CStage.Eフェーズ.共通_通常状態; + } + } + else if ((base.eフェーズID == CStage.Eフェーズ.共通_フェードアウト)) //&& ( this.actFO.On進行描画() != 0 ) ) + { + return (int)this.eフェードアウト完了時の戻り値; + } + + #region [ #24609 2011.3.14 yyagi ランク更新or演奏型スキル更新時、リザルト画像をpngで保存する ] + if (this.bアニメが完了 == true && this.bIsCheckedWhetherResultScreenShouldSaveOrNot == false // #24609 2011.3.14 yyagi; to save result screen in case BestRank or HiSkill. + && TJAPlayer3.ConfigIni.bScoreIniを出力する + && TJAPlayer3.ConfigIni.bIsAutoResultCapture) // #25399 2011.6.9 yyagi + { + CheckAndSaveResultScreen(true); + this.bIsCheckedWhetherResultScreenShouldSaveOrNot = true; + } + #endregion + + // キー入力 + + if (TJAPlayer3.act現在入力を占有中のプラグイン == null) + { + if (base.eフェーズID == CStage.Eフェーズ.共通_通常状態) + { + if (TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.Escape)) + { + TJAPlayer3.Skin.bgmリザルト音.t停止する(); + TJAPlayer3.Skin.sound決定音.t再生する(); + actFI.tフェードアウト開始(); + t後処理(); + base.eフェーズID = CStage.Eフェーズ.共通_フェードアウト; + this.eフェードアウト完了時の戻り値 = E戻り値.完了; + } + if (((TJAPlayer3.Pad.b押されたDGB(Eパッド.CY) || TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RD)) || (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LC) || (TJAPlayer3.Pad.b押されたDGB(Eパッド.LRed) || (TJAPlayer3.Pad.b押されたDGB(Eパッド.RRed) || TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.Return)))))) + { + TJAPlayer3.Skin.sound決定音.t再生する(); + actFI.tフェードアウト開始(); + + if(TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Dan) + if (TJAPlayer3.stage選曲.r現在選択中の曲.r親ノード != null) + TJAPlayer3.stage選曲.act曲リスト.tBOXを出る(); + + t後処理(); + + { + base.eフェーズID = CStage.Eフェーズ.共通_フェードアウト; + this.eフェードアウト完了時の戻り値 = E戻り値.完了; + TJAPlayer3.Skin.bgmリザルト音.t停止する(); + TJAPlayer3.Skin.sound決定音.t再生する(); + } + } + } + } + } + return 0; + } + + public void t後処理() + { + if (!TJAPlayer3.ConfigIni.bAutoPlay[0]) + { + if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Dan && TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Tower) + { + if (nスコアランク != 0) + { + if (TJAPlayer3.stage選曲.r確定されたスコア.譜面情報.nスコアランク[TJAPlayer3.stage選曲.n確定された曲の難易度[0]] == 0) + { + TJAPlayer3.stage選曲.act曲リスト.ScoreRankCount[nスコアランク - 1] += 1; + } + else if (TJAPlayer3.stage選曲.r確定されたスコア.譜面情報.nスコアランク[TJAPlayer3.stage選曲.n確定された曲の難易度[0]] < nスコアランク) + { + TJAPlayer3.stage選曲.act曲リスト.ScoreRankCount[nスコアランク - 1] += 1; + TJAPlayer3.stage選曲.act曲リスト.ScoreRankCount[TJAPlayer3.stage選曲.r確定されたスコア.譜面情報.nスコアランク[TJAPlayer3.stage選曲.n確定された曲の難易度[0]] - 1] -= 1; + } + } + + if (nクリア != 0) + { + if (TJAPlayer3.stage選曲.r確定されたスコア.譜面情報.nクリア[TJAPlayer3.stage選曲.n確定された曲の難易度[0]] == 0) + { + TJAPlayer3.stage選曲.act曲リスト.CrownCount[nクリア - 1] += 1; + } + else if (TJAPlayer3.stage選曲.r確定されたスコア.譜面情報.nクリア[TJAPlayer3.stage選曲.n確定された曲の難易度[0]] < nクリア) + { + TJAPlayer3.stage選曲.act曲リスト.CrownCount[nクリア - 1] += 1; + TJAPlayer3.stage選曲.act曲リスト.CrownCount[TJAPlayer3.stage選曲.r確定されたスコア.譜面情報.nクリア[TJAPlayer3.stage選曲.n確定された曲の難易度[0]] - 1] -= 1; + } + + } + } + } + + if (!b最近遊んだ曲追加済み) + { + #region [ 選曲画面の譜面情報の更新 ] + //--------------------- + if (!TJAPlayer3.bコンパクトモード) + { + if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Dan && TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Tower) + { + Cスコア cスコア = TJAPlayer3.stage選曲.r確定されたスコア; + + if (cスコア.譜面情報.nクリア[TJAPlayer3.stage選曲.n確定された曲の難易度[0]] < nクリア) + cスコア.譜面情報.nクリア[TJAPlayer3.stage選曲.n確定された曲の難易度[0]] = this.nクリア; + + if (cスコア.譜面情報.nスコアランク[TJAPlayer3.stage選曲.n確定された曲の難易度[0]] < nスコアランク) + cスコア.譜面情報.nスコアランク[TJAPlayer3.stage選曲.n確定された曲の難易度[0]] = this.nスコアランク; + } + } + //--------------------- + #endregion + + foreach (var song in TJAPlayer3.Songs管理.list曲ルート) + { + if (song.strジャンル == "最近遊んだ曲" && song.eノード種別 == C曲リストノード.Eノード種別.BOX) + { + song.list子リスト.Add(TJAPlayer3.stage選曲.r確定された曲.Clone()); + + foreach (var song2 in song.list子リスト) + { + song2.r親ノード = song; + song2.strジャンル = "最近遊んだ曲"; + + if (song2.eノード種別 != C曲リストノード.Eノード種別.BACKBOX) + song2.BackColor = ColorTranslator.FromHtml("#164748"); + } + + if (song.list子リスト.Count >= 6) + { + song.list子リスト.RemoveAt(1); + } + } + } + + b最近遊んだ曲追加済み = true; + } + + } + + public enum E戻り値 : int + { + 継続, + 完了 + } + + // その他 + + #region [ private ] + //----------------- + + public bool b最近遊んだ曲追加済み; + public bool b音声再生; + public bool EndAnime; + + private CCounter ct登場用; + private E戻り値 eフェードアウト完了時の戻り値; + private CActFIFOResult actFI; + private CActFIFOBlack actFO; + private CActオプションパネル actOption; + private CActResultParameterPanel actParameterPanel; + + private CActResultRank actRank; + private CActResultImage actResultImage; + + private CActResultSongBar actSongBar; + private bool bアニメが完了; + private bool bIsCheckedWhetherResultScreenShouldSaveOrNot; // #24509 2011.3.14 yyagi + private readonly int[] nチャンネル0Atoレーン07; + private int n最後に再生したHHのWAV番号; + private int n最後に再生したHHのチャンネル番号; + private CSound rResultSound; + + // Cloud informations + private int[] CloudXPos = { 642, 612, 652, 1148, 1180, 112, 8, 1088, 1100, 32, 412 }; + private int[] CloudYPos = { 202, 424, 636, 530, 636, 636, 102, 52, 108, 326, 644 }; + private int[] CloudMaxMove = { 150, 120, 180, 60, 90, 150, 120, 50, 45, 120, 180 }; + + private CCounter ctAutoReturn; + //private CTexture txオプションパネル; + //private CTexture tx下部パネル; + //private CTexture tx上部パネル; + //private CTexture tx背景; + + #region [ #24609 リザルト画像をpngで保存する ] // #24609 2011.3.14 yyagi; to save result screen in case BestRank or HiSkill. + /// + /// リザルト画像のキャプチャと保存。 + /// 自動保存モード時は、ランク更新or演奏型スキル更新時に自動保存。 + /// 手動保存モード時は、ランクに依らず保存。 + /// + /// true=自動保存モード, false=手動保存モード + private void CheckAndSaveResultScreen(bool bIsAutoSave) + { + string path = Path.GetDirectoryName(TJAPlayer3.DTX.strファイル名の絶対パス); + string datetime = DateTime.Now.ToString("yyyyMMddHHmmss"); + if (bIsAutoSave) + { + // リザルト画像を自動保存するときは、dtxファイル名.yyMMddHHmmss_DRUMS_SS.png という形式で保存。 + for (int i = 0; i < 3; i++) + { + if (this.b新記録ランク[i] == true || this.b新記録スキル[i] == true) + { + string strPart = ((E楽器パート)(i)).ToString(); + string strRank = ((CScoreIni.ERANK)(this.nランク値[i])).ToString(); + string strFullPath = TJAPlayer3.DTX.strファイル名の絶対パス + "." + datetime + "_" + strPart + "_" + strRank + ".png"; + //Surface.ToFile( pSurface, strFullPath, ImageFileFormat.Png ); + TJAPlayer3.app.SaveResultScreen(strFullPath); + } + } + } + #region [ #24609 2011.4.11 yyagi; リザルトの手動保存ロジックは、CDTXManiaに移管した。] + // else + // { + // // リザルト画像を手動保存するときは、dtxファイル名.yyMMddHHmmss_SS.png という形式で保存。(楽器名無し) + // string strRank = ( (CScoreIni.ERANK) ( CDTXMania.stage結果.n総合ランク値 ) ).ToString(); + // string strSavePath = CDTXMania.strEXEのあるフォルダ + "\\" + "Capture_img"; + // if ( !Directory.Exists( strSavePath ) ) + // { + // try + // { + // Directory.CreateDirectory( strSavePath ); + // } + // catch + // { + // } + // } + // string strFullPath = strSavePath + "\\" + CDTXMania.DTX.TITLE + + // "." + datetime + "_" + strRank + ".png"; + // // Surface.ToFile( pSurface, strFullPath, ImageFileFormat.Png ); + // CDTXMania.app.SaveResultScreen( strFullPath ); + // } + #endregion + } + #endregion + //----------------- + #endregion + } +} diff --git a/TJAPlayer3/Stages/09.Ending/CStage終了.cs b/TJAPlayer3/Stages/09.Ending/CStage終了.cs new file mode 100644 index 00000000..19d8dd1f --- /dev/null +++ b/TJAPlayer3/Stages/09.Ending/CStage終了.cs @@ -0,0 +1,182 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Diagnostics; +using DirectShowLib; +using SlimDX; +using FDK; + +namespace TJAPlayer3 +{ + internal class CStage終了 : CStage + { + // コンストラクタ + + public CStage終了() + { + base.eステージID = CStage.Eステージ.終了; + base.eフェーズID = CStage.Eフェーズ.共通_通常状態; + base.b活性化してない = true; + } + + + // CStage 実装 + + public override void On活性化() + { + Trace.TraceInformation( "終了ステージを活性化します。" ); + Trace.Indent(); + try + { + this.ct時間稼ぎ = new CCounter(); + base.On活性化(); + } + finally + { + Trace.TraceInformation( "終了ステージの活性化を完了しました。" ); + Trace.Unindent(); + } + } + public override void On非活性化() + { + Trace.TraceInformation( "終了ステージを非活性化します。" ); + Trace.Indent(); + try + { + base.On非活性化(); + } + finally + { + Trace.TraceInformation( "終了ステージの非活性化を完了しました。" ); + Trace.Unindent(); + } + } + public override void OnManagedリソースの作成() + { + if( !base.b活性化してない ) + { + // this.tx文字 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\9_text.png" ) ); + // this.tx文字2 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\9_text.png" ) ); + // this.tx文字3 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\9_text.png" ) ); + //this.tx背景 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\9_background.jpg" ), false ); + // this.tx白 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\Tile white 64x64.png" ), false ); + // this.ds背景 = CDTXMania.t失敗してもスキップ可能なDirectShowを生成する( CSkin.Path( @"Graphics\9_background.mp4" ), CDTXMania.app.WindowHandle, true ); + base.OnManagedリソースの作成(); + } + } + public override void OnManagedリソースの解放() + { + if( !base.b活性化してない ) + { + //CDTXMania.tテクスチャの解放( ref this.tx背景 ); + // CDTXMania.tテクスチャの解放( ref this.tx文字 ); + // CDTXMania.tテクスチャの解放( ref this.tx文字2 ); + // CDTXMania.tテクスチャの解放( ref this.tx文字3 ); + // CDTXMania.tテクスチャの解放( ref this.tx白 ); + // CDTXMania.t安全にDisposeする( ref this.ds背景 ); + base.OnManagedリソースの解放(); + } + } + public override int On進行描画() + { + if( !TJAPlayer3.ConfigIni.bEndingAnime ) //2017.01.27 DD + { + return 1; + } + //if( this.ds背景 != null ) + //{ + // this.ds背景.t再生開始(); + + // this.ds背景.t現時点における最新のスナップイメージをTextureに転写する( this.tx背景 ); + //} + if( !base.b活性化してない ) + { + if( base.b初めての進行描画 ) + { + TJAPlayer3.Skin.soundゲーム終了音.t再生する(); + this.ct時間稼ぎ.t開始( 0, 3000, 1, TJAPlayer3.Timer ); + base.b初めての進行描画 = false; + } + + + this.ct時間稼ぎ.t進行(); + + if( TJAPlayer3.Tx.Exit_Background != null ) + { + //if( this.ds背景 != null ) + //{ + // if( this.ds背景.b上下反転 ) + // this.tx背景.t2D上下反転描画( CDTXMania.app.Device, 0, 0 ); + // else + // this.tx背景.t2D描画( CDTXMania.app.Device, 0, 0 ); + //} + //else + TJAPlayer3.Tx.Exit_Background.t2D描画( TJAPlayer3.app.Device, 0, 0 ); + } + + + // if( this.ct時間稼ぎ.n現在の値 < 2000 ) + // { + // if( this.tx文字 != null ) + // { + // this.tx文字2.fZ軸中心回転 = -0.8f; + // this.tx文字3.fZ軸中心回転 = ( -1.6f * ( this.ct時間稼ぎ.n現在の値 / 1280.0f ) ) >= -1.6f ? ( -1.6f * ( this.ct時間稼ぎ.n現在の値 / 1280.0f ) ) : -1.6f ; + // this.tx文字2.vc拡大縮小倍率 = new Vector3( 4.0f, 4.0f, 1.0f ); + // this.tx文字3.vc拡大縮小倍率 = new Vector3( 4.0f, 4.0f, 1.0f ); + + // this.tx文字2.t2D描画( CDTXMania.app.Device, 1100 - (int)( 1.30f * this.ct時間稼ぎ.n現在の値), 1600 - (int)( 1.6f * this.ct時間稼ぎ.n現在の値), new System.Drawing.Rectangle( 0, 0, 620, 92 ) ); + // this.tx文字3.t2D描画( CDTXMania.app.Device, -250 + (int)( 1.10f * this.ct時間稼ぎ.n現在の値), 1600 - (int)( 1.6f * this.ct時間稼ぎ.n現在の値), new System.Drawing.Rectangle( 0, 92, 620, 94 ) ); + // } + // } + // else + // { + + // if( this.tx文字 != null ) + // { + // this.tx文字2.fZ軸中心回転 = 0f; + // this.tx文字3.fZ軸中心回転 = 0f; + // this.tx文字2.vc拡大縮小倍率 = new Vector3( 1.3f, 1.3f, 1.0f ); + // this.tx文字3.vc拡大縮小倍率 = new Vector3( 1.3f, 1.3f, 1.0f ); + + // this.tx文字2.t2D描画( CDTXMania.app.Device, 480, 376, new System.Drawing.Rectangle( 0, 0, 620, 92 ) ); + // this.tx文字3.t2D描画( CDTXMania.app.Device, 500, 486, new System.Drawing.Rectangle( 0, 92, 620, 95 ) ); + // this.tx文字.t2D描画( CDTXMania.app.Device, 662, 613, new System.Drawing.Rectangle( 0, 187, 620, 44 ) ); + // } + + // if( this.tx白 != null ) + //{ + // this.tx白.n透明度 = ( 2255 + 300 ) - ( this.ct時間稼ぎ.n現在の値 ); + // for( int i = 0; i <= ( SampleFramework.GameWindowSize.Width / 64 ); i++ ) + // { + // for( int j = 0; j <= ( SampleFramework.GameWindowSize.Height / 64 ); j++ ) + // { + // this.tx白.t2D描画( CDTXMania.app.Device, i * 64, j * 64 ); + // } + // } + //} + // } + + if( this.ct時間稼ぎ.b終了値に達した && !TJAPlayer3.Skin.soundゲーム終了音.b再生中 ) + { + return 1; + } + } + return 0; + } + + + // その他 + + #region [ private ] + //----------------- + private CCounter ct時間稼ぎ; + //private CTexture tx背景; + // private CTexture tx文字; + // private CTexture tx文字2; + // private CTexture tx文字3; + // private CDirectShow ds背景; + // private CTexture tx白; + //----------------- + #endregion + } +} diff --git a/TJAPlayer3/Stages/10.ChangeSkin/CStageChangeSkin.cs b/TJAPlayer3/Stages/10.ChangeSkin/CStageChangeSkin.cs new file mode 100644 index 00000000..72081c6b --- /dev/null +++ b/TJAPlayer3/Stages/10.ChangeSkin/CStageChangeSkin.cs @@ -0,0 +1,104 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Diagnostics; +using System.Threading; +using System.IO; +using FDK; +using System.Runtime.Serialization.Formatters.Binary; + + +namespace TJAPlayer3 +{ + /// + /// box.defによるスキン変更時に一時的に遷移する、スキン画像の一切無いステージ。 + /// + internal class CStageChangeSkin : CStage + { + // コンストラクタ + + public CStageChangeSkin() + { + base.eステージID = CStage.Eステージ.ChangeSkin; + base.b活性化してない = true; + } + + + // CStage 実装 + + public override void On活性化() + { + Trace.TraceInformation( "スキン変更ステージを活性化します。" ); + Trace.Indent(); + try + { + base.On活性化(); + Trace.TraceInformation( "スキン変更ステージの活性化を完了しました。" ); + } + finally + { + Trace.Unindent(); + } + } + public override void On非活性化() + { + Trace.TraceInformation( "スキン変更ステージを非活性化します。" ); + Trace.Indent(); + try + { + base.On非活性化(); + Trace.TraceInformation( "スキン変更ステージの非活性化を完了しました。" ); + } + finally + { + Trace.Unindent(); + } + } + public override void OnManagedリソースの作成() + { + if( !base.b活性化してない ) + { + base.OnManagedリソースの作成(); + } + } + public override void OnManagedリソースの解放() + { + if( !base.b活性化してない ) + { + base.OnManagedリソースの解放(); + } + } + public override int On進行描画() + { + if( !base.b活性化してない ) + { + if ( base.b初めての進行描画 ) + { + base.b初めての進行描画 = false; + return 0; + } + + //スキン変更処理 + TJAPlayer3.app.RefleshSkin(); + + return 1; + } + return 0; + } + //public void tChangeSkinMain() + //{ + // Trace.TraceInformation( "スキン変更:" + CDTXMania.Skin.GetCurrentSkinSubfolderFullName( false ) ); + + // CDTXMania.act文字コンソール.On非活性化(); + + // CDTXMania.Skin.PrepareReloadSkin(); + // CDTXMania.Skin.ReloadSkin(); + + + // CDTXMania.Tx.DisposeTexture(); + // CDTXMania.Tx.LoadTexture(); + + // CDTXMania.act文字コンソール.On活性化(); + //} + } +} diff --git a/TJAPlayer3/Stages/CActDFPFont.cs b/TJAPlayer3/Stages/CActDFPFont.cs new file mode 100644 index 00000000..08167722 --- /dev/null +++ b/TJAPlayer3/Stages/CActDFPFont.cs @@ -0,0 +1,601 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Runtime.InteropServices; +using System.Drawing; +using SlimDX; +using FDK; + +namespace TJAPlayer3 +{ + internal class CActDFPFont : CActivity + { + // コンストラクタ + + public CActDFPFont() + { + ST文字領域[] st文字領域Array = new ST文字領域[ 0x5d+2 ]; + ST文字領域 st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域 = st文字領域94; + st文字領域.ch = ' '; + st文字領域.rc = new Rectangle( 10, 3, 13, 0x1b ); + st文字領域Array[ 0 ] = st文字領域; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域2 = st文字領域94; + st文字領域2.ch = '!'; + st文字領域2.rc = new Rectangle( 0x19, 3, 14, 0x1b ); + st文字領域Array[ 1 ] = st文字領域2; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域3 = st文字領域94; + st文字領域3.ch = '"'; + st文字領域3.rc = new Rectangle( 0x2c, 3, 0x11, 0x1b ); + st文字領域Array[ 2 ] = st文字領域3; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域4 = st文字領域94; + st文字領域4.ch = '#'; + st文字領域4.rc = new Rectangle( 0x40, 3, 0x18, 0x1b ); + st文字領域Array[ 3 ] = st文字領域4; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域5 = st文字領域94; + st文字領域5.ch = '$'; + st文字領域5.rc = new Rectangle( 90, 3, 0x15, 0x1b ); + st文字領域Array[ 4 ] = st文字領域5; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域6 = st文字領域94; + st文字領域6.ch = '%'; + st文字領域6.rc = new Rectangle( 0x71, 3, 0x1b, 0x1b ); + st文字領域Array[ 5 ] = st文字領域6; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域7 = st文字領域94; + st文字領域7.ch = '&'; + st文字領域7.rc = new Rectangle( 0x8e, 3, 0x18, 0x1b ); + st文字領域Array[ 6 ] = st文字領域7; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域8 = st文字領域94; + st文字領域8.ch = '\''; + st文字領域8.rc = new Rectangle( 0xab, 3, 11, 0x1b ); + st文字領域Array[ 7 ] = st文字領域8; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域9 = st文字領域94; + st文字領域9.ch = '('; + st文字領域9.rc = new Rectangle( 0xc0, 3, 0x10, 0x1b ); + st文字領域Array[ 8 ] = st文字領域9; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域10 = st文字領域94; + st文字領域10.ch = ')'; + st文字領域10.rc = new Rectangle( 0xd0, 3, 0x10, 0x1b ); + st文字領域Array[ 9 ] = st文字領域10; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域11 = st文字領域94; + st文字領域11.ch = '*'; + st文字領域11.rc = new Rectangle( 0xe2, 3, 0x15, 0x1b ); + st文字領域Array[ 10 ] = st文字領域11; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域12 = st文字領域94; + st文字領域12.ch = '+'; + st文字領域12.rc = new Rectangle( 2, 0x1f, 0x18, 0x1b ); + st文字領域Array[ 11 ] = st文字領域12; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域13 = st文字領域94; + st文字領域13.ch = ','; + st文字領域13.rc = new Rectangle( 0x1b, 0x1f, 11, 0x1b ); + st文字領域Array[ 12 ] = st文字領域13; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域14 = st文字領域94; + st文字領域14.ch = '-'; + st文字領域14.rc = new Rectangle( 0x29, 0x1f, 13, 0x1b ); + st文字領域Array[ 13 ] = st文字領域14; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域15 = st文字領域94; + st文字領域15.ch = '.'; + st文字領域15.rc = new Rectangle( 0x37, 0x1f, 11, 0x1b ); + st文字領域Array[ 14 ] = st文字領域15; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域16 = st文字領域94; + st文字領域16.ch = '/'; + st文字領域16.rc = new Rectangle( 0x44, 0x1f, 0x15, 0x1b ); + st文字領域Array[ 15 ] = st文字領域16; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域17 = st文字領域94; + st文字領域17.ch = '0'; + st文字領域17.rc = new Rectangle( 0x5b, 0x1f, 20, 0x1b ); + st文字領域Array[ 0x10 ] = st文字領域17; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域18 = st文字領域94; + st文字領域18.ch = '1'; + st文字領域18.rc = new Rectangle( 0x75, 0x1f, 14, 0x1b ); + st文字領域Array[ 0x11 ] = st文字領域18; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域19 = st文字領域94; + st文字領域19.ch = '2'; + st文字領域19.rc = new Rectangle( 0x86, 0x1f, 0x15, 0x1b ); + st文字領域Array[ 0x12 ] = st文字領域19; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域20 = st文字領域94; + st文字領域20.ch = '3'; + st文字領域20.rc = new Rectangle( 0x9d, 0x1f, 20, 0x1b ); + st文字領域Array[ 0x13 ] = st文字領域20; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域21 = st文字領域94; + st文字領域21.ch = '4'; + st文字領域21.rc = new Rectangle( 0xb3, 0x1f, 20, 0x1b ); + st文字領域Array[ 20 ] = st文字領域21; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域22 = st文字領域94; + st文字領域22.ch = '5'; + st文字領域22.rc = new Rectangle( 0xca, 0x1f, 0x13, 0x1b ); + st文字領域Array[ 0x15 ] = st文字領域22; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域23 = st文字領域94; + st文字領域23.ch = '6'; + st文字領域23.rc = new Rectangle( 0xe0, 0x1f, 20, 0x1b ); + st文字領域Array[ 0x16 ] = st文字領域23; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域24 = st文字領域94; + st文字領域24.ch = '7'; + st文字領域24.rc = new Rectangle( 4, 0x3b, 0x13, 0x1b ); + st文字領域Array[ 0x17 ] = st文字領域24; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域25 = st文字領域94; + st文字領域25.ch = '8'; + st文字領域25.rc = new Rectangle( 0x18, 0x3b, 20, 0x1b ); + st文字領域Array[ 0x18 ] = st文字領域25; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域26 = st文字領域94; + st文字領域26.ch = '9'; + st文字領域26.rc = new Rectangle( 0x2f, 0x3b, 0x13, 0x1b ); + st文字領域Array[ 0x19 ] = st文字領域26; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域27 = st文字領域94; + st文字領域27.ch = ':'; + st文字領域27.rc = new Rectangle( 0x44, 0x3b, 12, 0x1b ); + st文字領域Array[ 0x1a ] = st文字領域27; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域28 = st文字領域94; + st文字領域28.ch = ';'; + st文字領域28.rc = new Rectangle( 0x51, 0x3b, 13, 0x1b ); + st文字領域Array[ 0x1b ] = st文字領域28; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域29 = st文字領域94; + st文字領域29.ch = '<'; + st文字領域29.rc = new Rectangle( 0x60, 0x3b, 20, 0x1b ); + st文字領域Array[ 0x1c ] = st文字領域29; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域30 = st文字領域94; + st文字領域30.ch = '='; + st文字領域30.rc = new Rectangle( 0x74, 0x3b, 0x11, 0x1b ); + st文字領域Array[ 0x1d ] = st文字領域30; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域31 = st文字領域94; + st文字領域31.ch = '>'; + st文字領域31.rc = new Rectangle( 0x85, 0x3b, 20, 0x1b ); + st文字領域Array[ 30 ] = st文字領域31; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域32 = st文字領域94; + st文字領域32.ch = '?'; + st文字領域32.rc = new Rectangle( 0x9c, 0x3b, 20, 0x1b ); + st文字領域Array[ 0x1f ] = st文字領域32; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域33 = st文字領域94; + st文字領域33.ch = 'A'; + st文字領域33.rc = new Rectangle( 0xb1, 0x3b, 0x17, 0x1b ); + st文字領域Array[ 0x20 ] = st文字領域33; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域34 = st文字領域94; + st文字領域34.ch = 'B'; + st文字領域34.rc = new Rectangle( 0xcb, 0x3b, 0x15, 0x1b ); + st文字領域Array[ 0x21 ] = st文字領域34; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域35 = st文字領域94; + st文字領域35.ch = 'C'; + st文字領域35.rc = new Rectangle( 0xe3, 0x3b, 0x16, 0x1b ); + st文字領域Array[ 0x22 ] = st文字領域35; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域36 = st文字領域94; + st文字領域36.ch = 'D'; + st文字領域36.rc = new Rectangle( 2, 0x57, 0x16, 0x1b ); + st文字領域Array[ 0x23 ] = st文字領域36; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域37 = st文字領域94; + st文字領域37.ch = 'E'; + st文字領域37.rc = new Rectangle( 0x1a, 0x57, 0x16, 0x1b ); + st文字領域Array[ 0x24 ] = st文字領域37; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域38 = st文字領域94; + st文字領域38.ch = 'F'; + st文字領域38.rc = new Rectangle( 0x30, 0x57, 0x16, 0x1b ); + st文字領域Array[ 0x25 ] = st文字領域38; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域39 = st文字領域94; + st文字領域39.ch = 'G'; + st文字領域39.rc = new Rectangle( 0x48, 0x57, 0x16, 0x1b ); + st文字領域Array[ 0x26 ] = st文字領域39; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域40 = st文字領域94; + st文字領域40.ch = 'H'; + st文字領域40.rc = new Rectangle( 0x61, 0x57, 0x18, 0x1b ); + st文字領域Array[ 0x27 ] = st文字領域40; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域41 = st文字領域94; + st文字領域41.ch = 'I'; + st文字領域41.rc = new Rectangle( 0x7a, 0x57, 13, 0x1b ); + st文字領域Array[ 40 ] = st文字領域41; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域42 = st文字領域94; + st文字領域42.ch = 'J'; + st文字領域42.rc = new Rectangle( 0x88, 0x57, 20, 0x1b ); + st文字領域Array[ 0x29 ] = st文字領域42; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域43 = st文字領域94; + st文字領域43.ch = 'K'; + st文字領域43.rc = new Rectangle( 0x9d, 0x57, 0x18, 0x1b ); + st文字領域Array[ 0x2a ] = st文字領域43; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域44 = st文字領域94; + st文字領域44.ch = 'L'; + st文字領域44.rc = new Rectangle( 0xb7, 0x57, 20, 0x1b ); + st文字領域Array[ 0x2b ] = st文字領域44; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域45 = st文字領域94; + st文字領域45.ch = 'M'; + st文字領域45.rc = new Rectangle( 0xce, 0x57, 0x1a, 0x1b ); + st文字領域Array[ 0x2c ] = st文字領域45; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域46 = st文字領域94; + st文字領域46.ch = 'N'; + st文字領域46.rc = new Rectangle( 0xe9, 0x57, 0x17, 0x1b ); + st文字領域Array[ 0x2d ] = st文字領域46; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域47 = st文字領域94; + st文字領域47.ch = 'O'; + st文字領域47.rc = new Rectangle( 2, 0x73, 0x18, 0x1b ); + st文字領域Array[ 0x2e ] = st文字領域47; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域48 = st文字領域94; + st文字領域48.ch = 'P'; + st文字領域48.rc = new Rectangle( 0x1c, 0x73, 0x15, 0x1b ); + st文字領域Array[ 0x2f ] = st文字領域48; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域49 = st文字領域94; + st文字領域49.ch = 'Q'; + st文字領域49.rc = new Rectangle( 0x33, 0x73, 0x17, 0x1b ); + st文字領域Array[ 0x30 ] = st文字領域49; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域50 = st文字領域94; + st文字領域50.ch = 'R'; + st文字領域50.rc = new Rectangle( 0x4c, 0x73, 0x16, 0x1b ); + st文字領域Array[ 0x31 ] = st文字領域50; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域51 = st文字領域94; + st文字領域51.ch = 'S'; + st文字領域51.rc = new Rectangle( 100, 0x73, 0x15, 0x1b ); + st文字領域Array[ 50 ] = st文字領域51; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域52 = st文字領域94; + st文字領域52.ch = 'T'; + st文字領域52.rc = new Rectangle( 0x7c, 0x73, 0x16, 0x1b ); + st文字領域Array[ 0x33 ] = st文字領域52; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域53 = st文字領域94; + st文字領域53.ch = 'U'; + st文字領域53.rc = new Rectangle( 0x93, 0x73, 0x16, 0x1b ); + st文字領域Array[ 0x34 ] = st文字領域53; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域54 = st文字領域94; + st文字領域54.ch = 'V'; + st文字領域54.rc = new Rectangle( 0xad, 0x73, 0x16, 0x1b ); + st文字領域Array[ 0x35 ] = st文字領域54; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域55 = st文字領域94; + st文字領域55.ch = 'W'; + st文字領域55.rc = new Rectangle( 0xc5, 0x73, 0x1a, 0x1b ); + st文字領域Array[ 0x36 ] = st文字領域55; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域56 = st文字領域94; + st文字領域56.ch = 'X'; + st文字領域56.rc = new Rectangle( 0xe0, 0x73, 0x1a, 0x1b ); + st文字領域Array[ 0x37 ] = st文字領域56; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域57 = st文字領域94; + st文字領域57.ch = 'Y'; + st文字領域57.rc = new Rectangle( 4, 0x8f, 0x17, 0x1b ); + st文字領域Array[ 0x38 ] = st文字領域57; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域58 = st文字領域94; + st文字領域58.ch = 'Z'; + st文字領域58.rc = new Rectangle( 0x1b, 0x8f, 0x16, 0x1b ); + st文字領域Array[ 0x39 ] = st文字領域58; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域59 = st文字領域94; + st文字領域59.ch = '['; + st文字領域59.rc = new Rectangle( 0x31, 0x8f, 0x11, 0x1b ); + st文字領域Array[ 0x3a ] = st文字領域59; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域60 = st文字領域94; + st文字領域60.ch = '\\'; + st文字領域60.rc = new Rectangle( 0x42, 0x8f, 0x19, 0x1b ); + st文字領域Array[ 0x3b ] = st文字領域60; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域61 = st文字領域94; + st文字領域61.ch = ']'; + st文字領域61.rc = new Rectangle( 0x5c, 0x8f, 0x11, 0x1b ); + st文字領域Array[ 60 ] = st文字領域61; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域62 = st文字領域94; + st文字領域62.ch = '^'; + st文字領域62.rc = new Rectangle( 0x71, 0x8f, 0x10, 0x1b ); + st文字領域Array[ 0x3d ] = st文字領域62; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域63 = st文字領域94; + st文字領域63.ch = '_'; + st文字領域63.rc = new Rectangle( 0x81, 0x8f, 0x13, 0x1b ); + st文字領域Array[ 0x3e ] = st文字領域63; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域64 = st文字領域94; + st文字領域64.ch = 'a'; + st文字領域64.rc = new Rectangle( 150, 0x8f, 0x13, 0x1b ); + st文字領域Array[ 0x3f ] = st文字領域64; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域65 = st文字領域94; + st文字領域65.ch = 'b'; + st文字領域65.rc = new Rectangle( 0xac, 0x8f, 20, 0x1b ); + st文字領域Array[ 0x40 ] = st文字領域65; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域66 = st文字領域94; + st文字領域66.ch = 'c'; + st文字領域66.rc = new Rectangle( 0xc3, 0x8f, 0x12, 0x1b ); + st文字領域Array[ 0x41 ] = st文字領域66; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域67 = st文字領域94; + st文字領域67.ch = 'd'; + st文字領域67.rc = new Rectangle( 0xd8, 0x8f, 0x15, 0x1b ); + st文字領域Array[ 0x42 ] = st文字領域67; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域68 = st文字領域94; + st文字領域68.ch = 'e'; + st文字領域68.rc = new Rectangle( 2, 0xab, 0x13, 0x1b ); + st文字領域Array[ 0x43 ] = st文字領域68; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域69 = st文字領域94; + st文字領域69.ch = 'f'; + st文字領域69.rc = new Rectangle( 0x17, 0xab, 0x11, 0x1b ); + st文字領域Array[ 0x44 ] = st文字領域69; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域70 = st文字領域94; + st文字領域70.ch = 'g'; + st文字領域70.rc = new Rectangle( 40, 0xab, 0x15, 0x1b ); + st文字領域Array[ 0x45 ] = st文字領域70; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域71 = st文字領域94; + st文字領域71.ch = 'h'; + st文字領域71.rc = new Rectangle( 0x3f, 0xab, 20, 0x1b ); + st文字領域Array[ 70 ] = st文字領域71; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域72 = st文字領域94; + st文字領域72.ch = 'i'; + st文字領域72.rc = new Rectangle( 0x55, 0xab, 13, 0x1b ); + st文字領域Array[ 0x47 ] = st文字領域72; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域73 = st文字領域94; + st文字領域73.ch = 'j'; + st文字領域73.rc = new Rectangle( 0x62, 0xab, 0x10, 0x1b ); + st文字領域Array[ 0x48 ] = st文字領域73; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域74 = st文字領域94; + st文字領域74.ch = 'k'; + st文字領域74.rc = new Rectangle( 0x74, 0xab, 20, 0x1b ); + st文字領域Array[ 0x49 ] = st文字領域74; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域75 = st文字領域94; + st文字領域75.ch = 'l'; + st文字領域75.rc = new Rectangle( 0x8a, 0xab, 13, 0x1b ); + st文字領域Array[ 0x4a ] = st文字領域75; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域76 = st文字領域94; + st文字領域76.ch = 'm'; + st文字領域76.rc = new Rectangle( 0x98, 0xab, 0x1a, 0x1b ); + st文字領域Array[ 0x4b ] = st文字領域76; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域77 = st文字領域94; + st文字領域77.ch = 'n'; + st文字領域77.rc = new Rectangle( 0xb5, 0xab, 20, 0x1b ); + st文字領域Array[ 0x4c ] = st文字領域77; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域78 = st文字領域94; + st文字領域78.ch = 'o'; + st文字領域78.rc = new Rectangle( 0xcc, 0xab, 0x13, 0x1b ); + st文字領域Array[ 0x4d ] = st文字領域78; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域79 = st文字領域94; + st文字領域79.ch = 'p'; + st文字領域79.rc = new Rectangle( 0xe1, 0xab, 0x15, 0x1b ); + st文字領域Array[ 0x4e ] = st文字領域79; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域80 = st文字領域94; + st文字領域80.ch = 'q'; + st文字領域80.rc = new Rectangle( 2, 0xc7, 20, 0x1b ); + st文字領域Array[ 0x4f ] = st文字領域80; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域81 = st文字領域94; + st文字領域81.ch = 'r'; + st文字領域81.rc = new Rectangle( 0x18, 0xc7, 0x12, 0x1b ); + st文字領域Array[ 80 ] = st文字領域81; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域82 = st文字領域94; + st文字領域82.ch = 's'; + st文字領域82.rc = new Rectangle( 0x2a, 0xc7, 0x13, 0x1b ); + st文字領域Array[ 0x51 ] = st文字領域82; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域83 = st文字領域94; + st文字領域83.ch = 't'; + st文字領域83.rc = new Rectangle( 0x3f, 0xc7, 0x10, 0x1b ); + st文字領域Array[ 0x52 ] = st文字領域83; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域84 = st文字領域94; + st文字領域84.ch = 'u'; + st文字領域84.rc = new Rectangle( 80, 0xc7, 20, 0x1b ); + st文字領域Array[ 0x53 ] = st文字領域84; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域85 = st文字領域94; + st文字領域85.ch = 'v'; + st文字領域85.rc = new Rectangle( 0x68, 0xc7, 20, 0x1b ); + st文字領域Array[ 0x54 ] = st文字領域85; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域86 = st文字領域94; + st文字領域86.ch = 'w'; + st文字領域86.rc = new Rectangle( 0x7f, 0xc7, 0x1a, 0x1b ); + st文字領域Array[ 0x55 ] = st文字領域86; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域87 = st文字領域94; + st文字領域87.ch = 'x'; + st文字領域87.rc = new Rectangle( 0x9a, 0xc7, 0x16, 0x1b ); + st文字領域Array[ 0x56 ] = st文字領域87; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域88 = st文字領域94; + st文字領域88.ch = 'y'; + st文字領域88.rc = new Rectangle( 0xb1, 0xc7, 0x16, 0x1b ); + st文字領域Array[ 0x57 ] = st文字領域88; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域89 = st文字領域94; + st文字領域89.ch = 'z'; + st文字領域89.rc = new Rectangle( 200, 0xc7, 0x13, 0x1b ); + st文字領域Array[ 0x58 ] = st文字領域89; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域90 = st文字領域94; + st文字領域90.ch = '{'; + st文字領域90.rc = new Rectangle( 220, 0xc7, 15, 0x1b ); + st文字領域Array[ 0x59 ] = st文字領域90; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域91 = st文字領域94; + st文字領域91.ch = '|'; + st文字領域91.rc = new Rectangle( 0xeb, 0xc7, 13, 0x1b ); + st文字領域Array[ 90 ] = st文字領域91; + st文字領域94 = new ST文字領域(); + ST文字領域 st文字領域92 = st文字領域94; + st文字領域92.ch = '}'; + st文字領域92.rc = new Rectangle( 1, 0xe3, 15, 0x1b ); + st文字領域Array[ 0x5b ] = st文字領域92; + ST文字領域 st文字領域93 = new ST文字領域(); + st文字領域93.ch = '~'; + st文字領域93.rc = new Rectangle( 0x12, 0xe3, 0x12, 0x1b ); + st文字領域Array[ 0x5c ] = st文字領域93; + + st文字領域Array[ 0x5d ] = new ST文字領域(); // #24954 2011.4.23 yyagi + st文字領域Array[ 0x5d ].ch = '@'; + st文字領域Array[ 0x5d ].rc = new Rectangle( 38, 227, 28, 28 ); + st文字領域Array[ 0x5e ] = new ST文字領域(); + st文字領域Array[ 0x5e ].ch = '`'; + st文字領域Array[ 0x5e ].rc = new Rectangle( 69, 226, 14, 29 ); + + + this.st文字領域 = st文字領域Array; + } + + + // メソッド + + public int n文字列長dot( string str ) + { + return this.n文字列長dot( str, 1f ); + } + public int n文字列長dot( string str, float fScale ) + { + if( string.IsNullOrEmpty( str ) ) + { + return 0; + } + int num = 0; + foreach( char ch in str ) + { + foreach( ST文字領域 st文字領域 in this.st文字領域 ) + { + if( st文字領域.ch == ch ) + { + num += (int) ( ( st文字領域.rc.Width - 5 ) * fScale ); + break; + } + } + } + return num; + } + public void t文字列描画( int x, int y, string str ) + { + this.t文字列描画( x, y, str, false, 1f ); + } + public void t文字列描画( int x, int y, string str, bool b強調 ) + { + this.t文字列描画( x, y, str, b強調, 1f ); + } + public void t文字列描画( int x, int y, string str, bool b強調, float fScale ) + { + if( !base.b活性化してない && !string.IsNullOrEmpty( str ) ) + { + CTexture texture = b強調 ? TJAPlayer3.Tx.Config_Font_Bold : TJAPlayer3.Tx.Config_Font; + if( texture != null ) + { + texture.vc拡大縮小倍率 = new Vector3( fScale, fScale, 1f ); + foreach( char ch in str ) + { + foreach( ST文字領域 st文字領域 in this.st文字領域 ) + { + if( st文字領域.ch == ch ) + { + texture.t2D描画( TJAPlayer3.app.Device, x, y, st文字領域.rc ); + x += (int) ( ( st文字領域.rc.Width - 5 ) * fScale ); + break; + } + } + } + } + } + } + + + // CActivity 実装 + + public override void OnManagedリソースの作成() + { + if( !base.b活性化してない ) + { + //this.tx通常文字 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\Screen font dfp.png" ), false ); + //this.tx強調文字 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\Screen font dfp em.png" ), false ); + base.OnManagedリソースの作成(); + } + } + public override void OnManagedリソースの解放() + { + //if( !base.b活性化してない ) + //{ + // if( this.tx強調文字 != null ) + // { + // this.tx強調文字.Dispose(); + // this.tx強調文字 = null; + // } + // if( this.tx通常文字 != null ) + // { + // this.tx通常文字.Dispose(); + // this.tx通常文字 = null; + // } + base.OnManagedリソースの解放(); + //} + } + + + // その他 + + #region [ private ] + //----------------- + [StructLayout( LayoutKind.Sequential )] + private struct ST文字領域 + { + public char ch; + public Rectangle rc; + } + + private readonly ST文字領域[] st文字領域; + //private CTexture tx強調文字; + //private CTexture tx通常文字; + //----------------- + #endregion + } +} diff --git a/TJAPlayer3/Stages/CActFIFOBlack.cs b/TJAPlayer3/Stages/CActFIFOBlack.cs new file mode 100644 index 00000000..e168a5c7 --- /dev/null +++ b/TJAPlayer3/Stages/CActFIFOBlack.cs @@ -0,0 +1,81 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Drawing; +using System.Diagnostics; +using FDK; + +namespace TJAPlayer3 +{ + internal class CActFIFOBlack : CActivity + { + // メソッド + + public void tフェードアウト開始(int start = 0, int end = 100, int interval = 5) + { + this.mode = EFIFOモード.フェードアウト; + this.counter = new CCounter(start, end, interval, TJAPlayer3.Timer ); + } + public void tフェードイン開始(int start = 0, int end = 100, int interval = 5) + { + this.mode = EFIFOモード.フェードイン; + this.counter = new CCounter(start, end, interval, TJAPlayer3.Timer ); + } + + + // CActivity 実装 + + public override void On非活性化() + { + if( !base.b活性化してない ) + { + //CDTXMania.tテクスチャの解放( ref this.tx黒タイル64x64 ); + base.On非活性化(); + } + } + public override void OnManagedリソースの作成() + { + if( !base.b活性化してない ) + { + //this.tx黒タイル64x64 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\Tile black 64x64.png" ), false ); + base.OnManagedリソースの作成(); + } + } + public override int On進行描画() + { + if( base.b活性化してない || ( this.counter == null ) ) + { + return 0; + } + this.counter.t進行(); + // Size clientSize = CDTXMania.app.Window.ClientSize; // #23510 2010.10.31 yyagi: delete as of no one use this any longer. + if (TJAPlayer3.Tx.Tile_Black != null) + { + TJAPlayer3.Tx.Tile_Black.Opacity = ( this.mode == EFIFOモード.フェードイン ) ? ( ( ( 100 - this.counter.n現在の値 ) * 0xff ) / 100 ) : ( ( this.counter.n現在の値 * 0xff ) / 100 ); + for (int i = 0; i <= (SampleFramework.GameWindowSize.Width / 64); i++) // #23510 2010.10.31 yyagi: change "clientSize.Width" to "640" to fix FIFO drawing size + { + for (int j = 0; j <= (SampleFramework.GameWindowSize.Height / 64); j++) // #23510 2010.10.31 yyagi: change "clientSize.Height" to "480" to fix FIFO drawing size + { + TJAPlayer3.Tx.Tile_Black.t2D描画( TJAPlayer3.app.Device, i * 64, j * 64 ); + } + } + } + if( this.counter.n現在の値 != this.counter.n終了値 ) + { + return 0; + } + return 1; + } + + + // その他 + + #region [ private ] + //----------------- + private CCounter counter; + private EFIFOモード mode; + //private CTexture tx黒タイル64x64; + //----------------- + #endregion + } +} diff --git a/TJAPlayer3/Stages/CActFIFOResult.cs b/TJAPlayer3/Stages/CActFIFOResult.cs new file mode 100644 index 00000000..acde502d --- /dev/null +++ b/TJAPlayer3/Stages/CActFIFOResult.cs @@ -0,0 +1,110 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Drawing; +using System.Diagnostics; +using FDK; + +namespace TJAPlayer3 +{ + internal class CActFIFOResult : CActivity + { + // メソッド + + public void tフェードアウト開始() + { + this.mode = EFIFOモード.フェードアウト; + this.counter = new CCounter(0, 100, 30, TJAPlayer3.Timer); + } + public void tフェードイン開始() + { + this.mode = EFIFOモード.フェードイン; + this.counter = new CCounter(0, 300, 2, TJAPlayer3.Timer); + } + public void tフェードイン完了() + { + this.counter.n現在の値 = (int)counter.n開始値; + } + + + // CActivity 実装 + + public override void On非活性化() + { + if (!base.b活性化してない) + { + //CDTXMania.tテクスチャの解放( ref this.tx黒タイル64x64 ); + base.On非活性化(); + } + } + public override void OnManagedリソースの作成() + { + if (!base.b活性化してない) + { + //this.tx黒タイル64x64 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\Tile black 64x64.png" ), false ); + base.OnManagedリソースの作成(); + } + } + public override int On進行描画() + { + if (base.b活性化してない || (this.counter == null)) + { + return 0; + } + this.counter.t進行(); + // Size clientSize = CDTXMania.app.Window.ClientSize; // #23510 2010.10.31 yyagi: delete as of no one use this any longer. + if (TJAPlayer3.Tx.Tile_Black != null) + { + if (this.mode == EFIFOモード.フェードイン) + { + if (counter.n現在の値 >= 200) + { + TJAPlayer3.Tx.Tile_Black.Opacity = (((100 - (this.counter.n現在の値 - 200)) * 0xff) / 100); + } + else + { + TJAPlayer3.Tx.Tile_Black.Opacity = 255; + } + } + else + { + TJAPlayer3.Tx.Tile_Black.Opacity = (((this.counter.n現在の値) * 0xff) / 100); + } + + for (int i = 0; i <= (SampleFramework.GameWindowSize.Width / 64); i++) // #23510 2010.10.31 yyagi: change "clientSize.Width" to "640" to fix FIFO drawing size + { + for (int j = 0; j <= (SampleFramework.GameWindowSize.Height / 64); j++) // #23510 2010.10.31 yyagi: change "clientSize.Height" to "480" to fix FIFO drawing size + { + TJAPlayer3.Tx.Tile_Black.t2D描画(TJAPlayer3.app.Device, i * 64, j * 64); + } + } + } + if (this.mode == EFIFOモード.フェードアウト) + { + if (this.counter.n現在の値 != 100) + { + return 0; + } + } + else + { + if (this.counter.n現在の値 != 300) + { + return 0; + } + } + return 1; + } + + + // その他 + + #region [ private ] + //----------------- + private CCounter counter; + private EFIFOモード mode; + //private CTexture tx黒タイル64x64; + //----------------- + #endregion + } +} diff --git a/TJAPlayer3/Stages/CActFIFOStart.cs b/TJAPlayer3/Stages/CActFIFOStart.cs new file mode 100644 index 00000000..d5bbb084 --- /dev/null +++ b/TJAPlayer3/Stages/CActFIFOStart.cs @@ -0,0 +1,213 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Drawing; +using FDK; + +namespace TJAPlayer3 +{ + internal class CActFIFOStart : CActivity + { + // メソッド + + public void tフェードアウト開始() + { + this.mode = EFIFOモード.フェードアウト; + + TJAPlayer3.Skin.soundDanSelectBGM.t停止する(); + if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan) + this.counter = new CCounter(0, 1255, 1, TJAPlayer3.Timer); + else + this.counter = new CCounter(0, 3580, 1, TJAPlayer3.Timer); + } + public void tフェードイン開始() + { + this.mode = EFIFOモード.フェードイン; + + if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan) + { + this.counter = new CCounter(0, 255, 1, TJAPlayer3.Timer); + + TJAPlayer3.stage演奏ドラム画面.actDan.Start(TJAPlayer3.stage演奏ドラム画面.ListDan_Number); + TJAPlayer3.stage演奏ドラム画面.ListDan_Number++; + } + else + this.counter = new CCounter(0, 3580, 1, TJAPlayer3.Timer); + } + public void tフェードイン完了() // #25406 2011.6.9 yyagi + { + this.counter.n現在の値 = (int)this.counter.n終了値; + } + + // CActivity 実装 + + public override void On非活性化() + { + if (!base.b活性化してない) + { + //CDTXMania.tテクスチャの解放( ref this.tx幕 ); + base.On非活性化(); + } + } + public override void OnManagedリソースの作成() + { + if (!base.b活性化してない) + { + //this.tx幕 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\6_FO.png" ) ); + // this.tx幕2 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\6_FI.png" ) ); + base.OnManagedリソースの作成(); + } + } + public override int On進行描画() + { + if (base.b活性化してない || (this.counter == null)) + { + return 0; + } + this.counter.t進行(); + + if(TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan) + { + if (TJAPlayer3.Tx.Tile_Black != null) + { + TJAPlayer3.Tx.Tile_Black.Opacity = this.mode == EFIFOモード.フェードアウト ? -1000 + counter.n現在の値 : 255 - counter.n現在の値; + for (int i = 0; i <= (SampleFramework.GameWindowSize.Width / 64); i++) // #23510 2010.10.31 yyagi: change "clientSize.Width" to "640" to fix FIFO drawing size + { + for (int j = 0; j <= (SampleFramework.GameWindowSize.Height / 64); j++) // #23510 2010.10.31 yyagi: change "clientSize.Height" to "480" to fix FIFO drawing size + { + TJAPlayer3.Tx.Tile_Black.t2D描画(TJAPlayer3.app.Device, i * 64, j * 64); + } + } + } + } + else + { + if (this.mode == EFIFOモード.フェードアウト) + { + if (TJAPlayer3.Tx.SongLoading_Fade != null) + { + // 曲開始幕アニメ。 + // 地味に横の拡大率が変動しているのが一番厄介... + var time = this.counter.n現在の値 >= 2580 ? this.counter.n現在の値 - 2580 : 0; + var FadeValue = (time - 670f) / 330.0f; + if (FadeValue >= 1.0) FadeValue = 1.0f; else if (FadeValue <= 0.0) FadeValue = 0.0f; + + DrawBack(time < 500.0 ? TJAPlayer3.Tx.SongLoading_Fade : TJAPlayer3.Tx.SongLoading_Bg, time, 0, 500.0, false); + DrawStar(FadeValue * 255f); + DrawPlate(FadeValue * 255f, FadeValue); + DrawChara(time, (time - 730f) * (255f / 270f)); + } + + } + else + { + if (TJAPlayer3.Tx.SongLoading_Fade != null) + { + // 曲開始幕アニメ。 + // 地味に横の拡大率が変動しているのが一番厄介... + var time = this.counter.n現在の値; + var FadeValue = time / 140f; + if (FadeValue >= 1.0) FadeValue = 1.0f; else if (FadeValue <= 0.0) FadeValue = 0.0f; + + DrawBack(time < 300.0 ? TJAPlayer3.Tx.SongLoading_Bg : TJAPlayer3.Tx.SongLoading_Fade, time, 300.0, 500.0, true); + DrawStar(255f - (FadeValue * 255f)); + DrawPlate(255f - (FadeValue * 255f), 1f + (FadeValue * 0.5f), 1f - FadeValue); + DrawChara(time, (time <= 80.0 ? 255 : 255f - (float)((Math.Pow((time - 80f), 1.5f) / Math.Pow(220f, 1.5f)) * 255f)), 250f, (time <= 80.0 ? ((time / 80f) * 30f) : 30f - (float)((Math.Pow((time - 80f), 1.5f) / Math.Pow(220f, 1.5f)) * 320f))); + } + } + } + + if (this.mode == EFIFOモード.フェードアウト) + { + if (this.counter.n現在の値 != this.counter.n終了値) + { + return 0; + } + } + else if (this.mode == EFIFOモード.フェードイン) + { + if (this.counter.n現在の値 != this.counter.n終了値) + { + return 0; + } + } + return 1; + } + + public void DrawBack(CTexture ShowTex, double time, double max, double end, bool IsExit) + { + if (ShowTex == null) return; + if (time - max >= end) time = end + max; + + var SizeXHarf = ShowTex.szテクスチャサイズ.Width / 2f; + var SizeY = ShowTex.szテクスチャサイズ.Height; + var StartScaleX = 0.5f; + var ScaleX = (float)((IsExit ? 1f - StartScaleX : 0f) - ((time >= max ? (time - max) : 0) * ((1f - StartScaleX) / end))) * (IsExit ? 1f : -1f); + var Value = (float)((IsExit ? 1f : 0f) - ((time >= max ? (time - max) : 0) * (1f / end))) * (IsExit ? 1f : -1f); + + ShowTex.vc拡大縮小倍率.X = StartScaleX + ScaleX; + ShowTex.t2D描画(TJAPlayer3.app.Device, -(SizeXHarf * StartScaleX) + (Value * (SizeXHarf * StartScaleX)), 0, new RectangleF(0, 0, SizeXHarf, SizeY)); + ShowTex.t2D描画(TJAPlayer3.app.Device, (SizeXHarf + (SizeXHarf * StartScaleX)) - (Value * (SizeXHarf * StartScaleX)) + ((1f - ShowTex.vc拡大縮小倍率.X) * SizeXHarf), 0, new RectangleF(SizeXHarf, 0, SizeXHarf, SizeY)); + + } + /// + /// キラキラ✨ + /// + /// + public void DrawStar(float opacity) + { + if (TJAPlayer3.Tx.SongLoading_BgWait is null) return; + + TJAPlayer3.Tx.SongLoading_BgWait.Opacity = (int)opacity; + TJAPlayer3.Tx.SongLoading_BgWait.t2D描画(TJAPlayer3.app.Device, 0, 0); + } + + /// + /// 横に伸びるプレートを描画 + /// + /// + /// + public void DrawPlate(float opacity, float scaleX, float scaleY = 1f) + { + if (TJAPlayer3.Tx.SongLoading_Plate is null) return; + var SizeX_Harf = TJAPlayer3.Tx.SongLoading_Plate.szテクスチャサイズ.Width / 2.0f; + var SizeY_Harf = TJAPlayer3.Tx.SongLoading_Plate.szテクスチャサイズ.Height / 2.0f; + + TJAPlayer3.Tx.SongLoading_Plate.Opacity = (int)opacity; + TJAPlayer3.Tx.SongLoading_Plate.vc拡大縮小倍率.X = scaleX; + TJAPlayer3.Tx.SongLoading_Plate.vc拡大縮小倍率.Y = scaleY; + TJAPlayer3.Tx.SongLoading_Plate.t2D描画(TJAPlayer3.app.Device, SizeX_Harf - (SizeX_Harf * scaleX) + (1280.0f / 2.0f) - SizeX_Harf, TJAPlayer3.Skin.SongLoading_Plate_Y - SizeY_Harf + ((1f - scaleY) * SizeY_Harf)); + } + + public void DrawChara(double time, float opacity, float X = -1, float Y = -1) + { + if (TJAPlayer3.Tx.SongLoading_Plate is null || (X == -1 && Y == -1 ? time <= 680 : false)) return; + var SizeXHarf = TJAPlayer3.Tx.SongLoading_Chara.szテクスチャサイズ.Width / 2f; + var SizeY = TJAPlayer3.Tx.SongLoading_Chara.szテクスチャサイズ.Height; + + if (X == -1 && Y == -1) + { + Y = -(float)(Math.Sin((time - 680f) * (Math.PI / 320.0)) * 80f); + X = (float)((time - 680f) / 320.0) * 250f; + } + + TJAPlayer3.Tx.SongLoading_Chara.Opacity = (int)opacity; + //左どんちゃん + TJAPlayer3.Tx.SongLoading_Chara.t2D描画(TJAPlayer3.app.Device, -250f + X, Y, new RectangleF(0, 0, SizeXHarf, SizeY)); + //左どんちゃん + TJAPlayer3.Tx.SongLoading_Chara.t2D描画(TJAPlayer3.app.Device, SizeXHarf + 250f - X, Y, new RectangleF(SizeXHarf, 0, SizeXHarf, SizeY)); + } + + // その他 + + #region [ private ] + //----------------- + private CCounter counter; + private CCounter ct待機; + private EFIFOモード mode; + //private CTexture tx幕; + //private CTexture tx幕2; + //----------------- + #endregion + } +} \ No newline at end of file diff --git a/TJAPlayer3/Stages/CActFIFOWhite.cs b/TJAPlayer3/Stages/CActFIFOWhite.cs new file mode 100644 index 00000000..edb386ca --- /dev/null +++ b/TJAPlayer3/Stages/CActFIFOWhite.cs @@ -0,0 +1,84 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Drawing; +using FDK; + +namespace TJAPlayer3 +{ + internal class CActFIFOWhite : CActivity + { + // メソッド + + public void tフェードアウト開始() + { + this.mode = EFIFOモード.フェードアウト; + this.counter = new CCounter( 0, 100, 3, TJAPlayer3.Timer ); + } + public void tフェードイン開始() + { + this.mode = EFIFOモード.フェードイン; + this.counter = new CCounter( 0, 100, 3, TJAPlayer3.Timer ); + } + public void tフェードイン完了() // #25406 2011.6.9 yyagi + { + this.counter.n現在の値 = (int)this.counter.n終了値; + } + + // CActivity 実装 + + public override void On非活性化() + { + if( !base.b活性化してない ) + { + //CDTXMania.tテクスチャの解放( ref this.tx白タイル64x64 ); + base.On非活性化(); + } + } + public override void OnManagedリソースの作成() + { + if( !base.b活性化してない ) + { + //this.tx白タイル64x64 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\Tile white 64x64.png" ), false ); + base.OnManagedリソースの作成(); + } + } + public override int On進行描画() + { + if( base.b活性化してない || ( this.counter == null ) ) + { + return 0; + } + this.counter.t進行(); + + // Size clientSize = CDTXMania.app.Window.ClientSize; // #23510 2010.10.31 yyagi: delete as of no one use this any longer. + if (TJAPlayer3.Tx.Tile_Black != null) + { + TJAPlayer3.Tx.Tile_Black.Opacity = ( this.mode == EFIFOモード.フェードイン ) ? ( ( ( 100 - this.counter.n現在の値 ) * 0xff ) / 100 ) : ( ( this.counter.n現在の値 * 0xff ) / 100 ); + for (int i = 0; i <= (SampleFramework.GameWindowSize.Width / 64); i++) // #23510 2010.10.31 yyagi: change "clientSize.Width" to "640" to fix FIFO drawing size + { + for (int j = 0; j <= (SampleFramework.GameWindowSize.Height / 64); j++) // #23510 2010.10.31 yyagi: change "clientSize.Height" to "480" to fix FIFO drawing size + { + TJAPlayer3.Tx.Tile_Black.t2D描画( TJAPlayer3.app.Device, i * 64, j * 64 ); + } + } + } + if( this.counter.n現在の値 != 100 ) + { + return 0; + } + return 1; + } + + + // その他 + + #region [ private ] + //----------------- + private CCounter counter; + private EFIFOモード mode; + //private CTexture tx白タイル64x64; + //----------------- + #endregion + } +} diff --git a/TJAPlayer3/Stages/CActLVLNFont.cs b/TJAPlayer3/Stages/CActLVLNFont.cs new file mode 100644 index 00000000..33af9ff6 --- /dev/null +++ b/TJAPlayer3/Stages/CActLVLNFont.cs @@ -0,0 +1,126 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Runtime.InteropServices; +using System.Drawing; +using System.Diagnostics; +using SlimDX; +using FDK; + +namespace TJAPlayer3 +{ + public class CActLVLNFont : CActivity + { + // コンストラクタ + + const int numWidth = 15; + const int numHeight = 19; + + public CActLVLNFont() + { + string numChars = "0123456789?-"; + st数字 = new ST数字[12, 4]; + + for (int j = 0; j < 4; j++) + { + for (int i = 0; i < 12; i++) + { + this.st数字[i, j].ch = numChars[i]; + this.st数字[i, j].rc = new Rectangle( + (i % 4) * numWidth + (j % 2) * 64, + (i / 4) * numHeight + (j / 2) * 64, + numWidth, + numHeight + ); + } + } + } + + + // メソッド + public void t文字列描画(int x, int y, string str) + { + this.t文字列描画(x, y, str, EFontColor.White, EFontAlign.Right); + } + public void t文字列描画(int x, int y, string str, EFontColor efc, EFontAlign efa) + { + if (!base.b活性化してない && !string.IsNullOrEmpty(str)) + { + if (this.tx数値 != null) + { + bool bRightAlign = (efa == EFontAlign.Right); + + if (bRightAlign) // 右詰なら文字列反転して右から描画 + { + char[] chars = str.ToCharArray(); + Array.Reverse(chars); + str = new string(chars); + } + + foreach (char ch in str) + { + int p = (ch == '-' ? 11 : ch - '0'); + ST数字 s = st数字[p, (int)efc]; + int sw = s.rc.Width; + int delta = bRightAlign ? 0 : -sw; + this.tx数値.t2D描画(TJAPlayer3.app.Device, x + delta, y, s.rc); + x += bRightAlign ? -sw : sw; + } + } + } + } + + + // CActivity 実装 + + public override void OnManagedリソースの作成() + { + if (!base.b活性化してない) + { + this.tx数値 = TJAPlayer3.tテクスチャの生成(CSkin.Path(@"Graphics\ScreenSelect level numbers.png")); + base.OnManagedリソースの作成(); + } + } + public override void OnManagedリソースの解放() + { + if (!base.b活性化してない) + { + if ( this.tx数値 != null ) + { + this.tx数値.Dispose(); + this.tx数値 = null; + } + base.OnManagedリソースの解放(); + } + } + + + // その他 + + #region [ private ] + //----------------- + [StructLayout(LayoutKind.Sequential)] + private struct ST数字 + { + public char ch; + public Rectangle rc; + } + + public enum EFontColor + { + Red = 0, + Yellow = 1, + Orange = 2, + White = 3 + } + public enum EFontAlign + { + Left, + Right + } + private ST数字[,] st数字; + private CTexture tx数値; + //----------------- + #endregion + } +} diff --git a/TJAPlayer3/Stages/CActオプションパネル.cs b/TJAPlayer3/Stages/CActオプションパネル.cs new file mode 100644 index 00000000..eb0ec0a2 --- /dev/null +++ b/TJAPlayer3/Stages/CActオプションパネル.cs @@ -0,0 +1,140 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Drawing; +using SlimDX.Direct3D9; +using FDK; + +using Device = SampleFramework.DeviceCache; + +namespace TJAPlayer3 +{ + internal class CActオプションパネル : CActivity + { + // CActivity 実装 + + public override void On非活性化() + { + if( !base.b活性化してない ) + { + TJAPlayer3.tテクスチャの解放( ref this.txオプションパネル ); + base.On非活性化(); + } + } + public override void OnManagedリソースの作成() + { + if( !base.b活性化してない ) + { + this.txオプションパネル = TJAPlayer3.tテクスチャの生成( CSkin.Path( @"Graphics\Screen option panels.png" ), false ); + base.OnManagedリソースの作成(); + } + } + public override int On進行描画() + { + if( !base.b活性化してない ) + { + Device device = TJAPlayer3.app.Device; + CConfigIni configIni = TJAPlayer3.ConfigIni; + if( this.txオプションパネル != null ) + { + #region [ ScrollSpeed ] + int drums = configIni.n譜面スクロール速度.Drums; + if( drums > 15 ) + { + drums = 15; + } + this.txオプションパネル.t2D描画( device, 0x171, 12, this.rc譜面スピード[ drums ] ); + int guitar = configIni.n譜面スクロール速度.Guitar; + if( guitar > 15 ) + { + guitar = 15; + } + this.txオプションパネル.t2D描画( device, 0x171, 0x18, this.rc譜面スピード[ guitar ] ); + int bass = configIni.n譜面スクロール速度.Bass; + if( bass > 15 ) + { + bass = 15; + } + this.txオプションパネル.t2D描画( device, 0x171, 0x24, this.rc譜面スピード[ bass ] ); + #endregion + #region [ Sud/Hid/Invisible ] + this.txオプションパネル.t2D描画( device, 0x189, 12, this.rcHS[ ( configIni.bHidden.Drums ? 1 : 0 ) + ( configIni.bSudden.Drums ? 2 : 0 ) + + ( configIni.eInvisible.Drums == EInvisible.SEMI ? 4 : 0 ) + + ( configIni.eInvisible.Drums == EInvisible.FULL ? 5 : 0 ) ] ); + this.txオプションパネル.t2D描画( device, 0x189, 0x18, this.rcHS[ ( configIni.bHidden.Guitar ? 1 : 0 ) + ( configIni.bSudden.Guitar ? 2 : 0 ) + + ( configIni.eInvisible.Guitar == EInvisible.SEMI ? 4 : 0 ) + + ( configIni.eInvisible.Guitar == EInvisible.FULL ? 5 : 0 ) ] ); + this.txオプションパネル.t2D描画( device, 0x189, 0x24, this.rcHS[ ( configIni.bHidden.Bass ? 1 : 0 ) + ( configIni.bSudden.Bass ? 2 : 0 ) + + ( configIni.eInvisible.Bass == EInvisible.SEMI ? 4 : 0 ) + + ( configIni.eInvisible.Bass == EInvisible.FULL ? 5 : 0 ) ] ); + #endregion + #region [ Dark ] + this.txオプションパネル.t2D描画( device, 0x1a1, 12, this.rcDark[ (int) configIni.eDark ] ); + this.txオプションパネル.t2D描画( device, 0x1a1, 0x18, this.rcDark[ (int) configIni.eDark ] ); + this.txオプションパネル.t2D描画( device, 0x1a1, 0x24, this.rcDark[ (int) configIni.eDark ] ); + #endregion + #region [ Reverse ] + this.txオプションパネル.t2D描画( device, 0x1b9, 12, this.rcReverse[ configIni.bReverse.Drums ? 1 : 0 ] ); + this.txオプションパネル.t2D描画( device, 0x1b9, 0x18, this.rcReverse[ configIni.bReverse.Guitar ? 1 : 0 ] ); + this.txオプションパネル.t2D描画( device, 0x1b9, 0x24, this.rcReverse[ configIni.bReverse.Bass ? 1 : 0 ] ); + #endregion + #region [ Position ] + this.txオプションパネル.t2D描画( device, 0x1d1, 12, this.rcPosition[ (int) configIni.判定文字表示位置.Drums ] ); + this.txオプションパネル.t2D描画( device, 0x1d1, 0x18, this.rcPosition[ (int) configIni.判定文字表示位置.Guitar ] ); + this.txオプションパネル.t2D描画( device, 0x1d1, 0x24, this.rcPosition[ (int) configIni.判定文字表示位置.Bass ] ); + #endregion + #region [ Tight ] + this.txオプションパネル.t2D描画( device, 0x1e9, 12, this.rcTight[ configIni.bTight ? 1 : 0 ] ); + #endregion + #region [ Random ] + this.txオプションパネル.t2D描画( device, 0x1e9, 0x18, this.rcRandom[ (int) configIni.eRandom.Guitar ] ); + this.txオプションパネル.t2D描画( device, 0x1e9, 0x24, this.rcRandom[ (int) configIni.eRandom.Bass ] ); + #endregion + #region [ ComboPosition ] + this.txオプションパネル.t2D描画( device, 0x201, 12, new Rectangle(0, 0, 0, 0) ); + #endregion + #region [ Light ] + this.txオプションパネル.t2D描画( device, 0x201, 0x18, this.rcLight[ configIni.bLight.Guitar ? 1 : 0 ] ); + this.txオプションパネル.t2D描画( device, 0x201, 0x24, this.rcLight[ configIni.bLight.Bass ? 1 : 0 ] ); + #endregion + #region [ Left ] + this.txオプションパネル.t2D描画( device, 0x219, 0x18, this.rcLeft[ configIni.bLeft.Guitar ? 1 : 0 ] ); + this.txオプションパネル.t2D描画( device, 0x219, 0x24, this.rcLeft[ configIni.bLeft.Bass ? 1 : 0 ] ); + #endregion + } + } + return 0; + } + + + // その他 + + #region [ private ] + //----------------- + private readonly Rectangle[] rcComboPos = new Rectangle[] { new Rectangle( 0x30, 0x48, 0x18, 12 ), new Rectangle( 0x30, 60, 0x18, 12 ), new Rectangle( 0x30, 0x30, 0x18, 12 ), new Rectangle( 0x18, 0x48, 0x18, 12 ) }; + private readonly Rectangle[] rcDark = new Rectangle[] { new Rectangle( 0x18, 0, 0x18, 12 ), new Rectangle( 0x18, 12, 0x18, 12 ), new Rectangle( 0x18, 0x54, 0x18, 12 ) }; + private readonly Rectangle[] rcHS = new Rectangle[] { + new Rectangle( 0, 0, 0x18, 12 ), // OFF + new Rectangle( 0, 12, 0x18, 12 ), // Hidden + new Rectangle( 0, 0x18, 0x18, 12 ), // Sudden + new Rectangle( 0, 0x24, 0x18, 12 ), // H/S + new Rectangle(0x60, 0x54, 0x18, 12 ), // Semi-Invisible + new Rectangle( 120, 0x54, 0x18, 12 ) // Full-Invisible + }; + private readonly Rectangle[] rcLeft = new Rectangle[] { new Rectangle( 0x60, 0x48, 0x18, 12 ), new Rectangle( 120, 0x48, 0x18, 12 ) }; + private readonly Rectangle[] rcLight = new Rectangle[] { new Rectangle( 120, 0x30, 0x18, 12 ), new Rectangle( 120, 60, 0x18, 12 ) }; + private readonly Rectangle[] rcPosition = new Rectangle[] { + new Rectangle( 0, 48, 24, 12 ), // P-A + new Rectangle( 0, 60, 24, 12 ), // P-B + new Rectangle( 0, 72, 24, 12 ), // P-B + new Rectangle( 24, 72, 24, 12 ) // OFF + }; + private readonly Rectangle[] rcRandom = new Rectangle[] { new Rectangle( 0x48, 0x30, 0x18, 12 ), new Rectangle( 0x48, 60, 0x18, 12 ), new Rectangle( 0x48, 0x48, 0x18, 12 ), new Rectangle( 0x48, 0x54, 0x18, 12 ) }; + private readonly Rectangle[] rcReverse = new Rectangle[] { new Rectangle( 0x18, 0x18, 0x18, 12 ), new Rectangle( 0x18, 0x24, 0x18, 12 ) }; + private readonly Rectangle[] rcTight = new Rectangle[] { new Rectangle( 0x60, 0x30, 0x18, 12 ), new Rectangle( 0x60, 60, 0x18, 12 ) }; + private readonly Rectangle[] rc譜面スピード = new Rectangle[] { new Rectangle( 0x30, 0, 0x18, 12 ), new Rectangle( 0x30, 12, 0x18, 12 ), new Rectangle( 0x30, 0x18, 0x18, 12 ), new Rectangle( 0x30, 0x24, 0x18, 12 ), new Rectangle( 0x48, 0, 0x18, 12 ), new Rectangle( 0x48, 12, 0x18, 12 ), new Rectangle( 0x48, 0x18, 0x18, 12 ), new Rectangle( 0x48, 0x24, 0x18, 12 ), new Rectangle( 0x60, 0, 0x18, 12 ), new Rectangle( 0x60, 12, 0x18, 12 ), new Rectangle( 0x60, 0x18, 0x18, 12 ), new Rectangle( 0x60, 0x24, 0x18, 12 ), new Rectangle( 120, 0, 0x18, 12 ), new Rectangle( 120, 12, 0x18, 12 ), new Rectangle( 120, 0x18, 0x18, 12 ), new Rectangle( 120, 0x24, 0x18, 12 ) }; + private CTexture txオプションパネル; + //----------------- + #endregion + } +} diff --git a/TJAPlayer3/Stages/CDTXVmode.cs b/TJAPlayer3/Stages/CDTXVmode.cs new file mode 100644 index 00000000..b04b5290 --- /dev/null +++ b/TJAPlayer3/Stages/CDTXVmode.cs @@ -0,0 +1,417 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Diagnostics; +using System.IO; +using System.Threading; +using FDK; + + +namespace TJAPlayer3 +{ + public class CDTXVmode + { + public enum ECommand + { + Stop, + Play, + Preview + } + + /// + /// DTXVモードかどうか + /// + public bool Enabled + { + get; + set; + } + + /// + /// プレビューサウンドの再生が発生した + /// + public bool Preview + { + get; + set; + } + + /// + /// 外部から再指示が発生したか + /// + public bool Refreshed + { + get; + set; + } + + /// + /// 演奏開始小節番号 + /// + public int nStartBar + { + get; + set; + } + + /// + /// DTXファイルの再読み込みが必要かどうか + /// + public bool NeedReload + { + get; + private set; +// private set; // 本来はprivate setにすべきだが、デバッグが簡単になるので、しばらくはprivateなしのままにする。 + } + + /// + /// DTXCからのコマンド + /// + public ECommand Command + { + get; + private set; + } + + public ESoundDeviceType soundDeviceType + { + get; + private set; + } + public int nASIOdevice + { + get; + private set; + } + /// + /// 前回からサウンドデバイスが変更されたか + /// + public bool ChangedSoundDevice + { + get; + private set; + } + + public string filename + { + get + { + return last_path; + } + } + + public string previewFilename + { + get; + private set; + } + public int previewVolume + { + get; + private set; + } + public int previewPan + { + get; + private set; + } + public bool GRmode + { + get; + private set; + } + public bool lastGRmode + { + get; + private set; + } + public bool TimeStretch + { + get; + private set; + } + public bool lastTimeStretch + { + get; + private set; + } + public bool VSyncWait + { + get; + private set; + } + public bool lastVSyncWait + { + get; + private set; + } + + + /// + /// コンストラクタ + /// + public CDTXVmode() + { + this.last_path = ""; + this.last_timestamp = DateTime.MinValue; + this.Enabled = false; + this.nStartBar = 0; + this.Refreshed = false; + this.NeedReload = false; + this.previewFilename = ""; + this.GRmode = false; + this.lastGRmode = false; + this.TimeStretch = false; + this.lastTimeStretch = false; + this.VSyncWait = true; + this.lastVSyncWait = true; + } + + /// + /// DTXファイルのリロードが必要かどうか判定する + /// + /// DTXファイル名 + /// 再読込が必要ならtrue + /// プロパティNeedReloadにも結果が入る + /// これを呼び出すたびに、Refreshedをtrueにする + /// + public bool bIsNeedReloadDTX( string filename ) + { + if ( !File.Exists( filename ) ) // 指定したファイルが存在しないなら例外終了 + { + Trace.TraceError( "ファイルが見つかりません。({0})", filename ); + throw new FileNotFoundException(); + //return false; + } + + this.Refreshed = true; + + // 前回とファイル名が異なるか、タイムスタンプが更新されているか、 + // GRmode等の設定を変更したなら、DTX要更新 + DateTime current_timestamp = File.GetLastWriteTime( filename ); + if ( last_path != filename || current_timestamp > last_timestamp || + this.lastGRmode != this.GRmode || this.lastTimeStretch != this.TimeStretch || this.lastVSyncWait != this.VSyncWait ) + { + this.last_path = filename; + this.last_timestamp = current_timestamp; + this.lastGRmode = this.GRmode; + this.lastTimeStretch = this.TimeStretch; + this.lastVSyncWait = this.VSyncWait; + + this.NeedReload = true; + return true; + } + this.NeedReload = false; + return false; + } + + /// + /// + /// + /// + /// + /// + /// DTXV用の引数であればtrue + /// 内部でEnabled, nStartBar, Command, NeedReload, filename, last_path, last_timestampを設定する + public bool ParseArguments( string arg ) + { + bool ret = false, analyzing = true; + this.nStartBar = 0; + + if ( arg != null ) + { + while ( analyzing ) + { + if ( arg == "" ) + { + analyzing = false; + } + else if ( arg.StartsWith( "-V", StringComparison.OrdinalIgnoreCase ) ) // サウンド再生 + { + // -Vvvv,ppp,"filename"の形式。 vvv=volume, ppp=pan. + this.Enabled = true; + this.Command = ECommand.Preview; + this.Refreshed = true; + ret = true; + arg = arg.Substring( 2 ); + + int pVol = arg.IndexOf( ',' ); //Trace.TraceInformation( "pVol=" + pVol ); + string strVol = arg.Substring( 0, pVol ); //Trace.TraceInformation( "strVol=" + strVol ); + this.previewVolume = Convert.ToInt32( strVol ); //Trace.TraceInformation( "previewVolume=" + previewVolume ); + int pPan = arg.IndexOf( ',', pVol + 1 ); //Trace.TraceInformation( "pPan=" + pPan ); + string strPan = arg.Substring( pVol + 1, pPan - pVol - 1 ); //Trace.TraceInformation( "strPan=" + strPan ); + this.previewPan = Convert.ToInt32( strPan ); //Trace.TraceInformation( "previewPan=" + previewPan ); + + arg = arg.Substring( pPan + 1 ); + arg = arg.Trim( new char[] { '\"' } ); + this.previewFilename = arg; + analyzing = false; + } + // -S -Nxxx filename + else if ( arg.StartsWith( "-S", StringComparison.OrdinalIgnoreCase ) ) // DTXV再生停止 + { + this.Enabled = true; + this.Command = ECommand.Stop; + this.Refreshed = true; + ret = true; + arg = arg.Substring( 2 ); + } + else if ( arg.StartsWith( "-D", StringComparison.OrdinalIgnoreCase ) ) + { + // -DW, -DA1など + arg = arg.Substring( 2 ); // -D を削除 + switch ( arg[ 0 ] ) + { + #region [ DirectSound ] + case 'D': + if ( this.soundDeviceType != ESoundDeviceType.DirectSound ) + { + this.ChangedSoundDevice = true; + this.soundDeviceType = ESoundDeviceType.DirectSound; + } + else + { + this.ChangedSoundDevice = false; + } + arg = arg.Substring( 1 ); + break; + #endregion + #region [ WASAPI ] + case 'W': + if ( this.soundDeviceType != ESoundDeviceType.ExclusiveWASAPI ) + { + this.ChangedSoundDevice = true; + this.soundDeviceType = ESoundDeviceType.ExclusiveWASAPI; + } + else + { + this.ChangedSoundDevice = false; + } + arg = arg.Substring( 1 ); + break; + #endregion + #region [ ASIO ] + case 'A': + if ( this.soundDeviceType != ESoundDeviceType.ASIO ) + { + this.ChangedSoundDevice = true; + this.soundDeviceType = ESoundDeviceType.ASIO; + } + else + { + this.ChangedSoundDevice = false; + } + arg = arg.Substring( 1 ); + + int nAsioDev = 0, p = 0; + while ( true ) + { + char c = arg[ 0 ]; + if ( '0' <= c && c <= '9' ) + { + nAsioDev *= 10; + nAsioDev += c - '0'; + p++; + arg = arg.Substring( 1 ); + continue; + } + else + { + break; + } + } + if ( this.nASIOdevice != nAsioDev ) + { + this.ChangedSoundDevice = true; + this.nASIOdevice = nAsioDev; + } + break; + #endregion + } + #region [ GRmode, TimeStretch, VSyncWait ] + { + // Reload判定は、-Nのところで行う + this.GRmode = ( arg[ 0 ] == 'Y' ); + this.TimeStretch = ( arg[ 1 ] == 'Y' ); + this.VSyncWait = ( arg[ 2 ] == 'Y' ); + + arg = arg.Substring( 3 ); + } + #endregion + } + else if ( arg.StartsWith( "-N", StringComparison.OrdinalIgnoreCase ) ) + { + this.Enabled = true; + this.Command = ECommand.Play; + ret = true; + + arg = arg.Substring( 2 ); // "-N"を除去 + string[] p = arg.Split( new char[] { ' ' } ); + this.nStartBar = int.Parse( p[ 0 ] ); // 再生開始小節 + if ( this.nStartBar < 0 ) + { + this.nStartBar = -1; + } + + int startIndex = arg.IndexOf( ' ' ); + string filename = arg.Substring( startIndex + 1 ); // 再生ファイル名(フルパス) これで引数が終わっていることを想定 + try + { + filename = filename.Trim( new char[] { '\"' } ); + bIsNeedReloadDTX( filename ); + } + catch (Exception e) // 指定ファイルが存在しない + { + Trace.TraceError( e.ToString() ); + Trace.TraceError( "例外が発生しましたが処理を継続します。 (d309a608-7311-411e-a565-19226c3116c2)" ); + } + arg = ""; + analyzing = false; + } + } + } +string[] s = { "Stop", "Play", "Preview" }; +Trace.TraceInformation( "Command: " + s[ (int) this.Command ] ); + return ret; + } + + /// + /// Viewer関連の設定のみを更新して、Config.iniに書き出す + /// + public void tUpdateConfigIni() + { + CConfigIni cc = new CConfigIni(); + string path = TJAPlayer3.strEXEのあるフォルダ + "Config.ini"; + if ( File.Exists( path ) ) + { + FileInfo fi = new FileInfo( path ); + if ( fi.Length > 0 ) // Config.iniが0byteだったなら、読み込まない + { + try + { + cc.tファイルから読み込み( path ); + } + catch (Exception e) + { + //ConfigIni = new CConfigIni(); // 存在してなければ新規生成 + Trace.TraceError( e.ToString() ); + Trace.TraceError( "例外が発生しましたが処理を継続します。 (825f9ba6-9164-4f2e-8c41-edf4d73c06c9)" ); + } + } + fi = null; + } + + cc.nViewerScrollSpeed = TJAPlayer3.ConfigIni.n譜面スクロール速度; + cc.bViewerShowDebugStatus = TJAPlayer3.ConfigIni.b演奏情報を表示する; + cc.bViewerVSyncWait = TJAPlayer3.ConfigIni.b垂直帰線待ちを行う; + cc.bViewerTimeStretch = TJAPlayer3.ConfigIni.bTimeStretch; + cc.bViewerDrums有効 = true; + + cc.t書き出し( path ); + } + + private string last_path; + private DateTime last_timestamp; + + } +} diff --git a/TJAPlayer3/Stages/CNamePlate.cs b/TJAPlayer3/Stages/CNamePlate.cs new file mode 100644 index 00000000..423c24da --- /dev/null +++ b/TJAPlayer3/Stages/CNamePlate.cs @@ -0,0 +1,346 @@ +using FDK; +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace TJAPlayer3 +{ + class CNamePlate + { + public CNamePlate() + { + for (int player = 0; player < 2; player++) + { + if (TJAPlayer3.NamePlateConfig.data.DanType[player] < 0) TJAPlayer3.NamePlateConfig.data.DanType[player] = 0; + else if (TJAPlayer3.NamePlateConfig.data.DanType[player] > 2) TJAPlayer3.NamePlateConfig.data.DanType[player] = 2; + + if (TJAPlayer3.NamePlateConfig.data.TitleType[player] < 0) TJAPlayer3.NamePlateConfig.data.TitleType[player] = 0; + else if (TJAPlayer3.NamePlateConfig.data.TitleType[player] > 2) TJAPlayer3.NamePlateConfig.data.TitleType[player] = 2; + + if (!string.IsNullOrEmpty(TJAPlayer3.ConfigIni.FontName)) + { + if (TJAPlayer3.NamePlateConfig.data.Title[player] == "" || TJAPlayer3.NamePlateConfig.data.Title[player] == null) + this.pfName = new CPrivateFastFont(new FontFamily(TJAPlayer3.ConfigIni.FontName), 15); + else + this.pfName = new CPrivateFastFont(new FontFamily(TJAPlayer3.ConfigIni.FontName), 12); + + this.pfTitle = new CPrivateFastFont(new FontFamily(TJAPlayer3.ConfigIni.FontName), 11); + this.pfdan = new CPrivateFastFont(new FontFamily(TJAPlayer3.ConfigIni.FontName), 12); + } + else + { + if (TJAPlayer3.NamePlateConfig.data.Title[player] == "" || TJAPlayer3.NamePlateConfig.data.Title[player] == null) + this.pfName = new CPrivateFastFont(new FontFamily("MS UI Gothic"), 15); + else + this.pfName = new CPrivateFastFont(new FontFamily("MS UI Gothic"), 12); + + this.pfTitle = new CPrivateFastFont(new FontFamily("MS UI Gothic"), 11); + this.pfdan = new CPrivateFastFont(new FontFamily("MS UI Gothic"), 12); + } + + using (var tex = pfName.DrawPrivateFont(TJAPlayer3.NamePlateConfig.data.Name[player], Color.White, Color.Black, 25)) + txName[player] = TJAPlayer3.tテクスチャの生成(tex); + + using (var tex = pfTitle.DrawPrivateFont(TJAPlayer3.NamePlateConfig.data.Title[player], Color.Black, Color.Empty)) + txTitle[player] = TJAPlayer3.tテクスチャの生成(tex); + + using (var tex = pfdan.DrawPrivateFont(TJAPlayer3.NamePlateConfig.data.Dan[player], Color.White, Color.Black, 22)) + txdan[player] = TJAPlayer3.tテクスチャの生成(tex); + } + + ctNamePlateEffect = new CCounter(0, 120, 16.6f, TJAPlayer3.Timer); + } + + public void tNamePlateDraw(int x, int y, int player, bool bTitle = false, int Opacity = 255) + { + ctNamePlateEffect.t進行Loop(); + + this.txName[player].Opacity = Opacity; + this.txTitle[player].Opacity = Opacity; + this.txdan[player].Opacity = Opacity; + TJAPlayer3.Tx.NamePlateBase.Opacity = Opacity; + for (int i = 0; i < 5; i++) + TJAPlayer3.Tx.NamePlate_Effect[i].Opacity = Opacity; + + if (bTitle) + { + //220, 54 + TJAPlayer3.Tx.NamePlateBase.t2D描画(TJAPlayer3.app.Device, x, y, new RectangleF(0, 3 * 54, 220, 54)); + + if (TJAPlayer3.NamePlateConfig.data.Dan[player] != "" && TJAPlayer3.NamePlateConfig.data.Dan[player] != null) + { + if (TJAPlayer3.NamePlateConfig.data.Title[player] != "" && TJAPlayer3.NamePlateConfig.data.Title[player] != null) + TJAPlayer3.Tx.NamePlateBase.t2D描画(TJAPlayer3.app.Device, x, y, new RectangleF(0, (4 + TJAPlayer3.NamePlateConfig.data.TitleType[player]) * 54, 220, 54)); + } + + if (TJAPlayer3.NamePlateConfig.data.Dan[player] != "" && TJAPlayer3.NamePlateConfig.data.Dan[player] != null) + { + TJAPlayer3.Tx.NamePlateBase.t2D描画(TJAPlayer3.app.Device, x, y, new RectangleF(0, 7 * 54, 220, 54)); + TJAPlayer3.Tx.NamePlateBase.t2D描画(TJAPlayer3.app.Device, x, y, new RectangleF(0, (8 + TJAPlayer3.NamePlateConfig.data.DanType[player]) * 54, 220, 54)); + } + + tNamePlateDraw(player, x, y); + + if (TJAPlayer3.NamePlateConfig.data.Dan[player] != "" && TJAPlayer3.NamePlateConfig.data.Dan[player] != null) + { + if (txName[player].szテクスチャサイズ.Width >= 120.0f) + txName[player].vc拡大縮小倍率.X = 120.0f / txName[player].szテクスチャサイズ.Width; + } + else + { + if (txName[player].szテクスチャサイズ.Width >= 220.0f) + txName[player].vc拡大縮小倍率.X = 220.0f / txName[player].szテクスチャサイズ.Width; + } + + if (txdan[player].szテクスチャサイズ.Width >= 66.0f) + txdan[player].vc拡大縮小倍率.X = 66.0f / txdan[player].szテクスチャサイズ.Width; + + if (TJAPlayer3.NamePlateConfig.data.Dan[player] != "" && TJAPlayer3.NamePlateConfig.data.Dan[player] != null) + { + this.txdan[player].t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, x + 69, y + 45); + if (TJAPlayer3.NamePlateConfig.data.DanGold[player]) + { + TJAPlayer3.Tx.NamePlateBase.b乗算合成 = true; + TJAPlayer3.Tx.NamePlateBase.t2D描画(TJAPlayer3.app.Device, x, y, new RectangleF(0, 11 * 54, 220, 54)); + TJAPlayer3.Tx.NamePlateBase.b乗算合成 = false; + } + } + + if (TJAPlayer3.NamePlateConfig.data.Title[player] != "" && TJAPlayer3.NamePlateConfig.data.Title[player] != null) + { + if (txTitle[player].szテクスチャサイズ.Width >= 160) + { + txTitle[player].vc拡大縮小倍率.X = 160.0f / txTitle[player].szテクスチャサイズ.Width; + txTitle[player].vc拡大縮小倍率.Y = 160.0f / txTitle[player].szテクスチャサイズ.Width; + } + + txTitle[player].t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, x + 115, y + 19); + if (TJAPlayer3.NamePlateConfig.data.Dan[player] == "" || TJAPlayer3.NamePlateConfig.data.Dan[player] == null) + this.txName[player].t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, x + 100, y + 45); + else + this.txName[player].t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, x + 149, y + 45); + } + else + this.txName[player].t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, x + 121, y + 36); + } + else + { + //220, 54 + TJAPlayer3.Tx.NamePlateBase.t2D描画(TJAPlayer3.app.Device, x, y, new RectangleF(0, 3 * 54, 220, 54)); + + if (TJAPlayer3.NamePlateConfig.data.Dan[player] != "" && TJAPlayer3.NamePlateConfig.data.Dan[player] != null) + { + if (TJAPlayer3.NamePlateConfig.data.Title[player] != "" && TJAPlayer3.NamePlateConfig.data.Title[player] != null) + TJAPlayer3.Tx.NamePlateBase.t2D描画(TJAPlayer3.app.Device, x, y, new RectangleF(0, (4 + TJAPlayer3.NamePlateConfig.data.TitleType[player]) * 54, 220, 54)); + } + + if (TJAPlayer3.NamePlateConfig.data.Dan[player] != "" && TJAPlayer3.NamePlateConfig.data.Dan[player] != null) + { + TJAPlayer3.Tx.NamePlateBase.t2D描画(TJAPlayer3.app.Device, x, y, new RectangleF(0, 7 * 54, 220, 54)); + TJAPlayer3.Tx.NamePlateBase.t2D描画(TJAPlayer3.app.Device, x, y, new RectangleF(0, (8 + TJAPlayer3.NamePlateConfig.data.DanType[player]) * 54, 220, 54)); + } + + tNamePlateDraw(player, x, y); + + TJAPlayer3.Tx.NamePlateBase.t2D描画(TJAPlayer3.app.Device, x, y, new RectangleF(0, player == 1 ? 2 * 54 : 0, 220, 54)); + + if (TJAPlayer3.NamePlateConfig.data.Dan[player] != "" && TJAPlayer3.NamePlateConfig.data.Dan[player] != null) + { + if (txName[player].szテクスチャサイズ.Width >= 120.0f) + txName[player].vc拡大縮小倍率.X = 120.0f / txName[player].szテクスチャサイズ.Width; + } + else + { + if (txName[player].szテクスチャサイズ.Width >= 220.0f) + txName[player].vc拡大縮小倍率.X = 220.0f / txName[player].szテクスチャサイズ.Width; + } + + if (txdan[player].szテクスチャサイズ.Width >= 66.0f) + txdan[player].vc拡大縮小倍率.X = 66.0f / txdan[player].szテクスチャサイズ.Width; + + if (TJAPlayer3.NamePlateConfig.data.Dan[player] != "" && TJAPlayer3.NamePlateConfig.data.Dan[player] != null) + { + this.txdan[player].t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, x + 69, y + 44); + if (TJAPlayer3.NamePlateConfig.data.DanGold[player]) + { + TJAPlayer3.Tx.NamePlateBase.b乗算合成 = true; + TJAPlayer3.Tx.NamePlateBase.t2D描画(TJAPlayer3.app.Device, x, y, new RectangleF(0, 11 * 54, 220, 54)); + TJAPlayer3.Tx.NamePlateBase.b乗算合成 = false; + } + } + + if (TJAPlayer3.NamePlateConfig.data.Title[player] != "" && TJAPlayer3.NamePlateConfig.data.Title[player] != null) + { + if (txTitle[player].szテクスチャサイズ.Width >= 160) + { + txTitle[player].vc拡大縮小倍率.X = 160.0f / txTitle[player].szテクスチャサイズ.Width; + txTitle[player].vc拡大縮小倍率.Y = 160.0f / txTitle[player].szテクスチャサイズ.Width; + } + + txTitle[player].t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, x + 124, y + 20); + if (TJAPlayer3.NamePlateConfig.data.Dan[player] == "" || TJAPlayer3.NamePlateConfig.data.Dan[player] == null) + this.txName[player].t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, x + 121, y + 44); + else + this.txName[player].t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, x + 144, y + 44); + } + else + this.txName[player].t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, x + 121, y + 36); + } + } + + private void tNamePlateDraw(int player, int x, int y) + { + if(TJAPlayer3.NamePlateConfig.data.TitleType[player] != 0) + { + int Type = TJAPlayer3.NamePlateConfig.data.TitleType[player] - 1; + if (this.ctNamePlateEffect.n現在の値 <= 10) + { + tNamePlateStarDraw(player, 1.0f - (ctNamePlateEffect.n現在の値 / 10f * 1.0f), x + 63, y + 25); + } + if (this.ctNamePlateEffect.n現在の値 >= 3 && this.ctNamePlateEffect.n現在の値 <= 10) + { + tNamePlateStarDraw(player, 1.0f - ((ctNamePlateEffect.n現在の値 - 3) / 7f * 1.0f), x + 38, y + 7); + } + if (this.ctNamePlateEffect.n現在の値 >= 6 && this.ctNamePlateEffect.n現在の値 <= 10) + { + tNamePlateStarDraw(player, 1.0f - ((ctNamePlateEffect.n現在の値 - 6) / 4f * 1.0f), x + 51, y + 5); + } + if (this.ctNamePlateEffect.n現在の値 >= 8 && this.ctNamePlateEffect.n現在の値 <= 10) + { + tNamePlateStarDraw(player, 0.3f - ((ctNamePlateEffect.n現在の値 - 8) / 2f * 0.3f), x + 110, y + 25); + } + if (this.ctNamePlateEffect.n現在の値 >= 11 && this.ctNamePlateEffect.n現在の値 <= 13) + { + tNamePlateStarDraw(player, 1.0f - ((ctNamePlateEffect.n現在の値 - 11) / 2f * 1.0f), x + 38, y + 7); + } + if (this.ctNamePlateEffect.n現在の値 >= 11 && this.ctNamePlateEffect.n現在の値 <= 15) + { + tNamePlateStarDraw(player, 1.0f, x + 51, y + 5); + } + if (this.ctNamePlateEffect.n現在の値 >= 11 && this.ctNamePlateEffect.n現在の値 <= 17) + { + tNamePlateStarDraw(player, 1.0f - ((ctNamePlateEffect.n現在の値 - 11) / 7f * 1.0f), x + 110, y + 25); + } + if (this.ctNamePlateEffect.n現在の値 >= 16 && this.ctNamePlateEffect.n現在の値 <= 20) + { + tNamePlateStarDraw(player, 0.2f - ((ctNamePlateEffect.n現在の値 - 16) / 4f * 0.2f), x + 63, y + 25); + } + if (this.ctNamePlateEffect.n現在の値 >= 17 && this.ctNamePlateEffect.n現在の値 <= 20) + { + tNamePlateStarDraw(player, 1.0f - ((ctNamePlateEffect.n現在の値 - 17) / 3f * 1.0f), x + 99, y + 1); + } + if (this.ctNamePlateEffect.n現在の値 >= 20 && this.ctNamePlateEffect.n現在の値 <= 24) + { + tNamePlateStarDraw(player, 0.4f, x + 63, y + 25); + } + if (this.ctNamePlateEffect.n現在の値 >= 20 && this.ctNamePlateEffect.n現在の値 <= 25) + { + tNamePlateStarDraw(player, 1.0f, x + 99, y + 1); + } + if (this.ctNamePlateEffect.n現在の値 >= 20 && this.ctNamePlateEffect.n現在の値 <= 30) + { + tNamePlateStarDraw(player, 0.5f - ((this.ctNamePlateEffect.n現在の値 - 20) / 10f * 0.5f), x + 152, y + 7); + } + if (this.ctNamePlateEffect.n現在の値 >= 31 && this.ctNamePlateEffect.n現在の値 <= 37) + { + tNamePlateStarDraw(player, 0.5f - ((this.ctNamePlateEffect.n現在の値 - 31) / 6f * 0.5f), x + 176, y + 8); + tNamePlateStarDraw(player, 1.0f - ((this.ctNamePlateEffect.n現在の値 - 31) / 6f * 1.0f), x + 175, y + 25); + } + if (this.ctNamePlateEffect.n現在の値 >= 31 && this.ctNamePlateEffect.n現在の値 <= 40) + { + tNamePlateStarDraw(player, 0.9f - ((this.ctNamePlateEffect.n現在の値 - 31) / 9f * 0.9f), x + 136, y + 24); + } + if (this.ctNamePlateEffect.n現在の値 >= 34 && this.ctNamePlateEffect.n現在の値 <= 40) + { + tNamePlateStarDraw(player, 0.7f - ((this.ctNamePlateEffect.n現在の値 - 34) / 6f * 0.7f), x + 159, y + 25); + } + if (this.ctNamePlateEffect.n現在の値 >= 41 && this.ctNamePlateEffect.n現在の値 <= 42) + { + tNamePlateStarDraw(player, 0.7f, x + 159, y + 25); + } + if (this.ctNamePlateEffect.n現在の値 >= 43 && this.ctNamePlateEffect.n現在の値 <= 50) + { + tNamePlateStarDraw(player, 0.8f - ((this.ctNamePlateEffect.n現在の値 - 43) / 7f * 0.8f), x + 196, y + 23); + } + if (this.ctNamePlateEffect.n現在の値 >= 51 && this.ctNamePlateEffect.n現在の値 <= 57) + { + tNamePlateStarDraw(player, 0.8f - ((this.ctNamePlateEffect.n現在の値 - 51) / 6f * 0.8f), x + 51, y + 5); + } + if (this.ctNamePlateEffect.n現在の値 >= 51 && this.ctNamePlateEffect.n現在の値 <= 52) + { + tNamePlateStarDraw(player, 0.2f, x + 166, y + 22); + } + if (this.ctNamePlateEffect.n現在の値 >= 51 && this.ctNamePlateEffect.n現在の値 <= 53) + { + tNamePlateStarDraw(player, 0.8f, x + 136, y + 24); + } + if (this.ctNamePlateEffect.n現在の値 >= 51 && this.ctNamePlateEffect.n現在の値 <= 55) + { + tNamePlateStarDraw(player, 1.0f, x + 176, y + 8); + } + if (this.ctNamePlateEffect.n現在の値 >= 51 && this.ctNamePlateEffect.n現在の値 <= 55) + { + tNamePlateStarDraw(player, 1.0f, x + 176, y + 8); + } + if (this.ctNamePlateEffect.n現在の値 >= 61 && this.ctNamePlateEffect.n現在の値 <= 70) + { + tNamePlateStarDraw(player, 1.0f - ((this.ctNamePlateEffect.n現在の値 - 61) / 9f * 1.0f), x + 196, y + 23); + } + if (this.ctNamePlateEffect.n現在の値 >= 61 && this.ctNamePlateEffect.n現在の値 <= 67) + { + tNamePlateStarDraw(player, 0.7f - ((this.ctNamePlateEffect.n現在の値 - 61) / 6f * 0.7f), x + 214, y + 14); + } + if (this.ctNamePlateEffect.n現在の値 >= 63 && this.ctNamePlateEffect.n現在の値 <= 70) + { + tNamePlateStarDraw(player, 0.5f - ((this.ctNamePlateEffect.n現在の値 - 63) / 7f * 0.5f), x + 129, y + 24); + } + if (this.ctNamePlateEffect.n現在の値 >= 63 && this.ctNamePlateEffect.n現在の値 <= 70) + { + tNamePlateStarDraw(player, 0.5f - ((this.ctNamePlateEffect.n現在の値 - 63) / 7f * 0.5f), x + 129, y + 24); + } + if (this.ctNamePlateEffect.n現在の値 >= 65 && this.ctNamePlateEffect.n現在の値 <= 70) + { + tNamePlateStarDraw(player, 0.8f - ((this.ctNamePlateEffect.n現在の値 - 65) / 5f * 0.8f), x + 117, y + 7); + } + if (this.ctNamePlateEffect.n現在の値 >= 71 && this.ctNamePlateEffect.n現在の値 <= 72) + { + tNamePlateStarDraw(player, 0.8f, x + 151, y + 25); + } + if (this.ctNamePlateEffect.n現在の値 >= 71 && this.ctNamePlateEffect.n現在の値 <= 74) + { + tNamePlateStarDraw(player, 0.8f, x + 117, y + 7); + } + if (this.ctNamePlateEffect.n現在の値 >= 85 && this.ctNamePlateEffect.n現在の値 <= 112) + { + TJAPlayer3.Tx.NamePlate_Effect[4].Opacity = (int)(1400 - (this.ctNamePlateEffect.n現在の値 - 85) * 50f); + TJAPlayer3.Tx.NamePlate_Effect[4].t2D描画(TJAPlayer3.app.Device, x + ((this.ctNamePlateEffect.n現在の値 - 85) * (150f / 27f)), y + 7); + } + if (this.ctNamePlateEffect.n現在の値 >= 105 && this.ctNamePlateEffect.n現在の値 <= 120) + { + TJAPlayer3.Tx.NamePlate_Effect[TJAPlayer3.NamePlateConfig.data.TitleType[player] + 1].Opacity = this.ctNamePlateEffect.n現在の値 >= 112 ? (int)(255 - (this.ctNamePlateEffect.n現在の値 - 112) * 31.875f) : 255; + TJAPlayer3.Tx.NamePlate_Effect[TJAPlayer3.NamePlateConfig.data.TitleType[player] + 1].vc拡大縮小倍率.X = this.ctNamePlateEffect.n現在の値 >= 112 ? 1.0f : (this.ctNamePlateEffect.n現在の値 - 105) / 8f; + TJAPlayer3.Tx.NamePlate_Effect[TJAPlayer3.NamePlateConfig.data.TitleType[player] + 1].vc拡大縮小倍率.Y = this.ctNamePlateEffect.n現在の値 >= 112 ? 1.0f : (this.ctNamePlateEffect.n現在の値 - 105) / 8f; + TJAPlayer3.Tx.NamePlate_Effect[TJAPlayer3.NamePlateConfig.data.TitleType[player] + 1].t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, x + 193, y + 6); + } + } + } + + private void tNamePlateStarDraw(int player, float Scale, int x, int y) + { + TJAPlayer3.Tx.NamePlate_Effect[TJAPlayer3.NamePlateConfig.data.TitleType[player] - 1].vc拡大縮小倍率.X = Scale; + TJAPlayer3.Tx.NamePlate_Effect[TJAPlayer3.NamePlateConfig.data.TitleType[player] - 1].vc拡大縮小倍率.Y = Scale; + TJAPlayer3.Tx.NamePlate_Effect[TJAPlayer3.NamePlateConfig.data.TitleType[player] - 1].t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, x, y); + } + + private CPrivateFastFont pfName; + private CPrivateFastFont pfTitle; + private CPrivateFastFont pfdan; + private CCounter ctNamePlateEffect; + private CTexture[] txName = new CTexture[2]; + private CTexture[] txTitle = new CTexture[2]; + private CTexture[] txdan = new CTexture[2]; + } +} diff --git a/TJAPlayer3/Stages/CStage.cs b/TJAPlayer3/Stages/CStage.cs new file mode 100644 index 00000000..4682c0af --- /dev/null +++ b/TJAPlayer3/Stages/CStage.cs @@ -0,0 +1,73 @@ +using System; +using System.Collections.Generic; +using System.Text; +using FDK; + +namespace TJAPlayer3 +{ + public class CStage : CActivity + { + // プロパティ + + internal enum Eヒット判定 + { + PERFECT, + GREAT, + GOOD, + POOR, + MISS, + BAD, + AUTO + } + + internal Eステージ eステージID; + public enum Eステージ + { + 何もしない, + 起動, + タイトル, + オプション, + コンフィグ, + 選曲, + 段位選択, + 曲読み込み, + 演奏, + 結果, + ChangeSkin, // #28195 2011.5.4 yyagi + 終了 + } + + internal Eフェーズ eフェーズID; + public enum Eフェーズ + { + 共通_通常状態, + 共通_フェードイン, + 共通_フェードアウト, + 共通_終了状態, + 起動0_システムサウンドを構築, + 起動00_songlistから曲リストを作成する, + //起動1_SongsDBからスコアキャッシュを構築, + 起動2_曲を検索してリストを作成する, + 起動3_スコアキャッシュをリストに反映する, + 起動4_スコアキャッシュになかった曲をファイルから読み込んで反映する, + 起動5_曲リストへ後処理を適用する, + //起動6_スコアキャッシュをSongsDBに出力する, + 起動_テクスチャの読み込み, + 起動7_完了, + タイトル_起動画面からのフェードイン, + 選曲_結果画面からのフェードイン, + 選曲_コース選択画面へのフェードアウト, //2016.10.20 kairera0467 + 選曲_NowLoading画面へのフェードアウト, + NOWLOADING_DTXファイルを読み込む, + NOWLOADING_WAV読み込み待機, + NOWLOADING_WAVファイルを読み込む, + NOWLOADING_BMPファイルを読み込む, + NOWLOADING_システムサウンドBGMの完了を待つ, + 演奏_STAGE_FAILED, + 演奏_STAGE_FAILED_フェードアウト, + 演奏_STAGE_CLEAR_フェードアウト, + 演奏_演奏終了演出, //2016.07.15 kairera0467 + 演奏_再読込 + } + } +} diff --git a/TJAPlayer3/TJAPlayer3-Develop-ReWrite.ico b/TJAPlayer3/TJAPlayer3-Develop-ReWrite.ico new file mode 100644 index 0000000000000000000000000000000000000000..0f583138af91afd5b8cf946db62e1017edf845f2 GIT binary patch literal 72393 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

&l$RKbOvbD{sGj9I0Hcqgp&Dv(! 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

fDp>Xy73kebKXT5npw;`c~h* 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 P00000NkvXXu0mjfBdoTB literal 0 HcmV?d00001 diff --git a/TJAPlayer3/TJAPlayer3.csproj b/TJAPlayer3/TJAPlayer3.csproj new file mode 100644 index 00000000..14b6d76b --- /dev/null +++ b/TJAPlayer3/TJAPlayer3.csproj @@ -0,0 +1,367 @@ + + + + Release + x86 + 9.0.21022 + 2.0 + {81BEC512-8074-4BD1-8A3C-AC73BC7BF846} + WinExe + Properties + TJAPlayer3 + TJAPlayer3-Develop-ReWrite + v4.6.1 + 512 + TJAPlayer3-Develop-ReWrite.ico + false + false + + + OnBuildSuccess + + + + + 3.5 + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + true + true + + + true + ..\Test\ + TRACE;DEBUG;_TEST_ENGLISH TEST_Direct3D9Ex_ _WindowedFullscreen MemoryRenderer + full + x86 + prompt + true + 0219 + false + false + 7.3 + false + + + ..\Test\ + TRACE;TEST_ENGLISH_ TEST_Direct3D9Ex_ _WindowedFullscreen + false + pdbonly + x86 + prompt + true + 0219 + true + 7.3 + false + + + + TJAPlayer3.manifest + + + + ..\Test\dll\Bass.Net.dll + True + + + False + ..\Test\dll\DirectShowLib-2005.dll + True + + + + ..\Test\dll\Newtonsoft.Json.dll + + + + + + + + + + + + + + + + + + + + + + + + + ResXFileCodeGenerator + Discord.Designer.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + True + Discord.resx + + + True + Resources.resx + True + + + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + False + .NET Framework Client Profile + false + + + False + .NET Framework 2.0 %28x86%29 + true + + + False + .NET Framework 3.0 %28x86%29 + false + + + False + .NET Framework 3.5 + false + + + False + .NET Framework 3.5 SP1 + false + + + + + {BCD40908-F3E2-4707-BFAA-1DD99DF6357D} + FDK19 + True + + + + + 1.0.5 + + + 1.3.1.2 + + + 4.2.0 + + + 4.2.0 + + + 4.2.0 + + + 4.2.0 + + + + + + move /y "$(TargetDir)FDK.dll" "$(SolutionDir)Test\dll\" +move /y "$(TargetDir)FDK.pdb" "$(SolutionDir)Test\dll\" +move /y "$(TargetDir)Hnx8.ReadJEnc.*" "$(SolutionDir)Test\dll\" +move /y "$(TargetDir)Newtonsoft.Json.*" "$(SolutionDir)Test\dll\" +move /y "$(TargetDir)SharpDX.Direct3D9.*" "$(SolutionDir)Test\dll\" +move /y "$(TargetDir)SharpDX.DirectInput.*" "$(SolutionDir)Test\dll\" +move /y "$(TargetDir)SharpDX.DirectSound.*" "$(SolutionDir)Test\dll\" +move /y "$(TargetDir)SharpDX.DXGI.*" "$(SolutionDir)Test\dll\" +move /y "$(TargetDir)SharpDX.Mathematics.*" "$(SolutionDir)Test\dll\" +move /y "$(TargetDir)SharpDX.*" "$(SolutionDir)Test\dll\" +move /y "$(TargetDir)Bass.Net.dll" "$(SolutionDir)Test\dll\" +move /y "$(TargetDir)DirectShowLib-2005.dll" "$(SolutionDir)Test\dll\" +move /y "$(TargetDir)SlimDX.dll" "$(SolutionDir)Test\dll\" +move /y "$(TargetDir)CSharpTest.Net.Collections.*" "$(SolutionDir)Test\dll\" +copy /y "$(SolutionDir)Readme.txt" "$(SolutionDir)Test\" + + + \ No newline at end of file diff --git a/TJAPlayer3/TJAPlayer3.csproj.user b/TJAPlayer3/TJAPlayer3.csproj.user new file mode 100644 index 00000000..689cb47a --- /dev/null +++ b/TJAPlayer3/TJAPlayer3.csproj.user @@ -0,0 +1,27 @@ + + + + copy /Y "%24%28TargetPath%29" "%24%28SolutionDir%29\実行時フォルダ" +move /Y "%24%28TargetDir%29\Bass.Net.dll" "%24%28TargetDir%29dll" +move /Y "%24%28TargetDir%29\DirectShowLib-2005.dll" "%24%28TargetDir%29dll" +move /Y "%24%28TargetDir%29\FDK.dll" "%24%28TargetDir%29dll" +move /Y "%24%28TargetDir%29\SlimDXc_net20x86_Jun2010.dll" "%24%28TargetDir%29dll" + + false + + + Project + + + + + publish\ + + + + + + ja-JP + false + + \ No newline at end of file diff --git a/TJAPlayer3/TJAPlayer3.manifest b/TJAPlayer3/TJAPlayer3.manifest new file mode 100644 index 00000000..0bfcb3b0 --- /dev/null +++ b/TJAPlayer3/TJAPlayer3.manifest @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/TJAPlayer3/app.config b/TJAPlayer3/app.config new file mode 100644 index 00000000..eff605cf --- /dev/null +++ b/TJAPlayer3/app.config @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/TJAPlayer3/dtx.ico b/TJAPlayer3/dtx.ico new file mode 100644 index 0000000000000000000000000000000000000000..e3f6426886850430dc6051ec21ee8600cf484ab3 GIT binary patch literal 766 zcmc(d&1(};6vfXtbrwoW-YhJFLJ|s-s*7>qUcwDc`XMfwfEZ;!cpEz|!ayqSLZGe7 z5(v1dNH^M`T@+n}SO`K?o@7R32i9eq`R4NrXjuUUC>uF)KbRja7*DkNDt*4Q#>uc4O7Hvau+Ry4@`ib7y zc-W#v=8bGoO!t&aZx@WMvc_x_(ieKk8Jaa{C&4_`W`^FV8*@jYuPq>U;tfDl4q36T^6 zI3$kufC&q>1tdbwbD~Mvx21)UX$Pw2Mj<1 zeaDs3jtiyI%X>lK1#Uks5Oo9B_1qxn%dmr}Jf0jvgLO=_IG*$lOjG^J_w&bv10433 znCIgG+fqNai8@QP%};LIK5&xXMg731Vs|>F=Q3p9oP0f$*yXXv2UJzFLT4V + + + + + + + + + + + \ No newline at end of file diff --git a/Test/DirectX Redist/APR2007_xinput_x64.cab b/Test/DirectX Redist/APR2007_xinput_x64.cab new file mode 100644 index 0000000000000000000000000000000000000000..6abbc1f778a14901b8e55a71cddc87c12ed18aca GIT binary patch literal 97833 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


w3&q+F5LJBlR$}BDFaSe|5uF?Rb&2JR;RVua6x3 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 jk0!QAxABBhT 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 literal 0 HcmV?d00001 diff --git a/Test/DirectX Redist/Feb2010_X3DAudio_x86.cab b/Test/DirectX Redist/Feb2010_X3DAudio_x86.cab new file mode 100644 index 0000000000000000000000000000000000000000..8246f73453c8fa7e4559839cdd706351fbb291d4 GIT binary patch literal 20713 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%0A>$Yk_v$>?Q-zKASVd# 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%0ARQ(@qG!t-C>%Kx0C%FPZV1z#_SGnZ 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�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

{tf{ejx9LQpY`%Aw5V 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

  • iSzKjZUAfiv$Fb)y}Ib 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 z z+-#AN_yvz|{#LRXNs-#8Y;kIc9{CvILb( z�xHO+KV26ZR)y>6!tL`_@dgrv^$->l4%nP#{aKFYueyJP1XJ68xvs>9D(^AT_g zFIR21RTXct*e83#N$^C<;XH;m9`E1en{d`Fv&8E~Xr(M6w4!rE3-K$u3JqJr!9|cL zyyUI(4@b)&Iutj7y`!VE9$Gj37@SYi*v82C=Zz6fIMMy-C@ooRA}S+A>zg;q3^2?C ztZPw(O5Q*VZAXZ!KSy79!ewH0Y_8d5z>s(hf}Hu4{J!uT-$X;}0o8}WxaHDgx7JaQopU7ERTv`ZrH&tJv910CP;k69(0D!w`dr z8lsb!pS4Gh3N=Qz#fB7gtq`Uo5Aq|5x0!d=$i(ZlzvLZDNCbJCFwE8q&_Y$aAs(2M zB3A0pawQh-rBxE|PzyK;t}Y#x#& zOOC8V$lO5ouQdd5zv7J7T&cbwTN+O=`C#d;_A3gmFd*Pg`b)nM~to4?QlD=2o#A zZ_wXKpuV<%&N_#Cg-a0MQ!i>}7SMe`0wvat**x?Z=pk$9#?g7{N1FKAjqA_@=4|0w z#frXW$zp{%!#OEao$P9DZ#eJmwVLo_<~mTJ4vkS%B>z@^3$n>|m>Gt5Pb6o4R^zR{ zfN~X4$p?FC=kHIMSJZ`Y`k0m{1Qkg1$Q&+cWAShl1L%Lj8xjNLMDTDjRORi($pHBQ zx<4|gNHRb3Bf0;lc=|_bW6f*ASgh1u@u{dF@EUfhSW(B5&~F%M2ok^;tS}#B5Y2?SYn+J#GnJVX`9)CRsL6<=tQeMU*c0V=@<*x` z4iEe4$xJK$@EI6e#wp9B3L4QLnbPYfs^uWftA?dfukg5;ym&HpgQllwcO^M;r-8T_ zN2Ry_E3&EFQ`UHd2Q_1-8c=7bj6KGz;O>7IiLpGNkKudsm))uK&?{T#&dt#70b)QJ z)--a^qcMXg+7h1FomwT>PGm;uuFs9}qXP#V4k8v*B1Oq4`*>2IUCVsF!O-m5% zoL{ate6y9|$58+8cAU}WOIR~h;k*GY5K0|M{v!jG{*~kgr&yzKjAK|!Zt`omye@E{ zP=$?KL};BJQ0UV!TiIpX2~c~VAz}yVyz+PC7?6?0aJ>H{S%DvO`y1wmOa8IS@0WL5 zW^)dMCE3w_I`N$zuQPKYTCJOm;jJo&cTwViXtdL#w#)Am=-GtPz)&ubx1k@@y(68+ z<&7mjR|{rhlyVx~9_*?tKYTfy`P^pB*nLwzgN)-@^A6YAHHnGxiapcI%ili~8aKs! zpNLw)CGU`D;ot@?(D=IAmr?tDMV8S_U-Ipgeh95f`a&9vx?KVYsCI5RXaj^``8f;UxgNE84U9100TC|3< z)=YJXkJ6C#{;0e=SOo#-GJWm>dkx-}YT}qp-Xi2tF^%NB#Zpw={LEAOO%S?&TWl@k z1F7!PZgx6+#b5_M1lXtGqqya{nJ^+kd3sK&6=}{J^c=b;wh#;!g*j5I@Dou_q*Jr% zRfMWU-dvxL-uxLodMPj#n@xrIOU35A4qVef@)I2ov=il0Sj8;C9?Q>Mx_sgn@SzWU zW|_Je(sh&oBIl2P-AA8H!MSR^@aTiyKr_EM&k2t-qgLQ>Mb;^F<8}V9*k3GmA9@D@ zl@0T{Q%e=Mq9PQYzPl3)qpJF$S&m^I8YzQE!t#`4S9J2i>K3erWkyw>g^qZ; zkcQDXip<_3@ewFWilLk(AG{kOG#saJPoVCR&i--=Kh09JEBInAC34Y3? zN{pQEcCMWkWC8ez2LD`f3r?H_U?l;i!EhBN{z(+L^JRATj`etIA~OyLAQ0@3qGKH?~d3hHHijA&330xtu&( zzh$KK9oO~;eVV{-=M}K%>PXiZv5pFhYVZ$SO=>f zV15~mA?+SrWtK}=PFNd=**-*j%qi#mU7i-2S;-KY$vh1o(56ZG9$uKkvePYV*Y{=U z|32Pp4>q47-V{2wau;kPcz440#S-*prc-0 zM)u|{p?-}ma3_Q(>akgt#PMcvYnR~&74cbZtOo7?^9j;nu!GwHgpHsvxD| zL;SDz4WcGb!sD)+kx|^rX5s@8`JWtyeUc)Cn`X))E>gfbVu*s4w<=tuSq{)P0Z*e= zMQx^hlVVuQW12W0lPEACf5BkXla@6g!2}|iKs?-cVfQ0}_aJmK;zN@-DOppFQpMU4 z`fdW5CvQt@vdEf-5Z0ii1otDje!3n_vDA>S5ZFRqM~cl)3LKv4;0?kS_f_rk(B;{2 zrXPJ%ah*eW(~5RHd`KeereO#Es!4Q?&9Sps+`W_Xn(I{Z0j*v$LG*MUeg$0T;oaBNaP+=WEh1Ii zX;}G3DOUFS_?hej(W0SBA~R_`XSS<4)l+mhs5{jeR!6jcAWKhzLnb8GDHp~SspjWL zhM)!k0Tql+G?rD!yZ5|(eDt3gO}=Hn-xY+x#P=;w&dYKA)OXePgdZds1CAXt7M_st z-s)>btm7hgLY_-*EwfNY_Pe<27RX!p^zQ3Lr}*j@abSbi1ISx7cIhE@KFkTJAql*z;Bf z5m4?uTnL?6-n}2R?;V#kPBb)8B5v@k;d)uY(rP=l^a^3Is%EujYcJ@f-mmY2i&ujj zY-xk;T~85PaFp6#ZqxU<+3)poD8IZuFWg#AIt_^$VW%R*Vl!F#yn%(%nyR&DVq&CBtl_2Z0f#T(1VZ@SCI3FrTvj< z59+C7eQNOhKTgrh#!ztrYfL_$(4h-sqdrGj*HG4E2C{lUr-yiUtaev2x||P+*Ru|e zy~0>;xssdly(^1sWvbjDHAc*1I;?0$7X1NPN8PiWK+F-)+>^i3N*t} zFUXwThBG`?qbp~)9yIj)a1ME^hU zHymA^S9hbhv`@E^|A$pW9TWt{94^VX{#uF^gJWe4fk3ZbYl^r7GlzmkHOdx()1BeA>=w8ZK__ZrzXI55{z0|xGLS-D7JPwRMu7Q@)xy=auR zw49rXYJrRJf>xlD)fIw3DQsKkC@W2M92rahlYt)BWSviH0BkjFh9DVSLivXxsY=&S zS0psI2Px(rT~4TEpjRw^HY3Pe>iOqxodV`sSG3&E(yPdFA)@9Le^x~1u-z9+jm#AQ zl0EWo(R^7Bwb2pgI7FWBH5Og5 zKan_L0;MWK1=*prpcF%{XJyF462Q*O^JN{oYZ8qm5aN^ii5`FM!zJeo9eA&S_VP=X z!IqX+;W7{E?sX93x?wr3gy#y>MbvS{(+bJgI|<|89CyhlOA`-k$?2;=8m-CfiwkM!G2k8wPxWl5{K~he*wW_NFN4_iA7lg(Ge8 zo>O)yIzz%80(Md5^z}@vpRs6c`?6WvXH!07%MN3>cAr@Ti_z@>b9>%|s<`QIJwi1n zALokfFO-rg*L+f1l%Xb-H8IBIEZ=PdsX3b6oC$r8t=^ilo#_-g^#7j#zw!^w2cY4v zLyNf2k}PS>e|;DGT*m#H?w_z^t_hD9GRczBQ$C(FvTt}XUBH~Gm)~|sH9-_O0uu>} zNuf$k@Z;Z_u!@9y5WH$__hmP0^A9WB`%I>NsnKul)j*77M0!7)>)+{c}%y)06@~oCQBQdqH`i%X9XI1jucFh`A!9KFSIOoi(xusG0+YO?D zCM#<`@ed6}P*dz6bleV#X-dPU!SQ7?yB|JZ%}fBc=BRY?iBoOg$xCD{Jl}KOF19Y+ zYs?bjh}Mw^uApaNtF8lLc&iQ>=lM!BX=?|UOL7i1N-I)ZmO>#@=v*Pt>-SU^)Zge}e8u0~xsw5$mu(?Y9HBcxOf40Cx>C`m;JN*we{5tu8mk_+_A zsP5*;U>S@BO-^u79Qk+J8rtRV3fv!z^jiDxP^KN#+R|~|xg~ruJIwd`_koE-;j#~R zI!Bkf%W*s!{l2p&cz{R{m7Eg`LWzM@7PAhkEllqg>Ty&|;o>|Jn4c3f9`*uXn?~m* zwS@&{?r%#dVZJ#eJU{X4x**9P(kJRF2Yx*5OW}!RhcxXbJ1~9tE)cZ7GVR$b7|k$8MLC>rh;IqhCZ!*mQs1+XEt%4L(W6-U2>S4-txCfYoyyGv z#mKLUMjutIQDaNMTyJCQ)6U$iFiSWsAAmzqT*9G;a|~HM4@{TBFiG4awW zLoO1fF_ISN{I5?`cGT1jMp}~-d|<{AUCPc>o~MjZ0jl&jv;{ipV^G8g45cq2*)}I7 z4RU~&yywbi!g`B=dF+9flN$dG8;i=MX^Q`MscLa||0#iSVJGiP5Zwi1@a?zf1#qg5 z`pnAD7Mc0pz^i3Yo@6Ntv$V1Cwj)Y8-EOIWx;unS4hv9tkF~-(t4lAV)3MxZ7VE~Ju=rn5Zx0MNUg2R*Yi0D zj=QC^hbHDBzAY9ID81KGkrN_f?<`diL7NGnhGGNHC*=&26QzCl-%jRdssZ*xV3_bT zMorWKH)A=CuMj%j`nxd*sH+(N-X;eKMd4SKUbR#{b6?c=F{P81 zSBSc?(~(}H-l#d%@Jk7O{0|kgM3D%j!;M_a2W0MF#F&+~jm5Mr0ccm*D1xFBsi3X=FFKA3|B)GiRM`mn zc=I75%-ufsH5srmS9(yKz}-N1Y`%K1(L<90ids@7LY$xtZ@jWTK1Wk^MY^YumGa~{ z0wRNNfrCzFcOlyMH~2+tBN%n>SG zIKWe^;6F7|*9GG|a!v&zu|j*bq1&WF+9oit`{zdFYEB-FBr<^%NU2jRKmuCu6i?l$qtVa=(O~R`8njHcZ;3 zru^5MDmUao!a3ype2zlq$H&2C;o>?eYf!93T|g(o4>lBMnT>7yGh&V_rcZjnK1O<{<7(nuY_^HodF_( zLQs+8t9{SP{Tn{ifyVAu8!LtzYfUv}KM?j%*p#>70zEC9Ry`tNm)H{N`ttYlc{xdq3+>^K z2E!*)x3?jbEX4M!_D%+Ch)|m^@S&)&RUsRFrt2RF@v7AM zy{Ba^fr>5!@V4-x-nIdfg3qo|<-Z3Ck*`P~iokh#GBScakPT9L^Kx2c^!-D^iVKqJ z4*SL2f}3Dbz$U@3rg7`r*FW&WB#X1!AWD7(8N-Jj=s*pWgz}MiD1B>hBdVvbnByzA zJ3MBYx3Hkj=BFhd27}Z}?Wii178A)8yG|s=+r(b<+S644Y*fzNi3c4zvT%JdSRI(K~mPz)XdXS+AbG3=%v>ZJawCUp15(>=b0`j@M!=(<0m z070K5RnubpTLo`iUeeerhhX|v2loe3RgO-h1E6zWAfaTf{rz_|Xi4aZdoQtL^zsZJ z%Qhmr@lztAczj$a6wLS3?s!XaHNF#*SG@i!;empn`Bg%cO4Do9TS+P)^caY2BgoeM z=EiYBHW9*I(n^uk;z-P`G4Zw)$`zt!X7Rgxah+W?&^SSi{mXH;CSw^X?3v8C0J8Y( zZb|aizsmzCf98onb>yU3oyxDlj*HV|AzQXNA~q(h`Fj|9u+9f`DZBM0# zr*Z}S^{m_iJk`IL=Mr}0lh7wgr?R;=@wl2H`!@B|Mu>@}=107+0YIT!@qC0d{!=O+ z@GXjOsDhb~(PuQt!%zJ6CH}s@r8^xoDnH`=$Dh&7NenHPrI9oQQ@Qdba?@UXDYbMj zjS@OeA@jKAIndyZ@G(jzI!G!tW#gQ@$V6N;H6HJgUgl{(QoNe*K*)rcU@qmVPvTY7t(5$*sere2wpADj!I5hC-z zyF80D54J0zeWRe|ERg}&S7MjD!24E1b3zK&}wWqQayW9%D?Yd z4#JAo$n1^c5BsY2ZM+*B<$HbM61c#HA-9o0K~-W?YGP9q<4SV7`#ketOjhw|!$C@H z)O!*l6DYm$_62>ZZ*mkbqzP^+C0wG(%j8{TuxDaju$AySl-1BEHOy!!ysnO?@)|15 z5nFjhzMmYAitcsZn5YLo#?=Zhg!*FAZ6lt2sd|)oP|MWa_*v>5t&EHKH~CqR`- z8ApyBf#PFZ5%YnOo7;gA7rm4AVf@birzy{}1Qz3!`Nu_ya)xHV1isESePSX<%Wd7vwX_V0z1M5!E$*&T)LGo~jk^vx6M-_nY#s#FvmvQwpIqh|Dui1@Qn z!sDu^3z@?ce1RZy_l2W%w+!feO01p)gRK(LyF^`O9*e_vo_YE-o0=s|^Fmj*WH|9p z8I(l_#S2LyH!MJm;3$Y4!6OhT(nVp%$W_|t*{NCT9Day2Mr;=UM2RUD)ieq(NB9Ut zjKC~Uk42$tPWlTme&ec49>(OvOnM$HVWopWK@*<6n@6aZIbztUd5=B*t0r4CdrS*R zPvCN_+GJX)v;po~%fbElEU`&TuOBzn`SaP*_cc2f>>UkkBwUxuJC z0?-h_WdKEHb0~L(hg1OyN0-nsFY-rfgJ4-CBlnYK&WE zop1{V*t~O*v*f$AnEC&Ag6yzR^WcMr@^BKq%S;#C74J7ad)%il^G(6Ce&kKxO5wz(Di(ilX*+ZiN0UjuQZoh6eND* z{>+Q_6HWg@=n3sp&mW*rtJI}P(P72s@$wi@oyeZ`w;NuVr2a5&N{E=VOx#{%@zAi> zjba9GeSvvE=nJ5wE56PZc$I|#Ai%J}AtfpOaOZ>W*X+P?TV};oJ?t7)tZrr+2r#=M z(S6Gbkz;||v}KAdLOLZ4E#{m@3l#Vt#KZsF8p~;+dpcOV`0hRD?1Gix>7Y+l z#YEEhi3v_mTuCrT^GEYj{!dP#=l6b0yLnL9uPDx#>b5jLoh2lcFmH8FHA6`xoCbZG z@}bMhp~VW)301>P_#!U)>F9zYpV8N6V?Dw|Y)6fJ%mBo$lUXHk8l?> zwp`Zx6aqH1e~b59k@Gb_59PAlxF5WS+KXq&Tg4oDJ$u+Qm?eCuP_+;4)DEeVB`>ihgH3tN+=sAR@rccrmgrBD zA=Q{<#X@~2$8ho7jmkoakfrk#dfi)CkB%dx0MFCX*lcA)gBO^qv2%1;=n}39f+iHf z8P4kaHln8`w5ZewuW~YVGk>YFo^qz&f|}IR2JEl!q|Jd#;q5fut)-=Y7c{Z@2IURb zAYE~u%mSdr+SUIIJeTMnXhx6umkK_7$}_<`oGR$RI^d-l#>DqbT1h3_u=1v1IuW`^ zjBIg5{uuG4T+%894|0qt3qISkb5p+`>SlJ9ATW<&YH*<-Y105##4^EY#vM6kOaZAtAhh^K=@A{JodNF~ZT&Pr{{m zhFO^RlYb%W=t*8d!p1j%5#6}aiAok~WT|Q+p1i5IIJA$SPHV^U4RL@1MJ={=ujC;a zgMot5HwK!FF116NCHd-wWcu62Non}z{Ymh3Q?GgiJZz|tZ`OACxu%i#xLM|RZfy+{ z(l9aiu^mDD=9V3Q0|v)Cfx5SrZ@A4n6R~n_u}G1DMLbyg_lUd$;65VWZ+py$9OFA^ zbqXEAeh7hDFq}t4AvEXo47IKYjwSoi2xyB2qH;(_W9Iu~;XFKfrOF4lBk>Q6<^Ogm zgys!5o4th9a-tgfrr>kFmS-;-7I(?0_G6sWG?nu=JqBxIJbpqn;cw;-yajY6$-4S) zp&o`>?gMN_OUCc8YuHMWvkbPpH~aksfB~n1VqsZwYoA*Lhaku3j(h9yY5D(VDJ4pM zIq0*g)|V~_5TCYyZ01||$cxm+eNA%O9x#76*2(er6k=Z3c1iyZZoq}^0NGWG2@v;K z1gVCu{!YIQs6AQN3mwDfvWGtax#&OllF6=6fJaH2kg$eZxv6FEa;$$e>y3X;a>DE zU2Pk+#n%txGyrE1@`G~x(s%7F{IONmI%Qb2liH;a z&C<|I%VJv0B#1T({iRzw3EUKAM$E|Pxct@N!qobK)lU~0*q>wTiWFNc)9rRZ)TrL{ z)){@(vD78m^(q@m6?w?I?VKUDy>ZW~3Z&!&E)K(;l$$VqivtyknOE(7U*wGhz<*jCQ6qV8Zp*S}fpCiw@t`=FAU&LH7_>0#n#`Xk_$&uQ~RZ8PqTh%PUQHFw2M z06#%i5~u-liR3n3t-K^9v}Wjc`z-u0wbqX+FX5nmYhXQ-EeBZ;?MSW2c7rwKS&@^# z&AfgBpBH8$oYXYJjrzYhypGGPN9>WDcK#s9Xrc>=)c2!(mMmUKY^eKlUh@n0jr@}B z$$oo+=hz*=6@Hrkxa5Y&ebp0|0_hLZSyV=N>J0N zIx`E11#S^7*ZFUWtj0>%!78xA|4$oO{C2Iu^Bo9g8*ANL)SaZeUHsmlwtadFOg!cr zqhm{jLrVV^Kxr43_hFW3UWX@wqM~1Qz1|*oF`XzOnrU^aIlByGt%?+P=|3r^CdsbS z9GyIk%y@=eOV6Z7_&=BMd{~0orT|rxL`f_XL5q+|d_RoyUTn)0MCd`X#m6| z3(bR|q(2m`?9`zy`+LuLD=LT2h0o#&!vW}^*-IA>Ezo(=0ye=5ns$IE!L>F)TOBmIO%J@oxp5+H0!IEwVg%wlLXPk4@) z^aG0)lf2!}WaWrS?=Z5kN&0gzQvmm6ytTG_GL%#=hiYlEEs3~oOEw6J-)KucZkkMk z{cnWJc!Jv2YK5<57+M?n!V+Z^1dSDw0LlvQW&IUZH{Psq7h#cr)8i*{Cq74|!>+TRfBLIBJf+;I{-g)Lvf*MdqCV^2YlenY zr16GW-)Z+ZsIW32!5XCP)cdtt2EPBe5T(qZc#C9#=}y@plWqj$FElx1(N+0W!|J67 zDo_ThJjG?aOQndoyUZ*?4Aod#$CZi!v_g2^rUj11r&5fIIL| z&Oj^aN}k*uA^_pj@-p~u&JTV^)LW8`FlmCCCnBQY|(qvJTdCvY11wiz$e&Iy9MuRMC0WOqt^Uw7wc!k$+7}3*%g8{+=Ibd2kcvq zASZ`Pe)L-qO>BR&4z zgGQ%IPS|G+M;Vq`Ycl`t!t!)vUQw`%6bZt`v+$_4YV5lqqF9)LH@QL$1^v6_WXuM5 zfl}wLHrS*qATN)^epJv&CEm+UD`#>Qj^1f%mU1rO=h?PP175BJ6&;{XU zAw} zNA~elw#QAboDA|`eUZ)Y`m`P|!9(cvSJ&TPCOAE}3!0xjL}YHc))Q7CvrF9J`q+GR zW?5}dnKf=Se0#N>av6$?`oqCC?haTCFV>iN9}30t{ot!-zmFH$N$=PC7`kgs;1|Sv z7qWk(q8I1+h6F(n7>L9W$iyAyM+1Y`~~($+#1#0 z5FJ#rIA#=E-I-nvg$?U+Z0<2ZV0b;3E|0*|f?TH`UOK)DU z;}~|kk`4&1wrGm4j$cvAR_NdOHr1d1OxQM9a;UFw$^{AbB8GP%I5B)nMvpBhi%DCr z4`UBuUDqi*iD^_^Ft;Fv-1_{d+4s3W|1j?n#L}~^Z|XLwNmYOAkrbiLiA}xFYg|{d zTX9+XAbI(_peApSds`DTdhj(XQsK9ZEghI07DvKZma@K}aeoz`rczD?>DzKcF06e$ zPu$;l2T->T88ThRJUGEBK?to0vTf1Z-=8hPjKzcaz8fiQWd6NlT9|mxLM}$@_gbcq z=6dNbhb61tn>Q7{_&eOfrEriaSu|L#C#)ThHQ+wxE6)6Y*%Gh4IQhB~B`W&k)$r^` zTP_?{_g@O4{dZxumD6Rzun<2hSeu-B+xlu>-ixbr+jp;Rvo%(8-a)a&hQ4bd6WdnT z?-EOECoNn^P~M$;GJ;xFy&iFU6#(Om8D?YqSL#8%N)=#&V=Uhe;B}wF?$+jeEgy*q zrizMHuDJvp$G8^k0*X2#Z2vcc8L(-*nQj+J_Dup@^ynM}j@~S7mw0eqt^6f_>8Zb(p=Az;63~9Ze5# zixepfOB>5^BCOB*G-mpsDaiBrcv@lOVjaBVEuRC*mGVdbi(#b9Q_M?X_R^2ix1Q>2 z)?ksOrpsQ{!CDwI#&Nr17asQIz3q0f$0wyO)@8t;;~>dnn=rJ3Bj3dhXorC3mjP!r zFU@BPZkLf9+X?4BPci(@L^(o%2}2Y4duiY)C;1%Lns(^B^rQ(e_CA~ z7`xGAd9+X6(0}(kCR2dprL|5HlP@TRq|bKFQy`LWT1MUOx>)ga*{?9kBNZNDi_r7> zaw~M7++|sGuaE|y?ech<&yoFYdRh zn}$_zBU#9)M-pL5bj~R)RvX?7$Vp zI8uMiV0)ooNjB=+5+IMP^Y%R2+c5FHwP92yC(#6#fh25m!B*5A5Pqp`$7u**9vX2U zm=Wf4m*VQ~XjDu__qfv0@bjM%U1Vt0gvfIzw<5z^>V4 z6FgR1Sdrph7Cgjfw4a)G%7z)hdd>-3YVAWwCeShSk=*$E`VUV86iA+N{X}k2IqvyM z#TDTyCLVm6%U;JJ8d3#?g{H;y=qV0mwF`DEFAqtCosLk*pkrS%1(1xdFN)SVJG)G| zrj>r}vrEjmv+QgbFFpJDrl4N0rlV$>jy;`0rb?d#$MqwD0hdR)(Zy5aM|LpGO%1|J zM)eauK7K?MwD?IppWmGKvWqQ>hFOK-*|mxO?UqI!!evi;c>{hsmVH)?>zaLT2N4#^ zK~;Ecsnt_}q;s8?Q=|SaLbE`Qzi&5eH9Q=zpYYRbtIn+^phC%|R@`!*s}k29SXW?A zkKeLt*a(HpVy+$QxqG_!jPM_dgB@H%~mjXZX?p@OcT~Rh%9Gfa%I%i!|-1rQHBO18BnH4al-8ghy+s^8X^1 z&h*4Q3h)v{>#9<~hy$nL*pwFm9;Vz_jBRY7uFJ7*@aS*)PB`KN z^g1BNa+F%G)Ys;Hxyr6@PAc}~;8qeZke6Bv2_Cdv{6&|fb-j9S29z}2j>HAr zf+Rl<2=gp6lNp@wQgyH^GsLCu0G!+cMS<&4NE4m|YB#>|md`{~43;cbb1W=9uGL7@ z8}t?_0PgPTY;v9o-_d1)7|ox8I2apFfGoM6c;;6L=5wmrggzXmSr_G{@IN2^`j2f` zwqJRxELRKpsYET_J$K5BJuHu#afKKcMYhh!9Rbk&PxkLiH4jb2? z9#r4p(sz{5eQ%TAON0+#<)84_deb+tqBj6Gw>Xo5@zfMz+_Sy<{yYL;dq0dR(0SVM zErgz4a&S(|7^bcV3@Nh{zk9^h!_x3XeaGrbc+C$|1Xn-vec?;2zMK>05p=I1jhAbK zj=4Hs`YI_iD{zuwX*R{V1tBm88h4eHj5s(6%poBx5W!H-4=x*G^VyzRGmVsdPr^oq zKTY7CWEe*Y;f@AHQHD@aLXM&(x`2A6rlqF#bekYH2azfU3HptYAR2;V8MawgOzDsh zAr;^ageM<*VK1P%3+xsFIcSPcq*Sf`(HPT)cpc)aKAOh7f#C)2S~U@oi@3 zckUoR!7a-5TEjjCMW731@`UR)8AXbTO&>s!gvTHYnJ`_6Y3r{IqO#}cCj`r8xY%WL zI;3INOzYxqgRyb%QrlmwkExi;^$XFT23fF3vu+pPoS`uyhgGv_RNy1$e`jy%-P|`l z16--SB3qIH5r8^@w3gn3zrp7{^VpmO7vX92|GW)Ib|8&xJR1>eM>gX9y&>ahi%TLd z6!*yoKck=kP2Q2G=(s#27})YaR{VJss@+x)kZ|3hN$25#2yC(XgSM#wzIEK`wv?9d zlJ=E}e^Ylk!Ew);@x5>FHK}X$!&|1GwlnM9-o1*y>dZR)(hq&VsT2KXX|>BRdG$*R zG+F*oLAnRuboc1eX8wU;LIAq|y5=x@>D@(L*S{?@!V2u~=&H}u;50TdGS#T_(K-5Q zb7)aM>=b2BB*|jAp#0!3X9>8v+uwEM{fshJ)lr5-scY3Q$(opc+fU!gL1VTSUqM zLxTopUFFqZ@^D-qul3n`PqilIpGc{u1u_7cXsI_rgKWSFfWG8=U;8f&>6v@Ph;ng$ z7czWD``+a+QUOPQkm%Ve!=TB|$O0Zz>xoxHT zlC|wfIeDI?++b`DmFNrxJc|awPRz10=p%v12dS}`1sQf9v1a8(_E7dPy=T>6C$rqa zCKBf$yJj*s1lQ2P9(fH)q{JMoCLBms4{jB3NrAljcB@_w3t+R!{ObEROr0w_t19ux z(ip8ghyas2DwD9-B&kyvF= zB%p8!9-u`>0jO#Ks09B+LfaDa<@>|`_aj(PM05j3WkhxiaLk+lgMI<(L3;5dl|`s5 zibPV8BhPd66;DtmJQaHF)4{UF7E9+Xw6zj(M?atgkg&0Z9e&wbyCZlK#y|jK>zvX`feA|A_62JQ1P8+8Zl-Zjvfg=_kSXh8ycn*qJ zX6;Sd0L>SDCxNSLcT|LT43D!zcb!OxNV<} zX!wvs?W|a(aMwNi-Ip`wOgKKse~!2KzxiRXKl#kjpr5?`*9(;Z^upkP>sv@rN3YCx zq+!-?!zL`M7S+|?$tW=T*|CE~VDjfL)Q~W%uS1bx0vixc2t<@uOK3TD6xLbEAM2^g zw`f7oeup>`^(qgl7TXt4HC^`Lwop=3|8;|r?gclm5fF5!-mk^WWFd9*wKq@T=YP$! zygc-|v|cDB2^$SOcM_rNFpO{Aw3w&6LcW*QTwCCqN-pgKJ8o{_?sRT>_jCvD=!9NQ z_u%J3uZz%3y4auL1P#76w0&E3Z5YWSYlo3244mjyW+o{LsCoXnU)Ob>xolrSiEEw) zG@{PSqtCZ*hj!u zoRo;emZA87;uBoFpF78TxeNz#ybyYrJE7+rbo?09eXAvF!LY}TN;l`A8T!@XKOJ#?d_qI0L(y6 z8^V7mrLjVGIK#>gtGs*q2O%UWb#DluJ%AM3Jb-vRi0{Bq$H)r+b<^&d+>a;&cQRVk z9@b$W6c)(NK4Qn-3YUlZtQzDtLkI1lujqeb4d!>)+2VVLi~UO14Lpdyb`q|B(WACz z(uj~=^U2r_^7jae!BKwRw{2nrCCT6J;ZB2!(I2DJ=J0|ztvxg-V|j$kw{~Tj;;#n} zN=fd8ru5S8&_{^OLy$Otd)^V&@TN!M1z?)ud$184;(kwu$AxtZnws%@STvE`qk~Lz zh`{?P|DbWmzXy$iyKd4}-1{K^Lx+tT;L?}-LSXE%JsIZ<*3yD@0Y)HBMS0dMO1h3w z1hzM%ioL+222YrFi)}z_7o^Tv(Vy9}|J(}VCh6Wcmm6n<LIq~DkD1;1)ke=$x~sh7oJ5I;Bf!xS7xC$~9tn2TXH*=HDs-WGKx`B{ zl!r~1*jM{{qbr51=(5JBfC!d|Jhnh~op>uF6ha@Kk@`%n*6xCS=H&x`CyQ6Ab;Q|U z(#pQ##s54&&^_IXuI)TkWPcz;1k(8IZ>B}2a%>kGd=;; z2<&i`rsIxpG`yl=688;4&mnM0T}SqWL488QEfw{XdrUm{R8vL2W4BKIuW&wzLE4f$ zdJJ1#35c|V=!ngn|yNqqAFKzQKwY1QfNHTu% zV1vzV$A*cqs_ZbOZC6PSMgP{Ux)8qFWV2-i+}pEWYdD3TA?1S(8q?pz8L7WSmHE8hSdie#3J)b^EiwD=ZX}RS93FxIqg{6?1b~@l%kGZKI;#;-Fut%K`hb3#9en^B z7&*~kuuPUe_h1QmRg{BBBTlyv+hCPs-V~Hl-_y+p0gPmlCB$~hmp>0lJjU)^w9>~_ zdRfezaT+OUXQM*6ZGN3!Su%K%WGO)LJ1V-6W-{vdG*M*zmXV3wAHJ_$AF*Fg+LUN6QdSaj_ew4amt#F&0`W@6|r^1b6QOaUxyAB@%ssHwy~h(SckD)V@CQ3Hoa83 z9wi&-PDc`th5`)*dd5}xD)fzZz8Kb?yxVU#+3fg24(zp*UrbqaE0^ff_r_rHd7lK< zFs~mw=nIYWglQq#Y>BB4>B5HK_G8@mB9od~*}r{p*wd7jWyGGael7J4An@u+mQd{Q z9m_%S>SkUeUSpykJ_bD=+A6dE&JQn5BgrWYmM?QGgR^JpiI$3Hb6cHGDcHu|XtJUT z_+sv{zl|1)I>aejp;e^1lw%Q$m=?Hg_gh(V%%|VSG#_gq`Nd?L4$6!N;IhOVxjjL0 zBpUuc)>VLQfuws?$Bq)HH^5u-NWhgesmjTZOWMFM#H<#zlG;Z~C^J*O|5^XYWrW^yJ zyiL@>JWaVP&F$}-ip`E)mNl}WUh0lG#iOB`e!lIx#kz{Eb>DJm7-W9_5rW9Y6Inm= zTW$DyIN*)ptmmKG1+0GC&pTa`jq1(oS-Ngk7Q`p`oZ0C^%23iVOYhkY*Ewg|B9*i16n>JQQ57jSD}D`#`!{vu5%d6`{hT{1IY z8r)V0!4c>{JhjcA4TJ<80j@m=U}b5E-w8c)jv*O=*UkUywd2G%+6!~~8CjB@{xXt9 z`5TR$;i)=eeR%w}bkMzTv$8LXxy}^e44~NpLA^+Wkd48TduO1Gu^8rYXw@ao3X)Z+ zxdJdeUk>u*zj*nYv;<#s;=YHJt~BDkA?+&T8j7ULCiBA|=!C6)gIGb6_H7;`2&uIS zY1uBIHlHxEPjdSyyIQw;8%KwTpQ{7E&U52#sut5#==HKq$|<>6oAr}54pT3zml{oY zKJIk4p|R%+EFE>GGLcDLGVJEP1)^XQKJPbQAHywvu;ef=J9THz+iD?RZu_mRW2I+X zg~|n;ICOQQRZJPD-mieZD)jlms=3`1%3G()!XH0^H!oUbt}33K737fMA&62Egjr0~ zXWl0jyPQt!G;hcpiUC_$G1{2>EBRd;m}s)^&*10gm`85{$)+c~FcOYrCm9i?MY8_o zT1?eD9JaZY0>i z$j3zpEJ0s)uz`wznxnt$de3~uQYI@(v8X`w;!pDuR>Q?~9naE}eSoGsz>IsR>_!ts zeNVi>-4i_&gf_~9Q{*!Zp&!`KN20>SN2`kiVmez;*nYBVy2(GD930i24Z|p7KtYy> za`I({%5m5B?^Q}Nwrv^CgLqEH9~r)Lf76i`o_d(79~ISLi^TqQy1is~uAE_#b$tBT zG&##Y_dACLxa--NFqJ3DLYOJ=OK~y7^WIyp22s*iNacjIfpAlR9FN0d&}7`eVv-9@ zwm53>C?);)8nTUvs@^!dwSnNk;mbHOA{21PsbaOKIxkD-$fjlHL9D?RyK_Rhy z*=O37j_nXZ{q8fM9td`>6K-@mwM-_Vu+DP*4e4oBJMOAmd6%BK?yJAN$k7g{48zPe zO_g3iozd%8x{;6Hy(;3sp0eCKIck40pvSqV;i2#Gk_tDqUkkI9d@ci~NNpN`ea-$V z3Y+l033Cd*HWsDJ^J2Lcpw0w&g4USx?>|Fp7x`$VRRflJ+tj>WytaCMWV~!H@n69( z6=3;!hwK06F$#CTnoRY}O;A>Xv2!7ntu=Di_&IoF9q7jT*k(HL*OJA!@6kqKd^G<# zoKMcwKENc^EHxd&PknF7R3`B<2s&(lnmWZBcEp7=&$(ix-!A__7bEKoC%jv@Ib9{@ zy0+SB18n^fzf~_}41L+n2x6Y1jYKT0pE<^0C2}(Ya&20XQ)#Ul%v5`I|7}zF(cmgJ z?mvMmoCDz9x64$kNH|h?)Im=FB@LrBAC$T11cJ8+f;n~vo!N^!0lcbeW z%=4489;fiDpKYtTTry6X>d8@8lv5EDM97W@z>!J>gNgY4w2CY?jnqz>Zh6U4LM{wM z+2a3i~C(&8J1!!AG?jFpWo1I>x+6uV7t5R3hEcgaZwa+BNDibZS zS)|$@;eXb3!M^)|$%H?k-NGVCD(;H6icX+r*c!c#j@KeyH#emv-Z#q5>;FJ+8pKl` z;#l8jU;VrnH66DRTYzK0BSH>Hv3YP1aE-MY{COUl#5`l7-yc*vKxYdM2xd4W_WZ7p zZMiBpxj}mxyhXLhn^rh+z@m=lH2)kn2I6h*3M1-cTwEsH>}b=Mb}TDT+8qbRj;j57 z)5Vaz4Pydjqrtjk3p`||$^%nf9!2hFGZGJcnS5lZL1|patC^l?tEn#(Nz(Hei`t@iSV!0m2u!v0 zrNu=1)5nQOw*ON(f8;9dqhMekuFsr9xr>~9LGu2!(u`q&1E(2kEMqkXnk+^0*}Mb% z`#06Ck4CdyKc_8KJ5E5QR>&Tm3cIvyCIdpC8~TbdU}J)H)205`obKmo)84px8#|U9 zc3nJ6XK!)gL6awATDJ&;wSJ|$h95T@EjiQl7b-&vTRHp~Q#KxF$g#_RiIs)|G=KjW#+>+ zOZwljTL{ZyvA?P&XYBM>)0sm^4}c{R2&g}zjQ$slZQ!i-NCUyBjX$#A3hQucpiq3y0K;Yt2eJJZ zX{KRuSz)qIR%XSX*}Ts4ZE2;ftsb ze6iy}!(zk05?z&u*cg_OSbB>sD2C)tBs`2!Vl3A_V)&%(@5|-7;kN$xS8QE*i-nKk z6+&H(W0|?y+`e7Ap;_2XnApRo2_!zP^UHNR~gaf?_U@x{S} za;@m5u|B0{E3*zM#l{P6@Z1ic@Ue9+*Il>+3ky%mVCvb>JGmHmR6m^@z<>eYyrVN14{|}Yrmy0Q)`|t{Y-fJYuyVbX+mnaP?Lt_P_zY=uP`-*+u;2fQ zM|wYPrPmQm{MQ(gJoF#aXW9gPr>OE+U#QFS*>)89(?K0~uf3FZ9&PM~_rETR{*SUm z=vAimI2x)Phebod+3GKFyN7I)KH@cR<~20Uj&&_QkQ!CB%jPxG9Vypqs#rCI%LC7e~}s}?8+-H=}EH`Bsr7La68E%im)5ACAlAY$^FrK z=GNR_h^fwG@JV8b9GI!8a^IzGoFRv0Wksw_zTLXs_k}oI>E9 zx{;5g01*;O zV%PW6ndg&z#`sC8mvvFT{K-B1K0?wlpSTEdqV6zy@zo~QsFhV@(o?jxkV-0xUWkw< zU7tjQhf;;2l0SRMXg5zTT$B@Fj(EG2K~Wm@#3kog7ZpV%jcn=4 z{sJG^K1uqquR5hDJ*D}(@46;&x(yGCvVR(?wbZg9B|vX1Q$_#K(Q+Jt_0BuGm=6v( z^bvjG*{)sRJg1e+Pay0T=PY9r`fn;9Z9kE;o$VA;k3bU$uf$Z^bM+q)RzXt~+L>$+ z(cc$NZVIO;b2yvj8xMK=g89&}QmIuaj!d8InyfvetR_+duOm7@E+orP{V@+P$KGvt zKIP=v6r0a-mo_aSpg@}5t_f-=0D!v{%h7Ch^<T)8=Ueko#Ks5Bc>c5sd)6Re%=|HAyeurUso^l#~&al9c*toO=bdQ$TNPJhgE<03m z8-~>jDS+z;%i)R~kD&nlz&G3F1&bnfDaSzwQnFBVbp%exsEG;As^)Jx7l*(BuaJOH zA@g{5pu)|Q-N#6A^}I}{FHk8V#{>IK%Fcv;)WfinwRbvlERrK<{L>em#m<7iZzYDH zFnx{YWXDpcF`$Hp?uz>pvOHCU-w#A{JM?$mU$u&b>C)b#@aT)IeEFEBHh+7ApQ{E| z4$0hKfTM02YX$FQmXdTcbt85obP`NUCNoi1%CYmFVz`x`W)9^?msDj{-qTD$l`0NB z=ENps@Ji-8amd-CSB3coGm9?nuC;!oFdU*jTdUU}iZb;oD%*+QvteI&65i`gE9;bA z4*1v7un}eRR7If@pnb)uAHiYAtfyRRQL(HP$kHxZ(MEwyAvPfJTxiXY&b;#}(n?{s}7!=AXLGdrpR%$C*RXIoZdnAFrrgS?!z?uQHonEZl=1 zupvhJrAjmVUqqtBZ*Iqh{x!>4uz-{;ZiH+sv!D7}$AcEL_HcoVpZ$%~ir%HlLdw|k zkRt;PEQ#JN%vRdF&Rrbe642}hrPPMnRBicb3bD9ZGSbDvRg3;n4K#WPT1kO{1*n<_ zAr!(aj>ZP9YOjC@&*|}lVoaJ5%rmz1`gNk&^88Z@Sht>Y&brWCmVG|InB3=y^S>ic z!M_++aM){?mL?MmgJNBwj8#rWN}6}xu|QL36X3o+1*5I#*$bNlz|yOj1QoN`R>7Xe z91RReWKG&eZ{)kG_|1uur+b8LP-s(%g1E-DLB=4?^`F3yNqZp3fjKD1WIYT>be1i} z$iIJFx{ypQROCn;aN;>Q(8R@MJ!sw!z*vLW)%6RG5?pLb;(~EcS`zVa+I1V%?Hn9eqZ?XKbL;+t# zv@)?$fbs%q0qzgbX-LP*0$;MljZG3!JLB{;WC1AG{a> zM{m$Qv_07{OwP*zf`ny}?ZA_plbad=ZB3_)AZL2iXFK5l#QZ_i4#B}fVAD}PDka3) z&}bAAIiL@ow=#FOMWx%P*aN@Vhtt&vNrE!{gVdSMOFo0#_4n=Z(tmp`F#deK<65j1 zC9WNT*BS{&GhpvR%^d1N;@3Dk)H5)-ZDjBpuxA1XIu&K;L^W;}*EIU%dmO*ZWm$a? zFzAn<2D>C5kzQgMN9Dx%jjUDt@)RaPcbUdT!^WgUNHVdVe`usnVLEFX?qXV1?*3{R z?c#fzq%gfXrSo!w3Gqn1*@|CeI?jvcJzJP4eP?F7_HdZ;@o27Y|TC zj_OL3Af(S|5TvftNR z8PZ(islX=PXZrTw9f46tV6pvbhv`}{+7rSqg~BD!`{L^|^AuT*|5+=~nPRAYPPx*K z-U&kH)`-+=n}!#PiqcnaG9|26In9J+s9K%xuRh}1^9@F~UVfnv<45v70hBd<8tgLs z(lydjY3hn@sR_<)X;!l@tQ>FqKI1rqy&T&32A=Kz!6sqqh=jZ6mp@)vZ2Qw_jV!KFg9`CWLpBW+64Fh&*kz_|ogWz_qrv{5&mfb+3sO4q;?{E zWjbO0$+C4@IpOaeYLpb&!dO@u7XJ4b3{h|OKug%n1%N=&ujS7Me%wdbJe z)k`3CVK`SJ%a(!+qociaf;95l8}kzos|gl{H8zV2L=l0W?j~3!5@-qOyXgQ)Da#fZ}d1!XsG^A?D~;>d~X+fIO14YE3#`86G#p z9=j+eWk;I`45?X{;4N7xa^2cUD5oika;ZwD+HEt|N1TnNC+@4Z7XrM zZtQ~6dgAQ;9XVX=q|1uziL}$+x~zpNg8bN<7P4HKsE|eJOGvsFdQcex+6zvTtW?N# zMab1^9|&lMvg`Ur-ExaUiEAiOxk-~KcREH`#Nqc-nvq&y8QMh#QJ#=mCCIU8!f^VO zXCYWqbJWW`7u2jNp%`nBvZA1nsziSa7-6{Fv!JCIyIVLl9AS#ExQ%nNB3*L60ygVb z)+mrl$heZJDZ1_eGWX2n6*jAuhX44u8DWAKV}6EW%~vd{zcf(cO^Era+3+1Ed#8J% zD@jz0x*zq@{YBC5GdCdTHD*+#{3Wxp?##=z-3wt4I-{RaTqPokr=#q-Wk&A-)KtAi}Wz* z-Mc9TAR~;#yKV3KB?=7qY@gJbv;-%Jp?e?@z$ghy(*^ithKGM4?b_;m#{=e7K1NN2 zt|mP!i0J&tX5!%DGJMb#CK*131ir8RF1OMWK;8tUYg}Pn{^vR39m(H*{U{q za7R8Bb4e`^2FX#K-x|SxdM_47L}!+3y&nRibob6fRYyWDdF_tTA-#u@>Qd8 zEXAo}=~W6Upy!H=hB_72B^dO7Quba;_kPd1t9h{bB}=j*n2j-^yx)9yi}gEF(WC;=<*+mE|yv4rYWLPt{ft z=T!{6Mi$)n6hl(9CX{d~5S1g3UWI0EDBIDrxK?hr=}=3_vZ*iKRGZLk@lfVFkJQG9 zjlJ`;!&Ub>sd%X||1{;cKCq>JP#bTofVDkNnta6%{1@jLM^Y4U_5U6C91ObG%>zl+UMlphCV)@{1cq@1M4*GnmX=E$0 z(Y0b|v73CRrdf&ayJZfpD}w-!Hu&(4EphvD`~(SRcT=lp7HilsJJmwxL~1IK;b&kZ z00000V*p$Ls2Qvftu`1l!3aWGlF&Cqhq;Yewr$oxRHOK|YN9+Rm?+EHZ8l+T!H9WE zw%nmtZt3Lj+L|zLLItd5@9YyG#x4W$(q)ws($Bh|6ekI+8jx!!6^qo}b~&3zwFPUb0Bo*V7r zS=<$-H!LE`^b*uUEul*>;@{U{o0>b~P9jjNr>>%;KB)~H>7+vrXyzjv5muj$K`I@VL$CAZR@JEsL1d^Mb}}w=&|W~#e-6P0lG@L_AcEqgNG?ZWZYAdI+-&9i8gc)Y zf*@pyXHtWy3?XIrX6}xt6Z?!;5n9cgFP`A57(jz!2iW>YX7$-bykSHy7R%Tk&Qa;m zp}Nkk`ae6o@G9NUV;Xj_b;Uo-vD>Cb@pXL`q}dIofs{z#a@A7aTq=SjN-Ed{(|KS{ zNJi#K;k+2$@k}-A!%4J4Hkcn>sOaacIURJoo0rhsbooKvU38C~IE-@6&wmehzn%E! z-Gq*mYMV?SP6;kJ#4*RZVkB9Ut$?O7#ykc+W~<5RP?*1;z0sm|<-4SS64dpRC3oK! zv};NNd4U_dvb#!ynBWHU+ijznGS zI{Tw<;U$G3tXp13!Z}1=LwZwzG-(SQZPnN>PZgamMO?JcKzYhsZ?;|pIxY-NTBRf6 zs1#H~ayVvCY7$6r6)@=5Uz%R{V%SmUcgM5zLz)X#`U-Nzm)`T#*k=0U-f%$D@2QwF z=mSpyCcDYdoj=;-XdfstbnsoK`X-F>bi-I&@<#n0PXJ?Xs9z%bqa zj#F)xA7|iFLio;(izl_&!=yDb9ur}prRBsMXCt4b?E*{W&y(ATl$YNb#sSPVz;S6~ zy-wvPyb{xEGVG6!w*X&jI9D-pE6F}BqR{N0a`gU|h-_4d*TMM8xc3z`|u<;d{( z`nNlC|M~g<=QU)=suY#s+ze26{@*1j*yV1RDlmVuMdI|(D(7r@)7u?6FWQ3+8!q!l zd&Ymr%*q4I*k(aUTvx7?uLAzF4pW|8BqxP3s3PCesWoKv&YD=doVsy>q8AH$C1iFb z@;b;_NsYDS$x)GHWysuQNRi-?r@$CUAO{%;bcu`oHebePh6Kimx-*N4q)aGnrpQu} zoD=*{?_*$bvW#yIujK9CBC(j4tVF)q^y z&IycHAf>{)YhCW80=on2@vtz1bsJYBdjdY{l?BH66(zm}K(1;A#JEitH3kfLItXx$fg{>^Epn zkymdUNja)o0wUdoEi)4M``kx$_ynq}Uy5mVIqb=h<<2J^*;+hGc5{U$h=>C}QCHLJO- zMHEpDw)k@V-nd_L6!SrxZeVjQMvEph1%>{XH5n8WH_^D|T%p|ztRa`rRQ}F2SqpMfey&aX-b!6nz;w*B?h?xD<1GQ5UYdF=Fbw ztX!bn(*!A9sE_l8(9SjxOuU>QyRTfZw@>MJQ8dnkuy6YK*RY(XEmvIC$8(|oM}{vE z{|M;c&+{`LBx5;*=%`7J!ojHGf4j7n8Lb4Kvz!mSS*g{$pSyZvw z4g?D@JNIoW=DdiHolF9&*_&bYq2vXLnV%s`?oZvF-1IbeiBRdGbpFI|UA0K?O`Ub!N9KZ>$Ku7Ub}+UY?cLjFG-mcHK~N_h|tL|BV3OUJqd4`Q^wt!88mrzq6Ba5 z{m|mlkvM|?uEu%kN$npn+)^u1S{eV-r{14~Be8Thd~aHl+pFAMQ1>gpby>m}FIM7= zohOmYkNqxfp#T{cafeb-Mg^f~aA za4CW;A4No_6X%G%(~nUh%k&JrPcfayMK}09Dhj-VF!RvR+s}5gfDg!GTAOp zQcwRu6s;f@Y8y4R!u<74|Kfi$mxv)vdBpdT7$>i7O&db=oE8Q58^UBh41AuWtp#3% z^&9W~R4Mh)jo>RZL6x!v>wH6N4L3^4b%cz7CA6k~LaKq}0SC=_8Z$?*G#-pEl0_$< zz;mqk^dl_D60sS766Lh>fhP<`ZLarWj4zQIup+ymckmTr--e&JKvRf)3E4Un|G>c3 z+guTz<}<=$>lw<1=iv~MOQs;Ez~7%qyCEq4Zns%M!Qs%IheP2ob(#UPTSIF&17-qB zrJf-Huj=$h8Lbmm=?7NfHpecdSW4yHzUE3=@YPqeLV{2CbxyO?2N&JK#RTL}6oCr2 zrEF3dxbUCpTa(=ZSfqxlvUBrBvpCAjfE^lG!mP67%<=ml>XtH}|Gv4!YMn14uT((c z7uj)~1dQ*(%v8x>oWQcZDJZ*fJHIrm?~dVXzpD33x}hnz{4*nL$*Qbtz)ORmh;L0r3T<_6;# zb`21w7LWJLaH*^G#lz?IbjeQ7p{zwpPd-XZgrr4e9WbT5^b5^KXq`@q_2T(uDNB^4 zWn@M=E$~xX$VRXtiW)|GOOb?-Nz&A$CqZZea8w{o&`Efja$0gqbWT78LQVvewvkO^ zA4sfASERt@7EUIibS1zTbyjTuN}^Bb47MSfd?yQ3smhUrxYSZgQc6@#oDH55e1(>r zNYHw6cZX9hu!Klpn7|s~z<}aTO5tezM->Fg3Yti|qNs?V(&<5!?n*nybi%E z(O>t&CV9=5OTR+8_SCAlN;_JH65e9JE5b70JvX|v7Ya$jRPx%r)^H}#G2ZnqhEXfJ zxYA8C9Y${8i3NuM_T7fA{Z@u7G~4VN#$*=0L>(xqR~Lz>JHh=*b|-ifnoGkItaGDs z7c2;|KaXL54;35CAIZN54^qbV>3;Ffl4BIq-5{NCY7!1X0rDvKB{2OE32jKyFY}a( z<2wY?_4q$YiNdA50`QEuX$;1oitabR#wI%2U7_31&)cahaW3XK=4NONt$1^XT&$q) zqfQ_BC0g5p2oWi}rkFG;aVn)&7b68xGpDHBz=|5=-{hafJ=ER+P`JjZ+!Zb?rU$W2 zvz%@M+q)eebE*okH+EF_ZpS6ALu^eN-5xutrM8Jeb?6f64NsE!)W$1I$p|0<4`F1~ z_V>{pO$|N;c0+?1lG#fr607yKbw{#6t1yS!J6!>z#H?upc3y6z=29xVYi+yLP2Hlv z5XTC!c!9Z4_nYg!Qz75xCQ${hmX`gTXU;8G)~~V8O^4VUq(ke{asdgQ#CLfcq=Wql z>KrmGolF|R<;}E;al>YTK*} zv7QZ^Ktiz5frn6B2&2GDQ z7cvtq`D84-K}k3$`I?X{U`?VAJtAIB94v6zn~6qpAB9iDhN?D#TQ+f}FwlVATTM-* z4tSj3R>I2m+qK&Ne9!X++&mk}WD3vL-*jfasdAQ{!B-CQjV4F*asIfcpm>)73+mp%t;v(FU*w9_OuF2Up2OE+-xti~zBvn6BA|(X+p19+^ zEY^=V&7ux^QZ2&fm)4;?qOUL?20xr$WUAm%47!`ychf4a=HxR!@|SWXz-{r-c8{4f zGm&Ewb_$2XDRI} z%WOvo{1+6cm51~NK;#ZnsP*Sb1A1IapZ%HPto?m|S z=z2WimulIX1t$;~glG#mcC+XH^1t=~zX1uRMADrjcJv+^pv=OS^c)~P&`Y852Z4aw z4@LtiUJ%8NuaaKH_C}8y2m<;ua*nz#dJIBaKJ-lmf4u?BwcCn)SIbl^D=Qo+&^9ky zuumlu(C5&2-6Q+B@m9L9VLO@TXs3%W$-LnZQub5^jSR8itz8CC?GjuF&Ud*KITAHi zlg(Qti-r&d_Q|Pk(k42^QPukk8VSMk9o@x*fLk9|E)W+lsIB2gvPs_79S&FoCo@3F z6_y4dP39k{+~q=TqD?YcADhDy_#z=STkWq8EgGQ7yR9>8R5wV9wJBaOBw9I9-RCk~ zKC#+Z!pPHlly1xo`gcq0?t9a^yOSZrwo?bQu^X11BX|lVyYV$}0MjvvR)D|wrpR43 z?1iNu5}~-gFCk<--VdMKN>oS6Jzqu}lnqB;^z41JA7s=0?t2SEbUBrcko8UfX(Qd1 zDY_=elUKA)msjG`YWzDiF0PJG*$afrzd*~8)`H34hH4vv!zZdXFMR)X5YDDEQLZI~ zdj6wOvKzVO>ttD^#mj^r!_-I|I=eP}?JO;_cy1btd27Y&tRbXkqC0}(sW}SGFBi>e zO=%%?Vtjs}>BwB@Fn{TvG*hM_8v_c=2{EV9oF!%hSJkl_byIju1^G30+%;#j#nXk9 z*Hy;7J$J{u($65t4ROUa0=()r$>& zMz^~JvEj)`b72z_UEHN|#7!Z6R=7Uz=rzYU%GIAm#)ia#+X8W@3_!L7CqucVo!z2#n z_Xtw*302WOAPJGaBagl{7(FL2b$xMo?K(&}_Q1g>=xJ4iqWC*WylB2kFXpr(%&XwV zf>+Zz!{mqnXK!_UtFzmZdm=6A9#c?_Y?kMS6DA2q-R8~(e5}!gEa+flA62Avbg=X{ z(&zPZ&X$pRRZwR^&O)ArJ&T)5xO8B?L<|1E+lnVfzEipfzao_^&s4KwWlR6w4zPXUG4K~(Rz64Dl%6aaF&p}a zfF(pj5D~HsUlL?o^yoRr=dLW}x1Z$2%@j5d#R~iJWS7QU`9LEn@j5s@OOzLEG>9=L zQx%imZla-!XKD!p@mTIHv2WevIl*%mHdMnU)sIj+G$LirxW_zpvUt~T);S}m=fYBY zi;XXfA`wgw81OEDdR#f%CtGmh7~-f1QX_~K#-E~-@)}UQ)sH&e-w@-J9K`e_l|vRu zeT{O|HwyY`SN9DvU>4pLTl;E{A}ND&Qm+Bb>dVN7%MxdC=JK^&0J5MhK~)d`Fhk^7 zqu29RHmm!faw?07{oBivpUL?Xc~_Gwv=SvgZkxMCMhfNs$s0=TS^Ezy25LK<#Xe50 zc4MZ6J>q)hZZo);U;nP_BtF}-vFMOrm5+kv;rvxhXEDwKoCVp7(07>V{J8Jwn}}ET z<+;zFOZgqdNjh~3b&@s5Qt2haHBbLXp~M$sppw$-i-xLRS{!87XyuHWzE1b(ucx$w z_ip<=Z$BQ$TQ04cMR?La2{Q^gM9-Rztg#E#1pD zgYFU=MAYtr5Fh|n0Q(ko!Q+C*33?~!pWyGMTW*5DU$q5&hF6HNC$;S2@ml^dDaV(4 z8(51ILN?yg>d9@Q_8uw7=n^6;mV;O!|`s5|5gzia_Ov?gdYETQaQ|sSgFR=#-SeX6LMeS57CU zl->!++o=}%SO|boxzV1gLxrelZHcXu3BAjciNKVesFTG*2{)Jd1O#kw$l!Ag0q~XU zcczzYz`^e;oIyOGy^USipQP#HwPB`Lty4dg&~cc34rX&zCC7v92nDVwzK;3FctCB+ z1C9Xg*QkKshpF{)f!W~bG0^Y%t_0D`2(0C&(=zZM$f)KrEGq~-%R`;AO=EjzXdoz4 zj7>YTootS0y(7NMvJo}iqx72&@X1d4Wbk?7x78&0!;tx|pHgOP6!q$%k6*JIKso;tQYWm*K$bEd?61AfDW9}Y zsSg5;b^O4w?^>-q?~kzs?}vlR`}h4Y;pW@^14f4}4`M_%KkymcY7;W5-p6PqP}m=0 zX!o|P1V(4QwX#j>yD==SZ$2J=p8muVL*F=O$?W3{nQlbIVU(Kw%+}6!lhF($d3>^Q z^?*U?2lrfCTOh9u3DkBiL7`aonOMgX_OpTklN^*JiIml*UjEjs9ewMC7-s|h5Hh;r zM%fNX#bb{Y4`7qw{)alFfB2XT=|96}4uyl)qu2ehyeyv%(!nv9`0Y(z+0n+OlYzm& zW_=$27hBpOu3xPOJ}C3xB3hJWAEGI{q7Tg7wB&5v{XWr?;gLT%UK+z(JCYm{qVuYTlQwKTw2GUmhK=ejX(Ua3zjx?JmycifHhR*;^d$g**x51qfj>_Zv50;DM4O^axH@BWmlDPB zrkO~_e`rUd^=no+orrI;gK`BYwEB8QT2h&7i$E3D$ih}&P646eO*vLrs;f=1+0%Kj zo3htlmcy|>UZ)fJj`9yx0`_-W?hv;~|2S*o1lJh%>__Omd*L>(IUO>qezUtE=yoIp zpALHEH~h^kCN!T<&;UQc$?z>~H31Wj_w{LPAY6ZyvjKDflVMr%48QIJ?zt^6y;3Bp zG6d}mwk%?#KttS`ZhTy8heA!1t80oYB5mqm*5W9okJh=J_g=FxVqj{74}PUY2eMwt z0{FjKu#kqy@)P4n-uv52{V}a(@_!e*Lfper7)a%~CTI2VPaH{;y4Ud8179PM9`prY zo*$Hn&JTq|%@4}NqDKe`cplgxp!}FjN`6izB0umD%XwML_Cne5{h4D7sP%Kcan1gO zQdKh9`)3Xte|WU7T}^H|x$K-M&4wM0c55Gok0<^4CzH9`hi+~i8P^hU`v86H7ws)S zS&;FC`K3Qv{2zjlzrBe>foS(?s?vY@PUbD9 zKitc&)Qxi}uNb~-l=L=L)&5mP@^yFQ$;#*he`A@fLJ8kh0GF_jlYxc$ooc;3(~K0XUL@k@RCV#tENkRNiNSwzcibN7H$g=_2eFlK`X3%`214lcFV zYvXdoqMncST86pi2d3f9|3vv$wYVzPv@Z$Y#=<%a{O$;a(y%5)Ec~bj8%LxMcQ5KX zhf6wQ^HVc21iHny3192~|ZF;pjck3G{DZkcdA>vcNY0>F$kvx`!PSRamMmmj1=}^{f zH_aNnE{=G!6*V0sugP>hH^kNG$QqH8`3?TNzaa~m%UwTGu7l+mCJF6zSGiX)fA`hb zz4fjPGyd|f#v%2fCcKk1N_p_#KPLW?U-MajdFz&Io^4zWYlJ-B0a1Q2wo&YLSJ=Cf z49DGTstc{ESA8?(8z)Wu7XOk-K*IBFnA|QWtN}|o?iHH_{VUyC&o8toDGPVK%%ycQNDT!>yq0PS1C)fxKF zl+Dz-aktgTm*ha>E|TT)q%QlDhW~l)^7|)1P%FqB2ifVcF(6o^1ZvAt-$^W1+R;wT z*@?xgzBNnTBkEb8{+>6wlFv)}pEI_9WFc4)qVT-s%37;i0dir&!K1Z8&lnXLqZg=! ziDXYK=lL2l1^&Jr7CxV_5fT=IK)T7NJuy-!rfAqYadbN-XED5dv|y`uhGd9qN5EO& zm9B3^E#el(LulGpVQu-Y7Dag2#125rCTas@SS(NKf|+*{uTACGT(`5K_;0P$x>ANZ zry~io8y|}1nPC0Y!s!^JTCUp5%2Se^fZ3KXeJjo)&*%6GLMsJ+Q(}bP4kum%P)$Gw zpCANTGld@L$Vsl%c*N?>H?O~20}i>2PPMYEbHqZ7#@dK;{FaEp$L)z2_x-NK#!|Y@ z8C)HU^^rPfOSSb^x@CQ|NnCfEiex>qtVKtC+o~7Qtpx=KQ+~+{>St5M8&l#446uoe zIxgtM8o)46OGZ$uyyP7-$$>q@`lIzD5sZL_FVO$^F@J`!Ei&;JSNGOfGSEVNgq@Ib zdMm&TgvN{*_pAJz*GA>CM$=%dQq1(~bE5KBSHrfVgGvai3Tl@uCk6my!Yaq$YN)UL z`b=rcvkG))_*kF`tA>EXoMZ^4PePqed2;}Yo7@b#R8x~e)$3G{ZrnhaWOg-U<#1eRCa@Q9+a%P_v{AQ8T~hnAx4TT|vb? zu^4rknix9wgxHiLc~P;x2hMdgWX*U^dA_f$69VRC4Sa?v6V)*xW`pFt+}fNWrG{b1 z`tQHKe7kdzGzXM3@aN-Fa1<)&@pcv^S#LTlQX0t%EyZrdH+?CR6ka(v9ysQbG)3`7 z6%O2?D^>9BD$y;t3z<~r lrwiAr{NBXoRjj9R0(2M@hSOHB|5C^->FFi$g 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

    si@P?OQZFZk%BKVV6VcohRR3|@3R6heSGyQ1!w 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�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

    @QB~S@+K6wXE6%X$`)eI*aqJrdXa__ z9)`%bwi+yJsO{m^yuI@4z;2bU0jnw0F&c(6FU^>0Sz0 zNX9i!iLug%klw^)%gYU-IQ+gd>}s&^`Nt<3wXLnC9)8`=2>$3=vO=;z_wNZC$K2Kg zDu#hmb`5^n6(GvYZh`^@%Qt|825vUu2R2T7dRhOZhHf7xFR_AYA#l{cX}u`zJ$XS{7AHaz zcXrTG5o@&0s3gwXt}}KA!rUR{twaBqGYYn11+>(Y9s zO6u5`2FU9Jvbnhx3(TiV&C*tlatY7;2{qL-bW%FXm2vc5X~e;KG2Gt`lF&)^C8BZV zCKXf4&JpN8rIq9wn%%UwoyUpsIQ-;Re-{g=#OzaV4lSK-8pK}k-}!_XoC(-G6AL+o zCxXr`qy7-=HxtN7b|Ux8dLd74lFznZd^WE0X2178Q6Ou!6~dXtD&<0L=yONev(N<{ z7#$+ICbhiY_8F3lK2p+I+^oN{OHGZ*yt}Mu&`^@>QBBXjs_h`Y-kbYAWBv+*H&ZqERz|tHXdcm`gtuY+0cGehZYuWY08V^SG~0o30>1X= zK>0NWH`zt3t-vj=MBZ13Tv#Uu;v5{&3KXla;kn_Yky2T9cxL_mw;)&1)WVh`%qI7_ zTLAq%W9YS&XGh;)cIeBx%I`6h#-GGzyNIrN7$z!`H=vN79VCEP$dKoi!~s4 zB4Rw-9|~7Nl?2%um#p42^YN9ItPS0o$tH|!0gSP%0(1lc9O^H#00ry9w-=syt-Jw= zv;O=uEwN~LR4n!f1%1$Kx>bOKE44;zg*|I3@yC`Sz~%b{!h6vO3e2=WUR3lBobLRB zzQ6(Q(uf?|XBi@XU(GDDKf?`RMt>r4lluEwy=Si~*56aT(n$?^HiYte-9YWSQaO2v z;U0ZZMgD_(TXqYS;VwPdcC-cmOFgXu-fMt$(~c6<_Sc3h`9X@Xj?*M6ex9^`|2n-w zlM04%P|$dgcGdQJ+W zMX{|w(-N-)0-$cq>r$LrEC{Jqa-pIA*Hm`Gf__e-eZJZo#Q!R)%M-1E$uecxE7qb- ze!sVVO34&2>p#>=VN6W8Dck}#HXislBkK^6{Qq#XBGAO8PLWq_>QjWsPZDRt^XuKu zB^A(VjwvjwXtU@G@}(Dv$kFH#>_i1F*5HlVLM+gA?YD2i&)Zt-_fH!7TkF(DUOHaX zYcm@|an<*jww}zZ@X;{mQjVSu0V%PI7jDf#Bmu?hg|tAJHbT`2EM9lkBt`hTjLI@QR}r|u zgIixV1P8U|$Kqx-^B+yU_aPZ4m0c*3JJJa z@On`+G_%whGPtF|V^@9aFGlMQrJ4GXycltU8B{uY>)65Bi^w{esx|k zSKfZ|->`Se=MH$liEQ?_{Zarvp;*055_jAGY=>K2vytj3d(`4EoAKb=>^L3d81NVK z<11{Wfp8a^mP_Q!H^BFGqeSlr}Qy;0!NSry70hD z{-+iECrq&V@6;-*E^a`Q(ser9{m&8)9oe53CoVWn0UalG(srRu_1E;i`&(4R@ckJo znDwXS|405HaNfzHq14&NOT$A|vQNcW#FCb5Ut8$GAA|?OpC)0VG;KKdY`sUg6(WvC zuV_=7{GV-tSz!1qRda4cj#~YC^*jCojL{ZuXPgNvBsr0nPy z#n`a-+ftqi<-kAm9_j+}`y#R6!H&s{Ji=N{2ZHfa7oyjQsls+t35K^moh8-xx#|GfG z@q+MCB`O7gFyHG)0SKr<@;WTgC5IrOhd7!#VGevq<6H(D1=sYBh8FqZe~OO4Ww$dZ z*}pLbkfT4T$R{XBK7HiWl`rwC3My2^r*GT${WHT+5T*}K%Hj@oa#Yn61REGAN?)yy zwIJ3(0aa*1Y5OE7e47-&=q&te5OiZM*4pA$bOd{C(7i8fKDEMXwn7%-u=Dti{TASi z*e^D@>4sUxouyg|>+hFC0!xj8$?G6~LrW*sl~M-Gwt=Fj2OkVcN`ugtKdV%#xFCTe-|p2=rv(WtovqZZlM?$70& zTw#x3JKa&`y=gn8>+;HY+^`&g3)~`eSUueZW#tJHuENVu`8lO51fdX?sSpr*js%ZG zlJn@>CnSUuS^fI(Q5k)<>(7IukGdXB0^J~FP?6*-IH>c`P`QyL6-(%m@K**J96E3=xsvz!NgS8R8?2K8G z5G3ltj%IiwColKnEmIgUEAC_zEvcgl%B>*;2D0$DLbaBeIf<&|J8>e_$vFk+_@{Il z|I=BRFu~bN(lx(4nN3`|OVV*w9JtRuK3wv&{+3rWK$W{|rS-vG8L%Ky(R_|8}m;CDVYA@H~j95q@@tN$nkNJ{3hjEaE2|mwg$5ZhJ z=B(^KV6xtE&t^#4I0g^GGGXdMSm{)SSO*G?_Eesl`?4!rKzCh9B`|BL1$P)@^`0hx zVmgcE!{JZ_*Feep|C% zcE4-n^%ZsZ1{igz^PxaT7r3DoD21M9v_Z92`*+$7 zX7HU5O{M?DOeOYG8Bxo}qK%YP;bxssa97vnFH@`G3OuecZArwEuF@jPX;=Rn@5fWw z7e49iUHPboO54+`i;fbp3%GKKq3vw=!l}39AK}NnRwA~{H_6wsLoCFGyIeTsK@` zO#w|kfBzniOAYAJVT1*^^TA>BOPA3C=o ziBZ*4$xYVdrGw_Ym5Y0dlRIaDNLa4KI5RW)M)p&BvFr(m=c*URHb^XH*%FAdt!Xo5 zt@x#Tr>}1Xu<R(NP)a6x#?sAk|0_Fg8Ak z>i?4K=Y`=B%{}*N_q?_)f6a2*IXhJ64)U@@k-@2HTo6 z`X6kS!&A`Jc)uTr>0f9IEgB{^5;d}eNAy}qGx*}rj+QqTh2+swH~v10Y;PNCl9U+w zD)X;KNzI)|E%cOG^`ivI7DUMa%kCu7*Psx-=+BO9TmG=opZ+A~U9f!RICA75ZHHHw z-6#OhW&ZZc9C}aXI{zQsPZ;@q#UQ*$cv!+9+HmJA0&OM0V(ybcl&vKFUEmdXpz9X# zPjsd7!e=i;LxQlFF2=c#jGd%xF)uN%EVUTT{ePOkwB%rDIdaHi(Ok?0NPW7zS~LKF zAssbP+6+h;6ototjOasS*;KJPV&?=FRBQ z;L+RcMtRdMvP6T&+7-7r5xr&@rcLZazk+!BkgWr9LPP z%oiHWWwY-0ZSV0QF^>v~3Q}y&)lzfkuSJm{+O5UGGO&I#}k>hA=|&g3N{w~Zx4?}1`jeF z4**P-Wwg_sKP!C2Z?`MADk*(EO%JOKyLf1LV8aX^W`8AoaM7smT8 zoi!)~{JLKrZuB)_P&2bSD%dL^3??DFOwakp?-b}scl2Yq@aMd+;R@)Y*3LFM&;{?g zx+oS)&64_}Tks61CIOn9RGQJ(<->WfzUdGxU|A*oZwAw3AJR?O5`u7E9zdrR!Xjk- zmdtO)AJTqo8Qlz>o@;hTq9M$~P~_O{{AURViTC>COWiwpM{HQByf|MZdEiJ$07Th^ zUI(?nhOhtBUb8l3S^*WtXkGl-F6B!j|FL5pr7It+ulbPZS^ZOFX|l35Vz1eL^HjPd zGl65>c?Cxh6!Pe0<~gDd^&HFuQE`5ssWATI)*#Nh-m=?)dJBpb#-3aONY=rkdBCzo zSPv5LG>*rG{-NX3?Nj&&I$HI+GRoMbK$vLwYkPZl*)(UEVM#ir!{^wWMQxuV&43Lu zr`Ucw8H;ma39068@Hw94aX&WnBYM(##gJ*XRA$}xpa2o4tuU%HNv{`r2Oq`=rGt` z9f{hEBdND^NWO66JTu{MD2sL-Z31h@IRIYR$-QIxZX2RHjLoJz4ds5J@a4nv10p|n zuM&!b+`G0F3WmyI+~!a??)&sHAweL{YY<^*Uab(J?%H#De*c?D>D*|~q+$rMjldQy zN!k2DHmRu=Y#*Iu$RdD()pWTJM86!{#XNP=>F4<*o|h;+;|9qA!8J$LlMs16ioBvb z&|T?!CLL>@ZuDo=9(zt20^Kwf99V!z_T0o3eeZAnsd<~Mt7lX%6bo5 zX*U9VqXobsxPM&yk?N?e&dR{)IX37%8n#?S5hM7cPW=V>1-;`DB>iV3g`okP+t9z) zA_6+bQDSZFapRgBxTx3ixkQMy7k=%$88LUwCyjSUM_B2{mk_U1%W@I>Ws0yN@;8<0 zSca8|W`bV_yU9>TVl&8!K9>LAP{0+0Lmq1*bY2^qRx(l>z`uWQ+++a{17elY)V7qT z9KJp45^tl&ya%XL7DN=~^xIe8+`%OQ8K~waXFA*c%`Kh+Y^Qc#xCQ%94}=x)Oz3BB zwVpZ6RjcbW?zi|H?#lT<>yg#_el>CM);`Vs*oep&59Fcx>oDdY_==acZ)jsE9oYf{ zIc*VXxzW?M9=W}8cTEg!?t!&Hvv@(Z5m$)TM^p$qf7nE1%S6C^tUm)9)xmNuEwD$)3i=(2q;*4%x6af+$g0}ST}O?=!7w4N-TJmVdYdsGZ*;b z!>iQ;cpa>)Thn#^S1YY9PpJM>{jM-@)ma1sY#yvek5Qd8XH*W@J@ao^IWU=x!r_94A{2Z1p%}0`-b@4Zgcb&HeZm?8v!2AY+IRcm%$!xDbC&bF#rDfF z4Rhu^_~4(1b8ySc)0}tR;j{fYJ`;{4XNUG27+LYf$5w_r6-lEDx0}D!iDiQPT>IJ+ zKXA`ME_N#d?I;jU!{lfRmoHhvmC=;J^#roo7hoO;g>(kO>rfhnU`}9OSoNRwCO`^O zQ&ML}*mSZ$Ex!MW4X%IAf|+ji9Q_*FG*I%Td#`x9r&8a@W~~VXX({LH&*!${v=+H4gs^s8|Gi7s}q( z(yMzCt+KO9w+;Jyt_FJLWF0PHD(fyEry&1MGrN&p;0v*OE7ypsud-^Eeq^N^A zGA$~8u*lqxeB2)oZI(o|V7K{wM=AyxNH%7k`6BJp|tn5`4d`rer%> zU+5jCaI%Xz=dfg!e68_65{%~*CdHG8TgqKtYP4~IqT-*T-k`35fpq4Sj&HXGUo*9> z&MYH>R+l#LpEqRke$ddFGkJWLcgGCZ{LpU130C=)lAi#aI?P+wO)IiV>Te0P3?m;E z?Y>{;kUBk$<%Z}l36~2X)3X20bW|B9y1z{u{KU^IG z`yDWjw;${q3<92ux>RjAxNeIbRn+m55^E1TPi2rDO}V zniovTsI~!8QEt_UMS=KH@3xcN2Bi46hooA4ruxoRj)YHUB;a-^Q3{U#W+t&C^VBJl z>j}X_qzlhxX_h0Zdh(ri`V6~!&WF-fy$9z9v0^!9l|v+;EsqWm46nm=dcr&$NhehT zhO_zN7zKPMj&h2P^->y%6lxB&{fMJK%Y%m8P>ZP1GD9{U#C~sQ--()_NPbdJrJ(SF z%1f3yBpci0Z3niY1-UJe4s2Pe^eGVh`L5+Nmq>aX0^LD`HvE~ichqgra;Mi%l+`e}_gu9I5iA?)g~yONJAyjm(gFe7cvgR$Pn$dMtMuns(3=rIdPfMfj}TP_7Bm%vUr z#aTU5_-yoUBYVVWhkptK$`{7|dW0&(D zZIH5>T;~F(2X&O9^x`56`bXuku$;?!B$ZkqapSqH_&rx86|Hip%9XzDiU5!=iru(k zL|15iemdYX4RYOK4op{C*)VHOwR7&{*t(rRMdTaD6NL?I0qGBd7I4xWIV&4yhlS^z zwC87`ydSp$LX1ulg7gN`fJK0aCm2x1fE>$*rH>3iau+}tx=h^ z1x*-4iJ@A)(Ua70JkyiEhSI0e@Gd_m19}6TgeyeiwX$g2f{V{NQ7`dc+FE7Kpd+Na zSLGtyly=)BDQDTw3jT}fcJt@N1+=KS{s~EH;I}HZopdQ19#tNG^g!@(bxW$)bc?Ti z>ml?82e`mqFdDSt$Y+O58qn9|i*tkOtgN<7HfU-DEe=2dRv_jhVL&C{2IY1D zpt6jEABBcOL?nH!A#O6U0B-3 z%p#IZlcCywFdCXH*jtv6HoCUYs76yD@sqZJO#5|2N<#b+h(5=bDiSg|!*Y@Y5izGQ zs`z*2a-utz1eS(EUg>f!=Yi;36cOrcrS=LR{eq<4JE* zgmDaI7lTm-6-=Hw==^g{Kl<~0klXz@!#|)O?@;o`lr&&*Sv9^+O~rN$zR(gm%ocJ6 zGC<5K84NU2~ue#W zB$}6xVY!BA{PYu$qP@ztwAvz^F^2V^Nqi7`QBUia0EZQDYrl}UE2s>T6%1Mc*1y@H zhJX1+B5K!=u*To6UU*yPBow5amyZz_@j8gUr;0A_?f*p;<`ygpEz&)Av}T~ z=YvH{F%ChZVpIkm4PLx>BA#2Y$$%O85qL7~!gNp*Bq!imy+l}z29s~LJyrinMeX(w z7Tl8eT4qV=r8JS=SxiW&SWoOuUV9ZHnd53%IB6~>tWA1(E##xg**?I_31O)?yJ8GQ zz*<`!?u3RV18!$?EKGLtEv+{QXCZ;k9LDJo*84DrFXwEGBVrXDO_;g4PSh;|`Lkwn zzP|4WOa{ukAm4E8>{cj?;NAJT6;&?}m+_e^f~$-KllJGs9KP;0^|Z6$V1ra&>yNr5F|=<(>z-otP)(Qat$$7Y#T4GiGm<1El>A_}M}v z^I&s_60S5bTZ>gkV@vFX3oWQ|Zd8UdPM)L>Nvy-56(QP8N((h(NRj`%YZSqTy!fvO zJTh&k;7+tN6T0NaWff2}W8`|njS zSZQOIy3o&f5;cER1Em(5fx#!yeTx=ECA_rY+(FUXG9=^a;M{B{-W;mUKCne9Gv$V9 zY~m-blzsgj*>TYcHf6jmnZ|R^Q_49ym^V%}Mg2;HalCH^L;?UZHbf3KK4^3R^<^e0a2AwwU^ zSZt=@aT?Lld=;$db<$zlX3yrtC=(b!jEIV=T$!f+>q98cU-!Ki)KHKCEl zse4vqliL0yDJ7)v8==<839`25*7eI5g_aHG;ngO0hNlG5I`B)IpsmW}Wkri%ep-@A z${^~d!`uOrXUC9;2JBW8M(UcPN`~1xKEF*MLqMcx1640%bPQ)DZafCVi9%(y46f8d zm5d|ZqP55Yj16MCJ64imVqzu9gwjvTh|CnyA@uGZ%~WNU$d$&JH>O@UKsH&Q5$@p4 z(l_b^&i!i!Yn*1#*Fyx3qB<>EQ7wj1KAjc4CDHJ+9I@tPdw7I zCos=SzWzXd%@c_)X7!>1_8h;dQ{sFc4Sw@Q@e^0GSsyaeo|zA9$si?hCOcTU;xqcq z{V($y{M09q@KFFV04dvCqtKMO-&EW`u*7MQfdZ;q$0gi!&XRxv%=9aSGCtSyiT1)r z@N~MwV04ptussMpEyy@(Ji(BbXt5v{(M75)t{*&82#tNlTP)WOYm1bY?Y*gDe|)< zNY+F8IALCjTPWnKQ8q#+8}X5& z)lNIb31H@%n?B`a&Cn9Qz$SS@AWn7&q`}{14}m%ZtDRD`-@`s>M{*0Oul6w3O?=Qe zbM8B8Q@#rcvzkM3@PNLfp3V}x!FkX65w|BGxy*Xx{%PK z7_}9iR}}mln|nOW;|YS^G0FnPC|cXrI`Tayco<`!&OZi|zR-e^bG}t7lFVgz(7h%E zWSrsm{qM~$_`Su*9>5XRoqrs=4&-ti=xtf z7<3KmP%t5QJ4QtR%;;`umT7}TTpj$8-_gC;clwYs61YR5p0>^8Wx8U|cuTb9> ze`y(!X9FLQlzgdQDjE=DOnPB&Z8)3g^jXbF6T&Idw$8S{pD}d=iV4ez!l#z6RBQ8~Ie2 z*4Qb2!~PAiM%q2LLef*1;dBgp`bMBoozyvmWMzXD)d9h1G4m@^ff7S876C}L_54s% zp@Cg-k@C77c20WnRz39l9RPTXwQ(sdcRpT9ZqTxAE5=M&7}vL`HZpA3+l?4|%D*^K zwxCS<(jwlQH0B)Pu2BwOPp39}T)$ye_EV85>sF2mj(M`H;&b0S_2ED|0dvRQ3w2FFAPXF_R^aUroAH2G`z3^KaW{;&vWYvQ8q@GW+B_h$)(q z1Yjp*p8YOssw1HytUa|PmkoX_ajyqA7m51pONeDK;A)Cq4^`4r06;*$zsSLCFUH=_ z(WPRxQ+!)k3wjhTu@5J*6!EwJ_9v?{YYT_8b&D?aoj6$AgAYB1a;`IYsf_@SCtP?L z1n_sjg6@yN>9Nv)Fcf{&ErKs5iAtOBO@e@RNijcHoD&q3QJ`WA#h1KP29heIOc;;H z>uINMkY-Piqyxi2>;#fzV1{NTolyIRC?)fN$7AiWHo>vjo6#`PkT_?!#Sfkba6?n# z$E0oGaX`q}=zzl@Ov*lC^a~r_>HNhTbWL3Uh4Z7^k5_VJ2J`0D7TX+5fKldM1o}5B zlqSfFg|#9E_~l6+!#1aIUTXj3uxwmqU4FewDPir*gOsMFe$10)m%+H9&6_>B8}8C9 zTgBpj)wg@pr118=nOt>x>8~xr={}i-GKM%qt&Y@zlI(I)AYw!S_JA>HKp?|5et#h+ z&_jRztj^E%tCq1Pv1jO=n+;|D#0(If9eK1<5KrqI$)D}b7NV*9I5OkrEzb9dCv%Gw zRMrm+VPZx(#v-1S{Vp%+~(@>CIxVf&BQ$xA&fyS({P#O z0`N^0S$wXoioFL_RyK@or0+a#Q~UD=wjbjo>msbLpeQ4bFk#1K`^D2-iQ!nwn#Um5 zneE{3`^mz3w1!o;L}D3dsI5b&6s#y-;tVCg_24#+oxwG(2Kn(EP4d;cJ7jqu>dgc} zOQ@1%{mqwfBvOOhdo_rLUAT{GCy4@w##dY?mChk+fEZv6Dm#PoF7-pVpFkFEBC1~Y z%ja*!Sqbj=asm6&;OsBwMUC)!ND35M1W-S(CIVS*D709{*7bGH-U;J$rX({P3Su7| z690kI1i{CjBvSp zE7_ejY$EB1Dz&MC(X~lijn1aUO}oB^QDAm~`efB(XrkB&gLIo@7Pw43=h3j0#Si^| z>^`>zd@|SDn_!8W>6m(1AFCQihHLLC`OtCEC5A|A;SASQSFKZ+O-tV`$AZcY`J(WS z`*xG;0#pTh9QuMA9T5KRq`2SrY0&&^Q;OP32{sBC5$D<03#J{3uy0%GpfPc$<;(P> z1l7|xjQk!iYQOFzVSSAh=#ldgq;WS@d3X= z7veR%pX~YNU9P>5Oi-{eWE8~pI99v+CC@DKMDg zLmq@dVJuK~o$AJGl+u$_t#abEgEGG9g)3P4BPf%YjoHDcEIQ0=b7u38Zm5>1}S7cMM+m-Y7q@c^T&zC zdFP|omJvW1Iocb6Sk->_OcYV{@fKLbER+-5Po6Vx4+)BKJz`-+$KaT=e~P9EAzHNs zR=jd_ByKH5cSDQy%`jtERifnXd(53D_qy9&u<~A>Th*P$+=1-D6Hwbg!NA4EF|B!S z5PmVZeJ0w%zOQ}zALtXAw`&j#i2Fi2h6^1O8R!J|C|BVavxK2-_=R_((@@ZmP@|)x zp}-@;#*mME6}?gO0r>DI*vhL44QJVhLUb7?B=2a2owHU7vNndN5F11VqzJ2i*3g7$ ztsd3;3h(wWbqM!T?asd(t1!v|AEw`vSPngNq7Or(I=!MEF z)c)zT9P~#N6r3^54P^(?;7Ju%|2QRpKJ$ZtGoZN`Ae_U(VjNdEbBp3T3sWK823oHfd=SSor8I`BDzcVnyfs%XZps z_iv0gg^#z4EyGDj``I?bspk{n?tlth4Rn%Cuzei@2WWk=cz$Ha~G4}0jV?qc)7>YpbcHEYIXA99g_Y)lq z(UBM@-|S~@GJe(Ett&~6yfKzt#?%K-)Hm4Od+iif6eBF3wx9L14|`FtI6*#p0Tz@e z%|E@VFuzpD3fP5rZ3Llf}vg_NQf|gF<>sylu&dXD9 zy|Fxe5%v_H1(5-{nHjON^CBSA9Ozis$dfJ3)q5HGE~|Earh|1iS*$jjoRSOOSs*d% zyj!#=3F~7XOxBcU%NGQ0D!Bg9-mFX4Ma=0EZ^9!D*ko5`-Vj|D)WLUQ_s+(Sgt?kp zoqf3$IMFxp|LvCFpzlo=2K&A9lB*&!$|lzrF^udmAr6Zs&bkY|fv$?(fk$4hwxoHC z{x6j;hdtVJ?W1S`%cvVSV`7s_zn!hm7%d2#}YEs&p3iG0&Pj;1XK&AGgl&)GF9cbkLP2E|H?L^{$Q2K>w zyM8+XpfYzbTRoUY53N&#afm=Oczjn|QtUpXKvS1(RI6Imtz$__k^exBOwsVlLZnRa zjqumA!GfMrlUA4SkLu3)CQ4OE%IMq~O zuZBAejhn6bpNN{>1eTH_xP}N{5g(x%g0=QNWxGWM%nw{JVI=|Mt`Sj8ewuJY8%B~U zoC%aun~X4!o3@~pktZlpw86J0eU^Nkr}q5bp7QKyT6e=uN_ ziCTt)?FEl9eZw7HLb?O|2ge4=Kwp5SCt`*pMsUOCBUmmGSPpRe1#jXoj#oaG2dowC zr2Ah0qN&QCC2YSY_R8kAK6gt;{VmT}8@Wf%An}11V#fp8uKRdiUX%@`u4ptWNQn7p z_65HfC=_#!7+&QdhQ5PBuwuUI)U7B=P5zpD87lixYS~G{?za~4rQ@Wg-%@<>DFaq* z9ptv5Y2I^TQDBi^xIdl=${fcE zRrPfhg55J1fb@E-1(nVzC*s$K4dF4t&$+RQ4ooe6@^m3e*{mL!@(>)NSp~1YP}0K} zUPGFLWlyN-$lYT~w+ca_^HOeAr+r9c*ux8TYk5iW$&LYAC3P|i^%yA;c4;ax&i|sw z$BSi8+7NlMsCFw68bU@d7KfB)C{68hc^uA@TW+Cs-W5-^l8Nk}*EV{0)Nefbbs`9b#Cc_)^lcunii zlhNZDBkg0}vT!Rx<-eluX;5wR(6h0O^q#7&zU_)Jhai8b3!_BS_kIW+(#JOdfX;b- zZH8qzX#72bzq?9~e6k-lVl% zHMzL#Qd*3hGMU^Xk0&RabK}0e!$qe}uJ1Nhf_!2d?Chbm+d)g6jYKuFR+(ws?@Su_ zPY~h9M4CQmvGUdi8=E?HDq%Gz_XJyis~R|0k`cOr4gLZdA>5p#XX~(*Q&Ueoy^?bF zkFAkw*Dpsy>W;)XUn4l_vovmL+?!%CX;#THv(Qb~#lq1f8ju800SCV-7wwX#RHOaT z!zTtNoTVi!n|!$?f*eh42os^f6d|aKDSG!CvI)2UNSr4$s9b>pDYVK!PTi*_up?9_l z%96~SU*t;nAv1kXdXlr0cZPP7D5pyA?^l(B;$}3=ljgZDry*BaGO={1oRrTkfN5!HSz~(ptxXmj#a4-%-A^gl^os5;?T&J_CbX9e(!gd|c-ZzXnn8mz zi{9i(1CN%CTV@eB9`hVpdr5?avS}k1hwjW?yP;941{|}>2R}s zA)L92@N^2F6izMI*y}KDtgcp#!9D%@BT%k!10NdWB-vLn z%Rf1ud^Ul8)BF8j(Ei5k2pp7c7o+a>W36#U&(DZm7qxTt(ZE2s0{LhSvl?Y0=^j~D z6LU`E%mignc<=8AkJ;mF&(VuzrH#~2%D@VDY&+e9ae$Y*;SzWpL;r}#&(0D-I^yLa zxw~&nelT{7WlYETOUww7&woU`R8^NgISLRZV7fDoGsTtZ4_s4X5s^)REFZ&bDp6_j z_JAIgG#%Nixa|K9O}I%U z429dHLW%Xh9|pYEuCvqbr+d38+ z`k}KkBx{43p&^;HL8n!fsTJaz(1q-gZdBTN>k_QeZnq*PG6GkocH2)-Q_+RFL@^z> z1XmggOdf2wGkgqXXT*;ZPnYA>D#u=j4K+W=H)QhEv84za%?O`1Zh<;N1<*xNnLLSX zr{iPTl(z{bw_mqQM&VgV?+~}se37ZGD_gn2P;6Nfvz3hHf8=mwyPKk28Lz44l5CvB zl=|X2I-6|8Lnhb;?30)HjAlo$F_1ecG2W(HC|vZm)*G5t0Bp@>u0x z?~nyiA}U$QY^e>y$w3*iYaL-4)ky#RRi8W!lR?l{N~ulpl0H0N&f|ZN_TDb+Rv|N* zHkbH-4AD*Tq!6bmxgk9}M-Th22E(9lgCqUH+`!ZEP#XSJJ8lFNrsWFn*NyAs0 zpOTk#To5>`R8*VRjRm@nP4JdinWDt%VWqF^tVb)d<6hk%BDAzsAYPVZq~1*<&Il5d zD*4(;@dT%<5T0-N5SY;ajR7!Tl{~Ob1kcrU0d3OAutf`n z^V^9DOar#7nSY*J{A|6SqYE5YY;&nfQpa8RA2!Xkp6cguTA-DAS5}VP?r+b!IOCn2 z{n2>;ScsOEL;Z+hz$KP5(RS+nLadhiwZneiCRk}6DV`_kB4K!e;qjhlK#)posiB`u zR!TjU;k0i8 z)Nl|+3}9^x8D~J3!EzQ)xc{k~hNh;JXV(|mCw$d^cXv`pDHp+9e$F2>%=ecx16Bq9t?2j{}#0rWO^q% z$tJe@F)Z1Q-kCuu`VZCS&t&aph#VpPk|C{a$Pl>Hh`hrST_-`O>W-k3W5OP zqjICx1SG~a#$}qZ^)uoP%Pq_C^%m14?E$HVd+28R?J)QX__XM<%I~Yn%@1DX_Cxo; zS1}(K87c03DzI>0pzEt4wdUgu(0;$XCr?JiCR1Kz%pbSNJT7vl;DQ$|k*-46a{F@s z<-)?X=sXhS^&ok=L5&fxy5f!8!kU3B_kJWAI*1WAg!)5K2^qXUOi;XQinf;=M#FNP zre~eIB#qQT-$C7Tib(+6Cgl#>^*lj$M0eoMgp+0cw|@FCta!oVh(s4?#Yfp8cM)y} zf#`hj&O96NMy>_8FhLUAj?9Bciwu*J6@7V;H92*VwO5x!3mc-)oz0Ty<+(OYIMJD3=bEAAQCN>bPS;mmJ9T4WdN|P;rQRFczWf^0ehE_|aW|2}r z_R*)N^Fl4=GE6~iD?0Hjr4)*<`+*N}EPKedtUPMm14UW%_AdwyNLe2zJYMsoBAUxe zf8v5SM;56jU>#kZe~1i=JT7XsIprC(R27D&2v3&4N&#w^xSZ)w4YO&K8u8X6lo9HJ zyXjzA+Rzy}`_vMSj>FTrcBs18%$AnDNU~b5B;Q~*w(5*F=xdNeX7YTOaWoy#O~_r# zmWb)l$r-apBfXHsg-|_cayv~3t;&$dh7ngMp{GV_d9hKDginl^fA~KC8E;bBUTsBL zKbyQyrMW(*Q`@Brvg7u(?h|ji+V7g+ochtuL`j9K@4K<3)4i#TEaq^YH#zh6ng)T9 z;x$_V=Vm2g)gzYAP^BHrvZJHgM5)IkAcagTu8(f@r6ZeKR%#V$_ypEL z{8bhi>5lj>CA-)q$RPacO6rpJQif5+M060MYQ)!_yHTeS=Rm~ZgZMmDmX&RZ?+&k8 z5!QuFUbtnt7(y+2f5n+_upK^X{IzcgQ29~8LaFN+SJ5Al&= zu1yNfOg2dc0JG<`zNxjSd~JqWulRuHTmX_jCya{pBAI%^&-q!S=VftD0N(lxJ&}D1 z-RaJXrq}LK@EzF;giz}?Ce&aPxyExKJ(jbCRzj8MZZ45%o9-5Ga%xy0`O+I-BQ69@ zB6w@CC*HFA2^cAFXNzcz84@g+;{+wSqs<~He22l!mR|f-h~NeJPjW}j_?#%nT)Bm{ z6*KTHXst!s6e*HQ3g!ZWa0yVBNJiM*e;==Mo6tf&I9zW9cyqCnJ_etNsV;)>FpCZ? zw1c~yJ~11z+-8we6gX}!<~!&Q+B20@b8$-;lWQ=mW%~Pl&D+lpdjPM47kY74_txjr zl@uS6kMFFF@q2oG+f@#(JbQM_@#iYL@7{NR3Iqm|$o+e2FtkN)qU2u$Uy)TG;iZb` z5b5{QlJxcn6dC$Uj!vLHsD_jl25rf#)-@tYQxf&qdpPlF$-;^iK6_&L?meDGYEY`)5C-}d?#$A!FqMQNS}OTC2F5X$icM>Lt;I!um=ZGf7WquV z;dXIjPFSY;fiB&`hO!7(Ow+8g`RFQ>4~T-S{E{OB9`A;r$z|z17X}+cmq2SkIJ&BW z#|rQ3)VyK8QxSWkS<$h-d4tS}1zS>dlCDwgsb&hv5Yv0Rbzb(Zb%=$!M&Nax$CHC?x`T={gW zDe^*Q-(qafdE<{_7YNK!BHD7xxiP_D>eCqNDt5^+X>g|2K+0cr-mF&g%k_;sRz8() z9IGI~7bSTFe+O0;+=%`@buGMJ#Nop*MsJri!r)dNy}7}UfaBvIAg|X*?gZi7SQx~y zP5?C0GE~VLouT|Ku4aHhy3_TLga7~l000013*mEFr1HO0oRW}9}WFZ<< zs+!0$*Z=|JpDY4<^Z_dq020$u3km`xk*XI#1!4gJ3aZd3g>VuxLk2TY%@BJe#oPl4 z0Um}ox4Ag?-nY)b&wqYAeVy-q-uy;5Az%cC00nh-LjnMj5+xQ%NOpVe-EG_d{_K|1 zU3Uw7w{MI4uAlLmJDBr1mki7^7|es8F-C0`{hvAezXA%xUo0Oq3Dm_j6T(rv61VOOA&=z6ZH`?x<7^ZPCmlP6ReQg_qZpH2_@nq z`~>hhu_MF=IK|W*Q7I_Ej(7|t1AG8y01#jZa0WmD%z(Cd zYD3_91k46=5a`2>fu%rRxF&VQBeSSRh|1{L;$co{sR$|?n)7k~JV$6Y7xWbq&kEcZ z{1rhi_9~RRK&Hq6EpavqM=O+8@WGD+68bGbDnPhFu+eb&QQ>OP>41%_OeRywn9`e$ zamd+yg>pL#BZbeFxd?IjHVC3LF7GSPb`U;gq&|7R=(Q+KVTKC&2Ia{(Rc@v6$0pol znic`p3c}B6Z**Kc+@T!>v(G(!#I9}unVlwC_8)AoB?OKxR>Dh`kvQt8FC?v@Q^O1w zEZt}Kk4aPLfuM5)3F-MS1X-kUDxtji%3sMGk@CaSV5BKw?*#rwL-$k>+`0ktVc?S-}@DVfv^ooxrd;@^R>=QGTJ&K$l{#%Fbn?*6a*&A_Z{>ZRW zr=4ywffmEgh{ZH39i1suhV?BYzaJqtAg1VNVlJRwp}z9KhrB3~V}`r`VcWCF??&7R z=;G9#jiYe5MMLoLK4&W>`8V-_AU8s-Qt;l?eRrcKI-vYQ!ocxJ4Ln#RpkXO(xQL*- zg-o8u2yt@irUGQUiwGZ8-w~GHo&P_-UQs>ZLFEXXLb~<%+08n9)h~GSf%5I8uBdi4x{9htw+v5vD;WoZd zV$)p(>u-qi$+RYr17`|WGly->{x}^%pi|YdJwYdWscG90y$895;<1Q??g;Oo8vLM-zOyC6wENDku z4iGF5M6eg-r=O%bfUcl4ksMH0-bWP+3XbRvXVlv=#u}5*83BZ6d z#qtrZ17?bPCbR=+is&OK1#wg0Gwl*X6d$22U{8_Igm3_0QQ)j~r;w5wXKjtUy>mk3bwySa6S69F0;k&p1z|;3InNeY2r zfWjgygn@NjO-C+QjB4UWk0;2d44g#(e)0UF-6!GWgbndd1awZ}h&d4iICiYN zL!9&=Wc1{2oOL57J%}HkXpWOJgh@}4&M6!?=|=c^`gTrk2$P=+*Jkd@7 z4u5n@vp#cx0X(NVM1cX0iku@>2lN%BBV7mZ75E{@4(uyE5u76f-yfAdcC|Z@Sw6>32B@`#6%%0fGgB2%`i0iXIc!0Y^p75tIV( zDe#TU7Dx1v)G#QaY;P^b_IDZ!(3B59|mr8s97t zC&BmF1bjt}r&DML@UGwukXIB0h*t;#V5UF)Au(K5R!WF*u)A!8Ln z!V7?d1wsIe({%O$!}d(Z#6aE%BoG1-ENwiPq65njLnlYLhCrr;0{}D$GIdpr8{H(u zQn4y^bkXw;m?^A{@EGu}7#xu>AWsoA#L)qE#c+tA1B8m;A;1sf70@BN4;&RZM|ck0 zE8s)q9KcuLhoCv3uOJ;^FCt$6I^lAHUjRD-Uc|nW$4@z6*^>7!1@pspg9VFt00xVB z00av`01y`R02CJY01g&}06{5cQYmBtV5K-2;HJ0_Ahv{In!t;|L2(VhOkx`Vngtm_ zJ&ln_^ee{%iwE}Kp*1~lz)Zm$gexy2={tR|`V7!pxC8V~F0_fb?8#j?IRMa8$Odqy z=mtQaVmAOk#WVoY72yEb6>b2uE8qZ#SI_}KsDcN;y@d||M~ZU*_!U0@@)hU+_!aB{ z_6m;x`igV`kPDIk0*iJ41QtO63KsDI3>NYL4lINLAS~zsC@Jo3Loze46dVEYQrrv> zQ@{s+qp>r9Od=nEnWATap9MdFbfRbgy9E+}b^>WYyh0!Vp`vNPy@DWsqhe|RzM>%C zn1;zhC|f?7Y1`MHn!+H!z7aNnUvUrsQeiegV1W>TU}zgquuuqBreN|R&bPH8zcs>4z%m7J5KswXrocAWc81^? zg6sgBBHf780XoIZ5J(636!=Df4)`g6hUhtwt{@z^Il->L4T4@oy8$>AK_TJ}&?-EK z5H5gTaUbHG0FDZrBfbUTEAT_u7Ll(29RenVzJPQJl@t4z9$Fxe2pz%Hf(HdcZhG-m z@8GW@rzCFRHMX(_ur)jxFIcVcJybFX@7(Gmt1>(tOaU{o6eG$UNG23YLL5ZUDbqMo z%8~R1O@YaF#+#XZ3M?#S9GFS2=y1V+CmK3nCZVGG3JeFxq`_bUAHeNX=x6_SN*by!e+M4<8h>&+nxb}p z8m=!SGyfz}*KE;GCnS?w0ckNW+%x8s0recO6_2u!8i4xNR>XIIE&3c;AoSr{U-tj4Icpx5xH7(fU)p!KZSvPbCxS`_qy%cS>s)5C2**=vUG z2m0QNL+xN^?YhC%{_L@gzscfpc6{bfw-~SR_kbVOB+Eb5ofuDfucF3YSQd1b-3oIr zXjyMm;#=e|E_}krc`FiRhv5%H)LmOBR2g^f8n)?3XM2u{Xtl>zX2xANVvJJ6M8v`O zZjTv|H2Xr}9!S*BTD6UPa&L0tI6VSQ6Ci@c%mGcn}YaENIPvC(+_LfcOtKCf{h;h8C%Hf zANS6tj8(94ahZmLXQ2(YzFzwu)qFYgE!6{{$w&8}BrQRr^Ia8&PLYqYZC?H<%{?hr z?_WAzR*%?(c7MM!6AinLx#RoDZ07&nklX)j?X7Cdhgv5=*{NA`R+=(O^Hk}~?}Mc? zbr}0q5lFN!sKO@QjYM6S@Knvb>*a>Es0mFC8i%@F5;;n}9>LcMFQV_4J@;*hLD06B^2`#iUEQ`qEDl2^lXkO&T~5Eh3O=!?Uqb@-sHGY+F5= zMp=AnKBp-%md!+Jp;ZYy31n`+x?SR7iWORS5f5El1JE}>xCC;cV^bJ5EO|xG5^EvK zwZdTdLkrGgrbv)gypu3VmRwN06sK*iZuU5IC8yu;LT>mRgHq;=gwiSwZCCE874R;x z#g}E!hc4!c{*_0C#)_F#XN{}Y>mQX_-b^aMc@AupSUdy6EKg;^R(;A#-=9Uq>xx|Op#GA_&*zqvFcnU*$3v9fZ z?4XvZpWVPx9!Ir0)K3goa@t`I`QRsH>YwL9XxC$}*{o$tvG&*5y7M1|MdnHWGSjySLw+%E=J zo~QnZR_Q*&P;tTpkGv}p9sn)3Hp7KSnfy{7Jyx?7PetxkQzCXXSI?O`S$q`8Eb`+5 zn}Ox$*0L;~Tx>G%AUP}IP)W@NN#N_I=)_-U_hL3Ca~nR9PDo=Dsx~gqtyp@6kQCz< z&&Xg)MFh<}=ygKY*yC8+;>KQG`cyCCPeXQ6ag$kn;&7d=FqKP%SbKGqZ3p2}Sy372 z?#1#Ia>>`GoSf@jsoH0jmlC!OoBu9b&w&!IuG_WHct@&~KRcL7!%o2-OY8~EPvkU9 z)#Sm+cS$TMbK}%Jybd_qfuZ4<<>#O>bMG@gXr!4k(%_|WV=eUTr4-%!-sJ0SAAu@3=YgGVK`l~d3%(U?Zpl#m?kct7Vq97uIw4;f%YOf zL>SXDHzN$kg>3PeYe~p+^ZR@w!-w2`1=m_Jm$qTSHEFXwbZ{$m^7v-o0=3yv*{}r!RXr^%Kxr%ThTU%{34*>lKsCj}Ni#|~Qg6j~mS1L!;{ zfc@8TDaJtChX+she;LO&^HhySZ?ymj?we`!yN_>PNE?9Wy&e6Foq^pP&@07DJ;*D z!EX0sw5vq3q1riLSKK|?0y|_o*;H=!P3B!=V_ueJJo#}XDlGZdwRV$4^)~T@(r&=8 z+_R?Jc>%rmL5q#Tf|z^FT$7kyi3blF`MD&|w7@VEFoaEN(%%h8Q_|l3ne zekpN-l(x&H^^}cj!#&l~?Itwm#Y|+lh}23}#ji~$csC^uyJ{>LHvtvM5qRQ#;7lUn zGVGC1;9XFTDBJ}fX-`*@D8|JH+MV2Ov%SGZYa1(!P0$xJ!->n0jSw4~GDa?G@BbB@ z3H~hNY-mr;aqR&vmiGxzO4(?Vd1NtDY^`$mrtYeW=48+jvd--6v#Ij6usz^TD_!~R zJY9h?Y4K6i(k$mi0aQ1$G9Yu5^P7X_9?6g+GB^2Fn#&qrjyU(|>hRQNymmMAK;a_A zJQQ~1(0Psz7KCLs>}*aU#*#Bu=I;wVIu_(t;4g!djy0+yqVrj%St!d^ix;k4hQr3P$kh`=HQ-F=LLcMnLGe2qD_yuc3NqdK1 za0L*+wrQDxWB2@9wHy*4F3Xso2BRT4yJg9j!jA;!Elh69GR&bwU2YkI<=Cm1O9rgf z;!(3hJ&&%%=`n7<%TiUw#P~0%c%LzrywSwr7YmY~3qILj(d5+^u?r)}`LpvKpP+fI zJ&tfiH<;yaiadVE)$V@st2%2>y|dPf@k*=*o7q}l*Rl-vPjYi|L~(t?hoO^c)y(7> zCEWa>H6$JQehT(@>`ytOh6GD#J@Ek|osem%XwE|0ca=?sp!dwfYP{UuG zDhYhr@A=%R4oLU}hPGJlCF!B0i{(oh;v>;;p=dc)E27|8PgP>NHH2&HTS}yb`|UJT zRyal$W4jCG8l3zi7&&#FIhZK2!|^X&$1+I*_b-q+F>$I-O%bdiePW@6ip+b0s)&xZ z{(^)bze-y8X*T?v^k;YFV4Cpr)9TvnZiOCH@WjTOVdB}=c4l|4*OL9F>&8t3>VAkU zzI7!1*h8hDbW34(95RTE6NE^Xd`W&)O!}c(Y2*Z(@~@;UwQMY@08S!r+U>^zy!GBh z9@n;`*YQSPE0G^;bn6PJt2%b)`xkw<^tXlq7r99ro_nP5sO~{5lks z-GG%*ifwMbW>voo_l#2fR&TOB8XSqeERy=Vj&Qs#sw&L??P4qJ)CeSJx@Ti+P_bRK z5%s=eNc^OJQ#+oVa;aipp^4)AO)j@NVR1 zj4J%Ok}`at1L|O^g)Ho!>~@j+RvAcVT%|zT;bi9Na}T+afKo;}*dqptB5X?F+XvC> z8X!!+q#DI_A19D9;u#7s@DF_8N6-PlLxwLd3eW@Y!cDXT3ML)l4xMIY9 zw!1huFj1@TE*zUqm_xi~*B&3o49!<88mh_9y>SqSiCO!T z9ke1G6xS8{EHUZFmm^gPFLycXz0#C1@mippac#a*{3N@TFf6Cq+K$(u23F~?Agsbu z_A4J-*~I>|x1aXkmSDnuL__cRhz-BXdVPm% z@~@>tUtEx&w?ntWi(0TvN_?%2@-;j+w+}VSogIyKhDs#<@$8V!?hD4i>i7zFiMrLq zQ{U)VI{w0gM||BQF##&sB5WSMjFA}Ou&cyA-SgA&B>~zh&~cS0i80{d(w4R~ zF-7V3;tVX!)z~5s?JoKB>0px2IpE%niV-ZlImv+#YfATUx{;||CBk7Ib3LOmL2vuc z0z4}+nz(5&P8QfIX1!;~-~rVrVQC^&>4(!Weh5^A@!K$X4d|8Gci_cXUKxap-ezM- z9u^!junIMGy)SPTP{?srq0tYSmrew*5W^^8ZcCjc_vgq!!-YA62<~$0jyDSFV6bse{z?T0sWu$a;#X)t|W*BltT( z`Rwtc_m-X_q*v2QWZtl1uY7fAsEzi%mrqxMp~A=$Uu`#q#3LsIkHG0I(S4t0h%ClV z2+`?N5tmnTFdzFJm{-87!mb1NT*>0*ycQ{imxj(KlMmix++!*8MxvkE^y5?U7L+=(PmElLG zIua@g)43~hg+On*fo5ghgFN2aSA7Vv!#j98&UPp=_T*cT`|q7pWb2dzm_YbiCxdI? z(xzG>+`-u&ai?M1d<;jn5gkn3J7L&PJxW;93}&u4(~cmgQ*8mug;jeaWnnW}VQGmQ zw$)F4VW0~)&%kPnEjgl>wlYm91}Si){||~A&Cs#X?P8nOsan^SJI29a04fSX!fW7 zty}C{S+efG@X3$bsoCDm{Fyek;lSWr)mYHSO`uNGo^=bvLFNKK0$QO-OxIgS%G+gC zB76m6j1T%Hnsj)o!k$+HSsaEGNx~f(@3&(Rdv@*vUKghCnWpZ;BcE`ub%zCO-KEjE z8pTQqsJJ&qKQk+72+)VWF#Q4m-aUBI9;RVQ9jCTjlB}71ZDQ@rTzGzCf5x4CHv*nk zT;>v~ww~9Q1}=4>WW>EBT?3w%={11KCVX1+xfmqA9Xc1atlkYNy0m8Q1R$C zRt<+c&&8QFUn8lSEG=a$f2g;AD#b60G?gf#U(SavwNMNAnE&?}JyQy7{Kql^=k3A0 z+?Ywb7~0xV{<^%N)i!yhbtXTBM-~L6>U0)fNjIXRW)8j_1ludV-SIx$bUurS@UUNh zoVxrLsUO1hm$EDDg~wQPm4)!*+tN43t0Qd^yWW#Uo_2lllnob{V4T6jYGxr?gP%g{ zo7VvI}=8T%?wv>RQtN(jt81V7>E64`40U` zyk)F-l0{^G@h4D?Z7YS7&*R`=EaL+~rUsz*pEn4#?6|AZ*gLyejwWEc*%kGS`g~!Y zS}0G3&c%p4GKDW#?iAL&t!yycTFrIox;IRbW5@&|N}I3luiKcO zbCcVH$4hM^{yCltM>7^NaD37|Ym1iPuZi6{no9W{3tFXA`2q`?3DZiH$Re&pMod4( zBC78cs;?NZLPGSvt-pHFXH25aiJ@fe_jUShVV!llCJt4?A6_jgsx;c0)8mAUyA{Zb zMwpwrEFHF$HZvNSgu?@XPPVUD1tG#t7h+>lqTeO&JzPPptbVSjSko2)Gcs<4iR1Pr zF#lyGuhFWgHkGQ+1`)0qe|64~m zZ|)e1D*oiJpIDC$=g0+xB1w{mZE@V?DwThgV+qgXDx2Au_tg-aYF>Bit07+fC6D;> zd1L?PLm)SRVi9;p;2*&)5p>}+@Wnz@vc1^Q^0B;3_fldelGj9VK#}VITh5dcw?|rI zryc|hd=) z9oyzJSohl*G_luCTVlPSvjz0>nt(x~XM$OWp>Wlw3$%P&nzx6~2!`*sR|(X+)uep9 zI2qm)#J%@yGQbbSYG;UZ*rusGuzZ6jnY#zPkbFyU9kEVHCQSOU-WZ^UY~bdarNgTL6&xYJ+`;G_kC_*oWRhclkHYQHl>g@is*cnZ!<_E}siySRzDjnrA zdxJ=wX{w*x_RvM6!D){Vi)nc1VG&R;nU6g7G%0p{?nl+A?SZ__?30JU?Q< zj!#F%*pEeP+*9>dU1J{PwW&nD^=fZU1v?}DFI29%fM0vzN}(4T!*>ohzOR_-RT86h zp?zSJB-=8|U$E|Nh7;MmS}_zI&bOsa*hgd%1*~j*unwp6v{{-#%DaXE6I!$h`;p(W z@iR>mAE*O%NC(G_`G+AE6#u@D#6kXL3PsB>IqD z=moi@LC@9Sx=@%vNFJTA{X#s{E?migD%gJIfZoq;`q;K!D%#^UVKpIVwep;MjRIq; zxWSC-kN1A@wy)|WZ=^+%k;bSz8P{UN0tc>B(Bi3)_NHt>3M^!14a!`fEnc3BWy2X5 z=yR_Y9?@KxYtXa>2d7`m~y&>i(YT+0c_NZqZ`cw)W& z`ErTEH!BG;oP4|6ikH66mru8^#)tCpIL-bdDRn|#;V&WTpZ0k>C6V5`ZJXZC!HK#(#TJF_FS+ztdxJG11@S$JT@HyxYP2Ko2>hiCdrv7 zA@-!sXwk`-cck#mPs$w@!CbBVgxpo?j$Jd-7$x>|@O(Q1j508xy#=9}Q%*!?v$@qo z&7C`080OXzk%X;uk`#hdLuRIEN|1sSMEGhgxS@{z#Lr zkvg?s0@nehYO!Y`x)bzZK$)Qa!V)t?yge!nhgqhfNwXRq?jC7JiMlW+Mu)oc;UokE zUgp${Nr?04J9O|Au`|3!&d!0R!m_qczFcjoo+*?UF4x0?qh?puot{@})Eu9fXF;Te z@zo^F3g_f6TE`OQ?G1?AmT+S+L9>bT2ID1fY<14r0T}RdD;u?yWfzUC?NRg3VNs36e6hYRNr#oJ10qm|}V_P3FbGWhsFt3H7BWV~Ag4uVx z;J!U5LvGj(ARpj0{K>KWdv|Qfz@aFqr3?8(XLOBNn*ZU=3h1Hzqex;ZO@umTOJ~Z_syShjdWNA~`b?Xi{+oD&Q6cnG+nf(9|{lT4{B%6eg+%8P}!(=Uc|8 zNf6?0l=;2O)#bR2JoDN6MfIj1(xuJ>f`58Ipd>v)M3>v{7QMxw!B_suDK>$o`e2 z_}mK%{<7Kn_5UPAW!(H=-A!%PSHjG)S&8z?bHup_RkrzacioKsr=cT5?`W@qE=&JP?4$GSxQ%Xnw?z80z$K_}7Mfim_9 zn>%Tm>sdQt>_p5o;ytjCX;|{e+

    &@!qeyR3fSxm3fbAA*{)zD;(WcVO8atM%e8H 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

    jBX+$o9{O32eGKGsS_UIXQZNy(E63Rr*5 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 literal 0 HcmV?d00001 diff --git a/Test/DirectX Redist/Jun2010_D3DCompiler_43_x86.cab b/Test/DirectX Redist/Jun2010_D3DCompiler_43_x86.cab new file mode 100644 index 0000000000000000000000000000000000000000..272bb738fe3b957f96cde038ad98e8939da93798 GIT binary patch literal 931471 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

    M?Rm7W;}FT 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ᒫkK(C-%%uIwxH&FRIvcgqKqmSR+Lwkno#vuhvS6p&^Tzh7c4bWF8AifmS> zMPwHC2!7Xkf6k7k-;&gQtdg^1zVoC|snE|W%141rle2DRufQ0Svvx&{g26(8%npEA z17kWkYfESFoZitUr%y`ZoC@Kb1|*)-TnWFhhbem!F@3i{uT+Uj5vxGIcq3>gu7hY8 z8R`xzuBgj;CDSg~+UQsDkI*-ud6dpdX76D9;&Z?7fGf0O z&6qlC|M~j$-N~|ct0za+dU~>Ct(Rw*q)GLO%`sZyO(k9Flfvqc@Jym|e>7fOnJcV*KN@FM`$N!} z()N4IV$)lATCrgexPFhWb?ABpU6ts19$mP_(zF^~?!lP)%15xGaf=E&gHYj(#&1UR z7=KQ4(;{TcCbntFmV;Lu$!9Y9OoOO`7o;p;2!1K0B~gkM)urAASkV!~`p(ZTDanKAop$L9Q`lCjJ%$ znRtWz-fQD$Lch1sZ!7t2X&-JQ`fVb=^7ekqC{C;`8{Ws+jIQgr#k&bz7tu8mUEiTA z4qc7tT2HYhw~5V$u?@i3DxsB|_9E9BbnQUbI&}R3T_RQQmATXkEHE{M91H1FU4IM9 zeaS{_r+&$1*V*t6lhjK2`19OIK2SS#)Bm8~Me=)YZo3k%M!#nAD{dd|G4#7Yeg*Br zO+vqO;0D%l7G}24tzm zPP_oOQmcr0@5Aj9c?Y@HVei>3RT9f@+Os@|EM>^@g0z%aJmDnAv`KIQ@-4;$FX3Uh zgsx`Y1@HgE?aF`_tE7?Scl*Qbn`^qem5tK;$2~BCZVSzD2k*= z*@Pa5plJIhcAaD)at$WG{PunmX&a6F z?rZNi1pN}puTOiw9_Y6L2LRN;C&kg59h!YZS1}p|-?FQyxUmBU!RtO!433GPN*3a; z`z8N);-@~ilWG5+Kgwb(ax1R-nnskvG8#OCN1;(8PY-D@^`?s1;rb}WBoYW+6h?y! zr9^@rj6elaDnS_$C|ysho0Lv|cSrmZrEG#?BT#qAHV8$3rLFAyH;aA$@Xb4?oGAYq zr|jid@vm3JTMoq?oX3|$2QrNCC4|WXo4m?eU%@xpNaEUcG3JyL;f4G< z!Y76!uCp*p!Kzh;`7R0mG?L7!QR5&Z5PRp6`-OMQE@sd~v;h-Y$`V<@5-DSeRI)_Y zute5TBBy3D>7^sk!g%bqp3r>}Gy%~~g#ICdrXjkS(De+Z17Ya@>=(`Hj)6NoQ_Ig& zFMJLYwIgJQWEB4K%x5BuYEC3#qk-?%Lir=8$-p;j^VHiSsKvndYV*{N5!8lgBcVUd z(C2~0Gx4aMcXX&tBh3807s^V%F?gc&-k<9&4wURvN-t36JI_QlCF3xfzlNhpn#mU! zEdZ5`!qW(Yrz_tA%u{_c*p_0CGr9!(Hmah>XXtCAAi8QT6TPqaOD`}1b8WD+0HZcWyLx@`h5_6aJH=7<1L`r(ju`nPS<0b zrN`E91}>K_$oJoPvP-f6dFor!_2>t(=rL|sI9*^9c%kwMBhT{}({U%|tf2~1f>^Li zxbxH}09J1p=Z=o!V&d!YQ&+b#+Ul+yYF`1*bdLmu+kN}lk{BA2Bk0|qg4nP8PdaS1-$d6jlS zGm+v{X$QU>+gU)*YxJ~xenZbr-Yv8W2?kjD9+pF^H=Dg+Bc*-#7)ofzk_68kuB>4?RRP< z1+W>9LoSB50!ZP9_wWGk1|_Ge=DK;J-&=RY^^Kv{RmL{JD%oQVdtmVmDDd_4W0azpDApGS)w}UYTT9GHvE#sIl5o?yM_bIO1NV>Qpv7U>*?t}S3E1*pNk@)Qmt1n(%&*T-X& zoLx$-qW$06_v~9BU10BjfiAk%Ouq{YxTb@lEkI>b3!#|>Y?Od}DYfqyQJmtsC{&Dw z{8Dy8#C2PN{`$UFzy)dYRC@s%-caagAMRaMWc>@KUOI*E5aU0Wk1srY z`c;a`d|91b!1wZcfP=O%aW^=sii8sKrB+J&_xaq)0!rwK1#T%ZpXR^$Of?{jyDVSN z;PrgeAJo(uL>=(nYUP^R^#rO!Yx)k5z<9%>$yV`YpduiH>A(Fm8vi%omq8Rw8fq1v z1KI(!2j~FMhd}i}p8$OU^c9c_^gYlepr6rwpH+-=TE%}4vx*j=?!&EOU-&%|p3{Il zKbju!Ddm0CfbK53~ztJn*=I7I7*D+5q$_&^Dkq zA?y^O2|(XD|KDjB&|!!#3!XuE8b?^gSfGJG&jI}&=zXA*K>vU;{}Y}+164pC*8#l* zlm>Yi2iX1K-wkLg&|N@}0c{0;FFcBjqyHvh&JGPNxFH(n%1jDKSY9qz32rGXAK_9419%Nw{910(GIq~OG(38A9ZK;{NKh(o^`J=C*p#9^ zJjStYVpK53rTO?lQYN^~$NYh2NFRmX#-TE^Ig|`_2tQW8DsNe+41$+$!MC>LOZVc>e9*jEv8H0QZg+{08^qRn$lOk zrU{j3JAtL*oE}q@s=6je3jZu7^#)bvpm0*#!KGhwK3AgGXU#Vj^Yl0~wT^0RlidlC z?0%Q4$01GT*-gT1jkAox&uCFp6+YaG+3dqgb_aZ|_)zDS5fc=oE#HyKDD*aPE-ds+ zN=DArFFYCB7TRyr+l93U{LZxa&HCNvF5#k3|Ae`GLpIIj55q&5Br2KksrB9?)l+r! z&DB-3L1A*S%I#eCBr2Czc@yTN{0gp}gmt%=*!7Vz;koN%ZO($1pI6#6L7tA=1}7-i zqwYwoU2|DOo+h8S+)5y7h+n7+ot9A|Zyg39%AGG_vxCLu_%!^0d4|dF7beM~{ilh@ zE^_u4!t5flk0dFgQpSFWx>_`JHG}s@UX+L1#Pnx$1IsTL9r@~gdb~|l;8L_@@FpA> zZxx@K0Av3HR&i-Ijq#Qn|C!CddOlv>yshncPbw<&3zVga@MivCuJ!LO!}oIkQXD%A z;)`zMqu)C@ks;|?4j+?&S6$duA9kJKuKBgTbvWP|YJKzQi7tt|*7#n;x(j&F8vPa1620!0WJl`mgKRt^ z#=85&OoDM+Rsc6D2*BUv2T{|!e`6)qiYD*HtN8GJIEXJp2l!VSsnm+KcBQslyI~TLzE(8*rm<AIn5KhJ90 zw03CPl7316t2hwjSB}YFnaw8y_EQQCP=OU|6V#cBB0L4OC+-}Grrukim_nQVXgy1BSB*U1sj(#?>sTZ$^V@(LTzOZ6-)<8sJE zInZ-JF9EFqDhApD^ajwM^V;1nzwENn?rR^KZix_?G;JEq|1CV9c`+&yt?<-p$|{4IhkP z2l+r9Fj#~Q)s@vAmy%YUmlu6!J$DCIZ9vg>QNC*O2=Z04rvsW-b{;E2 z`HxB}#ffx&%z#4}TF8?R9L7tJ{4k(EeTy+DudcVCS<(<{5hNS9AFJ^$R8CCM_|x^t z`p4?2bX0Ula8Y_#{tsQ(1Wzu1cc!IBG)@05J(gXcd>@q*_!>NRR5+l%cmOZXhB8hb z!j7&2KGZ&o8O6)`nArdCFD|gD68;A$nxBk<>|&R?tL+qZ3<56 zgopo>N-c**BD9O3T^za#AQnk*AJuOQc$6LZi28|DssrX==duIGc)vMKflFB6vI9ps ze2(BbI$X!$MuNwW)jJC2qiGMUSCnT@U`MXLRD=3;nC9sOk1_31O&a{IJi5%7=GNY= zN1f~M){$HV#iWg4*TY-vD850ZZ63ovISY+}3>$oK)op)c0-ZUX!l5rx=$bKX7x*1J zs!L+?E7>->ujr%ld+x403MCFrqcb!X`?D-|ZKoaB3e=VC=i5fqS$i#^sJarCWpgPr zl)`N0-{iLIm5S$sdC*pM3#_7Kc@UZI<4kXLL@@(`?&Q#BgyIQ`;gBDpB!Y|_T7pn2 zLH|x;(Ag3t+q>Nzw9p>qVi$Du(8sRaFjL%k5XNYINMvLR%cPWs z*$H}_Lti5lN6>T*eTEeK+xSBdJUlq1jTY_9YQSxSva)Jh8?<|I<%FJ-peGE zy?>An{%tep;6G*toslQbpfmEc8FWTIX9hcnpF!_8dw>2qs{QD(@F*KS1Sr2edY<5` z#5^!d17*OiJX^=U3cx$@xTZDDvqj!8YsnuWLt8OJtI+jtf;o@5GQp+vg813D2809?rbk1O` zJkvQW<-n`hV(J!%l6$1^EWH`6S6`Ore*PT`QJP&j2gzU76QnsAUuj!)xgx`3qe&MM%UBe(p$_d_%e+=kkyGd-YLRA-lu<|`y;3l_yPkj)63R^ zdqysi&VX0_fDfc9j@hF&1p;YEY`I<$jSc1~2C+ME} z{t@|1s~TAI$Uy2)?gqUX3pR z%so#VSmh2mt8T-TRy9z^wn~YGsL)wibsByTv=|d$vEu0x_OMF{g)}O~Q5tb0^yYX8 zT(JBQlvS93a$bGqc})vCXl9)We*Dc#pM!Z+5qLa1;?+i)|7MtRaxXIZa;m01 zshBsks%>_OG_hW2z)|V(!qDJs zZz`@TiD`POp8JMW%pumJuxHgrH2d8{9nmdG#ClIEGs6=z;#KS?OOjXxDV9xcSmIcv z6|7b&iP@COtvwNM(P`eI!Qm`Vb4=l}Z5{ES8qOlOkD$S4$vrsVWBpN&e-n#;EAhWR zT#vuLZTt$4-(U)l#7l?A>PfMn3x>0K={aMVXUg#Kkk6_Bs<-nY=tnGEBgK8sa5nrV zMB{xsBM(mm0>K@cahY-9o9b7>lCWZ40;EJ-9L;C9e>qF0psxSfIs`+ zkpX|>FugBz8?JXVSVC|AK0JUI57QTEd~mP+ci6As7uo3s*`W)iEH@C6 zhn&^t|13!5Stc&2L?3ZoG>k&S&LwfM5NnobA=U_wBQDVxw1Kw~T=eqc7RHkCkdogO z(!3WnFK!2_9ctKz|1BCFktfU95FWq!4CR{#p>a{wbPp=zq=<_4<2vx)aww~0EF^sR zQA)V#QM{QFqZxt&`3SEXxZd=5shN!|4XlsXQTYy}@c3==(nNzNmNas7p&gTs%2c}> z+WXCKxhzS6x;};LXi0Tx!iMVbevP7;=2*osv zfALqsb?Ms8Zjb5SBi3$@yR~Pp_}&S95`O((-*&%k-$K3o1?UP;HGh5rg!pi%%Lzb* z(;1Gm7~C?@OF(Y|?F0H4=xd;#fNV3YVlSXUKx2TW04)Go4io^|3bYgG2+$dzW*`ly zE3{RApj4m-fMx+b1yl+28=yY{?FTvm^bL>=+V^E30jLL1Zy*QI0H7g-|GR$*v~?!X zbfCw9egpI;p#4B6fYw4guLs)j$PIEtC^m|+e*8zo-R2)>!ON9x`8c=Xe~~dV{BPjR zrId{H-_2ue^KZR*zE$i1G<<$L`6$ExRYq>=XZ-c^QCn17d6<0VhXVg@!!3*lfj034QC;OGYq5goUJBOV>dlZXy0I8tVz zP+IUFh>uF6P-)N(QpQL+4+`748G+8UStS1xL2pOr975yJxs9Bi22pRJvtapf;)n+=ONPp|wi}IEDVd=> zbB$YSrXXJo)PulmE?%y+J0G+Z9apv>B0FJ{J^@b&pB7oV=4jz@0wT6boe zu4gXoC*R- zNzwC10e2U-q>{%6NxHOZ3;lj8%xKdYTgl_4Fr#G-{$9lxS;@!AwW2dls1P)=g8OtF zt1%|5Km$hsuxrJ3Nu8EZfk{EIWhP2s1k(Fj{B+>S z>Nm@R!g44*p=8<2$CA(b11La&?cl&>B{@2|y46oI6zhFwy@M1~k+7skAl-&WA=gog z?+#!!);Cw$M!@d}=mkDZzc&ux1wKcI${QBo3o+F1T8|9plrk%Fn1W|Y+%xb%0Z!`8E;XtO5cg00~hE>o8q7sWQ<&m^Kd_T zu!?s+U=u22RMB%>jUGVCA!alE@+ofp{I|WnZ?uA*uMWkbIpov49r<}5H=P1q;vOcG z?04DKm5`Bw0_8{bQN=-9__#?)M4(vgH>nWYW*S+fT9If>$Q)CXMB@ennq-c{3_dKoKGoB~lir z1g41+D)tHZrjU@j+wTqe3tQAdB$RIVUGj8Sq5}c+%+1%_cAVe$GL!7b$LiL*!iojc z?g}eK9eNkG-83@2AToo@@ek4Z?=HO~CeUyDU2V-lUQZ-bZc0`v%B>&ubj{_*QvXQg z28QjI((FcVR&4tcV$4u41#e61#Iqc!;g}I zXyL`vQ`MMdOWS@KA_s96-2Q!`PEC_BAZ_J4uU4)f*6}w3yPM zyA78$Z%7@)6S$vLg@j1$MLKR|N!zK4=iC{t;;DDi02A1aRiN%(&jLmp>1?(7PVD{C z_>6HbNcg=0tc-D(3lrqR4Q2VC5DP&YN(O1nlTVDmn?pKlp40#-D(6*&t2rZcriCrQ zI&I<@jA(9zwUM#T;jHCtS@VE3m9uuqlbRXpP-0z*inq~T;f+SnEe1Laue$?!+%aI@ z^b;`;1ni%8#IjERXK-k{QFKf4kmWzu9r}L4p*z^iH{-^Uqpdtasm*}47Hvz`1Ut!f zn$uFzZK~rz2H_s(v-7B8}TatQe zh3>ryWyP``DQj!0Rg=T$9eSz8<{f;g#^ezL>5fD<{1H_%OeBNuKqkr}1uU{V4-G1a zkdb&*ssgW}mDQepn#Yj_&`5PAj=TJaKOItA1^_z35xUjqhoQWcD<-f4qTfZCRk9s3 zVbJQ#^u<6)W@1UG*gFzp4YQRav)af?x2>P@<`|gW>ka-iB5ADkPk-rF`i*yQfLqWqp>l358~;LIdVu4 z*1be};KXNckwe`D-x|6`46Io&)99GzpXo?t3EYnfWIN_zxqL@qNwSM#g?=(q%A#VX z^<%THp1I&>V}5g_Ddgwq#{?mud&6|CxFcRqH$YjFg3(GHcCF+~C{p@0_H{F4xQyy1 zPjk;>IgY{{S31^lC4%KxF`FH0c>l^Jvng(M9m;tS|EIWHwgTQI%y%`zq4K-*$6cc%a5_vv>$~T2fU3$9VdmTg5 z4Y#_4(zg@yE@GaSz|5B0sDEZV+`_8!&<0S*v~_9lLZv&>H?wC}89ep#A#Q$MmCQxPjWnVvL;_rZ+ z<93Gc)bSXOiwu7S@Z?Ke9=Y-&nbLrvA9C*PsD@LyfZB4^rgs=u9Y9mZVa4SM*^=9Y+o1H4VJd zCBt0wdZ-USTQJ=4D*7YuU>>}ZsN2o0ny=_DVm76*D~*~jh9ZjVLme*;Uo1PkSoX+^ zRn-$`7z=Gu5^xgohn}&lW8k95t)A=M_Eo#%##b%agBob?TzWC%-0EL@vuR18Jwv{3 z7Anx514Wij8F{XE)otB~a6?_WhZ3_Wb* z??>N`_j~K#4)&_2QT6ubDFOnqjKmqn=bzCGqknjY;Q_xE_#2d-wE>cw2i-PumPa zCEbSWB#8!8AUtXlJoWp*O0iAJ5dGueuWg&nYuRS>j#NhbU_tS_=23lN;kC4rTRVxy zPSJ9LH(Kky0YdXgV4~!f$@e*nKqLr!#UgH z9izl5$MD)ij1uiMdC@K_T0=d822qQfp@Su@HQg8O?I~X|F1c;(SmS*eMsFv)A`-K9 ztm(cClgF;CM1v;7prpZVN=^*gONAx9pJhp?3}QZPLghDP9m76ZJz>|h*{Bf`%SRQh zjKX?_>h9v!x=ZBbRc_KgUl@b+-F-8_IM4Omr{sv2YK-1oy^U@bC@&nw9}P&?e04gd zTGd&vSjbA=WcXrdaft?dFbW`l52&h3H5RX3$+XDTX1TG|pJ~CHeiLnhi6UNhfZ0lh z-9HOJyK%O~KiEIXu9q5cW4L6$><_t^CeCD)KDgy@NWQ8GK0ISo@}bVnHQ$*oH}tBO z8%^dD{;8-hr3__34>8-kJp*I4{$vKXQS5{|3;k9l8uBLB+LR@>eX?42!Y^E5RHxH&9I8 z{g7E))T9~$mW{AT)x1`4VB7-^xp{m&m{|MlSz)8{%0vs>#?ebs=R7IM_i9x4)ctR6 zkd4(3EWRK~Xs=s_RPz-=o-z$yAa92mVMNIi&2=^ZHldl*oK~or+vS?*`SP;sCT|yE z&j{z`q7K5IF(z}Zv!$rpSh*&~`AJdZ>^9*`TLbnN6w7nW{Exjj%Ire(Kh^W)70=m> zcz4+3je!Nt>>0HN+z{DeCZ(EXhARk;2B}~zuZ?#G2Xae9+y|3TunZuobhj| zzmDf9A^huW!M_`Ax>Z(B6q**Za*M2}Ud?aCIq?;mkob37GqOXk7@qEX-cG-lErfQx3pfT%U<4;fDfJSfbZOOvQQYW9MpDWrqp@3 zo+CyWo_Z-1i9(T#XC_Wvnj^5nZxxk|7&bWL|IO6tRSrzk!Hvk64Vt6*APSXOK0McX5DF zsDKlCi`DQJd#4rK$}^GGl(HKcSV-Cey90VX9=BC5Y+KtoKU1LsyAe3z+Md8w0hPos z>GsS(rj~pOZ^w*6xkqU41FW47uy#Jc+W7!$=L4*r53qJVz}oo$wlkS9>nrcKkA4lTf&)4LYP6(GezQ>b70~-cOy`h&6b(>4qBopc@*zwY4#Li62%_+ZRt zP9qhhm+zD}R@;rh4x{pU@=-S#zHRyvr}zX9scr)wVfyd8_%sccm^4Hj@u?Uw>${Pj zDZ|*iAlxMz^e$P;yJX+1)FpHDF4+){iMnKOX3h*=KkSMJufmHDZ{lIm@55AhPyAOG z))PA`yD=j{JA3li1WVURZzis_RNIXyD4)BPBWN4-nz~dDzmN3Vj%7nG8Pt6ivN$Vp z;4yAEn=QxVT(J3$)ck`yt8$7Wj_%bDGI&t$c`X z%J>Uye%D1cp$nc2w2}#1b#s>4px!4O<_wOvqVdVXf>)M+NbcSvO+!F$$0}sGP@`$p>r(i@a>L0u5d00fz*nTw+{|7B27wZH?0DwbF z&AoqoRK?Xeyqn!*7qYMyS;7KAwz_K6XroIjG*~x;O@a{E5R=eqfcoQkws~v|;VuLr z5V%?3I^2qVw52Wf!IoBSwQ5C+1u-F-1+f&-Dimy^(st5BjGBf;V(#~xGxy$X2=wju z{o{RJKHS{dJ7<2KIdkTmnKNhJL>7QuaG;Xo!SBWA-E2$vNgRx4t8Nmra1A5ocu0RZ^;#pv-Qp@t4l z&z60x#>v_WqfU8Bkuu{DNRNl&AK!R_yt9YV>jB#Ic7BR1XX+utQ-Czu@D%Wzoo^XU zTMLJIbToPo`7gTvaFiJQzoVNqyqosf$O5}ZLl?gUaacff;{6lHK`0({-B!(iGfFI1 z;2NRQ==Q}u-WN)p(O3(l?D`h^RT0+56=Z(A)fJy+!a#4~M z?x;u;ATJ{587${wP7$u4%6OVj+%Auf9iX~jGRi!5xpkB{cImcFfTrccQwGm{@H}h0 z&l?XOkeH2Iu9FV@i(8ar|9dZuuittG{Y!hOtNpmuaG1Y*f;xLSbhgsq%!p5_bK->p zcwhB96!SHPN9a@sQ3FWi;^v`6f)apwD-d=kPMNXgDx$oI<=oA$GRH2U>+1 z?*`>()Z+B!q5!cGmlCrp<90>vXZ*SbJg5im`0Wbl>{8D_q!K-`ACSW6S2q z*vile=#klUf6Exd^z(9&8hhONLqHekgKC7=jSaPEji>m}`thy<5Aw>U#<4aw5YH|y ztnFT&2}!zMG;Gs5Mj}Ezkj3qbjXK7TQPtW<3RFXj-NcVmX?d6SBjdOb`UUewlQ_l`6+!;*LMx-Zq1DppQ37$*fv8?gz4o8Nuie-);R!+mh7(@KCw**Q3l3d011KkUY27xo= zjYB)0>S0a8YF+|UKChnK%HI|6yllQ=w4A~71c{cJwQb@6j3oU z%q+bk>!^`+!xb=f#&RjI9_Woyv{-L+*Y748sN^Tzf@`#!JvxMBu^vH6yUQ(x;m~ns zv_Amy2ikC?@YWG_C>iOYx_$bl*}SbNQZ}Y+-sX*_BM6{>H`yRKS{!II4CJClI`~6b z=>7d(j4u*Z!*s?q58jPm#F0z04HhF%P+=8wHEr|ti(5^5Y2R8xjNk_ME$^66c(Epp z{YZbMzSId-2y3;R?za*E?~Ch1V64&I6RmF^cVgzS}9#k{dp?N+m9L@_Mfc$6o_)upn6n0siKAl z&l&cGw;Go!UV$~J?JlO{DBXp%spWp?g3k9q9;F*o7MqvWV;^?lksqi&d1t8MomoOW z7z8<=e-?=T)XI;rR5H>p{6mWA!NBV09KQ+BX24@i)^kxiTOWDlQv&IJFB%_vZUrX%_>*T@m5RvZ6? zl_@QIMvjoP+9=cf@Wgn6lHCGT(|clOo9=F$*vo*bE-&{T(N8bdxycd~~C(7Hb5$Y1>NDlEAo#?f5ylr=ECJ8r7$jt># z`IWrPIbI;s(-(GUfPk}v>UV?FbSL?=Q`|W;8+i4!$ar?n`*2G#(vd*~dI|{v2JR&| zaJ9(EC|T%)TKHnC8_}etsnKtf$Du6T27Og$;|1mz`w!ZptmLf@ssTH0nC=PKD){QnSip7Y$exG63g}Jrdgv}TekV2c|tcdCh=)}j}dJd3iC2cmt&no!Y zbtxS&I|Zp}o3e&CXPBqDG91)dgBSl?gjUnrkNX|MoUU3Ag`*r76>vhWL0T*JA%P)1 z0!6pTcWcF{%?f)@WEZ7~I3zqi=M6Cr2L>mdZo4t*;05o5pUZ3{ZdS*Z5(W<04dRnZ zaB(QoU%1>?|Co{b*TYhug4XNH{jsf-_`4V%_uxcXoQt(YMZ(ddmG@Urcj(IlAaSZk zM730E!t~|2-i>R-ehOmS*#nJQC1eEX+)V`Bu*9fA{;(R{i8a9bKSNc>7WHSddhq^q zTo|z?ryiR)YI}gBo%i8a32M#DbL%&ug_Y0*)8_w+tgkEGchLO6dTLl(YljmCS$C8l zI+SA*JG6IarP1GEzJDOc7TZl0sNbOqxRa5$NXaq(aLw4!oxHDIpo@Z zMs}fB$wO-mXSSBxgp@za?Nn=z6guB+_$)*6D%qLDm^7zGE`D2_Sn6CTRhdB$c63l9 z|0gfOj-L8%3_clJ)L#H~!ew18#2FV~zD6H~U%Ih2boY=* z)%69+bZ9XRR)RhV0cwCdc}T1P-RJWhA#_*s3Y}Was-T4<-DN2Hq+H%j?M~8CkL_?t zq|Z2Yc_av&5}$e4#Q11D@P>*Od`7eb;#Er#? zmbIBm%Dwh0nl=M>CGc;4qLpPu=FAJ z@HR4w(yCaq>Q<78fthAD}9rsl0o-e?{?Dy022) zpcpc82AL%CI2lh5F#TT(KcXl-AwcS3{z$7&>0`@VKq8fQ6fAd4LbMSsq?+Yc89_O1QyC4MmUeD&p^IBvlukALWW>9H6 z4MFQB;ssB#$WBAhA`2=z3?tmLiR$qu0eins0rq;R4z7NIJ!VMy*chmW9+&v7Rz;4Z zCf-Z%@0`n_I+3b7yjtyDW}2Vd(yO)O+`mz+FJrX?5iUI^s?|%moHDTtWVq58s12pK zSP?k|7zV8*$_Ds9&WN%bt}}*jnUeCZoCNBu`%zM7Q#Q|pp z|90I-q|y?t3mT;I+(Dxa3JJfpEv%jAr%cTK7p}qILA3o%%E66Q?CitA@D{60g_Sl5 zukfo)6-GSX4WFW{W>o}hu^RDsgld^5GDvIN%RhEWnUA=nFTwLXJYV>UOZpU^`~Sx! z%>@L#1Mhx#P8km=@y5T5G?Nr-eVDZZ6XF?$O z`$Ac*yN0Hr%8Gw?e~2 zdn&nNWHK<(+x#XH)4*hJ^J^5i)Z5%jfn0C%ZVF8DHa|^)35M_La*4EzXWOg^jPy1i zI|oPrwd&1YldweIncgjLQNZQ>?vE(o_9phH<@BFcPCpfQpMsz$LxwP=@~loXvyG-3 z>Pp^rCdcqic!=xYU-BcPH$aYl@QFKH!zM}JL=pp3d8@)_Q~-xvd7tZOZrA;7$M zt5tiKvJA?GShL(!e!NPt$lF{CT1NLw(&>6Vg$l zy3v8V{&BZ)f~vm{tM0Fi1-^wpKZKt~%=>*gq~kUAVzO>z{yONBL-l=r^{0Y0LY+y` zFCj%AaO#ipW347m(Q~PRX%_KU2#q|{0{rVo7H*%WS=lcZXTERDHHPB<(^t)$RLaTE ziqJ@Nf>B}&4 zoXXh@ZvrRK!jEOIGT@L$Dg)@CW?)=AIJio4n7yer9^t3XnVF(f>rPaNDgE2DRhlJV z2V^ei0g20(19{7r0%^+=fEZ;T5F%zj3A4|{>?g#(U}djGjzoEbWn+xjW_9-2jJ)ro zyzTM8Ab9N&e!tbc#Rz@Cgq};#BfQNo5cQArHa|syY@vfF10JC=DFdUt&EKQIXklxq z40yfGO%#yi)ylvad4)1CUS6gQvvKchUx%46`y_vwev zo6xBDB%oW=$lGDiJZdzw;Xb^e$33{}at)4-@?$J=gl1csdQrtc29w0W9w2Wq%itiQ zS>^~=dPuAcqp!S(&$}V#bHimpHGlV0f?8ybFTc&uKa5%Q2rq%eY0($tp8+(-@`TWv z<@8#~+dL`5W*+QW0|mr7VC+HbVpECJfAiBEGj`FZVhq-HW4euhw2LJcNv!Y+MW}us z)E+p#ck?TQ3zyY2#5zJPeEQ$SgaE=x`s(L>wEn_re`VHwGlvayV2anFUVhETIo5*a z+n?lIWI=Q9C&cWqSCV3##QhJmKx5@cX+Wb&qz$&nt=9G`=j_YfH(Z@&#DOQFDB$cx|o`)07{G*7$&n@l}WX|#4`u}E;9&8-cSZtU) z{V`=|tie7?X}ZHS2X+@mq~*YtJe`HO)U!t@(QU@uYsdiK5$P8XMqGS8_5eSh-stl- z&(9d5PA~t+;^2XgFCeW|euNC)7n@7`{_~!pARYuM7|i0`9;%Vr*n?$l{J>aVCjsQ_ z9+T<5E>`Uha|f2#2-&@4ie;xx=h${HfwB^MJahNG-@-d$_@*9H3(Pbyjz{J4a2bR) zC!TxR%(>ps9Zphh=Jy!HCb4!DNh1&FYQvpw*}|whJs9jDw7*r4x{oG!PD7{K#z0O+AK+Jft;$-DhUG)0WIwbKUdyjT-e<$8imky}`3 z+lHWizLJL7{--UX(#8&jDsCW6e~J z$4*-WwEZ+TGFQkRzc!YLX@iEp_@Y?m`jO3`o>wv1Hp=0i(7-~BkeZJ7&8;(1tJ-4f6j%A27|OK9Wz`*!}x9<%se$k?m4B~HZMbYKu=i~A&7 z+@sv*!)qMw^V?)6w9U>E*nAeACOq2;E~|D^PZ?9(>TaZ)9W?WOhhlt9jo-J$r!+PG z;5^fYT?BNiNX{bL*usFLb}Q7fl25Qu$S%mgwx8Xf%p91nh<@oY`v|{F6LdB zC=(52QWj~(Z8!cma~t6I2B0xPFZHAW*6(vw&_c6OV26E2hNxfij@#B|RHVjle z@UtB3TfXUMIduA-wUhhx=Otl{mPX=e=Mg#x1hlo~%?t?yRg-{7y=?;$V$Q@~h*Gmc zEo~RoAN^W{N6B?r+|4KcjfU=}z(=)x2O)eN?lag5?eU|2Is?n#uimSQ$ zo8su$Xgy2$YGM5cVhI3pxxH-&KB{5n4)u|KKm8}pGZ|7m2k@f5V1uAOu7HlEU_N7% zc2B7?u%!O@Vlp`(Uk93V9iZF|po>*I=_=`N2ecwxNquo;zW0SD={I8e=UJDu8&B1= z?RL`N9Qqrezt`bk*4no9BtX3l&-?IjcuvF93y&=`)0Sz^gn#r${2O!;Bo;{ElXDp4ywa1tV%jAf|~HqWWfaawyyPLN#HVz*Wjj4EwGe#N6U+wDMu zKyvWc);6@hbabL5j~2Rt7f)S|4-#mhz`0AT>C{$B>Y{vB>JIbwp2Xv84cV;5&AjT=2lY}nE6!a!^cc6WmqTnZ zM|F)#HX94jRB5p%)R#CR7qfLv=2fQKH2! zAvoerL7-BU*07HM^N(mu{&-Y> z4s+Iu@2=6FBW!lB&k``VE33jAxc^hfb@*L$ZPmi__$tme5Tjr36y=6R3>|-oj=K*~r zA2bN{CzvG=LmImX>FE)n6E7n-hdjTe%?a?A_d=P=CH5sGvScywgk*6pRpsrVBjCfeM3|O&NYKP2bL1wJn?`X#zcBi8SrkHFN@8>^#Jqy;{uY;oSAmbv}_6{*Deye0;my-6?N&tdZqsAAb%S>>_GYgthY=0)XzEq*IowiHS# zW;%H+2Q`~4Fkl>oPO$d#EXSskDMtg$QN4~xsxSppX^O3whAZ-Y@t2|C3bV{xM42#2 z9*l2+sY;z@`GN7+($4{UhVI`0$sc11(jY2nsMyz3hWdB_ITJbnYSM4w9~{aeon4mc zfaZXb8nJRUh*Nv_xTHSf4|ch@2FCEMlR%yfiBB1FK^^eGcYtKO0-^*|*55(*IhVjU zPo2Fh10fPQ#(16rvQdpFvw(lcC=(mwR%slg+2!qYAyNnQn^p|@M?**XUw8P#fk^YH zFUTeO9H`ndK~j)Fk1t{GhOx54_}(H0SR? zOg%7TiUiV|dvTliz4_*$zuo8kF0+0QX1j6)WLW@NGUvmxl^^`rnf{|W{l`NyE|AR^ zA)7E{vnW~Q#@m$^w_&Kk3N=}wW-EjQxwy>=Fn#u3m-J0|R>AW%c(%jy0z7T-JOR%K z@SK6i4h4O<_agocmF@;s<*uv_ov2aEd)3+$`wR#zTUqBE8P8`V>eIp(ahtb!Dtt-W z9K>l;>Ov>XCJ2~;wQKC*g{)o0p4Q zjmRA999qO3#UW4G;w5}T;I-ur=mjJ7mvO$d-3C2MwUj+#3oBEL zN&tGaE`#dp01Z3304w{(=VoR5N8)OWpJjk{!NNYMryY7B;$|a(#*MEYJN(WtD#A(v zYQzVb-vdGdE1jk!3&Q*xJ4mXcO#+&cHQ#2f$gTpqk9wQYe>ZD{yn6-W7NA+7@PKs_ zFR`k!Y$P&jY9?qRYNHRh)sNX)yz(3G`O82mZYm;PQEJs!mceu< z_nR&HpAi>A?nvao7eVfP8G6snW(Qe@TIOWy7D9^?V{upkc{cX;ZNjM_5WhuP>vYP~ zp>Uvq8*BJ`GWjKl#_j+T&`Ob$^T|K zb3bjIqy$xUxJio104}f@nZ@tmcU@UJBHx1H_Uf;U;U*tU+MMSPwI8?%iEM!1>=T0x zjoMjN51Tn;umScZgEJI)peAO(mp0aB;aFpb^?E-He?ID*iRNjLW8X%?jJNrfEHds> zTjAY#DVCL?m2au2bFkO+XaQEhd44mz%_DSj_xsr|Eza>79?OMRM7Ef`@s}>*jqXFh z8_W07Vu)kqS{7*mO}>5wUaGhZYT5dpJ5-jt{yiH&-%yqd(a@6Cj_goT?iIFa@U19U zY1}e`nwJY2b;oDu?xHBS6TJ~A9p{t-4qTat?79MRi2_chRt7VB=pbc2T4Wxk%)9Qx ze%)O!`gMxSKws_^`dM8cg*p*tWqkSresZUMQaa8m2kh{(D@3e41C4)rV<(O5j%1-D zExY(=TP{BCA?wPA)W}vA*{Y;Uy_@jD6YmR6ClAqrP#z)&I@4xyc_{fRJluL9Aj;)` zKSOt^O<(BtCh*3P&J~p9&?HkRiNEX6`4QtOLhAa>`4L`8Mu<0tLtH%+;_2ZK*9?Ww zhC^IyLD*z~_^;s*`GfR<5VMCvj2)yxq>o<=hwu$jVG%$y4~K9J;sf)zb2x<4f;fN> z;o%S&gRMn~ONT>@vmn9<(Qo?~5Cz!UKMjY-wIJr=4XQKFi@wx~-VH@`O+GJrvK9R# zL<6hsYZ5d3@;wIY5+_dE4BgXre(^3V1N2xotoTeTy6Hm2XIatc_m0I=%2(~)#CP%Q zyj;BH*EPct_nm3Q2?vDAH`phwr?XrC;qDqK!fsIPKrUDQhPs_HU|%^3MDz}?=7h;X zS~1d;*Hydb{EheNw>3`!?`EP&|9sIyG!?H_Rii$HIIq!&hlLcekfer%(r}>OSeZ-{ zRo6KDF;&c3UGCW3@L4M=01*i#Bggkh!zD8bXftT{LLN-?$zNvk!XSaU>g@cfUmzA{ z8NdDqerY8I{IQ?oJHXfN1jW@_vb2mUpceYd{VwU2ed2k()g|HYU%w>Y_}tazlD_rY z;PWHn_iOvb^LO|?_Z62Ef@dN;_rS9Wo+scr1kZ=?cwco%ad>_J&x`Qf08b@6$^n=3 zb9hcb_;}JKor5O{zyAhL$w8Nt3C}(7G{bW}Jh#C2$?$vwp3fo8ly=bP;kgT*1U!$y za}b^`ct$~9UxcRup5^d749{=jSps#p+3orE{EU3~m*L14|1z9-JIRQV*`86Oz4%WW zbIDk|cEmqn;zYc51pemdUpgi5h087vUUB7Bc~@U^?FIB%pV;34RcUl+@LCs;|CQCw z3~yoznb*ZaeM(1$8tGBv{jA-a=oJ3^=)$YISwmz!yab&$fx^O4Xnv>*8#Pw!*5*j+ z$^d#)YMN$~Gu6^S7ifR(*pU@PMtJMg8{!1v{s)MFAVH$9;oBggR`oB?O7o)XVrPZw z)t8r{spTR5Up>aY>Kryd55_{uE?P}(bo3z z*_v3(SrzDVh4g*2psCAVe#2vUPS>P9DB&x(@pAh@wblc&Z{mH_McW6jzyS@TN{a1} z&315mT4C1ly$gGR8fK4>H^d)QWi|VRl^Bb0?0Aj(2syMNrzzgVJC0%Kf7pTh2meFp ze~FG(K@V)e`M<=Y&67fXs)jyKhV=w>gTR&94Tax@;YQHp*xb80jM+SlMWc38<5az% zfkOApcUNHdBugbafq4@#9e zu=uFok@?xfml-Th66@^l>$J_8-n_4~ zA0y=ed$O&V!HAYnOJ~KN){aYCQ&W(xm36tgJQ7bPQ)rwX5{Ql+6KL+lkx|1BzGrZd zZ;D>(EA`mrd`-bUHti9F;a950a&L(k@pS1*=|?%nWe1vaWDxeV%?9j53v#jrImlmL z;BWjioxh}IeEPHrjqn39gGe8*)hPbzREbhV; z3}F-;$bcXFvEb8m6!>jgUGjv=JzA+pdCz`>TXeO=BsJ12U&7|e%6l21mh4vO=huJ% zc#@^)9ZAOxdKX*K&>q3jC*xL!@a=br(sHL7@fhceVLV29y!&i}+d732Pka)K^rQ_O zyoC(7O1uU#v(tEqx0@8V7&&ctsX=rVCef9FFrv7f+8!INwz{>I?l8Yzqdl!$R^v$= z^={6mHL_IKvRDD|IrerZy0c|2HX1&vGdAm4p`%?@m`~uGwgk+i>{s^?r)zZ6W6OSikfwQudd?Yj7jtZJ6->bXH{C@QrFCtJH5qR`C~EgsXz1?l-O8VhzaBtEH|f z5cxYKzF`o^^w}E*W1F*?_|ET0Zj126CbR+k)|)P=8=f&xud=sLCP6C_c+T@TgPU$; z&Po;J&$2vLl#6>!3eS+gQYK$t29xvjjJOwO=yCB8$w)t{8C_SUUn$_m!!_38hx+!J_q|(N&m7M_5Nc6co!;-YoH>@=8cknD%hTrR z+CryVz}gZA8*&W;BDKMzPE#A4YJ*#8k!G*@2qu#g=->0}VOE=BKi+H{W5uiCf!Snw z6IJMaadp6(n2SVzdk|xbaAjn*6U6$P@MAHp%H`w724|KxfnK~r2N4$-$Cd_QeB_Jq zpo1tiGwgt>#@#UCT!#xaXb(D(tsvpO3g+DSpV;jlrB#9qKtOxRIu&&x3mU?|SoZ~? zdQ{VNo9tFcqOTy}CRIYt(&j-=SMYCaq@K3iK#BBa?&?sV7M0LXDWs13MG{)>6cWMJ zB3-Bji1(qE^E}#G_RZBbbwPGabO7ri0ZJGIuyS{@MC=5Yh^65Yu{2!b5iensP$CRV zO2j5|Nv@dtJRx1HkkojuTGg+96?%093NL7hbZMIGLZeb_0W6d zYQoKB6C(a+O+oVwlq^5mU>iK22h+qnAK(56*1^erYtvPmG$7MJ>Oz-cpgm4ly6CEU zGAvLR7N`pg)P)IkZRhQ;qoGDM`x5p}O?;`chm2F=i|T@OT^Kaf#UIp3v}#cmj6{l_ zgJOuV#!%4iMcacd4fEtCVvk-{>Vek;ld+(o6s2We)k)@3^b6(!EQX~}LK2hCC&HnD zWmJ@IZImn({;KEul0~AKWCEBh5tgsz}T4~z7hO^4d@XJLSArB1$TwKdO^^|EvDAU^i=qT&A8fPdon$zwgn_&J7s z0(|Ba*-sc|6r%mb0!hUJNpt=sl0Yn|mei^g?pndP0X(%-EKnV4Wl&!c!zQ2p*ccOE zV=L|j>|DCFE>kOZ8q5ig0aI)tFekvv2WZhyiC(m_j*E1w3YErwn>-05EmVh6u^vmU zKDbyL zw{II#J4ob6I-en?J;%-9zvJ4&j)R)-8OOm2ZKf00%DAa!AA8W=q-*VioSfh4O0yA zw>d~XYAxCOzw1WK=O)7if;R}uys$743zLZ$KmGv7E73YzC13m@$eio&#E@DG@?k#? z)fH~BnVoWb6Kha@pYPL3^FgkOYE|9r3}0>eV5y*;Eh#e|JhKU{s&HdO_5(YPMWI=- z(a1nb3$z9Kof9z6#%?X%%kOxL{D7!q?8Z@bPqZc(A(G}zBCh!e`F(PqAuBMOL>4~s zUBG&;tK>7jh8th~(VEy^C|zi50fH4CS-D1=sYmtSqN%l3 zR1mv&72-RpRp;|RHu~ri3G@~+2oN0v*wrYiaV8V%O~uOBndJmU5^U{5tE|>SsO-lY zg~@n&j&mRG8u67!%rW{D=GX@E z10qR$?4wvCG>&nZW(ht~1+rIR!9XwI z7Fxh3|G{ioC0X`KojVZzb%aM=+jV&NNettbSl9j`J%hU-o!_99DkDSsgt;aUo4J0T zVc^Sy2_xMs97Jb}q-9LSHM*Pg4Q%6kABwU3pp{ze-g)?@dZa8h4gynrq#&oAxHd2h zjo05#jWEzSI&shhkK_HW`3A1C4D>NkpV3&gB6sJ`&&{?NEySJE&UNR1MQNtTJRJtv9=cjYh*0C@3(zpqnpPP;&D{3PLxgk50WvK^_a!U+GWB-gpCh z558`;9A$Rp<~##8_}+*6?fmK2haQ0P@NX?0R^|I`7pk&vSe0D_-nHn_ybIUYtgLp9 zR*qxc7N-s!<$qjBI%Q|Q5joZ5IH9AUZ>=0$3N>W2d%inFHfv9}8nq-x80Gps@42Lh z;dvCEr{HOW=YjWK($C=;+u@S-!29e6F6lcR!)^W2>`iM>kvzs6s+|>+JzX(b7ZrQZ zyr)>gt+iqwn${Kj)gr$c9{%ORVQp0|OD0PThM$%&%=UQ%)DGUV#b$dEhqSgl7lgP^ zf6lMpNRoqLV)`%qfB3Qf58~MewE8^(ax>`9FcTe>*J#h;N*8cA;a@F_dA2F5{5G|` zC!V9M%Cp6#YTj2*vca5NAz9ZgtSAr9KdF&kAciXeEkyx56KdC|KEv~`F?0ksEAJ^O z{IvdkTt=ztryHfn)~mZ1UBLXQ{$Z@r5Ak>h9gN8{)(6+)QYw0XdWLsgZ7})GOdLDK z{Qk_=qv{zt3fxbqGRxR{R6|+rR<_y`Y9a9-5bK02D)_y$N7XQ&QlF{kY;`UH1Wf&) z*e5E!{AvQc(g6HBgeRh*WVw4L6jNB$UBAuJ(bLrRi{RUXN1)2l3px7=XwazT#@#R9 z4O9(b_I1!v)Y@LWKjnnHgw1ra+-K_SsAyI2>>`_RxLoC~VTX8k7X7^2toH<{u!ZcG z^C&WtDlE*%3u(o}!x~d1kUgGp-@)!Pn|ycB#%3DrRq~9}OazZPoVw7mlId?5C&Vh; zCCtO+p(3{$?Mm^aZhDF?D`Q`CvRgnE@;)8$JC3vRAe-%U zlm{JcYAuJn)W%bV`@Ngi<2e!MI?dUNDVGzU&KIUfIP=0Rk1nmWRX#-C%5FzIsDd!p zUihh3DY4VywmdFe*jC>+bg!+z2H7ci3v}p2VQs%x*+yKBv+`VRsvF%)rqC#>u^=n% zRZ_Y2BUx2o`gmw&dAS!6vi)Cajo$-Iudp-~uf4z2ep&Ij%UYZF$0w7M zgrpybWMir@a%%aFcuQ$*UgtcNXB>`*6pb~kcAzs^rBzr6@CC9@oC3}lOG=@>^uk4& z0Ho=9jeek``B)3oTbo_b_0q8YYgX>B3>^j9M4RlY9vHIIt0duTS&O>Ws@_lw@i!3J z56X9w<7f%!a;qK>YUSN}Jb*53^a8!!so$vA_v`f@y*_350Zoys?H;tf-AG=XyKS<) zq&U$h<8i!F@>mX?+FPo$_|cu@+4?7-&%?@oKVHyK)ms>m>NlY^W<>Hn-CEca2PTud zc#&A5Vf(4c0h{s7x)&fojxN$qK?LyZlVMr1-x#cc3;QdP(=QVOL2)}ODUls`Ln^EF zsgZ3!hSh3h3!W%pXVu8oWaJ^6SWov&XHzGHS_=11YB_UEoi%DFhyo+X&bh=+%Ym~- zyiN;+?|{?s>3e! zE+LKv!mv21S#Euc(s;}!S164q;cuvgd1%}?4mu73{7##E7rb`c;&-qEVI}2S{&nWj zuq^YwxIzz&#`w+2S&0t(fKc_FT{lvOPwVlmtZIiI-=dWk#GYB|kYWc`lg`Q=-w}%T zlV+L(;AgF!&3e8=NoB}YX!dyvCU+9H@XSd0c71AM*9;4F=C7(9BI~9#v_3Jrfafg3 z%yUcLNFu6!l{nE*-uW2qCZy*F6}w=5k?kVCf;FZDrZzsr7knG@3lsILj0;qT*guq|+drh}{PFQ>7OGL{vLBUhGg2QpNmdZY=*p*f_HLS9=~fxw zQK5s$$Puv?_Lg`Z6R(rv)gfL@^dct*BGh1o)|jElR`F^Uug&7MMZ9*1*F)m9O}w^? z*E8a^Q@kD*uP4Q;MZ9*2*KYCJD@x9@>X2)N0#+z!g{E1dd@EF7g{E4eGAlI03WcrE zEGx9o3eB}bQ7d$t6^dD*JFL(WD|EMow^PDjGn%)egLgZ8}4C2scP%0jw%g5-ZEbV#h43b|Qg|oC%-o#Hxc0*r@F7KuX#j&M^&s>tWHpQ~S z{7c`V9f?tFtrO+Py>3vqW1xb#l1}PAJU5ZmRc+j7rZ4v`;GYzm(&l$@Ig(=f!XCRf zaSoNw2A>`Bj{lS`^eb&{EaQ!DQyJAp84EEL)mhv~#prgZu+lDxd!pC@ypm)?Ax2Sy zi$uE%$+*U=Jc>&pMADsS5qvZqxfB(B%&Mq=0iSJE^sl&Z_%Ky;CRX&%sNc`bV__#$ zwQ#1-OBcq0#He{%*i656#{qZeOhjZ_v(L>mbNj)0xuG48$PL7&nZ9^E_RvJy%7pAy zx@2oBW;@I67FW|DR`z_$*eYK~du}r!Q-JQe1luDlJXCRPB}-h>B}#;Hij~$fk!j&V zXZ>TH&loiEIQIYAlyyIFm@gb!#9y*R5z_hnEBcUy^NKOYS34IC3~jp2YWnu9p-q1{ zV`$S?(rM;_Ax$^*m0|6_cWC>w{$IEMbEEyA4{QI>BL0&3@3tQoS+W2$%*UBo2-@9_ zhXf)Rox@z(oLtqj64vACZn4DGOq1u&m(*68fjDp=ld0>l+#kOM7R_rpBgB4 zI_D=#dd1Eyoef>}jz}Lr@^2>)c8KMv(C_)Xhb)7b^Xu~eN%^(^%jLiO+W&I+l#|h^~ph8RY@e7nDMqxA_x0-KkdQ#C7E3q}W#IQ3*%qt0F4w z6jw2`Y*297m*Y@6wb9x=8#bejPwT0&g>}z($R{zHKG_$WBRf zMN%hOI>lxWmU{XZM)G$1VDc|w@)ANHou8l%Q_k9jlSpd|vnTyf`3K9P`iZxQcR!D4 z;NBO_#{QYECB!&T<@gWk(Kk{ze-_?l^0+c@;#R8=M*ZD&9m^8Gp%%uciHr!s03&kH zM|b5Q$rx-@#1rv^l{Tj!8BqE+97i76Ox>wIq@gXG+N|vr6TD~{j13uq=$=CT8QeqC z%8%$Ix$1QBW`#y6Dwu`>fW9oKQASao{|WA_@A=o`$y^7WbKVenbB{5m2K^=dUnNHa zq~v09E%o(wbA*X2>Fb~-A7enG19zqIR7SiQeNXZg)5ZE{`AKH4 zCWk|i#CwYisl@uNXy$cnx`spCyKw?0 zxtR<#Ox~ zORN>8oVwff_^z}s-sWanAl-Fst5$o8KfcIjVrnB**VRs1G#bmv=*T`us1=jX&Z9Kc@uQc-l{M#*tG}}cB+xLu##>%^$tHm zC+G0P;~Z&3CKpS!F=RkW!D4>OrnA+p`>j3olSX?8&W4L?@b((M;JGzL{b-CQWpNV zKol*@Rl0KtfxYArI7_}kIXh9#SI$nBuTsulDqp6Y&6OuBXI-*iIqR0kDrYCjqk;Fx zBb2ifyor4ztV#;E32G^mrJutFgKn}%!vkjf~u*fMnb9eJ~4k=nw z8C$Z}A$8?n2)g+K&>heltjaBn3HZmgv?5~NlXl@!XIvnk806FSg7Ag#*Ng3RoNs^X zuB>6xLMPCpi5?%hc<|=&QfIZ2$`XfKly!cWH*uTT8PuFeB+U6L-Zp`w3hyXjHGxo{ zTIHGUmrFwjx8lO!RJ&N;WmO&;e#}ZF`%5$ro}IT%&$Y+jL=R}?y?7ztC2Vew(+FqL zid^qts_D5s@v9+YGjxcp0NEEgH;w5uHgN z{Eau=q%z}IR%@lfDBoeM(luNK&8Wu19$Yg&`Dkg|&1}_5i#y8W^gS)-^Y}l98qsxf z2|rAX{O$Tokld7YfdY9HYjlev3I}NKumBHxSl@8DggqxF(2fdpMiWK*%*_uAN2Ghj z0zdZMv$%NI?%nhRe)?}p5%1?8{#sl!^xwkZFj^weaTtD zyNN%|3NAF>cNp&_#(S#qo@Tsf81Jz0o@KntjQ3pQ9W~y!{XgVS<$Ig)z-pO1H#V(_ zRxB$DwBmv&@A=x`KCZSVIF*0&9pJ`taA8`-V?!j8v}04OD4@*^`qf!MiG@8C&`q;~ z0e9$<3N&r0&}7L65`q5oloU9!$F$)W)l z6|i(9N6|g;Qoc5Z!nu4cE0OTz$>k89LQVp6frH>Vvx&fVQ!Ze;DL1g))FgQ<$Az@*$O`zo&Zm7cLRB%Z}$qj@QIF9;X|tO>OxT!lnq%$fZgg;I-Q_< z0CHw~6Ee-}9u062tzrB5WBt}XKFas&@S+fAGmcwrAX4`!DNlR~q{s!DkD=QGKv*uH z|2-Nw&6h!rUEferqrD0A@L|B!37~5TDDGo`@hfaPIb4HYRz5Uby5o6_K+H#d&9m1H z=z#tT7!Wq25!qO&MxQ5s)BqLe;T>yD(9RANk7r^fy<1LxjylSywG*g1hv8QpR%lvu zK_#yR8L`W2{$_{x8q34mFL9kj4o-!h^KRLOdFZ3o7AiXAaX&450LD}ox|N(i)U9N7 z4QN_?>{BKVzX8ypzOIpE4`F?sLti^*!E5+@b1JpI`$=ob`W3Y~__&x-DyxA^(OV;3 zS6hSRTfj|<392Gljd{A6=*i*f5H1e*qf&4aLm zuY6_)VeB&y;nosV0C|NvGtjvOAycE`m4<^AQri&!-o$;V)dE`_CMWqGAUO%5OhGBu z++-MTl9}Fy+l0OKUcv^y>n_Vb-0f@&(P!v&uIx51?QYsDh(NwZ6XXz$bu<}s+)b+o zbU;(S(n{kxPvqQH&T1AWj>a8Y%`{{UvHm7Y_|627u4_n|=(_SeuxBV++Is$TrO!s< z4Q>Rl2}=CkZ<@M<;a^wZwF~K3e<#_z%cSBG^aVKJtpDI&)5AN^Oq@i`qvO!rhkk1| zmsN;5RZNTd*3%?aQqYN47-65VQk+x&|1+I7;dJV4#!D^DDYd2mDjemHEEqgxPgCml zn3z%xUFQ6W^&N4LVDkewuK<$=(w5YcTnH8*$!@~W(9vwRkA?G;&QWKMPdcc)_o31{ zNiECmjA8V;0MMf^s;~4^^L^Kdk+kYk_z4xF$roz}Q&`3V!Ts++q^^OnbB!R4LUEuuVp^vEKF>d&~-vMIi7`y%{f4m&1t!}SZS+$++N$#)>o+)Em~_6LNh@qP~|EVtn`((CmpImC?py=Z>_b@nV%%6 zZST9^gKuZf&p!Ki?X}lhd;QSnNcZd@kB3SPJ85i=*f?$5_sz%qa8oE4nIRu+cFBnXrTGM%|E(6$Td5+Q(yl7!lGD{Ge`t5~s3lhPVNo&z zm4+%Qno56EmC==JRINJA-q8Ff?BujyEbkGIwt_);E402(nY6@PL^JitO*1UOkOXG% zbHHzL9an_N3Je@`*lFhf-{cCH;!Xt*le5C0UeFeIiY{MAaqx)q@eU;{B${J;RY3lHU(5O_Sd+rrLw|8SW|hOthURQVwAe zzFCewJ@&I0FDNz}l``8m7>GOh9DGmep4yD;LI7s!#?_wKK+$k8sM%3%(OJX1nxPI^ ziRdqx5%;k}D95Vp+ko+Y%GTR01|3+5LFDe(NaW!y>Bj-;J<$`3@RCeQ<&F>J{z=YF z(^35LLd$j-Z5Z@c_(_y_CtI@G1y8OV_GId?C*EOCrer@sh6J8YGL>}5N5)fQMOU|x zwm_*Ui_0)Xa3{u(1MUM>$7sn8^g{9s z#$THP_j%F;R_0-yct3{T|B2oMVe3bSw(?qXMY#|j!DX&t>Z!=b$FF99Kdk!9-RxEEux=9Lhw?}t zHSBNJ*8GkwE|iON(9_%fs9D2Z7|8wTXP|$Aw1SlgO3;xhS9JL3VD+&))OS*Vg)R-$ zS!|ur<=R)TFjw>g8VJEBc!qYu-p{NTQO$ZX_tVYUg!qcWdfqQgO4x**XIX zFtj7nUyYaF7oj6))!c$ z`k@8#l3vEsYbpmp!wR4gpeP1Zs9D_aQpKrecHj-|Cf(X(PtmOp*iE|ib9nW>V4R1q z6_n=FvJT_;OB%=K)4qKy@lu&-eXTs~{wM=%XX`IUm8N>C)dvx=x@rM`*E>Ocsl0ABbT-Kgg5$QOoa4W9rB0HPh# zVGnkNG(LbA=OWQ>=8)J(PAuSSz7_AwL_E}9ivze8*Zfy#1d;!V2V@O+)%~PtRVX)k ztTwWQjePpXuNNXy+S& zb{HN;vtCi25B zo8)BS1O9MdJTFn|$}tqY0}cdn>UEnd8@>T{YgfuPSMQg(tGe2guqXC@2HD|#1TJYX zNtC+r!AC<2MkrIu1g@=~DB+x736FnK!Yw*VW@Z>+oA%iy+={z|+v=BaTm2F*|KWE0 zB^)D`6n;dRvqv!Y=3HpW0>jhpK4q~7=eQi#XlWq}xY3HmqZ^)J*kTXb2bWN9Zp1v5 z1@IcR9bSvyFFynuN;R908%iba3Q{>+>1jLOG+q86XPra-z$RVwRv`b_q+~7-AW-mf z2aFUDjolezUb_qFjs(zjf2{+o5g9ZD32&E<;2~=Sdv7zG3Lq6AfJ+4+isgi;?Yt{x z4X z$GlCOu?+@vKlJsQZKy3Ey#*jwS)t6*8wyyDwhmx3!*pqcNGztm22|^({rrm zM#QKR9Mnjk5Z%EnLh(`rmC=EX!c`6H7gn@1M_%j6m1d%m4)6^&=v_WqRl_|nJ$O_* z0JJidAX21+LdDMZ7;&7;6SpDfH)uIR^kF5Pca$LIZ7T~AyM)nMT;cwDDPR! zkPRC5qJpZ5IBmesA)C;n*NfWaR#O@8N0>>6CH@lO4L2K)VbNfWmy>5Sh|H8@Gr}_oBgmJ_4FE;+h6M$<&9=Jvr~}R(&CdfUjK`SyoGbp5 zCFLc&C+#JiOy@%$(wg1HwPrn65|znUB%5d%lp! zp+On`*f#8OhO2Y{JQPIKeo0OV43Er9NdjFN-zj$wuYx=6%(y2KEPW4)BNo*vK1?kw zs9wL_E4uE7)B!yoeL z0+KHQJOjQ>ji{lLe=2LV2Q&JDLLDca+T&>F(pCPI&bAN8A%vrDd=!WsJm&3w-;g;p zA~A6jvb8AafqkT3Z!BQ@wZ9q1Molru5HD9FecELqBo)skZIB7Qq1TPq8w=TfGn~Nd zhF^=O0yTJ&9HQ)}czyKDg{6#A~EI+3qz#mVK_0Ao0S=_YBkDJ_Yd)W$5pwL2)! z%aQWPr(x30DqWp_$$^(J%g$%_*n;QK;&jDHmc#wj&L<00iVyHDWp?r#b(WE;qKeWe z$Z$NFK0lt3nt}xd?hILWq47Jz_$@Miy~eN0`1P1GvN$y(C45G%a<K-X5tQ;!aA8u;wqJtxC$$b6=9vjf9Dg5z3rv>f1CU86lxXukT*Qw>$;3W_*^g$lX zWSGb1a09N`jN*93nryAJT(a_ym``0o6JH8%vNQRP++cGpy--kw? zvAzx<5Favyi@LQU?|PL z^!Zk8tDF+I<`i@PwZEY6pN8)e0SalR9kw`fPsO$E&+-Xmu2P%2ac~VCo|2x@eBeG8A2kOhuQ8<+*4c za79MXj!=!UUQ~9YwimF71KEmFVmt={no<3y0svaO;td1zbA0E`{x8ey(j}BzQvRI) zOo2`fVE_&(z(S}OfYQ9N(gY5=F|G9^&3R!Q4YnztM_%V1CtYS_DA#WNv##GoWEs|V z*ChfR8t`3<$Z&x5vEL#Dyl62Y;90stdX_vSEF*&dNt57rwtkI>(d}}_o2UW5sfCkN zuIofs!j7Q?lGi2dh%l2=6Lz$FN=`KB%yFEYOxih>$r=lw!wcl~KrhT?4cPlxNZU!b z$m=|UG#wCir5YBZKu2i{$uOkJ3$WghUuUVT&=MC@w2qL41_g_9t?2q!NdFG$n~;7A z>4(>*=^fSGf<}C-^)igWYJ06r?!VT#$&o{3^tM7Gqwj$qd2Wt$xxCKnmBvy9+_h&; zm#@RT!W?HH$5bhql>?t2gXdRDuMd6hZ2J$~CqiC4#~X*|c%$V0Db6EL+bYAIX|Z^Uf=UU0VEG~#;?e{XZPjT`Yj zs)WP)%bjiLjAr=zqx`+w*>-UFd#ho~hOXeR#egPvq9j2oWSyPb82MzLe`6dbM)Gw2 z-qSfSMIOj;w*H>Z0Bz3Jqh@hfj&%3XGENOC<4DWz`&$M?=>Q)a)~y|!Lr$$Ohs$gH zbSauG8#2pX>O#x2pAuacAWa8&I0PX6E~Fnpx*47=gXDzt6-Zx$^l$L|AxJAB#UQ_B zoOK*UoE?Y%Y{EEL9q757?njNz8J9E0F>dT7{bBcUnH-xhR``y`cz{9QzDiV+4z?>* z&nQ*fm8z$esvSyX8`9+eCYtiq9Ck;0inJWj5>(4F)*Q(o(=^uH%YSX&?Ul>PaPgE;!$2v|)1z0yq7 z*KXx|K=V#wrL?b=p}6*l5sxveQRL>aw=oZE%$0u4`bhBMY`rbT%1_5t)vW|ilPu&; zx&YQ@CP_kWB1uRgF)^osR92+ZdP9NslXnbt&^u92hN8=};AwKHN@u$`HLqLDo}U51zx*>1}y_x=e1yIOQAWp%S>W?JsCww_?lk zXt{RFXj84HhK`4}u=%9!2VKGYr7PR^!3ZwJ5oFEhfSXpmEzJ8Cj$^sD^)>TMd^(15 zlD43*yrB>Yxnu96Z~;gQZ2gPe4O=2ivPLEB?zNL+w0=BR3+@CqqlF#RzMndHKZ2oq z+R!$e<@tjx&bBG!?CnHxaJRGVB%ZG{AFwu#YU|jIGSztQZjp+0$qBD^IAqGVq@8EK z_x}_^iRbF|=h9HC!R^tQw((uF59prH+4cnXA)$TocFeN_J-?92&O_M!728=3p1qAi zA$;2xuv-t|z*pH#fG>9Z3UQFLjoHzwjf)4~*Z~6we|`Hf>Q!1cU!Ib%Dq)gi&$ZL$ zi&p!#edW5eJ*xfeNeUw0yGg)9{?=$JUb@B&5dLt^Z2sK@Mx#s(h7rNYhhW5GtB)qj zh0|(qGcX)lh4$M#6RgJP@!kN~0KSY})Y*#7tXVT)2mmUoMGl*_p28+KZ$@%dWGhYs z;+97Fqk>bOf}=BF!#jsl9!q!V)ORu?eE6A@@@yiX zby90G2WS?6Q~=Xk`#G5AHX`26%@kcsK0FF(P$qZa??fgaz~6C9-Z_c{4)XRVulUR-feCzlK7{Pb33 zcoHbN*uNgJlEV$V+kF+~CuEl6wHzjI<>)3X54Ee1pZJ9FY2fRK zBP1u#LDU{BeVb-Fy1R$9oTPF^hVcNfWGb{MqtJq^LZ{%Np0JZeTs75-HFZd6R&{l{ zs-LnTUrNB1&9rDIHI;TGqaEZ?<*bFmt?=|9_G#A8pemhvN5j z)R^MFLu$G8F>6U{hcqz#)$&ShM!;=RBj?KNER`@E2k}Jnhto)%j7KLGa91i36t`NYjsXAFCRyg#G_QK7H{m783m-Va*nGfyElr&JRM!sLHwJ49d-LFEV!FRcB+m}C2|<{lo}T7BhSRMk^e0%U_!r9>uQJU7+{@R z<;7IQ8+g5-Utp2L%7Os_K17e``&rciTZg*hoULQIts`0veY&HF_o-=Cay<9*c@tzZ zcvcpC1`qe3@5x*i=>Wo@0EbY^Ge64lo!6zE#tBHI-!SY#vvOOzsgOTJ9+x>k4pa_| zRYvuCk)6RKkly3|nqD_&j?{%HSaDnCM!Msqv(DHLAwq+%y(K|qo(Bmz;R zgd8xg=xG4R9H1g#N<*IB`*JA69l5&Io-m4vKmQ2|=)E2(;D-xI`7RauL}@;d!8x%W z3*OK3n7jWM!iOQuPM~xuaimrm{@MET#EO+G`7*V3DKD0!-Lp061;>MKjO)R-Pwv zf(cgiliPei2@SH~5%Q4~JOYjKC!8DWC=l~emgqbw81^t~nHS$jP5>oH+DHL_x2bAm zcR4obU{vc)&FkY7VdMlxi`mWnd(KvZFGKbR)aIwPsn_zu@kOLB{S1pdt-3cTEA}Fd zNj~U;F9VM5h|fvsBeKOss_;Bs*?MeyqS&chpnuw@Q#D>gi~MD_VsFUbx8@LbPdchD z*&srDVTRcmZMWCZUTS>}zY3lNqKRf%mwG-5Qi2E6bsi-TP3i3+30FPYGB6|VhGU)*N3nZL79S}nW72%)3y=^qj0<0??K=*D{M*#IcGR5%s zI?X`7<2dq-qj&ZG%>AV`fDtu%_?}IqA+%C|gQEh|!$iMqqJq1NMHi+&LwcrI zbd9h--I3wnuvDPc>!78JL8@Y9>^()&U^SDT1G*FhMrh|;Si^V{FR1nI7(1lZPUl9$ zU%&~p04{%H3>rEqr;ND)0 zV#Yr^p`GpL??>^XJbuOL}p&C4_)f;swsk#m%m(oS4HyUGaYVSdYWQZ+>mK`0b+|N?EO-p#0 z(7+?wG%B;Hn3s2?PQ-jy-9Y&YfT01*??QQ?HWr>$^I&FIZKP@K;#%hTs9GCqJcIpd z>Ybu%5u{a+Hb5$ZS$ZCRk3yO{S9Fa`pR9LVDp-w28p}1`fTBS%q#QsqBI@;mre05N zDvHsGZgHc#p}<_v5fRwd`ZBqz3^U%xGulI_Tl$9)+$bCHR+!~avmzGNXTetVTP1i( zh1DyaRH{yB)(d>ZH*+rC2)YWO8Fm0Z{=HR+^z9IVecqP?S1jy7$|el0fjzFyO=`FM zwIhYbpySyZo_3v5!}%4_n0AW$0fr7b&|S&7hU*RgMwKq+ey*HFPQoU6O1qJ}J9eGI#he*Q#2}WG*JO`bdq8ON++~KB(EH-L6~}R{Rq8F_3z%H&Lr95LQ-Ett@ahq z;MoCSQE4|2eMW~T7|Sh-d@t+9*Vd#o6X3fkOxD)+SH4r0l~C@&$Kp44;YG z=N+*7u?2Y|6{iGu0y+!sjB4LDN<54HZva4cHWcym56CU#v1XtUUuNE&Y{fI$i|_MB z^^hL!)2z7z;AAJzo6-(oBV3BK18VV0yVgA3`*qCHtuCo>TJE6F1*gxa=Mt}Y%QaUNzT@JbRjz1ew-FoW2eyD7Es3zyDbed)H#jk0ffXC zb0h@&a0!Z{>CVJVOxlf>ZNK^y@2)^}hbN}T^V~EOPiqgI<=yMG(lM*)pz~=CR5%AD z;MVTHmKVXp0(1mOW4OZ~+~wSecA&jaShL2z-O8;+c2aALskI`u_NG*80oXf+v^KIk zs!cN5y3)#{*ma~^BH$O=+XXxWDa{0T04*OtUx2|KP@6xo=BvF9tXnT`-sOB0{R8{X zQyXrDHpq|I9hP_@TVQu^2V~HU$=J3PyQv0sfgK)8&u9XSN^%*m723Hs`cIw}Xg3&* zMrI@|cbEC0bsN$3XYw<6;(L$0&TExo)ar(1IB*>XJbEa6=>qElbS4Z-1*R>E^S0*< zVTs#PBlC1r`_(nH@UH@{B8)>4>40k1{2UipX^}3yOkLYYBws(LBA$CVo1qwiUI>cZ zxDog)vi|!mZkdSWPAOFd}r*09Kv6u9)FJ-+jo$WH`;n=r{OTl_qxuSm~e+#IbY= zbtn^>YDPbGhEe)n|8v}d_4aHl5EMl=8L^VKe;%5IEif!UuD*|BUQ4njRlN2 zw4XymvuZrxLC;l#nFc3=#D9O@cYF((YkG7Eu#>3AJqrNhw4?7BdRL!@UZN1aPdj!s zud1me43pPqzJ+~FCA*y zI8UFM9bejaoYY_5Q&n=T+`LtJekRG()BcBDsVjHt%JYdl0xM4;T2P*H&|h-9_Y`?? zeu{kMRc%qKTH2q&inSxl(Mch>_q$~pUVaJ1jMvd6Ix*I!z$L7}=n@SV()>zUBPU`j zwf3<9evPh}wtg&yjP-|wHEv{sDzyhLGqu_)c!*qNk=&d`Do?$`prLj5s=;k2!2b&p zGSXJKQy$$r#$tJlc;Eu7^MwxJ=eS0OTkcp=XLLs)chL&@pVLa9KZHHWUv$*y@Vcp{ ztHfU;llu))W83HJ0DN4$g>>02mpdFKsLb{*cklN-ax}S+32l4fHG2a+#&7H=vE`F& zqey1UJJ?2ydI-2ZxQlJ{a8qU_(pvl&N>QDUq5{Ddwh@J>%-zlw6|x6`)@oNGo73@I znU$=iAHztu<)TXuZkHb-o9p?8%{9jGZdvQGI9qYsv`XiCk*!y&+SN9kDs8jV9K`p4 zx7LHFtx{j_<7O6|H|_pZmP3@~X*!nmLdBOi&TziavbmfN%2vaVRq9EuvPyfCF{^YS zS#FhHPA;)ZN0MQybTm01@NLyqz+u}xWgbXokWGG|*2 zI)@BC!>YE1{QrrW>*w;1q10rLT545)fl#a6?j|;15+i5aEV7wBj?Wdx#(+YP^x)3q zi%<-bicdBar~N}R9{2c;p8(Q1)Oe}m6o?WP7XNT&kgx{Kb>#$uSNd#={2w6 z*EMo8c;};^0RlABA2OF%S=pmJBu%^W6dv5h?>B1EeQFy;2|uElWzQkAEJvN; z3>|hK$`Lj2)}G1c+8zG^9$02JRxNb{Yq&2pFz>$4;|#YKFLpQ|{ZCqdY|n=SBe&=I3uaNr2WV+MkL5Hx$m`$9N?oXOm;3{LhX)C8F9O=bkGrEEGtf}DG~oHlo_iqN}ZgVv&HbZB32t(c}tP8^{!fMzPlOT z)$ZRu70AbyXq~w=JC~U6o!HFa79b>Bw8J*@>A;1IuUK#kXN981*S~?%(P!lrfQu(n z-*h2_VAhzCms%Nz0RfVNa{PypL!C)J6MMJA{gzi2iLOzLMHl}52~q^E=RzulR0e4| zq)JHlET;2ETehbMA-8Io==vNa+{{w{;AW`3AChBN01@jSZ|Jv%1%HX)Y+H_`?tBp)Ol^DlEaE&Vp9O&- z@FwVbG2NFPC)!~4Br##jh$Ri=slgnY`gfvYgQ*(L<5bf$gfMI)3kj7NEj8ru z=}M`i_+hc(YIFad$QjQnE63D|G>_|j+*K&^quZxHXdjktLifHBeUP9wT^;b-_E_$ z>#zHCKvdlOwPD>^yiRPG$K&65cefpnPsKRZ?@r@!sy9uwSSrkK;mf3*-!OYZpi`!> zf1S8yuYSA!dY#2AHZ!O_h2pBos<3)h*U0DZyuCC3k@n6r+M5R}>VK@gs6XL*jU_HT zC@?GV>@&Bh!WP6V=i~EPmFS-<%>;O1`?TERz7eKnQTBt_5!V$F? z41ErQZ_+{V9WSmC8s@}I_{;+q9+f84Wug)p1T4GS5!GMQoh&WgfO>o3%Tj-hu;x&8 z%X)_;K3<=tzlL)_o)5ai4l_u7%@C)}Df^Ywki^KoVrGuA0*7QWjE55q*_H~Liv+RK z<-DtZqMlZ#6*erk;Gj}3C^i7*ODb%n#=q-AqY$feK`q8!+=qMddC8F(WFAA-1DfB0 zCyfzNSt_uILs=>+Q<+nli3`W5D%1XoFE`auxL8E0s@+B$6q zhb`9>JnyxCJUri%0ndJQalZByFML$*N|bW%2&LXM?n;z$JH%4*pO69U;>f`MgMSd% zxxM=ek>ymfJGQmy@j2?UeC>@X@L8iP5#|jGXEdxb5#}umyE8ED3K8mHISGMWb?S>m zG?dMmz8~YqZ_AD!59Cx$8luec6F$NC4Z{aFPvQ9B2OsNM2q7M<&A_pSNeUh6#svpZJzA!K0EUH}x&oN=QGT(uU67JpD(LDAW zR13x;pmb>mVeJWkwNvAr!rb^#o>C*gwKe5)14x^Ry+Cy7L*aRuP!aQYHk7L~NBR32 za{#Sgbk*ll)N22kHS_$9;+i?~MZNyEY#u0nEz3irSG`e;R%oMvC`-4+rA$*A1+2NN z+L&M-w76@;^~BD!taF$PGVX*`YWAr+ScA$sM@`qqmp{!Y|IdE|eE3h6|1a6)&%*ucmlH0zUsYspSZ3v7cI7|) z=*mB?fAc2r{{8Hq=$`>E_l^uNOA%fc61>c-FEKQuhQP}W1TT{fctL0xbN@dI{;BqS zVdVC#!1hEpT>R0Gel)tiOcffk7#OofH&ctIAzBpzX&{c*{{7A3{1iKbED+!we}BVO zv^l_DWiUyirBb_{)G*@tHFV$747kYc@2_`Z*7)d3ZK5S}`=}mz{zXe33LU*07(|2d z!gv-?+8szAbEBUEAvWWd0gCVs0t;E3NS4~&f$ z$^+x#*T@6T_*7_Be3CpcKJJzWu82G3fr;_a^1!Fi6zf{a&g;l7JYD{Ld0-kAosUId zg+*VDMPGwO7huuXVbO(H^z~Tu4OsMaEPBQzi_RE7t9;r~7Wc@SO$rp32nnmr@XS*p zAPIBKd^D0b+5Te>^uOJFj*-`pV-H-+rg;qhgde;3^n$k9`$U(#RM&0k=-z^pJ+1*CE?Y<2EIinZK1GdIOy+GXskJ)^o>)3qZ*gL=Nef#A3 zy$c?8nw>A6FF=QI6t;XFGXB6wU%M|`=7JmltsPxMe44`N<$`nT2qVZ|9g>x+fWgB8 zc$g(7H)40g_!my$_b>s$RCN$bN;PJ=|rQvS_SdO|m z`t82sJjxX7N1>fA<<)Q%IbdQ#+!o}O``T@;mryo5{S3+j)r}UY5oM3)lQAzF75XCG=`O|Ah_g;762hOiCuCLc#GPQVa{WODKv^!tG z4X4cfBJS7i#dFvES+~BhP&FP08?VfV(z`Wg?eP2+3)wkrZ6~RAE%qd; z{fqY^a9FPFrjF3zg{l6=r&3?zS5QBDhxN1VHOUGOe{T5X=vsA&Fh(5z*WIK`qA~P+ zIP~YGQQhGy1wyyoc1x&&{Z3tMMSB!mDcVxRYFAgoyqkN)OZey>%=z*?3W}TBG zO@_I=?6DH-ocSoC>dcY%gWA6L!k9V0(5+T*EH>l;V0*MT~@?E{Jwz^=sASm&=y1*_wM zS{eXKHDBhomuRBAumcY3dnUCz?1WZur+Kxk5U{7Tc0aTXyFEl1w z=2_zRQlAr=#v|vp-$(|6V!(h6?Ov{P>SAFBoqRak$DqF23}mOnuFl^JHYfUIa^o%= z_9!Lr)T@*@NGt{)pkIPP)=U~luR&4a-fKqS7Xg2(jXZ(}`8PBOD9)c@;EHZxvDB;2 zQffq{#*w0~s$pJhgyAHxL2t~)fNwWqz_&sS_;w8je4B~^-zH(eH#Y`+b7H`^(HQUz zsEkRMqB2HwFKc>~b!9k~HI`i>!2Ny&xJ%N2;iQ>62@7x^VS%Ew3_}fhjr$SvY8Z#L zE?Q@aX*pG7puoDjhV)l*V0gewbif#o$?^bt`W`?}-vj9Bd*BiuBm#G2v@sFjjYdF07ju%&p z4Rb3^ew4(dPVK#1RGZ9XLP_>n>aP~p9IMG@LRWPu)uK}E7!LoOUNv~$dn&e={O(O; z@Bxb$n3o=HVh*074W??V$U5g5#sj}Jlm|wN%wU6uhzNQ8Tn4)u2jF95uu-#tw`Mg^ zvSv5XXy3;RWq1CaLfN4b&Xl|$kS#A5&-QDm&wD8`!J8i|iO7~uZ~X*gb9+Yp6QKTk zKhX&M`kxX@lRSEWH3o2tf{p1kG&7d&bK?Tz`H`&WK>cV}qlQNqSoq%ljF?{}k7G*% zut(?BS+&377PEALarZWU5-QUEjM{UdeC?MXW>wZ*J)D3s;ESysjH#;!Rmbtgl{|Eh zA`Ld(rN(<^>kX~)J7xNtz~d)E2h1owqPp&|F$x-Lr|J#ojF3NBp?%*RA*}CDm^2vU z#Fyc7x$Bd_OPAL7-vKYn3`uN;&L%%es{m4iN>Cdew0-jUPb2T2N{v^k$=4eTl$sez zO;N@+S_6*?S9N8{)3rwtIvWcTVUF;^McJbGFvoo1Lf-Nb&Zk{vu={F4d{UV-n=M0s zjklPMCybiBnl1Cd(<%IE(xEqcGRh}(i!OaWy!ekcWXO8^^u@n-y>)3tpXgZlpIvVV z&oS0m2n*}>^g`J?n7L5UY#$fOD-Lkc3D>B@%0v|t&-g0rm&^vsB zlz?E8R7F|iKQlc#OwSyP#v)inW1(&d{gYCgS>p@?Z5XfawwSNv^)oF7X36OPOct7{ zglA&^sUGc{8U3FL{bz?@1bXW)4&!A;XiuS0=^w4>N@th|D}F80p?NGcLkZ8o`Z&q| zVn%&4QuWy`RUg!YZZP9FniWH>EL5n33$aM5NP8or$U-O*X7Er=@6Hd07ip9yW|b$R z8dF%r^2A}~iBz76e4(!|W|Iuv!_Nbh9CUg;UqC_je31oRbTsK!7I|4DUzzV>L65R1 zpG69k`EC~UDvJtOq)?d;4+|6XX^_~SsyzjkOOMBlto9EZ;x~p2ak~8<3y-!;Tv7DV z@F=e@vc#_esAQocC0vB{7Y(bw2rfsPl|~nkA^R0y^>BYI)mXZyXSW(lmN<`DZ!KikYOYoeKe++O|zT+|NBw9a>q>nXhyzVz+y`*~n ziAE2H#~8tK?zcDXs4#@`DIBT4d^plb2>?nwhM$P89n7KO19J)4rpa%hXOJ=jp985e zmgOlS5BFGL%_CI0i}z4{wnisSaL$ZzGR9oju&F^A?`&g=@UOtA+n!IsoarayoSz z_q*^HQa>d3M$u)5bTyo|%P!~EFPGLIN7vpt zJi^gEMJ~3aNT^h*2Jys-hoY|f zHv_;yW4*A#-*i5E5lVAD`vK0hGCr-_ZhG!ZskX!X*F#@3(;P@z>yUUwDb%$)2LLGR zVBgdSK$VjFfVEXuYzJ)b(+zz8N2?LP;3Bz7dV{-4Dr`rD@{I4iy3(rz9mT$e>85-0-Nr=M;obXrEeKb%I%M+haO=ERN^K30NH8z>o6|msba{n!jk3bboyo!6U3L{%`0bK!)LD7G1H}5DsM4@>{K_e!ccZi~s4)cyM zjuoA!Td6gr{-e%~4VkgYT$XIq;<6NP5?xO}%99ta@qXc>{1;Og(p``|&{9iIPL36t z^CP%F3~3jnJ&=9}>9m>0YPADSz-68?dK2KE9sUb&P3|}C88322&{uZQIV%eX$l(t9 zm?AgTzVq6D0e6TVl*2QMceYcoZ4pN6m3xSvyyqgt^IZ>5v?nLnxm)MfHDon6g9XZz zQi>e?8UBFckgdizWas7PevA6>Y;p*U4%UhGZ&=5j@-2sAc|aHetBR6fR-nC@%a{^j zP8oA&=83##KD4KJdJIAM!>qlTgM3z@) zWruV$$AR*k%vxvFUCBJ(ah~INyp!1=$9~9>E~X~Km`Ai67!r@F02t|&T+nc)&a1>J zD3!;EgOqRl77PhSl@+8)e;xId1m%%}0-Ux^AZzNpsafKT-FjC_MT9eUc^Ud5=>j}h zK*K*!0Dcb5qga~!^S?vDU}!ZsTQzv6edb+&dFVPm_y8W%c}%T`v8+!kMZ@-Z0m5+y zuxXg-4Z&jhztq;2ICez{$ zH1z$>IrqL{K$xf~d@s~}$~z7p7$LjarrcpBZ0$FR?p&FGDNz6-|b@@oS}s;*`&GW-f% zhPdn`V&^MgU`&tWhy??ufbyv(DnFd%pO*rGBguzt#poME?=Qmn)JZq$C%80{SdLj&7C%_2^ek2TDCcyCszCR2`@AWJbBoh}} zjlh$f1#_8A1`xDjaHR#lEPAdosYiS3dLxzG#nSOjC%&1ky_s$cu1o~AZ*O=6XjTE- z9N=WQJv&jgf#DKdnGAVq3d70ASN@E^5#L;4KbM{gIvksoD8obgG+!0j0) zOG6A9{-#lK+B6YLmd#9p{?f_jB?XR1Z?ToBzzFVTa})oqmkJUf4~a}=v*Q1~j{v@O zgsn<~mVJ`VnGG*pMeB)aF2Z+FJX3gZvYB!4#y{1HM0RJPw)rAwBw_d8kMc}KvH(p( z5UNgWQ4&;^%dIMZ47c9X1fPbLsH_b`(d!q6s$^v|kRyTid0)O-Hcjz}03TJ^tOD2Q zuZGTL!~Er|mD7};XsLEqkpx1>*U3pfg8uR{wm7-(NUBXon-w?kKIqa$R~IDaS_m>aYd5Am5{L!+>g zwx`I`J!I*bLzE@RejNAsL#tz-D8Kw#RSU><4lpC{CczP3%GW{^@+G{h3jzvAG$tVY|F04=zhmc6~5TC;M9gaKMjX zJu6NXWoU;?98$jj2cF@eOcc)$`<5c9L>WlRYRa4uk@W6Y14*-+GP5F*UW<6k+mtyw zBI&b;x6DnMUXe6Hb*o1SZdNNDVggi;vSRzdrZ%9BW8W*2UW^*#bP38Vrb$2;sT^H4 zPRA3}$|PZqryhl&(v+E`g$pn*YRa6(je&-6C5B0Z}>TfO8pNKh8 z6({0NKvx;VvYa57fQnH0>3EO|aS2Tj@r`9~;mb+_(BTwx!|^EHe+*g|CTrS#a)wi0>0)^s@i2hGFPq0Qs#td z5)&hh>_k`#F{9G8cr$54^C@?St*;g}GtW~YGbp8``lI4B2hdhE$+dl6Gvy3yHeRtZa83c5e2PMwC42dsf>5!yHj*VjiL0L3z2 zj{&azUzkUJ?2Dm2CKS-!2Vq=pZnVC+S47ks*(_&o!!DfWlciSRRii=uLLco7JWdh% zdd5&oK~J+60~V359{^WCsK3uHulisXOi({jxEi?pDwby{iTfihBv#sj^K8oc{al(@ zhXTH5m%neUwRR6X_0F=TU{qYS!P}oR-a+c`GEqJH5Ksi26cz>_k zi0`bzt+Ep=dn1?6gnLgpyAvebsjRwRm9_^x9Z(+yP%%4m)x>%vRjTIT(4KOwMr#J~ z_)eCUK(C^M&%QJ56WW6w<;-8NYr{>_4zKd@7utG(ox-2>vrka3m~O$pg=RJ#28f(y z3y(i6{W;Vu{?UmNqZnd%8YdXUVk!@uL}xSg3~FSiWja(M)D6^QfZW*S*-?qf?i-@R zK;5C^;y%qG(bRob|7gm-8JlzyG--iaW>Y?G9EVwiMx`jY+C06 zt538b?#?wsZ4B-v=+W)sX1TpnYnH#$#MwPPv=7AeZXlj4BOay%Z9hk?{! z><0_uxq8nYtimb$5$?avztUuoZu2)JdgrOqsr&+kk$2q|P|RZk2dknOFs>FA7gv!? z9=hZ{95}c zD(!)ugzHc}$_=9Ss$NzlMVX-edXoDL4i?#!&psEhwUEhDlfQv9^~TS&3VMJJhQMb| zvAo`)y1J(UU8AHsaosoFg~1g-Q}!sRCVT9lBa@L&0!y1ArzbH_o1C5uvtZ5)HO-09 zNQ-*AtSa|_*9)cQjYlpGi~4C4a0mv96`ic>%L_a}M-Tt`SMxIaYA&+QdZQNtNc>? zc@GF61H9Llsbn9A6by<7ovnj9p`|IEue+sleF8+QS*a}B0ew)udsH8e{_jp5mK!|M|(azT9O{+7?m)!o9cb(04pQ0lZbYN~dlT+}D@j=BN6 z0cPZz(?aD~L3RUyxEDdF&x;Ejk)qz_CIFjQT3jiJ>3dZvUX@&`kP_L35bk0zoieBj~)C;D|86$p&6fTBZE{Sh)NG zZ1XCghk+^$x=ksC7wKxW<#&?wv^?VWb6LI_g*J?(!B%FWbhif|=lJLl@ko|NV&Ha~ z2)ax4D5be_OVQ^`FvI4ZSD?IgUi&Pqmyw$HG;17a#mI)cBb-OHMhG|Dbz$%fVNft! zTYMD8x?0bxZo=_Px5X!I8aBm`9^LtF zNL4FEt7Nqe>eDbVrs2SVnFS;uPkoce&UX|OLgi@xfxtZgGzef3JahVHT6y;*kXn)9 zuTIeUCY5XfF2wT0q#LX!wz-=o-G~P8Yy=`EPK48<<$H86>{*XG_D7&&?|6}KPQs0A zE@c!bJoKx2+I{>*J)O$9ryhAiXns9yLS|Fk;!p;~Ee`#x9!)|*$@ORm61t^+BpFcD zVMb_tlgEPEN9d+{va*P(w^4p9kPn6DqZ4j`MdlVU@PNh^{^~eg z#fXwlD05c~&8k|@vUruwqgw0e@suF|?bv7s!{D!hO{Wyupd$?JSJG!14$ipP4fcI@ z>3&rirnm(e|8V`v6(%SNg5{rGx?f!%CYX7F=bXm4H4ILq;8YeEhZ`ng^!Gla_0c$i z3e)mef71|S1Tev?eEK(X2H&jp0rmOk&9+ar@@w;RW*h!~Y%9Ox)e2Yiwt*`oe!ma* zSK!Ko=RCOPz_k#r|Aea)t_R_&f@>9AYv2mPwF#~#;d&0P*WlU>*C%kb!S%ABuhZ+t z>Gg(j@XtVh@xf?{8W%k-#thG~Xh?!IRUQ8~Bz_^vM<`WQ z_wrqV(l}hJ=uR7!e}fB`31wOJz?t=!dt1-fXZ2vdNPx#ze5^(z?yW({wzU zuiEr5Pqzx%Vj;`xqb2%mlupv)X)PxQqw!FwmHyA8XusPxi&gic{Qj^h#u^wyv=fka zfm$A)i{#NnBa(cNs>|h@Xp%*F1Igs|Ath-Kq~Q#&)2Ah%aMZ~IOW_a$30Rrcs>xJM z#4#-(@+h0bz}JW|s!})f-?@L)pic>Ck1{n3tK;Gf`wS)i>VDi12XVg&&tikDA1VE_ zY=!hl46-g~IoYgKIV(v`j|0gZm&d~99cE4aD8mhl)vre=AU}ji#!P%>ApPf&>D8#9 za7%8Ob!?!blw-(ePoFqy&UXezAHkggI)+i*D`4k7)nE~7CCc-C><2EQzJP*%ulDQr zVjDfQ;YZeY=aYQzZbu2fUoL7B(l6~!85Y{7%%t88+yT`o4^A@ad%WPRAr ze}%Y-!}fEIi|aOWUMF_k>3r#=DV^51=CG>j-9B3UW$STsK`7=gsvut4fP)$OvJnJmjYI5zqyxe=-p6 zGV!I0L0#>#zfe~KL76twztHjM>wK<-uR2&WTC}6Tg+cc0W>)RsEIe3bQ=G^^dPL@b z&uL(1L=%{HFXt~kZ+F*|Ui8z!8h4Hiv9H7~J7&m7=103!(^<;Rz&oQi7{?PH7=&!b+ z=bldsEoW5 z?e2CAd0Et*a*gj6CbhCAZ9g|L!i%rn72ltnhDi57?s>M+WdX0Zx*enrd&n!lFaVJ($wP* z+K;NRLkU0Qr5n#n=ciO%um*3^2|Ql~MeKvzvO|quM6KSv4d57mNzQJO%KfUXeC}!$ z1p{B^Y89E5?`Nx3Bi?Uct>WolllvSd2RE8c?w*o;Oc~{V_s0EvgP&8%aOBNy%^)zro7+~ zfk$xk(IZCq-=SE zBxMua{Hj5^25Xp1z#bwl-e1xY&L~=<`PC8DM~ZPNTpe9ufjR&I+!~lexZ=gM@Iv|j z=)yYyU+c6T0Fnh#X_fqMI&GEw5Is4fq*WTpAH-_&GB0%QH1r>zY6fnH`&Fa=T@TPV z;Yjh|nUzB&j%S6fGNzL#8O{3YKoil?A2Gt<%*u_+r>!Avt6K0jI+5zhJV~;vz;c;~We->)KKbeRt4* zA;!9?v0kV9PUmm5y4yESZS>iAujlOzlTSA;>#05mh>cOu{pJ<|r@(<7oSTe1!+>5} zX_O$oPMU=IuhR0*K2?^#GE9BtKzHSSWurQA+;ojP!tZ{^UYZaia{^3os(L}EorHK){d)>4LK%%i($!Q0fv#5>bAwgDs z3g;vArLVwOaV-m`n4)fUGY>PV@nurrX;rOFzRQNuY+HmA4Va7249L?j=h#`EMSjpB zFOQQKxa73>rZj%K(jaFgfB-aNXjb^*wplrFoM%PL2juC}S$XB($;tv3^gzgv$jv}j zj65qN2iX)@YxN>0(;z2ajPRBXm8;bMiA3y9c2t#sJM^ODVnZo9@B#JTS`3fGM#^ak zGIZ|N0e(J%cC%Tsp2rTz*r#>;LanLbSHRhrI*d-grjE9ekTCg@8 ztPQIME5(K}0X$|o*A87CY9!l2OPBrOT4|BfL27i!55>uMyR;*(dfA(Ri|k{<*^YEA zY$5)&_1S?u|K%mhbMYXT@FhtPiJ8ZJr0WZGCoofY_Eod(s-1&%#EbnaqC3A|0P}q6 z4erj*jQ$l3+&dpeKNgS2zUf$CKG}I9&3t-)+C%1!C`U=OEfn1`$?;>J7vW{$^^eEB zMVjhu@TClK<-BomY>9~dc8pe;>pqeX+9b=f;gPNEew5B73KMF^9#e{s877>=uSr>H zk*)+~ZyrXFs4y#U;?hW4STpkXMfq%GPQmsKSb(pzOExn8i~!<3tY^R2c5d)uuu_z_ zaY-E{ao{ph#2WIIQ)6`8&bscOG=20~Uv0pwJi&0Y-}gAwZbi(U$k(Jbz;kgahVN;& zK<~EXEBo=SHW@eRtbuJrqHUz7L%J4p-I6W8K!0@uu|h^Qd0L_=8f%+e-9e_<%Ij0O zg>}4v_K~w&SdVhezoK*zOvYc`0<%*a3DW(n%KjcMqbYaKjuz3lyZFWgNG2GH*JD=Z z9zKtuG}uggeyOemRd}zA;~^X0kTH6#FU_y&E3^I8y?X1K|E4KbFa1>59%1Z?P>irY zVp*nATd7Ow-!UFFfLJB{57Fqb^{4Qm12tJdTkk&Ig>3D|-hPk2eMo8Dgm3%yqLf}n zM+>r?p{1x3-DPL`;ARZAH?MSrSdORN={G3$7nR(9!CD>7d~cP6VwAh@3YVXli^BE+ zM^UBqs#K?BAL2FeF4AKQ>|S<2Sw0V5DC!k8V68C2m=L>sMyhGP`!;yy!ojNU_%hy!(SuR#n~=#qGF1cdPzYv6CR24Vpz7Ece!J8;H7 zXsvyZHk4DY@MXAJ$yM2rZiFJBz1L-grE`w3FCr;X4_e`R@glsU$;8cbvJ z+f4W~8h0)+c7}zmM!0`kn@*a-2}5g_bgm>G`k*bCpQy}wjs)Q1x4HYuy<*=8xjZyt z46X=6l@?gwb(TeL4$Lgu5zI&|UIg_XM$d4_F?3Ad1c-R#Ap?&*6w^M?099le6a6bK zI%z^KEmm><^&*dB*%HQz^10Z!lHO-UK9v`q<#WMBnY1_QD8$hL<&oy|D$I%*WIw-# zOvxP5$7GqNeaNNUd4cb@S?kb~HTxu(=TMHF)nL!^P^AMe#4DEY3$@|}yRu!pQ00T~ zkMuZrB@J}>V)v1VEY3miK_1*cbIen{38!^7Yi$y_k+MesYpk``Q0Trv+1+q{P`$h@ zI_2Ks_x2+6Q;>OCkGlaUl4?b+?gP07?YKM*sAPJ&Q#|ofEHEa2!))0TPi9XEkjqKT zHg$~T@Ly1^fv-sNryx|d$3-~QnSccPm>J+8?XX;%?AghtLszS(NVq(7_8vU!;yFwU zITl>gLhCSGE9%7MqUvTC+gBkUTZXQ`Tzw7|6zC8|hjZ0W#R?xT z`HCQFM`A$|0OqJ18A)azxI67aQs2F+*;c+9tL3&d9!T)TJnW;jBaQroU3PC%I^Uy8 zC#zlZRbnS!B@Xgc632AhQb!&kr`thPV^Vk5ZD_?MwWh2zOBStWGVojZW;V;@KN}?_ za+Svo*Ub?=2+{R9s)o{)pcdLC`)(W$!L-=WDF0al;G{dS!7TnRgS8e9W&68~*1!j- z=3*rbl1Q~`_}EO<;8hNd!0@QuP!q^tJ8+`Q>pS+1eWi#D^?+HYfYx-8$%v#hl!3S?OWzaYah z2ZeXLnOpAmKtDT?<_t}0hd)l1=7c-Q3zxM;rTz+J(a|WqI#GJ{*xEg|V^;>+ebL7Z z$2yN)NgH=vG&u{B9Xw*3u9--l5MH@sdE8<{r~;-)1K<3+KTK8t?j~{08aNn1F38E* zIJslhV?i7qE5u>@u?OrYtM@a{{$me}4UK|)hs*;sA(N&vZ9v;VmcbVPUTE-6G!;E< z4NReJwZkXcps(kW!G@w3-qHH|`xpx+!n#2$nswCxsgm{28Ex?1;Ne~IT)Y<^mFKR*RRwEpA^g~l60)34vO*T(<@K`Tjen0~ev%*n>;5Q= z0hp4AHib6#!SH%~ftsX`TtKw*S2BW@|KU=EUMIDKoCOr!Do^uI>(K>GJ=WUGkslP< zM;4lJL9)UkgA!b1NBdQ1vNL1?(+gadt;WT&JJBN6y7nFFqSe9c+zqSiks7@_HjOn7EC&LX^d(?7c^asDmhus%?j#=X z1RmdYIR@Bjm&n2QLIC6r^oS)-4D<+KYriqkNrmgh46za4MmYepI2t5n@o2TyevT1G zJ)G|oOE0b0`sF^9102NE>Ks`2HyC+LZ?0q@$Ky2RFUN zy7pdx_%1`3#rg=kFhfiWU;Bb=8+Aj=qFfdJdbwdxAxztvpSMS3Wl zb6P>egD+Rb}8Lz)PM4eXsXBg$oE&=jV&4gw`7c*Ew$aD0g zfZLp>(Q1Il-@zkP4Y@*j>^!+&Dp|ZuTN~x9V8P~b{7eX1FBY``8~C~Z;W(Y|8ai*d zjGT>4kJDU@{poewUy9R7{}?cF3?%~HoW?Js)YrIx`P|?yoY_QsCxY38qHuod^9mP5 z+1)4#?Ke%$GW*c=`$%=BO%j@E_>_tZZF3)e*K8|$H*#HzslD&R%nR3-aJ9j8SHr+H z8LnsG`h&P0f@|wOv+e%Riywp#LgnD(;ZAB^U8KT)lLvQk;sOgY5ZgrCquEE$y)7L<2btvIZQaLH7f# zlAXMq&O+utMUGXtg13n+c2 zlJsfwe*@AdZr}L7G5Rj2QouKIPd(x4Q^*2yAZM1 z=HeN5%0(jn%_@`)zP&)6=y78H3e9&&E+w0JKEZ!VHbO4;@w`a-Ugf86YIPGOd}Zj+ zaCS7>%*Nt2LLk6h4*8SyQZ*LL3EZ> zi*ofW|2dO&?VV_J>Dt`z5gMo3Kuro@5O=g?hsS&aU(>r|YLj#u%3-ztiIB6=*4n%2 zA;wypLl0&Uz32g?nV-=E^rzd9_H8A)7eRg)OUj6YX2;3`J~LiUGh=1CZ#2z{<#T98 ztjrW&KSRQx(OUbBUJ(2TJ?Ocn1C(oC0?H_lbCzczmgj3AcIVseUun@xud@srT2|lX zZ#WP4%IA^4^yxtvQ;ohTziN_rx#62qY~YA*0}O{eI|`$4`Db*HfEWIj?$CoCi zei~7jXF0J5$fKNUDr7tKYp8H32CKyqvSL_)D5!5~1mZ?vHQon^b%^K@s(LH{nxSGs zNxUwur;iMhXw)!l~;bR-YCauxDg;l=G!$HFFx9Y>)4Pe?`x%p_s z$zn>T&reH7y3AU@dej_Cu&9rH%vzM)ci;kc)xF$T$|9E6=RX%$K88JL37XyvngS?S zOl?^Bw+Bx964>p=Z%ZfVhhwNf5zu!`J}WaT3ty#0!s-4d`_u)N z^45ru>5=%+y z)$HXn&?@^%@)BbwO90;}oX(^e)&qFHlZd>Z&2h=u3Y7M3ayzq&4%Yepi`Il*V#U*- z%NdKO$whq|DSZ=PZ3*JKiL{p17NV_dzvrtT-ADM^!i28pX=%hM8@rxB)mvLiFm|oO z1S5IP=|==lHv<{k(-XF@J@5(&jB<59$c(oF9+xDQS0lg^RH+A2RH<9pG61&9*9%hy z41OB+SkI3~1mDG)R1Q98(nahHu;otN1;8T{xMOb(d`C~tL~B6d7LOMZqQfTS>&Pw^ zE*y9ah8oJtnv}KJN+LsbyNSc~LVYH}#Ga#Ed43?bb@OO)?`38$bU;)@$K*h5sPk-4 z8==v{B1xDpXf+nDrL8Y((#B|EKTVeTau|Gu#FQR)JJwS9%L7LQ>rRk;GHADbs?NX9 zL}x@4Hq%1Az#6y=lDpo7KP8UsC?c=}%HMb5PLml$#unwM%nx(^7E#JHl!i!@*EtIB zmA}T%sb9C4ZJpve3fCi_nr(Zbx14Pm;va2wH~P%C3;ENk0 zeZRuiZ1Dy?t-uV?YDniqb$^+Ie+DCjdRi!OCbaFJo;8UhoxP+8wnFb1pUWDR^dB@s z*|*6lXDgGMq0f6-Xr-^ED~ht?qQPe+7f!J(m45oZ#o_6@o)r|rykra(B$w>muB{^6 zUpHX&+O-&Il$rf29Z|A$*f*l25AcHdiJ`x;f_SzU<=0D*mqxKHvwyioCz)7dsEuWr zP)G_~5Vko?{Oj0r3Q8qzorZO`6(Vel1$2ZGTx52RE#qSWDU!FVO~IbU7sn z+3*QZTdC8lJo#tnL>bNlo->dO(6elV0#4<%10Z&AY5y8NBHq($pNHHJWF0aAxnE#n=Eji0*zPs9t2wq{_Ws}u zhbhM^dk!nFt<*~JFsTmvIZr@S@*X@d=l>qkJ%{D1*<2@lNPW=aZ|L{>518_m`bTjv zx6%ucSMg-=22EFcm7n2z*{!(#P8+Dm##r`#r~o;;Rg4o zAqUD3#4>n;X?m{`70xW3u+zQ`MA3<{TIL+cg!0~Z6eieu2EuwM25D09dd}69CcJfXjgHgEG38n(a!4D;}(nA7KSpx|+od_MedoS27QH#~-}8{E&)bhOZA$F<~*=)D2gD`v1Fi{>9r zp5a38f4>Zw7<@DrWzwAd0_E6gnm|Psi=)ZoQvxePk4rb@f{2^sMF(W;04n=C1|i>y z$h2Ac8NHL51Rv#}k)A|9hV*EyMfF7Z-y*V8BFPpg1%rs5h$5mu3Fsc>bQ6FQ`ZJr( z%Hl76|MEfa|8eO1UU;A93rI-s4$Y}G@Jo~$DrZAIEfg-;C*ube;|Jo{QTB=QMqlI? zrqUPU_!s`h<|eYn$(a_U2C}4#?y@rD;kKA%CPALB^`EtsU&U-NU&!-aGnm%|y)FwK zYs_~Q!sG0a6SCxk7iPn~4DMNQUkdj^xR=0v2Fo=2t1LR}ntvfT{twZCj`A}O3tcX3 z@?V>%196kHrs=!`-D490w}rvD@My;abPo`4B7sT&4+J9I{e5nXh{W=5IQzq>gZid4 z?m0Zoq{-I>W>#*WT5hrWKOuK*Ce{pJNDeL#@ioQNb%-ql;EXHua=Iy)0e`96(=nUL zxnWIV^1f2+_48S#L-Ut+=#?m9wZ6@KeF{&2PGR{L2Gfb2sgd-(Qx8ewa-k1Qo2QO< z5=B&>CIGd3job=BPI|K|4L~KGuV~Il@@t4RbSFPMe0D z3d(C|8B`+~T8(7bG+ymK!al~qN~*J7&T$0okB~kkb-C4fFvjMiBe}svn2$xs#7rDe z{_sp>&K8rpV`kHnjnfn1!^uXdD!AfJ&=zPvAN5kJG=;9vwtejzn zTcMm`fm^b_0VWHJmrYN?Y1x0kman`4Z&DJGOAh*?d*Gg$uRMhb(~}?<$v}AqrZ2O2 z^Oais)G{PDjlaV`xEP)a(KUYt$OVh>U61JLlc55VWHU|ErqES1g~o+$=Tm9uW^Gms zO`;mJf!wRBnD#y{XM`@-nkQt|CRZ|Kz*@sih>|}IOq^{i(D4bnE?^!zHRD}2<@MF$ z$U{n*c_7Rex-jv%<_`)H6?Q*ni||4wW=)u4q5E*JWvOa~h)%N7ti9`-#4cQP0Oz46 z!v}CMuRfPu1Rh!l6Lq^U6OZ9&8y}HJahyC}+|ctllb_Vi;|v>m3@R8M(h5mPh#kms zw9=+hA)NoqLcH;ZA%%z&g#c1OCw(|NKLI)ypGUfXC?#i@k_+Q<3`glEc0u#McoDq` zL+QD~^p@1T#}~S0kVzAiv8|e(=&fpwXP7HcYfrC}vXDIWaQcDS-q(@8{oTp=Oo|&RISW>QrJhk$S&9p^OQXb*3~VGP)Rc=K zRW32dYNCP`H5=HfVsHXOkmAVS?{wRMWfUF}D5*0HAjh(1<$rRcbR5$@fVrCNeI4v! z8|^RQ<`wh=<%;Xakzcr~C2YF=K+Rki$vNy^Fj+=E=z9fI5W zVmP2wAi8F{lq%A^;?4y_F^S(W3=$qDM}eBOc9_oK40}z;1`xx?6NX zsA}U2XnQX%S9$U~0m85&Kkzq|+jc~Hv>}()3ot*$i+B|51>ww5Jl?AZ+rn9C-7}VK z;fy==`)-YhP^{^5IT-!G!scYH{z9kgQ47fA3O5pTPT#|Lw>f<`(eG4iz)r>mIFIB9 zH|lQG>AbsJnZc&q{M(Vbf#VZJpa+|C^Mk){yFsTb*qwwJqW}X>=^P<@SUor9LY!{E z*}Vc#3Y4zLho!QZsI+W@!Yj5C8l1+w!<|?Ku4u|Y$Kfb-vZ7$fg@=+O9f6Rr?Uxg?h`mU8cvqLiA$hL{2kz=3!IxY9GAdJB%Dsf zxmw`FYB)N9GlOt;{2p-5ZR9xrFbSLv6UQkeoUK~`=cvGG)Ntwr&QiiLKLI$e37kJ_ zIGY4c4dJvR&IWuIGIMo`CPvAHS=c#7_=hp&ffrjH1I7xuBd)sr^(Puq6?C`YTNJDQu zP>B~*#%WYW2rBV}vjlNW0_VRC0_Q6O$C*YrwjkhiZs0hFG@QKx$4fXhh_grFyrkhg zEpV0)PBY?c5jcJg=OKYp1vtBH8?aQq4a1gd1s^w$1C@D#%AFdOBtfN~j~g6YQv}Wx z8jeli^a9TA_|5pG5s_cQ5xo^gw4#q3(Hl8M{Ax##Q^Zv-qKFH!h;x|d3`c9dzI_P|y&oVuai&^Hk)(zf%w2>AFD!B~Jm6>qP)vHmHN|AeNK54QlI$b&w_QGEB!!O#-JyYc&v79b)}0 zjCD-IY7tnigw=vruZFQ+*RWm@SPEe|UH~jPj1|F@`rH$e(QBUG`7*DN;guf3#+0B-VKeW-&+v753r$~^1Vv0 z%n7o_!JR{EpJ7`^H_^KGJQ+Bj;(&&6*0pO!k z!#jwOwdT@HeE9lLomg4wn?)m*ta_XirB&hjU4fL#-bKpa1V#?6{rQPF@pWR(TP{vb zrPM8$`dT;@$J@k+mM*~$#M1|Yfni#DxcpyYKIpvG8aO$q)izSi_5gJyF`$i-JsM+u zU9{Ua!YX?YuttQjey3q+ty|A&A=ar{!G3)>+I~Y452x`yq#n>x^D#Atv=>V4z|`$p zYBHv}N&ceLtOjg+wdIR#JKE2TJuC=b6hu&WD zNxKtz^iE)fV@weePU0=tl#3f76aVxN*8}4SAr27^_=go(zFJ`={N{D$pR-`!$}c1t%Nh}W5BTs zoU1jQ@d78=O|pCo;PgDgan5Pd^S45Jp6y14|0xPkhaVX#IYN&-Xo&2QS@hMd9|Fav z1;y~m#nDPGv_kt^IC!9@)^Rd8b({Mf!ID2kE!QlXw z{FRzv+o6T1D1f5W)m%b7P^gZ#V}D&jI9261gFHZ@A=a(^6Z}Hf@L!lgUr62yZ(mYD^1qrP>VXS;x4i`^f3s@n%p&4zn$d?*wqyPA!!OW&x*r(PV zd*l3H>hsy&0{Oz`@hh$Mob<>xY(}nqt$;9C~AUrt2@UsLVm`y_$!D)WMfRf>4D`s}ryp}I|E4#nl@_fQ@B_<7@Jge6WhAn> ziBlUZKQI4!>Y2*6@>3X0c6vOU6+gAH{Ikj?Hr>Z&`KC5k9x9&Du;@(NJs0nH)NDWl zjhdPbTj6%RX2Z+;7utx->9q^~1%sINe~@1dFxO?C8*;D#+aJj^0R)x<)Z)l9swZVk%HH5)MIXll)ie}G$m z&BXJrD=mxbc+yvAYCbFsPFL$FubdA0ym6_nfVbaltNGAb47n+sljh}#6#Ixna*OFl zaHj4?z)XcpyI-U)H#c^fSAT)JV?G{ZeFRIQ8B-T#&_78QLv zlks!tYIx8KpU}NzHwc`vm(B(m(J@a3?%c?pKI@wqc2#oJdHUgLyeir2Jm*!(VtsR; z*ZO8tP&%c&UvAfFCjg-D{^^3*whOLz;W}{P68@IV&<`pns;=Nd$P!C6V}PE0CsNJF zzBw)q$D4rF>~lBl+xSz!(5?*iNBlSCaH_L_>M6kUSDAG_%Q59xQU5Vuy5v-9;JH23 zOzxr3kwt$yhKXH%c}JADB-)1H6Fl`qRF(ihxi$gK*WlU>SIdxmFg;dr98__FE;j7f z3LRSQJCSDYn)1PTT|IE?RY+$vU|cS)32(@ZHHG;12mBn+I3OVe^F=M5r zNteObj(yYi>B-I$$4>8$df0U0SZK_Nws3mXi8jQzg#RqzI}7I~xZMX|EEm`EA^Bu# zzWcPl&r(@peY2)kAB*R#m%`0|)=-|u_9{y+sOpJpU>bw*t}mYskh=kLEDX7YeW)~J z#ElpYat%PD)kw%Fc&qii2I2mK;bEf}zH=p9X1EgI`YBw$fJ+w@rPmuM;<3>*Y<*%p z?$zC?B!m?N^J)hIDXb)q9kp5@h2QW%3f`z#8_TO>rp-2x!d+JP!D%Mu*#T3}Bs>&% zz%xOYhGIr`x6cGW^dLu^uEF#4CTW!aoIx_92{}k1b>xXSrMlj_W&{OPurtpt_YpkB zpJ$fy`rPgA)5x1BT3a6O);G!73VMpkv+(_Qe|4={8dFm}LFYr4Z$Z<}kTGc5jfb$- z>?Oy3aZ{VEYbXFywUdpV+#H;?mU-%w+zZ^};&X(gpex2ai!r;~=&5Jby&3+!rs?nz z{fsWHLX(P*z zb2p&vuO)EAw}5#Z?t|nLCe^~S!~xVCz7ISPcY#Yp*3fMan-hobwDw;>cUoGbkfSh6 zX!77Ed7j5z#G4(gALjywV&{eNk)`hFeha)PRVL9!yF#p2q*OWI3I= z#AK~KKmt$}`uyqRK7Y*Cz;>#52W0yymX6`%**x3S53P@&Vfo|_+5AMC@u2Zw=r;c1 zW|tb7&2)-igs|Wnm@hiesl0Msv<_9}X7`cPjYew#gQR0~Ju;4R=4|XT1Wk2#l6rC@ z9^RT4G;P6i3zPR@6cwzWtn<8n{t4ua#Yz4H4k$z@7K`CC0)VY5#Dk@iE^dcto}HXh zBl}onl7gfMd^o^7j_r^i>T7cxOb@l{CI{->DJ$bD9)M0ydGmwcP75= zfo|V7b!A-nyAk=0^phEE;(<#T(rH(vyt1-Z{jzU{B-vP7#`SXJ8nYhkTEprm|>t1J`|0RfOgmfWqA!vo~<;p&&K$2 z{SPI&%CnhgJ!?awEmpK$8V5sXDj78V2Pi=_m;H+${F)TZ-kMVyqn25KQRgeSEWaQQ ztQ?7sARkQQtPJBtFli5Pv$9dKwwmfDowb&{%%$6>!eru~kI%6w_C{*}M>Lz!Xkytr zg3?A=uiUm^l#Vx1cAxtr<)hu)DBgwj(u$RIl-Jd9e*2u?zT~&B`0Z}^j{NfEEm;!^|!aVgDvvZ^Dsi!D2b-4M@s&}$g7!mI_RodNmh4?^8XW zhm4TGmYJb6QLI9Q%7OkZ;+c+TbBIrG6MR}S;Y&Qu&F9v);Ci((i3D$1+6F9V%z(jO zG()G4(dzh3@H-!73L%2`$<2OsbZ{S7UKTpW(2fr5jnEh5Hyz zT-eESl>5(Vjr|hOFCKl6c6zO^9stoJnBAP?RqlUpyea;BIDAoK$2^N|t+o`fJGa0Cw)tl;*kRZYjCVfVbCvVU1i3qL zoZ}{~2uD%>zaw9?v1>9)lfnN3)o1Ce#zO#rLrcYd4R}=5wdhPTNlwUw8DP)|QG*#Z zNVJhen|Pv3ekO^Kgb5)D3W3<79jVX8G~wij!*(=QT4_sr?R(x=duuf+)j+wB z1j>Y;3y53=!HP=t#L4T6N@J`k^VVAXoS8`ow)cDQ>$4rQ&pG>N?Z36xT6_Iq>@zuq z<1!iw9bE)}hdu^%qyb~2rI2RzJ}vCs2^2Otg?dn5T&uaWPsTAvL8kOgMkGfNvf${qP;e1w1$_%cw9(%zS`%R zUmJXxBc7&AR`xureF6w!^(uxo6zoda`!mHu4bxb$#b@ak2O8t%9qRikIuNZK462J9 znIkY#eB4@^x0|GNKxb(N$2=vox6*^o=L0kKF|Q<^`JF%vpOmmwR_SZT0rbCPJhiW#g{rHgtldoep@c91N?EYxGc6~o2 zJDgdZOZRuAg;MFER7NP36-pI`QYE2OX(;6hrIvPDdedp=Rd32XBtwgBW}Sg%}4tu zW6ow|_EzJZ&BQ5%3Q%gLPhK?_ctm`dl)p`+iDsu-Hk6vG{RI>;T}o$-E@);>q%bAg z6MQqWPAYhypw#3qaB-U;3dPs5As3R_RLu>n5v{#ue?v6~3UW=p#uR@+2Cswk-?g`4 zllU6#+C{+N+E@Q>HmzK~?{e`cU~o7rHEd6MXvF|(zXbZ4iO{n>xIQ53>~G5YBrXX+ z?si>CKeR;n3e|R^vsQL=8IE&cU1cECf2pSuRt;A_zOeT_+v5~KYO#!XS1@-S{nP#)8~1^SzBQC9SjVfO@= zSScW;WMrR?@5}6~RC8vpp@UEsVIzyEW0D(9_B8raX8p=Ji*)Y;{#MkoMU2}j8HvqC zV!M&(HWK@dL~o3qIB6s_Be6P8k3nM}Y5i@t$s|Z|E$XX~i0b=vD(nC9xN^>{d>EC` zkMf;r^oKqp-pGngkgbVyr(PzIrR;3N#M=1K#}>5*-dF-x@kBDu5gn0(zlo{#Rm|D* z1`sZdb3^mb@)Hb!sUu1TnlvBKiqh{Wm;V&F2JK10-=|ObKGNEa?HZNJh2*d6^7)O7 z5m{zTY;tzQNBiXMt(4=;{W&+`q}b&~Cdi z5oqS*mHYm$>rHzRzQ5`H{&cAMu$E}ldx?Co!hsR&u&W!`-APcFg?$#dhM_%&l#t^| z0^%2`!M{Maef4IP&!-|Ywy6D}d;`yA!~HNJXNmdC)3Xnz4nTd^vh{^LtcVbl9B7Rg z&)(5WUpM1D(_)I@RA$vj6ySek8GA>**89SX#;|;$rQDE6HNf^mlUSrDS z=tHun%2Ufm#X~j)Bj~Xf3oLk+yBUt2oK65f0qy}`Ys{TMh-IL;ns#h%bzt>U&@)2qa9{~5u466% zND=REQhU@g?#ZNRb*V~j5f zQx^+eGzBs-7Jx_KJ#5Sj^-g&_jXL!4xbB@Yx`({bRiQ`%ohCabqak$-7X*w$U zZIu%6X)BbV3=X^q2})_Kb(?7%pvP0CDeUeh&1Z)-G5~pO?I>MDf?GbWebNnwYO$4> zSQqsaIJ2q?uoY}=C>mo6OIV*#QI|*F2+V%#2f?7t#4H1<`}|%U`L#=R`@4KA27c6- zr3YyJTe?_PZ;s_vR&_y&D-yqG7!J%9zi7PDXURdCw6#?mnv#g#I3dGk%dOB-F|S$t zs^NFceV)Uk1Jm9}9O7u^2*&+nz`MeJYst+p$yXwKm)ng&)5yr|^w>!_z!x^Fx_ zUlNJW-Gt8b^ljop>xK3z{nY&I1{DAHF$@550#i?!d1u)`LR%8{6tqpSx8rPQD zTLV19FSijJ9S}Xi6GZMBFK&WD*G?daPgFkyiQaFP3dwauA9s$DSC>??Jn(|MrKX+uv4$?$XFUNh*= zB3L^%_4)alUBsVAW9MKBt$tC@#tpplq{NDGa~KExfB&@Tzf2Pw)ybZZy4##G6U z1w9s+ziI3+TA9Pofk2xBXa(;;(BUt7?@MH-0Ga1Sz~AW7VRv*Zj{@ugwoqXAhG9RW z!~PM$epo)t?$u$(;5)eeS~kM)NV7s$A5YNuWggMK``<~>v5&1nfgJ2_bZL?z?z1VU zETJJoFC zZB}6AoxGmox^Zbc63rci8V%tY@p z={pQL-M-<~rt*6tR=AH*Wsm-F4EIFAYO!dwt$iP*>&2pa`8rl0iA9n;3xE@g>g4H6 z*-h>3rc&scZ=~~OXtYJXpA~pAi#)*ElA;?cS|Jv!u(hp)EM7dYd>fs)+PvEm^{3s= zTr<&?N$?5{z$F|u9ilQhc+cEF+5x_I)BZC(Rqd{D8(`I_}VC= z$2)|B^F1KGwby4s9#|`%m^6qDB@UCE8Kl85d%#KVmxI`~sAMfLL6dslsV3UwYck6e#vQ_KE2N0pPFPra=} zJIs;iQ#VTMQ7sbLo+q5?sLcfvg}zz*ogwM2?vM%oF4O<6CUI(^v&3|ujY^rde_1yZ zj}LXX6FComn-eie6i>G4(a|B!Y!90`BiA5I<*=j-8b z5HU>S$sOT*z2SV@_?zwFk6XjZ=fe3$`J1uu#|z=4Dcp}2_?s8QAD<5=yY-|N)tI11 z&^w!q?(f$G;eRIYwCE_4xA*2~yRY*JSO%UN?VdS_ddAn1(LW0iE9`OdNck`PT8^7Q z@E}*2C+45YsS(yTGhlX69u~`7oUa6ojJx1EGLo=MNo4vuU9yvj#B@m@W1$&x;%nx7 z<$wiHLc_kmHLRu(_Gy+k?IqZs@8kZQcLho;1YCmVwlmU9e{l&9>&AU$6q6eowg3tH z`;f4QMLp8_5=s+oZ9(qfimqsa78gX|FW4zJ+h zVMXhQ)~GrATR))<{El489!q1#{6!m4Hh>2|`mQ@wF*v|7E9 z#RFabk@DEapmYUL%T`vtaqi-J1XI3%>2e31vWo?m*w+x7Il}q^@j8H6tzxlY+w@&% zW2EyHcw?9E2u1B!>qS_+2o^lqgKrde)4kgpU9SLTtNmgzMLAsI%*N?Mzh6LUmB5km z;Vk`B(6Nhc^KpFh6pGg8_il#4^>>DDb~-~hJDs7MozC1)%B80wMD(48h<>CK|W!Drt zIeH3p>%l9HcFfXu**bglNbALa`?r6avKCp9xs&oGKI>Z4V~Rdl5!OmoJLxi_*SHfO zxC$i*_UK-Jr*U_scH-St<{5wIGUM8*^CA5kdt3m33W2sS62G)5`G!}j7M(KAxi<}1 zXdsMHSODbkeuGRq&K9Pzt3v*I@;q#Poxx9I4Yu|l;XtF|N;pX9$Iuo+FK{(T)gu1I0yk#%Dj&KM z`mt&G8l%|++~X$N5>tYO&cXn?$jTxP{4j9f3s{rD;fKyQ=7c(p>;PtjvyggDedgUy z7@!u8QSZ@5FWz^<0aw!2YinPSMDEK9X;XBTKxN{owQ$D3GPu#h;({K#$6JCZ;TO}$ z0oj+DV>+S*JJ&r(#Ns^HcFfgh#&O-cZ(NaR2ZkHecCU?m`R5r1aak9B zd3uJiA1x99`Wsq6>CCSkuZk@DDwSPh!qO|kuYVS*a&`D+2fkc|LMnVyBz|F2ZV$7} zI@_tC-AT8;jL)zoX>1DHiy45lDg>&dgx}AEg;k}>qkyc7lt%$syI6i5EMm6I%KZ8^ zx`Q2K`&vK15jFPejV!<3B?48n_G*TeLJIvL!ZIxZ?Dq(Jlf@7EIAxp#73Q>VeT5zh zWxHN-+1gliEEyPJ{?L}&t$gIl>`mAwzlK{PyyZTjEqBZ${R|2l?O-LV*FFuEtPU`r z;|YeDotHzgi zQM+lIIbxQq)5#s$G9Z&B?FUgY5uZMrMxR#uIDMv7jQjc)eD!hS3|m3U%u`)M&1Cj! ze|R>skzet=Rz0tUy!T7aIt~ z)?g*VjpJUtqVbMFhQNCWcd_`jO`!;%6GlD6LD@M6^&vk%a9DtY!ht0Y>KZ(Hxj#`p z=JH+8&lQ;`U@)@Sb{ZyKe?0dYla$0dh%L50Beqfk^2$J_)#r=H8{Wf%hfcOH;AAVI zLwp&G!`Hyy>E~L{_;alx1R=dU$>9sJsry-j4j~TFa@>WbumgE8n}`Mc$TnK2E@%yx z<580T5U%_15_vqfbKW?+BicT$w{6I|dPzthDWPA0*F|y;UKPoih^Izce@91&Jwg_* zjLwp-Q1ry0K&$?OQF*yf$ro4==KwINUEa+A57Jv^3 z5e78+EVhH1RdPE_k~z;M_BUM6zak=Q*-KhI+^0Z@fvJdwrL`3q7(fQVzWmgY7=b%- z6H(K#)xQl&;`qL2`Af#j(RO7>crV#WVekMu_7L8IRH^pj6_KS!SH?wUynutEdoxF(0Z;gz zwcr6Yh2Z0S@uj?Y)CN6t-zwe zA|Q$vnX@R)oJ|K@mJ($`To&gqN=D-R^6XSYPvkh*+K?{~kHyl~`#eFk$(f|D?+ z{c+0930;8*U2lrXZt^b1LZ(omfpLWv#?wu(+KJkW2xC~j74&$+8}hn%V&d>n$vgvv zJ(28OSNLqQcIVuarr#*)SLtV2UK-Qmtu;LqWS%;Cj?x6%hZ|B0JXa#(z?L3TYn03d zq?*;o;sf6zYOxh7_c^+Wp8K-#nn-%iXy+qp2UygfAbf~xd|bSQNMi^6%_2?p5IL8q zEq^j{Fzyrxbz=VQdO4Iec@WvT46Knhu80Ni9k!F)sP7X?4U$y;r%8jmn$E6m(|Z~px6)MmEIqhRPA6|7 zMjzMeX;`bJFv0rNHhM0d*7M&qt^V+|?hZ{W-TziX@+<>-0mAfK2XkEspEw6&9I6}H=%Ox_6Qjdm$_ zA^U@kPxD#6?Frrpfyx2PBKbXPwFWiPP#;Y^)L5$b-LhF}BL2^n#_am|_+1&( z_;qu1vg$xsr@Bu!QZw!twjbtbUF{J)t1Urm}!^K~}V;MZO;NwaX@6Lry~e++?) zDotnjg|8W^SSA%ciRG{5 z7Q}*szm3v|*V4th5G#3yaaC@El`uGU7?97G z+J5s?Q(%Bk+OiO`?o;+|eHHZ*r!l`a%^F5pO}{c2r5Pv@)b3A=_{I$BeiC0i+s7>) zj3>Jb!PSo6bO{!G3a>60U1j(!o6%$>NVgg6jUM`dX*f#@*|T_`As%nMgO7$;zLia# z*YDv)0d07Yx2(pPP^Wk)Y(}M95NzyEc!WKr8!B9F)Zw7(5JwoMJs5mcBFoGX z(&s38phCtCrUj!ZlW*k@p_{V9sz21wb7%nl7cJ?SYvs#}QxR(!Xbg!?} z>51;G@MsTD*Nqz%7@vT-4ZeY0!O$E=M6PrWAO%$^buLxSnInNj+!)mVKosEgf1xsD zcmeTcHl$u^SmvH!Saus^AE&vOpl85wtk63LaOr@k+q+2Xa5ujVhqt4=3uE8Z zg$tMI!i9f!7cPwJLYLl!ZM+NHzo`pbFVlss|LiVo9oL0!y$e0O3%kFm3p*~;g&qIw zF6I*dKWa_g`sci!uiW|;ru_l3+Kmm!K8zS znleD3;zf+l>SFvV#UFeklfujGufgotnA=u0z zcp?Nr+dl@uTBt_Xs?xSCnMs=y(&WxA^N8kK$IW*qF$sR z3-Lt)E4IcLS>e2mBfWwG@yT{57V7I?cZN_fPC&Xr}{2!^Z zJ+;=6@P)jO-L2~u#74S?NkY{>t9O}Br)Z}?BOYqiN>V?b5WqVe@6u7pPP0Wqb>;|0 zy0nunph6&JlLLc;(htyHkl%XL@(BSX;Fz<*>A;|K2;h9?w&oN%9r9e9mnuiXA^F;h z8tr?t6M^U^4jC!);(D&i)WlsZ2u0#&4Y8R)_8F`$MZaf(S6daJg^R@vurx}LAXg%< z&OXtv&MpJUfC0$f5Fo!Z7j3(OJj?=Qc$=2ql z#5`Nu9!gv-TbbfOPDd@O4@^@=XLIL0T(`cwp27bMok=+q7G`a%x|w_Ssn02?Z;Zz4 zn($REQ0CIb5tLsn~pLFn1OmR2P4>XHwps{59{0EGyQ`{f# zaLWx5XP0%l$^A#PF7lO5Vip?$=@(4P7; z?W9N#MoFesD>Hj1Y^qD`?;I2y9{aNn&MnR<+O56wcp_|63vk`Ii96|260~pza77!# zRa4+#i|pv;sSnMQVO4ujBY9my_-G7KAHf0Xpd9o5PU|Tidp218NkWXqpbp%iC-(%|y`F z{yt7mzivM>Zu|svM=jK#{-TAX+EZ8uRVSeNC#p9d)Aw_pgWY3C3z>bqXSOy}FT*Dn zJz@9&R*}NocJX+_wM#tS%`m^-cSzu*y)=XqY*(HnRyD8^4TUXTuprBoCQA??kP=wE zMT8>(k}i0EJ9F7X^3b`hA5rqKNpddnp2B)Rlly;h^%Sg2REcESEA7Dr)x4zf`g zAKoErkNB9ywh5=1y^aH;$^tIkXz~G@Inf8KZqF*f5LJ`@Plbi<7ZaIE)!ho;^ee{4 zNWKG`XWevGZV%10?v1Y8!K&?Q*%+#ZnsEWFS3YzphfMM#Fup-4#kikzFsQ1GEwSJg zK#W*zkz9G=v4&4@dc0#1WBHwc)x?fsuT|iy)0v=dZbYQLIM1pv%u}>{eQF56{ zj#jf6RK?0Ikyo2fQeU!Kp)+D0jLz*)Jn+)xJEb!gT6-K(b;!!D^6%@h}$vgo= z3H$j5=CUfi)*L~alCSh8iElSt2u#N;F00SFL@6C`n0&F(8r2Pu64|0;b#c1CfL}J#+7)>572_%^kE}s6J}-3@E$u_7uiWAWs!sT*gWnN=_(kXqQ-xU;-6>% zp-#zE4B{J@#*&{MBs~;9@yV?)>terc)0B%7P|d*Dq^KrxeMYjXRTqXeh z5ONWjMjphr8}3EXN;~LmUr~eZMW4q*@j2V;3M#qVUS~)p5~6YSX)($NmV~~Yc-5f& z2PA6#&y0Ta*v>sy4OQ z!fdR@5>k6i2^*aP;}R|*@a&NDN+^rUP^iLlJ(8aZ15z?t0q8mH%GYMzz=wO)E3tv9 zv6g1o9oMn^WVBVCr8GH%@Etx$LaPnS1!7xo#8|QD0e7L!gZ2`k%174H4a17G>aP($ z{*drvm4J%IO&25Z;{>YTwx?I={e?2>SeK2yTkho!li^QK`YX})eLY$9uZ#Z8cHzIJ zl+GxmH}vmwCGaooha4!j0Df-xErMSS{A%G>0l)9wi)$th|BH$<{)@K6#7?$9DywaK zhLr=qs9|5Rca@8dbqj2-cZ@D4*iONpod{dtTRRcBK-x}(E-+^&f)|*z6X6TY*ogoJ ztUD3HK+H}Ak^HeJ7iZWyk->!;(^pW9cKEaB0HCs6%dlwUo}Xd*IHte1$B${#tB_v4 z2aOxrgL3t*CV0jO57A3%D$q?PAWN&qE4>zNuLiE`st=HOP6AAUn`h5|@=__gc4I9A zdj|Qleb+EP_w4y8Jxedcas8Vmm3T_&Hl)1P6sq-0ZQnVpHCeB<>px*U&%*B`_5OOZ0-LI5~)=w_&GVD-_~A>H|~7~>$Erqb(3|{%hu+K zAx2VlpGV|7AD*_j)6hXC#>B9-&%w`SqpTv?Uyy=?n{qg))@ldbK{L<`L?~1Z;h9Nd zIFw7gM*c+X#;)c@D=m*^1710aS|a)BfXol%XPa4t0Ilj|tV-R@AsH3Wu)if)p1{h6 zauz4c1?+L4R;Ao9{l0i<>tYY05Owj=Na9g#9+s_}%Ys0UiiaDc;ABVRwc`M>PDP=F z3dfyOPq{emKV|ZTzyem027qK6{!o^-F68y+FO4w9P^++dcaY`Ri~FGZQ*3(s3HeQ^ zeoIvv3{%?)X$H$9T$R9FPFCww^HKs0z;H8{1*UxKd4#L3v z9<|r1hOy@#V{+4WZtvE13LW!!?1LxB;rUsp5N*sVePyRAv@1&zaB84sKU%R-wa!Ui;u;9EH2na8F%hCjLiUUoYEOUTB`#Y3T(rhWt42oG9CE z$_OXvSyi?#cddLkv+OdgMHBkuJF*LR2~w8PkQ4(mhJ(NzSPO8Nc)X)KfT!MyrlIz; zNONgW720gO(f^QIxXYqicd>#n7aDT_>NK;ebm9r~l2yyA%$>oShoSyxHMd)7&N4|4 zAklCRa+E8%uLh+Ob`RQ^=dmE_AIdkQ;-P$_xS?LYF8CU$^K6h{4RSbr@;R-2gu5(% z5C?5GR(?j_&)nzG%THAnJgb&1d_5JzIuT)=Y&wOGnB)sB&1tX*&}S-Z9#T-H@DQ=p z5i4XT&AR}*+z@4OPL+!?&cLfBOdjR?EoVcroJuUIWGDGYd5Sq~c$#8fM4q>rhoCaP ziIEku>NO^lK%u{37rDpg-c-XMnPyl6d_tAh{b5IFcYme~pmu zXPIb$=<5S8M6llCeF2U&@6U0Se0rK>SfN-$S*9)fwEKzB8D;|jo6SHH5z7thK!J&E z&puCuH)V%W+0Uu6q)1X7>T^3a2d|K-+oB6YVtf_6y0XzAiO4EF-seJ9EupF$Q(tH zdsnSWQZX*UFb>`vmKVYqlA~okk_j{EEJ}xAHA6<$Y!}~Ye3$`2BOChF;`@!MKFe~S zwL`Dp9AUgK3k6D_ReZl;kR67MDVWjG!J;DV`-MEE-zpx1EJ!EK+b8xn#cFC*K1CPY!{fImXE5{V+Uf*l9kn-BD^oM+9ahp!z4wi zR}$90KeJa^pBz-(npDm)ej(xe`GoJ&#maj5#>w!#ru}Hx@D@$ydDVF~8!&!9b8AdK z2hFhNET46jYI%w^pUqbeSkYvt>O6wkd{(SVv27w>*6txTD!NA-m+`}kRSk5ptX(-p z$#Nd6PE%K=z*4r3!5ur;Yk7h?u6L8)eH5H3rHN1)=0n|n^tRc)AkB1E$ zddr*`>BM~@4}IU44Z-3P%SLURp8Fdrt}4ywGYy@Np;kjx8o!qdD>c*}VY{Cpg@(mK z;|+5chXqB12{FP6F4<$+)1L=}TqEm6^p8em*!E{o1p!9-`>cT6q}^%gFI>spq!}KR zLv`vZ4Uw+J!XKfc>n^X{r8^=^W9}pBZqj`SiLVS)s^d==9DFEGSkIA2*?`}DgyYZs z9Dg3y@u%9X!O?0Qiu{@iRsS2v16FeqVHUOa!kp#{tXV_s0z`UJPT2+7nJOoz)}|zU zA(U5S7exlL*6KFJl!%xwvq|d$IgUk`3!b(Ji53Vp! zp$%D#Mj;cxe$}xP zh!+GB9)UY+6e2I&SeTal8I$(|qj^zV0K_B`R$7jG)YkC>3;L_g?LeP?Z` z3xlkLXkv7Wg*0&r1st-AZ#I79vo29{pM)0G!Y3^U3ZE3rcp9i>=ecZde(z@Y>}+=$ zzk}4#J|Uo0gn;hRtz2XegYsfQy!!(Y(vW5zGH}u|>e_kiQ3N3z*KLOO0?}LC zvk6=M2rxFVr{6)EtECBT;gC#y62;I3ILIoXdPrD0RQPu`AKdmA$%EusR(8&p>_XmT z-*_K{ry_h1etT}YFi0Ui%D6>|dq}lB&C1e|KE~(bWO~kk2bDJq&w5qWWzF-aQq8cLl(^gDJe`iI}xi$E?@rowunklbkw?T?aqrO0NG9>O7^R&cRnG zk|Ln0xL^XhU{>JkzT9%aBoSbk>{&(`=qSlUadb*+xc(0uNWLrCr z@0F%I73LWCx7;NzdsIN>3V#R{w~;2T-*EPd%{QP~hKDx95> zENXNhTFr;HQQ_>26r&cP9!-8at3@CGx1e^~Tvkk4XT_*bV^?*bq3Ysvb$wl6t-3gE z+>85LKOws5m`Sc>JsZ*EN~>6vCY3?kH(=Xy*m`U`2yMslwsWxUAhcbqw++*jPfg~B z72OsZ%`8k;ad?D~ew(`s$G@@klCjq=Gxo=E><@>=zRwtY)EQ_cRE#r^v3@!KtX4Q! z3yJ34cm>q{=f8!ny_}|R@c%BLOKQ{-$UK-i!X>UPVX-N4PzQB=l1hPXu%gudWg@4T9|Nan^t zN_A|;w@vfdbZS8U7v7yB@pBSyd>$b_5I?tVx`S>4^?2_|lgE1>%0PZPsfI#j1!V_2 z9hB{A?NCs*>W2hiZ@>E#KQ7MdL2J&L%o?7Ls(aK3eGcTmQ3uzis?@fGbBrOW0E}Gi zNzy5~fxXow9-ZBr+Rsb}Tv;X~4IGxm@1hVNz*oH|UTk#wtiOkEeU#5EUgYUwr7x84 zV#E7Ed5C>o?RDLJgU!Rq!08nW}=7Q_T| zao_hcGwh2;ENU!F8pj7_c$tSk$KWs6Etr>FrL`5Y?#8j&|`!W&Y}nsP)eR8hZIK< zl2B5T*=u`#ROtIe$lTz`>;>$I#0n$}mZ}>(YQa)mh~iP(ruC$c0}MtJDiMUdXlG7P z8`NGN3kF-7&jI-^6~H0~5OY}~oqGqHk}Cq&KpprQ7CwEv_V1jDp<~ctni%hev@b~B zc^Q8a4;cJFwZK*aqh`m;Uf>wU<{%0a#4@X#22^`a*_fPyc&j!k;VtIU~zqB48bc;z{LB zEB6%;r+us3V6C3VJXIMeU51H>XNNKH#b3Yp4XesV83eo&*kRbf_zDPhuArj5Trm@I zKEMy$7dhX#*;j61!x8?659C?QtP_2bsd;1SG~}Mdw;KjgZ12Vhm12M6)$^+CK8p)Q zP;kCTszbI1TAlnuWu=1zh?8GuRCnVbfHoJ>xEKgo$MIKw?lVAa)VdplXD8w@AC$9#GVJ#BpqvJ!0YxN-)@zNn<5Qy~SsPZRw?VgiP^h;PWqN_Q z9v7J}W1Vt#f;%Ol46h`z2qpk%Np%Go9#5$D=l@&R*SVYF%u4XV$pgYdCXaU4-wbsg z*fDE@1YG!g5WUFE9?`SJWsabH;6hk|M=i7Kc^~2 zSVj6N^uP*Vv9Qve7I9!5U{!RKdx@gf`19QZO;n<4zaAy32P2}&J5;$>b))QO1_d(Q zugb?!x33}MzPPxA4e%HZ9<}VG_VZU97&vMMDovK1MD@a+-L&+~1$60hOszeSLWyrt zXiWj5jriOl`RiL5C2lSnYmgpTLSr*r=!V z69h?{%E8HIMOJ3%F<_a?A6eNBwO|y}CbeJ;rHIj_JZ))pL5<2jE37Z~FuT2dME*Bc zdtTgU*rqmM!}5OCyrbIV^*kDH*Z$z zXxQgi%N);OmHiD@t-BIm7WPN2ldpIribr=Erf?E7gAkJU>5M?g5wk}3LxOT|O$}L;WF!#3HMkyyR zH)V@iN^k3x|ALvmC!l5zWbzkVx^IrQx*@FvSa34AL|bC(W~l!WD7Vb`RBc*xd%FWv#W&v_~;wf&(k-bO_35Gz{7%Fd~+ zyTg+vC1bx_=r`FwI|h9^5YGZ*;~?*Fn>7CASr*MK@#w2 z@(^ByU(E`LAS(zHWQz=fY*D&;PaUh;59|WY>o!OQH!y;oBMvkQ81eHz#yHQo%%Ro_h?mG1prC{eds;sx407Z}!XS;AC&a4J z#s}bl@a2;0MP`A$b&`PV!p)7+ualyMK_}&DkPY4eeP75d@In&up>)HEKq|&I(aS8t zEVwfZ6#??778`H?Q2IF^!eu}h4%^P!~k@+RO$V3sN&ETmDIcL2D%Sy`_E?gU9w&*dadmj4S$ljWO^ zX3IY&X@XAlOq4Vkriz)p+s<*2{_^E7;-^++X=uMKQ_V~c)TYOqx={#N}z{K zZ3bJg2>FJ#wOt>B{sVbS7&3K@1zY-TI<=%m$MBdvp)MWGHM;bIg>S-1x{*iSpomNI zZARtESh;|eZ`CXRpOy)gKN70E^+R;-MgX>1!T=^=9d@k4qu24BiFMo@1`sG>#moU* z%mLK3YHe*r`ujI+FZL%SyxIC8jXE^fK9`s%t4D7!1zPmt5r~bRna0Pz(n3CKoMH1u z@|$@*@FBE1&`~t{8$mBImDR9Rw9i_sRPrh)Iib`Iz*-hb%4oDr`3X`0ZOTKiFG>O# z6Y||C=NS1O3FmvT7aNMXNUeEzgPNkZ_8Z7ISQvdtlWDg0Td)d6!rO|Mm3saM>sw1M!*P=#8PZ;7ucNjyA;ybcKv9-O2M|)^*_&bbP1A`bQt_`XoRigxy z>ADV4#n*j0`T=HYoxAY47hx(SG_brR} zt%T-(^1fXg(YG04n9#;$@OywOBcPVeCVvg z&F#9rd1xO%9cxksw_O|u%BQ9XP}aBx<%>jyPQV6S;UT&NU? zn`=b*9YxT&Wy0b$13w&o(}nugeb~@+j)HkHLGnx}mLT7CT2qGX@2zkO?C9w~znAQ+ z)Mm+6Q{V>OP5w0oOpXvtpC%$qO%EVEx(8-y5eD>?-3)^ZxyV;Itw9Pp^X?Hqy{{AM z^?P{Jc8_-y5HNe2P%y9-54=V?Xn4AqZLh<>U!I!XOJQ8}@Gh&!Pr&`(HkR51eRXbE zGp&Y=?l7Y;eiz<+bN`b7T0o`0ed+9TwM_7po9TH=Y!MLhU(NdrZ6I?@OXQrk^U^h5 z;q_>HO{I46tFa&(07%*ou76CB)*Lc(T_kWG}{;Qrb{@pU~K=de*7t`mT2Xg%>0BNukWn!7V%P$)r8~Z!b`VzS) zo*8@vaWO?Y7PQY`sZr3+((hUf3FFPsE}U-RA=CMLJ5HE%1IrItH`b-D%aLZ@NwG+# z!k-kov;d7Br=$F)!4VO+Bn87qsq(ONBaZ|JbwkGPRLKT^dQ&A~zHY+OZPqbjeo5v* zYDW+1td@;JR@V}F3Xy*B7{DeyOXN7nVdiSxZ=I{G$qZt^OWDt-*Zv|M^ zFIZ8Xm|w>OeX^p5#QcYB?H!a}E#|KV+*9Ng^S$y~;FHAsdimkEK0+IJf2!L$?{IX! z6n#t_kndre(Cy9jE!Ub%IUSgki->jM-uhEQ+{hIo=|IY9tOI#vaTES41Di8ej5CJ3 zRBR)mn7CB4NoEs;g^l@#N=Rz8H%+;{G0cQW2`1UykjcwxD$wHnYA?5PdujEysHm}( zHZhb0q!^H^i6j~|)=4+DvBt0pvfp#gJF~k1^!9mvzx(wu?94mwyz~A&?>Xl^=X0R> z757H_=_~au>74WWBQ{XPV@mb~+gN~BbK@YM3@Q!%irA;AIyFNG%_zP{oZvsH-v@NkJt1<~0oFnqP@dNZD3)L=i`LXgm$#T?nkkA_<4vcW#D!3DM8gE+KGB z9NIA%VM}RE4~(EDl0e=YO{wCDoYEr>qbpXZCJy=iQdlj%dMjEnBv6Dj?99+Aq{Zk5 z8qHzD9A?UayL4!=?|lM>pNFoZ4(1tT#!?`n8Hc}(%!aU|OYsbcVEPUl4H~4~TI}_L z0#>6n7vrmdsEO^J?sQc$sNoWpzuxIuFJH&o;>z_jiMreGk&G)%UP6bgk z8>CZb*T(4}fLk_P3*$6eLkFaNFuhHRqhj4YS#1^%KTl@Idxjc@IiP8VJ*&$vYEms&N9eW(uQe1`(^6c7xiFD82gV^*ip(r!TZq! zex8c)%$6bv*a8Wsa|?KAr3$#2%uP=S=B6Xoz7SZ2Z+EK)ic*oW^534oK@0Ho3%)zk z;N1EI#u`9C!kI=4qL#!O2}Jcr7FzwB5algg~)48e-m<(sQZUNi8Fdg;%(!#}TMpkW=JUwgEdO0Ng4h1Dcb(TMsM|OnHs-NyV7m*X$MtjJ_ zmSvn$ARW8#eiMR32!0pm{~YKO=5`3an@ya3aDFQI>k(Sdot_{Beh62m-CBo!$4GM0 zU+?1mhp@qoo1xz%J9G1HhB5!CpTWu zf2fvmz6JgFmeBk@Un~*nI?RjF@zyR(XU430?5s7=S(LdHI}7R$1>;Nq#nCL&Sav-k zmO5SaLV%>MTnint%wj7F_>w#Q3G2fi4Vf|6Ba3`hgsj<` zrW7uh(|Oq}Hl1%0PFjxg0+v$`UzF#zYcR$5y1ri@dNRG@a=ir|d( zE{uwSRcc(7Zfvxe%G8a|^F>&HEkV*i12z*h&QjJ*%dt}kNN4dBI&zl;Dc zp%Oj6>7w})G0)9BKej$}jqf8128T(elY`KuEN3k<2W-bpwk|bsuTkP^rpXp9_SxrD zqZrJ;;QxpMN+wB(zR#28oXM8wDQIR^ocBY$jl!@ev17!;rUP$R)sGzPTk4*@q(;!a z6_9=NeQuOR|0Adc6#{LBn6uS|B~`|ibkD^~N|dHSt*~lltlEBxdh|6_YmF-~<-!7i z$EjGSST4e6YWy?>LJYHnGLjV7Ecgx9L^w1NhO}d0-?^)Vt!oiQ{KZFh`~)32gT?T} zWD6Pi1#^s}bByG9pxv8BlleW-$k8vj-yMaP82zhugM&Ictli)&7(K4tB$L>z-JnW; z^d;>k1#b{${I}#@ou3+V@h|2Jp<8}SuGslALN^8T?V&|J)j-dr8w+p`w{^_MWn*Nb zy`t5zj=IB!orC*LGcP|>jQK9TSU%apCrP$^z1H#MF}m+XUAOe;FR15r7ZrS|1Ffc? zH#)zlyQb_e$X?YS&HWw9ZHv#H(MgW|Q@`78+nHj!1^)8jZyo%N??|y3;CCMU-2i`u z@OKLSegJ>FJJZB|K#}oC5 z1mcs7=E@{7T$4afVW*prl}GMLPHKGkdV_Qi>kYb$ia5si_co)8ry!zKF{N^M&z@2_F;ZW zpC7J0RBar?H&-qgDF#Q|DF5F||s$k~1f* zHV2!MTO4f}eg?-@v{gNUMZJb}>NJ#~uEX*?wu>}w(?VZlh9t8dW(|0!UkSr*XDik^ zdm)d%Q!4jGlH{2k2ca}YwEI3!l~(vZw@Pj_O~VhLjkQ3w#C^U`|2%&Dy`M)vZlCh; z#!ZXRr5KIamnc_EL$3`LO+Mo@fQ4L+sJ$u5($uB{RE zGO#xl@3l!u@bcx-o&05A*s|dYy@aHTmHrLJ?xfK;ijndT=3ERr*5kAL(Urz0k zlYJk}PYp{YP+*&94jC>@1O7_H?vrlE2CteFttRP`$*tIIqY$tW5?lwbmT&lM*YNbO zY;Cl^dwjYY^}@DjdmO(xPad%rmGVOjJKJEVn4YtcS0=dIEtVyxfC+sF5#pvXmlh&h zGCgl(P1`g-A`|PK@&u%S)$(!wDe3l%!&$3rb(xy~rX6M4GB2wrMroBoZO`x>G4C@f zWnQJC7{43B$i=f<&Q-SB*ZDOX6#$ck{Q(ukkdK7vw827Xmv3%(K=abq&>qJS$?<05 zPowpl&9e2{Vay)i9Y8=`#eqo)wkEbLbR}D1!T8e7;~N}WVdi!X>!|<=3mlf8*Nw5d zFQEUG+=7htsB=H$p1l8w2P<1q4S+(M*vIl6ib(E-rzA7WK(jJMCew}|LC&mPGdB|f z*8FrA7dcW055U4%am52vTT00|arzTQD02PPNm>bn-p$=j*ZZaNK_>E@*k6_KMAjkwUj6Fk>j4J6@ z%Ez)whJ}_++Wf<4RWVM+Ax5O{^_9$6R2pgLh>S+5J{Hr9w4PN=Jepz2@S2<6`@_se z6GmX7xL#g{S}f@f6f@*;JSDyjwEzX&^Y1!VQImCd4G8J3_0IhDazaAkeDePL3&Yy< zZ%CqwslG$zi07o-4fUe^W;{1&#^Y&2LN8PsD(WmB7MfR)?coRxmey{B1fZrDR5EW3 zTeF_IEWE8HZdnNA|XATL_1r1U?2I_ zzeo$ZuPpK)dSFMM#hDe%JFwf!a@Q8BAMWL+H#cK7ix2GPUOfu&zs$FruF2 zM(#~-tTvQsi!7DOnzFFM944*8BDDNPJMdh-D`?#XD&f(3_E(8rV@I`*8dVy&Z&b_0cbQ7n16sdO6>=E~J;`0punM#;;@t-I7 z&u;#+hb+HJROabL$_J|>)UN7?zRHKaB>!VqRgf|92!r+Q z8IH&&6~$&OXCFjqYiE7xWsRvicrIz*TnM_I#3q)Wc1soJlw>>4HS z00=q5`AWmd;Br!OmE9Gov8!J$L@VXtvWVOtsj;db!!2FQ2i5l%BD~&0Xf}D2LK}j4 ziF-k!=vRC2t%gCCjG-`Kgk$smhI9J7fBjc9?^iK#INzKleo zbC)#H(p*wHcSBj<{f$+#cF~m5_o}7Z(~Hb!YZ2>*dHg$yaaU%KMRX+a+ROA!%f@od zz7Dz;{1l?xM;uM|BAD8p(o7aXJhNl93Bd<7JhN(ZwYjVc7zSHVJnPMfsIUD8ANWf- zzDrqY*WLj-`0cD)tUEr?hwQtt^w+a(ql7eHtcuTwK%W znb7P3Jz;gjuebptjL0NpQNMdFMvkes9r9ri(kK>Tw{C0|Z=Y1iRuwR}#`zUNM_Z8Z zWBueybxK-B&I())n-Bq#lo0dJLp5=pU}km!_DA5%l;UJ_Lc`e=@}Dcvns60tosYxQ z#})JAz=|uyyUbH*-xR!8)3&ZL9W&Y4m&{G>0Ct9)n78@~$;s^E}&r=*o-H}+>lR!Et#_O$53u(HF9 zgOiPiY;^*A5!1`mqvr_PHQ#xr7WTcf=>LwVjoq~`Mm;CYhIOP;yC{*@+FL^^J@!0( zY?Y=RFVoHrVK@c#Vu5w=GrB?wxC6N@w}n=M{t}H8K`(V?L^4igoKVCu)VEY& z-a4zUJ{JeI^OGc2upXI@8}$`P645+m<$?VmaS3eY&iz>{1N)^!^y~l3*&`cs^AqI3 z9B0W`?W;=pINFz65kP7ZueOkr0g;Tn7xv@%MqY5glX4MX#{>{Xln4^mVDJv^}VGk=Gj}ln7^K@-9 zxjKiT=_f!qXc$*YhCwii<7c%JNMy)fPvHWlQ4Gdd>xDp=`%k0%IZ6XC5WzsrEmqS6hXWVIudlchv1Udg2?#XnZ-Tlv<8$r(!&Pdee7A%OKYl z5J?*PA{6@oXl;J9tgZBL9QdL=3Kgm3uSZ9*yaRi%BRnIDdwsOZ%2FefRSe0c$SNAu z%3-1TMkFR4^aqD-LvW`YEmS#3E!1}~&_eScDJC3w`7O!l1R-N4D-P257W28$1#_cI zo}rEKLHOMdzdPKBC4HV(OJ$x?J40BH>Oy~Hbc3_vDN z1jQZRNS#&v`@Gq)X#mg4lr3iEwrXRr;iw|R|9$G_|A;$OX*jB`zlzROY#FCmcZ?~M zCt!-MQg6R1)u36I)@SRXM-cfmquN__j?fvl!52B8JlNndFq>2q#D#u;7vYBsFs=M)iPUgqs*ze^Yj!O zk017+JyK^^PhUQpHrGHsR8uk1CDs^Mh~hFwUZO!9T8wal>i6(_P58Z@==XYO@b7h? zXL6KBdv3;59*r-pGFD%JG|s>p{RW*ll8FZQ(;+wx-s#If%)L&gT+rSNZpexBRCtW&kLIrKwP{}8k9L_j#NDLVci9?1~&%3RjcM#tRCcq_V zPiOv&)LdyVaF@qn){E{uTccZsgPARg*bDushzFUQ8*FKAtl7cxed?cXBgf>Mhs1pY zAHO~N?(pQnyiE%*FbOLek>_be6_CM@+2}O?SWbc37(>bM_>lOn5nYqw%FJVOZ?L>W zt-B4+6GouqB|~CItmK7Ma`~`)MXY4=WmxPbZ4bPIcq>DpRCwMd4(&I#KJX6n^g|!u znZK`_0HHkn&`RffM)fh)ZdDjQ;O#54mX~ zM*H}Bf%h@Won6p-{t+R7z=3KtFXy;ALoer0tek!AW$ewMb(t!qrD|K^z2xlG#~#s_ zRX#1Ne30-?2GasDrmhG!naD=F`sAG1S_(`6NVG;aTGiHQA|n1Dv|`(eBy&PHa4{t( zgVz71EwanY@~sKoUiI!dv{#iyh%FrLOTbw2rJSy$bGmZW%V(yys^4$2@%0MC<=*F~ z8GH>#=d=Dg$M49ZGDae1Pv?DtJ|#F=Ve)mhmWL24^%V3w>X-36tsm!~mx5OXIKOx_ z%D)E9GuSIs1@`KVU2K0K8!m(9S?q~`mnVwDY+IlbuU(ZmHz}?UNZZbCX?7L?_(+$a z{`y*{4{va)pg{I5G(L7xpm90X`H7tTtZ@`~DCZd=KtB2{nA_PU&0;Up)j25ziZ*CBn=jiAW0UnUJ7W==5&r;q{1IQ+Bs5EK!#!7HqgG+%qZad9IUGvSxr<)kLk@#9 zmp$Y_M|+m6xExUP1jUuslY9>T3rz>{ui94aRX_cWou<2nhVoD8XK@aqsGiKDE}8ic zC!hH?{^Q_@oV4a!`H!9dtmHpw{AWJ@;Zbq(7xDLaY?}OR{*y;;hbgE^2O%T$EvV@? zw6zCoj+QYjKQ-*o*WSAbJjH7%nc>|3*V)K8k=H^M_&nuomV@A0jCD|0Yw61TUk zt%Quu4V7pzS>w#DkuGsQSSioe>?kjx@eIw;_t<`Mi^!zhM3Df?3#SL z9Ov8RL;@k24IUCdFsOTejbv+N{ze#PXtS}5Gfwk4tsB8hqIJumaE=KhR#R zyL755>G~9n)&Zk+0Bs9jz@g>C*&|ZeMRaHuPi7nr?nKfRd=iP4;sG&bzf!(WqjxCD zkKm%YR0rdDg&k4KI}}eJdlO^?Hq*BWw!HmRQ7UQ4H{h z%voGh(+C^PJvHr7u8*EcQs3jBXmhq z3Ei}(?HUvPdn9z&drIPn-e=X zCw3fdvd7JdotqOoHz#&(PVC%y+yVRcQudaVOoS?wNF+{m*g4}Nw03A1aXPVL<%2P< zov2lC`IDr%MUn+vyG!7FfwnSGhW!RII>5d)#xoZm7|MXT=m{kR&HY~HwkGs=)kMtb zM#5#!?_d#f`Z?Q6pCy98(|sKzr~9B3C_8@uDd4JQeU1e0-u%r6_Df zY6>`!QX0aV)(gc;_00F}hK$Kp@f?ud3Qe{sv}T-&>E}$Wbr%^1MxH`DA~tQa<5E+u+l+heI=`9>Snlj0fW5S@ML?@@qrPUw-Wi z{cJ@6dVzGIllM4!U{nfz)a+nrqVY)6=a69Ihb5EEXq#b{1lFzQh}={cCpEj*Mpm@B zcyQN5t?-0dy_Iz-o-uX{)cSJf8E1LHe$;KfmX$6Wb9|lVJLJ!pI0oyzKoQ44c$LRl zL)iI-5cnq}N>uW=6KdOhH?iIk1Ys8f$Of`I?TQBx3S|~K?V|HWX$_yA2nyH>Y?aGG zYC*|`F)1@JI3^yQfQV8OX6Km2`MPAudSsifTQEXh?nE$>G59`^8>&t(_6bxvg}x>K zB+~*SwIK zwI>`?SvIJ_rKEW+)dY;|QfF(*M4i2vjVUEz-$4ffmCw=Qo7oYRgSX1%JW~6yrX+Sd z@XRhrNyf;GQle6irpP~XC>za)dT<+I1Y}~8olVEck5O~wT*nles@^(1Miw$PPKMCe zq#L5Np#`}P(V~%u0wND+4}CL~SL0A>(tHm)B2qG~DG-oERmpewR-`3iXrg*+k@{kb z?h1YWS*NZKE4T6hZw)qtuSGz-%UJ1p7GYMO^SG3owW>hz1Jc6WsJE4@Wkp^U zjUN1+^3}{;g=xUSpT*?=;K`{K>z3$Yuebxn`5qD)|AfXY@h(1A?&8CRv{E~8Q`3|{ zJx&@jsZkpCDDn=ct5OK8O+g-@fUUC8BsnBL4ML9)5K~Ac4ojeyY_^_8gB~iOZ?y3} z{~KaDmJ+w_8H z*%7I%v293g^E}1GCr0lgMe&Y|NY+C(p@k61p2YS91C{Xajr~gb6EI&J8=j_^jrIQAkhYVs0q+H${=b3e_ql znwnMMkW%RQ_A_5^Bv@cPJuvt1f?mb5jpe5~MSop_BKl!EvnE`7PIn~;{^Ap`a-8n< zGAxQlx~!3BFe+xZ)8kX7}W{!IN6iOIBKs@NI)ed3nUYHnB!=6Xb?RpY(JsmQ) zGx-TtR={3mZxi>>^Z|JcmNz0Bv0HY)8aAZ=yHt$7+5axBY^3y_GHHD(DO=hE zq&_00ABL`kX&X!E?n< z@;-V^|K1Gen}Qz&H0MvYky!vDv69PH56a4KgpjSMdoXF-hG&% zClEoazHLZAN0V?VK0*uB>|>ua{h5~aK1^tO57%|-Cs0+FBDX7^UF1`YHHWN}MNdb^ zvNrK)f2VXSx@E@kpVDQ8YV&vSoEy0RnBiBpSGK|QoosxXn+yMuxDY=YLv2Gqztvx2 zflsl9Jy>lFPvHAQJ>r*0LeEybKms@V6FO7eLCl)aaxJ2f$L!ZMW{mHJ_Fb%*w1p*& zxXLZckGB!@k!GTmvlb*4#kCd*@j2<<7|3lDi?YzHm{>_855ykDqRisxwE2rsazxVo zKL=yS04!Lg$RXEeV^)s6E(QIxTn;72!CYxsIcXRXJMI5xdo*zevX(-#N+xD|xC*`E zs}43aNy!zq8#I&Y*7)P83gRf&DXxNO)=Ohq3AKI?E8mfEBC7~S<7(!wB7 zk{_t538(cgiSloSTuonXBsh$omU<142l(ulF{R32hY!4|&ZH1W^+}~Fj?3K_#G@wr z>DAnz`?%mE=cuh58nc~3l&cte{0an)j<;uS(d@gmaA&qIB@7Xku=!kCo&?Mk|Apg2%@N5DXM4Ij;z9Z zxv|Z)`PSUcnz6szN}Md({K(g83gRnRP9?DZ@}*P!PA$OiI$i6fROYfe#R=qDCi0zI zFa~syovUvitVE^rH@WUcz7EaFbJxpP@+qMmrOaS1$(bujDbAuaiDYk-gT)ErSe1d=iSigSepgtA;KGw6nTfm^YN zjRnD6TgIu(@(76B!p?53!xJ3rP?ws9M+$ad*dz(QaDp_=7dA_YF#SSlJg}_|!xu%Z znR+pF7lIM!ZwmP4G<-7=-jq|>ryTq(RUR)YEGyM4OO7{iS$vR8KF3gzI-!|KhBcA< z=V$B&(!WIzRv>C{27BBr{T)S!zc$wL=nH=U^q4scMH!7pfgLov(JtIZy4-{Uuc5 zon@&8R2@Lq>)L}9rNZG`rKt`;NC=l+bU#(UTlZBeg^SUn`%#Ufsf-Gc)`z*eaS6vg zQ5yPMJtPf#rxGBG0kwkt$nLvSi2sS|tJ0ngnr~y~CJb|3S8O$~=XY_#I*PTPh`GbfSg>LP2 z1QLhDz3Q$B*ab@l*>n7h!}LWjzJXSN*q}q=IU_124e9a*_66J-)Dx+xWIz%|T1a>o zJy3h~cSTTodDz(v$?`Pqpe{djt$sz`HLdCn$mZ-80)I(1#0(S@UMB+C$}2*(IFgKv z30m97QQY}L;5mHn3)O>_2$RV5K{B@%HNULhf^~=$igmGq{I;|;bSZw@p?&*@_y+c1 z2Ro#GH;fQnQUP_+Zgs~zy_5bU89QnBfZBhYPEmj*E)Ne44E19#jN+cDoec|Z^RU43 z@F-&c54H5uzo-csD(M_JJT%NtkZ*}yru(+6O_W?iiS<=Uw*I%@9UdB(Jeas?$xxyJ z69)MA77X

    ooLG!QZk^=n60cySQA3;3DO1< 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 z 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

    GX?5TArSXl_w=CPm`dlNk&(x-H)ak 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

    (+_k7cSggXc1#|ovZ#%P==GrH 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%0DKqN`M?5x^C9S79!kA32r@_<0kCk#>?2UH^M5} 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 ksWPs#r%=tb>2kr*ip1T+ZVM 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÷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 literal 0 HcmV?d00001 diff --git a/Test/DirectX Redist/Jun2010_XAudio_x64.cab b/Test/DirectX Redist/Jun2010_XAudio_x64.cab new file mode 100644 index 0000000000000000000000000000000000000000..1def6f1c146f284471199b85e949530fda171f48 GIT binary patch literal 277338 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%0Ab^StVwi!7G_c?(iw<%CqJ>&?xafifAz$ni28=|` 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≈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

    ;u`vzE;fd%b43k46K)C+B`nI&#Uj#1~= z7CA0b3OH^sG5i2o={(R~G+;tHla*wBITF{gF4%Z7O;?i=7=JVcwL^|XPJkaickcWn*pSw7p4`p04-a?R3&T?(?WY-mGOF=T~JcHzQM~p2Agvy`ldGvHWD%ItGPippEu`S;|I^;OygYhRIIl`-V-x1FNl#S z>s&1*Aq-6v%7U`43Q#`5E6-#v{I-ZjnC$lC(kt9Exzhd83vy=jo)j@U?*RUFjlD<7 zZ4V}iMN%XZ6|Yys)S?b&$I7nUF5zdlf6+F683hJec*Z=NTk#jfD zU1UcD$l+|}G9-a{q!aQcp|+%@=D$(AP~Ti}zmorLJR^0jf1lRztDek8Sy#SozY4K2 zShY5TEW{WG+@+2}yGK7rjy8^FKWNhUPoC#qg#PPswk&*wt6N z+`_9aTKir(85C!Hx>V>f{`_e0`^ZvxB~Rv!9<+XmpB3P-X)XkoXZvz0y_PK=`XmQ&^JbQYS&kV=hK; zcPu4ln{2-a+*Wtt0NgcPZ#80! zp;pYp*R$Ae-Kk&N^l>Q16ePgX#@2>`Abe2MEk&RSl1k=fQ_rc}y zh%~FHkuqLCN{+-VFGGm>Bo~u?yAFg;X%A*2f+afJeteeWhkTwdsELT}6mK@%i)A*nq*7eMK@>EFHxh}vvrA=U7dM)UyYxNm zu+6DB%%-YmDJ$tDk2#pp8?kru<@5%_m1W?td!E8k(l|0AYq(vp_uyfF*(T4|I)*JT?e$3 z@a&MG`0&3(t7dO^o37D<({V#eJ4x(gRj(j|=+B%54kGt~@6r$0gl~qrJI2wW=4+sx zh>m$QnO*$)RB#Vk5A`Y16=KrPR`e`?#!Ig3TB)t7mRFJ2J49n@A?cG=sT7$y-`S@^ z8!fb@|GfIl*wNmgH;W9s&*A00fI~KkTfZAvpzf_+FS2*(<8Mr3j_EWWO^g`)dNteV zIHP7J84gmAX|#vL(liJI8E=bVqx6}=dWqC5A;aDk)Ps#K@^jc^1yYkADE661O1(Pl zVW_(*F18>DDitI``S=_c)gr=AqSEVbB%eXqhi{_su&Q#UQ4n%2za;+_YaMggL%{BY z>jScNYv!COQit{~=$HOcJU197g=2E1$$mwZiHKD@bH1`cB>0Kj^@vBvKx>P9+~O~O zGjSYJsD%U>l8gy_F&fE52Qw!N->lf8u2C5{<|629(%sB6Lx}+J2CW2e#HfEv^wN-M zw&&;PQ6YNXWA8vYXdcv4$zs8E5F_gQoi!7{RbK}GT ze2~)hPfP+gQIa53#9vU1+YaFwn)W0oOdSK|7jy@f2G>}{e+)Jlo}!t%=9EoCzFo0r z*Vi#Eqme|hr3UR?fnGJ(snafbC%c*Z&#cC@Ax7GK+5+O_6!x+QKcty<2v z_}e&ETMMVeXs7Y@J!fq4EDG0s{UVdukKJFWLli5WCckES!X>K-D}(V#+*5uKYtm34 zYBZDto)G+RibqJT`=#1F7xKlx#&Qr?4Jdyu`vB_6$QsL&09xo|2rZ21&=159seKTnijz^qG!IfG<}s92BaS54R2`DWeiyJ2Xyi!FCG(C=)sxR$hhfAlRcY! zWWL`O!sHJ0-#}*HX1X}wS_2~8%!S^dt53AGf=NWgk z;rzn&R_!Xw$&C!8Ocq0iM%QBTz*c`E^cMT{ zM6VU^8y+|%zdcs&mL&I%4PMh;L-sP zE}TXD?YnqyTa)8@3A5ZdCNB`Cxpkd6CGPt(F*6ohrq2RPwlY&70P8ZbhgXd|Gc<=Z z^#+WH6BoAxgPMf^AG)eAbN@~!=cEAKk+KzMvBvhNnrwh<`{Q!f>6;-Hi|K#gF>;dPuf+nV1Q|unJ zJxd;{288&B^tbj(IC|c2{qQ4<_%rfk>jH7K{DPM4MJ*s@VThrvlDN!afqHqbo-~Mu zN2n+!8lb;UzAJPvx*BA}lYxhv4U#~Eov zFNR6W8f20Jnl9hfrsE&|krKsSIDQ4AN&aixIPoS5WwDak*KYQFtz6M+VfCuPe zf!fF(nkXa4jQ2K(NyQs9O4O8!>cRbjY-w&Bn?FDJ2MofIhs?;bYW6{+OmMO zlD~Ow#2;N~PD*3z7t;YG&qj$H;}hxMKWJOV)UL8vWn*C&x_~Lnbup_DB&Vi0jkN*%<;WTrJ>%$wO%xW@$ZIt}! zy)UE{s*UPv5-w3w0Df*Kj=mnszG6wbHE^V*!KvM2gVc$GX~5)SlwLE>QDr45)24gK zTT?SiWIA3rq-!dYu|YYNA8zQfexH=uAlo&7dJLG{poLgZFlOMpO9?TJQuG~FqQW8J zxv_uU9jtSd^m|hWeTe!GJK1dc9Dg%3&JFdXqZQ&_HFB43PpBwwn$Jy%eHES?VN560 z^gm{M;W*4~@{6DUeE5k?zU;>cMaDv-$#*U_OQ7vD)_Sl>w^^@h&VDJXHSkF_wSD;g zLnp_4*mG?O9F@JDU(`#XhZl=T=Ybu5_#NzqbYW%6l%kA^rp@f-BoY*fXEyk)<@H zi9(~;()9u?p)D8G_B~U&9fQzyWMfP!{9wZwE4$nf3l*9_Y!U4_ct-%tc_3eEg zS+ExTmfvSt2<}`+b?GwKbO7(GkiOJ^Ey(vdhCG_jq7A<> z_AA@2&k_$*XPr?4?q`^zGTASUVsF7Uv7(Zl<%^p!ND46-C`CmNEdzYmA}cc&XLka+ z^Ge_^2YmQjOCcMa6a==&$G9cgh!@@ zba%Iu8LS#o@${%<0}}^quh+*0;i1(al{1kFbxuI*l2p6Ad$UV}^AWcM)cVtD-5F~F z)-9rCL^s-LJ|BV-+^Huw}-24W5ubARv;H6y;>jt6_|`D04e`eTrXSSu#bkwX?7ryfYW2AEZoe@EJ>nqa z7!2)`AW(XULqD_)*T{e9pgF%!O7yxY>6S>w0g9Yc?Irw8TV&G*QX`O@;b_`yt>WJt zWNAQVcD>SvJ013~XiEU`de02TkO2IZYIGyVZx!c2)&vwQ0eI~%R3-pB39WqZc~YK*jWJ-5nUt5J6h#tNJqrTq-p*;wv-|(k zsC4ngo2q;Q!tj~#j9fybh1%Azt8JDjW%L6Bh#h<}gmn1bWg**)NWUymA`%&z-mxe+ zG+FH=|A(&BaCY3|d%=&=DNPXx@z^JQ;m8fw`q@}!BFRYM8Z730utd{yzL_2fLP8Yu z%ry8y(^4spbj?;oDxqk2V7w2TdP3|Bm~OG+uidP_1Q#!VU5 zB_eP&1w@pvilq5;OA^DHXwU4B)P%lDp`CqhekT^3nQok+Iu?~Xj-Ol1n*Yt{8(PiO9zX5J;?k0YX7nE9@ zNejA#815LO%DRBoSx?wY&LjmATQ&3JtBKX2UA-wYWvO5r(Mzkn`U3cayj%Wcn(_Gf3z z(&LS`>PKNS7WmIK`q#z_q~$zwZnHw^vq5$Nk5UK9wYb@(_#O5+bIXmz*Tu9=02}x> z>$%}GE1@{|Xi2ERK6m$O88OZa|AWzHo-t%b8*aIe!7D{&8}yRRLUtqA8H+(#nabT^ z9F?>)oi>Qs6UXok_cNYT@H3PllYLEiIjp6iBFfoIjo?pOg9?eBxSpR0z`Js^+F1e-M76ys#uOlTtQncOXV@Kr~X7P?suRc9jGtybb?};KR(|>1GH41 zNVeJ4bw7J!2jer_e8#Nk1q8YZY*|eYUc5tqnFA?ldmx1OC`Gaz=|>t;YvXW!+;Sk% zDN_8BpqoHNkR*ADOl!oVqr|xY{avYsnlPm=y#Jp&wA+MQB9a;xNe`X>>^eIpWA^zr zQD+JEKwCYs{s+`oNqmWmdaPXWn=WyKau%{ektVN_+V(YFucDC}I_P>bilZUjBW_-? zoj+8<)r=X=8PwxJ^bu8X=+inYxKBdmV{f(yQ8FsP_7uJ<0VGG4Q!>NSiKie{i_+&u ze>MaKp{0=!pFpsXQ_Tp|8|j9YqSHPW+|)a>;K^X>Du-hO;w=nBUv`OuKoypI4Iqcr zZJ{IkV#HzU4EGw^14%3lp4pv{tOpH~vNvJRu>#ENA7q^84}MtpGo<)KGOm6K3@Z8e z@Jof5zKO~9BN}9?mJKm_WigqT1QBSo-H5z8WMV;c9NA9sx zmAH!Qp=BJVtqt2%G033$H^qMeh198a!`XrX9x{#iMm1PRp%>|UD1t{^@OnRtI^kj0 zLIKV@htb8<#?Vv`8*rtmy*enLuS?g04FPVQ*uTa(btLX=O}c-DZ~Bg-JNI#!Chapp zS{fyQQ?FDwj+;9cjoML?dp#*R!X7DPpa#)T>%O(Ljx0EPZL%Q;l^zJmq$uS)(U5&8 z=et9Rtl$wQ%y6PabLFIoJ;u#|v;~nJ{f2xU+%L+=5s`wS=Rdjxc?+*FG}wd&TWZKU zyr2MZ;YG!0C{D4Mc8ktT082o$zcdu9pOV2L=*<-R0u$qSlhTSw#4%!Zp~)>(7+yl0 zy_>`%2oI%?I^Bk2QibCkr;vW9x|>MQip4*?6NDFB{J({sqyblKQCDd&*lE_wAYHZ0 z^LG0%yU?XoC*uPxs*-j8?Dn`T(tM9MI;c8A=XhM|l*O~_o%+aO=zSRh(7kYCyBQH~ zA^vwF`dVa1d!*ji!c&Q_=VSs8fEpeDzQ8l~Dh2OFg`{C3@Y?qG)n{InS<5q-KaKR~ zmEZycXqx-y%p;A$A)>PseK%HYR!tVX-jOe96Qp{z=xe1l4kEJdh5(WP%@R$L4qbp7 zc!SdVNdxe0pLrcKE6um;fA&_@pr5!SU}EFSFW#E{@m8KEbgoRpJQ!A(rn_ zEd`5PWAA(}cSDSPHph5E*NlSY?_riy{BflK-qZL+O6oOqN1)O3e0x&-0KN2H=&lnJ zjLsRVq|lL3&QR`!C70z|gp+oB1|%XO!8ZYt|m$Z3>j(dH9uSVRNX!=DKw91Jh7oKLbm_AB@?nf5#r9~HSVbDi~ zAC>ZtLwxnr!8q3#Czh(A|_YMNCHeMw3V6aFIpeo-p7vnk39qDO4^4w&bi6pxXVt(}jsn_x^n z`95w49@*}?p1Rbrm@mY*<-@fb`9BEMxfdLNXtZR`PDA~nYIe|uF5y!uVMi#3;Mo{H zhOVqMFr@{8T|;+@ItE4SE-$xUFT&k%IbD4TvFrA3vgmRNb(ClIMuX|qLOrfBtfaZ& z7MXm+v7g8hu!oZj`Dgi+$vnGKI^`RMi3)8Dn8g6zG-~*6X7?ypO;`$ zQrWsaB05hQHKM0IJxM(r99ANU?q7gjUeWGD@ZT|!hP%HYY!WJ+frYpLp*=p&+{N5& z%Nu#xoafZ7INzSn*#;;b2HxWgW99}iKCsa+17o+pZ9b~@`1rblk8HQ5tVqQB>k!@7 zmRa4WrDdlm9{mZyW~Qj3m5pEP--#apiFkyRz8uNef=mUOQhPK+cdx#0ar&N-M-~t< zCC3RhEOw5HT{Xt-K)&lYEHnSN7judf(hf)Yon-V+wt};2(aRYl(W~_A1&<{Lthw`R z*4b3)zs}>m!0WNrc1QL=or;uQjnV0AMEufFcq!fGdZYWtxi`gtdvrBc@)jy(aPZT- z&~A@UtqRup>A`(UOvwz=eZ=WjA$6EtBmA>CMrHwGo8>=X3sBJVi(!VoWQ>0Hx@Ez7X38{z|wxrRw-gWwj_*4?OpSK2X) ze80ASXoTp;YUprdL%w z8)p_>ePSfhTFz?gXuq=KayeVOG(#t1In|+-A8Hl~6OgE8yf@|rw#&KfVOnBH6j3Gz zo=N3|G(SJl*Unk+`9~=wwNknIIo~RYf8Bbb;-6_>VH+4zrt|qzks(YkJOlYvM%}45 z`R*qRF~K#~Uc((~W=^`AGWz_*AsWAn>>CzZPbi*+{!cXi@vr+oVZ%?u7dlvs%ojrd zFe$E;fAi!XZEJ|3#%Csfq2#8p>I~N23JaHg3GCi^g!<0sdmCyu)*d+QNUsBUu}MlE zg%#>_e405?fF%wk!ihhu?`Bnt#jaN_Jzttx%0BL;-tm(}i|$=c5(*s7*5g?e?!1kY6^iwsns6Br4ohww!aej9i-%$mQ9? ziF>D~GCYhMVr!JC8va$Emw$>)3RmlTbs%VJ?fywNZz^XAzJ70+25A|T^f2Oy;K8zS zH)uSTkJdP2flWaDxh1hCJ!wf~7GO7(ud?xVfbW{5;ahbiAZ18W^6J9Cc*~6$`w(S8 z1EYBy$&S1!J$|=&r;El;TL6^AYGr}v06~*r9hzO;ygqdjD?=f~EX1XO`*OX+$q^83 z2L7jhc&-*URj=?op)np4kgl=lPg7=1+W_r`MwNZw8;sz3i_AY^7{E?)oleglrl@<% z?tu+AI`?)X2V3@PZ*wc@Zdrhg*SKBBF*7%^2<+*(gdal$+cGcvM5XjZV6{z`sZ~_e z*36c~NeGZ#_z|yWW4w2!y+S&CSiTGg#hzdZZH!EmWjl=oWqx1@O2I8; zRLnsCS8Ke{Nz&Ki@AK3>Ek~z)=yW6uc7*cMV&O4){>b9JR@EY7;aKD-gE8<=d$9~0 z7;E30OeB}sdl>E%^x4IOa8wM^w6^Lq z7+a5y=6H;8i+H5?5{MbeGKZxG+*Q8a1T>ZzBZF8xkfb5TG3M)>@wG*ZhC4_(zi6ct z%v@z#bw!&ulf%p6V&;$Hy%@qr{@hYPGqS7SvW_DO+^=0N^EgN8RXYDUI|_|h4TuNp z2P@l1CSGQonppx~tc0@dp)|n!uWt|Wm;R{Wcv`vkz{{5CQdl|JFlHNAq?>J}rum6k zIq=0RSM;ZWcW6Hr8f5Pf(RNe#o*3tmR=Z4yQ-+~P#CP`}XWPg(xuo+>YsodTJoQ*% zLZNA;@d65&?G@%T#v{bJ-R46`RF<P$5t?FKf9E& zAX;WrkDg%tt5I#ju~^7X0Y;PI6Ay+e2BiBN53=14cZnYVre&(!!^=N+_9Swx>JH#j zf$A(D?l(+sW^2xm-CB{c+ND<$J^tBhH!aPyVyg^ps^NmMeW49o)Hf!4{B@l!OCvLi zv;9B^xW~pK9-f?QUYBz*O#Nuyg?m}*zy#lpOG(}&w0!kRH7D9bhvHT{fg&5M@S_@q zt{%jkv1;cAmU%rErWv^Hlex~lqG_rN9s^~Vp$kO+4F9^HOpMQ1mvcjAR;I~w6AEjOymTUP% z7}Sf)pK~h8ue5F<)Y7OjI!XIWd52akiY0drWeBoQoN^O+MD3p3<0&NwW@|2E=W=8` z*F`0XauPGnTpkx#)nCx5vC32!ohH$2$SE4Ty-PmNDLI*WC24hB^8LC>B1L*LhG6FbkUq2?1Uv&qbu+v(%$Yfk9Oyn$Qgr@?L-eF* zxX(7I?S$em2X+~exK4rS05*5zfn9z+%76|);X!aC zqx7=Sye;jQSRUhegwU0(P?Yn+jV;^=rbX#REPE{~Qpx7WdNTO9!LI}C4X=;(7;~ZMUi@gAo2V^cmQ>Pa$p5D4hmkXnTRI!?HEu- zQC)V?9NevaBUQO5z(3kBssdg-?eaeNm`SOf&&OPoXfhg3mi^IZiKy0hhzmu3+{cI| zlvsVCOiG5|8&^{W#pY=!<~hzJV$yokv#Qqwi6R3E+*t%gCe7(2y%r{GDeJPa$8baIO_}?%7%h<{+Z&C$*fuAy1l-@b>lw zhrj;ytmjEE_$?mUTsDC2DFT&Jgmj9!vK;P|Xmn3xK%SAEeX3_nr<$52-T;MC5*02= zkTgG}6{&LrGHC^}93>XtVL>USL9bAg%uidvDGu6~uB;O?abgjD`G#{8YZ{tTys9%L zNsY(OieugG4^`-B0p?=M2ISzSVd)Y$13!HnJl;hAUo_@lYxs{MxgjgzO|LF1vW7#WiQM_1b@`lARM>0sSyDT zQ%c3TGb<+L#2JgxU*b}1m9ZC(Yb=Rblc$#@yuYrfurufh_ylSLp8!yRC;$l{31A7p z72pLB1poyQ1waf?jxanf0T?LH0CoU)(R+BTLIQ#SNB|Q7l$6Sap+bU12a+51NqNM7 zuQ1Ica6HR3+KM{|fH*A+RV$AGNAi37vt?UNRwqx9XZD;2Uo`DEh?M-{vO!FreQi%c z9D2n5#~+d86zek)%+lrh;Hg=aCgI>TkOLtrA?Fp?VDu0YbSje|IduRu1tf}ofp`iK zweVJ&zeD?WC0>hQH0PAkkVE0Q>6LU6L8K|`%t@U?KTZbz|Loy+L)brdAmwWvm;0wq(=^aI^oV|8fSd4z@C;<-VDY9X$W}pg!Z&90o#%# zSu9jB`RF+_w_XwAAuN zxBR{{(hl)-PF3uNlB~Xcrj2{4$mgYxv|<5Orz2QIM5j+ALbz!IXzJqY55QNl*&+#& zs=}fOCC1nhnf0HnL8ymX6HnIUrXJaXELzou@BlppZW(oL&o&r)h2ALVP*izu@l=FR zG!$qGQnM-C+fy^{{ZzI{6VF&=!;aG-8_dxDfq@xSr?hIzKE)A<>L2O&P=g$YfxYb+ zSul>fTkTkMDejUTE%e?jA@U?2X~z_-Jmhu-$*;u{k?27tr_79D@mB>li-XTI5BYde z2Oh?FZ+V=FRy0*_pL(ph-yeWamawNY-IgG4K2ga9yL5b;t)M8W#7ZgxZ*QosPP*109=j;DPji#uu__{2(@Czi>}A%ex$>niNxE5MU8G$2 zISqAc=9KH1Mitb|q|OJ0uNkNE=ma5*LVbA)uL!~?_(@+dq`d5CcwoSqh{T(PKa4BK z7w?S3TZk{Y@e%97Mmurxn^Crp51`n zJM6saOns9{%pj650h8xbXl8UmCc!imIyT&!4lB(tsQWCnS?9kk<-g8hv+ zSreR|F;1z9?J3@46nL2%_}kU|SzM&A|{irJ;jr)8+Zwq?lEWBn_T- z?zMEllH>;?rsI_G%0vgRJgjSbbP=-lSERMirdEcu*C1YW zx4gjZ=V$k$-ACMu($m>dq+QjmIHnz@D7t4TFD>J4fm&aGn7?5EMMeLNGgW2hT5jqN z!_{(BUFH#IF!Hs{JGxu_acyQl(#lx$rI5~`Z7p*cIPqINBFSy%nGz}_1;3E2F;W^a zPMj8XLYFmB8g#yhfg}NRh%z%vxbQ#&Tco7p{t{F+#%b7o zABR&VOj4Svyu%vBd!HOr8!RZKu6jw?n?zcHp%eJlWT{ZjG2F@QZ+GN;ez{~`ShiQ$ znU>eI7MpD9cEzn? zlpB2gA;FOHef1K5$1N&8Te(8M&m9-~g+vQ1#%Rp(PKBDODa4ED`Xq~g+bzlT?{b`( zT+K&gOr)30$jQxziDE{m)?ei+O@s;ue=cG)cXL5BAIS*_4W+As0`9TUwmt{;<2XD4G6$k zVC}T@B539Zv*2yr{vAstW04ND964suGntfVh!kUL^VIO)B725^k}<(XG95WZ9b2#6 z3!Jy68j=Gd>wsQA@p~!)?(v&}MAhkRqGlG2N^B9N^?(lODS%gH7)q{LL<6uBngi&>>9TsH0kE6rfy&ikF#6d699^!qh)z8q z;qkvq3v2D=-E2Tx9BJmzo7)#1UK|lhwH7<Mk{rI%){$k1qh_W?AyAfp9E|Ti0?` z4!wSj|LO&X$Oz6Ol5}8Bt0zf%{xzt(^N@+3psdzOLfFZV*!1hm*QMx?PO;5> zk?QqL$*9ty$lbr5(Ud>F)R;1DroFkQVjCn}SM+l81@$vElgB8*_uS|;ncy~5bIJCU z*j$)W%=~hLfnsyFB$(i~Nm8_}ud@}yBDW%uT{S-AkU=LO|I=QdtCnyI+WR3y^|_#v zV{LWdk*kZVUpEJtvGlm<#KY;Ym8nUyqNY=ZxsXl<=`D?;16c;pC`a8+rqhr`P@uRt zP@a?YRdY3ZsG=tywh7nnX2HWir0bY*lA4)Da==SaCB272he$o1PiuD9{8&8~B)!GK z&J%Puj^sfbv1Uc0@eG`O`D3Un5UZ-2S(&|cnx?F5!{=?nu~luv+#=Df)8u|b@5su4 zh4pHYHT?tpYH>i#+9=QGK5@@QH-8gTtrrtaBwlsW^Em#S#6qW1$r2{$K%|u-*pGl3 z$0CzFXGeA$8$^zw z?y@_E8YV3kX;F({ubsYVYbg&KgPRfO&;C{DEg->>A48WS_gDTi`AzrVc$sociAIj5 zHja`z+O-}l8C2reIw+EFqAcuLQ6_Zy2_;MV_SM|%RH5{6vm`&v?Pa+*C6M`oO)vdb zuJR)ntd{k1w!UhHol|3fC(1)RIFksK|IYCCj;KWUpA+B1%tG|vL_@}OLOsIlHiYDe z2)}gHQzKD)VktOgEu_^;+@Zog0RJL4{q%)5E30apnAweb7fZ}g&Dbol$aVw>FHbaC12|&cujGeqN0x(X~qH7rvlG2g5Dj4A^9_unt19=9Cghk>-kdK zA!IeJ8|o|cv66}hB&F@>Jxr=^&wq(i=4(BbZ}}vv+)P;3E+L5&8o7!@bAzsRSTi~5 zS3#0;%6i$*m#TEq7#||39je+o3%y50DUH^rJ1Z&5s;J7mt3j#r$hv~wPQV&M71OIe z6w+XYq-YYW{mq9B zk7UfZwn%9;ATwOmF4l+Dw!AZ)#rCigu{i_7te??(h+^2H2{vflAw3fD9#JaH{U2$= zU9agGXcbBiC#726Uj>h;f@&oLwllpRM<|OSRpmJtOUk8aN+Et#EM;f3To7|{i#vQK z_EYxf_19P(Ls`SWH8$lIQD~LWsQG}*`ylRQ<#D_gI+5;g$}V)uqLq|~!Ba^vI8eJr~sf*=O0aO(wn40`KlC zEmClA5*)=wwH(Zyrvh70fMv1*nDRDKny*1JYG$;Wy>DqjiM2@QiCM)j`)c^UH#@)`JnZDN%y8$Hs5y; zS7IR)cqFvg3^Cw0(Hj^AMnTh9G#xmzLEnPSQ^3xYLplvzOel|wix{t`3}jfB&sTb2 zg|#A;fBTFD4?mfQr>|bc*jKvoFL#BVrZc`l)#Yoiy6xH4@+2U}>%5e8V(;w@VEvw< zQ*ob&S#VW9gsp=l#HR`AX#-x4Uj7&3D{j)?UNOJdxU8?ZdY^4kl2p66-;exqmYs>o zX4}Aq|C65z?R|WI#2Wre?E?G1+vRU>Vh{ydXTzkH@wjTi%aGr|0h&k%_2R`#A2*gc z`)KbD04Zv^REw5698Cs84;hM|3ah%nE*M0O!f`9mcMP$2_GG+D-t^8I-&t#}WdJuf zZU29uqKkv%eKJ~~_@C9P*@5>Ob1F)iT)~74-$8t$6xAv zL!ix^!!<}TQ5A2n1-!;r7+3fu zUxSupoQUzX^7@sT0@EJ8>#2Ii*Xv+jX?9vF{F5 zQgApx;~wG9XTUf)tiOQNfE5e}8v)pYcRZannsW>`j>CUf6ZNy{=ea>FoH31j<6LUw zK4*~aViDRkN1(+Cm)}J>H3=;Vyh&f=rXjh~K0z_I;z(=wYjM7~I z^&ek3PV-^08q+fhetlpdYPfh&`=A2Ro1LP08C`P6_B7*2?$RHp`fDhPMya3TO3p? zj*hu`s9X&604Na*|F;{c0XV0B30ei9lyipqIi90>0`KwY7=m8A;Qd`+MzDU`XrKl_ zs4f5;3#bzg_#I+rR43v{W&I9iX11&dYTyN4-?j+;BF~8i%2e zD?sn}Sw@s}x7fodOH!$!%Y9>PNixyb=NP5hR}xA6yn;*=lS#oM`j?)jB$Ixa+3qD* zJK;(YdIAg&7!CEyAIA_spI3j?L-JaF+eJ(?8&!1ZVg1~1qGW@Afms+32Gfry1_6jk z0(wOLEc2e%#_(b~0C|K#YRU($6ckNvh;4|{T{MLiAugdgPMmR2r?R}E6A0>EudEae zL!KWTnw1PyKHqIPHX?~edC;mHGml7YX20ua_0qK zIyL=mqC=rTYzZ&r%NGTQdBeBL;)D{ibd{p$1aUc(nOcRv#IX|6J+`g7&_gDnL%uSU zVmjS`&)h%ACD}QmeuYyJ^XAvC1QF0rc{b|7yJW@_%m!&>f}pgSf5aR!G6Na)`hA&u zDR$B=ounRvIdCbgn=?w2dXK0KBi5*Igw4a_+k1sQO2QTb=oM6GBaVf(TS)1ZfzK&~B52xbE(L;@etth8;U9$3U*$RV=Dt zWoPRsSlI-jW8OB%4F(hah*jm2AUe-~rrG|ZNggPhEokCF9hwFCwb1!z4@@bW)lo4SNR z^xRBt_h!V^AW7do8)>vgAKwTpZ3nfC>D+(~Vibz{EoAPyX;RxU=y-Nunm*9y34$A! zB?ZS+XEC!k9P*HmVO)TQ^&)@wuj3FkW-q2Dfz-lzzFyMEvLd?XCiLQ?C!GuoA9Kuy zuSXNIbS}Lcc_3+w4~_Opt)}yaF`%p!EF_=KC%#D2`v|8h6@$3>meY8r#{(Caj@i9x zptCT9-zOs|@x_z)Jc6Wjv_ISOXs^mpU$P>n4M!ys;4F>O=*)sYR$a3TgW>LxaHFb$ z?C!5Eu!Qsdd=a2(r%vhL^(`=if^Lwt7RRBph!E+JaF!An`%l8YRc#cFO}5-WKhJS< zdrI|%6Xj}VEW_+8WjV0|EKaMOcXqc`jhs$Vd(C3gkobl9hZ6rFNfW|dML!0R2(u7F z%tLz;Bm##RulP)5OjoJ!-#HtzPdAi7q|HQWb=lg_kZ`@?Qw+{APorDmq`s0pQT%$x zT?-qhOeO8l_K82iqudF;+U%UFu2pZ`!DZ?}+4R!y)w@5rnt$#2bUId@nyAow1;E&@-qH?qDdzeCT*-3W21R0`9jde!JX zr39QajEaGCQi4Z^iIU!&CPC{tAhrdaw5ka8D1*(+Mg-%SH2coYpE&4U!kFWh-a=~& zix(&qR$Hwzq7-d^FpBvuLwjC#04`x1~0WW2XECkaoSo@)`fCf8S=f|!6?N{M{u|kkMrmM*!4VM-@9y}Jc2{V=j z4t15DnRu)mq6|MToCEXW1>=I6xLGUEEG!(~?h2aaU8Pz2kIFkia0=0OYkY)W8{!wW zxhwYMb^;|dZm(PtC~|;mb5R5b-BXXwb81mvGZkqlelykaBO-^_l)49lhMph2m9J|r zsm(@*2mB^D5yg&iW5YS#?9`*v&MIAGDm8c(k9ZI4b zH7^1XoJYxhZ>Y~n<9Wz z4$q@XY1fH-kZ(alD5SKd=w6(6jfSEotwO29egfoKJQ*0{y0=zIdg3jPj)$Ds8}Euz zE~eC{%@PjKe-(Igfa2losbel4)=Y{i#uYNvSAyo8M>5M^sjwcO%`qJR8pN4$o8v40 z!S1558I}ASZ8l5{e>WMg5pnFP#_7kDUOtdEQpO)^Diq&H@UW3lgM=0eywRF_mnkjemS0B};$Ylf@ z8XG~UX^~jUb)yjbS5i}rvlQBfBr?tsZ~crp zCUb6#InF#eqS)UxJD@%#p&VSUbT(NSm8}9(lp>|r^eY4&{rFv=yl3e11DOsvMl-mP zZ74ml9I71M3@cb?Z1?v>BMf}<;kP8Iz-e{4LED~l{zN!HT^^Fy^VtKn=TXy7X^rI0V*_< zN~h%$UpSmtg||ODZi&(vjc_9$UEZF25I>sbOY9M#mdZlIB5oIBs-WB}Q8?Zqp;DS8 z^W@kI9tG)O3(u98kYdJACy0K=DN#`aZ$IxGD`Ev)rId8sF#iod+~grtTxIxQ@#7A1 z8&*x>8^6>bFY+_lhX%RYacRaD4JCPFi8;>E?I%m`;vWa>(6w8G7|pE zPSF_d1U(dSjyB_~EEC{HjC_7C);jlvWqNHjB$q|Gvg{(CK$CQh&RW1|->=epEdJP{g|yL=_N9?;YqE0FzH((t9Lgxhd{YAFJA5v@meWbh zK`HYQ0oY?^*x}4>{S=5DSqc%@D~7P6bvZkE>;r3LL)pY#fhf94ke!3M0I%p!=Coc~ zusm7!x5mtBCF^5nBIR7l9M&I{|J}%|(5PQY?iYj4F~t0jScW_n_(4i3E^5%Q`m4nQ ze*G);r!Kduup#izz4%*{qLltxyI(G-+`MgKA?(l+wXiNf6Yzw>S zAu?Isr4;iGby#F%|0&hoFp{(#TC{3S)#hZAAFQ^nh)H9*Y-yY37%SRkJ#~lAk2aNa z+t8`a0RUXMU-PSgd-e_?k-4nWhVHDcs_3Bwbbu+~u{U&so2>DFOs`>b431B9X5DJ} z1*>o&#g;SXdwzP+lI!>enJ)q1*WaXe`O6F&RkHuSSSpik2CujDt~ZQAlmBwBbVmy< zuZw&y{!rXC?ITI9luzgd)ZH?$D@IwEuUZspE8!bKZH<@Qt8md|^|tb3WVceAEb%YJ zv3_%v$R;Zr-(kPGNasn8EnA#({CKn_Br(XRg69u2+m`=x9H@D0yPo0xcSK%?TcOVT z!adG2Fo6FapUfgub3(V-QdE?s7<;$Pmnq|ILQfU`l;oZ_Nw5&Gk;BxZbR)1X?Rgh? zgODj4S)Ug(g0Jj@#EuI|Ko%9V2#DthNSwYPVG47TnO}WKj4B{4F?i6)ymP`0cHUa` zn^O-YExHJFY^2~AO8fg>k<9w@+CQ7;l@Uw=*SJA&3{aJ(IGRY@(zW0iHwMQN_M6B^Hz>$-W(TaM zdMoX-Sg^q-UmUaMz|Kd;oVT>^MK<_19AoCRq^TBMvtZ!hIdxn}&q(sO$_MPXXVM$b z#ePDMyok+~`A>7iWXH3rIwqS#GuJDz>`|akciM3V;V+V1RoT$~ZJI3Nc)>TC)GRb4 zb#ZV)_8`^DlsuRK4Zg2J^Q!n;-=;-Nr2M2Mb&y_FO2jtr5sbNSKB$_5%KPoHLoW}; zY{3&rFB#H>`wP*p_TLnk_<9xf0aVy%Ns}mF}Cp^^$$Q0Z9jh(f|Y_Ico5yb zS61)6&|6%4E{NgHRn-vUVO}}suyEq{qoMxHt$mq}sH|***Hc?R@%QABlAct)XRvB= z8;aE~rpTLm4RJ%c>!yuiTa`_x6tbt>fFF;VeDc2tPPRW#Q9<<2@dl9S80YIe67ahp zHj%$G4GI*KVh)UnVPRO*Bj;m(GU@M^Z7)C2~G0ri8(D9qMb*`;F6ukhJ4+ zoo_OUL$RO~cyydWfw69bRZj9o+d9GH&x(FrO;JvWoXCjeXt$mPvVmt3Itn(#={VN6 z=Uld0N+d7m(!f{?d~kDMOSSujvJdPVUOgmp72enU7QD;kY&a;EOoQw9uP31VER92F z2n7wCJxyfKE%KC|qD*aJR25dpz*NL&gb{rv>>n7bm6P({`fN#vwUx8na1KfvZ-ID) zY06kk>avO;0!B2{{kUx*t{I@k$W1?`<@kr6`bfJouiD+D>LQMV!XN z&ai^!opcXiB(*O~^E}WiKL;+VYk8oT35BS@Z5MnrUJxP+dYv9T=rD{Ge&d*`B>g2h;|=;PEezeKocf|)pB zEJe}UXL4vQo1z%m>?D1pfr>D?O#Iji#*p8+8sK;*gGf24V@vw|Nc57v$xr6`i`g#W zmGUl+>Guv*KQ@+E9qAMa=l=t92Sn;jTrde<--l+6ifMu%Y~O&Fj+2QT#{aha@i>S+ zAAJhB$4`-Up>f+tdy=9dm6kR$dN%C3<$xjsU(q-E7HeHf8N1TkPqf!8IgI@yugm-u zfh0zu&G6S3p4ovNc{Vx41HxI4ckYdeo`uO|IJVf`Q^d z-s{V{B7Y!PC_BF}&S8+e-6&;r@yHCfR~^$RA#T)geQ~xddg8Dga^J*=$=ehv%~Lp%5KI?K zUaSYVZS!|TypS)}?prTy8q`u*set9s)DnnGXO=BpTzd2i(Qlvvq=Hl+%gycyI*sR< zZ;W}Ap>;vfxSq;akvixW$osDlZ$~^uiJk)u$&y7|D1$3BnVj%Le@UphF0B4Hh)qG% zM`iHmD>$7W%Ae7*Z&y5T+sGNDv1lf}2%yqEh2d_KnjxX{(8o+MHNDytd>+f|?uXGE zSVbZtR>OG=*1JDr6WLeP&-kk}Z;z4hB0N(p0H0i;fgmG9DUStO2@OweE$^M@i&cB` zIabev0}o#8uZ*u_O9!3Q?D5b!efz%%Y#C^5rj&wl^nctN$My_dl~Nfc;*~6^->9=& zPNpXoc`VOaWgs=X|8$EBlSOi2zHKg#Og5jg-xYulAI^$5Bo7znCnY{f2PaJ@2$Rdv zL@J|_i+pvDl%|WMW#;#$GQX0jmzV8V7Eu*qN=sP$m4{}HdYVodBML6;jZ44^tWIn0 zsuHWS=YD5_{C4S!eghm8C8;EOxkc`NCbveyf%>^umE*?b>xS@gsmQ8r?buzwg~*Tc zF9p{iek(%f^DN&fz)W}Z&&s)|IE!nY7tEyof3WZ<@{k$FhBC=Qyx$p!sTYzCvJ=6 zs;GL&ygV@pXl&gUKr?6%82Sundr)a6?U|`guF}1gJN&dmut+OJ7iw&S=*YQ8-B z2Q!#00o3mgLx4#XVY*w2_4+-}^NBUi>Jb}MNe(O;Bnji{=lS_Ml*)VQpXat{4|lSz zIv=@xVaaUg8AUPMAW4&Ve`|}O5G&^l>!V;l^oKn#1z>xfD_D(N09;D(GnmS&k(%mi zvxSP)tMbp4D_GBK)nhLyE88kGCleqkWQm-peukDo8$KZ!7g4O7!T9XxhI#r&qUI=PSlL)0FOXVghI(HCq=14-7+w1=1vZrq^kz;Tx~4#L37sU3sqhe&#qW+ zzUL5oX%2hATP$tXo>&C=?F(o{{Q=(O`!|A7k}=)7f1tXcib$y8h+Xx5?s3mg)sz(8z@%~wY_ z8U_DYbp4rvb-E8eaAmAI=*&jtviUKl#~wCdsvr?zpvsNCjBP4Mp4kpWX-;6X>vrWJ zIjLo9KAOhLDL!{`-W=8<3#sNiFcPC=9|J`>$V<0)Rv@Hl_^CdiCT5lnkHBx(7L4T= zqksea>(#Q!lHWgt4JS!DH{2H`w@^DRKtjSu&kHwL*_b9nvCQQc@@ct{(8_vDGJ~OP zu}ohC-edMs519z<2AdBb5%scNLx}Cllx!W?&Vfx>>;BAplu?TOPlm$!O6DI(V#f+i zzf1}7ar`mM9pCAhMnt7622HL(zsq#5)b{@o{z*$W8I4O3nn2Gkqxi)xLkDVoe0E}V z$CM1#GuT6UxDd3VZh)R-+@@<=%d6E<3e&<$+baruj#UhBR@BXnc z+u1-$W*NrrMo$*Cu|HE^zP3PU)?W^9pwto-MCxbKRw zE6Fav!+n2pLbd{8DB; z74HHI1s^602_BB2f%~K(_nPKIS9nih))!Ve{mGUswTfSpc`I88Ndg^&e=)I(&lONS zOHao`>V&VI5v=8ptY)ulbDJ5H6b7#}mtg}-AM}l)rrF^JC%*GV{D{T(!|=)2l;uxb z>5x0BX8hh{0uH9GB)y7HlaOcsdJ-RS(VJ``K!q~nR1($7@i}qLVp%qZd+GO{Vt@8@4>kB$Gy7(U5J?>7x2nUIy9I`iPcVgW@7}w)dsRN}_U4zxS@}`-;V8$;MwQSx!y1+T*<&wl&eM4$ppc z0R_V0*H-wXL@e^b=g8*v$Oe`N#X=Q;=gH{(Qp(q~KQT-gI{Cq;&oWE`DQztL0sRWh zIvj#+cARcJ0npA|lW9{GrAZD)p>HPTIhLi}nUIbxg+p4-ps7?YDnSm4qq?M1CTZpV z$%(6(LNT=p(tebdNp@Cbe<9>zY?IrQqKL@*c=OLrqb3S^u&k;E^Yz>KTiYqg0_h&8 zEeTjo52&1Tb2vcxU!{hLKvBNvZEPn|sQY0f7%UBx?*NbVu=_LEcGjO=y2+*nM>%U@ zFSefRuTkemcu<2x^|eoh)(5@zm(C`b5P4lz6k~)abY8gsMKog=uP=e!16al-;Dpv z4tFWO2B7bY5&$Px7Tp;?Mt^v(aJQ|?o0a69S43@qON^XdiEOb025rhj81bGsb6&&r z-61mRXZw*RWN6x6o_D*vM$C@!#GY4OHP&L^D1aM$?j{v}X z1_=S);2|V{;8_yDybO#0OBZY@TVq}xy%DU1akP8YDnwR%S3Z^0iqqxlseOe~0(U^B zXQXy%N+@uB{LuRTQ4gE;f*ZkT64x@36SpUaZy^~mo-5In=n8%1Svg-RR#pmZB41qD zEH|k;_=(vSYsCkWBOtL-r&4o8y7FHsS57NV3hWi71^JS9mAq5MB<18VS>5bZbrY56 z6^0th*xL}%Yx74_P6ft_75hmGB`c~cG+s}irHWORpRF)nf3w1Hiqp;(S1jy04!7@s zwL>2Jg&)+ zW(nPJ21U})6%^H={;PlWGmS<*l?|J>~G~XN1+fmc-rnYZr-AF8lpceScGJ5xyq#d!F#R zdseQQanLVZQeTKwiCEyx-h*OJ;0*UNP`-Z!YrS#u^0SrYY*`{xF_Ly~JP@0jsZWR= zTzGn(`T&$JS;pnlXM5~q$Fnlv=xvO>>UiY3$~-O9<$X{P(Oa-$#+?U&Bx zvI$+KG%Qr8z0$E{h(_>S#w}UhS@SHMh7^O6w!gY&|?yI&5-g{%xBZn4CaQMBg47>E%kDl&lxnz)W%VpB;ob z2nq)sILSe1riRG(N0i^^^FtLX=>I3@2h{jm&U{UJ?C=b2O#MryWY?Ye>0%~4$P;WJ#c>vqQ(1k; z+J*P93gU6T)!c(s+O*0Fm~l=)r@|AhQlgZOU){H0AN3n}i4Vrtzi6am4p$$s6bf(0 zusie>I}EFT(l_Nz%}kRy$)8kZoXoT{>-9RZz9ofe314MauF}mqPJ2|L>;z98;-W^g zy>pnnZmSYYx$U4(j8h|_jb-t4nh|^PAcK(jEKQr!-(HGA1}l=5z~{x zZ$iq9bKLbV<@xLsc=l{GJ2vRg2J+ zVN*=otPJnChV8;dHBV zyZzO+;<&nAo%5H~G1>if5wilEr3VXH12l! zi~bJ(SkGoh$>m<^PQQIK?6YdSc{(6}o&g#3nhSq^kO=Y!%rbsZ8V2kxMC038n(g6w zrU|qy_|P|;7q}tR6?{xml_h9baP4-Ua5%o-OgiC!FyJf7GopD*TM18z< zr5!67S}1@yU8h&Q(Z=jo={M?BD*Un>z0->R?XtWfPuSDa-Vp||Qd7U4j_H*{L#^PdmwLryToxk_h+4`Z5XM9`{%YYKk3a>X7CYEfWT@nay zxIr_+4>_N^(-AWQL&y#SNyN-oRcD0QghND2by0;!U*6mXts`b91ED}izqxXF-JEEQ zY2^>E9v>Y5eVKYXxu!kb)x_iCh|8$`VjGo1A_#s$q4{P50rve<-N)s060G!qN)^JU z$Ct8Q_0wQmEO(EcUj6Aa{ZT_0>#GY(xG6+ zU)+T4lq9X0Ut&5E`31riTFq;6o|b8bPIJksNc+_-z3da0aI4{R#nIHe)}k#zeNhY> z;Kd6vPS$t3FZun4Tv3~NI`IwdFC3IdHu(HH{avyGEFe?{l-6=y=(%khreP5wv;c|> zV&O?y%N#K@;emwL=U`g`nM7-`BXzZqW2ewfP;fPhY*=b3d@E(L+YLFtRh zs$&&?ga{Tn3f(;w{|h)x707~@LB+;R(~*uW_=8i&=E2O;G-81suXunCVrh{hn;9E& zV$m$EM%DXD({YkvdIR&c*ALpivFbZ;YHn>8@cf6dB^P?tr+ghE(R7GOuLyscsDC`E zVbxDEE01naJCBmgGKrhEP2K_smj*v*u#R!hy&*^2AV~+_5|( zg#(*uByNX7Y8y8fi}RuS9mGliqg{L;Wm~;Y0joyeLsh`2%+m zHsmUuOCO=3`^E#43ZD9{-u*6?>XqkQ_E^OH3UKjc&VFhc1+A(DH~>8*y#fm*Z9M+3 znq%yUp~&@+`ML8`-C8Qeg(6d*%$DX*~YZ~`E_A76CUXW(z(b*n*{w0_}5 zI0z|6WNuzM*L7DnnrN?>v@idG-JZqGIE3<%f+|c%W&ZahWKVh#+-88 z$oKRF_+{umdxvp*oJ+gZzwR5Fhr?aIizXwR8xO)~u#a}HyREX2`Sk0m!luLlq$;V& z*`_Ok6{@&cRjjdc%F+TZ#k~dt6x{3F46@~>7T+3c9du48vsO7tW%sU>*nOU)gFo`O z6xfpZ==;nz!??W9-RP@NlAV&1r*k8YW1Zctarr+( zd1uEv(T%c(Ax`inX~ug7&x=^MD9}l5)Vf1Uc7>p>8WV%I(@yBNkY>}?ewP@bOX^a} zUF@9@Zgs9@`HLuWXT$?*IQDK5dj>j#WxL=j?8{wxwRT?=8fW(c_5yPV`A<*s5ZK@& zX%x)0_t+aCyJiZv<#M^p2WrD!%~DPRlUTSpF+frh-`hgPBXQ~4MZh2AED|DcX&K!v z&M3BMuxse-Lm_K=uo}r7`lR$w9`Bh6N56@Y(p7n!qRgAXYDy>!ZHW z3zyng4NdHt*i6LevaM7%bStJicmW|Picgn_8riuRe-l+Q1&z!LCUNbX(r< zm(0+-vv=<#UsH45;_RYcalsC6x@~x!I5DCtoTDCmUlO-#ipn@({X9=`#T zW^}$>?%VeXw8YAjsc@xh@iu!wbj?`22t-T{EB-5KiT0lNZSGFzF)l8nbuGp2UIq4= z8I0$?I7!ng&~)2pH?AdGc8%xeOTr!eksm+FkJpuBY-Yhm;{Fe159|>Kmn8RtzIBv@ zV=OX7#1d4dDOnn%Ry|@RX@gMFp%2Etkoo9CIQ{+rrm~FuM|cymR`d4Uuevt;P<9Uz z$)#f`F*~_J#D2M(u5n^^*^smQ!?WO{WOds#g``COH~-!H^fK2c{PKJd6#x%dh7`xj zLx#Cu7o@W7jN^mOsm=K~jiW0&e^pEVUqX07*4VgH>NE{>Aoz@mcHP&1lrwi>KT->c zQ+j^+A9VyIdKmz5TmYalPr^Y#{<(wv2mK?>e^J`^nPie{OdotF`O0IrxpJVKKb(lP zgPP+@X=u(>h*rTcB?(sIPR`LwGqt;$Ym10M0t`RW8Or>!m&Qz$fp*&@ktkIfG$Fv&Q3NoL>y-U2pH_k?#Y2@k zHqFaj0@xMx_tDV08CkPEKC=4;hQdYlhcn=5-bE%KPE5U*)C8X+({qEbe}x|Mq~}=8 z6B|N44EUdeJgc*$MTCh4(nPxLll9w!-rQ<;J@giR@XM!Ul3Tpff z$$ta%Mz2^d4zq8RD4L+u;_j#=5p3r71K$*yvvGKd=XF~7 zQ`nJ2dbP_4RYh$i>BT8VX!E^3vDc)Y*CzmjBQ-p{q+Qt0=fA^En;&@*X4G{}8%XAo ziXEPqux>5I^IOJ;8dDM!PM)d+WoM#!?}YZRm6!UsB0A)+80JEb@K|Yw z>u~l>P~tOBa+1GQK7Cv8ruj^MMJXd^iV{RMp_Tr7BuE7WO$p*#vjt$ZbYHFa)MDj3 z5Z_gJl@@v*cDc=!e2=U1iDcGF;zy{M)JA0pgg{^8oB?$SCtEO}^Mj1Vm-KdQxer!P z%;z!(h^GP(qNPAmf4QmkJH;YOjL*bJPxti9<4;spVyS81t0jZy)qB4dx|{L8#8WNT z)d5-|Z@{Xn{((C2V=}iZ-8Zv6Rvw2bwWHO%_R_UDja+W80CZ$C4JzeJ=tR;HI$eDQY zDS;o{^Ar0cSrNC4jzdM#F7bzcGR5n~Qnonb4SGsBb5DJA-rJk2wzzV#Iou%*I<5$B z@zi?hR*d(Jj)goF{`3M<@NF~-?FVu9b85hOn}=C*vmv-R*~R`bv~Tcrmw!5w zE#FzWoyU|4XW+Nh8tbX~XOzc_ou{PX!hXg2GSe_CAQ)|lg%*yoIOD}zY{;x!LS*o`;7UKGeHvDMH?jUV6gD7^HD(_^fn~4^wwUS^LOZ3+LElSO3gm zf8{nd>Kqx}XA4X=v9ABHPA9kRRY?PKJRD?vd}0az~aB5z7Th3R%=_GFS0!fiS*Y+B}c2@)%lOU{^xr$ zb~I~qNA}N(lA9_PEsiucg$jtfr{wQQx8a+m>TeAUP!V=sS8sRhSEhF|`iOJg>^!l7 zx(g}*n$P^sUPQWg$N;%NdZ!e#6V3`@z|RO_!v3fqflkOsHWo-eUns=I2wD>&ri4?W zKahS*?g27PTKxWS@62Wz&vR@$b4^=`lXn&8Rx8yN6Q6KiWiP0fH~mV;SpVCKe-+PN zeld>G`OusZ`lAAq@y%E}kaFVzL8FGLsJg`^rpjrC_M!8#mf1iR!-XPhYm10P|F$fL z(Tl-@&foC6V&!!0B4g6Lk^b&EcvH=S${Oblw$HBhJ&<>O|5&B7N>vu|N&ukc9v7rR z2Ck(^_?{9F7FQ7Lp@L!pFbjTQ@=Z~f-RZ9tSu59gWZ(bcD3Ow%GE)sfFmFlZ`C9xB zCx!OB4m7P&NhmZ`#t9Ub(%pU2^RQnQN;P1H$JbNEY?Kv%eBmnpOEc~%FQ4AY<62`3CQhU? z5*DJ)F;lRW7f=sNr+FSpGK_-3s6Qn5#GNF*Dj+zllMxm)AJLqx%qh~I?j$?xMVKs zKG4@TMd6V@af~BGR{J-9JKg*jVQi-(&Y$}rE#*DY<8@ihL*oDpPYN&VA)@g#I(nZR z;l6s{N~Xw^$+$@`^-|fgBGKsGlvy)A`b5^xlfsO-VyMvu!@8bIJR z`Ek?-`ol`sb=}DwM+|}+ERJN2cEfn3WEk=!alOB)>JXQ&c)Ax6shqU6U)bUZK_HCu z=lseFBjo`DDoI1RHp9nhS%)ZtFb+WGRZ#t}6F+P|Dd0X8sDnkRqMqSGV!5%PZBfj1 zA8)=_5E#(yFLtAYZ(CvS|1NMpe9!tRhSQFT(nrtd=J00VUEa(H_7c_XTs9`lqx(}^ zAfU#>6wv9%71R10IrLzGz!+Tk6ung>eT94KS0t|;O+gQna|3_%M6I-ddmz`%T3Beq9@U zo?B~iIb$5rxozi2_kS?+am$ddy(y6Ls_f_u5icQsJ7 zxezj%1)n?cpOCz@-vL6;?EH^!FRj7Qd3v5wh$qbWMpDCb+p4_pRP=UdIqC#K(jvu) z%2dK5@Bfr>eZ`(QndL^+o8sSR`B`js4%4|!h*6|#XWO5@4LYkg%7+E?j~V8Dqy=T+ z{yLh0=;=}3-uH|vtV&OyM~4pfo}@r0OR4VmH29$#q4JHD4w{GFwz-t#k1{Z7zEDS> z2(VuyPXJ+=?%&VR_Fn>mb-GuLoSx~YNXf>C`LguR!#b^4`6H|Mq>Ln4-6P$`y%4v% zU~SKe9$w!6JbwEVIIaC9&x?A+cch7Gt{_|E-oT)|Ec9J2KONyLz=%|`l;Mmw5sd%< z24v%@#Rf`~ri+kXr#!7&oXZSI-e9||H?KF^r4eM)dzs80Bltw^bX3=B=DDVlEvUSD zxLiKWJL+}u8xQR{zM*O0`DSICJP6jPeNh4pz_jBLd;iOzTtNWN42>n(r@73Wff9!~ zqVs~?Gew>3Z5^<(#B8a+68dCztO?z zV91WGU;>7XX+NV;d#XGxrBJPj*v9tC%VJpKw=aozbs!KOzTHO!SLrQku=Jiz_(?vA zsP%KNvll^bV**PRd7wqFHgXy?UBLGtIw0)o%*wFTyCD`NQ@rKjgRsCt4;TAAQ`klj zGDElH%4cl9r)>w{PtMyY!5`U)fewOtPFCoAHECC#W6OIIk0mitY&~$B`lBN;)V{~~ z<>XJ%^3Y9*(ix>-4tK>bDh`ry4LlycKK2!@!R;(MD{SvR5*PB%Cd7!P+X+NC%K(RHGD#d) z!hr=-O3zTesLQo8M6CpQRAo3^Q=D|A`X#9N5txIFhe$(5<4O^x^-XWUX^x6&Eb>is zQYHA`DCDb+$ol z3>M_tp=LhwETke|@{mn2Gm(eFDJG!#VnTi)Z5nzA`C_dzq3ZgZeRYrXKJkAu8^Dd7 zkdK>DN62A~CsbAAF^=*$z>!)CBvq>)_2JEcCL(Ke4EF?0tnT}X!*8E+vgYkc3efVL ze17*%_mN8cY~iOR+2oej&0!aCvS|D-ySlxcwPL7&ptn$cctJ=lQU%Ahm^FK|SEu3m zhi?}%^^%siZ*%uI85`pg$WbbPRi$I)ePhW3)l%JovjYapJM~s_ z`p+8L+iS6$8#?u~HnR5DHb;D67P`fF`K>9`y7#Q|_&v<4(xHSfwoh@(*Mn-MNUY=7 zq#seOmeOm*Six#!C4Fx|+shvB?R;&y*5|<%nsp|FT|rjG!-gNM0GD+Vo%4uqrLV%B zXZ}s+jq|Rz%l`jM)Y7{{t@Hr&;H^`8kqO63dVY*Qa&FvL@bcb|N;`V?!5ic6Fy_4} zXX}IXK|PD?jB)?V-KRbKV5N^ZnvEx!c9ImHM~zlA z+077CeZKz1yodes8E2T8xe>Y|wFhrM)y0TvE9nnR>Fr@8BOyWNROe?qW)4sWUSp}J zTx>gl-rse-RBy6fFh(FUnVlW1?gq zYH_dS0DRPT@`K1PWx#NR@%B-ki6mK4Hb)!J`ZMhB~yC7vZ0o(s)CaAXyTx zm%)W(d0sUYkQG*3K)kr#$b_hf?e#Zch53|Y;r0v7z{2K$ruzEEIV*{Q7(}LOuy0o1 z>SKgyEZv?f3A9tRF=#^b6z7TbtKyz(uXzXIl+s5l^RHC8_{(IltHAxi5Pya?<*4mAIUt!~U=A zex@QDtRz_EVzOt$HmzG({veDzx$brskjM6K9rL0(|E-uO^`o0xnDH-*$}fz`KJgLl z;;OkchTs<|;XD2KCm7M6OzkjNZkbGM8V}Y2$4x@LBP=LcQP2Fz|d^7M|q6Szy9cd)|Ty|49t-ph=db z(!1m9z%T$$NLCmMtpZw@vkdl=#c`NLMAIPP4<0hd426s#6A1*oqu~p~n{LcDB&ro7 zhOA-F1ZKeD009p9bdDWtFbH}w5M@HIkdxN^E%YcphzGu+l&f^j2vl6|k4l%9?)o%* zIWOK%AibL=3+N9&tY5~>)r%#P5_pLDqK&s^he7a7E4@}Rynkt#dr~R*aYMsA$knI$ zv2n(O#?9j;kd74>Eaie;>lr;S9M}e)Icbq_i+8p3GU(>zS$iu`UTa74M4O?#+odXR zoGPGZ3Ay#x$n&yzh`zFX-O4hGDyU$YvXvOVgkGYaV3H|4cHfp^?t690q=CHZbM%b` z@`5OZ{830wy(F?x`TBf{935WO5h6TioTQ!!Q24>SbSqF}r^J?cL&nOZCN;tl)pEZE zi}UT7jqEiUM7|8Ca^j)m5{chb(0 zD$@8Hd^V=574n|4=U6(<*Zy1t^=mBE5<{K19xi|WMHsJLeBOLB{1)FHoGUP{Zb|Pz z>VPU0u2wg*>Awdywui9DTI=cpPVKxjIY^)szdar6YjIOVr5b0LW=vYEOcrKbS+pPT zvE@_j4=h@8*qa?5HS~P8=vFnCwtA*B&Ft&mxB;(4W$+WOFA2uKM4W0WQ}cWA`efy3 z*(3!`kf*eh3F`VEZuv%1b>CRmn8rFHyv0*yq3zrlDdyIv7$sl(^j;OBVNHwkPA-+` zRiBxn3e7q|3m9vA#0~gb`odEi{FdGYIh5)+#(TsZW8ilJINJ$+v)LhvRU<7}H)m9! z@?xVp-$E|ISw%U}BAl~K(tt0^`b;iaCUSIsv2=U$_C!R^7-gx_(TKvFEP4#yJhH6n zJ8E0OlCW%JJ6)<4l}1p|+xpW#ebL6$<@}p*!ic9FX~|+aUHrGBQ>bRK1lGVNN5*{t z_VGMTP|7G{#Z2t5KfehhT+|rE-G?hSFXw?@t*WG88`diA`>Km+gC0?C1LbEGrEl#sv>Xmw&+_ebiz0=YVbxT}Us(TfyH!dzr$ z0CHQdEv%}EU6ndc+1jkc@qy-sm^4q9_ErjN`-k)&5CYr!wxhkpMgO*+*nb}(n=y9Y z(y#m1;@2gJqhb#!-dz(QmydRi`rJWY=;|3wQK1lDsPvL|K7S$1IHI5Ct6jSQy}v*D z4E!B#w4Oeftuq04PIEZHSm(sIN{wX9aMrTw#LY5mpR4F@PmSVtR=ngw+M!xJ2e&03 zmPhPITmM%WS$Fd;Lyhc~;mMYpcySV`9XJPST9+dR-cia`y+Qv-ao<&@0dh;<63atd z1_#t0Hs-B+*oI%ZijQYCQCaUcbi?X1$nMs|VaGI0!v*g*YK!Mon=DJ(hh;sk7rtj; zXK1--p=N{S7P4`%>b;3Jf>H|=ETIavs&WEZ*p1Vp&7#(_ar;ZuEN%`C+^(S3TU1-T z^A^UpN%omq*!h$4|0Zj*}|&Hwf{4z zEElVJCcS7btR~Z{kU+NUUZWSiUdmlnPA`DXcYH+g9=BZ*&mc;o@p0O_c{nUKzpotQ zyqng2mG%?i)zWUi_i8^)&o1(~zs(MM)e^pJ+ooijz=&}WAyT*%LakSO+utIjq29Zv&)k!#CKc#uBn!vsz8|WLCp#aa`7w10$ia@ zp6|V%ynp4+*icWQjP2c7X;9UOP#Pu)Nf*}u8F(X!tg)KqS^tkyPXncpr2{ zIf*B8?%naGN*jt{etwIy#~ykIa;(YT-6~j9oXIYyCD?MAxaYesBb4bgDO62YSuW+9 zP#l~5WKp#0_SDZyrb2uFXulR9N%<+x)>oS5yNYD0I$4}Gccpktk<-;@-LH!=BO&A2 zQH()nEXn@Yj%FWX3lbn_opbVB3c!7rvR@WjD+7JXeG_#Fj_uez5(RB^O%IrOQ|NlR z=&S9#J+bBwrTJKL`Hgg{Tf*rWYt`NF!4)r=L6jw9((N;JjoyZTpsN|d{6!;wE(t7gN>ut3H6_!JEQqzD3>ia(c8~Nn zbC_Y9N-UUoa2clx`>EmbFH-oz%4H2l8gBRqRmbGF=+h-%YzRW8Pft@VGcT`78p~qd z$j{pvHk$wEsTEc%CDK`GBfHfsTNR9d&;{l>>_+ULSkas+J-h3o6s_p_DS#yVGlo0X zQ#$*MvAg!#u zwcwFUD^vhV5G%#30>l`ptXUw0@@$I&JixO61?F8+z{_)GpWqoRC|4y^x8S(>Ea6D4 zUU&$o6;FV`dPI)}dNEkig8;JDS=v^^-Yc*GL9NNka^*_S;FFEy4-JS#I5;;}+=bLk1)RAlM$(VLam`s#kG3oQ z*(r?%vC83{F-JATdL7yC|NGle?FDEYn<=aOxz(Tiw`!ItGKjnp*)R)ckB)A4Y%>%V z{^AK=GIAmk!geUseJPK%)fxVRCwnMt@4?jXZ2Os?=CqU zcR>_Ejxy1ortXfJ!kC{IqRKN~9-)7B+o{Ypyp&ktwuPwkKf_y$VZ;rQK~=GV>w$@| zRI2jGJXzE6#Pw%})HL3QpJ>8C```0TiJiIBB(j4^%v6lu^~vj@!K#m|1W%a^0tgC7 zZQHJ3X%=#jFvO%K)`6OMCCx*`L^7fvnCe(Pm4)x)gU&Ym9N8kts1oV-gG=#a$h z+=Zlx4S*p(dGGNV42efy0nM9;Y=ZHDj&8cji8H|&YshndOS}kxY-3V>Gq4#$ zf~#rL8TdAQE&hLI%sgG$d)2zsP8HKTcAtg9Ufm){WmUbK8 zbFdkJW*j&FsJ@fA0tCE5s0=?kMNkX+n6iBK)VHgCKFc>k7P)jg<8khZIXSPKv49wZ zMgO=%7`$~t-(Uxo{uo5>PvTgKNqlI+t!McATRk3G=v0K=Ur7Tmk+BJDu00KPE}Z=Q3pO1>#nu zAD8TvGYE;-H<>vln$ArBa-h@I9>7&^#$=Z@3e_L$Zq$&v3ak79v?c{bV#5hkZ~KHr z?fy<`bi}Pm%E}M-5_SR*KPla6hwfWiVb<)ChF46SgPx+V@NOB?!S1uqRuSx@pev(W ziXLln!;p1s-8^+zJa+VChi-0Nigj|^N)O8iY>6A|q+4M|WJYZ$uM*(vAKB8hq8!e? zPoBNyUnK05gJNP%G--~psJh}woFs1*1MU?w;~5m-@6JLe&eI!BrSej!j7)v`02JV* ze@c0yyoh$ID((XadFlB~^x8}56ingOEP_Q>K>G9?7v^~FFGX$^s7uHChvm_h=qh4o zxdq>c$5S2ve5;)GyCe6KS)x>XHFLUGjnjlk|KDgC6SMxq;)v_oh`5Y;o6ZkZDtqDo zR+~=jl@P#_ZHmq2+XDcZz?j4T=YHTEIwVPeS-$SuGo+mo!7-ehO`Nqj%^s)4_es0n zY#J#45|l~be*h+kl>#Z2)nX)wp<$UKn@~{KB7lNXIVB}~PdiEm%{wnpY7ere%+s%4 zr~ZnPE5E3Td8jIV5R#gusvI4zUINpo08r?Z>IA<`4z73n(g>%km9ciRdGQBoPg`NU z=0%&g7&I+Oin%X2{{NY^(f$$2c~pWoA-z`VXE&tITUUc8H97%IlFrA=zked$krzen zR<31Oh0D)y3aUA~razq0_==nboikomLRVFCdS^>EYEE@jO%PwnLG%{jr3n;fp_BN} zLNuwjPH}%LH0JH2g>AJ#isx=Ex<<0QS*ca^+LJVQi=y_e-T7}PllGwNx!C_R9Urr~ zfOF!&mqfyD@^P9Ocy&e#2S*#=AY}~S*Q2MCKx!a{0}HCh1OkU0 zzTw&i;xBL=%F2b;T48emGZI_f{3hz4!^@my;2^mVlP7xqZ`0iMJxqxe^AJfWDMQ>~!W6L~{*ueo4?s0f zu~Gn6l#(uoq(ye>4o|3b>lrTzVTF^g`4qStp8AARu1gZ*;@6I;z_#d^nvsAKRExru zuQlDf@?cOFaCe9w$yvt3S$D(E>~=Dvu$^kBiA79B^l!J0e6qgRDXC(2PW>vGpj54y zh%k#X!KkPtkv4EV)AtpxE;5eT!rLV&dLc99I>J(yaMv_j-K1#rJP(!7>C;OHI1(OE ziZt{*+)rsTaaAd_o18INb5g>pKQ0;iwNa5oEPd(f_c?KsKX~8nj~7Qr?)40Pt{M>Z z-x`ar6+==nmZ9CxMzxqF8lrG`rlROK$EG}^_86==Qv-5TU@)@L_ko%%-+AOF50_1X zT$Y>s-8ee0Y?v3yr9QXd)xx*Y*^$w6%LGYTmI8T7$o<7a0&97Ddz*-dS^Zpcd8kvj z_79gCRQ1YtG1;Wg>Vo#^K#*)?&mrZl3OyiCZky}HXhXsz0B9n?A1-+)-)X+4f@q^h zSOG4boz`>v-w=I?A$knRpG0GbUk}mDR*{7s+PDFnjO5Mmzm&7NX`M8P1uu1&I(oQ& z9XOE0iV^R0MQT4E0Mby==`a%~>d-|6ebW5&A5~8xJ+%mvu#wAs$%m6coPBoN{#=iO zQjVzP8=;Xe2$=2jL;@kLbr>O@3V{nS`YI{nUVIgb<`XPF;$y{nHL%zCio^7oT_2_#X z*a?U;geV7>yRe=?=Dp#su&tGu_eg7;f`V~@33*wzVPgAVyDPQ}J(*2=|Fstzy#xG= zJ_!dWP6^uT`QIFC^%Gaqwka0>L@(5OG5#Q;s@Pvi(b@mkFZ2}~NuOJK-_26U=fmt% zs@<9}Ca290i-Y|41%^d&8Z=#2w-9{tik>b($T&2yYAP;X*>)Nd;@NOn+zTppI~t=6 zvrIicK>D$lBD`m>ZCOY4+V9Z8C>CK2EDwuvi?#z)9)e3&P zV%~t{T%uoNUy>x=jGjZQVPQJ_PlVXr07n+7fM=l#k4LdRzoS6BDdys*AFdAu(e-^8 zmaVAUQ?O60j>!vY4fYa_9Q=N5UG3MohTNSn(Sz0@?^X=0C&u z03Uz@3jH8iC)_=XJ@4>lISK6!fKEzTQLGkY2dXz%4rH+Ck>ZkK_;~!5K)7W z9#X^>x0#`oQw!uD4G>>4dX>`UYdfU5U|$m4M->ROet^gTa&R2p7Z2B4RcX=yuofuP z6bErMzL71=l&7>y^E+9ZXSM*Wp8)Oj9%Tdi0^s^vZS>Ns{5d?0U=TKoMQlqJn>~@S zgkV4r2D5$urhs}*5Ay}W^;;>0(txn6C|ysZx~UO^z#L&BTY^(m(w3YgJO$+a!-Z$y z064%d06Cd(?3kH}7jBuM( z@vs4yv|O52N{MR5_C=ezMM}lauUd81!ZsQf)xi;yz<`gN?R7`9D5yo*x%rS}M0CjN zfaJm|GGAzkhD4~%lLIDZr8r&DqiumhYw36pjj7oO;{!GHg`SHhb(XN5FC8~>o$3b3 z2IXT>cIO;FVn|vxjEc<9aTz`pb;R!CFl`Ufaw+Rt158?AQe-okij{131E}P7tBSyF z(OY(~of@vFC<525ArR69&9sz07G*Y;W!{o->eI!Bie+@7uMEb#y)L3x+=;tHstuIJ z64}aWy*M=*F2#+)?#wX6DCx8yWrfZ($g)XJ<$pCeMU>@7ryuO-BHA3Q&OE3x-md1v zNJnpyxHC~IYAAf{)H6q!DE5%n`)U`dNa`$=^s5nbvQbd`IUNc%FUGTuhn;VPpVn?K zMl+v2Til>V%V$PWhDK${`Uv2|l<8KRmfL4Qs-0hP!CTcGL*tW&IjrBggEdzZYF=Cy zlr_)ROzVT2$V70M(?`0-1{VqH{;8|$@F|{9+cesU$w{=2cu^`Na~{6kFn)9A;xt|J zaJe-z7P!?#hLNj`VR6Y`1p4H-gvRVq9uV-)~k(Ttz+Yv%Ljf zlo7udy>C4lO}hgTIfHWpNBFEJO>Q5%iSsh1^<3a1N3NPMgQ|(2ap*#kWTcc9lxc#_q@e0Qi zp^|YAbGk&s7>y?_p3`@roou8>F<#^4hL1HC{g%qS=dhduxbb?(w?8bl$E79jkV{Zc?J6=RA)JF6Q-nb}`heunZS>ZRMeQwwccnqJMb z%3eIXU0^qvwLBI48q;zZ9Jd{~wH$Nwo1~51(38Fe2dy>fYMzlfQ5TuARnnTn_%or~ zbc8+R98%Qb-)h{5Qp8oxtoXfNOT&-xqO=R>n@zq+nJSxmYFcH|Yt^Qi*|m9HD@8<+ zZB~{Jp^FxES`<0DYpDo4xZc!mnsat3*Bn-NF=QRl4zBz}s6`u~Tnl9l)@~PMsFWL^ zOazcxrUKCHE-A9^$Bm!*^#9M)!f&+q)xUKhUaRtdW-2UyPqW& z3#qX2J&$nR(vs9$p37la)2LY^c5UYO6*fRi!!IJ}9;g)wF@EVeUy^CHw)aO_rZgUN zF)~zd+$y6HJxtCBEo89K)kLo|D#QQ4=eCl~4jo52`7Lnn4{5130 zeYtdS?vFgCnADnx_tMZ-hFWLPPG(F|ZA5G@eYlrw;?8w$MPsy-rEo<9Gay?MiAr-s#=uPmRhRQ zLopgDxpA46ia|)3@ni8(u{+gx~phF62XT7+H7z;J1(#TR6EqplMV^vIA>`lFcQhjOQ%vIlN;wcFOFZJ z&5e%j+kN%H6)>f3m*SVI)YG+Ds3i-ur_>BLL4Sf2Eq;9>x)qCBRW&#=6lUhUw%Cq` zz9Ij4mE1J77g4COd$T9jiZ_IyC;ZUDV&^8%SWfZM8bva<$-LAI4ce-y1DU(hnW!3= zfCCNCBtpUi5hlc+SK@7A$T-tc2=nbGC|630QMrWG5!SBaA?Vhg<}=S;N0FthA+Zfg zAVm^1X{0b zTwjzB$3R0h01*FASrO2Mb;;#g!bm&sfO7uic*uYAs~1^X&Ar@6vIQ5Z{VJ6V%xcss zEP^0q&vU_OkQx?7d!ad>EkZLWK1 zl9FXCEoBrsI)fk=%5vn+STp)Y`H*XbFF}wMtRYE;B5`l*FctM>2ZbMa~mzfQ(41N3iDwl)0BsdLfro{D6D$(tfwRmuCg|VpnbSR5L4K_w zUN^&^RNkAWxf|lP8kUz43q6n0`EIn2Ru&#|l5&yh2tF98fG2ujB`n-EL6zAn?2Aqd zM;^#-<2iGT(N>OK_aIG8;8x1%mf6LdFJU?>g%;&_&qh8&4R3(xx$@5Ym@JHJlB_qh z+aQBg%X4!Xlh8Dp6rA@kvVlkfgGvon5J*S^-~)m5hM^gPP4mFB)g26@8aE8Lw~e1n z`GPmL9>Vp#QyvjB` zpqI1+xHoZPv@+L7NTCCG<;X2_nPEjouN_G5TM-03m)o^GE%P_qLZ|cevZvT3s1oN6 zFP75G?25~_vn#OiBVmND&~BKy=tY*M>3O*p*gc=CX)Td5np&3U2Ds}*m1YFZw5Z>^ z!E;J=qGGl6YHl-Dc0I0+oNtGdrK}+lQ86cdOFNIguavi^7OyRRf)w3JMK&GJvfP4C zzzEj&$Ph0m`Byz@eUfHAtM`6HO{H^B%+u-iUyV@+p6(4>MRQq5$tCAHp?d@?K7k^_ z-cSrpCcd)tNvX>_D7Ev8ug@*{QzOqo$P)q66bo;4AAE$h@C z0-VyEZpRnlh)l6zd7-KqcYixxXG9uq@?}&Oo?fa>0-{Nu6gq*2*;(=uE%^(E7m-~f z!s5p;J5dxmPih&Rsz|CndFBK;JIawiN0~?_Q%yEVkadmCm6TKt$s+0I(`K9qdaQ6K zC=+ZAMnDA-Vif9XhVlK&mdnGK{wA- zGt~IxUeYjm<<69G)Jwcn;aiQ0S(mf%a4&Z2Pr1&@hUMf3wh-B<1%97sxT+lGn1OM)bD~D+>43Wz#)5&;z&eDi zp&fd*d@rB0F%re2w2Xy!K-*ph1{{rr_k=>`1(m`7Pb3}Ft=XKT8ndw1A#2)J8G$r! zkhJrmnrn%^;)sIA+R8i&nT~MWXNy>4TthTd&dM-U`g$WDmmKrn?kU1_a=xn5H8D{wqDKuq zGYC8IkONsB*9@6QuWO3e^e(Ttr2Sn$_&=c!qR%c(5gt)7np#wknVupykh1HO=O$~R z%%-u*z%-aW;Cfje{S4#mD9Dc{^BpPqI6Z})|Y&=F%j zGvlcPbY5bK+bGd=^t(6eiYTP4)(hUHKuEX0AHMSbC1i1u z^gq!dd2Y|}%3#6Xs@*uhX|=dPD78iqDo+9LL?XlRBnp-bUy=m9iCZ!A7L!Y#$K;Ae z+%RI)=SG#5qMJWOwKBvgaWKY88AT~#>+taD8*NMk)g2LI*Kt}f;7gDCv__?9?XW`_ z3=eLwV7R4-xJ%)&fkvxpX+`EgjEVPfQB_}eg_V~PY&A}cyau|ncII{Qz(gr>L&rlK zrh4v7fQ%gQU|DZRba#kwyF9z6VObSay`zE^x#HL8T2XPSu==!~R2!gb_)9B*XIf^+sCcec5 z6)-5OTeAYkoT59Jq87R#k&pm&c@AnW7?FULbXH6)5V;9~H!O^XA#{LXm1aOiS$Lbt z>TXrz=&S}xfM{36q;O6zVJ(+v_Gw{Fc>cidY_+u3aIr^ATa_%i&T@i9vw&OM`RtY7re5)rj4ENO;ZAwPr?;|6zbpP^Uk1M{+pRl< z08voqm|#BU10ErZeUDsAP&lWG62$`E@QA?3?)C;HDa%X*PFl(xWxL1`1RPpeXyHGg zYBvlSg$kD5d9M6o#LZ{di@HnbX-9u1Q)l;IB!pRhY z^x{!d#3C()ii&Sg4FVI^q0OCZ#@^9H&I>|xJlx=`D4@aehUN<*PD$FPHP^~|iR%7~ zxJ!#f$g^^}%jK|_!aIpdl3MJlL{0h8J-Z|W zdg17Y>Gkx0LL*=prQ@*GYNkC5288lpaeoS2`(7&Fd*Yrsw{Z39I?u zTI`#)`EHj2k^HM|Q3xbsF(;}w@B;^r1Ee0X6Bez}p&^b(Y+yw7)wv5tv*oVdJw~4@ zgzxW%cf|Gy`|TQ#KXB5ihjV*xiZ- zumQle(e?1B8h+9aO;Z510z;r7#ZH+TGYS+h*P!lZ-<>E*ZPYE! zZSzOa62A~RM|eR49iD(LZ+L~9OZwwF)^KU!*JZcI^N_o8tv2wy`eDET9#Lnwp}VZ;RY5I z1(I1{*NaeqQ8;)}9bwn%v%Jl|M$ewlw4ToS!sODOg)YtTpcyn;(d;MbEIT7ZH5g!V zWmm+#gz`x)_Z<(mRLL&aHOT z{(RYG8{wvM{mX>97 z(52i=#oiqKUiiC<&Qn7Ty`WWUhOtI~6yfd)+N2y7mz#O61Q0pFAzIyA)T$Ps8cwkmwRwj<;zV9^Cmy3_-O;_$k zO5%i{@EBZsx~JDRDNalJ+M9b>>UgX_Qo^&Ky zy(f!|1A7WO?UKGOlc=hrt<$z9^|~NO5pa89x3YAz4NIeQe@FLq2> z&_5ehQ-pM(b)Q&rcMnvd^R2u0L-%IGL2t6gPKG~i1 z++wlSmnaNX?>rL@x-?H17=fnacOBI39*eEs7O4YTL;5^?Q1wIYPdiIGOpLZ3A!4S( zTwBX(b6k6Klt7B2C`}hRfx~HJvspkHG@10i^(>-$MWTZA`j)FVqV1Xq`uzgCmmssr zkwLX{wv;I{&;ba!dJy{UKv4)b515k{R2qC(T@@~=8P!yKyPwk!dg0z@4FfhBk#oRA zM0nJIOj<)_X0kquXXaX?pDT+>SsI-pL5c{T)nWVVO$0kSLzb8;xP8FEFx`&<)hwYq zZe=Qp;RXW~YGH|AYZ(&LYkXoy1+8|z8iHsD={IbXpbreSM}21a=@xT1muGg(?s-@4 zg1xj$g*T9!tm{xSt<0t91-~F=0{HJ4zf3D*s0FAkKyXyKkSuDKt)>Il$EBO zAR(<)J`Bt7mtBaKGh2<3(mtx2lJuAJ<1f+RMS}=Cm!p;9 zYp^>@Q>24U8N56|;R^FnmNhhAQ|YR+P;(VH#YEb$!b zS@gITEqUY-N1*eKE|0r`M`46!5pru`9G888`LeCeo1m__1&)g-S654|y#>es_{(fD zbusNucTPW0eou5Gh19~N-aY97JO>E0Mw|Qul1Nv{p$0gbePMY%Y}9SMhmK8_57pEY zzorxyDI?PP7G8GPDAF9bz=4HD!0zraK8$a%-Mzk9iu|Q^6@Zf~I5t#R)DA^E+(4fq zev=--(Afe;-7jkp#-J48$-%u6rTs#uXOtL0AQ!v8O}~KXw(J0OFYcgd1RK&#WSvN_ z0UFe7{{n8tzF32kaUm^@X@B@~l*txxvOvd{AjL$|J2HTSbO@ynYJDj%#e@G%8;_ps zrUW|;0hjk!612<-P9>nVAoZPP_g6biu6)I)>)0Kp2*Yu?##ZgOG>lW46I%=>A97du z|NpF_Ta>q;px0u{zeR*Sw09o%+S6@&*mw3^Kn1#m@7lg`$h~ls%QbNs0?PRz)k{*hZPBmd5uglpVQ9SD|NunAe9Qzl$nGjxTYcq zNKgr+E(Hq-SO=zvLcs#1IE4zzg$b7m2^9quZUjUMl5*Q2Kx)-5-y+nu_ilA<@AWxt zd^hrmzIzUJyGxNoDBa!;eUjdr{ZNT}_i^yA6MHw2$lfr}ujQOG7~}6>=QV$yqU>Nq z1YkfkL<9{*^1;pS%*!s^HjStVm=M#Hkqj=uG~J2)<@ybBU(5GWBK*@m1^ce0cFtwd zwzI)ln{^J@+P420gSNEaH06QC#E!CcWvBdUYLv2du|;a%OtG8JBUrNk4z^>=Q)I}o zpRriV%#UWaCA*!0DZ4q}+#y(=tQThuYI9@D*s>q2P}`a5MW#oD)3*F#FSK`$bAvXA z()b+Sv!+Y7DNYS-_OWu_V=>KYk^hP1r=ByM$!#P1`NvXDXJF1{_Tu$+%d$Bs%~(eE zvue@#n+(dE)DFk=%>r>))Koy!^z}*UB)qE9ZW-rRGrRhOz9Kwk^X- zuw<32U=U=C-PzCPn{~&WZggu>^^ZEMBCHmhXLsqk_IV#d@vM{Em+kIwN^*UZH8>uO{5t{nd=YOf9+1?fqmAs$!wb%P!Ids?BWYhgp}U?RuMA+0~uw z?(NUc{h!Hh)%tAL>YaYpLUWG1*X-@tah6`=<6WH$Rd(l&_GS;m`BBj*=GZAuNBzBn z97uyHR#scKGzeG&wk$&%qb*)ei`y8R%>6~?qu1?d~vRWJ3avQ9i_Sx&~ulz^P zOxH~fV_Vv3ZJWTKm)wy&)9kiv&gN{L*O;=`{h8(U&tuENDRVrsIq|-4<_2wr*|SRb ze=JPjn$x2dYyFpNo*(kdx3S2z&96Z; zvP$dM%YKn(Ro=Vhy6p87MPixEs-YjzpUH-2H{WC3W)J>7v-7pXp&7oev|pdfEJx*? zx8C`hYb9S_OpuIZ^*q+h&C~;oCfiXmk5st;lO6yp_A_n{QuAkDV4R z>0B3^Dy8yRIJ22)taoEpxwUDhJB_*1?ECzmc_???@Q=-YXj(=?F~b<|{bBE^r)z3V z=Dpk2jyFx;y>-w0HTA^_mTme!f1a`W1~PthVXfxc%yHrDf{Fu^!dLyoF)G}HQJZFF zc(kp3Zxe2YO?EsnDfFs&S!61{6k`xiG+VYu%*M+7#@t#B=Tn)x$%b`=H-67JeltgB zKNX;3jA4U8r%h&Bn~4fOJ+4x%ZU6pJ-FEt%|KIRZXOWt1qUA5F{?)4pN_7jXS`SUR zxo_6HJ4-b?{eySj>v})*zaROrZX)vC_JpUdYGS|5=(VNxgv%*9<+U{iJN1toEXj3$ z@C2&tuInRPgR(H%wR7$~W0|_U*=2bgHjhNxjg@jrSw6u$&KjHD?0r9AxWXsna>)go z{ZF_BvEha>&Go@e0?&o-C=h~x&4-{v!t$ws~uPZzM=j{^U z@=vBOq5fJF<=;bzyt>_X+5)AkwwnyqPWOGBVAzg{ms$VPhm-k#Zm?<8hTN#-KL78a zezOV#z;xzK^vx!)tpfL%4FC4Rv7K|rVK1`ixGQcuY4(A<76$3b!ms=`6HT)uWzN5o z{$Ik(2IIz4(!U0<(?bd*0RW@d*^DiQe#I=FD+CWA9pP&hY}Gq%GyDG?;;Xj)YOwV& zo!H1+X|;0ZzRw*A{B^XfRjD2rZguz4rBs?hR{P%$TqHcjumLL=ljJgyic2Nra-{%nEst_L)Gg)p)5#Y(?5KJB7f{QFX{jhz0H}F zsWwxzRcp=W=T>A>)AOZ5rpj`+*R%7mjhYP|C(F6-*!++E<9xAhvnbQ?vh!9fss7PV z8Kyf*r+sg_Il_G|&#nrxn}vmTR3M*oc&E|oiQI1pEGJXsZ*#}M^*@N+n~L$yU!18x z=-H=~pMJ-)*(3gwtJFpJn~w^Wej8@j|5e`ouabFwG@{uz%fQarwu#rGfXxl;dTOa1$Y?@cp1 z-ooGi|3UNiG2YnK-@iTkj ztRt3Phq_KYlmj@{TFzyvA70^r(GEV)+wqkB9n7bHdZG=At=i$M#_ip9nd?{HIkncs z|BM;HcE&u*RJCs~<4w z_WZcbIB)h92YkCBZ)(R6e)ZOUsi*2Q#?xinw#CTPVVkLA-a?9ZI&A}&;=v4SpEqAo z@u&LL&vo5^xa<4sJH)!0Cl;oA%f|G|I`_`)i4wVAymXP>dF%CvUUbqazX~4Cu(LaI z_V&83>P?sIBkFx`$^Adz{yk@0QTKZ#LM(OdotoN8gOJ3ao- zOZ9WGa^14u8|&vQc^#MNyiB%mmsZF5u@i9IwCjDU@bg!V0^J$!^wXpKzAd+X9$;7D z26m?nVV+;V`);YvSLAzlV)fdblWSj~*LU9a$#&httLeJ$1=qWQ(5}w)3qRp}+vzO} zaL;93*Q~ubg3C9o_|F21Gw*ECSr_-sxObRpQNwlV4c~W7^rEyj@*1h_&hhvb-^_zk zE9VO};}*aEbie4+GQE|+dqvfFU)Iwod*gq>q>)>J4s zes1vMPNnVR_3PIuz6WIZi;!xGTw~U^iWiAhGUT4L=S9T$_HDpQzzCjz6M~qcnEB8ThbsRP9 zq_XewUuBnKZ+(|+8+*?tdun&oyXISs3$YCTAsZa1=vQ6IV~}01xc!UvQ0(N9`=Oo$ zd)?oiA=}37r9^dqPivymAT}C?5-JKR1}X$8lv9LL=uzmVv7-@9kxX7)>M*8%$cN%X z^uv&mASRu8S;?YjXEa!RZIXs*Bl#j9KLD)SASg1Vk-`oB%8BW~(1>eKBdqtNQJ6o(*V5B>07q<@SS@2=Oe5^6SUytl!i(P!N zZ7OnH3ND6?zBOG_5NQ_8OGLrnviKAIdL9@1>|*_0q0VB6Kj)fL8XGoDXBhJ_+ikI{ zE_UbskTGVl3=^iYjz;L#Ioa6NQ@;QJf*i@7EG__mv5PNu^ZyuiR5Kb(qx1Aqh0xx3 zd}tW4$ZEacWJil#cd_}X>AR^_4WSz*SxkhcW0>zB_N2uwyVyS$vE#2oA~f;Sti&QF zUF@-o*LVN!FrU{`G5#jg9p;%5spSd&8mKy8P?rf(7E&f!A#7#9vf zG$a<{Kq(c1aMb~dU9io?2vm}6he$Gc)JJHX>H!j!W)28-4SR)1czVSaHFcRFII~K4 z7n#YdJql&_q9Fss#Ns|i!>Y$(s!~>E8vrR6{ZtitW{>J41}T`GKRcdauqGr-Bwiwv zDovCGJgJ(nt5X_iE_g9+G~MSYa^_^#v7+H(NDa|LFw+_gJb1_=eMZbOr1eBKU;D<#Ub;A|3v zn4FqKSjU9>WT`ThEmlczYp4_{M>&r}wgX-f1ZS-va`tN=x?t7{n$-f%wZ;@=gU*bC zv~_6+XnVLq+M3UZm1#Krj&?|e%l;jU`_E`g7DhB5VG0>EVmGRZJVrlDcBRhhE-E0z2^5wjP!c;V#Guo9D&P zfU1Qqn<~~kz1{8rxuMWs~i7S9_?jSN`H#$QCRv5`eEv3saYdB&KWw3=qZWjZw z9oP*ry#w~TA_OnuS~BZh*zjf$5EJs808*aSdO*xno@01DP(4ot(0kArm$|LXktc`_ zMEvPMYXT)oT)awN41)amRv{u6$tDId94mwXKGFjwY~VjC@C6Ybuf)a?+A&iycW|e8 z@E}le)FC{$pw@2<%+i(Z9~pW%f*}aFTTxGVj2aO^3%8S?_<&{M0hkwV^}f(6xgg`f z;qJKC!fcvE;Zu9`Ery7PQ1C0{^F64zbTL^et8{|IN01s@4+{erjuK5`hhWp&8;3eG zn*HS08P{mX1P%NnVTKeS{v|A0M9!8wy#t7Iys&GY3PZ}J19shFQ}PIqAhLAHL>PE zGrq3EWhI7(lKo+@!fMBy;X57v z3)2|i=VG}qQ3!LZ8UJ8`$hsleg98DDK&pZ;=y|^g0hXz+=+WkG7vq91~r(OkCzeRSx8JSx9G&|+eaafoJ% z(-u4H7+o(M5$9P2AO_J)3lb1V2YWzide_%EjOgR8i_N9fh!f}*sAM88RH}J=fI?=ev{WNd zSL0c;ln~07fP!IIgm$VpKa~R+qlq)=K-w@YvVFrAgtBQX&ZfMjG&~Se1LGy(Hb9dI z+kMqEI{|>%yNYa;*~38lsYwR=D`Bb%*uh003(&&4u%i_BnzZuYuv7JEc~A#C7mK29 zKSkglH@Q=`&D9!wH6~-Ek+tc7RzislvaqZ_>eSmJ{Yr7 zgEKH7xMHPNqq_WpRxkUN!{FAdS@TWdh1F+bf8FUpqtxwpbtXv>eEMWIuu1T9s=*N~=?S5jh z*rV_LyFw8(@&yOaG^_&27^-9L>g`)3n~kqMQZTb>G*G0UJ=g9SFocKg(MY`diVtZQ zhoH%a8%r8!0PPj>jyKoRiqzTqzmM7qkJ}b-Y4@MU?-j>x6rpeL(#Ny~o{=yU5V!{E zr$Pa4A`F#kk% z;42Ekck#@b2gq+>&Rbq#e+BSL8us;`4cO%hn0R50BAP}>kpGIsz@bQXj#Y{TFhjyC zlG}!~;o-;}(QzNR=@!$F%1>TT(%qw8^kl(9!46)YeL>Pn4nc!%rMT5Zs(TG@=Se2y zdSU|v9M}X0-kLMt_*i$kt=yC#q~EOsStQUkz>hVFzrv0D;A@n*C9Uwl9`K<*_)efQ z#n2X59Fw3cL1Y?=94c-%4iNlRHL2k~aeQh8{Jj>0bn#hUW z%Xaia5vd2?akrBr$qrJl;FWz92LlBZP>QZbt%nJcjJN($;}V#7-fyNcVj&W_*ccE2 zO)pK#ta$j!EO^QfEMQk+h4B6$=t-nFPt)%!wZN2uTdqvYX%d)YP9c^}wMTfR4h7AF zY7i|p#UX;E9eRK&O;icziX^{@7mpSqqLtaw=r!SN64-B|Kx26lxv{wfi!{@Z35K6LL`2IVqF7PZ_B9ACZ2Zw$ z+mqYiOv2hAPD1MMYv!>G69vXXG)XvYDd{#&F;5l=2hNaa_-q-_#gVzLygj4MWeUJV z77I1Ee9+(=_lpi$sNdoc5jUq)GUT=dCn8Vrs~Z$UI*4ut`XD3M30lRtFiAAV6y6%AwsbymXsD?Cr_1|eZO5weJPnl+%LjEanp$k`l$ zmKaDF6h2i#$*aroVs2V^4Z%Pe5anTP4TG{mVFN2TYR!gBiCf1LkTD2gs`n7#x%3}U zT}cMbkTy(oy1+(O3eG^Qu{+WJ>qzyjci%GEjq+*QN#GUkG3vz%M>>nl8wZ|go|NKo9uhnW z&PYv%B0h(ENrMSOxIBU9Pt#An!!C+R2*7m({3^&)M;#3ek{xTR8-jdILkRS?`#rHH z@&gN{5+a;?<>)GsrYE=>h)X=-7KcVeI?W14U^o(&d7>t|3Rk>|BzswGCpZeMUtfye zZ;8Me6qh|Y)JiN;lLQEfvLH{M=Tbw&C)MgmMC0NTPq@8WM-r33j=2)>&*EAZ_2g8? zGmH}z3BDqUQ8x)1?q$C$ugQ8dVlYoOVsti#0RoBAOAx{_&`p3yiOPtsOZag!$~FxV zM<9y561+UkOHUE4%1E7wGWtO%2rj|`Jt6w3!APRw#8o17FggO66&Z*qDk=~sL%b0{M&lC1hG#U0 zaTUj1$ul89*c17sDk@SXFQ=m7qh|?et>Dj_Obf}LOyn996BS^Kh!yGxLgYXV2`pB; z5oI?bEn&0-B@B!Z0UO-_WUFjLnzGs)Ho7W6`J`0KO_S4H^h@cUku1W7f1<nQh{Y=jzvHO{<=)8d|F+r5EgJWLJB9{#!kxm|*pi~Mtk^@>#$#+GM-9!&Z0ZL#z z1<@WvfKn*;vJZ!POTVZHFq+}*$Rq;WI7@@snWj83?bMMjHc_#$M1>L}Z+n<`sQ6Hu zgVva)o-FY^H7s5AtX#+_i8|axYY5C{EyY=#nb=L?Ook;D`}>Qeyum5yV>)00G~yLng&WBC%Y1W#TH{k|q#3s7X)_ z>?DZYVc_P2lxGPFqCo7)7axTfr`Y*O2-1;_h2ac-c{nsarUoKIiXHO(9VOuw{KtiU zxS2n*l_xKG43bP#{7rO)-G~w}NP-BCx>z8v41-V@&z4vs$lwG-0&NR}DknGteITd+ zjC80RI7{)!jIovTaCu^MsLNnJkO~TcYN|i@CnW}^&Ch0mCA+RkF(zr25uArTNW!8b zb4;d^RVor2J|Y2rc93{Jn2$rqnT6`@x+Q?G8Mp?E_vD5FVwF&$gkc?#NbH0{95p^b zB8ej`Qj-!35C=jddXy|S6Dru#PfucZ`!j>S}O_cpHUKB#HqIA7s-F zXOLXpjF3KP8f9t>iSvZXKVKEDbxOb(#YVY+vONiEgb&!7LfjU}=*fZ`dU_ZdEEO&w z5)^@YNJkR3QsHk;0z2SIc}Y(kgpdv@2gHlbCNe{>1-w@XK&hb7`Z+E&;&V_+vN+0t z4wO83Ou24IPd14#2y9XKz)%Q{0jLu#_6N!$We##tlP#*-;ZrYBa$=826M|5H;f4oI zfXqjnQ^}TyKzUqSTSSx0 zl-Po%aiVy+o2W*$ici#xeSjZ$=0QYF&ac#bxEPCovLJeTF>bDlkxl~ZDurDq4Hh^e zqAd(bFS(}0v^Xcxm9E98s2~8IBvjsrJOw)fqUfM%93Ze@M}YRn)FN6Gi-vMhF=_)| zS$}2^N)vTNS8A6};_L!kM>{-XwHw2OdI6+V$=8v@L0VlCR7y}P5&R2W^GW z1g#oZ^T7E6lhWOAZL>ukXoViL=Lh=|0?1n%V!SXVdg@V|Vr<9@s?Nq+<825sF0aj>s zz||xT-ggO5da@}cOvXPG$lQ%@0+c|x$t_Fm zsOZI+VAi5SF?9)^@iTbM#qOvzx7E&V;iLxqK&H_*; z%e%-32M8LXlK>q>B;0nbX9Q#fASx)dE3|3Q?ztASACuybU8NCmRvE1hKxED*v*PCWA64 zd!ludl$lRdJSx6kdIG{xM1`_v(tFB1Q6bDah5*u_(nK=202ii?Kq`7nI#5C-_+zX?x#L#+`l#K}+vO(LE`dw6B5RgR+Mflo8_{Lrp3^)Kdm{+1ek~dFz zG6Sf1LzD?`kvN33AGxH(JW0#3B1mzf>|98gV~>dE1U6)Mv89%lq+yZ7S`$10M0XmJ zPd17|DiD_=9F#%f6VY+VOH%+T9v~{6s2J9oj4VVNuX>ZLsNs1RzCckEO7}$rutX(e zPaOaOCA^hDMH9=$s33QpYweY;OcU4|0#`nCnrzJ$$Trl_ZfUQD1F3&M;P%|Y3YGT3 zz2M}}aHuJ-CxlNEOr2B!0jH=6U98YavGHM0PNWq=RgsfAx`EAy!szGN@jy*n(pRcy zOB{e|YrRt0#A*RF3UQ$Jq%8vsYO_T$D6cC)&mk$L(a{|Lp%~KR8H6B|o}3co6sdoF zB{r9DA8tGY#gGF~)M>$hP)7`cJb!PMp5&702H3BQ;u;%{1s|m zE+k$}GE+&U{iafGi|&nXoWp+5K>s0SO^CPLe;$n2u6ol)eW91%>oOwKpR37Cx0!Qaq=H~ zrMMM2e|5I$hH(R|^}wUd!s@OUsNaAoL)nTWi=mgg&${W@HE2Aq)ROtaxr$IlSjASw zR5?x^_BImN(WiUkta<$Z?LH@+yMigzo&WAP>~(is(q`*Z6%fUo$B-e`pE2w=X?D1M zd2lIpY4w^ash&(^fT^m+=@n)LveL`gHks=Djm)p~-|pu3(Dcu~t+w7IjpsEbn)Y`% zoU@Jdim{!K){AFv6ua4!T7Ua1>sXm1?eM5gqsM0M2dzyv%zgBk)FCO&&nvYC@j3%{ZGKiFDr|(*t$S z`;q2)8+<6d#nd)3StxM#GGJva!VlTkvi0eEwX?vB%8guO?|JB?Y^GCyXwj;VNRitL zm#J=39jDz`9a$Y(x=uQ{I>F?@gXemBrm%xY2+s^&Oy2)E@`6NX5QYYo=p8?Tw;Opn z$@u~L3HlTHm-fdbhxIS>Z|q;^G~8wQ3*;O8GyI78v^jR9Rp+daHlL7var+bZ59mLk zehB&;nxmS#ncGo>Xz6z_Y?wggfvf>#473}FIFSFK6e5Ta&>=i3ysNyed7OD@@;vk8 z^8oV%ADv2(S>cV(7?tYW>f+UbtP89osyniyx4SQW*Q3d%rI)2=rFW%=rI(|(MlX)u zF+DQ9G(8?1L*_Q3)C0VC#W~5N2pJv&rl*s_cPTV)gIPf)?Uos zo4q)D#`ehe(Drrqx$X1pgWHSSliT;%53~<(FK}LHp5Wf#9^pOFJ;S}jX~b{gqw=fb zv*Nqr!{W~3!=5tDZTREx9^<2)qp40$xxw@BgX4?img7aA1IYvA3*;B#C&)L*N61ga z&yeqs8j)Ris`{+@uKKY0vii3AXZli4ag>eqk@cbV>-2N$=jjdC$UWs+tfvs;z&^k} zp}vBBgMEa3+tY?Dhkb~B!qfHr2u;e*%FoO1%MZ&h#&3>aF+c3-Gy)wzZhp{yxVAVy zzRP|eEkq2gKfm42+x`Ahk1f0-YSm}8&;+4)C+ zxQ_%(eB{9V186hwK>~vx6qx*oz%&}sW_YN)s^+ccLNJ=c!OSir+-5n>xv@F2Ika<~ zb8hB5=HTYy=H$+O&H>E@oC};2oEw@WI43w~ICngaTr_l4bX9a#bXRm(bXjy;=rYi4 zqvN9+qa&e1M%P2s)gmgr7@###1Pb;fBEW0c_>ggFD zH+K5{>+7>4pGM7Ec5duE?BML;?Bv;fv;(vQvI}SzXeVelWJl0W(9Y5Bcp7+Y?x^sp z@T~Bz@UZZ*@wQd*bF7*w4jwqXIlLb{KzIQ01M$r=c!GF?c!cpp@eCdh$;->zdOdx!#>kjKKdU_+9=Wf^?+1=V5&Kalalzj+4mYBlGi*H9*|J?^C@oi@)+`Q%5knR=TywoTd@q0XE+^-(D`2fc9T zqH(Bm=h0;|wK-$AQ|mk(X6^Yr$OD-qctPcp9}M#`WXAecWsCDH?8Uk$^RAQO@a;yKf_kr?th9EyevuF4K@s08s=2_i?C zcd*mBMRv}gDH6aP2griV1lPwAXpodJ5+((di0Hx-NfJmAh?^jj00bAH5egwe1VNx= z9JWde#Db>pO-gKTzNP5BRU@IgTWt^|+s6Cm?06pubUc@HC-kE^_6M$a%J6!P-`U-F zr^8gf{@oF0H$`;8?jM8x??`|EtY!oN&gux94Y~jGobwEGIQuzghPJ1(lnp{W12Lex+7BI|KNQGfF&V=6H00fI1-EfoZ6DjW#)XI2#e_5EnYA z@5KDk-*}I~@k{&+K1U%VAke%lXhqcd1oQ7e&yLt?$I6kJUcI zzZ)^^MittWF}^4)U4=Y^4aR;IGTsIBrtdj|p>G>xY7% zIMCgP03dazPEu#f&%y#ax zH`>1pW5iS07X{IeF2k#ngGRsB?r10Rn0W93K-j+{wqaLO}g-D`%iP}{JlalBj-syVAhxpA*( zNsX@LVJj;6Qg#)Un4nVf81+&9jcF@q-Wrmn)H7}#z$wsU(%L2D z;-H>DUka$JuX)sA$*p_3IHkNAl8~he8?JNW+|9zl28K-II!w&WOd1R;&Wk*$g-m-` zCB*hAtzeNKY~B-Qou zEvG1%k9f``E6~PzfvHTX%j3{;++_`zTE%IVO*lE5)#8a(?%^vf*Bff54IG{B8qVCr z@_~tsnsCB%hl=WM!W$3R#+0rixe|5m4x?pof^J52UC{px-N3uVkn=9Jx18P`(6Y=! z2C?A`Jia*`D8$nxzzO>*{ne$dh{s$PVseQ_gw8>K^qa|4Fn@({mRIeyr z%{ezE4?{4QQ zZD%IqB~!5rRt~l@eNcz|@IjniR4~q3IWTp^jx%coO2oc_a-B?g+h*RO#D-Gp;e$2T zjir;cZv9IA;GF{Ggj@H{$umZ~h9O)Tljv?(!>Cmw)K(dIBs|x~s7EfjN$T7s{MJBW zgj|D~$|FfHNPZcsE2zvn=U)4u?zFAH9kq(sS`){c6oPnW^uQo#w;jo z>@J5=P9EVUuON=+>%$#P*iw?79ayk*uU|f#^(x zZ`cLvOWDh%D$#maX(it$sBDvJEOLP)#?kH=1`~~_f7Vz$Y9-%dyY;v_xE8)jySiV~ zuced2v<8~B?BQHUxkYq?V!l>5&WXkQMqJ2JG5a5u(Ct`{iaFE~(1!E_YTIfkDM?qI9^1fokO3ZPiMu^s{Oj>#3 zrbnc-x6X6#5a5Y@(q1!2s7fOU7al%=BBTT|QAE6f{=i3M z;uT!EVuM1r%~5IL%sn!@TxC<3G0vQfdVs0Zj?#^}tX3YY9OysXA}KuNj(Tswr>WRV zlxbPd!ko611 z8NOf}W7beek&&X1HTpwS$GF<~sF+mcL6EL!l~sh9IGMQ~beg8CjG>Ed%Q!NOA%$#L zo~JA^#2iSP9WT9LgM2CsvUfelC%5r83o9id-4XQelYIl?Fmj?)T$KN*-#ZbOJWlVb z#&er|M(z%Xu`uAX$!bIi?^||Xx{B&6`0ZAtb8cdc9P@hRQB&@2o4W40bEsMbm}wuw z$#v+`&Ap^@%9)T&ZMTY@YyHXIplW|3`__-GPTsW^aE0k0vJ=9~W&F8{+5$H1b*YY@BvFbc|Sybd)Ry z@A2`m#|5|a@!VKQekF^GJc7J2m6%=J!Oc>(6Taa}DOUcIHc#nvs! zaizjR7s9+GyeR)Wr87S6wpjM}tY#iuEwIjJ#c#$L@oL0-OIMU<V-Vuj?J|VGSXw=^K@?5m-?Z?RF;Uy# zsbac+^fZ==t*X0JSoUUC?un#G#Cx}0@-Kex!^;?ER_&v7^W5GIrA!r zjoBU7BZ=D+$E1&`OF5FGusZ*i8f)a+(W+DghxCxdJc`wc-&&AU=VW!nn>B@H zZiQqlDJx!($4u*+>)osJsM{_?|BW{X8)8G*`oOX)4_wgT_H1^<$x(Vt`fSS!J&WmqLq0p!Or& zT8E5V6C{)s$#~WPI#1bD!aOt^LslZCIX%M(2Rz^Wi%v{+mSWw2no#D|OCGWzEJag6 zY`fT+d7bj@=15lZlsMPNdBQa+^r*rz_CbvwXT={m2 z!uj}e(b8RA8|vN{>sj0iuDZi9NOs8K9lJ23dB^gSD|re>q{@+b*a?GiBHh5e$f?qn zHbxiR=}&!;m2W}rScV7z4{&xXpWdSPFfI7*C~v>woY+@X)i$hZH2pR}EYFCTD;n;V zXXB!67KdW2!lm}E^_&M?u94)G8I6tB1a}~nayt!AvGwF0c7uO7V_eDkD&#o)@_fCn zK9vvhNJ%kr6n)%JFWSlz(aI z%|+LvvyCfabzhP5s>^c~>xnNHriR2Jv%dXC0*yy#JO@d(BIX;QX>yXHOE zaV>KqTZw9T6$@lW);2w4t=lVIr4$c~nw}2r!`JBLDjkN2PkKYe8oP48AH|C&RTokv zR76XhqrFAEZuy*pJ7145)^(UJ)$d**&t+W7@T&wB6RfjSS#WM1n}R(yN?rJkUY~~ivuo=*Pms$>Kw96WK0D77lbg{goaAgJ0`*VkL?ebr$oP|3O#9 zl5)77m0+J&iv}{gspn z(fD6s4q0I;&@4DIng673fTM;4%*;9rWpaT0T{MIh ztu=~ASlj8O^ulg%S+Ur11ef*C^gz-a-bDcnXAlER3H7aC$Wzc{V>A7b^aEhMmL(jN zkcriz{K3mE3@80S()5;q9A5zT`YIPK0Ob*@2&fTF5iuhtBQzpFjCqNJ9sr@@IpQ#b z1bced()apB9*tOyT#ZPLEQ|n*)Qq%>oE{nC69dPkm!6TI5u=f;k=ujg4GH%$IbTsb z=!EcI{6=Js4gjWc5>L2OK$7B3&;p>J8fZu>?fLBdfG zkl)DQs=Wa^XniYUP+KE_j?oqYpy0t^0iA6^AgT6Ly`ZzR0MhfT7NeVBsqS6$L|FvP zcLCt&(R~2(`t|`nUXmODEA|8(Jbnp&)cjm8jR1&O1q}e_INeKzzf%VJcRwr>06$Pc zgh)C+i@WwnzehULFCgy-<(~k({*hA_0Cqr8w?P_z4FX9F>_di-A!NuIGKLHxL;jFJ zfq10Yks>YtfQAeqL&%VUe}8Ngks7%r<6EhJ^l3>}T&Hpcqt5y(bWKwf>e)}HstJ;A z6|LIhB22lS)w3>F&Vc(Qfr>TOt&~NP<9Z|~nZl&dtYjG8R*_5fwBlhr{Dge%kGxJM zIA8E#9WovC@n2b{+V~pJ&v_j(8TIi`)Ug`MH*-IzX?6_Dm@jfA>RS>pq^ykqJ z#A$8EFcfZ(&pe;%ulD@VJ*5Qpvg7WOAbcPT^o2if;r92iFhcN%pU#B9%p>?bV7CW+ zh@F)DFB425xZ&Awyq0O#8ht9FBcV{Z=GqvJwEqzU@Wdwqd;L;!U%*HV1`o=S`X)_g zo-Z0s`20PgirW7Nax=mH{ZZX&pJkib%VM`}WpL_XBMIm9xYdpZ4f@iogC`RK_{6H5bGvMic?D%;^P1LEl6^VzzS3k zqy>Td!!E)6AFu-Mt;Ojx@B#~@BBIijjnv_J=Cov~M3q$XEFW$CBS<&;!`QHM`S+Ms zT-WZs&RVFe95*HlA;MKRXON>R-QLasSQKjk0n|Leh}W!S8K73a7M>3e*DZyRBt8vf zXN;i_W)!Wg;TlB{|1SnbZzeMc0<5w9Lo@V}(}H{nj8Bi{H7u`|`d|srQna3<6DTbL z9zYm1;GxHX1`mLAA8z7{LlFaR-jr29CU?Can;kHffH>-STlyRZ2uHpa%hAZK74m2= z)b`;v*q#Fh>mGY8<}7|Qw30l9o^x72x{>x1(SNcpzEjtK#wYKcEnR{~05qy2fIps5 z!Uu7^Jkc&vopgahNL-_xX|fr@GD@4%L{ZVDX%=LNM7)-aVoi%*Ma;^D6G&}sh~RUm zL31JQACBF|q5vv3)O!9{ei_1QsdNnNk1UQt;P&N~D&~Mp6xU;%hrkbWN$Zi_mjA4m zlW(fmB9i5hf!+s5TQc1$xNWYJ-aQ+)Zj;HnJ2_?RH0RsSx!r#<-Gn9*p0j`|F zhToOjLNH|-t-b!nfb<~n3Gwv!tNcx6W~IEv6=M5OLvJ87v&sDlf^ixZvEAysc&RNt zh>Dm3hb5L)Aqn|!DnCP-`i1yW#|74XL;pZ;ck^k5ghNYx24nK!Ohz4F+L<%93`6Fs zyQiPUCbc!@@;iV1lfbt`O-|q>hgnvc=g3TBEjaMq8 zUyqkNwrFG&*%`2SYqw(&e|FTGAYUMfAVWO)(8o4OUWiEOpQN)3>~iAE7DAYrPS0?yHC|E|Y1!^2MQa z!fJr3GQNR>r%r8dF3y`~u&=Wp1>d_wf`7HE7qRl3+C`bz5JPtMyL_=}N%xfA%7d}~ zFTIM{++=5!<@~+l*zPdhA1t=|T_`TUgVZI}fkxT)Vl|&R>$Clr2PLZ13yRvM1wPy} z(rc$FGTwffUP7yvF(-O2vK{7s!-Pt%j9J@@G>%KF1+D=b^axXEy93{E8zI$MG8Fcc zeX9coy34)scNc$1Psf(!S`VX~bO^v$3hDb#fLxRmB2?!Ja=J0)d|XnQ?DaHIO(*p& z%}`RIIX}C$y=$#uxZuvpto!SI+#2k&UEM_Fu~Z-VpQ$~mX2pfZw{oM&86P=>rk#pB`KX7c|I(-|)@UdFHvwc_2MI4P-WNI}e75w1cdrQx3J_T( zA~*1oEjvthM)CEy453yca)=Y_1{4$!bG~PrwljxP+yn&@edvVecrN;TlsTegFfugi z*`I)-3_T==gkD1wsYItgA5@0|;$4bPu>Gu+6J=UZkXcT$q2%Z&^s0!dBOPkK*U`;7 zHMGr&X3{}B&D)0mOj*m4c|!q#_Ae+Ye{Vkd<<_M3&(RFUbF?-#TXo3u4PGRlt^1wW zmwI;_?7!3Q-$P0L zHopwN|J?>iy~eDT7f5e@dMT-{qa#%5C0K^3`DiX^-caj zFR1?knf!cCcd2-uFq z80J6~KT>IS!_0BS3L)&0tnh>9A^v+%O1btlEpZ04nOgPGq-qoepa5h5RsbxJ1+xGO zfCAth&@bNmAiQ9@)mgUId&NLrPj@2@Ih!_l$lsJ$R5$t_p+_MLwz=(v@3a7$q22t; zWSeFIIQz`6)K=}NyG1d%LIK_p_Kh7Z&jNPimMB%x_5_k8*#}h&)hbnu4bM$=9aiT1 z&Somw{4E6dd=FLBUFv(F47^iI;x1(e2!WFoUc_5?8k>dN`K7rPRu8}_4R@m18)}0< z%lO7oH-P(@YY~q)(BK>R+FzWFxbx#4aHZ&!_buhkrc6wqK~&!PrG3#2(WxIw9X)h= zZ_?`52X(x`bOm|}Wn*otu7|$uJMQ)r{q{F2@L#oxu7P9OCR+}vY%_4cUyA-fdT4Y8 zA0X=oBNzcdfUT(Y0RjRJH+{wwqhkOEdiN*54vPU{*< z&s}6^v?{`*I{miiphwnrY42LoVq*Q%HOAZ(NlZ?rn4rnfT1gv=M5#-w1t$@#(2@Ev zv^S`azhx#Sk>j1ahHE3870sO~mA(IVU_&L9f0Ix1Ado{e^l#=J52X!2SiiSo^L13VGMC zlLSdEywP?2vr3#{f2mtxt+iX?&!!?JC5cfv;>&nL+!tFkd#E-Bb5vCG4;|hjj^r?L}#qNhWnxh=|lW8R>9%*{-dNmHRwDjPL6>3K5a0el)zAULXO;?8- z+V0yh>F*U&4;#5f6A?`(HTvofN+VhcZ~#!3Zf7L59XP^|t$!KPPU9JLQXi%a_4l2$ zM(|20ckLn+{;z_gKC^}90as;& z`))fAA-uX4D;%~t?|(4L zZ);!Kv6uPf$3qxjMp2`G;jFO5RrIH zx~E*szr_9vWY0ClqCZ{oVCk8RMN=N}?QnKU)$xRJ%Pq6km>9wZnqb z3oc~z<@Qkv?_(`_W*$Aup?uaeDOVfyb;Vti23~vBnie46MW=b-y8F5?_Y~2k0K)b4 zD9q9Q-`zR8jrU2xb}eyE>&2!709{T5y@sFiiIR^ZNM6s!A0dZMH))A)#PiQ^bpalX z<}`3Swd7_CFbmLF$0P|vGm~2gb0tdw z2sPaUXBo^mY&q|@XJR?=f2rLXU1&dzf7|nC+)5r&DA^rx>bG%`598EUQJbnxs+jWJ zcFMQejfD>L{{xDEn)}kJLWzGvdaL#HT<^m)ZVl|8Ah<&(W)oCzZ)=TubTU1 zA7BHe;>Z*I;hse5L3Bg}tI+Z_HBjURN^57fVJVV&{tX7O!#d>X?S7{{XeiBXU-QPu z^3Fl=g*bLysM^qu8FTT@^eJx`SewF6xlu9!5zQe zcZ@^kkI}~d=eD;6Jv(83pcXHNDAk|yOH$Z~eh6Fs ztM(^N)>a{CR+v4uZ{AmM@klN`modt;Fa-0T|l>7;(xTV>3fEt-~V_dFu9 zxky#_!|lepq|*igi2^Y4+jU<>=;ADewk`UI$eK43Bui6;OD;N6K`&m~my8e5()swB z0{Kyyv|VFQQrDlKkhL_)5s@wx(j+Lu`MGjEz}0NF2XVu8KH|1WZP(;0s+KjPgW#epJy z+R30E%0R4F*PQ%#?VIn0YU^Di#|6&a^x=vjwlc0t-+NiDmP;MT_TH|I5i$%>arzWv z{MrKaS9H5{hJ49>0CUoe5vm7X{wZ0o*)AlF{6wpYI9-Boz=iDG};}AiwCTJ zhkp#(#q$vWIlkZzHmsQ#F8;@~&+mW*l1X|P2%j)rRJTI=S}6c^xJUoknkKp}GI8zP zWjGX9X=Jqj&QHjb-~NfTgP)}iRoT`Z^qx8!aMw>s0u*d=E_x?GKD7k>*ln(dY?_<^ zY)R5YsGK3dScv^d?v~fjD=M;75NF=oUh5U!Ya!OYzaYCsos>syCa{|mcP?-O>7qb- zy@#qr$-WD*)gvh=a7tU*@m?2_sQlKpDAIe)1b+xM^_z}y4=V|uEPw^i!#9k(j`;OA z9gh5t_Fao>H^a0jyjEuprWN$B^o~Bire1ZAweIX4&C#-YkZJ=9Vkf(G{lq8Be(Ehk z(O;V3T97qrrEBJk&3;`X#8@$D?IrbWNQ9d#>Y=T z=A822nWPSr+ihui67f zE#peXm3QGR!VRN*$@g@=N<58%S?ROAcE<--u?=)X3ZpvBWB!6 zOGRLeHZBfhXea?~EhLnRW?pN$-b=|i%cG@{tZfX%`M8 z4HP205eP!j81V}C?X<=u{?WB9`QdwO{mW^;AFxydmfTmabmt*8@%|+f1-K30eCM1s zk`Mc|2E)52;*2&W?18`mjHcFLv`{Ca`k&anH~XU) zyce+~Q`&N!q3_ma-Rkxwt$v5LDchFNTDLtDI0s$We69Ct?7@<_%awLNEHM7*0qld8 zHa6QYS+bt5T|em1b=a}zXu?NlxScz056#1QxiGHw(^n4qo8>aTj@4Z2c%fwYnViHK z4QRJFyN>4vskQjooHb^&Se%7_fXnzfePfupmj{_#_hZfPUF%jZ7BUI1E#0CxM z?xqP1TrZN0jHH8~>ukdX?NS9LPEl5oQ=1T!{H7OOtIZIi5#q|fOy*Dgk zS3014&Y)k+TyNUo{Ej!MYPgFKhc*0-JOQX%Q8>MNv!OmJY;9FPlceHuIjacA(8dr` zXyY>e)v8Wig?IR|e76cKusjonQle=e5Peb=S z@uW|AJQ#+YsM7xbXpSqiC+Iw}+Y1=3x~*;=dJ}Phw%}B?|6OBBthX__?;HjIiCe03 zD>{}O;&4=Q&p6%~C!hHA{>#dXPmObdv|ZH|3I_zbAGG+1mo~)A|0OaoPwZD|F=Xr~ zHw5#!{#N(h-u`DzeD5L_v;4Lia0Ka|7ITzL$J)wCI1WYrNg} zE?+0iK)T|7-6`@A&&InJ|KSUqSNcbORm|z#li|KprSf4_7k>0x%dBFMFTLZr!$H_e zsKz(;iF-qj_>TOMsl#2Ey-Ka9>9wf-yp%M7lr=h{<24;h2pKtsDAMjL3om=R7JhL+7IRyGL99hp_`p!1(Z=W+Xc{mMj83DUh<>$@udi{WuMfV+PKu}F%1E|e2lFN_ zg%Q3@B`I%91&d#0br4^l8v;UnZN83hA<>3b@Kf3&o~k&2`0(}n{_#C4Zl>SC=Z*Wv zA#Q){5GoHoTYgd7DC4jR#J{btZ2Wb|oo!>?od_THvws|GCfiwOHQwwdn-42qWZ)pV z6V?**iHBTVv&op<*j591TMMDIP0oQ|D!D0i5h{u%s_9XMK08_Y*=F=Z_?}TX*5f^% z+5Nu_e(;oS%aM~z#34ur1zWQn%ttH}%yrDg9MRKkG6O(B7)>TZjj6@Eii$(!Yzr`m z_Gg>-b^*-0wcFHo08T%q`LDih*WFAM)4qfi>SvssTP>~R!EC#jmXp?p4J?F+bPQdG-@vV{aUCe~Hm#|@ny6#;I;>6C-Ng|Dcq z^m1DZBEe_%H5*^uo|+ro>l=x_`fZW5)Jgo$=5XybA83}h4Tq};p5hnx()(1j+UKh* zs(2|GAF9JOWWaEYNP3GNJL%RZlZvB{<(3-~&QXI}HjAB+&#Z@!wtBjf!zmPM-f%%=1R=24L>rJc zFRhN?JrZJH5G?A6K-iCiVZTs4d%FMXC!oDIa`1&O*MFi$i}Tj{Q~ZAPuF@kqBys^R zdusn7pRP@TM`JLBpu8oMM5u0Y&~u(BGM?$q@2}dLk#rNDiBF%=!1_zn^%%r+=Xg(g zerSlT6r5o?*1DgR$k%J>PjB}ckN(HM2PATcYMf*;1akML9cH+nnMN6HK#s3B?_ZuV z)}$jq)HC?HrQl;N-$c*?dwOu1W;+J_6>b=+kYR>mrfW}IDP+bnthpn6*ZFX%)0 zO~VbAf%|vDSpZ7)u#Y!BgI{ETMB_xRwYVYgZZX0Gb(@CQR3*J2Fo*!st~jP!H)uz{ z`X_Y^4u|!>iXu7R9#wXElKHC0*6-LtVr%BwE|bem8#I=yugm{jOJ7hkZJT8uj6XS8 zKMT&^1%r5DcihtT*lWy@t%_V%>FC8qmwCdo8*c83d0sad_Q%0bX8LSB$mfGgJL;t| zRG;DX`AQtiXRchLf`H9Dxq`gw!loW6^_z+=kzS=obawh%Bq;`9?ffUu(m-iwx?(qC z(AW3RCpB7J-|(Dv#8@+$2*~Onz9Woj#hQ6a+w$9O9zgnx*j)34Ul|Ugw6LSy+waFl zV7!=TM5WFiay%p0-knWD85yjwmC!B5v`6kK8#ELd@ZJ&Xr=X$6oU58Ap0HF$dNSrCtKR&$Bt-^8|dm2!-Et%eL;CWtsTv zJIckgCr;aHoaY6W8n!dw{@R%E3!4+-*YQW5FY@mRg{O%%VLDEX_)X}`R=pTkV0=Dz z=k;dRZ>I&bh?UAWxa3wp*?5Kk>|N8|Gqtl!E`-kkXZs9Ck=WSf$xi|=G8#bWkx`FP zLHr9{Hbz<`W^m3FJO5G@H4Iff{nuC`w;2-h=TmhrP8Z5;uX9@3LTDb=zdQw|0wPh2 zGdX~NhOfM>x5$l%2+B9RObKqYP3fbkYJxAH*3s=v6)L6R4n@9~_VMmili%*M8rEXV z9wLW|DXe7k3mT1`DUD_@J4)IIf7jVzpF(y=wzx3O6|)0cna_~}TW3sLD!;mrk@RqB zqg3T(bmDQX-7l=b1%h!y;gG>WN$tJnFL`=p8oH3oamGI%V=iLEBZ2J4hpZBp3Z>6( zT)+qCfuxDtU5tIW2T-rmPiwpaKJW{M9T)@PuK2 zO&bZGSZW(_V%RosVv#+6Yn1cbv0?W+hPH*x5Nq*15Mk?4v5gn(*15|_JiY7B5?{>%S%v zn^E~|LeLacmf+9bgAs-%iQXLLip1Z>^CjU*+f7)bQnYECp(G5(ZCpGR2;cZ(Lrv;t zRxMoIk%Wa*ZiJyv@MUz>UbNj~2o*MYH+9xV(*wO=JOwhexqa}v>F`Hs!0AWIMvB?e ztJU85@ZQL}FlsK}E&`x=E<`du%sf*z(sKx*WSE%G z#_gVqVKNpwL0k*xMBlhAjGO}Ad z)F?AZ?AGw^FK>!ovoyL>4DY@HQ7)AK`ZHx=)WOh9vY zD-FcoY`yB|Gr0PD>CgnU&NE>_3w!vCci#PSI;jVC4R*8U6)Yp@?`Nvq-d5J#5n7LL zL%U)AXZ>+<+|#_Yp*=@M=e=|#U|0*)+tKZ6k}>mXMg1p-53{9;_R%>VvYws5KB@%b z&*fjNSP_kgPxu|(gp(g=IgnC=pq0ds-8*0HrD=%)L-*~*rN6LHeoM1MNIBMM(Yxvy zGt=BZNiEyTbw()R7<NaFoS?+VFsHMG=TzghE z(>*bBqlvJiV1XX5T&WhN9j@hjN53Wf5H_po`0ns#@r}sK2AAn!hd4Gyk zq&;XlD1`X*&@4libY`y&1lgh} zBtswJ+~Cju;{2sq60rWWv;IzFL1YGju~jjbnGU6xKqneC7)|!yQdJ~hjpY81^6bi- z`lgM&V0-58qcFziOQ#n5T^3>kp%@a#5>vIZO9{sJv+lP`)sT;M$D`jE$^}?W(c6=0 zo;D+@0<|;zRBkGQ34xn_U_StD7<(ZWOlu#%dzV947JD4zON9jXGLlUAL&>5lDWXk{ zq)i=eDBaI`%taCCv0rFR%kOBH-_W}c$Zbg|t=1;GXeoLWDl=R_f3`-r(ZdaLQ|TtA z3O1<(VtX5YP%%hT88mqpRfO{E&{W)`LKSjRC97aV$B&&6QwThgGxoMzznO3uh4ltm z*=%(=H&Jc8|H7e%O9q!;gLA#LMWKF4?{NeB4RX9a!IkWe-uh&jl2tE~1zGZ<7*Bg^ z#NF$+Oy?U^I{Lv1?K-H@2krV2rPIkgWFHYO&jxe#dN#kBpJ^Lp_m}y7 zOPxkIY}}3fd7eBOp*@{?#HqPGj{RRi{ew|(jxjw?@V`@E5%Sr8w1>ryIX_}4v=%?& zVSY1bd~JxS!!I1>bI;V*7%KZdJ3(@RWlbWs0a1}UPj)#(YlvokL5}he*U=A z@o{5o#sq~mgY@pqm<71b7`Al&&LV`~chp=CnD3tS8GY#pGyyc2n!q0;QtoFu^aL!vhwhrE-&3m$H2<1XfS+i;~D1~bV4&~8AT zdGU_7PDJ;CE`H0t2P5Y%^UxWP2L;uO&cByYg6DFjhjte`ZTtS;rryB+)+&O4M&vn{ z%+CQ!6R4$oSeq%*b>r9nACH^*Rh`GJ=;hrR-G)-8p0LCD-}lD#V2^IX!j;K3_v6!kmAidZ9iM7J%cnM(s={&A2>MG(Sa+1WFS#s24e#&SGuN zjVND%I=)z&MpwTp0C1r2Kd~)6jeI8Y|u53;YQ`n-wP z0B&G&0G#r*A?QGBznz^+_m@he-V2%~9LpZos@!|7IqAdUa(mi>x+#f5$`Jz1{`|Cs z)W4tOF%;0`UEa#eux~3Se1jP_Lvvx)uxZ|H!f)hnUpGg+x01~X>=>Mm$g11iI&EJ= zGKA5_M8D6^h0_tfbJB5v$u*2)(R7)jOw`uDzEhw6s<)!1#q7{jci)Kd<0#0fjzB0; z&&15EkDbjp=b3?sPQCY=%JVDn_cq_jzb)@u57)@1 z{vl>-tuD8J(M>=_`e^KFC}SC2fhmiJefr)+xOhPp676EzDvdupG^ut?ZF&f#st-c*w`T(MoU!&l$Gk z^Pwqy!RM<9(Eapnf5%p`%Zn1xQ}+G6XBqKbQB%&nf z!(?^4`V)GSuG(ld-tX)+6-y6ohI*d)j}w_|x@q)-#}vlK@WjzUP4n}z*G}$;+hG(< z^yu00smn>BW<^6VepL2IMj~_F8k6Lkzh=YSy;3KqM>Q`kW9Sj2(eU^uPFk~C18$-~ zx_=OC^3-XNi~_$eQprJ0BipIf-?Q7Oi%V+u-tu?e?b&MSj?QnTQM;s0MSH-wwLzzP ztoDGqn|th(v$E277ZJ!nzKRBS(bExecJbSYIEe5#}F0K0@+V!Ep&dDt-R zY3RdfN8ODibfOtls>aI_cj8n+^K_RQk$i)v@RY)XfH;_d0-weJXk7ST$fR=xIrYd& zGRjS={xsYyICg??47)aOmQQW}rzBKZmSkbW_M|%|{IzUzj(k+zwWgzp^12fuKCZebb)(0h(+4v z%iUV+3h0xj1+Z$aG3#w6b|>bqxvhk#^L`ts>95S3(52<6xL~S=w9iwq@}5e)kO#AWSzNR6#G&bhm@(hKgJke z?Y!-04j7P(nahJ}KTn=4ZJ!Z;fO&e)uw|{!ocgRJc%&!uQj&KR=F%P_g0m*?I77Mm z=pWkZ#B-$_PZ==KppOWCbivIFx4pG$>(tifZeOp{Q#!(*`1MFHh#DtUoYAwd4279+ zGd(2~u-jxbzPNPcZ<|?He^LOpE*3}JmuXK5^cBzpCL28)|4-J`4t?$rW7NuC zt4OKtbG=LS{ncE4bQ|kO@d>wlr!_^*f7UnSOFX+y)?CxGvV2xfc>7=(_K(OZgh!z6 zdV}Fo3zpme=`xUX;dj4*h8tCUw(3HMsi!u)!+$P2@6D(9fE33p_no5Cgyp3KKK|d} zbmbs6eroBFUWi5Klid_T}wG)YJ#fj26b0^DGOIb0dJ9eGd#^ zy!_zvm!5SD432qAT-0$YK?*Pc#MDMGnC&`cqJF{&(kOsM2&OL(w?qgbb5<`X zfO|X{*?F)bWW?&W?oFr1}qM;{&4-Za}afGLXrTqb3aSv@)0_ zffJb@=^4kb#KbLFu)k{!kV6%@=u$372Ywm?Y*^FiFL86tfvjphK-$6s%hwSS6flhB zFwK4eM%HU(2CT7n4bb`DzyQi;3GlZAg#IC&j7Jfcqc6^H{*gMMflqVVh=qb0XXexgiGH7SkohN`93puXZ-{UNll z<6(Xa&d6z$WC+GTz()*_$cF$hM8;W(+zbGKh79aOLk8_3LxzwcWXKsZh72J?{E*17 zGGuBWCkY-D>goVFlz|22Lk5r`f5@DlM5dvz&2s4^tegM_Y)f0g>B9Cs2`c^od+9`k z_qPUJ{gSlh0RkkD#P1;k2JZ4hu`AP!mr6q{#!Q(Yy)W2kxs^KVn?|w3kf1eN81~KG3<+u;ip} z#T~XAu)i^bY$qtqfVu_^Jw_+K;Qt;G=yju$8Ly7lTRTMHOE9Q7GkX^b2BOt{tDt=~ zwOKxJ9#sFmFF0~9=kGoP&0$`$W&Q5}4Mb(;!>-1m|E&bb;Bs9u5WO@mw;sDroW&Zk z(}NC-ahdjsr)oXVMrdnxL;np9rz{_I7tH#~rY57$2xRxz$agbSNl&)KH#ElOwuaGo ziVoH-NKi;w-jW0ENCR9;nI!mF@t}&+OZ08a&52o*J%mQ+a_hqA}}b z==E*yCd8r)gvg}YReS5?;B_yf<7+$bn^kXt8==z*~`) zdI{_8*d_5REiFsngh+_AW=jkI!4GgD9T?dD%09?ya#(}o8wX#j)BnXWK8O?hW?9;S zw0bx&AMYn7s^3OyQ3$R8J??W7ObuRQ)OmnZlxcQ~1M6Bu1$mOwC?=<{S>3U&P^czr zJS*n7l!bo?S>prvRZ3It5NW;)<-T--50hm8h=h%&%22m^}&O9(v7 z3OkjFHH6$<1j08I5f$tWAQ55338^Ssw1QOt3cy0JqEXmE_S$${p=t!W0}c*!{+b); zMWhG=NG&o%B!~te0Pq4xa}xoIBljB!vmvyviLheA1w}Rbw)}K9pH~4XOlT<>M$Ld^ z-jFPKVJ<+HN>0lGss9o%3VKZV5w*Z7h8OJUTw*!_mkAJ{tHh#hcV_U$34_BG`-BlT zZ5*f(At{ox@3Q?PlTB9%S+QCa#Ob*7K?Yv~h3uK-UX9jnwh-7zp?hLqVv-<6e^A$9 z%rx4dK7xeC-bzBGxLa2qy)nXBW2sbo-E;a1Ch4^~_a*VGmrU@=_ESV5>aHb3vbDi0 z5cDps)Jl}-*~aT6Zsur;5+Z`r)~7;!RwJSSll2=%K}`V%sIc@|m|b*SLrQE3l~pzr=`mOvcBZcuX)rN?jA7+okP&IJNdBTM+Ne9FBSP5{y_ z=SARjz?#F@c@NTYy;7(@oMQ`m|1?u&@OTWX`bez|PgT-0;S!1CS*o zLb6b2Va6}?_hC0xAisgt)hQzU>kM!sxP9-TAySDeQ3C0G#S;qcg{NmHvPMG!y|h+` zAz2`G)QvPkgq}Y3@Bv6&Xpd$4;ig|%k{M{#@lMVOHAafv(X~!tLX1w(Y>-HT*kF&b zKBe!>YzWhM)&ITC4#RF@gh14Q68d4xO)^67!4F^bfoFSeNZ4R(e)TgNp_uvph=wv2 z4sjinL84~N+YU^o@s9IYM7#%JIY7PvAr{uC5!+Pw(koI=ioMf2u3=O3@^-w8e{KjK zu3e&Z5?dnhM5oSr*}<%?fT98@DS*>O^z2e#Uf8pi#GIYsV{O3`x=zTznNBAYu5E1T z+_11zB&ZaD00;n!2ILsvaeM`&f7t6tYAPV>5Xkt`u0y7&6p39;T~nvQtJ}IT`XXB3 zRd#`Fe>@0zI0^qYal-KSIyS7d^nqnJn0?lhW!*pBm_{Zg z`^Y4CVTQz}fVjXx9BOVKVHLymz5-g-zL(L~+(N;qZDnihZKto~b_Hj&LV?&D# zAGsMw(S?_%^ZpA|OsV!wxzJr7tCIG|-H)FP-|-eY+@R?mXl#Oj^c^E02{RFrjrjwB zc;iI*>kr@UA9*|~a<|QU(S18!d2l}UyrSOwUd8fb&x7pO^1cQ?kG!wMdo_6y)gE77 z2l4us@`T>LJf6IU=#QHBh`jN5c<(auE$VJQ)eryQ;i_U6rXQt>(<-)5T+UDeu;6|o zmSBI=9`9PKlSg31GGt#K`~OuY5{$jz{IKBE7@@3GB2f$(Lx#H=3r0nf^GyUB9wROh z3Y}<3<~PY>D!dFCe}?WekHX1A7Ptr^2TqsG_|h46#FoKQAM$h=j6t^F}Ki z-#8a0QYd5H5RJqT37^OinuJgcV+Ufw^Z@{L5<-`)gRL5xOBEF)NVMlU)4?Nw;?bS4 zq$gJSgmxrzPtJvU6Fz(nTM{sS1_||#C0chMIuprKnd6+3v^rO}+Uc=u}vO>im_?}N|?W|W6^WN8TD@Lm!*`*ZwM`4n;!t(B!rv&J^F z2SEsqL|Y=1mmF}ilbAEf8;ro(L`~{{Ngd$AI+9iGQ;Osr!z)P`uz(xO9Mhy$lH<|u z{~r{I1(;}s0KGFX(<`+SCnh$Y8yL{HaRa4*%*6`b6|p?2)I7W;Ch%-drs@20pd-f3 zpp#O#oOwEdKUnezfWF))Jl)!KX3=D9Lev2C^b8~b(9QJS{3QW^v%8v?$}E}(nyAVw zJ3$j5jRBnB5cmOA6vj0dsJbqNHC?&A2_T_Pp9J)f!~oRjVJIgLrkRg3>hmy8+MnoY z)d9)O0#uwACWI3speHvEE;n4!(U^H=WAgk$J|pSo{stZwGfyWg0$VL$b%6Y3+9MJE zX7HVe9NQ~FB2j@J&2P4nz@?Cvs<sO9WrVe(8kY ztVJMwfz;LqbAI&(prFv6WUM0EzL35l(7Bw@nU%WMPL%tJEL8vq;n&U9q3`rAcLw$5OT zghTU*G~!ZGQgmQv0;fmx2@3cEH~_brueBh9UPR3qJL@_#m<6@Z*H@akuU>0ltHLYe_2!!M%==8+$az=V)Z_pt>_TUuG$H_i z#P&fyy60rQhwX}vC&?&Q`)R07G7O%BMxuwFa=R zU;pN}<$KLL{O!!wra<;?c@?;ju`REuJnVPp*=7rBb_Wz5KplOZW6)Q}3H`31GSk zQP_DF%B9=HB?C^lHmO|Nc~^G#28#+GcEh|=iyG98MkMy6NzR)Z;6`*V%OkU$g8@vp z*sSc4A-H<9DSwG(>R~-r6U*Ikuq_^>xD;HP5suu3zN>TRsiM?a%?uVLp6Z<{r0%Kl zxo@7bFF*pW?DktOO$B6obV=VBJ0{&kbv2F=Hd0FMq1^n5FD9Us!=v9^@ZdYg3j6p* zxWP=E;!M>$m~)h6TW|Sg0~ui(F_p-QfnK_O>{7H7ac|;?jBw98a5wxD|0={-c-|$p zS!*MotL{+z^Ql%0XlG22R${IiYZjn#=;BShoN&f)%sp@6x)y!ix(InNmRVCCVn~NA z@jDWgw7rY)GtuuVN(LnH-iAqcA#dAGYB$vBdrB~TM!PJTZ39Wk31~bNUQ{9NIN)vS z`370Hc<(wKRTR2FF#DZioRimHbTO+CsuUB2vUtWQJ1V(YE(5~&x~GiB?9BAY^n?9L z{|e)G_or!Tourck>_S#G4;66Q6jvK_9cpqGgU6yZ8K^AYU37KF$=cM`sJV`$xvW(Z zGDAO4prMj()vM8Vq--P1(kQL@i65k-^vkVNVR)f(T!~$Tg^LX4H!#O&Wgx8^`0cwX zi!88_XTv73*+{(oH)b>c?~L^n>QzeBJ!$Z`R@-4FuNPvTL{MJgui~gyn(egp=*J4w zf*r#bD&lMOASXwrUJ6EqhaJ$LweQdBg*Wi8Y6#++=4=Yn?AhN=u5MjN8R=}}qRTml#|?5;_9qq977UaY&3aLR0Z_bRVE7(@-wimb8fM4NqQ zGB-k#a>&qSj^;mq8%X0uD6zKWZqCg6t!{h7z%5t2dJ3hh#*rf6kd-D5K=VLLaM zlz`*Yw&|-awQt;{{gIaCyK}A|>QuaJ!+f=a?nJ0_m8@_(_uFC%E|nZf)sdWJGQGI` zJZC7l6kCBdnUp85<8*gU0BScz!`NyiOBLF<5h0Trr!BvXS(^JPo>Y^j;Wu355>_#z z&zM!_C?*b>k}bFCNf`5ENt-+5rGKC+>0k-5J(5blHyk>$|Nm&z(bc+&Y*}2~_T- zGPvUCo?S2J@T^LPmhc53zZEr5psu6{nU-ZiGJdMJFx%cTnW*m zk|TR%6VLZNbsRTVpC$3~1!{_=d0aqs3**npq*KkD1?#vAH_n(t?8@S3R3GA)i=t&b zN-aQ*R$knX-iEGsc^HI9WjZ$OP^};8I0Uh$pwvQ;NRM_s;<+Uu$R^Dr2-!YqYJ5^U zVlg&2*%pT0$vX|K6LTSHOi4{fwveoM|Iz)=%+!@E97R_}l;Sz96dlg8q)~_GXose! zsOBU?Cg(?|GRISMhtWo-VyMp0P7k76AR1}JVcyi8SyNYB>)2vu(34ZYjl6tC=<>9fV;OTr_%RuRnz{zyo7FY@Q9-N!Ptkv$W# z_DG!CnUxpi@2p2E9F1t`Zfc$FXOGvp4IqM!Svrl+?z@SzfEb%hXYg>?|IvJFWe5%Jp84*CrnI}x=fWi89hHfuiN-hYI=y*;}e6U zXr^qAdl{jw@&xY!4!plZ=rZ$0vMHkwpynRyb|_#Q_J@NiN0E5GWe4j~UP$RgnW1i6 zQCkW#wlOoGLbWuT-1bu~FguqQrkj_G(nd}NYfFovEJT{{R>P8$bDoXvk;gS%$dM0) z3krxTu~layeAIC9kl6|Zw4cDhGo zo1454J*tU$tP#mWh0%Tw95rS)3Y4AJtBAVUyfw8r$Tyf2Z!c&Tiy(Zy!NTs%F_z8N zA-canSY7q*$>V|y6U{)TK3Ey^!OP`lBz5(EKD6y<_^3g@+;h-V9{Qg4(y+vhlXV+H zC;}i)FK3v9>o;GEv(f*I;iQkXiw*$zJ1fn-3)&W6 zIZQiisX`w!9=cF$SI|cC1L6XK4)_Pe1A+n3IQM4o^|?-b9MKU+al}GDjyT{a5l8yO z;)sqowkPM!!~;jj#1Rqjr`fQ<X1_2~S1md;$CiDYotOS9mfUAEZ37v^1De#t_a z@2MudW$(?sG%-pRI_)v3Cxzz9{KxHfhh&pfxR3<8EiT$gknmH)`C9gMD(*ScM4|C3 z4cqtns5)(-oL2oo;R?S$cu`$+`q0V6&!M1)ZXbG4?+&0XYS!s%CQGw(dFme9jVF*~ zYeTM7CpC(D=FH68#aiT9n)V*o?p>Rx+FD?&23}G_PoT7=+mQsvTBS{s<}i`i40XjC zi;Aj!Te9nCd(6~=eV5UlcX3CWtpr)XT%+Gr+JPKp?p=rZ(&jaAQxi3YnnVZJw^=Dd z`ZxQ2Pqw9$H|#ZwdwR~wtSFMH`iKn!V~%gc8n#C}o;|?%e$r@^C81h`Ol*&7r7OUx ztKiJL(^9xfH(QE^B~6ZTZzqrCC~1~kiO}6d9B;9;#gN@LSjr8Ok?ZhXo5q`7SWm~L z+@=n)@)X9~P~77c3<<>E1=A?%k7B|v_7Ec&0#fWS=ewk6;`F5Ht%jsaK z9A^!p4=*rnE5b_fYYS=&YZKS4xN{ClOjMC-waYt=9)hK)tuCg>tB|!C-$uA%?$^Ft zfDd1^GwYpbpSnSXc;GYkn-yHOjq=)Z$T(uvz?~;CCi05&PSnKL6J5*Fs?GM*YDg&U zkj7baUsXo0d?>07Tic6H=-FuKe02pye@{!IU+21C1uNaObY(%vx_r2wjbUAS;W}kB>z?(yxn^MQ+@An>UL#Y7TCVxj zM})Q4jv(MmF|5g)Bmy0=3K1<=cl*MI``;~z4$+Xqne^zIf~?nQ|Wa!M2VG_;vK7&!gnV~w0(hdC&*!^DInI6 zt0)WWdtc?L0G5}RParG7pca;hj8Nm7BvH%@XDli~FED&Lzt7oQHGBmIVCN!dbb%Z; z&%OW$fULHG+gGgD$bz8pOi=QXe7p-jAWN6C&(0hZ#-VcD@A>}gMBR{Xn-U9iQ$*te z1ycp|O-juZu={5}PT!QxpHTgDH2yO_B5M4BHUgSEqXf971@vI{WcjTPotc!4U8Yc% zdKc`H8-e}*0{tH}POH>Sb~cMsiG)*}aWLXy@5yRuD8Q!C7?2!%y@a!}SdB~I1D7%m4GM#FcSt73g$R~T0nQfAO;x`VF-c80w@Pq zc!D4bz$pT&3&t*Jy?_D(G#*Eo1+}^(9fD;&SOt(2f-Vhc2edFi7zS)6q;VAG0;|x) zLtN-+P_cQwIwkM1?30JVAqh0j%TO*2P3ngBM&e!1IbC)DR`ln3D%_L`%yz+%@T@jK53n@-7ZZchpm9UV*)bh8~>v=gk1md6?OPWEA z5-o5ZpOZuC>{$dutSIN})*<)sNVij!G7rhE?@=C%Gqf*x1W>jdS6LH^*bT6_WocDu z=a3K%+oBW1Kz>0uLaj%syNnbY&Qx8g6u@#|{h6_4kPe!&NM8-3w;wsHrlr;7oi@#G zFOi^PE^()T&%wmQL`UyU&QMjyy?foc&^!y;LH1nvV`(ciaCcZf*C+_< z1b@(ayM(IDJDS%|eG>B=#!NK3Kps(d?Kgw1=DDbXM(K!*8?-MCAoIE?w&}dDCi{C0t>8~aDVKrq?XU~DX?S@M8U$)^0346fZgis^ z2Aa_W%L}zmDOD8%4+M$6I|qYkFTwCyU7^Fj=gO5uF+A5aBte4g>L`ql zy#kL0pmXCEn=d?Y5UD@aJF7|r?VyjbJs*N)sLRu)T2>3miQNozq6g1qmM%^r(#gjz z1=@fEi8?m@_l;W6ZIJ95we~G;H&oR~CFn5M=GR|L)YHp|a52nqESS&`%v%ma2^lEQHP=bJpGf#x!lIt{s_OYnqt%a1xPr!ejND5uZ}k#IBxqD2gcQ4m^$ zi#QQTQFoFS(jr=fc-gLzun0ztl(m02D%6IA;9~mNRe4HRIh7bS_0<2sH;za<%@`7s z(UGVnjIH*`FOhZ0_bp|1JpxZl!-ZTu zvqiWBFk3@G_&Jbbs`4^W7lau4WntbF%}`>SwKMMwa@v2D6RG=$Ysq&A4ftqwKwwy( zKMYmIOsPV1fpMuqa#0_xQ!jBfU*BsT>&h%WoUn34ukTH_Zyj6lEjt+|?5TWnZbCx; z(liLyArhI@oIRwNPM52xLyliuwd+zi%4YN2l%449lDdziMgjvpv}DxIDG`m)8pi&3 zI=6h*!72*SN$NN^Hq;5<*$ipAJ_r|$N>`Ecp`QJ3QY%k%q^$jxn=eVLQH{z5+TyE) zk`~tSr*G5HcCE>TKcA+MYG`?Wwj@bRMewdO&>t2f1n*0PJ1lGzbqcvlaz_pgG&Hl& zjY2*NFhnLa9fWq4=txqHj`xlFF3k^yHeq<+?*E8hthj2Juh#W`Q;P+2Ih0o?$)^6S z$`Z8`K_^Gq9b|QU*Xc=tuw-fd|7Zd0LS2N8B+$Z;9sZ|)Hd1C1Gie%LOIn)ga)ae4 z-ck2xAwj}LNO{!~_(J?N3SNch04*KqlB z6G3E2tCx*AD5<7PVVxb-GDCUUY?uDHOYdmj7vy2Uh>)8Qf+Yluxzj-jgGLZN2^X=8 z^9e6N923}M&oNB_@L?cc-=z<_(;b10Kyir|LW^!R0euLgd7!aEyQJ400-2H@&4((y zbRiiueg|5~in&9DDBW6=A2p@_?Q5Od@4NaG^M-G|+&t=kUwj4ycOjqB&i-N&phYnLFuc+2v< zt2ZUz^2x27`|{;}_^%HPf-m90jyVfw!-hHHPOKLz{>|mvafjQ_VHs(|w>Ld33<7MY zdzHd+_n@i?(#q%BEVm6Vae|pLO{i29W}Gu8+o|FX#Qm-ZfFK9lmh8jdNl2DT$^Ia2 z`F>%>kfVHGU!(M&URZumBMCIk#pNH_n9$SnSTZ@V#&?)P^8%}uAfDpj4Z+8}M|>`! zv$tIbVVz+!Il&S9fRkWN%peEtp#3*IEPzLZHpxQO{9d(zuY_5wT*FHh1O02K4N9As z_r)qo%Il_CxjJEZr%qq zToB^w+R|pjK=u|j$`v9zyRxeO&0-N;O#pjY0oi&IyD2ydXSA16rY7a1l7RrnYe=oR z*8l%(g*%4jlaZ&i!T?A=XknuL#JMYoe%h^3YVIOf{Q4*j2>C86OhE=jAgow5_C=an zdhhj3uxoH;`3A=HC;i0ktsUSFtVSv6^vhA?JiXw1n~BF%uZ0p&`_gUOUN z1>eza>h{uV^lU z?vAySpRz$f9kDf?v_q^_O=Nl~bnh!XjpDZ|lOgJyz4o%hZ-lua0=UHtV@iQFom*DT zftg*VNLgn&4KARI0ADBYSc1?40Sh9KhQI>@3>;W7G0b7WG2sxHfnNg32J|ve-U46? zKrMo^3(6}Ht-y?dfE7Vig1!o(DS)NGkb)ozffxe033wOKyubhg09g(2kOE*P0#7Aq zJ%F$P2m~--{l*yFD9a!!0iF^_MWBX(-4~4U17imeJb_>d0G0;yga8eL3?@)MpcX+@ z0z3tHP=HMt4ucB36hJJ10R|YsV;I9wE)8KY!f}Y|+5V_m` z`2c{~nu74~{FcS<@^VYyi!1qRahmaIS?Vg`LjD%~iuZP3W>-8LpSdzfGyz{S_o>}x>bCWq7UE(p6atOiFg%?MaH1bD^nbCT3hQN2iJB1d}b zI1%>{CTs_43$bGUB#r&u9|b+Zje_5vi+xPPr0_!oSNn9~c9&b%cyIOu z>rK6{BYBc+p)lOg!JwyT-}U|t_j~NEoS8*iK)NzNOGg6V{%9SQvuGu+T_s|c+hzAA}ct}1)5 zry=W%Y}#q(gQjUft04t?2FG(%9dn7POoAjLTa_k<_tEuc9h?I1dTtt)-4}a&3L?sx z4S22R%~%Ao^{WTa?uk9e9-*{_4+&=(07vow@y;V;c$Q1#@k+yO=p}>bQ4~ti$o)cc z)Ltsa^b#`>He7;5m4B^JJ3FkvGxGQe0SFh|MF;u;uGo-ofethx;t4dpY_m?=4fz@= z1_dgis{#fH0`#EHusoT0MSmst-+q|vXy5CP6ji76M6w(kLW5@>?W2QZ24m(?JmP)$ zGr)CJ7dk$mG<-*7gL39WY2Z^*E5c55nu0Cs-lU|99v`1joBm*+1F|2usm zG59yt)>w!%5~HRNDJn_H>8LUah~e3CZfZVcAspR@Nn0!PbRS|&V*9kv;iu-`5`q8L zneS8oupoEvUiQ%bs#o;EKxsG4zg05Vp5>uHqcWYi0!QJ+{U5O#4NvjUbetf|b5LEv zJ?8 z^Yosh(*%QBJ~#hYBC_#1w5LQWTlS3BuRH#KE7J7tf;jt7R51r zwF_ETBt_(@zXA$N{NW{jhv=^87k(rDXcjyaccQ85qj}TY7dT=NRi^khwq5+3a1kHv zUA^ja6#uonh;$NH)M&<Ayy@!khKUEvN+lJPt01E&Dk8RpmV%J8CP8ZuyE@g;Rdp$lRuhy8FVyRt z=zGpNy|=uY_j3P#0sjLVAp-!QAp-)UL`aZ8@~jd>$)x#be2&q~V7ePqE8nhco#FWY z{2p5|zT1swmqwIler}Syt#-p7c{^p!+4Ol+4%~c_-zr;Qxs=tGXUo_c9hq&mpp;* zyV})EXH?td#^agA(6u_QN9-By0H*dW5ZF1P{x!0OgGK?-+%s6YvZW0a$L&G0qY(dt z-*ydb+A*Ea=`o5b)*g-=@pTME7zS(o@?juKnh<;P$!%W-fQyTI&GqBK07~tX*ql{6 z)cNI{h5p)FoVtTy9JUb&=p)SrbWKH5^EniJ`J>Due?)FEn3uid#bvQNt%csV>&lAJ zDwbiB7v>DWaMgT(oPB^ZBxaeX*%T-!cEOE|mUxC&=S?>Wrf`P`PoCsg8oNYt=-pLb5 zv(1SM;}_(*qy`Uhrt?O?q@tttXKlN8AZJ7i1vDu9E;@guJ~`7mUgud# zopeRqh|nQYY03&Maw01H1T21+v$G|}au!1`_~VH7b@noAd3cv4BJcC*uTv+EqCJ55EW+lg?aBKpAEoH3~ZpQGAazX{}`+^Pi-A@Ykgot&BebGeCGocBpsA&OH*q>rgFTSe;UfM#4$iR8># z?BApz+&HlM&jK=S6L2FF;v{Cs_qePAPHfu57J>Crajqv?34rVh3Ds4XeEFk%Ad{p3 zue~{w5pAQbw*Jn2(x)jk=t=+A=;(GEJNZ{@*U|^mSlAu2rCN$DUFvvQpYwhk)_BnQ zw##>$!=cx;CD{*X=`dO2t?r#LRVw_gllnX9>D%kTed`&8V0|6IHDckFe6sZm;HM8) zj;jLhdvL48k}g6izUDfiuU@`zfB1RGC}}=VE=q$TrjuK0H16MUI!+gQ*>aOXgwgA zU~-Ne3x>2^nq=D+e?tm|67W37M&*h52m;jHPV)*k)6Ma?nYDOCz zRN4SR$Jg>2Q<)SFF+s~zGv=c^(}tT$jTHN0u))l6K;dIM*( zAicxeZ~Z#&w*!b8s2=vU!F9M3?e9JwQ)Y$KFIx3+8MKts8mSg+jscr^U&WPE(z&C z&hdKLIRlOtwshLu?tWo=yh|6qi2mqO1G~CzPYKlpsT+wd&F`132UogIN-ndWZ@;Q9 zyPrS|j>_qs&7bEFzA5xL*1p%%b(%LZjYmB8n*tnlB^XT{Z<~S}{|@>ds?=g${oDEy zeG7999fgl@1zX^53ekXk%o3amiy9R6TuQ3SBr^2XMup_w@~qANhEQwmU$ueQ>ukN>E`9z`{D zeV|Tb6ez^sR7B1$8pqaeq=a4S-lv%S5})WrQ@dL;>z99awnvE)3No0i@*r{^C((&* zB-w=jwa9PSNI@r5l$ViuI@@QBY=?oo=mxOmY9Z@yQXS7E5+vk%879;9o;8F-7fIwM zC#l`2xk%68rAYGBIyb|`biPskcJOmqJvoGjp>ApzGZM*Zy?loYk7y+R*GtMaWfiic zy+TeNCfz1(Nh!Li$eWurjk>f>MrysqEPb^fFX}gIoSa>|RqCSpo&q?*=pA6;!NHO> z!0=A94CgXzO(!$=y8+Y}^u(P8r5#x+k8KPuT^xoBbZWpL7?9c*_>372!0h`LW12qD zR6pKzM;IM~d(!nmpYtBG$kmF9_kBi8cKm+f_rBkJLokK@H`-w}+Yq(;+d^Effz!Kw zw%o$}XxRHrr%&~VpO#$}=3hoNT~^#+?VyJJ>ubjs_vk#?(3RL2oLP4M_njHox5ihO zT_rd^PQ<+@TOE9I2FTniHlsQ%4ViidI5**6JbIpUy~{MZ#$14;`7Fob%&WrZ-!9~I zb(Mz2vgNfcV-$4go#hrz)1lPMVT%(S12;xQQbHx@hlh-w(nCG;JAcVcVn0CX~mNZwktFX6Es?AXIrLC zDB%3ZqiZnKD+SqVDexcrpf@Xrs5Y=LQw#ea`gC zXN`NR(~w05oI8qs3?8cA6*$vn91fG`QRlIDr#Z&nhlw7up)I9{pIRNaB3JGNUthfc zfwC*{<8EsY0dGj^YZ^VBmWNUA>|&9c%}-*lH*P4ihSc?`K*#voB0=adL=Mv3tCjab zwrITQAG6$-!Wvd4D**k-zAyGrMlf6*D8L)v-Mr9q@%lIm@7QM}JKewPrXpLM-n1X& zM_eM3rvh?BU9tQTeEp=n`7#0Ph0Z~^ifc^zu=gZ=4|T7wtk!N8?c7a!GMKLG=ZUrF z={y=oZva&sIliiH%;6glHQ3p=8uBog>dwCZPwC|ArfqSxBCnE|Nb5YCAKtd+ET$wD zq9!oFP~GYUmqrg74`@ew0EJ&0PQkhQ{)KOK^#4GpY|Mo6X?a=xPFiC+ba5`P8|kt) z+y)6#xXpGiZS>fc{59{!jV{D(<;b>;r+y5zhY+ftVvaPif?eqO+@I-5;g!KFOW%A} zc=v4WlqI+HedY=NbeQ5!b2rIGwg;Fr+zIcE$qVMay3~2oTQgI^Z)734rPk$q!B<1| z-B9eNOow6@{fOsQiF7QbRy)4WLjbmkevEh5|bG(-vw zK{UEcY*<-w%|G>CoW=hLyaDc;THt!hd1h#G))2++G0vu#{=aU;Z{vcVY&eu`zea@sq zxQ{wHRSpF1Fx8>(zu~urcm|gT*SY3TajNy*h=DTzv9yccPkOZDh~E}A?s7YSFgz@R zUYWSDofB3IJ`m)IPQ1|sefEPw;!YNhdziSB5cTAyT{az<#;b7e2$~i<)06$h{HqNG zo9W%6#D0B0_z(LiDwyzq&^LlGYxM_{k?mRS#g8d)bzteQs`FqwmN!!kj%}#t& zUbZX+15j3x8u1KlE63^&_I|{u<&(1pu$d*W9^1}`K>~2ZmDV5W!D$2JumC{#AnWyr zG9Za?ld5ncm#XNnHGN+vlxD?`bQ~Qy1=}^{iCIZr&9f85TuVJFE=}Kb>J1i;*_XrC z0IYXoQ2M*T0Nb9L*8#P(!`NeIOgNhR-Oe$P4;q!hd&di_PVFR}kNsDCT`#21JQA#4 z$(CGSKj6VAUM$An)!+1=)Ml_fh-r`l^Hd2nhiU!(!P-7fS^{0k4|niZ_Y%n{{Ok3{ z;CBVXEA94K4&Co%tV}XXy@UcS9ZsJC9M`HIyzk$Dpx9)b6UNh}KAx_4u%_4n;d#Z4+VLmDVlhKWB zZ)34M_n+beSbI(p-@x^2s~-|gejCTU+6yy>p5c$|qRykf?m9P96>mTnPVB+xRcTxi z2pgkkeewX+kPIqJ@H_sI3g?d*w^4^4tp95#ZQvkV!W?4fA^6`_vuN`QnaM6wbhg!B zhAxYAt<|d!RP{SPWR&=Y!F&A&JkO$q?PVtrFaMmcl~p(_-3Jpg0Oc3fMsIBEEbD}~ z9|x6)c%D;#H~9|K=Im_gTu@(jQE)%D}Zxv;WrUF+<=dDVPw zdIUq;-m|C(qY;7(Y_ed`lT?v*^pC+u^_aXACIRSB9OaQap(qC87DAP-sw!}DInO-R zCW=BYn0AnO00C%9w#{&olu#O!?2(_lblls(leoTv2;Z97DAsTV*uPC9#bF($_M+9% zm%FIAPuzQ7>8A6xe&F?D?go*8l-~V(rm4Ge99~L?mbjpJpV<}+PJ}vm>phyBZZVUP zrv7oNHw9xU7`-)QTI*3jZ%iX zYSTfy+0eIr;l>%~4Yc6X^V2|{QyPmNwQ-T6>(UmVO}RGAfCu>ca;ON6T7n@Xi!6Ug z7BFMt{Yb*cEatJ77;d(${%IVs7>-Wh*R;XhjB}EcVtd(JTy@aCL*7bSG!2?0>{nE^8_?+10})O2j-C{@UXt&t#e_tF!paP5=UPFY!X8*=nMK2VTufND`E`5gbU5+_fBI z5)kO&5oZ!Wp3;1fTUH`(p8L8&p{jg*yDdu<`8}>%i3_{IcR}DTb{0w|*0s<-iv*W7 zNIw0?J&b>O&zokr%yO=sLLYghd9LdL)M7-%P3y}*0r+2sk$ZOa3OJH|>+Ot+@70|% znCF9np^K$&t-PV%Y@D@p%HLFc5ZH!7((fiQU7=p9+i9JJ3q+{*7HGzIu60Drn$+_P zOe?}%d2!{c{>?_Xn~clBX#~!xAP4%|q}8*WgAqgv+|vjxJd%sDmqgmCnt@HL${0pJ zeZ$BtK0HRd9B0hMiI!yN`Dr+Rm+XZ+xTyv0ESS#&=7{^58wnRpRXqW0EC#&dA=zS3 zNwvOWT`XEiDZ%NIBH2@?BuMC~HwA-P2%Yp*?#4HqRDD$4P+gWaSnS*cMsMH0k$m&1 z!4aSeAZtgQ)LuUlI`S*?S6&*5+x4IDup3a3LH6c>++E6~5YZnx9p=r-fgLe-H#Glv zD1n9-=q$iibc2GGFRZG-U3#EUnABeRm{|;=7;H9PugF&1>IFzs)r4#XDJ_bCVktwD z4i^3t?JZ+eX>xr5-=h_T+|^J5AZsf=TE-gcrFklX&d2KZbk6V8&IIn9@Vx!> zsVkF+c6^%p@}`ylifg_PTCC>D6SDwm>&x%soha~s+0vL7L7DL!_0$8Cl`F9MNc}Qu zC3WZE`V7mLmzyK0Jp|J^V>wiJDBLn&VoMg892_{9{R+V)IHL9FrC|Gfbz8FzO>yJ7 zw?HNlS3(MhNjO4MsMFOY)sq5!iZUo6WM(0l{-t-eeR`;b>5M&T){;j<``ADuXB13A zM(0CX%9fD*7!Gi*{^$H^;mfA=pj#&6UM2(U$`Wt5|6*m1W*J)^f37H8k4P0^B>q1< zX=;F^(c`UOL?mvc?DnLaO>t60=&4iiWH-y1+7O zIcE6SDmunBS750WGA09 zp5g8!#w#U}m%A*(N(MYIKI8yVPN2AuWu5p&BvqH^pt|w>pq;#-Hyw9ls+ZfKi4k%j zy%a> zfm zN0)M6DqE#?aQt!L#nrvHvHDP&z7D zR0~$tQ{@}P5wKIcz<&Q7tH3qq9t^Qp8sq)iS_T6JjJ^b@RB7g$g23IZ+^%Hb_a8~! zKEW~CK%gJP+tmayo$kn{7heje0;$>AX(D~4j&}wPUzM!Z&M3$F*6ot!jP73Wz2AFh zPCIUOXx4uqc^^=N?~BO#%b4NLQ>-xx+R7-xhq#Q;t5^MfH3uBLFVa?|URh>i{B*8K z*q7Nk3$~ti7Hqe-#5LI8KYWEu6BQ1{buDS60MvNdI%eS|DU$;8B(cC&eN$3@9YmN-t zCa&?BN+li`7#h5Ncsyz_j$;0+3pvJ@MK*QY!;FL1l6K869W&vX#TtULJlgx-PRrpp zPIKstix`)qRsJ?S`VJH0{+cCDvr2o!kryKh^IPpYcwvBJlmo9et!7F zKRYeJmLv(d-qbjOJyybT`VW4L4v-b9NS+T&rANx#-?y7FwTpBt7gq1af!<+i`tPR7 zFLg7k?YZ{U7>aD~iXeA)-~QUu*%D2Vv-o8Dfw9>3uB<<#sNt9G9*esWCO@Z%l{yuO z$y2F2Y4IjA%P3_=pyh$WE=nKvCF~&x%@MinsY(Jnibo5AUSoL4Gy&}9iWVvAbNX=$7Be0dDl|maV;)v<;jD@AKRys|zIUhs!Ja zQq_p!3EPj2aGG!7jC3&7!`_$q2(7Qg48YmPVF;QGT|W1NRSYKG`JzCITtGB)7g3N~ zMP*tVRcAb263cI-J0+klbvh_r78ngAadNa5n$o@N^+_Rej`<>o zCQBO9S9^s-aXwv1CgR@3h$gaKtF$-b4IA#J{iKHFMs0iUmgONq_1;x{1N$Ex3Jsty z70hoK;U%SS6n!;gl>*EqvQV!7IGTb8YNXThGu^|%624m@AHQdk+XS3c{6mW7hK3Fj zexfr9e5fe(_uUDWwE5>IrXTkMo1?M+|D?4kX%Xo=iC-|dF}yz%Ta+PL^l_quw05k^ zp~~iHT9%m-+V#OU;Y-gt2Zvh4j?t#g=>VaS6tM+wwGiAJrG}m%uA8z0)WY;J8z8+< zKdc~RZtxxlEX@@I$-v!iU9_L(=IW*szqdnnB_}f~np3wx0xP?oF0M6I6PmlgGoQqB zBw*1-OOoJgYj03E#h=T!D$Fe*PGo9=w=vPDi&vJO+|am}9_QH{rroml z?S4G8eeeYj0x{cfv9dp15p{`-`Fa*IpSe6Zvs1?W$w@a(%qZHr#K+k|m)2x)U*Lx4h|y?l1xu68Aux({T&dAgHL9}0RqSzyRY_B0YJ##5*3oVQTZ-Il z{ZYtO^N35uQS7MF>5f~qub%Kq%FSt1(A9ih%xW%De(r8ZPpCv)F1BByoHPEHZaXUS zJ^3%V>9!H|vsODJ{%1;gRr51^l+19ii49%q9KK9^UR3O0Zys!OuH4O1MjH6Yfh&kk zrvIwV+%8`tyzS6`H`>M1{f5&M_43PA0I*EVZ~g0gZpxuZ+vo$tNRjCa?aFHV55n?;YPYA0?6Z^T*53pN|L7=aMNA;W#oIV0Oxs9iN(lRBx@BZC4q4{ zp!dfe8Fd|fp29h6>*99TBK=;$_J^rugtIH*iMEKoAN>C>@FSZO&<&t+wpdU5o0_@Z z_J^C}7_5J_b>#_Y`Mob*m#u|^1PRU^7|DJ8`kLpmmDU&!tm^HhKZm7KPv3`JB2JFXtw(bPS`4jtG}^vH`N`N0-)RPs$TYb_FUhUU_( zrz&VTcOl)G1GgiuJvge?>l^}W+@gR5DlZ(_D$&~P5*c~45&uLv+ch}%a9F)-%2*_i z6BLE!^XJFkA5F+dntHP&XioDyCxPT}K7QJX-uH1WeoDql@t!Eiy((NjGmBa9c!NHG zm7=auL3}tl1%O*(?z|VINi5_;zx_UFeAuOw=;D+J_HU+SV&#U_6wEFExLLgv5E9g> z$EBHQdF)mxq4e<;hHKj60a?TH3VZny24q<5w~+QQ7o){K3!^BIb`DRgoTZIRr=-iO z_{rx$aqGrYbwEOxg*%*wnbkdrtXTXC21?Mgkm79t(` z$4k3_2^zW^Z{2M-P?)U}A-u`)^sIoePmR^4WC+_s0^)Rd891j2c-uKax`;TY@Rt zgX2QYIaG^`g52yAHV1CMuk01jw2)H?@xKh#Q@*ILY2)^s-p_?9=+e6&!2Lmy+MCL_ z<)q(2qq4=8b~pgZCr9jwElBF+y?5mda}&F%Pyua)|3XYw+y18#SlPOPKTOKE+X36P z^t=K0T$@$xN5GGdm>6%VuG+Y1vGc&AN{#|w-#)YW8rkhvTQ6%NE^NzJAhz=|JiZu~ zpTLt)xIHs=2k{aHwGM&h=+6}R3n^?92_oSne#B6gdEZ{%h6mpAmK$99&gV%+Rh9Bj z*6^mdxuYuVw&JDvF)LXXgTLL^UbdZp!Q|NcXFLV0o5pKu$- z95>wh(B~&ptpd^`j=YH|Jc@ve1*^1#Hn5>RPA^}zf z&IeSL7_UUC63!<~%PF%2(NW=n0G%!t%O?MBiIA5-&#Qws-SVKwKkN?(0O zyIQl|0jrls&UU>*y#7*>L*h6&sW$LX7ymLlpVE~SNe?ZIq*>UkmiQOI# zByzt@$%eG!%4$#p6KK^w7Gm)YvOuXzmKVY&6C%VA8^&3KGG3ua55*Ri^_ySB=~;-I zx?JaAm%vKy!Ei#(#2%~j;h_D;GIRDIouKUbFBTP9 zLgi;PTNlBz37rUO+9&t4Y7`9>9NI7o<+D9d`qd+3ZYE51Zq9r#yqrR-+$gOFqk;J3=rlYWWI@_q)BQC18wWH6)5d_^UanTwBbZt6sUcZW*-}h`!H*jaO78q?izYF!#qVr8>DpIr4Y2z zH;5;>rWzmYC?96I!NDzl&5$(zQ)6X^I%t48N&kyxqzctA=n#8rW{JlBMTv-oD>F(r*9H7f@Pc^gU9>Gd~ z_h=_Rvb`>KoGGUGk*op|L+M!sFN(EvWS*^Qn*Wb7iu8Ucd{QvX8;gP$o{P_wo&8oP zuItS5X#nnqp*h8HVn3~N46-ylYX)&BnF$(T$*m+1C@TXePHPNPt)ur~7>2SS3$b7e zhF}neur3A{!amRNAVb8F3-*-mQ5{2lQbzIG;*TQ@CIF0W9Jre(b8%=yN&I35E*VUe^<7$Cpv99RL=%V_E@TL1)6_R^OASBgs=i&c)t=<`P= zleW!?-Dlr43sH)3QA-#)3;|gcRB2}c{C8yO^>hcR5t+=%Xd=Ey-*A^{LtFB& z^$d(p~}PVwDDUQq@LXr%Oo%n zteV+ktwu2-BOjEub>7@KNv4S^vmBH(K9vUB@BNE_b3#bzO7WvvHZ&ZS@yw$AS(F1K zS6ayaXdgrv8d+fYB$C}Fp1_es>Piz^#ZWgaNxY3WQDAI-cRE1qvo`?fCHET7VYlWq zI}eINa^vUXs8l70UxVLujX|#~5;;ZlAZd-F+M+6W!IH3sU<_%tiY=-P>4B z4UA~7oC>k3g6?{ja6PbRJpU5dVb+6aO4=+*0d#PXB7Aoo?R8i~5vn4F?VyN3@~98v zpPL{Sf6#aum{tErGIMq%c9o1bTXFgS3}KOI)DincPs&(TGXkuj)6$ex&1njv0ne1L z86*d>(ACO8vattEb|uCntL_ZoHu=-+D6cG|9MlHj*1*|Q*|SVz#|w#VW6C1Pl#$EE zEgM<3807JxBQts{%ji3d4(=2!;G#%2i&8x0X!l(7q9u}WM)Qh=)n(SofR5-fsiOtV z!kJOUH^gPU+$?z1_8=vuY?K0O{B%MPLG>u(q^M8{F_98!t=tLM4N~gq0k6cfKhg_6 zL)VSV+96Jmdr;Vvhg)1MCP6N^706%ZI_8|LEWhfk% za{=U?C~#d5Fkusq;4+1v1|t|Zq9j2CVC;0ckPou4gL+v+^D+CrZ6CIb1=U$tF=4#mG1@l^dT)Et@yNA?s|1L$-`#A5zlmhMG_NPkHlXH zB!&+jJXtm9BGd55dhz z(KT}bj&dTmS0bPFC1=Oqs~>X!Rgs0?tz?8_y+pO6NBtD|toAO&4yc%kKIr@8H&vW; z6jt>8!Ga2sfxGo4O_;k);E3$ zQa}q$sXGL6%8gvv50AnwS-Gavgyk@($RG1zy|}il$A{VkusK3erV@Fa-@NpuHJ>uv zm=JlbJJz*;4$6Xy$a^Yk?TT)c>Lhp0?kbLY4@Pzp#(ApOb?nJ&j^>Qa8J^W^U>{6Z zoD0aoRKo6a-3VDFdb>k>|M8UZ^9zA8G~V7t>p~gf4hwz%GaD#15zkmoW_{Y#{Ki;S z&CNU!CjU7)4{v;)b=`MYWu9im<1>i6Hx1SnDftnKQIjB2i4AU+6rC0s@n>YTRAm+K z6N4USP4lB0t7P$CvnbdmSyp86Kifwk>6C(xYV*J3wZC5~31*{cy3MOgWOPSnZx%dS zffyEED$J_oxyXQ0I4^mwk}Jols5ZbS_9`mR<6%eJSnD0goI-C0^+lF?AG$;Ut1Oij z*>UCiwh5FL$U|(1T-l^5u-E(^%g*zF2d^Ak!TqGgd@K+6%F4{_zs=;Nf$YR4I(gKQH6oGZ zv}lLbV(1t*E{V>uB`%Rpw{C|d&C#>!6a|pi!;8&&k~AL0t(q!V?Sr)DHGNC+TPci0 zo_Q&jpH1BYW0HB($T3ODv@cMgI6!x&^uk6WM5V2MF=3U7%74dLR+KV5>4&1kYTr}~ z9O-Yiwm;_!D}DVySK1ais<|rblYPDuaU5vgFh;u>;Dx@!_t|$I>Aj1v_vr>KyQKV^ z@oGWW5t(b+3a@%J#NRjNNpsVR%XzxYrHxILkCY!@9AJLqFO69tkrEQPGq9@@Ee6(* z0H_;Gk_3L1EyqsWD6Z-m)!d>Wp0Nu|R6!Khl1{;7wNL7?A;wPY=}k=|K@1vEe$!Hg zsJ5u*VJ8WNAYl>GCeto%Og}Pa=~w4C5*IikNWZ}kK=lMVR<;n)XJ?RhRqX!0pG=bo z9Ggx#fl>(+j8Q*^`c2`=9;guf3(((9BK??Y?p;$+MyNyyyiy9;@{ygI^P@OvJQJd< z{cJ}b;)hXiwnqSbbdYpFk1EzzDF@ zI+dS#AMOggALmxfq9U`XmAo^e zJUA=mHxf|;1BsB#1+_XC`-i2HDFdNA;^sfVjrs*ewiSINb=3-rRstrieO_JiG ze&=Af)6~C_6uAZ;g+{*c%!Ua?t#94u)}_bAE`BY?lwh^Y@A`X{&e*DCT2Gzx01r_N zaQhI-f0^r}3K&^nU<<8M%Nr1y&`o)q9TcB~m?&QghFuZ+x(j(J);j4i{#Hjt?Ij4% zM*wM7wi|J_3P&rbZ?4%^jHg5uM-`$(kIW9rInQSqozJW-;zbOH%QrT}t%(WmSsp@f zh7MqCWOAr<)8sJJ=8%Jx0FeGl_g&(z=01Rq7_dIn-}}3H%zS4nVenOpOV_!uOc5P{ zqRG!3{dY#?C)zcU`BYTC?tnAy0-+69xf%2G^K^BMD*XOlNlu6owV$TTZkiGEKcG}! zkH7?vtJSpYS$AuZJ$f1;61;W=;&(H*53&8}Od?;3(Pt6GB_K4EBZHPHKLQ~%Mm={2 z36z<(e2|&oGh`Io{4)7!GS16pQ7u?v7e6%4;_8jbM$frB$JhyL>05`g5lJE1PVkHk zj1iMj+g(8Vu%ZUMi4)ht>G{8Y!`n(tX=k8qSO|ZG=b0mn#;F=(0wNa`M%qhyN|?!1 z;hd(>5h)CXA7veGOa6GeDVSm{*T{S-pyNlnAQ^1*j$@nm|D;b(Se3HUdI}t;&*qOD zgf%H$o-ec$9%4Ga&>{w*tDky#vs5DNyVG}>~@a_zO4$WFH51b&rTUX z`FQlHj80(BCVZa7%pPUfe=BsV?(AR3gDd?vUPkt&xa1wspF*{m>&$pFs+ldbiVn+^ z7^KIw-3vzm^Wt>mr}P#S$v?fMO=;7+xR;bGVPGnqO#{NT&3JL52ft5C;b)C8UoBZa z<>ZC~dg?*Jr@+OI=&qI=iW)43=JW&2yWo{B!KE4~hgB7O9a4rZo0AfS4-6@cg-SYb zpT!aO#^8XzqU?+dBAe5e!m+VI@DkBM3%WIw8(N+dhc59ae47-{^Rgnb!bP)Wy$522Zm-N~? zX)*@o-a8lf2b)MF0qfl5Hmm7{x6K>sGaeZdzS1~whR-gTN^7O66WIZ=L?e)%tB_n zni!aCcsffsS{fT<5HmpwBTBkrKwWziehFY)-f3wW&`)@;$r&IP)rU~>@q{S)vBT)j zNZVI?2J`i-*#iQn5aQvd2g7bLc+uoSk%xe5u`0yWg}yDBJJ=WYBOX#y$(v$Y&=S#a z5!l{}(ir;`yS82;I%acT=i@3-YNoegadX{q^I`?0_>4JRzjN9jOYJsRP*5CxceON- zrF4x5)REb#N+8A$nm@qy@Afd8`53kr-oL1qeoG2!3_F}DddSg1WqE}=>|n2&;Z2~T zBV12-@aJc1Y&*q5?cjDZ*NKV^K~GR-mUpv8spl!UGTtuZTZ4zWZEeyxDk_l^K!W)N zEHQoW7qTt);#`7KY=8U4a*#bJ5eV*-2YS3iK#$qW7z)y{~F4QlvJcozQ zC8Z-CIM>m3!SMwVKcQ|>k7BqZ9~SfQ&+l`$IAC=^_ZPl~nRBr>%0b1o#CnB9h54v| zV#Egv>q@%YrUK61s44=XvpP1!{yrZ5y5mlOpIo;n`OR?o$am{KzYLkrEkgT1sIdR@ zz=8xH+3yVFIcsxs!EtN6ja66e&~ev`#b~XzI~da4R`Q>4p}RUpoqp0gfh_MvX*~tM zJ;kN8CjH;xcW3*RAwg9bt5IgmS6XUTL$~pe{xP(ocfr;l9mY;ke9A#9sv*Hn7lmHv zjb%yGR%nt-*L&)B>8KvID+g$FDix<^>n(oSjpOw8VReBxPokdHG$U+*=W*{&zkZjB z{}`w}H}+<_a|dn~-|RYdlS-rn^O`Lz6;PHPI60FGTPKLE=?Hgf4d5dAXz0H&k6fjw zZ*@&v(eHpeSCq;i|HoRQFF#eLW}BboWs9@sz1kRGBD}r}(#eLk^P{HlFVh00L|9s- zfjMG@IGo`>RWrMl0i9Mj-2Km7dz!oARMN8xTKsh^0RP?$3?bVJ2a8)LSbJPliH_MF3t{2pZoPZTT51y*6FLRvPrsb?0Gq#+Z68c zmqd-evUm*#VyW03)5qnQcZrZd*GdrNR5A#v+9TiRN~HHX5016-&Moid4~9N2(b;nX zyf%)$-o67((i7>zu+=SlUGLL4YvA)|T3Q}s>}rNybKxfb=tM4g_aEhjIL5@hw!`$+ zfekMn()6s(e&Fh`22KF(!?cEL=Wtn3&x5NPrua5OeJ=c@F5S*AVJ%w=$5)H9Fg4}k zubZe0QcYnoL^P%00O7Eu>R&XgwGznJYyZxMx7Fo$rXnA^1^`uHDu@cV)&pQSbN#RH z?eAYs(L2zg_z9Kj;J!Wz>Z?}Va2bbCLpoA6ybdY3mN7u!@JG-jTSHub(u7%@#$Nha z7oru|eBfu%?d~M>5MZ@G;%{#>%FH~H^<*-DEL}xsMAm@Q_xH$n7oZ`Ju^%a*Wqap z>x*G^i7dLD$gA>{*4=DJ^=s?TgF}t6<(#(x{1|Y^@CfHFiaCzS?16z+;u&8sA7#j2 z{pUmn`CP$X9?q-+w(F6nj_%+w!@JH+mZ*(`pD@cA4EeI2WC5?aVAgATWszO;`URhZ zA;7aI=fQS`TU^sLBap;XycY^G3zdo9OgjsV%bdrqt2?e?0uS88Fm>L%?rOzcQwM7|~w)iAZ38ij&6r<~DZrM#CB!kq0 z25^Rfj8shP5qNVcr(^U2jgZ&p0Q=+Ov?}^-4UE#plt`a~4mYUI4)(N9IGpE8g^201 zx~ld=+b2O}kQ{e^?368sd&*ncF7>IfUys+7tt}uB_QO)tB2s73Me>jZfraD`$2(Tb zGJH%_1rj@0tHF@G+VXl^j&~K;OG13TS7rZV6ymQ3`}B|#?csUSh=XWFC2?hjcCB0p z9np5PS&{eAs#dGJDa;f^3ki0Kvrcd8#2Y7`jQ4i z<&{^`d4{c(#zyBEr(Sz_Xgt}gb|}-{eW?c=fJ>?TG{zYU&D?mz#z#)h-YZRUM}?pZ;7I9MP!Bt!=XjN+L4XZju<7{G93K{T_}<4kt^smW^t2_H>=4zG zfO8t%eOrJ-SwQfn)=l2Pb%JHYTVGG2%JF6&SbQia8&E&7=Qrfg2Ci)~W^lg zSi}mm$prX7ZGz%8k20KOz#>M6)JpM(l>T)X80J}YSDUX-v1Ko`z>k;WHj2CN^+=eQ z#nhzdA=HwBQ6oYTYRKbWWYo8+#)MV^zPEr(iKG`RUhpKa?2Xkml2E2vqX%Wa>|G2z z;wezzAqr)~YKK{D&Z*kKr~B8J_+GCi4=sgME{tmCc2v>zkx27%CHsZ%t?y&W$88)x z?W2QVTX1Jk>o;7qdHvp(v+3XGIQ^W?_l^;?M#d7oLGVlQ6h0Vex5KpceuhV+{|jcf zW1E)#!1h@mq{7xj)F)wOH>{LBfJLCxSPMgJfkHMbvQ6kuvlq@9P4yNa*dRIKZTf;u z{tgaB=+EHWvr+m;5}|x+jlhzzncPu4REA(UNzCvw$q;J!O>Xnl8Yjs6g_HM$t>2T$ zaE}}TA$**`3q(ZBEDh4Z7!9*vlp`8}AsmMC;*k=rWZcC50pC#Mz<Le`^OPnAa| zI)J9lH3e=SJy)*3mlBjpQ4R1)m#NNo%$UjT@qL>G4AJz1w8lO}B@kiYA2XE7P(UJN zV#YO|3^bZcY#u1iK#j5(9^)gka`Ny0lNkbgl&@+aMhN>NhkYKIf^Om^$0uAn?n-CB zrg(IBMCyXtE}esqzRH@qwNoPth~)|{LC)#SuRw_7r-hy*G*z7();RcN_^m^vP@c~l z`s%9z(7+iUk=80*6l`n`dxBL=imjLzW(#TIRbAc6<4W&fv?KW&cOoE?yM}emNNS`LFrX&-vTzuV3qhfqOQlZc*XfOCpKM>v3}fzF|Qn(r|k-L-Xut z&3Z6uyJTQ#D*M%aYAjWTpSSaDHv(N?3=~Ow4v_XPVR0Xau)U1`=&8YV>9BuQ5*BpE z*K9D1%aZ>>iaWrglIO$n2B-kIcUWx;0Lr;Js?&#Qhlj@o${+*-`6Ya#!7`P_ERgVP zq3RHiEExxGV>n9?AzUO4HEgZ)MJ=$zg=s$6kUZ|X4~8nHHC*PEtAp641IE`#P$B-Ez;4BDWy6;r zl&Of4J8)s9DBLc-FGH-ptRYK~pN{vZHB)ds6ET=|tO3Wy(8|M59`o$`^<*!bH#;<} zTjWUvUlLLjRC*_iqLlM}tW-C0eiR|J8@X|D15V|*)$p6KDvQ3UJ$;(VFS$wf%iorK zULj7|CvuKLY})?nYPSJ)Zb|}a`;38H>WUymgi90iQaK*%`6FTw$>` zgtEcPV^i3*(cfY|&;zrxi_xs%hAbr1l>OtUcs$E_Hj?=_2lFB&{5^vN4EzCqjc)-H zqUcLDpGg8ly7^K0=a`5%Dxv{rJ!#>8$dnC`j*tojA}?i}yL$_ZCvq`bTps0q>ij8J zUliFLsxePe*7T<2u=xR28;9-y4p9rD*uwAs17wmwFkyuz?~|>I)qbfRAawomI*s7d zxaM4`HlrfW({vY`Jlg;Lu>o3!ZD}m~6dZ_2RfPdd1gCxK#tSWvx3zjj1Z8Y<=1lBpx-g8h` zypiba>x!@Y-PjwyPpCv65={u9DIiE2^~sKMvJuT2jH>q-*EJnbBAVcS*7bnAq%rO9 zDc1MWDB66oZxR|=au5M!?iOd*&ZB)t#=iq)v_x<$ZShGtZj;5|tUs3Gd6J%cKj7C3 zWa1zNFal?A7cTEGig*QBMIxeuN;m%&O`E`DTDHbsz_vXH(BX~6NVSF(OlwoXA`nS2 zdN@R!LI$g72_71F{a4*8GoDy?<<()f?dbRTx!lEvx{r1b;gi86X-fbeT=xC4 zM|zCHI|?HlP$=w04d_AVVQl|frIppRz|!dC9lo{cn{nQT_G)nfF)5h4#w@d44oklq zTeaEn>|9wB>F3;HBGOYx%-9ps8l{TFlxaMkUNIE8MERY~K)VCxp8~ zji=OV0@*n^o>Tf5R%7{XzPEv~EAsV(Dio2X9y)C& z+XH%_F9W3;Hs;zkfxZk?M!paPbP)(Vny?GMx4gG7#?(JDp6T|?Rvq%M{$;~OeUuCm z4#u~Q@DCi~FTT?R{m*mD3G{MX^VRIC0Hg|xkkd&HYnHVmRok4fNWkT&l!6tweF?-u|#E&zacChNH}>W0n+M`QLfqw_AV zjP?zAb)4mZ4(2}Q|FLRO%aL~7j805qB&mHs#1;iOF$$Sv6LGU$@Sj=|+iaUVEWzge z>{CJ#K~IPRPIJ0nYESbCepsZAsi0bQEmO~Y#5=-sEz|G* zY05ZBcCo7!T>*FAk1nBbxhv1#4N&T#?PKBHbuAx2>thT0PF9oTan_OhtZ9OXvI--3 zH5WtEqaH#!$zIYe^+rY=>!*|S%|#TVsiSPk9rNA#c&|vQmTS@C7>=`G$O>Sns%fSi zwwhAtLlq+OQsQ9{MUXq#sWh?@+>pDzk0Hx>*x@--F#Xts=|eLwJfo+&K{bv5XH6W? zbDfI%6ai01wdYq;ax7-wjDV?nN52x4?eOnIoXQ7?l61K{L(Z0%5z&@SX8geyBY(_T zo*GN`gU_A-Oj1xa)2Q9>8cTd~dh1D6HWppAe~JSP2RNmX4=4hJVBg_d_#(q2D6Zsq z$JZ8EsCL})?$Sy52rc_GR^W8%rzfVItO~)#gDA0jKlupK7#==ghp)9@S&muJl(3lq z6*sJ36#a0iO~wm=kXyTBEcW`anuyW@e=PZ`QI9z>OLWD2_8|i-0Tb!{Y`W&auZHZ6 z6Ao&@qLXW*k){yi5qfe*}XbrED>iK^}PDDrAeciRE*k_cWBliIpNc^fK zB7N&c)7)ab)p+I7D+wB^zAsUFwfq-H9`z|tO;-FAM07sbu8o-5 zuY)$N@v9}U1-Vx{-#UU zF;8nckG_w-ZowVzHDQ^?g3(k==j1m5|NiN;)_B@VYuI}1@#k%TrsldQ1D4ZglKpF2C8E7}NMr6P zbOhQu<_j3~u8Rx3hMGrG?Z8+%(_rtuo*r>`{mq>B5STLfeXOo0w`?=!w3VM+|J)9mNw z;ML%XfKgC!QX8-1j2I~cpl3?cmgcJLm}BNO&0F8+xD@d4{`YGCbKwckZ}d@Bau~zD z3yBY4C@Xp>DJ6Sp)_o3J@NnVX$(|YL2F1m) zB9FeQ&+30@IRcW$>oMc>9%Qw zSUvrM%iueV&hv@&&9K9udAjO8a*X@VF}0K^doKnbT+zp`>#q;KD!ZWx*KH+BaRU4J z6hFE>SBE5)vkrLyLdsUOgy~$;$LnYaCNC^UM`)5#Q@m(Y3GZu9nqb#J>GXK6Z(D%S z1FA=q%3q?|Wd9kat!7?eAA2K+1WSF&FyH;a{&6!2KL&#WoJ;O#Md*xzeW)`fPr?r( z^jy+}gWg$eVxs5vD493Kcr(j@K^q#CtHDsSVKhM0P&fzZ%rF?m1AJ#3qFKvouN7|0 zh1bdP&+{R6#q6sksf~-GZ=`q%K&5crn|+4z2rCT9IL&~hm`%M@uGeBXmBL0iG3&Zq ztOxv#k$51&(nqvN4?YiQ?|91oiI_Hwh`U62)Y}C+!VK*uy6+1p$AD_;^i1fh5wrRB zhEaAQCY@jF6v~<%G{&x2F`PMa1^&%lnejN^9C zjx}=Jsd^?_gQcG2=?Ey~Oof7;9Mg}WFhGxfUdUn+*v0YV6T@&h+8xn*fjHNo>(ZnEYd8|=c0BT z9J{Q()&*oV$F}(g-=PevV5{!u*DswsJ)DR?>K=1lNctZaqT8^wfC*z$$*RuRHt@~D zr&E2bn~5h@Kzk{(QMf^0xty&|rP%INCmo))z8nD3&l_8k&U>w9=*#t6scXd#c} zPQRT1rh)p7vRSMKdpvaxJNrjB=sQ4M-c>N4;dQ4SV zQhSMVLpfV`<24v7eHZiF!Y8K&fv#)xBfUWZK!>o|Jn6xW1ZRH)6WYWgKu*BKFiIYY zB@yDq2#KvDP9!8Fo+~74y3qK)>cyi>&6kGqT^+mO5KJnAe^7KSq}({$b=#V4^IY*W zyVf544ut2+9tKVErQ8^n8-dB3@+BS(irlJK9pB1_`#^eSQtS>YOo@UarTgvy28e+b zhD#5N(H~E>-~>Lr;}4JydCoK5W9cN3CD8Y=>KgFEz~;w!u;ZULdD%yrTDBJI{okhl z2#H`Vi6lE`LUwQ4?3%={adIKU24AL<0uTs86^u~aNT$HkzcS6g2k2B-teZ87t}#ew z3QKt0E`Y?(6*_+FE8h~EpaSyW`2wy2-W4UOCW;&zZHz>^jlVK|T0(`d!yWl!a>EpW z9_f~8jKxH1P(LZrbejLg*6I!aNOR_D8O1C~+u@l{P=HlL%4 zpr;Gy59~R_SgEI3YpD%l+#{ub>~ERhD6eZ;nOf?u9}O(?VZz&{kJIKhHcTAG0~U6! zGoT)Pd4E-!j+ZJS;XH{&F&Ji&ub62Wf;U+WiIAY&slC5bM*)}&;o7N@Z?cNPG-l8iySY zPaWs*!P?^Xr*WQpH+2a5F&MtU{}a^>At?~dp~Djl#f>FEY{N#=n-!N~J-tj4XM>go$kKmw`rTo6cWgjx;` zV$T02L5GuV7X8MM57k$p@%z<*?#3PGwRU-`b?S6NMfeoa2M|P>6U|L(q$iX*jCo-u zOK}JLv!^G;E9Jj=kmw`QscymXBgr(dV#%pX5B}m5IV> zcnJTgVc@-tXWjnVZrV-lg1a3Mr2@VH7~P4s6p}vMwA5U{nS?*nox-`LJKuC)V5dOb zn50=k*lE9NUQdnid1JCrNxT?sU3g_HafeL-L27tX=IcClr#RYWW+8rT?U)&ylPhgw zf+hcH51)$*;?Up52JnIgg1s4hiy33Io^@EH6+MVn#O$BkP0iX)2Ai~ne_EvUQ_})0 zw8(V2R0RU8!K3l?ojkpN)H;CjG1Ot@Sy#;U_OP255YPFbI7BfSO z$zn?uvu#<-vMgq1W{Vjt23yP)Gc(I#X0#Z-_T8DecV}ngeG%`y*?8U2p~$SRRCd)l zzw^&iRhbOp9omXQv|B1Yr23fpfH955vcwK+%kYqKD(^DTR%#8J_(N)nl|Of{3MyPO7W^0V4N7K{1*MI=cn29@Ha6+ z(q(pJ#UdcZ)Qr-hA|apjEqyUNHDBanrEZl|h)6_W(3}(~z%fCM+*ULj&CU`t7`m01 zkven~x1zV?xZc&FRf&>ukSiIeo2azaaeZ6ARD9W3vCAtIbT9;Jx4w7D_{?B=wX991 zM%#N)!G5d#O#zxQ-L!~pt5Im`rC>Z>o-&Mkk3GPhzS(M}?TQLr^Ko#QXcO11)}yUC zB}@@D`^;zAKHELx+@ejv7%h=}-t*xqwZ9^EcXO1Eu*0M>w?oO};?->3=MegOC%NE! zqfDP0)~rBrEYJPQ8U@4LPG8}zBqj2@-82%dc8Ao*yQRhG@kW8`W4$-!!TF(GE)gLspKqxni{NS_Z4ZkvsaRE=E-f#>$R zK<`9}uXVjbk(_-_W<@S54qq z(3z8~>>ClADa zHb>2KEdFoLHLqFdOm)ggH}8>8I{D$6xvA~$Sbmj}e9De$NmLONNS}MhOi_x2`vAzR zFFZL2QMo67_I53yLq*nQ>J`(^efwB$O!|w`)BLqYQ?iQ|*M%x_Uz4KHxevF{q8Fx) zog+4F+~|Q&_RBmyXQ){S$?l4$tEFy)%V@g}W$cbtcNPa)>uBv=O5LGljKRPF?pT~~ zq`*vKv?577@Wne}X(J%6sT(rs!Pn3k_nbis^Y-O^svOLo8k^59Ug0AM{?q9n!lH$) zP2IjYhzcfVUCY&Dg#i?*s9hKhn%^%6<7Y1LE+$PlwUtAzqJ!VBvt>b-m6(06cO%cD zvt}*mghjmm}uzsxjD zsDuH0X&UTjF{C3lTl|Yns`DaxZZWbE?t*XbG3NU%%w|&}H^@5Cvds{73KxvIIT=Sz zs)ZJ)t_w*&uZF!SD}789t0lLD$KF8c5Su1TC95EBK-WOmM%S?hFMlSGe*q#~q=W~e ztpR}N@Id$+tWFRH$QKj?oWL?bhzYzEMHZD4QzB1ucCua#^ z4Z(+x;chw>%YX?$g2zQ?B2yQs^f7?y28O_(Ba!2V4P%KRR0f=hJ(2~H6_6L9%LXi- zbL$}<1j&;dRBschx0V;a&1@kRyb`o+Zlci^RB|gLgW~idKPQxm;e`ps+e z%LU6K%Gr6vG}rwG-9D5RfPhdzhS0q}9sv5F=ZC4)PTRe98@j=OEJ2R*i+GO2_eP1l z0Dz4ET>+dkIR6>9P5mK_{80MXc9-i3|7*b#T!{S$z$Az~k`zR6+?CuOOpkNELi}Pu z$(n=`5cu9dxZE=!Z;nsG92BtpfGy_|nB+Pw81%|CXaInEJ!PNu2@TH^F0AAvDVD;Q zg;A;f?YWw?qiG$T%l3?paKk3{iuq3zob^W9t?`m@)9q~!G)|1XE!mL0ke4LnF(s@I z2A1(~YjB~DF18GE8&2L!ZZi?>SWTXQcbzOA z2+lelQ)W{1GQ|}mVl~_W+o=T38QuE3jEk}>6S5tzOt!jL=NW4CE4N|ycsOc1V9ha9 zM9+fUlJ%H4%Ys-62tDz)6_-(a80$55ZFxn=Q&V-^w(zCT!ul;45rfLcztSvXsWwg0 zHTcw9t0>^S^%vd8nCVSOLerWPbCCsneDxXE_=i#ZfM6|O_=Ui;U`BQvW=oW&KUKFJ zLY<92A*wOBG^ueVN;wY92($0=lfDDPV&+U!vH|UFWM->6wT=CIfH;xP9ih<(<%jwF z!5U;;3R6DolV!?=8Lavzw$`oMlyq!8@hf+3o9Azy9X1j5&~6z#um#+i$rtp7m8HsI zd4#aInKBhHyW!VCXdBFzZm~e-N>6xIa8ugKU23?6jShQD1QEr`7vzdA4xLVMemPlS zz$=v2Oml<;qo-Ob1fEDS5)UW>-=vu$!sn+YfJ-5qHISkk=~q-SN<-l50^!dYK*%iU zwG^EgNe<+!+CA?{n+}-hHWvfDsG2K9+E=M-uaUMI^!X4 zeuh&6+<}ncVo&01pF}@Cl1)U6+4{21C%oXW_Hik_Jh$puG1FlhA&K@An`@6k~4!`d?y%ux@! z)71@IGv2_OCk3Dqg=zoF!wEoRfR~IvOs0Pp3=yWw!cCUMSZlR|-O?sgb(TOov3wI^ z#TO(oa8ZN;Z$?U@>GLTdUi`-|Ls=OgizEBq$e3{7fsdpq)SF6~LUc=4ijO1uLV8i| z`#bjqavPsqSszohS4&YGr*{ZH^vuh^mSxhX)5s&QF}b&E(%&ji9Y_gnLWu3%PXtT%rK6nm>v`ZXDQ{sI$ zRfWW?lHlcbZPr-Yo_R`LA{+sxv<_MVexc2h1?b^HZ2oAqg_Z6|39)$cS=X98Mg;6B zs2dlx+cc_Es&3O`8rAks;U43=6cUsE8nN~LB)D%jtt6;{J0-{53PWdX&&&?z8uViF zR&Hvei;LI?n?hYCp@ZZ7@kLeQM9-)-Bf-iWxZJV9pV;Wh?m0(;D&g^9R2sI6qG4kgm)gx>Jh7Ev;hktYyce6vN<8u^(lZab>Xe~+ zn!8V&tq#+hL9a2+*R{o_5eFb&ZD|<5PruT!17RO@7b1A}XzeHMmWO9$7+A^{b=HF} zgA$m-lTJFW$JC+pxCF1HOm~e##OMSvzKiJsnpisDEx~$p!>@QrNaU_>gF!ZVcjm!TkEAXCXbzQy=%E25;V(I~BioPQ> zB{0Po7>d~}d7~ZX@4p1|!=#GNzRFgU+f6^0ozCNQK#g=XWX9v&xnfhn(}7j_miVw2 z+KHS}GnjX1;mgH>1w6bBNq|PF*3}`NIDgX0r@_Pt5~=-7s1wdK6fG24iSF67KC`%i zz=S zWZ`p&2(rB$ImHgqEcd!T-B7n`lCynf!b+6y~fg9?b2r_Xo=|5tq&>dbm-u z?0O|}M*pIixJ}MA@`&0a{Ym`C?~s|6d|?9;q^Z)FsXnMhr%@7y-*@a;+$CUbJsUd* zSbia^`g}v)u%l6Ep=k0kPl35U;L=wKNquWStun|ptDu8i8v3ernrJ*9=53s#A(D3I zTli#s1lt;`lOHU=Q8-(~4$;Qbo9VU5TFmrQel8i-=37rsr6>-1k$1{&&|6&TKbxf8 zpnORgOJEa&{>+6y!6gh z(hLJh@=^SK=qm`<675Lp-VLkC)bwRODsF0qD0-llMLj{SW2-=09U( zlRX_e;iNiAD~|iR>m&4Uw}3a2o_&pLuO_Oh547LhQQzEM&Ecr%EPZry3JGQ#&{weK zc@WQ)@?i?DUJg9fOgUMYG{o5b+zRl%julfFKUl8jzt?qKY|n;V_fU_K6f!)FD0KD~ z@-9J<`yS5H?bKC;j?u?Mr~PfY%h{alRi2}4i4udj{nQ``X4X#}6Itec%hmoYa=A!3 zG?Pk&3beD+gya6>RCLf|RIFkl)uCuio)_%iH4CNNYIkT%)^+T6gekkR%KE0$SPDHW zjdh8Br*So?&ktJht<91#AK+dXmk$}08R>-poreBf^UB`O1;Vk$2F|kl_nBw*ToQ$|1-MQCrqxpn1{Ism z*bzF{Tu29Fu@ny?O3qPh;uby%UkjR~QN?nxnF(|b_w||IE0;whk)P8bWW2+Jo@`B_ z-Ge1|dIAu`g{2}XrU4SB02n2(cqg39 zQlz&idNe!X8Uiqfb3JmOocf%ac`mWcY8`)2DGwO6v8$&F1G#3-O-GVS!qU%Rauq_v z!M2;C#XFk709fvtyhM?gBLA-7&J{LLQI6!0y6Pj_d{UPh(@;_>R#MVTFiuVE=pL+% zQlA7(Ql7t&!h(dXH&m3L>_whuXFIJsVPWx#T&%V}l9CQlB_xfDEP)OHgM%S2jl;Pl z7DofeL}&aG2II(YnmaMtxLcqdzREF*(B?8%`cN|0A{$?O2p{@*O%}Ayp|U`fU9?Nu z?kx;;1-TO%phxX!11I_8SztLg_gv$7cjMtMalcXWNb8KKo`PDmhe_`mrgGdZQK|zo zG3x%*i_1YSVXMtQZqESOPCMy&6&n71?DUo8slZly-3;`2T+I#aCurLmL6(6DD@P_Q zC(C-I#*ejGUnUE%540Dv1^lwq@cN2}(Tl%_SQ`8Uv8}~^aBp{QR@>OrPE^8Gg*-GY zjWS{X6E7eLK6$-bM-jLrPpwYp_no2GR!=F!>4+V5E3AQ@aD_^5xsf-pRz%MFvq@Km zs>(zDW4M7KuG{sq2ou`VB8+y9`pK7_BPl_#9^LTf{M!@z-Unc{F<=s_F1F2W3b#bd zbEWKkpom3a>aX76!7{neOjDoi1GC=B!IqG_%`+pGNYOzSQXzH)nyU2}o1Yud4dgCG zh^n9~ij&4IA#vjCYO=;bGVXLq8d_J2e7}U7>kQ_-5^CRG?VF~%n^l)y;p4Ue7!jw- zzq*`w*IfrywNByJ*ADyD9Ut&*in00GO*PH;h~BsASS$cJM?HHxg#b2$T&2^mq%AS^ z`AXJa*1oKhi(WuYc`VhO&*PdET&V**i%7tTI&G9lLtkWg`(8^c~y8!d? z&T|F-^+DIR24LUO{a7#N2GOQ6lr)2pMal}nuZTG(l2+pmx^p}gw%#hjAl_;ZThEp+ z!SqNbC$--y?UKr&wFejDzQWqLYjf2#-X#jl z?Dwt6j-!8pZp#U7mQ;v^{f@+z6E$<6uEzQjBq7EQCdO3l>fhejerD~9)kI&5;(|Po zz486XoVil!EaonR1dh#j+IyR?AFUo=)WNGqQ{h(82dX)APYng{35cEJhK3f&-?TVy z5K@b)h(4Gl`>x5f-JGh~G7ZCKsPH61VN82DEH`4VK92tG1m$84EparuOgk{MRNE;( zw`n%1Fk*wB@gT>PYi-)3XGg8!DghjAIW2lXVWl8{I$p?Tc+=N>S+6j|ljT+5ZP6QUquxDC3P9Ab&)m$&dB^8p}2MybbVAu*HT-zB__Fg4}3YJrb?mOGB zTjoUGe&HHU)Tt$`*?wih6On_7mUdenk6pRoLtHWe;=_&pFWz9#V*C#|wRhR)-Q1q+7$VZt~9Rv+&7Hyg8v3)0m>ZWkQ0_>9Pd{|kQ1DC;;z*q;{5 z{)3ny{dJ}pl^e*kljK&M*t_zbiz0>0FU#1z1Y1{?r|`sllz164H?3$6O~3q)EUpE*#{ z9wr9L3C^PK#t0po|=|umy9Ec8kN^H^>eo2SnK?vwW0M8G6yV195lNzj8dnIs6eEk#lOyZ(s|Ay#Rl_4ek1h6Ax9r>m-pW#EO~l@=lP|J@6eVa=A$u;LIFLzt zZh|n-m^lm&R#k;ksHVM~?#){@^FWAp$8)f|78?d6D>HcFobLR5gDN~_# zerVc#_0_)pEbFRt{cKrd_@P&jxv+3zTlBMIm(t;p??@uY;L_xis)e_U*Lvpe_%*Or zWrs*?!oym@%$Q^~JhL{uZ8w+U*pHgc2#b04aQRT_#rN^8r z9mUSwU^6!wk3?Vh@uAT7JEhp^N|}9K>4U5S{3Ch$B6+HJFGOU6@pWyrbNGdaZ-?fa zD-jHZ5LV?D%ge=FWzEMg+2p^U_EBD1nkY5Pw#M(Rx<}N*6??R-RQsdX7Ov~F8d%~u zYqZT(520zBiCuIGd@(g_@E)s-XglYaT1H3+SIRxLS}NyWV=}&bIvPCQtBYyssc%8D zQ7daiaW?@gE)OM)G_Fk07#!!lZawMx?mCCM9k6hU5^Gjpf3YnRUgcb7igpLN(N}1p zQBgB0O1utv<>A%Q`c)1KftH9+niv`to_2n*tbik?;#MJ2!mCCC7Y|Y3D`dz6Lio^x zr1OA4cj?fbVs5L-VfydJ*e%;nHbK=%tnA_9W#xLTf-xJ@s=Y9$u1t@@!sqE(Raec$2L-%*>^OF=0nk zY6BScjTvn39UHJo>ot=xtbcW|l+QxTX&Ku(8f{hhccW}t5?Ixe10sXx-c$AfL{MW~ zqWV7b2ElzIBELuLEb_p-&H$_gP0loKlxbeAqXL{4IyI&RKB7?aE`G;q1#B zrXUk9RRnX~>!*5Bw)fN*hm;!Z2pwFCBUsKv7xS09k52O>p4@^D6G!BVg6A^yWfR7z zhtilkHB(->j_(<#){N$hOPlVQywnScil2fNWAMIhynZsPYLlt>b+G6{RWV6z(K-;I zp%jq6F&jE#fHudCqZE2pU2m-KI)vxu$`RSVO3md_F|LzWu&VCcK7jHO2b%CtV|M;|DrM4H;s%d9e+Z zzT>B$M2v66BWp>XE(99vjO~YE;B(xLOcKEbVX@$(beH%ZH~L}r7|Z~F8_Y5h>78PY z^za(gV%iT?#plGkDDP<=RXQ=;;o4tIy^~UQftGCgEH^3u7Wao9=lfV4+-|6UUu-p5 z{US?)ES)hE`hFO8Ifi37b>VfM?Q^9{-=IOA2x+G5F4@36vwn%CG~LEWge0Mjpda!p zxJhsIr_Ov|5-d!p)Xyo)*%Y^wqHmA@XrGzx4l&f2_;iRG)w4>|5yeSgQp`QGm9+!U zn;ToGwIb(4`g(EA9|s~5t1htYs=j2zpBwI=F{rvG2uAc(>icfQy6(&{}S{4SfQ2^FW%H9D} z&mOMgWb)pN?Mow*7ATJ)YWam_d?<)F-+Mb`;@poqtvS^;2j6?%n}xRYjQwu=X|1Ut zXjgnt#?Y>8P)#gJ@WP>k4%vS*xabx+4CnC|!e*lH_@~-zLy~DCJsro09eTv1d`X-5 z5E9kl!vpisZIy&!dqvgq4_fYS#S7ik@)8qFw>g2j+#W2et86V2RD|ENXVc|s7aNq- zo;Y|uX5huf(}v$s6J=mphBw&c03_3+JB7yd`^#&Sht&fRy$?>p6}9jeZUTn3Fn89<5Er& zQ1{HIBt7!$t*prpyM(p3yx)TN+9_}-n=-#P2IyeIeK?T#KA}$Ge!4=}UDa6X%^E8h zvK)L)$3;a0CP(g|#`6NIz~7SA@#?*ArAA=_c zTuS*~ z$5!<=U@%D&vp3GjRmQAdcT32^<2NwoM21f_S zxCytIt#Fs8@hFIu&kk|MS$3W?k{yguK50_DGY{^2FSK$lv`Rh!DALGyN|A;!3_(&sHz-hWz-&J}4oDR%5DJP735);>!-xtE zB!B^c^4E*A<+7oHP(UCeODV=rr5CM? zq4vM;O$_OZ4I3kv9v1o?2nmZq+}g&~&dl_a0~wtmJsBGx9}k(lnW3Gvy|sx0nYgu` z4GS9ynCL&gjPswjSlj74m|0t~k%LKpZ->Uh|8u*FwY3A8sH4LtYdbRsS1<`43YZ7X z%MN*Quz}e%@KD&;Aw@1oCFG?6cKzd6K^lR@0=`pa!vbUcZV?^}@q@noCo?Nk2gtuc z2c!P3gu{YUF*dTawleyA#}Kjpn~qU}$^WBc1b=o++}g;POx4WP3eqZ>lDH_?4~hbe z@{bb;1qB0u_Jcx$oK`4ApdSfRt_?3F}* zoD6BoNHr@(mkhIq^#TrwKm;E;-*OB6m5Bf|6#L6FtyDp+1ypeQLsONZx8I#swr@aS zRK-O@eC`-;fl?qIZLq>J_!=O1)q5xC+ZuFi!B@z_d0oR&j_7F+<6@GYY>yIDe$jnN z)~JXXX*k5Rz%KFXz)50%>I_i>Qr0V!__;-r@ARIh#|8G^qF4B$1d~5E^IA@Zlv6&f?$4Sb z#DugwuLFK?Ufy`zp<}YZ9MUJoiJ8;c*7HWM!J!Oje;R4=5j8g{`ceNQigWM+8r{R~ z*W{Yms{8Z$`nTun)ftp(o7vb+#X8;`59VpXB~By*9$=R5XUfoPEyL&vjURk-dJ*pe z2snNTBxm~}=jeu4Gu401A1YlWt7`+l3M9iuVQ5yl5?#{)Z^qJ@1$WqNTo#s&`iR*% zp+Xqr24RfB-x#A0H74|X@o50sU;PLM!kPa;ul@}jJ_uuY*x5P3?0mn0!v^N~M-lAn z|9^!zD1R6ZgsUKVMJ1KL0}A@T0o4DJJuTqS2MN0(RrAbHMF3@c>ol=o;Ufa(H~AL{E-;vX$HVv$MHkGuq1jdz<_Am zB0(ecZ?cU(vXUfgTlJOV^Ff|YFKjM#40&}BoPs9H_gizuvtwrgMY`kKRJM_ zp+u|9mCQv=e>{680P!NsJ9bv4!3ke?}JLdYNkwUXGGL^t_&v{jPcDWJl~w z=^4t^O{86=1TFj460Y!FNHVNXf$w)Ug?ZoE`!=z5w$^tjDKo0lnBc?h{16YFZZ{3= zVE7syv+P55stEYQyJ_sEwa1ZzJetD0yPcP4wUMKtgFUObDkPk+K&rq}f2Si96zDaWAI$srG8h=d z^tT3`ot^(xgT{7$Y02TA9O@7H&_Vl`VxgQrV_1th&5M^d^ore68FQ97R@j2066^f$ z?Y5prcy{@1l9kC&n`~Wz@h&;j7SlT6_VO0CVT>qjG<=bbMA5VAI`VvKl&FU&6&^iGr-+1 z0~&qBFhQC|Y$buBBN%BMJ6HFoJ-Zz@$xA5%>VW6vL2 zhZ_PPZZI2|lauE+diWs4{{gL|W@c$@@1SpK^Z!@t{N%BEDDM}OvBmEnl@d~Izc0mZ zVq*V+si@NLe=NkYAk7v_R~KWnMyeFh)G0gR4Rd?y*c#qfG*f0~W8y+u?M_;( zo^{lqn)jNYi40$SJYJv7fT-p9oE_k_JGJJ6c$gdqP!CA>5ImfoGc2s!){catlQL~l zbr}@#4fNPEC;b%|DYQOGgs-p$pet3~)e=NnoKUA>-43D81)^U0IoWgfCb;Dc>%ktu zR0MI<-^ObOhz6(!##>d8GD!_vr;D$B-t(r3GXD?W_(9P@$V~OGhy(xshT1`gMflrT z0|)B2gaQ0T?pW_B2q!gimdXZ2H>V$b6A%^e9S6Vq#}3#)5HblOKo#H!8HI=gME|oA z`Y$r-FUlDb@&5o+ygUY5r-#xHjHs{ra8RfbHWHDi_G&G{2r!U!Gn7>WiH`YV>T};C ztwhub5KcUND;%h=R3<01hBxyvht8ppJhrH@^q^>voC>&%L~Df$z>b6OEdttPb3BoCRdslil>xJvIdmPw_fN!JTQ z6X?S-c9Hrq_T8UfvBE%o1-!q{N4yz&vB>9pheaM?)hBUnZ7mV*@ zRu-Wh;;Lb+kcTsV(&>9ZE{3OLkn;kGg1^D`B(gVbi}b1rwiJi1?3wUHUQr~b4_7#= zDf7?Ty{V$Sh5)Jr0;t%(%OjW^@E`IB{-4qG?~_OW1q8q45idjyaY4|;#>VxVQNP6z zq{#NW2==Z1cgQ1JFf}CJLevt8mAIMBCu2LZH>wh35~>RPyj*WMm^r{);>=uP;*xCC zV9MWLgvKKJb0GKoH!-XJrW={6v7M8dq4EDxPMv|6s}kD@d`+n*{pmX}Jnq_uZqLCp^C>JNL_-orBKF!U=c~yf0m^WAD!f8eQ(Z5YX7dtA^nKFZ^kp zr2T9QPrtLfKxRh4RirRZGLV;KeW5H5JSwnhfgW0%XNT!w{3249Il~lWQ9p#m?itzZ zRffmP{%G=pxI*IH?e}|TQ-4$XxPVEGuatk4Q-3O_y`<}#(}?pOv(1m66mF8k+?LZ= z{*zMrm&EwrQA!T>Hir8DN0idvTXOiPGe_=o<3ZT}|+{DW2~!p^!euUqrE@|Iv= z0!ZIqoTe1?!AG)Ij|kh&1bH} z%-7IgzHj$YV&Lc01)@pJ5zLC)r99sG3F`uQ#nWMjh38q@6zvfNpPF>8`i^)yjr6nS zrv+_>H7l@uJEn8l2wIG06DQq-88jtT5nhi#-wA&N42P=fv-yGiA;j{AyxmCe`T*-94JbL`}o*F@6U|M?Y=m1la(l@ITG z_%f3n{lZqG}nm>DsOaR7D(cN>|^5| z-C9kP>-5U#W3qmSu~=o#jjc#Gf$uYk9ACWUS>7FrV*E^fMzF8|%XON-h}77KREM+5 z%F?hSf$EiUQEY$6Pk5AjbLxf-LumTY@%8&;mU8SIi!T{Bj?^NE0xL8tLbjsClruIu zOVg1q_IJY}ptbfRWQ6j%^}MOi0w1`wmi8T60r;d%$A;6)y8W zPr08>6>P-A^V>;1INmD8NBMOzs~>1;d60iJV|CH<+D`osAEYXZSBBXKx9>(D-_V=0_pr zE{&Y_{>5eV@~F^~@e|(?G5ws`9#Xf*cTby1(e+Jz;>qGi=MRvik)#=1IId>TQnY{E zCpiWv3fd_|+9$Z{297+B_osiA9?pLkm3G~zw7IU2uc(cQhL{%Cs>;7_{c<^uExVPct-tHeWy$c9PZ_=AeQxQ;+UP3R@drN}SdsRSb3M#$#5<>62_fQQz zkN_csBoE);|K8``H#aZNnVi|P&)R#hbYx`-@PIM18PrxJCT&1%$z-tk6cVCZzNLUs!Eu& zze$(omz2!K<`)T+n5fxn=*8vd8_bs6-=CU_Ey*vzgyepI&6^?DS#eZ}#S&U7{m13T zQA*=G*>FYph^J4thW!Ik&TyI7xQGQIRsv&>>-E;n3{-9qL*P3bK|0dX){oW|uW z%j66L4u@ZOPHx#L@tEI5@TjRIecJSScMj%pis-5}7Eb!{vh9GoM@n;PuaA`{;@d5b z=Hi8UrHCRC){?<6E7;;ZSWNT`$+Ns}1$)QZDw{sm%ga%n-OJ|;R7+eLyP%tI8)99~ z1NNMd3V8$73;({Pou$k7q${*Wap&%gGkp_6ze{q@_>`SJhMt`+MFOp*9C0FDo z=fcS{R(bOQFt$8^#eH28nQENa{Z27{|I&@*^pdgkL?E|6AU>4R{AXuU-LGV?V?u}K zndTFVpYac;wkGc+Y$SLe0DDwU`IUPV5SVD_mh&~a?$p{#J)f5gb{laIdpW!htuqg5#P6fP3q>U)OwBFKQvL_1UJTdMCL6U6Z&zf$%LoY-9R>x|45p+rbN8H7{e1qNoi>d&r=!NdjsFcjBmFm7 zo&ZIEcAGYcc~bqsZ56ALHLr*(!0(X1e?y5!1_m{rA0n6jHO~m1wvz!m6}B zsI&PFJQ9d%RF;t965%Wcn7!HG`k|(0y}V$n7c{dFP{5n}MBD3Qe&5&h67huTCs}Xr z{qX#2tDP@yZWAxV%SfYlZ8luXinF}!W#CjSL|M!1G<)M zTq&7PkbFS`kss%#6~En5)8XP>)nmf1f*t^r(V`l)S&K{&mg>o%rttNZ)5m>e69QaM9=Hf z>wvckiH2rAHT=ELMD!&Up9=Gi(HaG{0Vy^@PCv$4{2etuqrSgP{IJ&eDv*Ces20HK z-d^|!FMklXI}ckROVN@g72BRrxh?dE)p3oB@*v~=nAe5r3)U{!-|RpknY6JF&(1&G zC+z)EOSD$myuar6n?Fl2Xa4zzWbbBkxtAuv?&=~u6t~_rMeSHDh2L_#kV7lIk$=XZ z`0Y21?4bPeh7ie5MPklgrQ6%4S*TqH&BeK}vLNppH4geLH0T*9+a3SR&Drj( ziu0j8vd8K*>@}up1tOd7qPE5gxgi_dIp?O$>xbxwA)GV~-)@xb#-YP^lx?z|NA5^J zq70S-le@~nneTv?^Qe!lv1tnyA&Ij4#j;~xQHd8B@ui`kEZ$HbZk5PamkoPLY0D( zQy~4Z!MJ})G?UxUC-!j;QCZHenbzYhpJH{j#3Gr#W9>jTUyt%cVv&@?z{lG?xmvDK zqXFW;?e)e6N~5#uEUHR$N&6U{{465L>*zs0sJ>p;JBuGFxS zNz(q~Rt2LarA$^trQ>Xk^QBnr33bw)+u>2;sYwInBeesYFXSY=t}jp9+m+MOQm4{V zfq^yWJ0Z&LcE|G4{rQcW5l5U>FSx?xWaXv0zNRyBccmq4#Se}QhQ-H-uMF8nab>1Y z7o;W>yy4q>Z{>7a?0K&*v#IDkF6d6gG%0sKg}S&ROO?>!DC=UsmiXh~yQGqSk+Qig zsRLTfy39Q^htnD27f()qS-g3nGS|Jp@dLk2WyyADBRlQOjCl0f-E=YTR4>7mJPSXc zBdcy;Wo2W%3eE*#SeHj0?CWOMTD7kwqO`wULumMVIxad2>czK7s6C0jCl=#_7gi(C z7o^K5gKMG2G{Ha7B`00Mud#~uyZb?v{_IsX==oZe!>RSR-?!*SqP4zJ@!CxV@klVH zzGl}5;;{J??fJp1uG&31`gO|Uk@e;ln{c*(NpwX%+h(uFWO})di?3HL`#{j+g9<5h zabv6Ws6|NU+rG;@$RRqOt2ui}E->Bqwrw?@wg0;v5u868IJ!MF4w6Rh;NGQkW;Ax6 zAde6>!QUZwfyq3$9=SD;rpUIG7e>ZJ^R~E;*s1unQ}M?8Nt$>?(hEs-&E5=Muixh~ zJjl0ZoKbD{rpyGdXH~GsK@I>Dbm{JcD;JK8v)M%;puXQDezV|p4s|Y;)dO1xv9!Te z8D4u)kzS+k+C2b;ZF!5>7lC(ba-xh1*_U6SeTO8tITKT&LM!=OlchU6Lh(6135zxT zk$k918vGR~&tD`0=dF|V-XfQ-fn*J`U^UYb+ENPJK)?TLXVJ;Dv=kl;VHJhF6V=+e zWtU=bS6k1$_wy^;JYGbJpoMqwet@ZsyB#j64kAB(f0hkv3kc&ocuKqWrisk+p$m&5 z8}=)%oD0E02W|}*P|m39oEyNVyH5E01m1q`1V0L}w^s^Q#9mnDrT5e!4Mv0)_!5ET zjWwt0ODl_=CwFm=d9xY23l4|z`Q-)K*LQ?W12VoB)=9qtoPerrQ0!MU*X2B6uJ~Gv!hLk2XWK=oj1fs)LO4_l63vVgKCR)9b9N z7@hy>E}l7nqL4@F-Vwm`;p10W`>AoA-@bmyM{~*SBap|5Er%3RM^9HKu9lM{R@0S& z+<-1tA7T#}o!HR^UY5asuf>A`e}$C^wy}sm?1}If1sK{gxc`xn>Ye5&cqLLiZt%BV z&+b5wxl_47aNcmLkw^({EqnU(u{3rMd0sw0=#A9Z<;0J09?-fFR&Bu_1fKe>nBn@g%`siWNSt81pCa`J!~x;&`NDT-p)b)oVu?m?pV48|A`%r1`!M ztGoa|XG|AQM5Re4R!0nYCMt*5a_DMtW!JLzHAVlTn~aZOgj1J^QCbhNs{~Tf z$z!%{lsx~%>?GxV!NtZ&#zuVrw7sIaH^UT}T5H%K((U~fWwz7O^RaLAqo(-}r!z9< z%^FF8_->!T3cqvONa#h&<$jy}7@B_W#f;RT1#BVJ|6IR)*vdRtG7L2f1s*J^DhCxj zkRR-jK&aP^*(FOhlzm2y{Hhx27d$nMw1|eEA;qCpMip@rFxFvWC_RH|T%71W`sk=| zxzWFJ%m?t#V5u~1*4%9~9J@bq58 zjfd}593K_W`@4Ng(rwTEm0>q<^hg3X8u7qahyFDT<1YUii2Q1CU7u&6=sXeEH5NoY zr6I}=dL_CR@LaSFceYs=e72djA9PB!lm^n~;|0vb3`okK_K2Ie@Ti7Zt=leT=7)In z-NrR}ZWTF%yQugw+b$ourko>|gOfm@l_t%@JqbYHU_f)8kWJv!GwhVPoEP*(R@TyR zRYsuBWQ?(u{025#=PW>*?}On%57I1W0b8td?W4xGKiQ|Fvfr}~^Vw7th3xK?GUQEW zr1+lKEeEwaCVjgwa=K|e+$fO1sw2^H$v_7ouh)b_r@HA}(JkAy72RXe;gp@hlqX4q z7!|0!lhUWe2=7m)E|O^yBk6J+g~n?KG z_IeE_QZcfeE-#v7)S!y|#O{_mAM}x}q0+@h$h9;uU{M-rBn_LBMEZyaI+>?*h~;Y|5KhzmJ7r3 zvMsL1HO=WTPt$m;$xcEf$;Qz=tKnaj*U=EPCiZOfH%I!p@wR8i!TH*f- zRddnaI9({s#>PDjl|Oe{K+k-;hSkrQyUo2HBIn#0I*2hBeivpX4M(WT(gHy*A{h2IVI_O`MUVnar z_n9tqA-p=AZj$1vF~vF~QBDRaYHtOt$F%EW(P?Fy%;E)454^3(dlsU_AJ)c6kWzd1 z+0u>keW3Kr?NNV(R`ykTzJmISk`&+KhqGAczOITL>?zM5d+>EOwrOyzhMnu!cu4;B z$j^Y%yPP7aO)d_t;QTV8O;{Tbs|##98u9&xD7 z98Dpgj&63Y>_6+Yn`Y}?(B>I|0qx$$uXnzg%OBMDE!XppgV`RFVNf3(x=C$n^E_Tq zY3t*-?5w2DdA#2L4*$eInTifhlGPmo{%B%|u6>9m@ihNXEcqS#z*CzaWxTKadZo1I zi04>&>GJFeWZ~@!=&M|e1mX2c+E4kY?P=z3t>48ZqwEh1JRlI0_%r1b)Y=dLA4@={fc-v=&;RPw%(J zbjizCmr|hT_9nO+(EQ8rwZ6Vl-t}LdXBIkF^5&<#dx2dKGvF!H={t$8=;%>X zC0FO5fM^vb^-ENp!#9H`bdC|oID^Z%ziYgTl63{FkTGsc=iI0bjzF$!F)TQpFVzbb zUZbc>YyW;NQ;}*?db}G5UUu)@YMiAfZidoh(ND($3N%j{)lJ(7?{YJDoTveF4bi`` zLe`3YtIpIZQbPF?Bq}>G1A2kIS{Hf^Qo5P*o1=;;DC=C!4Y_}WD|+$LZ|Y_Tw$!A; zSTf^qcip(B5=NO9!Y`+D>O@uuw_*ZkxVlVJ3#;$$^ea}E-t+b2g=DCgG22rAOW9V^ zHlfAX2ygB+u&n)-~4f1bayaA<>QtSOdjPL-C8+a21`q-neO z<`@x58y0+WYC<^MGvQOhGmw-^Uz1;f89Sf$!C4K$^YjN9PI2?Xb}D@p61k_325L7+ z#CCebd-4@E=lRrBh|NUXk z(@l2siR^}Va~bHAzJQ>v4A1>PG^I~vu%xb-?+xZtu>jFMwQKo4S84Q-(^ndG94_YG zRLq7sV@Ui9Rjr||HI79iz82{x5O&v{!1eZjK~@TdG{p2dcLB#ww}#(dye?ob&}kEY zw6UwIyz{;FKuvXsmd%IjZ=nTHKMWiEO9$9d+ug00nL~;cUa3h}buV4)xkg{ziKWg#1jTNDaR`{a31m$~{OkgbD)9AVA$0|h;g`c4c-YH- z3?oPEq%IvT8_`$KYE|-TM;D$g_+Su9ye=%N;g~m7RSA^T5uy=yNAVA>mg%|3l^Gv# zd09NpaW%CT<=hO##DxEXgfEVGxmP{CPQZn1q30_e@Bdk?M1O_qJIX+ZDU>4ql|SUv zsX11EOIjUgq_Ga3g7M;HfRlQe03KIzWqYh72J-eH)bp}@dIn#n18uhV4)$KV`U;%p zQ8Y(b##Uw28S{iNzBe;7yTDf6Jk@*&ey4Asxyc|u%*;28@)A*E+mnF00AJTzT(}p9 zCj*pcUb@aiaBRchX`ehc`6;#ZQ%Sy{b<1`+q;6>J?3;?v5ds{}$O&UnZBI_+ z<>eyz9&pb%GwF^|yq!@@{lZg~WiQre)ocn?G-RHvh1-pEm-Gyt_hf8gyV+Eq3Mlux zIT9wi0)^OBWgMwvzXaSbppG!gOpYub=pY~IGlN%KMA8{WQC!|_UPxSBh{DN6Z^_1? zn&L~FVwkhTO&ml2ImRXKMjqdN`IOX}QNxlvKDzt%ZyR|Dahh6jDpWPCU==A#N)+2d zQnzfRo@`uPQ|Q5orRB#kjvxQUBgwAn?>I@ODt1fPiu{onHUBG3`hS+h>DE$n*4z!2 zd>89Plv}boTaPN%N!_~ov$i7SPc*sfo@>=buy^i8v@?F@WK3}E;Ut+(i3t2Jl??2f<{HSxA4$4@`$_w$vRe^Q&|OD)+vjBx?WCoVvFNvvPo9g33ij)zo@Rb$f+4a3oUzSZ6DJ}RxxT- zlRH=6Xopvk{XdQ7f%Tf_2M-(yOelo)lRP&%VH zMWd7?CD~XT*)Q&%)P^2xv!6V4CT@>T-ns#nLml6Kx0{H(^KN|S?YC<3_Uk+&om@iQ zpUQf5SUdT%`_;`l^;g0H+KDPZev!1ih-+tze5%Gx&->d-Ktha7GWjNFpCgPyXN|(N z|4Umxb#|XIFiES4T+~g#_x%ksSj#8rgU&jilXp8ZT6KMF3t!BPiZBXKs=9+&2*b%n z(p=ITdXOliJzVoeOm5iu`0h;|^OHZ*{^q6;wG#PfBQ9-C)9{!aY z==1~M^(eAQa@PrZlU;El)rV31nTbr9F+wAK5@ns51Km1@eafsooUFZ0*}Zl*HT<+P ztoWJNF*4mTX>2#~9eMZN_`aKXng3ex{Gx6<6AD2+?{jwhBZ5uMmb+NHct{cvNg7ss1!yFUm9K$FB$Y1P+-Be2LKkrtQ z^px{x9(apW#Z})v zNR9)tc2TqT2Lh9Zn-Z;`mGn2O2m7e`pS`@%-mSNp(a%QuZaDqHrQ;@z?5th<+3NLI z*_t!zB#P1WjtSBMvx{&JFh&kSoe`mDYXZsyWYdDv}b7BP-9Yb+vB znTb+i{&hz_pQUa$f|xN>_DM(hvytvwLY<$=x_P%bIk27&H9ctgJec99N)?+eE)S>( zz7wp%lhiM6^!VFGz~1JjF82&9xo-koT?kYCkG@QX@5u8a<2Pn38@egibP8F@_r5 z(Dnw0q!?LT6{BD^JxleSVCC;lh)=t8kO)8bSQsvZtk zF*{cgXI0T)J!xTEylw23X1_$3e=_|j5MC;fJiFWdyvOP$bIkUeJR{xzQ+NmcVIP>a z%PPCeZsmD(Su6GVuRBWxBsc5Njk-xK?`m{J-+T3fR6?8~uKJO|VFxj5AGKMJ{*2>D zbGV90KE+Z#_f0C^k#{`&Z7E+P#`2(=T(IgMhn0-Zxvlm)*8m2yK9N|`v`yMlE^l-9GpFB#prjWLLfUG7d^q_}rak>3utk3df zon(5k8%NCerBIBNKQof)zfB|7cOhDPAu&fb-bOaT-Sgg!xGku}!SBctCdh>+NZBSR zeldP_?BTlO^xyu_VEgC)k&;rS@rI6)U4pq%!DpaL2elUs6UEhKbBw(&OY;liFuA` z{dp?G^oARQ;84`R@JQPzTG5UyD2n;SVq`zC~9Sp<`w2&)oqp5B8EcOH8B?GmDJC`N`d|PSEjVc~= z(2~fO)-R=(`f@X?^-GmQ)F3_*!}lz%B~1R{L3xRlXNKn`@7eZCm?(y`2NZt5QL}$* zucr_LAxVJ;iGK^DTNRX~uE+EO=BuF2K6JCsc~rln6to>F;uJrc?C^F^3e@vgS;Y>q zyTSXSOYB=BRUUlHU(xqjqyvDzd#%Y!p+G zgiYaNk+rJhAyDxMNnc3Qy+%e_0X|7R*Y@|2B)c_a`z2uz)24tzbD*O6{ee%vwW?U& zgmMUAx>CW#K}}b-ol3yDvsT0 zd9II3u-x)|eV$G0cJG)a+)oPbm+Eag=gZ+I*9gkSgm}7TwCNc4HUMu4?z#Jg^f#12 ze*uZ%D;38p$MO@^M+b+xe&O%zDH;iPWZvsF_*dDqw$!SWM^3Sy))0rX+0!A?@hOyEPeYs0n+60^r?hItHn!KmYdP>j>q@p^Q%WyYyyh7< z1gPP-7nfbJBY8^;efj6wnV(Qo3Eqy&PL2Oz7n$p=Q?eogpAEqtl^B66^_k8~T&h~* zgY?lofiZ^1ni1rND%tKC0_cJ+&U+sfp5X1qt!De@r(0cGf3yxV8vocR`tyvt?wO4> zCca~ey#JxV=!xj)tH#FCX9e~VN^ju#)t@8-{?t|!C1|K0l?i?-c<_gaN{5OJcfR;!yhj*lHg%PIlr5oN{5ep2->O4f z|G)05%0J)DbC^#~le2Mq7HPcDXweBD&96@(64XZekszS{HTMHTs!}%7H%;4KmEj`e zr4p5n^W%SQ1kXwu_^H5PEWc863CSj3J@JNH(Z5oPSz!IIAC=M{Q3URc`i!N$^A8G; zwPT&ifO5A#Tf29PxufJAPlg&g&77HngbvJWPKlYsGi*A(+T^XeUe?o=jEnTk{N~>HJ z|DV6GkX_{~#zWXrzGQ-Sy8ti-KZ9Z1L`&7R*<`|Rv`u&JRcWJCe9=@tAvyu|Ld!THmFe$QLj zdslL(W=l=V_3iM_u`qBfqw#D+P+Xc z$KX1~p8y|iS0PCmH8VP(xpL)S&zf-I$dFM_LY{n^F%;$hh2Y#Ca!GQAItKF<;^ngU z`(6Fa9bWSQZyar$Xy;~=D*n8fJ$3ZJ06RPTAV zp(-Z`!){) zTS1JGc(KK$-H6*qnDk&I<*}(9V91q8@~F1ZwNN?BVIiH#u@#Y*v+&_mjt!CkAJD1f^Yv%wzz3xOx4pT|s z@jO8chjn%4Jvwe^)(Sh8GF-_M9Q0*kdFsgtNIyJ5_ zR6MWWF8%SII^}aeJnA|Z8r>;%m=iaJR_%^aEYK}iIo4jRpXzG=PL>}O-tY;n`7jEC z*M=Lid)RbI(`WYEu1V0me(MDe&=z)Sx#n%Oc|)VJsmAR+WH8Dq!4z0sWt~&@V8o#Q zaHF40*PgF+Cu^1E@7@Qm$RE>F_s=%Od0#(D^Gn5!-liI}$@mf%$J|w(pw!(mayV?# zczU%HqfkE#isvnk_Dv0j7z;X*mNd65y#-r_y$^XJ((%E6vk5%9cS4eHFK*xCCpkD8 zc+&i^ZodDa_$&SQv;p6SN12~o7CUFg)kDRw5?%o}aLnb`I;gw?5#ZCqqWik2^bNO` zvdny>B&=~ih@WIc?LRoBH2F;_Jb`9s3I|PJ)j~w%d`J(3P}cFW-b+6R-q7&>*754^ zaSDf*I3BN;kt=_c%cvgH6|bz2v**02!{zxNPg$Ht4VuAy-G-w7``!Z?@!?QXl(kiF zix04GxtD(Dc1S~A)tiv5&yCW7)&s>n|6XaUs<+3yvYyiMnuf!@gf-2{5wK&cXnwgq z3R#3Dl{&qclxKU(20^*cSJ&b=vtnKv7%dVUNS7ZY~%Fb08ZsDs5&;e%p3bEzs4w z2Hg6xTEOD#`GW-AJ=TT1GU4&FrVA-dd{D{DB@s-pD7t0kH-T^AcGiZu;{h`HSV4D# z+c8S`L>zc4uM=MN08hd;aZkZY!KDYU@KEM4cx8vH{PpGSrIuZ6GJQ{Z^zu(S<%o;= zGv&k2M?#o4MhX=C5%k&CtE}CgcNOgbWZg0>Mje2tnNkO14y2N zC0Q<2_5`KjW_v|vFt^lMKMwX_oDGTiBWQ7Dc-z0Nm5cPT3jJ2S$DIb~efcVwA4b*# zcr+2a)i|7|iZ?^Tqx^P1OJmxe3yu}C$=i9Zm7l}_%{_64(XP=4;<}&2+$*|Ss_5rB zvra?#yRN8n5p_NP@sM-YoT7;!CGG*h}{}Oi7=vU7+ER%yJI}0N5ZwNZY6HG z%F>N}=IG)wA{Si0v+xuOi_lPHVCcqqa9mScgwBeQqvTlE)PkRGu2xZ}p1&MaoPSQw z+Zo}ZGUD~8;tTbq+~f;-w=aOMX)&64sRud{3X^%CGs}!$ABH=v7S~!4f$={kV0We` zIikTKMWG7o18zQJGp%}!zaV$2Ij#z<_?A>uEo7H!TlG*I9FBPhua%-N0;A`<&K*_m zm$ntF0*fH0p!`tj_)?ABM@OBxXIMMR_~)&n69@u&|cZxFAxT7PbH7hp?b6 zJQ14o1NyA6;$<71XQ(I+Y#MnXSH-w>bMww&Ll}P;653YF7*auX{>bHXea%2z(rDVB_uUE^rOFnz1r8GWC zF_F%cr(cF!N+C75$HNuX<$ayT4GoyojTgDOU4_qv*_q}I1g;`nB&MEk%|qarzyU<%{1!+Vfl`LI zq2WN44BM60cuN$0RwILfXM6Q7HRM)b>NL=@!-1W`*Tb>kGj4s4uM3r!JKhVOZ3&Sk z-})v`cKutw16_;37UHO1rm5&;j9elaYZ_yppx^y7{ex>_1;kz1xi+_5 zs&c?!8|;+N1Yw6|(#98F!kSpC^y@fK^P?0-OgSe`monuvg`|r0V(awSCPxVUC0JrD z0{_n#&errLdu0swJ8%?DcDQM#dKhBdUj>ys{Ez}Y?~=)GOSpir=cHX@=0K^}b5#^( z#=K{p-6MjMN)z0FqXJnHWNOCgE;CY1JxqVfYz*71=J#=Q!G?o|xgcri?{IhK5SE4> z!tHj^fxHgtz7L5AIIvRgQL{J0jWVmG)qr}iF3%f2rXD}l8L2ajH- zUdD9}3R~;-jcXuBvZA44Ewp&9-S4?F^~Vq4nHp<)edzD=M;K{Aook_9xIM;IJj4;EQQN!6$*i3ERzKf=B1!;>)%N_Z9A^BJHRAc(OfG=zb z?gmMu`PlBkxpA#y$iA7}W&71P(y=JI*@Ufq+ms^8!7VAv7pLYAR@HEh_q7HKVZ}0% zI~dj77ym{DXg#vqRDfDl!NmAeS`}vDF^7{hp3O>50wyJ-ae=NctFtdxl-_@O)ZH2A z{gq=BAgrT@f~wCouLrtgjd^smPz2*`%38u|-*hsn1YTag9Gbn0^Am<14~3*%x`s8a z=Y^eD`y=~hrq@myZ4XD+m=;wmyQx z0q)rccn5VZCX}A&_oDx_Z-2c?PK3DYt7z09sC}y>T73-iNK;rG)+~L*!I^ylQN>?E z%H>fxpx%IXGjldONWo#y{6EXW@rC*q9}$<6?=bGM*Jz!>I{v^$p7!%OmSaWNcqrB* z8Os6I*I{3N>h7AFWKeZLhXYat{-zI>w&|Za{9t4@XI)v^d**zGR8msb3c0ge{9QT! z7HH%}+4F%L9 zUyLmuUVn$z4z_m76(XYqwpD)G>r+D!(bKYi*Dt}9e9EPJTWOXieu0T>kIww*_E6mT z*3ayXRl{$Bj)#;B>B&H41sOp|EgH;r2`Kx6iUF!rx5w296D)}d+2aUKhUTnTAotlX zjIB7nEp8~`p>zZnY*7cyf2!O3+B*m6m8Xnn#G>oQK3=(tw*T8B@f!+LXj9SWMf?Ck zpRO5JPlt>i6yimyk9pw<8xCPd*xv!GZ`|hxK`|@6hm)#!3w~I`cAoRD-Qz&WIiK7v zDEahg5>jx5b%$sF3~?IPT}saC$W@5Xm>iE!N005mdqtPf#8QFd(BI zFd|j_SB!H)c;}FLg?W8WU9#0?LmfO6Y z2UU04v(MPbrn@gQvk>Zl_+|{gPI-l>zvHRs*@JL`WSN-D!eRxPw=+3_5YgPN&}zTQL^?l8VG>=ijp3FD?^! z4OF}tSI1BRMzjrm3s9oG#^ZtYY$1%!ipWLRVM3-Nk!qm>jVFxCH}lPw~!cJ{Xfk@Ek}DJiOdGl@SYJRa&)P&ENfd z_4U?;uY~K*xbG?ha+=Hl%eB>uoK}~g{>^-%W;~XXUIz?RO--4>7$IVq8r7L1Mu~q1 z-wF0lZ4A3+LI>rIvR~FnlV?``MZdxZvB3hdfY*qE1^H{GsvQl?<0{?c;B zhozsrXRF+_w_1-XSpvx>jFl?y*Qz}7Xa`aHAHUqTsIfRI`Qol3r?t07?}b!wrvP>j z6i2SHERxVaf!;M!vtakyPtKCm-Sz+U(>qu>t-Wz_*vH52V5e7R_)>SQdi4sF`@jp) zfR7LFXpCp~OIB#mWfaBM!Bi(I>%FP8b$kzwpFpL9+oGYoEi(Af3&Z8+$O*$#%(CU* z5MWgD3P-{v6y|xbt71KiV>@w>)#gZky(;|M?b!#J*b+WEOXf_iRa0u3IXCwC29l2X1)WzLjS(Kj)#%-=;Tqc(yrR23!uK%G#)|!#*Lg`{KI( zK6H6VcM93scm0P{Y3?VCb6-{4M-|iRr&jCE50;3*4KcdM6a4&GhD0T%w+_x^q9CGO zUC4g>3nvX7;h=JRyzE6WkLXN(quLeZ&&DWp`H#pk?p?bZDZ=#tt>?EQCvu|CQ+a;` zuW^Y!`tgSnk$@|cjD)szjW;Zy8LPcckQxSP=!uX?_RwCNa+?qSm(GPZ&$gD5npzZ5k*M!SyPzs zyp|G`Z$%|^_;+3JwpONI`)K}SfjRwNu~`VYrQ+BF{Zym%MG+juhe+6kr03Q+ehwyju6jUo`ULq+xNG5s~r zJYh4QU2DDa0EkoKNPs4uZX^2G-_oqed);_&9Zb^CsE1T45J(}51}ne?bv zQ{uvbpu52z&?!Hzfk1nxC~kv23giJ9xE~#_FM{tXSGJ2rO)pAHDoDqyc~9SIJ&$O$ z?0dWBY_%suyxh^Yd3j{&c1ALI!ID0Ur7TO8T!$i~X^g%=RMb?ysjTy1X5g*2z&S7_ zz~JXUR{Q}}hej6H9c^f`_%G#xS75T$aS-DB5SXFl;fZO$;N^=m&2P8tUD!{=jVSD$ zcN9p^CLBoq9RsLn^6uOt3U{kdNA{$;!# z=eiz@R3{$Rrt}g_c$*eVvd^SR2uD<%Cvi|+22P8uflPj)MaZF|cAOzw+s{MrX35?| zZTv}*2&-08hiD9XsecVkLU@5R$b_z58lGsv<*CLyjkl@z(DA2oeNh#ZXUtwy$&Eh2 zjCnV1aTlL5`0cK{p@5MzPoC_g5D`5090r46NZxk$9{<4sg6F6zgWs(kp_71F$Q);% zN`a8ER2jaZwDaxG1|-ZGX$A-^uW6h6fERcYQl1WF{|1%+20ewCzX=h@YkQ}Dlq~9& zp|Ux#x}7A4?0M+J)#e5agnd>SW^vw$(cDgBzEtULtSp4dZ6{D|XP~#Ex;F_$0f6YW z$793M2Y!X!moj|-Wu~gc>vxY}uG@+fEZ+@v+s33VKA5fXj_Jk@!*;?xr6VPNut|{iQhaV$1DHKpw{e9K-apZ z1{@|>^n{2;*HR~t5Pa}$I%a1*gm0J7q-&%HUvp{iG~gmQafN*oPU2bHf9ZKTwHj17 zS*#O@$y--RAQ%I2KO!$pHZT(K1)Gpbn6BcJv9Z`%t*dV`J+mJ?eV?1@&ufxT$hbVx z<%rIk+Yh4gZRK})>ZY8yU)}Uwklo+}WxWq$1cQe0pa0A@ckS9Z+&bQZ|G^xwf}3+g z_}HPRIDiCYxSXXaSg9-M&dlo3i62nEg%nf0Z!LA^1kQ=#u+W1|l>&Tw)#bs2*r4;e zpqW>!Bkut+E>umF(x<@RfoK%sx3<-_p)VgXtc<_2ove3M`9cTCciC?TM)HR2jw8m9 zrIgo~4EVr_>(le=)hJBxCF;2sp!_>uFRWttfFm{UiL%$=0SBs<;%Y_`v~_zn?W)Z6FzBIQGJ&`I>~J|ng(A#%2lDpt zM}j%@7aUH1CrGK)by|i(hM)@?MO^(Ux#nXbEcF0n0&*?Z+NR}0G64q4Ou|&SPMz~b z=uY})&`z`9^_DokIbl_VY1}fWzKXKFe}ni!`HpTE#i2=miwy>D=asZ2cnm5@Yf;LD zDAb@2i$sDejkuF&lQog0Q0VSKWeuYL5IajooKYIZv=bG8;d%kowSiF_b<4qB@5(N< zKZxDp9W!5U7AWSXn9%Kb|F53DQLYEg zc=71YDWTw0^%_wY$g;@uo|VHYDye6S`gG-WPSe9d8H?x;wr^Bm>Tzh7kuRJT%A!d% ziEd$-O(Nd!{cvGER>7^+9HPh2ZaZ(biI%?5E~I4r1~06E8F>1dXDf2IFLkw@fhj2G zWUk-9a(3<7Kr+^d$P?$Q*hv{6-k{@?%`N(0dH58_ZY78Ow?NU@annVDsh|9~PT{&! zKuY%cVfIr|!U$zVISW;5HGoQ%i12)2F~I#SbHIJ!NU`lLp6*gaWl@8w!2O<=U$G&8 z(fyZubUUBpAJKq!tc`Sy<=cDxJA0Ie*|a-$H*cCid>#8&lk!LaQy|(iu!%hw^2a^9 zBiCWiQze9bn9}qxxbbo!91II=oW^>hlBRTDUmcGot<|p)BhlZ{ia2{qLi;54$7#jk zN%?vIq9I^Q&jhX;Q+ZW<3$oIlXbPu0N0-Q6M?mn;p;g<7(U#$hh z<&PFzE(W%KKzAN-)ggP{RNA(ZXb$yI`Jl4`77?w41#e*|Y=d(?&-d;C_7^=d$k%~Y z6eGNDEit8TW0Q;RqP63FMF=VIz~vjz#lhxJ)!NTHi(Ae?u7hCV^#DJ)QK}#6=c(<> zKbO@4Un(Ek;=0e!Y?y;no|<9GGmdQ~*R}YMa(ag+#0un{1o!dfGb%p|kO&Nx9fHPP zGB4|z0>ehKhVoi=sJ09*2l)@c&LLrEHV6&aa5PLGiE{F64Kt^zb>?rIx5N+ zPK&M^G}s{mRE6|>QHNXpXesl>KuIOnD2Ih}KKO!@VkbtFId5Q%WY0?MI~om4_Shl!@wfMb6yH?#uip-I$n-5d zEln!(o@l|IXhK;U=3z$@l`uXPmv3nJB#dMKlF}DcBo8*Q2+(WCB@>=mB5qwMeTD*c zldwlyia-rBv;3&zF&GSc$^-;W9-W5l1LH8G0%x{x#KS?U5aRa83;zVXiX_7D%+}A0 zJF#+c{_QD&B#>{#U)wKa76w7zK|kj?Ym{rNw2d;{nZJ3I`y4#;9P*YMaMYki=f)&V;5-fTiw?~28mgJT-z z6(Bp+h>m%)|3Mn0u7e<+J)`>5V`GA4w8s6aVpC8SMF6%mQ48KpAR#r;FW6mpIEW*5 zt@P-C8&ST40XZOe>@a9O{}ION!uQ^8RiexHhHp$f}Q!H9*G5qL&Pg zABry<1{4^^W%-@T*k8r{ns1LrFU-$G?i?8tNw}qcDp*~Q|+s7 zV{K2TJb0^-!j7`N^H<&*Iob^gJ1)Z82_&!KR$CIa6^hex0gw7Y{XjV2sKk!70p%5_ zUx$87!Olfa?>{w#n;n3}n?w$Nc?q*q8n6wWURP~pNtVCE_z$hvwqXc*^4sE>sr8os%+DL+%+c|IuK#BJ_R+`WpK4XvkC581|Uwr%d?lrqx_0+l1y17L^m= z5|*r&@jz0_JQWh2XlE*7lVh8E-8^YY?%mS#OPY2vIPG6On!haP-cXwML5z>g4U}x; zZ`=Si$Yx(kg2{}9Cl$Mlvn8g6;GICE4*vOyYIF&b1dyu%+Z6e!H0Sx3yUbMg_vQ0! z!p%0KHk>yyHUbQe+`gjOa<~ZB>3SIUZo7C}u@|jE$EW>{HxCmVGKgT81_@peBxDWH zS;4a{dEhtgclvM!L<&`*Pj1+3v>h}GG-n-!<%DZKWZpQ2+QZLsnB*%Gex!D@po=`c zZjS!G7IFELe>4*+O=OAOjZm1sfF?N!Erf~^9Vm)JOAZ&j-N;(qb!wQP{9&6-&%*z; z@bw#49S*{cz&t_?8XwVf<_5N1G`$9s&vWBW&9)GV8U(c;26G-uP!`4n3e_M>&0pb4 zk6Wwo!}mc!Mr-)@V1GsU&WGS=@dOSUX2pb;W#kXS7!Jd*d*D=K;4CkkqsfjU2X;hq zK5^j-m8AW(Z7p9P+F6nA?85i)xQ;j48tob|aooPTh2~ih`kN-@xu&5)Q)sxQG(?cH zM$D-M+nw|39{rmNQaX~(fot-^3&RFeO{#dTk@Vce(RvWnbICLY6LUgGPJ6JIDW@k4UnHwYJes&y6yhk(b2a4-Cch8sTPfR z8?P%2?Ji&f*!o!Tt)$F1Kos0mTkxFS4LJ8SZD$#@KQq)&x_|!MHUJ|xx5J~aw@K$c zGD&lbrl$@#B{Ueddu_!H?!O%<=iyh>z0Xgn!!BF;a;zSGYtg%J_?x0_8ZyHM7W^3( zeq(z_fC86Ai)}Z5J!)~u%lKmWl_gBOD$`^22dXhG^5%nHW}#Ne%HP+!0vn{&QaP|V zCa3HEGrGWx!8S^D<*?RvgoCL7-hDiazKG&tiqX#b~SOgtKu`kz#3Blx+*emLdJx*wLczaUJ(dm+ro6`v2=5NT7w?xg9XAOt#5BXxToBrx;<^Lm+DCr|aDy&j2f$Ig@~mt5s0M=r ztFB^dxzx$^3?!%eU$V5+;^aO*{TmttEi`-+X|T|tsl`2aY=Int>P*gxT%X&$6Y~OYjodml6UHnmAc}Opr;MnCGo~j zk~Us?!vcmbZx+T2DYC#rif@^Yqs=%T@Lj6%COOS6#qVgmC}$0{3@mEl184hloA{u` zK{NcL7v2`jn~$Ogv~NP(F)BIw!n;?Qr@`>xzV4h-5NSEyb2PyXZaZkRQAjJbtJ3*` zI)MpaU*JKYvoB&?kHbo}aG{TbKU!dqp2z1^L2`Wa$#~PA`xaXskxV zGtZcV?;rXu4Az-y9+)%D_F3Xb>FDoezuLvuYRu?G6GkzJ3g2CQ$}M$1KwqeXI7ns_ zer4%!f9}U3`xJrA7r@CnvQD!tIlnEp33;}5MS@G5)X8q`9T|8u4g<16;Qbr`(QEJXgKN=_sLOv$%6Xeu7)c!P^BU{DAge%Scy;Dr)%?<3uvs+QGNMam zc)^9jhU}8)Y9XoA6J@rt>|}E6G-nNRU2S)-(l0XOZ16(aJb(u#YCIW_c!WTYTRA8k z>n)1?E?GPaS$)Y_EJ4!g&?*-DChY@QTy zS;ClkVoCyd^C9@UC5>y2EBbYo7ii!Npi-arS10(ES8k3a_ExR*X-KB9pRMfx@R2+mH z0({jO#`Z7&sXn5c!CPEafEF&e9# zqo3k;?^3H1b>!pxh%-O_#i1hy3%b-j$Ix*OozJj-&z^lbmAT0D&XgaLb%!Kp64RIA z6VKTC2kxB%M6g7{gCEdEs5=tdajKmr?<(%Ok&P-dn5<0j7ZaBFdS5P|7lf((8TM52 z`!?LBDdmZ>ldr{G7q|dy@vH?^Z3IKBoF$wcT$Gx zdYWN8!Ma^L!%Z^P+jPH9t^sBL0xKsqG%nHK9LE3&-x5=0=}=-z$OYygylzH&zVs}7 zMZ)4c$ZJ|ca~5&-Aq+tXorYwsFX?T}Y|>8dG)cRokNQXs77yJ3%=(f zX@hU4HhFOd|HP19M{%pOD)Vm`a%mtI4*)nax~>ODKm-3m-G&_jS;e=a!*3nEzfBvf zEus}{F1-NF-Q9W9t8Q0@CXK^34^~VwI~9sWO%nPQdjTck_qfo7?QON&_vj}bSku9w znRc2?K^y^p`tUBHh(vp~&ANcMI|l!{6zu5`a><~G9fc9-O5fE7#J z#eiAD0CO^VnITjrFM}o2bY}CQ($n%+djW+tvsp~V(;Na-20 zLh|V%Yc_Uj_90Se|21fW=dD%|u>xzWzbcDrFVU@3wZN5|v}0k-FAplrvx?_GWF#Nh zpJ~Y~Y+piXYCE*`C~C?tvElnJVe_K=>*Z!d4s+xnC-Ih|phb<)(2mA=eG}7F@JD7_ zK|4@4yl7^MK4Bcfxj;Tv#j6d#(*v!fml*V=SJN?7y{3`aX}y&l`wST8_TwX^pKmXU2t^917VjB zQ(KvNi9Ek!8UwcbO9$$=amNDT{qW}|ASGk-l?H^}Kn1NQcrg!lZ$+lk)U|g6(OFRs zeR9dGiQ1L`xWsbwcVtX{fhxMd)T&8K6!xX`ZO>3mW184haw-Dow?*>^hCc{R7&~4i zpJ?;w*ex>~^#*z5`w)eJZSr^;C(8(ker5+Q#36s!Ie1y+wTK#|;_bvZwo$}(QK|~F zlV@M_3SFzM3glY8WCFJ!Le;af?(xijf3W^48oPRtS<0R z9x_*o6YT6B|5hGw&m|Uvj)&_5)sz&^3xE`X2c-uKlyDarsu2c~UR-~WTI83k)17Ll z>lK9kop`wJd!TT% z6S!Hg*ARytQ2c@_rmx9{GpS3P$N)A#{&)ZFv%o8m%XD1IY!hmFK;};>fsZMa-9!@7?TnE{b!0;OvqIaN(a*fK!kVI3W6?0C4qR2EfR2McL z_T!dHhbbpWRtx;g#n2&+C&-{*53LN=90a z4-L;Ro_0fAyF*E$bpazsRy+Zilbu>SQ;Sr8JA=;s^3l2XK?hypaB-N0iDgN=BO*)n|z^)pSMNlv-`E7899|R5(N-7NuxW;O@ z#RSi#2u@#Jik)ZghRHCpR|)ew;ivp5HXDN2^B&r6eJ@&9u=lCCl!RwnSxAE7DQAirmp;KQp4qAus?} zsVHN|t^JBRGmgA^@Za^a60l_2=nMM4s#2#K`x?YjwBw*t9!M`4$x(zV7vbs#nVYJu z5BH3&nJxN6-O*zR?rxqVy9$g+_8pk`99S@XwKeyH7&X!1P2zA3W(qa`8>l4%Vo?sK zVgZS;eo!=86*@`KJB}HeO|e-)uYvM;mQ?1yLY~+Qm8+l-z()<68J~g-=&C5S)=!XM z#o?O5eF0;)lh7gqysSt;6q~Z~kSHu}SW}=js1fb+?a1~KA;A@yQin60-+p$e6X99G z{B)otDfS2QY;yaX_jlkuz=W+^?F?I_;S$a^f5~}ckZJbg&!i# zUEy(?Bwg>5O|-G4xwiTFn#&A@VgRQcQuCl$S+gNsf`^+xj}79eMPE63mmQdsXVX5x z-BYV8vg4OQ?JfYkLf<`%pW*gP2Pn02{f1mF@Y1vUz33$y^mgy^4w;$xuis5kYA4so z`K*{+WWm?7&dz(lLe?@VHFJ@xpmD<4rEr&w%wZq)0a9&0 z@YY|88Ogu264Euli??-B6yCQ+hqu#)MY#qV9K2WqaBG=1Pm1e7Yva*5f?|CkdrBsc zHvmT1ON?8=5|Gsu-(cDtPHXCPCF6z+8ew*%T#ot@qH`DQ| zQeOV_P^W$fYVX4-S~vYL(DUlyt+Z{H?<`{+j3QE`J9UHsJVqjF91ZjrM8&ijsM)9;nxGaY> z3g~z;QjPRVP6^s6+D@R)pPY$jz|dWG$UY7Y9B_=mpTZiha~;p@Zm5 zI7*7CA|ZAI@}tYt-jUoyj&ZSfppi^5cZKD&-qNA_ir2LaDK`(i)lco_S+y*Q!eZMa zwTF3G{_fpyqU|)BwXT8{B_#9a5)z|9f4+wZ!WOiVl&Us*{@sZiO;|`mF?LwjT%S@- zzP2(VG_ovJsiCzCL3FJ&3<)`0Juh*`K>xEv>yMO&s(Ua60*KW446-u?8d!-xq;tceM3B|-09%8*~36P)e z({UM{Y9m8bT%J+ebEkA2_8n%b%nNdRnmlLV2H%VyTI7Vat9MF*PfrZJ{lZ+5Z8zs_ zms#6ks3re zLmOG428^j3*#o+KrCpursHlq*$GB0N;Cp_EJ%iFO?7m>>efdVH_s}NTyc1p9!y3j> z-#7Au)gowQZRBXDApwk$j9pRGN8A^I0u*T%nNp|GXjF8=o`KLOFGbMiy(0@YhFxO2 z+E1HzW7ydbpc@!F!M#PZ)yIt&P>+x^1zxTswu!!%4!SFF!^Ug1toyX33lb}!TVnA# z<{hB>`5C%aDrnqUTI9uYZe*KoXv}8H<2=bXV^Ogi4<+aQ&g__HQMXPQydw0Jz|X9z z9g7QpwEjpFa!s+O?AX*IwCTreyOJwG(jUE5_cBH>XXx8!wi@mqHl7OM6N?5@<7hs$ z=m*>2UvWpXbFZN}=S1gdQ`^RL+>Lq1J9`FME;x8}wZz?UiA$kkCgG3*iNIH$ifdVq zLZv==iS3!>=c4_<8t#3B$wvp}XEu5Atb_i;sVyteC$6smVZP$MJZ;EE9B$)j$iZd+ zl=W>JQc|2lL7=Pw?-^pD88l^_CXvpG-?#=UlR7+BqBiByYKT@jV-287Jb&uoRZ^2fs=!6v3<=G_ zzs2WC4I5D5FUmU)R5-uv#;wXk?t@L*mhwQFlTZ;2o+dGBO|-YUD@-AJ$eAU%@`Ez;x_SV_vubw}0wgj8&n2#GK#r+MI-Uf{?`3EhTlBZ$Y zivIu1O}nMEO=f6>#4q;E&d_*?-*KCm&}ic^sl%JvmMPd;aKXZNj3k}5(zqzQ9;y)$q#OS<%Zsu-UF?>B?}ry$vzG1s4Q8orcO zkiM?}t|%?-d-W^hK|{8Zo9TtsuhY$ovRiNLtq8zgXIy?|`r)ZZiB!dq=qqznT0>)5*ei_U)0K{{x{?ri@9k?T=T@#oVWl&$rjd`wJxschNX zZ?0_i&qtSah2QDh^Y60CZ}_C2{v7bnx~j6~cC7C_;GQMrw`P?kLvo6gPt)6n$bXlv ze*JyG_t@5~pQrj2DD6$PCFmQ>DXA_V=Y^k8oqX!i2<`8>*fAu~L% z{N7(#BMTyLY=&c#$w^%rz^wXrL9C6VQx^uXs{#8O$BZ$8!-H+CqFH=UAQ zzZCRLT^b@RGcCK87C5Nx1W_-}HARJtmn^^bxAncHq1Xcc(_a7D_}y-0nR(;+mYVRTY13Fgf=ZyZf_v(}S7`a*hyrAKPdN zvDa_P)}BsOR3@W7ix}m=Qc`p7!pji_=}NbmKP|QJPUO&P*-$pgSA49PPDeY|r3La#*>4IC#4(w)< zp^e{Hd8Oy;Zt(Wi{dzI;Q@PPBeW0#XzTBy8dEP8=rrEdoD1E4|ao--e3){{7)cXo=j8Df6XAC5){I>KpOban^vK$Kr4LrhEb(L0%VI!-4Z2hv+x+i5GJ! zOrba5mC2YJVqGo7XJG2>Pc+qNB2|fRq7|JFUD~+ z3SPd;6jDDc&}ES?E?GlMe}7)sW%5Wnf&OePI6JmQcE+-cpod~7>+*!}-!f;oXxu<} zc*`aJ%V9nc-%vQqIOPx-4$>69vU7IP0``~i3kX(u)&&jC;gfz{-kDtb9gBB(hPgYpZx+>4fb0&1IRGyLNaI}|~XEQ`7SIQ?wt=WeJx1S)5S1a3nAqiIG zm$IGi^?>B9E5*3_d3jYq0z>_`F1%%<|J@?PIDIfDUC*!uT;={+Bc+EQ$hd(QBW(E=)-om zZy@>2*l#}}6|YWzk2bOwvAFeLZt49QM~uyW)yFWh3|MVT8Qp$%yF(W1-*f*=JN$x^ zL}%)MaO>=&O89A~l0NyZw>CwL(gB*S=b#OjhNiDsS4RD@G*o?%cjRzB5O8b14N9>q zWD=w+lOqX{4YCAuS}E6BqjAX0my}m&x?jr~$!Q}bckr*;;P%l~aJw2IX7U%TrZ6a? zs_)OR-R2;0$7VuKS0}@iWm3`?MNj59PPht?cDS`kmLF=xJURMw1(hZ=iwm>QWNF>q zhdpK#5$XSC&lBjyJBDA{O)eZxCQydH>>_J}WHe1ugA>LiURGW_oQ3R{KRzNSB^F2E zq)o!jOPhhAp`pcAf%CA3dwxG}bkF3d>M-9=)lw8ck0t?_h;NiiJM%t8v3h9`d9H2m z?JMJMMQA!7%auvnTbS2M^0JefqP>C$wSLm{1vXqa2oY`P-S$}e@gwL-eXy5rX*0^` zHi|sT;kEPU&hJw43iKrEJJ}#u6eWriU(gw_YFiWYnl?;mgR+;lakILE!g!NcvjA4l#AcskV!)y2SB%N^cflONmIqyxMob*?D$Dx#k$Cb3#s& zQmlq1Pllgt*8(9o1jCc&C2j476mnkN<6nK&&D&I>N{w!lgDKU!fVmNoX6UN z4s8oM`#CUwJXy(PjGiR6SaHTqM$+qR%6s)xx<41y(=3fXRRlG@LjWl5&H43uz_qph z(~jP$uwnpH4gx#>7HWR-uX)8IfG2ApYnYivij{W4d}9@r+lr4);}PXBb)G*uBXO{K z(u2dA5W)Nd$4478F=u8=!wJ8*+Pd8s!PnOYOz1HseWQhrGe8S4_DTll7TmcKcX(zb z$gZpH%nHv{+ik!WF^r4ywj(U3mZtp&92FCltG6(kgp1`pDnD z+G*Qf9md4#RJ%k9AcA++;96j|Xw&^Y!Cp@pA{|xff(4vyVO+NdrP%<}H2a|{i1TC2 znn1}$zKnH{QRhsKB`t>q zpNGZ-GHH-2ZCa-iUj2Mm=|0w4{=QKF%AMVpF3u?Bkg~V2;3|(X#JC1?&xfqx9HbA( zPK_7aY|d=w^LuqVS89k2(mF4ypVBYDarD3JcXAMW9!*fP)8uI4^$nUmt$${Nrpvm= zzImv5=RZj&@jK3!8&j%xD*D()Olz6d{Iw*uphpXmw+urIK2l}Dok1miiBon)Rw+cD z788ipLdDIbDoT=)xAOBJk`pix_SJOB-S;3*72y%`#LdhU=3oW!PAd}FA6ItTt~YE+ z&znoWCoDQP%-rL|5Tb4v+cpTqsWxUG&bZmLPn(0!&^nF1712(8j}%Ga@HLv7*Xqu& zLE|alEW_`sBx3(ILk!W3eM!74b|Izn`Y6&ODVMzox+MAixQByyqYTOLI)~;CxwkK} zLiuU+kN`Z=F)a#Mi*yp(90~6Ts?35s9e%o6u_MP^Pz+8_Eh+PU}SeNjR0t38C zezLz5N1q4b&Tf_J>_sme=T1wE_5CQ+oJgK=K-RN_oEfJAUC|^a;*hJ`h3o;-2hJW3 z_26{``j1^DY3+=(;2jX&!&ObwB;@{1ph%Ncpes%C?cE37naXcx}p*`eL@wVEgM z?w{Kl+2#2LIl676A#v5DnpUP#@$S~)-3!ODOYpcO$q0ZoD&cT*3X!p)=eWw_b$s~a z&JM|{5sWgn-I6_yw9|=bB?KHP6`;a$dcd|4)T$(+-`BQ9yC}MDBG~4Y=$6LMcve`H z@9aPz6qdwtuUmvmqWo8DKYicC6-_9}eImFV_ySWGnSTDR#U;63;}T7(dr3947Z=;b zcGM}^VDuYF->3WL;&a2FpYy<;Ys!$qOm@BWJU@kNR`eFrzWGvY9x^%Fh(zNTGs%QA z4C9=L_HvGmih0n7`UnztZUnhHK7zd6L58n%OY$GsjN{tB-s;Xy}^eC&OR2afux z$7|i_nj34+@Q7t|2cH1tLBVJts@*^HN95VwIfk->;;itzA3q-0FL#HFQT#+*_$Wqq zS(&03mc#59s+4FQVNm-$DzWER8Zw^0*aMkz=`1(%91E<{h*#+us^ zQv=T|oKsIZ-|O8bkEzG4>dd4zLIFag>EO|5-J?FGMIK$0zSi5XDu@Ivuu2O6b@M$B zl4YbG$=%A%iZm}cZg(JS$G@}nF2Rv8Z_T0u8oOC1n(kui`H=i8+5?Qf{u$qk$@{hP zc-+e_)f-D>4DZTKcw3{DG# zbDMPWZOqyAYmX%WiOTeZK-ZYEam1x^Tmb}t1Iez8bTJC1ig_4Me%kDiqkE>zO*NCB zG`YRnRZ1f(uW3C3C8Qd^#IN59P5ngIl4h(F(r(CqlKAOTRx&|H25y+blImJppb29G^+IA#;u#T1Ych~*A{io;stLHs^{Z7!XU4J>W8Uc zFAMaOg#Rt_e*MaO`Lc@Z2nCFK8)USci*CZ9XyA4KsL>SDPKenXnN5wZrW{ zqN|o4Y+2STld*wYYWGs3MXHN#*_qtoH

    fB*PbY$d(y?($z&t%-c$6V&<%L_{DVBcXdU!Q7snG7>3_42OF zu?&eN)lUx5dzxW{-@M(N|1RvEi7;oc{>yBwNV#H0AsPs(8K=H`dEuvteWc#D*G zs5Ww|VeT!)d}!q1!6<3P;D~&-2&-ToNeutUGdMj!M=9-*z!Y7rNC#m~;RayTrcRzh z5Jj|mBb44f7gp*0h*{_3DUNUSzO7!HI7r!Xy<`TbKSi_UUg6~RSx0l^t$_4D2DmlB zA^E!`gLAC9(X?sBlyg!Y=36%@SIWG`g=FS8nZ~eqpn6Ze`ceKJwQkD#bk*OkrZs^A zdJXIx`!>__9LCFs4j>r$dBw{j-Ggrkm7I8WvhdUswlADl1eOc2zOvT@9^8s}ed7Q3 zb1ARclh1!OxqHR(;?gJZv;ZLI%sEHpYEzo2%cOGH)QKf!=f#Ul%D(tBOUj^wJK3p) z`YwIk*%y_37K2A?{kL7Cs62@xGvKMb*u$w${I6&{!bV@Y3kW%w*OmupNwP+C{8k;SyMw>yC}N` zEjiaj1@s*z&phpg{2_@1m+a1xwgdPOTg_GJDcjCH?Z0WN7+o7I-YdY==)?Bzu>EY2 zG!-AubpwxB`Yx~7muz#``89yB)~k~qS{2}uQ_Yc)UBk9z=04w5U*_k{ZWb)}<uFMCrk=iTpQKo&)=i)Hs4FB>_-^^6=ehckOe<)NMTQJFoxVGu-b z)~HKOu26N6EgN2;qQ~7FCyh6pbSlFGd0SY!ocHMQ@es4xY@2zz;b)BLss^2M7uxPZ zhjZd=w^@sqvyFn6!@}y&?5O9$+%Q&iRy<2{?q4r9+pob{zxX3F{3>ebgEhITO>Ni3 zE%&v1MLPRj@!7b!^whuZ%tD+ac}!m6k67|w2ykXKOCJT=m1;CPv3(d>rPjZqym9-$LR(d zf1nGz*nP+WIg53K)@bnCRzg#4t6K*uEK;9V%=L44%`zNO)o&4~Dh>v^rY1DZ{_vYl zHCY!>b&m;~6W_I)9dWjM%doSX1Ddo~>14Fm5V)E4r>_IvW-=0X?h(~Qg-wTUmdMN-`3~&JOmf|C5#n0q=F{3m6e+Gk@N!cZ&u7V;&yX z^OR$bSBM_%>T>lODA2f=j8JVydpoGHaFORiZ0+Mec>*Z(BB#_NE9}g|pS_tg;Ni;u zqFNyyV|RYs=5C)9wCSruOzZFXV1FK|U%PT*CYPt9cTRka>c=itnJ0B$Bd{xC3GzZ* zEZ$1->`F@66)pO`bCO2eiKa#$eU9es>8QJB+_p){VE5;J z0imhV<&*aCjPYB+$X5NY|5YmSakUl@Q*2)TwSmchrP1!&lPW%cm3DQlivS>Zmv#cXLqSDUr4hQ*A}H|AdV|DA&FS-Zsyq`DT6;rGgjcl!xBI+)kvrbpx13<+;h2GY8Setk`yEA#y zdfel#;4cHmJd$vlkz|wrxo>%tSS4H+AYU%Dx&nRJq|R_xxU4D~=gQURfW%?PR0Fj< z=XE3`H;g*iPs=R-oa7%Hal7U`k{uuZ;l>X?Z;5Bq>kfwvT49+w91U_Z4u&-Y>aMfz zbAz0forBl039iRCThmk87K}RcicE>j1X*E84FMUi%+FGAlOAWA;{33gyJ1LJazOY` z?BA$KpTy(yt@nb@uI!0W=0G=Y86dkOYE*on+w#@`2SH=_9j@?JXKd_1O%-**J#1H- zUDb5m9yX|9fqJj7lGfB;nwwzWio^8NLo5P(Brb=H7^Joy2RFRaF%GneNa<5}fU9Pk zZ5)3@S8~7VIVS(uFhMVK8qCYBRe8?wfRkuIJ~f;nv>XFtquj&rgf%jG7LV3>&U3y^ z%*l}NUHF@@=QH$3OR4RmfsK53kb>czuvI=WUw4ip72D6ZRWg1A_Psh!tG^_qe;aXI z?mOl)`%tA->9sJmx^qDDOPI5?wO^Mj#nj|7uo2B`6ipBtw@uqAffTdlIWxIEVp_U7 z7XQq@UeMv?_j7~+y;b*kqRYmuDZ#R?*57X^2oKet7p#&<+-1E^0i{0H_{;8XVHdtH zy^Zo{>rr<~6P}Ue!+yAgB{tS=G=|;wY;O}}v)#TEM!An~0*l{ZTE=nnZdcXXYwO#- zP010z9;{~dQL@31IBvzU>j6IrG+v7ME2C!r3!|U=y_$C>{@%)jrl?Y%Bmew)RCG>| z*Q3dloJuQpS!2kpo~)u*_=*M*ZT@@My`mhYjd|xws`DR(fL@(4IrYnsJ}Ympnm_9H z-DY&NR)ILs{AYtx?~2re?Rt7|1a32=Nj1+83jmfjeCJhpT>e@ptFtqH3UMp!EVc)dbEP|t)-Ya zNqpC&M2n9dd`aD)SyWSNHpw!GP2WY%dq|&6=eJoNbX(%?W(_;Md?BjXlhC=x-SgjU zfw0S;TfJLuJsZw#LQayuM<*KI7KUgY*yPjudl^Fe$={AUglmLX0B%UdKV zlBVLHsZO`O!b%aOe&K;<*gvIQA#CwlzxTZa*Awq46fyAG!xS{K5HGbhf#*}!#Sj78 zDVUDm|9(aK*~u8cjK8BBRjqrOerO!^aO9cygFp^rYtxTS8HSZDoj&f@w37dZ^!YgN z`P>Z&6mw~TcCd@cREA(U@IdMrV@AL!T)k}1CtX7&4^!FusGB{cpE5q)t53sH!F)Ao zGJE|ssqqTMV*tjb8$!8ViTuTP*0*Kd7gz4KZw6gf`=gVTKR;Y&FMr_?Xl&XGktcv8 zO1Va{;Ugif2TZNq{pJY%W}63aJ)z3|4K^|2(J7t4nRhdHZ{J#X-P^u;o7z?wfJ;!n zb9{|EJA_x|$fo;VisHLJJJMRhejGJ7?7EPeikQNd3}Vry)AMs}iQB!_y;c)LHycAm zv?=Ku3+;SuXW#r7-+I;xuIF;(MxqDljW|}s7@a|G|_pLY9 zZM0jvaG*d+jx|CGQh}M~o$;np-GqUd%UuMwn_jjtn6}@QKO(*x{C>gw!P$wq-`i{3 zmlZPOL#yAmcoiUyBzooj+_{i;2#=in>}fysNz{UNbk@_a=~MnEwLNR5(fJJY(YG%Avo& z|KiES2MHgZ@4QV?CH<}%qHQFHgmRWPEC zb7Eskq}y)6+9oX+w-j!@b8w>Ioy2nLBD=aP;&j<1&~(fiHhP`?M+#3B=B?7M6vol-4uVgCL0(CjQ#F|B%1B2 zT>1l!{pte6)C3{Dvk`t%DZ$Bp23mcJKX92Lbd6mgQ*2w_&i=_5*RVM8R8Nc|v7=Kc z`1d*+R4Mq=WmZO`6iIp%M&bkRf{#qV5>#uL;za5 zAlwx%73r#hl1G;Q zCc<6}MVqO!Cvl8KOJ#yPOm+av5R@cwESIP8KOFn>5_&{08j#m}D7F4L{Ba<~z`C9; zHD3Z)+0Rbt-w5x@zpdl&cE;pCwPXGx6oq3ZExhZqIgA*!=5lwNBC=GY<5<%K8wcWC z-2IPLx@M3T*aJ3lTzIEz6x<%yrAYBX3#Bd6KXwM#5wmB^hm&caQ}n}oY~|qZny7Nr zzhOOWbgy6pPPDl&3<1T$F_J4@jqp`bGaYKI$%S?-5Kf@vZwG~aCyQ77VI{{sgJY|U z(Mk&x_Is|3D0-n}qwhY?c@*(90ZNZ_gfTiSu`u<5LlgRUCO^9o^OMkZK-Js;ER%I0 z168KRw3@*yP3INGGRa&*e`ql|DXcC=3JAl?K>wSS^IC-Li<+mWlwJ(#aHN|epxPBzE0@;ZQ1HwBiO<$?=kcY5axYp0J0OeyflS*p(p-Zapr1R zIpPISu#dgEv4kg~*ty!GEvAR;VnJtq{O=>BUEp1S`D0&ppUKPJdj`BQf343HF-;^! z=yIzxduImi*5bB#Q}Ey|iH;k#49#^iziM|)w_Gcgj$5p;mHbrKN^KpVer*0jQ7J-L z|M@lN{cV`$^6tx=r}C>a0CNA5Zr@s}&Oim&9 zeQf>Y5`PfqmLG@fC)IAA$54p~@$tCXtjtHlSJyZH0!*qt1wW`@&S5UE2>qziiD0ji zQi@Txfa_!&-g>9BmkVNO62N>O=TBIQOyM4hJji`&ZJ_nMRiFOguG$%*)QyXAyh6Nd z-M$Da`c+cm3CoMANn2n|i>F$TTOD7+PLC`IUxBKBZ_EzPrKJ7m`AC_MmNUgV>mN_~ zLi^Ks=}NqMbmM0Wefo3v=a6g%Ggz^aQJ9gx3i}ha3ZzFs?!QCV<>Z|&jbDQk{xiz{ z`iLH7VLa7vD!zUNW&ZsBgS)k7pIldvGUJ7~Ke@4Dydv|i^7bL`-sN!wxBdA&_3>Y&;G5db0?~1VFzUw>h!EW@V|Sh88LNq-S9+* z(Mm6OA(wcGF{I!2)Ie-JEvjGQ{^|1#iSo}A?bzQvVGjIa zaW++$QX^DyjaS_cpQC5elS}j|5NE%AFwEJ$FR#MG&2? zPx{{PeKx^(0>Pfb;iuJEXVp8uiD{j++*Wzv*4<&Ga`xFD;TH=^-d$fKZ<(J3g({C# z%bso;5xMEs6Jerxb~@;Nhg4={)c*ilK&8K74D^m>z&e3}yD1DDN@rk8PX;z;F|a>} zjyHq>^HB_Bj$`2PBnEt^Gq86K0||>5__c)2v66wcYZ)lm#K5v`4D8;`K+Qfnhnj&u zjx)eN!+_`l10h!#z*`L5xzE7mXAD%oWkCNc1M#&C?BMgj(}V|yta&iRi3b5*Jn(4F z1E01$=n}+(l@UDnmcWC_={#`k!-Km6c~CNn2c>yDcsi2@eg!;OwSxAM@St)V54P^* z!TKXSIDDE1KQHni=N1n>JmSHQw>+5lg9m@``EbOX57th6Sk;6N5pDS39Kr|pcs`_d z4Bh+9y}kT2X^!Hpiry_seAOG|0z8vy{QLd-s-_V!U|+|mctM}5dQF@OzC48SYQ0E~MZK=(WYFj!##Zp8+$ z@w@>ndTs#s1ctED%MdPw8N%pnLzp$g5cD=00+txU*cwB~L_^Sc7{U4oBlt1U2(B+Q zg0{Pjz~-_M;!TZ5Cp26iXdK==w9czDMKmU`Pl@)%q2JZ1|PhIZi8-40^6*}>Yc zc3>ZC52b7EVdGnSI1teY_-h-1=tCnI9`67JTOHs#>j3KBj&SveBg8p6f#(z_=zq@% z%)^|)Z<{lmGI4?H<6U4_wF@kWa|Qo{t}v>x8$_;j1GT^%u1<0X@f&wAAK(EYcRj$j znGd z#s}Q9d||^kU&vU|9FqN8!1Br#&}_UPI5@O~(I;Ah|FBjt%&s+fl(mL_6aAr$ZyVTn zzYQqGZDDLiJ9uT?9-3CQht}c%u*mKJSA9Cd?5`cc=S(NKvL+A~jS7OEF`XgFD;RQ_ z5V-m{1g2Jm!sPuzxV|wAq)Wr$>FfwlPL2eN@ljxr8x6&~n;HC@~)m-aE#? z#OPcoe>o1?i6($HDi3!3o&-A$6)wk2hrNwvLgM>baQxyN@Hj9J7H?Vrjw=_z zvn79kaZw>`UAq)6>?(pyr&mDdCn7jzx&}f+*22Sy>*3U)4Z5fKk96GvW(pa&TI>MB zsXO8Q``z$mR51j8RlfNxOz^(O?b zs)G&@40E$qz@(fpWGdI2GD~M!GNt2fnROE#nDhlMjOTU_Cgi#|^T5WJiOOloY$P4oBoWT?O>+efDz2L9b*|8 zPGlyHn92-&J&QRxa{+VNr;w?6wwwt*x`yerbpzwIWh;|(cqe1{crUZN$suOZObzq> z!zm_ZN(J-Gxsq|Zaf6B8S$SYchqmz6&QS2y4L`&iHMNwtcHep4F0<=AzoPrR;=otDlg3|p-}%6Q+Qfw4 zIM<$^@XV9{b$(0!snkGz*Vt%&)bOtS@S|D$cO8fGzdp|6GbiTqPgNB0UkWzzeR6m6 zJ6IgyU%Y>ozvFQge~$BGzQ>}E{OIN&ILxyU2(8@&yE9t~%5Mh?MyyN{3|-hqu;$Q6 z!FA8+0_OY@!SB5r1-q;E3chzbDY#U9Rp46oL~!fPH^JAQMtWn6T=XKbmEQQy5qkU+ z-Slez7^XK;I$bXZR_J}+yyv|x*+}M{q{V@IDHa+wU z)T8yi*DTOazqC<5EBmni^2AF0Fwsl>Q$c)#abd0o2ex-Kcr`lBVD7q62Je~|7;N#} zX5c*Qq`~dj8iN5-ej7wPIvQFx?P%C9!?ab|s z3eR*ja{rZSw0X}oqvsDd8C8l;8--OpH)_1v)Oh5BHpX@bdl-Az&oEx4x6OF|e66ve z_=~Yn=xUNWJ;r22##obzv+GQD-8f^?eZfZ)w_C2JeJ&-K=8l+bdVb$_)7x9Go4Q8n znYpYAFdMXXu-S@qv02R7^JXo-)S2P^Hs(_c2b+(oU2nd-?NxJ|wni4q>%uIY#Q7G* zf&&(rF>fvW`}tV*=r+)@)@QS2kD40G;>oU78Nd5jZ6CJ5%KTi7m7tNQwOQ6cYqdmf zz3ui}>zR$(+hFEYo42ylHtw~iwvz_*uzg;$#dhqt_qLv1A$E?R7TYa&cGphEZ)txr zd8U0}#Z~($Q<^p64W8a8tEj4xAM5Afp<3YZ!w~Sp3A(f@|rYW|8PfRr#61xD@W}2ZY&OJ!arWtWWkfv zrj9oEo5pn=)9mne#>dxrwa@fJe!hEWo$D{B6E_vqD$9x>DAdB^hR`o%Tt)+yfIC@!Jvp5BRlQpYD*G0T#t zT`Eqwf9`6RL$$wBRnwZKRrKhY?z(YFhC{z|-Fg@6^(bE(*K=CCqRg9x_j*k}+_I1G z%-pP$@|wP;*FyVw|Jd4pUV=H7t{p17{S_yu1z-)Vp#DCL`ZxjV9?QJc?z^yb?Qfx% zRh{sLwoaHA!U_u)vBK8JS>e!UtZ=^`3Xiy^m-H*Z-DimfMrgBG6 zc}GL~w}1dTFAAO)JWl{75K|(mDLN?x&=@+ZI;uKoI%s%c0X#6!S+bq7*&jl2O;p!^YgVlEu(F$D;ukg)5dEP{yI*gHc6YTP0?-ZqD|Fy)u#Qm zEnSim04_yM zK~N-s6tSL2Pc%d_gl1G`R9|a(CppbS6sd|}f}OILGDs0b{b?ijka@_Q70!xiCD+g0 z)vZ;nRT-KLjXxnk6d>Y(9vDfCB<|9tQe%lR9WP8OAUUGsR?t(?Q{ku_rp#01DH_rK zX=*-Xsj^f#rK3wnYDQ|}l>L=mmCco;cQ6{(f`OP1t)LBPX^hKP!rV>-h1la^xI3ZBpSw3DiUdDaz21BKdWsPN41YZItm#xB9 z(VO6;B>hvgpmrLePFL$eq9#$(k}!~vNeGpN%9;=aU?>)fji8y7bVSlc;v@5sc@ent zkCTj(2w;-jQ|2k_LC3RK*em*~+o;>B+N!)|-gLesd9ET?F`Vi>RyCINGeI4ziPdx? zxQbjw9mHm0E{_kF!-vb?!{zSb^7e2!d$@c(T&^B2PY;))hs)2y<>uk?@^CqMxO_ZZ zE*>rq50`_7%fG|r-r@4@a5;Cld^=pO9WKufmt%*^ufyfm;qvNmId#VUt_^?k#w?;` zsC&d~M&8ekO!S``nf$sivYG3~NY|nJBGqQ+B4_ouANhUFugF`gOrxSpT%#7% z`bY6r#Y9u`uT7#`vo6sdP5q;D zWzo^zr?R4(UYQ)NT)jB@_eM!{%CWuCtNqSI@9JC~9TD^++Bm`_2EtroN>W?L2o6TY z%sSX7=IGW*F>Bub5hHxKK4#>z;+SJ0WidNj--}sl_C2P@TH{#t9Ou|R(^|zIIU5=4 zwX1imW>Q{kLi8W8!@SqW7Frj_Lh9+*H{N$+qaS^Z9sAKJF5|3IT&=ui+_KvdaR$;} zalXkD<0>{3#N`iN7pD;Ji5oQFRNQ#yJ8?tQU*ftY7{%W(c8cF{!!Lf`+wl0-Yck`( zdqTYJ_eJp|_N&Xlgf>Iq5g7y3o*6_j;#LIdn2y4eB z_;g*A5dK-5@LIAvVeyjEgecQn2~UT9N|??XB+gpxka)X&i^Q`IVTr%3qk&WM22AcgnFzy9^d4 zEt|b2$(7xiGjRr1A)<3^G zxt0IUWUK2X$(PuwWV_mT$!o0jQ&x?(Pgzyrlk&NLNQ!KFMvBjf(JApK=cn|xS)CFz zK%V0CUXxN@do5+h+>mN9`bpvo|0`Q;}l?eto zoeHpN3~@8S+@J8btXcvZ4fJW0Fa#qormLnYji%;g)s{4pTZ0YQf*sh?Xyx#K)gJ$K zmdE-s|1S9dHU$4R^!{z=|94@at2tM9qrcpy<8K=C_r8qQ?`SyC$gR&b(~{aki&pv~ z>xt`@*=>I`-NDE*%ehll3%9lw&ppQHEp7bsy?fJyXKQ_iUH#Qu8ywy;>iCG(Hz2>w zveF^#(zG1{{?LEg;qjo{PA|UR3EX(oqq9*&MDU(Dp&{SvY(qD-J`>9BN)g67?-QPl ze8c&0Vce2i=f3B*bLF`5+c`cSt1nk??y;;OjZNv1Cn=@8Zu?66R|cIl;=MkZKK$+~~xxAlF6~*l;&gTln+UB_6k|tbK+5YtLt7}^7T|eYF_@;s7gWF3Aa_?RG z;BdcuOVz{g@3%bZq7_vaE4A|Mw}vzkaGK($V_DY37r2u zTsB-LP}(SC=(^ugZL8K(>8aW&+9~=H29X^4U?@$OrOTQV1Ta=UKsG?uQqfY;ijXLF z7RQN0#R7;GJAs{;^D~A?hLN8!POc9QI)7ps!GbV>&{@uhJXxNsnWCA(n2;<=!vw$(bq3lsPIK6;lY|x^^&w7P1yPf6AP;x0SV(aXzfIa=J2AmMZH> z7$xdrK1dQI86_Jfb0l!}wui=IfkZ&(%c6FkCLb*uEnA>i zpqQ^TS2m^c@sfB+iY!GojL=rnmdY6c=T~+jKiN&;rkFvPPI@{aZp|JsObMD_Ck1L!K%m*&WFWE}`D@|kj-9+Ez$Nzx=-+w-7> z+*DzzSg5p6j+Kqo={&bzYf)>Fy~JLUK;YV#2jS9L^6~P4vVk%$kry4GFV5y(@+kpH zpxju_`PwbTA*2^=NIwTjn@E~S3}uEgCxQT)fmM-55qDmDvb%Iiy2L@sK&~uT)`ieR z*YC}w6J--+v*mMjI>_n&VEVqFG+D~|>6|{tNMa;<1kMiZ#8%Kw(oWY-+?>Ld+G&nr zj>3#EPBu=~i;yA7kPMLqP`f0;b~plD|1||)Fc2A#{EXOxj_)Zog3j__IS)eR>56nk z8lk1Er7VPwm!Zf|bR(FF%tSV%4~`N?i5JP;O4dr&nqV$67uC-*(&Q!lhc^g?9 z88;`%Bycvs&CB~J`Y5sp0vZD>MV6u_x^`hE}Ywjx{6pWrHSrSE;DaU?INA32H~#Q=gm$zvt55^?h@&OW&IO^_$a zJIOl966MJxw{ekCks0tsd{HB67hi51mAFd+Wr4C3c^COW(LfQ8U{YjQMB_tIy*)aJ zn^UsEQsu-tDLuplRqE$h5W+71VIrW<`oG+MCV^BTFSMDbQ9Uv0@(uDZn?GG zTxKq-w`&tH^KLOsIU1(ojt( z%`5ws(RHA_QmfS#Yl<~12?AK5mZ@Z_Fin^yoG?T*gk&`kuam5!x-XM%lWo&o0}d(< zDn=>Yl-#);6b{q}f2f%_9=a@d9P_pvQ(?vsmE)^(|IP-oWGRLRaXAz9QIw+ zld3mWHC4ANA63%)5cG;J>*l?j{&4ec9t@L;sUK|Qd*q9hQY8;g(z)d7yXsu^N6kk~ z1VJ~im2Q@CPouU zxKDEWs(e)wG!sb9o+RfClJji&RqZ`3HxBdQw9-fAL+uuz=H}U-35OMj6`Y+tRJT|2 zV3%&bnqQh(+L4ZRMRi3Lt%=s86GkdVDm>`=)`7lnu4=BDQmQUhYLq1R8gT~AnK?PF zp$+Vi?T~TfkS*1BuY81jIn9%u6i$jUsxhh-1kNrjWtK88rKj?YE?SjW*Har*gz1#eDP3m0GN@^n!{Ep7rWrW zLel+n%Ernq%Im7@s#b)ZvYqt3ovsg#DUK;xs#>Z#tH-JRRDQa1XiATka&d$%ggk-( zMk`$uE(&h$znEm&ui3BZN)SK`U?hx$i%Zz+VsI5oZ>1hQRV&oDRku}~uH01JRBXf7&_r3HC{YBd zpQ~Tec~u&fCYiwL^J>Lv1s4b6fl%GAbU^7O%_PlR>ce2Q9;9eebg_w?(t)MZN~f0U z@`jMzCNO3^0qoJ)F6oDfOYVa*VpKI$9O2>Osh&b1%{? z(kvu+$-U+E*QwJ=&eus(rKt|l_Q{&bnm-6!n{H9QSISj#)h+dYb$3;FlJTgT>+8D& ziM%oG-&!{wm_r!Z%P4g>RX5d4%}mW3f=XSd?y2fYZRQBiRL@kLz1PPvf0S{3LsQC& zrdJHF@IY{p2l`ixubW^0M!Hp7&Z{WU6lh8a0@$kLe6R!59)qYoR%ljeDhXU)z9X!a ztd(%de7Nfzk32_C=2MDOitnoLs-1)+!g=*vwVA|BVk71H)dHMl&Sbmc)Hb2YdFtWn z6YBozv#PVIWI}{ermXk98iBDmk;>ajx%e4Z$H%hAv|q5YwW776tE#K&uzIk%jiQZW z6F~qib^62A^`z`1l@ltB;iGaa$$eWrRBcdVP*S8R(sWUEp*FmrzM{FJF+0h?uQIl* zOc|o&?1cOh^%3!y0Tx2d(H(z;MMO(#d0_SJgNqwpObNPDNdRcw@ z+re(tZaVf5^&`zA&1%9p^?3Cz)h^XAlHsT7r|O#Knr0PYq*|jMp+$;KC`N2^Aw?x<&ze38ogiu;Ovs(sW>)72&=CM9b$YcwX}Qu3QTf%6+J zC6>Crc9*%!ZYV!1x6}Ant}0h42~kS!dT9g?R1Z|g2+R?^BQI1hRQ(9Q2?B7CR!OQP zT#T0o8|8tDKn17gm(}^|-m2cJ8R|*u0jdEiLy;l1kExjRTdX8j5-wKBgO~CcI({OJ zxP4T8R2Rt(KWIK^J`p&beJXoO{Txd=8>i$SIj+u8<)|tMQ`DEJUKz?A%CE{^s$QyW zf}l`PC@#`3`uF1(j^IRNzYF!98@Pi9wTTz$nm5fEn$oq-hkUo@G*0@FuD2q)_or(~ zTk`$eLjZJuj?f7LAqYA{F!{itAcQaoCx1N>qUahK1F;ZCzE%SHf=Q4JDbNK{p(~_8 zI%GgM=ng%gCuGw6us8IfIbvVPhJMf=a&&JN{-3YMe{bKve^>wcpa1{w;J@CU_WuU{ z{ixV~93T5{V_W}B(=ATBIQ`-@jMFhr%Q!vb zG>y|WPTM$r<1B}>9nN|<`{68zvmwrkI6LAjiL)innmBvnEQ+%!&Z;=O;w+1^EzY_) z`})(u{^z2k|7Y6sKo|srVF(O`VK5v+ZD zVyqb(#)I)>ycmC`4HHHOVR$?qpJ&Ol;#uq7f9X$$W%xY4CEtqgp?i0prS2q*CC`#? zDX_G(w6e6ew6XNC^tAM{^tWtd8AbvyRy-@dm8F%Hm9>?Jm8X?IiNsj*tSzmrtUX9L z#>P@7AmhRF;ConlSb11`czAev_>;(tC(qN;)5_C>glD`gbroRzdH$CER{kDT6{d}) zt~yMZWkZ#?>ht&lJ$(a1BV!X&Gjj_|D{C8DJNrfsj!w=lu5KQlUX8t*G;QYN+q{Ke zOaC@)+qDnq(6LisQ0L&V@QBE$=$P2J_=LpNu4(BR-MaVanc1sf|C|8>2Mr!FblBM3 zapNaU%$qcM*6cZR=gnWRuxR;;m7-OvrJJ{Gm2Fe*+kZe+dh*oi$}3kNJp91j6C$I& z2rb$GVp^`C@oOF}XV7>zftI6bTXzM1-wG`XBt zZd1-LmyvdGKC`~AkIi6`R-om|8f*2m65V%tkf+tx8fY!FhTNSR4Z2{WHPv$Wa&Vt5 zwboi&t(CSB&B1z=+m*YNI+XS-Wx%n_zN~wxYpGMIb7_X!L!CzZx@p`r?u2e?Pqnw& zOP#JtS2a;LR;Ma`l$;FQT#}0oaq}cDPUENSqHM18)y*@x-}n>ct>j!RFi!3-kC(UB z#oJ;D?WNJub~I0mk;TZkxEpt0On@{>%H3nofzU}DChjN>7YB+0MM6U7!p?;uML|VL ziX=rMA(@au=%MMMyJz6f_)mXr{T(9Q=e}C*4w0eS9PI$zdi`A?6SYIMleMNKyCv5L z+F`nF!?pEyhW!1$5bl1EhWmRO;?br>_F!Ga`RT?YW8M7^jid%rM>$XKEC)F^m*D0y zu2LtdgTz5%E3y^Yiy1JK7)rQ4^OTdx$OO8$uQ4!650!_C`+dTT(3s#&;1l#^`Z8`V zXjw%4R%BCTC$bY65zGtC3oQs{1SQ6svBF?3zmD{2aiPEIp%J}pO(T)DJ71`#}O zd3z-&ZTHyj8DC@qf+B{-j26I%Ux>MwLUV3366uTDf|2;Y07}GLJ;FNxfI~~|eFuCK zSGM;Z`I_E)@4feqWqJ)Ip%Vy%7J3bY7JBc!ni#M_2FV^_jWlCxq!~#gS&}7zO-X=I zl0YB{A(SK}*zlb*!VbGHyPNmz+s&5v|4UFA&CI>`+|$pQ0tbt#HeD&OS(Go}dlZCMh!H%}|`=XD&hFgV8_kfNF@q=v4xZhyik*gKTGf4l(sAhwQf2iYFKJ>Er<7>vn8 zgRW9fw^B#RQr$4%k{t~l4fXZ)^$h^%qgfljHXi3~4#`yWQLL~&OX8NqJtbv~7{6%3 zHfC2dH8r?iLYxq%W16xL*r{X_+l)PAIApjVcOUGzk_oHytMqoZIopEmWQ>A)Ysos; zC1g3X&N!dh$+l+Ou(g?Q^xx>)vQDM}Gl{uJ+OamhO`k@RnfB~+#>BK_I>3E&Fm*8b znBHLLZDdC=$Bi9L9ZmZ|hmzR`K-&$OKKuo~lc^KfpIXp^mg}~%$>gMwA*^tc>1^t3 ziUQQrgve3DQGKgqT{aE23-&3_i7aF&Lo!*NdBXs6EbA9=a z4BDvu_-Fiw%#VDMaDXpC`tzA!zh7sv3HrbC$O+Op@tlZ$F7(m8kebS|(iVb#!NqZl zVIIGNb*jr?>?n(1@8C#+{yOv*qR;b$ctUK&{KOjthM>>w9q}Cz{bkj~>f$izj5JOh zCtj5%%EP4%GR7xL!@Qi~&TtwsfmuRo$Rngkxg4DLBEMche!+{pSdJ^lRe*UPWgTUG z8_>5`iwMWF!PS|mV81QD}7}B$T|+NPc9~pm+H#>NfN>D z+sp4t!{iU;9WY-X89p*RHa#}s{yYcQ?JHlGX1gZ1BzdCLTz*%cEESX|Nje#Q4zN}* z-Z6{@^z$jMbVWnjGDE%ZrL|)sNN=DG4GEEX-l=KRT-%fy@EQ7^Pg+k}eKJF)yFOO- za(lTCU|yDpOGFKb#2KzHTr*vTlxA@3St&`npv-c8>6+s@&7Fq%xJ_<=ey#zXeXh%+ z`~Yi|z$I|K<}MO7F>f$)y-v^<-8m zE}Nwx$~l*fc!?S2H`$e@m|RzsD0t1K-A+T_SqUPsJGdPj`jQ%f&4DqB0DnN}PxQh7 zQbouxWtiUP-iG-oFI=%+v1S842AD;&NCBT%Ke2u)9U)oPENfMR-H?23Vw*W5z?Yy6*7509fR#~hJ^WR^-sxaiD_fFbQai@s!@Vl-{%0tsbQwL%Y zzB7FX`>=xWGhdw~a*14w7$ZKnKF3G;isQh3(uf+dCLjV(8-V`A?tlXFL3x0@Tb`v9 zQF_SZ<)U&!xt3TbANjC&SgZ&4*+6+yp}-%Va-7^sX`}??6>?)) zmUqcV*iE#8^NIAQj+HM8)mB>_va~TXaJn)z`fffYo`l0`+KM$GX$hK$Oo6sh-tI}P; z82&QYHyO?R4X{$@?(zA|LGM=lM=YcC)!FwpCHmt+X?3W|1WM8pfuBwjz zJu~{#j4c^;G8Sj5 znavp$GR9<-%*;9a)r{4d#o=tN)jQpAeqTm*W_D)L$kLG?a365lsqiU9?|nVehJ?>q zP}Q38sN#|3Bk|vtv|gkmTd@J^9Hg*FM=d@WVZvJ(7Qn{gd;x!zxxWP?^Jp{xT7+}!}9`Ft--?T zu^as(y*s@lytiEAfI6~0Q|LN6-<{=|OW%+#tC807r^}z#kh%o5iOOmOuL5bzHRdqF zimSICRx#VJAuHf28e*c^FiXWEk6dQR(W|Ae;W?Mk>2U2gC9PF!z3j>I%!hYk^5LYz zNfdtH0I21P1akuv)QC1x_ei$?X&R;7{BL>De_jIgTKu$xFUy}mv;B*GM_(Nk@><}1 zb^lIy-_G5_pW(gh%JR&lFP%?eS484YSF$`4=yS!XM3UByZ0BmZA8iZcn*;Zd5?e5K z7DYz$Z@~F*Uz8*x=|CD@Biz@u0uSkz zfp-Hqk6nUq1hYfM0uhlpYd9^i4nBzw)=+809Nd|{E0__aFqYbC{(64(s5`+g0?0ki z)9c|eg+>LlVJ26me@t_!25EuTR=G@hS{!M@mmRtiD*9>`Oukq;$a~3~voCki({w>v zOMeN_H8IX!g-tuBA&-odH0O(etsbd*1+tuP(rizndpYf*eC8VOI-p=&x|P^U4Evk% zk&ycx&mC8idlJm)GKwqtK3z@g#MFs7bpou#I0ojelp4L)5GmPda+)-1~5V^XI=ysF#5D zZ){R*67qedkb9PUmI8FIeXqTx*iw8i^##a>Xp)Z(lhPewUQ{fXlk~|vcfM$5zsxWv zDsZ83WP!~7xx7Swe$s`Sz^U@T;#BWsG>oj5F(u>mGxW?jm@zVAuF9)Ezu?S>$;isg ztJ2lVU}8Gb#n;qBadv8u7P-HA8Qc--6SRiHbhRtJF|~)XLU|%{DEJ`ohA(Mq(5zad z4+6D=wLmtthz!fNFx~m+4Z0jYEv#PcQt)N^)WGFn&KWMi`EJwRp^LAsaV+o{sI+vT zawO5?V-c#d6!y27Gjp(eK_*qn<%SG7W!>RONX2E1->mf!k{ zx<5<{&?N7-Ui>c7r}aJa5Ajl!hS$i`Tv^I4*x{?_kM8Ck3MIan$c#oi>JLi4;i6SWgFUtehC_N zJNbnZ^9+Z)x~HFg3Q$~>?~wZbN1#9*?eANWMoB~Cw8UwNkGaQOGah+m0oZS4!u-O& zEG>=>^MB&ScW3=s{v&ia{NJpO`jmg1pYi&gryN9n7AYhdlGs8sPq=sW&|dAxvXLJH?Nx;lH6z_fZ&mxMLTZv*pvYpGWG+(n7(#5|lKp7&fWZ7pp`B^_u7_d7*4lj@Xab)qC?ib04FdmEB57;L7#Dx{gbVOTxQ+nffyIf#rdv1T6#W z(@dC~nw45iWUyg%-9Gc=%eHOZxz9T_V!mSs%JP%FAJCW01L_CmGDupanI`_4={-ypIE@XJan ze;o#|sz*+~P!)cY2Yv- z!lVh;ghLLH?aX!#rSH&v$~Mm%$_Y=<8nj~W80LmmXE|d+QbN)~!$L#tT_9m1B6m_U zgF!!?=R^dVNQN+-Pj?2*Pt;LTiS!}ERciUp@||Uf^uqbV*-IWy-+jev+RKCC>L1ec z?yU;a%?3IU=A$AGf>}R*Jk>? z<$DX}t-+e=>XAfZ*V{oJg_3c0mkEVPZ{X-J>@V!YXji~-`*FJ#K#9TeqxhpZSItVx zuhPd|RimvCIs4M&%U{B3-hn%@E2jajfVo2TKqG!#2DhahX*oDwL6w5{gVZh& ziJ#YxtP>fg#PD&YB7dN9fnLGzRq_RDMV15!TQTyNE6)r(r`G}lf>|K3O1_e1OMGSN zVR&y;SD*;!5O`mo_BrL!?l;xlvpv_&+mj(@ z#AY~D{&py1T*lWK*E7x~oddbiM9oqxMB4Ey#g*c0+iV-2^NH<=Et*EtH|=lQ-%{oE zFZS%MjB*z`X0qp1T`!|UW|a&1GjqPHalv@LU}lNTZ9rvhB0KUaf(GO*^23^>`Jd2Y z^TH2KU0dB9UTH7s|O#?NIr^-t>n-d`&`U z0!x5bmdoYl$I|l!XNN|q`(j|IQ>bBRcL;MNtHOTEImQtBEO0M)Up+&)kTEbLpbzBi zyR(6+fjn@=wkp3a6JSDjLIrcZEMJ9+geC?ahO+&u(h93Kp1)?P}jl)qCTl zPhauKd_cQflz94$Yo=?V>l;re_XV&p#z>W&vOEW9Wh=!T&yKR!`P}l{vObj|nAg`v zY$M_ht3;ZfYYvp{;|q|nue4Py)zS+R4{_0@MU<=Mq zSf6k^d(a+qoXRhkgGSqv_N3wL$=zua0yKG{h!fuzLoy)yF6YS&TE=iotM(SGQJ4!O_i5?>@DRp`8THhGAGqM z>nY=2;C|%#(lZ<8A&IIrx#Z!Y??4VsJvQ}NlQUb+YT!zk53C`z*gSCM?9}Yk%Cs8& z-tod2aNL$=sAED;dKcP-;(b>jA1606H#1}QE+w7#ioi=y|9wY_k|$CH^xuL$hBN>g z%@_H$bW^HiuVmMmb!H1^;V@G;k<>koJHQ%ejWZ{iVb3{O^wI;bO05yr&j8(NcRB!2 zAsNO=+QI0X3oV521>^?~`DjM|-4(m|U17Cp#F*;Z%GEyBu5mJZtl)q3djc&9X zMPD|)?nC=f)cvknuUaSP@`5{oYJuv(YbxdM3{?(R3{(M)r2}6Zbf>mrTM@G&b9RCh zG=NojEL2zB38g}Z;N7aw&ot-z!hzMn4`8SKq^?hVdfkvNJvlwh|4XY!T=ZS_x_ydD z%bWeZeVfxZy;|E%J_oFAv@c!#Z4uuL|EJ!&Ui@t_Rqu)*Wqt8p*1JR1Sx&(2s1C=E z^?nPI`G|6m?or-%V`en^lu$pw4C*`}3$iVMi0lZQRrHegrF~%?gAR=598yjxFH=Dt zSYB9a(U%b~Ba-dOc2$FNJ$AhhRCAKnX0Ih{fK#A#o{&)AvCh6iY&SLE^%DTbLYt9rz9_~+KO~Px z$)hEYVm!1IU>2E6N*^tKbl&mfL?YE=vDW8WY|YrRN6Q|?81ZV-g_Mu265ACl#fq^5 z$<^4}Fpf&G7;o-G`Vp)hK~7&awlo<+s>Rlb9ZL3+TCs_6-$O_n9oES&Bdv9H;_9e% z_H_YR&ooF=R#QE`dOX&-VV&2;gqd)BM;+GDVcpGU^0^v|&#AG&TA3EQv!sKrGr<~{ zyG##VD_xC*I^?FViKeZt0TIacxa)BPNIMq-$1 zd6$XOX?1l;&4lWti!M?#fZWn`)pykoXFF=vGA~IteK&ni0LEx~0Zx%s#6%X6-a3Kw z(f856$&M#kWH8%T-&c+EZzm&JjQOu8KeL~Kb=H7PBG1`gj2i!E$FYfI1bbJ1SO1h9 z$QEPHl0ocSEY=eR$y8XcwqP+lB3N70$oPz{Mz$tsNDRSRp?d%q8O6>w%r|T#quB}U zkL^!!=p}*mP@f~)r@jjgQwhm**=a{182X;JL z&p4O;iJizEVa$oRAo6kR+y)&|8>knhEc>kgxP#=@*z5n2reznfFcan?3+61RNJm z^1FlxVUcN(iQyP-F@J!6L5>JZ_=Uoo!UkT)FXcgkG57WN_3eaiLPud4KbdK%#{F7z zt-0l<<#7IiX&JSdUF+2GY zLVjTvZ{W}HvBGXXkI?73-A_le$LK-P^&wenu>$xL8~~VLbub>@Z=d z&_Mv9V~rO9k|3o@b_wimM#E&2Q`S>fj2%jRDWQmPnoqDMSWAi}MZHyT9Vw0!;{Zw4 zBx{x_%LM#~V9ibyv5I(Bo*)~g@-o(_V64$0MUWZd4Dq}x*=3Rz%Le(JoFpcRoRzbp zgtq`NF2`GWYZWp}z9gkcWyCU~RSHR~716bt7+@ae6Pwj$MQ_6+{Uey4hQ_1ZQ7$jc z<9KnrIE%=V(>0X@rF6+9rAe5dpdoJ<7jO$W4e2ak+-8cbNMGu|#JM%TG`$3?;0@A4 z_DF7Nw!BZ=Ct_p^^`Ob(WU(dJlEd64j2oi%-$(2tqFrzqfbmt#*WYQ_Y1j?;R{yQO zj`1P8-LT!zihR%3GSo7>&%MuOo3c$9*N+4Y7P<-rg?vH*p^&hN+r%vsmx+Y|qX8uV zgSbIl6e%sN5?6`k02Sl}nUxdeY2J$7IZ7o3W3h(-^||^SMnqZw(Doh(Xa;Bn_(+Hn z+6o^CV};GaC~=gi1?&M}ymcbrZNOA{oU9Xd;(LI10h0i002pgO1Ga-vnXa4`Pm41F zsO`@MYym6+V3G-1RvQ4Azku=0UYbU9JlOPfXMX10Lv;`5Q|n(llgFfZ?4Ge(g1Y;p3Q`8_jg zj98b0`;n4U(iG=G$5PO7zVY?&j^`r?)|vbOmfdRWYHJhEVmIa_wSm1e6?CLBq~SSA zX7F9XPHb&!ZNq(?lizw)dE$EN`q3S!oOh+U9d6Y9XY!?U^IzAvn<>}aS6mg8iVFIe ziqgU$i{X+hT4bPzY#tZP@5WIA7Rh+zP^4s_xj)QVct)U_EU{a=kYv+Ud7`K ze$lG~4Ov4#|EHEp&Y3kffECl@_e= zDHm5Ru7-{w9oYynBxy(zCCh~-<|bz3Yd*Wrer?~ieH!3m*i$FmPpQ+{n!1|s?~ZdA zXPXG?hx^2Bcf;6Iq#K|mHBfzkmjlBtjJ>ehvf47lG{iI=Y!S@I``o$6aT6@ff}RW) z=HtORS=7F@AnXI3;En_>P_NXZWlonleIp@kVbleQyVJbWyw0-Df_ZOc zL3hs?Zvl55&novPuInzveE?lRqQ64vug-%k{V3mY`CTq|mZu0k;JD{}WP4pibfO+95&LQUr}6K>l{>L>jMJ0Dckoeaei9=m zN}}|cGmkxw9jl43YAjp+rE}5dpfgY@ctQ1DUkQu`ZTwy^TphPUty-%Gnp=G8G#+fJ zlqcd75hctf%O=Y#o*`JR^|~!SCh$e@lR&z9uJXa5fgypcVAu|O;Ts+NGT6a8z<-Ck z!(k>Q1^c&+YK{LwZPon4y$)|Pl^UP>-tuewv(?v~yyv``-g+wKb@Z?GH}RhHhkqB= z%oBZee6_r*RchSeyX&j%OIQ8E#i`$4)|>6=<1VS%PMB?gJFFIMKySHga1q+4#YQrKNmDd>LgqJ$>jGTbuY?`EVVr1H`e2M8?tWAU-r$ll0~nHK2TLd_Q> z-ob6hwjI-uiN|XJSEvMI!{3!6QS3r)A$P%i!Hn6SI8PlN5yS?6METZ*{*6p~roCTk zM#=`u1`AfrVI|*`a}gw`yFmeRDmBfXX8%dP;y5jR?R@MANz{?g8LmELNh*n9kPA+T znGm!6OoUqHH{1BR5!VH*wiK*L9BUu@%3I%6X#|w|m8%;1j({GKo8(dFr3Ba!mEgNL zr7At{Zs)n=+Wcx>Zad%hJaYAO$11(utdb?iOAnn!$!T}mABm5|+N#FafDBI>o-{de zaw1msl^`>dDM?L1&3?Ugy*1sQZm;M(?070Z72DX_*xCXpnaiWa+uqjRhJIAZ@m$_3 zXE|R)9F|W?ShLn3u|eWoBj|pxcdM#3l$gO$D$GxOXMFL#EPoT#S{vxKd5ihq3Uec$ z*SpbIQ+@r0{}bO&zPDA5R#1&KM39l*>pr8eGf;)kU7u^5}ySm@;boXSt z9=PtiPPu<}<FTGkRubzRF&>z+&vET6 zN?vy#PnM^m8a=2?E70#<@4{|(NQWGZV}<(%cPGaT=Y3~{L+hyEoMW3~!Z_gO?{u=V%=g5*aLQ~B*Z=SLM9HEw8AMn4ALWKmXpGYt`$y${6XC=uRX6F z>mz?sy=A48E-J4Z5jcOLYDTnLqgR}K$$iOfv23v*m0|52);(gaAJ(957q^Rdxw{ZS_%bLJ&?Ws$Nr3M+;19Doc^mbnW9 zbrpj-uqriaRS&N`cXoGt?|dJ)*8>4_OFVXu-TulCT321u`@v1Yp~1m{aAjw4GAe0Q z65dT~OKXsJvw6`b+CFd$a5ObHHDd)WR(>MQ@38E!;677SZ+=-v2^vB3JD)kfb=stD zmTi`)=BZ}PjGY`mIlffvgA?J()pQcMlhG777@=nIQgV`9kGUR$Ro<&XlSb|h>k2fj z2Wx!+kCmNK_9#1Q#^ded?cWM(gmS5?1dIyJ;b*2$(w)r%n(-li36B-USdH3J^@0~x z=_7|d{4H~xt#7D zdr}tjZs~#)vWM(D#2w;A+eKT8l*H6smR***x~X6_;%+ELW*BA|7IBL>q}@y@+HuTr zQA&_sI4{^Q*k49avWUmpOtdd1+9%q_B#lYJI#)_29-dCN!Wnw2wZoH6O*+-{Y`8`l zxfk~K!!usAU$nOYTmozpw~3uCoh^G)7&6y3*QWM^bl-5_c6(L-;l7k*d}=Dz%>N>f z-R?6=9VJ;wQtrBTdm1Y_e!R!7EKhaX+>=)+pnUDx>v`$=*wNVe)Y;pKS=IH_D)@qA zp0N*5{U!mcQg!lGDZ`#&rz9yA`QHuu4ZBZ@bznwgEqg8d0r7xX-d^5b`c>s`xN5(? z4o1l0@mQU@khi2R<>#ptth>y+%ox)<;z*Ys!#>ZBsO?MC>8Zz8BE|?LB@{aOhRq$=Y zZ39)a&Tl5nG|V)7VGN&VpJkr~HT%o<%l2L3F7Y5>VX|;;T++Ct9zYk^EoTtS=2+8M z)9bSQP46J@9bbEueoOe1ec8TqDvg))_w{!3ex<%%>(l#+_&fNQa!a`*mLnGAAhk*J zS2{s)^*o&K9dCl~rFy){m*^eqdmCOK_EhxM^0idz=5p@3N)=CQrMXf=$)}tEj$4D~ z?1iSvPESyY0Nr|syD9zDT_l%-Wx2{If>OfWPbuX-t^{D!3m%+KnlbfGfJPsSv4~1) zl{5NFu>u^|dOQDJ3jThT^JixvPm(*%y~X{~sdd_Ic3VC=%{=t*ccK0RQ zB^%nx5hq~>lP%b9h+yqCt}L!Kms&IRq4}Yi5?gADImL{2zdF;(dbbC7M;W@uvd6NF zTgD+*uSDwP>I>PPYVQ1WIq0gjX=TqOPg_NoyB0N-a>`ZZg!`B$#q+cKp6k_YI~iKc z{eh>TlHdKVC*bbkNRu#&59^M%hIo$OB_p_!<^Ws0{s=}JGo}RW}lEWAqm%V6~A6MU^!s<5cC)HXB`ob zi0FSnzh_y{DW)ZW=5n^C+Q(J{V|S!(7FMd+HNQ~*S)byq?O}2 znjgKDy-&O&eA7(ROdV60+_BtojdZ{59tf89d4*A)xjO4R>(PH5?t4`}_c-dV3tHc| zE~?~L4!O6hoWd?SrP4|}cUh%{`&;=-Fvz}^8rvG%(BHKd*7gQ>gTvhSWNWe&^~G=> zhsL@ly8NW0zN7vPpuxH3xn}fVPB}NgIFRjc4EHl=s>8lv8uBJPlpCr_Mz6Hq5pRuG zYb;jSR@ks_$#(L!O2cJho0D#*x}Cz_u-JPHj~~RoVH}q@F0r?vx8b-kOgp7uJolss z@`dX z2O7f?euA(#B~{+&K>m{oz%58?$Jdq?RAYGCv>2R)qdi*YaE5DjQYdvf2 zZ0l@m2zGftb3ZfgT_a#LH=0{!T4qA+4fj$^LUWyl3_Ww*h`Mb@634}H*sDh`pfy(a zPpr%a-ZI{U-dZZXzcXh`W;B+@6tT$L`TWLf87V-=1 zg@GDCxaV$qs6K4W^+$bZ7&nYt0Hj>;HrVHiF<;)|v5ghIvN;W$(q)()1cT4we z>2s-*t&{3w8f+{H-)-mPxp?lLcu$-Mpk#E)bklT`Q*??|L4(++lvg(MIM)fn57r;7 zI>2h%YFkghAXtN`=Z3Mn`9xs~H-*DE3&vQe>JjOo*7v9yJvWLwEBvxYAGr=IC6zWx zw(EuKrE7(9le@`!pxJ3aBUsOZbwOL?FD0b; zMkz~EwmD`vevrSC&|issyY#Wr$I1h(VXUa{slKN$R)$^xv>JwxU20zxm^QAW^m`RWGgUz2GhBYwpF^6Y{q=VeX>!(V%I}5;lR} zfI5HzK-r>3^OStZmN&6EOV+)gR z@!jG_onc51eGh&2a|~HxT4LJ6@8etQB1kJ;Bspn(m+hkOqDS70@h%+eJkvar8|2MJ z`Jw!i^oFCUqozas+&s^WwJ{E>!}>koJDDL@l(sNGhsaUVn4#p8Lj?~;lB35f#bR6$ z=$KTFov+3tTkHC$c}W;o%dvz|mZynnBKB31MOj>9TVr#HF0rz$vJGo)mH{7HXkKW} znddr6Rpo%2fFy0C>`^od#_N!_G0v1jyO*TL(tf3tdyl)NQrmGw+Tm!f-urlNJoiZc zQTj^!N?d1KXWIb4xE}6pj9bkVHu9(V!~8gI9B5y?5-=7y7WQ&6GJ#zObNjhq5IO@b zp?|-%O5;U*MM0xK&hOwCm=~Daz&{V7;*07Ba$6B9SpIUc2*2^Jzojlwz z%dyL`*YU0+!f|BZk$qw7cQ`3@F!~V2VsQ*tSVY~#55Y{Mb!u>>b6-Y(`o*(-?mNb_%KQlcuefo-~zLGb}<>jD!Ry-?W-5-u0_q<*x1qiLgQp>UPYcM#WMHbD#aLd=Dj&hee&k#@Tox)~P3cz2q1n)0Tc7O)2` z_MYs3H6)~qIv(s-nZd^i?+H(Y3ETt@<+y@I;)KBj63Bo)9y*z5Ro3cU)DT;zJu#~x!Io1?w`i}b! z_RVcljcLD&lEq{zDR2;N#{s0{@$fSWI+OSG@9F2Vi&*R%deq3|uCZ5cEVq^bk?iLweDeb3Dq2!nVRTj1^;TWl;cniczO70C*`R36)c>@Q?VP z1(q+LvRuC$_C&FB7|#KAZHkJIipM+*O1kQbk**2Y9~9%U$GBslKV0H5Cb|{)P`ct& z!q>cHteBEVxWPXcupSuuzm+kUG1moM1S@DTBMjvv>SmbRp&?y#Q}k0*9))~IGD)Vg z=CWq&C09MRVyuR=CaBw>C+B_O&nwu%#AdRoekqK1o(I&n)wZENo-^i(VnsDxiZOVs ziN!u!Ds)CAMlT>L=JwwhXDS+Pav-LdgR5vT?Zayy?8j42Xe!g?(4C zcihMP=R6*VJtkJN1B@E52vGN&0hkZtoX4(Wv1cBzdlU9`9iU@KiE|MIdoyEAJNA}C zU33;Hco21ta9pkj@X6LB4t_sXKUI(X9>=o{?5aEReHrZ@>{S}(8*k>)$PMv^coV?b z7+XQW3+oGO3$cY-XWI-wNg3e|Uo@qGt%0pBppft-Z-T#gcBm0;qn^56I(#<9kH^tt z)d2Q$cimgM!eo+ulKunW4`0B3MwxmJ@StGWN>d7h! z+Sl+FTp#=Pp=`MgxNN#?!ajnV*~4rvLoY)=HOi9b%nRclc0Id~ovELx&opEjaGtRD z?KJ%~eU3-AolsNFK|s3C`L2enbR{R{`2)ma3 zflXl#8x9+=&o<_7q5SHP{f6VTafK2KC5H8)$NU3+w$MOqAl{Of$~97+^9JFXpgE;E zHAI)gOWraj3i$<+QbV|Ix^9XzN19`~Sk7*;16?(YMVa3R&N~!z#%=5fBkCp(jR#qj z{WveE%j|>ot{YoBcF?Q-!Fb*s>;d+g>6!_9(PGU9_FnCDJVMR;#OJ<%J+3>+4mJ)l zUNLIpwID|hBos+3lK9N<%z*vbqsU+#p1+3bGYZq^Zh4cuS-vM@9s|l$)DvpjYTD`p zP@lx(SivJS7n_R>0rdg6aen3(36+JaDfNV9!q@z5K777iEY{p(K1l_01#_|~+4K|l z6ZgdQ#DqQGrvt(|SfPX1*SJR7ei7>*cjnr@oT!F{1E z>;~*+kF#_1b6`CA&P2yY#}6|MGax_si2H~;4!|A{C%KaxK5yo7(im;=pS0Rro$F{1 zf4@T;dTX)v$i3m(3eP&gzsI$-^;T`oi}SP(dcCRLP|mE4W@EIAwr$j2S}{W#NKe;( zFw&?kviFeojTdXR&Y^d;+Jzo%=@h-T_nv*)&(<^18AEPq2X%93x3t%3+Z&2Uw|pZ@ z`)KJ^ZSj_(w!oE|(T#5xj!qK3*Ou~K)E@2LE;@Zz)#yb{3Pcxv^P#qF)WGPXi&{n( znp!b>_TD_v^-52Te)~$F=5Mhn{jLMr?p>3# zj(7WNtDC24$3I%H9e?qNmON>x9T6C)9s1*J?cHsgwS-jD-gLIp78o;BJ8{B7ZG&z_ zw9R|h(ptIB+RG(IYv(=Bin>(1gjO)r(=PUQ)k+UUi&oD7!@@t5Y@2egDBE|k45#}Z;q<_Nk-JiOP@r2yl-pN%n>J| zIxbF)vMm2NijXByc}DJxN@7n%omwtMJ?cF+YRZU}QO{fNjk44^8#OnsN7VI>6Qg*~ zny4v_4@M10Z5p-l+rCkohEI$7M?Z(f^bYwi=_~lJGQxlSef%S?@O$-A{7dKi|NH%4 z|JC2_+o<`?y<-1ae}8mo{Ab~R|MaDQ{L`BL5zlk_|9RTeZ%5w$FXa2H$p0%Skc)!3 z-7~}eGs7J;|56Xle};7XqmS?Zu8;42a)2Bphsa@agd8O?67NJ8X1xj-^VCb>v1{mZS@e~Nt1Ip+0$|58`uKjh;dlKwwI;{P7<{m*6Z zuXmQtk%<3W-tpgJKmM!8v;X9o{#PE`?|W~*-_?K5asOV|{&$}3|NDFYz0UZzkNW%0 z^Ov90{HLG(*5iKdsY1Ve|EKSN?Z`j(HNF1oPyhY(cl57(`&+zMuj}BNKYR7to{99o zd2-V0|Nphm$!|LLkH7!Uzdx*{|5mH)-^-`_ujLK?{rtxNJP-3f-#h*HBj4|a{C_tJ z{GX%X|2Yc%CKUdgDDs<7^e>>;ucG+>K#5;P$zMUK*HHS;Q07li_BE7yh4Q(mkc*11 zQ0Wya=RVIc=b47#ry5qveYRov>4rH^I1E4IF#MFm@N*8sPdW@g>+nyXcKG@e4}W>) zVfd+sInO;rD+%o+w3N_RLTd@_CA65@t5y@*O=vlxy@-}F+VN<~qb-ltJlgYNi#}}A zqg9V~JzDl*+x{2N1^O<+-ixsR0zDY$!$2>_e{%%nGPy!NCZCY2&Fe zCZCbd$rt1fxl6tz_sD(n75SQcLmrTC$wTrTc|;zQC*&#lp8P<5B+tlCfN97yVj43|n5OD;>RK=@nO00|rVZ1UX~(o@IxroXPE2Pe ziqSIBOc$mr(~arQ^k8~2y_nuiAEqzUkLl06!3fBx1HfB3Whz#sU-NBH08JN!@b z8U8Ey`2JbmwZF$V_S<|}f7ws2+^Xh1Z@p|GM`m$8Yqy$0)~J z^rxPpKlc*lc!+ZRLx0^j)b2H}P^VYA_}}sf{ZDJ;&;3CE?ioXW_%HtOU;JMFi+@+j z`y=n^_3QpWzVAn1(KY~pLrd&j30zax(!YdI0z?upB34vfYN?`9@!7K6a|03$Y7}@x zw8bh`5mBpXsAx+;Q(NOL)mJKRRoYrx7u*-zWl@%jpS$dbyeGxI+)bLPwm;r{#I%X#_tUtWHeec4&@KX)2@Rnx!vd3BchtDJ}a zZ=ZPnwKK_!PZG~N4gA^vZxiXO_wKs=zu{ZLuj#IrkX=bQbiHtnK4^qv5$DO)@>`(4jNE&%f%HTK znv!9PK2ZwL!h3y@(swZ0mo^f)Egz2%`0jcB@f6B1Z#K}oecQ2fCk zP>_EpI+wQw9p9xy-n%xS!c$)%#l+2sUJ{F@%!)&kR%}NJhrUBK-0#uhoIPmAs(r}$ z${`eY{3LR@e-WJ#$DxxMyJ3!d(dM@gqB8@Jp%rb3DCzwql-ityf;SvNc?rkS+To|s zvC^|Bt>7YzOGQ6uGEuLvn<(|pCNygBR%myEjp6~{9<=SFpOJdyeiRj&fL`YRtz8*t z)ukI~O3huEdoJn-EJXa+Qq=xgC9(;vdntbxyvp88>avQD?kb$`(X}mt)Aem`YNx}O z>pKrcPwM>Ss##~ff7X*lqc=U7=?cbi|RMvKH$NsicUSVyuqg>kB(;STT7Oy7r?pU9+>&wTKug=9@D`## z+_K!0-%?bP-CTTnPc!ezvgQU;_h#pHyyk^t?=?Bt{@7&YysRl{oqN;m*UXzLFJ(9G zJg~R%+su`XVf{TD@5Kun7tAPrd=(vjyklnMV|vfj#~y?19?!d`ZrJ|I`G!p==!QoR z-)~qr%dz2y$J+X-=dRb=9Nk@i_|CHWE5khM&GuN=kC|5fsOpW=k1F2U@Tg$cdym$g za(uMWz3XAZ!&?vIul@AU_Rgw@x42UtuA4jXVMRql-HC6n*6mxey)J6$(z>QNkGd;N zpSpy3HMODK%e5D-$JWlf6jEzRo$nHKX=2xum{(I#wZ6u6 zt81qX*Pj{Mb}2tGZULp1!C0Q2v_gz>R*@SKc2{oiLqK zUA7>PaoT;H3DRt2JQW`@@mB84#G4|9d$g|V=c8#=+FS8ecYCj{>J0a*l4?d)DR-Du zMFkdD_CjYXJ5g-q8*`Rc`t6=nIa52h(tNeH!d;YIk#zl7Md;qIDg-+hRwxg9R(w}H zpkmbMwsOlIcgsaXkCykzq{|t4Vfp;U6Uyf<98`WXs^h`CC$k@1;hucp6t?-njJ72Y z1iQQ+j0+t8Abz~@gAtA;Wk=mFmRW@CDC>K8RoP)nd0B#LY+2nvVVUfI>Pq)*y;fSV zW`F6`RbQ5hzg|!}^3sIT4^4-ZrY|B&|5i~{La)A9vTyizC5vmxT08bpQ3}g&4o1^?iY@mmRPv-t!;&?Ute8F4t}q2H|bUwz09sK zSCa^DLn%HO&+M_ku z_v_|l|El%M#(Cg-8-if)gQ@HZqStVO@EAo9xBdqAVuI*Dl_1u^vEj$Xa34(&?`$Io z?kR%MaT*cJoQw#wP$NQh7}wVvqIfQc=zSNi+4%cGT;g&vmw0oZ3GwDR{CO*nh*Fvn z(|s(6>55)(FC;o&>rLzi0P%VNS^(e<04O~G4FFgT06x zfMfuW1ppfL0M-G3?Es)s55NQfI0JwzJpgk65R3s3rzrF6J@}aNwt4o@(Jc;k6lVC0 zMM=O}njq%uug#X;?p7U9lw+z5x%EyI<PpHN8403}Y z)9p%U6m>c?&b_iJ%Ailj(=F?$xi^_6@OC@a6-CXwX5;Si#IR4t(=BVWWv2T*L8fah zj7`24=Qgd&uusR+Eo+0o+dWs{?b-qF^RL;s-R&~$)A4l6N`w16L8eO=yf3>J=i1z5 z*r(&^mUR#A^99~6_?eLpuGzRg>Cva->6VoX_t;q*hH!)@;VOX(-}8s++V0o8zq$YI zYyM06U-sIp=l@_#C%I?4CG3y(sARn}id*W9HX6-Cu3MgvBPLj)w%vmer=K%g)+j}v zL!lxt`ccBg1 zqlmL54GC@*fxLFKRm`V$%^pCF`-c;?#V!psNQ=;dkT$eYZ9$Fcw4>~YJ5gajNvL5d zv#H^?H0WrY1=YUWj+%CU3>D`np$@psraWCED05GmBE)voMV~Pg_mmeEeJYSTw`Uc# zwQeItmF}dLR34_zkzUmPF@ent%btcen}^2Cb|^%G|;brjdE z@({cAo+WPFv{G#H(+07tPd~A{iKBQc$3whr(@Zg?T_JYx-5~a8+$L6kcTh~nh{ay~ znc|9&72?RwFU8Su+r+u!4vN!klf;xNTU>rGOl*?yC1kZ|4+sNKXyL+-LyX3cMD&6d zE9Jd#2S7vT*pT*PE(C*yds9p&ZUG1yG3ZZqm!rS0 zrlkKy%-Y{H6*|4i5#ql+`TgDN?*sZ=@Au`!vZ=>c4|0|-`@jt+y@;Uj`HPl~o%7D< z<@4tm@ZK9>OxO=HexYo-OHS9)5}}eYQb~jnRu$EubEw9tG+Ii5#WIDBM;V$;Ul-X{-CFP0!#z4yyTT za{wYp^bjhOtY@e2h!@FM*1G?IjqH3?CD95JC3fqR6lQ`%nVm|OrFIk~%7w~yPPkdR zBm;lIq!z&tFqm;`PX8ojNr^JaUM0z(Wf?F!n3iV+tK@cIAthrC+JjXdLckeJOGLpc zPYzIMxvk2V3sVZFWp=?Tsij`N;%yKs!deAKlD8|%OpQ~LHO81%<;iC)AO)+-Y=NSh z%&YzdkicNk;!INz;1I*zqJdH#-iicAQl7FKXJADtDPLy@>^58Aa&W%g+JFUl@@VWt zhL$k^-62@zYkdZP;TPYlJVfb|avUUTGg@A*Ofgcy@5pk~$kDW<97X^!m=?+HtO;ST z%73j*52~Y{YO78K=QtjR7?AC zRq}dT3h$d}9|$ZBEdg`e(z03=*s)&a!=+_SDk;3zsC@WfKYQ?;IjFG@R>{)TpimAb zmZt$55YxaA*2>6XUE$W)PJYZLV?5Imm?)lM2`w3>@`TveI$vju8lkIVcFM39#4juv z3{e|u1ZMPO=u_b!*Z9GFeP|iqmq~q05Xvij z2>g*ihJg~kF{}tCUQY+jd?M?`@hZeDJRhb|%gP26Skn#mP8&)ujV}gGOPYKbSG_`+b|jE7Uz0H)Vr=wuNfXAxC4Qsd;n{j&{R(ab z&r5{t>{yH3>BP|}VMy#}!RJbF`B~QGa(=MN{EQ77WPIK7;IlHMmcgpY)-*VVof^l8 z9Rbb(XE6{NIX+C0%^ySt|HY93$kN%5Ty)MI)}V8)koe<#gYhcN+2zYoJE(_;azlk7 zd~2Muc%aOO83-aF;w&BuuESBKU5qex!@DP zRKLc?=^Q%E`T7S;#6w-I>gU>>f51XU-SHr`RJQRHBXuUXRBD8ZK{`uYD%))py`PS; zSD1E(k%22`v%%|Y4S5pcL8e)ssTc<Gei(D_`KzsMfXpX<;bbJgJ& z=qLRg6#ol|^>}T2;KgeP{Pc9mD0)~AyOH}Fl|sWADkHU!VXy1vs**Rs@`fQIWt*wO zOg}^&m@Z+uw{nKv${A%OV;bp2EyVx`c7%2J3Q98CJ~HK&rpH1BkJ^I{=VuLBT`eQ;^y=4;UPdxO0w-w2raMTaFQlqiTG_@f4YV9J zMyGxwZx-5AFWS>tvQ{GpoP&XVtw4J!gZ3x1f_Zd=Dx)cCPi}H2sYIg~MdRPPGfYC` zut4LT?(oTIObny(YInGS#-RiniS0xE2p%It7QjZr0$v(M;2aTbI7eX`gDJ$ck+c+< ztRi=?59HqAVLzKydmHFN<2-JRWL3yU?fso-_i%e4%drfaPaH(^u=Lf$;BTq+zWr!F zra99*tlE2?Mf-kDP4lECo4fX++14CVJn%9{c1yN7F$nLwbGu}lYdO$(C@R_JXig0p z54K3QIm2twc;J4;wgXLITkwDtJZMJ_T9HF`;E)yQw1b^i@Q58bVnw>_K$jKhv4cHU zkj!776**xCPFR6{JJ@dp2kgjz6&WNQC+QqS08VDP?$lvH(sbdYP|J$T3PkLAc+{Sn zG7wDaUtO0HQ-jR!JVKe-N5~_PmLq#$#DoX0=J!2<49b~D%15ik^HHFyMXw;BO0#v- zY!v5`E`Q*e4|8fH6OWX)M}%+)=4D#Q%0KSlJJJ6)9AzUs*mi9^;AdozhTgJDW~8cK zA!BicBIFXUkHeeF`MH+E#|fj19jpmU#3pCU&Ah)_Gh;obLYvzNfTimrnay9K^CpDL z`6A<(2cCeqMYC?zCT}OW5J=YtGHtUs@szQUB{7b9K_rouoCGXKqSkI|Q3D7&khQ!7 zX~7J?Rw^ExV+Ds>8vc8-nVUJpIVNC__*#$jOTG~EC^#(MD%w0a6@APG6rz|%#JUVp zNUXZ~GFq+f)P**ad<#-vQc;%#1$+4v2VJ8I{HB}5J(5S)x98 zRsp}3LP>z2X~(|ec*hY8>JWxBG6!*5k3U4mLZ@}|6K2AI?WHKiUfZWj?$rl;ZS&*7 zR2VKmQZryz6Ps+`QSp+_d{5RU=h#6}AM|aWMnQ|59YA(e0@>u#v_w6{XHRsJO=|VA zSfBA=EHY6P^*-lePP6dgK<9YzG7)P}XjOYQb0kQXbjS`2VEK?yAJ#WLhF?v_lHgGH zxr(r&d?@bkYsL!_u%Y;>lSU{vb1loVPZ2(ZbMhT^`qQ>7+H5?Ka+4k);CB@Y+F}V( zW0;=R#>fau1hwgL|6A~rGRZNW_c9o3AEdn;aM-NJj*<)va1tX=Bik-vB~<2Uz-}~_ z1coTCb~rl}_Z_9KwAsP5YXv4x# zTaprR)Wf71$=MFiZ-+CE49gv%M3ut}@V1pgx~&LG1CBfs0y zSoFZYb?8gormEhyapBCB$2-npKu0%^2xhnZb*neez6_nrRIy9Tn_|LQncfE7BV*6r zl?G=_s?~&&ZP(C3=-gg~$W=9(PUBq6plQwox(cm(8;ydn&X_2Fi2bW9z7&j|7kOte ztC`ZfT4=Kcvl?~iqE>gx4w_=_yL7z56FUn^td&O6&vfW2=I(7Mq^PVt3#*h)la5M2 zqfRrz2si5FUBB!aG96tE+qX}AjrWV5cu{TZJLD$*_<1gud>L<)xW9|EEV&u4rWIvT z%B-*Wy#I5?N{YkpjnC&1ey6C-HIo^+M*-830e$y++|!PFlK_Nl&N7@GCxoGIJjt+| zaEM;D>!RkGwu_v=WzSi)^MBQ>O-6w>ro|l>(TChpiY(kqGFMN`iR(}6ZutE&&odfp zAJw8;0pJ_;?gV%u?CNH=u6js(Wk{udWh1G=i&>}w(Ku>VtNo;{>ih-?oz!lc!Rr|( z&r<`L0g&|fDxJrKuz{dAx?>>H;zul8X}QR1S_B3nEty@Pl|mgg)rwpY@^x5KOG=I6 zf2|cvxUonAsHtk_e&$7jXuEKh8s~=$Ky+@X16EHkwW*GCxb*}Hzi_7eoKArPIq;72 zT29MdID6%(3un8}SFn#uU6Z2!U=S`068E@DLZd;29DVYf^!^>^pQr!iV2%Vb(*j~z zV02m_J&mj@qWlEe$Ep`0!ifsgwSBKo;NNGO2ui2>=}-89nKgK5qVSj;f5>MU6VooEm;C-#+y}mCw zz|J8EI++S#H|SL_t~Bb7k0p2i{CrslGHEsWnOy%ka(T)-c*>v(5+&$XF_}x5HV>oB*%o<6$vP zE16Gce@Mv9U^|u#Ltdwf8RHy)gSYMhNC%!WmKb(h+U_QFuvw>rent89-=1eRPm}qs zgXX0v3S3tXVaXdY0x~xV+fvmg9#hd`3z8yuu3hxp71vI#w7Ull*g^eYYtB{EOtH&t7ecdkuxk zM;#H8cyN@jPmI=ASH=8Z>?1?QeX5sp;ot6pO{iE&Iw<0ip=ORI!eRw&A|6RJ1HJ*- zHQOtFxqdk0eKo+KWY7W$f_hI?Bf~VrFe+rPHgYF>1B3FAhGXYzqvSQy1k{q>BxDmi zXQEm|AU9jzXtWueofu4hMNxlvGFiV?Cv?LlfIe{=5m29afzM`;pcbNqj`M76kFv3i zWaM`6QCV+b087UM1HgP@(Ik%R(qf)`NU=plILEwO{2(S(!!O8+O>C>KwbigiZPgU2 z9iYAYbNz1DUrMj2w;JM}xymP;h_#>4qBSza101GBPKe%0tk8p0T#ppe9xK>yNBT?b zV#|YepdX|`Zr0sOj%$ol%515X)3bdXU>O+XlxH7)Hu{otW9|JA&|rVq5zxqgf-C(p zNt4mqFX!zLW4C?Ij6FS1(?(8zj!-hAZQBfHZPY<%AAu5{85twVuTLt$qQ2$cwz*Ok z@xIZdqo=<%KsacS4nWpNOct%@5EP?Ho$o)>#3;%*4y#Yx#ugg|k23js(hmYn|FnC& z4mtTXE0}WhBbWl~Hbp(I8sE&jS{e^zL+WkiF%Rnt0&I#ny|As-w$^Nu;1VUtzEZSI zxL!rUdbjX;Hx{h-^c(Jad`F~U#U@=Y`9{el9e>I0Lg_!_7|dF=%p-Awk7vzd)~uS< zcxcU~5@8*3mPJ_7%j!q=tgo9EDHDn#cG zja$NC4OMiS+FvyPYd06o->S)JnGsV$9G>Op_Fam8DA9Lp4{nRZwor7w9!DOoQRsy^ z2CxISX{{ztnC2M1N_yemmF(D(Q>neTagK6wY{jhGAapcUZR`UN%xb6>&0bzABk$0- zic)kwC_rrM2qU03p2VC}{l-mW3@af_-TryU^e;Qc+ctJtJv)ts;UMBPL`|< z$s|EZ`9+N1vH*1`8c@v)pPD;aKEI^=VMxZ0MNrRKpIlDL)XdWHUGexLn^7=6eW~#j z?2R)x6X3&=X`_PvxWHr zF!KF20wTMyr9eB%-xqb)+cNR~8&+K6eZvIwW(q3U-8x7jnBJ&^K#7~Ku=)N2QYjgk z8j@P56G*z${Uz9EJCGtNt=jpjth;z*D1@-kBcYk`*jMvWHpLIPlK|gtY+4Ln3eWnk z?UUKS$JcsL_FmtGjDAHwdCrvBh;e<%7m(EGUa*1=Qp;zbqBpQfA?!vyo7n57Ic7|| zG2_jZZfzj>DvB|!V2i2oXnl~4E zk3L7NPyDHttHNq7$n{g;8Z=-97yH;(F~xVovWRTK__R2aEjeE8Fqn3Ojz+mx zs}^Y_iVPtL!z>77$JODu1r$GL%g;`B;&UT<2O(eMv1QOH;XRYfEf1J&3uST5IlEzb zc3J1_tVnv~(|mP?I;hiY+<MRFOO($uuL&MNz>OqMR-?uaug$%b-zXaFjy{aO&v}ma0 z+p4S+1D`m=%`YZySe(%mGD~st_5+Ti)8fa@i0CAFJAtHRA0vrfdz6$AlJHd*iO6(_ z#TLDUSjZ!Y$PF{4VGrMooX0O_*?ccr9{&3tH_e`$Uo3RP;yNaGRMuZJqF$G`eabi_ z#lPF#`=J>^rY+lLy*9)ENYXts$U_8P|>=G@1t+2U;~W3$Aj5$JVFMPfCJ+S zY42(gSe;;(nyGtB^z=xN=qoEfbFAPfOYn8FaF6PVOt(d=P{_)Phgd`em?kgoEkeOD zQh1ZQsKOp|4!vlvUZdsa_mTwn@0vUVv32=0^UYMT9#5zx~ zXRd}*+jm07HCCg+B8y_pzJ7JhDwwr+1~|MOz_Dc8vAvD~=`6);&`{0+eqsJpd}02~ zz9fH~eAjn9@)B0U6UB}Au=s}=kY;^?1WaLmF_!Q~m$&r)otI;kaJHGPCI@nFoPd=v zV&^;*AV;#X5Ac#X^ydj?TmdGDf{VK4ClzRd6vbGr?=!9_bgg@fIw>bH) z4z4Fsi$2;Ymw)4nG9`*IW8>o{y+r<3y{|it`0S}}yE{Kk-acnruD*vn-DkAq@_@lt z)Nl)aQ@~=|(9%p19UR5ulSI?_gxU0r7;ieX? zo!Xzww+sA>ILSy$*8|kPHQzqWmFC-8w%t3`)cV^mh_<>5IcuY zbL>ch6J^8lOCfo))zvjle`U%f92~q-cj_=co4xSSu2a#4g}>=}$x$m{bda{wHa1OR zZ}2d#00oRP^If98B_-*yl4Y#%^3ZbA{a&-x+bYNDVKLGNap&yoT^>&<{N~E5Uu+~X#mq#1VXb$-w!+n;iN zpxZNr-JUJ%_FQ4Ne=F>^zp&eZe7BD7g9tW{=G3n}#3gZPjrw&6zkcfc8p5w<*0`li zRZi>By=oD|EB}oP?(G9yZFR;nczyN;^=mJ5;t!iNC*EA72wUbYp#OGn0sSky@*k9< zZk5aUK5EwLXz&&z{-X2#&605!?DF;kccz>(7w(x0=gcXN>c4><8RAqEx5|Jq&_2j} z5V6C|-m0AgxGUwsn=f4CCun$vR)(9nM60b$QXGV-42Cvr&MG|9i7PT&a3i~-H%*AEz~i8_rrqg z5Kn6=ZM2lJ#{W#=@0jeSo5J`xFooZOqV;6KDkwPNaugaCedykph~C5rO&w6kC2B0z z*k7B!?0;lDEWGb37t@V|ShR!^(m&qK9Q#_n7Ob-vXD<+s(!Ho+&54C;)DA7 zyh4uO>HK2qZ=6>s4;@>in2~vybgg<^BR*TG9+!%g^Js`$7MCd)mC2th<^0LgqWp=U z->hNzSwqMSF?Qjb4LoLpGp6*FiZS1lnHqyFX7`Kv&70sX9DzOV?&5Bh5O8j4|g z^9jGzdhTR$RvssjlQP2MJBtcywZ5|76UqyUoX;y!A8a+<9xrzme-v2ez9wp2qU$=h z>|i1ampKRL;{xHy-$L3pgLa3@qB~&EE!>n7JFe3dFr*#QAHcnUH^Tbf1b4{X`uDw< zGWb% zA5@hGNIO8T7on|E0s$yV)b_qwBijL>dBjh~KDUhK?SWS1ZQiPJA{ znhBkH>W<4+d6KVyX$3b!p72QYy=xn~$a&*}DD4xfa$|>3UwQ zD)y1)6kXp(c{123(<+5LQ7iB>kg=aj4sy`X7_uHX@Cj~D-XBO&exuHlyG z6yNF9bzETi!At5INmsZjbPaU5 zW#FE$d>Z-aqO2%Z?Rl9~ZiiG7HgbrQt%sb0JygG2a_EN~92^?ImQC}aZg}1xhbr3- zqMgM&{_E}307*Zz{y2}6Z2SeQ!bhrqr`vygPnM;MPvmSb$=Q;XBj3nL`rDi29I;ME z<_Z|=UfoJP=g{1{-3dE zF^#{{)=A$1{Z+O!6>fc)zu8wZO0!7CMvc&i8ljxxO1BH_vht(3_xbyJ?l6m+5Bz^= zS0CHdb;X}uhdhu|zXXQ{FyMhp*_zQXGN7XBN5CpD(%Au1C}O1ykegn$$A;H?O&Ey35a$2uXmxka0UzqQlk~0y zArIb*xyvyvlcxQidgHjb8Ct?IVy1*t3l^z17cbcDeZ%+;{1bt;RVZe5p}pLC zg7Nq2IVZAj##h4g^7UuJlPDIN7dH-!2L&J44K&4K{dv9w`B%>nGOo1;j58XrF!-7i zvdCLx@gT?|&lb(lqolApbHW%eU^-q1A#WE#FF~EeKo;RZx(1-H>(liRCVVJa3PHO+ zeKB0o;`V_${fW4#gV9Wq(M-YtLPkdxhG1W?R1FlwJwTD_AfwV|3Q+%8ZpEuU0gLgm z>1Z-})fFX=qj0MAk?WFX+_8?ZU;3r1_j?=z1}V7WuTt4rX#aep)E_dEElQj_vhe0Q{T8m=O8!FLWFL$+a>FA~lxW1)XA&Wi z7R|DrpE=^)ts|H$*Gl0sc{N6Tg1LSED~~mHUZ24@myG_6?|abaFp>!A3mhhjt#bm& zTiSODpBv%JF^oBo_)xTAC={VsKV%~LfMT7XoQbD3Lom36tsku|T^iKzZr%j|pk`n_ z6S#r=y}EKYj6<}hmX_7ox8M*qjyDnYe2TA3BfwPaAbe$mxF(?2Zrl$8g<`RnduHsz z&Gen{)e?5aONOEOe(VhVY*;VMzFvZH7W-T;)Uq%U>>PvSv!K3<;HMpeH)ae`Ttd(v zkzwXd!oJOFG~2R>n8}JlrlpY|h6GV4%Qkd4!qO04gZ-owhnwH}Y$g%m^BBgsC*))g zbQojU5$4`(n}{Q2mCEywqj?zB2R>G7NilN$HI=+g?r7G+fA)FUdqd2_Bb%J_pvUu} znKIR}&Dp#KboFF(^&oxB+dr5$)h$%9NWF$uNSDodAipBy=2y%>e{Tx^j7;wWEuO%u zyS-yDDTM&>9n(|YL8*(6F(iyC(EVt&?UR9>ljchvf#e-%N(S55ohmJrsJ1W)O9j#s zL0kr)vDuh^iDf`Rhlyq;QpVZ))6@3k1rmS(PwYZJ(oj5MSbf5*jLO2srNxkEm!CF` zi0=ay<_(O;buQvftBwd8CWEFDY*Ip<7&Z{t=?hHnx(3aV!&u6Zz@mJ2z}%`V;sSeb zcTpUI+XTgY^5i%t^63{KVx}%YZWh~Lt;c9!jXW}l0&#co4e!LaXxYrE6fL45v-;fD@c`F z#Y=D%L&IYeNk;siVw2H{^%WU%R(Y+T=q4|Jyo~p-9PC`bD44V?Vk*-f83&zinWYmK z8q%>w{Wy}2HR;E*(y?a!IFybp(2v9E*nKdf_Z!@WT8d|c)<+uL=etMrg4{$)FaGlK zXiT>b8+_obg$Zux>R}NOZzDYodG4oQcn)ENA@)suLu5rKR4v^TRuIkDR!?H4cyBWy7dYhi~a7fd%9X?46CidbSwp&2IN9!Z8Q9CeXx91&C~oocLgVNjnU?X9DFG zz9nws`^+^U?3p$bN;D^IQ25g(*WM;KU&!*?51Xjw9}@sozqFxBBr~jCn?^eo(Hqgz z9LLrg_7+f?^D%M0@jHA;2GKe+dQKkV=k}@d?JsMw-GO2Ntx|H9I z+U8aCpF6qmPV%2yh^GTs10DUYIzGrj>b>0F8`vFn1|FE8#T#h!gP$-r0 z1L*H(_0W>1ePa?Td$6#q>wp;U6tE82-IvI6Yt>x%Zh@W`O=ul{5hsrt3uwo7!~qlN zUt=wGK=S}-3!ASW0vbOD1Y2D>Wi85SmT6*5r(WFK2_+^Fm2H`aKwzWA;|Z@VzMuJC z)64#DMvs5sr4Fyy`-v6w%1U@o5tqOQCl2z(`_5>5BR}f=BpN13U9s#s4Q3Bp`Y}c} z66TrTEkYsESE8S6IcO@1fF9V7XO!Ya^+O9QHL6{yS`w6$p{VwcFRl#QpId5E+`{-? z9>MXgGS5`Ijqm6Ib9{<9KFC9u8vH{p^fp(7ex{9>ngHVHCRf#foK7>HydwbEk z<<>wWQTX*2KWH@?c1<7uRVH%y^W|7fF;CyF}9F;vW7lwQOhxOQ%rM{ty}TpqQ^>tqSAR(e(8F*9}#O6 z`BOUH=MPRe=hRO<|1}5P+TM(K%&kXD@t9{n@i_6AbDU2<^2umVcd_^XZHKaz z)<1!|APe}$PE|+`iGn0AfY+7kS5h~M&pZpdA_>e<_W4ykK8n@uNT01KO+EAZQ+@)R zvZpTksh*|}!{Dt@g?9)m(J&x+jYAr)hVVc0q2NL8A4EWXvYBh?VtrPTlmWn|+$(j4 zkUfjBR-lLTj+XiO<`B&}sAsqIzWek7ERj^d2VQmyyllI|ZgYFn6|QgUaeLDrN|oLe zABSaDBLCkz+Vm|j5pkmy`(=fCyJCN9T|xWprJF{m*0$eb-OYv)Fgef(X}@hS)qrMK z0}U?w?MH2+?6+@W1A4$r@qiX$XTULdb8IY@LKP3;h7%Ml3L6EB1aeYiTcE2FKvAkA z;*+nFsfkD z(nq-)BL--QHYBA0Ga;Kr?r z)HT0YKY+L5F8gz$zh_lg!@I5)i;}eKFOpP^|4Tddx|W(+homC~xo0y?7EX7KF`&Ho zYY;B}Da@~6X~;2l`HvM#c5U@jSu8~mP|Fsi8VyfB%`1?&-18+QZpc|9(T*n;?XaTl zU0CSM*QQq>L};+6??*`EVtpU|!p6irmFg?B-%K9=eYKLjH03sB&Jcvi1BnDCGAf|VB(8B_ zmk^V+f#4=!TwPhlQDiY9qmn?-1Oth?G)YhapDQ!#jHBo33td&W?!9%N=brOBzY{Y(wtuqzjOc(E>!0j~ zYyKKFUzc`WzeW2pJTcKMIE*ZIR3U91pvi zl24jE6}rN0xh=h(Ub)VC2sXMqrNB`a>wHp1NEx1jypC6mCU1WdMH}Wj`Pb;=^T*PE zdQ_&2C@SH(!>85vIAMG7 zX^)<){1ItqKnqSD_xb_x$ZJH3?PDK#{RnxHyu2NGCxlo>W?pE z{Kzgy=#OIfuYh1S?|eACxL`qwr=nnSpSqn>CMG_^V0ZMhtj&r-oLlS5X=Z*SbE>oC z1U1Pi6{*j#AB0PcJRi@Y!SJUC#+b+IZ4UI2&;J76IW9-s@1GR^`@`uwXtB&aITclh z?o9_84w)sgd%{4Zu^61$+3`3tAu(>%k6BHuVY>VDreOy%(x7GSC(PG#{! zDDx#YF6Dz1`OjWcb+H^Y(VuIT zOIZ+r5KLmpdQ-nyj#%#oG-AqkUu!{Xl~?znyR;B5(Die84dNxpmZgisCrcUnFMi1e zCp0Xb#7tnWeY-n)=)W}5ipsR;9Us>}_=g5z(26lp!03gBGzJ__zyjhc!BR@>rCb*S8Y}Z1_XBXC3WD$s z@5yIYLbtWOClv?*S@PILdTS0-qY(mSp=k?F$AoUObV~Vua7>+2#Cr3{#WY*1^ArzX zo?+qlgQH7|#Q@V|s`h?y`|q(=H+A4-KfJom3h`^;H$bn?1x}yGy)O%H z-96TB((LI_w&_w)?nM(froDcw-F!|2@d);316F;=Rh3G(g?uXS#20w%MmzN7bnCAH zyd}Q4%wag#gP5y~;OkAq3lLYyT^Z4Xs+dyxo{o1gvl$;zX185tnn}?vHme9M%bL-( zzKnR<&?tU|V1$LX4;Ht~Nv1*UN^*Ws~Z+ zuki^I%KIAE*0J3u1%@<1j>bT?EAtTQ2W(P(jlMiF1m|hc7Fj9=ULh-{{T+4O`Q*ef z8ONFq<_xewK;)!a+`OHw6HZ*tdt9s*BrXeHuayAW0V`Su%zIg7Tk70R-WG!yasfKm9kI z^^@^65ubt;(GWpg2%1`8o!jT+Xgf`BlB+mU7Ka*(PPj_N6Jr?>9DwN^;8kQ$)ld^7 ze6s;KY(_v;pD3Yv7VpMQHXxcZk*4ojb=@@v)@ck_0Ao1q$lMC_?F)!snUHdK(>Ovy zq*Ul)-EpUlfnj7;3B@pc@q7$HTj@f!{b04)<(jN23T2u z`12FQ&r$q~n%Mh>sS5KkiDlzVmng)wpkEAu9;Q>zXK!KMyeF6fc@(I3)whgKGdUSw zjK*77_;XNAp3MvReW}PzS2c{UCojk4zIO&+XH788h?ASKa(MsE6$ZbXIEwOb@cKem z6|o-n_onn7OB{bI?-rcTqoO9Gxq#vj%JWO10#?#|^zX+vfz(oqcV&dfkRI}+BOgETiUrFbs8Y?Mz2;ELjDPoWSTT?4SeqL@!AX^5?Y~j3-RBtjIkAm#ct*!PCUw=0HE< z%y%~&HR`qxR~%8ssSZ~`ssQm~2ILwh-g^T_;_r9jvZIOjM&UBFOnxjr54wsE@x*JK;8y!wb5OeVM$6SOwYX@%x$H2|W}f&E4YZg897Oyo=Rc4C#^ zIffg?f+YAr!YigFz$+R|Y0&TAZo@SJUV1ytE`28B$5(jO0hf2mEN}MzsXP>*JZZ7y zuZV))-9|F&A4UuiQfU329U~HakBTc}kbA%x?-%r4=LIVDl~ zR!$^bjn;745Lk5)m;L2%JIXYYwkg72cX)h%IGrPEQLrpJZ6VIILBWDF1KV01ztni` zjs00L+}@v5aD}BTz_d14JmPRZ508QTN@Tx9Nw+OEs-D*EfW*kj-_bxdx>|0Pnpojc zASKb18slUYpWZ2=y-QQ=?X3!aBg6$mAA<%^-07h{9i19uJSEe=pnplXC$4|Pr-Set>A?MyKc_98;k*aujSQz#Kl!2IzuI^Be?Mx5_#VzWERna$e2_q!8%pRZ1}&tuv??}#92)c2oG;Y4yx zD=8BbRWIs4l`UzRt%v^9M@wnC25J`$-sGS`EP*>QmdK) zU;`Ejry#TeE zV;Bl`Lj2<}Vl0fB8M2Q$wYszqU_7KLz7Ue_POyiC=i z(mz9-@vY09<|!5^UMxD);Y&G3@TEMc=j?=0)G z`T$4TlAm59PH$mFw$M?yJ)y3>I#xJ@de=`l_ymvPGIWE%rQ&LM{QMRYQpd6QDOmBP zJ{-2{R0HT+JI&I86CykC^DWpqV-CjcKrHnV#C>S~!lFd+aIJjMprh7AuGd^mW-v4o z?tgHPQ%P#T0IF4u=XiKXEG{&dPeYZ{B=HB_Sng3c*t<9Fmn#DxNF z93KFiG2)t(O=tZ^&JMj99V%ewhAn)S7v@6%Ms%Qz{VTiKAEyi4O8KiZ@vFV~)oIid z7)qhb`05Z^jTRA881k0$Y{U2-xyQtj2S_=c>4?%-1P%LCkkLUwB5s55G!>cR+}0Cw?fTsyP1U^=;FPLje#u(oZKf4J#A=d zY9}CfxrXtFf)ulX@s~PkLL%d;#o%K#?2Xxp_@X0&wt0=9ZJ7o(CEIwKoY6t_}0K~8@|;UU3$yz3&XdH=@&&IWLG84!CwEz-!kj3WBogp+v}fWumAqR zQKdUBsQ$3tXbJEQvV`!H7!|1>!hmB4?~)}XtHEMU12dvEg(K zBzs=wsaz-$$3M_0THuu=+GyU|ikO#V*5 z=h63(@DBmvtBn$_!tdV{^}K}3pv_HOV=2QEjVJAg-sI4e-nk-`UzM+Ea!G9@A*x?| zu!&?AM3*9kG=;SS@zDnxV`Mv7;~mJi-|e(yRcFac1!x9+TA@yQ8ZJYV(n5vNj|t*G z44#%^v$03UYnlS0u$^z$@c(%+v44l zk;KXR2HrtV!#n6;9K4V(3I3-f;d3csk!bFIGJ?Z5L3|3ZQQ$Yt%oF37XZ}*?yS&Yc z5F$Z)73fLhU({LRU(|8@3oKw+IA#Hn^FdakRP3p?bV-8xzjhvTr0fqppP>Gh_wgtR zBeBM)*|V{0mbCq5ykcp;g##?#@_y>SQ~f>W_PoRr;O1bA_AeS3zAjdLwxoQ%P&-ZG za7?hq7{(AY@HpXk^=V@3hwG5Q{%eGM!nx`eIEoHl>1)%FXQf9h^9<)2KFf9{JR|7^F(KdryIWJj38o&_%MSpp}K#~A%~4_`iSC$ zZnbh+w^`Ag?S{9ze71<(lkh>8l@q($S`X+w@%D=Y;VUUH^b7Lb&}wL&(;QXljdNO| zVU|5b`oeQCHPf)&U6n|-el!Kh*2`O!tzpd(^r8p3Nz^_7t7Xq=gDOFkM*D#V($j_43bw}_`nTVk%7>oy$o!d8};u4K2 z;DG_uAEcTgB1cxu6t^C(>tX^R{IKPy-?|_4B2^X0VpD#XQPY}R4;KUDw`__I`mc)` zrj3-W5UfPDMeasa3(aYlRcV9L+GJ^7D6I`tsBO$MAP3LtZfn`q7!h)qY_Zh`kUY5j z2&^neXp~})Y(eGxAzAOiFpm^P!jUq5zIYQ3y`RY%l&U?azqF!&Y{`e@)gjn{CZV08 zxwx-XT$DkKYvNrm>xtj+a($-AV(NF}JgLl40WRmXGLbBdtH%`q1qQpMHp=0u`~}tb zEnLGES$qq~={_L-q?E|c*~-&?*hm8rIHx=JnCM+V%V}DSc!ap~)ovj5@a1sf*vRm; zAVY(W|A{mqi1Z5r(k~=tZvYf))d*ygsP7?mJSoalgN`mF^mcT0TD>2>Slsl2>DD~f z4jH;;wy7L?AF|uir1bJ3A`He5Ig2-7f4s02v$k-%#`9lMd1GXlHMBdj9%1hQt>io@uow!%MZ_7~oNhNja&BmEYbc-|lok5_QIX zke~cUK9N%wr)`MuJwf+yO(cK?-GBBQ0>!}ZtUnvS8KhTwhpGKf<5V|tP9e$(@9q2= zmoXD;8rzB*!Dk`A|Ldqmi=r%ZiN+vy1D>wwPS4i}*q4j-ZS&Rfc#c6#NNLK03BIFd ztn5KL%o{Ikf=osK?aKBC_qxBL&Pik}weSJLE5G|HZhvx$iI3s@xD>6NgL`x*SyU_2 zxiaF+Fo1T~4(|ENVr=bWV{5rbiAW(jmMdaEMFnWYOr*x%}k5K6oP7fr8@t@^VDU(J*_R zM^5N;WydD?)eUT{rF`zjd;%u+G@eb~f_H}ZCadxzC^4<=|J!C<(Tomw(`h_<93Q1r z$(2;EKb>8vl58;h2$eaS`1_&UM=P9W9|bH1ai}?Qq#CArUeGnmf^G>8a3j~@`4QAn z*YS0K6E*)2`ML&(f+>bg2$d?`r375CX7&($K-GgL<0V9p>FYN+pROcl4&o!jr)zGa zpn3$N6dQ47_V<#%i)!Cbhoj#?h7sn>CEg#7*2iUQ%`veMn`9;@xa~`L(nW0nOi^7X z{(|}PvASRhJJ*T+C}#m*Hp2g|=jwJ&m{ zw!%j1L2Mlkm^Op2b%+tGQeL`ukw?B1$a0`3cYsWI;tS5|fhO378vir*-5SZ-Pg<%(eS(@#wvzV<{W$U#i=!0wn zgUZE3whYK>%JW{ZLP|F6bIlQMtWALS%7oRo4FX{UHE#z|^WwqesscMboZ5pIV7QSZ z5a>D;{?Ibewjg=DU$vi|jk~{8IO5F8Y=sPh47z%iIB!GaCFhfJiOs!<_P1E2UtukM zLDJHr%A1_1JUz~S;mg7GnX@=^Cho4M#g7-N=F`?Q_5~OQ-6rHpRek>LlQ;w~;S+st zs`+TP&q!be{|wDv1_&+p zt~EH7<#JzyQ92@~@=I%@rZOx@;3ck?&TTBy;cQVV%5Ju1$@_l~e12pUn+WV}wEWi- zx4%%}^Nu8eZ$%oT>hNgZc@*v~&yPs5+-*I(1woAnaJx0?^akF1@F%rcuW&WvrsOH( z&;j-#p;?E-M}lO#NbpgA68sg8e_@xeD_ppi$19m2n(*=+Lh)C}M`=cnf01y$LA(}N zk}Go)?8;Njok^#c{7t}&j1uwE642RM{L!oPA-Dh@5y9UJHI4Z!u0^m3DEc+U zC}5YLjr^|WTma~ouSAN(nZ>lPsQiAc771(pphpH=!GYwLcA@#n{%ux4il&HHUMF?j zN?E|&>^ukJuwG^XIeEe-6O>WxsqZcTtDV)c*P1@4(g&mJ6a)VO_@4&Ex49eca?*|B z15#}3c2!33ce9gWP~6x+a3L{l2qpj5PfX$IQuKej#NrHfic9I+51GnR-s2lThhSO+ zeO*|OXW-4736NASpB%P<)Bd5%bdJXIuf7D2&_VGey}o`8SL{)`UWL~Xu%U^lpy3D* z6#w=K&uS}WpTd*{g>MZWamK^%R*mG0M^7PgbZnQY+ATgL#i8cA+kqP8nE0+F zGL)~KZQ~V7Qg8H3O|7~px21P*@1Xi4;e`5L zi~kpZ1B<0Fxwx$@#lvoetUDh20g4SUsUU7n0{=DQPYp5gZAyhaUp}pT^zrx%`u14R zyLrgoO4u~yvZ@+dU#n*WM}IIyaV2<|3o1xqI>CjIYxwClyThOgC8|3T^Bo{t0p@Zp z1%tXg`n?H`LSxEIGfCbcJ_M;7gVvj|49D8zPz0_sJwe~^EixhYvY}L4tmJCfozZbL{F(HQ(n z@lZ#o{H9%JdNC!4hl6+qhbdN66T7e6ovFp1q2dmLZO#IvU|yA@I2k`BMxs zL7)kCH5SfCrQN~U_F83?QOtw$L8pnO{BLQ`AKg@yW`0#N5KMpqRq6o|m9-ATIdt?m zmDz&xb`Z%-QYOeCFdgM!4Kh{;PIMm9@Aut%-+M`3T5_8zH*A=MJ^&~%pe^Q7ajt|eB)%8!BOa7ZHKCpk_LD|`%oWBlq-Z%n7gc~*^ zj9$z+3`js{#3at1AFq{pFD1)f;-@^B10~DQ4_ubV^aHs!(&sQr5qc@r z(-Pduq(+1OL#+5%yrke+s0)q;bwRDv3~$pX_cA^?qLEx_u%Vk@;^!=SdV@Orcw|A1 z;u0(8AcSqB2yTIhSd5maz9L9YG9PiwU8e98WOAiEHhL}R(NV>w$9iH@;p$?CmlYj@ zUtHp}vND#~#VmCtRsKwouSp`BB)!i8_hh6V6BZ9G@8k_^1nTYqfResnL4>g%K)fQ~ z6WC(=6-Ujb)MSI9=E^pTL-?G4>4B@!nrezs1%uDu#vgq5(1$8RRnT`keb@#M1+mGP z`L98rDVC38GDC#S?|}8K$wD88KX0gCQ9Pu6LtdRhUmrll>DeII3(-|)e3<+Uaw>R6sR z0rm3r{U=#mm8!j@(CGr?huEkQj zH}HN~^gBN>g6|$9&wWw!LlB2dhDH_zdwF~vF&3}r2P4SP4|fzbUgYtY9J%nL0@Wkx zzr6`mg#$GV;r-SPh=f0+xaK;)jM5W5AZhA#4xV2&5aa&-NGT@Ll=IR+&oa_OM>*tv z?%8a~Qs4uBke2?HeZn6kd*5{}{r$d-_nXxBeoJnDmD&0);TzL`K{X4!Kc{nri&{m^ zLUX@zylAF)L(F;V46XXb{#}amvETOU>a#Kb%7*`sf92G7zo~y^rN8Suzye-bzVD$o zZq#&8yo};28Y{HCsyG@&23zcX(D$$HRzqoObwm=xa6MZF%hqq()%5lJ>@Vr>XEO4S zeVXnsl&|kIKrbq=$0}lmkvF(^yM_s3`KC<3y#a#>-X~i#IUh?*}07wd$BbCq?bjXW7elXX( zRslsUq4qSI!2upkz;_KMo?oK?BS^53-6zmx0+i~brLvfYD*cBm`tlk+1`c-n6|hTc z*C;TTzFAIZsvaas`5G1CqJG-zQ3&U`n+h5Cqrxzz^u0usZutBRJ*re<3k;gBGP*Vzv zE-8nfPC@i?ri4WYfU-Gv2$Nw1pS{N9fF9e*P%T6{T!}J5Td1)B0waJPpY=|IgWh0w zsFmEOFkEVvn({pAEkym*o!mH=xnQRBEN$6-pmwYU>1z7e2#;lI%{PCQO1bO@&^wE* zrX2!zyUEO(AoOBanRj|vYH^XAqWe9j`GgZFhkd9n>T<@_1yi9bS`nMaa3sO+LZM z6FWkl9qM%O9^j@z&pn-NEEh0dyqJLBbiriTs|lB2Mx-EgM!vM*)Xi%1e{Hrm(NAqs z%l(#Cv>$MuDQRCfSxtS9rj|%#oh=erkpi#Wz)51y$VX^~C)v~BuWm5d>-OVC-DI!_ zUNvY3b)*Yf%ftm8fIfkebH~$6pL7))wWmJY#ZqTgIs5XwCZ>8;PnNBM_LN5c{m92_NaUkBULm=J1gLY_mAP2@HsAAQ|bT;4jym#uS=@BRQ7!hF7aATv=}#eG2s^u^JsCWKetni*n`7W*^&*yb`K#D#Nai z!nQ7l5^O3o8j}1|>KVRRPfERM({Sko&V3zCDrft?obUUYxbNxkKzdWhy6kVnPpA~1 zfKM(maKADEo7SjpfB7K{YpLe6!MNOPT$(e0i}uP>DCG#!5kRB#z$|5xv6M{)lK|4C zspOMW$tDM#ztVp1V=ej*A&B#F=WG1bHEB*=lh%NqjXAw=gQjppcHs${d4;e1JGuj7 zdADdbljb}k=GX~prAn=y<1jai=^JluF`NCxeD+a0s}q@Y%l`(Dz7xC>pCBI;cu{O9Wi6*Lq`ZQ0spGI2WoW*`#Q#(~D8qoOZjA_y2>D zQwM|C#vPFM-yd)(buv^NWNRIFGnw_gLNr{|90oV{}!db9lrO&>TiqhUDUz%TB5n|y-fV>pEBM* zyOs<8Q~0S!t=l;77x_mUEf6D;@v-MyOXk_uKZx;M!90~kFhM7rN%I`2hI-9Ov^ujE zxuF=UHrpa|Y_;u9HTrqr@|BDaJ=s6UZot7umsu+_6h z4Yt~A)LN}*i}h)X5pA(Je~Hu%YAYm+8k-kT9YlJO`KO1_cL(3$uBjK8G>y4TnkIf` z()77lTWqPeSh=>?3X=%2OgpN8j^cmi-Bx0JLNSQ#@K*c|3l*U2Ke%QfXw>58i{x;_ zbwJSjgg}*^c>95Q4uAVtH|gKVWG;c-5H6q@er4cRl1xEppFMb$`S!CPa69}*$8zG3 zxQTxTH6H)h3?c9b#Za5K(dG&St&aXIv6W;r9A&;nnFLwbn+5=x3PB| z&>p(qB?8SUBrVZ^Q%a`5mgn)Cw2hKk5U>% zmbzuYyL%z<1xRE%*$kV|`l*Xyb=?kT6=PDZVvttY39amsrB`L?PqOreEWJhPgF|8G zP9}MK*lI?iio{EhAliw2SY^-dNMH&_ue_C%FbPaU6f1Twu0=QunQk(2k{P>cZlho6 zT>|BfUWan;iE@zP4mU&bvaqz%MIOD?Op&z1UT`&mlT*{)W(108I}e3 z4RW9gOKwt1!h7!#DA2R4qetpE>$LSOYhy-GfcX258f8yQh>~@5q1$kwDJ}F2cwme3 z^`1JBk}!MXe8_L~DId{lu)@Op?_NlPa8Im6Eu3Ta$)O-T)4j%WwrX>rQcXKF!E)_; zG}&^HaL34ez8c}ZjI3PGk6@EBt)XxeRsdMWS_&at(>au_JUlS@eW96ugIv?Csn@Mv zZ!==(uk%Tr^?@AT4^_jh_V@LRslXdf)TRkut7rxR-`$s(^?=m3oT0Mjdot~ua>#?P9Y?leO*_Pu zCGS3_x<1x1PolTI);x*UYJytwV~QhKMH9oBP@M2AnV`|cz*=x&5OWjnc?z`gO-o0S_*&mLV^_I&@9U?em~cJL=2Ka)LMnGF>=ISvs6 z`yP&uP#A2309`PBRFo*$RYN>SysAF#> z^o>U!8O}Z_w1jIg87Ll?XRrt(c=u3)5{klqI-FBcSYKbg`fyHt-3o&#r;>cJR!RPW z!#AL!pV9xdw{`9R$X`)iN37S6pA_oqiA;6%9k+1zb2dOWG#UH$Ya=;)=|D?qr?t!# zY6NVtEK~#Nql;XfmaRqp9j#*D(}*P?0EngNI2*6LwNs?o&^{|3nQLP}px3Z|9A*?k*V4tJA2lYK$62@d z1f&yEFX(6wZp`a{{w5sGtTz8Y=Ns(JZLE@91B;DcJ(!W>+)gd9w_zMBFJ769M`86j%%gD1(fkJqUC3uqBS6r6`Qt(6?lf@ zA$Ni7=|jz5P;|ta{zJG;z(WMO_T$_*vE!aN360|pK{^M!WDC%E7Lf?xn){Eyui5^> z0^nRDyFE26Fw-L8280#iL)1?TCcyl z+u(aJBz0o|w{Ch|U7{FD70Br>@F?GnH&M586a9TOk`1_WFNw(%v}OM-7Bqt5?I8Xo zmH;sbaU{DD?HISpjK1stVpeSNk)h3NoJE`i5_qj%Bj@6UL1@AkPN&_spEawFBDa{u zM3VPL0eTITQB=$tlF0Tgehs*Qq!MRz%`~yTkWfUc@a2Kmh=j@wv7hiVQnUz*iBWk5 z&5iI5{6-hKGMQ1LJTF>=c_3oq^Ct*(@FQT~@((IpXoQ(9@kG~85u<~IB4<><2iz+O zL&k2pT#oDhFKPQva;sY`YyVAmi_K}S{h5-<_M(^v9E%iPZ;4HfO%ekHh69N8`Qe1u ze$2`EfZK-nfY@YhrYtfewF=LIXJcpWMo|}EamxOHU~(?0Xu3A}Tp80)7uEMF>XYE$FulN0f)`C9>!Q9KRMs zRa+EHzY>i{TX6F=iD_DpF-_SQ-cI1XNv$DgtL%K;dp+#gsT`RG74Bx3RwlIVVT_RE zEPhXz8{w`TS2L(=RT)!cmcqv+xK>)sbtJ07|GGB8;Sd`xmYQT~JCN(zS-00UX-)u6GH5-~nSUlN@u8mp-R?sek8&*Ed?A?a>EDf;hLtw5|F2L6p#BwWSfoPu1?SuZ>5=%O@NG0D;J>jHYr;njG-=eA482ll~3KkKWv&vgODgHlvtij8Jol#Cpi8OlE& z_)kYQXa*UD7=iHS-&(>9M0Ta6I*xD?5b({)f+2~lKi+I)WJ|m4=$_$j1m!|~Eiv2-L`HA&XjJ}x_1zB+nnsFG` z3%?sR{pew9=@(i*%8(4AM3T1vRLd-AjhfU7Hmw=KG=zMQt#h^}Jj(|vu@dh2(Y2h; z+>ZEv4SEoZY+j&SS0~CmNgB~K3UqH!ehT`}-ylAnq90#~5#5p$T7sVI zFv{`S`l~O0%v4R^G^i#?i@55%l{rXLBHSjx`LoN4%Cm*&lM+$@uFtiADFoA&E#Mli zK&vG}bEg0U*O`##Oo47@e4J^qa>MdteR+C8TD)6O^&E*eZXHurB_a1Tin#f|F5R#O z6-gXqZMhonbwIEi7iLFx1sgU9={mUTlno347dR{!7vSUP=*srMH$pT4i#!rF%oAwQ z#=8Tlhih8QR#8l0Yij&}!{CU5vEu{4kOa>zsAR>^4iT4H41I6iJAJ{2%6$mT6x;1;temvVo?$?^kX6q zk@;5kMp{m0%YQTCi-T78EcBReF^CffcL=4w?gvP@$rOvBm9vN!mEgV^GxW)AxbjvY z;w2kn|F}uza^~23EP7f*HV;|4T*nD_)_e)1aQ4zOBfy5%Kf4?rxOwxi{zPjA@-13< zVk9tlRjBpA6AE%u<1J$h4ml8q*xb$VTSk_{H5wSW3V0p-8aA!1*hw#MNOCJ{i6|Yui3Om7_Qe)(LlQsJ>AZ7Cszbv3{~)h*}Sp|v;Pk+L!GLq zHvoV`OSF9tcvRK3@62S99N>gGz(hs}5Nl8@*n&X|1|%S3A|@~sOd>^yw?*DKwYL%H zNVG`^oy^toI9L0s*6(|IFD>*dwe*!~^tH}q2Dg0aNpHPw3J!-K4U8B%@ zexY&Qq%<7NwEmVHmi|s~-OcD?f>fwuc8B5N*?On7TN6b7A%SMJ-lqxb)1q;yeae## z3mo2#)2XEmK$AL{XxD=p0M)HhhF7OfuXTPT$i!aYj=*t*5dtEdLIZ$0-4-w%c zBCwCx7J*}&q$J%S=n2TDI7as{fn_$AO|!=XeT4{xu92{7XbF+a(E^5jEa6dr6IKAS z&JNmxHg2Jvgb{J`p_M_5|yGC@q26pz6X+YhZ%dyM%VhS6Y0Rk z+DxSgdD72$5``7bsPJ#`FYLpAvIE}2sO+TArTEt_Ux`aTKFoFYi=QB`L z{Hr`G<5}hD7?eap53y)$2&sH(h-UfE^L3R0`mCoYiy2&oe~7VoyL)W9mk5bR$?ojn zFb*|#Eo>;{7( zYq6PV4U_ohH^IUjJPSuai`P4t13seVD$}+urGt`b0iUwL1{n5(YVi{wYe&J$2ZdwJ zYRzzezem?|xJA|oMPL#FxQeUA2~B#9=5KGzZ>>KA&t8s2ihg$9PyIEMe87_yOb{nU z*Q9H)_>FqG* zLl&`qE#V#Dy&6zT3bPw=fh~ZYsj+x+#i#OHT){#`mR^ic(0&Y=T`Jge$Llcl*Kwqw zO|)g*U-0pMa`f@m$Jt6jZv6V3!NH+h^4c_XKUI+}{`H!zlKj{C#eHAMvONh8*vQwrQ8yb*$rl zQv^;AT*6nH?}?V+>kcD;;28KFqNRMoEFrK%kR~N|6ZYT=t$K+g)z9UKE_obnSil40pmQ5RmY}_*>8!&Rn0w$h7oCiaGuU;^c$S8|6sZW20#*sGeUl<5 zLxir~<%klhOLzc;rx-s=IvR>bq=afKApuzg(q%51he}ZirLD%yxiC<4`&GBuj)D8k zVYw`&g|m1I;~DLeY+tfHubS<#|M#`WtlugqZVk72Y@wT>t*%#v$g$93w5ag99~B-M zPlnU>DE%hN+y-Szy(fGgUU`h*Sn=Nwtr%aFk_d!J4@pL#(uXkGfLA!GA(jdxWk*oT zCM^a~oNK;)|9AT_Dr1o+svYWy@KI-l zEN&Uxs3jyXDz$jYBveY*?cDo_Ann`(e`H7H;c%&~yz8*lm4C5UlqW9E-vylCzCwQBJqAUix86WGGDF^6qk(AL14Yoj4U z;>)`#n>MaDrgCszp!a!D^M1~^Q{^XDMC;F$Ux>;h(W3dF;8(mUON+0^w#Y(MJ~wa? zhv4ZTW6}1?=|E(~CF* zMGTFk7lBjJ6?qm%2?~qwyZaG5jA>}VazrR6ez{S|DJbOEDTRz6IF*rH_-jh?K1kk? znq2R$d62I_&j)&tndvxWx-B)+Vp$9o0I7L$8)Pd?>8z(l(p%aK1&klb(pjNpdhItr zF@m+2^dUO}WgPt?y$r~82`}p>@GS@12Q7e!)RT`h1#K~`hf>h9az6VNB-t?VwC=#L zwn150=9$nXdz6|oH+)AJ+fS7<@J)ozx8lo{Ugb`Bb9s zR}#aU$~=%_Wtn^U4|ylHOss%(TZJu!6_EA;`|9$O%F&JM_4T2m2)C%RD`jPK@u9TzL_FYdTldVhiIXNTVEKdkhXcXfO;>#dJLZkC_49%`zx z+vv@}cW2~D0j!*TfkwecJi0cc&i19$0xc1sC!`6z@K=<_!EfjAN6>(^!yi$v2+(48 z9{=`H-dpR__CNkuO_?yaH~f(+uY3Bj3Ek@k4nj+fr-k~{U6%IOSSSGTt97*-2=LU` z`TYJs>8w0ylX|_)aN0c*h3Yp&XVXf!vTVL`2NFH6{BosP3}3nws(>;UhW~OYQK*j;ulfVxr24~&7>G6D8GLLvbEFFeo zox{tW$Qh*Nh03Xis)h1ib}h`kdL`gdn?LIS-@vUir!L3+1YMVto^=Y|44%Q>8m-XKM=ZVjJEb zgZHZX2N+uDB-)PmK)?9e@~_xzC_$l?d&`76zZxoYGqiiA3bOgHga=_Y7uG5p+zrb8 zLizkgr68QVbkwWjo|nzKq;SC^b`y$jS5XXBy)#P+T!!HxBU4T z{`~jo9|d2A58+dJ|GRgVdGMcBb9ku_ILqehd=Op_+^G|)&aO-fX}Rvt2rqU?UaxE4a`)N>*S`A-%1=fvG{#m6 zo(Ef)J?wB}lY3g?v@lsr2Y>KV?*ivBoE+QLO80~#| z7yC9cu+|p~Ez)_u@jdYN3`0KQC`Dn!V(@QnKQJl@tOeeY^4EOPyO}DZL55a1oxCPC z?ZkYCmD_;~j5{QdBucx^lP(5G|fUigf8g`Kb9??^u=4?X!wJZH7pZ9l=6 zJ70ufJ^8!g?>MKet0#XCz10?oXygoJ`AHdlJv)L<18Q*qni?p(9Iq1Z#jlu8EpA2) zSS=30$FVFsd|bJlb9<+E4fkEys~nkaOQ>o^@0RgO_qr!RmO0A~UyFCo5nFtK(xW=z z26bW%E~2O~80v%op9$qKET0lWd*f%`iFg&M7s%iurpcmSxJkW`4D~_;^}+?}h48?* z)pOy+bl~ao_u!iV-^AhH51#>6S6&Ap_Ab`5(OjU{`d_ZZIWj@}f-8LVHX(YmGx{B| z-tW6(-G+7RVMS8=GzJp`0c5ZeJp6`9x7jtP8^cVXw7pW}8{(SK_@y)OBM-J(pw1)z zgzr9Q)22BpW;6eqs*4T6?rAL|Z+M4*3)Vh+htdn|Q)=@)_v|<4o(RqIKUd!6`YFEM zK+y_n6SVrmBiKxOlk10RU+WCbWR0|pgo@STO)!MBRRUEn*pd%);7#y)ZBSV!q}z!i zPTvlup4aiS<(c0?gK!h@6c5nzDs9>UdM7^yF9__xTh%Sgbq5qOJt;!>oj0fP00rg| zULyA~_#!+8KRd$;OIc6RsU7hdnQl8*nx|R(!N+$S9+b`uJR>9i^0JKhcODILl<=rl zNQzI)5`+1*N`6%v%n^fmnI41LgJ7x&DlK7_W{Jc6{mQZ8Ft4i|7H8EM55)tYqy430Joxo(F$W2gf{(YVjQ~ zNg9-75Wn}M>`O#0gsz3m*EGrC7Q8 z4jrb=h3b5~I;d*~MxLkBw|XJ7LP)B<1BuT;;-+ll9XYv8>?!2_ocOlk)eZ_1Qn|J0 z0NO<=pPm?~IPpO80B*5xm#zpEpKi^6l~g_PvhYQF`xTK3?K4pOxz*3ejS)o0>bc!l z9*u$`zYz=7E7+J>zrR8G6!LG3H3*TDp~i~St!o>7(0#Esfvrag(AyL_26Lufh&dM^ z*Q4{5xE2qR&YC z86Vq49^A28Z3-;74NkLyNs+GDDtpMIcoMFji6JTe34c(ic;L7E86O7dqi-tBKqO3r zkZ6u%d@l~4n05HbW-r@(u@2t=dMohdeH42KkVn{_HbL1sKelEeo_*9NxIV4ep{7Vz z%XOiUwn==!E5suxdtr)I%t+AGMgD&ttuz-zJLj^NV_@D zgZ>YHB1PL0iaexjNSLEAA$qew<2*k8XZVT(om?fq1+yXCUSbO^jx~7bFfuzogp+F9 zWszg;lZX2%x}guceabB*KKAJ{81brv*1M_q7bW4rC5Syss|bh^PgEX+-3l}(T0aDH za{`cE7^_wzy`gd1Jo8|*MMV}t_y~v9bF0&rm(g8RT!qiiVvW*AK<}iv}t~H>%!38N>!PU?Y{}ukg76hU%j%e zI-;UYom**iDpjJtPVFmKm7b>cTALzW+YW@^)EBw<3(EB*luna@flWQF&C`@Tv}}A! zX)LK@wNzCJR8^;7jiCY`TL;g0z0+{Rw8p74iaubLlroHZyl!8vdLAvpk?y$YkZ*dl z7{A_lLS7j29)YxXLE3QJ8T-~LiuV+alRWNdKBiIQh5U;>R`03PE)%!TkIDkgKc#9R za*!9;wB-g@C*FaZd?VuFwO2B^7KS>5Z+@$+sg706@hKkw-}r%XkZ%N*hqf@ikz=wD zty(xRjPs&#Q53g=*;kFc->n9IQcj1;qis@nK*FPSS%QV_OK`;qqz`W^u|b~Dl2{e& zuqCQS%FY{?gDfrv-Z%>FJgTfI@%h=?OXyG%X1cGuYjIUcC{JDEiQ1#fozXQ?vZ)+r2) zjNDdg<9r<|h*jMct*Qb3{#%)QO_`s)cVh-~=jhLp+{~S`e@k@ct^xttd}Ahax87)u zV-BHGVjEkCl-M{&cl^a6FWo`BeF%8F_J}{7w|#1)FAHybJw6L>m+EXSa<*QR!q!5x zwiJzFjkQDBP@09UEz4n@#@3~5-msOeF#tlWY7v>wmS$axh^-}H>l>nNBCdDH*`U^l zFw4FKXG;cW3&7cp9ugp>Sp`T2XZvW-zF0(7J)?1UtUd|Mt#fvLsm9r*qi{A*gq^HS zf~|`zoE==G%?MYg^AfQ|j#-i7KY_`+Y5x?fs`T-jpQT6-N65<|`i~o;zn`YZ*_@(3 zsf&J{%){S6nzaVJL_e0mkT;;6ASiht(d*cM{2A!qx{}NjtEyS$kgCQIOdz54P$IL3 zHttXLozSPn|8@&*=OwGgPD z)W{MP2bi9teYviS3AWf)kH+IsIT4kU`?;rWa#4O7xz)fP6@N2Ha)PLmE0i@0VSW`g zvW+@L^3_oDD7|EmiY7K_^DdIFw`f9AA$*e)&HU7D%cIp!{k#}-2c=2?-8%*=5>P!~ zxg7WZAlgAYm4_-0%kRTntLT$YM=r=)iA2Gkyu=N9H)G5nnWykgfd{zYd+)oP66kid{4BkM3GDW=Gixl zixQ1B%)Tw38?*02JKiwtM~h+Vfl`z>vE`m}HQF{3CG-DLr{E&AF8@2Y;!ZmUVDK$O z>j@uw=QD$}<@^=z#m-~x|G2oVBy>-YH_6BYYRI)9THk+V&*x86KlsIVavb00jI}Pa zjceTF1Xf6CE?2bBg7O8dD`PDvLpj?p|b}jJ9(BILR&f9R@+Rze(0IMVd zUPErx?MyH(&GwIxPgj7J6Yde{^j=g72?lFWk(6&lL1^OH5bTjy#ZmbKYLZydE1!y- zbVbks6=&sGtOty`OPjz5;W0EyQi|_Jj9SeZ)klo_$pW0Gn(To|iZgQ*J+^71(yb*; zt(WEGXj?i*>*sB28#MV<<&HH7$8PB0-%xInL>LlPz z+&`Sf<2VVVZ?uh{#0-tDvY?O&eVx>lQMwhh&8rBc{qsjkmZtxBf5fEEBM*nm&ny6r#7m6#lCa$tpj~i%trc&!coyw3^SHN}%Wz|bxgCCQX+7hMSyvcjk)n`$WHiC$QwT5%!W_M?Kx@P<(5g_WW^;{CxXf-Ybv*2xt1>ukFJcMigNH=qa`|Unuxm&r_=~KK(f1R(9{T_B86-Pr;mr`d< z16_aoY;=YwvY}~R0#Bd07V@gywxGlONqA9E1iR_OWFTjYWUXWd@1P@bmTGN)WU(05awbWmEBCy^m_!@S5zSp)^a z$gZ@{S9+C#U!ZrnTo!J3+vJ(ycF`t#!tEZLJUQGh*<>-??zG7T;da3mS{y71O2Cob zEU)_$2lPt#kM>5Na!VQfEA_F01mBZ~)DZ8gMDq z#+;ytO}?5&&||))jK9z=gsxUDc7IZcq$>|e-2?fJ;g9ToWtB&%6a01PFT`&BLRI4v zaEqfP+3~*s70~O``SiFZ(v>t+%wGcgn&p?sN-e)6b{+nT;IAHA=`@hr^rmOI(~Uo# zq8}>+34icZm7>#c-eSzQeky5?;yGV1zsWF2XwUZ@Kmb;d*KlVP-GwO zK(Qr|y{uN@F0I1A9!yj_=w}BliPEX0g_In)cn=<+H}Wk#5g+_S@QlC{d?WwV?TA6a zD&8eljM00@y9Afc-{QN1`}N`4uG7G2;+{?ac_xQHs^L#S^Md?FXi}g*HJ=fPvCF3e zzU6ZPFEwlEQnQAG#@CLpH#EHN*=`L5xrP+l8V=HCD7ok=OXC(>syWWmuzvWo_KQaS zAG}%!r5e_tfAz46YqXLj_C(d_{a1g}eBWaYz05bdK(!F;hj_GZ3ZOyU7#jDX8HlOIpX(F6-#WPW!x-BNnlmC z23Tt;o@9nDqwwV6^K_k1Jp>v93}t*W+GUg3y~u8sG=vXMs>g_Q-K-Ip zRU!6|D^2SU9O|CRYO<~&Jkm)cJkB@@HGzbhiDoI;viWmudsGuk0y|YaYP?k;_jrq% zOhmZNU3N35uLytbp{elK5h~^5EwCat_lR+kJ0UzMacOaZt;LTLp?++71m%ZBM!l7c z=|sjHbLt7~5A zH0Nf0KaZwRLsR#&Z(*qxTO15Tj-L71m~VMJ`Ri4 z!Kbg0F_+>^RCq;s0U?qaFFTuXE+hzYC}Aw7tBG7P{fax{yRvXWIy8;uf0lFh8$mE& z1!8N~{}*SoX|J1FyuMhhYG&`PH@eoOGcCTWj?bJ*;gBBF9-WX0!-#E6w|}coaJMks zqE4Ib&XhHxw#=CAX~MSDj|U8Tcskkw5tIZ{54!HQ@0kb^u+GfkJD$wmAuO%3(fsE} zXBjr=$MV<`QCXwALcLXv9d&@P^*dfPcm(aBcyO2V5b@i0+q3e2!gA4=;SY=JFZ=FP z9X}eenUgxcvZWy0C}@ktj;R`ZajI9fu=an_gJ=uvD;^%UlgCV-qxR|YFuIhxv^ywx zNtt>woOB=>lVEQ3H1Ijx=4p~*lVqZ1Wj2gx{|yBjNW+!RdVVv8{D6ggH;>q^aeaur zc9W@iOd;TMKgGObgC=%G>jW+F8Fv;DkwfOB;e#PWdcPe7KeuqyyEeprv@E?)J~XJd z{XAmMc{Eq$(C*<{NL@mLZ(l5Z?ye>({kxno6K$Ux94*P%CQ3JdxsWrOs`& z#0yXF`(&nm?AJzQR)cNd~1Ut$;B z2KYT;2>{g@i))LQ??8fisF=SvnRb_&gk||*(^uPSY^;Iy-|&(Fj7?}wdbak+s0&c8 z^Hg)cC+bX7w$gB(&UU^kT5z{1(@=Q8$!59D$+-eq;?`#N@?`3na=f^KF%Uz>8(U&m>taY17c}#1&MbCNP`b0Ex_1oCP0l zP%Dq7pa=R(*E-28981sK?Id}S4vt$CB$+-JL5)yPo`87qT|%nfJA%P{Df$!9Ou~eIsaS@zypfq5>XIbzwGda6 z@DKm31tvg}63Fm>x`B&qz8VXokFR;^1LZtHU${t0YR6AIuBNk)`R0><5lo#mWjQGx zZ$iwxn(a7=BlsU4z5SYooY2Wiq>z=+h`8ozGb+h^!YKGEk58c|*ng1sf(8JEQ?0m@ z#tH+D=%v>uthD9AY&7W`B8XQ~zJDH|ZZIHW>EVil`chv}E67}^!3vfPAHrx&R+kJ= z&5wKu{-bWBqI>cQNo~IQWcGzisyPsrm@GBptOJn~|D-HhdrniTV$eMW1q5KmF6A5h zhv3wpE%3-RJg^;N|3ph3?Jrxe!3Xv9pda(RejNgHAvTz|AG)I-Q9(tVoIE+k4q;bO z^0P4tNO%@TQaKKVwv~3;lV((cE8cS1l1pdRcK~DZ|7z7$=JmFl!hkQbIz28CfL37;6=>* z(E_8PFG53KOl#;hm}V&@--~tp+X4;PPpRJvE#8YQmdqB;n4b|*MY9xai*JB&WH};I59URZw`cule3vaap zuh1FxF37hF^SLeg&>PUTul7v%;w-rVx9n&vVYl zUYLhL{s_t=sM0OR$~`s=^zIZN^mRXsvuER@((sKLaE` zlh(jhinq(h;|T$M3;DgwTz(;6+xu2Oyqd5a0~bbDIDtC5?4qzd&hRm`7sr@}ke`Dr zVSR|4J#ek6s#b;^(iw7y7_xRSTKftP!H?~H7C&z1Z1%97w{ja9N4;W|td{%h6D$Lf z=uclA1CeNH;TS4U7X1aUJv{8KiKfmaY0uO`zQ42Q)@X8;7q*mVQOxLFp=6~p%YKR9 zpOha9x0Kq*~Q7cAR2O zQx8)+>W8>BX!OzJMA=aIAWuG-!j2uMFr5^?BwoZLkC~y}NxOLXDhk-3{1BTOJ`dAr zDEh=HYVr{K%Y)Pp>A=8g_=zAi$zSrT8UB(kymA>~H#<`AA>wlg#n$Q+>B6nn5L@R+ zJFd-g-!gW6Kl;-3{o+g1XZV9wWYp&lT23#VS$shc6mVbA%{hEQD|BB_H)!}q(35fqPwGy>=bS* zeBN2dK6UDaLsQ~-Z_Fm96Yz#}3<6T!i~rwwW3`W$f0KC{% zh%WiW9Qc$$%)tKBk!F{WGTyFCtA&*HyQ>UV__JhVI>Nq!i4oI!C4mHwgb$U0;&&zu z_A)hpY4-KU)JJ$cd)HG|m1NBHj#L#UNBbSL$lm2AF?pwtopg*D|9p)8P%5QS+Y|0u zlKnkDlJc=%Kc5kTKJ|TB_V>E{=yGPqgHG2MvmdjNx~LslyuBdH^<=Jdlu?e~zQp+s z!G5Py-g_NaSLyaqfA}MNcGA<1kWNF#m{cp{g9)qV*1K3l*Fn zq@5Yt`~q=0ETRi-nwtUZ@g|ysc~XyeXa{^K7|{wEd4xxKe&KC%>o6YP!Pd;41;m!q z8x(>CWMq5oB^y6Q9LaHntV6faF^lNa5BHw>S3KMkd5jVv3;r(bAJM29qh1{I``Ewx z>2QeLKIxJTpX#Ah*dIBdGI~-Fc50%It+Z!H-A>bQpZlJT+bEBi!7DMQSOsaV@}xA~ zHqK*T3j8RRU=VofzLeBL^wB;uHAy-irB>5-e>{B@eRur#ECHKx%+EHDU54dCq8Oa+ z@VmA=uP_BvBXpe<;jKfSK|!9iOMZ5Guc~5_dP-6+T5l`K-u~bBBB#1@+EWX;@G@YW za0iM^p%&MG@XUsHyg{Aq%W9o!+G_(9L7NYx@gBbO_V6$Yk*;>hG>_#d5}Eh!WH2j_ zBliRxat;mc_klbw<%Nv57Lp~tZ7H4SY5a8#HhQjz0EGoS(-CgyS&mCVN0Ki1t70fu z(jdt=1H}!glA58?n;euJrei>yj^`W*=yW?RJ3~=>jDWoZL(?+eDD~&)uyZKTpZPLy z>fJ&qAkG4M>Jx!;_@jjXfNVVuyQV4!Dx34*;h@gSFjdcm7h^;M_=NR&-bZ-w$>HN? zSz^s=$DeI(Bi1|uvLOYF3@GZuW6Ddc;r0GYqXoU5ZbmnT8jScOJnx%R(k(Ev-iOeA z5+wg{vUZ&%YGJAHj12hC6J6yDuGS98@Wh537^{V>7aWJVL8R-Y6)wEsalPc9h<7Zm zm#T~W{JE$-pP)S-uRR~9Js0TtzUl&czHfz-E{Z1A1?Ir$2e0OJ``LXSl$DEk^jzZ% zaI{0bWD7-+_Dgi>Q;j@}$$V_H1RM7v?sxgI&G8x$s$@t_E< za^ii^Dgpi0>O^!}^Co*LJ!DUclN}GO*zwOVsf7E7!IV7V-U$>;$wLf4QAmENCxB9` zJ>g?cv_)FwA-r(6kB7rX!_?1rk$)owF4iJ4xv^p8$N0m8czQDYvFnNM;ddwW`q}Nn zT5ESxJg42!YKam`S&g7vkNuq6-uZcH6bJ!^js12aVwc7E?X@30|E-3@*JwdRaPpV< zc{CCBx_(KhWBX&Q0v=Dy5?e79T7fRgkozHL@v1gR+RqQ*bh#RHeT|2%ivk}~D%N@ITY_jm{M36>u(`VZh) z)@EXEhUdiyHVVJ%lfeRJe_0bGpgeFULOT^;fz8Sa$7Yykc+dhPJ8*!~4IC%2d#=tB z5TI1;i*&gj`#03dU#dM9t$jtQe}#5ZuY}uP5nK{7bloOVdmJ318 z;?hCEk_*xVI<(z%kWTTL-?b0N1JBdF2_O6HkGRE7xc2!S;lDWAA2g5NC5(vd+DG;P z!O5}u<8^HIi;!3|Qwlgc>^6K#Tf*Dy=8etN7=}_!kj>OMrM`qOEAg3WMeB$92|xQT z5J4yOF^bAr?;#7JfB-d6+zmW)K47WgPI6Og=L19v)E&6y8r+8cJ-l6T~R#sb+u~N#x|Xq z>7+QBWl?lfL>CxMXhtl}c**i0h)CJWD4l=Qn%T_7tr#ahpJgB5AA^Co4IDU-Z49Ry zD8lSM9Mlp<2Svh+<828VAz;S3X6KxH-_6%cs|@@j@bd2Wz3-lT?zz8nf08W#zkTq- z=LGyt!tVn7eum!}_|@Z^EGM%eW9YC%`tNdm7ihh&U0#DUR*VLD(wAJvus&*F2H|1K ztYM!*TUmO`kMP;6cvz5wi2~9@nF>wN(U5@FTaj($8q(v&H;@$qddERF0qXDN*s;o# zx-!$E`KGYzrVI*{Ys{5n?HSf+d!74QDgkb!GPV`XRK~LXjA7EB(^s`Kzk(%6C-?nm z{LIOHKkNpjsMoTP%_&B#xPmUk4l+mCbD;cj%mefjnO44X0YcIN8gblZgus}K-`v8|Fs6v?Mo4D+U z{rw&e2Ja2(SNBki#6brxyrkj;xn?FVWI%gloB4h}k=+-eya5CAu6j5~Ppl(2}&r_>MB=SPLX!QPz|s)v!(TB@;0RX~|QD zmORC@INgas2k8uExB(|O{GKSVD(IUx`x1O4gmqM-%1p3tcGl3K8zP-?#~Ph44}Dk+?> zJfU3*q=NeOW%#8eRj*wH4L_@YyNpt+^j(muBvHAYBnkEJmLchA(;co&%wR#vj2aA6 zJHoYk5^G6>o1~e7FhOVjP@*hTMI&_93F-aRAV2lPhT=41C!J-H+;66og>cUIO|}; z|0yhnAz43kw`xORhA+#rjPhDAOq59e{-EC5!cU@T?nXD3#d;rKh4hz+pdhb$28ob% z5H-QP>fNjMjUY&YfQj^_<&7_Ga|s>)SOw1FH{HNk)a;YY@L&bXwqRuIFJ=4qaBc8b z5!`wr!OsMH28{zj&u-(;kjX$gWZ6z}$X8PMg%!B06E0u{F6$-_8-gygUSm+(;9gaZ z!f23}4&lrEQME6w^~BV}Wwcf75AD*#;V={l3mc@b5b8ZyZzxYIy~^8+dG@-s60)Xrz!I^X5LM#0bR8Db--tv*1QAg1O#&dVo35} zNM8->aVAFbR-43=LwaEa%Nzd6VOMZaMW$0IYQRP7GVY)0zswT$Lqy3lDC@URvAq|F zG8Qh8UkFB#_3JDU$$pT)j3V?>ARBg@81_R?FuPHjrdXP$7(aRT&1K%i01veqx;K#C zGJS7f80}bu(9UtRHe?GGdY5oeWI24b=~y#mIe=#gX(_n3-7^9YDvUimPy%X)$P>L* zWPE3=tfmuuG5&AFU2eAs;9tChw(<@F;pykB0#C58{VUt822ut-2{u;@sGdSO7f8X3 zBIh|9Dn+Dr9_nIakkW7$m%@8)v5N^hp8azheL4^p;ZQ($+#S@fG&1)Qj31GiVKIfD zh5lJ1N2;ZW@pm_-072p(fC!0${g!AqE)XfcKwKo;P?{W&%S_SLAv1Up2&^m=-R+N$ZX8=_yc(xhu>-4F zGfZ;|r1TePM3_|wJs{ZjF4M^>&AMcWK>zw#NsLj}WQh=yfv(^+ zjkX@X0S{vx#%osFk=CP=i~tXl_QhQO5iJyV%29SZAUQE$9Z)?(oWe5m411{tW>sYdaeFXaa@-w^j;_K=v;Q%7aO8kF7j8BFSpVmj`64}h z`R{zO4!<1Jy-Tnb{Z|RKknu;Dd2|6j?1>2D!~TBBL*c_-6EWw*z7KrGD-HLHuXv+j zF?>Y@N!W6!yq9Xj`xXh`Wfso&O!JcIc?arSZl4vA7&dpnj$n8z_s)YvJ0wD{b}(yx zGmWgij$WdM&AzjxVz!z2m$LlFRzM|PNMSgafmO*SDOMLA49zX(eo2riM_oOWk zh!@y4lshi)0>ixo7Wn4lTChN)$XS2|8mdcA-CV5n2j)jF5NF4{99~jPtVAb3SWb zdpoqZ^}L_g{3o)bG+XY2um04XDm=@L)P2oAknap9YRI9hmeOJG`U%C(+1w3kNj?f) z%n~iEzH{~Q@HVc{lze^?dIQOARPF2`?o1pkcEkt_Z7aD%DtWh3IPfGb6U`HLkE%2q z@D?=XBjzQCn3oJJ1$nox@OmdLEzJ{+eJXy6@QC;t_!2=IZbC&27m7+;OwQD{WiG#; zK0RMtNWTAdcH!{nKCcPK@iW0L){O6^CEVoGsBh&~D2t=hFd=1`35lq8t+a2ps=;cO z*sA+iMB;iQSW*5aOO=Fu>&64fccZ+z_np)V)Q|-$8Q*6e4C?J5i zG0pup<1FTB7sj_Z77Hi)L@*rE?R73hsa)S%%<&9-zN6%vzIV4G!h-Yt(tOo?zdc($ z9{&N=E9DaHE&zZ-OT=A$bX&!hf0AvYIC89DB~gOhieji~9FAE#;5H7iL%hdLV~*rg zu|V0~&`q*l17~StLkteFEnNH}3z9B|(DIQqp$*GN!xp+umMo4j*zAVZ1TV*c3ogg7 zW8|I+s$IlZv3BmgGw(e~PqJP9=pS+P-h8~7d3WZ`+e)ojfy zd~AW3A5SiEgk^0*xpJs*=8Gd=NE0Tx)cRX+*LRzyL2c0#q1v{WXXr9$MTa|jb$w~) zX=F~wds8s++ydyE&(7l2aA&<$tDQy+g&eOlT@}&W#01t?!x3>jI-$G=ry9#I0S>&7>8hUQrZ>Qh>2g#{wU!DVRs0YruSfDmV`(9mQVn+*k?>U^|GV_v^Nn+e|XoF zVN!dasQNBMVFM`z2@0=*cXR@UwzU9d41Nnj>8yB8cd~y;KUUegJJ>KK+JAH_NWhe6 z+z);aCQaIN`tW6bD}>lrnPGWAK=h*Et{p`fJUNsp4{?9)P7Jh{wrb58l}a>q)Q!?yI<>G$XJk(s>#dE+2~q zg|;uEuT{wR#6`Fn53Lb)_c9$AzZ^Fy&^-3{Z^6rVs1`VuMPMs~Z4@xn^!+mXOMBLM z=EA=Xa2vQ3x9o*;@J;8V!h5(=E}kgjTM&_ z2Vh0V0>Jhm{IM{J?<=XIfp!(C^P1WrFIEUt86s~8^IE9h&Oy{OQPnqQsd^Y`_E5cv zzr0P~HdMYlah86nwJoB-K<8$cJ!?s{TEi>3$cg+djq*9|i8ol={k#d?5FwI_XCl#e zBXU7PI=hd5rqyoX7Y_BoUs(<(Ba1XbL3k-d52&=e1E(OH(pn@cSZk44{;*$Wa>-1E zB2z3Mbr+9_!9RhMvn78RADl2$zd9&dLFGmr$jOPqV0ei;^_SRkgJC!>*N3C!;Tjb;6B)7l5slg-sx|C#LXhC2%%C`^unyG;k7ET_AWFWq0W2 z&UW+wsBdCdJH=W)Dwgf@r}YV6hFLEmSh&n^xE)H2fj!X*7DlvCu<);prm&gcrk%ZsIJf{3A4JQuR*->n1@_+c0$ju#k_d4HIk;gv{lYkEs4L z!Mcg{b!YBa{e4@oVSIhV$Q=%X#*PCtmKEy*2K8492XB^qohLFv=BF^YONc6ucySzegD>}!!dAOD~R*I#QY7Kc>j3kj!8J8zklmQ=MDh*bqv>y zQHim)C*M2$-sivh>j{6+GkE>m@6`vXIJZ9MFr0Xy5oy$Me33jr&8Sy=8UEW+u zJ4g2K_uvXX{U$v$a1tL>*bQ;+F%z^9&H;f>EH}Sa3Q>FR$%hZFmj$RO48Z}&ar4agDX1GIc0NBFlHK zgH*920tbL-V{?KIxOe8_&cMqq7nYb>S9-iOT^~W5I;Qwjemr=zhV=b;Ir^6B<|L?2 zi~yVfa7Ox8VZxS(P}~3@A`}(>Hok))#s7g(Ve96d={X}o80hd$7JyE2c#pAFHCZgm zDee8;Mk?dCnzuLEK7nlzCW`)1LwiSMdvo>no-wp{G+TTBVdLEGmH2`U8^wWYnK)3f zyC9Bqhw$~k&!Tr@JM;nD0wxbD(SZ{@iom-FH;5tjW2pw`6+<3P9dck=i5l7;mFU)Olh>P`5;Gd~Xu z)urLL!(Rz67SIVlWhEpv5Po2u-0&po$@D!hwg*x8K#3g~NrW%0c&%ko|6X)VtT@Ym zCiw4gk<7CQ$maKkb9mN_=Uv1z{Au=rgTh{L0M_WhpaV<>cOgS0cr>!&|1_~0TyJVM zaF|&Q_VABzW~+gGC>Rd*k7GQtFJe0|&M%5OP0^%L20zStzDU+Tuxnv!Uh~!>2f^!v z`W5&*s!{$Ez^8^Y&F54d;X(p@KsUGUbE!5_bX-Fkq`ZH`zo9lD9vHBDX-S(KUpK6b zB4vGXVHuU&(4t}ZdQgZbtme&hXW-Q7NDbS~=B^8h9JDZ#R;dfu9!a+j+xFq2URv z&M6iZ+j1 z)UZT5=fuwf1V} z$2M7YDqLH~A6KDi$QJl|qGdTavRXCiuo2{JKK_eFy!fZ54FcC}CEa(Ny?YviCg7{3 z{kC|^M`@^%+Liu#Vh5tUxXX5TZu7SsdY~LL6SWunF^?2&sJU~o}{Cpt@$?g)GsmGP$g0W z@wW5378}d^nQnkcf`I`pN+QjE8GZtF%-E%ti_o_kervYapWg)X6*YD`8aUw*+2MQw zzco;J$4v-}9`2N#Z#vW^hSVPo4DuuPeRt2A<3nB78VC>}dR;D<3zmKM0sQyP+=~Cb z*4OA|_pi?ZotNsLF(B#Mi%Gj3A#%+KkZZzme(-ADOSOhnS^i>RFrR1CyS<2#W4#P;wB_`rVl zIr{g;gbo58@7Ji0A<{hI;)T`&Ugt+m^3cYX@aM0uv$d`ZqSvu8*KJlhAlm9k0Yt3> zi1`e)E^G}yYR-RKf?G=A(>f9Cf!rv9GeQLYGl4-1QS2A&YT(Vr=T6{r53bO?PfJ7S zO>IoRls7&&!u}7Y&~U8%nDcS=!-&ZhT-I{9bW};G2smg}pzZtqPwy>kq(m zYuODOG+kyVQe^gz0JY(pGEHWiJSeB4twCj4+@HeNte1z=!L(7e#v}@hOvPkH<=NV-2a& z2(5u}h^YrktYl`(ez8X97EC77Rly;|qaCVB7Jq!BvF--Xjxbeqlz=Y{Y zP^nwr1#fxq3Bg<5UZG7_K2R1k9fLR4XD4eYrc3HwEM3_9 z8FpuYdNrg4)o2MJp{RpmC3HK{vgiu-;g3x&e1C4On)Vg&mmkys7C!`jj00-JPa&5%ELb<>WiRZW75!Fg%VY&* zsh<#DdH~VH13n_15Nn(G%nLn-P?!wYjnjV<^q+_!G6uA>{*lH|9rNl9)OrZWrV{Pd z6!v}(BlYy-htG+OSAUug3mx~-t}mKt=sXRG{c!gIRa#UhXHw2g8$cJ0)1N;7=ZTx2sx_LCOZ&pH~9bjW;_cx)9 zt+^)D=b;%%tuOPj!49Aza1f~l)YtWOm#SaxLXlUAi+Mx*jtZ$K79pB z4U17X`88b(g3xkTihfcIcd6*souy!_p$6|RO|;mDyFrVKyOn(Ujq1t}{8AgJyn(%(*qzu`fu2%1Y9R=ou&=>ZgV;=ES$luS1e*_ko7^&?% zsIT+jU^x<_$%|-6VnjV6FUX`l@dmJYP2s4E8Kglip3KqM&mc!7!rrPbXo&i}Y{T>B z_-QBN^P&>9RtI6=AtVC7SW{cBk=e-<{8+{)dLg)kAkNJi^dk12+}T#5-vN3+Y;x*i zNr_2t=?K83BLtU@df7K-jZHMgcVoR#S#Oz+mtL8cXuxQ%HOFX6b8J*>;N-3p`9aU6 zI)$d=SwjNKfDd)y5yB;3lJSXgcw(HoIp=vI$^X`&v~D5cW(hOVf#Bx8bfe3C=MCkbc#PKypuasoi9J648 zhl1bJ7(!3#zxfK5IiAnL`2$OHl)M+D^W-q&-_3@H`1z-)_@}29 z;-4R^DanfW2-cLDr-PUp{cGUbk#g-!xwb3m?SKDQz`~R~7837MOh-veq*xpabNlH8 z%f}kPvnjYvb9-7uJ6-k{Cv(HVGj1zRhZM;5M>AO^WAJ4a%RE&BN9@kIXMLea~s*<3hDFR zbGV-9fpvghDlTHRB`Y#xySE9o1Sk?xf+My&D|8zF_`U?Fz+xqeARD0KBKU>)P;mU+xkowEw$IWJV z6lP!JDssQKZ2l5V%_yJYcK8K)OQ+fcAC%^5qq&jZ0mNCw;pE@5D|P#dSU;-7`VkdlS4r!~LA#!l@Ab+tsBTdM#viAClkik#vsY%BfBG8o z?5a7}5Zf2xOXBnUYpef+`CZO;g|iT<+w?h+^rc&xe;aIpwi>0?i9K|qtng-R2Gj8d zOl((LS773Gl$h5cqUC)F*OF4U<)~OoCMd$NJT{mG8jck9++#skS=<=#{m;kOq0Hhk zl#irCC1jR%P|(L*_J4Nt+gmMS)CBjzOkkB8@lZ3p&H_7PUiexdn{+6JeFJ>?Y0jfj zEz_GJf~t<96B3OUqv%cGqj%atUf-qNgT`b7L0O7)!Ci9|AB`jWXe>Fb z7~?EvAjjq7ahAqokZmhXq+>VnyvdWFp&n-8GN-VzJ>Ucsj09fvS*c^iH-A+9=kH%@zOV~ zPWIbJwE+OK(@a~@yCo`OiHsc_XAk~3RXmLGtmEJ>jg$$v^hOY4NiOzMUS3#|9*Yz< zs-o8)U8Tn&HItWErf@+E>i;7P>%ZO5{~vwP{^w`!|AsHr|M~2{#KdUdL=HUj+-&X$bdj4-G z|F?_(yO;m_@#{Lzu$g|8;sX;N7YQ)&Fu^`qXA*5V+20NGt-8Xntv5-({>tp>ZE5ML zeEq?C2g$Rcbw|ofgBQ=c{I0cMto%P+maV)&|4FRZF)#bxQWGi#lk;~IcqOu;hvzvLC@y0^LKHj#BVc=LAUN89<;;F83MR%lmXmaDFNKl;?RX3Qs#)@ z_8R3dUy_7A;gb~o!Kd@nA4F302Y>U>Li7g^uhN+k9LnGyf(!V0{O@e*h48e~2@D?% zPhuA8fIecb1#pUd=hT;_UibXW;{b=uq==#`g7F6lIQhnZf@r?)syns_y(G znS>_{naK|%4FMtsiG-#6Qjp+jh(-a8O+o`(t&}}(Ii4tXcS-CNgH0Ha46kva(pLA_ zu5FLq?m0cjwzf@RSp|$?Sf>`;?3!(}U1~W!mrmRcc9dy5X7+wR_ulto=Diux{;}s6 zocG>+-+S-(-goc!et&$veMfTm+wxW}eA-pN`3X(xH-{G}{bt{SY3nzK4gEx)gMQ+O z_9y8llukmZ6WQJ}t6lFu93T|8$*JNsak%t+-Xp=IL(X4AJSMqZyiUByUl{NpONr@|4K#%cYPZ+xS|ef_n^ zqtOezyDLP>_k8PhS1sH1O#a2X{QqBH`q@92VpvXn>9;?;ruFO}v;6 zKPW^ocIG=%4%W$h_{8jAzJnItiqTjh%-v|h-@WGK;q4QK@&v1(=AN+S(#`azZH=>i zaA$}Uy>I@LiMOyzzzzz$1w38TXaM{)`x;xc?whC?w-xrx62@-2RUvQPgjX_ zKkyqdgLwx9tPx6VTrUBa@BclBD8OU8bYekRIC)(6#QXv0lei0FT-Iln?Kh0;#P+EJm`cO)i&^=+1ySmoA9*y zHpM11SA)nvj>ymepvYV_H{L;{8$4Eik!B%9VH?xP*NyMVcIYb<3#&Nau#b51#ltKA zEXl4b|KzTIN*AX#eG$&E%&M++c@SEa5?X$>%P2mf)2My_}9hO$#W^| zp{u28#D+=$?k&%vzo)BGRkC3QzcR;j4kx#e|NRC3Yvg~MC+s{!6Ov&OQCyWJ$9r;ts~KLeARZ{R4w`tIs6)#RQ}aZ-UJ`ByxEYIFJvP z+JKl!w8E5uMO8rKsFH_=ID!M;x?Q5hB^2vcT{VOtVqF5POBk$sXeqHSVUhjZ@odfW zgzYSr@g3A;p9Zq$o8*7z6)?RJZ(xO;!=?EPJO=uhac*V^Cl1J~GJfA0P^)n8+OoxYFy z^m*6yRh|DgDIJemN8t|&$si@w!5QJQ_IPlcA}$GXNrPM^rB;Tcp-%*ao8+?nF(o~G zY$*`~)`7#8CUb9Q)33@THO=LGKc4N8vI;9u9GwtoTuAavG`vI@0g16;A9)#hs+doq+iX)?$#=N`}MjZ1No1|ExXpVt)JxV0^ZlfDURU zQo7K5@y~JIXMtGgKXw{hdz|m$V#@iCol@T_Ht4ufTU^x^H*2e+?j`#7B`EI}!Lh_y zc^-W`|L^Ft!22oyD*ChTKfhTm@B%dE*skL*R=H1#s=MMitOJ-PeSorO)F z7w@FT4ex~V34BfHSDI>#$mcpEF1p@`i(ZCYBlL7dp8O56o%3b1vWmfGp|4G)bLJ;8_5Drk@h5D;#BAvI(+&azb=x6pd~mKc`hlvy z(_^&-NgsEcI|W}UlngQSYNj4P;K`NWlEjpR4cosSjLY# z$^_fTCcbKqjB$!@5=-PaqvjF`m4}EAmeE3EPh>?4t?bQC&o1cuhq#cR4D`dN z!%}%ZdNlKVbhfECTRO;np85LcrgxrsbfMJW2Gx=jG?t_@RdPuRDgcGOy(-spuW?3y zzDnkLHu6jx&!vy z+qR}zCjOqQd2N%{{OIAO_1N-J7@q`pX01PL9)ixcl<|AU;VFH zk#_d0ZaJP~NXkBj+`Cae!Ln+x6RON4^bd-V$nJg~Is;Cq*O8F_i!Wf3fN}nx04H7w zhcpD2Fa($QS%Ze49-s}P>@y3*DX{e-tG`M!KdQG=K9jKbaO|vP(yLKPZ$hzq0_>gu zsCy-+N6zn}>>Z#tPR6tG59k|->Xf8(BJ4fN>E({!QuArj76&2G^wHYS3?a3NtZO^2 z5{iZK6Plfc+xM7bG3KU4m<)bQ5lCbbxPFg02Iob_6bAybZO^@dW53Du&P(7D0aP}& z#P{4zw!7Z7!Z?gK=FT^G|Ec%Wzk;tlK9s5Cz zF(6k71%{9&7%CZOCGQ(IPzhdMBBIh0G5|0xK2QylPcsoqCZSVtaLVqlummqK6hR0C zpChWsjtV0LLZqL~b$&DA+vCKuhkgX3Dz4VC&L2tVfVjSCC(dlmy#Rho;V8$yy)v1= zC=N|Q+^Q)+B-LwDFI$5p|Em0r?F&cf-Xtn_eO6{BO4QA{f^aL1@<@p;H8C5t84eahiH z=epl6|C?*gS19m9&w9W`z7re=UkINnsqY^~6Rsd+HYpkS@6{%h`Ycp-VLlv4NJ)gQ zc2`5Iky6<1_(9XMj!=}6#VJsI;J*nBi&G^Iw6lBZl9Skr9UodGV>X@-&{vQ&MmVYV za@D4Em4L_IzQ|R8&Cqum^PeyAZP@GslzLKg_2-fh91P8l? zE2hK|A_xx`m#uJv5MUDe7B9Q~`w)ty4-tLoWS?`~sFSSkcjPrMw&?_WtI+B$oe{5p zro)z$;C<`1>-+d5jk2H5;jFmNyPci+9-j?6f_hT_DI29kop18xpVcgYtH{NPFU z)!$ODBH@-(`cs&-eB@wH_%W_Z_06?|ogE z_Fg)@onQK%;w_6`{l&Zw`hShhXp~qIoWUFYw-jAJ%0Hb??^ykl2blkcv|D~@g&$(% z_vY&*`P(GaZw)gLzsWA@6~FyMWuZS5l4lQH?b6%JcR}+6y1bFkp@+rKTlLlvIicIxUoR)1wU!aRjZf;PLYmVZZJ5)9 z@N?ILd`=Utdo)(Z2`mu=_<)UsTcWWtek)OpTP1qyN&Z#w8%3hb1~udLj@rT2lYH$R zY>o1N+xVLOG@kH@cB-wNzwt{9DK++B+CM-Z9{lF>f^LI;mnLaML1RSHxKASj=Rx2F z5a4eI+x2aH!Zp*3jPQ@UjV+!FYWE3hf5m@3Bz|t=(h{jp{4aH$=OsH>1C=~W2K7qxbFe7EcnPt($xIFJOxtWi664ORU-$UW?|bsSZyQe# z@{6#`sd*x92^RSQq9rvs*MRp)_T6!*%TeX9_MM zwBvdxk$Po>B?8=+FfakcrS ziT}W>(tam=^pFOWwCG8~6Yw7hDG^(+L+hudIRGH>jC+(6%`N z4q9I(=8U4#*$*1@(K5FK zgcV=bI7}Wwq<;6!7Mk-g#lehbEfi@oE-8W34d$zl<i^P3{6(=v)(-duKY@pZ@HR z%>DenF5DVX&55VVDw1L`b{a;}dxZBkVV82Y(?1j%j8jm|9)NkUTmyEyrYzIh&ttEYcahOgOtN-GFDA591|~S zgPjwEFHi#O*Cai;zf5tHvt=jz9!Y?jfJ;XN;%`KWzx5=!MA+Tpl@(w0TfMz4W7W8$JhoPh2VpP-KVCpiXJoG>J`* z8$}=17>V0vPlE0I$OP@0K(GfI~~HU4L}bRhG}M($JK;xDlde#>|;2 zm94fjq_r6%+wP{dVG5S9XSZrCWd!PP9 zYr`(1MUm65)>10stEo_uhT)`+nSa-+lMqkAW;N z0=3oFc`RHM(1g*ifEC~~u{djr89%9<@ss46CG3J(Vu$@#_ zK2Eajq=~F5!eUBI=A=TCnQ^wrUJo#7uBDxGhudiW@v}UDcxupNFz74h%7bnKoU%AN zl>`*i_+cRPW(lw!&?G%y$SmAYI~|jUn689-EPRF-Z-E&MrzJhiU|7a_j?lyl=t02| z3++0_TM2e((e2UiK?LSIU;^RlilxuMakH2}4G8Xy6OcB%0k>@NLhm*r28bYiJ7Xmf zz%!=bjT5Q+6u-^G$58hvRlk9B|2`A4FE+;le+RExO-w<&^%xhF`&fU0^J+KtU6Su` zl)u3vhKQuBuwR&paDl2(@nAp`h}}iG?=L|fMMus85Sf(tyRvH6nG)APFgAqHrq5Z- z1Wg=(TfksFOh z11STmJU#{>oV`0OgKUgxli_tRraeAtpt*XV(hl;u#XgmEGK_M5C}tqDQwTE4Ng~K> zJhTgbcUqLMGb^JL`4=Tz?@q@LzY{{@-KesH-`yL_U>;yV zWkBSPIzf5$dt7!Cj4dOQa3BBiGngLc!;NM7SJ{Uq{cSWS-;RHD2(M^ScYP0Yx)w?G zI&N1Q>wesZRThgX|023D%$!V?mzfU(?m;YETdF^<2Vcpl=x5+F!fk5 z!0gf~o)-Cr$WUvrOH6Qy0#tQIaWc2ElewzC(lezPvupZI zz4bbF-1%QWl_bvQYF;LO?>F@v)y<&sFX!}hoDUoaSBE>68~itk9A9HOWZSU&zX1EQ zxUkb>kqsLS(O+lFgWMk9C|f~-7Y756DZQ z>Hw_wQ8WQ8BkS)~LF&C%6{%OJhSdA^Bl(beu{z*7-ts>Uqc;=(`UDONj{i+K!R!op znf*qU$sLa*l46qCqo7v4~m~N8dva&d2(lSvyy4zkIjyr{m)F#F++MF9~jl*1EtdYu#3~PTS?g1nDs=jGFv72^fqop6(>QKjRSMu_)-Gpl75qyEO-g!34T6f1wVTL z-$7L$KaiLX?}NE<8XL(^mZWYI7h_!me+Lt9ve&mS(*3lQa%3D49i>c zmmhGo<@E=l>6*O$BCfVv^0I~d_je|e%4Zz@6y^Cx9|JYx6e=h)05r4=jUH} z`&Q1peXn%nX&cjes^}`0yS6OxCLD^ z?!PA=nznuQMEY)a`~LgxD{tT9Yi8WOkq4(8U$C(zOI4cq+`U)c#Iv1w#}}f|MUwRN z7Ptjtu)MI^2#5QKe@^%L=6nnW_$sqvDZUP^%a&-?&KP7+t~i zDs*=zr@xa%0is>l;WAFPmuLVO5r{D(+iw|?gVEA7q@`A)(yBE#-d75I%!twXzDE}- z^A9=1u3*?&mbC8|Sm|&=*tf?-J}OMTU(iFlNvbuZC%EGh9Q&jigLE=21sRHuF#$;< zt!jmC@Wm+sX=NL2xa4Z5Z={-5EQJv#;bp6|ioI{AZ=~8bP8B1Q!Rt1ur9J&q)8(5# zeZB@amJ6q@a@i1kV2qy)(BD-#ch7ys=5G3Y!AK#VH7E7Q&+8gHSs?XtFZnIYtcq7? zq7Bg?tQ`GN`Wsq0ucl7IyV0TL5a>&4v1X64T%Mb=K)2ON3)ClrB7Q}>GmV;?7?C>V z$a0&SU^?r}M?E^c=z*B@@iqPWB_}hzlctu*AnGt?7ebzL_W7AcNfR)==b4YzUWF}} zf5*gc9XfsCZ{4>ONoG}H0nBhf@1RY&I@Az@#+i41s$=U-2Z}lXsz>vQb8Cme%Zt4f z_9N%ko*B6Wy|k(Y8yF9HJoIs(ww~Kk4Y*u95SL==)Kp-{(z$0G^0dHITv>^@==$Sh zI=reiqEGGMAK7%EnTb@}dT#vvp=UlnQMd7C7(ODo+T=I$Ar1)!wNV;pf)^<5`G<6g zr1|Jz@Uqst{Wt=oOxeuaUuM7{w!ocm&DlAJ{A!HFf~fHVzy|GP4~zQaX`+dJFZ0A^ z{JiQpphVk1%UgN*0`hR~@&#l=M)?8_i#JD0>dCiqm(-K*WR%p?lH+l9db0*LDw<#* z7tiM;WFVg%ODAMVH9wEbwDSx%$NA8V{3;73E%Wvk2yN^N{JBnHK z#G4xFHY1hUQLg#dGpN2v!?zdl<~r=xaOr3MQj}e+D5Ds&WRyEQcA->dY9!Iyc}|dr zj9Ky!EpCx-B|+DdA<1C<+23Cd6@yC(V#}MiZPl_snYclC9r)7k#(RgAf3FS_CAw~_h7Pj=l-nv^FJq)n8w{&-t*lyN- zBDNdaisPdQA`1^Sb+_OIqQrX*TRD$mg`haOot29=pwP+N0qzQ!i^Q3^NH$(a=__Tb z3S89n+#nY#%GwoQnvk1GGt|~CdFzWu=qk2`YK;Js%0|*_$Ur(x#hbQ|uc#CeuHo4> z{@|oC9yLwRcz(TDqsb9p;M)&QZ?7iK8>K$=_+{8_W!~ic7(KPgOfoYVv<$fp zW8(6=E4b8Rzh1g8&+&b>@qa4S;{PnYlK4NBnel&?P8VP>?#>EJv1YTfbI9g2Logzmg;iwGi6@gvC4K zU&+E^FN*+Y3)}%BW57)1z~XaUtguBFp#Wy4!rkX1xYdMeZP5}cv3)cm=c%W~tpPjF zX&|SRId$aa5hb;_h33(cgUUP_vNx5dgvvEL5^b`H;C zZzN40A)oEEB1Z_m>S-d&KFXt8nL+&P+h!R*CH=c7$x~dba^SN1ic+x;b;p7m+BE*c zCH>=%Y5AScHI(^jAB9NhF4QqF85q~^`4{nuX9Kjw<4|`6qsov;h zmTzzpje<=z?46w~tUTS0i!LS@rX{U-MNZmR-zr1g0qsdV>Bc~RkdtOD2o~9}FY7iN4z~y0}VHg0x(}=~Jo5=DH z`2@g_#Z*M`R;+Xl;eAq zi(oqCax93z=|nOWK@2A`%vgI9>AfIkthla%Z0+(&z%_wW98@qKFKOikAX}H5ZJkE_ z$~dK;sZ=OuoK&I}WGL6DOqX9Se~|lxlEE)j)F?k&sql!G)hGZkNs?1Z1%yTJc+ZeG zm|#9)}j(Gjcl*8;!dYhqtgGTPmZ!-eB2+8>?ZrrsDIb zlFKEZDDCW+p@R@&cs@%dWuL~t7M%%-cVcs31FW&9emdA$D_lc2z1m6~&kBU^v9r$Y zqNgbrenq8VIqY;%bzUCiv`Js?B{rVaVCAp`(WPn>E{*1-Fv5~(xy*&*Y$V4=Q|A*U zNy-QRc~mG)(>Gxz-_Oyc$?rJtpPPipX@*?*)*X8;vi-JbQr>TWxR~#^!}7iq;rp$^ z!Ej3HV5oG=gKQ_%g0f(?G}qKYWwtZQY(vUy!^&)<%4`>u*@!aRgfd%9nQc;;Ew0Qq zrOYOWeo^`hGdBFja)ks@-$*Rym;~WS@#C*X*eeg`xa%kf8p$nG-q1l^%*x__&nD+{Jsk>(!1DHWV7f&t>1(Vw+BT`)BX zh8zhuQbBS4dnuuJX7$Vy^_;?bPK7)zSWiptdRm&uuisS&z;LSob@i_U1u6IDjKB)5 zZNnLD3N=&MbFseH~7kij-^|ekB*JQ|1oil z{N5moV&zFcuO`%=G;xQiTnPB;p z2U=aupR=0PT;&ax8cJ(k5iX4@`h?O3HC$rK+S(P41 zuk=8Ar3ce1-OqP=xCV@n10}MYV$0I6bx%NR5eJEo?*Q%TD)#}vWi-?!| zG2-R^uzNqGm*MeJYd+ktpGroG>15aueVYnqV+L%tA#fi(wkwh$pq=(fy0DZlYYYSK zeL7yxKCEY7*uAgHZQ49P+^~;VP%2mOF0G&&H<&|;V5RbQ6Vs-42rf24`RYaNBB~D_ zD*3}PB`9M*JXG+M6Yx;ZA8^4q`NJuAaPWsgc(C(_Gx$;bVF(_|_`@(fSoy-nz#RM`C#HxCKSqu&Yp{kWGh-SNNDr&MxTQp0;+K8v49@&qt3p)gLwx9I?lzoBCeVX!|=N_E@&q_Q0dn@DL8ELjRA<8OjX4NGW-4;9F{A~|+dkxiNZ|GX_d(I_gV^qa z;f90IPuITZHc4dU4`JUyD*1p8Un<)bmBtV9fJ@_a1bW_c_dp(L^_~l{^c<+%e4^|16nX$_#m%+b_+MJl4G9miFttsHCN{)Z!X}x;8@swOu-9=kQX%4 zePz79AP+D3sVLtUcK6Yx_pQ@-+lBg+3jY1bd!bd}}vt2AI}0@fi)XYCmx zhG}&eTh3D3+0!yjr$;H9)V37HB4^j>vY_Y8NP_4JOAPchd>aibGUc3(HbccZh5C^vwB|^k`@8fdGN*z4yKM%{OUUar~#vd*Azg-}n37d*A2Y z3xo9(0$T4$L}?cKc8&`MYElE4ysJJCv&9nOhpBkSAOA4^>%g`V z-M`Km+k`uQyOFHbb8M4lYpBk^IM3z?K8(;qC^3Q+DxwP6pfM7Dw@^0irdAoCJs$#b z33^qHVa>+$B@F{cytW3hIJW=Nwh<$i8IxS+)WkXTc@3R|rNQsQsAIR>)+f9AJaUmk z`2Z>@w+-`NH~A%?cL7aUZaXNu4ie4ph~_lBUfB@y{XLN=k|oSMo8oqFw1lT_rswd) zD)d9w!nb32c7)kr4HOBUHjK(e{;^6uiHELX6^elql};}-q8(cVe`MF`sBbtnw;qm@ z*s@5G&K4Lqe+<<+^qc`Ex>;_UkX;k<=LFlDtK};urhRpjcy(NMjpurGoC0+&&;n`j z1jIk{FpTl^J>Z()&5yC>v)vt6lo9*FE=u9UAv(k4k7~-5nn&@R7G_p<>d-PCY4@c>w8C6f3 zK6=Q3Ceazr7nn+CTq#{T^n)uws~96az{0F(NNj5+i#;*9#UijlU7pZ>uPBhg;d-uU=vL zk7`x-Z)!FC5v_**w3ci@OE#z_i)qP5v}B`NGDS-^t|gn$l1*yK5*lxuM@gaTT|~yc z=U7NSHb=S+vn!Y#=h6iQjtz5iG^57f>U?WE%`Qmc{2t5Myg-b%NMTj^Hy>z^Frx6-ZZr*~*Ry+ixy!-x2%cWC>eThkBS z+J4x1i1$OcwjcU5{m`fFhh|>oxau zO&;aex6}7@>oxaut&Pg{)0ubQB3_~zs+hr-3JBGz{!Zk)3GcjD1Ah7_9io!6vixq` z?7vLlr-d8?q>#UjLKaDpp`a3k>ra!;qcmPXG>j7IIJ>a*P(T;g1dmveJbA&`NT?|U zTs5lDt40pHpBN$}RU=-vJO0d~&bZ9lHDK1R0W>YBHkAz>!@zdv(cBz-dXNY7n(jJ3 zeV_m3Reqm;+g(%c^PzuLi;loa3u%^NXo`p_LW~o%Fzr1&aCC&-HgTOb@lE5t+35b~ z9U}||-@tL-RcPPEE(H>6AdqI#v*VIXZhjbgv$8=!H;)ROLz6~)GQl{ zIPlqZWIw-);&N$_E7!`n_F3TN`-K+OmdrpzWk)8d)SgAV1p?$$1Jy+H8}|u z+Me$^)?N4Lc`xG;Z}M%Y%A$x_4B{^#&nQqh>ceZh7=oL$hrt?4d?gix#C9Mi-+tp1 zbbVu}8#%CPv>XwI=qgnwXR~q^z3UoSpMeGb>;wGR) zCn;VL$YN(e7B@~q|4F7>ez0mrEXym@t`~(@I5Sh@3fOj$wRc6az;O$zO+$zxlUCX= zj!hChBq+YOR6IsTZ4l%v*P5H;wWcX0VB4godG4TXy4PCewPxDl1~h)>EIIKOEt1c? zx-3<3;!Sb`qkL2Wi@1Y4A9f%E)8C=+-VPFp^bBrM=zX!l7TjJh)tE~9tvgFl>YEpA zaa5eZ!^yhyPe4?$t;o9b6?~@y>nL{|V9L=BoSO2wM}l<^0}Ecap|amM+j=*#^KnZc zVerj`6bc};#oR5;3)QWJw(i4K9Bgq*E$gkl9sj5XB>sRMZm&3zBmw(715yVv zOH^K?Tj|8|8tgc!PE1nYPVm01ptN--daT}c-nvt!UZW#udzG~}QF+z+qpKyK1YJeJ zw&ZzN(XPl7v!Z#e$mA+zL#Qk(s%WX+(jdEv%Fb4-ssc{Cu1b1=)#8-#B-X!1Hrb^Y zus%@-{J=#NJqs_wJ93e|a#hu1?@DdS6_qX3j~$0vejJrLkms!EK)ttb8LE&vQ0sO; z?{!vo;5qLrhOYz?dS70!u0DQqAYpnuFOV?8d9{xw2`mI^zqAiO7OX1`wk!>9UtTs; zu@8ISXT#ZZ$~(Kiu9hwp<^)@6`)i21sl2k~iO_b(>J*lN95NK{E0F4zhb+5rLhG&Z zV*Jz`%qpzbFNn{BnF9%5e#nAP4f=fOy0W25mo(#X(%Snzbj4X?L|^9=V}m2}`Ego? z{dELl+;!gTyhv@;!%YxPz-ogX@;3hRRYuM(zeZm)L_fW=6m| ziVgBZ!F@4WP2=3p@F}~FtrG8@G`X6@K?UaA5_%T?s(@-)2Zi#w)R4$O>C z!uaZ62cMK#Z!#Y)73RaGs;JQUGB+O9C$Ssf<$?VsJxast zs$2`=$cl0%KPlvN5Y4a6CFg?8BO%u)kdN@TJNURRZd7cC$N--84a_%G9xHT5aIfem z3|`295=gTcXvX>N9YST%RwYI#Vp>e>#>zELE|=*WaLf|)OJw!dEJcW!T6mNfjzJ5O z4D`GlgB75@xC8@;DQQ~5)pF!*IyY%-7|wdp!y)g`MMjK9aOdyS(*M#D6b>1**v`lF zKCP(?!{?sSW!mG_T^06sn)t`;?vm>>KDd^eDL$SVIm)ug>L9tB$5=<`-K#~p7Q2=z z@g=E{7UivvucbCre+1`9B6Uj)>Qbv#ms+j55bIT4u~X=ZovMcRa1YlNJJoRD4#E04RMs!l z!&yIvs+}$u+UastIs8vOTsvJplg(63PlnBuJ&n;{(>sm!S8MN7sxjPfx|KV6)AmlK z8g(#?!kpgRW*g;=$``LrYY8&^YA!3Ow7pFZe(`Y!4`HJEmPvBWF8-dRAc%L-Q@8TK zA5b|v5V&mg-AqJorCQA*-6vbK35q+K#26RN$;#%*+>czzN>|pSg>=LMdvNwDi!q8^ z13LigDJXgY<`~H3t(%3E&A}k5{MmEYxPBMohfUG%+BNo44q-1hzcBU1T6-xI zvzIFJD2XLEU@uiH?4^ox0SFM{RJp=z4NM5X2F0W(vM^PX3D^!)^r~RuCu?x-F2}$T zEW+TV_CEhF^dP#G5#B#JaOiwF}GBGyh%l=q?03iHgO7b#W`d`7Ki&Og}W67ifFB zbrJ9B_vE3b&_PGG^s)|12= zm@s<+uTf!Q?@6MkBxUm}Dx;$<5jKJ~qCh*-s-Q}R|273{Ov>Nh!A<;HfDK6k-Vl#&=ixgFr#tEYik9KQ(jXqXiDYQm4areyw=TW4Dy<$On)-Gf99bT zKCWw%N2#?E461X5SyoSP`e=24ObJcpf8g&yUC$eBwy zc8?MjIR%shJL(ycV`ck{M|n-;*u<&$E0IIaZjg%!i=6qw;BmXixmol{x!hVP`eeDh z)-L+3N?ubWXsXH9meJIrtu3dim)AH2%}TkoRM5EPwMzv}lYDFL_&^(+UvmGCZ>aLe zLl?OG(W&zBULk*Ex!%Z#!%6qtgIZX?IV~(;SW6bwlEt)SBU-Xi)hGbS1pI*UITiD- zr#AEue@pd-e%<==bTZCY`2YCJ*OPCu`b8t(j2@d&zS*jR>nDQ^VO7!y2aXP?mVkc; zMJci0;%J0}HBMrf=OPH+mudCq-&R<>N~e1a@$);5>vWk$fj?GVKY9)j_XIrrO^Bl* zs5?xGM98$;t#~ImkFXcMCN=M+z$9Ues-QCP_`u^Z;sF(ACK*h$c#h64;qg99lRwX; zhjA+mHg|Fe|0j=jdbrCd76c$HtpH*4u0eb^41)$a!QBI_7t-^k-_@N*|9aTJ7iZDG zU$cJ)7Sg|i>|dXm{=LTj9cBOCWL8-bmO9N+Xplev`hi6n{JTJUozo_UwTY-U5z`{r zMlf-jmo}VYYr@K65rby3>^-IBB?jiTeP#TDtqvh;I8<5V>a$$d zaHz76Gq-*64O%;o+}Kv2E_f~8NGx-dV@ey9J-?bF$Ef&ZecCtJ6n`w_pOwQQkS*hE z)kZOmiEEeK<>=CgO!&7U=g&-nf%7jUo0mg}P$A*Vc=A26dRan1-L{21RAKVcpB4`J zKOaAlTvp(?ygVlX0{9Tu)xH^l4J0t}i03^!hY=myC4Z#Ch5wE0#o z{T!M(^dOG-CI6Eq+N&0165&Ln2h=n3)mJ^t`+j^0!!v#wy5}}9AfFnEi9N|Zm~3hRYv1$Gew*mR?WwQ zd!jT2CehCaNRGgPx=ocHlb5-8V14q`A_5yR*Pk4tln_2SlvgjSfz&|UOl!U{u0w8A zkt%N*lU&|>$2^mNkYfk4VKxV{U^dJwE$t^{&p`_NsQ)EDf^A}M2Tpk#l?yMZejH}9 zkJsWWA{u-}AK@#?nbgZd)swv(33}yB@U<{}#R0-sByYO`d_|uIU(v@rDSOn( z7n5$~ju%v?A!+Xqxm(2T=?-e`=@JCWp&in@L3zin`V%3ZDM)M-l|3T%K*Xbn9W~^7 zku`8HHSqYCsZ^->#m1TD^n$lxa}yr1oT^7Gltgz1w(SJ@^WW3*XE!0b zmb^izFCRHVIZFGnuf_v1Kb-00EsIqk#wySQsctqKqRg%lo(+r2;lcmf61@&R%#ow5 z=br-Euir(;$WMNU39`-k1)3qtyYMgL9c(PlBs4F^n%4uV?iriD623F`ngBvk8z@Xv z;23Me_emjTJwk^MyUN)!%&N@4rnW^n4{Sqxlc@7gvCg~DScg>`)3G0%gOgtV#UoVl zN4`nLpL6PQw}I^tXTVr0JwRbTKzrE$%_YOGE`iDGB1~QvZ76V(n616ko{HwK&9KXK z0e655$>1VkS@GW29^AdidCWMt|8pk{?mvr;dYC$DgW6FKtK++#x@rCN-Lw}O#TmQl zkvlWGDaviUj){@R#<2!j85v!y{U@=3okH!=NotQyjh8rTPenr~^jUK!G*{baVdyj7 zv{q``gKE=SHFKbe8rSqq8u#pCZR0lT)k{4mhE#_wqbRs%l)Itcp{NX#R;!T!2C#WQ zV*u^b$uqlM=1jmYtpoiVKY{YvD^L0IHWs(WZ$k`DL0O~%IECjUp;|bN^Q}i}Y=Ox9 zOlcjj=B!6%9Yd&Xd*w;r?Hetjx}puX`8wd5E_Tz_35?UMcB#&e_si?1d^_Yx!47>T z|M7gu6l(e~KkYLU;liuSQa=h@F?;6)uGqYmz!keUKX9ekYbZ+{rB7DqeI-z_`Ry3M zJ&-VazZFQ>fI3kK)Cr_c5H+-H3;Y98gSGe6{=jGXE!HDHvlvgEOc*OCkV2|4S$of{ ztEe$ks{f%sW>q5dt2X>97M_ov{ws^FH(=52mG476FB_SZ>UWm}sW197?sx=xQ*}*hMqJq})Lm zT?A2=U33#0RNKLe;TBA-F4hKPViya%P+a82B5l^`eUCpe7aTax`<|cgJBR0ezVq?D z-*?vVvw0fyi*#`l5_|6DQ|y!|v0>MGnKh65Fax2ukWVXUDl+6F1qqWHS0YH5G#D

    M5Um}iO&PIAYsd_Bd8Ly8QWWf5%CqDSXDf-8uh|tHwDL+{~ zgD(9iSX-RS7_Iua&#*Wj=88MIki|`$&-q*A`x2ESm7P&b|=(#+qDp(?( zcfo0es2T}o5}ynyWmQ85D7=91htHW~a%1P?r9QXpnpc-%nWR6VdvN;|xZfJmQ- zD*FcbGc&$WK&7q$bvr#844f5DR?Th!R4~JsbWj3uNl*e%xFT`Y0QBB~ad z0oWS7B7D}h`nhCCqKC0`h%Id(afT#+q2;vL(pkk`=DqvRPyl$%;g*gt!lL8HrdCu|8Ci z0^UV@GE|ZQ&LIYMBmid-Q?VV`pxjx?TFxc`e6p?XL=l! zzyLPMv@&XzbQROWw6VgEVYH=%pae!tx=P=~lt&?>Q$>5{7$R~!B2m2&_JhD09F_Z@ z9%ksbUXMF|wm?^aWTzTS zA#t0$vjol~&CWe&NuhI^QnXYPC)GhB8DM1Y_kC;aJ$r}YM^Ae_eI9w9A$za?wZ5PA zeQUjIZO{Or)ar}ziZ1CPm$R$!Q|JnW9mlW)g>^Q5nhFdkT`(vEr+|%9frQeT3OEKn zLY}UT6i32Mhr@v+lyeyvI?!wTL+rcVtHxq+AH}So{HQ>PbQmK$d1O-QEOIA{_lMp6 zkmx$ZJtMAQm`o=qlR<-&y-HKOICAVc7z!GQY@=H)5nBs^G~l2k8VM)kH8@56^ova%ay!La9mbyx4zK$&>dCr8~f&TgM2 z&|B`s0BNe?j`vQUCl1F#s7Uuj0v7JZl3ZtV$0> zv-q)HvRH9jOcvmD{%wMP!PC3$_`KeLJWm|59goL0-|-E-;~v6|CFZqcL38S$fpy}T ztqqFCQIH|Yym^@DP^~2k0(ny*SskStLnm$N816)F=`!Kw^4+lFXC(NDe zXW?cl2?5d___Bu;c4MV>;FO=@EgI4zWIEWvdZ4C`!>VkQq|EtxV?X=5Zo=#1v8;E- z;JMW>&aHXCS5rZahMOGGoZf()6Rx*MoOO-=GoE#o`yl9O^y|=?l*bV`C>YO{^5g|t z-{}RJK&eu`cZ5qJh=q`{RA5*B$f2DAdWra5N(We*TyfM6EKve|Ej z_OHG|m0qBeV0#T~+S%6bn*tvfM+RdStV;@f#}GL-cq)7KAK_t^6g*{F9SwHb)SFME zM8{q;-b}O4cr(ob!JoaxOKJLzm(mmMr%vI}7Qmt5o64;Eu@*N?M z-S2QVb+ff-K}KhW_9->nqWLe+3VFcKaQgPJwWqRpL^S_bGps$XuxCdwadAUOOIFsl z4#?TW6wfx*@si@{F50V{1U=~4I~>Xq|Y6RwqeTd)n!V}7A3H! zxF^)Nx(Lf@hx}1@q}Sc;^t1%VMBUx7G5BulJz5sc3q~a8?#4g8)2nmb1pZyn z!J2ZnK*O!szD?Gi6pTRA){9|8*czP7a8-IIZUmroZ&QANqyn6ZP+as0tN5F(48rKULt zK8eG`dc!~rx7E5p#n=PyKoW(L1eYhWf`=`omVg(R1;C=a&w^_@@Zhzeq>^dC9U*VssHL1Ti;?G%-xxWJRK)7K;}svYpgksEDv8Q4Yh2de1R4%QV+ z04Z?0_Rb#|K1qNmWY{?{3fMkJmm7PYk(+SK>f(+9JzsHe{%NGoz;SJl&}4Wt!gVvZHo zm|RbvqY|Nx71FZWfz?06akqt6%Yz~OETbj%A*PZ8m#)YjxRpl&d1!s=Hu`Skz|9aE ztd}una2^JYjlF1`LMqc!2yglH<>IzgY~W9yfRxNrItQ-9hf0_& z$R#4aVD66kk_mx}AY>vsNfD^e&SrL$EVaS^&W_lX%IgDhs4xb4c%b}als5>e`-naf zjqPFEZ{&+3&P3pA=we;ka0z%&&JI7T9=Q5wDpl{Su=uG5zLvnH!uLt|?JHcWdq?%c zf&NeU2f*DeTqKosD3WG>-7%jm>J{0w1FkF9 z+W9c313y|vyP8Guh1L%Ij^-?QCr23EgZh#i{H68EtO-zLeR#&ifyaQy>%+z28IBc~ zdLe``HrumawS#A&HVr)k|HAGe^?^J!KrhRdf`eynrqV{JSMWOfneRKJUtl?aYdt^QlpHwn84apk+)O-(tMUuy53C;o-mxxv33rR?o$dbXL8d_r z{MU*#DQnumDXT#;$N-uPw?9=~Z;9 zoSh99z3Liog@=1C7HO>ERnm&d-lg>=GbZ>ah`=0WUwwG~gqL|+E(uJ8*ol6-h?Q_` zfd#j zB>C-H0&94Yq{mDCTDE=eg!+=3CYXx2X@XFO48*@=Tp$NhO^oH$E9DdFowFwTuZDE7 ze2lqFQ;>qadj>6-X*$=j)~3cP$3&osS;xvuJT+*rl{(I(9x+gS2MW z(=PMtz>b1|{Q05Nw3m7aZ-~x|9Wrv_WDYycQnHnKljkdS`3sf1^Jj=)t5rOF1g4*&QC&iejJ{$Z$b#rs)d+c8#` zRgRPVC-+qP+wMHr09H?u?wbMc#Va+V)zVz%+}+TsbaFGEn+A!L zXBZk3cw!Lu%Zm4p91kuZ#`QXE$V;g9%V36!;}i@or~*v|BYX{CL+>NA5zqb@PQLok z*t9@n(CYM#1?dR3OTjJ)LfV}1dkP>HoT$1QjJ=G$0$JyHh$nGT(>ojbvE8&^p74)X zrAHtbk5XpE#t;-T9rri80pu=p92PP@vtur7=+6thO3mgu#nGCdX z0Bvka6|P(|_|;0Go`4&jj>ovKX_*7C2c3l1`>?_Hi8QA$0A0}gY&;-| z0d@?q^MKDV0PSe}udWmO?1-6*G?r#8$XJG+J=f(3M!=59 zw`uNCxn1*(%4N+hDtC}Kgd;$wy;FY+{r7sHi{2XOo!18)^Dal(x+_itgG(jDFgg&@ z$qM5*NY@w#=`47HTW}5m>vRq>O&Rjb9mqMk$VbRbx7w6T(LP@~SsURphc?1xdD;k< zXVWGv@oE2Y!IaHmSdSkFGmV+CM zm_!~&L=CpX(8O8c2^ffDf*2#Hp?*%1>%~Q`sgMGqK4pa{Z8$Wa!fz##Y^4yxyNr>yjb~*5pZO>5#_wpSO+E*nhU>oV6uq zZNvrCuUF0Gql$%EPn*Rf8^`)-BmjxWCVV3C*o;pk9$N(cbKP5YB5%`)+@ceChfd^( zPUM|Bk-Le=gd9YQevqwEbfZp6osK7gsGOYM5ePwQKKa+Cri=qOdPw2F(-8kLL^mY_ zIqUYCNji8xHSI4&)eC8dsR=^Dfi_-}!n?L;@`zOOqC9$0Uc5C=qjuPY+F`RMs7O99 zoi8A1MH+hfwSsi;Ac8tW6I&#vmlmZ-c9EjqE=_(B59-C^l6h5W5oV#ur_WS0LciRG z`UQ99QNOtGKj0I2rKF70K%_3aw)ExF*S%a0t#__GtrM<%t^KaaTGL$xTC-h+FvDq$ zc1=;r?Mj0LvmG`Q*JcCzs1IQ5gieW>@4KLG=C(Zd?6c2~e9-oxr95_NY@E7@(42h! z#ym3SmhX26+2OM+cB2lt=~irUlhE4Owz|`t&UnXR9WpGue~1)5pqWCSaeC6?El4mc zjA1mI9KJY4v%(<^fKjMhK8%I{&m-T3>F+|m>Ik->mfxurCd>+4Z-$?@f}0iiS|J5H zZ8x#d)KRk~-Bk>9JL($2OfFEjm4R==6vXJv7DOB6ZM> zBmTSWQ6p|1?=L>eZKFr|v=|&1J-H^H9%Kxxdm9H4B7DP!!TzIRoN;XBA=wEr(RG0#Yf`WtsitNv20EgR)GQb4^$J|ST za2HZ3@U$iuB>%{fUgS+KmnI!>!Sdd2lJ}0ZxFg5#5iki3%+jaNVNK|GK1BVQOp3qG zh?^fZqLlt?U`!bo>`#V zGhW@ES(3JAHsN4x){UAO7OrKA#?lnnHfSk}O^RJ47@q7+%pzkJvRY|+{2_K_k!Jd( zCz;PUgMY*yiJQ0ZXPQ;Eig^Ut;3HP}35K=sXS9|A$N(P&+hvhFf^+RbKG%{tijy9y zg4?xuY^R~1ZbLzPGS0LIM7jG6xq1z``ZL;7D7^0B^n_W5`)qoCOj46D6oQiKONt3u zv$}|n>7j#9)7$toJ^gcZ=5zPsFV_WQ>viMpz0b}x-a@Vv-MUNmTWF?uK_Y}I#S4yY zXtsDkSqoK*7i3Su+i4OP@`@J}Izs7baz~g$P4q&yi5HYU!YOJ3NC-|LgSnxV;$<4X z_{9rSfDo#h*o7L!3rXICy5z0ZCGQbk^49B;w^5h8M|H`2f+UaTFqE(!Yg)og^7Um% z)qCfaDx4UGzHHIrCWwJI-_RyYoUTR;5{9#-Nx~vV2@{?9vc=5M9qbF0b4GVeJ>mAW zkQc9ei#AIMq4DBG#b+xaIbNKw_^c(w$BPpepS^?(d2s^cvzQPhuREg6W^LCtgcKSF!Fz!iru zAlB+m1X?CIDS4l9i3DU)JYqH})@$YmSri*FGOn8xkD6VGCxi>bU5KZ+_dvSOIBBv_ zRr37n6-Eq!SbQzZQ*!4kb&iF6<+VjAn;fp$6mHra_H7Njx8bRg7QV05QW;E)VGmD$ zsX0{;%6mbQl`^`&P2pw=LTuLJw?8x+dB@;;*|ajM1(0)M7s+Yqw9S}YH=iSezsZnM z-^zDQ7DXJvB36$sLjOVyx2$&#F3C_>+C?hVU8GV`>;M+~ozcZQG8pG%5Ooip$~v=x zJiUUcdIh?LAosd3zc zbc-o(K|B=k-)O2mU$1?-Ui$*Q_LZ7!Q6VH&#gXFUC1rLNx(P2HI3=<5htMmTE2$0k zqPNrsl5HPbW~uqVBVUEjFu|s6Sp+CR=b>WQk4tA&IJcuPS0!l)yDaH)x?377#Sv3# zX`FuocXBB4MdYt#XG~g==Faqc-=+$PNl>_y4-B#U1gNZr9v^%5V+ z@8KE{4I>OEAIWgdR@Fg+8Lru49?#iWpS&Q1bgV%C_YK@nfZ7&>`Y&vZp#-I7t6qqd zJF1ZL551`k$xLlHA32OA>xrXtIjl7C&r8|Bi#h_nI+zrnj&x0@d#2Gq37#Cgx=Gm;d^Zt%Z!GivS)H~) zE!{g3g+bc@!?!_Zd29DRh@j!ZZdUjV27-cZw!mW}?YN2UZ$u6Vc1pnyvsq^( z3k!!DJ9}!F_kAc4sWldUbCFo^kULijcG+U>*#6&PRxOkFecGF#tfqWWurVtiguu?h zljN?S=l-ULhSrNym)S(JBwmTmA^M1S83ygF$V!zx{0lTXkm|pL)G^H9y{vZL@ z*DBR`sy);bm@fEZJ@5n`%7QeWN0mw$Pta96R!mjhn^t61hdob)Yn~qXU^zkV27jf` zAl_^xSN8!V+9%T;0bHBmD^-sQm&eQJ+b4w6%Z>2tN18zlw0g~*XBoRuolah2Re4*m$aLt~udmr*$LTO6Uw^xAgXh@jsTMO*> zC_3}t%Wng7c;`r$o%nDc@nJUGKp!~-UOXLqFPnLfb9Mw?^rqNEV8^_NHAZwqfVAHO z5(CM1F)w4@-?M8N#?*B%?=0ZDL+l#()7kSZ@#kD%!4KFqb0^0N^-RVb=G2rj*ahrq z39K7w&!#JnAL8TA`3$qQv%1~Tit$Xofld6WjJrwRy})4XlDTqhA@pbUPD&5O5o@+X zm5@G%$qd)wkQ3zzyfwR_1;Dj194dmSbO#W@3>o<`p44rf$ZGc=W7qCS;7Gd$93eEuC-;0yX@V4`wXC)elKcTe z^EiYAfezjd=fQ?U8jJ)Docv}8MQ<{{nPV{sQS!f3>HDMcBrJ3T6 zJQ`c_D;-=lr((6hoY%e!hE`p_-p|g4 z*A1AHT*92ld7`sa-kigv{ba;OvX>U01 z{KTfc;oS2RyY_}6@e^5l!_^ktK@^Hjdu4=Yq2s z@hm$3X`4`0GUqHKtVJMQa%|c_J#{yRXXN{n0XX~^G$RQZ5jQez`=}@bR5it*jORIgok0R*R$Flpy}(ZwZX#W zxsyO~I&SgUVJvkbeGeO`}1s;dBW^>N(X02s{^CR#m2_q67 zbGV(`3y(Hdo8qS6VR(c7U7PrFFgy0ohuN`@vK4faJ|&jO(n>2$?oB3gZ#IydE3Hb0 zQE8=Vyv;=8788wkm}nf)X{;%&N?lD6#^;^U7@r*VNp63BPO9l70|H(M)&5!-Ap2Js zARPmA!+G?Pj{iB+1pD$PPkfuIy`c)Jnr2jwRnv{?v8q&i!?CV%31z9{jD)>76A?#g zdoiskt13-4<7|`7SZ%Ty7np2DugPXyk~SEHy5z>9zF+D|f>nt|<9vZLdd`3|8qe`` z0$-HbQfO_EG&}?e;6VtR|QT< zmw#1Ym2?%L3cQl81yq4q(iMR!a7&sl$n`uZGys2FYm)j$Oj5tzB=s9jQvaw)>YpH~ z*XMXTmy*Ucoz>p|(xmt+oYPl0r>}5MUkvATT_&89@aMc4@lErj`O4+Ekj&vtwPD}p zaLv|mU`s}P)B7CXbogxz-((}C47bR1^M-IcmMoKRv19OAi?(WSJ0k}<7gQ7vpk@C1 zM;BpoK_Y{7dV!*_bkcs4e?ng8WJB?Ujk+RJ@v_Mq(e1CDgG1TpuFPSotkC4*mKv%i z{M4_rGgR$3ha;q$j@^SlI!{CLObwZ8YKX~#th~k0EW%pZGBqpD)U2tdW>p&P;>ufe zyLj-`taCRq-_*$IrbaF>HFBlV%zZ@1W(i|A6!9-Sqs95A7Ed>|c!8dlf``U1M2gr8xpbxA&Rf@Z9nDbPGOB?S89 zrUY#Ol_!j79>{Y#LmmxbNZ&$r;(1N78`T!tpd>lJq{DftWh~7++vH=NtF)7lYfj793g2C<P!rdjT72g*_dcDt)UTnh?0%4=0z2*?w>lph-X-+-6V_!X6 zm9S}$uX@(-o(!Q8csMMx#rx~o%C}Fl#qhqe`=o$^{UtzPEc5_~DhGn`yA)XKgkYzI z-~`vUeGWX>D~JbsF=KA;`bNDEq}fa75WVeA5iMP+(T-2E5v2T`yA$-zFf~H1s7*?Yd~$I z8R*-hpc$Ut;>Oz06h|j4H-LASDW0w2nut=fE$rT@p!Ll+d7ln@y1yVG?L!Ta_CGQJ z(&i8#t)Bfil$cv10+l92B=Y|ioyI}|k{gat+n7;q&I?srf>5FzYi<@q3WyAV?M@1G}& zK-KLTeDh41)4o^3UaYjR7pt?`i&<^&+AiLO|8>KEZ6|DDkFC#b>m6SJ^g7%31wmNP zm(rZRFROQaVTNQv{-3RBJ)Iab}}PFm=j42h}u?t*tKf3L>(spcz;PvoUOytG{q^f8B+zJ z1JFbEqIA8!t+(V9f`bO1B0VoH)WhpOqbt+di!*Nk3NN`KyX~;;;tuv={tfg1|FtFT z>C`7;zH=tErIVhFU9U)wjmmu$1({OWVLB{*j4e)a06|>|US%EZvf`SM6Z*9VAxU_B znQsU$^YmZBKQda1i>EkQm$t-gFgug|J_`oMd5W$1fR1?d;#bh0cgOKs$G9r}lE9q( zF0iMa?QG3f<2GB^-RtaN>ptY)|6Gy5-+x`0s!2rM2YQ*}j)Q0gJEYzj$wNI+-#{>teb01IQr3f&peuo#gfCIthpY80 zo@BP?Fy!jBLcWw|-=Usf_W)!KM6uuW@lwTo#Lwt^wO;8V{sonbMc>yz9CYo7(>=u2 zkV)t6rmu7iS@&D_XM_1t(_d}{spxms^s+VIFz$SBd=7YbJMu65K7ij_@QcIm1pL%L zN%AxBdkKE*eMvq7f4>2LzxTfIdo)ny{Nl*MP!C&s2)_i-H^aG`t;J7*unqgs$vu(7 zHteK_u`Cp!`)uvbV*zilNwx&Oy&@+yDJf^+ox}2Rw?p!eYjM2*KGx%quqFN^JgM}x zS~(}MJVRP}JEZupn0DV&@N_FJR9FHsWti3?{~7{kQ(z7SS^`(Kto)x4cmrS35GlvC z-15I6@EZ^a1zY@oZ>Z|3wLS+VJ1yNiDR|nd*Sz&5$Z#}^ioSPTOXPWY#bx^z&wrQr z_1e6jHKL#6&S-m9A0&Jpv)uA3JUx>o`dODD?c{eLMUc|Ag4$`sPL8M4MJ-x9okJn{t#re~ddhwQ6avQkG9zJC7Wd0ds^-BRLC`g22l{_!~B?>_bnGB*N^_zmLDH=BN}q@3{6#~k6C%5f@Ub`+X_NE(I4<4!l2;cGPU#y7v2xPx3Sk+Gr$Vpq+8*>+twh9 z`{kCjS>J^BRiE=J zaNsbMb2-nhN{=h4XjWNtNplkKLVUgP6QymWH<*wbe}G8t!0;2NhYg=2)GDBSe zRY>bp`!Aze!H67Plz@tEj=F}Ui-w}EM08O+>PkizK^34TF9F4;O1XGRdug*eZ4KC7 z&tyb6h$}b^+{3Ro!OKqW&jZGY0$UUx2gZ04*Y5EG1!NC!DWjp39|kQM9UEO_)0hI3 zZqv=qyYpG_pSg8>+Zu>la@!h7xnB~*ffpptcA!UvwL>RAr!Nx5g>*R%MK!(vMXkEo zc%P0!@RNdvvCxN;T8R%QsrWMry?A4~JSeK64Q4g<-juVG&F(DfQvSe6Tvnh~rbhal zyPIxNI)J1=fE&RivbL%IH8u(nL~i_qer=$&3`%zOP5u3d6|Fk(D`lN{+HrQWoNSg}oMte8QRn zTQQ7sJLN=i57z{5A;Bw%;HV5dHva@cZaF$jiY{`biEe3HAxPw$1GMkfXfG4(Z93s` z5u`w&CmRK)sHoxB$T4$IJKNaoHslz!^7Kd_LY?g4ih_(BBbzxU@AGnu%sIw> zfgF?f1vo}NJI83>zl7ev=y_#u?v-k~1|*qN&jtz%SFHGi=dC)1x!&(M6@v8KA*j(HV~DqM2zv%3&&g z1JUV8u;BJ=!9-JuQ}T39!6PE5@F8j%Mdj;JctZZR4HCsor?|;_++>QgQCum-73gsV z6lbS67sVCoafK8oQ`}67o1(`}vC=;2Z5tfKOF0@ZO)}uyk)Lt|_vWzmlYw~Dzqhpe zTnd6%YH&a+6`w>0gT%bSAw6m+-N7I!)?i$Zi>Esnv{T%$9ygrsV333|sLM()k?vrS zq%x=rOE7ts4mvdXGxiU=wWbISVPLd5CrM^tW-00n)4e-ocD3@P(mB$LH^Fx|-KHdp zP6Sg@V>yY7^{5b->8k(#P6eUi<)2q{0=NnR#Z6L6uTvXeo*EsC(lZ68{qD5%I92Jo zS4nP;wtZx&plYO`YX2=49V&kgiq0|;on<6CqI?jY36LG~OjV}^&pMNyv0g@N!rG<; zt?PV^4o~5-8BMIu9}0VhluESAj)Fviqo7oST^6Thwj*I*FQ(G8@tb_&9S)-*^KOYJ z&erZl_p^_7wQ#J|W#D%w&}r+Cz}HrnCedsN`wmX#e#L=b?sob>s42(_PeFr{@R@qE1lWE;^*NtNFi1`x0%wDX8;{l%{^Z*6b~U zQl>P!)Y9wAU;vz5X!G^5!UGxX%Y)p$bc6Xa>^#``B#bH4v#OEoiy@`G=%89!tKoYu zQ}760{*0oxbwbqbW3_*V#}C27gW`V=ArPAD_?c2O;8OFU0bLenM`MSn0Z>T;+i0kt z*V>@+b|}8Mvb*SY=NoMH8%0=}%O0*SfVOmkWzx~K93s1eCvcvriK}*5bu?4RphQ3_ z|HEJ#J_7CM<|j=BRcL-LCG&GBnV&cnKv7qS670>GKHC*t@^BKrWz_-VvTx*VG;sZj zCl1!MwOh5%;bIdfu~~rCY)$V2^ZmuT4%+%mhe=vkG98v9!VEjYltdEyi-F&SBKKd* zn+7hlYQIUG2g&6b+C>KGVVJXB_kD2g^8>cDMJv{HaWE_^slzsq<6L zb~d}cr~}k+B^fVec3^`aX&hCGpHT*WSg^rnWU0n=GO!fqC(@6^Ps@m(mJvTK)A@<= z&xZUd;-_`enf!#V0`k*bZoVYQd|7~Xw4A|DJ2UXp&J6st)67ph4g55h_^F6D4V|G( z{Dc{1uCozCy`Pz(G=4H@Z_SRb$Wy*P+K2{Gt|%C7M{~wXlG?WUzr$LcLjAGU2P{JW z-6ZRV6Mr{b*JM_o5Nt+f^_}3Ftk&6#EbA%F6ziZ^yB;Mh>pPpl;5}e4cx8V6#B5zZ zMm06#bva}C`X}&X0paxVBb*nMs$JC6p5^Towz`sjoSOf$A!K^h$Wmqt} zUG`BnI9qcsK|}D1Q``>k0NXnl(F}25!5?e9>;gsuE(1r(#L8>(fR%~<2796^lRZKF zOl8alGg;`zHFk}kyGNo}&Dr?bj}^6K)Q=Sz^kYQ^{g`9cj}^qvojN~5y#cCsjy6AC zCqT0z12_;Dz|S(bPi`UmUN+k&+`b16?niT9&0lQot5xo^fx(X-x9^$?roInN{eGbt z!+2hI$-8Ln-@{t35TUGfk;dCB9VCgMxl%eTM+^IZwO#*DQ&$up^r26D%dMtaoMDMe zN`fm!Gh70cWk4x@8O>096V~eX6Unk>Q9%uvWRZ?xcX`S$3;qY&4@+kJf%zK+nIJe; zCSffjj=8$wU`b;-Xs~H_&bjZ=FQUvJ_59eO1&w5n%xiBCi6;4?f~K3-UNo<#|C|5ts^LFW;)-qxgsnCP z!dbf}XdrpD`5DrN9Lt#kdO3?#%3+OXisof0i+58F?`jsWoW(2W@Fuc&l`P)E9Nr{# zO9s1nJvEZWk<)=s_fIBpqoOnVG#7FWQXPf{-V>{saA1UiZ}WuIm_Z0M81G}KPFw}zi-Z#D5bm>+$SsBc74 z`A3r9Yn4#N9K+rI53Cpfm0-%;VbM3J-^MtTc+pBJig6e|(L@?JwFfHSGlg4Q_hr8; z2BsOpww!V3Ay!gQ4drPTAO!vDv}UQ%lp52RDPRh)-Og)3Zv;9d1Aehb?o30tns}Sc zKT&v-8JrYE1_qef8DwVHJS$PJX;u9zv-mw**~iv;w&SzT~AquZPrfW|>uxv$*m+x#=3Zv*6l=N9TK-}!k66np^DHq>l9hyj>uw%yt+$*Au$IMEmK=H__c7%*KfsgM zyRH3fcYD7X4^MQDClSCDg;~S>3)s+h1R*Ye~5202L%ljuWE@%`65dYmh zYJ=afig4P{BGBz7>PWI>1(Mv!ZqGD59te+i2Eun2)1>tP(h3#P5ukrS#K& zr8siO{0LU?3>kk{w^%X%8%}&{u%RF>Nip9C>1@4NN zq9$;Xp;J`dex~;7CtmgTQtL%W&58DU!g{A+Um-4Xo&JJC&s@VL%>yZWlr=#TNA?$*e=8r@c$oz{&nGZP^(P%F`WQ@fJ|nOK3Pnwf)z_o6w|7 z;3m{4sNm?zJ*?uqAS`#-Aw0?{;m3KY2E1j{LuS z9Dj9C(pQ^t6gDcn8EnpZerlJdJi@gxR}|OD5d0KE&%JbveLLyL!>^E{F?pLK63l}U zj49Hvy5z?*MB7}`DXZ426d-;ikANjH1BenAK$MsPM2QRFNz4GE7|#X}C1wCoVg?W; zCV(h$1fo=^q4o+;P2J1wulqYAeO!$kO(BwT0hd(Nc(~|do{F%61^cZt_i-LXh?;8} zUtUev?=kIDXrEo3V?K<%r&-GQgngE2Rd}W8UGSw@?{BC^5PUVSHT0pb0cEH)T$OP# zal$sK)m@UIcugv^-88l#lx|curYYzQ(*##3dQ_ZK)$hUo2y|IUKRu4HPRt{ogwB&# zhbJL;@&(JzCpmWNg-CiK@IT^nE}4DK1#@m;5{Se>zZzlPCkaRaa$aU1?>xlSC?B%j z(xfhUW0=ePI2~ttfs~E8=n@8-c1EO};)?n}GnCcZ$1Vh+D0t~b69Pd_1S#}fbI=Hd z%k~CoD>!Jn2g$a7p!<6-!gNO6|DkXn_UNFYH+0a@n>uLd6&*BGY$cNfJ`?mmekl{; zjquXQJN&L~28M!W>4!Jtm^coP{Ab&YCb|9U82Q)gos{*6IVB9bv2ub_(andrh4Gwq$Q#rl zr|ZCJZ)EWtj2gb3D_2DOK&xcGEwyB^G0i0tmz>Qd%6bjBz>F$HIPewYTQc`;1Zb8} z5)Fd_OkxyL6~@*=zCOONl;IlvC|una3G|X(OEvK2eE}1G`f=8~H%U_|N%O{|4XUua z=2+JtMtpRI_>^r1#!mwt9B5SR;j>#ttHr&=oB7PjEG`CDTWz=a6wFw&_D3)|&e}r0 ze*wOt1}hgb0DwbFv^{NbR8^LpbhkXA!+RN{lhHU6r-IYk$VWlBxWU>$(ImQrgoV(Z zflioNV3}2RGnhtPi6k~@)BEh6P~%{zWs%yUgsOEFW)NG&*nt2EM8q%bH$XtZnZ{(t zfGOx`OYix(uRlTppQ9Q% zo}1>cXwOXu1iec?t29+#p}%3N*fWSD%V)m36~~k~y^W#GympJf++y4Bvn&4DF&Yp2 z)~Hbgy@Eyi#E#WwV38gPtfAFL*}6}4DHQn`V<3;Y_A$miCZRm!BZ|(KIrJk5BQb-3 zb$bEP!mCf%)KZJ>h~MVtZeOV=TNyY4C8aI5!7 zu$_WzS38H#C{2v*<3iN0z>Y$%9Q3}{}k%buOo`fEJxt zE&d&&Rg@Fzg71+Rm8NaMO&dZQn?3QKhLe-jp%h(`GEZvg+WX zAqI6&`#-<7{d&><+L5(COyix4hUO@p-azd#vLT1h(J{`kgcSMYF;eK(h{LxDI~*0l#hV`ycr2f#19EtG+E&U-HIJ4D^lRb}jRL z_Fi>H?m~K>sW{Z9a;AKE<%&94hGenRsae-3AZ#Z$y*$5U0;^A~cxwj=m$ z58QQ2_qin75p}=usIRWyQx^k6KT4y?LNW&y!i&LZjnYD^5-rpZWb0uOQmTUwd2ZK_ zKE^lvpl#9poY9j9e=wl1k_6xwo;J0;|EMSbpmpqnQS8hayJ%kwR^ZvSkP z|4IBh*yoDP_UF;3!9JIyx?;LNS$VWywjSrVuVk1X=D5}v4&!6ldRFY6`Mj}{I=3X& zQ{WlkzL&&$ayGD{QMYf(4-VrA%{qaU7AXxc}(Svn?Lv*3b=P-XpgdUZX0QeRP z>w6Ev#Y=0?9S9aLrJgao&-D|?;Kcan7^8>#dVApag>3yqVEaK5+jBa$rX;p2Oexr! z5L+DC_pl#mYuuSc7M)X|n~o%rO(Do7TmB@`@|`-Fa(iw|l1UQn z;+f-R?j7izEbXnX5;21Bxj{Tu<~K`f9N?mS-sw}5M=Sw7+xZc*OgCJf7M@dz!j)YC9Pv%#}LyCdBlElHcgSCBu{t{j(;=uUu3sazMq6 zai~%GwE^2z-`}FTSBBMx77NO~|ucmK2p?+4?z(1D-=5Boqt~l*&gZIb;v|-JK?wUvPaEMI9E!_kDd_6~)hS zn$ohB-jOl{ly#>PwUly;_>dTb0sWbSJK@HbFOVa}SpgXIFbr~GF5_`Y77>54=i&JU zzf!6SzkYHq_6|u=iFEiyj_uQ#{B>xyLXxnugFb1d4rqy>hn2@*-ajgYpc|%6HdY6? z)#)Rv?}wEgA1+kUw3y2qK4{uaYUboGSuCv?eFf=+Pcqc?cw*jySmS5hqbS}FKC_JXS*+I zRe5N>@0T5+Q|L0A&DrbnTR|$n;XAy_JYYHyh6%pQPx76G-DgkbEF>+Hy$qP+oO%hb zdg<_6U`EVvh;PA@w7$y6Wn)yRFN(nBG^Kn~9%XLAEeOa?Lbsu$qR-6{)ok2sbAiI> ziukw~tQ#3`88I7j7!G3%mUT-aRuzV)x|HBx#U%-a`%!{@m1X*V^^^SFx)ayW6g1qa za056OR_ZVKX=2bRs@R6xB7`qu_E*s!3Q|d^EF{j7oD>W!Ltqd~VxTO^6`#+S=j#2$ z9nj7^3M%Re;g;u>)W_Idp4kH;&^Ze5WfI@JAVR72Cg)~_B}IQ@1X0=AjWDAuCcfqN zvvD70b_G)1)hjp75Z*6D2-zdM67j%TdD&0pz)Y2&`vVJ{U*zhiA`?sf8cQsr6Or?5 zpAzcCB{M~Q+Q9L$An z-3{mBe}^8XeL_^3Ho@IZ5pY_EL+mv4_k2lW*W3yht`k>7o_(!r|F?O zMSgZd1|5NeFVA>#Uj|!iJ}k8ts&RFf0gA(;4LOji2W<@!q_XvZzdYV>HolG&MBWDV zxNU<89*h%rrZ=EJ{pZOdmJPU(0IfTq&pM>faa=WR5(h79k|!|Noq*rZ-;4C$+w z$v!+-NJ^e16wcZWcx!c|VYM+j%V2?4?GbHdfn$i6r~Q;; zhKwg5r1tt(OZ?&h*RLE2MLdbE9z~W<&uDpK+iEi@Mnq!{wz-2K>|2#9#?!owM}qb& zmqvOX2OL-B(@yHe`%|8yGm1l#Kp}*5_g3!Es&T^fJ%^1wU%M4mF}H~)&7R6HQ!IwUVsF~ znG|MLEFL#weAcn_$H&g+}GINN{fT2v( zZHBtG4yf((N^ma~K*MKoDC`TEuxwiU|MWh>$aQ2GY#lytKBQb0%oATA53=E`=dXv8 z0F$4J6JX=>u6+^fHYMo^^@r}y`J-w5+3}L-&-!G4cD^)pe_nZMaDQGriZDXkxj!A- z)B4lC9dWAH`_ngkf69*z?oUAk>#j}hPw&wE$w}`|xs=KMS(EIK6YepLzLYMF!Y(bq z;%T_Fzn2DYg;l_-1$ZR_V2w3%Fo6i# zeZgS~-Wwc@%lveBpcWY3l9UOi>F}b1;hD6-@Qms3@&*LF#YuPt1H;109~cbpk4F&9 z)LV@-gwr8qx)P61gKRjM8_JT}Zvn1$)|G@GE>B%2 z#ez7?a^aR*Oz(5&U`M_-Vo28Y2I*&{?DiU(?lmYzitmitsJ`iESYE-+#Cp`_ddUj+ z%EpUm&K!#iy|d;Lgoqvj#Vzq_^zK=tNl@)5E#>1#JyHlhd}-1m-HX8U{WD?&E<6c3 z)TVa;_g>YvjOQwJxOi{^R2ikeus8X0#$oSpF<#)uy8K$>b|jo^{X%v;FiEIlI?N_? zlXeL6${E#u23SQ6C}?zg(Eu$BplRy9Lth#DycRNsv%Pt26q}pDcF>Av;jP6Ij%5KM zqLBH)!wk<_m!iV$#C<%?e9owMi9~>2t{)Ae-r6oZ%%Th4^`q%Y>*o8ZiHEmwjn=K4 zCr?J}w)+{6_6ZCo#Hsh>gPadjs!$+oI>2rj?gaMs&F0&m zCEUw^1@)@6Ed@EHjGq)ZxIHVUtqUBC9NH|cPLV;&E{kN9g5pakGZgJzHO7 zu)AMkut81(UE4W-jMFXWw=>FU{%nbf47Rz&u!A$$=F3r0JZA?tlgsIzk_dy{;mjnk zuW-8YWDBQfI1LoRCC0NoFM;+G=mG-W1Cl+twUU(-#GuoDR z6zHYx+LpyoODirK(rZl7#<7o(4Vx$Al&od4pd-FU(Ah4~H5!(T&w#5p= zwZs2=DkC`7#Y(K zOU2?zH#xat+RE7JI{YqzCRfm9L}MNP3j@31KXr0po|qcaYXdy$=eQ>DdHO5vOSwGJ zymNALj}yvKTpwI-9ngVq*xQoUe@D{#FD2`LA6fquG0#14^BsXhb>+mYhkeX|1Pii;RN@}%*)tvDJt2m!` z^H#G^bf{zQBGp0~4>XW5K+5n0D?cI$Yd{pjji`=T6_Q|PeF#rHP4r+V&slq~P=%xj zQx)Y%mEvD^C6!`MLWRLvS@}JofXeZCgG35P*=#@!MtTGTR92D(UBn8H+|{=WZHI?6 zG?Q{0#V%Mpm*assJi+jEJ9I9GZ<4v0{CF%aGWW({CD1km>)8_J$Oc z8K?~w39^D3bX;>nV+e6f3d2JBPS+?{J?EF^gberQQYQOlh10;)rRG7RW7<+KQNEt4 zjT1uVhJ(kjt4FmhO9HWYxb(cX<@qnarHyI7<6gn4mK5kzQciRE5OznFz&+4Emrelj zN)7|-BS=AJM($y02av0zNDhlR%vd6$E({xC`5Jll-`}7-%Ol=SMMqsXiO>m}2cr|@ zj!JDzDhs5IaktrDoB`}oN9+>630aue32YL`g@5_}zn*577HVdkTIxlW43==GLvuyLd(iuKg6<@_nsk^}cNMU_+TAJe>}Q=3 zHsd7JR`#E+>%-0aRMqE2`$$`PmDrCBg^b9$b1(?@XhKqQ)s(LH3oxa9B=}ChdyP9H z3e~g_R?(>P$+kq*PEon8&)4e2!YfB(;Z9mYWPJ>U^`hNvqG&}Q3B)JgMS)m5n%Bo` zA@zK=4%+es){I6e({clJ1(-?i4swG~Uyr3M)(F6$%Jx3e4PUil@~gx@w&|Baj0pZ4h3#&LCWRM|a$?s|Fgjb+7|RU;=AGa@Gt>N&#ud zJG%RZoi}M+NxE-*ty-_V?5^_941s+DmfNU(0_{jFO6Pru*I<5 zLQu#t*}C~fG2~4n7#bWL|Mr9%3* zw~)qYjH%=vKSBRDJ5o~#3c1%?!z}`<6(j3Q^iADEg;YUHGKDJWiDIwS2q3-srtX_U zNNCcgKtdlB`>RF(Y3ZA~R|+Aat(*c0y-)0^8Uds`-_#vbL=$Inq|oRcex%T6l@94x z&>%cfD!sxuLH{>9QvXg+u%@rI<`IEaXk>kv8^pfU&toTB(>!CU>{&k#oostY2FXN_ zS}KhRsRI_xR>=ASo8iCey79;~+@)h#h+hGNg?8T+v??T(R)*m{As12xuWw+#M0LwW z80WmSgsI>%>Xr+_8X}&#u%8?PfgP6#0bx#&1t0DtTPg&XC+NnFZ7H;Z86#>LatQ^E ztA*Wk<0_!X3xtfwjPCzq@9bjZxUM@++f+;kbau933qBA53&;flyn!65Z3kA`zjf}d59H@ZQ(B}G5i&;%ncyUd%n~{pDG9L&+K-Y}YNCYL(GHuf_ zWm7UK%Lw7>VGXf`5<9R2%VzKSpL1ttmdg*P3EGFga5yvfYtB9Q>vzvR`}t;5|1h>} z^|{X3R6PZb4CJL%2J+t@qpEE&D+*GQd(G9(rZ$`ZgZ1uO8uI>2!K#-cW8u5*+0?%x za(iY2tM}FQN$9U%qS;iRS=-QT>M3&#&8GGor2H4wH=DZWB{Y=7G($glctdn(&6o#v zHg(i2i`F-rq9u8>60WRL3CD`)kB805$}0|w80Ku>!-ZKc#H@F6ctb_6^H>oR!xJ0A zEp^u1nrY#QWlIcePfYDYn#ZfR&^&k{FN#0kd42Bg#d6M-ZP5tvv(m!9QO;LSvLY>- zs}LTwG?rI`E}kmXUS_ZLe` zWFQO6qmuqa?he$`%RA+^zLGoNWTZw-Zr(k)!n0+-`*T6ADW4n&jFn*NsSGZyhC3+H0b?17@B^ zKTz=T+`z*3`)ZmIo6;Dly`AGUkR6qu`y%2bY&NwB*euz|wOOtkn<+~1tB7(pW#iV> zayIiuJ4}Pe$Cv~t8Mn4pa;l|h(_cfhOP5Tv=j-YaZD4Z8$Cpi4aT~>S>=$OAua)m= zz;|7}4>1dutn?gtE7wM+#!9i~Aq4%KOAtYwh~OU1pf1Q@AeuqrpCQ)$m+(a#t1N5^ zgYUZyAH`4Ay@Kes$u-eMRhi(I56Z(Ga_u(PL;k)lTgAKOd9PgenrrFQMf-gT$ylz9 ziQxN&U$9B!g@zBw^_aPq{_bK(xMj)Ktt8orBlz&viy?7EKb&faeem$xAuQx&TUs5ErD2xx{kTGXsuubOMA=WY9? z_A|p@h{hi&bIp&D`R~15?Ms`Ne<{nSX&$kzzg4w1oRw;0+f79K@mnaPQ?88)0X-iT zP`jDxn`qCzwRX$t|C2jJI(@v|r1r>lKW#hx@mrxLU?h!LqWRC9A2Kuau1BkN9;Gi( zL@$U~|M7fwoPyaA-?OcTLO=fPbLH{jQ8UC}y1BH3PWPGfWJ3E_HIJ5Fx*)Y(|B9kF zd^jVn8qNQYpQ{{SN_nJUy7sN_9vY`Kc6F8hmXpXHVH3OfV53~g%#GzSUh~)n6OZQBucd=iaWS`yg7n224%b%#CS8F=tZ2F znb3H1L=_<%cGU`-7_E%@HK?0~v1yG2V>#A4IgjplC0wG~VC~ zvoA;;4Wd^ZA3BVfn`f*P?f8Nqtbl_w=o}g^9!1dGW*~w(X-8qznKtvnU5`pegW-%y zufG{losD*oc_Qm0^h&B@^{30dS^DLtRQ*)!ACc8HDbQX@R#h4Nj6T(|KAA~eDCt8# zx^D3EMOS`&cOZL`l*q;0X?eI3jG{R(#^TqtzXy*nN zZf$*c>r%FD>gzoXG4;=1uBnOqeuUQ!8v#e{!8N7&_}*jN0cY$fb9FoEXTh8P(LJ*X zI6c-vzZDE)1jzNnSURI<>P7(`2|djPPgCWmP99IqYu(ER3X*Bu<3hysQ+zFWh_0xN z2_Am&zYDNV8*|=XDSkgc&r|EY3Z995721o!2w z5fQzmr$eEq1&I@v%;Fwr9``x3c-})aO=WA9febgUI{7s&-V|R)6irplGLCP3vgU}j zkoz3P1|9h2^Nfd3fc~!Hu<5zhgd7X;r-Ho!-Wa$C|019ZzE3%M)11fn!hMw1G(Yyq zUPN+alM&b)XY@4kqR6~+KshFoQqT0*nk4c|E(j-m^_#3fY*CW-$e6@Ey9s*+?rWPo z+GU8foW+K#gjLRqGB4^(B;9?iy|JjcuA=Sev$DggsUmdR_?Iv zao()vjN+OyausD@n+W|skEyxqZI?ZGk7w#>^?;O%X6o}k&)ac&$>$K{VuI)K^O(S! z*2gglGM{&p*x`(JBMF|}Q(H^>Y?One>j=%qZ#7%u;C!)0B$@g=yjm4J}KKC zM4dz1*^NwkrSxpe17m+l13&kw_aaqZ4LDc@xT?T+I>&2+wo^!t!p!@;UPvpk3DWt{ z`oY!vB%Q-AuvTHe#%NW)q%?7ln2u-EJ}Fq{1t=3g&U^A$i?xnEEa^*G3Yr3NMpUse z(w}`O_2i4vYA23xA=o_0@n>;OzfAgZ>PR44wpvPEIeNV z>XgOnc`RmJZ{bBz7GB$=m6$?lTHDO~ywYK1;Sj7Wc#Cz9t3G;Bl!cc;juHc^QCbGg z`@AS}#@Uhz9rRhdXp#?NyQ=gj<`tcO(}*amCkLyhvck|-5~4YZ&9BTjRELasmBos} zanq_HwDNMj<`TvOG&` zHV1RCJe&7rv8LPk>T{$$Fn2LRqvaUMyO*z{d-=t9zq#@jlKjT;HEM19`JQY{^gjNd zn%Ia($+((QHEoJbX*4B~!0?jAvtZCbFzgoO4PSIFGRtDN3urk9{(mi?zH% zIkF{P>H~4(kXHrdM+vx^!>2DNTf=))a?0PQG;RM(AKeWsb;xWQC%gTIc`kW9N4tb7LTE*id25SC zSkwuphqJEN$VjI#*zd|BpwaT1tQ5LQ^1AmXrPaib{mnN6rD(ZXRtnXGyeP66x^8my zv|6R0B$8J5nr@b}M0m9w){xFAwT&~;Y$oZ9?J!r~2Q$gNW7Pq_?VI++hBEJML#C97 zt2iv{0mV+VVh)hS3#$~^CX>amGrAj_V^8s2!9LcsHlFu+rR`2|GKZI~iFxJ38ncKi+_xMtBrEriU@Q4P)S< z;Zl#~_+pBiR|o|&1XmB^A*&9?92)hKcHA01Ql1|oyn2K?&0~rf8E@TVY)EyU;x>eA zyX&~46wTR(46EY)DUCH8Q7B8tZ)JMD6U&e@ELeuSTJLT#Uo{=9C zI%ns76x?DVas#(!`ddPGK?(5gwKPm_59GWgiwZ?c<9U7nBVSkb^BtL8r(pX22lBhzFSCzvnvOf3nEz%}KQxEZbTvm! zPX*HjevqPH^!6y1q^$#lSA{f}L=ADC{s=!%WK_%>wv^W}uH?lfHHj(95MtA7)1%X0 z`f=}2w)D(SUl59n@Es|M(>aF~5+{!1dx1=jS(%LI!yj~+92Lp0d(#mGKgVBB9tGRT zpFrTf`DGiz$_EK@`a$u^!fM^R6in3TSZz4VxX%R;2_2Wx7BxOy4~67Jxrv0%+vS-A zA>E6KR%hI}ze0A5Qb17TSqu@6OZFq^^|#$Q1iSVP+8 zOBsjND3ArqAS4vl7Auq0WYKDcQMX(c;m@aVXTq`xCTNZ=a0P!|K( zXxUxu>u)tiwqB4SpgXWD!Q;!PFh%KWfVb% zy0I&SfkMnsS!SsIpBeu8nBnvabg()~46#DX4uu(dlu?os%i@L+AGAZ5Ay}d42jjzK z$dHL36ow+XFxYnWgwRBb4}<148D@qPWoD=>GgQA}X2{CI+;9bE$jY)lUKr(sX~BoT zDPD-kL8X0uUg$p%;)YE2P~R22kU62UoG{k%9?6U$VtQ0?;pGr6qYi(P2O+4+gl8u!tAog?b&l5QNcH z;Dw&$g|-W(r^yH|6pR?bg`>YJF4UAjK#Eu4g@p(wO#5<7xbsAa7hbeFF1&DbHD0JJ zFH|6a-a2`q&_(bEahEYNejz7d3y*KZu`8r&|*T14I{V^nf;G& z;qyCwHDKLagf&!}LDE22Uq#%Vy5fv+4ph}2ZFLeH{7 z4-`=NpYx;{gS+1Wn_Pt)>T2XL89|3(S{SB?u4l=iK)^CNycmUs7pj0m&9o8V5HV$& zLwYYDAiT}$Rmh=*hV-*Gyi8_l$jj!cxU$Q!i4o6}Go$QD7Nwe~! zpIw?EXM)dlz+{Mji(o5z;OI7MOL(g)UiM7i% z+BcBY?iR}U+rR>6YO@`)u6M$OaOXE&e&#=x*f6GzPFmwMeyrs~lP__%qE9AVCYVo$ zDL80s3r((1;Z51wXnc&agwL`K;`^hrhX6)_ zCTa&>AxEk|Wsnpl9RoL<*t7pde*Jo;KDe8H;|YFPXvAdM{*ib|z>i(|q8Rl1@T?Ey zA|}8^v#x@`XEt468xzutlV!bl(^M~gZBC=AW;UT3ZBXZ!7NuB#&-1RU(3Q9c)%c=S zjcZ?VHB{mPIk0<$9N0}}*;RxNJB0}JLLoDhEFnu-l+qKm81Y0cRD_FJ@cD+IBrQsj zV>GBTA$XR)khHUHN+S_g3?X5es&r7CbU2#p-x-6RD5-ABn&fqX6F04$@&}V=cE*Uz zNI`x`i-ev2r7*>il28ZAYVsZz&EmuO6V%k6XyD^k0Xx)C4bmE-Ut1=>7mqn#ifwrV zn2Y?Wn0{x=0+Fx9(4%i;d!_)t{QnHWFaO0#_+|OmGm9Bh8*7-%o!EH@4LjRb%%0xA zw6s*(Im(7}bW*Cc^>_q?oeYDplOeOYqhMgU->Ip=?>()+znI_^3k>^1nWU@iC zH=t+?%K%(Jqrcc{PO#aOMYRV55VmhM5T+}@7X>*{hFNjo#8oMnle2FD)hcONekB^F zg@zTFhM|CgU4oQWGo%tMc1%E55g2STjKQP}7WYUQv9kja13e2y6M95bk!kcwAxpYq zU;&4XOTl46y#$L{)3{0em@{W79+)yPxMQBi_{{S2>H9)ChH2PLK*LOB69hBaiCd=Q z464%Ss&cUvE#=baTLZ^RY!>x|H^_=Bg(ctSPv zE7fGKRPl5qG1hXu+@Q#)o9fAt0CZT3S8awb6eENd&cJ`5cY_>gqz1Mf&Qs99w)NU?G&M<~T}_c)#bMJ^ z+{pNj8yKa<4GbZ@1Up<&yE814?hJnnoqIGgp;x_`4dsS40s$pBeYI0U?GQHr!>-`7mqv_nFFe`QslR7Wj zE?#3YiXylk#ph#|(!l6vSh9Fb!S&si&WHRFus4{wljma?a2 z8yGvLp@|$aqXb+<;mC-Dcc>5ozyIP_EI5m{a^rvX@$2oZngxmDrP<(!pv$<=ww?IHDkIMLeB9v z`Yj(}%jqa`HVXE+P;(~0204qGy;V`OS7Dx-UlTPKENW&WQ-R5jC)TK)Bcd^3`dk$@ zC*iXissbfp(i{fORKD3TYW7Oikn_Afkf-Ou;Q8zdusLsGvtNeH(k(N6PHSP!XUeRZ zSK*v6y5r@nnHjUy7bYQcNUR6fzMQmCvqb^uR?Nw#e(@Y|@FluYkdI8-&qv-rHKAj9q zq+Vw7G!de+jH^jm$g_%V{yB@RJwn!@Z7EB# zC&fdhkZe6IL|d;#w7m$?wjM7#`jKe_Z+i=63s|(I3JX|Ih_+^;9q-K3SX-58iv}^n zwoIEf$e9=8zDlNThoeUD?RE2PKg_eCK*F;-@=}iiv~$aVwpAdQzpezd>BB*;E!Zvs zY+H~W@5o8EjJavAJJ2A3+PP{_8#%8NYWoqWowtv@2-MaBwZ{Z%`vSE;w3$Vqwq5~h z7cA8FBT&0DWBwdC7Le_tCEH^{wtXSmJvpM$BSZm(br&kkVIMhtsv6)fh5$Fj7vF!H z92_6$=f;-m9AYoVz94Q3eFbsnms!IG$Cg02Lx!<-A0uK7TL@Xhei-Y1lQig{=&`_U z`O!cvd^@+yGPc$31+C92wh*z3r3HJ(VaZY8_8XyG1#ah7w2Gz7*&tR{2HkCk1JhW& zBH)f%#7_PitzwVH2KsKdR1o-GKn`@qSqOIs(H-z>8Wh25Xq@!yS|F$;oF5XU1D z8ub$ek)wNlo1hRRcwp_vGE_JHhvVKkw4~ z&_fL`Xg31~#PGm5E7Z2@#z88|FPhEY%CD@#ZTxX!le42{{!f(OgQff)>y+QB-pi|! zmCb{qTP+G~dP07e8FIFeW&Fm=>0a>dFsBD`qX(gM9~X=>8C|0{zh4%sB^rSS z;j_=x(Y$=N!$(n>?5?_I*vaP_qIBVtXW&X4BqVrm-=EK`*KRe%k?^Eb$nYq-M^(C9 zU?f9dqp2wVS0PBpSvU4m0U>KC?2;BOcN0d|ZbF5?UPZMWscGU!?I;o%`T9$D3Sfmn zbt#O?EBLLEkfMOV_sEGG78y-9hnVb2xC@CNj=-plANnIy*|DV~qIhEneF0TO%(xCP z0DwbF)LnaUR8^W!(%qzCg10jhx7aFnrM94o+EB~PWGr=JZ4sbXcZS~K6-kC5IBG=2 zC#KXYqtTmAay@j*){<14VobR6Vo!@uP?>v5S7m|MC+s^*NE+uN%Nz`0onxg#yPcFkm z{W}EhN+cSjGbydI?I-zsT?F^EM_L@4>ZPY-<(86lrNefXoS6OPZY*1RtwFCf{5$0A z(4*QyoNN||AW#06+QK0s#YrkHqAl!4p8TNYC!Qht^cf3D{`6KmNiO;EK?i<3VT!0E z$9EXbParv7@XzK%QR2tH^HMr~Jdh`%I8ikC19-NetKc~JZt#FsT|OIma`t{ZLmqlU zGUPb8xhd*4iS%pY$9-GWRifL!EKi<#f%&$ujV5oHgeFhBxZF;YPqx539X;N9ZS=TL z(c`5JYK#B$Gmu{kup>*}kcK5sT4=t= zvc|k9VUfAXn5SdO6B%-(^yC8bI31pPZF&8Ct_)Kp${p63rzgsrPkhaY@)|T(WjpcY zVa1b&Z9I9yBs_V;e3N8nP90|_?WbC{Ab}_68a6*APj2DI6=jZW&08_+Tf8&4jdoF@-&G!%*HED9mk|&VliKKWUX+8-_USFna*wlD(vShKzlgpYG=gHN!4ox*S zo?PwgP~1wj?(pP1xn)NOX4%aaI{viC%9BsNn}aX>rD*bPiYDJ4r^#hilk|9lq{pN2 zN!j!ja#A)`v1?+<_fCx^Hz#C=)r9OVsV8J#B}?8m$tDhV?mRV1o@Nt=rWzYdE_Y}s zDQgOdOY-94prB}kgLrha_bk-%P`*B zHj0=6NuIP(gq0+>Z5ok&lZfr{O(N_hc?fMw;K?2Kim>qHi>-S@Soe%DiE_1HM5m;^ zB~c!_nUb1}D|gy1!sN;)-!9^7K$W*4Ro*@+RjvqfU-QlEAM08Y*mAhG6CIIQ^JYiZ ze7kk;hygagM0RCzpJ_fzBVWAF1QKgJKRYF3PHQmIu;w35#+vt`OO;VM+lX__#gwc$ zPKx|e%sIZbjA(5pxl7-XEczBjo#P#o^5$xS+CZE@SG0K|%9nW^6;7Bz`vJkz`Wo$Gl#}cO#k|T7ljf!ugr%3G>d}&}x1( zJf9LNI|sj2RI54A;LY-lS5&9Cvqt^`ca~g1xyx!e*~zcTeH%Yfn?D9W?dA!gJVhP9 zSX=W4ZDAixRG%p)s#B`N3j}E}3Hs2&=o4OLIX;PZ7$o7u+k%T4&LCf)jocfpiT~EF zI@tV!?YjMvkEfffnarJG+rAH>TjS^{hdI>1P|CT?MdlFswuA}pPV<=GQllJ}dCM~T z%TW$#10^a)I+7gHe_?$ki#czhJ~W$m-}e=fJtTYC}yW~aln`ol%pGD1GCODWu~nmr-_)ZAy!%r zad2Ar;`nZfJK|kyNnHafcnC5$<%ZM5f1hS~vCx9}H;+WvgiY}rmm*|aYUm-_EMGL> zql;DQ_;M3FPeWv6O}nmPc+c(`ZfF< zr|jcb*55-ltn>>WQw%YVlpv;PSQ)mVyuCL6Jp4BTze}7cIfvJ_@}>}_wD&$v9(mG@ zcgv2dc@pEs(Iq;_pGRKhSWA}Z!#)ADuadG zIH!->$L3Zzj_W&yip<^ct{xZFIuA7;HfLkj3ZP((H(EV&cJelT@xbZEhaJ|%Ay^MWx`)5 zq#Tf>QA(uz$O$RWD2&wR55aRhw776Tj(z@_w(uPq=o~_c@Ca_2bDg$u(DIY;cP=vg zorV59?S-aOmJ!e=H#;m7O42tG0WS-sJopRLD9MpRDZBqgp0QBM!}2uttAFK#lH7F^6*xt!!w3J%E|FlBgn zj_|{MvsQ}YJi1|JEH}b;IKBS*-|;nP`&KATaBjH|eYWZjaSk`RpB5YWA?iwBCOwv+ zJKai><+jIZ*K!O}-tUuR37@I^92aWIvk10C=4X%!0N$W`>95o+pN_9_!)x??;0w8b z@0OcrXAC< zy3fn~6scZIk_33(D9>l{R_>`ZWAN4{xRsR+dP&*fkC}Lcd%$0&qZ}`0g3^~EVE}wQ zhnLfOGT?L9tm-AbnN_@iQTM@d?9)dRWoS|>(2!sN>OVZ1@Og7MkyiD2@|5g@V$pK3mTjk5U`oq?WnEY( zXQNWb$?@^+k-3}zDrcbNH6-QZ5~ZZzIJWo^Sqbc#I{5SnoC8L}BR-|Clk^FrmQQ%u z`U#&rtVA^~4zk6Bl?mTNC8WDeC7!fdlxcnciw|1_d$8{9vs43_MTx>aVY#Kx%>7dE z*-6NUG^!1`HX~OK{`h7dmJ0H6OP`tj^1MWzACs?ilK(N}7*uX}le~LS-t8m?Bo(Mj zJ*Tm-cbmdcNr-K_HJtxN zmIbGOe!oRODvs9DB?zLGsuW8}v4j*m#>bwiImV6mn~u@WvC~0RDN$vrm&SHf`OEPg zIgrEpQ*nPmsy1z&K0VEnr>|^GC^V~IaE@MlANTb{J~$NTqLRI!r$V@Nun&C_w5Car@EXIdQO>H94DSt%Sus%o*67E5TcgKST7 z5GVgw70bIX-ejJaE{He@ZJ{wa^Uw{DGw7uuB;_`8oG6UrMoCzI!GiU=73+iLHmr|_ z5lqI`?of>kqz%%(|1s zy`}`e_T9^kUhIEF@-h&0bBr2nG8#2r`pb>c+!`OZHbw7xyEIsyJ6R%3>4Tj`x4sx`YowPrVnWY1JLsMgvI zTD7K^WYF&7VyUHW(8qUQy*k=|+@0`w_HIyZLN};3-VJh;P%|6ZB(w&f2Y+)t^m%aP zqa(8$L~?7Y8&qrU2GQri`G@NBup5+pw?&mriLY58?U$Br5DB!gFq?WBoRTnYGq#5GG)DgK90^pjtxD!k?*bkWJ-HVF}iK z(t=~zx1>+FVEKdxGc2EQ>Mn~qoN9ME2*R1z_%^b8Y2W{x_5J!?R0c}5P2V?5_IWss zm#k^52fSLl_i##l`p-*T7s(Eilrw9j)egX|UXqx*PeKqGGQPp0Jf{@m;!qryg;Rsy zruba?MDDUCQorHLYt)r)ut4p6g4(%khCvA#GJQ_Ugj$Q3U7k0cs9kFQZD#Pm6F0@y zd>ZHA@Rxb9;&BTPhd+Hgc65w?f)h{d-Ye<&xaZGSC9HSI5dq(-g5yS@v2d?e{V6y) zZsSvZ8V>GQV+5*)bJUJz{%r-vwbuf(3Zt8|#fVYSKI}09?c$uM^yc>%{%zvDf&+zp zn|<1@EWN8LdeXbtSQ?5AyN$9?tVkd8JpMbqH>;q_sN8D!+lD>D-&Sy3>{#%9+#>C) zQRX=;8hv=;k7*q}VnFM7$JH&0N1~%%V_lt5QB~Oe?6mxDF*@uPWxZQZhvjfaA0<9vjRUgmNYFgML(h**KvjJ<`*r+pc;@qC8C4S#m7dq}KmDX8+`-!+kF<_n_#S-}ERK-Hqr%?` zX6E;49S5Rg*_nZsi9nMU#8Cj@ZxMkuW9iJp@LjZrSergNTYKS|D@Y9=7RCJqU4;Xi zv#F~p4vOMqbe1L02I#$9k_@f<^nV7w6CT+W{{kUcgISLk@T`#CS0bcyT`Z*$uAqaqj@jL~)x~cNV?-34#m)i&qs` zv@%$<3{Mk*DpA>}b@=PFj!UjlZBJ%&!fW`qo<^|IzWlakKMI$=d!8k;;{XaoOJ6ORG(P~0O6G229Ktz*P zd(ec46$BAY>+b}RkPz{sHAxV0)0#=g4=2NmZ@VR4OoxN$nJfSd{Q391HpR0M+S~vg z(?j>n&6p~DTn`V<;3b0#4(Q$P1RVKqz1M5vi07LJBCjWbNRIM%3zR?}Om~d}mdK2V z#xceHm10VH8ccca8-gi6!iER5jc_K-bQ4hAc0f@X{U-nx!N7vnDYFug#cJH25@8}H z!u(A#!o*f4A}<@fybOREI2wo<&2w=EZV)GI zYt{cVjdJdeHPD{WUMrp@==Z|z%`?QPu^T6K410}w{2#g)z5GOg__lvfzhULDw){z~jaGxaaZ1SUjQmWB^XT9{!e+6GwcbpClF) z4;CDN!ZVh6n&4kV)R80mk7*rI#G@04N4s&Jr$O`e0hMOtcN;;RW-~lPoX;OIc5Wa) z8-ypsd9CB3t4CCvMEvOi{OJ)RfIlOdd=tFzB-|#k?lj)SDAx}+^$WVmb)KQ>Ge@Y3 zK|PAUfzWd2(nPzymEUjFQ-Z}KP!r*1`85|3Q}mBy(v4_);DSWgMDP@Ji)(=G`ULFi zj>c|qbz2~b=D0&%ippa~5T}U(22~*lkU@fG?HKhq1zFH!e4}$FPK^{5F@t7xLoZva z`3=uYi&oP~5DUaLDrjlHwrkcReQy=7^N*hL0v3zC z2*JCT(wiMCVEs}F!w07h!`*fm-p#h`yqRppll(&xlF5D%;+&;f!UoOlWP@Gjv|Zjs zdQ_SGkryCGMDu&VwC1ZM9}24>3Sy>^qy!PqtOA>tm5j%R1m?5PQw(8fil z1*r+jm4wPb(25;FRUIpdvD(uF_=HsqZ_>vg#QYjzrXm6`Wb9l{McYzv6q*U=HhV(L zGew`Mc&o4?B0Ia#9Os)VTMNfj06HQny9%$U4)8@$*+$n~^4dPS=91Ui>6%+!+fUcr z^4bo%=8@M9(=|G~cuSyD2CiEw`pr%=hp7h(o^3PfXr zia`WoaK{Y&b9^#K-+P@wE+iPw*d~Tu0M<&Jr2!rF-CViQ`Xan5t^@BOXp6oaV@IdIa9BkAZQoqj6kxTwOV+}N=kj}Gd_69XP<-v#oTu%{HC6{>+MX3zSg%(H zkHP)Wl81lCs5Sq-s2Bm)#Wwv>V>fvsAvf{^Z%FpgD7(H1{zb&k7clzBW?_14)s0CZDsHiPC4AkGsL9hw?udAWK*bfy0I=|4-=9bJj1jA3b%?&Y71R~Jo z8i64A(@fE$f*|+5ASSlLrR+B;;K4+J3s`me+RB zHIKY@n6A-T-z|O!e{WLw3-p^kxMtad<0#lnQ7}k_>29WwN2LUfx&LMF>VuoQvb&`B zEI(}FD?keZTp+~RO`>$R9kbK8iWAr%#}1Jr*^y1k%4D;tx;t&s0D895RIJUjh#$Aw zO}9h4*-mFVO}Cq7vg2*1v4J$$GOcBs$>NV0umeeqLlYT!HzskgY_xXIx%cVA27|*c zoBXlE$NRqbzVrLt^E>Ch`<|4aB25h{i{^m5^v!gDjlG|-68hYH!3;7gu*jm>+U$bd z?^%N;XpbCj0Qm!rEETyng69HpECq2y33Q=2f=HI;z`9B4$Wz{Yg85(`rZjz1uf_98 z^EF~g>!UZHQ-nUBLKoPXagE78mpu5-!fKR2OwU&a((%hmf~y$mHUn%se3QoLFLyORoNp09u}{!agHo&NpD zP3j+Dn#%+*H7xfz3L!LRhsf0sG?3}x0wu&&g8XDO^cspNeIXR_dpD(sL%&nR--06U z;p3-^>LC!3Tw|E>RtqCk`>1$hbrgEJA+`2Fs==H11y;zv%~VMLVhUMbyig&1#n*YD z!{?)TOv<<^I6#`PYj9=!8T+MsR6o@*$tHyK?=#R|DoeJ0)f4a1>5t($2`p(*?tsn@-gu~c9)Y^&L4!9=118m(fY#Oqpcy65 z0H`vwWhFGjHieFIdd_KCgc$u;`*nxQ=!EhCp<7<(wO^Vy`j0is3Cc``!|f2UFmiB0 zK+{yGnY{20dc-jG!~v}!&H}PICXojWU%2R+zYmti_rFs3z6xvo7Xe{}x9RWnJfWYv z0n+XFD_w?6lnH5HjRWILLU>~e;r1lLX>55Zi=yjEpmXS4x^w7V3|oh(_W4w+LtAu! z>uK8gxg-03naIksta}5viz0hXe8*Gxj`IE+zGwh|@ldyZUQC;eXReDkoS&z3iDl>_ zHPFFLP9yME?N~C7T^a+vmSg~4ok4+2jX)}hzbz_|gH8N56Z3ebj1S3s`aNTt0IP;d1{(RE9Q902NeqU0(CepfF&o}VA zSQbQQUX$vzkTx%Hq6PvCuLYJ8Q~<$6l}YK!!>nr^n+j$sRUPA`HJkhXQ2sKTH-WS2 z0^q5xib^Gh100|pGmlD_JhyH^RO&HNxEY6;v_7O)oschDaBR5823gVwjtzSfFHK#6 z+gUs)82l_j!O8if!p=BUs5&PPIVGULc`+y4Y=oGvMDEJO zIifY!;6U0RSh3TGQ~0+r<1&BXjN+kx)ThUA9oFLry}b{3&}r)fKz$KCP~fyrbsK!@ z9+9-KQDqCTm9*Cxl!#cWdL$L86!)8P7ir%JdsW$#MB7JYfckMGTnsR~bHE*#VQEsr z3~Dp_0V9s*dM6m(?b)F%>uunIKw<+Hz+o|@&1h z^hZbZ2G0L#yahuN@98Aof`<1y`h{Z}IG(ix>@kqf7`}K^B+(49DBB*(kyd!)siXm+d# zPm71b9U~$+-XRQ9?_@YG;sfRxN$3NgC}~Dr7I8?-tVAAPHKZjFhZ}}M8!k3LUCpb=@xJhkc&HZ~FgcFT;z)}#A)KNCUVj9N5xTFdFQbH7 z4)aRSK*7okzgn^Txri3x*QpUl0}e&~*Tqh| zbA%9FT@tjcxin}$UK(f%@aj$B)v*Atf7RTz1t&`)ZprcIC7{P)Bh@{hkh}3)VBH#? zpO6)~0Gp3I1A*nP9_{D#c8ECK$1#NtjF_%X&A0smAj|Kg=f>!2_mg|mC~Gxk+GPRa zzsTsOdzOMY!&@1@6CgANFGFuh0e*=mXsTmKnav{yhWL9BmDM<7&HgbUeA@Og2qtO$ zLweuq4BaiSGjwH$j`!%*Ky=~$3#5Gyju!bWO)H}lOLiiYJhnw|IU=wDg8%VR9SX`Uw+sImZg356; zr6*23=fHSMhXLhy3^^j35LM-?ELyiYhElP5&3uY1{jzq=|6C;iphy(YjJx~7}m@|(ynn-?j_GmXH-874srIAP}k!ECK zriAW=jCwDFQLC25D8?sD?vy!wT@IT7x!c<*>Kf-h{jyHCH|Gd0*q*Awf#YxCo7bk* z{nJzoHA5Ti5&xHJvqF33VnWERx1ZiWO2xx?poU$t`1`C9b%~&h>I%{Zy}~V0msxd7 zu#pEj9ckMNxM#nljAr9wVL{zyj%>p(8tA;8lJ1)2nF@PU2_HF0pU`pG`%!O1vw$al|o?mf^IqQb;FVma8gA=F8Bts)7UZG9@mMzj+9q zF06c?y^JVJ&=J2^h(B94yLF>Z_ucHH_)>msPvh(gTYB@!#@UAZ)0>rzvzx2V6-fK3y=<-39Jt8JX!{u)088XUU~3V0*Ex$-E!L=KnL>2>=dSlPtdBtJkM7G=c9 zKF=rg&~S~n(+mehIgf^4vUT>yX}7k^C_fLolu;pMGK8lM+Nl9wB^@R$Z__R~yPC%P z=L!cx;>M}VfJith1Uuxl!L#!1?41`OQaCVmnZC;p#RTfb=GSe8lQzV%V2jRS6Y$|Z zI}^_PcT9EtW4m{0)d4MWG2h-0v`Sexy9qMoy3KP1!T+AgGBa)>tJoY|wjyXNg&p|+ zi$8+1UWR|KW&F$BUUWRf2ZTKOr%=An-tAv^%*WRH{N|&7rtLHG8d6PI=#K+t92)a) zPy!~M-*o)Q^E&gfT+HuRA9wA6_0=rbKVJVhtZ#tz!j9m8e+vy*=+BFa+qJ<9owN!p6z;be+F(6@Y zll?^wll+&B04elG*%uPu!FC_RV^gC-*QztsN>pF9{!E1{N}w3vv@#Me#*_CJX(!_^ z_(@7sQh`?Ny7N2cUwHb%c^B^M+g;qc@uBeWF>k8g48o`aP z(@j9PuOKZGU<|X%U0rxKim&>Twhn>)nfeeK00zJY3_=4u(16|0f*RUD>2%xNv|*rarNE?Zb!e zG_t#Jpl0e4I}OSttq&$ITBJWJ;{}xv;8g@(!RPjD#qhsA7|M|lqC*kHSs z(MW%EjLo4s(|-}q!%z8*Jr z_CdWP>0_1(8n$)Pe$YYiym|J)I-{+Z4#zgzJL^{2Pt*}xw{|jpyFV7ovz^r10!dxW z0KOIOzQ_?L2U^e)j`-M5@J%k$O8c~YpAwh${ZYt*Lj@rd2Iu`BfmM?>^;p5Is&hg% zqGjd1_?*%i4~Z*7mSwSTgv7&0VS8MDTnSjkeU<0|pd3qxy((r3@~>~0!yg$IFLOh( zOjee5t#DR23*9K)he*?FXq9g2egeYQbB&$&;_Z<^=ac5CQJgeqREhxjjVz(GhAiK; z_tmarj5=@^uvF;j|46G|nKtizPla|m6H3@XT24V@>|vrfaiZM7)RcA_Y3o*|fp9UX zMj11J0de!dIoJeyf-y7EU$Hp)mvvX8KdQSP`v0T5HR$hs1{xgu4ryC`^jj=s==Cqx zf`?w{X0m~vvUk^R0`sA@&~{0{oK|w+eFHb$36?jUL8Eo<%g->FeTY0b1T|ncJ@7iu z^OSlKKq+9rDbGCyAfoS}ee~g-q{VrzF`NeRJbsm9BD8&-fFoaHMu6mC425}shNq^K zc-B4(bA?TR!d!(_B26w_iyQad&D>4_^K%$qtV1toEgVStCGeG#Q&TjK`4NzFyA`W| zXc~Mq6pgR=1>&K{)(Q5Ry;*cd4aAF_=W6eOD#?LgU`Dq?w1;c&zx%{J0%`3~c?ouo zzY<93Wr7W>TXt-E4s3Z_l?B{ZDFlV&g%&+?pH1LCK^K)jh8{4%zN@t}Auk92MA}Y5 zQ!m}+NrWC0W3MTJah?3r-8C$J&_>^Uw8V1s3Ko2O*az{EPc5;G{fjQ?Eq{orpR9N6 z5aVr$g?cU={Z;B35wB5Zq}r@wXpTD~a~SUMo%-74p)!bfW(GgP+zP`d?0va?KDEjc zEA}bn79*5~g(@>5lptPRLhg&{>$P~P+ozU;8782QQO_h!2`IS-%W$bxAlh-Y{7y)E z+-g+;t+H0CHJj)|A|(|rcl1A}FdhICmT#(nV`_H1TsAdc&iFMjrq1}CC!M`h&Q0B%q@$%$;aPic?Ks_PQXS(Enw5MB#CX)u(5v@v z3pz~x`$#J?N%Gmho+p15hz_AL-EWQ==>4FBw#Z9`owiQ@?M05s+7=21ATLWA1a39K1jlV=zl2>uU7P6EdnJ*2fdTdmrJiIRUKM2%=- zs&msFpa82}kSRnre2V36;syFQqaoycrQWPVy@Vvo44nfNCF`ijD%r%{Po$)PpcU$% zBb+VC4|Y6f9Ln0cS!brXXN6!-a_imcp_b_Nw>Ox@lbppvB157a+e7r=OQz zp9F-x;CTBV*dKin_#3oYq*NGw-qK$|$U<9Sw|u);a6ou3u*VVfBJ2JC{{j5l*#cgC z0ETVA3#&g!mo=P%YeBXjY+Y6fsMq^qFHl9NU1uFjXB|gp9ZzSSKxdsr^AR571D$R* zoo)`DZZ4f}9-VGJoo)e;bExY=I_qLO>ry)FRN~VBz;Q#bYe@irLrcwl4R}=5wdhRd zBn&WcCNOH$s42x7JKQTev=RqxewZX62{Q>Z6AB4>t5Zs?qRc>SGl6iDz;QDHs|M{= z+WXqR*LQDkwY3_4l*|NW5>QM6)eIzIt)Zkaz{tF{);=?tB+z@```-7xryrAZ z_TO21@3q%nYpjT2ZnlaIO0HOO+1hT2Qyj``}=r@v$=Can>aZR>Gu*ur1HCdZ%^2gL9zO&|_CXrf4 zsrb&C>yl+Xlv+n+8^8guj^j?*GKi5ZqB|r9Q9|1-nbSG2ar_^prJ(f&uqf~moyvjR;0lV-B z!g?z|_L^|M=AtuJ?+t4-@PC?83e{c84CswZd905Pj)aNx4{PCzFOd_l#H}CKm9Fjv zq=vLtrhgeHyx+r-+#omiQ8adx-!Wuvy-BXmfwdsl!xl3S7LVM5L3ZT*zemRV0HK?p znQ)$6W@rj}r{HFQXN7u=%VA%mQC|5-qoFS=KmQ1$<3KNR=pDmI&Hzy0i!P;v+{m7u z=A!a+B&x@Vz!Q(V)&8++z01w4h|Zj@+AZgm0;nq&>CqhOC>^`u+FLqHlzJ$tfx7-?1JOgKfCOS9O{Q^;8_oH5C+^nZvbLhG|Y;0u)%3effMu2jHVC>`BN zKG^q9YFg$#Jc?FXFG%p|WPfbmchubJ`@X9_36>zRg5jnv-wkWoE!wA)v$& z8exLHQ(3)Wy-#d1;e2;_?`o(QP@N!d(Gh_4X;M5*+=4Q-N2;H0^xizS1zsXY+;U7q z_|o(q(x4il>4exA!b%wM0eAKarS=MWMQ(kYShMo!AlrIpN*7JQb6(8yPL?j_h)pe! zccB=$=S^bMcK%V=2g$k`d2xr{>N0vW@ci2MsMz*VoPmXNIff9cyt8nB#Geyki?Yl4*!1&+)joD9>&1 zJ-|zANdZj-pptYc4a7YnKUCf7sPbJm+N_5yg4VWT;RDw?AJvlzP48lJVSs1py4+&h zex#=;u{hSi9K1RC%eW;7iwG^;2z!cw5@hiB(PH}t0bvnogYXn6q&`J0y_KvbAA!8| zy*SZ{4_L?dgKNVC8QZl4ztATy7uYU4JpxlvkR=yn%LO^|ay{E+fK>A?JyC~TxnM2| z;;(k-Y*BgnY_@A5t^h&Whni2hV7}b2gN9}KTD%%n#*5xE3-F?df+hH4$Dd{RQ-wb( z@#i7@c?5q}R8O?ZD;=7wQ zf5HbGuKFXiPWEFc#ct)~M zRf+dNGYVdI<=5ZGfXUe^j?25w(C;v<{E}I0J0dl0P?Zj4)+E5mUc||gQdHfAON1+U z{`=ELiZYG1h`>yGtnOLszHjMLG?H! z{yj}^>rbdoj`HCNjb@65)yOY!&q%4bUUv|@Mp+Hf?N&=i!*61 z61;{$3yzLM`R(_Si^F7Vk>IzR_=M6_Mxq{s7;^7N{n&|AeJ%ZbKafOj~1kHkoV-^sA<#NV8*%)5sguAFq6JaXw^D3t{t0ahA>YHm z@{>G)G~EHr9lX5csIV&<;mi0M&FW39FKXaz)?wn35o255((on45xDi`MC)=3t_R%7 zeLqN^hzYQ_N7H;CTZlD5Q3r2Qhk1wT%J>( z%@J%(7RWbi5kG2IO2zpKW^eqQ73bR%$UK|pK49s!ba||mv)1KWf)uagIV2ZcN^QrD zs=xqLK&!ta*BRG}ZI!^3hJak0v;@ONM804_sSJXk8NWXpFa#l~PQ$h+4nA^6(`w|9%}CI=_{-|I!-X_w9S$SbF;^;ny+Qr%Gy$9uyiIp|(4m&}$+a^;=e z9ALEJxz}zG2Ok=IdCKR+cJem6_wohMdK`(&Br25mB2Jcf1>275Ja@bYSd06SKKSwj zJ2__BR`a1q!^j%#NRc#Rri1+J2DxX^?JD^=k$NWg;8CY^*xE`nl~3@pRz6)Jv0W%s4_BJ`=4gM4z4$Ads+nTI02o^cxNLt)o$0!F z*(7QAYlK=~lj=)#zMRBZO$l%EsvA1ng3tj}v;R@6QHNS=TmTc4=mKmdejP4Q+`g@? zxRr}74|C5v59{!l=|I9GYfsMxX`GbgFcosiJhtT*T#{&+3K^v`y`GNaX%|mr*@8#_zskhKM$0T`s4j!xQpgEsP)TkF{@c~9h9(lVEp!(~8OWLYJV?KajynYBCAit$)jD{&T`-|NDm1&LZ-nfa8opHJRo*767) z;xv%P$u%nZNl)80Eyvooay5ocv&sz7j#C-~_ zqx8pe0w!!F$ga>bCq93Kc5!i>?nCPj>L4;-Z%BTeuwyH+odu|9x`NIWZ7{_~uL<_p zPHMi>bJTByf3cyP6Tr<#&3qIxA4P3^pv>rCWicc|cE=j6OZoS&X*J~PW_HFr+L__v zCA8$)buVeR;2xQ|leXeuUh^?pnd|u>jtwxl9JuHN{&IXm&{-qi_y;ZMH{MM$#LC52 zJo2}%(6eE&N1np$1|&UGRKji?x(>!FJzukFsEXx7p(UkIq4df)jNh49+2N9Tv={k&y-J2fN?x9%;U2{cYhb$Uy5zg3!oY-XiK4 zRd-snqKNVm_`PK6j#an9PI+^Nu@U}O-j-qfF+AU&onchq-|Sm5jLYHQ&@CCpYuJ}j zykOj}pmT5pz#d@5bSprY^7Pr3)8%VRnEXvBs(u z<1blBoJUD}7HGNKuy<-xZ~dfzFar;-q&*7>9d3iPn_0sWE)SX;mLYk%um_vZr^CRG ztDFU<>L2htVC!mf(PbcZn^2WeW$A@38O65SfTUeG+oM5VKfW1#mwF2D9EMIk{y^0Y^6eW z4$IYN;yu{d8K}||Wk-81={nqY-U>B<&OPRfR==|07p!%(?Os+~h0Wpt;InvE&02V- zIf~4fi3xjqqCJ;&2kg+kQ_nV2nX*%|VK+&CT3b|W8_`8&zsc&4iQBXk2iE9eH;`uO zh9pmG)Qlbfxzt)I_o1z1Kf#GaH{~|1`04={yGO2$v7am>UBuqibPn!!nfqi)@<@3a z?|qgNP4W79JH)ohII_@>MRfBE8uwMORva0-1NxWjSea24eo|!pxbFQ`mS7D~EEO(t zeLn-^4lDB*Ovg(X>Z@M55VzWn`Nz#YMYp$|(H(#(#3%}u6RaEk$K&<+LsLiZuQC2t zKter10v_fxL0ML5TuHvzPasRt@ z6cU3YKA<^H$zJ%HB?xWbydybV%(R)wSWPxHN*hU_#(7HLI!#f9531#K8FpKcbkjo=fNi{g`sl~d6e zHh>RjlC_7EwUuP;Q_0$cRNHbMpZldtg1GH4UWm6i7CN0)5ST{?&qI2Z-P-|$pD=MB zcw-5=&btw!RS4>LvAG`@#axX2_XG4Lw+)NAXW_38vX_?uKvjQ%e<3JaX2g_!G54>S zjZW`QMa}LIbI)NS^ly3fDK+tcn2Yb|OtSpZL7r&zVI%0Mk8hc|@b?|wd}cmE_QV`? zamP3=CD{mQ4gxwG0nPm{0D3jh#y~y}$ngMnOaSsgDu4zR>eV=WOXnhx^AO1S2;>3; zG9SCJ@c-$Mt~REEjMM(aN(8qQ!Civj+7aAk2yWH?$(UXZt}%W2dk}V{jHy~Nb2Z+w znV&6%ACiJOi^Qff5Y?=I6$5zhqZHPgKg2#DvM$9%Q-X`-2J8aj%XjtvUvwdt@K*|F zNkRQ$vFX8tLXp!a>v3^g4w*fIjMj1=`8ScV?1kgHUR|&3Jj0GA9u?+{n!9}JN0NDwQO4NZm&w}At94-IfF`!s`BW=@Bw1yl`#)Gs3rOQAP-rxZvCI?FNfgi;} zU!;}DeuFNqi_88&;8Vgjyf{#U@;w<9uR|*-Vpn!vJj1-J8XMdzB25?0d8i%D2f)}Y8juf1UREYhG$r}*=Yp%$JQSawD9r8k>xSpSuEu|qjmNN46l$C(nVILXv<8h zJ+-zh7KcsGKO#2eUKxWYzy&Tv2lfL2Lj(TpfDMUZy#_Rd@((w~#jP1jvo zF#~7qGyszc@HwM))YoPFB^7ltM^UF=#hBMfmoq}wyBvsxhSGo!>C>G6q}H8K(M7Hv z+>w}%oBkfY-1ML0%YE0xm;0`YFMZ?i1-K<(lMeXj6S7QBoNmNZ+Xqzfj}Xd?#~1iS z0%iKerc2{crhFXAaAYYAEO>!CeGtm{4GEN)k0`TvJi?qnXCXh@jgG?^KsgX}BEl5< zyb;mn3$tHQ5#~;u_A_^u8BnQprw!0$80Jxw=Z!^|@%#?@C`r3Hx3hH!HPMqOxp7@3&eNd_lI430lmDO~~%rv@oi95@^&O2u1gC^6`oCc(hu3kjws zU!UM!@(l_0CEu7}Rq{=Y^D={p+I`8|{mI(LlC`^&wcq2lZS>NK$od;R{;M{jDKfH< zoL?oT8xY&>j`vU+PtdC7ki?q1i4_}@pEe=iFeYC&AwN1MUzm_TJSIPVLcS8mAVo;; zj82ofJ?X{VWgL@1P^P{kloxxr047FGFH%R+|!tFd^lfuoc z4;wg!m0;|u4vD#6!n6MrR)Qg{x&Z$Ui@CUu`3G@pgvC>Z8Skr^xR`wJprvRqVteOA z^=@X{&C1tWLv@o_xz`#3VJegqeJepgiP(ZCs$XNa*T$DxqlNs0>%eLy5BMsN1@&OsDx2? z5vS@M8i=cP5h!u0tcEhrL4=}{B$cueZJ9v}m2ZgmLvmMt~ zgTRXM2eXW#ou&ro?QH*2x ztkoB*JHTwGpe`LJlpxL_jAEUeTyB`5EqsQGt-cY2 zFUpoyaRfC1hy-6}-9Kw>X8?5dtE_Ce038)N#ck-{e>zAz&2BuAy^4&TIB#^ZyMb}Q zv+8s*kF2zu$ZK8z->zTfw!}x}Pu7x;r>!4IPa8D8d8~CFZY<4nah%z+*cUsRja0Bq zJ8Rg6(8ya+foFFpy`PZ=RV-=Z%nrSGAASOHTtZQ^Wc5HL4Re+lptn zkRZ?rq*n(MJHY}Xp-&}~M`i)or60}K!)7TqzMGEl7tKa*qAkBkCx4(#4`diCl}Qib z6vnJ!aof)zJ#T*_X}Orr(iJX3mnl+SZ#@JLl^*#y)PX9MsG465rP)l>@Xp5L<*gFU zeo-l*uJk+|h;PPf@{g9t`#SMqUpMMw?!t=Pbm}=|109v|UKN5{)3J%!sB}H8PsbB~ zsa2Cypo#%`%z1#=&RR(g#MOGj;#8epUTv=TIy=)<+7;82$u7Pv5YSx*3EBj>9+`2Y zB^6>%oIX1aa1Ub~7_Jj+061o!Z_aRG^j5TK6qgf1en*G0IS>7GTR{<)zF%+hJ#D zXE3vaj1y;-i0xsZrD02)wdQJ3H@(NG)kJPZl{lKrp-MEBe^vV~6ijIUW@evRrqA~`DDd6{6`vyQ8>kIKZ4#@D%Zux zZx%nWpZF@5GHa%mtcq`fzj(Wu>P(wZ7vIkz=lY;je2c48M zhDM{Ryv3H6xUR_-<@TGXXwu{0i_*q~{#+gZHlYw&PDKwG&BuJR#P+4Nta(1J6Zd>` zCz&e-gv~hV0`IHT75B(3h_P%Zx8^d6Z|WUxmlFCgiByM(=IT`ilpYmO%~CzUzRVJ| z#7UvLc&vSdP{3OHlA178Mc!_&W%={XJ%o4x!&c;K{DU!clcVuQ8|03@FC`?;s*~m~fEQIxtbRD`3@vt($^VI-1 zn&}*o_T>{|6ks8=e(Pis>J)k|0;lrQg?*)o5e%3*n!4(5O72HcI}QF73X7x;eN)%Q zFK}7#;6fUw<1m3-!hJuCbG_@ne3JyB%qL#5TfOyJ?_Go`N#01(hVg z)|rs4W6c6`H#nme&=kC*116xYBa%HEcpexNnxb-bib8zg~8a96B&T<8C(JH#58mwFpGixnq=`wCa^E z(t>X1)T=XrpJIDA+oGa`T}1}fn6UIIwu3P4+j>@E5Zh;n?PtaIdFyn4g<-O`;V0_8 z0-|SlbK-+)d9=>N;ML1Y(}v2`v)^KPL!0LMG!o^AyyHBw`xw>DvtX)5?fE_*hxpYap;XEdj z1?o!|;+8Hcs$Fkj@dDPZW`7@c^cK=f^gt8NVJv|DtWnjUl{KSkff=@9(5kYShn3Fu zEE3y7VmqyV@zuk!Z6r`Agf1EYXKZ@B=EJJ5yM8nua&~~=Ut-n!qv&{MGq4tnyFeTw zdWoZL#M4BMTt-i!N83spA>)6n&Ji(ym-?cnFK|CmlwnrgA6T+m5ZgQGeoBK?TX&t< z-poIU2~r5Yr}amvQaUR1pdr2QD=+@9K53`Mwc=Gs|Y-@)lje&m#X*`>}YOT8bKuO$ci}^udFkqy__Cx5E z4l`yo?5>*zVC0uT4wR_-<5C#Qji`J#0+H{(qM`B9!7KJ<%*RtY#&-zk8SK?FRNBLu zIm{*N>!+_6gU;B;C&*kwPtGp&*F#P9$dC5ft;hL3OS=br)c3_1^-i`)wtJH6K%*95JyybH;3|Ns!9dFNzp;e0bamow!YuM zjZj!C&Qs-5hwL}TdvVtzi$_*&^b~lsEh*CkgKPc3znth>>X;>m3k^qYhDsVMKK(HJ zz`NI6ZPKZ=x;C->lGSg7ajp9`rTA{SR@2n1IwRH=guXtVMqg~>E497H`jIcQ#3S$H z1Eq>B9&@=7B|wI$*H9Ox+CL+P0GEhrz_yb0mJ^<);KnKRq0?8;M3`78?t}2+(ddJ6 zwO+Ovtq1CKXmFPpPq%}Q<$K&W#RwCTGMq_xkNUq2TPpIC)yAv$n{Khk6C_~=ZkLu|Dd{ zEb_=doiNr(L`@y*gnu~7S0FILo(zIM46zJrwy|>(j{%&@|EluV&PgP1ohn0lYiC80 zGn3J_bxWh_BlJ5mAw;&?uKW{F%gAjYfh8PLXlwQtiR~aZt6TCsJKIiN8uwCb%O{r> z=9;g1wG4hpr{wwQr-x*ZcE!54*;G}m^MHJf8)vCUZlI;ALqU%OJTfuY%a!v__v3Zn z63L!LT=oo#jbXf@G~Ru>Jp)_WZXlb*?P%0WM#r$&Z_gv9$a_2YM5u5pJB}y2{o{;; zeKi&G<>YNgA5C8tcR#SZmG6ueel&w1>q=9dlB<>5cb^#yDCR7gYQ;m9S zQT*kxIfiCJBg&c!Nzr9xI>NZ+IDy*2&5A=C(pU&Stpy^A8NQiJ(o61z34w+t3 z=6MUv^He%rm<$t2>UGn&`St2xZdD0*-0*EXgy#6Xliob|a9X`3fsT4U)!g<|Y+snU zUThE16yS{!uQCtDjMeXODh>m2=S@jY}BSZp6o9Ry&ONGLCdnIxgyHBKmhqGwbn-%cy7HAN_Qxs^HL_TaH8kdIgNVfx|;ZBm3C-&_;1w;+9xY%B%zs6!x zMd$}$4zDRfyOJXG4Sao0l%MNKe%{FC=W>vr%SnDNMpT&~KYy#6<9|y+e%{ID=VFqd zw{!Vg2pSN61eoh%pahr$^tO$vSqw1UNR$h6Rh95m%>oUg()|F9o zb{*Dm&n%w~g=|&EwiIU=e_oPdT(~I1cmOu=pDoTXzPUK#+VL?RoI6kriy5B+^cQ!z z*>mdH7s@`pI{dHm;pe^u9%&yD47N|h?X(%4bj61^5uw5>ncdc?;xx?v40n@W`D-z40Ti6cz*0L#r?3$;(EPD65XC zrUiior0fQH0=2!UMAl>AnjH4zh>X@YnWZr{FHL@OgwdNuo|m>?%M~B^uT-%V`ZUf#KEy_~(5_e@Xil}JGW z8mRjK+G;v4HtkjKQ2En1gKzadVf0ZL4GDvBxEEl!AX}E`?oH^^)8|7{Ld~8&SA9W+ zeEJ;q1Khr z1|CFPMk%N-Q2pprpIN3lVHP+J`LieFoyrO^g6whSvfMo@Iy4hb+N!|HcTk zV(W#v7ttKUXOJ$Z`)-veHQjez!<9+Mdo_K8Bqe^Y*!U?tL=;O9{`E$>i06)+>zihP zZ6or^0;tqFnd;=7LI<9uD06rCb&|2}L-O-H=Lk%dj&g^`zEz|ZNr z@=?C33^ZXCdmvzkKMrLNIt;ym1<-$vzSwlWK9BDg(7ql0(moj1{#0!LgOv8;y!{XB z-ggD4N=1NfV6`jDq5VKPdh1^l>efo3FJaai`4zXhu>Y;xM&)2Aw>5QNp$kj5@vFLX zBaquirC0J2FE<^-sIR$@xH3WoAEJzvos`*kMQx`ad0s&1P~CIzWoyWvo8V8A--b$! zi4Ql@hx4I0V&@w?)p$#=NDDJ;ydUFQ!QX$#Lb>>$n0t`wVvi9G(I5|6Kt`_VgxG@7 zDFEkrT^9$OWbNon1tPW!%kBu-gR*OOl#ObHDA1o_i)46rl4<9U}@aa zJ7k1E)=<3wkLiKZIP1o~@Y{v&>RvyY>^$%4-f#hUlg0p_j^*#bzjxvLP1vId{|!ds zkr(pu>ClP44jf;fF6JH@Lh==$#4BoM*NL+O5zOqM%qC1k-{1@}H!S9Uz#88`RAg@j z5M$H@xL^8Cf;In+6U9g$x;UpgC`3GgcBKuFt{xh;)FZ+in4spMp^zGeW?YVIL=H3g(b(i4T zY2q(h=b$b)nx}P+jLAGRHgkAP=Bcrn`Z1Y`E*LNC_ie=x*uaj$yKPtp?L~FYQ_MD~ z>#$z-O@a->8ureB-f?d%{VKJ4E_RfiJs;9T|NrAcpfb*EreEp3f;4zxsdP!*F=p0` zj!L2)E6aA+-L4Ad&r!N<5ygWu=-qoh&u6S(1*|RKQ|@EVEGGPJ;)ar9AD@Z#iuxe%WW>Zk)E5 z|7IpUz-};iM})M3NS4^{iy@gkQuhUHY+}1JRtR9%BeY2CA7qo*f(HUib_fCQPJ=m$ zD@sy?kdl@kFm2}aI8qP=J|=ceD6}j)FiIE3h6G0~E>UfH|aEY-Y1Goa_aA z1IxBTf4B4gh7$cXG^qV8j7lBJ{uV-i?;DO3Qhy5*{WVz+`|m_Jd<4fg6LF0@0^aLm z?5MeCw9AWq=OkOUkm%Jmx*Fc5uNg&DnE#6~|9GqW*jav=6bxA~(dJ9CvtRZbxP21h zZ4sNo7Tgdh5CU$4`65T(gl`AHiDsu&XP_U8A`2%CqvdHKS)LY>BY{6!BHsCM-q~;3*Yl#q8a5ZoiN76-6*m%U^4)Qrv_PCzzYxuuM{9ceo%Lk-NzTQX*;DK zA>{mR3UaQ)GkC#xExd&0za33!z6QDKZ^u$nveB6Nrqm+H@qb%LNx2n97ctuRTL1z& z4;XwmOAE}~s(!m}YYe|i``vA0>V*Zs<&llJx5WB!{hd6>qO@Q) zi2u92*D<|Ad3q}zLt%1Q*o)woSTEOo#0xeBy+*s@-imQgyxK(YnOYL`7g{gC!L1%dWVc*PEVOwlEZJ@Clwc~C)6#DvpZZV3V z{}#*?ohB+j-ja+fDeU3>krwRLV35c+(JEDwJb?ZD?O417ZBZ`Qg_57Hq))35Hqm!F z-X8tV;sghk_}o{wBx6qE=W0hkCpH$v`P~_#pWHC|$+!8vApvgiQ>I5Ier58$KeT^^ z9UU({&3*>$e{`}f`+f|ZjD2iB--O(ni{CReCvU_Kc{vIAmc39XwucrDq3D0^`= zc^1!yQSz=3+e#jn6eBm(Z3@;e1`^=1oClmRlRv5ZaaMx%*{%wVevLeKuZ3rba~YKEhAY^>kS{+kz3!?5z1U z9`ondbpGiQ=mwLXJpg_?#YL;pv#DhLV7*j7gLN=LvWCQ^orPk1hc#R`%mYWt<@v1C zxay!*vqBA#d2M@_EFPlvda>=>voLNJUdgDy5ZrC)8WM-5sFQ*C3jFeq)kC%gY(K@E zFl|u-gu(25EbZrU!5aTjN4IGjaS;q7vAqQo+`a6w`08cg@cDX382UBdOJ-qwU!&vf z5Ri0qWShqE425zjE{NOE#5}Nc6yLh}MV{G!Y(f4w8y=6*Bkl_%2jQs=mQV|?L{wBu zKZ4I!DNbdQ<@G7$_17prT4v>DL$dB8_^g)i30_)MFlZR#WM=e1Ryiw~4kUzyM14Cy1KrTCz*o?DjGp3uO&j5o)=Se7!Bd@V|gbU?H zL8m%pb*jgw%L`+PH}s-R!;??g#?fud7eX(5bc~BZKfcadH&Ijz^GA3FDr~{|K{qUP zpVZ?nPIdl_0yG~L;TaUV_=_YwBLswJ3IYOcKw4WA`+Hd2b`!-&7-40@xH=N1>Lam~ z1NiauqT$T1xbgrf#Jy-;X%HL#0gYYup^_-CW`Vfv7BqL>g0=u+6MDl1Y~6Nc`&+2l zRuHtEXfq*~4YKVRP7E&_tUe}J1J~FWwkbR`%R4*<15Bh21{uxRW!o?-uae6~&`Tvi zhiG=$8CCwrK18>*$bIY_rgj_IcD#9mpAOI=n*0i$vB@v2re~}w2iDTQdxg@y5t#;j#{X6$rBhzU*q3T~ADSs4!%)NR_w34*eTmvCbb+#NGJJTn zgN*H`glS0VQiWADSF`#X%U>aLg#*PhxUG2ON8Gl^`hnPpbPD!vvGD+gEv4vztr%Cu zJEeUJp8oz;n+SR==jGW;#m3(t7VMsGgdQL{12rOZgl_YOA1No{qXw0{n5 zD_IgXuJMVMpxlg5S>mTLG9Jdhp*sLx2<9gA+hbNkJRXBcwK+%kgU?-Dm0nmgsGLk_jiUsL-mHs+wd zPi?PhCZ4Az`#$tl{CHvMBnpI4J85WUJ2DPU=e>?F714~s;+x7c_{8DGQ8Z;5@68g; zZJKX}r7N$6k6@^PN3Z13=zuoT>>FA5DuHmv$LAK?n@4ED=_#6zZwiGP;a3gvEwoZ> z%W|^^yds83akvym6yv$o+F=W>a4DZsbo|;vX+L4OFAvy}rY`S2QakAp*-l&)l@9UE z?OkZK=c@3{Q10p>Y+mJ&Z(KoNQr>@WT*}{xZyL0maKm^_q7yz9-qU{~n!T1ZaTJ$b zY`YPJU$O15`07Orb$?0RjytyXkjVAnej_n1d9CF7RGQcP3)1T4k)GU_jj=5s(YPIM zmv55t#k*uZ6Mc)i>X-Kag1S1>9kA)`ZkMw05M?~fs`b)-iWlU)*#ii4Ju5Rg0x(Qa zX6kM#b3c_?m|DhWvLk*&neXnQGB;8gia+c#ifu=+`dfeF_L_Qrt|_7c-i>sjAbAvx zy<9LgzBO>+i4fP-F${5ywoB{*>qW8gCZq&qKuI!rBs*(p{p7qdlh~+5cU3|&U4p7a zDH7LPWbqRuWWg)ltRb%`wi!d8PnJH>%B?RWX=?cy>5Ie7FRK&}3QZQ<^0Q=H?hsJ) zTpkvmV=P8>B^wlnUA7sN-LJ)X^kY0VD4DhHR&*h&Hi)lw>zt+n*(70k9#ZX3tUAVu zbEIgR_j)NRcr&G_-V62GaX3ydBI3!mrVs|Yim$npFa&Rmc#}d!MXa4qrLjI9nna5+ z%zZbo9$=yQ^--VTM2VXv$}d~msypYFmd zmXMI`Cw(snNX}f4jwo9%{a?LQ;04B%9SO8T#9X7vR)-kSEWb2d99otbrkZZm~A%E zBOY2;pQJ~**PushuB`smzfCf({=+Rg<0Jn_>rFzzxAk+ zxZK7z$Ii-f9n3kqg4uHHc#6%OSrxdl7)EAu8Y<|n$r6{m!+q%*O;CJ3#6kxceFQ7eGP_!>_a@k5y6A)iJ;SXZi;bOn+^@65#&$i?II&Gj zccjYxDBXzV){#YKZEc2;G}eR%CgwC^oE`_Dj8CtW|4RZ>HtNyN=*X_b`xEf4-1aO* zW0G}f#rN_g`b>BeG7xLu%rJ(fP8fb;aFWpyhsLd8?+TW07^>P&mly8XkNeAzOn+1( zsMEF3VakS&C$18Dhf1U*yiU7AB9&}UqeHu3tCJ8#Wa%AR-wqQi(6dE?E?A)px^zK6 z*N3*EoFTSUBfs=qKk+jr?{wxf?ZIu4T{`#6q3eM!pCT_7R5ahGXUnv6%NXDTwj5Gz#ju%g#`bM_>u-)asy$-t8-!w3=>cR zjK}pqNi6)2$X1k$SB;7I$Y0^{k*^XPc|nf2WvP}swsHFuhw^pw#VZnUO1sG3(lv`4 zppmOx%fG>rFA{)M!e`rmnE32N_}K>qN2S7ENubCQOsm9;L@sPhl$(!fMM9-a4pqvo z{zT#1GU#k*{}LS4o8*0H>l7xV%pJ!8m6{Q$HbpXw==?!fBgp%H!S9NYxz};NUX~u? zehIUzJ-+n3;?-UXzF7Yx=gK9lHIz;-dGsPSO@d!k#UY)}kR@y}kA8hqrHg643{PJ9 ztPL6bQ+f33v#{i6VDyI_tb8>rmP(~^h@#ClVhrMTIxPw(k7VS16hjdt3cN)*L#ki> zE$%+KN_6uIaOHOk$Q^zqJ>hH} zmhikpp#z8V#}`o-j}ETJ1P5#q@LHO@Rw`4N?O2mrp`1%k%*ij%cQY=Nb(OrYn|_bc z?{4~ik2|EL)mLK=#8>$RB1#&86jVXlrQ;n;W`Ft=nP{rn8^>qAL)pjF?1$8B?m=!1 zZA@dKJQ_6b6d1CN>AN%N7`2I?Wp1I$b?QYVWacSLD61+zpqxfEXR?kME?J^@o(GgC zkbH$1uyQgZF;H4SzYFP?PIYLsm}IA;gvr(ppCL?zi1OqBOOYL>;>2K($mjFC=c2YH@5GBgP z&JiOVF0Lc<>*jt{K2^T*1TAoG5Fg_AhN#E=TYt$l2j^X`HCjb^oRIQ$ocuj>L(2=W z!07q{_Io;W&XQlJ`wd>F`wd=4l9n$^#GSqV8oAeprG#AUk)NX|@!Awvi6=~XXYqHR z$S_*gW*F~-e+BUGx^)@G3i$gS_~%_a&i@ky5u&5$@BH2`V*C~*?LWa9FV3G<4@)0tj zwkv=$ByuK&b#N~S(;n5A6M=G)Nk--Ay;2-;5XTD6BsIeGa6r&C(dzhmpTvbgY2k4Ssp?DcL!Kp=g-~iv+Ww z2(Z$&;mD?e)$b=*L)F$4=Oe^&RT#iUcE9 zPM+;MH;}D8VH=4A`wsUViCpRL?0f&@*?}7)e;Jw@QTj$8H}c*@STD*rSm@o_yEG04JauKEpuYzzO&l8K~|a65yeaYu^UaqcD)lEo)%3tCMNN zm^K;HoPz^45KUu|Aghi>6iZisDALhi*3GA;zbn$!ccAax{%H!-h#c;F=j6MQcce=~ zU7^$wi@ei!2&1_Lii~|{RhtwT!C=nf{?hJ&s_sazzqD_lst^AT4pa>ew!GiuJhob{44@a$s>dp?O4fGH6QLv^+2XH^`)h9JTg0AWYOsgHDhe0HD@&FntGTQ`l5>Q7+&Dr2=_AbpS< zF>*6Q+k1UoV(y`V^gc>mKCK(OhPs;T=E5YO{43h0L3+qVrkTqR<0VDp?FN6hZ>7I0 z->HP3Ly#Lp2L^Nz{2$wR2{+zaw0#GES+zFO75V%m;%E%u{9|M|qMQsxz8r}34Mp7E z$f5pexJXW3yn3ONpF?$bT||L?ei}IxSyg-TbmXTfm?>Ve$2$(<=`9fUVmF(r;jC z)^O$$Z*erj0)wGM8V^Gfm|&#oLyuU0ztyz^~ zxi^O1<&b6b-P{(MN%$ETd;NL38NE4RIw+S71`PQ?ECQw$)(Mm)VA>QA@&m%b&>sai zg(^FvI}$Lp0_*4;COw>=&TEIIaLgRROVv9Ja`i|_Ae#rjs*W;Prx-KMNU9i8%5;*k zII2)|+)|QK(2#R+jLaqzWw6>5Oi7d})pIq?Qr~Yd2oUtaZ?J~__XkW3veUqv!{#2m zXZ0g>I|ZpoZB9F5cWz*&DqDp86|S^9m@CAoPVL5Q;D2q4rS>oyc$8qlSGlC z+A&)!aom?vHNM=wL0;VMKco5Z9C$Q`%oojPVUsoYjML9j zFgroSFj>>#M~e@rZO1n?9Y%KLX!;Z!pXuVV_rzuIhT6Jd z!n%mLhoL6pi*tF1|Enrmjf;Hf4k%Uh82nVO75}m0r{~{U_@nQ0d+bBvUGHzuiS8rf zT^BdN@-{xW7QXWocB`@$8o_vS4|<0(;m>oMc-xdz$LGt4AE@d9GJ^yJY68%eYtghA zNlRwYS}d}bIuXb4U^K^u=@>6;3iS`;9)<*r!m{longNv=_>FjJGDunDeG;At9k^P& zd%Qf((j}M9mP>Qx(m8VJT)8wS@0lP4WLnnU08H0)a_K_3bctM=4O#pmNV(L0RsRxL zga(S|Tt8Ridz=;Lnh(IfBt>&JJS^4cXhibWQRA_c=b8`0HY;7s+3++g&VEMET+8z1 z;_P@YbIp#I=j=h{jQQ}#XP6&sFqkja$hA4EXswt(xU)2yfbKF!j;@|vvr4YY1(_Q^&kLLl{Y4kf z=ZLtrv}V=SmsqktPJ^Y(#c!LnkGXA@)0}YrJiKz9-NW8IMlH?{=hLyuRcThue@3+Q zn(^`HRgwj(!flD??Iz9jHvpfRD_d7?(z$Z1J?n0FDQ8eEdBQi973Z+>xd9yvFDGEr~0mFE-Zo?Zl1GYYU zMZ5=(9%`#txgOsg%CqyebQ)1>lj?J`))`&O$1yyE^k%q}M-yPUa#%5d(M@2K=juB1 z%8ctxcw3Eka?=U#6zQ_oo8B&@o>xxvPjes#q$)k6c-Hz98PPxiAE1NQk3{LmM6l;p zHg$QwwHv3}++htp1-s0h#dBHBZ04HF>gTY|qo1-vN57c*G2MlC^fLfUu9>~`tMzkq zoigMDvsIppUD|NhKJrh6En)p^pxYtOZ2dEOB;2fcS-cx4hPEbGe6w?M`D`q{{=*e{ z^||Ye?loyHW#JXoBf9p6JL_}twssfBG&=hES50r{fVhQmBx5zJuHIiB&(fgw%&qp^ zdQ_C|CHM8Y(82pBbg-OyS2O$Q7u3b_xl=DgBXa$0wV%|(Zs?)x;@z`IhvR`CO}5_^eLPHRhSE#(d6PeSad@_Fis9Ui8&2xi=tLu zjU$+VKjowNb6Aw_ASd#mo&XMH*G2$`l`uZTjKip-_i82yCPb;41cTX_ z;1r$fn$Hzfa6QbLcr2E>p>26!wG#k{U!eHtE zNvlBG_>m^Yy4_2LO-ZCO>csh_XFjh11vPk@LmiTyYc~G+i`Z963L2p=*JyR=kWrcW$Y3_`*3h zA4`#1=TFa9e7AVRO^6-gbj%R&;`uopqd+n)V3s0jc^HYgj;lSN&JSi!X0@G~{gkX(wI51t&n3;OeIL#G zqr74#2cYHWA*-Xib{vpOXgGBij0O7adEZp@VUDo~_T9649Y<@nkjaduy(R7B=(RNowVMaN%u6msfe{if*Q3x45jEE*)q> zfLTRRe|oU&!xA*zu|29Md&)#|?kMy4A#&C0HxtjkS$Lc#x6RN6t)A(b@rK^Iuc0Pe z;xrC&njS{J&|;HX4ZbYr`*kMR0nk{bI(0j0&XTSCtnCQezZ6>G=&4(PdM35+j|N7! zl01d4m}>Jm9R6`}C#osp0n>avkq+ zXLR52RjIA)yraW!6_G`qflg@jLFRnBq07ILe-yZyQfCUToq{3_2U+dgS+zq|kMnrY z`3_!sd&UR}x$+U?K###x9bfxS#z#j|a38pmvMGsQ;AL;~F#m%xCK!wJC_*ZG8|b1# zf!a=k)bKO1h@u$$GjJrGfT;%EB`Rdo2xPo_j^rUv0@2Q(%d5FE{`jJvrkyT$k7pGP zu1n?4lfkkhm$P+ZVU^jLAO!jlHm-s@>cFVyb-*3@&dlRiEZTwu&R&KjfQkNmj>sPMmStS~_R@?MJ^IHLMVW$I14w5x%}GC;GyxZw`oj4zl! zho1)8AOd9jvqL&E)l6sxbB(a0nA(H8Xb!t+{t3?RQL`{iUu1Qc1hyYCd@t=ecg^x9xOb`)8+H+2bEC{oeC zB}q3|PZgL=xs7V>5v4fg!si;CYI1*MCCAC4yB-y_AScQXWAk8^0Swi5^C3OwV>N$=v?SWN9vNBt{edHr^N${M>}e4FsQCbh29$$*#~r3nfu26Iyxs zbH`#`enQM_q7y|vmmc{y$3qRGwQ+8(kt^?krK$XI1;Qc$8B$eogz9V=oq!EZA=tUl z++Pgn8Aqrl9nLDw!CGnGEb=5fg*?edCUd7E0(jBD6smNf4WEWhQ)>WFNWWb;ddNoc>%%iLH_{)uaOsl z^l{|i^sKb?iacVUk1t3MMCVG|ejy_lc6-ggS>*W4paK2}ME)*~hj2MwGlJ3W0;BVI z4!;ceoM_=2;B%OAx$YnrbNBn7X(BlrWr1{$7&M)ezO(3pA`B=OUmT5sMtD#r@v2?- z%7WNLdviWUru%)4p7m2QyLJovCf zsZ&Jh(t*o(Xg~*|>Mj-C-B<}vs!9<9!)7qt#%hWyK=^$ z@DpULHE+5~o1UoYzzUObc{K*_iGHJdQVz7Q1ZX{kHO$6Pk}gbKnb z47L#0IQm-Zz6$SFdbhc$BwqHR&o~Yh&!fDE+#JKPCMLCY37WWD+UY?B{8mu{?Kqvd z*ZpE5l#eaiKT+tPygU&%KX`kggY7vWiI@WtzH}6{I<5|Y<@#??Ve*s(Vt*FP|`(F z=lDiq2UGDglPS`d}Q4OefL>_?KSj&b%KiJlQhGk`Fd*C1ln;L+N&hCARBU^ zUF?1X<|sPpUTxNLjL2V3r5q=*7A`Gz_){$wbCTngMLMwG*wBPtwxO{FlcI z(;Dh57Vaqg`uv6c=!QNuu#;i>>QhI_?bjd{jwe|GJV^Jlg7mC1s|!|`=PPA{%9^8E zqI<_*H(!5%-kF|m|K`5HISKWy%xEByHKvouElO{|s@^0uyg!Z_HgigaD#!G}Tr%zk zo%!8Fd#C^F{`~yEG@zHqYW?Z*Kz}OtcW5zZ$6nWoKMLoi3&XDIlf|F=h}f()`tKdJ z)|K6Q0sF?%GGk5qMUHzlE>u=twg2I)Mhy0^r`%(-+$DPMNQw8)W(axse9zi?T>VO(ai^GamT!2cDc7ESV zC`Q_~3SO|OKNnCR)S-&TKBPAOews{HZ8FW&0Y7M^$ppvYW?{~Qd3Sr@?3h5i zi7iO)Kb}mmZxcn_qZ;NV%f#^g6+{Y)X7~SVve@0`i*6`!DUaz>Hk^z*Ox<*&I;TZP z`LmTD{->5?e==1>&<@Oa=}_4j-GSXx0asn^c+aWv#i9fCwo>851m z)d{G;p`5y3+f~+)7cJ~Ww@3NnCy=r`js&A<{3tT0Hc#URkI+Bag^50QR>S{e+uk5@ z!E zQpG<}%kxV!MOxK%Zd#|(MMl^eNuNl$q!0EM^T=VMP{_3NEyTzO%rn-_Q;*$hkIz4+ zWm{y{{5bgn8`seZ+&SbQi)f_b0rQPW#@ls!EeZYAYA)oZfPgxAXw*Jo>qa+KKzsA1 z_l!bpx9gTpt5lm8a0WoxjhP}C7Ioic@_IWEN!PNBjy|VGkL3k3iPNsY8ITvuLj$<7 z3Y0qs^>c6Z2IpQ?w!TF9-3Fv%KZI!*M%I(ole_>ghIf<=p`88pNh3oq?fm>IDO3m4 z;T%gVD}~fI8-ALUV2WJzfVL-z_E%wFziGt2{x$uFqYiymcL#KCpr+dllr2!t`)A+; zK>>^WMTMuY&eEoE z1OofN!0xzY^gm3qaE!Krz5TH^3x6lfeZ%Q0&_0eCVcG8$TA@HvYsSKLo$U@Vol|Eb=2STjcNl z$Rb`hxAeSE&IO~c|ZKV3gNH+%p#Y+Vv$!v{5<&C;e84GJn*{+ z-!DS?Z@`bixBRab`4FTxOr2^>GMUX|EK`%MW5-dg!CVg#{8j4crJZhcj;tn z=&7<64)>1lW<@rs?Inb1>e4L(O)~HC#kUC$E^2u-`*kS_&4<8P-kMmu#Sd@bej6)_ z&1*(i3sP_<`Wn1FGG61b~n6he;bl?;KMQoqCkCj^^6aYQ(_`INP zAG(%0#fu99{g$dbGPMXPeV0+Dhe=108T8qOm_7&r=ms#F<*Nh;)t!al$=X!oRB+I5+3)tlZSq8BobBf&-&?U%yG zL7`^1Wc04Np62L;m%&DDD+uVucki1*k*} zw&p*BNnKjSs@0T!qw3$*vy_+H`p%6%txgwKZfoch)8#b0BiTEJpVB7?O&&*CObQ;R zDlLZnIXQ62R5dT+3$~oqI>K10OjJu6ukjVLoHoDJ*hud1PE*G%Hi;YPcf|0xOVsv+ zoi-w!-aREibc)-2)^vi%$xiaP^p1KzMBQd;#wcdznO&@SF>4~H9+dq0n(xd*YbIS< zPrndy6vb-qL3wXGzt~}{N}k_ydH8fBspm4l%Z13AzoI36IQizO?nIh|pB#dCwGl^( zRV-#LRA>tpy7|cS1bgSDSc0i`;V7}_f)4sJmk1k zcc1XDxwJ7R9oR#6HXUi9%NC=(F&8hq!Zqh_RFv*NmxPxZHNQ5^*Z8#&q#htLO}I%= zeO7)%^$D|a9(}f`Nb_HI3tMMGH)2R?uoyK5NaXs$KQ)U6sOpZaCe#tEnh0wUBO8M}re&b#)XcZLCkkM}E)7&2o9EJ#>( zhFG035I5I675ZBe4-cOVF8xh3xcEXeIJZ%?$2H$7G!dXKs%3L|zF7@2QgtCDNlO!@ zmSLKh7Bq;Dp}?ndpg(Pi{}&AxtEcPy;$ld-@HZN`g%`+h;RV}s|8*0oJx#vK!{>N| z2k9hpyI1+zNfOV>rc-RPSNVT`r0>}%e_#z<+T>3)(lL%`M~H8v_~*_E$#fA{S#c|Q zZf@m_bc-*U{7Zd-TGLeGqa4mnb)CUKX$LL5c()IRpH-FhO@`0n|E zsiwTEe~mt6rL8E|#q({)=s?W_FW}W4dFNvJGZXG7nuuuLGnYKL?BE>JahVlG9o?Hu ztSrj8O$bcYeuw9n$$VUmi8%*@&LP*x?z*r~HzfWL89x?a>1emzZdAWFXB!PwH*i1X*BIvkg z>bM?hXP6XktZ>rKLspZ4sfkJ<5xqJ(q~O-8R8jm?oyBlEAU=n^hg&D=2t01voMk{8 z@kKGI@cSCBc?JgTD-XV}h|FjRa~73PusiR5vX%tM2KLhdy9%2_&tTBL1N zNhn+sOgUtcQJD=%o6H_TmpnnHuVb*ipiR-=UP1W_asr3*2j%CAqHbQ0g7@R4Zl(MI z(fS!gZ9p!9HE0)!{pi6>DZRF<+O#^@1P9_yoks}5v(F7b2sEBHf9{aWV zc6YyNktZG+`TZEa?`XBiYY&e0o2A+3wQ;K|ascz%4vRapE0`Y#tW0i@bK(6OpNp{U zh&cYB)(5$v|IWqqWl5gg@=|!QJ+l+_tn5Iq3xc}ClqWmFwM)<~EX+ZlsatcN?y*a4 zUCh26mSs0FxaO(om`XWb^DluqpvGpxy20xVc6gL)&_t?CHfWx8GxE^T5jofVR4{C= zw+pE0Q=wK-X1kYXW#y$;J;?KBx>g%JZspHciBL#Y{U|~^gxAOJXOnoh>Tt8N;#&D| zw=gC=&Bu2Mr-8Z?G8BmPBf0OiC)Qc(WrEE`cak1Ju^$7VqR6h1b4S- zFh`}*wl1vayx5KHGnr@I}cx1D_;kgcyBf_IiD64|bYzr6wNt8CwPS zW}D#N1O)fSHOfBzE&X?=AcuVtD;wbMs;7Dp-NJ_d{c6(}nP=em?&XiM3cwvJ0d;z; z=s)IOPUN?y*v{%~mEk-YZy(TGj!{L%kTnobk{Zq!#PwkCkYH7Nl|Q~4kE0N$9WAq$ zTm4HA($9tN?u6IiuV8u=!!cLZikf5;2XlBUH0y!6RuM{Wdgj~IlEw80>ewl()uMiu zL`6vruVN>Us=nlfgSw6GqeUZbR@mb=Ev!Byn&xIjiZa|yhYBn;Q!8~Kp}f(Bk#;x= zvj-P$GMU|nIj(ZW@v#(KE6gNg`RHrz z-Ha=V<>@)6n7Wtv2S-?aWs108D8WJa&n~@3zG75+WHPQ7y(dhfHI6G%Q(Q<7mk+YC zp`h)zqdb6Rp25S-Y7!GB3z0S}o}g^?!TeZANeYClIlP{+)q+;s6@&8`+BS|kKCYe5VO?yY((DK6yf(<~TTJhox`O6^ z;UAc~GWv9S^psX&>XbmcnNDm2)Ro9kH`Wd=P#a|G!J#V~f)3u99@iNNux2W3tU~^u z=ozb^$5BoWb{9C#Fr+nuPZ+&{D=Bqj-bx`9tuAGgry2?iJYtlZkR`-7+QHG3hDy>hS{C?pOx1IRQUfN+csEy&#%`DLTDRCLpCryxEcnlH$05OcUu4wfZ&W%u z78YsA+h=hV_f$XKbsub0rsHhI4!|<8e37@N6A;ESByF{pmI|8Et7NIg{oSAe_bNY8 z!G2=Uz&_QrSC9m(W|AF+Bm6mlSTnn_c2L!tex>U7*H!U~>ZjxPnJ(pq7rsTV6djbL z=KQra2ri0e#v8ioGS$mdwMnz6?CPhm+;S^6$5X8~r#zYunH-mDevc&L^9Xi+W|!l% z^g^gI5VEl1Wg6_vUI08TSZExn&}FvxtrT7xGxa!L5*1SG^S`jiBa88`sKPz)F_-{o z5fo@z$Eli$qnYwgouMgEQO!)c5mOgmV0I}NmJ6dy?Qo*2TamQs>psVl>FXar4J=zn zW^W+N2y=@sGD|OZyy>M4Qu9;l3minCMvp(6Zx{Rd!|G;EJ~%UbOMQ&C z`_k>rc%D`sbD`akQ!RM7su%&&hH2vdxioJ~s?0Bl# z^#)ZsZo+EAvBo!q73+vo^RVu>xkRXOwK4J#;&azEplm9r>PL1stykNnH&3iKY^N+G zio68yAoZ0mzAb@3flB)v^@2u8g+Z*S)P;24yZQMI=lj&muEXLs%<6^7>C1xia0AK) zXK{rLg}*?Djw-eXO`Gw$YIY}{7wK-(&6k+n%GG7DIQN=`ids@;*Xp$_-^TLo?qGh3 zi!HITC9-lF(qJ~ei`<|l7+7n^+%F}P4uN-OhV#W9mQTBRCAtxWg^bs|BMxHQ#*!lU zGQWL<4`xREM9txO%TP3D+f@VUcr5F*$gFs!)JAk1%Uh8dXT?vl;x(*z6)RrLimQ-9 z{pacHC&T_*XJxjq)cViUP2|dgv~GNkJwgbM6-A*FOmOsDVn&G?aeUUB^SKwz7_VOI z3VKsYSiY6ILWbT@KJbbz&>GLlybj89{??1v!$Yb++l{0_ULyu0ThoCz8u#AYAL|-cRc_NT8!FJY?FeyadhE~ zZh~3fli2BXYgpY{s45aE{V1CYSp2CtA=bL;tR*&oKF?d@$a}K(8_-@Ndn{UYBJFyk zjZoB%GAl1$!?&R{;O0-$w%e`oyfxgj26he4lQkhIgG73Uu3lfpLY}wQk+-TgTPs7y zq}xWy_z|*QUfM~MYAtGS*plLTYq@7F7O<-39VmeO$nT+k_~nSw+LLHmvTj+j)UW}| z&chzzoqC_lDqfMp@~R*^uKWHHNCQJrRd($d$J%s=lMy1~mVXH6trUktnwFVe%(DV# z@S^GKZ-dKk4??@s@nMIL}()-j75 zhF?b5BJWgx)8PBv@GbmL>-fb&7Lj2yT{ayxJMiA$OaxXGFCoYfId6PJn52}pePN{K zs&rdq;k|@6k_FU8yz6j$P&Jh|k-5|3Rd#+d7$U)+eZJtX==I5k(d;F3>3DTSxRs zUn(3MKuce2&+LVe7djZ#J-Bo-n%71c_8Y;tX9R|n0E0DB^}|)SvmIJcSy2ZaJP`&CKey4E2f`(jwl7LD9ac))(ndPj-$5MQx3crlP8W#r4#mAh;Gos@n zKJt%~Ma9;7)$2(Tt}Io)_gl@V!#}|}_%(Dh**S>RGWEP_;#Qboy&yd?X0a&2Tpy<( z0kh_HI6Gy=MTX5Wi}%q6EeJwhrVMBy6PS*x`(APtw0OKVtMhs_F(IZ4(=jnAZSJ)BshlA|7c} zsK4j3o%7x>CICiISpt;NKZl!8+N~gsEvn&nbK;WoJ;L|+omRf|PP4X9%H3k_J8j_{ zvyj%ZUZZrW>-T52*B{YDtbrumWly)7E~s(RzT+T>Bn)Q0aA*U3=JyH^`MO5Ja%#?Jv|S{WwU(F(i=LOtgke+Jq` zSs_w*>Bb+vQxDU3K3N5`=2o(CdX6;zY%J;lk>g&>;q@pH;Va?}kpT|GS{C)D{KocF zY`Q%R3;L5+uNz389xZ(b+CK*j{OlKieTPn1WW31Wi&BWi*i(s& z_XO~7nN@y{726vf^X%WDvF08Ni2|)Qd6g}PMA<(eR;ewd+{2u50hF{!W07cE?kdN;SbldICb}=%PqjpvK*X$f^b7 z`jOu#lu5nHP^*YWH#Cv&(khg_%13JGM;PiQA|}PFbheI&fJAbG!n+Yh98e<;7_{=o zXiGZTt30p9K2InNGlf1$9$RD;DTR^1>Sy89iUO?j?P8#1!K6m^gqPe~D2K@iQgtz; zGB%14qk)5rtT183ME=S8naZokRDo(cNhil1XN4&ujg-jQ2O7WZ4;FbVOw(D%E%H0? zcRu_*3%`r-v%&Xt_$@ebOZo)&3tnJWmC9jrklKpVP(9C4Buhaw-d(Ed7cQyc)6nQ- zjFrI@uNoh?WD?BB$U?k1ApyxUn|4}UB|l}9m7hvtwM-LJNju{ymFg5r7P9dTUH(Es zC=*px-Ee*lP6#FWO_A zi2i*Ui=Z{W$9=4HDkh3Nrk`1r(+36cEhHNWOU72V;u*ZQR@a-YZ1MN#6AFysB7y>8 zR6J5^@k}50O!Z~<_%eFnE7iw5Q>9iX1qtIk%bW!Y_wH5>tJMmkNRhwXg>3&V~FYC@+u6btq9vg zVOGbOs_99x|MoZ;1Q&Cd= zCKx~z7C0*jsH}0O4x0`j7oanR!>q(gr&U3vQ}jxIVb&`B{+n8*KQgP8uE9!60wm!j z93SY@&h2Qk9lH{0#9nAjNfHz1%`Fr|oecG2TdDQ|N|_Wmf`5RjTMj@Hs<~KH6J>{s zVs5=}H$XMNZ_}!|NLZtWUFJc(nqSwdxiz7hbhf*MbR*RQs(_V?Qx!y&1JNY^ct(l) zPv8M6YVQ9I9ysqoIM?n6D^KBmFoaAem3g}6H)6FsNK1K$c7>tW%wkvA^&cWq9=$94 zJM9XaFPX)*@RXYBQ^Tljp+Vmk3e*H$hEdzXw{TmSt;YRAkE1p_^{qiWv-bU3Bt)t; z;ujl)7S~E~)oUW0>(&CkS5kl!FNJ16>rvx|KqQa=I(Oq<3q(_<0T4s|c<7nVW+RakT(NfH$6q6}- zMi}BDwsCG!g5*v0Z?wv7F=}gcB8{I-?VNt+6-XkQ|28csgVca$w;ZxWV1Wdw}TLW68#j@q?-m$h|>+iCwF zY2T*JxRNaZI;_;rN>g}9zjvp?Gut83&K9IVysSrRl}X{wfh+=1H$gA}sbJN|iwXiW z(gaAL)n1@cf+E$a@j^2WRK^LYfl)M9U=P1DKrMv3FpRPH7x)Z2tVwGhboC8bP|Kw;RX>)!_{*QLPt*W2;XB?hOSN$m` zpEb(i1*r!&;h(fu>v8{WM$v}IR}Q9%B)k8al57u9lGhqAN#i5p21(2Z(L*#2G=CUv zcnFu5MDeTB9daj`78hWmz=URF`Nl%pI@r3KKM^E%ZkFJR7cWXEI z=ZgfKF>r7(4V^t)Z`Me@&6*pb(f11^nZ=AO*UWOQEZ4?zWtMBdIsaO8bwhiV&86H8 zyGGbT(<%?nVO0}ciq%FJp(4yK!iG=*I?qm5p6$%S^2{vH%JOV1PiA@ciqZ8^hf)-9 zc>Hw*{B->F1?(9qfEUT4jFAFZv6+V&x;7;ZpM3PyMx#O6HJ4^!_Lvm>KJ4Mc)5 z<5Do+2zdd2>_VOpKatVX&?_~Wgt?KXD+bN8i~)*d&<+0as#{W&?BK;#-A%~1a#go_ zS$WpFDR^RxbC31U<`91@<3!G>6)(jcdDfZ%o@Wi(8UV+}-OA6$A%`5>`R{ab^&$l$ zFgpN)Aj#WaNVi-Ky>+(%ykZ-%cpxUH(9u!zH=bv1Xn(Ho>Gl}Vy9CURMpC|sdv3A$ z>8=<73+Es(^YCd6)D(bA=h0%j3eTJ~d>R0L2DK}IPOKy!(z2m)#82fd>NkI(32MOLYa8OY^xW?V`SIV$AZ3>aX3N6@yH=gApIc~q6} zopeEZVlo`G10Cjq3(~RCVFe@*?zS zZOtmP)uv{2Lb2+4GV1`LvS<$yW`4Bh9-QdHSG5b~PKir7kWJi5Rv||ofy!ru#ZerPgsC?{LVl8HqKN(+-_!O3}J(7sVifQlDrweiNW z58N`=cFWk$47Z9sam(1(ZyEbSLhQ6_V*ML$68`O*gcsf<{Hr$!zbo|F)WBbjrq3aG zUC_Qx4K@Ysg^1HW4}CT+@YiYV>)daz|0E9N6`NRp37r$I8yEP*B(*LrOk#KNvXqA2 zDhrqT{=)9MkrvO0|ESc=UgYsMT$Gwn-I|x%Nk6cyC@u4%qelwv7d-92AyRqrI~scZ zW4VbX_n#)Fw$VRt}^o{T>*+e`BuWvSB6zvG>yKNax6s#ocvx>T`e#p1!d zc+hha7A0)Vlli;If0?_DJzRiw?5Mq<5{9X2m&fm21*=qhUz6~@R(~($3uoHLx5HUt z@k|-sZJE8ppTl1(JUcRbBQD;_S3u0tnKlgV>F+ty^J&k?@m>C*;S0QT_{o{}=iwon zde%*JK%!@@@D~zpux2crDc`+xrXBuT;jeA@^zg~RX~Xi-7{Kc(&5VmW)Y|i*7Wks#e_&RZoVh%NvZvnZ5kj5`VH*<%&wZ((!w168dp-!uzs>_kxlB^-}X> ztqHb~Cdf>5Dm0_^HmvAKR0>4lsN4;0p!%z$ViTjX=t5u`vAGzYUXHP=$5%Ue`2N6H- zrtv8J+;FjaDcYXtif8=65qh@3bW8=wPe3L>Dqjm+HP_sq*%i1-HsX#6dGL!t^H&3Z zi1+<<#<3lp4|H!Yh?6vQiC!F$tyaUe^+8{A(whbGjL^+$b`3oRI#(oK%7Md(}#B}dofU|fVwrO=lt^i@67N};b(=zcvEua_BlaOaJ$>7gG| zC|#>IX6vEHC^TDhylU|%OXpw;?0u19Kcz?~F4k;4w24BAnbbH(53Qz9VjvNtNQ8cy zLg!NGJP~SfDFcrrd_$^iN;QvC73iV&QD^~$p4UTV3dL`aV*YZpUzySOAGJ0^m0Qfh z!ctV!^*IWrum49+X1iB4jp4MBE1lr4I>`#&-=9Z^jPsWGhv<%=aQXtN?I`RcJ(U&c zWm~~x;_{o?U+2z+!k@QrC!PXZ(;2iD?(6-nvWGu z=S4Ye{xa^I340_fd@@)N_p$lUs8$z|S}|QL;GJxK6?di&_prjXyl6I?ze;L#&Siy5 zrPiW(Y<>V7mp@Y*?Z#QEuE^N z2@x4taq+0NN)o|wWc`}I5t*M=n_acwj5Fo5Kl{{wpXxgGx$yHR-aoo@syy|SGxbb4 z8Zm*bX1s++W+hqRP4)g-Y7L{xT(l%;`<;-s%;*fh@h;BV)oC6j zxQlKrA3%**m-4-@eM#CZ`My9rY27;{Vga+cL^Br&$EIDC%PX#vhbR@w<$2Ep+LQMM z&LyKQIuo8of{P7tuR0Y2-SO4dzH`ANh@8Cz9@cmQIcUxA!&CWVlV&m4WrkRf@eNj)#Z7Uq^0iB_atV_ouLO-QdGQeXKKZ)++3QKV1}_DEanbQ9@8bI!hu4t}!dN@g4u z$%eZUgL|U+`~*KPY)%bjw&xtCd-hHd@VPMiV+sYA&NBusr%8cnXp`e;-&r)5H{37n z??}RaZ0N0-B<(Um+@oaDZ(B5Jbm=`&)xOXzjSG=!&jTk+y{pskn4gAr{Aq8)mi7`~ zSpZ2Buubidu-&B$qu5?!ftv7Vq|Y*B&^$ozqu8ZtEGN!9#y;I!Rie~Tq~;#_8N$6O zCHP$T6>Z4NsWC%3->!i2tW@(nk|c}=KHas}tvpCki`A%Us=3mqd)JmIlPSujMwzdH zIfRz(X=g;PMrDP@)i7&b4(8Cd{(DOHDkZBrCHjlZ=@73;`6WfaCZZ1ucgSSZNEEV* zqW6pFA9|FB?$w&OQFUT3dh9!t4mU@v>i6i@Q+0E!ETXvCYFud?r6ggCori^qQf5(# zIckcBDYpiB0>#Z$<8Id>mnawhPGhLXTp`Q02+^gSqL}k)%qI{d%tpb1_oyy^1|M(I zhdTWmNM|NMHg=60ZWqRO0UyohVcsoBzacnZ#d8nhd=~*1_z{}z$Ae2J;cQ?3kE)LW zeq1rnj>UN=`B=ZauLMPEN+2X*{@=MNndbh6iIr~=hm%-NW`jCL27QdiQFGofCV1zp z)Dqu>AE)0>0ETTRL2oqG|Bn$fk7ss?4c{HiPH}7I*M6FoXnqZQpE+ZDal1zVs-^!2 z$-afiJ)bR3v9g^hxCw-}rf4Q>6U_SqW{(qE&z0J!Qv_nCrEPlG$8tBquZGtXCFZjF zM9=wHQf6`!syMGJ|#l2rYZ=8o$!l<)@)) zLX_;q5z36in6WyukdjoAAAsRZz)yfVd!ku{T@o;qoJG^=Is_#MZW>OnOL=P+VO}-& z-JBef@a6)|1--XK*(;KWI_a+Ep+ZNt5*5Cko@muw`R=S3tqD$>fL4Z=LW`#hvR?z6 zOJHYK3PXrF#ErcX|1~fmYy0!T_$IU;FvN-maX6(w1l2iMQPiu-%aBbq6ObG&I2nY+ zG^uS8f7~jy)wr*s&oi|*;@4yF|008G%Y=6TUVwgK+zC0NH!-A+x7t$M2e7PA2=7oS zna#5X&6{X?WptXF-bX4*;`En?)nML;pJEDjI*NvBP3SzvIfxxq?~JP6F$NtWY3IG9 z8#7e7Jfm?dX`a|vQpJttpjdChcnd<$qV&?v*9`jZ;}yu{mi^EJBpaFqv`>?>k%u=zY3QS?=AWi}QIPOewd6c)ygo)71GptAv zGvZ%y&9L(GYJKQDN){faR{M5SEjkU)Dz{5pkCRg2hpc=cQU7rp4SkN)cY`obZzD=7ktqUh5xk@qRuOTJ*Ps%FJ-ZYUs zQ)QH;_>5&kkyJIk3(g<|Qrp6$t0w1Jng~WG%zzK!%ZN7BKXeFRQ9J*Mj>B|_E>gI8 zJ6^;E3Bwf)IXY`M@z5;iP^2!ag~;C-hp~%%4)5A3GDWaykxys<`7*YlmmeRN(oE3I zI~+&r?vYx{h8!nqOj7HKS!F|_AgQ%?mVJBByd6$5kQ%#@nRi6)k=nc)rMCPUQ-@aJ z$Zw?9_F3d?+y|4?=Wq_Lw~*(LK^*UT=XspUximy*41E>)92Hfq^71mfqpxb5YE+)G zI0t#tW>N`RpNz)k2O|ItHO>I~prg-!yDy`$SBR!n_?S>mw&R+BuO#iO$Ob(=2qBY} zCpv}J{eK=LIcSf!Y6)5qYu(;SO! zlKs8T3*9yC@K(reglpfA8uHny8^(r)DWJ9=u9csJXAlI+KfG-bA$ z{oJVR=lFIT863pq0u0r2I}N0oQlxmFLNu^9l7}RWMM|DPA)qMX3gHAswWYZp{rrjaa@#Q_G_b#PVHYFUeoW-Bwe()S4>$SY-`-`1n%!s*ia$()&U=$;a~Re5i0) z9;;ic`g?0Tvv2r{aPeT*yog=dJz_7Hrg#)ha}ilB1-B8)j2K$>dR`vmolkdFnVOc7 zGYk^4Z$=uPHPKbRc?)YqDcHzEYMx1g4aS>R>KTA?r5M%cHftuW-bR^{iAwfK2RabH z4_{)9WTv3ePF^0IBFIKWQRN0sZyAlM`5rQB>-9;`IMHTSv5O2`J<+&RRm6~I8f0mC z*9EBp9cHVVAG6z8;|o;gk`0bforN`tuc9b#ep#R<}&E+mZ?E8Ng0SHo@3T{KggD$Bxzb?27v7j6CmAKrP z%(mEISik_ZqeUn%#=b;Fsuvd%??Bs%mRBAW9-jX5hVuG>TDu8l_Emq!{)f?CL{$c0 z{D$5tl$NDClDm;#5XjyFdl%|O{hee8Ad69~<6FoRxK-^E4^Z$2itI0&Tj zcxbDYGkZ-JO{ZY&8rtio@V<CWNZ$`nrQjgme??w6tJ=86LUU~(UgaDNsn)`Y? znQ}Mh-sC=*;)AwaKx0Nzr*tGYDRfpI-*JOUa?A9gsQKC~n!ErnSixP(JW}i0XQ0v< zf8c%_`jC-%2ds5_&^D)`x9(0azmyTpxLOii_^9l1D=qiXDWJ0Adievp*l(>qX3xEm zeHWCc-cdF#Xf7~?d{9>(vu<}K-LySrB!lm?g+4I{&8Uy)V>Wq5(YWo4<)ja+8OI4-JaNY`;{;YhIU_R+%o;9qZnpM=Wmd#`xle~bm z?4;*zdXidp%U*iEOwV7@^PotBJ8KJGTW?qGYraQMa?DMx^H|G=!YF4qeUN=z@}7UZ+ z7Y2cz#NclsE_(}^Xm2?|Pa?}&PEvoMAI~|@B+D=w6ndUQQ8W9*mlg;epl|fmvbjE4 z7P6l0HJIK?!%gzjC;l+r^!#|i&9q=8m!F~|{#cl#Wj>(OB6n3tVKndhwvde)Szwz^<&i^aNCX5Fsw zo_Sq%FjX)JV3$&7ed98ns?hBmTgx3|x)Cyr*nxgBnA`kOoAs8RJWD0ze z%scwdLN%I48sO-VUJ0>g!W&dOQJ~|p-^z#u9{EaUR~D6u{`&B*sT*AjJ1(PVVd9}f z6@)WY)`+M@bSC*nQ`!0{LUJ5&4UUvN22pUtif?OR%sja45M?Oe|37qKK}x;%z=gp_Hf zj*KX8BC`Agb_DSmU52tILUzq`RQq^SK2$Mp4sIGbP*3Th&TwOzTE>Rk>+4*GS{SNy z5lDlaifMN*Fk;#bl9s~4j--+M3y;$Fc|4v~m%S+m=DIkv5FL*j$`fO%w~#iqGj_@u zJA-y^hlIWKE=R|PaU~e-7dh zBlxmB)BW&{DSk$*E)(-q{|t2nf!3*-T*;admFUXdw=g%U(-(ng#j`%?&CQ#~Cd=`e z4Qt?!(0~ma(+q$QlU#9>Dz_QvQrQ|dxG>bXSqmkzd8m>Lp@unHs0v{-L1>3(B7|Q- zs<3h8mm)3DrjJ6Q_rq@z{H|D&6&lTt>kN0x`IuJ``tm(q9{>L zkm-#l0qxjEb`G5G_`dt91#Ko4KtAZps&Rqnqg7)9(PFHmq2^xNqG_{MJ3#E* zGQUZWXz~xdD2JD2dtBT(&&`YGmhiGU@ID*f)1kBAb0&PI!DlMGr@*@%-eq`4KLsA; zKRzOLtAFq){~o2cnI7eNw9WYc0brrbloRczYw5jAF zwP}Y|uAwz~6Ez_@5PpmV!z4iyu)P|st=85IMx7Z5hrt|nCc=eM@Y$C8J@38VTkaJV zC7?|*0W%4x1cEYShz8|eCr)aEMi|1#ytURoXEK3c+uOeHdw)E>kIXsy>>q2dz4qE` z@4bGs)m>K}t~f8!<ySX4yNeWMCcOz6k3VlRyuDR`QY$=isv1ysex=-DLyL3BiP$z zJMfECcHmY#W_6{}odhQO#ijndZFG$?ospEPou^+w-RrOCZEH)>!yk`E!(s2Ks07f7 zo_;bgCJAhIt{K=xCTkXE%89FX3w2?cPq-V`tP3a&WaV`6^Dq+PShx7XQGTO!^n$g= zxQ#9eNMm zN8>7e_jc8JXeG9Fx}C7|>BX}JQQ5`ypMAnYy!-DyI+D|N^t|fGRP9+9gCmPMGU*}< ztFWFh9%W6%6pLsxJ7MkSh70@xqT6TLe5X&SFAaY%jo(3`>JX}s`dxbmWV&x?PAf31 z)l^57kA~3PI#aFAP#swun7+h8z$VtNodvv}g1EC?06Mr(A4dxKMOrKVFbp@HUncHt zp)=~Llw4o_YpN?HUyB>Io(iJEZO|5g(jU}cz+#V1vjrYa1CouHRktZJF(8{bS^b8p z;c9i3Us-!tb%xDhLZ>#z0L+M$brUi6)Q?a#7TbYGO+@^e5mDURgL$B`Oae{L;z3rk zP<*v@i;dsKdj+?YAcU_a2qBXbLfsFTJzB%k(W@NLCHaQCW9Fk09hYD{a;VRC)D^|6 z879Y2U@l1+wU^H{T=9OirHbElxkZr(hO8$03?N4&zc`ca9 zb8FJ~rYb_r4kdrT!6)pm&0rW0=v~w#)V>4+vO-v3qr$GYMyvD*+iS04re)!B%)bqj z1Hv(xkWX7NBH(Ngn!nO3GMGi9_fagcn)gb=%^vj$RzjjoA|Zw=)F{h9UOcm{~74jGvfNS23?7SNt#i~o#CTX zphkYzOL#0{@dq=*dG914OBMF>9y9ZHC4V2xsC~7!uu0>X$1P9`Gc=U$*U%+4R>#q# zUR#OoPU_s<7&S-_DwKpbe!hu9(4}RU#@tDCY%t+CG8r3pB2i z%KYqU+O!KV&bLuZuI+cTUy)*Hs!9%^SFQYN`OtK0D-?U|Dm?r24n3G6>F1w#-$9Vg zLV(iNUI(&nSNOeS@%Z@q137JDThaXykReD>E}3^m^Ik*t=$Rz$UA(%++qGuus^p*; zxQ1=QV~ldPn|x>PT}#f1Tf0=#_!J`K>8Z#LivdP`iVEuVQ z$rMD14^a}izE>W+1QAD%#^a%CJg}7q*}JxLZYMipeH%u}wG6!v;q!ptA4o0q6~AQi zS(-LM&XTBh_KFWuNlbr3iy)KsViL3AXGMvC9|WaMTIhTOI&#e>em-s9q#xgInrA!V z`b3e~j9JDRpoFcU5|JVm#9z+(NL2g|r7 zLIsyR>H~CaBkK%|O=JZov9(Z>YnB2M?t9w{{{-DoUpLhymt^Gul2E8!?6n-Bgr^Pjmx^d793H zglX(o_@Lxp4UFpQS|>AIg-&3bxx?P8kwevU zSHTmALkat8Z(>q8GPt1$vG@X9+b_5}pnpY5hhVFQv3Z=-Ct`{F91t^+GbJZoVs8j2 zQXbDYijDt>+LUA!&jP9&R=>iT;!~)E7t-#rr0*i<3Vn(^>=D`{OIHo?FWln0$@ zJu>#)hkU;HA<5yrkF-^#EVmGrup?7qp!d8_{J*U$750LCagA33eJb+~FOl#3HQ--n5L)^ih6`0U%Q&%O*M-5H+#7ECeyOMqLTF0fs69c5ei ze18e@z69bHO!kl8guIL#$OtcD#`!j<$@A5RkH!+Wmwx@LYl%x=%=6<-*!McrA<9ga*%+;6(WkcBe9=OO_14_uN&$5fX6%(9WW zhZQ+i+mLw;??j>Puru0TE61IK4ft79lMn$v^I120Ths2QZ<$<$BK`97R!0_D^50m7ptn*V@}Fk;d&O7t zC!+L}{~Bza)O@AD*6uo~38~}nPxxKC(_FzWa*wSQ0VDU1h=Bl%IlZ<6;(EOIswgWB zyA0e+xY`V>UXz=9HDtLyfntl5hTlV1`NcB?pz5D07gIcQeDh(@I%th94Zn_G*UxAm z?`E}&eRsgOw~r3c24E(yxjg(Uo~e;%x{(&lGy^KsnNgXp{s7&?$!3_Tigw{_GK}hA zn+#XB=lW-qT5c29|Aspfv<1W_FW-GSHIW*kR0?9?H1WQ~?PjO7{!;z@;;!!NmtlzFAe-PHxt>1#nmz^b6C}ZA-57){$JOhgJY{fEhOk!l zbaL4rBA_7X;x}WE$-`=f(k8%Hkdor|Ayo$X_ZK*et0l5b8BB3l3IUb0YY-dXy_lqR zkui4vhHin&$~Bye>s8!|y3O#khAf*AIqUJ_lQ|`r0%9Xs2Rbd{)2m1_z9_zMQS+lv z`kq!x zvH}y)W7FkpIx2!8T!v?vMu(}~_hd>%>7C&NUnU$IAH|bKU=SbJ-gh0r*|B zX(lUe-v$h1iOlJN3l}g{HXZ$`8%RHppILVyr`*s_D_xDP3D17qv&7bb&%)K1x_#^4 zMU{clvhci=FXIbpY%Q3_brLme0vle}Vy`EG*7%^V4K(hCdX(QiSeFy8C=b6iLWIRN zC_E-qslQG2NUF!8dNNc`rs|ocda_l|Y}GSY^~_N{xvHmF^^~ZdC90=X^;D{!dsNT8 zs^^ha>ih=+^RoT#(pq{>0unsaB)jXC#KDUO`l zLJA!%JL&Ip^!IuCyNmvkqDRXf`b+8_Ew9txHu`&z{*uxM1^ZN6D8_3GUExyXdbQ;w z{Ux0belgoZ+8!;W`O!i;A9Spwwvf(83*CCtWvkjkIv*``4cbCFA1$QwL3gAo-Ib^< zr0qd>nrh1|`b*&>@g8^WWv6xt{CUrc>o3yE)W(+ya59RBhceauRHyr14@CEhFisPp*Zmvmz@j(#JW>XwzW zN9I(py17ezcbI(T5^8g!Pf}o&xAdiD-=8A&O$c^{zkr#aC!1Yj-~0@C{V)FNnbC|9 zY*OS{ifk$}4%t3%9qkJy8PZVMeUKTXF6$69chVI8H+=1cm2?1BEQ@~xgTb+(zSNUb zv!JywgU{BXRjBxpWC)?}-*GQs+lR!rW(uoEf?S1p%Grw)k2qlMIQOp<Kvz~CeiQFNqcHa#g;eVW zW8m({jZkbFfCGvD0bi|wh=nRKgHW=pJiG{tr{=Vw`c=$55$9AaVn$mmqbIEyf7n&Q z`%)wy&RT)_{o(X)qWcjxcO5HUCs;esJ8_BuBOG89z!U?jTcodoo_vM8WFZlkyyFk6 z?kL8SbjMWpVBV8It-bC6K>}HKW-IEesm`eFoO6Ca9;O2mx0xwslBc4oxtVPd$WD3) z&tw?sD>!1RWgnxkp3FXodF0`Qzc$r5#E$q+O|3r<3%9{35p^3fFvY zR9*pYDxIdDe(0tuT>axV>@-^>*d`}Fd#3b6jj6VIg6C_IN!p`(VnDc>^dQ;=6r2A8 z!}_cvzsTrk(GG|jd%m2P7JkYkIls^45%JY-v87Y_aEAYUn$n)7_{E+N3sj5uv|^HO zCBD=bpaQg;Zo7g#|6mrM~Nq^%U{-=YqI*+1JFqkEg26VLYz(V8rMQa)}9>OLeh}_P4OS z)k!@ca#hWAWo<&w1rO!Uh4e3UkHF|sq+qtHWD?n0)FeRlyV5p6$CHD;;7NKL01>$ytU#5my19tUQTPTj>I( zlP#O$JtnTlg_13vtDH|28*v#0wh05(m-@j#U+}kQ4;G6X@$M<~Df1iK`ik3!M$=Kn z-Dh5i7ddE!`qXPc%|&zYC{{6{@A0|DV<5C16Pwoa3Y?alW5E6UgiiM4oW9KeiO9%|`icz~ZJo6R{6ogcdpk|=E1jIx$%^K@f4;9ulK3YH>iFPHUvPD1UvP9R z6LB0Nci(czTQpbkryARo_6%F6%i9-Jo_xemdsUz)mm=vD<=;y`Bq0IbmAY95*a_5S zBcAGJb56j$b}CQaYfy`3)lLi)-NWA>FgW2Qi%9&*VnglKtf&s=V(l~~np!(aiB1r` zc=n(?Sz@RKtS>Q$UbO0Ei|aVD?%EH?QnEC=<+6#0uR4B#b~}BVrG3i9Peu6*$gQom z47TX3v$@CqBMJ4gCTMzDtn-_35%1go(Ew|Zf55Dqx}D`Wu;K>68o;9%;8h~$Rc2!V z55WqoohsYS^}dwdd{!1PdfHE)yH$CJ6&0vknz@|uw{3Zk*7BZ2%X^YrHnXBqb<6Aj zH(K7RwY*htxoA0Wb_)rcTb}*P8=cD=?YOkjjzpu|wMMsVjcP68EBWD7x1e0R;~cDG zZfPIIC{&);KSJ`5s-Vc5w^VRWRn|y`H9&e~1DPi}rz>krhBZ?I6M1wf?om(%J|;Lb zlsd@!HC7?0r2?yv)KZC6SkzKWp2>MNFg3#(iHWL-RhZP$47Sv)mSieVnt(qP;d$u- z3tNh%*!OWMROQn-Z3|&&R9ULMb75`z!rDo&Y~aj`l=we1MMMmC(CHF-J|r(1BZx6= z?KE#-#Tx{xpRbr2ni6ZLA8L%Gv3AuVA&m zEfjL%3suKykY7fzMSLnE`};L)9f9Wisre}D{w6lz|70q(ML=w0QC7SSzz|;uXaM-~ zQ~mL&#`BR>_$Gs36xL8>(AqA{WXm$xBtBLFncS|{F4dd2Q1kQty1|N|O@YIL29W(| z)pJa2ScmJXL&|fQU4kv(HfyvQF*19<^5kqh%&nC;Vfi)QSqqcFpecazFaJVMkHFKf z$pin8?S%8HJbTnB<#hR8G8oznu-g9Czwm~)nco^X8Z`#kIqMngXGUi<=NNqYO*_bm zyiydB7Txff|Dw@&5x&L6-?kgiz9WF+-?ppv!9_Q8!Elxq-@LYimR1b4nXBas3G_xn%CI#qa?P8D9J^Mse_Y+>&Hyhlx%j8**mFsuE2Kl$0+;YV8X1DWk;SK)&dHYiFb zr&ad06}SrI1R3%#-Er}amTH%nneS16W5`nSt_ye;qk|BT`5CrYe}2k|c-)g-fBuVX zgTXzi-fhAJSXN{U-6=bwJ|W%K;kua>Wm(S{huGWx^OJcmK}bfqXu^(j=l%V#2{=e$ zW*$%#>bzwi(GDOK)9Fm%YZYbT%+C_Xn#<3|;|p@m+Fs)(9?zBx(t_GgA0IWrD%ihqTd5_MnotO9MtlH^i;qQN*=;lLTz&`IR zfa?4vY;LGKp0AI_+uTCqk-x6MMwI9JH1E-$)?Nj2tE~g?7OHk*Y4y=L>Z5bjm+3I< zH9F{eIY{xkD{HgZ;wte4`|xEVimDu^gI)FI2k=ScU=Bw0~=}he9SR%~r zc=m(!gGjmmnAJT|%6S9O1jAmov0CC+T5c2jRVL{VgTUn8qdK>X>o3BHEv%ijur_0r zeq3yi<-8SU{|Q4w*7E^*C)p6det2iz0+Vx6-hx@;`VI{Dye5hN$aqI zFNG#m-VLI@8`{`Sfh){PRPs!QH;DwW-8kp#X5^gZ^>=_2x4Y1IPA&HBvDtTfU^BFx zGO6~hxRRtBG5RznLR0pw%;jrl#lF{7ccUsd1ms_Ro2U5fm?u-N%~=Gem)xx8JT zw4VERMJ7I;29kh#7qjoeiL}Px!iluTpge)A!0)iqmuRlbJC*zmhT7Fkes%}!Fh?qw ze@8h?nC++Wj%N>3>6E2$z~79*<_fCHj#Ysu zxJTUeE>*CJ0^8<46Pd#{wvngT`g0FG%j`SZke&rPvySI#h?to3*;bs#Agfe2SgRYA zx?BU>L^H^-UafwfFJ`vS))d&bKSyTms3F7}NKfj8!z6cG{pUVmLDjK|`OkfdH&dIY zgX9As9k|{fyLB?{zQ4LF!W5_zKf6v_}+tPtf$xa%6R`jx)9fJ zXA8KpSOAj!{X*%3hVYO6Esmcg|A+*@sOxwwd)RJzaI9z5&$9#mXeun17JfQ373i-J z?O>ERo)2|EuR(?b+Fg@I=SkWj(&QwY|B5y;M(#iZn>n!2$#XyFS;49s(GNDKXL&no zXwXiF9F4}qHb;Z|@0jCxjlb214^JAs{;{tO$!mLmO%67__*YG#kmaETHurO`mk}Er ze0ghuDsQ#PyT!&c81tkJ=KHFZId9z^-hN7-^2z*U=U9G%7Ah8~fDT5tCAf)mkGS5N zhOA`f!rH63qkPUt=A9ask<3R%G9MVp7XmPn`ALjqn)oWNvp$WJl(Cg{6>4>(E$I0k zaFQf{EiVy2ac^a{)ACs>*;3AZN@pntTpx_XPM$+{GLeQPG8vhPshO;8<>!c%T%B{4 zxX5!F7h&>qwocC=a*$2PL1cm4l3z84EdF{?9eooF8LI_O;sQ?M+^xDB#O#moMwp^y zI<~TP1em;Q6HI#GCR{hb*ePZoMy*HD_Yc~kv=S9u_tQgI@P|_ie3lL90bRW5z+*jMe>!s@e%7rVk!-?q)%8SI=c!?R!|kW&+W@lL`Bg0|r?=|JS!DWUypPH2VK%3-17F1;ncT?L z;|}N?5@#T}AcwVkGj0Fe4bV^Mvc@l;X9k~{&o4iz6#qhT?-E>hCMy$Ln)LhlWSwEu zCKeL+?D(dCDxq&?{mo2w@CRW6T@AG!O0Gj`6Bar@#dSY!-z|C{BE?gf^?M4`9YiDY zCJ=PQ#?A}zIO!Q9dt4cwd2$Tby-Ys}g9WmJ0@(aph0RK|#Ff^(fR2{^=Tj3ZV&-1i z9L)FLb2J6;ZVH+%bB-~_pH@y6$$|^=0spW856Gsvo)l@Ja_URPpQ+lzknBM#l%a=G zBv@sZmg-(L*xpJq4eiS5)toBGr(xJcF9x4iulII|O~bGVgyhq{`2yFHB^lJjEIY&( zenr>0j{aV`-+S!w3Bk0=nFc9%DCiIG|A6lMK;kuVEq_fxe~qZfF`>v-9d_*>*oGnQ zM!%}XzY*BesEbylUOVu38b;k6BqQVBa+`?<5fakz45dA=&LC-#ba)Nt+=I%R{8ZMh zI)=rkXJdr71*NwZ@4{`zzoW7?-3EzX)P-cfTF%WwFtjLiEI>iY0`oE055^Mt8vRJu z(vM{({bYQPelmYRKUufa&#ZF#$*!TF*-z5XoL|z<+?Tn>hCceqzlIbF3Lc=JVmxjc zzyp2&3pF3S+o&fTtnK0@U`^p*rE{>Z;b6_+V11K=W#wSyaIkLUU@hWct>9oi%)w$D ztUVko($gcPEBQMB;X`zh)btT<`#J}98wo-r5pO6}&lwPQm~{vR4k7nWVdnUgxDyJ? zRUE?WID{O~tnYFNZ{ZNm=Mdh-A;gtv;9*>L(3)9nd@^a=)+djfq&Gi-H$Rm(Z{f{< zgE#+e-aKz9lj9=mKHj{KH~(+E`L}rUXE}oA&=BRWrJwvEK5jH%J+STO1LjhQE zaRY~d(@EA64#7Pf0vCsXMj`wqjKa)v9EJV_nL@Ai5t#Ou&m2BwviOvl#k-r$yE~gt znK^vQ%;i%i7rQ#J>Px-X&btygpZph05I!?9`IN}wb72;r3)$4wFF|M)E4sL287_MF zhh%hLV2{CsAmt)wG-70qVdOAtzJu<@g^j(!MsHh!>2(DU1P_G|ymujvN1Jivk+H~) zs68q)h%dC~96R?|DSC!h+JHsXe+ctx?c-^SltZz3R#?uXwp5QfE)S{mFtQWcgxJGw zk;%h5=Yty+RA8<{N6)KEHpKXtl&Hcpk(-!(n594)JCqNNC?S(a zSTzMTjVV_F2!p7VY#+7>&$x~IYz})9%3w2 zeQHih!X9vZ{iPaamui@7fdwg}#@6YYh_;4eB(q#>9THo+Sclb5+`dMg=o6-C)-Co- zTKH-ZQVjCrOwZedDoxJsD$R7~6cM$AOr`l*x|E$Rwx)}%6E)9;P#Y9pm88r#3Xg0- zm{7yB#^!gSuSv*lY>Rxej8$joVEL_Fi`RG{88G7kSk$ww4BNAp!nXCRV9PXI(Y}!U zaA}_FPSSPq<8ClhWppiPa++WP~ym7e8*$P^LS#J0i9Ui;}(PiF-?)5cih4YHWwx zsqCn4QQK>66VZj_;l~Qa)iWbP4?Qhbl{b}U-(p++Mcs`51ny>IRo4!uD!q@N8*U964g%6X){V>*FYs&@PEjVMF zxMf_g91FktOgtXSd_`z5N%P^0a#3`Bm~$4MB2%>8FP_(;waHkMIu9>bkSJ$yy%$K^ z)WB6ZP!<2cW%A&y_}So03zNKRH~9(&Z?!`9$8K)Ezow=JPd$y=si)7f7B3~NhaMLc zzojH3_^_p**^7YU5M6HVIJg6?9lt{VpF8Iv)k1DaCVDZ@JGtvwb0^zITl{t0!>Y74 z&)`hW=|zilZ`^Y=86wZiR&psd4M}>T^NhE*_PWupbKq-j(pPSpt9q7*PfsUbDz#Hs z6S_pAu%u(!D=@*-xG3(G&_2>(%4dq0TWAhrf!LIN}42C3X{flrvCy#m2V(Vd}KaoXuB+NR+R`M=<9@1NTtewU~f%!{Fb>~=48+VU8HD!$c5xId?&FjcB zFUC6@z*Fcva^_rHs(afOm3Ix~f1GVV*Hs!Cbi>5(<({Uwn`l+ojAoGYY~8Mo0R%nI zZH7`U2=2KLB30;|;f|S)F6SsmzeDxy&yRsmY2kiMQ^^~1%2&E#wgtqc(fW2A%BMO(-Xx8as7lTcwr=ZFHXk2JS)s)YW75| z1s92xGavm<&N0nj1o^)>hD|I86knIk{iLs)DYl-l^|<<(BP_PwS*MH$Vj~JzzF)-r zpQg@d7tej*v+QSa;O&#(zd_6f?p}#pUqXvENLq-twkhyXAdG%274)yLLryQmO*PD@ z(a$FRGlmc>#9elQIq9>Re@-vN9k=3_?hw6C0*69Pr>iET!7;gPDv1?;NSZG) zpve5=Hk7qt>BRj_i9r6yqj{w!(fbo9$TH9pW&J()SYk$Jwv&}QDOFs52c*;}o|&nl z7o(`c7t#9}&WaLA^bU}RZt@1ootU$dT($`ZQFGTSHcgv^8s200KL~h=D>oyBao4WG zMA&LO7bW{om`gLOdXN=Q6l_6Q-4Eo+G56oosUMyXR!#$pUmTgf-D+&L-U_K ze)$`;z>FQ*pr>ljsiPGfWOB3sjmzYyjehemZ~7@}E-OvE=p%uT@V8;$HWl?SdAX1hSCRN3%{JqPL6gbee%m zbbtB0xn}4e$nytWe0)XU`}pw*oUk)S`)NkePGa-0zaZgBk7q*ndU&5J@f>WK1zwKp zFB$N10sePu7&(DOP%@0^F9Od|N%1>P{6raF(rp@|ILag#SwtD&+#LnP%`*)Yp`-#} zTQi$|LbHauL}!vx?-IsOM$^Tpjiasc9oQ!iypV=i6-4ieOR@UPv;@6ef=}|G{O91a zCPl~Rw?^?P5z06|v)MdEFFJHvF$-}sm!onNw}{Sn^cTeZN%;S+o{+^6UD<;bWW!6J z{xX|me8u~E0<^IrsEx@7*iCT;l41II7^wZk`lvY9;h5#LT8Um3^uh!Mv(P4r?=@iF83it$S0+w$j* zuaTSd(?F);g2YD^hjXEYMvpyVrqRC(NB!~H9OXEm(u(}#Va~jCR1@K1Iw?VU>BmS$gd|QyfR0K^M{>G}zu;OzG?feFhHO2Ra7*Xw>O6sP ziwk}F3?#BP{B#4*8WEWpiEN%py-T9wum3AlHh!`+KJh*OB@o}8DT(Dhv7X;X7pJgf zC9OAhpg&Va3J;{qxNmo}31h2j{-`OX*aY-vALQO^i2mNCiib4yg;hCcwfy#BrqWv5 zA--_HC)6|hX+YNO7jexE=5&eKZ!lpa-e52pS%SF%GA!Wk3DSiZ(NWl8S0A$v6^gBA zRQr(abJs2qg-2WZA51=-)5Y>PhJ=O?j)t1Q5wk;HjA(Y)bs7)0AX!TO#saam6JwuH<54JIh$D{*pT)7|C`hMF665ASA zp2eh-m&8yT=l&y~wwyHzi5#gFqW8WDdW1uez{S?eR4#>U?!SBSS=_r^e8PC%7^2N1 z&{*|B)p6W2xyDxZgy@|`ITpA8l?(8yiZC z)--YNQPpwMXPG4KJr?V{71JHjk|M|cfnf{e$s z^CMmmGS=kD$6cbhw^KvCY9EZu+-}vkj@`U&)iE?$Y%r<*Z|U`44;f)V?SqM3C+uEH zbzSZU5t=Opqzy4V4^!>kY;i7zhEeUES_B!@8C0voxVAQujkLR4Ie;O*eHCV3?cQPL z4i@cf=G5BP4cdFH=c_eTXs|IqF<_(7gF?823(xix+gcu$`#WdMdm>8Nbgfb_h z`&?wehEQQFl!4m@#Q3~eXhP^N%sYWLC!xY#$@jgaO21dlIUo zy~;3dIodIfxbmsASoAvSXrz->hk?H^XOKBewjOt`^)sKa*|+?~7;|=8&#=Q*JMsWw zPDr>plsN|hzBxqe0YQ`sRIGd=EOf%2D$Lih>RVGr}RR{W=!J;dQmmw~7%{|g@O*9z-ml>;)TFUAV&NDL20xkr{t;IP>r z!Sjaz-J7^XB8iY^7YDLaIZXY+)=q0+cZ(G##O%*F*aN&{m0uvdCf*Ie@G1DY55XQp zu#p^pf`9HeafntN6tmC357b);0zrBO-#HVo?K-eUSmNPf4bdwOYe)s)5)c!NRXEH) zG;8=jItrZzZ&(L00d4xvVJqH021IP;ew1QQW95sw5wl?ZP9m4LKJ^p<^z3MeL9x9BSYiQIbL`aY?ze2P(Kce6#)*{ zD2*WArH4?Q_&bD7OMDC7r{Vbla+KLQB-;|ck>EQtRx>8IIfuX(vkz$WE$c+9e2Q_> zf#p}dMYOD;xgRm@y^Ac=wfhfoFKtV6x&m@153bcI`kvq_Mc>C65=mueV9s~yt5JSw zau6C=VxAE9uEJ&JXQi~B;0l9l&HcF6R8-Qsd0ef=MdqQ{=t>j3WTm-LZ0#9mr8zKm zp*gNC1gfL^Pp&n`Yd{=^rRH$bQgegY`g!8|25R&P(_q~lyWHq&%`CnCuU~1c(HEKn zAiC%wLC?Z^Lkr7;q-quP6`FiYHb;GB#OHi-Daie(e1#l7O4k(8#DUb9#UyF*2+;}w zD~7gQ;DRt9Epoob?A^A{-7`R9vUd22>ti7tJmJMq=8KTeFkcA^ASQj1;P5rfaa`x` z)=uQ>HF=JH&ot!JtlJ7O&)pW8rm=CKxgOJz>+9S*PTbp{lHlIH{9o$lKl~U*`kt5_ z)pmIYfV+wnz=c-;DOMiQrZuqC^hw&}OP?TSw`+TCq~NGn0YZ9uHBn1g%m#8_5z!7W zke-Pbljwgyn`8q#2TJPcDAxm{6thE+SdFX#a!J);of*!LC3wAHP(t8L}N$PIvKsS;#m-en-K+M=Rw zHQKQ1{^FsMX?zUR?SP9595v^;`$B-d@;nZjwhU2%UmwN1u_O6LV&JOY(%2C(r}X;( zTR~WCoLiXO$?PT&m^*81_56-)(}g6jE?2r=yG);4HnUQRm6%n>c7{HA8(4{e0<~&? zwnP4%K^d7)I}@bjl-lX+j?((`<`mWBks(rmLe?Jpd z_a{|OtcCVX~hqL<~P>`2dtz9riQ|Hy>A^fe|x zUQu4UC#tx28fs^Xugbq;_Gg)82Xk+_DE}@luUD6QcX7Q&*zrXE0X0Au3br#Y;N1+W zVFah(>QWKlh1gM zttnAPn%!yp(b|F?Iv4T@H2Ygn&&z*4)e38!G(o#v6koOfE}@rzx>+mGQC+d`_yFQd z8M)1sw*NL#_k)spP$VitKIkyo%`aWY@D@2y@NP2e&xA4cO!qB1Pp%MqKK3mdF-Cjh zktzEokV$q=KZ_;+&Km_-19l$*Ywcuy+G#>3M)lSbfp%7QMsBl++{6(<#})0nt4hTaL`ORFnj41m2eP337vHk2DI)m z`*sbRP`w@#X>+7Vi2^d3Z_{-OHTSxdTUWmnyoe7fhDD@MF+gwM9;|((J2Vo?+&s^A zLTs!;S?BKcZMENGj_nDJL3;xd(@U|26ipxe=9js?V)sVU}oS8_y?0%n> zl(JHczBM&tG|&nFa%St*{S+^Tlyoh?-STnruLWc}bH$rVX7iSI{oSQ` z0&BNx@j9?0mzGbrqARVFWJFdl1L^{PFO|+lx1uE!@8i8kQM-F;KD`_g*RAIjr4^6U zC8=_@c+)p>6Wz`qFV9t_yk2qLPhk}KI+~nC8A)9;6FT;q!La5!jhoLHgOGK9gf$LE zgluKBevm?#&xwj?gcH#hrf2M*>*hpi1s69O?1%WVJ_#f5_!du&11TEKgvb87!V>d1}oxp1r^(FxMX=lap(H zmXtml0HmdW`9dX7Yir^vV2{$m9OFG=DXVzw#?j7<9iQdo&)Ucqn^~C!qBLC-X>iBTP}wF&2ueO|4J`%oYsD_~5-2rQvt}gWI2Opj@qsSNr?XvJ(B@$h%PMd^$UV_;l$W_D0@^g}bM z#2mwFsi2mam^@Uf+V?Pf|FW|3u!@J6_Tij1XWt>3h?R6G4f++=s|$G2>UgykLFEd`nSi{?Y5yF z;_^)bUd%)%c&_%9oKGxe!-{{z*xnP>rI1dLv)UQO5v5ohw6>U+-B}KxhhOSOSL3H` zZj2f$M`>32@ftPw7ah& z1*1#Ga3iq1L2w!Ias=3cJ!*4p6nw=S1=kdu%eGuM&Sh=NG`7 zCckd=tM=on{5k`!DM#1lr-0~l7G1RW)=t#gXTVCUk2B%A((u=U@py0w@EEi?FWxMK zs!gnkeCWaSh56!!UDD}D8iPtt<2H3?DqnMOQsW_>Nwcqc6DO{)33viXp11t@lBXsi z!zz0KWbbjs%}ZrXRz1uPCou^WNjRgJav7hvS>qGvL4LY#vCbrXi^p(?!^9z=gUB8* z1U+<=c9NaeBLIp(b-&7anET%+J2Mk=gsmSa5y2lxE%FubH~I2^tKYv7?Q|jS)cc8e zC6OvHK^?I_zYZwPtGT3(jK98$N_0lLSoD5; zk)O+sxEJH~$e%mCu-Xk;wV|YHGhbU^8*w#XdB)h>r^Uu!U~oA3xBx55fceTx%9Ovw zieesJQE2)=?XV!C{}+?Z?=h+vtTx8%=2G=lR4Om>+<(X6ija?VS44?j^zx z(PggvG-;RK${ol9p2~a@w@3EVDr)yQGv=E0Y5eUD@Bi!%VLFuZ8h17h9cD1V_RO~%Qx^NeA=?Jb4pwgn|=8=-EXBhW7K-pLcE(rwTAQpyzW{^3J&@=yw|`RuJi)D_`z4nM7RD` zs5eo$Fs9i=r)zf6c!XJr3f(}5c)v}TB*(QYhj$=(SxmpC@MXTjfgv@b6ypKo;XHRt zY+Om_N)p9jB5VP&ngue84%@oLrb0Z03P*&%fI8W5lUh->npAYgfgUp9>5rzA?ftVC>75ppPyRB4RRhMim%)$juo zKhe{7;XgJN&|CeGk0%`5WLx{Adg&b*w zFG3z}7^=-MixqiTQsg0t>pk1rVWWV2;WOl~PjCH_oUkevQ$0((aZibFX&iVg&`TlF z2qyx7u+pHDhbf6VaKI}I1f4qc7+P2%lJeW!0GoB^oIN^%1`y7nJf|c!p)sa!F$M{9 zg!7z3?uwA`GV1unLU=csPA@4w;pI>P$Zb;STC5-S_k5YZ7Wn80Q$j+9&oae$Aaot{ z5-(Ik2!}LJ2;Bv8Q<#bX9OMJT*bx#GpP+>Bu2RogXbP<`@oeq3ch^j@^4n%xhvy69 z5Uh)+gX2dRh&EXg8}E#BJi)XVy_?8X23`37h`aFD4$BM0>^Jay5T_e==&#X}7H2Fv zPB=3D$uxd6vH&z`JK??|aow;oO!6IKU<;}uAhx!kGygxV8rRX&rSUH?pqGUO_>FNF zssPygF*NnmLUuxPrT{4nV-}g2!{V!q-w?zo3PnCwOH8c}vLnh!fvc*1#9%TQ)+~pm zpwvGyky(C8=6`7D>PxQOPM?K8-oj?L(pdP<1Rc&kT&S z+8kVD0)83!`(D}7m)3m)hFdy0bvJU-wop8H7zM~|aG&Q4SNmoTU3~vg2&#!{ z+_#PRuj6#6i^OVV%;DhF7{C*%#;Y(p9_Ns1&V6Q5`_KZ2s*aPaog|M}M{m;Ed*^z6 z0$xs%S;`-?lz}X~IS*+{&xqB-qIV@SHK0((NpG9yVe1inv@-EV z?`x97H#Oxk#+nTK!$>5Q> zuY_WHu%qYR1DSkuJ^2CrCqf`>p5X`|;dNJ?gLKS5-#*hoK~=R;c;IWfNuv`GyGIEG zH66@c^$iH|9d2q-^;tqM0zgE)H#66JBbrZt7-{}t8YuG^DoS5%x@1fd3aQ+pjos&5 zV+vIWU~Q_>l&2oj3FH)Sy%LA=VH`Ou$eUa(@rnp7icvVx9>-CA0A+-GkPqQE>2dt%9_BOuOP%Ow z)kgiBLC(C8RaD{EIwbRxNFhkTWNSd0GbnT7!H+}hK)Vhw(U*gs5cHlT&`*$kAn94Y z%iBkY(yIrxwm+h-Xz&y4k7GR#Ag1rJBswrm9nc|nXzcP!4!Z`o^bl5Bhe{D2X&_e} z*Camzk#~T@{)PtoSAlKO!N$4lv}nl2&*u;(9Lt|$=|?cE&^?(6UYNXISeL;eMqmjH(!XeCQQKqsB~oMz6FnD+!AaUtZoWJdD15| z)QAsH<}L%x6Lq&$XkDSS3%r=C5AR3y{eR5*HaYS22``}^U*BfBN7Z%4{tqCQP&WBJ z0DwbF?R|M%6vy)Tz%GZ1?y9J$s6^3dM4g@c+F4XkFkA|FL<}H@pa=+yqCrK$gRB^$ z#w$kgiYA(5)oF2W>DzW-Z}ndxl->RN_cxY({*C7TlNBIq=e~hB^I}k$X2wosF{lLXH2!4rkpEykXr|>I zr%Y%zHoqpzx-_)2KU!7%%KVKx%YtB`ZM~07+M}%+3jWOTF3Ih0tE^y`!Vu^B?RLuX zFNYQ((8~4NsYX96`LTPU$-kug311L{9CTE1t~vOxda>U3HTojofEg|? zacXKp=fW44G)6}98pO3{5d~+=78Kk|t5*3d%i}djb8Rq=`o-?8vIyqPR zB=4V@l#7MWY*j~17rQU7zqXCmGc0Rr!v-j;Up0TX5hUaXe)kyhB>BXl@gQ{Lke*ZzcH71DC-qfzMZQU&R_nU3~m(%%_@Mv`wPvXN#@rqvqzpK;MuW%etmX-g@=l`~8dinXk zK|VZKXHDu}k6f$)ni-GlK5gs&x9vmCi|;CkK+b1WaK)nuPk zhQzGUV=A>1j{Q!T~%$=+3 zVP8@2`+u{Qtz|-*N;#pGrZn_3E3Ij=(=N0#^KJ~wti5P|c|=XtA+3N-*KRM2`car~1wG6qc%ABI(k?SzZ17O^*VNHo#HS<4D#aZPsB&U(J|8 z%~Xf9vYfPP$mUFT(o8U+XszzKm$}v|Tx(zAI_t2l!gX2QN5E)@su>5YG;UL994wiN zPTf+dRA_{5H_h~LP&|JNr3UmynEdL9)iwlr(VFZ5gE>SU&8C#7^5p zDX9eBO=)EsZA&Fvrs;7S_|s_HE7@vIkISaCa*ei&k}cQtC^My1XtX_*Y=x%BUCq=( znyD91w~ahw?lx#&GqqGR@;A-s-!)@yYNo!c^zGV050+cmKq={ z*C_1}V8eKzF}F%OX;sqtru$7ws@Tb_!z#sem%gm2g3Z6f+s9@Jud+(7vY`mPeS}$I zUH%PTT`at6n`^=^XhxjR`cbQCb_ucG<1~md>VPRjRF+PF4mb_>Aq}82oHSFyHRcWp zY^F&)1NRctF)a{VtFZ-=IG+Ja5sr4VRAX;A&)dlq3dUmPxn=PGB;;S(2l!?B zue60$&R#^Vl(t2!lpwf88G>6}0eEFO!YBpkl~(FKUsmt=@_Nr#)IDGM7tfc+W<9N4 zT@AH4EoxrIG4FppWM!orJnwi3y`jnty}=2=EvgaRLJRQ98ie7jV3aEuE(%74g5e5q zTs0Wz(O8@tz~$T0m5()cqRr^{9C#4H3wxk<->Na z0AUK`29UCgzMXqrZPz-;qYlC?Q22*$8UQPQKJNha+%-hK-#dtU3BfIb5ZuBO;FTc= z!%M-C6bv5)!&AZV12}f27r?Qrg8+_uWM*R!z~w(rc$HV5()zsSL9Tr51PiY|HypIe zUio%@H>^Aa-LP^UQdchpM-B5u6OtChbUi2Ar2i26MW^$7@WQJ_$t4DiZ>2*apg ztXDA76^xAvMh3#zj4(0*iZwOfidY5BfLz=IGaEAjF26SZRbJD}>hoFvx$>RkExe}R zv{IgN)5>8cK*})$cG-2cv+JNabx_{TH;t>6-;9nx>*AY;o6L@gn`H=Yk&WOM`2eq+ zjWE^#v=eQawJ!{^``6!8Xe~9aYf-yLKvlpJI{xT zK9+S-^wI0#3w`VdaCt!LtGsf5)aNx5a^>ApExdA%t&~fTt-N{y)LwzS>S}%JAip{& z=y82spM!^qo-elCQQq5RtNjp?HIMFF>(!(CIaifZU(p8cZOw2`xc9NZ>wmUf22J;?&Efcy6r*!sSbdhfUCq|&zN^m6^#di8u4l{U1?%k?|z z)raP*w2AqD-M&|ny>9MH%s(1Lg*;RMx}ugt9q+XRKE? z0Lrvb7FVyV49e6{7G1BsN+`piz07)eleRiwu1&EwUh_6PVBbMH2!G9@5W{c0u|Q(qc%*p)LjPv5*Esa))FO>Gl@Dhjaka zdPwsiO@|Z*DGZVfiGkz>=>gDC3hlH6+5;d(K+1+Tyr4V*5(CKiq@N*e zgY-4@^C3vrAU%R)3uUVywTDDO@`E%NQpzSXkJF)z4>p_OXeg_+@GiqUJ+_)*M`&j* zq)bRgNC}WeLJEO&4{*vL4FFh%L_xX&`7UsGh13jEHslvV`V!J+NV^~vK{^iUtmPd& z;k`|O_a;C?AAr@C@_XvBF=JC>j2LzsK~c#QG3=HCjZMa|B31bK)WqbJ_(WqY=n^U) zn>0QKtFaAFPD_c2icCnrTB5i%&4dq+r+7W1%`J3d6os$EL)@ zfKJ+k$0x=cp>ix{V-p@ZHg!~ZOnN-L`wuKUGJ14csxdq^I(|HcjZGaNm167}4b5Zg zRRhyvQYHq)q{JqrjEzi;is_dUGcGMAF=`^ltNdaj$H(+di8sarF~KoW#`q+lAf+v$~QGAB`FGu zl2ZD`L>i$3gHmEr5$Y0kaEvh|E+r;1Iw&PR3CNy^&9&|STG>GxDC?V+k^&Ezt1!$K z;rT_T8og6el2S12n8H_Is5Am+H-I+igvf;WNw0O&Da0#1uTkR*^!#o!C^^d9XQ(fs-_$0S;?uVG&CsgWZSV$7ua#g9yhOqtjhWHc2U^fnT!m}Kl${o1}sW0NCOV(O4E7xf@xLTKWI_{3;z-D}d@Hz^H0i_KTYH$G~NQh;HF z^?K7HC(xY}5mxZTRAbE8ka*~~RMdkA!V1(Oph)qF&>t3b3@doO4eX3MG!Y1kPEh!W zNk#){QBiCylDogGUWML0I3^`k(Vh3b2L*Whk%U<*lM-SqU}&)SAZuyr3u=86W0SD6 zio67a?7=L9>MTT|QkctBgJAF?Q)7Z-#zrQ`C8Yq?AWRVfAB7@p17;rZIs}k|>6S9@ z@xUbHhan!642EgcgFvCIxj{jF2Zc~(%6fYZ?j7W7rE_&X&X8=3MY5s{)C+m*W0wG8 z4rXu&h6ULG;mLy|Q{p2NjeUXU6f_a`O)^vBo0w`uBa2~qFZ8%~Y%DT%6a7J~uzvM; zf2jg%jwntW8)MbxA1vHi^H0@7BIAwyl2U>}NfKfLM~((n^iIb{+92h!2r=euZNGPP zbc!MglFBcsPRN0qPDnC9amN^wl81m`CQX2O2kYw>?CaGpC26c#39%<{dK;F98A0Is z#Egnh1UZgRipD-wO1u-JE%|cHD=j$zEQQfJa*wSo`KKiqN~s-t4!6JGUCruDW*hvH#DKRBT6Vw5BGQ0fYK4w4U~ z{DvwlsHqA|c2;30A%#I%0;DOB@_s;bs10U|sj&3OwCMOGvv_$WB=n6;3{6ac5eR_S zLmsJRLS$;HrAMIz1TG%*BqcZ|WjyE_l!PXxyj=D_d09SB(OQmlDnMu83^7f1G6iZ) z{T)q1+)UvvXxTf^HOJd2$G<8kw8n^MDf{bSXt!zQ9N4t>GYT}>D*zf?{(0zgv>T4H zfm_bP9m-EAl?*xo$2cWxay4d5*KD7;RM|`Qz!XQH*c>IpFGt7ZraAI+mHmQ3vi6w| zfoq$y5CJ(#b&gUQo3ju-aR-mJQGnR2eduPJvwX9HgU-D)HYbl9p1I7zW^B&frOJ6N z3WLUG3NcQ(3lSfK$`2O+&HdeTm!s^A0%K>>LWCD&vN!oirv6R?O@WSsOheQ`CWnE8 zf`ZE*Bd$7{nwSPkrkM!S6zBx?jzOmW>VYQBprC=l<@3?T9tG(Gva0RVG^Un0eS8kj zM7?2CkBlCOj5O!0$u*eqo$wEp1GtBqcS1M$*UUI#bjo_-IQb^D7JB5lbs_rYAJkgb zhyAtYGv;b@CfA53jCTBF7o&saC@Jy8)P~`f9ktvrlefDm)G24MYfgZhc-Ux{(=X%> zV1}HWW{-Xg>&j1dPE(85jj=g{opS5}c#=KPMch;WCGJss7J?zA8Z z?lk3hgaI>9U{tG{-mz8NYqk}1c2Lef^vNo!_B5(&0)qG{UPfnAKOeDZykky3x11?n zckH?s=JfO7r*LU);hmanbefYXz^V7NUusn_hyhNw7_`?Gs_LN}`lXrC8KLyk=Ja#Q znWFu;p=oeP?P>U@*;Zoe=lZdaP2sPOmV#=fz_!t|!hblvgrjP7-HbKGQM0Y6(b1d$ zt;s>*%{fcqt&X{tz+AH|g}IlxJ83#lpFh)w6xw3*Kw-Jcrk`uKer~41!gANFDH4{` zk4j6-n(StK*c%-YicQfxE<~mVM#dX$l8JTyF{|3fsC@mc+9pktHQ5xq7D?67PO)-G9yr=sFw_m3VoFz2%%Z7+rMQtFnzu&7i^M zp8KBH4u3K7_4nsUkX~yk;)SSJ&{>6pnIkYz)T7W|b#EOv6N|Xj9+5mzS zaMN@5me%{dtoXH-%bItyo8S7?HcOj=Qv?m$)YR6}mbN|7v*-j=G~dGWE-2nb&qJD8 z|KWUF&pNos?gjkRu@3fJ=2Qm<{ivyf-K&~e;mn1LTUueaJ^NalVfFqaZRb)5UU|3p zc-sSK0zBO+m;aF5ef>8-eG%_@a>SpVe`_;0u=SlR&v6SceAc&#U2eBc%RQg$&-c1J zt=T8jrtkFJFP;1HM6GX!^aE!+lMa>6xs`dO|E~G#d+(VsCiGoC_i=J*MxQ-b=U#jA z#j`t8z8=_j<<0TG7C-3LD|=cOuddowUsr#t{q?7VPrdG}JNxkQonHn_`s{>vO!47Q zn|%3ge(PUX_iG%}$|-Hy%(U@GeEf&@DO)$67wH|}-3|6%_uB~lPa{Or@_8TBj`*^2 zrCUMB+Bt0GsXt90m`Xa2$a!*k)YqR?KYVxps-h8BGZX!ee7?x-W7|Oy2Rox(Ot53c z$1EEA%rH*h@WSe3^sn0RL9}>1Fn3X6v#dW1Kc4Z3X?+LH=NXT%I@E`|Hhxz z-7|Q8xh+0nligl+<{bm6-_vK(Z|4^5KmQNIfj|E|9+};ALh*(&LodJKzxW^Ax8Spz zM-1~028(H4$DH>q-DJ2nYS#kZ`{WDWlL~Iv)$o_ z3-@~E+V7h;qs22XgS%nvEq?90x2LXu&oFu8%CbGt8U0RP4V9xlvM=rwG9jz>(`ouo zp9-xfMRo40E7&N#lXHrj-ha^!?9U70mDxib+iofUb>^2U@ldvRABSyA(%8#A1#+D0 z=}wo4d%k%e@L$f_S1{z#+UZ}e`hmC+_g&L|54@p#p=yJwB%MC&Sch z3a%ZP{H**?`{nQD>s94mJFVLRJ8jS*JMHG5?X=p{cG}7kC@ZzoVmIuxrN2V{ zH%R{g_!iVx!2PbBHt)WjHuHBoZT>?@e?a~Jt#-U@w55XMxM%Tdo=I(jdV7`AW*SkaAyO#Qo z_gV55y!z#3fZGOO6{LLt`^e@p1%~=IfUDYXE<;zx{g%7Ig166tXLy09JY%rb$!3~0 zmUkm~0VEeo`DshLrvcY_zxjUJQjb~k3oOqoS}`qA|v)}dazgCV6r%P-pFv7XQl56^Ukw+@A#@WS4QejR{?0xvq?v#0VO z#~4Ti)xRxLPa#>CIJ4o zO20e3*8Z!bYaLrOf;@~L0T8b6hva!MP?PcoX$K!jnR!B#9!!Mx5?+#24D@xg`Xwa- zg?EOM^}3C^&AP3+9lAZb0^LDfk*-*GQg=mHsxy-5WCoc@W|OnYIb`}ph%6?9s1Rx>6-Gr+(Nr9jKqXT~DxJ!pGO288HZ_OJqZUw$ zsby3?wT4Jcc`XqgpE}^f`rF0oxPFK*CbQN7q*U%WFW*iwO zM$5P{?o3z4gTWb!;TVbWWV{$3#*YbNLYSdU7!$!nGjU7;lgt>IbS8tzWU`sr%p4|< zS->o2mNEIv8fHDSk=e{_Wp*%om;&Y?Q^XWACz-QM2~*0HG387JQ^`~@)l3b8v1->74GyOG_@Ze@3{d)NZ@AX~&1vnScJYzcdXEoIBta<+o4WUJU} zwuZ$xHRs4VaazuqbKzV$H_n~w%6V`&M{yh{ah{wP=fnANL0kwolndh`xM(hp+rjPO z3b=z@5m(H)^IiEWzM8M$F+nXj3QmGna28wyH^E)#DtHLEKna{637&$N;3N16K|+Wy zR0tCyglHj7ND$VG8^z7yR&j^8M=THzibZ0vcv3tomWUN%rC23ai!~x9sU=6rNzzKr zl8fXjxk>I)SII-dB}(EXN%EAuBp=C73X+PXV(FxGRw|LMNTpJlR4!FWl~R>dE!9Yv zUafc3JL$E0XT6KwRqv*E*LT(L(C^U~=nv|P^u_v<`m_2H{S|$wzD!@Puh3WOtMt|S z8a*bfWk=ab*2>PZi|i`9$?kGj*+a%?&P;96)R2ixbH3oA~rW|yLt8qu% z3D@GzxC`!zyW#G5SKI@~aSG>f3HQXka39&JtIkd5uIsAv(BV2t$LWUZ!gLY3XkDBxL6@vE>e6)?x=dZRZnkcY zE>E{Ww^+AKm#@Rmx27NLFU~-(!D^sqXnaoEi4e$2wR1N z!danAs1nqov*<2TqL&yV!nB8>Md&c-iwxj@8Q9}J!1op4wMOSexDpjxfU|G)!@BwwMRNW?OxdEG03@ zlR_5fI6I7+&ws_|h|{H7eK+K>;CIg?q^*%F@?B945lRJS0;KT32K-pgPmvsTKUX?<(c~+0AGi% zB;3heWGyAIt%cu&Y{^?z);*BljqN0k62Gwz*quV0bQ;mT*-Z01d?T}*o5!<4Zy`XK zE3_6?}>L1`hYcUD7BD=NF${U(l+UtLf2^hC;FxOVFu(7BRbmZ zqKH{UBk}}wo?0%h7k?0aq!Id2daTr3e+{(k8)7?ALmUUI8=xPmkI^rauNkmPGo59` zcJeM6MjfX^#i7y#6f=QOh58mJD1rl7eMI<@Y26Yw+NYx1UdhiJVjn0yHf#FFg1)? zOKqWQsiWK(u7rES+3=0{mb?c~^ZqcxllZCp3_hP<%WvTe`NRBi{x|*(U(4GG&4i8u z>h~~Vq!15!JO%Xl8)3U}MzEDKr3+G$K3kusU#9;D%nr6-)z`{fcnRiKBhs16iI$&?p0fC{1pQzO8C8bhT}6Tx$u zMSVgoqE=8Fz*pKy?Wc}Vr>U#d9jcOgMA?9MbRT?`4$M*J9@7A3`XAVHTqRe-Y57k4 zSm0>^zmcCM923d~Sqv7(h^ItBN|e?}wsLcMwEU4gS6(8ollRJpe~eEP@n5Zpo+`yIF}R4|!7K5GU>9c+^TFbOL+m0l z$hqVa@&|H1*tff6D;V?T;AMUX{^cR6hVBR++bkv?=vgZH>XF@1VI162btj0X)H&t= zX!>&AS?D0l62^;b#GT-0xPn~`khV)hV1(D|H|u4XXR!#C67wD)r&9#m7rd}u0wa7U z=OE0@En(eC$}Gbv~HZ9>&FFhL%2jPgPYFn2EVI<%Mh_l zm0~Zxqkf`~(p$J+K!)3cz4#V1&q?ee%|(3Ysg(Jum}mm?Ul%fhOosVw8MzxI@)kLa zp2f^#IQDyXCwrIgB-qFfa)4}-KLrUX220!?yai;hR2cg0v?Jaa?*LxFV!RyZVCH_L z>qW$YjO+vX_?@sNH896|k)a^(iR3phV;+Zbv7wq!?I@B;f*4>Qb&R?XI@yCBNvDFZ zKA&DnuLDoKnx4XZ%9z+O++yx9ca8HCuZV=)+R(|+13Z^q;Ikmxs8Z$wFMJO4-bmdf zLI-nqIGI3B0B*h{k5d;ZmX4=Cr@Jz%nJvr)&W)ePI|`@tm-S7+XTu6q7+Rg!fq$>t zs|x`6zDYM=+Oa)29Y02h6eA_-H4hLwX?{k;+Y(!d-NZejnkc7Jxcx#)@mujHkmCrL zgX5$GDOuX4|4J@Hbe5_xSGcv(IS`k~v@9-?5TOY4&hJnMBNPC23W%ZO9OSz?~JMAS-Q`W*SW z+|97uaKwPQsj)Eh9Wy*0{{?TLo1*(l*Piet3W?KTc^oKbN}wXa%A|qzt^wO}kUCBU zKpZs^;-%AcDwD%_L3|Mn@x)X-Ou;=&tI1CN2}t zi9~W2eIDYdRt%C>Cx{+4a;G^j;XQpneUN?_(B^2sJk^Tc-DUn{{5U^;44=t=!{6nf z@($oJy(9D#M2HGP!P+JXJH(sfTuCeUK)eU36}?-6AHy%}{?O5cNQ4u~#CT#UX#YU6 zJ>^c(U^yp&wH!-Nr?=3%ncGZjwhzQc3&1~lz}kv#hMu6mYDNAB;Xe~M!6)I!<>1ln z2P=GlbKsltZFo2SJs#(I-kbO1cY!xi$~OibS}dFt7U*|@9N5cPvYG!c@ICk<7*~NA z3^Cw6CK2MVuh^cv$ouf2{762D&){?Tg}k3|NwU+&%ga#TWvY?8hh^&CC5D4{xfJZV z4WnVkFjFB){E=zJ4rY(?6%aqEA#QSoh>3z8@fHGw4}}zArm#p@FYFY463&5#bys*S zJQtdY%f-E7j(($lul^iJHzlu@@5)-3Cr2A*fbU`Ew=a0;v+xD@SNJykNBksy6?~{C zxD)u~@9Fx0kJ*!GN4^U&{2lTP)fVF7CJ<3J<2nj{$VbaJ%is}3@60mT3^zyQ?n+F) zT=-t-ChA3R@nz)Ykojj(t{x)S!QdyRgVkIF(pkuz%v(sXNSW3H&wiG#enhirHc4DAX1BeO#kkLaYEkuP+%$ z4WXJdt(m^eN6cErgB92T><8>sk`+i7qf}&LtLtjebJdkPXP;WE9xVG;$jG zF*zTs=UVbxay!H}N652aE3QDSPzFAG1zAb%hZz3^cb;?RZG_LjbNp7^4PM+i@rL*i zV)Aj)T8Jw58IBsR8-6o902^e7q2nS|5JesUy&yjl>$x(p*y#{aRq~#~5|H=KVx+i5v;kkS8axCCePewaeP=zP z7xe@5AL=K7*SJu>PJa#juqS#axdTMw62#!a@(6i4#M=AibMj639>mY~1~&s|P<%Ap z4y!=l6@fUlBSfY1bk}vi>0F5sL<}*Om_SSgFL@C}kPit@av@nrULqS)%_&!^Bh?G6 zrxz7S4W&j==~OoL8F(27sAp6Q(1mmzJh#8_5$DZ6Y6_v zr;G*JDf+yFyhXpOSIbz09frQlFh$3L&s_l#4T`hulo&#W*gjYH8N{z9kf(3JAFH5; zD>0Ux5<{5qCR{KV#;+8@#DU=TV|nJbrqP?&!G`&UUll*Y4vTbDe1pM4x@@3i1 zpff}pjNs#bXSiUvtJpF-4E-7!$7AvN5Pw$T?RCDE2>g=nHbfLgVkL2rXh=%r81f77 zkp3h?V7A;3K3aEr1Z|@C(iL=jCXLy^lrqggeh;uLHu3@@Vnq9eke{C4};DGN~5JOAm-@--r+2HfxJVpndWf{gE-d(Y@Y|jVS9-S+WIhhSJz<2r>`BMYZzn>t^vs31$>v#r8^J(H&q5%Ak zJZ2Hld5hV{4u=Rq=1)VEd_@}y7Ef6z5_W5$`OWoEMPaecXkz(IjD#Cv{&Y+Bf3?@ zDbj;-r+YEer24CWwQ?iGYmmM9vn1UxU4m|+Zl-R&E?>6={Grpj9fSu(Q4%$e8U>EP*Sa@pK$ZVs2nE#Tq=ldx9UAZ!sRQ34xL4mwaH+Dcs@X8B!u0`^g(Z>`VO zZ&Y;7UeT=xJPuFA?TB5>Ru0RvSA0)Tav7J;tpR(xk=x8|ty{^}Ky-}d+bi+bVfGCB z@>;IzzrC893^8*$vJ0EdZG8y+`W3MmM&b-{34BI7(uwR!_97W_FxZ@EGLxJIaoiR9 z3&w?a1z!xUCVPNCb{e8Fcj;5GdPqmia#0MU^I{D;flKC$FteZGS_y)%tj?ntD9dQP zPTDJW`5(wbjWB;715LjLv(;mWAHEkFqkbWHF_zLLRA?yYHIxmz8w}nRn zCbktji@ii1BqvZzh6n=FIw+ri4In-t7K7DuCcD9?yh{;a{c9LC+k|b&wr6qHzy`BX z>;!fey9na?-Rx2JGR$VRtcL5r^#W}U=AyV%E{mJbZQ%}p9n9kw@QYz)%jehd>-qEY zRm7j0gVHZfItQ?wvB1q%zJ&jcUn0oj6Dd`HS3gn?Q08X`MSn{uHM5Lu$-OUDh!N5= zNr{C#9hCU5Ej|{XuPfHw(B0Q{B>E6v5*rDY&E-GiKj&BTU-1w5LEtyc5KRyvtp}^C zk{U{_q;?V(#Mo`9Xb%fAEu_gBI; zuvO=UYQbK7PfPJ#-34NpL?%{(^7kKi}JiVmZCvaZ6r z!VT#@!~%`=@90DHqCCccWjZMH1VlfmRLh=rrccrpq6x{t`IO~pOY)ebub@)4<6om@-q1gSm(PSW7QyKEvdHDJJh>W4~Wk>N>2@k2r(TrAdAWY z58yLuDYb%HOKkxEdpq?bb&k43l~a!>jBZFf)9oP+ARvAmK}SK)%2TV8<1Ch`;@C-AUX<+3) zVLoTRVZLJunBzR~PhzuNfC-BZ%@$L9dd^f%)Px1zc5(b0jr+|*l25?kmK9@ zef|&r8TiN!U@@D5z3d=#7xc>N?1x|#Q-lnN+SXSdV9US-d=C7|39yxtuVB8AcjwGb0qMKGCRo#>aCr_Qhs8KQBMK>xY}ZD-PsOZ>Gbi zt0VB~D!+V{t&Od1!=4+OUJ0rV`{HPU_33s%QL?T(-pyVWs&3T0W8b9Yi7D};;*4%x zqq@22c%F6hkB>@8N==G2y7f&;N$#m@kGqofb(>9{m?V#bX7&l z$3`pRoBdk0yrnFkDQF+aPd{mpiJaB!$Nj`K$+_{E_|;rtL`1NUg)c;ls_O=SwvLx) zKac95&lShX>7H)g5etx9E-kop#ly3G`#X9p<$FC@SH^k9C~zwOrbz9%Wb$Hi?ewJd zKqtg^Jj~)BBB{yH@G;x_m#ZMH6Tk7xv+Od~w?#>z^Q`;nTqzUsW1;;mYGGI1 z;i-%)E!*<4+x;^TNiNQByJ|lk!uuz=f$gke_JGYxl~1R}V3dGu#M<%otM7|g@MN{w zw7VZRhudpX{kzpF+mXG0y(#bveIreTO}CqmZin_0W?qZHyD+cC;b;@m-$3bXb}2Ut zSCR0=%KPHaU`4Ejy|?2{!TMC6dAo{~03+H~&GjW=y)puvI}ahBf~n!E@r@S+WMek*TBPrY=n?xOQ`y3~oS(zm0CJ&v9?C?_;$+{q7R79qc;swKVOa zU;FoK;itxs*m_U6f3Ai;fxfTt;1*COMa9s_%j5|Qi$UPHqi8m2DHdD5ZQ(P^KIwY< zgVk-HYWcbSb+G8k(Nt-AYvFYIyme}r>)G{j>$umrvm!j6E!Q&Zp{aA;Zuec#v?FeP z%1`xd=6NKd&D4j@CqB}k*XQl3ePJ3|eJw^NAe-^h<)i4h_x;c9OVRl;Za|)||5jbl zdYi^~fvGblwOGkNEp(-^SIKwO^k+$vL>EU);uElw_F|tTj8l16O|%>L-NTP5Hu3gt z2Q79&Ti#(=F8fc92$g3BuOy%6UA4E3a7hmQ`mMX3=6T7t3VlQJ-|*PxewdQlDW*T& z&MYjG@zt|^MeD{QAR%*xQNX}adH!^C<kt@NiLBiR` zrzycw=#-&t-pgT=gXlNe(wu;fUZo&=Bg=h?<6yt6T@QafKEC~dkR(CJ+{3n%*y&!e zwrQuXyMyYx+PO^A*5#)9m0WAzH6n)=0j8#OxmGy_YdK#+K?n1b(rklpP)CX>jj*~L zfRzCCAFT5PCc`xp#E|-mQp^dmXu7(8u6e-dsYs*+}Z=-(7#?{k_?w38U74Sqv81=P#fqtUX z$t}ITE>_i@N=Hptx!>ucVmAVX>jjMhA2Li@1lML`Qz5a8bGX>MFE&k1idCu%n?=6( zdXON7!hvqw5)C8wHwhm`H*PcL!xcj#4WnPRbuOU_zAY8y(}7Nm62pE6JHcgm*&bdf zomo&wv|}A~N!WgFcOCX`>>W*F%8#`W*Lj)NT7E)yd8aq8F55#?!==4=dOdb;AK&@n zH{V{T&24ZI&sS=eVW*=*7VU<=m^r;K0u#oy0(x5lB$jq3&ec9_SD^wh=soZ^1Z%$< zqM`N&ycM>Vbh_PcZf0v$nlrx7b-SEReZE5$4MaegP_XI5H<2mWw;tpDj0yOZ5Zx=D zgL_Gm7$4?<4Pcrv`w7|b?y4#L6ldbJRch1yr&(lM;H5ypzQ21akE>3wvYWX`X7T>E zVxnN0vW7OUzOH_qKWW3T+t}0n`l5ghi`@QdXICw|soLT6(LS zU3puR1Sc+R3o@N8Ws3*VVeUm$6> zoBXaT9EieCx|6+X6BzjDdh77`OMw9}iu3e)8!CRZ(0m`i(LUVl4bX4+xNEbI@2<@4 zaLoJ{LN%FI7QkW(OyZlMO4axHXY|tZDDQOHpP8*b|0+ZvHQ@XOYM9Zgy_ke(k1b_%Mh~FkI7it0;2>9{}rfmJ?Zb8}?5z!$s;! zuw(T0VugW;A`iB%BGU6+YIp4k6{?lbO)oJ~XjSTAskzrv;vvt$uxI@8aIEX2KLb>5 z&DG-FTgY>NRZ%YkFKKxBt|;6}Vh9}nylT9zDf7^0Po+Ruzl(H~%w%2h+8=G*;%PFQ zYHPFT&EnY0+jI~W@q>eUD3iP!c?)qgC#?9|&X7W;{x+u~W{ij!Y>mrojB-ld?aLF$ zH~`=Bxy>B!9rl#Kl;=rdZLO$zRGokdTZ*D4deJBbh@E*_3`dSS<2!kwz6&JW-8^K4 zYGqX0hNM-8@w@jrJDB)V?Ov>S{k*Fwl!7KVCrREKY^L)^#KW!roAHqZa`VQ^Y%`_AihUuRzy!AvUrn!A@mhwo!g zib_uIBIIdowjVtM)qjZXREesEX^umZMEKNfS?5OyyoY? zadEHUeN{ZbPy6z+yVz!~na<`*x7Ph}+uQSb!Xb?@eg47K?l|B|=Vt%1d3h~E(thqT zckOu1g{hbQYOOBX8}LrEH;20XXXUV!Qqm)Dn{B4t@T>U?Y;mtrLAq^Ht4$ z0RCtA?Ga>eL3m1Qc$s7PuU|3{SXKBl+RZx!t}Fcew> za0c>xgs8s~p?egDdobE|N8b~+Q^ru$EX)*JC|YNQD+l51rSC=R0vy?%m8`!Wmg5EA zNT2rfsuY*MWI!{UPb>B>sGd3nmcZ*Si>r#j<1&ZS~E8+PV815PizcTWmcdKqzgtQJap z1^%!Wxt?}OVbSy2ukc(~T~7(wWbC$-PH1<&9oO}T5_)(vXSv>?255w5#u-4L554cc ziICj+Ah)+keT>Fe)gl@`tTlfMNZn$>f>$|DyG7u)F^wcUReZ$QRJwUsGo_Xhyg5HU zC3*m^F20^r*s2Q2w&LnR?P5Onhg+AYub*vP4ZbW?OEC>x18#GTI_`VC6jsuab90tl zj%^&sDebf`7CC$ymQ5#XcG-*@(g2EQU*|uT-KlLkgx|dXUVSXwi8`Fym%AKuq$&TC!I?2ll(GW z=|u~k#zgd_>2vS!UGA^7&$5@cK7t>oMH#+^A|KuofBF7`| zMvt$3_fx(%e>qoM2uw@5TZv8%~I;NC%q zVEVf+=QWQQpPk5T@iT!7`eXLL&HJM+zA$$OyBE*(&ljb&JIbz>C#3*}JVzJP)2k{8 z@agK+fBKWA4P=BLx^7nOTdv-*R>SBj8JSK*FQ2MzN)K!IdfOU;?p9@&ciVzD9p10^ zkp^6Ei0z%EMVrl3TdPWWvGHC`9B-dYezu7{soevOTlVitScjPS%LV7PNE_Jx;hmSt zF+3Y~`b!HNC^6hj)0ymKKmQeL83ql$tD29{ztNGX8Nq&M;UxJ9z)%(n_;N4EC7;?9 zEO@)Q6qt>*YzVM`fW#T4$f2cT#U%5>@31E3r zopw{2X8A?1U#2)!c)yMX{IS=@0*C1_d$*2DuavFT`WWSo{{+F9`+F0PjOP(i_9Yy} zQS#XEeyJ{|^&&1xt$xgxA<*A!z@;Fi$T61*WnM&YxS_5Lsq1fphjlv&l;4k%7bCvV z_X#q6AmYPOn`s2byF+H-C$ild!fxw(*3E})hRbR9WU@;x!p9D3FxHnSxBZXa7?~Cs z?k^t;B~ah+-Lj=!$L&J@MrR9!As#xh2z}ey-5|#y|3=o;Ys|r_!#_@!nP*LAZO30< zREA$3pO>#G`{o9_Z8SR)%z%3c0-)dX$G5nkJVuv|aPH6V@2Fkh=#9xearwVp8Kus@ zpGEod2c9zlv2M6-2(=MYLspG>)4}#c1oqy)N$z#Q4HKPw=DL3V+K1L6obVZ9R^&T? zQe0o^Zea59>ZohrI-z}=ydJRX1=j+-R8{0VVaSMV<9s}9I`0#Da{`q}cE(RYw$)ru zTeTuv_Gl&gGSfw^1^kiJC8IF(j6Y4~T!x#%u}$se@V9^*z6{ro$Gh=|sq5H5-%^Fzt>d(8wZ^gkoU&caBkyh9^(w#lZjQ&F&_OmN915Z?JHfBQpJ>zw3 z;rruvlKUcGwZps~wqN8c=AhClktLb_@^n;^()N}Kt&`yvXEEnX9%eh+SRmW0$%O46 zo8M#%rjw(Ixf@3(7;B_C?>Sz1@9!lqP%kqzVnyU#D zCLFUAdDd*9uIIk6@dBGB2-RiVio#->fb(~5d$ggpt4p3*q4(^Y=#V$e9popK zeC&7cfop?jiT)3+deqzM8y^J!oL#DZCh#i`WAyhhAQPCs!EP&_zjvF@zy~_>Y7*tg znwFk!THe0$XXzhSzA_Dgk!Ahp>(ka+*Re77kTO&6IEV+Wye&gjZEXBum0O$J=a*B z1entEQ2yT1JSJsxrkp0G5c*h@Nj9D+);f|f16EFEPyOR)+XlP(&J2S9>GUWwk?eze z4BIlHlOfG^w5YWLJ)L+2#v6Bnf13EF1{#)51|6I&&G>cA{TeK@6Rq0L6!6Q1OasX; zEUu?Vg!kb)D<01y8}y$;@%`-ItNG4&^A29mYD5q@U>WxD5V+rbz+Ni_!^CTaaQ=?= zzOYOranpeRk&}U?O7Mdj`7DwR_%08jPQ}La^5lpw3`XjSUJZU79J^y$4{LjP;_+=Y zUfS_qO!ZBehZ}q zfVA}hTd=%91!KAu*fF4pGOS{7;|^&XoIivIP++HOZ{^zQCLi7t;T}vt#E2PR92^}7 zYA9Gd0ge*%B?6Tilq85Qc+Oy@zGK?g9Hb^9YUpsF$_)cIvNh;&fUGO7&tdVZKlVgk}O9D-d59Of!h9FUy!g8(9#L7X(`W8CN|pWQV#Oay!`ihOG_h>YLGt za{$T?*}3oBC4277im>T0GYV`WkQxO7O_&r1nH9)i55p}?5=&zYu>!*xl*4Wq=(oen z4X(dK-v(zN)VV`=6T*55*%6#;%*-4#YfK+&N{p%vBxi;=2=?mv=P6-I5NpLwIH#mE z$E^YP|4>-m;V*|u12XKy-o`)&<>Q?of#SCIsxG=s8Ir}7v(lFbuOKFnhhhr~88WIT z^cCNyT!H8Tl#y2G-O|YX%Vk4E6G$A@2h42YI9=|Mt`D zhPFQB<-e4N3PU;sa{MoI;CVrI#>mtFsUUcLNTHDN9ojaeRZDpz3SQ$NewJ^BqD*h+d=_2vB|y?;$^c#KvGn zL72sX>dc4}knRc4sX-b$3iU|7NdF5`J=j5nqYa@paJ?^0DhDE9<~t~-ePAe1g(3(z z@MywtILL;8`99Jc$`vrq;CLWqJ*F*0rw9dz2KfMea1e|0{~|;|8;EetK->dR|BG_3 zPdx$tDCp(CDCw%WZ-eqB66uBFKY{!vf_;N?0)9{Y4FQ6Z8H+r)!WiI*xdNgQB1pQRJ#p4U zCkGepKsp9lI}++cHt(>uLD{Pr8o%G=^PRxn6QdOej~XMTBWM2yYBe-bP>nIw|JAzQ zf80CY;o1T8h)^?m;v;+u2?GD0RLDU|kY|QI2$IN0ss47}*ZDsWhT;=pp@vS`A$JS{ zc~m)6Z;%ghJ^a~s1Tb&oZ$-lRILJpq--LT1I{?*CctENhwi})mz!*?P8Idu>NBD*M z0PepufE4{2{ArAWgY-ifKOL?#=!F=W9^#uPgfD_1L{{IiF;zL36tH!N{25gr+9N3I z>I3Hr+B@*m7z_siff!9Zq=6WL*nkK*4kDT` zZ8}0}a7G`}Q3!uM0t_f+SpTIg9>g4i3kWI^4sK+SNd)b|j?h~o^9D`jL!ThNhL{** zM1Y$D5tz|oj4?gYZNaksFObfTDF2-ZbURpW&=~1~ZxDq10Mb5cX57C)X+Z=N(4qf> z9SXFAK64N=K^pbCVJnAP4#I={MeKLOeFEzp)FX@xQd$JWsWIyaq#6)E0UEL%+!r7S zeSbGuVodam`i{UDLbt={2=QfKE(Nl>U=?F}Y4Cj!-VrFTe3UNOr9ebuwiURRpdZRe ziox?B;J~$j4m*s>g0L^({GJG|5CWj%2~0c?WYFmdhJf}yB+x-wj{veAsB@s?e+B~b z%$X)qdN)^q^=f7|v&;0&7n9~5BQpmn4ip+JXe zkO%b@G;auFKKB1;9|3;4V+Qh>|7cJBpN{LlgWLir=!gPxs37=kfCVTttTuQIff*rT zsu`$zNQgdW6evj$=-3!wRGtw3{UUhyAG08kLW=sJrb6^~IB)#n%pgI>zkmo6GYn3j zBQq{}AVvagX|NX1R~ZZxoHq1Q2YPIUW8}Cx+CMD$|AV?D}Fj4K7U^yKNPCGqK+M!`=$}HI` zc4ZP=>036L7d$r49avGX7{w>H?$=#FZ#8P}D{)#dJXOp)uQ|KGEGN#(F8(aOSS*e< zvnrYFbb4pb_0pt_nZQNc#`g*6yQgt-bgVTO$}kLBLWP#MwC$@mUy3Jb z!hDU5j~tS%E}$tyZyPJ2U0PSoce_O; z{cj>t!{g>p9!o6z?y`ND_O2=Dzi}i_^!j3|lRS>MC1Bs_jfHJlUljj_E(Xip!Mw8l z{;VH&y0`fDks%$#c0wQhDWCRgDw;rG&p_=%}=m0HnbZ((n1YOU?I0+yA4-l;G0b@q-TRFulodh50)g!OeHh}fz=o%HVc_l`;1Q-0GJgGXFh$NoTYU( zX_!P`7dK$WwT5~6MQYu38O0cDRWSau3d$vHo`24ormWeZc7tD3bxzHZ!CKGGEm`L` zdH16b+M|a2ik2?F^DPPi31MPSoT=#c_cEV-=@SboxlS4}DRP4@sl6o1d_sXeLPV$Q z;lBd%>=yae)|yMet5x(8H+~!PCwz|D8T15om9!znK=DEy9{jf z&Q*t23<|2=fiT#cA z_ce6Rx$7L?%asXT-}99TcUtwje*KjzRG~;en~@AY4V!lzCH=b~hX{xe^J`gJW2a3| z8Xo__F#3bR30_j00mIOnBPteh3-KRJV5;$JHqFPYxd2o5**5)j(udx-3qlla$vJYF zj7-!0OQ3NXGjI!Qpt+faxJm0r*1?NpwNx&mihQnAj9uz6jyA~;@}KQ4zi4nWeM)hg z&yhTk^KZ^2m4)g06E)^^W%b4sOQdAW2H&4F>c)%XqWK8$X&ILL`V}hZ_t3X)(;)<#V((j2eX ziw3IY_v^^fMq^_!Y6LOsuw?70Dz_Xtb+^JLMMTA#Btd*_LSIM!I*kIHKmCQ3)hPKH z?DxXo6;`SB<-Y>?N+&{3#k{J`1K^{NUevwnBqehH87T%pAI=+Hw=WF!zH-IEimK%% z3UCUa{KU*#)Etx|m0Qi07_(b06pm%V_i+pM@?NJV;8%&c)GmqaP3p!UoAdm6+T@`r zwYrcQL6$@wq@#5NHOF=@PpKhw+9BV8vFx+JP6MA?G=t7NwyC<$9-r7r!Pe2VHA;Z@ zb|iiJi|D{8q$eYre0HGp%eZ>gKfdE2iOI1hMQffpi9fT07=S{9Xz^;@U^r40FRigY z)LFRbY^C(_Ra5bAJ@s8aG+9Q;a)PJUa*^iisbZqG398KzGpE8)#$u`nz5u#?reMp? zvGb61JVyZH6%7}Sx5k5}_kcipNV?~SQNTh8@hFX)&hjR-MQl_&Vw!@4gPYV~lF4s9 z+O`G1#Otcd{YQ1pbC;wJf2+x*A{U_jDrF3fWmHqYjwP91IoiWJ4QK4`Dxx|s(&A-O zqtJ_y^;!?~9YiNsdXp|O_|LC?Y%*W7>mOpU{X~ac*UQ+L9WN9P%754QBKPvTqXKTw zv{XgkkJ61<9>Sb^lW?TNxrbjBJLZp`e(7%XIo1Ho65PLcZ&V@dE zeDz~SCwdwPmr0ja*;`bsqfi6>e4GH9ke&7oPjoGLIhKRWM6 zba8O+h{LKWhR3d5^h@PuyTBRlx>(J#&=w)p%jEDqW~lx8&s#+`z4S(XT81iLj>WFB zH3?KVP>sP^g9L+Eg^@E96ShKi>Y_8t%Veps(g&7QM=$|E^R`j&Gp}l$uUs!izck;u zC~6788d{+G_qC^x_Nb6oBd>&jhn!}j45i94H|YZ&tj9eN$JLfZRiLMEGI04vb|S6A zIK&pw)eWcfOGOELv(Qpv>7%v$Ww;NQ z;$_I6O3P)foo(%JEj)Yvr&o3M9(G9m*rU58fu%D+t2zoI!^9^u=P=fyGYq-;LKT@I zinefTh$0>zVfpdqHI`mnLTyS_;hosLHi?s3F|#mHy4Q8mUTQ3QF?M{E$5Y(cCaUWn zETlTc$5v?~vep$n)XkG%5)5|*y8LMmy6XyJ$@L6gM|z7H0j%Yf5p>j@M(gqNH~%e7r3_Bq=KIceuSarc1Q!Tb`E z_Vs$)UHIrf-E(&Ss|FNnyefR`Hca0vF7rn#xL(wRN0EOAkrwy;WvDD@1^d&JudH_? zbtd&dhEP=hdKRIs5M>a{2Nf4+^mjiXq>6z%8fh-i&x&2Tp+MIp><1^R^pw5kUS^6k z21g$@mTHA|BLCs7gGPjHsD6}@_7TB@VT=37Yj1+9tX<4A_o97Wzhz4m-h#2spPCaul%Sr;CiU)9R3Ts+V74V(jnS!IBF>9Tyvw zjnU$_AMCID)9{hl_gqjuAv?W9OWnH>26!wHV?VUuAK^J#D`1gU-kGI#;L}v>0wN9& z%~~8u8o)VFq&OVqnGMQAt=q^eC4@+hvMCe`&4QDYRaw*u|1uGOz`Q~EkCsW-ZY&7P z#ZSr^Q^2hAhN?-M+zhCVsMg1jp_XLB9180mi9KqLlUFAEjSXv&Nud50dM|gBtW6T@ zCLL+`C@ov)8b+40#;6eK8zRoxDq9Q=?9K|VN*u-l#*=vZpYOyjE<)e>;_kP{H%GX_ zBuci%VVEqh_$FwS2q4e;>S-)xA==T|2%%Xn-z1FvL3HSPW0RKLWX)(%Xu-Bh-n7dC z{16%Lq*zO&$z+snr{;mI*vKM>BD}&9$g^I$Vwg4mvyj<}iygTkpeY7G_L@p-;x?Lb z^&i<$x|8i(ewfQ-+ak1!Luole3AZ${)i2k?N3BF3{so{I(%aknb0j!z#kSD|m7HWz z>Jy4uaE4F-t(Q!Qipxk@h1wC{6P;eTA(Skk$2mydd=GEOL6#zdy8SllZfcX-?}r{@meg^J?ri-77h&*Vtb@yC%UBo8Yb{uy_3aM?Qy5?L>7Owg+v5}>dz@X@ z40=yV6Mx1bwh@WTqDe+saeAiH!D{7ztD*MXAJ@dfA&Dl*6|v6|*ZDL$#{mV5YgVX! zaH=gjb2%G|Hr<-T)Z~`xDk)hN@V4t#pvwJuz7s0ZR`CNkBcW2SmjKl;=1(p(J-I5X z9rtNRXrEubH@KksGs9lp2WOQQN7OXGJI!?Etr*>oM8`Ebj;@?QqscgK)T4!Tia`1* zuDhP!bxxDjM!qBBXDoxTy!x=-AUcj~>v(OwE(ybzoBbIv+}>!W_TM!L18P!{0j7pI z)qoh@DO$p0L&|~siXk`OB^c}BQ16MH+FL*M0?d-hE0Q>Pw_4KWwwe4!c+qByvLd`4 z{6FFV;0zl_=iHoH+{k}~`AM@d8i zalpVkO?!_b2!Euc)e?arwPTC-h`a2@vSSTpE+Tv6lrF5G6T87SN%H>rJeqtB$>^*i zItJ_2_QyUCU}Fe~)iUqrk`z~ng+Al0IP-?jOQ)s_A&>a#hee|1ylx`LRjGduS60Co z(o*13@Kd?qL*8L5V|q*PF8{rO;AN078l!C$VgceB68-8;oQ7#o0p8*N}(hgHM*RG zS)X68wxpDqnH~ESRXtK|0dopR%3?~dx@L1-{dSw1LA4k)fv9kT{YP8Bc{A{Usw;{9ib$O4Mt95acyKGFrPk^C zEczLFgi8YrjR}^;&2}MFjdX7zzSpeK!%d@wikuEl(l+Qym;tv4y8HKj`BTPWtnW;= zRaco;F$GL(qPqV6{a{hN+8}>dO2dfoL5jc9b5!6z`#8CyJcrwPKTM=lB3z#+D-VCn=f6A5n+~wobW;6v z(L5!Hl2PjAXj1hUSHb(eLyg=3XO0Qjwk0Y%4VH+|NXz2*cZbI?DKe(;pzb9)0kz9x zC3rX#)1HU&oiuZiJx;(B)Hn1^`o0qWUq)`J5Wk`9?Sb<6N8G38u*@}`F2B9y>9v@X>^~ZQhD@q6`Zkwr zn03k5dV)>8x0}}_Ew2GO3Se<9XT|YL_P?!o!Wh{qPAfRN%-W>a>~;gYtB~7;#s#fI zp+tt~oPSKgUsl%y&*zm1f&=fs6s-Gt`9E)i1waD6Qy`&$KTPrQxUcr8n;@tz@lB<{ zxbEUgDV{>o@K`PCvNa@sD+iT=YfO)7!5x_R|n(e%r{EmF7tZErUk#*0>i?oPM?C;(4JXIdoNL|zGhcY zq*~>~#01ICE2|#1r=wMbU|~TZEo30!V!SwT2w@;QK-fjrbFBrp#7`s9L~h4DP{%K9 zZj-#OQn#lyBME2Gzqx1BmFp3=$X(Pt739GBaeV&HyfD8t4C^zdeesbq^U{3a z0m@=kH?TwEgDRpd{Zt1!np-8iG&r=d5Zqg8zB<_^Qm;aXYVG{^g=|pao9s5md*)wR3ihwL!|azdBCd*#1$Vu1 z_^#y@QD#!DhEJx8Th%?mAnh+f-gE3jLfVcISu^f2zLQDegO)Zsdo|s|)U*8nBY&@O zuFd8bz&ZcFr-b(<-)Rml`>Vg<8n$1WI&Qm>&=h9;!NU+A zVEE>h?)jO?6Wynfmr!D4Z(DN9SA-&MNn5!1BAP|Y2?a620_i!rrd14<$X4M4Rid3m zRBJ~(&!iari4=@)9--hg@{uhQ-x0JEr;x=D|1S0vp0ks=WQRn<1>&nQCLOr9Tdufo z?eXnflg0+hdeXxe2xl+S3q@esz2Z`K7lo=rb=7!L)zLiKtt#K4+|7(X5{&fa(P73W zKn;r3udFp+Qz2%da3fk&yleTI_xW{7`9J06lg*OlUegIndj|h>{r-cm6tt0|v30ys zj;CseWTp5x0lE~b;g}}xF!l&7;Pds#$|m%eXqZb7^_l5DZGR4hMRrqAmW&dzKs9&y zBbEyD(ISaYW+D`J^K)eKhoLVCKI2ogP4fE@wy0GBkoKxjMOt3@&P<{{;p~MXZ!Vel zTF|2LUU4R(NM?K`UZj15K)s1*e}MPSBoj;!%HsGr8N&BZX5I}%-dyZ8=GnlLD&JT^ zd2<4ThkW;krFUi-K5y+43(0MIdj9E0PJ-uD5+NEodSb#*^m154_3zeg^Do2 zNof8-=z8^W>Rpw`5Qcei-C=7Eg?(^}(nWp+FL7^JT*J2$2$|0a3<8QZ%}6*{Tpz1w zSG{#3Igk35_u$VSiM&%FOl3SqqdXFu0U?l<=Sx!zGYQpw4u zZ6UqU@JlMYpd%TUbI)@q{rf{#=9JeQy#SZ%2qDrw!JdFyTL-}jjp%4v^ZvvXa2my; z2EqDTbRA8f!J_)-yud@!EQXs~v8RJ!f}4%9XDFWI^N~C4RjLBv`Vw z7;GxhjuUz@8iRapP`7hKMk~1JVdfIHIKAy{S}|c5sr|(oOO11Uj{sP&4j31l-olXI z3?+PS*}GuZT}pLx*V9=$8BpXEe~;;%ZdLgvR-Y#;n#QQyl{M+A(CMA#m^;CBN>4<@UC%UCNZ~cGNL1(qgX#6IIV^ZI z7t<|*e*8EiIrb7Xn60Lv?xyh=@iztR*QmQCv(Um$4_V2rA|L;C46x8FY6A}ufo0r?-F@_GpfIvY7{f8ys?m1b3O%D0#N~b zBDat>T7c*5<2o9x$h1TUWwl)CUz1{v?v(YWK|2lFECzj5H=R=jePy-DAxUBtvpT5` ziAs{zP}HXS(KC0Yyj2oaBzbIE--w$_EcN+n>@WVBri0q-NoS>u*;yrSj;h1Q;{Ku) z(HPCw8w;h}rb1+NlqEi8iXTbPF7B0vA(q-CSdAlODrDrLDo~@%^X{J`oQJQ4hTR8T zjyzJ`=5c9ldG1@8!5)bZ-h0sCt9Vst%o35aCaim8NGe-cx#)MnnN(_UHRUB$rt3IHJ$~06ne^a3*M=}3SDfNHIC+s zpy7lK=sjDFUQ4WA*E}6U@^9&zK=mH*&0!wC{{j9yKd3O+vZl6Aw5wLzrB~FKNz`vb zwIsG1`Df|ha!6$#&OZQWyf3y-uA(iwA5otiOLOFCF_-ZCuO!y!j?U<{tu^u0xGGr8waVS1B+=&_1XkF%ZiCc)2w%nFGp&ore`$kG??gNV&$2#G!5%>1J@zZIogo)Qc zL)&iLCWFgMK*~^p+Lf#B=|r(?sZ(Brkutoj`_Ap&gYivny-ghFC%tTAZ0EAJTjQDW zB6wP7Wntw}a(B;Jy^W|yNP+9p?Yu@=l~U&o_Sd1t3zqww*s#yqLVB6oh89EmiLc=y ze$}bpaK=I(7JBe@vQe>!o#a-a#LwbEyw@U)0JR7fP4L(kjl4(0$x1Vx zPf9baq`a#dC$DKoPBl33NS zFGnonN@@_4a%p-QNWB-l0 zVoKU6O*0rX1~bqII8JlyiPsGbRlPMC{^E zMCfNcceAt)EAtA6>y=FdXGyqfSQ2EnWAt2)Hjuc1aND_+6315wHSm{J-jPD1;lRu_ zPOrq>8cuhmm1$v|PI#0_*z@=LY$V*#r}Rq4qf220IE}!X^M`aJ?Qhb)b;qAenAxm4 zk-_!E*m0c(&nYe|v^|u5X;^cKOK&Svj1fFNny2`Kdp@(W*g98j%aF8`T5@R7UZK{> z9|#ZV3g<84_zpFccRXR%8{2C8LD%OiHar!GjA{_BD^7Z%CW+nXZr^m*L_0>wKPj3M z<6epR6rf3|JU7UwSmT*>x2f|5lT~JLBs2oi)2~K-Mhlj*Ud6z-dz0Cd&0F%ui=8%| zHhI)+T^Brbh;#o1WDPZA(cQ(KPmhezCEFz7B1*I`=Kb?-S0HdJ=6o5 z0(G>zr3aGVJ=?<`Fn?5>d}j5RMpRcb(d*vh!G2{}CrQ#9talzP)RPw5lwA6($+n8^ z=}R!S(rN5>T+7<+q>+#Cso6DMC%XZxwc#tWMHcwG9$2%w6{tlRQoWi~{(SG;PHO2k=U;3)DG=cVn`8xw+X5Zm(M7+{(*rq58w7ht%7npN2 z5eg5npi1e)PWg0RNtLo@h!ZAtl8OlptE&)A;{nxa9?AsY&t6it|LA(v^(=Z{skYb3 ztaTqwCB`_H*2ndSFW#C^Ii*OyQXpf7A(R!*F|&w~Ss3t{&@7;xk}Wy$%g9R?L=PXb zPmN+``a*I14fhMLa;Tf11FI_c%MJSlf691L54Nf5<-~i4g+IZ-8-X+cT=wUtnj;Gl9t>FWBR~K($lgfBztIM8TcNs^3hx{M7isQfM zah}?I++UC?lVPjK-V$H7$d8nS!jz>ULsR0bAwG_(g8pc=vi>yTephj{rU3mYhr{DgSY8l_(EHKpU+X(O6qzVinp^G@aT>ds7uLmlQD) zGbv6PO86DWXm`~$*fRVoC+#k{@3nAjVfDh%Wc`eG7uR?>qt%g3&(B zYqQB13IYL*f>GLmi#?%(V%)s?x(n(aIE!x&4NC;Dz zVyH*Skd7Z8Mr*7kwDgX;lO0Imq#WbRDo61X4)DFyR5>jk0W{j{#piszwQT=^`agU= zkSs>gK8pET3+YaA)0SEvG3JJtSl3)!xoO0*;&VRAa=|hLgMeTOS5`v(ldKLbylHRO z_>y|$Ph3h84}US5d~;mH`(%|krGQigw{u6!v?doZhp9o)Y4g)X$!1p2tYC4 z%czyA=5w4GvuJ+tN~n#dhZNf19Y1OEt#O%EY#EPLo-;`&vH*r1%(~9k#(H4u-YK-?J;4{4MyB$ zw1>drTthEaG^Y?Erx5h86zcC%3P1djQV0{3&NZ|ER!~kWR@UYe`p7ASdQvEAnZmzV z3h)0>-Voffi!|@g`I?5a)k)H)2<0db965d*;W9 zYSAkp$?6>G<(#J|KJQ)pvybw&bEG@sdCe>@albRTkWH40i_fW)^d0ojcpDye)N|N3TTrILcJ+mtEN`7gipwhw5czOwr8iK1g0C=Zpl6e zDa2|--A=Kcu%rtK6g@*x?GiEOY2ebp$u62*sI?W3a!hkCFDRvC-7zZS^McU+GsN5Zm4)y?oyuhyGLL)P}t5atPed$3-f6_J3_JK8zJtj z;~ue8KWOiuUaWd|#9Y=<$S_Ye>%+A1=?`?0#`Q|I$jp;u2nS_H zi0vam@cA<_s^ysPz?kH?zVcV*Bt*FUVRbLbJ=M+Qlz9$UZDD#AqT$s%B3R z(0kn;t;H!#TH63b%)cS8j^&d$Ks4yB_k8M9!g8`oq%rE|`(wrrDMbRhT?HmBHH#5q zYj|EY>k~0H9L56_n+xhywF4GOTpR{|3;d-T4E`UjfM2E!mrt-XylpAb*;JnYYrr_uAZyrQaxNOlk1_%)0f~ zn|nvhAHtf#tczIKXLg^)Cmv>vW9SafsoG)d#41TAYUAX3sJ!ELQ;}v>i)==uL`p%l z^JIQsIiVm*s9TE^c+_#6NH6xsNl|w_vCpz4BE$`5aV<tm7bNAAI*xeveD#5U9s>*>K!hGf;OU8wm;WX6EZEdC?>~p)bjoDm5*%tQYv?Kf2J43nkdoi907B1e4h`aA2xy$+j)??idsxKJDZe8zTNhua3PQkqL_fz?{w`IUE{Qui*||talp2R!+WJVVue=o+o7QKB zE)|(-3-o+yF6M%ZRz9?BLGCJTCrdhr%cE@3MXOoLVgbV`3*KpHUKZrwu8-J^9zwy;1sO^HE8R`O+)iF|S;A9j^5yZR}g z{2gCb;bsnd`4p;5dft`Do_E#pWpxN~1On(L2Lvj+@CJGnBJ*5apyzyXGSU$dE4iC=*8k4!1ijdQM1QboQ z4Dt&fc9>6b$|CXKNR*Z82z&maHCk0IDEan?N>;OCyFR>>n zMydvq7?z{5A}VCDN1*s+eb{TK4e5L@S*Ux-Lfy+F)UqTp(G*x0kUQgp`!?I^4?c_& zm&+1uoXCe6Vf`3${+E=Bu$nQ5j<^!8F#BcZ6NgofJVkowErOyQgXJwF?CVg7W#)ZNnyU!HS z97Hd8J@{2YXPjGKO5-$LNLrd&^4SZD9weNhKkP(KQ2@Wu7dW|i%QMfG{tmIBw6L4T+ zosbwNnJD4oN>WJ$W0-?rNd$(moE`?a_gags*LvT>`>3VLy`?%*3X_2OKq`ooCMHs} zs1qk*ln4Vv=B>5%J||~}@S(4L_Wpk6_dA(=_SxTiueI0O`@h$QPfDR6KHoAsuh4?w zmDV}CQwouss||C-#M3eB&zZE_gh|&p_d_{Po2Z7v|j(kCAz65S)wuX|yf zdAFxnRjk-GK`aJ}gw`z`4dc8bQ74o|*X`m6NUQ81 zYh&k+F%-&b9B8g>LyxX_M(R(6k9m9-D-xjD!*jdV%&V4J^y& zNfb_y3v*fvSrUaTiFfp8pn)OeMqOoVP`Wg7P1bi~7WntO zhanz_dAsjPDV_LYX8BI!mAR1`=V9rqKaU$JzAiSZ$~1se_tx&-&Jg9p(aY;T-ZRvxO$l05@4v*L~C zmG@)t9}oL++lsfu6{iK{kK_9CC*tpqXB$_XHTu(6oaJdwGa;J;o?ec4^A}zLUQev1 z#h&mCNLy#$1I(jcWoy%{WzZIlrrfTO^|q-Lva2T0m|^1%+gGLeD;jSyFJ`Yd8=!z) z%Cs!BnDiY({1L+vdbh)SW=T}Q9A7Lpu`Ij5IVv>W$oB2q&_^jAXD-f$3C7t*5sN37 zi*uNJ4s>9OIi>RG)YF(?TbRvwZIa`@`^Fl$$>->AKPCFpVZ{rxP85a$xs)BxHptQ_g4nllI?!lY8^1K6$Q*mWV zvWDEk_`XhKXW;;ymCf!n68HnA1cv`GDp?t!{0&OFe61{G{Khy17j?Y@%lEDBlC}YZ zZBH?mGO0}YiU5?&)>+$?Ry1u^iU+DaaoN+KcwM>0LKXoIlQ~rXjgS+!e)c+f#%cLD z#j_ve7;CHR7*1Y2d1mAQ!9?Q-#S@ik zdMU27BqV$EIF9LxNNz-KI4Vm6kj_|z6jkd=@mp<+(=oZ@F|+JCN(sV8yZ&Pf`#7Mq zjCX;Y4r&Gjx`~Xr^eHaf1r|0ynj#cP*{?M8O%fd1Smtie88 zJgm^^u`Z7(Ro&zFDoszEIvcwEs)TX|9Oi}r%2#&nQ{FIF4JckaTFH9_WDwbN$h^1X zI_R0c&MI4{i#Ed^IfcSN2YLt-6<1$JcByKVa9s4C;Ul~`|15o5aUC+V1u0tmv(QnT z48`lf+W%OAYV_k?v9Pk!(4Dps)V`h$CKm9=)76VB+KdP0Ujm6br^|WBK`tp zH^};oaa2T~+(xsB^N4a-yz}+o!N#jY!f$aWSJ|&KZErNU-64IL8|jJR^_-^#=^MI_ z>4CGx#=n4Lx)3;PYU~WOT0-ADhZG(A0|t9?EQ1x$?)^soa)^&lTxCdmjC*$D%Le{} zix+8Y`3oNIOIyQVP}@#h&0lCScg0x5NYGHm*X8gE70m6z)o|oCwzQ?-RhFA*b?qS2 z6;+#QwKy@F2H+sG-3AQ=qjVoOPX+r*{+k(V-9xMulTf71xe>*)Bj~aE?aqcaaWzW! zowo-MDBf+IS=*-vJ)q?|tM-Yj@hVsR(3$nrRC9ZQ?AZ~BkEq`r#%pdNW`n4BwuS63 zDW10R`;{}m2R-|ooek-s{HMmha^hDBX-j!R+Ln;^C8W0Kj?*}L_n=weZ)1K@GG^YE z8_8`ilwDy+TXt=gU7HlwR>)*AqMadU@ms`B#K7ycsr@yO->wes_m5G$o6O#@B5l$2 zrtmmgl7z2UoNTg)t6Rx*t+@IL{M|1G{{?>O!*eJIoHa@l0uB2NjSXGEJU#n5o0Ntv zM?UJTiYPAP=(gCs&}v8*J&$4p2pgITHHdV%BArbbvaPXD@orJ1eYx$yuEz10PBX;s zbVWK`ZB9>EO6zpB#nSNI((zGYry~#%oUbf@=gkgfH}sPEK(X{P?+0_j6^4SFja8e> z?FndshOHx@MZ{G&nW44EJ;nmV3Z(9B%69}ZqnP-Uj>b3RJ5lzY7?aC2^Cds~uSB9f z^(GH>+pz)$%{P?>hf-x5|7Y9?oF<%H;Q%5s`NhN}XVm{8Osuy?7s3zF2JQg92|*MJ zLZ+0Cn(|GO50xd5=$4wuTCDh@&xDjpq5)G<(R>YRiqdymU2!tlNqVDR--P*knuRNz z@-%y%E51A(^f5wxy5cIoVi~zJ0@W4+Ol{(e?I3fr6_PxQG*T(CgE~G+_F9;sb_Ggl zrBB0@0y|VN&|oo0S5!pbIF6&yf|lQ^!!hbt%Q+fK$dqMs}bz>|d3-!z6jzG0zAU3Mg z)M@;4&zl|OCxG9%1Qf4H$ZN3H?@72+fucXJ%2L1Sq|0IS+Y?KygYCtYa%hpn#OS^c zPylk2Rn(wN{ZLJyp)Xsy8h!?{K?NEXyB3`eaHhrVwdR-&12`n^Yp)gNR79I+V!K=9 zMq5u123@Tw_CAKPNn>h_(P!94=pM|oXFdinMAy$moBlTZ(o>3F>9H5|Q;1txbIZda>|AiFhr!~B^wd9zKDS*{A_%@*jlJo;%bY7r5ri{Fn1LZMb>zwbM9Ax`6i z-$8l2@fv5VKjS+nze{tX?|ckYQmV8>Z$gI~W(!h@Xk3V{-8Fd`(iPw{3YDY?zx0{@-6W7jCJM(d&dV!(%^d(e>%K3%o#%g4ECq)?4 zgPOcs{rNS@^bAO{MxHt<`Z$(U&XuRyYsdJ&2d@qiUo`BT3j;IM(EAMh$*$he4;>+i zUPwbfznCBhfTmm~Hw;8apQAQHgQUbK@mykgS@bq2V6FM?m+(e~8fUZrW*|`*)&3j# z0-ss>N>Zj?U8cE-n7Ky2QhaeLYKMzQ@~Bs#4J%OV3YLi6C%v`+D`8Tm3Oi9pa<RG2(anMssPQu=}?m!$x(!uk9fwn~8OhOuubA|X^l?Ck&gDF=8+OoC46j%=9C=^dqV1-*%Dob0eww zU1&ei3Zij&?XaEM8_~8OvkvYrxX*wW*#`~8>r0~l_)8ME#plT9WH1Z<7x+hpBR@6R z_@>M5@Lb&s^d@)d8AvuA_#J0Zj7n*CnNpcmt~}_dP?iaJt4*OD*oy3p`qOexPE(F3 zrB>N{EO<~1;$F^XqfrTEkETpS|O1w^FR??SXPDpO2Aiz9rlVL;m0gU6<6 zSGc+#X8faAke6`sEd)8E4+SBmp-+LLf-1C%9qQ;J;T<}&Ux(?cLXjUgCQEWwk~-Z{(~8AQGco_Rv> zr2kI!{3K5<%1*m!$svj)XE3=ON{*fDYJ*h8oITh$V$K0b|D`!YTRR)1H{}kCG6m03 zpouX&31h>P3$}S!$pyGh^q?JvX_<02G{DUj%ENZ$E-Q{f(kBw)>Mo;pUT@e8(838M zUU?eITA^+uGcUxEFU0~chNi7^N z3vlFQs;7wNS(GuTBhAiMTe#4!ws4_CZQ;T!wS^0_)fO%sr|SHLIVvKoZ~|g~8!?52 z-2@B^wu`}gjBF^rWX1!3iPw4xW5dv18V0cqr%nwtTj+q~X=sQOyfaQAfBH8Dcff_l ziL^6c`N`mM?oZ&U!!E1iWVrAcKR<=-cpMLNWB=V};a_|C*Qol{N=Li-SAASRN8H0EJm3sAZ%8^tAPT|luKBB^fTU2_) zUh*M5`jB3H-lvf}Y(nm^StV5LJ|7Y)qgL!gA5tqLS?oxkwq}Q&>7$JSqFwA!U#m*L zEZE|{Q9u`2Zf%yw8zTpyPXP#r+j37+LM-?xC>%n1ML z*=L_U^&XxOjE&KZ!Lj)pFqRi0!0>_My$4p?}9 zAA9(aDhPeb%}J0rEO;^M}VbjfoZCr9;?(7Rw!CaAL}ANk`6}Br_K(V<6)r#28qAY}Wc?i`E}owf@+q z^+#Cij~!ZnM5sSh#!x`)pbcC6_r{bKPj2te-^xv?t$dC*PBY@;`UV>rJuC548%SHW zs(xK#|3%l%*tWLnIJC2v^9O$37n}L(SdIaXy|YP3upe^9^lkX`ZPxnNTrd=dpp)@7 zY-t}3e?|k?+&-iMMhMvEJ|cvL*h|vWDqRr$!~-sy-kX!?efJ=_~y z9*kncC?vJg^mrFmKZxuns7SlOD2y`_y@Ck1nA$T|)bYoM{j7bPwoab?9Ps4=GO(oU(s#!mPx- zPAxtL@y2zD^m20;G$E@}7mZ_b>}J#SHa1O9{tT7*%=P%|RY6~RO?Z3z)ANP5U;#UR zPx4!kpT#E;F6ibj*tWqt`3uq-SyNWYjZ7@76i4QlRiX>d;x9-q1f*6;FUSqi67`X_ zS(O0Euq>y+Oak>1;o*y)zhDmpm+}`RJ2E<}QQiuT@>Xkmdi#=8g%d;X7fo7B1ksJn*VM^!fEk0)C=6%IBnpe@DU4U< zizYK&b+9g!&Uw{IstJ>)IlcH?Thv*K6O9iiDmGhj%JJcZ#bzx|K0chd*zCn=$cGac zo5eUG`CJioHsjRf!wHSeYMi8eII*$WjnkD6Cpb3CapLm14yf}Rr!bxLz{yM}KyX?k z8G=g=D^$(l*PMI&mN5=4K&;l32$W24Qt~}hzypv-u_jrhSgVR3BvEX@kA0d*@mR77 zu~7xklM3-9(;kTT=_gGwSTu0y^$IK zvGU-waN48~u8Gf)o?i|TQG-(yWb-7BVG@n0N!TLY*0nY(Nv^-o-E$n zz4{xe$=Zhy&PgC@>p5#UKLdxB!9*#Q)u-+_SXYCu_OS)N-#=X^RpevdWF*p3Ez> ziorYZB7w7lxR$J%%@9KM*71J|{cxb^L(}w7*6&GIVKYpiVVi+K9jH7^>-XEZO&@*} z1TA0}4iq?D;d)bUBq_8o+@Hae9CkMZ>1)OzgH9V@2@Be75iDV0$k4-R2cXbWKnDNS z5KU+bd;i$}%&H2z4)`l50oX6035=L?fcoO#g_HwndP z5B(mpj~YF-UNw(OEqM#B0Z}tTbF!9{y<0ML`k9p(wD*@e zGuVB3Z44$CJ;XMI8fO9Yl&xPPI39S8^9~jWRV^} z)r@_Bvhtp_Eu;x=BJQfi7P`hX+4-XrUMAHPo^mXxHiL9svhGikB`l_8@bZsV{_+| zT1xf&;7SC#kqpF)TyxjJ3rH=6&M};g|f(QL+bj52C2ygh~uMYH>#9$o? zO=SDmsIXCTNLzgB&=!@twPhg^=U&%IGRHKbDXIxgwCbGSBMzN5TgnE$cP&EUy@v>u zFMGT7oKFRp8wQ!RYGsl0KPxlWIg)w$O05^ya6+M`pYpnelpH z#_N$8uSaIQ9!9%Odg@d&nppDJ3^HS=4eG1!h%F!Fi7m(SAVGog)Xelis}TDGmbC4% z!?QX{`+KfQqzvc(C!okLHK0g{0Y&g+z$WN~WWdPx6|Y6yHHr)v-*^yVBh4yogs>PN zFS%Z6fDri=Vnr7O`7`)B7=Q$U4!+&a!}Uj05D5x6S?jssx2*LHi9vXh{|pJ=PDPW5 zL9`*=bNqZnNtY(wvl6EwOPUYHM8oJugD3r^>U~5h$zLui1#)0U#Bul| zB;|#nAt^dMidy^6j7w3QMJ+x&Sj;{og+K6JyE7cGBJRq7`pm!z1zJr1Gf*q;lzq5= zf&gTi5f$Et1@#T*orf*z8_qosTh%utiHB|K8?LtC9w&PvG|L+XwSC6$_G$h*Z=VaI zT6|K!zV&Xr7@S3qXVJ!=x(QWeVipHsLxZqWkqrQ=$Uk&p@gE?h@vrTjlZ5chlaWKOL4F{8Sf?1lH-b@&>M->Enow>EAMsh82x8)`jnl@~G`j;3@l4me!ph;D5NV?Etj zdQRxh)^kGlI6WtH(-3A@9AbuUJr;*e=REu%yud@aoUxq!{X7+ylfm(+9FHUJGP051 zChjWaBR>L8feVq~9LD6_4scq;iUbn{kHQ<&@5cBSgW0iuHq4GSMOM(d^hv!SYABU6rct=tnN3=dxnU-5)Q-tw(GZo{*@2~mHy{2^; zbl~Om+TRKTWc?BYq+x(=y#znf@IU8^U|-ziiEk6tH)J72ll1JdXtJI?7UipN*w#e_ zoLOo(BQ7uAj)X*3_=*d&eY zLmZ!^QGSSHlr-WGah#Gy{~?Z5(pW%<p)QT;}udToxUb18$krVGmZUlGR>7ZW;>b#PvDf zkocxjp-j077m^vgsY0&WEPJ=g(v~6dP46;%Q$eSSZ?X_lhDl_actf}yc6*(sKkVpv z)}*f5Th5C?$^|9GJZPDJS!xnVDoCWKQcI90HW;)!Nk1X2Gh3HDVWX}dDtTLyHloR2 zdwP0}7thR|lvz%aikq*?n($Msu2_V% zvJ6!$M^dpSCKb!Amy6wVHMzKFr{Us-%t|Wc#5p%a92JFh2SXuE8Ay(ERdSRJ21KS9!%5XQ zrQ~5sj({McDR@dcbBdrLcr1ZtTd^3t8G#p7n-%X?McU##CkBoiwfb3q$TxX(Wku6q zl(Tg^+u+)+<~`kcuD(^nZQWL@;kK|Pry7TDNgZAb+f$E8(&}&?V(QXue3|K7s@*T0 z3~t++uw_jtJ#d*NP_asPFznZqLF|{>L2n_7OWJ}RRJGZ8ZgDBDU#b0belATzzr!kT(syBH)a6%VGZ;FJm+ z5k_z@9UoU!Cv7oORh_i;NL6(jlm}L5(>DW~(WW@lq1e>Q#+V0jWK$Fp0ToJCA-tLF zTC2EL)J~LL8)eT1#j{%WKBjorBq7Smsu`l}O}1%v1-nR;D2#9}YiU1P%z1;~g;_}# z+-;x@YB2|w0Owlxa!d7Nv|~*xgzVmL9Gwd{(iS$1L)B?R^!H_8&t4(uxU?RwFJ#ikTPTs5DL@k^isgG%+X<-7tjOh9T+Zl2El-2vz$X zq6B>J4bsbbXf+4`U)%M7HPgiaYtQv;ADW6jA71TdBmJPoUBayG)o^91NOlFWVcl}2 zJ!!czCuzAdKS?xCOOX_hB?++6BmuTJNr3I^Dbxxwniqrt-71^)U^n)5DZtw&7X-ZN zrUfgzjaCJ{;lW>ZdZ1irVt|4@k%D+*=psISULN}GK3My!X2YY?P6%S4;dOxT(^}IBSXX$6C#c#F8DXI7$>SWc;28X z4E~+5u&HaoL849g_m+*%X!U;~QoW}g<}~r1F43{JnC_VPYhvj{QusNZ?*1gYycDEv zFGA{G{wz^As%~G;>*v#)cK^i-7TJS$@pW9kWh`Evx*7go5T69$cd6lN;G`IZ$MoDL z@r4qj_=2J7Ez5|#_^%EAHJ!Gq@wN_?!=>YE`EI*deC3ikoge< zugU7FLunS;O)6Jzs!*0WWN$Aa!}|%U*a!2^?~sA{Epk<_T-B$XMZmQ8P-5IqI^G45 zvTC5!6`%OF!4@lNbq$#4(#rT;d@q1^Gkafw?-K{#Blw;T4#Qu-VZ#*Ak&aRSf>wP8 z1Ogf6cAYvUS9RxAg4*{qaw)ts$N9SW=o)RM;VWAh%esCu`~64G!l*rwrEO!sw}c6p zcmU;drK(o}g)$*GSa5wa%Sc9=a}VZu`@~1_G*E5=WZuNMU_aDQd_lNb+m@Vl7QszD zPtrUklxzN#pOV>q@rB!Og%L69R%6pq%ZT0L3t6|41O7F|t%IRY$Eq$G)G`?KOzdVw zcswQcwd9o)$_mqY{^R032?l_u%tLeNfmSoFX*r=@s}NF!HuI`_(IBkO@s^2D*T^-Kd z;-l}=3Kc|Zm0fLgzNpurR9ci}XegaFh#&nG$)4R^u5R76xmAbQ{&9K28}D=->JSxI zAFzhNZlPl;-2oX5#EnZP1Cuo$b_1`6?j(GS;yPNQMez(6Jx3u{2VPv7@EkbO-rOZw$7cpF+TJ$jgn-Xul*kTnJ!9bY ztQ;cjiY^Edps>FOwzC{7Ig&z;4;Mthrxt5ClJdGLJn?1l@nQ8?nDlU@9ek!y-6rXh z&(i8P3hOqKa)Z!EAhZK3mL4{M#vZeVJGR45T6hJF5B+`0iR&lZR4qPn{bM@!MxA?& z&i$nA{L@=}D4~JOK*9*EiR^n04$zf}Prhz2)DI8i5BZem9^Cl{gdkeSymnd(OUyTTUSbjxzVV8x?2Dd9!uiZSSt*&=^p;Rs zYq%@=Xay;A7n;ul4Gz>+#heA%V$Op$@zGs$U$Ko}T4_&s97^Ft+)Vo!U7h9zt<3D%G!}hZa(IBB_ z8wzX)Pj3+dk?a{_Z~<}?m~o*V;*Y*ZjH7CZ%f8h5 zR`sMo7=3#=kUJ<EQ64#Mvf+`S!sU*+zz z@GJ5(Z-d`5?pE{b(B)q`&0wpZmi+yY?z>!Muss7$Kd$!jzc)TG7-m6?jXJ;8C}e|Q z{s)78+rV!V`1R_-?E}A=Hp7sA+m8cv!1o$>?uO@1c)khGD0t4nxA);W0MEOS$0qoF z44#MKSp-iBJZ^YyhGz^s=Xg1Ge#n0J!ut+*w!*U+o~Pj10M8nDmcVmA)(M`w;E6+= z_u+Aay90jT#{79Y{|dkVi@T2t3#%6{uJ#)YJ?Of3VV%Kn$}nf%{R_UosCxdKn)>Q$ z!~685ZkfSwdhpA_dH3J{z`cf%X^S7MhuF1-Ilg=A{L>cP@2{>m91-|u!+#2tgyE0I zISUpo@WaQ22BUG#yoHOuKc{->0*Ltuq&dGiI>B?yaw0SiK11#Pt5RS8M))xoB}o{R8(_FJAmW{j}~zIltjUv2nrq3r(Z>N-P@{_E5S7S_$Huhs$?9Kv1x`@M@ETCixo;s2OR zrRw@+CDrvc57aN5x9HyLsSijP*YIzq>DB(33-0{^c^C{Y8{vJbR9_F-&%Cd`dfxn^ z`36Ii&X<=Jyq96zvSo|?|F?asS!oyu!e84ch~P8ys7Dn+LC`d&_|s_ZkMvez-L}DI zH)KQoc?4ge2XBH0-=assg9l%tM<2o2ZB(S{y>tgAJ3Bi&o6NWSksQLpS`ac@QYD$P zFtln^w1E2wOT&TTWDdMpbxyZ?(bG@Iq9hPJg#(XPl_h@;Kd80OSS-l}yk_^A9~Cuf zFWR;>l!q!RT}*j_Be!zwme$wCSasounlCRs7V62J@BTOeM31GxOIeSy_#IXd*EZ@^ zxAK`~4^8JF5?8>z)$R!q<2l#tOCH4mPujr3oD4Ybtd@`yXYbaYFR8Zh4)wb8rJK~> zCfy}nrBB4N`t1)5yL?h?tTs3F!VbZcuwny7rb05q#izk&FiN(Zy6U?)HAR_WaUc-k z1~CF+o-PvPv5Xd0sP)L#q7eZ}+SX$#KBgJ!>XRoRi<>e|FCV1s4t{cf=6Alxc!atn z+?n1noc2r}C9*=&vDb*<3&R(NFEn3dE5r$X%?szIc!nQ3;?R^Ja6v@)~uq;tPBnT>DB`6?aW;V<&n+UrINRlLisAM@2aET%+ zEJ#qmgop_dv!I}$C`d4%sE83Up`fUk5hEtPo&^=deed1>?z?;M_jlHr=}=u=Rb5?E zJ=KH1?8Ps8@iTkjbkCxC&xktwqXW@Fl2|d~dmQzOkRpWthif1D`luj31e_M&>=TEe zBydj#?bN|t8k{6>E*RXnkYMp8-6-)j{Z9Hz+G3sDm$b{#pGQ z)sE;-6YEZn%Aw%tjZd1IM;*E7WI^gK*cUl&`>uxdp%&+SKkDBdnd3a-QHsUvyw;W0 z3KH3dr3Dtfb%neq$x2I-g$FI_SS?%6_StF2AGv4|alAe2LDI?bRV%hz9$GllV=N>4 zO=Nqb)uFbWo4xDbKbpUDqV>jmv3Ht!49!xL$M6gk)pow!t$3&5*gM{%ZI@oWdDLN_ zu<|TFsOiKqg{`{_N8H(DBOjzD7n7V86MNFu(aWlH+X@DgdSLGpH^*&vec27Z%*6%E zz59H(c5furyKl+D{LX(|?7jGkzHesl^^lz_-@X`ISJdd+mK5%Aa_uV8B7*DmWBM^T z>t~wI3`AJob7!+{a1PDX+LkFB%7pxb3A@dHy-~+)&-r@uS9< zG;Djywb;5pG^|vj21|RyC9@A%CERVvt-E}md*tKCX1~;7aZSaYTr&rs4##7)xhwCT zeQK?;1%Dov)5M8T)X-b|db*l8v2*0uyb{wRvy?=1Ml{y2qvTElXxEduKi( zAwb_6sV`xT&OA>Sj$d^E`q;|6k>MphYERdlw5{UICudV9v+VcT3c@FrI(8tdD2n$RfDZo8Xj>Mxm0++2V2$h`Mm z$F&OXXLwIq#;S8k(NTAr5ajN$V& zzvif_H6V)?Qh-a2Knf>{%LqVB*J0GfD9T3{Jt+Z%!-}qLGQ>GzV3MW3F?V8z-#bzX zieb9@8vewsqbERIy6%YA#V~Zj@|fg80J?1?f1OPY$AbHUxufQc)a)bXFvaP#EB=|> z0-je~iQEzXGZ%Rr+3WtdxlVo`F;s-CN@suYdjilg9}zaTPH8t;R=d@ouiEH{oY0{w z<@w(u<9Wv^QsUzm1SL_l>TUUnpiMcc#QP%G2Q_WNZ~g$-Jc_W&ggqqO;(dP4*!`=; zk(8%U!d@JBY>eKI6%D+?oJE^9p3&2D;Cy*2iUbg5Eq!is+sZqu z5yd)(nr#iLtpzf`Y!*ZL1p_EiW_QK+@;*U_4V9d034cC#u5iy`D67T!B}W*>AeY=% z9IGDRrHBCY-fIl`$A~w8-7Tnek{#ux$tx4hDJEDqt5pPKczgSJ=2J`5uo{kRb}AxSb}oO*@(2vaprni&rihM2Du}ltrL2m}n+LH4~O4&Pws-J&_FmOq3f% zLZZWW8mN2;4Z;+0Tvc}sXqtSVGN4UtFFkB=A@eNMZhm7K^kGPAA)5IsmoAQQJ#?g` zi7|^)Gg4E-x1Gjy+T~RpRV&Oi*9O=0@vISJTh6pDVXF$KLJnPty)VpsKvKBMK96%2 zFDyP>gRoN(^uoA(Y|fC!oGN7#6(O}qjdVgq#X?KXWkOGoop^*8mI zi!8@?gGR&A|r zT5Y++^}mIMIp}kdK~sy>D*UwXpDbsY6e>!#Ficf0HA^#FI4gCibEtR-eTZDate9OQ zZZ!t?Y;`<9SV&`T_RefISxJE5t(dV#E||_IB>8% z?Bd(P1BPoRgL8~f?k*lCGUvE|Zzo@#pOxPdqN-H-W5$!?{1*z$mXQX&3kTlfP?S|Gm{+RhQvBC#QgV@QmN?JQcHSj@Dv zNcG)!&?Vxfw+s9ouTCtbylRP+3NZsIj*%RO1s+X!U1)(q8`R!g{!iGk{bst{Cp7O5 z;0ePp!PW|BSFo)ZF&0qv^u3I=v{lf)Q4G`4--dus9;M2#%h?h}5=PP+iq)mLg~G*M zg)!hF0xAMCeEQJ7nzvOZ$sDQdR~bj?nHeh?7Gp@pZx1u##%T9w_HZrv>#<|Sxz*!~ zhuJNAm}OKIsJoPI)0%FNZrvaGp4-sbUa#sGwWs6ctCU%yMO(pu z!R83eR19Dx(JYV}RLEPI(fA}Bs%S)T2!8Dp(RIj3s9bpO{kEwJMY#-x&v9R)6*R+|Mtoy4Wf>QL&+@Gy{T>;>qq+RFppu#KbKnl2D*fWD!Dx6N$y4 zVK7xOd#0(65JZa@3Se!2LRSXpVN;ygzn&cGyZtaE`Fk`bdS5bNZlF z71N@dfkM+v7L~sj8Q?mz2sAX(!h12)-oyRuR9aDFe5#(=COy?0v zY6IDl)lywhk+N_xNpCYiOB+-QuSnOF7l(U(1&dNQO}%#tO8IVTkBB_rW_-uCLr+T! zj6xm=51GbIqCptw&l}~vVtq)xB3NOd8UAAEUtysCw$J6m<7|GL^)_RC>C)vcb^qHVR1 zx^e1gyP^V*BPM^?suJu+Fvf`~{vZ_hWv!J>f!TlUp`rtb9M++Zl%)P@FZmbo z@S0m{=bT0U@}gTQ*X`^60Pps+Z2in@>e$-xtewn!}n-> zOcwB2T%FOE(gL3vC(T-$%emo|v+7;n_!QE;4V|K)(lQ7$!AMVwQ{h=>f%&O9v$Y`9dk z)xk+`Xc+FZV*KzJ>8G-Jj4Z0nlr|3HLb{AL!o>6YrcCje%oe>Tj)I1om^brz;zmtP z{Us2!iC2vk+eLzTvdU(PmWYuh?~{ePJjSfYC2|gE4Mn&GV5&*ws6(uixvUN&cL>2v zUN?RZV8QW-tb&;KK`EkvTiyQK4fn^i7bmqpOt(OSnB;Zh;34+d|| zz4NHla}{=XOZM~euaxW*xV*gNpLjTsjG|3jTwoA?1owu2-*DqFQbyEP+cOxq%FfwM zBQKV<&E1T5uwhs15a+ZB7-Pc?0 z{fZ`PK2)Vned}JF=5>WU**+CN`t`cE-?Vc3=kx7d{2>M|{v3sqPAC4^x8}2bE^&6- z1mcD!o8}y!{5H<92M$q8rfTgYqRrT)1Qd*l*-QL-(ig|m_G4%Hcg=KXeTM{_om`rm z9`lDZf@8 zK`B35l8-{4XLZbN*hPI&qqq5Yd0KnL_1#l9n!C$3zDl2>dGP@En9OXf$NkgP*#7b% ztai%Ak@0S>;M6Q(}x5*j=7ZYK@9)}+N5 znnQ2Sq9!m=bN5vI=0l^HQ>g2RKDJ7@dwI=FmI|W7Ptn$y(2mjfBb8f!Czzg2+_SU< zhJe25>P3pJi6Vz{JPKAhEDKfy0@^!RcwtWx&Cvs_RCIf96HUo{5FW z7#tXQLNR%7j8U?GMw>i*j~`iz!}L}7g_F6L@jBZ5B6vsZ>}Lplo7t#kAFua=`Z^+? zaCXmWru3dNHG{_ZXP&#dVpr8PQFD#2N%2&!xk5KZUUZ0L42?+rWQ@Fm4oQ)&T48ED73pDvi0xJ4pV%yzH3+UnfEc1A3I~-nmFLTr7%${LF;(6VP@wb z?FL_v!CI~CY_%ru$nH%=w?P@H!>o2qooUhhRwVAiQxjaj-_Ph?i&Z0Fd zVyA6r-YyI#(-B{4@|(BxJX-{xEVGttO4DW;kzZWvD4c9#ujqM1NWl#ypq?%p-PvvR za435QXeBLm#^sClBSi(-!d3LQ|KU%JZCu7St;qhS9tiJgLJCmc!F__z; zOU6H7w;tec`mS`+kr3!F8&y@xBH=GBrQeWzmdNmC2DFo&goOSDpFOHJcRu1BU4!r* zvyLW6&*Wobed~)`!=_mDH=b+;j@uZ=kHw6w$0uvt?EJ^&&$_!!rMP;p7~63MrKaPn z73gg~vfgPIFvscNaV^lzvCr9>ICy0=*4nH0^BrApwBp5%WGp#4hMB^NQ2Geh^US=E ztj8A=jdeqbYod6XMi8!GK*ohL>UfD%hZIw&X zkN2564;h6MU2IDpbuN?r(}k2p;y)&F*k)?Iv9!QUsy~9p2WDR_iQ5+AO`{2ad?BAn z>oU1}SF+cbbsx`H$PtyGd@7|kgPw!NBgJ1W)XI8I>#BHHRu(c%@P?5wd9~i~Ge4Gj z*P!uO>p@I7yD~lez=~GxT8inZ{@$58cEEX1zBgU{4??PzH{Nbq#%e*-;Oe)iJ&Wr?OpvpxIj~V=CNQ)63E}Ei=QKE;oo%3|O;0z0G^)qO zko8#Rl)ah#(0lUqN3UX<-argjSxM*HE~eAP1TH)*D5KRQB3{eJh80RpG3C)kZT_ue z`$>=diy^(faQ-8hPnVtz;G=IW2De_e=5eLugLhaZEAdV>{fVrzZ|Vw9RI^*@#l zKhYJ{kB?3|y=^L@8MJN^R9n$Y@+$RoPhj5gNRx9fb4I7@-{|;p5K`Nh%0bF)r06;7 z#o^z6x>{R-H$!yz9kbvZ$-QfpZ-09``yv4Kft`85)rz~FE5X1v;FHwM8;hg$e6$Ex z?HJ$3H(jU!GnZn0c_;GjmS1{jFdPipc$gOjl(}yNalaNW+3BUL-wEs9II= zhcidKHis`VV;fJ&)PcR36d_Xs(q{TYytH4)98a>Gr&|(RW+euNKMkwcn{78g{%Y;O zylH5CB6277v=cIGqTSSZCO-R8y9WNHKB|y<&YhJk1fIm^$bLxdqMtN&mtC>XzB!pe zvo$ywh+k!MXY^Owvcx;yF!1G;hdf1rM`_S*ul8h+?HY1fy>813T>h3~aH@mmtBzlW z@!`;WhR)3t(U3LwIOC6eoN$-;zjvsYf6q~ypOtAa3|OIw(dpFDVnOylEFr|gv-F&= zC@ohYYv~U3^cX+q-C?Ws9MK`PdujHVfZ2$9y9l$z8gbN5aB8z^vbR@{?C;xpn*D;q=-U5bjg#scYM=!M)qz)Ag>s1_Vd&$EwU=CpxhoEVx^z_OMO%f>*(AN1Vfr?jWI&5!mq2XV zrKgZ_qZaUH&0tHf&W$5nV>6r9HI`Yc#sSe88L=p-MA`8nQG%mewZXpLCyU zP%RI3u2n1MaM^&rOu6-?fKohK!tb$K_;MxgUo9oAF|Ko}_Tmv(D|pci=j`zpR@#2~bt_dj87&qX5fLMWg%2@&&1f006uY9&N%&N&>F^u0BGG1D9bV z_Tw7^tyT@L9NpEv*1TV)cV3)PgORob!n3!4)vg5rHa=mnQeVlyH|r8$z%+o|RLfk# zOU0|ffIJ?rSXWIo9QWMBD%B4gDci)}H0pAMRzL{7wjuxgjw@9oD3uN&4i(EQI`W6N z4)3{F>ZzX@)?Bh(bb2pJIwc#j#10-N6#~NcJE`$lmrH0y6!U)L&EqXeuc*%2_>Kr{ zB)sfzopj?yL-<@=T%w)QVXh%m_fQFe32092_+CqSj60hg zkk>ZY^vmbsF!C}2Hx~Z%Oj`8Rq;Qh2Lvy~kbo;9l*BQ-yIIA-C&vUo9436QRgV&Kl zLYl`x3hhSZ(Ynyy%t)YUogrt35qF!mp6Qnq3KELf;lo-yenF zod*y?zxIm+>gJPALi75y@qO^ayM9?F2@Y!R`>cyLr4JB?u0aX;;6HSny96I|r^Eq2@6Y)4Zlv5%gZ3ct8#{=7nCeT!s z^plgciL#0=%a7FNI(%n4EhS3!O z58v>Gq@E!Q5PhEVWG9B&9qRfa9GTmT(oUevyq~P7Q@*s%T0r7l$X)JqeWJc`%Yr}t z1o9le%_y84r1V-G#iZw+JSeCaGPpvFTOy~+A<>4fK#w4f;$pz+s?0Q(reBN|esCEA zUaSP=DQPh5hOrf)!t@7hQ9Y>V0*W3$6&~YZCL$Q;FAi7IqvKhNz^h@8J^?_7%Vd_a3*z;j10)@}qp z7`k{-Ii7W(wlY>L)^THtK(0BHf5Um}7i@j*fXG7Sr@nRRXB7TyIxRPNQ=y`$DBvo$yu6wv}`J>f0R{$2umg z)lRG3c2sAID78?o{`H#EGJEY3ypdUPAkdx@Ao(@nYe|Z4McLpdbH>ilQLWYMf#@ME zc>I+LYTs2v-)6Jb(PNZ%cbR!C&OT~)Qi<;;sr02=W}rK0szW|cG;Jlp3$hbq4Xbmy;Z)h92;Wda-&mtlswzv6F?#|~nS z2kCB9WQ797%lvZFnprI?eDG*`|VfrT43+PPm^%)-s< zKOB1DsWK+4(jqUsHPv-9S`~{c9Tz?&kYby$yIa6__`4g%7)0pYUA(W;Lv%on9 z-iZNMy*wv}SrLo3ZQi9Cr(arl`KwteCt>xG@3;e=O|k>i=B7SXt{HDA;atDEqGXQ@X65+SP2wA{M90N)C$>a9&k|O< zqZzwL8uLQ1z@QKqV^9dRLLM{}5DE&3wGwkxpa3CsjyfP>bALB^&O zcXaZ0v3_giMow?WKn~{R7$fgVO z{^MLhI)TH6(o_dygD`*hh=7gs#>Cai+TpDmOqIp92$jG`ApEw|?sY>6KhXToe=nqy(Y<;|l}=VFAz~Ky(1ajsz6~1Ol48 z{pStpC3(v@tH8^5G_PenyC2AMh9sTOrlt00WBY6s)J%V7K=mmu%G$9}3t4ncP&FaT zGzGe^Np@5ups5VdFkR;TK&2v^7Nx#7&6p&RgrpO)jPZIl%04+3KgT6pQvO(83|`1x zKR+$`S%B;>&vY^+U+jPpSr4ssW`QAh`gy@&@8WANo0AJCc}i5?y`qayS_54J1b+_R z2?lqDpV;x1vT|NGuvR1anZaQa5E*#1s98lC9v7rtH4FmuS zgYQAXHy~`t=_H|nK>;DbAwZlN78V{F8Wddc+X{pU{s;8uAN7^4ow0g9n2%Ml#_6 zaMG*3SngN)s4Br)C}DOELjJuQ9R>yxM&W-69f)fH0lt-=1LSBgC)$k5fdXjp0@yPoL4t~cNkc#utyB3Nn*D2 z&P_ZCoA9V323F%8L87*nWo=Du@tmWV&=`I`zh*YYHhiDAwyK`5H|9|5o#sF6C^zyH z__53iu5cooazo_?+fYSa>zgIi=(h1L7{_Xc5pw+EPtOZMDKLtuXKuM2ZB1p`|0}a9$9|&Vi|Hc>-;G_`X_lEx0ID&<6 z=6^7%e*=dX!WeFLc1{pG?{DCMK^*^Rf`UW;uMh|I566LU6-H56MeXl^g8pv+^}l6L z2Po=6(xpt@HYZ9MK-JwjOCngSBf@j#nixX6mx={YUm^}c6PO@r>$nk%OPhV1iCBl+q}D?zEt^%;rYzAwH~4CVLfpi%s7KYp1BSiX}W>KP$fQZh(&*Cd!>6M z!C^!i4sCrPtw+%;4{z8`J?$L+9n-79GHka$x0N4@SRHmFm9mY24NFV&1phYKnR{-mL_ z7(9R9CDsk@)I`mgQo5^}rqPFR&FZMu!HinB_&*W`3HtA-hXgWw&>wk*vwq)SndCw7g^05?b)1ct$$nDoLn5u-Ob!w z*~HZ$>4X(x0?GWHjzA!c0EiF7^Y=CgDxCRm9eR3t{;LixT>jFN+dl==AM~Mz4z0vS zy?DlS6!TaVuWTL^yQj9`{On%i42n-}483>x{yfh8gU=~ll^m_rxnbnz-1q2xdMDSp zldWFg(+e$5-Jp;oj0G3yLoB7^HPl#N31t)$_a}!e__YZpU3^sD8sn$s7nlmD!o~ae z!nTec8x4N2(RXHtuNR7p#FwNVzTwq_5%aZ-Csku;-QRNq_b2zmTr@)P9T9)+k$^OW&i%%^M}^qg20Ch1O{<(a{opTFQoZDpmj8??JZp0 zOzfThPqoe}x5GpAu$Y`P{_up1kb3uhB~B|ddmEOr+HmNJ5XX`%_yc`oqWLD7N?2>J z{B$7f?U{RL%uw0fXKN=*FFMQp#-_7(E#s#ZPgq6BI+P4-lOju6Fhm|-?9J`vG*;Fw z*1K{;hk`Z&6`;72e|6^|Xpve;k1ut5=(G7Z(!exm>DdsQy#)CQoX)|}DDrx`!5j4I zFNSk7yN{q9lJX+@c|2#^IrwZI3nirGIHMUcD&w0Pv**l&Dlt*&TS>;OvxQ-()ZKj{ zjI%qX$;7_>im~tx?PrLGE7xF(Pr;Zm+%arTI7icMvR;^InD)D5hZ-_wnK8#K@lBik zK-zfQ|KLpskRC#2>VHKXg#S0x4h9_J-{u;)z~2%E@E5t`xUVFf*1}mSAD+;jby&qO zDn2*`BKXGvI8ZPsq(}gDfIDOsA`TG!&r0aO$f&<4XGq5X15n9|nBZPNl{U=yd=q#e zTC9^~+?lIJhcF^6%S*GW`a9wi-o&OtE#&psMt-8{hpN(%rdm}BB1Z)409)t+N~sgO z275osW~pysS8?c_@X=g7M*#;;29miSX2vGg;=8xH7{~pNM?SO9MYMc1>*t!rr|9xn z=l@twZqcijV5nM9MAMyzC zpV9R1lSlsr1i$4G4@3>UhMF z3%P{4B)O!z5+AoH4?7DN505AduM{skmc8nmu5RJtVQpsd zzm-!d!ARs{_^LijDJPjvs}a)=XbISd72Nb#9?yy@l^$t~Nz$9;TGmjz$pMP*Rsx;R z+yN_X;&u;?RnF&3(|#W&l3!)#547Ih1gx2Cv4BXkXjwdj_oPzeKQBgcFOHpEP3rYM zT5VpMCuHvTVcivWhCR;5Ou!0u06kRbpl`#P@WSJaI}I3^1tyE1(sf^xDC2eWERvcC z3v$(K;oy3v@MGKqYLd1MxGU+}%$Q|xf;D&S4$GNR;v&%k3IWBQ)bQzyPSDMa)bBs8 z4-`2j0;S}^=L4Dz@e*f z#4;13*XE1nj}iIaG%)tz4Y8D#ZNk?NidwLM(OZy+q|ydKWXCUz^EJW^dQ!;3t)82- zJ8g);SgWLbQKkH_B!JmI;r@z(L5TU^+f2o?m zKq^yzR@IQfXrRCD#f4Dg9|yvKAya+7BueKdqGf`&$cm=EFPU{`?5D6GrN4B60u})Y z<>3e60VDv{02fH{%?wh4(*}@35~2h^KA$p({J+)j64ovjW^USlbuvgX2_^&xFc0DQ z5O?AzS3{}K_OXVvzQaPrsGVTliHt)OJ|@5MwSwilIbyLShRX(XnYX`wrXAZzbTqxP z#R_C5v;~co5oCS%IB`QrA2!1W1iHN+xgr|T7ZS`~q)KECG_(H1p0sa-+nJL&aUqAL zt@{bcv7HK2UIG*m5-74C@ut4606NIC5_!;PP8stH9*y+FF&q0dZFub=@AQV!m0aJV z-5{6)a*jD!m%I|plhMQnKIvUq#l07e^IR{gWU)L?{^=;!nTcp)IjgZLi8p#iVA_Ij$ z5&ijXz=1=cP#`9Rf4kfLb1H{%_^lJOdE^pM!-4BmbiT4}`efKb#5{j1E!v zAP^TMiL!%vA$5lT;&L|UVq5#l-k~nrGwR>>Ng@KUWxW3CA`sQ|+eL&P=Yp)0`@cPJ zG0cZH@~OITCE5m#iab}P+@sx%MfsjtkKrUT&{~$ajb>^lNt1ouGM+&=kXR|#jch8G zj{fO*p&aeV9iE!SCL+1+)r9FlI1Qck(CsklhbQiewSP1^u?v`{{3Y7!DW3Ishi)qv z_HuY6CBwTz#QH6s?(`;dEjD*IB79FHF(k`03`N5I}i{kFfb4V5Eu|KDG(6a|7b}6!~DVg-@tzYGB6O301zm; zAuj&^7CZTf^?-m(SxrrxJq*}b8BA?#fMRfffc_UTz$Zfa|2sAC;9z4gF>(P)2LS@Q zV*l?Q1AJ2y|0e;kGY4w>k5e$$|AjE{aA5c^#0Uxm#KZIdLDFjSEKJNy2LEq5|6}-H z5=aaf2*CfpNF#C}p#Nw9J7*ULGY>PM)xk^RH~>(9PC!5`9+HDK5YT_JL;deVi;BR| zRU>FF`eDV;gH)3a^hG@HmGxDNQfQ(I(C%MF(9!I@)kv>E~>iw*aaK zHNWom66@Tz_sh1Uv(EDzx6|%7ego;td@gX%?|N;pzx{o*R;psCnaufyhKS#9Yp%V) zi=o}#%BSx(M8oSjR+OWGzupYAug+)F?F+1FtBugBf6n@&N90|@4tLwf=e?^v`TOMW z(eKx<{-51tL2N7^d5OV~x=#vStoZAk^$T2C+(Xi%;p|(zm|lu*hEu)g&#$&y#}N1G z56S_k6D1lz;oon6AGKP8JUs7dyhHPtB!temG2oL9?`+O)?LCK|bAQ`xWC@&K&fneh zK7{s*Rqq~331bu#1m&*JUff*{K&C<*UzCJs+ADTJ*uleVO?FrNuEmG{^Q@IC)%Vx# zH=s7$am_=0t8zz0ltD16XV~suyF1^UTrYUI<3RJiqn+jl4Kb>1SnvSVF&xhhSl@ok z*Y)Er@g*PrY#~m#PgdIXdq^>Au5*rWUhqSmwaM zu~FB}PvevUF?x5{*>RL$nD&7F?cl4(PVtkjkMmoDFYZ2IBS(XZbi ziSG{~CC5WF>|a;LgNHgTtk3rLOTUC$`+L3N&r5r(Oop?78U4=?J>y-CGnpcay+`V( zZ%IFBdZ~xpTlCjxY5x0@-ypFoZ{^PFn;mU?n3>zS;E>R7T^mV%Vd-b#S9k}|!IX1t4sX@N z#kFHMmkJbC40Pv90SvH$*5JoL>wJf9paLVY`}oMV@LK8E$8jQI(4gfEiofvll3&%2 z)A33Be4_v2?VxzC#>+O1@1gDMZ(TVUHxq6K7LMlB8~k>4AgNgI@j=bZdQ>xQ?t{Bu zDlP-9N_DCa_W&s*Sr806v=KXu5;|$oY`X+Ztm5 zBTM4@LS#yQCoK{Qipt2OnX~Z<(z}w@(?}mBu-@1(E6a6PK>>3#7;fXSpUEC@-D>5| zfJSA`!j{{!8zw4jaRYe>2f{_3<1%Mfl*+l2^OTPyEHjkW1CM`MXlxR$$iadfVa;owxZzTg^szXv@dlDM zO@7=A$Bj+PE%Rw5cP%N`NNlg7G!r1vC|*cnvYjKZmy=uWhf4NCL zk^)9q5&GB@^NY7{vqH{|*M=xn?ySr$#+^er7EH2Kr)!GRjX7_$G2chfH`+UA4ca0n z7GvP&Xd(kHF{3|hFpV(YpgOY7|u{$R;e&)VBYmI^LaHF;(wYU{%@U_PD-G7hG9bJ{^mnY%#Jy*4p08a ziE;dd2&(4qNFqZX*(LYG{dXAzc6ZcTFTWC&q+E*^Cq!v!c4<->%|={X_yRw_;OG>Y zv3`3!@^$x+3KTGs;lXxandUI{C>WHGQurLhZeP8O+&T{v(F}g<4BJt8zw;B;gTEcP z#{rBn3K>kK9OgQ~gn&1yZq>NcGkJU`maC}@Eb|;!QIH&^j9}p3oJ}f}`O3rFi;;4< zJ<&P}vM;7j!`hmO<1YHr;eDq4yE{LGcmUZBV!53e+iK_v7?|Y_2#%9h9aCyBC72(oAo)Rr$ph1yH>ncmvIA1JY<0s_+FhP6TBB~iN2O>R$Ea|5p z>s9u)iw;xldC;lUD@-m35ATw^-jxDtsyLtL*(B*=^PCcBy;^xx!khbY>K+{f}n2&ZznZShy^+G$ z%iF6*onv}w5$aALcAa(md!blxER_#sA-J4=<;z~O-9M`)~SSBGmw=x3Y9>tUyf%G`z(wwjWbPZpX?h$&XgN0#EQp121$kr;jVgi z3E=|{49T9;tNP+(6&^oRlSG<*F>L82LXd%>k*Hn1uUg+nnlOm-Y{7X7bHL4fTs>p< zNG)0(-8rL6z@FH+G-8gI%g=fcicF9?&Qj;4;CAzVh^R#cJcfDSCtl~n{+SJ4AC@nxfBoEloL!0WZ3A8O^d~b0*1@g=A@>9 zAk-LlL^(l+b~vh1LQi=*J~}$=W$Q%qn7n?uezKXp|L&&3`!=kXuxTr3bkNc2)y7T8 zOo=Qx210rN?45Na0S7ON*u}_>GNFT6%=r9{kAqc5IC9SlO8VyfX!OI$?YvC9T%f`OmVa6CguFSOw~f$oQWexH;H|+Dqak)E47Y5j>{II&zE3gNNy5 z=MeOeQJ|&--%&nwKVyO9uG*4a@*Mre`_)RUX@P$WH#Le_MZaku9DB*}8(;XAOdCM7 z-JZPv!S;oG?r^7+4whBI36*QRXqbcUgnid6EDy{oea8hQ%G1Z6@Rs-B@?YQq%O0 ztu}A00j0?8sVUlHy%`vKp9B1IOOeg5c~5hO{*?)!r1&Ol^;u>)x_C5Pw&jT;7qZLg z#U_wiZEV+r&4xra60o*ttBW-k>^)hu%dM^Sv!W&ZoI?K`|~y&k3KA|;^+#} zf}joJR<=&q`+XO_t#Fwf#aog;VNr8y2#39oTwH71IeKV(?P3o)9#;~>iT~=Sdd_h- zp*M12mU5#i&n+Ik6PHpF5EhAau>XRzV>-~ZA5w4yIkMOlNEUTDf(1NCn_pf`bckR! z$=U~TwN$+EVTnv$K> zXhr6dIN=lhNTw{eer_Cb<)F(rt}mv9Ker^PcG`(nnd2x~*syzuhMV`|b!}$Gy4By#yxTWpS+GJjw^HzJRZ+#Q{t|?+sx9i7 zGJ-@m-K>m1hy|sQf7*+HIlbt@uf1lt>CfbIew}@y%b=6;u>v>C6!0ZBt-OUjOd`xI zwbkuS*{r`V``Ggqk$zKIVl-g-!~6ihN9=QmaUB|e>e0c$G=Tk9YagnG)b5Fm0Ux5g zjHN}D(*AgaE>>0ujGJXT!~An5d-Xg>`EjhlmY^*DVtBOGAj)LTz;nedh{48D(V%76 z4_C2aw~Tt9yhZ?A(w=`P@#0d;`o`LjTsn3fthwCMB}pmJlrZ8Q(Eof77#J+dwUl4K z9h(VI3k2(gskU2QNYxberw-XoGqzcV*>26xR4Ya3M~isccx=LjBssv$fu}XKuqco% zam5oGuCeIH&*lle24}|bI@~z;?C3{OC4}RcG6<{~Kb>Osn;u+TjXkI~=S@(sK3h$9 zC4e^=A+7fp4XHM-kT$AKeUMe{1YPX$DW23S$BA$_BN~{rHmj14u#>7NHNop)ZGDx5 zRbucJ{1pX_Y`?=q`4Z3PM=JvgNjfTa4hyu^J?f-17LV*_$-?MH_I&SWX^>GiR3;a{ zW(j(GI9d7;Q*D(NSgBK(Fxoy>xM3A%5SEQZb`Ct!dMJ(+VG?$`@}~9+QQ+M#gVoJN z?bZJyZwL?Ir@Dy(D^}*NqzMvR;U9yKV~ChQ zpbd2zF>jRO(mPsgD%Dtosi0Ul zdW;!KCVUNrs=We2TD3#sjQUS>>$TusorcnI%b6s7k_U9Tm?{I%0$nP*PQ5=-_wP?* zZPb0drS~S$Sw1nb~Cg=gRs8v z)yxav>DCDdt%r;SstElgcmxF4Dfv63H_acj8@Rq5Zg0Yk#-oeN#?U;jEKpg=p>*4~ zhcB>ysba_^VF<-mj^~n{#F$4%$B~=Mi$_r_-fTUI@I7!VMbXygtf?R->HERtB1q)< zVu>s-;bCWTrKcsvI_fMLkF#dj#+;e}Xw}FqNh;(d3@s^S%;G6c-tyE23IIx9Wk>o# zW`jLR$i&@ts##d}Ge9*$XaL%!KrZ@5D0&Lysk?3EG&LQ4aaR9$*|V3-@MO`S^)$|9 zhrPgfp5@?0c{0A8UwS#(moTuccpP{cRX`BDfB9|Rd%qKF^qa` zUmfX3xoGu?OVEtNePSy6@VnI0b)147c`RSm8l+8V&`1J0mpUG zoc}IhlO}ai+}fB;eAu9x6?^1;nx+YNkJB0rtOkqV6#Q}4$ znMgWP(f(5N$TXlQu&b$R!rU`nLw@dz_>w}q_+np#H^7^5bNnbilDd%_bOYhqUsk+7 z;z9pHkS{xTLi8{_6wUD!Og?C3-qd|1#lAFWDMN>|MshU1^4$`cjs zNYu6udNY))nT%<`tC>=Mwo|qZ$)6+>y zh}66WN8tdyI|~JQ7$Xt`d|NTO4MAMDF5zrW%?Qj#>R9NY)$d(jaj|o&MX6RI+sOu{ zLuJC*X0fK$4;F?-CWXuUP_O`Ts34?Xs54Z*GSh-pj9d*b>q)@O^EMOq6go3$IjoxhQhO_gLroSxHBFROgf6SI*bIO=ApaHC`kO@&NF z(iQLFDUP?Tq%P-{u$%oR7(brgaE;EKvraDVYbwh8fZV*Ln`*3et3SQz0ZXI5u6qn}Eq*(z5t4CT%d5JJ=@m>=XFD9rCs;onLz1iL~vRGCz%1F{;4DHHTot*)_ zR1w|$nEwoL#&(z^6K7(cJv(=0wMA|wXRSKdafKp#P5#9zN{}c71eK|Jk(u#VY{tuA zT~muZZvY9}v5AOCrCwZ-S=U%}TG<$2n;1+2*|r2Nd179)>Fd_YGHDiXz;jf37C9J< zmGq$~{~5hE9edUe4ptWB!c-`=BO5#ts!*alPIplH%8r*zxFA*c?`Px}sGyAzU8W$p ztDg}txziZ1w9~1r*>5>Dw*{Rgdgp({saM1`-}i|**O6xB=WKwK%lC7oRlycG&|R5X6?;rn5F1Hn3!f_f(?qW59-vMs{z5geS> z6Tt3I4e>EZAW|l~s`gv>0AXlnj7s!_+yAK-r)2hL!pSk1$s!uW88v+y-TL@f5u{Yb zd@_`NZi^gq8+uIfSZH82g0Cp3XTgcIw9BBnwV;GHRb9beg|p~=!KJzp8K zGn=Z^^`nFJq;~LC={_};^tB5u5~qE+>h4FljGW2@2C)A=Uxgc5aNu_Gq~PYum`A0E zKmE7yUju32`YDCpRd7tVJ+0!9?4qH*F$lrRHNcHYfU1$54=PA4RP`K+~R7 zYPSfQ}6*4Fjy%e#geA_g&oN%6+h*`bcbBR+$m337z1$K_Cb_` zBUMx+7xo3dRpFn)nuOTMJd6Gc>7j0W73E=Um67bevB#6E_CK)#?bJ7Sc20a;maYae z6mmrLqVYa3TePKR7fSOi@oQ#{hJ}o8X@{ty8b+--9XIF{9|SO7e$I{wNF{?rnHKmO zSP=av$l;(3($_KVa9UfnvF%zcFH|F}aXPXCQj@Lrr5fPnuCMp=Et6c}EblyzKK!w6 zeP}Fz@0`T=iaQTpRmXgmrBg}qs8ACdN&84-5CEjkz44gPgqgSSnxMZcCVGh%r7jHB}OvXzhnn2ydI!T4tVeETUA5 zC^Ll;XQ@Zj95Htfd_W-z@m&sUOK(#?KiBSCJoM6ViVTvFc2BHl3rHX+w3lf}(kRSW zEaX`Oo{;V9URmy>~q7DV-aE-w+)YY}&ik3cT-0X^O0r9kN^K=ti#OnW%N3y+kL55Q-=v_9}r1Y`l%92aUMp z6)!Y=iwoR71{BU)EfQo+MD-Pd=q6I01OEV*D04BJ*$|j>(U#0Lkf2*1D}Nzf;r;C4 z+Y%cU*JH}rlp8UG%MpqR!{9ZXC+YZFoO$2f4((^0y(DRvhwQp|EW`^Pn*Idj(-C6P zs(IOyJtsnLlsQ1t)fjd?8FB#JO>hLxFsEHcMlnu&i(v>{qNbh3(%ZWEA@Na-ApFy> zQzcBci2J}#cD!mphd#DyCN1Hd4+W2*6UgvqTUaC_1|=$W*X`GE27=DkZ9_8yXSAWS zMLyI-JoLx*x(bX;_T{gNpAapg6mp&g31YA>y!jsQJn!=YP!gC{2$As4;a&IGrEz)9 z)&1hW-mP5PpMOD8iF&+0tDlV!W-@Vx6`&e0`pLw-xul;I>z|A~)UhcRVySg`f9^~Kn$m=F8vdO2;KRj~PrYn3O0ZSjgeb7{HpY}mg@ zRL_{`c9v2!I5UJ?C}hSA+iA@u(&9C;^7r+dK~09NWcR6CO^cUhs^P}kPmfSOIk5*_h2-|9rrQ^fkDnwYQa#j3o7^Ceec zBoH-SwwV>r#%oJS* zR}<5^9uLXNF0LY_q&z6bAMgI+AU9ZHei{6|A;ZSxTqsKT7;gYt*fW{$)#^Y}I*>qk z1ji@F>60VB`Ij(jE5t9O*B&Jfv zr+g{_cmXJD@VIYpD-u`S1UV^}`E7+ZBe^dPZ-t}m%Cbw{n1?V-_zYH9f87-f3(}F_0Xtl7R(63-U&_;wf~G%_U_}^N zNMb%=;eurLCiUt}GhwPW@Ry;^BJZ-Z8O+F%73doC1AV%b#ovt|yvw#sfrq?V)ZQHz zsyq+=V4~f_-VFn)dkJGw+8%W!#-Y-Nr{WJWO;WcIOdVky%U%Xl<)lE=JxdJi4$=J{ zrrOChl_t3WHQ=%b`w@o`WL?oUh25@8@Vw9@ULS1Q*x_!p{qelK2B% zz^Ub?vKE5+B)dFI=VUIPUT2uuH2D#l%bHUL$73~V5JDcrz<)}dt&~=ZwM4K357zG# zHwg5T*j(L#js`o%G2A3FV}6f&?`ZfT@v>kZI9S%{(5U4_xgm2~V5g8Mf=8vWE^652 zWz`nibY(}Hu=rx_-GVi@yG_JVrg~eqk5$3uU@vA~m}2$^Y%fAd2#s_{Q|_=Xs<(X~ z{1CVn`l{CMX2-c≶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

    1AqcLP!!oC9wt_OhZzctdX*btX+1P;*8r5 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%0D!NMQP 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%0Aq{tdN3QdG60&5M7<6F$QSZ;K{FpRtA z(R%W_wW~u8OsQWM9yrX7SIruDW8<{92}!Fz71g-cJJ%h_(Q?UrAXpq$?=b34ywYB5 zSdn}K?!=&kp9RdNalj1H_~hd?LspLK%mlK7l$Qfko|i%2Qcm1*4F)tdU**#>lKhm7 zL#ABZYFu{`0|ZtU@Y_)~PhymTJ%D{SXqz(fJR5RX72_+7UQbv#BRFj1vMYyhC|J}Z zTzz^%`C8{p+G$-4lq#I|W4|IfC)3Ca%v}Ql+!?YI3Dz@B3lmDcNjKk|ouT(k!R%s~ z$auNrnZf3U=7<&{@bT}BDM`&5Oe%X8IvE%Ka#Z;{L2&wVH<;nOT3V(VGzYJ$zAG_Dcd(^=m3|Sxzemymp;u5`p+Q@^rWaoBrDbh+3ZTeeLQM z&wMw|HohtX>k2|M(is+nPG|b4HFFtv+|q+`FM&O_U%^8pjrK$gxro!hoHT26da12UiZ;G)Cmb#{q#LpA8ST~RmB-3mGa#B^MSeMI zcM}(SKM$LCAL&V=l6|KJ1g&VFmM&jI#<(53IYa~qI)s2`>1B-48N`vl^l!!6CRWJVk!T3t0Y)|Tafp6is+qnw`ZO9@4*lP&jgfQ&DA zA=XEXv(Or4Vjv*L;Wj7=oeTU$-Nm^4PN>`y`!;}SN{y!)cGO_N*1xJ2f@}`uz=>i* z=l!vtm5$3sW3kc@%-eLQ}@0Yw# z&+2u=#SVXesn9xHM>;RMryIxED$iZbO+?R}U%3qrs6vq`G;k9`_Jd7Vqfp?zR-7lT z`f!Q=Nn`}Rf*gPEPDd}_7wHH;Y&&-Y?ef+|t4y&YasZHvhdmKXCv?>7+w5J6_Z19Y zi%Kv5I!TZQGsF^H?)pzzInUz*W|dP(49tMI@IE`oNLzu zFESekjv3_YKz!(ANOut|!K_SsfYZpk)<*1oLarq#sNBb;@s6`Csf{i~Y}NXk)1|z1 zMYjd&S{;O7TyrxKx90HO7q+EjvVyN;lrHYUEVvxDfpv*1F~9eV&^FM}aPPk%&6281 zWwKeTL|VL6>QWC@=SK)Yxv@7S`^^q~OFY%9_a$gOdv{qp6Z*&nz-Z{;>>~%qqLJ8r zeKg*Z0dAUi17+8PtuIGLG;>pK<~(>blo3`=z1;bgqT|Y4mr44U!UfDv+0~-@KosHq z@VyoO0mrd@yNF!;aVw&vI+9MsT8%&0nz`^Oxmd3uy{xhy?-}u>%)?vVzuul<7*KdfQ>+Yb? zPf*q+tbjcq`^x6md*K^MlAmx@Y^Fn+sp(w_KH_UmnOs}s&v$B4Ufz4gQ>%>Hv(* zfN{b>D$2I9g;<{$OC>DJ#=M8m5u~=yEv;{ivKj)Uo+F2yGN*@-FMMWRbD^(a>yW@d zK{PFn4;?lg~DEt7Y&oTn|!Nb9_@*1yz; zeFBUzHX=a6#9bIB@%szGzK@b9LM9-c#0Yhg2)2tTVzjcHE&NMKLbu_(lr}jN$y%u* zQoJ=W$O}ZKVez0)V86~Rx|$+MFD81ph&4^fsyGF})7Nil$wxV=xptyNR0U!vUPM2H z^YZtnq%;UEU_izh3LuIuL%N=k=#XvDzmeg$d($KD*%>qiiCiQoI7>CAny-zTPqsVM zvN!`sk3T{n$a7kSi19m1$1lxY_=wAFo@UladYNdLs%X&DVjJfusjpj-Z?Lc6QcTcD z-Ihr^!-QqSL&dI{BWLmqPPR0%+jB5*;_&uzQ_vyKXyf&#vxQaf)tlaBeKZ=lZQq4Q znK!U7A$Nz}P%!#ZHab57X6M|I`HWL;9t!U`#W!Y{A#S?Gx;mCn4aC-o2?z3=>V;?cnU7U%=(4*p5}upiLga3}}BGk;w1B%9g>BHQ) z=C)a9(+&5GG@&?3>VViumc}>QTUW`kil?g3YNY^OLgsmzNi$}m()$mr42W2!QMA+_ zQ^$w=GLy1pc`J*qBU|*dnvC-0EVxlx?20^|TV?fjw}fhb3yWuT0|RSDeu5^G*eyU;2py@5f4 zc%F}&BD`%JIJ-O2n$B(4d=ou8eaOBo(07RR7QInj@BUsH;Yux1>V1=BE~G1=PB!yj z!1aEF+QlAJm8(l~gOC?pd*^U{=nwGOfAi4hWrx=*+8yMVb9TZr*$2<+wpse;Q&f+~ z;3pslaKK2Yw$BaV=?~5ekkWbvyt)k3{W zM5Q8?vAPqrp;IHtqYU#-f|zJbUuk$=c!OA|symd$1$nK?fPgZU(MY+TRoU!VT%F!0 zL_^(Yy$aF|>{pRr2mq!|O}@V})z~FG_W#mAl7UmkzkI2u*0^(#zD@MZc=5gl`W?xw z?4u7J7}%ou9a?}-If!c0(|GOIj>uL7dO7yGpaI^jmQXZ`Iq}dK#(r^cfbr-y*hC@w zkUQ2W7zkEjc=mw)le;EU8B-i$Qv#k7=22Gltqm6>Xf5cQN#w2yw)y*KxxPai$*bHg zLVT~g3?&G|M)X7%$NX93T9B1jbsNE{(l8OyFUCWmg@0GHs&Og!R4+1003rK-sYxjDA6i^& z9Pk+73$!SSeP6tRjx6j9Nk_WCr_t4uevt3zkHZyW4c{PqX>k+Jsf{v&ObN%5p=aIZ z97;wA-G!_UD_zE(0ioEwL^3!>3`x~Rv?%g1%!Mvv z!=6zRQ0VfbtV-k(NJxI~D%!|lk_7L6Y2T6;Q6hMZ*qPyqto6=kIo7n6LU?F`>~C-n zsSYa)Nr$|)^kBmeBc`PoA-MeEkMlvHUo^(%3Tq-pZ|sy;LZ__e#}Y6)=w9V;?0H$7 zPH#nGZ+=#Gc#VZ^ox99NTvY!OU2LTDylxO7&VY7wmh!s(`3LSqu%b4%$b}9Njoj#bcl!+47uUHi7#+3InuY8(_-?Jr0{(R)R#IBb zk>geG$O9X^d>Zr`jt!zNMk}%%Y}eKTeReKVv%l>ADoP>U*>6m67Lq~*i9VVpl_V!m z=b6rJsjTLZ;bSx z#r>i#+0VYVkKu}xYcL;yDvYByb9U03Ki6s&VU_w^_8%yFLE>rF)&CqSDUi=DiF zqs#O!6Hj7R8jf9gU9gWa!7la4=*ys9HmZQd$u_3Od>HD^$UESEM zK*!|sQ(enjJ5^%)xq1`4CWFTL+RH4@KQy~}T=wKut)_dODENbH)X03o)24Pop;>lA z?@!G+KTF%4CMqgqc*uS`#5e6V0Kuz|a1|LRZufF)-Js_uM~tp7%XH{T#o@Zr%29Lw zM89jv#2qUhD@wk^>uxzI8>&UD-JlhkNI{JOLy!kXMd{#C22Kbz2t5_cd$3Nu8c`Za zE!}A^b*tC7Jc<>Rsgkvk5gH|Kv19Qsj=ly#=cAjgM&&>h!vQJD`OMhF&nrC8@3;L$ ze~$-h*_ufE(p`t+C;hRdZ5u+Z_y`rcA_yUwHM|i z@9@Ku-qYBjg9XM-8sQpnqC5xNkE*38Nw7)D_+y$Hz;T~XJ;1RI&uvymwL2itGHIFE zc%bq-B>u6DPG-ZxSo;#Syd6BhXw5yJvbi6hgI8&UXt~5OT<>1}(bMD;>oA{#-mqT*Kxu@XHd%oNmLtp81u7oq(jrfW)0=13Z_~55}PF zk)P7~OrB?nZ=80#Ur6ckk<`ZS&MpNUJ;{YrEGKK>?Hoij)(#8$m*h4x z7dhmh(hOp{B)5JODe$*~8!d=U9UF05x?|lAQHo4b(b89NadII_O=6_14s(puPu45( zFQbB3;aWCY-$ti`ae8!w{V{!Oc5|_~Ck%SS;kcaod|!zkMjb>^X4E7U@!^f-88a$g zlxdrxh!YRhEKIvYiTAKggQJog>4>9=;}bO3bxE{NmAg0*Giv0$Q!yQ7tKxyqQhGK@ znz)$Q+%IR7lhY5Ps37!(tCE_IUyhY5k^oSFtzmG#{@Gttg64~KJIH$iNeyPg$|_{) zA@3M8MJHL{QaGipo2iYUr0ec1+^UBGkv0U=T_%}PB(!s3ngTTXXebh)0-D*GwXPyc z)qH(j5J9#!jeJg@)#Yfc-@;~Xu2MCyQdn7ZIhVD@S}UDV68g@P?qg|8wGBB%y?9~U z6^nOmaj)R-E(3YNx!wjj{XD%*t_uDvxE|3Al5Km$%uHT(3kqu$BRlSH3r}j+*!UV8 zF|mkM#+|ByGnG%1>F8gz9<-Dx{|s$IQ0XT5BOm^buERv0!S+I^3x4->6RdUnMU2 zLQ*OT- z+ek|PugXl?&jQ5EEh(l=s-=CxpcuxmFP2Ob8Wr=BOvbBgGz|th!rJJo?w*ONg#N}g zJ7j4&MJ33`o#2-^cnF~}HZ}rFb25^7VjaH%R^U~) zEA{SXhl?_t^FR~{j#_z{Ty|x!{T2B5?Ea_PS$Kls_1(TB&06=BKmQ2#S|}s>d}ZQS zMB*559opLW`z-6d5%`5q31HN)2bkIlOm-!3lW764m?D&{6A;#4#?ZDkGKw?k&{!{6 zDD5c=&n)0F2eMkqw+Mb2Gwe=LWa%*x7xu1|s5fYWlukuLF+JT(9P8O;|8kw;t;-Yf z6SaaRNTNyl!XpmoFQ2hS;pow)B0}Ik-Mab4&N!gx(j>xMy7N%8*cUNw((p|+*jMt*;GT|h+I(p^ABpN0 zC7XlwQhCs-B!Hlq6UoNUIVr!62(R`MHXgAaCxIlRQc+O9xol25k`oG5L05zQGVADS z=W{ya+(Zu5)s#-|`ysx~Y+vzscQg0sePCTNWXF%bQhoJ2K)#EZYyGY4={v^xrq~XMQ zq@0EnbYTH*yxkLN-MJ<5H-0e-JQn*SFjxlQE& zAtfA@=%E1Lpm9~}GKZKp6wt;paVx-5Ntp=Y56Hij zcRo85QDb!0cmXUx;}aYLLu4?oc;w_I~~N>=}ZdMSnU4;5COQ_lGrsL6Y<$SaK5A~`_7N9T20=c2zB>(Dssqw$zJrF3mF6qA%odcrvsOH{>GWH5I z>|y|UF%w0;eNfO(2F&CZ9svf|{}u~si(3G2!RP)q{C~9D$N#zc?Q$F!4tYcS5u<-u zM|J}Kfb?E;^ps`ppwZm2F!wr>%?^H|+2060`(<%XYoq%Fp*(I^+u1AyXzKkizm-Ut z;)Wm4(tCzIa`tJ@iR^pGN?XPwn-!W`i}|I!!hLpTWwqe8dTUq2`f#ddH4y^aeDj55 z^sx#J2*$>;JFCeokFu8A0t76<4w;SG1|2I9h}WhgT7^wGW*;rxk$5firNpFulCw2&rgRkH_R~Ixc|vSRVuk7~@xyRIPnzTq znvNJGXs0G?bDMcxtysz4fe|CfN@*gGpJ-Fh>zK0)Fi)l@+j-OM=GzGF zA!9aWX0(Osvn}+=Mk>!_uTC3s$z1&0l>3^rQ2}KKQDkm7;*(Qv z3AN2^^*lF)$A$fK@9|}7M*E@tDaAG|A#Fr<<&1}mLvb=>fIWgs9ZG3w@;$X4YU9db z%Nj5T0{a9G5X0=u;5+lyB53%I%>y3yS1viZfto5=gZ@>bi)b)BCHSn3#1m;WsZ%98 z=`axogo0GzJYjnPO+d20aXb9%OO$f&caR9iKWR%Dxhxq5@veqUCH4mKOB0dW=sd0a zIhIcVrHeY!mTaN32(;mrhIm zUg%1;TRoe?`ca!L6WU)7{-pfHo)v}y8n>*}<=RQXZTwmKlsn3Nq z(f=ThQX%CN0VCJm2M^_M1EnKl-kmtMswkdmkAF?n#(|i)vmP%_9Rn#_E3f2$*MkhV z?Wpz-?_oj0;RDhb1?1&-A*ufYkJ27}QMZ732MsTu>sT+_-Oij-JUa@x@4Vo8$6D3# zkrc`-zsm1?!lwtmCA%J`T3wD-kFim33FFwXLP3ZdgIz+}^9WM;XkVCJ{$ z12#*+Gr50ipbOFQZkaVj^s(%#&p~Bo9R+8ZFA~yH62QR zwO5xjuh%7t5Rx-^WHswiTXq-j3c8eW>PQk01`4Y4$x1Q2W49O__-xD+Xvjp=X4h5OuFL~Yr^ zi`DSP9pm%^A01>Ek1}bYwC<%jH!_=&*qACRUqg_<)RT{4Gy0wV!4vO$rpJ1b&nzf9 z3;Yoz=q5(9Ag1%_=1Fx1+=YeE1I6mDm8isl)Ak6ccqf!CXd8J-P8Yh^doui(7i*=I1fpD=wNWNgSRRNt%I;mE#xXO6giASQz>WiR8{QNmGc| zc_SKvc3RZFNa>?^ptgmS=_4v!?4@{elCwIbVQXx>3evxch|;&F{k9;R^nuRQdz(@t zR~DCk66@7PhNtCFQVgcKY9jmKX?SWj=F2f|39lHlqzV@1YB!R%h{3u7i6%NNeMz(R3l^dZtBHSyUwlo1y&u~tB+PKQdlUy93(0?a9dzWmZr*@T`6 zD;Ox{h%-H?TY@ZEIb=VmrB(=XTC9b2GV8HQc=Dt04R)(dG3fFQ+zgD^xvIU1w}}&! zM2i@84vBGOG0wlrrDh#<`bAm=OuE_%gTOiRHXR>X>AZCGHHx+hK{#8T&bTVP$FyDC zx+1x_jhSwi!*wHB`h|>J*y5ZdPnRk2QEm3-=YKYZXi5&zTbGZVNKuIhK6r`{#$=5$ ztUXbZ_F$&K5wokk+>G?TWhHRt!q>H4G(m`~k?0zUIrSuH2_>YRhpne8bEUP74UJJ@ zj;<0zTwNfYF+eIhB6S)Tv&a_4X(m2;z47K91v!ox<$~Z`Z*J3)M~bq+S$3@ z7w!{-XL3$E*&Bdof@oji4FffSlYjtrVW=4h=E_R|&=JQ^ZRDZ7A|6|pK};|MJ^!Yr zTR->jjJi}wWLC*Ge7&q~Y)CmWSoFd1a1yxt%mSYTndaKT9Z)w+xx z2=x5$%ok&gml~Evx3^)lZz;FuhRjNFl4*w#N}&QgmgW&sQZg+&MA*I&M*0H*RBHIM z+70Z;`(uo4_Yxo?QKU+v)0bQcD!zLf@cPZUA;<1j+J=x<=0-?)X~QRduRO=c2(pXFJsgpXEITw65VF)~EZXa|+7O(lK_LI`&Pe zck8Y6c@kJ*ub9Yqh)Zm~zGU+FY^F!`T(PQR#g#$hABQWHLGl81wE}GVF!e<_eDV4 z60SMg(@5T zqUo=PiJ{DfTS9B-#9@yQiq3n88lmyJQ^GStEh`X?AUM9UQzLqxW+YA&RPd&GL@lUH zSGsYj=`3+QA+6Ac;9$dYRfVlzb>O)#8HTDU_QEZg;tOKbA$m;q|2qAkiL2ivclS;F zs!0r!oiiy4i{EIq7)2?ArqW!i`bODrGCet_53xdO*tPMMXCh47;iMOp6pnMW$leBA5Wjvaa5$9kwuc+(gxCwDd{0wPQI zD``z}TOs3Q3+-`}{Pk|Th3SQyrk*Je%|_B6wZNzJd8gcPs#W2^--i^SQOf+XCM#YK zsNYEHQ>^xTzR6+N7j@7Am}6o4FEyv;%#MCpIs5${r(aP4#<8dEW#bL4JdC#rTsL-T zUbi%O!t)Px8wHPaJFWz;4M!4vj4WjKvOkeDOgTzhZCTQQB?@8!P+hw;e%8ED3FHM% zgvsi#cau~HHjN64oE6bU%{W}H@B!15PV940$ z5Kp0bMKrf8r&FxX%4$(QHZtOb(E3%<(4_UzU3F_j&?pU<($lr^QM%Ph3OBM4pN>jR zIBq(Lhgoh?M#p93I&!#gwe=jc?_xFQ@iM2_mdPhGt#{jHnh4w%!!mp@Akajw3lhVh z9LIU0MZStHD&AReJcu&fcR`7AybN`iCzi}fe7_6V^ znRuC%7h7`WdHVWIh@9@qCN;g@hVAnyBb%3Sa4Ml@Ha3Lh9sYc>d>H)8%f25Y? z3%FiUDAPMlOrVyl5Xzy!zn&rNfNY^`8Bwhq_`)?oZbjI+}hO_27{F!P2p*&b@1fcskqw;a^cl5 zK+6|~d9!eE9cfF9Y1KwLu#nz66ZPA(rPC?XjkcGmN`%u;-AJ}YRPV>~t~w>?B@yY5 zJ}GP`U+Y$OsQY&4zs!fZe)QF25bD&(s*+V*Ea$1x6xi3sJ-qR2bGym6QFv@~c@2|_ zz-=njHeYQFX%uK`H+U%B8#Z$hJ^v7!C5@>y&Ea9&=p6WzD=ig8o|Kkw+yWG|FV@;n zL$2J9mjIPIEf>iXqxu@VtxjtHcCIAA>+;#_Tm|C%g=g;g-@T|7tlKjtsAfaIs>-Vf zGqQC>Vi6Odf_5I@Oa4OLi2r7N-m}Z$uylIEpUH?qGef$bR*Rg>Spaz}X3}QK>Rke# zAH}Y+CN~n26SdpF0ZyQ2cMF`4--!U8C&f$BY@nPFf2_cTNWPbLh}%QH zqA*~`87q+^-#VpXxccIv=hqpe|IMM(>oZczwR2{O$RS7bOyeIdHkUDzweK~wB^qxk zM(G6}UPMKB22h@h_;!Bv>_bdMJ!YZ?JGS0qR^BID^J`;2?N$~#Ka8mOX)KRD)NH?3 zcjvkl>4(4^^=c1L~av8B+uT)VXsl(lgqof!!P@u!+0nA<9D6o`4MZX0?mVflH{ zrPzWMz6u?p)SyUTQYZT5#mNoxzR7OV^o$C9 z1pWL%9|>E6vDDz$%B|6V=GDvwoiTy?Hi-@+$2M3hpH3%!w|%XC?dox%tzM{FPSNuK zgjZ=Ux7N*!a)yO$gvMp^jfQ^4UDL?!vV0W;W9^lf%cc4mw~Wiw0t@1g@5Se@Rlno) zZ5%j7y4R$LuaEQa{M8m2B+$e$8rek_(Z$9Y)pdN9_lhAuh4L*`s|-&BmkukD*NDBF zf+odQu&S0dfnBSx_79?c*SX`hbuT$<%IXu&UQ}0Fj?zQIs-=+@lKjRtf)ouwOtl0R z#nhxyTv;i$oGX&NIeD9#Pex3tsXoD130W0~%lTYYRGDO_mRGsw-&;4-yp?eDx545^ znc7!so4VH5XC#u!0t;k`X@k)Yjg3?@naRwMyvmx?7m+Lu+`t2(KFS#cqPl^PlhJp! z3@@kUIn0o|A$j2}uA`tsbL7xgC-;Pry~hi2p{HMllE1$oKk8H5&yfD^_=EWEpp(cr z8NdGG84Y$_W0hz=%aMZ;43^8kZ@GrlROw44 zUyTqfLCxhFGOY@>Q1%w4ACv0pIAHt=&VTw6L90g*%qqD#c-18Ix|TpX|0K*S&mtbpxF z6;7UVxZ@Ca_L%p4PY$?h=xsww{`SSxCEIaw0y*`ow_j^ZV`13duKvb!`qGZYMNnM-Bs76ev3LaL?SJTf)N94dSMLMG?4UmvoHu$Lh4g6Dxhnid^-6M!PLl~y^^*fL_z4-B7{So z*quHwvI%?M)+Mu2K%KmiL9~xI&cYi=x+{RAp0a|^GHm^!sj70%_M^k7PB=t)XfdbR zqQS^eVPuus0JK;Uo>2d=8v*lED6^c9514fh{HPIB%2<(MXpJhxf@E!~!$ykFxD!mn zV_bo`)FF9Dw?aJ~oWn7JmqiY|&Lu7NJc3E!>fFkr9%g$ApxeIDA(_VMWhY|Np`>di!Y?b?s1gkPgbN*sr zBw8CPQP4-S=$s&3dbN=S4wj>88HNUu3XubBQuG=bnsp@y6o~JrJ_v!|{QHO>J2#7y zuH*Vpk`=pe`h(uXLpX$Z`nJcu_j^*p=!5SVpWh_$=(l8Mv;0X$J+P{bN!Zi{C97Mn zr`}bakWBRBJOb1nM?by1mfPCCXMw{C$GN~}rY_-G*=tGW88<~&=_GUF$+k7QR4nKc zO=>0?&s3~ZirAPD^KlO@2X8T)@Zs+mzannCmk`HClHGR5^cPs3;mcw$}os z?N>zpnCHPJKjhOn)@Pq0A{L2kZal43g__leOA;_Gq)TXGdp4rvQLq=9B@s$i)&*NH zM4fY1n|(!;1S{C{RN-)#mwY;@5aYt)MANQk;)06Nr2a)pfbuD|-(M?B8%3hzxEAYR zfMn-j-JY;mqr(omaN<3dqV0xSU_6=d+y#+X^2{)_d*;ecAenmXi_j-7ymYBlRN zO1Ml*3=p{OM749FANbsk`EoNWU)L#ep@9|j z*$FAsPO3N4_cW?FfttZbDMSU@qs=v$DJ!7TwBOz6eApIT&dyytJ^s6)l0ZhY(lV4n zA@O&!ztJ}AN7W@VE=l{d(4@c_6ydkc-qu+kAad-;Lp6jr6fYX(aw(zskf1GcbOK&= zaqQaUcEy{p^~h7n0V)g*Ezx88ZzkItrH5rxMFCm_hcvxC{upqhQFJEj#cyCBp>WcJ&4w zaPd3mn|u1z68Vn+0#-u-Lg+lvvul+C_+u7T5l{VaM%=9oQ+4Tn%I@{9W2y)`A5`O! zkt96sGf(+&#NQzQEpljRCn`Aeud^}9h-Y^dR`|}8_9}z=I)$~b$#=cutVLHO2D-CG za;-8cFJ#M8WvE`XeJtWz78`5&%e0 zD|Yj2*6j&|`}Cg78gLDj5t*CJ4LS^gw=d9JkKVoAcH==zj)S-C&^Z+Fx^!yx{>><7 zkg4vx$tazl&zK^#Jl+?F^^LS>8|@9$3(+a=_g9B1l-muCEYPn zn)An<7h&dlLRHd7r4S%7GqMD&V_&m9S}Vi*VUewHw#jBfWm@jJ&bYcpO21W?IOoWo z;6%x?6o2>F9<0P&3bHdb0&6=*;$}=%rf85?v@%#Z0lH<=(=Ba0r&PG5nX8h0A&Sg% zNm3A8A+^zjhhjX99-v0j9e@Zdn&OLhtG*NKU&ww^+EQctvj$B0kM0z7_Bgq*gn%-uV%Us{+I%*2O!QTgKm^VE^LWzc`zxY(CIxBTQkcNy6azjjhvcK7u^ z1!j2P_-*>{szv}aT;aFg%dhqQRWBe*`_${N+Q#|d=`vhCLAnd__O6$G8*wrG@6V97 zEUYH-VUrF0XrAhTFaM>cUY(Al0Oazw19_aNrV0N?sz_AWth6@dU3(v^f~%(AF$vmM zt@?+vIf8u+XDdS00nw7Je&rG|T}+bw1y;+=Flff#hA%# zur`1nxF%G}Ll=!bim_^#HB}qtEv|`1?_xGWc9Mtf`lxo?LUx^Na1S-+;WN0LRTt&a zNFkz#`h2~Ydw)E9$NiW*Ei;MRmxjl~)iTXti8a7A5p)WeaEZZSG+0V~_mK3DG>!RR zHIsRhh#XX{HyLeK3eVDPw8Pd)?ON(W2Fb)OzkFbI!gyz^3q@FO=Xv9`n8QPmfTfSl zM8kTlDzHXF`CeZpGx@9g6Xh0^^;c?(Gt5nocRQpPEN8hm&UB0F^wC0;6aF(VHlM(nI*h*K<*y}< zkcrE3Q8&181phOb+(@v~Mg053Jmw(+k2+#qkBc`*ixLPO&9Bt#aCv_s(GEm#9Y_WL zqTZ+t&8wF)?r;_>y5Y)8YY5SH+SuZYKUnCb;jBE!_Y&|DDHjbYWhg@I~;o@-ho%(T6JY5yPKA0$t_dl4J(~g>E}*|)lVGs;aJ5s?B{z9w^i^|yKui9W&%SQZR75u(M48s zh<~P=V7F@$zk{az>LhV+Ou|*K!>{W_fNKY|k7GaLxZNiPsrKlmv@roMo7z}7rcBGr z*=zT5$~0~NdBee$0TI}fs>}bJt_Bax>mLP_!v91u*8CpE{{*{Q-XmC^X(CX0LBN6h zLdI@hMgRCzPPxh6FP+6rx`@)9No-Pbh-$g4h>4){S0ogTW^eaWGuypV7-g7GwA#tb z*qvo}J91iax}{3@(r?CZaZtz839uJLLT5#hquFTudBZsG=1}faYaEd?X*!CMTkm%@ zrz)|u)9|XdOPgON(D2tM;dqOpi<5fQidi5>M)QpYLTP!G=M8sKsN5*G)1O*iVdyuT zpnYef<@iZ71L^gQxxiYG*ITlf@@Xer#GcxY91L)Dh!oOquSIoB?@S&1>o0|f@t321 zi@?X?@ayFzLg;d5<|~I-lw;siLm;0*B?UP8#ou;=NML+R_2LgSY-CR6@z)O(ml{Vs zOi;&s|3}+Z_Ffoa(QYyreVG#(pR%!nR_PIcyiC`4yKh65ACW&zE=Z%qRv^dJ$F1Jz zt+aR~_}y}ijpDfA=Jr66R|e20c>$u}b^H2{l#j)su#U4=V7s$71w4=xmDP=a7}Czi zah3^QCLEn{F==2o5t{IvJPkDQcz=p@di$ePX!`83m<-ZIRXbZg?_`7UlpQ3m7Osh9Hwi94rJIW9- z3-2!Wb9*aF%EOm+;O>m+4GW_W0!`w*DYp6?tk4}S9|PDMyvW?|U?3%QXKvi=Sv{9+ zokTXmy>z5z4v)k}xIKt#RWS=&aPFZ9cwNGkuMlftxp5UlAn4^lOK65{o@yOXpMpkK z*_iz(HMjinsAG5=$Wr+^=u&F9iL#;E1y2n2&{~CMPKV?Hg0e(0z$oIV|!mE@JVZ>OtMMm|cd;d;da_Z4clab#m-F zv`zO!&LC;xmW3nkl(;HA~Q1 z2w$o8m(DV3D&DeEn^5Q)ciupNjZ+_l;>*}anD={rzA_Wy4$Af(M4rZ-hcuOuoO;%_ z8!T#b8f8QbP|<`l$DDSg$Yqh<;AWQ*e*KYjR{sK=(!+5xgP;7uJOvn}w9Y0X<^6oc z&1m}Vq^uJn=Mu70@8X_TlBo!o{<#a9-CT7ixO{A>*gbx!w@Th7-W5Ww<3XLa&r}iJ zx;tHY!ZMKOxZAGc#X;Kgk@EOuOi3f8T(35(jX_B@@m%w|(pdePhZa;59g<}pF171Y z48`k1I3topc)Cy+fGx1C5+=3!5n>5U^74oB|^>Zxr zV6hk)7{R~e&hXz+{bz)Lvkw@V@2STO2vuT}fC$CIqEu5+B!oxuAB8O%^ncVLi@V_{ z{_RZ;CZh0&>O5{f(9{d7+|)%Es<%6q3UNY>_71&KRJru=f#_0|_MFyl{evPzg{Tvm z>|a?AXh3GDS=Ll}M&eNwCUkJEMAkmNYT`@yJxmBhiLxJ>@1Th>c&qlr7rd=yfhDV4 z?R^@ZB#R?Ak|jgWtUOtK?#|`j#jYpsUo1Uh!pv^P1%Dswe;iq7K7z01homlv8;<(s zBeT*N3q>DVWG+Sdg(cUQHUw2wGd|ilRx(B`-&bAL(jp)9c%D-pVVR+7Sz8Y&hfa_9o2ah&7N z63a|ode_=1^$ArpniNk7^U44rb^%lvs_xAzT9nI1c=0eN3Qyu{(T>@R2;lN%H`4CD z6uA|MiV!$k%=N}B$tZE0bdJv$32(c`sLF#;Z)vPfphg6F`0aTdwH!W9x_tG3RQUL@++-rmL)x_(BrO>U(kvdkFgROo{I zVpIGTM%-LEoj{M$g0jYB)7mo?qqF3PfHc3Nw^C1RS!(R2p9_XbM#^QWB92?3brF*e zbq(hheamYY{vcqs&G#s}usEpg?#q_&7RoC_dMEaFbhe`hP#XXLy2KUl5>ip*d%A$2 z%TTgJTOF53g09Z35dhTwUPkLq6MVw>#9rzyKj9>-KE<$11`O19(>NM(3y%$xBKUqVy@mrF}tg;^cO;uVcP_`t?^Sn@^Wg^&5 z!aM0baQ7v6+8b;;`UkT0sv}$8n?Yea_U;2GaPrxBll;$!zP%KGGK~%ZIkuhGSuKBB z7%{23*T3*`o5(Lb47QxMOP7T}G`PT~?6z9_^cM!jZ4_=(k<$)g-hYX2;owDKmY=tl zhsuAB)4>qOEBq@6t1;!S*bist(OG&&-5(?d#1+ETGH*BlGABWant=Kg+%$H9gUu#n2 z_@dMIG6S7XQMzKvqzosLQo>BqI$3aZVi z0rn@c91`KK#L@~iGI_MB{@E}`e_DtT_XCs)T`wu|iWL)4w}f;THW`NYTzw~OP8}t; zJX;C#%=51|Y_NsQqXvt_l;Tu2m>`C7niU}$)SQqzxTsOY${EznBsWS&?@xB>h={jc zo0*iV>PYnMA&e4TEj$twMdc^=6&%<(o!`4XbA9w+=`&r*G&YLDq^Bituw+5x z1m5xY#o)buV#NdI5meKjm*{$`2_75p!p%azz4B-&LBZ_T|8$ z*2rTtOi$vnQ+?2@#A=VpfOtjLaj&D_tA^U>O{C8#mMW6{2!`Lq1e-Fm4FdeCrrGAQ zMTymW0k+53%_4QA^bUGfzQkHPjoskx8e&63Ukg|){lTovOPtW~{dICUXPN`Z#F5#m zmBG~rpa72HQ=^41m}L~s{E0^FIhT>~BEzmfXFF}j@1}%}!p_cBE}{ctD5YFn2b9}B zY}d2QXhnteZMztryLziSCNqPK*`oqr(xv>h9bty!FK4{DNhy;~PXQv*Xc&`PMge4gSyx9f2V7>QxuSM_x} zh$L-Yq)U&D`qPjTUNAKEeBZS%67&!Qa1uAeoxg@0N8no6${&goxr0Q{BW-N~ad&#Y zAURM4vYYsAIDvh}>@km8hlXWXP$!U)Y00;?HZlKno5RK(uf^1ycc0mh!VbYTv6n#b zR@1}OAm>R{RTCYfx;4AZC&P0uySjHyI$(xzYed^4gBrA@@OPSqSi(R%sIAoD>acuh z0&sKeHNXX{N6kUAMN90{t45(AN_+Ajp`zLiHBsmmpWrRcS*ao2NQZ_YvooWgn{qPe zPN0ye9Yjy4i9=BXGrrLFhln63m1+g~aq|nLIwGQ0l;H2C@XR4)$JW0-6Vbx%Hehfb zNWVF!u3XY_X&GS97)q|Gv>B697sFxmkxl8PhYK&=ZXou3ytqXP(z%D^pcmM>2(HZd z_cOce<8RYvUY39c{aaj{(Jf|54D^7u%|45B#r;`wTGy{Yk=z5#_*Zm&U!2EI<)4-Z z8X^cyvI>%ENH3w4U=UY|GY2swahObqYIEgej#kf<&0&vWj$x0-G0+Wmef)O{VA3;{ zN7nT4EG4RUa(iRB@?oXjZn@w!M_yo>Ta>02+qxG0>t(v;#6R1AsD5!9mTD_e2nCSN@o5*|uN|4$VIqaxkXcZ^ ztB9OHV#JF5B2kiN>h4x8lQ)=~OzEPG^^$B0sGBmc9y>FC$ak=O0l(RMN>+MCUH2`N zctsVr{%m_dtk580Xq&lBn@C+d*7l%usvi?1B^357)$v6p*eJ<3`&Nvu&Qy=rQ<}RG zb}*`DAVZqJ#t+T#Zrz6nJG~ku+Um>f9V=W|SKCowiMO>u>fuh{m-u=UPvn@qr8|pk zX@G!&PD@&oBF&yil0MDP)-+IW44Hk}(f$ViCNuEcFg+6jw7mSZh#aD~Olcv%*a-F)D^Qg-q(aT_D^}q^x z`9r6uFydvqN4;3PfErkk#*W+P845E>&Zjr?>9P%AijRKu%3Ufel^n2{_FhFb{XJcJ z^40)+zS?4_7v}&1Pxr}n&hC+Kf@2LB&SCZuZ+bjh>g=fM*=YV*3j?|G3B$S52w9?v(VhXu>l?(MCJ#LMsESm7 zYPA##9h4!JC7P>2O`k36N={2fI&KpBtPEQ@Pq*+oPtH6<_;x4LNVyXb4LKeF!OUZF z%1zqms>upyke_?=E>c2|_}MiISv!I002gIt9t+R=9U3n>Hn1UP2ga=Uzy9K0igBg znD6Jpq8mgXw~+S|{$E_+fEybX-Zb<7`jzJu3msCVQgcNF$UU2OGccq)@bsHV z6?-98JHYPGYKuSHBf(=Uhzj_LnFM6~SRU%qL>#6NH~OfWwrC5FIhhY~;YeqGu}qd9 zTa8JXEwLMWA-rSLV$O=6HWsUcJTUByzg4P+&1(=HR*WJg z16`8-Enti~#57z#9jZTc+n-T)^N>M$W(hnC%NW#1cy09FD@`8{0p|4B85x}cqs*{e zfJ5qKw)gaeO;VMtJ#fs7y8wsLWIz9%#w39;UM03+a-7q|!>UEqeWJ@6m&=Crp(YFK z=T^!}vssR4DDRLBoHT6t|+~D&~n{s;mz^5RkJ?zLkV&_6|A+B zTbjD{8|YjhemP2n9WAWy?knHbx~&FQz(DC5H!fPA>VEVJUxk_>=Tk3gvwEUN>M{6pAj?Q~)gGm|9PrWj+}+OXNyj1G32~MAb}3|K^ zu2}r}>;C%;cS$|a=)Q1;8D`Qwo3z(vX2k-*3;OibaRvMiW$qHkiCch*#uNbc_9EkI zHh0akv%N{l*jHlZawk{{)0xKR0aX`O2wAx}9IU_pk1cz1ZgMymEVoPuk~Z2cC=7Z! zp9#qiSPzM`qSzAM0rkOYL7qG1IoL78VtIE`{O`}w`jyd5khx6JiJJ*jufQx%_wSNYf$(|XopFo~fVT}MF z&Nv1OXQgA_Hpf_lYruUmbDmja`S=l}(jr3ncj_CPpHc0+nw}x5=oZUi`;=EzT~oOl)XFGxob@YX zDx=1>b4BAaJ#umrWr$ zm%_M%V*86Yqr?5v@cKR7nf=H$Q?juuFAvz#2qNPv)lO)r-=xld53Nw)fF)!k$=mLa z!cx!BH0hltrpR#>%wbjkB(gfhSg01?seeJAX&M0GsO&D;6TYpzhDxm5eU#E%Y3&@l zzQWt1Op@0Vae9c>n%X0uKt{@7+1cHE>k9Y%Va$X>xNS8w+V7 z_b`XoNV;Wl%Vk5%1Qgkl`Ew9xH%8!?l$N7+CBAW~Aw7UZf2al+h^|UwAm^Wi)$04# zZaK$l@RnxOjyGNUbkNmyky6?`H_iTg_t9a$F0To$iC_9^>;86L2Yl9jH;T0D+&Si7 z5UVq&dUgv}HGdMC*J%iey*6kNIPcCoiz-?1IEu;rTkXi;QBYmtaTOzKwQJdGch08y z&<@^F)Btig$5HUt$U0m&aoq_i5Ac!G7758%x%Kx`5oJTqC!l}9@_z&N4OdBw)%lmv zqbe3{7tBg+QU+>;F_+?0z4lsqR%MOaVP3|JlP6W$@`kN|=%X!66og?MMol7RfLuzy zE|RI3bmG2t(YFwmQEmCXCwpC#NL=tt>8PyW@~Dg^ZLB`$3381DXtbo!ws!#~RwFnnvLv|kLZMyuc7pn{@6dDBFf zS|(Eie5E;3=DIb-dYdQJ<~b@2w_7rLpn=l8Z+F&;>>Y<;e>^&;!*G%oV5H$=YXy(W zBtz)LTQ!rs#u4^a%$mw*89g%hr8xB-v{=HHr7(KyhEhsfIs<-*W*s`$RLza^va82v zVh^JG;HOFDq}`{LAk)sC?n7ze$lJ)tsbQu@17mv8>D+ZN*$~OuGJBn3-7O-qRCj-G zCPdz=L(N+F<){$G#a!iNSFb%E9ie~M<6mC}30;n?39?imCj+bs{3XCeQcbS`rOHa9 z*lBL-Mst`um66N=FLT301E3i+=Dga^Z>uScsv6z7+agSEOZjruoQS&2_M~4yKT9GE zCc0Fq6@&a#cZkY3kr|%o#KO4S0*M%mXl5=$AeEBa7a&f|SfZreX$|y)A#S#_B!m26 zKRbdk>NjXF754$X45AV0{~9j}PDu2jgn|v5(#oS_;aRV#yVi|Fp1~}Abf!|PgM%62 zNH>p7$YFwt=^4ivI#?1nr?`-jX`YS@J-?Tl?9_XREsVA%lob7rxvM>H?Sa6#ZStxU{ z)8>%Q=D{8-lG@exI%MVkdJpwxYh?AvDD!VXv))E9?2{4xjDa1<*b7+IrJP-ng7tH1 z`IM|#pDC28tGQaqWS_&7FJ-vVkCx9@TkzP>_{f|D%!nL=_;-fg}14n7W( zZ{T`^4kOJ3RCARG#uD?ErO`QN z&Twh4D3le&fKIb;&7suGg4AE19Uer_Gd}R<`OXL(Y zw`Y7hW|T;Rr3aDd@+i^jvbnxPZMpElt|E^hW1;%4W;MSx*|n+S-!&?4Xk*$b8j1(T z0NzaMSQ{k^w_@A!({t6+6s@BCSC-lbkP}Y?07jn32HZF>69BII)6#;TRT;8YFN3)* z`t>B@w;;tUCUm-6k~GvtMzvCmyCzNxEM-lSE=?>|T1l#^BwA8N*l>=`&%9JV%Xmun ziqy-k)?jeNGY(kuXNNxbgNa!VXWy$1ya&AFR`YFvs$E0>io%?FE%vMiMzHj{`!;Px zmJ?rq*g%p+#v0O8BOHtBsOIHRIF&n31s~AY>sG{`qsL-W#Xx6#;Nm`p4d%4JGTDYQ z$)!OMLhHiwT4br>1TJ7~D%0~D1Vm&SI$AU*j9!g;hZ(XdFEMLVk_>dDu+khr8Ubqr zsy;pi@M;T@D`G~l+^-LT(81O1Qbr7i64pQEHy}s}Ydx2Y6}KF3tQ7;vq6tz~!3pWs zjP%o*QZ;(Dr)tL0CO8VZ+k@?#;BmoE8`IaQK^KA~mcc=x7Er&<@Pq;kHB)*)L)>jA zn%oqrKV?2*YpHacmCZZt9a#?q>M zNmU$2n-X!DULo9)2B`5WV8?kA;GprXsRJN2r<(h`b2I&3w*vNUE0}YAqzveDo9c55R$Xp2v;|w>#iy9zX%#(lDqYsBCT+eui$3 zkgvvdAe@Ol4&XmZ5`$=eC2=lBG&W(ac~zF)?62tce%3&=4FrEBs()dUxsKau0@E(m zWia1~#zTtG7yuV3pe6x>F?k5$8 z$teUIhLA?@O8ZCBX@|Y^zDcby^wv?4w0DGSU_9Ui0DwecSr;4|h@R64|GNqk9t<7= zBmmQU00XsEtA2a_8xR;vwt4;J8xzL;wF*T?jqExr^|s(92s6 zDWwl73OfaMo)4M$*yhZ*#K>Sjd#4oVHLGxD9oS9z&)sWGP4)mP6Hio=s{>CHSpegQ8y8gQn=}Pd!NhoH z{YYVqidt@u(0L3Z>PhKPyn@uEf=gNlhpl-F-pc4-D$e0~Xq-f0+=pF>U}DFmnb69* zg%&0oRo;*0Lvp*MM8o}PNa%Q0mfThy5*GML`9({D1U$J|J+Kbb!yP@>JvM}z8`karwG9M*Z}640{+}_fo!+<0M*sbjWYK+fx?eF zZTq3w``Pq^q2GunZJ9U+Ab!11`r9LDOEq;c;2zGDI!me|4Cpj8i?a^{aPW#8(BN6w zT-2lV+dx0VhvI*oOuXFMs^1MdY@?lY2~9OjpwSHP*`Qkg5#Y>Q0t2YxB`JL{NdQ~) z-OABdFjoJ1a0tP`sna=F4$psv&Z)s`JRoH=fU7$G5;TAfH&TvA+I)CD09@Uml8PUw z9s58pk7)7vQu?}1!&Tx4Sj^lVh4w6ua{!wFw=Qp}Zf<&4{St+;{;N>zStE?C$H^tF zvg5f+WK5Qia-tfuhoyV^L(**vHtDQD=zqKWZyxq(;ZicOM9S$Rc`#!0m27bk@vf}uAylg z&VVDux0RGoUSVD)e=oi`DNb;eweQW1m51`zmawb%p%x}}t@BL{Sxwk<5A|}$vd!IS zB{Kb`f;b&lNr#4b)t~{s0at!IDwJ|z$yfC{L&F!%RZf$}sI?7~ z@L0(?G5$99i?Ts+$OTBzoJVYUtRDXvgBCv4N!fSCID*&P>uI4aD{hRwnA@9kp~bKl zneg_$b#b=4ffAKd&hj&{kBaTf%J`#1^70G^PB zS&llNW@?woV4D<;cY!d@C77jdiP_|)CCg99H7gz+1}c95fCFQl$iU$Q7T8JBz@*it z`@MotVBa}((^k?c*p|-ycv5~u$wlJCg@YlXG%pCch#CYA8?nV1MLnFdqYFQ5EM9`U zX_@R1wN5)D&idtql)(}9UaT57SKd}Co!O#4vCJEq6C+MBvl8Ey@N)WfCLEVMNFs(( zoR5T#Nl;d>)A%84B`)?7(lKigEz?xk;EvkfO7%X!k~Ici@&#!ML5BEajP)U5V`<$q zfcfLT@mmMSo>)ehhUS7Km9b9jyj;qdOLxTx+xzV-9ed5D8116oy6x0LXURXfKEy4f z-CAbG@4B^iEA8kRc!Fv1yLz)>p=L|IkQ5nSnI|(+HK zk13-QRz!$a*~LkYD>N;KNH!M$dqG2(U>HP^C^RyEn#!s;g`tVurx)RL1`~#lO($3N z^y&zS4BU~Zp$Dbw*h72L^SSAVw6JgsGn2&ddA$9UDl>Dodojyx4L9Q<1s$9bG&xC# zgjZ>?i@xs?I~LxIgyQCf&M`0ktAK}Kcy1v%3u`3vf*!&p5BbYICNwMR?Lj~OSaoxt zN-}yT?J@FvvPJNPkm^XLs6Sz7Y%Xhhghs_0cR@;mMvW>-1x+Y~_Smsm+e7g#H(@}@ z$zt;!9<@@D_-nY6(9!J-|P*3VOWsAYCFmtQS8_I|P$!g_5F1>FJk);}MIkfJh zRw;tx@>JOwa<1lQ#SsKrS6Y>Ul5khSU#v);SIt2e29o#2hMi6kZLk)Ht==fF-Xd#D z6w09JGF1IxKoNcIO?c(*ZM;a!lhfjHEfKH!2sS;mqwVUI|>>?^<)H6h@2~yfP&s`%L@TulqH0G0gJ4_P` z?Gn{4Hgd{jsOYQ;geZZ7%i{8s%i&T}`9M26ajJ5ZLU$n>T}<#%aaeIdNl!dGX)IA> zvFvIXTeh?u+7TZUV}@?(mnuq8y@;W_4Nau0R#gR7u&cDPfr!U`RV`ZG&dhe6p0o-F4DQ>7v8vqq>j>4t&o{?w?hA z9bu_KHz8UnCCP-GN$^&JV1LM_FivCIAdE!rrH?otgo-grQetXLtvt-|3o70!EB5&|;ZOqy}#KUNS8m$dB!`S@biqZQ5JUm=-y%xH< zY}vM4!Fl>FeOH)kL$q)_J8cS$zNICZS5lA^CHAskMi5mR`)md2OdgkPUYG&e0ORjuF_RMP5FcG)-gmiq-$&9cS*q{hJI}y4zDP=jNCd-4r1XfVid&zQ@03fdM#Nc~MvPr+*t#>>tSDXy ztfqK?ni3&C!&gcmYxO=zrVC6@j?s*i z;%e{Fd4ao2`p--Ob`VLtqoa+Qpi02DPe-!ECP^pDLZ`2ZvsGJHwtJy^Q~Nb3xwN>7 zyO=lrFWlobT`9Rl+6Nb62`iGmJZR+}XqtQ-|HiXD)HIS$Uz=#3KqSRN5-Ouc!4ewt z3KmBEE1^XNgm6~VTGvnu1BVX6xK)z6^LKQ)Pe+vjj&b^SpZk?NW{yZl9Ap;d&XPBO zRz1xxqM72FZa%jUr+R)hQ`uBrKAa>R!+-YS^J}XO>Hbae%C#rt2LRR&-6`%CNoAQeq z4LR-6#p(e28z_2X^X=y@Emm2ggo(1%dbfWrLM^F~XGFsr))5nyD2p9f)68harM-66 z-K|`)#SOjE!aPBx)*>ix@Ee&S z8y-eO#7nwr*Xt-^s%Rg_&Y|gZlz60O$tBh;Ch3RjjnIv)M*19ZS~~1&c%zm3L{ic^ z+X6QiGvSd=5PC)UewZEIQa;UoG(wQm(wXS7!1nZHb%+bmL1fG8e{WZ52YD`PkIT&* zSHoUMOR-bTB#%`CB(D{brYiW%(qf8hJ@aJVkiV?lwkL^7!5ZH-Sv2@Gm-V0Wu+5fN z&#RZ!8*pJ$iFR8hfRweQ=Z0mCKQ2|{$EwNCCk<|A65IQ@d<(XbjMc=XV2FOcE>aOB zBa-kLq-jk+46Waw^_h>9{I_*pnMi8L+e-gGcL4+D5?f}v@gkJ(VTzS-7hYizcdz?Rs*1{N6uy6=-Sw_MDz)#-hS5;-65SHxQ}e$(C& z^L&QxdsI%erlGB(Tw!i%pl8K{4!J*-Hv@=zv0Wox#UE!S)up+rHwZArPgDpaGm9|! zf~!qWWW`rxg8PM<#$~r{C|IKRneVuju(Y@B-HG$f;wAEf3tU_>i+U1q66CFBCXq1v zv&{z$N^(*+*sp<)bAzPC5IHM zH!s!I+pWc3ZNl2Q>tO84X!MjZUv#W0awNG0S$ZvMjX63hC^FHB#~M_q5jb|?Qa@`R z2m9&T&OG#d3luoPyZS%3IN^Z}hvTRg{08UG{{QYGv02xYA11A|p<3TSu6X+Q^GbLp1W$ts=!Zn79)3G^A_2jv;7MnQJoatE&Zbwb= zsfr_w23XiTxoHl8+glh)03&Ydr>PRJXHlD{X+x#+tv!S7d%Iw zZ4>z}Rw2I1@Obl`YW0q54~J~%M@p%?*{>cwOo&>vZflR!THJR%DAvAWZ!E(PfPglD z#wJNe=~Xg=gJZRHUOZv2hosA)uyf%CDJwIc$8^|rmk`~KK3}<;IU-DhAt42ZoTerB1SdZ;b66an#L}rm% z`bUa&dOCCEN$L4eet1POhmt;MRrq3-t$yxa=yvF|u4+ZYC2%lhPfjyW+3GS8h6R=I){ zU&--)E(e)L>=fTrn2e1qlzEaLY|=L57V~%4^cKa7gtr{FFr?zvCHqC+NXraUe#LA` zgNu^rD2~&Pyxf-DK@_WajqQtveyOVoqVb{vaVzyvR5MvSkIoM(mf*paF$Qw&EG6c9 zXm&fMgiliu7J*BmWPBuwgR;dc-k-2bmY1@^=idOOZz+R1?H21(gx z>3t%f>&V!f?9Z6A`@+~O1|D#|hUJ3q%>qUM2I$GSnxUA8<+@Lo5A=4N2tDWDP++pr zk6E2}5puoCZS0wlNv+(~Okbs5v>!F%f}=YZ14$GIi(qH7kX?$R-Wk_(AZmc}gzRPM zH%LtATB_gQP4ICp-jeM z2(I}|tq{eJQ{^edQxQ}gNcQvbozJq7*X>c3DUmMl6wIo5k2F*;w3oLfF5e=py~z7c z!{73g2}$$0pwa%{9j&Y1fGpayd1X@5L7qs_+`PUsU7Kluhw<2h*XL% z;Q36k;HpSb)m9_1O69)k?47M%W2$dQ}J z>p=qO3vaV7WF~UaO|3K6_%>^Vol`=4Iq22x{sqs%#NZ1%W;W+I?F4B|GfD_?QxN8j zQL$HWcUEJ>o|fZ6dEY?arJ%Q$0pNj)=XA&hkyGqxR`EGwg@(`{xdX=nXhcJU?DDb+&lMUW0nMza)CNl#zoFmOZ5_TBf?RxR`H7YhzmeA~*{oD^ehxR^xS%Mn0Uw1fXmpRVMI zzTGF)4J~#kM7r#XZEXgV=hkND{6NOjG{GSs_25 zt4@T1c7Mc(c0AgM?KAVDmG;_lykkZDP=`hL=mr(Wbo#4OJgr(nDZW&IyB%1w_UBcn zj1S~)#qD`4JLl=Vp80jFN?1eC+W#3k4?z1d^&54slwL4+#F7?dx^(evExd(~=37UQ zri+T(dPZH9(xUxzjI07-V4i)|$156~T3(q%qIQ<6)Yw8(AQ70*O8Mk@DmcoYlx@{t z3FsDFE|P-l*QbltXG_`=`L-%Qb5hP1yTquXkt~BW-R&{Aid)1)Usb*SW;s)1z)!vT zeeMN2C3-;UNAYSAARxY-3q1?nWo?n4Bp)kOd>wd6YwUk+{29vqa?xM0=y1#z^wxK& z8&7>M=X7Fs&Bmj6PI3p~|N7bZbtK`ue*-uBwH%()VR`?fAp(n6&V2e9hux!r@?OwF z^vb384f{`aYhK>CLYle?^r`obb+xWgb9;a}*hji7>28uGWz6bPCfMm$#7nfadq?S7 zh5tf1@yt}K2hhOY?0Pj9p@p5K%e$2JEg6lIU;B~G!2WlNv4=x?gpGI>06*dnWu3?3+%p(?DPFeO%%f zdJ%TYK6=A&b#n8*5u_7^Cy2Ssr>yV=#uvGd!kDU2lAN#UF2=m3Es6yg`t~)g2|rtq zUp`0)EXW&$z*{9tQzHNR+8g3w?~co=uUiZzWEq?!-c~R{t5;Mha2T0}8+jxO+1oc$ z4Z8}?>QuGKn3-5mEOM*&jo@I2QeI~Jg9fWqN11rTmd-LLxK)o=S0vvVUTi|DViDxeMYhCE`qDx-YqJLe?M~iyk;;{E z2S*b9wSI1XQ`G7V?g#$_))R`pK_O^NjA+P_Q5lR2nb8-3Y4&bLQu690_M%7Qa=m>+ zwE)uRwZt~nwVdJKu#8UL0o|I z{9O^q)(p>*t@El?$!iNIL%gvAv?@45O_1Habn07AR-c)r-WrJM^lF4s~arOvDk{t37$P@Fl4hZ4=lD&Z(( zsag7NZ>{V=IPN{~jZP25Rn8l8qoZ{3A|PlLHQQinG@S+&0699EExBJAR zk({(TZjOB*MfW?;vq^Z=4JIj&^I|El2O4~1%TUL!cH5pZ#2&au{X7vH30~%+qrO^J z51^D5Gv(+3C5tw}c+MxNljif%#G!b|n>b4ulPAUxll$|#g2Kl^=!(~3`}c)L9~b$v zan@z1zB`38c;PG%6~pNngCtYdWj;@waSs!FO!?56(J|YR8`z)g6~LlzlmxS$#8csK zqgm5USW6i%1Wh*{*gL>ZYEpLzKEgUNtv4O`s{h=ks#t{85i#M^_OSgn9`v7#3#qWv2d(C|*QdY!@8Ej8-XFCmMGQ_3Pj zs?P5`7IJ2GnY7m%NgnqL+~yM>mssX}mW(%aTsr3jM>E21O_0g_@PLn@&tL<=sT+X~8$-E>dTNZiauLM?|Q$8}f_5EzR!jPvSJ)aw2X3JK{Ad{`@Y ziZWQkXd@OEWh&ON^P*yFtZw0u1;>x{AtO)XS=ItwW`t<4?W z3w@nI#*s?|#Fr%7x4q6Yu}W7{ZYPJq258kPI5vfGn(i4`Mc2F*7rksT}zEMc8$wig71zk@-9sC+~w(Lh@OY$7HvIz!s)LrVifP9+cJF}>=(=*?p{uu%*= zd7-8kADR`ELdS+k`Fry`W$~}lrE2aLJYoeRV=eew2I$TFFbxjm}AvT|k~Vj_OmG2(3Uxb5&*C zrXzANnSqtvDj028315x8!DzKR$@G{NynraS|!L!yn>d8*PB5L%Sj=qgASjn1M^W;XHG<_M@2a=9_` zJz45yncbV+dXu$E~wbS+=_bAyG;8DWcW|fPms``wk!hlxayxK000}v#V&X;SZHD? z5jNH2lSnewbfc*`K|s|njE34sUjzaI2%qHNVKFc+=blbZRlzRR>T7#AsNmxs0G{B0 z?BT#5$@6HOjbJaoV}HCrMjOC&NO&drcITe3Khvhx86-=MC=GkkMX}Pgc-JPx!!9cD z6?hKs*T07=QgqT|vEj?wMNz;a++SxF>M^y4Ikr5;S4L6;uOxy}xkF7Lk+Z7GJ#37M z6d;(CNTM!Uxh9TCk-!K)qG?7@J2FKA%L@mhzVTuuo0ct!BkMx~--8<{C)-M?8JB7x zgS2+M_vTrE!-weLC30wb^M(Lsb1QS{yH9$(}F-8$Z!dVK;FOaKU_eu8<68?^4h};PBYEbZNN}a zlecX|p{T;`Y(2yI|NccCTy^YF$a??>dvyQms}UIHB?_2ud2tu-VX1V_SDi=KAWvf6 zd`~%4X}tAH0U~pGH}3sH9Jv2%{`(}F3qbS$K*2P?%s_Hf%d789)zgs{x$pLJ)t1>n z1#`HZ)X~7bSm+KSc>s-a63Wu% zX4OYy2z`bt2du+^pDs_zh+(f0yeOci>#y{u-0g^yj%EM z=mb0?7o-7jnOQ+P{twNa`bs0vlX2FnOEIiZn7aJ3;DNVAz%+ww{lAcZ`vi?=0nO6= zFA1PcM*xLe8FtCMJs#N7`m2y>=QH^m?#JbPaMES&VRdA9Dw96*4tB&5__s=g8@%F+ zeF}he(T7DQ*Xu63)jGwvu5>A2(<`V!!dgHrsgfz9wB7W>`ao{R^jjvp5a82tTR133v4S1X>)O!A~E6TS@_fNt$o(dbX9QW z#JxcDH#sZd@uy9DZb<3t#A90LT~tsWeK<(7J_-iKji;=emWu1{nkIFXJ?^zrgPp2% zs~YO|`q@UmF}8)?lv{{sAcAIXdHQ)@2P&onZYN&A(V60vWp z2EYJ69+ky>dM>xoC;ENt(MQAku4Di|!~Jh0ho9ZixOfjLsQd?TN5C6%TP(EGLGl18MWadi= z$>0nm#w_V#;sohZ$>P&fN+}cg$|$rnLXBMu4UvLZbli{UmcZQj;pZ{~ z*j#+bi;M=PP9(*{$(_!d5bofgN2oF*b!D_qmVF3Fie9{}JG$;qu`}8$ z@=DZR%1HJL$%-M}>`14f(Ri+~Xni=;1p}mt{J!jh;jFRZ=<~7yEDv$yThXi}ccoeG z&XrhX%5iChETNwF+>*`r#tDS72-dWalKUhe4{G~&NyHGiB>Sq0u>xuwn+Xlsf-4JD z>||=?NF*|^c57;w1~C0YomdGCUKJbRI1#&AAG0xbY%{Iqo?1r0r2LgmRZ~Z?Bngk=>R7COR=92*fYBnc-3Fv*!~O6GEw~N z#!Ca4k|VYidb3Ax6gUSiPML%^Kkh)pESCG9J5H|)zyRNVN97G1=r)Y5B>ptNaz0{G za(|ncem2k3oKphxTH3yWk`I6&chn=Qf3w+l8u6y9Fogyd1K{8wx6UiNpX9v_wUyW_ zRy8N{zEtbk0$MyjwG2fTB1tenMy_pdEezj)T2D*a;S@sv64rPI7-C@**dO))o?yuM zkNm}eZ`tG17pC5@n0V2=0WZ;E|6l8D+>&G~14;Qxb%2iWEm0#~ynll88EJd%8oz+E z>*mwo8oc7~9_oTVn`Lp9>@rD!oH_P!Z^?9L?oWBzufp`Qy7JaNQSq;b&-3rA;N?{E z^TG$bfb;W_(wSSW)amoV;ycp8)=Ks^9p@2d!TFl-@Zm3#*?Bp>I9wsTHqpO~tt{6X&HSOuAwjO2F@otEH%-!NLG+d`*EJUj9W12OavV)wgBs zq)48fD1)mS+o>ihKav#fO(Q`xs;armvhvi-$Kz3q=e~h1s;JR$VRcT*u6Ox%)fvZCmpDK(g1WJSk13cqd zPLE<>VuDAj6;6GYKK!l);a%!wlvO0kmLlnnzU6|&8-~lm87k)$ufqFzRA*M4jclKW zdgyA@TUy`O*hH4$T4B!7k-8!vT}Fb2!5>lsLt945c2$~tg@q2qfTUh)%FWA!G;Y+l z7ew??o1FTB#HxR1tt9SDp^nOZhg`DAJza*}U*SaEsGwmX_EV?VanPiBtgR4TtEjTV z4#8UIMQVjD;p0JpIn2V?)!MP7=4*N;h2eF_SJge}cdhR!L;A%V4U2Xv;&>Q3Bt$8Q zRm4mWR**2aR%+Yv0krsGTX?G#G$bmCW0d*?#+v@}Ll~ilF-RbLIVdwM2`4|hYjpD1 zI|OUGd*0lhLPj7lZMcp=U;HdmB81;hsnk34E%Q7iL7Nvvs%H;5NvegIFkNSdVNDKL zX4sG9s5@0eEjpG7-LVN}y3IGim<7N^U&)U4a843R+NS&O#9z=+A+!lG3E+QXMdfSE zCnt)>#cvDKbOD+ILe)0!ciu^boS7MIM78iM6I_}ymm_8B)$w%=th9ek)ly~x(PXSp zz|1{B>f)v%vwSI`Y)E7%DwC^D90?6TYhS3-w_B^sV;rN=-7#hAZ+6m>n>bN82uMTA zt*gE?0r3Ine0(Y*JxupEhZ>O zY+h0Zk~Bt4e4c6f0Sl_tDFe$MZlZP`j@*j5x*PY1B#jkmybxk#HfP->YPprZdd>gs74 zA`pP|2pc19E#m@bq0IkIlAcmM= zdlZxZs3#2(MTnbW+=e~6Sh%!4=^muJO0vd)=>Gto>PJ%iOSXLw&iMlbfPVn>dB35E zZ`ZpXpeq~hBYLrbQRV=v!rPrd*|z{kCFDK(w~jO{rc3RI-)3%=WH&UeeRB(%=80QF zXuyNXH#PyxB$p!N2WU_|7k|S`hPYF_cr1+D%MP{Zx0~8DvNk^3k*^Dg@c?Bi_xuEW z6at3PKKa)Og68Z$tEuLWfWZKOKf^;O&yc(5j|@e<@zAl!{4JZhOhu!2PK<r~Y>x&gllluNCP)LjteVZB|hOI4~lj8s`R0^b9bGh}AzZQDH)U4^D2G}9vXBnU|G zMtuzSJg*$lq@&d$XR1bls75fY0ITUBW1aVLJ#)rX54yIu^)?Yimxa_Q0Km?JYw>Rt z(Yo%f#kp5Y@_YbXpV>l`{%>w6|53w*SjYmbQ<2C&&lE$`2rF(0zVsad)9P-@Fd3l#jU3?vbiBj=c82(tub~fF?(0Cy6v6^z$Jsa-LEJ*v zn%4lHl6I;l&-73w0nHQ~Tp#N@tRlgsym~P2btoip8Li zMImAT(Ib}kE+?#BCp$;?BkZ};>Mu5YUrX*TE0>WP3pfrwv+NXRck_DDO9MA&0~Mx~ zSpdu#}!$0Gs_q=_<-wx4<}NhyLKY)Z-w z!7J`WsY3@>ZbNx3heMSAh~IV~z;wAE@MI-Sng-o0ggC6@C-rR`8)#tqq)>3iSI+O8 zB1>t)N_}=<4i$3RW#kLB^R4izFvK;q8#qYMaha%wh#0@KQl`w(>jg-L@H>74I|8c? z%?kEyV(Lo8T-yR;b_!+hO`QTV2PTPJxRVq7Ak$o3RXkW`eyXd54pwqdEO@ClEaD5GT<*@ zfayYxc0Sf-dD_>+saW$$6KXj+3Do08@5oqJ6rkaQt6L_Rj*-@nmaMi#a|ZnC67c6E z7FiNVR8lbB{b8%I$P~v98P&bqgGH@;Ev7SER5W3U>*WcWGprrM*<;A$jldqt^xHet ziIuAu?MLpe>OZd6Z|(@x^I4_~WHDvfp(7lar>B#!qyQw~%D5_)-Ifv=DZQK$$^{sg zkdy`Krqm`Go3VVj8YVlI$k8sm87SpvtC5Wa9!jahGJm*TG8OxpDY!MLV*Z%pKv;3e zxq0Sk`oug_^@bP7HqHF6**cuI!!)V~g%Bb(WHoA;2;f-5H~u@5&o|2qc^zTBA3L?A z2oUPR!&X2m*np>~2_5JM@5fRV!%g~58q9)lc1jkOE)4~moappOpBy`^H0ilg)5w784v%CTm zOEM4(78;T&1WSPnugc{P{vtvMUN^&44zLQVH-+94;n9VOxKi(s!YLGmlQfPzivN_< zRN4@lA+A^^HTdGWsC|CcJau--eB_bM_LxQVWV^uiOrcNwzpzGgZoR;^T#1}M_d>a> zdb9-s<;p%}`COKH-pkl?JPgabDbX-KXYUTVr)zT|ZnX6Cc9#mA&xE&VZD3@_b~A<5 zal3N9mu4``F`H3iv6ni3sD@_KNqT(S--^p=0wKixrVWw}ZOVVqP_{P!QohtoV|j`7 z0Y{P~zkFT{h8>R4y-uLdVKtrc%s7`?*(Q_TR+n|wE0$Z$Xu1?*+fR`4&*8daO1Kiw zy^^V~nqz8TCy~4=gNPDu9}O=zp$=h;{~W-rXbs&soJ>Q*62WOBQ<~gCUm`!2e#SwF ztyhi{qf`Q0f^=p2k&t)Zd1O(U_UHVDr{$n*H8B zjKm6(qM(gP6uKUAI%az0VzG+a2{s8|w+Vd*RmG{Y;oY9~jLUO4d2c|aq-OydgBT)Qm5%^zu#;WFVCG@@54 zv8Z!~gD!a>W{OnG`x1AkR8}Vbtx)-)%WNI4QPKqIe&`NRYDas0(TnGP2q|jk(s%EN zf<&;Nl=o14?HkNn(m7VR)(0)A6J`tct;(^tPq64RpK`&)T-73JDb>9(n>YlEj8clGB z1Wme5yN4NIgB0#S-W@gYR`X}$_&%5Cx-eEApIzqYQpl3@M+k^ z(Wo}pyME{_R$?c(H^lJ@{#H8m<^IlPKYQn2?ra8KlhoH#k?-Lk{^ATU&wxeAA3oM> zs(N-3qt^tHy>STr-eb6z2CEistf@u6#T;fGlEr2fJ==4D9)DY8pc|#Wop}6br&1Gh z7cn15^I)TyK2;J+kfb0yAZ}*Z0i8--omB%OO%mJL%(?a2XOKNeTv~w@yVzO|kfcUl zVHrweiYaJSh9WksjXNBqZG0^&DmutTnTVQ5)y($WpY zss{bK!$SVkBoZ#48!sNRLkEknCBq~V<^^yGLjS;bg@Gh^RU+%UF^0mZQH+efsZrgQ zt-iUSX2Na6P>`*=-tuXg+rk>(n;kVL$}mqDi=J?}jD?>LNbl>7xH!4Ya+u@6=!SHVY2+un~VR-Ea*ph?cui+Y^N!>}B zHD_^XC;(`gve5>4vN}HP0s-V+m_Y(v@x0$nU7LHqG)VNFROa7u z0OS6zcvYyOf3aH%83O}YY%83T(*@rNK^^Y`I-Js*uDppy$aVhP%#_|d*{W>;9J3|^ zA5p42|JuNJg1$olRX4EyN%c~bXBx`%w_g0d?*8K_bPmc>%C|r{d$rFwZ#@2zWV$u;Mbl%$J!K|&`j}7y#>(= zWS|68i^#D~oYdU1#)5@hTvzCTFf7bhAwv)?$4&sy*>T013R>b9iEuii=%LTL<{Fvw zu!w&;`=h=q7>~$Sg&{hYtDadyp-{>oXkR#* zzL6($sTWiy9jHK|CmA#*rtYzzGlG-GG$_^qspi^Eu#}{)KTFtpF*pzqkVvn2QK&P@ z8OVu~N90HnLxYVg6eB1;as5)gyO*}!oq-xh)Y?j8tG5<`_U>WV(OQb z7(OLFO$`pG4um4ymV}WS^7x7>sZ7pi93FUlTYwE;zd{*XcVe2S@114Yf1BQ^G29)q zW!p6r2FW%ZL&J9kWADJ$1I)(Y)AI5hmyiVp)MSu=>SEGs#Z49yk)OF-Gd>TX=6Di} zs03@dpcbY*tQK>R>61NGcUOwg*rLD9BEoRLoTX8fpTY^Dl)&{Fl2H`(85PhUr;_I7 z#SzxQzuBLvv6k~HoA17=oPUkTi5>ZMLS!YK=!~Wqj+}_eU?7uupP0}t!+HMhpaXs9 zQjU`%+A0uy_Inz0_Rd&^`sYFvhKMXpnL<_Tyz1yH^5;S7YfVMJUf)Rys%c_JJQu}U zSKuvh)>YbIpXO42+Wz_T#p^=mjTe>A=5n8ZoMP{}F_ox^AnlIJ6LY$+T;_)F!divb zsw8mRPRK)_#Wc?^n0T36eFtSbT;nK*gcm8^W#s%Q^hX;vScD?{uD?)!_&`VOU!KSN zO4YYE2N`GzgkRJ{XqP0x1em8WJxZt?OG|J`;YHz#b!zokP*~$@>p3>bv{=W`vKQ>< z;mOy@n>)O_Iq|%-#@4J^?{`3IZq1@myfdQKeA@wcZ_JuOFHYh$qDKwh$s+vUCd5^~ z6-ruaRjMFYNMhG_uE%UP@1NXfIe^C+ZZ$2&^T@fP^+^H6IgJ@J=Yh2Gv2mg~Ae zgN_LYV)ZrO)dVYa%+SXthsOZZ!!Jh}A%4G=GbiDr^Wsh1ZVhu-psaRASV1XBvZR9& zWHEV{MzZUnX#LepZ24P;O6p@_*{Z0V8Dr_Zgqgp=VGRfzU<+WW5{JxJQmQ{EW-3w@ zQw5X^Sd$Mey6H@0wf$W{v;R*yPxe~w{B7!pW2FkylmfS1v=ZDF-`8CRTCsn~Gg1en zPV{LexDe5`FvMhw0>004-B~)o-}O?JpA0EL7xB`Wy0#1Cr|k+AF=R(WD`*D z=dXuQug_)0SV|HT517UaRfu22;tKz;0N-4aO)>8*1|boIXJW)-LKt@!8oI~*vI$T4 z(6h@xh5&$qnVMnqvjl@3CY)hn3>cxCdjf7+0dSSTjYo$9Hkj4h1W@D%fV;O4d>DYo zU(+&?z7oll=7FT?*vd;lw~uh~*9R}}1l~E1_6bm|RIk?R#*55Vx5@K=9M$WE&&lxZ zyw}jycK`&x`?Im2`W}#f;MV2sC5uzGB%fkV`QP80L+bf&>tEae9ba#+a*QUBZ!vpx z|LP6eV9hh}LzIjlbDRfYAm$fkj0c(vlg@uXkN|f;hkrWXi1q2Yx#YNNT_zFQE$chx z5^j$_;P&EbpEp|r67YX9}#Gi9vvl6gyp1323!9>tMtBXH0J@R|KC~opCnJQ z2_WOs0BmBcZKC=@exQC0nFZ3xBON7ZfOe+hkGLgippq&ru{i~cp6}M@h(0iW4Me*_ z^dPm&RROHNxFE^P5`H&e^Xrw@5c^U(SDUrFYibq)YZ*M&gfbb!QyHc=k2wXUruGB! zcy%_}P2_fT3v4JFq4nAZem@*3P;AY@&KW&CcT@q(+0}8qp!@PJG`BO=G@o*)gOV6s z?PF(eOddk?yETFCq}5ibxYE13z3D^c5IiR>FPt7l>wDbl_vU!?Bc2_!6(}a$C>0Vp zZJJDDnp&03yN8#~O*a=+4=ZRxjbL^Aqzwz-u|@?~_*^At!Zc4Oxm2Xqg)N)g=dPg8 z%Wu~q098P$zYrEhs6ra7y;_$2-fLNp+aNNBOIjR6&>lr(fn3;@r)(0`SW3(Q(GcNu zd^|>_iDo(R!f%Y*d80 z>CQ|FgvZ#)Z9wO7B{RtLm%&O6CLOnvSu zEjBAK85+*=outTAhL|N0YDz zOg}2Dyo~j7{8`m4^)I2)s^dpQ@tSpak@YIYoDy-3y56<&(oNuPTC~=~<|q2}h~p6b zvB7S*uRZGoH%PML;zG(}oh}m14%n9OG_~ryqSy|M8Hts@Q&f22Ebg5vNf}iX@=7=| zvR%IGIJkFXTp1V3ZyKGx`Cd33g6{pL?TG08y0gz4<=P`(?N`|);^$h^tw`t>jM_o} zviJHRn|+TB$(S>@DYI(F%z{$| zOEKP)crMG=W7?q^`7r_FTEw&l$nw|6>X7*?+J{*&CeBTH$#J(zHz_cMxHWRhP47T6 zN-O1bBmR#{L(N37X2_x*t}uyqaNDc>`ZM&JKDF8bnfiVfR5-qBl*2~Gl$7t;z2kJG z|L5#2Wj2PoaF|X$geiPmGk?3I9<(*tBF;e#apkW`=T~b%39$jNKjM}a_eJj&eEMmc zZ2mWsPib|XlY>r2Sez}j!ur8&29*vtCs@6d7`*zNu z2j$wG)s_cA)a|2+UpwxuwGWsHKZY}xZJ0iC?`j+XY1?PJpqhqQ&DX$I@zT>f1Deo! zBzM#5sv-`3Ji&8UGwTZK&lTu@;-0RuNk933qIS-Tz2mY;pd_IVkh{=lo!#|exKsxU zlcDQjp%)oM`)EoR4qF_r#OUE9=y=?%S(1xewnFkvm%=6yEhi(}mVuBfDIpj4NbijY z)VTMN@SW3uf$ykr`;2UfvZskkHsNjuYFgIPG$p7#Ti!Qb!rw5^9H_9W&-aV+d3~%a zfO6<9#4n0Q1ph(&1Tz4;;@7~^t_ma1*qO^q*U8bisR8r8yy);G!_sws!p^qT#a1|z zDJV-EtZ`AhEMvVFNxhG}!H&4t0YhV-l+Fj%hr*8p9~EE}8b_dU>z_eJmk~mn1=ZZ? z#t(jvR78y0O30r?JPJ#yV}pRJepl3*OKZy%o^Kv&vbBfYyk~KJb54is)%CJEd9atM z{D-&MfnwAvwfbV;wgXFBFfQEayog(J>SMPw6wYJIjy4Q}9Nmk9lgl(pn!ETkfhLMN znCUa}7-fTOhf1@kXaQRZ7Y?q3E;sS^VQG-Ou_Jvs+9)5Zxc(K-_o&l%dKnO{bjaqy z5o?;L1p&J3b1mrY=@iOZwglF;ZIr5ylHZJK4~0`Mx_kbG`sWKsMJ{xfz*Rhoypo)B z(9$Kd27_9Xsa}b)O)WK849wJKN<}DD85C4?|umF#4K};7D5cpF3lSDBTA1RVUFU#C} z&WRWEt|-y?=yO&AjS;{GPglGwBFvdj`r#lA$8_1S*e;5P zkyKB6RY`aIM?w6%pL@+646&xO0RS8%YFO+77Z_Z5>jwf@Ma_^5RW|q?hQhC`ELqdi zXVr8HQikU!#wKlMofrDvE4OOEPRp{1o-1>nBhUS|*=`g{t|XEZOFm;j|J8;RSZh}$ zVIs~X2+F$Dsa{>XXP0HAGNPg4ItbNrLL~Bh_xX*z84SADof|4d;twfBXnTbl56sKB zc`lt(k4HISQCZNnSO}Oh7L9(`>bzFbmtfU$O>4L7-aVH>*PmTCLYUpoO3YsBj?Yn2 zITD9eJMk*a^$bP`?s>|y^f%=z&V`S&R5ifzQzLgD_)=I~{IZsSt+56?!UjCT`r7NM zhtxZpbmx7S0JamT94lkvnuhb|`F=Y+pY+f>9UgrDY5`eFK4Q4l$$ht&tT>c=&FHfF zRJ(edZnN~Wn@Y@ND?5qGBKK5jK$X(BeWvynVT&FT$HV;=Lttd%y#nVHOJT-YMFnyz ze1?0m7AgT&g#mr9Rjk+mZziTAG`w6*GOOb)>*%)zyWCZYOlo=UcxE%LhY2w9%8kiO zjpP4|&oVGeI$Z1Y_vqFdU*xlc0@h0(_ZqP-{iZN|yb+jOoyc6=j~MkN<8pc^ITO0y z(vf@k0@GdWqJY^AimGnlJ7oVhFNau7YJ)DR9W|r5v_1=$j%8vW0_=Wn-_;gtJ#gyM zA&uRm8NZC8=rX@UO3ZPFAy~m&rIyh5%SLJ7s-+}U^XD;RW}4M_c8koPEoq)@U4fPe z!-bWfJ%=9i;IL8ipV&K^S2m)F?lEf_zLB}y1qfk&U**56=3j;C1iR-nDydLTpTwc1 zSMaaSTHDgEW8s?vJ^2N_#FEpWB))Z?uVjK4AgC&FsNaWSB>z3Dyny=+6TzV+LE9tw zB#H%fBE-&TT}FtfR40lvK$P>CRX01UCN-(#`hY34@kVu+R3jKqiGa~L zBQo(8e#Vy+MLCabgrcI#aUK+Rf4xETBPTRml1a^02rnsjP%u|9w1tAJ0~#zIHsRj-6*7N0JWK$nCf z3BrSxN5hR@ti8jhUo#^zr5`Ro!=V$HAv>sq((>F(lKKgk9YtdDS9jTqc0dW+v72d| z2$BQ-usY8eqENm^IfjpL8rdmFJA!&K&r@@x3l^`I?L`%l-fG_jPi((bsE98BQ!0G5dVJ@GQGo_6)k=6YBGxU4EGo zY7{(kj^e(E3Y4?$0t*@gIGhHgUOP8WDgHc|#IGo^vC-uR4p%y(Ayrn1|Dx&-Fe5%h z-+RF3tXtF%2OFI^yqnfK ziY#gwAtLi?C%j5=bjlETb>EkRj?Sc`=KGJ+btjRNecBzk7x-B^B7^VHuIY88FTAnu#O6$p$3ve zB4tE{uIJ*%-%=njQ0B7Am<1qi2`??7fnb{qc8hM-hp7Gftklg&63(!ssesVkU3F|r zYNoQaI6R{TSV&U> zaN}u^;9RkxQZMvshg_;F+j$FWUpsqL^G$x~Z^HUDHK{v|TkYRnJ*s0y7d4rWGzKZ3 zZugE|rRPmH3&r$=d&KztKU7-hdr(5v#M0{fn6;zgw-H@>ywIY;a1 z2(AG-7=)kz$Xk-{1K$y89+8r)#zghg%p_O#;*r9C6@t;bd%j88NPVp`Fu2 z7LEHKPlD}F1e4zS6umV-fVkK7tNz)d3M%%~?U=nc-QGlV3ovZ@j3O1GY0`Vkp;k&N z#0o5nmFbR~e{d4_IAlc`JQT{>{ut*%55Pca7)LI<(dySxei74`o@q=9zP8DTgaF@> z77eu?xdw>8pQRMi!l18c6arldaVh0?qUo3kBPNGDa#3AbC zB(mK!grc}RsPiUQTQhX8I z7~49f;mVQC6b`TX*nl7UVl!JzjgO&ew9+nV;gD0&oigsM5{$lLe=>Xl87Og;#ZXW3 zhjm2yR!;gqt>kJ5u|V|6(ZW=)tspR7*nQjr6P?$+b1mL5uMwQ9S?N0Tp3{&%g|aWF zobrFoLa;D!khpCnmfh#k6G7XXpDr@mJe(Tun!-U9Up?L`ns`%+8#x*$+#>Ik>Q*@c zOFtHa#TdM^=qDB8py26}cTRD7P}ER1AG`#7f7**35U{%%yxI5`j9^5|lFHkTbohvrO~|;&0`CY8D##m?nMzKyfM15_<5n`%usO^5I<53q@ z1s`QnaUf|%qnMR)=p@hIb!R9=m_k60oa(WxHpa%RFM=cQpa$wv)@Ls( zF4x<@z?iAt9!Sifam+)Z!2SrKbPzbaRZS}YRQ5^f{bYrZjh%T&c!?6MQcpCJOz?>o zh}az{ymsBxq?Ywt2XZu`@O#qq6Az!-iQQ4W06I6T?RBrKE$0E12$!%fxbol9OjO*Pi z)nGaleJ=qNToi8Iw@PQ1vAne8c$vJL&CAS&fI^MUz@YewzqhUkm73_0HUh$G3&{@1 zyB)VoMCdJwVR)kMeZ0O+K6E6`bSBm|UdOhu%syx;*B<}N&|}1?ZE^e-$3bMt-HI?J zNs>|ksj?&r=6NNq^kcVRG5`uWTQG?!m)_|7E7g71hK)TzOL;kHT~((P^a|3E)-3d0 z1%!H~t1MCVFP{1hb}ev8HQ?lDdm`@#!l1*@nPhrdruAFh1!=``Hl<1AT@fUB|daNzM8jkT7}~ zDN)h2U}L-W9?#-cujV81R23O-yL{Bt=;!IR6r3b5>Ubdui7nchNS&j^1!4MY&(qd?d2TPp)@?Z`>0Xp-UEiX`y zO$~qgU7$Okrae1F`lg{kE3dD#*^_u; zG{LliK!fR=mlQh~C0-|(Bj3TGSn{lD`jI7=z|MYZnnnC0K$2|-4h3R7{3bQuj*g%j za`zqHT{ypTNz3#wetWNVTJ zZ1Ri~KG;~b)6e|=0ukO0w751_DH~vC1-~WxAouTr-yT#oH`@PQ{3+|8UXNV)N|hvC zAbuumV6*v(KT^P94Zw!iIz1e5;||wON2ym&vPfH@I9BZdm-htwDRa910&Lz6Z5MK+ zm+Vpv5S*PqPKV;#cKo#~;LDlDvaOvv5upO5xg*b!2{aBFYEvV zzr#XlLLDh@l6}9v5w`%XyZ~###us@%zjO`kwoiZ_l7GdNaCu17g9RI`M0t$_gG z?7z~NWiy76?2x~_toG4iGM68yH}iLkr?ZZp-iwCx9>D7Y2Lt5*`s*-v>zsbki`5e| z8?pcj{a4Ds9v58-M2Fgc^qk|Jgdf{0WGnVkn8)qliYGOkz>B%EFWxIT7pjRXlr&Z} z+>9Mf{rxJ>Iy@Vs7!26(Vf^biPJrzI3xt~SVKyA~8#DnNK2o3CnB^Ei0R)e73uqar z&?CJ9^vXrsxWc!feSMs z_2(~9kAAZf3-sEuG3a-o-xb)8kqg4Xt@UGg$5glOf-_2Dt4=1`8K%B z)(bNP1#u{i@S}CL;$B%~Z-eP-1!DX5z97VEw?A(qf=H&_bK8XWg^sTEXcYF#Xv8mp z*>$9!yMw%K#J%8PqjJ(z%0pZ@(yX}~su1J84g1brvi`L!^>PzbdZ#v7F;q)GJ&yftJ`Fd~%p0@=M+AALsD-$5lK~ZvoPQ`- z?-OA3m z)ht}#xWmVtGX3D_7!bi|2At4~yZ#X9W`e4Aflr1zfEw!nn*Zc`Op@VEuZ$PYjoxb1 z5<(qvepPh(a%*JZm8PtDpZrB3?$ z?_LHk6m9V$hVh}>(FzRnGWkU-dj4VcSd~#9PNknILaGC~`U9#vJ4qR%gQg4tPlZg! zxDSiCk_7WXfAyl#3#X0I(h}`KevgczOWzek)0%#xYOL#3sSX;219D>>FY}5i_$^%B zI59*d*E{FG)(>(W@qy?*`DY7&*T1{4*IW&%f%{VYe~C&0SPN$^C?uL;6$=h5+HG}# z94(7$j?Xakt!9ksXc*K2$LqY=I<`SV+*c{N(N)l|ww%=1Oj=`UhY=iPsJX_Eszbk% zh#X|##x!_Odgl;XAjm!6S4xv1Cep6_dI_nFVS@r~iE^{7>24XVlA3v=@dN5aa{SX< zkIXLsKMxvX10lpOvl+j9Is=oO80T8E9yE#=turgzK^(b>jvAP$V2`Py8`@=LgNisU zMX$cXOre?<75vxa{jzPW#Rk zT32nQ!>xB*W)}n0QX_LzFBHi+wn`5cycmNbu;xny{57j(B6GXg26Bh)&6fmwQxhcWsKhh1xlgeoKAQtauU8X+u9f>#q@QPLPHw z7YgEw+S?3-4hn}0ix^b5Q%AtRsQ}Fk-j-f{&_`XloMiKP3hBjx_%7!){uko|4ZRq# zz2N$LRw><_{}5hGPm4j=%jkwz{K~knBz7~H()z_5(dVWZ1v4Y(S(bPk^Q&UOYV_PN zAfh6Pr!`7cs4E?1A$oiV6oX--skkCBqgTC)*!~7ek7#tty`8G3Bw)_>vCXpotix5j55Vf2h@TqgZ=Q<<>@iua1$hJaP`wcEIek>9_;hI1y2 zijneY^d~A%aSynH2#o>C6VIyJ)`1x@q@)rV{LA6`{mJgdD(; zGRFZ`&Cu0DSBd2dEc3Iaf>A4NP~1Jq`rT)?k}NZ{4YLV(T!pbYR~Vkd3Q!W$VQ6;d z940%GBps(w;a)f_blO z6fpdNL%08*>f?&+18sZ#hWY2Qd?H#;F|)94ZXVGQooM~n1*0xQne=H3E6TP)fE!wua-ANRRYch4cdhLaNBZ^4zK zyPTCAQXPTQ2EYmZ@r5o%w&E9nfP~cm=;gzBLH;I?`?Vbq%U_^&t>MrY-_!LhrfGlY zhIYIw8w{r;8Ww}fwzJfww(U>ANoZgq-%p?+Q>aD)G8!wQ5(An>DE=q$*%SfFGawWq z6PcEFKD8CCR6SC2%Mv;|DQWp>fuO?p|D8ph8e#>-jml*|VNOMgNPXO?4q5FpT6vB> z*FfVY!iZa7Jm|sGT23F%ggyv5WoW{C`qE7d>?<0jKEjDqdLxBuQ%l5zF;U2Dl?$k& zkG*Wob9`nC+W4Vw9lDtfygzhiN#t2(DTzB~tY%(_BL9ayuhYgDr}#)C8+%Hf#T(O_ z79c;W8Bxj_1UiDFGsY0KasZ}>G-3owM=%SaVbdJ$^+qX z1^CplMp@W$VNeB|U5c?R1}MU2>nPT2Zsq}-WDx~m4fk?YeUsLzYCGMDJi zc5omM96pZc8!t-3)Fu?SD7fG!Ma{@F)EKx@d0s<&DL_}QHuW&0l>M0DHW9;dC9mJL zW?rQYrDVTTW1KQ&#gT{OmJXThS!rG!i-@Pt&C0q^E+*JSzpAezO}DwIBatTepM;v@ z8-u=CS)|T>&rm4)stlz(f2S2Ro8(Z?OlItD%o1F(+ywL&@5DSzkFrlUa0>gCH6KS~ zQ=%+W;3?9>Vt|?KR{t}jGBCXf!lKn1M zjdQ$y-l_R&nhlVHHfJ@UgEUsP4PogBRT=QB5fohs^wcg7J+po8{~gUA1P8y^r@FV{ zN_BisNVxzyX*RCzZ3aviipo3{Rsi2O&kGR<66_dkSFrNkvKR~_OFIgHQi5TC< z#~^gg`11J+4VyIpJ9c$rXR3nad&YqW&K8Vn!4d)AN2U6L{A&)k z-r(j+=tbk=<`a+~&jN%0tN}4!A7X6TJ2%yb{&PP>{YhhOft7jyPtdMtLgK=VT7Dts z97qPHb`6~-PoOgSBu(Wxr(yB=lS{4pjnkTySJ0pGJ7*+wy&?W1-2hn7iLUe0JL$s^ z1^q#;!RcHtZeR+H;PQv*&vEJ+9$npBVjRaZ8M)%HBpmj#j-H7|M@=%rIpHLk%A>mN zYbdkhx7X0`zvwJ=qYBO4J0u*piJSbVMvZbR-{O+mjsfFU=v9bONZhcyv_d zO88c6Tb@)yzpD-qLwco&c3WmJNcbC-_@J>jBFJIkHcp!J0qroj2V=QbHN#drBut|J z$@F!R6dfX3SZkYq=OzQEFI};-$wW=VbkSMR>SdVw#J1K7SK5J;6C3Ll32eKSoD(of zt95t5%%SDw`0r{^q$WO^WswsAH-C*kDnk)RL~_OveL69^Ou` zr>Xh)FLpds7g@0kRYyBhuU?#?LKVtvmmP`q)a!JK*OOV-DT>t$iW?h}nY$#hggDe} z8xAR5mg58w7q#?g5s+rBGEQAwVV7F1@{v(!xOw?ujRE8777gT(L4cdhofcRdz6^`fz-Wa99}&fsNjGn0042AengpSo8QH?ehl4?*n80#J9q@s+x0@)q1&idK2il zs0EsRi@%icuvpcLfZyvMH%@mFeU?6z9|Mt`$Vvgf!?s%EhdIJWLaQ;`006KKQa*`< z_3?U;JNgNZz@Dp2^K3y}=TM!qZ#)?2n>is6^C~j@2Of>R3j<5~b)Qd&zEU#^WDhKV zfL9kV((sQ}8?yuaRM{n&YK-CEl zq&E!6Z;)KyvHxFfd2$epc>qxU(x3PDvJl|!5M6+v={=g%*B43jhqVsxugS6~4h`fV zL0FQq#j*d3??QAJrU7dQvj(bQQdvyRCtkFd9429RLYyZ|&WqC7kIc_ue_z2>{Y%yZ zefePm!_&4fVX*bq-^I^F>j}E)OdKDaM9;c77NA5cgWfZ$CS+~(3``g@--6l0Pl6q9 z>shPi0GQ=e$?z<8uRDnq`KCOtM&*kF_nPCM^9MqbRW=hD>~ZOSm0AQcPKOP8O&d4o zD~SPDv`K7C3W6wH@J<#VnS_f#4xQv33H%z+X9|7AiAtg4Nmj~LNz9^MvRR_qmN;Li zOn23}QFdQ=ReK(hEpEgf8;(hp__;#F)fu#P(^2M=Kj1uGYw-))wdBBEl+JMQJ)+c} zc&7b@R8bwP1Ma>C?|5$260>nLiyXu*5@Ml&S!>-`Ot*emJzwg=E_MkPtAZ9P(KhDj z490zCZM)Z=-pm$#gbj>{gnRR1~hM!IhoJwRQ z4Y!hgsRUQbMSiUtvTOYX3=Q!Aqo(y>L{c)OvY8XRYC-bF5L5*iQ?3C3AAr&&NbBa} zi&GpweWxEIgAag*Km~tns?Cf7g53a%>Ky|GRsLYJ9^%7(5V_u0{w{s(^v+ar`Q_(N zl6GeI{}^}6m#r75+vQScU?{nt>gjlshg0CU{&k?|Yuw&IKgUNl$=0vy>w06|nV1X$a5vXyN%ge6;J9F;-AfMcN_Lun3KjYDI?05=|Ro zt>N~t>I=zmBTd-*`XG7!ypkEmnmn4FPQLuQT{#o9KCLy?myIx*((U=ISycE$==#N_ z?9DUIee>lTN!z$+e4SQ)E~2I(D$qhceF}`n>obJT>_W^$0dcuf!HeTc zJVT6(WS-wMQ^IvzOytW+zJ9D4%W={FpBs)3xr0Sg%*Bav&U_`l*4JSYDk?|p#<7mN zGD<9Gr5^*00000000gU@7KTIjYv^1Vn(UN z`Z%hNzfS7M)}!(0)L>&eMEm{d$7bp-d!vb3D!$}X=W?S6H}Bz4q$Vpn><5b-IDdcG z;#ala$TcngX29B6r>+r=)?prV@MjqG52La@CSuRl=UZEHG+l=+&GVsCbz>wtlD&g6 z#QC=E4BYlA;&&67ZaFK0R)RUvt>|`||4)oM%Lc>GLr7RiKnEnL0F3UHxw+@P0abhueIdy8-*vQp8|2=)M)VXS8UCHP^)ZR#@@OE?urq0n77PF)nS=r^yPQa zFdv8Ni#hid{PUTGpsWoz@?t_HC52JbE}I4c{By^c;K5=-f8UyZ`;{=i7B{GsFC1rU0+elKT&Llu0jK4u79PKRF zjSPH8W*nF}`p-(u!anVfXZ?0!7t+mm96w1lw?2L z%`SAzP>uTb2&U#0*p1m8MIg>T^Y)}HnN2tprxCQLIAYnDmMN?f;%cRpMdV5t7p+q5 z`~^1Ml{AJKDxMb3c$wn;Wyy~dz7EJ`&_N)>Ww_h37Zkm%pBYO4@izSWXbC_-xj(Oc zF8M&qNrerhI$ecw%+bC91iH%)AK)l;c>_?P&5DnJ~|!1COoXh z&;5CvQ2-#w;1C0I80^$53xlrzc|v>r5JvQ8&tletWMZ3?!pUod%>(>8w5ST6l*?_K?4H@?oQNb!g5FE8ji-miK$CWiI29C9nDu*FgC&qva^`r|4(9wI~FO zTrK0+=q9L35UbA+rK%M5~4Trc>j8If(I(JXvZCh0!~U8YLDhefWX zxgl8f&~0o~=KdV8&z&njI8z|U^6~B~O&1cJV;%n6wqoEJL|HO!cB(v)4t~9RF9ltt zF7;tJD)S9Wni?#;9(#=zRK<#4q`oTEPjFICdZW7>X3J`g7S*|WH_&hi{~WYP>5iIe zH%fu1?~%d%yGQj8dJfHx?MM1cUZ@kKa`0c$`tmB76mYcg>1Zp`y8jgm7%1pb>YOei zW(Gvm`8iu74Vm0wg6|-EA)o%J8T!(Rq%7=xlPRQuzfi%iUW5Kj8BCEPx*>e-r3z-~ZI1amh*u zT;m8SY2pA_@25J`PWjO>(Y*O9ggS4E8*~7FCi8?!w;6#B&Z15=2B(4Q zHWTcsu9fqPS)To`jr}%78`H2T*@C+lw&R`_xJCO*M5z7DX?9@0$O}bqwsiM1n?gC! zD%^AxH}4;V$1L~KO%;F1gQ1uFfs!TQM*YD4;Vyp$Vfq3q2NwS4!%_?dELJ_jz{!6#B8$$#ZhhX|| zml{7tg4Ws+zJdEnrgep7Cq^9kufLpnR;9@A2*;1W%$B%^42|X{M#&}k9Z)8<8o2Y7 z7$eBjS&=^wE7+DgWZWE&Jxs4XB@+eSP~l?Z#j;c(%28e1q|aa9_!YE$kY`skfM@kF zM+0rQf1sl?R6(~4xpZvcsDvwwG?@og#;Cw(=ANjGiH&U!mBY2bmA*NlukB*pI7A_Q zJKHlRcCL3*dqzbqa_>~PAQKa_Wuc`^#6BdL3p_@&LL06ZK&!Bh<`_YvBPlvc`C=+<}eH7sX(^_UF zZd}-Cf3s6CYwJMpM2Z=F>0X1`Rcd+_3S4yV19g8{T5A^z_KERgbwlJKx|e7Y8)Z}$ zxCADBp&pm-J+(6j7y>$D2^d++#)JuaiHB5vDXaRCYYVXx=z~vAOi`LHT-@jIRf=3a z8feE2OHS@J4SMGsxUWmi9WE>}=JJAU>6-R5?z@s#Zqx?4dn-4S87DFWQ2n0k6+G@Z z>=(D5d0~G}&B?Z0&EYFCr&1B|*ftx@djPiV1+!E5fcO+-Y6C~{reVmFiDnnN8x`eR zSq?;aGBxlzdR`lU_EKU0A1-Acn;7m*I(oBqH%6{0iKwk6=~iA<$ASO{KPGg)tqcsC zLEBNXqeL)FN1R>dIz(?prVXW*^Lvzp)<>hFGPSg>csw9mxpHjWUdh+Fk{@Z$^#wM+ zfpzz&jKQ$-g&7iU122f>V*r*D;&HD}y+A+@H-;4?e)7nLV^s8jney3Zs$pC&eMVL? z=ITeSHw!^NPIBzllh*b($t*Qe&hs-#(jT;1YFUXBemfQqeCD`2PFB2TwMeb>C#fM+ zL4zD&Hp)hoLry}j<4L%(%%`|H`m!yNGvApy+l<$@)M7Kb03BVFti^3&_A^e!QOoK= zGv-~^2>C`hMAJIKQhuuv3&dUuX9(*)5atnNs3;SZ47|Yb$*SWoi~P=AV3P#Dv+f9o->HIO^d^T_e(Ftw(=AU-w*7 zIezSRtJZn0#oGLpty)E+4cNP?Rdc-7yC?}_{(TUph>^yksA6b=b)+>_;4VyowDHEm zD_C?s@w6_O#7=|h8mXm15)vJLgkB8AoSVM}ZHh9=40fq14I*cKF>f#bo|GFeH9QSN z%=Z$;nL9hNC>cntNP-q7&HPSi|BldHO(h6N8>!&=6tFd$jXwx*DW`GB?>mS<* zL$p%aDS!4$tEb+}V@}D>%doKTN|7^;Sj(gurKno*?gvI+Msp;6iq_8{sKA3GVBHrm zXO|FCpt-LM7zY*MkP{A9=8Te_KI$J|p5vu38e@r!_`&GtD7RJB(4m-#>J`$ES(z|( zNbZnFxTqIa{53G?=yFMBB>nIvN{F@8J-CPe((D-lD#V^y3*)$#GrBNtWpHqK8wuC5 zj6)SI(gT#}os3)5YLCHFEN4rJ%5wMhu{LM08afMh@peutjhUK;H1_ z>VxWW@ygc?wCdS3Y$|53PC0*pb{TYO!5{iax}!Io0q)9=jO@8>Zrtw{>ote! z7a4Mnon0ewtm`Q=hxB#RxF_gn zi1va}b(k;o;&EpLSi>b? zY3vyzRLg?VL@7Kp;5|L&&$G^r@U;2u5Pa#ZVqsPn_>kqYXw((X1{smoWlTIbB4LrF z-Y7IGSJd=qx}V>7xUZvqR<~zW*eB$T6Dd!_*#%WgS?EV1F%dg^LyEBq6d8(A8SY5o zhB#>0T02}v43)jksns#LunKFA@=x2bxYXHF?Kjzxe_S^3sv`kZ>gQmUZv6sG+LC>5Xi>nM#K(t*hz+V=IR*Q3v`g31!iWfE+g8&a#fJN~K^i%t>yN64uO ztL~!~ttZ_<&cP%75ueJ!8uBTvDm}quX?xF`p0-2mJrz~XDiv~KtW2gnRLpEEQ|NTL zmBwjzAw0~#v& zCDO@d`kY?|9cRDk0;GwhBFCR<+$tl2cGy?ppq-uQQ@t&N6KV8Hoj zF@!v}Ue7AJxfh&BHX+NZ6=>&~(h+^(s$@7QWQr$7Ne?eL*z<^N`)19k6D2bBS?Nc= zfVnA-e>pT9X>gFGfhU_xbpT88e2H>=xnl|Cy?dmi+k!5zpT!mQcV^N3vI zj-{w(W~7tckEq$kabdQWuW^-1z9YDk{$;VpoD{}WFpe|gkHb4b)$|+rC&`ZMq^Z%) z_VvF~`>zPqMoNxZwkO8M?39!z8w+e#*Hk5#*I5?5`7`3f^H|YMCN2G0@(^)p9Z+`l zMyF5KR!b1dGw{_*Ds3crGw3<_@3vmJe!-3R86O)h)oA?44CMLHTdxNDMoc@IFLLjdZA_}GClNWvOVYx9vGw?nhw+mln|PIU*|q=>5|^qTz+M?^RR+xdI$i}mh1%#?qK{61SXgCeVzjn|4GO|Px(50YGDXyMlC<8@ z=PNMt$T0cIm+hRdw#~qjP!h8^5!C!K`;rBnigA8okWv%1bK*csNAAu^)r46Z%^JK5 z>aChZwoO*C?3^oEi+S*BRmntyD=?vT1H7Ae{x%%B)6@+){R(07RcKJYopcuuqy}om zHUd2a9MtmYww5iW`u6F26+d(nc1G=u)Y(>Zu!ab?49DyU?1<#5E=4THbIa=pI>G<- zuBc@eWm4|?E+GH4QvP*c=5Cv>U^~_cE$D1-^r~Am?AZt^BNbZwht{g~8+6w^P*&<+Lnyo+bTVIhsw0q8iZW2_?FjC_&>@YZWY|B|@mYcq?AM1n5eU zu@*a4RpPYVzZ`$T*7TC&Lxru!JnNjpZkNH!fHExXI}JOpAs48z9i=*(?%m^Qlf>4j z)G#BhjZ|d8Td43VQNgkZ142hsP1DmwnN!*Ay{3zgwr$N;$YIl?8d=8MnjJ;1_pbI*wnH|lVd<-~RR&CJn!eqelbpf-6a|Mtyl(wQ zFGE;Rco@@~ES;aNM*kP7iY}If>MZ?2dw#G^agoKW)+=msjygQW?ZAA#9?3i}-k`aZYLTN`eEHLu@X&l-qM;iefDgKThGkK$T zl(zdM*3t?Byt4R^uqJJ&PCJnayip92!CZ;gdLgOjd#M|YbDM3ZFDS>e6~y_|^p6*U zvf3B01~W5O{liCoPxkEK?xC9sWdBH zc4D(KtcF#R1O1@u^Z?EttYhf#*6bOsxLFa_@k^d01`xV^Z)`IdpYeXvX#HLxAHM$- z&F*2gECfCs2wGR(p4u_;?sJPY1#d0kZv%MM)SL=3$;PwxaosbWxt=VMXhm z=17ud_Y;&!j3NYcmV)eV1xU*N3;6|4kjtNEE+GvWCLuDf4J94Zm55&&XWfFo_pvM3 z8PpI}EBFHF0Ip95rCod@#qfG#eU#gG$4*E5u*4uEVc#4NyGoA0b`bBu4KcUxRNg!F z#?~OfOoGno!KqLs6x%qTpgKFQuD_sy4Z%YgxsK76vWq);YbRXDkE96euRaF&PLxdf zN8kRceSM8PNv6!lj7kCY5>y^p_6Uh8BdEN^B!6%33BoLkboF z)E}0%WvncK8EKN=Dh|8nd~}aoC$9?(2+CRj3=cJQg^tXo^4@5?S5Dea%nh8ZNrDiK zf7jLhiuyd{ckmcSUWij&=%_0U2yhp2mu>HY5PO+!>EYvEx{<{)>gVJAJEOxupTU1bFw1C$)H#cS=RxR=&b`;o~WQ{e9XO?AN}64XtK&)%%nFo)c@= zK_@?}DX$jrxqqsGlQDC+$DJbGCg2+5j)2fC`uW?pRR2Q;^Q7?n;{#+qUkOh;u2Unu zhK-+8sti(X#1`Ve;T5aHiWO<;?&yA1sPiNDMtM+VznMtFk+mMXa46iRJ7(*D0-@#*UklB{b!o)VA=x+OhW zf5tjiS_rGh$;myEK>+f!8055E={`hqv`j<=iWXfT^B+o9R2FM+R_$xGBGjK>j=LjE z7!3%XHz`=zPgi>Vl`L%`d3_x%j?2$>5%j(Vuj@2uy+yls%jh)>Ha4#F#R&j8K*qmG z7|Y9`=S`fD_y{7=I~mymo>>}6)Q}x?iwMXp1g8wf=8mK|*7JDlxKAIdK4=$_jcXU``Gz5Wrr+Jc5Im$xPulAy9_e% z8m?RZp_f#c!iEZ3hpF(+2rjgub9y^+y&9RwbY@i4zBZ@Gq(E>ypWTyRR5YAp$BK*f zaLs$QmZrhk<+^+gatvaVPdtZ6b0-tr+J0Ua*TK>`F*IQkTXI|f`@19W>xP6GA9$m@l3X|$aYL4^yb7WsyhU_JhmJcRY@03Rj=xKbTotv&I_*xMnwJz+Oo?CMa$;

    SY-@REPv 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


    VTcqQ9t-x1!@=|^uZIm^__uvTb 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 oQ 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

    *9XsL0nGaB|PY> zr3}SqyTRWv@!m&=w%ziJF##gnHLaA9?sAGU8% zcrM>e`ELj1`iFHnGM~SXWaOtKXU!oIkEgw1o+3Vw@Ou=ZCrYoX(#?<{;HigGJjK2x z+4+P#zeE1(N&rf3_kFcuw^R+G&l>`AyxzLmkMq<)@~g5-0bz+A@vDB^XA4S+?zC4> z1thqY_AEr&z$9(3$8AJ!Q%I)*WPvHs`TYm*yth@H*lI7NY8s-H2_)>AEq0t|G`g zhv|R_t~VP)9(?PmB11rOWZ^V=L(kh2w<2|JQS(Gb@q9k+NbZ_`$wlS`j_Evlla6C< z;h1$#WUO(_OS$WG9CJJ5;v){x;_`q;ZyJolS&%s9y4OIWRH&@pXsx4jDR;d}6OFBr3=ScLmu;Vl%+~H7g~wq8J2Ppyfvagb!(5YBfX`fdJL-MlE2PQ&@ zFo74bH+PUL^zq}mn0)l`ZTpN2`PaMa_vn&~=4cC`O#fl-cSmyjrThG`&C;UQ41F6x zd35a|UUYvUuR7oAkKbOFJ|W?H!q4ZZtSzFRkhPHW|(s-5M$E6S` z%Uhp+YeH!Nyb;z1kpjIQWlZj6{fHnA8IwCeFqGxdp7S?gP{b}Ntu;t2A!ns)H~K}D z(3kX_qj&CoB-KJ0{Rm4l_d=?f4BlacJsYq(WF|wy64b^IJbUN99WtY@W(lg~2O_Cv z8jaI)*5A3Ol2p40CFEoY?Imw0TOfvbUu344wf)OYvdi5{Dt{BV=9w2UvMNMA|M=oD zdZ^6P_}TEpb0!hrgGly@{$#--#QaUqvZ{pHZ#D~v`oFjVpFtCI~m|)TBh}3F%eoO#xAgse>Y}t$T37HpbV_? zELw<^tXk=qFln?Kv8XvtvGFCO=$^Km`4({+a-6=b>Vx`cX{-$h8DTc3fTDY6-O$r+t3XT;`0d&R?~7`YDb73#c~#u9Cgy97(!9?^1FsDJQ9NE>>p0iU!R`9p>Z?=ElXk!8 zYs%4F3UA z`l#|(MUiOWq@Q_9RfW3tIQH7LRF~`|Q-3^}%vc|8wS>%5dmE%R39tEoczO${xMHS% zxRe%m_bpc3-HVq(k+u{l?ogb?-HNk7ai^uYyR-P>?(T~(Zo9z8^SuA(yXVf$B$-We z&OLW0nM~%FFWpWy?f1Z1q+z(TSV4w$~ht zwEak-{5#ZIe8NAyO~re^H=+WL)YDixX1Y9FY+oq8NA&PZ?qiRuusTs?%e8r!axspn zPcq(GER`;WXYaz)+1g3ISh#1y`n>vTIPNzGgTh;P&W))@gm;rOQi|IK#grc3eMXaN zd_d{`s*O`xlU{s)@<%B3bCy&7>xz2Rif^6u|B=GvzRzgE!)O{>YbQz3S;u*+CnM@m zj@6%p)+9*NM1VBkA2?iwYx`uYEpUOTv>;4FRDCM^(LHbJa#i5dm+9b_Q^?yjYAu#nY{#Q-5UtuNgLMhm{eo|(Z zr^ZZsQ0CHVKKF&RU|4jP$X)cXsxAQBWnNewi+U0*aomfrHP;j-+Rs}$rkYaRt;vvl zuFvs{91e9~$jvGa%Sz3uFC)Z}UpoDrCA)O0=eA|VH%RWIK;!lvM-o4*n$LNGJn*IA z_(O>Fw-=?`ZMXOFcH~aDYGJS?-+~kLkVmja`>2sIR<={R5$y+rb}4TZA&1Mx+c%m) zpZQ8 z#Bf>K`477_{nDhX4+Il`4$Dnzai)G~k8^`n%8U@@lVdKq z$9kz~M*XB}rx6<=bp^UIO!H)c(rAx%#}R3++-QAYI|!Vnp1Mdaw)%lhtf70wL;1eC zA?}|JqqV@>PjdwrNoD55EIKx<-)oXJ#~X<%v+4_?Et0;}SP(DgCzbVSP8gu~=Lo=Y zsBkr>dY8^9NRAcLeCd>iS+$@xI_E9HL~P&F=UeN_Zb&%TXtQqH3`!h++*|87jUd+= zoXdrWRRwyW)hEvafv^ZhoL_9Gr-2oJl9Pxo(=H)RjY#@Zo%c1gs<MR2WeWh*SM>0G{J{UA#-mFJ{-HtUKqf z6J)m5`K3xzQJ!uBYzSMJr19DM0ROK*S+(bXCZQIy(P;@`GhMQxytu`|VJ@%#I|pt2 z896#AyR%_D;-@6`kpC$6_~p2-2UuFLkolk4D1jQy6K==j6L%;2{~f1l2kpoa{es=C zpROOExmJbapo#v#f5$&*E7e8E@N&8F$Z50=s)qCzB+izf)Mkw9B=vHc!cJh~yA|Lk7XYO5JynTnI&9{Q7W-KC=Up6V zLw0+&XP60aF)dJ`;X8m0xagGJ3B|oflN@RDY4X2#i6Gd2^M~7q`8E9ihRl6?v00z) zN;Vxfb@m7ASl0SZ9kkKYJsc)fndmM)>9e78u#Y_c33oGi<~y?8uN&io-5%UYzCMOg zhkbtkg(>m#2|b(Az=m-1NbB^R1eO={gfx>1g&Y;0K#qkpmeBQS-!yk9LVrN8OoeAm zF5${*Oc(|PE!>NkWPqruY893DLpA;ezyK26yA!|3Y zw>@!C6`H%{g2X1`VNAQwdS0Ef5#sE|i%v$c#)0@bmijwcI#}k zI*d8nPN98!DC1g*I@kUp-iUnEp?N6jV#egMTjme~8`mGP&hd;fTx?-ClP7fKVQIfnLdxYh#ipQJldsAF}QsZftni5^R%|bS6=4?0KQ^kg@>HL z7=K+y`q)HVr=vj=K$|{2CP4C}T)ML;) zruwwPOzSgMD??E&?D;@3)C=l+VKHPH{Ff<@L;&M*<;V@ckjLs}Gy2%Q#H+B#^JI)U zK|?L=DpOU&s&u)ngF_DtNh`K@bO%m?A-XG7>;1PcNV)?ZtYA?#m*(j2yT6`J&vujL zh-H~0Y-riv{_Z?D%sKIVY0uYyREy}oqIp8dJesEm{ua_JU!aW5o-80Xc3qe`x-ALp zd8laa4tLTsJV?#&_NfNx$O3i__aIdQJ51u1WAM*p%1E9HB3I2h)q*Q(W9Ah~769nK z+Dsd_$9WmBVHeNR^?3Uz4Saw+tHz@7wT;`@)l;H%;VPdhY+UOEj+^!Y@zis(+DzeA z(Qow3|H)7Q)dCe(y4Sh3@S1Pt+7#PH_6UO0sbor3O){>3q;;R2Mn3bS$_t|)XSPz% zQSCd1Loq>xotcu&xIqV)-oH)Z5CqL{^~*&-K2u4`bhN zuknw|QL~8xM&<)?cICug>TmE{)|)NMZbaC$kGgb_k~ClK+hu4}= zPIGZgU;=gHo}60uFYxI**vde!SRb)V;F_17Kf=ebs=0wEKS`K8BO zv+o;B8OXN2V{*nRAMKR?z80+^QV5t}!izBdXm8%-{Rer=xgVbAFCn2j;M_r|tf zX`@S{jKT_}{4LUrJ}7SJgWA35M=&nLloqQOH$u;;wD(Sn;WFIjw`VW*VCF9QpwEuT zOZs+De2Xz_?>k*#)BCiqBlF~mnFyZ^$Ni#wW8(jE>SAhWhlT+duhjs>Obwo{GV#o`jP!%1S)GR4v>if zRB;^Kt4DA2j5tu;ei{~uICxQ?cs~&Vc1n_o^mqSNtwWHQ16lJs^|v>Fczuc#&WvA% zm{ACob!~YPKD_+Hn~h8ByFe+q60_6u+sxvu824PH?@PfTwyyF-Qht2r1BR^)Tivgv z)vih(xC#922pER_`aY(Cqxt&u*6PmKM-a_(Qu; zj=AoIrG_qsg@&$4Z4n3XCEa>Sf4z|WfATMNky1Sk3~9d9h#S?jWo0^6#O?PuN!vDX z_X=W10JGxW;~DbYWaoK~{d`~Fb|%+r0JkYK?dU5?(S~3gh3i1YGSYQb$#0NvkO78i z79{#H8b>?EvU55u-?B5fG=k@=jRN3#g3cpg6jE7JMJ%62tAIfi^eOR|r zT(?>Wt!@oaJ3gTc`3XO|WBDon$%1c~JHuWfmW^Y2r}Eol%15uW+NrOzuI=x}vhdD!|e@9xw{>eH*nGIvU zZ|3)O=Se7TZuOAOMJ(*pIbT27{GJE_}p4aLIqo69)p3>2&E~qc9|7)Xb z_}pnFzgo~I z*=1Fr&qyu{8I067-S@sBIJkJC?7vc6jaW_h**+^{Q5&awE<8Mcb$pUPx}%PMbYdQU zdL$o8v``Hzh+X3MWiKtMz)=R&e0Hu(8!iZxoU=T`otDM?X`mI=3bY0s%LT<9wBidF%NCY9RvPksjNpf-V1Q*g>`tL4 zG&$Kqs-L*GaVX~a?mOkCE)+?PptH0k&|wwBTqJZokT<`}cf>|AO}fLCcK=IK z%y?=THPO~73hj*_>`#<9Jh<X;&AP``a-QeBKfGA2h1BnoXEB+A zA-2ORD{e$>D0dt=XBpGyR9YLAJI6-A*0Z)VYz$0Ug|k8|2mReU-FupU*_u1X7c$0# zmQ|UlknJ(^@T?^K4081;>PRq7F*m%-RXM00NEONUpz_#q#y+_}1*6nij=l01|9IAG z?L8gtmm_NKUC>th>bwouCq}$VRko_%YP9SCHiTbHLlx(u3$L3Lqx4!ttnvHB=A7n4 z|H=!lQibo|7mk`*Vm=@5FSoPycQ=l$t;2)IpY07ft9&DkQ80=^q z99XqdTkW8|ktI;s259Q;@YUD7U4Ue6$|z@jVohVcsiL{qy=Up>bZu{LuVL@T-l=qf z-k#8RPRx+Uwj(<N4M4e&MdSv5BGmEj_+C7$w(d$oeSqYJ|c9ZMX1y zJMYZ%Y|(Q}(ewPDr^?`(e`ju1J>sPZWae>2y9C6p^wF)(bOC0oMCmliM8aNklI33> z-E1BeSo+VElOi0jzW#>gO@@nMgeR)t=%Q4yZuvUG!HHEbIvCTV$yu)dWHd?jV*V& z5us@Ab-ZbBb=95XIZSUZ>VzLrN{G*sYBU4sz<05GRINCVpiipuaDIq27DcirzF_xP z+{zRW*ak|_NvAeOT(xQTio?FnPnhm%>re7bg)9_@-)37qE?$m7`(1iI*#OWl$@ytT z5Br73*4lGi#+QAajA_{~;p?oceiBoI*m3Pqo0)0(I5phL61{3t5fW!}m_4_)M?ZW$ zPyWsP9m%02mi!8eBOjL^zF2AYT!=o93V~n>P_IuDfT#t)vo&Wdz zio_wzZQj{NBEn%X?#O)Y>+Sxad$o(XOIGN*^Lvoi1sg-Fh`2;j*RqPDALJHehf6Ka zPu)Uy!ar)1N$IT@FU$aO`sJ|Y(g!n?t77VtJkWL@VcIyW3a{r@vzrb= zP_kqvT5MHh(j-|FTwq6N3i&*UYc45h%WshF)#U$kMC+jqb9tDM;{Iuc$>&8PBPqxan~9`AMBYAeiG%bR5U^5~g-j z$2@GM3fN1JPUYm|35j4oV~Kw|He`MYoH)81eh>*L^X9boNWbbB|~``+4l8_wBb092bG& zaZV-`(O)U1NLZGo-mpfaJFlxOystDd3&+yiFpyLY*mD-*t@iO$G8yj_k(p^`^>`Mp zw$migC2MeZz1tZ&_#oo2Mcz<{p<{6=7g$0(xtMR1N$s5`Ky!bX@vmm2uxGcsYreT1 z>{P*+gc)|#74MI@71<-@?JKGrgb`E2BAGg+$ zj4nhOK8npygy$%^9&rQ17InvZZ1UttG@O+&4;$&hGfkHYW3sNX-8SkX3XmSY9ggXw z*1zeuEK&+gePNyLVHoX4Derv9cBX{0EYY_bdE(bm#>Ec*ld{NUC(!v7qD>2ijZKI_ z+P$#Dlp?(MDAyZATHKA-38-<$8qGFb6VExEfKs5jQpkaO)XNzwg|zD8%gL`zZT$St zXtR|;7lZrU%nGk=LZ>kaY0o&EP}YB^(sk@|4UoQlR9$YzjL2b)9{-8Cp;+*ODD4V` z8@B8(a6q2xjrMOS1>34s8p?}iuD!FWDX!vO<;u~W3?oi%MX~OZk+C|=k2AM)J;2G` zP2$RkACPdv(q}4DJ=QKM`d7mjtYt96;2Np~wm&M5N&*z?8ZrH9F6c%byX&dZjIX1I z{X9CvJFt*hALVXkbsi#Uf_Se92ZdL)LYBj(yH9#DUTFD+yqUkBA(O#9S(8b8WJ;)= zX_THP#jyH!kFiYjZipAjQYsZZp4DF7;u^n^UXlODCI7~|fru%Z(Z%eq6(@`5hDKn# zhRc3p5(U(}e*5!FIV8=PB zV1rmyT`=qc__j>NKy##V#MwDMi)cpjy|Idu-`(Q42smNzE^A+$JN|RlDc9yL4z(Zj z-5=}d`|}=|4I#kB4V(2)OC#=lxdHfr=E5v%d6JLT>qyR_?Xi*}|n z22pm|It#v+l&S4r455?y4x_mXSw7~dfHo$=9_t8{ zUo~G#eaLcfcz?GX?|guaS&wofefNGK3Zd3knDNySVITK)UNq0@RtT(k|OsSsgirKTFhz9ckNu-39Yj@}M5{&4+p`YREeBGMmbU#EzeRDw9*QI)13Yi86nuMgCq`q_PIs@80S0 z7(J7kp=-makx;kGGgmpuEYMohpD{NIBD;i~+#z^gn1#uNqxrHPfWiDPD)kRM5T4>V zf}*g?s9=4ueF`jR;RPxj!LVSvHD*e7r>Yv@*N8zWQsD)?Xg^K`Dbl>0sLAoZeM{0j zFxjF_a24v1LOJ{?=+6G&N2-y@L6euBt<=pC`I}{nhcX-Kg^%=v;8er!Ne7tUI~M=# zHH(fg6?h{MX2hjOBI}*wT%$3q_Eb$yTm7`%jR_gRu?4dIwu=a7*i;O5zpA6Dso9tf zE(%@u2G8f9z==&VyoTw5U}i7e2SE(NKWBpGZ!$id3%X=+C^V>64VQuF5fZbNkK7?E zqN?YDcjEoaz33o8thLas%Wb(iZUK)BhTv*K$;Thkh|h~#b}FGT6$=O3;EkABs`!T2 zkuc3m8B1s%u&B>}{Z=>&EIr-})H$90JzU8v5{+sQE8ane&DCidht(MnG6LJ$e5X{$d8}274G~W7^G`XNPNark2X zZI(vg_yZumd%4t;mC6$mLm@cTVe_B~vy6+OX5H7U4>G@JJQu(e}l9^0<%9 z7;cJFnb^Z-9;_8PR(<~IdT$4K5mG(9>wLB2e5Jyu7%QOocOhF{>8|3P-_*O~#)+A2 z=bLYIzJEDirI>Ix5yfzx3~J?`w!SfrauM~V{z)0;SwNO0io%!I^9jJ<=jW57Cz=SF zHhm`^sZkQ+YU^aWY^n$5R-lzT9{g!LpI_~%cZ@#ekmVrH^URjJ`hIHqV)J?SO(kHk zH&^7cmEsCFID$#p%B9ivx{ElyIeZ>>tl*>&bML~?^98XkQUjiiPvBkPZSdPOn{)iT z;0a%iZ4R0hz%OU2hw4~alUX9VuSz2`tBOYu=d_CUodelpLsMlj`%Q3Vt?^9MR^L(YnU?20qa6(JXB>MA)7A#m>; zrHD1n)&{JP>4%qetmbcEiQ_D709^si%ScwU z<(~Jt*lmZg{PeY!$dJ1{GVEDEwj+eAdpycpSI)98ZN}QaI9Ks$1ph z3X8}o^}8=!f81yW^P76Q%G_p@sjXaOyxfTA%Z!yFbH`ydXSS3sUC?d`8SU1;;;q}W zoex8ODgEt(oMUlpOwvSmmmGH&B^|TPSR?LFQgh(twdbX5e{=&M^What|21U?U+S}g ztX1iggC}-3|2cM=`;&nfMT3YnRgaye=4s0uACv9DFjAaydmooT=aO{TvV=5EY#T%p ztR`n5?tF6BWr|x-A@0$%d^ZFqMTr;$9Qv+vaO;F9KYeIC92s0AwtRSQoD&*D%*YO7 z-rD)x9e=&BgvI8;P6Ru=9*%pC9QOu~)0j{#v#GM1{q{HcR=JFCMX2=Fh2i_MjMZb6 zm+_|GJd3O#K%*zRoeHQ08X z8&;Xq^Suu{R5muWH>fwKS6r{%b;rF5D3=)Y;_v}hw}}-zXs;Q+9gf1RYWsCiR7pRA z?HXdp*9d&P2~_Lamv(0V29n<>jWgw;;uD1sltt*T`W*r_NZ5`+ra0@Hq@gV_ZQIL3 zVr>zA`qAWhMlnDmn}Sd99|*$e+4!Es+!NoDWR(51@9j!U1-&4nGRK4{#5?DjHypzURwvI-M@qr5Z4+o#ky2h{tF zLIm-j3(%xVR9%F>zDw5rT8hNI?Le>OP=%YQt16!<8lE13MD&m>8~dEI!pe{aG3<>3*_k>Tl+!;zu+ z@S)LXXo>2m!PXYUWS3?KDs-T`Y0`t4#*T{~V*+l-*yWMMdKO3pYPeL`lp|v%6dp^x zUp7J7C0He-Q{m@mFM0saV=4G8E(cR49O152BguD-9Z%n%=a`?m=D5V z=Yl1)Ne(YMIy6%J*ZRGFH+{+Z=2A*IxhwKLL2cdQiP}#q|Fp4jS|q%cL!SJxX1mIK zsq;F{hE-aUMDQrf++z$b@i4$>4of!jN=ax&3#+w}>8A`>6|i{(x7)N_(~gZmoP8TndjRpu)pu<*YixU`r;Rt-U|kBK_Ld zZ+$ibl5UnNyItd{wca8UQr?C7u4co$K?z;lsxRK=>dz_f3iL{5jHwVMUzp~JV=O89 z^JZaKq28G>oMSh(`wND-i)BqWdcs#_UkcBI)4(g=FT&DVDE4>t+;ffWB5IQ#Yi+c8mNG4F;ej#xuP7_vo{usgU0Io>@H_v)Kb54B(nK)b#9ckc(6qBeXC zmiNK&u6q3AnQC}@%^ul_k72U!16Mau7PVRIWbB@NCgs8E3KJu=dhJ=O7kIq=k;^-Ac(=^>-WjcRV! zPLyYI=ssQ&aPz2lyYO|+c5&cJZJ{PDZ2ILt&Y>qchT*x4gOdEQjsp_{7da9;TsBW= zCx4VRXV$RRwR16?s88$Q+INS92j5!U1?_0di+tAv%_f=>4pl4dE+jgaRZuPS{;eEZ zP$IK|^sy}1m|8@=?1VH$r_ytr?~Hs(0$K=&ku=fnLuKG3k9yIN_p*{hi6pfwjPTms zv+;nAgSz_3urFF?yKj~pofPp=*Zhcq=Z&N9F5ugCK6f_L(~QMxzL>aZ zpB3ljhgO-7jFN$73Usf;rQ(d<--??l`K z#;y9d`O>S#o%^d}Y3@Uhh2#wr>O9l#pqz#!t3cki!uazpm&XsQR=aiT>#U)Y`EE=~c%@^&zMn`_!G_|U}@6{^bQ5?I| zryO$S%YF%Y+v-yj+7|k)D=^&wuQJfons!Y+v~}Zhxy8&gq6ssC4$9ZHpPBL_!u{SX zqF#d*kr!?ld<3cg{##nLWb?=54Hu`^+M+uPOlcmm+GQ z!p5TllX{&qhdpXEV^c7mqof>GVEWkFq#ljC?R(@E}kOCm$6! ztlFDw+o&$H7A%GGblj7n3+re)Qk*lm|MO5RTMI^1^l_y(wn zV;+2~y5Re3ue_!w8GCKHYB$Rbcjs@=ElqQTcqXYm?9y?LEf0odMl)unM5Ai&&*LNq zLK>T2cAqO(EF);94Hw!J>3-yj(&5GVMpA1l%&iPq8*ponP1)WaK9lStS2Gak#gL-! zI4URUNuvO{hF&>zlNF#yZm9+MHz)VaiTge4!96M|IH8eDU1XP;$d>rx*vF4QWH--3 z@Ya<wiBQuQmL5RG z=yV6L`Mf$`)fy18&(24L8}xO+Pho4d@&PTZnS9=`_7GbujH zB9!@iVc98#at6zyPmfG9QVki2R_;HnwVGIoQP-I{CQns2h{!2T^-jI5j}EuuoDt7k3+gBIQ6`y_`If_KeFojx3xJV zPPNqIpZUsX2Who*T7Fa@0dGRm_?&+GRU3mhm`^&PvQ zx#SFPKH6`TV+ zxP7+#CwA0T0?xaTvp0Q|E|lBaXX^Ky_u7zqJ0bMQi-)Y=fyCz`42hnS(cs7G(8opL zaT|YUgek!LAc6AvE~D0e27!1h`xWcGJJvY_eB$OOaR_FZ=Xko)2ViFkO+B zB?B=Z_0&qsm&kvUwaGz02Bdu}H`{S~CGs&Ebw#hH zeUex~zhgGC9ln=>;8RuEp&UQieot{6qQ!Em;q+6X; zFWfZ|HtsBKL|0J7x>!c6tJFEWPVY0%&$_-c-pPBP!^s>}{ASRulE^^k9qEGmuFlc$ zJ<;jLI}-ZtVD5Qn+xEjjXI4sss@Jy;*yv?VCC8XV!sw-)VovLa=Pk=-%sKx4SE@;t ziRu|6(_K8)R5ZCx5@$H!bOAx!5yHzI!tXp%hnPi9wz z&?WBJ&+?~YpQwj@<ta=w!jWpN5>~%!>|`Iwy+o+}5*LGUd>Nh85KkC+!LZ!} zS0!$SdMh+Lu*{#Z(t@eS`L;yu+W*ZoG$g0LyIs76@=0`P>U61@l`XJ=` zSdRrBUwU%z#}5E&W~u?SJI$*nz{vILkhfp_4TU*a@%|F|;&NIjFME*G-xvqDhm*ay zI^@eCdW--sJ#|j~-PX1CGd*>lF$Vo;$J;&`azAR?pp4(~8-{}2b_4C3E^p1Z1{8bK z+;_vt1fVYn0CjfD;(8^gr%^}+yMNvK&gYj{Go;`sKo#ieQOpq6$*=?-OA9m1hHN*j zcEvc`+b8z)t$)OhTfgZRr7=67<5`x-4cU?k%dR2t-k|=G=GdKX#bt;X`E_>I<&y}c zogU^30t7dt_4`L`NFx7&{~gWZ;t~Xl`S8v#<2MGGWW;8<>sGA)apcLt4L#59c@kNz zzIJVF+L83VcjxLwYto?EQxtT6+Rtf+`IBTv=e$@=YcC-dw%!f6P7~g(xR>g;mgVrv zqvZ$TegDuN4-4Wgn!x=2ki!$i3Ev1b$hwxrqi#uk-Wna5f)m{79oD$ea`FSP4n`6z& zxlX@U_^O73Z>`CVP$aEX7oIsHwq>GPkl53ivz%Vtm-JhN!h#mX@zcFMhots!ADWv{ zQuI9|-gFt#ydZjpjkQyZu|Lx(E}-`Z{Qg)QUkcOunbkj*JLiY~S3Uk%Xq1)-r+YjZ{@N6#2NP*rLiyPHEACdpb9nF za)n*AZM^ycXcd1_tcJ?FtgeisI=-fJ#h5k>WBBj>&<%0 z%uF2ls@%mmkn8Vf>SgdJ3z~T)bVA~L69DHHdH5znNXqH=noVECG5+4$W* z*x`sVF^m){i6;%j-0wKjU1c>p0_F`uTDwTYo$UGHSf0W^MsR{}sou5+T*5y3J$#oQ za~oTv?|}T(lltSFRh=``AIp-UCW&)#KMNThmW*}Me+Qj35lrd(Ai4YSHWHoE(%gwV zEZy!$BCMFe3>Z9nkk$C%oYxdWrtft40p};*TanF08X5t=f5RZb%s(;jG7_9h>w*2% zd5l`?$pmf}aR1}2KlJl}`wZZ-@Ab?|VFu~v^-49|6SJNep615+&ork89a-Xb_cCCs zb<6=$-pn|Zp%qtFYz^1xV(hIYE<6 zk}wKqU;dwJw2hG7D!yiH!&?6gpFk-qyCeFBm0EMVQ~8litFec~sk%ie&*`n%)j8-M zBHBa>e!Sx(B3#^4aZ*vN?agI&+hZu)=}Ja8+~1+@DaQ8cG>5m1V#u(fpLeQ>kMGk8 z?G2CPm_fA7B*SWiuUy;sT8ek8s-zGH4$9?5Mo5ZD);I|cwIK7-CN+fSX?3S`<~XY% z7{F70oE16XJ}!u~jC~0@T6B-y{`7MGU6k{Dwe~Tr!#n5mZVl9-x8SF+EhR^XOqS2B zI7vhCm)Orq!nPt>G_H~bi`73kFX_N2%lCgEW0pPvz*N49PFMEZC7*~DNTmMyKap}g zfb8}#kyAavme&X&Q+MC&ln2)zJoBWa;(VG$EYOXAum&1@LE1+ z!|w;EEqp-7ID?0p5NySIo5Oq;6UDZ*6&xL@k7j9J@WxVpdkn!fF%SLsB>W#6?y)|) z_E*S~q^(T#d+GewtUD#S{X_3xqm+lTfBaST=G)Rz0G^<15Cc*>ku)o_YdIzBJGyst zRvP$Dm=#32L9O2eCu@iT{Z)nI9fk3$Zq}Be56c;B?>lXq6XTj+^LAZ z{(_Jd9~ZWD4+I`L=O=o*1d^zrzDXO}0C*?1*jbIePKko`OZmikT5;29{quTVf~JVT zecYftR_hd62w#8M+N(zW<$x#U8)HZkydNxaEMG;8wizHAQ>Pmd{isE5Ylw2)M^1qn z&4T6knWmp;kD2@J+k)IqBBIow*I(6*Ffdf416lr8$UXe$KQ-M_)L-%ZEL6H)rIq5! z8Fpu;PM^a;KTDaMQc_ga4l;3}k1Fk`T&cw?d3-!t?UY;rc)k%-MKHf0M&yZF__sJm8OiYrUqo zV7`tu&%M1&*rFK93AY)jMT%SXS0!8?`@o5do*WZUwkD+!s)f!Wc4clyzI$wH!3g2R zD$iTY;n@0cf|G}8*avu>Gs>d?^GQWvk|vhv~Cke<%d!xDsyR$>ylZORO!Aj zT%d_=p21RSi%c$Cb(19qcJlaKcH5#;6@S@bB47kgjL;xtvrD2;{%RzHQJ z`R$zCdH)Rs+wQr`;8;%B@S;DETlC;lPEkTdH2ye-td;=@AbzvIZ$@8D@g$30skJ3+ z_<~;VwXbc}zjHHlPA`8iV45#2_YL)-`S`n7!$B&6y+3w7i8~{$17t^P`!}-Vc`h1W z(4m3bq6c(dZO;H+vgAsT&ih4q)6)g6_M)5ND+(sd0wF!WiJv2Qa zen>u(Qs_Ktxl!DO+M^Jkf`(&<@}qr$8Gb`Su@ZZ>%5-oK^^o=6ZkNuT&yob z9OAC`PM^H1LFl#rQ~EBMp< z@2Z4=rw+g)hQ+rLh@_ooUVldGS2kNUg4a12;NJ{k;NJ+qUL^y|9UCzs3FGP0TmSqZ z@Ru&b;*H90XIe7L3ep*|5Wya`cwjY(~-3yobU;(;lO9|`Y5zKO_--0A=LaEo?<6XfbRLIM6 zK(n8JcQ``uW3QY>Ue#iUnbsNmBdE0nnGTpA<22ChEx6G#zj&!Us|Yf2pORk}*(&$X zGSVJcN05leAdmib~XNHAFF>pk(R9jw-$O>h2@^~9Et;`s` zp7t}{9g2S9toSDG3N%>dCCy zGex;u(#Ruf#Pl>IOz*AZGE?W;{rPUT0=~(+0Q-&iXNz)O%*>~|wxGRJPBXy|^S}q~ z`+r_i+Phy*%3=3|<~=oe8-Mo(h0Q9;p3yIN{!DawFy%vbv4y)c@q7TJ$k{n4_JodM z_$jYeBzGS8x6HN&7@|H_9xfW5^x~H#R9^;All9ZDUOK%AW2gE<^KZW6tz!6cG`(Cf zu=g$1rZf&n{elw2ZGn-^&5p0gt=f%$_VxVDR(Upmx&1cU_>fabl(*w=-f!()_#Xhj z{L&#tVqdLnO9=Y{$Nnzyoy1wHVva1b3u$>%WZ5Yk`SrV)a5?4+yTeE8uAO}sep7C_Sj85aqU#4S66}hc)wkyk!F7JF zU4#vy*H?MgqP&j|WBnpKgC5B zOvSwymrQ{{n9_yQ@ISAFuf4u;X<(TQQTTTmLOYyhAf2fb`uZ<=7TR;pI5JZMjCWx@ zNv76Ncz6P}!z}~zR+og*7Z$j}N5$+`rn8OpcAJ5P>)%*D_sPC(WGP!;@Mz65NK$!f zt=|Xj2i*bxH!cT%5W1eEba*4Wo&n*+9ad;YHH;Ung&UxDH;1hzT>DC`$_+voT6-4q z*!i|rrj4;>m>-E9=TD#g>I*tnYY>3`Z8~93(9M=ig68*MNUoSNdFw^dfJ%<6dP0 zGzOrA%`cw7M4gz|TPSyU@z5?G=>YD4@uRe2I@E$EY62lLg-KxNa*8{5uao2Q+ut(sGqAD> z{xl~_#VhVr=u=RP`Svw$`hbUr=R>X54c}fpaX9YTm2uxb z4?!0@dqcVLW$OG5jxZN0r$|TZ=!~Xs@9EC}2Sz}-zebh(U*cv2;Z3=Lp3aWr>;L>F zjI?L#_UZgCm-5Mz9CC8)g_gxP-!-pXwd~)7L~Bv@h6D=p(8biW+NM{pJ%X*G{mjf4 za$Gf)w1#IHIPIg&2VaEtxFI@U_#3nJk{L4v^e?IVTSrW&_WFuvYvCJ}kv`XMXh?v* z@*EA88Z?JmHg=`uSjRtUsWteN8r~kq)p;X!ZP?ePdh6HvP0ZE%wyc<&Q5H_4rrKAj z1Xf8qXEq?J^Ax z?_yf`mx_~S#Gh;Eur5tyWH1vic6D_o%}9Iy%#&yO;C>p9OL*vYJnz(-6FGB^23)Ba zS#ct+Y~yZr$B{_mhOv`dK_rRGt<3&@+LOX*0-gL0&lR3QmJQckI)gMuJ+&gzy}Z1+ z2Us9olF`}sXDfm(C8p*L5k);LCwdgwc>2*j_hpwqEFbqg=&~p#W_<-5($AqAdA@GtCYD0y*{ za`e~G{1Vo*>n;oLU&&9qp|^VH10Eo zsaIxWxXaJOz72-|&pWMeZq*t{t8O{5_FQ-d^XN%YR(1>OQJF#_#fI}q@oMn=W*tnx{i}< zy8``l7V};%DsS%0&Ma-Xv`8&Srzo*0!|qt?CRzYVv`M16>*#RbbRz;y=?EyOB;3Ph zhWVefe!hO{_^_Sp#JAXzmwB%S8oJJ~`9lS~Ev_Z29w`ktGQ|X>)!g6_{V$AEP7N#- zKjG_B!S}a;-UIiaUu|MRSGCK1)$(%K+~lZi@pAAA#tl1)>%J(z0J`VZ`|(j(zUkzL zoopZQ3Zp7!Pkk}{v`_QBu=X=8+BOrzk|m?tnKJ1(7ln)gYCdB1MoadH3G>}2wf-pz zQ(3jW>0PTYOXyv~>>m9SLgUb#wQkf2vxJUzn znTOEH&(t~pko}&7U0X+LX)1ACv%H5B$7%2LAM%BcMVD>HmqXJhZ*U9PA7z*5YfPUT z!u!fgPdT}o%F>vlKT|+fg`$Kb;+kpX4lRFjO-fDL#x%Q=_|grG)Ef2m`|QfbS31o} zc(-a_YRz%Go5C$=vu_G-sW{r%=s6nXmey+UB_t)N_=a%n~~{*uu; zf$sKA3v^58TTUDqgi|@(e5u6uMS(y!m%Qdo&R9Klix=K;RZh_FHS0@U9ce#$>fkdL zzYcyI`{-umlJHKI445OKUC_m~`qF#0%E?bbv@_fID5Zw|wXY2KACwb@gkOh!vE#;h@>c z6lHwj`c0(Go41di?9|oOTC^+SKtfQidB6_0dw)#VhQ=H1jB$+ARY`VN(}t!v=9=E# zy7f35vMqXtYWbFyQp*Wd&4(=~RK9W8@yKycHJRP=W=?WfYxvWj9UYHYL@?Gbjq!X# zPxUxFw$e_Nw4g4>a7fYhU-wkZ_|ALW&m6C%zv;zJe^Pxw@7Pn9D}|R`U0tU!4|>)% zw2K#umZ6C>J*8k(kWJ?+{^QYtf){)xjq;?f@SWG%E6GbcE@VGXE!U2} z&UC3ud0ne*YX!P=e3hm4t+tA+$Qwrc-?q<-KFQ{rq*gu>pK}|}6NWc8wI0mLGC4kR zDjdS(w;XqkD)=-1>D+wwOz|T&+w*`H{9(l3%T-yNN{`NlzwPxW?w(r&B!k_l(<|OH zn%e2nuwb-iyq^YL10u|b`ha+?^$44MoocEHi=oRmi`9e@f%<*iit)=?V$Va{Y?eo~ zm~6;@ckS4se-+=kl`-tBwoRbbwRZiX7C;yu-)8ed;|MzfNR<{)6t|b#$g?tngbNsJ z)r67~wE8OTV%z08tj?n(yzvo>5@S8JL729UDcdz`B=Yn4a8R@iGdQby@G5Q5*GQpF z?e*-jOKTDWPg3KvZ)LE@WM0zPZ&kbO>suK*@r8y=+}+i*;-B{Uw3IJG;Fja>EvnAO>(||e)-smu!t^$0w9sUsRI&u z23#E%8xoXZiG1R2$c>yVL?VwKakx4Q)ZNU?iVsPFdiNi4iPHXNba8F_G0xlU=aPV8 z?$C5tBqtuNos!<%1Vr+A%Zc7d!vyl~Xp|?y8O;=**)v*Oz2Txx{QZ`|;+Gypl7K&z zkDB+Yxgp8#>vqkWh|`i=Ar z55Fr34Dg`Gfqo6gNv#luzg@*;UXF(4@@erD-o1HsSFc=f=eJ$Gax6M)Z;&+)5}yNa zVf;=MV7Gqq?mF?y78|ko|5a+{fl#jf|4+7*2$3a}rJ}Nqbwsi+Gs+gBA=}u-GM2Jt ziQ^ngO2|^mG6~5xwhU67vP80u33+TWW6d_0-+kYlbDr<_`Tp_z{06qzd#8A2AcUiZQ={v{WTPKt>32AlSXos+oKD z73b#kgY!cGU95N|9+1W8`d;*Q48BG$_xMO47dhG=4cC6G4kKx1t)XGNDQgUf;QFS0 z9?K;13q&n-611#5d5xRvSluQSL{u3^J&}Exp3H9W@M##CnPx0;}V>LI+dxw6cm{4O1T%-6N{)XmovV?OWn-$cr00%*d8#CYC;&U<8eZLtbi7 zyvfh(l6I*mnGVL*b-8w-P>sQf)Dlz zO~1f5a497evrA8tP$b)vV@^k3zRXL6WU+E#?LsXnlr_tcu}#O<`0kNURk^lKI@c9P z?-}1cIud%4o10tkGx(&!IXXr2-C{ry@4f|YwmyZ9kKOOGrSI<8ou}<-DF183*7KE3 zz%j#I>lHKJH1ChD4%V(NTK-4wRaE+3ljI%fd95~V738fuQ94Vp*Co%6w!sp`b#%0S z;EL=|2RCeQEexr_emrSM9&UgkbB~tf>7AFLdG(3D$cXV;Hwi#Gg5#J}7!#9xGWG*4oCUA)_LeoE+06yl{3#{5VvsCB2uzz@rf_PkFx})ny4FfWTc&v1&7vM1y{n>|@ zoiEZku4ii*osr4mm(b2p1c<4nADTF_i%3g1Kj&ly=1u8OG-k{*B1g@ zIj$ErCRV8Av?x+Sc*lZ~iZ2;sHyH6z`hyx_u-*~{f(`@^;R7Jr$(Vrb>IHX5wS%ae z7?K2p>KDmC79UDTcJ8iBYXnBH8})CghdUPj zt_ZMK`iE8YnC@KN`p?uDU^5sjF9Q-lh|7jET8FMsRl*+En~UDTg5Y1-rX=HU9Yy`N zoj$T*_&3gjhSGt}ke1_mIfQ=;muS_3?7yONLaAM@v+<_WR?v@BYJGI{U zwPI_)4@yB=7Y8fhJNK>yutBkb$se`+3zB}u0bKYq9bOz86>grlXJ zRg2klVZWp7dQj+v&E)4CyTryXlptH*1-ouAVu7}|VRFFZy#rmT>Qtz>#LQ^o>8hQU zM1NnHwy7Rp3!KTHY?*4Klh^GG4u zTnG*QIK0+ZQ9-h%svv?LvBB|`ti4ZUc2?qu?)83oI_6ff(5w@?B}a~oR2Le=t0eiq zCDoHFGrGDSPRsk_&#a;~6xrN5pL5lR^DP(f-=!gbQyWl7dhR%nHOgWeitq~A6TtCY zvT8zR-&@?oWLuTr>BAu%BS3i!5A}FclXck^e&;lux8kh^gXQ0R7y@1mx(j%HXq)TQ zklu5orDGFdJ3u1n3j8p_oK@Zj=g1BVeM69{7D#W`j6Z!pBihE634`%Y{vD*OTw(oY z{WpxB9n*sWod7V$9<-g47LMqn{6U%CU+G+YT^(Uc0vI$8GuABr@VUaatUV%dBi!ke zE5e^vGTPho;-b+!ZNvPfs=K^eN{eBa++_JZ6x)tXL{(0neRWuQ&^jOZQ$APqv_}aH z)_Pqr1I8Aw{gM0?xl`=H&iP_Hb_jJ=?w)~lyG&FU2zmNzwQ z=7=|g*1JpyVCPoRYdW@6|M0%JryV|Li#qBOA9xupW$ zW*E(+_fi(Q0p<~g9b`b^bM!fVs}iv6f9E?Cvb+FbA#&mgz{SmvxfCvzza^_5F5ta` zWT4+B13}FtFZ{ySure#d><(6Q@{L%t`3%I$<|sf!O0Cv#=wT3sZ#WNNXz{XM(aKnS zEo3zc*SypPtnweRSA}*$02ZIQ>kP7377dSi|8FdA%`g^6(gFKMzU-d0% z^e58mqbVvNXq2Q08MCK{by*37%5Qn2ju&y&&x1D2z>IZ=?&p28 zWi=`vSr-FrbD=9ZCrUq~{$J`gZ!RgS=7)Uxh|+<&Z81F`FgOILTibaRG%$J#Q)~aE z2H5ydMec=#==BLQdVdi3KT-qQ__Dx7mVKC-#}CRpIe=-krs?0>c-t|zbn`wZRrfD# zEU8VYr?Tv8<2+{vAOSeGDXP<)ps4kuo)3H_sr{Fz6*l%~^Y{ssTldi$*o}G{4t678 zTD~E?2SyO6XK%&Z{SARpKL^Wlupu;!DJyj6^CbOTP+Jq#qLY!lz%Yezrdt8_w3rD)IWhf!I%y7ZdcI~I1M6P@=W4Q|jR zkM#_to>H*4l)rvLJwPeQ6WKb}F6tkjM!|SHTbamlsq7oavnw*Jj)k%d7tV+XG4Y~Z zP%Ql8YFKkOhx^a78Ku1Zcwl-uxK{=G*US!IJ;DsS#+s@lDah?Lx;g)^qM6UoV`nmj zM$p^3FXy81y9}_AUUYIkPEYk~qaG{<|2TgvT33`L3d<4tdfW@PtNFDLv3=|i2Y+@< zWaLo%>Lb%) z38R697!jMaXmGbXhrWU2bn& zupUf#`ZpfP*IX+;c8ssu5a4_(rw7slft8_J{aMvnDv-&@UY+oV@uyhX%segZ)ncno zr;t9v&uaR_Gn| zJ!aM?h_ zkh4e@L7rWMAz< z1^oaS$D4tmaa{8gT2@AlVN{k-0EuG`K8$YCwZwH!a21(N2zaCdi=X5Ex%BRaw~5u( zW_e>J_3Vp7hWnQ8TShm@K=?W*&P_V5_R)Ku`cHbSbg=Ga$8&G;@L0vF-?H9S_(sZ!CyI#=?%(;i@Mp zKvMyw3or!8)T}DKb!u5aE*szSyIcvy6lZg~sI%g`*+LNT{d9V}IMP8eNFpr12>7NV zT|O3Hu(TB>^nD@dCnRgD$kUM{$~B*(@^6E#ZIaQ%r7DGm`Ew{IJ7Sr~%3|$lsYAGb z99&>X94jt@RypY4szMtINT?9OZGdU3pL0GE02o0|@qWJ^yMNIjtThzSwj^-B6Iq9g z0uAi|Q^Q&I{a^Dx{u+`|n<-6GX;ljN))I&2?6_KcIO!kjdA#UU`7p21fqVR4rH_>$iTd$ zN?=EY>7x{%B}vVkEGuzvOcgI_ukq$!^=*oh4+Q5&f=BI zYwIt(>w)oO+WRKG1+F~VZ5{XBUMCZ4e$96ZF$Lin?*9 zXg>!(c?d7#HQF+dpNotgMiAavtk9-UZ3W$}MGo$90#vn?kil-?0p2_xS!m-V0nCI%>vC?5NYK8Vi!Y{{M7;-eMlq@TLyNwc)GyGkD6bHgt~~DvJ|SH$W6Hu_4B5wq zC^g{q@{WBzCpVZ&>#yUE#nMr!gtBm-hYfu#4!|0@*^vGD(8AO@iZKTInMw`!Nbe^% z1d_*wnCe338X~+u88+VDG5hAh7*qU3@>hsS@}WS#vd|U>NuXdSg1w9U?cS3N>lQJ^ zoq9jYd}HK!oyjnR@_fkSEC#L{BA7jy~V_%t*MPpp1PZr>8;|c z^s<@jzvZ5{rYpMnaIvuwtHd4eyIe1Qt?=}nCM0q zpTy1L5uhL3hdH0zo4O75QSu<8L@2OH+$N6Zb8>9;1(pFw(zrgL`t+(`Hle@H5T%Og zU+m`OpiU>eN8PNLK@ctfgvJca^4Gzzcu`DQj_k}e+yvyc@GB2N<6JgT>1vE=dUsZJ z$ZAYX_*R|_Q1>sYm=U}#C!j`e?@XK(esk0mQn-IN0(c?X)w25Oe8}h1|Ef4Jp!V28 zaZ(j~DD~)C~!Sm~imPXDIe>3Q2{#d=fwtZ`RyPrTg-K)Zx27soFCEd?^FQ z?V5(|$%54mV9tD>I`c3Yda`3;JGT5=hd(-Y za1Jz%rUIAoG4<>zlNJ7B_UmSN;mpl}>~DREdp#6d(57!&`(Gz|ga7kH58yFjb6X`c z$cx?Jl)9^uvPA9+i|K_EC3*QtsTYiW+^cG7^uj}BF**KGCil6m?I`lP+A^|QS!pY4 zoi}=}ONzE?I>!flCvyeJi9xd1)DdlUhN)1&zCeT*P{bGqoS&N~4-D~24SS7M%A8SO z&jqD(?0GhXVkcGPtfeAA;}?nRxpVn?s&iw95W%oa!tob#NrBq+dA;HH3m<>i4$+3A zi6PorkH6E$uj|5l6!{UtUlaX>d;DRI2pIp|-e2c=Ql&(riOqsE+}bF6qD5_pBIEnX z+oq_ta+PS`z`emBIueG053;GP{}k{+N=dNq;hu?SW8+%W@u&I-r~2FJrRh%dD_mLY zGaJH@pXUBd5z*_zovA(jEIXc4%nXOT3i%bPVeXd|v!qU{TEoJ@Pr`NudPf#r&40GR z^^7W(y`2`DJW2YOiiU`GyfAplmef8NWc|=x;p#EwVN#6XdGPDCdnPKfYT#SAB@d6h zBczX`pnt`Dd~J5i#xe~d9DCU`^Xtd}bJx?CpYm4v(T0D=RopuFJxe5f_}rfvf-Q&? zCAHRbt!9|Oy@$%2sn2PfZsZUPw^tsXT^J68ABU5gUGrI#zQvej*QtrT8-80QN@o)- z-}b($bteg+$UW|@$4h&w;MH9L4i5Ipgj(sz=ahREzgi+r)39T<%p91#>}f^nuhH1L z7jE}$&vfj5VBfyAU@>YG+RYAk@qFFB@R2B2O`Ay`vXYF!0n$mBU|%f!Ov6$BI2?H*Ct5M-~^}K9f8qW8;YI)(CI^7n{4{l#5%;D84Nx#uq1Zb{8zME&H>E zT%vN|u#MxoFHSB|B{h62$~<|jeEUk{n2ZIKquU7S7|au6!D65WhEK>PxAI-E7&bl` z-rP`gdvJ1eNk#jxiEtIgA{i2hG5OE7-d^N~6tWjwvK*)81}J3CNB0Ov%eN+1+j7e5 z%*DkZNxHn{5}A;C;l7dbF3ztc98$>QVjEqN3E|0(-3|DhCkf%*Q1=>4Z%P8K8Ez*h zetscw9tx32?trm6z0f{voVT9yxqLskA@%W?B9rX)mAV-_BJy(^Fp5x?tD)SEtL+Pu z>upolQy)XsghuuHOFHSH|18@c`-Y4IW=>`Dztw!*m+I*E%FqCM4VYZ%q6d0mh#P8i zQ0i5&Wh!#YY6prhF*I1rqUYTeBK?<@$n&3Xa2vKrhOA@GMV%E-ajfufSG#AiRWnP;nYR)yYLp_H1z4UFia@8Yl-&SR@YZ%mCNJ@242H2(X?^z;kd zUP+l>(|JCwg2ljGaE#e%#wfG{#AH=JNFOHxG#(L7VVgUbxpxAw-Gc_>+F&n9Cin5Z z=xzOAbY7VL`8h6fh&ET^dbGc)z8?H5Ade9y0F>(yu*`iV%dzvf#^UDVgO60o>f*cJ z3!L+5mWnHXmEBoo6XDgMPf-ik?uocW*lt_-sus&P!g7 z6ZqBUf`7P*W4CSE%Gk5}u3)xq{8SFSmVckOck*dty;#V_v0l4fJL!eG<-*`cll?I` zzvt=cl>wd7DRS9{+4|!1jw}3}{Jpkbna1l@cJs8Enkzo~kGy0mqWX4MVq%RO7++DJ z73}FojmqM;Ur$tojV_00bQ_Nmw>8H*e@4)zQ5lH}?X%TYJox$k*r`5Wmz4KmK51dT z%43ts{n1f=x6mk;>grmh|{N(!o8MLMl;q#s<);2?8c;G zG%xGEl`yI=BL4(FP0wOhnLhStGvbfqAy?6Sh;>e!5b<;NH(~Ql481J@E?o&cbf_K` zZUhEcG#><5D4^dYO3{Os#e~Gh`u9OFmcuwvY5hn&O0|287+itVYvQZoZFYb>-+>>R z9N9%(V97f`TL|_F;348pdh3pr#|Zt^&)(IabME@#*d~@uV#gIeX9uDLpQw}#Wr8lU z;1lHq!q$B$ppFofxu2*^0Z{I`#XkFO^fhOS$^Za9xOA*+Pj5N9by%1yrm?i6ZhTo^ zLlmtFzEVG z1E;J*=iwmHv==j}kZs}WMdUiLfm7pKefCFYB`6Tp*Yx8QRHGlre`P|9Y#S4$$o99ZMOTX3o1<9xi>9I!U}27LF3`X-9AO zXWS}p8Vwtx&}17U8ood%{{Fvhi$e@c*CmH)-*5Xn(?`byM=oz7jM>H1lj5UfWmE#Z zxwW+j))oss3Wl`2d@rRS(PI}VS-ELYc zvNiJD3ek@fNy;}S)*FbnAAOl0Fm!&rc0F}45K|*i`v*mX{DnTQFM(Ia6^Dc^DTgVy zL^GX7W@Dl7<44oqY(u$h>K?i9>;Rv&rJbFZH&5)kYv>jdRMzI-HElisxJ;Yd1QOi^ zFYT@pZbdr!JlUSu8C$Gvcs0grg5gy7abNh2t=qS6cLso`bsPq7RNiRZdK*f;M6Do7YrZZcZ6jje|w(r0lROgEp3f2kY2`iuBTXaL4!6ZKZ_!_?Pb;?`T9Q zir6;_<3(3bl9Vi_re^lA-p`ktx)xj&w`c-8->1i`ljz=9>EJgh&c}1>?yDT>C*;&A zGM1W6POOh+9Udq`stbF?&hF&k1pq83*DqpZ&J-=deIpqSeZafXJ2vIOAxW+ApxW`~ z5FGMKeLzkUkrRqPPHYT&YtF3>p8Rb1IZNkM)a;)V>Y_oSS?4LyT`;H%BNb+bZ2MoDKWW=49~=Rs!q}e0o@x)m1RH zs6Fs2&OP>*x7L2z{3V%t)P<(RAoO1xgWstUP~(Ei&Cjxq3OM3IQ5VL z00eI`WLd`tGkEgtTh_Hc^lp-YiY=){qjJF3M2h}b(TEX+FBJVDsH@@*Z#Vp3MT6~< zz8|E%ZN+*8g+5U>CU8mmme#2ok;Rc*l0Hv?9uP|(l>@09c=W(bwv5VDuC!p(huFoE z{_*Lnw$b!8!iUP5+XGWw2On~fqpG_fAkjQ-EbyG^_LVFEiD92o_alM-E*+QyA2VM`Y8`9}2*#(c zt{hTgC49*&Aq3=rV|jLi6c2Q@J+_4W9GE~=(COYou(QCpyRRr;m)F3b1CSMLrs?7? z3&!^VZ6Qte(5wAtKA6@2G9Pvf*xpBfS<1q$qfh^`l-V;}1_Pi#=H*I-R6ywxuO%pmGXf<$gYZ`YonM#n}|NE2z#k$UR?3QA^RUUJIPHKOD*jone{1K;8ha{NkdkL`x=6Fv~*^8zG&w65N$24 zk?+xHbV!w!s9@qc2f0U=O6Nt?hFzHh11=oXZ1o?!`yyL{y^(d^Q}F{DCjX$k%8{;7 zMcf_#Y-GK0w1V;>=u-8qKEcxCR&VAyX&3P!M$4Q=tC-Bb)8&_J;O9}*-@QUkQL)Wa z{?n|yvU7b8-?809+P6fr^x@<+!1y;S4W$8Ft(wDDm-(5L<1h@r?Np(8jfviPqTW{* z|EY##nmnq#q18PcNF)Sah+7_36c%|(74@lffBIA!@#hXnyzSw8a}V!WL|4~}8R%bp zf(@Y3Y`lx){gWy_l$7!_aVhD~UoyCK3#Fx#ceNwnmuOd4*9N4Q*|H2h2Ty5lUh^T8{YUujT;pQuwo z5>FJEk3-Df&1qzdUb@%FemSo8w7XeR; zgPmQXH&boutC6y|`Ka!x=+%+IvuucUsPqZadQWZv&-W06A-<6;CXvL1BZg+s-EQ1Z zsp`GyP5Q=GW9EAQDJsrx*rVj4aJF3@(PCgz^8Wz}VL95?V*r3dOQpRDJe1x0Kb}3Z zYZ0MRM6zVxMj|SqY>_l%-(@exT8b7hj$D*kmwDoP-3HXV7x4&idlXQ{x#YdL@CFY>qZ z7w|oqcL>*kQ0TNj%Ki=rK)=lIg(7L);v5jb&lAo&9b|*zcU*u0<%`CYC7S#8eV^uj zZQTF-i6`qKyNK!D&bM#*bsQWc5JfbNDxxuc;3n$Fe3-OlKffCD94?Q>6yDCn;_DiD zH1`7_7PbcaHV(q!=Ob*EOYde-_C`{_Rz~sndqwz3nU0Mt8p$X*51?nbV{Lq;`4DGk zQ4IJ>|1?_h>XQ@3Wt^RFTct+J!?N+vHKgXx4)jUC(~$wKQsA3t%&_>y0>ZkAW?9t) z11a->lg~NNbVL#G)9cX0SX0^x;Ura((21DuhrECHZ}`2W6AQXFj*t3J0wHc#`hlfR zjN{TfT$;6!)MONhI6yl&k(}z=S?(izKm8qPmQ3Yn$JUqgt2B}^{j$QJNNE9ZqyKkK z&0lz>-&J;f#+ozZ%TPk(U0+CUfbV8&nh5Az8j&Mgp>P5_M7n)yZk3}@@_3x zJf;KJrZC$tW5h;~+l1Kj>C&Bq)PK>flJ-y2!`Rl9gIlXgqvG!GWKJ&Q61FoZvpj&| zp5D%!Kt1BBJm_wu{UN(O0Ewyk|0xFJ3DxyK*^4TTul0XrFU*Rzvlp9D1Nkw1j|(SW z6PF$r9-=W?xa?Ju9#Fvd#Ex${0DgSiJF{`Mnx#@!nte zQ%_v`aH;f4^XjITv$dOpkmq$tDVR_2J+-T{ax+^JMlJ0cAyjGU>M{kzEQaP4>U$|5RnmhCx7rk=2GDw!tCgWd}6s0 zv#gF&Ur|7c+<5J{=R`}AOp1bc4z${0{P$xM!+Drv+H`s7CiwdrdEgG+YR**dI!j-Z zVdvwQ@D1fa(K%kBwIZ7q=(GCPEayncSZ)s3XvPT2(CBw=&! zQ5l1Q`LTpQ+7Gb`=SI}r1BnwHVbKSS3gVK_meflRyO&2)UF9i%=vbbQ(p{h}9D9B$ z;P?^#kx&zllXywyn#M~xlCVaL+kzZGdT82XH;am`$;1KEP^PvO<&Rko&7&o)r=2h< z4O)pTy_8cy@Tq}A;%BB&9Q0*0&HL_U$R%i(5HfFj_sr&2l^*3AWp-u?eayN&SJnWDAL!5k$c)t0v z&Jv<3vy)clx$N7^E$aH>Ny{z39mqb;)6@`#i($;)k|wze#f?bmvkIgfJM@S>-w7-uN;I4C@+-MfTQ>j>b29VqN9@U!%&yrYjfD}dI(!0cLs)XOr5kW|g0Kn!!pu2AbM4XS|Cjb1&XrFL9FJ2N!G)t^4?0 z<=hufssMnfsD^x_?Y(+~U+aXpw|C5SOEFr%ilhLwu8Pap-m53Xjd5b!-m6zSv$I#P zUQd=CI3FUGF0)4T7YCr6tx`>Ps^u9*b4Giy(pe+q4jj8|=1U++aE$e~IZIkF0YrxH zG-#R6Y3g*B?FADC?Go`};}ZzVxWwq4l1**422b!HO7pAP-MT>1oO{G zK#db+djK_#mOCx`2I@9=dW62JYT9F^FSd~^2%o^Jjk|Nz|2>&Z!ebdLnt7@aCy9G* zr*hM*J(uxG(&DnZEF33_s_NT`e7_1}`DYg8U|wfkQ{#nLk84~}O)o3I^fvs$Y_ImU zPMy{D;``A)!R8Jo>d9>K&c;_Qg((>Ha=4DNA22e=q_w-4!AWmp8+6b`$wSQ^wJ(cN z${kI4UKFl5viF=muZ4mkpvG!gwr{Vrbze`h6hDp5bX8ZF3M~!C>+W?sZ#=&Lqq7nsHN!dvQ(J4M}RM-jhsxzNBC$ zeN1Ej*g{D?ezK_57AfQL;%CWsrpC}?S4%!kliQg&Taoe{%CVkg=G&W&yjZMx=QL=$307yr7~-}oTCa)2!S z;bZuL$~&kgVq)9Rfr-ihXxSX}@iUgGAOi&oy)76MqUtVYU|pmu`vVi*PuVyq^C0wUx9ES*DXA>3l$s zKzjnuckNfQ{#^pj94>OVp2%^Sqljy7Cz7nzDq)VFTFzD6F*FY}dwCYl7&m;lt@f$S zG%k2yOxX1JlOivVx-Q=P3J-%Yyp^FHBLij9adFS(R)2H7BUX(c`efVdicErphd$&Im`?%inm0{U&w8PX@Hb@4ME5I^lL^E;uQK21hI&tN6EEhPb zlMP|tManaAa-XOhvVn+tST?3#J@)KrIpXko1N4N6hnPY zw&*uI`KJ)A5+}b=^WStImU5o$W&D+*RiTMdK@Q{gbK>}G;5KGWF^-F~t4G}TL?DN~ zZB8!x!LxnN5VU~jmi_+Fdg=^Ufts6rg*+xWQXuvQZjg=jE2UBp)SJCF*DY3PN3=`* zL2u`q(O*ldiG+SAfx#Vjv(VtKQ3B=$d zn9s3p!4Z840Ck7|4~5wXVl^|(&>FY@bzw$O-9O-PVEhR+=wU^mWw5|KuKmWyZc-z? z_TKCZM?em{YOB6+5Xk;*jUU1VwT5?9#rplxnn_gYKP6wDF;IpRA*CZWRZ}?1a00-I zB;V=Q-G&>~l)`z+fTHvtn{P0i>OY$6EP51DVj18z$UZ4v1=!h4BLlCMNz%$=MOlxW zU5N>5Lo3Fa#ok{sGzvBIRI(06;ZGkGmkZ6V%fUiauOy`c9Im`{t^Hv%|EcuY_~ZB7 zwAHVk6?K&`VWkMZZ)R?6?G>1t#v-oE#th~-T)%e!=oVU1RxgA(?KN3IJKc*4+4oq7^2a`sX+P|vvT7#RT_u$ zNBl0dT%g|XmD*<~^EQfMvQbQI>l+5?6A`)z3PGO@@7KM|rWPFzkBaYj6v!7yaU*3} zM^ryh~i;Bh3ZsgJUii{$yml z?St-AdC7{G+$>j)oL9W!cX+P6L7Czu zqzi#CJ25D;m(_*9bN_*2#Gy{U`6I`o^V-T;Qg2EH?4>9DwXLI&!Fu}YV4b_Wz3T>j z%H>!)R(a}b!y-w)qlV}X`ChbZ81X5uto1{|(3Np!5mgL}>zDefi#LNYK#*&|3q+F@ zw^+uzyv?(Yj|0p677EwD_z%sM(r&tSRJF`~*BTf2{JthXCD$>Bc%`Ox_#KyuEapnh zPs}a&m6}4hxoZ#8;U&N2rr&oT6ttud=ZPf^r%So~@fo*XZkkv@WY@A;)qHbp1mCBa z_(DgyGM4;oTIg+9f<%zta`OF;FQQ~IY92hpQL*dRFjt3#qk9YWXH6FhQ6^#!w0_+Z zl6LlfbbP=G{gL$nte>GFpb6uE?8^A_4COxj_~d-H|IpB^>7Spl7rIG(_)h61d)aYo zU`|*}-F%eZT6K}l{UW;BgIZIDy)d@Bx=F*YDx&8azaq|}WJ`RXP@4!X!#14I^%=`e z09dkhbCKYy*#5-QDs?uOZXrD7Wq;dHbx3FIdTdRG(1L2AwASyFuneI;LWrgS5pesG zpI?P*56O62?3M3Jj;=^1&J^J)S&SaCzIWnbA4P6WeNNe}?w`YM3ds~4ViiuOn1f&tP^-R?tAoTZ1eCe87M>t93cGKwWiO?g&*T1iEb*(h?9xfCU z%Y>6k;0U9I>xSO00Z%%@`+R;kO(DN);hYyo(>OA&+pK`2rG1u($rO|sD`y_u^&hI8 zGQ_kp_G>fL% z1(Xf^ywbj8X#2;-3>PVPN_`LKti9)W4Qn7E{-(@xoM*~zT~#54IWao(VJ6`Tw1(oI zx`OhhbzQplFqwXCrbHKAsba+Oe&rL&>WWf>s-068H3@7Tv(Q$&15sT4E(Pwgs%MTq z?Pe7KSU{)0`S^_5STuxsx@)!6=?+gdt}~&d#co2%$+N@sYH0Y8w#T>loRrkkbOa0J z?%BPS*D+;o=^5!c{QlBr;mDmM1c56r?kC8vp9n zzuysLRM7FJc#uPbLX+DWk9{+(8Q_1zoj5kU<|9|20tz)jpHD(>&%Mn#azG&B3EgGI z*NV>XJ)IdxADu!SmaVf74^L=L2CaZQ_G|VLu5|uRaf#-QYn_lpEd#Ig%Ls)~`m{Zz zoxUZR0s<~NU?5n?TA(Z9!v)WL3hvkMi}7jb8^5_A$ks|nsS-mZ@*ws&^OrU1q<(pG z;~kSgsAHL0QR+<9>yASpEXK~_C`~(!>LN-Sf8Otzbk6TiEQ+z{FzrYj9EM;Kb7sTdg5w&8-7h*w)7L) zXNDTt0$5g!(=Y2kvWJLowCk?p+XBKscTO4{N*T^)zb;=5o(GD)UgURFUKWg0mwJEJuXp4h2D0>w%2Tx26uWU*4%Y63fWFhVX*!hsxv8do3RcGvD%i4sSHIKz|V+j)*2(eJ`NU!)07YO~i>_5~NwPYzX z2NcU%AWVN6XwCZ&#Pvlts_d6Fj0I3n z|KXCa2&)s)B_5j`BTZi>Z%j!Cu z4%vd6UBlcaNknl^ppx>uYcHuyn|-NX7pWoGBw%fM^w#@lZ~DQJKDFcRR0cI`Zwthd z`Zu*I?0{pt0hDH)c!iI`vZM57wdcCnuL5llr_6x;9?S@>`5HJ0KeOSX>yXspg9MA4Odd+Z7c6QvC`t}g5U zm(u2o+ojC`%T2R|$S0{pzpS10AJHE}o2n;SUb{jS%0&+Pl~P{jgR0XlhMs_&UGFu~ z495xna%*u3VSpaqE{-@vBbGw&t?ejrx1TgC>8S(!P?bGrQ>E7NW{} zobM_zDLPi#Q<%-YsBtSVKbxZHVSkSA6!8H@%a|Ih_!c`J6W@lSTWXOuwdGr&`+7lAwj9Fxv8-{^L%m-(S?ce69XA2v+*U8Uo@P?!nXtL^)E-hRZZt*&{$ zIUT!>v|A~1kL%{D<qp@kE2U9+?Sy(eWlvV9F`@-I8TmGv6E$|2LvZD;SA z_DM&4EpP#~QI%{VI1$AqP5O9E{LuJzIHu>}c+vaKfz9Go#j+UITxzrMJ+-!IbouKH z6#&GPwzHEsbZyIfXBF$Vo(JcyU>iH}H|-1`*w7lWWf|#NU<@`bny)-dc_VVS+$WPv>cfB@yII2phn(}6=s?-M_Yii}T z5-2@*TeE!4ABBB%MLU?OhDWakg>_Yia`5OJJyx6)vgrQJMZ75f)_6*J-F=@rTq7fY zHtF{}H{X_F3m%rxp@|PPvnlfNWAW~yj^IfXJcaM}Hrfn|URMT@xN|~7&8v@?=_eyZ z!gY*<*gIs$>~Cw=-o3v;^ygV4RDv}WECD0p;Y z08%{HY*OY@CO`>?5QRz80O(nY@iB>I?a{*VZZy=y1f)i<(ysT3r47m54Kk0(_#^Uz z3IXK^#u~%?me|n-q;(UlJ(p9k0k;i)XUq%v-)_V=-^o1sMMC&a$#V8E+b^HCGTgJZ z_cfIUv)F~@8X9QT1U8@{yBo^MuKsF_`rm0v*2PE&y9pum2&J2a|5WJ|rzmtmN8%$@ z4Fcm7Cl7d}@STDp8Li(LINmGoY`)s+=*S!wN!4f=(q)oGJ&-h7hrz5C6VLg?%4W>=LLXP8u4e#V5 zsxm1R`1D%0^AT&duOLUx_7h0?h}Ii;o9(Os(3a;3Kn~p3#n!%tCqeiWqN>uI|J5In zowPvwy~C=ELvZh&UStQZ=l@iiVY~DUZ$@&-OfzWu4yXj-)~|+|jO4W8EdEzZI0BTJ z`bO~atkqN_RVM?l%?F(D8*~+DJ9KkuST+I+zYW(cQ;2u(DUtvc)x=!YRKxkDv9HIw zL+$pkZKq@520JNuSh8(TfzH+^!}Z}vL4{q)^+jm zYIZjMHIsW*_`{X^Nzw6X>Eg4!Y&sl=Bq1`)2*I$WO$d~p;01gbE~=Sve)ZHv`-4&z zG#B=b7-W&Qd*~~91i4$uC_s~Q>AH5$x7h3y`or1jVuxwPhm)4u!sw>f*S(|5oRxe%h%0=- z4O1T<9~A3E%laPC*?BF69qFxY8~y=eGKU?fR{a$=ozC`jJRY6@y^N^baCwoJ+cEVi zMr^BJ1?dy>_iHHv{6`qM>K3leXMOa~gNeyriHXV|Pz-pXh8)M=yXW^(7)l49;<)91 z%jE?f*7CuGw(qLfIt+V6?5supTZE?WLwIT5lRE&02O$_9eeFC|EI9YtnLfDxM?Z(h zN3Poil0?@js$iLLA~ELH?b04pD6-4F=7>nY?gOtRee3x?lZ9u40nwO)oY7a>x3EkP z;g1>L+GlKhk9;-q?R%oylKViLuI>f?@teN#TayXHT;p|ZE6NKcZj2MbttzgV!H*n? zvH*e8ffBhLv9W@HFqc?{Gw8w-_?z^AwIRUGSnQ|q~Gu6 zAyz1!Ks}c>{044&f4l2Lw`F$#ut>1u?9jl_ha-45 z&!zah1!5o^mh+@Iq=gG$?IWFD!4Cm+9LD4yT3nC!-oo}mFH);c-D2(2e?xjJ#h%9* zI&FKMvU{}V*8B$=HCpgahaax?>4&}jsWZSmUeiWj2sabm@IO(AmPYoC ziv3*KsEKj)_PugBMGsoI))>YmS0+N~sgseCHk{Zr8ns^n$1hd$m9%heU>>;PfLKwV zF+dTQjFb{*k!>WS?@%=Q8LppgYqv5@{VU}q2ZUsoQ$ALhbG-Hv!2ujx3k#0g&m44o z3i0wQ7-6itib~&RKxnDF9;_hfFc5|8Dk}E-0~EK>Z-eOW!pCxJ+N>e;Q`S;+_$wjH z@!I?C=RSm%B0xex^_lquaQYo`z%-shK~S&tuLeE$i&Et$-tRO(|KR_Ybhyfpeb!4%RD*m+B=o~1 z2|iVu!;>+EEB8n&c-8M8@1vljo;NUJJ|T0QRei+MD^l9}0DrowTFAX%Cu1urZ=com zvo`Y1;i(a6(eV=H_ZOE>_5PY^Dz4TLy3%~<+SQB?IvghAw!(bcEbT=OhDouqF!NbC zH&hoFF+8Sd(p#%k$7I|pamz5eUQ|?WR!arlo#f$fdKf~&`^-T zRHteZb3dLs(dC<(!qn4fJRJaJ0L|a%v}HT&)~OPsGtr%h6UEB+1(cQBJ&U4=x{b#@3Q4UjjjbOW>vQr^yi8hS&#p*v>VvQNUH2r>Dw!%^D@}tLFt3vwY_lt}b zVVyoYw<^qv@hfKy5+*35pHcYUl1Zt`YuY+Y&?Q9G{q)4$C~=(Xe5S;EU8g(8D7zDF zhk=%>*;iCBWB1NGhn=ydF{o_^vNHu>kypRs59wJvlfwW@3s1oF;_hZBt6-he)9 zan{JAQnc!E&n}fuDtah77r%3%G`}DyA}DxF*}}q7iu6v*$`{xdSm%thZmiLLk|ocM zdk9kO#XT3$CR|i6RM&NrN*AuLZ^S{BL<3G}#y4)F{{=)Ipz3-JsSn4>Loq`y5_A zOie6&VH&y47=lm~iYw;Mc#^LaT?_G(K|1N3~vRQ1%d z@V!ydteWYk*Roua+2gy(yQ#`IKUiI;qFMU(MhR2h$xqW}y)Huy_8oIAXBhLT8dI)8 zulBuq*_6v?X3qlJln*n$_*;})mOj~1YII!Zuxyl~!yVmqa~aKvg7w}`j5+)G$_BLE zZibd$Ckxtc*P|gNX-*ddF*PC+7R$fv=g^&Vb%6b5K*nGgZbl=8cjH@o(;g-JZfKiZ z9CbzkT7HBsN^uL+WHYFb%d3E}r6O85TIBYkQBtRm%lmv-a#aHVRsz#gv~*01rH)&v z&F4)gd+^PX@4x9kuY9Cxf)aLJZx&R_a%IVj*-yehrWHwAvNp>i6QY;4GBfpPlecHu z3=3;+2*@J2<#f?pLX-m18}eLSC&i=9YwKw`KZnKH7Av8XSsO8$OI}Q=v85^jtqCz5 zGxw0*ZJSTTlB_KtTG}YJMe&PFqywYw401+%|jJPiMOf-h2UCM@*)9Q4Lh(hG+}u zr(L37j?nHE>aW=^$?8htZ~i>O9}=qJv-H-?6i#Hi@!KCZQ%51Q3H3)3{>*@ed$UbULyyk z>@8@rE?$7RFt3$@_9-1`>+{p-OqMCnb&4rZz=2@^fnQB6Gd&x!gI=InrkkoQ_$n$> z<&}2eiDyG#Bear#+p8)(vyKWL=R z6CJ2j1$-S?D4D8UCei5EstdV+E`b#jhZ+kuE4C(Ujzk!%; zh*(=w8$KhL204&UBZ%cPKz0jiRe&C$RTVhPcsYf4GrqlTPZx>S!XJaX(TG}UVXtQd zJp9N)c##Yynt4RrR5)g7?PZkD6X(Ah*nm65reVpX$={G@c- zsU6c7xV# zY#^Vl;~tW<$1bwy>WAX9Q;4TNF4cKW6(dWhj=zB;`Zxh81|vf;@acAV-{GeNkzyY^ zD8_zIpde+3b^ex=?Jubs?{HZ4fK?5lP(m!N4$YE~{Xj@%ZRcXqrZC)FqAZ9<1h$O)#xE~P&#W+?q|3x*l zQX*387oJ6Lw%QPXix-i+xNXlxD4*lq=$xn$+5+hzybavwe zPY3sreKXHiZNi9}jTtUokKPT>5`ETcW>SXo{_6`fsb#F-r}!1-YlO=SVbS7l4nFsM zrSZ$Ma`KmoCF7F)Ms;&{?bx7G(LN!E4TlcK7&9AlfO=qW>MUw-^Px7%+ zT**yOdk}S>qrG=EI5jrh)0&DcN6+%wJ~f7;T#T7^S?si&M0&J^sEhr`!DN(_5zTD# z#R~@RN*?EfG&4xMpSNf0I#Q?7A7-Xa@jY>|Q^I>s}#Y*);ZXt&;O=kraMu6-M; zvD#7{0nhB#)r!^lQUB{|7)E~oN*LmTS*OR*(hHupUWM<%{b{@HL`?gI8 z^m^&lSY`P?@>$*CB~P-OrrjZlCJf0nQO8X%YCum(V(}RX2}y5gmNm+@^ySyUvQLFC z>F&f>E4S&guutYGy2>44U{E1$*xvEVO&($^8n-ODWEQ_H zaJKU#ez?qi*Mi~=C#CfHJ${_hYJ0Z&WDFV_>ZsSp>6rs7##VYbFGAa%T})p+YW4`n zn$M07HaEVfxG4X22^X4hutMySx}y06&AZF~=a1DTrBQk_4qDhc;(GingXzVBu}Ah^ z(k1;i8}U3=T7Nl)s=7gkYG7?)vs+~5CiHmdwBVF~LsM-_07vJN&P^e7PGY8?KQh^@ z8jeQxXicnmn+y zrcxh#V*(|{`uus}vSn2ho8h`|^e6C$yk=MFt)D^9(z=R@{O0@oCE{;yraCmuJXZ9= zxtO(4#nfKVBTN8La&-ie{5B{-6JKflJ|dS9T8faDu8m`%*{A8)b)tLirEAkBeZb)h z?>`*2QK2~SZM!s-sUX2BX}&AQejpkNY5YSS$E%Fl4)o!(#`MCKm#t3N_1B60RPymOw$W1`R(LfF$4MR2KVB&V&iZ`0X)T;Bs z{XyqxnPJXI*&a=xX)^;qogbbx87YvE~@D}fR3z6?(Pd+7xAyr;ZZ?i+0(SM{zL6GK_I z#n}L9oe#eEY{eyxv#ze6(p4=i4vtn!(@6hZ;p}vk<;10OqeDJKDoJRE^L-Avv;6z6 zG&UVbO^S_!#fJ;<>?$@YgM!7T&Sm%GFN{(pPd3v|MJkDet|^Tx2HOMucp%H?%Ul1@H~YG z%1j&do9jo>&G?Sl4n~w{65kDr7JdeYrj1v z)5hkmJw$qcypnz>9rpa!#ooOlA~|%EF=HCFsutG#^%Dd08w;CGuweQZFJ6)|75nsE zv{O_ZJ8iEpj|#NDcwdxh^4tzT`$Uet9YtKD7?rfJ$lUK-A7!rUPQ4*$_C_?hDP!Qf zw&23Jw)@em(fe>AN(-6g>izM<&ROc5P0ra)B?!35ix)41J={Y11Cu_By0BWgF8L)H zjL3vlSjGPyudtE{cA+?^*0b(I-FvWnE`A?(h||8CUh?JzB~=*(-rr~Qt4iYkOTJh> z2%DO6I(TS;4%){NKaKR}m}w>@DsKLH`6WmPkfgK~+-Ic#G&}Lng@*H6<1?Y3ep@d4 zCFSC;PUktRHqVTrV zbQJV|K8h_h{#UBx>8yCAa0#0rg8s57_1hBP9B{#gdt!`nKv83j%PTP~x&FcP8p|Zu zFu#r;mq+i0n2Rn+dt)+QC7@4=9~6jj^#Q&>8`wkdm46iwb>%yS0x4C|X1PL8-mCb; zJf@G7s<``}*?Lcg<{Va%ZCyDJ(A3Q@P+9>>zg~B30abuFCHM}i=%hIv)6M0b>9{B5 zG>JIJG%W`fwL`vK!M%92$@?kW$C&`Nz%rDveK(xAlWw5@RuSz)*v=t2*yPiH+evj` zGzrR#sr&u-Fiy?DE3SI8*cE~8Yz6g{8AeJe0HUH<92p)*`tVR9!YQDu#hfE!C)p7Y zgTHt9oKVqDak~FQaaL~|euxAQPF!U$2-qx=;7h|+YgM@pBtZQHD(k(`zLRm$iEH+- z#cro8^reGzb`l>y*H!v{SyyHZmd#$#B&{hvmvXvnR&|`TrWm*ZG*mB;_BN&|5{T;X zzBdNndgZO*l;9YRKAH4zreiH2j6+lQ$o=sI(Qgn_7M&UVuT0shMnQ&pUi1_*xBb-* z?Z2-4USw5Mwbu32kuZ{TBVH;le=qNMPdzuCN;o*Y*~#IWIKTGmRF;`p4q3^wtIN`^ zC%)c)9vk1ge&9GPDLPHVSlP#xjW0*YB$JkcLC+EZa|olkp{AV@Cp|g~ZgBpfvx}5_ z@(7L1K8uSPK^IUSUOOatkGAZwDed&e1Fjqy0%w~bGfCf6#MMm zDWVGaM>8tGH#>0)Dn*ft4PL23fi?Ij>6U z*_%h&*Xm?i;CZbhQm>Fq z`aMU7OsQo1R<1njL%=KV80R_IT<>0JMoz`QpGkAtEstn$^8_F6 z)uY+}CQV0EmPyeZu0xR7e5WE3^Sv=;Dd01>1BQJ$nK(P@ zh7(EY<6$anB6wKml@6){zzD`QL%HLMcEtb(5`O1>4bkiEd@4JUrbELA957tcnBo*b z!4{3c#YQ_5m`R&OtGb+0=>?7Vb)h^k^XYbuq2+Jw6_Cr)NM!w_jgw8 zAaaPpb(`S=V2^=)e^NZKlEZK$5#s&syIZ9^h|hPN|e z2g%%PH7{=`Uze2knEbj+{rdCflFDrrXeO`9zMpd&2tkRIFIk&fRZ#4Ic?OForD5@z zKZBxoaB$+@o}%_e`g7L^6QI|`m~Uqrw)4Kxas565X*=15(?vVo;opXz7XSq_pzU>k z*Wc&g^_S+`&e=?vB?atY`anM0Un5G}xr6t3U3SVqTk3$ZI7L+`h5ZlJO>aSE?5adS zPrh0uxH2O%ssFU)!_w+To0>)1ZzENQX0+={VAV$TXi`=8zh4Uky{C=&#HDNe(NBn~ zNe?wbxbIsV-ZGzY6}~R-CE4sIDVedR@GIK6Y3gd}TjkO)pL-^9 z4y;s8&Yn6f>#Oay60^%jAB=U+<{W1OAWUnSX?K*Ji!q3vCd)u{@zlPH86F3rmrih^ z&ud;#8nJ=9Ll_L$vAz{FlLztOU^_wOS5v%9&gq@dCXXS{RBcVgXVCxo(4}^k>Q_rk zf!Sd-&p#hhd#!u|fOH3Mu{K}3XEAo09D^U8BhRR_V+I>xQI#l)4k(Zwy~NHR^-55BJRuM}D-9 z<05gQY|Y2_qwa@?%zV(NF^73C?jskg$X+_x>CVMYv*iG%n1a)*2>JonsV`qz#Yr!d zc#}xF#O0J|6#pk9Sa816>RWMHBBezxyD@v9so1MbcXy8}=nWO0e)MxV>kgd2>eH3e zmu60e6*qiyYVG*OLd%aPZaKN(FV}OB%i}Q)eUPs1BU&zIvinbRaxx(Nd%8R}+vHT_Xw#tgP8f_NHF76AbOct# ztVr?YtBVg{I!i^(2PC)79K=0NkY!xIV^?;^N9P3YVzd>&>?SKT16Z&2Y*O1J3Dt?$OjE}afs_HQRzN)>34+OUjA;rfdlVz+=@C_y{O z8*UBdeM`4z^6+}A&P4@cg@R7d9b#|uw`cO;{9^oOS zWQhnI)8e`^VUGHOShkOA^{a3|;UBLvne&j=pgArbP55ds$w*a*4uldF;@m%VzQO~W z#^1@6&2+kzH#yBP0XOM!rGKk@^&om*f3{hC7Pt(iXu=6#zv4v5t_LVLw9fL)e)@8n?DQmWh= zvbQt1{;j7;8C*T|-;xY!WK%7jY0VS9!u>(Rb<6;G8YC?ah7hS4hkahSGmH1)qZ=oP z@(Ypurty?8TM`(GMg8K$swN09Xw4-yv9BvvOq*f7TS;3VH&yv0%UpDtb|&I%5A3w( ze^E_D4okKs%&qQ{>2i>XSRx@SG8sFPu#gl3tTyqF^_fkhFj@; zJe))9()pB2dqi>ybei>MP>HpUwMtD==`12OULQu#6C$>@p2K!qaLF&}W4lSA%PFH&e6Hxx40^ zFt+75k}T!M+$G`ZviID)y^^TqL7jR%%JaNjG;9=m_Vjz6!+KuS>{PTXhWIXyJ2gtf z@AV}WyELBuc7e?fR-EUvExVXh=i`HP#Z1~hX;1Ce1Jv8YGSjBi6b2Qkrv&;Hr3R~a z)>p6z$A`8bW2;TAq~Y&>qk5B_PJ)ubJc!Bm{dpDI%#^%0v-~F0UtS8n_|;iBcI@cM z$ETH7UrrK^jy|D4O7y2kpZ`iVHjbnvx+&$Y*MBjJzC zX`TkDOJ5hB&d|$d4?0>Gf0}rGtaq=tbp)|{b*}_FLxutG3_}l%>J{C%S;mS55uMAM zD8n~Pi#SX|!gR^40JE}y+m>&-@2+_dq9i2RY?>(}CyQ*@b0?TvQ0$6kVOxQ5*BhdH zEUK0^@~A!V+(nbC{HXi^Ta~&an_-h{TYD#GWF040V z_VB8R?BT({XDIs?CG=;#>sy!i2dO+#co<7Cg#Df-U3Q$s^k>g&Nl6j(Bun=J7H?N%idgydc80y$1IL2$P zcCwKjMKetc?$h9o9I00Ois)J6bm{pzEv1h$AmrtYc#P9_j#c0z{2!Qn^e!qUS@LID^$A(9x%>QW$RC$_1THlI|~B_!PCT@MkD)-4`a$I$~c&UYU%= z98CPS8B1Tb^x~BT<{1+5asW@W7Z3{SuphWKW3}Hu79*c{kb6xi;P+CZFUo7GQ8)6W*lun1T}l~iLJP%faWBpszVxf1^{&=}{adlVb4fmv zlIK4Jo)jAlEYaIU^PfRC3)dqOiHk2c+@o!%(cpWpm7gK4Trz5#6) z7^C~pV^=|vMZnFV=h;^2oMRGesDu~Y(jO)kmPrn@d5FAnQ+~lv6yL%GgS^M-`k&s@ z_J>OM8Oj0OYV#m$3%Vw>r2O$^y3Q#2vtde4kle|fm-?VOziWAV@*ex9U4Wg>oqeB2 zh2oS!9q4Zb4*%$#|7{}{swmW~NYLzG7NQI=XA`%Gj`bo&j9FLMQU0rx5&?8ytb58x)gO| zbe|!&ueL#rJ)GPEWLDx4J*&&at2mf4>@pnGS8UL?_4h`kY=DQ9h-|>`Mj!ZiC&?ht zkxZqeFkX}3DG?upI{P3YPX%)CALh<+@Mx?#wSU{}DOrL4upl|VYUNhXuFDZVWS50@ zUCtg1d>S?f`F3vbUdq2MyN7|EWKy@rcujBq`|{mtvRWtYlKq^l){DEUH8M;l8#?%x z&jiTp1rGjQoZP4Lw!4()@Q~RC4*qSr7g@!jgMSrAlNmR)>uMQUVZYt&=||RJEW0Z9 zhP*uucbBdv6Am5xOZN+MzwEAeVHKHl>s?+Sqat(L0>!T4v5I8HPwg&FATN&C-5JSy zTlcQZFK5YmdYjKK*W{3EH{8`7ed8ebB!QdH?EA~R`UFmytj&wbFK=tCCH&`co@``7 zH#v~T2vUupfnuR}_1$+afc&RsX|hP*@CJ1lCh-Osrz;e284leD33mmf5)icYs^9+} zKu!pcA?U=K4$@-nmJD z023M@K|9&w-}qat)=hx{uy|W=s(pYA3PN$x7`fd{JD@qzdG#bV5CVTaU`f>e)qX@z zEZ%6sFT8Q&_})FLtV-Mn6yAR+c)>4ciS#e7xBQ6z_(vt|G8#T9dr1CCaS6J>nO{Q2aoPJ2H)FnlVN2oOeJs%FXC{>8E({kf-^|m zLP6>%1DdE_ljanjX*lA+$e}}@b>Mi2+L3)q?cB+pZW4iXtkgNoLZbFvw(c(T=k~hV zSsqk9d!CYumyJfxI6vuPeC}0!K3aZVAH=86+6@$Yj;ep_43#PF;O$sGu^FtP*st0d z#0R#(hj%lGwsP`I$H~;J!O#pcHP<6g=T~{B0gZa6j2n7+iKFklHc33-v&`E zLVNCsOrPrq+iR_5rLxRVhU&dd?Ti)Cp1<$F`9887@UPioAJlZ3`x+;FeHi1ql~(HW z^KzWNBraG_D_+$izl?Fhzb!V`Fas z8O3pNH!#;e&9_}M%n?lsyBG0R{m&7}E<=a3tkIXRbBtQkO7pIs8OFHGJW`I+avstD zp>h3|*Iid7h7t~l@!K}bqCbnMY+c?b0k8L8x`#+adEpt$Ueeqs^?}cH5&WBJV9k-a z^&f~o&`ozo46|PT-iRf@e1#VEXS&uPG1nk5eEF0pPUAp8QCzy{Pr`;}_UO-i{(96n zaO2Telb<=fBA%i$At+b<(W83Z$TO3{M!8@#(H|Lr6cx^52Jh;j@9I0Zl!-j>fkYk6 zCj!=wEup*w7+)O#sN-+d=V$L$!+vi>lsJtq^-kd(5IwyzxN}eUuWG!CMjgdpjmrNC zE}K=kD(%N`0dCs>3=wN8s?%E7Psnri_Mg|=xB&3JXfg?qw$%v#q9!9H<6k$OWiwW@ zdXY2dGV&6eDc?fea;rrP?;mUpGu3-OgCsuonbEE*|DTj#XMKeNj-zbQkilAuGbByF zv4bdZ6C1#`nYD>!%t_dBl*nRt%t3`i+}cwC!ZIfbtU`_xMSF7K5S=d4+u%mph9Jj; zR&EW=tc_%>LNr%8f#$|G?T-`oiIW*b9W~L7?@A|}B#sRdI6R!|%6*hT?G}Z*beSiU zpcnwOxQcQ#uw@Vt3YvmV_r3$?)FO-ZUM#adV652ECE$>35U*&Td#1NhMY6CGzhc`) zBh~=eHvx9H8U#g;&`nAumLH=ZGKV#I@Uy-A^N zQRjpLRA*jsTU3L(JT7ydEa;r+!jSyKrdu|ER{)hE`A1#|*o?zP-n;hqLyc_X^6!rPArG$6@ZOAt*h?ElZzo&M9e zDB+2r7Yg{|TNb$0Fo5-NZaQX$tvb$PEtJ3j1(u7#Js&D2mZ2}*NS>Dr{;>pUn4>rY zpt`e|FSSb0CvQ^}5zKDFii{LH3YAra8n1pyvS& z^;UT03gnt?6<@R#UjzZ2)?m0d%4@NqFv=VB6aBs6;O~9+tG@$i0pJCAK&| z0}h)#;k%1pBP)I{dRK9LEA$KoKu!Z~2*Q}`1(JP>dK)C;u!Cgc%c^!=Z-YANb*SH8 zpMAfzTRbzF_}<;(o5_o}?kWzVf&cjLmd>urOF3kfyW73H@?up`*MRy}H|gNt>g%t2 zZC%)Y6fj<+rz?qED4v(@C@#>CzuHiO#=T5tA9V0<1x$Wq3c$g?6?Brd?egy8j%1hd zyUnX3tDf&}=QXX6S^tx;%lh|n;f^az!9TR`ybOd;3*NZ* zV1xtXFPh`(iC7FYbdW}jqLwKz3VPvY+g`dtgRV4a6Yg(dw18X!XFNP2#znY?980?m zFZ!`hXt6&QWrf)=#oTsbs+VT;T%#+5#*Jh&7!SHu6NCA8hJ`Vq-2>`RNs8@Y;eg|4 zs1nUM92zdF!JrMs8F1srD&U0rH183ekJO`n$hN|*rn1(-(NE?R!=#r_8wUPkmph0T zh%&U}pHl@+{lIJbAl5f7v6wh~916bIeE1N*k+X_P0Ka86Zm3&t9TqiFRJCqq%YOep`K#?h{JoSKd`Fz4$^}VV_Mwj3W>|A*mloi zmi}}!Uwgav3FYGIDfMxdGtvUt2iG_Nxd?MEla_r ztey*|R0-ISU8*j^>}5TwVMh3Kl1SVn;MtA!_uCxfsqWRX*R&|ui<_-iYa#eH@RwD5 zEbh06iJcf()8wPGKKtrwmH{$=O9@SML2sa~KjlJVbfJ%nsV3Vv!!_r+5ntb9rbgWM zVKDuq%f2pU_<70LZl3p92J-dQpdqKt@Y~lS?nQnObrN3+7?R!p=Wy7~rnB7=7#3OF zPhI_3hX?0hk>Z4f4*w!1VGp+=K5;C8=~0os@om;S`s!Zt8rc#{zQe*-{D&mF_bIJe z5Jll4FrVz0cs}#dm#dFfH~a9bkJj%T1cAf7(PD67E-Q45fBJfZ4x&@E?+$mRE~N$2D1vJ{T>mbL(w=BtjIzn_U*y zX%eWpVVbQ$-)GgmX77^0DQNxN=w@-*H9vv7hYfChra7#Y@?4bD`|Df(xl?svJcT*e zC-3SUn{+6#Ze3teG|YPE^XP8>Tb-r%YOUQ4eXR?JTcdsEuztt)TVFFa7Fy&#ou@ZY z1sHk+1QkU#M>>BT5h9+XqeJ!Hy4wQ#q+3a#HEW}MYpR$B9z1yvDKtjrT0T$#kwOKC z6y8CRf($8A@Lcl&k%A%=DF{K4f*Tq{3eK$&Ct*is_Mm$^VlR&BuCc|Ad@>So8@mA* z*dg6VX9jabA?YSy%mCyM5&)P@<$Umd2FlH*6~0eCkf@`hx=^Ix@j6`h;nH@baKUX0 zSVxK!eoFRc;}xJtVc^#*sZ}Gd2-Go+t8eoM!DYWHj~x>KQ6~aK3LbzMOA+$+&GZ5C zoe1&OHhCxuBDGc*oohVWP+a4oH9u7#*4Hxlcck!13-1&{12fa(0Fgqp&kU}v{C`qH ziWCG;mT1Uet;GQVY}&Bj^^ljqX+R%~TI~Za`)kA8EOQRZ-8mzc{B1+QNel1c^LM0B z@NI)TeiB3q_A9pz^+EBC6c`sENQWSikhhoZT&mb$($QdDq``d&pHA_aqAuk|*{Ks7jYE9Yxk zz(5lY&1E<(CBmPfICPUar$0s?(bAff!Z0VXZzd1+{~akrBWL=k8T>2Lp-AD#Tpu>n zE%%pD!1>5mrWP%rE-^kXwgsSjU`YPqfFcE9;8&7=?sxvIm@$CF0RQ+M0L(ue0AoO$ zzui~V()j}@Ukc?hF8B~`?>`7TtY$!fg;J16MP4|15K!t+_iZs=qlhF>Ll9zglDx+O zCC^4FPwl566j|A32ORyj`D~$;xS3KB@RJZTUR8=$KlSyx`2KAcp7(I6)t*GhMa7i% zuL*%J4rqZRAmyMJiw#KFw(>IgKR9gWyYx_zq6Kz7^4PctxWQCLWTj}qBfP6Nxo%bs$ zlg)qQQUx>4KeC@UZ~53gM$Xnw?<)R&j;#2k->%{yIQX0DIzepZ z<7Cn{RU#R;kDN@3?H0d9W_;W3;^yQ`D|B~p@;Ie=cX2^723aI`i+{Iwx}wSK>x$l`V7`Y;0d(;1#v}Kx&aUEk@<7IMw|P8d z)%!2b8zpagx7}R>+e79)-0$52Fl5#*ZtXVDhrH{}?ymhfInTbcyM1`b-K)6!Ix~3% zA2RPY07f2X5_UI_E}4PTg1g;+ncRSk-R;{z9x0CPetP~(sPdPAJ6^4U&SCCs_;^Eu z*P2-{G_G8Sw9Z3=ivWs&lzSK-#J&L7ds3`-YC->X!c@R@@rl2350L+AAawalxn%}v ztO2K1W^hd_&NGj$#R7AoU;uFR|BMVbZ|w}*P=W;vy2O((c=?v%|JxX{nWO|EpaAL& z7+6;m5j_t`V@No&mj#0ETNoy7~r_wk6T zz?ul6NASb0W}!$@crZUq{Kr46VLu!dtxwM-1~yPB21+q$0=?RuEKym zYG`LuGm`1yM1&#-xQ^NZ5IF=LXBM^1@pM0u-1YV1{5cob6Z}$cdzB>Y51yyARMq2U z}v1}*X0Rjk=&g)CW zM;cPf-*!R8m@#5r)E6wBm=LbwZe73~Tb7^IQ}78O8+czdM8-h8F%5&JAbJ5sBcp_?l;?MA*r< zm&&@nTXNpM(Ul~_yRRVZWbW9oYY|;Dm9KwhOo+XgUbev-KMZTYbz;8eMjjL=h=HF) z@I!Ppojhnank=v+)l#H-4PztQ7dk;v(-7W!?+`~AjrP8-H#g5hfx?U`-V%`jGv{u; zoX~tmq|r&~kgJ5SrFb#Y`a%2MBo>+(tv#6rZwy7hu7JD4n|}6QHRt}=yOzLP#Mx9z zlW-J$kXpige-j-aO>b0aObD*~@*s>auu1d7T*}YR(Uo3bZx}a>%dOB~1|ers!{@Is zc3{45VN!qcgKgKO^PI(ucqx&%s^>2(A@Wf=STupX`-(6}Uw(q2ZUezzH_kOabfo;Q zw(uSE^Nw`4welAe4J5M#eqFjm>xOfQeeNkAD((<>IfH>|KGv-_Fn|7S4SO^<3!Zma ze?EGD@6m^4Zwr*z8rZ_dm{RthXUyyKQuv^Frhm=C25oF>U3LBEgTxezlz5zpdwuh$ zQ&PIMoaxa6)@Nj{lm}rQN|xT|Fdvoae+y6f>3b>VO*c}p{tC|M_1X}-twV`o>-=*? z!yH#dY*otDx#2Pyb>XiZ60D>N1@6TO-vbU}5Kgour0G6Am$wmn)do}M^oI*ki1NZ8 zsemRFR^Yf;0u2ZgdL!RP&;)`o;ROg2YW_2!fQw!8_$y2}ogacad@c`~P|$gN5?1HU zs*ij0RR{=v^wrIBi8u9*hE3(Sy=t$};;93K zm0Oz?3L>$q9y<^QXSU7ShOnXQ%F!q%0AUY-ssp;=w#HM72dvq#+S?FTv;$!`e--L& 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ΞvX(f7|nzL{# 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 z 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%0AgwTZM*SBY7Y|N!ty9vZE)N1SiiR%JWQt}2 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�*}+Q#=pMe#VU539%X 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%0ABItjcXq-Z`bQF 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

    qp^AhZClSju=`kt1Aev`K@cJxkl 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

    fIZ0>QTVHe#CSsv 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%0Dcg}qttTe|sD{ikWXDjI)bl(Wp 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 literal 0 HcmV?d00001 diff --git a/Test/DirectX Redist/Jun2010_d3dx11_43_x64.cab b/Test/DirectX Redist/Jun2010_d3dx11_43_x64.cab new file mode 100644 index 0000000000000000000000000000000000000000..35b8c1a57411a783a67d48e4ac79acbdeaa8467d GIT binary patch literal 138205 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ΠRk>f;xy*E5R^e>c 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%0Aq$FgX8)jd#kE>hupO?B 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 z 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

    (S_287|pRCmX&Z9$lwtOme*shw?OYIz6*gA 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 literal 0 HcmV?d00001 diff --git a/Test/DirectX Redist/Jun2010_d3dx11_43_x86.cab b/Test/DirectX Redist/Jun2010_d3dx11_43_x86.cab new file mode 100644 index 0000000000000000000000000000000000000000..f3f5a138a78eb55e5cd6d6c1a8311757ebe84b31 GIT binary patch literal 109445 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

    Pz(aLSw|rnN_V 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 QjZ1;T4J!{yKLGH*0IB-`6aWAK literal 0 HcmV?d00001 diff --git a/Test/DirectX Redist/Jun2010_d3dx9_43_x64.cab b/Test/DirectX Redist/Jun2010_d3dx9_43_x64.cab new file mode 100644 index 0000000000000000000000000000000000000000..a2feb2c90bddeb749eec287cebce679505757000 GIT binary patch literal 937246 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

    M;V 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±4f7ke`w(INn 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

    xME;5p%@2t-~u7UeO8cnnL`_4zw*Qu)Pb) zV8IMKf5p2BV^O`_D{B2D`#R5y6uK)b13J`ir4D?NBAdcd7zr&T z7L?vm{c5$8E{O9ou;paCnB zzJQFSnaarEZNf=*e_F%gye$`Mf9n>Y-qcwfa7*#}%8o$yD_lQcO2jyno#3srec7r_ za-|{US6B@!aGKjp;9}K-n5p>PmAIdHuz1%=>6$q6Ky6TrKNX3lEbNq&7tL|Cc?#h!$9E1S;ZeuNeQYdoWrN2 z2{(bVsgUu8dwZ9GTMgNWc3lCrFx1|_MOWg~+=3!;ZxrAJ;e^bI0ITrlQL|whOPW1w zIN$oBv&=1q^C6GxEiu~z$3hex%*1zBdL~%^R?Lo9+jq{LTo+EsE1G<+JyW5_XZR>q zDzV(?YjF41$K<`GM&V~?bA@5Hja)7u>y+e#rH4eP%DKTBo}VGkZ5g(g@eEs?#KUY} z{8(UCzp&3Mym1;IIafvLdCn^lHkG{s}x+A(CRx;sKPSbmS;3P=FJ{(U}pf!YA zV$uqTZ*HPC4?^0&{q;-Wi=z12&Ac{Yfz!|F1w;e}sKJwyf?b!a|F{O)YT-F%J` zu_d$Zja;-gO(?v$Y;GkM)r5})C}0iw^(`0ZWP`6=kUSquc&vu#D9@k{!FlJmllSw5 zF;RQg$Yl2{{9Okw8ACMGx_bX~ybRHkbFD|@4O5&LgF8a{;8`g- z7C%_c9_mJ(tgYWf*4nLpem#eM+_K?c090J~#d`or_r%;<*d&VR{c%%e`&y3!UUG6? z5o+ml7YhYy!#KX|c1Ui(>cPeHt~wIo+x$>VI%j@*%ywrNmf^t=ek((myS)QlO825Cs2RY9GFs1TAhZfjkx;VhKdvB_neyCghm@mUdr}o7xG{b1IvW8$eC5QFK zSg7I4tirk+>f90*LAw%&}VR zVY5s?vb=4s^8`UFMSiu|&i#WqSM631!f0^tD3{nmmu9pZL8twKjYUUOPm@l`O$(0n zta&Sa9iJc#9@4=I%Yyp6z&ROoTxKWAk~M(108<)eMx7lL&n%4U(|Y8v4Bh4xgTfun z2cyDVf8rc1!kyu|Gf*73w&O@R4RA|0kWi@e8WV+~@AO}VEGxZ=!Q6Z)oY?WF@_|mo zL5P6v7J>U9H~}Jo+}3`7ACO`!X#i_EoA)QT!bKqubl;MX5dU`CS!|$2LYJ)i6t*qW zT>7(eN5@PM!DgA1L<Y4`qTK!=6Ru$3LdOm*fw|Ou zdl=A3zII2@_1`t?F_VSrysb~l*On_+{=%8HQ$c0g`&RD9{)KOtGd|Tx6Fwmm+6ESj z2?Rp}!qFyqR-Z*to>OTq%6U?HKW0ytscH|pah)n{_!mVcshq9Ft8o2@x}2Q(7bJTUXF3j z`J!)woj1gwaB@q=)XSV02y2Zt64hY<@vd^S5Bhzz?nbc^GM3WmyotDrtMZn@!hZnQ z97uO@N$4C6z-h%cs9e7vbJjFn$omd2${lK=@-kB%YNMIjop1CaL^ZwuuFpdafz|YU z3qVyp4W#hLksA0fak7`u$~ra=b|u!wrs4ov;J>ivOG{M{w6<&xd;ZFy{c0uex6BgN@QP*B|yx3A)9EV9@W} z43L&v(-q}ARkK?bkJLQBffFL~bkUsOH;pL3;zr?3WdE6I@ERD}06jfaf-sy@N0|%* z@9_lz#qp?RP;{obe>s7@fYnA5VPZG_jGN_;&e_S^Vq;PZ6ekd-bNFSVvCJhXI7Ra# zEfEj;NbE1;x~p)09)M1i+{jJLVFs1FUU2h$c42$`d!`O{nJ~WX-rv8zS4;hP;F&B4 zyH$J}v^$l?ah=q-sX=H9R7cVeFHVZc3vr`0T zkQsXfQlRvVj)~vfq28y zL>iDv%u@Qocp`3PnhZ+WoE0+&KhDx}Jo>`?&AGSowhsi(nTMGt{~>3qFHa_-Yg`X8 z15OW-N~jbpg56CYWvtq969u857DyIL$M$eY-53 z>nRJQT!TwL_^a-YdV6b+4&jQqz{icC9s@rdFf-0n5`}RKYyqXxORNL(CEWsqm=6RF zMljBy4Jq_m5;y}>qnQlT?%;He$@IU0A1DX7b!QdCU>-`XBs?$2MHWE_)E;*bmqSAIYZ@U@OHbnW$=T79oe4y!VhvNs+(My zmQgaLY4LnOGPCxkM=hSiw%%N&{qZyzOJ7nBYyNB+YZ{(c9~{54{iwLYCiSVq#qKTvAEEUr9Vq^|U`G6b-yAMmv(mZ^*ayrUZ+vqH!J}Z(qI!Z+x(4qU&vKg3 z7sn4)T(ofo_hNJDdJ1Q(b0(JMYEp$x{B=`voxVOm82f#3Xdf}F@S+w@J|v!t3C}{o zx@x^%`jp`7V+)n8(ltj@;}0?6mT0z6Z^YAF-^cZnXXGtyOqE))4?r&f3HVX<7^q ztMdBa1aKlzQTujCJa=NAv?|HrpBgxfx$xn#Z`X@7@>pm_!Vk@!L+ozh=!`Aw;c4kT z?URa{YdPlvj{FD4f#qsXpXbNx8l&}9xM)peCG*vFujTi^BmzSlxAaYF!Bvy=xXE)< zO~MbE<~0Lq2xyx>Qy&OFlz;*BbaRr;bT^F%EhTNDb8d2NWY1stQUcP@i(`$mT#JHK zX1{W9-TTRQVSa_CwU!0t>SSvuK0v$mt@ki1*0cYPGQLRntZZN5O8&NV8K}exrySFg zoBpPWvr&1M77=66i{ukcy|)qm)6}XzzWnN{zzQS8pKbU zm<#(+(f65ae28>QCw)*ak<~#9CtNI3)cS?f)AVU6Sn09E*zBa5;}otSlnZAzbOKX)TiDuCy*r((Fj+p$a7p`#9v!Xn-%&SAx0SIOYX(QqB*Bq^7J z=K`8=nC!0|SB+gS@$PLuMIO6qaw|9V=fLr~i%kAGbK@*m5^8Ck!Zf}g7@QdsYgxDs zJm!so!Nxn}T9HrgCOs(i$IVDsJ~-9{@nwY&4@%;iLoFCsg#gJjm(Bz|6Z!X<@F+q#gco4dc@3yU7j0Y}<~>V=9506E>4A}N z_p5YcZzN}$i&iU)@@rtxUAHL0{<+2Vzwp4~bH3QVDFVy%yHKdebTK)65i~_oKq)MN zfiD5pSKQFgvE!G$EBteBnu>2&aDltgq2>$^{A4qVZ^_QVy<4cF#B?NaY?Z*vw!)Ju z3g>Yh)o$|5U~{sGK_AU^ zYTG#S9E@Paxf`b~w&My(80{eLbU(NQs@PQWJz$nCYAz972avGl9Qb%sx$)c%-$i!4 zr^83GV?=i$<34Z~4lHUe z9O!5eTp7YJj=mQcl1b#`3ZjtlduQpYL}$IL_L1bb23lkMR{-S0t+z>gsl~_5tzeW| z6w->M*)b>Q0`eS7D+kIs*XtEqK|RCK=$*#wagPl5UE+k70CI&WiGJM;u`og)a^4+0 zp(L^%RSVw^g88V`kc4;VU~?=7J0w7XA_rN)2GYso`1Mv{ehTUzQ|Y}J=i@CKwq|^MhLKXzvgbHg;(68|#KC78v?lp?wAu5)=W^CdwvR(x>1!$D z>Pl48FSj<+@FrbSJMLWD3grH{WiOpE5=|~3Oqg3JD%@?X4^=(dI_xjV=va=I+`U`R z5EO2qOL{~hf>L|kjSp5We$VoUB-RDSfGIXewXom9&-v@JujN!4&b?NjQN8fi-ThZ5 z*XfSS&-7nXl#fPJTV23-19n?#!x949M=tHs#V;L$W^ku$w)lNha3aI9wWK&qte!o$ z13SlyZ0e%mGnO@x-><1!q%~x3pMml5n?Ek8aOLcM^FA z1VhIDYIvj%m7mD(rHN@_HG6+QO4d@Nowqwu412OHM9>Lpv*1_LYn6Sfcq8?zS_FZ& z>mI*ciYb+*xvUgc8yW^?>SrubdE+77mhs@QbB)kP&hxTF6{-V1+?j*}>#J1+=`6X( zGI?Q4ZvKJFD(oPFDiq9xX{XI3>}!aZP~}pfE(P=bh$gdbYT)EP@dkAFM-b)MiyzrR8A4a$T)T7MH@N`XGpvY+V??sIJ}m26l>6T5y2d2x9oA@TBc%4`jU>W`C-1rts<^5{PuakZA@y8Jfk??s-?Znr-t z3(FFC>&9yqlkg(t9<>Dbr`hw&3a6v)bDSEjde)Y501YN4pW!LNmBF;XMCq_a z-~;h*N}mZU)2>qVXhr*Ve;Q7mu9`1Y*8(~XQ&!qq+FnWMc$!h;S2)5gyaG`n_uT~z z8m;uHiyJ)uc~4}wjGLK7a1X!d`Hv*|$UqPz+Z2ByrlXmAriHSP{EVL7xx(W$Fs=glrSo&LPy^6+tc~2KjcfZeH1jlf(h`IW1IvLveraxf0!`Y zH;yCax;TyDFQl)B@mdqPk0qURIF;6rC$+|7<-8|kA{^ElkngxBm0=Mw4r;u&HO#(s z5aB6%U($7FiK?{C5@h(L0l<9P`W=%E{IJO0T8p124>ncjt>W}J`o*7Ndf~&!N*Idb zsF+)Y53*Z)iZV#!yVZx*JhB&PQ)o)ZIN<){RYd#PDO^PujUG&=ifJ129 z^IXC9?!IxO(hb$DI<)`J=mVC;M@ak&=M#;)A`L4F0-|41%_@O^amKDKxezaXu zK*J8m%2j9e_^u*|%NMXJ0q_T6q1{KB)VlCILx5Ml{0Fs~V%5nh(kI@LU*yt;_Atg) zu)00}j9xDMYelr`Rxja_skqBdTn&Xsa)XHp0tX_1A`Q)3MK1?H zbwFK={7Qt~+%tc+z-W_u{I|AS-G;{g7Fyn0@=^os$EE9D~&l|Ta9EY8Tszqk((bsuP zvD3~aDD812$O0xUz+5EU4K;1k|HFu_Iv&Cy?*8=sbfdq4KB1*K|D%kb~hSu5jRMa#w`U|5@TVv~Oa^@-2{=Tt^HOb-%~$qdWJ=G*@h z>=k-(oRKFs;-9KznHF~aomZ$y=rNigRDn>>lljB~xZ}z4pr+FkSmfno@-5A@FcllZ z!N7%)#YlKTfV3kO-ZG1J%K93;9J+1=s)w>4LNz|IO}x!cnI~9;UaNuOu%{qFSdYki z&a^~Uj@){65Yb1YL(!MZK5_dFQLn>e3rd;X%9&Q9=6`&;fDg9!2&>kPJl*J40hoO| z^J@up-8pg4^|7g9AAjLP`K)g4<_?T?aBt;a1-m@LaP5~UW45pL_I*z&d4 zcd|vI`oyu|eiC&>q%Ay$Jc3UDaqxrtau=BJ_iOK4zPz#Ey}664n`PK2-)^32f;~kY7?-%> z=pk`27m|&M-tyJSK&qM`Y+FGkjo)WVdS|!!WJ|nVZmg*^2v!1bW=&{@nTd@}6&335r+9(e{!X$hw*XLKyRCJ)@L zyY83!uRnQ#G~Jf6zB4KAl?5ITnNFKw;rmj+i(Kc)v;!t49SN2N80VaM`J#t>eVp_f z(7oMl{={OV#X@KD6T}}u^`+C|z^*kxi)V3>DCXf1J=p7Moh+cn`;n!sCascK$=S&) zV=h@EM3KvDxMnoctB>N2jXFUF8Q}K3(e`nSdc}FK;_Cy;?HdLrcZ@6I2HVAk)idY}VaE+t^1)eO zVVP0{5vcNti|8xR-0>vtWI*imEFmVi^_H1pmAfq~Kr(NMhT;jTBE4?q|0%D${(Y*D zO|PU>ch^gT&)RMwH_$RDy2TH48`H_p+X0&?)si_9vOY;QyW+GyQ4J52^a=_4;FR+^ zR5`)R1#2VnI&H|6`@Qh!)#L3)9bDUiO2JF=D=p66bZa5W(kHs=v6U$Tsb}+TExEZb z2uog86ncW6UzNHfSM)PCRG+=Se}*xj4qNeme;#+pk3`XpiucK7o2jh11UkIO`f6eE&!I4pG$J+>V&v)*&&)@QK&-zYD zN5)(d_zWH|N4nj-GD%;8!|;*ZbTMrmc6cSgey`p}=wt16T;&E6{iPT^VjK&QQb@nF z;zO&zoeO)sqa|JGO!iemr$Jmq)W2}^_e*~Kg*u-63w1(Ya;qPBVqoIWve>a<*^FD1 zObw8tmAAs)tSGX|XI7BP`3q;IApN79fs@94kRzd$nm+3$;%)au?10zv14vWUN`E_X;-ZuKlPyVpfs5NCdwYggPq$-)E~S<^|WJ-9~4j+FpRCN$?>?|7~=@5t<-L4X<2S0 zX=b-er7My(LuP}k!yIJOQXS+_6P(>p<7BCLa}@(6I@?%Yi=DO9rOH^suSlFj=yC3ffPLd})bPS3#=etsCL z)Myszrje;V@LtJzo`;Gi-Gcjinr&|9z!To((WhIz%Q^4`^in%wUzr^9Ul-bg^|7hJ z$<*Q%eQ=G{C+JBT+7U^xJTD2T_9{45hPIo8?uF&CP&Rc^TjeaL$qy?)QS*<|5(IyX z3KFAzc=*<4-Q&@sFb?iQg=r{BpL#gP%TN<{r@LG$C=CCk38b4U*dp1Tr5&f}=ABo& zOJC!%zfBk6vG%B1J%Sc{3^v6V)g&rj5EwF@j-q6K8VkrNcnoEx#N}jx41g8_by=oQ$Vc0BKhk; zJ`>$$Rjr~^{KR#bJW_S!J>7gkZpy+_UCA8jyAu%Dd!k72G}eZ!y6E%9h1TPN*A<=< zQzDp=7ayH@iVA3)YSIuZH4^mIl&nvds-jgt80Jhb&bMzED2o{3CRaGP0x zaRkty8~YTP^CP?nT@bd)Cq2U`uPbatRPEak{2*ifZ>Sj=ffvvCn_=qJC;rfsUEwYx zF4;E}0LGpeGO0)&GOs>&6A%95#LurQd@z*+p7!C{fFt>gMn6 zm@$HZ3xyOA7Bz@9IT=IJSB2@!yE`>_QKMo}N(hJZQ3%0M1QL5|V$r#|0#q+qYJTu@<+k}P zs?8HPR(9!oOp=rzF720#7k6U`%lYB2wTy8HT0GssSAce(*(~-yuQrHg1yCv?9Ak^u z+xO6MsYc#fy!dD$C%7X!GDHnJv3YBYkB0-KUt2qG+tkN6(`E|eqj)=azGJs9gE>(d zg$*!6F(C^j^H~FKo(y&6I)f}Cq`->bXHK?BM5HT@_)KkeeoU_TT;RDE4@cp~y9L5} zyWmSm$PrHef`D$RRM?wUMuqssLD7}@*5usEc-GbnqmuM9=Z>hflTTOtx1J-^r)k+6 zuh61=&Ytx4Jct^d{0w?@ReY$5zav(Boi~84qMVi&El+)J@-zS!*SM`{Q@zP}Znpsi zmckVt{cYuJTHvvJVsfxaTH!%L@JHWR&&q8J3vYq@x=Siio!~?SwD)76PV$DHmtD@b zWZ$sO(>K_(2f?Q5QQcNmA+;UiHny|8*d$DWC9t&D#FQ}oae}I`tS$5bAwi=t=D77X z@gnqv9-+b@^0ADfWia0QU#6nJ$zr*gUq)rYhm23UxC?9J_%E?wsB^M2|hEx1F05U^I567UXqDbtt(i}Hd{ zYc{Z4J2}DGJB|u>*dQY-QUpu(KhPx?$m zegBFAsD5-es3r3hz4xDjHp4(A|HIyD*|(8OO3tWkYUf#zDs{n|Y^93SKo$N2&>3F{ zP*B#%8z3Fh^QTbE-{((7!J_Z>=9v264Bqe=jS@m0=*&B zPoY+;PEX2JLZzOZ8Yty z1i7zj9=jotfIPgry{ON`Ct6vv=d=_e~F>Vpu{j5itk@Zy8z?#Fv{zA~%Vy4^Gs!Yw;^zDLJwTJNc*LidiL zjZWEv;^-JJl#TI+tgGbn+>N_=ro4$Kz&u+%I4;cp{X|U&ouvAb*^J%ui4b~8RwUA+z(FevE zCAx>@M0*pUW#*8(uKHIrqV7oP+O|{CELA)N}ySv5Hq_F8%ZSog=1lfWo z&aSLH{=M<*%9${HE*N=DLEWbujm%zpfL-vJX3&9rF`z$_i!{?)7V@Bce1@LzcIakI zVD5enKPfUexmFDQfwR*pFE69P*|(a*me1_R!PVeGkzj|(=hw-eL+t(9=Y1lJ(Q@&c zzwvn_hrXd!bmP=2df>sRBpy^9@kO2-5#UZVZA1u4_`r0njD{rsg;_kfY!#GB)13|p zEHT}chF~KmGJ5R3L@cZqyG#VTa+_mys<-3I7d3GN+^8g1x2jyo{@f_s%UeK@aHtA@ zJMGy`9I&mDN;##$Z#!ZoA=o^40kiJLcUY_8@Dr2LE4uQDSjrFdQkXAh99do(%O}eQ z+bNA=4*x@Q9vMarzN5Z$F?%P$aN7`oucyDzeGRSThT#y73J{KbChq*zI7|1cElf3Q zof(tvDe^|azF11Gb5Ezi=y{9{jxuIBo(y~dic5nBo0)KNCx6S3U*@p1W;M?k3SO4O zW>;sXtc;Hw36cBdk0~; zF4ljrH^o|WsmwV0D(El;+M%=(SW*!-u)5`6eb5UZ zY*Vn6e@wH)cmHof05Vw50V|aGo~}Lfc;yG&uB=7*!IL%+5g4PY7QEhD@JR~!wX9B( zDLAH)WH@G|!*TRJKwlZka^yT1!;CRv$N1LEoL`Mu;DG~w24#btK?te_zYKDGhf#OR zVk^oypdUJv4&qjgcH<7vrMx%r$~$(Zg&1#BzzkERnBn_P^P9+9ZfERYh^umUtIYPe z6=YNS$1&x3Oz}jH45Zn}#{hWb*hJy-O33j#2=vxNMb(DmiG`6MbC z&B$a)M9ML)qn4UO`fNDJQXWkxs+1X-$d5S0CT`m|ddfV*$*&gfY5jLZB(=_%N!9>k0&$HqrKHBaMR>wkrmf4wwW8>_X1f&@Rl~Gyks~_#kE)f6Y={V=CwNhaiJu zdyre@p?SWclSw|YbmD*93Qy0z{cUyhk0JkFt}Q+GH;*y@N8s7$_?Sw7)~4PpA45mP zw{00;Z5_qYhkRGHfYRPXqOS`Reabr5Vi)`2>Y`2^zCx`#*Rpc+pLXD5(2^JjoDR$D zjZ^Pq>w+i~hSFpx+sq&o-o|pEDjqFK0tQyV+}aoE==!Gwn9pu+;sIvt-zD?67_-s` zZr9+~4@I)0^J#0!&PhTs{Z_Pk z=BK_$e=G8YHM>!|WY*vrs^)n~gIrm$gypuEFg-zxay~FRD&s$rm}o^Jdh}WVHC5lN zyF74+pJxo0T$E{#Tg1Zr*%*#CC>v}+n@;`;(Ml73_g%YnKVm0#qLkV<6w*EM~-1aP;MR8Jl!s zHgQ5k$<8|UKXL9;`bhwpKUcL9Oc3Kn8~f0>$DJG1oo=z6q$-zo^sAQb?DV;#K`sW+ zO*Z7KJKbtRU#L>Hlj=BSlZ+9ETz3!Ln%JN?dL^JwxzGqGvWNg*@}`6 zefT@K&W@@~nL*Mzgnmpv0+7$_!d`bUK#280ej;c{9SP8`h&xYzSYb*PI@7;Z9ybYY z|NDH%5&nun>^paNg1davfCFNr7}I$x2eB9t26O4foDgcMYR+HXb_{bCPJ*&89Hu*% zLa>Tw(HMltEffmw9RW258LXlyeNguXu1wnMRT-k9WDctKqi|CrB=Xz(XEgH`<%JX_ zx?DjHnZae_U~!s>pkVWvi7_pQvA~Qpc2QD`^s9yqTB;-O-tyBJJ-Z*$2YEoXj|42u z`>)*{mF0`bfMZw<#6R5MCx`b)S^!O!{b-^F;88#lV!ffHgIxbYk#~US5|QzMdwJvF>~*;I3vcL)in?IOteOJ4um{j`NY1z+G+vKu~6?0ej{VWAMwoWUdiAiMYs< zjU`m*wqmg}*L~Qw(X8~#1T0|uO!zwb-T1+kTFZ;Pe=jVTIw>!Hei~3IR`^){#swq( z`i8~7G$IZ89=;ug2eiAECg(QNbz5Yl7i(v+3_sO=L!w zYG7Wgnxc~G*TOnR8ZEjcneokL>2yzJR9p;RMH;k;?7PC0bxVqgab?tDEYx$wITSjYwch`Rk~12Ck2?8D<-mQ9|Q@j zM<6EDLPANn5=?osEOP&a!4B`)WegfTK!Xn%zu^WQ`oLraWSpFLt_E5nenm4fWOy7E znH^JmR^O?QpU)(iE&|5EYDQiDOh58OH<}8nF#VJkN8PH@?Eb$Q392Pz;4u`n08$v6 z@raIvHYf&Iix*le)3e$$_+sa!HQv%I{;KFjr~R^tB1C%_ z-v%!7dS858!@TTHahFcWLM}Ew!Z>eCUc-(6&%`+)peMJ@;0x2xFOU6dGv8-OOuhou z%-vUv6YpwDT+7lh`$uT6Ae&;YcDko&JYTg7kIr9?G$X6IWwOwy1>Uu#wOC!t;HOp~ z*>T$iML$*ba@)Fz_=_+#uPFX>o|Dx|T*+ZFaU+>+hh^n~6jWXH@Edg7Qa+>Ywv(^b zle^B2nE_r2jyK=SDG#)ETf2NE)PNT-DC; z^R6xb>(TVaT1Uj;Os+vmrN1gzrt;TGS4i5QKFF6w-F3S5)u0KX^uf&&H*c=rg&ckt zbxr$|2Qawvt+ibnpgC#U?$AY5I?PHuq2QlO^N9OkQy(>UtgVdT^E`7=+1D&J>s$OCzuEYu^wVhIf zcrgU%Be|;Rl!pz);saRnIcPsv`_4f@N5vx(A>DfMgRg4IF)nh8KUl<6@6+$g0A=>%gz9i*Ba_5Q(MBLz+X=CpBk~N++xuvGO?iCqu1iKY7OuGiuKk2ra}Tf+ zW^1KJAZusfnSlI0%*M=CigC(Nn3qg`Cfa;8l(Y~N`ICEnw` zl2H6j1r6tm1A1mM;6%;9kzQ0oyn}W+26|3u8LxwiMzPmV-Puxe$$4x&a2=c+N~XdL zaWbL9pCniEWLk=DU869}%=ADC?OvrqAE%ML)Rw*$=)Y(G8(*aF$DH^S=G@Lp++zeUA9-17D^#tXS<&*HB8laC-zNAe$;(CT0A}!dxNCgY z<&YT*hio{WQl6_h{_uM=OP5L#r~2OU5JI%%MZV|A`;-?k*O#P@x6Hx9@`=Zyf?eTv z^7=YjEdqh`me|cMTZWHs9sFi7(6@ik z^@P^R|Lu;%AdSxnSwrP|n{Q~u=X&z&<4CM#-uv9;hHLBI*Lj?`_|1MoF?G#Y+wqf1 zkLZOT)1jQFLyiMu&EZe8WA9R&x7lxbu)c=?AS4UKqJ=Y%i6wz7tDB{QilT1lghoQU zM5vBt(yvOU!a9iXO$>7HScE-Kjhh^8G1INfiwgv#046I0gV&4Wh01JQ==5!vznnCS z31CqhBk*8;30zEyIkMOEd(L1mK1oB%rTNqc+X3r>`N?G4@hvRgx3ck|c6|IewcoJ6 zO(JBeq#y134Hr%6)Pzv+(VE51=(~T!1yTbpssX?P(KD$K;hi@o&j=~-+hm~qXD!cN z&K@4)aMwwnYH}AXPfkg~jjiaS0uS=#F*lI`O1QFi4*D27N ziUvl#!jBU95dFN9=~9Y`BTQr_UU_#2X^C*$s5UrSTQs-D3?pX>pTOb*)s`i|uB?@~lEL-axu70VizJ`wys?#3h`F4O zwPn!Q*8?J3P=V4mC)zt83Sc9(rMIx)k=bpznn`w)S{7 zjaL1TxZ1w8LDD;BkutU3Sji;0FSlV5k;oaTr-d^=M(ScSj%MvAgI70Jq&5+0HJ$YL|f5=jVo~wNNdDN?z5P)*2v|xm3)RWSJjH+UV_QSnRkSda!^nb zbUjm=@kZkxWjKQB{YWSvs}V4gwzx@9Lmut~@pSI24r{liFO{q*nEGiFKXH71pRBcz zi1$QvbTao0FL!*4jJ0Dt%Jf);MqUJE#Q+;+b1MM-F`y?KK_6FVvQhO+&THR)oOQnj zFT3>P(PKpcLD~T}xG#|VA)m#77y)Rqi9znYjTd=$B9Ih8>ywybqhqB>nWyKZI}OLU zz^~rrQ9G)~fRiP$GecPCGa}3G6#i6{M_j`?vPOk9m(x*HhB~IT*s(TqH z1tkJzA{U>$kf|MaZje0QFP&sQs3MZD(G4MX*O7i}jB_`_^4?ospPcx(gg*;?q9X_xSH_Nq)x+Z*9;e2ReNS4OszE;Sq&L3-7f=*(pe$w*O5Ya-ETWLNk1Ol4X+_u)pb|M> z&CCxTp&YDgoa_H;?@f8c(u3R)ehxD%4^FHbT35fI`9WMy;Qs{)~t#?JV-XL>uovYX6Hr z;&>nRBC4`}BFK@2u;?$=$$CXYyg1nz5|BQC)h%J3zSzTZvM4DojtoesOX}$kn-$uq zkqDl4^s!RO`^sbK+%m}YXU%2!?NGB-411V~rFhsiJ=lgN&;EBr_=Uoq$w&xoi}f2}+TH?a^xRwIhTq9qxB1TjHhc*C z;=E$8$j)=tC|6DaM)rPW7a>MF5`%Gcc&jk`zcrmd4q+}jtT&_vOpDHO6|evLElp($tiXVHM1*v&J^^b* z#&3t^Lnp4^%)yt|`>)>3dKdaaDbE0akMmb5jwJ^@BPN^+SK5%#!bb()fc(woo~lRA1|=u8=&Y7;m@H0Lk^&$bRuMC&l!?e}XDP5;L~%5+`uT zH7h$j6Y-W$Q#=p4)c}3(3n^*uwIKsr4BwA`p09~pWfyB9K+vH35-mL7i5~mb9~6S0 zGsJP7=ekRUtYx`H6heNgj`Vm zke8Olen)+kr=q~4pkEl25O)w+Tg+={M04(d_fB$B=ke?5N}XVbm`M&$v`q*jhs1dO z^L_Mt3KhXDleeX5K!SW1X3ZmNk5lq2vRTfsu4^Z_iM5GQYw^6z{%v9v^U;w*njvF| zZOf05uOreEYAb*f4w7N0kdJF3ymI4hs!{K;-O4?}JPJM?J}D>6G{Gt)FFA$hq0MCV z>|OAFc>Oayd&joS>TkzzWyMVvziIMdODkP1D{*fm!99T0jE5TAv`Asj@NLmD4MDEs zhaK~m*aK?SPmEy1qGiLv-qJdc)K|o4A@T`;T_o!ew6`>Yp)iWM9ePGVYmG|!>jKh1 z94hfQ$40()i8cBnXSUGeESsFJrM6dd0>grRuL#%FfEy$tHcVNox%Dkzj#iq?TPj}7 z)lmw3`XpHCV5g*VCquLps-1@UbYQ4^-|C^FwF+2nu3c4F3=M95|r(C37QVIIq}bQbIk?8Dr}@BZ@xO(daOw zFpKjN5~6p!9&I@rlhnM`yd5MmE~P{oQNTOR0~D>gLg-#3iocLC>|vE+);SAqNAGI7 zgkRZA6biyzpgb7YLy5U3y;bd36=C~d<|yszt45eQxVO`~y!$AQGQ}h_hyEES5kZV# z!nQtDi#|?4h~A<>D*)rV116AYI5!SU@&JqOyUh#KEBfu=Ba?`PQ!%^^bpT( z7Yu8Elk>QEsB!A17&5?!9fhVu_6s|e<0Cq*FVCho3?h9%2JQcgOUQ^FiQ)`D03$J{ z(z0+)X0xH6x<(N95EeNQNuVg7X%qPBpph{)5hVW3uuG};6@%jHm5?Noc4@+=2nqLL^c!ms-t3ae}82_pj$OVl%%ya2z`$ylY z`fI8*4UMe9>KFppYgzrPX}#?}7+T`0VT`hxH~;%CHxhrH6Sb>e}usOSPTdW zh7^}PS?^EBLin(0LW&bXla6W6~*6GW8h4l-7e}yw#9o3|7rMw9NjW4nF{14o>f(uRJ$-VFo;Hh` zpg+F!;O}?=ifrRjTTM;0S z3X5{?2I6g{fN_>yP*$w$dMyBlB~8KYb}jJ><9dii@5eDsCEDU+p%nHY)^Q)qj#u4U z|0p%;wgBhwHpAXsp8dkGN^kOOgVN;63pMe0dRMwwKXq3eY)s1f=|U7^v|)hiFE?(M z{Z#Ps$BvWlly2p&+e!f;S7$BQs5|*4Ke307v{JTvLD(75d9@hoXBY8QwC13ur1Ty% z^DA2F72Y{G?cC?H*ADpMn#V%}U>EKX_z^srF7b3Gl%w8%n}ZJ+#YJ|C2isT1{*Us8 z_Cwut5k^)XY+f)|y^Gi4k~}|8{kZ&|!3K-ewlJb&BZw2ZI*Nj%Ol<=K&-!~$Q#Fgu z=g!h`V3)T|oQ@k|2hM#*g9hZQ^upwf!i=^NQC(cpz)-r|FXZJm4fJjw#H{pWMr5b} zc{Nk(#*pkfW@dw|YU~VqKfHh2bG72~R!-v`<0hN0PZ&K5fO}?l72N)uv`(rt z_|zxoj5bAy;mOEuclF@5DwI!gy6y{x5X$F`9gT0UcMiiiqWL8jLzzxc{)ztDzrH0)R;zQB9r1@= z?gsO6HL&auz-r*+Qe&M3<1a?~w6S^>3#ISQGpj{Zrj)sauY(xJS=LY9V5h zI-<>^zIR8vx)8=r4|S0JUO;T_Not671vSZmDE6xPmWv+(=v5((YSw)MN5bGJM}#4Wi$mCC&tU0-fQ-k z$%@wPGdh^Qag37xEq|uucNnIV%PP0Mch~)9BSWChhe>;&ZvIP#lJBf} z)tuSg#Lr&<(CK@r*1_SHmb?uG##YGZG3aC9Mc{Wl?VA<-lVP}-&GSuhM|a;+qIG`^sAr@HvuV zeF6sAzHncT@e&ad-d8akRoJ;DdS^-bF#qX7$hXPDlbc_L1L8U+ju;B_l3jMi+iTU( z8>?jvd0_P1BF(}mvpq*w-F~=@PUADv*s$;MjN&jj(+Ggcp2yXP^YJ1N_jjlEy%l+4 zjqf4MjR;$V9fqWNSU&)eF#IsutX!^?(^m4mB|JPJ>@qryPoE72DGvj`SRK#NkIoZ% z^dANS(DoIT`wUOgShp$Lr0ed?dl_fnSsK3HC5#Gy-Ee5*?(qg7b2hpVM$`5^VABOK zvW8LqeWk!>7UuO66PjM%?m@;#rTQL9n;qn+Cl6C>XSJ_ZSJ7yRsW%Z=@DCFIyeHw( z(5F*df9du~J#M|Q5^%Cyda~}}n18=Yn#?g8R&3>Gy$6Kt!Honu_;d++`SzJ;F!UcW z3qJ(ztmh}OkNiud2I7c6zEJQVf7Vp>RcT<^X;wMzwcFl^jy3JYJG zgg|x3%K1CZdEv}?TQzBTlf^;-mc z{)bj$g<8>xGxiUhHQworrAm(MNKUp)X3YF$&mt8tNZ%aLa_Da(cRvDYp%>-YwhOJF zJ3vBk!UZ-rlk{W#$k#h);KV-btSwt^?Z`Zw3Q8Mcpua!6_VmTY6&WhAS~~q!E?Ihw zYrU71=bf8pq^FNl{Z*7|z@>QVqLX?JF8nOU?^??=^D{gLba2H@-l0FVEb&)8Y*=K3 zw4gLK+ft+nx&xFHs{od#$w`KtI&022U@@4Q60$0TzL?M!^;_)HmhT(2*#xh%85-i5 z(I)MTBM_Ca8Kc;zAb?VMUXRs3@kGfc5mOL1Tz(V9)YwfHxq;(ZN}?$1@O z9{)GVobp)C?v|>FE`r2lQn1Xt>VBQtnvL9eWv|T{$2_)l>{ZUD+Wy`@bH@O5tg||? z+v0ZEpzRy&^S(8+*xVM~3@>w0GAL=7x!YfAKe-vsTZw@#y=%=HGWkS*;OR%|)K}&0 zF7rMc`8(Cng-eFd!{FE)py1hx)4Ypr-49gQpDdO`^unGOPD$HKkHev2B z_X~HyQ}eeFd__sy*{Ed>{Zjo=0p31&(rzu!(tDFY1YDb-@ji%$xlG(AxZi6NRN1b# z_at$Xh+#%Z>?O`7E}F;_*%*pQ7XI5QGE}q04ge0C-%Cwc*3KjRu54dNThjp{jGV~5 z7+Tm;RLIEYXF$9@iko)hFK68HACMdw=fj{>0{h}7LS}D4Yazn)@v$bXK&GV1Ab{Gg zVuT&EoSJOR*4?(YRMWML|M1|ni{<${K%qsgj13-%6rckzC^bIS*A~jd7^b`DbZc7f zyVogD;Vg~~#sGPwsIl!DDi4v_eMa-$av&ZM=JntImawsUAgN&NYfXCuitL#j#=fdn z9+u~78(wz29y0CFBo7T%(&U~@`#6)a_=Q-qUkHo&(E6RcI^M<- zt(llzbT*Optg?~2!lq`*IpI#wQ(E;(VS(7VgOg)7;_XL4SO_yD#andqGJ4YXjwJ zH{17`<2XG~0ZYcS718npMWnC647s$7ui0Jin!z3pabHa9MbN9&BTr=ubOwN_nEPq**Vzu3)jow6BRqLp905CEny z@3O7JF#`2N*%dn{ZhfY0t;*jxfv(;zaH&gqN$A(!&kz~_x7;fAtp$&8^7Eai_|pcr z+mzQ$-y_$?<`f98KBO%k$y*z%<31@(!`9pIZg1nM zFuD(N{3~}^}|K?dw1dA-b}pPi+LNGtkyx5 z1|1AM$$p&xt0^}nxY={usWS=tM<#AR&M9br%p~YbC$q4Q_^AjeHvqJt>NG?zRss}C zn;UBHqC9hW52^r|-_^M}>4Q!U17c&0wTw+P2F{WxJOJo5vSE9_LCn4UyW3HXM>*m) zFTb*YeYb^#xG4lpkqfV6R;cjV4*I@jazjA+8TmJ9?I(@pi9fH?>)hQLsdPs?dtk`) z(1;ow8Iq-Z>y*iL@^x34v?3Lg9jCgQlZ(D5Gblq4b$xA9+SED9*A~A;*yQ@Q2~D|3oV%ftC72GlM!r%tl*iPNB}?r01^a{SAh>RB$j7#b%#yf<@hTiL3ecsW}({`nQGuYDwmb%Sq*a}OP8kJo#8 zzhz0FFoKI9dlu6Jf#>D2eb8L^08rYo^ul2!{%gfA?CR^B7@Z!*cD)u7Z(pOFp`ytq z+Q2vhX5t3g6x{Nevb!5N8K7IJ@N$BS&v}hGvj(8_;(T=qhdt35G}N3I zfEp?J%}zyC6250655HZ`{<}UmR|DwDY&@v zLt%$v4MhyfZ7ItV~*Xq z>W&!JV%&VB_)UC2nxR?`6bVPzpo>DWZ`|O8Kp88wRl5W|%X~xn!I+pV{=*Jy(06K2 zXx3d%xEbh6!TK3fLIz00`l~qKF9hfUq0g*$+kQWU!4Z#l+~~f)qia(YATg(J_=LW> zvzfdzDsGpUr&q%As$3EbuZ7?Yux8GuHq#Gk3gvF1UIj#_N< zGsFGlF>l@c9reB3f6aTD?E9Da1EJ0ZxU7g^SLqOhC(i_IlOJHnf66&-G++ALkzJ+2 zvevQqGjCzPq~%uQH(nP52t}Ut^ecOmCumnKH}XKkWTJ3VdIo3=;G`&~REkE3nK-7N z6B-klDLee0GBD|1pe6-mZFXbVBn6_GEaVN@wm}}%>HIP`6P+fA;AbZ%8Yi9tq+U;_ z!A;MenSaVIKF$qJSnIrYg31TRuJT$*=hJjo#LErW+g%)Rzo_{R+D`D!CeOYy2Jt*F z^Q}}B>TH!*AB7T+qG$U=WJEprO_nI9y`z)xEeGLP^}7q9DzhxahDyh;J$?iD%@*+R zxw{tw>o$aDlCeadFDeP5v&xpW=g`p?wJe@?WlrkF(!RD?7F4Mwn7F=NL(9>!RR_G( z0F?e`dA=$+0Dzwh&_?~jUdb2SE}X&U1)kxxBi%UhIi6H)^#?gXjcVf|X+W2TPhK~?*_kb~;5=CQH192^6K zOoi_1WF^vz2fg~AX94cxo|NT?xJvvry>*G21)pXDpb4TTz0r~&RxTQKmn3-NVre`q9@%dm zxq|xap;PRiomZz+^33z(^7#rZC;)q4>$otb@JRVT|J}W+=Q>8Xy+g(?eDX}-T=`=- z&8_K>Va}f(!G^^F99De(E{m(4(vSFa6&xTstAOb!*Sl<)V) z($NbjO?|E~R-BqZo}6QH1_f3^RYVpb^yW;^6|`CtGATOx@@tZma+I z+h-@swy@-x*#P_bG{QEosS76n3qvoZs6hEj5hjLmHN86n2#~${cPt&S6gxIO?dll}@m z_Y7IwFIwDM5hGt%))=z*b&hfAa+L>FFs;!S=||H4Cm<>R2AI)6b?Nvgg_BF;R(GF9 z6Jzw8MIS5)8c_E5B>~Awd=l!t3wX;#$0f80EKlh&kJ}&6>$-K>U?D=I$56U)OG~%o0tqJST=m$;UPKw`& zh6c3%D*f17)Gy+Wl|8>!0t=lND5h{T++qT1crHPGc$l6w&-gFos@ZSa24U+{4MMxF zWa{M7hL+`sM1g%Mwd8LZq-P6vlTZVzFuvGsHfkPZ_!`@duMhq9uJl|?@9cycFtXzM z_V9k1mZYvT0|Kd5JqTsCY;t>w!p#&2o6jgiEZgqM4`n8S9Xw6tE}U(>-M*7Pl5O^> z6Gi<(d8*R^MG+pKFknO5ki5aczdkn-$p0Rl?V3vdZrv8 zYndsUM;H8sH2iiv+=V)L!tIU<&PED|p#DT?a`Tt*$t0^qKNWU|OGaW2xp^B1TXq%> zxGctbetscB`^Q8w7cf*<6icp({m!bQ`tL`EU@^4fZC_EGImBW2k-m8LPVFm}IewAs&Q`+O+9X+i2s5u<1RbfRnw;Fxcl8!OZ(XBuFK#lA96F=(8E$K2dQ%=@oj zzdYHys7mnNz+x{<9F!!%oM~Fg*6?N1C(QI6+0u%EGR1T#=^Mx`S|qVlZau`uZxG}& zs}lvxF0=sMBkIszN)XqgpXi+kxD!a~Q># zX|B~}n-YMV5ga|v;qBY4ykWhWGqHWQ#xjo=F5Ts|w+5!s<$c3|z*xQxMT3>uyZjeu ziwNZ9%XJm=JY<-fB4j)rW?-_G7g5aI`R)4)mZ3P5r0ygmd5uU7j9(&ZUY#zu@qZxq zB6k_0@Uvn{QvHb7*h=53J!!sPd(O^bY|Mbj?h&MYfS zIilWcvS+B((~haUJ=$fkW{{aiI*pWj!tP{3*m^P9#hP5eJ5^J<7nYp2(+;(Wylloi z-hz{L;h*ld22?s`{q%L?Bx%&xg#ofOtL)&QtRMCLZl#?o=#`P!{!JyT2o zElZ1APF#GJ$!8jir&`q+YlE#CO=|TrawF5e%kMOpU6KG7ALy~+9w49q=f>|S!s|&M!^)YUP~_5A&kh`SxYb{Bq-2tafq*sLdG!Yua!wW zAOIAG1R%l?0)*nVLz?$N)KzJ;ItCrQ?rsoD9UbGu(;GACz?TfNJYKHkl*2G!E({|hlQBG^fyL>x%I!=)ws(hM8Hx%%Ae)jpcfOBHX zSw`t0&SWkoa4K0dAT;_VdHV_3_>YGQZ5X+Q%a4&U{C=M@d}G;={?<-?oJ(!8R+Lx0 zR(Oh2%fq|j);b(L(t~$^tzWW6D#+yYMC1R%i;a}Jd!KFvo=I;L-~ zd2CMC@cb}6X80x@rH+!RFML_!QP=f!enA*TDe8IJp&RogXL1uk%FJ?cfhk1SpD-ud z(L+F@3pT|!zc9kp!aarwjHh)yoP=l7Fh3s*%Txm+sLsy_6nx?FFZZJOk^`%Vs%*^s z9P88y8w-lrd>93)W4YfzaY`s!KeaWggEulR`VJLEy)fG3nceN%vyQ{(`RAn>+dWA@ zW#lb$Tat7SdErZN2N!fG!XEyR1#9>l?SjUWf6gKZ1iCmhcTLz04!-u$SC?~P0y|zn z?EWg!f^NM4#aqdzK8Wl@w=L5z$$xssp?dPqYNjp#J3z$0apdo? z^vv;q$hi7eNTz9NtqOm}_%UGwnD#Ji07GVhxoLY8I`cho1LE_?m_83fdl67Mz^Msa zP>8BXj6O$P!4%mfY4uFA9KiLxd8~C_8=ZC0E@hV7|C?!5I6HHD7$NyD)c}J7H{fN? z$5Wj{>~0-#MIGfw_yq>Q?2NXIv)~s0gPIw+O&Kair)WO^V$V7jf~_i0 zyaB52_U~Uu12s=_74dFvAJMPDpWm>A!nS~N@W_Lh(IVt_#4O_W11*q|iqYiN(CJf? zfUuS=Z0cT;px%Q4gWc52>wF)ZXD1gtINq3+0nRTAApVT`fJ>f_KINquJT+)sFdp_m z;Z_Z&8ClaYpIB%)t8>;6wEu)>pH_Rr$wn%mCTqzbb6 zlW60{)99VhN>F_xw;z6_iZG-O7o|N6DcUzW4i3XwB2u=+N4`d+&2O)*wD(22x!pop7@mUJ90swgu z48pMyKJ~s|ZY9z1j{Fd124#y{V5seNW5_sp9pUA@RlhpB%CVQcjm>l}`TY`AKFe|> z@N{8{$i86POwux`0N>lZw3#?fL&;@`FhFmAj#~4nH{DqX#Z*_~gyaPcbV~^n;0X1R z7GeI*7ekV9fe*R-)P8C}aK*$(q9AUNe>*UaMxgUy9sn&ESqR-O5;?O#82+=Nbh%QE zjyjbvU8?-beJ&Vpzx9P%JN0UU;^6L6DFvUSTX=RuevH47>T$@Ma`v|?g7@n;8$#Y3KZGUCoxS1Z#432e^iG zQche#tq;yy{#gXG5p)h4=c#Xe^h-}l!^Y$fe4*9!wCda!J1B;hw@r)fp!ljN^WzHE5t6hQlbmmQqQU6|J?UT)GhgJVoVlIAtKc~$`@gG1^Q13!4n?xR^{W?PBwmn+vcW=p%S)*GUnms90k}t`kl4GgAg^349ZPWng zfwxm#GbL#_{Mj~E0@oCu+3k@>)tYLMSZ*8(9t3zhsz)x;(NSo73mSMRSZ|tS`=wN> z7k_WpcyLA?L~qjEb)8oI#Cv{sJao(08#7@ru-M00*f&=pVx-GYCuXR;c^WzADY_q5 z!{y|+kiIJ2Jz}MCf>p4tbHr%gfO7r!5XD?H?S z`9wUFcDe-b@AEXbCpame&wIm)M|DW}1nsZ=<;#6GmRFl?y}?|}$XW!9w$PSSqrf(#8trH}7k@19 zT=`|rV9*&KzhUMnxmbJuI3||au&})JUU%OC)*pRk%??uRWHroC1;{rY&KSBB_v@wR z;9mxxw$8YjoEPw-Xh3d6X!>yC!RGr7|&O4-)SxC>UKYc>+bzuJY5PsLJ49y5EX zXMDsh$NWHPA2$zyC`0n1@AC5Zhr?a6jb=?FEMuV8I z&Z!0=o%6>7VoO3zySsQz2r3+%|Fo!Sug$e`{BE8grKc#LKrjHj92W{sKWQJDE{`_G zk^SY^;m{8^YspfJCelhkz&CLUv6k_#*iKG8`%HaayM12uBC|GA>}s9%2UYntQzkM~ zA~^-ud%?qW%HVwpCcIlr$T+)LU9`Quwd7!-0f@Gv0!)XIblD>=@`ZD-Ke-DHd8#Th zyY)o_9y>#JR~}Hz_iwn2cibHou$eXbzsUjuj=cK^rPcxQKUSjBPh&)d&PKWx67%g(2giRnd(G0b_tpHmA3B~65Z1f+ zZ!F6rsl?+ki7X^{_ODBl9eN6nzmHPc^9%c~0tDM3Wz0@0C~5lJvE%j)j8gZQNZIcf z7Ha{d!^bwEQPAl3VAlGy?_l|V_Qr* zSbgED_GX@DTg5ys!pT1Dc1$vTc6b5V^gXKh|=H6XH^3L+*eJjvkqAZ zoDwl0LkD!~g;kO`bi&|-20O+}wO7eC8do zpd<5+LKMX83Db*ZwaL1;ix~hznTPUO<+m5|V^DgqJwy`Ne7$4C;H%A=iw!bj*uDT@ zF={fF8{>mX>Mu}7e;tDe4h!LJOYBhA5{P4uIEF{QXt1H7=!)hj^4igjv;_RCZl`cL z#~0lgnSKf)NfbVOzA|K`GchykZeB@a#cllC<=(2l3$9v?Ow|lqhs5(7eqJ@_#nH`t z4Ti?M-DQS)%u6|eN(3eHv8PG(W}UvNT0KLBIAJUxF>#Kufc}grf1(T-SPOdkaI0gI zV2ikXR-$F2&r$S13KY%TNp2(_-pMs(QMbRN;tb7OP`~L8ua&lgn-wVn3BBGYbkEZz z)X%piv&ZX68--r;xitQTFjFd?xRG#I32o-~W#hn3Ln~Il=QR^;(E!2QR6eJ)+BxI-!PU>{g^CTddcMasXV;NOi zkptYpqo;Zj5k%%Q^yRj6{!g7q2w>~U6`_wvy&Ws&b|arHjQ=p4&&Ov@k(!X=zL7`6 z`y!>4IqFpX%<9Y>spJr*S7K|FnoQ!#Bh5jZ^I|S2v>zu-AdMvcBLgF%Cn)@ z!Ce(_zOP36{e&~-b#_b$`&2oucC&3W-J!F5^pZXAaWA(DJ> z9ttDFLhm6;oX|TB&WPPb)@ZN zl_a0w{$hO(MXPFOio+-SORL%<7;LNH-t8Q*zvFfbmMFZp*gi39>qx!luAnP|H2^&7VYb;zC(Q;?*T=d_x#?^c5&|Q=STJvy0FUB8ecXS9oWyK4Mp&Us}ji{hmBS| z!;pWUcU2?VH;3@`x>v8~#cYptf-J(8^WnA$z2*0VHXHIHYp)*lyz}5tD_kdXp|Y{f zi#(Lps@8mEB*5H4w!UiUMNwY(t=o}oznMn1jrg&p0331N#7XOq$S|I^Ta3OOU{mJ9 z7|R2;-&{JPK`_He41m3o$VtWPZte10O9i=eF;72g1+-6{C+3vlHx7d>6pL~ylDOXg zUTLgoAm-UdrL<)ZAq}o`T{YO-mT2IrFW>4~A9zPYiV= zW3T2&t=y=p(TMwQe8Of|u?S-g(lciGA*6)Ox9r*`UWh#wk4k3tHgTPGlU~qm-CVs7 zd7)^3+G>{&p5F4H=t^P3`5Q@MVh!}XSXEDYh^Fz|@^z87|yraviOmjEq@mqiJ6 zoL;KLTIHy_?7J1E8{z2-d%EoVt`qPe%s+QFv3ORm8BG#IFQN&0A=YdX{bWIud8wUL zC;yxfwJPI1mJ3i4_l+=2d_$$o1Hu?i>L59Q3bHlOrFK|R1MnnwVJ4xg!Q*Z%pZpQg zauy+zeLbz^YarV^j4$IfHvzfe9(m}9y&hg~Di?jXkVp2wi?gc&k^HA+3IUFf%*;^) zWDA(tHr#E`K*gEL%t4*P-#9v~8~LKchfOfd+@fhfz8)OrZlaUbq(Czer_~FX7#!-K zKKejW=anTK_Rl%Pwrei4SFn6Je+~tE{hxeUx*$b`i#lvB+TA(^;3|sV|5sID{S+!MxjRxCZhndz4&!R!%_w+`_ia-x!lh*1stsiy!74W-pt(WC=^L;HLKH#f#`Xrbz-p?w5K$Pz$w&rLvi$XM3b5hP)I zL-(?m$hg8yIx2EJuwI1AjW=~lS!PW9l>wz`hFf>oqn9W5+{Y4h=PA30I40lul;CU^z< zsYm}Nd7NyG?p2hyv^H$Da41fUuqlYPak_>bn*PXhY^O>Nkx{^k!*+(@ML4x< z$b^+hGv!3CxWmF2&dusnngQD)IV~njjcP>vsXM82G|9KGG0xgeYVW;gkfhxfLazmJ zeRh)s#f-|f7b_1YXp@ZIK9@lyZ`5y>pED-@fG8?>GVr_^el`XHJ3KD+0!UdgTk+Jh z8S>X1XJH#g+=&oV!=WFnQ zKyuwXf|CeLY;K5IV&`@D9~Ze?=5?2C|6_Ii1Zr8H=OOAsM1hEMNa?)o- zY`F-MhvR1<8!Tg)HJSA=VA%VnE%(P^>!C$zz7ioWj)u%!#6prZV0YK=AcFA1fYX9=$uF*dDDwZQE_$G6R<&`jni#$HuNs|E1(1f52CF zjO!uTG+DUyCc$^LMC>m9e0jAl@VG*!GaCVklR2 zmJ;=T$USoVjF>?;KgJI*G|!D^cQUXXcn7F<&gSCgC-i@Bfr{rKVHmv7?~-`Q-SRCfea=Yt}UUugFE& z=!9+q+{nuu+M~z8Xp?olX>t8kXKa!OOb!tePvdMyf$-dwLW#G-q^p||cm5#JHfhYt zg=^ZE{qZZ8`0(3MS(++NWc9#PwVFW>DefB7j|lHdj9$|qW)3Z4D8=n!>blI9gg4&Z z&3vbsPR+82F&4lGlbF}B+(4B^kkx4tXDw>N_hUWJ`4F{h>%A;0FdY)pcJHW&y2?j> zjxcPGj&9!iBBm!Sba$ED6N~tDo*9o}V4zGmD2eib3E{;r9Fa?~Bus1kHIXU*}Pj|LIDcwGg}8LcVC$t4I|RSx9n{K z7LNh~E(r$A;RlQj@EVRnexv}Z9=a`k0el){--cytroW1h_$7GBid8q#24?XQ&wuKd z^C0$T^i@JcCundbv`*2Vp^ZZ+UUdgJRCtDv+M=)TkA%R%DE(|Rv;wYrc6r6bs!}OO z%k-}jjdah*tsMiSvBzpZ)`7!dJZt|p)A?WV+$+A6{-hQamIuGDUx)euzb8HiD;CYng#M)s&I6A_Nv9hAvpm7{k41<$z~y43Bb>+1L_vsA zxgANt(z@^4U>AOLxhM_!b&Ht6?hNf~=R9Mq(-iEcdAkdoooUFY4Vyzltyh?zP(CZl zt<+};Zx)FuLr;8kICN>9-ctZct|Q|PzIhj4rY)B)(WTq{Qpk2cfPn5e4ADGvjKDkt zPLDyufH-?ma9%kSA)to5?{E^#sQ4lsiTra-B4E(8rm7LC=L>Y>V}Q6`9?G@{#shp9 zbvd=63n}4KbGdPefwQu6bZQAOM^})R9P35`Gz@5`m`gE~wFhjthv`F_P>BDP```8Q z()_lM&Pv*S7MPM7*%133M4B#;#k@BYf>5V`Szf*~<^D`X<)wz#gv#NI@^-#VyW}_q zy!a_l1Ac9)>qZ(vpXtbk^4VEw!fW5%GYj@3Zzjj4UWM@3MD8wX!l)~V8oE%^$=sm- zdcS}=Pn?HKDuo*@JID!_KP80OnBr!Fj-%_7t{~|{{QRdv?XYFqIe+_Csz2Ui!)v!Y z*N++Jly(Zts|8NUky}jv5D&KxX67zQ&v}Gn`K5?dcP4c~U)I*S&V)WDnYSWA==ER&+A6(IQ(L52>-@Jmh+CP7Sf7CxB$}ICKoTj$+#8VsPg9 z+8*-7O=}&7L-Ugi#-}go?4U@m+j64^0%uOJB)1o9T8q_;ALDY`vbFTAjaHE>cO5a# z;eod@C&)rj0mZErj8t9~_@7FY%wtq;ZNI~gvg#X(fNOSy*lfB9#(rZ^o1h2)vIH_q zS;F|X-`g^$v#(8$zIC?4*lb>iuQu$GK~$BdG+@?CbN4tNc;X*bF_^Lo1FTYBoodX6;S;)VO8)p9)GnV}#*l#ufR!ZA~&gzT_F6PVT zeXy#uJ7o%0sV3N(Mj_e8Tpb61YBJlARt3iSZzH~nxgg_Moo_z0S9~);#)ThEHzAZj zL+X)!)c~QN^Uxb9HwkA8)cjNu)D~0_vdC3|@|YbrNg@NZ24q34BP)>$4Im^0lLqTg zikqGdF$=r`4CB?V`N;j$kVZV_LU+B75&6qZaWLmW15T6wck4)__4Jkv#YrKAZ+lbW z2?W)qcc62Q{ZNXHt|Hx0`>&3^lg-E9lq7G?+XuRxCcYDI_)X-LA1tvj!N>pg?|2@7 zvj!Y08|Xk(jp2@DKjbqR$TJXQP>1KLHg1FuHsYtX0srz)lFlQeGb8kvUS@j%xnQ;( zX<1bx3o+*X^8W0twc8gWaG%d1DboJ~3WL-{(MI>FpM|4;aHFZshNrp61N0h1#c2AE znW)d@uy4EY_{-c5&2)YkPeETe+u!cLuzNJ6&*0xg^J!u_6d7TXwrL(d7e;tjt<0v> zR=Jk8Q3 z-X-Ai-Mk^o2QWJ%x>@y|JDN}~ok($2@s*J(jNt#Ld_1avV>ZSU-Blpp?hU5bqlxKllo#{`28vfhM7=OiEI`$T^^L&#`7UTME$ks0!cuUA zQDZ-ytVtN+3Ak8@>G+Q>)^9JNxt4yWhPJy9umRG4rUeG%V3J9PumPpB#GyLoO4JIE zF_Ng%{jzFOP{2m>dGi-(JG}kP>f=w}3qI$Bb{Hfi=8q5ENy$k*bef2(g!KmdClj^) z^PNT6yE2_cL$fVSL>HMd@gLj#oIg#=SN|jAoF6eZZ_p(kK&85e+(ejq)pB5|8fs6= z6X*&pVVVrPi4#dMH2q%KnVJkpZ8r-Nz-q2Y;%4a1_KcBVvU1K&-X<&IC*Sw$k{w*R zxO{)m`d@VBsU5=HIaSqD3_v4*YY*PdyWrf%)&6o0ngVm{3c=&U`@zKStOh_)tPLz8 zDCzpJ;#)6pP(^WlNG8%tG@Ca5VA&Xl?49$TC#nm4%ycJLXlBluk=&4`qoi}NcfYyS z`zv0w$jg6y@@)vG4Ed@|CG$rC)%}Di4C7QEbn01Cx@x5Ks4arL@tWYCHy;+8>2y~q zz5COo5;L$FdHmD~+dJnwkTZ!cg-lG$UaX%xlY^U+t@gm-<7D*e*G`wC?CIZ+Mj50}^SS%HG!xT}AsZ9^8!eu0^i^(T0f3Gi?j8kl z3cAkmKu>A~O^frcup{=DCk%p86;97lK*3GM7~>hdM`AiBA~fY~USnL|95jOm@z=>n zBlHBgIEva$Mc`?kO3C&QzqTpu{yu6_BKj3?=V~sN>uU%in~4q>;Arm`_?bD(SakB9 zYtJw0-T7W^*1gXAXmq9T$Y7AgEm>$>@jkrViu~)A)%Xyn53W{Nh~3DTjI25PJ$D#@ z_(_Dv*P$W1UM#S`u9A9stBlFT@c1FHf+79Z?u-pL%KM?(t8q_H!FC09;{Zd>eS;9Z zsFxKe{b1by?mO1J*}y%u?&w-6DV9$tSOtsXd&5-ly$7chlzz5$8_$d z2va3I!j+7*GOPTdc8_Q1it%4DIxWM+`|PS1t&YMgi8CL%L-Vm{*qQb4rvF{~a4d^88ON;Owlwz&g77YE@w07UomqJ2Pjs?86u_q6`^!hCo9kVNS zel7)d11dP#wsf*O6PJG3uQiC%=xMMCe){&l`ZeqH6Q(}qZYF{$9Ju==_SDBeQCJk} zEnmg02&vcwnSV76Uuq5yvfh8!3drCA zixct(EGCH5$7&-gHsx7S(O7!#=iQYdHwM_$T(oUH9dGh9*ERSe{T|}vY>E>+{(#UN z)5W4x}u@^+?ZvGY^=c8*XDE!hDie=qDB7=Uw@&O<%_Q^%cYry z48Yv@wE_Q1(du-Xew?~4OyI8h?>I(;cqQXcBneroXmPGxnxi;FI2LOAp0$zXrJpT8 zCQJNo0&2<0oF2D~-af)KPu9}R3z2+;>Fy2-MH`-Mv*6=v#~PtIKCduN7uP#xjCHou z3f7aV_=A=Uz1>l}R+7;m=)xtF2w8H#c(>k}qvUvWAenM`!PR=LW}6vl*)=T z`{bxBG(fk0qMrG;qsmvcPl4Irqq3_{K zci67JV?hCqFZoeV>I3olw{dqYpBCfEw#Q?dC}^u~T?09FMLgodwgZ*uNIrd6GHA)L zq{-*nDfQCj4a_pxl=YH}b)kFe?3^p9p*44yiyc_@OV2OTPAH<@`)Z>^WBj?9`BCTr z#8DL91pV)gjTIx|eci(|dpmrjxuDmVZT&l_vWHF0^IUFv(S|GEwlm^Vbxk_#KKIPH zeD(SFCQ$@z2txxm>&G(;pQ(mNRCuba&!-pJ2n?n4VCQF?A?~^)wZ>?W^|}4+lUcb) zpL`vU51|6MXo)w@s0((K5P?d@Sv| z;UYSJwBm2QC7LM>8d8wyUpg+lOZtRFV0*d+1t=d z-ovc1E&G+@P*P%sA1=CzOT{i%Lt*2b_Nviap)dG6+ys)e;I-`uhFFf=#SpOua6R!& zsZ_f@VEVrM*YrD-ZKrS+CeK?e)lT(}72|I)kl9#hdwTjCTtP&yU@j zW~5rrYUqHy1*HSqCXgj=W8+c@*o4xty-VW5J7KusUO4v*qlGIU7=$lt;C_ z3l;@>_6`y+G0Er~7ekX<3U^5a`W=fPk`{F?6v&;6otpv$Y%yi$BGQq@$dT;d0aL{{ z>ISrBv~|=hz@>{C8OA>z2>Bror5q`|alWTC0oI}XI78SY=E-R9vGMoa^s6kA^u%Af zF9>zN7$V5eJl{bgJ%T?u5+)0ErYLN3D&Jp3qhY_Fo1)QATnf>VX4%(e1O)2-^1K5v zPD`F-a;9iyqKQ~s6XUlO_MhQB6%;Gk1BR2El-rZQNM||H7Om56rgm9FhijK+?QPF0 zH^t<$Ep3V}-J=+Qb zad50IV1?f#y{@1rUqWX^TP)I1Lv88tEqWDoa>82t%@0xqkM(1+1|fH*DfSc%VW~I~ z=yYIYz@Gqqf>T$=Om2!&t0dku1)k!j%m$bdkVtL)NT}BwL`v`HO`z2+o--*-M9S2F zOtIiu&Ri|)Ke_b3X@8F)MWm05cHbg6u(D8PXys+aWfKMmK&IX};4I7@>Y$%&rtvn0 z<}}(S3!UAXB6lrSraoaMBOJTx> zNALk1N{4txGb#E&T^#|uyV$|UA(?VTdcJkUzabm1%D1h9qQLNgUHmY=%$*%5N1}bW zT((kfk(Ilpe!yk%+{2>6?Bcq#V`SJ^B0Mza!UAi;eo!0I$%G%F6ZBssOZ3^)l$`@F)*kR1aD9Yp%qGlyWr+ z*0aP}-Os{t+V9#d`WdupBLil_GRFA(_ju06Qh*}BGH4ruJ}|+BYT0wL6|)UjVy>+D z#lv~RN43G*oBl#;l3A;OVL;53Yz+we^hHlwJQg7+1&8gW;c5C;qvMhPd5uc;ETQRP zg7~%HKh=Gxxl^~jN4REfY<*it;6F&+h}A%?H|fxQ3TLivYE+s!P&HUR8fR-p4V72= zH^kQGdDwVUZ(NJcM$2}mnqw={Mak@qof7gJt^*MDN#hXDV%>ZH{Pmxti+@`{z=wFK19{Roy#QLvAVF6vmCE+nJVJMmM6 zww}C6jw7WzD_iJx3jxhFY<$PW{~x^Cw5f*$w{4SOsw`Zfsw_u+~*ZVMn;ROG^~<4n-zU0TC^uH z=LwM4T5fUFxCRV(c4h1KZ-i}Ao%EFLD+QX&`0^*7#o4zg@;NkunWte2lDL|Q3`@7s z8t`inKUHP@&H3xy<%>VGH;{IY%xCHOA^K3{J33Hw$ICQ9(n8yx(QV5|Y)>SllbwO< zfCL2!{m~C;gi7?_w4?XX2uh-7XYQ}5LHQ8IK1l}mzY?B8ri#iN1EvETpeCEAcoQUf zpj^aj*sd0{vzodKU0YW`u+ezNmVE0+#0N*SVw%bmN`jgOdJmrO*d8I<^}_R}tPfA1 zE4GM}v*n8V%fx8Q}#XZf85tubutN)EyGME^Sa2yt1 zBAXn~8Dm6qH&241t~XA{JV$HA$#t?-N;z~X1ZD(laJ^UeQzp?&P^uto3vgsu zrVR|ch=}kuf1L!}saXDaD?#-PEqo&M5zjxKE#8S6a(@*5WPKyaMKs%-Ij3ZNiT zRS5n0i)(%Q2D>?ggh<}$YJ$V6X+-q#t~J`A{u~j!%9o&n)M#2w87R68dmHX#Sbk0 z(6hLEpRDt&0g(`7uC+WSt5^G!&vFHkid@hagZ3bEV|IUcTe<>Jm6wAlHwtS^$e?4~ z>|cwj;?`m; zll+6WeI%xNQm(oz>-q8;s-e9t>sovXYu#o~u{WO1c`V6Qy8OFoB$txn)vrH1+!m8J zjFFq~{^aEgc9JO9Rhq}M%dKgIwO=UB)Te9CU%W)~!c+y#=bsvx_3E=m@|N`Trh3Z? zZHNw~co(*$UG-kxS%JZG7R_~Sd7ICFA#3=-tQf&ca+rudfI~L9*VYdbuD?@;?QirbQ=bbQp6&dwaVp21 z(Ev$4w&?dY8Ue3;-(YP1S@XlqGljM;Jyya`bWAXb+)R%qESPedBcpP|Le?MQ$33s@ z%EOJSnL?@)vpb*d(XkX{@ZcbRHb33W4~&4twVwwkFM;S6ip-U-BP6Beza1MQ=$(Hy z;o-*b&1N}|p!xlO3Pr&f{lke`tMLgGp_c|ods&KG=fmIeY$!KJc(%OobNl3^qxegA zl3lnh?PA09k$F%=)wADXTQi63ujLMkv6#8G2E$))(~i4I9q%{#yFm^H3PaX{uC*md zz_pfZb?A^pj@t+I1_Y^?u^z)9j%11;nBSNbhI>tv;*~OfHE79w`K5zL2P8O@mR^^x z_Gft2sI{sT-60h0U_*}>`kyK;nCJWjL%*B0d>jJi*d|Twm6lQmjsGvOFQLo77iP=+ zHj@pZPgJOpERv9F_KNv~bSd*XZyr^e^nDe*lvge$%AvkYM~D=3)C5M&nG+qDWA9Eg zoW4G4h&5|6-z9#~v;+I;&(sMn+2}EjX?kj2sjk5p3{Hv+QpB@s+YojBa%duAI@WdS z*Z=Ga<5(leq1+v9(CQ;TqvRC)+az1z{&JMY0bAF>LE4#xO7;Y8)&{?E9h@qHiy)NV9A9?6vj(P)XIId zw!OG!1S+^GbY!XSXwp#D*;caSLg6P>i~RlGK3lt^4tOpM46e5Epv%M19&>&6O%H5e zV|INBUGNLX7=Rs_Hmvj1xIi-Bs>aoU%Ou18jQ@OM*cwOB_iRS=Z=iAs_#RlLn5%HU z(s_^`Zx0Ywy6S+f>*HBIR=AZRZYevcqMNba9G3X%Q&NG-+m5c(*unNp7t^R^xD&Xy z@Ho>lcZ=yCT6;(aj*Ur+cIgOzYhayPP7ex9)L}16CS8OyGi!rSD4`^0h$YQlQtibwG)G`CxL3zckVpBy3P2Ri;*|XTHbx-%+*;^ z-~HGaSy3BLwnnRW!5DdPc{pHdW5yd8`EuB0J5`WskJ%t#RUnaA3G71GhceRMjqjlH zHD$&I_-T#V*b0h*nS|8xD=&HNq@nm-#$=JNNIcr?FbkPvX%5E~+iyh=SYr*ZIlaXjdGa6ml*JbFaauQo zWan*UHODfWymAcP=R8OFzU~wRK67_VNV$ZHf%5bRT(w+qb%49D81N1bV5N8W z=1wFu+_NZtA{?~%2ckDBvaMLtO1JVz*xqZq0Ma2ShyW=a${3ZgDE;_-59Q;p&?D^P z&jWZ0>HOwLUM5Wu=2!@BP<#Rbt->Yj8~8HO2jO)WNA!Uk z{S$GG(c8NFNLLhGwHF@>+Bp3+0;d?uT%o(JzQ#LnhzJ_9TXDP*gdR@nOpJesf1v)D zAk&m;0udU258r-h-Ow|2kf53XGk|CmFw9J+F(Qz5f}|eq7=#0?>&%qo9=1tCA>ID) zYYSPDcRGOVgN0;|(CyDLu1fRTL{$9EXeT*IQwCU-;(}<{t`^NW!d^4N`@L=6JytNm zfxwrpNwSL?T#bLgtsE+)>3*ShbZK+_eNfkJ8R&ei-Yiiv&H753OXD)_j}y+PAu-Sx z2pCMQhgrC6mlo&()bMnjG|&ymy1LX1Hkqq#U4xDHIyJN9Epzuf!h|CW1?E;(Qx=ZB z!QG@K^4LGuZSt(z*lv$)J28J`u#~s{9-ytADY6PLwVHHGP0--n@ffAr@|LjUglK3I zC&I`bQYfJ#2A@W`)}CUXw5~>KdLiFGdrkgP7X!lK>2SiXTDea91=tFR=DyuF%!ge4)X1 z>^_5NWkCCWeKgWdTHyFcH?g25%EvSCFkAK?DW2(jQO_--Bi$*FSQsRaRPatO^^_&&G^5%qVXBe{7Q3Bh0Q6@$R8+xQg~B4oYk z#h5DqJ#UKJI-Ul=SHJ<0k0&z=9^UgrZ0;%^GUaKE;$a#=AD(@S{r2#aNEUq>mjJAst16%45_#> z-OkS)+>II@h1E3&pR36et-RGTb!id!CSP1_vi6{&C2{TbRA0|rJgeeJ4@6Qg3AsWp zL6D5GGpAqe)5&#RJoH*A)x;Zyb8UrmlP< zS+6QbQ0=P{fS1lf%4+I7x2|mb#>dmwk$r+TWxu9Ar+QGLSHg#LC%ul3JJ{Cb^Y5|% zt=uIs;2J1Ier`PG@Yq1+4L0!L=ScdS2}^`pvj!xlYj2cZ%M4JVX>e|5iO24y@JibEFQ zDbZ@w;j zYcLMeU3|X}m)Li0BA)}YKMp{cm~Jst(+TOoF_Xvv5&}I5S~#+s-TI!;`miuD8)fno zcpx8pCd%;Hq)flh!_;?uZw!9a zVaH*HTu{4S2CK_))^wXwy=8VXUc>a?RABT@dF=tz4e*9;HsJdFNhMaC0XVWg=-lS- zx%%MR0=yE>+4S|J!oIq^#aC87SM|Q9XB(kSRD+s-&&NjnjsCcNsQ>tpXJY>I*%3yb z4?NI2cL+|u%Kqv#|E%l+XMM#Rzi6`S2bpc0d$J$#^9i)J=3JNdaGS~0xSO2w!NKVq zv$&V%x!z=!;`o^2SR?a1JAW}(_|KSs}C`d)H>2^BA zT}LRi`DDfN3G**{Yf8)i3G)*H(|NN6+f%!GwXALwf8Wk~Qd27#-;KxIE3UDN9_rlA z2hnwMZTYw7?O{W0v!eoLD>lj%+-2SO@N>(JTy-b#bY_m;$^?9z-2IB#X8r){vs|)a zF#NbbA21=COc&s~;cqY1UT=N1*G;E}ZJyM2ElI=+6lQsZ(7y~PtuI1@{V55U;`-?N z5Po!_Ej2v3Xm0u0omxp1vZ9Vk-AHTv474xpxv^Vq;J>o){nkuDa8GY~;nhVGuaeR3 z9SrTt_k-rPW&@m?#@@YYCU3RUZQqWGba`4^tvTEjvuP2z(p>XS1~Na6k)_O;C$g4a zqC>*Yr!RC0VG)`;F3Y-+71|0y0;n8r*#`V80z^`&jv#@>rA=U49GcZK&A18rYl{w0I3WW;`h60e3n3 zERjAuJ}0QZeWOyy8* zl!`Ob!%2T$_QZP?F+b`m6@Se(qd7kRkm2f}Rh8hJUl`ig7X^mE5Z{ywWLIj85Bh>Z z=8!=aO1&0vkE7wdFkz-~ujjb_qz9kGptJ9TJ|f7YTMz*)Jina|I<4vCD7~ z>NbG^CARp`=O`YJ51|n`!+F;tUsZpY;i17I+@|?_4|Ly7Uj=X<$8y!!K|-9ky5~|@ zuD%wRz=)`fXDiBcSTMx$o&P~w2+%&N(3-JhDc&Gp`k`u^LfxQcMH<4dLnO8LDihkV=j|g)MllCpQEQXF zq?Ny`eq{KrSTC1mPb$RL-o&o!g$UIEnMGp!xXp{KNcH>Rx9<*;i*HL1?^t4VrCc|9 zZmET}|2*P)h!63}`Ut3qp2oqqw?>FiR;K%lhn2&`~NLrToc`9!x$d zF@l)~eu(~#5Hxidp(bF=NXO@8DRck!?uRE5-Frf#NO3TQ?yz_>hnd3~+l~ z4^Oc0|EU7LD+@mf?R#HUOm7VTJ+&J*E``$`b7Va-6@F-{F;pcOJ2 zW?T3IzW=wiMB-Ci$muavTP2j=1qnaF;-z#Gi$>ynO>&*bHu)gJ^Fmm68-CYP8na|W z`XoS2#nnKv348S})w|%nkx!wNHC*TaN1`z1U2U&W{plFB_F1D>v7M6l!p7+UIY7q0 zuu<&)`Ly8RI2smSOf(k`<9m;fHQ%rcF4Q=jC?X4=EXyM_zrVzr+VRk`Z8>NfV?bqa z%)A89-i4Su?d15b9cQj3oS%x(O{cnn&amo!;7j%nrVj~5>;<)Ct*3{Oe6yeORCc|i z;=wR9{zP*%_&WACZMIRwQ=6-WE%-!Dk1Z2D`sFjh* zcd{@n{(6)pNNZPaR&1%9pTWNce>k36M6L>C4OTKkO2^lHuCU@Oy3 zih?Y-%3=AWhr0=?>U{la*Kl?vGsx3?inZ>ST!x~cP)My)EjE-J;lW4dA$V0dkwLXuC7kQQ8-;>PZv_kw(>*!A()O)qqX@pOZOF}j$U@;?3KBHW=)=ZXe+1yT$3= zNEaDo6kh8Ki|UzqjFP7ryNqr$wj+19bZ z39l~uPR4auBm4@jN^vxYA*l6LvU+pj*GqSk)W>%{va4#u{{YFd;JyeN3g0TYx`%UJ zEe}_BU!aOB#r}T@8tjNv1dpTfARJ{LcBBF~ z!I>io#_Lclj{JoLSgl@g+TTHF#k(^$8;~m=T<9TZT9Wjo{rayj)9Ygr$xxg^TYk0p zW+OV#$ zTBex~-L{tR+&*$cX3$6F*aQsh-K4QGa4+{nG#@|_99@xj6{CZ}+b>51d}Q@I^)5CNY^kTigZ~oZjLOk# z>M%_9t~EOsQss$5t8;~IiMF0@xpwdS&yv*=W-eV%x8pSK&UEGb?)L&azXEYkGs2mE znDB+lL})tlsqyCN0V^{#tWP$2j5>Upbq(#o(=qu<+oxeXDwh$|VWJ0}z&&DgZAnR> zAI1vqwxHAIaorT;Yak&*r+T~J_0s#52?)*OkK{83{f@=0DZmUlE# z9!Ozn3uXPln_=;JJFWf#40^LP-i9^(eMzh`XOU*ACt54+5Kip}@2=T~B(6=08R9xCT z>+i?R=2E+~Y`mOD2sv&v!8p*@Oiz3Jm1* zgs@RC>2hE|PA)VnF*Nco8hJpC5Ui*o%+H2pY~DnO>vBwWS8#GN>~Lu>?V&-e#%xmJ zxg(n^^YAfvjd3FIeB-edP++RQd*em)mLD>efrDq}opPWJY5D0d$L-P}!Yw#|?-5Z9 z6h1rul*~fTL+p0WF&QGi>?ma1=Rip8;1g5#HOt;0pKWq>jaXL7-}Z)QSH$=wT}ia_1fw6$vC(B3-Y+%c zp;N&XTuQdj-SLDA_@WEDzYOnlVxWH$?h+>rPVbX~IVJiYLg!ZrMtPsmPqOL~9MiIy z=YGsZwg}@20JgN?nX_n=8@=5uUKJeMtCx*gLrni}TBr_MPflfWa~{qgYo*M9YjCe* zn&asW=1)^op>w1{9{TT;2=-;!z-Nor<5zNwQq2H9`-t2m#K*Wy#;DE+MT9zG6 zJp1PWxB?r34TaH8NL_Z>4d+y+QGc9&$^-CX!&j6@NpVk3w!J0ff6flJzQd}Y4`G;< zEf#RD+Tz)M057m@AT{Wn4Be4#%aB|xGQ+o&Z!l5@8Smw0t7vzT=40nm?LuA*Kj%tpyjNH8sa+3S zGwwKBBcszx06o%<<1B?f=$Ku3wx;sz=d&xVt?A#LP2L6On70Y%X8sxkcsv@TcU{?F z7QSbR1Xo^YYm*x)`(rLGY#vJlq@=T^8M6^Bg?a0|c!b##Bq}Cm?72JR4e<(1bTWGD zo5g;H({viS<{H6}zG$Pi(%z-Em(?A=i&<6SOP)~JMF~M+j&yGeIud_E%L~}BvF5OykA%yD3NOJ&{bW$M9a!+w&S>mHK4|{_d!agWb(tqwHY+RZ zb$I|ypU#IOyG&Ff+GEnsE}3YY3^?Jb-YNb#?P%Q8O;4J#5$HtbzHStm$qsSz>!hgETad z+vW;wvg^876`78{J-tUts{`^jp5LYshd|qdr3=S62R$aQZ<0TxuP6oxi@S0aNLS z3L=@|5b^Igkyv0oFsvOnVc`57w;y7K7z{8}cHyaI1qT}Am!&s{5lC8O*G%&tV{x&l zHx6ld6ue;%SYFCQW6VY6os|Q!J12`T2B#SObl!|A^hTu{%zCgcJOg#ahG$@W$u9~k zh+DQ%-UR@WUCZM#&~k@?^Og4Gva)T`6_AZy;Rf?rYh+=8Q}611@oK8fYuDFrnHi8# zEo&;79J{PKea7=;|C+R4LGkPJ4L`2JV1aW#k{!!5Y z0R5`?h*4@HE3iq;-=@HYcasH)n3VW=QD~Lk{&zidG>EudASt>Dk9E2vk7mg~o!8x@ z{gfq0ei*D@9%YVb}b%5-mf)M5WTq+%6V#)G^pE%!T#V==0&t5R!>?UhW{*>_?(pU%b+Sxz zUC!SoTWqa-2!^lw-DZ$hj86b!^nX_-S<>POh%oFj$LOx5&24R;cL+_sqtj7qzW{pF zJqp&irDTbAB^iMC!PT5D=O&B3`uKbrw13kTum&>iB;!U+(Gdbf5V20hYJv5SZy{D5 z$ZgGsQUGx*6nne=MyW)#Qh&{svBU3`1N$Xw>>9LZeFfJ!LYmC(V-RVIu=Y~DKo-rt zP_;#37V+2gbyP+a4MlZyBZ2QN+>Q5g;$@nf@@SPB3MIH{ujug_)kYoi0&i!SicQjz z_M4P#SWj+nBh;ps0!5ZRb7ftHG#p0%16mTe&-1${aN3v^b_Hz2*`0fiE$V%1Utja} zi|2IbVEu0mrQi-<+Ig44D{S(dba?GST9oneu~=7c+3Tx|KA04<+f;v$;Z4kq;GA0T zzdCcB;Fd^mqdbrJ@m>HLU>>H}0B6DcUNYXLhqV<~Wt!VS_gDPrLC4lm}9&s9!6~kkfIw?HlNHz({zYfv`R)<085NYO^(~cspH4e)iXDman1uKb;-OVE2`}eh+BIns z|5`-OeQeM?BQCjB&42wt39sLGEYe8C@DmNpsbmtMrc!F4;6QN|TMG4>RyViy_cdP! z7%8PLjS0TIJblHn+loy_&04NAfnQYgAleIyox|5{jt%g_DW#-=7I6sC^Jmcb6z!!z z)F=T1cSlWd$6+ z3R-B2q!@r6=mmkZ+32gFHARs`W}!E(E{O#q`=YlQr!ZQezHk5QGF#CwCrZSe!2g5^*Zi22)x+hSvv;Tl zuX7rJA+2@%TMfbbr9K_5QcfQpwX(sRmG#15!OUqewX@{z>K59Xwf}1!Bkp}$=#7>g zLCVOe=1!TPb?hL^Go4^e)UtdA$y|+nVr2a2WN3SDi4^DCo>i0o;|c^qDPl0qWNrM{ z&DsyEp9vPUW!fhS0Za3M%MOw4{5RR!n70dDxb(557D=PlugJW|wToX+)}&p1 zu|y-#gG9Eec+lWjXCWGBz2#@RZ}vBH-VE#ozFYlth^j*e(om@8D?GTf$%`c@Ll_yW z5S0D)wDs$NowzoWpnNx&AGf~Na|L@fds86ddxw19#C@e&SUzu0<{5vAc!vUeyV}Fn zgqt$QDEpJS7aY(beQ(DXuepA*ov}H|znEt)^HW1g@D;qb_p$xF?R_s46rA2ZuH{i4 zX-53_RLK1GtxXm2cKqJKv3jY7Nw$6-ZRpi9s1EJ?*At`Ig3V;ftp>KZ5P?< zm$|*eNH0uu>oV`g3ZHuw;;W-3^(x{YLf}^JThswZJkx&#d7-#ml3P2}2iM1EffP8n zKPIM5PpkBuMz#Cs%t+0DfJTx*H39VkFB@<8<`Bap-^zO%bA8i78GH8~kf%R~YG5L4 z=UzJO)65bfXIGVRNJ|u3wWudEF99X{?3m1H1nNl#m_bK7=_tC;`L-I@K54HB!@bxX zzOe~?4cR1m*2GsjWf;Lut16>b1>eMjQnmcOZ|SQ^od>=pn72j0<|9@~YKDt~hJPTw zXK*e?)HR6OYkf6$+o)^oWc05{AY@T{BQ9Qs-aPhgW9IK3*<3E`Tf_gz_8$nvdD;bplo7Pu3vgWMa(wo7~Fi1p=y zeDJ8<96!fFqX<~pNu^TLI|4FzvoaZbE=Np-f9YuM2GND0Mge!s=}Jqxz|TsKv=tqo ztGda^a=sdotT51ZAlHG;WLu?_A-i&Vl&a2AE1&ZOyWCz$qMcQjYu^$C?C-q3CB77t z3<-!@Dn`}9CSjM(^K72wWRarCQ6X3aL{2*{Fpq+u-WLI&A%yc42Rk~m%DpgRWP>e9 zWclK0 zq&HI}Qcx+cOfK8Un3fjEm(eF!m{ZH-S;X7&l*YK60X0N~N8;z^_km!%ihb3Q(ac38 zZcs|c?PgQwXt#SxftAWb0-9rM#+>ZL-7hR$Dq7VoBK-1HeraryKck+7z?G^qol*iC zS~zwIg;q6VGZz-Jx9xo?qVbr|WA5jl!h)tqb}?_$#MBN_opJJ5WG;NFCd;Sz$Rf)~ z%({&pIWEkan|E%wYALh8qtrIuxCx+pBcZyCjK@m4wA4QCEpO%!DngPs40(M*A_Km! zdP?y>TdiB}=g`cK{kH`j&osU+{~&rHGBW_HOkOPi*5ycS6c0AP`+80tM!$RV^!0Yf zub8-S|E9x=NrZCx+L&a>4!Z(5?3-8VIHEcRxkLu?Mz4bws(@Z!pNqIF(BK!+z1w^6 zlP$B|wNSYqMk%ST12DlZ_kjRBh`2#b5>Mnn1`PUs``Z2C2u|q{PWixdA2iWj@Vx5( z`vXiKgch8wEdbOOsjrtNHrmpq!?VW(Ajon4^Sp2IbQh;L6^&E=rm1P(4@ycjnW=>6 zhse^&$-w^rBmY&_F;4&K_&_(%3rF!%4?{xZ?eJZfNJlrer>@rlP6cQCwl+Yq-k45= znl1&Kcv`Y;tLZ+YQOn${d0=Z-qp!YRjv5~&9rv8l*hAvzbHEF@8Jvm-RyD4Zc4wUb zp9m`w5}s_;W@oXM0PnVwQu)wZ&j4k0MWKLA1um@eVg*sHlA;3PKHep%fJMBPyh9mi zS|w4xElgY@+N7HMw7_abj~X$Wx-s5=ceCQ8Mmy3n*&Oxg0vT$}gVqwE1WQFBn`K}W zv|4i9$50RvnH~2Q3b@@ETYei+4|J|($<@}a`|v@iRjECjlW{>}4-ChVPouXYbiO)( z$)zx+kL=&7i`1f4WwYh0m3-;W)7bNqmuo|!(k&sRIHD0rtUt|rV~z(-I{33^A`MRC zPgPIl>zp0D?qF9VF?rE3DrfMfgcSJtBhso)jG)>=+0h%Zz>dD$aYpIG#$7>gMg(~g zc^Fl)o;4hncO8a1zk3Blt25%^MjFUcgnh<7 zA9ryLH>!D`0h(+ijZ^-zNLA9`%gC8~SlHWAE%3#lq zHGpT&i}})V%<$Vc=Gu_y3DUvnFKR9(i>Y3Ck}`evVHYmTgb89>-3_hMf3VW^c1#qC z%FD=lg2A3f3XA*JBS2aL^JNMG$Z0mCvyQr zUCroST>sXwsCg7bdz1S)?7qy48XabvXk3}BW23IpgoSjA zbVX@K`+`X0;J2c%c`KN@rY1-y^k$~1XAa%h9VakYPs?8IlNIqpn#2Bo3AyOg9B}mGFUv%GYafLVcNI)bv2H3~cl+LA&6- zMkYtgE%yH4sSA@@!HR-9*~Ek|v4v3Y*xMQ`Y87>Kfd4 zk@Hq15;aN?D&CMI-2}yZ$kcsoB`DFG2jH9*&3j%(R)+eft5Y^Tt|A4H8b@J zk_d#%t1Wi`^1R4QDlMq%Rn~cXe7o;J&yHXdyYC4U)PyZ&7a~b88FW~ccHiq0wEyNc z+(=;iHD3~+^mnA1Gt37RhV@z^3UzW@~^ZBl-wVW#)Dj>+!NaK@3bY&B}HV z39jHd@hA-kTsh-uVZ9P{kAu*o>RoPJj9waguwR732AS+}mOUH+<#qgr8RTc~K+HUD z9I=TZne2Fn%!@fYka4Kc@-FZOMBcmuWdZ|XR*o)n_^FW+V|y-O#hyj;>*B*qaw-tY z=lp$ZgREK&=!K?vH**eDes%~ef)yz2LL7ClO9io#y&?(1A=UT?rW#5C+fg9e|7Gdq zz0d+In(=+B5~7yOX7%e#S;#2!E(}pb8&YEH5tp1|8Nsk9S!Z-gv%3hx z0=z8b_-5caYL&f6=fn%-M!P1~b-Y^cqlLw6RKVRQ7Nz(#itwt3P2o(V+G87Qj9at( zX{*udl|8HRMxaqy#?Yt0VGh9hW~pF`LK`8M;%4jJKYtxK?et@GrLx%SiH1HV(uUaw zOZH;^!DHvw{nkpptIs$L3KJnYKq^qh$v^G{FKo9xEF^p3FU#TcgtaFwW*PUO ztI^`qe=}kd;bH)-Ve0!rtxcib=s{;$|C#8xZX&XwX zwMKMasP7QF#JOd_UaIr3F-Y2P)))pc!{22lrD6>tc2Lznxgx>xT+e#ssU{1Rs~WJWHuiVr&tezFr^_;lQz3=h1`{(=n&*x%`sml%~ z&atSj>-E3i|9nQw0Iuo?&Sr|p2(Ba+Fk%bA0`|N9UP5>4-eW5maNcbiK7Cd>mA3B1Z%P9_3U2ovUnPTkmV!o8 zsWJ%hr)8=XW!4%3{P4;1bpfD`6ZE;b4e*>Cgk#qIi08{0?9Rk&w{)9u7(vECW%cdm}>UV=9de@zS#=*} zxY#oS4=iuR>wjjb(Y$L}_AD8NFhN7JEwsQmJ%B6l?7W@#(G^Cd!Udo|n48ZuA&Olb zSWV5oSoglPs{zy=oW)GENl}A`v?EgD$B9XUfi&Zfdy_B!~x2879gD~*-#gchpj8!XBb;h zH_g$0)Z-#7<7OVc!m?q2t+w}vM1_Ou$E;f^fUaox!^0vSKpQ3R} zez`qGb;bnC=S!_neOie#LVV9WF$Z!EC)A-ai(ftzDAA;LXaUYI{fH60j4Qgg91&(h z(zwOYot_pyVuYHj6xXB!I21N17T!Ab;-;;7k9vo?-~>y8_B2Eh?d$W#a*8RiC)8zF z%3fEkbg1S{>8M$lGFIP~{SD=4E+9HHr7%y!+Z8I-R!}xV2A{Q1Q-J7s{($a-?;2Hq za(So8VfH>-Dz`|!Nm^7HYQDv>M$+y2UZ!xUK~Cf}ws=A@MK%tQqzY_pq7}RUVl0%f##S(G+sx7gR5J zm?@@SOJYs`OFkQtLF85KP`a|k6s3XQ&%gM0yTzplm1BC$3z%{)8fA*(a(Y{g0$se| z=$??RrWFPLUO&(JIPJ0~td3NpJcPllF!4tNW;**lI zc%+fKg6Q1>6A#im-Px6TMRL#zmxtOJ4a!i$7q7FYyQg9BjOHn(=1vhC854B%m=h=& zt4ay-9qAv>lHD>swe_}|$H{OK{~gvJ@4lNu9CSTF^{+B7IbH=U;^C%QffBOnqYEt7 zJ<+iz)x1`m%hP5@0DF)3b>{e6(NY8>`%Wy@)A96h!vrfeF&k z#$dgz*<4gzdfs7}!!|%vF@JnbQ6+pD`7(rgzS^Fe>|Q5W_H=r>*NWoPm-zHN?^}oE zzV`qFkoRy7R5pByLq+1?;nE;=te}~rERw`#FxJgh$zkun^WVjKsT9kxHTh7_*wbEI z6Qo;QLjc7;%FBJu+e;%5J|7QWy>R?$!&e=Euo(Y5q#eUWmyGyDR|qj5DObcJ{oW@sjXlJkz+qNj<~Z zX-`PaRN#)z#%KiS{)BbvFDsS;i)8lRunGr+@KYk(Zh&_hvwDgJbH!ytV_R=}YTmq% zBm?MY=p{zEyy1@4I6Rv5Q8>%gPP14Ma^nWjoS8)MEdmsO-8+o-K=tm0AjGM`w(Dh0nZb~0?!zD4KU!6>3l^M zAT0Dui>TWxZmaPeQkgO@TvU{|DJud9gdVlWgD-gw{{ZR0u-`bAhaJ<5)L=;*8DhUh zq_y?eNkH7B^_5n`i|`?%U|8urZkzthUzje4*^B$g-)jXA8U@A)#KPeMRs>t|T>sre zRTf8KBYr?l_1bxRM~b2ZVP!u~#=U4uY;1c!l3GI=&Pz75k}{Tz(U0Lo;nb$08y1aO z)~zWw6}#X#L2GdC{`;Z? zjs`belKIqFCo>w^8^V1A2IPQYjdlEs6VwH0}TaISPb#0K+Js9NGYXq z8SuVZg^~d4BUvA?22k1$-Rr|t_5~C*_AXI*N)iYuUR^yU`|zQ&W`;#_wdE(;tAsTH z@x)#XcjS|a9%_D_W&PKRs_94h#kP}|Sp{GE0f11Ms?Zt`$R}%9@XazIQRsgrs zLYj}b5ai`QUl-LJmBU6lZs;jZ#yeP04X1k632i}91Bqb(mmoo-gTP>bn2Wl0mxi$M2$SN@ zm;pcr5<@jZ*SA68zZ|fC7 zweDY)|9ghw$lk{6k6@FQ3~D*Poq6AR9ip4<^6!yBhgo3RC)Xk?XFuq@A}G4j#4os_ zoYhxceO&!4M_e@~d+gB7dQM@axn2V2ZT_{9ULwNl#e8ArUTCwx*u!lw6!??CG%)m< zkofQ_4wm=IX3l1ju|PFi&miDq0C#W5B7W@I!EsaPSoBkhz3y0UIkdsqNh85Qm4wiC z7|Y;r*k$;}4|$fNQY(fv8FHbR0a+JNOTewMp#7HwSyRpR3m$!ig{DIWNjw!e9!I_z zc32j0bAQuLnEOQ**em0h_S~aTWs=|?q4J{gO=yMWA!n)ZX~@}B>I8m&@7?Sw@kN!g zkFgp7eF<4)rp`F{)`nPX_o|PId27O6dWJyD*vgNE7~==B{vM0K)U_dR@=7R@vrU8e) ztta68LmnYa${a52ix1*fKWYCnR-H(cP~`#6_~2+QH-`F#v_{Ri44PH}-_i7ov@0t2lb|)`?_bt_Sm6A5n3PfcdCCD!+tN z`v&#}4-K0bPKO$Ea;$}0(bBbLk_N+4)*k5A-Nh%d20Ww29HmPsQzU=`YjG*Qr`cY z<|Wx-{tL%(i#yQI0DY1aiFqOBXl0H$2=tg};++f@LX-Eq+)|)k8~Qpw=>4BIaIkS7 zDf-4R^Q^_YB3mMMGP2G>k`4Wpk5gvM5%#M_i{Bhj`Mx$NlRfw*?2%cazB;86yQWR+ zLo`?CaokmU$Nb81{&+hky;qgXN|v`gCqr7;%k=Tk+PDoxS|Co-w^XZXZeIz^VA@K-?(_s=%W%SgQIcxL z3l$CqF$AGO3?LjMepyg9h$v(+7ws8K`=wRALBCnMoW@C_6XRB^Q7PK-8d&9JN#A*N zYS}Q)`1y{GIViQtFV7@29nr!(CbG)Al?E<%5)fQDfJ6aW195`QQANL#1>8+bziu$e z(1Cc)$y2x|dEt*NmW&O=WJvO$cP!+b>#Edu&$R(_lO&@8`q}1_vPf0H(BoKCQGtCw zNX8ZX)Or^+XwFHpD&X5odA|Siz3q>xPq6iPO75U3L;vDIx#6$^MPWKr-YG)*zxkEA z6+~|F;4a15dGwGd@=`bQSdYU<=l?X_N%{c`yZmBHhrf;BpZsAes zHwEO>FPd?xH1HC`i0&;cuk!sFRdPheK%j&!pk(NRoEe3e;*%xDTaIO&0;J*8DvF4YV|3Ubn|$nry(M#!?K zO{8D7c$J4KuUT0ELQSX!L7}uXN$1nW^5=7i%UnGeOOy*LpURA8hP&Y@B;us=O^Q7^ zqca)AwKvPJsw840yP3c1@=5rDQp)c?o0IGO(G0!ul;v^KE%Cn-eds#cG32ty`HUpl z`Oq^&5T221D0;f{d>)I>e`N7bdm3rl?w;=ujugi$pkhCh9~@T!DMNPBW`Gip4BaGf zbHW`}MX`3A$YtxMN7IrN^L{hWtfb*{2Q>{S@&Dq$UdeJr@Lb(M?WkqXbsDX(hZ^_5 z8*&qCc1I`RS12dpNmbZSL2A)c#NAIyDjkszuC&4pC#VPay`yM}4+<(2)ewXxf_tP6 zh#$39?1j1<3icG{jR(t#z=TDVu^>m57(;ajj)Qoj z4gH?@4qFBEa9LKDL{}4xgvhHY2tQ1iSycXp;*u}gU}@wdHDL8C*FJq9%BO6(a&M5q zE)lBnqIn;PF|$~RMz4$|(hbJNfZe;_l?rDG+A~MHeIUYIe8n1#ivj78Bj`-dEd*Zv z65OMrPC^V|LmTN3XFbB0qnbNUmaPWyfLhFm2g6^s(0%F>Ul1nw4d~{h#8~k|=$fp_ zvr55aNOC?GiWn8i#sD<((-Ir987T?r7${Hz*deFaA!0MI4J;oht2?CZc3m@Vx~7bT zv zf&;^?M&zLVOV3JCu&EPLc-nH9WJ&O@+RAifYQfmKSb1TH&xqb%xkzH-Y&ye*qX-4@ zf+lXvVp5a4q4PP3nJ+;=MrxGNT9Y&$?a3)1lq@kkE-gvb{S}o6+*ItsCt2Z+ zAL>3DQZiJrD_uemlraKIxw~RKWZ1rXL$OGleQM0^E44mCU#EQ4U0-+GNn(Tmf6SLmCKou z&`I9Zjnzrpmdk{(r;lwl0Tsm#?9)|<;AmS|q7=d+V)Yb|Q$zAQ>j`?@!yWw@^Q5jl z4z^qlLRF}S1Vok+>^;`QFoFZ4R*^hF-1J=r8)gVF3^;f+1#<^INh}zKNe33j;Rgf( zas)Sup6z+$GAX1I?v1p79kz^DI9Bi3hg9t5t?hK@x3E4MXoGM?vbaTUrZ^7T7L+po z3bDCu8y>9D+Q%VduWsuPpzg^Cb4Si^VURv` zEMc29}{nM_J*DvnvKFLj}G6=FMGIR^0 z(=@e2t|(tVr$_s(woS9N4i&RzP<6VvDYhB|Ux8PQZK;@XA*xd2E%CCKvj58}qX^>i z&i?PClrZ)OQVOP;`v`Y>03@cdVUEQcUT3YGL&C96ip%VvotAdFLRa_2wBojCh%T(n z9?R0%EH1{2goxcrTCdeYVbHj3iBMNc1vx+|Y5sthx2pzjBt-i2!epBjc8)B!mUk>V zjn)#wj(0i@=oan)(DDK0$@U}80VD|k-fV%n!txm z9Qf-d>?~X0G1p`qbRwL)M?)Ex{ydL{g`Q#*(WV-x*zVuunI1cj*M?%rB@Nsa%aG2T zsh3p3D4CGkEGRH|P?einl)_T!{)c;lDiXU4CA-M4q5L!SKs%OE%LUgT>dJR*zT_`_ z)fA!J#c9B{PRW{*&Sn}0mKyGoSrAEc2JIoBA$NWEdVvQfJYKGRE)i#2Bqm)kobjzY zOe0`b7t2`Ua&iS(9Ky8*XS#n*hHouX~b#lj-}2(ixq-p zL`6o#*o4MZ_P;HZLUojD?`xFqr!%ZX16mP+9ug!4I8uVLdEV2s;#rtM{3M4li6e0= z+^AO^BMsy;8zf^*reC=Mz0?QP;lwbr$g%fU8Z)-i7?Y+Ay@7GbN=h^xUB0O?CE*m6 zgq>=h#+Z+0D@K{COnM3pnCdDQ?7DzU9CFbCl`{V>aRQjHy9t=c-7)XOxqAge?`vmf{0hxze5$?x3I z6;pznwGH?nt#&=dtf`ZsgzaH^wO;@=sTpSo?(hx5wA}dPS_(?FmYtntrk<|MW3GOi zwBlMzu6`v_3=drPEOY0Lkc0PcEL7Y^xu5a>K`~d+i^tyM#wlXjd|; zv}#zkj0f*19lq@fIFFw-oU*hs>n|FlfM@ugMJEYA8rD**gfyQ4i$q zN|}Y_7NakfM}9Bm(W7vX+}U@enOgyULMYUwncuJ&!I3#U0KdIM?vk-2r(aN21*~_ zmHpdqmU&S_Q1nn-)`K|M3PuOYPZ@?XoS4|Z7N^hDiH{CDV4akx1;-o+Zx~yan;Q?7 zkuKlXn8s|W*x4W`hcV`fI_1?y&mU|&S3W6b6NU<&RnDJxy71pSz@O7wGvEY-5fFD( ze?pyv6^!J$Tttd#1ZeCis%Rbv9P~j+#rS$WyGihyC&OM2-Zf z>6a}K=MltAfj)L)F(HB;LWW`S#k6TJn{|5ZY&RQ%(B&6~nIro6*=L zn6KIznfsz?H36sm;n7&`al~S-b8+0AE!=)Y!G=OB=p#ZvyK+=}K&P9pn9xjejyC9- z6#DuX{eymV21yM^s&uJ%DDSbxYRaFuRzsP+_tl5+H?a*i4jF^*h$@)nUfBoT%LA-uXgjmW2&QW?rF2oeh5b0%+kTA5b~I5c6c6cEfy1x=6sJgy~ zkV0SENQNg`zw}qZpRaJtdOr}n%MFG4J zqN62_`#^~kSP4!?8o&&Pf#F%w22=0CiTlv#* z;U?HT#SGICJ1kF5>@i!ex^k_hTmMNp6!k_IMHc^57nFSBxaRQh$sG|R9z`Azj|BL@ zCUHKy2}XC={C5L_8EOv_x-p4-NwKR{ zFmU?DN^}HdhEVz8#7hRZ`^J_Tz(%sjAA*Z48!g9og4JoCnNZ~Be?bLe{-5cSBBb&F zQ{iV0QY95$M1tA;o*6~#!Hx#gBoIgF##`ad>OsWUkHh?F1W;r1#KvirbIRf zhqM}un9+~3bQVo@Fc;>W)s0)!Li~7}IyB(wJ9%W&PAieeJ5L6@?qiKn3ahGYIpM7F zNEyUgt~c}YFL#oJLkB|ExE5)adGfZAf>ifD67SvL@|35lVBxdTOpbakeBI{)!RWh`B;?s1x z(cM(h_-i~~=+br;8jKn6fSVp%2>YKK?IRfCex)4Tvh#yO@txv|fhst`@Eb|3!LxKZu8r>!61DEl*Z%9`@iU6h|mLqJpyM zo1-~?V0!he=Usk`EKBnzJ8ZH??2$HS3hSp;NtLV2Uj%az-N*zbB%scf5K;rd^KKYN zhFxhN7kRdw*;#-qssqhpyE?$cJ?cO)S(4Jg6$MQTpXwma_>}nv{P9$a0U4f)d zrGLdfX2)F<1iojSIW-L(wu1hmx>#$cdQrqoriA|}^?DCltb9*dZp-O?&4?kPZ?M6F zX9c(L7>-G)JO?B^iRN8VVce&AI4O)x3?X!QZGskzoVKm81if-xSqAwa)YcJB^T~7~ z2G%VISO1ruoqxVR&G=r0M9i|w?)`{D37a@#jn;p{k7M&N9HXe09F-4a3#dwlALA~% zK$+QUS@7q{V#>a(Sb>*H-UpYEbwXx*oM8*0CbJSjpUl8!h#=%3qy$wcy#vE|#;1oo z4TlWi0tIkoH*d%g?gco|i@I@L)d{Z#w;Ie*w{m&Z!t6sWd&CD%(z5H{m!;-7H2a7` zWf_ONn-|T^6$#7IAMN(KWuoJ17_hKW&h1pL^$oLM!4s>FEU+v}z+*IM?NTm_Qv&sP z#1_iX-(Rf7C z;Yhe&B^7Tn8^m6Lb8YD-DZY5ZNLNwe6MVX3G_YF)hPk2xObCmDm{}lcBc)v!Ey*kw zJ|~Vx#1|4N3`=xGiCZ6F?tXXaz9MDqgaFX76?{~fOxQyQ#c@>3i94qR=v$tX8yH8o z7MhYGrNv-M*o^T%e;uN!X2kxl@D6v8h$ZXlii(7|RTqrF*-0=D3$42(`YFf1#^gW=It_>?f-IB>?n)Hhe^v$GOCOaP;H+Yw)>-cIGVBA?$q4Mua2GbN5spz3Q zeL7bR8SuWY-fNyEqR;rnx2!IO!BMDJ4_aU7mucSCpUbMWYm^g>O8N29L+Kc6KDdm0 z?0|KTw4tJ!waIGLtoxt?@|EVYwnYUeySMH>tt@ZX32(+A`eAvH2|qthUJlsbaHM9D zKj1VT7`jg2ZG}}1^%VP`5junLP=)(~;w9O$Pa8g79#Z=OS^5P$@v>wd4A4W$%pX0`p}Y?C@QIx>bCM?Z1ode7o;!OQ z{GOPiR1ZHbFn>`qf+!x5g)Nztl6jV>__@TI&HtQi>kwF(S0g-Z)Wh+qsOe$HcBW=H zVOyVDXltH5hgVp;Y1LV)S&IJKujeowD5+8_(GQ$t+2GKUi416)N2lAMxH~br8a7PU zKkDa;9IVkp?F&58w%`OhCIf#W4J)o9>~BS{G0HKrkTS9nw~ZGz0lxD6R?Z`=!Yde; zDiT{3Xq$Kip51EJqp05q-JMUhBS6R{rK#7RX#>OPDksJV(#T^t{fF2Ax=8a(x?t%{ z3Wc#M6S%QCk#AT0&scA@1zhA%4>;z*;H)lVryiWeETa+iZnXIhq$Gu2c3RU&C$V%x z-VtSiYvazN|B!CYZS=m{gKqP_Zc*1k=TGNC&up%h6_ZTX*Msy1%@vyF0(Nv3d`r6_ z@FQ!Bak(>&jeW57ATSTju|>k&Z;xF8n$d`J(ADuHy$d$>t_b^v+5#g2Bl*M?_AjTp zumcOVl7Q4QIIqS}RzcW42S04*@{arA$rsOX)XreBVgZ{BFSmA&#TNV!U^*aR)P%JR^LLeBNea{Mm zOD7l%St05eFcmx4*#{h5+!6#q+`mFh@%im05mZ4d$iu@j5ikoWz&qRA?+RxbA)@T= zZj0=sa6U7Dv*{Jg&i4x`r+v2L3~ksMs%Hbu45RxHoMLbT{n_5j6aW18n>&L6!3Bb-F7 zzhq;rn; zCnDPxxEHrx{Eb~b(y*|ct7wHofy(sN;rL0%s~<%XQH5^#y&~ZU9R8%0+mNE0hbEqdOF2{z@++tPlrd*5d|!0O@6zr67lTP9+X710LaJS z7@FM7jZI9G)>gyglj>fD2D5HlDPWN*+hDR*9u_d{A zLC`y*d+ZmEr9d|42F+cFNu%fMCl9AWcZD=Z>v%b`*P8tV2L`=g21ZW%@lmgFiq==z zxJZJlT|XVNuX{1IqB2K!NOt37C(;@g13xvM&aK#A*X86}Kaj}8fwkw!xW!hWvRJXNr098@;oIb;qvS8u#zCLJNdvUW@@epz`IT0W<(l$*FK_6*9plAQId# zkN5&*4dElNBSiREw7hS)oO$rTWnmM@LM3Y$W~ZI~pM+h9Q67c7T0aB7+^FdAJi%y^ z=NpGOHlugtg$?X}@>U(tPENgwl3{AS+6{=kDUG9~y33n!wb`z58}9GKr=@Q`Pv&m< zVEJjOfYYh^^u8Hu-frHoDyivL@e2zG7c!VL-#V(GM*Z$&V8O~w%nl9tpSL1MBtw1N z6M|C1@#38hJ0O&%cb+A6UVo}Z_}*^Jr-e_-=$Os3N1+ws@NNkGkpm ztDX{tpPmcC-n&FetzPwo1z6o`pDxJ##?Yc(+g(@@CfS^FosUe6(;FcjBZ^xY*{n53 z=$nv3LWa#5VaI!$&L5ijaQ5egj|N~q7{jSwDunxt1lzf6^HrkoAr`m%OC&`dj*XiM zOW~=`Jt35mhWm4woV2^A$uDiWb3HQQyER_BZXuO~C9aA^{h0)uvrJq@x#y`Bu?P}3 zHe%_p2j{&GAW%)MCVK|kBcU+Hmw8=mUws?r)rbc_x}dMIa>)0jut!Yno5xq_@0dH< z5=xhhZyNs}u}VOa@+^M`#ItvF#OW|&st~Ba)l3M;nlE9~YsF=|v^IcAh$Y{)!hPP1 zvwv+3=x->0ObvXWLexCAzR{55!e9qrhtfK!B+xPq<7_L?V4xY1<_9VOMjL1}G8T~u zP=46h^A@iS;tH>rdCDGFgo=Neb6XZHQ`M{2_cM)^DjEB|7+$X@9tUu%72b3-bcnw5 zPu!ej)e&x5t&LL`dfpGT-7t$5v$StRAgnWtoo{(@v@Y=ekspA3|I)yR%4&Pi(f#3+ zPs=U$5MqLQU}O78bq5`CbXSJ6GHPp2>>59L0C6hPi@BgAjpFZ#r~lC79)PDU_gcZh zXfn()48!@Sc^*LvNe`o4SJUVHo`>1GDDcBRW2)nTh@=Fhj9(h#@PBzn&%5W3Qt5`p zdG{V@To{!Yxb&Bo{j#Fri*v<)B?b^;7l*bXXIUy@9RsP6h*s(344>4BPnFa4zkZP- z=w7MW25pUz{bxoRG(DqF{AW`kkZGk0o=MZah`~J)%0G2BX!59z^={p@aIA;DjhpPB zd)(F_6bb>ZhfY2e*rGgL&z4m>7vfitxI$kO-CiCjA>_n73d1z`=mRnXj#K^Y=z4K% zidaDp$WH@5q=GyAe8@KKHk#ea@eBnH#Oz5*AMRW0Bx{yfpV=7V{f24gS!RlkFp$68Epnq%$KY=EFvvZ>o;y1qTqKPuq*^2L)(}EcJ?0 zf+-^lECRdrVRbzuHatb`UX3Q1}6TL!HJ21l}n8Gh8_$X#T!-c&$%H?9|ycTTcJDA|yT`mZ5%ZayG&m zV3clVi!)O6IKi)?Lm#m~35M7L#4eQy{4J`6qDU9Hh!|iTU@zp+Y;}$#roa#Ml>+{5$`e-S+{kHH?r7t5L_Pu$gc16$i62why}&_U3``A4E(?#t z{WL*Ih1`13IY|tmmV-#iy0#`X`eDeJ0fJoBNmnC(iX`t_x5SU?jEObq#(qIhctosi%IyYr_LH z>$a&-vcUdZeGP(OwITjqs3L3e7~%y8bHp4?g4Ic82qLU(_D_`_0!KYa=^K+|!MifZ z+sMx#KeihBTx}|$T8Y_xx)2*{N~4d>IS}fvLz2MW!%&LkTXv1Gb!~K&f{e*c)hG7* zlUV9WHW=b=J|m5X$}dUHa*t{}F~kj$jEa?A>}QG>JAFPWEvYOOk+?3Kw}+AJ=up~w zhOJbYm07KMl=yzT$C8KwypUYAQhCXQRFw3hH_jn0o)qTjrWVUfEC$dcLttqKa>;lX z(Lk|_6RPOnzzXHvSqRUXD)E^CuOua;Q&1)Ag`)s|rpa_Hyu^ZK#YR_>{tH3Ut~v2{A8RZNrk zTG}u^#;DO7_msg%PWnZ}%Qj+ug|tp?&uGlDeq#6)jYw=zjCc%>3b9WWCD}hkym-5N<#CL+pj{?dn&1N^e*PEB8S$+Tg5ALI zT$o$SI|2hOP@d9@Gm~Ifjaj07wKO7xfRB6N>f^sDm4IWV))C6xZu7s_dv#z>8R`)6 z@17$fJa9)T_V8Vz3>8i*@-h2V$fua%)5<%0kwpUtWhc_|!=Qu*&LKNlwo;G7y>8p4V=<)j%@CQBgcro9<03+fn5&+G&gTfXyd6_qwPcrkAgy#*yZJoTTEm4m@iaSR*;EM*Zb`!$KcR&j zv3UT-KQy6ZHu`~u`gTSxoalmJ;y)T}Oo5^lb|=5J*-hAgtmM#ZNCxl}LMIC?#+!oa zCxL&#wSrKGbLx+G=Maf)zMv(%AYMF5-HNY7wb;WtwJ_-H z?~{E?ZeDp&7vi0L;tvCFq%Gx?v0c_n@)v^V-- z`?o#{2Mlc%r!~q2NY&x#@(Oj==m-v6;&SUgiciS2L5i0Gt|5$v0jY@#<$i)ojwNh) zvWntxoqWjHjQMrMY_~@l zp-B+WwXwmp+#dru;WB}lL8NvTz6A7ImzHRnsMVXZKU#OH>@+n@L>%0Q3r+xdruNNk zgFQ^u!LS>s)CD|yGO`o^b_mFQbb_aNgtE1}6yM-N!$yfaF1^W913;|7<(Dv~@q$+21> z`%MNPI?HDNenrp5mL6Byzr0%u0Tuv93tYhKx~q@fG=M(Vp-UClLoSz zUJzIPn|Lz-77Tk5@L`;cC8L#eiHBC|m&VRel5X4|GEU+e3qdKPe;#ZPN!fj77YkGC&vsU-(F+g>rR7d=0&<#@;X>7+8#6A zguoxP9sWhT?BMsU6MA>&WyiXkF6cRnSwWL6i^Mx6)yxH|sH_nJ7L~4OK4=h>r=N%(Y9!BbOgL0pVSL!Fe*;kAeKc-#liQ42fTJlTIEp4(E}JiN_@Q zv>9e=Vw_+HJ7}}1eb%A$%M@kW$b>D5@TLa%!Mr$4=Qo9P9$2Ss3w_7bBBjB9*j2T ze9ib}7j;_>&|zk%YKW*zptP72T@ zO93M=Ur=wGs_~K@8!x#CFW=vN!m0GNRpE7kycb+x{WB3AM%+M0H`%P7+>MqvjeiAD z*dZ5@k2V8X!WZWD_Ap*u_Pw>-!SporW2dhG5Q}WU?Ya>t+8^28b;Fu|OUC?J*)mB3 zSc-4)#{);w1r{*Ofu=zMAO8PKR_I0|1SoPl*els+=oanvboBI8Vut~kVdGdnhI znDucRDKYRnyO@Lzh-P5RGqurrp!BHj*R>JJo>T6yrzo+Nh1jqvea$@0u+*D;Za++^ z6UexJB#95bCM55~D~T9p_{8q8P{dC?y|2u_Qcio;+0#24VmMroIJwh*7U@}Z*Vh$( zeKyRaOfQg94PcS?V(XfCE{MN&e5M-9$K3ih{TckTM%S+;WlxeXv1{+ocLjvit|2!y zrIo@p!KqFzp=~asO8deETZhgYRameGnmftu)4S3b31cefR~pYhpWP?oI#@$6zv&02 zL8ZlSTo~6|upnrIlKk$>(>VM+FcPu5mES4O!2? z;@K`v!JOU5AB4Q*C%lRj^1eaP&M2K3PZW`i(}&G_EUOlFir^Q;29GcXUci{Q(WG5v z3$pWW#dyiPzT5R3JAQ|=23lN7d5KAMkfCnT1g#)k<*yP!L2q_9)gD4n@2&i9qI;W+ z^jv-}IW6AL9W*Z~MTy4RPv7kjVZLW4@w0f+*7)T%;FX3AxSK%euC;y1j;mChwUPDv zc(Hk|*)oTpOf{t_HUrSsSn&AY)zMr2;aV5{`pqrhYGi-x*q;h=&!zwDN5Z~5F`=H8 z>)M=)bxsCr8h3&*5bn-sk?_C7U@x;G^Han90xfQ3jToSl&B}S-8?snomNXm-UAHs_ zMpO~ED{3RXOWN-lh^t|Aor_tsf$>>$;??HI#rE`n4fe0vyv4sG?_+SSuRN>9?eUMI=^n-xbB<8IKM~K5tm4Kb5S=h6OA#|l(Tf&09{v65Vke+vDb1uCrDlV&JJ-?Bh8dePRnGhl||zA3^4%q4rnIF5rQrMaejjzOm~o>>Z(4ji`9{# zLJ8Rk2?r3gZmC|L3tV^>h?RflYPntQ&n}h#t+#7!iI@5V|0QzZ?qZAa&JE4k7hPn#WQ)`RwP!m?_Q^QC zxtpU=)bb-;y{YZ6kxFOt?6WT$g=c|HKssY5A_qYTEMvtTSZSzjZxm9*a%z`g{=M|% zhE+@jQIaqbKYGewJT?WM2IBftw@k3We%I@Kf*#HHXGf>_wmK580K4cHH(7t&c&x|RO+d~qmPIs~R z1hBtK36>ZDxw-ycSf51v=_UF?c>Obq8P?y!DB3H-k2H*b5`7xMj9ij3zqoS4l*x1# z7IWXUdtbIc)$V+5QXI8;%Knb_>xk0;CxY^dEgGcvM3D4Ca)xt#BwkIJd>V3Fwzv^5 z4I)b-CN#=Ha6Vm-QeeI{1%@aZW!iwq zUvx((JXvo$54E_x4EN`Sp=i3|y+Hq4?RW*NwVZ$cYzE|3WDNcssVxu+bsu!6E4>&C zw6N~WX%UBx6p=e2d_mv7>GU2rIJs2@eG>UA=}u=~|m^@2%}BiW}Mcu1gvMN?bCXIT3< z(?{Nd?UoX8wKm8DXfDO-L#Q|Y$2y;lxGKFbT40__n_~ z3ftcBF&|mhTRnXj3JY`4dB{eDn{DhuK2<+wwifQEvfOR89HPiHlHN)z#eLi%4!bo3 z8?FV6k5**)0?sV{e$cq{2-Z(-;Ix!AXWJJO$F;9m1KcXCP0z1(g89yEU^dm5(}rBZ zq#L>SYA@l6azcWwe>@fCIFSF>w*MC~7ktUbgAt(vH&kszbwZkt&!R7;jXU7~e)is! znx)qb976O6D2K5(#6?W%97<6XY*~%^Qdi`0b#Ksxpy*jRMjsTDe4<2do zF#Wt+;MMZ_%#IgUR+k(8`Za4#qhb0q`zXwTsO3WR=YH;~VVlvW5^oe9NOLfrgXOy0@VWU+8TETKC=_Mns|y5?)j;BPV|JeTosJPWmEF z!!Fp7BuLPLNM=l<%h*qM%Os{T{qSuohU||MNx+u{k-P-pfSi;*jDd<1G8Ne7oH1sr&3k!iFuPE#Cy0R{;i`S8df+CC<{R*fJ z8Hw~*P|x{-)meRB7po&b1(=N!=_k<5pAof@p6}UEJT}iXIxDoIpe)KfaEbHW15$cR zGerndf*FExknkS$C+jhhjNo!;zIFlWvld@qBbENu+31{yDCmY;3hSQ^bn~4%dD7!Q z{@r+EFoLHRNDC&Fl!@slw-EkB;1-Adkzz)wqbE&{dAP$fEC(a-D{p)|;^Q;yw`?WDEZ2d%%&2 zPT$Zka+&sJbT1^*M{<+{Vx6h2tcrWKDpTMgWx`F~(`$hb_KG!tJ)`s_`KZW`^rpfo zy|7mtquiLRT!oN>rJdPVf11Zpz%i3 z=n4VTC72W%LUrra*)qG@7TYI2S4nPhm3+QXyUmBra1(Og;kf3ON5of82IHJ@DL(Os z+Cv%ef6s5U31{BF@tcqYK8IV+_I!EPauVp)2#5qNjA;$uvmg=ei}HP2k*fGgG?=oV z@jT@EFJXK*3v1rEjSJp^mWXci5F?J;jkaIp{Gz$JZ<}oYfdzF>+;F;a-Iq;*(7cd#qIZu7>i=W9F>^%7msKn z{Gh-j1PZ|&3EjaBcEE@Aq(nhGk`=P)w7i?qT^ge=!KX87szBSs_HG3}=?%amwdvBr zk(#MDN75xVv0Qq*ZBax~vvL5TJa|WPokL>0>Kli?$nqNti<<|(+UThOHPA=KM&>yH zfbpVFxCpTiZx`}^tyuB6nBPMj+*+R%2Qr3g2(jp+W1>`bBH|6rxc22tjfC-pZ%YrL z0eJ-(Q3RM5hw&~Z=DfbYXIWoYMqWeurvUR=F(g|kaGThI6-byD0ru_nd^ zrO7UCTuJGhKnsDhq5^`4kOzo)nYJ%H3Iedwo6Zt6rDLe?x}&shi|S^r3ALY?eHxN& zddlW@``54H{8~BgF;;|2-D;`gZIXd&q*caDDXLQ5NuS$muX21jux*mJ@ObpmVQza{ z1cUQbu1m=r@V{p4Td>3sc5Z(;i#Q)gqb1w$6x@d{HdVH#&*_^N^p%pD%4PMLFPwq7 z0i2M8CJ=ojjLjW$7om2f>3v|th6Gi1o7(_By40KDrNUtJXOQOhk9{PcGf3^i&G8yo z9YZ7d3kpCG(Mgof_kBcLr{!~E-S4Go*Di}x7T>^K-XO?q_%*V(0$pCgGk;GMlImcy zSHcwVN|aq>0|(bki{TRoucNJ^(lfn1x^eg3PK&lhA<@<-WZAk784XqvG{@fqpbBue zCf7^gokZkT1M^bHq2#mqfpiBafFh6x$YJYrOX2XB9v$4s-TaK{j8L&jZ>jrS4pjH^ zmjriF?a1GyrA%Z}+ZP|pgBYBNy+0EqQ~9d4ST%+o0n&jhbKSYIiDlY0cOJkj{alYL zGODs5w^*fasgn(;0OTF*hU<3-m-8{5jml;$Zdv!9>#sOz@-MZ|X`bbIbudI#YHij) zG0&=uiAMsC`6CCh{>+IOUL5YkC;qXM1MILRUoc;LUiEC4`TJ3Yd1Ju1Hi7m&q1!P55*ssTKWjkBc3Qr3Y6^FSR^V zy?gWWwB&{=ml1|>=f-$D#7=`=4Rwo*PzlHrU?G=O_ht^XIY69uyC~TfzWSZ!<6PZI zttoOsZTl*g9%xxF?*1GB@h7sdDtQGtT(R_MrSMNB8%5eNSuV98Y%p21v1;{*rrs~g z1_K@1OA%EQI#OyM4WY9-PPMc@BG)(=6^t|c3&aJF#*5F6_L-eq7OHD&!wM_PZ+ar4 zOtP{kKB^mA{3~Jhwd(G6rEa;%**xdR5}WfpC%X-o5E>LM_pq~$6`$Rb?UP>qvD7^v z1YS2*zNL4lTrR>JC#=LBE~5k5dF|{Ko%&e&*sIc{UsERvD*BZJ-3IqW*s1AQsy1B* zgq$+@tAv%^_%S>)?6?B`Nq2V3EppMB|1G_a6Y124ewO4FUr^s3QNKHqTn42`IHBAA zx1m@oQlWjRJeTQ|z@QY{8=FWcv~RTMds@mBVz~pmcj9lESHe_>j&YoC9D(l2Z;*md z|1Q%{5{8!XXHPsTyy<<|u=yORcUKy$zTtIB#KYy!)}=aEesozHK`0k{@3N4NF;Y>GkrlV2-M;WV15#D>FoQ=huaT~cQwiI<|IY|< zGjMpx^lCptLZ}Ux=XH1F)#4gQ16|G3tI@XjskBpekYh?jNh1Q6y8V*2zv#SPC{VBk zt9=R$-7W-wZ&19Jv!7`0!R>@mgVE<#AQZFYJ?}42-$IbP`^H%)sUnX0nZr1fMHU%} z;SDP7i;|>i#6ts4*3%VQ_5mcb#N?>d)PRk{`IAA)Tb!NlB1N)t@BFy1vf82MdZl2e zIb-*s6jLZAthAUdD1QmF^Ym@(ogeW#Vcmh_<{QU8+aWc*8xQbSs2gYbb-xU#oU`dt zH;x{N8JnJTU+iA1VaoB;E_4uKKvrqEFntNbry)vctXs-K)?AuPcm+~ZlQ!z#xljHDPQ zq(a+zkAoJv#bc{TNh-rGd%1)7UvVa96*8a_U0UyuA=2yyqYVvasNsoEka)KC8`vgo zP4kWvjWM3O-5BmRjye8F30#5)6_}$y1K^@usn570hk>^1-gTIZ>oRa14wlH4CHzj+ zJoovf+4lXb3GQ^wUaTwOl+{R-FjE2OxZPv&9#47#J6(de92e2A4$BpmtFhKrqOX@I z|1TQKKbPyg=4UL3#MT}`ee6NH@%YaEQLKY7?L|yRV)6}uu}=_Wj#vg}ievy_Sk@av z?i+9{strUGy$!q;r35Ay*x!0rQvA=@F!xq`9GWeCE%fQme51&h*uH9`K1ckWg%mVw zc6EA-ujFZU>y;fZoRlZgF^=?hIfncuuopMPjR;MhBR&F(bpxtOZLsCIw#q!unVhOe zf(ma)OC|5811eE*2xvlYZ zmU=Or_ST%f5I1+TtFxJ>lS%R&otr>O^Bm?OAb`ghvKyX==&F)MX`gi=_H6P)0j&D~topHsPun26IxtaNMj{(Ara z%Aw=9(t9W?1psC25&bDC-uC#!!~$utUD8o*@A=+Y&3R{{cnZ^oU2-`7liiH-Xk=1+ zgnbl49muM!XiuxIjg$m#o4na69=wFd=w}zy@(eRafv&0f&fH7Uv9+I%0uAeByQUhh zjz;AfTe+T4Wz{yG4VPVra16M_zYqB7;)EY z9B6RAuDWY~S7Wamt;z^jb28hBuRzVfKzPuE4)$y}5_t7AAE!8yr9ZWuPwNP0qCZ?z z%aK@3H7Uz^%c>Hc1GaHBBpXGE3k};&#kylS&plopV>J5WUQJBqjQpym#4BU!SGK{L zttL`mfj;Z1Tiao!)3#tX?Pgx1#2xP^M3qJ67=p3@30M*C z@)LI$Jo0hARF{X8VYs}EfX6>nK6|3M@ckQh)pJG@psdNye#5ZOy*l$d(<@v1Hw)TG zax3OK%g)*&vUFqB`1FQI@SOwXz5*AmNP8J2I)#%Q{ zCD$Zs36w3TyZU&;*Gc9-;>r+eE&yzeUD`-?TdW#nXTxncv?1lQ{Fnq(oKXql8|7q>j)bOVurHG*`<_tvM z02~J+Zwal#9@z;a-&7qtl@C%q6=cPdl|$>Px0DUapi|3)^%(BPRGE}>|M_#(ZXHgu zHsPrB34c%E%FS)7bg0nFvZz(Wi1=Z8m(;-f`@u?NS=|M?%TKhkayUW|{U~*%EOUJk zYW1%GuXIkO1vSsJ@nYG@-{18Jl$H-ZLN#QG3NmqKE2wgR=2 zflLEJ#>BxvV?7lzFrjgzhpM!L{3!-6+4RMDVn5m=QvxXjsQ-uI*(e&4b{DlB(fyF( z|2ZZ;8I==e#r272sLJLiaXqe%#LbeGxc|r6=lP`(QHFF#TAPM6wW65p2u;bd+kgRHI5iMfRxD45?RZ) z7OTtX3^s8$fzp1K>16lT1$(o=(g(i&TdVT5SuZ-L75Od%fJ7KF1C8%u)WmudP2Q%Xwsw zMJmoY<8l9}16{bf{n$417GlKI+DXwVUn^I-4aBN3cKRKCW;5{XTe-|TpciR9&F#P> z^yH`Dc*bCP3c>uGA;j)puvXt_O&=;%yDq=9BJ&qh3qxxUQ(D#j4wUCaRd+`w(dT?@`~{>|HJ)XUv#ZdO9u1BCTo{QF-hO6yX+SNbGo!iMX+iX?R}ENB>7=wq7x zov?~4Jp$>+rtT7>lEn4GmgDrbXHy0~47QOn#hVED3TFWlbTUddsSUS82pE0Xex#BG zI0L9BR?KmZhqB7oMh%gFeV~0uC3RtW+r+t(v%^yb`aY$n}aTIS{z#lqpu z56Z_X+U>5zV>pWM<_W`c$Wse*<(V3oW>H;*iVyzkp$a2d#f6&t_t~}rd(h>D80o@4 z?iu8`@uj@o$BXz($pMyy1yCLkUjKnW9@{#^>-Og8DZ-?1(QaRm)l1f{8~X+GDN)e! zv>dittsgmFl(*O*hc4VR)&-70`7TQ zmx0jt=QS_*Iv-A$8lV8s4>z@#Ex}d}0FX3EZkfK~>M+N~6@)=5Uf(*RUYve!K5xwBQ+un4NK5 zQrsQqWBDG|fvKO2I}Z%Gq=8!=&flkrMb??qsTufxJX|tbCV7DR61i)R%SRuua#;-m z!;pn*4t0zGRsNuFwsu(g>`C@=fsMYbpO>S(8ak2;jS=8C16L*L>H=Euh}hlOT{!^T z@VJwU(T$nLbfwKs(9im1>Vx^Y{AA{?bxH{mH6}lZ(t!HaZt|3^8j83P=)R%|Tl`?< zMdNIlDX(G1?GMJ4-IL6zJ6~#s@rEF&fo<$9Ravjj_lE)rz^^RwX1aq`@>+j_dU}a& zJGEI9MD@=I>xD26sMZi&?=esM9(Rju;#aPp7eKN&YKY zTMZg5oMNp8Ib~&EmRxQxeKy#07UHX9h5o#|4;ZBBE2F#wD)a)mhq<@jiCot^OzHMN zvy>~x8l6FgVMCeTD5Rl5lc}2PrXGf7k<|4Q56O4XYU2S(3^5MfQN(%D^@V)yJwbz< z7x5Y&sGOydtFvNI_!RhD0E{z#+na9%c53`BaaO|2s=heI;Q@TOk1yhjp`IsJ-?Chp z(dCVfsV?l>EO*(94XKts$d4e3GsuKm*tRUex-K35xrDt?LMRDpP_V&ThYtvxo8L)y?fF!x{XmAedF@w^DO>EoA}q&AZscRPiBJ`c?j3PiE2D3E#@${nR zPgk*)U1}z%|0Ma{({Auto|pR3J{|{i^ z$NoDQcE|+VkC%EVN|F8}9^oZ8=ClWP{s%CF?ap;+P5Acfqu70N;Spx?RgO7AvWvzB zbqs(PCmk;yIa$^8jVmAH;IW0!-8}QYLZnbiPo=$YQc`Hg`_I!}Pt>#?^dFV+w6u9+ z(_P==zWP4myk^J(8LTMb*htH1`ZoYxE7Bqbc4Lebb3!Xw+!UmTe{U?)`*M^`AtJI7 zroY`242za<^b&pAx!-vaC9lR9Upgc7ixqLjq2qvCss)i!nE8u-vN@o-6?6&Hn(0)d zAg&T?NB;3s9V|4+QCZis$mFk z@N?b>SG^n@>rSx7=Nrfpyp~HaRuP}SGQ=Th9d5D+48UPC=Ia4qo70cIXXJo@DzKY! zoUQGnsW?=e+@H%VAc47h-^341#l??wOx zUVV8@Ytt58n)v+ln+?pT{>|pr_+D=3A_W={cdZovy8Mu(3O~?WNw`}){1C79N;qQ1 zRPH-XS2Cw7DXG^*)+;n(m&f^RGW}b2dGQa`$;#RcB3v2Bqqi}o3g3K#8m_X7Vu{8V z$Q$k=>mtjld=DDNAn|BXmQPwim9ygkgDm8QyD;ZN<*oPb;ZDQr%{|_guLLm}wm-@i z-D*wD;;%0(W!#QNNvVRh6m*4!bLbs?oC)1V?CY?~$ga`XP*eT#-HlM)eP7Fk23)p3 z3zLRy?b8Y>s`$s`GC|zWJqO7%@YW56wK;Cw=@JK-&n;#8axr%%K=Y1$?t_bErKy>0 zgG|uOn_+bsbewE$xNdb90~#HMLEci>Tfb?HOsmbL;UV{Ef*Wq&dxATG_x0@ZsgNdd zP^CWT&G{LlNJnI@*TmHim69&@SwW^*2`#5Lg9GH_jn;!dt5=#`J8duEIC;Fc@D8%U zp_8l@zq04SL!UYVG6DHq-GUm1L_}Mfvt^Fgs!znT0dqi>(a3i@U$iWh%Uwi};6Rm% zvs-bG+J_$B!?#-r3zwZsFtO|eUi&O1{qLr4#<~BxJ2T}R(&sq*^O!odTIU7~6k90- ztCV?MDy^n_H(3GqckEt>=PO{w<$dU3;yEzYX0;mMK2@-MjSeO}PEL?~ybfTwi z1|juM+qS?&2ST(Gw}nJV?Ynj{FC>om5|2Avxh;`M?f_6F=JUO#fG_BMif0Ye`6MvI z2=#!_$UVRwVP>c%vGf=5h(aH+ML6;EcYv{AAwIj3EFruS*aAdT4t(&zA4RU?e%o-+ z7w~)1bDY@+FtuA-cYGg!p*DfKs{sI3@-NzE@13P^G4OT5I{$fXx{=nw?lMcTkgp`u zwCrAcHi3c1#^xFB@h#Vv#GFWFiMvVdeRhaoLVHkL>q^50_R-S#R^BHo7=QgklDLvS zhS{KKbHOnvZKGb$FLFG?|L%&7-FJO=RF-9xMkGXdck9=M7BQ}ji@q&`PAPxv2+8iY zUwos|>Vvf_)jNae7UGm5&}6+fi*XZA?RmP64GcTD{4m)WE4?FOWLeNbp%kThW6O|HsAXE0-kyP?gRh zyTl)9k$CxWwe~a=W+IsX?MyD%97xk`Fn=!#OUv=z4`*HeuVNhi7k?*s)`JwX9rI-^LrX|-R-&F6eP)?(RMg)h z3IjW#w7Us)au4Sr7fW=p@wS(DY0hRe?UCnF5YE1nB=PLRj7s|xq1ok4?&yYqd3K&_ z^nIb?{S8lU;C-C|#@PPmDGs9l)`GiMFe{h_>v_2=(F@qR&PbYYOhmtTBRoa`XoA3 zhwk8rRd;&u68b~9_tbQ-acSSe>6*3}7`Mm#; zxYmfH#t+6e&!|a{oEur6S9v0m6j4U{9hQByyV**b=Ur0Kmz=Wt)@|~55mbIT-ouda zOkuwhPyeT@|8E$gUN=Mv?;7Y8=wp)f`Hbai!JesZr8orOyR_Pr@8xWR_@VAc5VbE~ zA0(XHsrM`tYK}cvah4e{IW{FzG_kqbUnsiZ1RsJLB(y#c<<2?JU|O$nl~QqC<)HDz zYNg|M^FZl|S0JANO*wBKKEX~5W+s!I61YcCmz@g|U6_s3olw3ehIrjZr&w?YCa#`g7NDEU+&82!tlxrRJZc%av11ySq49F02b z3k#ib`ff{5*c6O~xYTBP=T6*ekcTdT!b|hYN&Wi7sRqH5`=qB^m~X(P5H7CY^nU43 zfe1HdhA4c*BsdQ>0p4Qy$wz8*MJs&DNn~SwkesjRTkM7vsXNlMmnarfZ4F~hWlW-# zgyJrj$6QtgPifAABBaYiyhI+CyP|IZv2B+q)2FTBV(%^z_Z|e6VTl z^Q+*`_|ZV+v`_D2wHvLX|_GGAIwNXq-WJ|g4Fk= zze(%Z{9wo4q)Bm2;5qj^t-wtzVk%!HVwDIMD;9ugT}X4SuihVD(iLNFeZ<_9FviQf zjx1Asunr+?%J5`%E_Xbvm^;qZuo2OzL@$Ury(DxnxX%pM?&?n-IDvZIlaKL=tE!eNoz=NpLz8Y z>Nyo-jtyybd<^&o(gmw|`hrGP`hhcm=2IR{eA0w&gJ!skzd2tnGCoFr3TJ zcfQjQKKJo%MK8=KSg|6Tc+iXatN0zUy~z!D$dqQUinCk!CA!o-1-a+2vs3}wyk+dU zL}#=Nqod16@|+^l|K%uuHms-`>4&p8!1}~3sV@xU#gp{_c}0Z3m4KB(a;OreY=6rC zn~P6If2nsn$?2te|2c`!dTnejLyeAVdBT1_b*4tc_L)?x?z!lpD4m2=cm5mh49l)w z&FxzXr**B*mvVAlGV`Gf;euit@+GWt%**2b8(j4=*~uPZWnUQEg|6eWt$$w0 z>8KU!m6U`%^pTKqd*AxeJ3XsL+(SCamLVj|iVMJP`N56!hxPKk4GU9^_3S{RAi;Kh z=ytuCxOjX8`y@GY_7^M^C;C+E^zt}``Aiw)LsS)!4FLIB%53n?35g)GW;sq}MAj3y z0MVi0KC4%jWVJXbP28tXa=Y*r3juPU#2cd)4t^AWRJLeSq4pQki)`yh)(pgF$6EP3 zZsn|Dt0+nvaa4Y37VbI6sxy%)GcoqD)aWwKWt)c;H99nZZ@vJ%h_>SIr!l>NmsC_O z`Vm1iJ-+VoU!W3=LrR9PuftNqo{80s4yoH)E0$`vJ(#dM-z(TmP}i`K#!r7VgW|wT z1D&D)D9pd6Bc5nVKfNqk-8zzV8oYVZlZSs&%^Qyaw|*o8RQL-d5KIGReOH*MUmK26 z{d8L;5GzUDMlRGW+~9zyMN^{*000930ssJz0|Ux723mB&uxt%4nkNLg2F{1+csfNhUwClg!VKc0EGZ>WO!&(kbo7c$YR&@ zB+?S#eE!Pd#JMmr3R$Eum1n6$>Oi3xuWC_n(LXbb>=iVQTshAK7u z^X9X5o0WMkShuY8@Z<>@?WovZ9Q>g0+NpFn@+Zf+AqXh~A>oofpM~(y;t_ZSmT26>O63a>5d6O2zJP{s zlZNVycB8<+f;$9gVW5d~?C9&jGE*zCyg(h2BnDB4R;JCUMJ2`-4MwKDMsA8*P1YU) z*;Q=6RF}z7N#xm2fKS0Y1dQ5yXkjyskcY zOS183lS}qb`gsd58&t=T6&96-WF=yFBd9FAWOxon>u6i!!=2ce(Q~3Cz)5hcvD)~c zB-wHhA!tGAwWXz_@)PShfZ0U<1RW_aD{7m8zd5cyO8j4OdxjZA#UM z?H>R12bZ;ZA^YBrZmD1a*rZ zlEsnx@c!Rn7vuf1s{aoXAWW$=O$p@Du)ruhc=e@OgUL#;y zMAG^`U?rTKye4X6S|JcFk&QF`$rK3jX?WoI1VQwSDbNTu8 z5<)Tp=!Yd!MhN~$0Ib+42|~nWJ3W&4gjq8FE)c4z|8`{IL0I@ZhNFsg-#NOb2d~y* z^yYUip7%SzJ8_t`7T_(bT#xFqjBop9qX@3qjIr)`l6f7x4F|k5%pmkOUfgewGQDxe zOLj-whI`_c(KWk=k3Aj@zv<8F->{rivY+xoKOQ1-+-X#V_vSdW(xUlwE~H_-2mVia zvgiDd5=9zImMwmB-tTv(XMu>xreX7ewyN?tkRJ+1fnEP$0G!?Geo5x2fGymhSOj~a zudc9I`cAuXPthZC?9&c4$w3k&AOlP_Tix#ZcKi`*3`tb?KtrCa5!7i-X%x)=j&oT9 ztv8gvrmjt%nkrU2DGe~4WmV^|L9~PARE59x_}^Oigkq?#gN8IzwaiOm`6RaE0K}}X zI7g%H3re66hqf+-u(ycGAZF_}PL)qnk-_(QHb9?}_Yer`2sFZ%Qju^mF;aF^Qgcu0QjKNQ8%J>&)FTFh z7?!}%p2(=Sk#yz9T=*cU7t{ZcG$IK^Y!azH)1Y5;s)%{P;YQaqQ{n-KpTN&EI`RiR z^}k?3+mBv1k_E95EX24#J;Ry^^MvfY!+1qq>JYDp)F9Ktf)4_iiyyb~64itz zba5{*v)A~&_V29FA33>PdfYD`IAQ(zKyo`Wb12j7g{Eqh|NeIC|-a=9b7%#UcOmCbs zQ>+&IJWmw*tj7YE?K;EZ69y?Nt2?GsLeJVu9A{W!{U7Ip@ z-DQp60*~3gZ*{_v7}LHa)ANA9Yfb7`ki-z7+SmXTBV^yp_UT*jRqdg|Fij4*@MG0~;U=F+jS``>TZqy275^u^1i$;w`|A4|9wVa6+Ym_A=Ay+50`B% zl~B5;@aD-v9!*O(I)9sY!6AICocJqshDH-!Be$IKPLRMrL{v2cT_^sK41%??w&r3pHpIvZiuoztG8=QNSZ zl>f8r+bjb%S}PaT(1{HkmVNwJ2Kw%qH7_DHB78z(Z>FDyv;tL}E4>2DL4lmT+=q?` zyll6D6$h?o@4oeAat7&DU-7sY(59X+&z*R%@2RTrE>+%Oz80p(inOkl{DAseQ7pCm z6_?5%jec)Z1+sur$)-y=>aD*5;;Qzqub>GjG`Udxs!TeoA7QAy{Lxh~27W zDlM_{uccJGz{SGL=k5J5CLwOpUbscJd; z!zZ*5NPXiAkA*Od9+QJ3&d>1Y>Y<`D#ki?eIeVNX*8NM~()P+hVOwiG<1U%h6fr4s z5F}L61`-ja-6)jMxLO0JUN}^uf3KLFs=sb)8D`kgLJ~rMqSUb8IrM(nt!SLV^Ya*t zI&)hBj4u>o%?qn*xgWuL+!?mz`QJq?O#WlnmibO(3P?8C z9ONX}QNl*!u@Gz$)>7-#uXvvPjM_+;H@qbvf4{U<#Fm1Z_#(?zyp$Y&1r0Ln@5N zcmY`at@^1x)FQ5$o*FMuCBB!PDv-aonEHw1gGz2XD zT_Ntx7lh=`pxod%;E4}n@m+TNcM`J6#&7=u>LU+|XsrW7S8Ec)2R|Y`d+_?jR=2<3 zzo~awl;pgLqh)azARy>Nokd@F%{h?MmDWvuDMGFr++DXb?Gbj411X}jM;i>@WL zMO>Quiz1)=#wee=FK}H0&*^>>g1CV+b%Xy+e+IM==3!LUBx7yh@ke@byKpM4fHz2`(uH5VFo&x2==fOX2GL*lGcJESX^A6<%rQjCCixNsIGZ_C@i zRyW#@)?eCE;)vywyJ4IjySWpZZ~gLBXHI!oDc{CLm7MN%C}L-U>vUvOOQ;lX*E>Y! zERi18G}>e7oI`W{&ck2lXyzFC^>s^gA4E4!3!-9wSh5;3J2T|BcU9*HW(#)4;Q#C$PC&4`5@Q8gTDjs1H zR;Omw5WuU^ayh_^i?XMLXj=%pWeNa8rewM9L0;DD=>l^jWn$(!)bkA(Xp2WPUr>W=0jNMGBo!PZSrSQx&{kV^ z%9mVYGDV2ul{V#=)bjiWzJlOy6hv44MTb&Prrpf4@+7PpJ zt^7ZyBl2$p(3TT3$|fa_Ra#E%>jQN_Kn`otafMt@CF7z@MqQ5hicwjys6e*m9gs7!)rn%k>FyW0Rxhx>@K5-SE5GogX3{`lNfb>4AqD8`X7ZaUoAnJSZG1dIGEy6j3in zh%9R&CGn%t?GrhwCjY#?^+;Xk3&wgobK^kIeL6;4m(Vp>1M-7v+@RKWr$zy%%-o~M ztj;juUq;HXdsabES*dVV_M09Ugy2^^PS7KG_Oc?Zs@YPqG0_^c37ythYj-%_tkt22 z$b*C^KwgL*q{bEk6lGE@m?rjkIW?(zL%20eyKnHs9 z;$-uDD#SJx1^ge*n+AqAu;dO}L?|^FW_=`)U4MsI^a66)_@~h5!A>AV;~E6o|6vS% zgy#BIRpAQVa999E_Vl9^!=rZ(r3QMUdb0(YQk#?ZwO}|aE);j=9^FQ0CnNFu9r!M; zZ`QWe#w<&4L-V{$@9K`3`owpm5Z*t6l}crsyk)T9I`O#pBW5R_FZ%*TnTi<^Ik$=% z?=4PyhHfKS=BOXOL~#<%EIz3rbeRk|5I$JO=rpcwT^vq;l3Nm?4)K*7DQT{o`=j5c|Ay85jO8ovmlsp4SdNw-cUjc5gDR5h!GhzPQ*yK zUdHI~5ZF;*ynR%GtQRp5=RA&QGA5^;hC9e9r7M|QOa~p_{&x)q#z?0*t5z*+*mo29 z%J|AS@UFsESjd~4YJ&6hnz)mVVcht=HpMhqS*=jJ7W2#CFnf>qaH!1#Ie@VxWhE>+ zjgQSBZmBX9>x+OKBGeor9Z(^vFQ;jw2}SK%6q3tu3w)|_uXpoYm|gBtmt%ce;d7k1 z`}@3RiB{|V?=U6DJHJ-?wrrJ&&>H_?CZ0z{3$i*&t-a$84aBsdFG2x}0g-u2YL@J? zfKYCOiwQfMGp*ZvpA~VLfWg*F5hDhRJqj=q;aM9{aZMJ9V6#G0BBBr|4^YzyB!z>X zUI5SmfdZ$4ou{7k5x_9uzo44`%q|bK>mGUnd@3XgL1bc)<@I$#xQtKzY13_2=wxxh zsFBJ@G}2a#J8taCJvSr@M#}UBnB`&gC~83 zA7BV+u9o|5)pqU-N6 z{qWmB{#k1bO~mUaX>{ByQm>DKTv=^~S9Z;F1|VAMy3MimpT#Qcd&O_#PlkLAqpA|d zK9t~Qn~c==TLq2YJH!AZgou0pWL{X@4&>1pttRm-O*xe|lBtYV z@~VWXzj0P!D1&V&*a$Z|SV-js^hcQCTnYn&tM&} z0cC9h=_gVZ@^OlAQd1n)1H7)!%YIr3q>-b8(~+acEw%c6i$?dzmZBg@Bk6_GpgW%> z>=~u(dfyadKs(}lD@hs0!##Ex`KA$y?@RKCUc>rZOmlHF6#YJ%f?U1@HC2Q0aj*=D z8YV1@yaav;A{(kRS{!w_FjZpGOUT-2HJuj5xYJcP~#1TvBqQZsyDNeGZHnzK2+)Fq1lOXu|Q>>vCW<|zi!_4hC`p3b%S zo$=hjKeqOEZcmMsfis+G9QS|9JPOGRabn#ya<0ev3LH{%D?`v4aOZPZbr+Yv(4PIV z=d#eSqrMw=%^1mD!d<$2u=H;5Z_{>uZ}pxZEWtji5YpGN6fZFy%3O;*z#kV<1#vcI zOorZfxLVl$?puuA;8>eRY1#s^4ialmR!tmHV3?O@cX}Q+k0qo1w&`+?5u;AZUSt~U zxEE>KVsm)z&sZE%K{{^ivTPCC?{u;hLU23suW=-6MPqFg$06JIg#=yTX}tm#eKRCy zO2;<*`5|t?RE-wML-T50D(TSv0%}iXvH^Sq>@swRGH;=B_N4TOwW3B>3R@0cdE;ZV zXTBP-zXSXBaYct`;St~5_Sfgo!4gg6`#OBm+ca|;o#N(ITKjGX23C6cj_BuIt{z`d zI(rTRDw-ax=i8%^49@-v4Nump?kVbN4;P*oeaL8R#p35`KJZ2_e}C@)JkIAn0a^#e zfaf}!MNx_?a<;_12Fl7V;p9a&Lhq1@D1LOc63jcubGe*m>!%s8yWZh64v&!T=4Ok( z3!1D`%s1}EQ0;}$OXFTBl5w3nW4QP%1;4&b;U^FuN+hk#H4UbtOo-bFhnlD;GU6P( zP0(^Gb-U&`Q}_Z8&oNHtYzz1YxG~larsKsU)_SWTz4`1zEt|XFv}pO<)w*u`GFT(0 ziV=v=lyM^ft73Jx2YQd0)q!<7)EB+$Kas1nhEjC%==|iqw@t5`0$tw}HI`^e9cj@M zlKu`U#FFY`oTzn7T-fUiEnrR*~wz;~n~LSHR6z6=cGB z#5q@ykh&(XTx39{tM>xK-;)s2&0Z-2MOJ1vL0cMW4=Bim8Y;8{K2wq?^Yg|7n#Oye zItgy2gWakV{W2v{%>-R1C|LNN`b1?U)9%rM7<8J78n3u4O%`dn01KZcxZbOb?XXgW z(t2GT7$P9;P^s>*MElnxx4C+~M_^zQpU6ad%=|3&+UA+n9{BT;r{i}P1$I>JN9_3Q zY8SY3`%xQgn-OVK0t_mXMB>KkbAGkYH|p>G$XqAhB!vvF1WWMT@M%jnX`n#H5!u>ebMk-=Es+hIyLrZTm%ezzDR9{-jL@{2Q=K6FScu_GCG5L=BNvxZX zLH(pRu|CV=7fuueh?KKIj;z}^WJQ52+yp`VGG22=gFned)x0>1A%=vJz`c znQ%WtZ1NuvPKIvLYr>@=wK4}9XC6B>1Uupa#X;aA#sP|hqEDmS?*|6ob+OVtakNLt zZD!nnwJItksq4*;5+VEmAIVX;nFUyH19XP8VJWvORx7OkI`D z)XoOrR^X5E_OL4VgVjM*<_-(0AsJM1C(j0Kh6ZqBA9Y>Q1K=TMH?-W_a7qyo`uJ|j z1oHhygELCii50xOeQ5xT>!7k0Q~*ukJstv+D-$jZwLyPw4co3h<{3$vTpme9m~2?~ z4zwty-#uDuoJS2nN|?>wG~0LJ)c!D1cQ~A@QPXb4xuYdO9g1SY`Fr?IlM`u8Kz%-@ zLc$Y};KdOa9gNupp)(Zm8sJ_=KL1(VEMu1ftn)7lg=+6AqWE5;l`shHZvexHfwiNzM9oSf(p$cA&iiARtIfI1h5$&zwF>8Nb!k2#a zAdZ@Dwk6|}K6kqn2#v6OeS=*iMOXmVz;rFE%!Fs-%zrrjx1)$ zv}VUdJD{QfcEbvq>2S`+B8KvbBiNoQmaOMZ=tR1Q>UTLP>61d4RBUpq?IZokIB06| zr7`}H6}K$C9@=LeEY*mOH3+nLXsI#T4EbVDMegM*0Xb?LD+Yngpr>xt3Xjxyq8ClW z!XzH8bvYD^s8A8^*+9>+ehSY=z6o;g_Xck; z5Ai@HWhWaW?y@KnJbpmg?9_gYE; z=;#1!Qf4KgH*g+_@*Z@IWHU&znlIyC2~vAJ>)NoIX5$Q9I9Du0<*%c0kR?OxXYq3V zg=SWP0$pZdUiB|^{R(~s2~~kkuAr4iw^14xyIj-A<@b?|(0)KR)C)c(=akxxbbblv z!!bmestv%sz-@IQ4{KgH)8uotCli!2i0XWe!LHb11^w6MDGh|1jOu5FE4^qPxxKWw^!GqstQwxqqc4yffmI<`@{; zZc(J%&T9&~V)6?PBa4M8?DKT;jP8(hTJKKeX(c|QIp%WJ+6I=Y&l<07`93n~qq(P6 z-6U3dN;|89<91=0v>d7Yny`=EN)gla1eV(bNBmQOAINusr33!X1M7FO9HE1Jls1#w(|s_+o1Svm$GTrP!yUQWo4&$ zfE{VOA|DM)d!5GZAo{vGkuM0r?{RiGBlcRu0gDFmlSCi9kIyIiW#LIn;7y`mY0Yl+ zsmmRvNe#rZO5&O2tg*!Tc>1jWSFYMRTgG)~0UO92r9&u%ZT(G9Ti#)Ffh_Ev>=I$Z z(xD+7q6$Bw^48UXjrI7tR4tZD$WVYINH|dnWjRx)>g_Xh14A2-#wL(rE8~tZq51DC zYUbC%9%T_*WfGM>3$v^sdF{R>6R6K&L_Fz)(ZA7~beYwbbeXWFN90*^j)(W4^*1wcui4 zI-o<>daapcTX4{JDFDQm z#e#{2IRGL#QzB>@QMkVe?}XSh%YB}1muX#3Ntd($^Hv}F2h0Rut=NBC<&77>^OIH% z7C(Vk+6D{dk5Z77{i5qS*6B73Ar=*Q+Y%%D^>kHoy1uMoBWB~$4#spW8Fkh4zC9+f zL*@U`IebtFsXKg=V+hSHDxJ#wK%Hqp#D)w**=XI+n+3_tkAXY(saPwb089Z52srvIL91rOf4~KYY=XMQI6! zMg1Ti3Fe_IVR$yz5cb`SNT2d8rxbm{#nb+!1-j8?me}gub6o73a~{uOCM50pr0v(Y zc9k-9!;$>vh+Mg)NOcmV4Myxp>E}dG|3|`iJg-RF^4Y)#eD^d4^^j7mueCM9!L0M= zJ#gHF6c@`$?s$j5rS*$%KV7~>w51Mba@tYWfWBUr7;M7T>)0``hn-Ms@b(`AtH?UJR z?O<4Krj2mcTQEHV%_mQ}-!znOEM$+cUlPeM!IPS}17V8Q@Gb{WOK zFzl;c@SADq?UJd--*KS1-*^idV6bb{#oq(w6P!JxI)flBIEQxyZm>M0W2_^t5zyN+ zwx^a$SJK}*ncEGx*LC^yAJeWjOLp^XrKnANjE>Ar|Fim+X+bc?k2OWs#H0>;T{zZQ zCol%j2rM#iEPzV0EBk@tfj`QnY0?XofUy*|%7&nsSb7%7yB^bur5hel#95`~&2dY> zG)Vqme8d+^1YWFEo;sA%9@7gyE1@5No=LqO?f$5u^L{B2R`2m+@CWkTANSB(uB2P8 zxv#8M%L>Vhe5ZVgH8v$TV1ad&HwqLfeY1FqX0}179V+!V#hRZ4ObXK6Zhf+d^r_jYI-$&p2%^ zZO4$t@o{JctceHRm7cY9>#{b$APTC4jOdhpd}HsKSPaV)G#orC`Va{Rp)kw+pv>s8 zdMFj2H+mCt_`8PkSN&um9-tEiLBpztk0`wk$$Rigr3;&Us7PLf@I}-(n2Os9t2y-V zz+OiCpj@oD_3(%Qr&8#%r}TAAf1Z2sWFmN}w$F$|=SsyzF3=$()xA@GwD&f-z z;7d8w&dUuoQShflx?u2uGg^I^TKSA}K9JUUVqphV+H6U3p5cbpTPBMkcsay~Eb2zH zsVe~mOSZlLe5f@^N7rrKYmqAQa?zU>sgy54hIYJEPl9KIKL4w|&8iRYP3SlG%|^%c zJpgR9Z~qo-C}SQ9?glRhI8)cDe_hda7mGxuJ%*>ebRt;Sl1dNC_6l%VzRp{J+zIk} zdd1tzAIzFpoJTJf&vRz3u3>$fDw*bxbXM}5cX9N}x9U9(M~gIAYuSdYLp>?g$=y;B z-a6%?V=>DJZ*|UK5kHt{A1%9`0p^N4u<%cD+jFz`V)jR+bljaB0|<5IkD7&CKJ(mK z=nLwnhFxl$&IK(h@U+R6i}p1o&Q;%gPL<1rRke-0i@4~8F%_pES}48=_c2xxl?M`n zO|)D0;$_2yL+_+K9q@7?{v9<84sy8!(iuJQ3Yfb~^kDF+g_A*90xSkj35238@2@}S zg+NuV=;zVDX(IGZ{$fX`Pg|6(8WF|+z%j$|@O0-_DSfP@f1v*xCNsB6N{?04fwn-8 z*R8n^(6-E8C*!i;c-Vt1^LNmA_8J-tPuqBLN%wruz^uzGV1S+CjL~j7w|fu0$oY@h zo>t^TWNG(wn!p-h3VcBUAT{u9zmXpyo>Qtfbk@i9Oj6$$1P8z%uq`S{AP;jN8jC?2`-6c;m)lI88p^Znix$L;%g3Hobtw9Q<&}Ag9FUZD z%>x5o>Mfer9p)%>b~9#k^>R-$io!)>d$;n44PpRT9~PLwB9rpX8Q+*&T%!F~X8Dtc zZkW_lNadrIv_rFj0nKpqFfd0zcV0PP<@OIl@aw3gda$V>MBrMDJCKF48(xyc2|c$N zH>z2jthI6C(=Jr}wLN@rqkENq`xBga{5nQVHhfSyJ4}>cy7$j0c%I-Xp|fzSKsiP` zvdptKe?GPLAvDUC4(Nv-4Jpv6WNeFaZcqkwy85y`FPG4ECO9f48q3wCO zZa>oXdmD};nV=HE71*6^t!Cx1&Tzw+GkEJFyeLt7-|oG1GV4H4*VjBolG^nyC(^iE zUunbVk$~!Kt$ind+@~p6YaqO0j~m29=&IUG>Nz!&u!^rN)9gqUv;pD1=-IRloc)As zeqdIXu2ji@a3H!x1mZYLp7BgCdWRzqeC8@3fXLlnP<ZQBjE${{_h&x*vlWBDb5+SeM3Abj?jsQdO6T<`Ht7c zBbh`uFkbNCiP`nlnh1OYr z8j9(#T?m*#e&W!f8&H2M96&Gq2VJn)5dG;l9H3NV-rzsk26%sIy2c;qx!_CpqC29>JVTEz|G#7j zoc2%6J5infgQ`V@_`k|6auYhYrY63y8Uq>2PYo$rf{?kC-XG!3jRIq}NOuN}LnMaj z#Jr6U;)0RSP7liGGO>bRetbN}kPY*iOLU;G-e3L-Jx-YlKVNr$H~KeKDwE?imz~iG z;bGKJ{uel>2MhI+K9>nn`0yfOq0=g5(naBXO#8a;aeGkKPuVzQ8=Aa2nt50*Nj^c}7HrDu0$YLK%i7JD@ zH2(8tnEUTSgU0_M2xnsqp96-;%w1Uq5{cw^V@E9(!>p0prTliFV%JS*U<94h8Y{K1 zZOJe@m2w4}b~hE3D}5YrNc0;(7GGp!jx9BHY*Y{b6v?cu;6I+rumN!k>XUaD_HpGR zxY1bX06*Kizi3%u1sRb< zYpy+d@rJMa%mdDD%TTwR6Di=u<@vmWpCR>JE~Z6@m%*d1oD^1|nC6}YN97fRgw!p70h=aAB4A0-(#Pf&Ur5qa~NQT zT_hiuTLpgMtH{uN$ZPn_W5~AQ_j>JqpiyLhAd3POhGnPj41(kvgR1 ziW}g3vVSh*^R~;w33(k>7_xmxJz9r@h)YQNRO6@5$U9rnx90Hj!D?m$rpTiGLV5=x z0Ibkvm;^nN9M24xQ!f{_K_N+l7TgR`kRw+?9YiM@BG3Rh2rZMN`w6NslVJjM!Pif{ zQk_6h?APTyoJh{@%o)HeA!2CWK3xqZ`&vg?e>>!QaPVfx^v^V@EK}M@2(C}b80*{S zEWEX*@-Utb%TwhUeeI`kT^^bI+U8YpP;RV~eqol{s&H4QLE20lp9%r3Mw~PlYWSKwfv=TPJhvFbMc_2Wz5ZvqZ zhN_f~`cw(Gg0loC0|X!j)uJHwH!nUDd(HLIrmdV~zs$r&xYrA#504<#!MF`gG`>#m z3$yer*rt}&tCV%wt;IEJ*fwU|)N_qhMpUAzUG+@IwTYZ4!l;FSGhin5-2S0qFv!{6DIDibTm8K)y04Z^zCw~s|-EMJ}I-!EC~e>Md8N)fJfM_j&}p<{E3(GqpHB%}6|_R~AC=7Fdt`4?nzrc&Jv||K=poR| zf(@+E0e%HItX}l2Y33=QOj^vxCc!r>%-1x{s}*Wb+CNN!)+bd(L&*T;36l)>zAE8; za`?PqVlthsmk;g(j@I=N+JX4af5h|?15iM@e2iZOr#9QHp_HS1P>QOpBZbL>!5^6q zJ90g&XnqI{%@1B1eGksxzI^!{Ia$F^A-0c|dEL*SAUr6L!1DmuwO+5E$YG-uzq0~e z0>=-bBXb*EgSN_z8LicuI`RX6c1xmqxAFf?#igxG+4-WUC2}wVS~7J)avgAM((41Z zlV4-Yb4XO3_Ru{~GB7D;JqBtAntu40PCU}V%(}}4a0^?`zQy$Oz{UXVtX&Bx>wu8Hyh|?io#xzT9lk>yDpb2!G2J7^y2?$d|vt6Pq$iM9#sG z>%)WAFr9wS_!qQG$gnJ3qUlVNp=)7(%c(w8oK`mtt@IxyG{jnGI-1yqWd)1;XO#|N z*g1<+0|MVa4%Ke6CTE`Kg&EiF-)J(_FUMF4PYrX&mKHfJG0DaananQ!Zg|2Aq>2`f z5l_XZNeP+C2#juS=smuZ(JWJ4U?9z>5(+_Fc=I%+(3zVx%qJe z3F7b@hqkyU84Ld5CsoYu2H{E4?lRBuiAhxxcVE7`!!dLRpUPW?+?WO2eOiAJbzo~R zromr*I{oibcn^8Hr&d9_Zq8n;#*}ZMsy%cCt$krK81Ra4W257IpGjCeX&d{`-aB+(F#F4JKjcZqqY#L%@<3QFn|tEamHXtipS| zb!ReSMcLlYeBoTwVVev08>#!dbGw$I2a_Jf!p=AzbnermyCr*#udt|q@%+xc4%{;> zO{Q7Mv1#5HVp9Oz(<99h#G5F}$5SR-{gN=HhkHh>A*5(Ps8HLGV~G|!(D6*P8Enor zcBnj{B3JHw!u>Sdo%E!Kp*Vj6ZvCeAplvf(EQUyTWA$g>NUn!ND5Oz}uoU-rUF;g~ zi4`<&{O}G=<{$k(wvF*dtPUlODutnDf(0j?(Ub781HwB}%u^DB#q>t-YmtomB?!W% zVaIqqUM@;rMVQ$UY%RxUYLwki*v}pBXeXO0&rxG3Y zkZmNOG&{J|6%~FgBM45S*M)OZjefz-mQ_>K{1=!i4K*);j=F&2M7guE^7eo`rtu8! z3Z`HKC{kJ>lHNgd%D0i?b)O+w?FpZ{tyfrZWReB|j zJiP_5dI{nKsJC$#NSJ@L^b8;9os@Ui@O;i3;l6gtM~SW9JN!D-p+YE+TbXZR=m0Xa z_9P>D^~w)6L6P!fd0##3n1ks~TM#!){K>^|g)hEDJHZ>Sv3V9$>E+!ZO~uvXz_zk% zoISjQfj%*R&6TD)UNodTSoL*}=N4r8f!(E3rb#P9+|tgv*RxEG){e;Bvin$XATt%8 zOdy;WUe`^`@Kc$aZFQ7gP!bTsJ{|0*)%piwswC+{e|3@(YTK9@#gN#9IV#}T=rD!b zpC|yel$7q_2;zm7wUgxcu?Les4tI$I^X#$!IY7q0F|gjhp|P4NrATd(mS=@9nF$tY zZL$9IUnNKQNeHj(pXk+dZjg&P&bIaYggVA5GoeOV4_6Baxl}FeJse~(1i9jO#BxVe zFy_Hkw(VXq(1;XaRkr|6;m!4`0|x@@h_GQ*YS&afQZYA_%-bt?)>=G&+aoTEYO-&0 zAK^ZGD`(Jv!NF(pcmg{IS#~sYl{x8S1x*}pzT-;tpG&S2N1z7+)DMGNA%c=BHoFbG zQH1<6>*X&JyAFdi)+!&J3`9k9F`la2jf zQSr+4q0u&#t@m#G4-^R>vq5cNK6_1TsylazGj2&+-r#5*-i$)BOPN|`6ABQ8Zc-uH zuXGsqW)~tfK3(0Fl7b7(&l|~2gkwTcaz5ZJO5wC}uv=TxT}P-N zq!CV)EJFJVNiL~wo+(#ayJ+m{h|D0TnajJAu5tngu?rCpJX*0*DnoABL3S=>tPz!wa z(J!#05Zl!wbJx(>Rj8JbH{I+A4NqvAYHW?$Wxlx2hA%cHr;x>s(-fBIqb6%tH+r1} z;g}4lKBT zI43nkbyjbt4E=9#Op2(ecmU4_96bgoj=XjD9RhMOP>C6TR6x!hq=G;ZBIoM^!@VsY&~2_bC4|ml{Ra0XrK_ znGW(=te*R#s$S%9Q4}|)tcVnz=CsLhy=j8N`Fs5jp}RVoSFwihbOOTVcl_zg6kuJo zO}RJFSqBq{xGB_FWs%%tA;@$;t}317iylOC=Bnc*delBfQ7icn(D=3zGWYZ1Tcp=P z&Q{C&UhrS;lbFyx#3FbAeKDmE`iRq;!ey!EU=RxR-n!#lc$ zm6CZTN^O#(N!Vfdku5C+5lz31dp7|JGDT;{(eUYN-B^J`yv~t zNAgtb1Nex=Dl#|xM-ZPo?LFN0Qs z9JO*H6vd+=S6aT{XEb+N(iNK5j^B*LR#DO$V)NWffT3ra?NYh3-}y?D*)H#y&5)fH z|M#$lb5%n7y7I00VFB<8+C~F;XKg!2BMJ>(-^01(rF;i`q`uUzi!1(-vnx(dp4k~!^b=QubB@zT`UpT|XO#2hBc9+u zIOX(z!v!zU9uR_OGI+R{$WjF2CzM$>Xlsv=4l5|U?a5b9kwtETdJ3u z^hS5s`*=;|CmtrAUipk|xlU5efIEThPkdN+rhFmtE29LWM2VQ2jod8pC?(*%08aq2 zo6ebb${kIV0vn}u{_|XHq|}SxOp92g$Ag7*+52eh8KIQ2hrKIBENA;!cSTF=v58sK z`?-Jnxh!;Xj`vfy8HYxHl%6)3#e<=WW~J7U4_pEe&#_Abx}|!$Iv7EK==63Bm~m4| z|E6u3ol&OR#s*@`7}N9AmCPLE;_%@qiwNDsD}BE%Z^;=D7;NXMvoo0~*iYl}+$=YS z?^?h&Jf{wvPucVmE>PaioxVSbDw{eEinEMS+Oq7g9q3c$xBn7cVH;({LGJC5$$rRL;xG7sEYjx9EKNNPFZ?wzv$psGC+7;|@K>|)gke@B|R(oKWR7l}0Q+59my0G(Mk zU*0c1LZ9ub(v26^q}2`uq}vC*NhuLZb+;0n#`*lKAjzt^@xz{S61Jxe5948<^++43IVMV1%-!oKn*o#|iOiF9` zXM()_L;hmorTzGyabUXoKN)~sDGOA0?7VR11)k~|i|{v? zm7#Vrb!M7e%CHIBj8d2){vq~Rp>F4g_z+8h^wP)g8a*sRYo#WBAQ{cs>6wF@D7*?& z$5!o-x$%j~@|U;4Pvb`#f<|jPa*!wYYEFu|I$xkRhDkHob`K<`@I%bl zy+gp?eZ1(&C=#&=sO2WR>IGXq`41VDEXkwjD84DPLG%#968PeE=v{=anG4{1p zgi%W_S(Fg{@Y_&j*h$%WSYV~JvPIO-v!qAFCgBf&8YqN;V-9hgOLZjwjXQP22G@gt z5Jt6z?!#x*r}t&N!^aX^W=ft2%oV|^%U*{^DSTdXHlKw*__sRU7m%%C#c;$NK;v&d z^>2-TNzdH4uzSqV)yk*v)h=UMyr@*~7bft6jx^sm^)x5fhrVy}@!CZIG>!cN!xHeJ z2{RyPrnd|^w=Jtz1#RWf=!H%OgV7e`c=U@r9w(F7p^+Nl7euZ(x95k=k*}(T!}F}| z>h*e|GL1h(rxMa_a%1S(wkao>d`HM-ZZUD{*UeO38&!hFmc?R}hTh(4tZ(7{vJ=HT zve4#>(A303oOTU69{AVB;$ek5OQ^B*{IC}u;>*DPBm7rLP7&szpIo6X**m2Nv7Om5 z@~?sg8{5|kFOkZ^MbKh51Ss{f&8Iu3HFJ~Z-n&wDkuX>|fd$^r^MA`{(1cw)f$2B_Y^|#u=-2rZ!;ks8`t>R6^ue^M*LeT_}2nCZMN*!EdQ*t4# zVDwIr_)ms2@|#X>+<{9$i51NKC{;B7I1BMCA_)x6yIc9z^{v6I=`eRSY%X<1bgyTu zF$6~Q)UMhnmUw0}9Kl$B%$lVDCgJiaE-!^)&Ivu9Lzlawo9NW#`TyKq!BYvo1wJ1g zP(}MI!JoG);8->23<&auR)$A^6{5=*23#DjZiV882InT57y-Ys}Ol z#T4~2IWeTgmP9ZS5R*^jaTWTMK`n}?9}XX&E-eaLK!BTHOUw*Ktn+6Hgz!1@x3^Se zQz+}@d`m-7>OkkijGG?6cM=|7@VFhdJ*(A(x4?G-j`NHCWN0OqS_<8El%aTV&Ig+g zhdv-8#lT450002y0HFYAfJI3LS&{MX)RnZx6o9~5Sz>l)>sCFTAXpzKAotgcJm0hD z%`-@DqSv77fkxBeHfHMWwB+WHTriqQGXMagD#E-33WSITYd-_t0s`}UTbsD=Y}f@C z>WXv^A_iiREKvDE%tjzYVsH!)uq{9c2^LR;1V}y1RQPulv5=_l5NU01*)Y7*QDnRDuQ#1dNDx zF@J9QvU8kQcUGpq%$Kr)HR`sCx+m+Os^5Rn^FpJ2F-bEZ=h<|ByrY4H-Y|Nc+znTS z5!`S`G&jKH1ACbAepw9$f-ig-{m&>gC<^yx!uhR?_V@vou{&_^Aq!!UW8`ft(vBBE zIJU41AMPE0sUi5^3t#k4_^Eq-(kcu;1Su8&{i>Vvrx6DHzBtuwOs2zYm+Fp0A&FO` z?lc%m#l^l9EI&Xps?`GqCJPQ56rg&JB$kwIl)-?J7p16haz!I_7~#7nX0cK3rb=aZ zNwpN2v=tcC%8ZA)(-Gf}`Ht3u62Z;EeJDjHk2k2rx65BXE9|GxTN%7WS^IY}OSk|J zGl@TL@%}st9 z*jw{7w7yRmJ4y23-p7D%hY<2u?ue4SFu-(6JcFQ!z39zukRG%IHo%xT$@u8ccuvx3 z#-hX1K^Y853xLBgE@eibIf{4Bq(ICEcq6xOh$CiPrT`ql6Ujl$Xx>jSdlph+sEjor z*^CG0h~%9T0CM#&A9XKvU5UeR#^fF$Z`yoXX^G4EK*Tc&zDYSrJ*0vl!0KzI*gF?c z%=$8YMp*^S%HFsFdBdjp&$^Nb3~VHV^YeUe2O+RUyxiozK>jMRZVh}3gF}x>L?9QO zre~t}P=T@14MX4%bw%6IN#X|OgK>!nq<1|wiKXE&Gd0;TLDA9L5Umu9ZQ5a7VbSlF z`Cp%SBq?~62=yhN%rj||4hZOXYw1k5!_}pE*cM%3-5P~q^6On-*0v)zPAMreWJKPQ zZs0UVD>7HU=zn(u>rt46@E zA|-Sj=2^1H^m#Ve|J7y69YB=t1_4kUyEOnzGjZ5_`eOiM_-Y!TvN;i}ZJF?C;*QJc zMj5mXjYxduhi4+W0E-(&`x{!rLRhKy;o~Qekq9Jq1^>zE^HNVT8dvsswiy5Y^BCdh zO{W0pMe!fHM=B!g`tZ-5$i+`L3Ms|F{MmG3CglG`uYUdE*%3w2lz1UGbB=#;kyn^O z?OS0*JvaXTQmB-C=Bd+mAU(lE|_U!c@r7q_j4wg}OO$HPYNW6X{x(U)>V2itHRDjf%gkm<&O zCU90#koKbNG5`w8HT99f@qWIeOE^@3no}M@(T;zg+=b(#k6ASQlSFBa-#ttgOsi6_ z;PGvWQYh}E`)!R_CLK4@NjtvOv)Y{3wetK5;L%9vKOiD>9v<;gCg%YF91WtJ{l{lH zIUR^-^wGbAnZo&(3BZW@kF~)}Sj0qaM{)_M;hoAsq`15rL0j?8mrQICJjEWQtUHx)ay<8ul}+l<>OA`eA&TrS7OpfsScCXs z>0~fCYTba0dq_x(&BzJ?_A4%>+ck8H5}X55WP$NSK?*7zHsQRe;Z7nOl7m1uTbBIm zz^y5ygY8j6Q;kA+aLDZxCoZIEDs%(7Vc8fE0N578=c4Mw{4RK$EZ`zn6oHp-oHSqJ zK;8*ABnMrokSI+|G;b9G24m-wFnucEU`o$|g1&)w*a)9V`bQNpQ@|kpW*qqp=Wd5% z{%;D*&tw+k_FQM&RO&`{qn5DR1(s5;S}(>RMUUgfKasqPnt}dih9{dG-hfI>WlN1# zkO-i|>RCG6fM($RhpJG7JAsOvXq@7>SzJ`z$Bdu9$x5mSKl#r}F>oGRJjxA=%d`hI zYy=yXY;nn(PTrfX9N3vU@xy9icc8mV7Ga!Y!zF{&-~I|-Q9#VfbD;6+wfl5OP(n(^ z)oFReFigiQ9BJUCjC$^JRtuWagF1sur&?)I3A(8+dkpzl}#ABRcxgz^&q7` zAZCYg+{`i1!&GE_?Kyr6~JN<&<~w6FrDOz9k)&9Z{bx%)rw2Yy@n z260Lk>iz?8V#i?QQpw|I`a&2g4j1Rbm`+EFgUsUZoCc~2F~;>m)`_Q4S`o>y^T_Xgc9k@ z^>;Mmve$$35j4zb7-G*dn*Pdt&~i@&5UI*$Gm{$tfDdQMyxv0qfYm5+M#$&TuyE)I zlVnQIw)Xh29KkwH(oBA;i~2PBe$Na;AD@w}LG`tpLx;Y;AxeispZ5`GEAs#qM1I{d zN2QXqGsBcgHReU@C5hvMY2_NuL7qp|zF-7X(kmG)iZ*=9v)=kvk2C{+O_9HdMwj0{ zNg*afw-AL#L$FA2p;48{@uIS5jF%KXyC7_|k4L_A9eW_;8?G})z8q_Ga5=3A^38zr zNu^nP9~DxC`B7aY_2Ho$-ykpp zF7M@rd6J0_Xf=*K`0(XQ1E;fJ-0Ky_bAeuG(*h%%{V}5xSw7m52F6zJ-_E(Qo72Qk zY3^Ibt9ZF^J`qo#>F_6nr{A&r!`8(IqV&q1R#GNv|#QA7n|s+C*u8ZJNP zBol`w=Z_Tw=6*P(Uqv!a6U+Xjjlk&3v=)md+ho1B&=C|iMps|~@kV@0h9kv?1)~Nq z+3wU0@KJBAk*AQ|DDUvRhWXzw*|~$B_Hv0?gGPUR1R>3^%>pX^N#m0~NJO?EFCQ&% zY7LNbmT(6`WAr{pNJ7^;V{-IFFTXDCcAS=hs3S_(!jX$|^m8G0>-QsAC_YmU+vE$3 z5JT`VGXcDf(kr06kjMyDfFjBaW;z25vGCr!{?L#;n-n9M0S>T{U0!uoM8K8oCGpF3 zq9$Okxx5&dLhuuY3yAqDyTe%KfvI46ZbL@R4^PC_H$*q}M|AynHN|;gb<>z%v+jkwJGMpr&uj{$N;brDdJ7>ms zBXY3I4k3o*fAZm2{#AdFjX$( z@R%()QI&p;;4Tvr3%+U24tK&G`=E4YJS~~R;yjO|8hAGx`sk`*+5<2SSos{H1g=fL zLFgZ07|YfYm1jazdmviy&qhhz08IU>* z@y<_IWhPvSGv5&Qu@@_r!z@r;7P`mECHg0Z&GoPtQ}O~aKm+1)?a!iV`_y=OObG(+ z<{c$P_IZ@!>+fUENl?YT1 z`h%Em?ok*fk+prh1fYjeR=38T|6H%%Q1scpsB6c<73meuZJ@0NJVj$O{Ag-(JzQS-Iw-vo)M!RNrRIl8NZAT z{W8~HTF6CZoaWGC|cW5Eq8(2$_V{~t?-djwm!R}o4)QC>@t`Hcx zqJ)A&NV-xQCS(a>cUbB2g7|N91zP)?OB_eJ9xBe18Z`s!9jU+qhGFHr>CuU3L?jkl z?306KN3IpmzcQ)!A(hL#n!ku`aq`ra)={vRjIfn7zBJ7E2Rx^Z%fdRU0~3O1Isq6# zab98~xSFnPK|8kT%4e6N3=WaY70BD_8|6M^OWf36A~=^h#A2+7T%l2ZKIdvBy1~)| zUNR%ubfFJVFi53}pVCi5`u3yU+M%s&q(BnNUwEYbe3Z&~`%Y}U^x3!)zu{)Gh|Uyx zatzzO61uq1Ps9~_N!|ia`*SO#G>x&t-&tkh_GiIo$O1AuxaH^R+06F03!m!SEgwq7 zF4NrgYXV&*XHoFG`gX=fe_0oZH$;Ts-k2!wk@q)8jV+r)L}2X1{5*-~*YrP@I%w$~ zarN_fk@{Ij?gZ}*qF*QdiuwR5)XHb8z_`jOd|(51e(jah+$%yD3}+)0un1SvEl@)s zQ0g`1P8(g+q&_)WQw;1E1oVr=Wz!#lC=|7jO(nF}Nsdil5Lmfc z^+A1jw`5T6?{QMg3$E%fW&V}0D3$P3(%?M!AC{x(hDAvKV1+9+sJ$#TUzM#rxr-LK z`akW4)HriPGsS0*DRf0%PQfE?!xoG^0Tbq48TkI<`GuH|_ptKgh`a5Do?nrPhK?74 zE14QW8q+QvAE^{1;=caR@fL`g96hX&EZw!lDT0o|5psU6+KePSy~b_n%6yar59vRS z9<9z74Ll(pd<6!gom=om2|-4m9Sd+UcEL&)*ddqNzxoiyO0{0$L zA-#=RL5~M0vNFH^_Tg=wXa5(#y-W35q)-dIb%>kJC^x;NT5bAyz5_Dg`+u1)FEW)s zMgn**R3ds69_ejQk5`^f^38^~l+)73!d!9Dd~xr5sUFWfERIWN3=(PExVGJ`YxA_? z1Sj}|6SP`vCw=R1J2s*mZyT91k(-kUBsTfzgHLa1AQZ(jKf=Zl- zlu2Q{MH|(E@UOCdn4oERR=ySy>00>G=l{nz%Doke=AZLYVtq+w5r{(Y&-+-`U+b-d zzLePw`LE3KISn#NsBPR_PVsncD&fWw20m=nyJo(Tx5rgbXehxDB^W}*^!LZWCA^_m z)LP0E)E7#N?o4NQZdGi*G5e5f=;zOBmn+lW+oco{OM-!qi^<4K)?hKX-6o@Jxf3QC z=RozUiMmn~+0GD~m@W_%Des@ajgu4MPc(@BdX6(v$45#nC)`evI-__{afs5TiI&iI z?GYA=uZrTOY1FX;@gv)p=&8CY6;n?Bz!6|9nCs(R?F~^&#=Bk=d5A!Ad!~+{kDO8l z#Ic6K!?#ZsL_-NU@kO}sIm0!1Lg8YXX*t=+m`C{(Cn)q9p?L0?*TiKyMVv89pyQM% zFZi*;q)Fdv#lD|O(5)v0=)EN`1_=>e=0jjzPDD46i%sc8vL7?Y{#-u0*O_-YP*?Gy zNU9I?!{r97CJ10Yw}aODB3TbKYCtEYz0vQ}Ny6_<$h+fE4O@j-YMAgh**@?x36R26$A&@AZ z1xUsPE>})V4M!zYE;9V@R4{Le^N2M(hFPUd4I()@-fF)Nc!r!211o(!i!{zLToujh zweaCduSpzWL(_oaCechb3KY@G&KMVJ8*M6(mgp)+$@!7$`&>0f5>PM@8^KjZJ-|O# zCx4VMcOIn$rYwQ7`<)ss@P@@F6y2S@cy$4L?x}dh?!M_$DehF_9Q_8!oNJSLq4kSn zJ13G6Ajtok)tvoQ`^3#elp#4SK8i)Ih(FfvaEs>wi+FOe1RvKT(7a-~w&Va5YjAP= zfo^%68YGVVv-igTu52LYBdWAe2HA>-l}Y67AS>Y2uus)pT`rz#5|`|kAh zgTi!IHHJ1Za#dUYfdcihKzO#kMNsBF>O#p67NFl))KTD%MzN+okfeY-{w5%c6+HJU zC8P1|e_dn8`Li0s>_CJn%Ve<7-oPlUno`+vX`+mFu~p(3|L}N5;TmsS%{kOwN04py z;CX}&DfBQaTBTi@%SGoJ?7exXoQ2wo=F7nu!wj8||5=Pqn!Aqw#*e ze==V{^_Z0WuRsDZjp-}sc&Mjdsknbj2<-FX^)6$|j}f@#5^7I@B!^$n#=2l=IxcHs zjwZ~&gT0h7l5-D1(!i3&kXOAtWQYQIlT?G4?yag{(J|Z%u@({zJ7&rf94{>okLN3z z2e5$78+ObS){HG9YO!kciX3(ral>%n5dK8upNXi^x2qJWP!GIFN=OrU;<3$)2$urk zafT66qwv7Ag3WI;(($yYF-=l6^k-%ET|M}KS93&tG+M}m>xp@8i-QE2yp=*55vjvqZV*%V6 zDaMR8$JmP4{upbmLLfeH z$uQRVKKnHhhP?d!lC4&^1I=>_eZz6ZpVC>p%5h%7C(iTFDYgMUSNl zQJ+3%ual`^*>jT}NRD^byIM*837?SA>K6+RIZc29&~)Ay?&!*QnFs<5N+uVWOJFaNIZwNUm?9F1V4$Pul z0s6=1?>#DtTLj^rC3GF3tP0z1SGHlG+pU-t)Z`(Y0%D>~(CO#4dZyP3Jwmpd84ZZ@ z1f(&rDQy09GSCTN#8V@9cH#-R2Z0t}XFmGgJTrozFJ6YS0}m?sKA?77p`2d9gp0%S zgxmy^_`$?JKWTu%3ml#)aQ5l< zIUa#Yq|_7T#y$PF-Dd~LPgfS?e2?q}clv4r77~9x(TVdOMd*AAqJ5HR$z1RS^E`i1 z;PY|g73id&z9~OcO_H}!eZ^XOX9O%D>WSqUdVRE3wd^}4B)`sgzucu=Jm5!q8+>b! zax+o+9~1R8a^;SGV-=`=dY85*%pzj7S14bcP>JlKk>Zd-4hNio7+4=}fQVQWQEyW! zhGJ+Nrx5Xa#^gf~VDK?_6^0xD$1qMVm_Di4@1EREP9n|aRDi=7@p-u?2+A#rk@7$= z8IA)4%3(?bqNMQJ>7wlqt^;5Kv04KeO@ee7{jsIYP>omhuBy~d)Y=Pat5`v>u~bB0I5&@E%igQFZTpF!!kY5q^Hn)SD0ynE|f7uh`7NPB<7udQh`BGlzu2l z-4eN9w7Z~kym4H~{TM2XU55+`g-QyPGiOJ1(kNMxLP-D!iw-L|EJvbvsvi+j(#tAh$ zR2XN^MGG*<6Z@J4HEMhzX@zH`-?KZq_c#*N7rK2B-?%lYUp-TQ&8(?z<@67p{+0pO z^d=%5Wo)Q-mfu2EwMk}k1ywGAgPRjb(a6nwA%Jr@FycKNp?n+5?4xq85j@Xm_=;atTHX-VJ&^ z{;msT&fXzjQJe7CSqrGU&h#v#Y+HMpA@!6WCD`q$y(fBg{Z-(hK>e;l=pZXIz0V{6 z;Y-$V>v0Ao072*k70`~#RI+{C7yRPyl1a>Hp-Q7|HRnfM;cP;W@TIXll7O_~<#6WR zsfkm2Fs-7(Oq3eDh2wAZj0;;TzU%6fKm4s}alsNguz4#)ia`yx(8}=s1~5A;AE?Rt zd(12rzr(%*vXG%|b|K~B*6c__Z*&++A|AbYo!g=+*vj7sTDgL@u6SE4Rna1~CNi1Q zVfg*PBb97rm{j(UE8zgZ2*oG*mul}LnY)<2w|YM`pWnlkIS zLA0|cT}u3?=p)S3_8tAj$LI@ZOGVf!`RpJ3a?XDIbIX!I&Q+H6X1iALO2184{kJ_$ zD*WN<-aox<93xz{_V5UUb!V9qA!ZaWW)md~&u8zHL7gYJ-CBn9SyEn;USzjI-_EqZ zLQ3Y(1AIW3U7A_L0r|J=Eo5Jm z0oH@Zh#MHNN@LzN`Mq5$9SgnX&0X>dCvd1Xy9fptX@I|juf;UbEN-yU;G*JTClSGn zb$s*k3TAM8L=i{r>gKOfyP_YMyv_va87Ec00brM_73aDq)3{39oeGU)=Xx5)w&!k_ z$~(L9C@2betYEb3xk>enah>xJRrdeGs+%kfd`3spoi5VHjKu-a#BFr%go%T7;3kF% zLzh38dhb7M-WM?(d!jyQnEGKfQ2rn-GI#7zy0K&L6E=5t3h)*rHrzy3HOuFWE}y4H zXWx5DI+jJZsE>GdF{b1acdjEU&&t$&RBF9Z8j9Arom@PKgxzii?Z)^bhr!|weM1V~ zgmPBA?Vk240saNM9ew=Ip9d_L$xv33S**U`L?E)mj@W3^Av?gYG7Vpws)g78v%X)PkS?=rh6z#Eq?7#KH<)nYutj9xRk}HYm*ngF3jjl5gN&}Q)T7tnzupg#X=y6mL z?TL_V@9J+AM7PY!Vx|bN6UJDxndtqJb}9xo9mteYgL>;Y`BUm;!*}<2aki>6#oa-R zkTW@{m0u$q8~Sm`WmE%51IJ?W-$9Zz1>V`>#i_J76ohS_$HjRquaAVT8)aca-7vL52z7@8|3x!;PpXfNUiU8%riWNEkz$ef!}80%GrMzPv|6GiGGkW8rY_ zCM8VBge@!#&{l0vxlz05ODPI2+Y|Sx>r{;!Moz^@soa{umZ&$@%DtcE2E2iFx@lsV z2%##dq~8@0y_B=b*M$j*5^`%Rl5O;;)hP2kvYu!Us=gHK2d|S(J%D!?jzMN)W~}~U zfo|b%W}U}=R7AprytZjf)h5pHSP!XIo=DbCsGz7T6&@QhEPExr zIV2y;;z*=Jd<8h4%ocb`$7QuxXPV1;`7+H?Wq4{ERjNFOxsfTOn{RVe1nueenIUq# z@_>^uu85nWDb+W(One?#He?m3d-}$8PW#EQsHc|6S1=X!XMp?h^oMixd!!mo#1~ev zL?nW-wYMg?vGNe3-dqsY@N?7(fmcZ07%0U7lX6N!9vMaR&v_*gh^qIV*ra-aymwTm zmId`yj>{9foxY#J_lTRH=oW_Z;qr3&;_1Qcj{d@0cGbW@7KHDFYcGXiV}_TMXwomn z5A#$R$bSzulLxQee@n*9)kok~^=|F45b7%?q*gqITg=d1s%qdKi;rWdVFpK80@*%0 zi;|kE5xHu~Ue~$_e{=@Z(}q8$7zSM`O40@gzEK>0W+ME0V3g^XPev#xmk03Kg&#-< z4`>4E1y<fv2TFIu_X!&4;x3Nd8!hksQ^0!H|`eAk9&|l$yIhu?1r$j=b&k+`Ly-KaSp8eMB`m57mwh& zTkACt3kLe2t~lACW}1%o?y*A_*-r5*q@AYr5}7XXmSd_b@U-G`e9o#GL?VTq;2N@Q^8dy8NCbGy3@HHC;bh39PG^)!1Tf$p0zieBAu-2F``=LM(So|izM?VO>UA(f5hp}w?>cgg=F?YC z`*i@P7|q2mL>C8W7TzUwyH2hk6a|l!Pb}&$WP2mTs8fWVa5E;Q%B{H0Cwjt&3@i*E zvj$IVLm(eV`3&>BGNIA+AlTCb;ieuMUP1s$n=snT?FV!ly4^Nw z2aMdF5z}N+&0`~dB8i+(f5&%nsL(yS7?1%wNZg=I!8N{9T%xVQnQ4P`6QvReFIjqn zkFr3De{fK2>c9mhmR=wp^@Z+9IqVL7+?F$E1f@T`}R)$-82boOsNG;rmOgzBok zSp*PFrGFNKd!|u}`{d1m-0gRk!=u+&#`g5@sY8Pg2buR%^}Nhpj$OABH4$UV!&vlK zi{6fn{bYiFP)~X}Yqb^vJi*`E(M z^vIw@rHb73qJNJDe%I2(1J0layK(~dDRdGgf7or-@IDuz*uws034nMQqe4$ zx^dSgg*BE%oh96JM>~YbXy!fw@dY&i1!j1lM)r ztdHsi0-Y80?Xy#pDnhU>+r5>aEm)dSmM-#$(|lH4iLi$>8Hr@0#Wy$K1)FLgn8IMh zZ^i!Zn(6P2m(1xI&{Q-QkStnGZ^Or3Ze3W{ZoB$m8V08MIIWOn)agUfi=S4}0dM zf<05$+jC46uIEk@LQ}Px901tkl^B+l%I*>1b^yD2r>^C%t~QSq7WDj6U5PjSpF^6PaI3*;hYjc zOX9ait87ggNR~4^*)mMLdb*AH~ZsB$|##w3at0L~(ilHip z4`7ydCZ7)E*P<<0FQC7R!o;CHRgKSG*y4ByKJUVmAAlw8( zA)yxuc;mPpfHSm&pm|SFI+knwo)kk1&i8%C%wCsGpCx2Y&E_bMR7mfi>IfdjYL$1S zS2x%02#d3-KFLhg!QINEKk}S4*hsaVh*GlstbDsZ0`XLQ@Mp3sLOWFj$QnI5BU*1~ zedok1OC^7=Rt`Q6ZswLl7euvm*%s1}a)-Pux8A}LX;;^OolV@Pq@=D@jy6KfWKA4pTykax#XY zHj{cr=hkMFG*J+KZzQp>zuEmeb-m<2jqpz1-fWgjzMBZabYy?$8doG=Y)xch*_MPY zP0}eH#8+Vg9?)b{O_*LSEVC}yL@dLw%or@@bU13m-lZt$k{O&;C~MahS3It3yL81_ z-gq789C)sVxG#(L;brER=c_Ph%*)HXONN)uxpk@7JK9ss@W--!q(7W<_6yjpcj*`H$=!Yb=hAr!hyKfB>1GMsaGcq-c5Bkd=z^?$B(M zWQ!8VQuaVaJ-OhqKX7%O?JGrP5IWxxFB;!uH~gyMpnXWBEDc>@V^6>^E~ZQU-24hQ&Bn3H&CI2 zCK9;CUjK{n(IX$Cu@ig@mm=eWAYl)TEZ3nX876R{GNcM-4D>FlLvPKJmVwEv@EXL{y=egpS&P?zgAkTP2K3%L1&$w-cj(Pvy4S9Ch9I#uD zn6Xa@EWzdM?(K#fojrzwg7Y$?t_@Jn!a2${fb-fl)EEn~n5H~ zthMBt(`V~4VLSqxkMM~?*@AL{D@pD0QWyT$`E{%mP>ix%*&6w1k?F*_qY3y^ica;s zY#6q2HwJ?Oac2sT$yltCMAc)v=fs;5CM~0`VZ;z7;}jtGbLF0ydE+ZL$(UPaP(CS^ z(%r8x$7Lzh`EVX10h%LFH3w?tadVlujDu^iFvodG>@kh z6`&z0yb2;gh}c|f)!U8rT3$(=?Tif;cCU;gO{puA(5}^(YBD^z%D{veVja;~h+#JG7Oso?=Px)~9VKlk8>j`^_GQng&B_*=x5EQC_HT3> zJ}%Mt5Sa1)G}nUzm4JIG6&4M7(?fB|_i?v~61+#)VaFz{*>=4v=n zPXvc<^Oq{*xVLTeS+BNG9)>xOlDyAGXc1hnh}5^X4Tkjw39AcP%dI_Hntu-aS;WwZ zvdcnZKv5OXY2yf?_oxZW0xF|hV3xsA4;uAF^HgreJCIlG^^H2SZ(zn;vExT_kGi|UZg3c zt(PT3C6&{=?>wBuSvHGXEuMz(b?q~rl5KHO-+k`^V8K%6m18**wAtBa5=0V$T8qRt zOWNN8wDw2Vq$LU0sFo<>4J>`k5OTIH+)@>JX|Xrv12+*7e!D1 zZZxwhM9fPrPsdQl46^rrF?Wk$d5cRf=Dgh0&OK$o+L0HLG+*twq5v~M%)dg^n5eMT zJ~ba&NpX%z+i(} zfNt8Wnyln_u99Q5+~8EsOB)gQtSHV>ZN>%tCv25Q%Op!k@$M`4_2MyGW~S0yyQ==& z8B`9R`mQo$cdw6;z`CKz_#VGXc)E*aGBWHINbvUfFCUF*_RRF zGZGVm(AdOqE7WGp2I7bGO0T;W*a1suSW5~>ZN^yugqz~_Q-1z#jznt7-`g!(`YCyp zvf$SLy-g_-4IKy0L`J!dTG;Ef6T+d54iZy{)r#}741}rPWs`Q4iWH7R>WN9M-5_7p zYYYUjO6%4lWTFjJoDOj&5y)e|G@;vEIYyvFDKVW#LOeuh?yt#&8qVXj8OnX_RE9y^ zA^{5hrpi}x3z(|_T8s$sue=?t8FWiHvVgjP#K+*RP#2gNQmPqY!(>^fdQ>!sa)lITZY zi{g@++1ZV0^QMpgEzfrTpm0~^QW#O4I#=^;dybu)87Ia-eFFK(vAyu%O}{fnFuCDE zLw8iAPz;-IU)h27n!&0`#tJQhMN>hd2-;|B0YgmIRgLm}sg<ah#jOd=*hZMKE&^NVLNw$XC0Jdej@jPCx2n_g1>u7LZvUmB)t_> zWP!fZa4Q34eaS(82=?$zUQb+py6tFT+T_1LP(0;d+ zKSZIo;f1xg+DbA&hE67v=0lzF;{~0HjH^Wu+umXQ!`c|lM0C^6-_ z=IwdZ2ENQ{*Eg;goqo^^JUU7ooQFw>f#)5xcNK6an6>N;b4}_YMHj(XQb}amZo0#{ zkl3yljaPQ9u%1PC1(JeS`?L$tU|r>iOLeTd=abJQUV*jqNrZAJc$gOHHf9kNkc60V zs%Se%hfUXqfaO`F(Z1eZ#oNPQ73}BL&Aw+^P75pAch6Q{gW0@R(A$b=kla25R$u5m z&aH!j83z*?8*&l*_c;0d>wf&g%S67TdeBpLHwIk4{@g-|TfI#XKm$6B@QpLLZ5YATI(HhWGb5`hSkqLll?X(^-xquDSHFP?53a*FV zgFQuv|6K`Y11rz=T62pimE`8BO2nPCcBQ;jMPzY8y;6rVH)3S#iQa0__H%DCZuEDa zKv)&c{Utw!;^=^Puzi2PT5<3b_vj0I!;{5vZ}uYQmgqd5FFx`(5#MU_wyVuNB#&ab zk9EizpHLg~I@IUV&F)1~x5Z)c$-U2E1wzIgdf~@J(l(!(fP03C$363x6N`ID-c%G$ zKp_XptKJjcKB6uu2Tsk1AHXPYJhbH#@JKd!Ze&7r@+khIlRx^ld|oI*y|uP){JCs? z9xdjbAbkGRG0|~FB}%psV?P zSCK1)wzZ#@yE`?Q69S3hZ^GLQMM;F2Y>#F9N?!ok-8IilcRxbek*tjmksc$+Kv8xBWLn_z<-`(S*Wjac^QRDj*}VHl^Q<**-v7lExrNxqh{(f~=q_ z$dWn8or1Wt>Kn_?bQ%1{L!HFbiGbIrq>Rd8X5WU173A}YVId2nh9j|}aNF7Sh2oYY z&VqIN5vQ=JB4XeOpM!URXG!oF69}A;j>{%WB^&uGc7&s~6{NdQ2Vv@k$9d+!C5A+J zKWc~oKh=}@dxrDeOU8F|#vhv6=Y&RqgB|{YYwuRrf#pv6an`oik^Ba~156Q74x9qY z(VIhR_0(S~-Plw%_?@4fWGULvwH%Z|+YE0&cC+94T9#{cXT&12A&)4VZ!l7HYI~Qi z9Vw&5=n8FV;AYaEPoy*QTak*Bbspk^FTpNfX6~PMPgz7FyCV1khSGWrX%17yEM9*a z3ZgWcKL0)*9=?G1=|2k&@rE1(WVGNVumzgWFbZ60f|90hI>upUoa=$^)pmWdK|LkE zqFyu9);{>81DJ4W{W~Q%*Gpv8jQ*s(+fC434Q3ZXwGw8(L*m7?$m`qVwLgJx>8Q+vOAUxaeXS5>n87ZYiV-8 z4<^-`>Ug&2-=;rM7y4ud=;o6rJZ=78pD zPa@Uqthvyx6+PFRE7$4bGeSph~64;#$k+UZMnQ}Zt#!UK4NZ%~%%B1i~b z5LpCY&QcP97~#aeE;}h7JZ@Zp=-^udXNN}rUc3Cu9ka!;z8#AWh$ODIoK&+J+ZIns zavW(UA&@agEM-9yDgawq4_l6dil3-`{5XlwXNI(nZE zb$j$dX#;D@+EkQ&3$~=&bo--}k9*f`D}yp3id+5(xTa+A2u3xN{ec+D&r%U-YW7=a zX@L(d6`_i(TzeycU!e5}sMKC^l(uoLsHYzm=XU+D0%lj(F9TYOiS=Y{8&w%$@w#*Y z9@vH~UZxW3U)bw;CS@ws?*;z#6m3TngvYA)oW`EzIDPVY?A!o7@Ks~kO@T6Jz-G%u zd03)Hn31=5GYejKM!htJW?$|}f=VKyM0aNoXE8Jc<~nW6wmm~gvxYy?iZ)VLR#OxX z^`;{robZI*f`zn;)wZ4D&-W2@jmsu^6k`tPbj|GzFCb$Df3`kJi>+~$frcrEBKLND zOfRE~a^;+zNvZP4X0lAIRDV^$UgsZ~BCmsW+kD9L1b3ipt=K7Df4k#-=2Q@PU z9MM4TPp>S(3`s$eK;3A$;b4~bjyLoWml5;U+=HgG%13ui65EtC>|^kXFay!yiL0&u z%SHu`*+HIyNR0by1(i@eAx*Y0CKUI2HdM0E*rxYHo8b+3whPdOH1{30S{DSUU`i_C zTXH-!)8WgrbDMOb^U4uytHVJ_)OMe>|3h3HbxQW%ZZ_#H zD8+Ea8aKOFSP{YZg|azQelMeeY^g$TpI&y^Zr#nO^WU|n=<0tDg)(kR^F z2?=8qd0L=)70_3(_w^Q%;iq zyiFil9(yVuKWgCWN&b%b0R|B&J-P$}lFDANyCCpAAA!;U#3eUel?FHZ>O>sC=ThJmB#h};J%Nk#E+0; zZUoa1wqYa;S({? zPUq=rGZ@+eD40q0h*-PxJcnb4h^*!li;;;UARDwzenIV=F-Dne`#bT=Ar7L)is)5|IY&A9$L%+rTg=s?D^^DLG#etbWbz{kxPuP6xMHLH57{T2S!E_(83(O1 zC4F$aC}2aP)v^7W|De&jL21x)np~hff)TI{#Xj#NE#5O>$)Xq@_a}Q)8Lnw!&~+M%Ke-DcO7^z*97BaMVpmJ z`dg#SQ+YQXA+%KW%v#F1No_9M+F@SWp^=Q>IF;BcjLtREyU=^E$CzOpaX%yumoal! zE)A9{KqIBS2Fi}x610SJP0mxUj!EsoI=py^)E%#mo(P60ED_dT51a-qqV(G68)gs4 z1ydCgyl)GGAgHL|Bu9S};MKlj8Ct+7WS9XM~X3)te`MS{!o&p`? zQwg4X6T%*dje>r(RM#1KJ9%US5g*MXzjczv1>#~*_9gGpVy&~{A8f_7wq+;b0al-1 z71(xC2!*$o3n0;&=NDD7c~tEJs2n+hf^+=y=GjgBYlk%DnCy~7aN3GF&za`&ju1ai z8EGvjTVo%P#ndI5btik4EN(i@i8}y_kh_$qemwAkkSxFN;f|m{g|w9(Sd2#k?Kh)D zo8!-+1QD2cTIp~dRlIFU%;5Z|3;F}3B9i&W~zT5lXMIKhfBcNQhjvLBH0giE+nTn#ALXMR}& zc3eB)qVRbyJ#8URTs?|Q|K2>kqj18_ynUx>bSKSi2mXSFrwA|iE|B&}4r=e{bEyNK(&@=br+oe&Xz zw^=!olo~@6?Z^mru1*it>2CPA{~DWD(i>}F&|vvmHg2nP$5-LSw|q3+7MwN)?R7Yp ze`7-7nR#vl+EzmC$|Xu~Cqj!E^8?-~4WB24$it28LSZFGH2 zN--s>`@IG$I4Z1OP_@C;NF%w+n{-sE-l_=15cx%^*Ehj}+{BjJmG<<@LLXQ3)a_<5 zkBDM=Dj~ktW`M6r5e&ed<`EAnjHqasW|oySrTl@Hp2w#yqL=9E^rRpvB}GmPP1*5PxT^C*R<<#ce3#+2$x zrr|zTyB4rTQV^uKzv9B<;;#WPp=!TYz8^8oq3b5Rr2-dc*bnoMSTGV88p039dY#rL z*4A51xd2Vod|An>N~qomS(91%$xUEfFfnuTxi`NJzo>-#R>z)#QWd3{+YodegC5D_0!1HbHx zVa9J1j@g$0q6zky?W9)4e@sw$vU8nwJI|X;+GSvPQps}`czXv4wd5rQB?WZ^E2KRB z@{@{_++$sN7VYEue`+_w%}#S|zE~6OvQP{4DxQpLPB4AO1-Dy$;bg$I>zYvXxHRH` zz1I=zNjhQ22vrV*W-KY*>A;pGki=hS83S8 zL?GoG-Or0`;$XN(F>Sd-rcdmDG=)=b;%HNEtk7O*Pd*pjV|YLHUy^4Bj~_u26_~g<3$0Is4r4djGVo{)A5ATYEaB z#~}D>Y#HzxzFFwk3Ktfw)XQZ`4{{?ZWmNtahsXm_qbdNcKJG`W!W)BEFrAv)^Ok81 z-Z^ms|L>$^L=*)G@qBo(OlvH#LfN6Yy=766Q7u4JC4R<(`Zpmvt>_l|LeZoYTvj~> znZ!;}ab@{&b`2rn2*>&UEqF*-_M?HgTbxMt=74JY7s9{u?_DHX8zf%+n^I#;FQZ(Vrr|kgo(vb9uubtV#2~ait(2f#TTS*@=Ro6j;z-9Oy0DX6%HS= zV>?Be*w%*1$kE`e7jeFd9~^&o#oIM{U;|O@20o#%L~qgl!fsu3BxOFM2u)+#P3F}5ri=m(@b_@@Byr2W;VF<8 zl1u~SULbKoqi`2^LMd0}e}P{m+-xl=z>lY3Bd#nft^-%QGyR{5EYZYUiRfH8yzwnA zWMEPfGsiG3YK=sfTqI<%651Nio=%Z^JLFCW;N+VPM%oz>TxG= zMG`@9zFCHk-zJ|MrNiQ&$wPQKz+ez@hJl<6^}H!uUJYG+Zu0z9Z|QDy==MvJU=eXu z#6<%n3)v_h8e_&%7;M?=`qGb?lVgcU1bVU-v`f^N9>una<3rkFJU~p^uqs7! zaZy@~2`<|FIf9qsNS;xxp#tN@AtBF&640>*yKs5_I6+Dfx+n0kc(3OLxe4#YPCABvT-U?eH^@=>5IM=J{T$6${4? z+kR;!b0_S>-7vVPbmx`vgYFr_7mIT{@EXR)Gnu=i|<_tat|%3!P0k;yPYh{ z_WVc6?f4d5Brfel3kGqg0IQb{uhM=CQfqMyZ;txs_69s#Sz}JNK?*p=k3B&;##2Z+pm;r-^Ty| zKD+b&K0g3}_fb8NiZimUZQ;mEm32jq$kY6S^9_}}{)T24L#fp_F9)x?v%0Cof-PUC zSor@u8BEmA*Zhhr9R()9-P?IREExV#iz55L8Q*6s_ut1;N*9&=@1s|mo z9ks=eS;Tx!+6O}-kzyUS{o&+;5yt65=v&F|Hy*nY!tE*%(ec-KOOA>}T6=~@Mkv(P3gE5};!F_rr(e7h!@;w=wlcUW{@4=)gk z1JqS#X0!($r<}%o=xRR)o!rBccB&*-jB%a6$t)(r!Ll$ouDjLZ4(~ z!AUF>W!I`Fk3x4Q1kCB?YmQoP@`DBik^Y}dps{A!p?|0pgbq}U8XoVm89*E1 z$>F5P$!a9LmBa4U-XiyX);fJ$P)O^6*t${&=qf$5kflTZZk1ftE&CQx@7%BB4!?pQ zm+8cuqJ>}FsI?$hSDx)eiECPm_KR|b2CE2_oJvv-!P5^dA#v7Fm7ooal1TOW)s6_a zEn=5JP&ulqeN%G(_gmRjLB+jP<;?u(S{GiyOXZy5NEXJt8jfG^ZC4U?DnsnaUDWBB zIuBHdgyUH^m2^gkid~GRawx$ht!-=%4NKTtV})hgKw6JquNBD0)1&^wlI9~O_)K(+ z)#2Q7G6QXqa+avSY_k>K4zl1{o2`e82I0D5n2KUbw4=IGmvAD^L(UQ!Ol5u3L)3O;j z?fYk)qrB}z9xleng*@^h$P=*uj0e~zxl(mx!HZA>1Pgk3XrPEDtAWte*^Vbe%IB;E z@ovl2Y z^2K{bQCJ2Gl0u<`p%wDY>5&QJF+*0~N`hT1@+IM8fI%hQm7=-nuRSSESl+%L-)kRS2>S)!Y|&Tu4KHOF0`3o znIa}`OqOA-Jtnr2fjS6zGMZ`dA*^_vk$ z>5QhGP+Jpr(?YIFbK=#6bU7mD?@30lJW~ zm6o@M|BwKF;(=@*o%V=4BXEEu;5FAXwzag80~HxQ0j=qXgHkSoR3*rj#0%{Qn}8I3 zKnlNIj^kDC%F$-D?6G|wsOk(&ac$CdS)J~6W#_SEPWVC|POsgyxyjh@&r0JMnrLTu z&6GkqcvK|?UO#n8l5eq9S|g=xPnf`Tzr3tsB8#{ssyy2f!@S|Ou<|#_ys;tw5lO6@9aS$?1mGpXcbKMP~eiehdwx+Pa)kyO*#sqJY))k%hJn0xu0p>gk_m(5i&X zr{g=0E^Yshruua#kG~Sf3W1P4_a+Z4M6p``|9IK_8nec^j zSGqId*SUS(x;WWae%jn?eGRgCZ&{l$H19(cG(%nj2hCs zSh&=6{8#yHK}m#l5MV9Ki$}TZGztuP#=RM0!LnWFG8r!v;K9Zlq^ONgGK%%1Iw#gb z07_4uq1)0cmsg|M*77GSP3Zh;bleuEN(QyAh)PcO+<6_NCJUIKPR&5=nYm=%PbhH7 zE1qzimP8%>7-XbM8ve`^cdeLmf}shHkgoIK*CNMq=6C8PPHU*>9G$rWHM^orDmd7! zi@LcjxcLq|t7BJrQC5^YEsMGBL_MBZo@YVPBV+f)lI*Ff$F62A{9hurIR67j70cz5 zXtVu$PU$s&i~ejjeY;rFxxonDt_ZtpFx@_+u1fPFbh!!ucX;$AIIKi5T~l@6&V@wH z+=7z}%{0%H((WFH%LU4<*>dW<=2=i=&@~mZh#Ll$gNHlcK_AH178XCm3l(UNsaeRY&n79i5mf}X5B@(dfkpW zN{$V(=s^vsC3xa+te~cZz-#cF2~AVcMm^>#fAd2TdX@aFJh#XMfi|#>7A;%1P7Q?q zpg(U_`T?YY4iy1yy!VLWFrc4KDFex zn+QvGnL7Nxj<~z9I}&hiUmRbvfPG&8nzdPKS7WkVAcczyqfH>{uqZ-T%?b(RNjiT$ zDbrIRbA)Og`{>i6uIgsHYrPIqZr&-`dq!pk>|@or?4uLYRN}Yu2G=6k>0pyVmDimE z9Dz^KK&-_^=6#fW0#OWrh%ToAPCb%>$+M$d7$DZqhQ$9`*6lbG7_maLyXp-m!{5rj z(3RpQswR$c>gpw2+*U=90it)=(SGy0O}|T^j_@3u$Hol{E6|wX{dbjO=i0Kj715SQ zo&mxZaPb+MuVqq`bFN0Qp+Ry5PzucYzcApr9uX|rPC46&RT*WvQ|QuLovBy6+AF?5 zu-B)pzNl$GZy6MPNgz!52wY5zlIP^=iRhru1hHe=A+r&A=8P=Q!k{Tc=IYa-b+eN? zpB*7@PodEUa8yAe{5g=B7Jb+!KeXJg2wH*g3O)ZrNkjkBbIm)^ zM=~36O`~kN;C|Qqv>Tj5%Wxi{IElzYEfQ|PUE)Ddzvb>SmAGCha8SCK<=8(ZbU93k zVju2G;!VCFamSm=^({ZWMX7P)N-7x@4s_+r*otzZfBKA~jmOh+$2YSeZmF z&glU3d4-m9@i_6~Gwlm9M5%__OOwkZ#DbdDZ-g8{plt>R1zKtjk`v`49Cs(LM$l_- z2hSb8RrWoLD0FA;zJ-tFJHGp#{_E_%cRq`Kn|D4SI>6jrV~1KiQgF!be~o+e?G&eI zaxtDe0Q;uJz&sF@+fHc*%^)*^!*Nvihh%+fY_ADCTlj@6#H&v+6p0*EL86d#hn81w zIEl#f2xTF+Cp`tYdk(ZAF=p*?&G66*P~_3IVY%M}+Q~R7OKV1M+?nQwIsG2v*x;=a z%hF1^sK;2)QSDTZZA&5Vz=lR>QEgj8=fVaMnc_Q9hk=`A20`Jz@FfSaDgTE z(nSa=5jentini7onKRN3`I~C(9NC|+1M7E>9ERbbB8`$fVExEbcT^dG4zDMTu>F+c zI2^vvIF=`5@O8lbb!yVoFDiAXnSk>Pi6mi+HlH_nqVFbN(_+v0N};O5&5 z96*4H$h=3N1J{jWLor+tLYGh&J$4OS?z@d^Ph+v3D+k9vPlW?78Z-;fvmv0%pvhhH zs}%UqcYTiFqu8Cv7QncE;wbphXiQE>R_@zBhDZpQt+c`IN_#i|#ivdvHPkI27Az;= zwuS=UpqYBo(h(FIN^bpvRLrRSs7(F_IA8chlhwJ{6JjdaO4KH_F~Aa9J}5DYiaiS? z+SlH{N71TD`*Ou+h*(gcr)t($Iv-{&TtkA~li?^`Sam=o4Se*)un`0;E^0R9_#`b2 zBsM_{q8iv7_qC}K`mgBf6(CMjao5ENslX5M002?66gI3^3z04N^okEBhjvhxE{<+I zK2Vjugqwu=Z7LP&riAA6)FnVQaW7STI5l`q7RVUlT#x(7-%6mVMzbc4B;tK4v-J*l zUmbYmlQEh%rXq#h&Pa$fy!=|9Df6b}Am$RHC5galaNDNp^)^c5%Q;RMUh}ltwetJf z=>pRXMsXcT-WHESa>AGzE7%F8Uqr7!XqUz<+mlO*yF>#q@sL*$ z%Q74iJ~6VExyGp^U{+OmB9MBf;+FCjvf3;CSw1&n%X6<3c=ToW?(H=DS@5@zXxH$? z-Ad0!C$B2Fe_J;!i9!AT*rZHWwVvjX+u$@eF2>VTNNf>n#A@kHSp>%w9{`UmvOM-d7E&1a6Pm;%#=}g)Zjz-LLn4(k zjGl?o<-ZMx21K`AmW-YxMm+{@Fvv{yZRIYU!KY$jY2X~-A5G+N5O&DWPLauD;P%Lmao} zx(OuyUYRw-g}?;BeY3Sx>UF}%w9|+e-OTh#qh;0(^+HO%D{g+lG~Sl$K+fkNf|XUO zs_(6LT+%3nJG*5n1yt{e`6t_ha*5DRbE8G~6FcLObQV5MUz@q9d8FCLe7-AGxp*lc zumdj^RpoL~2W1#a7jQjJ!1j-k1hSj*(`cJ;%HoY9&^2btC2;LN4Ez4Ww6mOM>P7Q7 z>W6Lc;V0&O45D$wm6mz-SKCm#@moylfSSVvLgW()121=gBy!zHQx zW?X_X%#H?oPg$;M9oMBdsh2ea+m)Xotr$@y88Itwf5`qG$KHhE5ab8?$)?M_TyEO! zt6UEiW*hffdn(K zYLH=JlPVCuuq!kiYL7WrUEs@HU%geJYABxqgoDmatDSqV&1_FKSj z_gZhmbOB)E{+RU38mxWv07Z|(k+gK`^ioq<>wup$El~LpRfuX=yYc#vTiQ~1SZmV) z_fOJ~IEd-V&;k(cu6j%lIB?E=y1V2Rx_%eHLe6YQy-0T`(rAZk-4nPXiMW~U1~qjIj{Jg=e71`i z_&T!`Z*u)7A&sxZWW^`{b*biRP=A1#0Bo5XyJu`Ng=K@YRk>ZEnf$~mcm zB83fD+`ac9%0qn9)jwEXts!+_TpGG-+l&B#W5>ooZN{82WS|-7QgGT}8c!~VTQRIS zMckw$XA9@%GA6v1kV&Jj&zp1Yp-RKOtvI0|LdGmd47g(3_g$NBPinduw0GKs>Zwwb zDdS25amUs)#>d;2Q-5kHJsCk^S}r@F1agKWT{j$_IZBeZ;)zuG?3x&usq%xI9Owt} z_fB$AZDS0bevuS%vL+?W^h_V>P*tj(pQ7X!pr3(dL&nIGGRV+zt !2XR}GNu!Bo zsJhz9yplZp-7Ln>ev)Q(CxGWaj3gS|>h6T($r z^I>S5Nof)dDFT%ipfSW(`d0>?E}H2qqC{?JFSEK;&GCL|YOjTT)>i!6PCB@OCkKha z+R#>YQ)>2gXW`!bsRC9#xMa8fuF5lRKT)?E+l>7{&(d?~&PXy!3~VW=Z8(i43uHd+ z0rH=n%Z|p63+^76`mbrNxgH5Zm41HwaRPd>zq%%Q%Zy{gTneCNS5f_yq=J%`z>AYY z5ti??D)eo~gaS^CD!~22(Y&>i*T{T~Os-bL@<QQ;C$X$07Tvx^4+ypr%HvRkD)}APKRy+|0Uw zuqKq9oP~p^IV2EpbW_)c3r$$Q#iio|S%Wm2YQ24Ghqd8Daq#JF`hKdzTCw&NW#Q5D z%4>2Ksx>3qO@+i6(CmaH!CPu-PV|ZRRUPY+#;1_8b4IIaQ}Oaw>hikwn7Q z8qVEopzPOQRj1x?o%nEOUa!Pa8jNI8H(adlR zeJj5e!Jve73D?_B{8UR=B{9q`T`x|jc+4Xdb)43$JBEpPbi=dV{Af`mej;ZPl%)V+ zzo*!SQG(^Q!u5iOmvxzscK$wz(g>Fe5t3OvCQviUtDBr6=bo1)%QXuqE-YD2CfKQs zcmlJJ8Qc>WvQYzMW@-{VV0C%k3l)**HHwLwSm7cDuqCM$`_755Nze1 zGz(iLIBN?&8qnIo&Pf{!z~eI>vsdg{q>Fe31@TnrJZgdy!nMuZHk<$mH%9 z%BV<5#vrlOfJ!hZq7`F&0vz zn*Q4VKoZKD6gL!#+|tzR!!>>KP{02g1k}+7uTqSK;1cKP0s$p*mco!L1 zX-!t_NFioT-%^gN?8er0b8l&yQ|)cJFw6*P$+ju8YYGmSFF4Py_)w;otMpiP=sv88 z$_u(ZWh!_SUPw$HZXf@RO+ zPsROs!DAph&`?Y#8M7-yTrW$~#1{!s*1kBC45@iOjV}F@hAw&0{w^p)nBd<=T47wX z%N!q1Vl7qvqWl8fbQ+a>9SZf%$;#<{&QqnH%45aIz1o5_LTUi_G3CjAb+x?81pCIf zl<2M0q+l_-T-oW>e=_DT&4k#PjbsZzpN+3KmTWjKcY$Jz=g;tkP9HumUcq@y!9;y* zTFiFyf!>Y5O1Q*!Rr=hapngo^h@R<84d~!2KdX@_9SppQ~lP3bfW=uagN3<(cUae<#@5PZT1IF@qI zn&5{RS0ZY9J`oIQcKypWNa|-EJ5S_Aad;`uf{fIk4X#^c-i~|Sb2e-mZKsnLClUoK z&8W2rjI2wg!T0|ux2av}giV5sl)mL6Rd@VZ7Z+0?uPL2w6vu)gKQHHR(JfZ@Flv&@gl6K=x}!>) z6!`13Ee4TD;KCeJIID$P5j@?v3cv4;XHNZu@by4jPNX4<%@NFoK+#Z{4O>8QT7sUVT zqk*n86JrMBs@me-F(wSAhW=3Q-a!!=o~}J--pfg9m_rk1zF=0wWNIjB4dYF)p3(t;GZDFDLS+9Bw(h18K`2aDp%@Y9@rRaylTYrV!N4^N!8 z78uCyQ*Rd>`!LGw|7O$Ak789+=)etJMEf1EHoKZ#5oBey`RR}8(g1Y)RdM6oN{g|K zXgPK12wjxdI9U*wQM&Eu zb`YiTm%lk)da2RH&wfE72~mCJ`z!+cS4r@-P_=j?4@#nUqgz!3o{;7+m~ScG;3o`Z z-7uUkH~-arC>cP!dZeM)aqz#^vosx^k0SV)isy=jA5fvtP(_3;?=p@!g1!@1vQ=Q6 z@>o_0pT7PUN~DZ={g*;NDw$7CELfhqnMJJ7GmL{lis5o#WsH;F5E#P}8j!rt(-J@y zqD}=Yw{weK#`fO=nGJrie0)1L;TK6Fwp==7YTnd40`4n{Ws)sLZ198ZTjSHI&|?w{ zspCMPPmW?2c$NkqRiA1bfJ?)@FvzgtIpBkpyyRtow)Q2_4+tkjM z%sxBAp?`q*&RyB1VQbq@V3<&s%@1U|;*6C#KB>3qrXoiQcD5%<72x<~&p;U?Vz(}P zq?WK>89|XugsRHupE!%sAD&-pS*y%j)G`s8c}IP1ZjQ25h{po2Z8M1jIjI$(aMCYx z7}XqpNL<1Me9pIJ6=*qRHPKS&3Y~H%baQ;urFrANsp|A30a2UDjNRsNJmQ?+)PBWA zufuB~R{J^QFh6PiXfr3|9-G^-H8;7fLNs-~5ky|KYXQA7GF4_)7m@`jLz8a8kvOKY z5RPDyB++Y9EqeV|fSJ%fx%S$X9N(Uz>$>OXbf6s}lrluvc$8;}0pvEFVn2Fayux^{ zjG~xFxs*Nll1Qt4*qHgkPdDrbqQ}GQm~9fnc4>U%Ca^H{hO*k_*CRr#8<4A$<%$;S z==bENpYfBCT)>%@S6`Is`tXZ?TPC}sX8|EYo0Nkc2=a|CO@a9NhuKP-)Pukh~8cGwa<4S`*-~=NY-=%Qi;~{nxH&hLIsTWsoEvB zYO(M*zDH(6&B5jj2tGFSNNr1hS;G@0@PX{x36Km{goshUo&~)G+%M%69<+P@D3bnL zQ&}B(ScsDI(Z8*Xr%b{X`yc;{jIE}Z4_4$t@RQ%#hn`SMBX0HP+h9^o(OTY9Sxpqn zwq2LROANI~5*Lw!&9~iMq35^RidA>94JDBan}9FIK7ML<9nkCVdVFG+c70t+*y*ib09`NUJO-RZ+Nk`oQ zswKVlCq<}|vfRn8ix*0n#_*KIJBK=?Rk~|npdEeOr;uKc@dXhSM)xRALA%mTtt4By zjSp6Pmd~9?Ap>XUrOhm^$ag!!+p;lj#_G=Ko&#Cp-z_~{=(UuDp=n~1Pr|WJ6KlGO zkFVMQ9h!~GUG7AVO;0zwjPg6?QBsHt#;fI*W}hb$>oG%)_#=wjRA15Hjb#s`yA;CN zd%e&~jUs!tHkZ4qz@XN#7|FzE#Ate=+Podc?i{m5+V)hpnQ`XE!+Uznlvgf|M4Mzf zq99MfRMf`U<8C^b#~>+RzmI?<;)Fzc*2RwnQx5FW)OoqMQYpW>Y$+^DGIgPRniH%1 zYxm~1$qC&RelaCL1suB3c9f}EgM0o8EIX( zboc}1iF3P6)fDC6QA;G<3J1sabGe!8MT*a_9lWQ!4L^jTBeNnsw)ZpHDT#^(vTT!o zHeeD^n#{(=n^dsUW#(Cja+uMy$b7O8@!fwpnDNFf)M zuU^CEp<7q$}^Yq%w;G>A^XDAA7wV>1S zlscSY3RC~otCv@iJ^eLxz-x05x9_8w>*B~X~YL$+wiK!GN>aM{NU7f{hCiMM^Fk#e6`YJBR1idcsA=!GF zfJ(!9e(dsBYr_3UnaU2U4sM(yZ!bbGr2OY?(p22yE3vZ&&bpSm; z!oTbFuM?0s?_5Z!F{Dz}C?g*LiIugIMS_UMtO%jC!74A9HDc)@KQh0J(|IbWdK0h3 za|RBw$FMm0@1?eTjCXX_KFovTL#PeAilmfwr3kFBTCJNY;|(*4+{d@8G)S|r$pLc^65 z&8--Ry@DFt{oUB%`#Cd387G6?H_Ap)_q?zrjacJUGhhEl;U=pOkxia-lT8ELF1cWT zRg(y;cEK{bkIUfVcj=2(TqIpm)?-CrWx8N1*e_%b2(Kg30-UqKmgsQ}1`g6@Oeg;W z$Nx5Vp=;?KZHq;taZ?crT?S1;H%?5vY@kmP<~mH)cQ;3CBTfmo7pZz&SxU%Cdy>9HikESt^amp z)dl;8nK`M#+*kNer`MbMcs_}5l%j(To4IaFC^Fl;>Q*Syzk0f)z{nMj*BXv#HKJ{5 z>-EDH*R?sdVM9l%PO839ETFwBe^@p`gh?Nq*bt4f?vH2INw=eDO+4xrZF zt_xTizfrxRO3Gu}#x8e-n@myNt4mQv$%8O2mU=k1b~xQW=2X=PZ!n*yur6P>MEPEM zrxJ74kLC%i%vK*MC;d{C$=lvip?1ktBq&=n>Nh{i$KFF8MzotHIDE2AvXqZ6t`t_P z)o?|GMY;V%!Y1$X{|QzV<<&VnkH&_L4Y+u3>gP0rMe~ig@>R9a@7T+fGW75|xvA*S2e4h$ zXwjz4pV9B*DTRL4A2mbuM`pU$1L)w!)1kK<%qmhk!s6U=^0p`{4g2mf6Kh2g@=n+iSt4gy z5&O>>f9_*u4%82+cW`9~Cv9DqWV;XJ#-n`SVVlv(Dcg|w^fnbi?(ElBDSt!;-XIA8 zHPv=zN^`%~E=7F8**A&K@sfsD)tOo09-*X-AyFS=X5h2LWCL3O9=@*7&ezW8%#lM= z@7uzI3*l>JZDX(hj*K-0%a$xbyW|Ul_M;39@b$#ElyV|gKnjU9(R;;_@LNkonWMW+ z*b}fWA3R#@M5m^rauO6q4FL44H-hkmr&kS#xu+&;2_EEaTzOwS6&G&ex?^}2+af}5 zJYrc;8Q>vJRN-_WA)aSQj^l%=$5&gA`=ISvDH)%UZy1_r=3W5wdmiCUwgcKH0;nNk zy7gD=-7oOag4fp`>1cCv;Ba};>}?A7Nl{#A??>iodNjJkTiF=U&Y-Mj*w@m zRNyAE^gS_&8PfvH9mE0SMUXc_ixqDZCO&?tGuga61xA%j9VO`c7*c5v!lgW=v3bWz z5H{#YAzGZkJlFK-Sw}0wzKAN^z(DL=B$y!Ly^|zn`}=BJO2?(0Ti;s<}Gm*J3xn%3>1T^yKI~{aw=N`>z^M3mF<{R^`R=u<~Q@6ivz)wh@Png$iVjAdM`{2*9 zIQBu(G&r|Vw6+tnag!)pv>HkK1O)PJtLN_jv905pOZ)Vd#rTYLE=0^%FHopIRXAy^ z@VqsI0npHC4c7LzYexAAvanGuM4Exjgr-|54CUitK&!HCdfVs2gF`-K$ZrL(Ge?ve zTLGuFepm1|a9Rk8j;*8~0GT;9S-85E9yjuBhkx2-z|-l)ujV0f23?2K?buGx^h-ph zc?7M7v?CCEy5l(*1B#Pp5q1Ky&9}wPQ1tz9M_T*wlC_vRw$N=Sz=>So0q>2r$)c2O z|0DJT-gqKb8}&kR&+uZg=^~vS>YuYZ)+@Eq(Z5k5Oc) zx@ad&SCtFapY;Uve;mA3=}uUl)Dto?thnF2n|%9dcBfURZR_3P5Vwb6qs^QSwfzW7 zmQCC|W2GWIg7nulYxJ>evj21ZYCOi=)9fkMa2>Rr2XL+m(h3vAki5i#(dnnr>It4| z5Bp9Q7s$7W;y<$GOnI~T$Ei|_?_v&~c(Z(Dewnjgu!m9Dja;%k%s%yfdRby4M66eW zF@BG3koLRwVNMqE8_gS!GX%d2O+!fGW3(Jy!tnv*Po_!+YQXH$=r<`uTt{vlA&rG? z34dV{5z?Xz^3&jK6+6i!DMBeE{pb8yWR$U4(K!1 zK9IIR?Q`Z8uX-*oOFb`|sdb~bF;G27ccz>$no6(ZUF%5N6^}^@FePFglI?{Na_qkB zDS~s>SDkJD(4aOUMa!)yjEIB=Y>qiOuzWVh3~g+ncI@8d$LiQwoE@0LCno~oKjgnX z<)Y8!+PkwHt3vc{p^+_pAUT@atCGloI8+5WkF1(p!?;1#?i@KrVCQXX9ue}D})u)H5g@|rw7RIB?f2Fs4dyXdTH)k zpq@9u>{(Kc*mI>kzRJG`yEUZC_q+i$b*s@=yF^T(|AZ@7kJ&y+G%PQ5K#wu(xWr~S zUVSkrt4HW>fS+0vTYJHG4qjcKR%=ceI48At>RWls{+cKHJl$}Rc=umb>-Kw_DXyS! zudru9>afSMHsVRCHDw25qedUJ2=0ZPTJ-LbY-C>fO1s)#(>7n-G7^!xO+9eFc}etL zm|rnN_c<#mr#f{uqMUEU%t%K#H$v1?XK<>jQH=8CS|hH^9Bwh%X`>X;9EV+qtfo=6 z1btam4D7FHwepHTQTbV%t>i))FS>CZ9c=Npm zG88yd6sE^8ILjM<=(9cCUQFt*9V3I%E4p&MI*Eg^mtqWndWhGH_PJzv=07A4R1-8nAy!vh#R{*ym~_{%fGd-fxlHu|?a8 znG~-uBdCx~Yi7h$0k6z7b%%IweNfopoxZ7DQFqWy{+{$heSD0GB3 zW;qlaLchWZJ8|({gcf+AKMMmb1K_a?SJW%$ExU^FQa3j;nZ9j-nQCWHOf}GXL{+)e zbWfwNtYhbF)D6le)#!dPs8Wh1$FmLDARqSjdT1Qfx<9yx>~$aWujmTCw~n#? z^2Uw5u-|#9VY|2tvCn#v!-T$sh1P9|KonB=-a?WTA3S5LYalF`y|ylj?Jmp)dO>4r z?QG?+MKU>d9^zJ+xPW#1N>~SeMh=3Jve(clds%N{L>XL87OJdA_omkzoJ~)XEcd9q zK6N|X6`g;_h7nsWOYd`<#pSNGl-5*Iege3|+IGl)MX-oiN^}l&Wbae8v6Al|OHpeu zbzkT95R&yuk6{4D>w6b8eGM~zQ(QE(+~?5hhK(K1+}nfOfKSGPF<%22GY$fA zx_X!)?YOPW8E?qbv5W)cp{gI`Ao@V^X8y21#6SIhKi*%#3V>BvOupWB!F-zo(jMuMOvVy0KW@KSoBo7Evu7KmgU{>2 z1~LkNluVG-Jys!4bVI6ieKQ<`A2Wv3(aZoX{2ACBWI$pXRA3oQeF2`Zq6Gg&`PKT^ z-rbC8KyP1as(P?1xapIUHN^bWd#n{SFOmA#bajXgm1eW|GpVd(<)#MdHo$=EfqpDM zbSW`$NFUQ}m<0WkRjt@P?s0HIs+@y~^q2J_Ki0t-D2JURo3x8SncQ4Uj?z3TG0%%y z62uVeLP8#U_p~E;h00sbp6Z9^WkT33$X*}!xOKDE6!(ZHS*ga*i+KIVfOb?4bsIwm zf5;M`>_(JA)O^q}Mfq@eWPiB8N4SBG_9Pq!6T|f3FBk5Ea7Mz#;&oWuWl!`fox66FFW#^t{||$b*!&I@nj76!9i`0@~I3B z+bLjNvQuL{PFSN_#gA+&hUkac!T4u;t*X>yEi$krJ?ly55$gkO1F>Gj8(B7D!9`@( zhp0Jvy;VnEsk$PMT+po1*-`Pe*VQGa+?oLc;ZFc=R;w``B{R3$vM6Cd#Ih~{=PI`Q zAAIdeI_~0qn1S2QE33s~zBD?w2#9m_r7>3~yibFC6CT%lf?k$KM+-EomgQ=REpfuO zIepc|2ZioN(-O^a+t@xlx_9|#CI}!eArc9iNZPNX{MqCE#Ux}N!*wk(QX0hvacNN; zW<^-6?sIliwV)*qPbURlm8eED?OL;ajPpV7H$@XCaSb=yMfc}~k6V;9JH|k#l)<*~ zLL}DJ61P`}LJa3~-$6tK&YX(Y{pUU-UH!;f?5oGDO!4l5$UwU$&zWn&dc$~7cfbvq zrz4?0HE_;6qjka@5D`HfLAUD(-^9h%kjsbA6#D;)c}pY3iPn}9HL0~m=}VYQvd(!C z)E|jUY^`V|DLk}{?!;n#3SO!UJedkTKaClxYFNATq6>+lK*QI=8c$S;CRCg!&pd6w zX`tpl<{0vu1L8#nEh>u!+N1PfX03$E-nwPKQQ^I3c!cEcVfwoTCT5YKqp53F6%sA) zsVM~N8gs*o?3m>*J2pW4VB2%ezYTl#;j$;fnK%y zd^v7nQiLKV=%w)u0z=vC&J?!{J z&^*2Ts;(M#fh2K}y*Kl05`9)Y2X2oi&M~5?wD)nC3GPfbMr_EO z8b!|=3B)JJ8L*X~6`d9^pXJW=ca!1h%1ES6FWNBNiD4^ABtNa^*Kw>gb~GHcdCi+^D#!p2Pl@1u47h8m?Jd-nA#A0l)B|kTpEZCRA)nd39*BHHCvp@ zVXs3JY7)K4zM!=#t*)i9%nYBi+Eaq@k&TdcwXFkL&V_Xh-+*L5*(*3J|12ml~v=5)<(H$FIfV0U1Zrj5RdF~_=bHN-VDZ94psg*_bz z|JVlSln`DE-TZ=fHOEDQZN2;f*_q1}&$V8UTKSo-Ou`Q9-W5YWJBQtx7z;>pwELC=0qLWrE*~TJd=f^23Y{||(Z`jKH zr@4}}KDa^lVDIHPWWN{u8g2+hv98?NJ0f&6(dlN6Mp;6A-FghJ)P0j~458T*f(D0h zqiP@$qt6D*_=eTTJ!B;$FzB3(Gm^jna|*mqk8+U)UtEiQ4zPoOo5#A&!$o)Uaryvbm$U{ z`bP>9ZG9-WQXV$aQg;LSqZc(J09cy>t~r!0ReE>BU~h&TVZ%~kYQbFghfUQ$fW|`% zX6hki;}z|;>*}g~dbhyKO;l~$-RaBz7ztin-;Oz0uxdgcIX~jq4m{LFtO1R4!@3Sz zzySmhrGnF$W?*Yp?tdeH8<;*KI_sUW!%d-f&9gzbW4RJ54RBo>k+v5RN|!tgv|Jai zv|Vsz2w(vCxNLS(28CED`^n`(d(ajII8e3gIn_4jIM{F-n6;vrxjhwDC5p}2Un==S!|>ypNK#zfLOuysEav6gmDFNl#pSOTS!HImn|Oxa^l()5C6@R3GfY z@B%#TVhXB%$_cJ#YU9KJutrflv{yJ#6W|_|uYJ&d99*t>e357oPxEadzZ1%ucGf_w zC8ZOx(Rd@zgK2T5IjbL|b|IPC4h4*a9Nh2FItiH0d}B`O8?U}U0Txb6L@1KH?cf_X zsn4$z_s4?wTB*1klBoRtM26lc_+s5aW87#@q=H_b{i#03kC+&qjFM9N`Gq%$rT~v+ zo*`9)Wu|G!!+=?ki7$mi$}9>YaF7>{$!_))v8@5RKZ#oTkqmyG@>bDzQ=1i+rFwY# ziaYfs7z{R*@`MSvnflGZJDjasy(pF7$N9^n`Xu#JM%=_8Rtvm;0cZ8s#0jH-_RMPm z#(+#0zVdOW_}S~?PA{P#E~JCl7rPzx@PoW`6Sx@mmeRqX{JpiKu_2mgI+dMwVaJRP zeSP0MctyC24S$lj74Lrg8YPOfbeX^LGE*-Dzip+Xy4#Q%#|OC&27V}%jO*L6Y~J>krjwI}0IKU@ zb4<8u6MwOZPodY3r|S3oK(-oWi81UF@~`4Te@l>6$8l}X71gFuR1V|j-CY?hAtBHX zU`kI>4lh-Ea_KouwXo;&P-vSETDIx$UZzvM%^Zz>WkCuFfrTY4)5itzLcHRA0cJ;TNqz= z1EeiNX~h0ks@2QMuJ*QI_o1aXT+GH`XM0MuEn;igIOQ(SfirCiUrbbt3oFVOxwTqNBb9PPG^SnO-q(a`)tUDBp#f>Ny^pCBHz3 zmwpU-jOT(ir-Tl`Z=$1xkE0=vq5E%bEGNVTF|kq7QV{&HqiFj3n+uc4O=^Y3EbksM z4U`F2T5=JDXt;q^I12s5HqGTB*N2ct2&6l#fHakGrSP&Ko?BAp&g5=V-HqBxG#~+; zc|$iT1KdC~PV84d&7xl<%iRxtl%H>MP>MzBvj7N(myTH8HUNNbI9DjUc1*dpLkDpS zb>m7D3j2Og23>wsba6znDWx-|qVp&K*V?KT%^?(w?pR~}XsI?1xttz0HzxgxTBhH> zcJP~!@wL`b9UfFU9LMe1!=%zzgxO#bKjdR{!%!_*oqcff>ANt`U6K(v2Vr=Y3Gml> z8ed=?m*3bbt@ji7XM&(o2XbT@ABg_tXGTJx06$a`ztLgsAP%jEg&1jA>>xXZ04A|e zzWL}GN5I8k`NaE`0++nu`EQ|8w*g$B7-8oY)2_Wx0Z`MyEk2v(0-BT16Y&<=vJw<7 zIj8{Kz&?z~!C5-I$lycmaYP;0a%Yvh&`xp+8|)&|PD)*9a~mQoA{o$6n_fF6W%K zRenIF=&iwNh=tIO5QdJi0$ySg82n9tkZFl~y*j*YjdP?s$boz8+d6DR>H()i+l8$< zsYi!6&63Mo1rw8_mEo2`HdB+S`N|&ksidf)w<0ehHtnH#WTv0VFTjB z&oYmaM-BE8wP7=GsYkeNMJ@3pD0IW^@D8|x&>*s~==OH9gY9sK>w-efutI~@@rY1V z?xY$9Mr;nuN2_*xFAG3srI!_qVI4?7p>Y!I)u3mR!VRGH7Rwzqi=}1n*OiYiXd@qh za@GrW-Gsc%1|t_YGtNnAN6x_phCt-NxCV|I=suFtrEeFgb+HVe11ee$z**DB(4k&F znLZBy$Gw5DXkA`yi9#4g$$q}1C2iaJ)a=OH!ueNH5*!5==ikwD~XS=nM1hkXX}rJdbR9s0)Zv) z!Rs!Y6=W9EJ4;*wwvQqq4dAQC=tmwzOK~s!JT6YOd^$ccchADxJF6*JGi(o$o9{} zbX-R2b3MPzqyLj;YuNcOl^MA>@WPj4O_CVIz(k}eUcF0P_ZSRu21Q^n-q2>3EK_hx zNQNza^IKjc0|?8JUG4P5iowN~_xWE6UvaVvco(*mievxTmKtC%CUXgim_Y0?ub#M% zUElRUToL!ka%KDf$^_8vs6qS|ott72iD`f|Bgj|V8zRVp^S2?PHk825{od)_zlD1z zIsan=*P&BLu5Z^lc_Ka`(^?&4rpaVSPG3^E9p9+^YgK;Z#&6Jeuiyt-e*6TFhA?wS z932pG|5}xtg;FZoA+ADQ>a)pD?fOUM)Qt1B|-Ipck=uMGtW`r(J~C#g$CZpI9;J(0kD@Xf17 z2p5whkLNEVPcA)7FEv#98LqkzvGA(_daUDd=MviTK_@-*la@xB;EznxR6d7jC z))#_PkofCIgmH?5`lz!m-4Ff>7Y`%W@DlsTNmIk1L(i{CSkUd>R0ie2p3;8Im{f*x0pVg~a*^Rfz6C*eICLhd~d zx!f1#JB+6CJM7yNJ&JCNL%P5V&`Ys=Hfx8NHl7BW;-F)9q_d2rv*jwzEP;s%iJHzT~<-~Wg` z9*-I(o&-3d>_u(B!+sfjKkVSHu<*gETm*=j$m6d}j79wt<_Mo{`ClA5%y%Gc-;z0T=>$ecz*x(&Ni!C)ij9}d-y0_BA5m&(0k*MfeG;#-G#Y_4S*=RKf@TcG%qw#Uz1j}OiuD~^GuWcLeT^8Dg5W)?>yN{-TRjxiH!x~@} z@rVsvwX!3*!}2AqeYI?Mu6D9W!9nL|`?SG7fH0qehYEhXNt{N= zLle!a-)a3bHhtOsr31&YL3bs+kmV>%Jn%wZS8XHu4-Vy-6NCZL9W|S%rgp3KNO+*3 z`9n{_bDzUJ8R}Kp!&T*H2C%@~PHLoG)O!JU7UKRm^QL1dL{-viPIQV3S#?9CvBDCs zjYyoD{0Y9E?FM&U!ud7<8GdS@DSVjTe=tA{u6sAG7eg+bJIiXX4e%}&TH(-7p9QQ9^ zxOg6)okA|qhMBy%u_tJe_)Q70S27%RPT7%!LTh)_pI7VotbL*X-x%b1D$wM@(lW93Y z?|wr@?1q)@MEuTfBd4H|Qq`eAHpOgJwzIksX~r`a1XU!U5+5zdU6Z_JqW+-EU*Ou*ixcdXGCJ(TNb+B=O zg2i=k+5OIx$oun)KOvIk$XKMTJXkV#9x2LM4KA3eFioLdj{ob4jj!F;fLG5~w+yC) zX`f#)1CYSpGDUbb#End>oFI)=@s)BMJ~5p9Bdlh;-3 zLnq%_g*iQF_;5sW3P2%V@Ca%=NPoSOk|FSkU>}uV3^uU#AHxAyNjgm&cpW-}fZ&ga zwI}#S1ccpa=io%aD9rM$_jc4jWY{c^oG({j{b*+dlBwOi6qGHyAcX0+1RE|H-_}X* zFMZ;^8`u@rEB10smf;h_Jq+|iBnM*#eS@PYF3%++>66HT@Ro}nNZtBDpxWC@$S}oh zSau(H@I2n_W9<(B>RhGOjY?Q6+r`V4IQW^Cx`aznjc#yB0*q3^e-QG2){-1t_$a3} zTOyR#NC6X{bEgZ^Z8+hAyNleXhA*!1O?Z(EVL)0We&Kn89>e)O6Xi~>;AnrjKtOX1 zQfg{%|6fHH6t4(~Q$_VtawFGAx9Svi*|x5%%W^7y=IGogJ!t=KVm*Vc!2O~n2v_N| zUcQ^&cS^h;=3;px*QZ$64b${?90r(-{1R9|hh?EMv>jSd^K26i`vZypM&05x+Es6S zJqwC&#t5wdxYwO8B65e&^i&6GW`Kna#)TSj_`; z<@|e7gYy0T6>{1R`2^+uh#MZ9a(P{_GFFDS5{aIsJgnF{B9}hIj_TRs5eSVe4;n6) zi47EiE}#fhD;XC=S-h5S`qE8|nE);pOLz3DLuXR1yf5O@A)D)2GsNT+G zPtANkq)Az=EG4`cpSMx$Svmf=b6H^wm+N6Z6vzZ1EI$10NJ&BApcn1w_DezV&d6NB zU)_}FIQS{!(WF$!%i(#$M<=wUTH>n6FO|+*$8P$|&&m9q?=tB+KaR_vthl|xwQe-P zxIMJ7UScb7;g;eL`YxaC^R9DGJjB3iCfK{6yzdA6i&QDUJh$(bjT>_D6cMLE8;%Pn zXF3g~7VfxAQal{<1I7NcwSbsgnutB{*bS>>S=?raY!|KVVk{Oczwt__^j(!iUId7!&!>7H7DplAbCK8j`!o&;e z!rklM&QNY;njQ!D0E_fMkdkvW_!Fr(9C$EqnFy9N3?$#=B>}uVu2Nfr z)J-q_3-|k8p&a<$fOe789ms3vusCB9Ci}A<)7T?2mIUlHum`kf??NaOZTbpDSoSfSI@=MoL%zky80aOiX0?XEU8WXwrXR~d0sQ*@_tzP%i zw%S_WBosd+IIX~C1>aTKUpqNfQq+2Q=5}a&Ukyo6ROEV_Phv(*45u1)=JDzjPrk>NVAu<>#q*mtA)T4DAUFal!dbqMG6dh07=+USDxh0*#Q}Zi{n2Mxe_A}7!9c(( ztw{lW(PW4E(AE8tQZG;(Ej_T6Rrc9PHheec1zl}fr}dmu&0ZQxKOHhyEQ}tu>cU0k zH8-F#_|j@8Z%{~iw{rr(!+x$wh3^_=y}w5>Kq5O+v}Klk4b8qO8V%FNFT zMQ2})e||K6BQ4K2g8qzjq@J_|KLPZ08?gTqZf>|bp}^vszn6xy_)t5RLIl)}&D9KP z2N2WX55_TCzanGspbqqrJ*sNOQ`PoL9kKGBZe~PXbu0JSnFZ7u^vKW}-CVeQwne|^ zY$g8kl9^nt8=h@O1$X#G`syTUlLJ-3%bCK)Q8r+XA!D9(sW=lj3$#INq-N~gnTKz3 zY6JqKd(#d|K?hxS`jYn75@=i}!U2#aJw{Fma9->E`eImbdtXQuS`s&m8NeZ$J494o zq7_2UybvT^38%}a*(&i}OP-b&tb&qB(KL4G9jGuDu2GS!tA0+t6!V~QEgR%SU_2!+ z@o4{#3*de>LC(+B({|CmRSNoN8>QMnDgcGpl2L3J-&6^~jNXxQzd9f9ZOym! zcE-)SWX5T(U27Mts`lRBB*Gorrt}q;=2XS3oL@wf63L@Kl42Kz6N-0sjEHLSfF#;H zVy!TEtum0c&c5aRn$Jc|0nd>(Je>ab5a_xD&W}^tB?5T~WdElRf&O#%^njO?+xxfd zV*Eq3DNt)<6)nwQF`Ep=$aK)Wzqscacbro!KtriOmN=#hGuwx0Z$}0BTW@P1S^R&! ze7~-UtAoyDu{!8yP%|me>GOZm3a^xk684t@_8QGva9L$kOhv}|a7>~kjOJ#n?rh#C zFo99fGDBpgdY(SgT-M+!ZD&o(XxIN>T&l@B^?ms2ModTFphf`WL#+Q%OCyH`>Eb6! z^r%{BdWv=HhaZmPQE}LYItCdI*&W(z{ol?WqT6v~E6rL4gounhMTT0;wj+>j@@(p{ z?0kKq8-VSYKF+v}Nlv_Gjbn~9i^aumLe7=zCavctG=V=J+9j)~joKE^YQhVl?zx=dH6*OSoSlyF?sGl-L%G?*V>?5W z?g5r{`OJj;OgT4H2fN4|ej$)#y}ttnO@L^|KTr;3q0+5G6Z3kcaL{bDQoi*xe#qDwKpXHT`0 zx;rRJSU+aa*)&jr#Vu8d^cd;EH1xz-I@-}3XG|ZaSu~Aw{m;N0*V894`4d%ix64D` zKm~K3M5TI=i7E>5M_+9PaoC#k#(#~E1!Z~;Xir7NuXvWLpo8J_GmVPYPc#Oi`h>~g zT%|)&^)9Q`llbPp8)HJ-7q$ASgu!xn9CCB&C>TES^G#ph}n)=d8!^3^8dLS;IE z!K>7)VnvgDLNp9RjX|1kSKA-_1S2eBOnz(x^<&swq#cr)YHeHXnhCZ2`;G#&_q81-u)&pe+Qk+8e+%;1n0mXnfXoU2t9OSmNN(VjW6j1FYQLm)-~ksWo4Sk=?Y>P3_l+_ z$~dFXG%)q8SfeCu{2M?#A$qp2^@N?@KUS`sqs8~|GR7t;d=9W^h|F`Sckn}WJal^5 zr3JwX8(u7*Zw*W&j`J46ALJ4v-7dO!K<1yZyGphueHUT~hEc`5(U#9tS)UAae)4sw znp*b)sGJ*@DBUirM%CY{Skf+%0mA2nMI4u=PdFblE(b6rd{2Ls$jS5X#nzcJ4@cE_ z8z9WlB)#8Z#IyKWZ~-++_Lj#9;}%gkOn>Myl^kBt8m=pIW5^2fQ>MMQw}h87k9YG7 zPsyM$n=m0;^<16WycI!V<-y6|gy%4!#OTCsnCFe)Qq)mS&q8EBnGWS8VKuDTaU_kmS?Ep0)VhR{(NFsby~ z{&ph5ACXbR${pK+l^txn;Lp5K zz|vs;z~b-hXS~-RC#$u8IiDnA{CSf{`>jBGB?}#0Ul()5@sh=d4N6+m1C08ZUP3d> zKr>XpCWS*!E`&s`{~`aP05ttmV5$i~sNoaPo(m+We*WKcx9r{|u=m<-iXxU@s8J&s z8d>~tSFRe&8yFYCQO7v-uV>sq7yvjLkdV;-AZ{CCF_1@sJ0K@y-~MTU*~<)=!Z$LI`xEbsU_YyY zQ7A3h`UIKq9A&i>BErMZo!i`qWw-br)cAyhdPNb-7*YZ+l(rq_f8PX~$bsc7|1Qiy zjfXdicnTr#q>dXBuuOSi$9R!1S-|6`-)haiNjw9wbyhciO<1a|UslNRpC-epT8v)@ z(jUSP8R(2^4Q{i z(#qFRM&+awlj5b7lQNeN7|d0HHBQF^XJwo2cDbp#lZ6B=h9YMjrH3TazAN7$@jbf6i*GqjmxAR)Lb9{A#L@ROv6;e#Y_u76zhRd^Megxjkya=nF6IRhdH z1+(;n+qCj;uUtCUDR3v$4hFT68?ft zF^39>42Sf?HK`i*9|o$@a8#JXPg332gzJ4$(gE(_fWY}yH8KK_PJ+w~kZ2z)$#n#6 z-cv>NCs;+@D>Y935R%6kOuZsa|JvMA93HELR>_IueK=VVyZmwe>!JXo zWNx(E#qg*2DgMoItAoYgrWhwXL!QPEyQbSfhr-d2^)mQ<%N=2h#B~~X=E)M3dhB~6 zh;K5Xzs~|8xoC~5wia2=*%760>yXiUKm6-s@@FPF#W^*f(XWV4Qc^~WsK#~Rub#m8 z?c#E6=F)v!rjyrd;Yp(G#d<}w`M&Ojbhnl@j~JGHbolVdNUqcM>6<{8SNz-OZVM#r zW}ZX-$LU!le0wWr4j?RA|JhpyJ%#yOE$j-cZSl0o%FXGX?Z=r-Tnz+m zoVpcnlVG4c5>2d#%AK8}o2(NcqeT@dZa26_JzSVIL4G{Iv>iILI zC#nMFi=2m)VYGtEDp}6kj@k_t`j!#TBe=YO!J6z?-xeCH;*3jUlQ=pM*fHSwfC}J~ z^dK;hlwOg@78}38Fo5hDbxueE5C48}jw?zK;Q%WoHoEThj}(*$+C~r5(_ugBVj4Ee zI08df=eHY!jok(TPGLgy|yd7M8LR)^`76=m99EREqE(2ed2{UZFw~u?hnkU8!CqCKl42Y?y5+H_EdKCE!aKvAGp^m)d3XiT`&8G>=P z*d8L995b0}polpOLDoqR1_NZ?y+esOA(lQTpeV)F(y~!pn3qh`o=NQWIZX}r91?EC zKkfcI10bue+8fFw>8cM$Czzk}MW&AxcVWUp$k{brx&Lzsg zq(%Mz?yL!P+;)#A2y zS4y;`%Ja9Y^2eAD3G;mW&~v`!w6@aCf#fZU>y9`li5ew*?56xwIsqGfcdWP5_m=rJ zrvtIe0L}T&0PXQxShvp3!)LIumrQJoRsoGaS$Z_sSNRy%Z<5Kr7>|j$iH;8&i;q(PjxZBWv)oK!3*8*xRnUj8Z)i z59qP0tIn0RYRW~NtJ~8koH^QwZ$-i;P#_np&MI0C!1vev3^wHd>TewH%(LBg&mxey zJEM!>{>i1vtri{z8!T}fRI(@&qD=7t!yXdF5BGuppwx&9v)FQ~kV+HcYISGN&{ zZ**Uy(sCL)e4c;c1fxv{*?pW@*QE&5Z&|Yk*aJSHu>*>>>f%Xm!~omzLw|Y=K44%K zFSz?W=gaY454bUG?0`1(1a|yd!?pSvGR)h;%cqx@o++oa9qH=^J089~Dh3q<9iI)9 zA#wo8TsuSTNQR;wXqoj2@6g|vP{{LXG1&5HAX>3VZ6qhz-Ljd!ADdQ&yHcz&=z5@vBa8y0YdgL+=0N@6D(I<<6;J1uPU*P?IvM1<->LXqIDyGtvsrDPAz>+y}9SRz@d*vWbPd zbPkCaC9#H1MUw+VIEwwd)tv*26^xQtCAG}|M(B{y_4HHGcedG2MaZO`hFGv4{BB-n z908A=!SGOw?+jn{`>FbeZ1stkgVXWlWNB`uTo{6(H$#B>2PxOPYx7GMowxKHT@CpO zRr)_cURhWlw(?4Cf8XNDDXB2+qztr?oM^y!XHo}-w7AW z@JTF@f7BCr-HAbk0q!CT&Oxau9(wJ{!7aV283z&j|F8B7W}tS}!DS8lGBddeH|>Ba zplP%V7Rn+Wi5hH6Q!p>(`9xJl;FzbdT2eNz0_?kDD20^FLLU%#wk^HAZHTO{c=S+$ zj#5IMefXO2j_yygYGaQTq5S_NtPuly@#>wFb&s2XvNPHP?N8k9(lB4h4p^c_Xotj= z_ArUy=(7g66JyNOClWuFat;lt4USTr*ZD|8~-XU+9H)bTS6 zY@*Oy_vGot8U*`tsVZc^KMuVI{8>&Mm^08H^JYeL@~GYX+_TK~K)(bMljSl;+eo4V zh*Q(k)TKd$(1t%iW20>ai@T%HU`k4`GRy_btMpjIZ)fzK#x&T+?30C;;sJ$m>dJ=? zM}+87;7o+Kl@#m8xa)A0>SUN;kz$g;zQ!y3)l479 zEW#~zFz>q`TY>tQ*y)hPlV9}fX-r-A*T{O(s?8Ub#6&i0xx(*S)p^${`iiZN{IK?F z4KV0reawC{ZAMJDsQWbNy$N~}Nl$bry9M&6Y<3CwlDZ?(2?2N)O+BSIQRC0hf*0D$Zo zb#FN4e66Q8@67O5x3NjFfMZQS-hnmHy1jot2-nst9JzAq*RW~u*JM!gk3Dqj&7=Mi z^K0SoQ^P1@IFe5qxpev=q||vnc%G96x?P1qCWU%d0G!L<&tx2Be>^$)9~B zN;?unZxL7hI2RvJB>bOJg}>31JDcghbwepuFwEof?WgGq=_U6V@ben*?f+q{e!=1Z zrSRzJnOXq9>~V&6Lu;tUYH%tZ=Q>Jl?S?6f?s-2yKq=8ZLur}rX)r+n5P=X*yku^? z5j4|igiyzgBti-se+rDCg@qeD2@C=lKcx!CFLfOidcTFwhpO8C6xv4v*js|(Z{{wR zi+dnzSZTAmc6^0?Y?cd6x(omZ(VN6bSsf$fsr*ly5_T3_;P{7#`5Wjc-H4ppyZP1# zK=di16U996M25yjQb6o5Ty7%)u`zJ5j1?O(fS6;bZtw?S!q}#<@Jfyo+V#i4jdexk zVd5oRUS%6N0FwuC++TIryI@Cov!}E$=3fHM>(4M)kFTmIc^0iPTD?65Q1Rv;^^}9= z@=r6x<)32;hd&qG;_HI>aumpe4!{_O#|%LRVn-n3AfwcD1{X9_SC_^I($d=xO$Rtg zD?U}#=QF+MN9w7IT}%reH=~o3cjB__PPXz6+G2W=Cyv!v zcLCdoAwa{Kww3nV9;!{qYyJ`5Q|m-%?t%_6m@MNCIontPsk|0~xeri}^k7#GiNdYU z(p&yWRTB+M zegIt=mG1+C)T7Ag-&FJdplZzV=A}Q|6%40sVgO3dBT9h^5nU*l_Zt$7$g)7h;uR5D z86`3jOLPm+*2R%wgKEqV20@9Zqx@sWB~p1j0i$=u5_2Wc{7R1E(8w0W)ksZJtb>re zuxarRVvFQz1KTeGlg8_y4yG15sEEL<<^9gXv|Z}Iq%r4E$$?=0lcHA2)|hdSJp#~} zu=i-_?G1Qk;4(}t2yDG)1K;%CJKUI88bzh1#F23y1)-B(2o2?E$gFQLo(aKGPf>RC`xX`NqDHTs}!mm1a) zv7CUV4YVatO>o$+h^Xw^^i^BYIJYK8-r5&xe@CAmPUD_;T zLZ^_I;)QaDJ6#_JiC9$`7Bxr~lgaFL&vGPI#pX4-(wsJu4hKq+7rsj-NzVv|k54K3 zTR13bfWl$20Iy`F9)p@C))tjTTB+=bfv`;Y^$e`n^$=O&wu9qh_Hda!eu=#Urji{$ zCpgDI-bh&jJpJ$Z8!`g};}b2xe%A$>AoA)0^?Wy9xHHMTc&c0Ow0J zcyy?ONqD2py$Gb=71MkxL@%Z%DC6v*hl;2`QUAFJ#>{6 z5prA&KsSMKQ--kLeRBqhlYQg_pz2ZS%!T6&ZZP6S6C}+dN{O{bQa})_*8q%#O*|gtL#5tf8bB9k zQgX0MO@1lmlIXv}#@RQX&k~;o7{OwG*z*Vdjtm@P?>$|1FYS-ReBTNrSUM{fdL3ni zC>|Mlq#i#inO9BCl6N`O&>wx7#)a-siT(1A(;Kq}H}4E+QmTdc^0*@7)_t z^X#Xw(*DiQ_t-anlA_tU)ERbCH`{@wtW3jSMT+L#`8B5HY;;`&P*bC zmq$nc83UuajiHCcBW#g!0-LZtBsO0&(?{ZlWSkA541$r};q$1b0R_cPQ^r9I?S{(~ z$ACf`9uU)Lnh2F`ZY7HYqb( z5ZK)#CLGUJhZ%3S3o;-Y85%Lmc~Jd%Orhw4@JzaJ!V#gIOG9*c?out-FYNaN$bfiM zeEL~#X|%yP@g`u1?)czN$k8%RS)wlP4UMykC)&j9sf}>ER?s)KqO?18MkA(z(s4p1 zB}mEyrYr~Ti8vwe+Bg(nJ6ED2;SldE-PT7g8q>pATc=mxG@JkZ;`c)2StN=dS3OGY z!u>>Uc=nQX6?QF4G=6OdY}aAkWKGP0#&3naLVC1dr~y$eFCQHs%_5QoSSQ9G03{HQ z@Mzlv9pwzY-~5vOvb<8F(JamxMuqGaH7=J_F)H@q4EdU;EF3f^#9%&a=D;#2hhq2Y zqwpKWW&FX7K%gXx1$!XUVP!86w}5~r=SPW&TUbEJW-chiGYbnR(gqP|_WY7EOoZ+^ zK9e0KlDp6iWu60=p@W1*B&!R0u+mDOmrPEaU(e))p@GhVFl1WIe?PYvG~^Hbds_d*N{qe0MLJq5Nwzb zug@p38Y7$c3*5Sf1|XsSEb1}w%R)J6c0qwGtD@%Alqb*KM;&k>&%^FLV&rbuOoN_v z!V}WVMEKY?Q(L-H)0oc^(vyPU2b-awWH2FT!Dk z^_l^zr7Ds%m<1gHSNQ49M{o8fJO?{U&&G2RD-9rx)?nE4ls=^btigfV-q#DmxcB2Q z4)UH4^`nXvbhztVqnx5jGFMrjw)!+5thbY^kIY~R4o504PW2uYRYqy&<=l3DPCDrY z>=`Fu7e_*}P1-Wu(^|+?^#TuKYD#eB4LN~gi}fjKDJ2^9$oOdJOgnzoyy))>U>V^4Nfw6yHN#TF`r zyBHMSt_@#}4L_wSplGAb3QWA$OY+W4RYCK;L1vp?sHLD5FrO^8=|qvG^R|0>paoOB z@huVcg6Uofp?C^VVtsgDSS=PR(Fz~rP}hIVo}}^w{Tc|wJi3R=$PoujuS+NeaEKg% z)94|hUe3u0f6&+K32AXLQ2L>xT;B_l&a=lz8nKe~2&+rH7|ZraM3oj;fE-(8{Zj0V zyj+Pir$Q80*jy?2;--<2Q)Dd#`{^7l;HV7 zo8XTI)L73D^DMTu0qj9Bz&4zQMOda7-7j(5t9EKxV z!1ed@3n@Nc$wC1*&(PWV0vFdfq~M}2K;KUOfz^;$F_#BubhSTUSJLG+{TSVK(S${# zV1m3ILdmO8=>4|xmFir(&gh}93-ldR=$g&OL4*^-_<4X1V%I?Ay~!wY*SGEjFAXcE ze*}MIb3_(?5zcz297myzdypFu)jt}#>qWVnP-s$=mNGNtGp-m|gC-4Xi<9(wr)&;N zF^uCGLs?GGua>4-b1;2q%yq5bc~Q7H4{?Q+qI^0DXFZl3`IV4sLPB6?A#A-q{+EO< zsSu@&e)lGivJWFu3-DpDxcO7uF4vtp=_3Uk6p*zsj|vd68&>;!Lo{n5D~**9fq|iu z;3#UdZNlJ)hbun-u^WezE4-ezN89M6@l-u@>QF`43-iV~@6Iq8 zde*~qyAX@9)l!ZxAK;)rDF3s|ZeDVUv6--tbE-(#V1*LK5A&mxbLb4_Kr>RZno<9L zCP-;PgG3`FcsKkRsvbPH@tbKBEG86_%SmDqM*tGYf|s0qV~iXEiZTkmhtiatSi@T2 zWi>4(bdS27Xtsqrv{1F(B~!?=4)0|JSscc7$^Ce@o&Th{$?Zrx^3x{1Exp#5G;#XB?y{>jV8^iwEkB(_yEovx4IFvzow^-kM)z$ z(z2NvkGkkhS{3*ha#{T4c{pRjes-2G)};J>1N5ihyzd1r#45>nLu1zb0nix;PM(*m z3L2QP%@v{{uWWkp6HByEsRaN=3nml~?vsW|0hk*5#tI|)B^<%~maHZy9*K_1Fb>NWX!_XOKZ|7HK)=2}2j6;8&`dtCQJ8`+6hQRX*bYKUY4dQ9G(B{+^w4{OZ( zWt`rs7T3gJk#od!PlMuM9DsyLF9fP%g*9u0OZ38xCp%y=bA_>SIVu6_J0YnrLK_xY z^6}%t-%OQZ#mFFY^^sa)&#-2P>OtqW*PIV#bau88FP~@55ZONiUf)%^>iUJ#S)aL8 zcwGsIonR_9789k5AiGAz*yHEu{(djlC`MNw>%hB~wP=PJ-r;Yw02&--F-)=I_9WIR z3LrZu0~~cE4pDXDwZ7yTvV$csYlfY8u(GUKCxoI2>W@mdO5{7P{c@ZypI&a3#g|5{ zj`mW&!rcgMG4gR?jo!^M#yf zChY&Pl8B`B_Aw|Dpu@IUET!?e!O$*mjU{iADIr9op9R%$u?K#Pzo#Fs2j36fFL{ym z=eFgEhi6Orm^q+tDQ}m{i?^q@{CKqEj5zMk^242-OPVB60t-EY0Y)@R)IF#*6p(go zy91W9EwJ0blHM@2H+R$59ZhmJ{Zup4M{y&J!SbtxGL44pUbG2+qX zv%^L=qpD_(g?ruUiO*lb;rA0^Z@sJ}7BIP=Rv>M&*G#>M?&Ep?uGeP-d?Fq3+75Jy!O(=H>3!p@TsF zj3)K!pq(3ug|>~8f`uGd1LxwJ?^OX0uGx)@YKBJJoW}M0(t6JE6TJ!fFdN4>l{)>LXGQ-1lo_ zYBckiCVR9YI@lB-q4?Z#ZCQ6%9}@aY6AoX$wl+2Ha=8M<>CqT%c7Kf7m#y!O4@g^o z|DxJilU9I$WGIyFum1hX6MiYL@}ZV#DqUd>y`(qn|4>W|0nzO0O|~Mv(Q#}xUaHF- z>m7exQ8&H%4;%3KkDdSfNP?Tz+PZG%KG*wOui(zVr$pqO*tON0vWnf_D2@3Jg`Udw zA16dS930b*hHS2(n1BB$Gm<#xxApR{xvXAxh4 zi=VFvd2sL##_BpOv@cqB)xaxs)6x$-j;2+SE5$rMAQddr)(f7QbfC|*BRZ1;PKI<} zc`%w(mg=?lkW;+;lPr|FmKC6}x93}*FOvk)Ux#_4`M6X)YGWnx@4oeOVYe+io{Tg3 zoK(vQpO`)4QPFHA?V8{j=gEbQf`+&QEt$`KzYnkG|?Khb{-c5Zy>kE>+k zMYW0lRja4TbZ1mvenPIwdPmt2G0VfrerXtVEI&j@ZFM9_#T8KHv~6fv%c+xyGi5hm z3(qg~vi@6EA} z66tkV>;<;bz@n1w6P^Eicn1YL_Ag0e(SnEu%Rjl}T0$LB@Pvc+cPj5lz7#Y*21@8T zH)!89{Exo|dpQXIS+z0|h*jyh#b#25bM8Xy_fSXLi3GDCed9rzcwcVizzaJOpyp}R zpEeiA1YZdkc;EQIo|Nlek+&Bamb!dwjHS`*5yfu&k~XvSW~D8`@Y$=1d&DQMAkFi4 z3!^8h&ZR}UYa)7(XPdjN=m9P(bQA2-9=tG}4gPCAdG5u}cuB-hvs1xY9Q?QPOF8ZM zdgwf*L8G;o*F4Z6MHy}ONRzIrF3JWDiL315?g4%$8+y8Xu1Fwf;B-8a-w!+iCQxlI zZ1BEaEFzNFi1&=$#!3SmA!A>=c^HSkv}1D|?b1nIG}(}K?>5~_GRKw7iEV=VZ`bqj zWyACA3nNu~PDG>c7xP@x9-NK;yoSE+lJt|II} zL8M-!DqQ((hdW~D6kR#ce-befXR5|}ynedp$Ftf^f{g_{7PhCaF5{pUM!f2jx!P)W zt*T4MBjmhSIL}J6{1ID%^hZUzZ`WVnxDzrbz$KKKX&)0WGlE|_1BomPlK8Lf0~(h1 zb*}$-lem=XLWL1OHRI0XTE`Np-wO@Dj*pTZ9lWOOHJ|kj&P^G2OXMRTNlx1or=oe| z5(Rod2<_-PbC*88VK;3JA=JjzKpu@>Ooc~7lg1{wJH5zumCCou>oJ|cGrqT z{0ue!g$j_>t%c#_=U|!WjpUYu|8uN;FId){B0EpGE|%xWYP4rOuo7EnN>;Y@ec)9(@!Jb9(xDpa=Um~sGlkogsAYs7Q z-e$9Tke9|;HX|j$kVS)X!()wCGxxqnPhNLF)r4DDabE_iG>h7h7+2j6%A}(f?z}$9 z4=VN`HEJCA6g4SafE*h#v~Z~Y^ytC38&S_Y<{2<}N-eKm)dhciOy=H(uy5`I)}5xx zrhS&%OAwUy{+Hyp+wy!|$el`Tjwz%B*Ac6dL@k;-R~pFa|Ek!W3k|jcOFs_Jn$?hx zdWLjbw&K?8e|~qAheKO1)%AlRSz$dTed|lm^Pv}C8bktL{@v%4)uy zwgnf3ug|ViogAZ5r(7C0=ZA84=J;FY*J;)%dH=1_HP@iq?@k#}l`lfQ3r~-7Ot;9C zl&X$o8|OV%*a={0ZfJmP^(0CJ0Y4yJrMdloFV3m7y2p2YWM_q=8QE9ZEFQE`XR_sV9mgNVjxA>ZgDJ3oUNoVcYIMJMRi;kRf;>b93NYj|ok zJHx*W6F;gW8zZcEEV_$3Z^3DmFgj1@JOnRK;@Ye+@id{+r=t48)#Ii^jG#q4HtQld zHSt9$;6sIcsm{9R7i9|<1`PBCe)_;x>g|H_bn^>61EV~Bf*alAwjP(N{USD*bFuLw zxz%GBqkV_y5tbG*+jXmeI-K)qCheS2^->3eo#LO^%R}uAK_>4~Za9z?#r19ed4scX zZfs@x;zb+^-Fp62sYRGQ4f*QwH_!`l`Eq`aA`g2^HtNm74zXn%d6n~?Oatu7i3iKk zPHaZW-^|^+QM$}@OYxbl?6VMe9Jz!k ztk9mM3drH(ApQfbM$?5N@A?s`hgza;lMnP8r&u>7ghC2lMDx3igEi?wuBEv=*?(c$ zHkGG4kX-VqF}+h_jr_oE-m}$HkGv^;OVO*iQM#Y{JiJ2&2A?G~_#3LOL~f1i>O1vT zH9`nm{rX5haGFj_ea;bw8BQ!zuQR-$)yZ-$x@@4LUhb`HeZMu~1`TZ_bH{XoMV{|1 zTT!SJk5iI0y;wHf5wUHzytah)dCu3il^ z+~J(x5Wti_Lodc1c>ICa-26GdB=1W`#JZ z5r^)_B57_=?)h{ zg4uh<-{P_CpoRJf+F~F27N}W<09CWks)ikWN_h(ANM1zJh8>T@N7G2ShF_-z-RP>v z38XlJ2hD>$M_vUBNSSW^I`sOXzeHOTHS7kX(7j)4M-P99@s&l(2X0|1{8o|2qX7^H z%`D+1jhTbd_}^&Er-*qP1qPLE8vTFZqAy?NPRGC` z+*-NEVv;(p?thXn1&Z4SDtnt&;e}j8AKRU;irlDw`C96a3n^$J^LvQPNMt_G>noze zjHNl{sh`_$(jb|QDNIGed!r}mox8*lPfI19W~jz((|d&4y`CSC6T{RS8rDlWpa@b< zP1-f61Q=pc>5{hWNv z@H|v~I_hxDT5oCw`rxxXrQOj*a*a)lM=4opQ@2|y=m%6Qd3rMU1k}w^qm0hk@NC5& zM}M6y=)D@H4QUQflXj3S?;K>ICaL3K5z4!*wdVnQ#)aCu=c0~Mmab6Et=o;u-)V`B zZlC|jIcZy@_1SCqoJn<8fxrGF_tybkSM*FTFqYWS5Yag_pqLg!t83XVmHf48SFD>na{IAR z;e!*pfjWD&4UDsczX;OCKP(fU?AmPqEX>O;Z&$5AkVup`ZfWu?-=V&Hx9>&qv&g-Q zy+V7aPISF)1eed35pJSOzzFIP({3mr2A=)FK%#BVcb8%e7#XU~uj(=73wMpZq5aVx z44RjtL?SBp^O5o2jrk1FJL=#^2Y2UHC>{bq)CXvRPS3M32<5}c$t7G`xZ*MKO<>P*Bz-@M6L|$Cyp2_Exx^Gx+=Hu>RS7A z^ro<&nvt*K%^*P;;Wk~cCAky%?+=MV^M}NS|HD|%b(m$Lv4L2gf*672{;3;Qhmyf0 z{PA{Rvh9t{zE%e@5aFPnEm$pIbS0zp>_;z~7Pn#%A~uFon%iGT{!K%i+rbYju)@cm zzhl4#hON~zlD%s7m&o}e@;~vYzA>GDw%p&fPwU4-S+2pOqD2jpv6Z(^GeyU_r`mcm zB)-x{vnnk$-v~Mup*5Uc&&tH3ukiab=o#ztRZorfQYT`Fat7PkJIcWX^Cxl1-3?Hg za*+FXGp7*Y3EuA7^wEr-krOkWG+zANC4c0Q5N!>w(yOR~LNfsg$^TRk2$O+gepRg; zI40u7dQM&-;||w&#{w^Ay1172|>RqA?ll--qJ2F>)|&NK~O+{H{~J z?KYzLDUF}ni6q7VJV7u5ac9HIr)^0qOzOiX@@znDwv6kHE5f!rmUPnS&65S) zm`zPZiWO~$TK-SST{F%QXrBY)6QSt=%6fCDvBMJuhL#dzoaQp*jRn45Dg*rMmNM*F zY{Mk(jUS=&32r5W>ov2o4z}lJr7=(&8hM`2j8q!TTcb<`CE45vG`??G`J&iQ%<)Fwqd))L7S%eD2Aev%ea7oY?biM|Ol6&*1|8y+%@8@y#Tb<~X)uY{drONx^rL z-us*MI9gtTsapmqXKm&wNW@-9BcRfUUt~Khu+(!P#ZMJ4r<$fV?#YWa=kyI*8K_@R zrJvdjM#D2#Wre~33L9=RZGXK`HgGx8B~L+Pu(4cIs-G-9lIAY0YoT(3?Tv!7Bn+4x zxk;rR$J^;Chm>D_1Fs%{GlP-7t_*We-qR5k*NJg^geAv6W6~w`Fr<}B7?gi$wsdCm z*=?%Rg@6B-U6D_WTC8=Z@-Q^zvfS?CMEf1#EP!a}#LW>s5|oSqh)R9+Qf}@)ypRmP zFV-IW+Z8sGS0ioywxXRqre_`$$V)aO7X!8B9}M~rFRy;OGE!)D(Luk-ic#dumD{8i z0>PE*GLL#;i8x1qaxkf9ucwH9>IE68n-rH)jUGAuHU+6n&4~^x-Dcji)eq=*mwc}c zH@e5_o+1KBSO8VQY?KZmD2#tz0TT4j;Q& zMxQ&AN}Xl0EsZC8=8iD4NSwJG8d_N{=(nIhDbrjrXSB{>YZ>8mb$vs_%M5~O+&nUFUC(Q?9l*z5~o=X1L zKw6Cw5x)K6UdouYb^ZFiafm=53tIyo>U|enIyd{^YReoQIFV6i0#$>TDAf=AR!soFbQAx&r5rc@FoLR?^i=GmLxoarb7oxHkLt z5BvW!?+yfodiTnhGuicy>=ZW4Aw;5L4#n2gWUJ#;rh3R>_Z10`rbB4X?c1vAX zk(oQHA*%L}X>~iXqhC(=TdqoeWbGp-k+kSY)JD7FiT)aQ0bSG=>PbKms1k`H}SQ8Os4t6D3{W9?TC-klH}OR1%=kN+Fy z7s;@8OY;>L7g&M2)S0={hz%jp;jp-nNtzW8IifL}eMGn3j*$g{iVGU3DVq9sPTZ0X za3S^Yw45+K`m7gN)Q+8bgO>1>7Rb)p$U=x+t*6sl257~5=O(&~ALWmEu#-^>_adch z_dKjbv5tp~8t(wfwYVytUcNJ)P{UXZ@;#Y`LLPl9i&}c?j%Z4kE!y#U)a@?P8JcMW z#_yQXA_xyH*{vIG7JVxH9s=dmW0AgS%-Q0LW6aWL`Fw2#*1@d8H03W~`(a?w5;M~N zw!7k9%CNgzc_iB>vxwebFk6I)5Mm&AKdJC{u3gCR<3=*{D;)+OlT2ampTlE8$lyLe z(Q1E;%7lZ|cZRDCdG0%^5lEf)x}^>>*(>Pg68D9eCw-a}kcM41Y#h}X!$zYbEiTB) zW=0m>=-vv`9OuX$mofwma<+jhCc)3AtR1H-Z$GPqaEW!49NK`Yfp2#aZm~U7wou4yt0Y% z(3oZSIuS#nh7F-YB*{iR3W*CkIwUe3L&#?irt|gA7h?znm%g zd*$65j@)ik%sb7O;jGI}5L5eo2Geu62K1_4dRkwyle7!F86OBv6Gi0=q^6e~9nMxP?q>QW3o6he+s5 z(sGMu>oLXd`<%IZLV6F z(Kx2%JHI)h72_j)R@xcrQ~+w3NlvGt@w$`yVVoCDHBv(5962VdKMbM65r|6P`DJ33 zIteKG8*%>A8)ZFxF1IPt2?pd)l2@>mte?r4;EydePoq*4A8|fPf9sgM+ z9R&lU22E+DHQuEbf2?BFY+*L1Ei<7yr{V!!BzJzM*8*B3BeIc<$1}58NlxMuo7r}q zt=-j!a=XHya_H%=k25ap0#N^Lwq`V`=XKOsc}c7ADgpQ6qL$?mK|3)BgOu~NSx)xH zoNNLyw+f`N7aEaXFuc3#%M!$pI(_qbhowcE5q0FYmh$+NV>g@~{Zl>f=#YW0JgYXq zB{Deg>pQxs_T@!WOYCHW40oi^v)jS5=9Z9Ob}LHn(-I`72_J?{TRc+$6*T=k z1-2J1wS}fda*>&}F_Xiyu8>j#TkC5491e~pw+wUfMAOrWlR6nB=aTvH$an-8I*bei zr&M#gUIy?1xAH&QgLa~=ZW7VC`X*mMAHn!(q3}zi|2+z{2g=ZB&7le8K}8NffvAd7 z6^k4T-G$c+NvvRZB4w|995fnq`bcgK{Kyo(fpL`1>}nqw z7VsaecA8$4qCovXgkuE3uA3uws_`kughG6uK%6%+7Xa>FA-$l*B}QRAeh9-b77chx27H2Yj@1*|qzG z6@&TwB0#Y;NyVf4J=O9quB3J0oXJ}k=WsvI;i}4lGRQ#M3MVa-u0&ogeL)X`z{-H< z(%Y*=_{hxd5iEk#Qywg z+p)-;`|b2W`t1lC&n`=6FCA_8*wIwu>(m?0`EIH}R7w2nUM(e=nL!x;ke$tY9l`|1a1w~1sa!#(O+evAoB zq_5?>#J&Ia@u|C+>25yy+x>tnOXKxS#;~lV&+=o@wmy+i=N2p+pL?)kYeMa|;1x|J zOsnUFxXd14=u{)YV}MAv83}}L!Bfj4 z`O3SDN4TyI)zmMZ-zaG+hFaetirVaSe>=H#-#1OE7Ap#T>zoy}xi<|PbHnkZrn}WK=sELEf!45{&|j3 z;e8h{z&q=2H6k}<_dLr1oYs=n@#Fg+`46Z&k>D4W&(^41wlja8t-(&r9?hJwqhZY2 z`P)8bQNOl&^1}jdy$ts>l=BT->e+qem0{Sx_pR+%q?$~h#yf0`-l}^@q%_1X!w0-r zs@X4e>*Q8fAl&v8h?uN;j4#>k(2 zRHi_`j;xVJyhbTBz39n`pP55bDJl&t*q?gf+t{>8x{0-B*w?0w zS7ZVt5QsCeIBM$Xt(Bwa(WY}3qzNlV{^&m8p1i4jFhH&EOUTSIG!~w+DwNa^uX8Iv z6NjIPhrd*jXa;qp8`s2tXtj?>BQqA>S#7wmu|!#3Y!6Dk^v=$7)QV9fjZhZh;#?LY zH7Ku|qPyX*^b_ams}{4}l;KXq@8b{p&%1^h*}dX4MQAOz^cdGDNw{*e#wb>yH|5{F z>ulD0@p&J+z)qL`#71=YZcN+`5q!Q!+y#}a6Q9OBgB}eau9MgPo1)n9j@@s})ggQ!8z3dMK49^WE0PD}Rw zX1u@pC4NRKNQv@764Dyr?;~QaR8zjywWO45EvJUA^wVuuEwSn4NP@k&*1o-_ZR1Y$ zPmXPOT(ZAPB7P$mwPrU*)>dJdc17fZRs|P9;$ZrgX?FH*%t-ADVb{F$cZx@cT#7-+ zXK?znUL?(L^3~5#5eS!m9z)%YcZj5x)=EJNLHM3)Zea6U@SbT`N3xNs!Nt;Q<}*@a z?-;8w7iRrYV_%h+fFJw^1GwJ1uwyaf{MmLh9S?DeLB_o2XSd^D^G`SAjwm+5_A}$% z4Rm+C?38T!WgT*ZK125KfrVy`5ekW3Tx#Oo{_Li~>SmoT&inoH$Dc(8kbrtK`|BC- zHJ(!MsFEGLFcwu3Qrf8G&OoIon17CDpN-8IxVg>T_jsG}nO3#wm}Yf-)+uUvpE6uk z0YSUuZ7=Xj)$G{uR4XRGN25sai%?2+cloFT!o40Wj5*$g07dxQt1j9vcxaRwGA-aH z82Dm&xP389c>A(KTk`-3b6DTMaTRStBf{wmkk~x1He4bqzH|}6Z?jd-XiB9zpNSP> zLZjN3zb~8HIF1)`e?!r9GEidJiC@^+;py|u9qnFNBT$CfHL?P z;!*zo%Q1Xerg5qG*h?wT>EKS{URd`H_q+MeXex$10?aYrw|+ZdeG-XXvp^ZrBE6@6 zsp$A?Vz})EeS@(($-D^_Gs?GzuNug|C zZ7(*t56<-&4$o#)17V{i8O-G@W8^r~b^h}RMbb9SgWK(X1Q-KzUTFXpqQ6-ZV#+6>NP$e4U-j$8qKBtbv~maB;6dIzJ)jFLt(ft(=O}*p ziZ{{p;QZ0+R@JGUwLvbl^GnfgYd?tfoaq-UF18f5FcbejQ{=rcQS7YUcY|-vv^&@c zNya^Kq4!%KUTKP(5>Ak}0z6NJ!NnpgcBY}m_jYT)8w?CuxLO`e&Uta8H)`-0(ITJ6 zdFvpBvs)66tQ&5Cos-}PA7(Lo_{4H|t+}@CCgR+2g()=kj6!;cc>I|>o`+}N!Nz;& z40H&#gMP*S&eg-<6%+3M%S49z7KW)7B9K(pU%QF+^(KV+T%Z37n1<8QP!)#W0&YA| z>qx)5l@?{q!T%s8V(EHjPqdebC!Ale$znE!H#@WqQ|!*OVtwGcGhqPG9kO3n0N6k- z&#)~j@b3`IYODU@(iJh4H}bp7-+>f!oZcB8TXNtAh^Dc%$`KT>Gmd0d))knXZgufp z6CVNJ%!IyIJQ=_5*9g3UmRCW&be}I}&4MG8QF-f7RvV)2Mx3aSPLoiTcFNTKO+Av? zy3}bMmt->BrOlb&*X;R(6eg|QfL#Y?Yd^h5W@m00@;!5h{dkoG^#O!}G?205^={R5xGN8~b zlh2A?YmVer$^tz#ZD}_26jM@s_MA$&ZjP{;`qNUL1vBT->7wgp7E3mnetmY7+jAhg zG1qs3-e_Xsk1T9u5wyC!uuR=J^*J|x^K`R0@cXhbE7P`8{dKwA4Q_e)Be`mu7X1e} z>8BT2Yl9m(oWnmm58DEN%$qRp5O=0%UvQq7g#NsfTGPd2>3-A$yIl;%aJyYV-mq{o zxaD<>TZ?gAjo!x}_pk(~XQfAAKhTb*lJfUF1-JUZZ_khSiOtWOZoG_klf$^bM*tMd z<)>#6IrlLb-$*Kuy?e0wd2J>3$Y;#@N92yr`Quf<{}`kl!j>#!A%Tp8;q){?7IGIP zj7(j>_!q@V9n!jiY7AM~Ew?fBE5$73GfD>^vM}IaAX)iv7K5FV)yIR4&(P@K9%L|(F!VwXB>SxF zl3LFG#kf>o?IREu;1l3@C*$nA1<&nWr@hHbYDFnHFtn@?v-*pBcV zQf1%`@qaX}mgcV77btLNKDLI{po$Q83C;y<2DnPJtRDA30hgtlV5KHgUpqwK`_Mb^ z?w_`Ks$tE39g6SzTiTX<2^Uq|f-!06O2)PgQ6ddud9j)A8iCW^i^GhF$f-$mo9K|6 zl@~S<000001^@s;6IKBUmbzuNWEHhQ4FTKs(F~-Gnhv-%R;@%0Hrpn)wGQg~%4&9Z zitbKzZD|#3!q_HzoT8UrH% zg!8oV$>y+uR#jmta;79;OvBCezfZuJFG#z8#GQG!*8aAW{0EwsfbBs#V}6?|6sC_slxu z<73#1YkHse}1|Zw@#7mtHNi0*7g4S zMBJf!*d%9GN4)*-2SKs<{S~U?u@5`HB+&I#DaW03_yce8GPm zkq!>O%h;67;fkY>gp@CJ+Hf`59uz%N=e;3?z4OprkX{%rkT+a2*yA17mmos z)BE|_LGUDBj5stBKk$2VRd9A*wJbjB{b+)bDtdl@EHHJD@H2@IUQmqD&d|B{<6fN~ zDo>x20htpBdK^K6h$Pa9*A(t(#1G3#H6a5(IA_aimSNTWZ0@F04ra%Ci-VjUCZMT9 zeZbJd(L_S${Y*0ReyK@^QzRw8%wgFHgIwNet&#FxpU9mFRZ#43IMNH5sgFCm2HU9` z0fd^_Pfyd?IDX;PsQs&>NtBO83e^c?=K021;sZN?d?b9F07c*v^G?iUis$(F*pbQ< z+Hu%{3p|fybKZd2oTEC@YKqUsT}Zch4uxDldo{B3_S6IX4pojo5mH^-(kwpkdhai- zZOZjnKy1wPjHRAHm>RTxGn=p9wo7JKdmAG?1slIu{cUH`^{W*Z9Hv+a3hrkZ06mtv zDttsrZ|P5xJ{ZDh=wz@B9s`pIcrq{!c|b7T3}?EU!>HOBZ9&dZj|Zm1+{eElv0VDX zj?wb%t_P*Q$9+$R`Re~N!wy$0qXlykOE%#Au%$v50DE}^Zn4`iUtL)mPK_5bRQJY2 zJaunY|9EExy^TZ1&?TTeZ7eY`Gng#ln`bO$ol z!PYBWSAW(rF}kU1o=F}omGx2rFTw(`{XgGj-EnamWMTdrl~^fo%X3zwSlsH`@FbQ8 zi;+Z>c=bBFs>Y`Mf=hrler{BmZKIHopk-LLu{RON-tbtOJ+h?TZkume3mHTPsSYFv z4`2zJ(e5YZ-tRnQ!OY7aX$D(! z+<8=oAI#Mik|lkLKSzO(_I1+7u^c3$LxQ0B;gjX|n1e#U5#i4CclD!MWbihvPr)oa z&u@?yyNznGt$?jWTXvQzR5I9C<6FOj{3PsynhUKMnvTgmZr-XL+K}6^-UhTspTgUpf?K**n&@n}mlDe(gyqg>mte#b+!vlC z+QfEFs4n$NO=By?Vppki5g%Y0Hf;o9-lFGF2gQJ7t|j~rOHB^bNYRzW24|Y9>XVew zc`a||ZiZ3OAA!I-mF*KjM;N8m#H@QBjJZT#A?EQXpNteDIo_rj;a)wC@nB^}_6H`{ zW%@Zx2bfjT9Dy_qS{tFnw^iET?&}sB2pyo^+sMpce++0CV_3@RU3molXKMOPpL8x)X3As?hgM-Qck zW?mn$^D8x{q{KbQZEwn9-_M$(0q(8wO`Fy(=_7%yDHOb&BfcHSJt-V*gPj9x zV)Bj*X|~ul%(r;qk{&j^$9t9o`gw1Wis<3BP1-mpl8gA-T{eYucVoc*hLrF!Je_vr z!k8+(*zdD+41anD&L*X}TKXv$L>lR+<$_oi6V6F5^)C`>^gu{@xsoxKV6|5!r7Aa8 z-=kNkp1!V#^p88d8e8^(B(66m(M!nhctz28{KGBH4H+P5#`HZt4loY33nhOC2s=tD z+@ZAJ<)z-r<;1gEh$eaNM_a*-+MeYn#?Go>hh<3jeghH+tpHO%tiMKGYNhj(MW5CaDKDDr7zW* z)VfzfMn_$f)_1}Y)lE8xfuz-cq;*d$ag@uiv%e3$N4VU|4U{F$cC>2))J_}#9 zvx;c|?su#4SqxrH!dSdn&z1z+wq~%to>4%&LG23ypj(})l%RbfhE^~y6oCfwpwgO# z5uklG?OAfkuv)xj<-S@}&#kSiOXjf)<6@TjEv$F0{(k6ie{C!e1q&a&ioDTbUG=Y* z8O8s`qhjbLZ;G2)DMX=pDHD=|h%!u$97{nMAJj~`BU*sK5BJMo3S(f9=Lzd8s`kjj z)aY|$6$H-O*bjctJL^qE@Z?w8QDsUO>9WWwO(JaiF*pR81qNR-2ee`+oe{J4g1RegK{0i z^-M-QO0Q4R@XGq3-~#C{bm|Y@2Us*OvDPXiuvRBuh+hcST}R%1&H`Qe+lmz!*Mm~~ z16j@`K8fqiu*&S;8MX@K_!3SFwW)D+g;omiYK_&|mGe2ws6U};D`@6iLy>h&UMlQp zbkR`$D6CZMF?^JKW1^lUBT>R3lE*E|shxsjM9hk(&K|n{T9hitcb=){1?G<_pU#Rs z^cqQ;cvy~Omh>f^4?8HsTZ@KQU~)rzB(LCcgXoA#)|}TkwY{6{R`mii6NM!uEWpMU zKXbK*d?43M{aMaW-*CBO!<^l=r}}T#iE%@GDo(qmw$ELtJn-J}mRnhMkcT)@&37yE zFx&eslz5Mae7OiLTiSpY3|5KSa$Ens%j#9$T$wU>o_j1ZOKoD;uNs_WLFyT-Z-b@@ zODHsC@hnV($H<0FS^PbT*>V2Ve8ar$8-I;*2YIjw;DjRw=^C1myu`>nh=kBH&J6AB zP9k|5EmDvT-RNJEM^w3~HQE=^Axi0Wu?CGE7D8NGz1$Q~)_<0dIxk{Q|Ep%NR7t$7 zGsy8Ch@^XUh$qzdHH& zbh9Q^TLRN@CdanC&WfZd15~S~4i@L07vn1Y0lPbAEWWu--5*<1IHXrydPPBC!C|08 ztFvuJ^PV}{gq!B@OrNnb%uQCeEtA(&vo$WcX}vh|zAieG+VA4y-w=y)3j9NfiX0y$ zU8#)yrhw^4Zw=34L#zA`o{j-|a_5&}h2oGG9QbQCyVQ|+(Zk}S?1@7@0-fCj_BD|T z_>-rhviw0-ylIB?N|tI#F#f>_zW3iD9zE@MHlwf^!`_pm5xDA{J%-00A;6&O)>oq} z*6K`tl@`S#(ul$FQOzI&i+%L1JlN+QGp?*;Cv&gmKoE&|S_LW*EZQJh&6t%xD|tdm ziHenpI6oLo-|O3f$tno%{&a#Xj#b{U69>nXfj$2_0m51hL;-1IsRt@NNRD>kT--2B z%_b`VDDvbB@S6z+fs!W&0cIv?0ckwKavc?|AXrnWqmQ&UPfMHming;1?DG&bJC21q zvi0$YH5<*32$VIoV#+^7h$=vdaWIjrT+Bn2Rr%fXF!>D8%NIBN&F=ol?@0$;${!!)^AC`kK_O^M?f8tCMO3R9il(zf zA3B@Wjexo~K8C>Ix%f205(Y+WUyf)XjGw^cEnD2s5J9L$VE+2q1XV`E3Jiz-D^7MF zWzjjvV`^|mr39;yY$0{wn#eOR5RDVyPWt%kDejZ#Y`b#>Nb}Cm#PKR$z^9H`F2}Cg z*KKRFVL~;6tT-)c7zly!MnWHuHLkX5Ck~kS5zEOxMqFuQsS6<*lRVrNOEN5@QN^d^nd^%mcI|*?WaZgf*7XG*Vx6LVYx_3 zxvVf&9d0KsM;joKMy?-|QMK2Wvo%;`n5_HJ_Ju)AH}jCYQL2LtN9e2@tc>jH^?v`| z3gYy@^AK!y?5XwuN!Gw*9U#x|?E^;?1Sck76fvlif z4DxCW9qUYr*k`&ND#N(&Z21C)U4{!~yKQVf-adNwYF^Bv)_zu$jC{jDx;dt@W@DOh zu=DKWAkQF_K16D!92dt{@A!JJ_xDWdP*E@)Q+EK-oesO}QGiw>`RnU@q%0ma+d_*r zO_-)DK8yV-7(hfadH~x8pIvX5PJ3E#kcxSfC-oH@*Pb#l!5q^`V*L2s@iKpd2i*ih z67z1~oq%*9)vCw0mIONhef~5ZcIY9Pn^$bzWqg!}=c+4a=?&YLm8{UMA;^ZdP&1;| zSp&}$ZZXLPDxky!_>2!usHwFvBwCM$o)ktl(@Zc|OqOP%|C(9~YaVi)q+qF*ADKA7 z;4STyL)YokqDERS;B6KzQBIj<*$5Yuh?pdm3W$tP<$yr5R1JLaSdy*yO0mtq;C6$^ z0g0Y`kZkL!{Mo)_Ii=z{Hj}C*>16*KM*%#`nO&mvj*y8Np8zi?tKyR~H2{DJe!eH$ zjxS51G3P*LpOi~XLXV2@E93ey$#+PAc>h>URrwOVT7rIKw!`=)nk|jbU@SOE zA!C*B5ej>$nUbW69m+~W&GqY$=Oclel^n=|* zYF^xC5v?=#h+N1sl$j!6;z0z<<_$-aOi-h-P~wn;LNffmG<|)sIBPm=B1lrVpkcG4 zgWkoFnD2QWo`z-Hl~#^|Ne({A@^YhLwc!J5aeCws*H|zq3%3mcV~uy-t9)n#zPb_X z;w9;Ztv{noFvBnSU00C6c1i(NG)AWBza>?bVT^=Hz_|$As>?R2_``!WjOqGxfXEmo z?-_jo0nbjNqt8I^C~q##MQx%9a?4^+zjpCE-e&5#Ub`;HW4UP}NTuSru&Zq^eEqaY!;?wQkSUVqFMg7DL2PtzqBHk;AJndaQ+~ z!?vWfD#jB>h|cNjy6@X_HHL8717{-d;1D0Lx*g(va8=L5f{16&YAboLRhzFvX5Wtl zhpx-E$X^DG^Sdbp*up6VWtH@d^4%5Mnj#dkCCX7&v(H2LAAKeZJfFLu)z zRx(S5j2T;V4OgRwvc}9@_vdg_(SGe zZ;j?+>CeQjxIrWPz$J!T4iFZMMcq{xWy_S50S$3W#D2z zMqe*IF(+37Zv6+U)V~&%iu6PybBoI{UtsHID~`(26}h)y_$GgtT8e%%$mB&$#-YGs z0Ez~5O1@3YlbZd}(?ERI`c!wrD~+2SPNxG-kx3hiu;r% z_>xmdOEM#g%j17qD7@mL8&BGkWMVBw`+8awFG?0%4H2!DpqUOCIXEQkn{gS+FM!Hj z_{J6V+zs9Wpm@ggFVDSC(>`{{CERGD-51M2u>I5MD^la&_vuN}NbT_HBMXRI2KG^D z!MQO)wV;K-NdbkbK#nP)1Ha`inlEiZAEK!aFm=_66+G_~4UzVbw$4H+w}T-n(IE4f zaVnYXz=u=b6$Q8qW|wL<@TLZ%TytGQIJXg|2HR$_N7hA=p|fh6gwO%P7E5%hxv zpFZZmG2|g#xh*`Z96m^ddBnAUBRi>G&js&z!#<*egPOy8pPsN0U!I7t^B7HZ(tB?m zk{a8bq7K}Kp5KSGoVNX2Lw;Q7jB5}Vo`=aOr-VwdOstm(n(a^Xu&Ah8fcppZbCuuK z%R!3%9oQg}&tkGUxVJ1>7YLPN3W7A=;!P~G5OhM!asy;H0Ngc1}942hIQ69 zwsOJ7Of&@HWpF!~WT)G4^Du5!K|>KM+|N6S3>mUiYMWb{6K(kPf`4g~E?hW{1SVvj z1fW$77K7|hl1iDYXSa_a+(i7$LwP{qf?-wMt-1o#`9tqthw6D(54{FPJErG`39YL1 zBX%@?4L{Arz(5 z&DzzdH;fD4>lbSyWJb5c{1N@*Ai`kId%r@km3-+?w5S8>55;h-P(V-#1E6IG9|5bXgYG=k=ZFsdGm)fG zpeGZZqPxj^p>n4zQ25JRx_LL@?mx<=5UIRUl||;FMA0BjH*+?s@Bb6(_ZcWDDP>lAM`O2-;XZG7J3ZerWCbiT@LU zV>U9n*sdIvJvT4G^WF-dvK42g;O_7 zY-9*&3ugCF_@oW6I`@9W7It$J2+TvIFV zLfiWG1l_;Chbcsb&8i%vb08!gJL2bhk(TTH)JdgxfTGtCOSDU z{ah$&K4Lal1VCzo2UT?|l0yj~3irgZ*NZ4vReG<8k9z*{*N>=c6Dd6c(o`y}h+2>F zX(dCLti)Fc7XN<1x-2E{QDKKF%+TB!;?sm~eUPG4@BBGK2p&hSL{cC^xHk^653Qhd zhz1Z2`NcEKpHu-L?h$rXiL-_4qozlkz~l_@3szQV!qp$;B4195tbhq#LOTG zX)+kJV1Lr(f>;pB_Ik^-)<6A!#*lANHq9@Y2rgbMpa{hCv9K{_--Cv9OsxzllthSb z)NnIEls744BCJnZISqcrFgn(SHSwp3Kwp`I)zj)fYW0KM9GVEI<1n!V4sWued&0rT zfVu zu9L%Ou2={~r=!b%=7<1nIv5NHNi1%tb8Sh|KU&m zoxk;s0R?~jWWs($(HlugNNTE>d}7Y;o^3!;c{Q6tFyb(ycg^oRsqv#jx#smJDZ**A z1zzKj{6EcBk`4}_2z2T3vJrL0FA)zNT$x5UYcAJ5Uddz;7(nua^ZqN-FWcnw>~d+G zYg=V=7Ib7;9AMJt((}DYgpfLmSS(;tSm%FV_Pu`k)}>F_Eph}U@4N!))-|c6xu)Iw zXdEz~a2|H}knxhSyG*ADNiPa#WxoEZ02Q~%QNrmpEO>rJlwy1p35RQ~N^lbsVu``Q zuZbWxaTr?#Pf49W;oHkuy1RHBCmz!j)4|k5TT_KUOI&HWRFhR|Akrdi0zRq1>vEAV zq9cJ9lrg>AK8@ABj=E5UigWD64#hBuX&`c7tR6?qC9I=LH^^ZYXD)X;qH?-IWW%_= zX$WE+{^S)5@8j(y-W&yy$T-L6B#hwY;)@ecfiqTU+$e3*^cDFwx?&4lDXm6MMy!)a z<8lY%3zbHIsKxk(KZ~)%AlJX5`vn4yC6^LF#Ylb_HX$65eqjZ)ndXKhR@M$%7FY>> zO&^k=Vqd>gI+IqX0Lij$z;6X3gW?`xAb8nYyac=bw?s{>xl)B)zWMS3g!5GnCY?*E zQFs}!Y`H$^w3d~qRZQiH^>g5Y&z{o&IEJ11odS9zbX^3zZp7ZRuqT+bhNM3+-dyKe zr6(P}HYPJ4(L~xKnznBQPL5CkP#oC-q)kLVz!zsqz%9XcN$v=Q920CU55&I`8CL4 zSq7E53-+ybGW)ebQ`BZVG03#-!+HwyHc1N@9jA{(OkO@_Q)X&^>+*3P{ec0?t{I{b zu@v%7?g|NCZ;!W#jbbX?ESrT{AY|2pl~a?+{{`9F$KPQGz{Q>$zvcUbf-$1UnZ!zP zn2a##`|-8!1V-h`zp4`&s|}RZzB=f}#Z|_#eEhEZ^U!C?NJ~zuMCXB>m>p4rsPgHi z(D*4Z{A5k`mo$=G#wL)Kbu;OzAPD46FpPzEeEa&*&`(4-9#OF&wvs*tY*J^YrA)#eD3sW>x|cd`Utrs$v9+!(3ENg5 zFz)WKcQWVLx{AI>9@em=6_J7q(huj~;WrQeWr z=NHhzOYyGNN&Xq1HY{;ttRskNto1AW;_jH8YF=b1MjKX!jjGgRzn%gL;j6J=6rmcN zy$#4vw063tyB^uZqY1?Df7ytMqF+Y67mc9)zBF7+RV4Dyiq60X$+Ia%LO_LqMU+aZ zp|Jr9em6*T$oxt@-3`9}t0`A0(S;%k7qs6{5HmTDtH*D@!`4YXk%Z|AgCYr$)C@sy zh74#!|-jX6&I4%zfijuVbq^KBll$~q>prVO zJ(f%l5&@qH=6M#V5z&|8U5f#VmV{7#37pcpS<7)%)6{uTD4KbMx=oV?t8VkQTc>!aLxyraD{g#}FvF4Q=WpAzr*7!_mndk2&GiuNLo&5`? zE9O{yq>%0HR|9p8C3Wolu=ctbEM6hWWqNF3i$CFHa9Q0mdz8or@Z82SR*2X*G$dkL z9GX1h7?f-3Hw2c4Y8>2ahO^j+kxTC)5V-<`t35S54+!E{pG0Kh$`_>ViC{15Gjy+Q z`at8hNh#sKp61zLj~GDZuZI01RIh>7c~mAY4@&ncmSh60NiFbn-b@?(dXfBAsA)~m zfp_oFKY-*&f3;=C@|1Y%#{Nh+A>93bg!X14 z*TE8{k5sSNrLk{Xj_@7&RkL$?te^t2nu`gjEY=hzb?!h{Bf(Fh?c_2RE;jOCXyy>w z(|=@6jl#1G&H)~&k6)I~h}b%YxEN=0S5X)HZlGHBYRTgj-N{EJIHj`l z3=CnXsbXa5JhCJ1)MSKTDWTCDhn*$yQ{}X1fC|0Cy_eL^`!e8N*s*11$4fi$oaC#W zBcxU`3ymiI$Dh`RtEnZKX>UCYawF##1wjo$$&2%EHN5?Y!c&R6@r|WarIp_HL83^H z!f2La`hAn|me@nLVW$1*R2%P?+TJ?2k7SnWB@Ddmp_rqfb{&XcxI#+F%W#V_4}|kFe`;^V zoE*C4Su^+W06At|UCZbqik7emN|pc(uq6<9`vC}Nkd?@L?kw4#2RxT^f*u2o-Ta%V z$+dVJ@2qP^bT$?YYEcA=%!eW|m}AioEmnR~MbX4+`RRBf2l7k9cTz0Qfvs+Y zZGZWOYPUq1ASd|-FURU_VJEP6%KBWLsii}%77x#AKH&;*sYfbe!IlAK`7L!RO?#~+ z@(Hw*vl!vw7%n=27X>5c;~l?uQoxX*I?;RJrATM&=C)C#p~E9Dr6mxx zX}!`)$DL9m68SYOAY%D-iGOgwqbgmH+ZVl;{6l=UXO0=IVZQV@3=~5B6rM6`;p`!Ht~1Du zE1GOM9(4CMb$%CYpMNH-7DHF5CBH*7{leMe^s@lpT0C z{oTCm{FvHTh$4<>Hp&~ubeQQPIot@2f1{*8y(upJ+F8-Pd4ufNwYig!&umfT0B=6z z#jV_N#CG4lX9?3ufCjuqqNPrr=#-v)c!;(B7xJ!PctGaz7J33dfg{!uEk`^@#bP(P z{Q^i_&B@gq{4(0TK&1zbB)gXdQi9lwunBI0wQJAGV*dcM-#8p-XO`+cvsocv78lbK zD=}d#I?JI7fGY8Zq>#Ycc|xJ1vorw}H5wpKB_@mmPO;sP&@1V52|@`^CESfLsM0-a zzEP!}D(Z4E7zPWAVP^dV+OZGb+mR+4DPQ7D(A9f;i^|RHE{J{4)u6#k${(Whae1gW z9r)fe(OOb`(w?lI+1!%Q^G~0zCz)`_>N)cj=X_MrCq-tvz>%as@tDQ|fyNTw&zY9u>sQ5MLR|oc;mI>2ev6VDFp4 zZfWhA*Z=a)LVeHDUco^R>nWq$)jvRvqEJugIoaZWH$=h)!sm$rqnp7G5-EvWY3~0` zATg>ZarEtr6~qzrdoLW}5LRYZoWq^%OrZn`Sp)|k@?_u8M9InUNcmvxZ~9L&nK1-x zEjS^12!!A}?d^_WK}1_6g2suDgtuz!!6D<26{nE#A&kW*#tm@L8)!p6UhyhE(q=6=+$TGK~- z&mm@3xPubAd7}m&w@{9}B0}{7-b$*bU+vJv<}B$i*ATp)<9tcKTpZFKDYpU0=g*D} zdMocRLfKt2H@2lFn2VD4bWwMPkScrfj{Gr{)U4}8aM4i^9{2ZwoPWLO^42(RRwptL zvaloJ$#Du4xszYXu=jyV1V5CG+O?{PQpiItYw1PY++$suRVSRP6&%ZY1yw&$w%wMY zd&cJ40B~Z~{kr-U*#`^kYy95DhhL~j=DjTe?^`Eokp`pO2G^@k8X6xDp`+oeiH{wm z;eI&4Fuw)I*Cfm>8l5Q)Nk0)_U^xFuz;yR;(APC8+l%+s`~a6wkzq4f2)_77+fN># zou#t=u&)}@`p8fDsFYd%5_(SdZdsZ);LlRgG&%g9G5A%=ng;OP>53tNG%DvM z=WqLp+j*5~kYd#B@@{m}U1|jXpA66PaTUY6Ok=todybjTlqJ>BK#&baoT3ET;yd&K zrMN4RiSD0)Diy&fDn>_C*AWFIbmY+L1Kijf@TNe+*#G0`C$rWMQOfCyU$n-h%3-+0a6XSGZ^z zwF!YOty*ZMd*k!{{|0Rzxo{!jY?_falD^UT`?*-vJ`jcRhs%JLBTlB{!vKy{RR-HE zOAg!GJ_B?^o%f6Z_A%^1nD#*3DPq|DUtm_A@w3SPSx5Z?&T)Jb`dxPiqW;jc)qg5& zUgIi&E-`s-GIa$!^SAhJLn692d$-@Gow`qVxO`0H_!10X{;a2IYd-_B00Qmc)uBII zL!ZospXbT!?4SQm#sH%i<2{Dp_ZZEh-=DaC!|(uFpHMskYqz2*`FT_Yu!?zMM%HL7 zai(T24<|?Rv;v9N&pvh;ss6+2*m4%f}_whh*Ru*C31Md=gRWXIoU+6*b!FZdVXQg9Oc< zMcu*pX)@jB(tw^q>z4kFzf=gkw_%_3I4Cs4RgYEp@9T$zRrea=DQG3b;iD7oq)C#H z*|uFw4f3}?enkDuk-&@szwP~|cD-_$8c^6rwlm1s-&@+mkjs4c6pJ6zj}Q}Qa|Ioe zq-7ve#rajv+}3f&MoGg$*E^G0=rkE=yYT9guTGz4SKhuPR|48J9#NgLGA}GSrp3S? z+Mcc9eUNixyjH?Ocm@V+d65X7Ay1ZHABlrnrERAe@y6yRrF>y9wmCYWw-%-jJMvVH z_n7oY+zl0bGWdI{$zFBnSh5@{J>(I9CjQ_=U&{J?sKIGjW^ud00I|VCfj6}#viny3SEb3$?6)F?eZ`}MjO~V@2W`ct zuA(Tjh_=QW`W2P7FrwtU8d0&@aKzT-K6m+g*k9K&nVmqp<)@bj?%W)F30dSEET+ z_H~vOC@cOn`RSb*t=P2FQGA|g&r%D$wll7R{izGvV?}zKfH2!gz_fiKzA%34(aF_9DKV-b9wJKruR3+}Zzu-*3!5fs-3e2Z5eu7|;<4 zZ3G;TA#=;_WmFQu5%+meHiZ~jAr5F%^uxcHXrEos?ngfxqtkJ!NQZd@eq6>qdn#P< zKy3GxkChq7*s6}}mnC2rVmIH`>no@&fwQWFjJpkCROKJ4Xb`5UdA}Wu!6i4hUYZf; z-9pHL1gha|{C6g+3;xCgGO9EG22Rb^tf_VJalLYpF1hc$r5GJCf5`j33pe>y^)#;s z!)1&Q!&%L!m7^k$errj#P5;G}a%F^hVQ^iWh0=1*_#a}d+`l`DXPvKMczK3G4Gu$K zd~DoYe9gH}@#UEcDS|jSQ*Rl2O|s!%@A#=hG%}t}TYN0iAn#$5)~av|HeUXOJiQku zdPo}CdTl1ifz@}#zH)$O-6p~=OrHFzofzT#l7!Cm!gYPnMo}-(AX&_>on3Ovn^xS{Ew`R-VcAIW{O&+7Qi?K58OmOH)3qDl96GTR*OzR1Mu zC=ouFp^+#Ja}N%$(W74&Kz`!84&I>`{tVv6Ol!*0d1j z_nAasuUZoLsQRIuDYqSneRrP&vH(^W#a2LFhAZ2y4L-zTNZTa6b)xlrGR&-w@Jf53 zF-x*phe}2sLDA%Aw|=+xV0A^!;II^9Yu3z7F=;otyAck$vx9y&(OSyO{Y0s~^hUy# zy{k$Yl1=E81j0nW=M%9S)83v<4uaVUHaOW^3*fHo!WMLx1T2bBTmp$od=Y*Gn+Xo< zZLsI*okgGHm7N9wa26hC1fxO8^*kn-*qN&0I9+>t$=M3y;T?_xuwy`flqn}LZxsx%2*^FlU2M1m1k4xYuC6^MTZ z{k21+9ZiPt=s%$yhu6;JsRlu_ksKM?=Ipq3MVH%S{EPK2o&BxMx4p9^{?vcH`|tN6Xg4)^($s&h{S|<9#sQEv`)KofatMgW zsikbOSG%$T^R6fJaxBl{faHosn=dY{sHdox#8l_6EsL7_xxj=i6p_$6km^>@NW&Z? zb`EMx&L7;GO5jNC5|P|8*cqDOBl>kDA!i3EohS()D1gX(zNEkv?-q~N?dhn2UEu>- z6-FZ?(L==~bn<7Km*tO4RX9*2-yEXk0XqO2E32J&T27VRYK;~7-=gAx6%w`RK)ITm zby0h2{4S}JE2x_llEypzDwk}=iu4~)P9q}2acr5Ss$v+ljr{{r%WLH{>1evQdo^z3 z!*341`iE)+YNm6$A$fFi=*PXO7PWf@KNafD@pE!kbo1`g?~hv3dvUj15+9mfFfjSaXOtB#%YMJ#@E( zN;+v(9|ldSB?MQ~~Z`KWjyuQgS)D7B- zpVJ9Smhe~eUsb#5FTrh|7WvXBhq*Iiqg{ z7NZKK35y>^1Gtb|(XdgU@^OCj@9-=z;3L+pYKm92of?rmaEQ8wpv33_eJfz`HyQ98 z^$4Gx8!uLgqlNKZT#6?z*3(Yr^6P%RL5@UZWh$cbHqvLrjVf(>*UMGXxeBX(__B#T zVUiU=l+cL50A-;|X;WOIZ-Cs=YflZQNoM`n&aM}e--3b+kHd*tUDvxZ@7^x;v`PZ~ z0UW{<9E;LyX3=|H?e9}Y_~0yw#h&zJ`Z?GuQH!6o>`ntXhQ=j-JbgpF%^!fwjN!rK z4qtUs9PX&&xTzVVCS=byE`6cHQyAg2=s{Gg+PxX*h@_8BDbf{RhAh&j>_ws$|G;yS zxN}NPb!vqAO4`L&ghil&8PM1~>4>PJbx2h-m(!;Dbk%H#@4ZnorC>B~Fe!|Eu-9st zzGS@!JYHJpcglDhBLf)a{I@)y1ACnc(R-S1c|g&^z!mOm?yu10ESy)k0k)#_5dNIheEZ*p7&p2@s1B`hG<%ISrvU8WY%X(N4G48LkOll)%0b!c!GlB{z- zwG7P`Q;@32z)KaJ2)r711L2By1shz?M6ecssMSKE;b(FP%!IP1`rfh4JYTcw%_^lN zGt;Fj=b7k_^g((3A+`ue(sZUAr^}<_ros0`OM)@a%HiV5lK@B*0d550zzcXQI zDmR&-7LzOjS1QZ9|AOFnNR!ccg2o)E;}3a(CcUy8jbPSm)|c_as~8~t+KJrNnM)VM zW^3#?!{?`Qf|u$3Lrghh$vGZ$mg|^Y)|$%X2e%4c%N|DgCgs@+tsn#Pi$H(PttYq& z#LM?Ot8eC`L0!1whsAP7ptt5t9z#((U3M!x5rD1RVE^PNi3>FA^YQIO_f0;0F-FFl z+(B`;!T(CK=Ty&Ywid(?xD!43duDKfj8tU=HK7okdM)Q%5Hm^M!p!?`}b*)v&AE0dDd zMtRKB!>Q0wEqaGxrzda)0PR=8ygxSCBHe;`oF7FjH~bWp+272U#WPaS)O(OCs!-2f5uhvOLN)=-ITS@s7H%l z?7S`{J))vd%+~MV$zUO;=)}B2m9j!@h|)*PZcim9(Iz%l(qoK4b8l1KTTDl*VsNe& zWbewRHGz-ODR*LASm8-I3KY3MQ)eKxCXT8&)_)9=;$kf|^Q6${GywUyqHxiEUE&HH#+yf} zEp!HS!8fyZ?In|>=B8TB#T3lRt@EQUgZcN4M^Ixye&~V2C@wEb82-vlRGpn@j|{Ye zzFY$@FEO{Bae#t63py%QO!ZZaj5gcYzf90WTRg;6fyC)ER&l~=daNO3KCl=EA0>Gk zQn@ydotw-S)574=S=n*8I%1o%fv(OR`kC;Nr+Tdq7*1o1w7AC)mDC+}zWz;eQ3Ias z$wRxCgRvG&ipO5@+Tj%mdlCPD`jo4L{UPEP4)W2xFhH_Py=MI%5R;EkHo*ADkO+9y z!>}&yO7*K+J(Wk$tnjuNnqn61LJJ;%wrm$J_(a~bFOO8qaWSi?tk?wBs`IxMTPf61 zFvuWjaEX&q%USk{YLpvD{OMTlVx+ERLbfTG{=U%NV^0dQ=euh1ju{e=WA?n=O!;tf zOChuR+$$OAFbf&^V&CP|I$)=h>JGjfDCtV4M^6Q*{z$V#B z% zKFiQabtS4=j~U*P$nf->Y)p@n8W?O4@*PUmGqvN03egukEFUBk;vtna4F=MwSajbBBygvd+yJe z)!pEqZF)NS{b(b`vxMUu^=ZBD*-E`I)cNBC@C!g4UdJgbRH`;C&1Qv_JwwgNjPE01 z&#eopqvqgUNd6U$_DNx^%=_Ql^5u-$3U7$~1+C z1|&faYP)MUlJ)J9XYleY-v|pq!>Q@d zE<88RmoJ`-6kBxEXB;VoTUEYLM<-3o&`Mk-@{&=dgQNlp%B1OJ<^J?g3KCs(zJ$Z0 z_$LjvZYrY1QlHYHdrm6DK$W^C2cd0X^N!F9aGr11EG(2@219h!ONK+{ilf5 zM&5TP7w;_61+0b4qgVm(<;qzRxkAn2o~So@8>xw=3fSdD&IKcMi;kMDaMfeQACWK`Ni}9iW8Rbot7~|j4?Y3wrkuOvT$~pmfER?R8v4h+Jw>{VF5f^ zZ@kwwN*O=n9s8dyRqT77fIL*aK-0vL)1(K_vmm%trH}U9g<@kV%uEBcVoG=unOy9R zjAo;$B~7)t3?n8Vb~6@LY{yy>uFV-*LrNJovT30Ybx{|pNqw1$1-5PD(H>DxqIL-Q zRb(Dd{N-~mxQxhjL?&A5b1be7yQ-_)DwE^kV{p>1*4q%1GLYOpbeq>s2qTDhYQ_pS zf^i@#u!0@f0f){;4#blu{}|F1=?orn2cwq2u!1Mvpa_faqm5!{Ej>TfEtrr z_v9&7xW=!c4V%7hH1lJ_Z9IV@7K1M^fv@b&EpC(Zm@^-3Ta>HtH&qp5rcv68V>;7E z@PsakD?5EZjg)60)_VUIfR(sY%ZdAkc}yMHBrp8|1rNmKZopK*%5!en1&n>z#BSWQ zNfVIvI&BT{#n5l=sc@XSLLOV@S=cne+N3(Z7?`Ijp7aZb8CQQE70(7@KRy(&GY=l4 z6f0uN2@Y|3*|zo{2`qB@1$cOkGrMP1gz$6w!GC6O*D~b* zyH@dX6{?qbwyj{hZV$@*-*^i@h2ow}>y!Hvkq=rM&3<(LRrVQ4s#jS7Et8Y^r()L* zbrV`s@RUt&IO*`~A9vEka;$CczHphC`=p~cssD>OqKTP@o3U_pGo{uaFp%^M3Mkruwd`i=3FK-|K7L_QZM zUzF|q?ylGW1TvoFFCqKpKD%YHiL|t%1^_=mz`p_7`-z!nWyO41QnO4ydg>Rx)z{Oi z4*;FkZ`W;|xHYtVLyqmn1g-K=I4)b|bBNlAW4?oyj8oV?Ez)(L*EaK(K)P^PJV*-X zW1P(_->Q7OQ0C4=j<${J+3z|9sJiS@K7_k zev)~63_nfOW>B*P?u&oV&pP3)m=r5!AF5j!<{(E1dI23I((x-ZV;|LH90g?hM<7mn zZLbF9pEN#MHTBHS=uB^R1B`iUd$z>xau;jLxJ`M3 zUUtw9Z-DeY$wWNv6=!$x9+Pj1b(3sr>CLw!{Kj36 z8A7{~-}sHzh2G2O^`DQ+ysgjJj_>~)QJC5r&8KVoP7*`X2MIo&QLsO`MK74N#7*y( zo|}mhHfkd7mQA(Y_93s}Nse6+XA?Kea*4j(E~y1CIcT|&6SlghU}I?`bV@2NAPlsL z!0xDq4;6sXXs?L-!(F6`?Yr@KG%3MCV=XjM84^6az4D0=>+n zE}$40xJ;ZJAs!Do-^Rg1B9}5i^ct9HmfY8*y;HCx8K|8~IUFWiv18-#;};tKBow)Z z$R!~YK@7J?DuheD45-umq_us2ME6iGLBFbZ(I5coCmERbBRSP71S@s5Ec`iidEAoL z?CJC+BcMhFIx+j%4u>47*;P!KvYN0SX;ck5dR0ox@Fj4(%YrY}UTY5u@UCag#pf!3 zgY64dS@ULX8?zrOx64l`M1ZPPf~y=6F0im3C8)H?HPx(&$aQZ?;93^bkZpBv!o(uQ z&u)~N_p(P(f^nLV1ow9aQEu+5PngB;!X>MdVwYsE4hf9TT-4CiUxWkYK0fkL%zY#` z`fpV$^TwBqA&tg9q8eqI@0uP_DP&n5vt=IG6fsh=y?vLh!1}mbm&lstXW<^Ci$KDo zx6U>j=D}xr9TYen4x~Q80tG$yA$Et(fPMESOsH=@G2I;IGwCx0vv(Ijd)&Tgom-YR zPZsgrN+NF!6@+&c!T%B%_<@j0l$pOXGvnaT=aLW3p?LQ`H%S|KIpO6~3^P|Wc8#70 z(Snhmv*XIj$O-uY$jq{+W94=a#gpAm+A|Vxf{f76d?AZ7&OfH#e!w7~Cm@tmqe2lr z<)tMalS}DeE^$tX6D3$iK$9g?{4!`k!B>jRvnwVb|C{|uh-m~uwY&4}WK}np$2@fK zDt}I?hfH0^)MsJciRBdp?M*-9Z`+?@9$ogHqN><^ z2tDd39g&clD!^P>iiC`mW1StHL{JO?yD!p-LR{2$;s?Jt&-o1~2Kt9M_t8uGF$!pe8*iQ?0_drH=4>Q2N? z;wXg7^#?L(ViAin_X1jAKpg0@U-5|>FS>UJ)ck_WX~}%(LMfNg_~EU2@+>r>+A8X2 zzG6g3{3ePh-x$J3t06u-hk#sg)@-a(If~;Fz`r(_jBnFI7b>K1E%&X`+_kHSi*%KMce_EJuUNUTQ58ulNdU|Dk_rxN(ox9_G5huQo3>3n!B^mj=& z9CUsGC>;M8H?@q+S(&gmUil#+CxX`oe?$v}yB>8Aitb1G!-8lcm7ep5reBAig5hP% z+^>qjR@{ug?G1JOC%)#ylzq%6TY`;*FOWrYf?ufgMJV_h-U_r&Fu%cs?ER-C-QNch*07Upvd?4kIzHHr#BM;hovia;~k(P4E>cMqKTSs6d1c9 zVUFvG<#!4hhOPlR6*k2vvuy`vhPf^iSYepMu5KANB3EV~tA(qf2{a_+ z!cZ`Di7>f&9CNx{csGK}xvCF{Bpso2e2A2J2lIioqt!Yvgv_s5E7rM5Ms{30dJZ)GG`8Wos zTw$hfN~+VGL#)(I4v1C3SUx?4UuaCKowV#+OW~n_ z=ZKKMdkaLY9W_LmLR+B@)kPYj^mMfa>lPFsN0g?33(vF=1SfW0zbXhT^fS(Yh@^9?UIqN8 zLIcV^mGCY^4qPAJ3SZMs!j8AtWm8dSDhUoCAKVIFlTVnBCAlIkOlEGYCuV`Rs_WD; zcWSw`h0QCqLMkFTXtnV>*QR(zzI zEhT!#OH~?GS|XaMZTi;xHqZJ@@QaemcFJ+hFkB^~^-VzF;#=sgFs0>c8d2D+l7*I; zXgthQNOwF{go3{|wtkRtN-D0lVBJxq^(}r%(;{Jxev=dwrxiyps{gyQ)xRCe&e$lN zZ{9ZBd{ix_t^RxuX2$He0MW$WKGIlsL8Ny?e`0v4>;&}6iTE*)Cep~Dn+Sq};6xA@ zY-kP*l)ebp5o4wQ42HpX6{LMecM6n@{V|zPxO3#l#3@c?pPA`cgVJ2shfg*d!zQI{ zOS~4kzrhEy^vl53{uYJ|=u-Or*Tw_#{>=VPFil$i1oZe#p&v96PW~~b{~gvjwP~@= z@=our2`S5f$*JDv*;(m)(87~@UK~t2P_fNhhLYAX_6gVx&GxsQfp)Ie(xpxsRarB6 z)5`8Am>@e5;RK%5O&SCuobT&DM<(aXE&p*8P|!yjX!-A0<}5~nM?jaBf02^&L;FnN zn~2VXpoQ$y+uoW|I0w?v4T>>s44hoAYpq%fDR@(my?;hSD4C;DYx7f_w*AFq1ixi_ zC$VLhb~IQ!=U+L^J4t0YeQIQG?mf+f|D{@-ASKZ6M%`RhxB2HUzm;5;d`j`#bN+N@c8ZqxuN^8PpaQctj_nX|CS?1|oMr#Np=du>buQ*awFq? ze(T^h>j-A@|3_-G?<4T?M<}X7W$J1^Q8#3vL5SjlDV28j5dYtvWtMK0OPh6JQn+Z` z>dEbN(ezegDOS_7jsSpGV{#Q>e`|e7jnZ02xhXz+8suTnWf!s4gvM3io<7!R*Mc}( ze5bsDSn&|ArA##Z3GS594HvpztEyL|uX9wmdUIl%PqVE;bVye^8xggMymuJj^2-l2 zl(eP;J-%0l!Wst!FLlN^P?SrL$S{&GBeEb8?*I&pAjwD0Z=YYe5c58*hQ$ZQOqK(R zSG=wVGbQ(IxxXMuh`0>c7@a7}mwUedrNB9fEmjgmKsfH3BNo%6GU=NW@4}MPuA6D5 zKh}rrLDz{2I4>oiz z#FsK^qxLAoLg^q`YqQ^7DiPi$uz85&$))Z(B!~0N+}S#dD&#dwvR(z@%(FOoK03c? z4QLxghMBoa(nXG0-9Pb8e{8KQ+H=%QW~r(Es!7)|WSWg0@`(rQX75g4k0<<*lXV;A zt%d>S);E{@v?m}P-Zc)BOo+hN0@01HnW1p;$0xSc7G51DYfJ5YFTm`Mulm)u57(u+ zn=k~T7+(N4E0keS6`S(!uQ@-2??~MUHvU{sHdgO}z!s1^LL;|82M1TG zSg$`OViF`5l-QAcIl$W3^Ro2K>Jm|qs#N)yl2QpVU(J0#qn>>IOIJ=eSaA!d0XDZ zr?Z;~a$99wrUvn?RTG8nt!HYUd{ZtwGCEbOBS05>uzRV8sP+4#t@zb|A3$6%y|mcM zq~N`}E}&eq@>BUOG8&r1*VcYuzJk|h6ew^kSkv$rYaLtpxj+87&PXG$QTU0{ z4y#VVZx(|7x>?!&cZ@efm-Meyd~Y`b)9$$<9#$eyZt6Vp7kSw?N_dKl*Pg{22D8l2 z5bqJ=j6^XHTO`mOJ8oj|`M ztYd!Df#RN4`?ZN61s`$1wwcUr0;*#AktKakaFzg~iRs~U9fqm{n zM>-yDf$hU)5$GcvepV>o*aP-RoH0G;h!!^8UkMDtV0aUKeARE(EapmmeuC-7i~omk z%SBlbR-ZU2I!BFV+bq7mc*sBKwlU5ikypz$>-2=Dfd=~ca6{#PUK03rp_Om`LpUPe zIZ!Uc`n)gW^wgq)2qHk(y{;;AS^ot)NXUc`U7V6(UO%J%F|EJcGY_QC&-%UZQ)2!4 zNsM2{{<$`vgJ+O`f|}n)0u|phNpRIl)E{6bkPgsHIT>g?4ymL{0hX_z@&=TbJ5V0s zCMxWDtK+<`4MXmwtp0~qhZhZLDtKF{{{Qfw;xBobbeYky^3bgAGJNvzN)T)D9hYt` zYbu+1yI)i}wOdGy2pqVzCX$mwz?0U|u{gM~F)*Q#Am91gqrAb3Nq9zkH_(jflejaV zWJ&4y|M+%4XO4B3AQ}1p_)FaQD=^stUV=*n%-i1Ta`$=n&I1g}>uV-!V&Q+$dT4y{ zd`0}QW-`=HROj1n4guRk6-GIW8qnY$iQbYeSgGj_mv%>3>{SfrvPhn~mU2Z}3 zccQ)hYa;r3Q?CK}8uaq!qQrg!Jb>cyIhKdaATe>pGFY5rAtBZy4BPKiq^}ECzoa*1 zGj-&96UR_IKD7^-EneXJse)lO@-^&qjuOTu>tDDb$idIQ_NMmn7*RT5sWH<~Jm*I> zZyJgrZBwKTk=Nr*{eJ1guxBpat<1aIt2^+e`x~rYQYU$~kpgB$t)N3NpV_cE^k1dk z!!Z6cmN2jj+TvwF+{fUrH;9zLiO1CZlVR6{uw+PKZ1ELERh@TCD()h1s`_2fi+!s^il3evg z5RKM-B4CpQea6;C1{fs$Ma;DuEemRD`>7+fPk~avL^VuZk*Kj{-^b$j_VE_Yapmqc zgMYsZP5a&Tg!6bcA4sSIvSLn(RdC$M62o1p2ZFS8vrE}Xr)6Qzm`6w#WJ?8Zm{4tK zbuZ}$Z_TpwgoeT4&Y$(;YD!^FMieU;!idlZ?LWi;@bDi+%4SV$^ox2K$(s~$CPK6X zO%QVMm!5;NVdi7h8I0;{^Y}1Jy?K8z404PUzyS;>FkzOg3y9N;2AN71%pPh8 z#UuvR~3NA=?!u zJFb^9Wzq8K`1DVp5tN(B1K0H|*z=cJbFrmT*yrykZI1=t`%8kd66Acpu!8WN;8|Tp zl=-{^$aEmxl#sk{jkFioZ)mBayD!@WpmcFa95E>hy_dpwd!c)-r+|&+hgO5pB(_I7 zP;o!xrb7Pbw*sz3fRP{i49_0ElS=b^E++-iD!Pw}~W*LIjP%0;seM{}Vr#+$cZWvooG{+zNw!X#D1En*s zvSEmG5uTRtn%(EWiVFk;Zs7qj{5?I+`x;sGv4PFYtZ1 zV5f3-Cse?qE?949H`~*9K894;zR`WX>v*OpSHxqd+ww@X!P+gx!uBW2|6}kmo>@M2 zLNhELWyHJgPr?6Tamo>d#W`RcYllDUl(7Ap>5)LDQd9nf^MGiaYudo{e#&i+f&ZZa zALoo(ciN1v=ZX5h$%Na56s2>%cK3@g_j8a5b{{g{ne?@%D_{H#`d94o8yN8B5PYbB`YHxknDhWq~v!5H;AuGrKF2I)%;t#c=_$@*_-*? zkDD}-efV4DK5=%|?KIik1PK}}p#@r~g&T0>Xr87PW}%*L32=UX#TRkD=rMSd2Ydp3 z9It_R^W41}bZNWh_5?8KE=R$;n3gAVe$#Gc(T>6125iy(WXrPH-GKi#6H4#U8cj^`HR><2lB*eM{%sHV` zm4?z}21JGwkd^8!C^4vYuL2;-hzG?i^_{A;{Xn7n0!MPTKx95WTlMVAk#WF?PYJfP zJE>Jm>3F(1{uOIFI!E?E(Mxly>4t?@IbE(5BkdnEND(=LZYXRjjY#;gs-sPOsOQ z|8mFo#;>@s@JD>5G|KV9qoA%Qoq{~&8WDUagHtme+yPcx>&-b6s22mzmU{piDq>nGLC_ocNd8e@e{U?w1~8QP-jz-;c00>80ytma&6Ytp0q1SG zhy?g|&OFbPei})i`M5CB8!>cQLAcylX2kA+6>lM6;7*?y77+V6_^J_0b1rxdIO*2~rLHBiW4_XT7eR0+yc*wN*7T># zvtOr@BpwH|)%*JW9)%HoN)nKGck^ zg?>I=buL|)7{0_~2pHf80;b7}i7bbBS^3?8Ha5-+9wR9YF>(IclW7*Da6hdCw_pDr z%{CQt)GH}VU(hnF-yC{tP$R}Sr6kHuqrTPq#8&OH5Tl3ONafC{nrF8HFb%@( z7qqZcX$aV#N)vg-kb@mx26AU)5ioqv|34AW`;f1#W0y zI-oHwMp(?eM{+IY8S+-S4aT#fs;wFFs*qTj=}9Y>LR4Lxw*+G2mF)fU6)1VrKi@r4 z46dON_Rzx!FgJ*M7)riW^&F30hIl86v+UUu|6Q_(A*<0h0wr9I%^P9VCv+bk-EeDz z8z94z5NoB0r~DUo9iWKG^_p&(!D=r2$CDF-Z&EcMULjJ630mfr0j}Bzxx)fqiu*7M z9>AV=D_kCve=k=FGX1e!e(Sy-^4Zlq{`lP><8rLGq=}C?c*~Yr7Fv49%IjHaC3Q!3 zt&u8BJQblv$m2qq&SP)$J0LSh>34PO6Gi_`>ko!S5o2m(9(>l|;MzeWohWS3X!Ohk zp&sMAo4~bA^?jRi@(Wu3$2sl4lrnbd5L6t6;8)e;uHpy$^wlQN=Y*q7Dm zX+*D!*XkjvhO0CtjK!641HF}LAeZ$1CBS*ut+Q<1i9Z`KUXjJm)H8FD^dpvdAEdZr z9#C>IURC}40UBykxDNhLJS0BEZt2o_(ru7}*{P1#lPX8dm@EEJUbIk(>CMBm>lsd&FIesu-kapOgp_fqkwdtE% z1K8sQo3==Wa7y-|>!E-2SP0?bkV(X*0GoLd4MTa6*8HyVMt>72`5p!L8jX`lIAao(2D3!X)NM(Qth9Jl&1 z(#4_e_b2Pp9z6_e?nf=ZA|2g&_Cod$lFJzpjHA&2uuSlXt9Vx7wZr@nu4_*P^f20> zpKaY_K|+2V5`tC>x`*O>o;je5Mo^+Ozc5ZDD>scJfaU>;$FvE1%2GKU3+<)yD>V`1 zZXhz#?k^r!qkj$u1^G~D;~*PDVQi9?cDl{|i7woN*%j3Vt=B6LB5*OE`nG-O2Tb%} z`PTlCwY)FcFD21pg1}{^3PxZFO7P~$2o-~y`PG5h7OG25onD{3T1{Flvrr1AMP39d z7_^SQ<;?$(B-)kwB4A+16-u6Bn;<1lQGb*Jh|)3OrUR_E+;34@Z%^YPinnTxM0=03 zw1~D&WbFUFWt#ez%g+jAu6!uiFpMSVobgSG*ZR&bYv;E!*{d^{a6oW2()uLH*^-|D zNd-cv4tN#hfhM30&>i+CEWz6yriH@HXd9s^BR!@!p8-JwEej!VV!C`D$1+2OB%sWs z&Bz0%P9D!~dFMQuz_9ky9hurFhhYYbk1m*~K|~1ge0GY`iUn7QJw(O=`ISc(1#CCU8lbfH$Vgppp)eC>2#AugSCoY%iwH(n^HN88sv_pTjBKJfzAT z>c2wJpJ?M}KE_Qreg`E~nl4Klor2SL4(b9WAJZG4J`%v!!nVyey5WtyXlq2O0CH}E zQ2UWasoKA^2%;cs0V_E&w+EVZACF6IY^mtV2~;7ygR=Yn#s98&t;p@#{JJ<;M|pV^ z9=3g@Y{}t)b$irvAU0Cn6`k!8uUMc(@WlPE?Ea8(#ppzndkpv_Q&jdnT21RC$(;> zn}dAy-dN*Ui2~c?^wJ$gK~O1z(-MAZ?h+(+Hz9)nh<-j=vo>>SV*QS#sy*!#ZdQ%> zV*oqE=bHV(r<}szXU*+rP4zDM)TF^m><-fOG2 zwau)`donlhcEP;|)|39SCWNBlY#t>tAP27H!C5)_5dHG`8M5sm=6=xwv5tY0WJMx2L2F9B!<;sFY5zNdJk8)yzrSWdgqu4V`hu-r3k%a3AI5WK^W zBMR7Oi&2Gg1muMlBIpKMWdF0o28#y3?iXztuY$wpSGb@PuC9Q0aT-~Mn&**~Cvr@0 z>dbaCA7%$=-k8qNT2EsUG2s)bCPGn7_s$5-;-egqYag+git|sHb{cOt=3B9yDVp_L zxoSwEgl4H4;TCmIUcnwQEb@-7wlnipq|l^0wIHyki#KEw`E8^Zq*G7%rdL#ZT+$c${9^6H#mUhi-Nw{sX|RAXunuxEHqCHr&`UQJTSJB z9yS@hX06paRvxb#_qm%MO*p0rx_ zi#g0LL52qTE?DG2Gs8;Jn7TIzr%{tV) zk16vu;WgHeLx1}q%(Vw$>^anWq?`b64l8zxCw{vNh8p*UR`5t*3Sl_A2hfqmpE#l)Up;T+&{^0Xc?#ILJq3;eHK=XI+!)#7;_gou zYDgu0g)JOa^Dnm=R1P6URJKHk;$KCtcpTk|M11W@x2qbICvZwUoBuyM&8qaF4DS5J zkwqWo{9Hms-q`}Shc*o*W=+p=`byE7yIKZzLgQvnyt?4}ezS+vv!oB|V>|H>Skz6yg=( z2Ll0wxrtc@l07?>o$tnWk9R-magWw54z>b3#)f5>Cp&7TPIPauP7YPAhdfm zsz>GIjrcghW+t)|yaYR!fDvaYoL!hhJUzcZ5)D=9+z^?)>F<&$`bO_HL-Yf>CnTrQ ziP|zRZY-`tKGqEJM;n5J_&fJ?oWx!JuH`6RA=-ZZ>fHZ#!S(waB#t)I{Et^uB>7Ty z|N7f{Ac%f>-U;yoDW>VWT^0KC)^-6#l!%BUYc&e|5Dn<>;eYn)==0@%4tlik{i|sh zCOFxMP{@?8DU2fn*^?RyuILQ(jlYe8KpL=z__?sWXP*#3m_}5?I>!cX#FJfVFI;{N zO%`a0Q$AMk{LYwnTbBcg!q+(~Q`EYYHk6m}yWOtVwUQZJBtyM2oTh5!?h{9}@?KoB zp^1d$tsE_ZJjb4v>h~_&VX^?=4R5@xDQ;Zvr|`0g4~&J4lYY~6n6e?k0Ald z$WeoYp{cyJ9n6mR14X%7DjwHEv|qiH{C^zagJ_2JejE0)Z6lUmT^IRuq3;}*9T;Ui zWjs24^Sij|CD{~Ks2x`vE=LVvVXQP*bPR?YO-9tKxP)a+bpX_(%bVD`Eef|0gK8-C zsuGjZP$2Ez`ti9_J?W{Nt%6*Y9mPD*+6N?O`o^95{mSWl<%SppifP)ZhH6EcH;SlkGRW*c2 z=6(c|j8{Ux?n`bcvLG}vEy(!hIe>?L@+6h-cMN&1d{JtpUi!-_KpQM}x42}H+I)ul zHqVL|lHxH_hR>jh+aCG9@lm;zWz-*Yaa}<^wsytOm%wuRFqHH64Rq$~{%;)}_+4QAxYSz16n_c;C`I-e$4};6m0eCj`wkG%by5V9{R30>G2Nkop z>ua09x9vQHpvwz(RE1-XVNTvOU>GJDw1Cv-SV|=nNMuS)146=e8=6x{gj^iKHM6w0 z!n)xGLJY(5dL7C-5Q5Gz^G9>sSii^mU2Qa&Hg%<-z?vv44j9n*0F zRg=0uRPI3WtKDvIN<10Qsu30W4i*7gu4LgZ9!%9(0@pZnRjn2AEaH?FsOXe=S4I5Pubc`|jE+{{{nfBZf|YE+5QFV2>86%z z#}5w(Rfsh0i(C$|H<~n{I{06?$SWBGj;Q z6iNxYPccw9J?8WSWLccBb?h31_oliZnu{x}59&3ttDCpu}|jjG1_ zLk6V8vEa;7!k$sPS*7JZ4Nr{VBuC>7D=X z#QIdw2Vj<9KN5L}XjCj6m-HVddq*-CY4|kUIxc;T%#h5`v%m$B$LMyY94;B~YTG!I zA?@rk@jD_|hP-vvtRXF*L43QPvKaXanc<_aWIMu+|DE*Y+SDE^d{Kt6_!`+1FK3-R zL7$U9m8zOqApzoyydish@g^haGuD!=>+lJNKYH(qQ9HTe~e*1JZb1%yjlHt z@9uM+%qCKxj|1aoSFP7g!lb&A7#992hvtFv8O3((&roayVj-f`N}Y$$f4!2VHs<1gAVLqB+d_c zkxpW`q7d#k2=(V|GOt)|Tm6z}^p1%(j<#QSzKj10)UqEoNjY<#6_&3fO`XnUR$xa< zL0#pvGmv7&!tL#$0fL2;$yKCoA?6!L8t+uSS%oP)JtpML$G@abN%u(0e!!pYy_4CenLZ-orN0s|my5km0keHSDIx>=}{34n;M%*+t`U14j&? z^+a@BEVx`YH}x z+a`K*oa)g^wJqCV_-cYuxOB}feRai8>KQTcwOejl&|Wy;8K4gW%MW*J!{ROcQssq# zZfOsYgz0EX zn$JGR)w4~()uVkk1r9mI`U*OivMFGdqoZsq%676QO^T9QsxEe6yUiE8KGCK8L3ORJ zb<`B12C%2tev{eOqPtMnl_p} z8yZS%*gU2DHd8HI95IBIKlxiBDFp4YoJpgXl zIlJlY0b8~Q4#G`VNI^nS(;&M^Ny{^h66%)L5*G1c?PMOc_EY*LV=5Zl0NjnRPVe$J z@ZqDie{2c6K{>%I#rTos`(ADj)6lZ$S31V&seAoKzzqd5#nx4IBOz-20OdSEjr3k`IRGs?-E$@meWEp8zXe^jRxLx+ z)Uu@J{*PM;r{^tTP$0v77z>?6aBa>|xanz=MYdH$tq|W7DD9a)><37loVXKut7&s= zo(N{!=L50xf^M}Ag2a>_nv!tj_3yL2TDe63S`;ukH)`?5=a4`3V6%ph=msp(kEtv5 zlzA=Dca^6VWX92>T82SSHv_&4P!Cju?3LG9J;URy;o| z<+8r2uL`C9NXX59%?FqIeTjuPIBvWB;}TAo5$xBtuULSuhe$)&FNzFtKG%8sdDUvl zMIIq7Q83U(0dWQsgb5m_jglcJkVSnkB_u_U7<-mAT_wZGATKFd!+MowR3bRV;CY~e zj$G(1MzjytV*`Ew9C5?C-FII>uVu`-#oyqoy(BMHUFj)B?^+Mfq~D-EH{aVst10+( zkU{j*-h3-g8^h~nI9$T2sh^htK3Ze)QiSim6Sb5(25zA4QF?H$>T@70xzU+hV!UmcwQ@PJ4YQnqZ|*#XrF12?fiqz zByVqX0o2i-%`lTEA@F-$sTK$a)I99|P8A)wu*33hmB}o{n&oDi(LK58Q4@KYO+7D+ zc4syn|G)PM)etiMiap{ww&0h?Z(LW`mwnUMN0!02uJ-U-Jb#A9IR5QwHjeWYwa#f5 zGYf{rTVJdXh78y9mAc58Z8|_Z{P6|tP%hHK;>m%hQLHrQ{Bfb0x@eyMzLzFTB$0Hwqktbtgl! zBYzdv;KUTU4=W!JFMC-1j9C}~_5$sQN)=Izc8;$N%Nb^tHL9)p%|{PSW?5u8)_Q9Y zkJ4OOMKidGmye&v+<3dE?#M?NROg=+)-Tp|-F8o48@ym5b;89NF;y@3MaD?d-0`(( zndjd)PTpDbH3@uU&H`({l|p$l9QFeOvOed5F}Za&G#-PO3(sLT-W^pZL7@)~RU zQB3i5d`zuiDOalT8ZhT zpg(WoRd^JYOvGrTB@E<*tcX0WL2hdE;RDNs;{6H_yj(HlfILjCGO^4bT!5DCEW%fD zFnsI#)p#Fn%{_B~uf(jV_`g_Dr#403VlSAAe1sfJ6iqgTXWBHLcmj(H+eYxDF>J04 zg10v)j+A`-I8={9)E$8XEnv9{=qj$$b?4_=+@1GMo%pwZkf=C|&aT@Prb9Cg>z+;P z4OVXPUwJ+||t# zhjRt=k(ScB+#D}lV1|6_mUJUkk`PDE^z%x}mvqgd-G?+0j=XD^NH)=1xObyqx0_q- zDU^%xGo+miQCi4Vv6|PQ=rLRBJiRolMKri4xglfDJ$e~8P6j#@V_cp|(BD+$Z%Hmm z1Zy|my&ufc3b&830Q~P4^Xr839+WQb(JP)}#u9La*F1_ng+;&gVT#R zai|;GL_}UsdV{3S>KGStIQqAhjy4$UZSa}*nZ)n%XJf$`f2!}F5e~XrldTw^%K8_a zZ6CAG%JJL!6T48o=+hII>4vRB#hVe}?WxDR0Sa(aTY&XuuWT-WAN3#(wh>Hs+^C(O z1vk9M_f1TlT#Hfo5rqSF>mirf{`@TB3L}hNc3(x{iZlUlr!)=~cD6M>vh9NRz#R*n zGuxk)g)C7_-}4w&*_n78TpMXU7`q_rtlloYiPc1&9buvl84s;d*3`jdp=n@9BjZKg ze*oDxS+cQ2LwQ@#B%oRBK`;cIwWa!;NLE2IQ%M)y}PlO=-PfTp$; zY0^@m6)wc5A?PDh&I)Zp12+TCPix&Mtv`Kqa=R=nh2rMnKOhe7&2 z=2{ho<>Lxc*gzgQQs&!|kIX>mva$i!Ov|_;Gr$fO(PAm)%IvETSI2{tW=+yFJLX(`DLcBCy zF%n}5BY~74Bs>ykK*;tg8ri%AN>~yi0?DC97%zzuvIGu*d&GWczy8wOUnRKDJ%uI6 z1iE0iXp(|Tp%S?#u^B`|GVho5PJ8u`M%T-;HeS!f5ozI>$fJofZOTN_B-%bglWcPz z>~6m>npsxq_?+|I`{#xaHD)*09^Rzz)Crc>D=D%l&T5!uOIZ&W&hdWTUAMw;O2gZk z+PS1B4?pqi4u0PicO)H@)xOr8uay2}HX%_`fhOnN4E6$?3-7x1%0CVNfq=v?skCX? zXED@uD>3&fW%24|l_p!gnH+rrw-?4*u-LrSEr^enH%$N!IF#fMoC|sS(lYGqm@b|DI9{1omzAl%bH&d`SA?kELp{ZqiR~g6+j`RL|Tv)w8ANr2`~bYT*!){iBsaU@##X1E^Oz9a@M39(XNX5{!r>k8BDm)?T)K^^vDoBFMK$EPN z5*4ok39SIqv^yys;x_<*Gb6eRRoDfbTwiAuNnuN<3S_{Ow5wDFtFVQ(@LAnessd7I z5^e>dph8%xL={p6s^Ar1LQIgUa8ff8h6+}J6(T}SNUWPGScO%XA~-zm0r$=c^J{yq z)thq!(U`>DRiL%&L%qxS`1SBqcP0q{i5yZSGOXElfe_z}zHMaFiwTM6dE4h1@e1ec zcEp2#wc`Az`1V>gwWyZZHMgHvMx!2u`X1 ztL4AAyc`jD-B^KAqGU;|lVvQit`vc3o!d)5f)f!7?d=rnLIDuPj8NE}I@WB%GV1$x zGse_KzOWd4Z2KvW{3_l#Kx*)fSS&Ys;c#O2MGmrv{-+- zfS~ZSwgrNFPqJA~;{ZzyB)xBUPwnpb6s;S@5i+tQe~>e&{b#yU&H0F@R-}o;orujj zfO^YDG)Niu@?>vNb3XxWn1_aka(0k|v3AG=?Sfns?z@&R=~SN|FHDG~LD=341}Au2 z6ShQeCJK}BQuNpEdIEvn{n8;?f+S3TpXhEaUjy7{Et+hwL?e>X_lyCl&80-tH9n#~ zyOx&5Y2b8JvGWy5*6nE;f4}50Wk2-SiaEn3h2A=iyLT=^98nS#MGx4$^ZO*_J<+?> zk*#DuT?;*tG})+MX*qd%MexRC{&kx0mYIJ$cBT{%WD=i=D|^S+BmIc5N1{|=AyH$5 z)p7LZ#n6Z^pY?6wr2s+S&tRnl-WA1vCp+l$m|d5XJd>8vRSZw-H1V#*Tcb`+5)??( zL-3uaPk9WV5?ol1S?l)!|EBmPb{iw(5Y_97s00{E4>jmoVFxK91s#OcLE>GOEcMjq zoX=}@sHb&EBI>;oY}fOf!ll(h0o%nbGM9jq_+1k2ZE%8RmMc@b1ru=v7EnFaP8g7V^r zdQw!{t$U@}zKFCgVF#x7zUSZc(f3F67$vQ^Y7Jr|p-08)x|bjrL(TOV21M5#kIi3C zgq%d3Y4tNb>}KdB(a_gFE7m3qi3PscD*J5_Ob@rk=JY@O)Adm6Ei)btKy}AN%^W5N ziH5zj4Lv06N=|L@B}5<>LkNj@^*BGmoleph4orOO9qPX`*&fH55bj$}sC#`Z%WCO; zS>+R9zJ4-5%6n{(Aznz9d7w}2E_x3cuo2Yzy(6avy}ryRt?gMPKdeGs72Gg+`njJ# zfC!6M5Krpy$ByDr$2#pECKYGf40Ss&hs7-T^uEKWxRsHaa;u2#OWMnOsu8NpE9*Wc zdusj9M9m&5rP9iJT@76a+)SJ#O3k!=YfCO;V+ZR|uQEAz0v5?|@YCbmuVPG+@YuD* zg0|?TGsLhVrslhaxm$|>-$z09O>@_boVSZ;)52p?DYJA`>js2^$i7z3YOq z?c!hf0|lpv1RS0s9qQ|d3q^wZb&H9@Ny#$7I%!4y7!3m#p0E>2PYMN*WB^4#y1ytA zh62~HW2>u;GX{0fjWvP@Y!vhO2vJW67q$ok`khYk^&>L zbH_vdnT$Ao@aq@f@5?t|Y{2~^^dlh9D!B)T^l%k>1#FvfDQR&`CMPlaJ(lk~IA ztEYM#I&4T~Enw%b^?!J7`5XuOGMz+EP_N55DwncYx>YQw_^pX-@QM0Z0wp|is);{B zDO0omBI4Afpp$@1Im8`?6HHc69Wv4uAB%zA@^D=2 z_UTrKB`TS4=zG^shVGqNVZu@RdLou#tLn$-M@Ej3 z?@Yx_h|8UOb2hee`@gAbr2OBh2vm%{%=;aU;972qq}O6r*Ep0&54VKX3HIU_LZk)e zUub|p`0Su2G%J!$a=9C~=MffD8TfhkGl?V?rW7gJSR~#q9i-;3`)(S{(0}n}r0#?l zJihsJXbE$09PROLcV6j8#KpZMY=$U>mnUq>*_{YIH%Tv53AnwGiX*Bg*q$p3TxI>= zzACRQh9+{E(z_;}+J(+j1{&#E9_la**ZXRqe{1HEt0__}s&nffll0yepR;ZGE|2?# z6yh*qOOGU$*;D&XZuk+3VhCY1@!*P8?fghiJpRCcLqKTLU5%vu^m#a!=nEi1yLD^y z1y5AkkDS=Fe_;Q21%XvLavr%(Vj;QB@@pZJYJjGl^{6&Nx6o3Jc$K(v@$qP_1w?J4 z5-zQ&6_y!yZXM)TaYb34b#h(0GUrVIAD-;+V>yD;r0)lr@`;yjSh!)r>}g3=#7%^@+A4b$EBS*4!W^ zQ?TPwJx`qx&RiOiGkJipQlL5?*T|zT%&NYxzPjbL`la_-H7F!{|A_7FE|)R~`n!0# zvzTLw)LG)gJAKUO1d=i7L4A8<;R&Qu`V}45h(LULi>_55h70{OK=)PWu}km`L4r@u zgpJ(gd4ha4;6|Z4+k1<+ZG1;lZ^YBzzZ9xc|JtSgm1gXge3Yr+`joy{Iv81ZcWH`+ zG8JKMVMz1Y-UQus%9ur<^)!k#iThA6<^hC_}iN{(-VA9Zc`D4nP2w~UgaGxH8d zA>4pN2T%mAB6`LH`{V4Wy#?&wX8)K$d^;4_mT+L1xUztv343virSdw(Me^t_Ue=wD zFrE@KIcx!|6KZT=Z-et6uz|U&Nw)00Z!nmAut4w~)eG#!T>Q8h!tKgeIrX-f=`cMo zE4;ee`Hfxi)67FWn10xLdaBf>iB2&97#wG}jd%4I6fiou{Z=9C0ti7F=mKOqdjaor zw=XmL6{Ifi5c}};9k0;NJt6Vy^|{8J5(ow(3x_hn4-4LPoU2R`r{!G6KK zs$(w)bHJ5CX7%g@z!78vH0My=*}Daw*cratA1!A!7d-5`eYKq=1fwI(+UHZbV>t75 z4!#CW_UMYXos0!H^Du!K-i{>(WF|yVJ#C5?`@A^040a$9BI3=pg7@zmAQ65_S(xx< zUbJ^Plbp*eP-z%iaPf{QPu}3U@arcLuPOSk9^$~3W(Ib_RlIOXC+(aH;I1^*uq@5w z*_^{Q<=NQ3q>w}9PyD+*%<-CKiuQqW@Bg&5mGHW;)=l_zwUnTLBU0U4sca zZ1VLwXjQz2GhXd^ov7Bx+tlNue8KnI*9yWVS*+cANYt$BR2A!F;ioWa!n~uU$N}jZ z$J*m#eQ{s(@IE-w<4P(ShWv-wp@Y*)nSCL&J6oI(hK+OMl^m)1hqIcKhZuQ&5)cpm zk@C{J%0D5XHdH#s2yh`Q{#BZulW5_`qGskkZwC>j{=Gb28{lg^cJbIWX)Yj=eb1%s zVi+xykegU7^~-vyT3X!RSDl__mqktJpJLoaF5AqDNuisuNUOC$hyM&UGHkPm4x=zO zp$hSm4jUy5alL(+hg#0{4l^mg*)_e0*Aq>4BH=f9k7UE6t9C*6S@gt4V03|lD$x%j zVB#rhz?0!GbgnZ=U*xlU`yW2We33DB=hFStc5{hYWQHAcq#{Dj1C%{Hy#2`aSf>nqGr-E(XZ`k@!}%oY3kXsE%!O16P}-brW}$K;W$3Eg?` zinOq0D7?k#lB=l2R3g3vqC%l!elpV4w8@y8{ zrW}LjEgk-@Zu#oaxO!`|r-Refs=SA_99TS{1y@c$`h>4T&!%9OP+geTHKWR1YY5|7 z`;HR6*T-gD#c##iWwJ4J-s9wR*YFw{xg^H7g2B?1gZ;Q4kGJX}2ggAWnHw^rS zT4Ih%eH|(pBgG-4R&_0(77LD!=&WV+T8b{pz!3Z9lv}h|3lSM{3Y#*6&0!0MhoPFc z;~L|RBTI3ev-el)bnkEwi?OPy_^1j}L0A2*iNo8S0b~)XN6v(i3+T1bMBagp>vSfq zC0*tPLF<* z*xE_ypj9X<-uyvjpAi(%H<(k6%f)cp;6+8kT*Hea#O4MDl| z<&|oB@txWKuPTAX{?;nZjhoOkA+>dYa1n)>`Q;@M3N0|P8%MGd`N7(4roP@7#ev?Nk8MmCj zT6fRKh1|Mf-oAU}`sEl81mL1tQO_551{+30+veyr4t&u9bL&ORdQ7gfI4AjeGJMa) z-6oVyCB1BLiUgrGVM`D+({VLFlIRG%&KubW#x{<^7? zGi5fpDDo=|uGW^m2A)XG_L~%?#ZZ_R72Jw0+(B$XY;f0jKS#SpiFqw@TTtThFYW0H(9jjF5AuzruY4Vzu*5Zp0(U2@jtE>;pt5q` zjhJ}#kzG_u*e~9@xUyn8y?7_)i0(C0XQUhBaqgtT@r9UT%9jAv0ktxywvygBhW z>X35~{Tau}$Q!xly@xy9OK!~P&x3M>jGhv{S7Sp13VBb$M58k@o$naZlOHK8DI8+{R+ z2?W3ynPkamM?I!T|0@qj*rBDDNagq(!Pv2e)Vwe$x=SxObuzYT6YtJmtlMiOvnE8RN(`wu{LcuK9a~PJ{N#S6D_2EmmPk}p#sd8@ z#wIv9K9?=`uV#a)66q2FHdBYv@8jOvZuj_S6AtsjBQ2$$!$lL^&4Yw!Rqj?q0mT}u z5g#HTk%0&Mc%whf8wCLkW^fu$bgwjT1qUl-%JmuAR`y!7@5HO z3S%2{b0!(OOWgb4)3@yQfSsK$$aP`cy6d;67P?Pme*AXkk=Ogu=d0p_#Mt))uS&K4 zX56j-od0I+U3X*q5m7~L!&Q1Pa_|NJ}n zjO*);md_h|Zcld%VUE_aFq}@arl)&N@<%+mV6%Q&WQ<>Q)DqvrbrZpB_BA$IK6^Q5 zmKAYNeHxs#vqTktGi@Cb8j^?~H9)-q(3ASy3nfhbQ&&N_8~-3uwH>3pTgdpF`-`CB zQnh_`m&bU&>!rr80Bq`@U#;?ZRENIxITOOWxV~<<2RDG&o?~5fpRWMX<{2szgH2I5 z0U`oW3{V5WP6CO#DzXo$%aeusF@Du|hvmG(*{!zGPvO*j|7UA#mly2ziAHO)8|*_| z?U_W9s-mu7U;V2LqrXZkRDpfBpXQ7A^vxxxU+hDY24G(=lj2e)l=DahLS~+0_EY`^ z4v0m(m=%U-ZunJj6xLgRb6>_xl-!VIM!J$a2S@`Jne};CvQ@3mMEt#p*Zdticv5ef zJO|C;81bW_O`I}-Hokl&Y~1IkjCn!LH{1>SO0rs=_>yU{o3VT!=XL`u;xSjp8`h;( znG^nYv#7Z47JaYzvX@kY$H4Nh8*P&Z2}=u#M_!tM4StRE?puvt`(-lWcMQ?o%+u%Z z@-13O$I(0=J^a#7cqf2CK-nJ@&)2hFpu}@#^u(Oh8%br#R6h$d%I#dkrFdc!{&jZH zmkWHb=ceVm{EqZ*9zhPSMlaS z&r5=3k$}u6RO#N9bzVUnb3Ler-Ag~O;iYc%w|5&l%DlwEji1&6nasn?e1#0|X%e0J z5H#_xx_j?FzQpzHqS(}gngcd`@61rP*)+q( zMXeBb`IMaU6G>D-R>fD_02^PsIGw`Uvg0VmR#WMXLT6u5ORgo_bs;H6WLD!uml@Gg ze+-fjMU-*4N}?YWQOIn36(FlY!lElUOZXMg5ncU7q=@14wFwiUKRxhYF=xneBRRgh zM3^P)z`i~c?`kJlNFg)P>)>-zuim_ggIwX46p5lf|hMo z@A^L~MhWRHaGjp!*w9m1f>r66uttA?cOwTo>Ac95W^q!1%qkece|h8SMMuw#-g zO)hq*k18io;JDTsT7K}{Gdy>(i(3_(hBj`QG3Jq;0ocI-bn&ISXZ87WHYyZND8CBvmD>iBN@*RB+q?G{H zu*s;jcTNyi%9I^PnUcLv03C|nKUs+oIRGev`aEo1+w~Gwsa#qx@X$o83pKP7l0|v@ z!R*JIRwDe#*~yp)y;-GUjM&%6$>l&=`@-Iulo=7!Yo#pH-g2l*-94!cH5C+yp_CG* zoKheICNIWCQTd8H;#g)zY&Lr^Las@=>`jGxrJ~N|lAdb+g z0Kr*s$iL#gQC9MC{Ri?Wi@nTMU@UW(HRwtGqnI3;g)C!OhR&`#^p_L{ZDJ>{mmUp3 zM5Y;_{8tq(wP5vf6w$JU7y`Ck%cQJN?mYw75R{U+>WtFbhqrx}_TE{uLzdqyTFIIu z!Nf~XN0R{85Verab6?o~E^FkmKYRzefqCjG3dAl_%j8SE`LnKf3efkk3udP2Ogego zSt&?y^jo=|?t&;ca7Ma6h@;K}@pb9E+V_4yXEVoFvmjozs@)?(A|` zR6z9EIs2m^S^27`Y(X3tK9lPe)f9dX6Ka#V&r#7_0P(iEc4`fv0CoI<5rQjZ^nQ%) z>XKGSn`4GENT+admd2^gLxIF1Dja%M#7q7HPV?_w4_Pnl1K0uT{*5NXA|s~aGssW>{| z{I*Q2p0>WC!ZRj|5;{?<*4|~>(Xylimd^HSZ8ngUQq|f6DT6>IOSo>Rg*VtHPtBd3 zC2IS4OjRD)=ZBusEO%NzYfU=IV=hUS0vum#T@QI40%g_k{R4B-8k@mpS`bP)BfQKp zek=p=0xHyYC6EVJ`CvZWjC+pnZYvXY&Lx^I(D~Vh!=K@+@(f$~l#QEQy1q%mkN&v8 zQMXj%>d!Edm+3n%g(h$b_vjf$+wI^~o$=PagmN)ziD8)0WDJ_?sX)br+jB_=mzd7P z^}l2k1q(A=jh2UxYsul@Vh!xSc%coIN`-hpsVW3wm<|%e0VT>Zve_6WUFnIh*z1iF zo$6Tdd?_)+CV)UlUqwKk07anBN~hCAWuo+XNUdw56gouMWM%X#MNc17U~}kLl#NAP zb)28|vO;=z7#l1He?O%o`jsK7P!=?k7^Um8^oR=z^NO-l7RYOa6L5uF>{c>POOxHa z{44z4L4-%F7Rlm-Q8cv&D>?6777T4&Ok+!|3^xs6JYC2P>X=Ob>P#2M);)^}INz5#Ns#{-=TKTT9vAc*7@fa>h%v7in1WMUQk&73R-xGj#g%Mc=D1AhK zM)b%5oWMl3nx0O4#V2E%^5D?Q&vlpvfu9uXRbtSlJcC8nwu_i zLkEE8q#o&BWUBON9xXXB`v8X(DBW{dv7?Q^ilCS*qU8|R_6yYcqajm2zj!Dp&GGVx=On&zvRCiebv%U{Y7 zIXvF{_89MHF2^h&r=7(+TM2a@z*@Bo?ODk(+4ieJ4x&`FD_4f9%u5*=&r{r$h09tf zmTYT77qWt;JY1H$1xpx*f!Gtxf|QPGbi|DZnU1KAh`@u4^ zdVRU(ji>%CNM{MaP2+<5%k?36CBDOnp#baS#xEN4Vi%wh*X{=4@)*~FpiqVbc!KX( zpsWVEPt=W3c!{Weqw|7&cn9jq$zw1I!2zyL{H4}@nb zC{Uf2);w)xMHpX`Ei9a+Op_v{iG!oGi}ryA(Z0zyRktex?^=6X(w5g+7P196K#>hz z@h^!8pwdwU$D5X76%>8W0;OYe!ysjD#0f;#m}MxcFK_H2lo{L_$_Sre$Wn&f%ajoimS}o4NsJ?5508d6kfr>0c2OHncDW zB^_XZLyp8@B}D@k2eqzGEFCW&cBXZRM;#5gBdS`L2yPXdTAe3kkS<(@~lIjiI zN@dGD>!o=WBdBB>sF{OE8yNG?LP3$ zQqb(M6F^X7M@eN#(-Wivo_dKc2rX*FQlwgz?BPC{v3?{;j=KL{x4K;P@e+?!EYk*Y z#cMSx>JgL93)7jwsM?}#l8KI$jj~hND)J(hYsbAG|Jyd+7b;veja*p*;W3-#GJC{* z3RGmSsrLTiXa+(H3w}7(r-CeOO~Ue>QC*8=I3Yj_dZrE)B7R#-3`HGc}BeniS z`RRY2U7W(H)+k$teb{=ER@Z7_5pOY@P`(n&`T+7&{m0;=3RYjxFen~S90f?`YcUI$ z>si|kU&CSV!I}vwXuM_)uc-YS?XQm@n;YHZ3|2IJWYL5Y|Ek8R?32d*l)zaLH#*gN zpULcCwV(@$U}mHc_G9B;uzusx;s6E$mlGgMAm#=j3td(0P>+mdWp&vz91Skg`ysNH z$b%7s5iOBu{MzMlqF0>c&ym8u@`M!C)Ebd1SZ1U>%9SFSiz$ARQB%i^WZhZI*J4#Y zn=c{RSBtU2LTRvO#Qk`HK}=+^wr5q-Mz=V{BvjVK?L%9$ijF~P>{Xj(qMMx9twbS3 zYI)b+CwvB4oVk`eDKCp&=3^DWtO{Db&z({Ab_+S-G9&GFGZYBbN%$<{1^}5sv?}0J z18kabN?;Yy>r|r(tp91X#H}BrZxw=Tfj9qV>B{29 zh0VN8?vaT|Cq4;lr1p3IqywCoVkTJr1I09HndQH;>}yr8ct+Pi1&6w)?>X;vtSR0p zOvgQuSw!tWvi{sB4}krgPgOhhvS4ic9kS(Gzz4@1#+%*LO41gA~rXG zA~QFFA}lsUM(s42mmF4zDEPmuRfGOvVDH~SP|CmGwS;8*>PeS|2d@yKxio}iTz&7} z+TK}V7>&LCQ$)Y^9y^j9oiV{HNqZUd^M)NiswRC+;OPh@6%6CEl*g4~DEx9t_^CBK zt^br7o|RLa0v}t1{cjkf=ZS6DaJ*YxMD+!6q)uKYsqy2HBb#w_Y&EIprDLFZk=u0D z;f>w=z8%B4YMm~0=}5m0{o$XwZ*$f|3R-8gO$@oe2>V;c)OZh9G1t0heSNNPwHe*1 zvd~jceG0+IN&=-h(U?bI@-%gMk2U5?FYCy1)gjDK{%4b=w6JCW3xN*x{nzws`2NyO zfFQwa(1V30!;sixpN!qNoHG26>+d}6W`{^6l%fzRO``Mi?ghwUIWbMkYhfH2Jy19#s4N zj7|M?{ED6siU&8f<>Q~y3A^NBBSCzs{oW+w$h9_ZHyB+>Z`-`@oGIC|XBc_F>0 zZFyC$y+MsQ2RQ>;-)k;Wyc=T_#qn0mMT$3#FA)Y7NY4BdzFFDdxL_yaAo3w5N=cfO zARO?33Yf)OSM-xZ6{IGFJfMhB&>Sh;GR;V!A##TX zZut>h0pYV8h$>anoQ zG3$5zG>=@up3kzeVwKqT&TY;QI0~_OQAxE?V6Y3~h^~?yvpNp&E@t7p%7;KFRb_ zlBd$>HiRcD@w8N;N={@7iA@!{io}yM6(#q!0Ka(&!$QntXRC*m2Ihma&kKVy=^uK` z&?r3N2a?iYcKuNyOgZ)NVr=V(RigN&NNU+R!wZkhISs_>@o+)t*aId|b4E-AjBLmg zRLM5@n4&!qMU{0fXXwkB;cs}A-VTwlL>P=5jBbf540}0in6Z@|m5k-kz(9=U@w>`s zBvp!m6%iwAQI$*wG+L8x+|Gw;R^AxwD_y2Ol!vl1xa^s3|7WXtt8a2$SVdtd9@}DH zGL>Gw!JaSAO8+OAn-y}m1#C3hZ6xcJl~o?CCUN6C-!)~ET0t5_8tK{7C}2g7&t{Yw zt^dENr;A%DLus6_Jj@cjy{lvc?kOgNkcv_^y!hSV3jWB2XL#-dInj+k5&!@I00jUA zFsx!m2F$<#iU4e50Dx^{(^LT3)>hLLg5)1*#dL;elasbJv94~AR)K9yBu@l7$$<*r z_`+UlyArugN| ztq#Vn!hYN4h&(O@#0xkS*A1eX=~#WZ^hflV*LW|>+C-neHlQX8P>kbc-QyrOWUAl| z7>o~2-7zT9`l-#zN=g;=SKz=iP0{20kUjepf&pZBE7DgSqf^19-kyiNsar|@;bQB#r( zxP6TtK*a6aboW<0a$Pd!!q^?k(r%#P2o^_QP$O>MKpOdcFe;qiZ!E;s1{c{eE@B?Z zpvmrQF|;nfQ(G=7c1GZ=xfK#6MDv}Ml}BPQtuV? z#h4-X();BLCd~Y^7gjG|Umg1T?DF~oCJq!Aqgh=KPLKQ!KX$+&fwN|}^?oMgiSbiG zP)6`{1)Tt*fXeX>0V%rqx)tL-zD!95y7IXPXK|Y_eO)8vq^D3A;$s*2Ls`HK@LKt) z@Qmfx4#0@rmsdeR%ZZmwuqYzTqGXDqutd=Cm4FAw<@}o=427MMGhy(f#-X4SN=v@JYnQ_>gNKul ze1Nj_WFdyxx-srm+=O_MCzY?>1pw&~mSVmndAj^_?)1=I_TqA0e#aWqPx-;_*m?il z#P3OGE+Fx6ek6}Zl0K+Lr;rA@!V{?eE>sZPHOaNurxCgjrs7LS!theR2oE}%eUXor zOT>{c8t!~x4NP4HB&g*H%$!$j-Dp)y1xAV$iyidWYwHyAB;H^GMbImbS41!=U=Z^f zxgR~Q(#Ci532XQ;vH3^MgCv0lsPIw(O6i+g7fzrehyC*XGk+RQ7tjc46WIQ)pR61Z zOq70$vT-m3YWm#lv3(7uPsN{6Qddw=yF@vJkx1LiRIz-Y3=qqOisvN~?2tWD)&O;i zvg4Fy*C)+j0rQWNqQT;JO=}H@;m_6j=cHt}5Hxy`o!2MIPZiJ*Dc4hHlB4o_%*jNN z0V{KeJ-i@_yXcit*!1hl#qH(ommo?oz(zYoNzn*Z@F5!lj^QgV9xcWJsHyJ+_;T}S zFzE0`0}9#+{Rt5rGj%4dapd#hb6jNw+j}tE zPFyNl)$&VkVklo9vU+DYgY~My{7GUUL@Z#sjO%t+QJJG8kn~2osu3WH%IepGRBNZn zK;t<7h|@N8g3|Z@j)SvCK+>+wE~0{F)C;Slt3buBkTNxBj%s?T1oC|}2u^kpZK@5& zBY)4LipPnXX8K6AWQ7l0pv-e>6XavZyswf^tijD8g%ElS`LMyOO~#>13P!q} zSS1)9RA}x`o6z{wk%PBlddPlnsxD8>^#{gl(#te+JV)roGUKOFGXlquDXHjGEkwfM zqdYJQMQK85c}4s_Qz9W_V7fpB*6l0pe{iYx6Bk_VGBuhjfoTJU`Z)B@*Xw8PE4O(s zyr>8ixzGYC*3V+zj*(6ZwAxM0$3WbB}Em!U`@dreRu@`75OQw#Nw0R z@|8^cojBV+6Tnhz)oaY`=N8zh?cgzPYQ^J`Wm2SwK0h(3MTcLw?9s7zO$u(m1b!-& z_m4*01zq!!Hwi6`1%nMQxyxw!ta5JFc$@f$B`obd`4%Isz zr7aK73eusSlqS&>M8V>gMwk^a6QD4)XdHQ^=8ClG!NPRbvr2y5$HpK&^PgE5!O$Uk zE+T+v!3zcY1hSezB*9zf9LX*%$&ZGGdKzOco1aqI=br)!u7p3aDq`jINm)Z)&giR% z=3`@JJ_SRU@aaSC!@=<7RJ8zFf(!0nkIe-@Ur>?y46j~Z@{`;y0Pxvy6@7N zmT@Ni8d~PjYbF?F)$b;cphgYAAWxt@S8IVnFU+T6o-Cr(d2a3x&`+7S4ESVgIYj1kKQ9%H zLH|?C)=ewzV{ma@>pYo5u*K%il$z_T0Bj~jx9^&C8_)pemTjXgQ=+7Mulo7R{+=xN z9F1^R8%uv+HwHp5X2UtT6$+cHZ>&wlT8574U;S4MsTJ22(f`Mp7}9~yv70wsFrY+mY0^mEywqUsl#rc=Fp{>OcLEGaeM-PAPF+b&x9Fzj~L4)yn@BUXJ{YQOV4*3 zm>wD(_|QOd0eDe)LIY!djFos}0)ZEgFEF5RY=C)jT%BM)>>neKjK{=5(YVu*FMNpRsIuWp$S5gT@YQM`h&D2cK9!m-=;`RDa z8iPFVtpd3~Q9a%!U!NQa^&E9Jr6d-60S8DaP@(A&_`=7SI4fFdyDy~VS(=!i?S~>< zpb`p!U$=TgK(2)nK7rhTfxdMhVN%Hm%z_#q?g;t?zEJ>j$|ap_W9He76je1pG>pfP z)=S#(fr@vgJOwDmToYs*XW>p0A4DUZktAJSjm5BrYkZCY9mx95s-= zAfNvfhU~lfa;zOj0)rPJ70BrW7$Fu&=mA0?K@EPfxhJm9qWkm4;Dq7VVn+JXm!BT| zBhIvE85kckl21Da#0HEbaBWTE|R)8B3c z_G4g3G#*qn-nIR+>cCx+o~nMjVu6kC#t9rG>2U@WwlBvq-G6lA=44lHL15{)i@-ym z8v;&}c|uED;YR-K7M%_e8y~r|zqcR-cx=T)H#wOp?jzn)1Z{fKT%kc8Oxa<}sSBYjiK`e!;bPu~-{DUY z3UqpcC$_MQP?ffJ_c7+1o}`$Lba|P%g4_?!~re*asB*ZWriniZ{)kMtB`* zKS8{vp#_t0tCGP0;d86q#SEfTm6{+wck z(UNc(R^*(*4{Gl(TIS%*DYbSswc=tpbDZd798d}hH+i_~beh89zn;JsqV!uMEDA8x zKV)WoXae0ib*)Mv>oLOLm!yoI(jm(3Ni>}g4a}cIHCH`WXSr^sh9s-y`Y&a4exP*joAaRfoQg2{~&~U@?WgKOMJOF^>1K{{xJy`STfQnYInj=uJ z@bCJ4-vAGHoe5*xCA4GvpbBwLpH5XYq9W$GF5c_c^{v9Ws=^XYHcArv1;FlUXlF-| zGnN}RKQSUNWQPmWlP8A-4HzgErx^7|=P3ALCtz|=yeS5S(Nr3yP2()&LXyG+G#Jo; zAPXFkkpzXTw8WEO#+He@DxKkwj17SlGd6`B1Frv}B$SQ`<79w#Su3QWC>782$ zA@9uu(4v}3Wb(6alp0#mC1Vwn&jnt?Z~Ft>l+$gK4}f#IWH>KnL0Ki!!O<%IhbXK z$hPG}NYQc{6dJeik>6QgC%g)K|kml2bb!Wq+Gg)1K-F>_stw=rL4QVkdetb=$l{SXF?-1?tM&)RsR z+h2O#19YM2G*f2%L1P|2uZf;efmkM(rIPkYS!bJ5m|GX)KL-Eg1V4{H%Q0c|yo(yV z)}}$rOK@&|nIWJJHE3Cd{wi!|45xe0ixX3?gLvYfjh8_Gf~j@}<~toVIsp>SVsduD zO~1H1a!&n~Duc5MQpb28y^bf=u|11ER3yjUWg_4wT5zY6D^ZgF$?2p9S!-4JHxc^L zJiU{1Lz5w>8$%6D;dv3#1F*#B2Rmz`g}c|nz==wINlwc-skJrsjs zo?sQ+!m1^~_`Y2%%?xp=WE!=@6kow0J=$J?;hbX@<5zWltj0=JPW1P)uC{c%^L^D3 zMG8;1=C^W{a?pO!u+s0|!Fb9ExH%=k(OGTkKo-3VA9kZILyMgfG2!V(4%D$pxQ`8* zaA%eRqdh1}c<+o|xVdh$2&$4aS1Og}(P|tjoIf?1!^q+IsC@z2tXV3fUsDcZEkd6b=gxp++Yf_m7NlADqqq*NDoTxzGq2 z#?@b(zW3tO1(UAh)I}Nb`F~a~d~(0_zW(}fR7Ryey}+ssw-9fci6{LjxZru{ zqeo~ys!(og3?`V&Aqw(khgEy}Leq zS))SRzJD>*3dpN-&*pJJ+AgHKrdVha%%O6e#N3orj;#GeG#lNwjAPHo69e-=GiAQT zpd8bqouG}kcsB2?JvV3Y7xEC;T$HF~MHaeDi~DIMCiO{0k$W+CG-zGS=OFh7cGiMHv2!d6K zWhI>DF|>s53)L6i>)zsrY}EkRWCkk6&-9x|kiX{8a>?GCu2z5Tg(k79WHxg55|A(t!}bGcr+E7e-{Q?gdgPC?&vGC`>CTMzQH1Nmp6F; zT-fg40FKvaLqS9MK36OmH^zc~1t~u7t!D!juEL-^$l^{4c7eD`6hGPaJX<$jfm?rm z$y^jr4w+t@%ZU_y>p1?z5rTn+BcOQ4#S3fmfmsvvWSfnc;-tmTP~s)kI_sjO{0$YuEkN6mWB zA|Mvy{3Z6648;wFXx)E5P>s;3V3Gylx7o}E2zyg~qCrAW2;UcijbG)6UQ?D@*BL*`}%pwj8Yb>-$xBsj|Mh z2pVipk1z=SSX^AqnZXO@^5qNB7t7{z>k7#t@zzK1c7gTlMb6?l3@AggnY?DR(3d>c zi>;jaF>R*g_2syCDjgUi7b7FDwby6X<(EFaTxrQWTNw{uWY=d8dk7k0@|!>Ix7}W; z275#cJPq2k`H{Q()Z7{uevg{{!Iwb?ugMc$4Bacn^^G$SCs(#W>49T=(ZLq+_?0uj zM?%woEnN?0ObCJ_9@G)_~WuNQXt(Ocp zuspezTqH()3k7!P4^kvY>0Ka?AqOC=xy5jS+H`*{e~Z?byKF0mZ%C+c@BYyk?bnss zoTwuVI{W}I=HOxgTPW`z>Q^^le5DCQU|82y@k#DGqbpjj7n};ty0;Kw-0lU-qXZfX zN8=uDfbUze>t&})OhuFjQbb_=GpR&tDqx8!d#J>q?Cm>ttQb3(KlMsYF7)cpS z4XSMrT32bP1@(gJ25l$4OCdgwx1hK1Wi}^SC}W&Tv$cpyh(u~3TC$I#tZnBNrwl?D z;D8IvP%#=PQ%4XC;0rA)fn|#9B0ujelU^*FujRKL^IaTSVvnEXnJ}*nO>QX{HpC?v z4(nmqi3ARSnLojis%!)<8SXc}BzUI24ugn?un1G@ORcUhYj42$!+q*Y!W*G6k7af} zC)FwQCazr4J$5$R(Ne+is%l6V9}tj3U=D=@fI-hlc*HNNlCRVo8ws0BlVa^?Q%t)?%wsZ`65@v3P21$CaDo2H_ z((^YxGloA~&eI@O;`^2#rHSMRKU@mXltc_6UeC_H5vwsk;yU-aOO%c5@r^AGI?hR; z-f2kwsd_;p2(gt+4nh3({PKUkgyx6VFV1+5gn)6xxx5Vvd+}`Z=&i3O?fAL&c70_a z*Vt--mQjpxm%>RWMce84BRn&1Egpdv;fwhBnK=JSz+!37$$Yqqv3tbWcBL>Jk5E-w zf}kA>-H!IdaRAU_T4y$?wezp*0wA66)w8TQxM2GQ$nu-8&*MVOh4xHv5hr%=r9jzK z8GOKM(#JgB&41FiI7}0?h}+p6z3F$<^_9VojY?+oFo|t&L}Sw1$1gIV_lhS_DwiLl?MNF9 zx`w=P|G-4sz0FVQ=6Ailgg~x)#QGykE^Ft=UjU&~_OsF(^N5txA%8VR1ZEA;FLX2R zM`;&rC&=2@iS%i=>eP|hWpL{IOoccreK|YE7yiwbsO5ai@r{ITTo5HIUiY4F$pZ?) z3q}B0PuchV4P(IzfXe_AJ(_;1>%LwI%!TXio$qLCwel+cC^34n3Deu==W{TOK{Je% z_$6Cr12Z@g-3iGsvy7=Yz*qqQML@d0LdRo!M4V&KTQ_KPo2k1hfkl{O&i6RWhrTv& zv?;&Ja*mBC4I~ySG>zfUoCRb3!ElI4KyT6IZ12d>?}YABIfW8zlf{?&n^pN*jLB9- z%#K9*CnjhnlU>!vip=bR6b^Hka{-LvA&jN$z0zCSjbN5OyqeR&cmU@E4S?Db?Fo~V z5IwlxJz?99uWta3M$e7~jVY0Z)Soe;_&bWltZn%}wLD<*Xvfxp zC$SOZ0u7TDNJY%a|f=erlQ-2U?5MTCX!XHj#&F&#H$l`)u$=*KiDv z^>3SmokFj;d43lSY&^%RT!+Ofch*6F_XR!pf)&1FC6qFzO$?oAxD`X(?=E*e7P@S@Liv# zApGw0GRsvp-0%RqRG9xTFb;K$57G^NxS(TvF3BH2)0DapNLy>;o=nlyv1DDDb4>@zI}#12+?1mVcUqA<`~V@NXMb#Q*_b#h3d`C zX>mB&{bT(N6NZG`1cizrRZpIE`6JYpAbJ?bs13Pwf`R^UKNufo z9vIGty0K;W3WGCLx)daYRBIvZd}ni_!>o*oN^Hfi zDgV`FaAQf+6R)US1TDMLmy-!1&2aUC-@c5Q%%>idDq&{+xX-+RT{@OG=VHKdPbs6z z+@6yEuPU-0n%*=uavrT{v}MGwKmL^@60oph!oRR{{)`910WKB*`X$3ArwF0{D$asv zgR@+gxy-Bb1=W>aoqe0MBemG$c?)L7lWnUxu1^yp%HTnxJkQi3ePcvMl+#P)5Wy+U zXF-bal{x!LmnVBvLT`J9yue}6r_+xwx*e8nM51tIE>0&U4>u~s90u>N0pqhoO~6Gj zavW<`#M=|Hf80j*#WcAxI#0O1Y}DaG)zemvOb$p}G#YK++en70ITgJ9Whe(P*NEP} zP9^+qZ4qHZnjP_NWpfV4Y`Kaf@T;{ah;Nm0c6vZ-O(mH*0Ok9On5o(?bn1So`xwTU znt#ik%zR10iU0Lr86y?2tg(}y;&FM=otRF)I&EL}FDNrV8~%6>?nq1u@g~>@FSHdGNN4R0dr#b@!{WGfZw8GO7Z2c>p`{5v%Aa` zCEe~`tc_R(VJ+6bb+@j_&837I-)ZQE3LhR2KzdH53M7^RLZuPoTsESG$*N#s< z#DiFu7BJsB4b!7nnw_%~NOAqbRd&(Oa_(XgN#PbSZ1WT#{St<2QJflfSGc~Ul=%e@ z^s=!9W>IcZHD;HU?iqy#-clfXW>|T3s^U86Cn?-M#Ngz;Mx{+ij622nbVB5sRvFj`|RizDKBa;#K~Nhl1@GgW4u zWPDu}(!J%-HnlmE#PZ@8fA%uF3IF{B8w2?k$mjGEqzX{icbee^3?0{1=_uOYxW&Qp z5s=2*ChT?r}EjQm=gzSUme~cAOhK}pqj_>&<<4zeG z9#mG{jjQmiWMj#(Le=S>%ACm=h=dXT(X zAjFkozVUwk#z#ChBGo3UZ5&9p(d z1N!?+>%0oQUZsu9s*tnnMI0-eF#7}iwivVN>5pA3Eqy*dI;s#sG)Kb?#r)sTzIF~~ zLdhGm799&h(=lq+ycG`gcA9tJrjr!gcg^SfNb11~Kfk7G%E*?LW{uW(Aqv{K-mK{o z@VqzYR{wlRHV^9ym#}F+8gMn_3(F0YSTf3fAV-1xtwu1xM9{c# z&5w*x)yz>;k%2Y>DQf@HF+G6i2oFs_hbVAZfcFfsLO@}R`c9-F25?#?KR+`PV-b&6 z9@;5XMVMsRme|{7jo`5Y^N6qzS*R7y0GjUYi5a+qMHUt{(8kK&DV&FIOG-fpNYaYW zbi_roy2Vi=`Q2ky<`Fy~os>uqe4R-Ol-_A5Cw4v0fuT9bRzXv$;U%~XU=FhTA_GDj zutcFfcUw_)Db0i?bwH?@KJiR8*0e=#4wOOGD7tU=1)IwY^bYY~RHEof8=?*$*jREO zw%}v{cn3r4U1y6%njp8`A#5qDB0@?j&3F$7!s$|mD%v%MN9soBUY7}i70ML}>r233 zu~|-jk7%)|w!Ido8VReg((rDJZN&K_2A4*_3JC06raI1{q>hVpaF)K=yCoKdB)1n| zXyzO>U8UbhzcL+g)11CY%@mj`*dIDIUd5H79#Lj!lPcp*zydz;+a~@s50muG{1x8h z9j0SQazt7-vu8ZSFd+QM&Xx-vrH#OV}%d9%4r+ zuQfj};t%bbabNg^`Z-sFE$N!3=M-DLWPAnx9jiZRjsFw(LYi|Tn`g)0*apukVHkZE zIY)!?5R;@Y$1nZ%dJ4ZSNZrq3ao{z_GNTtfP48w;dpuKA+Mt^1i!KOMs$U>`JrQ;D z5R^oH&fIZR<^8&P7=IC*?Og7)O31VGKK_gKuBo;5MUq@TzPDEKHaSc?M`gRj9}o_W z0p2W-;A37?W~Vbfy7&sOzLi~oStVj4PCE1?SnXb}pBuRe+y|T6zTl&lUbOF6{cXS{ z;dyT&Am#|zV}~Oh-P7Q(0YWvR^g-7G&`hZO&ud4WtD~}H0(0CCPC+mSNp$G;(5%3# zi=UxDPzV;BNQ~rH!;1aGs7*LXH-WTyf0!tv^UTs;LA_aDdU(K3aO!{Sg_m*bg}5tp z2}O#Q6Z8Q1e{(3n>3Sn*5f?oHMtrl{EtH>r#+tk zisXap?636t`W*?g)G<07P4{rtUbeh$2Zj(RW3vXNaIv{@O2Aq_C0PO@&m7qa#T+kA;QWDal{=U8~u8 z>cQzVr{!^z5G$gGBacpM0M`)1`_B_)2!yk5^Yf6?ydU8fZBdfpneNs%GJPf5)G`B% zC^XG`YiW;SRXMNH*-9BcdShbWc#E{yX+3F7tImKR1S)!SuP;V5p{R3+3!z|%g;*2| zvT_V$dHFfs&{FAbR05+9Vx#IqXm0?TSMf3SElTbg%`k&u3TkoQUU>SUK%-fs+)&1g z#AeYm1U`TlwVwD+T4(&g~abk}HP2x()-g zpfQkQV0|4zJ;TbeAxm`I57R_Ih$OXd4Qp2) zPxp+)yjMb;x7z9o>l$lqMpWHPttA8TtCn!*KUiW76L4lIDH_W(1>)vF=a8|9NAb&3 z+;~!SMj88IaUo$%_5sC$LNuwju|sCh94ODe4g#9?0OOR(`0<#LHJtS~HKwN@KusDI zJ|B(5kjRO{*2ujgN!4U0a#65(vc;>KM)9!1s#@m!VWxD2o#636cP3Fa%zS~uR&5NT z@gY%I5a8?{6Gb)b#p1;8nh5Lytzt>1xKwXE5mq8|Kip)2^w03=c=GRIngc#IK}BLG zbCwvofcmty5qVXG%;X^8{|cQe8kXlYs8%EJq~40!+BT1gLkbYcetckcLF?nyj5n?q zhHcNPG0di%B^D*WUkk6=tK)(-fH%q`^=xWB&&ak;>`Z1((x?N7nAFt&uW+N#EhJdM z3V6zW@WGzjPS`JtE)M^h#&!ROYG6l?!P2uRT+~|9xTRa)EB=xse1RaZc8jrzFDN|t zhQdNFIm=)}(FQ!+a=5MlMKQ^3-ghexR;7_<-K_qaUUp^~x#F>v9jHRqt8 z$gcbW>pKIG zL=^j370S}$z04u(u#X2bRB$KAq!K7ZG^GfIEW%$5y+4(%6B~bC=v>I-P~?D){y+-9 z&&f;=$*%+F(9D=*Nyk*!UIja93DEl-;nA2 zNs`Hr;?wo>)n}p#W_#Apt<^}BEpc;RP3!&tw|-W#ypRO)A~E`fvw%!yNwc7>HOADjMPy!RA`MKDG3f1 zpod6UexTi2q-9T88)sBuY38-lIoY(iCnhKb0_{~lQtNaq+P>n)#9D^H<6dg3OjD^9 z1>7y~Pi3lRaTu}`Qse6}Hr^zj6=oLu&wc&SLeK}TZT ziPCAnro^hcfV_6l)%Y_hszS zVy3mUM>Wfi6FCn`Y#uxS5N^CI8RzhDPxqGLi^bL{6`iOdZu-b(Kv`4ouq z{FoFF2WxY^y|pJDd4)}fQkPf;xs2=2bq5wTk>9e!-dPU$RO~EJTf$%OPp+lm-NJaf za%D%0Zbmc3rFW5moviw^@K2pX_h<8PSgdxzbPxV2(3i8+a_{&i|MS@}*5Gb6a@B4C zE97<^cm%*VYadd(MMdkIH2OiuTbqi4UpY-_u^0Op#2rH@e?$wcx}%e!xQsoFpvYTq zsb%7KmJ&N(25vw+^%#Ws`Mg1L=J0>^a1>Mco!b1Yh>d2PZQO&?GpuwETUNs$nzrQ^ zz>e^6?re8j1yqmwoX?2HToy>ik+U4pdC2;t#5b2t;8~osiq1~*$px_%4u@wQQYzdV zp4<(QexzVP)RbTN1Le{2@-mQpU?WFO{eMDImXu=LDKF(?r5aBr4W5CQt|_=}@i5d$ zIC?HBX^g5SDtDX2qwRsj54XEgAbp1f0|o|B6<4qsNBinYXx#rP(gpvNlKtrIN2xC7 zI!NT{WYHg;AT?}hHI)xxdrtbT?-HBnFfS;u$IYn3OVB4)$Ij?vo0#v0QxjoPLF}kq`R1!LHU8_ zd3j;c$7f}w*SYLrQJ)vL(c!l-ib{);gYEOvy;y2Nl1B{nHFAK=76~dxy`h{B0RS30 zw-DJ3zQvV7yAM-;>Z6|_%{V@}_gXQSQFOx5xDP3Bu`-;*Bg_tp1be{Il6c?y8sJ=d zIA=SYx49!|%T%h3kaEjE7KFDEH_C?WW|aakM|R>ULXWN9XNBgQ6^?XtLa#A;5q{Jp z&22B^WUJ(L7YXVRd6g|U#HX4_(X)HqCm=4?yhvV_6{=Cz-4z3WGp)jA*WqH~hO+pH8j~yT5qBhTdzhk_<4a;eX}0{QfJp6FdPPo` z63j(3LX8T#+XSJjIkizS$nER65GF&ylfaM=BB((J@#FYF@cTQ&y~9k7X|O^_K8f=2 zUTYeW3?DO3V7J(rk*GYD>a?F}7?fom>GC&;i=59PKo*obT{cFiAjQaS68=?=P+4^L zb(Z3b&2X*SWXa4=M9{81VF`YBFOHm2U+10jOk8yXvL%UMjq+8PUv^JvyVw5*v@qcX z@XCknujak`qJWdXQfa5_*mYI+@{_k#>L$4BtCnm73__{)+n9=$2=hp3f6w(UN3bfp zlT~fQ_Sgvq<3W?|nWaMIML`wn)NAiQ?!2W0d@C@(96;gmoYV1>6c2@PCix(PFMyE{ zeS#Zrq|N}d+)tnnW<`D&kvrl-cYSS5vv3H_Dhxv?A{P6i0LcsA7asKK@NFCX_b5=6vaB4CE?< zMl$tw5~?w(_b$wY;7`JLxIjaOs-D2c!kV0yl=k$g#Vo~dBD^0gQ;lyWiT9A>Emp55 z#+h!XESp(KmV`YJg{Ry}g+}t7;3Qpnk7q zTM9bS9p(e`LBrCKkt1hh^9|~LLY99xEq;Q~Pl1 z9dD?c!uZ{VU}l!oJH#PPOc_LL(sm}7nBa;C=utCMWAu8BC9~ohFQ{FdR#abk?axce z4YU$;_*0$nuCb99jDnzlu$smJIFULTBCXS?9CH47;hQ(E9yu?&B*&FCk6oWC2CHCR zBSg3|1Q`N83<&7u>`5jS1TGO6Tew|qv9?~dbn|k0Pj`0jdpzOI<{?3 zEoj}`KdKxF1Z;F{=4)>{(`4^xq#$ll#H8rkcF-;Ai*(J~9h{4fhN$9}B2-#N_lyuG z)Eq?r4q|*wxY7A32+#O=KM>Aigm&V_qiSFR zV+ih&H=AB)8qaoE#O{N%zA%-K;m|{UWQ)u}3Q&%i*qGsH?J}el))M~FD*Bav((BK1 zlV0(6;jP7d47;*g>xsN7oOpeY9}u(pt#qaXBd`gYPeM~lrN`UT)~3!c?C zO51Jn49E*&B9G+y)}ns+Br()(NR(MYpdu&rbZ|DuA0&C_&U6m6dNxd@#e;^JQDOn7*HA(FOJfG21+l)mFBh9BS z4zeEQCkyVLQz+wb7;|zJ;ZQdlS2It0gs3dG{Ah11D5i>TPD4P^=FsH_OCnOvOS8h+ zAs%lpT6mc3{QT~{I9NDO!QEr)1zJ8#5L<t{06&9!MoxxH;|ee zEw1iX3`?af5n-bjIJL7MH4h6F$ijT+@6w)t@!Y+AE(_maGoh)KU}9llBt&e69}`F9 z==tn(>Ye|5bHqn<+xvycm$Sn@0WB@4R0#iugTxLE6Pyd`hDIipMA6$V#69zri4&O0 zVG0G#o*)ZT()mEdG4%AVI?taW%D=Y8DDryb>AXb>+G+~04H+g31cA^PoEFpT)meya zm9L`HWd*l@uPEO(e^fWIy?@BFoUt0qw*sKoTRtCG+Cztr>Js${Qs~)MZ`sP;{@k5+ z+Er^ct$SUkyi6l*&$ncc(?lAaX`j)|SsoR=-X+irrxAGHzHk)rte9 zJ+*p9v6I-gsdv>Zp|c4OQE%F#y1PRDOO6X8?^_HuF85uygh3;K zIDv8|;~{=NF#LZ;8p*|O`lAS(aw~-GzFmy<4JSGQ(ljyhFy=661M^@3)e0tbVdPsp z`^-}L=!JE}>$Kt>!J+ZUlnRWrIt8rNMgRJZc(5Y1A29~wwdtL-0(9RzKC$OxcVvZ3 zfmKIAW2w&pqU0O?PZw;Zhu9E-nO!XTjwM(6cgSvY%UoMqI!hSeiJq?krarkg*oQ|- z@Y{JUJ9^7MDc5)9ZLxGzg>b5sTlv3xiWA}7=aj8iERDZrUB$-Emmp!Th~rYpsu)nU zaD9{%^(XJq;AeIW_b#gmgA6gvi4xT;z`VbLV8i_4;sv-lRMq4nv&pzb6FyFSsc zkE6fD&FSNSh62Wp{1`KR4Wb$KUl-{9C_K-^x?pPw+1TSmVY)BM=B}tLm&N>%s^yR1 zEsMzOsesmNuXiF!=%+p>i2@W4RFHhk-+lmy7dIMkSRqoL1n=HtJe!~O=QyJX+f$X} ztS!O%=x;hKg{xn1L4lwAQRR@iXZsV$?#1_*!;0U=F$*4d)jUmE@DG^FsLY$vf_Eak zwZ$H|9!kBt58rRMgN<}{zH&FEG{@!21%ihmE5obyd4Hdv!sH-lR4Y=--V^%EUcC_A z%n;p$ui{*4zyx)lQ|q)#b@MdziLq3RX94N^EX8MY3)&}p(JUK_Z8YEYs6S7x2er?b z(mDBwA{j|9&+}LHr)`Uw9_tdcaDMs}*K{DDqnxh3tp2*Lor{!v?4HWaOs*OY*EB}X|gBL!ZOjg?e+_LIMQ=3MaV@W#LO zZ$o|9HfMBM?+z%HysDi(7eD&>sjEZJ=zVkpwm8M^GlKbGwC1m5#!ox?YQF@m|D}F} z@~Dx_?x!O^tS?tL7-wwJvaa}h{?&)hWQ*B<4a?MTJ1TYuTbFTYR`GjOSjWiQXkF%r zpc7jn!s5#fj0kXfr6ZW)Hz`v*eVo`QXUlYH&k0oL|GNR;)A2avbX|@KTXvGK+I3O% z(b6&o?kZ0`85gl0Mn1%%a+U87I^9N(W(H|~UHJUPbI`|GA?KMcVZjTs%`f?t zE570nsb!$baQd=T0Tz{PmN1#bEdP52aM7U7dc8TYiT_mUXfDxDo7VuWtvZ#|5@D%O zABDQypk~36X^bmD0CQvsK(QJt<9(2!6>^lk-)ssDyfPm!3+4RO2a4;&QE=+n6B`#M ztt6E82aSc((9_ddbeJ!UywF~=F>GbYW@r_%6qXn~UZtvs`^dpLi9r_e3$7n92 z4XVN0edg~ikVhp@nMcEFrPqkob^(;8rlaVzElp|dGw>OYaz4WmRwQZc@R5|Xf_&HI zrrWCezMMnNvfTCPrViL8G0+;~(4LN!E5%%g-blkfROQbaPIP_QZ^4mxGHn)WY~M?P z^1~oS8+qE{F2S+d!qFsyXDCCnz=#SOW82bo!ULzT4Pj#HXUgF2bDDZed*Vu%T-iNB zdqi0{2y5DgkiSPhcTffZ1Nk(jD7_~Q9mpjJKDYRJsvoH>y%Nahr5?v6jz9x>WT?QhEgnt@8PY3rFoSqz z=!)eHj`to2wa6i5E5j~q7g}jRLCyr?HIIqG2KZ4*^o*)EGHT3Ww$5cSu-DAna?XGO z`Xedo+qQY?WmwcVxKz5bO$p7PA1WQ8{5E>w4dtFIKsT;s$-AF+=qQ+Pxp|@2%k(`n zZ62$nh_8eqrF_RN*65vZ5vq1SGcC!;f5-9jase!hgWQ`6qMXZUJZP7Jm!a?|c>jzt zEgFsB>6V9z@3ysLCvx*+>|oxb`5+u!a2;@bqIXya=pWHR;B=#60Pzof2cr+s1B_{i z`QZA&IdJmtdID2FNe2PaA3Oyl&l8)2-Vf73ur$GP0P=ry1>isa2XpjOn1BqA`l~pA z{Jyb0}T?sPywkQ&BiXP3Q+6xTCkiPn0GsY-|G$)S4U^WwUiEqDb0Jv$>q6x$`ze z(UX(t^;pqCMQ72y*F6G+$eM?bnC$tOr5`09$I6e-XG#_rep9zJm>OB?I#p%XXuAx( zwfr0G|D!>ML-QfejA3B0QREZgQk10-~zfw_{Y6q zAQWx0ANv8~FD=A>_Y$Jl`Cju1UBl!4MIMbSs?$L|-Rsv>imYpv)!I$yyxn9yjrZR9 zGYp^hK|(S$pw#@;vS*Jh>NNh}I_X0l)2rqvN#vx{ci?dSJXF%aZnIsu{7Z)N5tQX4 zka`&GE@f1f9k->=VSqBLbC*8PKeWmAsI(rh1b2!vsU^Gn!8F8_W#J4{3c59O+Wb&U z<8ad$r8v<*Eyw(I&80V&Z7h6-v8*$8Xu-GT885@Va?{C(ixqg&(;vN(5hu^v-Vk&U zJz@mJY|(rP0nKNbE}VY4F8Q{n5z!`uAh54Xz~-M3t@)Qq*U;ktFhyPl@bcbIBMKiM z@RlC)mmgbuAfq6l5PEvoo@Xa?88jE{pfTSXV2BCtBqt-dD~)WC8~+k@^>15};%7>S+oHFTMtwx8wFc?y%7piG>3+V4|IemLO^4h);Ew81RKES4{O$RUq41 zFkfWq>%{wdjql5N&a2GR*pWMBDf{WF}R4F6s{ylwt`o*%-jDHKOIdVjACfbPF zr$_(JTB6;m?cY?+Ah$m-_2UU{{e8x(R^7xzs{NMi_EgSd|7F=G;v6>69KhVMC4+_& zHM8laOA}{cC)>nN-IKr`R1Lcr8aPVPMl>6n257ZULbjtT7l6Eemq!Q(&ts+#_V-Bh z5DXA`!qUq-e!wi7`zWCHkP(WIV}!~eR2((>cFa}6&;X|+S%P}2QN{NwT(BdP#0W3K z;U+Uc3r(okMSP)Y8G(iZo zfQYNk`(<&JwqE(4Tsx~CaTxF{DK53v;`FwkS8h$2B|8NghChMr=E zJQ22zJ{Ui3We-*xMlfUKr@0p9gr8qzmCVW4^8P3&n?vm%{LTv{#?A*E6pGPq7w=${ z#Nyls597DKOuRo!hF8VtRz)hJ?yd17M4-isJ%~cVC`Z`$4%+1W znQ9***qeQ{qt6D0EnAkqyFIqTg}~h>FoWrHn#DjIyPwtULHNmB-oT6uY8|c&`7I^E z7TTZ3U-<&^{D##HD#${O?%@3c#~G$ClYM036PzM2C_L0^#XwU;A z9f3+F6OSklez@PE^LU%Z1}`VXr}Jm}ckH|Y!#!C60$o$J%yE&ZCOSKhYRtX0WllG zk+__BZ_-JXD9g&u0J&30$I!&jJm5pfuS{o_Rw@xyohmkqyzrS}@wgb9`++Xdj=H@1 zEkCVMW#a1|F^6dE4Rvb*XUjSle_NTHnW|3L;r%D%Qv%oAf3p(Na&F5l_QglF?GkljSgq!#h>rH9Zq}QO+^_K0q5_5{jrx_FK+kR!mS8`S`sV{Cwannb`9{%!X-s|Qd}~HgO$iKPBGOM{2}gX+Ix&|f6~3d0xam{{Omm&} z2b%`UdF~~IHRM$0Xw3vrr*Ksyc?rb;4fSp7N+c(9Zof4}J#xQLP)Wkh+P{4n+CY#> z1;2CzgL$;+2w>V|-Bcmmv&S$Jraq z5w%U!%vzoz_~NL$|p<2NX+STA_o(}_oZ*mGb8<+yUc-_eU~sn;|rz3Bju z#`S?#qn?!O@p@>PTQ04JL5`Ut4rcUgKHvFBq>PwGF;x?pjkAtIlD)SD?G%9!BOXb( zYZR%;J=fhQzijzkrtPZut^fNeZkLv6AfigOjn4>Js3<0m%WEO@9V z)MG`$N7RUMpBQ{887z2trdelhE=$OZbdz{d(frU5N_dhM4R}2((9Mr7sp%ARKQ2~N zBQGyz+&)q5na9&GgQ}=B`>Q5|(Nb$a@3kTzoN;kgT@HbED|9&Kg2-n!sf#*s%_>iq zdEy!(8}AeU@&R22t9ebi-tB%c%@|GW92W%v%wG+Pm5of?2Vn0*ZAuD0C~ zTw);G?NHL7&CS1D@$xUm6tTRr6EuSkv`>$jX#l?=vSi38`FAVBk5aHUNU}+zc2d-Y zL!minsiv40&X1#~HBg7NMdKtl@r=@o>;ei%!VugfyJTsM)DdZf*hcn^+Rz(o7o&*c z*5;>uyF!ikd*Y8h8c`d@Y=XZrI0=uAU;6=B9R#~~gy&FY`3*`3=raLhwfka z99eIPrf1J6h+Yg7)R5c-dxc&*)0itxS|c>>Q0^kgx$C&w+@FyFwzS#x%^(iv+;M>q zB0vSv-%WE}h7)B}f5=gf36-dX5NMkcVgeseO3^{4#*v&mbQ=LqAw)fZcXK2la5ym; zN4$^nj04=f9>bLsK8FpNY*#Tgl~doNM~LsqkaNSyZpA6lBBzB%FVToCJnvdHB|_kP zKS!D~JU69EKPbfx6-wzdY^%&Q?r$%b(m3>h4i0F7{iO%!jx6LBDBrxE`u1KAu0{o{LVAk9A&f%4HL=q^T>nP zul?J)pMR3t798kvHwUZn)F-U%f9(ldjGZ2xv1QFB;b!B7JU?^Z%u$p1bw$fs>e4KT zyVaY4oYnJ|FLOjwcS6Ludmcji61N#~lK*?X+x5u3?w2Dc$zXJd;Eq%E8YRfrg{06M z*OTOUl=rg?p9N1Un@HsJA~Kvd^;{KhiSGRBnnk*Ppv&NZI9C!=_4B8K^8HH}aP7CA z`RzPqR;iyR{TxiBlVLcizPR@;b^{V0>#}!ZrpCQGbsP*=Q$J@7^LO~;IRVgG8|KWZEjZ6Z8F@unC=Z^+A3oNY!(D<(yFCh2Wib}p8asROozG_|E^y@2&9tyNh93%<< zwfH0&$cv=DJaak6R|@$y;#xGs>)F2fa>yAfUS2fg$gikkRmYFtBmzxdn@RHHee2O5 z%%1T2{xesKBG-_qLU{RyB0Hc$n zTRAtl<|r?sC%`Lm$}a-Jq4TjRkIPFr!%@gdkzjn{A4&t1_g|5*r52k9``j4LrU68S z;$bgt?2ssD44mG#QKZFpeN%;qO+Ru*oH&h!WSW9#?cI9i$=WbcS=>?feeE)a91i)) z^ss5Y8w_Fr9|}T|X0q8pow)C0V{kIQEQPGz%N!LWPgO&uK<1d>T#BA!^-h{eZ(8Vz zfEZswoH%SCe?Gt(UZTTPNgt1yOcCE?`V53;ahxSMCk($*KFJKnRAvHf8?NUpSa$ML)Uqp|boQ+1G(6UR!kmL@z5f-^%A_&E$Q zsXW;#kBEN2G|Fh&xpZT=5V)Pg*29Sv6Qy^LI3=th$!4nAW35ua_#DkY;QKrUnQfm9 zcbs#NpMSHycs6}Xu1CP>M39fveMTkiX6Bl+BFrh|={S{Uh23fh>y$ilt;LUe1eTyYia5~(!VW~dS~z%e>FEwA_^^o@3e!orl68ab}O(nT_2_BtpjfAIPb`V>Lnqm z?@O?qO>##>M;tOk!KUx#3QY~)G>sm>F87bku}vu0vPsuaJDNA#-p&`Sz1q*=2eDh3 zP3(8e^`bAFWLP%CtqE88(pGvdZwG8t7>2HUN`JpKP9!FmR%Ao0YMnYO|^Vm%0;TX@;%8_X0X z*C(%0@XGl9OJa?;%z6w%Ua)*$BabpZ7qSoF-fe7~4%6F`5_QDS^*OGS)Lpfv-jNw{ zpcl#;Wpa-}xF27^0B~OVJJRvi@hZdV>7C8mixZ^sj>MBq=ssk7c#Vz=aqfkM4jmsS z1c!nSIWK^?tf{J0oOaK9OG-?5MM7b~{UYNG$kX%#QzTiDdiBVokA|o%J;Q|yLr;es zN0D`cyWD1Gnw#FeYA-ieFUg7VDn)5<1)qF2&aup;rL5a{~m%M z|ELI+a0`eSUKp<0;0XX{0(R`+x4X>VMwt9EA9sFmrx<>tR_}OH zR{v`CStv&-!S&%d?nJu)aYTCkX% z19y%urTU!1Sbl6i0R7xe1WuFb{ z)uaNCHGyZ5Ify9nB)GNfFdiu9G%}$JrXUn7O1a-)r~WUUJ8iq9p*pzor^LA zyTGwO^PYerecV7mXKujpLd&wxDZjpvgQAizXk75tvO=A~Ol_bOHK+7x74mKcnuDCs z2po{zF{pqbh|g~Im`xvc2uC*%otwYngS}VfQ0Fu-7~lp)47K)8^dflZ~Y2^2pb6n?FDF!VSgyWLxX zt5^t-+o$A!4g)8hc)gLR!J}I)%}oKsLc8`I>*yNKu9FAvR-pfqh0$>CN&PQI6P-$t z5dI%C?v-!X0dL7|AzwAFq3-ETl^JtXNZ$|eE$ysS*A!vU;u4L2?KlJOa;!%i%ZkY_ z>bO1E1W3!|)zo`j(vA*QKPqv%H$oZ?FLiRUH1M^Ol`8l*<2 z9JyO?*~lU?@`A5-GJBQBEypAAb&qkvheZ0b{M9CQMxb^;E&EM7OMv_;KyWk&A{F!e zxMyHT4{$*s>m*!?;ZgFz4f;GzX;Y`nMHdH_X~j!JBNNA^Ry4;`dK3D#ZSb4R{%C}%ricJg@Kdf7775k!pDmG=1v=?fC zLGg0o<(|EY9)2=+x9_=qUp9(Lvt~7<33y%n9rR-NcV&>&XgdGOXst>A8-x+a0Gw*l zu2irD7PP)gja{dg6U-Cv-bG_2C`54WG}K&ag(_M71nH^z-T6K-V&j9CdaRk+l`xNJ zp-o>VZ)%S#R1cFX?y@HX5C!w2X*Phw?jNwPyjn#hQ4J8O!W|^vBr1rT@2p{g;eaM) zJ8#t864dS2y}gRK5|Fk#oks(|tAG9CwS_f|jXN=Gp^CAWCpQK~8riZCT%$*g2cFAZ z+39EZ`(>~jg`nqiQG~VrI_Fy@^&rvG`u0UHNQ#0Bw&ZWvY&PElp$wEUt@i&KOqI)5 zsFV?JSeO?x;1NWKkj#sy1T_|%-9A!u#5&!(i*5C73WV8TT8^k-1|jLYHHkPy7qhEf}#|*B&2dYhRC9C^WHjw35A`R4v`Ek`*_=OKgFL*S zR9m!asvPrxKpYeqG@!Ht*@!x~(}`0>Mk(88JMuFRvv8?B%8{}pFu34V%^Vsima6?C zCP}4mr~py`DzKe9;4}-))CN1U0$A~jGUk(#wQXZY1=fQ1vW~hT!OB*nGcsQSwCwM{ zzx=RQXCdV9_ZL+BFY%3?f|>uWB+(k4miX^EBg#;TPY9a<@*4OMHWQ(bXT}FI^B5%_ zq_+a`Y@yy#QU8AcFNexaL`OuZf=(`mU{if))ky~>zk8Yehg#T>b_u^_kqF;$l3lo4 z1HebEiu+3L^GzME7tAhZzpZ;FUrBSQH{=|c`~Xn$6xe}z^^vonEV?mP`>@$`6!%q` zS36}}6Tonn5s^w5MsOd|G*IwcRj&BjBh$A4gvuwed^kI`$bQfn{M>_gTr*c&;G|_B zrM{XZ7dY3<_rdiCdTCR(lp)uk15|uOnA^vhK`D{bFgS86`}#!$Jkk@2jbD=HsndiH6JYQu8B$@$u<7}6Jw-VYTN0H@izLp@{;KaUOnznayqvm>S&2tzR?Htn!7;PDjd z)E-yZ=4)^!8GIZ(by3-V5kEgaA998|ehy@v7r$b?_R0YH$$2ZQe^Hvw|?$vZI|b2d!^Nz9P*T|%MX+Fvu%(Y!Z65%Rfo0q zWSV`dhy8P_-Pt@!j?}tqnvsJca>4uNv$i%LrJahE30$EZ0MdE&b*Zg_X?sHfJC9Um zm)7k%YHQJ(1NN$U%6!QYoTjBJ^od2DA-2NK5wjxNFeN;s=)Ek&2aDb*R zi|Ml;&nl(SvLPIw8X`JK17sMLDVX&j0E-g&fxs!GG&OuLY;K4R7%SQx*AV1mr6~1BAu(9{7f3m$I+cafPwk^kk(@t{6ySX(HiSd%C6#YZU64p_B{%S3xd~Te@ zd|1pi1yQKi$VE-_W;HhsVHM*9oON=yIQWDHK`Ytc&s-4%zAQ-bNNe>hq)7VbGc#vH z<8u^D0v8d1onS|__vMdvK9U`DEn?i%?EP|LW$t7OGCBrQu+XRYz#M zWj3Jd4^q?>3`Y65qHq*YsW`m(RqAJz{6Qy3!Keh<35=MnP{rr1EH0t&L<&mdK!NAg z$Dh_mH^pWeY zQq2kSDj1gMY5q07YNT570I<9sCc`B~R?vh^p~orjjh~vO`OQx?mM6q|An~D6?z|wt zH~B)U^1CH=yt=tVkZ0Yb{sb(2s61FpPvz$G0tG4?hyQ@)3S;0Bv;%Bv=u-ajHOna^ z0f6aSnneMc$BD_&M56pv+JdH_)4)6_Fh zWv#B=DBUIG6NDu>@IT3fCuTH&g(5{5Zd0UD@Qlrt)G8$Y5G+bc|EBtlD<4JONFWGP zCzSW33vp*TuKv?jxjeVJo;J2TQO9)D)G0uyvkSdDlGW0aqOHEvp#n%VdV|{fmYx0zPe`)=M&|iB8`TxRww(gOsH(d2RVqcI$w!r z*@mvXLD4Y83Yzc_$_<{#t`XkFb?Y&Jc=v$4XU40kHd36}8ef|##V`u%f0CJa3YABn zzF8HG^&!8Ot=B4xW=BC=H=Q9D%E=R^0e7@g)U+I2Qp?w*EIGZ=1bRZ1TUV+Jk@yWx zViKp()VI+CD*gd{Ky@tUG}d}RxNssVhD56%V#O&w0~waHz9NJzTNayYvAd*-&u%kQfI7hf>%Nd- zW?A*E8TUgT??tHQ$0#evm+<0~!jz`gONWoVtGJL5wL>dHr%F&ON^C*9qn`NTCXT=k z6Raw=k5@>y5Cj>1_P-hoo&Kj_xQwL}$o;7|<~+lDpCu#NUJI3Akp-nX(+w1cC$`yK zx4oGdiY}NLP61$=_3%|bi%HA9|98MMDmABK!an)L@o&6ODdGKhQX#&icQ2*hD@oPY zdc6VC3+@~%FJhv#V}L@kq*;1zhyF*7BJV;_JmfqXa?l7lPhTouA(Ld-y7Li=5>){d zlz;^Z!6{G@1jGRdip61k0aS$!2$z=1zcA-A_MM<1AO|Xw(A3r2twD~vC^(A*iXuT` z`fwT{rjjc_jn0E{Syk-E196`6 zK)U3%)|ngYzmh)mcvbVxpeQ~d8U8MkIm<-cBeAIa?{}9QjBYHVash!|i!*oK7~68_ z5+#Vv$n~)sNVz0V4_bGqiia>l8WUSRUm{#r)CdSucG<_A$$aqw1%^0YVX$%PnYb5O7v_fKSCA0l1rk#N)3O!q1sw3z$^|$PnbN zZ&S2ROnfrNRFN!4M@5#-H0;5>q{7D*9WGId#WZMCPTjbrCl}$WITg6r_Ze)k`1;Up zb4Q7b>%px;)0>NLT0a5>>wD)Xelas4(cte7WoSO*0u@Rbq(-%W;|t z-p7Mk0SDLhWORd)X($f$BU5%>5#h=G6)1Z_DBg72zr%XDPBa$Ss#YTU*)GK;B=*en zcf?`2j`%@N9L5T&nLFUBHyG0je*&ag8~|gl8Y~mBzm!d~G=L(aOVo?duhsq;vse_e z^nzg!Exel9gY-r?nS0*CfUJm_7pzwS3lD_5kG|ho6-& zCUB@7cB87%0dU9wqZ_C2`&B<1f-$qY&a7pCsoh}&aSo{s>1zyz|sv>GY(;B)j&uzdQWhK4UGcD?d~>O_UZG_H^PMBrLvy=rbM`!Z;l z|Dl^`{fH+f{2Lx|91z_u9Q*0R!03r*9&sbsmv~`@wcIrrdf|d#xC#<6aTk)&5t|Kh za9^Kkq5wWL=)LOBC(}kc@1^R+U*?#b7fBQ_Ql>Q+L@p1^YRbc4(oMD)w!HagwluDL zF7Rp>#WsgW)JST|uB3eenJtuFMYm9fi{q=a02RRb&NY24U^MaJt1^N!P_J;l<)V>} zeUM+7h}va~SxVAA?WDjVB!cu}?~&t*Pu$B4^?T+yw4xW;=e67f?oRW*P5){wHPx@i z)dI0_Nx}7cmKB$q0r5Ca+7~LeN!LEEJ4niy0kje+$bHrDDu1WjNU4$0`L+8ZQ^Hvq zAXMN7)CD4-LckCJmEMjqibT82@?#t92ckHCY6Twdv3DFKNWkLLwcPB65SPm}GsQ+Gj5+ZE$rDS%A!K0LuMD!W8SIi&;iIV-_7$^zF7aQ2|Trg;X_zvPMtK?TQy} zKP6nE25)}HN$X%ZIo~(WU5V0guG~#iCcp`T(7HrN%0=(VllG2-4h+MS?YbG`mrOTk z`R=F9RnWc06Xk+CfW{t(`2TP7noDKh%rTga*bvvxNiHnJb5gCtSqSD2Q zrVTc2DzkGOw81j7FB}2dAFJ+0Yv7OUn@0Y1RJ%RVrOK$qD$54_5Vav6INy7=gOYsHeIDBo}<7+-&#>pLC^2q>0oiaXCk!ag(}!jzQT5hn6W%E zr<6X`k0i)$e5dCWL_n`a5l;!!l3m zL&de5TZ+aU;4lJuRWufAI3DhH!BK>N<~=hFvZ&pgmjiKePnQD#*YrAD)3U2ACkiw5 z^!8fY3F5+vdGH$IZ7(?B)%roAY&A|uB!j!aFvZA*@u=g-my!ywTJs+Zx2Sy=6Vc?X zZ0#xN_9X)Ht%?O%mkx^Yb+Haq$gukW54V6Jtm`Hy2=}kH+1UEvCaAz*nHBNszFsjpqc_ zbdq(XXw)n9Hy(;N=SemthQ$uAE4||i=D+U+jq!12-%IYrzI|;-t#E2=V5=Q;f>Yx* zy*jU3ZQJy3Q7Ys~l;tkV7_~v5iD%j4BvecYp>@(50 zm_?tlt{%yQK*WKdG}nba+SO781=?{h8cG6Ywd=9Zm-y$Ku{j7hS}aB9(4dWGvaTTe zAaJ*HJev9LuHe}g_mo-Y#gh)j*b~1NcqFNwu@;x?CKCTH(?*9n?wIg2F4xZI-U9M| zG4BQ3S~X`Y?)G6~+x6mivEAUWR27 z58*w}GZ?N|e2fza7s9#cnkq|D=6emZDobb~S#ugcPm1@rGCmuPZ$P8k^mEHLt;B(^ zptPGwQ*fFn(p`yb{O~8W56n4+&r@Ze0#%y1N%1jV?z&%Fqmf#7Rf2+Qo*?qRe~j#$ zf}4GkvXhb@Q#NTYJi1a_=Z~c}=agSQ*^GV%B>0dB;H=+-(WjI5q9+>`(iie5xgY!Y+ZQzgx7nZ6hgu?5zB{m&_ZO-)aOVpOypk9?9hE9Buv?SCTm0C1SmYD za`#~;dO@pATDRcq-y`fPqafLPDjd_6k4=bWhV|oDB!^O0x-R1^V1yI~&bdrWA%#X8 zAf&r75_hF6{K5MjwHfhtwQyGmy%f+C{j5Mdj*)pcG@O;9gMDZ@TC*~2F9`=A?i=1XeSDyI)99>gl87=T z6*e2WHqKv-Y!G7^BHOlFWkEyQFhVrJf7-t5S8watQ5)qT4l9t}6fw^#$G)OXylB}G zXSroJlcKU%*?cRy1cr2$5&2Hl08sW%+q!0XjuN_#CN>?>v>fq6{IN9(BCm*4W2Rb; zBJ$G}b+5{x5;;e^5`D3}yw*|k-X9#cS&YgHg&EaKH;uQgR+%1ZHHX>~$O>96wG2YT# z#qG4Bjasivh-umFd2Eo20EgZqY((U!OvZL%KjQ%)#^qAB1N(8oH_&!RKK*;4N}kTx zlfc7`b@+x^Df@y77yV(&m)|iBm)jxpJHIQ2rboT!^GG@9=-yF?Wy!1Y$`2AHMslF_ zfk$^i?6I98lvWOYO{g?3K;=wP(YpdJmr^88Cq;G*3NM`1UG3CohW?38QY@lZR>zf@ zp&6K#de7LvGEgL-%z4(e-0hWS07yI9(%I}ot0V84n)(>lQdp8-fA7DS4dC$7z1MK{ z;kml|O|B63z(-5D(6>gmdEQG-d&xeUkl$U!(_G?Hpe24W`=45r`PQ$QCz^4&^+@Ny zXWO);8GhyIj*?QMS(oVgWfZ!}LL_q-bqaW~ft&%4kOqMx;?)%Z;VwDiL0$Gg^3(k? z$xk?#J>NP~yM{y|rxFvmAGG>B5;4rSwH+e@L^aT$4u7l#NCy$B(rlEZcGExlB%gG$ zP?-Jw2zZx>`+x`r+c2doa;p9=nt&P^}RmW zC-V@=gv3W6#Gym=km1D1kUr9!8B+XX*a5ZFO%uGTsn?nEQc1KU#?S*$QnP^Tu@Xn0*qG``@z~IL($7gQS=_Y2nAnC696D~6+~SP~b#(5?;+Ou_vn_#+igx7| z)f8jlu(bhz+yX}KP4%}9x*pX;u6nCPEu>>^f#*}iTy8klWb$6@5SPjY zWn~hQLFQj79hJMr$kHO)NC!`u+ARA^RGd~`!lX{{qEDe$1Z;$I@~Ef{4E-J_4{uN# zKajlM<&jJqOIhnzFh=GIRL-hl;YkjSB^y+x;H?BI6ToH{jyF~R`~vpN(J;TS*B|)Y z#zNaXLf?W#XUS8SCjqEMz>i%bfp;e#Pg9=W$Q5*eo~K4~nPoUSDL^Ido0BJpEHuM^ki%lK$i>g>n*yAl?W=rd=^XK#C7#jBkbA@YjZRWC&?L` z?8U!iGIpc;Ob^QDs59;*jvRCT!^H6brIFEJj-m}*TS)V#E^f)b3Pn{u z1EI?&&qCZCAn5n&jwHwOHRj6sd`;4cxi0EotcO^xJ3|lTQ?2=}%XO{D2U5KwsdBb7 zGm`az@G%86NZunX>jQ<<@4aguP6Rh`a6#4FJgk~k(5R;>Q{Py9y=m4ud$0IRlUt9w zQ&H>CP`>z!=I8q3ppH`<&hE?*J}E}F;xEP0u<6MB^;FmIu@WlFxs}{3zCq11T%`FQ ziPEu!`#8VzmW5s z*w9ZC?EAuk8>IV9hp7+Z|Iy2?sq)Oa7#xON)YC(ruV+L^mvjAwL|aPd6{`k*V_Y<- zrY>sgpal`U~XQGrJe|zZl6NJj_gUU#vFuM=x5gfEcH+Y3BdhV$i zlxq1h1@uIcr z5T>1GHq>~frDyxy4x}dFVhE=(!8Pb~wRV})n6X)mO$+4z2AwF7!85-Cx`y6hUu%af zxAY}5Mh~qxkM=Rvn9iW=Ra%BI75`6_qn1Vm#znQ#lYH?+D5WNNxs`5oG(~NarJKP=yt*yxEj^u?{sEfWA|UE=jBdyA=n}w z87Uda`b=0I3Vu`Lt0z%^m>YkNOGPB|{T_%yPSi(>wLe?5=lv@6{hh(*1~lStx(SF- z9@9X=iI0{-3>GAZ3+jh55A5omgPmgKLGZ$V{%q;4Q0J)92%aCC`!K>iAUf5`P-$D7iyUWecIP_t7w0w*!5Pht*wiMz^NPg z)>u|R#?Y02#v6tsJ*;ryC$pM97i$t1Zy@OCQrY^N6{p)CwV8?KTq94-mL;58N}s&z z?(DRvueUtwYr4n7e)yWuBt`O+R6N%00**N?$#P}>Q!najtPr9dcno9|t!W(;x%cGh zZrE(`a2Ph#jIuD)7699ku74Ul4CKb(O+K$v1`-#bH|VRynuBAGPUvzyt-*iBP| zllI_P1;E6W!z$W?D0gV^?axkFd@sryjj=u5qR(7yUwI& ztzRjh0M^P<5UV`NYl{E^mZV{OOFdAOHO&_^>-I!pz$Gzt>zdo#u<{iXh3eg~_X*|L zsnI~x?kO?V5&-q!)VA0uc`2|>*7axC5TF!`o6ooo;Mi!aVbX$b!v7jr51N59Kvi0V zsbeP0Hot0Ba9~>`v{$i$Eh|N&nY7X-7?5ZjvEzq>a2sW1U4pj*%Ze?)x00KN3=axl z)#XVtzoiBoga_q9tv63h5BKcV>iJK@bqkJ7+|Z0o;b^KX{rraAAW&SsI*@Vy?&x~T zwzYSQHCtRSa4sz50qNM|8$9iCo|@-vfFOI=LaP@=JU-za1NvPr&#z_*zQh1qpcK?> z5PU0lp0BW#gAt8VzK3t-Os`GK&gQ~%GMP3tKx*-%AJF2_S zwvYuwP>(BXaDJI!eQOI<9TgEYIHY;jbuub;(N%9RM_nmy2`3LOvD{h4{FOtCE0&D; zv%msf8zU0O@WGAZva|}v9Z9}KJ`-ygZJ1|qXAeoIbom6HlP85I4}u<87G4Guhi&Zc zHqD}n6~iF3GLU=Ra9z(lg<}5WBr-V2E7Z_tX<{23;9ASqG?obG1sx!{H&UW(QH8`_ z$`t=$CtHvU1qjKVB4W8%BAL_@pe}cdoB|o}!38)cP8aN9eVz-%bc!7dY?!>DF~X4W z@I0r88Dt`;yoEdgjRO@jVDBn-D7^I)edrc^^jhGeQzHa|0?q)TJ~e=)9|nG%&1zHk zBss9>`xSEy6re$u_Q%L+C=}VsHGGQEs$=NUxeoXpcTMJ>Cv7g@4!$Wxk;F5;*$W4g zvm}}+CTURy&7gTV7--7W!XdZ&jQoYmHa4nxVE3~XcWnB-f28koJ^!Xk>8gC#+C#GZwXrGEHty3`wx;n{3OmmR*5v z3qLG9bI^scd`*E5h!a+VpbaR7;PN@YT`fQ?4p_D&jkQ5)tzrywJR0ZXonu??VLnK9=N%O%X2;^*;PPdOg{R!9!6BSL9j%`1dy!l0kj5DcavrLbSjw!Oje4eCzW+4`lNHWK4`O%x2U=fY9 z*zT5D#vl;^3%EDijmp6|tmh@zby|4C30;RJa>RQkMHkGP*keVPA#{V|qB3r65$+wF zh<3gKcaw%c=9kuKB|%xNnftb7$33gv>u;i+)$P~X^0cE?5n}WA(itOUz)TzV$O)CL z83G5Bh$aCJ^k@g^Yb==8rmS@cL))MebL2jg*4FXUj`a4~vuP&GWhNwN!a-_{8>+l}aW?-($f2hj24tFNOyagMVcR>5OeTPp=%t zD=(BLa9^+fEukXM;lNOw@wIQ3Nv?^0f$9Nk_(ML9LHf6m*V37<;GP{iA7^eO*2j?J zgrGMpz8(~~!-CNpD{NpRAV;MkM~ozRNeTx<|CRyVST{%KpA;YWZmAolVae|`g6E;D z--CKzUuP4r=Z|g?8hELo-*WyiW7G?9t=eIJhvclbx>@2FNi%+aghiQ<`%5P9@%ki; zj((hUBqQT+*}x8=%xplAR8Z$Vd+j01Vvc2*R#c5vO2hgvtr?AkyNh;VUP?h z#g`mP5qlU%W?>z&vYx7s%$L3^ES3qNBd^GNvYbK;kE+B+-S%1SQS5ylcBA{H4)e)g zAn8@GgU793`$y=1dqmsW1J)$-xTn)IGg*jsvRXB5mdIqAY^&nWC(71uO4)Sx#bS2To-d=r7sjN9~jko8S7I)#$R* zHPCDQgq#ns^l;|01eopP+JlnoRDpzBPQ}%ynhXsg%ElJ&bh0`>i1V+EDpS*heyP|{ z@h9UhobVeMV0d(pfK(8O(+K_|pm=iUi(uo2~!NuQ+S#RA(nKU2%RFydg z)@fvs9+xdANzDoFjF@MP_4e(TGp3VgOB!JSjE_7=x1crvfREU<&dTSj5o6~Jy3El^ zs?DTlEVq2!Owr2WhD;W(|N}pyiGembR*Cu z!~FOH)vrb}W{BZL+~WZ~FT+P7HBSaOTa)Q0tusu@Qj4xjG|`>?@5|f=B0hb1?!YrYMG< zLn)lR^Mg!?U24dtA}_RVS0URTnJgY;@q)~=d6#>Yn?>_jWVe$}izrbwSqs0+cmeHZ z%{y(m7fAh;$R5?>oRoFLY(t)q^->nGG>ts_tleH4w*3)XRN2h0^Iq2D#JvR0GcS1L z|IfDYjajW*HSytK42S`WbNkZ?Riu5*K5QyABLdWjT$RHOrdP+N&`B= zfJ1nhf~nx2y7s)zDUk@QBPL%q^k{&bp|6Qyklc9__0u}3Jr^p@lE1dkj)3C@Q2M3O z`uqjX!t6f}e*AY@G6c3kS>m*eFOd5Lobk%bwasstJzcrytJMYLLpYPU?HA}+?kfjN zJ*#8R_(2EMaUt8KJe0`Fp>ls-d* z;JS{f|A&iu%3bsK0FOvRbkZAGTI2KoQHjS|C6lU|m1|MSCmO>4K=)I$`Q8ll23M7% zwrvVB@zE1aUi$ zxgACf9ajIL*=@*aI`KPJ@|o1I4>>=djM!OpyuO^ZSk&JOF}@iFDcE?RV;4Vsd(ooR zTu<2CT6eRfen&R1Uhs<3C=rz~`^R)iD@w(x@zIFdEp^iR6?bJ5#rhV!f#9fH))l#c7x&_;gkU+TEeWYM1}5$!qV-SH4L^WY znqz|L_%;JKF5`C3*Me5v-l-v^s0Kh{fXBsA(KzlJ@~;(XsCF_tbVwSZy`NE2J6$Nf zQfqIoZtiffM35Y4<;spzdfeV@g^vfw(Uhw!jM+!IvqP9vM=Gbx=d%M6zFP`S@vrD!!Tq zGYtJ-tr(&ZDW@h%)v$#&aVu2@BA#W^(F09D_zhOT3I-AUzHko-Um}de^~CVS{tbV= z!*9*|i8wX>?wyQ8%%};c@SxZ-d*UkOAOu3Ssz%q`+z;&g*`b5jz-tXzPFGbVb?y|MW)GCm_(QBdq=@{R>!cvh(+E{MK3ynl7%@BcH5jRRrx z1pJbH!J{Y|{nAtDD7fZIQMPR+afe<6V>YGE)N-8~ptO-Y3}ah2NJ62n zXA>p>&<&=Q@zg75Qf(T$L?VqDj^HAk2mjrWBy`YcAFTZD?K4?kvdqm>6S>s>xg`qk z@(uN{FVwRkI>beO3!KH>&Qa}FrJ+Q7C-}3QK&1FL@6|FG;IAX{N+2v=9$|$9^D(A8 z3`DaP(7Y~OGn7lCz5T)V(x4bo@n$ChGeaHG6>!y{sOyt9e;!){)b+5IqNMz=?afYs zN{nIwY#`Nh65E|@jh|y(S-N(ZHPY}>t%$|01A*emQnt4R6{EsUiCfsri?UYb!lenH zlXImmX*cR7*HTaF6~e@diKqkU^b}tq$nD&&MC47}l1@3)dV$0;rH|tTr~xvF_OvI2 zulsHID;|K+VT3g6T0`w7gk8}HOy`7np7wPg$u9H)tmg`SBe1lpZA<>{2@|bdlm*Ld zFFGRV>7eSZbXL^(cYuXW{+#ThY&?M3 zYfD!)Y6FCEXjwoC@$CNQb##bZ3K19fvZD01DDmlf?5t=)J%Go8k7J-~;4-AR0j^{Z zK;F7>>8~BR0z5WgG3U1oc!pDZ*2;#T4?6Hq`mx4PK46%*ma;62{l{P7U7d!zcS&G% zk2mZ}6YII??vqg|%tT4$fG=?|ME>cX_{JuN*B81Fn5q-~7LTkSF5;o;U}a#%dHgqi z!2!iYxG%JAI0zO*_nb8Hj?U`)Mmbxb_JSCkAH`W^m=wq5T=q|{nyqhC|0z0P_|lxMevf9yd0lam^38+cK~{UMD4yD-oqfz&)m*-~{QJ!Ye$U2I9bo26!+OEfU)t_gO0|R~5yA|3+{1>9OXSKF%krzqg zN^Ij$_C#rCF7TI0}$A~Kq`_}doC*s{wzFU*i!oFnWPXd zp-&!nMe*S;S#?v{B?LbI;_5G?MBSIEyN419?`&J25^<^;Dg3K!7--*~#TwN0KPicT z?GPTV?aLfBADSgrc|~jJliTo%OKZlXY`*3!+9{nfY_B^W%l6QS_Z$fa^a)Wxi(2M( zcMNSrTegQHiG=Gfxsf+jv;ViBJ$oc^bKHu_o=r_}&Z5wOaIn{7L$ai!pLqBRjt#P= zi<4?CO}CYSJwNq?-3ce5qc99{oSNc_SLk7h3~KE|R6)v*wu&W3T;$;Ul)H1MBum@I z0lZ!XVGm2pX;0Nh&9Gz}u=ea6)F2{{4sfH~`0#g@!x0xV$q2oS2uC%J9NjI>fkd+G zZPXkP2x#Itcu8(m9uTN85c$S0@Q~T*=df>sAiJSBSibD(?cilcK`>Dav5AuOf*|0S z!&h-*LwFb?#yu=~i7WuAM-SZg>(1ilFv8LiOicciM}CYEr`4(RYr`^e>4p#q+ybz5 zQYZzSteyofvU`n#`ZUYa$+GQ0r}HR?#$k{5RKmwG90mhk0@E9i>UOQG-RO39v z;TnOv`gDMOr8}EdN!|;!O!x(#2cOrk7R58J#&gM>^@$ zvyCWHJ(ig0_bAX&8OuKyi(66$_edKeof`LF96>(&96#j&dnL0gJCe4k(~4Y(7xRzU znLYSWAyB$a*_dLbqFgs1j5Amg%Y@z|ItyM=4I^LkRa=fE#$BUnVh&bAbOOp%Hz2vk zPkUmZ-|zp@g*lADEHrwg2R2B$x}FC2UP4o@m;32Lf#BJu z@I{ae!jeiGOeKbjsKQ#%UxmFTg4Wq+{#PwEf| zPc{E^e+quhlNIxH3*y2L>jIP5tGu_2XSM^Eq|5Pmn_(lc59inY{8xpHg$v814_+J< zp`+EmoLpzBZ_-*J4|7jWAZS)UD6K^PK@RmtlX>5k-xaO$AJq);brChbVOX{t#le^aI>`NnO-ypJF_OESn&mk4{&n3l6ynwR)9c(LmPo%W)roe+ofpf)3$*BvaGX|@ana;=$5iu0dy z;{H8~rDgF<^C|czv->Y>8EJc&H=O@0way9U?zh(;BLr2#&Z`oS6az*4^df*3P{NOq z&^cHaL5^+Zm&?w}rGwC%%m`k~r1oBQRAOtY^^L>Lw|Te8uKlH2C9cZ%AvR25krR*AK|d$@ z&$xOY>V%IQXzG-0I0GVL^^PyLj7KMYn8WH%L$+$f7N1o3e@`(3*zHvN~VhkaEDLOZ)+;YHtd2F43O}qt*G*V z5{DQB*p8Fv*E$k8QY{FG`5@?gUhzPm8xpE0zxe!~2Y; z3~^S2y^cxB&q;@{%w)hB2ufwRBh!(Z`{mIE|Nb;aO^@v%P$4s?a*g)_<~0V2k`b`b zG#$q}cBW0h*h{(ahvd*2&4wAE)*03(NYrZb;%E8v?*lQ$?hc1v^i+hy&jQ6r@nNWCP9h3SlNgN{ zUX-AC5agP1a!PoIqG>!|jKZSsz}%^b3ho^HogLE`;nx*()mN-TV8mo}C61EN)lSi0 zobn1&l>BbZ8a66{uFZvLO{w*>(-0X}#oh-6`EV_6yvVS?kLQNx!Vz~g`D~VBJLc~F z&5eh|jq)3@jBk`(1@PiW7O+3$=`8;_r`SG@!RXc*6hCaj7M(Qu^{#fawCRakSTn-u z)9;}poeynPY^w50Lyu~qK~%@lM;<%eR9xN26)F(KT7n;*G7k}LQ8W7i5wdi zS)|K=XO58TY7K})~_aUK#a*FQ;=5Jd17{`qc z*BBi$IgZ*F+&5g`N@dK9IIO~wCL+h`j^jRtfY$r&wEG}>LvLtU)ifA64^K&*{3 zYa*Ostf)S92{S^4Q>QCTAY*?DL4e#Q=L<702z>1*4wnXcDk@Xa8R(K-EeZC0g=t5$ zXjh;|&=_SgP)Ns-tH@rFka$cE{B0<*x8%4?+Ye0g&DlKLoYPo=-2?AwpI8!A$EGpu~iQ)>95gy1G`Yzmbz%1H=BkIbv&`>$Kh<+$p-cPB?+%|3DWsv{b(sBu<+;C4{l@io#%m{562t2NrOs^k0568*kl0;egk$KX1=vMf~MnUWb62 z-(@WN96B_5{ApN-b$mwYn!n+WA?u?&EGr-Lzov|1CF`ngiN5^Zgu`--g}YpC9Ra!I zGDBNPZo2fAwb5ZQv1De8LsRd$p?Lz>4D>TB`~o%n1(jZ_DJl=k(RYnK)T&TtuUd)~ zckRuP8fBl7d%1VXz|@QdMQH4R0cL&3ZxihF`bUKGsdhH>{4!nhh2_+u;-I+`rFRQx z%U~*FGD*kqFmP2oSZqmt;FC-wmjUJUJ5GL(ljEd2VGrE$tns3wzLkW{@+MpsTf>+2 zoB@M|y31019%~w^&vE2GAe-n|+#pHa9_gb;n=Jf~u#A^i=ypdFN#?Vn1~XII<>QY)Pg4 z3_+7>CtI~VLOFO2lbmE|9F5l-z~&Yp;ND?pjk^HsW^Sb+YH)47@H2RyxvY;5x({kN zQs&{WNG=PX@bN|}JeJGrQ-SEa4IyHzU`4aX!mr2fisrL`{1}w?(Y#=#XUIoNCs++0 zDyhPdBv97Rqh9F_Waz(O|ZXX9wQ`7mZi+v=GCKoIu^$a;W#>M z6FZ4cG6ups@Jdz(-Uw=w_Pv+=1h)M-m4(uf;{hZ@nlsRF*Z0)HZbKq;@JX^c2quNT zG#TRnHs~-!jH-ONECbtcqST;Y&tw4utGE9OUgFw)(?V9j{Wjs)t>D5pmKBOXC1t)* zzjy;x%~p0st38kaKS030c_G+ExSp4RMsFFY@J4ce2kNiS3#B$1%0H>1SC2{9V10_- zk3>n+%h>1j(pnRL*~Cz#zi9A|Qbrn)An3^DG0bc~y+9^mbRO=@v0D&wi6Qj{$=Rf) zO8<_Z2mRh2lPpw5F7!HBa8p@QIb~9x!#!h$>V%-U)E~jM?)DTPBymb+yV_=b;d$IK z>t@D#Du5eFv_ya!z6!g;@glg=ybj+fxiknNsz>E=HZP(6t3Z zskzcrUrC6aZ@MBN=u^J+&jDEY-Cs>^<_Z%Wg`9BwFf*9!rcPi(4$7j6HfE}uUQ0lc0Qty^hfEWnpvShLBqWa zq6|WkzbLzIQ4Dxj=W z3?2aJ`(r60WvsC6k!-*prMD@xxEQF&2!Y9?iW1juU}kumUss$>ClzzR36tw zAJ7Wv4F#%cw*YN(wK%B_m**(uoy1WlFkv6X*)tSA3O~mPbrQJ1Oir&{d)Pq4Sg!nZ z`;WE@4T$@h+t@%PRkxXvMx-jZd)w7^*}t51|BDF^)JliR2icI!4j`eHuEAZZ z(G_?C1G?m7bqm$mvHwv^=<-a&&uyC*zY_puB~ z+M$j+d^YCWSEN+5HDXGEXL6d%#l8L&uN+qKDEe*B=&m&ib$PdUw-8NMoGK$Pe+8a~ zvdT#(z{nLpES&!u$6>0&R!yAsWOfoy$!|Md z>D=I%K6W$_BuIQSsYHz`Z%LoiR&OaRpoE>G5z4kl?%e1#gyqNpY?LD#I$~M|Waf&q4mY}o5 zCyzxz{3ocA0UK{%hJS05p;&v*@)!%o{d*125iG?dc_*LhmS6C+%Wi@6m$|4_aRwIh zR^gop21xD-NtWA5EkMH4ErV21>MJ>S!F+lis}2DAZ!ivv(#i$$C6?u^(d#}QQYPF0 zJH>X@FWKN!ZX8r3d$MpSHm&BF@)L_${CCTPpc&hg5gj`OwC(*x4$z6$>&*3tn`nLq zRsL_4r0alv_!aCV6=#BMT^50Nx{rQ!i#=JPVQmMoyCo>0y0t`xddU-5lgH)C zrn|Vl8g*oM7eC+?uKreyn1W^27VVm2>Z-{o-T^edO;T(OS24{zi+V*vQI&djahOrt z`gOi92icqqD{8A>$`>AQ;BRUC3xEVnVtLWSnZ_R)xK-;DoCdSrhIgzD+8z4T**52| z=@T_wRW+W(Iq$rv5Nzq=+Id6#j&sChn)a08HD(2|&Ty!r-Q0}8uUt_qR1Br!a-#`N z2EEN_WezAOSAUOshB1gj;%hGZdl}0AjNvDel~!o)3H(i0L0blMnMRjH9gSZpcI0?m z$77TU#M|RdA`1d~;GPZP(NwbLW$c_zu7v4clsX$V2NxFKw5~h;>Rt4(D1FD*NDCaMnLuB(|s~V1vdG*_B)Fo0~x_3hAINIH}L4imTVsl$ICG zs_(JUJ$LiWYtgUcw1Kb~nnu1mw3I#1QHN{#xjA4$SD;)zX4)U#q_%W*G1RG{@SEG4?p;;1sa_J7h$~p(~pCDa(jjsBo&Cjy+{0``&YLdF061%1>nr~+ZJ`T zQm(Qe;E^rDA%NkBpxI_3bS$J`cngHFUxGlt@{f_YL@IY*YBPJm6-dn$cjJmpj={e` zu}jAL$eSlB?j(cC$;9G_$kDVT(y_#mw8PQS(qYIUgv04zMOJ~y$sjMm@!-;5ikPmu ztG*fVhDK9N5#f6V&SKP_gW4nex^kMrBovUCUCN2vM{2SCO~Bb z3s~kyAPh?EjZ0G9H;#Qzqj5d|>`S{{vo*y5s*BRS00;v8m&)bOK;pvTYK&-tcelF; zFps2$<&4Pa@U3hw<#PNK^@*vndYz{92KN~#j)0|~Y;u|MAZo$lQG0i{YXHGR zjDV3asqI!O+PPq`l^t)a_EP45uyP_svAV9^m$Rd6y0E0fwmMI^_YJ&vx_2rv{K2>* zkGP_fK^mqQrCfmSel~(Q4z`zS*#4K-hkKMnPonx4$6O_hrTcYHALQ#3cZ(|64wzm2wG zH2&r-3XL?BBIj%C5q}I>{JB0j8NozGta3^8!{v!9(k%HcYb59inU174N4$^Ti@e_H zjfRN+j-~MN@-$-dRk3Ie4R5o&P7R~tAfXPE0)%AbOPa^h0YM!>1Ol+PHsm|hfDIqn zd&09u8ulFxq0g(2p(*()=L>)VFYXb2C;2pgtjRxKMK3dW7!8j5;i*9@h;0Gd&3+n zZHnezzv_;~PU@CASP?OG`++za5c$|h!qd!d!csMK?SIZ31y>t#bi2|D=V8Cy>9IvI zdMSJm%w4CAs=8>UaSHAu+2H$P?b~-XZ<4x3q6hBO#sd1d(E3@~wS+Lw(?gClf55wI zNa%12qTK`PJWJVY*n)dbQ!cgQySw{=SqY&NRjSJ!fyJpfn%kyazYvkeiNDkxH-x(i z*2rs(%7c2E8PM?&K;qBa0SE7JEe(Zh>Lmw&ccY6Mv8k zK}8K2Vy@uzYT~8yPZw#gvmvNx_U}-Fy1bPDVcL}U34}{49SI#a_u$_l)#g1>*XJ{L z%nCL&A-2r*MX^rjN zDaUBJk|$kPD9DyUz!%NSd`UZX`stl$w0+~)=S&`Kkm{9<3#@IO=mO0=c z^s+0aYTDLAfN{MZUDlql--hVjbTcF|N;~Bk$#Sl4r+RgdWH#Plb!iI*V%8z4(3W6i zMd6K{0=MX`oahzM#<=JMaI&Y}VDj*tpb{JYW9!k_1#1nDL&Szt8!~vNybYxbBi}{e zPljJ$gGGJAjEhSA`BUO4UT-n19*I;bT_j=D^{xzQ+<64EYJG9r$t#mRFubiOoy?lm zRUQ2#rvA(*{UJonr>f*+U+UEgmO>=pq=>Sq8L0|-Rb*#S{Uq>|MJRVNk0^dL8Dw`V z+*JN>{g5_8;#+aaFlgbhL!*2{=wJ9@$c*p6nj#`0v`IfTL4n^CbcmZbMxXjqqK^f2 zzC5kN?`X_nrbU0&#x*>3Te?)qefKZP$F9qV70m(z#w9R1N96}CYW4{k8nH_{SE+J< z!GlsTB=adLQ65=!UkbSFJDo^dX19{}Gq~ml<8U11Jq^D3BkMNy+ytw|wU!9w${*i{ zA{ta;V}36smQ0GXf+_okaw#3(PvkptfyhxhsXOdgL&y4ul5pqBsj-a=}gDcU`^ZE8n+|bvZ0I?0*CKz*3B~}*<8gRvmV?>F0vd^q3BR}>CJ}|zjm5w249q5Q z!-$|o)O+6=) zns?jPW2go+rnI<&-HMR4#=;c)oEqK$zZ!;)vC}9E|m+dHpb0S5rLJu;^tW>12KwQvK_%# zo@x_;Ppa2Tu`3M1;&Rd0sOAGbb;21YSATAIA5AfRG>@4J_|G-ZI!TaPGp~)T{wrpM)yEJ3L!_NLfzEbsF9*gNfrTOZacrx z@^+}OVuYpId*d2Zy=O5x-(XJdmBpC+2f1F3$090Bo9~Xp4bk`8Z{M$XTlzQ@j45bA zff1#`MsabOiAl)W(ACAb3US=!hu=aXR?p)EW-`{k82@%D;Kp(F{zQF)mB*v5hzvhs zVK>01*}1gpyauTsXU!V`km2cur`5$W0ju}A=k;y9RtfOZ-M$-`)ut1r_Z;O4gvX84 z2DSd~^YVCqxnafyjwvKGL&A9Ull+zdb^XnWcq#I6sW9VMwZ7;LaCwAqAU!0dFqrT2 z`e;D?n-N$Q8j}=2C|!rDf~87pF&mLcZ(7?F&yOiDdD(tjCn2N>=W^gI2aJ=fVWmWXg$gH?<__9xIfh9^ zn~t^EZ@1Up^lbe8u~|F}co)tlIO8eB84;HE4-;1JDP<94C0q+~9DQ}l7tv4 zS4WpUzq@a_S~o6`4DVl4m+btaQA$(h0VX{nJ~gNuXHm=_M;e=mA@<0sr8Fv%UdW)} z@ZJxlJD8wVqBM8QIFTmyAnS>udT>a_W7m*pNN)%VBR)MEWn583vi=Msx>(lz-bWbM zUbr4;@BDHw0m;%MmvCF%cLxo^af)<;uLhMN~RF8n-*r zvnx!$uxESUQA$RIjaF%lic0O51BI6-_^7$)015Ch_#^NUZSa5Iu2)6Es~XS=Cd@{7 z=*oM&0zub6=doOEWJAQJ_w8@ifUwCg-5p0vkO3oLBfeN%v>(S|tetfznMw7fp|)_W zc4*J|OS=v2?zB1($J2UctBOdtjxU_ON!u$2fzo}< z?GH^CINm$xtGaz^UX^4|fS3xe8>YlK#=v{#ajFf0_>u%E`q99;_|Z10y8f@*C;%s^ zDrJOKR0r8CaS_IR;W=x^1f|Tk7GCg!@WZEZK;x1~w2j|>H2y~z8rB!Dj@pn{_8{~u z;(rZ$j3)YPCmQ;dkdaC!@4scJ$B^(ICu(hAaj>_3pE3~Dg8=`BnS_pO;R)?@k-8Re z8y&(qn3)=eNaDJU1P~@_HOBcFMxfEa5Xi|51pOkS=%;X0IjXTi!x%IFnh!GsRb6m4 z&#wsQmJO$slR-P1_{H-P<;I=FW5fy$9utH8KA2Wcv&B4aD}T6)Pho23>9CCBVY2R(;I0=X?>-59QDn~pAGp*-dvhzu~K(6 zF45LoNHAcE9OUo8I#P!7y8kBXV>FG3YmAJzIaKR-)?Wf>%`cu)853x{s&Sk!M+7u1 zWZQ*V8*|Xu0VkO)pO4TO#GV-q_F_>qF2-e#YxlRGiSni_s?5z22m2BgY|K8v4$>0l z+@lW5Mb)FoF^*Apc`jOD-(kbiUik)-bUFPobR5Ue$+m#@376rLzb~;v#?Qi+Zew1W zmFH09Y^9TH*O|A{)tYH9vB1WB-%3+`|&Wdn%9~D8h7Aa{?>6q{wXgE2_dShXd0`r`f^QA@dnW5Ny zOssny>mx_i2cN*X#wm#U+&M%CAI0dmXr2(tz&Lu3r>byRgowElw|H?cnWkK*r+?Mk zy5WQi(1WV6@7nl~Lzmp$ihIZ2EW?ZXk}g~%SUKSJsk!aO-jVxaRz3T>;s)ShG}x2t z+Kt4Y#D$mBs6&0H1dp(){ylepu?7n7;;_P>vJlic97RDu>#z;KasMKqrS2=!&cwo1 zT-oVMSe8sM?)t6k?ca!6k)L1p1`YjXh2k1bY`D%*EmKP3i@cooFI{^UMp;byyb$Y~ zn{chR8qL1p9_cCzoVz`G6T*gTE};t@UBz@6&Qbl!Yj~bKavRp>3D*fO)XeYPU}MqQ z47~04N*Q#;-RgD8g@mEuf*vqWiEZ)`hQ@FCxXohQ<%)E-6|keb6_TB66cQcQn+e}& z2~7w=9~&7~!3dTIZVzS&obASG=*>uLL$|#|KY22TpYM99>unt4lDrmrS5+)UJGO#; zrUNjJ3;|>es2DKxhP73oH~U1>fVzM%GJ4w3VqK$1Gds~b4~w5$d23JfQuUcB9~F)h zg^=t_X?6RCtlkz?c9QY<`{pqcFL5*bdZ0eAO((nz^ovx{ZPK)c=&pJM1JEanEL^hN zu`qwW5totqQFjG!Rg+@TOd4hgd}0E@#l>5a4^jQwEmMYHip<$H=@9a<_2F4`R*)+a z6i29}D9an>^W7$QPe?cFW)@J5H_D#y!;&{lfP^4m_+50~oU+~sU}hd54VabZzg$Zj z^;=g~BCM_c@%*NKdD{EpAs2y{OD&xWdsOfkyXbr|^c5?6QqtQ4L6ziW$)mvesu3^2 z@&SAftGnOeAlcdKYV7-ZET@d`2C;nJ1z!uq?;F#3ge-aTa2Ngn;=cAtk{l9O`+jt` zZszwX=y1{>N?LBaH{*9x?#^R#g5Klm^i$^~XLQd2Rl%Hdo{jg8&rmBYyDW5G61b*+ zkx?aT<@Hydk@#D3zD8s2t@AMa+`Wf#@iXT5zV)At;c&1OT1oQ6Xn2ip8-<5OB!@p0 z5Uk?C^3gu|lHbb#sZmHjvUfeBAl4@>4ZG|Lv0^N|lE9slW`wHb#4a{-8cJ3eRg-I9 z77%Wy6ia-3m0x!ZiV;6fR6)PCcFU3Ipv2(Km*k}egmIu6#1K%OtYr zEocE=5K)OOz6i+rEfZ17N7u!$>qw+#u6w)K}~5|Y9cDMQ2z2T z1Y$YCpR`)s?A@efUJq7HRPT6Y2}#SC*)s`zX*T_4B@783u(Qdo%exF7j1(|JsemMi z0mAlMpjeZ@D+D9ti(3sJH%Z^AH-ELQ^^UoKTTEMO0_K*|(Q!lk^Cm3bK+=F}Vo`rQl&wOJ-Ek$ftlb1LHDtw1anHnheErji-_NuvL_LtY$9 zU-Z6z8f8@43O8H&bOS3Di<#)S6#p4)RwLv-CKz_3!}|jveydK4ttRXoI3VEixTCi4 zTeTjhtn|Nvt}0PqRTB`Sw;$^5j|Z%+Ia?}pU*Mpf_AF020OGFmYUr5LPWx$_k?h0H zNbE6|3&ZbzMoa{g=(-R2tdYFDOS}WDa+4*K*aE zzPd*?z}|M30ay0Lk#O$aT?DLVMp^%t8FQ01KcM@=?wFNt5yy0vUyeJ9Kqhf#U|uh6 z6q};F;!jX%Nzmmz*!Muv>&S+&wCSGuR&Y+D{#$>XiYi)mDG={9QQFyh-q>Q<{C&iC z?U|9eG^m3S?v}J)lf^!rW_B~wU<;!1A`_oqsH83I{^AcmKcYnML73;RlKJ0rduE>v z1EWLeOI{ma16{HcGpDsfMhctW8kS4n$Gk=Ag;n2R&OG(*Yq9rWFSA~W@x!)HDco6X zWxnhVRFV+g>)TrBoUV#mH^BQ~jZCNRe2iz%$+hQT$1KQl*&l=19Uh>oIx>im7)fHS z^A5~tI}>=qv=RFe;czRy)>l1u9zup$HB6;LW9faA*>A=KOWCzh> zntiZP_hTEsJ|IOB*$g-+GY~M=ZvJEh;V81S?~;lv=}LP`kS?g?v{%f?{^!u_-60rH zV3;WxW?2ZnvY16p{(-(AoB_rNUp-jLpP#|+q=wIH_}C9=RO49+OeWCA8*?qCUYL$w zNeJwPBrIl(H~<+$JZI z(?yv?KPPpN>kI@6yXw^Q%n#ffeVdVc<7_d5WKba-X7Rk({lW+e)REWj<+pECN zEN$;4avK>)Lc{%aJ(zs-M2_eYgk*T-?^2dhUm`%TL~fp70g*6aB0e!laT-eLS5{Z?&hc*?WdUh<8RiV{Q9MD z-hxjD&+Uq=^^aijdriW+3D#Ff$)H1ti0P%PmQ;4f$E&exDtTc;81zWrN(?N8Z<46K zhYl_Ie9dWd@kaIoGb_X>SV^8Y-9zNTzKy=-^Jkn`?+#G0^IRdl2Ki>Y`OeA6BCv$N zZg$}9NKE!fM8?mpF<}3rRy@3q1R;A@M%m7ix=|?Ol{D0yp^`g(n;McUX0Frp^cl(@N0g>YA>EfnQ?Z5+;Nc z7tK-5xL*6eg|LLzZZ*QTY7#IoR;T(wl6ro6M>n}%Y|W29RNRPAox~?K_!E#6i9kAs zVIt;cirF+w03(4(as-kja{u9Lm?ZNekx2v;L?t4`5uqokPryxIu#CWYtWDl~1%r?p z(pI2Hj$n%Jqlr(o`Ad5#Q-uNN#xC&ffNv6U3R z*B9ae$M?02FE+>n_<`!fFLBXRo`L28@GstnnCI12{;vv}?;%dBh&yn=dZ|==^AVyh$@414}-(D}Bi#u~t$Kp+M4DKsGyBb#1Vm ztEp9|ozfif&gM!2uH-#5oZ%gP2hRt$WrO+dKaz)_kjiG$Az5%I>8ktu zi*YZetj~ArDXe78Ern3c<;{d3i~3Cj3Id+?2OTUg{5{bq8`i4&g(!_aj|=+!7^Z;k zc3x8QuDJVLOOhX~f5`FKAnLC12T_%sCQM!eMVSVzO6Uvv^UC!c-0GD876MxHlK@p} zxkFqr5t2Vg=>A%s;5Ey->XVPt=BsIi;jzQwCYBGvDUqo!E_kNui2wPC97F_U_5Xu` z1Z#d*(iJoj?4Gq|f9m3h!SlO4RK%SK8VtxU3;OsNdD(-fg-@t+JQ6wqY54)-c7LTx zTe%BIZ7c#3iqRxWN7TpXv(GGcHO4e={+CaTCx*XV0N7u}5a*)6`RJDuC2AhawzY*G zicj=3k@K37>-3+kc=VpplVks~5rig#V0UMg91OI`qx!FLxX)Zuq{2?)=qxZm(jTVy zYvDlxwXjb(pDfd~XnC4>dyQNSP$6(((~!ZW$CR6418q!9RTqd>zXX4xflAjIFz;Yy zAjJ!`;Zs}|BkrG5-}AQHPS!9(3plm*fjT!xlMNsykJNd~VuAF)%5ZWN?sx{U5yy_V zj*T(FI1-Wdyp^1#%1Q`hWkMPFwPDDUQFM_BKyUUn~jt^w;x6 z8b1R!7D4n%V^x%#d9H|z@r>GmO1vtU9`Cuy*WP?}VL6aU+yZ+CD6g||&R~EN_ee{8 zkN8(8UGH6<=w0d+)zRb$3UqmwAg#h(i8B?xxvhT|CZevHEAA8DqbT3CR}kFs&6z1& zI-^Nd!@Frnk`J1UyPj;Z>hu)-uYMo26mRfDvUX-_i@e)L5ia>pcPwg%jm#m@KPzYM z(VPFE9)JV5gD>J;mzM5hn{9883A`!u?0Hsi38oLH9`eE(!ATm%{izgefg$rAU*P}2KipxUQ(EoY%9&z=UiCQfwo~TACC0q80CZjmhrDgom<$73a z+i=}0hay+!b*!ax%84-#bv7HV_mUFXoo3*Qlht23@QrKEa-F&Pw7es|By;#dT8Qw* z*b?wQV>!;TWCU>JRqg-FUr1ZuVa~Oa#qBcv+ z;px(tSDBxp#FnLTCSD0%T^Q!DoFO-lK7r@_&j}SDtbab2G-9LYa^tlxef*B0?Nv~%uHa)F z?Q^KAi{KU$$4zT9<4dPy47-JvsAP;14}`8U zl`4`cZe8|_YGjnu!o3`;1YZCVFWsX-_VvGbOX)cyDfG;V`QPT*=|ZFcXAm8^U8CJJ z{?_mD7p`IKUS&kt&H;(DnBJGOd%c&xLGWJ5A-rSbB^$KHzhtqxUgqd}x5(Qa(+~~cND+7q;x)YPsldN0^;jOKEEnYCiSUs_)?PqO7w*Vv& z$d`E+QKA7A{r8!1+A{MywXWy@>7yKe4*2}4{o)Tn>rcBt-K|;0%e^skhAR0G`b8~Y zgkZr62m{iOBmcIee`QrqQQC6)=rvir9L$<0bKml2xspP7Z9k}|Uyd-dWUszw&tGgXr=&0SGnjH2 z-p}Hww1_ip;x+UE5t9IfM>gU3EQlZ)id+9tg6dk)J#~yttl#^Hqe7Tf*IToJZNOGm zJGXskk0I*VUcqYut@NL9Xh^W%2ErGlRhQVJg3q+ayuYAX(z%d+q=)o_NvOX5Y;-N4 zNyuP_pBO39gR0UsI&cKJKod~qO;@5QT16+o6R0nCBtw>tnnH%!z3*q9= zj>eq5qOEY?J$B>U$0ftA7<8zK>p3muveWVg!Tmsm&jeqOHkJOwconpBg$D%(FyUYX zcXFN>Pk~rw@uVf0IqpH}?*Sfw9&E^9P~(6V_0zK`ZqszpeW4Sm5(?*cJNNce>wFJc zaak7xm07N-SN^iMa7k1z*Hg%;8*I0;uDY3&;%6H_F?~}B0iH=;)2ERofv_#H*<0%lTmlQ~8VV(84#{HQWTi&;E zDSc*RThR!wyhDl=ExvOtnVk0REDweq+a(Pq3~*V0-ha0_OYy**Gk8jM-z5ORhbese5F8gTML|DL}zfqGZx_r{Rn zAyROt?&PgbhCiBYI1haYNANs-ER(2fzfKyiRSSJ&H@(Da7Mlmf z3$lTSLV<_gs~aqt+M`6OgOExLmueCdl;tZY1ecuWNQ#ximnIeM^Fk_Ni>zvSM&S#4 zoY}ktVF!yO>OALep(y?h)1mwen_UuYPSg=V{$a7h6rcXdn#F2dpYl%<6XO z)$R$k1pA@1C+R(xy3!tg^foASSkMvuAP~5%BBp=g8*0-X}s#2nPXl3+epE%t2C(5=zp|Ow+RO?LidK;ecSpV4yEh zT$oq>R3v6Wnu%;O@Dq-qFm;yyht}E$7Fi)Go)SUBCH*rQj$zI`e#w!Ps2X4e8I5`K;HIS)d7HPpZr_#BWP7h2Bm^X+4WWj#Z`!H{)E*2v{u!;g)KIq31|FdlG|DJr zAFUq#jZR>3fOG(025x`h1Q41_G&YUICDU9&mBa;*VsQxG*HJN@o%9Tp|Cmub&b~Whz`4zQ z$LE&u0d~P6pJlEnT43sH`r z&52hA^KXjhX!X-$sCNb~_whEM{JQ&KEVDXv$%AA$2uiUH^^YED-43df6jGe5Ja%Fc zTe)mY`U@55omp5SzW;t-Se*n*7~Wp!4ri4Bc%8dz@{csb8_(gIo?%3~4Yz(Xthp1j z&0;GXmn4I3ja#R2ffg2$XBa`1Php&fw1o-OcOO>WiyzBWvh6@@iAAI?Oil;17ikAX zJ@+&fB#y1eAP03p{WxoKCSq*o;(`#M3YA7pO@WVg8;;pKb%!VMg{D&I-Lb%=$I#QEn*;VCF9`60BT|B6;dj#ts<@6f2sVyI(7%1PtgC$VS%+>?(BJ={#)VQSJ6>PXI-NW z*xLddujoI*WCm=$;*h~Az6#HBt~DYzZGMDwUEgQxjlBMUqQdaq&eAkmecxH^sSFcf zt+2(2-FA!bi(dJxu?tf8mlVV?SJg&f&RP#gR?T{UsXfQJO;XzD{-Hlrx{GU%1+BA* z@s3rjQJ--VID1LlUR7$Lc}%FYdy)!%gp}!8=@BswZSx&|E&Rty?V0#c%~6pTtm%bT zq^n|nFGG2;i_egN3`883#^5igUtRzJyPC_{cNjO$jkGFz9G2-8HpU;2C(u+qa0HoDgKV-nK^h1^<>ED*AXBop-%@}<^Y@l>iNG0#}7}3tr+_d+&{;2`Rwh0 zaASt~!oq~6*Mili4g2)9S_$7I9~+p3JM32Z4_zXW?dvvx`PHI1Q`5{>UutqEf9a8Z^Z(>@m^acI?X?(p+QH_& z7WC=vq&3=-p+zTdq3O2Q#$B}2Zt*Fb^cb*kJC{h**lP{@zvw-f8l%rm?xZOt7u^^x zn^Ep{^&)oA+mrAB8Cgch+C;)7>1fe5l)7h`n#@Axiw{TE+7hLNEnBEU;yPFF!|+_3 z?YDmLw{7EeGivyN~dEJ+*KA(R^AP=Ki87jf{LXX|4vov)J{P6&_ zwrJeXxh*0S==hb**f${XMahMuwQ6JPUiNUpzMc9Chi@-(%1ziNyPL45n7g($=39DmrTW2x2n z7J(UH^=gUK_|;Gnz86AiKwkB}Fq!9%=hz-QoA`U_o&RYF51}C8A;;DWK?Q-1WmEXg zz#{B8bhc3OtRkQ2;yUbPIi||Y{gz;zy6M3uv8PR-7gO7Mcln$ttaHl4IY?J(q1=W} zlq+h!SO>A1>O`bHnklMA?awFS$d17YK&JEmDQFpKombyyxBQ<@L$1(enkEccrq?!3 zA!ko;x&=IwAr?)O+a@pouThS&~8-EdRr z51lpRLx^UzxZxovDV*G#y)_Tq7w&RC9WWnej-de8SF=RVD?qh-v3oXxtEJSV2=rmr=_y5TyCU;_ zk#hB%JHS_YxoFVxNayI?*Mc>Wh@355y9TdzluntNQ0^7@hsrH(>V?q%LtoT}2-)k%UERhLsCBWuN5zK}KvxO=PcuNYchzIcEIe z`{Kt;P%9ooT|rYdW7&{I#uxH0Ju0GQQnAAI#2Z*FudbObJenIjLUtj(dOi%0g>NEQ zQ&QKZ;y$~og}-_ktrlU4Ao=O0Iyk1fEA$%u{c8l<6GmQL2|W0*Uc??4@1Q!f&m-V< zf@pV1<(V{aHMkog zu0d8SfAu8rf@RVS3s;SH42Q@$KAoB))*S=$1vo$0s{~%X>ua@M*4}De;QhY37=cRE zg6bxp9->~O`YC8p?Qh`g*xsp7{jmAC+4hZ&smeL(;&38SA4$sw4B_0U(WedEJVjsW)-1!>9 zqgl$^CtOjP8Q?VF+-XgS&V~9_uo5Uf0h@L%yv;!O9x#z!B;j!VENH9jA?t)RG?O|D zd{MAcuju!ej`N))%YvJx9($EHU`@Jqi-hJH#~3S1}_B;`-Hjh81XqQwV&0 zt}pR7_(uAx@nN%Yg6ScRgepx5&M#_3xd-5qr1M?;`zoKTH=;dIri^fPy(pmUEAY}k z08Ts%;=}Qu_(agDOX?LfJPJ$d=>oc-11Qh>S+iC~mDe;n+56&X1i*0l4m-}Z%I79+a3WlOk0?DHir9XWi)xpdDW4YtsjKhtWb~25F!10Gj_qF zs`OeA>qny^xMn@Nt6C(U!o}*k(jGM=;mzP~D;V@H^arEbJ2v@Mb_Vx@N85va9_f(~ zOSkZf`oM*ys71<_OFxbF(Bc*CchmI7T_*d=OD?cBNJ8^w_Q4FgLRV{EEKK(dbCuL? z0+pUY)7~|%Y6Gz)gUmXkNg=`%!AmL9J;SlT28}=+f1K{?)HwB`LzdXZ#f?-rA9A>j zFL2lz@^^PJv|qF4?_rXd&**T%GVjPy<&)vj8PY4^E1DW{yt$~~f0eF&nn}`%nka)= z2ugLB8);ag zm7fT<_)~`+r$y2Y1=s9x;B&_I36j!&4BMc;rDdr#`gm>hpMPylPmZ%}Y>E4jIOt{Z zC(Bx93x9<5wzV)qjk~wbEnr-l%D&T|X^g83)?)N;5JTqoxO=`AC3Z1sQ#mhQU?hy( z*6!HzF`s(LD}KsR-`71A7#gMI`T2}!TK5vyushZZ$l+Rq96cO>xLfLD&lq}l%XUhqzxuvW#7D0hW zZL{H(tUd&CI8oWj*qr9gBZ`Hzkf>m52aDgg9!xwQkr6n=T zPo$~a#QvVK^;o?4=$N1b$6n3@r9$2eK+9GsqUY)1)NA^NoX<#CUj#_Ok7NI3_Xr!H z#3&(Z9-rjukHWa(^f#eqNLTvjmu?#Ew|j)A_K%}D@vdwlohuX|U8QGgF5C|vL0eP& z29Z9teQo=km8dzKQ3G>SN+FAuI9#`U5ew%IG9x%5#|GZPjZ#Vi(8+jtA287MDm}0Y zRyI^em?pCFV+BVl4QlG!GIOvKZZ6EmEbAxl`|Zd6eYFnZ4ltb9u|XZo4si_E!7x^s zp0t{Zvkam#qg0HRy6G0j#A1PJf?8S;L7A|A*QOy4*qHCVM7NG!=VwANfqKj&2pPu@ zTX`*~Hqy`uRz;9w17!(!oP~mWj_3IE4Fy;m`H^bwqON&wk$(3VC8EtJXJMy$&sWC4 zWcQyB>!VXX^KsYU){KLMw)Il*U&dj_ z2DRFWoM1?F{c5lh#?DJu@b@Om0I@f2qJJh?1t$j^!K|<7);OTQG-r&SV+3?MBk|#F z1g9IVtYV+JguuwYCl>BunktaxK!*%2kl4}>&x%uXaPr{)YZZCI@4{hwXM-;PA;@7Y~k4s zJ9$K~&Xs)da-Jb4ZzNIVNf__+&qE(5M~Ag*pDI zUz{?nFvMHnmQi8X?8p|;z}UlH{r`&yPPxE*j|_P+&GU~E*cJ{I3^TI&`c#01InFTo zcF15Z8rF|eT=9%)NOVx@lLQ;UIJJA!TBvG0K_UeJJ3z$0bNf`lGsKP18xe9+|0F2M z-5@9b^^CLl8FQyihBT>*T~DcXool5&Iy$(bGT9IWS{+Bz{m=Wnun5U0Zn#1!I`eWD zVo&;dHwK+(M_DB_sb^phI?s-&WS+G(e&ogMT`7Um1AG)kB_Gi4Pe?j{nj7H?4w*Qs z(e%!;A$Q_u^=St0=!w!n=+A9ALZE<(aI@p1@k~C-WjPks#}-U=*l+_U{_z!^a=&8v z;AMgDctZ%|mQPO7F+;u{5ezktTTjyG+Om@y_fK`1gZkPuvFvKoBK`DC0Vg{_wp~L+ zw;{Cah?c-%|EF>*ns@LK+ze9(5$Cth%OT6257f9WS)5RU$M5OaXr3O1W;Yd)TlJRt z(@<^ArO*RjQCz3LtOij{D68nLb7QPhRld!>EWP)gmI^fgEt#oT%y8Q?12fklZ=Dwmz*jh0-j%pNmikgG>Zu89k-#DKWOH(MuiEkM zWT?^3rNz|q8VGu?-9-iVj6=rB%BB|!B`;GpPyY6E;|QdPBnOnnrp+aUV~Y4Ka~1?J zvVJPuExpc?wN^ZYkm1yh)OD+sH|x;ZpU4R~yzGqcbfrt0Jlk&p6037u-9t{~a<3Wv zvJKzd!Ez2=HzJQ`rvhu-)n49j^v_y7yw!7WAs2Jyg}Kh1{yrYa|E^X`F6@cliVqWa z3fCN1R@qPaI;;=z986>=r;)lvfzwGnfdO|{S#f>N4^Un=xprloO-EezVS9?a6Z&Q| zEm_K#;1q>JpvFmF-%e4Z^?{R$9E|yQuYo&@#ZJ1O#9cHRhr~&82VN|8>LFjNTm;qy zC+x>~5P-LA0|NY$F=)Y`BR~;NgB8*{!`JOZX``X;V4NOh!RgiO1w+5PdOc;YY?R%- zx{w5DK(SL7;(3<1zMu$En{@SfEEu?g1^I>%3_Vg4+^*{;y%%WhY$k?aerwuu*8(XL zc@&A$-0XNMFv9&oQsZmRaxu;*CS&B;{cN@jWsaiAKY=0j>%}psli=*!CRCLj|M1`; z%DJ+ZZybtyv6J-_5)JEpOfF6VP*Zrz^R^$ot9;6{V0uNDCDnzg^Y(?5o$m!b$yreK zJAFatd}HFCEb15eg1C$X4lcxxx(lht?GQ2ky(+$U7N{t%Uc%QEPNf3;9Zj0Q1qumG zo+dTQiFh*9qaYZBQ&Pp`xZ)zjaSoThUlVE4+ac-J5(rgoI{m$K?qrn!fNtd@JP9Y5^^SU5>IcHLB{-ttPnWrb zU8HGohJ09k!P=7ZbVaf$!MeqM*ALix#W%~g+Y+3!s&4icJ*uZqH;hh#-By7lPPiKn zY-d)W7_5Kb@4pHI=H4PBzlP52&iaf4ttCo*K_7AvE_TDH)LvMx@7D}sd>!Jp&Vxr^ z`cg8BlUubbJZUwb6Qo=0<1=YUj{&FJ5&`ceAKN8K2BWCw>j#p*$zkg+Rx7CJuT6iT4-yCU{%V{iuro+~H-y5^$jwZbEoIJhBy z?_Bse@x{+?+S!cRsLffP!EzGH5Ww3ve?8uX*YyBSx(wT_X)u!dY^c3S_nVepuKHH# zVUV^$G4~?oKw-^celTBV%PtrPd!`>|#!!KLQBq$!4y&Gsr|2C;E>2vKfM|!dXVY*% zzee4#sWUakT_E>Vw5(Lr#E>x(F$tA=D?JGR31(0#lPy;zuD#&Uuu`>)kd1JoBYnv0ja%OX>U*h2H7S{AWQj86Uo~YkrhA~;=YMja3)}-IDcVz@I zDZ`S{aP)q96RLF@5r_MrFL_|LS!b^+>`@Rghbf#*l1!L~C|!ET&nm{ae{-f5Ekh-! zRlU6CYAH&1oRjUvKZVzr|AJ0l9!NKa`0lo!9s#X@U4&O>^dF7+eS^9SBNxr|*v?+o z+j2Mjg}V30;eRF0PHiT{Xz78^0o)xRB4Sxo|G*$hlDJ45o0^f|-PDpy&XS*gi(=%e zArKw)my*oaH>HIaLoVVr8~a8qt7q|Q5Tf@a+WC`7NGSee5HPtW7-d`i=EleBs;j~k+TcKr z-}J{_qv;}HxbtJjtTFqq^TUTv+puZ77 zIoP5x%ekqAU65uIxrSA0hyQHG-Lldf-a?S{PR6FZYPD}*l3lnmX!GE?jQtPRls3L- zYj@aW@QP{|CT|CYqj`PE%9zW-29hCmb(~>%gx;!2vCh-5s$Lm5=YuKRjnovfVKd#d zUp~TiY~im4ATnnsah86?df{9r?RBs~pAd}F&5L6}0@D6_H2Q-QY^s5n4|&3}8qj`l zH?QZ$`3tjzW(7l^-jGoSkM->9gTF651{!po@g2CGH^~oWFrWY0!uq4g#yPY&G@mf4o9Zw8(Z=Uv(jf^);VWd=!^ zuw{SmtvVN!#mrf)25B?b<=+1k123AvP1i%9-xo+f2PS^Wx|#^B&8fi!wfCmHB$ZJ(8I?}hkg=+Iggbc;Qu;jP{K}!ujxRYoI&^(_~oXY#bj37@O6~yut-*=-2YLEGIqikjj`Na`HK=rV!<>ELYHscAU zM0N1GL**qVk2@@~wA)#d>{0<<&$N>h+lf)OTl#J3>9l;_y2Nhw!D%~r_})t zbfn)=P4OcDFsV*x`(`W`5>9@87Z*6c=6m#?yM+`KPd6r1GM`EdItxaLb#+K(KavA_ zr9_{A2@*va7N7m?+~{Ab z&^RdCCS9X9yiT=8RQS61B9yO-1Atl8Q;Twb!WfMvrDR?zqoZ~(v|PR~RKzXKE-PJ1 zX6cE?fd7IZI4M!y3ojrgyg%tLh;)~K3m%sch@tX1eNHIR`j$c$?yi<(7koG>c@i%A zoJLvowa-5hdejw0>%u-rd2L=U75D_sRQu5;rIzO?D%m63jMQc^Vc=ApdGRQQ%fpYC`|O98cN;2 zWpxa)KXjIeP~OxSl~IQ^rEJhK`zCuA7GVK~YWJmZ_V~%vl<%HjZ&?Weu*zE7c7H2M6CdKZh=aW|$2Auhj^Xk~dIGO6c8-knNw()^GGB$Vso* z(X~S*z)Cv*OV7^ESP_r2Ccrsr>!uok3r6tB+KhrxE3Er@eu~|2npsENPc^AXZQ-D6 za^^AuUx1Rg<4)vo3L=u&7hj~mYZ($HS3)+q@i#%^w^X5zz zKL46Px1*L45z7u9M51+L-UAwr6yx9BV&cCvzT|B!g+J^EQ`I(IJJu}Ao~-<5`rfTF zr%AmeM8jin^(Iz4Cll3 zo6;2VQ&9lO^H+`fxONc8iPMPDrY)9d>X|as$>crmcGJJNNb?|4&*EPpEg&h=SyF&|WJKmJ=~k=|je8j>Im4j)5~g^!bCZZ>yoYMk!soDy zh_8F!WVd@e&(~En&oG;hwTEW=m#hWt&6 z9ZuH>VpLs=UKIc4)PB8(pFbAYgIl8YOND&f^~$-a)QOUSC zvRizA<(+vst7c#u|y$M!eQqa zArcE2B8GThY!hq1wmZQO{D?X8rt4;fqehD?Bgr|Wq*3|De&sZvJlFM6J}qw)ml}j* zkF#;eam1|-ocis(Z`)r|3d;eaywKPAHys*hyAcK_o~NGKa zUeJ!=AKIHnpCfV!*yd1T37G6?um|@Z7hOpC#TWs-e}{FGWoei;s$8@joKNdohgVB_ z?83F9E9fZ0xg(3xzeO)Tq?o#(^gF?}uBgQ^5ToS6uaVe_whS)WBu~*)g%gN(_az^2 zb1Uy~4IAo+Lrzb|6JQf@Qdh8!jj^9TM*3rU;3zqbLF=nECqA&0e8;m1xAO z3q{_*WU2mz3rgvjB7%_&jMbbhv>)EUB5kxzQrX|xQMYR2{cAPI{fZG(;*MaphmJlD zL?M~)yEvBer;fo3e`#%2YN{d(Y88Lpvh*{%({bAf68R$(r!1tEip~AD1G5(DO?t73 z(cv123T54CIWDM??&|>FdTPtE?}~+oW_{2dv-x@#wR9 z$^oWicbZDvVm*M~;ZKNi!S^qHr}^yBqBJhzs*m>3NTn>z0J2mF1edgHt7zQ!5RD@n zB;Wb|U|Fmn(kAb$p&d+T(m>w7?GlU0YaSE}M2Hm7vaueEy~UHUNP13EGiXVi24`(JIq+{Y_{X zJj!@Og@L2pr@C~^bE95pO6Z^?sv$Fiq*1Y!Eb*L)Q8SfPshCtsomQh?`Ug5a<9_8# zjY_yr&9u!Vo(wda3XQ4dv~!EF#{=tdcU#f@O7QL0V`HRo0i)>NrONXwUh zopfpLIz_Y73n>}!ymGZ3eKKJcv6&&Bda8<#I=F{Hv6`vquesEBSviPCELqQHw(P|- zy%L*JVlJu{U8_|feqD}zX`$*)LZx?Jc8W7-5T$-=^gON2x4416_XMd%cQl^9vn zq@X!EK7ptd5nr%LVa^CQv-Nj*w;exts3(!#2r1XO%dSh+!!p;V>P_*|CVs};S(lTq zJE#b{4-tqJ!HE7^eJELh%YhUv5V~)HnLKD~z#|n2uUvNAlO$XW6i>D)OJ3qiS)K~7OJyzB zmSf}D#$GOE%!<8lmUrh4UFbZ^QOYqu_I}=mK@1{=Z%cx{)u) zUUhyCBfVphtoyJSh2^+-z7OqN@2WdaCsyiBR0)`_O|5p1!*ygMbO7Dvad|zFJ}$wP z49X$?KO2BSI?VcwCedhXJLIi5s!oWGLU^KlR!W-giTO3dj;*tlAF(+y4lN7T?qMSU zl$l6ok2&5+UXOMW-(Di(zdkr%)1$SvM6R2@ik-&(-!#)hO!tH6-lNkT#@~e=akJMt zrFuA$cu!MK%tc9D)@EWS@O54z0Po>vHSHt35Dhyc_*u>6VL|K6e|!oqq|DdVZ;=`% zys(;eX+@Xnlb%QL{T+mTfEJ-Z_ODKlwui`}9gDz#9HfnUXVQp>nQLADb-sMv{GZ9j z&3M5TC+s&vU-7WXfX>5bkEw%hM(-29L8cX<>IxrxxoGXkRz6fBu}Fq;{8qI%^(u2Y zw_3u&EpL!AZsBg<2eWBggM0E10O5a|8L6;^pd8+-CFtphb*`q+jUg>?*#PT93biT?RqA>^v?KBv!9QS=u!t9)1 zHZc4bcp|n2K*S#R^>eRb+%f8mG)@EQ)Vp5WnsN%);N+AYIbb&&@G4Ra*ap=3tKX1cz1@8_vcTPq15=0=!jdaAY|7bq&!~~zAW+}Mx!x@dH9s?` zbqiR#FuM1@-Xa!hF>F18iw#cQD)a^C`@n~!rmfkEIR^D9d!}uH#<%F??{|*u4XtXk z7$J|1*o>&U(NlwHJUz2ui0=Ofo6?O6KyHAYfz}AlE_<_b(1n>H<|HXH$JUN<5ezqV z<;`Q9+QNagSf@Pavw?B82HyNvc;gEZoEhQLPff}cnGsr?ZD3V@prqVZUr}Bpwv-Mh z11BFu;YGRI7D0VHNl^w4M`7IMnee~g77_c3WL2z$IbMcq8MA*~qdB{|(%}F+t&^7x z`^Tk`+EB3g_ULnRMrlrDAl>eZc}pZPWAXMIscnXsnegkctuMBq%*j7OGR&J8QZF2b z7f_R8G(KxU9kVP?$vp@XW0=F!@CO=?eq17Z!A!o;zIK=s=m^F_MgS5^d?!cnE}7;=rhOx9vpOz& zUh}G*0tOQ9%w>ajUF|mBU5xD%rSK<>xKXY`8kQ}ey8nKGD|ke<5MbnvlF zIECdIn zb6g>UeYxX^_#IxBFH-qH4ps74N#M#GN*ol6Yu6}g`Oo!ur88hKACv`e8!3k@`KZc* zn*YRk~C0kK7W{8n{P;T<(fm$mEU#;oUb?)WI&;)c$&!&}LJIvURp z5Hs&IQ{*Ae$J`GBU7hZTo*T!K|J8?!?+(o&LmbYykn=(j*0WQC;VEk8zK?Y*93xK+ z^&?p>F&O7;+o8Yewpmk9v?o`9S|m?7#M^?VW_S`KVkBsQn~vKiLwW5 zC$x`(a=elHc&yiLSF_;? z%!ia(*B7z6PE$!D-Hdf9Kvk*|yeb%D#Qhj+j;wH2f=y3y%f=?Bj!%}c z^b@TgvreK<_A1FDUGBzy*VX1s)VvD}68z7Oe%qONAv}AS?S97 z>beV?Y$cO+|IN3~&pqN)O(?vs+E9la@+WP|mI;St=XcyehDNyBe7W6cR=5p6oYOoY;TN)3RX;Y5tt7bsZB`43bmJ%J{9og}`I%HW z#hamKIv4X5Q&64CSa?+{ZX{Htrcav5h((OJ6sf4GIj8bQjL+q%YPA`zr-hxAI)R$C zaIc#gRL+g!-iGf8J5TABIwm7kHz@N7^R}$YJ)ZIG2`N~PaljZ5zn@1847yb0An*|; zK&*FCvd(Eov~W|~9tK4V?W3lryR(F{5Nf#j?SG zRbQ&uHpp?DCu}Dn`$)Q~YaJ;%zhZ57cd}Bzx-0||xiJCVcxlu$f`?@PVoO!=hAV(x;2_+%H#nqDy#0Zm@ zd)p#}&ln$-N-4;NRj$&z-eA^6@N8^8MHjnH_)(F?BiDEZauEy8fV)BsEy$OU+e-@6 zE(WCM7yXM*?6|`Rxgrurw2SSGf)=Zo)T&$zFm{YTyd7y_jh{n_K$)Sj%X9Xby)@qL zxumi>aqr5X;5`rN@eS?eo4H7SX!0Ud4q7dhHTcGhjHKl`+buv96h|+`A0>0wxMkzl ziRaDD|NT%#@>TIwApRHaK`7$0;UR1${8Dgffc#Ojgk|Gyv>jDIH9^{}VWmr03}OLo zvQb!+?ifaq9o5F1Bx*QQE3!i@L{bHHLyAJ8gg|<*8Ab#8)*hol2+6 z^Rd%Qonvf6q%pQZ&<_)rn6~i3>&&7_2WAH+#tS{5m`wT{@Ff)B(kHH92Rc_K83eky zhKs@Bn+XG6?mjA!6&^yQUXXI}JSU0j_6X3>59Qp7MF2jJark{Ms|I5@&>CcAJea$p z_-Rk2C-A+G!wT4_uxCq-A%gU)loQzq3Ff(*TWn~)1hEE;@d<_Ob6dc z7~wJG(bMj2mmz0u&1NFUtk-yTIpQ52s&?c~_hUBnz7(o-NzQF64w>C71awv2+o={` zzW4lF^F@7dC{e7Jo1K4E#g^3w7r(g@(gp4-nf3InU3nG0oL^aw3(BLE~r%>$YSbc$9KIe8`OLp}IK{>fl53i#Q8;y;g)o(It%IJfT_ z=9f4r{PBYF)r@<;EElUs#iN~m({e@p3_H(iGMFveucxq+#*dY?;^%O4#>kW9e4Kk3 zFSQ*s+=k8@sliDZ=gM<$2R0<4z!e-`@hr$uu6qh<{_p1k@|cf2`*sjJR0bwpg8$1R zZJeSH&&WG$X%-$GjuYd_oAJ&OJ`UOe@gI^#rO$DkC%@2O*?QJBa(^`9%Cu> z*7X>zS-mOC+OJ#p6E}@F{3OlJ_s4C-Jw8{IlzEI>EthV)@X`SrF)O*C9(Rrd0R>s7 z=Pvc5M&FVCWEl~tmb}ul{RAEys4^L$hIrOSnf2K3Hm4k~)qy}4o9z6B4jX&bXcygq zm&0YhirnSE)U8C9g;M#R=cexmcah(NYV()g58LN*b1%Yr69g6NojcB&+E6>`rsIYu zy*Kji%(;$wAFBhwtalHt!q257<0w{UPwR~a#A>D#c9YAcM6jO3gr$K z8s+8gfMY9zbkCQ ztwji0#hL^e_Dj>fh6)vt%I^k3xwcGb=-`T1qu>O&)fDG2@e$*$Cz=VuB8s%K;KC*S z1W{p3E+#@HaJNyqkG45Q=z&Oq)-#h|iA3yfc~7LT?{19=&1p})(-;zYR~h(Vwc^y(c{#7{M^{)paj1x zD}S6FP43;%b&r96Isb3Rc&Ss4l${K)@2Wf8VTA!^WA_EM_6@J&iBWB<8vLWmw9dA za)|9PyOI`rz1lBDLB@%Zl8r$;INcyWWY`OM{9w*pw`rYJ_zILqsRNW@ej z&;ac}b?Q$JO$`-r+xP~cFBw_Gl?m@>)ewLi^*)*Ph6o)U-3V#f5V?nP^e{x zxAaV2v~s0$#X6^eZ<~*TNo4g#a=q+WG0`&V+E_OgFzTP(_GJfE@BVl_?fcTgNZznp zTM>Q!7sUOjtz2GdgVVR#k$DzYR(`w02Q|}m+wYCqL+bi5UHlR-yw=<}+96|dMz-p3 zjIo}qOybm#-2H4l>nNWzlv_@3=oD>~a_KQ+V5quR0Jf#`m8CZ{Zf6NDkMlXl;8;Tz z50Pl4p2*yU~j5YmW@7et?PYJ`^ ze%M{yP3L!UpLpaN&&Qujd*&BA#1GHhxaNIE)IAak^p|i#xzqDMcT)jAT-gdWe{sD+ ziPw8B2{eAm7kRp*y4V1lwN7LR)5c|DOreKA4tUgZqcQM;d_cbct;b{HzSJ%!zTts^ zR&rq&mh5o47FBBU*v9ap=tqX`d@)(~US>~CvE-zy%h)cSf&1U- zb{H3T{S0p}CAn;F|3G01+{B)V-DE6(nRc)~Pru`Zg0a?u%$plb8-;zVLxs3xY5AKZ zZtrpdgwYTaP(!dY|I1aDd@B_49v z(J>@!2}?wsCiH*Nw@}VG(SS=8b(HgTzow0C)PQCKVd>&8UsMcN9p%VhDDt&4Q+X^P z@;Hry_+=geOWK-VV;x6|w@1Y_PKK}R?2;k)kVZm;KdEl&04gAJ#ZR`FnBKmT(m61) z?w9rD9_w{3F027vrdFcME0x%ow<;SrdnpQeFLJ@CTb74BoB!hYWa>6Q^^zJDpJ*w4 zktPTdIc%kC*&KciduLHsn0~u)9@I>f3;5N$$b^AeH(kAPae`blHQH+t+C)jA&X|SX z2@=Z5tB|Txbt5+>fGH!Eb|G1(9ND8rBm0 zD8i(B#K?R-3a_A1MrRrQ$5i*Y9C3)_T;^iE_df|X6z~MJh`^1itj2*V7?xp+@?ENn_pZ8s z`F{-qHYX$yd#_Ex`6Q{mS$POjT2asi#Eg?Y)Mcn&0 z03wdkd&4{qoBmIM&Mh}ePG}iLG|dldWYLVl*Sh#M3*aPcE#st^YMwb;j+0A8WTn#^^JUs7Ux+0Yh!u!t}Cy5NRGuBUu1D}C7zLnv+1>PU96lM;g$)+M$Kn1|Aj2K%4SNMB08g@;93dotc_g!L>p%@a368N?YcR1G(v$r$&fmsy|9Ay3+bqS+H@V>+o;DB^4S z86Q@2_Z=(JpqkcMmG?(dS$e^|g#AwCyjX9{la7XM-#G4lZygniX;wXH{1f+w_ z;86$U{;r)Q1KrbH()I{kiJ#&7$x*+`UebP~D^^HF7j(x4A+#D^f%@U^6U1EA#IZi8 z>z?`ZR!8r-=47`nfm+NFnP>zbT>x)sKoi28B$FeGT?9g`+AJ;&mpB;}( z)V%?eY`J?4;`Z>vnepIC= zo@BLQo8g4G80rcEF~PcCN&W={C_($b$;2Z8Eh9)o`{~ka1;9EW%E!UAk3wh=vx6_NwV+ zidWpxFl~w|FfZ#RAjR|we2eh$Q-!F6JS<{qw-q=<@`AOm!{$$FH4rx5myA*iwLo}X zCx4UAfW%&zXT*(Sk6bUf+awwa~Jz%G&#tF8RI54GakQ20yDlHyNArpl;wv zr!k$VEmXyy$8P1BsU>s_v~9I!n^&SyTSQ3=pwBU~DXkYp7i1ws7 zo4+BX;q&U?dInJ~Gjb6C-jlAOA$Rr%{!bn)SMygf`r6~4m#d`#%!WqkNZ!Wl(rKIt zMhGx8>ogFhmKF*IqO83(j*FbXKQkLK7xIIii}NodHA0njHAAiBYlgs|^` zqEwf_z4qTSa}^MwT7GPHCs(fe@iKF97|cf#K=#0a1el~GLUZ@qh!d{fM)eB^0yCb@ z4rP^tP#Q9n^5Es*YK<`oUc>BM_13CCwq+|H+ix)nbxB=60RIy4#(!&VzWAGq2z;Ye z0E|w(5mR;=9n#D_PFqoi&lhjA4Sf2*gal zA|d-DNUFuyh9X;0s+uB~u{6%GUU!(HsA52QKpvtce3SPXr>uK1$v3F%>rMq}-=EdK zQ6?uhBtrhTiKc2XBlmz=F*%#h6E3#IB^AATb!5BIL|i!`#x(!4#wMY~RILrOiFMpz ze)D&%UqkrYWQA=9Xqez(UR!9P_{h7R$i1{z;GSC-_JNJH1Y@~&DQ&V|zxj3peJ5@PlOT& zxJ!>dZN&sAd+oP2f^I9ECytDtM%+*`W4`qTjNhsvqHoipriws4>Nfb)CwA-DHdb0Y zrW@)!T-q!5ef_P*hOzZ?h-9hJ)`EWd1q@s_4_3=5c*&W+V9@&DK=V?-NO_~_s&>YU z!?j*@&&ba^b|U!h>;bh-e!w-?1xI&nkP(bxSI!4SnS+F)gFuhN$pR9vt)- z+*pa_jXWwRt0*7j+$@P>3?;#Hm*V@ZIQhHwsVT9%Cc1B>o`x0mF3J9Kp?(nBS{rI5 z`5ZEz@d3Q;)Q}^BJEXC0FvfTw zvwwk#Jc!t@r?#ybN%9#RbF7ZxNb_7;q?ZZk7YEo;V%TaZfX$;8|CVal!`$VbTBhb| zxI6W(8i*j6gsYa%HbK=vRDkG?mI2ri5OUSx0Ynn-q;{R!H|TTMxg>Nwijnu{3gtoGFBby@5bs;XSq&o789U8KD`N}6QHzAHbJr2hqv{s*aq z{m6Fy#D%Z8&JTOdFjSdUejX*YSu|q)59TZE{`nWFoByp6_((as!V=L;{ud_NlARwj5Q ziB~gzfjv55gt^%pZDH`w}FaxV{!SgI(WanN@XBjo_K^R}u$(c#2peL>@LcK-FWUS@`dE<~*-~xxDd}ck>?7-HF^}fb0lCQ0 zY$!Hk0T^~3e%`~dxhcG_z63w@x_XO<_e3Rm{SD>*exXvWJ2Wi&yu-6`PF*agu!r1Y ziRXq(ef`ZE0&G>yO+XN7R(33R6>P5|?fF+Z`KRpSH(3~@N+=C#b@TSG+4l%Bjwi~ibBi4UFYd%J$lrFl!GiTWx!a-D zFnODX9n@YiAafpFgO#6+CKa&nedRDG{bAv@2`T8-ho-&kDRiWM6m0Z%W_Mby>A`tv zpV}_F5keCm%of5G%Q&mz5a%i|67sWZc_ncVVC?V;w89tZ&Fg~g#@;&!hd(wbfyrcv z$bQ?`EcNPD-Iw*ie!q&DN9~@SthhvM11-X5u$IXuPNDN@L^5w;$Lo)H)_@jjV3lRU z7suflNNJfK)V39bxJJ!w)-yX~QJ{Bd4!btcV6_31$X`2ne1<%U16cuJafWXqkBLBy}Ia2ne!V9zR%9rlJbDv`d_D` zN1e;d^>u7q?aGp|`WbNQn(xxR8^VeROlCI~oV{NX{l}9FcMFv5%n;mm*twM#hO{XO z27zm7ZRcGUHh@y}{Ypd3Q(oMrMyuvuiG{NZ_Hpg_V20{gr^R4tQT=omUh$b61m2eK zo(H|HTv|Th^d*0}2W5uvotk^zH0{Y^xlz+TzX%ney*-99feAK_fW#0$Cy}SXyt4Wf zAE6c<<^_799Qj#Zdv+0m?a=F&`3vlTj^jZN_b&pP0d?{E^tAdrEzdOXx3dMc+wC>w}Dh4FSa|D~Zfqy^rIk!h>1Oa0WruW=;z&^H+@5tns> zXL3~`CKN=r#3*qS9xF+}M&S;7#7e>_712QmoE5@Ah0;i(BcqP@tEf86;9lOU#B+2F zf0TNe@$klqLb&r>0N@xlb9at8d~2In87CF(jmIXcZ`l_(d2!&((u?S%qysXCA2B!Xmz=Tw}4Oy zegblfhUe5U*T6pTqPDDEolJ4a?V_$nb4EsC;stuvFPj+$Mgk~c2tu2k3l1$q*;}2o zVx*_IlQ-own0t3lX{pIp)JUpM|FAd9-=fBrw(+MphX##TMuNf#M}u?gO%OIdFBt{T ztK!25`A+*jB)RLCr~ICIiM5agf%SY96%$DeH{Mj65t@Rij`WvBjVL0pMuiee4jz;i zb_8-zXfkh8TjE9E=vyibJgzy`kOZ!=G33vDMQEETw9Md5x*^Wqv zKUU~r^lELT>b=$li9pOdUlQN*Nst)kSz-C4k-eKSe!IHIeuc8A4Za!4kjoPu5<|2@ zb4+%a_nMXvOpDuafz4Zm`=qj7nqWb7NoK%P){?%LEa#d;IHXW{mxBrVyi2gDDzKhc z7o{wtcJ4-TQ%RyL1>yXikzASwn>6p~@iKMkq;OEqTh}pWqlbe14YPc0BpWem>66a^ z-J9u@IPM_eAV-;<29LLHlJ!1+M61QnHGvfETE!i)$87dEW0SlQ(g)ysrK8XvXz;%- zSy8(C4bXmXh%b=O=Rk-tfy_x5h-iWVlV~6cW8V< z^lMz~wOg{NXbjcOALh%xEnRTkN$899S^)t?TlGN_$u7#N_Lw3uh!XMcs+YzIm zw=bWeYia-(oYcuU;dtvNQj$(g#&v7EwSBvlz@(88-mxUsZUJK>xC5RUNZtffUEJUO zrV+(uz0aO0Z*gKW4!4&fA%t!hm}Xv&fzuI~ZTW}TKS`oP2*0&#FIPzF>bn$g#058Da2sh&qX~4m^g?B=6sZ#VAn&qmshb z*|Q^jCZeg)wkE~2N-DrC#{bqKiPRfUIGH;r;xFG);WVkTrf7Xq$LLg6TnTcv!Uuxj{sF%c?8YgGqbQNJGspp^ ztzS@|%36p-8 z6yp7A6#cadvWLf;^0FejRQG%Oc%Sb!a&^yW3^d z_QzTr!e?RlH9@r5_6A|lToVcvTfJW;@d7_SN~#s z5C@)b4QSHWIiKaNRSyd_cX}W5GKj4Lk*B;~@vd`h0NU<{u5J;rOuKvjmh}^^P0f$_ zQ_Hp0`$J>I^vVv@*|3etGOAet6UTvr^bYNYo!?tf5CI^W2fw3bKTWsJVwR8#)^|N- z;<$-}=HK6gvcSu#)Dh<33XT`m?l3Z|OYY%mI{S5q3@=N+1nn)=X^luGub28{m6U0H zEgZcL^RC)qen1FV0{A;41ky<>zelJisQ1+TYK8_v20~T^IwhcOyqE!cT^M(K*!htg zegiCZ$D2F~tsT5E;`mv_v;w>cwcJE#|k_oflDsjQPEwBrP{lsQe>pu?--yo;>Wt1$CjFEU8$E>o!b zS1T+1_6tuE&C*EMlSZ>&JS{DDU5l8EeqBng)vu2+JWUhHH5 z+Qf=PTlW{PQoM%q=Ybm;$h)8Dj;gf z8C-2Ge{;)piM<1P=nr^IG_ZRG>fAKnxEy(JT4#m&v;bg842Mr0>ycR9ng7kMuhrvvPnT z9rcLk0~nj5fc`F0%7e?EX<}dGGGFbtf~v1io1w*a6l2LV5||L|cohw!T)cfO83mkb zs_z)7%j+U7zdmCHkIFJ*%~QIdb<-j`?VJ$OtFov6$%hlB!D@vl$w`BzXTtL+?7IhV zx=d!r$CcJNKeXl?m@Wm>%v*BfK~5bXacE=REUnJ#w!LFpUoPN_XFRL$Jl61P{p$eR zNks5OuQ%V&I<``EN&mBIC~2lPjpgIyj_VXP4I$tVHZWKy+r8KQ<-4_%2GtB*phcFU z0J&Xdw>I7x*c!R?K5z8&5KtiAk6tME9`>@C{=U5fODeIor|~P%_OVe`6YU|95Ynl> znMarFSgQ9Pi<>!ry#?zKnB>@d%b`j)jo;3TxCSL6ZmODAOmDQ)mZ1`Kw6n^^KieXp z$Q_-AJ1i_V+R%yT%uOQDBQgYEHE)O0OHeIo586cS$bj+!6h21X{er{;%9NN_$(Svd2!XrN^3Cq zXq$Xd3N8b5tYgT{#|^N)oS}u`2eq6j4n+TK(rHhKmgz5S!h`vrPpfsF?UI$SfVC+s zOX20hu2DK=R2z4z0#k4{ejH+fzu|}PSSX2AM#9fC>@RyIxR2?I+vH2>mDZ87W{(gELH zHoF4Lwe7kS9l#Wz>rnhkL*^6AOTiz(b$&6lZr&C^1+#)yJbM=y+f0hSU9!;~9A0i) z)PyTu3af#hNRwM_n2pmm;2W%T9ax*RTRce1l`ToZAfQBDxt)G^<;aIw?ev(cj|k_r zF!|{>cj+PMM4Z^p#=9NhQOi`Pnjf!GyxyzNE6eW|U5leqj$vx+j=L(ct#=DQSzEDC zlMP}t5&qtPINZ1nr(QohVQhFQf|CF+C9=VGJUsw_Y<+m<<6(u-#=3RLXi2T%{kr&6 zM2YVTw5rwf|hZMdHcEiyG+tnC@Z55^qWyvZq!zCEM#qp_GL z`LflLZE1xSolXCx-%-W>bEa)mm@{3{u{z4ulC&HN>lXk&7Nfa^ysX$x8CvPcZ%Dj6 z9XPYH-Q_*v*SX6B#cjA!mai0+Yu@!dv;lol`BvKR-I_5zBIS<3{PjOZTmvBn;kMnp z5J}(-##XxpAvTPpYZSnF$i_Z3Fd6u!T|4Ag1lIGTXSnc^dUO(Kv5feE%J&kaxdf%R zScyD>s_5C|1QZW$&9*Zt{AYCG!5nn&)bNUP=zv75IJ`&RA-R%!93!zx5pv-Anm4t{ z#^ym~<5$Q4%~0f|XztmQJ`*P5BCKn$syAaDCQ&ezTHH+)Wxcsv<=j}0xW=Wz+q z$VvfBXch8?{sq^c5tyE{7w{hn!I+4ru0Y31!&fsgX`DUF<))s#IgEyv`y9xrEZV)Q zJ(WuJsKB&x;?&^DGA zy|HingqFy27A7jVWbH^S2$kBe>sA2;FVd{fMxkD7<+H6?!WW10dTDj+OjQ&-5}{BA zg9QIf9w~(ZB-Q~eNYMy7g`(XQ!~WBy|ih?*sJrVlsr|@!ghmimt8A`Zl-?Q=VIp#!?jzy#tU2-LzQU9 z1m)Ht{C!wN|I+*}1ugOicb_UYc;w*ja$P*LFCljW|KK|1#HgpqxT4u(L|fjjWpXVI zW3TS|1fOFAMeYLt4u2wi#Oy>3D^EZB%<&@Ce~I)xF-6SBsFz>^!h~q zT(x|qz{M_B3+$UI4HCXq==C}vBU17$kEp0n`I&8T-=Vzbh%o{h2}dx&t!i7Y#T<-~B z_SGxYh&riKNenKq&vB|*FD+U(AC{Y+@Mj4z1*CQeFLGmY1)Cj%$>Laqw65Qfur|_ zfN!fZ!i#|I2Pkdx_ZHz3t<}-GBBm6lGxt~X>Am$Q<{df5_u0~1TziQheJ(N%fcVxeueiNaA zSN?D*GOz1DIieUcWW5}7x3DhXbN~bPBjDoSIA?r3b8!zA>E!76QWh39K&VmC%Kka6 zB;?wu@@4RKT8tMyc!{AyH-f{o_heJ{s48r#cZ~S7NK^FR*(OILDs_E61Lpt1%M18E zFmafDpweZ{Fo-E0^U68*kTD>9-_4m9OZl>98RH(1Iy|y!!xJDO^=Qk4%{FM`t8d?b zofC&ZNIs`@+mk_<{F(ItNTZTv0@QQc3-nNh+ys~+xlQo);6V;PX+$9%cq0=TJ3H3{ z63R?x^=JTeCz#@X6fr^KiC|3LQX1yC(dc`V<+IhVw zF(&Q1FbS$Vh5%YjDu4s(;1&vN-fK(iwav_}5^!}Cx36Pz1B5j4HIrBDS}ZTn<9iVuxv16a40p=_;(j-=VqEErT#}gSW2Y_=H%k|$R%HSHaoiDJ zljNTJDTP6wId$0dr(AuM!TGcjRew28zU_E{A%gmEV=(HD1k5;C{eH|#uz{V}FvnfxcR!mCv4{QC5L8Svxxgx5fj`!tzBG=62RVznt3(-UQ| zBhvi!F669fZE?fRFcUb(71ev!pBD3=Wyt+RRXR>zYxtb$;&i&>)W953OKEL*Wyly7 z8HEc%*n07k&tlI#c1@wj9G0U;^bCKGipVGr+_2bb!WEXo;@iJ~Hb3!5!zh#V!reUe zShd~MWmiU&*=_ej)tGBuM)Gciu1kP_tfQq*NkT3#s!L@)_kGOfB=Np_TktRDfvbIQ zV;UK$o+ZRz!$Dh00Xvb{f*;ORe@KY>tK4SqhspJ5S`+?4JNO5}Rd!{n{qsq;Psq%^ z;ZRB{(L}c!)SWF3mVVvgoJ+f_ZK`95*Pog+ojp`O&Ta1jw*SXx8ZUDo9NDx9(sAO*ScJCVe6!Sy$Q>&qHn_HkG!0&@IInN@I6L zZ#e$)mYl=;_jDDubsMdK2DS;{?qjHmaW)j!?Zus~a-K%muasqo%- zdxfF!A|L5V2#%-X&DT!L!sEP;{HeA^)#yaV0fTQVZ&S~{;3BXN;45i0+-PAqSY3oWHKrtIOYj4Dj2bBNXU~X*r)Ec< z-cZ|*M2%RR(OV`U?NCg#8!pU~ZNIRtd$+XC21|_x;I*T0aHLe>s3#zg45-YneCQ8%+{^HYsapKjH7c z)eC#!+&dzhv?yuZ5y+MmO2zHdYQlWQD?`2tFk3pES>AeWkZ64}P1!&9q6+a&Cnp!X zjf~LjC#?|lf+l(ooPy>h;6_*eX2`atDR2B5zMHhsBWG(e3ykU|-=k*G#8`p;<5f!x z+Hq4q(-}`(7&xF=fD^^2pE2sVl`kFJz)-+hx4pnrtRpJ|EUZ3rE#JD&o(S}TWk9yj zzTo}>(Rgav>@o+)P+2hV_Q zte-}a)WBfQW4pM8{CFV+5?Q+zd!cfnWuZbDbedU-BuRO#&QOY?LDaZbZEKSQyW|zv zmg(wZjdUw&o_SwP%nI<4DV0Y??9wI;v}9>X3&yO%ZY4bzQtwkg6Fd;gT&%uM1^x6N zRI+I1^Rc=xKw;U8oz_94!Whc)Lpdel-!f=082z<#qzCRgPmGF6>~eM$kF%+)#8%h^ z1@AB-i?Xin_!HR{a`XkDyCIdWib(P?W~%UhS!Tf=IiUCxaM*`Wv9jW9$7n4UCVuVq z`!$alG8Cu!#^37=nemHC0z?`9-d64xEmQLk@YpL{-XN;sEX%^Av@-Wkqv>fxyl{3< zIjYKt09PFya2yd8Jirx-lK$N!5HpJS%}#g=*^Z8#5N`IwnT$lt0FD6JIy__pk00j* zYyhBxV_``ppz2+agpSnFK%@Y5aF$sW6Rr7!bLVMILz)mY z5|*eu!`Abs=aHNs`I$_LG&Pk+#kJo`XIZm6O^jty#ha<^jZuWO=Cz$AnAK;m(bZ0X z%f_c?CENG8VH)U%%b;AMQumC`z4McjgZ z<{jldx8`Sx=N226;qzcRc`5LwGZ&#D+$>BlP!e1hPu`)(RXueylQutt?{pWm^cr!uC89`mflCXS3_Hx+vQ&=6r zj<2LC5K%;FT~*F!3+-jT(!?`tv%cqYA3r6HTE5l;>RsPCjY1cpP3&N3NCrJfDyRXE)tfBvfI5OAgm!Dr z8@fx2R09?6OuNx~(faH~={~B2(t9~&bC{XT5IE&5UBhjtJVUdw0{~E;v}-ZZ&;SLm zfrJF`Z*Na=acj)Xr=ViRrpg+WIk+}xJ8{9AuoYWSTI+qQX6nSVLpjCWXEP1W+i;6^ zJynopgm)cMuO#97geu07Q>P=jfm6>)Qws}$^L%W~+1gOkWOX7NapZOSvi825n>Cn{ zEp5mH1oPzDQf~9y^=htSBAj7EZofUU$Nd{cIMNKw33Mm*Qm40hj>31iHng8mAK)RX z$ISXc5=0nET7xBQaf>TG8Dr4#uno~sh!?<1O|002*2tG+Kpo1Kh2c?93RjbBlhqm^ z0qM%uNYfEt(8wbEm9j(pRFw_d_xrNR^W$x&`wwne|r{-Xm?qZlwWFSGg3i9M582d`+=sF zOSsz3_}S|3`7_3QjI`?&H~v05K+-GxIxIr$c5%;SZ>uG(M3yVMThvq83nQ0Fig38n z?RB5`#Y6?Dc{Byzmn1)ijB1U_wJK2OlQV016LRCeHdV5&gR|TzAWy1Dogb7jRjVSB z@XBH*cgZP`h=zH1M1#Y{r(wI9H6qOmYZy-`yN=r521P&fOq^j%Zo9v?nVV-d_{dfu zI*g~1<_zg%-=_@C(P6;nxwrD6ife@UBT#g(tvylk9prSw&;FJE=-@Eaus78u*|QKM z9V|C;$fIo#n-A&eD2*^3JssWv7@eKew3^2nhyrvB3K`jutc{!c8eWvdxP0q!}UKpY}~+zWn*^ zzTXTt_pW(N%a73ZO7R=W6c91|j*s2J;@oE0SDwKU*+xd)4EeL)8NI)Z**8`n8;){+ zUYXt8;c)DkTG*q5bdC~^40#<`uH;tB*YX7xu~tIa+W6iS!uO7Xjb7t_EfJp_!=4=H z;)Pj+aE+$i=C6jYqtw;?^6#r_ukZy`3nHFbccbH+%Cf(=f5y75AoMA>I z@KN>^6b2jg46n?{sGyy+#Gp*jEUjs-mp3e1X|@CWtL;>f?T#=bq-)mBLP%|0TZL

    z&hxOoGNjY{pO` zFRvqg)}~+3+A48DpPp1vZTH)w9IZ|oQ)PCP3euH6JjQm%rGO8toM`oYt5PXd%@txG z2DdnSIMjFn7_w<%4!I4GZmAQ26qnw7ruK_kYDLT4dd?ro5^Pl&mCClqSpWSTL02)z z^`XehvZU3ws3Qj}^83!r!J1Cz!HJf_BkPYH@hrGog+CsTM(8vh&KOu0ugNI=*CJ@@ zQ7rZNb3WWx0vFnGdao2+N+oxgU9dYT=@TdnXw^I=-nOJ96^5VaWkU5+EWNi1jFe#& zb5{R*G-+N@j{+WzG>Q_q?%Gn(>ux&+I6)-s#Y6+GXoXOvt*7}+Bac{HFfP@0^_w`Y;n|rQD3tS6IG^zaJJggh|+mxZ!xGlBzUjHGzzjco3P7`t-X$~!6leb zaEwiEufvjFm3gsCAip=ce-A5>OW`6(SbvA@+K1{O=KW&3X|p3|l)WGnDQ1J3-Fw1{ zzXFeCzD6`)ij-y%)#+QViI?QTTGZWZanSH6Br?5aBAnDNE0YI z7Y6)#w4O^I#}WQB!NlApO~%bk2cgY+#N(p4?T}6kM!cWt(C(*a*?nmM3m?UrZ9ODu z^0e+MCC&J+SWGEg*tq+6U}`Q8v#j}zvC9rikA+i@g-a8gxhjOimAL0u{1L`_smxb^ zz(Fm1Zw%T;*v1UVbey~*I1sx|2r8U;4p`vP)IltDuSuN=Hy4}J0X{D1WR&uSAr|p} zsNsj*L3Uag6wXN$sp|?eB;2(|ePn?yd$RJacaai|ErFSZr1x44IrOlmB-9b9(o!P`S98Z{y{s4 z3yM0z zOJuX*C%!OAz)Qk-_G{pqDX12IFO7i8gXY45pZ5CN)`dv> zBwDE~fPcBt$8U=!2s%EI3<-v^NCfI$-v=i2IQ3UhI22VvKDH2=>?Y&dn%U7BoYJKu zacbYyPaHJuvU~l>#{i4} z-j?*X0hA|VTt{+cs|eoCJ=1+ zuqPx68DC~?LclKh*+&xb&RxJia^Fg7FThbAP)Z|V6Tl*;iG>G#zoVqj)m6Y|HFs?e zIJd<&OI5_67_(xk3M?oH6|ExtI=LcpMkav5%gHWZSO8U&GO5c9T?^4Df%yQ-92`DG zTObPg{o|x&P3LJf@PZhM8k#)ojawBPYaV4qQovNB@f^i!uvE! zt2_w+GCM%J5)Hw7OL#s$X?tq154}O_=y&i-7SM^M*)rG^k=c(|GY1QI;VA<#SrJ}h zT^-tj&9W-0dCYLP(Cs|&@G0!lkhc#fp@sT?S_MYBeN(R%^rCehG;4>y{PeRZg*no6 zQ_45x@qQPkC_4XP=Mn|rjpO9Ofg)BMK^(lcDHpSrK4p|)LI897#=^y9j zID1NV;19?FK-1PxDCubV1<%7TZv1=|QtN4Hfb=59be(HZ@4ojL8rz6301M!3=P9%!&C(ANC~KZ z7q*v^Woz16SNC&W22EMigjAa@WQb4$k)3NNUrTAxBEWLF`D- zgl={_{?M3Uo!s3&Tz{TF;)Q^wo6q%y?MG0Q+$AvKcgNVS>MZglb0F-{9_lWF(1;7i+Mu zxbys2Xl6?`{pYd*e9^7r5?JK}sen<`tJY38$D^G0aR71iSHo;n&~g|D3( zuba;+2YSv$OQvcO5*ln$<=Db`Umjf@PhY7s#0o-j-9>XO8sIh8p!WTdY8ll-Q?xm` zbk8HF>7dFl2JN3F!TBQOMD?)7?&oFYXib)sIfbtH<43QN!I9S?vs53QBhmf|^>M3r zo(YAg&T~hDs#e-&RPx@0;ZRh{175xx$h=l$m&{pcS4mE2{N6vv)V40n^l?>CKb)`7fB9bNqDcK%VLk%%uXPOzuw>!vUyMRPUC{ z+mRxJEB(rqx*A{OxbcZ(t2lE&1${&2AshE75DAQP^1d){Pvtw%onIk0=q_pBVqCK;DdEvwAq2;}Z135HSyaa!L_j3C<6~9cXt}^TP(~=BL?izFUou6(0 z+DsfrhP?#^IYe1iXheZ`a?yeB`OT)w$B;PSeua9=^zMqVF(^js6riI1BcgIY^;NWX z4270Ha`-+Qy)NK*OcaKcTxia8?l=>b!$U-d(?u?(A7nfZVKCJ=ML~H=bXe!`9MzCJ z!j1oamui3|XD{QBf;we>+!p?eS{a4CSdI?Y-Octr-^8mC=b*MZlUWh|@(cUvAZ;^a zcc;=U{WW8@z(s{LR2=+dJS$6hPhvm{3wj{(UxF7E8~we`KMGm$s}XffCep9GHBn)d zg)lG14ODr!V86pBYhxS&^T63c<$Y`l6sZ9Un4SrsYrcTW>~fM<6EubXq(obUa$>#_ z$<^&d_FPG^!i(4IFEu0N`g#ClHt0cn-l6)RQL~m3au1yCMNou3%utNWxiCn!9|peA zQB=D3j$=zAj*?((AY=&hrTTg+#DK9lxBp)~@TnI@ppD1}TPBn!+$!n)=0VCESSVix zVLW78%@a+eWp*_pzU?|PLWFDKW&Q}_Y+wMw?Q~<>TIjp_8b*WArxj@eN+OI9 zg6EtyRcOxdc)nohY(i&h^bf4igG!0@hyfg78b$Cwy?F-11K}}uh`VOewKB%MNI@O~ zJ`B}8sGlg2MKp2L8$d0C^H|{K*%CEtbsU@YuZ7NyK!Z^jpbqv--VI>*r)mMK(aS#{ zG(OODJ?$18$Akt3I!{+Ml;F9&zB2^!$P@Z^zCXQ6kS=A~uD4pPi16qYFe8Mvi?n?? z;xCelTm4t-b>AB*8Y(*PY(KrMMe%~Q+xTcm7IBj9Q~|FEvzPJBdfg#L?Z2Gw~wS3 zIN3|l+d%%H^@>-~!%^z|Cc0u27&~oQ7iVj@wRzcEsSh9zMhV^bP+xxpX#P6S1= zug-e-mDCk5pTg4ZM8z(+CV%X>Y(V;Y3W()L9(Ty>fnn4kBAhG%cTY*)5_LwtxbIo5oG8k|Dl z)u9`Ow=x*&a(tz-ui^iMUA^l}g@{fLPL?8ZR*M$^I?VhXIbn1?e%a@j!;i&>CW6!; zZQ1>%3Mz2*4Zg;$ZyO5YH;TeZ(SLl2C@XNbNzEECI9K|LzQ9u!wZbh=V*JMY;{{>$ zWaU5LLP3N9e73B9!hG|=bC-9%;V-7q(O9zDGO@*xwezV9nK`j zS4+-Eva8vABKVBZQNHL^au<5%L`>iZN#XWWzLYIlH(FLfsoiLq02Ua7T3byViCLcE zTX1;_vpC485RY(^JyFnxMhAZd_Ep#b9|1fg^Lw0}C|C;ga)b|MhDIGpGFL(y?<3hc z(68g^w=^wX)E-TQt9<)d@^_jl^raoY23LtgFWGytmY>k!O03IXe_;ufgW;dnE{M!$ zn7)QOnR!2Jsrq_1Se9aDn1TjH_C4Ep{eyx0K<6b|L5jmh{!pgI4V1$b0y#h+$-t0a z%eOCevPqQ<^pdH#$@z3a4C7C?2M3FeXa95Ly-^_Ju%WvU(Am`ur)w~DFgT}>dW@j` z`zB$_3kX$zP5frhA9QaC#zEHh+UM$@W0tJqE+jU~G)wjSK-+&;4Ki=GVM&Ak+E*h8 za;KfnXFm8u-yj{gfk=}9bbz4K1d?Q7{eIbIUIDF23k6T>8EGg@0Pk_gn)yrSS(ud- zS(nPZ$;HSO$Y!wS!V(IYg2FI#T{I_IO<>yoO|(Ka=5#g9v)y0ZdL;kNx@$fD<5#!W z{wA2qk%WE$farjT-n!+po{J9X3o|0$+m>^mc-B774%wjE2|`D7)q?9d0ohpHuMS7H zp}OXDu5XuH7$-{g1q|JvSxNiRUDr$n_sQqPUHlOs{Fk4y4#eeT;-H#YT2ZIOkb zBJ=2Y(@&=`V6n4T5`2I{!R4=dqiX^}di7IXA!w$%%<`1kzbaMAG6Z0KA<@5hh1(G_ z4hpoy+pyE}3@T0j9<2^@KpxL*W(xWs4I{hN#_l$3OC$ub_V`r=zoEmf^`Zs$ze1ky z7WU|`C*mFsgLWjF4K%UAb3<=_V|WRlD6gU-`h-&fl-SOoF=){ zVI0JNcuVcrXvhxL9^P zn}YSPz6fRd3iXLm@dxSywTZR~QLVQ%jfE9fvH}M!76a>>GoGr&!X||nm4Onc=9zW_ zhK!F$+N*66n0<|V5S_DOfq+?Bh#L^?kCqJ6L4RWZE&qYpX6V6?I{o@mP5LN*- z`%U;Nxh`OVZi9`!LY&lI#w^}7g=IHkx=6*hPPI7$4#WNYHR6by{Yw?)xU@~Ib@e~D zEvjks#gdcw(lrJqfU~S(HAE(U68+Rm_I*41T>FVcY#(+qR%quRsbRW9HakXTpBLQ@m+J=UMH3O>h2+_15^s0XyqdUA3n+>b0Y>KQm5Vn53i9fWP%HEiMeEDnj#(?$?pUI)T z-WBo4^0(Vb<}AYTgIFR*1(r8lO45?LF`um@iv)r5Ik*{}YAR9tIfDY_$K%v$S62L; z#MhlKC{rOCcqQnox6eMbU*^5=$_Do@TQczWpaqStlEbyYs=4O_=$olMPZ}i)8&126 zPXZsVL_YZgE=Wq4kdYSwCmnGE>L!0eB(NUe4_I89_MUg$7lQGI z2xEE)gV`xlC|98}Eb}pX`W92TP30XjIqUEFuI+XeyBmfTYg+}D6m0V^MTAaW+H~eS z28zv?Xsppe&{&?)~cHmoZ-A|~&{e7Ix0I?UY6tMn&R31Qk|+GbKPi7mYl zf+qBu{9E97Pb!@{XOCKqp#&pSY15IZG@@(QJ48&2Sezu5%d<9XvwQxdx>KE;d3mn$ zT(e#N$9VlKvKqR4jrGfuQs~MxpSQ-d$UK;I_wCh%ZomiGpHb27Mr7G;{dlJT2R5um z;RR=98MF3hEDb>V=7}xI|%AL&IQuPt_$TdC9%Y+L~q=FvrA-3cO=nI()XayC!Zlqg~}v0&GdEsHR?< z#dd%;K_Y5emII`l5Td$lPb8Iq|JpnWI~DwLS*fjH=Ej#Yd9PI|qh~~M@11JKJNef1 z87^9S!TQHKV*Nr!evw5w-S^pOHTLK}cIIEm;cM|$9N{(m`@0l<+VpW!DQ^^Ic-)LU zDb^CauCK0L^HP_Nj;FRbuVx*sUaD;yQ;dC8{l2U`9;HYX90D~2o!I3`*ykdlg0BIP z4MreNpD>TfY_{TX97Ym|E1a^Al+`Gy=Lt#{T{Xgx36)Ycoe4=%vnpAoHFZod>Ugtq|pL11j_{cNluHd9W^-+xYO2!5Q*EWV^4F4+np(rGDOq!eTr zb1)6eDXbMRxuXs_k={Fhf3dX>N%2MD8SVv(&hDR~|BYcq_FK*g7|V+cm2(*;+ZR9( zfIV94KZp*NU>dsU%&$7fc}G2|&V1uq(`^A&7!tS5r?0+rYTAgh(ruvU9J7ngXIs_C z5L=E0TJHUb|9TGgngSW0c7_-o2;PuU*y|Q{${P8ySFfURd;& zUF~oia0Z}%n~F(#kDUMiTqI2uTROn)6_CLA>=+`cW6;$<-|sXK720>$`4;;2{Oq11 zl1kn_vfM{MOj-LsnG*$9`-=v92nO_$1R*)Drz2N6^sjK-ftmwPRn_O)R{~6xU$3xi zx_C}c_pGn5F`ilU(?t^+@j_03&~O-Pc(E(^8HlLY-uKyXWG7tw6spW{9L&&KmYuZG zDO$tG3zpr5EK!ME=yo}ANvG<@92S?DtbH|-BdBy$jJc2=YtX+h>q^vB68g|ldSS|8 z(~3{H@=-ZTjT95rz#4!kfb^A=$EA>u+?bRBkpet3**698y^T-!R21QyD~5468-WD% z8!90ASoO5kg-*Ttjq~OM;8lL4oxodp0gB6ezP&is zKXEzLrD3x@@cd_c)(*9~yJVD%LFFGkVbZGp#be~o(bP}tRI}yl zPYt57X6Kc8u6EvBUshaH+Y^@xV83g7Jf{=e!UMoZr^Jjd>Ay8_*%E~Zl|j_JUz#kv zCnfQJp1$2xYsi9zx9-6of;bz=z%Eg>aolnKDoy&7-o_CYBN3*YLU|9_2$lP{fO%Un z`Gp(@46?YQ)|np9LEx0#_vA>B=_Xdbo0+Z=V}+nYVCDYpEf8}>%0ME?$E=ThniW>&~oBR3X&58 z%U*0wrmq-ibOyHcKHPmJPE%U%V;_P#+gr4YGskEShy`~EF4umIGq?z;afWjSxeDyr zUS+RlvRZu0*Yhg#YHrR;^%fhbGUM3JkEe0jyV5cYJfh`gd&}4gKI(2%BC1W{pLqQ^ zCS%cglUq7m-0xzcm#@PntyE8}$MXd+>+V$2-Xt&xLX;;$-}c+_la?liqPK{Y@z<2m zA;^_xJ6u~2>MRp|CaLq$S>)A)x;_?B_C_5w(b$R-NGIx6vf`Ydni(NNBSp(~L&?dv z#IwR{%VS9B05`2=baM%Rt-bqp_o(Rn?Bs0>A_+A~u5czd!}oDJ&spdfg#JTt<@cfF zq(@=O;XwbUrlPj|4s33g%CO}q6b z;_6#*n@V3+;=U8v!1Yr^VGOdVabySZg71BXh0*YS`O1!T2c=H+W-$)Xi7Pa0UiC2~ zU->%NX!U@7)TSk=Y3U#HC$gPy!~J!XAWhr2R^80^j^o8C!4sJ-yU!faFjWg23Xsx{ z1yHB;=^WX-qqEDUVkLH;FssZSesEFm73Vj0ksY2isCQ!#P;cD(b7EW4 z{K8n~kI1C@Ox}A~^i}D`u=AFeOu!{u3wz>HZkc!84z{Re-ubOAcn2Jx-bX{lKKQGi zirH*&snu~GyZan4uJt2Fd|aqzaT(D>n+(gNvP>Im;R$vKAQBw!Pnw??lm^XzrZ_e! z!aUVP<3Uc`MY}C;$rTc$&wlA7!}ZU4bW~~sG6AQA?CzzjdB|F8co9&)?*;qq%Sh>T zF~gx^P{Vd34xoA@Yw?gSbAmNEgyDr$@6`9R!?nUWsd@wGfrM9h;*9^j`;_}kHrvq) zGkaz@)WQ!YRgL|jyqHrtNHf(LB_1!8R9Sz0JofUXov{)A|38K7qv0_ApNvo0B_2-Z zrrt>t^zYo=r7vF+tnyQTpZ#;~gZ&Dg=ZgxYv7u%s6vHI~dtzF`!4&&QE&tn6!&Y?t zpvfR0HT}0Y0`*?!BU`rr@7o<6>O#xuVIc7YhNcnJN|>>?RZsmIh8#}Q@dGyd-8XvteRvh6rk5VyHRLoOusYaE;?+}&DmHC`zx{TqK0T`H`0jpPaNgFSV=<(uTklN|4CPi1$<|QzY>^(vx(F+KYjr0*$fg z6FH~=K|sF0-)++Bo$mPPnv1mi3%p!E5@fo%_8kqDqKzDXcx3;O#M+8lsL3$Y;cjh4 zgevCV9h?xWuA9{*+*BL%3o&p-QJ;LJG5M=NvqtG!j4%>3i(_b#I=*nH2VU^Zf_sb? zw#IDQwUsVjD|x#Lypc#Vdr@N~Hr#*EYtr>`3EOdftXL-x;(8%fD}?G;<`$`n$^iDL zDOcEIrZ)Qm4A!ow#XVpH_zdiDeQs>YcW#TL-8S)-ePQ!f8pd3P`YNici3<F2d{ADYK)u=b6CV%x7y&AgBhFM4hYsF!LSBaK6DxAL@LKz>k@~A=p%C z!P815T<}~U=%x2RSuNE^Wd?7LD4|rwjRt0@B-m?+tiwpbfpwpibJQU7V@kQLpK(oS%Yf;f1BGZ|{ z^gL%u0O0u~G}DLn0fO>7J({6Xf;XyrMV>>-Li+QtQ_ZI=2MgHg|xesv#ARN+aK5WE0$tnn*XrC`cUi0tcDpQ{=l8FKz@ZyjMGXzi=<(! z@ey@SLobLWGjl|EX<&8V@Z3sz#3a#G&nH=f=shy!3}a$H)^rDtcH=(kqsZG^oBsZh zhU2fqQu8usAbO4LT2Hq^Wk>KhMWTIEM`a;Su8XT|v;w(Z4zE(3{w(x-&~f@eT>_yI z@!3th`5W#Y9thkv1#Hi|7{EWb6rfB-WxSA}#hY_%Q^T==0bj#&<|oKbCdokZ2xh|> zrmw|VvU)nmV8OqddCj=u4u#$4Bd%mf?EgcBK*Z4xO?Imf(djKGVMG55HgS;j%0=H> z{GLPUXH3JFMSNaQC)U$BauQh0HhnFeju(Qw%$pf!%OL1L+GX0HetmKIrQWeC#3!s=O12DN=LjVsJv-P)q6={zgOBgzl| z;oFI78x6g1WxH);TMOh{kZiWF<*?^o?8qf`$N?vw<i&fgHW|9iog?b7V@bu!_C!Gyo(Oib$Ga?>weMx7FJ@If0Z*pH#?X5L53V` zyfl-eJU!=_57#=B&B3RKcc7B}lgE6TfBGE?>LQQY5`B;HG{apAJI(n_-k0lD6m_Q) z`^oiesz9U6qS1#DSWWurQk{q?E@{#DwTGihnb1vKth zX*>*ulq-XppoD6fQ&M9VRa94|*~sZY|KNd)Cg18{*m{|QzH0fis5MUJ<;pTeU?!Sj zH&V)M#c2d{CpjfAyrAKGBKQV>%Nl=hvI=29ASD-1lwC5Cpp%V%EcO&Af!M#F#F{wv?j*Og=6@zXTxUVLg1YckN^I zAmM=!cL7muc+_LR?(6k5AkQ zzpp)|Ymg%!1zy5~y-i8L;C?*lE>OB@{J$ech?ku(j$X@GOO2)VQ0+*&fI^>*8T^Gt~4QZ#@YKmt=*a$x2ri-k8wrj0CQz5LuLUiemT3!mEtenq{>PDvY|DmIwk@FFZPwfR8pKs69s+|_i1m1@`7t~xn5Qvb%JuT!GngE{-JfsHnQ0Da4Wdj zx=OxjdyhmUE7H|es&r-B%X0E{2+@CK>lxy&MWuhiNp#4-NN*pCG^WgO*V^Sg@c*Y@ z&Qnd`4&GuRP^YE%Qm^>)=%e3!D#OJ1o)gy$CvhMCKrPwo4DHYw-|A{y$cxfq&=BrB zpZ@m9&xY2awQcSu42V6X33t8N4#Z{#NBcom_gUA0h=SdjA&)(tB)iRQ0^JWrl~+yq z)FfZ35Pc0z(ZNdSpgpi5o?c*3mK2%+0VSx=@GT{}3JZvux&6b2Wduc4vD_gm=J0mK zl7QH%L*UUTOJ5J!x(JwxHN<4m^4wM2=WH*As6t2Nkd?MX$MKGEu)P=)ak-$=>?HXM zE!~_-_jXf6o}svta7L2V{Dk&Zp^#emk>qn&YAj>;y}VS+z#VgwPy)~jv}g&_MasnQ z0ilvP;tB2qO7n$rQXmwrg3~-hJ-$q*{bI1c=+;LO$LGKE6tv_ZL(f$x0BK=?nzu@RwUb&lZBaRyp2v^oFCjPF7|ht*n$F;a&xeG zp4=w0=22EbFX@Xxr7wBN)!di~D`KiDzOS^Y#pof@w{1^9b20wGBL73%pMD3&$bi0g z$dH`K7pW4`*@MkbZdiI~{H|)?)bX|STqW`ToG`0fPKmCZg;o(ayC}j>U4V5+C!k}z zPzcOSUj9K-JOM$5Z*CxY=L!X#l9Jf7fJx2~Ro$(kI(L3aG(X4^-#!Oyt}?>+mV_Hk zO&LHU-AgRrWrX*C&=Mn>R9L}#{Z;2$Stp8?`|-^l+orMaJy2!^e1)dM>IMy0otikW zIua6Yln7toxi$$W?vJ#&`TKtMoD2YRok=ztX z=SzCLf^X`pJa9F{Al|^ebdi|5AS9d7Y8qem0vWgk(_eKmBGt|<(4_p+9Zg&~=T9hH z#cK|plS7DZIgDu&3l*jp~4$2}`T5b3F{A zjn{|^^ZU_Mm-V`f{?ROVKhw9P_tZSE55v|R5gPTPjenR;oqN;DCRLk~F^O|M<>)DP za+evc#7B9R0SlA0f|VM)(MtkGpAGN`e3NuUc5j_hdo=ZEM+D#H=tclqps)?Mnxpk{ zH#(lKi2vjA9n_ex0lyjY()c=U&wJ~r>LjA>`EkBt_1Vs5xK#KG!_{t>*|>T(cDB%d z;q+#ct4$Y+L;f)o;1zm-o2v37dB8+GwhS{JXU)?RSn!IxD{KxFh){Mum<;V^?;ONTE_L4VU5_4^H@Ts>Eg9actM8P^72n zQ2$ox&Zd~PbLk1`@8zp?QX9KE{Mb&jE2DLuaD-RNYIKu+xS5Ky@_+cl-vqTjz9$RD!f-dAIq6%3vVkF#t-Yy4FFhD!7 zCvn4TJRd$pE519};CeDuvm6PEYIGzOIl}3HCu2?bGEbn@RT6uVKeW9BF7VVa;7C^? zs|M(#3OE|=9O{*vq@CC{A$RHVD{|0~%4K1`^N^eqr^lFvy9^)sDqKbJSziT8I@LS8 z>`oCk9>_gs{gZ>x`l1@s9}U{eNiWgmauiD4y8iYA@8&DJ!X0)p(}r%wwkg78Y9r?b zA#(0}*|E|#Q7gl-OA0T;1&HyLqf{%2s{(|%YW3)_^e@poR028S(y!O50cmB;bp%k3 zSGZapVa30#4qHgfAW18n8jGdJ*mGy-D8{=&QL2<@1dwcE9ho=~d#;GDOhy9Q%H6;! z$Ltzck;`;`%SHBJd^R*Yl!MR%r2(t~rXyfKJSh!xzkj9k;GP8xkq%pVi~@PRToLta zlqdt3HyTF<0E8MjfC0j3HJ~XWieNY zd0_IKlVjB%401#hWIvKieChplAu{qA3gU|u zml|#`P?Fvz7)>*7A)fp1b->zcGAY>ajJ#qPV0kP!(2g_e9p~z$L%Fd01KaaJv)V#X zk4Kut2< z4)RB=-6H(~cR;}@+?PiS0|tWrRfZL+Zp=0e%ZJJiI3;xYh5Qy3s2sk_#Xcok3~p&p zTTF3v6i^s`4&*F=z`|KMNI2lKA}=Zvl1VfoxN(3X#>J6{i|wKCnCq7}6|T4iz` ziRw0eJXhB&m=z7`gCcNLZRI&~lk?w}Fb%9#yZ-W+*)ib4Gswj(sP+F87GBxZ>_n$K z(f}>n|G>`pyld79dnb?d7=>-NiC`9!NqT~J`wKUflDfMpqYm!?pI%*TOgA!o6ANl2 zw5RWLqH(MGCyxHtntV(j1dRi_n(>m!>{baaWa@q!jkFv#bOHSX+&)Pz3VR34&7chM zg}=8U?Da?#eGMP#UR0{g#a!Uk2IfUP>Wov|42|X&zkJEAFKWXWv)IRrb34?gQ7JfP z{%T+Xr&oY9?DXs7t%?Sspvh`A)cfq#Y`mf3@F;NYop6K`SJyK#4;VXEH#pwe{2G;2 zNDcq}GovP660_7jgJ3H5jv(7-GW##FQ_{sPBTrc#dUlp87DHjS7KzaeEXBWXXnX|i zv${@U@!DiNp{qr7pE$>85Www(>O^ODHs`4h*LUB?>c|EkQ;cLD+kGWRf_kHbZn+QBNLdAU4>GoGCg9QQO6(LH$EL_73>6zcJE3 z5h82_Ue7B$&LmPaOCQ39eM^qq9e3!>wU4u{@|+)=33ADGFgr(&J5so%d8q9fDr;WG zKv)SjxUMiOnXsJ`EU-v7?9P8{9FLW&qR7?A&O}e72mDTO;k}B5uU3BcV+Vji`CfpW zpK%AWSV#Q%%hSJKNmGmMhcKMaJI4F({ubWroL5!YB?~v(TJ7zoeByI@$0t4R`rKLN zL|Qhq!`@bC__gndA5t!}+{|f9;|D@!e(;%2V*Y~n3rtsuXhYzWO$|0=|I)Q^<5>^B z-h6esjjg7!(?o}c`9+w{=JMg46g=k;1yPaNpw!(v;SgoAwIoJ)Q7}*Hq6KDtoh}?A zDYPBS$Lc56RWzV@;#&ynrTSUPqY+Ps4XhUGGO0K14OiHzWq35GU3Q$EWBZO{ZAiv3i(8;B)g#1!1W7R-rFP8S8LRV* zAi&)wy6MS>;eA{knZ0ha>V#gd{i=9L#z}bbp;LpA4X3-{4Qai6+vm(iI}~{JREwZGuj|J_Ju+H)rp?IX+&ca=MWv=M`=j;o&NCkIYFS+eD0<- zFAu^$PuWstJAuWT&%zO}IRl?8{mo!Tzonm&WX>9}!Odl|Y159MVY+|#nXX5_IQBf} zh$_HZH}<}}K_0B37C>38=vX0Py-{DuRos5MQ8$O0UO%X_gC$n$nBrICECgBz7BVmi zfZsCSxDr^db{$68CY%47odXk(@kzM@zTYXCNsa13*JwAhf?a=OxbtEsG&(3!8&29+ zTW8nzwfm!2FS&7;V|~~KGZ_C^HS6H=|1$K-_kh%ng$@njd3?!$WZ@>3O7%~-$kPh2 zc)W&l73u4k#Vy07cNOz$2#$8sv|95s$m~r$pBKb6oU1+BS5R~Rb~i+tY{%TLb!K*4Z_~1E2Bt+e}#*8V{U7<<;iq9s5ipF z=4fbCZ%}99%Rn1k8N~_}uqNX@TBk@HH@zi=r+f>^wZA_-suWFL&*!I?j;D#Ns^jNc z>DwK9&Q5545=@E1#vSbV5*5#W%60KekB0=un`+)~VmnpBM51E9URH=Vu<$bu#YiQ6BJVWSV%-JEfqZ=CNC9};W*DJI9QyLCihGvD=P4nyQFVf(fsF*CW`X*7Vv zT4v^BB;~5x7Evz{8+~*eoYEBsOMEdVP;tz0K-qEf7sHT!#Tk6{6=?AEQRvp9@Ct=n zz-4hv=ccAbza@Q&aGux{@4yBEJM3Ix8otnG!~q}C4|#{$(eGFz;nZ}X##9Wq7=i*G zLS~CFp29c5VK&x$BLXYp9QRTAOh+$m+Wohacan4nwWDw8N*X1li-vUb)$8Hu7_0?? zL>;$!wY5la*yC1GSl$tW3Dw5g)Xy`N1d&d8?IswA4Ez^*;YV;TZkz~Xz80ZaG@>-2 zzafzn{u@fQm!NLG(C1v(0t^l=L6N+Y(G!cy3mh!!ICo2g51M|nR$JQGj0YGvU%_~= zAAkoyll@GTb}PyUOZjVe$C(} z|0QsTq^mjMFH*1kcbFGu*S0Z{y+N&y_7}dw5Z3u&ipgfXj@d>r6}E&e_6Mg;<|t73 z{;GIXVO4~cZ3PL6FnA2W7Gx>5;7s|%xeit^{h$m9a|^y2Bg89z1esoy8KNqr4UH8C z`S?lcCRJCnsBDTa^@BN%&~bRX9MIIB+|T(TX^tQ(lm~kArNV3BX z3*OYG?6!(rBIsZ~%yqS#m?i4lNXh9SZU9a<=-lsGl%mZ1;eTlmgqJn|?>wmh`PQ#V zw1fS5lGXBq@f=<+A)Bu~122ZADAV{Uiv{xUeh=@O$<~hkSz62i0|Ctt>!TbhGQG@= z*@0#wJ`S4KNB>qBETQpAfvjgLT=2_-|u)Iv1zw`*X#~+L3uV7ruL^&%?pPzeqrj!?eJnA9Ff|%0`y@v`H4U9IoJQPXW5-y;#EX^`5pm*d zjnd&X5&3k~jC0B@ipGR0K{p7mR?W1C!G-esgIx>a1q7z$-+!`TW`y!ZCM+&-18A`O z3p3m69o*d~lvv#*qj@uS50cE>wkODQ+07xVrlR(ou#RXo<%paIYS>}Q!A)xm-lPi9 zO8r3s4c2`311FTYi(U4)z;r5JnpX#oD2nUfqHC7{Tgypg6aw52+atn^nZB|Oyal*# zoVMmLk4gEl+XWl=Enzd-pn}%El=AG-xuw!ah7CB1Y4cr{7!DW|Vj-jMU3nD5j7J{V z+zEvQY0kH#Oi9;ba!H%{dF~Zzy`HwexRAjA*9_ zotl1;@_(zH%aBwJ=7Z7{kKzb9QlK*ebUY?5aCB(29jZ%!{4 z_>Ou~!VOd~{>GCohUh?H4Xb09Zq356!MXjBZ3HbUP!szUOM}%cJ0fui8vRhokwM{v zBYKXO4(jXp*2r7$ya88V{)u&0pd!47_jZY!u~Av{a-1lk4634&-w1&K2I(Bj1Gts_ zKK(wC$lh>tlx4*Ok za5qj(%dAZrFW+uq3S4#oUqhVsFJZ&agk_6JyWb!fc>fFnm7SmmWGwV z<%~FUxaAkV?yi%Zw_KGGG=To!FE~z({jA~Y>?ZODoq!%+KOo~VYERkD;CAfQ!n?56 z8=q<>MzoTTqT4$t>h*+;30aKCN3j8|G%hY2>710#Y{(~(jnS@(AOTOwY<5Rihyaqe*yW+%t8NvYIY9>)`!$XA-_ViRs5L3wjg z2YLvlAOh#;k;wQd-$2ENuoQHmpy)_`9v4xClL~wv7`JP2FO$Qj{I#hqVJZV&)oiq%Xu0YQ0BV!oQOIFm7cLN6?Zu|dtfs#BRv5&ucAei1qh(TAk zjcd?Sp_`*q)cYiEfeL3X9-SSH_(d;MOLo|2L8S{h<^;D|MvKm&+s4SND+{P6yOs$t z?QpfG1?A{C&!-(*^8-;F`aOL1Ij=Sg#AJKDUg0;Oxion9-JClw)wNAPeuG*z3!S3Y4FQB3A8)mk3r$F4LJ~o?CI2P(k}o9xT2-5N0uYBKhd)rI z7sHufEf?YkI|usi&9K#fT%^eaZ2&SYQW6N3Cw!9Z3te?Dc-ArXFWzZbddGd^ zPNlXpD4f`|9LfrCD&zb}b!{}XrPuSVc`3e@Z`c24)jEjo+;4wE8RYz~5@DuB_NXfl zlar{Zb1##B+$OmWmZPAYYEYG>)6UJ~TTq9fjRPe(k`f+Nt$_?>1sp>Q6&uREck} z&P14dtrzhwxNtLLy9JFGcAS|Leh(EN_aiL#P__noc6KaJ(Nr4GPp7#Tr@;n)q{LoO z;6SWqY>4rlLYoC2`)(2JgljKe?g`lKi&YaX9XjYFn3E0apFIDz=K582Nk z9b`J)&eqpq-%^(I9E{5lG{2jJ03s1G4+-^wG{4e2T^jPyFHy_d6d}#41OAJGOMRag zcWYIWjNsBU1QYU6*v?iuYPhbrqAfV@ls^eZ2fK8(j;|)MNW=5N5*R6L`o)({H^|S5 z^NaIG^Z+LwZp%iZ+*zzIPaZFs{6$#-p3)U)Kfi3e6wk) z3|y=AF)JXclP|Vqv@&87&ERbA?Ksndzel|;3TOtjeiZ5l(c{D&BN!ql`09Z`db-(4 zv=+BO1EtB$mSFO%yAX{G%1suNW}gv%Kv4ke5Jx-ZfZO2qlwI|OjCrG8B4*d6+@!20 z=^fF04(9#&Lu?0$$>h(Nocw!MAYzqi&$*RFJBf{ucsJ`3b5J#|I;*TgGPNY124|XO z<&R9y`S)6>{_!>;9#3O|a!h4VUaBM8-hsFv@Tx?Z<9-*P6*$endG9mJQDVLO@s}D& zYQ0M+P9QNlXK+{hanHJJ(}4TCr0d_SOq>NOd?sf@4X`E_>*PLrE;rI4!uOs_)y z2S8zd>gQ1I->oiUxGl$I9YRHWrmz6_2KK^4B<@OoqR__KZy7C`f?g)^Z>K+JB;wlN zmkIu17#dKfJFViW2Vk;*jm%7U+*SV^NP<-K##dhsd*^CTWYXS;f2vvDT=gK$<8APb z@nf4k6i7(GDyQ^r&waG8Ou~VL&6VF_b!L&F<0w(;TOf+xYwi)b{~r>tVym z+c}G~sE4ojFpkf)0E5Qi!4rae0xfKo4IOLvoMhsUzMOgP&d032@A@fS+Bj@If{UMM zt#lyOKQQlc(nr|I_5VoLDEX?zF}SwF5c-GYZJ@M`4(wLmc;aT0$pHeZ6ZCc;9$SA~ zLQS*+0psTWcPsU8v`n}lo9@++WDG5^F>#zeF?IeCqQW?T{||zFc9HzZQV7?d3|?yP z-Fsgm_K~Ihtvy*oly1VPxad-3^Jl#>2*b#k?_h53dsA?w^5^h zgRiKy(V9xFiNBf?G)MD*&31zh-@C#PkKB*eczo%fw%^ft|M8DI1;nGpk(qxE{eDGf z$)zKUFjZ{T*glO)-W^0$7;kmg9GhlR4Up`$qP0i@=WL;6CuWU*Y99KoFpZ^3Ughcg zVSZQ_8843D0oMiZsd@MNoDfZoUj^Tj+v*xy@5X{E<&j57G#&;XN%#_fL-jSaN2dGw zB&&CmkD?HxaFLh7TOoMBhE!``fAskd1V>Y- zMAJZoBqc>cw1Dut3hz=;%fo9+aqUVhd=D|~p$)l3kL1rA+YXu^Xx?@>={st3Z+K&2 z+&*&cd%#WUZe&47o2C|s%v-aSWbC1T@O2Zmar{lYntBP^{7@NkTm{4R;53y;1JL~5 zL2O|^jt5h;{^ZQ3je(XT)JJJX0_$Zj-^*xO&NcUGRE^@{kE1JUzA1|uJ%LclpWuyy z@;sQWkyje?g0_@%0$F8O;Vvx?^wLPJS(j?FvMKNd8c>4^k||pHU21EXK^#Jqh$*QU z_J|Bi>_S{dx+jxJyM8KQPTYvq^V{yW5hWpe>l&Kc zhNtg6<@c2JHXd!EgSKnxzJ6?qxDN2sN8hiRM@%<>xv;>Ua!C6qydbBOM<5cpZJnb0 zH)Doej#F&|2hEnN_uHFQ&cCT6@HsIJMgvCv%)WD}y^1x4!7V3rkZB1lg;q$ppd_$0JjrpzB9DIr%0sSD zE>>Oid9!fxMdU1*{Y2o(xdMK!?wmVQ$aYMq1}yqfX@@Q6oZW6NmIc=M5-Je3KRVU1 z%}rNsbwSLCR}b8}0EY~`hR_!{n83BIO&oqkzU9X5&F|=EaV`p?D&E5iF3IA6Gd%Ft zUa+a?ykyvJj7D#*2X$iHwtN)*@tVHeCE)nD_1nVoyqp_1) zWsB{dFR%7<+5URIWVqbhWkRA)p*)-p%Em``nQRt zHxR0f-IIO};P!Q5$Hu5sis9|IWtb6nPxoM1Pw*Dol||8!tI!|Z6&O7A*^QhR(SiRz zh2`>lf+=S2sdBILmKtGaxLhtpBCxsJKz{jUTd;IqT1m=4w++a9Wn*cRijAVwF&na# zq+zj=uI+}og2|w?S*}$4#<9|eMC}AZp>NjTl}(n z{tta+^R#@Nrz0zvdP>=EfDU;QorNK6?eb3|B_7^QsWec*SA)*HGv~N0&oa}E|N0ZS zx!A-PK-}FhwBM>wj3tr05bNfI z=n$KgU0CBzxIrU-Vbl~}&OczHHs&zMzqnQ}7p8-h^0oKw84Wm5ln|H~>Rl6tukVK!c5RZzn76Q=pW~r$X_M!kEZ;R$`1&D7eCP;{1>+1l}Pv zxjz-h9k1e4$rda6TVH`NHmxRYd&gMn@nfeK3zAlQ-1LlgB(OC<9!u}@34U&av<>_@lj{y z$rVER9J{+=1*hKyjeQ* zU2BHGilY{EQRCVLB;ZO8Sx@YP#Dzj?Nuw6MVZ+jA-7KjpzWk2qv(a;dm@oBQpqFOk zp5pH|9MvBe4OQ|K8*c;~l#R9xlZ|@D+KrY5!^X%X;f+Lw*vyrgYO3}rYcI*pV3fNE^hVr4bPjt>@*BidBOXNs?;RgzP!x->=FL%Ey@}y^ zAJS}+=pSmloFJ>3-8k7d#<>Pqpa?@fHUmTg{ztYB<2z*LFi;3NP$!I$FiG@4%cXzm z%8$QwuAgY>VC(;~hL+E3fD>g^2q;Lv=wV7~GF_tqW4`9L)?Q=sJ4vAOj(R&sP-OE_ zIMr1;jZi;Rl;cw?81!YjYW=dO8TQx%K5||cs`W`j#@#0K1={flmd|Twk;yS+TwkjL z6mc`b$7AwG9+9$S-(5VgbMnv8c78pb!RJAvr|y_6M)kzXxd_>cy{gNNON;ppTZxi0 z5MmX8?!UnEoS0>4XiYdu4IDyHS|pTf3*LW!`2UjRR5-nL zjE*q^TR&n2b3HPF*~~iF4P&&vpHJCilAe3r)3d-JNXjAv{$j8K+c@Jzf+Mw zqbVML5hL%_woYQ?g%RlhwYh0~uVJy(hK(xe*@SG(}!c?97r!RTN z#tHV)ss4Mz!2%!TsJu`~Z7mHGnBI@Y_oK^vpWHZ407Mw*rZ`B^DU)pF7`_r8hOJ)T zhv?^US<3g^w)0}!p?vseXl%JoL<^{OwTSmw@&V&#YS6ftDLVHUAnhy2`Qu!90R!U! z-b&*`Pz8BZb3*1B>X8iO5WjC?I=>9K-cXb9B#!ez~ToE-eiEVB$R>C1zsKk%EPs_EAaNJS(NM z7G6wxgd=?+Y$TfInkq?TD|w}agjPKgV&*HN^hd_T`GBs&Ltd%FES;M!2bUenj%5em zBaLGc^XM3{;$g*YUI6moqo5=J0PX{HbNyxxq@=hW(7Q&J2Isz`+nErlEE$ z8bI2l+H=g?ux++_>Yj9B^uF@@#;)-$P0RiSP35;YKg#l{JB!m`8fFK|_Kok-f2nGxj0s$n2B-~X2D664@!%>t# zLa$K~qQXK!X1?S!bhLD+E(h$eg@GoJne#t?%cirb5dg3nBLg5PBN}KRwSx~tccGDe zMZ)1GC`j5|a(m{yl9@^Fn8WQ=6-VY>cVA)ukh}8s{;fk>Bpxs;7I0bf{wv*b@4m;k zd2EED22vr4++5n$4F@VaBicK*hY>dbm2l0zJLFt6-pClNep7v;LJyVV<_0?@_746! zy8GD8U=S14@3QxSCSyhH(B4dA!O+l@;e$|E)WLEUqZkBXuy3>MKv+2+YlommJq9a$ zE~!G99u9YXJgm}-(=W}Lt?w%Bl@?S?j8Rmfv5SUq3yHBPyFlrHPoVC^jKF7MXY91n zI}?R~8u%^eEoO%(9?S^*Mwk~-g2upI$afp=2@?V1A$4tjAnRDV(+>5zK>mbx}5r6j2QjA zx#%)#xEpNt^J6i;f38GhyP)lbtzFl+^zqvcsCpbu(o_ZD0@V6m^n<4(>!a!h$T_97 zVE~FiXG#R={Zf$DC=41D!0@@2S2PUsWL(e|+87+>Cs1scpFTrC3Dk|#4If#lU}6Pg zDY&4e%tBGgu|D7mx6cR6Mp;7qyu>+Hp-G*mfo>zIH_iR-)AF1<7`WbE6ngf4>m3hd zwnV8P+%o+6olhwCV*3hl4;GV3X|#lw*}#OTDTSC5KByo(;z1D+7NdUu`>1M1$4JXE z^0)N{7Y+TaMi~h`7R%F$aJj$&kYuLrk!YMW-LF2?I$O5>h9_g5rD$~UUdpa-sZbwt zLk^%hI+IPqKYHrb1ogzIwIlJq@jW!!F)M$5t^dW!IBOR8Mg9K+bM@c1KojJ=)C0Dh zo}QpK1N0_b*#%u77L3mV4&!};GUYn^z<$tCrWqqXHk4%G!z_jTtzZpFroJCH=r29R zH%2z>>wp>!n;rVK^|{}PR2b_pTkX2i*hi1)h}GqHG-RKO zWUp%q*L5!P_5!uLSWsmpb^U{Y>O!1c=vv!RFzmHZv z*HRL{*dGeQ`hO@JGYhFZxm+YCcn!aL%^OfIvH4b*N5mSr+QjQ!Xq(N_9&iscqKfz6 zA{&R1`hosi4Lyof*WINi={DI6{1c8r3REzEeiz^-EGWfLGKkC{%@-)NPTo3;a*VeO zvAAx_9zOP$Zb^VuYG>hdL~+~6tQ;Yo$Gs)6L0U&g4qDKY=7H(Y8jfHFYDa)4YX_H87~wfFE1)d z7SFah!?k!~W?PC$RXK?y4QyIMNB1o?KU^qQow&8`4b$pJIU(v`&!@ot4w`1V>9I|z z5byRE$gn7|7yv_rRb^bgiM%z&&z{_F!FlP=dQ&$?){*tJJ92ixv|@?`#I7=17)li# z>qJx>Q0o6unR~pC{N65-5BZg0)^xiG{rQTu9eP(te`=>SRdU#bx(0Pg_tgJ3R4seH zx-suwyvQ`zA4vBq^nooEXJiDG+93-+Ezc1$5_e*iN({94CW+Uss z>{9>g`ui{I1w5{zjya!yzRB*$RKM7ApHIw9>~Gs4V%oZ_mrtl_yTg4@{No;@Fg)L( z;Ey(rrPq#Dg~z`Ty_bxS_sdpd@%45YtyY_xRvVY5+p0oY5;RTN^3054of^N<#i5|< z-dmiF6MGv)Qeyg+l70XiHdkAV>sJxJpo`b}=pRt^U%`V1mxj(Yp!O<(H$-eFdoABD zG4t#-|2*b22|CTHt9wx-VpSH)QA(8h;MV{V)fsE!?DDee_pQFPw}>M-Hw#W4E4-0# zc|aSvTpRHfSf+4TBJn9^se-}vkUK@T|7OKt_f9?h7?Ok9L#&SwMYmhth~>ziF&v%l zGb&fu?$CH#p8af2H&fwl{z;CC*|>q^%DQJu!qnw-m%avX{r?i6{fR4*?uK|^AJ;#V zK9;4AD`aPxA*OS`)q_xHKfG?@LYZ|wn@3VCd4le4Hu-`#kZOP)b+Tmweegc9wAnVT z9ptx*$u`nd`fyS-uefx{U1?nxuG4a?~$OzVms0F^|OJKlyT2V!4R`AuY3CqCPhOfV+NQ$5Bg> zKmQKBPpT`aR-*gJyqtIbB<0mN)9MqXVz-PZ(HUym9i?okC(4D_P9XJeW>61}w4B^Q zx6HPy&oTWNu3>9p6CRm#Ra9CBN6+P8h>k0)rxm^yYvHWi`ufUZ4z5AoaE9oRCu`k1 z>QHZJ7vKs9ZGO^;`cwN{wVno;oSd+hR)$F;qrjqr%UKYk?{^jEAtE(xUele;&C>Ci z-oAZ)K<@9G;d)%?!;o)KqonDH+&#LHz;^P_b^C^i_KxDdD^3<8gYoyKqXIDWTF}xE0V}mlS*8F;fNAO-$$$_mW zP{5APA@3*ByK({` zjwuKt#JX|~{-^s}yxe0MvK`!Kx*~?UxS6bXgsqqRKGwILek1$=UbJ&J3QFv@r zsk`X!g<+yBdYp^v0zR;)t!7r)C=ZJ?%Y<@2XO&&`GWipG{;^5}YmfHYPo%`vggd(W zcYZ$3fqi{jY?hzO#k9SmRMOpX3#F50iJc1^KXo(&?BC~w()b``<$D&$ zD_dCCb_U{Xjh57DB5Xg(DJa+?{C;>sK@3Z!+!XjyIx!(p0u*>BW1qx)67fl-G*Y@T zc~pYZNsh^^l88(hnItO^NJ!daca5w|iSV^!!RCjxkVdX6-y2KZWXpzq|h#dcXfIJ_eP<0w`jC|r)4 zfx#iBTWD(HeR9hHN!h*A&Eag|Cx3H|rwVs#W^3Jk;Cmh3JI8q&hk)|R?4Mz+AHLvK zEDZPAVuZP!d2sx)n|IHr1Ahc8J$e3VuF#T316d)#3`!J#3l#Bo<#jUKbLAI8@Mh^K zN>FD3le)?&BzuLKAwMkS2=cx*>sFMC&^ouQSf1*HkyeftvPTzT3 zlIceFdq{NYnOT_uES~F?fkuSUha9cZ`Z_%6K_e7*rbFef+e~+823A0N!=6ZlcIfe+ zOCen5ove;4MLRGW5+-JA^E}>~;vmvfj>|n00dtOz^IH;?!>A6^)ta`1D}wGeZ{NNP z=jHTe@JcN-B%=+RhEn$ph5pXfb%O%ZvesmQ!@KD4zGa8i8jujwG3J^Wtq)L_)HmG4 zzXiBD?Skpi@%Io{VH}O`jF5Zb(Q0rlu3iyP`Qy!Ywl+Z`twp4kF0*yPV5z5VrklAUJ= z4Qcqz=c>~2raqdA)QB0a-L8qckkk^?2LLfZ&cB^Sd#|n<;WIY>JR(cE=QzHYC4Skl zpa;E-X#AYE3%}HKcx_oGKYtr$6qJ^o4IN(Zl5CUlck(1p%*Os9`k22%XRlg^%)NxWjb z%d^sVIP8E3*=s0p^p^V9#g6a(O%Bl^ahO|6Pdi+UfT0?l1V1xh;zvpZu#EIG1R7V*UF#!sjInx6 zeC?45qJbIsHfu%daWXW+Lg{Vq*8o(smS*8_*x1RqA*x9t?)eXh7u(3oF5K>N1yjx0 zsfKyns`>F0_!D!s50ewNd*;C7!W+()KPvMq^9F3j?rVr(>G~Rip@BI;+C3Rk{ zfF-DzLc5iEFNSAz3*0mzadOBU{0|n>+%y8Qq+=7SCL&5kGRbygWfIB+l}WS`@k#_N zNzEc+mOxL^U=+enbO4jHlJYgd9K>a5*~#VaG>hHZBL_>+j5HNDa)I==C}Dn4BT=WH z%9q)MDQTC|_VJRjZ=bfBsh$2Cvp>R|Zw1fMNgrk;s{u@| z{|10P8c;S}cyhgQt4S7t+R#5a-&dcDO|A1iUmQkWdP2#ulzKU65}k5NoPGw}4V0c1 z8y>#kcxvPyoS;4S+n55c59hh7*OKU|*&Y!n)5WNtF1jdw=FLssoN}2Nntu8@G+P}! zOit+Mvh?8Af|dX^%zRqbIzq*<((|UlnP9i_<};y0+Tbzyxsi%eyhYAHl?UZ;-#leV zc}&heBSidp_kmy$C=FXwn+v$!nkwF)*puHg4iJt{&_g=BrSX{R#`G}L-M^gHb}vzz z3d3(M7%r=yOoyCA^W5yRx5msoFFERsr~&k0$%}@tN}f&L-VIB&^%XXU zQ}G}yAMDN+Jlk2>KScZiJrKTM-OkTBCr~=;= ztiE4_LcL?kSsuJT%{HaukIxbTt<1s*SEXi1 z;$fL}4b_C7&mbtmVXV6wLl_tX+eYr~aX__5j1rFmXq2*6X+`QFmLLO?GK3vlf7k;> z$>p>=rw>H%eHiw9v3^glgnTAMig6o_gu0fMqRs=IrQCI_cGBbG3Z5dH4sb$AwxzhT zD1o%t49MvaH5cR*!ZUABg-bPpj8_txzYAb z(lc>geQ2)3xfo{9Ra-yDBr6G(-^CGHAk|A8DsDqD?Q{mI=`wC#Zgzl&y6?t(F*idz- z3>AQi94bOoK*a|YHBop?KLrjjvZiF~q2bmrN_8|u6jT$b2#}zLVBTXJcopfCtskHN zI2D_9^pH6fX^nMMkWH(d9xiHNmmlX4V_N}$J`dRbHV#<0T`+(l6NF3BrVpbJaUH1t zs1J^gdOrU;60avkLu5H8r1x0PSS&zzSkAEyx~|fc+bq@NsbO#oW$Z|U9yA-SQ>~Dd z!9u_%PrKNg5b6v~5DK&N0|=R&Q2~TwnVLj^G(&5m7hWg$f{0h5<~L7tEq!uvo9iTS~l>&(uek7k!=t{?OxlZl16g#$qZWq?f>hZur`6y9FWMWfA)bLJLkyxLs=83Hy-@R4 z^F8%CdaJG%D+q<_9uy6GIwwOVL9yuQEw0lUDGjQnIwe)fN7&5Rgk~E{-;adJFbAX_ zEq=&{_zSZnOew&G$=|A7G*7yfQ^}c|LxgXAcNta8t(>UyBtuKW2muV8CF{;IIWY!!Cr@D$*k-z9x&%V&R{<1Jh9(@lH!BX@_g5Fv8N&9xJ| zsuG_D;? z|K7l<!yBhe*8Y2nKHcw!vfYas)p_AKys}MZJ>*t+0A9vdYX?^xP?^4(=l&Pkh zC8?PXE-*fv?~b@1&E?XfQ&U*@t!<HYh>Wj20nij_^Zka2>J$SP01n>AlQb0P4^v zabgrJ^zn`n0o?eTo32^*y=r8oDFXo8bwqI!^){AavdW|pv@CvS8Cc4Y>d=V7LmD9^ zG*PSN2S8)Q+|2DvyDnHnu9yV5@9_N6nkgI1&)nBp8C&^* zB6rK+Q|d6Bf0{h((Mfg%flW(Z^RL(ECDa|qWjMo#V7t8XM&@4Hp_*`!OeafU%sxBb z5kDS`Wk&nxJ1OpClrU<&AN{&CBUA2F^Bev@cRI?{ztz0n?GQZVOfKwej{}vT_*=B2 zHcD8A^g(&Xq*mZgop0?|r7gb)egpS0N$bk}&YjQxZ*|+LZ#EFofsMa(i&&xnS#Bt& zy81hl*9u4phoecPq@y9q-lrkykob$@iu>uSZ(E4RW9F-4=c4{dSk0?{d2zgqGwFtq zTo)!#(>%I)7vl7>Pl!|6nT3jG;_-`Vd=XK5#*B}X;InTW-tlz?nV~Fr@Yg9mAFz`$s6yynEwwU zVPMP{v`DAF=wcObS0(GWP-ROEuZXIY;W@B7Tq#_9HIp=`2H9kRqNc;73I5@q{2wZQSuTitNdj_}}_Lwz~g5 z>$-Vt8z-iX&HN2tX2bkkjw#Odd#?v706hezODFfbO+X2YWDWx2j-t$CLpEq$z=B+1 z(p)ZpzpuwqFr?!HY;s<4>k;R-w8vHU&m=eCGILQE9=55DZA*s|ije!Yp=3#bmM-F- zl6We<2@!%9))9L`!Sv(sLhty8zZ+G#KhqKos*zCij7C>n1qdR1FDLgwf+7bBWk`v+ zHl@$UTZ;20X!I`QhWm0BWdtNj0IUGO003YLiVAE^_qalnP-VVP*4$#NmC!*LD+a@s zH6E}n*(Nfxxj>g&+I%*%yNU0v|9|cMZKbh+wmyx9Z4EZ06Q;UttQ?I9RaF9H*=0Zu zZVSL%=eGIS*WCaqbCdp4SpWq9f6dmQMeg!ehC#%*xbsRvh;UbW&dNphzg`f;fK)^* zV(8z?<2LMYc-)|fX1-Rfcl!I<1KvW_qh)P8z4nce@02^vN zK`MbpAgHSfMB>~~K+=4kf%mnq1g-DiAK#G&4Z3)U+5*)dNcU?^*LoNU2m)Z$*#THh z05Do88F+etnPLAkdCN{^_j4&PHFdNu`|b)(D1^UD=ud0xNTJ4x04hMlgL;#&J*d4c zbON|XBtIWOB$5bc2E!k@iN#kp#Wvi8-UdZrkmh6JgJ%9CQ7a9tY+WB*QJMHMq=hg( zMxBUN6{aYDE4;x^z|U&zrbt+GFHi;G{sLwaDn(D>*U}SC*q5aXM_mC*&Xai3zgwH7 zQ-(|fn%McW8mV0|N5?E)(1w}Loe*?kfcX9_Bg?}KwKpU&UOsn~1ZAKDBPJkbFihUj zO5ygHh$;ZQOuqoSxh39^)}4Ud__=^dai|u&lv!vaP6(EQiYU@|%ZLr|1M%Capez;F zmPM40N<2JA!Rbx6V#T*c$;1W8wCkVC0upVD$>nFo7#I-vta2!P{Jxe#eX1|=(s$YV zJ8et@?T?#CiuWDbp-2d?Nc4LQMxYWo3?ZcN-mwo*dM8m_*sdy3%LLZGyyyhuE?={n z685~kg*ndun+TU+2H(#jVd{{U@l*{tu|-*gR3MIQ*ZpkL%*s2F{taX5ULZ4m%d6bg zwDF4>bko$%*hRaJ;!j^%`*u7N9D(GlLZso3>$~=+?3E_uTTWV&wlw51WGJ|pLaY1% z#@N|43De_Qwmdiy@*@Xi4qbbb<&5aDcJd`4noEoQMeS{^v%WMYU#yAe@87oHJXS&{ zYUDPlP4hb}?zBfIt>K1vH(&Y*d=O+q)$s^Z9}c*-EnQ**^_tX&AF2)Fd3CC+bm8i| z!f=B3K#nSn~5mtpFK$z_j1CfqH#o90o(JtUIW*`fSuAO zpeCJ*MT_ftpm41I1!r_4N1)zq0jb{&_>@|wTFT4uCzxo{L!ayIL3E+K718p*3}KDt`_&&`Bb`RZfiFi3HF`*^)fEWE~BeoNALRLb`zu0i;}$QZCyo(j@{- zzBU>Yb#k)U+1Q%`dE3c*4UBKJvWUv4d8p>YiXw~XOd0%jo}4nbKhs`oOiop7+^<^9vbj&(yve$8O`d=OZ-x>JQ#}{gyAh|F*eLzXwyS9QEsQtcm+RMv-&?If3d)tYAi6ZT2-fmu$k29}dy-4}bo0DV~s;R-T zN->y2ZiByFjbkf=M8qQ)@?_?_GhyarA$1&O$=NpS8L^0>l$Z-J2QvEXMjV{PCF38` z9UShpynT6qEGy^z29@6obusGfDXA%8%dq!tYwwaBA;`P5-Lpxhwr+br33u`c-XR@? z`|Ai;6um}uFHbro0zk`E@0Zb-W|eIbl1obST+pVhFECON#2jk6ollYYgG6Ot&B{Pc z3S%9bmfX=c8fN~2Hu($Hf|G~yEr~yDAJvTF_5>RL{@7ySTWo?$u*?ST#~!Rlq_j@V;z342{g&1{x&MYi6P z>ZD@4b@yPy+#n|5NL{p+zW4IDaqV$wnIJbc-c?w38R*;z>uW17y|%Mn|F<6p^%Rk1 z*D77R{SYE-tKkm%laW{S^5k~EV!u1>#-n_qa-|1+i2+?Rwk-3(m@+XwK7W|B*EnIW z1`hg520lH*ZVO}hrT@!+K&@p0i~3JvUPf9n7)hZN7{2E!V&^xe-6jI-4d2HDZS%C% zgEf%h9@DAqWbn;?zXPya-w8{y?j7o=tD8cSYwzAZp_K(aQG>x-q4@|_CizY*}67QW8RrNDBg3cZn86Hv14uv1@_Af&v{}7LXVC! z=%6H?A)uiHz>g7@smV?GSJU9P$1%F7vkfh3u$qTCDuQ;@)9Yz|@q5>Z(b8sY%D_He zX@WhCX}Y&;TAHyFOZI*7(Kvh-oIX2~mPgpp>B}t}ROXOt^ZMSQD-5#&ELu!(4OUlj z&m`To77f3DJ<+Dk2zW%F*o43{%Ys8AdVye{=fL%@sXDeW*k8LH%((+o|6-SaY>SZl z%NNlfQl@@ahnHKLDeR;&$Dkxi%{!f;)tcAvXvE4pz_)04R;k;-19~1Xpz&A*T;aUG zkrlB<8@$BW+gUKyiX41b{SDq;MF51wkyY_K^}x;y2t#bryxaQnW|)V`@8SF1u?+SF zm;W#ke(Npp167Z|WW0WG)1aU>9Bv}W;sX$OHmqkBY^E{Osj5=A9lq<(PslKyPk9VhAi0*rO(Nnc0SiM+fs6%Zi~ z&fuKg3$eS{nA;@zz~>mfj?2@RKmei z1Es*R0ecK;`~Td3K_vmmx-vt7=lZ{Di5Op|3SMJbaAi`;M3O_!&g%@<80j+;p=~9E z)2IK&xuC&U4ms#r^omA@zh;P&`;|7I;%ArOeXfurn#_kf;&b%ONJmq58v$Hz(EVK$ z`kYKi!l`QXAtf}=^4aw3zrl)Bwf(&KfBD#L0~cKNN9#i{t2*?aYo#_c%V2y*qt)%1 zOCS6O))?Jc;<$Q7EzMO|B)_fKTdox39*jp*B}h9@kns4{FGO0Vbp)KWxP|onk zGb!c3C)Ny2SH*7U9S-vGe#+2gPp$uC*Pj$aP4bAOLBexk^G>Gi43;I!sgV(nAKJ9W z(c=Vhl`|hoOIdX1+T;6Y`Shug1Iuc#PhmZ+H#@+1C5%2_EuLiRI1p94G@nD3mt@&v zm(NcerANPp%kgC$$AM_(Pm^lBCIi`pt+uW{i`FK3kL$Ue6FpJ#>;TE2^QQ}bKEGMA z-5`|L#a@4(%&4vdKv=LM7&k`T9!G?AU%Blr%NimyqMp;9Z`lw&R^4hVZwGSe$pKB& z@R<+Z^Z^k2H<2*6`5X7pEM_W$KpAJt;Vdh5hy$PaVO-xQ_7`|e={zL+FrLMvA?5Y7 zVG5u7LHi5bPhIbudK~55j_y+pnnl;Tx|i$pE_tUnMW=I)HU1neOkpuhKd7DrKuo#WTQG5FwhyQ)Jk!k!^&(ir2FHm2wJ6DI4(`-reS@0Lel#qm5 z!3O!2pwbR(9}|q-2-Hj0&_B)^XAc_M@{XRbkbyY zM}Ndi)q_X>37zhh3|HhlxPias^WcY#6Zx|LR>B(#nG3Ok1Lj?CX(L)-Z)?PCq5N*r zD=bAs3NO|cGiZWYB>OjD?vIw~;>ZRcWwg~VJx9CZ@f~7TYOsC>5z;o5Qx7M}mnU_s zW7qXT1>-E-1-po4B&-N|g22rUioXjj?rh(+JaOTVi+5r1ZmuZhpov$&ajYfrXGk4CleKdTrfnfFNFBn#qc z^MGY?teL4Dz)b>FR|2#+HYbQvs?`1T`*CDOeySTb)GdHl?>gnKHT|a&b^SNEP--9`TQWr^OQWJHbOt;~)XX4w~C>ATXrvo7$rzn*idz%I`Meg+r zw9ppt9EC-_7p8w`OU-Gb9zYt9CiQrF0Mn8k=?TCKOWWae3*A&3PDLb{^ZLJ!JNd|> z>%|jy`fCCzcd&`UC1-MpC8pZgr3CVSyZEGC6N~IvS(a#T!edkJptIfq_+|M|hW)aK zrzcdB=U3{p+AiWL28ul=u2p^~P80N$R>e2(f8TbkD0ln?%}S~+wYCcZ>QTQS`Z!er z)YDKE`h7er-C7k!8c4F5jk8W`mT~Du?^20q614HahyG zcrasLAGs=)p4GIY8#9z9t}Q-zz4b3&qveu6_f*}}WCtrO=g-wsjF?7_#a3Uq?ccyd zLo@a-wy3uSnXcJeXOv2=_BYt|nCWf#(U-+=+?R0s`7T44T$p4o-l$Is+^UU>np2-b zFKtw+Ebu%&w7MZkDaUa_s?Zz7drb-#u5bJJuwXpf6zos!w&~V4xWLTf71D;*p9Q;a z&>L**8-&SI3+saVvt{?pHPy1M@mk=rfqv*((-OUA9>UXyI3Rg0)cL-huG;yA!%@ib z!z{-+eo{c0{%%sFl?z^tz^i?j=9nGyNI`VO%5{2(v@NxJ3yKQ0jreBSN7sHET zaZG~I#79IyBt}Po72a=8NvlmZmB?glqkUPP--w^?D%V~hNPK}^!Pu&m4@xF}?(iWT zt#hQyh`1r@zDO{T9g_1y$17@E(pX>9!i<^)k*H;Y&0>ls*_)>mjDQp;GpM+CY$w(Q zQ>3O#E5#(t0lW_aS55RyvS)__cQ4o41SGicw^fj;NFuDI5o=W)! zXg-r^I~{{~xvrek6!GvqG{CsjsBySOHblbM^v<6oQ+^;-yS_vMcE|&pci@z_!~_>c z0jcH2VsEQjljg5nC_!Y6WOT-Df48Om9+GxpJuA*FHzQ+jf`j}D zH7b{8Zf{jnef0~1@``#%>_{3MePSGmt$&3`6yrxpKZ{1NWb zk^DryjgtJj_GMBsOQ4x1n!&NAQv0MP)AWwdNzaA{4o>KaJJ5mKE!5qf<}sjFv;MGE z`?GQykkLT_+y)N}W^9esLhNjf$?ZadG~Na-eq~HRxoF0!;hQI%wB}I&TL(@)NSOc3 zj?2uUs3`K`9C*j6qfTh;{rf%rcc$9b2u0%Rr>rnPMdwl<-RNqhpi5cRmR;(nwAjOJ z4B}&~NPj!EFpgsb3b*Ykydn-01#|bd)}=EGY%bFJSe$1IeI{H4OT5gR0xlZ`pCL0-WI+YfTeddy$d|iFSr{ewOz*0N1JOoSjk0Y&X$Vf6x*9><&YnRH+P-X!FnulC z^pn8LZ;k;@#HbqC`Pnu1lU#)WnXyUq zewkd8QXfP~)M#@J6L5Gxypg(>MCtt@vDAq?5G5gFWHj>7A?)0lO3jNj$m3GxH*wNs zy;nXogQ7}rI6ElxlnvNtpZwLBN;u|ReTSX@H0fBMgMMt;!c}kjS3w!qe~j9r&0wR4t}fHkAb)JjrpkL)3ZVG-l@^x@ z-?+K?60v(B$>rO{h}(44aCJdV-ABS4PYq;AI{RV&<0i zD-lp6?#;_tA6reI!FPAHbR4@wHQB4eSw*kvOrEogq9?Fk^~Ao>b* zRJlVMvy;V^<_259Zb9VMK3fCK{nh~Mdaj@QGFvqAk60k>^Z<+kcrJy6>R$)UNs6#J znqh27A%(9vlyJu2zAf4I`*L0;Fdhgw@FEk?pU$?5a?uOJgzvxcHT-UBsu4RoLq+_0 z^=beAq)IcKX5JF+l2(ijB%9C^wZf%)xYsUjS!QWI&yoW@5Y={j7=v@tV0S<@jv*d#gi2~r9McQ=_ZwKrFtVi27pY|> z38|x!km$M+IS{eve+3uySyDl2WG2F-LRU{fOjF6Nu0ScEZxK;T<-v_6DzM=fq=ZNI zBv2&pRn&o{=vQAlD6wj}xy&?SwuzTzQ;!Q-!M9x6MR_BrV%M*gIz0E$%0$;xB8-LqdE%-Z&N-&O6ss`OS1HT5L@w76J&rn_{mV60*TxlFQ0*B7XrM4NswTFT z9T?5_!9MzbHcAP**VKZK^}Yp2X7jwP-i)buXzlB-;&cTvLk)QQu8J>(tqD1>4xZ6gc`n_CV)jUqRoEw4kf3v_psiyy{&DB!D%}fI7Xs z>@WBZ?NO;ku1Vo;Iwbh@BHFGm#g)0r?hBnL0A`U3?W-6!hD1sqkNlR&Kir%7??T17 zLZ@sPgayX9u6Nsuy%Rd6OV(Te1a5$ZJP}YXJ0ZCvUWAJ?*Ss33qh4ktW>8Rge%ag$ zNsd<b8n)2g5uzq4^w-qQz%~5e6McXaU}v|XJuIj* zFM22`X>2$KDyoFN_tUyz+ka1i&6wW4mwDQrgpSTs>_eul)rXw4_UCapj|T)Kq>hx8 zNQBTBFog0g(;NbxMrOEMx)7d-)+Q`3YVA`LM)8^It|myQHh ztaODI_%S>gn)5Hdc2F6`Er$N)-BTguZ#PLPFuu-L#$Gnz*=3qeLotLg-eX_P!MH7m z8f`hH8X(X%n+fV5bIm1Au0uXHTAW!qJlVDzG(Mn2`>M{)Peo(8lKR?69OWGOpaG-^9Yv(yi*+68LgzHJ;>T6wK_ty}?@NA!XRfk^|z$dyi4 z;i20G&kL1+#i4lVJTv+vY<{$qjxQD*rC>;XpgOoZ!8R_!M+%ob9W)&+LFN?3tB*MS48cE*2_L(~(9iUg9vk=;CSh zFFCa{xcY-Q&^(k2!k-WU7gwqkap3p^^>Pm(LMU4U4IKvm$KK?n?RvbbGQWA?U3JOh zi1jX1Fp4g1=KYJ)ZQ&aNQOPVCyiDd6xOa>y0d#6r<->--^|4ubTJ@R3G>7H`a;hss zwq>8RJq6>TmQ6Q$yG>-lNCp}1X}y45yeFb`4h+&Ft7#0g+a>|1{nT1J z!ewnw%7spNWt%i8v~q(^9<4v;l-bq-Xre1X-WC}Kfl0zL(#6i$nTKTHi^?+|UY5q_ zZfK7z%hyYZSCwrri+?YW&q-K!t#APw@|sqpY%rVf1!Q=xj6TJgmE&cZp@lHQlG`gDZd7 z)*!`6)_l?4RR9=+$RL9NMDmsCgn8Ik?c)F3z-CJP1UGTT--|qGs(?Y^3)?g`M&y7+ ztmw#hwR%PQdm}lgEqWK@$B16uetMXJG9@EjUe8oIy(iz*;l>N-s>`uv_mA1j8I9i- zdJ<_+uZp}mOrDSu{seYN#4-Gu_;#4(w+(D2exjCNU>=-ozWMH%JTMY*{RlJ6GG=-9 zFfESFV&F9hP`Z3A$a~SGIrFFx>HA)+uC8Br2<$B~KWfz!A081b-~1NYNaXu=8hBu< z%631}_e!VT=gsRL8ap+HzVa??lFZh#^vPzxKzU3*2DI*~F4j(pUoFlrGtrOoSg|r| z{$U$faV_-y!fVK0YC#RvRUO1d|D_>*8Up_?8o@5zDOoXVwmluTjW0lFS#5+ws6Q_} zD)#o9;3A!Tdm8>1*qfxr`UUQzqlp3O7IE}JEOa0sUUqtH;kk^QYR7*?@~GROGmC(F zpz_kCate`wo4R&=v6Ka_1)Rrg3ERMnD?hR}wA#Tzc2^WbU9a3nu6%C*s^PuToY9AI z;O8L<%Seb!`cT*{b}(%KTRBV-_#vNg1Q-ms1_M`b9C;ozf7+vOf%gBIAS018$QH{f z4rJur-S{1#y&6OLm`BK4hpJ%zcB0%e{r)!g*qh{ij7Z2Q9$7eUq+a_7jq<_XxH?f7 z--u@ztEoH{_rL=yP!CE<^xw6eM09RVG55kl!yr;0S}l&sscKkwIw`|$*0EIXXSb2L z{uFo@CG8Gj6=#Ebk(RizA^;&{Z5HW9F!eRyFQ%T)Pj95y0j>GG8oO;XpH|P7q>M&6 z;=HA7ooxZf<*OM|JnOX+`ISY3Olp*6cZJ6koFYP=k4dlLVn1}}X>dewr1O_YOrj={ z{b}U-nZHY6q}cd!4w%P86P)+U7N4j>1H1Q3gG zR;JDbI^J2hYUSKg00!J}vX+X1rc zny8o;+EG>m)l-sfS{VqTvwLfM<2|e=k8p#|{(|FiyPZpr4#S8jZJ+uyB*cz*eVe$h ziCF3NgPGpgdxEUt4|?j{*vG!&N0|678>1Qh*#p&hb*BGdQnmVA)!fY&roohqXirM{ zfEN7`2N^ijI}{zEa3jl~pstW*Eq^rJsYCEUnZUZ{tKB|17JOz%%{8Y%n_b*d6cczz zCcnlaeV69ierpI}E36~RuHw<#*-XRVkHdNH6o1Bl?TDvXPE+5d*Qy=w#2UUzt6gH4 z@oA#^F+aw@I#7^teKRLrnA!J~2-7u-1fCbc-9MpxkvC>=wSWX<@v+W*V0#m!Wsx8W zq0HE)ak^R4=VN12j`Q|8l|h*S2LAlk%Y4WsN|*S1lbM zgm+gj&yG{lh;9K{imjt=h~8H-{Ao*s-yt4~C?tfGh(WR~6eD_2Fa(EcYtVw^ z1UKz9-=$Pt zA-tle(fXLWNZqDyAH53q@G&`E(!gUdMLEVS@|fQrq(p=A1k;xrZGveOgL+=N8Wm|T zbGbnV%{jjSkvDlBY)L?D#H^H@Esh{l;eY^=yGVj<}g<;79ZJ1#(|wLrzUo*&xpMBnd8}oeK+;UNrMht^|GNhnK)$F}CcA zIy3-)Txreqj}vJ4)*?w=s3dU+0=SIySDNgEjPC4l5q$WX^Q+)-ak6YyZ5~j3-I{64 zj3vMFN7HF2>p<+HP0Xi})b)iLn!fa}DmFu`Fu`gcH+o*D@v_&WOMEJfEc0l7x@}~* zfYagv<-|mchAo(3-mZ17_y6}Ps;S$;if+v5g|-O$(r`maZxYb+Ib}{e z4xGtT5|Oq~^@ZpgLv&1d%2k=%4UFy{PIh`|e?qlNWpXd|BaV#&N5{qnm;oFE0|CLh zVbcES=U6x=1DFCZJaXeRtOJ+U@|qbnPAjY~&@6vuby@k511I9um*v{-frvK06fpG|rW{{ml%i#ZWi8Y{|GJ%F+=vlXA76beJYze^)VH;m9c zSakbqoajp^4dg)VTlfDj(?eZ52K~zVvDtdwIY|Ii8T@Rmrv1_GEb^fg1 z`Yv~mFT>h;N_{H?KbB)=#pu#a=FF7{pd=91L=$kg3W5*_7tqO$kDc|jIsHxO&1p** zJWW}?+x)@mSPAeS{`yC8<6^P1qox6~`I(|13xU}bKLZQtGtmz;@t>*fZDU3|?4 z$Glf@@zt>b$TtjECZ@i8$?Ib-cV~4-B;R213Mdp&U7wS~@kHd5^R9X8GWZ%aQRCR> z8_D8Pt7|uZa=|Vv9q6$)Hc#7jY%wE4ZW9!?EJEx-4$-F@6C_6tZx-hb2QS3cQ%dhhbuzC&^P zzON=VFQI4LUsnj8dEwP0q33L575i3(y&`hSP+7)XsRyw!95Xum*|Y5X$&m_k_DBi0 z98|*X%ZUxEPXhsN&g81_nJYER*|XFvxEmR#4xLk-xD5mzof@nV(LIc|DSqq^?^yT; z%cD8;g7=l0o3bF1CK0hu3Bpl3c^|>bfV*3NbBZ`9q1*mh#GOuhIPO$ z$y06sd&&OqC$-r79hzL%T?J@U#nb-PK8+Z#84XIpi{80XI^z3%pu9k9%4EAH_qvbw z*6`}pFm?3SN5)lUTiBxP!<&r*w|}437M&ki<6A0-Et>o>8LY#bYTy zpJZme{Ej;mT|2~x@cVhP-8iwfQ$9dK*9KS7IKbmbSA;j{?XqK5haJZ=&Rx$(Tq`s{`xE&`tqV8 z0kI(+vwl6B{v#oJcah@;k)OtDw<{BK!oBv@S@Qoi%nYoNY9Qr=C=v$k&~b{^yg;3m zMJ*3D*O@UJmNTf07-TW0ICbD7b@%lAn6K&Q5cK0Y_00qg|7&=X<8G|Dg)~%rV8IVi zXpHcGVxe`jcKLr3A$B5uSKGZ#tcrIFFY?ikeq~27UYuPsnzyzlHj!e zel~0t8w{KA2i>)wg3d)?U>QdAScBPEuQ{=L&l$gDQr>;hpE|r5DT0tW4<}wT0N;?- zII26T=xu(fRkUL>xs(V#EsO$7y7U83k04kQ<0Qx61-*JB5nu(~E}flQ=0TM$+_Gfr zm_^e1eeHb7S`-Qlk$rj13<_1lXF%WIO{MsTDcMZy*4J2b#~16#)1v4rPnLR@!s}Sk zeUG_8tx0v&9hGJx`Bnb3=)aEETV^?O9SAj|xe=3QIO*0FB_paAN25Eh@_Z6Ksg29`;=tNNkCSmI2*eTx-A4&0^QD5NycP}NaWlLg=l8u+&=j&(h zqcK}BPhPFgs>RXTnd&oF!_84^^e<9=BZe6ehk-HZ*^)HLGT)KESb zxMamX*(;Rs!Gvd@hnD3vE|$LpSG6ZEt(m9YN)Mwrvx!MGI7jocFzUNQk#g@0iKp`- z2OChCM>URz6$3r^vC9$qSFU(^CfQ~fJ8cr$)~HNv)nO%s*wNh$GBX)C2vZ^G(t7eP z)*kd;ggi3;+9)3ar&+@K0L7qDqh!}5?OSmr z2Be1$I~(nC>TL_df6`H=zFNU1#t^s~?rHd3_DvL5Fi7Vbk zy;yu}gHmE;`L^`O7?2l<&td;qHwbaI2Ar+o&~9Y3~nV{f~3_2SfYNr5a5ax%I60_C~g>Mg9@b;~xk`1+|y zEArEdy#T?b;=l#|_5=2Jp4%7_!Wth>6>9@qY=T04Ow52IFBY=KU*WrHd|~cJ`&}p8)Hk=;pBq5t0DNJ8-g~Jph?c+Z=AE=(LJ-q<@}-QW5Os((MB0 z1kE=zm~SGF@(rof${?ItNFp8EIqbXD-NK5GL;}_cA|q~T)lJ}Mdy4HLX3&L90+Y$J zDcn#mfv^A>Z(*;#(xGgSsMOfhPdO7UCSB7GQLi%+*FrEX=(mz_3k(j3uhiX4QKi=c zw3kFR|Y*bm*5pa<0oI1DC0a%HSOJkLoL%+NKtA= zA!{xTeV`BZa&TwI${_PCTU9qifA3cww(HYUD>NG105v0~GxRTD-pv)Ih`E>=1$=1y z&A9QnHcKUUk-Tev39^SaH(x3$@uqwxMZE7DiQUK2R>R3xk&Rf zGi(FwF^(d`yn7x|~6cZG0{w_n)0e z!N?UMa<*aYz!WF4D*iu*%iB*B2|$919Me2QB5jY!*@LA->t=Lp23?-5Ol7nf%o_MQ zkdNN2&TF1Q_ZQZ-dx2wU6ib-96mRqYQ_VpL(_>*teES;G$W**b4W(e`JQ?GxKRXVE z?Oay*EA^YtW}_C;++)dwAFDOphT)cm4rRnlcgnz*EuyAj1{mIsy6Yk(Dr+VaKsaE! zPJ@-*zr0!e66<>FHYQ`8&g?qbF`7lr^oPM}fnPRh=$Zr89S~kgVTD|${m2=dD1Q$NA!RJdTCta4^vWKpVlt8{7{SV&P@-I-0oeiW6olGKkt z9ZR+oM2@xnQn|raD^j)DGMOZ8&u>q?Wtge4`F!%_;Oe72tC_dHD~gZEO8E<7p!Z|R zr>ly_WAI~%jxR3axxuzq@ofeRae8u5w|;>@C{H7FmJ99@Kn+4(b+t6;wRI3CluHVO zKVf6b;A9iGX#G6f)^qu(Us%IW%45-2_^;aWD0imZFs0nr8!oxf;n9F-EzRm)BsU)< zN@FfCq;g1kq0(KpFmQAa4zH-t&(}f1tS+=MRMo(JrC{QZMzo$+ZQPvld&2+9w;NUs zlFMB7eU{f-r|`5HVa&n^u0Q>1u>R+1oqt-V8S9G?n1w9YApgd(tBwhcF$;Mz1cg^d zQ4gn%ec~)C2vE6$&MvmvjMY9!4qXJ2JxqmH;t_Zu$R2qr{dK*$TSg_h@rcv3zMrlE zw2o=hDs%5j+ft9S0gdb42q0kNcHHV7MtEjQ5B*qFHrxcVgHza6!h~1UQv#24E@923 zjv+r*VHT!iK;x@1u_X{T=gXQT`A4wzVg`hoQEoU)K76tjJ3njjh|!!lj!2GYn85da zPa~FoK*gN>z*`wZ{W!KV|G>9|j5{JwSxqb4x2FX>9Oe|``*QH+4?HA98N$z1gs*$38Y`s7dLMsAJ$XZ{P&kY%^4o(?rBC z62xkeocnUSRCWgat z&eaR%7^(r22ye1+yGKyvZ!UI=d&f?nacTd5e*29Az^p)z%%|n&qZ7Cr}Lxu?1@E? zEFUtQRmA`leiSmdt$GwzgyH}bH-~{LuUA!RM&2a&f16 zMucKzxZGJ1^$2E6mcf04)^ssJkk-A6S_Y7yc;O>-Sg`Ig> zsxG65Fhp7=(&bHRcHwWbkmO78fq1WP7CimpYkyMMV@VGGb>SX741D>FmfT*tj^8(x zas<$LG(XDTP;H(areu!B!u}cn85{pC^`@WL7;SK+vwYXo2%b?-Zd5hxt>JCL>$C}M z+ucLC0|r7Hq+Wr5Y!Eh(20fGvnp93xv#A$w=NPf&^L$t(xMud5b2ACN4B1Svc;3cj zMP7F|XH$Z&$eR`TBA#^A#R2#lEi$h%wpA3q&4k4#l1-mZR}h#ky64ZCpjvXTtO&Ie zkn8pq+k}5zpC?rH;pL7D#+ZS-^pubh${pRqQ^99=0;1CW#d+q1MO2R&m4L zCE|H&d1a`-OrzsUFrAU+3(B)Vc=e}lWTOELE4C{lYI_y#Sb%n=Sq5tU{ZbXK)+P;c zvo4ul@+qVN>R=3(cJvhgIq)mqbohJn?U!%i&)aGvDz4d0iOt{9TM zRhQb?sk~P@Hydxg((oD!yWn%WDY#__lDUBGB3?RPE^+9Wx_TRMb%*X|Cv`)!q1(|Z zU>Ttr852-P&p~S~U%LwFU|Be^Ua+Kgw(eV}{%!X&LxTbV5`z9;{m4G6ubQ|nzo_6b zclJ-9@|V37`}SA=bN+7U)*)zgceWq_WuJb1>|<5d7yN<6u7^%=gTY_PV^jN%1Xy8< zcRA)wBfTSkmyazPyB5!1Pz+y4V6El|Us`Nat*5?|0xv=@-M9OiA#OQ=ZbuHz;z21Dqq zS!eiZV$b2#Ms1B~sn7Gku{|;0`8+{Q#k8@8kSwR4esh~@bzwV}Y@JTeWpm;+i0d?y zwKSb^#=Kc|1TNcTb}%P%J9y~#FVt6m6h%x0%@)eRl$Jo3s|$5wyKw%eg)3e?R=g55 zV%_2eT5v3s<$#!5C`0LNto!bwUl5pRP;Cgb;DKsk_VIKwL)JJzt;?gMBCEP5V0*=l zTu)4-eQ6z{x`}82wcF_gDCL(*hEl^{-HF~N;v-?F0Sc<#TY2>TDo^mt?f0WY#WnDa zq|AP{%e}Ihm>)_J(t30&Nh`YON9Y6TpF0?tB1nI=yKd02hpOGxj)UC>PI`Fp449kGq>xf1w-*x$4i`{NjRXtWb5Yyh z#STBr{g?odGU)Iy85j4KcGaiVX&y^TA_vtGdpQT4K;rVBCIOO&hF)bBaAOuDy41{} z2RVgSUf&+=sf0pOfYX`YD@H*vN=W^A*J7F7QXC(peIs3bc-#oe1Us!qH9V06CB_kP zi2;_{3;HN}_BEaUk)=0jb68Tt#g@SXfSiwN2?ziF)HhC*68(D{yf93Uo-z(AI={0l zw>c^wO;=^M30a*|h1`RwEI zd;>W*!ki2h8X;_xfm>2QH8;wE$|+L)gd)O;arbPf#!-oD;dt1?glPT|)ehly!t!Al zOCNkGAN@mW;%+}? zM#5ppIq79`K*e2=_%?CineCySCT;ImM_r!j#{M%pL=>ipW9U9%l`TI(X=p?Lh0^bK z&-#`Hi;#gA9;pk;#abNVkheZU>X~eu>#riD-ixaMnBt!w>Qz#m(3IzK0`Q7JyFUkn zR4U)=RYfT~ophCCOWhPEEsI)VT9_3AU5YN4Z)5(W{rkjSGV%QDkc^P7Im6QGG_#y_xuk!E3`Y>c)D2V{faLJ% z!6t7xvUIMKYJO!$osBs&(=K4glq8R z(3^NR;%*|E1TKm4;$stG=w`HJIyhOn`Xxs&ipN%JFq7&vDHrSyhlsEF0D|Qjr0)fVbaEyptT*W58JNs- z_D7z3S{>nqqd*Z0NFu;Ns6fXXv%=P1wfACKUsY^JC)(uPl5d6xJx6t0(a_`St>fVg zuCLqz(H{-a?1qw&w&}{J;7a1&xxrSh5@5RPAr~-pSLHe^(+bGB&ax_|o6)QTw>I5<|7!#BC*X zbc?LZ9BaR~4VCwxI&swTbbE!T2IdpSlibHQ7g7S01hXcnqA})j2x>)15k;C8(fAza z;1fBwWJ3j;@I`ntFnE9a1o4vac%#@G+s}}rxqK!!oywT@a>9rHzw^i zhkAovYOTdn4!l?yo4o7(gFU%sJ~{k!uW5V10bi%& zr^>5ItSD!WuHCVX&A*Tt`ixpeGGmJzM@{B6h&hejYg8)66>A`S0S%?mjUZZWS_`Gr zIO0+Q-6OzNB31M8LIsHq-G2%uKhX%W0VENJ$1shkw6o#T4Wv(2;^TO~+{(1EJ|8%1 zHj4OK>~)O3-)j)U$Zia(@!!#4MvB|NMtL>#gOpd78VW?cvZnxU7uf6WL&Voo>-CS0 zl=c6AmyP?Zt3fY&4-z3#(TqwXl0kGkrGro`aOzuWGC10%aB!OPfg868!Z*9_{BB-1bj?VzM&{mg# zeTCKVa7Ycs7Vr*qoW3LToA92=$3Z_&$NW5O@&$B$O&EtqiVpfaQQ6lBSIl}snqO17 zB1!CM1rZMoxdx;E`> zv_n5{3On@KfCyj(+Aw}U!Zzq@4Oog*+i1g<<(YU26;SA#B^@(L6!8Tx!}^#9A!bFk zjA)54E3YG8pko6;J_s}R{xjVj79!`})it}hvZ#bh;<3ZoiVbOa3BZQLpTJJNXbzR3S>ev-AU}rjtmcz1Sjo8J2 zYSTWv%vjeCSfn}M^}M*iKXs|VyC0LVm&p&r#w+D!D`My{(}^QlUx~kb%}+s4Hg{9y zR8BbPkHflIMRr)*3~{mOzIRxvejis8+|43(Mru}9wLjA0=+Xrs0s$^7T!t9V*7J}l zJG(J=mw0pln)nSlB@&@If(==h{7rU~hUs=`HK&OLhv{s}nAO3n5YSTYzv;$1(NpF15i?k@G0( z3rR%No04zrIyhf2UhSruHEqY)_oEWr84SZ%;ojNYOb)7vX>P#?X-_Zb#`Rt&UjITk zj*eguuj=Z9km&X`cb+eYcAT_VY-G3kh2c@c&@&W1UJbZ_sWQL!ifKbtQ>S02*%^8h zaY~5*H;O*CJi1uS>)!$%9ti32Q7-0D1=oCAq{3FUMn4@>#_$Pl_W8t8c%Xf`m>O^l zwth)@N+eQ_O9Oa=90^pnE*s!y!+#pABEkp=vs}v>hh=I!ndHYD9V9uh>@zc@1l`9C zv5%D%VLB3V-aXB-cdKZumGk3nOEV_#)^Jmxk8oWOIjfv6zrxXFd~cndxLj!ED+?UC zbudzP!NEo{8ZZ0|mh>Er-?86I zJJM@{lNf=Y3y78lpv&?6f`T4^ApI6Obv)Zv!TdBw}1mbJiHEnHpK8rygtx3wnlkA?9*_BW!6*#L)NE3eXyTTTN@bq}J`%1vO zK1J{?*s1QRr2M=;83*WPY4iR0vdk_gzk#eJJVXQUcdDNnd3Sda!JIA_Ct{MR#_C$g zd*$rD}@b#b>a zWU!A!Ag`qK+s4Fx78sW(#L_C$rXDG1(w)Nc@`;COuwgdDvXKFSJ1pYJR$wf|Glrp` zDMVaz*xDGk4E|>jlBR!?(SBr?@yqhbbj)WJLMeVX`8H73#CXyZq`h0(2BT5-px#hx zZQ1_MROY8td=tzVlw-*F8K!DnaKB5-5ELs4_dv?iaKSki} zw5G4+PAiP@&-G)^RE(~$vj zKAp^_goUv2v@4ba0ZGC554t{CrUlb4F_q1Wr;u8Ao)A$%O(6%d+ftkC?UV6sDRQZy zSw3!Le8WEZ9I;BEO^+HhZZTJAP#)>}LoVzJSvGQPfX0=8=19{^z+jUhz&aJc1g?sN zz78R{snR2N@oP0f-d20@@f+(Vi8GH6&DX|EgE4877Dq7Dvn_7v#zcEXa%3n9mJ$d0 zgMiMSMA>Ug`+Tqz0?1rKi>u08& z97GzNe0L+Z6U5Mu^c#|rzjW~-A*p=}vVUXmr?1!>vp?HyiUVu*^y`Wzyb!-3v=FC) z)#KfAmZSv;cN&(-=XUd^TsQMhAgl4uGBK5wW)QM>zjF%;*fX)am;!_FxXz<68Xw8n z4?b(-yAg0AS1)#*wVeULG=<_*<_yDS?&8eI{NzEPJaRX6ahQlxF+RK?!5E9CX|&+L z2raX>Faxb%g(1}kPR3jb7T79yR$CRjrF2fmSo}P_U4+2bIjA|}g@K9?GX3^3I+>w@ zSm~y+%WJ~XHVZCGzltTuW>^wE&OK>%jSz{7rcD(-J@Wa8a0p=0l$Cqa3?W%;w5Tn$ z81(U1n#Mv#FmtWj8#qE?Q6(-H1UhkJpf7Q_+8Ue468j(J!}j45lDJtN1pki;5zccM zAZZJ|(a9~$W2z<#CeP_EV8TM;B4x~PwLl~UkWY{na8<_TnfP4GV0pvjV~*T>g+Cm) zf0+~_<4s1mzZ8WhGcl4>n}%$)NlzO2%-AglW%B5%9>{^Pu8BBa@CGj2wQ;nRgJt5ZwPT_9`#V@y8%8Q|po?CPL7Drg zNtrTWWWQKb(NMx5wQJl*Yb%!Tm{rh8*^ETQa_(a#!RRxrkZ}>@J}O9)MYV{nsYiZ_ z&F~V0n_Ph%*8y~cU6&eQ9P9pUqHv@(ur?^n=O=%UrlAuclP^huKRPgZPy3Su^01BOo`0D^g^rKZ4%q)2V?gnL^QmE1IlkE$k|N*3+`VvL^u`R7rjDR4HJExm2?*}7Z@0Uo3p9_5s+heqp_fL3jFyolPI;3MaYdVxs6;F zCdU9K#yXF!&|q9e+a&$~#(;THi96o8RFKG=S+AF_qT|^JN%f#$c6_fLf;5N5ctK?v zdvG{lsE`MN2d~7Ih1oUmo>=%AY?-EuC^PPUk>l+UKF|?@;FHY+uM2oYUWFRWRk)jw zd(zv$7YI&Z`&&;b={P0;BCeank9tX7HE^Z84T!U$S-2s{b0CTAWwb>$YBrpDZ8o?d0^8Po{sYtb+4cnq&R2P>r6Nm1}-Q8)2})nq_t<%Uo16e1~Gc}6-Yw5)8l3W$;|KH!iBJH zzF=h!=~8e!x!<@R-e4xc%np&diDgbd-1BjW zat#BGozP3ihfHkckDsEmw|By^j9wg1c0FAH=K~!TB|Ue?17(y34)qvFfMR!>1}7^Z z3#_}|j�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≦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

    ZNH=)n|39vWc#a@3OG*U^?L>{dTQJ_ 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 literal 0 HcmV?d00001 diff --git a/Test/DirectX Redist/Jun2010_d3dx9_43_x86.cab b/Test/DirectX Redist/Jun2010_d3dx9_43_x86.cab new file mode 100644 index 0000000000000000000000000000000000000000..8d8b9e7cb140d60734b255d55636112c3e8f8f72 GIT binary patch literal 768036 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

    yq#z`LUezls-%`4y7`s7PsFM8S3O)^pssLJ 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

    (H#(?!hOH2@O$ocFcECv-?`ZB*MbK#|`4kpH`d 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