Уровень 2 принят; в README — оговорка, что иммортал только в бою
Обход уровней после оптимизации фаз: уровни 1 и 2 пройдены, критичных багов не осталось. Найденное по дороге закрыто и перечислено в шапке TASKS_OPEN.md, чтобы регресс-база была видна одним взглядом. README раньше читы не перечислял вовсе. Теперь у бессмертия явно записано главное ограничение — работает ТОЛЬКО с мечом в руке — и почему оно не косметическое: кадры seq_74 все с мечом, и подмена смерти на эту анимацию оставляла Кида в стойке при sword == 0, где у control() нет ни одной ветки. На физику (падения/пики/чомперы) бессмертие действует всегда. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -27,6 +27,20 @@ ESC выход.
|
||||
проблемный кадр на `1`, спокойно рассмотреть/снять пиксели — в т.ч.
|
||||
удалённо из MAME MCP-моста, пока анимация стоит.
|
||||
|
||||
**Читы** (`pop_cheat.h`; в релизной сборке выключаются через `pop_cheats`):
|
||||
- **I** — бессмертие Кида (toggle). **Работает ТОЛЬКО в бою, то есть с
|
||||
мечом в руке.** Удар по безоружному Киду остаётся смертельным — ровно как
|
||||
в оригинале (seg002 `hurt_by_sword`: *«Being hurt when not in fighting pose
|
||||
means death»*, `take_hp(100)`). Ограничение не косметическое: анимация
|
||||
«получил удар» (`seq_74`) состоит из кадров 150..179, которые ВСЕ с мечом,
|
||||
и подмена смерти на неё оставляла Кида в боевой стойке при `sword == 0` —
|
||||
состоянии, для которого у диспетчера `control()` нет ни одной ветки, то
|
||||
есть с намертво зависшим управлением
|
||||
([BUG-CHEAT-IMM-1](BUGS_CLOSED.md#bug-cheat-imm-1)). На физику (падения,
|
||||
пики, чомперы) бессмертие действует всегда, независимо от меча.
|
||||
- **K** — убить стража, **S** — выдать меч, **Shift+L** — следующий уровень,
|
||||
**+/−** — обход комнат.
|
||||
|
||||
Эталон вида комнаты — `../toolchain/1.1-2.png`.
|
||||
|
||||
## Модули
|
||||
|
||||
@@ -29,6 +29,21 @@
|
||||
- **libbgi:** блочные AND/OR/XOR/NOT акселератора (2026-08-11, `tests/accop`)
|
||||
— задел под вид тени и под любые эффекты «поверх того, что уже нарисовано».
|
||||
|
||||
**Обход уровней после оптимизации фаз — идёт сейчас (начат 2026-08-17).**
|
||||
Оптимизация зелёной/циан фаз тронула порядок пометок и перерисовок, поэтому
|
||||
уровни проходятся заново подряд:
|
||||
|
||||
| уровень | статус | что нашлось и закрыто по дороге |
|
||||
|---|---|---|
|
||||
| 1 | **принят** (2026-08-17) | мерцание торцов плит/полов/кнопок (запечка шире копируемого прямоугольника); потолочный fore поверх падающей плиты (не было ряда −1 в проходе foretable); соседний пол под плитой (потерянная половина `draw_mob` — `set_redraw2`); залипший блеск меча (`trob_drawn` не совпадал с тем, что нарисует полная отрисовка) |
|
||||
| 2 | **принят** (2026-08-17) | чёрные бары поверх стража — `bar` с `x + w > 320` заворачивался в соседнюю страницу видеопамяти (`dd40c24`); [BUG-CHEAT-IMM-1](BUGS_CLOSED.md#bug-cheat-imm-1) — боевая стойка без меча под читом бессмертия |
|
||||
| 3+ | не начат | |
|
||||
|
||||
Критичных багов на уровнях 1 и 2 не осталось. Следом — регресс тактов на
|
||||
23/13 (документы фаз: [`../docs/perf_green_phase.md`](../docs/perf_green_phase.md),
|
||||
[`../docs/perf_cyan_phase.md`](../docs/perf_cyan_phase.md), сцена и метод —
|
||||
[`../docs/perf_l13_room23.md`](../docs/perf_l13_room23.md)).
|
||||
|
||||
Правило проекта в силе: механику сверять с `../SDLPoP/src/` ДО кодинга;
|
||||
диагноз платформы подтверждать артефактом (брейкпоинт/дамп/.asm), а не
|
||||
гипотезой (memory `defer_unexplained_quirks`).
|
||||
|
||||
Reference in New Issue
Block a user