Трасса kidobj для сверки с SDLPoP + разбор боя у шва
Инструмент: pop_dbg_kidobj печатает то же, что вывод, добавленный
пользователем в SDLPoP add_kid_to_objtable — tilepos/frame/act/col/cols/rows
(+ наша комната). Считает по set_char_collision и set_objtile_at_char.
Выключен по умолчанию (DBG_KIDOBJ 0), включается одним define; вывод
забирает брейкпоинт MAME на резидентном pop_dbg_trap.
Сверка подтвердила фикс a498255: окно перехода совпало кадр в кадр, за бой
на уровне 1 комната сменилась один раз, на уровне 8 у шва 24/18 — четыре
раза на 387 кадров боя, и все четыре на РАЗРЕШЁННЫХ кадрах (170/164/170/165).
Смен на запрещённых кадрах во всей трассе нет.
Разбор целиком — BUGS_CLOSED.md#seam-fight-flicker, включая невыясненное
расхождение поля cols.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -46,6 +46,14 @@ __sfr __at (0xFE) io_border;
|
||||
#ifndef PROF_BORDER
|
||||
#define PROF_BORDER 1
|
||||
#endif
|
||||
/* ВРЕМЕННО: покадровая трасса kidobj для сверки с SDLPoP (см.
|
||||
* pop_dbg_kidobj в roomtest_cold.c). 0 — выключить.
|
||||
* СВОЙ #ifndef, а не общий с PROF_BORDER: тот задаётся ключом сборки
|
||||
* (-DPROF_BORDER=1), и всё, что лежало внутри его блока, не определялось
|
||||
* вовсе — трасса молча не включалась. */
|
||||
#ifndef DBG_KIDOBJ
|
||||
#define DBG_KIDOBJ 0
|
||||
#endif
|
||||
#if PROF_BORDER
|
||||
#define PROF(n) io_border = (n)
|
||||
#else
|
||||
@@ -640,6 +648,12 @@ int main(void)
|
||||
if (!g_after && !(skip & 2)) { pop_char_draw(POP_CH_OPP); pop_char_fore(POP_CH_OPP); }
|
||||
PROF(6); /* кадр Кида (тот же циан) */
|
||||
if (!(skip & 1)) pop_char_draw(POP_CH_KID); /* спрайт + брызги + клинок */
|
||||
#if DBG_KIDOBJ
|
||||
/* ВРЕМЕННО: трасса для сверки с SDLPoP кадр в кадр. Место — то
|
||||
* же, что у оригинала (конец add_kid_to_objtable), и ВНЕ skip:
|
||||
* пропуск перерисовки не должен рвать трассу. */
|
||||
pop_dbg_kidobj();
|
||||
#endif
|
||||
if (g_after && !(skip & 2)) { pop_char_draw(POP_CH_OPP); pop_char_fore(POP_CH_OPP); }
|
||||
/* Брызги урона рисует сама отрисовка персонажа (порядок objtable:
|
||||
* сразу после него и до клинка), а флаги снимаем здесь: соперника
|
||||
|
||||
Reference in New Issue
Block a user