From fbb2243a0500544eed51357ff9aae71f8d0e779c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20M=C3=BCller?= Date: Thu, 13 Jun 2024 20:52:27 +0200 Subject: [PATCH] Fix tiles being handled in same tick for dead tees in some cases The `CGameControllerDDRace::HandleCharacterTiles` function can kill the tee if the conditions for starting the race are not satisfied when touching a start tile. In this case, no further tiles should be handled in the `CCharacter::HandleTiles` function, else the effects of those tiles being handled may incorrectly be applied after the tee has respawned. --- src/game/server/entities/character.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/game/server/entities/character.cpp b/src/game/server/entities/character.cpp index de9299376..c35e99a3a 100644 --- a/src/game/server/entities/character.cpp +++ b/src/game/server/entities/character.cpp @@ -1488,6 +1488,8 @@ void CCharacter::HandleTiles(int Index) m_TeleCheckpoint = TeleCheckpoint; GameServer()->m_pController->HandleCharacterTiles(this, Index); + if(!m_Alive) + return; // freeze if(((m_TileIndex == TILE_FREEZE) || (m_TileFIndex == TILE_FREEZE)) && !m_Core.m_Super && !m_Core.m_DeepFrozen)