layout: restructure into src/ tests/ android/ scripts/ tools/
- extension/src/{port,platform,codepage} -> src/; native_render -> src/host
(+ dxt, shaders/); libgr2 -> src/gr2; extension/third_party -> third_party
- extension/tests -> tests/port, libgr2/tests -> tests/gr2
- android-native -> android (build.sh, push-client.sh moved in)
- script -> scripts; tools/40250 -> tools/server; oracle -> tools/granny-oracle;
perf tools -> tools/perf
- all build trees under build/ (native, release, android, port-gate)
- xrender:: CMake aliases -> mt::; port-map ledger impl paths rewritten
No code changes. ctest 15/15, port_gate macos+android PASS, port_map check 0 errors.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
70710477cf
commit
a46093104c
@@ -30,16 +30,17 @@
|
||||
|
||||
## Current client
|
||||
|
||||
- GDScript runtime: `project/` (entry `project/app_flow.gd`, world `project/game_scene.gd`); UI in `project/ui/`.
|
||||
- Native extension: `extension/src/` (network in `extension/src/net/`, classic 40250 protocol in `extension/src/net/classic/`).
|
||||
- Format readers: `formats/`; Granny: `libgr2/`; assets/tables: `assets/`; Granny oracle: `oracle/`; tools: `tools/`.
|
||||
- `src/port/<Lib>/<File>.{h,cpp}` — mirror of each 40250 `logic`/`python` unit (see SKILL.md "Code layout").
|
||||
- `src/platform/` — implementations of the mirrored 40250 platform classes (D3D8 recorder, Granny,
|
||||
Miles, SpeedTree stand-in, window/input, ScriptLib boot).
|
||||
- `src/host/` — SDL3 + Vulkan host (`main.cpp`); `src/gr2/` — Granny reader; `src/codepage/` — code pages.
|
||||
- `third_party/` — vendored cpython 2.7.18, cryptopp, freetype, minilzo.
|
||||
- `tests/port/` — port tests and the fake login server; `tests/gr2/` — Granny reader tests.
|
||||
- `android/` — SDLActivity shell, `android/build.sh`, `android/push-client.sh`.
|
||||
- `scripts/` — gates and build helpers; `tools/` — standalone dev tools (Granny oracle, perf, server).
|
||||
- The GDScript runtime and `extension/src/net` below are gone (2026-09-23 … 09-29); the table records
|
||||
where logic came from.
|
||||
|
||||
### Target layout
|
||||
|
||||
- `extension/src/port/<Lib>/<File>.{h,cpp}` — mirror of each 40250 `logic` unit (see SKILL.md
|
||||
"Code layout"). Does not exist yet; the first ported unit creates it and adds it to
|
||||
`extension/CMakeLists.txt`.
|
||||
- `extension/src/platform/` — adapter interfaces named after the 40250 platform classes they replace.
|
||||
- The files in the table below are **migration sources**: when a unit is ported, its logic moves out
|
||||
of them into the mirror file.
|
||||
|
||||
@@ -67,16 +68,15 @@ The 106 `project/*_system.gd` files that only their own `test_*_parity.gd` loade
|
||||
|
||||
- `docs/CLIENT-GAP.md`, `docs/CLIENT-PARITY-AUDIT-AND-FIX-GUIDE.md`, `docs/archive/CLIENT-40250-PORT.md`,
|
||||
`docs/PARITY-GAP.md`: background only; trust the port-map, not their status text.
|
||||
- `oracle/run-diff-suite.sh`: Granny numerical comparison suite.
|
||||
- `tools/granny-oracle/run-diff-suite.sh`: Granny numerical comparison suite.
|
||||
|
||||
## Verification commands
|
||||
|
||||
```bash
|
||||
godot --headless --path project --script <test>.gd # most project tests
|
||||
cmake --build build -j8 && ctest --test-dir build --output-on-failure -j4
|
||||
cmake -S . -B build/native -DCMAKE_BUILD_TYPE=Release -DMT_BUILD_NATIVE_RENDER=ON -DCMAKE_PREFIX_PATH=/opt/homebrew
|
||||
cmake --build build/native -j8 && ctest --test-dir build/native --output-on-failure -j4
|
||||
./scripts/port_gate.sh macos android # build/port-gate
|
||||
./android/build.sh Release --install # build/android + APK
|
||||
```
|
||||
|
||||
`build/` (Debug) is the configured tree; it also writes `project/bin/libmtgodot.*.dylib`, so rebuild
|
||||
before running Godot tests after pulling native changes (a stale dylib shows up as "method not
|
||||
found" parse errors). `build-debug/` is a stale tree from another checkout; do not use it.
|
||||
Always finish with `git diff --check`.
|
||||
All build trees live under `build/` (gitignored). Always finish with `git diff --check`.
|
||||
|
||||
Reference in New Issue
Block a user