/**** しのやんの小物関数集 ****/
/* 別に他のキャラで使ってもいいけど */
#include "game.h"
#include "global.h"
#include "function.h"


#define FSTIME	40
static int sdw_cnt[2],sdw_ff[2],sdw_md[2];



/* 残像の表示 */
/*
	装飾ID16､17を固定使用
	mode	0 残像(パレット0)
			1 残影(パレット1〜3)
*/
int flushShadowSet(int player, int time, int mode)
{
	int i;
	
	sdw_cnt[player]	= time;
	sdw_md[player]	= mode;
	
	
	if( mode ){
		DECO(16).pal = PAL_CHAR(player, 1);
		DECO(17).pal = PAL_CHAR(player, 2);
		DECO(18).pal = PAL_CHAR(player, 3);
	} else {
		DECO(16).pal = PAL_CHAR(player, 0);
		DECO(17).pal = PAL_CHAR(player, 0);
		DECO(18).pal = PAL_CHAR(player, 0);
	}
	
	DECO(16).use_flag	= FSTIME;
	DECO(16).twinkle	= -1;
	DECO(16).ptr_set	= INFO.ptr_set;
	DECO(16).ptr_no		= INFO.ptr_no;
	DECO(16).pos_x		= INFO.pos_x;
	DECO(16).pos_y		= INFO.pos_y;
	DECO(16).direction	= INFO.direction;
	
	DECO(17).use_flag	= FSTIME;
	DECO(17).twinkle	= 1;
	DECO(17).ptr_set	= DECO(16).ptr_set;
	DECO(17).ptr_no		= DECO(16).ptr_no;
	DECO(17).pos_x		= DECO(16).pos_x;
	DECO(17).pos_y		= DECO(16).pos_y;
	DECO(17).direction	= DECO(16).direction;
	
	DECO(18).use_flag	= FSTIME;
	DECO(18).twinkle	= -1;
	DECO(18).ptr_set	= DECO(16).ptr_set;
	DECO(18).ptr_no		= DECO(16).ptr_no;
	DECO(18).pos_x		= DECO(16).pos_x;
	DECO(18).pos_y		= DECO(16).pos_y;
	DECO(18).direction	= DECO(16).direction;
}
int flushShadowReset(int player)
{
	int i;
	
	sdw_cnt[player]		= 0;
	DECO(16).use_flag	= 0;
	DECO(17).use_flag	= 0;
	DECO(18).use_flag	= 0;
}

int flushShadowRun(int player)
{
	
	if( !sdw_cnt[player] )
		return;
	
	sdw_cnt[player] -= speed;
	if(sdw_cnt[player]<0)
		sdw_cnt[player] = 0;
	
	sdw_ff[player] -= speed;
	if( sdw_ff[player]<0 ){
		sdw_ff[player]		= FSTIME;
		
		DECO(18).use_flag	= FSTIME;
		DECO(18).twinkle	= -1;
		DECO(18).ptr_set	= DECO(17).ptr_set;
		DECO(18).ptr_no		= DECO(17).ptr_no;
		DECO(18).pos_x		= DECO(17).pos_x;
		DECO(18).pos_y		= DECO(17).pos_y;
		DECO(18).direction	= DECO(17).direction;
		
		DECO(17).use_flag	= FSTIME;
		DECO(17).twinkle	= 1;
		DECO(17).ptr_set	= DECO(16).ptr_set;
		DECO(17).ptr_no		= DECO(16).ptr_no;
		DECO(17).pos_x		= DECO(16).pos_x;
		DECO(17).pos_y		= DECO(16).pos_y;
		DECO(17).direction	= DECO(16).direction;
		
		DECO(16).use_flag	= FSTIME;
		DECO(16).twinkle	= -1;
		DECO(16).ptr_set	= INFO.ptr_set;
		DECO(16).ptr_no		= INFO.ptr_no;
		DECO(16).pos_x		= INFO.pos_x;
		DECO(16).pos_y		= INFO.pos_y;
		DECO(16).direction	= INFO.direction;
	}
}

