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(); }