#define  UTIL_BOXES_H aaa
//----------------------------------------------------------------------------
//  @brief
//		коробочки

//  @ingroup
    
//  2007Aug16 created. Zmanovsky Peter.
//  (C) 2007    Sigma-Team
//афигеть, уже август 2007-го года, а я еще не заработал миллион долларов.
//вот чудило..
//-----------------------------------------------------------------------------

#ifndef UTIL_ZOMBIES_H
    #include "maps\util_zombies.lgc"
#endif


//------------------------------------------------------------------------------------------
#define BOX_VIDS_CNT	4
static int caBoxVids[BOX_VIDS_CNT] = {1100, 419, 391, 1816};

F391_15(int unit) { CreateItems(unit); }
F391_16(int unit) { CreateItems(unit); }
F419_15(int unit) { CreateItems(unit); }
F419_16(int unit) { CreateItems(unit); }
F1100_15(int unit) { CreateItems(unit); }
F1100_16(int unit) { CreateItems(unit); }
F1816_15(int unit) { CreateItems(unit); }
F1816_16(int unit) { CreateItems(unit); }
F1991_15(int unit) { CreateItems(unit); }
F1991_16(int unit) { CreateItems(unit); }


//------------------------------------------------------------------------------------------
IsBox(int unit)
{
	int iVid = GetUnitVid(unit);
	int i;
	for(i = 0; i < BOX_VIDS_CNT; i++)
	{
		if(iVid == caBoxVids[i])
			return true;
	}
	//
	return false;
}


//------------------------------------------------------------------------------------------
SetBoxesGamma(int iGamma)
{
	int i;
	for(i = 0; i < BOX_VIDS_CNT; i++)
	{
		SetVidData(caBoxVids[i], VID_GAMMA, iGamma);
		SetVidData(caBoxVids[i], VID_GAMMA+1, iGamma);
		SetVidData(caBoxVids[i], VID_GAMMA+2, iGamma);
		SetVidData(caBoxVids[i], VID_GAMMA+3, iGamma);
	}
}


//------------------------------------------------------------------------------------------
BoxesTact()
{
	iff(1)
		SetBoxesGamma(0x000000);
	//
	static int siBeginBlinkTime = 0;
	if(!siBeginBlinkTime)
		siBeginBlinkTime = GetTime();
	//
	int gamma = GammaEncodeToDword(BOX_BLINK_GAMMA_R, BOX_BLINK_GAMMA_G, BOX_BLINK_GAMMA_B);
	//
	int DeltaTime = (GetTime() - siBeginBlinkTime) % (BOX_BLINK_TIME_1+BOX_BLINK_TIME_2+BOX_BLINK_TIME_3);
	if( DeltaTime <= BOX_BLINK_TIME_1 )
		SetBoxesGamma(0x000000);
	else
	if( DeltaTime <= BOX_BLINK_TIME_1+BOX_BLINK_TIME_2 )
	{
		DeltaTime -= BOX_BLINK_TIME_1;
		SetBoxesGamma(CountGamma(0x000000, gamma, DeltaTime*255/BOX_BLINK_TIME_2));
	}
	else
	{
		DeltaTime -= (BOX_BLINK_TIME_1+BOX_BLINK_TIME_2);
		SetBoxesGamma(CountGamma(gamma, 0x000000, DeltaTime*255/BOX_BLINK_TIME_3));
	}
}


//------------------------------------------------------------------------------------------
VariousInitialize()
{
	InitZombies();
}


//------------------------------------------------------------------------------------------
VariousUtilsTact()
{
	BoxesTact();
	ExpTact();
	HpFrameSpriteTact(0);
	//HpFrameSpriteTact(1);
	InfectionFrameTact();
	ZombiesTact();
	HeroSpeedTact();
	DbgTimeTact();
}


//------------------------------------------------------------------------------------------
F934_15(int unit)
{
	StartPlayerX=GetX(unit);
	StartPlayerY=GetY(unit);
	StartPlayerZ=GetZ(unit);
}
F934_16(int unit) { F934_15(unit); }

