feat(datastore): add getter for uint16_t

This commit is contained in:
fallenoak 2023-02-06 22:56:31 -06:00
parent c1c685bdca
commit 1113e846da
No known key found for this signature in database
GPG key ID: 7628F8E61AEA070D
3 changed files with 29 additions and 0 deletions

View file

@ -58,6 +58,22 @@ CDataStore& CDataStore::Get(uint8_t& val) {
return *this;
}
CDataStore& CDataStore::Get(uint16_t& val) {
STORM_ASSERT(this->IsFinal());
auto bytes = sizeof(val);
if (this->FetchRead(this->m_read, bytes)) {
auto ofs = this->m_read - this->m_base;
auto ptr = &this->m_data[ofs];
val = *reinterpret_cast<uint16_t*>(ptr);
this->m_read += bytes;
}
return *this;
}
CDataStore& CDataStore::Get(uint32_t& val) {
STORM_ASSERT(this->IsFinal());

View file

@ -30,6 +30,7 @@ class CDataStore {
int32_t FetchRead(uint32_t pos, uint32_t bytes);
int32_t FetchWrite(uint32_t pos, uint32_t bytes, const char* fileName, int32_t lineNumber);
CDataStore& Get(uint8_t& val);
CDataStore& Get(uint16_t& val);
CDataStore& Get(uint32_t& val);
CDataStore& Get(uint64_t& val);
CDataStore& GetDataInSitu(void*& val, uint32_t bytes);