{
	saved_FirstTime[0]

	Init[ ()
	{
		if(saved_FirstTime=0)
		{
			saved_FirstTime=0;

			if (GetID() = "Charg_1")
			{
				SetUsable(true);
				SetSkin(1);
				SetUseText(120);
			}
			if (GetID() = "Charg_2")
			{
				SetUsable(true);
				SetSkin(1);
				SetUseText(120);
			}
			if (GetID() = "Charg_3")
			{
				SetUsable(true);
				SetSkin(1);
				SetUseText(120);
			}
			if (GetID() = "Charg_4")
			{
				SetUsable(true);
				SetSkin(1);
				SetUseText(120);
			}
			if (GetID() = "Charg_5")
			{
				SetUsable(true);
				SetSkin(1);
				SetUseText(120);
			}
			if (GetID() = "Charg_6")
			{
				SetUsable(true);
				SetSkin(1);
				SetUseText(120);
			}
			if (GetID() = "Charg_7")
			{
				SetUsable(true);
				SetSkin(1);
				SetUseText(120);
			}
			if (GetID() = "Charg_8")
			{
				SetUsable(true);
				SetSkin(1);
				SetUseText(120);
			}
			if (GetID() = "Charg_9")
			{
				SetUsable(true);
				SetSkin(1);
				SetUseText(120);
			}
		}
	}]

	DelayReached[ (s)
	{
		if(s=1)
		{
			Flak_1 = Level.GetEntity("Flak_1");
			Charg_1 = Level.GetEntity("Charg_1");

			Flak_1.DoFireExplosionEffect();
			Flak_1.SetModel(90);
			Charg_1.ShowEntity(false);
			Flak_1.PlaySound(3);
			Level.GetPlayer().DamageHere(30096,5520,3000,8);
			Level.GetPlayer().ShakeHere(30096,5520);

			Level.saved_yourFlaksDestroyed = toInt(Level.saved_yourFlaksDestroyed + 1);
			Level.saved_f1dead = 1;

			MoveFlakPointer();
			FlaksDestroyed();
		}
		if(s=2)
		{
			Flak_2 = Level.GetEntity("Flak_2");
			Charg_2 = Level.GetEntity("Charg_2");

			Flak_2.DoFireExplosionEffect();
			Flak_2.SetModel(90);
			Charg_2.ShowEntity(false);
			Flak_2.PlaySound(3);
			Level.GetPlayer().DamageHere(32601,10393,3000,8);
			Level.GetPlayer().ShakeHere(32601,10393);

			Level.saved_yourFlaksDestroyed = toInt(Level.saved_yourFlaksDestroyed + 1);
			Level.saved_f2dead = 1;

			MoveFlakPointer();
			FlaksDestroyed();
		}
		if(s=3)
		{
			Flak_3 = Level.GetEntity("Flak_3");
			Charg_3 = Level.GetEntity("Charg_3");

			Flak_3.DoFireExplosionEffect();
			Flak_3.SetModel(90);
			Charg_3.ShowEntity(false);
			Flak_3.PlaySound(3);
			Level.GetPlayer().DamageHere(34201,16537,3000,8);
			Level.GetPlayer().ShakeHere(34201,16537);

			Level.saved_yourFlaksDestroyed = toInt(Level.saved_yourFlaksDestroyed + 1);
			Level.saved_f3dead = 1;

			MoveFlakPointer();
			FlaksDestroyed();
		}
		if(s=4)
		{
			Flak_4 = Level.GetEntity("Flak_4");
			Charg_4 = Level.GetEntity("Charg_4");

			Flak_4.DoFireExplosionEffect();
			Flak_4.SetModel(90);
			Charg_4.ShowEntity(false);
			Flak_4.PlaySound(3);
			Level.GetPlayer().DamageHere(30105,22144,3000,8);
			Level.GetPlayer().ShakeHere(30105,22144);

			Level.saved_yourFlaksDestroyed = toInt(Level.saved_yourFlaksDestroyed + 1);
			Level.saved_f4dead = 1;

			MoveFlakPointer();
			FlaksDestroyed();
		}
		if(s=5)
		{
			Charg_5 = Level.GetEntity("Charg_5");
			Flak_5 = Level.GetEntity("Flak_5");

			Flak_5.DoFireExplosionEffect();
			Flak_5.SetModel(90);
			Charg_5.ShowEntity(false);
			Flak_5.PlaySound(3);
			Level.GetPlayer().DamageHere(24166,28531,3000,8);
			Level.GetPlayer().ShakeHere(24166,28531);

			Level.saved_yourFlaksDestroyed = toInt(Level.saved_yourFlaksDestroyed + 1);
			Level.saved_f5dead = 1;

			MoveFlakPointer();
			FlaksDestroyed();
		}
		if(s=6)
		{
			Level.AdvanceObjectives(1);
			if( Level.saved_CurObjective = 10)
			{
				Level.AdvanceObjectives(0);
			}

			if( Level.saved_CurObjective = 9 )
			{
				Chitty = Level.GetEntity( "truck" );
				Chitty.GoGoTruck();
				Level.LivingDead();
			}
		}
	}]

	OnUse[ (s)
	{
		if (GetID() = "Charg_1")
		{
			SetUsable(false);
			SetSkin(0);
			PlaySound(20);
			Delay(4,1);
		}
		if (GetID() = "Charg_2")
		{
			SetUsable(false);
			SetSkin(0);
			PlaySound(20);
			Delay(4,2);
		}
		if (GetID() = "Charg_3")
		{
			SetUsable(false);
			SetSkin(0);
			PlaySound(20);
			Delay(4,3);
		}
		if (GetID() = "Charg_4")
		{
			SetUsable(false);
			SetSkin(0);
			PlaySound(20);
			Delay(4,4);
		}
		if (GetID() = "Charg_5")
		{
			SetUsable(false);
			SetSkin(0);
			PlaySound(20);
			Delay(4,5);
		}
		if (GetID() = "Charg_6")
		{
			chrg6 = Level.GetEntity("Charg_6");
			chrg6.SetUsable(false);
			chrg6.SetSkin(0);
			chrg6.Delay(0,6);
		}
		if (GetID() = "Charg_7")
		{
			SetUsable(false);
			SetSkin(0);
			Delay(0,6);
		}
		if (GetID() = "Charg_8")
		{
			SetUsable(false);
			SetSkin(0);
			Delay(0,6);
		}
		if (GetID() = "Charg_9")
		{
			SetUsable(false);
			SetSkin(0);
			Delay(0,6);
		}
	} ]

	FlaksDestroyed[ ()
	{
		n = Level.saved_CurObjective;
		if( n=4 )
		{
			MetalDoor = Level.GetEntity("door1");
			Level.SetCellBlocking( 100, 99 , 0);
			DestroyObject(MetalDoor);
			dude = Level.GetEntity("brach");
			dude.SetPosition(25984,25216,2109);
			dude.GoFindOut();
		}
		if( Level.saved_CurObjective < 5)
		{
			Level.AdvanceObjectives(1);
			if( n=5 )
			{
				Level.AdvanceObjectives(0);
			}
		}else{
			Level.AdvanceObjectives(0);
		}
	}]

	MoveFlakPointer[ ()
	{
		Level.Spew(" ");
		Level.Spew("--> MoveFlakPointer()");
		Level.Spew("        CurObjective:  " # Level.saved_curFlakObj);

		Level.ObjectiveComplete( Level.saved_curFlakObj );
		Level.SetObjectiveActive( Level.saved_curFlakObj, false );

		Level.saved_curFlakObj = toInt(Level.saved_curFlakObj + 1 );
		Level.SetObjectiveActive( Level.saved_curFlakObj, true );

		if( Level.saved_f1dead = 0 )
		{
			Level.Spew("        Pointer moved to Flak 1");
			Level.NewObjectiveXY( Level.saved_curFlakObj, 30230, 5284);
			return;
		}

		if( Level.saved_f2dead = 0 )
		{
			Level.Spew("        Pointer moved to Flak 2");
			Level.NewObjectiveXY( Level.saved_curFlakObj, 32500, 10378);
			return;
		}

		if( Level.saved_f3dead = 0 )
		{
			Level.Spew("        Pointer moved to Flak 3");
			Level.NewObjectiveXY( Level.saved_curFlakObj, 34340, 16512);
			return;
		}

		if( Level.saved_f4dead = 0 )
		{
			Level.Spew("        Pointer moved to Flak 4");
			Level.NewObjectiveXY( Level.saved_curFlakObj, 30046, 22120);
			return;
		}

		if( Level.saved_f5dead = 0 )
		{
			Level.Spew("        Pointer moved to Flak 5");
			Level.NewObjectiveXY( Level.saved_curFlakObj, 23972, 28254);
			return;
		}

		if( Level.saved_yourFlaksDestroyed > 4 )
		{
			Level.Spew("        Flak counting objectives completed.");
			Level.ObjectiveComplete(5);
			Level.SetObjectiveActive(6,true);
		}

		Level.Spew("<-- MoveFlakPointer()");
	}]
}