Game line names across languages; RSubtitle; editor in three columns
This commit is contained in:
5
NOTES.md
5
NOTES.md
@@ -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).
|
||||||
|
|||||||
23
REPORT.md
23
REPORT.md
@@ -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.
|
||||||
|
|||||||
@@ -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")):
|
||||||
out[row["name"].lower()] = row["character"]
|
if not row.get("language") or row["language"] == lang:
|
||||||
|
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)
|
||||||
|
|||||||
@@ -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)."""
|
||||||
i = b.find(struct.pack("<II", ls, 0))
|
arrays, sub = names_idx
|
||||||
|
i = -1
|
||||||
|
for ls in arrays:
|
||||||
|
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
|
||||||
|
|||||||
@@ -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):
|
||||||
|
|||||||
@@ -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)))
|
||||||
|
|||||||
@@ -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")
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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.
|
20886
data/catalog/DEU.csv
20886
data/catalog/DEU.csv
File diff suppressed because it is too large
Load Diff
20028
data/catalog/ESN.csv
20028
data/catalog/ESN.csv
File diff suppressed because it is too large
Load Diff
20020
data/catalog/FRA.csv
20020
data/catalog/FRA.csv
File diff suppressed because it is too large
Load Diff
20008
data/catalog/INT.csv
20008
data/catalog/INT.csv
File diff suppressed because it is too large
Load Diff
19066
data/catalog/ITA.csv
19066
data/catalog/ITA.csv
File diff suppressed because it is too large
Load Diff
@@ -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 |
|
||||||
|
|||||||
@@ -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.
|
@@ -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.
|
@@ -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.
|
@@ -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.
|
@@ -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.
|
@@ -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.
|
@@ -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.
|
@@ -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.
|
@@ -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.
|
@@ -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.
|
@@ -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
@@ -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"
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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 |
@@ -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` ->
|
||||||
|
|||||||
@@ -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.
|
|||||||

|

|
||||||
|
|
||||||
## 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.
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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):
|
||||||
|
|||||||
@@ -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")
|
||||||
|
|||||||
Reference in New Issue
Block a user