about summary refs log tree commit diff
path: root/src/game/server/entities
diff options
context:
space:
mode:
authorMagnus Auvinen <magnus.auvinen@gmail.com>2008-11-16 15:10:57 +0000
committerMagnus Auvinen <magnus.auvinen@gmail.com>2008-11-16 15:10:57 +0000
commitb6f6f4799747636acb1e2da029f44a2d3d155f62 (patch)
treefe1ab580a9fde69ce154790bed114c0d0bc37563 /src/game/server/entities
parentd640ede2a6a87c65292b6eae1929e869294ba1f3 (diff)
downloadzcatch-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.cpp16
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(&current, sizeof(current));
 		reckoningcore.write(&predicted);
 		core.write(&current);
-		
+
 		// only allow dead reackoning for a top of 3 seconds
 		if(reckoning_tick+server_tickspeed()*3 < server_tick() || mem_comp(&predicted, &current, 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())