25
Ноя
2023

Внезапный индикатор

Попытался пройти игру и, конечно, список багов снова заколосился:

  • зависание при уроне – как оказалось, при переходе в новое окно не освобождались буферы фона для пуль, если пуля не закончила полет до смены окна
  • при уходе в дверь перехода на новый уровень применялись старые спрайты ухода
  • Шериф умудрился застрять в глыбе при выводе окна – на скрытых окнах глыбы не перемещаются, а при выводе окна Шериф как раз оказался впечатанным в такую глыбу. Редкий случай, однако. Мне повезло его отловить.

И хит дня – баг “зависание черт знает почему” при исчезании объекта с экрана. Вроде бы Шерифы давно уже успешно прибиваются глыбами, но тут вдруг такой случай вызвал зависание. Начал смотреть что не так… Оказалось, что при выводе запорчен фиктивный спрайт “пустота” размером 1х1, который я разместил с адреса 300. Ок, пытаюсь выяснить когда же он умудрился запортиться. Как оказалось он портится сразу при загрузке игрой своих файлов данных через EMT 36. Я и забыл, что EMT 36 использует область с адреса 300 не смотря на то, что ей указан другой адрес блока параметров. Как же это вообще работало раньше? А просто раньше файлы грузились без ошибки, а теперь вдруг при чтении через EMT 36 вылезла ошибка при загрузке файла HISUB.DAT, потому что его размер вылез за границу 40000. И EMT 36 гордо прописало байт 4 по адресу 301, в итоге ширина “спрайта” стала равна 2001 вместо 1.

Вот такой внезапный индикатор вылезания файла за границу 16К образовался.

 

Share

You may also like...

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *