L9-INVERT: клип поля при перевороте (мусор в бортах)
Найдено пользователем: после телепорта в перевёрнутом виде ниже поля мусор. Спрайты, торчащие в обычном виде ВЫШЕ поля (полоса кладки у потолка), после отражения торчат НИЖЕ и лезут в борт с полосой HP. blit_b_clip при перевороте режет по обеим границам поля всегда, а не по pop_t_clip_top; быстрый путь pop_blit_b отдаёт клипующему всё, что выходит за поле. Проверено в MAME: телепорт по комнатам в перевёрнутом виде — борта чистые, комнаты (факелы, чомперы, пол) зеркальны. Переходы между комнатами в перевёрнутом виде работают. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -306,7 +306,26 @@ vflip-двойник. Тем самым зеркалятся и полная о
|
||||
`g0` станут чисто «полевыми» (деления HP уедут в константы резидента), и
|
||||
исключений в кэше не останется — эту задачу логично сделать ДО II.4.
|
||||
|
||||
## II.5 Клип
|
||||
## II.5 Клип — ЧАСТЬ СДЕЛАНА 2026-08-12 (поле), остаётся clip_char
|
||||
|
||||
**Клип ПОЛЯ сделан.** Симптом (нашёл пользователь): после телепорта в
|
||||
перевёрнутом виде ниже поля — мусор. Причина: спрайты, которые в обычном
|
||||
виде торчат ВЫШЕ поля (полоса кладки у потолка, её режет `pop_t_clip_top`),
|
||||
после отражения торчат НИЖЕ и лезут в борт, где живёт полоса HP.
|
||||
|
||||
Фикс в `blit_b_clip`: при перевороте режем по ОБЕИМ границам поля всегда, а
|
||||
не по `pop_t_clip_top` — зеркальный спрайт может вылезти и там, где в
|
||||
обычном виде клип не ставили. Плюс в `pop_blit_b` быстрый путь (без клипа)
|
||||
теперь пропускает в клипующий всё, что выходит за поле.
|
||||
|
||||
Проверено в MAME: телепорт по комнатам в перевёрнутом виде — борта чистые,
|
||||
комнаты рисуются зеркально (факелы, чомперы, пол). То есть **переходы
|
||||
между комнатами в перевёрнутом виде работают**.
|
||||
|
||||
Осталось из этого пункта: `clip_char` (верх поля ↔ низ) и клип падающей
|
||||
плиты — они про ПЕРСОНАЖЕЙ и падающие объекты, то есть идут вместе с II.4.
|
||||
|
||||
### Контракт (исходное описание)
|
||||
|
||||
- `clip_char` (`pop_map.c:2287`, таблица `y_clip[5] = {-60,3,66,129,192}`) —
|
||||
режет верх спрайта по линии ряда; при перевороте линия становится нижней.
|
||||
|
||||
Reference in New Issue
Block a user