Резидент: pop_kid/pop_guard/main расколоты по частоте вызова (куча 6669 Б)
MEM-COLD3, шаги 3-5. Кандидаты выбирались не по размеру, а по тому, КТО зовёт: если единственный вызывающий уже в банке, код едет к нему и трамплин не появляется вовсе. * pop_kdraw.c -> БАНК 4 (к pop_cdraw.c): клинок в руке (pop_sword_draw) и блит спрайта chtab_2 по id (pop_kid_img_blit). Оба звал ровно pop_cdraw, теперь вызовы прямые — контракт и условие корректности в _pop_kdraw.h. * pop_kboot.c -> БАНК 8: загрузка атласов Кида и страницы kid_data.bin (раз за игру). Дескриптор страницы — _pop_kid.h. * pop_guard_cold.c -> БАНК 8: страж идёт за Кидом + вход стража в комнату. Оба зовёт roomtest_cold.c из того же банка — снова без трамплина. * Из main в банк 8 уехали pop_boot (загрузка ресурсов, палитра, первый экран), pop_level_switch (смена уровня) и pop_shutdown. FIRST_LEVEL переехал в pop_tune.h — константа нужна обеим половинам цикла. _CODE 23005 -> 19861, куча 3525 -> 6669 Б. Банк 8 — 6.5 из 16 КБ. tests-host 6/6 (в наборы добавлены eng_pop_kboot и eng_pop_guard_cold).
This commit is contained in:
@@ -27,9 +27,14 @@ OBJS_geom := build/eng_pop_geom.rel
|
||||
# Char урон идёт через pop_take_hp, и кому именно он достанется (hitp_* или
|
||||
# guardhp_*) решает charid — то есть ровно та логика, которую тесты обязаны
|
||||
# проверять, а не имитировать.
|
||||
# eng_pop_kboot — загрузчик таблиц анимации: с 2026-08-12 он живёт отдельным
|
||||
# модулем (в продукте — банк 8), а сцене он нужен: sc_init зовёт
|
||||
# pop_kid_data_load, и стабы open/read отдают ему настоящий блоб.
|
||||
OBJS_phys := build/eng_pop_geom.rel build/eng_pop_kid.rel \
|
||||
build/eng_pop_kboot.rel \
|
||||
build/eng_pop_map.rel build/eng_pop_ctrl.rel \
|
||||
build/eng_pop_state.rel build/eng_pop_guard.rel \
|
||||
build/eng_pop_guard_cold.rel \
|
||||
build/stubs.rel build/scene.rel build/kid_blob.rel \
|
||||
build/bank_stub.rel
|
||||
|
||||
|
||||
Reference in New Issue
Block a user