1
0
mirror of https://github.com/XProger/OpenLara.git synced 2025-08-10 07:06:52 +02:00

add subtitles for cutscenes (English, German, Russian); fix translations

This commit is contained in:
XProger
2019-02-24 03:53:36 +03:00
parent 9f3ea54a74
commit 82dacfb022
2 changed files with 309 additions and 219 deletions

View File

@@ -395,53 +395,54 @@ const char *STR_EN[] = { ""
, "Pyramid Key" , "Pyramid Key"
// TR1 subtitles // TR1 subtitles
/* 22 */ , /* 22 */ ,
"\0Back again?" "[04000]Back again?"
"And you - for a grand re-opening I assume." "[05500]And you - for a grand re-opening I assume."
"Evolution's in a rut - natural selection at an all time low..." "[09500]Evolution's in a rut - natural selection at an all time low..."
"shipping out fresh meat will incite territorial rages again" "[13500]shipping out fresh meat will incite territorial rages again"
" - will strengthen and advance us..." "[17500] - will strengthen and advance us..."
"Even create new breeds." "[20500]Even create new breeds."
"Kind of like evolution on steroids then." "[22500]Kind of like evolution on steroids then."
"A kick in the pants...those runts Qualopec and Tihocan had no idea" "[24500]A kick in the pants...@those runts Qualopec and Tihocan had no idea"
" - the cataclysm of Atlantis struck a race of langouring wimps..." "[29500] - the cataclysm of Atlantis struck a race of langouring wimps..."
"plummeted them to the very basics of survival again..." "[33500]plummeted them to the very basics of survival again..."
"It shouldn't happen like that." "[37000]It shouldn't happen like that."
"Or like this." "[39000]Or like this."
"Hatching commences in 20 seconds." "[40000]Hatching commences in 20 seconds."
"Too late for abortions now!" "[43000]Too late for abortions now!"
"Not without the heart of the operation!" "[45000]Not without the heart of the operation!"
"Noooo!" "[47000]Noooo!"
"TEN" "[50000]TEN"
"FIVE..." "[54000]FIVE..."
"4...3...2..." "[55500]4...3...2..."
"ONE..." "[60000]ONE..."
/* 23 */ , /* 23 */ ,
"\0Well, you have my total attention now" "[00001]Well, you have my total attention now"
"I'm not quite sure if I've got yours though" "[02500]I'm not quite sure if I've got yours though"
"hello" "[05000]hello?"
"I'll heel an' hide ye to a barn door yit" "[06000]I'll heel an' hide ye to a barn door yit"
"Of course" "[09000]Of course"
"Ye and that drivelin' piece of the Scion." "[10000]Ye and that drivelin' piece of the Scion."
"Ye want to keep it so bad, I'll harness it right up y..." "[13000]Ye want to keep it so bad, I'll harness it right up y..."
"Wait... we're talking about the artifact here?" "[17000]Wait... we're talking about the artifact here?"
"Damn straight we are ... right up y ..." "[20000]Damn straight we are ... right up y ..."
"Hold on - I'm sorry" "[22000]Hold on - I'm sorry"
"this piece you say - where's the rest?" "[24000]this piece you say - where's the rest?"
"Ms Natla put Pierre Dupont on that trail." "[26500]Ms Natla put Pierre Dupont on that trail."
"And where is that?" "[29500]And where is that?"
"Hah. Ye ain't fast enough fer him." "[30500]Hah. Ye ain't fast enough fer him."
"So you think all this talking is just holding me up then?" "[34000]So you think all this talking is just holding me up?"
"I don't know where his little jackrabbit-frog-legs are runnin' him to" "[37000]I don't know where his little jackrabbit-frog-legs are runnin' him to"
"You'll have to ask Ms. Natla" "[42000]You'll have to ask Ms. Natla"
"Thank you. I will." "[46000]"
"[51000]Thank you. I will."
/* 24 */ , "" /* 24 */ , ""
/* 25 */ , /* 25 */ ,
"\0Here lies Tihocan" "[03500]Here lies Tihocan"
"...one of the two just rulers of Atlantis..." "[05000]...one of the two just rulers of Atlantis..."
"Who even after the curse of the continent..." "[10000]Who even after the curse of the continent..."
"...had tried to keep rule here in these barren other-lands..." "[13000]...had tried to keep rule here in these barren other-lands..."
"He died without child and his knowledge has no heritage..." "[19000]He died without child and his knowledge has no heritage..."
"Look over us kindly, Tihocan." "[25500]Look over us kindly, Tihocan."
/* 26 */ , "Welcome to my home!@I'll take you on a guided tour." /* 26 */ , "Welcome to my home!@I'll take you on a guided tour."
/* 27 */ , "Use the directional buttons to go into the music room." /* 27 */ , "Use the directional buttons to go into the music room."
/* 28 */ , "OK. Let's do some tumbling.@Press the jump button." /* 28 */ , "OK. Let's do some tumbling.@Press the jump button."
@@ -890,61 +891,54 @@ const char *STR_DE[] = { "" // by Oktopaps
, "Skarab~aus" , "Skarab~aus"
, "Schl~ussel der Pyramide" , "Schl~ussel der Pyramide"
// TR1 subtitles // TR1 subtitles
#if 0
/* 22 */ , /* 22 */ ,
"\0Na, wieder da?" "[04000]Na, wieder da?"
"Sie auch. Zur feierlichen Wiederer~offnung, nehme ich an." "[05500]Sie auch. Zur feierlichen Wiederer~offnung, nehme ich an."
"Die Evolution steckt in der Sackgasse. Kaum noch nat~urliche Auslese." "[09000]Die Evolution steckt in der Sackgasse.@Kaum noch nat~urliche Auslese."
"Die Ausbreitung neuer, frischer Wesen wird neue Gebietsk~ampfe anregen," "[13500]Die Ausbreitung neuer, frischer Wesen@wird neue Gebietsk~ampfe anregen,"
"uns st~arken und voranbringen," "[18500]uns st~arken und voranbringen,"
"sogar neue Rassen erschaffen." "[20500]sogar neue Rassen erschaffen."
"Eine Art gedopte Evolution also." "[22500]Eine Art gedopte Evolution also."
"Ja, ein Tritt in den Hintern. Die albernen Wichte Qualopec und Tihocan haben ja keine Ahnung." "[24500]Ja, ein Tritt in den Hintern. Die albernen Wichte@Qualopec und Tihocan haben ja keine Ahnung."
"Der Untergang von Atlantis hat eine Rasse tr~ager Schw~achlinge getroffen" "[29500]Der Untergang von Atlantis hat eine Rasse@tr~ager Schw~achlinge getroffen"
"und sie zu den Urspr~ungen des ~Uberlebens zur~uckgeworfen." "[33500]und sie zu den Urspr~ungen des ~Uberlebens zur~uckgeworfen."
"Dies ist, was die Welt braucht." "[36000]Dies ist, was die Welt braucht."
"Nicht auf diese Art." "[38500]Nicht auf diese Art."
"Ausschl~upfen beginnt in 15 Sekunden." "[40000]Ausschl~upfen beginnt in 15 Sekunden."
"Zu sp~at f~ur eine Abtreibung!" "[43000]Zu sp~at f~ur eine Abtreibung!"
"Nicht ohne das Herz der Operation!" "[45000]Nicht ohne das Herz der Operation!"
"Nein!" "[47000]Nein!"
"Ahhh!" "[49500]10..."
"10..." "[53500]5..."
"5..." "[55000]"
""
""
/* 23 */ , /* 23 */ ,
"\0Tja, jetzt haben Sie meine volle Aufmerksamkeit," "[00001]Tja, jetzt haben Sie meine volle Aufmerksamkeit,"
"aber ob ich auch Ihre habe?" "[02500]aber ob ich auch Ihre habe?"
"Hallo?" "[05000]Hallo?"
"Wart's ab. Wenn ich dich in die Finger kriege." "[06000]Wart's ab. Wenn ich dich in die Finger kriege."
"Nat~urlich." "[09000]Nat~urlich."
"Du und das d~amliche St~uck vom Scion." "[10000]Du und das d~amliche St~uck vom Scion."
"Wenn du's unbedingt behalten willst, stopf ich's dir in deinen verdammten..." "[13000]Wenn du's unbedingt behalten willst,@stopf ich's dir in deinen verdammten..."
"Moment. Sprechen wir gerade ~uber das Artefakt?" "[17000]Moment. Sprechen wir gerade ~uber das Artefakt?"
"Darauf kannst du Gift nehmen." "[20000]Darauf kannst du Gift nehmen."
"Moment. Tut mir leid." "[22000]Moment. Tut mir leid."
"Sie sagten St~uck. Wo ist dann der Rest?" "[24000]Sie sagten St~uck. Wo ist dann der Rest?"
"Miss Natla hat Pierre Dupont darauf angesetzt." "[26500]Miss Natla hat Pierre Dupont darauf angesetzt."
"Und wo sucht er danach?" "[29500]Und wo sucht er danach?"
"Ha! Den erwischst du nie!" "[30500]Ha! Den erwischst du nie!"
"Sie meinen also, das Gerede hier h~alt mich nur auf?" "[34000]Sie meinen also, das Gerede hier h~alt mich nur auf?"
"~Ah, keine Ahnung, wo seine krummen Ganovenbeine ihn hingebracht haben." "[37000]~Ah, keine Ahnung, wo seine krummen@Ganovenbeine ihn hingebracht haben."
"Da muss... m~ussen Sie Miss Natla fragen." "[42000]Da muss... m~ussen Sie Miss Natla fragen."
"Danke! Das werde ich tun." "[46000]"
"[51000]Danke! Das werde ich tun."
/* 24 */ , "" /* 24 */ , ""
/* 25 */ , /* 25 */ ,
"\0Hier ruht Tihocan," "[03500]Hier ruht Tihocan,"
"einer der zwei gerechten Herrscher von Atlantis," "[06000]einer der zwei gerechten Herrscher von Atlantis,"
"die selbst nach der Heimsuchung des Erdteils" "[10000]die selbst nach der Heimsuchung des Erdteils"
"trachteten, in diesem kargen, fremden Land gut zu regieren." "[13000]trachteten, in diesem kargen, fremden Land gut zu regieren."
"Er starb ohne Kind und sein Wissen wurde nicht weitergegeben." "[18000]Er starb ohne Kind und sein Wissen wurde nicht weitergegeben."
"Sei gn~adig mit uns, Tihocan." "[25500]Sei gn~adig mit uns, Tihocan."
#endif
/* 22 */ , ""
/* 23 */ , ""
/* 24 */ , ""
/* 25 */ , ""
/* 26 */ , "Willkommen bei mir daheim!@Lass uns einen kleinen Rundgang machen." /* 26 */ , "Willkommen bei mir daheim!@Lass uns einen kleinen Rundgang machen."
/* 27 */ , "Benutz das Steuerkreuz, um ins Musikzimmer zu gehen." /* 27 */ , "Benutz das Steuerkreuz, um ins Musikzimmer zu gehen."
/* 28 */ , "OK, dann lass uns ein bisschen herumtoben!@Dr~uck die Sprungtaste." /* 28 */ , "OK, dann lass uns ein bisschen herumtoben!@Dr~uck die Sprungtaste."
@@ -1069,7 +1063,7 @@ const char *STR_ES[] = { ""
, "Mando 2" , "Mando 2"
, "Mando 3" , "Mando 3"
, "Mando 4" , "Mando 4"
, "Not Ready" , "No est)a listo"
, "Jugador 1" , "Jugador 1"
, "Jugador 2" , "Jugador 2"
, "Pulsa Cualquier Tecla" , "Pulsa Cualquier Tecla"
@@ -1086,15 +1080,15 @@ const char *STR_ES[] = { ""
, "Juego" , "Juego"
, "Mapa" , "Mapa"
, "Br)ujula" , "Br)ujula"
, "Estadistica" , "Estadisticas"
, "Casa De Lara" , "Hogar de Lara"
, "Nivel de Detalle" , "Nivel de Detalle"
, "Sonido" , "Sonido"
, "Controles" , "Controles"
, "Gamma" , "Gamma"
// passport menu // passport menu
, "Cargar Juego" , "Cargar Partida"
, "Juego Nuevo" , "Nueva Partida"
, "Reiniciar Nivel" , "Reiniciar Nivel"
, "Regresar a los T)itulos" , "Regresar a los T)itulos"
, "Salir del Juego" , "Salir del Juego"
@@ -1156,7 +1150,7 @@ const char *STR_ES[] = { ""
, "Llave de Thor" , "Llave de Thor"
, "Llave Decorada" , "Llave Decorada"
// puzzles // puzzles
, "Puzle" , "Puzzle"
, "Idolo de Oro" , "Idolo de Oro"
, "Lingote de Oro" , "Lingote de Oro"
, "Rueda Dentada" , "Rueda Dentada"
@@ -1196,14 +1190,14 @@ const char *STR_ES[] = { ""
/* 48 */ , "La tecla de salto y la de control sirven@para dirigirme mientras buceo." /* 48 */ , "La tecla de salto y la de control sirven@para dirigirme mientras buceo."
/* 49 */ , "\xA1""Ah! \xA1""Aire!@S)olo tienes que usar Adelante, Izquierda y@Derecha para moverse por la superficie.@Presiona Saltar para sumergirte y darte otro ba(~no.@O vete al borde y presiona Acci)on para salir." /* 49 */ , "\xA1""Ah! \xA1""Aire!@S)olo tienes que usar Adelante, Izquierda y@Derecha para moverse por la superficie.@Presiona Saltar para sumergirte y darte otro ba(~no.@O vete al borde y presiona Acci)on para salir."
/* 50 */ , "Bien. Mejor me quito la ropa mojada." /* 50 */ , "Bien. Mejor me quito la ropa mojada."
/* 51 */ , "\xA1""Di patata!" /* 51 */ , "\xA1""Di Queso!"
/* 52 */ , "No es nada personal." /* 52 */ , "Nada personal."
/* 53 */ , "Todavia me provocas dolor de cabeza.@Y ese dolor hace que se me ocurran ideas divertidas.@\xA1""Como dispararte hasta mandarte al infierno!" /* 53 */ , "Todavia me provocas dolor de cabeza.@Y ese dolor hace que se me ocurran ideas divertidas.@\xA1""Como dispararte hasta mandarte al infierno!"
/* 54 */ , "No te burlar)as de mi y mi progenie tan f)acilmente, Lara." /* 54 */ , "No te burlar)as de mi y mi progenie tan f)acilmente, Lara."
/* 55 */ , "Un poco tarde para la entrega de premios \xBFno?@A tiempo, lo que cuenta es la recogida." /* 55 */ , "Un poco tarde para la entrega de premios \xBFno?@A tiempo, lo que cuenta es la recogida."
/* 56 */ , "\xBFMe disparas a mi?@\xBFMe disparas a mi, \xBF""eh?@\xA1No hay nadie m)as, asi que debes estar dispar)andome a mi!" /* 56 */ , "\xBFMe disparas a mi?@\xBFMe disparas a mi, \xBF""eh?@\xA1No hay nadie m)as, asi que debes estar dispar)andome a mi!"
// TR1 levels // TR1 levels
, "Casa de Lara" , "Hogar de Lara"
, "Cuevas" , "Cuevas"
, "Ciudad de Vilcabamba" , "Ciudad de Vilcabamba"
, "El Valle Perdido" , "El Valle Perdido"
@@ -1220,51 +1214,51 @@ const char *STR_ES[] = { ""
, "Atl)antida" , "Atl)antida"
, "La Gran Pir)amide" , "La Gran Pir)amide"
, "Regreso a Egipto" , "Regreso a Egipto"
, "Templo de la Gata" , "Templo del Gato"
, "Fortaleza Atlante" , "Fortaleza Atlante"
, "La Colmena" , "La Colmena"
// TR2 levels // TR2 levels
, "Lara's Home" , "Hogar de Lara"
, "The Great Wall" , "La Gran Muralla"
, "Venice" , "Venecia"
, "Bartoli's Hideout" , "Escondite de Bartoli"
, "Opera House" , "Casa de la Opera"
, "Offshore Rig" , "Plataforma Afuera De la Costa"
, "Diving Area" , "Zona de Buceo"
, "40 Fathoms" , "40 Brazas"
, "Wreck of the Maria Doria" , "Naufragio del Maria Doria"
, "Living Quarters" , "Viviendas"
, "The Deck" , "La Cubierta"
, "Tibetan Foothills" , "Estribaciones Tibetanas"
, "Barkhang Monastery" , "Monasterio de Barkhang"
, "Catacombs of the Talion" , "Catacumbas del Talion"
, "Ice Palace" , "Palacio de Hielo"
, "Temple of Xian" , "Templo de Xian"
, "Floating Islands" , "Islas Flotantes"
, "The Dragon's Lair" , "La Guarida del Dragon"
, "Home Sweet Home" , "Hogar Dulce Hogar"
// TR3 levels // TR3 levels
, "Lara's House" , "Hogar de Lara"
, "Jungle" , "Jungla"
, "Temple Ruins" , "Ruinas del templo"
, "The River Ganges" , "El Rio Ganges"
, "Caves Of Kaliya" , "Cuevas de Kaliya"
, "Coastal Village" , "Villa Costera"
, "Crash Site" , "Sitio de Choque"
, "Madubu Gorge" , "Madubu Gorge"
, "Temple Of Puna" , "Templo de Puna"
, "Thames Wharf" , "Muelle Thames"
, "Aldwych" , "Aldwych"
, "Lud's Gate" , "La Entrada de Lud"
, "City" , "Ciudad"
, "Nevada Desert" , "Desierto de Nevada"
, "High Security Compound" , "Compuesto de Alta Seguridad"
, "Area 51" , "Area 51"
, "Antarctica" , "Antarctica"
, "RX-Tech Mines" , "Minas RX-Tech"
, "Lost City Of Tinnos" , "La Ciudad Perdida De Tinnos"
, "Meteorite Cavern" , "Caverna del Meteorito"
, "All Hallows" , "Todos Santos"
}; };
const char *STR_IT[] = { "" const char *STR_IT[] = { ""
@@ -1655,68 +1649,68 @@ const char *STR_PL[] = { "" // Nickelony & Dustie
/* 55 */ , "A leetle late for the prize giving - non?@Still, it is the taking-part wheech counts." /* 55 */ , "A leetle late for the prize giving - non?@Still, it is the taking-part wheech counts."
/* 56 */ , "You firin' at me?@You firin' at me, huh?@Ain't nobody else, so you must be firin' at me!" /* 56 */ , "You firin' at me?@You firin' at me, huh?@Ain't nobody else, so you must be firin' at me!"
// TR1 levels // TR1 levels
, "Lara's Home" , "Posiad/lo)s)c Lary"
, "Caves" , "G)orskie jaskinie"
, "City of Vilcabamba" , "Miasto Vilcabamba"
, "Lost Valley" , "Zaginiona dolina"
, "Tomb of Qualopec" , "Grobowiec Qualopeca"
, "St. Francis' Folly" , ")Swi|atynia )sw. Franciszka"
, "Colosseum" , "Koloseum"
, "Palace Midas" , "Pa/lac Midasa"
, "The Cistern" , "Cysterna"
, "Tomb of Tihocan" , "Grobowiec Tihocana"
, "City of Khamoon" , "Miasto Khamoon"
, "Obelisk of Khamoon" , "Obelisk Khamoon"
, "Sanctuary of the Scion" , "Sanktuarium Dzieci|ecia"
, "Natla's Mines" , "Kopalnie Natli"
, "Atlantis" , "Atlantyda"
, "The Great Pyramid" , "Wielka piramida"
, "Return to Egypt" , "Powr)ot do Egiptu"
, "Temple of the Cat" , ")Swi|atynia kota"
, "Atlantean Stronghold" , "Atlantydzka twierdza"
, "The Hive" , "R)oj"
// TR2 levels // TR2 levels
, "Lara's Home" , "Posiad/lo)s)c Lary"
, "The Great Wall" , "Wielki Mur"
, "Venice" , "Wenecja"
, "Bartoli's Hideout" , "Kryj)owka Bartoliego"
, "Opera House" , "Opera"
, "Offshore Rig" , "Platforma na morzu"
, "Diving Area" , "Strefa nurkowania"
, "40 Fathoms" , "40 s|a*zni"
, "Wreck of the Maria Doria" , "Wrak Marii Dorii"
, "Living Quarters" , "Kwatery mieszkalne"
, "The Deck" , "Pok/lad"
, "Tibetan Foothills" , "Pog)orza Tybetu"
, "Barkhang Monastery" , "Klasztor Barkhang"
, "Catacombs of the Talion" , "Katakumby Talionu"
, "Ice Palace" , "Lodowy pa/lac"
, "Temple of Xian" , ")Swi|atynia Xian"
, "Floating Islands" , "Lewituj|ace wyspy"
, "The Dragon's Lair" , "Gniazdo smoka"
, "Home Sweet Home" , "Nie ma to jak w domu"
// TR3 levels // TR3 levels
, "Lara's House" , "Posiad/lo)s)c Lary"
, "Jungle" , "D*zungla"
, "Temple Ruins" , "Ruiny )swi|atyni"
, "The River Ganges" , "Rzeka Ganges"
, "Caves Of Kaliya" , "Jaskinie bogini Kaliya"
, "Coastal Village" , "Nadbrze*zna wioska"
, "Crash Site" , "Miejsce katastrofy"
, "Madubu Gorge" , "W|aw)oz Madubu"
, "Temple Of Puna" , ")Swi|atynia Puny"
, "Thames Wharf" , "Zatoka Tamizy"
, "Aldwych" , "Aldwych"
, "Lud's Gate" , "Lud's Gate"
, "City" , "Dzielnica City"
, "Nevada Desert" , "Pustynia w Nevadzie"
, "High Security Compound" , "Strefa Wysokiego Nadzoru"
, "Area 51" , "Strefa 51"
, "Antarctica" , "Antarktyda"
, "RX-Tech Mines" , "Kopalnie RX-Tech"
, "Lost City Of Tinnos" , "Zaginione miasto Tinnos"
, "Meteorite Cavern" , "Grota meteorytu"
, "All Hallows" , "Wszyscy )Swi|eci"
}; };
const char *STR_RU[] = { "" const char *STR_RU[] = { ""
@@ -1821,7 +1815,7 @@ const char *STR_RU[] = { ""
, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" , "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" , "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>{<7B> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" , "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>{<7B> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" , "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
// keys // keys
, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" , "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>{<7B> <20><><EFBFBD><EFBFBD>" , "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>{<7B> <20><><EFBFBD><EFBFBD>"
@@ -1845,10 +1839,55 @@ const char *STR_RU[] = { ""
, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>{<7B>" , "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>{<7B>"
, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" , "<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
// TR1 subtitles // TR1 subtitles
/* 22 */ , "" /* 22 */ ,
/* 23 */ , "" "[04500]<5D> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!"
"[06000]<5D> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?"
"[09500]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>{<7B> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>."
"[13500]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>."
"[17500]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>."
"[20500]<5D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>!"
"[22500]<5D><><EFBFBD>-<2D><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?"
"[24500]<5D><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD>...@<40><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!"
"[30000]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,"
"[34000]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>..."
"[37000]<5D><>~<7E> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>."
"[39000]<5D> <20><> <20><><EFBFBD>!"
"[40000]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> 15 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>."
"[43000]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>!"
"[45000]<5D><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?"
"[47500]<5D><><EFBFBD><EFBFBD><EFBFBD>!"
"[50000]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>..."
"[54000]<5D><><EFBFBD><EFBFBD>..."
"[55500]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>... <20><><EFBFBD>... <20><><EFBFBD>..."
"[60000]<5D><><EFBFBD><EFBFBD>..."
/* 23 */ ,
"[00001]<5D><><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
"[03000]<5D><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>."
"[05500]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?"
"[06500]<5D><><EFBFBD><EFBFBD>... <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><> <20><><EFBFBD>!"
"[09000]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
"[10000]<5D><>, <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>{<7B> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!"
"[13500]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>? <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20>..."
"[17000]<5D><><EFBFBD><EFBFBD>! <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?"
"[19500]<5D>~<7E><><EFBFBD> <20><>... <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>..."
"[22000]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>."
"[24000]<5D><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?"
"[26500]<5D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>."
"[29500]<5D> <20><><EFBFBD> <20><> <20><>?"
"[30500]<5D><>! <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>."
"[34000]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?"
"[37000]<5D> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>."
"[42500]<5D><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>."
"[46000]"
"[51000]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>."
/* 24 */ , "" /* 24 */ , ""
/* 25 */ , "" /* 25 */ ,
"[03500]<5D><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
"[06000]<5D><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>{<7B> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>..."
"[10000]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>{<7B>, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>..."
"[16000]<5D> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>."
"[19000]<5D><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>."
"[26000]<5D><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>."
/* 26 */ , "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>{<7B>.@<40> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>." /* 26 */ , "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>{<7B>.@<40> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>."
/* 27 */ , "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>{<7B><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,@<40><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>." /* 27 */ , "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>{<7B><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,@<40><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>."
/* 28 */ , "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>." /* 28 */ , "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>."
@@ -1893,7 +1932,7 @@ const char *STR_RU[] = { ""
, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" , "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>" , "<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>"
, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>" , "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>"
, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" , "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>" , "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>"
, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" , "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" , "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"

View File

@@ -24,6 +24,10 @@ namespace UI {
float helpTipTime; float helpTipTime;
float hintTime; float hintTime;
float subsTime; float subsTime;
int subsPartTime;
int subsPartLength;
int subsPos;
int subsLength;
StringID hintStr; StringID hintStr;
StringID subsStr; StringID subsStr;
@@ -158,6 +162,7 @@ namespace UI {
int x = 0; int x = 0;
while (char c = *text++) { while (char c = *text++) {
if (c == '[') break;
c = remapCyrillic(c); c = remapCyrillic(c);
if (c == '\xBF') c = '?'; if (c == '\xBF') c = '?';
if (c == '\xA1') c = '!'; if (c == '\xA1') c = '!';
@@ -179,6 +184,7 @@ namespace UI {
int x = 0, w = 0, h = 16; int x = 0, w = 0, h = 16;
while (char c = *text++) { while (char c = *text++) {
if (c == '[') break;
c = remapCyrillic(c); c = remapCyrillic(c);
if (c == '\xBF') c = '?'; if (c == '\xBF') c = '?';
if (c == '\xA1') c = '!'; if (c == '\xA1') c = '!';
@@ -285,6 +291,8 @@ namespace UI {
} }
while (char c = *text++) { while (char c = *text++) {
if (c == '[') break; // subs part end (timing tags)
bool invertX = false, invertY = false; bool invertX = false, invertY = false;
int dx = 0, dy = 0; int dx = 0, dy = 0;
@@ -427,13 +435,67 @@ namespace UI {
pickups.clear(); pickups.clear();
} }
void showHint(StringID str, float time) {
hintStr = str;
hintTime = time;
}
void subsGetNextPart() {
const char *subs = STR[subsStr];
subsPos += subsPartLength;
if (subsPos >= subsLength) {
subsTime = 0.0f;
subsStr = STR_EMPTY;
}
for (int i = subsPos; i < subsLength; i++) {
if (subs[i] == '[') {
for (int j = i; j < subsLength; j++) {
if (subs[j] == ']') {
char buf[32];
memcpy(buf, subs + i + 1, j - i - 1);
buf[j - i - 1] = 0;
int time = atoi(buf);
subsTime += (time - subsPartTime) / 1000.0f;
subsPartTime = time;
subsPartLength = j - subsPos + 1;
return;
}
}
}
}
subsPartLength = subsLength - subsPos;
subsTime = subsPartLength * SUBTITLES_SPEED;
}
void showSubs(StringID str) {
if (str == STR_EMPTY || !Core::settings.audio.subtitles)
return;
subsStr = str;
subsLength = strlen(STR[str]);
subsPos = 0;
subsTime = 0.0f;
subsPartTime = 0;
subsPartLength = 0;
subsGetNextPart();
}
void update() { void update() {
if (hintTime > 0.0f) { if (hintTime > 0.0f) {
hintTime = max(0.0f, hintTime - Core::deltaTime); hintTime = max(0.0f, hintTime - Core::deltaTime);
} }
if (subsTime > 0.0f) { if (subsTime > 0.0f) {
subsTime = max(0.0f, subsTime - Core::deltaTime); subsTime -= Core::deltaTime;
if (subsTime <= 0.0f) {
subsGetNextPart();
}
} }
if (Input::down[ikH]) { if (Input::down[ikH]) {
@@ -520,18 +582,6 @@ namespace UI {
mesh->addDynBar(barTile[type], pos, vec2(size.x * value, size.y), fgColor, fgColor2); mesh->addDynBar(barTile[type], pos, vec2(size.x * value, size.y), fgColor, fgColor2);
} }
void showHint(StringID str, float time) {
hintStr = str;
hintTime = time;
}
void showSubs(StringID str) {
if (str == STR_EMPTY || !Core::settings.audio.subtitles)
return;
subsStr = str;
subsTime = strlen(STR[str]) * SUBTITLES_SPEED;
}
void renderHelp() { void renderHelp() {
#ifdef _NAPI_SOCKET #ifdef _NAPI_SOCKET
textOut(vec2(16, height - 32), command, aLeft, width - 32, 255, UI::SHADE_GRAY); textOut(vec2(16, height - 32), command, aLeft, width - 32, 255, UI::SHADE_GRAY);
@@ -565,8 +615,9 @@ namespace UI {
float eye = UI::width * Core::eye * 0.02f; float eye = UI::width * Core::eye * 0.02f;
if (subsTime > 0.0f) { if (subsTime > 0.0f) {
textOut(vec2(16 - eye, height - 48) + vec2(1, 1), STR[subsStr], aCenterV, width - 32, 255, UI::SHADE_GRAY, true); const char *subs = STR[subsStr] + subsPos;
textOut(vec2(16 - eye, height - 48), STR[subsStr], aCenterV, width - 32, 255, UI::SHADE_GRAY); textOut(vec2(16 - eye, height - 48) + vec2(1, 1), subs, aCenterV, width - 32, 255, UI::SHADE_GRAY, true);
textOut(vec2(16 - eye, height - 48), subs, aCenterV, width - 32, 255, UI::SHADE_GRAY);
} }
} }