diff options
author | Loïc Blot <nerzhul@users.noreply.github.com> | 2017-04-29 17:25:25 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-04-29 17:25:25 +0200 |
commit | 3db66b453152c3610b858aa1650e1ab3f545a430 (patch) | |
tree | d1d625c50f8c350ff1f52b7ed446bd0ed2ea4e6b /src/game.cpp | |
parent | f727f54192644f6427ac1b2c86df8c64c7c5fdf0 (diff) | |
download | minetest-3db66b453152c3610b858aa1650e1ab3f545a430.tar.gz minetest-3db66b453152c3610b858aa1650e1ab3f545a430.tar.bz2 minetest-3db66b453152c3610b858aa1650e1ab3f545a430.zip |
Client & ClientEnvirnment: don't create fake events (#5676)
Instead of create fake events on the stack on each loop call (Game::run), verify is queue is empty or not and handle event directly if there is.
This prevents fake ClientEvent creation & memory allocations
Same fix is also applied on ClientEnvironment, & rename getClientEvent to getClientEnvEvent to match ClientEnvEvent object
Diffstat (limited to 'src/game.cpp')
-rw-r--r-- | src/game.cpp | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/src/game.cpp b/src/game.cpp index 12fe6a6e9..a1cc1ab15 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -3055,11 +3055,10 @@ inline void Game::step(f32 *dtime) void Game::processClientEvents(CameraOrientation *cam) { - ClientEvent event = client->getClientEvent(); - LocalPlayer *player = client->getEnv().getLocalPlayer(); - for ( ; event.type != CE_NONE; event = client->getClientEvent()) { + while (client->hasClientEvents()) { + ClientEvent event = client->getClientEvent(); switch (event.type) { case CE_PLAYER_DAMAGE: |