using System;
using System.Collections.Generic;
using System.Text;
using Yanesdk.Ytl;
using Yanesdk.GUIParts;
using Yanesdk.Draw;
using Yanesdk.System;
using Kyojin.Model;
using Yanesdk.Sound;
using System.Diagnostics;
using Yamalib.Util;
using Yamalib;
using Kyojin;
using Yanesdk.Math;
using Yamalib.Draw.Effect;
using Yanesdk.Timer;
using System.Runtime.InteropServices;

namespace Kyojin.Scene.Demo
{
    /// <summary>
    /// スタートメニューのシーン
    /// </summary>
    class DemoScene : TaskBase, IDisposable
    {
        #region 定数値

        private const float ABEAT = 21.0f / 45.0f;	//!< 一拍の秒数
        private static float music_sync; 			//!< 60fps時、四分音符で何フレーム進行するか
        private static bool CAP_SCREEN = true;

        #endregion

        #region ファイル名定義

        //private static readonly string IMG__BACK__LIST_LST = "img\\back\\list.lst";
        //private static readonly string IMG__BACK__PLACE000_JPG = "img\\back\\place000.jpg";
        //private static readonly string IMG__BACK__PLACE001_JPG = "img\\back\\place001.jpg";
        //private static readonly string IMG__BACK__PLACE002_JPG = "img\\back\\place002.jpg";
        //private static readonly string IMG__BACK__PLACE003_JPG = "img\\back\\place003.jpg";
        //private static readonly string IMG__BACK__PLACE004_JPG = "img\\back\\place004.jpg";
        //private static readonly string IMG__BACK__PLACE005_JPG = "img\\back\\place005.jpg";
        //private static readonly string IMG__BACK__PLACE006_JPG = "img\\back\\place006.jpg";
        //private static readonly string IMG__BACK__PLACE007_JPG = "img\\back\\place007.jpg";
        //private static readonly string IMG__BACK__PLACE008_JPG = "img\\back\\place008.jpg";
        //private static readonly string IMG__BACK__PLACE009_JPG = "img\\back\\place009.jpg";
        //private static readonly string IMG__BACK__PLACE010_JPG = "img\\back\\place010.jpg";
        //private static readonly string IMG__BACK__PLACE011_JPG = "img\\back\\place011.jpg";
        //private static readonly string IMG__BACK__PLACE012_JPG = "img\\back\\place012.jpg";
        //private static readonly string IMG__BACK__PLACE013_JPG = "img\\back\\place013.jpg";
        //private static readonly string IMG__BACK__PLACE014_JPG = "img\\back\\place014.jpg";
        //private static readonly string IMG__BACK__PLACE015_JPG = "img\\back\\place015.jpg";
        //private static readonly string IMG__BACK__PLACE016_JPG = "img\\back\\place016.jpg";
        //private static readonly string IMG__BACK__PLACE017_JPG = "img\\back\\place017.jpg";
        //private static readonly string IMG__BACK__PLACE018_JPG = "img\\back\\place018.jpg";
        //private static readonly string IMG__BACK__PLACE019_JPG = "img\\back\\place019.jpg";
        //private static readonly string IMG__BACK__PLACE020_JPG = "img\\back\\place020.jpg";
        //private static readonly string IMG__BACK__PLACE021_JPG = "img\\back\\place021.jpg";
        //private static readonly string IMG__BACK__PLACE022_JPG = "img\\back\\place022.jpg";
        //private static readonly string IMG__BACK__PLACE023_JPG = "img\\back\\place023.jpg";
        //private static readonly string IMG__BACK__PLACE024_JPG = "img\\back\\place024.jpg";
        //private static readonly string IMG__BACK__PLACE025_JPG = "img\\back\\place025.jpg";
        //private static readonly string IMG__BACK__PLACE026_JPG = "img\\back\\place026.jpg";
        //private static readonly string IMG__BACK__PLACE027_JPG = "img\\back\\place027.jpg";
        //private static readonly string IMG__BACK__PLACE028_JPG = "img\\back\\place028.jpg";
        //private static readonly string IMG__BACK__PLACE029_JPG = "img\\back\\place029.jpg";
        //private static readonly string IMG__BACK__PLACE030_JPG = "img\\back\\place030.jpg";
        //private static readonly string IMG__BACK__PLACE031_JPG = "img\\back\\place031.jpg";
        //private static readonly string IMG__BACK__PLACE032_JPG = "img\\back\\place032.jpg";
        //private static readonly string IMG__BACK__PLACE033_JPG = "img\\back\\place033.jpg";
        //private static readonly string IMG__BACK__PLACE034_JPG = "img\\back\\place034.jpg";
        //private static readonly string IMG__BACK__PLACE035_JPG = "img\\back\\place035.jpg";
        //private static readonly string IMG__BACK__PLACE036_JPG = "img\\back\\place036.jpg";
        //private static readonly string IMG__BACK__PLACE037_JPG = "img\\back\\place037.jpg";
        //private static readonly string IMG__BACK__PLACE038_JPG = "img\\back\\place038.jpg";
        //private static readonly string IMG__BACK__PLACE039_JPG = "img\\back\\place039.jpg";
        //private static readonly string IMG__BACK__PLACE040_JPG = "img\\back\\place040.jpg";
        //private static readonly string IMG__BACK__PLACE041_JPG = "img\\back\\place041.jpg";
        //private static readonly string IMG__BACK__PLACE042_JPG = "img\\back\\place042.jpg";
        //private static readonly string IMG__BACK__PLACE043_JPG = "img\\back\\place043.jpg";
        //private static readonly string IMG__BACK__PLACE044_JPG = "img\\back\\place044.jpg";
        //private static readonly string IMG__BACK__PLACE045_JPG = "img\\back\\place045.jpg";
        //private static readonly string IMG__BACK__PLACE046_JPG = "img\\back\\place046.jpg";
        //private static readonly string IMG__BACK__PLACE047_JPG = "img\\back\\place047.jpg";
        //private static readonly string IMG__BACK__PLACE048_JPG = "img\\back\\place048.jpg";
        //private static readonly string IMG__BACK__PLACE049_JPG = "img\\back\\place049.jpg";
        //private static readonly string IMG__BACK__PLACE050_JPG = "img\\back\\place050.jpg";
        //private static readonly string IMG__BACK__PLACE051_JPG = "img\\back\\place051.jpg";
        //private static readonly string IMG__BACK__PLACE052_JPG = "img\\back\\place052.jpg";
        //private static readonly string IMG__BACK__PLACE053_JPG = "img\\back\\place053.jpg";
        //private static readonly string IMG__BACK__PLACE054_JPG = "img\\back\\place054.jpg";
        //private static readonly string IMG__BACK__PLACE055_JPG = "img\\back\\place055.jpg";
        //private static readonly string IMG__BACK__PLACE056_JPG = "img\\back\\place056.jpg";
        //private static readonly string IMG__BACK__PLACE057_JPG = "img\\back\\place057.jpg";
        //private static readonly string IMG__BACK__PLACE058_JPG = "img\\back\\place058.jpg";
        //private static readonly string IMG__BACK__PLACE059_JPG = "img\\back\\place059.jpg";
        //private static readonly string IMG__BACK__PLACE060_JPG = "img\\back\\place060.jpg";
        //private static readonly string IMG__BACK__PLACE061_JPG = "img\\back\\place061.jpg";
        //private static readonly string IMG__BACK__PLACE062_JPG = "img\\back\\place062.jpg";
        //private static readonly string IMG__BACK__PLACE063_JPG = "img\\back\\place063.jpg";
        //private static readonly string IMG__BACK__PLACE064_JPG = "img\\back\\place064.jpg";
        //private static readonly string IMG__BACK__PLACE065_JPG = "img\\back\\place065.jpg";
        //private static readonly string IMG__BACK__PLACE066_JPG = "img\\back\\place066.jpg";
        //private static readonly string IMG__BACK__PLACE067_JPG = "img\\back\\place067.jpg";
        //private static readonly string IMG__BACK__PLACE068_JPG = "img\\back\\place068.jpg";
        //private static readonly string IMG__BACK__PLACE069_JPG = "img\\back\\place069.jpg";
        //private static readonly string IMG__BACK__PLACE070_JPG = "img\\back\\place070.jpg";
        //private static readonly string IMG__BACK__PLACE071_JPG = "img\\back\\place071.jpg";
        //private static readonly string IMG__BACK__PLACE072_JPG = "img\\back\\place072.jpg";
        //private static readonly string IMG__BACK__PLACE073_JPG = "img\\back\\place073.jpg";
        //private static readonly string IMG__BACK__PLACE074_JPG = "img\\back\\place074.jpg";
        //private static readonly string IMG__BACK__PLACE075_JPG = "img\\back\\place075.jpg";
        //private static readonly string IMG__BACK__PLACE076_JPG = "img\\back\\place076.jpg";
        //private static readonly string IMG__BACK__PLACE077_JPG = "img\\back\\place077.jpg";
        //private static readonly string IMG__BACK__PLACE078_JPG = "img\\back\\place078.jpg";
        //private static readonly string IMG__BACK__PLACE079_JPG = "img\\back\\place079.jpg";
        //private static readonly string IMG__BACK__PLACE080_JPG = "img\\back\\place080.jpg";
        //private static readonly string IMG__BACK__PLACE081_JPG = "img\\back\\place081.jpg";
        //private static readonly string IMG__BACK__PLACE082_JPG = "img\\back\\place082.jpg";
        //private static readonly string IMG__BACK__PLACE083_JPG = "img\\back\\place083.jpg";
        //private static readonly string IMG__BACK__PLACE084_JPG = "img\\back\\place084.jpg";
        //private static readonly string IMG__BACK__PLACE085_JPG = "img\\back\\place085.jpg";
        //private static readonly string IMG__BACK__PLACE086_JPG = "img\\back\\place086.jpg";
        //private static readonly string IMG__BACK__PLACE087_JPG = "img\\back\\place087.jpg";
        //private static readonly string IMG__BACK__PLACE088_JPG = "img\\back\\place088.jpg";
        //private static readonly string IMG__BACK__PLACE089_JPG = "img\\back\\place089.jpg";
        //private static readonly string IMG__BACK__PLACE090_JPG = "img\\back\\place090.jpg";
        //private static readonly string IMG__BACK__PLACE091_JPG = "img\\back\\place091.jpg";
        //private static readonly string IMG__BACK__PLACE092_JPG = "img\\back\\place092.jpg";
        //private static readonly string IMG__BACK__PLACE093_JPG = "img\\back\\place093.jpg";
        //private static readonly string IMG__BACK__PLACE094_JPG = "img\\back\\place094.jpg";
        //private static readonly string IMG__BACK__PLACE095_JPG = "img\\back\\place095.jpg";
        //private static readonly string IMG__BACK__PLACE096_JPG = "img\\back\\place096.jpg";
        //private static readonly string IMG__BACK__PLACE097_JPG = "img\\back\\place097.jpg";
        //private static readonly string IMG__BACK__PLACE098_JPG = "img\\back\\place098.jpg";
        //private static readonly string IMG__BACK__PLACE099_JPG = "img\\back\\place099.jpg";
        //private static readonly string IMG__BACK__PLACE100_JPG = "img\\back\\place100.jpg";
        //private static readonly string IMG__BACK__PLACE101_JPG = "img\\back\\place101.jpg";
        //private static readonly string IMG__BACK__PLACE102_JPG = "img\\back\\place102.jpg";
        //private static readonly string IMG__BACK__PLACE103_JPG = "img\\back\\place103.jpg";
        //private static readonly string IMG__BACK__PLACE104_JPG = "img\\back\\place104.jpg";
        //private static readonly string IMG__BACK__PLACE105_JPG = "img\\back\\place105.jpg";
        //private static readonly string IMG__BACK__PLACE106_JPG = "img\\back\\place106.jpg";
        //private static readonly string IMG__BACK__PLACE107_JPG = "img\\back\\place107.jpg";
        //private static readonly string IMG__BACK__PLACE108_JPG = "img\\back\\place108.jpg";
        //private static readonly string IMG__BACK__PLACE109_JPG = "img\\back\\place109.jpg";
        //private static readonly string IMG__BACK__PLACE110_JPG = "img\\back\\place110.jpg";
        //private static readonly string IMG__BACK__PLACE111_JPG = "img\\back\\place111.jpg";
        //private static readonly string IMG__BACK__PLACE112_JPG = "img\\back\\place112.jpg";
        //private static readonly string IMG__BACK__PLACE113_JPG = "img\\back\\place113.jpg";
        //private static readonly string IMG__BACK__PLACE114_JPG = "img\\back\\place114.jpg";
        //private static readonly string IMG__BACK__PLACE115_JPG = "img\\back\\place115.jpg";
        //private static readonly string IMG__BACK__PLACE116_JPG = "img\\back\\place116.jpg";
        //private static readonly string IMG__BACK__PLACE117_JPG = "img\\back\\place117.jpg";
        //private static readonly string IMG__BACK__PLACE118_JPG = "img\\back\\place118.jpg";
        //private static readonly string IMG__BACK__PLACE119_JPG = "img\\back\\place119.jpg";
        //private static readonly string IMG__BACK__PLACE120_JPG = "img\\back\\place120.jpg";
        //private static readonly string IMG__BACK__PLACE121_JPG = "img\\back\\place121.jpg";
        //private static readonly string IMG__BACK__PLACE122_JPG = "img\\back\\place122.jpg";
        //private static readonly string IMG__BACK__PLACE123_JPG = "img\\back\\place123.jpg";
        //private static readonly string IMG__BACK__PLACE124_JPG = "img\\back\\place124.jpg";
        //private static readonly string IMG__BACK__PLACE125_JPG = "img\\back\\place125.jpg";
        //private static readonly string IMG__BACK__PLACE126_JPG = "img\\back\\place126.jpg";
        //private static readonly string IMG__BACK__PLACE127_JPG = "img\\back\\place127.jpg";
        //private static readonly string IMG__BACK__PLACE128_JPG = "img\\back\\place128.jpg";
        //private static readonly string IMG__BACK__PLACE129_JPG = "img\\back\\place129.jpg";
        //private static readonly string IMG__BACK__PLACE130_JPG = "img\\back\\place130.jpg";
        //private static readonly string IMG__BACK__PLACE131_JPG = "img\\back\\place131.jpg";
        //private static readonly string IMG__BACK__PLACE132_JPG = "img\\back\\place132.jpg";
        //private static readonly string IMG__BACK__PLACE133_JPG = "img\\back\\place133.jpg";
        //private static readonly string IMG__BACK__PLACE134_JPG = "img\\back\\place134.jpg";
        //private static readonly string IMG__BACK__PLACE135_JPG = "img\\back\\place135.jpg";
        //private static readonly string IMG__BACK__PLACE136_JPG = "img\\back\\place136.jpg";
        //private static readonly string IMG__BACK__PLACE137_JPG = "img\\back\\place137.jpg";
        //private static readonly string IMG__BACK__PLACE138_JPG = "img\\back\\place138.jpg";
        //private static readonly string IMG__BACK__PLACE139_JPG = "img\\back\\place139.jpg";
        //private static readonly string IMG__BACK__PLACE140_JPG = "img\\back\\place140.jpg";
        //private static readonly string IMG__BACK__PLACE141_JPG = "img\\back\\place141.jpg";
        //private static readonly string IMG__BACK__PLACE142_JPG = "img\\back\\place142.jpg";
        //private static readonly string IMG__BACK__PLACE143_JPG = "img\\back\\place143.jpg";
        //private static readonly string IMG__BACK__PLACE144_JPG = "img\\back\\place144.jpg";
        //private static readonly string IMG__BACK__PLACE145_JPG = "img\\back\\place145.jpg";
        //private static readonly string IMG__BACK__PLACE146_JPG = "img\\back\\place146.jpg";
        //private static readonly string IMG__BACK__PLACE147_JPG = "img\\back\\place147.jpg";
        //private static readonly string IMG__BACK__PLACE148_JPG = "img\\back\\place148.jpg";
        //private static readonly string IMG__BACK__PLACE149_JPG = "img\\back\\place149.jpg";
        //private static readonly string IMG__BACK__PLACE150_JPG = "img\\back\\place150.jpg";
        //private static readonly string IMG__BACK__PLACE151_JPG = "img\\back\\place151.jpg";
        //private static readonly string IMG__BACK__PLACE152_JPG = "img\\back\\place152.jpg";
        //private static readonly string IMG__BACK__PLACE153_JPG = "img\\back\\place153.jpg";
        //private static readonly string IMG__BACK__PLACE154_JPG = "img\\back\\place154.jpg";
        //private static readonly string IMG__BACK__PLACE155_JPG = "img\\back\\place155.jpg";
        //private static readonly string IMG__BACK2CH__LIST_LST = "img\\back2ch\\list.lst";
        //private static readonly string IMG__BACK2CH__PLACE000_JPG = "img\\back2ch\\place000.jpg";
        //private static readonly string IMG__BACK2CH__PLACE001_JPG = "img\\back2ch\\place001.jpg";
        //private static readonly string IMG__BACK2CH__PLACE002_JPG = "img\\back2ch\\place002.jpg";
        //private static readonly string IMG__BACK2CH__PLACE003_JPG = "img\\back2ch\\place003.jpg";
        //private static readonly string IMG__BACK2CH__PLACE004_JPG = "img\\back2ch\\place004.jpg";
        //private static readonly string IMG__BACK2CH__PLACE005_JPG = "img\\back2ch\\place005.jpg";
        //private static readonly string IMG__BACK2CH__PLACE006_JPG = "img\\back2ch\\place006.jpg";
        //private static readonly string IMG__BACK2CH__PLACE007_JPG = "img\\back2ch\\place007.jpg";
        //private static readonly string IMG__BACK2CH__PLACE008_JPG = "img\\back2ch\\place008.jpg";
        //private static readonly string IMG__BACK2CH__PLACE009_JPG = "img\\back2ch\\place009.jpg";
        //private static readonly string IMG__BACK2CH__PLACE010_JPG = "img\\back2ch\\place010.jpg";
        //private static readonly string IMG__BACK2CH__PLACE011_JPG = "img\\back2ch\\place011.jpg";
        //private static readonly string IMG__BACK2CH__PLACE012_JPG = "img\\back2ch\\place012.jpg";
        //private static readonly string IMG__BACK2CH__PLACE013_JPG = "img\\back2ch\\place013.jpg";
        //private static readonly string IMG__BACK2CH__PLACE014_JPG = "img\\back2ch\\place014.jpg";
        //private static readonly string IMG__BACK2CH__PLACE015_JPG = "img\\back2ch\\place015.jpg";
        //private static readonly string IMG__BACK2CH__PLACE016_JPG = "img\\back2ch\\place016.jpg";
        //private static readonly string IMG__BACK2CH__PLACE017_JPG = "img\\back2ch\\place017.jpg";
        //private static readonly string IMG__BACK2CH__PLACE018_JPG = "img\\back2ch\\place018.jpg";
        //private static readonly string IMG__BACK2CH__PLACE019_JPG = "img\\back2ch\\place019.jpg";
        //private static readonly string IMG__BACK2CH__PLACE020_JPG = "img\\back2ch\\place020.jpg";
        //private static readonly string IMG__BACK2CH__PLACE021_JPG = "img\\back2ch\\place021.jpg";
        //private static readonly string IMG__BACK2CH__PLACE022_JPG = "img\\back2ch\\place022.jpg";
        //private static readonly string IMG__BACK2CH__PLACE023_JPG = "img\\back2ch\\place023.jpg";
        //private static readonly string IMG__BACK2CH__PLACE024_JPG = "img\\back2ch\\place024.jpg";
        //private static readonly string IMG__BACK2CH__PLACE025_JPG = "img\\back2ch\\place025.jpg";
        //private static readonly string IMG__BACK2CH__PLACE026_JPG = "img\\back2ch\\place026.jpg";
        //private static readonly string IMG__BACK2CH__PLACE027_JPG = "img\\back2ch\\place027.jpg";
        //private static readonly string IMG__BACK2CH__PLACE028_JPG = "img\\back2ch\\place028.jpg";
        //private static readonly string IMG__BACK2CH__PLACE029_JPG = "img\\back2ch\\place029.jpg";
        //private static readonly string IMG__BACK2CH__PLACE030_JPG = "img\\back2ch\\place030.jpg";
        //private static readonly string IMG__BLACK_FILTER_PNG = "img\\scenario\\black_filter.png";
        //private static readonly string IMG__CARSOR_PNG = "img\\carsor.png";
        //private static readonly string IMG__CLICK_PNG = "img\\click.png";
        //private static readonly string IMG__DEMO__2_PNG = "img\\demo\\2.png";
        //private static readonly string IMG__DEMO__A_PNG = "img\\demo\\A.png";
        private static readonly string IMG__DEMO__ALICE_CODE_PNG = "img\\demo\\alice_code.png";
        private static readonly string IMG__DEMO__ALICE_EYE_PNG = "img\\demo\\alice_eye.png";
        private static readonly string IMG__DEMO__ALICE_SHADOW_PNG = "img\\demo\\alice_shadow.png";
        private static readonly string IMG__DEMO__ALICE_ST_PNG = "img\\demo\\alice_st.png";
        private static readonly string IMG__DEMO__ALICE_UP_PNG = "img\\demo\\alice_up.png";
        private static readonly string IMG__DEMO__ANZAI_FACE_PNG = "img\\demo\\anzai_face.png";
        private static readonly string IMG__DEMO__ANZAI_INTRO_PNG = "img\\demo\\anzai_intro.png";
        private static readonly string IMG__DEMO__ASA_F_PNG = "img\\demo\\asa_f.png";
        private static readonly string IMG__DEMO__BACK_JPG = "img\\demo\\back.jpg";
        //private static readonly string IMG__DEMO__BG__GAZOU1902_JPG = "img\\demo\\bg\\gazou1902.jpg";
        //private static readonly string IMG__DEMO__BG__GAZOU1903_JPG = "img\\demo\\bg\\gazou1903.jpg";
        //private static readonly string IMG__DEMO__BG__GAZOU1904_JPG = "img\\demo\\bg\\gazou1904.jpg";
        //private static readonly string IMG__DEMO__BG__GAZOU1905_JPG = "img\\demo\\bg\\gazou1905.jpg";
        //private static readonly string IMG__DEMO__BG__GAZOU1906_JPG = "img\\demo\\bg\\gazou1906.jpg";
        //private static readonly string IMG__DEMO__BG__GAZOU1907_JPG = "img\\demo\\bg\\gazou1907.jpg";
        //private static readonly string IMG__DEMO__BG__GAZOU1908_JPG = "img\\demo\\bg\\gazou1908.jpg";
        //private static readonly string IMG__DEMO__BG__GAZOU1909_JPG = "img\\demo\\bg\\gazou1909.jpg";
        //private static readonly string IMG__DEMO__BG__GAZOU1910_JPG = "img\\demo\\bg\\gazou1910.jpg";
        //private static readonly string IMG__DEMO__BG__GAZOU1911_JPG = "img\\demo\\bg\\gazou1911.jpg";
        //private static readonly string IMG__DEMO__BG__GAZOU1912_JPG = "img\\demo\\bg\\gazou1912.jpg";
        //private static readonly string IMG__DEMO__BG__GAZOU1913_JPG = "img\\demo\\bg\\gazou1913.jpg";
        //private static readonly string IMG__DEMO__BG__GAZOU1914_JPG = "img\\demo\\bg\\gazou1914.jpg";
        //private static readonly string IMG__DEMO__BG__GAZOU1915_JPG = "img\\demo\\bg\\gazou1915.jpg";
        //private static readonly string IMG__DEMO__BG__GAZOU1916_JPG = "img\\demo\\bg\\gazou1916.jpg";
        //private static readonly string IMG__DEMO__BG__GAZOU1917_JPG = "img\\demo\\bg\\gazou1917.jpg";
        //private static readonly string IMG__DEMO__BG__GAZOU1918_JPG = "img\\demo\\bg\\gazou1918.jpg";
        //private static readonly string IMG__DEMO__BG__GAZOU1919_JPG = "img\\demo\\bg\\gazou1919.jpg";
        //private static readonly string IMG__DEMO__BG__GAZOU1920_JPG = "img\\demo\\bg\\gazou1920.jpg";
        //private static readonly string IMG__DEMO__BG__GAZOU1921_JPG = "img\\demo\\bg\\gazou1921.jpg";
        //private static readonly string IMG__DEMO__BG__GAZOU1922_JPG = "img\\demo\\bg\\gazou1922.jpg";
        //private static readonly string IMG__DEMO__BG__GAZOU1923_JPG = "img\\demo\\bg\\gazou1923.jpg";
        //private static readonly string IMG__DEMO__BG__GAZOU1924_JPG = "img\\demo\\bg\\gazou1924.jpg";
        //private static readonly string IMG__DEMO__BG__GAZOU1925_JPG = "img\\demo\\bg\\gazou1925.jpg";
        //private static readonly string IMG__DEMO__BG__GAZOU1926_JPG = "img\\demo\\bg\\gazou1926.jpg";
        //private static readonly string IMG__DEMO__BG__GAZOU1927_JPG = "img\\demo\\bg\\gazou1927.jpg";
        //private static readonly string IMG__DEMO__BG__GAZOU1928_JPG = "img\\demo\\bg\\gazou1928.jpg";
        //private static readonly string IMG__DEMO__BG__LIST_LST = "img\\demo\\bg\\list.lst";
        private static readonly string IMG__DEMO__BG1_JPG = "img\\demo\\bg1.jpg";
        //private static readonly string IMG__DEMO__BG2__BG_LST = "img\\demo\\bg2\\bg.lst";
        //private static readonly string IMG__DEMO__BG2__GAZOU1902_JPG = "img\\demo\\bg2\\gazou1902.jpg";
        //private static readonly string IMG__DEMO__BG2__GAZOU1903_JPG = "img\\demo\\bg2\\gazou1903.jpg";
        //private static readonly string IMG__DEMO__BG2__GAZOU1904_JPG = "img\\demo\\bg2\\gazou1904.jpg";
        //private static readonly string IMG__DEMO__BG2__GAZOU1905_JPG = "img\\demo\\bg2\\gazou1905.jpg";
        //private static readonly string IMG__DEMO__BG2__GAZOU1906_JPG = "img\\demo\\bg2\\gazou1906.jpg";
        //private static readonly string IMG__DEMO__BG2__GAZOU1907_JPG = "img\\demo\\bg2\\gazou1907.jpg";
        //private static readonly string IMG__DEMO__BG2__GAZOU1908_JPG = "img\\demo\\bg2\\gazou1908.jpg";
        //private static readonly string IMG__DEMO__BG2__GAZOU1909_JPG = "img\\demo\\bg2\\gazou1909.jpg";
        //private static readonly string IMG__DEMO__BG2__GAZOU1910_JPG = "img\\demo\\bg2\\gazou1910.jpg";
        //private static readonly string IMG__DEMO__BG2__GAZOU1911_JPG = "img\\demo\\bg2\\gazou1911.jpg";
        //private static readonly string IMG__DEMO__BG2__GAZOU1912_JPG = "img\\demo\\bg2\\gazou1912.jpg";
        //private static readonly string IMG__DEMO__BG2__GAZOU1913_JPG = "img\\demo\\bg2\\gazou1913.jpg";
        //private static readonly string IMG__DEMO__BG2__GAZOU1914_JPG = "img\\demo\\bg2\\gazou1914.jpg";
        //private static readonly string IMG__DEMO__BG2__GAZOU1915_JPG = "img\\demo\\bg2\\gazou1915.jpg";
        //private static readonly string IMG__DEMO__BG2__GAZOU1916_JPG = "img\\demo\\bg2\\gazou1916.jpg";
        //private static readonly string IMG__DEMO__BG2__GAZOU1917_JPG = "img\\demo\\bg2\\gazou1917.jpg";
        //private static readonly string IMG__DEMO__BG2__GAZOU1918_JPG = "img\\demo\\bg2\\gazou1918.jpg";
        //private static readonly string IMG__DEMO__BG2__GAZOU1919_JPG = "img\\demo\\bg2\\gazou1919.jpg";
        //private static readonly string IMG__DEMO__BG2__GAZOU1920_JPG = "img\\demo\\bg2\\gazou1920.jpg";
        //private static readonly string IMG__DEMO__BG2__GAZOU1921_JPG = "img\\demo\\bg2\\gazou1921.jpg";
        //private static readonly string IMG__DEMO__BG2__GAZOU1922_JPG = "img\\demo\\bg2\\gazou1922.jpg";
        //private static readonly string IMG__DEMO__BG2__GAZOU1923_JPG = "img\\demo\\bg2\\gazou1923.jpg";
        //private static readonly string IMG__DEMO__BG2__GAZOU1924_JPG = "img\\demo\\bg2\\gazou1924.jpg";
        //private static readonly string IMG__DEMO__BG2__GAZOU1925_JPG = "img\\demo\\bg2\\gazou1925.jpg";
        //private static readonly string IMG__DEMO__BG2__GAZOU1926_JPG = "img\\demo\\bg2\\gazou1926.jpg";
        //private static readonly string IMG__DEMO__BG2__GAZOU1927_JPG = "img\\demo\\bg2\\gazou1927.jpg";
        //private static readonly string IMG__DEMO__BG2__GAZOU1928_JPG = "img\\demo\\bg2\\gazou1928.jpg";
        //private static readonly string IMG__DEMO__BG_NOISE_PNG = "img\\demo\\bg_noise.png";
        //private static readonly string IMG__DEMO__BLACK_FILTER_PNG = "img\\demo\\black_filter.png";
        //private static readonly string IMG__DEMO__C_PNG = "img\\demo\\C.png";
        //private static readonly string IMG__DEMO__CLOCK_PNG = "img\\demo\\clock.png";
        //private static readonly string IMG__DEMO__CLOCK_BASE_PNG = "img\\demo\\clock_base.png";
        //private static readonly string IMG__DEMO__CLOCK_ITEM__CLOCK_ITEM_PNG = "img\\demo\\clock_item\\clock_item.png";
        //private static readonly string IMG__DEMO__CLOCK_ITEM__CLOCK_ITEM01_PNG = "img\\demo\\clock_item\\clock_item01.png";
        //private static readonly string IMG__DEMO__CLOCK_ITEM__CLOCK_ITEM02_PNG = "img\\demo\\clock_item\\clock_item02.png";
        //private static readonly string IMG__DEMO__CLOCK_ITEM__CLOCK_ITEM03_PNG = "img\\demo\\clock_item\\clock_item03.png";
        //private static readonly string IMG__DEMO__CLOCK_ITEM__CLOCK_ITEM04_PNG = "img\\demo\\clock_item\\clock_item04.png";
        //private static readonly string IMG__DEMO__CLOCK_ITEM__CLOCK_ITEM05_PNG = "img\\demo\\clock_item\\clock_item05.png";
        //private static readonly string IMG__DEMO__CLOCK_ITEM__CLOCK_ITEM06_PNG = "img\\demo\\clock_item\\clock_item06.png";
        //private static readonly string IMG__DEMO__CLOCK_ITEM__CLOCK_ITEM07_PNG = "img\\demo\\clock_item\\clock_item07.png";
        //private static readonly string IMG__DEMO__CLOCK_ITEM__CLOCK_ITEM08_PNG = "img\\demo\\clock_item\\clock_item08.png";
        //private static readonly string IMG__DEMO__CLOCK_ITEM__CLOCK_ITEM09_PNG = "img\\demo\\clock_item\\clock_item09.png";
        //private static readonly string IMG__DEMO__CLOCK_ITEM__CLOCK_ITEM10_PNG = "img\\demo\\clock_item\\clock_item10.png";
        //private static readonly string IMG__DEMO__CLOCK_ITEM__CLOCK_ITEM11_PNG = "img\\demo\\clock_item\\clock_item11.png";
        //private static readonly string IMG__DEMO__CLOCK_ITEM__CLOCK_ITEM12_PNG = "img\\demo\\clock_item\\clock_item12.png";
        //private static readonly string IMG__DEMO__CLOCK_ITEM__CLOCK_ITEM13_PNG = "img\\demo\\clock_item\\clock_item13.png";
        //private static readonly string IMG__DEMO__CLOCK_ITEM__CLOCK_ITEM14_PNG = "img\\demo\\clock_item\\clock_item14.png";
        //private static readonly string IMG__DEMO__CLOCK_ITEM__CLOCK_ITEM15_PNG = "img\\demo\\clock_item\\clock_item15.png";
        //private static readonly string IMG__DEMO__CLOCK_ITEM__CLOCK_ITEM16_PNG = "img\\demo\\clock_item\\clock_item16.png";
        //private static readonly string IMG__DEMO__CLOCK_ITEM__CLOCK_ITEM17_PNG = "img\\demo\\clock_item\\clock_item17.png";
        //private static readonly string IMG__DEMO__CLOCK_ITEM__CLOCK_ITEM18_PNG = "img\\demo\\clock_item\\clock_item18.png";
        //private static readonly string IMG__DEMO__CLOCK_ITEM__CLOCK_ITEM19_PNG = "img\\demo\\clock_item\\clock_item19.png";
        //private static readonly string IMG__DEMO__CLOCK_ITEM__CLOCK_ITEM20_PNG = "img\\demo\\clock_item\\clock_item20.png";
        //private static readonly string IMG__DEMO__CLOCK_ITEM__CLOCK_ITEM21_PNG = "img\\demo\\clock_item\\clock_item21.png";
        //private static readonly string IMG__DEMO__CLOCK_ITEM__CLOCK_ITEM22_PNG = "img\\demo\\clock_item\\clock_item22.png";
        //private static readonly string IMG__DEMO__CLOCK_ITEM__CLOCK_ITEM23_PNG = "img\\demo\\clock_item\\clock_item23.png";
        //private static readonly string IMG__DEMO__CLOCK_ITEM__CLOCK_ITEM24_PNG = "img\\demo\\clock_item\\clock_item24.png";
        //private static readonly string IMG__DEMO__CLOCK_ITEM__CLOCK_ITEM25_PNG = "img\\demo\\clock_item\\clock_item25.png";
        //private static readonly string IMG__DEMO__CLOCK_ITEM__CLOCK_ITEM26_PNG = "img\\demo\\clock_item\\clock_item26.png";
        //private static readonly string IMG__DEMO__CLOCK_ITEM__CLOCK_ITEM27_PNG = "img\\demo\\clock_item\\clock_item27.png";
        //private static readonly string IMG__DEMO__CLOCK_ITEM__CLOCK_ITEM28_PNG = "img\\demo\\clock_item\\clock_item28.png";
        //private static readonly string IMG__DEMO__CLOCK_ITEM__CLOCK_ITEM29_PNG = "img\\demo\\clock_item\\clock_item29.png";
        //private static readonly string IMG__DEMO__CLOCK_ITEM__CLOCK_ITEM30_PNG = "img\\demo\\clock_item\\clock_item30.png";
        //private static readonly string IMG__DEMO__CLOCK_ITEM__CLOCK_ITEM31_PNG = "img\\demo\\clock_item\\clock_item31.png";
        //private static readonly string IMG__DEMO__CLOCK_ITEM__CLOCK_ITEM32_PNG = "img\\demo\\clock_item\\clock_item32.png";
        //private static readonly string IMG__DEMO__CLOCK_ITEM__CLOCK_ITEM33_PNG = "img\\demo\\clock_item\\clock_item33.png";
        //private static readonly string IMG__DEMO__CLOCK_ITEM__CLOCK_ITEM34_PNG = "img\\demo\\clock_item\\clock_item34.png";
        //private static readonly string IMG__DEMO__CLOCK_ITEM__CLOCK_ITEM35_PNG = "img\\demo\\clock_item\\clock_item35.png";
        //private static readonly string IMG__DEMO__CLOCK_ITEM__CLOCK_ITEM36_PNG = "img\\demo\\clock_item\\clock_item36.png";
        //private static readonly string IMG__DEMO__CLOCK_ITEM__CLOCK_ITEM37_PNG = "img\\demo\\clock_item\\clock_item37.png";
        //private static readonly string IMG__DEMO__CLOCK_ITEM__CLOCK_ITEM38_PNG = "img\\demo\\clock_item\\clock_item38.png";
        //private static readonly string IMG__DEMO__CLOCK_ITEM__CLOCK_ITEM39_PNG = "img\\demo\\clock_item\\clock_item39.png";
        //private static readonly string IMG__DEMO__CLOCK_ITEM__CLOCK_ITEM40_PNG = "img\\demo\\clock_item\\clock_item40.png";
        //private static readonly string IMG__DEMO__CLOCK_ITEM__CLOCK_ITEM41_PNG = "img\\demo\\clock_item\\clock_item41.png";
        //private static readonly string IMG__DEMO__CLOCK_ITEM__CLOCK_ITEM42_PNG = "img\\demo\\clock_item\\clock_item42.png";
        //private static readonly string IMG__DEMO__CLOCK_ITEM__CLOCK_ITEM43_PNG = "img\\demo\\clock_item\\clock_item43.png";
        //private static readonly string IMG__DEMO__CLOCK_ITEM__CLOCK_ITEM44_PNG = "img\\demo\\clock_item\\clock_item44.png";
        //private static readonly string IMG__DEMO__CLOCK_ITEM__CLOCK_ITEM45_PNG = "img\\demo\\clock_item\\clock_item45.png";
        //private static readonly string IMG__DEMO__CLOCK_ITEM__CLOCK_ITEM46_PNG = "img\\demo\\clock_item\\clock_item46.png";
        //private static readonly string IMG__DEMO__CLOCK_ITEM__CLOCK_ITEM47_PNG = "img\\demo\\clock_item\\clock_item47.png";
        //private static readonly string IMG__DEMO__CLOCK_ITEM__CLOCK_ITEM48_PNG = "img\\demo\\clock_item\\clock_item48.png";
        //private static readonly string IMG__DEMO__CLOCK_ITEM__CLOCK_ITEM49_PNG = "img\\demo\\clock_item\\clock_item49.png";
        //private static readonly string IMG__DEMO__CLOCK_ITEM__CLOCK_ITEM50_PNG = "img\\demo\\clock_item\\clock_item50.png";
        //private static readonly string IMG__DEMO__CLOCK_ITEM__CLOCK_ITEM51_PNG = "img\\demo\\clock_item\\clock_item51.png";
        //private static readonly string IMG__DEMO__CLOCK_ITEM__CLOCK_ITEM52_PNG = "img\\demo\\clock_item\\clock_item52.png";
        //private static readonly string IMG__DEMO__CLOCK_ITEM__CLOCK_ITEM53_PNG = "img\\demo\\clock_item\\clock_item53.png";
        //private static readonly string IMG__DEMO__CLOCK_ITEM__CLOCK_ITEM54_PNG = "img\\demo\\clock_item\\clock_item54.png";
        //private static readonly string IMG__DEMO__CLOCK_ITEM__CLOCK_ITEM55_PNG = "img\\demo\\clock_item\\clock_item55.png";
        //private static readonly string IMG__DEMO__CLOCK_ITEM__CLOCK_ITEM56_PNG = "img\\demo\\clock_item\\clock_item56.png";
        //private static readonly string IMG__DEMO__CLOCK_ITEM__CLOCK_ITEM57_PNG = "img\\demo\\clock_item\\clock_item57.png";
        //private static readonly string IMG__DEMO__CLOCK_ITEM__ITEM1_LST = "img\\demo\\clock_item\\item1.lst";
        private static readonly string IMG__DEMO__CODE1_PNG = "img\\demo\\code1.png";
        private static readonly string IMG__DEMO__CODE2_PNG = "img\\demo\\code2.png";
        private static readonly string IMG__DEMO__CODE3_PNG = "img\\demo\\code3.png";
        private static readonly string IMG__DEMO__CODE4_PNG = "img\\demo\\code4.png";
        private static readonly string IMG__DEMO__CODE5_PNG = "img\\demo\\code5.png";
        private static readonly string IMG__DEMO__CODE_A_PNG = "img\\demo\\code_a.png";
        private static readonly string IMG__DEMO__CODE_B_PNG = "img\\demo\\code_b.png";
        private static readonly string IMG__DEMO__CODE_C_PNG = "img\\demo\\code_c.png";
        private static readonly string IMG__DEMO__CODE_D_PNG = "img\\demo\\code_d.png";
        private static readonly string IMG__DEMO__CODE_E_PNG = "img\\demo\\code_e.png";
        private static readonly string IMG__DEMO__ENDSTAFF_PNG = "img\\demo\\endstaff.png";
        private static readonly string IMG__DEMO__FADER_PNG = "img\\demo\\fader.png";
        private static readonly string IMG__DEMO__FLERE_PNG = "img\\demo\\flere.png";
        //private static readonly string IMG__DEMO__H_PNG = "img\\demo\\H.png";
        private static readonly string IMG__DEMO__HALF_PNG = "img\\demo\\half.png";
        //private static readonly string IMG__DEMO__HAND_PNG = "img\\demo\\hand.png";
        private static readonly string IMG__DEMO__HORIZON_PNG = "img\\demo\\horizon.png";
        //private static readonly string IMG__DEMO__I_PNG = "img\\demo\\I.png";
        //private static readonly string IMG__DEMO__J_PNG = "img\\demo\\J.png";
        //private static readonly string IMG__DEMO__K_PNG = "img\\demo\\K.png";
        private static readonly string IMG__DEMO__K2C_EX_PNG = "img\\demo\\k2c_ex.png";
        private static readonly string IMG__DEMO__KYO_PNG = "img\\demo\\kyo.png";
        //private static readonly string IMG__DEMO__KYOJINTACHI_LST = "img\\demo\\kyojintachi.lst";
        private static readonly string IMG__DEMO__KYOJINTACHI_PNG = "img\\demo\\kyojintachi.png";
        //private static readonly string IMG__DEMO__LHAND_PNG = "img\\demo\\lhand.png";
        private static readonly string IMG__DEMO__LIGHT_PNG = "img\\demo\\light.png";
        //private static readonly string IMG__DEMO__LOGO__2_PNG = "img\\demo\\logo\\2.png";
        //private static readonly string IMG__DEMO__LOGO__A_PNG = "img\\demo\\logo\\a.png";
        //private static readonly string IMG__DEMO__LOGO__C_PNG = "img\\demo\\logo\\c.png";
        //private static readonly string IMG__DEMO__LOGO__E_PNG = "img\\demo\\logo\\e.png";
        //private static readonly string IMG__DEMO__LOGO__I_PNG = "img\\demo\\logo\\i.png";
        //private static readonly string IMG__DEMO__LOGO__K_PNG = "img\\demo\\logo\\k.png";
        //private static readonly string IMG__DEMO__LOGO__K2C_LST = "img\\demo\\logo\\k2c.lst";
        //private static readonly string IMG__DEMO__LOGO__M_PNG = "img\\demo\\logo\\m.png";
        //private static readonly string IMG__DEMO__LOGO__N_PNG = "img\\demo\\logo\\n.png";
        //private static readonly string IMG__DEMO__LOGO__O_PNG = "img\\demo\\logo\\o.png";
        //private static readonly string IMG__DEMO__LOGO__P_PNG = "img\\demo\\logo\\p.png";
        //private static readonly string IMG__DEMO__LOGO__R_PNG = "img\\demo\\logo\\r.png";
        //private static readonly string IMG__DEMO__LOGO__T_PNG = "img\\demo\\logo\\t.png";
        //private static readonly string IMG__DEMO__LOGO__X_PNG = "img\\demo\\logX\\x.png";
        private static readonly string IMG__DEMO__LOGO1_PNG = "img\\demo\\logo1.png";
        private static readonly string IMG__DEMO__MIDO_SHADOW_PNG = "img\\demo\\mido_shadow.png";
        private static readonly string IMG__DEMO__MIDO_ST_PNG = "img\\demo\\mido_st.png";
        //private static readonly string IMG__DEMO__N_PNG = "img\\demo\\N.png";
        private static readonly string IMG__DEMO__NANNO_PNG = "img\\demo\\nanno.png";
        private static readonly string IMG__DEMO__NOISE_PNG = "img\\demo\\noise.png";
        //private static readonly string IMG__DEMO__O_PNG = "img\\demo\\O.png";
        private static readonly string IMG__DEMO__POLE_PNG = "img\\demo\\pole.png";
        private static readonly string IMG__DEMO__RING_PNG = "img\\demo\\ring.png";
        private static readonly string IMG__DEMO__ROLE_TEXT_PNG = "img\\demo\\role_text.png";
        private static readonly string IMG__DEMO__RUBI_FACE_PNG = "img\\demo\\rubi_face.png";
        private static readonly string IMG__DEMO__RUBI_INTRO_PNG = "img\\demo\\rubi_intro.png";
        private static readonly string IMG__DEMO__SCENE01_JPG = "img\\demo\\scene01.jpg";
        private static readonly string IMG__DEMO__SCENE01Z_JPG = "img\\demo\\scene01Z.jpg";
        //private static readonly string IMG__DEMO__T_PNG = "img\\demo\\T.png";
        private static readonly string IMG__DEMO__TATUWO_FACE_PNG = "img\\demo\\tatuwo_face.png";
        private static readonly string IMG__DEMO__TATUWO_INTRO_PNG = "img\\demo\\tatuwo_intro.png";
        private static readonly string IMG__DEMO__TEXT1_PNG = "img\\demo\\text1.png";
        private static readonly string IMG__DEMO__TEXT2_PNG = "img\\demo\\text2.png";
        private static readonly string IMG__DEMO__TEXT3_PNG = "img\\demo\\text3.png";
        private static readonly string IMG__DEMO__TEXT4_PNG = "img\\demo\\text4.png";
        private static readonly string IMG__DEMO__TEXT5_PNG = "img\\demo\\text5.png";
        private static readonly string IMG__DEMO__TEXT6_PNG = "img\\demo\\text6.png";
        private static readonly string IMG__DEMO__TEXT7_PNG = "img\\demo\\text7.png";
        private static readonly string IMG__DEMO__TITLE_PNG = "img\\demo\\title.png";
        private static readonly string IMG__DEMO__TITLE_MEMO_PNG = "img\\demo\\title_memo.png";
        private static readonly string IMG__DEMO__TOMI_FACE_PNG = "img\\demo\\tomi_face.png";
        private static readonly string IMG__DEMO__TOMI_INTRO_PNG = "img\\demo\\tomi_intro.png";
        private static readonly string IMG__DEMO__TOMI_SHADE_PNG = "img\\demo\\tomi_shade.png";
        private static readonly string IMG__DEMO__TOMI_ST_PNG = "img\\demo\\tomi_st.png";
        private static readonly string IMG__DEMO__WA_PNG = "img\\demo\\wa.png";
        //private static readonly string IMG__DEMO__Y_PNG = "img\\demo\\Y.png";
        private static readonly string IMG__DEMO__YUIRI_SHADOW_PNG = "img\\demo\\yuiri_shadow.png";
        //private static readonly string IMG__E_PNG = "img\\e.png";
        //private static readonly string IMG__ENDING__ALICE_PNG = "img\\ending\\alice.png";
        //private static readonly string IMG__ENDING__AMUA_PNG = "img\\ending\\amua.png";
        //private static readonly string IMG__ENDING__ANZAI_PNG = "img\\ending\\anzai.png";
        //private static readonly string IMG__ENDING__BG_JPG = "img\\ending\\bg.jpg";
        //private static readonly string IMG__ENDING__COMMAND_PNG = "img\\ending\\command.png";
        //private static readonly string IMG__ENDING__CREATE_PNG = "img\\endingCreatete.png";
        //private static readonly string IMG__ENDING__G9FRIED_PNG = "img\\ending\\g9fried.png";
        //private static readonly string IMG__ENDING__GRA_PNG = "img\\ending\\gra.png";
        //private static readonly string IMG__ENDING__HARUHI_PNG = "img\\ending\\haruhi.png";
        //private static readonly string IMG__ENDING__HAZUKI_PNG = "img\\ending\\hazuki.png";
        //private static readonly string IMG__ENDING__INTERFACE_PNG = "img\\ending\\interface.png";
        //private static readonly string IMG__ENDING__KOWASUHITO_PNG = "img\\ending\\kowasuhito.png";
        //private static readonly string IMG__ENDING__MASK1_PNG = "img\\ending\\mask1.png";
        //private static readonly string IMG__ENDING__NAGATUKI_PNG = "img\\ending\\nagatuki.png";
        //private static readonly string IMG__ENDING__NICHINO_PNG = "img\\ending\\nichino.png";
        //private static readonly string IMG__ENDING__PLAN_PNG = "img\\ending\\plan.png";
        //private static readonly string IMG__ENDING__PROGRAM_PNG = "img\\ending\\program.png";
        //private static readonly string IMG__ENDING__ROLE_PNG = "img\\ending\\role.png";
        //private static readonly string IMG__ENDING__SATUEI_PNG = "img\\ending\\satuei.png";
        //private static readonly string IMG__ENDING__SCENARIO_PNG = "img\\ending\\scenario.png";
        //private static readonly string IMG__ENDING__SCENARIO_SUB_PNG = "img\\ending\\scenario_sub.png";
        //private static readonly string IMG__ENDING__SOUND_PNG = "img\\ending\\sound.png";
        //private static readonly string IMG__ENDING__SPRITE_SDF = "img\\ending\\sprite.sdf";
        //private static readonly string IMG__ENDING__SUB_SCENARIO_PNG = "img\\ending\\sub_scenario.png";
        //private static readonly string IMG__ENDING__SUOU_PNG = "img\\ending\\suou.png";
        //private static readonly string IMG__ENDING__TATUWO_PNG = "img\\ending\\tatuwo.png";
        //private static readonly string IMG__ENDING__VOICE_PNG = "img\\ending\\voice.png";
        //private static readonly string IMG__ENDING__YUHI_PNG = "img\\ending\\yuhi.png";
        //private static readonly string IMG__FLERE_PNG = "img\\flere.png";
        //private static readonly string IMG__HEX_PNG = "img\\hex.png";
        //private static readonly string IMG__HEX_FLAME_PNG = "img\\hex_flame.png";
        //private static readonly string IMG__HEX_FLAME2_PNG = "img\\hex_flame2.png";
        //private static readonly string IMG__HEX_FLAME3_PNG = "img\\hex_flame3.png";
        //private static readonly string IMG__HORIZON_PNG = "img\\horizon.png";
        //private static readonly string IMG__LOGO1_PNG = "img\\logo1.png";
        //private static readonly string IMG__LOGO_2_BMP = "img\\logo_2.bmp";
        //private static readonly string IMG__LOGO_2_PNG = "img\\logo_2.png";
        //private static readonly string IMG__LOGO_BACK_BMP = "img\\logo_back.bmp";
        //private static readonly string IMG__LOGO_BACK_PNG = "img\\logo_back.png";
        //private static readonly string IMG__LOGO_C_BMP = "img\\logo_c.bmp";
        //private static readonly string IMG__LOGO_C_PNG = "img\\logo_c.png";
        //private static readonly string IMG__LOGO_K_BMP = "img\\logo_k.bmp";
        //private static readonly string IMG__LOGO_K_PNG = "img\\logo_k.png";
        //private static readonly string IMG__NOISE_PNG = "img\\noise.png";
        //private static readonly string IMG__OPTION__BG_JPG = "img\\option\\bg.jpg";
        //private static readonly string IMG__OPTION__BT_L_OFF_BMP = "img\\option\\bt_l_off.bmp";
        //private static readonly string IMG__OPTION__BT_L_ON_BMP = "img\\option\\bt_l_on.bmp";
        //private static readonly string IMG__OPTION__BT_R_OFF_BMP = "img\\option\\bt_r_off.bmp";
        //private static readonly string IMG__OPTION__BT_R_ON_BMP = "img\\option\\bt_r_on.bmp";
        //private static readonly string IMG__OPTION__OP_BACK_OFF_JPG = "img\\option\\op_back_off.jpg";
        //private static readonly string IMG__OPTION__OP_BACK_ON_JPG = "img\\option\\op_back_on.jpg";
        //private static readonly string IMG__OPTION__OP_BT_LST = "img\\option\\op_bt.lst";
        //private static readonly string IMG__OPTION__OP_EXIT_OFF_JPG = "img\\option\\op_exit_off.jpg";
        //private static readonly string IMG__OPTION__OP_EXIT_ON_JPG = "img\\option\\op_exit_on.jpg";
        //private static readonly string IMG__OPTION__OP_FAST_OFF_JPG = "img\\option\\op_fast_off.jpg";
        //private static readonly string IMG__OPTION__OP_FAST_ON_JPG = "img\\option\\op_fast_on.jpg";
        //private static readonly string IMG__OPTION__OP_FULL_OFF_JPG = "img\\option\\op_full_off.jpg";
        //private static readonly string IMG__OPTION__OP_FULL_ON_JPG = "img\\option\\op_full_on.jpg";
        //private static readonly string IMG__OPTION__OP_LINE_OFF_JPG = "img\\option\\op_line_off.jpg";
        //private static readonly string IMG__OPTION__OP_LINE_ON_JPG = "img\\option\\op_line_on.jpg";
        //private static readonly string IMG__OPTION__OP_NORMAL_OFF_JPG = "img\\option\\op_normal_off.jpg";
        //private static readonly string IMG__OPTION__OP_NORMAL_ON_JPG = "img\\option\\op_normal_on.jpg";
        //private static readonly string IMG__OPTION__OP_OFF_OFF_JPG = "img\\option\\op_off_off.jpg";
        //private static readonly string IMG__OPTION__OP_OFF_ON_JPG = "img\\option\\op_off_on.jpg";
        //private static readonly string IMG__OPTION__OP_ON_OFF_JPG = "img\\option\\op_on_off.jpg";
        //private static readonly string IMG__OPTION__OP_ON_ON_JPG = "img\\option\\op_on_on.jpg";
        //private static readonly string IMG__OPTION__OP_PAGE_OFF_JPG = "img\\option\\op_page_off.jpg";
        //private static readonly string IMG__OPTION__OP_PAGE_ON_JPG = "img\\option\\op_page_on.jpg";
        //private static readonly string IMG__OPTION__OP_TITLE_OFF_JPG = "img\\option\\op_title_off.jpg";
        //private static readonly string IMG__OPTION__OP_TITLE_ON_JPG = "img\\option\\op_title_on.jpg";
        //private static readonly string IMG__OPTION__OP_WINDOW_OFF_JPG = "img\\option\\op_window_off.jpg";
        //private static readonly string IMG__OPTION__OP_WINDOW_ON_JPG = "img\\option\\op_window_on.jpg";
        //private static readonly string IMG__OPTION__VOL_BAR_PNG = "img\\option\\vol_bar.png";
        //private static readonly string IMG__OPTION__VOL_BAR_DISABLE_PNG = "img\\option\\vol_bar_disable.png";
        //private static readonly string IMG__OPTION__VOL_BAR_RED_PNG = "img\\option\\vol_bar_red.png";
        //private static readonly string IMG__OP_BT_OFF_PNG = "img\\op_bt_off.png";
        //private static readonly string IMG__OP_BT_ON_PNG = "img\\op_bt_on.png";
        //private static readonly string IMG__POLE_PNG = "img\\pole.png";
        //private static readonly string IMG__RAIN_PNG = "img\\common\\rain.png";
        //private static readonly string IMG__RING_PNG = "img\\ring.png";
        //private static readonly string IMG__SIL__ANZAI__ANZA00_PNG = "img\\sil\\anzai\\anza00.png";
        //private static readonly string IMG__SIL__ANZAI__ANZA01_PNG = "img\\sil\\anzai\\anza01.png";
        //private static readonly string IMG__SIL__ANZAI__ANZA02_PNG = "img\\sil\\anzai\\anza02.png";
        //private static readonly string IMG__SIL__ANZAI__ANZA03_PNG = "img\\sil\\anzai\\anza03.png";
        //private static readonly string IMG__SIL__ANZAI__ANZA04_PNG = "img\\sil\\anzai\\anza04.png";
        //private static readonly string IMG__SIL__ARIS__ALICE0101_PNG = "img\\sil\\aris\\alice0101.png";
        //private static readonly string IMG__SIL__ARIS__ALICE0102_PNG = "img\\sil\\aris\\alice0102.png";
        //private static readonly string IMG__SIL__ARIS__ALICE0103_PNG = "img\\sil\\aris\\alice0103.png";
        //private static readonly string IMG__SIL__ARIS__ALICE0104_PNG = "img\\sil\\aris\\alice0104.png";
        //private static readonly string IMG__SIL__ARIS__ARIS00_SDF = "img\\sil\\aris\\aris00.sdf";
        //private static readonly string IMG__SIL__ARIS__ARIS00_PNG = "img\\sil\\aris\\aris00.png";
        //private static readonly string IMG__SIL__ARIS__ARIS01_SDF = "img\\sil\\aris\\aris01.sdf";
        //private static readonly string IMG__SIL__ARIS__ARIS01_PNG = "img\\sil\\aris\\aris01.png";
        //private static readonly string IMG__SIL__ARIS__ARIS02_SDF = "img\\sil\\aris\\aris02.sdf";
        //private static readonly string IMG__SIL__ARIS__ARIS02_PNG = "img\\sil\\aris\\aris02.png";
        //private static readonly string IMG__SIL__ARIS__ARIS03_SDF = "img\\sil\\aris\\aris03.sdf";
        //private static readonly string IMG__SIL__ARIS__ARIS03_PNG = "img\\sil\\aris\\aris03.png";
        //private static readonly string IMG__SIL__ARIS__ARIS04_SDF = "img\\sil\\aris\\aris04.sdf";
        //private static readonly string IMG__SIL__ARIS__ARIS04_PNG = "img\\sil\\aris\\aris04.png";
        //private static readonly string IMG__SIL__ARIS__ARIS05_SDF = "img\\sil\\aris\\aris05.sdf";
        //private static readonly string IMG__SIL__ARIS__ARIS05_PNG = "img\\sil\\aris\\aris05.png";
        //private static readonly string IMG__SIL__CHARA_MAP_LST = "img\\sil\\chara_map.lst";
        //private static readonly string IMG__SIL__JITY__JITY00_SDF = "img\\sil\\jity\\jity00.sdf";
        //private static readonly string IMG__SIL__JITY__JITY00_PNG = "img\\sil\\jity\\jity00.png";
        //private static readonly string IMG__SIL__JITY__JITY01_SDF = "img\\sil\\jity\\jity01.sdf";
        //private static readonly string IMG__SIL__JITY__JITY01_PNG = "img\\sil\\jity\\jity01.png";
        //private static readonly string IMG__SIL__JITY__JITY02_SDF = "img\\sil\\jity\\jity02.sdf";
        //private static readonly string IMG__SIL__JITY__JITY03_PNG = "img\\sil\\jity\\jity03.png";
        //private static readonly string IMG__SIL__LIST_LST = "img\\sil\\list.lst";
        //private static readonly string IMG__SIL__MIDO__MIDO00_SDF = "img\\sil\\mido\\mido00.sdf";
        //private static readonly string IMG__SIL__MIDO__MIDO00_PNG = "img\\sil\\mido\\mido00.png";
        //private static readonly string IMG__SIL__MIDO__MIDO01_SDF = "img\\sil\\mido\\mido01.sdf";
        //private static readonly string IMG__SIL__MIDO__MIDO01_PNG = "img\\sil\\mido\\mido01.png";
        //private static readonly string IMG__SIL__MIDO__MIDO02_SDF = "img\\sil\\mido\\mido02.sdf";
        //private static readonly string IMG__SIL__MIDO__MIDO02_PNG = "img\\sil\\mido\\mido02.png";
        //private static readonly string IMG__SIL__MIDO__MIDO03_SDF = "img\\sil\\mido\\mido03.sdf";
        //private static readonly string IMG__SIL__MIDO__MIDO03_PNG = "img\\sil\\mido\\mido03.png";
        //private static readonly string IMG__SIL__MIDO__MIDO04_SDF = "img\\sil\\mido\\mido04.sdf";
        //private static readonly string IMG__SIL__MIDO__MIDO04_PNG = "img\\sil\\mido\\mido04.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE01_PNG = "img\\sil\\OLD\\SILHOUETTE01.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE02_PNG = "img\\sil\\OLD\\SILHOUETTE02.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE03_PNG = "img\\sil\\OLD\\SILHOUETTE03.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE04_PNG = "img\\sil\\OLD\\SILHOUETTE04.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE05_PNG = "img\\sil\\OLD\\SILHOUETTE05.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE06_PNG = "img\\sil\\OLD\\SILHOUETTE06.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE07_PNG = "img\\sil\\OLD\\SILHOUETTE07.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE08_PNG = "img\\sil\\OLD\\SILHOUETTE08.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE09_PNG = "img\\sil\\OLD\\SILHOUETTE09.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE10_PNG = "img\\sil\\OLD\\SILHOUETTE10.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE11_PNG = "img\\sil\\OLD\\SILHOUETTE11.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE12_PNG = "img\\sil\\OLD\\SILHOUETTE12.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE13_PNG = "img\\sil\\OLD\\SILHOUETTE13.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE14_PNG = "img\\sil\\OLD\\SILHOUETTE14.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE15_PNG = "img\\sil\\OLD\\SILHOUETTE15.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE16_PNG = "img\\sil\\OLD\\SILHOUETTE16.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE17_PNG = "img\\sil\\OLD\\SILHOUETTE17.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE18_PNG = "img\\sil\\OLD\\SILHOUETTE18.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE19_PNG = "img\\sil\\OLD\\SILHOUETTE19.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE20_PNG = "img\\sil\\OLD\\SILHOUETTE20.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE21_PNG = "img\\sil\\OLD\\SILHOUETTE21.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE22_PNG = "img\\sil\\OLD\\SILHOUETTE22.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE23_PNG = "img\\sil\\OLD\\SILHOUETTE23.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE24_PNG = "img\\sil\\OLD\\SILHOUETTE24.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE25_PNG = "img\\sil\\OLD\\SILHOUETTE25.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE26_PNG = "img\\sil\\OLD\\SILHOUETTE26.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE27_PNG = "img\\sil\\OLD\\SILHOUETTE27.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE28_PNG = "img\\sil\\OLD\\SILHOUETTE28.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE29_PNG = "img\\sil\\OLD\\SILHOUETTE29.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE30_PNG = "img\\sil\\OLD\\SILHOUETTE30.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE31_PNG = "img\\sil\\OLD\\SILHOUETTE31.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE32_PNG = "img\\sil\\OLD\\SILHOUETTE32.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE33_PNG = "img\\sil\\OLD\\SILHOUETTE33.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE34_PNG = "img\\sil\\OLD\\SILHOUETTE34.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE35_PNG = "img\\sil\\OLD\\SILHOUETTE35.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE36_PNG = "img\\sil\\OLD\\SILHOUETTE36.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE37_PNG = "img\\sil\\OLD\\SILHOUETTE37.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE38_PNG = "img\\sil\\OLD\\SILHOUETTE38.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE39_PNG = "img\\sil\\OLD\\SILHOUETTE39.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE40_PNG = "img\\sil\\OLD\\SILHOUETTE40.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE41_PNG = "img\\sil\\OLD\\SILHOUETTE41.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE42_PNG = "img\\sil\\OLD\\SILHOUETTE42.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE43_PNG = "img\\sil\\OLD\\SILHOUETTE43.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE44_PNG = "img\\sil\\OLD\\SILHOUETTE44.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE45_PNG = "img\\sil\\OLD\\SILHOUETTE45.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE46_PNG = "img\\sil\\OLD\\SILHOUETTE46.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE47_PNG = "img\\sil\\OLD\\SILHOUETTE47.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE48_PNG = "img\\sil\\OLD\\SILHOUETTE48.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE49_PNG = "img\\sil\\OLD\\SILHOUETTE49.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE50_PNG = "img\\sil\\OLD\\SILHOUETTE50.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE51_PNG = "img\\sil\\OLD\\SILHOUETTE51.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE52_PNG = "img\\sil\\OLD\\SILHOUETTE52.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE53_PNG = "img\\sil\\OLD\\SILHOUETTE53.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE54_PNG = "img\\sil\\OLD\\SILHOUETTE54.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE55_PNG = "img\\sil\\OLD\\SILHOUETTE55.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE56_PNG = "img\\sil\\OLD\\SILHOUETTE56.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE57_PNG = "img\\sil\\OLD\\SILHOUETTE57.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE58_PNG = "img\\sil\\OLD\\SILHOUETTE58.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE59_PNG = "img\\sil\\OLD\\SILHOUETTE59.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE60_PNG = "img\\sil\\OLD\\SILHOUETTE60.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE61_PNG = "img\\sil\\OLD\\SILHOUETTE61.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE62_PNG = "img\\sil\\OLD\\SILHOUETTE62.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE63_PNG = "img\\sil\\OLD\\SILHOUETTE63.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE64_PNG = "img\\sil\\OLD\\SILHOUETTE64.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE65_PNG = "img\\sil\\OLD\\SILHOUETTE65.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE66_PNG = "img\\sil\\OLD\\SILHOUETTE66.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE67_PNG = "img\\sil\\OLD\\SILHOUETTE67.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE68_PNG = "img\\sil\\OLD\\SILHOUETTE68.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE69_PNG = "img\\sil\\OLD\\SILHOUETTE69.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE70_PNG = "img\\sil\\OLD\\SILHOUETTE70.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE71_PNG = "img\\sil\\OLD\\SILHOUETTE71.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE72_PNG = "img\\sil\\OLD\\SILHOUETTE72.png";
        //private static readonly string IMG__SIL__OLD__SILHOUETTE73_PNG = "img\\sil\\OLD\\SILHOUETTE73.png";
        //private static readonly string IMG__SIL__RUBI__RUBI00_SDF = "img\\sil\\rubi\\rubi00.sdf";
        //private static readonly string IMG__SIL__RUBI__RUBI00_PNG = "img\\sil\\rubi\\rubi00.png";
        //private static readonly string IMG__SIL__RUBI__RUBI01_SDF = "img\\sil\\rubi\\rubi01.sdf";
        //private static readonly string IMG__SIL__RUBI__RUBI01_PNG = "img\\sil\\rubi\\rubi01.png";
        //private static readonly string IMG__SIL__RUBI__RUBI02_SDF = "img\\sil\\rubi\\rubi02.sdf";
        //private static readonly string IMG__SIL__RUBI__RUBI02_PNG = "img\\sil\\rubi\\rubi02.png";
        //private static readonly string IMG__SIL__RUBI__RUBI03_SDF = "img\\sil\\rubi\\rubi03.sdf";
        //private static readonly string IMG__SIL__RUBI__RUBI03_PNG = "img\\sil\\rubi\\rubi03.png";
        //private static readonly string IMG__SIL__RUBI__RUBI04_SDF = "img\\sil\\rubi\\rubi04.sdf";
        //private static readonly string IMG__SIL__RUBI__RUBI04_PNG = "img\\sil\\rubi\\rubi04.png";
        //private static readonly string IMG__SIL__RUBI__RUBI05_SDF = "img\\sil\\rubi\\rubi05.sdf";
        //private static readonly string IMG__SIL__RUBI__RUBI05_PNG = "img\\sil\\rubi\\rubi05.png";
        //private static readonly string IMG__SIL__RUBI__RUBI06_SDF = "img\\sil\\rubi\\rubi06.sdf";
        //private static readonly string IMG__SIL__RUBI__RUBI06_PNG = "img\\sil\\rubi\\rubi06.png";
        //private static readonly string IMG__SIL__RUBI__RUBI07_SDF = "img\\sil\\rubi\\rubi07.sdf";
        //private static readonly string IMG__SIL__RUBI__RUBI07_PNG = "img\\sil\\rubi\\rubi07.png";
        //private static readonly string IMG__SIL__SIL_00_BMP = "img\\sil\\sil_00.bmp";
        //private static readonly string IMG__SIL__SIL_01_BMP = "img\\sil\\sil_01.bmp";
        //private static readonly string IMG__SIL__SIL_02_BMP = "img\\sil\\sil_02.bmp";
        //private static readonly string IMG__SIL__SIL_03_BMP = "img\\sil\\sil_03.bmp";
        //private static readonly string IMG__SIL__SIL_04_BMP = "img\\sil\\sil_04.bmp";
        //private static readonly string IMG__SIL__TADA__TADA00_SDF = "img\\sil\\tada\\tada00.sdf";
        //private static readonly string IMG__SIL__TADA__TADA00_PNG = "img\\sil\\tada\\tada00.png";
        //private static readonly string IMG__SIL__TADA__TADA01_SDF = "img\\sil\\tada\\tada01.sdf";
        //private static readonly string IMG__SIL__TADA__TADA01_PNG = "img\\sil\\tada\\tada01.png";
        //private static readonly string IMG__SIL__TADA__TADA02_SDF = "img\\sil\\tada\\tada02.sdf";
        //private static readonly string IMG__SIL__TADA__TADA02_PNG = "img\\sil\\tada\\tada02.png";
        //private static readonly string IMG__SIL__TADA__TADA03_SDF = "img\\sil\\tada\\tada03.sdf";
        //private static readonly string IMG__SIL__TADA__TADA03_PNG = "img\\sil\\tada\\tada03.png";
        //private static readonly string IMG__SIL__TADA__TADA04_SDF = "img\\sil\\tada\\tada04.sdf";
        //private static readonly string IMG__SIL__TADA__TADA04_PNG = "img\\sil\\tada\\tada04.png";
        //private static readonly string IMG__SIL__TADA__TADA05_SDF = "img\\sil\\tada\\tada05.sdf";
        //private static readonly string IMG__SIL__TADA__TADA05_PNG = "img\\sil\\tada\\tada05.png";
        //private static readonly string IMG__SIL__TASK__TASK00_SDF = "img\\sil\\task\\task00.sdf";
        //private static readonly string IMG__SIL__TASK__TASK00_PNG = "img\\sil\\task\\task00.png";
        //private static readonly string IMG__SIL__TASK__TASK01_SDF = "img\\sil\\task\\task01.sdf";
        //private static readonly string IMG__SIL__TASK__TASK01_PNG = "img\\sil\\task\\task01.png";
        //private static readonly string IMG__SIL__TASK__TASK02_SDF = "img\\sil\\task\\task02.sdf";
        //private static readonly string IMG__SIL__TASK__TASK02_PNG = "img\\sil\\task\\task02.png";
        //private static readonly string IMG__SIL__TASK__TASK03_SDF = "img\\sil\\task\\task03.sdf";
        //private static readonly string IMG__SIL__TASK__TASK03_PNG = "img\\sil\\task\\task03.png";
        //private static readonly string IMG__SIL__TATU__TATU00_SDF = "img\\sil\\tatu\\tatu00.sdf";
        //private static readonly string IMG__SIL__TATU__TATU00_PNG = "img\\sil\\tatu\\tatu00.png";
        //private static readonly string IMG__SIL__TATU__TATU01_SDF = "img\\sil\\tatu\\tatu01.sdf";
        //private static readonly string IMG__SIL__TATU__TATU01_PNG = "img\\sil\\tatu\\tatu01.png";
        //private static readonly string IMG__SIL__TATU__TATU02_SDF = "img\\sil\\tatu\\tatu02.sdf";
        //private static readonly string IMG__SIL__TATU__TATU02_PNG = "img\\sil\\tatu\\tatu02.png";
        //private static readonly string IMG__SIL__TATU__TATU03_SDF = "img\\sil\\tatu\\tatu03.sdf";
        //private static readonly string IMG__SIL__TATU__TATU03_PNG = "img\\sil\\tatu\\tatu03.png";
        //private static readonly string IMG__SIL__TOMI__TOMI00_SDF = "img\\sil\\tomi\\tomi00.sdf";
        //private static readonly string IMG__SIL__TOMI__TOMI00_PNG = "img\\sil\\tomi\\tomi00.png";
        //private static readonly string IMG__SIL__TOMI__TOMI01_SDF = "img\\sil\\tomi\\tomi01.sdf";
        //private static readonly string IMG__SIL__TOMI__TOMI01_PNG = "img\\sil\\tomi\\tomi01.png";
        //private static readonly string IMG__SIL__TOMI__TOMI02_SDF = "img\\sil\\tomi\\tomi02.sdf";
        //private static readonly string IMG__SIL__TOMI__TOMI02_PNG = "img\\sil\\tomi\\tomi02.png";
        //private static readonly string IMG__SIORI_BT1_OFF_PNG = "img\\siori_bt1_off.png";
        //private static readonly string IMG__SIORI_BT1_ON_PNG = "img\\siori_bt1_on.png";
        //private static readonly string IMG__SIORI_BT2_OFF_PNG = "img\\siori_bt2_off.png";
        //private static readonly string IMG__SIORI_BT2_ON_PNG = "img\\siori_bt2_on.png";
        //private static readonly string IMG__SIORI_BT3_OFF_PNG = "img\\siori_bt3_off.png";
        //private static readonly string IMG__SIORI_BT3_ON_PNG = "img\\siori_bt3_on.png";
        //private static readonly string IMG__SIORI_BT4_DIS_PNG = "img\\siori_bt4_dis.png";
        //private static readonly string IMG__SIORI_BT4_OFF_PNG = "img\\siori_bt4_off.png";
        //private static readonly string IMG__SIORI_BT4_ON_PNG = "img\\siori_bt4_on.png";
        //private static readonly string IMG__SIORI_BT_AUTO_OFF_PNG = "img\\siori_bt_auto_off.png";
        //private static readonly string IMG__SIORI_BT_AUTO_ON_PNG = "img\\siori_bt_auto_on.png";
        //private static readonly string IMG__SIORI_BT_OFF_PNG = "img\\siori_bt_off.png";
        //private static readonly string IMG__SIORI_BT_ON_PNG = "img\\siori_bt_on.png";
        //private static readonly string IMG__SNOW_PNG = "img\\snow.png";
        //private static readonly string IMG__TELOP__0100_PNG = "img\\telop\\0100.png";
        //private static readonly string IMG__TELOP__0101_PNG = "img\\telop\\0101.png";
        //private static readonly string IMG__TELOP__0102_PNG = "img\\telop\\0102.png";
        //private static readonly string IMG__TELOP__0103_PNG = "img\\telop\\0103.png";
        //private static readonly string IMG__TELOP__0200_PNG = "img\\telop\\0200.png";
        //private static readonly string IMG__TELOP__0201_PNG = "img\\telop\\0201.png";
        //private static readonly string IMG__TELOP__0202_PNG = "img\\telop\\0202.png";
        //private static readonly string IMG__TELOP__0203_PNG = "img\\telop\\0203.png";
        //private static readonly string IMG__TELOP__PLACE083_JPG = "img\\telop\\place083.jpg";
        //private static readonly string IMG__TELOP__PLACE084_JPG = "img\\telop\\place084.jpg";
        //private static readonly string IMG__TELOP__PLACE085_JPG = "img\\telop\\place085.jpg";
        //private static readonly string IMG__TELOP__PLACE086_JPG = "img\\telop\\place086.jpg";
        //private static readonly string IMG__TELOP__PLACE087_JPG = "img\\telop\\place087.jpg";
        //private static readonly string IMG__TELOP__PLACE088_JPG = "img\\telop\\place088.jpg";
        //private static readonly string IMG__TELOP__PLACE143_JPG = "img\\telop\\place143.jpg";
        //private static readonly string IMG__TELOP__PLACE144_JPG = "img\\telop\\place144.jpg";
        //private static readonly string IMG__TELOP__PLACE145_JPG = "img\\telop\\place145.jpg";
        //private static readonly string IMG__TELOP__PLACE146_JPG = "img\\telop\\place146.jpg";
        //private static readonly string IMG__TELOP__PLACE152_JPG = "img\\telop\\place152.jpg";
        //private static readonly string IMG__TELOP__TELOP01_LST = "img\\telop\\telop01.lst";
        //private static readonly string IMG__TELOP__TELOP02_JPG = "img\\telop\\telop02.jpg";
        //private static readonly string IMG__TELOP__TELOP02_LST = "img\\telop\\telop02.lst";
        //private static readonly string IMG__TITLE_PARTS__AUTO_SIORI_PNG = "img\\title_parts\\auto_siori.png";
        //private static readonly string IMG__TITLE_PARTS__AUTO_SIORI_OFF_PNG = "img\\title_parts\\auto_siori_off.png";
        //private static readonly string IMG__TITLE_PARTS__AUTO_SIORI_ON_PNG = "img\\title_parts\\auto_siori_on.png";
        //private static readonly string IMG__TITLE_PARTS__B01_OFF_BMP = "img\\title_parts\\b01_off.bmp";
        //private static readonly string IMG__TITLE_PARTS__B01_OFF_PNG = "img\\title_parts\\b01_off.png";
        //private static readonly string IMG__TITLE_PARTS__B01_ON_BMP = "img\\title_parts\\b01_on.bmp";
        //private static readonly string IMG__TITLE_PARTS__B01_ON_PNG = "img\\title_parts\\b01_on.png";
        //private static readonly string IMG__TITLE_PARTS__B02_OFF_BMP = "img\\title_parts\\b02_off.bmp";
        //private static readonly string IMG__TITLE_PARTS__B02_OFF_PNG = "img\\title_parts\\b02_off.png";
        //private static readonly string IMG__TITLE_PARTS__B02_ON_BMP = "img\\title_parts\\b02_on.bmp";
        //private static readonly string IMG__TITLE_PARTS__B02_ON_PNG = "img\\title_parts\\b02_on.png";
        //private static readonly string IMG__TITLE_PARTS__B03_OFF_BMP = "img\\title_parts\\b03_off.bmp";
        //private static readonly string IMG__TITLE_PARTS__B03_OFF_PNG = "img\\title_parts\\b03_off.png";
        //private static readonly string IMG__TITLE_PARTS__B03_ON_BMP = "img\\title_parts\\b03_on.bmp";
        //private static readonly string IMG__TITLE_PARTS__B03_ON_PNG = "img\\title_parts\\b03_on.png";
        //private static readonly string IMG__TITLE_PARTS__B04_OFF_BMP = "img\\title_parts\\b04_off.bmp";
        //private static readonly string IMG__TITLE_PARTS__B04_OFF_PNG = "img\\title_parts\\b04_off.png";
        //private static readonly string IMG__TITLE_PARTS__B04_ON_BMP = "img\\title_parts\\b04_on.bmp";
        //private static readonly string IMG__TITLE_PARTS__B04_ON_PNG = "img\\title_parts\\b04_on.png";
        //private static readonly string IMG__TITLE_PARTS__BG_JPG = "img\\title_parts\\bg.jpg";
        //private static readonly string IMG__TITLE_PARTS__BG_PNG = "img\\title_parts\\bg.png";
        //private static readonly string IMG__TITLE_PARTS__DIAL_PNG = "img\\title_parts\\dial.png";
        //private static readonly string IMG__TITLE_PARTS__DIAL_ORIGIN_PNG = "img\\title_parts\\dial_origin.png";
        //private static readonly string IMG__TITLE_PARTS__DIS_ENTER_OFF_PNG = "img\\title_parts\\dis_enter_off.png";
        //private static readonly string IMG__TITLE_PARTS__DIS_ENTER_ON_PNG = "img\\title_parts\\dis_enter_on.png";
        //private static readonly string IMG__TITLE_PARTS__ENTER_OFF_PNG = "img\\title_parts\\enter_off.png";
        //private static readonly string IMG__TITLE_PARTS__ENTER_ON_PNG = "img\\title_parts\\enter_on.png";
        //private static readonly string IMG__TITLE_PARTS__MR_NEXT_OFF_BMP = "img\\title_parts\\mr_next_off.bmp";
        //private static readonly string IMG__TITLE_PARTS__MR_NEXT_OFF_PNG = "img\\title_parts\\mr_next_off.png";
        //private static readonly string IMG__TITLE_PARTS__MR_NEXT_ON_BMP = "img\\title_parts\\mr_next_on.bmp";
        //private static readonly string IMG__TITLE_PARTS__MR_NEXT_ON_PNG = "img\\title_parts\\mr_next_on.png";
        //private static readonly string IMG__TITLE_PARTS__MR_PLAY_OFF_BMP = "img\\title_parts\\mr_play_off.bmp";
        //private static readonly string IMG__TITLE_PARTS__MR_PLAY_OFF_PNG = "img\\title_parts\\mr_play_off.png";
        //private static readonly string IMG__TITLE_PARTS__MR_PLAY_ON_BMP = "img\\title_parts\\mr_play_on.bmp";
        //private static readonly string IMG__TITLE_PARTS__MR_PLAY_ON_PNG = "img\\title_parts\\mr_play_on.png";
        //private static readonly string IMG__TITLE_PARTS__MR_PRE_OFF_BMP = "img\\title_parts\\mr_pre_off.bmp";
        //private static readonly string IMG__TITLE_PARTS__MR_PRE_OFF_PNG = "img\\title_parts\\mr_pre_off.png";
        //private static readonly string IMG__TITLE_PARTS__MR_PRE_ON_BMP = "img\\title_parts\\mr_pre_on.bmp";
        //private static readonly string IMG__TITLE_PARTS__MR_PRE_ON_PNG = "img\\title_parts\\mr_pre_on.png";
        //private static readonly string IMG__TITLE_PARTS__MR_STOP_OFF_BMP = "img\\title_parts\\mr_stop_off.bmp";
        //private static readonly string IMG__TITLE_PARTS__MR_STOP_OFF_PNG = "img\\title_parts\\mr_stop_off.png";
        //private static readonly string IMG__TITLE_PARTS__MR_STOP_ON_BMP = "img\\title_parts\\mr_stop_on.bmp";
        //private static readonly string IMG__TITLE_PARTS__MR_STOP_ON_PNG = "img\\title_parts\\mr_stop_on.png";
        //private static readonly string IMG__TITLE_PARTS__MUSIC_ROOM_BMP = "img\\title_parts\\MUSIC_ROOM.bmp";
        //private static readonly string IMG__TITLE_PARTS__MUSIC_ROOM_PNG = "img\\title_parts\\MUSIC_ROOM.png";
        //private static readonly string IMG__TITLE_PARTS__REMARK_LST = "img\\title_parts\\remark.lst";
        //private static readonly string IMG__TITLE_PARTS__REMARK00_PNG = "img\\title_parts\\remark00.png";
        //private static readonly string IMG__TITLE_PARTS__REMARK01_PNG = "img\\title_parts\\remark01.png";
        //private static readonly string IMG__TITLE_PARTS__REMARK02_PNG = "img\\title_parts\\remark02.png";
        //private static readonly string IMG__TITLE_PARTS__REMARK03_PNG = "img\\title_parts\\remark03.png";
        //private static readonly string IMG__TITLE_PARTS__REMARK04_PNG = "img\\title_parts\\remark04.png";
        //private static readonly string IMG__TITLE_PARTS__REMARK05_PNG = "img\\title_parts\\remark05.png";
        //private static readonly string IMG__TITLE_PARTS__REMARK06_PNG = "img\\title_parts\\remark06.png";
        //private static readonly string IMG__TITLE_PARTS__SIORI_LST = "img\\title_parts\\siori.lst";
        //private static readonly string IMG__TITLE_PARTS__SIORI_PNG = "img\\title_parts\\siori.png";
        //private static readonly string IMG__TITLE_PARTS__SIORI_OFF_PNG = "img\\title_parts\\siori_off.png";
        //private static readonly string IMG__TITLE_PARTS__SIORI_ON_PNG = "img\\title_parts\\siori_on.png";
        //private static readonly string IMG__TITLE_PARTS__START_ON_PNG = "img\\title_parts\\start_on.png";
        //private static readonly string IMG__TITLE_PARTS__T01_OFF_BMP = "img\\title_parts\\t01_off.bmp";
        //private static readonly string IMG__TITLE_PARTS__T01_OFF_PNG = "img\\title_parts\\t01_off.png";
        //private static readonly string IMG__TITLE_PARTS__T01_ON_BMP = "img\\title_parts\\t01_on.bmp";
        //private static readonly string IMG__TITLE_PARTS__T01_ON_PNG = "img\\title_parts\\t01_on.png";
        //private static readonly string IMG__TITLE_PARTS__T02_OFF_BMP = "img\\title_parts\\t02_off.bmp";
        //private static readonly string IMG__TITLE_PARTS__T02_OFF_PNG = "img\\title_parts\\t02_off.png";
        //private static readonly string IMG__TITLE_PARTS__T02_ON_BMP = "img\\title_parts\\t02_on.bmp";
        //private static readonly string IMG__TITLE_PARTS__T02_ON_PNG = "img\\title_parts\\t02_on.png";
        //private static readonly string IMG__TITLE_PARTS__T03_OFF_BMP = "img\\title_parts\\t03_off.bmp";
        //private static readonly string IMG__TITLE_PARTS__T03_OFF_PNG = "img\\title_parts\\t03_off.png";
        //private static readonly string IMG__TITLE_PARTS__T03_ON_BMP = "img\\title_parts\\t03_on.bmp";
        //private static readonly string IMG__TITLE_PARTS__T03_ON_PNG = "img\\title_parts\\t03_on.png";
        //private static readonly string IMG__TITLE_PARTS__T04_OFF_BMP = "img\\title_parts\\t04_off.bmp";
        //private static readonly string IMG__TITLE_PARTS__T04_OFF_PNG = "img\\title_parts\\t04_off.png";
        //private static readonly string IMG__TITLE_PARTS__T04_ON_BMP = "img\\title_parts\\t04_on.bmp";
        //private static readonly string IMG__TITLE_PARTS__T04_ON_PNG = "img\\title_parts\\t04_on.png";
        //private static readonly string IMG__TITLE_PARTS__T05_OFF_BMP = "img\\title_parts\\t05_off.bmp";
        //private static readonly string IMG__TITLE_PARTS__T05_OFF_PNG = "img\\title_parts\\t05_off.png";
        //private static readonly string IMG__TITLE_PARTS__T05_ON_BMP = "img\\title_parts\\t05_on.bmp";
        //private static readonly string IMG__TITLE_PARTS__T05_ON_PNG = "img\\title_parts\\t05_on.png";
        //private static readonly string IMG__TITLE_PARTS__T06_OFF_BMP = "img\\title_parts\\t06_off.bmp";
        //private static readonly string IMG__TITLE_PARTS__T06_OFF_PNG = "img\\title_parts\\t06_off.png";
        //private static readonly string IMG__TITLE_PARTS__T06_ON_BMP = "img\\title_parts\\t06_on.bmp";
        //private static readonly string IMG__TITLE_PARTS__T06_ON_PNG = "img\\title_parts\\t06_on.png";
        //private static readonly string IMG__TITLE_PARTS__T07_OFF_BMP = "img\\title_parts\\t07_off.bmp";
        //private static readonly string IMG__TITLE_PARTS__T07_OFF_PNG = "img\\title_parts\\t07_off.png";
        //private static readonly string IMG__TITLE_PARTS__T07_ON_BMP = "img\\title_parts\\t07_on.bmp";
        //private static readonly string IMG__TITLE_PARTS__T07_ON_PNG = "img\\title_parts\\t07_on.png";
        //private static readonly string IMG__TITLE_PARTS__T08_OFF_BMP = "img\\title_parts\\t08_off.bmp";
        //private static readonly string IMG__TITLE_PARTS__T08_OFF_PNG = "img\\title_parts\\t08_off.png";
        //private static readonly string IMG__TITLE_PARTS__T08_ON_BMP = "img\\title_parts\\t08_on.bmp";
        //private static readonly string IMG__TITLE_PARTS__T08_ON_PNG = "img\\title_parts\\t08_on.png";
        //private static readonly string IMG__TITLE_PARTS__T09_OFF_BMP = "img\\title_parts\\t09_off.bmp";
        //private static readonly string IMG__TITLE_PARTS__T09_OFF_PNG = "img\\title_parts\\t09_off.png";
        //private static readonly string IMG__TITLE_PARTS__T09_ON_BMP = "img\\title_parts\\t09_on.bmp";
        //private static readonly string IMG__TITLE_PARTS__T09_ON_PNG = "img\\title_parts\\t09_on.png";
        //private static readonly string IMG__TITLE_PARTS__T10_OFF_BMP = "img\\title_parts\\t10_off.bmp";
        //private static readonly string IMG__TITLE_PARTS__T10_OFF_PNG = "img\\title_parts\\t10_off.png";
        //private static readonly string IMG__TITLE_PARTS__T10_ON_BMP = "img\\title_parts\\t10_on.bmp";
        //private static readonly string IMG__TITLE_PARTS__T10_ON_PNG = "img\\title_parts\\t10_on.png";
        //private static readonly string IMG__TITLE_PARTS__T11_OFF_BMP = "img\\title_parts\\t11_off.bmp";
        //private static readonly string IMG__TITLE_PARTS__T11_OFF_PNG = "img\\title_parts\\t11_off.png";
        //private static readonly string IMG__TITLE_PARTS__T11_ON_BMP = "img\\title_parts\\t11_on.bmp";
        //private static readonly string IMG__TITLE_PARTS__T11_ON_PNG = "img\\title_parts\\t11_on.png";
        //private static readonly string IMG__TITLE_PARTS__T12_OFF_BMP = "img\\title_parts\\t12_off.bmp";
        //private static readonly string IMG__TITLE_PARTS__T12_OFF_PNG = "img\\title_parts\\t12_off.png";
        //private static readonly string IMG__TITLE_PARTS__T12_ON_BMP = "img\\title_parts\\t12_on.bmp";
        //private static readonly string IMG__TITLE_PARTS__T12_ON_PNG = "img\\title_parts\\t12_on.png";
        //private static readonly string IMG__TITLE_PARTS__T13_OFF_BMP = "img\\title_parts\\t13_off.bmp";
        //private static readonly string IMG__TITLE_PARTS__T13_OFF_PNG = "img\\title_parts\\t13_off.png";
        //private static readonly string IMG__TITLE_PARTS__T13_ON_BMP = "img\\title_parts\\t13_on.bmp";
        //private static readonly string IMG__TITLE_PARTS__T13_ON_PNG = "img\\title_parts\\t13_on.png";
        //private static readonly string IMG__TITLE_PARTS__T20_OFF_PNG = "img\\title_parts\\t20_off.png";
        //private static readonly string IMG__TITLE_PARTS__T20_ON_PNG = "img\\title_parts\\t20_on.png";
        //private static readonly string IMG__TITLE_PARTS__TITLE_BT_LST = "img\\title_parts\\title_bt.lst";
        //private static readonly string IMG__WA_PNG = "img\\wa.png";
        //private static readonly string IMG__YESNO__01_BMP = "img\\yesno\\01.bmp";
        //private static readonly string IMG__YESNO__02_BMP = "img\\yesno\\02.bmp";
        //private static readonly string IMG__YESNO__03_BMP = "img\\yesno\\03.bmp";
        //private static readonly string IMG__YESNO__04_BMP = "img\\yesno\\04.bmp";
        //private static readonly string IMG__YESNO__05_BMP = "img\\yesno\\05.bmp";
        //private static readonly string IMG__YESNO__06_BMP = "img\\yesno\\06.bmp";
        //private static readonly string IMG__YESNO__END_BMP = "img\\yesno\\end.bmp";
        //private static readonly string IMG__YESNO__LIST_LST = "img\\yesno\\list.lst";

        #endregion

        #region フィールドメンバ

        private GameSystem m_gSys;

        private int step = -2;	//!< 状態
        private Rand rand;
        private SinTable st;
        private FixTimer timer;
        private Font font;
        private int count = 0;

        private ITexture[] moji = new ITexture[3];	// テキスト表示テクスチャ

        private Sound bgm;		// BGM

        private float movecounter = 0.0f;	//!< 開始時からのフレーム
        private float step_start = 0.0f;	//!< 現在のステップの開始フレーム
        private float step_counter = 0.0f;	//!< ステップ開始からのフレーム
        private int step_start_time;		//!< ステップの開始時の時間
        private bool newstep;	//!< 新しいステップに入ったかのフラグ

        //private float sizecounter = 0.3f;

        private int sizex;
        private int sizey;
        private readonly Rect srcrect = new Rect();

        private int tx;
        private float move = 0.0f;

        private int addfade;	// fade率
        private bool replay;

        private TextureLoader textureLoaderBGStd;
        private int elementNumBGStd;

        private ITexture t_toplogo;
        private ITexture t_title;
        private ITexture t_titlememo;
        private ITexture t_bg;
        private ITexture t_k;
        private ITexture t_2;
        private ITexture t_c;
        private ITexture t_noise;
        private ITexture t_ring;
        private ITexture t_ring2;
        private ITexture t_flare;
        private ITexture t_horizon;
        private ITexture t_unLight;

        private ITexture t_pole;
        private ITexture t_fader;
        private ITexture t_roleText;
        private ITexture t_halftone;
        private ITexture t_aliceEye;

        // 何のために生きるの？
        private ITexture t_faice;
        private ITexture t_ikiru;

        // --CUTIN
        private ITexture t_aliceUp;
        private ITexture t_bg1;

        // とみえたん
        private ITexture t_tomiSt;
        private ITexture t_tomiShade;

        // scene01 -- powered by [REVERSE](TUKIHIME)
        private ITexture t_bgEx;
        private ITexture t_aliceSt;
        private ITexture t_bgExZ;
        private ITexture t_midoSt;

        // テキスト
        private ITexture[] t_Text;

        // code
        private ITexture[] t_Code;
        private ITexture[] t_CodeZ;
        private ITexture t_aliceCode;
        private ITexture t_kyo;
        private TextureLineNoise textureLineNoise;

        // chara intro
        private ITexture[] t_face;
        private ITexture[] t_intro;
        private TexutralTextDraw texturalTextDraw;
        private TextureLoader textureLoaderBG;
        private int elementNumBG;

        // flash
        private ITexture t_bgFullNoise;
        private ITexture[] t_shadows;

        // end-staff
        //private ITexture t_endBg;
        private ITexture t_endStaff;
        private InteriorCounter alphaCounter;

        private MoveView moveView;		// 背景ぶれ描画用クラス
        //private PromptCarsor carsor;	// 点滅するプロンプトカーソル
        private readonly ScreenFrame screenFrame = new ScreenFrame();

        private DizzyTextDraw dizzyTextDraw;	// 文字ランダム表示
        private FontLoader fontLoader;

        //private DropObjectManager sm;
        private HexPropagate hexPropagate;
        private readonly FlashInText flashInText = new FlashInText();
        private readonly ScatteredTexture breakDrop = new ScatteredTexture();

        private DecorativeColck clock;	//!< 時計
        // 背景描画用
        // KYOJINTACHIタイトル
        private SequentialDrawAlpha headliner;
        private ITexture t_Kyojintachi;
        // 団体名タイトル
        private SlideInHeadlinear headlineK2C;
        private ITexture t_K2Cex;

        private int progress = 0;



        // シーンクラス
        private LoaderScene loaderScene;
        private StepS01 stepS01;
        private Step001 step001;
        private Step002 step002;
        private Step003 step003;
        private Step004 step004;
        private Step005 step005;
        private Step006 step006;
        private Step103 step103;
        private Step104 step104;
        private Step105 step105;
        private Step106 step106;
        private Step107 step107;
        private Step108 step108;
        private Step109 step109;
        private Step110 step110;
        private Step111 step111;
        private Step112 step112;

        #endregion


        /// <summary>
        /// コンストラクタ
        /// </summary>
        /// <param name="system">このアプリ共有で使用するGameSystemインスタンス</param>
        public DemoScene(GameSystem gameSystem)
        {
            music_sync = (float)(15.0 / (1.0 / ABEAT));
            step = -2;
        }

        /// <summary>
        /// リソースの破棄を行う
        /// </summary>
        public void Dispose()
        {
            YamalibUtility.Dispose(fontLoader);
            YamalibUtility.Dispose(font);

            YamalibUtility.Dispose(textureLoaderBGStd);
            YamalibUtility.Dispose(t_toplogo);
            YamalibUtility.Dispose(t_title);
            YamalibUtility.Dispose(t_titlememo);
            YamalibUtility.Dispose(t_bg);
            YamalibUtility.Dispose(t_k);
            YamalibUtility.Dispose(t_2);
            YamalibUtility.Dispose(t_c);
            YamalibUtility.Dispose(t_noise);
            YamalibUtility.Dispose(t_ring);
            YamalibUtility.Dispose(t_ring2);
            YamalibUtility.Dispose(t_flare);
            YamalibUtility.Dispose(t_horizon);
            YamalibUtility.Dispose(t_unLight);
            YamalibUtility.Dispose(t_pole);
            YamalibUtility.Dispose(t_fader);
            YamalibUtility.Dispose(t_roleText);
            YamalibUtility.Dispose(t_halftone);
            YamalibUtility.Dispose(t_aliceEye);
            YamalibUtility.Dispose(t_faice);
            YamalibUtility.Dispose(t_ikiru);
            YamalibUtility.Dispose(t_aliceUp);
            YamalibUtility.Dispose(t_bg1);
            YamalibUtility.Dispose(t_tomiSt);
            YamalibUtility.Dispose(t_tomiShade);
            YamalibUtility.Dispose(t_bgEx);
            YamalibUtility.Dispose(t_aliceSt);
            YamalibUtility.Dispose(t_bgExZ);
            YamalibUtility.Dispose(t_midoSt);
            YamalibUtility.Dispose(t_Text);
            YamalibUtility.Dispose(t_Code);
            YamalibUtility.Dispose(t_CodeZ);
            YamalibUtility.Dispose(t_aliceCode);
            YamalibUtility.Dispose(t_kyo);
            YamalibUtility.Dispose(textureLineNoise);
            YamalibUtility.Dispose(t_face);
            YamalibUtility.Dispose(t_intro);
            YamalibUtility.Dispose(texturalTextDraw);
            YamalibUtility.Dispose(textureLoaderBG);
            YamalibUtility.Dispose(t_bgFullNoise);
            YamalibUtility.Dispose(t_shadows);
            //YamalibUtility.Dispose(t_endBg);
            YamalibUtility.Dispose(t_endStaff);
            YamalibUtility.Dispose(alphaCounter);
            YamalibUtility.Dispose(moveView);		// 背景ぶれ描画用クラス
            YamalibUtility.Dispose(screenFrame);
            YamalibUtility.Dispose(dizzyTextDraw);
            YamalibUtility.Dispose(fontLoader);
            YamalibUtility.Dispose(hexPropagate);
            YamalibUtility.Dispose(flashInText);
            YamalibUtility.Dispose(breakDrop);
            YamalibUtility.Dispose(clock);
            YamalibUtility.Dispose(headliner);
            YamalibUtility.Dispose(t_Kyojintachi);
            YamalibUtility.Dispose(headlineK2C);
            YamalibUtility.Dispose(t_K2Cex);
        }

        /// <summary>
        /// タスクの動作
        /// </summary>
        /// <param name="o">ここではGameSystemのインスタンスが渡されることが想定される</param>
        /// <returns>常に１が返却される</returns>
        public override int Task(object o)
        {
            GameSystem gameSystem = (GameSystem)o;
            if (0 == OnMove(gameSystem))
            {
                return 0;
            }
            gameSystem.OnMoveCommon();
            if (!gameSystem.FpsTimer.ToBeSkip)
            {
                gameSystem.Screen.Select();
                OnPaint(gameSystem);
                gameSystem.OnDrawCommon();
                gameSystem.Screen.Update();
            }
            else
            {
                OnPaint(gameSystem);
                gameSystem.OnDrawCommon();
            }
            return 1;
        }

        /// <summary>
        /// 移動処理
        /// </summary>
        /// <param name="gameSystem">共通で使用するGameSystemのインスタンス</param>
        private int OnMove(GameSystem gameSystem)
        {
            if (CAP_SCREEN)
            {
                // タイマー調整
                if (null != timer)
                {
                    timer.Time = (int)(startTime + (taskLoopCount * (1000 / 60.0f)));
                    timer.Update();
                }
            }

            return 1;
        }

        /// <summary>
        /// 描画処理
        /// </summary>
        /// <param name="gameSystem">共通で使用するGameSystemのインスタンス</param>
        private int OnPaint(GameSystem gameSystem)
        {
            m_gSys = gameSystem;
            m_gSys.Screen.Clear();

            // クリア
            m_gSys.Screen.SetClearColor(0, 0, 0);
            m_gSys.Screen.Clear();

            switch (step)
            {

                // 初期化
                case -2:
                    // ↓でローダスレッド起動！
                    OnInit();
                    return 0;

                case -1:
                    // こいつはbreakしないでよい
                    //onInitAfter();

                    stepS01.OnPaint(m_gSys.Screen);
                    loaderScene.OnPaint(m_gSys.Screen);
                    if (loaderScene.IsFinish)
                    {
                        bgm.Play();
                        timer.Reset();
                        nextStep();
                    }

                    break;

                case 0:
                    stepS01.OnPaint(m_gSys.Screen);
                    break;

                // スタートタイトル
                case 1:
                    step001.OnPaint(m_gSys.Screen);
                    break;

                // KYOJINTACHIタイトルイン
                case 2:
                    step002.OnPaint(m_gSys.Screen);
                    break;

                // タイトルメモイン
                case 3:
                    step003.OnPaint(m_gSys.Screen);
                    break;

                // タイトルアウト
                case 4:
                    step004.OnPaint(m_gSys.Screen);
                    break;

                // 開閉	
                case 5:
                    step005.OnPaint(m_gSys.Screen);
                    break;

                // ロール
                case 6:
                    step006.OnPaint(m_gSys.Screen);
                    break;

                // 	キャラ紹介
                case 7:
                    step108.OnPaint(m_gSys.Screen);
                    //			step101();
                    break;

                // ありすコード＆時計
                case 8:
                    step107.OnPaint(m_gSys.Screen);
                    //			step102();
                    break;

                // 物語展開＋スロー
                case 9:
                    step106.OnPaint(m_gSys.Screen);
                    //			step103();
                    break;

                // フラッシュ		
                case 10:
                    step109.OnPaint(m_gSys.Screen);
                    //			step104();
                    break;

                // フラッシュインテキスト
                case 11:
                    step105.OnPaint(m_gSys.Screen);
                    break;

                // とみえたん立ち
                case 12:
                    step104.OnPaint(m_gSys.Screen);
                    break;

                // 翠子＋ありす
                case 13:
                    step103.OnPaint(m_gSys.Screen);
                    break;

                // KYOJINTACHIタイトル
                case 14:
                    step110.OnPaint(m_gSys.Screen);
                    break;

                // 開発スタッフ
                case 15:
                    step111.OnPaint(m_gSys.Screen);
                    //			step108();
                    break;

                case 16:
                    step112.OnPaint(m_gSys.Screen);
                    break;

                default:
                    break;
            }

            if (newstep && count++ > 0)
            {
                newstep = false;
                count = 0;
            }

            movecounter += music_sync;
            step_counter += music_sync;
            timer.Update();

            if (CAP_SCREEN)
            {
                if (0 == taskLoopCount % 2)
                {
                    StoreScreenShot();
                }
                taskLoopCount++;
            }


            if (timer.Time > 111 * 1000)
            {
                m_gSys.SceneController.ExitScene();
                m_gSys.SceneController.JumpScene(Scenes.Startmenu);
                m_gSys.Mouse.Show();
                return 0;
            }
            return 0;
        }


        #region 非公開メンバ

        /// 初期化処理
        private void OnInit()
        {
            OnLoad();

            loaderScene = new LoaderScene(this, timer);
            loaderScene.OnInit();
            stepS01 = new StepS01(this, timer);
            step001 = new Step001(this, timer);
            step002 = new Step002(this, timer);
            step003 = new Step003(this, timer);
            step004 = new Step004(this, timer);
            step005 = new Step005(this, timer);
            step006 = new Step006(this, timer);
            step103 = new Step103(this, timer);
            step104 = new Step104(this, timer);
            step105 = new Step105(this, timer);
            step106 = new Step106(this, timer);
            step107 = new Step107(this, timer);
            step108 = new Step108(this, timer);
            step109 = new Step109(this, timer);
            step110 = new Step110(this, timer);
            step111 = new Step111(this, timer);
            step112 = new Step112(this, timer);
        }

        /// <summary>
        /// リソースのロード
        /// 基本的に全てメモリ上にあげる
        /// </summary>
        private void OnLoad()
        {
            UnmanagedResourceManager.Instance.VideoMemory.LimitSize = 512 * 1024 * 1024;

            this.progress = 0;

            ++this.progress;

            // カーソル消すでー
            m_gSys.Mouse.Hide();

            rand = new Rand();	// ランダムの生成
            rand.Randomize();
            st = SinTable.Instance;	// sinテーブルの取得

            font = new Font();	// フォントの生成

            dizzyTextDraw = new DizzyTextDraw();
            // ランダム文字画面のためのフォント
            fontLoader = new FontLoader();
            ++this.progress;
            fontLoader.LoadDefFile("img/demo/demo_font.txt");
            dizzyTextDraw.FontRepository.SetLoader(fontLoader, 0);
            dizzyTextDraw.SetSpeed(2);
            dizzyTextDraw.EnableHankana = (false);
            ++this.progress;

            // HEX
            TextureLoader tl2 = new TextureLoader();
            tl2.IsDefRelativePath = false;
            tl2.LoadDefFile("img/demo/hex_img.txt");
            ++this.progress;
            hexPropagate = new HexPropagate();
            hexPropagate.SetHexSize(15, 15);
            hexPropagate.SetTextureLoader(tl2, 3);
            ++this.progress;

            textureLoaderBGStd = new TextureLoader();
            textureLoaderBGStd.LoadDefFile("img/demo/bg2/bg.lst");
            elementNumBGStd = YanesdkUtil.GetElementNum("img/demo/bg2/bg.lst");
            ++this.progress;

            ITexture tex = YamalibConst.CreateTexture();
            //		tex.load(DEMO__FLASH_TEXT_PNG);

            flashInText.FontRepository.SetLoader(m_gSys.CommonFontLoader, 1);
            flashInText.FontRepository.Max = 150;
            ++this.progress;

            //m_gSys.CommonFontLoader
            ++this.progress;

            // フラッシュインテキストクラスの設定
            // 白テクスチャの設定
            flashInText.WhileTextureBG = textureLoaderBGStd.GetTexture(0);
            flashInText.WhiteTexture = (tex);
            flashInText.ShowSpeed = (14);
            flashInText.AddText("声明を荷電粒子にのせて加速を試行する");
            ++this.progress;
            flashInText.AddText("例えば、それが光速を超克するならば");
            ++this.progress;
            flashInText.AddText("声明は過去と未来にも伝播しえる");
            ++this.progress;
            flashInText.AddText("しかし荷電粒子は、光速近傍でその加速を取り止める");
            ++this.progress;
            flashInText.AddText("声明としての荷電粒子は過去と未来において意味を存続し得ない");
            ++this.progress;
            flashInText.AddText("今、此処にいる声明性の荷電粒子は");
            ++this.progress;
            flashInText.AddText("その意義を存続したまま、時空を超越することに懐疑的である");
            ++this.progress;
            flashInText.AddText("自身の疑念にとらわれた荷電粒子は物理的制縛と抗弁する");
            ++this.progress;
            flashInText.AddText("しかし、荷電粒子が本当にそう希求するならば光速度を");
            ++this.progress;
            flashInText.AddText("超えることは容易なのだ");
            flashInText.Update();
            ++this.progress;

            font.Load("./fonts/LoveLetter.ttf", 40);
            moji = new ITexture[3];
            ++this.progress;
            for (int i = 0; i < moji.Length; i++)
            {
                moji[i] = YamalibConst.CreateTexture();
            }
            ++this.progress;

            // 装飾時計
            clock = new DecorativeColck();
            ++this.progress;

            t_toplogo = YamalibConst.CreateTexture(IMG__DEMO__LOGO1_PNG);
            t_bg = YamalibConst.CreateTexture(IMG__DEMO__BACK_JPG);
            t_title = YamalibConst.CreateTexture(IMG__DEMO__TITLE_PNG);
            t_k = YamalibConst.CreateTexture();
            t_2 = YamalibConst.CreateTexture();
            t_c = YamalibConst.CreateTexture();
            t_noise = YamalibConst.CreateTexture(IMG__DEMO__NOISE_PNG);
            t_ring = YamalibConst.CreateTexture(IMG__DEMO__RING_PNG);
            t_ring2 = YamalibConst.CreateTexture(IMG__DEMO__WA_PNG);
            t_titlememo = YamalibConst.CreateTexture(IMG__DEMO__TITLE_MEMO_PNG);
            t_flare = YamalibConst.CreateTexture(IMG__DEMO__FLERE_PNG);
            t_horizon = YamalibConst.CreateTexture(IMG__DEMO__HORIZON_PNG);
            t_pole = YamalibConst.CreateTexture(IMG__DEMO__POLE_PNG);
            t_fader = YamalibConst.CreateTexture(IMG__DEMO__FADER_PNG);
            t_roleText = YamalibConst.CreateTexture(IMG__DEMO__ROLE_TEXT_PNG);
            t_faice = YamalibConst.CreateTexture(IMG__DEMO__ASA_F_PNG);
            t_ikiru = YamalibConst.CreateTexture(IMG__DEMO__NANNO_PNG);
            t_bg1 = YamalibConst.CreateTexture(IMG__DEMO__BG1_JPG);
            t_bgEx = YamalibConst.CreateTexture(IMG__DEMO__SCENE01_JPG);
            t_aliceSt = YamalibConst.CreateTexture(IMG__DEMO__ALICE_ST_PNG);
            t_midoSt = YamalibConst.CreateTexture(IMG__DEMO__MIDO_ST_PNG);
            t_halftone = YamalibConst.CreateTexture(IMG__DEMO__HALF_PNG);

            t_aliceUp = YamalibConst.CreateTexture(IMG__DEMO__ALICE_UP_PNG);
            t_bgExZ = YamalibConst.CreateTexture(IMG__DEMO__SCENE01Z_JPG);
            t_tomiSt = YamalibConst.CreateTexture(IMG__DEMO__TOMI_ST_PNG);
            t_tomiShade = YamalibConst.CreateTexture(IMG__DEMO__TOMI_SHADE_PNG);
            t_aliceEye = YamalibConst.CreateTexture(IMG__DEMO__ALICE_EYE_PNG);
            t_unLight = YamalibConst.CreateTexture(IMG__DEMO__LIGHT_PNG);
            ++this.progress;

            // テキスト
            ++this.progress;
            t_Text = new ITexture[7];
            string[] textImgFilename = new string[]{
                IMG__DEMO__TEXT1_PNG,
                IMG__DEMO__TEXT2_PNG,
                IMG__DEMO__TEXT3_PNG,
                IMG__DEMO__TEXT4_PNG,
                IMG__DEMO__TEXT5_PNG,
                IMG__DEMO__TEXT6_PNG,
                IMG__DEMO__TEXT7_PNG
            };
            for (int i = 0; i < t_Text.Length; ++i)
            {
                t_Text[i] = YamalibConst.CreateTexture(textImgFilename[i]);
            }

            // -------------------------code
            {
                ++this.progress;
                string[] codeImgFilename = new string[]{
                IMG__DEMO__CODE1_PNG,
                IMG__DEMO__CODE2_PNG,
                IMG__DEMO__CODE3_PNG,
                IMG__DEMO__CODE4_PNG,
                IMG__DEMO__CODE5_PNG
            };
                t_Code = new ITexture[5];
                for (int i = 0; i < t_Code.Length; i++)
                {
                    t_Code[i] = YamalibConst.CreateTexture(codeImgFilename[i]);
                }


                ++this.progress;
                t_CodeZ = new ITexture[5];
                string[] codeZImgFilename = new string[]{
                IMG__DEMO__CODE_A_PNG,
                IMG__DEMO__CODE_B_PNG,
                IMG__DEMO__CODE_C_PNG,
                IMG__DEMO__CODE_D_PNG,
                IMG__DEMO__CODE_E_PNG
            };
                for (int i = 0; i < t_CodeZ.Length; i++)
                {
                    t_CodeZ[i] = YamalibConst.CreateTexture(codeZImgFilename[i]);
                }

                ++this.progress;
                t_aliceCode = YamalibConst.CreateTexture(IMG__DEMO__ALICE_CODE_PNG);

                ++this.progress;
                t_kyo = YamalibConst.CreateTexture(IMG__DEMO__KYO_PNG);
            }
            // ------------------char intoro
            {
                ++this.progress;
                t_face = new ITexture[4];
                string[] faceImgFilename = new string[]{
                IMG__DEMO__TATUWO_FACE_PNG,
                IMG__DEMO__TOMI_FACE_PNG,
                IMG__DEMO__ANZAI_FACE_PNG,
                IMG__DEMO__RUBI_FACE_PNG
              };
                for (int i = 0; i < t_face.Length; i++)
                {
                    t_face[i] = YamalibConst.CreateTexture(faceImgFilename[i]);
                }

                t_intro = new ITexture[4];
                string[] introImgFilename = new string[]{
                IMG__DEMO__TATUWO_INTRO_PNG,
                IMG__DEMO__TOMI_INTRO_PNG,
                IMG__DEMO__ANZAI_INTRO_PNG,
                IMG__DEMO__RUBI_INTRO_PNG
            };
                for (int i = 0; i < t_intro.Length; i++)
                {
                    t_intro[i] = YamalibConst.CreateTexture(introImgFilename[i]);
                }

                ++this.progress;
                texturalTextDraw = new TexutralTextDraw();
                texturalTextDraw.Texture = (t_intro[0]);
                texturalTextDraw.LineHeight = (24);
                texturalTextDraw.SetStep(22);

                textureLoaderBG = new TextureLoader();
                //textureLoaderBG.setCacheSize(-1);	// 無限キャッシュ
                textureLoaderBG.LoadDefFile("img/demo/bg/list.lst");
                elementNumBG = YanesdkUtil.GetElementNum("img/demo/bg/list.lst");
                ++this.progress;

                ++this.progress;
            }
            // --------------------------flash
            {
                t_bgFullNoise = YamalibConst.CreateTexture("img/demo/bg_noise.png");

                ++this.progress;
                t_shadows = new ITexture[3];
                string[] shadowsFilename = new string[]{
                IMG__DEMO__MIDO_SHADOW_PNG,
                IMG__DEMO__YUIRI_SHADOW_PNG,
                IMG__DEMO__ALICE_SHADOW_PNG
            };
                for (int i = 0; i < t_shadows.Length; i++)
                {
                    t_shadows[i] = YamalibConst.CreateTexture(shadowsFilename[i]);
                }

                ++this.progress;
                ++this.progress;
            }

            // ---------------------------- KYOJINTACHI
            {
                headliner = new SequentialDrawAlpha();
                headliner.SetXY(320, 240);
                headliner.SetMoveXY(30, 50);
                headliner.Interval = (5);
                headliner.StartRate = (4.0f);
                headliner.SetEffectingFrame(30);
                ++this.progress;

                // 画像追加
                FilenamelistReader reader = new FilenamelistReader();
                YanesdkResult result = reader.LoadDefFile("img/demo/kyojintachi.lst", 1);
                if (result == YanesdkResult.NoError)
                {
                    Dictionary<int, FilenamelistReader.Info>.KeyCollection
                        keys = reader.Data.Keys;
                    foreach (int key in keys)
                    {
                        headliner.AddTexture(YamalibConst.CreateTexture(reader.Data[key].name));
                    }

                }

                t_Kyojintachi = YamalibConst.CreateTexture(IMG__DEMO__KYOJINTACHI_PNG);
                ++this.progress;
            }

            ++this.progress;
            // ---------------------------- K2C
            {
                headlineK2C = new SlideInHeadlinear();
                headlineK2C.SetXY(70, 150);
                headlineK2C.SetMoveXY(0, 60);
                headlineK2C.Interval = (5);
                headlineK2C.DisposeStep = (25);
                headlineK2C.SetFadeOut(true);
                ++this.progress;

                FilenamelistReader reader = new FilenamelistReader();
                YanesdkResult result = reader.LoadDefFile("img/demo/logo/k2c.lst", 1);
                if (result == YanesdkResult.NoError)
                {
                    Dictionary<int, FilenamelistReader.Info>.KeyCollection
                        keys = reader.Data.Keys;
                    foreach (int key in keys)
                    {
                        headlineK2C.AddTexture(YamalibConst.CreateTexture(reader.Data[key].name));
                    }

                }

                ++this.progress;
                t_K2Cex = YamalibConst.CreateTexture(IMG__DEMO__K2C_EX_PNG);

                ++this.progress;
            }

            // ----------------------------- end staff
            {
                //			t_endBg = YamalibConst.CreateTexture();
                //			t_endBg.load("img/demo/end.jpg");
                t_endStaff = YamalibConst.CreateTexture(IMG__DEMO__ENDSTAFF_PNG);
                alphaCounter = new InteriorCounter(0, 200, 120);

                ++this.progress;

                // ラインノイズ
                textureLineNoise = new TextureLineNoise();
                textureLineNoise.SetXY(300, -200);
                textureLineNoise.RandWidth = (10);
                textureLineNoise.Texture = (t_aliceCode);
                ++this.progress;

                moveView = new MoveView();	// 背景ぶれ描画クラス
                moveView.SetTextureLoader(textureLoaderBGStd, 0);

                ++this.progress;
            }
            // bgm
            bgm = new Sound();
            bgm.Load("snd\\song\\bgm.ogg", -1);
            bgm.Volume = m_gSys.OptionInfo.BGMVolume / 100.0f;

            timer = new FixTimer();	// タイマの生成

            ++this.progress;

            nextStep();
        }

        /// <summary>
        /// 次のステップへ
        /// </summary>
        private void nextStep()
        {
            step_start = movecounter;
            step_counter = 0.0f;
            step_start_time = timer.Time;

            switch (step)
            {
                case -2:
                    step = -1;
                    break;

                case -1:
                    step = 0;
                    break;

                case 0:
                    step = 1;
                    break;

                case 1:
                    sizex = (int)t_bgEx.Width;
                    sizey = (int)t_bgEx.Height;
                    srcrect.SetRect(0, 0, sizex, sizey);
                    m_gSys.Screen.SetColor(128, 128, 128);
                    step = 2;
                    break;

                case 2:
                    step = 3;
                    sizex = (int)t_titlememo.Width;
                    sizey = (int)t_titlememo.Height;
                    srcrect.SetRect(0, 0, sizex, 0);
                    break;

                case 3:
                    sizex = (int)t_titlememo.Width;
                    sizey = (int)t_titlememo.Height;
                    srcrect.SetRect(0, 0, sizex, sizey);
                    step = 4;
                    break;

                case 4:
                    step = 5;
                    screenFrame.SetOpenManual(true);
                    // 開閉速度, 停止時間0
                    screenFrame.SetCloseOpenSpeed(8, 0);
                    break;
                case 5:
                    step = 6;
                    break;

                case 6:
                    step = 7;
                    break;

                case 7:
                    for (int i = 0; i < 60; ++i)
                    {
                        clock.OnMove(m_gSys.Screen);
                    }
                    step = 8;
                    break;

                case 8:
                    sizex = (int)t_bgEx.Width;
                    sizey = (int)t_bgEx.Height;
                    srcrect.SetRect(0, 0, sizex, sizey);
                    step = 9;
                    break;
                case 9:
                    step = 10;
                    break;

                case 10:
                    step = 11;
                    break;

                case 11:
                    step = 12;
                    break;

                case 12:
                    step = 13;
                    break;

                case 13:
                    step = 14;
                    break;

                case 14:
                    step = 15;
                    break;

                case 15:
                    step = 16;
                    break;

                case 16:
                    step = 17;
                    break;
                default:
                    Debug.Assert(false);
                    break;
            }
            Console.WriteLine("STEP:" + step);
            newstep = true;
        }


        /// <summary>
        /// ステップ経過フレーム数から経過時間
        /// </summary>
        /// <returns></returns>
        private float stepFlameToSec()
        {
            return step_counter / 60.0f;
        }


        #endregion


        #region 各ステップでの処理

        /// <summary>
        /// シーンのインターフェース
        /// </summary>
        internal abstract class IScene : IDisposable
        {
            protected readonly Rand rand;
            protected readonly SinTable sin;
            protected readonly FixTimer timer;

            public IScene(FixTimer timer)
            {
                rand = new Rand();
                rand.Randomize();
                sin = SinTable.Instance;
                this.timer = timer;
            }

            /// <summary>
            /// 初期化処理
            /// </summary>
            public abstract void OnInit();

            /// <summary>
            /// 描画処理
            /// </summary>
            /// <param name="screen"></param>
            public abstract void OnPaint(IScreen screen);

            /// <summary>
            /// 終了したか
            /// </summary>
            public abstract bool IsFinish { get;}

            #region IDisposable メンバ

            public virtual void Dispose()
            {
            }

            #endregion
        }

        private class LoaderScene : IScene
        {
            #region 定数値

            private static readonly int[][] m_checkPos = new int[][]{
		    new int[]{1,256,236},
		    new int[]{78,259,269},
		    new int[]{92,259,299},
		    new int[]{95,260,328},
		    new int[]{99,262,354}
            };

            private static readonly string[] m_loadCheckFilename = new string[]{
		    "img/load/c1.png",
		    "img/load/c2.png",
		    "img/load/c3.png",
		    "img/load/c4.png",
		    "img/load/c5.png"
	        };

            private static readonly int[][] pos = new int[][]{
				    new int[]{190,229},
				    new int[]{148,230},
				    new int[]{112,228},
            };


            #endregion

            #region フィールドメンバ

            private ITexture m_loadbg;
            private ITexture[] m_loadCheck = new ITexture[m_loadCheckFilename.Length];
            private readonly List<List<ITexture>> m_number = new List<List<ITexture>>();
            private readonly List<ITexture> m_numbers1 = new List<ITexture>();
            private readonly List<ITexture> m_numbers2 = new List<ITexture>();
            private readonly List<ITexture> m_numbers3 = new List<ITexture>();

            #endregion

            public LoaderScene(DemoScene scene, FixTimer timer)
                : base(timer)
            {
            }

            /// <summary>
            /// 初期化処理
            /// </summary>
            public override void OnInit()
            {
                this.m_loadbg = YamalibConst.CreateTexture("img/load/loadbg.png");

                for (int i = 0; i < m_loadCheck.Length; ++i)
                {
                    m_loadCheck[i] = YamalibConst.CreateTexture(m_loadCheckFilename[i]);
                }

                initNumbers("img/load/num1/num.lst", this.m_numbers1);
                initNumbers("img/load/num2/num.lst", this.m_numbers2);
                initNumbers("img/load/num3/num.lst", this.m_numbers3);

                m_number.Add(this.m_numbers1);
                m_number.Add(this.m_numbers2);
                m_number.Add(this.m_numbers3);
            }

            /// <summary>
            /// 描画処理
            /// </summary>
            /// <param name="screen"></param>
            public override void OnPaint(IScreen screen)
            {
                screen.Blt(m_loadbg, 0, 0);
                int prog = getProgress();
                for (int i = 0; i < m_loadCheck.Length; ++i)
                {
                    if (m_checkPos[i][0] <= prog)
                    {
                        screen.Blt(m_loadCheck[i], m_checkPos[i][1], m_checkPos[i][2]);
                    }
                }

                char[] num = prog.ToString().ToCharArray();
                List<int> index = new List<int>();
                foreach (char c in num)
                {
                    index.Add(Convert.ToInt32(c.ToString()));
                }


                screen.SetColor(255, 255, 255);
                for (int j = 0, i = index.Count - 1; i >= 0; --i, ++j)
                {
                    screen.Blt(m_number[j][index[i]], pos[j][0], pos[j][1]);
                }
            }

            public override bool IsFinish
            {
                get { return nowValue > 100; }
            }

            #region 非公開メンバ

            private RootCounterS valueCount = new RootCounterS(0, 10, 1);
            private int nowValue = 0;

            private int getProgress()
            {
                ++valueCount;
                if (valueCount.IsEnd)
                {
                    ++nowValue;
                    valueCount.Set(0, rand.GetRand(5), 1);
                }
                if (100 < nowValue)
                {
                    return 100;
                }
                return nowValue;
            }


            /// 番号テクスチャのロード
            private static void initNumbers(string filename, List<ITexture> numbers)
            {
                numbers.Clear();
                FilenamelistReader reader = new FilenamelistReader();
                YanesdkResult result = reader.LoadDefFile(filename, 1);
                if (result == YanesdkResult.NoError)
                {
                    Dictionary<int, FilenamelistReader.Info>.KeyCollection
                        keys = reader.Data.Keys;
                    foreach (int key in keys)
                    {
                        numbers.Add(YamalibConst.CreateTexture(reader.Data[key].name));
                    }
                }
            }


            #endregion

        }



        /// <summary>
        /// イントロ部分
        /// </summary>
        internal class StepS01 : IScene
        {
            #region 定数値

            private const uint LC_STEP_TIME = 10000;
            private const uint LC_IN_TIME = 6000;

            #endregion

            #region フィールドメンバ

            private float alpha = 0.0f;
            private readonly DemoScene scene;

            #endregion

            /// <summary>
            /// コンストラクタ
            /// </summary>
            public StepS01(DemoScene scene, FixTimer timer)
                : base(timer)
            {
                this.scene = scene;
            }

            #region IScene メンバ

            public override void OnInit()
            {
            }

            public override void OnPaint(IScreen screen)
            {
                screen.SetClearColor(128, 128, 128, 255);

                // noise
                screen.SetColor(128, 128, 255, 255);
                screen.BlendSrcAlpha();
                screen.Blt(scene.t_noise, -scene.rand.GetRand(370), -scene.rand.GetRand(250));

                if (timer.Time > LC_IN_TIME)
                {
                    if (alpha < 255)
                    {
                        alpha += 0.5f;
                    }
                    // タイトル
                    screen.SetColor(255, 255, 255, (int)alpha);
                    screen.Blt(scene.t_toplogo, 0, 0);
                }

                if (timer.Time > LC_STEP_TIME)
                {
                    scene.nextStep();
                }
            }

            public override bool IsFinish
            {
                get { return timer.Time > LC_STEP_TIME; }
            }

            #endregion

            #region IDisposable メンバ

            public override void Dispose()
            {
            }

            #endregion
        }

        /// <summary>
        /// タイトル "panicky style"
        /// </summary>
        internal class Step001 : IScene
        {
            #region フィールドメンバ

            private readonly DemoScene scene;

            #endregion

            /// <summary>
            /// コンストラクタ
            /// </summary>
            public Step001(DemoScene scene, FixTimer timer)
                : base(timer)
            {
                this.scene = scene;
            }

            #region IScene メンバ

            /// <summary>
            /// 初期化処理
            /// </summary>
            public override void OnInit()
            {
            }

            /// <summary>
            /// 描画処理
            /// </summary>
            /// <param name="screen"></param>
            public override void OnPaint(IScreen screen)
            {
                // move view
                scene.moveView.OnDraw(screen);
                scene.moveView.RandX = (30);
                scene.moveView.AngleSpeed = (30);
                scene.moveView.Amplitude = (30);

                // noise
                screen.SetColor(128, 128, 255, 255);
                screen.BlendSrcAlpha();
                screen.Blt(scene.t_noise, -rand.GetRand(370), -rand.GetRand(250));

                // タイトル
                screen.SetColor(255, 255, 255, scene.addfade);
                screen.Blt(scene.t_toplogo, 0, 0);

                if (scene.addfade < 255 && scene.stepFlameToSec() < 3.0)
                {
                    scene.addfade += 10;
                    if (scene.addfade > 200 && !scene.replay)
                    {
                        scene.addfade = 80;
                        scene.replay = true;
                    }
                    if (scene.addfade > 255)
                    {
                        scene.addfade = 255;
                    }
                }

                // スクリーンフレームの描画
                scene.screenFrame.OnPaint(screen);

                if (scene.stepFlameToSec() > 3.0)
                {
                    scene.addfade -= 5;
                    if (scene.addfade <= 0)
                    {
                        scene.addfade = 0;
                        scene.movecounter = 0;
                        scene.nextStep();
                    }
                }
            }

            public override bool IsFinish
            {
                get { return scene.addfade <= 0; }
            }

            #endregion

            #region IDisposable メンバ

            public override void Dispose()
            {
            }

            #endregion
        }

        /// <summary>
        /// タイトルイン（フェード＋スライドイン）
        /// </summary>
        internal class Step002 : IScene
        {
            #region 定数値

            private const float LC_SWING_TIME = 700.0f;
            private const int LC_STEP_TIME = 1200;

            #endregion

            #region フィールドメンバ

            private float move = 0.0f;
            private readonly DemoScene scene;

            #endregion

            /// <summary>
            /// コンストラクタ
            /// </summary>
            public Step002(DemoScene scene, FixTimer timer)
                : base(timer)
            {
                this.scene = scene;
            }

            #region IScene メンバ

            public override void OnInit()
            {
            }

            /// <summary>
            /// 描画処理
            /// </summary>
            /// <param name="screen"></param>
            public override void OnPaint(IScreen screen)
            {
                if (scene.newstep)
                {
                    move = 0.0f;
                }

                int baseTime = timer.Time - scene.step_start_time;
                if (baseTime > LC_SWING_TIME)
                {
                    baseTime = (int)LC_SWING_TIME;
                    move += 0.2f;
                }
                else
                {
                    scene.tx = 200 + sin.Sin((int)(baseTime / LC_SWING_TIME * 128), 110);
                }
                // bg
                screen.Blt(scene.t_bg, -100, -250);

                // move view
                scene.moveView.OnDraw(screen);

                screen.SetColor(255, 255, 255, (int)((baseTime / LC_SWING_TIME) * 255));
                screen.BlendSrcAlpha();
                screen.Blt(scene.t_title, (int)move + scene.tx, 250);

                // noise
                screen.SetColor(128, 128, 255, 255);
                screen.BlendSrcAlpha();
                screen.Blt(scene.t_noise, -rand.GetRand(370), -rand.GetRand(250));

                // スクリーンフレームの描画
                scene.screenFrame.OnPaint(screen);

                if (timer.Time - scene.step_start_time > LC_STEP_TIME)
                {
                    scene.tx += (int)move;
                    scene.nextStep();
                }
            }

            public override bool IsFinish
            {
                get { return timer.Time - scene.step_start_time > LC_STEP_TIME; }
            }

            #endregion

            #region IDisposable メンバ

            public override void Dispose()
            {
            }

            #endregion
        }

        /// <summary>
        /// タイトルアウト
        /// </summary>
        internal class Step003 : IScene
        {
            #region 定数値

            private const int LC_MEMO_POSY = 300;
            private const uint LC_STEP_TIME = 2800;

            #endregion

            #region フィールドメンバ

            private float move = 0.0f;
            private readonly DemoScene scene;

            #endregion

            /// <summary>
            /// コンストラクタ
            /// </summary>
            public Step003(DemoScene scene, FixTimer timer)
                : base(timer)
            {
                this.scene = scene;
            }

            #region IScene メンバ

            public override void OnInit()
            {
            }

            /// <summary>
            /// 描画処理
            /// </summary>
            /// <param name="screen"></param>
            public override void OnPaint(IScreen screen)
            {
                // bg
                screen.Blt(scene.t_bg, -100, -250);

                // move view
                scene.moveView.OnDraw(screen);

                // noise
                screen.SetColor(128, 128, 255, 255);
                screen.BlendSrcAlpha();
                screen.Blt(scene.t_noise, -rand.GetRand(370), -rand.GetRand(250));

                screen.SetColor(255, 255, 255, 255);
                screen.BlendSrcAlpha();
                screen.Blt(scene.t_title, (int)move + scene.tx, 250);
                move += 0.1f;

                scene.srcrect.Bottom = scene.sizey * (timer.Time - scene.step_start_time) / 1248;
                screen.Blt(scene.t_titlememo, 310, LC_MEMO_POSY, scene.srcrect);

                // スクリーンフレームの描画
                scene.screenFrame.OnPaint(screen);

                if (timer.Time - scene.step_start_time > LC_STEP_TIME)
                {
                    scene.tx += (int)move;
                    scene.nextStep();
                }
            }

            public override bool IsFinish
            {
                get { return timer.Time - scene.step_start_time > LC_STEP_TIME; }
            }

            #endregion

            #region IDisposable メンバ

            public override void Dispose()
            {
            }

            #endregion
        }

        /// <summary>
        /// タイトルアウト
        /// </summary>
        internal class Step004 : IScene
        {
            #region 定数値

            private const int LC_MEMO_POSY = 300;
            private const int LC_STEP_TIME = 1200;
            private const int LC_CUTIN_TIME = 500;

            #endregion

            #region フィールドメンバ

            private int baseTime;
            private readonly DemoScene scene;

            #endregion

            /// <summary>
            /// コンストラクタ
            /// </summary>
            public Step004(DemoScene scene, FixTimer timer)
                : base(timer)
            {
                this.scene = scene;
                baseTime = timer.Time - scene.step_start_time;
            }

            #region IScene メンバ

            public override void OnInit()
            {
            }

            /// <summary>
            /// 描画処理
            /// </summary>
            /// <param name="screen"></param>
            public override void OnPaint(IScreen screen)
            {
                baseTime = timer.Time - scene.step_start_time;
                // bg
                screen.Blt(scene.t_bg, -100, -250);

                // move view
                scene.moveView.OnDraw(screen);

                // noise
                screen.SetColor(128, 128, 255, 255);
                screen.BlendSrcAlpha();
                screen.Blt(scene.t_noise, -rand.GetRand(370), -rand.GetRand(250));

                // タイトルのフェード
                if (baseTime < LC_CUTIN_TIME)
                {
                    screen.SetColor(255, 255, 255, (255 - (255 * baseTime / LC_CUTIN_TIME)));
                    screen.BlendSrcAlpha();
                    screen.Blt(scene.t_title, (int)scene.move + scene.tx, 250);
                }

                // メモのカットアウト
                if (baseTime < LC_CUTIN_TIME)
                {
                    screen.SetColor(255, 255, 255, 255);
                    scene.srcrect.Bottom = scene.sizey - (scene.sizey * baseTime / LC_CUTIN_TIME);
                    screen.Blt(scene.t_titlememo, 310, LC_MEMO_POSY, scene.srcrect);
                }

                // スクリーンフレームの描画
                scene.screenFrame.OnPaint(screen);

                if (timer.Time - scene.step_start_time > LC_STEP_TIME)
                {
                    scene.nextStep();
                }
            }

            public override bool IsFinish
            {
                get { return timer.Time - scene.step_start_time > LC_STEP_TIME; }
            }

            #endregion

            #region IDisposable メンバ

            public override void Dispose()
            {
            }

            #endregion
        }

        /// <summary>
        /// プロローグ：開閉
        /// </summary>
        internal class Step005 : IScene
        {
            #region 定数値

            private const int LC_MEMO_POSY = 300;
            private const uint LC_STEP_TIME = 1500;
            private const uint LC_CUTIN_TIME = 500;

            #endregion

            #region フィールドメンバ

            private int waitTime = 0;
            private float rate = 3.0f;
            private bool open = false;
            private readonly DemoScene scene;

            #endregion

            /// <summary>
            /// コンストラクタ
            /// </summary>
            public Step005(DemoScene scene, FixTimer timer)
                : base(timer)
            {
                this.scene = scene;
            }

            #region IScene メンバ

            public override void OnInit()
            {
            }

            /// <summary>
            /// 描画処理
            /// </summary>
            /// <param name="screen"></param>
            public override void OnPaint(IScreen screen)
            {
                int baseTime = timer.Time - scene.step_start_time;

                if (scene.newstep)
                {
                    waitTime = 0;
                    rate = 3.0f;
                    open = false;
                }

                if (!scene.screenFrame.IsWait)
                {
                    if (!open)
                    {
                        // bg
                        screen.Blt(scene.t_bg, -100, -250);

                        // move view
                        scene.moveView.OnDraw(screen);

                        // noise
                        screen.SetColor(128, 128, 255, 255);
                        screen.BlendSrcAlpha();
                        screen.Blt(scene.t_noise, -rand.GetRand(370), -rand.GetRand(250));

                        scene.screenFrame.DrawCloseOpen(screen);
                        if (scene.screenFrame.IsWait)
                        {
                            waitTime = baseTime;
                        }
                    }
                }
                else
                {
                    int sx = screen.Width;
                    int sy = screen.Height;
                    int ty = (int)scene.t_horizon.Height;
                    scene.screenFrame.DrawCloseOpen(screen);

                    screen.Blend = true;
                    screen.BlendSrcAlpha();
                    screen.SetColor(255, 255, 255, 255);

                    screen.Blt(scene.t_horizon, 0, (sy / 2) - (ty / 2));
                    screen.BltRotate(scene.t_flare, sx / 2, sy / 2, 0, rate, 4);
                    rate -= 0.12f;

                    if (rate < 0.0f)
                    {
                        scene.screenFrame.ScreenOpen();
                        scene.nextStep();
                    }
                }
            }

            public override bool IsFinish
            {
                get { return timer.Time - scene.step_start_time > LC_STEP_TIME; }
            }

            #endregion

            #region IDisposable メンバ

            public override void Dispose()
            {
            }

            #endregion
        }

        /// <summary>
        /// プロローグ：ロール
        /// </summary>
        internal class Step006 : IScene
        {
            #region 定数値

            private const int LC_STEP_TIME = 13250;

            #endregion

            #region フィールドメンバ

            private int rad1 = 0;
            private int rad2 = Y4dConst.C_RAD_MAX;
            private float top = 0.0f;
            private readonly Rect srcRc = new Rect();
            private readonly DemoScene scene;

            #endregion

            /// <summary>
            /// コンストラクタ
            /// </summary>
            public Step006(DemoScene scene, FixTimer timer)
                : base(timer)
            {
                this.scene = scene;
            }

            #region IScene メンバ

            public override void OnInit()
            {
            }

            /// <summary>
            /// 描画処理
            /// </summary>
            /// <param name="screen"></param>
            public override void OnPaint(IScreen screen)
            {
                int w = (int)scene.t_pole.Width;
                int h = (int)scene.t_pole.Height;

                // 回転リング描画
                screen.SetColor(255, 255, 255, 128);
                screen.BltRotate(scene.t_ring, 60, 100, rad1, 0.5f, 4);
                screen.BltRotate(scene.t_ring, 85, 320, rad2, 0.8f, 4);

                rad1++;
                rad2--;
                if (rad1 > Y4dConst.C_RAD_MAX)
                {
                    rad1 = 0;
                }
                if (rad2 < 0)
                {
                    rad2 = Y4dConst.C_RAD_MAX;
                }

                srcRc.Left = 0;
                srcRc.Right = w;
                srcRc.Top = (int)top;
                srcRc.Bottom = srcRc.Top + 480;
                top += 0.2f;

                // ダークレイヤー描画
                screen.SetColor(0, 0, 0, 162);
                screen.BlendSrcAlpha();
                screen.DrawPolygon(
                    0, 0,
                    300, 0,
                    300, 480,
                    0, 480);
                screen.SetColor(0, 0, 0, 255);
                screen.BlendSrcAlpha();
                screen.DrawPolygon(
                    600, 0,
                    640, 0,
                    640, 480,
                    600, 480);

                // 電柱描画		
                screen.SetColor(255, 255, 255, 100);
                screen.Blt(scene.t_pole, 300, 0, srcRc);

                // テキスト
                screen.SetColor(255, 255, 255, 196);
                screen.Blt(scene.t_roleText, 20, 0, srcRc);

                // noise
                screen.SetColor(255, 255, 255, 128);
                screen.Blt(scene.t_noise, -rand.GetRand(370), -rand.GetRand(250));

                // プログラム処理するのマンドクセ
                // フェーダー
                screen.SetColor(255, 255, 255, 255);
                screen.Blt(scene.t_fader, 0, 0);

                if (timer.Time - scene.step_start_time > LC_STEP_TIME)
                {
                    scene.nextStep();
                }
            }

            public override bool IsFinish
            {
                get { return timer.Time - scene.step_start_time > LC_STEP_TIME; }
            }

            #endregion

            #region IDisposable メンバ

            public override void Dispose()
            {
            }

            #endregion
        }

        /// <summary>
        /// 何のために生きるの？
        /// </summary>
        internal class Step101 : IScene
        {
            #region 定数値

            private const int LC_STEP_TIME = 13250;

            #endregion

            #region フィールドメンバ

            private float x1 = 0.0f;
            private float x2 = 0.0f;
            private int alpha = 0;
            private int waitCounter = 0;
            private int add = 3;

            private readonly DemoScene scene;

            #endregion

            /// <summary>
            /// コンストラクタ
            /// </summary>
            public Step101(DemoScene scene, FixTimer timer)
                : base(timer)
            {
                this.scene = scene;
            }

            #region IScene メンバ

            public override void OnInit()
            {
            }

            /// <summary>
            /// 描画処理
            /// </summary>
            /// <param name="screen"></param>
            public override void OnPaint(IScreen screen)
            {
                screen.SetColor(255, 255, 255, alpha);

                screen.Blt(scene.t_faice, 200 + (int)x1, 50);
                screen.Blt(scene.t_ikiru, 150 - (int)x2, 200);

                alpha += add;
                if (alpha == 255)
                {
                    add = 0;
                }
                // フェードアウトウェイト
                if (add == 0)
                {
                    ++waitCounter;
                    if (waitCounter == 128)
                    {
                        add = -3;
                    }
                }

                x1 += 0.3f;
                x2 += 0.3f;

                if (alpha == 0)
                {
                    scene.nextStep();
                }
            }

            public override bool IsFinish
            {
                get { return alpha == 0; }
            }

            #endregion

            #region IDisposable メンバ

            public override void Dispose()
            {
            }

            #endregion
        }

        /// <summary>
        /// dis
        /// </summary>
        internal class Step102 : IScene
        {
            #region 定数値

            private const uint LC_STEP_TIME = 20000;

            #endregion

            #region フィールドメンバ

            private float mx1 = 0.0f;
            private int mx2 = 0;
            private uint counter = 0;
            private int add = 20;
            private int rad = 0;
            private readonly DemoScene scene;

            #endregion

            /// <summary>
            /// コンストラクタ
            /// </summary>
            public Step102(DemoScene scene, FixTimer timer)
                : base(timer)
            {
                this.scene = scene;
            }

            #region IScene メンバ

            public override void OnInit()
            {
            }

            /// <summary>
            /// 描画処理
            /// </summary>
            /// <param name="screen"></param>
            public override void OnPaint(IScreen screen)
            {
                screen.SetColor(255, 255, 255, 255);
                screen.BltRotate(scene.t_bg1, 320, 240, rad, 1.0f, 4);
                screen.Blt(scene.t_aliceUp, (640 - mx2 - (int)mx1), 0);

                rad += 4;
                if (rad >= Y4dConst.C_RAD_MAX)
                {
                    rad = 0;
                }

                mx2 += add;
                mx1 += 1;

                if (counter++ == 40)
                {
                    add = 0;
                }

                if (timer.Time - scene.step_start_time > LC_STEP_TIME)
                {
                    scene.nextStep();
                }
            }

            public override bool IsFinish
            {
                get { return timer.Time - scene.step_start_time > LC_STEP_TIME; }
            }

            #endregion

            #region IDisposable メンバ

            public override void Dispose()
            {
            }

            #endregion
        }

        /// <summary>
        /// テスト
        /// </summary>
        internal class Step103 : IScene
        {
            #region 定数値

            private const int LC_STEP_TIME = 3100;

            #endregion

            #region フィールドメンバ

            private readonly DemoScene scene;
            private float rate = 0.5f;
            private uint count = 0;
            private int innerStep = 0;
            private int mx = 0;
            private int mxSt = -80;
            private int mySt = 0;
            private int mxSt2 = 0;
            private int mySt2 = 0;
            private float rateSt = 0.4f;
            private int mxBg = 0;
            private float mxCount = 0.0f;
            private int alpha = 0;

            #endregion

            /// <summary>
            /// コンストラクタ
            /// </summary>
            public Step103(DemoScene scene, FixTimer timer)
                : base(timer)
            {
                this.scene = scene;
            }

            #region IScene メンバ

            public override void OnInit()
            {
            }

            /// <summary>
            /// 描画処理
            /// </summary>
            /// <param name="screen"></param>
            public override void OnPaint(IScreen screen)
            {
                // 固定
                switch (innerStep)
                {
                    case 0:
                        if (mxSt < 0)
                        {
                            mxSt += 10;
                        }
                        else
                        {
                            mxCount += 0.5f;
                            if (mxCount >= 1.0f)
                            {
                                mxSt += 1;
                                mxCount -= 1.0f;
                            }
                        }
                        screen.SetColor(255, 255, 255, 255);
                        screen.BltRotate(scene.t_bgEx, 360, 240, 0, rate, 4);
                        screen.BltRotate(scene.t_midoSt, 320, 200, 0, 0.4f, 0);
                        // ありす中央入場
                        screen.Blt(scene.t_aliceSt, 150 - mxSt, 0);
                        break;

                    case 1:
                        // 左スライド
                        mx += 5;
                        mxSt += 15;
                        mxSt2 += 5;
                        screen.BltRotate(scene.t_bgEx, 360 - mx, 240, 0, rate, 4);
                        screen.BltRotate(scene.t_midoSt, 320 - mxSt2, 200, 0, 0.4f, 0);
                        screen.Blt(scene.t_aliceSt, 150 - mxSt, 0);
                        break;

                    case 2:
                        screen.BltRotate(scene.t_bgEx, 360 - mx, 240, 0, rate, 4);
                        screen.BltRotate(scene.t_midoSt, 320 - mxSt2, 200, 0, 0.4f, 0);
                        screen.Blt(scene.t_aliceSt, 150 - mxSt, 0);
                        break;

                    case 3:
                        // 拡大フェーズ
                        rate += 0.07f;
                        if (rate >= 1.3f)
                        {
                            innerStep++;
                        }
                        else
                        {
                            rateSt += 0.1f;
                            mxBg += 15;
                            mySt2 += 15;
                            mxSt2 += 15;
                            mySt += 50;
                        }
                        mxSt += 100;
                        screen.SetColor(255, 255, 255, 255);
                        screen.BltRotate(scene.t_bgExZ, 360, 240 - mxBg, 0, rate, 4);
                        screen.BltRotate(scene.t_midoSt, 320 - mxSt2, 200 - mySt2, 0, rateSt, 0);
                        // ありす中央退場
                        screen.BltRotate(scene.t_aliceSt, 150 - mxSt, 0 - mySt, 0, 1.0f + rateSt, 0);
                        break;

                    case 4:
                        // 拡大中
                        screen.SetColor(255, 255, 255, 255);
                        screen.BltRotate(scene.t_bgEx, 360, 240 - mxBg, 0, rate, 4);
                        screen.BltRotate(scene.t_midoSt, 320 - mxSt2, 200 - mySt2, 0, rateSt, 0);
                        break;
                    default:
                        Debug.Assert(false);
                        break;
                }

                screen.Blt(scene.t_halftone, 0, 0);

                if (innerStep == 4)
                {
                    // ダークレイヤー描画
                    screen.SetColor(255, 255, 255, alpha);
                    screen.BlendSrcAlpha();
                    screen.DrawPolygon(
                        0, 0,
                        640, 0,
                        640, 480,
                        0, 480);
                    if (alpha < 255)
                    {
                        alpha += 18;
                        if (alpha > 255)
                        {
                            alpha = 255;
                        }
                    }
                }

                count++;
                if (count == 50)
                {
                    innerStep++;
                }
                else if (count == 60)
                {
                    innerStep++;
                }
                else if (count == 150)
                {
                    innerStep++;
                }

                if (timer.Time - scene.step_start_time > LC_STEP_TIME)
                {
                    scene.nextStep();
                }

            }

            public override bool IsFinish
            {
                get { return timer.Time - scene.step_start_time > LC_STEP_TIME; }
            }

            #endregion

            #region IDisposable メンバ

            public override void Dispose()
            {
            }

            #endregion
        }

        /// <summary>
        /// とみえたん立ち
        /// </summary>
        internal class Step104 : IScene
        {
            #region 定数値

            private const int LC_STEP_TIME = 3100;

            #endregion

            #region フィールドメンバ

            private readonly DemoScene scene;
            private float alpha = 0.0f;
            private float myBg = 0.0f;
            private int count = 0;
            private float mxSt = 0.0f;

            #endregion

            /// <summary>
            /// コンストラクタ
            /// </summary>
            public Step104(DemoScene scene, FixTimer timer)
                : base(timer)
            {
                this.scene = scene;
            }

            #region IScene メンバ

            public override void OnInit()
            {
            }

            /// <summary>
            /// 描画処理
            /// </summary>
            /// <param name="screen"></param>
            public override void OnPaint(IScreen screen)
            {
                screen.SetColor(255, 255, 255, 255);
                screen.Blt(scene.t_aliceEye, 0, -250 + (int)myBg);
                screen.SetColor(255, 255, 255, 128);
                screen.Blt(scene.t_halftone, 0, 0);
                screen.SetColor(255, 255, 255, 128 + (int)alpha);
                screen.Blt(scene.t_tomiShade, 195 - (int)mxSt, 10);
                screen.SetColor(255, 255, 255, 255);
                screen.Blt(scene.t_tomiSt, 200, -30);

                count++;

                mxSt += 0.15f;

                alpha += 0.5f;
                if (count <= 5)
                {
                    myBg += 15.0f;
                }
                else
                {
                    myBg += 0.2f;
                }

                if (timer.Time - scene.step_start_time > LC_STEP_TIME)
                {
                    scene.nextStep();
                }
            }

            public override bool IsFinish
            {
                get { return timer.Time - scene.step_start_time > LC_STEP_TIME; }
            }

            #endregion

            #region IDisposable メンバ

            public override void Dispose()
            {
            }

            #endregion
        }

        /// <summary>
        /// FlashInText
        /// </summary>
        internal class Step105 : IScene
        {
            #region 定数値

            private const int LC_STEP_TIME = 6700;
            private const int LC_BG_COUNT = 7;

            #endregion

            #region フィールドメンバ

            private readonly DemoScene scene;
            private int counter = 0;
            private int bgIndex = 0;

            #endregion

            /// <summary>
            /// コンストラクタ
            /// </summary>
            public Step105(DemoScene scene, FixTimer timer)
                : base(timer)
            {
                this.scene = scene;
            }

            #region IScene メンバ

            public override void OnInit()
            {
            }

            /// <summary>
            /// 描画処理
            /// </summary>
            /// <param name="screen"></param>
            public override void OnPaint(IScreen screen)
            {
                screen.Blt(scene.textureLoaderBGStd.GetTexture(bgIndex), 0, 0);

                // 白塗りつぶし
                screen.SetColor(0, 0, 0, 255);

                // 上部非描画領域の区切り線描画
                screen.DrawPolygon(
                    0, 0,
                    640, 0,
                    640, 120,
                    0, 120);

                // 下部非描画領域の区切り線描画
                screen.DrawPolygon(
                    0, 360,
                    640, 360,
                    640, 480,
                    0, 480);

                // ダークレイヤー描画
                screen.SetColor(0, 0, 0, 80);
                screen.BlendSrcAlpha();
                screen.DrawPolygon(
                    0, 0,
                    640, 0,
                    640, 480,
                    0, 480);

                scene.flashInText.OnMove(screen);
                scene.flashInText.OnDraw(screen);

                counter++;

                if (0 == (counter % LC_BG_COUNT))
                {
                    bgIndex = rand.GetRand(scene.elementNumBGStd);
                }

                if (timer.Time - scene.step_start_time > LC_STEP_TIME)
                {
                    scene.nextStep();
                }
            }

            public override bool IsFinish
            {
                get { return timer.Time - scene.step_start_time > LC_STEP_TIME; }
            }

            #endregion

            #region IDisposable メンバ

            public override void Dispose()
            {
            }

            #endregion
        }

        /// <summary>
        /// キャラ紹介
        /// </summary>
        internal class Step106 : IScene
        {
            #region 定数値

            private const int LC_STEP_TIME = 6700;
            private const int LC_BG_COUNT = 7;

            #endregion

            #region フィールドメンバ

            private readonly DemoScene scene;
            //private int counter = 0;
            private float rate = 2.0f;
            private int dlayerCount = 0;
            private int stopCoounter = 15;
            private int bgNo = 10;
            private int index = 0;
            private int alpha = 255;
            private int count = 0;
            private Rect rc = new Rect();

            #endregion

            /// <summary>
            /// コンストラクタ
            /// </summary>
            public Step106(DemoScene scene, FixTimer timer)
                : base(timer)
            {
                this.scene = scene;
            }

            #region IScene メンバ

            public override void OnInit()
            {
            }

            /// <summary>
            /// 描画処理
            /// </summary>
            /// <param name="screen"></param>
            public override void OnPaint(IScreen screen)
            {
                // 有効描画領域(大きくとってマージン確保)
                int tx = 650 - (int)(640 * rate);
                int ty = 490 - (int)(480 * rate);

                if (rate <= 0.0f)
                {
                    stopCoounter--;
                    if (stopCoounter <= 0)
                    {
                        rate = 2.0f;
                        stopCoounter = 15;
                        ++bgNo;
                        ++index;
                        index %= scene.t_Text.Length;
                        alpha = 255;
                        count++;

                        if (count >= 7)
                        {
                            //nextStep();
                        }
                    }
                }
                else
                {
                    int px = (640 - (int)scene.t_Text[index].Width) / 2;
                    int py = (480 - (int)scene.t_Text[index].Height) / 2;
                    rc.SetRect(tx / 2, ty / 2, 640 - tx / 2, 480 - ty / 2);

                    screen.SetColor(255, 255, 255, 255);
                    if (rate < 1.0f)
                    {
                        screen.Blt(scene.textureLoaderBGStd.GetTexture(bgNo), tx / 2, ty / 2, rc);
                    }
                    else if (tx / 2 < 320)
                    {
                        screen.Blt(scene.textureLoaderBGStd.GetTexture(bgNo), 0, 0);
                    }
                    screen.BltRotate(scene.t_unLight, 320, 240, 0, rate, 4);

                    screen.SetColor(255, 255, 255, alpha);
                    screen.Blt(scene.t_Text[index], px, py);

                    // 適当なタイミングでダークレイヤー描画し明滅させる		
                    if (dlayerCount > 0)
                    {
                        // ダークレイヤー描画
                        screen.SetColor(0, 0, 0, 80);
                        screen.BlendSrcAlpha();
                        screen.DrawPolygon(
                            0, 0,
                            640, 0,
                            640, 480,
                            0, 480);
                        dlayerCount--;
                    }
                    else
                    {
                        if (rand.GetRand(10) == 0)
                        {
                            dlayerCount = 5;
                        }
                    }
                    rate -= 0.023f;
                    alpha -= 2;
                }

                screen.SetColor(255, 255, 255, 160);
                screen.Blt(scene.t_halftone, 0, 5 - rand.GetRand(10));

                if (timer.Time - scene.step_start_time > (11500))
                {
                    scene.nextStep();
                }
            }

            public override bool IsFinish
            {
                get { return timer.Time - scene.step_start_time > LC_STEP_TIME; }
            }

            #endregion

            #region IDisposable メンバ

            public override void Dispose()
            {
            }

            #endregion
        }

        /// <summary>
        /// code
        /// </summary>
        internal class Step107 : IScene
        {
            #region 定数値

            private const int LC_STEP_TIME = 13200;

            #endregion

            #region フィールドメンバ

            private readonly DemoScene scene;
            private int myBg = 0;
            private int index = 0;
            private int myBgZ = 0;
            private int indexZ = 0;
            private float mySt = -200.0f;

            #endregion

            /// <summary>
            /// コンストラクタ
            /// </summary>
            public Step107(DemoScene scene, FixTimer timer)
                : base(timer)
            {
                this.scene = scene;
            }

            #region IScene メンバ

            public override void OnInit()
            {
            }

            /// <summary>
            /// 描画処理
            /// </summary>
            /// <param name="screen"></param>
            public override void OnPaint(IScreen screen)
            {
                int px = (640 - (int)scene.t_kyo.Width) / 2;
                int py = (480 - (int)scene.t_kyo.Height) / 2;

                // 時計描画
                scene.clock.OnMove(screen);
                scene.clock.OnDraw(screen);

                screen.SetColor(255, 255, 255, 96);
                screen.Blt(scene.t_CodeZ[indexZ], 0, myBgZ);
                screen.Blt(scene.t_CodeZ[indexZ + 1], 0, 480 + myBgZ);

                // ありす
                screen.SetColor(255, 255, 255, 128);
                scene.textureLineNoise.SetXY(300, (int)mySt);
                scene.textureLineNoise.OnPaint(screen);

                screen.Blt(scene.t_kyo, px, py);

                screen.SetColor(255, 255, 255, 128);
                screen.Blt(scene.t_Code[index], 0, myBg);
                screen.Blt(scene.t_Code[index + 1], 0, 480 + myBg);

                mySt += 0.3f;

                myBg -= 2;
                if (myBg <= -480)
                {
                    myBg = 0;
                    index++;
                    index %= scene.t_Code.Length;
                }

                myBgZ -= 1;
                if (myBgZ <= -480)
                {
                    myBgZ = 0;
                    indexZ++;
                    index %= scene.t_CodeZ.Length;
                }

                // 終了タイミングの時間判定
                if (timer.Time - scene.step_start_time > LC_STEP_TIME)
                {
                    scene.nextStep();
                }
            }

            public override bool IsFinish
            {
                get { return timer.Time - scene.step_start_time > LC_STEP_TIME; }
            }

            #endregion

            #region IDisposable メンバ

            public override void Dispose()
            {
            }

            #endregion
        }

        /// <summary>
        /// キャラクターイントロダクション
        /// </summary>
        internal class Step108 : IScene
        {
            #region 定数値

            private static readonly int[] steps = new int[] { 31, 29, 35, 34 };
            private static readonly Rect rcTop = new Rect(0, 0, 640, 120);
            private static readonly Rect rcBottom = new Rect(0, 360, 640, 480);
            private const int LC_COLOR_D = 20;
            private const int frameSize = 4;

            #endregion

            #region フィールドメンバ

            private readonly DemoScene scene;
            private int resetCounter = 0;
            private int bgCount = 0;
            private Color4ub color = new Color4ub(255, 255, 255, 255);
            private float stX = 250.0f;
            private int iIndex = 0;
            private bool endFlg = false;

            #endregion

            /// <summary>
            /// コンストラクタ
            /// </summary>
            public Step108(DemoScene scene, FixTimer timer)
                : base(timer)
            {
                this.scene = scene;
            }

            #region IScene メンバ

            public override void OnInit()
            {
            }

            /// <summary>
            /// 描画処理
            /// </summary>
            /// <param name="screen"></param>
            public override void OnPaint(IScreen screen)
            {
                Color4ub colorOld = YanesdkUtil.GetNowScreenColor(screen);
                byte r, g, b;
                r = (byte)(rand.GetRand(LC_COLOR_D) - (LC_COLOR_D) / 2);
                g = (byte)(rand.GetRand(LC_COLOR_D) - (LC_COLOR_D) / 2);
                b = (byte)(rand.GetRand(LC_COLOR_D) - (LC_COLOR_D) / 2);

                if (color.R + r > 255)
                {
                    color.R = 255;
                }
                else if (color.R + r < 0)
                {
                    color.R = 0;
                }
                else
                {
                    color.R += r;
                }

                if (color.G + g > 255)
                {
                    color.G = 255;
                }
                else if (color.G + g < 0)
                {
                    color.G = 0;
                }
                else
                {
                    color.G += g;
                }

                if (color.B + b > 255)
                {
                    color.B = 255;
                }
                else if (color.B + b < 0)
                {
                    color.B = 0;
                }
                else
                {
                    color.B += b;
                }

                screen.SetColor(255, 255, 255, 200);

                // キャラクター描画
                stX += 0.2f;
                screen.Blt(scene.t_face[iIndex], (int)stX, 120);

                // テキスト描画

                // 描画終了したフレームアウトさせる
                if (scene.texturalTextDraw.IsFinish)
                {
                    int x, y;
                    scene.texturalTextDraw.GetXY(out x, out y);
                    scene.texturalTextDraw.SetXY(x, y - 10);

                    if (y < -100)
                    {
                        ++iIndex;
                        if (iIndex < 4)
                        {
                            scene.texturalTextDraw.Reset();
                            scene.texturalTextDraw.Texture = (scene.t_intro[iIndex]);
                            scene.texturalTextDraw.SetStep(steps[iIndex]);
                            stX = 250.0f;
                        }
                        else
                        {
                            scene.nextStep();
                            endFlg = true;
                        }
                    }
                }
                else
                {
                    scene.texturalTextDraw.SetXY(10, 130);
                }

                scene.texturalTextDraw.OnMove(screen);
                scene.texturalTextDraw.OnDraw(screen);

                // hex 描画
                screen.SetColor(color);
                scene.hexPropagate.OnPaint(screen);

                screen.SetColor(255, 255, 255, 255);

                // スクリーンフレームの描画
                ITexture t = scene.textureLoaderBG.GetTexture(bgCount);
                screen.Blt(t, (int)rcTop.Left, (int)rcTop.Top, rcTop);
                screen.Blt(t, (int)rcBottom.Left, (int)rcBottom.Top, rcBottom);
                // 白塗りつぶし
                screen.SetColor(255, 255, 255, 255);

                // 上部非描画領域の区切り線描画
                screen.DrawPolygon(
                    0, 120 - frameSize,
                    640, 120 - frameSize,
                    640, 120,
                    0, 120);

                // 下部非描画領域の区切り線描画
                screen.DrawPolygon(
                    0, 360,
                    640, 360,
                    640, 360 + frameSize,
                    0, 360 + frameSize);
                //		screenFrame.setFrameSize(3);
                //		screenFrame.OnDraw(screen);

                resetCounter++;

                if (resetCounter == 30)
                {
                    scene.hexPropagate.Clear(true);
                    resetCounter = 0;
                }

                bgCount++;
                if (bgCount >= scene.elementNumBG)
                {
                    bgCount = 0;
                }
            }

            public override bool IsFinish
            {
                get { return endFlg; }
            }

            #endregion

            #region IDisposable メンバ

            public override void Dispose()
            {
            }

            #endregion
        }

        /// <summary>
        /// 一瞬の変遷
        /// </summary>
        internal class Step109 : IScene
        {
            #region 定数値

            private const int frameSize = 3;

            #endregion

            #region フィールドメンバ

            private readonly DemoScene scene;
            //private int step = 0;
            private int counter = 0;
            private int charaIndex = 0;
            private int flashCounter = 0;

            #endregion

            /// <summary>
            /// コンストラクタ
            /// </summary>
            public Step109(DemoScene scene, FixTimer timer)
                : base(timer)
            {
                this.scene = scene;
            }

            #region IScene メンバ

            public override void OnInit()
            {
            }

            /// <summary>
            /// 描画処理
            /// </summary>
            /// <param name="screen"></param>
            public override void OnPaint(IScreen screen)
            {
                screen.SetColor(255, 255, 255);
                screen.Blt(scene.t_bgFullNoise, 0, 0);

                screen.Blt(scene.t_shadows[charaIndex], 100, 0);

                // 白塗りつぶし
                screen.SetColor(0, 0, 0);

                // 上部非描画領域の区切り線描画
                screen.DrawPolygon(
                    0, 80 - frameSize,
                    640, 80 - frameSize,
                    640, 80,
                    0, 80);

                // 下部非描画領域の区切り線描画
                screen.DrawPolygon(
                    0, 400,
                    640, 400,
                    640, 400 + frameSize,
                    0, 400 + frameSize);
                // ホワイトフラッシュ
                if (counter == 0 || counter == 1 || counter == 14 || counter == 15)
                {
                    screen.SetColor(255, 255, 255);

                    // 上部非描画領域の区切り線描画
                    screen.DrawPolygon(
                        0, 0,
                        640, 0,
                        640, 480,
                        0, 480);
                }

                if (counter == 60 ||
                    (counter > 60 && (((counter - 60) % 7) == 0)))
                {
                    screen.SetColor(255, 255, 255);

                    // 上部非描画領域の区切り線描画
                    screen.DrawPolygon(
                        0, 0,
                        640, 0,
                        640, 480,
                        0, 480);

                    if (++flashCounter == 8)
                    {
                        scene.nextStep();
                    }

                }

                if (counter == 8)
                {
                    charaIndex++;
                }
                else if (counter == 60)
                {
                    charaIndex++;
                }
                counter++;
            }

            public override bool IsFinish
            {
                get { return flashCounter == 8; }
            }

            #endregion

            #region IDisposable メンバ

            public override void Dispose()
            {
            }

            #endregion
        }

        /// <summary>
        /// タイトルKYOJINTACHI
        /// </summary>
        internal class Step110 : IScene
        {
            #region 定数値

            private const int LC_STEP_TIME = 6900;
            private const int alphaCount = 4;

            #endregion

            #region フィールドメンバ

            private readonly DemoScene scene;
            private float rate = 1.0f;
            private int alpha = 255;
            //private int counter = 0;

            #endregion

            /// <summary>
            /// コンストラクタ
            /// </summary>
            public Step110(DemoScene scene, FixTimer timer)
                : base(timer)
            {
                this.scene = scene;
            }

            #region IScene メンバ

            public override void OnInit()
            {
            }

            /// <summary>
            /// 描画処理
            /// </summary>
            /// <param name="screen"></param>
            public override void OnPaint(IScreen screen)
            {
                scene.headliner.OnDraw(screen);

                /* K2C */
                if (timer.Time - scene.step_start_time > (LC_STEP_TIME / 2))
                {
                    if (alpha > 0 && rate > 0.0f)
                    {
                        int x = (screen.Width - (int)(scene.t_Kyojintachi.Width * rate)) / 2;
                        int y = (screen.Height - (int)(scene.t_Kyojintachi.Height * rate)) / 2;

                        screen.SetColor(255, 255, 255, alpha);
                        screen.BltRotate(scene.t_Kyojintachi, x, y, 0, rate, 0);	// 描画	

                        alpha -= alphaCount;
                        rate -= 0.003f;
                    }
                }

                if (timer.Time - scene.step_start_time > LC_STEP_TIME)
                {
                    scene.nextStep();
                }
            }

            public override bool IsFinish
            {
                get { return timer.Time - scene.step_start_time > LC_STEP_TIME; }
            }

            #endregion

            #region IDisposable メンバ

            public override void Dispose()
            {
            }

            #endregion
        }


        /// <summary>
        ///  K2Cタイトル	
        /// </summary>
        internal class Step111 : IScene
        {
            #region 定数値

            private const int LC_STEP_TIME = 6900;
            private const int alphaCount = 4;

            #endregion

            #region フィールドメンバ

            private readonly DemoScene scene;
            private float rate = 1.0f;
            private int alpha = 255;

            #endregion

            /// <summary>
            /// コンストラクタ
            /// </summary>
            public Step111(DemoScene scene, FixTimer timer)
                : base(timer)
            {
                this.scene = scene;
            }

            #region IScene メンバ

            public override void OnInit()
            {
            }

            /// <summary>
            /// 描画処理
            /// </summary>
            /// <param name="screen"></param>
            public override void OnPaint(IScreen screen)
            {
                scene.headlineK2C.OnDraw(screen);

                if (timer.Time - scene.step_start_time > (LC_STEP_TIME / 2))
                {
                    if (alpha > 0 && rate > 0.0f)
                    {

                        int x = (screen.Width - (int)(scene.t_K2Cex.Width * rate)) / 2;
                        int y = (screen.Height - (int)(scene.t_K2Cex.Height * rate)) / 2;

                        screen.SetColor(255, 255, 255, alpha);
                        screen.BltRotate(scene.t_K2Cex, x, y, 0, rate, 0);	// 描画	

                        alpha -= alphaCount;
                        rate -= 0.003f;
                    }
                }

                if (timer.Time - scene.step_start_time > LC_STEP_TIME)
                {
                    scene.nextStep();
                }
            }

            public override bool IsFinish
            {
                get { return timer.Time - scene.step_start_time > LC_STEP_TIME; }
            }

            #endregion

            #region IDisposable メンバ

            public override void Dispose()
            {
            }

            #endregion
        }

        /// <summary>
        /// 開発スタッフ
        /// </summary>
        internal class Step112 : IScene
        {
            #region フィールドメンバ

            private readonly DemoScene scene;
            private int counter = 0;

            #endregion

            /// <summary>
            /// コンストラクタ
            /// </summary>
            public Step112(DemoScene scene, FixTimer timer)
                : base(timer)
            {
                this.scene = scene;
            }

            #region IScene メンバ

            public override void OnInit()
            {
            }

            /// <summary>
            /// 描画処理
            /// </summary>
            /// <param name="screen"></param>
            public override void OnPaint(IScreen screen)
            {
                scene.clock.SetXY(-250, 300);

                // 時計描画
                scene.clock.OnMove(screen);
                scene.clock.OnDraw(screen);

                // 暗幕フィルタ

                screen.SetColor(0, 0, 0, 255 - scene.alphaCounter.Value());

                // 上部非描画領域の区切り線描画
                screen.DrawPolygon(
                    0, 0,
                    640, 0,
                    640, 480,
                    0, 480);

                screen.SetColor(255, 255, 255, scene.alphaCounter.Value());
                // スタッフ描画
                screen.Blt(scene.t_endStaff, 0, 0);

                scene.alphaCounter++;

                // フェードアウト
                if (counter == 200)
                {
                    scene.alphaCounter.Set(200, 0, 120);
                }

                ++counter;
            }

            public override bool IsFinish
            {
                get { return false; }
            }

            #endregion

            #region IDisposable メンバ

            public override void Dispose()
            {
            }

            #endregion
        }

        #endregion

        #region スクリーンキャプチャ用メソッド

        private IntPtr hwnd = IntPtr.Zero;

        private long taskLoopCount = 0;
        private int startTime = 0;
        private long fileNo = 0;
        private System.Drawing.Rectangle windowRect = new System.Drawing.Rectangle(new System.Drawing.Point(5, 5), new System.Drawing.Size(645, 485));
        private string basePath = "d:\\img_demo\\";

        private void StoreScreenShot()
        {
            System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(
              windowRect.Width, windowRect.Height, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
            using (System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bmp))
            {
                g.CopyFromScreen(windowRect.X, windowRect.Y, 0, 0,
                  windowRect.Size, System.Drawing.CopyPixelOperation.SourceCopy);
            }

            long dirNum = (fileNo / 500);
            if (fileNo % 500 == 0)
            {
                System.IO.DirectoryInfo dirInfo = new System.IO.DirectoryInfo(basePath + dirNum.ToString());
                dirInfo.Create();
            }

            string filePath = basePath + dirNum.ToString() + "\\" + fileNo.ToString() + ".bmp";

            bmp.Save(filePath, System.Drawing.Imaging.ImageFormat.Bmp);
            fileNo++;
        }





        #endregion
    }
}
