diff --git a/src/r_textures.c b/src/r_textures.c index 8ff85de43e9fbcb6fb4b67e2bb32d4778ae4d65e..7e3d8445d44a9b0240b6c9451c79604b5ee05422 100644 --- a/src/r_textures.c +++ b/src/r_textures.c @@ -410,10 +410,18 @@ UINT8 *R_GenerateTexture(size_t texnum) x2 = x1 + width; if (x1 > texture->width || x2 < 0) + { + if (dealloc) + Z_Free(realpatch); continue; // patch not located within texture's x bounds, ignore + } if (patch->originy > texture->height || (patch->originy + height) < 0) + { + if (dealloc) + Z_Free(realpatch); continue; // patch not located within texture's y bounds, ignore + } // patch is actually inside the texture! // now check if texture is partly off-screen and adjust accordingly