Костыль для Кагари

1Я сделал это! Я, наконец-то, сделал тексты игры более читабельными! Через жопу, правда, но ведь сделал же!Итак, с выходом обновления 0.1019 уже все, надеюсь, тексты в игре будут выглядеть так:

5Увы, это по-прежнему моноширинный шрифт. Боюсь, что без сильного вмешательства в код игры, либо без создания более совершенного костыля, добавить адекватную поддержку пропорциональных шрифтов не выйдет.

Для сравнения, сейчас тексты игры выглядят так:

6

  • DENDentar

    В нашем полку прибыло) Тоже юзал такое в LB
    http://free-pic.org/big/2014/09d191164b2532255196896718a0e2ce.jpg
    сейчас правда уже всё норм.

    Насколько прозрачно организовано декодирование нестандартной кодировки, нужно ставить модифицированный шрифт или декодер встроен в exe?
    Какой шрифт был модифицирован? Смахивает на Tahoma.
    Какие символы были использованы под кириллицу?

    • За основу я взял шрифт OsakaMono. Технических подробностей рассказать не могу, ибо сам ими не располагаю. Могу сказать лишь то, что опытным путём я установил, что всю кириллицу игра выводит в полноразмерном виде. Потому что сначала я пытался саму кириллицу подменить на полуразмерную, но никакой разницы это не принесло. До этого же при попытке подключить неяпонский шрифт (которые игра всё равно по умолчанию не поддерживает) тексты становилиль лишь ещё более нечитабельными.

      Что касается итогового шрифта, то я заменил в нём символы с U+FF66 до U+FF9F (полуразмерная катакана),а также добавил символы U+FFA1 до U+FFAA (полуразмерный Хангыль).

      Да и с LB! попроще всё-таки. rlBabel известен очень давно, надо лишь портировать его под нужную версию RealLive. Какой-никакой, а вектор, указывающий путь в нужном направлении.

      • DENDentar

        Катакану и пару символов из латиницы, вроде, Vendor в Planetarian ME юзал. Я же выкинул мягкий и твёрдый знаки и впихал всю кириллицу в катакатну)

        Технических подробности… Насколько я знаю, глубоко не копал, RealLive да и Siglus получают и кешируют битмапы (изображения) символов через WinAPI функцию GetGlyphOutline, а потом рисуют их как им угодно. Т.е. нужно искать и модифицировать функцию движка, которая выводит символы. Реальное, но неполное решение проблемы, без rlBabel и левых шрифтов я видел только один раз и для очень древней версии движка (опять это был Planetarian), но эт w8m, вроде, постарался.

        rlBabel — это не лекарство от всех бед, он сделан для Канона, работает ток с тем, что там было: текстовыми окнами и выборами (там ток select поддерживается). Про то как там выборы сделаны я вообще молчу, эт отдельный пипец.
        Функции для текстовых объектов (а они и юзаются в «битвах» и т.д.) и select_s были написаны с нуля и в основном располагаются в игровых скриптах (там удобнее с текстом работать), хотя кое что хочу перенести в dll так как на c++ эти операции должны быть быстрее.
        Из всей хрени, что есть в rlBabel, реально надо только пару функций, всё остальное шелуха и либо убрана (поддержка нестандартных кодировок, win1251 например), либо переделывается (псевдоподдержка юникода).

        P.S. Ты мне ссылку на рабочие проги для Siglus можешь дать, а то делать с нуля то, что уже есть жутко лениво (хотя Scene.pck я уже разобрал, однако расшифровать отдельные скрипты пока не смог). Хочу глянуть, что там да как.

        • Ixrec, конечно, безо всяких вопросов выдал мне всё, что у них было по Рирайту. Но я считаю будет неправильным, если я выложу ссылку на их архив в открытый доступ. Так что черканите мне ВК, если вам не сложно.