#include "ContentLoader.h" #include const void* ContentLoader::PTR_FOLLOWING = reinterpret_cast(-1); const void* ContentLoader::PTR_INSERT = reinterpret_cast(-2); ContentLoader::ContentLoader() { varXString = nullptr; m_zone = nullptr; m_stream = nullptr; } void ContentLoader::LoadXString(const bool atStreamStart) const { assert(varXString != nullptr); if (atStreamStart) m_stream->Load(varXString); if(*varXString != nullptr) { if(*varXString == PTR_FOLLOWING) { *varXString = m_stream->Alloc(alignof(const char)); m_stream->LoadNullTerminated(const_cast(*varXString)); } else { *varXString = m_stream->ConvertOffsetToPointer(*varXString); } } } void ContentLoader::LoadXStringArray(const bool atStreamStart, const size_t count) const { assert(varXString != nullptr); if(atStreamStart) m_stream->Load(varXString, count); for(size_t index = 0; index < count; index++) { LoadXString(&varXString[index]); } }