// ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
//		¥ CStrArrayStore::AllocateStorage						/*e*/
// ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ
// creates new elements pointing to an empty CCString. The array is completely destructed by the stack frame upon it's
// deletion
void CStrArrayStore::AllocateStorage(
	CProgram		&ioState,
	UInt32			inNumElements)
{
/*	mArray.InsertItemsAt(inNumElements,LArray::index_Last,(CCString*)0);
	
	for (ArrayIndexT index=1; index<=inNumElements; index++)
	{
		CCString		*str=new CCString;
		ThrowIfMemFull_(str);
		mArray[index]=str;
	}*/
	
	
	UInt32			wasCount=mArray.GetCount();

	if (inNumElements>wasCount)				// add new ones
	{
		mArray.InsertItemsAt(inNumElements-mArray.GetCount(),LArray::index_Last,(CCString*)0);
		
		// zero the ones which existed
		CreateStrings(inNumElements-wasCount,wasCount+1);
		ClearStrings(wasCount,1);
	}
	else if (inNumElements<wasCount)		// delete old ones
	{
		DeleteStrings(wasCount-inNumElements,inNumElements+1);
		mArray.RemoveItemsAt(wasCount-inNumElements,inNumElements+1);
		ClearStrings(inNumElements,1);
	}
	else
		ClearStrings(wasCount,1);

}
Exemple #2
0
void ICPClass::NewMode(int mode)
{
	AircraftClass *playerAC = SimDriver.GetPlayerAircraft();

	//Clear our Flags
	ClearFlags();
	//Clear our strings
	ClearStrings();
	
	LastMode = mICPTertiaryMode;
	mICPTertiaryMode = mode;

	ResetSubPages();
	Manual_Input = FALSE;
	MadeInput = FALSE;

	ClearCount = 0;
	InputsMade = 0;

	playerAC->FCC->SetStptMode(FireControlComputer::FCCWaypoint);
	playerAC->FCC->waypointStepCmd = 127;

	switch (mode)
	{
	case COMM1_BUTTON:
		LeaveCNI();
		SetICPFlag(ICPClass::MODE_COMM1);
		if(VM) 
			VM->SetRadio(0);
		WhichRadio = 0;
		ExecCOMM1Mode();
		break;
	case COMM2_BUTTON:
		LeaveCNI();
		SetICPFlag(ICPClass::MODE_COMM2);
		if(VM) 
			VM->SetRadio(1);
		WhichRadio = 1;
		ExecCOMM2Mode();
		break;
	case LIST_BUTTON:
		LeaveCNI();
		SetICPFlag(ICPClass::MODE_LIST);
		SetICPFlag(ICPClass::EDIT_STPT);
		ExecLISTMode();
		break;
	case IFF_BUTTON:
		LeaveCNI();
		SetICPFlag(ICPClass::MODE_IFF);
		ExecIFFMode();
		break;
	default:
		break;
	}
}
Exemple #3
0
void ICPClass::ChangeToCNI(void)
{
	AircraftClass *playerAC = SimDriver.GetPlayerAircraft();

	ResetSubPages();
	if (playerAC && playerAC->FCC)
	{
		playerAC->FCC->SetStptMode(FireControlComputer::FCCWaypoint);
		playerAC->FCC->waypointStepCmd = 127;
	}
	ClearFlags();
	ClearStrings();
	ClearString();
	ClearDigits();
	ClearCount = 0;
	InputsMade = 0;
	SetICPFlag(ICPClass::MODE_CNI);
	SetICPFlag(ICPClass::EDIT_STPT);
	LaserLine = 1;
}
Exemple #4
0
void ICPClass::HandleInput(int mode, CPButtonObject *pbutton) 
{
	AircraftClass *playerAC = SimDriver.GetPlayerAircraft();

	if(!g_bRealisticAvionics)
	{
		//MI original code
		if(mode == AA_BUTTON || mode == AG_BUTTON || mode == NAV_BUTTON) 
		{
			if(pbutton != mpPrimaryExclusiveButton) 
			{
				mpPrimaryExclusiveButton->SetCurrentState(0);
				mICPPrimaryMode				= mode;
				mpPrimaryExclusiveButton	= pbutton;
				if(mICPSecondaryMode == NONE_MODE) 
				{
					mUpdateFlags |= CNI_UPDATE;
					ExecCNIMode();
				}
			}
		}
		else if(mode == PREV_BUTTON || mode == NEXT_BUTTON) 
		{
			HandlePrevNext(mode, mICPSecondaryMode);
		}
		else if(mode == ENTR_BUTTON) 
		{
			HandleENTR(mICPSecondaryMode);
		}
		else if(mode == COMM1_BUTTON || mode == COMM2_BUTTON) 
		{
			if(pbutton != mpTertiaryExclusiveButton) 
			{
				mpTertiaryExclusiveButton->SetCurrentState(0);
				mICPTertiaryMode				= mode;
				mpTertiaryExclusiveButton	= pbutton;
				mUpdateFlags |= CNI_UPDATE;
				if(VM) {
					if(mode == COMM1_BUTTON) 
					{
						VM->SetRadio(0);
					}
					else 
					{
						VM->SetRadio(1);
					}
				}
			}				
		}
		else 
		{
			if(pbutton == mpSecondaryExclusiveButton) 
			{
				mICPSecondaryMode = NONE_MODE;
				mpSecondaryExclusiveButton->SetCurrentState(0);
				mpSecondaryExclusiveButton  = NULL;
				mUpdateFlags |= CNI_UPDATE;
				ExecCNIMode();
			}
			else 
			{
				if(mpSecondaryExclusiveButton != NULL) 
				{
					mpSecondaryExclusiveButton->SetCurrentState(0);			
				}

				mICPSecondaryMode				= mode;
				mpSecondaryExclusiveButton = pbutton;


				switch(mode) 
				{
				case NONE_MODE:
					break;
				case STPT_BUTTON:
					playerAC->FCC->SetStptMode(FireControlComputer::FCCWaypoint);
					playerAC->FCC->waypointStepCmd = 127;
					mUpdateFlags |= STPT_UPDATE;
					break;
				case DLINK_BUTTON:
					playerAC->FCC->SetStptMode(FireControlComputer::FCCDLinkpoint);
					playerAC->FCC->waypointStepCmd = 127;
					mUpdateFlags |= DLINK_UPDATE;
					ExecDLINKMode();
					break;
				case MARK_BUTTON:
					playerAC->FCC->SetStptMode(FireControlComputer::FCCMarkpoint);
					playerAC->FCC->waypointStepCmd = 127;
					mUpdateFlags |= MARK_UPDATE;
					ExecMARKMode();
					break;
				case ILS_BUTTON:
					mUpdateFlags |= ILS_UPDATE;
					ExecILSMode();
					break;
				case CRUS_BUTTON:
					mUpdateFlags |= CRUS_UPDATE;
					ExecCRUSMode();
					break;
				case FACK_BUTTON:
					mUpdateFlags |= FACK_UPDATE;
				PNUpdateFACKMode (NEXT_BUTTON, FACK_BUTTON);
					ExecFACKMode();
					break;
				case ALOW_BUTTON:
					mUpdateFlags |= ALOW_UPDATE;
					break;
				}
			}
		}
	}
	else
	{
		if(!playerAC->HasPower(AircraftClass::UFCPower) ||
			playerAC->mFaults->GetFault(FaultClass::ufc_fault))
			return;

		//Master Modes
		if(mode == AA_BUTTON || mode == AG_BUTTON || mode == NAV_BUTTON) 
		{
			mICPPrimaryMode	= mode;
			if(IsICPSet(ICPClass::MODE_LIST) && mICPSecondaryMode == EIGHT_BUTTON)
				ExecMODEMode();
			if(mode == AA_BUTTON)
			{
				IN_AA = TRUE;
				IN_AG = FALSE;
			}
			else if(mode == AG_BUTTON)
			{
				IN_AA = FALSE;
				IN_AG = TRUE;
			}
		}

		/****************************************************/
		/*These are OVERRIDE buttons. With each of these	*/
		/*we can get into specific DED pages, no matter in	*/
		/*what mode we've been before.						*/
		/****************************************************/

		else if(mode == COMM1_BUTTON || mode == COMM2_BUTTON ||
			mode == LIST_BUTTON || mode == IFF_BUTTON) 
		{
			//This results in a new DED page, clear our strings
			ClearStrings();

			//Did we push the same button as before?
			if(mICPTertiaryMode == mode && mode != CNI_MODE)
				PushedSame(LastMode);
			else
				NewMode(mode);
		}
		//END OVERRIDE FUNCTIONS
		//special case, FACK
		else if(mode == FACK_BUTTON)
		{
		    if (playerAC && playerAC->mFaults) { 
			if (m_FaultDisplay == false) { // was off
			    m_FaultDisplay = true; // now on
			    //have a fault, update our display
			    playerAC->mFaults->GetFirstFault(&m_subsystem, &m_function);
			}
			else { // move to next fault
			    if (playerAC->mFaults->GetFFaultCount() <= 0 ||
				playerAC->mFaults->GetNextFault(&m_subsystem, &m_function) == FALSE)
				m_FaultDisplay = false;
			}
			mUpdateFlags |= FACK_UPDATE; // we need to do some work
		    }
		}

		//SENCONDAR FUNCTIONS
		else if(mode == PREV_BUTTON || mode == NEXT_BUTTON) 
		{
			ClearStrings();
			if(IsICPSet(ICPClass::EDIT_STPT))
				PNUpdateSTPTMode(mode, 0);

			else if(mICPSecondaryMode == CRUS_MODE)
				StepHOMERNGSTPT(mode);
			else if(IsICPSet(ICPClass::MODE_CNI) && mICPSecondaryMode == SEVEN_BUTTON)
				PNUpdateMARKMode(mode, 0);

			else if(IsICPSet(ICPClass::EDIT_VHF) || IsICPSet(ICPClass::EDIT_UHF))
				PNUpdateCOMMMode(mode, 0);

			else if(IsICPSet(ICPClass::MODE_DLINK))
				PNUpdateDLINKMode(mode, 0);

			else if(IsICPSet(ICPClass::MODE_COMM1))//Cobra 10/31/04 TJL
			{
				if(mode == NEXT_BUTTON)
				{
					if(PREUHF == NUM_COMM_CHANNELS)	// ASSO:
						PREUHF = 1;
					else
						PREUHF++;
				}
				else
				{
					if(PREUHF == 1)
						PREUHF = NUM_COMM_CHANNELS;	// ASSO:
					else
						PREUHF--;
				}
			}
			else if(IsICPSet(ICPClass::MODE_COMM2))
			{
				if(mode == NEXT_BUTTON)
				{
					if(PREVHF == NUM_COMM_CHANNELS)	// ASSO:
						PREVHF = 1;
					else
						PREVHF++;
				}
				else
				{
					if(PREVHF == 1)
						PREVHF = NUM_COMM_CHANNELS;	// ASSO:
					else
						PREVHF--;
				}
			}
			else if(IsICPSet(ICPClass::MODE_CNI) && mICPSecondaryMode == SIX_BUTTON)
			{
				if(mode == NEXT_BUTTON)
				{
					if(running)
					{
						running = FALSE;
						stopped = TRUE;
					}
					else if(stopped)
					{
						running = TRUE;
						stopped = FALSE;
					}
					else
					{
						Start = vuxGameTime;
						running = TRUE;
					}
				}
				else
				{
					Start = vuxGameTime;
					Difference = 0;
					running = FALSE;
					stopped = FALSE;
				}
			}
			else if(IsICPSet(ICPClass::MODE_LIST) && mICPSecondaryMode == EWS_MODE)
			{
				if(PGMFlare || PGMChaff)
					StepEWSProg(mode);
				else
					PNUpdateSTPTMode(mode, 0);
			}
			// Retro 3Jan2004 start
			else if ((g_bPilotEntertainment)&&(winamp)&&(IsICPSet(ICPClass::MISC_MODE) && mICPSecondaryMode == ZERO_MODE))
			{
				if (mode == PREV_BUTTON)
					winamp->VolDown();
				else if (mode == NEXT_BUTTON)
					winamp->VolUp();
			} // Retro 3Jan2004 end
		}
		else if(mode == ENTR_BUTTON) 
			ICPEnter();
		else if(mode == CLEAR_BUTTON)
		{
			if(IsICPSet(ICPClass::MODE_LIST) && mICPSecondaryMode == 0)
			{
				ClearStrings();
				ExecINTGMode();
				mICPSecondaryMode = 100;	//small hack
			}
			else
				ClearInput();
		}
		else if (mode == UP_MODE || mode == DOWN_MODE || mode == SEQ_MODE || mode == CNI_BUTTON)
		{
			if(mode == CNI_MODE)
				mICPTertiaryMode = CNI_MODE;
			CNISwitch(mode);

			// Retro 3Jan2004 start
			// Retro from here, kind of a hack having this here..
			if ((g_bPilotEntertainment)&&(winamp)&&(IsICPSet(ICPClass::MISC_MODE) && mICPSecondaryMode == ZERO_MODE))
			{
				if (mode == UP_MODE)
					winamp->Next();
				else if (mode == DOWN_MODE)
					winamp->Previous();
				else if (mode == SEQ_MODE)
					winamp->TogglePlayback();
			} // Retro 3Jan2004 end
		}
		//******************
		//******************
		//SECONDARY BUTTONS*
		//******************
		//******************

		//'1' BUTTON
		else if(mode == ONE_BUTTON)
		{
			if(CheckMode())
				return;
			else if(ManualInput())
				HandleManualInput(mode);
			else if(IsICPSet(ICPClass::EDIT_JAMMER) || IsICPSet(ICPClass::EWS_EDIT_BINGO))
				EWSOnOff();
			else
				OneButton(mode);
		}
		//'2' BUTTON
		else if(mode == TWO_BUTTON)
		{
			if(CheckMode())
				return;
			else if(ManualInput())
				HandleManualInput(mode);
			else if(IsICPSet(ICPClass::EDIT_JAMMER) || IsICPSet(ICPClass::EWS_EDIT_BINGO))
				EWSOnOff();
			else
				TwoButton(mode);
		}
		//'3' BUTTON
		else if(mode == THREE_BUTTON)
		{
			if(CheckMode())
				return;
			else if(ManualInput())
				HandleManualInput(mode);
			else if(IsICPSet(ICPClass::EDIT_JAMMER) || IsICPSet(ICPClass::EWS_EDIT_BINGO))
				EWSOnOff();
			else
				ThreeButton(mode);
		}
		//'4' BUTTON
		else if(mode  == FOUR_BUTTON)
		{
			if(CheckMode())
				return;
			else if(ManualInput())
				HandleManualInput(mode);
			else if(IsICPSet(ICPClass::EDIT_JAMMER) || IsICPSet(ICPClass::EWS_EDIT_BINGO))
				EWSOnOff();
			else
				FourButton(mode);
		}
		//'5' BUTTON
		else if(mode == FIFE_BUTTON)
		{
			if(CheckMode())
				return;
			else if(ManualInput())
				HandleManualInput(mode);
			else if(IsICPSet(ICPClass::EDIT_JAMMER) || IsICPSet(ICPClass::EWS_EDIT_BINGO))
				EWSOnOff();
			else
				FifeButton(mode);
		}
		//'6' BUTTON
		else if(mode == SIX_BUTTON)
		{
			if(CheckMode())
				return;
			else if(ManualInput())
				HandleManualInput(mode);
			else if(IsICPSet(ICPClass::EDIT_JAMMER) || IsICPSet(ICPClass::EWS_EDIT_BINGO))
				EWSOnOff();
			else
				SixButton(mode);
		}
		//'7' BUTTON
		else if(mode == SEVEN_BUTTON)
		{
			if(CheckMode())
				return;
			else if(ManualInput())
				HandleManualInput(mode);
			else if(IsICPSet(ICPClass::EDIT_JAMMER) || IsICPSet(ICPClass::EWS_EDIT_BINGO))
				EWSOnOff();
			else
				SevenButton(mode);
		}
		//'8' BUTTON
		else if(mode == EIGHT_BUTTON)
		{
			if(CheckMode())
				return;
			else if(ManualInput())
				HandleManualInput(mode);
			else if(IsICPSet(ICPClass::EDIT_JAMMER) || IsICPSet(ICPClass::EWS_EDIT_BINGO))
				EWSOnOff();
			else
				EightButton(mode);
		}
		//'9' BUTTON
		else if(mode == NINE_BUTTON)
		{
			if(CheckMode())
				return;
			else if(ManualInput())
				HandleManualInput(mode);
			else if(IsICPSet(ICPClass::EDIT_JAMMER) || IsICPSet(ICPClass::EWS_EDIT_BINGO))
				EWSOnOff();
			else
				NineButton(mode);
		}
		//'0' BUTTON
		else if(mode == ZERO_BUTTON)
		{
			if((IsICPSet(ICPClass::MODE_CNI) && mICPSecondaryMode == FIFE_BUTTON) && !IsICPSet(ICPClass::BLOCK_MODE))
			{
				if(Cruise_RNG)
				{
					if(GetCruiseIndex() == 1)
						SetCruiseIndex(-1);
					else
						SetCruiseIndex(1);
				}
				else if(Cruise_HOME)
				{
					if(GetCruiseIndex() == 2)
						SetCruiseIndex(-1);
					else
						SetCruiseIndex(2);
				}
				else if(Cruise_EDR)
				{
					if(GetCruiseIndex() == 3)
						SetCruiseIndex(-1);
					else
						SetCruiseIndex(3);
				}
				else
				{
					if(GetCruiseIndex() == 0)
						SetCruiseIndex(-1);
					else
						SetCruiseIndex(0);
				}
				return;
			}
			else if(IsICPSet(ICPClass::MISC_MODE) && mICPSecondaryMode == EIGHT_BUTTON)
			{
				if(ShowBullseyeInfo)
					ShowBullseyeInfo = FALSE;
				else
					ShowBullseyeInfo = TRUE;
				return;
			}
			if(CheckMode())
				return;
			else if(IsICPSet(ICPClass::EDIT_JAMMER) || IsICPSet(ICPClass::EWS_EDIT_BINGO))
				return;
			else if(ManualInput())
				HandleManualInput(mode);
			else
				ZeroButton(mode);
		}
		/*else if(mode == FACK_BUTTON)
		{
			ClearStrings();
			ClearFlags();
			SetICPFlag(ICPClass::MODE_FACK);
			PNUpdateFACKMode (NEXT_BUTTON, FACK_BUTTON);
			ExecFACKMode();
		}*/
	}
}
void ICPClass::ExecILSMode(void) 
{
	if(!g_bRealisticAvionics)
	{
		//MI Original code
		VU_ID							id;
		VU_ID							homeid;
		VU_ID							ilsid;
		BOOL							isValidILS;
		BOOL							isValidRWY;
		int							channel;
		char							rwyNum[4] = "";
		TacanList::StationSet	set;
		char							setchar;
		char							p_signaltype[10] = "";
		NavigationSystem::Type	type;
		static int					frame = 0;


		if(mUpdateFlags & ILS_UPDATE) 
		{
			mUpdateFlags &= ~ILS_UPDATE;

			if (gNavigationSys)
			{
				gNavigationSys->GetTacanVUID(NavigationSystem::ICP, &id);
			}
			else
			{
				id == FalconNullId;
			}

			if(id == FalconNullId) 
			{
				sprintf(mpLine1, "NO MISSION PRESETS");
				sprintf(mpLine2, "");
				sprintf(mpLine3, "");
			}
			else 
			{
				
				type = gNavigationSys->GetType();

				// Line #1
				sprintf(mpLine1, "");

				// Line #2
				if(type == NavigationSystem::AIRBASE) 
				{
					gNavigationSys->GetHomeID(&homeid);

					isValidILS = gNavigationSys->GetILSAttribute(NavigationSystem::AIRBASE_ID, &ilsid);
					isValidRWY = gNavigationSys->GetILSAttribute(NavigationSystem::RWY_NUM, (char*)rwyNum);
			
					if(id == homeid) 
					{
						sprintf(mpLine2, "HOME RUNWAY ");
					}
					else 
					{
						sprintf(mpLine2, "ALTERNATE RUNWAY ");
					}

					if(id == ilsid && isValidILS && isValidRWY) 
					{
						strcat(mpLine2, rwyNum);
					}
				}	
				else if(type == NavigationSystem::TANKER) 
				{
					sprintf(mpLine2, "TANKER");
				}
				else if(type == NavigationSystem::CARRIER) 
				{
					if(id == homeid) 
					{
						sprintf(mpLine2, "HOME CARRIER");
					}
					else 
					{
						sprintf(mpLine2, "ALTERNATE CARRIER");
					}
				}

				// Line #3
				gNavigationSys->GetTacanChannel(NavigationSystem::ICP, &channel, &set);

				if(set == TacanList::X) {
					setchar = 'X';
				}
				else {
					setchar = 'Y';
				}

				if(type == NavigationSystem::TANKER) {
					strcpy(p_signaltype, "AA-TR");			
				}		
				else {
					strcpy(p_signaltype, "TR");
				}

				sprintf(mpLine3, "TCN %-3d%c %s", channel, setchar, p_signaltype);
			}
		}
		else if (frame == 9) 
		{

			if (gNavigationSys)
			{
				gNavigationSys->GetTacanVUID(NavigationSystem::ICP, &id);
				type = gNavigationSys->GetType();
				if(type == NavigationSystem::AIRBASE) 
				{
					gNavigationSys->GetHomeID(&homeid);

					isValidILS = gNavigationSys->GetILSAttribute(NavigationSystem::AIRBASE_ID, &ilsid);
					isValidRWY = gNavigationSys->GetILSAttribute(NavigationSystem::RWY_NUM, (char*)rwyNum);
			
					if(id == homeid) {
						sprintf(mpLine2, "HOME RUNWAY ");
					}
					else {
						sprintf(mpLine2, "ALTERNATE RUNWAY ");
					}

					if(id == ilsid && isValidILS && isValidRWY) 
					{
						strcat(mpLine2, rwyNum);
					}
				}
			}
			else
			{
				id == FalconNullId;
			}

			frame = 0;
		}
		else 
		{

			frame++;
		}
	}
	else
	{
		ClearStrings();
		//MI modified for ICP stuff
		VU_ID							id;
		VU_ID							homeid;
		VU_ID							ilsid;
		char							rwyNum[4] = "";
		char							p_signaltype[10] = "";
		static int						frame = 0;

		HSICourse = static_cast<int>
			(OTWDriver.pCockpitManager->mpHsi->GetValue(CPHsi::HSI_VAL_DESIRED_CRS));

		if(gNavigationSys->GetControlSrc() == NavigationSystem::AUXCOMM)
			ILSBackup();
		else
		{
			if(gNavigationSys->GetTacanBand(NavigationSystem::ICP) == TacanList::X)
				TacanBand = 'X';
			else
				TacanBand = 'Y';
			if (gNavigationSys)
				gNavigationSys->GetTacanVUID(NavigationSystem::ICP, &id);
			else
				id == FalconNullId;

			if(id == FalconNullId) 
				ILSOn = 0;
			else 
			{
				//We SHOULD only have ILS when our Tacanband is == X
				if(TacanBand == 'X')
					ILSOn = 1;
				else 
					ILSOn = 0;
			}
			if(gNavigationSys->GetDomain(NavigationSystem::ICP) == TacanList::AA)
			{
				//Line1
				FillDEDMatrix(0,1,"TCN A/A TR");

				if(ILSOn ==1)
					FillDEDMatrix(0,18,"ILS ON");
				else
					FillDEDMatrix(0,18,"ILS OFF");
			}
			else
			{
				//Line1
				FillDEDMatrix(0,1,"TCN TR");
				if(ILSOn ==1)
					FillDEDMatrix(0,18,"ILS ON");
				else
					FillDEDMatrix(0,18,"ILS OFF");
			}			

			Digit1 = gNavigationSys->GetTacanChannel(NavigationSystem::ICP, 2);
			Digit2 = gNavigationSys->GetTacanChannel(NavigationSystem::ICP, 1);
			Digit3 = gNavigationSys->GetTacanChannel(NavigationSystem::ICP, 0);
			TacanChannel = (Digit1 * 100 + Digit2 * 10 + Digit3);
			
			//FakeILSFreq();
			sprintf(Freq, "%3.2f", gNavigationSys->GetCurTCNILS());
			//BEGIN LINE 3
			PossibleInputs = 3;
			if(ILSPageSel == 0)
				ScratchPad(2,8,12);
			else if(ILSPageSel == 1)
				ScratchPad(2,16,25);

			if(GetCMDSTR())
				FillDEDMatrix(2,17,"CMD STRG", 2);
			else
				FillDEDMatrix(2,17,"CMD STRG");
			//END LINE 3

			//BEGIN LINE 4
			FillDEDMatrix(3,1,"CHAN");
			ClearString();
			sprintf(tempstr,"%3.0d",TacanChannel);
			FillDEDMatrix(3,9,tempstr);
			FillDEDMatrix(3,14,"FREQ");
			FillDEDMatrix(3,19,Freq);
			//END LINE 4

			//BEGIN LINE 5
			FillDEDMatrix(4,1,"BAND");
			sprintf(tempstr,"%c(0)",TacanBand);
			FillDEDMatrix(4,9,tempstr);
			FillDEDMatrix(4,14,"CRS");
			sprintf(tempstr,"%d*",HSICourse);
			FillDEDMatrix(4,18,tempstr);
			//END LINE 5
		}
	}
}