Тоже была на первой кассете. Несмотря на всю простоту отображения - есть атмосфера Хеллоуина. Музыку еще нужно в тему .

По адресу 8C32 (и далее до 8D18) идет логика определения опоры под ногами. Оперирует по цветам с экрана, которые получает процедура, вызываемая в 8C32. Она забирает цвета 6 квадратов, три под ногами колдуньи и три по ее высоте, вроде перевернутой буквы Т, и немного корректирует красный цвет камней в вулкане, похожий на лаву.

Затем идут проверки (не все взятые квадраты используются), в результате которых остаются 2 цвета - под ногами (clr.down) и чуть выше (гусары, молчать) (clr.middown). Если под ногами не фон, а чуть выше - фон, то это опора.

Скрытый текст


clr=get_hag_model_colors();

// если на уровне низа комнаты
if hag.alt==0x17 {
// над водой или лавой - это гибель
if (clr.down==0x41)||(clr.down==0x42) { hag.died=1; }
}

// на полу склепа - это опора
if (hag.alt==0x17)&&(clr.down==0x44) { clr.middown=BACK_CLR; }

// пролетая мимо опоры
if clr.middown!=BACK_CLR {
// цвета камней в пещерах - опоры нет
if (clr.down==0x45)||(clr.down==0x42) { clr.down=BACK_CLR; }
}

// хитрый момент - если находиться возле колонн склепа - опоры нет, если колдунья не двигается,
// это позволяет двигаться мимо колонны, опираясь на горизонтальный транспортер,
// но вызовет падение, если на мгновение остановится на транспортере возле колонны
// даже если транспортер все еще под ногами - в цветах, с которыми работает движок, он неразличим
if (clr.middown!=BACK_CLR)&&(clr.down==0x44)&&(clr.up==0x44)&&(hag.hid_compass==0) { clr.down=BACK_CLR; }
[свернуть]


Если эти условия немного изменить, опора должна стать надежнее - очень неудобно определение опоры у левых краев площадок.