Beispiel #1
0
void Android_IN_Move(ticcmd_t* cmd )
{

	cmd->ucmd.forwardmove  += forwardmove_android * forwardmove[1];
	cmd->ucmd.sidemove  += sidemove_android   * sidemove[1];

	//LOGI("Side: %d   %d",(int)(sidemove_android  * sidemove[1]),(int)(-look_yaw_joy * 1000));

	switch(look_pitch_mode)
	{
	case LOOK_MODE_MOUSE:
		G_AddViewPitch(look_pitch_mouse * 30000);
		look_pitch_mouse = 0;
		break;
	case LOOK_MODE_JOYSTICK:
		G_AddViewPitch(-look_pitch_joy * 1000);
		break;
	}


	switch(look_yaw_mode)
	{
	case LOOK_MODE_MOUSE:
		G_AddViewAngle(-look_yaw_mouse * 50000);
		look_yaw_mouse = 0;
		break;
	case LOOK_MODE_JOYSTICK:
		G_AddViewAngle(-look_yaw_joy * 1000);
		break;
	}

	if (cmd_to_run)
	{
		AddCommandString(cmd_to_run,0);
		cmd_to_run = NULL;
	}
}
Beispiel #2
0
void Stereo3D::setViewDirection(FGLRenderer& renderer) {
	// Set HMD angle parameters for NEXT frame
	static float previousYaw = 0;
	if (mode == OCULUS_RIFT) {
		PitchRollYaw prw = getHeadOrientation(renderer);
		if (oculusTracker->isGood()) {
			oculusTracker->update(); // get new orientation from headset.
			double dYaw = prw.yaw - previousYaw;
			G_AddViewAngle(-32768.0*dYaw/3.14159); // determined empirically
			previousYaw = prw.yaw;

			// Pitch
			int pitch = -32768/3.14159*prw.pitch;
			int dPitch = (pitch - viewpitch/65536); // empirical
			G_AddViewPitch(-dPitch);

			// Roll can be local, because it doesn't affect gameplay.
			renderer.mAngles.Roll = prw.roll * 180.0 / 3.14159;
		}
	}
}