Fix autoscale_mode segfault if tile doesn't have texture
authorsfan5 <sfan5@live.de>
Mon, 1 Jun 2020 19:19:35 +0000 (21:19 +0200)
committersfan5 <sfan5@live.de>
Mon, 1 Jun 2020 19:19:35 +0000 (21:19 +0200)
closes #9965

src/nodedef.cpp

index cb841e544732ca4c3f600d2802477665e25453b9..a84338752ac8aa9ab38af794a8ea06aa6418accc 100644 (file)
@@ -608,8 +608,9 @@ static void fillTileAttribs(ITextureSource *tsrc, TileLayer *layer,
        layer->material_type = material_type;
 
        bool has_scale = tiledef.scale > 0;
-       if (((tsettings.autoscale_mode == AUTOSCALE_ENABLE) && !has_scale) ||
-                       (tsettings.autoscale_mode == AUTOSCALE_FORCE)) {
+       bool use_autoscale = tsettings.autoscale_mode == AUTOSCALE_FORCE ||
+               (tsettings.autoscale_mode == AUTOSCALE_ENABLE && !has_scale);
+       if (use_autoscale && layer->texture) {
                auto texture_size = layer->texture->getOriginalSize();
                float base_size = tsettings.node_texture_size;
                float size = std::fmin(texture_size.Width, texture_size.Height);