about summary refs log tree commit diff
path: root/src/game/server/entities
diff options
context:
space:
mode:
authorTeetime <TeetimeTW@yahoo.de>2012-02-17 19:31:43 +0100
committerTeetime <TeetimeTW@yahoo.de>2012-02-17 19:31:43 +0100
commitfc99167e687ba688ce9306bbec7e801450c917be (patch)
treeb440f2568a98b4b6a8db17925a299142adead7fa /src/game/server/entities
parent206e9adb9140c3c8963661f534703de33f8abe05 (diff)
parent44a47d4253a829abcf50dac5586fd9a351f0c66b (diff)
downloadzcatch-fc99167e687ba688ce9306bbec7e801450c917be.tar.gz
zcatch-fc99167e687ba688ce9306bbec7e801450c917be.zip
Merge branch 'master' into zCatch-Exp
Conflicts:
	src/engine/server.h
	src/engine/server/server.cpp
	src/engine/server/server.h
	src/engine/shared/network.h
	src/engine/shared/network_server.cpp
	src/game/server/player.h
Diffstat (limited to 'src/game/server/entities')
-rw-r--r--src/game/server/entities/character.cpp20
-rw-r--r--src/game/server/entities/character.h1
-rw-r--r--src/game/server/entities/flag.cpp7
-rw-r--r--src/game/server/entities/flag.h1
-rw-r--r--src/game/server/entities/laser.cpp13
-rw-r--r--src/game/server/entities/laser.h1
-rw-r--r--src/game/server/entities/pickup.cpp6
-rw-r--r--src/game/server/entities/pickup.h1
-rw-r--r--src/game/server/entities/projectile.cpp5
-rw-r--r--src/game/server/entities/projectile.h1
10 files changed, 51 insertions, 5 deletions
diff --git a/src/game/server/entities/character.cpp b/src/game/server/entities/character.cpp
index aab489bf..f64a16e3 100644
--- a/src/game/server/entities/character.cpp
+++ b/src/game/server/entities/character.cpp
@@ -538,7 +538,7 @@ void CCharacter::OnPredictedInput(CNetObj_PlayerInput *pNewInput)
 	mem_copy(&m_Input, pNewInput, sizeof(m_Input));
 	m_NumInputs++;
 
-	// or are not allowed to aim in the center
+	// it is not allowed to aim in the center
 	if(m_Input.m_TargetX == 0 && m_Input.m_TargetY == 0)
 		m_Input.m_TargetY = -1;
 }
@@ -551,6 +551,10 @@ void CCharacter::OnDirectInput(CNetObj_PlayerInput *pNewInput)
 	mem_copy(&m_LatestPrevInput, &m_LatestInput, sizeof(m_LatestInput));
 	mem_copy(&m_LatestInput, pNewInput, sizeof(m_LatestInput));
 
+	// it is not allowed to aim in the center
+	if(m_LatestInput.m_TargetX == 0 && m_LatestInput.m_TargetY == 0)
+		m_LatestInput.m_TargetY = -1;
+
 	if(m_NumInputs > 2 && m_pPlayer->GetTeam() != TEAM_SPECTATORS)
 	{
 		HandleWeaponSwitch();
@@ -705,6 +709,20 @@ void CCharacter::TickDefered()
 	}
 }
 
+void CCharacter::TickPaused()
+{
+	++m_AttackTick;
+	++m_DamageTakenTick;
+	++m_Ninja.m_ActivationTick;
+	++m_ReckoningTick;
+	if(m_LastAction != -1)
+		++m_LastAction;
+	if(m_aWeapons[m_ActiveWeapon].m_AmmoRegenStart > -1)
+		++m_aWeapons[m_ActiveWeapon].m_AmmoRegenStart;
+	if(m_EmoteStop > -1)
+		++m_EmoteStop;
+}
+
 bool CCharacter::IncreaseHealth(int Amount)
 {
 	if(m_Health >= 10)
diff --git a/src/game/server/entities/character.h b/src/game/server/entities/character.h
index a3a7e9d2..dae01bd4 100644
--- a/src/game/server/entities/character.h
+++ b/src/game/server/entities/character.h
@@ -30,6 +30,7 @@ public:
 	virtual void Destroy();
 	virtual void Tick();
 	virtual void TickDefered();
+	virtual void TickPaused();
 	virtual void Snap(int SnappingClient);
 
 	bool IsGrounded();
diff --git a/src/game/server/entities/flag.cpp b/src/game/server/entities/flag.cpp
index d279e4df..558ee154 100644
--- a/src/game/server/entities/flag.cpp
+++ b/src/game/server/entities/flag.cpp
@@ -23,6 +23,13 @@ void CFlag::Reset()
 	m_GrabTick = 0;
 }
 
+void CFlag::TickPaused()
+{
+	++m_DropTick;
+	if(m_GrabTick)
+		++m_GrabTick;
+}
+
 void CFlag::Snap(int SnappingClient)
 {
 	if(NetworkClipped(SnappingClient))
diff --git a/src/game/server/entities/flag.h b/src/game/server/entities/flag.h
index 2f91bc02..be22d32b 100644
--- a/src/game/server/entities/flag.h
+++ b/src/game/server/entities/flag.h
@@ -21,6 +21,7 @@ public:
 	CFlag(CGameWorld *pGameWorld, int Team);
 
 	virtual void Reset();
+	virtual void TickPaused();
 	virtual void Snap(int SnappingClient);
 };
 
diff --git a/src/game/server/entities/laser.cpp b/src/game/server/entities/laser.cpp
index af66fe0c..eb40c4e1 100644
--- a/src/game/server/entities/laser.cpp
+++ b/src/game/server/entities/laser.cpp
@@ -21,15 +21,15 @@ CLaser::CLaser(CGameWorld *pGameWorld, vec2 Pos, vec2 Direction, float StartEner
 bool CLaser::HitCharacter(vec2 From, vec2 To)
 {
 	vec2 At;
-	CCharacter *OwnerChar = GameServer()->GetPlayerChar(m_Owner);
-	CCharacter *Hit = GameServer()->m_World.IntersectCharacter(m_Pos, To, 0.f, At, OwnerChar);
-	if(!Hit)
+	CCharacter *pOwnerChar = GameServer()->GetPlayerChar(m_Owner);
+	CCharacter *pHit = GameServer()->m_World.IntersectCharacter(m_Pos, To, 0.f, At, pOwnerChar);
+	if(!pHit)
 		return false;
 
 	m_From = From;
 	m_Pos = At;
 	m_Energy = -1;
-	Hit->TakeDamage(vec2(0.f, 0.f), GameServer()->Tuning()->m_LaserDamage, m_Owner, WEAPON_RIFLE);
+	pHit->TakeDamage(vec2(0.f, 0.f), GameServer()->Tuning()->m_LaserDamage, m_Owner, WEAPON_RIFLE);
 	return true;
 }
 
@@ -91,6 +91,11 @@ void CLaser::Tick()
 		DoBounce();
 }
 
+void CLaser::TickPaused()
+{
+	++m_EvalTick;
+}
+
 void CLaser::Snap(int SnappingClient)
 {
 	if(NetworkClipped(SnappingClient))
diff --git a/src/game/server/entities/laser.h b/src/game/server/entities/laser.h
index 1d7fa227..8ae6f792 100644
--- a/src/game/server/entities/laser.h
+++ b/src/game/server/entities/laser.h
@@ -12,6 +12,7 @@ public:
 
 	virtual void Reset();
 	virtual void Tick();
+	virtual void TickPaused();
 	virtual void Snap(int SnappingClient);
 
 protected:
diff --git a/src/game/server/entities/pickup.cpp b/src/game/server/entities/pickup.cpp
index ba26d85b..1aff5750 100644
--- a/src/game/server/entities/pickup.cpp
+++ b/src/game/server/entities/pickup.cpp
@@ -117,6 +117,12 @@ void CPickup::Tick()
 	}
 }
 
+void CPickup::TickPaused()
+{
+	if(m_SpawnTick != -1)
+		++m_SpawnTick;
+}
+
 void CPickup::Snap(int SnappingClient)
 {
 	if(m_SpawnTick != -1 || NetworkClipped(SnappingClient))
diff --git a/src/game/server/entities/pickup.h b/src/game/server/entities/pickup.h
index 77347de2..fe45b5ae 100644
--- a/src/game/server/entities/pickup.h
+++ b/src/game/server/entities/pickup.h
@@ -14,6 +14,7 @@ public:
 
 	virtual void Reset();
 	virtual void Tick();
+	virtual void TickPaused();
 	virtual void Snap(int SnappingClient);
 
 private:
diff --git a/src/game/server/entities/projectile.cpp b/src/game/server/entities/projectile.cpp
index 2baa24b1..e89e0e6f 100644
--- a/src/game/server/entities/projectile.cpp
+++ b/src/game/server/entities/projectile.cpp
@@ -82,6 +82,11 @@ void CProjectile::Tick()
 	}
 }
 
+void CProjectile::TickPaused()
+{
+	++m_StartTick;
+}
+
 void CProjectile::FillInfo(CNetObj_Projectile *pProj)
 {
 	pProj->m_X = (int)m_Pos.x;
diff --git a/src/game/server/entities/projectile.h b/src/game/server/entities/projectile.h
index 5df04bcd..7b5c5e0e 100644
--- a/src/game/server/entities/projectile.h
+++ b/src/game/server/entities/projectile.h
@@ -14,6 +14,7 @@ public:
 
 	virtual void Reset();
 	virtual void Tick();
+	virtual void TickPaused();
 	virtual void Snap(int SnappingClient);
 
 private: