save works!

This commit is contained in:
Asuro
2025-03-10 22:45:15 +01:00
parent ff00119e5b
commit c7377c3452
11 changed files with 538 additions and 217 deletions

View File

@@ -1,2 +1,56 @@
#pragma once
#include <bx/file.h>
#include <cstdint>
#define SAVE_T(T) \
inline bool Save(const T* obj, uint32_t count, Serializer& serializer) \
{ \
bool isOk = true; \
for (uint32_t i = 0; i < count; ++i) \
{ \
isOk = serializer.Write(&obj[i], sizeof(obj[i])) && isOk; \
} \
return isOk; \
}
namespace Generated
{
struct Serializer
{
bx::Error Err;
bx::FilePath Path;
bx::FileWriter Writer;
bool Init(const bx::FilePath& path)
{
Path = path;
Writer.open(path, false, &Err);
return Err.isOk();
}
bool Write(const void* data, uint32_t size)
{
Writer.write(data, size, &Err);
return Err.isOk();
}
void Finish()
{
Writer.close();
}
};
SAVE_T(uint8_t)
SAVE_T(uint16_t)
SAVE_T(uint32_t)
SAVE_T(uint64_t)
SAVE_T(int8_t)
SAVE_T(int16_t)
SAVE_T(int32_t)
SAVE_T(int64_t)
SAVE_T(float)
SAVE_T(double)
SAVE_T(bool)
SAVE_T(char)
} // namespace Generated