51 lines
1.6 KiB
C++
51 lines
1.6 KiB
C++
#include "aas2file/aas2debugareamodel.h"
|
|
|
|
#include "aas2file/aas2debugareamodelgenerator.h"
|
|
#include "framework/resourcelist.h"
|
|
#include "idlib/filesystem/filesystem.h"
|
|
|
|
idResourceList idAAS2DebugAreaModel::resourceList("aasDebugAreaModel");
|
|
|
|
idAAS2DebugAreaModel::idAAS2DebugAreaModel()
|
|
: data(), sourceTimestamp(std::uint32_t(-1)) {
|
|
}
|
|
|
|
idAAS2DebugAreaModel::~idAAS2DebugAreaModel() = default;
|
|
|
|
idResourceList* idAAS2DebugAreaModel::GetResourceList() {
|
|
return &resourceList;
|
|
}
|
|
|
|
void idAAS2DebugAreaModel::LoadResource() {
|
|
data.Free();
|
|
sourceTimestamp = std::uint32_t(-1);
|
|
char binaryPath[256] = {};
|
|
fileSystem->FixLongFilename("generated",
|
|
idAAS2DebugAreaModelData::BINARY_FILE_EXTENSION, GetName(),
|
|
binaryPath, sizeof(binaryPath));
|
|
idStr error;
|
|
const idResource::resourceError_t loadError =
|
|
data.LoadBinary(binaryPath, error);
|
|
if (loadError != idResource::RESOURCE_ERROR_NONE) {
|
|
resourceError = "Could not load generated AAS debug area model";
|
|
}
|
|
}
|
|
|
|
bool idAAS2DebugAreaModel::ReloadIfStale() {
|
|
if (fileSystem->GetTimestamp(GetName(), false) == sourceTimestamp) {
|
|
return false;
|
|
}
|
|
char binaryPath[256] = {};
|
|
fileSystem->FixLongFilename("generated",
|
|
idAAS2DebugAreaModelData::BINARY_FILE_EXTENSION, GetName(),
|
|
binaryPath, sizeof(binaryPath));
|
|
fileSystem->RemoveFile(binaryPath, FSPATH_BASE);
|
|
LoadResource();
|
|
return true;
|
|
}
|
|
|
|
void idAAS2DebugAreaModel::WriteResourceFile() {
|
|
idAAS2DebugAreaModelGenerator::WriteToBinary(GetName(), GetName(),
|
|
sourceTimestamp, data);
|
|
}
|