Perhaps I'm confused by how this is supposed to work, but while this did fix texture definitions, it doesn't quite seem to be enough yet.
For example, if I have the following in a map file:
Code: Select all
sidedef
{
sector = 9;
texturemiddle = "MANOR_WALL_COLDSTONE_ARCH";
}
sidedef
{
sector = 1;
texturemiddle = "MANOR_WALL_BOOKSHELF";
}
And then I have this in my textures.txt:
Code: Select all
texture manor_wall_coldstone_arch, 512, 512
{
XScale 4
YScale 4
Patch "patches/p_manor_wall_coldstone_arch.png", 0, 0
}
texture manor_wall_bookshelf, 512, 512
{
XScale 4
YScale 4
Patch pmwbkshf, 0, 0
}
The texture lookup is always going to succeed, so we never fallthrough to the new lumpname logic that has been added.
This is because when parsing the udmf data, the names are going to be truncated to 8 characters. Later on, when SetTexture is called, it's going to match the second texture definition.
As JP noted in his textures.txt:
Texture entries here are necessary to scale textures to non-1:1 sizes,
so that for example a 512x512 can be drawn on a 128x128 wall and appear at
the correct scale.
Can you clarify as to how this was intended to work? Or was this the part that I still needed to make changes for? The truncation is confusing as the udmf specification explicitly states that "Strings have no reasonable length limitations".
It seems like you were expecting the sidedefs above to specify a full pathname to the resource, and since there would be no textures.txt entry, it would find a match that way. But that doesn't work if you need to apply scaling, etc.
Perhaps I'm confused by how this is supposed to work, but while this did fix texture definitions, it doesn't quite seem to be enough yet.
For example, if I have the following in a map file:
[code]
sidedef
{
sector = 9;
texturemiddle = "MANOR_WALL_COLDSTONE_ARCH";
}
sidedef
{
sector = 1;
texturemiddle = "MANOR_WALL_BOOKSHELF";
}
[/code]
And then I have this in my textures.txt:
[code]
texture manor_wall_coldstone_arch, 512, 512
{
XScale 4
YScale 4
Patch "patches/p_manor_wall_coldstone_arch.png", 0, 0
}
texture manor_wall_bookshelf, 512, 512
{
XScale 4
YScale 4
Patch pmwbkshf, 0, 0
}
[/code]
The texture lookup is always going to succeed, so we never fallthrough to the new lumpname logic that has been added.
This is because when parsing the udmf data, the names are going to be truncated to 8 characters. Later on, when SetTexture is called, it's going to match the second texture definition.
As JP noted in his textures.txt:
[quote]
Texture entries here are necessary to scale textures to non-1:1 sizes,
so that for example a 512x512 can be drawn on a 128x128 wall and appear at
the correct scale.[/quote]
Can you clarify as to how this was intended to work? Or was this the part that I still needed to make changes for? The truncation is confusing as the udmf specification explicitly states that "Strings have no reasonable length limitations".
It seems like you were expecting the sidedefs above to specify a full pathname to the resource, and since there would be no textures.txt entry, it would find a match that way. But that doesn't work if you need to apply scaling, etc.