forked from Mirrorlandia_minetest/minetest
On Android enable always fast
Invert the meaning of holding down the fast button (i.e. holding down the fast button -- if there is one -- means walk), unless performing an action, sneaking or jumping. Still requires fast move to be toggled on (and fast priv)
This commit is contained in:
parent
bf06b68c96
commit
ff924ef0dc
40
src/game.cpp
40
src/game.cpp
@ -2969,19 +2969,37 @@ void Game::updatePlayerControl(const CameraOrientation &cam)
|
||||
cam.camera_pitch,
|
||||
cam.camera_yaw
|
||||
);
|
||||
|
||||
u32 keypress_bits =
|
||||
( (u32)(input->isKeyDown(keycache.key[KeyCache::KEYMAP_ID_FORWARD]) & 0x1) << 0) |
|
||||
( (u32)(input->isKeyDown(keycache.key[KeyCache::KEYMAP_ID_BACKWARD]) & 0x1) << 1) |
|
||||
( (u32)(input->isKeyDown(keycache.key[KeyCache::KEYMAP_ID_LEFT]) & 0x1) << 2) |
|
||||
( (u32)(input->isKeyDown(keycache.key[KeyCache::KEYMAP_ID_RIGHT]) & 0x1) << 3) |
|
||||
( (u32)(input->isKeyDown(keycache.key[KeyCache::KEYMAP_ID_JUMP]) & 0x1) << 4) |
|
||||
( (u32)(input->isKeyDown(keycache.key[KeyCache::KEYMAP_ID_SPECIAL1]) & 0x1) << 5) |
|
||||
( (u32)(input->isKeyDown(keycache.key[KeyCache::KEYMAP_ID_SNEAK]) & 0x1) << 6) |
|
||||
( (u32)(input->getLeftState() & 0x1) << 7) |
|
||||
( (u32)(input->getRightState() & 0x1) << 8
|
||||
);
|
||||
|
||||
#ifdef ANDROID
|
||||
/* For Android, invert the meaning of holding down the fast button (i.e.
|
||||
* holding down the fast button -- if there is one -- means walk), unless
|
||||
* performing an action, sneaking or jumping.
|
||||
*/
|
||||
const u32 autofast_exludebits =
|
||||
(1U << 4) | (1U << 6) // jump, sneak
|
||||
| (1U << 7) | (1U << 8); // left state, right state
|
||||
|
||||
if ((keypress_bits & autofast_exludebits) == 0) {
|
||||
control.aux1 = control.aux1 ^ true;
|
||||
keypress_bits ^= ((u32)(1U << 5));
|
||||
}
|
||||
#endif
|
||||
|
||||
client->setPlayerControl(control);
|
||||
LocalPlayer *player = client->getEnv().getLocalPlayer();
|
||||
player->keyPressed =
|
||||
( (u32)(input->isKeyDown(keycache.key[KeyCache::KEYMAP_ID_FORWARD]) & 0x1) << 0) |
|
||||
( (u32)(input->isKeyDown(keycache.key[KeyCache::KEYMAP_ID_BACKWARD]) & 0x1) << 1) |
|
||||
( (u32)(input->isKeyDown(keycache.key[KeyCache::KEYMAP_ID_LEFT]) & 0x1) << 2) |
|
||||
( (u32)(input->isKeyDown(keycache.key[KeyCache::KEYMAP_ID_RIGHT]) & 0x1) << 3) |
|
||||
( (u32)(input->isKeyDown(keycache.key[KeyCache::KEYMAP_ID_JUMP]) & 0x1) << 4) |
|
||||
( (u32)(input->isKeyDown(keycache.key[KeyCache::KEYMAP_ID_SPECIAL1]) & 0x1) << 5) |
|
||||
( (u32)(input->isKeyDown(keycache.key[KeyCache::KEYMAP_ID_SNEAK]) & 0x1) << 6) |
|
||||
( (u32)(input->getLeftState() & 0x1) << 7) |
|
||||
( (u32)(input->getRightState() & 0x1) << 8
|
||||
);
|
||||
player->keyPressed = keypress_bits;
|
||||
|
||||
//tt.stop();
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user