Кирилл Резанов, Я попробовал отлаживать, и после первого цикла вообще ничего не меняется, изменения начинаются со второй итерации. Дальше мучить не стал, пусть другие вычислят непосредственную причину.
Евгений Шатунов, Константный буфер — const char[10];
Поскольку подобные типы хрен правильно запишешь в Си, я его записал иносказательно — const decltype(a)&.
Даниил, Сегменты — устаревшая практика, предназначенная для совместимости с 16-битным кодом. И я в ответе описал логику, которая стояла за 16-битным 8086 — а не 32-битным 386. В современном 32-битном коде не помню уже, когда кто-то забирался в эти сегменты. Но, насколько мне известно, эти самые сегменты оказались удобны для виртуализации.
do {
ignore = (char) System.in.read();
} while (ignore != '\n');
Это ручной пропуск байтов до символа ввода. Ведь если в ИНТЕРАКТИВНОЙ консоли что-то есть — значит есть и ввод. Для ПЕРЕНАПРАВЛЕНИЯ ввода может быть и не так.
Afafks123132132165,
UPD.
1. Там не текстурирование, а алгоритмическое наложение кирпичного узора.
2. Дёргающегося бехолдера можно сделать и в реальном времени, с ним всё просто. Отпечатываем отрендеренный фон в фоновый буфер. Налаживается подобие Z-буфера на те же 320 столбцов. И рисуем только часть столбцов спрайта — которые у фона дальше, чем наш бехолдер.
Afafks123132132165, Да. Только, повторяю, не по пикселям, а по столбцам — то есть лучей всего 320.
К тому же это RPG и не работала в реальном времени. Первые, кто смогли сделать подобие реального времени,— именно что id с Wolfenstein.
Евгений Шатунов, Char4 не универсален, так и надо. И такая конструкция падает даже на строчках по 3 или 5 символов, так надо. И даже классно, что перестали хранить оконечный ноль.
Си++17.
https://github.com/mdimura/SRHDDumpReader/blob/mas...
Я, правда, внёс в него кое-какие изменения.