diff --git a/src/ObjWriting/Game/IW5/LightDef/LightDefDumperIW5.cpp b/src/ObjWriting/Game/IW5/LightDef/LightDefDumperIW5.cpp index 4b0e912f..7938a813 100644 --- a/src/ObjWriting/Game/IW5/LightDef/LightDefDumperIW5.cpp +++ b/src/ObjWriting/Game/IW5/LightDef/LightDefDumperIW5.cpp @@ -2,6 +2,8 @@ #include "LightDef/LightDefCommon.h" +#include + using namespace IW5; namespace light_def @@ -10,22 +12,21 @@ namespace light_def { const auto* lightDef = asset.Asset(); const auto assetFile = context.OpenAssetFile(GetFileNameForAsset(asset.m_name)); - - if (!assetFile || lightDef->attenuation.image == nullptr || lightDef->attenuation.image->name == nullptr || lightDef->cucoloris.image == nullptr - || lightDef->cucoloris.image->name == nullptr) - return; - auto& stream = *assetFile; + assert(lightDef->attenuation.image != nullptr); const auto* attenuationImageName = lightDef->attenuation.image->name; - if (attenuationImageName[0] == ',') + if (attenuationImageName && attenuationImageName[0] == ',') attenuationImageName = &attenuationImageName[1]; - const auto* cucolorisImageName = lightDef->cucoloris.image->name; - if (cucolorisImageName[0] == ',') - cucolorisImageName = &cucolorisImageName[1]; + const auto* cucolorisImageName = ""; + if (lightDef->cucoloris.image) + { + cucolorisImageName = lightDef->cucoloris.image->name; + if (cucolorisImageName && cucolorisImageName[0] == ',') + cucolorisImageName = &cucolorisImageName[1]; + } - stream << lightDef->attenuation.samplerState << attenuationImageName << '\0' << lightDef->cucoloris.samplerState << cucolorisImageName - << static_cast(lightDef->lmapLookupStart); + stream << lightDef->attenuation.samplerState << attenuationImageName << '\0' << lightDef->cucoloris.samplerState << cucolorisImageName; } } // namespace light_def