From a27607d476764d6bb128c2bb5288e458d074d91f Mon Sep 17 00:00:00 2001 From: obligaron Date: Sun, 4 Feb 2024 17:07:59 +0100 Subject: [PATCH] SpawnMonster: Override old monster delta information --- Source/msg.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Source/msg.cpp b/Source/msg.cpp index 0ca3a39e97e..f6b8b2fdede 100644 --- a/Source/msg.cpp +++ b/Source/msg.cpp @@ -2379,7 +2379,7 @@ size_t OnSpawnMonster(const TCmd *pCmd, const Player &player) if (gbBufferMsgs == 1) return sizeof(message); - const Point position { message.x, message.y }; + const WorldTilePosition position { message.x, message.y }; size_t typeIndex = static_cast(SDL_SwapLE16(message.typeIndex)); size_t monsterId = static_cast(SDL_SwapLE16(message.monsterId)); @@ -2387,6 +2387,12 @@ size_t OnSpawnMonster(const TCmd *pCmd, const Player &player) DLevel &deltaLevel = GetDeltaLevel(player); deltaLevel.spawnedMonsters[monsterId] = { typeIndex, message.seed }; + // Override old monster delta information + auto &deltaMonster = deltaLevel.monster[monsterId]; + deltaMonster.position = position; + deltaMonster.hitPoints = -1; + deltaMonster._menemy = 0; + deltaMonster._mactive = 0; if (player.isOnActiveLevel() && &player != MyPlayer) InitializeSpawnedMonster(position, message.dir, typeIndex, monsterId, message.seed);