SprPoP: подгонка молнии под музыку снята — причина устранена

PV_MAGIC_LEAD двигал жест заклинания (замах, шаг назад, вспышка) на 100
тиков (1,67 с) раньше сценария: сцена была render-bound, шла ~49 тиков/с
вместо 60, а реплика играла по реальному времени — кода приходила раньше
молнии.  После перевода сцены на единые часы и блочную отрисовку подгонка
стала вредной: молния била больше чем на секунду РАНЬШЕ коды (проверка
пользователем).  Ставим 0; константу оставляем на месте — если запись
другого набора (mt32/ogg) разъедется, крутить надо её.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-28 16:28:17 +03:00
parent f25ed37d85
commit 50570881f5
+16 -18
View File
@@ -83,26 +83,24 @@ enum {
PV_MUS_4_LOAD = PV_DIALOG1_START + 54, /* подкачка m52 */
PV_WALK2_START = PV_DIALOG1_START + 176,
PV_DIALOG2_START = PV_DIALOG1_START + 416,
/* ЗАКЛИНАНИЕ СДВИНУТО РАНЬШЕ СЦЕНАРИЯ — ПОДГОНКА ПОД МУЗЫКУ.
/* ПОДГОНКА ЗАКЛИНАНИЯ ПОД МУЗЫКУ СНЯТА (2026-08-28): теперь 0.
*
* Сцена render-bound: кадр рисуется дороже своего бюджета, кадровая
* ветка пейсинга догона не имеет, и анимация идёт ~49 тиков в секунду
* вместо 60. Реплика Джафара при этом играет по РЕАЛЬНОМУ времени и
* успевает кончиться, когда шкала стоит на 1854 вместо 2028 (замер в
* MAME 2026-08-27 зондом на конец трека: длина насосу отдана полная,
* 1403 порции, курсор дошёл до последней страницы — трек доигрывает
* целиком, отстаёт именно картинка).
* История: сцена была render-bound кадр рисовался дороже своего
* бюджета, кадровая ветка пейсинга догона не имела, и анимация шла
* ~49 тиков в секунду вместо 60 (замер 2026-08-27). Реплика Джафара
* при этом играет по РЕАЛЬНОМУ времени, поэтому кода приходила
* примерно на секунду раньше молнии, и жест целиком (замах, шаг
* назад, вспышка) сдвигали раньше сценария на подобранные на слух
* 100 тиков.
*
* Из-за этого кода реплики приходила примерно на секунду раньше
* молнии. Честное лечение — удешевить кадр сцены; до тех пор двигаем
* жест целиком (замах, шаг назад, вспышка), чтобы он не сломался
* внутри себя. Величина подобрана НА СЛУХ и уточняется прогоном:
* расчётные полсотни тиков (секунда отставания при ~49 тиках/с) на
* слух почти не изменили картины, поэтому взято вдвое больше.
*
* Эффектов дверей это не касается: у них и звук, и картинка идут по
* одной и той же шкале и разъехаться не могут. */
PV_MAGIC_LEAD = 100,
* Причину убрали: отрисовка разложена по кадровым интервалам
* (pv_restore_bg), сцена идёт по единственным часам — кадрам луча, —
* и подкачка трека оплачивается интервалом (pop_music_load_step).
* После этого подгонка стала вредной: молния била больше чем на
* секунду раньше коды (проверка пользователем 2026-08-28). Константу
* оставляем на месте — если запись другого набора (mt32/ogg) снова
* разъедется, крутить надо её, а не тайминги сценария. */
PV_MAGIC_LEAD = 0,
PV_RAISE_START = PV_DIALOG1_START + 696 - PV_MAGIC_LEAD,
PV_STEPBACK_START = PV_DIALOG1_START + 703 - PV_MAGIC_LEAD,
PV_MAGIC_START = PV_DIALOG1_START + 822 - PV_MAGIC_LEAD,