feat(world): record the zone files a world loads, with sizes and hashes

ZoneFileLog keeps the .luz, .lvl, .lutriggers, terrain .raw and navmesh a
world read while loading its zone: absolute path of the loose file (or
the name in the pack), size and an FNV-1a hash of the bytes read.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Aaron Kimbrell
2026-09-30 02:44:08 -05:00
parent b629766182
commit e709855b7d
8 changed files with 165 additions and 0 deletions

View File

@@ -12,6 +12,7 @@
#include "dZoneManager.h"
#include "DluAssert.h"
#include "DetourExtensions.h"
#include "ZoneFileLog.h"
dNavMesh::dNavMesh(uint32_t zoneId) {
m_ZoneId = zoneId;
@@ -60,6 +61,8 @@ void dNavMesh::LoadNavmesh() {
if (!fp.fp) {
return;
}
// Master watches the files a world loaded (docs/WorldHotReload.md); a broken one too, so fixing it reloads the world
ZoneFileLog::RecordFile(ZoneFileLog::eKind::NAVMESH, path);
// Read header.
NavMeshSetHeader header;