This commit is contained in:
Christoph Oelckers 2019-04-11 16:08:23 +02:00
commit c792234965
5 changed files with 22 additions and 14 deletions

View file

@ -1210,6 +1210,11 @@ class GLDefsParser
FTextureID no = TexMan.CheckForTexture(sc.String, type, FTextureManager::TEXMAN_TryAny | FTextureManager::TEXMAN_Overridable); FTextureID no = TexMan.CheckForTexture(sc.String, type, FTextureManager::TEXMAN_TryAny | FTextureManager::TEXMAN_Overridable);
FTexture *tex = TexMan.GetTexture(no); FTexture *tex = TexMan.GetTexture(no);
if (tex == nullptr)
{
sc.ScriptMessage("Material definition refers nonexistent texture '%s'\n", sc.String);
}
sc.MustGetToken('{'); sc.MustGetToken('{');
while (!sc.CheckToken('}')) while (!sc.CheckToken('}'))
{ {
@ -1266,6 +1271,8 @@ class GLDefsParser
} }
} }
sc.MustGetString(); sc.MustGetString();
if (tex)
{
bool okay = false; bool okay = false;
for (int i = 0; i < MAX_CUSTOM_HW_SHADER_TEXTURES; i++) for (int i = 0; i < MAX_CUSTOM_HW_SHADER_TEXTURES; i++)
{ {
@ -1274,7 +1281,7 @@ class GLDefsParser
tex->CustomShaderTextures[i] = TexMan.FindTexture(sc.String, ETextureType::Any, FTextureManager::TEXMAN_TryAny); tex->CustomShaderTextures[i] = TexMan.FindTexture(sc.String, ETextureType::Any, FTextureManager::TEXMAN_TryAny);
if (!tex->CustomShaderTextures[i]) if (!tex->CustomShaderTextures[i])
{ {
sc.ScriptError("Custom hardware shader texture '%s' not found in texture '%s'\n", sc.String, tex ? tex->Name.GetChars() : "(null)"); sc.ScriptError("Custom hardware shader texture '%s' not found in texture '%s'\n", sc.String, tex->Name.GetChars());
} }
texNameList.Push(textureName); texNameList.Push(textureName);
@ -1285,7 +1292,8 @@ class GLDefsParser
} }
if (!okay) if (!okay)
{ {
sc.ScriptError("Error: out of texture units in texture '%s'", tex ? tex->Name.GetChars() : "(null)"); sc.ScriptError("Error: out of texture units in texture '%s'", tex->Name.GetChars());
}
} }
} }
else if (sc.Compare("define")) else if (sc.Compare("define"))