fix: name the fourth flair colour byte padding

The client never sets or reads it, so it holds leftover memory.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Aaron Kimbrell
2026-10-26 20:33:41 -05:00
parent f8a99c45a5
commit 6262be5d25
4 changed files with 6 additions and 4 deletions

View File

@@ -69,7 +69,7 @@ NiPoint3 Chunk::GridToWorldPos(uint32_t i, uint32_t j) const {
BinaryIO::BinaryRead(stream, flair.colorR); BinaryIO::BinaryRead(stream, flair.colorR);
BinaryIO::BinaryRead(stream, flair.colorG); BinaryIO::BinaryRead(stream, flair.colorG);
BinaryIO::BinaryRead(stream, flair.colorB); BinaryIO::BinaryRead(stream, flair.colorB);
BinaryIO::BinaryRead(stream, flair.colorA); BinaryIO::BinaryRead(stream, flair.padding);
return true; return true;
} catch (const std::exception&) { } catch (const std::exception&) {
return false; return false;

View File

@@ -25,8 +25,10 @@ struct FlairAttributes {
uint8_t colorR; uint8_t colorR;
uint8_t colorG; uint8_t colorG;
uint8_t colorB; uint8_t colorB;
uint8_t colorA; // Padding: never set when a flair is placed, so it holds leftover memory; nothing reads it
uint8_t padding;
}; };
static_assert(sizeof(FlairAttributes) == 36, "a flair record in the .raw is 36 bytes");
/** /**
* @brief Mesh triangle structure * @brief Mesh triangle structure

View File

@@ -104,7 +104,7 @@ TEST_F(RawTest, ReadsEveryPartOfVersion32) {
EXPECT_EQ(flair.colorR, 10); EXPECT_EQ(flair.colorR, 10);
EXPECT_EQ(flair.colorG, 20); EXPECT_EQ(flair.colorG, 20);
EXPECT_EQ(flair.colorB, 30); EXPECT_EQ(flair.colorB, 30);
EXPECT_EQ(flair.colorA, 40); EXPECT_EQ(flair.padding, 40);
EXPECT_TRUE(raw.chunks[2].flairs.empty()); EXPECT_TRUE(raw.chunks[2].flairs.empty());
EXPECT_EQ(chunk.vertSize, 4); EXPECT_EQ(chunk.vertSize, 4);

View File

@@ -76,7 +76,7 @@ namespace TerrainTestWriter {
WriteBytes(stream, chunk.blendMapSize); WriteBytes(stream, chunk.blendMapSize);
} }
// Flair: id, scale, position, rotation, RGBA (36 bytes) // Flair: id, scale, position, rotation, RGB, padding byte (36 bytes)
Write(stream, chunk.flairCount); Write(stream, chunk.flairCount);
for (uint32_t i = 0; i < chunk.flairCount; ++i) { for (uint32_t i = 0; i < chunk.flairCount; ++i) {
Write<uint32_t>(stream, 500 + i); Write<uint32_t>(stream, 500 + i);