void RadarScreen::Refresh()	{

		int x, y;
		EifIterator  GateIt;
		EifIterator FlightPathIt;
		EifIterator AtLandmarkIt;
		Gate *CrntGate;
		AtLandmark *CrntAtLndmrk;
		FlightPath *CrntFlightPath;


		//Draw Boundary
		window
			(
			winleft_c   - POSITION_WIDTH,
			wintop_c    - POSITION_HEIGHT,
			winright_c  + POSITION_WIDTH,
			winbottom_c + POSITION_HEIGHT
			);

		textcolor (BOUNDARY_TEXT_COLOUR);
		textbackground (BOUNDARY_BACK_COLOUR);

		clrscr();

		// DrawGates
		GateIt = Gates_c.Iterator();
		while (!GateIt.Finished())	{
			CrntGate = Gates_c.Item (GateIt);

			x = CrntGate->GrndPos().X() * POSITION_WIDTH + 1;
			if (CrntGate->GrndPos().X() == MAX_X)	{
				x++;
			}
			y = (MAX_Y - CrntGate->GrndPos().Y() + 1) * POSITION_HEIGHT;

			gotoxy (x, y);
			cprintf (PRINT_GATE);
			cprintf ("%d", CrntGate->ID());


			GateIt.Forth();
		}

		// Draw radar screen
		Select();
		clrscr();

		for (x = MIN_FIELD_X; x <= MAX_FIELD_X; x++)	{
			for (y = MIN_FIELD_Y; y <= MAX_FIELD_Y; y++)	{
				 PrintBackPosition (Position (x,y));

			}
			assert (True);
		}
	}
	ATCInput::ATCInput (Traffic *Traff_i, Landmarks *Lmarks_i) :

		//Screen initialisations
		ATCScreen
			(
			1,
			46,
			60,
			50,
			ATC_TEXT_MODE,
			BLACK,
			WHITE
			),
		CrntColumn_c (1),

		Traff_c (Traff_i),
		Gates_c (True),
		Airports_c (True),
		Beacons_c (True),
		NextProcess_c (&GetPlane),
		IsCmndToCollect_c (False),
		LastCmnd_c (NULL)
			{
		int GateIx, AirportIx, BeaconIx;
		Gate *CrntGate;
		Airport *CrntAirport;
		Beacon *CrntBeacon;


		for (GateIx = 0; GateIx < Lmarks_i->NoOfGates(); GateIx++)	{
			CrntGate = Lmarks_i->AllGates() [GateIx];

			Gates_c.Add (CrntGate, CrntGate->ID());
		}

		for (AirportIx = 0; AirportIx < Lmarks_i->NoOfAirports(); AirportIx++)	{
			CrntAirport = Lmarks_i->AllAirports() [AirportIx];

			Airports_c.Add (CrntAirport, CrntAirport->ID());
		}

		for (BeaconIx = 0; BeaconIx < Lmarks_i->NoOfBeacons(); BeaconIx++)	{
			CrntBeacon = Lmarks_i->AllBeacons() [BeaconIx];

			Beacons_c.Add (CrntBeacon, CrntBeacon->ID());
		}
	}
	CmndInput::CmndInput
		(
		Landmarks *Lmarks_i,
		Traffic *Traff_i
		) :

		Traff_c (Traff_i),
		IsCmndToCollect_c (False),
		LastCmnd_c (NULL)

			{
		int GateIx, AirportIx, BeaconIx;
		Gate *CrntGate;
		Airport *CrntAirport;
		Beacon *CrntBeacon;


		Out_c.Refresh();

		for (GateIx = 0; GateIx < Lmarks_i->NoOfGates(); GateIx++)	{
			CrntGate = Lmarks_i->AllGates() [GateIx];

			Landmarks_c.Gates.Add (CrntGate, CrntGate->ID());
		}

		for (AirportIx = 0; AirportIx < Lmarks_i->NoOfAirports(); AirportIx++)	{
			CrntAirport = Lmarks_i->AllAirports() [AirportIx];

			Landmarks_c.Airports.Add (CrntAirport, CrntAirport->ID());
		}

		for (BeaconIx = 0; BeaconIx < Lmarks_i->NoOfBeacons(); BeaconIx++)	{
			CrntBeacon = Lmarks_i->AllBeacons() [BeaconIx];

			Landmarks_c.Beacons.Add (CrntBeacon, CrntBeacon->ID());
		}
		SetForNewCmnd();

	}