Game line names across languages; RSubtitle; editor in three columns

This commit is contained in:
2026-10-10 02:14:06 +02:00
parent f29af40b37
commit ea3e44000a
40 changed files with 54018 additions and 53559 deletions

View File

@@ -45,6 +45,11 @@
sounds + the loaded language, names unique per language, subtitles of in-memory lines link to them (links sounds + the loaded language, names unique per language, subtitles of in-memory lines link to them (links
92 % -> 99 %). Editor: one Language setting at the top (always starts at the game's language; languages 92 % -> 99 %). Editor: one Language setting at the top (always starts at the game's language; languages
without voices use INT voices), text tabs follow it. without voices use INT voices), text tabs follow it.
- 2026-10-10 (user asked "is it really all in order?"): variation positions differ per language (75 % of lines)
-> speech sounds named after the game's line (speech event), curated labels mapped through it (characters.csv
gets a language column), verified 955/955 against dialogue speaker fields; RSubtitle + RSubtitleLookup
(key = FNV-1 of the line name without Speech_) added; editor redesigned: Listen | Replace | Subtitle columns,
editor spans the full window width (no scrolling at 1000x700 and up).
- NEXT (needs a person): play a mission with a replaced footstep/foley sound and an edited subtitle (REPORT.md). - NEXT (needs a person): play a mission with a replaced footstep/foley sound and an edited subtitle (REPORT.md).
- OPEN: channel order for >2 channels unverified; speech and in-memory sounds *heard* in-game (need gameplay; - OPEN: channel order for >2 channels unverified; speech and in-memory sounds *heard* in-game (need gameplay;
posted keys do not drive the menu). posted keys do not drive the menu).

View File

@@ -13,15 +13,21 @@ editor Unheard City (mission 2).
- **Catalog check**: `ackit verify --catalog` compares the catalog with a fresh scan of the game (missing, extra, - **Catalog check**: `ackit verify --catalog` compares the catalog with a fresh scan of the game (missing, extra,
duplicate, size/checksum, category, character, language, bank copies, subtitle copies/texts): **catalog OK** duplicate, size/checksum, category, character, language, bank copies, subtitle copies/texts): **catalog OK**
on the full game. It found and fixed 2 duplicate names per language (variation shown as `NAME#i`). on the full game. It found and fixed 2 duplicate names per language (variation shown as `NAME#i`).
- **Subtitles**: found in `RDialogueEvent` objects inside the packages (9,016 speech lines x 11 languages, - **Subtitles**: found in `RDialogueEvent` objects inside the packages (9,016 speech lines x 11 languages) and
168,122 stored copies), parsed, cataloged (`SUB_<LANG>.csv`) and linked to their speech sound through the in 41 scripted `RSubtitle` objects (radio, encryption cards, Riddler; linked through `RSubtitleLookup`),
soundbanks (~99 % of the strings, e.g. INT 9,265 / 9,379; the rest are unused/placeholder lines). Edited in parsed, cataloged (`SUB_<LANG>.csv`) and linked to their speech sound through the soundbanks (~99 % of the
place in every copy. strings). Edited in place in every copy.
- **Names true to the game**: the position of a variation inside a WAD entry differs between languages (75 % of
the lines), so speech sounds are named after the game's line (its speech event) - the same in every language
and the same as the subtitle. The curated ITA speaker lists are mapped through these names; checked against
the speaker field of the game's own dialogue objects: 955 / 955 agree. In-memory speech is per language too
(one bank copy per language): the sound list shows only the selected language.
- **Menu text**: the localization files (`BmGame\Localization\<LANG>\*.int`, ~7,000 strings per language), - **Menu text**: the localization files (`BmGame\Localization\<LANG>\*.int`, ~7,000 strings per language),
edited value by value; everything else in the files stays byte-identical. edited value by value; everything else in the files stays byte-identical.
- **Editor**: one *Language* setting (default: the game's language) for voices, subtitles and menu text - **Editor**: one *Language* setting (default: the game's language) for voices, subtitles and menu text
(languages without voices use the INT ones, like the game); tabs *Sounds* / *Subtitles* / *Menu text*. The sound editor shows and edits the selected speech (languages without voices use the INT ones, like the game); tabs *Sounds* / *Subtitles* / *Menu text*. The sound
line's subtitle side by side; the subtitle list links back to the sound. Search, filters (character, editor shows Listen / Replace / Subtitle side by side (resizable columns, no scrolling at usual window sizes);
the subtitle list links back to the sound. Search, filters (character,
category, file, modified), room counter, apply/revert/revert all, find & replace on the filtered rows, mod category, file, modified), room counter, apply/revert/revert all, find & replace on the filtered rows, mod
export/import with texts, changed-outside banner for sounds and texts. export/import with texts, changed-outside banner for sounds and texts.
- **Safety**: every changed file (WAD, bank, package, localization file) is rebuilt from a verified original copy - **Safety**: every changed file (WAD, bank, package, localization file) is rebuilt from a verified original copy
@@ -50,6 +56,11 @@ editor Unheard City (mission 2).
not be verified automatically in the game (decisions 4c). not be verified automatically in the game (decisions 4c).
- **Unlinked subtitles**: ~1 % of the subtitle strings have no event path to a sound (unused or placeholder - **Unlinked subtitles**: ~1 % of the subtitle strings have no event path to a sound (unused or placeholder
lines); they are listed and editable but not linked. lines); they are listed and editable but not linked.
- **Subtitle coverage is uneven in the game itself**: no subtitles exist for efforts/grunts, few for combat barks
(11 %) and cutscene lines (10 %; most cutscene lines are not played through speech events and have no dialogue
object). No other subtitle storage was found in the packages (all classes with subtitle data checked).
- ~200 speech sounds per language are played by no event and keep a position name (`NAME_i`); their speaker
labels apply to ITA only.
- **Unnamed sounds**: ~9,000 BANK sounds have no event name and are named `<Bank>_<n>`. - **Unnamed sounds**: ~9,000 BANK sounds have no event name and are named `<Bank>_<n>`.
- Two copies of media `1C898731` differ; its checksum is left empty. Channel order for 4-6 channel sounds is - Two copies of media `1C898731` differ; its checksum is left empty. Channel order for 4-6 channel sounds is
unverified. M4A/AAC/WMA input needs an ffmpeg on the system. unverified. M4A/AAC/WMA input needs an ffmpeg on the system.

View File

@@ -84,16 +84,29 @@ def hash_names():
return _names return _names
def load_characters(path=None): def load_characters(path=None, lang=None):
"""{sound name (lower): 'Speaker' or 'A; B'} from data/catalog/characters.csv.""" """{sound name (lower): 'Speaker' or 'A; B'} from data/catalog/characters.csv: the rows valid in every
language (keyed by the game's line names) plus the rows of `lang` (lines without a line name, labelled
by their position in that language's WAD)."""
path = path or os.path.join(catalog_dir(), "characters.csv") path = path or os.path.join(catalog_dir(), "characters.csv")
out = {} out = {}
if os.path.exists(path): if os.path.exists(path):
for row in csv.DictReader(open(path, encoding="utf-8")): for row in csv.DictReader(open(path, encoding="utf-8")):
if not row.get("language") or row["language"] == lang:
out[row["name"].lower()] = row["character"] out[row["name"].lower()] = row["character"]
return out return out
def character_of(s, characters):
"""Verified speaker of a sound from a load_characters() map: by its names, and for the k-th take of a
line shown as NAME#k (an event playing several WEMs of one language) by the line name NAME."""
for n in s.names() + (s.name.split("#")[0],):
c = characters.get(n.lower())
if c:
return c
return ""
def read_csv(path): def read_csv(path):
out = [] out = []
for r in csv.DictReader(open(path, encoding="utf-8", newline="")): for r in csv.DictReader(open(path, encoding="utf-8", newline="")):
@@ -160,7 +173,7 @@ def _walk_entry(f, offset, size):
def scan_archive(archive, wad_path, characters=None, progress=None): def scan_archive(archive, wad_path, characters=None, progress=None):
"""Header scan of one WAD -> [Sound].""" """Header scan of one WAD -> [Sound]."""
names = hash_names() names = hash_names()
characters = characters if characters is not None else load_characters() characters = characters if characters is not None else load_characters(lang=archive)
wad = Wad(wad_path) wad = Wad(wad_path)
out = [] out = []
with open(wad_path, "rb") as f: with open(wad_path, "rb") as f:
@@ -197,7 +210,7 @@ def scan_archive(archive, wad_path, characters=None, progress=None):
s.name, s.aliases = s.aliases[0], (s.name,) s.name, s.aliases = s.aliases[0], (s.name,)
for s in out: for s in out:
s.characters_inferred = "; ".join(classify.infer_characters(s.name)) s.characters_inferred = "; ".join(classify.infer_characters(s.name))
s.character = next((characters[a.lower()] for a in s.names() if a.lower() in characters), "") s.character = character_of(s, characters)
return out return out
@@ -223,7 +236,7 @@ def bank_sounds(sc, characters=None):
sha1=next(iter(e["sha1"])) if len(e["sha1"]) == 1 else "") sha1=next(iter(e["sha1"])) if len(e["sha1"]) == 1 else "")
s.group, s.category = classify.classify(name, bank=bank) s.group, s.category = classify.classify(name, bank=bank)
s.characters_inferred = "; ".join(classify.infer_characters(_CAMEL.sub("_", name + "_" + bank))) s.characters_inferred = "; ".join(classify.infer_characters(_CAMEL.sub("_", name + "_" + bank)))
s.character = next((characters[a.lower()] for a in s.names() if a.lower() in characters), "") s.character = character_of(s, characters)
out.append(s) out.append(s)
out.sort(key=lambda s: (s.bank.lower(), s.name.lower())) out.sort(key=lambda s: (s.bank.lower(), s.name.lower()))
return out return out
@@ -264,6 +277,57 @@ def scan_banks(game, progress=None, characters=None, visit=None):
return bank_sounds(sc, characters), locs, sc return bank_sounds(sc, characters), locs, sc
def speech_line_names(game, sc):
"""{WAD sound key: the game's name of that line} for every speech sound some event plays. The name is the
speech event (e.g. Speech_CH_ZERO_CH0_fight_intro_01): the same line has the same name in every language,
while the position of a variation inside a WAD entry differs between languages (WEMs are stored in
media-ID order and every language has its own media IDs). If several events reach a sound, the most
specific one (fewest sounds in that language) names it."""
ev = {n: ms for n, ms in banks.event_media(sc).items() if n.lower().startswith("speech_")}
owners = media_owners(game, sc, {m for ms in ev.values() for m in ms})
best = {}
for n, ms in ev.items():
keys = collections.defaultdict(set)
for m in ms:
if m in owners:
k = owners[m]
keys[k.split(":")[0]].add(k)
for lang, ks in keys.items():
for k in ks:
rank = (len(ks), n.lower())
if k not in best or rank < best[k][0]:
best[k] = (rank, n)
return {k: n for k, (_, n) in best.items()}
def apply_line_names(sounds, line_names):
"""Rename WAD speech sounds after the game's line names (see speech_line_names). The position-based name
stays available as alias NAME#i (single-WEM entries keep their entry name as alias)."""
used = collections.Counter()
for s in sounds:
ev = line_names.get(s.key)
if not ev:
continue
used[ev.lower()] += 1
name = ev if used[ev.lower()] == 1 else "%s#%d" % (ev, used[ev.lower()])
if ":" in s.target: # variation: keep NAME#i (position in this language's WAD)
pos = [a for a in s.names() if "#" in a]
s.aliases = tuple(pos)
else: # single WEM: the entry name stays an alias
s.aliases = (s.name,) + tuple(a for a in s.aliases if a != s.name)
s.name = name
taken = collections.Counter(s.name.lower() for s in sounds)
for s in sounds: # a positional name equal to another sound's line name -> NAME#i
if taken[s.name.lower()] > 1 and s.key not in line_names and ":" in s.target:
pos = [a for a in s.aliases if "#" in a]
if pos:
s.aliases, s.name = (s.name,), pos[0]
for s in sounds:
s.group, s.category = classify.classify(s.name)
s.characters_inferred = "; ".join(classify.infer_characters(s.name))
return sounds
def subtitle_links(game, sc, speech_names): def subtitle_links(game, sc, speech_names):
"""{speech event name: {language: sound key}}: event -> actions -> containers -> sounds -> the """{speech event name: {language: sound key}}: event -> actions -> containers -> sounds -> the
per-language media of the line (exact, no name matching). The media is a streamed WAD sound, or an per-language media of the line (exact, no name matching). The media is a streamed WAD sound, or an
@@ -288,12 +352,17 @@ def subtitle_links(game, sc, speech_names):
def scan_text(game, progress=None, characters=None): def scan_text(game, progress=None, characters=None):
"""One pass over every package: (bank sounds, bank locations, Scan, {lang: [SubLine]}, [SubLoc], issues).""" """One pass over every package: (bank sounds, bank locations, Scan, {lang: [SubLine]}, [SubLoc], issues,
{WAD sound key: game line name})."""
col = subtitles.Collector() col = subtitles.Collector()
snd, locs, sc = scan_banks(game, progress, characters, visit=col) snd, locs, sc = scan_banks(game, progress, characters, visit=col)
line_names = speech_line_names(game, sc)
names = {n for n in sc.names if n.lower().startswith("speech_")} | set(line_names.values())
names |= {s.name for s in snd if s.name.lower().startswith("speech_")}
col.resolve(names)
links = subtitle_links(game, sc, list(col.dialogues)) links = subtitle_links(game, sc, list(col.dialogues))
texts, sublocs = subtitles.rows(col, links) texts, sublocs = subtitles.rows(col, links)
return snd, locs, sc, texts, sublocs, col.issues return snd, locs, sc, texts, sublocs, col.issues, line_names
def load_subtitles(game, lang, progress=None): def load_subtitles(game, lang, progress=None):
@@ -307,7 +376,7 @@ def load_subtitles(game, lang, progress=None):
return subtitles.read_texts(t, lang), subtitles.read_locations(loc, lang) return subtitles.read_texts(t, lang), subtitles.read_locations(loc, lang)
cache = os.path.join(user_dir("cache"), "scan_SUB_%s_v%d" % (fp, SCAN_VERSION)) cache = os.path.join(user_dir("cache"), "scan_SUB_%s_v%d" % (fp, SCAN_VERSION))
if not os.path.exists(cache + ".locations.csv.gz"): if not os.path.exists(cache + ".locations.csv.gz"):
_, _, _, texts, sublocs, _ = scan_text(game, progress) _, _, _, texts, sublocs, _, _ = scan_text(game, progress)
for lg, rows in texts.items(): for lg, rows in texts.items():
subtitles.write_texts(cache + "_%s.csv" % lg, rows) subtitles.write_texts(cache + "_%s.csv" % lg, rows)
subtitles.write_locations(cache + ".locations.csv.gz", sublocs) subtitles.write_locations(cache + ".locations.csv.gz", sublocs)

View File

@@ -22,6 +22,8 @@ from collections import defaultdict, namedtuple
from .upk import Package from .upk import Package
CLASS = "RDialogueEvent" CLASS = "RDialogueEvent"
SUBTITLE_CLASS, LOOKUP_CLASS = "RSubtitle", "RSubtitleLookup" # scripted radio/encryption subtitles
UNRESOLVED = "#lookup:%08X" # speech of an RSubtitle until its lookup key is matched to a line name
T_STRUCT, T_STRING, T_OBJECT = 0x09, 0x0D, 0x10 T_STRUCT, T_STRING, T_OBJECT = 0x09, 0x0D, 0x10
# one subtitle string inside a package: pos = absolute uncompressed offset of the FString length field, # one subtitle string inside a package: pos = absolute uncompressed offset of the FString length field,
@@ -109,9 +111,14 @@ def _parse_lines(b, o, end, base, lang):
def parse_dialogue(b, base, names_idx): def parse_dialogue(b, base, names_idx):
"""Fields of one RDialogueEvent export (bytes `b` starting at uncompressed offset `base`).""" """Fields of one dialogue/subtitle export (bytes `b` starting at uncompressed offset `base`).
ls, sub = names_idx names_idx: (name indices of the per-language array: LocalizedSubtitles or ArraySubtitles, of Subtitles)."""
arrays, sub = names_idx
i = -1
for ls in arrays:
i = b.find(struct.pack("<II", ls, 0)) i = b.find(struct.pack("<II", ls, 0))
if i >= 4 and struct.unpack_from("<H", b, i - 4)[0] == T_STRUCT:
break
if i < 4 or struct.unpack_from("<H", b, i - 4)[0] != T_STRUCT: if i < 4 or struct.unpack_from("<H", b, i - 4)[0] != T_STRUCT:
return [] return []
size = struct.unpack_from("<i", b, i + 8)[0] size = struct.unpack_from("<i", b, i + 8)[0]
@@ -168,6 +175,24 @@ class Collector:
except (SubtitleError, struct.error, ValueError, IndexError) as e: except (SubtitleError, struct.error, ValueError, IndexError) as e:
self.issues.append(("subtitles", "%s: %s" % (rel, e))) self.issues.append(("subtitles", "%s: %s" % (rel, e)))
PREFIXES = ("", "RADIO_SCAN_", "RADIO_", "TV_", "CH_ZERO_", "GCPD_", "CHAR_", "SEQUENCE_")
def resolve(self, line_names):
"""Give RSubtitle objects their speech line name: the name whose lookup_key equals the object's key,
from `line_names` or built from the object's own name (Speech_ + prefix + name; exact hash match)."""
by_key = {lookup_key(n): n for n in line_names}
for sp in [s for s in self.dialogues if s.startswith("#lookup:")]:
key = int(sp.split(":")[1], 16)
name = by_key.get(key)
if not name:
exp = self.dialogues[sp][0][1].export
name = next(("Speech_" + p + exp for p in self.PREFIXES if lookup_key("Speech_" + p + exp) == key), None)
copies = self.dialogues.pop(sp)
if not name:
self.issues.append(("subtitles", "no speech line for subtitle %s" % copies[0][1].export))
name = copies[0][1].export
self.dialogues[name].extend((rel, d._replace(speech=name)) for rel, d in copies)
# --- catalog files: SUB_<LANG>.csv (texts) + SUB_locations.csv.gz (every copy) ------------------ # --- catalog files: SUB_<LANG>.csv (texts) + SUB_locations.csv.gz (every copy) ------------------
LOCATIONS = "SUB_locations.csv.gz" LOCATIONS = "SUB_locations.csv.gz"
@@ -236,20 +261,56 @@ def read_locations(path, lang=None):
return dict(out) return dict(out)
def lookup_key(line_name):
"""Key of a speech line in the RSubtitleLookup table: FNV-1 of its name without 'Speech_'."""
from .bnk import fnv1
return fnv1(line_name[7:] if line_name.lower().startswith("speech_") else line_name)
def _lookup_table(b):
"""RSubtitleLookup export data -> {export index: key}: array of {int key @0, object @4}."""
count = struct.unpack_from("<I", b, 24)[0]
out, o = {}, 28
for _ in range(count):
if b[o:o + 4] != b"\x02\x00\x00\x00" or b[o + 8:o + 12] != b"\x10\x00\x04\x00":
raise SubtitleError("unexpected subtitle lookup layout")
key, ref = struct.unpack_from("<Ii", b, o + 4)[0], struct.unpack_from("<i", b, o + 12)[0]
out[ref] = key
o += 18
return out
def scan_package(pkg, data=None, start=None, tables=None): def scan_package(pkg, data=None, start=None, tables=None):
"""[Dialogue] of one package (empty if it has none).""" """[Dialogue] of one package (empty if it has none): RDialogueEvent objects (speech = the referenced
speech event) and RSubtitle objects (speech = UNRESOLVED % lookup key, see Collector.resolve)."""
if data is None: if data is None:
start, data = pkg.read_all() start, data = pkg.read_all()
names, imports, exports = tables or pkg.tables(data, start) names, imports, exports = tables or pkg.tables(data, start)
cls = {-(i + 1) for i, (c, o, _) in enumerate(imports) if c == "Class" and o == CLASS} by_class = {}
if not cls or "LocalizedSubtitles" not in names or "Subtitles" not in names: for i, (c, o, _) in enumerate(imports):
if c == "Class" and o in (CLASS, SUBTITLE_CLASS, LOOKUP_CLASS):
by_class[-(i + 1)] = o
arrays = [names.index(a) for a in ("LocalizedSubtitles", "ArraySubtitles") if a in names]
if not by_class or not arrays or "Subtitles" not in names:
return [] return []
idx = (names.index("LocalizedSubtitles"), names.index("Subtitles")) idx = (arrays, names.index("Subtitles"))
keys = {}
for e in exports:
if by_class.get(e.cls) == LOOKUP_CLASS and e.size > 0:
keys.update(_lookup_table(data[e.offset - start:e.offset - start + e.size]))
out = [] out = []
for e in exports: for e in exports:
if e.cls in cls and e.size > 0: kind = by_class.get(e.cls)
if kind in (CLASS, SUBTITLE_CLASS) and e.size > 0:
b = data[e.offset - start:e.offset - start + e.size] b = data[e.offset - start:e.offset - start + e.size]
fields = parse_dialogue(b, e.offset, idx) fields = parse_dialogue(b, e.offset, idx)
if fields: if not fields:
out.append(Dialogue(_speech_ref(b, exports, imports), e.name, fields)) continue
if kind == CLASS:
speech = _speech_ref(b, exports, imports)
elif e.index in keys:
speech = UNRESOLVED % keys[e.index]
else:
speech = e.name # not in a lookup table: keep the object's name
out.append(Dialogue(speech, e.name, fields))
return out return out

View File

@@ -17,9 +17,10 @@ import os
import random import random
from .. import banks, classify, subtitles from .. import banks, classify, subtitles
from ..catalog import (Catalog, available_archives, bank_sounds, hash_names, head_owners, is_shipped, from ..catalog import (Catalog, available_archives, bank_sounds, character_of, hash_names, head_owners, is_shipped,
load_banks, load_characters, read_csv, scan_archive) load_banks, load_characters, read_csv, scan_archive)
from ..inject import read_target from ..inject import read_target
from ..paths import catalog_dir
from ..wad import Wad from ..wad import Wad
FOLDER_LANG = {"ENGLISH(US)": "INT", "ITALIAN": "ITA", "FRENCH(FRANCE)": "FRA", "GERMAN": "DEU", FOLDER_LANG = {"ENGLISH(US)": "INT", "ITALIAN": "ITA", "FRENCH(FRANCE)": "FRA", "GERMAN": "DEU",
@@ -67,7 +68,7 @@ def _check_rows(rep, archive, rows, characters):
g, c = _expected_category(s) g, c = _expected_category(s)
if (s.group, s.category) != (g, c): if (s.group, s.category) != (g, c):
rep.add(archive, "category", s.key, "%s/%s, rules give %s/%s" % (s.group, s.category, g, c)) rep.add(archive, "category", s.key, "%s/%s, rules give %s/%s" % (s.group, s.category, g, c))
want = next((characters[a.lower()] for a in s.names() if a.lower() in characters), "") want = character_of(s, characters)
if s.character != want: if s.character != want:
rep.add(archive, "character", s.key, "%r, curated list says %r" % (s.character, want)) rep.add(archive, "character", s.key, "%r, curated list says %r" % (s.character, want))
@@ -80,6 +81,11 @@ def check_wad(rep, game, archive, rows, characters):
rep.add(archive, "language", archive, "WAD in folder %s" % folder) rep.add(archive, "language", archive, "WAD in folder %s" % folder)
_check_rows(rep, archive, rows, characters) _check_rows(rep, archive, rows, characters)
fresh = {s.target: s for s in scan_archive(archive, path, characters=characters)} fresh = {s.target: s for s in scan_archive(archive, path, characters=characters)}
if is_shipped(game, archive): # shipped names are the game's line names (built from the banks)
byk = {s.target: s for s in rows}
for t, s in fresh.items():
if t in byk:
s.name, s.aliases = byk[t].name, byk[t].aliases
cat = {s.target: s for s in rows} cat = {s.target: s for s in rows}
for t in sorted(set(fresh) - set(cat)): for t in sorted(set(fresh) - set(cat)):
rep.add(archive, "missing", "%s:%s" % (archive, t), fresh[t].name) rep.add(archive, "missing", "%s:%s" % (archive, t), fresh[t].name)
@@ -105,6 +111,12 @@ def check_banks(rep, game, rows, locations, characters, quick=False, sample=40,
files = [f for f in files if f.startswith("SFX/")] + sorted(rnd.sample(pk, min(sample, len(pk)))) files = [f for f in files if f.startswith("SFX/")] + sorted(rnd.sample(pk, min(sample, len(pk))))
col = subtitles.Collector() col = subtitles.Collector()
sc = banks.scan(game.cooked, progress, files=files, visit=col) sc = banks.scan(game.cooked, progress, files=files, visit=col)
known = {n.split("#")[0] for s in rows for n in s.names()} # BANK names
for a in game.languages: # + speech line names of the catalogs
p = os.path.join(catalog_dir(), "%s.csv" % a)
if os.path.exists(p):
known.update(n.split("#")[0] for s in read_csv(p) for n in s.names())
col.resolve({n for n in sc.names | known if n.lower().startswith("speech_")})
check_subtitles(rep, game, col, set(files), quick) check_subtitles(rep, game, col, set(files), quick)
owners = head_owners(game, sc) owners = head_owners(game, sc)
index = collections.defaultdict(set) index = collections.defaultdict(set)
@@ -184,7 +196,6 @@ def check_subtitles(rep, game, col, files, quick):
def run(game, archives=None, quick=False, log=print, progress=None): def run(game, archives=None, quick=False, log=print, progress=None):
"""Check the given archives (default: all). Returns a Report.""" """Check the given archives (default: all). Returns a Report."""
rep = Report() rep = Report()
characters = load_characters()
archives = archives or available_archives(game) archives = archives or available_archives(game)
cat = Catalog(game, archives, progress) cat = Catalog(game, archives, progress)
by_arch = collections.defaultdict(list) by_arch = collections.defaultdict(list)
@@ -192,11 +203,13 @@ def run(game, archives=None, quick=False, log=print, progress=None):
by_arch[s.archive].append(s) by_arch[s.archive].append(s)
for a in archives: for a in archives:
log("checking %s ..." % a) log("checking %s ..." % a)
characters = load_characters(lang=None if a == banks.ARCHIVE else a)
if a == banks.ARCHIVE: if a == banks.ARCHIVE:
rows = load_banks(game, progress)[0] # every language, not only the loaded one rows = load_banks(game, progress)[0] # every language, not only the loaded one
check_banks(rep, game, rows, cat.locations, characters, quick=quick, progress=progress) check_banks(rep, game, rows, cat.locations, characters, quick=quick, progress=progress)
else: else:
check_wad(rep, game, a, by_arch[a], characters) check_wad(rep, game, a, by_arch[a], characters)
characters = load_characters(lang=game.language())
known = {n.lower() for s in cat.sounds for n in s.names()} known = {n.lower() for s in cat.sounds for n in s.names()}
# speaker names are the same in every language; only meaningful for the build the lists were made for # speaker names are the same in every language; only meaningful for the build the lists were made for
if any(a in game.languages and is_shipped(game, a) for a in archives): if any(a in game.languages and is_shipped(game, a) for a in archives):

View File

@@ -4,7 +4,7 @@ import os
import numpy as np import numpy as np
from PySide6.QtCore import Qt, QTimer, Signal from PySide6.QtCore import Qt, QTimer, Signal
from PySide6.QtGui import QFont from PySide6.QtGui import QFont
from PySide6.QtWidgets import (QCheckBox, QComboBox, QDoubleSpinBox, QFileDialog, QGridLayout, QGroupBox, from PySide6.QtWidgets import (QCheckBox, QComboBox, QDoubleSpinBox, QFileDialog, QGridLayout, QGroupBox, QSplitter,
QHBoxLayout, QLabel, QMessageBox, QProgressBar, QPushButton, QSlider, QHBoxLayout, QLabel, QMessageBox, QProgressBar, QPushButton, QSlider,
QVBoxLayout, QWidget) QVBoxLayout, QWidget)
@@ -60,9 +60,11 @@ class EditorPanel(QWidget):
return w return w
def _build(self): def _build(self):
"""Header on top; below, side by side (resizable): LISTEN | REPLACE (with the apply buttons) | SUBTITLE."""
self.setObjectName("EditorPanel") self.setObjectName("EditorPanel")
lay = QVBoxLayout(self) lay = QVBoxLayout(self)
lay.setContentsMargins(10, 8, 10, 8) lay.setContentsMargins(10, 6, 10, 6)
lay.setSpacing(4)
self.title = QLabel() self.title = QLabel()
self.title.setObjectName("EditorTitle") self.title.setObjectName("EditorTitle")
self.title.setTextInteractionFlags(Qt.TextInteractionFlag.TextSelectableByMouse) self.title.setTextInteractionFlags(Qt.TextInteractionFlag.TextSelectableByMouse)
@@ -71,18 +73,21 @@ class EditorPanel(QWidget):
f.setBold(True) f.setBold(True)
f.setLetterSpacing(QFont.SpacingType.PercentageSpacing, 104) f.setLetterSpacing(QFont.SpacingType.PercentageSpacing, 104)
self.title.setFont(f) self.title.setFont(f)
lay.addWidget(self.title) self.state = QLabel()
self.state.setWordWrap(True)
head = QHBoxLayout()
head.addWidget(self.title, 1)
head.addWidget(self.state, 0, Qt.AlignmentFlag.AlignRight | Qt.AlignmentFlag.AlignVCenter)
lay.addLayout(head)
self.meta = QLabel() self.meta = QLabel()
self.meta.setWordWrap(True) self.meta.setWordWrap(True)
self.meta.setObjectName("Muted") self.meta.setObjectName("Muted")
self.state = QLabel()
self.state.setWordWrap(True)
lay.addWidget(self.meta) lay.addWidget(self.meta)
lay.addWidget(self.state)
# listen ---------------------------------------------------------------------------------- # listen ----------------------------------------------------------------------------------
g = QGroupBox("LISTEN") g = QGroupBox("LISTEN")
gl = QGridLayout(g) gl = QGridLayout(g)
gl.setVerticalSpacing(4)
self.wf_orig = self._wave("orig") self.wf_orig = self._wave("orig")
self.wf_inst = self._wave("inst") self.wf_inst = self._wave("inst")
self.b_play_orig = self._btn("Original", "play", lambda: self.play("orig"), "Play the original (Space)", icons.STEEL) self.b_play_orig = self._btn("Original", "play", lambda: self.play("orig"), "Play the original (Space)", icons.STEEL)
@@ -92,8 +97,6 @@ class EditorPanel(QWidget):
icons.ACCENT) icons.ACCENT)
self.cb_loop = self._btn("Loop", "loop", None, "Repeat playback") self.cb_loop = self._btn("Loop", "loop", None, "Repeat playback")
self.cb_loop.setCheckable(True) self.cb_loop.setCheckable(True)
self.vol_icon = QLabel()
self.vol_icon.setPixmap(icons.icon("play", icons.MUTED).pixmap(14, 14))
self.sl_vol = QSlider(Qt.Orientation.Horizontal) self.sl_vol = QSlider(Qt.Orientation.Horizontal)
self.sl_vol.setRange(0, 100) self.sl_vol.setRange(0, 100)
self.sl_vol.setValue(80) self.sl_vol.setValue(80)
@@ -103,39 +106,46 @@ class EditorPanel(QWidget):
self.lbl_time = QLabel("0:00.00") self.lbl_time = QLabel("0:00.00")
self.lbl_time.setObjectName("Muted") self.lbl_time.setObjectName("Muted")
gl.addWidget(QLabel("Original"), 0, 0) gl.addWidget(QLabel("Original"), 0, 0)
gl.addWidget(self.wf_orig, 0, 1, 1, 6) gl.addWidget(self.wf_orig, 0, 1)
self.lbl_inst = QLabel("Installed") self.lbl_inst = QLabel("Installed")
gl.addWidget(self.lbl_inst, 1, 0) gl.addWidget(self.lbl_inst, 1, 0)
gl.addWidget(self.wf_inst, 1, 1, 1, 6) gl.addWidget(self.wf_inst, 1, 1)
row = QHBoxLayout() row = QHBoxLayout()
for w in (self.b_play_orig, self.b_play_inst, self.b_stop, self.b_ab, self.cb_loop, QLabel(" Volume"), for w in (self.b_play_orig, self.b_play_inst, self.b_stop):
self.sl_vol, self.lbl_time):
row.addWidget(w) row.addWidget(w)
row.addStretch(1) row.addStretch(1)
gl.addLayout(row, 2, 0, 1, 7) gl.addLayout(row, 2, 0, 1, 2)
row = QHBoxLayout()
for w in (self.b_ab, self.cb_loop, QLabel("Volume"), self.sl_vol, self.lbl_time):
row.addWidget(w)
row.addStretch(1)
gl.addLayout(row, 3, 0, 1, 2)
gl.setColumnStretch(1, 1) gl.setColumnStretch(1, 1)
lay.addWidget(g) gl.setRowStretch(4, 1)
self.wf_orig.seekRequested.connect(lambda t: self.play("orig", t)) self.wf_orig.seekRequested.connect(lambda t: self.play("orig", t))
self.wf_inst.seekRequested.connect(lambda t: self.play("inst", t)) self.wf_inst.seekRequested.connect(lambda t: self.play("inst", t))
listen = g
# replace --------------------------------------------------------------------------------- # replace ---------------------------------------------------------------------------------
g = QGroupBox("REPLACE") g = QGroupBox("REPLACE")
rl = QVBoxLayout(g) rl = QVBoxLayout(g)
rl.setSpacing(4)
src = QHBoxLayout() src = QHBoxLayout()
self.b_load = self._btn("Load file…", "open", self.load_file_dialog, self.b_load = self._btn("Load file…", "open", self.load_file_dialog,
"WAV, FLAC, OGG, OPUS, MP3, AIFF (M4A/WMA need ffmpeg installed) (Ctrl+O)") "WAV, FLAC, OGG, OPUS, MP3, AIFF (M4A/WMA need ffmpeg installed) (Ctrl+O)")
self.cmb_in = QComboBox() self.cmb_in = QComboBox()
self.cmb_in.setMinimumWidth(180) self.cmb_in.setMinimumWidth(110)
self.cmb_in.setMaximumWidth(200)
self.cmb_in.setToolTip("Recording device") self.cmb_in.setToolTip("Recording device")
self.b_rec = self._btn("Record", "record", self.toggle_record, "Record from the selected input") self.b_rec = self._btn("Record", "record", self.toggle_record, "Record from the selected input")
self.meter = QProgressBar() self.meter = QProgressBar()
self.meter.setRange(0, 100) self.meter.setRange(0, 100)
self.meter.setTextVisible(False) self.meter.setTextVisible(False)
self.meter.setMaximumWidth(120) self.meter.setMaximumWidth(60)
self.meter.setToolTip("Input level") self.meter.setToolTip("Input level")
self.lbl_rec = QLabel("") self.lbl_rec = QLabel("")
self.lbl_rec.setObjectName("Muted") self.lbl_rec.setObjectName("Muted")
for w in (self.b_load, QLabel(" or"), self.cmb_in, self.b_rec, self.meter, self.lbl_rec): for w in (self.b_load, self.cmb_in, self.b_rec, self.meter, self.lbl_rec):
src.addWidget(w) src.addWidget(w)
src.addStretch(1) src.addStretch(1)
rl.addLayout(src) rl.addLayout(src)
@@ -144,71 +154,82 @@ class EditorPanel(QWidget):
self.wf_new.seekRequested.connect(lambda t: self.play("new", t)) self.wf_new.seekRequested.connect(lambda t: self.play("new", t))
self.wf_new.selectionChanged.connect(self._selection) self.wf_new.selectionChanged.connect(self._selection)
rl.addWidget(self.wf_new) rl.addWidget(self.wf_new)
proc = QHBoxLayout()
self.sp_a = QDoubleSpinBox() self.sp_a = QDoubleSpinBox()
self.sp_b = QDoubleSpinBox() self.sp_b = QDoubleSpinBox()
for s_ in (self.sp_a, self.sp_b): for s_ in (self.sp_a, self.sp_b):
s_.setDecimals(2) s_.setDecimals(2)
s_.setSuffix(" s") s_.setSuffix(" s")
s_.setRange(0, 36000) s_.setRange(0, 36000)
s_.setMaximumWidth(92)
s_.valueChanged.connect(self._changed) s_.valueChanged.connect(self._changed)
self.sp_gain = QDoubleSpinBox() self.sp_gain = QDoubleSpinBox()
self.sp_gain.setRange(-40, 40) self.sp_gain.setRange(-40, 40)
self.sp_gain.setSuffix(" dB") self.sp_gain.setSuffix(" dB")
self.sp_gain.setMaximumWidth(92)
self.sp_gain.valueChanged.connect(self._changed) self.sp_gain.valueChanged.connect(self._changed)
self.cb_norm = QCheckBox("Normalize") self.cb_norm = QCheckBox("Normalize")
self.cb_match = QCheckBox("Match original loudness") self.cb_match = QCheckBox("Match loudness")
self.cb_match.setToolTip("Match the loudness of the original sound")
self.cb_norm.toggled.connect(self._changed) self.cb_norm.toggled.connect(self._changed)
self.cb_match.toggled.connect(self._changed) self.cb_match.toggled.connect(self._changed)
self.b_silence = self._btn("Trim silence", None, self.trim_silence, "Cut silence at the start and end") self.b_silence = self._btn("Trim silence", None, self.trim_silence, "Cut silence at the start and end")
self.b_play_new = self._btn("Replacement", "play", lambda: self.play("new"), "Play the processed replacement", self.b_play_new = self._btn("Replacement", "play", lambda: self.play("new"), "Play the processed replacement",
icons.ACCENT) icons.ACCENT)
for w in (QLabel("Keep from"), self.sp_a, QLabel("to"), self.sp_b, self.b_silence, QLabel(" Gain"), proc = QHBoxLayout()
self.sp_gain, self.cb_norm, self.cb_match, self.b_play_new): for w in (QLabel("Keep"), self.sp_a, QLabel("to"), self.sp_b, self.b_silence, self.b_play_new):
proc.addWidget(w)
proc.addStretch(1)
rl.addLayout(proc)
proc = QHBoxLayout()
for w in (QLabel("Gain"), self.sp_gain, self.cb_norm, self.cb_match):
proc.addWidget(w) proc.addWidget(w)
proc.addStretch(1) proc.addStretch(1)
rl.addLayout(proc) rl.addLayout(proc)
info = QHBoxLayout() info = QHBoxLayout()
self.lbl_new = QLabel() self.lbl_new = QLabel()
self.lbl_new.setWordWrap(True)
self.lbl_new.setObjectName("Muted") self.lbl_new.setObjectName("Muted")
self.lbl_new.setWordWrap(True)
self.warn_icon = QLabel() self.warn_icon = QLabel()
self.warn_icon.setPixmap(icons.icon("warning", icons.ACCENT).pixmap(18, 18)) self.warn_icon.setPixmap(icons.icon("warning", icons.ACCENT).pixmap(18, 18))
self.warn_icon.hide() self.warn_icon.hide()
self.lbl_warn = QLabel() self.lbl_warn = QLabel()
self.lbl_warn.setWordWrap(True) self.lbl_warn.setWordWrap(True)
self.lbl_warn.setStyleSheet("color: %s;" % icons.ACCENT) self.lbl_warn.setStyleSheet("color: %s;" % icons.ACCENT)
self.lbl_new.setWordWrap(False) info.addWidget(self.lbl_new, 1, Qt.AlignmentFlag.AlignTop)
info.addWidget(self.lbl_new, 0, Qt.AlignmentFlag.AlignTop)
info.addSpacing(12)
info.addWidget(self.warn_icon, 0, Qt.AlignmentFlag.AlignTop) info.addWidget(self.warn_icon, 0, Qt.AlignmentFlag.AlignTop)
info.addWidget(self.lbl_warn, 1) info.addWidget(self.lbl_warn, 1)
rl.addLayout(info) rl.addLayout(info)
lay.addWidget(g) # apply (belongs to the replacement) ------------------------------------------------------
# apply -----------------------------------------------------------------------------------
act = QHBoxLayout() act = QHBoxLayout()
self.b_apply = self._btn("Apply to game", "apply", self.apply, self.b_apply = self._btn("Apply to game", "apply", self.apply,
"Encode the replacement and install it in the game files (Ctrl+S)", "#ffffff") "Encode the replacement and install it in the game files (Ctrl+S)", "#ffffff")
self.b_apply.setObjectName("Primary") self.b_apply.setObjectName("Primary")
self.b_revert = self._btn("Revert to original", "revert", self.revert, "Put the game's original back") self.b_revert = self._btn("Revert", "revert", self.revert, "Put the game's original back")
self.b_export = self._btn("Save as WAV…", "save", self.export_wav, self.b_export = self._btn("Save WAV…", "save", self.export_wav,
"Save the original (or the replacement) as a WAV file") "Save the original (or the replacement) as a WAV file")
self.busy = Spinner(16) self.busy = Spinner(16)
self.lbl_busy = QLabel() self.lbl_busy = QLabel()
for w in (self.b_apply, self.b_revert, self.b_export, self.busy, self.lbl_busy): for w in (self.b_apply, self.b_revert, self.b_export, self.busy, self.lbl_busy):
act.addWidget(w) act.addWidget(w)
act.addStretch(1) act.addStretch(1)
lay.addLayout(act) rl.addStretch(1)
rl.addLayout(act)
replace = g
# subtitle of this sound (edited side by side with the audio) ------------------------------- # subtitle of this sound (edited side by side with the audio) -------------------------------
from .textpanel import SubtitleBox from .textpanel import SubtitleBox
gs = QGroupBox("Subtitle") gs = QGroupBox("SUBTITLE")
gsl = QVBoxLayout(gs) gsl = QVBoxLayout(gs)
self.subtitle = SubtitleBox(self.ctx, gs) self.subtitle = SubtitleBox(self.ctx, gs)
gsl.addWidget(self.subtitle) gsl.addWidget(self.subtitle)
lay.addWidget(gs) gsl.addStretch(1)
lay.addStretch(1)
self.columns = QSplitter(Qt.Orientation.Horizontal)
self.columns.setChildrenCollapsible(False)
for w, stretch in ((listen, 3), (replace, 4), (gs, 3)):
self.columns.addWidget(w)
self.columns.setStretchFactor(self.columns.count() - 1, stretch)
lay.addWidget(self.columns, 1)
self.recorder.level.connect(lambda v: self.meter.setValue(int(min(1.0, v) * 100))) self.recorder.level.connect(lambda v: self.meter.setValue(int(min(1.0, v) * 100)))
self.recorder.elapsed.connect(lambda t: self.lbl_rec.setText("recording %s" % fmt_s(t))) self.recorder.elapsed.connect(lambda t: self.lbl_rec.setText("recording %s" % fmt_s(t)))

View File

@@ -209,8 +209,14 @@ class MainWindow(QMainWindow):
scroll.setWidget(self.editor) scroll.setWidget(self.editor)
scroll.setWidgetResizable(True) scroll.setWidgetResizable(True)
# sidebar | sound list on top, the editor below across the whole width
hs = QSplitter(Qt.Orientation.Horizontal)
hs.addWidget(side)
hs.addWidget(self.table)
hs.setStretchFactor(1, 1)
hs.setSizes([SIDEBAR_MAX, 100000])
self.vsplit = QSplitter(Qt.Orientation.Vertical) self.vsplit = QSplitter(Qt.Orientation.Vertical)
self.vsplit.addWidget(self.table) self.vsplit.addWidget(hs)
self.vsplit.addWidget(scroll) self.vsplit.addWidget(scroll)
self.vsplit.setStretchFactor(0, 1) # extra height goes to the list; the editor keeps its fitted height self.vsplit.setStretchFactor(0, 1) # extra height goes to the list; the editor keeps its fitted height
self.vsplit.setStretchFactor(1, 0) self.vsplit.setStretchFactor(1, 0)
@@ -219,15 +225,10 @@ class MainWindow(QMainWindow):
self._user_sized = False # once the divider is dragged, keep the user's choice self._user_sized = False # once the divider is dragged, keep the user's choice
self.vsplit.splitterMoved.connect(lambda *_: setattr(self, "_user_sized", True)) self.vsplit.splitterMoved.connect(lambda *_: setattr(self, "_user_sized", True))
self.editor.installEventFilter(self) self.editor.installEventFilter(self)
hs = QSplitter(Qt.Orientation.Horizontal)
hs.addWidget(side)
hs.addWidget(self.vsplit)
hs.setStretchFactor(1, 1)
hs.setSizes([SIDEBAR_MAX, 100000])
# sections: sounds, subtitles, menu text # sections: sounds, subtitles, menu text
self.tabs = QTabWidget() self.tabs = QTabWidget()
self.tabs.setDocumentMode(True) self.tabs.setDocumentMode(True)
self.tabs.addTab(hs, icons.icon("wave"), "Sounds") self.tabs.addTab(self.vsplit, icons.icon("wave"), "Sounds")
self.subs = TextPanel(self, "subs") self.subs = TextPanel(self, "subs")
self.menu = TextPanel(self, "menu") self.menu = TextPanel(self, "menu")
self.tabs.addTab(self.subs, icons.icon("ab"), "Subtitles") self.tabs.addTab(self.subs, icons.icon("ab"), "Subtitles")

View File

@@ -143,18 +143,25 @@ class SubtitleBox(QWidget):
self.lbl = QLabel() self.lbl = QLabel()
self.lbl.setObjectName("Muted") self.lbl.setObjectName("Muted")
row = QHBoxLayout() row = QHBoxLayout()
self.b_apply = QPushButton(icons.icon("apply"), "Apply subtitle") self.b_apply = QPushButton(icons.icon("apply"), "Apply")
self.b_revert = QPushButton(icons.icon("revert"), "Revert subtitle") self.b_revert = QPushButton(icons.icon("revert"), "Revert")
self.b_open = QPushButton(icons.icon("search"), "Show in Subtitles") self.b_open = QPushButton(icons.icon("search"), "Show in list")
self.b_apply.setToolTip("Write this subtitle into the game (every copy)")
self.b_revert.setToolTip("Put the original subtitle back")
self.b_open.setToolTip("Open this subtitle in the Subtitles tab")
self.b_apply.clicked.connect(self.apply) self.b_apply.clicked.connect(self.apply)
self.b_revert.clicked.connect(self.revert) self.b_revert.clicked.connect(self.revert)
self.b_open.clicked.connect(lambda: self.keys and self.open_in_list.emit(self.keys[0])) self.b_open.clicked.connect(lambda: self.keys and self.open_in_list.emit(self.keys[0]))
for b in (self.b_apply, self.b_revert, self.b_open): for b in (self.b_apply, self.b_revert):
row.addWidget(b) row.addWidget(b)
row.addStretch(1) row.addStretch(1)
self.row = row row2 = QHBoxLayout()
row2.addWidget(self.b_open)
row2.addStretch(1)
self.lbl.setWordWrap(True)
self.lay.addRow(self.lbl) self.lay.addRow(self.lbl)
self.lay.addRow(row) self.lay.addRow(row)
self.lay.addRow(row2)
def set_sound(self, s): def set_sound(self, s):
for e in self.edits: for e in self.edits:
@@ -171,6 +178,8 @@ class SubtitleBox(QWidget):
for i, ln in enumerate(lines): for i, ln in enumerate(lines):
k = subtitles.key(ln.lang, ln.speech, ln.line) k = subtitles.key(ln.lang, ln.speech, ln.line)
e = QLineEdit(tx.records().get(k, {}).get("applied") or ln.text) e = QLineEdit(tx.records().get(k, {}).get("applied") or ln.text)
e.setMinimumWidth(80)
e.setCursorPosition(0) # long subtitles: show their beginning
e.setToolTip("Original: %s\nRoom: %d characters" % (ln.text, ln.room)) e.setToolTip("Original: %s\nRoom: %d characters" % (ln.text, ln.room))
e.textChanged.connect(self._check) e.textChanged.connect(self._check)
self.lay.insertRow(i, "Line %d" % (i + 1) if len(lines) > 1 else "Subtitle", e) self.lay.insertRow(i, "Line %d" % (i + 1) if len(lines) > 1 else "Subtitle", e)

View File

@@ -4045,10 +4045,10 @@ BANK,1EA2F7D0,Play_Icewalk_Warning_3,CHR_ProximityTracker/1EA2F7D0,SFX,Character
BANK,2696145B,Play_Earcon,CHR_RadioComms/2696145B,SFX,Character foley,CHR_RadioComms,,,,0.426,24000,2,3483,c3dcb577768c3146, BANK,2696145B,Play_Earcon,CHR_RadioComms/2696145B,SFX,Character foley,CHR_RadioComms,,,,0.426,24000,2,3483,c3dcb577768c3146,
BANK,38810392,Play_Phone_HangUp,CHR_RadioComms/38810392,SFX,Character foley,CHR_RadioComms,,,,2.080,24000,2,11481,daa98041b3f9b508, BANK,38810392,Play_Phone_HangUp,CHR_RadioComms/38810392,SFX,Character foley,CHR_RadioComms,,,,2.080,24000,2,11481,daa98041b3f9b508,
BANK,05ED8C09,CHR_RadioScanner_1,CHR_RadioScanner/05ED8C09,Speech,Radio & TV,CHR_RadioScanner,,,,0.685,48000,1,6629,cfb96b0d63a64189, BANK,05ED8C09,CHR_RadioScanner_1,CHR_RadioScanner/05ED8C09,Speech,Radio & TV,CHR_RadioScanner,,,,0.685,48000,1,6629,cfb96b0d63a64189,
BANK,09840539,CHR_RadioScanner_2,CHR_RadioScanner/09840539,Speech,Radio & TV,CHR_RadioScanner,,Hugo Strange,,0.171,48000,1,2801,8feedb24294d73e4, BANK,09840539,CHR_RadioScanner_2,CHR_RadioScanner/09840539,Speech,Radio & TV,CHR_RadioScanner,,,,0.171,48000,1,2801,8feedb24294d73e4,
BANK,1037B401,CHR_RadioScanner_3,CHR_RadioScanner/1037B401,Speech,Radio & TV,CHR_RadioScanner,,Hugo Strange,,0.612,44100,2,10114,36c74912366fbd2b, BANK,1037B401,CHR_RadioScanner_3,CHR_RadioScanner/1037B401,Speech,Radio & TV,CHR_RadioScanner,,,,0.612,44100,2,10114,36c74912366fbd2b,
BANK,1A1FC7A5,CHR_RadioScanner_4,CHR_RadioScanner/1A1FC7A5,Speech,Radio & TV,CHR_RadioScanner,,Vicki Vale,,1.277,48000,2,18504,692939cfee66e191, BANK,1A1FC7A5,CHR_RadioScanner_4,CHR_RadioScanner/1A1FC7A5,Speech,Radio & TV,CHR_RadioScanner,,,,1.277,48000,2,18504,692939cfee66e191,
BANK,24004F6B,CHR_RadioScanner_5,CHR_RadioScanner/24004F6B,Speech,Radio & TV,CHR_RadioScanner,,Riddler,,0.745,48000,2,13504,76d5b6a1e37a81b0, BANK,24004F6B,CHR_RadioScanner_5,CHR_RadioScanner/24004F6B,Speech,Radio & TV,CHR_RadioScanner,,,,0.745,48000,2,13504,76d5b6a1e37a81b0,
BANK,24491EC9,CHR_RadioScanner_6,CHR_RadioScanner/24491EC9,Speech,Radio & TV,CHR_RadioScanner,,,,1.084,48000,2,13199,978ba21f319c2fe2, BANK,24491EC9,CHR_RadioScanner_6,CHR_RadioScanner/24491EC9,Speech,Radio & TV,CHR_RadioScanner,,,,1.084,48000,2,13199,978ba21f319c2fe2,
BANK,399F9132,CHR_RadioScanner_7,CHR_RadioScanner/399F9132,Speech,Radio & TV,CHR_RadioScanner,,,,0.848,48000,2,15815,af6a6eb5ba4d8245, BANK,399F9132,CHR_RadioScanner_7,CHR_RadioScanner/399F9132,Speech,Radio & TV,CHR_RadioScanner,,,,0.848,48000,2,15815,af6a6eb5ba4d8245,
BANK,3B40D00F,CHR_RadioScanner_8,CHR_RadioScanner/3B40D00F,Speech,Radio & TV,CHR_RadioScanner,,,,0.612,44100,2,10114,36c74912366fbd2b, BANK,3B40D00F,CHR_RadioScanner_8,CHR_RadioScanner/3B40D00F,Speech,Radio & TV,CHR_RadioScanner,,,,0.612,44100,2,10114,36c74912366fbd2b,
@@ -7422,11 +7422,11 @@ BANK,1A3B7533,Speech_Bully_C_conv_05,Speech_Bully_C_conv/1A3B7533,Speech,Combat
BANK,076C0C7A,Speech_Bully_C_conv_05,Speech_Bully_C_conv/076C0C7A,Speech,Combat barks,Speech_Bully_C_conv,ITA,,Thug,6.635,28000,1,50298,ac39d899bdb167cf, BANK,076C0C7A,Speech_Bully_C_conv_05,Speech_Bully_C_conv/076C0C7A,Speech,Combat barks,Speech_Bully_C_conv,ITA,,Thug,6.635,28000,1,50298,ac39d899bdb167cf,
BANK,0C5DBD6B,Speech_Bully_C_conv_05,Speech_Bully_C_conv/0C5DBD6B,Speech,Combat barks,Speech_Bully_C_conv,DEU,,Thug,6.488,28000,1,47977,72b8e1e623c4b089, BANK,0C5DBD6B,Speech_Bully_C_conv_05,Speech_Bully_C_conv/0C5DBD6B,Speech,Combat barks,Speech_Bully_C_conv,DEU,,Thug,6.488,28000,1,47977,72b8e1e623c4b089,
BANK,16AD1A51,Speech_Bully_C_conv_05,Speech_Bully_C_conv/16AD1A51,Speech,Combat barks,Speech_Bully_C_conv,ESN,,Thug,5.952,28000,1,43883,9711ec368d11e388, BANK,16AD1A51,Speech_Bully_C_conv_05,Speech_Bully_C_conv/16AD1A51,Speech,Combat barks,Speech_Bully_C_conv,ESN,,Thug,5.952,28000,1,43883,9711ec368d11e388,
BANK,3C7B953C,Speech_CH_ZERO_CH0_ENCRYPTION_CARD3_01,Speech_CH_ZERO_CH0_ENCRYPTION_CARD3/3C7B953C,Speech,Story missions,Speech_CH_ZERO_CH0_ENCRYPTION_CARD3,INT,,,1.149,44100,1,11551,e25bb4cde803739d, BANK,3C7B953C,Speech_CH_ZERO_CH0_ENCRYPTION_CARD3_01,Speech_CH_ZERO_CH0_ENCRYPTION_CARD3/3C7B953C,Speech,Story missions,Speech_CH_ZERO_CH0_ENCRYPTION_CARD3,INT,Batman,,1.149,44100,1,11551,e25bb4cde803739d,
BANK,3653354B,Speech_CH_ZERO_CH0_ENCRYPTION_CARD3_01,Speech_CH_ZERO_CH0_ENCRYPTION_CARD3/3653354B,Speech,Story missions,Speech_CH_ZERO_CH0_ENCRYPTION_CARD3,FRA,,,1.308,28000,1,10780,deb4215bfc476d40, BANK,3653354B,Speech_CH_ZERO_CH0_ENCRYPTION_CARD3_01,Speech_CH_ZERO_CH0_ENCRYPTION_CARD3/3653354B,Speech,Story missions,Speech_CH_ZERO_CH0_ENCRYPTION_CARD3,FRA,Batman,,1.308,28000,1,10780,deb4215bfc476d40,
BANK,238B1AD2,Speech_CH_ZERO_CH0_ENCRYPTION_CARD3_01,Speech_CH_ZERO_CH0_ENCRYPTION_CARD3/238B1AD2,Speech,Story missions,Speech_CH_ZERO_CH0_ENCRYPTION_CARD3,ITA,,,1.782,28000,1,13054,c8e2c2d687800345, BANK,238B1AD2,Speech_CH_ZERO_CH0_ENCRYPTION_CARD3_01,Speech_CH_ZERO_CH0_ENCRYPTION_CARD3/238B1AD2,Speech,Story missions,Speech_CH_ZERO_CH0_ENCRYPTION_CARD3,ITA,Batman,,1.782,28000,1,13054,c8e2c2d687800345,
BANK,09ECFA75,Speech_CH_ZERO_CH0_ENCRYPTION_CARD3_01,Speech_CH_ZERO_CH0_ENCRYPTION_CARD3/09ECFA75,Speech,Story missions,Speech_CH_ZERO_CH0_ENCRYPTION_CARD3,DEU,,,1.620,28000,1,10820,71bcff8ee2d30cab, BANK,09ECFA75,Speech_CH_ZERO_CH0_ENCRYPTION_CARD3_01,Speech_CH_ZERO_CH0_ENCRYPTION_CARD3/09ECFA75,Speech,Story missions,Speech_CH_ZERO_CH0_ENCRYPTION_CARD3,DEU,Batman,,1.620,28000,1,10820,71bcff8ee2d30cab,
BANK,2540B067,Speech_CH_ZERO_CH0_ENCRYPTION_CARD3_01,Speech_CH_ZERO_CH0_ENCRYPTION_CARD3/2540B067,Speech,Story missions,Speech_CH_ZERO_CH0_ENCRYPTION_CARD3,ESN,,,1.330,28000,1,11204,36e05933f5c12160, BANK,2540B067,Speech_CH_ZERO_CH0_ENCRYPTION_CARD3_01,Speech_CH_ZERO_CH0_ENCRYPTION_CARD3/2540B067,Speech,Story missions,Speech_CH_ZERO_CH0_ENCRYPTION_CARD3,ESN,Batman,,1.330,28000,1,11204,36e05933f5c12160,
BANK,235C3AB2,Speech_CH_ZERO_PENG_hands_PENG_fightcomments_01,Speech_CH_ZERO_PENG_hands/235C3AB2,Speech,Story missions,Speech_CH_ZERO_PENG_hands,INT,,Penguin,4.681,44100,1,36231,0c9e76840c288b09, BANK,235C3AB2,Speech_CH_ZERO_PENG_hands_PENG_fightcomments_01,Speech_CH_ZERO_PENG_hands/235C3AB2,Speech,Story missions,Speech_CH_ZERO_PENG_hands,INT,,Penguin,4.681,44100,1,36231,0c9e76840c288b09,
BANK,32D15A18,Speech_CH_ZERO_PENG_hands_PENG_fightcomments_01,Speech_CH_ZERO_PENG_hands/32D15A18,Speech,Story missions,Speech_CH_ZERO_PENG_hands,FRA,,Penguin,4.768,28000,1,33903,b5e01b7e7d017a30, BANK,32D15A18,Speech_CH_ZERO_PENG_hands_PENG_fightcomments_01,Speech_CH_ZERO_PENG_hands/32D15A18,Speech,Story missions,Speech_CH_ZERO_PENG_hands,FRA,,Penguin,4.768,28000,1,33903,b5e01b7e7d017a30,
BANK,2F46312B,Speech_CH_ZERO_PENG_hands_PENG_fightcomments_01,Speech_CH_ZERO_PENG_hands/2F46312B,Speech,Story missions,Speech_CH_ZERO_PENG_hands,ITA,,Penguin,4.545,28000,1,32718,a0a44cda507f015e, BANK,2F46312B,Speech_CH_ZERO_PENG_hands_PENG_fightcomments_01,Speech_CH_ZERO_PENG_hands/2F46312B,Speech,Story missions,Speech_CH_ZERO_PENG_hands,ITA,,Penguin,4.545,28000,1,32718,a0a44cda507f015e,
@@ -7539,21 +7539,21 @@ BANK,29A2E2C3,Speech_CHAR_JOKER_Approach_steel_intro_APPROACH_STEEL_PA_01,Speech
BANK,2F168905,Speech_CHAR_JOKER_Approach_steel_intro_APPROACH_STEEL_PA_01,Speech_CHAR_JOKER_Approach_steel_intro/2F168905,Speech,Character lines,Speech_CHAR_JOKER_Approach_steel_intro,ITA,,Joker,16.971,24000,5,317836,d362ad81589acf27, BANK,2F168905,Speech_CHAR_JOKER_Approach_steel_intro_APPROACH_STEEL_PA_01,Speech_CHAR_JOKER_Approach_steel_intro/2F168905,Speech,Character lines,Speech_CHAR_JOKER_Approach_steel_intro,ITA,,Joker,16.971,24000,5,317836,d362ad81589acf27,
BANK,07B951A7,Speech_CHAR_JOKER_Approach_steel_intro_APPROACH_STEEL_PA_01,Speech_CHAR_JOKER_Approach_steel_intro/07B951A7,Speech,Character lines,Speech_CHAR_JOKER_Approach_steel_intro,DEU,,Joker,16.583,24000,5,333293,81d9e3906243eca8, BANK,07B951A7,Speech_CHAR_JOKER_Approach_steel_intro_APPROACH_STEEL_PA_01,Speech_CHAR_JOKER_Approach_steel_intro/07B951A7,Speech,Character lines,Speech_CHAR_JOKER_Approach_steel_intro,DEU,,Joker,16.583,24000,5,333293,81d9e3906243eca8,
BANK,053A5F8E,Speech_CHAR_JOKER_Approach_steel_intro_APPROACH_STEEL_PA_01,Speech_CHAR_JOKER_Approach_steel_intro/053A5F8E,Speech,Character lines,Speech_CHAR_JOKER_Approach_steel_intro,ESN,,Joker,15.945,24000,5,311077,018adc0d3f32bcc3, BANK,053A5F8E,Speech_CHAR_JOKER_Approach_steel_intro_APPROACH_STEEL_PA_01,Speech_CHAR_JOKER_Approach_steel_intro/053A5F8E,Speech,Character lines,Speech_CHAR_JOKER_Approach_steel_intro,ESN,,Joker,15.945,24000,5,311077,018adc0d3f32bcc3,
BANK,0DA87E61,Speech_CHAR_JOKER_CH5_working_with_freeze_01,Speech_CHAR_JOKER_CH5_working_with_freeze/0DA87E61,Speech,Character lines,Speech_CHAR_JOKER_CH5_working_with_freeze,INT,,Joker; Mr. Freeze,1.827,48000,1,10677,814e3625e25cdb2b, BANK,0DA87E61,Speech_CHAR_JOKER_CH5_working_with_freeze_01,Speech_CHAR_JOKER_CH5_working_with_freeze/0DA87E61,Speech,Character lines,Speech_CHAR_JOKER_CH5_working_with_freeze,INT,Joker,Joker; Mr. Freeze,1.827,48000,1,10677,814e3625e25cdb2b,
BANK,0EAD7460,Speech_CHAR_JOKER_CH5_working_with_freeze_01,Speech_CHAR_JOKER_CH5_working_with_freeze/0EAD7460,Speech,Character lines,Speech_CHAR_JOKER_CH5_working_with_freeze,FRA,,Joker; Mr. Freeze,0.235,48000,1,321,5a46348809c6acbf, BANK,0EAD7460,Speech_CHAR_JOKER_CH5_working_with_freeze_01,Speech_CHAR_JOKER_CH5_working_with_freeze/0EAD7460,Speech,Character lines,Speech_CHAR_JOKER_CH5_working_with_freeze,FRA,Joker,Joker; Mr. Freeze,0.235,48000,1,321,5a46348809c6acbf,
BANK,07F9D377,Speech_CHAR_JOKER_CH5_working_with_freeze_01,Speech_CHAR_JOKER_CH5_working_with_freeze/07F9D377,Speech,Character lines,Speech_CHAR_JOKER_CH5_working_with_freeze,ITA,,Joker; Mr. Freeze,0.235,48000,1,321,5a46348809c6acbf, BANK,07F9D377,Speech_CHAR_JOKER_CH5_working_with_freeze_01,Speech_CHAR_JOKER_CH5_working_with_freeze/07F9D377,Speech,Character lines,Speech_CHAR_JOKER_CH5_working_with_freeze,ITA,Joker,Joker; Mr. Freeze,0.235,48000,1,321,5a46348809c6acbf,
BANK,307224FD,Speech_CHAR_JOKER_CH5_working_with_freeze_01,Speech_CHAR_JOKER_CH5_working_with_freeze/307224FD,Speech,Character lines,Speech_CHAR_JOKER_CH5_working_with_freeze,DEU,,Joker; Mr. Freeze,0.235,48000,1,321,5a46348809c6acbf, BANK,307224FD,Speech_CHAR_JOKER_CH5_working_with_freeze_01,Speech_CHAR_JOKER_CH5_working_with_freeze/307224FD,Speech,Character lines,Speech_CHAR_JOKER_CH5_working_with_freeze,DEU,Joker,Joker; Mr. Freeze,0.235,48000,1,321,5a46348809c6acbf,
BANK,07876330,Speech_CHAR_JOKER_CH5_working_with_freeze_01,Speech_CHAR_JOKER_CH5_working_with_freeze/07876330,Speech,Character lines,Speech_CHAR_JOKER_CH5_working_with_freeze,ESN,,Joker; Mr. Freeze,0.235,48000,1,321,5a46348809c6acbf, BANK,07876330,Speech_CHAR_JOKER_CH5_working_with_freeze_01,Speech_CHAR_JOKER_CH5_working_with_freeze/07876330,Speech,Character lines,Speech_CHAR_JOKER_CH5_working_with_freeze,ESN,Joker,Joker; Mr. Freeze,0.235,48000,1,321,5a46348809c6acbf,
BANK,25F1B5ED,Speech_CINEMATIC_CH3_MEET_THE_PENGUIN_19,Speech_CINEMATIC_CH3_MEET_THE_PENGUIN/25F1B5ED,Speech,Cinematics,Speech_CINEMATIC_CH3_MEET_THE_PENGUIN,INT,Penguin,Penguin,4.491,44100,3,98564,efde0e67b030d5a0, BANK,25F1B5ED,Speech_CINEMATIC_CH3_MEET_THE_PENGUIN_19,Speech_CINEMATIC_CH3_MEET_THE_PENGUIN/25F1B5ED,Speech,Cinematics,Speech_CINEMATIC_CH3_MEET_THE_PENGUIN,INT,,Penguin,4.491,44100,3,98564,efde0e67b030d5a0,
BANK,3FA65C62,Speech_CINEMATIC_CH3_MEET_THE_PENGUIN_19,Speech_CINEMATIC_CH3_MEET_THE_PENGUIN/3FA65C62,Speech,Cinematics,Speech_CINEMATIC_CH3_MEET_THE_PENGUIN,FRA,Penguin,Penguin,3.895,28000,1,26384,804f3ea9048b28ba, BANK,3FA65C62,Speech_CINEMATIC_CH3_MEET_THE_PENGUIN_19,Speech_CINEMATIC_CH3_MEET_THE_PENGUIN/3FA65C62,Speech,Cinematics,Speech_CINEMATIC_CH3_MEET_THE_PENGUIN,FRA,,Penguin,3.895,28000,1,26384,804f3ea9048b28ba,
BANK,2E1796AE,Speech_CINEMATIC_CH3_MEET_THE_PENGUIN_19,Speech_CINEMATIC_CH3_MEET_THE_PENGUIN/2E1796AE,Speech,Cinematics,Speech_CINEMATIC_CH3_MEET_THE_PENGUIN,ITA,Penguin,Penguin,4.759,28000,1,27292,6a7810833a312bc3, BANK,2E1796AE,Speech_CINEMATIC_CH3_MEET_THE_PENGUIN_19,Speech_CINEMATIC_CH3_MEET_THE_PENGUIN/2E1796AE,Speech,Cinematics,Speech_CINEMATIC_CH3_MEET_THE_PENGUIN,ITA,,Penguin,4.759,28000,1,27292,6a7810833a312bc3,
BANK,2D661420,Speech_CINEMATIC_CH3_MEET_THE_PENGUIN_19,Speech_CINEMATIC_CH3_MEET_THE_PENGUIN/2D661420,Speech,Cinematics,Speech_CINEMATIC_CH3_MEET_THE_PENGUIN,DEU,Penguin,Penguin,3.802,28000,1,26244,9a68ba22c0a3d35d, BANK,2D661420,Speech_CINEMATIC_CH3_MEET_THE_PENGUIN_19,Speech_CINEMATIC_CH3_MEET_THE_PENGUIN/2D661420,Speech,Cinematics,Speech_CINEMATIC_CH3_MEET_THE_PENGUIN,DEU,,Penguin,3.802,28000,1,26244,9a68ba22c0a3d35d,
BANK,20DF687A,Speech_CINEMATIC_CH3_MEET_THE_PENGUIN_19,Speech_CINEMATIC_CH3_MEET_THE_PENGUIN/20DF687A,Speech,Cinematics,Speech_CINEMATIC_CH3_MEET_THE_PENGUIN,ESN,Penguin,Penguin,4.586,28000,1,28616,949f43d5dd3b8823, BANK,20DF687A,Speech_CINEMATIC_CH3_MEET_THE_PENGUIN_19,Speech_CINEMATIC_CH3_MEET_THE_PENGUIN/20DF687A,Speech,Cinematics,Speech_CINEMATIC_CH3_MEET_THE_PENGUIN,ESN,,Penguin,4.586,28000,1,28616,949f43d5dd3b8823,
BANK,3D3E517A,Speech_CINEMATIC_CH6_BATMAN_CONFRONTS_JOKER_1,Speech_CINEMATIC_CH6_BATMAN_CONFRONTS_JOKER/3D3E517A,Speech,Cinematics,Speech_CINEMATIC_CH6_BATMAN_CONFRONTS_JOKER,INT,Joker,Batman; Joker,2.492,44100,1,20047,3a4ba2b9c63934ed, BANK,3D3E517A,Speech_CINEMATIC_CH6_BATMAN_CONFRONTS_JOKER_1,Speech_CINEMATIC_CH6_BATMAN_CONFRONTS_JOKER/3D3E517A,Speech,Cinematics,Speech_CINEMATIC_CH6_BATMAN_CONFRONTS_JOKER,INT,,Batman; Joker,2.492,44100,1,20047,3a4ba2b9c63934ed,
BANK,0B42FF7D,Speech_CINEMATIC_CH6_BATMAN_CONFRONTS_JOKER_1,Speech_CINEMATIC_CH6_BATMAN_CONFRONTS_JOKER/0B42FF7D,Speech,Cinematics,Speech_CINEMATIC_CH6_BATMAN_CONFRONTS_JOKER,FRA,Joker,Batman; Joker,2.534,28000,1,17075,bc9ab36f0afa7b27, BANK,0B42FF7D,Speech_CINEMATIC_CH6_BATMAN_CONFRONTS_JOKER_1,Speech_CINEMATIC_CH6_BATMAN_CONFRONTS_JOKER/0B42FF7D,Speech,Cinematics,Speech_CINEMATIC_CH6_BATMAN_CONFRONTS_JOKER,FRA,,Batman; Joker,2.534,28000,1,17075,bc9ab36f0afa7b27,
BANK,1FC3A83F,Speech_CINEMATIC_CH6_BATMAN_CONFRONTS_JOKER_1,Speech_CINEMATIC_CH6_BATMAN_CONFRONTS_JOKER/1FC3A83F,Speech,Cinematics,Speech_CINEMATIC_CH6_BATMAN_CONFRONTS_JOKER,ITA,Joker,Batman; Joker,2.544,28000,1,17300,9af41c14c8540a89, BANK,1FC3A83F,Speech_CINEMATIC_CH6_BATMAN_CONFRONTS_JOKER_1,Speech_CINEMATIC_CH6_BATMAN_CONFRONTS_JOKER/1FC3A83F,Speech,Cinematics,Speech_CINEMATIC_CH6_BATMAN_CONFRONTS_JOKER,ITA,,Batman; Joker,2.544,28000,1,17300,9af41c14c8540a89,
BANK,29B4097E,Speech_CINEMATIC_CH6_BATMAN_CONFRONTS_JOKER_1,Speech_CINEMATIC_CH6_BATMAN_CONFRONTS_JOKER/29B4097E,Speech,Cinematics,Speech_CINEMATIC_CH6_BATMAN_CONFRONTS_JOKER,DEU,Joker,Batman; Joker,2.534,28000,1,16926,736d5f57b8397512, BANK,29B4097E,Speech_CINEMATIC_CH6_BATMAN_CONFRONTS_JOKER_1,Speech_CINEMATIC_CH6_BATMAN_CONFRONTS_JOKER/29B4097E,Speech,Cinematics,Speech_CINEMATIC_CH6_BATMAN_CONFRONTS_JOKER,DEU,,Batman; Joker,2.534,28000,1,16926,736d5f57b8397512,
BANK,0472E7FB,Speech_CINEMATIC_CH6_BATMAN_CONFRONTS_JOKER_1,Speech_CINEMATIC_CH6_BATMAN_CONFRONTS_JOKER/0472E7FB,Speech,Cinematics,Speech_CINEMATIC_CH6_BATMAN_CONFRONTS_JOKER,ESN,Joker,Batman; Joker,2.304,28000,1,16967,7c83a67ca3aedb6a, BANK,0472E7FB,Speech_CINEMATIC_CH6_BATMAN_CONFRONTS_JOKER_1,Speech_CINEMATIC_CH6_BATMAN_CONFRONTS_JOKER/0472E7FB,Speech,Cinematics,Speech_CINEMATIC_CH6_BATMAN_CONFRONTS_JOKER,ESN,,Batman; Joker,2.304,28000,1,16967,7c83a67ca3aedb6a,
BANK,0D579006,Speech_COMBAT_BARKS_1_INSULT_GROUP_SetA_GRP_BM_01,Speech_COMBAT_BARKS_1_INSULT_GROUP_SetA/0D579006,Speech,Combat barks,Speech_COMBAT_BARKS_1_INSULT_GROUP_SetA,INT,,Batman,1.942,44100,1,15561,804be70742e85c57, BANK,0D579006,Speech_COMBAT_BARKS_1_INSULT_GROUP_SetA_GRP_BM_01,Speech_COMBAT_BARKS_1_INSULT_GROUP_SetA/0D579006,Speech,Combat barks,Speech_COMBAT_BARKS_1_INSULT_GROUP_SetA,INT,,Batman,1.942,44100,1,15561,804be70742e85c57,
BANK,3E88D860,Speech_COMBAT_BARKS_1_INSULT_GROUP_SetA_GRP_BM_01,Speech_COMBAT_BARKS_1_INSULT_GROUP_SetA/3E88D860,Speech,Combat barks,Speech_COMBAT_BARKS_1_INSULT_GROUP_SetA,FRA,,Batman,1.791,28000,1,12938,e833a0135c168827, BANK,3E88D860,Speech_COMBAT_BARKS_1_INSULT_GROUP_SetA_GRP_BM_01,Speech_COMBAT_BARKS_1_INSULT_GROUP_SetA/3E88D860,Speech,Combat barks,Speech_COMBAT_BARKS_1_INSULT_GROUP_SetA,FRA,,Batman,1.791,28000,1,12938,e833a0135c168827,
BANK,1CA672D4,Speech_COMBAT_BARKS_1_INSULT_GROUP_SetA_GRP_BM_01,Speech_COMBAT_BARKS_1_INSULT_GROUP_SetA/1CA672D4,Speech,Combat barks,Speech_COMBAT_BARKS_1_INSULT_GROUP_SetA,ITA,,Batman,2.006,28000,1,14634,d24da394444a4430, BANK,1CA672D4,Speech_COMBAT_BARKS_1_INSULT_GROUP_SetA_GRP_BM_01,Speech_COMBAT_BARKS_1_INSULT_GROUP_SetA/1CA672D4,Speech,Combat barks,Speech_COMBAT_BARKS_1_INSULT_GROUP_SetA,ITA,,Batman,2.006,28000,1,14634,d24da394444a4430,
@@ -12018,33 +12018,33 @@ BANK,2FAA3476,Speech_FORENSICS_Cold_Correct_FORENSICS_Cold_Correct,Speech_FORENS
BANK,25DB5842,Speech_FORENSICS_Cold_Correct_FORENSICS_Cold_Correct,Speech_FORENSICS_Cold_Correct/25DB5842,Speech,Gameplay & hints,Speech_FORENSICS_Cold_Correct,ITA,,,2.628,28000,1,20518,ac2a3c7fdad562df, BANK,25DB5842,Speech_FORENSICS_Cold_Correct_FORENSICS_Cold_Correct,Speech_FORENSICS_Cold_Correct/25DB5842,Speech,Gameplay & hints,Speech_FORENSICS_Cold_Correct,ITA,,,2.628,28000,1,20518,ac2a3c7fdad562df,
BANK,2F9A9DEF,Speech_FORENSICS_Cold_Correct_FORENSICS_Cold_Correct,Speech_FORENSICS_Cold_Correct/2F9A9DEF,Speech,Gameplay & hints,Speech_FORENSICS_Cold_Correct,DEU,,,2.691,28000,1,21795,236e4c26a88643e8, BANK,2F9A9DEF,Speech_FORENSICS_Cold_Correct_FORENSICS_Cold_Correct,Speech_FORENSICS_Cold_Correct/2F9A9DEF,Speech,Gameplay & hints,Speech_FORENSICS_Cold_Correct,DEU,,,2.691,28000,1,21795,236e4c26a88643e8,
BANK,35FAA3F3,Speech_FORENSICS_Cold_Correct_FORENSICS_Cold_Correct,Speech_FORENSICS_Cold_Correct/35FAA3F3,Speech,Gameplay & hints,Speech_FORENSICS_Cold_Correct,ESN,,,2.400,28000,1,19029,25a18a794248f9dc, BANK,35FAA3F3,Speech_FORENSICS_Cold_Correct_FORENSICS_Cold_Correct,Speech_FORENSICS_Cold_Correct/35FAA3F3,Speech,Gameplay & hints,Speech_FORENSICS_Cold_Correct,ESN,,,2.400,28000,1,19029,25a18a794248f9dc,
BANK,02B02BF2,Speech_GAME_OVER_Harley_Dead2,Speech_GAME_OVER_Harley/02B02BF2,Speech,Gameplay & hints,Speech_GAME_OVER_Harley,INT,,Harley Quinn,2.034,44100,3,44118,3cd5d7056427b140, BANK,02B02BF2,Speech_GAME_OVER_Harley_Dead2,Speech_GAME_OVER_Harley/02B02BF2,Speech,Gameplay & hints,Speech_GAME_OVER_Harley,INT,Harley Quinn,Harley Quinn,2.034,44100,3,44118,3cd5d7056427b140,
BANK,3CCA3AAE,Speech_GAME_OVER_Harley_Dead2,Speech_GAME_OVER_Harley/3CCA3AAE,Speech,Gameplay & hints,Speech_GAME_OVER_Harley,FRA,,Harley Quinn,2.164,28000,1,15141,b1917825638115d7, BANK,3CCA3AAE,Speech_GAME_OVER_Harley_Dead2,Speech_GAME_OVER_Harley/3CCA3AAE,Speech,Gameplay & hints,Speech_GAME_OVER_Harley,FRA,Harley Quinn,Harley Quinn,2.164,28000,1,15141,b1917825638115d7,
BANK,20AED5D2,Speech_GAME_OVER_Harley_Dead2,Speech_GAME_OVER_Harley/20AED5D2,Speech,Gameplay & hints,Speech_GAME_OVER_Harley,ITA,,Harley Quinn,1.787,28000,1,12397,38e40367a3c12f66, BANK,20AED5D2,Speech_GAME_OVER_Harley_Dead2,Speech_GAME_OVER_Harley/20AED5D2,Speech,Gameplay & hints,Speech_GAME_OVER_Harley,ITA,Harley Quinn,Harley Quinn,1.787,28000,1,12397,38e40367a3c12f66,
BANK,043620D9,Speech_GAME_OVER_Harley_Dead2,Speech_GAME_OVER_Harley/043620D9,Speech,Gameplay & hints,Speech_GAME_OVER_Harley,DEU,,Harley Quinn,2.090,28000,1,13346,ae7986530de3cf1e, BANK,043620D9,Speech_GAME_OVER_Harley_Dead2,Speech_GAME_OVER_Harley/043620D9,Speech,Gameplay & hints,Speech_GAME_OVER_Harley,DEU,Harley Quinn,Harley Quinn,2.090,28000,1,13346,ae7986530de3cf1e,
BANK,068435EE,Speech_GAME_OVER_Joker_DEAD_13,Speech_GAME_OVER_Joker/068435EE,Speech,Gameplay & hints,Speech_GAME_OVER_Joker,INT,,Joker,1.539,44100,3,37363,e2adc1dc6a43ba18, BANK,068435EE,Speech_GAME_OVER_Joker_DEAD_13,Speech_GAME_OVER_Joker/068435EE,Speech,Gameplay & hints,Speech_GAME_OVER_Joker,INT,Joker,Joker,1.539,44100,3,37363,e2adc1dc6a43ba18,
BANK,0E820C9F,Speech_GAME_OVER_Joker_DEAD_13,Speech_GAME_OVER_Joker/0E820C9F,Speech,Gameplay & hints,Speech_GAME_OVER_Joker,FRA,,Joker,1.593,28000,1,12567,ab5ef6041156eb76, BANK,0E820C9F,Speech_GAME_OVER_Joker_DEAD_13,Speech_GAME_OVER_Joker/0E820C9F,Speech,Gameplay & hints,Speech_GAME_OVER_Joker,FRA,Joker,Joker,1.593,28000,1,12567,ab5ef6041156eb76,
BANK,16D46180,Speech_GAME_OVER_Joker_DEAD_13,Speech_GAME_OVER_Joker/16D46180,Speech,Gameplay & hints,Speech_GAME_OVER_Joker,ITA,,Joker,1.029,28000,1,8680,1bd4cf5d6cc3d049, BANK,16D46180,Speech_GAME_OVER_Joker_DEAD_13,Speech_GAME_OVER_Joker/16D46180,Speech,Gameplay & hints,Speech_GAME_OVER_Joker,ITA,Joker,Joker,1.029,28000,1,8680,1bd4cf5d6cc3d049,
BANK,1AD4AAB1,Speech_GAME_OVER_Joker_DEAD_13,Speech_GAME_OVER_Joker/1AD4AAB1,Speech,Gameplay & hints,Speech_GAME_OVER_Joker,DEU,,Joker,1.593,28000,1,10725,117399e19037e4a5, BANK,1AD4AAB1,Speech_GAME_OVER_Joker_DEAD_13,Speech_GAME_OVER_Joker/1AD4AAB1,Speech,Gameplay & hints,Speech_GAME_OVER_Joker,DEU,Joker,Joker,1.593,28000,1,10725,117399e19037e4a5,
BANK,3615E00B,Speech_GAME_OVER_Joker_DEAD_13,Speech_GAME_OVER_Joker/3615E00B,Speech,Gameplay & hints,Speech_GAME_OVER_Joker,ESN,,Joker,1.258,28000,1,9521,4282086256d079b9, BANK,3615E00B,Speech_GAME_OVER_Joker_DEAD_13,Speech_GAME_OVER_Joker/3615E00B,Speech,Gameplay & hints,Speech_GAME_OVER_Joker,ESN,Joker,Joker,1.258,28000,1,9521,4282086256d079b9,
BANK,1AC4F6B4,Speech_GAME_OVER_Mr_Freeze_FREEZE_new,Speech_GAME_OVER_Mr_Freeze/1AC4F6B4,Speech,Gameplay & hints,Speech_GAME_OVER_Mr_Freeze,INT,,Mr. Freeze,2.750,44100,3,58665,0f7610cc9079b4d3, BANK,1AC4F6B4,Speech_GAME_OVER_Mr_Freeze_FREEZE_new,Speech_GAME_OVER_Mr_Freeze/1AC4F6B4,Speech,Gameplay & hints,Speech_GAME_OVER_Mr_Freeze,INT,,Mr. Freeze,2.750,44100,3,58665,0f7610cc9079b4d3,
BANK,1D9BDA58,Speech_GAME_OVER_Mr_Freeze_FREEZE_new,Speech_GAME_OVER_Mr_Freeze/1D9BDA58,Speech,Gameplay & hints,Speech_GAME_OVER_Mr_Freeze,FRA,,Mr. Freeze,2.447,44100,1,19577,3e34a16458bf6326, BANK,1D9BDA58,Speech_GAME_OVER_Mr_Freeze_FREEZE_new,Speech_GAME_OVER_Mr_Freeze/1D9BDA58,Speech,Gameplay & hints,Speech_GAME_OVER_Mr_Freeze,FRA,,Mr. Freeze,2.447,44100,1,19577,3e34a16458bf6326,
BANK,3B38366F,Speech_GAME_OVER_Mr_Freeze_FREEZE_new,Speech_GAME_OVER_Mr_Freeze/3B38366F,Speech,Gameplay & hints,Speech_GAME_OVER_Mr_Freeze,ITA,,Mr. Freeze,2.826,44100,1,18356,002437e9e096ad72, BANK,3B38366F,Speech_GAME_OVER_Mr_Freeze_FREEZE_new,Speech_GAME_OVER_Mr_Freeze/3B38366F,Speech,Gameplay & hints,Speech_GAME_OVER_Mr_Freeze,ITA,,Mr. Freeze,2.826,44100,1,18356,002437e9e096ad72,
BANK,3481719C,Speech_GAME_OVER_Mr_Freeze_FREEZE_new,Speech_GAME_OVER_Mr_Freeze/3481719C,Speech,Gameplay & hints,Speech_GAME_OVER_Mr_Freeze,DEU,,Mr. Freeze,2.926,44100,1,21183,1ee5dc61590ea268, BANK,3481719C,Speech_GAME_OVER_Mr_Freeze_FREEZE_new,Speech_GAME_OVER_Mr_Freeze/3481719C,Speech,Gameplay & hints,Speech_GAME_OVER_Mr_Freeze,DEU,,Mr. Freeze,2.926,44100,1,21183,1ee5dc61590ea268,
BANK,0D2CE9E1,Speech_GAME_OVER_Mr_Freeze_FREEZE_new,Speech_GAME_OVER_Mr_Freeze/0D2CE9E1,Speech,Gameplay & hints,Speech_GAME_OVER_Mr_Freeze,ESN,,Mr. Freeze,2.576,44100,1,19639,55ded8c51a05fd16, BANK,0D2CE9E1,Speech_GAME_OVER_Mr_Freeze_FREEZE_new,Speech_GAME_OVER_Mr_Freeze/0D2CE9E1,Speech,Gameplay & hints,Speech_GAME_OVER_Mr_Freeze,ESN,,Mr. Freeze,2.576,44100,1,19639,55ded8c51a05fd16,
BANK,23647FF3,Speech_GAME_OVER_Talia_al_Ghul_Dead_Demon,Speech_GAME_OVER_Talia_al_Ghul/23647FF3,Speech,Gameplay & hints,Speech_GAME_OVER_Talia_al_Ghul,FRA,,Talia al Ghul,1.836,28000,1,14387,a0487f77e650ec00, BANK,23647FF3,Speech_GAME_OVER_Talia_al_Ghul_Dead_Demon,Speech_GAME_OVER_Talia_al_Ghul/23647FF3,Speech,Gameplay & hints,Speech_GAME_OVER_Talia_al_Ghul,FRA,Talia al Ghul,Talia al Ghul,1.836,28000,1,14387,a0487f77e650ec00,
BANK,0173EC0D,Speech_GAME_OVER_Talia_al_Ghul_Dead_Demon,Speech_GAME_OVER_Talia_al_Ghul/0173EC0D,Speech,Gameplay & hints,Speech_GAME_OVER_Talia_al_Ghul,ITA,,Talia al Ghul,2.095,28000,1,15228,e60c97bbb7839e0a, BANK,0173EC0D,Speech_GAME_OVER_Talia_al_Ghul_Dead_Demon,Speech_GAME_OVER_Talia_al_Ghul/0173EC0D,Speech,Gameplay & hints,Speech_GAME_OVER_Talia_al_Ghul,ITA,Talia al Ghul,Talia al Ghul,2.095,28000,1,15228,e60c97bbb7839e0a,
BANK,07AE2F63,Speech_GAME_OVER_Talia_al_Ghul_Dead_Demon,Speech_GAME_OVER_Talia_al_Ghul/07AE2F63,Speech,Gameplay & hints,Speech_GAME_OVER_Talia_al_Ghul,ESN,,Talia al Ghul,1.924,28000,1,14521,b3b9c78725afa4d3, BANK,07AE2F63,Speech_GAME_OVER_Talia_al_Ghul_Dead_Demon,Speech_GAME_OVER_Talia_al_Ghul/07AE2F63,Speech,Gameplay & hints,Speech_GAME_OVER_Talia_al_Ghul,ESN,Talia al Ghul,Talia al Ghul,1.924,28000,1,14521,b3b9c78725afa4d3,
BANK,2EF4A47C,Speech_GAME_OVER_Two_Face_Question,Speech_GAME_OVER_Two_Face/2EF4A47C,Speech,Gameplay & hints,Speech_GAME_OVER_Two_Face,INT,,,1.463,44100,3,32957,0bc9366548a9daa2, BANK,2EF4A47C,Speech_GAME_OVER_Two_Face_Question,Speech_GAME_OVER_Two_Face/2EF4A47C,Speech,Gameplay & hints,Speech_GAME_OVER_Two_Face,INT,Two-Face,,1.463,44100,3,32957,0bc9366548a9daa2,
BANK,01ED1FEB,Speech_GAME_OVER_Two_Face_Question,Speech_GAME_OVER_Two_Face/01ED1FEB,Speech,Gameplay & hints,Speech_GAME_OVER_Two_Face,FRA,,,1.597,28000,1,11484,ec2249942345ac00, BANK,01ED1FEB,Speech_GAME_OVER_Two_Face_Question,Speech_GAME_OVER_Two_Face/01ED1FEB,Speech,Gameplay & hints,Speech_GAME_OVER_Two_Face,FRA,Two-Face,,1.597,28000,1,11484,ec2249942345ac00,
BANK,25E33254,Speech_GAME_OVER_Two_Face_Question,Speech_GAME_OVER_Two_Face/25E33254,Speech,Gameplay & hints,Speech_GAME_OVER_Two_Face,ITA,,,1.390,28000,1,11300,c538dd16556b67d5, BANK,25E33254,Speech_GAME_OVER_Two_Face_Question,Speech_GAME_OVER_Two_Face/25E33254,Speech,Gameplay & hints,Speech_GAME_OVER_Two_Face,ITA,Two-Face,,1.390,28000,1,11300,c538dd16556b67d5,
BANK,34CCE5AC,Speech_GAME_OVER_Two_Face_Question,Speech_GAME_OVER_Two_Face/34CCE5AC,Speech,Gameplay & hints,Speech_GAME_OVER_Two_Face,DEU,,,1.463,28000,1,11168,859d6637c812a421, BANK,34CCE5AC,Speech_GAME_OVER_Two_Face_Question,Speech_GAME_OVER_Two_Face/34CCE5AC,Speech,Gameplay & hints,Speech_GAME_OVER_Two_Face,DEU,Two-Face,,1.463,28000,1,11168,859d6637c812a421,
BANK,34F10C93,Speech_GAME_OVER_Two_Face_Question,Speech_GAME_OVER_Two_Face/34F10C93,Speech,Gameplay & hints,Speech_GAME_OVER_Two_Face,ESN,,,1.236,28000,1,9068,d62fb0568bcc9b23, BANK,34F10C93,Speech_GAME_OVER_Two_Face_Question,Speech_GAME_OVER_Two_Face/34F10C93,Speech,Gameplay & hints,Speech_GAME_OVER_Two_Face,ESN,Two-Face,,1.236,28000,1,9068,d62fb0568bcc9b23,
BANK,38BD88BC,Speech_GAME_OVER_Two_Face_Reply_Bat_2,Speech_GAME_OVER_Two_Face/38BD88BC,Speech,Gameplay & hints,Speech_GAME_OVER_Two_Face,INT,,,1.730,44100,3,39669,2b265c6efc35fd09, BANK,38BD88BC,Speech_GAME_OVER_Two_Face_Reply_Bat_2,Speech_GAME_OVER_Two_Face/38BD88BC,Speech,Gameplay & hints,Speech_GAME_OVER_Two_Face,INT,Two-Face,,1.730,44100,3,39669,2b265c6efc35fd09,
BANK,2DD25DC9,Speech_GAME_OVER_Two_Face_Reply_Bat_2,Speech_GAME_OVER_Two_Face/2DD25DC9,Speech,Gameplay & hints,Speech_GAME_OVER_Two_Face,FRA,,,1.862,28000,1,14695,c503e36bcf0b9ef0, BANK,2DD25DC9,Speech_GAME_OVER_Two_Face_Reply_Bat_2,Speech_GAME_OVER_Two_Face/2DD25DC9,Speech,Gameplay & hints,Speech_GAME_OVER_Two_Face,FRA,Two-Face,,1.862,28000,1,14695,c503e36bcf0b9ef0,
BANK,266B4A26,Speech_GAME_OVER_Two_Face_Reply_Bat_2,Speech_GAME_OVER_Two_Face/266B4A26,Speech,Gameplay & hints,Speech_GAME_OVER_Two_Face,ITA,,,1.772,28000,1,13666,28f64eb52ca4cda3, BANK,266B4A26,Speech_GAME_OVER_Two_Face_Reply_Bat_2,Speech_GAME_OVER_Two_Face/266B4A26,Speech,Gameplay & hints,Speech_GAME_OVER_Two_Face,ITA,Two-Face,,1.772,28000,1,13666,28f64eb52ca4cda3,
BANK,27071B28,Speech_GAME_OVER_Two_Face_Reply_Bat_2,Speech_GAME_OVER_Two_Face/27071B28,Speech,Gameplay & hints,Speech_GAME_OVER_Two_Face,DEU,,,1.730,28000,1,13012,a849e1f91600de98, BANK,27071B28,Speech_GAME_OVER_Two_Face_Reply_Bat_2,Speech_GAME_OVER_Two_Face/27071B28,Speech,Gameplay & hints,Speech_GAME_OVER_Two_Face,DEU,Two-Face,,1.730,28000,1,13012,a849e1f91600de98,
BANK,309FF2EE,Speech_GAME_OVER_Two_Face_Reply_Bat_2,Speech_GAME_OVER_Two_Face/309FF2EE,Speech,Gameplay & hints,Speech_GAME_OVER_Two_Face,ESN,,,1.861,28000,1,14258,3498e68019b17dc3, BANK,309FF2EE,Speech_GAME_OVER_Two_Face_Reply_Bat_2,Speech_GAME_OVER_Two_Face/309FF2EE,Speech,Gameplay & hints,Speech_GAME_OVER_Two_Face,ESN,Two-Face,,1.861,28000,1,14258,3498e68019b17dc3,
BANK,07615F5F,Speech_GAME_OVER_Two_Face_Reply_Cat_1,Speech_GAME_OVER_Two_Face/07615F5F,Speech,Gameplay & hints,Speech_GAME_OVER_Two_Face,ESN,,Catwoman,2.005,28000,1,14774,ba2ab6a3caf28194, BANK,07615F5F,Speech_GAME_OVER_Two_Face_Reply_Cat_1,Speech_GAME_OVER_Two_Face/07615F5F,Speech,Gameplay & hints,Speech_GAME_OVER_Two_Face,ESN,,Catwoman,2.005,28000,1,14774,ba2ab6a3caf28194,
BANK,14F358D6,Speech_INTERROGATION_CH5_MAYOR_01_04b,Speech_INTERROGATION_CH5_Mayor_01/14F358D6,Speech,Interrogations,Speech_INTERROGATION_CH5_Mayor_01,,,,0.691,44100,1,4876,6c1dee7c8f96436f, BANK,14F358D6,Speech_INTERROGATION_CH5_MAYOR_01_04b,Speech_INTERROGATION_CH5_Mayor_01/14F358D6,Speech,Interrogations,Speech_INTERROGATION_CH5_Mayor_01,,,,0.691,44100,1,4876,6c1dee7c8f96436f,
BANK,2FD9AB10,Speech_MAP_Deadshot_find_matching_1_CHAR_BATMAN_Deadshot_find_matching_01,Speech_MAP_Deadshot_find_matching_1/2FD9AB10,Speech,Gameplay & hints,Speech_MAP_Deadshot_find_matching_1,INT,,Deadshot; Batman,5.160,44100,1,48628,a7d5135f109446df, BANK,2FD9AB10,Speech_MAP_Deadshot_find_matching_1_CHAR_BATMAN_Deadshot_find_matching_01,Speech_MAP_Deadshot_find_matching_1/2FD9AB10,Speech,Gameplay & hints,Speech_MAP_Deadshot_find_matching_1,INT,,Deadshot; Batman,5.160,44100,1,48628,a7d5135f109446df,
@@ -14817,22 +14817,22 @@ BANK,141EEA20,Speech_SEQUENCE_CH0_CATWOMAN_INTRO_08,Speech_SEQUENCE_CH0_CATWOMAN
BANK,0496BF7C,Speech_SEQUENCE_CH0_CATWOMAN_INTRO_08,Speech_SEQUENCE_CH0_CATWOMAN_INTRO/0496BF7C,Speech,Story missions,Speech_SEQUENCE_CH0_CATWOMAN_INTRO,ITA,,Catwoman,1.907,28000,1,14278,e63c8b66f70ecf54, BANK,0496BF7C,Speech_SEQUENCE_CH0_CATWOMAN_INTRO_08,Speech_SEQUENCE_CH0_CATWOMAN_INTRO/0496BF7C,Speech,Story missions,Speech_SEQUENCE_CH0_CATWOMAN_INTRO,ITA,,Catwoman,1.907,28000,1,14278,e63c8b66f70ecf54,
BANK,0A9933FA,Speech_SEQUENCE_CH0_CATWOMAN_INTRO_08,Speech_SEQUENCE_CH0_CATWOMAN_INTRO/0A9933FA,Speech,Story missions,Speech_SEQUENCE_CH0_CATWOMAN_INTRO,DEU,,Catwoman,1.907,28000,1,12844,20e101e6f36702c6, BANK,0A9933FA,Speech_SEQUENCE_CH0_CATWOMAN_INTRO_08,Speech_SEQUENCE_CH0_CATWOMAN_INTRO/0A9933FA,Speech,Story missions,Speech_SEQUENCE_CH0_CATWOMAN_INTRO,DEU,,Catwoman,1.907,28000,1,12844,20e101e6f36702c6,
BANK,1BD54DDE,Speech_SEQUENCE_CH0_CATWOMAN_INTRO_08,Speech_SEQUENCE_CH0_CATWOMAN_INTRO/1BD54DDE,Speech,Story missions,Speech_SEQUENCE_CH0_CATWOMAN_INTRO,ESN,,Catwoman,1.763,28000,1,12834,4d0ba4b1479279fe, BANK,1BD54DDE,Speech_SEQUENCE_CH0_CATWOMAN_INTRO_08,Speech_SEQUENCE_CH0_CATWOMAN_INTRO/1BD54DDE,Speech,Story missions,Speech_SEQUENCE_CH0_CATWOMAN_INTRO,ESN,,Catwoman,1.763,28000,1,12834,4d0ba4b1479279fe,
BANK,14112E39,Speech_SEQUENCE_CH2_RESCUE_DOC_01,Speech_SEQUENCE_CH2_RESCUE_DOC/14112E39,Speech,Story missions,Speech_SEQUENCE_CH2_RESCUE_DOC,INT,,Doctor,1.031,44100,1,8548,a75d7bcfa77efdb3, BANK,14112E39,Speech_SEQUENCE_CH2_RESCUE_DOC_01,Speech_SEQUENCE_CH2_RESCUE_DOC/14112E39,Speech,Story missions,Speech_SEQUENCE_CH2_RESCUE_DOC,INT,Batman,Doctor,1.031,44100,1,8548,a75d7bcfa77efdb3,
BANK,045C2B58,Speech_SEQUENCE_CH2_RESCUE_DOC_01,Speech_SEQUENCE_CH2_RESCUE_DOC/045C2B58,Speech,Story missions,Speech_SEQUENCE_CH2_RESCUE_DOC,FRA,,Doctor,1.071,28000,1,6542,4b3e3f7aa9d1a83b, BANK,045C2B58,Speech_SEQUENCE_CH2_RESCUE_DOC_01,Speech_SEQUENCE_CH2_RESCUE_DOC/045C2B58,Speech,Story missions,Speech_SEQUENCE_CH2_RESCUE_DOC,FRA,Batman,Doctor,1.071,28000,1,6542,4b3e3f7aa9d1a83b,
BANK,3A312CE8,Speech_SEQUENCE_CH2_RESCUE_DOC_01,Speech_SEQUENCE_CH2_RESCUE_DOC/3A312CE8,Speech,Story missions,Speech_SEQUENCE_CH2_RESCUE_DOC,ITA,,Doctor,1.075,28000,1,8831,40ffdfe34956c897, BANK,3A312CE8,Speech_SEQUENCE_CH2_RESCUE_DOC_01,Speech_SEQUENCE_CH2_RESCUE_DOC/3A312CE8,Speech,Story missions,Speech_SEQUENCE_CH2_RESCUE_DOC,ITA,Batman,Doctor,1.075,28000,1,8831,40ffdfe34956c897,
BANK,3808FEFE,Speech_SEQUENCE_CH2_RESCUE_DOC_01,Speech_SEQUENCE_CH2_RESCUE_DOC/3808FEFE,Speech,Story missions,Speech_SEQUENCE_CH2_RESCUE_DOC,DEU,,Doctor,1.071,28000,1,8140,8e5f47ab89719263, BANK,3808FEFE,Speech_SEQUENCE_CH2_RESCUE_DOC_01,Speech_SEQUENCE_CH2_RESCUE_DOC/3808FEFE,Speech,Story missions,Speech_SEQUENCE_CH2_RESCUE_DOC,DEU,Batman,Doctor,1.071,28000,1,8140,8e5f47ab89719263,
BANK,3CEB24BB,Speech_SEQUENCE_CH2_RESCUE_DOC_01,Speech_SEQUENCE_CH2_RESCUE_DOC/3CEB24BB,Speech,Story missions,Speech_SEQUENCE_CH2_RESCUE_DOC,ESN,,Doctor,0.901,28000,1,8881,4f73e5c03f3693de, BANK,3CEB24BB,Speech_SEQUENCE_CH2_RESCUE_DOC_01,Speech_SEQUENCE_CH2_RESCUE_DOC/3CEB24BB,Speech,Story missions,Speech_SEQUENCE_CH2_RESCUE_DOC,ESN,Batman,Doctor,0.901,28000,1,8881,4f73e5c03f3693de,
BANK,2A2DEC79,Speech_SEQUENCE_CH3_MUSEUM_A1_BM_FREEZESUIT_01,Speech_SEQUENCE_CH3_MUSEUM_A1_BM_FREEZESUIT/2A2DEC79,Speech,Story missions,Speech_SEQUENCE_CH3_MUSEUM_A1_BM_FREEZESUIT,ESN,,Batman; Mr. Freeze,2.024,28000,1,16548,e1430b84337ad106, BANK,2A2DEC79,Speech_SEQUENCE_CH3_MUSEUM_A1_BM_FREEZESUIT_01,Speech_SEQUENCE_CH3_MUSEUM_A1_BM_FREEZESUIT/2A2DEC79,Speech,Story missions,Speech_SEQUENCE_CH3_MUSEUM_A1_BM_FREEZESUIT,ESN,,Batman; Mr. Freeze,2.024,28000,1,16548,e1430b84337ad106,
BANK,20FB1929,Speech_SEQUENCE_CH3_MUSEUM_B1_PENGUIN_VENOM_HENCH_01,Speech_SEQUENCE_CH3_MUSEUM_B1_PENGUIN_VENOM_HENCH/20FB1929,Speech,Story missions,Speech_SEQUENCE_CH3_MUSEUM_B1_PENGUIN_VENOM_HENCH,INT,,Penguin,2.545,44100,1,21615,8c3745e89fec1a07, BANK,20FB1929,Speech_SEQUENCE_CH3_MUSEUM_B1_PENGUIN_VENOM_HENCH_01,Speech_SEQUENCE_CH3_MUSEUM_B1_PENGUIN_VENOM_HENCH/20FB1929,Speech,Story missions,Speech_SEQUENCE_CH3_MUSEUM_B1_PENGUIN_VENOM_HENCH,INT,Penguin,Penguin,2.545,44100,1,21615,8c3745e89fec1a07,
BANK,32FEBF22,Speech_SEQUENCE_CH3_MUSEUM_B1_PENGUIN_VENOM_HENCH_01,Speech_SEQUENCE_CH3_MUSEUM_B1_PENGUIN_VENOM_HENCH/32FEBF22,Speech,Story missions,Speech_SEQUENCE_CH3_MUSEUM_B1_PENGUIN_VENOM_HENCH,FRA,,Penguin,2.586,28000,1,17858,b6655fbf823b6a03, BANK,32FEBF22,Speech_SEQUENCE_CH3_MUSEUM_B1_PENGUIN_VENOM_HENCH_01,Speech_SEQUENCE_CH3_MUSEUM_B1_PENGUIN_VENOM_HENCH/32FEBF22,Speech,Story missions,Speech_SEQUENCE_CH3_MUSEUM_B1_PENGUIN_VENOM_HENCH,FRA,Penguin,Penguin,2.586,28000,1,17858,b6655fbf823b6a03,
BANK,1C5086AC,Speech_SEQUENCE_CH3_MUSEUM_B1_PENGUIN_VENOM_HENCH_01,Speech_SEQUENCE_CH3_MUSEUM_B1_PENGUIN_VENOM_HENCH/1C5086AC,Speech,Story missions,Speech_SEQUENCE_CH3_MUSEUM_B1_PENGUIN_VENOM_HENCH,ITA,,Penguin,2.596,28000,1,18998,5d5e9cec61c04de0, BANK,1C5086AC,Speech_SEQUENCE_CH3_MUSEUM_B1_PENGUIN_VENOM_HENCH_01,Speech_SEQUENCE_CH3_MUSEUM_B1_PENGUIN_VENOM_HENCH/1C5086AC,Speech,Story missions,Speech_SEQUENCE_CH3_MUSEUM_B1_PENGUIN_VENOM_HENCH,ITA,Penguin,Penguin,2.596,28000,1,18998,5d5e9cec61c04de0,
BANK,057E52DD,Speech_SEQUENCE_CH3_MUSEUM_B1_PENGUIN_VENOM_HENCH_01,Speech_SEQUENCE_CH3_MUSEUM_B1_PENGUIN_VENOM_HENCH/057E52DD,Speech,Story missions,Speech_SEQUENCE_CH3_MUSEUM_B1_PENGUIN_VENOM_HENCH,DEU,,Penguin,2.586,28000,1,19398,6e98a57e0eb693c4, BANK,057E52DD,Speech_SEQUENCE_CH3_MUSEUM_B1_PENGUIN_VENOM_HENCH_01,Speech_SEQUENCE_CH3_MUSEUM_B1_PENGUIN_VENOM_HENCH/057E52DD,Speech,Story missions,Speech_SEQUENCE_CH3_MUSEUM_B1_PENGUIN_VENOM_HENCH,DEU,Penguin,Penguin,2.586,28000,1,19398,6e98a57e0eb693c4,
BANK,3B667571,Speech_SEQUENCE_CH3_MUSEUM_B1_PENGUIN_VENOM_HENCH_01,Speech_SEQUENCE_CH3_MUSEUM_B1_PENGUIN_VENOM_HENCH/3B667571,Speech,Story missions,Speech_SEQUENCE_CH3_MUSEUM_B1_PENGUIN_VENOM_HENCH,ESN,,Penguin,2.448,28000,1,18027,b99b40c9639f8983, BANK,3B667571,Speech_SEQUENCE_CH3_MUSEUM_B1_PENGUIN_VENOM_HENCH_01,Speech_SEQUENCE_CH3_MUSEUM_B1_PENGUIN_VENOM_HENCH/3B667571,Speech,Story missions,Speech_SEQUENCE_CH3_MUSEUM_B1_PENGUIN_VENOM_HENCH,ESN,Penguin,Penguin,2.448,28000,1,18027,b99b40c9639f8983,
BANK,3B3AD732,Speech_SEQUENCE_TWOFACE_END2_05,Speech_SEQUENCE_TWOFACE_END2/3B3AD732,Speech,Story missions,Speech_SEQUENCE_TWOFACE_END2,INT,,Two-Face,0.960,44100,1,7760,ce1badd5de22d5d4, BANK,3B3AD732,Speech_SEQUENCE_TWOFACE_END2_05,Speech_SEQUENCE_TWOFACE_END2/3B3AD732,Speech,Story missions,Speech_SEQUENCE_TWOFACE_END2,INT,Two-Face,Two-Face,0.960,44100,1,7760,ce1badd5de22d5d4,
BANK,3E7514E2,Speech_SEQUENCE_TWOFACE_END2_05,Speech_SEQUENCE_TWOFACE_END2/3E7514E2,Speech,Story missions,Speech_SEQUENCE_TWOFACE_END2,FRA,,Two-Face,1.049,28000,1,6311,99bef837e8302411, BANK,3E7514E2,Speech_SEQUENCE_TWOFACE_END2_05,Speech_SEQUENCE_TWOFACE_END2/3E7514E2,Speech,Story missions,Speech_SEQUENCE_TWOFACE_END2,FRA,Two-Face,Two-Face,1.049,28000,1,6311,99bef837e8302411,
BANK,14CC1583,Speech_SEQUENCE_TWOFACE_END2_05,Speech_SEQUENCE_TWOFACE_END2/14CC1583,Speech,Story missions,Speech_SEQUENCE_TWOFACE_END2,ITA,,Two-Face,0.960,28000,1,6860,f324fe563584eaed, BANK,14CC1583,Speech_SEQUENCE_TWOFACE_END2_05,Speech_SEQUENCE_TWOFACE_END2/14CC1583,Speech,Story missions,Speech_SEQUENCE_TWOFACE_END2,ITA,Two-Face,Two-Face,0.960,28000,1,6860,f324fe563584eaed,
BANK,28F62D59,Speech_SEQUENCE_TWOFACE_END2_05,Speech_SEQUENCE_TWOFACE_END2/28F62D59,Speech,Story missions,Speech_SEQUENCE_TWOFACE_END2,DEU,,Two-Face,0.960,28000,1,6515,7108d991488807c6, BANK,28F62D59,Speech_SEQUENCE_TWOFACE_END2_05,Speech_SEQUENCE_TWOFACE_END2/28F62D59,Speech,Story missions,Speech_SEQUENCE_TWOFACE_END2,DEU,Two-Face,Two-Face,0.960,28000,1,6515,7108d991488807c6,
BANK,32D76E1C,Speech_SEQUENCE_TWOFACE_END2_05,Speech_SEQUENCE_TWOFACE_END2/32D76E1C,Speech,Story missions,Speech_SEQUENCE_TWOFACE_END2,ESN,,Two-Face,1.017,28000,1,7232,3eff15f4f9a7d8f5, BANK,32D76E1C,Speech_SEQUENCE_TWOFACE_END2_05,Speech_SEQUENCE_TWOFACE_END2/32D76E1C,Speech,Story missions,Speech_SEQUENCE_TWOFACE_END2,ESN,Two-Face,Two-Face,1.017,28000,1,7232,3eff15f4f9a7d8f5,
BANK,1F7A6D0F,Speech_STEEL_B1_CH2_GRUNT_01,Speech_STEEL_B1_CH2_GRUNT/1F7A6D0F,Speech,Story missions,Speech_STEEL_B1_CH2_GRUNT,INT,,,0.523,44100,1,4294,052817cde90ab5a0, BANK,1F7A6D0F,Speech_STEEL_B1_CH2_GRUNT_01,Speech_STEEL_B1_CH2_GRUNT/1F7A6D0F,Speech,Story missions,Speech_STEEL_B1_CH2_GRUNT,INT,,,0.523,44100,1,4294,052817cde90ab5a0,
BANK,3BFCB495,Speech_STEEL_B1_CH2_GRUNT_01,Speech_STEEL_B1_CH2_GRUNT/3BFCB495,Speech,Story missions,Speech_STEEL_B1_CH2_GRUNT,FRA,,,0.541,44100,1,4343,40d1717706422c9b, BANK,3BFCB495,Speech_STEEL_B1_CH2_GRUNT_01,Speech_STEEL_B1_CH2_GRUNT/3BFCB495,Speech,Story missions,Speech_STEEL_B1_CH2_GRUNT,FRA,,,0.541,44100,1,4343,40d1717706422c9b,
BANK,327E0165,Speech_STEEL_B1_CH2_GRUNT_01,Speech_STEEL_B1_CH2_GRUNT/327E0165,Speech,Story missions,Speech_STEEL_B1_CH2_GRUNT,ITA,,,0.541,44100,1,4343,40d1717706422c9b, BANK,327E0165,Speech_STEEL_B1_CH2_GRUNT_01,Speech_STEEL_B1_CH2_GRUNT/327E0165,Speech,Story missions,Speech_STEEL_B1_CH2_GRUNT,ITA,,,0.541,44100,1,4343,40d1717706422c9b,
Can't render this file because it is too large.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -6,7 +6,7 @@
| `BANK_locations.csv.gz` | every stored copy of the `BANK` sounds, and the prefetch heads of speech lines (below) | | `BANK_locations.csv.gz` | every stored copy of the `BANK` sounds, and the prefetch heads of speech lines (below) |
| `SUB_<LANG>.csv` | subtitles of the speech lines, one file per language (11 languages; `docs/formats/subtitles.md`) | | `SUB_<LANG>.csv` | subtitles of the speech lines, one file per language (11 languages; `docs/formats/subtitles.md`) |
| `SUB_locations.csv.gz` | every stored copy of each subtitle string (dialogue objects in the packages) | | `SUB_locations.csv.gz` | every stored copy of each subtitle string (dialogue objects in the packages) |
| `characters.csv` | `name,character`: verified speaker per sound name (language independent) | | `characters.csv` | `name,character,language`: verified speaker per line name (empty `language`: every language; `ITA`: an ITA position name, for lines without a game line name) |
| `index.json` | per archive: fingerprint of the game files the CSV was built from (`ackit/game.py: wad_fingerprint`, `ackit/banks.py: game_fingerprint`) and counts | | `index.json` | per archive: fingerprint of the game files the CSV was built from (`ackit/game.py: wad_fingerprint`, `ackit/banks.py: game_fingerprint`) and counts |
| `source/<lang>/*.txt` | **the curated original lists** (one file per character, one wemscan-style file name per line, e.g. `Speech_TAPE_JOKER_1_4.wem`). `Files.txt` = all files, `Stats.txt` = counts, `Checkpoint.txt` = progress marker. Never edited by tools. | | `source/<lang>/*.txt` | **the curated original lists** (one file per character, one wemscan-style file name per line, e.g. `Speech_TAPE_JOKER_1_4.wem`). `Files.txt` = all files, `Stats.txt` = counts, `Checkpoint.txt` = progress marker. Never edited by tools. |
@@ -17,8 +17,8 @@ All CSVs are UTF-8 with a header row. They contain only names and metadata (no g
|--------|---------| |--------|---------|
| `archive` | `ITA`, `INT`, ..., `SFX` or `BANK` | | `archive` | `ITA`, `INT`, ..., `SFX` or `BANK` |
| `target` | location: `HASH` (WAD entry with one WEM), `HASH:i` (i-th variation, 0-based), `PACK/MEDIA` (music stream pack), `MEDIA` (BANK: Wwise media ID) | | `target` | location: `HASH` (WAD entry with one WEM), `HASH:i` (i-th variation, 0-based), `PACK/MEDIA` (music stream pack), `MEDIA` (BANK: Wwise media ID) |
| `name` | display name: `NAME`, `NAME_1..n` for variations (`NAME#i` when `NAME_i` is already another entry's own name); BANK: the Wwise event that plays it (`Play_..._i`) or `<Bank>_<n>` | | `name` | display name. Speech: the game's line name (the speech event, e.g. `Speech_TAPE_JOKER_1_04`), the same line in every language; lines no event plays keep `NAME` / `NAME_i` (position). SFX: `NAME`, `NAME_1..n`. BANK: the Wwise event that plays it (`Play_..._i`) or `<Bank>_<n>` |
| `aliases` | other accepted names, `\|`-separated (`NAME_1` for single entries, `NAME#i` for variations, `<Bank>/<MEDIA>` for BANK) | | `aliases` | other accepted names, `\|`-separated: `NAME#i` = i-th WEM of the entry in this language's WAD (positions differ between languages), the entry name for single entries, `<Bank>/<MEDIA>` for BANK |
| `group` | Speech, Music, Ambience, SFX, Unknown (`docs/categories.md`) | | `group` | Speech, Music, Ambience, SFX, Unknown (`docs/categories.md`) |
| `category` | finer category (`docs/categories.md`) | | `category` | finer category (`docs/categories.md`) |
| `bank` | BANK: the soundbank holding the sound (first by name if several do); empty for WAD sounds | | `bank` | BANK: the soundbank holding the sound (first by name if several do); empty for WAD sounds |

View File

@@ -1,4 +1,7 @@
speech,line,text,room,enc,sound speech,line,text,room,enc,sound
Got_enough_trophies_05,0,"Hier ist dein letzes Rätsel, Dark Knight. Zugegeben, ich hatte nicht damit gerechnet, diesen Tag noch erleben zu dürfen, aber egal.",131,a,
Got_enough_trophies_05,1,"Wenn du dieses Rätsel löst, schaltest du eine Herausforderung frei, die so abwegig ist, dass es nur eine Frage der Zeit sein wird,",130,a,
Got_enough_trophies_05,2,bis du und die Wache verbrennen. Bist du bereit?,48,a,
Speech_AUGMENTED_Challenge_Complete_01,0,Erweitertes Realitäts-Training abgeschlossen.,45,a,DEU:3BC50710 Speech_AUGMENTED_Challenge_Complete_01,0,Erweitertes Realitäts-Training abgeschlossen.,45,a,DEU:3BC50710
Speech_AUGMENTED_Challenge_Fail_01,0,Erweitertes Realitäts-Training fehlgeschlagen.,46,a,DEU:D1FDC955 Speech_AUGMENTED_Challenge_Fail_01,0,Erweitertes Realitäts-Training fehlgeschlagen.,46,a,DEU:D1FDC955
Speech_AUGMENTED_Challenge_start_01,0,Erweitertes Realitäts-Training aktiviert.,41,a,DEU:7F82685B Speech_AUGMENTED_Challenge_start_01,0,Erweitertes Realitäts-Training aktiviert.,41,a,DEU:7F82685B
@@ -5424,6 +5427,17 @@ Speech_PRED_TYGER2_NewGenric_Smoke_escape_02,0,"Zielperson setzt Nebel ein, um z
Speech_PRED_TYGER2_NewGenric_Smoke_react_01,0,Die Zielperson hat Nebel eingesetzt.,36,a,DEU:A8DCB254:4 Speech_PRED_TYGER2_NewGenric_Smoke_react_01,0,Die Zielperson hat Nebel eingesetzt.,36,a,DEU:A8DCB254:4
Speech_PRED_TYGER2_NewGenric_Smoke_react_02,0,Die Zielperson setzt Nebel ein.,31,a,DEU:A8DCB254:9 Speech_PRED_TYGER2_NewGenric_Smoke_react_02,0,Die Zielperson setzt Nebel ein.,31,a,DEU:A8DCB254:9
Speech_PRED_TYGER2_NewGenric_Smoke_react_04,0,Die Zielperson hat Nebel eingesetzt. Versuche Ziel erneut zu orten.,67,a,DEU:A8DCB254:1 Speech_PRED_TYGER2_NewGenric_Smoke_react_04,0,Die Zielperson hat Nebel eingesetzt. Versuche Ziel erneut zu orten.,67,a,DEU:A8DCB254:1
Speech_RADIO_SCAN_CH1_VV_01,0,"Guten Abend, Gotham. Hier spricht Vicki Vale.",45,a,
Speech_RADIO_SCAN_CH1_VV_01,1,Vor ein paar Stunden haben wir Bilder gezeigt wie Bruce Wayne festgenommen und nach Arkham City verschleppt wurde.,114,a,
Speech_RADIO_SCAN_CH1_VV_02,0,"Bisher gab es aus dem Büro des Bürgermeisters noch keine Stellungnahme dazu, wieso man so heftig auf einen friedlichen Protest reagiert hat.",140,a,
Speech_RADIO_SCAN_CH1_VV_03,0,Was wird mit Mr. Wayne hinter diesen Mauern geschehen?,54,a,
Speech_RADIO_SCAN_CH1_VV_03,1,"Der international bekannte Playboy wird es dort mit Dieben, Mördern und Kannibalen zu tun bekommen. Hat er Überlebenschancen?",125,a,
Speech_RADIO_SCAN_CH1_VV_05,0,Für Gotham Live berichtete Vicki Vale. Mehr dazu später.,56,a,
Speech_RADIO_SCAN_CH2_VV_Church_01,0,"Richtig, Gotham. Was Sie hier sehen sind dramatische Bilder der aktuellen Geschehnisse, live aus Arkham City.",109,a,
Speech_RADIO_SCAN_CH2_VV_Church_02,0,"Der ganze Glockenturm scheint explodiert zu sein. Wie und warum es dazu kam, ist zur Zeit noch unbekannt.",105,a,
Speech_RADIO_SCAN_CH2_VV_Church_03,0,"Wir wissen zur Zeit nur, dass Batman sich anscheinend auch innerhalb der Mauern von Arkham City aufhält.",104,a,
Speech_RADIO_SCAN_CH2_VV_Church_04,0,Wieso er dort ist? Zur Zeit lässt sich darüber nur spekulieren. Ist Batman mit Professor Strange und seinen Plänen für Arkham City unzufrieden?,143,a,
Speech_RADIO_SCAN_CH2_VV_Church_04,1,"Plant er etwas dagegen zu unternehmen? Nun, es wird sich zeigen.",64,a,
Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_01,0,Was ist da draußen los? Eines der Störsignale ist gerade verschwunden!,70,a,DEU:ABAC53B2:2 Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_01,0,Was ist da draußen los? Eines der Störsignale ist gerade verschwunden!,70,a,DEU:ABAC53B2:2
Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_02,0,"Sorry, Mr. Cobblepot. Ich weiß nicht.",37,a,DEU:ABAC53B2:0 Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_02,0,"Sorry, Mr. Cobblepot. Ich weiß nicht.",37,a,DEU:ABAC53B2:0
Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_03,0,"Dann find's raus! Und während du das tust, überprüfe auch die anderen Störgeräte. Sonst komme ich nämlich runter und steck dir die Reste davon ...",146,a,DEU:ABAC53B2:1 Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_03,0,"Dann find's raus! Und während du das tust, überprüfe auch die anderen Störgeräte. Sonst komme ich nämlich runter und steck dir die Reste davon ...",146,a,DEU:ABAC53B2:1
@@ -5461,6 +5475,12 @@ Speech_RADIO_SCAN_CH6_VV_BM_Losing_lose_3,0,"Damit hat Batman nicht gerechnet. S
Speech_RADIO_SCAN_CH6_VV_BM_Winning_NorthEast,0,Von den Dini Towers wird nicht mehr geschossen. Ich kann auf dem Wohnhaus auch keine Scharfschützen mehr sehen.,111,a,DEU:C50CF9ED:1 Speech_RADIO_SCAN_CH6_VV_BM_Winning_NorthEast,0,Von den Dini Towers wird nicht mehr geschossen. Ich kann auf dem Wohnhaus auch keine Scharfschützen mehr sehen.,111,a,DEU:C50CF9ED:1
Speech_RADIO_SCAN_CH6_VV_BM_Winning_SouthEast,0,"Offenbar sind die Scharfschützen, die den Bereich von Südosten her gesichert haben verschwunden.",96,a,DEU:C50CF9ED:0 Speech_RADIO_SCAN_CH6_VV_BM_Winning_SouthEast,0,"Offenbar sind die Scharfschützen, die den Bereich von Südosten her gesichert haben verschwunden.",96,a,DEU:C50CF9ED:0
Speech_RADIO_SCAN_CH6_VV_BM_Winning_SouthEast,1,Vom Dach des Kirshen Gebäudes hört man nichts mehr. Entweder wurden sie alle abgezogen oder ausgeschaltet.,106,a,DEU:C50CF9ED:0 Speech_RADIO_SCAN_CH6_VV_BM_Winning_SouthEast,1,Vom Dach des Kirshen Gebäudes hört man nichts mehr. Entweder wurden sie alle abgezogen oder ausgeschaltet.,106,a,DEU:C50CF9ED:0
Speech_RADIO_SCAN_CH6_VV_COURT_01,0,"Das stimmt, Don. Die Insassen laufen frei herum und es gibt Gerüchte die besagen, dass der Bandenkrieg an Schärfe gewonnen hat.",127,a,
Speech_RADIO_SCAN_CH6_VV_COURT_02,0,Als regelmäßiger Zuschauer werden Sie sich sicher an mein Gespräch mit dem Bürgermeister erinnern.,98,a,
Speech_RADIO_SCAN_CH6_VV_COURT_02,1,"In dessen Verlauf hat er gesagt, dass man dabei den Waffenschmuggel nach Arkham City eindämmen will.",100,a,
Speech_RADIO_SCAN_CH6_VV_COURT_03,0,"Der Bürgermeister war in diesem Punkt sehr deutlich. Er sagte, dass jeglicher Besitz von Waffen im Quarantänebereichs illegal sei.",130,a,
Speech_RADIO_SCAN_CH6_VV_COURT_03,1,"Er versprach alles zu tun, um kleinere Ausbrüche von Anarchie niederzuschlagen.",79,a,
Speech_RADIO_SCAN_CH6_VV_COURT_04,0,Die Frage muss erlaubt sein. Sieht so ein kleinerer Ausbruch von Anarchie aus? Meiner persönlichen Meinung nach herrscht hier das blanke Chaos.,143,a,
Speech_RADIO_SCAN_CH6_VV_SniperIdles_1,0,"Ich melde mich hier mitten aus Arkham City und ich kann Ihnen bestätigen, dass hier Chaos herrscht.",99,a,DEU:F990D6DF:2 Speech_RADIO_SCAN_CH6_VV_SniperIdles_1,0,"Ich melde mich hier mitten aus Arkham City und ich kann Ihnen bestätigen, dass hier Chaos herrscht.",99,a,DEU:F990D6DF:2
Speech_RADIO_SCAN_CH6_VV_SniperIdles_3,0,"Hier spricht Vicki Vale, ich berichte live von den Zuständen in Arkham City.",76,a,DEU:F990D6DF:3 Speech_RADIO_SCAN_CH6_VV_SniperIdles_3,0,"Hier spricht Vicki Vale, ich berichte live von den Zuständen in Arkham City.",76,a,DEU:F990D6DF:3
Speech_RADIO_SCAN_CH6_VV_SniperIdles_4,0,"Falls jemand diese Übertragung empfangen sollte, bitte schicken Sie Hilfe.",74,a,DEU:F990D6DF:0 Speech_RADIO_SCAN_CH6_VV_SniperIdles_4,0,"Falls jemand diese Übertragung empfangen sollte, bitte schicken Sie Hilfe.",74,a,DEU:F990D6DF:0
@@ -5487,6 +5507,15 @@ Speech_RADIO_SCAN_CH8_Tyger_Choppers_Leaving_01,0,"Alle Flugeinheiten sofort umk
Speech_RADIO_SCAN_FIRST_copter_spot_BM_01,0,Hier spricht AIR TYGER 3. Haben Sichtkontakt zu Batman. Erwarten Befehle. Ende.,79,a,DEU:4374FCBB:1 Speech_RADIO_SCAN_FIRST_copter_spot_BM_01,0,Hier spricht AIR TYGER 3. Haben Sichtkontakt zu Batman. Erwarten Befehle. Ende.,79,a,DEU:4374FCBB:1
Speech_RADIO_SCAN_FIRST_copter_spot_BM_02,0,"Der ist harmlos. Weiterhin seine Aktionen im Auge behalten, aber nicht eingreifen. Mit Batman, haben wir etwas ganz besonderes vor.",131,a,DEU:4374FCBB:2 Speech_RADIO_SCAN_FIRST_copter_spot_BM_02,0,"Der ist harmlos. Weiterhin seine Aktionen im Auge behalten, aber nicht eingreifen. Mit Batman, haben wir etwas ganz besonderes vor.",131,a,DEU:4374FCBB:2
Speech_RADIO_SCAN_FIRST_copter_spot_BM_03,0,Bestätigt. Gehe wieder in Patrouillenformation. Ende.,53,a,DEU:4374FCBB:0 Speech_RADIO_SCAN_FIRST_copter_spot_BM_03,0,Bestätigt. Gehe wieder in Patrouillenformation. Ende.,53,a,DEU:4374FCBB:0
Speech_RADIO_SCAN_GCPD_CH0_Wayne_captured_01,0,"An alle Einheiten. Wir haben Informationen, dass Bruce Wayne von TYGER-Wachen festgenommen und nach Arkham City gebracht wurde.",127,a,
Speech_RADIO_SCAN_GCPD_CH0_Wayne_captured_02,0,"Das ist Gordon. Damit sich die Sache nicht zu einem Justizskandal ausweitet, ordne ich an,",90,a,
Speech_RADIO_SCAN_GCPD_CH0_Wayne_captured_02,1,"dass Beamte des GCPD nicht länger Gefangene nach Arkham City bringen. Bringt sie ins GCPD, bringt sie in den Zoo, mir alles egal.",129,a,
Speech_RADIO_SCAN_GCPD_CH0_Wayne_captured_02,2,Hauptsache dieser Irre Strange bekommt sie nicht in die Finger.,63,a,
Speech_RADIO_SCAN_GCPD_CH0_Wayne_captured_03,0,Für Waynes Anwälte wird das eine einzige Lachnummer und ich hab keine Lust mit meinem Budget,92,a,
Speech_RADIO_SCAN_GCPD_CH0_Wayne_captured_03,1,den nächsten Urlaub von irgendeinem reichen Kerl zu bezahlen. Verstanden!,73,a,
Speech_RADIO_SCAN_GCPD_Cop,0,"Zentrale, Wesker hat eine Geisel genommen und schießt weiter auf die Einsatzkräfte.",83,a,
Speech_RADIO_SCAN_GCPD_DISPATCH,0,"An alle Einheiten, es wurde ein 10-34 im Robinson Park gemeldet.",64,a,
Speech_RADIO_SCAN_Riddler_intro_01,0,"Batman. Wenn du mich hörst. Hör dir dieses Rätsel an! Man kann die Dunkelheit nur aufhalten, wenn man ins Licht geht.",117,a,
Speech_RADIO_SCAN_Secret1FULL_RADIO_SCAN_Secret1FULL,0,"Kann mich jemand hören? Mein Name ist Barbara Gordon. Wir werden angegriffen. Jokers Leute sind zu stark. Mein Vater ist tot. Ach was, alle sind tot.",149,a,DEU:C39BDC76 Speech_RADIO_SCAN_Secret1FULL_RADIO_SCAN_Secret1FULL,0,"Kann mich jemand hören? Mein Name ist Barbara Gordon. Wir werden angegriffen. Jokers Leute sind zu stark. Mein Vater ist tot. Ach was, alle sind tot.",149,a,DEU:C39BDC76
Speech_RADIO_SCAN_Secret1FULL_RADIO_SCAN_Secret1FULL,1,"Wir verlieren. Eindringlinge in Wayne Manor. Joker hat gewonnen. Ich kann nicht glauben, dass ich das sage. Er hat gewonnen. Wir können nichts tun.",147,a,DEU:C39BDC76 Speech_RADIO_SCAN_Secret1FULL_RADIO_SCAN_Secret1FULL,1,"Wir verlieren. Eindringlinge in Wayne Manor. Joker hat gewonnen. Ich kann nicht glauben, dass ich das sage. Er hat gewonnen. Wir können nichts tun.",147,a,DEU:C39BDC76
Speech_RADIO_SCAN_Secret1FULL_RADIO_SCAN_Secret1FULL,2,"Bruce ist tot, nicht mehr da. Sie sind alle weg. Wenn mich jemand hört ... Schickt Hilfe. Bitte ...",99,a,DEU:C39BDC76 Speech_RADIO_SCAN_Secret1FULL_RADIO_SCAN_Secret1FULL,2,"Bruce ist tot, nicht mehr da. Sie sind alle weg. Wenn mich jemand hört ... Schickt Hilfe. Bitte ...",99,a,DEU:C39BDC76
Can't render this file because it is too large.

View File

@@ -1,4 +1,7 @@
speech,line,text,room,enc,sound speech,line,text,room,enc,sound
Got_enough_trophies_05,0,"Aquí está tu último acertijo, Caballero Nocturno. Debo admitir que no esperaba que en verdad vivieras lo suficiente para escucharlo,",132,a,
Got_enough_trophies_05,1,pero no hay problema. Resolver este acertijo desbloqueará un desafío tan artero que solo será cuestión de tiempo para verte a ti y a ese,136,a,
Got_enough_trophies_05,2,guardia arder. ¿Estás listo?,28,a,
Speech_AUGMENTED_Challenge_Complete_01,0,Entrenamiento de Realidad Aumentada completado.,47,a,INT:3BC50710 Speech_AUGMENTED_Challenge_Complete_01,0,Entrenamiento de Realidad Aumentada completado.,47,a,INT:3BC50710
Speech_AUGMENTED_Challenge_Fail_01,0,Entrenamiento de Realidad Aumentada fallido.,44,a,INT:D1FDC955 Speech_AUGMENTED_Challenge_Fail_01,0,Entrenamiento de Realidad Aumentada fallido.,44,a,INT:D1FDC955
Speech_AUGMENTED_Challenge_start_01,0,Entrenamiento de Realidad Aumentada activado.,45,a,INT:7F82685B Speech_AUGMENTED_Challenge_start_01,0,Entrenamiento de Realidad Aumentada activado.,45,a,INT:7F82685B
@@ -5376,6 +5379,16 @@ Speech_PRED_TYGER2_NewGenric_Smoke_escape_02,0,El objetivo utilizó humo para es
Speech_PRED_TYGER2_NewGenric_Smoke_react_01,0,El objetivo utilizó humo.,25,a,INT:A8DCB254:16 Speech_PRED_TYGER2_NewGenric_Smoke_react_01,0,El objetivo utilizó humo.,25,a,INT:A8DCB254:16
Speech_PRED_TYGER2_NewGenric_Smoke_react_02,0,El objetivo está usando humo.,29,a,INT:A8DCB254:6 Speech_PRED_TYGER2_NewGenric_Smoke_react_02,0,El objetivo está usando humo.,29,a,INT:A8DCB254:6
Speech_PRED_TYGER2_NewGenric_Smoke_react_04,0,El objetivo utilizó humo. Intentando reubicarlo.,48,a,INT:A8DCB254:1 Speech_PRED_TYGER2_NewGenric_Smoke_react_04,0,El objetivo utilizó humo. Intentando reubicarlo.,48,a,INT:A8DCB254:1
Speech_RADIO_SCAN_CH1_VV_01,0,Buenas noches. Soy Vicki Vale. Hace un momento les presentamos un dramático video de Bruno Díaz siendo arrestado y arrastrado a Ciudad Arkham.,142,a,
Speech_RADIO_SCAN_CH1_VV_02,0,"Hasta ahora, la oficina del alcalde ha rehusado justificar esta severa reacción ante una protesta pacífica.",107,a,
Speech_RADIO_SCAN_CH1_VV_03,0,¿Qué le ocurrirá al señor Díaz tras estos muros?,48,a,
Speech_RADIO_SCAN_CH1_VV_03,1,"Conocido como un conquistador internacional, ahora tendrá que enfrentarse a ladrones, asesinos y caníbales convictos. ¿Tendrá las aptitudes para sobrevivir?",156,a,
Speech_RADIO_SCAN_CH1_VV_05,0,"Soy Vicki Vale, reportando para Ciudad Gótica en vivo. Tendremos más información.",81,a,
Speech_RADIO_SCAN_CH2_VV_Church_01,0,"Así es, Ciudad Gótica. Están viendo imágenes dramáticas que ocurren en vivo en Ciudad Arkham.",93,a,
Speech_RADIO_SCAN_CH2_VV_Church_02,0,"Parece que todo el campanario explotó. En este momento, se desconoce cómo y por qué.",84,a,
Speech_RADIO_SCAN_CH2_VV_Church_03,0,"Lo que sí sabemos es que, al parecer, Batman también está dentro de Ciudad Arkham.",82,a,
Speech_RADIO_SCAN_CH2_VV_Church_04,0,"¿Por qué está ahí? Ahora, solo podemos especular. ¿Está Batman insatisfecho con los planes del profesor Strange para Ciudad Arkham?",131,a,
Speech_RADIO_SCAN_CH2_VV_Church_04,1,¿Hace algo al respecto? Solo el tiempo lo dirá.,47,a,
Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_01,0,¿Qué está pasando allá afuera? ¡La señal de uno de los interruptores de comunicaciones desapareció!,99,a,INT:ABAC53B2:1 Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_01,0,¿Qué está pasando allá afuera? ¡La señal de uno de los interruptores de comunicaciones desapareció!,99,a,INT:ABAC53B2:1
Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_02,0,"Lo siento, Sr. Cobblepot. No lo sé.",35,a,INT:ABAC53B2:2 Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_02,0,"Lo siento, Sr. Cobblepot. No lo sé.",35,a,INT:ABAC53B2:2
Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_03,0,"¡Pues averígualo! Y mientras lo haces, asegúrate de que el otro interruptor de comunicaciones esté bien,",104,a,INT:ABAC53B2:0 Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_03,0,"¡Pues averígualo! Y mientras lo haces, asegúrate de que el otro interruptor de comunicaciones esté bien,",104,a,INT:ABAC53B2:0
@@ -5413,6 +5426,12 @@ Speech_RADIO_SCAN_CH6_VV_BM_Losing_lose_3,0,Batman no se lo esperaba. Parece que
Speech_RADIO_SCAN_CH6_VV_BM_Winning_NorthEast,0,Los disparos han cesado desde las Torres Dini. Ya no veo a los francotiradores en el techo del edificio.,104,a,INT:C50CF9ED:2 Speech_RADIO_SCAN_CH6_VV_BM_Winning_NorthEast,0,Los disparos han cesado desde las Torres Dini. Ya no veo a los francotiradores en el techo del edificio.,104,a,INT:C50CF9ED:2
Speech_RADIO_SCAN_CH6_VV_BM_Winning_SouthEast,0,Parece que los francotiradores que cubrían mi posición desde el Sudeste ya no están. La azotea del edificio Kirshen se quedó en silencio.,137,a,INT:C50CF9ED:1 Speech_RADIO_SCAN_CH6_VV_BM_Winning_SouthEast,0,Parece que los francotiradores que cubrían mi posición desde el Sudeste ya no están. La azotea del edificio Kirshen se quedó en silencio.,137,a,INT:C50CF9ED:1
Speech_RADIO_SCAN_CH6_VV_BM_Winning_SouthEast,1,O se fueron todos o alguien se encargó de ellos.,48,a,INT:C50CF9ED:1 Speech_RADIO_SCAN_CH6_VV_BM_Winning_SouthEast,1,O se fueron todos o alguien se encargó de ellos.,48,a,INT:C50CF9ED:1
Speech_RADIO_SCAN_CH6_VV_COURT_01,0,"Así es, Don. Los reclusos están libres y hay reportes de que la lucha territorial en tierra se ha intensificado.",112,a,
Speech_RADIO_SCAN_CH6_VV_COURT_02,0,"Como recordarán los televidentes regulares, cuando hablé con el alcalde hace unas horas,",88,a,
Speech_RADIO_SCAN_CH6_VV_COURT_02,1,dijo que se estaban tomando todas las medidas necesarias para restringir el flujo de armamento ilegal en Ciudad Arkham.,119,a,
Speech_RADIO_SCAN_CH6_VV_COURT_03,0,La respuesta del alcalde fue muy clara. Dijo que todas las armas son ilegales dentro de la zona en cuarentena.,110,a,
Speech_RADIO_SCAN_CH6_VV_COURT_03,1,Aseguró que se estaban tomando las medidas posibles para controlar estos estallidos anárquicos.,95,a,
Speech_RADIO_SCAN_CH6_VV_COURT_04,0,"Ciudad Gótica, déjenme preguntarles. ¿Luce esto como un estallido anárquico? En mi opinión, y enfatizo que es solo mi opinión, todo el sitio es un caos.",152,a,
Speech_RADIO_SCAN_CH6_VV_SniperIdles_1,0,"Desde el suelo, aquí en Ciudad Arkham, puedo confirmar que el lugar está en caos.",81,a,INT:F990D6DF:2 Speech_RADIO_SCAN_CH6_VV_SniperIdles_1,0,"Desde el suelo, aquí en Ciudad Arkham, puedo confirmar que el lugar está en caos.",81,a,INT:F990D6DF:2
Speech_RADIO_SCAN_CH6_VV_SniperIdles_3,0,"Soy Vicki Vale, reportando eventos en vivo dentro de Ciudad Arkham.",67,a,INT:F990D6DF:0 Speech_RADIO_SCAN_CH6_VV_SniperIdles_3,0,"Soy Vicki Vale, reportando eventos en vivo dentro de Ciudad Arkham.",67,a,INT:F990D6DF:0
Speech_RADIO_SCAN_CH6_VV_SniperIdles_4,0,"Si alguien escucha esta transmisión, envíe ayuda, por favor.",60,a,INT:F990D6DF:3 Speech_RADIO_SCAN_CH6_VV_SniperIdles_4,0,"Si alguien escucha esta transmisión, envíe ayuda, por favor.",60,a,INT:F990D6DF:3
@@ -5439,6 +5458,15 @@ Speech_RADIO_SCAN_CH8_Tyger_Choppers_Leaving_01,0,Repórtense todas las unidades
Speech_RADIO_SCAN_FIRST_copter_spot_BM_01,0,Aquí TYGER Aéreo 3. Tenemos a Batman a la vista. Esperando instrucciones. Cambio.,81,a,INT:4374FCBB:2 Speech_RADIO_SCAN_FIRST_copter_spot_BM_01,0,Aquí TYGER Aéreo 3. Tenemos a Batman a la vista. Esperando instrucciones. Cambio.,81,a,INT:4374FCBB:2
Speech_RADIO_SCAN_FIRST_copter_spot_BM_02,0,"Es inofensivo. Sigan vigilando su progreso, pero no lo enfrenten. Tenemos planes especiales para Batman.",104,a,INT:4374FCBB:0 Speech_RADIO_SCAN_FIRST_copter_spot_BM_02,0,"Es inofensivo. Sigan vigilando su progreso, pero no lo enfrenten. Tenemos planes especiales para Batman.",104,a,INT:4374FCBB:0
Speech_RADIO_SCAN_FIRST_copter_spot_BM_03,0,Afirmativo. Regresando a formación de patrullaje. Fuera.,56,a,INT:4374FCBB:1 Speech_RADIO_SCAN_FIRST_copter_spot_BM_03,0,Afirmativo. Regresando a formación de patrullaje. Fuera.,56,a,INT:4374FCBB:1
Speech_RADIO_SCAN_GCPD_CH0_Wayne_captured_01,0,A todas las unidades. Tenemos confirmación de que Bruno Díaz fue arrestado por guardias TYGER y fue llevado a Ciudad Arkham.,124,a,
Speech_RADIO_SCAN_GCPD_CH0_Wayne_captured_02,0,"Les habla Gordon. Para tratar de impedir que esta situación se vuelva una pesadilla legal, quiero que todos los oficiales del D.P.C.G.",134,a,
Speech_RADIO_SCAN_GCPD_CH0_Wayne_captured_02,1,dejen de llevar prisioneros a Ciudad Arkham. Llévenlos al D.P.C.G.,66,a,
Speech_RADIO_SCAN_GCPD_CH0_Wayne_captured_02,2,", al zoológico, no importa dónde, solo no permitan que ese maniaco Strange les ponga las manos encima.",102,a,
Speech_RADIO_SCAN_GCPD_CH0_Wayne_captured_03,0,"Los abogados de Díaz van a hacer un día de campo con esto,",58,a,
Speech_RADIO_SCAN_GCPD_CH0_Wayne_captured_03,1,y no quiero que recorten mis presupuestos para pagar las próximas vacaciones de un tipo adinerado. ¿Entendido?,110,a,
Speech_RADIO_SCAN_GCPD_Cop,0,"Central, Wesker ha tomado un rehén y está preparándose para disparar a otros oficiales.",87,a,
Speech_RADIO_SCAN_GCPD_DISPATCH,0,"Todas las unidades, tenemos un 10-34 en progreso en el Parque Robinson.",71,a,
Speech_RADIO_SCAN_Riddler_intro_01,0,"Batman. Si puedes oírme, ¡por favor escucha este acertijo! La única manera de detener la oscuridad es ir hacia la luz.",118,a,
Speech_RADIO_SCAN_Secret1FULL_RADIO_SCAN_Secret1FULL,0,¿Alguien me escucha? Mi nombre es Bárbara Gordon. Nos están atacando. Las fuerzas del Guasón son demasiado poderosas. Mi padre está muerto.,139,a,INT:C39BDC76 Speech_RADIO_SCAN_Secret1FULL_RADIO_SCAN_Secret1FULL,0,¿Alguien me escucha? Mi nombre es Bárbara Gordon. Nos están atacando. Las fuerzas del Guasón son demasiado poderosas. Mi padre está muerto.,139,a,INT:C39BDC76
Speech_RADIO_SCAN_Secret1FULL_RADIO_SCAN_Secret1FULL,1,"Maldición, todos están muertos. Perderemos. La Mansión Díaz corre peligro. El Guasón ganó. No puedo creer que esté diciendo esto. Él ganó.",138,a,INT:C39BDC76 Speech_RADIO_SCAN_Secret1FULL_RADIO_SCAN_Secret1FULL,1,"Maldición, todos están muertos. Perderemos. La Mansión Díaz corre peligro. El Guasón ganó. No puedo creer que esté diciendo esto. Él ganó.",138,a,INT:C39BDC76
Speech_RADIO_SCAN_Secret1FULL_RADIO_SCAN_Secret1FULL,2,No hay nada que podamos hacer. Bruno está muerto. Se ha ido. Si escuchas esto... envía ayuda. Por favor...,106,a,INT:C39BDC76 Speech_RADIO_SCAN_Secret1FULL_RADIO_SCAN_Secret1FULL,2,No hay nada que podamos hacer. Bruno está muerto. Se ha ido. Si escuchas esto... envía ayuda. Por favor...,106,a,INT:C39BDC76
Can't render this file because it is too large.

View File

@@ -1,4 +1,7 @@
speech,line,text,room,enc,sound speech,line,text,room,enc,sound
Got_enough_trophies_05,0,"He aquí tu acertijo final, Caballero Oscuro. Debo admitir que no me esperaba que vivieses lo suficiente para oírlo, pero no importa.",132,a,
Got_enough_trophies_05,1,Resolver este acertijo abrirá un desafío tan malvado que será solo cuestión de tiempo que te vea arder junto a ese guardia.,123,a,
Got_enough_trophies_05,2,¿Estás preparado?,17,a,
Speech_AUGMENTED_Challenge_Complete_01,0,Entrenamiento de Realidad Aumentada completado.,47,a,ESN:3BC50710 Speech_AUGMENTED_Challenge_Complete_01,0,Entrenamiento de Realidad Aumentada completado.,47,a,ESN:3BC50710
Speech_AUGMENTED_Challenge_Fail_01,0,Entrenamiento de Realidad Aumentada fallido.,44,a,ESN:D1FDC955 Speech_AUGMENTED_Challenge_Fail_01,0,Entrenamiento de Realidad Aumentada fallido.,44,a,ESN:D1FDC955
Speech_AUGMENTED_Challenge_start_01,0,Entrenamiento de Realidad Aumentada activado.,45,a,ESN:7F82685B Speech_AUGMENTED_Challenge_start_01,0,Entrenamiento de Realidad Aumentada activado.,45,a,ESN:7F82685B
@@ -5360,6 +5363,16 @@ Speech_PRED_TYGER2_NewGenric_Smoke_escape_02,0,El objetivo ha lanzado humo para
Speech_PRED_TYGER2_NewGenric_Smoke_react_01,0,El objetivo ha lanzado humo.,28,a,ESN:A8DCB254:12 Speech_PRED_TYGER2_NewGenric_Smoke_react_01,0,El objetivo ha lanzado humo.,28,a,ESN:A8DCB254:12
Speech_PRED_TYGER2_NewGenric_Smoke_react_02,0,El objetivo está usando humo.,29,a,ESN:A8DCB254:7 Speech_PRED_TYGER2_NewGenric_Smoke_react_02,0,El objetivo está usando humo.,29,a,ESN:A8DCB254:7
Speech_PRED_TYGER2_NewGenric_Smoke_react_04,0,El objetivo ha lanzado humo. Intentando relocalizar al objetivo.,64,a,ESN:A8DCB254:8 Speech_PRED_TYGER2_NewGenric_Smoke_react_04,0,El objetivo ha lanzado humo. Intentando relocalizar al objetivo.,64,a,ESN:A8DCB254:8
Speech_RADIO_SCAN_CH1_VV_01,0,"Buenas noches, Gotham. Soy Vicki Vale. Esta noche les hemos ofrecido unas dramáticas imágenes de Bruce Wayne siendo arrestado y conducido a Arkham City.",152,a,
Speech_RADIO_SCAN_CH1_VV_02,0,"Por ahora, el alcalde se ha negado a justificar esta actitud tan severa ante lo que era una manifestación pacífica.",115,a,
Speech_RADIO_SCAN_CH1_VV_03,0,"¿Qué será del Sr. Wayne tras esos muros? Conocido como un playboy internacional, ahora tendrá que vérselas con ladrones, asesinos y caníbales.",142,a,
Speech_RADIO_SCAN_CH1_VV_03,1,¿Será capas de sobrevivir?,26,a,
Speech_RADIO_SCAN_CH1_VV_05,0,"Aquí Vicki Vale, informando para Gotham Directo. Seguiremos informando.",71,a,
Speech_RADIO_SCAN_CH2_VV_Church_01,0,"Así es, Gotham. Están viendo unas imágenes dramáticas, en directo desde Arkham City.",84,a,
Speech_RADIO_SCAN_CH2_VV_Church_02,0,Parece que el campanario entero ha explotado.Cómo y por qué ha ocurrido esto sigue siendo un misterio.,102,a,
Speech_RADIO_SCAN_CH2_VV_Church_03,0,"Lo que sí sabemos es que al parecer, Batman también se encuentra dentro de los muros de Arkham City.",100,a,
Speech_RADIO_SCAN_CH2_VV_Church_04,0,"¿Qué hace aquí? Por ahora, solo podemos especular. ¿Acaso Batman no está contento con el Profesor Strange y sus planes para Arkham City?",136,a,
Speech_RADIO_SCAN_CH2_VV_Church_04,1,¿Está haciendo algo para cambiar eso? Solo el tiempo lo dirá.,61,a,
Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_01,0,¿Qué pasa ahí fuera? ¡Una de las señales del disruptor ha desaparecido!,71,a,ESN:ABAC53B2:2 Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_01,0,¿Qué pasa ahí fuera? ¡Una de las señales del disruptor ha desaparecido!,71,a,ESN:ABAC53B2:2
Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_02,0,"Lo siento, Sr. Cobblepot. No lo sé.",35,a,ESN:ABAC53B2:0 Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_02,0,"Lo siento, Sr. Cobblepot. No lo sé.",35,a,ESN:ABAC53B2:0
Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_03,0,"¡Pues entérate! Y de paso, asegúrate de que el otro disruptor está a salvo o te encontraré y te meteré lo que quede de él por el...",131,a,ESN:ABAC53B2:1 Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_03,0,"¡Pues entérate! Y de paso, asegúrate de que el otro disruptor está a salvo o te encontraré y te meteré lo que quede de él por el...",131,a,ESN:ABAC53B2:1
@@ -5397,6 +5410,12 @@ Speech_RADIO_SCAN_CH6_VV_BM_Losing_lose_3,0,Batman ni se ha enterado. Parece que
Speech_RADIO_SCAN_CH6_VV_BM_Winning_NorthEast,0,Ha cesado el fuego de las Torres Dini. Ya no veo a los francotiradores en la azotea del edificio de apartamentos.,113,a,ESN:C50CF9ED:1 Speech_RADIO_SCAN_CH6_VV_BM_Winning_NorthEast,0,Ha cesado el fuego de las Torres Dini. Ya no veo a los francotiradores en la azotea del edificio de apartamentos.,113,a,ESN:C50CF9ED:1
Speech_RADIO_SCAN_CH6_VV_BM_Winning_SouthEast,0,Parece ser que los francotiradores que cubrían mi posición desde el sureste se han ido. La azotea del edificio Kirshen está en silencio.,136,a,ESN:C50CF9ED:0 Speech_RADIO_SCAN_CH6_VV_BM_Winning_SouthEast,0,Parece ser que los francotiradores que cubrían mi posición desde el sureste se han ido. La azotea del edificio Kirshen está en silencio.,136,a,ESN:C50CF9ED:0
Speech_RADIO_SCAN_CH6_VV_BM_Winning_SouthEast,1,O se han ido todos o alguien los ha eliminado.,46,a,ESN:C50CF9ED:0 Speech_RADIO_SCAN_CH6_VV_BM_Winning_SouthEast,1,O se han ido todos o alguien los ha eliminado.,46,a,ESN:C50CF9ED:0
Speech_RADIO_SCAN_CH6_VV_COURT_01,0,"Así es, Don. Los presos andan sueltos y circulan informes de que la guerra de territorios ha escalado.",102,a,
Speech_RADIO_SCAN_CH6_VV_COURT_02,0,"Como sin duda recordarán los espectadores habituales, cuando he hablado antes con el alcalde,",93,a,
Speech_RADIO_SCAN_CH6_VV_COURT_02,1,ha dicho que se estaban tomando medidas para restringir el flujo de armas ilegales a Arkham City.,97,a,
Speech_RADIO_SCAN_CH6_VV_COURT_03,0,El alcalde ha sido muy claro en su respuesta. Ha dicho que todas las armas son ilegales dentro de la zona de cuarentena.,120,a,
Speech_RADIO_SCAN_CH6_VV_COURT_03,1,Ha prometido que se estaban tomando todas las medidas posibles para controlar estos estallidos de anarquía.,107,a,
Speech_RADIO_SCAN_CH6_VV_COURT_04,0,"Bien, Gotham, yo pregunto: ¿parece esto un estallido de anarquía? En mi opinión - y recalco que es solo mi opinión - toda esta ciudad es un caos.",145,a,
Speech_RADIO_SCAN_CH6_VV_SniperIdles_1,0,"Desde el suelo, aquí en Arkham City, puedo confirmar que toda la ciudad es un caos.",83,a,ESN:F990D6DF:1 Speech_RADIO_SCAN_CH6_VV_SniperIdles_1,0,"Desde el suelo, aquí en Arkham City, puedo confirmar que toda la ciudad es un caos.",83,a,ESN:F990D6DF:1
Speech_RADIO_SCAN_CH6_VV_SniperIdles_3,0,"Aquí Vicki Vale, informando en directo desde el interior de Arkham City.",72,a,ESN:F990D6DF:2 Speech_RADIO_SCAN_CH6_VV_SniperIdles_3,0,"Aquí Vicki Vale, informando en directo desde el interior de Arkham City.",72,a,ESN:F990D6DF:2
Speech_RADIO_SCAN_CH6_VV_SniperIdles_4,0,"Si alguien puede oír esta emisión, que envíe ayuda, por favor.",62,a,ESN:F990D6DF:3 Speech_RADIO_SCAN_CH6_VV_SniperIdles_4,0,"Si alguien puede oír esta emisión, que envíe ayuda, por favor.",62,a,ESN:F990D6DF:3
@@ -5423,6 +5442,14 @@ Speech_RADIO_SCAN_CH8_Tyger_Choppers_Leaving_01,0,"A todas las unidades aéreas.
Speech_RADIO_SCAN_FIRST_copter_spot_BM_01,0,"Aquí TYGER Aire 3, podemos ver a Batman. Esperando órdenes. Cambio.",67,a,ESN:4374FCBB:2 Speech_RADIO_SCAN_FIRST_copter_spot_BM_01,0,"Aquí TYGER Aire 3, podemos ver a Batman. Esperando órdenes. Cambio.",67,a,ESN:4374FCBB:2
Speech_RADIO_SCAN_FIRST_copter_spot_BM_02,0,"Es inofensivo. Seguid vigilando sus progresos, pero no ataquéis. Tenemos planes especiales para Batman.",103,a,ESN:4374FCBB:0 Speech_RADIO_SCAN_FIRST_copter_spot_BM_02,0,"Es inofensivo. Seguid vigilando sus progresos, pero no ataquéis. Tenemos planes especiales para Batman.",103,a,ESN:4374FCBB:0
Speech_RADIO_SCAN_FIRST_copter_spot_BM_03,0,Afirmativo. Regresando a formación de patrulla. Corto.,54,a,ESN:4374FCBB:1 Speech_RADIO_SCAN_FIRST_copter_spot_BM_03,0,Afirmativo. Regresando a formación de patrulla. Corto.,54,a,ESN:4374FCBB:1
Speech_RADIO_SCAN_GCPD_CH0_Wayne_captured_01,0,"A todas las unidades, tenemos confirmación de que Bruce Wayne ha sido arrestado por guardias TYGER y llevado a Arkham City.",123,a,
Speech_RADIO_SCAN_GCPD_CH0_Wayne_captured_02,0,"Aquí Gordon, para intentar que esta situación no se convierta en una pesadilla legal,",85,a,
Speech_RADIO_SCAN_GCPD_CH0_Wayne_captured_02,1,quiero que todos los agentes del CPGC dejen de llevar prisioneros a Arkham City.,80,a,
Speech_RADIO_SCAN_GCPD_CH0_Wayne_captured_02,2,"Llevadlos al CPGC o al zoo si os apetece, pero no dejéis que ese loco de Strenge les ponga la mano encima.",106,a,
Speech_RADIO_SCAN_GCPD_CH0_Wayne_captured_03,0,Los abogados de Wayne se van a cebar con esto y no quiero que me recorten el presupuesto para pagarle las vacaciones a un ricachón. ¿Entendido?,143,a,
Speech_RADIO_SCAN_GCPD_Cop,0,"Central, Wesker ha cogido a un rehén y está disparando a otros agentes.",71,a,
Speech_RADIO_SCAN_GCPD_DISPATCH,0,"A todas las unidades, tenemos un 10-34 en Robinson Park.",56,a,
Speech_RADIO_SCAN_Riddler_intro_01,0,"Batman, si puedes oírme, por favor, escucha este acertijo. La única forma de parar la oscuridad es dar un paso hacia la luz.",124,a,
Speech_RADIO_SCAN_Secret1FULL_RADIO_SCAN_Secret1FULL,0,"¿Me oye alguien? Me llamo Bárbara Gordon. Nos están atacando. Las fuerzas del Joker son demasiadas. Mi padre ha muerto. Bueno, todos han muerto.",144,a,ESN:C39BDC76 Speech_RADIO_SCAN_Secret1FULL_RADIO_SCAN_Secret1FULL,0,"¿Me oye alguien? Me llamo Bárbara Gordon. Nos están atacando. Las fuerzas del Joker son demasiadas. Mi padre ha muerto. Bueno, todos han muerto.",144,a,ESN:C39BDC76
Speech_RADIO_SCAN_Secret1FULL_RADIO_SCAN_Secret1FULL,1,Vamos a perder. La Mansión Wayne ha sido invadida. El Joker ha ganado. Es increíble que diga esto. Ha ganado. No podemos hacer nada.,132,a,ESN:C39BDC76 Speech_RADIO_SCAN_Secret1FULL_RADIO_SCAN_Secret1FULL,1,Vamos a perder. La Mansión Wayne ha sido invadida. El Joker ha ganado. Es increíble que diga esto. Ha ganado. No podemos hacer nada.,132,a,ESN:C39BDC76
Speech_RADIO_SCAN_Secret1FULL_RADIO_SCAN_Secret1FULL,2,Bruce ha muerto. Ha desaparecido. Si pueden oír esto... envíen ayuda... por favor...,84,a,ESN:C39BDC76 Speech_RADIO_SCAN_Secret1FULL_RADIO_SCAN_Secret1FULL,2,Bruce ha muerto. Ha desaparecido. Si pueden oír esto... envíen ayuda... por favor...,84,a,ESN:C39BDC76
Can't render this file because it is too large.

View File

@@ -1,4 +1,7 @@
speech,line,text,room,enc,sound speech,line,text,room,enc,sound
Got_enough_trophies_05,0,"Voici ton dernier casse-tête, Batman. Je dois admettre que je ne pensais pas que tu vivrais assez longtemps pour l'entendre, mais ce n'est rien.",144,a,
Got_enough_trophies_05,1,"Si tu le résous, cela débloquera un défi tellement complexe qu'il ne faudra pas longtemps avant que ce garde et toi brûliez en enfer.",133,a,
Got_enough_trophies_05,2,Tu es prêt ?,12,a,
Speech_AUGMENTED_Challenge_Complete_01,0,Entraînement en réalité augmentée terminé.,42,a,FRA:3BC50710 Speech_AUGMENTED_Challenge_Complete_01,0,Entraînement en réalité augmentée terminé.,42,a,FRA:3BC50710
Speech_AUGMENTED_Challenge_Fail_01,0,Échec de l'entraînement en réalité augmentée.,45,a,FRA:D1FDC955 Speech_AUGMENTED_Challenge_Fail_01,0,Échec de l'entraînement en réalité augmentée.,45,a,FRA:D1FDC955
Speech_AUGMENTED_Challenge_start_01,0,Entraînement en réalité augmentée : activation.,47,a,FRA:7F82685B Speech_AUGMENTED_Challenge_start_01,0,Entraînement en réalité augmentée : activation.,47,a,FRA:7F82685B
@@ -5390,6 +5393,17 @@ Speech_PRED_TYGER2_NewGenric_Smoke_escape_02,0,La cible se sert de fumée pour s
Speech_PRED_TYGER2_NewGenric_Smoke_react_01,0,La cible a libéré de la fumée.,30,a,FRA:A8DCB254:1 Speech_PRED_TYGER2_NewGenric_Smoke_react_01,0,La cible a libéré de la fumée.,30,a,FRA:A8DCB254:1
Speech_PRED_TYGER2_NewGenric_Smoke_react_02,0,La cible balance de la fumée.,29,a,FRA:A8DCB254:13 Speech_PRED_TYGER2_NewGenric_Smoke_react_02,0,La cible balance de la fumée.,29,a,FRA:A8DCB254:13
Speech_PRED_TYGER2_NewGenric_Smoke_react_04,0,La cible a libéré de la fumée. J'essaie de la relocaliser.,58,a,FRA:A8DCB254:9 Speech_PRED_TYGER2_NewGenric_Smoke_react_04,0,La cible a libéré de la fumée. J'essaie de la relocaliser.,58,a,FRA:A8DCB254:9
Speech_RADIO_SCAN_CH1_VV_01,0,"Bonsoir, Gotham. Ici Vicki Vale. Plus tôt dans la soirée,",57,a,
Speech_RADIO_SCAN_CH1_VV_01,1,nous vous avons montré ces terribles images de l'arrestation de Bruce Wayne et de son transfert à Arkham City.,110,a,
Speech_RADIO_SCAN_CH1_VV_02,0,"Pour l'instant, la mairie a refusé de justifier cette réponse musclée à ce qui semblait être simplement une manifestation pacifique.",132,a,
Speech_RADIO_SCAN_CH1_VV_03,0,Que va-t-il arriver à M. Wayne derrière ces murs ?,50,a,
Speech_RADIO_SCAN_CH1_VV_03,1,"Ce célèbre playboy international va se retrouver confronté à des voleurs, à des meurtriers et à des cannibales. Va-t-il avoir la force de survivre ?",148,a,
Speech_RADIO_SCAN_CH1_VV_05,0,"C'était Vicki Vale, en direct de Gotham. À plus tard pour plus d'informations.",78,a,
Speech_RADIO_SCAN_CH2_VV_Church_01,0,"Vous ne rêvez pas, Gotham. Vous êtes bien devant de terribles images transmises en direct d'Arkham City.",104,a,
Speech_RADIO_SCAN_CH2_VV_Church_02,0,Il semble que le clocher ait entièrement explosé. On ignore pour le moment les origines précises de ce sinistre.,112,a,
Speech_RADIO_SCAN_CH2_VV_Church_03,0,"On sait simplement qu'en ce moment, Batman se trouve également entre les murs d'Arkham City.",92,a,
Speech_RADIO_SCAN_CH2_VV_Church_04,0,Que fait-il là-bas ? On ne peut qu'émettre des suppositions. Les plans du professeur Strange concernant Arkham City ne lui plaisaient-ils pas ?,143,a,
Speech_RADIO_SCAN_CH2_VV_Church_04,1,A-t-il décidé d'y remédier ? Seul le temps nous le dira.,56,a,
Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_01,0,Mais qu'est-ce qui se passe là-bas ? Un des signaux du brouilleur a disparu !,77,a,FRA:ABAC53B2:1 Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_01,0,Mais qu'est-ce qui se passe là-bas ? Un des signaux du brouilleur a disparu !,77,a,FRA:ABAC53B2:1
Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_02,0,"Désolé, M. Cobblepot. Je... J'en sais rien.",43,a,FRA:ABAC53B2:0 Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_02,0,"Désolé, M. Cobblepot. Je... J'en sais rien.",43,a,FRA:ABAC53B2:0
Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_03,0,"Alors, va voir ! Et pendant ce temps-là, veille à ce que l'autre brouilleur soit en sécurité, si tu veux pas que je vienne te trouver et te fourrer ce qu'il en reste dans...",173,a,FRA:ABAC53B2:2 Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_03,0,"Alors, va voir ! Et pendant ce temps-là, veille à ce que l'autre brouilleur soit en sécurité, si tu veux pas que je vienne te trouver et te fourrer ce qu'il en reste dans...",173,a,FRA:ABAC53B2:2
@@ -5425,6 +5439,13 @@ Speech_RADIO_SCAN_CH6_VV_BM_Losing_lose_3,0,Batman ne l'a pas vu arriver. On dir
Speech_RADIO_SCAN_CH6_VV_BM_Winning_NorthEast,0,Les tirs ont cessé sur les tours Dini. Je ne vois plus aucun sniper sur le toit du complexe résidentiel.,104,a,FRA:C50CF9ED:1 Speech_RADIO_SCAN_CH6_VV_BM_Winning_NorthEast,0,Les tirs ont cessé sur les tours Dini. Je ne vois plus aucun sniper sur le toit du complexe résidentiel.,104,a,FRA:C50CF9ED:1
Speech_RADIO_SCAN_CH6_VV_BM_Winning_SouthEast,0,Il semblerait que les snipers qui couvraient ma position au sud-est soient partis. Le toit du bâtiment Kirshen est redevenu calme.,130,a,FRA:C50CF9ED:0 Speech_RADIO_SCAN_CH6_VV_BM_Winning_SouthEast,0,Il semblerait que les snipers qui couvraient ma position au sud-est soient partis. Le toit du bâtiment Kirshen est redevenu calme.,130,a,FRA:C50CF9ED:0
Speech_RADIO_SCAN_CH6_VV_BM_Winning_SouthEast,1,"Soit ils sont partis, soit quelqu'un les a éliminés.",52,a,FRA:C50CF9ED:0 Speech_RADIO_SCAN_CH6_VV_BM_Winning_SouthEast,1,"Soit ils sont partis, soit quelqu'un les a éliminés.",52,a,FRA:C50CF9ED:0
Speech_RADIO_SCAN_CH6_VV_COURT_01,0,"C'est exact, Don. Les détenus se promènent librement et on dit même que la guerre des gangs ne fait que s'accentuer.",116,a,
Speech_RADIO_SCAN_CH6_VV_COURT_02,0,"Comme les téléspectateurs s'en souviennent sûrement, lorsque j'ai parlé au maire plus tôt dans la soirée,",105,a,
Speech_RADIO_SCAN_CH6_VV_COURT_02,1,il a affirmé que des mesures étaient prises pour réduire le flux d'armes illégales dans Arkham City.,100,a,
Speech_RADIO_SCAN_CH6_VV_COURT_03,0,Le maire s'est montré parfaitement clair. Il a déclaré que toutes les armes étaient illégales dans la zone de quarantaine.,122,a,
Speech_RADIO_SCAN_CH6_VV_COURT_03,1,Il a aussi promis que toutes les mesures étaient prises pour contrôler ces élans anarchiques.,93,a,
Speech_RADIO_SCAN_CH6_VV_COURT_04,0,"Alors, chers habitants de Gotham, que pensez-vous de tout cela ? S'agit-il d'une simple rébellion ?",99,a,
Speech_RADIO_SCAN_CH6_VV_COURT_04,1,"Selon moi, et ce n'est que mon opinion, le chaos règne dans toute la zone.",74,a,
Speech_RADIO_SCAN_CH6_VV_SniperIdles_1,0,"Je suis en direct du sol, à Arkham City, et je peux confirmer que c'est le chaos total.",87,a,FRA:F990D6DF:2 Speech_RADIO_SCAN_CH6_VV_SniperIdles_1,0,"Je suis en direct du sol, à Arkham City, et je peux confirmer que c'est le chaos total.",87,a,FRA:F990D6DF:2
Speech_RADIO_SCAN_CH6_VV_SniperIdles_3,0,"Ici Vicki Vale, qui vous informe en direct depuis Arkham City.",62,a,FRA:F990D6DF:3 Speech_RADIO_SCAN_CH6_VV_SniperIdles_3,0,"Ici Vicki Vale, qui vous informe en direct depuis Arkham City.",62,a,FRA:F990D6DF:3
Speech_RADIO_SCAN_CH6_VV_SniperIdles_4,0,"Si quelqu'un entend ce message, envoyez de l'aide, pitié.",57,a,FRA:F990D6DF:0 Speech_RADIO_SCAN_CH6_VV_SniperIdles_4,0,"Si quelqu'un entend ce message, envoyez de l'aide, pitié.",57,a,FRA:F990D6DF:0
@@ -5451,6 +5472,15 @@ Speech_RADIO_SCAN_CH8_Tyger_Choppers_Leaving_01,0,"Toutes les unités Air au rap
Speech_RADIO_SCAN_FIRST_copter_spot_BM_01,0,Ici Air TYGER 3. On a un visuel sur Batman. Attendons les ordres. Terminé.,74,a,FRA:4374FCBB:0 Speech_RADIO_SCAN_FIRST_copter_spot_BM_01,0,Ici Air TYGER 3. On a un visuel sur Batman. Attendons les ordres. Terminé.,74,a,FRA:4374FCBB:0
Speech_RADIO_SCAN_FIRST_copter_spot_BM_02,0,"Il est inoffensif. Continuez à surveiller sa progression, mais n'ouvrez pas le feu. On a un plan spécial pour Batman.",117,a,FRA:4374FCBB:2 Speech_RADIO_SCAN_FIRST_copter_spot_BM_02,0,"Il est inoffensif. Continuez à surveiller sa progression, mais n'ouvrez pas le feu. On a un plan spécial pour Batman.",117,a,FRA:4374FCBB:2
Speech_RADIO_SCAN_FIRST_copter_spot_BM_03,0,Affirmatif. Retour en position de patrouille. Terminé.,54,a,FRA:4374FCBB:1 Speech_RADIO_SCAN_FIRST_copter_spot_BM_03,0,Affirmatif. Retour en position de patrouille. Terminé.,54,a,FRA:4374FCBB:1
Speech_RADIO_SCAN_GCPD_CH0_Wayne_captured_01,0,À toutes les unités. On a confirmation que Bruce Wayne a été arrêté par des gardes TYGER et amené à Arkham City.,112,a,
Speech_RADIO_SCAN_GCPD_CH0_Wayne_captured_02,0,"Ici Gordon. Dans le but d'éviter que la situation ne tourne au cauchemar juridique, je veux que tous les membres du G.C.P.D.",124,a,
Speech_RADIO_SCAN_GCPD_CH0_Wayne_captured_02,1,cessent d'amener des prisonniers à Arkham City. Amenez-les au G.C.P.D.,70,a,
Speech_RADIO_SCAN_GCPD_CH0_Wayne_captured_02,2,", mettez-les au zoo si ça vous chante, mais ne laissez pas ce taré de Strange mettre la main dessus.",100,a,
Speech_RADIO_SCAN_GCPD_CH0_Wayne_captured_03,0,Les avocats de Wayne vont s'en donner à cœur joie avec cette affaire et je ne veux pas que mon,94,w,
Speech_RADIO_SCAN_GCPD_CH0_Wayne_captured_03,1,budget soit amputé pour payer les prochaines vacances d'un richard. Compris ?,77,a,
Speech_RADIO_SCAN_GCPD_Cop,0,"Central, Wesker a pris un otage et il menace de canarder d'autres officiers.",76,a,
Speech_RADIO_SCAN_GCPD_DISPATCH,0,"À toutes les unités, on signale un 10-34 à Robinson Park.",57,a,
Speech_RADIO_SCAN_Riddler_intro_01,0,"Batman. Si vous m'entendez, je vous en prie, écoutez cette énigme ! Le seul moyen d'arrêter les ténèbres... est de marcher vers la lumière.",139,a,
Speech_RADIO_SCAN_Secret1FULL_RADIO_SCAN_Secret1FULL,0,Est-ce que quelqu'un m'entend ? Je m'appelle Barbara Gordon. On nous attaque. Les troupes du Joker sont trop fortes. Mon père est mort...,137,a,FRA:C39BDC76 Speech_RADIO_SCAN_Secret1FULL_RADIO_SCAN_Secret1FULL,0,Est-ce que quelqu'un m'entend ? Je m'appelle Barbara Gordon. On nous attaque. Les troupes du Joker sont trop fortes. Mon père est mort...,137,a,FRA:C39BDC76
Speech_RADIO_SCAN_Secret1FULL_RADIO_SCAN_Secret1FULL,1,Tout le monde est mort... On est en train de perdre. Le manoir Wayne a été pris d'assaut. Le Joker a gagné. Je n'arrive pas à y croire... Il a gagné.,149,a,FRA:C39BDC76 Speech_RADIO_SCAN_Secret1FULL_RADIO_SCAN_Secret1FULL,1,Tout le monde est mort... On est en train de perdre. Le manoir Wayne a été pris d'assaut. Le Joker a gagné. Je n'arrive pas à y croire... Il a gagné.,149,a,FRA:C39BDC76
Speech_RADIO_SCAN_Secret1FULL_RADIO_SCAN_Secret1FULL,2,Il y a plus rien à faire. Bruce est mort. Il est mort.... Ils sont tous morts... Si jamais vous m'entendez... Envoyez-nous de l'aide... Je vous en supplie...,157,a,FRA:C39BDC76 Speech_RADIO_SCAN_Secret1FULL_RADIO_SCAN_Secret1FULL,2,Il y a plus rien à faire. Bruce est mort. Il est mort.... Ils sont tous morts... Si jamais vous m'entendez... Envoyez-nous de l'aide... Je vous en supplie...,157,a,FRA:C39BDC76
Can't render this file because it is too large.

View File

@@ -1,4 +1,6 @@
speech,line,text,room,enc,sound speech,line,text,room,enc,sound
Got_enough_trophies_05,0,"Here's your final riddle, Dark Knight. I must admit that I didn't expect you would actually live long enough to hear it, but no matter.",135,a,
Got_enough_trophies_05,1,Solving this riddle will unlock a challenge so devious that it will just be a matter of time before I watch you and that guard burn. Are you ready?,147,a,
Speech_AUGMENTED_Challenge_Complete_01,0,Augmented Reality Training complete.,36,a,INT:3BC50710 Speech_AUGMENTED_Challenge_Complete_01,0,Augmented Reality Training complete.,36,a,INT:3BC50710
Speech_AUGMENTED_Challenge_Fail_01,0,Augmented Reality Training failed.,34,a,INT:D1FDC955 Speech_AUGMENTED_Challenge_Fail_01,0,Augmented Reality Training failed.,34,a,INT:D1FDC955
Speech_AUGMENTED_Challenge_start_01,0,Augmented Reality Training activated.,37,a,INT:7F82685B Speech_AUGMENTED_Challenge_start_01,0,Augmented Reality Training activated.,37,a,INT:7F82685B
@@ -5328,6 +5330,16 @@ Speech_PRED_TYGER2_NewGenric_Smoke_escape_02,0,Target has deployed smoke to esca
Speech_PRED_TYGER2_NewGenric_Smoke_react_01,0,Target has deployed smoke.,26,a,INT:A8DCB254:16 Speech_PRED_TYGER2_NewGenric_Smoke_react_01,0,Target has deployed smoke.,26,a,INT:A8DCB254:16
Speech_PRED_TYGER2_NewGenric_Smoke_react_02,0,Target is using smoke.,22,a,INT:A8DCB254:6 Speech_PRED_TYGER2_NewGenric_Smoke_react_02,0,Target is using smoke.,22,a,INT:A8DCB254:6
Speech_PRED_TYGER2_NewGenric_Smoke_react_04,0,Target has deployed smoke. Attempting to relocate target.,57,a,INT:A8DCB254:1 Speech_PRED_TYGER2_NewGenric_Smoke_react_04,0,Target has deployed smoke. Attempting to relocate target.,57,a,INT:A8DCB254:1
Speech_RADIO_SCAN_CH1_VV_01,0,"Good evening, Gotham. This is Vicki Vale. Earlier tonight we brought you dramatic video of Bruce Wayne being arrested and dragged into Arkham City.",147,a,
Speech_RADIO_SCAN_CH1_VV_02,0,"So far, the Mayor's office has refused to justify this heavy-handed approach to what was a peaceful protest.",108,a,
Speech_RADIO_SCAN_CH1_VV_03,0,What will happen to Mr. Wayne behind these walls?,49,a,
Speech_RADIO_SCAN_CH1_VV_03,1,"Known as an international playboy, he will now have to contend with convicted thieves, murderers, and cannibals. Will he have the skills to survive?",148,a,
Speech_RADIO_SCAN_CH1_VV_05,0,"This is Vicki Vale, reporting for Gotham Live. More later in the program.",73,a,
Speech_RADIO_SCAN_CH2_VV_Church_01,0,"That's correct, Gotham. You are looking at dramatic images, happening live in Arkham City.",90,a,
Speech_RADIO_SCAN_CH2_VV_Church_02,0,The entire bell tower appears to have exploded. How and why this happened is unknown at this point.,99,a,
Speech_RADIO_SCAN_CH2_VV_Church_03,0,What we do know is that Batman appears to also be within the main walls of Arkham City.,87,a,
Speech_RADIO_SCAN_CH2_VV_Church_04,0,Why is he there? At this point we can only speculate. Is Batman unhappy about Professor Strange and his plans for Arkham City?,126,a,
Speech_RADIO_SCAN_CH2_VV_Church_04,1,Is he doing something about it? Only time will tell.,52,a,
Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_01,0,What's going on out there? One of the jammers' signal's disappeared!,68,a,INT:ABAC53B2:1 Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_01,0,What's going on out there? One of the jammers' signal's disappeared!,68,a,INT:ABAC53B2:1
Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_02,0,"Sorry, Mr. Cobblepot. I don't know.",35,a,INT:ABAC53B2:2 Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_02,0,"Sorry, Mr. Cobblepot. I don't know.",35,a,INT:ABAC53B2:2
Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_03,0,"Well find out! And while you're doin' it, make sure the other jammer's safe or I'll find you and I'll stick what's left of it up your....",137,a,INT:ABAC53B2:0 Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_03,0,"Well find out! And while you're doin' it, make sure the other jammer's safe or I'll find you and I'll stick what's left of it up your....",137,a,INT:ABAC53B2:0
@@ -5362,6 +5374,12 @@ Speech_RADIO_SCAN_CH6_VV_BM_Losing_lose_3,0,Batman never saw that one coming. He
Speech_RADIO_SCAN_CH6_VV_BM_Winning_NorthEast,0,Gunfire has ceased from Dini Towers. I can no longer see the snipers on the roof of the apartment building.,107,a,INT:C50CF9ED:2 Speech_RADIO_SCAN_CH6_VV_BM_Winning_NorthEast,0,Gunfire has ceased from Dini Towers. I can no longer see the snipers on the roof of the apartment building.,107,a,INT:C50CF9ED:2
Speech_RADIO_SCAN_CH6_VV_BM_Winning_SouthEast,0,It appears that the snipers covering my position from the South-East have gone. The roof of the Kirshen building has gone quiet.,128,a,INT:C50CF9ED:1 Speech_RADIO_SCAN_CH6_VV_BM_Winning_SouthEast,0,It appears that the snipers covering my position from the South-East have gone. The roof of the Kirshen building has gone quiet.,128,a,INT:C50CF9ED:1
Speech_RADIO_SCAN_CH6_VV_BM_Winning_SouthEast,1,Either they've all left or someone has taken them out.,54,a,INT:C50CF9ED:1 Speech_RADIO_SCAN_CH6_VV_BM_Winning_SouthEast,1,Either they've all left or someone has taken them out.,54,a,INT:C50CF9ED:1
Speech_RADIO_SCAN_CH6_VV_COURT_01,0,"That's correct, Don. The inmates are running wild and there are reports that the turf war on the ground has escalated.",118,a,
Speech_RADIO_SCAN_CH6_VV_COURT_02,0,"As regular viewers will no doubt remember, when I spoke to the mayor earlier tonight,",85,a,
Speech_RADIO_SCAN_CH6_VV_COURT_02,1,he said that all measures were being taken to restrict the flow of illegal weaponry into Arkham City.,101,a,
Speech_RADIO_SCAN_CH6_VV_COURT_03,0,The mayor was very clear in his response. He said that all weapons are illegal within the quarantine zone.,106,a,
Speech_RADIO_SCAN_CH6_VV_COURT_03,1,He promised every measure possible was being taken to control these anarchic outbursts.,87,a,
Speech_RADIO_SCAN_CH6_VV_COURT_04,0,"So, Gotham, let me ask you. Does this look like an anarchic outburst? In my opinion, and I stress it is just my opinion, the entire site is in chaos.",149,a,
Speech_RADIO_SCAN_CH6_VV_SniperIdles_1,0,"From the ground, here within Arkham City, I can confirm that the site is in chaos.",82,a,INT:F990D6DF:2 Speech_RADIO_SCAN_CH6_VV_SniperIdles_1,0,"From the ground, here within Arkham City, I can confirm that the site is in chaos.",82,a,INT:F990D6DF:2
Speech_RADIO_SCAN_CH6_VV_SniperIdles_3,0,"This is Vicki Vale, reporting on events live within Arkham City.",64,a,INT:F990D6DF:0 Speech_RADIO_SCAN_CH6_VV_SniperIdles_3,0,"This is Vicki Vale, reporting on events live within Arkham City.",64,a,INT:F990D6DF:0
Speech_RADIO_SCAN_CH6_VV_SniperIdles_4,0,"If anyone can hear this broadcast, send help, please.",53,a,INT:F990D6DF:3 Speech_RADIO_SCAN_CH6_VV_SniperIdles_4,0,"If anyone can hear this broadcast, send help, please.",53,a,INT:F990D6DF:3
@@ -5388,6 +5406,13 @@ Speech_RADIO_SCAN_CH8_Tyger_Choppers_Leaving_01,0,"All air units report in. Ceas
Speech_RADIO_SCAN_FIRST_copter_spot_BM_01,0,This is Air TYGER 3. We have visual on Batman. Awaiting orders. Over.,69,a,INT:4374FCBB:2 Speech_RADIO_SCAN_FIRST_copter_spot_BM_01,0,This is Air TYGER 3. We have visual on Batman. Awaiting orders. Over.,69,a,INT:4374FCBB:2
Speech_RADIO_SCAN_FIRST_copter_spot_BM_02,0,He's harmless. Continue to monitor his progress but do not engage. We have special plans for Batman.,100,a,INT:4374FCBB:0 Speech_RADIO_SCAN_FIRST_copter_spot_BM_02,0,He's harmless. Continue to monitor his progress but do not engage. We have special plans for Batman.,100,a,INT:4374FCBB:0
Speech_RADIO_SCAN_FIRST_copter_spot_BM_03,0,Affirmative. Returning to patrol formation. Out.,48,a,INT:4374FCBB:1 Speech_RADIO_SCAN_FIRST_copter_spot_BM_03,0,Affirmative. Returning to patrol formation. Out.,48,a,INT:4374FCBB:1
Speech_RADIO_SCAN_GCPD_CH0_Wayne_captured_01,0,All units. We have confirmation that Bruce Wayne has been arrested by TYGER guards and taken into Arkham City.,110,a,
Speech_RADIO_SCAN_GCPD_CH0_Wayne_captured_02,0,"This is Gordon. To try and stop this situation turning into a damned legal nightmare, I want all GCPD officers to stop taking prisoners to Arkham City.",151,a,
Speech_RADIO_SCAN_GCPD_CH0_Wayne_captured_02,1,"Take 'em to the GCPD, take 'em to the zoo for all I care, just don't let that maniac Strange get his hands on them.",115,a,
Speech_RADIO_SCAN_GCPD_CH0_Wayne_captured_03,0,Wayne's lawyers are going to have a field day with this and I don't want my budgets being cut to pay for some rich guy's next vacation. Understand!,147,a,
Speech_RADIO_SCAN_GCPD_Cop,0,"Dispatch, Wesker has taken a hostage and is proceeding to shoot at other officers.",82,a,
Speech_RADIO_SCAN_GCPD_DISPATCH,0,"All Units, we have a 10-34 in progress at Robinson Park.",56,a,
Speech_RADIO_SCAN_Riddler_intro_01,0,Batman. If you can hear me. Please listen to this riddle! The only way to stop the dark is to step towards the light.,117,a,
Speech_RADIO_SCAN_Secret1FULL_RADIO_SCAN_Secret1FULL,0,"Can anyone hear me? My name is Barbara Gordon. We are under attack. Joker's forces are too strong. My father is dead. Hell, everyone's dead.",140,a,INT:C39BDC76 Speech_RADIO_SCAN_Secret1FULL_RADIO_SCAN_Secret1FULL,0,"Can anyone hear me? My name is Barbara Gordon. We are under attack. Joker's forces are too strong. My father is dead. Hell, everyone's dead.",140,a,INT:C39BDC76
Speech_RADIO_SCAN_Secret1FULL_RADIO_SCAN_Secret1FULL,1,We're going to lose. Wayne Manor has been compromised. Joker's won. I can't believe I am saying this. He's won. There's nothing we can do.,138,a,INT:C39BDC76 Speech_RADIO_SCAN_Secret1FULL_RADIO_SCAN_Secret1FULL,1,We're going to lose. Wayne Manor has been compromised. Joker's won. I can't believe I am saying this. He's won. There's nothing we can do.,138,a,INT:C39BDC76
Speech_RADIO_SCAN_Secret1FULL_RADIO_SCAN_Secret1FULL,2,Bruce is dead. He's gone. They're all gone. If you can hear this... Send help. Please...,88,a,INT:C39BDC76 Speech_RADIO_SCAN_Secret1FULL_RADIO_SCAN_Secret1FULL,2,Bruce is dead. He's gone. They're all gone. If you can hear this... Send help. Please...,88,a,INT:C39BDC76
Can't render this file because it is too large.

View File

@@ -1,4 +1,6 @@
speech,line,text,room,enc,sound speech,line,text,room,enc,sound
Got_enough_trophies_05,0,"Ecco l'ultimo enigma, Cavaliere Oscuro. Ammetto che non mi aspettavo tu vivessi tanto a lungo da sentirlo, ma non importa.",122,a,
Got_enough_trophies_05,1,"Se risolvi questo enigma, ti lancerò una sfida così subdola che veder bruciare te e quella guardia sarà solo questione di tempo. Sei pronto?",140,a,
Speech_AUGMENTED_Challenge_Complete_01,0,Addestramento realtà aumentata completato.,42,a,ITA:3BC50710 Speech_AUGMENTED_Challenge_Complete_01,0,Addestramento realtà aumentata completato.,42,a,ITA:3BC50710
Speech_AUGMENTED_Challenge_Fail_01,0,Addestramento realtà aumentata fallito.,39,a,ITA:D1FDC955 Speech_AUGMENTED_Challenge_Fail_01,0,Addestramento realtà aumentata fallito.,39,a,ITA:D1FDC955
Speech_AUGMENTED_Challenge_start_01,0,Addestramento realtà aumentata attivato.,40,a,ITA:7F82685B Speech_AUGMENTED_Challenge_start_01,0,Addestramento realtà aumentata attivato.,40,a,ITA:7F82685B
@@ -5309,6 +5311,16 @@ Speech_PRED_TYGER2_NewGenric_Smoke_escape_02,0,Il bersaglio usa fumogeni per sca
Speech_PRED_TYGER2_NewGenric_Smoke_react_01,0,Il bersaglio usa fumogeni.,26,a,ITA:A8DCB254:15 Speech_PRED_TYGER2_NewGenric_Smoke_react_01,0,Il bersaglio usa fumogeni.,26,a,ITA:A8DCB254:15
Speech_PRED_TYGER2_NewGenric_Smoke_react_02,0,Il bersaglio usa i fumogeni.,28,a,ITA:A8DCB254:16 Speech_PRED_TYGER2_NewGenric_Smoke_react_02,0,Il bersaglio usa i fumogeni.,28,a,ITA:A8DCB254:16
Speech_PRED_TYGER2_NewGenric_Smoke_react_04,0,Il bersaglio usa fumogeni. Sto tentando di rintracciarlo.,57,a,ITA:A8DCB254:10 Speech_PRED_TYGER2_NewGenric_Smoke_react_04,0,Il bersaglio usa fumogeni. Sto tentando di rintracciarlo.,57,a,ITA:A8DCB254:10
Speech_RADIO_SCAN_CH1_VV_01,0,"Buonasera, spettatori di Gotham. Sono Vicki Vale. Prima vi abbiamo mostrato il filmato dell'arresto di Bruce Wayne e il suo trasferimento ad Arkham City.",153,a,
Speech_RADIO_SCAN_CH1_VV_02,0,Al momento l'ufficio del sindaco rifiuta di motivare la grave ritorsione contro quella che era una protesta pacifica.,117,a,
Speech_RADIO_SCAN_CH1_VV_03,0,Cosa succederà a Mr. Wayne oltre quelle mura?,45,a,
Speech_RADIO_SCAN_CH1_VV_03,1,"Colui che era conosciuto come un playboy internazionale dovrà ora vedersela con ladri, assassini e cannibali. Riuscirà a sopravvivere?",134,a,
Speech_RADIO_SCAN_CH1_VV_05,0,"Sono Vicki Vale, in diretta per Gotham Live. Altri aggiornamenti in seguito.",76,a,
Speech_RADIO_SCAN_CH2_VV_Church_01,0,"Gentili spettatori di Gotham, in diretta le drammatiche immagini di Arkham City.",80,a,
Speech_RADIO_SCAN_CH2_VV_Church_02,0,L'intero campanile sembra essere esploso. Al momento non si sa come e perché sia accaduto.,90,a,
Speech_RADIO_SCAN_CH2_VV_Church_03,0,Sappiamo però che anche Batman è all'interno delle mura di Arkham City.,71,a,
Speech_RADIO_SCAN_CH2_VV_Church_04,0,Perché è lì? A questo punto possiamo solo fare delle ipotesi. Forse non condivide i piani del Professor Strange per Arkham City e ha deciso di intervenire?,155,a,
Speech_RADIO_SCAN_CH2_VV_Church_04,1,Lo sapremo solo con il tempo.,29,a,
Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_01,0,Che sta succedendo? Uno dei segnali di jamming è sparito!,57,a,ITA:ABAC53B2:1 Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_01,0,Che sta succedendo? Uno dei segnali di jamming è sparito!,57,a,ITA:ABAC53B2:1
Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_02,0,"Spiacente, Mr. Cobblepot. Non lo so.",36,a,ITA:ABAC53B2:2 Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_02,0,"Spiacente, Mr. Cobblepot. Non lo so.",36,a,ITA:ABAC53B2:2
Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_03,0,"Beh, scoprilo! Nel frattempo assicurati che l'altro sistema resti al sicuro, o troverò quel che ne resta e te lo ficco su per il...",131,a,ITA:ABAC53B2:0 Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_03,0,"Beh, scoprilo! Nel frattempo assicurati che l'altro sistema resti al sicuro, o troverò quel che ne resta e te lo ficco su per il...",131,a,ITA:ABAC53B2:0
@@ -5344,6 +5356,12 @@ Speech_RADIO_SCAN_CH6_VV_BM_Losing_lose_3,0,Batman non si era accorto del perico
Speech_RADIO_SCAN_CH6_VV_BM_Winning_NorthEast,0,Il fuoco proveniente dalle torri Dini si è fermato. Non riesco più a vedere i cecchini sul tetto del palazzo.,109,a,ITA:C50CF9ED:1 Speech_RADIO_SCAN_CH6_VV_BM_Winning_NorthEast,0,Il fuoco proveniente dalle torri Dini si è fermato. Non riesco più a vedere i cecchini sul tetto del palazzo.,109,a,ITA:C50CF9ED:1
Speech_RADIO_SCAN_CH6_VV_BM_Winning_SouthEast,0,Sembra che i cecchini che coprivano la mia posizione da sud-est se ne siano andati. Il tetto del Kirshen Building ora è silenzioso.,131,a,ITA:C50CF9ED:2 Speech_RADIO_SCAN_CH6_VV_BM_Winning_SouthEast,0,Sembra che i cecchini che coprivano la mia posizione da sud-est se ne siano andati. Il tetto del Kirshen Building ora è silenzioso.,131,a,ITA:C50CF9ED:2
Speech_RADIO_SCAN_CH6_VV_BM_Winning_SouthEast,1,Se ne sono andati o qualcuno li ha eliminati.,45,a,ITA:C50CF9ED:2 Speech_RADIO_SCAN_CH6_VV_BM_Winning_SouthEast,1,Se ne sono andati o qualcuno li ha eliminati.,45,a,ITA:C50CF9ED:2
Speech_RADIO_SCAN_CH6_VV_COURT_01,0,"Esatto, Don. I detenuti sono scatenati e si segnala una vera escalation della guerriglia per le strade.",103,a,
Speech_RADIO_SCAN_CH6_VV_COURT_02,0,"I nostri spettatori ricorderanno sicuramente che il sindaco, durante l'intervista di questa sera,",97,a,
Speech_RADIO_SCAN_CH6_VV_COURT_02,1,aveva promesso un drastico giro di vite sul contrabbando di armi verso Arkham City.,83,a,
Speech_RADIO_SCAN_CH6_VV_COURT_03,0,Il sindaco è stato molto chiaro: ha annunciato la messa al bando di qualsiasi arma all'interno della,100,a,
Speech_RADIO_SCAN_CH6_VV_COURT_03,1,zona di quarantena e ha promesso di intervenire con ogni mezzo per controllare le insurrezioni.,95,a,
Speech_RADIO_SCAN_CH6_VV_COURT_04,0,"Lasciate che vi ponga una domanda, spettatori di Gotham: questa vi sembra una semplice insurrezione? Qui dentro c'è il caos più assoluto!",137,a,
Speech_RADIO_SCAN_CH6_VV_SniperIdles_1,0,Dal terreno entro i confini di Arkham City posso confermare che questo posto è nel caos.,88,a,ITA:F990D6DF:2 Speech_RADIO_SCAN_CH6_VV_SniperIdles_1,0,Dal terreno entro i confini di Arkham City posso confermare che questo posto è nel caos.,88,a,ITA:F990D6DF:2
Speech_RADIO_SCAN_CH6_VV_SniperIdles_3,0,"Sono Vicki Vale, in diretta per voi da Arkham City.",51,a,ITA:F990D6DF:3 Speech_RADIO_SCAN_CH6_VV_SniperIdles_3,0,"Sono Vicki Vale, in diretta per voi da Arkham City.",51,a,ITA:F990D6DF:3
Speech_RADIO_SCAN_CH6_VV_SniperIdles_4,0,"Se qualcuno sente questa trasmissione, mandate i soccorsi!",58,a,ITA:F990D6DF:0 Speech_RADIO_SCAN_CH6_VV_SniperIdles_4,0,"Se qualcuno sente questa trasmissione, mandate i soccorsi!",58,a,ITA:F990D6DF:0
@@ -5370,6 +5388,13 @@ Speech_RADIO_SCAN_CH8_Tyger_Choppers_Leaving_01,0,"Tutte le unità aeree a rappo
Speech_RADIO_SCAN_FIRST_copter_spot_BM_01,0,"Qui TYGER ARIA 3, abbiamo contatto visivo su Batman. Attendo ordini, passo.",75,a,ITA:4374FCBB:1 Speech_RADIO_SCAN_FIRST_copter_spot_BM_01,0,"Qui TYGER ARIA 3, abbiamo contatto visivo su Batman. Attendo ordini, passo.",75,a,ITA:4374FCBB:1
Speech_RADIO_SCAN_FIRST_copter_spot_BM_02,0,"È innocuo. Monitorate i suoi spostamenti, ma non attaccate. Abbiamo dei piani speciali per lui.",95,a,ITA:4374FCBB:0 Speech_RADIO_SCAN_FIRST_copter_spot_BM_02,0,"È innocuo. Monitorate i suoi spostamenti, ma non attaccate. Abbiamo dei piani speciali per lui.",95,a,ITA:4374FCBB:0
Speech_RADIO_SCAN_FIRST_copter_spot_BM_03,0,Affermativo. Torno in formazione di pattuglia.,46,a,ITA:4374FCBB:2 Speech_RADIO_SCAN_FIRST_copter_spot_BM_03,0,Affermativo. Torno in formazione di pattuglia.,46,a,ITA:4374FCBB:2
Speech_RADIO_SCAN_GCPD_CH0_Wayne_captured_01,0,A tutte le unità. Confermiamo: Bruce Wayne è stato arrestato dalle guardie TYGER e portato ad Arkham City.,106,a,
Speech_RADIO_SCAN_GCPD_CH0_Wayne_captured_02,0,"Sono Gordon. Per evitare che questo diventi un inferno legale, voglio che tutti gli agenti smettano di portare prigionieri ad Arkham City.",138,a,
Speech_RADIO_SCAN_GCPD_CH0_Wayne_captured_02,1,"Portateli al commissariato, portateli allo zoo, non mi interessa, ma teneteli fuori dalla portata di quel pazzo di Strange.",123,a,
Speech_RADIO_SCAN_GCPD_CH0_Wayne_captured_03,0,"I legali di Wayne andranno a nozze con questa storia. Non voglio che ci taglino il budget solo per pagare la prossima vacanza di un riccone, intesi?",148,a,
Speech_RADIO_SCAN_GCPD_Cop,0,"Centrale, Wesker ha preso un ostaggio e sta sparando a tutti gli altri agenti.",78,a,
Speech_RADIO_SCAN_GCPD_DISPATCH,0,A tutte le unità: aggressione in corso a Robinson Park.,55,a,
Speech_RADIO_SCAN_Riddler_intro_01,0,"Batman, riesci a sentirmi? Ascolta questo enigma! L'unico modo per arrestare l'oscurità è fare un passo verso la luce.",118,a,
Speech_RADIO_SCAN_Secret1FULL_RADIO_SCAN_Secret1FULL,0,Qualcuno mi sente? Mi chiamo Barbara Gordon. Siamo sotto attacco. Siamo travolti dalle forze di Joker. Mio padre è morto. Sono TUTTI morti!,139,a,ITA:C39BDC76 Speech_RADIO_SCAN_Secret1FULL_RADIO_SCAN_Secret1FULL,0,Qualcuno mi sente? Mi chiamo Barbara Gordon. Siamo sotto attacco. Siamo travolti dalle forze di Joker. Mio padre è morto. Sono TUTTI morti!,139,a,ITA:C39BDC76
Speech_RADIO_SCAN_Secret1FULL_RADIO_SCAN_Secret1FULL,1,"La fine è vicina. Villa Wayne è ormai compromessa. Joker ha vinto. Non riesco a crederci, ma è la verità: ha vinto. Siamo impotenti. Bruce è morto.",147,a,ITA:C39BDC76 Speech_RADIO_SCAN_Secret1FULL_RADIO_SCAN_Secret1FULL,1,"La fine è vicina. Villa Wayne è ormai compromessa. Joker ha vinto. Non riesco a crederci, ma è la verità: ha vinto. Siamo impotenti. Bruce è morto.",147,a,ITA:C39BDC76
Speech_RADIO_SCAN_Secret1FULL_RADIO_SCAN_Secret1FULL,2,"Sono tutti morti. Se riuscite a sentirmi, per favore mandate i soccorsi.",72,a,ITA:C39BDC76 Speech_RADIO_SCAN_Secret1FULL_RADIO_SCAN_Secret1FULL,2,"Sono tutti morti. Se riuscite a sentirmi, per favore mandate i soccorsi.",72,a,ITA:C39BDC76
Can't render this file because it is too large.

View File

@@ -1,4 +1,5 @@
speech,line,text,room,enc,sound speech,line,text,room,enc,sound
Got_enough_trophies_05,0,最後のリドルだ ダークナイト 正直に言うとお前が\nこれを聞けるほど長生きするとは思っていなかったが\nまあいい このリドルを解けばチャレンジが解除される\nあまりにも難しいリドルなので私がお前と警備員の\n焼け死ぬ様子を見られるのは時間の問題だ 準備いいか?,130,w,
Speech_AUGMENTED_Challenge_Complete_01,0,拡張現実トレーニング完了,12,w,INT:3BC50710 Speech_AUGMENTED_Challenge_Complete_01,0,拡張現実トレーニング完了,12,w,INT:3BC50710
Speech_AUGMENTED_Challenge_Fail_01,0,拡張現実トレーニング失敗,12,w,INT:D1FDC955 Speech_AUGMENTED_Challenge_Fail_01,0,拡張現実トレーニング失敗,12,w,INT:D1FDC955
Speech_AUGMENTED_Challenge_start_01,0,拡張現実トレーニング起動,12,w,INT:7F82685B Speech_AUGMENTED_Challenge_start_01,0,拡張現実トレーニング起動,12,w,INT:7F82685B
@@ -5183,6 +5184,14 @@ Speech_PRED_TYGER2_NewGenric_Smoke_escape_02,0,標的はスモークを使って
Speech_PRED_TYGER2_NewGenric_Smoke_react_01,0,標的はスモークを投入,10,w,INT:A8DCB254:16 Speech_PRED_TYGER2_NewGenric_Smoke_react_01,0,標的はスモークを投入,10,w,INT:A8DCB254:16
Speech_PRED_TYGER2_NewGenric_Smoke_react_02,0,標的はスモークを利用,10,w,INT:A8DCB254:6 Speech_PRED_TYGER2_NewGenric_Smoke_react_02,0,標的はスモークを利用,10,w,INT:A8DCB254:6
Speech_PRED_TYGER2_NewGenric_Smoke_react_04,0,標的はスモークを使用 標的の再追跡を試行,20,w,INT:A8DCB254:1 Speech_PRED_TYGER2_NewGenric_Smoke_react_04,0,標的はスモークを使用 標的の再追跡を試行,20,w,INT:A8DCB254:1
Speech_RADIO_SCAN_CH1_VV_01,0,こんばんは ゴッサムのみなさん ヴィッキー・\nヴェイルです 先ほどはブルース・ウェインが逮捕され\nアーカム・シティに連行される衝撃的な映像を\nお見せしました,81,w,
Speech_RADIO_SCAN_CH1_VV_02,0,今のところ市長は平和的な抗議運動への\n強引なアプローチについて弁明することを拒否しています,46,w,
Speech_RADIO_SCAN_CH1_VV_03,0,この壁の向こうにいるウェイン氏の運命は?\n国際的なプレイボーイとして知られるウェイン氏ですが\n今は泥棒や殺人犯 食人鬼との交友で\n満足するしかありません 彼は生き残れるでしょうか?,93,w,
Speech_RADIO_SCAN_CH1_VV_05,0,ゴッサム・ライブのヴィッキー・ヴェイルです\n続きはまた後ほど,31,w,
Speech_RADIO_SCAN_CH2_VV_Church_01,0,ゴッサムのみなさん 今ご覧になっているのは\nアーカム・シティで起こっていることの生中継です,46,w,
Speech_RADIO_SCAN_CH2_VV_Church_02,0,鐘楼は丸ごと吹き飛ばされました\nなぜ どうやって爆破されたかは\n今のところ分かっていません,47,w,
Speech_RADIO_SCAN_CH2_VV_Church_03,0,分かっているのはバットマンもアーカム・シティの\n壁の内側にいるようだということです,42,w,
Speech_RADIO_SCAN_CH2_VV_Church_04,0,なぜ彼はそこにいるのでしょうか? 現時点では\n推測するしかありません バットマンは\nストレンジ教授と彼のアーカム・シティ計画に\n不満を持っているのでしょうか? それに対して何らかの\n策を講じているのでしょうか?\n私たちは待つしかありません,124,w,
Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_01,0,どうなってるんだ?\nジャマーのシグナルが1つ消えたぞ!,28,w,INT:ABAC53B2:1 Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_01,0,どうなってるんだ?\nジャマーのシグナルが1つ消えたぞ!,28,w,INT:ABAC53B2:1
Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_02,0,すみません 俺にも分かりません,15,w,INT:ABAC53B2:2 Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_02,0,すみません 俺にも分かりません,15,w,INT:ABAC53B2:2
Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_03,0,早く調べろ! もう1つのジャマーが無事か\n確認しろ さもないとジャマーをお前のケツに...,46,w,INT:ABAC53B2:0 Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_03,0,早く調べろ! もう1つのジャマーが無事か\n確認しろ さもないとジャマーをお前のケツに...,46,w,INT:ABAC53B2:0
@@ -5214,6 +5223,10 @@ Speech_RADIO_SCAN_CH6_VV_BM_Losing_lose_2,0,マズいわ バットマンが狙
Speech_RADIO_SCAN_CH6_VV_BM_Losing_lose_3,0,バットマンは不意を突かれたようね\n彼は倒れそうだわ,26,w,INT:DC3DB2D5:0 Speech_RADIO_SCAN_CH6_VV_BM_Losing_lose_3,0,バットマンは不意を突かれたようね\n彼は倒れそうだわ,26,w,INT:DC3DB2D5:0
Speech_RADIO_SCAN_CH6_VV_BM_Winning_NorthEast,0,ディニ・タワーズからの\n銃声はやみました\n狙撃手はもうアパートの屋上に\nいないようです,46,w,INT:C50CF9ED:2 Speech_RADIO_SCAN_CH6_VV_BM_Winning_NorthEast,0,ディニ・タワーズからの\n銃声はやみました\n狙撃手はもうアパートの屋上に\nいないようです,46,w,INT:C50CF9ED:2
Speech_RADIO_SCAN_CH6_VV_BM_Winning_SouthEast,0,こっちを南東から狙っていた\n狙撃手たちはいなくなったようです\nキルシェン・ビルの屋上は今は静かで\n彼らは移動したかやられたかのどちらかでしょう,74,w,INT:C50CF9ED:1 Speech_RADIO_SCAN_CH6_VV_BM_Winning_SouthEast,0,こっちを南東から狙っていた\n狙撃手たちはいなくなったようです\nキルシェン・ビルの屋上は今は静かで\n彼らは移動したかやられたかのどちらかでしょう,74,w,INT:C50CF9ED:1
Speech_RADIO_SCAN_CH6_VV_COURT_01,0,その通りです ドン 囚人たちは\n暴れ回っていて 地上での勢力争いは\n激化したとの情報があります,49,w,
Speech_RADIO_SCAN_CH6_VV_COURT_02,0,この番組をご覧の方なら覚えていらっしゃるように\n私が先ほどインタビューした際\n市長はアーカム・シティへの違法な武器持ち込みを\n制限するためにあらゆる対策を講じたと語っていました,91,w,
Speech_RADIO_SCAN_CH6_VV_COURT_03,0,市長は明確に答えていました\n検疫ゾーン内ではすべての武器が\n違法だと語っていました 無秩序な\n暴動を制圧するためにあらゆる対策を\n講じると約束しました,79,w,
Speech_RADIO_SCAN_CH6_VV_COURT_04,0,みなさんに質問です これは無秩序な暴動に\n見えるでしょうか? 私の意見ではこれはあくまでも\n私見に過ぎませんがこの施設全体が混乱に陥っています,73,w,
Speech_RADIO_SCAN_CH6_VV_SniperIdles_1,0,アーカム・シティ内の\n地上にいる私は この施設が混乱に\n陥っていることを確認できます,44,w,INT:F990D6DF:2 Speech_RADIO_SCAN_CH6_VV_SniperIdles_1,0,アーカム・シティ内の\n地上にいる私は この施設が混乱に\n陥っていることを確認できます,44,w,INT:F990D6DF:2
Speech_RADIO_SCAN_CH6_VV_SniperIdles_3,0,こちらヴィッキー・ヴェイル アーカム・シティ内での\n出来事を生中継しています,39,w,INT:F990D6DF:0 Speech_RADIO_SCAN_CH6_VV_SniperIdles_3,0,こちらヴィッキー・ヴェイル アーカム・シティ内での\n出来事を生中継しています,39,w,INT:F990D6DF:0
Speech_RADIO_SCAN_CH6_VV_SniperIdles_4,0,この放送を聞いた方へ 救援を送ってください,21,w,INT:F990D6DF:3 Speech_RADIO_SCAN_CH6_VV_SniperIdles_4,0,この放送を聞いた方へ 救援を送ってください,21,w,INT:F990D6DF:3
@@ -5237,6 +5250,12 @@ Speech_RADIO_SCAN_CH8_Tyger_Choppers_Leaving_01,0,全航空部隊 攻撃を中
Speech_RADIO_SCAN_FIRST_copter_spot_BM_01,0,こちらAIR TYGER3\nバットマンを視認\n指示を待つ どうぞ,34,w,INT:4374FCBB:2 Speech_RADIO_SCAN_FIRST_copter_spot_BM_01,0,こちらAIR TYGER3\nバットマンを視認\n指示を待つ どうぞ,34,w,INT:4374FCBB:2
Speech_RADIO_SCAN_FIRST_copter_spot_BM_02,0,彼は無害だ\n監視を続行し交戦は避けろ\nバットマンには特別な計画を用意してる,39,w,INT:4374FCBB:0 Speech_RADIO_SCAN_FIRST_copter_spot_BM_02,0,彼は無害だ\n監視を続行し交戦は避けろ\nバットマンには特別な計画を用意してる,39,w,INT:4374FCBB:0
Speech_RADIO_SCAN_FIRST_copter_spot_BM_03,0,了解 パトロール編成に戻ります 以上,18,w,INT:4374FCBB:1 Speech_RADIO_SCAN_FIRST_copter_spot_BM_03,0,了解 パトロール編成に戻ります 以上,18,w,INT:4374FCBB:1
Speech_RADIO_SCAN_GCPD_CH0_Wayne_captured_01,0,全隊へ ブルース・ウェインはTYGERの警備員に\n逮捕されアーカム・シティへ連行されたことを確認,49,w,
Speech_RADIO_SCAN_GCPD_CH0_Wayne_captured_02,0,ゴードンだ 悪夢のような訴訟騒ぎが起きる前に\nゴッサム市警がアーカム・シティへ囚人を連行するのを\n止めろ 警察署でも動物園でもどこでもいい よそへ\n連れていけ とにかくストレンジだけには関わらせるな,102,w,
Speech_RADIO_SCAN_GCPD_CH0_Wayne_captured_03,0,ウェインの弁護士団が大騒ぎしてこっちの経費が\n金持ちの休暇のために削られちゃたまらん 分かったな?,50,w,
Speech_RADIO_SCAN_GCPD_Cop,0,司令所へ ウェスカーが人質を取り\n他の警官に発砲しようとしている,33,w,
Speech_RADIO_SCAN_GCPD_DISPATCH,0,全隊へ ロビンソン・パークで10-34,19,w,
Speech_RADIO_SCAN_Riddler_intro_01,0,バットマン 聞こえるか このリドルを\n聞いてくれ! 闇を止めるには\n光に向かって踏み出すしかない,50,w,
Speech_RADIO_SCAN_Secret1FULL_RADIO_SCAN_Secret1FULL,0,誰か 聞こえる?\n私はバーバラ・ゴードン 攻撃を受けてる\nジョーカー軍は強すぎる\n父は死んだ みんな死んだわ 私たちは負ける\nウェイン邸は陥落した\nジョーカーの勝ちよ こんなこと言うなんて自分でも\n信じられない 奴の勝ちよ 私たちには何もできない\nブルースは死んだ 死んだのよ みんな死んだわ\nもし聞いていたら... 救援を送って お願い...,180,w,INT:C39BDC76 Speech_RADIO_SCAN_Secret1FULL_RADIO_SCAN_Secret1FULL,0,誰か 聞こえる?\n私はバーバラ・ゴードン 攻撃を受けてる\nジョーカー軍は強すぎる\n父は死んだ みんな死んだわ 私たちは負ける\nウェイン邸は陥落した\nジョーカーの勝ちよ こんなこと言うなんて自分でも\n信じられない 奴の勝ちよ 私たちには何もできない\nブルースは死んだ 死んだのよ みんな死んだわ\nもし聞いていたら... 救援を送って お願い...,180,w,INT:C39BDC76
Speech_RADIO_SCAN_Secret1_01,0,誰か聞こえる?,7,w,INT:8D5ACD9D:0 Speech_RADIO_SCAN_Secret1_01,0,誰か聞こえる?,7,w,INT:8D5ACD9D:0
Speech_RADIO_SCAN_Secret1_02,0,私はバーバラ・ゴードン 攻撃を受けてる\nジョーカー軍は強すぎる,32,w,INT:8D5ACD9D:2 Speech_RADIO_SCAN_Secret1_02,0,私はバーバラ・ゴードン 攻撃を受けてる\nジョーカー軍は強すぎる,32,w,INT:8D5ACD9D:2
Can't render this file because it is too large.

View File

@@ -1,4 +1,6 @@
speech,line,text,room,enc,sound speech,line,text,room,enc,sound
Got_enough_trophies_05,0,"마지막 수수께끼를 내지, 어둠의 기사. 솔직히 이 문제를 낼 때까지 살아남으리라곤 기대하지 않았지만, 상관없어. 이 수수께끼를 푸는 것은 쉽지 않으니,",84,w,
Got_enough_trophies_05,1,너와 경비병이 불에 타는 걸 보는 건 시간 문제겠지. 준비됐나?,35,w,
Speech_AUGMENTED_Challenge_Complete_01,0,증강 현실 훈련 완료,11,w,INT:3BC50710 Speech_AUGMENTED_Challenge_Complete_01,0,증강 현실 훈련 완료,11,w,INT:3BC50710
Speech_AUGMENTED_Challenge_Fail_01,0,증강 현실 훈련 실패,11,w,INT:D1FDC955 Speech_AUGMENTED_Challenge_Fail_01,0,증강 현실 훈련 실패,11,w,INT:D1FDC955
Speech_AUGMENTED_Challenge_start_01,0,증강 현실 훈련 활성화,12,w,INT:7F82685B Speech_AUGMENTED_Challenge_start_01,0,증강 현실 훈련 활성화,12,w,INT:7F82685B
@@ -5257,6 +5259,15 @@ Speech_PRED_TYGER2_NewGenric_Smoke_escape_02,0,목표가 탈출하려고 연막
Speech_PRED_TYGER2_NewGenric_Smoke_react_01,0,목표가 연막탄을 사용했다.,14,w,INT:A8DCB254:16 Speech_PRED_TYGER2_NewGenric_Smoke_react_01,0,목표가 연막탄을 사용했다.,14,w,INT:A8DCB254:16
Speech_PRED_TYGER2_NewGenric_Smoke_react_02,0,목표가 연막탄을 사용 중이다.,16,w,INT:A8DCB254:6 Speech_PRED_TYGER2_NewGenric_Smoke_react_02,0,목표가 연막탄을 사용 중이다.,16,w,INT:A8DCB254:6
Speech_PRED_TYGER2_NewGenric_Smoke_react_04,0,목표가 연막탄을 사용했다. 목표를 다시 수색 중이다.,29,w,INT:A8DCB254:1 Speech_PRED_TYGER2_NewGenric_Smoke_react_04,0,목표가 연막탄을 사용했다. 목표를 다시 수색 중이다.,29,w,INT:A8DCB254:1
Speech_RADIO_SCAN_CH1_VV_01,0,"안녕하십니까, 고담 시민 여러분. 비키 베일입니다. 오늘 저녁, 브루스 웨인이 체포되어 아캄시로 끌려가는 모습이 담긴 영상을 보여드렸습니다.",78,w,
Speech_RADIO_SCAN_CH1_VV_02,0,평화적인 시위에 대한 처벌 치고는 가혹하지 않느냐는 질문에 현재까지 시에서는 답변을 거부하고 있습니다.,57,w,
Speech_RADIO_SCAN_CH1_VV_03,0,"세계적인 한량으로 알려진 웨인 씨는 이제 저 안에서 절도범, 살인마, 흉악범 등 범죄자들과 지내게 되었습니다. 어떤 일이 일어날까요? 과연 살아남을 수 있을까요?",90,w,
Speech_RADIO_SCAN_CH1_VV_05,0,지금까지 고담 생방송의 비키 베일이었습니다. 자세한 내용은 잠시 후에 보도하겠습니다.,47,w,
Speech_RADIO_SCAN_CH2_VV_Church_01,0,맞습니다. 고담 시민 여러분. 지금 보시는 이 영상은 아캄시에서 현재 벌어지고 있는 상황입니다.,53,w,
Speech_RADIO_SCAN_CH2_VV_Church_02,0,"종탑이 완전히 폭발한 것 같습니다. 이 시점에서 어떻게, 그리고 왜 이 사건이 발생했는지는 밝혀지지 않았습니다.",62,w,
Speech_RADIO_SCAN_CH2_VV_Church_03,0,현재 알려진 사실은 아캄시의 주 장벽 안에 배트맨이 있다는 것뿐입니다.,39,w,
Speech_RADIO_SCAN_CH2_VV_Church_04,0,배트맨이 왜 저기 있는 걸까요? 지금으로선 추측만 가능한 상황입니다. 배트맨이 스트레인지 교수의 아캄시 계획에 불만이 있는 걸까요?,73,w,
Speech_RADIO_SCAN_CH2_VV_Church_04,1,무슨 일을 벌이고 있는 걸까요? 기다려보는 수밖에 없습니다.,33,w,
Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_01,0,밖에 무슨 일이지? 방해 장치 신호가 하나 사라졌어!,29,w,INT:ABAC53B2:1 Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_01,0,밖에 무슨 일이지? 방해 장치 신호가 하나 사라졌어!,29,w,INT:ABAC53B2:1
Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_02,0,"죄송합니다, 코블팟 씨. 모르겠습니다.",21,w,INT:ABAC53B2:2 Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_02,0,"죄송합니다, 코블팟 씨. 모르겠습니다.",21,w,INT:ABAC53B2:2
Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_03,0,그럼 알아내! 그러면서 다른 방해 장치가 이상 없나 확인하란 말이다. 안 그러면 방해 장치를 네 아가리에 처넣을...,65,w,INT:ABAC53B2:0 Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_03,0,그럼 알아내! 그러면서 다른 방해 장치가 이상 없나 확인하란 말이다. 안 그러면 방해 장치를 네 아가리에 처넣을...,65,w,INT:ABAC53B2:0
@@ -5290,6 +5301,11 @@ Speech_RADIO_SCAN_CH6_VV_BM_Losing_lose_2,0,큰일이군요. 배트맨이 저격
Speech_RADIO_SCAN_CH6_VV_BM_Losing_lose_3,0,배트맨은 전혀 대비를 못했군요. 곧 쓰러질 것 같습니다.,31,w,INT:DC3DB2D5:0 Speech_RADIO_SCAN_CH6_VV_BM_Losing_lose_3,0,배트맨은 전혀 대비를 못했군요. 곧 쓰러질 것 같습니다.,31,w,INT:DC3DB2D5:0
Speech_RADIO_SCAN_CH6_VV_BM_Winning_NorthEast,0,디니 타워에서의 총격 소리가 그쳤군요. 건물 지붕에 있던 저격수들은 더 이상 보이지 않습니다.,52,w,INT:C50CF9ED:2 Speech_RADIO_SCAN_CH6_VV_BM_Winning_NorthEast,0,디니 타워에서의 총격 소리가 그쳤군요. 건물 지붕에 있던 저격수들은 더 이상 보이지 않습니다.,52,w,INT:C50CF9ED:2
Speech_RADIO_SCAN_CH6_VV_BM_Winning_SouthEast,0,"남동쪽에서 자리를 잡고 있던 저격수들이 사라진 것 같습니다. 커션 건물 옥상이 조용해졌군요. 저격수들이 그 자리를 떠났거나, 누군가 저격수들을 전부 처치한 거겠죠.",91,w,INT:C50CF9ED:1 Speech_RADIO_SCAN_CH6_VV_BM_Winning_SouthEast,0,"남동쪽에서 자리를 잡고 있던 저격수들이 사라진 것 같습니다. 커션 건물 옥상이 조용해졌군요. 저격수들이 그 자리를 떠났거나, 누군가 저격수들을 전부 처치한 거겠죠.",91,w,INT:C50CF9ED:1
Speech_RADIO_SCAN_CH6_VV_COURT_01,0,"맞아요, 돈. 죄수들이 날뛰고 있으며 영역 싸움이 더욱 심해지고 있다는 소식까지 들립니다.",50,w,
Speech_RADIO_SCAN_CH6_VV_COURT_02,0,"시청자들께서도 기억하고 계시겠지만, 샤프 시장은 오늘 저녁, 아캄시로의 불법 무기 유입을 근절시키기 위해 모든 조치를 취하겠다고 말했습니다.",78,w,
Speech_RADIO_SCAN_CH6_VV_COURT_03,0,"이 문제에 대해 확실한 의지를 내비친 시장은 모든 불법 무기를 격리 구역으로 이동시키겠다고 했으며,",55,w,
Speech_RADIO_SCAN_CH6_VV_COURT_03,1,이런 무법 상태의 혼란을 막기 위해 모든 조치를 취하겠다고 약속했습니다.,40,w,
Speech_RADIO_SCAN_CH6_VV_COURT_04,0,"자, 고담 시민 여러분. 이 모습이 무법 상태로 인한 혼란처럼 보이십니까? 제 생각에는, 다시 한번 강조하지만 제 생각에는, 모든 구역이 혼란 그 자체입니다.",88,w,
Speech_RADIO_SCAN_CH6_VV_SniperIdles_1,0,"여기, 아캄시 내부는 완전히 혼란에 빠져 있습니다.",28,w,INT:F990D6DF:2 Speech_RADIO_SCAN_CH6_VV_SniperIdles_1,0,"여기, 아캄시 내부는 완전히 혼란에 빠져 있습니다.",28,w,INT:F990D6DF:2
Speech_RADIO_SCAN_CH6_VV_SniperIdles_3,0,여기는 아캄시 내부에서 상황을 생방송으로 보도하고 있는 비키 베일입니다.,40,w,INT:F990D6DF:0 Speech_RADIO_SCAN_CH6_VV_SniperIdles_3,0,여기는 아캄시 내부에서 상황을 생방송으로 보도하고 있는 비키 베일입니다.,40,w,INT:F990D6DF:0
Speech_RADIO_SCAN_CH6_VV_SniperIdles_4,0,"이 방송이 들린다면, 제발 도와주세요.",21,w,INT:F990D6DF:3 Speech_RADIO_SCAN_CH6_VV_SniperIdles_4,0,"이 방송이 들린다면, 제발 도와주세요.",21,w,INT:F990D6DF:3
@@ -5316,6 +5332,13 @@ Speech_RADIO_SCAN_CH8_Tyger_Choppers_Leaving_01,0,모든 공중 대원은 상황
Speech_RADIO_SCAN_FIRST_copter_spot_BM_01,0,여기는 공중 TYGER 3호다. 배트맨을 포착했다. 명령을 내려달라.,38,w,INT:4374FCBB:2 Speech_RADIO_SCAN_FIRST_copter_spot_BM_01,0,여기는 공중 TYGER 3호다. 배트맨을 포착했다. 명령을 내려달라.,38,w,INT:4374FCBB:2
Speech_RADIO_SCAN_FIRST_copter_spot_BM_02,0,"놈은 무시하라. 놈의 행동을 계속 감시하되, 교전하진 마라. 배트맨을 위한 특별한 계획이 따로 있다.",56,w,INT:4374FCBB:0 Speech_RADIO_SCAN_FIRST_copter_spot_BM_02,0,"놈은 무시하라. 놈의 행동을 계속 감시하되, 교전하진 마라. 배트맨을 위한 특별한 계획이 따로 있다.",56,w,INT:4374FCBB:0
Speech_RADIO_SCAN_FIRST_copter_spot_BM_03,0,알았다. 순찰 진형으로 다시 돌아간다. 이상.,25,w,INT:4374FCBB:1 Speech_RADIO_SCAN_FIRST_copter_spot_BM_03,0,알았다. 순찰 진형으로 다시 돌아간다. 이상.,25,w,INT:4374FCBB:1
Speech_RADIO_SCAN_GCPD_CH0_Wayne_captured_01,0,모든 대원은 들어라. TYGER 경비병들이 브루스 웨인을 체포해서 아캄시로 이송했다는 사실을 확인했다.,57,w,
Speech_RADIO_SCAN_GCPD_CH0_Wayne_captured_02,0,여기는 고든이다. 상황이 꼬여서 복잡해지기 전에 법적으로 문제가 되지 않도록 막아라. 모든 GCPD 경관들은 아캄시로의 죄수 이송을 저지하라.,79,w,
Speech_RADIO_SCAN_GCPD_CH0_Wayne_captured_02,1,"GCPD로 데려가던지, 동물원으로 데려가던지. 아무튼 그 미친 스트레인지가 죄수들한테 손대지 못하게 해야 한다.",62,w,
Speech_RADIO_SCAN_GCPD_CH0_Wayne_captured_03,0,웨인의 변호사가 이번 일에 대해 조사 중이다. 우리 예산이 부자들 휴가비로 날아갈지도 모르니 정신 바짝 차리도록. 알겠나!,68,w,
Speech_RADIO_SCAN_GCPD_Cop,0,알린다. 웨스커가 다른 경찰관들에게 발포하며 인질을 한 명 잡고 있다.,39,w,
Speech_RADIO_SCAN_GCPD_DISPATCH,0,"모든 대원, 로빈슨 공원에 10-34 상황이 발생했다.",30,w,
Speech_RADIO_SCAN_Riddler_intro_01,0,배트맨. 내 말 들리나? 이 수수께끼를 잘 들어봐! 어둠을 막는 유일한 방법은 빛을 향해 나아가는 것뿐이다.,60,w,
Speech_RADIO_SCAN_Secret1FULL_RADIO_SCAN_Secret1FULL,0,"내 말이 들리나요? 제 이름은 바바라 고든입니다. 공격받고 있어요. 조커의 군단이 너무 강력해요. 제 아버지는 죽었어요. 빌어먹을, 모두 다 죽었어요.",84,w,INT:C39BDC76 Speech_RADIO_SCAN_Secret1FULL_RADIO_SCAN_Secret1FULL,0,"내 말이 들리나요? 제 이름은 바바라 고든입니다. 공격받고 있어요. 조커의 군단이 너무 강력해요. 제 아버지는 죽었어요. 빌어먹을, 모두 다 죽었어요.",84,w,INT:C39BDC76
Speech_RADIO_SCAN_Secret1FULL_RADIO_SCAN_Secret1FULL,1,이제 다 끝장이에요. 웨인 저택이 위험해요. 믿기 힘들지만 조커가 승리했군요. 놈이 이겼어요. 우리가 할 수 있는 일이라곤 아무것도 없어요.,78,w,INT:C39BDC76 Speech_RADIO_SCAN_Secret1FULL_RADIO_SCAN_Secret1FULL,1,이제 다 끝장이에요. 웨인 저택이 위험해요. 믿기 힘들지만 조커가 승리했군요. 놈이 이겼어요. 우리가 할 수 있는 일이라곤 아무것도 없어요.,78,w,INT:C39BDC76
Speech_RADIO_SCAN_Secret1FULL_RADIO_SCAN_Secret1FULL,2,브루스는 죽었어요. 모두 죽었어요. 누군가 이걸 듣고 있다면 제발... 도와주세요...,48,w,INT:C39BDC76 Speech_RADIO_SCAN_Secret1FULL_RADIO_SCAN_Secret1FULL,2,브루스는 죽었어요. 모두 죽었어요. 누군가 이걸 듣고 있다면 제발... 도와주세요...,48,w,INT:C39BDC76
Can't render this file because it is too large.

View File

@@ -1,4 +1,7 @@
speech,line,text,room,enc,sound speech,line,text,room,enc,sound
Got_enough_trophies_05,0,"Mam dla ciebie ostatnią zagadkę, Mroczny Rycerzu. Muszę przyznać, że nie spodziewałem się, że dożyjesz do tego momentu, ale nieważne.",133,w,
Got_enough_trophies_05,1,"Jeśli rozwiążesz tę zagadkę, odblokujesz wyzwanie tak pokrętne, że nie będę musiał długo czekać, aż zobaczę jak ty i ten strażnik płoniecie.",140,w,
Got_enough_trophies_05,2,Jesteś gotowy?,14,w,
Speech_AUGMENTED_Challenge_Complete_01,0,Trening rzeczywistości rozszerzonej zaliczony.,46,w,INT:3BC50710 Speech_AUGMENTED_Challenge_Complete_01,0,Trening rzeczywistości rozszerzonej zaliczony.,46,w,INT:3BC50710
Speech_AUGMENTED_Challenge_Fail_01,0,Trening rzeczywistości rozszerzonej niezaliczony.,49,w,INT:D1FDC955 Speech_AUGMENTED_Challenge_Fail_01,0,Trening rzeczywistości rozszerzonej niezaliczony.,49,w,INT:D1FDC955
Speech_AUGMENTED_Challenge_start_01,0,Trening rzeczywistości rozszerzonej aktywowany.,47,w,INT:7F82685B Speech_AUGMENTED_Challenge_start_01,0,Trening rzeczywistości rozszerzonej aktywowany.,47,w,INT:7F82685B
@@ -5307,6 +5310,16 @@ Speech_PRED_TYGER2_NewGenric_Smoke_escape_02,0,Cel wypuścił zasłonę dymną.
Speech_PRED_TYGER2_NewGenric_Smoke_react_01,0,Cel wypuścił zasłonę dymną.,27,w,INT:A8DCB254:16 Speech_PRED_TYGER2_NewGenric_Smoke_react_01,0,Cel wypuścił zasłonę dymną.,27,w,INT:A8DCB254:16
Speech_PRED_TYGER2_NewGenric_Smoke_react_02,0,Cel używa dymu.,15,w,INT:A8DCB254:6 Speech_PRED_TYGER2_NewGenric_Smoke_react_02,0,Cel używa dymu.,15,w,INT:A8DCB254:6
Speech_PRED_TYGER2_NewGenric_Smoke_react_04,0,Cel wypuścił zasłonę dymną. Próbujemy go zlokalizować.,54,w,INT:A8DCB254:1 Speech_PRED_TYGER2_NewGenric_Smoke_react_04,0,Cel wypuścił zasłonę dymną. Próbujemy go zlokalizować.,54,w,INT:A8DCB254:1
Speech_RADIO_SCAN_CH1_VV_01,0,"Dobry wieczór, Gotham. Mówi Vicki Vale. Wcześniej pokazywaliśmy dramatyczny materiał z zatrzymania Bruce'a Wayne'a i zamknięcia go w Arkham City.",145,w,
Speech_RADIO_SCAN_CH1_VV_02,0,"Jak dotąd, kancelaria burmistrza odmawia komentarzy na temat siłowej pacyfikacji pokojowego protestu.",101,w,
Speech_RADIO_SCAN_CH1_VV_03,0,"Co się stanie z Waynem za tymi murami? Ten międzynarodowy playboy będzie musiał zmierzyć się ze złodziejami, mordercami i kanibalami.",133,w,
Speech_RADIO_SCAN_CH1_VV_03,1,Czy uda mu się przeżyć?,23,w,
Speech_RADIO_SCAN_CH1_VV_05,0,"Mówiła Vicki Vale, na żywo z Gotham. Więcej szczegółów w dalszej części programu.",81,w,
Speech_RADIO_SCAN_CH2_VV_Church_01,0,"Właśnie tak, Gotham. Patrzycie na dramatyczne obrazy na żywo z Arkham City.",75,w,
Speech_RADIO_SCAN_CH2_VV_Church_02,0,"Wybuchła dzwonnica. Jak i dlaczego to się stało, wciąż pozostaje tajemnicą.",75,w,
Speech_RADIO_SCAN_CH2_VV_Church_03,0,"Wiemy natomiast, że Batman też jest za murami Arkham City.",58,w,
Speech_RADIO_SCAN_CH2_VV_Church_04,0,Dlaczego się tam znalazł? W tym momencie możemy jedynie spekulować.,67,w,
Speech_RADIO_SCAN_CH2_VV_Church_04,1,Czy Batmanowi nie spodobały się plany profesora Strange wobec Arkham City? Czy chce się im przeciwstawić? Czas pokaże.,118,w,
Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_01,0,Co się dzieje? Zniknął sygnał jednego z zakłócaczy!,51,w,INT:ABAC53B2:1 Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_01,0,Co się dzieje? Zniknął sygnał jednego z zakłócaczy!,51,w,INT:ABAC53B2:1
Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_02,0,"Przepraszam, panie Cobblepot. Nie wiem.",39,a,INT:ABAC53B2:2 Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_02,0,"Przepraszam, panie Cobblepot. Nie wiem.",39,a,INT:ABAC53B2:2
Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_03,0,"Więc dowiedz się! A w międzyczasie zadbaj o to, żeby drugi zakłócacz był bezpieczny, bo inaczej znajdę cię i wsadzę ci to, co z niego zostało w...",146,w,INT:ABAC53B2:0 Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_03,0,"Więc dowiedz się! A w międzyczasie zadbaj o to, żeby drugi zakłócacz był bezpieczny, bo inaczej znajdę cię i wsadzę ci to, co z niego zostało w...",146,w,INT:ABAC53B2:0
@@ -5342,6 +5355,12 @@ Speech_RADIO_SCAN_CH6_VV_BM_Losing_lose_3,0,Batman się tego nie spodziewał. Ch
Speech_RADIO_SCAN_CH6_VV_BM_Winning_NorthEast,0,Zakończył się ostrzał z Dini Towers. Nie widzę już snajperów na dachu apartamentowca.,85,w,INT:C50CF9ED:2 Speech_RADIO_SCAN_CH6_VV_BM_Winning_NorthEast,0,Zakończył się ostrzał z Dini Towers. Nie widzę już snajperów na dachu apartamentowca.,85,w,INT:C50CF9ED:2
Speech_RADIO_SCAN_CH6_VV_BM_Winning_SouthEast,0,"Wygląda na to, że snajperzy, ostrzeliwujący mnie z południowego wschodu, wycofali się. Na dachu budynku Kirshen jest już spokój.",128,w,INT:C50CF9ED:1 Speech_RADIO_SCAN_CH6_VV_BM_Winning_SouthEast,0,"Wygląda na to, że snajperzy, ostrzeliwujący mnie z południowego wschodu, wycofali się. Na dachu budynku Kirshen jest już spokój.",128,w,INT:C50CF9ED:1
Speech_RADIO_SCAN_CH6_VV_BM_Winning_SouthEast,1,"Albo snajperzy odeszli, albo zostali zastrzeleni.",49,a,INT:C50CF9ED:1 Speech_RADIO_SCAN_CH6_VV_BM_Winning_SouthEast,1,"Albo snajperzy odeszli, albo zostali zastrzeleni.",49,a,INT:C50CF9ED:1
Speech_RADIO_SCAN_CH6_VV_COURT_01,0,"Zgadza się, Don. Więźniowie szaleją i dostaję sygnały, że dochodzi do eskalacji wojny ulicznej.",95,w,
Speech_RADIO_SCAN_CH6_VV_COURT_02,0,"Wszyscy stali widzowie na pewno pamiętają, że podczas naszej dzisiejszej rozmowy burmistrz zapewniał, że podjęto wszelkie kroki,",128,w,
Speech_RADIO_SCAN_CH6_VV_COURT_02,1,by zahamować przepływ nielegalnej broni do Arkham City.,55,w,
Speech_RADIO_SCAN_CH6_VV_COURT_03,0,"Burmistrz wypowiadał się bardzo stanowczo. Powiedział, że w strefie kwarantanny broń jest nielegalna.",101,w,
Speech_RADIO_SCAN_CH6_VV_COURT_03,1,"Obiecał, że użyto wszelkich możliwych środków, by zdławić anarchistyczne zamieszki.",83,w,
Speech_RADIO_SCAN_CH6_VV_COURT_04,0,"A więc, Gotham, zadam pytanie. Czy to wygląda jak anarchistyczne zamieszki? Moim zdaniem - i powtarzam - to moje zdanie - zapanował tu zupełny chaos.",149,w,
Speech_RADIO_SCAN_CH6_VV_SniperIdles_1,0,"Z ulic Arkham City mogę potwierdzić, że to miejsce pogrążone jest w chaosie.",76,w,INT:F990D6DF:2 Speech_RADIO_SCAN_CH6_VV_SniperIdles_1,0,"Z ulic Arkham City mogę potwierdzić, że to miejsce pogrążone jest w chaosie.",76,w,INT:F990D6DF:2
Speech_RADIO_SCAN_CH6_VV_SniperIdles_3,0,"Tu Vicki Vale, nadaję na żywo z Arkham City.",44,w,INT:F990D6DF:0 Speech_RADIO_SCAN_CH6_VV_SniperIdles_3,0,"Tu Vicki Vale, nadaję na żywo z Arkham City.",44,w,INT:F990D6DF:0
Speech_RADIO_SCAN_CH6_VV_SniperIdles_4,0,"Jeśli ktoś mnie słyszy, proszę, przyślijcie pomoc.",50,w,INT:F990D6DF:3 Speech_RADIO_SCAN_CH6_VV_SniperIdles_4,0,"Jeśli ktoś mnie słyszy, proszę, przyślijcie pomoc.",50,w,INT:F990D6DF:3
@@ -5368,6 +5387,14 @@ Speech_RADIO_SCAN_CH8_Tyger_Choppers_Leaving_01,0,Niech zgłoszą się wszystkie
Speech_RADIO_SCAN_FIRST_copter_spot_BM_01,0,Tutaj Air TYGER 3. Widzimy Batmana. Czekamy na rozkazy. Odbiór.,63,a,INT:4374FCBB:2 Speech_RADIO_SCAN_FIRST_copter_spot_BM_01,0,Tutaj Air TYGER 3. Widzimy Batmana. Czekamy na rozkazy. Odbiór.,63,a,INT:4374FCBB:2
Speech_RADIO_SCAN_FIRST_copter_spot_BM_02,0,"Jest niegroźny. Obserwujcie go, ale nie angażujcie się w walkę. Mamy wobec niego specjalne plany.",97,w,INT:4374FCBB:0 Speech_RADIO_SCAN_FIRST_copter_spot_BM_02,0,"Jest niegroźny. Obserwujcie go, ale nie angażujcie się w walkę. Mamy wobec niego specjalne plany.",97,w,INT:4374FCBB:0
Speech_RADIO_SCAN_FIRST_copter_spot_BM_03,0,Tak jest. Wracamy do formacji patrolowej. Bez odbioru.,54,a,INT:4374FCBB:1 Speech_RADIO_SCAN_FIRST_copter_spot_BM_03,0,Tak jest. Wracamy do formacji patrolowej. Bez odbioru.,54,a,INT:4374FCBB:1
Speech_RADIO_SCAN_GCPD_CH0_Wayne_captured_01,0,"Do wszystkich. Mamy potwierdzenie, że Bruce Wayne został aresztowany przez strażników TYGER i zabrany do Arkham City.",117,w,
Speech_RADIO_SCAN_GCPD_CH0_Wayne_captured_02,0,"Mówi Gordon. Nie możemy dopuścić, żeby ta sytuacja przerodziła się w koszmar,",77,w,
Speech_RADIO_SCAN_GCPD_CH0_Wayne_captured_02,1,"więc niech wszyscy funkcjonariusze przestaną doprowadzać więźniów do Arkham City. Bierzcie ich na komisariat, do zoo, wszystko jedno.",133,w,
Speech_RADIO_SCAN_GCPD_CH0_Wayne_captured_02,2,Byle tylko nie dostali się w ręce tego szaleńca Strange'a.,58,w,
Speech_RADIO_SCAN_GCPD_CH0_Wayne_captured_03,0,"Adwokaci Wayne'a rzucą się na nas, a nie chcę, żeby obcięli mi budżet o połowę, żeby zapłacić za następne wakacje jakiegoś nadzianego kolesia. Jasne?",149,w,
Speech_RADIO_SCAN_GCPD_Cop,0,"Centrala, Wesker wziął zakładnika i strzela do policjantów.",59,w,
Speech_RADIO_SCAN_GCPD_DISPATCH,0,"Do wszystkich, włamanie w Robinson Park.",40,w,
Speech_RADIO_SCAN_Riddler_intro_01,0,"Batmanie, słyszysz mnie? Mam ci coś do powiedzenia. Jedyny sposób na powstrzymanie ciemności to krok ku światłu.",112,w,
Speech_RADIO_SCAN_Secret1FULL_RADIO_SCAN_Secret1FULL,0,Czy ktoś mnie słyszy? Nazywam się Barbara Gordon. Atakują nas. Ludzi Jokera jest zbyt wielu. Mój ojciec nie żyje. Wszyscy nie żyją! Przegramy.,142,w,INT:C39BDC76 Speech_RADIO_SCAN_Secret1FULL_RADIO_SCAN_Secret1FULL,0,Czy ktoś mnie słyszy? Nazywam się Barbara Gordon. Atakują nas. Ludzi Jokera jest zbyt wielu. Mój ojciec nie żyje. Wszyscy nie żyją! Przegramy.,142,w,INT:C39BDC76
Speech_RADIO_SCAN_Secret1FULL_RADIO_SCAN_Secret1FULL,1,"Wtargnęli do posiadłości Wayne'a. Joker wygrał. Nie do wiary, że to mówię. On wygrał. Nic nie możemy zrobić. Bruce nie żyje. Zginął. Wszyscy zginęli.",149,w,INT:C39BDC76 Speech_RADIO_SCAN_Secret1FULL_RADIO_SCAN_Secret1FULL,1,"Wtargnęli do posiadłości Wayne'a. Joker wygrał. Nie do wiary, że to mówię. On wygrał. Nic nie możemy zrobić. Bruce nie żyje. Zginął. Wszyscy zginęli.",149,w,INT:C39BDC76
Speech_RADIO_SCAN_Secret1FULL_RADIO_SCAN_Secret1FULL,2,Jeśli mnie słyszycie... Przyślijcie pomoc. Proszę...,52,w,INT:C39BDC76 Speech_RADIO_SCAN_Secret1FULL_RADIO_SCAN_Secret1FULL,2,Jeśli mnie słyszycie... Przyślijcie pomoc. Proszę...,52,w,INT:C39BDC76
Can't render this file because it is too large.

View File

@@ -1,4 +1,7 @@
speech,line,text,room,enc,sound speech,line,text,room,enc,sound
Got_enough_trophies_05,0,"Aqui está sua última charada, Cavaleiro das Trevas. Devo admitir que não esperava que você fosse mesmo sobreviver o bastante para ouvi-la,",138,a,
Got_enough_trophies_05,1,mas não importa. Resolver esta charada vai liberar um desafio tão diabólico que será apenas questão de tempo até eu vir você e aquele,133,a,
Got_enough_trophies_05,2,guarda queimando. Está pronto?,30,a,
Speech_AUGMENTED_Challenge_Complete_01,0,Treinamento de Realidade Aumentada concluído.,45,a,INT:3BC50710 Speech_AUGMENTED_Challenge_Complete_01,0,Treinamento de Realidade Aumentada concluído.,45,a,INT:3BC50710
Speech_AUGMENTED_Challenge_Fail_01,0,Treinamento de Realidade Aumentada falho.,41,a,INT:D1FDC955 Speech_AUGMENTED_Challenge_Fail_01,0,Treinamento de Realidade Aumentada falho.,41,a,INT:D1FDC955
Speech_AUGMENTED_Challenge_start_01,0,Treinamento de Realidade Aumentada ativado.,43,a,INT:7F82685B Speech_AUGMENTED_Challenge_start_01,0,Treinamento de Realidade Aumentada ativado.,43,a,INT:7F82685B
@@ -5351,6 +5354,16 @@ Speech_PRED_TYGER2_NewGenric_Smoke_escape_02,0,O alvo usou fumaça para fugir. O
Speech_PRED_TYGER2_NewGenric_Smoke_react_01,0,O alvo usou fumaça.,19,a,INT:A8DCB254:16 Speech_PRED_TYGER2_NewGenric_Smoke_react_01,0,O alvo usou fumaça.,19,a,INT:A8DCB254:16
Speech_PRED_TYGER2_NewGenric_Smoke_react_02,0,O alvo está usando fumaça.,26,a,INT:A8DCB254:6 Speech_PRED_TYGER2_NewGenric_Smoke_react_02,0,O alvo está usando fumaça.,26,a,INT:A8DCB254:6
Speech_PRED_TYGER2_NewGenric_Smoke_react_04,0,O alvo usou fumaça. Tentando relocalizar alvo.,46,a,INT:A8DCB254:1 Speech_PRED_TYGER2_NewGenric_Smoke_react_04,0,O alvo usou fumaça. Tentando relocalizar alvo.,46,a,INT:A8DCB254:1
Speech_RADIO_SCAN_CH1_VV_01,0,"Boa noite, Gotham. Aqui é Vicki Vale. Já mostramos o dramático vídeo de Bruce Wayne sendo preso e arrastado para Arkham City.",125,a,
Speech_RADIO_SCAN_CH1_VV_02,0,"Até agora, a prefeitura se recusou a explicar essa abordagem repressora a um protesto pacífico.",95,a,
Speech_RADIO_SCAN_CH1_VV_03,0,O que vai acontecer com o sr. Wayne por trás dessas muralhas?,61,a,
Speech_RADIO_SCAN_CH1_VV_03,1,"Conhecido como playboy internacional, agora ele vai ter que lidar com ladrões, assassinos e canibais. Ele irá sobreviver?",121,a,
Speech_RADIO_SCAN_CH1_VV_05,0,"Aqui é Vicki Vale, ao vivo de Gotham. Mais notícias a seguir.",61,a,
Speech_RADIO_SCAN_CH2_VV_Church_01,0,"É isso mesmo, Gotham. Vocês estão vendo imagens dramáticas, ao vivo em Arkham City.",83,a,
Speech_RADIO_SCAN_CH2_VV_Church_02,0,Parece que a torre do sino explodiu completamente. Ainda não sabemos como e por que isso aconteceu.,99,a,
Speech_RADIO_SCAN_CH2_VV_Church_03,0,O que sabemos é que Batman também parece estar dentro de Arkham City.,69,a,
Speech_RADIO_SCAN_CH2_VV_Church_04,0,"Por que ele está aqui? Por enquanto, só podemos especular. Batman está insatisfeito com o Professor Strange e seus planos para Arkham City?",139,a,
Speech_RADIO_SCAN_CH2_VV_Church_04,1,O que ele estará fazendo em relação a isso? Só o tempo vai dizer.,65,a,
Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_01,0,O que está havendo aí? O sinal de um dos anuladores sumiu!,58,a,INT:ABAC53B2:1 Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_01,0,O que está havendo aí? O sinal de um dos anuladores sumiu!,58,a,INT:ABAC53B2:1
Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_02,0,"Desculpe, Sr. Cobblepot. Não sei.",33,a,INT:ABAC53B2:2 Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_02,0,"Desculpe, Sr. Cobblepot. Não sei.",33,a,INT:ABAC53B2:2
Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_03,0,"Bem, descubra! Enquanto isso, cuide para deixar o outro anulador seguro, ou vou lhe encontrar e enfiar o que sobrar dele...",123,a,INT:ABAC53B2:0 Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_03,0,"Bem, descubra! Enquanto isso, cuide para deixar o outro anulador seguro, ou vou lhe encontrar e enfiar o que sobrar dele...",123,a,INT:ABAC53B2:0
@@ -5386,6 +5399,13 @@ Speech_RADIO_SCAN_CH6_VV_BM_Losing_lose_2,0,Isso não é bom. O Batman está sen
Speech_RADIO_SCAN_CH6_VV_BM_Losing_lose_3,0,O Batman nem viu o que o atingiu. Parece que vai cair.,54,a,INT:DC3DB2D5:0 Speech_RADIO_SCAN_CH6_VV_BM_Losing_lose_3,0,O Batman nem viu o que o atingiu. Parece que vai cair.,54,a,INT:DC3DB2D5:0
Speech_RADIO_SCAN_CH6_VV_BM_Winning_NorthEast,0,Os tiros das Torres Dini pararam. Não vejo mais os atiradores na cobertura do prédio.,85,a,INT:C50CF9ED:2 Speech_RADIO_SCAN_CH6_VV_BM_Winning_NorthEast,0,Os tiros das Torres Dini pararam. Não vejo mais os atiradores na cobertura do prédio.,85,a,INT:C50CF9ED:2
Speech_RADIO_SCAN_CH6_VV_BM_Winning_SouthEast,0,Parece que os atiradores que cobriam minha posição do sudoeste se foram. A cobertura do edifício Kirshen está quieta. Ou todos saíram ou alguém os eliminou.,156,a,INT:C50CF9ED:1 Speech_RADIO_SCAN_CH6_VV_BM_Winning_SouthEast,0,Parece que os atiradores que cobriam minha posição do sudoeste se foram. A cobertura do edifício Kirshen está quieta. Ou todos saíram ou alguém os eliminou.,156,a,INT:C50CF9ED:1
Speech_RADIO_SCAN_CH6_VV_COURT_01,0,"É isso mesmo, Don. Os internos estão como loucos e há relatos de que a guerra de gangues piorou.",96,a,
Speech_RADIO_SCAN_CH6_VV_COURT_02,0,"Como os telespectadores devem se lembrar, quando falei com o prefeito mais cedo,",80,a,
Speech_RADIO_SCAN_CH6_VV_COURT_02,1,ele disse que todas as medidas seriam tomadas para restringir a entrada ilegal de armas em Arkham City.,103,a,
Speech_RADIO_SCAN_CH6_VV_COURT_03,0,O prefeito foi muito claro em sua resposta. Ele disse que todas as armas são ilegais na zona de quarentena.,107,a,
Speech_RADIO_SCAN_CH6_VV_COURT_03,1,Ele prometeu que todas as medidas possíveis seriam tomadas para controlar essas explosões de anarquia.,102,a,
Speech_RADIO_SCAN_CH6_VV_COURT_04,0,"Então, Gotham, eu pergunto a vocês. Isso parece uma explosão de anarquia?",73,a,
Speech_RADIO_SCAN_CH6_VV_COURT_04,1,"Na minha opinião, e eu destaco que é apenas minha opinião, o lugar inteiro está um caos.",88,a,
Speech_RADIO_SCAN_CH6_VV_SniperIdles_1,0,"Aqui do solo, dentro de Arkham City, posso confirmar que o local está um caos.",78,a,INT:F990D6DF:2 Speech_RADIO_SCAN_CH6_VV_SniperIdles_1,0,"Aqui do solo, dentro de Arkham City, posso confirmar que o local está um caos.",78,a,INT:F990D6DF:2
Speech_RADIO_SCAN_CH6_VV_SniperIdles_3,0,"Aqui é Vicki Vale, mostrando os eventos em Arkham City ao vivo.",63,a,INT:F990D6DF:0 Speech_RADIO_SCAN_CH6_VV_SniperIdles_3,0,"Aqui é Vicki Vale, mostrando os eventos em Arkham City ao vivo.",63,a,INT:F990D6DF:0
Speech_RADIO_SCAN_CH6_VV_SniperIdles_4,0,"Se alguém estiver ouvindo esta transmissão, por favor, me ajude.",64,a,INT:F990D6DF:3 Speech_RADIO_SCAN_CH6_VV_SniperIdles_4,0,"Se alguém estiver ouvindo esta transmissão, por favor, me ajude.",64,a,INT:F990D6DF:3
@@ -5412,6 +5432,14 @@ Speech_RADIO_SCAN_CH8_Tyger_Choppers_Leaving_01,0,"Todas as unidades aéreas, se
Speech_RADIO_SCAN_FIRST_copter_spot_BM_01,0,Aqui é unidade aérea TYGER 3. Estamos vendo o Batman. Aguardando ordens. Câmbio.,80,a,INT:4374FCBB:2 Speech_RADIO_SCAN_FIRST_copter_spot_BM_01,0,Aqui é unidade aérea TYGER 3. Estamos vendo o Batman. Aguardando ordens. Câmbio.,80,a,INT:4374FCBB:2
Speech_RADIO_SCAN_FIRST_copter_spot_BM_02,0,"Ele é inofensivo. Continuem monitorando seu progresso, mas não entrem em combate. Temos planos especiais para o Batman.",119,a,INT:4374FCBB:0 Speech_RADIO_SCAN_FIRST_copter_spot_BM_02,0,"Ele é inofensivo. Continuem monitorando seu progresso, mas não entrem em combate. Temos planos especiais para o Batman.",119,a,INT:4374FCBB:0
Speech_RADIO_SCAN_FIRST_copter_spot_BM_03,0,Afirmativo. Voltando à formação de patrulha. Câmbio e desligo.,62,a,INT:4374FCBB:1 Speech_RADIO_SCAN_FIRST_copter_spot_BM_03,0,Afirmativo. Voltando à formação de patrulha. Câmbio e desligo.,62,a,INT:4374FCBB:1
Speech_RADIO_SCAN_GCPD_CH0_Wayne_captured_01,0,Todas as unidades. Confirmamos que Bruce Wayne foi preso pelos guardas da TYGER e levado para Arkham City.,106,a,
Speech_RADIO_SCAN_GCPD_CH0_Wayne_captured_02,0,"Aqui é Gordon. Para que essa situação não vire um maldito pesadelo jurídico,",76,a,
Speech_RADIO_SCAN_GCPD_CH0_Wayne_captured_02,1,quero que todos os oficiais do DPGC parem de levar prisioneiros para Arkham City.,81,a,
Speech_RADIO_SCAN_GCPD_CH0_Wayne_captured_02,2,"Levem-nos para o DPGC, para o zoológico, para o raio que os partam, mas não deixe o maníaco do Strange pôr as mãos neles.",121,a,
Speech_RADIO_SCAN_GCPD_CH0_Wayne_captured_03,0,"Os advogados do Wayne vão ter um dia cheio com isso, e não quero meu orçamento cortado para pagar as férias de um ricaço. Entendido?",132,a,
Speech_RADIO_SCAN_GCPD_Cop,0,"Central, Wesker pegou um refém e está atirando nos outros oficiais.",67,a,
Speech_RADIO_SCAN_GCPD_DISPATCH,0,"Todas as unidades, temos um 10-34 em curso no Robinson Park.",60,a,
Speech_RADIO_SCAN_Riddler_intro_01,0,"Batman. Se estiver ouvindo, preste atenção a esta charada! O único jeito de deter a escuridão é andar em direção à luz.",119,a,
Speech_RADIO_SCAN_Secret1FULL_RADIO_SCAN_Secret1FULL,0,Alguém está ouvindo? Meu nome é Barbara Gordon. Estamos sob ataque. As tropas do Coringa são fortes demais. Meu pai está morto.,127,a,INT:C39BDC76 Speech_RADIO_SCAN_Secret1FULL_RADIO_SCAN_Secret1FULL,0,Alguém está ouvindo? Meu nome é Barbara Gordon. Estamos sob ataque. As tropas do Coringa são fortes demais. Meu pai está morto.,127,a,INT:C39BDC76
Speech_RADIO_SCAN_Secret1FULL_RADIO_SCAN_Secret1FULL,1,"Droga, todos estão mortos. Vamos perder. A Mansão Wayne foi comprometida. O Coringa venceu. Não acredito que estou dizendo isso. Ele venceu.",140,a,INT:C39BDC76 Speech_RADIO_SCAN_Secret1FULL_RADIO_SCAN_Secret1FULL,1,"Droga, todos estão mortos. Vamos perder. A Mansão Wayne foi comprometida. O Coringa venceu. Não acredito que estou dizendo isso. Ele venceu.",140,a,INT:C39BDC76
Speech_RADIO_SCAN_Secret1FULL_RADIO_SCAN_Secret1FULL,2,Não há nada que possamos fazer. Bruce está morto. Ele se foi. Todos se foram. Se alguém ouvir... Mande ajuda. Por favor...,122,a,INT:C39BDC76 Speech_RADIO_SCAN_Secret1FULL_RADIO_SCAN_Secret1FULL,2,Não há nada que possamos fazer. Bruce está morto. Ele se foi. Todos se foram. Se alguém ouvir... Mande ajuda. Por favor...,122,a,INT:C39BDC76
Can't render this file because it is too large.

View File

@@ -1,4 +1,7 @@
speech,line,text,room,enc,sound speech,line,text,room,enc,sound
Got_enough_trophies_05,0,"Вот и последняя загадка, Темный Рыцарь. Должен признаться, я не думал, что ты хотя бы проживешь достаточно долго,",113,w,
Got_enough_trophies_05,1,"чтобы ее услышать. Тем не менее. Решение загадки приведет к испытанию настолько страшному, что будет лишь вопросом времени,",123,w,
Got_enough_trophies_05,2,когда вы с этим охранником сгорите. Ты готов?,45,w,
Speech_AUGMENTED_Challenge_Complete_01,0,Тренировка дополненной реальности завершена.,44,w,INT:3BC50710 Speech_AUGMENTED_Challenge_Complete_01,0,Тренировка дополненной реальности завершена.,44,w,INT:3BC50710
Speech_AUGMENTED_Challenge_Fail_01,0,Тренировка дополненной реальности провалена.,44,w,INT:D1FDC955 Speech_AUGMENTED_Challenge_Fail_01,0,Тренировка дополненной реальности провалена.,44,w,INT:D1FDC955
Speech_AUGMENTED_Challenge_start_01,0,Тренировка дополненной реальности активирована.,47,w,INT:7F82685B Speech_AUGMENTED_Challenge_start_01,0,Тренировка дополненной реальности активирована.,47,w,INT:7F82685B
@@ -5365,6 +5368,17 @@ Speech_PRED_TYGER2_NewGenric_Smoke_escape_02,0,"Цель применяет ды
Speech_PRED_TYGER2_NewGenric_Smoke_react_01,0,Цель использует дым.,20,w,INT:A8DCB254:16 Speech_PRED_TYGER2_NewGenric_Smoke_react_01,0,Цель использует дым.,20,w,INT:A8DCB254:16
Speech_PRED_TYGER2_NewGenric_Smoke_react_02,0,Цель применяет дым.,19,w,INT:A8DCB254:6 Speech_PRED_TYGER2_NewGenric_Smoke_react_02,0,Цель применяет дым.,19,w,INT:A8DCB254:6
Speech_PRED_TYGER2_NewGenric_Smoke_react_04,0,Цель использует дым. Пытаюсь обнаружить цель.,45,w,INT:A8DCB254:1 Speech_PRED_TYGER2_NewGenric_Smoke_react_04,0,Цель использует дым. Пытаюсь обнаружить цель.,45,w,INT:A8DCB254:1
Speech_RADIO_SCAN_CH1_VV_01,0,"Добрый вечер, Готэм. С вами Вики Вэйл. Совсем недавно мы показали вам видеозапись ареста Брюса Уэйна и его помещения под стражу в Аркхэм Сити.",142,w,
Speech_RADIO_SCAN_CH1_VV_02,0,"Пресс-служба мэра города до сих пор отказывается объяснить, чем обоснована столь грубая и резкая реакция на мирный протест.",123,w,
Speech_RADIO_SCAN_CH1_VV_03,0,Что станет с мистером Уэйном за этими стенами?,46,w,
Speech_RADIO_SCAN_CH1_VV_03,1,"Всемирно известный светский лев столкнется с осужденными на пожизненный срок ворами, убийцами и каннибалами. Сможет ли он выжить среди них?",139,w,
Speech_RADIO_SCAN_CH1_VV_05,0,С вами была Вики Вэйл с прямым репортажем для Готэм Лайв. Следите за новыми выпусками.,86,w,
Speech_RADIO_SCAN_CH2_VV_Church_01,0,"Совершенно верно, Готэм. Вы видите живую съемку прямиком из Аркхэм Сити.",72,w,
Speech_RADIO_SCAN_CH2_VV_Church_02,0,"Если я не ошибаюсь, взорвалась вся колокольня целиком. Как и почему это произошло нам пока неизвестно.",102,w,
Speech_RADIO_SCAN_CH2_VV_Church_03,0,"Однако мы знаем наверняка, что Бэтмен тоже находится внутри стен Аркхэм Сити.",77,w,
Speech_RADIO_SCAN_CH2_VV_Church_04,0,Что он там делает? Сейчас мы можем лишь гадать.,47,w,
Speech_RADIO_SCAN_CH2_VV_Church_04,1,"Что, если Бэтмен недоволен профессором Стрейнджем и его планами относительно Аркхэм Сити? Какие шаги он собирается предпринять?",127,w,
Speech_RADIO_SCAN_CH2_VV_Church_04,2,Время покажет.,14,w,
Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_01,0,Что тут происходит? Пропал сигнал от одной глушилки!,52,w,INT:ABAC53B2:1 Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_01,0,Что тут происходит? Пропал сигнал от одной глушилки!,52,w,INT:ABAC53B2:1
Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_02,0,"Простите, мистер Кобблпот. Я не знаю.",37,w,INT:ABAC53B2:2 Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_02,0,"Простите, мистер Кобблпот. Я не знаю.",37,w,INT:ABAC53B2:2
Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_03,0,"Так узнайте! А заодно обеспечьте охрану второй глушилки, или я вас найду и засуну ее остатки вам в...",101,w,INT:ABAC53B2:0 Speech_RADIO_SCAN_CH3_PENG_1Jammer_down_03,0,"Так узнайте! А заодно обеспечьте охрану второй глушилки, или я вас найду и засуну ее остатки вам в...",101,w,INT:ABAC53B2:0
@@ -5399,6 +5413,13 @@ Speech_RADIO_SCAN_CH6_VV_BM_Losing_lose_2,0,Не нравится мне это!
Speech_RADIO_SCAN_CH6_VV_BM_Losing_lose_3,0,"Бэтмен никак не ожидал такого. Кажется, ему конец.",50,w,INT:DC3DB2D5:0 Speech_RADIO_SCAN_CH6_VV_BM_Losing_lose_3,0,"Бэтмен никак не ожидал такого. Кажется, ему конец.",50,w,INT:DC3DB2D5:0
Speech_RADIO_SCAN_CH6_VV_BM_Winning_NorthEast,0,Огонь со стороны башен Дини прекратился. Я больше не вижу снайперов на крыше жилого здания.,91,w,INT:C50CF9ED:2 Speech_RADIO_SCAN_CH6_VV_BM_Winning_NorthEast,0,Огонь со стороны башен Дини прекратился. Я больше не вижу снайперов на крыше жилого здания.,91,w,INT:C50CF9ED:2
Speech_RADIO_SCAN_CH6_VV_BM_Winning_SouthEast,0,"Похоже, прикрытие с юго-востока пропало. На крыше Киршен-билдинг не стреляют. Либо они ушли, либо их убрали.",108,w,INT:C50CF9ED:1 Speech_RADIO_SCAN_CH6_VV_BM_Winning_SouthEast,0,"Похоже, прикрытие с юго-востока пропало. На крыше Киршен-билдинг не стреляют. Либо они ушли, либо их убрали.",108,w,INT:C50CF9ED:1
Speech_RADIO_SCAN_CH6_VV_COURT_01,0,"Все верно, Дон. Заключенные бегают повсюду и поступает информация, что началась война за передел территории.",108,w,
Speech_RADIO_SCAN_CH6_VV_COURT_02,0,"Как наверняка помнят наши постоянные зрители, во время разговора сегодня вечером господин мэр заявил,",101,w,
Speech_RADIO_SCAN_CH6_VV_COURT_02,1,что предпринимаются все усилия чтобы пресечь поставки оружия в Аркхэм Сити.,75,w,
Speech_RADIO_SCAN_CH6_VV_COURT_03,0,Мэр четко и ясно изложил официальную позицию. Любое оружие внутри карантинной зоны запрещено.,93,w,
Speech_RADIO_SCAN_CH6_VV_COURT_03,1,"Он также обещал сделать все, чтобы положить конец мятежам анархистов.",69,w,
Speech_RADIO_SCAN_CH6_VV_COURT_04,0,"Итак, Готэм, позвольте спросить вас - похоже ли это на скромный мятеж анархистов?",81,w,
Speech_RADIO_SCAN_CH6_VV_COURT_04,1,"Если спросите мое мнение, то по-моему весь район погрузился в хаос.",67,w,
Speech_RADIO_SCAN_CH6_VV_SniperIdles_1,0,"Будучи здесь, в эпицентре событий в Аркхэм Сити, я могу с уверенность сказать, что вокруг творится полный хаос.",111,w,INT:F990D6DF:2 Speech_RADIO_SCAN_CH6_VV_SniperIdles_1,0,"Будучи здесь, в эпицентре событий в Аркхэм Сити, я могу с уверенность сказать, что вокруг творится полный хаос.",111,w,INT:F990D6DF:2
Speech_RADIO_SCAN_CH6_VV_SniperIdles_3,0,Я Вики Вэйл с прямым репортажем о событиях в Аркхэм Сити.,57,w,INT:F990D6DF:0 Speech_RADIO_SCAN_CH6_VV_SniperIdles_3,0,Я Вики Вэйл с прямым репортажем о событиях в Аркхэм Сити.,57,w,INT:F990D6DF:0
Speech_RADIO_SCAN_CH6_VV_SniperIdles_4,0,"Если кто-нибудь слышит эту передачу, пожалуйста, отправьте помощь!",66,w,INT:F990D6DF:3 Speech_RADIO_SCAN_CH6_VV_SniperIdles_4,0,"Если кто-нибудь слышит эту передачу, пожалуйста, отправьте помощь!",66,w,INT:F990D6DF:3
@@ -5425,6 +5446,13 @@ Speech_RADIO_SCAN_CH8_Tyger_Choppers_Leaving_01,0,Всем воздушным п
Speech_RADIO_SCAN_FIRST_copter_spot_BM_01,0,Это ТАЙГЕР ВОЗДУХ 3. Есть визуальный контакт с Бэтменом. Жду приказа. Конец связи.,82,w,INT:4374FCBB:2 Speech_RADIO_SCAN_FIRST_copter_spot_BM_01,0,Это ТАЙГЕР ВОЗДУХ 3. Есть визуальный контакт с Бэтменом. Жду приказа. Конец связи.,82,w,INT:4374FCBB:2
Speech_RADIO_SCAN_FIRST_copter_spot_BM_02,0,"Он безвреден. Продолжайте наблюдение, но не вмешивайтесь. У нас особые планы касательно Бэтмена.",96,w,INT:4374FCBB:0 Speech_RADIO_SCAN_FIRST_copter_spot_BM_02,0,"Он безвреден. Продолжайте наблюдение, но не вмешивайтесь. У нас особые планы касательно Бэтмена.",96,w,INT:4374FCBB:0
Speech_RADIO_SCAN_FIRST_copter_spot_BM_03,0,Подтверждаю. Возвращаюсь к патрулированию. Конец связи.,55,w,INT:4374FCBB:1 Speech_RADIO_SCAN_FIRST_copter_spot_BM_03,0,Подтверждаю. Возвращаюсь к патрулированию. Конец связи.,55,w,INT:4374FCBB:1
Speech_RADIO_SCAN_GCPD_CH0_Wayne_captured_01,0,Всем отрядам. Подтвердилась информация: Брюса Уэйна захватили подразделения Тайгер и держат в Аркхэм Сити.,106,w,
Speech_RADIO_SCAN_GCPD_CH0_Wayne_captured_02,0,Это Гордон. Всем офицерам полиции Готэма - запрещаю транспортировать пленных в Аркхэм Сити. Иначе нас ждет кошмар!,114,w,
Speech_RADIO_SCAN_GCPD_CH0_Wayne_captured_02,1,"Отвозите из в участок, сажайте по клеткам в зоопарке - что угодно, только не отдавайте их Стрейнджу в лапы!",107,w,
Speech_RADIO_SCAN_GCPD_CH0_Wayne_captured_03,0,"Адвокаты Уэйна встали на дыбы, а мне денег не хватит оплачивать отпуск очередному богатею. Понял!",97,w,
Speech_RADIO_SCAN_GCPD_Cop,0,"Диспетчер, Уэскер захватил заложника и продолжает обстреливать других офицеров.",79,w,
Speech_RADIO_SCAN_GCPD_DISPATCH,0,"Всем отрядам, код 10-34 в парке Робинсон.",41,w,
Speech_RADIO_SCAN_Riddler_intro_01,0,"Бэтмен, если ты меня слышишь, послушай эту загадку! Единственный способ остановить тьму - шагнуть навстречу свету.",114,w,
Speech_RADIO_SCAN_Secret1FULL_RADIO_SCAN_Secret1FULL,0,"Меня кто-нибудь слышит? Меня зовут Барбара Гордон. На нас напали. Джокер слишком силен. Мой отец погиб. Черт побери, вообще все мертвы.",135,w,INT:C39BDC76 Speech_RADIO_SCAN_Secret1FULL_RADIO_SCAN_Secret1FULL,0,"Меня кто-нибудь слышит? Меня зовут Барбара Гордон. На нас напали. Джокер слишком силен. Мой отец погиб. Черт побери, вообще все мертвы.",135,w,INT:C39BDC76
Speech_RADIO_SCAN_Secret1FULL_RADIO_SCAN_Secret1FULL,1,Мы проиграли. Поместье Уэйна сдалось. Джокер победил. Ничего уже не сделать. Брюс мертв. Его больше нет. Все пропало. Если вы слышите..,135,w,INT:C39BDC76 Speech_RADIO_SCAN_Secret1FULL_RADIO_SCAN_Secret1FULL,1,Мы проиграли. Поместье Уэйна сдалось. Джокер победил. Ничего уже не сделать. Брюс мертв. Его больше нет. Все пропало. Если вы слышите..,135,w,INT:C39BDC76
Speech_RADIO_SCAN_Secret1FULL_RADIO_SCAN_Secret1FULL,2,. помогите нам. Пожалуйста...,29,w,INT:C39BDC76 Speech_RADIO_SCAN_Secret1FULL_RADIO_SCAN_Secret1FULL,2,. помогите нам. Пожалуйста...,29,w,INT:C39BDC76
Can't render this file because it is too large.

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@@ -4,10 +4,9 @@
"fingerprint": "2464-93ff67901d8eb43b", "fingerprint": "2464-93ff67901d8eb43b",
"sounds": 10816, "sounds": 10816,
"groups": { "groups": {
"Speech": 10815, "Speech": 10816
"Ambience": 1
}, },
"with_character": 3366 "with_character": 2911
}, },
"ESN": { "ESN": {
"wad": "BmGame/CookedPCConsole/Spanish(Spain)/0E07A43D_LOC_ESN.wad", "wad": "BmGame/CookedPCConsole/Spanish(Spain)/0E07A43D_LOC_ESN.wad",
@@ -17,7 +16,7 @@
"Speech": 10815, "Speech": 10815,
"Ambience": 1 "Ambience": 1
}, },
"with_character": 3366 "with_character": 2911
}, },
"FRA": { "FRA": {
"wad": "BmGame/CookedPCConsole/French(France)/134795B3_LOC_FRA.wad", "wad": "BmGame/CookedPCConsole/French(France)/134795B3_LOC_FRA.wad",
@@ -27,7 +26,7 @@
"Speech": 10815, "Speech": 10815,
"Ambience": 1 "Ambience": 1
}, },
"with_character": 3366 "with_character": 2909
}, },
"INT": { "INT": {
"wad": "BmGame/CookedPCConsole/English(US)/28CCF006_LOC_INT.wad", "wad": "BmGame/CookedPCConsole/English(US)/28CCF006_LOC_INT.wad",
@@ -37,7 +36,7 @@
"Speech": 10815, "Speech": 10815,
"Ambience": 1 "Ambience": 1
}, },
"with_character": 3366 "with_character": 2909
}, },
"ITA": { "ITA": {
"wad": "BmGame/CookedPCConsole/Italian/49D84887_LOC_ITA.wad", "wad": "BmGame/CookedPCConsole/Italian/49D84887_LOC_ITA.wad",
@@ -84,19 +83,19 @@
"SUB": { "SUB": {
"fingerprint": "3f9766af425b8eef", "fingerprint": "3f9766af425b8eef",
"lines": { "lines": {
"DEU": 9638, "DEU": 9667,
"ESM": 9476, "ESM": 9504,
"ESN": 9468, "ESN": 9495,
"FRA": 9540, "FRA": 9570,
"INT": 9379, "INT": 9404,
"ITA": 9352, "ITA": 9377,
"JPN": 9016, "JPN": 9035,
"KOR": 9229, "KOR": 9252,
"POL": 9352, "POL": 9379,
"POR": 9450, "POR": 9478,
"RUS": 9469 "RUS": 9497
}, },
"speech_lines": 9016, "speech_lines": 9035,
"linked": { "linked": {
"DEU": 9537, "DEU": 9537,
"ESM": 9360, "ESM": 9360,
@@ -110,7 +109,7 @@
"POR": 9335, "POR": 9335,
"RUS": 9352 "RUS": 9352
}, },
"copies": 168122, "copies": 168688,
"issues": [] "issues": []
}, },
"_info": "unmodified game files" "_info": "unmodified game files"

View File

@@ -60,8 +60,12 @@ Two separate fields, because Wwise names describe a *scene*, not the speaker of
alternates speakers between `NAME_1`, `NAME_2`, ...): alternates speakers between `NAME_1`, `NAME_2`, ...):
- **character** - the verified speaker, only from the curated lists in `data/catalog/source/<lang>/*.txt` - **character** - the verified speaker, only from the curated lists in `data/catalog/source/<lang>/*.txt`
(one file per character, listening-based). Mapped by sound name, so labels made on the Italian files apply to (one file per character, listening-based). The lists name ITA sounds by their position in the ITA WAD
every language (the five language WADs have identical names and variation counts). Display names: (wemscan names); positions differ between languages, so each label is moved to the game's line name of that
sound (`characters.csv`, empty `language`) and then applies to the same line in every language. Labels of
sounds no event plays stay ITA-only (`language` = ITA). Checked against the speaker field of the game's
dialogue objects: 955 / 955 labelled lines agree (spelling aside: TwoFace, Mysterious_stranger = Azrael).
Display names:
Calendar -> Calendar Man, Croc -> Killer Croc, Freeze -> Mr. Freeze, Ivy -> Poison Ivy, Madhatter -> Mad Calendar -> Calendar Man, Croc -> Killer Croc, Freeze -> Mr. Freeze, Ivy -> Poison Ivy, Madhatter -> Mad
Hatter, Quinn -> Harley Quinn, Ras -> Ra's al Ghul, Strange -> Hugo Strange, Talia -> Talia al Ghul, Hatter, Quinn -> Harley Quinn, Ras -> Ra's al Ghul, Strange -> Hugo Strange, Talia -> Talia al Ghul,
Twoface -> Two-Face, Vicky -> Vicki Vale, Zsazz -> Victor Zsasz, Unknown -> Unknown (speaker checked but not Twoface -> Two-Face, Vicky -> Vicki Vale, Zsazz -> Victor Zsasz, Unknown -> Unknown (speaker checked but not

View File

@@ -103,6 +103,10 @@ copy per voice language) is filtered the same way, so the sound list never mixes
- Shipped CSVs per archive (names, categories, characters, original size + checksum) make loading instant and - Shipped CSVs per archive (names, categories, characters, original size + checksum) make loading instant and
enable change detection; any other build is scanned at runtime (header reads only, cached). enable change detection; any other build is scanned at runtime (header reads only, cached).
- Verified speakers come only from the user's lists; name-based character inference is kept in a separate field. - Verified speakers come only from the user's lists; name-based character inference is kept in a separate field.
- Speech sounds are named after the game's line (speech event), not after their position in the WAD entry:
the WEMs of an entry are stored in media-ID order and every language has its own media IDs, so position i
is a different line in each language (75 % of the multi-variation lines). Line names make names, speaker
labels, mod packages and subtitles agree across languages.
- Category scheme: `docs/categories.md`. - Category scheme: `docs/categories.md`.
## 6. Repository cleanup choices ## 6. Repository cleanup choices

View File

@@ -13,6 +13,13 @@ the UE3 packages (`upk.md`), holding the subtitle text of all 11 languages. acki
- Strings are stored as cp1252 (positive FString length) or UTF-16 (negative length): RUS, POL, JPN, KOR - Strings are stored as cp1252 (positive FString length) or UTF-16 (negative length): RUS, POL, JPN, KOR
and some INT/ESN/FRA/DEU strings are UTF-16. and some INT/ESN/FRA/DEU strings are UTF-16.
## Scripted subtitles (`RSubtitle`)
41 more subtitles (radio and encryption-card lines) are `RSubtitle` objects in `Startup.upk`: the same layout,
with the per-language array named `ArraySubtitles` and a float (duration) at `0x2C` instead of a speech
reference. `RSubtitleLookup` (`Startup.upk`, `Lookups`) is an array of `{int key @0, object @4}`, key =
FNV-1 of the speech line name without `Speech_` (e.g. `CH_ZERO_CH0_ENCRYPTION_CARD2_01`), which links each
`RSubtitle` exactly to its line. ackit reads and writes both kinds the same way.
## Object layout (compact tagged properties) ## Object layout (compact tagged properties)
The export data is a list of properties `u16 type, u16 field offset, value`, ended by `u16 0`. Types seen: The export data is a list of properties `u16 type, u16 field offset, value`, ended by `u16 0`. Types seen:
`0x10` object reference (i32 export/import index), `0x0D` FString, `0x09` struct/array (name i32+i32 = struct `0x10` object reference (i32 export/import index), `0x0D` FString, `0x09` struct/array (name i32+i32 = struct

Binary file not shown.

Before

Width:  |  Height:  |  Size: 139 KiB

After

Width:  |  Height:  |  Size: 204 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 139 KiB

After

Width:  |  Height:  |  Size: 192 KiB

View File

@@ -89,6 +89,17 @@ Conclusion: approach A works end-to-end in-game. Use >= 30 s probes for the intr
prefixed with markers and 12 subtitles patched in place (21 files). All 12 markers are found as UTF-16 in the prefixed with markers and 12 subtitles patched in place (21 files). All 12 markers are found as UTF-16 in the
game's memory after ~45 s (the localization files are read at startup), no crash, revert byte-identical: game's memory after ~45 s (the localization files are read at startup), no crash, revert byte-identical:
PASS. Subtitles are not loaded on the title screen (no dialogue object in Frontend*/Startup/BmGame). PASS. Subtitles are not loaded on the title screen (no dialogue object in Frontend*/Startup/BmGame).
20. (2026-10-10) **Variation positions differ between languages.** A WAD entry stores its WEMs in media-ID order
and each language has its own media IDs, so for 7,010 of 9,366 lines (75 %) the same game line is at a
different position in the ITA and INT entries (e.g. Speech_CH_ZERO_CH0_fight_intro_01 = ITA :0, INT :2).
Position names (NAME_i, wemscan) therefore mean different lines per language. Speech sounds are now named
after their speech event (same in every language); the curated ITA lists are mapped through it. Independent
check: the speaker field of the dialogue objects agrees with the mapped labels for 955 / 955 lines.
21. (2026-10-10) In-memory speech banks are localized (language list + one bank per language in one AkBank
export, checked on 215 banks against the WAD languages of their streamed lines); 41 more subtitles are
RSubtitle objects linked through RSubtitleLookup (key = FNV-1 of the line name without `Speech_`). Subtitle
coverage by category is uneven in the game itself: efforts 0 %, combat barks 11 %, cinematics 10 % (cutscene
lines are mostly not reached by speech events and have no dialogue object), story/predator/open world ~90 %+.
## Old path -> new path ## Old path -> new path
`scripts/harness.py` -> `ackit verify --ingame` (ackit/verify/ingame.py); `scripts/validate_builder.py` -> `scripts/harness.py` -> `ackit verify --ingame` (ackit/verify/ingame.py); `scripts/validate_builder.py` ->

View File

@@ -26,6 +26,12 @@ game is set to (Steam > game properties > Language) and applies to everything yo
- **Subtitles** and **Menu text**: the texts of that language. - **Subtitles** and **Menu text**: the texts of that language.
Changing it reloads the lists; the next start is again in the game's language. Changing it reloads the lists; the next start is again in the game's language.
## Names
Voice lines carry the game's own line names (e.g. `Speech_TAPE_JOKER_1_04`), the same in every language and the
same as in the Subtitles tab. Inside a WAD entry the game stores the variations of a line in a different order
in each language, so the position-based name is kept only as a second name (`Speech_TAPE_JOKER_1#4` = the 4th
WEM of that entry in this language; search finds both).
## Find a sound ## Find a sound
- Type in the **search box** (Ctrl+F): words can be parts of the name, a category, a character, your own - Type in the **search box** (Ctrl+F): words can be parts of the name, a category, a character, your own
notes or tags, or an ID like `b49cdf48`. All words must match. notes or tags, or an ID like `b49cdf48`. All words must match.
@@ -44,7 +50,9 @@ Changing it reloads the lists; the next start is again in the game's language.
![Browsing by category](img/browse.png) ![Browsing by category](img/browse.png)
## Listen ## Listen
Select a row and press **Space** (or double-click) to play the original. In the editor below: The editor under the list shows the selected sound in three columns side by side (drag the dividers to
resize them): **Listen**, **Replace** and **Subtitle**. Select a row and press **Space** (or double-click) to
play the original. In **Listen**:
- **Original** / **Installed** play the game's original and what is currently in the game. Click on a - **Original** / **Installed** play the game's original and what is currently in the game. Click on a
waveform to play from that point. **Loop**, **Volume** and **Stop** (Esc) work for everything. waveform to play from that point. **Loop**, **Volume** and **Stop** (Esc) work for everything.
- **A/B** switches between the original and your replacement at the same position, to compare. - **A/B** switches between the original and your replacement at the same position, to compare.
@@ -54,8 +62,8 @@ Select a row and press **Space** (or double-click) to play the original. In the
1. **Load file…** (Ctrl+O): WAV, FLAC, OGG, OPUS, MP3 or AIFF. (M4A/WMA work only if ffmpeg is installed.) 1. **Load file…** (Ctrl+O): WAV, FLAC, OGG, OPUS, MP3 or AIFF. (M4A/WMA work only if ffmpeg is installed.)
Or choose a microphone in the list and press **Record**, then **Stop recording**. Listen with Or choose a microphone in the list and press **Record**, then **Stop recording**. Listen with
**Replacement**; record again as often as you like. **Replacement**; record again as often as you like.
2. Adjust: **Keep from / to** trims (or right-drag on the replacement waveform), **Trim silence**, **Gain**, 2. Adjust: **Keep … to** trims (or right-drag on the replacement waveform), **Trim silence**, **Gain**,
**Normalize**, **Match original loudness** (recommended for voice lines). **Normalize**, **Match loudness** (to the original; recommended for voice lines).
3. **Apply to game** (Ctrl+S). The audio is converted to the original's format and written into the game files. 3. **Apply to game** (Ctrl+S). The audio is converted to the original's format and written into the game files.
The row turns bold and shows *Modified*. The row turns bold and shows *Modified*.
@@ -65,7 +73,7 @@ you are asked to shorten it. Music (`Music_…`) can be any length. A warning ap
than the original, since the game may cut it off. than the original, since the game may cut it off.
## Undo ## Undo
- **Revert to original** in the editor puts that sound back exactly. - **Revert** in the editor puts that sound back exactly.
- Right-click rows → **Revert selected**; toolbar **Revert all** puts every original back. - Right-click rows → **Revert selected**; toolbar **Revert all** puts every original back.
- Originals are kept in your user data folder (`%APPDATA%\UnheardCity` on Windows, - Originals are kept in your user data folder (`%APPDATA%\UnheardCity` on Windows,
`~/.local/share/unheardcity` on Linux), so reverting works after updating or reinstalling the app too. `~/.local/share/unheardcity` on Linux), so reverting works after updating or reinstalling the app too.

View File

@@ -49,11 +49,34 @@ def test_synthetic_catalog_names_and_search(synth_game):
def test_characters_csv_covers_user_lists(): def test_characters_csv_covers_user_lists():
chars = load_characters() chars = load_characters(lang="ITA")
assert len(chars) > 3000 assert len(chars) > 3000 and len(load_characters()) > 2500 # most labels apply in every language
# the lists name ITA sounds by position (wemscan): NAME_i = variation i of the ITA WAD entry (alias NAME#i)
src = os.path.join(catalog_dir(), "source", "ita", "Joker.txt") src = os.path.join(catalog_dir(), "source", "ita", "Joker.txt")
first = open(src).readline().strip()[:-4] first = open(src).readline().strip()[:-4]
assert "Joker" in chars[first.lower()] base, i = first.rsplit("_", 1)
ita = read_csv(os.path.join(catalog_dir(), "ITA.csv"))
s = next(s for s in ita if first.lower() in {n.lower() for n in s.names()} or
"%s#%s" % (base, i) in s.aliases)
assert "Joker" in s.character
# every labelled ITA sound keeps its label (takes of one line, NAME#k, share it), and most labels reach INT
assert sum(1 for x in ita if x.character) >= 3366
assert sum(1 for x in read_csv(os.path.join(catalog_dir(), "INT.csv")) if x.character) > 2900
def test_line_names_agree_across_languages_and_subtitles():
"""Speech sounds carry the game's line name: the same names in every language, and a linked subtitle's
sound has the subtitle's line name (positions inside WAD entries differ per language: findings 20)."""
from ackit import subtitles
ita = {s.name for s in read_csv(os.path.join(catalog_dir(), "ITA.csv")) if s.group == "Speech"}
intl = {s.name for s in read_csv(os.path.join(catalog_dir(), "INT.csv")) if s.group == "Speech"}
assert len(ita & intl) > 0.97 * len(ita)
snd = {s.key: s for s in read_csv(os.path.join(catalog_dir(), "ITA.csv"))}
rows = [r for r in subtitles.read_texts(os.path.join(catalog_dir(), "SUB_ITA.csv"), "ITA") if r.sound in snd]
same = sum(1 for r in rows if snd[r.sound].name.split("#")[0] == r.speech)
assert len(rows) > 8000 and same > 0.99 * len(rows)
hdr = next(csv.reader(open(os.path.join(catalog_dir(), "characters.csv"), encoding="utf-8")))
assert hdr == ["name", "character", "language"]
def test_shipped_csvs_are_consistent(): def test_shipped_csvs_are_consistent():
@@ -87,8 +110,8 @@ def test_real_game_uses_shipped_catalog(real_game_dir):
bank = read_csv(os.path.join(catalog_dir(), "BANK.csv")) bank = read_csv(os.path.join(catalog_dir(), "BANK.csv"))
assert len(cat.sounds) == 10816 + 651 + sum(1 for s in bank if s.language in ("", "ITA")) assert len(cat.sounds) == 10816 + 651 + sum(1 for s in bank if s.language in ("", "ITA"))
assert {s.language for s in cat.sounds if s.archive == "BANK"} == {"", "ITA"} assert {s.language for s in cat.sounds if s.archive == "BANK"} == {"", "ITA"}
s = cat.resolve("Speech_TAPE_JOKER_1_4") s = cat.resolve("Speech_TAPE_JOKER_1#4") # position 4 in the ITA entry (the user's list name)
assert s.category == "Interview tapes" and s.size == 44985 assert s.category == "Interview tapes" and s.size == 44985 and s.name.startswith("Speech_TAPE_JOKER_1_")
assert len(cat.heads) == 396 and sum(len(v) for v in cat.heads.values()) == 2101 assert len(cat.heads) == 396 and sum(len(v) for v in cat.heads.values()) == 2101
b = cat.resolve("Play_BatmanDeviceImpact_Wood_1") b = cat.resolve("Play_BatmanDeviceImpact_Wood_1")
assert b.archive == "BANK" and b.group == "SFX" assert b.archive == "BANK" and b.group == "SFX"

View File

@@ -23,7 +23,8 @@ import time
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from ackit import banks, settings, subtitles # noqa: E402 from ackit import banks, settings, subtitles # noqa: E402
from ackit.catalog import scan_archive, scan_text, write_csv, hash_names # noqa: E402 from ackit.catalog import (apply_line_names, character_of, hash_names, scan_archive, scan_text, # noqa: E402
write_csv)
from ackit.classify import USER_LABELS # noqa: E402 from ackit.classify import USER_LABELS # noqa: E402
from ackit.game import Game, default_game_dir, wad_fingerprint # noqa: E402 from ackit.game import Game, default_game_dir, wad_fingerprint # noqa: E402
from ackit.inject import read_target # noqa: E402 from ackit.inject import read_target # noqa: E402
@@ -87,22 +88,45 @@ def main():
src_root = os.path.join(out_dir, "source") src_root = os.path.join(out_dir, "source")
hash_names() hash_names()
# characters from the curated lists (names come from the language they were made for: ITA) # 1. every package once: in-memory sounds, prefetch heads, subtitles, events (a few minutes)
t0 = time.time()
bank_snd, locs, sc, texts, sublocs, sub_issues, line_names = scan_text(
game, progress=lambda k, n: print(" banks + subtitles: %d/%d files" % (k, n), flush=True)
if k % 500 == 0 else None, characters={})
print("packages scanned (%.0fs); %d speech sounds named by their game line" % (time.time() - t0, len(line_names)))
# 2. characters from the curated lists. They name ITA sounds by position (wemscan); the position of a
# variation differs between languages, so labels go through the game's line name (valid everywhere);
# sounds without one keep an ITA-only label.
ref_lang = "ITA" if "ITA" in game.archives else game.languages[0] ref_lang = "ITA" if "ITA" in game.archives else game.languages[0]
ref = scan_archive(ref_lang, game.wad(ref_lang), characters={}) ref = scan_archive(ref_lang, game.wad(ref_lang), characters={})
chars, unmatched, ambiguous = build_characters(ref, src_root) chars, unmatched, ambiguous = build_characters(ref, src_root)
by_pos = {s.name: s for s in ref}
rows = collections.defaultdict(set) # (name, language) -> characters
for pos_name, who in chars.items():
s = by_pos[pos_name]
if s.key in line_names:
rows[(line_names[s.key], "")] |= who
else:
rows[(pos_name, ref_lang)] |= who
with open(os.path.join(out_dir, "characters.csv"), "w", encoding="utf-8", newline="") as f: with open(os.path.join(out_dir, "characters.csv"), "w", encoding="utf-8", newline="") as f:
w = csv.writer(f, lineterminator="\n") w = csv.writer(f, lineterminator="\n")
w.writerow(["name", "character"]) w.writerow(["name", "character", "language"])
for n in sorted(chars, key=str.lower): for (n, lg) in sorted(rows, key=lambda r: (r[0].lower(), r[1])):
w.writerow([n, "; ".join(sorted(chars[n]))]) w.writerow([n, "; ".join(sorted(rows[(n, lg)])), lg])
print("characters.csv: %d sounds labelled; %d unmatched names %s; %d ambiguous %s" print("characters.csv: %d sounds labelled (%d by line name, %d %s-only); %d unmatched names %s; %d ambiguous %s"
% (len(chars), len(unmatched), unmatched[:3], len(ambiguous), ambiguous[:3])) % (len(rows), sum(1 for _, lg in rows if not lg), sum(1 for _, lg in rows if lg), ref_lang,
charmap = {n.lower(): v for n, v in ((n, "; ".join(sorted(c))) for n, c in chars.items())} len(unmatched), unmatched[:3], len(ambiguous), ambiguous[:3]))
def charmap(lang):
return {n.lower(): "; ".join(sorted(c)) for (n, lg), c in rows.items() if not lg or lg == lang}
index = {"built_from": "unmodified game files", "archives": {}} index = {"built_from": "unmodified game files", "archives": {}}
for arch, path in game.archives.items(): for arch, path in game.archives.items():
sounds = scan_archive(arch, path, characters=charmap) cm = charmap(arch)
sounds = apply_line_names(scan_archive(arch, path, characters={}), line_names)
for s in sounds:
s.character = character_of(s, cm)
wad = Wad(path) wad = Wad(path)
for s in sounds: for s in sounds:
s.sha1 = file_sha1(path, s.target, wad) s.sha1 = file_sha1(path, s.target, wad)
@@ -113,11 +137,11 @@ def main():
"with_character": sum(1 for s in sounds if s.character)} "with_character": sum(1 for s in sounds if s.character)}
print("%s.csv: %d sounds %s" % (arch, len(sounds), dict(g))) print("%s.csv: %d sounds %s" % (arch, len(sounds), dict(g)))
# in-memory sounds: loose SFX\*.bnk + banks inside the .upk packages (a few minutes) # in-memory sounds (scanned in step 1); localized speech lines carry the game's line names too
t0 = time.time() sounds = bank_snd
sounds, locs, sc, texts, sublocs, sub_issues = scan_text( cm = charmap("") # only labels valid in every language (game line names)
game, progress=lambda k, n: print(" banks + subtitles: %d/%d files" % (k, n), flush=True) for s in sounds:
if k % 500 == 0 else None, characters=charmap) s.character = character_of(s, cm)
write_csv(os.path.join(out_dir, "%s.csv" % banks.ARCHIVE), sounds) write_csv(os.path.join(out_dir, "%s.csv" % banks.ARCHIVE), sounds)
banks.write_locations(os.path.join(out_dir, banks.LOCATIONS), locs) banks.write_locations(os.path.join(out_dir, banks.LOCATIONS), locs)
g = collections.Counter(s.group for s in sounds) g = collections.Counter(s.group for s in sounds)
@@ -129,8 +153,8 @@ def main():
"prefetch_heads": {"lines": len({l.media for l in heads}), "copies": len(heads), "prefetch_heads": {"lines": len({l.media for l in heads}), "copies": len(heads),
"unmapped": len({l.media for l in heads if not l.sound})}, "unmapped": len({l.media for l in heads if not l.sound})},
"issues": ["%s: %s" % i for i in sc.issues]} "issues": ["%s: %s" % i for i in sc.issues]}
print("%s.csv: %d sounds %s, %d copies in %d files, %d prefetch heads (%.0fs)" print("%s.csv: %d sounds %s, %d copies in %d files, %d prefetch heads"
% (banks.ARCHIVE, len(sounds), dict(g), len(locs) - len(heads), len(sc.files), len(heads), time.time() - t0)) % (banks.ARCHIVE, len(sounds), dict(g), len(locs) - len(heads), len(sc.files), len(heads)))
# subtitles (dialogue objects in the packages), one CSV per language + every stored copy # subtitles (dialogue objects in the packages), one CSV per language + every stored copy
for f in os.listdir(out_dir): for f in os.listdir(out_dir):

View File

@@ -44,11 +44,12 @@ def main():
# 1: browser filtered by character # 1: browser filtered by character
w.cmb_char.setCurrentText("Joker") w.cmb_char.setCurrentText("Joker")
w._filters_changed() w._filters_changed()
w.search.setText("cinematic") w.search.setText("")
w._filter_text() w._filter_text()
w.fit_editor() w.fit_editor()
target = next(w.proxy.sound_at(w.proxy.index(r, 1)) for r in range(w.proxy.rowCount()) rows = [w.proxy.sound_at(w.proxy.index(r, 1)) for r in range(w.proxy.rowCount())]
if w.proxy.sound_at(w.proxy.index(r, 1)).seconds > 4) with_sub = [s for s in rows if w.ws.texts.for_sound(s, w.language)] # show the subtitle column too
target = max(with_sub or rows, key=lambda s: min(s.seconds, 6.0))
w.select_name(target.name) w.select_name(target.name)
app.processEvents() app.processEvents()
# a replacement loaded for display only (not applied) # a replacement loaded for display only (not applied)
@@ -63,7 +64,8 @@ def main():
w.editor.sp_a.setValue(0.2) w.editor.sp_a.setValue(0.2)
app.processEvents() app.processEvents()
w.grab().save(os.path.join(out, "main.png")) w.grab().save(os.path.join(out, "main.png"))
w.editor.grab().save(os.path.join(out, "editor.png")) from PySide6.QtCore import QPoint, QRect # the editor area, cut from the window (full styling)
w.grab(QRect(w.scroll.mapTo(w, QPoint(0, 0)), w.scroll.size())).save(os.path.join(out, "editor.png"))
# 2: category browsing # 2: category browsing
w.clear_filters() w.clear_filters()
w.cmb_group.setCurrentText("Speech") w.cmb_group.setCurrentText("Speech")