docs: падение при отходе с мечом — НЕ БАГ (сверено с SDLPoP)

Пользователь проверил в SDLPoP v1.24: оригинал падает с той же позиции,
по той же траектории и с тем же видом кадра падения (голова/руки поверх
кромки пола).  Кадры совпадают один в один.

Механика записана с числами: у стоек с мечом weight_x = 13-14 против 3 у
обычной стойки, поэтому при взгляде влево точка веса уезжает на 13 px
вправо от Char.x, и кромку персонаж переступает раньше, чем выглядит.
Замер: x=151 -> dx_weight=164 -> колонка 7 (дыра) вместо 6 (пол).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Александр Петров
2026-08-04 13:19:24 +03:00
parent 3164065243
commit 969f3f1b9a
+30
View File
@@ -523,6 +523,36 @@ MAME по кромкам.
## НЕ БАГИ (кривая картинка, но совпадает с оригиналом — НЕ чинить)
- **Отход с ВЫНУТЫМ МЕЧОМ роняет Кида в яму «раньше, чем кажется»** (комната 4
уровня 2, кромка ряда 1 у дыры от упавшей loose-плиты). Сверено с SDLPoP
v1.24 пользователем (2026-08-04): оригинал падает **с той же позиции, по той
же траектории и с тем же видом кадра падения** (голова/руки поверх кромки
пола). Наш кадр и кадр SDLPoP совпадают один в один.
Механика, чтобы не разбирать заново. У стоек с мечом ОГРОМНАЯ точка веса:
```
кадр 158/170/171 (stand_with_sword): dx=0 weight_x=13
кадр 157 (walk_with_sword): dx=0 weight_x=14
кадр 15 (обычная стойка): dx=0 weight_x=3
```
`dx_weight()` = `char_dx_forward(dx weight_x)`, а при взгляде ВЛЕВО знак
меняется — точка веса уезжает на 13 px ВПРАВО от `Char.x`. Замер нашего
кадра падения: `x=151`, взгляд влево → `dx_weight = 164` → `m7(164)` = колонка
**7**, а (1,7) — дыра. `check_on_floor` честно видит «под ногами не пол».
С обычной стойкой (weight_x=3) вышло бы 154 → колонка 6 → пол.
То есть с мечом персонаж «стоит» на 10 px правее, чем выглядит, и кромку
переступает раньше. Данные кадров у нас совпадают с `frame_table_kid`
(seg006:127) байт в байт, `swordfight`/`back_with_sword` портированы дословно
(включая `control_backward = CONTROL_IGNORE` — один нажим = один шаг).
Чинить нечего.
⚠ **Не путать** с тем, что БЫЛО нашим багом рядом: расширение футпринта
перерисовки под клинок (`redraw_at_char`, seg003:0430) — его не было, и меч
оставлял след/лез поверх столба. Исправлено 2026-08-04.
- **Голова стоящего Кида поверх падающей на него loose-плиты.** Комната 12:
зацеп не удался, Кид остался стоять, сбитая плита падает прямо на него —
голова рисуется ПОВЕРХ плиты. Сверено покадрово с SDLPoP v1.24 (2026-07-29):