diff options
| author | Magnus Auvinen <magnus.auvinen@gmail.com> | 2010-07-05 20:46:32 +0200 |
|---|---|---|
| committer | Magnus Auvinen <magnus.auvinen@gmail.com> | 2010-07-05 20:46:32 +0200 |
| commit | d302ba921e61177da9af1f85df58fe6f47ca5e95 (patch) | |
| tree | 4ac19b9caab0a7142b6dfbc05d234af152bd5407 /src/game/server | |
| parent | 143af11a25bc4a944c3605b9a165ffd2f1970641 (diff) | |
| parent | bd02c2043e9f76ec47ee9ac35caf23ae294b1dfa (diff) | |
| download | zcatch-d302ba921e61177da9af1f85df58fe6f47ca5e95.tar.gz zcatch-d302ba921e61177da9af1f85df58fe6f47ca5e95.zip | |
Merge branch 'master' of github.com:matricks/teeworlds
Diffstat (limited to 'src/game/server')
| -rw-r--r-- | src/game/server/entities/character.cpp | 16 | ||||
| -rw-r--r-- | src/game/server/gamecontroller.cpp | 3 |
2 files changed, 16 insertions, 3 deletions
diff --git a/src/game/server/entities/character.cpp b/src/game/server/entities/character.cpp index 77d8f462..81d1f85b 100644 --- a/src/game/server/entities/character.cpp +++ b/src/game/server/entities/character.cpp @@ -585,14 +585,26 @@ void CCharacter::TickDefered() if(!StuckBefore && (StuckAfterMove || StuckAfterQuant)) { + // Hackish solution to get rid of strict-aliasing warning + union + { + float f; + unsigned u; + }StartPosX, StartPosY, StartVelX, StartVelY; + + StartPosX.f = StartPos.x; + StartPosY.f = StartPos.y; + StartVelX.f = StartVel.x; + StartVelY.f = StartVel.y; + dbg_msg("char_core", "STUCK!!! %d %d %d %f %f %f %f %x %x %x %x", StuckBefore, StuckAfterMove, StuckAfterQuant, StartPos.x, StartPos.y, StartVel.x, StartVel.y, - *((unsigned *)&StartPos.x), *((unsigned *)&StartPos.y), - *((unsigned *)&StartVel.x), *((unsigned *)&StartVel.y)); + StartPosX.u, StartPosY.u, + StartVelX.u, StartVelY.u); } int Events = m_Core.m_TriggeredEvents; diff --git a/src/game/server/gamecontroller.cpp b/src/game/server/gamecontroller.cpp index 5b7051d3..07f8bf86 100644 --- a/src/game/server/gamecontroller.cpp +++ b/src/game/server/gamecontroller.cpp @@ -286,6 +286,7 @@ void IGameController::PostReset() GameServer()->m_apPlayers[i]->Respawn(); GameServer()->m_apPlayers[i]->m_Score = 0; GameServer()->m_apPlayers[i]->m_ScoreStartTick = Server()->Tick(); + GameServer()->m_apPlayers[i]->m_RespawnTick = Server()->Tick()+Server()->TickSpeed()/2; } } } @@ -540,7 +541,7 @@ int IGameController::GetAutoTeam(int Notthisid) bool IGameController::CanJoinTeam(int Team, int Notthisid) { - if(Team == -1) + if(Team == -1 || (GameServer()->m_apPlayers[Notthisid] && GameServer()->m_apPlayers[Notthisid]->GetTeam() != -1)) return true; int aNumplayers[2] = {0,0}; |