diff --git a/game/scripts/gui/history.rpy b/game/scripts/gui/history.rpy index 6601f9a8..4421da72 100644 --- a/game/scripts/gui/history.rpy +++ b/game/scripts/gui/history.rpy @@ -23,40 +23,38 @@ screen history(): has vbox spacing 12 - default last_who = None + default last_who = "" - # Group consecutive entries by same character (convert to list to avoid multiple enumeration problems) - default groups = [(k, list(g)) for k, g in itertools.groupby(_history_list, lambda x: x.who or x.show_args.get("icon", None))] - - for k, g in groups: + for entry in _history_list: vbox: xfill True spacing 12 - add gui.format("interface/achievements/{}/spacer.webp") align (0.5, 1.0) - hbox: - spacing 12 + if not last_who == entry.who: + hbox: + spacing 12 - $ g = list(g) - if "icon" in g[0].show_args: - $ icon = g[0].show_args["icon"] - add Fixed(gui.format("interface/achievements/{}/iconbox.webp"), Transform("interface/icons/head/{}.webp".format(icon), xzoom=-1, size=(40, 40), align=(0.5, 0.5)), fit_first=True) - elif g[0].who: - label g[0].who: - style "history_name" - substitute False + if "icon" in entry.show_args: + $ icon = entry.show_args["icon"] + add Fixed(gui.format("interface/achievements/{}/iconbox.webp"), Transform("interface/icons/head/{}.webp".format(icon), xzoom=-1, size=(40, 40), align=(0.5, 0.5)), fit_first=True) - if "color" in g[0].who_args: - text_color g[0].who_args["color"] - - vbox: - spacing 6 - - for h in g: - $ what = renpy.filter_text_tags(h.what, allow=gui.history_allow_tags) - text what: + if entry.who: + text entry.who: + style "history_name" substitute False + if "color" in entry.who_args: + color entry.who_args["color"] + + vbox: + spacing 6 + $ what = renpy.filter_text_tags(entry.what, allow=gui.history_allow_tags) + + text what: + substitute False + + $ last_who = entry.who + if not _history_list: label _("The dialogue history is empty.") @@ -83,34 +81,17 @@ style history_window is empty: padding (0,6) style history_name: - xanchor 1.0 + align (0.1, 0.5) + size 22 style history_name_text: text_align 1.0 style history_text: text_align 0.0 - # layout ("subtitle" if gui.history_text_xalign else "tex") style history_label: xfill True style history_label_text: xalign 0.5 - -init 1 python: - # Substitute variables when history is added - def substitute_history_entry(h): - if h.what: - for p in history_match_tags: - h.what = p.sub('{\g<1>=[\g<2>]}', h.what) - - h.what = renpy.substitute(h.what) - - config.history_callbacks.append(substitute_history_entry) - - # Match variables in tags and make them substitutable - history_match_tags = [] - for t in gui.history_allow_tags: - p = re.compile('\{(' + t + ')=([a-z_]+)\}', re.IGNORECASE) - history_match_tags.append(p) diff --git a/game/scripts/utility/common_functions.rpy b/game/scripts/utility/common_functions.rpy index 71919026..53fb25a7 100644 --- a/game/scripts/utility/common_functions.rpy +++ b/game/scripts/utility/common_functions.rpy @@ -6,7 +6,6 @@ init -1 python: import random import pygame import colorsys - import itertools import fnmatch import posixpath import re