SprPoP: тесты стены + задача VANILLA/BUGFIXED, находка 24 отложена

КОД ИГРЫ НЕ МЕНЯЛСЯ — правка находки 24 сделана и откачена.

ТЕСТЫ.  Набор t_wall вырос с одной проверки до трёх: добавлены проверка
X на каждом кадре падения (персонаж не должен оказываться внутри кладки)
и симметричный прыжок через провал с другой стороны.

Ключевое в них — форма ожидания.  Тест НЕ требует нуля заходов в кладку,
а сторожит их ЧИСЛО: сейчас ровно два случая из четырнадцати стартовых
позиций.  Это ванильное поведение оригинала, для которого SDLPoP держит
отдельное опциональное исправление; больше двух — значит правка сделала
нас хуже ванили, меньше — значит фикс кем-то портирован.  То есть тест
сразу готов обслуживать оба будущих режима.

По дороге тест дважды ловил не баг движка, а мою ошибку в самой сцене
(старт в пустой клетке; перелёт через площадку считался нарушением).
Оба раза чинился тест, а не движок.

НАХОДКА 24 ОТЛОЖЕНА.  Перезагрузка кадра в in_wall верна по букве
оригинала, но эффекта показать не удалось: все 15 наборов host-тестов
дают одинаковый результат до и после.  При этом правка не бесплатна —
маппинг окна и перезагрузка кадра на каждое выталкивание.  Платить за
недоказанное не стали.

НОВАЯ ЗАДАЧА: docs/vanilla_vs_bugfixed.md — поддержка двух поведений,
ванильного и с багфиксами.  Туда переехали находка 24, три опциональных
фикса SDLPoP (скольжение сквозь стену, прыжок над воротами, гобелен) и
готовый детектор из t_wall.  Открытые вопросы записаны: чем переключать
(возможно, объединить с уже существующим VANILLA/ENHANCED), цена
рантайм-проверки в горячем пути, что считать умолчанием, как гонять
тесты в двух режимах.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011MsUsEFAQfsjjQpJ7RtKVY
This commit is contained in:
2026-08-31 20:13:25 +03:00
parent b55d4d11e3
commit 90e304f071
3 changed files with 216 additions and 1 deletions
+13 -1
View File
@@ -455,7 +455,19 @@
стены на следующем кадре. У нас его может съесть гард из находки 22.
Это главная зацепка по симптому.
### 24. `in_wall`: не перезагружается кадр — ранг **Б**
### 24. `in_wall`: не перезагружается кадр — ранг **Б**, ОТЛОЖЕНА
> **Правка сделана и откачена 2026-08-31.** По букве оригинала находка
> верна, но практического эффекта показать не удалось: все 15 наборов
> host-тестов дали одинаковый результат до и после, включая специально
> написанный тест на заход в кладку (`t_wall`). При этом правка не
> бесплатна — добавляет маппинг окна и перезагрузку кадра на каждое
> выталкивание из стены. Платить за недоказанное не стали.
>
> Задача переехала в `docs/vanilla_vs_bugfixed.md`: вернуться к ней при
> работе над двумя режимами поведения, где появится сценарий, в котором
> кадр меняется перед выталкиванием.
*Оригинал:* `in_wall` (seg006) после выталкивания персонажа из стены
делает `load_fram_det_col()` — ЗАГРУЖАЕТ КАДР и следом определяет колонку,