#include "std.mi"

Function fn_FrameSet(int f);

Global Group		grpMain;
Global Group		grpWipCG;
//アイキャッチ表示
Global Layer		lyrWipCG;	//アイキャッチ
Global Map		mapCGMap;	//アイキャッチ用マップ
Global Int              intValueMax;	//++
Global Int              intValueMin;	//--
Global Int              intValue;	//この数値分アイキャッチを表示させる
Global Int		intLodmap;	//マップの種類
Global Int		intWipCG;	//アイキャッチの種類
Global Timer            tmrValue;	//アイキャッチ表示タイマー
Global Timer		tmrWipCG;	//スキン読み込み時の初期アイキャッチの設定タイマー
Global Timer		tmrWipMap;	//マップの設定
Global Timer		VisTimer;
Global Int		intVuLevel;
Global int		intCharaNmber;	//( 0, 1, 2, 3, 4, 5)

System.onScriptLoaded(){

	grpMain		= getScriptGroup();
	grpWipCG	= grpMain.findObject("Chara.Group");
	lyrWipCG	= grpWipCG.findObject("Chara_Black");

	tmrValue	= new Timer;
	tmrWipCG	= new Timer;
	tmrWipMap	= new Timer;

	VisTimer = new Timer;
	VisTimer.setDelay(50);
	VisTimer.start();
}

System.onScriptUnloading(){

	tmrWipCG.stop();
	delete tmrWipCG;

	tmrWipMap.stop();
	delete tmrWipMap;

	tmrValue.stop();
	delete tmrValue;

	VisTimer.stop();
	delete VisTimer;

	//マップ削除
	delete mapCGMap;
}

VisTimer.onTimer() {

	intVuLevel = ((System.getLeftVuMeter() + System.getRightVuMeter())/2);

	if(intVuLevel > 200) {
		tmrWipCG.setDelay(50);
		tmrWipCG.start();
	}
}

System.onTitleChange(String newtitle){

	tmrWipCG.setDelay(50);
	tmrWipCG.start();
}

tmrWipCG.onTimer(){

   //タイマー停止
    tmrWipCG.stop();

   //前回のアイキャッチを非表示
    lyrWipCG.setAlpha(0);

   //アイキャッチの種類
//    intWipCG = 0;

	intCharaNmber = System.getPrivateInt("Scarlet", "CharaNmber", 0);
	intWipCG = intCharaNmber;

   //アイキャッチ読み込み
    if(intWipCG == 0){
      lyrWipCG	= grpWipCG.findObject("Chara_Black");
    }
    else if(intWipCG == 1){
      lyrWipCG	= grpWipCG.findObject("Chara2_Black");
    }
    else if(intWipCG == 2){
      lyrWipCG	= grpWipCG.findObject("Chara3_Black");
    }
    else if(intWipCG == 3){
      lyrWipCG	= grpWipCG.findObject("Chara4_Black");
    }
    else if(intWipCG == 4){
      lyrWipCG	= grpWipCG.findObject("Chara5_Black");
    }
    else if(intWipCG == 5){
      lyrWipCG	= grpWipCG.findObject("Chara6_Black");
    }
    tmrWipMap.setDelay(50);
    tmrWipMap.start();
}

tmrWipMap.onTimer(){

   //タイマー停止
    tmrWipMap.stop();

   //前回のマップを削除
    delete mapCGMap;

   //前回のマップを新しいのに置き換える
    mapCGMap = new Map;

   //マップの種類
    intlodmap = intCharaNmber;

    //マップの読み込み
    if(intlodmap == 0){
        mapCGMap.loadMap("WipMap1");
    }
    else if(intlodmap == 1){
        mapCGMap.loadMap("WipMap3");
    }
    else if(intlodmap == 2){
        mapCGMap.loadMap("WipMap5");
    }
    else if(intlodmap == 3){
        mapCGMap.loadMap("WipMap7");
    }
    else if(intlodmap == 4){
        mapCGMap.loadMap("WipMap9");
    }
    else if(intlodmap == 5){
        mapCGMap.loadMap("WipMap11");
    }
     //アイキャッチ表示初期数値
     intValueMax = 0;
     intValueMin = -1; 
    
     //アイキャッチ表示タイマースタート
     tmrValue.start();
}

tmrValue.onTimer(){

 //タイマーストップ
  tmrValue.stop();

 //intvalueMinが0になったら停止     
  if(intvalueMin == 0){
    tmrValue.stop();			//タイマーストップ
    lyrWipCG.setAlpha(0);		//CG非表示
  }

 //intvalueMaxが31になったら加算終了、減算スタート 
  if(intvalueMax == 31){
    intValue = 30;
    fn_FrameSet(intValue);	       //intvalueの数値分CGを表示させる(CG表示100％)

    intvalueMax = 32;
    intvalueMin = 30;
    tmrValue.setDelay(500);
    tmrValue.start();

   //前回のマップを新しいのに置き換える
    delete mapCGMap;
    mapCGMap = new Map;

    if(intlodmap == 0){
        mapCGMap.loadMap("WipMap2");
    }
    else if(intlodmap == 1){
        mapCGMap.loadMap("WipMap4");
    }
    else if(intlodmap == 2){
        mapCGMap.loadMap("WipMap6");
    }
    else if(intlodmap == 3){
        mapCGMap.loadMap("WipMap8");
    }
    else if(intlodmap == 4){
        mapCGMap.loadMap("WipMap10");
    }
    else if(intlodmap == 5){
        mapCGMap.loadMap("WipMap12");
    }
  }

 //intvalueMaxが30になるまで加算
  else if(intvalueMax <= 30){
    intvalueMax ++;
    tmrValue.setDelay(50);
    tmrValue.start();
    intValue = intvalueMax;		//intvalueMaxの数値をintvalueに代入
    fn_FrameSet(intValue);		//intvalueの数値分CGを表示させる。
    lyrWipCG.setAlpha(255);		//CGを可視表示
  }

 //intvalueMinが0になるまで減算
  else if(intvalueMin >= 0){
    intvalueMin -- ;
    tmrValue.setDelay(50);
    tmrValue.start();
    intValue  = intvalueMin;		//intvalueMinの数値をintvalueに代入
    fn_FrameSet(intValue);		//intvalueの数値分CGを非表示させる。
  }
}

fn_FrameSet(int Value){
        Region r = new Region;
        r.loadFromMap(mapCGMap, Value, 1);
        lyrWipCG.setRegion(r);
        delete r;
}
