Example #1
0
File: sim.c Project: fouf/RAL
void handle_wm(UINT Msg)
{
	switch(Msg)
	{
		case WM_COMMAND:
		switch(LOWORD(Application->events.syswm.msg->wParam))
		{
			case IDM_EXIT1:
				Application->running = 0;
			break;					
			case IDM_START1:
				if(simulation.state == 0)
				{
					if(Gametimer->t_paused)
					{
						time_unpause(Gametimer);							
					}
					if(simulation_init())
					{
						setStatus("PvP initialized.");
						Application->clear = 1;
						simulation.state = 1;
					}
				}
			break;
		case IDM_ABOUT1:
			MessageBox(Application->hWnd, "Created by Fahid Jarmash\nHorton High School 2010-2011", "About", MB_OK | MB_ICONINFORMATION);
		break;
		case IDM_HELP1:
			// HELP
		break;
		}
	}
}
void central_data_init(){
		
		// init controls
		central_data.controls.rpy[ROLL]=0;
		central_data.controls.rpy[PITCH]=0;
		central_data.controls.rpy[YAW]=0;
		central_data.controls.thrust=-1.0;
		
		central_data.controls.run_mode = MOTORS_OFF;
		
		// init stabilisers
		stabilisation_copter_init(&central_data.stabiliser_stack);
		// central_data.stabilisers_stack = 

		central_data.simulation_mode=0;

		// init waypoint navigation
		central_data.number_of_waypoints = 0;		
		central_data.waypoint_set = false;
		central_data.waypoint_sending = false;
		central_data.waypoint_receiving = false;
		
		central_data.critical_landing = false;
		
		central_data.collision_avoidance = false;
		central_data.automatic_take_off = false;
		
		// default GPS home position
		central_data.position_estimation.local_position.origin.longitude=   HOME_LONGITUDE;
		central_data.position_estimation.local_position.origin.latitude =   HOME_LATITUDE;
		central_data.position_estimation.local_position.origin.altitude =   HOME_ALTITUDE;
		central_data.position_estimation.local_position.pos[0]=0;
		central_data.position_estimation.local_position.pos[1]=0;
		central_data.position_estimation.local_position.pos[2]=0;

		// init simulation
		simulation_init(&(central_data.sim_model),&(central_data.imu.attitude));
		central_data.sim_model.local_position = central_data.position_estimation.local_position;

}
Example #3
0
File: config.c Project: fouf/RAL
int CALLBACK Dialog_Proc(HWND hWnd, UINT Message, WPARAM wParam, LPARAM lParam)
{
	char buf[10];
	switch(Message)
	{
		case WM_CLOSE:
			DestroyWindow(simulation.Config);
			break;
		case WM_DESTROY:
			PostQuitMessage(0);
		break;
		case WM_COMMAND:
			switch(LOWORD(wParam))
			{
				case ID_PAUSE:
			 		if(Gametimer->t_paused)
					{
						time_unpause(Gametimer);
						SetDlgItemText(simulation.Config, ID_PAUSE, "Pause");
						SDL_WM_SetCaption("PvP", NULL);
						setStatus("PvP unpaused.");
					}
					else
					{
						time_pause(Gametimer);
						SetDlgItemText(simulation.Config, ID_PAUSE, "Unpause");
						SDL_WM_SetCaption("PvP - Paused", NULL);
						setStatus("PvP paused.");
					}
				break;
				case ID_STOP:
					time_unpause(Gametimer);
					simulation.state = 0;
					Application->clear = 1;
					simulation_cleanup();
					DestroyWindow(simulation.Config);	
				break;
				case ID_CLEAR:
					simulation_cleanup();
					cleanup_cells();
					simulation_render(0.01f);
					
				break;
				case IDC_UPDATETIME:
					GetDlgItemText(simulation.Config, IDC_TIMEDELAY, buf, 15);
					int delay = atoi(buf);
					if(delay >= 0 && delay < 10000)
					{
						simulation.tickdelay = delay;
					}
					GetDlgItemText(simulation.Config, IDC_GENERATIONTICK, buf, 15);
					int genpertick = atoi(buf);
					if(genpertick > 0)
					{		
						simulation.generations = genpertick;
					}
				break;
				case IDC_UPDATEAREA:
					GetDlgItemText(simulation.Config, IDC_WIDTH, buf, 15);
					int width = atoi(buf);
					if(width > 0 && width < 3500)
					{
						MAP_WIDTH = width;
					}
					GetDlgItemText(simulation.Config, IDC_HEIGHT, buf, 15);
					int height = atoi(buf);
					if(height > 0 && height < 3500)
					{
						MAP_HEIGHT = height;
					}
					GetDlgItemText(simulation.Config, IDC_SCREENWIDTH, buf, 15);
					width = atoi(buf);
					if(width > 0)
					{
						Application->r_w = width;
					}
					GetDlgItemText(simulation.Config, IDC_SCREENHEIGHT, buf, 15);
					height = atoi(buf);
					if(height > 0)
					{
						Application->r_h = height;
					}
					DestroyWindow(simulation.Config);
					simulation.Config = NULL;
					Application->Window = SDL_SetVideoMode(width, height + GRAPH_HEIGHT, 24, Application->Flags);
					simulation_init();					
					break;
					
				case ID_PICTURE:
					SDL_SaveBMP(Application->Window, "Screenshot.bmp");
				break;
			}
		break;
		default:
		return 0;
	}
	return 1;
}