qbsp: don't write 0 size textures
write them as offset -1 in dmiptexlump_t::stream_write()
This commit is contained in:
parent
a5c0f0e768
commit
f93a36c295
|
|
@ -185,7 +185,7 @@ void dmiptexlump_t::stream_write(std::ostream &stream) const
|
|||
|
||||
// write out the miptex offsets
|
||||
for (auto &texture : textures) {
|
||||
if (!texture.name[0]) {
|
||||
if (!texture.name[0] || texture.width == 0 || texture.height == 0) {
|
||||
// dummy texture
|
||||
stream <= static_cast<int32_t>(-1);
|
||||
continue;
|
||||
|
|
@ -203,7 +203,7 @@ void dmiptexlump_t::stream_write(std::ostream &stream) const
|
|||
}
|
||||
|
||||
for (auto &texture : textures) {
|
||||
if (texture.name[0]) {
|
||||
if (texture.name[0] && texture.width && texture.height) {
|
||||
// fix up the padding to match the above conditions
|
||||
if (stream.tellp() % 4) {
|
||||
constexpr const char pad[4]{};
|
||||
|
|
|
|||
|
|
@ -1449,8 +1449,8 @@ TEST_CASE("q1_wad_mapname" * doctest::test_suite("testmaps_q1"))
|
|||
CHECK(GAME_QUAKE == bsp.loadversion->game->id);
|
||||
|
||||
CHECK(bsp.dtex.textures.size() == 2);
|
||||
CHECK(bsp.dtex.textures[0].name == "skip");
|
||||
CHECK(bsp.dtex.textures[0].data.size() == sizeof(dmiptex_t)); // no texture data
|
||||
CHECK(bsp.dtex.textures[0].name == ""); // skip
|
||||
CHECK(bsp.dtex.textures[0].data.size() == 0); // no texture data
|
||||
|
||||
CHECK(bsp.dtex.textures[1].name == "{trigger");
|
||||
CHECK(bsp.dtex.textures[1].data.size() > sizeof(dmiptex_t));
|
||||
|
|
@ -1763,7 +1763,7 @@ TEST_CASE("textures search relative to current directory")
|
|||
const auto [bsp, bspx, prt] = LoadTestmapQ1("q1_cwd_relative_wad.map");
|
||||
REQUIRE(2 == bsp.dtex.textures.size());
|
||||
// FIXME: we shouldn't really be writing skip
|
||||
CHECK("skip" == bsp.dtex.textures[0].name);
|
||||
CHECK("" == bsp.dtex.textures[0].name);
|
||||
|
||||
// make sure the texture was written
|
||||
CHECK("orangestuff8" == bsp.dtex.textures[1].name);
|
||||
|
|
|
|||
Loading…
Reference in New Issue