maybe fix text wrapping in hints

This commit is contained in:
duncathan 2022-01-11 21:54:58 -06:00
parent 56d4554789
commit 4c2eedb155

View file

@ -3,7 +3,7 @@ from typing import Callable, Optional
from lupa import LuaRuntime from lupa import LuaRuntime
import logging import logging
import shutil import shutil
import re import textwrap
import sys import sys
import pre_edited_cs import pre_edited_cs
@ -116,28 +116,11 @@ def create_hint_script(text: str, facepic: bool, ending: str) -> str:
""" """
hard_limit = 35 hard_limit = 35
msgbox_limit = 26 if facepic else hard_limit msgbox_limit = 26 if facepic else hard_limit
pattern = r' [^ ]*$'
line1, line2, line3 = "", "", ""
split = 0
line1 = text[split:split+msgbox_limit]
match = next(re.finditer(pattern, line1), None)
if match is not None and len(text) > msgbox_limit:
line1 = line1[:match.start(0)]
split += match.start(0)+1
if split % hard_limit != 0:
line2 = "\r\n"
line2 += text[split:split+msgbox_limit]
match = next(re.finditer(pattern, line2), None)
if match is not None and len(text) > msgbox_limit*2:
line2 = line2[:match.start(0)]
if split % hard_limit != 0:
split -= 2
split += match.start(0)+1
if split % hard_limit != 0:
line3 = "\r\n"
line3 += text[split:split+msgbox_limit]
return f"<PRI<MSG<TUR{line1}{line2}{line3}<NOD{ending}" lines = textwrap.wrap(text, width=msgbox_limit, max_lines=3)
text = ""
for i, l in enumerate(lines):
text += l
if len(l) != hard_limit and i < len(lines)-1:
text += "\r\n"
return f"<PRI<MSG<TUR{text}<NOD{ending}"