diff options
| author | Valentin Popov <valentin@popov.link> | 2026-07-18 18:42:52 +0300 |
|---|---|---|
| committer | Valentin Popov <valentin@popov.link> | 2026-07-18 18:42:52 +0300 |
| commit | e33925677692b85d096d891b381bac62b2c9942b (patch) | |
| tree | 8abe294a8098beb00cf79b57e325beaafb44a37b /docs/tomes/06-behavior.md | |
| parent | b1ff50f9db85dc1f04a0e975adbb98ee0cf3a436 (diff) | |
| download | fparkan-e33925677692b85d096d891b381bac62b2c9942b.tar.xz fparkan-e33925677692b85d096d891b381bac62b2c9942b.zip | |
feat(runtime): add terrain-snapped reference movement
Diffstat (limited to 'docs/tomes/06-behavior.md')
| -rw-r--r-- | docs/tomes/06-behavior.md | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/docs/tomes/06-behavior.md b/docs/tomes/06-behavior.md index 93ec301..3de3a22 100644 --- a/docs/tomes/06-behavior.md +++ b/docs/tomes/06-behavior.md @@ -290,6 +290,30 @@ Control получает world-interface Terrain и использует пов последовательности, а интеграция использует одну политику `dt` и округления. Иначе одинаковая миссия постепенно расходится даже без сети. +#### Reference controller в текущем runtime + +`fparkan-runtime::advance_reference_movement` — намеренно маленький +детерминированный мост между сохранённым mission transform и `TerrainWorld`. +Он получает `OriginalObjectId`, явную XY-цель и положительный максимум шага, +находит только live/registered object по исходному ID, двигает XY не более чем +на этот шаг и записывает высоту из `TerrainWorld::height_at`. Orientation и +scale остаются исходными IEEE-754 words; функция не изменяет clock, очередь +World3D или animation state. Возвращаемое значение означает достижение именно +заданной XY-цели. + +Это **не** восстановленный Control, Behavior или navigation controller: +функция не строит маршрут, не использует `dt`, скорость, terrain normal, +коллизии, acceleration и оригинальные AI decisions. Она существует как +проверяемый reference path, который фиксирует границу будущих controller-ов и +не позволяет renderer-у или gameplay обходить terrain query. Non-finite input, +неположительный шаг, отсутствующая миссия/объект и XY вне поверхности дают +явную ошибку без частичного изменения transform. + +Licensed test на GOG `Autodemo.00` запускает этот путь для live mission object, +находит существующую поверхность и проверяет точные XY/Z words после snap. Это +доказывает связывание current runtime data, но не доказывает семантику +оригинального движения. + ### Различия Control в Части 2 `Control.dll` пересобрана при неизменных размере, imports и пяти именах/ordinals |
