memory related refactor

This commit is contained in:
MihailRis
2024-04-14 19:17:51 +03:00
parent 8384ecf2c7
commit f5b3f3c33f
9 changed files with 177 additions and 159 deletions
+4 -4
View File
@@ -15,16 +15,16 @@ void Lightmap::set(const light_t* map) {
static_assert(sizeof(light_t) == 2, "replace dataio calls to new light_t");
ubyte* Lightmap::encode() const {
ubyte* buffer = new ubyte[LIGHTMAP_DATA_LEN];
std::unique_ptr<ubyte[]> Lightmap::encode() const {
auto buffer = std::make_unique<ubyte[]>(LIGHTMAP_DATA_LEN);
for (uint i = 0; i < CHUNK_VOL; i+=2) {
buffer[i/2] = ((map[i] >> 12) & 0xF) | ((map[i+1] >> 8) & 0xF0);
}
return buffer;
}
light_t* Lightmap::decode(ubyte* buffer) {
light_t* lights = new light_t[CHUNK_VOL];
std::unique_ptr<light_t[]> Lightmap::decode(ubyte* buffer) {
auto lights = std::make_unique<light_t[]>(CHUNK_VOL);
for (uint i = 0; i < CHUNK_VOL; i+=2) {
ubyte b = buffer[i/2];
lights[i] = ((b & 0xF) << 12);