Мид-оверлей не рисовал передний торец плиты (draw_loose из draw_tile2)
Правый конец падающего куска лежал поверх соседней плиты. У оригинала мид-оверлей — draw_tile2(), и его последний вызов draw_loose(0) рисует передний торец плиты; у loose bottom_id = 0, поэтому больше его не рисует никто, и в overlay_mid_tile торца не было вовсе. Заодно снят вопрос про клип объекта: add_mob_to_objtable ставит куску clip.right = 40, но клип применяется только при chtab_flip_clip[chtab_id], а для chtab_6_environment там 0 — поле игнорируется и в оригинале. Значит «клипа нет» у нас верно, MOB-CLIP-RIGHT закрывается как несуществующий. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -781,6 +781,20 @@ static void overlay_mid_tile(int row, int col)
|
||||
} else if (t->bottom_id) {
|
||||
pop_env_b(t->bottom_id, x, dby);
|
||||
}
|
||||
/* draw_loose(0) — ПЕРЕДНИЙ ТОРЕЦ плиты, последний вызов draw_tile2
|
||||
* (seg008: draw_tile_right, draw_tile_anim_right, draw_tile_base,
|
||||
* draw_tile_anim, draw_tile_bottom, draw_loose). У loose в
|
||||
* pop_tile_table bottom_id = 0, поэтому ветка выше его НЕ рисует, и в
|
||||
* оверлее торца не было вовсе: падающий кусок оставался ПОВЕРХ торца
|
||||
* соседней плиты (найдено пользователем 2026-08-18, ур.11 к.14 —
|
||||
* трясущаяся плита (2,6) и кусок, отвалившийся от (2,5)).
|
||||
*
|
||||
* Кадр берётся по ЖИВОМУ modif, как и верх плиты выше: оверлей рисуется
|
||||
* поверх уже готовой картинки, и дрожащая плита обязана остаться
|
||||
* дрожащей. */
|
||||
if (code == 11 && row >= 0)
|
||||
pop_env_b(POP_LOOSE_FRAM_BOTTOM[pop_loose_frame(pop_loose_modif[row * 10 + col])],
|
||||
x, dby);
|
||||
}
|
||||
|
||||
/* draw_tile_fore (seg008:690) — ТОЛЬКО передний слой (add_foretable): он
|
||||
|
||||
Reference in New Issue
Block a user