Version 3.2.1: whole bank copies of voice lines, unique names, docs figures checked by tools/check_docs.py
This commit is contained in:
@@ -27,6 +27,7 @@ class Lines:
|
||||
objects: dict = field(default_factory=dict) # line id -> sorted Sound object ids
|
||||
obj_keys: dict = field(default_factory=dict) # Sound object id -> {lang: sound key}
|
||||
names: dict = field(default_factory=dict) # line id -> name (catalog.line_names)
|
||||
unnamed: set = field(default_factory=set) # line ids no named event plays (named after a recording)
|
||||
copy_of: dict = field(default_factory=dict) # WAD key -> key of the same media stored in another entry
|
||||
issues: list = field(default_factory=list) # (kind, detail): broken one-to-one relations
|
||||
stats: dict = field(default_factory=dict)
|
||||
@@ -161,10 +162,10 @@ def build(game, sc, walk):
|
||||
for k, primary in copy_of.items(): # a second place of the same recording: the same line
|
||||
if primary in lines.line_of:
|
||||
lines.line_of[k] = lines.line_of[primary]
|
||||
all_keys = set().union(*lines._keys.values()) if lines._keys else set()
|
||||
all_keys |= set(copy_of)
|
||||
recordings = set().union(*lines._keys.values()) if lines._keys else set()
|
||||
all_keys = recordings | set(copy_of) # + the second places of recordings stored twice
|
||||
full = sum(1 for per in lines.members.values() if len(per) == len(langs))
|
||||
lines.stats = {"languages": langs, "wad_wems": wems, "recordings": len(all_keys),
|
||||
lines.stats = {"languages": langs, "wad_wems": wems, "recordings": len(recordings),
|
||||
"in_a_line": len(lines.line_of), "lines": len(lines.members), "lines_in_every_language": full,
|
||||
"copies": sorted(copy_of),
|
||||
"lines_missing_a_language": {lid: sorted(set(langs) - set(per))
|
||||
@@ -215,8 +216,9 @@ def line_names(sc, lines, fallback):
|
||||
out[lid] = name if i == 0 else "%s#%d" % (name, i + 1)
|
||||
else:
|
||||
out[lid] = name if len(lids) == 1 else "%s_%d" % (name, i + 1)
|
||||
for lid, per in lines.members.items():
|
||||
if lid not in out:
|
||||
k = per.get("INT") or per[next(L for L in lines.langs if L in per)]
|
||||
out[lid] = fallback(k)
|
||||
lines.unnamed = set(lines.members) - set(out)
|
||||
for lid in lines.unnamed:
|
||||
per = lines.members[lid]
|
||||
k = per.get("INT") or per[next(L for L in lines.langs if L in per)]
|
||||
out[lid] = fallback(k)
|
||||
return out
|
||||
|
||||
Reference in New Issue
Block a user