From d97f265cb1a56b6e17073eeaa1c6f181a4acd628 Mon Sep 17 00:00:00 2001 From: qndel Date: Tue, 26 Oct 2021 19:47:40 +0200 Subject: [PATCH] light fix --- Source/diablo.cpp | 2 ++ Source/loadsave.cpp | 3 +++ 2 files changed, 5 insertions(+) diff --git a/Source/diablo.cpp b/Source/diablo.cpp index 2fd624528..04909a0b5 100644 --- a/Source/diablo.cpp +++ b/Source/diablo.cpp @@ -2936,6 +2936,8 @@ void LoadGameLevel(bool firstflag, lvl_entry lvldir) UpdateMonsterLights(); UnstuckChargers(); if (leveltype != DTYPE_TOWN) { + memcpy(dLight, dPreLight, sizeof(dLight)); // resets the light on entering a level to get rid of incorrect light + ChangeLightXY(Players[MyPlayerId]._plid, Players[MyPlayerId].position.tile); // forces player light refresh ProcessLightList(); ProcessVisionList(); } diff --git a/Source/loadsave.cpp b/Source/loadsave.cpp index 1bf1917cb..5b28b9adb 100644 --- a/Source/loadsave.cpp +++ b/Source/loadsave.cpp @@ -2647,6 +2647,9 @@ void LoadLevel() AutomapView[i][j] = automapView == MAP_EXP_OLD ? MAP_EXP_SELF : automapView; } } + //no need to load dLight, we can recreate it accurately from LightList + memcpy(dLight, dPreLight, sizeof(dLight)); // resets the light on entering a level to get rid of incorrect light + ChangeLightXY(Players[MyPlayerId]._plid, Players[MyPlayerId].position.tile); // forces player light refresh } if (!gbSkipSync) {