diff options
| author | Magnus Auvinen <magnus.auvinen@gmail.com> | 2008-11-16 15:10:57 +0000 |
|---|---|---|
| committer | Magnus Auvinen <magnus.auvinen@gmail.com> | 2008-11-16 15:10:57 +0000 |
| commit | b6f6f4799747636acb1e2da029f44a2d3d155f62 (patch) | |
| tree | fe1ab580a9fde69ce154790bed114c0d0bc37563 /src/game/server/entities | |
| parent | d640ede2a6a87c65292b6eae1929e869294ba1f3 (diff) | |
| download | zcatch-b6f6f4799747636acb1e2da029f44a2d3d155f62.tar.gz zcatch-b6f6f4799747636acb1e2da029f44a2d3d155f62.zip | |
fixed issues when pausing the game and added pause and unpause console commands
Diffstat (limited to 'src/game/server/entities')
| -rw-r--r-- | src/game/server/entities/character.cpp | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/src/game/server/entities/character.cpp b/src/game/server/entities/character.cpp index c0bc3346..b3005a67 100644 --- a/src/game/server/entities/character.cpp +++ b/src/game/server/entities/character.cpp @@ -683,7 +683,7 @@ void CHARACTER::tick_defered() mem_zero(¤t, sizeof(current)); reckoningcore.write(&predicted); core.write(¤t); - + // only allow dead reackoning for a top of 3 seconds if(reckoning_tick+server_tickspeed()*3 < server_tick() || mem_comp(&predicted, ¤t, sizeof(NETOBJ_CHARACTER)) != 0) { @@ -846,8 +846,18 @@ void CHARACTER::snap(int snapping_client) NETOBJ_CHARACTER *character = (NETOBJ_CHARACTER *)snap_new_item(NETOBJTYPE_CHARACTER, player->client_id, sizeof(NETOBJ_CHARACTER)); // write down the core - character->tick = reckoning_tick; - sendcore.write(character); + if(game.world.paused) + { + // no dead reckoning when paused because the client doesn't know + // how far to perform the reckoning + character->tick = 0; + core.write(character); + } + else + { + character->tick = reckoning_tick; + sendcore.write(character); + } // set emote if (emote_stop < server_tick()) |