Files
Sprinter-SDCC/applications/SprPoP/CHANGELOG.md
T
snark13 25abf8ea36 SprPoP: в CHANGELOG к версии и дате добавлен коммит тега
Заголовок записи стал `<имя тега> — <дата> — <коммит>`.

Зачем коммит, если есть имя тега: тег можно передвинуть или
переименовать, а ревизия, на которой релиз собран, должна оставаться в
записи однозначно — по ней билд воспроизводится точно.  Заодно это тот же
хеш, что зашит в EXE как BUILD_ID и виден на экране About, так что
принесённый пользователем скриншот сразу сопоставляется с записью
changelog.

Берётся именно `*objectname` (дереференс аннотированного тега), а не
`objectname`: последний вернул бы хеш самого объекта тега, а не коммита.
Команда целиком выписана и в шапке CHANGELOG, и в правиле в CLAUDE.md,
чтобы не восстанавливать её каждый раз.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018T2k4VZrSyERwk6H97Sfi1
2026-09-02 18:33:05 +03:00

4.3 KiB
Raw Blame History

SprPoP — CHANGELOG

Заметные изменения по релизам. Версия, дата и коммит каждой записи берутся из git — из аннотированного тега, а не проставляются руками, поэтому расходиться с историей они не могут:

git for-each-ref \
    --format='%(refname:short) | %(creatordate:short) | %(*objectname:short)' \
    refs/tags/<тег>

Заголовок записи = <имя тега> — <дата тега> — <коммит тега>. Коммит — дереференс аннотированного тега (*objectname), то есть та ревизия, на которой релиз собран: по ней воспроизводится ровно этот билд.

Здесь только то, что видно ИГРОКУ или меняет способ сборки/запуска. Разбор причин живёт в сообщениях коммитов, открытые баги — в docs/BUGS_OPEN.md, закрытые — в архиве roomtest.

Файл начат с релиза v0.9.6; более ранняя история — в git log и в досках задач.

v0.9.6-hang-sound-button — 2026-09-02 — aaa480d

Три бага, найденные в живой игре и проверенные в 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