From c91feb71f9d3cfc9c69adf6650a74104e31798a4 Mon Sep 17 00:00:00 2001 From: ThomasChr Date: Tue, 26 Oct 2021 21:33:38 +0200 Subject: [PATCH] make light objects unseen when saving level change data, because level change data (instead of real save data) does not save light source and if the light objects will be marked as seen there lights won't be created and they stay dark --- Source/loadsave.cpp | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/Source/loadsave.cpp b/Source/loadsave.cpp index cc3f50ab1..cbf2290dd 100644 --- a/Source/loadsave.cpp +++ b/Source/loadsave.cpp @@ -2505,8 +2505,23 @@ void SaveLevel(SaveWriter &saveWriter) file.WriteLE(objectId); for (int objectId : AvailableObjects) file.WriteLE(objectId); - for (int i = 0; i < ActiveObjectCount; i++) + for (int i = 0; i < ActiveObjectCount; i++) { + /* make dynamic light sources unseen when saving level data for level change */ + switch (Objects[ActiveObjects[i]]._otype) { + case OBJ_L1LIGHT: + case OBJ_SKFIRE: + case OBJ_CANDLE1: + case OBJ_CANDLE2: + case OBJ_BOOKCANDLE: + case OBJ_STORYCANDLE: + case OBJ_TORCHL: + case OBJ_TORCHR: + case OBJ_TORCHL2: + case OBJ_TORCHR2: + Objects[ActiveObjects[i]]._oVar1 = 0; + } SaveObject(file, Objects[ActiveObjects[i]]); + } } auto itemIndexes = SaveDroppedItems(file);