⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 planner.cpp

📁 空战游戏flacon源码
💻 CPP
📖 第 1 页 / 共 3 页
字号:
		TheCampaign.MissionEvaluator->PreMissionEval(flight, static_cast<uchar>(pilotSlot));
	}
}

static void OpenReconWinCB(long,short hittype,C_Base *)
{
	C_Window *win;

	if(hittype != C_TYPE_LMOUSEUP)
		return;

	win=gMainHandler->FindWindow(RECON_WIN);
	if(win)
	{
		CloseAllRenderers(RECON_WIN);
		SetCursor(gCursors[CRSR_WAIT]);
		TheLoader.WaitForLoader();
		PositionCamera(&Recon,win,0);
		gMainHandler->ShowWindow(win);
		gMainHandler->WindowToFront(win);
		SetCursor(gCursors[CRSR_F16]);
	}
}

static void OpenTargetWinCB(long,short hittype,C_Base *)
{
	C_Window *win;

	if(hittype != C_TYPE_LMOUSEUP)
		return;

	win=gMainHandler->FindWindow(RECON_LIST_WIN);
	if(win)
	{
		CloseAllRenderers(RECON_WIN);
		gMainHandler->ShowWindow(win);
		gMainHandler->WindowToFront(win);
	}
}

static void CampaignAbortTakeoffCB(long,short hittype,C_Base *control)
{
	if(hittype != C_TYPE_LMOUSEUP)
		return;

	CancelCampaignCompression();
	UpdateRemoteCompression();
	gMainHandler->HideWindow(control->Parent_);
	ReadyToPlayMovie=TRUE;
}

static void CampaignTaxiCB(long ID,short hittype,C_Base *)
{
	if(hittype != C_TYPE_LMOUSEUP)
		return;

	if(ID == WAIT_TAXI)
		PlayerOptions.SetTaxiFlag(1);
	else
		PlayerOptions.SetTaxiFlag(0);
}

static BOOL CampaignCountDownCB(C_Base *me)
{
	Flight fl;
	WayPoint w;
	_TCHAR buffer[30];
	C_Text *txt;
	long time,hour,minute,second,day;
	int deltaTime = 0;

	txt=(C_Text*)me;
	if(!txt)
		return(FALSE);

	fl = FalconLocalSession->GetPlayerFlight();
	if(fl)
	{
		w = fl->GetCurrentUnitWP();
		if (w && w->GetWPAction() == WP_TAKEOFF)
			deltaTime = (w->GetWPArrivalTime() - vuxGameTime) / VU_TICS_PER_SECOND;
	}

	if (deltaTime < 0)
		deltaTime = 0;

	if(deltaTime != me->GetUserNumber(0))
	{
		txt->SetUserNumber(0,deltaTime);
		day=(long)(deltaTime/(24*60*60));
		time=(long)((deltaTime)-(day*24*60*60));
		hour=time/(60*60);
		minute=(time/60)%60;
		second=time%60;
		_stprintf(buffer,"%02d:%02d:%02d",hour,minute,second);
		txt->SetText(buffer);
		txt->Refresh();
		return(TRUE);
	}
	return(FALSE);
}

void HookupPlannerControls(long ID)
{
	C_Window *winme;
	C_Button *ctrl;
	C_ListBox *lbox;
	C_Panner *pnr;
	C_Text *txt;
	C_TreeList *tree;
	winme=gMainHandler->FindWindow(ID);

	if(winme == NULL)
		return;

	// Hook up IDs here

	ctrl=(C_Button*)winme->FindControl(SET_PRIORITIES);
	if(ctrl)
		ctrl->SetCallback(OpenPriorityCB);

	// Time/Date CB
	txt=(C_Text *)winme->FindControl(COUNTDOWN_ID);
	if(txt)
	{
		txt->SetTimerCallback(CampaignCountDownCB);
		txt->SetFlagBitOn(C_BIT_TIMER);
		txt->Refresh();
	}

	// Hook up Close Button
	ctrl=(C_Button *)winme->FindControl(CLOSE_WINDOW);
	if(ctrl)
	{
		if(ID == RECON_WIN)
		{
			ctrl->SetCallback(CloseReconWindowCB);
			winme->SetDragCallback(MoveRendererClient0CB);
		}
		else if(ID == RECON_LIST_WIN)
		{
			ctrl->SetCallback(CloseReconWindowCB);
		}
		else if(ID == MUNITIONS_WIN)
		{
			ctrl->SetCallback(CloseMunitionsWindowCB);
			winme->SetDragCallback(MoveRendererCB);
		}
		else
			ctrl->SetCallback(ClosePlannerWindowCB);
	}

	lbox=(C_ListBox *)winme->FindControl(LID_FLIGHT_CALLSIGN);
	if(lbox)
		lbox->SetCallback(GotoFlightCB);

	ctrl=(C_Button*)winme->FindControl(WAIT_TAXI);
	if(ctrl)
		ctrl->SetCallback(CampaignTaxiCB);

	ctrl=(C_Button*)winme->FindControl(WAIT_TAKEOFF);
	if(ctrl)
		ctrl->SetCallback(CampaignTaxiCB);

	ctrl=(C_Button*)winme->FindControl(WAIT_BACK);
	if(ctrl)
		ctrl->SetCallback(CampaignAbortTakeoffCB);

	ctrl=(C_Button *)winme->FindControl(ALL_CTRL);
	if(ctrl)
		ctrl->SetCallback(ToggleATOInfoCB);

	ctrl=(C_Button *)winme->FindControl(PREV_STPT);
	if(ctrl)
		ctrl->SetCallback(GotoPrevWaypointCB);

	ctrl=(C_Button *)winme->FindControl(NEXT_STPT);
	if(ctrl)
		ctrl->SetCallback(GotoNextWaypointCB);

	lbox=(C_ListBox *)winme->FindControl(ENR_ACTION_LISTBOX);
	if (lbox)
		lbox->SetCallback (set_waypoint_enroute_action);

	lbox=(C_ListBox *)winme->FindControl(ACTION_LISTBOX);
	if (lbox)
		lbox->SetCallback (set_waypoint_action);

	lbox=(C_ListBox *)winme->FindControl(FORM_LISTBOX);
	if (lbox)
		lbox->SetCallback (set_waypoint_formation);

	lbox=(C_ListBox *)winme->FindControl(CLIMB_LISTBOX);
	if (lbox)
		lbox->SetCallback (set_waypoint_climb_mode);

	ctrl=(C_Button *)winme->FindControl(MINIMIZE_WINDOW);
	if(ctrl)
		ctrl->SetCallback(MinMaxWindowCB);

	ctrl=(C_Button *)winme->FindControl(TGT_ASSIGN);
	if(ctrl)
		ctrl->SetCallback(OpenReconWindowCB);

	ctrl=(C_Button *)winme->FindControl(SET_TARGET);
	if(ctrl)
		ctrl->SetCallback(AssignTargetCB);

	ctrl=(C_Button *)winme->FindControl(SET_VC);
	if(ctrl)
		ctrl->SetCallback(AssignVCCB);

	ctrl=(C_Button *)winme->FindControl(LEFT_SPIN);
	if(ctrl)
		ctrl->SetCallback(SpinViewCB);

	ctrl=(C_Button *)winme->FindControl(RIGHT_SPIN);
	if(ctrl)
		ctrl->SetCallback(SpinViewCB);

	ctrl=(C_Button *)winme->FindControl(RECON_OVERHEAD);
	if(ctrl)
		ctrl->SetCallback(OverHeadCB);

	pnr=(C_Panner*)winme->FindControl(RECON_PANNER);
	if(pnr)
		pnr->SetCallback(ViewPannerCB);

	pnr=(C_Panner*)winme->FindControl(ZOOMER);
	if(pnr)
		pnr->SetCallback(ZoomPannerCB);

	pnr=(C_Panner*)winme->FindControl(PLANE_PANNER);
	if(pnr)
		pnr->SetCallback(ObjectPannerCB);

	pnr=(C_Panner*)winme->FindControl(PLANE_ZOOMER);
	if(pnr)
		pnr->SetCallback(ObjectZoomCB);

	ctrl=(C_Button *)winme->FindControl(AIR_1);
	if(ctrl)
		ctrl->SetCallback(SelectPlaneToArmCB);

	ctrl=(C_Button *)winme->FindControl(AIR_2);
	if(ctrl)
		ctrl->SetCallback(SelectPlaneToArmCB);

	ctrl=(C_Button *)winme->FindControl(AIR_3);
	if(ctrl)
		ctrl->SetCallback(SelectPlaneToArmCB);

	ctrl=(C_Button *)winme->FindControl(AIR_4);
	if(ctrl)
		ctrl->SetCallback(SelectPlaneToArmCB);

	lbox=(C_ListBox *)winme->FindControl(WEAPON_LIST_CTRL);
	if(lbox)
		lbox->SetCallback(ChooseWeaponListCB);

	ctrl=(C_Button *)winme->FindControl(SAVE_AS);
	if(ctrl)
		ctrl->SetCallback(SaveStoresCB);

	ctrl=(C_Button *)winme->FindControl(LOAD);
	if(ctrl)
		ctrl->SetCallback(LoadStoresCB);

	ctrl=(C_Button *)winme->FindControl(RESTORE);
	if(ctrl)
		ctrl->SetCallback(RestoreStoresCB);

	ctrl=(C_Button *)winme->FindControl(CLEAR);
	if(ctrl)
		ctrl->SetCallback(ClearStoresCB);

	ctrl=(C_Button *)winme->FindControl(CANCEL);
	if(ctrl)
		ctrl->SetCallback(CloseMunitionsWindowCB);

	ctrl=(C_Button *)winme->FindControl(OK);
	if(ctrl)
		ctrl->SetCallback(UseStoresCB);

	ctrl=(C_Button *)winme->FindControl(TOS_EARLIER);
	if(ctrl)
		ctrl->SetCallback(ChangeTOSCB);

	ctrl=(C_Button *)winme->FindControl(TOS_LATER);
	if(ctrl)
		ctrl->SetCallback(ChangeTOSCB);

	ctrl=(C_Button *)winme->FindControl(PATROL_LESS);
	if(ctrl)
		ctrl->SetCallback(ChangePatrolCB);

	ctrl=(C_Button *)winme->FindControl(PATROL_LONGER);
	if(ctrl)
		ctrl->SetCallback(ChangePatrolCB);

	ctrl=(C_Button *)winme->FindControl(AIRSPEED_DECR);
	if(ctrl)
		ctrl->SetCallback(ChangeAirspeedCB);

	ctrl=(C_Button *)winme->FindControl(AIRSPEED_INC);
	if(ctrl)
		ctrl->SetCallback(ChangeAirspeedCB);

	ctrl=(C_Button *)winme->FindControl(ALT_DECR);
	if(ctrl)
		ctrl->SetCallback(ChangeAltCB);

	ctrl=(C_Button *)winme->FindControl(ALT_INC);
	if(ctrl)
		ctrl->SetCallback(ChangeAltCB);

	ctrl=(C_Button *)winme->FindControl(TOS_LOCK);
	if(ctrl)
		ctrl->SetCallback(ChangeTOSLockCB);

	ctrl=(C_Button *)winme->FindControl(AIRSPEED_LOCK);
	if(ctrl)
		ctrl->SetCallback(ChangeAirspeedLockCB);

	ctrl=(C_Button *)winme->FindControl(GROUP1_FLAG);
	if(ctrl)
		ctrl->SetCallback(ToggleOOBTeamCB);

	ctrl=(C_Button *)winme->FindControl(GROUP2_FLAG);
	if(ctrl)
		ctrl->SetCallback(ToggleOOBTeamCB);

	ctrl=(C_Button *)winme->FindControl(GROUP3_FLAG);
	if(ctrl)
		ctrl->SetCallback(ToggleOOBTeamCB);

	ctrl=(C_Button *)winme->FindControl(GROUP4_FLAG);
	if(ctrl)
		ctrl->SetCallback(ToggleOOBTeamCB);

	ctrl=(C_Button *)winme->FindControl(GROUP5_FLAG);
	if(ctrl)
		ctrl->SetCallback(ToggleOOBTeamCB);

	ctrl=(C_Button *)winme->FindControl(GROUP6_FLAG);
	if(ctrl)
		ctrl->SetCallback(ToggleOOBTeamCB);

	ctrl=(C_Button *)winme->FindControl(GROUP7_FLAG);
	if(ctrl)
		ctrl->SetCallback(ToggleOOBTeamCB);

	ctrl=(C_Button *)winme->FindControl(GROUP8_FLAG);
	if(ctrl)
		ctrl->SetCallback(ToggleOOBTeamCB);

	ctrl=(C_Button *)winme->FindControl(AF_FILTER);
	if(ctrl)
		ctrl->SetCallback(ToggleOOBFilterCB);

	ctrl=(C_Button *)winme->FindControl(ARMY_FILTER);
	if(ctrl)
		ctrl->SetCallback(ToggleOOBFilterCB);

	ctrl=(C_Button *)winme->FindControl(NAVY_FILTER);
	if(ctrl)
		ctrl->SetCallback(ToggleOOBFilterCB);

	ctrl=(C_Button *)winme->FindControl(OBJECTIVE_FILTER);
	if(ctrl)
		ctrl->SetCallback(ToggleOOBFilterCB);

	ctrl=(C_Button *)winme->FindControl(UNIT_SQUADRON_TAB);
	if(ctrl)
		ctrl->SetCallback(SquadronAirUnitCB);

	ctrl=(C_Button *)winme->FindControl(UNIT_PILOT_TAB);
	if(ctrl)
		ctrl->SetCallback(PilotAirUnitCB);

	ctrl=(C_Button *)winme->FindControl(OOB_UNIT_FIND);
	if(ctrl)
		ctrl->SetCallback(OOBFindCB);

	ctrl=(C_Button *)winme->FindControl(OOB_UNIT_INFO);
	if(ctrl)
		ctrl->SetCallback(OOBInfoCB);

	ctrl=(C_Button *)winme->FindControl(FIND_UNIT);
	if(ctrl)
		ctrl->SetCallback(SquadronFindCB);

	ctrl=(C_Button *)winme->FindControl(OPEN_RECON_TARGETS);
	if(ctrl)
		ctrl->SetCallback(OpenTargetWinCB);

	ctrl=(C_Button *)winme->FindControl(OPEN_RECON);
	if(ctrl)
		ctrl->SetCallback(OpenReconWinCB);

	tree=(C_TreeList *)winme->FindControl(ATO_ALL_TREE);
	if(tree)
	{
		tree->SetCallback(RedrawTreeWindowCB);
		gATOAll=tree;
	}
	tree=(C_TreeList *)winme->FindControl(ATO_PACKAGE_TREE);
	if(tree)
	{
		tree->SetCallback(RedrawTreeWindowCB);
		gATOPackage=tree;
	}
	tree=(C_TreeList *)winme->FindControl(OOB_TREE);
	if(tree)
	{
		tree->SetCallback(RedrawTreeWindowCB);
		gOOBTree=tree;
	}
	tree=(C_TreeList *)winme->FindControl(RECON_TREE);
	if(tree)
	{
		TargetTree=tree;
		tree->SetSortType(TREE_SORT_CALLBACK);
		tree->SetSortCallback(ReconListSortCB);
	}
// Help GUIDE thing
	ctrl=(C_Button*)winme->FindControl(UI_HELP_GUIDE);
	if(ctrl)
		ctrl->SetCallback(UI_Help_Guide_CB);

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -