mirror of
https://github.com/rwengine/openrw.git
synced 2024-11-22 10:22:52 +01:00
zero all input when player input is disabled
This commit is contained in:
parent
57edc3648b
commit
40f18dabb0
@ -187,18 +187,22 @@ void IngameState::tick(float dt) {
|
||||
|
||||
auto player = game->getPlayer();
|
||||
|
||||
// Force all input to 0 if player input is disabled
|
||||
/// @todo verify 0ing input is the correct behaviour
|
||||
const auto inputEnabled = player->isInputEnabled();
|
||||
|
||||
auto input = [&](GameInputState::Control c) {
|
||||
return world->state->input[0][c];
|
||||
return inputEnabled ? world->state->input[0][c] : 0.f;
|
||||
};
|
||||
auto pressed = [&](GameInputState::Control c) {
|
||||
return world->state->input[0].pressed(c) &&
|
||||
return inputEnabled && world->state->input[0].pressed(c) &&
|
||||
!world->state->input[1].pressed(c);
|
||||
};
|
||||
auto held = [&](GameInputState::Control c) {
|
||||
return world->state->input[0].pressed(c);
|
||||
return inputEnabled && world->state->input[0].pressed(c);
|
||||
};
|
||||
|
||||
if (player && player->isInputEnabled()) {
|
||||
if (player) {
|
||||
float viewDistance = 4.f;
|
||||
switch (camMode) {
|
||||
case IngameState::CAMERA_CLOSE:
|
||||
@ -337,7 +341,6 @@ void IngameState::tick(float dt) {
|
||||
/// @todo replace with correct sprint behaviour
|
||||
float speed = held(GameInputState::Sprint) ? 2.f : 1.f;
|
||||
|
||||
if (player->isInputEnabled()) {
|
||||
player->setRunning(!held(GameInputState::Walk));
|
||||
/// @todo find the correct behaviour for entering & exiting
|
||||
if (pressed(GameInputState::EnterExitVehicle)) {
|
||||
@ -376,9 +379,6 @@ void IngameState::tick(float dt) {
|
||||
}
|
||||
player->setLookDirection({movementAngle, 0.f});
|
||||
}
|
||||
} else {
|
||||
player->setMoveDirection(glm::vec3(0.f));
|
||||
}
|
||||
|
||||
float len2d = glm::length(glm::vec2(lookdir));
|
||||
float anglePitch = glm::atan(lookdir.z, len2d);
|
||||
|
Loading…
Reference in New Issue
Block a user