From b68eba3bf308c44d9807093f71d45273b44824df Mon Sep 17 00:00:00 2001 From: liquidraver <504870+liquidraver@users.noreply.github.com> Date: Thu, 16 Jul 2026 14:38:25 +0200 Subject: [PATCH] sync with vanilla dev --- zephcore/helpers/RegionMap.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/zephcore/helpers/RegionMap.cpp b/zephcore/helpers/RegionMap.cpp index adbd873..22c63c8 100644 --- a/zephcore/helpers/RegionMap.cpp +++ b/zephcore/helpers/RegionMap.cpp @@ -57,13 +57,15 @@ bool RegionMap::load(const char* path) { while (num_regions < MAX_REGION_ENTRIES) { auto r = ®ions[num_regions]; - success = fs_read(&file, &r->id, sizeof(r->id)) == sizeof(r->id); + ssize_t n = fs_read(&file, &r->id, sizeof(r->id)); + if (n == 0) break; // clean EOF + success = (n == sizeof(r->id)); success = success && fs_read(&file, &r->parent, sizeof(r->parent)) == sizeof(r->parent); success = success && fs_read(&file, r->name, sizeof(r->name)) == sizeof(r->name); success = success && fs_read(&file, &r->flags, sizeof(r->flags)) == sizeof(r->flags); success = success && fs_read(&file, pad, sizeof(pad)) == sizeof(pad); - if (!success) break; // EOF + if (!success) break; // partial read or corruption if (r->id >= next_id) { // make sure next_id is valid next_id = r->id + 1; @@ -73,7 +75,7 @@ bool RegionMap::load(const char* path) { } fs_close(&file); LOG_INF("Loaded %d regions from %s", num_regions, filepath); - return true; + return success; } bool RegionMap::save(const char* path) {