LunaHook-mirror/LunaHook/resource/renpy_hook_font.py

32 lines
1.2 KiB
Python
Raw Normal View History

2024-03-13 11:14:01 +08:00
def callLunaHostFont():
try:
import ctypes
try:
internal_renpy_get_font=ctypes.CDLL('LunaHook64').internal_renpy_get_font
except:
internal_renpy_get_font=ctypes.CDLL('LunaHook32').internal_renpy_get_font
internal_renpy_get_font.restype=ctypes.c_wchar_p
return internal_renpy_get_font()
except:
return None
2024-03-08 23:54:27 +08:00
try:
import os
import renpy
def hook_renpy_text_font_get_font_init(original):
def new_init(*args, **kwargs):
#ctypes.windll.user32.MessageBoxW(None, str(kwargs), str(args), 0)
2024-03-13 11:14:01 +08:00
font=callLunaHostFont()
if font and font!='' and os.path.exists(font):
font=font.replace('\\','/')#不知道为什么,用\会报错但之前写死C:\Windows\Fonts\msyh.ttc时就没事
2024-03-08 23:54:27 +08:00
args=(font,)+args[1:]
if 'fn' in kwargs:
kwargs['fn']=font
return original(*args, **kwargs)
return new_init
if "original_renpy_text_font_get_font" not in globals():
original_renpy_text_font_get_font = renpy.text.font.get_font
renpy.text.font.get_font = hook_renpy_text_font_get_font_init(original_renpy_text_font_get_font)
except:
pass