(29.11.2020 03:28)Berserker Wrote: Quote:Hota.FontColor = цвет
o_Medfont_Fnt->DrawTextToPcx16(....);
baratorch,
А есть причина не передавать цвет текста напрямую аргументом?
Есть. Универсальный, работающий годами, код ХД, который не хочется менять.
Quote:И кто возвращает значение Hota.FontColor после вызова функции таким способом?
ХД возвращает.
Hota.FontColor = цвет
o_Medfont_Fnt->DrawTextToPcx16(....);[/quote]
Hota.FontColor = 0
и делает это в тот момент, в который не страшно эре.
Quote:Функцию подсчёта длина строки/линии точно нужно перехватывать? Ведь я произвожу предобработку текста, вырезая всё между { и }.
Я много в хд использую эту функцию подсчета длины. Я могу конечно сам ее поменять или, пихать в нее текст без цветовых кодов.
Просто мне кажется раз это фича эры, то фича должна быть доделана до конца.
В игре проверил, вроде проблем из-за этого нет, однако похоже есть место где и сами разрабы косячат с подсчетом длины (не используют свою же, упомянутую ф-ию) - это элемент диалога "многострочный текст с полосой прокрутки".
Вот пример одного текста с избыточной длиной кода расцветки эры(1), без расцветки(2) и с избыточной расцветкой простыми фигурными скобками(3):
Очевидно, служебные символы участвуют в рассчете переноса слов в строках, что неправильно.