f206a4cca6
До сих пор «что изменилось» восстанавливалось только из git log, а он устроен по ПРИЧИНАМ правок, а не по тому, что заметит игрок. Заводим отдельный файл — как это уже сделано у mdview2 (changelog в репозитории ведётся на приложение, а корневой RELEASE_NOTES.md описывает тулчейн и живёт своей жизнью). Начат с v0.9.6: зацеп, зацикленный взмах клинка, кнопка в паласе. Более ранняя история остаётся в git log и досках — переписывать её задним числом смысла нет. ВЕРСИЯ И ДАТА БЕРУТСЯ ИЗ GIT, а не проставляются руками: заголовок записи = имя аннотированного тега, дата = дата его создания (`git for-each-ref refs/tags/<тег>`). Так запись не может разойтись с историей. Правило записано в CLAUDE.md рядом с дисциплиной досок, иначе файл заведётся один раз и умрёт. В запись идёт только то, что видно ИГРОКУ или меняет сборку/запуск, по схеме «симптом -> причина одной фразой -> хеш»; полный разбор остаётся в сообщении коммита и не дублируется. Файл в UTF-8, как остальные доки SprPoP. CP866 у mdview2 — вынужденная мера (его changelog читает сам MDView), здесь такого требования нет. Ссылка добавлена во входные точки docs/README.md. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018T2k4VZrSyERwk6H97Sfi1
50 lines
3.9 KiB
Markdown
50 lines
3.9 KiB
Markdown
# SprPoP — CHANGELOG
|
||
|
||
Заметные изменения по релизам. **Версия и дата каждой записи берутся из
|
||
git** — из аннотированного тега (`git for-each-ref refs/tags`), а не
|
||
проставляются руками, поэтому расходиться с историей они не могут.
|
||
Заголовок записи = имя тега, дата = дата его создания.
|
||
|
||
Здесь только то, что видно ИГРОКУ или меняет способ сборки/запуска.
|
||
Разбор причин живёт в сообщениях коммитов, открытые баги — в
|
||
`docs/BUGS_OPEN.md`, закрытые — в архиве roomtest.
|
||
|
||
Файл начат с релиза v0.9.6; более ранняя история — в `git log` и в
|
||
досках задач.
|
||
|
||
## v0.9.6-hang-sound-button — 2026-09-02
|
||
|
||
Три бага, найденные в живой игре и проверенные в MAME после исправления.
|
||
|
||
- **Зацеп срывался на следующем кадре** (регресс, тянулся с 4e12aa5).
|
||
Кид цеплялся за кромку, поза зацепа рисовалась — и он тут же падал.
|
||
Ловилось на длинном прыжке уровня 3 (комната 7) и в attract-демо, где
|
||
Кид вместо подъёма на кромку (0,2) улетал на пики. Причина: страж
|
||
«падения сквозь стену» принимал кладку под кромкой за стену, в которую
|
||
персонаж влетел, и отменял только что состоявшийся захват. Теперь
|
||
удачный зацеп отменяет этого стража. `38fb3c0`
|
||
|
||
- **Непрерывный взмах клинка у безоружного Кида.** На подъёме шёл
|
||
нескончаемый свист меча, которого у Кида нет. Причина: в порт не
|
||
доехали два условия оригинала, включая гард, который автор SDLPoP
|
||
подписал прямым текстом как «фикс зацикленного звука взмаха». `cb995bf`
|
||
|
||
- **Кнопка под Кидом заливалась кладкой** на дворцовых уровнях. Кид
|
||
подтягивается на открывающую кнопку, и кромка, которая его прячет,
|
||
нарисована кирпичом (уровень 4, комната 18). Причина: подстановка
|
||
спрайта «кнопка без пола слева» действует только в подземелье, и это
|
||
условие было потеряно в перерисовке поверх персонажа — при том что в
|
||
статической отрисовке комнаты оно есть. `8548aa9`
|
||
|
||
Сопутствующее, для разработки:
|
||
|
||
- В доске исправлено толкование звука 11: это индикатор ПРОМАХА, а не
|
||
«любого укола». Прежняя запись описывала наш собственный код вместо
|
||
оригинала, и из-за неё в CLIMB-VS-GUARD зря отодвинули версию про порог
|
||
дистанции. `400f5cb`
|
||
- Новый набор host-тестов `t_hang`: мерит не «вис наступил», а «вис
|
||
ДЕРЖИТСЯ» — прежние наборы регресс зацепа не видели именно поэтому.
|
||
Входит в `38fb3c0`.
|
||
- В `CLAUDE.md` записан путь запуска на HDD-образе: игра лежит в
|
||
`D:\GAMES\SPRPOP`, а не в корне диска. `aaa480d`
|