Files
tech5/source/engine/aas2file/aas2debugareamodel.cpp
T
2026-08-09 02:48:01 -07:00

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);
}