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_MUS_4_LOAD = PV_DIALOG1_START + 54, /* подкачка m52 */
PV_WALK2_START = PV_DIALOG1_START + 176, PV_WALK2_START = PV_DIALOG1_START + 176,
PV_DIALOG2_START = PV_DIALOG1_START + 416, PV_DIALOG2_START = PV_DIALOG1_START + 416,
/* ЗАКЛИНАНИЕ СДВИНУТО РАНЬШЕ СЦЕНАРИЯ — ПОДГОНКА ПОД МУЗЫКУ. /* ПОДГОНКА ЗАКЛИНАНИЯ ПОД МУЗЫКУ СНЯТА (2026-08-28): теперь 0.
* *
* Сцена render-bound: кадр рисуется дороже своего бюджета, кадровая * История: сцена была render-bound кадр рисовался дороже своего
* ветка пейсинга догона не имеет, и анимация идёт ~49 тиков в секунду * бюджета, кадровая ветка пейсинга догона не имела, и анимация шла
* вместо 60. Реплика Джафара при этом играет по РЕАЛЬНОМУ времени и * ~49 тиков в секунду вместо 60 (замер 2026-08-27). Реплика Джафара
* успевает кончиться, когда шкала стоит на 1854 вместо 2028 (замер в * при этом играет по РЕАЛЬНОМУ времени, поэтому кода приходила
* MAME 2026-08-27 зондом на конец трека: длина насосу отдана полная, * примерно на секунду раньше молнии, и жест целиком (замах, шаг
* 1403 порции, курсор дошёл до последней страницы — трек доигрывает * назад, вспышка) сдвигали раньше сценария на подобранные на слух
* целиком, отстаёт именно картинка). * 100 тиков.
* *
* Из-за этого кода реплики приходила примерно на секунду раньше * Причину убрали: отрисовка разложена по кадровым интервалам
* молнии. Честное лечение — удешевить кадр сцены; до тех пор двигаем * (pv_restore_bg), сцена идёт по единственным часам — кадрам луча, —
* жест целиком (замах, шаг назад, вспышка), чтобы он не сломался * и подкачка трека оплачивается интервалом (pop_music_load_step).
* внутри себя. Величина подобрана НА СЛУХ и уточняется прогоном: * После этого подгонка стала вредной: молния била больше чем на
* расчётные полсотни тиков (секунда отставания при ~49 тиках/с) на * секунду раньше коды (проверка пользователем 2026-08-28). Константу
* слух почти не изменили картины, поэтому взято вдвое больше. * оставляем на месте — если запись другого набора (mt32/ogg) снова
* * разъедется, крутить надо её, а не тайминги сценария. */
* Эффектов дверей это не касается: у них и звук, и картинка идут по PV_MAGIC_LEAD = 0,
* одной и той же шкале и разъехаться не могут. */
PV_MAGIC_LEAD = 100,
PV_RAISE_START = PV_DIALOG1_START + 696 - PV_MAGIC_LEAD, PV_RAISE_START = PV_DIALOG1_START + 696 - PV_MAGIC_LEAD,
PV_STEPBACK_START = PV_DIALOG1_START + 703 - PV_MAGIC_LEAD, PV_STEPBACK_START = PV_DIALOG1_START + 703 - PV_MAGIC_LEAD,
PV_MAGIC_START = PV_DIALOG1_START + 822 - PV_MAGIC_LEAD, PV_MAGIC_START = PV_DIALOG1_START + 822 - PV_MAGIC_LEAD,