L9-INVERT: состояние переворота, зелье типа 4 и pop_flip_screen
Шаг II.1 плана. pop_upside/pop_upside_dirty (порт upside_down и need_redraw_because_flipped), ветка case 4 в proc_get_object (только тоггл — ни вспышки, ни урона, как в оригинале), сброс стартом уровня и смертью Кида. pop_flip_screen (банк 8) переворачивает уже нарисованное двумя копиями акселератора: VFLIP в скрытую страницу, показ, DIRECT во вторую; затем инвалидация слотов персонажей, метки фона и полосы HP. Чит-клавиша U — порт seg000:0793 (в оригинале переворот тоже на чите): без неё эффект не проверить, чит-телепорт до зелья в комнате 7 не дотягивается. Проверено в MAME на уровне 9: комната переворачивается целиком за кадр, повторное нажатие возвращает. Персонажи и факелы пока не зеркалятся — это шаги II.3/II.4. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -170,7 +170,32 @@ void gfx_copy_rect(uint8_t src_page, int sx, int sy,
|
||||
|
||||
# Часть II — приложение (roomtest)
|
||||
|
||||
## II.1 Состояние и момент переключения
|
||||
## II.1 Состояние и момент переключения — СДЕЛАНО 2026-08-12
|
||||
|
||||
Проверено в MAME (уровень 9, комната 7): нажатие чита переворачивает всю
|
||||
комнату целиком за один кадр, повторное — возвращает. Персонажи и
|
||||
анимируемые тайлы (факелы) пока рисуются НЕ зеркально — это шаги II.3/II.4.
|
||||
|
||||
Что появилось:
|
||||
|
||||
- `pop_upside` + `pop_upside_dirty` (порт `upside_down` и
|
||||
`need_redraw_because_flipped`) в `pop_map.c`;
|
||||
- ветка `case 4` в `pop_proc_get_object`: только тоггл, без вспышки и урона
|
||||
(как seg006:1885);
|
||||
- сброс в `pop_start_level` (seg003:38/188) и по смерти Кида (seg000:1224);
|
||||
- `pop_flip_screen()` в банке 8: `gfx_copy_page(VFLIP)` в скрытую страницу →
|
||||
показать её → `gfx_copy_page(DIRECT)` во вторую → инвалидация слотов
|
||||
персонажей, метки «фон трогали» и полосы HP;
|
||||
- **чит-клавиша U** — это ПОРТ, а не костыль: в оригинале переворот тоже
|
||||
висит на чит-клавише (seg000:0793). Без неё эффект проверяется только
|
||||
честным проходом уровня 9 до комнаты 7 — чит-телепорт до зелья не
|
||||
дотягивается (оно на `(1,7)`, а навигация ставит Кида на нижний ряд).
|
||||
|
||||
Цена: резидент +602 Б (новые функции libbgi линкуются в него), куча
|
||||
1707 → 1050 Б. Это аргумент за [MEM-COLD2](../roomtest/TASKS_OPEN.md#mem-cold2)
|
||||
до начала II.4.
|
||||
|
||||
### Контракт (исходное описание шага)
|
||||
|
||||
- `pop_upside` (uint8_t) — рядом с `pop_feather` в `pop_map.c`, экспорт в
|
||||
`pop_map.h`;
|
||||
|
||||
Reference in New Issue
Block a user