diff --git a/CMakeLists.txt b/CMakeLists.txt index 60b59ca..7249c71 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,6 +21,7 @@ target_include_directories(sots_addresses INTERFACE ${CMAKE_SOURCE_DIR}/include) add_subdirectory(src/mars/parse) # brace-block + .effect readers (lib mars_parse) add_subdirectory(src/mars/text) # flat-kv, id-manifest, csv (lib mars_text) add_subdirectory(src/game/sim) # strategic formulas, pure (lib sots_game_sim) +add_subdirectory(src/mars/vfs) # .gob ZIP reader + native override (lib mars_vfs, miniz) if(WIN32) # ---- shim: proxy binkw32.dll that the original game loads (Phase 2 frontend) ---- @@ -44,7 +45,7 @@ else() add_executable(addr_smoke tests/addr_smoke.cpp) target_link_libraries(addr_smoke PRIVATE sots_addresses) add_test(NAME addr_smoke COMMAND addr_smoke) - foreach(_t mars_parse mars_text game_sim) + foreach(_t mars_parse mars_text game_sim mars_vfs) if(EXISTS ${CMAKE_SOURCE_DIR}/tests/${_t}/CMakeLists.txt) add_subdirectory(tests/${_t}) endif() diff --git a/README.md b/README.md index 6bb0263..ae79692 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,7 @@ loads) builds, deploys, hooks, and logs from a real game launch. Engine code acc - `mars/parse` — brace-block + `.effect` readers (1,531/1,531 files agree with the reference) - `mars/text` — flat key/value tables, id manifests, CSV (64/64 files agree) - `game/sim` — strategic formulas (economy, research, colonies, movement) as pure functions; 356 hand-computed checks +- `mars/vfs` — `.gob` (ZIP) archive reader + loose-file override; entry counts and bytes verified against `unzip` Build: `cmake --preset host && cmake --build --preset host && ctest --preset host` (Linux); `tools/sync-build.sh` cross-builds the shim on the lab box and stages it for deployment.