эээ.. я бы не сказал что ТАКОЙ горизонт намного лучше
Линии отображаются не "где попало", а пытаются заполнить всю доступную область, изобразив штриховку. По-уму надо при углах больше угла диагонали HUD переходить от расчета по вертикали к расчету по горизонтали, а символ заменять хотя бы на точку (0x24) или вертикальную линию (0xс1) - но повторюсь, для меня это не актуально, у моих железок предельный угол крена 45 градусов. PRs are welcome, сделает кто - включу, а мне и без этого есть чем заняться
PS. При больших углах питча горизонт тоже ведет себя не особо хорошо, но опять же - PRs are welcome.
PPS. Самый простой способ исправления подобных "багов" - объявить их фичей, включив в описание что углы крена больше 60 градусов не поддерживаются.
PPPS. Все отличие от кода в R800 это 1) замена некоторых int на байт, 2) вынос смещения шкалы из float-выражений. В рабочем диапазоне поведение горизонта не изменилось - вот и ладушки.