#define  COMMON_OBJECTS_H aaa
//----------------------------------------------------------------------------
//  @brief

//  @ingroup
    
//  (C) 2007    Sigma-Team
//-----------------------------------------------------------------------------

F010_15(int unit)
{
    VehiDeathTime = GetTime();
}
F010_16(int unit) { F010_15(unit); }

//------------------------------------------------------------------------------
OnBonusDeath(int unit, int iScore = -1)
{
    int vid = Action(unit, ACT_GET_ITEM_TYPE);
    if(vid)
	{
	    int bonus = CreateSprite(vid, GetX(unit), GetY(unit), GetZ(unit) + 14, 128);
	    if(bonus)
    	{
			Action(bonus, ACT_SET_SPEED, 1);
			int dd = GetBonusPoints(vid);
			giBonusSubLevTotal += dd;
		}
	}
	//
	if(GetUnitVid(unit) != 1222 && GetUnitVid(unit) != 1230)
	{
		if(iScore == -1)
			iScore = GetVidData(GetUnitVid(unit), VID_MAXHP);
	    gScoreTot += iScore*10;
	}
	//
#ifndef GAMEPLAY_FLY
    if(iScore && gbGoldCoins)
    	CreateGoldBonus(GetX(unit), GetY(unit)-GetZ(unit));
#endif
}


// из данных объектов при смерти будет выбрасываться бонус
F200_15(int unit) { OnBonusDeath(unit); }
F200_16(int unit) { OnBonusDeath(unit); }
F201_15(int unit) { OnBonusDeath(unit); }
F201_16(int unit) { OnBonusDeath(unit); }
F205_15(int unit) { OnBonusDeath(unit); }
F205_16(int unit) { OnBonusDeath(unit); }
F206_15(int unit) { OnBonusDeath(unit); }
F206_16(int unit) { OnBonusDeath(unit); }
F211_15(int unit) { OnBonusDeath(unit); }
F211_16(int unit) { OnBonusDeath(unit); }
F225_15(int unit) { OnBonusDeath(unit); }
F225_16(int unit) { OnBonusDeath(unit); }
F228_15(int unit) { OnBonusDeath(unit); }
F228_16(int unit) { OnBonusDeath(unit); }
F229_15(int unit) { OnBonusDeath(unit); }
F229_16(int unit) { OnBonusDeath(unit); }
F301_15(int unit) { OnBonusDeath(unit); }
F301_16(int unit) { OnBonusDeath(unit); }
F302_15(int unit) { OnBonusDeath(unit); }
F302_16(int unit) { OnBonusDeath(unit); }
F306_15(int unit) { OnBonusDeath(unit); }
F306_16(int unit) { OnBonusDeath(unit); }
F307_15(int unit) { OnBonusDeath(unit); }
F307_16(int unit) { OnBonusDeath(unit); }
F308_15(int unit) { OnBonusDeath(unit); }
F308_16(int unit) { OnBonusDeath(unit); }
F311_15(int unit) { OnBonusDeath(unit); }
F311_16(int unit) { OnBonusDeath(unit); }
F313_15(int unit) { OnBonusDeath(unit); }
F313_16(int unit) { OnBonusDeath(unit); }
F318_15(int unit) { OnBonusDeath(unit); }
F318_16(int unit) { OnBonusDeath(unit); }
F319_15(int unit) { OnBonusDeath(unit); }
F319_16(int unit) { OnBonusDeath(unit); }
F320_15(int unit) { OnBonusDeath(unit); }
F320_16(int unit) { OnBonusDeath(unit); }
F323_15(int unit) { OnBonusDeath(unit); }
F323_16(int unit) { OnBonusDeath(unit); }
F324_15(int unit) { OnBonusDeath(unit); }
F324_16(int unit) { OnBonusDeath(unit); }
F325_15(int unit) { OnBonusDeath(unit); }
F325_16(int unit) { OnBonusDeath(unit); }
F330_15(int unit) { OnBonusDeath(unit); }
F330_16(int unit) { OnBonusDeath(unit); }
F331_15(int unit) { OnBonusDeath(unit); }
F331_16(int unit) { OnBonusDeath(unit); }
F332_15(int unit) { OnBonusDeath(unit); }
F332_16(int unit) { OnBonusDeath(unit); }
F337_15(int unit) { OnBonusDeath(unit); }
F337_16(int unit) { OnBonusDeath(unit); }
F338_15(int unit) { OnBonusDeath(unit); }
F338_16(int unit) { OnBonusDeath(unit); }
F339_15(int unit) { OnBonusDeath(unit); }
F339_16(int unit) { OnBonusDeath(unit); }
F346_15(int unit) { OnBonusDeath(unit); }
F346_16(int unit) { OnBonusDeath(unit); }
F353_15(int unit) { OnBonusDeath(unit); }
F353_16(int unit) { OnBonusDeath(unit); }
F354_15(int unit) { OnBonusDeath(unit); }
F354_16(int unit) { OnBonusDeath(unit); }
F355_15(int unit) { OnBonusDeath(unit); }
F355_16(int unit) { OnBonusDeath(unit); }
F356_15(int unit) { OnBonusDeath(unit); }
F356_16(int unit) { OnBonusDeath(unit); }
F357_15(int unit) { OnBonusDeath(unit); }
F357_16(int unit) { OnBonusDeath(unit); }
F359_15(int unit) { OnBonusDeath(unit); }
F359_16(int unit) { OnBonusDeath(unit); }
F811_15(int unit) { OnBonusDeath(unit); }
F811_16(int unit) { OnBonusDeath(unit); }
//zmNEW061019. куст для бонусов теперь обрабатывается отдельно
F464_15(int unit) { CheckBonuses(unit); OnBonusDeath(unit); }
F464_16(int unit) { CheckBonuses(unit); OnBonusDeath(unit); }
//
F484_15(int unit) { OnBonusDeath(unit); }
F484_16(int unit) { OnBonusDeath(unit); }
F837_15(int unit) { OnBonusDeath(unit); }
F837_16(int unit) { OnBonusDeath(unit); }
F902_15(int unit) { OnBonusDeath(unit); }
F902_16(int unit) { OnBonusDeath(unit); }
F903_15(int unit) { OnBonusDeath(unit); }
F903_16(int unit) { OnBonusDeath(unit); }

//zmNEW061108. - CheckBonuses(unit);
F848_15(int unit) { CheckBonuses(unit); OnBonusDeath(unit); }
F848_16(int unit) { CheckBonuses(unit); OnBonusDeath(unit); }
F849_15(int unit) { CheckBonuses(unit); OnBonusDeath(unit); }
F849_16(int unit) { CheckBonuses(unit); OnBonusDeath(unit); }
F928_15(int unit) { CheckBonuses(unit); OnBonusDeath(unit); }
F928_16(int unit) { CheckBonuses(unit); OnBonusDeath(unit); }
F932_15(int unit) { CheckBonuses(unit); OnBonusDeath(unit); }
F932_16(int unit) { CheckBonuses(unit); OnBonusDeath(unit); }
F936_15(int unit) { CheckBonuses(unit); OnBonusDeath(unit); }
F936_16(int unit) { CheckBonuses(unit); OnBonusDeath(unit); }
F1237_15(int unit) { OnBonusDeath(unit, SCORES_FOR_CRYSTALL_BIG); giBigCrystHit++; }
F1237_16(int unit) { OnBonusDeath(unit, SCORES_FOR_CRYSTALL_BIG); giBigCrystHit++; }
//
//zmNEW070126
//
F868_15(int unit) { OnBonusDeath(unit); }
F868_16(int unit) { OnBonusDeath(unit); }
F866_15(int unit) { OnBonusDeath(unit); }
F866_16(int unit) { OnBonusDeath(unit); }
F844_15(int unit) { OnBonusDeath(unit); }
F844_16(int unit) { OnBonusDeath(unit); }
F843_15(int unit) { OnBonusDeath(unit); }
F843_16(int unit) { OnBonusDeath(unit); }
F841_15(int unit) { OnBonusDeath(unit); }
F841_16(int unit) { OnBonusDeath(unit); }
F803_15(int unit) { OnBonusDeath(unit); }
F803_16(int unit) { OnBonusDeath(unit); }
F804_15(int unit) { OnBonusDeath(unit); }
F804_16(int unit) { OnBonusDeath(unit); }
F814_15(int unit) { OnBonusDeath(unit, 50); }
F814_16(int unit) { OnBonusDeath(unit, 50); }
F821_15(int unit) { OnBonusDeath(unit); }
F821_16(int unit) { OnBonusDeath(unit); }
F823_15(int unit) { OnBonusDeath(unit); }
F823_16(int unit) { OnBonusDeath(unit); }
F828_15(int unit) { OnBonusDeath(unit); }
F828_16(int unit) { OnBonusDeath(unit); }
F489_15(int unit) { OnBonusDeath(unit); }
F489_16(int unit) { OnBonusDeath(unit); }
F381_15(int unit) { OnBonusDeath(unit); }
F381_16(int unit) { OnBonusDeath(unit); }
F477_15(int unit) { OnBonusDeath(unit, 50); }
F477_16(int unit) { OnBonusDeath(unit, 50); }
F476_15(int unit) { OnBonusDeath(unit, 50); }
F476_16(int unit) { OnBonusDeath(unit, 50); }
F419_15(int unit) { OnBonusDeath(unit); }
F419_16(int unit) { OnBonusDeath(unit); }
F386_15(int unit) { OnBonusDeath(unit); }
F386_16(int unit) { OnBonusDeath(unit); }
F385_15(int unit) { OnBonusDeath(unit); }
F385_16(int unit) { OnBonusDeath(unit); }
F375_15(int unit) { OnBonusDeath(unit, 50); }
F375_16(int unit) { OnBonusDeath(unit, 50); }
F374_15(int unit) { OnBonusDeath(unit,  0); }
F374_16(int unit) { OnBonusDeath(unit,  0); }
F377_15(int unit) { OnBonusDeath(unit); }
F377_16(int unit) { OnBonusDeath(unit); }
F384_15(int unit) { OnBonusDeath(unit); }
F384_16(int unit) { OnBonusDeath(unit); }
F366_15(int unit) { OnBonusDeath(unit); }
F366_16(int unit) { OnBonusDeath(unit); }
F361_15(int unit) { OnBonusDeath(unit); }
F361_16(int unit) { OnBonusDeath(unit); }
F364_15(int unit) { OnBonusDeath(unit); }
F364_16(int unit) { OnBonusDeath(unit); }
F379_15(int unit) { OnBonusDeath(unit); }
F379_16(int unit) { OnBonusDeath(unit); }
F434_15(int unit) { OnBonusDeath(unit); }
F434_16(int unit) { OnBonusDeath(unit); }
F873_15(int unit) { OnBonusDeath(unit); }
F873_16(int unit) { OnBonusDeath(unit); }
F875_15(int unit) { OnBonusDeath(unit); }
F875_16(int unit) { OnBonusDeath(unit); }
F959_15(int unit) { OnBonusDeath(unit, 50); }
F959_16(int unit) { OnBonusDeath(unit, 50); }
F958_15(int unit) { OnBonusDeath(unit, 50); }
F958_16(int unit) { OnBonusDeath(unit, 50); }
F981_15(int unit) { OnBonusDeath(unit); }
F981_16(int unit) { OnBonusDeath(unit); }
F983_15(int unit) { OnBonusDeath(unit); }
F983_16(int unit) { OnBonusDeath(unit); }
F988_15(int unit) { OnBonusDeath(unit); }
F988_16(int unit) { OnBonusDeath(unit); }
F1322_15(int unit) { OnBonusDeath(unit); }
F1322_16(int unit) { OnBonusDeath(unit); }
F1222_15(int unit) { OnBonusDeath(unit); }
F1222_16(int unit) { OnBonusDeath(unit); }
F1230_15(int unit) { OnBonusDeath(unit); }
F1230_16(int unit) { OnBonusDeath(unit); }
F947_15(int unit) { OnBonusDeath(unit); }
F947_16(int unit) { OnBonusDeath(unit); }
F949_15(int unit) { OnBonusDeath(unit); }
F949_16(int unit) { OnBonusDeath(unit); }
F951_15(int unit) { OnBonusDeath(unit); }
F951_16(int unit) { OnBonusDeath(unit); }
F898_15(int unit) { OnBonusDeath(unit); }
F898_16(int unit) { OnBonusDeath(unit); }
F901_15(int unit) { OnBonusDeath(unit); }
F901_16(int unit) { OnBonusDeath(unit); }
F910_15(int unit) { OnBonusDeath(unit); }
F910_16(int unit) { OnBonusDeath(unit); }
F915_15(int unit) { OnBonusDeath(unit); }
F915_16(int unit) { OnBonusDeath(unit); }

//---------------------------------------------------------------------------------------------------
// периодическое проигрывание анимации объектами, чем больше число внутри Random() тем реже анимации
F463_0(int unit) { if ( !Random(100) ) Action(unit, ANI_SALUT); }
F465_0(int unit) { if ( Action(unit, ANI_SALUT)); }
F467_0(int unit) { if ( !Random(10) ) Action(unit, ANI_SALUT); }
F469_0(int unit) { if ( !Random(100) ) Action(unit, ANI_SALUT); }
F882_0(int unit) { if ( !Random(50) ) Action(unit, ANI_SALUT); }
F926_0(int unit) { if ( !Random(100) ) Action(unit, ANI_SALUT); }
F972_0(int unit) { if ( !Random(100) ) Action(unit, ANI_SALUT); }
F973_0(int unit) { if ( Action(unit, ANI_SALUT)); }

// для обработки улета бабочек за границу экрана
F493_2(int unit)
{
    if ( ToScreenX(GetX(unit)) < SCREEN_FIELD_LEFT - 50 )
        Action(unit, ACT_CHANGE_COOR, SCREEN_FIELD_RIGHT + 40, GetY(unit), GetZ(unit));
    else if ( ToScreenX(GetX(unit)) > SCREEN_FIELD_RIGHT + 50 )
        Action(unit, ACT_CHANGE_COOR, SCREEN_FIELD_LEFT - 40, GetY(unit), GetZ(unit));
    else if ( ToScreenY(GetY(unit), GetZ(unit)) < -50 )
        Action(unit, ACT_CHANGE_COOR, GetX(unit), GetY(unit) + 800, GetZ(unit));
    else if ( ToScreenY(GetY(unit), GetZ(unit)) > 768 + 50 )
        Action(unit, ACT_CHANGE_COOR, GetX(unit), GetY(unit) - 800, GetZ(unit));
}
F494_2(int unit)
{
    if ( ToScreenX(GetX(unit)) < SCREEN_FIELD_LEFT - 50 )
        Action(unit, ACT_CHANGE_COOR, SCREEN_FIELD_RIGHT + 40, GetY(unit), GetZ(unit));
    else if ( ToScreenX(GetX(unit)) > SCREEN_FIELD_RIGHT + 50 )
        Action(unit, ACT_CHANGE_COOR, SCREEN_FIELD_LEFT - 40, GetY(unit), GetZ(unit));
    else if ( ToScreenY(GetY(unit), GetZ(unit)) < -50 )
        Action(unit, ACT_CHANGE_COOR, GetX(unit), GetY(unit) + 800, GetZ(unit));
    else if ( ToScreenY(GetY(unit), GetZ(unit)) > 768 + 50 )
        Action(unit, ACT_CHANGE_COOR, GetX(unit), GetY(unit) - 800, GetZ(unit));
}
F495_2(int unit)
{
    if ( ToScreenX(GetX(unit)) < SCREEN_FIELD_LEFT - 50 )
        Action(unit, ACT_CHANGE_COOR, SCREEN_FIELD_RIGHT + 40, GetY(unit), GetZ(unit));
    else if ( ToScreenX(GetX(unit)) > SCREEN_FIELD_RIGHT + 50 )
        Action(unit, ACT_CHANGE_COOR, SCREEN_FIELD_LEFT - 40, GetY(unit), GetZ(unit));
    else if ( ToScreenY(GetY(unit), GetZ(unit)) < -50 )
        Action(unit, ACT_CHANGE_COOR, GetX(unit), GetY(unit) + 800, GetZ(unit));
    else if ( ToScreenY(GetY(unit), GetZ(unit)) > 768 + 50 )
        Action(unit, ACT_CHANGE_COOR, GetX(unit), GetY(unit) - 800, GetZ(unit));
}
F496_2(int unit)
{
    if ( ToScreenX(GetX(unit)) < SCREEN_FIELD_LEFT - 50 )
        Action(unit, ACT_CHANGE_COOR, SCREEN_FIELD_RIGHT + 40, GetY(unit), GetZ(unit));
    else if ( ToScreenX(GetX(unit)) > SCREEN_FIELD_RIGHT + 50 )
        Action(unit, ACT_CHANGE_COOR, SCREEN_FIELD_LEFT - 40, GetY(unit), GetZ(unit));
    else if ( ToScreenY(GetY(unit), GetZ(unit)) < -50 )
        Action(unit, ACT_CHANGE_COOR, GetX(unit), GetY(unit) + 800, GetZ(unit));
    else if ( ToScreenY(GetY(unit), GetZ(unit)) > 768 + 50 )
        Action(unit, ACT_CHANGE_COOR, GetX(unit), GetY(unit) - 800, GetZ(unit));
}
F497_2(int unit)
{
    if ( ToScreenX(GetX(unit)) < SCREEN_FIELD_LEFT - 50 )
        Action(unit, ACT_CHANGE_COOR, SCREEN_FIELD_RIGHT + 40, GetY(unit), GetZ(unit));
    else if ( ToScreenX(GetX(unit)) > SCREEN_FIELD_RIGHT + 50 )
        Action(unit, ACT_CHANGE_COOR, SCREEN_FIELD_LEFT - 40, GetY(unit), GetZ(unit));
    else if ( ToScreenY(GetY(unit), GetZ(unit)) < -50 )
        Action(unit, ACT_CHANGE_COOR, GetX(unit), GetY(unit) + 800, GetZ(unit));
    else if ( ToScreenY(GetY(unit), GetZ(unit)) > 768 + 50 )
        Action(unit, ACT_CHANGE_COOR, GetX(unit), GetY(unit) - 800, GetZ(unit));
}

F498_2(int unit)
{
    if ( ToScreenX(GetX(unit)) < SCREEN_FIELD_LEFT - 50 )
        Action(unit, ACT_CHANGE_COOR, SCREEN_FIELD_RIGHT + 40, GetY(unit), GetZ(unit));
    else if ( ToScreenX(GetX(unit)) > SCREEN_FIELD_RIGHT + 50 )
        Action(unit, ACT_CHANGE_COOR, SCREEN_FIELD_LEFT - 40, GetY(unit), GetZ(unit));
    else if ( ToScreenY(GetY(unit), GetZ(unit)) < -50 )
        Action(unit, ACT_CHANGE_COOR, GetX(unit), GetY(unit) + 800, GetZ(unit));
    else if ( ToScreenY(GetY(unit), GetZ(unit)) > 768 + 50 )
        Action(unit, ACT_CHANGE_COOR, GetX(unit), GetY(unit) - 800, GetZ(unit));
}

F499_2(int unit)

{
    if ( ToScreenX(GetX(unit)) < SCREEN_FIELD_LEFT - 50 )
        Action(unit, ACT_CHANGE_COOR, SCREEN_FIELD_RIGHT + 40, GetY(unit), GetZ(unit));
    else if ( ToScreenX(GetX(unit)) > SCREEN_FIELD_RIGHT + 50 )
        Action(unit, ACT_CHANGE_COOR, SCREEN_FIELD_LEFT - 40, GetY(unit), GetZ(unit));
    else if ( ToScreenY(GetY(unit), GetZ(unit)) < -50 )
        Action(unit, ACT_CHANGE_COOR, GetX(unit), GetY(unit) + 800, GetZ(unit));
    else if ( ToScreenY(GetY(unit), GetZ(unit)) > 768 + 50 )
        Action(unit, ACT_CHANGE_COOR, GetX(unit), GetY(unit) - 800, GetZ(unit));
}

F034_COLLISION(int unit,int crushed_unit)
{
    Action(crushed_unit, ACT_DAMAGE, 100, unit);
}

// завершение раскрывания крыльев у тележки при полете
F039_0(int unit)
{
    Action(unit, ACT_CHANGE_VID, 38);
}
F039_2(int unit) { F039_0(unit); }

//---------------------------------------------------------------------------------------------
//землетрясение на смерть некоторых объектов
F382_15(int unit) { EarthQuake(1000); OnBonusDeath(unit); }
F382_16(int unit) { EarthQuake(1000); OnBonusDeath(unit); }
F407_15(int unit) { EarthQuake(1000); }
F407_16(int unit) { EarthQuake(1000); }
F415_16(int unit) { EarthQuake(1000); }
F853_16(int unit) { EarthQuake(1000); }
F853_15(int unit) { EarthQuake(1000); }
//
F1300_15(int unit) { EarthQuake(1600); }
F1300_16(int unit) { EarthQuake(1600); }
F1301_15(int unit) { EarthQuake(1600); }
F1301_16(int unit) { EarthQuake(1600); }
F1302_15(int unit) { EarthQuake(1600); }
F1302_16(int unit) { EarthQuake(1600); }
