diff --git a/applications/PoP/roomtest/bug_closed.md b/applications/PoP/roomtest/bug_closed.md index 836ce51..2960ea3 100644 --- a/applications/PoP/roomtest/bug_closed.md +++ b/applications/PoP/roomtest/bug_closed.md @@ -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):