]> git.lizzy.rs Git - minetest.git/blobdiff - src/client/tile.cpp
Tile.cpp: Fix MSVC build broken by 072bbba
[minetest.git] / src / client / tile.cpp
index fbc0f1709fc987205508a69e723faae99bbe8daf..86ca7d42221daf9dd0b7fe90490efab286efef49 100644 (file)
@@ -134,9 +134,8 @@ std::string getTexturePath(const std::string &filename)
        /*
                Check from texture_path
        */
-       std::string texture_path = g_settings->get("texture_path");
-       if (texture_path != "")
-       {
+       const std::string &texture_path = g_settings->get("texture_path");
+       if (texture_path != "") {
                std::string testpath = texture_path + DIR_DELIM + filename;
                // Check all filename extensions. Returns "" if not found.
                fullpath = getImagePath(testpath);
@@ -1741,6 +1740,12 @@ bool TextureSource::generateImagePart(std::string part_of_name,
                                 * equal to the target minimum.  If e.g. this is a vertical frames
                                 * animation, the short dimension will be the real size.
                                 */
+                               if ((dim.Width == 0) || (dim.Height == 0)) {
+                                       errorstream << "generateImagePart(): Illegal 0 dimension "
+                                               << "for part_of_name=\""<< part_of_name
+                                               << "\", cancelling." << std::endl;
+                                       return false;
+                               }
                                u32 xscale = scaleto / dim.Width;
                                u32 yscale = scaleto / dim.Height;
                                u32 scale = (xscale > yscale) ? xscale : yscale;
@@ -1848,7 +1853,7 @@ bool TextureSource::generateImagePart(std::string part_of_name,
                        for (u32 x = 0; x < dim.Width; x++)
                        {
                                video::SColor c = baseimg->getPixel(x, y);
-                               c.color ^= mask;        
+                               c.color ^= mask;
                                baseimg->setPixel(x, y, c);
                        }
                }
@@ -2260,7 +2265,8 @@ video::ITexture* TextureSource::getNormalTexture(const std::string &name)
        if (isKnownSourceImage("override_normal.png"))
                return getTexture("override_normal.png");
        std::string fname_base = name;
-       std::string normal_ext = "_normal.png";
+       static const char *normal_ext = "_normal.png";
+       static const u32 normal_ext_size = strlen(normal_ext);
        size_t pos = fname_base.find(".");
        std::string fname_normal = fname_base.substr(0, pos) + normal_ext;
        if (isKnownSourceImage(fname_normal)) {
@@ -2268,10 +2274,10 @@ video::ITexture* TextureSource::getNormalTexture(const std::string &name)
                size_t i = 0;
                while ((i = fname_base.find(".", i)) != std::string::npos) {
                        fname_base.replace(i, 4, normal_ext);
-                       i += normal_ext.length();
+                       i += normal_ext_size;
                }
                return getTexture(fname_base);
-               }
+       }
        return NULL;
 }