diff --git a/Source/msg.cpp b/Source/msg.cpp index e71133bee..10d26ace3 100644 --- a/Source/msg.cpp +++ b/Source/msg.cpp @@ -2635,6 +2635,8 @@ void DeltaLoadLevel() monster.position.tile = position; monster.position.old = position; monster.position.future = position; + if (monster.lightId != NO_LIGHT) + ChangeLightXY(monster.lightId, position); } if (deltaLevel.monster[i].hitPoints != -1) { monster.hitPoints = deltaLevel.monster[i].hitPoints; diff --git a/Source/sync.cpp b/Source/sync.cpp index bf246788f..c058e82dd 100644 --- a/Source/sync.cpp +++ b/Source/sync.cpp @@ -7,6 +7,7 @@ #include #include "levels/gendung.h" +#include "lighting.h" #include "monster.h" #include "player.h" @@ -191,6 +192,8 @@ void SyncMonster(bool isOwner, const TSyncMonster &monsterSync) M_ClearSquares(monster); dMonster[position.x][position.y] = monsterId + 1; monster.position.tile = position; + if (monster.lightId != NO_LIGHT) + ChangeLightXY(monster.lightId, position); decode_enemy(monster, enemyId); Direction md = GetDirection(position, monster.enemyPosition); M_StartStand(monster, md);