Ejemplo n.º 1
0
char processBrakeCommand(char commandCode, void* commandData, void* responseData) {
   switch(commandCode) {
      case SET_BRAKE:
	 setBrake(*((char*)commandData));
	 break;
      case GET_BRAKE:
	 getBrake((char*) responseData);
	 break; 
   }
}
Ejemplo n.º 2
0
void Vehicle::setInput(const VehicleInput & input)
{
	setSteering(input.controls[VehicleInput::STEER]);
	setThrottle(input.controls[VehicleInput::THROTTLE]);
	setBrake(input.controls[VehicleInput::BRAKE]);
	setHandBrake(input.controls[VehicleInput::HBRAKE]);
	setClutch(1 - input.controls[VehicleInput::CLUTCH]);
	setNOS(input.controls[VehicleInput::NOS]);

	setGear(transmission.getGear() + input.shiftgear);
	autoshift = (input.logic & VehicleInput::AUTOSHIFT);
	autoclutch = (input.logic & VehicleInput::AUTOCLUTCH);
	setABS(input.logic & VehicleInput::ABS);
	setTCS(input.logic & VehicleInput::TCS);
	if (input.logic & VehicleInput::STARTENG)
		startEngine();
	if (input.logic & VehicleInput::RECOVER)
		rolloverRecover();
}
Ejemplo n.º 3
0
bool GameDriver::prerenderUpdate(float frameTime)
{
	auto car = mWorld.getCar();
	if(!mBrake)
		car->setThrottle(mThrottle);
	if(!mThrottle)
		car->setBrake(mBrake);

	if((mSteeringVelocity > 0.0f && mSteering < 0.0f) ||
			(mSteeringVelocity < 0.0f && mSteering > 0.0f))
		mSteering = 0.0f;

	if(mSteeringVelocity) {
		mSteering += mSteeringVelocity * frameTime;
		mSteering = Common::clamp(-1.0f, mSteering, 1.0f);
	}

	if(!mSteeringWithMouse && mSteeringVelocity == 0.0f && mSteering != 0.0f) {
		if(fabs(mSteering) < 4.0f * frameTime)
			mSteering = 0.0f;
		else if(mSteering < 0.0f)
			mSteering += 4.0f * frameTime;
		else if(mSteering > 0.0f)
			mSteering -= 4.0f * frameTime;
	}

	car->setSteering(mSteering);
	mWorld.updatePhysics(frameTime);
	mZoom += mZoomSpeed * frameTime;
	mZoom = mRenderer.setZoom(mZoom);
	mRenderer.setSteering(mThrottle, mBrake, mSteering);

	if(mDebugDisplay.check(frameTime)) {
		mRenderer.updateDebug(&mWorld);
	}
	return false;
}