До сих пор «что изменилось» восстанавливалось только из 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
3.9 KiB
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