TouchControls: Fix outdated player controls in TOSERVER_INTERACT

This commit is contained in:
grorp 2024-08-31 20:45:32 +02:00 committed by SmallJoker
parent ecf535ee83
commit 9e198fc22c

@ -1446,7 +1446,7 @@ void Game::copyServerClientCache()
{ {
// It would be possible to let the client directly read the media files // It would be possible to let the client directly read the media files
// from where the server knows they are. But aside from being more complicated // from where the server knows they are. But aside from being more complicated
// it would also *not* fill the media cache and cause slower joining of // it would also *not* fill the media cache and cause slower joining of
// remote servers. // remote servers.
// (Imagine that you launch a game once locally and then connect to a server.) // (Imagine that you launch a game once locally and then connect to a server.)
@ -3351,6 +3351,10 @@ void Game::processPlayerInteraction(f32 dtime, bool show_hud)
if (g_touchscreengui) { if (g_touchscreengui) {
auto mode = selected_def.touch_interaction.getMode(pointed.type); auto mode = selected_def.touch_interaction.getMode(pointed.type);
g_touchscreengui->applyContextControls(mode); g_touchscreengui->applyContextControls(mode);
// applyContextControls may change dig/place input.
// Update again so that TOSERVER_INTERACT packets have the correct controls set.
player->control.dig = isKeyDown(KeyType::DIG);
player->control.place = isKeyDown(KeyType::PLACE);
} }
// Note that updating the selection mesh every frame is not particularly efficient, // Note that updating the selection mesh every frame is not particularly efficient,