PoP roomtest: отрисовка стража — в собственный банк (банк 2 упёрся в потолок)
Банк 2 (pop_bg + pop_gdraw) подошёл к границе страницы вплотную: 16 021 из 16 384, свободно 363 байта. А расти ему ещё есть куда — тайлы поздних уровней, чомперы, зеркало, анимации смерти стража. pop_gdraw.c уехал в банк 4 (n_banks 3 -> 4): банк 2 16 021 -> 13 792 (84.2 %, свободно 2 592) банк 4 2 236 (13.6 %, свободно 14 148) Цена: pop_fore_over_char стал кроссбанковым, поэтому помечен __banked — один трамплин (~654 такта) за кадр, других вызывающих у него нет. pop_fore_set_clip уже был __banked, так что там ничего не изменилось. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -82,8 +82,11 @@ void pop_fore_set_clip(int x, int y, int w, int h) __banked;
|
||||
/* То же для НЕ-Kid персонажа (страж): только слой fore + полоса потолка,
|
||||
* без оверлеев поз виса/полёта/подъёма. obj_x — ЛОГИЧЕСКАЯ координата
|
||||
* (до ×8/7), как у kid_fp_obj_x(). */
|
||||
/* __banked: отрисовка стража уехала в СВОЙ банк (pop_gdraw.c), поэтому
|
||||
* вызов стал кроссбанковым и обязан идти через трамплин. Зовётся раз в
|
||||
* кадр, других вызывающих нет — цена одного трамплина здесь не видна. */
|
||||
void pop_fore_over_char(int obj_x, int obj_y, uint16_t w, uint16_t h,
|
||||
int8_t dir);
|
||||
int8_t dir) __banked;
|
||||
|
||||
/* Восстановить фон там, где в прошлых кадрах рисовался ОВЕРЛЕЙ
|
||||
* (draw_other_overlay/floor_overlay/полоса потолка): он выходит за
|
||||
|
||||
Reference in New Issue
Block a user