From 4cfc650f5bca893b357dc0c20fe7186d354da745 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Wed, 24 Jul 2019 21:40:17 +0200 Subject: [PATCH 01/32] - fixed line breaking on non-spaces for multi-byte UTF-8 characters. This needs to backtrack the entire code point, not just one byte. --- src/gamedata/fonts/v_text.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/gamedata/fonts/v_text.cpp b/src/gamedata/fonts/v_text.cpp index ac176e12a..fbbbde9e1 100644 --- a/src/gamedata/fonts/v_text.cpp +++ b/src/gamedata/fonts/v_text.cpp @@ -125,7 +125,9 @@ TArray V_BreakLines (FFont *font, int maxwidth, const uint8_t *str if ((w > 0 && w + nw > maxwidth) || c == '\n') { // Time to break the line if (!space) - space = string - 1; + { + for (space = string - 1; (*space & 0xc0) == 0x80 && space > start; space--); + } auto index = Lines.Reserve(1); breakit (&Lines[index], font, start, space, linecolor); From b4aacb7be5c3a3b1183335cb9505972f6cac8c6b Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Thu, 25 Jul 2019 20:42:41 +0200 Subject: [PATCH 02/32] - fixed: The numcommands value in A_KoraxCommand needs to be decremented by one because the max parameter of the random function is inclusive. --- wadsrc/static/zscript/actors/hexen/korax.zs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/wadsrc/static/zscript/actors/hexen/korax.zs b/wadsrc/static/zscript/actors/hexen/korax.zs index e19ff0457..692b6cb9c 100644 --- a/wadsrc/static/zscript/actors/hexen/korax.zs +++ b/wadsrc/static/zscript/actors/hexen/korax.zs @@ -363,11 +363,11 @@ class Korax : Actor if (health <= (SpawnHealth() >> 1)) { - numcommands = 5; + numcommands = 4; } else { - numcommands = 4; + numcommands = 3; } ACS_Execute(250 + (random[KoraxCommand](0, numcommands)), 0); From b4b314790f815401e5e2cd9818f5ed7287894483 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Fri, 26 Jul 2019 19:19:58 +0200 Subject: [PATCH 03/32] - added the Serbian characters to the Harmony SmallFont. --- .../filter/harmony/fonts/defsmallfont/0402.lmp | Bin 0 -> 157 bytes .../filter/harmony/fonts/defsmallfont/0409.lmp | Bin 0 -> 178 bytes .../filter/harmony/fonts/defsmallfont/040A.lmp | Bin 0 -> 178 bytes .../filter/harmony/fonts/defsmallfont/040B.lmp | Bin 0 -> 149 bytes .../filter/harmony/fonts/defsmallfont/040F.lmp | Bin 0 -> 131 bytes 5 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 wadsrc_extra/static/filter/harmony/fonts/defsmallfont/0402.lmp create mode 100644 wadsrc_extra/static/filter/harmony/fonts/defsmallfont/0409.lmp create mode 100644 wadsrc_extra/static/filter/harmony/fonts/defsmallfont/040A.lmp create mode 100644 wadsrc_extra/static/filter/harmony/fonts/defsmallfont/040B.lmp create mode 100644 wadsrc_extra/static/filter/harmony/fonts/defsmallfont/040F.lmp diff --git a/wadsrc_extra/static/filter/harmony/fonts/defsmallfont/0402.lmp b/wadsrc_extra/static/filter/harmony/fonts/defsmallfont/0402.lmp new file mode 100644 index 0000000000000000000000000000000000000000..6d06d29a36c92f43b22e3a15d211a7964523d351 GIT binary patch literal 157 zcmYMsyA6Oa3N+<0?Tff5yJ zG-%PG$AA$NW*9F|ZN{e*V_1SJ`D`z|o3$c@_y5lRJ1L2Z9{bkCC|3yK?r>#gJQ3|Wd}rI_N#+lyxXySsVp_HD=PYwaw>H)`>YJCUro?%3?cd;rn8Od$XO literal 0 HcmV?d00001 diff --git a/wadsrc_extra/static/filter/harmony/fonts/defsmallfont/040F.lmp b/wadsrc_extra/static/filter/harmony/fonts/defsmallfont/040F.lmp new file mode 100644 index 0000000000000000000000000000000000000000..7e381c968e1504bf57111bde5a146ba245dd4ce5 GIT binary patch literal 131 zcmd;J;9vj&4InlFVh14h0pd^~jsxOsAT9@D2KM Date: Fri, 26 Jul 2019 19:38:42 +0200 Subject: [PATCH 04/32] - Serbian characters for Hacx's BigFont. --- .../filter/hacx.hacx1/fonts/bigfont/0402.lmp | Bin 0 -> 316 bytes .../filter/hacx.hacx1/fonts/bigfont/0409.lmp | Bin 0 -> 381 bytes .../filter/hacx.hacx1/fonts/bigfont/040A.lmp | Bin 0 -> 384 bytes .../filter/hacx.hacx1/fonts/bigfont/040B.lmp | Bin 0 -> 311 bytes .../filter/hacx.hacx1/fonts/bigfont/040F.lmp | Bin 0 -> 298 bytes 5 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 wadsrc_extra/static/filter/hacx.hacx1/fonts/bigfont/0402.lmp create mode 100644 wadsrc_extra/static/filter/hacx.hacx1/fonts/bigfont/0409.lmp create mode 100644 wadsrc_extra/static/filter/hacx.hacx1/fonts/bigfont/040A.lmp create mode 100644 wadsrc_extra/static/filter/hacx.hacx1/fonts/bigfont/040B.lmp create mode 100644 wadsrc_extra/static/filter/hacx.hacx1/fonts/bigfont/040F.lmp diff --git a/wadsrc_extra/static/filter/hacx.hacx1/fonts/bigfont/0402.lmp b/wadsrc_extra/static/filter/hacx.hacx1/fonts/bigfont/0402.lmp new file mode 100644 index 0000000000000000000000000000000000000000..69ce1dfc9ef9b695742c5724112b90cecbb2ca56 GIT binary patch literal 316 zcmZ9H!41MN3`JcDaiJGjp(C&chgeahC~9a=a5Ps|UwMQ#8RJJ3m{uj6wBBm4TuUiw2Z(CtiTGiw5-4i^x@8SBJre8 zdUy8wu@|Bg3=0n646fh??%)BQ;04~`1HNFK39$q#um&5j1v_v87f|FrM8~A5z3)b| z=y+dKW^?b4#yO+ou_&QiQ+0TW1(*Mg303dl) literal 0 HcmV?d00001 diff --git a/wadsrc_extra/static/filter/hacx.hacx1/fonts/bigfont/040A.lmp b/wadsrc_extra/static/filter/hacx.hacx1/fonts/bigfont/040A.lmp new file mode 100644 index 0000000000000000000000000000000000000000..3aec91b1b30b94890c8ea04d785287772fe875da GIT binary patch literal 384 zcmY+8u?@m75Jim?L5j2#tiS>+zyP))D<>-^sb~Yo*A5R&{avD9rJNw*owcsyAOnVLeJB&Y rh2g`H4ekmetYu7{1rsQE-TjI58@!~Ln8z3q_Y@1>i>aUEtE}k@@0xmH literal 0 HcmV?d00001 diff --git a/wadsrc_extra/static/filter/hacx.hacx1/fonts/bigfont/040B.lmp b/wadsrc_extra/static/filter/hacx.hacx1/fonts/bigfont/040B.lmp new file mode 100644 index 0000000000000000000000000000000000000000..97d023e8fd95eb71c1ad2d5f7be8a4569574d54e GIT binary patch literal 311 zcmZvW!3hE}5Jg9jMPx6Yw*^b_kPrePY}`HRalG1sE!cuB*upko1GeBP`zK=*#DN#) zKPH)Ms3oZ#@L&&)-~`U#088l%{1Kl3tKA zQxP!+@2oLzk@^^luvKWb<|~+k*LO0lnER;W6I>mQfmwo7StkO!tj9n83mvvD9Wc=} G8qv;d*JCUI literal 0 HcmV?d00001 diff --git a/wadsrc_extra/static/filter/hacx.hacx1/fonts/bigfont/040F.lmp b/wadsrc_extra/static/filter/hacx.hacx1/fonts/bigfont/040F.lmp new file mode 100644 index 0000000000000000000000000000000000000000..23330eb9d2fe1613e231016a15a1349ed382e98a GIT binary patch literal 298 zcmY+hA9D?&>S}3NG~@&$b%)L6ZB( z-I`Y9v4seGIKUB3aE1$9;Rbhjz!P3jOo%o>3;T(V3bVFt>RMHIW*seaU8NMqMpIXs zqKJNX^f$0K=2J5kPiAHz_*za`hVGa$=MDWKAK1s|I&Wx7!XfZ5(5G|YGCv7#)+8kd I$@Tx2-hI7a`~Uy| literal 0 HcmV?d00001 From 933244123faed2e4f5e923f1d66da2268b337f92 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Fri, 26 Jul 2019 19:52:46 +0200 Subject: [PATCH 05/32] - Serbian characters for Hacx SmallFont --- .../filter/hacx.hacx1/fonts/defsmallfont/0402.lmp | Bin 0 -> 139 bytes .../filter/hacx.hacx1/fonts/defsmallfont/0409.lmp | Bin 0 -> 167 bytes .../filter/hacx.hacx1/fonts/defsmallfont/040A.lmp | Bin 0 -> 155 bytes .../filter/hacx.hacx1/fonts/defsmallfont/040B.lmp | Bin 0 -> 141 bytes .../filter/hacx.hacx1/fonts/defsmallfont/040F.lmp | Bin 0 -> 119 bytes 5 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 wadsrc_extra/static/filter/hacx.hacx1/fonts/defsmallfont/0402.lmp create mode 100644 wadsrc_extra/static/filter/hacx.hacx1/fonts/defsmallfont/0409.lmp create mode 100644 wadsrc_extra/static/filter/hacx.hacx1/fonts/defsmallfont/040A.lmp create mode 100644 wadsrc_extra/static/filter/hacx.hacx1/fonts/defsmallfont/040B.lmp create mode 100644 wadsrc_extra/static/filter/hacx.hacx1/fonts/defsmallfont/040F.lmp diff --git a/wadsrc_extra/static/filter/hacx.hacx1/fonts/defsmallfont/0402.lmp b/wadsrc_extra/static/filter/hacx.hacx1/fonts/defsmallfont/0402.lmp new file mode 100644 index 0000000000000000000000000000000000000000..fa4a90660717f0e9e4f7bd0ddc71d74a64dfce8e GIT binary patch literal 139 zcmd;NU}pdU9UwLVVjCd#0OAlJP5|N@Ag%!779eI|{saR5LG%$2%?_p^Vj%X>38d*i0FY~0?*IS* literal 0 HcmV?d00001 diff --git a/wadsrc_extra/static/filter/hacx.hacx1/fonts/defsmallfont/040A.lmp b/wadsrc_extra/static/filter/hacx.hacx1/fonts/defsmallfont/040A.lmp new file mode 100644 index 0000000000000000000000000000000000000000..e166100d9e463c99eee8b73aae2e7786d22e7669 GIT binary patch literal 155 zcmd;LU}pdU10c2mVh18VBkN9edOrzkXjh)6WA;kCa^I8s4-Kx literal 0 HcmV?d00001 diff --git a/wadsrc_extra/static/filter/hacx.hacx1/fonts/defsmallfont/040B.lmp b/wadsrc_extra/static/filter/hacx.hacx1/fonts/defsmallfont/040B.lmp new file mode 100644 index 0000000000000000000000000000000000000000..9fa5ada89edbf567ecfc99c7d4715945ec52c01d GIT binary patch literal 141 zcmd;NU}pdU9UwLVVjCd#0OAlJP5|N@Ag%!779eI|{saR5LG%$2%?_p^Vj%X>?22yA3y%-(|-mIh%k`-=|2n0 Nr%#xoD9VwH0RZZVL23X1 literal 0 HcmV?d00001 From 4964c840e56e02fe48ccb571a8265abff064548d Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Fri, 26 Jul 2019 20:11:00 +0200 Subject: [PATCH 06/32] - fixed: Harmony did not declare its status bar class. --- wadsrc_extra/static/filter/harmony/mapinfo.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/wadsrc_extra/static/filter/harmony/mapinfo.txt b/wadsrc_extra/static/filter/harmony/mapinfo.txt index 84b81c1bf..fccbf7faa 100644 --- a/wadsrc_extra/static/filter/harmony/mapinfo.txt +++ b/wadsrc_extra/static/filter/harmony/mapinfo.txt @@ -7,6 +7,7 @@ gameinfo statscreen_enteringfont = "*SmallFont" statscreen_contentfont = "*BigFont", "teal" playerclasses = "HarmonyPlayer" + statusbarclass = "HarmonyStatusBar" quitmessages = "$HARMQUITMSG" } From 222dfd17b7f5467d1b6bfe06444cf4559cae438f Mon Sep 17 00:00:00 2001 From: "alexey.lysiuk" Date: Fri, 26 Jul 2019 10:33:41 +0300 Subject: [PATCH 07/32] - added ability to specify display duration of subtitles Duration of sound playback and subtitles display will be synchronized if sound id is specified For existing Strife messages this works out of the box https://forum.zdoom.org/viewtopic.php?t=65379 --- src/playsim/d_player.h | 2 +- src/playsim/p_lnspec.cpp | 2 +- src/playsim/p_user.cpp | 7 ++++--- wadsrc/static/zscript/actors/player/player.zs | 2 +- wadsrc/static/zscript/actors/strife/acolyte.zs | 2 +- wadsrc/static/zscript/actors/strife/alienspectres.zs | 2 +- wadsrc/static/zscript/actors/strife/strifestuff.zs | 2 +- 7 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/playsim/d_player.h b/src/playsim/d_player.h index f701d89f9..3bd6431aa 100644 --- a/src/playsim/d_player.h +++ b/src/playsim/d_player.h @@ -289,7 +289,7 @@ public: void SetLogNumber (int num); void SetLogText (const char *text); void SendPitchLimits() const; - void SetSubtitle(int num); + void SetSubtitle(int num, FSoundID soundid); AActor *mo = nullptr; uint8_t playerstate = 0; diff --git a/src/playsim/p_lnspec.cpp b/src/playsim/p_lnspec.cpp index 623095b1f..33b8d4b9e 100644 --- a/src/playsim/p_lnspec.cpp +++ b/src/playsim/p_lnspec.cpp @@ -3196,7 +3196,7 @@ FUNC(LS_SendToCommunicator) if (it->CheckLocalView()) { S_StopSound (CHAN_VOICE); - it->player->SetSubtitle(arg0); + it->player->SetSubtitle(arg0, name); S_Sound (CHAN_VOICE, name, 1, ATTN_NORM); // Get the message from the LANGUAGE lump. diff --git a/src/playsim/p_user.cpp b/src/playsim/p_user.cpp index 031f88059..8834e423a 100644 --- a/src/playsim/p_user.cpp +++ b/src/playsim/p_user.cpp @@ -437,7 +437,7 @@ DEFINE_ACTION_FUNCTION(_PlayerInfo, SetLogText) return 0; } -void player_t::SetSubtitle(int num) +void player_t::SetSubtitle(int num, FSoundID soundid) { char lumpname[36]; @@ -449,7 +449,7 @@ void player_t::SetSubtitle(int num) if (text != nullptr) { SubtitleText = lumpname; - SubtitleCounter = 7 * TICRATE; + SubtitleCounter = soundid == 0 ? 7 * TICRATE : S_GetMSLength(soundid) * TICRATE / 1000; } } @@ -457,7 +457,8 @@ DEFINE_ACTION_FUNCTION(_PlayerInfo, SetSubtitleNumber) { PARAM_SELF_STRUCT_PROLOGUE(player_t); PARAM_INT(log); - self->SetSubtitle(log); + PARAM_SOUND(soundid); + self->SetSubtitle(log, soundid); return 0; } diff --git a/wadsrc/static/zscript/actors/player/player.zs b/wadsrc/static/zscript/actors/player/player.zs index 1fa785f6e..0036f922a 100644 --- a/wadsrc/static/zscript/actors/player/player.zs +++ b/wadsrc/static/zscript/actors/player/player.zs @@ -2692,7 +2692,7 @@ struct PlayerInfo native play // self is what internally is known as player_t native PSprite FindPSprite(int id) const; native void SetLogNumber (int text); native void SetLogText (String text); - native void SetSubtitleNumber (int text); + native void SetSubtitleNumber (int text, Sound sound_id = 0); native bool Resurrect(); native String GetUserName() const; diff --git a/wadsrc/static/zscript/actors/strife/acolyte.zs b/wadsrc/static/zscript/actors/strife/acolyte.zs index b2951a9b1..877a44304 100644 --- a/wadsrc/static/zscript/actors/strife/acolyte.zs +++ b/wadsrc/static/zscript/actors/strife/acolyte.zs @@ -102,7 +102,7 @@ class Acolyte : StrifeHumanoid { players[i].mo.GiveInventoryType ("QuestItem7"); players[i].SetLogNumber (14); - players[i].SetSubtitleNumber (14); + players[i].SetSubtitleNumber (14, "svox/voc14"); A_StopSound (CHAN_VOICE); A_PlaySound ("svox/voc14", CHAN_VOICE, 1, false, ATTN_NONE); } diff --git a/wadsrc/static/zscript/actors/strife/alienspectres.zs b/wadsrc/static/zscript/actors/strife/alienspectres.zs index 16b4668dc..160ca9529 100644 --- a/wadsrc/static/zscript/actors/strife/alienspectres.zs +++ b/wadsrc/static/zscript/actors/strife/alienspectres.zs @@ -181,7 +181,7 @@ class AlienSpectre1 : SpectralMonster String voc = "svox/voc" .. log; A_PlaySound(voc, CHAN_VOICE, 1, false, ATTN_NONE); player.player.SetLogNumber (log); - player.player.SetSubtitleNumber (log); + player.player.SetSubtitleNumber (log, voc); } } diff --git a/wadsrc/static/zscript/actors/strife/strifestuff.zs b/wadsrc/static/zscript/actors/strife/strifestuff.zs index 9c35145ab..e760bdbc1 100644 --- a/wadsrc/static/zscript/actors/strife/strifestuff.zs +++ b/wadsrc/static/zscript/actors/strife/strifestuff.zs @@ -1865,7 +1865,7 @@ class PowerCoupling : Actor players[i].mo.GiveInventoryType ("QuestItem6"); S_Sound ("svox/voc13", CHAN_VOICE); players[i].SetLogNumber (13); - players[i].SetSubtitleNumber (13); + players[i].SetSubtitleNumber (13, "svox/voc13"); A_DropItem ("BrokenPowerCoupling", -1, 256); Destroy (); } From 495f2d9c82b4367db4f68624620a84ec78dc51a6 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Fri, 26 Jul 2019 20:18:01 +0200 Subject: [PATCH 08/32] - changed subtitle duration to last at least 7 seconds, even for shorter sounds so that there is sufficient time to read them. --- src/playsim/p_user.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/playsim/p_user.cpp b/src/playsim/p_user.cpp index 8834e423a..6578c2c99 100644 --- a/src/playsim/p_user.cpp +++ b/src/playsim/p_user.cpp @@ -449,7 +449,8 @@ void player_t::SetSubtitle(int num, FSoundID soundid) if (text != nullptr) { SubtitleText = lumpname; - SubtitleCounter = soundid == 0 ? 7 * TICRATE : S_GetMSLength(soundid) * TICRATE / 1000; + int sl = soundid == 0 ? 7000 : std::max(7000, S_GetMSLength(soundid)); + SubtitleCounter = sl * TICRATE / 1000; } } From 86d274279894fe80fe987c6813512499cedc3656 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Fri, 26 Jul 2019 20:23:46 +0200 Subject: [PATCH 09/32] - allow switching the Strife conversation screen to the VGA font for all languages by a CVAR. This is for readability purposes because the styled SmallFont may be problematic for some players. --- src/p_conversation.cpp | 1 + wadsrc/static/zscript/ui/menu/conversationmenu.zs | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/p_conversation.cpp b/src/p_conversation.cpp index a8cdf3f29..4a0a77e46 100644 --- a/src/p_conversation.cpp +++ b/src/p_conversation.cpp @@ -70,6 +70,7 @@ static bool DrawConversationMenu (); static void PickConversationReply (int replyindex); static void TerminalResponse (const char *str); +CVAR(Bool, dlg_vgafont, false, CVAR_ARCHIVE) //============================================================================ // diff --git a/wadsrc/static/zscript/ui/menu/conversationmenu.zs b/wadsrc/static/zscript/ui/menu/conversationmenu.zs index a51c01d78..3c939d380 100644 --- a/wadsrc/static/zscript/ui/menu/conversationmenu.zs +++ b/wadsrc/static/zscript/ui/menu/conversationmenu.zs @@ -112,7 +112,7 @@ class ConversationMenu : Menu mShowGold = false; ConversationPauseTic = gametic + 20; DontDim = true; - if (!generic_ui) + if (!generic_ui && !dlg_vgafont) { displayFont = SmallFont; displayWidth = CleanWidth; From 69cc2cb5276888eb310c84d31b4698fd951ccd0f Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Fri, 26 Jul 2019 21:24:33 +0200 Subject: [PATCH 10/32] - Serbian characters for Chex's BigFont. --- .../filter/game-chex/fonts/bigfont/0402.lmp | Bin 0 -> 212 bytes .../filter/game-chex/fonts/bigfont/0409.lmp | Bin 0 -> 254 bytes .../filter/game-chex/fonts/bigfont/040A.lmp | Bin 0 -> 288 bytes .../filter/game-chex/fonts/bigfont/040B.lmp | Bin 0 -> 192 bytes .../filter/game-chex/fonts/bigfont/040F.lmp | Bin 0 -> 235 bytes 5 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 wadsrc_extra/static/filter/game-chex/fonts/bigfont/0402.lmp create mode 100644 wadsrc_extra/static/filter/game-chex/fonts/bigfont/0409.lmp create mode 100644 wadsrc_extra/static/filter/game-chex/fonts/bigfont/040A.lmp create mode 100644 wadsrc_extra/static/filter/game-chex/fonts/bigfont/040B.lmp create mode 100644 wadsrc_extra/static/filter/game-chex/fonts/bigfont/040F.lmp diff --git a/wadsrc_extra/static/filter/game-chex/fonts/bigfont/0402.lmp b/wadsrc_extra/static/filter/game-chex/fonts/bigfont/0402.lmp new file mode 100644 index 0000000000000000000000000000000000000000..0eda14c5897928967ede0db943f91a2464058901 GIT binary patch literal 212 zcmX}kyA8rX3I4R-ot3_i_@sWe0{}2730n_V_8l(kDxP{3A{Dts|V^ z3>UaUf;&9m2`_j9b>81p+rN(?xR_#8TVl?QCJ|hqiaLZ~;C%?e=h-CS3J_!&Y zjx^FEPVfqE@D2iBaDgj)!w>wzAKc&$sf)18-1<~2ODGey=UqgRIlCDu8f(=&O?j5j zb9yxPrQ}I8>WXNTwsP6>Ln)Jp@?1?+v8#&foXth>6B-fA;>#abzJzU5LZUv$_T8$3ar2gNV%5ZhzYRtDYBLP z@rFjy+QA+UFu?_`aDzKM;0Z5y19e0rY=H)kk}B++6Ip1~-btQ)2$={2=REt9&oguV z4n$HZc`D~)(Lpz8X0EIUdShx8uQ&hA4#5&hw)U4jg*gkS))uo)Da7EXg8Y?bjxmZZ Q(f27~E&bn`*6^N|57sVLZU6uP literal 0 HcmV?d00001 diff --git a/wadsrc_extra/static/filter/game-chex/fonts/bigfont/040B.lmp b/wadsrc_extra/static/filter/game-chex/fonts/bigfont/040B.lmp new file mode 100644 index 0000000000000000000000000000000000000000..0c09d9a40f5dc8f23c16b2f393905f767dc69835 GIT binary patch literal 192 zcmX}k%MAiC3M&VN_FPyj_x1Fh{f3Hr7lIvghq iNlW2b&YErawQ5jF6Bkx%GhpXpk6goKi5Tf!M&8j5G|`qb zT;K{fP`JYbp74SCaS5u#ViIVEpJjI*Uu-K7=X*!R@a zGLi?^oY&()m3@xe@wCs2S*|Xv5}8#Kt6RX}J{ePBTwtOVf@G;he!u93?eL%V3&8k9 Aq5uE@ literal 0 HcmV?d00001 From c1a620dce6be6a5d4aa70aed628700c73792c986 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Fri, 26 Jul 2019 21:53:02 +0200 Subject: [PATCH 11/32] - Serbian characters for Strife's log font. --- .../game-strife/fonts/defsmallfont2/0402.lmp | Bin 0 -> 116 bytes .../game-strife/fonts/defsmallfont2/0409.lmp | Bin 0 -> 150 bytes .../game-strife/fonts/defsmallfont2/040A.lmp | Bin 0 -> 140 bytes .../game-strife/fonts/defsmallfont2/040B.lmp | Bin 0 -> 115 bytes .../game-strife/fonts/defsmallfont2/040F.lmp | Bin 0 -> 107 bytes 5 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0402.lmp create mode 100644 wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0409.lmp create mode 100644 wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/040A.lmp create mode 100644 wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/040B.lmp create mode 100644 wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/040F.lmp diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0402.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0402.lmp new file mode 100644 index 0000000000000000000000000000000000000000..178daca4f0fab01c322ef2e3cb1a19c12671ea1e GIT binary patch literal 116 zcmXZRF%p0<2n0Y-lgU%8q_VcR^Pu(#{=dVEk(p%;>^pGfklnF3P cDZmAfNU0^jR#W9 iHmj|<3|~_9P*hDBkI@MJ(`vnyjTeNJYVBt^^!)-`cOF^* literal 0 HcmV?d00001 diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/040B.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/040B.lmp new file mode 100644 index 0000000000000000000000000000000000000000..83cecacd5a2e7c261b93184ba7eeb5685ed97215 GIT binary patch literal 115 zcmXZRF%Ez*3$^8%~+|0RLZuTZnX$V^=BCZ=sbo+UcN+ZhA-*Ku7}2 dLT2EEw-!>q)JsO=`tLS&RsK1kIko7m5G? literal 0 HcmV?d00001 diff --git a/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/040F.lmp b/wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/040F.lmp new file mode 100644 index 0000000000000000000000000000000000000000..2d06bdb0f46908b83632264f208172bbfece9780 GIT binary patch literal 107 zcmZQ)U}pdU6(H6FVoM-)24XKD4g=yuAZB0<3JMGg4hi|szy@LI>;GqD)dzwQAd7`5 TB;?7H{|xLfIekoZK&AfypEVbK literal 0 HcmV?d00001 From d222bee7f9ec3508ad85fb1fff33798670b5ab3f Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Fri, 26 Jul 2019 22:11:08 +0200 Subject: [PATCH 12/32] - Serbian characters for Strife's BigFont. --- .../filter/game-strife/fonts/bigfont/0402.lmp | Bin 0 -> 402 bytes .../filter/game-strife/fonts/bigfont/0409.lmp | Bin 0 -> 489 bytes .../filter/game-strife/fonts/bigfont/040A.lmp | Bin 0 -> 526 bytes .../filter/game-strife/fonts/bigfont/040B.lmp | Bin 0 -> 386 bytes .../filter/game-strife/fonts/bigfont/040F.lmp | Bin 0 -> 368 bytes 5 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 wadsrc_extra/static/filter/game-strife/fonts/bigfont/0402.lmp create mode 100644 wadsrc_extra/static/filter/game-strife/fonts/bigfont/0409.lmp create mode 100644 wadsrc_extra/static/filter/game-strife/fonts/bigfont/040A.lmp create mode 100644 wadsrc_extra/static/filter/game-strife/fonts/bigfont/040B.lmp create mode 100644 wadsrc_extra/static/filter/game-strife/fonts/bigfont/040F.lmp diff --git a/wadsrc_extra/static/filter/game-strife/fonts/bigfont/0402.lmp b/wadsrc_extra/static/filter/game-strife/fonts/bigfont/0402.lmp new file mode 100644 index 0000000000000000000000000000000000000000..38f4e8456823d141daf6b125c33c04c0db156e9b GIT binary patch literal 402 zcmZvYyA8rH5QZJ`h(iGpEWr}Ayka973VKQ;RzS`r1;v#N!4fRN5-dUZeNIFoandK9 zKA(J#sY;cPJvf3BxBv(4-~pcC1>WETW|2~JumA^e23K$cQJ*C$HDoT!qF@f`awX{) zR?<-BUnjMq9O0a6Iof8%Si2LKO5J+XxPQ`iB;`haY)fJ?R5!0w_!E;+23a?6NkgvF mT`GSg`5k4OIAPAaUUt{oduwH`<~BMG(vOu4nzo}}INTSM#g*#- literal 0 HcmV?d00001 diff --git a/wadsrc_extra/static/filter/game-strife/fonts/bigfont/0409.lmp b/wadsrc_extra/static/filter/game-strife/fonts/bigfont/0409.lmp new file mode 100644 index 0000000000000000000000000000000000000000..ff6fa0b93c4140264795754b94308dec379b7b3c GIT binary patch literal 489 zcmaiwJr2S!421)QmVX8oZonbfp+F0FVB!F9f&7%s0|Pr7BRdioKw@R?&K<%_Qc97K zYUz{WXU8w`koB2~4cGw%j^GTg-~m$b0vZe|jE%q;tiT#SrC{eTdB8uYJ2-PlxFf1sQ9?^dKS1Jr*rfV_{)z^#pR!T56tK#?x z&HApYibI_CX_>i6D2oMh z*Co=@`h6*5YVc<}ZCcyB23zLuTZ)^d45bu8-}jshi^y1Ro#>y8q%irI;xaC;MiiII X50v6uuj%_ns8|AIU^1^&buRe>aEiyS literal 0 HcmV?d00001 diff --git a/wadsrc_extra/static/filter/game-strife/fonts/bigfont/040B.lmp b/wadsrc_extra/static/filter/game-strife/fonts/bigfont/040B.lmp new file mode 100644 index 0000000000000000000000000000000000000000..a41971612cfdc341fe71589f3963692e3a721338 GIT binary patch literal 386 zcmZvYyA8rX42B&ENFoq~4OoH|c;$|co`Q}As3;OAr3;2&36@|9mY@m$`EnshSo$RE zyVviVQ%0@~IDjKKgDbd!J9vO6c!4(N4H8*#`Gd+8@cK(Hr}cg$=ilH#7-xICruk{|KUTZWv*D jN4@OgxcPLFI29?sF}t~w#CdBqQ}~x8hHURmhatxYaxaiZ literal 0 HcmV?d00001 diff --git a/wadsrc_extra/static/filter/game-strife/fonts/bigfont/040F.lmp b/wadsrc_extra/static/filter/game-strife/fonts/bigfont/040F.lmp new file mode 100644 index 0000000000000000000000000000000000000000..15d00db8edc386618657ae58ec7affd8bb8f6a51 GIT binary patch literal 368 zcmWe&5M%%W4J;w&Jp1>%W7ycCFc0r7btz5~QBf%qQ~3o|k>r~|Pz5c>gf0uVED z_aTG-47`1P?d@%Ct*tFB&CN}Heg7HwfFf@09v+@v-abCQU?F}KA>3jD$cFiX)b;&m r1Pa1HGf=DvWFjX=UmuX;=ZC?;s+<9v!3@N@iVwy0U=LyV8a-S9@yUx5 literal 0 HcmV?d00001 From b768c6877c7124038f9fad7a48be7fcf89b5fd1e Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Sat, 27 Jul 2019 09:00:49 +0200 Subject: [PATCH 13/32] - text update --- wadsrc/static/language.csv | 28 +- .../static/filter/hacx.hacx1/language.csv | 84 ++- .../static/filter/harmony/language.csv | 107 +-- wadsrc_extra/static/language.csv | 707 +++++++++--------- 4 files changed, 478 insertions(+), 448 deletions(-) diff --git a/wadsrc/static/language.csv b/wadsrc/static/language.csv index d06ba0f76..bfde76f84 100644 --- a/wadsrc/static/language.csv +++ b/wadsrc/static/language.csv @@ -1033,9 +1033,9 @@ All Marks Cleared,AMSTR_MARKSCLEARED,,,,Všechny značky smazány,Alle Markierun ,,Multiplayer,,,,,,,,,,,,,,,,,,,, Fraglimit hit.,TXT_FRAGLIMIT,,,,Fraglimit dosáhnut.,Fraglimit erreicht,,,Límite de bajas alcanzado.,,Frägiraja saavutettu.,Limite de frags atteinte.,Minimum Frag elérve.,Fraglimit raggiunto.,フラグリミット!,킬제한에 도달했습니다.,Limit fragów wyczerpany.,Limite de frags atingido.,,,Достигнут лимит фрагов.,Фраг-лимит достигнут. Timelimit hit.,TXT_TIMELIMIT,,,,Časový limit dosáhnut.,Zeitlimit erreicht,,,Límite de tiempo alcanzado.,,Aikaraja saavutettu.,Limite de temps atteinte.,Minimum Idő elérve.,Timelimit raggiunto.,ゲームセット!,시간제한에 도달했습니다.,Limit czasowy wyczerpany.,Limite de tempo atingido.,,,Достигнут лимит времени.,Временско ограничење достигнуто. -%o was looking good until %g killed %hself!,SPREEKILLSELF,,,,%o vypadal@[ao_cs] dobře dokud se @[self_cs] nezabil@[ao_cs]!,"%o sah gut aus, bis das Unglück geschah.",,,¡%o se veía bien hasta que %g se mató a si mism@[ao_esp]!,,"%o oli liekeissä, kunnes meni tappamaan itsensä!",%o était en pleine folie meurtrière avant que %g ne se bute!,%o jól nézett ki még mielőtt megölte magát!,%o stava andando bene finchè non si è ucciso da solo!,%o は自滅するまでなかなか良い感じだった!,%o 이(가) 잘 나가려던 참에 자살했습니다!,%o wyglądał dobrze dopóki się nie zabił@[ao_pl],%o estava indo bem até se matar!,,,"%o неплохо выглядел@[ao_rus], пока не покончил@[ao_rus] с собой!",%o је изгледао добро док није убио самог себе! +%o was looking good until %g killed %hself!,SPREEKILLSELF,,,,%o vypadal@[ao_cs] dobře dokud se @[self_cs] nezabil@[ao_cs]!,"%o sah gut aus, bis das Unglück geschah.",,,¡%o se veía bien hasta que %g se mató a si mism@[ao_esp]!,,"%o oli liekeissä, kunnes meni tappamaan itsensä!",%o était en pleine folie meurtrière avant que %g ne se bute!,%o jól nézett ki még mielőtt megölte magát!,%o stava andando bene finchè non si è ucciso da solo!,%o は自滅するまでなかなか良かったぞ!,%o 이(가) 잘 나가려던 참에 자살했습니다!,%o wyglądał dobrze dopóki się nie zabił@[ao_pl],%o estava indo bem até se matar!,,,"%o неплохо выглядел@[ao_rus], пока не покончил@[ao_rus] с собой!",%o је изгледао добро док није убио самог себе! %o's killing spree was ended by %k,SPREEOVER,,,,%o@[psn1_cs] vraždící řádění ukončil hráč %k.,%os Amoklauf wurde von %k beendet.,,,%k acabó con la racha de muerte de %o,,%k päätti pelaajan %o tapposarjan,La folie meurtrière de %o à été terminée par %k!,%o ámokfutása meglett %k megállította.,La sequela di frag di %o è stata terminata da %k,%k が %o の快進撃を断ち切った!,%k 이(가) %o 의 연속 킬을 처단했습니다,Seria zabójstw %o zakończona przez %k,A matança de %o foi interrompida por %k,,,Игрок %k прервал череду убийств игрока %o,Серијско убијање играча %o је завршио %k -%k is on a killing spree!,SPREE5,,,,%k začal@[ao_cs] řádit!,%k läuft Amok!,,,¡%k está atacando de lo lindo!,,%k on sarjamurhaaja!,%k est en folie meurtrière!,%o egy Ámokfutó!,%k è preda di un momento omicida!,%k が連続キルをしている!,%k 연속 킬!,%k popełnia serię morderstw!,%k está cometendo uma matança!,,,Игрок %k совершил череду убийств!,%k је серијални убица! +%k is on a killing spree!,SPREE5,,,,%k začal@[ao_cs] řádit!,%k läuft Amok!,,,¡%k está atacando de lo lindo!,,%k on sarjamurhaaja!,%k est en folie meurtrière!,%o egy Ámokfutó!,%k è preda di un momento omicida!,%k が連続キル!,%k 연속 킬!,%k popełnia serię morderstw!,%k está cometendo uma matança!,,,Игрок %k совершил череду убийств!,%k је серијални убица! %k is on a rampage!,SPREE10,,,,%k zuří!,%k tobt sich aus!,,,¡%k está en medio de una aniquilación!,,%k riehuu valtoimenaan!,%k est en plein massacre!,%o Tombol!,%k sta facendo un massacro!,%k が大暴れだ!,%k 이(가) 미쳐 날뛰고 있습니다!,%k jest w szale!,%k está massacrando!,,,%k в неистовстве!,%k дивља! %k is dominating!,SPREE15,,,,%k dominuje!,%k dominiert!,,,¡%k está dominando!,,%k hallitsee suvereenisti!,%k domine!,%o Uralkodik!,%k sta dominando tutti!,%k が圧倒している!,%k 이(가) 우세하고 있습니다!,%k dominuje!,%k está dominando!,,,%k доминирует!,%k доминира! %k is unstoppable!,SPREE20,,,,%k je nezastaviteln@[adj_cs]!,%k kann nicht gestoppt werden!,,,¡%k está endureciendo la competición!,,%k on pysäyttämätön!,%k est inarrétable!,%o Megállíthatatlan!,%k è inarrestabile!,%k が止まらない!,%k 을(를) 막을 수없습니다!,%k jest niepowstrzymany!,%k é implacável!,,,Игрок %k неостановим!,%k је незаустављив! @@ -1063,7 +1063,7 @@ Items,TXT_IMITEMS,,,,Předměty,Gegenstände,,Aĵoj,Objetos,,Esineet,Objets,Tár Secrets,TXT_IMSECRETS,,,,Tajemství,Geheimnisse,,Sekretoj,Secretos,,Salat,,Rejtekhelyek,Segreti,シークレット,밝혀낸 비밀,Sekrety,Segredos,,,Тайники,Тајне Time,TXT_IMTIME,,,,Čas,Zeit,,Daŭro,Tiempo,,Aika,Temps,Idő,Tempo,経過時間,소모한 시간,Czas,Tempo,,,Время,Време Par,TXT_IMPAR,,,,,,,Alparo,,,,,Átlag,Media,最速時間,기준 시간,Par,Média,,,Рекорд,Рекорд -Finished,WI_FINISHED,,,,Dokončen,Abgeschlossen,,Finita,Completado,,Suoritettu,terminé,Teljesítve,Finito,攻略達成,완료,Ukończono,Finalizado,,,Уровень завершён,Ниво завршен +Finished,WI_FINISHED,,,,Dokončen,Abgeschlossen,,Finita,Completado,,Suoritettu,terminé,Teljesítve,Finito,攻略,완료,Ukończono,Finalizado,,,Уровень завершён,Ниво завршен Entering,WI_ENTERING,,,,Vstupujete do,Betrete,,Eniras,Entrando a:,,Seuraava kohde,Niveau Suivant,Következik,Prossimo livello,突入開始,입장,Wchodzisz,Próxima fase,Próximo nível,,Следующий уровень,Следећи ниво Now entering:,WI_ENTERING,,heretic hexen,,Nyní vstupujete do:,Betrete:,,Nun Eniras:,Ahora entrando a:,,Seuraava kohde:,Vous entrez:,Következik,Entrando adesso in:,突入中:,입장합니다:,Teraz wchodzisz do:,Entrando em:,A entrar em:,,Следующий уровень:,Следећи ниво: ,,HUD,,,,,,,,,,,,,,,,,,,, @@ -1182,7 +1182,7 @@ Super Shotgun,TAG_SUPERSHOTGUN,,,,Superbrokovnice,Super-Schrotflinte,,Ega Kuglet Chaingun,TAG_CHAINGUN,,,,Kulomet,Maschinengewehr,,Maŝinpafilo,Ametralladora,,Gatling-kk,Mitrailleuse,Golyószóró,Mitragliatore a canne rotanti ,チェーンガン,체인건,Karabin maszynowy,Metralhadora,,,Пулемёт,Митраљез Rocket Launcher,TAG_ROCKETLAUNCHER,,,,Raketomet,Raketenwerfer,,Raketlanĉilo,Lanzacohetes,,Sinko,Lance-Roquettes,Rakétavető,Lanciamissili,ロケットランチャー,로켓 런쳐,Wyrzutnia rakiet,Lança-foguetes,Lança-Mísseis,,Ракетница,Бацач ракета Plasma Rifle,TAG_PLASMARIFLE,,,,Plazmová puška,Plasmagewehr,,Plasmo-pafilo,Rifle de Plasma,,Plasmapyssy,Fusil à Plasma,Plazmafegyver,Fucile al Plasma ,プラズマライフル,플라즈마 라이플,Karabin plazmowy,Fuzil de Plasma,Pistola de Plasma,,Плазменная пушка,Плазма оружје -BFG 9000,TAG_BFG9000,,,,,,,,,,,,,,BFG9000,,,,,,,ВЈП 9000 +BFG 9000,TAG_BFG9000,,,,,,,,,,,,,,,,,,,,,ВЈП 9000 Bullets,AMMO_CLIP,,,,Kulky,Patronen,,Kugloj,Balas,,Luodit,Balles,Töltények,Proiettili,銃弾,권총 탄약,Naboje,Balas,,,Пули,Меци Shotgun Shells,AMMO_SHELLS,,,,Broky,Schrotpatronen,,Kartoĉoj,Cartuchos de escopeta,,Haulikon patruunat,Cartouches,Sörétek,Cartucce per fucile,散弾シェル,샷건 탄약,Loftki,Cartuchos de Espingarda,,,Патроны для дробовика,Патроне за пумпарицу Rockets,AMMO_ROCKETS,,,,Rakety,Raketen,,Raketoj,Cohetes,,Raketit,Roquettes,Rakéták,Razzi,ロケット弾,로켓,Rakiety,Foguetes,Mísseis,,Ракеты,Ракете @@ -2334,17 +2334,17 @@ Propulsor Charge,AMMO_ROCKETS,,chex,,Propulzorové náboje,Propeller-Ladung,,,Ca Phasing Zorcher Charge,AMMO_CELLS,,chex,,Fázovací náboje,Phasenzorcher-Ladung,,,Carga de Zorcher de Fase,,Vaiheiszorcherin varaus,Charge de Phaseur,,Ricarica Zorcher di Fase,フェイシング ゾーカー ほきゅう,저치 전자 충전기,Ładunek do Fazowego Zorchera,Recarga de Zorcher Fásico,,,Заряд Фазового Зорчера,Фазни зорч пуњач ,,Menus,,,,,,,,,,,,,,,,,,,, ,,Main Menus,,,,,,,,,,,,,,,,,,,, -New Game,MNU_NEWGAME,,,,Nová hra,Neues Spiel,,Nova Ludo,Nueva Partida,,Uusi peli,Nouvelle Partie,,Nuovo gioco,新しいゲーム,새로운 게임,Nowa Gra,Novo Jogo,,,Новая игра,Нова игра +New Game,MNU_NEWGAME,,,,Nová hra,Neues Spiel,,Nova Ludo,Nueva Partida,,Uusi peli,Nouvelle Partie,,Nuovo gioco,新規ゲーム,새로운 게임,Nowa Gra,Novo Jogo,,,Новая игра,Нова игра Options,MNU_OPTIONS,,,,Možnosti,Optionen,,Agordoj,Opciones,,Asetukset,Options,,Opzioni,オプション,설정,Opcje,Opções,,,Настройки,Подешавања Game Files,MNU_GAMEFILES,,,,Uložené hry,Spieldateien,,Lud-Dosieroj,Archivos del Juego,,Pelitiedostot,Fichiers de jeu,,File di gioco,ゲームファイル,게임 파일,Pliki Gry,Jogos Salvos,Jogos Gravados,,Файлы игры,Фајлови игре Info,MNU_INFO,,,,Informace,Informationen,,Informo,Información,,Tiedot,Info,,Informazioni,情報,정보,Info,Informações,,,Информация,Подаци -Quit Game,MNU_QUITGAME,,,,Ukončit hru,Spiel verlassen,,Ĉesi Ludon,Salir del juego,,Lopeta peli,Quitter le jeu,,Esci dal gioco,ゲームをやめる,게임 종료,Wyjdź z Gry,Sair,,,Выход,Заврши игру +Quit Game,MNU_QUITGAME,,,,Ukončit hru,Spiel verlassen,,Ĉesi Ludon,Salir del juego,,Lopeta peli,Quitter le jeu,,Esci dal gioco,終了,게임 종료,Wyjdź z Gry,Sair,,,Выход,Заврши игру Choose Skill Level:,MNU_CHOOSESKILL,This text is extremely space limited!,,,Vyber obtížnost:,Schwierigkeitsgrad:,,Elektu Malfacileco-Nivelo,Elige nivel de dificultad:,,Valitse vaikeustaso:,Difficulté:,,Livello di difficoltà:,実力を選べ:,난이도를 고르시오:,Wybierz Poziom Trudności:,Escolha o Nível de Dificuldade:,,,Уровень сложности:,Ниво тежине: I'm too young to die.,SKILL_BABY,,,,Ještě nechci umřít.,Ich bin zu jung zum Sterben.,,Mi estas tro juna por morti,Soy muy joven para morir.,,Olen liian nuori kuolemaan.,Trop jeune pour mourir!,,Troppo giovane per morire.,死ぬには若すぎる,난 죽기엔 너무 젊어.,Jestem za młody by umierać.,Sou jovem demais para morrer.,Demasiado novo para morrer.,,Мне рано умирать.,Премлад сам да умрем. "Hey, not too rough.",SKILL_EASY,,,,"Hej, ne tak tvrdě.","He, nicht so ruppig.",,"Hola, ne tro malafabla.","Oye, no tan rudo.",,"Hei, ei liian kovaa.","Hé, pas trop fort!",,"Ehi, non troppo duro!",あまり激しくするな,너무 세게 하지는 마.,"Hej, nie tak mocno.","Opa, pega leve aí.","Ei, mais devagar.",,"Эй, не так грубо.","Хеј, не претерано грубо." Hurt me plenty.,SKILL_NORMAL,,,,Pojď do mě.,Tu mir weh.,,Doloru min sufiĉe.,Lastímame suficiente.,,Satuta minua kunnolla.,Fais-moi mal!,,Fammi molto male.,存分にやってくれ,마음껏 때려봐.,Dowal mi.,Pode vir quente.,Dá-me com força.,,Сделай мне больно.,Повреди ме кол'ко можеш. Ultra-Violence.,SKILL_HARD,,,,Ultrařežba.,Volle Gewalt.,,Perfortego.,Ultra-Violencia.,,Ultraväkivalta.,Ultra-Violence!,,Ultra-violenza.,ウルトラ バイオレンス,극단적인-폭력.,Ultra-Przemoc.,Ultra-Violência,,,Ультранасилие.,Ултра-насилно. -Nightmare!,SKILL_NIGHTMARE,,,,Noční můra!,Alptraum!,,Inkubo!,¡Pesadilla!,,Painajainen!,Cauchemar!,,Incubo!,悪夢!,악몽!,Koszmar!,Pesadelo!,,,Кошмар!,Ноћна мора! +Nightmare!,SKILL_NIGHTMARE,,,,Noční můra!,Alptraum!,,Inkubo!,¡Pesadilla!,,Painajainen!,Cauchemar!,,Incubo!,悪夢だ!,악몽!,Koszmar!,Pesadelo!,,,Кошмар!,Ноћна мора! Easy does it,CSKILL_BABY,,,,Hezky zlehka,Immer sachte,,Kvietiĝu,Así de fácil,,Hiljaa hyvä tulee,On y va Doucement,,Facile no?,やさしくして,살살 하면 좋겠네,Łatwizna,Vamos com calma,,,Потихоньку-полегоньку,Лагано сад Not so sticky,CSKILL_EASY,,,,Ne tak ulepeně,Nicht so schmierig,,Ne tiel glueca,No tan pegajoso,,Ei niin tahmaista,Pas trop Collant,,"Non così appiccicoso ",ダラダラしない,질척하진 않게,Nie tak lepko,Não tão gosmento,,,Не особо липко,Не тако лепљиво @@ -2383,8 +2383,8 @@ Fighter,MNU_FIGHTER,,,,Bojovník,Krieger,,,Luchador,,Taistelija,Guerrier,,Combat Cleric,MNU_CLERIC,,,,Klerik,Geistlicher,,,Clérigo,,Pappi,Moine,,Chierico,僧侶,성직자,Kleryk,Clérigo,,,Клерик,Свештеник Mage,MNU_MAGE,,,,Mág,Magier,,,Mago,,Velho,,,Mago,魔導士,마법사,Mag,Mago,,,Маг,Чаробњак Random,MNU_RANDOM,,,,Náhodný,Zufällig,,,Al Azar,,Satunnainen,Au Hasard,,Casuale,ランダム,랜덤,Losowa,Aleatório,,,Наугад,Насумично -Load Game,MNU_LOADGAME,,,,Načíst hru,Spiel laden,,,Cargar Partida,,Lataa peli,Chargement,,Carica gioco,ゲームをロード,게임 불러오기,Wczytaj Grę,Carregar,,,Загрузка,Учитај игру -Save Game,MNU_SAVEGAME,,,,Uložit hru,Spiel sichern,,,Guardar Partida,,Tallenna peli,Sauvegarde,,Salva gioco,ゲームを保存する,게임 저장하기,Zapisz Grę,Salvar,Gravar,,Сохранение,Сачувај игру +Load Game,MNU_LOADGAME,,,,Načíst hru,Spiel laden,,,Cargar Partida,,Lataa peli,Chargement,,Carica gioco,ロード,게임 불러오기,Wczytaj Grę,Carregar,,,Загрузка,Учитај игру +Save Game,MNU_SAVEGAME,,,,Uložit hru,Spiel sichern,,,Guardar Partida,,Tallenna peli,Sauvegarde,,Salva gioco,セーブ,게임 저장하기,Zapisz Grę,Salvar,Gravar,,Сохранение,Сачувај игру No Picture,MNU_NOPICTURE,,,,Bez obrázku,Kein Bild,,,Sin Imagen,,Ei kuvaa,Pas d'image,,Nessuna immagine,画像無し,사진 없음,Brak obrazka,Sem imagem,,,"Нет изображения",Нема слике "Different @@ -2618,7 +2618,7 @@ Poison Buildup flashes,HUDMNU_HAZARDFLASHES,,,,Druh blikání při kumulaci jedu Scaling Options,HUDMNU_SCALEOPT,,,,Nastavení velikosti,Skalierungsoptionen,,,Opciones de escalado,,Skaalausasetukset,Option de mise à l'échelle,,Opzioni di scala,スケーリング オプション,배율 설정,Opcje skalowania,Opções de Escala,,,Настройки масштабирования,Подешавања размере Scaling Options,SCALEMNU_TITLE,,,,Nastavení velikosti,Skalierungsoptionen,,,Opciones de escalado,,Skaalausasetukset,Option de mise à l'échelle,,Opzioni di scala,スケーリング オプション,배율 설정,Opcje skalowania,Opções de Escala,,,Настройки масштабирования,Подешавања размере Overrides for above setting,SCALEMNU_OVERRIDE,,,,Potlačení nastavení výše,Spezialisierungen,,,Anular ajuste anterior,,Ohittaa asetuksen ylhäällä,Annule les paramètres au dessus,,Sovrascritture per i settaggi sopra,設定の上書き,위 설정을 위해 무시,Nadpisuje dla powyższego ustawienia,Anular configurações acima,,,Задать специальные настройки,Специјална подешавања -Messages,SCALEMNU_MESSAGES,,,,Zprávy,Nachrichten,,,Mensajes,,Viestit,Messages,,Messaggi,メッセージ,메시지,Wiadomości,Mensagens,,,Сообщения,Поруке +Messages,SCALEMNU_MESSAGES,,,,Zprávy,Nachrichten,,,Mensajes,,Viestit,Messages,,Messaggi,メッセージ類,메시지,Wiadomości,Mensagens,,,Сообщения,Поруке Console,SCALEMNU_CONSOLE,,,,Konzole,Konsole,,,Consola,,Konsoli,Console,,Console,コンソール,콘솔,Konsola,Console,Consola,,Консоль,Конзола Status bar,SCALEMNU_STATBAR,,,,Stavový panel,Statusleiste,,,Barra de estado,,Tilapalkki,Barre d'état,,Barra di stato,ステータスバー,상태 바,Pasek statusu,Barra de status,Barra de estado,,Строка состояния,Статусна трака Fullscreen HUD,SCALEMNU_HUD,,,,HUD přes celou obrazovku,Vollbild-HUD,,,HUD de pantalla completa,,Täyden ruudun tilanäyttö,ATH plein écran,,HUD a pieno schermo,全画面HUD,전체화면 HUD,HUD pełnoekranowy,HUD de tela cheia,HUD de ecrã cheio,,Полноэкранный HUD,HUD преко целог екрана @@ -2740,7 +2740,7 @@ Count Items,MAPCOLORMNU_COUNTITEMCOLOR,,,,Počítané předměty,gezählte Gegen Overlay Mode,MAPCOLORMNU_OVERLAY,,,,Překryvný režim,Überlagerungsmodus,,,Modo sobrepuesto,,Projisointitila,Mode surimpression,,Modalità sovrapposizione,オーバーレイモード,오버레이 모드,Tryb Nakładki,Modo de Sobreposição,,,Прозрачный режим,Провидна аутомапа Overlay Cheat Mode,MAPCOLORMNU_OVCHEATMODE,,,,Překryvný cheatovací režim,Überlagerungsmodus Cheats,,,Sobreposición modo de truco,,Projisointihuijaustila,Mode Cheat Surimpression,,Modalità cheat sovrapposizione,オーバーレイ チートモード,치트 모드 오버레이,Tryb Nakładki Oszustwa,Modo Trapaça de Sobreposição,Modo Batota de Sobreposição,,Прозрачный чит-режим,Провидни читови Portal Overlays,MAPCOLORMNU_PORTAL,,,,Portálové překryvy,Portalüberlagerung,,,Sobreposición de portal,,Portaaliprojisoinnit,Portails superposés,,Sovrapposizioni del portale,ポータル オーバーレイ,포탈 오버레이,Nakładanie się Portali,Sobreposição de portais,,,Порталы в прозрачном режиме,Провидни портали -Messages,MSGMNU_TITLE,,,,Zprávy,Nachrichten,,,Mensajes,,Viestit,,,Messaggi,メッセージ,메시지들,Wiadomości,Mensagens,,,Сообщения,Поруке +Messages,MSGMNU_TITLE,,,,Zprávy,Nachrichten,,,Mensajes,,Viestit,,,Messaggi,メッセージ類,메시지들,Wiadomości,Mensagens,,,Сообщения,Поруке Show messages,MSGMNU_SHOWMESSAGES,,,,Zobrazit zprávy,Zeige Nachrichten,,,Mostrar Mensajes,,Näytä viestit,Afficher messages,,Mostra messaggi,メッセージ表示,메시지 표시,Pokaż wiadomości,Mostrar mensagens,,,Отображение сообщений,Прикажи поруке Show obituaries,MSGMNU_SHOWOBITUARIES,,,,Zobrazit zprávy o smrtích,Zeige Todesanzeigen,,,Mostrar obituarios,,Näytä kuolinviestit,Afficher avis de décès,,Mostra i necrologi,訃報表示,사망 메시지 표시,Pokaż nekrologi,Mostrar obituários,,,Отображение некрологов,Прикажи читуље Show secret notifications,MSGMNU_SHOWSECRETS,,,,Zobrazit upozornění na tajemství,Zeige Geheimnismeldung,,,Mostrar notificación de secretos,,Ilmoita salojen löytymisestä,Afficher secrets,,Mostra le notifiche dei segreti,シークレット発見表示,비밀 알림 표시,Pokaż wiadomości znalezienia sekretu,Mostrar notificação de segredos,,,Отображение сообщений о тайниках,Прикажи тајне нотификације @@ -2882,7 +2882,7 @@ Sound channels,SNDMNU_CHANNELS,,,,Počet zvukových kanálů,Soundkanäle,,,Cana Sound backend,SNDMNU_BACKEND,,,,Zvukový systém,Soundsystem,,,Sistema de sonido,,Äänijärjestelmä,Traitement Son,,Backend suono,サウンド バックエンド,음향 말미,System dźwiękowy,Sistema de som,,,Звуковая система,Звучни бекенд OpenAL options,SNDMNU_OPENAL,,,,Nastavení OpenAL,OpenAL Optionen,,,Opciones de OpenAL,,OpenAL-asetukset,Options OpenAL,OpenAL beállításai,Opzioni OpenAL,OpenAL オプション,오픈에이엘 설정,Opcje OpenAL,Opções de OpenAL,,,Настройки OpenAL,OpenAL подешавања Restart sound,SNDMNU_RESTART,,,,Restartovat zvuk,Sound neu starten,,,Reiniciar sonido,,Käynnistä ääni uudelleen,Redémarrer moteur sonore,Hang újraindítása,Resetta il suono,サウンド再起動,음향 재시작,Zresetuj dźwięk,Reiniciar som,,,Перезапустить звук,Поново покрени звук -Advanced options,SNDMNU_ADVANCED,,,,Pokročilá nastavení,Erweiterte Optionen,,,Opciones avanzadas,,Edistyneet asetukset,Options avancées,Haladó beállítások,Opzioni avanzate,アドバンスドオプション,고급 설정,Zaawansowane Opcje,Opções avançadas,,,Расширенные настройки,Напредна подешавања +Advanced options,SNDMNU_ADVANCED,,,,Pokročilá nastavení,Erweiterte Optionen,,,Opciones avanzadas,,Edistyneet asetukset,Options avancées,Haladó beállítások,Opzioni avanzate,高度なオプション,고급 설정,Zaawansowane Opcje,Opções avançadas,,,Расширенные настройки,Напредна подешавања Module replayer options,SNDMNU_MODREPLAYER,,,,Nastavení přehrávače modulů,Modul-Spieler-Optionen,,,Opciones reproductor de módulos,,Moduulisoitinasetukset,Options lecteur de module,,Opzioni Module replayer,モジュールリプレイヤー オプション,모듈 재생 설정,Opcje Modułu Odtwarzacza,Opções de reprodutor de módulos,,,Параметры воспроизведения модулей,Подешавања модулног риплејера Midi player options,SNDMNU_MIDIPLAYER,,,,Nastavení MIDI přehrávače,MIDI-Spieler-Optionen,,,Opciones de reproductor MIDI,,MIDI-soitinasetukset,Option lecteur MIDI,,Opzioni Midi player,Midi再生のオプション,MIDI 플레이어 설정,Opcje Odtwarzacza Midi,Opções de reprodutor MIDI,,,Настройки MIDI-проигрывателя,MIDI плејер подешавања OpenAL Options,OPENALMNU_TITLE,,,,Nastavení OpenAL,OpenAL Optionen,,,Opciones de OpenAL,,OpenAL-asetukset,Options OpenAL,,Opzioni OpenAL,OpenAL オプション,오픈에이엘 설정,Opcje OpenAL,Opções de OpenAL,,,Настройки OpenAL,OpenAL подешавања @@ -3204,7 +3204,7 @@ Software Renderer,DSPLYMNU_SWOPT,,,,Softwarový renderer,,,,Renderizado por Soft Gamma correction,DSPLYMNU_GAMMA,,,,Korekce gama,Gammakorrektur,,,Corrección gamma,,Gammakorjaus,Correction Gamma,,Correzione gamma,ガンマ値,감마 조정,Korekta gammy,Correção gama,,,Гамма-коррекция,Корекција светлости Contrast,DSPLYMNU_CONTRAST,,,,Kontrast,Kontrast,,,Contraste,,Sävykkyys,Contraste,,Contrasto,コントラスト,대비,Kontrast,Contraste,,,Контраст,Контраст Saturation,DSPLYMNU_SATURATION,,,,Sytost,Sättigung,,,Saturación,,Värikylläisyys,,,Saturazione,サチュレーション,채도,Nasycenie,Saturação,,,Насыщенность,Сатурација -Hardware Rendering Options,GLMNU_TITLE,,,,Nastavení hardwarového rendereru,Hardware-Renderer Optionen,,,Opciones de OpenGL,,Laitteistohahmonnusasetukset,Options OpenGL,,Opzioni OpenGL,ハードウェアレンダリングオプション,오픈지엘 설정,Opcje Renderowania Sprzętowego,Opções de Renderização por Hardware,,,Настройки OpenGL,Опција хардвер рендера +Hardware Rendering Options,GLMNU_TITLE,,,,Nastavení hardwarového rendereru,Hardware-Renderer Optionen,,,Opciones de OpenGL,,Laitteistohahmonnusasetukset,Options OpenGL,,Opzioni OpenGL,ハードウェアレンダリング オプション,오픈지엘 설정,Opcje Renderowania Sprzętowego,Opções de Renderização por Hardware,,,Настройки OpenGL,Опција хардвер рендера Dynamic Light Options,GLMNU_DYNLIGHT,,,,Nastavení dynamických světel,Dynamisches-Licht-Optionen,,,Opciones de luz dinámica,,Dynaamisen valon asetukset,Options Lumières Dynamiques,,Opzioni Luci Dinamiche,ダイナミックライト オプション,광원 설정,Opcje Dynamicznego Oświetlenia,Opções de Luz Dinâmica,,,Динамическое освещение,Подешавања динамичког осветљења Texture Options,GLMNU_TEXOPT,,,,Nastavení textur,Texturoptionen,,,Opciones de texturas,,Pintakuviointiasetukset,Options Textures,,Opzioni Texture,テクスチャー オプション,텍스쳐 설정,Opcje Tekstur,Opções de Textura,,,Настройки текстур,Подешавања текстура Preferences,GLMNU_PREFS,,,,Možnosti,Einstellungen,,,Preferencias,,Asetukset,Préférences,,Preferenze,環境設定,성능,Preferencje,Preferências,,,Настройки,Преференција @@ -3441,6 +3441,6 @@ Purple,TXT_COLOR_PURPLE,,,,Fialová,Violett,,,Morado,,Purppura,Violet,Lila,Viola Dull Green,TXT_COLOR_DULLGREEN,,,,Bledě zelená,Blassgrün,,,Verde pálido,,Haaleanvihreä,Vert pâle,,Verde pallido,苔,,Matowa Zieleń,Verde pálido,,,Мутно-зелёный,Тупа зелена Bright Green,TXT_COLOR_BRIGHTGREEN,,,,Jasně zelená,Hellgrün,,,Verde claro,,Vaaleanvihreä,Vert clair,,Verde chiaro,鮮,,Jasnozielony,Verde claro,,,Ярко-зелёный,Светла зелена Dark Green,TXT_COLOR_DARKGREEN,,,,Tmavě zelená,Dunkelgrün,,,Verde oscuro,,Tummanvihreä,Vert sombre,Sötétzöld,Verde scuro,深,암녹색,Ciemnozielony,Verde escuro,,,Тёмно-зелёный,Тамна зелена -Rust,TXT_COLOR_RUST,,,,Rez,Rostbraun,,,Óxido,,Ruoste,Rouille,,,錆,,Rdzawy,,,,Ржавый,Рђа +Rust,TXT_COLOR_RUST,,,,Rez,Rostbraun,,,Óxido,,Ruoste,Rouille,,,錆,,Rdzawy,Ferrugem,,,Ржавый,Рђа ,USE_GENERIC_FONT,This is not a text to be translated but an engine switch for complex languages.,,,,,,,,,,,,,1,1,,,,,, ,REQUIRED_CHARACTERS,This should list all uppercase characters that are REQUIRED for proper language display. If it is acceptable that accents get omitted a character should NOT be listed here!,,,ÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ,ÄÖÜẞ,,,ÁÉÍÓÚÑÜ,,ÄÖ,ÀÂÇÉÈÊËÎÏÔŒÙÛŸ,ÁÉÍÓÖÚÜŐŰ,ÀÈÉÌÒÙ,,,ĄĆĘŁŃÓŚŹŻ,ÁÉÍÓÚÀÃÕÂÊÔÇ,,,АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ,АБВГДЂЕЖЗИЈКЛЉМНЊОПРСТЋУФХЦЧЏШ \ No newline at end of file diff --git a/wadsrc_extra/static/filter/hacx.hacx1/language.csv b/wadsrc_extra/static/filter/hacx.hacx1/language.csv index a9977510f..f1a779f4d 100644 --- a/wadsrc_extra/static/filter/hacx.hacx1/language.csv +++ b/wadsrc_extra/static/filter/hacx.hacx1/language.csv @@ -670,28 +670,29 @@ The War Rooms,TXT_HACXMAP19,,,,Válečné kabinety,Kriegsräume,,,Las Salas de G Intruder Alert!,TXT_HACXMAP20,,,,"Pozor, vetřelec!",Eindringlingsalarm!,,,¡Alerta de Intruso!,,,"Alerte, Intrus!",,Allarme intruso!,シンニュウシャ アリ!,ZONE 20: 칩입자 경보!,,Alerta de Intruso!,,,Тревога! Нарушитель!, Desiccant Room,TXT_HACXMAP31,,,,Sušící místnost,Trocknungsraum,,,Sala del Desecante,,,Salle du Desiccant,,Stanza disseccante,ダスキン ルーム,ZONE 31: 건조한 곳,,Sala do Dessecante,,,Сушильная комната, "Now Arriving At... -",STSTR_CLEV,,,,Příjezd do...,Angekommen bei...,,,Ahora llegando a...,,,On arrive maintenant à:,,Arrivando a...,,이동하는 중...,,Agora chegando em ...,,,Переходим на..., -...gonna fry your ass!,STSTR_CHOPPERS,"Printed when entering the idchoppers cheat, which gives the player a chainsaw",,,...ti upeče prdel!,...ich brate deinen Arsch!,,,... ¡voy a freirte el trasero!,,,...C'est l'heure de botter du cul!,,....ti friggerà il culo!,,... 지져버리겠어!,,,,,...поджарит твою задницу!, -"inVuln, Str, Inviso, Rad, Allmap, or Lite-amp?",STSTR_BEHOLD,"Hacx's content here was totally useless so it got removed. However, this string has to be defined and minimally altered so that the Dehacked replacement is not being triggered.",,,"nesmrt(V), Síla, nevId, Rad, mApa nebo světLo","inVuln, Str, Inviso, Rad, Allmap, oder Lite-amp",,"inVuln, Str, Inviso, Rad, Allmap, aŭ Lite-amp","inVuln, Str, Inviso, Rad, Allmap, o Lite-amp.",,"haavoittumattomuus (V), voima (S), näkymättömyys (I), koko kartta (A) tai valonvahvistus (L)","in V ulnérable, S urpuissance, I nvisible, p R otection, c A rte, où L umière?","Sérthet (V), Berz (S), Láthat(i), Sugár(R), Térkép(A), vagy Fény Sisak(L)","inVuln, berSerk, Invisib, tuta anti-Rad, mAppa tutta, o amplif-Luce",,"무적, 광전사, 투명, 보호복, 지도, 아니면 바이저","niezniszczalność (V), siła (S), niewidzialność (I), kombinezon (R), mapa (A) lub gogle noktowizyjne (L)","inVuln., berSerk, Invisib., anti-Rad., mApa completo ou amplificação de Luz",,,"Бессм. (V), берс. (S), нев. (I), кос. (R), крт. (A), виз (L).","нерањ., снага, невидљ., радиј., мапа или ноћ. визор" -Let's Get Serious!,STSTR_BEHOLDX,,,,Teď je to vážné!,Es wird ernst!,,,¡Vamos en Serio!,,,Passons aux choses sérieuses!,,Prendiamoci sul serio!,,철들 때다!,,Vamos ficar sérios!,,,А теперь серьёзно!, -Cyberslicer Mode ON,STSTR_NCON,,,,Režim kybersekače ZAP,Cyberschnetzelmodus AN,,,Modo Cibercorte ACTIVADO,,,,,Modalità Cyberslicer ATTIVADA,,전자마귀 모드 ON,,,,,Режим кибер-резака вкл., -Cyberslicer Mode OFF,STSTR_NCOFF,,,,Režim kybersekače VYP,Cyberschnetzelmodus AUS,,,Modo Cibercorte DESACTIVADO,,,,,Modalità Cyberslicer DISATTIVADA,,전자마귀 모드 OFF,,,,,Режим кибер-резака откл., -Selection: Impossible ,STSTR_NOMUS,,,,Nemožný výběr,Falsche Auswahl,,Malebla Elekto,Selección impossible,,Valinta ei mahdollinen,Séléction Impossible!,Lehetetlen Kiválasztás,Selezione impossibile,,선택 불가능,Niemożliwy wybór,Seleção impossível,,,Выбор: Невозможен,НЕМОГУЋИ ИЗБОР +",STSTR_CLEV,,,,Příjezd do...,Angekommen bei...,,,Ahora llegando a...,,,On arrive maintenant à:,,Arrivando a...,今到着した...,이동하는 중...,,Agora chegando em ...,,,Переходим на..., +...gonna fry your ass!,STSTR_CHOPPERS,"Printed when entering the idchoppers cheat, which gives the player a chainsaw",,,...ti upeče prdel!,...ich brate deinen Arsch!,,,... ¡voy a freirte el trasero!,,,...C'est l'heure de botter du cul!,,....ti friggerà il culo!,...ケツまくれ!,... 지져버리겠어!,,,,,...поджарит твою задницу!, +"inVuln, Str, Inviso, Rad, Allmap, or Lite-amp?",STSTR_BEHOLD,"Hacx's content here was totally useless so it got removed. However, this string has to be defined and minimally altered so that the Dehacked replacement is not being triggered.",,,"nesmrt(V), Síla, nevId, Rad, mApa nebo světLo","inVuln, Str, Inviso, Rad, Allmap, oder Lite-amp",,"inVuln, Str, Inviso, Rad, Allmap, aŭ Lite-amp","inVuln, Str, Inviso, Rad, Allmap, o Lite-amp.",,"haavoittumattomuus (V), voima (S), näkymättömyys (I), koko kartta (A) tai valonvahvistus (L)","in V ulnérable, S urpuissance, I nvisible, p R otection, c A rte, où L umière?","Sérthet (V), Berz (S), Láthat(i), Sugár(R), Térkép(A), vagy Fény Sisak(L)","inVuln, berSerk, Invisib, tuta anti-Rad, mAppa tutta, o amplif-Luce","V,I,S,R,A,Lのどれだ?","무적, 광전사, 투명, 보호복, 지도, 아니면 바이저","niezniszczalność (V), siła (S), niewidzialność (I), kombinezon (R), mapa (A) lub gogle noktowizyjne (L)","inVuln., berSerk, Invisib., anti-Rad., mApa completo ou amplificação de Luz",,,"Бессм. (V), берс. (S), нев. (I), кос. (R), крт. (A), виз (L).","нерањ., снага, невидљ., радиј., мапа или ноћ. визор" +Let's Get Serious!,STSTR_BEHOLDX,,,,Teď je to vážné!,Es wird ernst!,,,¡Vamos en Serio!,,,Passons aux choses sérieuses!,,Prendiamoci sul serio!,マジになったぜ!,철들 때다!,,Vamos ficar sérios!,,,А теперь серьёзно!, +Cyberslicer Mode ON,STSTR_NCON,,,,Režim kybersekače ZAP,Cyberschnetzelmodus AN,,,Modo Cibercorte ACTIVADO,,,,,Modalità Cyberslicer ATTIVADA,サイバースライサーモード オン,전자마귀 모드 ON,,,,,Режим кибер-резака вкл., +Cyberslicer Mode OFF,STSTR_NCOFF,,,,Režim kybersekače VYP,Cyberschnetzelmodus AUS,,,Modo Cibercorte DESACTIVADO,,,,,Modalità Cyberslicer DISATTIVADA,サイバースライサーモード オフ,전자마귀 모드 OFF,,,,,Режим кибер-резака откл., +Selection: Impossible ,STSTR_NOMUS,,,,Nemožný výběr,Falsche Auswahl,,Malebla Elekto,Selección impossible,,Valinta ei mahdollinen,Séléction Impossible!,Lehetetlen Kiválasztás,Selezione impossibile,選択: 不可能,선택 불가능,Niemożliwy wybór,Seleção impossível,,,Выбор: Невозможен,НЕМОГУЋИ ИЗБОР "Pump Up The Volume -",STSTR_MUS,Should probably not be translated...,,,Zesil to!,,,,,,,,,,,볼륨을 올려라!,,,,,Подкрутите громкость, -INIT-Twitch n'Kill Mode,STSTR_KFAADDED,,,,Inicializuji režim Twitch and Kill,Initiiere Twitch'n Kill-Modus,,,INIT-Modo Tirar a Matar,,,,,Iniziare Twitch n'Kill Mode,,때리고 죽이는 모드 ON,,,,,ИНИЦ: режим Кликай-И-Убивай, -"So be it, Hacker.",STSTR_FAADDED,,,,"Budiž, Hackeře.","So sei es, Hacker.",,,"Que así sea, Hacker.",,,"Qu'il en soit ainsi, hacker.",,"Cosi' sia, Hacker.",,"마음대로 해, 해커 양반.",,"Assim seja, Hacker.",,,"Да будет так, Хакер.", -Cyberpotence Mode ON,STSTR_DQDON,,,,Režim kybermoci ZAP,Cyberpotenzmodus AN,,,Modo Ciberpotencia ACTIVADO,,,,,Modo Cyberpotenza ATTIVADA,,전지전능 모드 ON,,Ciberpotência ATIVADO,,,Режим Кибер-улучшения вкл., -Cyberpotence Mode OFF,STSTR_DQDOFF,,,,Režim kybermoci VYP,Cyberpotenzmodus AUS,,,Modo Ciberpotencia DESACTIVADO,,,,,Modo Cyberpotenza DISATTIVADA,,전지전능 모드 OFF,,Ciberpotência DESATIVADO,,,Режим Кибер-улучшения откл., -Tracking ON,AMSTR_FOLLOWON,,,,Sledování ZAP,Verfolgung AN,,,Seguimiento ACTIVADO,,,,,Mappa scorribile DISATTIVATA,,추적 모드 ON,,Modo de seguimento ATIVADO,,,Сопровождение вкл., -Tracking OFF,AMSTR_FOLLOWOFF,,,,Sledování VYP,Verfolgung AUS,,,Seguimiento DESACTIVADO,,,,,Mappa scorribile ATTIVATA,,추적 모드 OFF,,Modo de seguimento DESATIVADO,,,Сопровождение откл., -- press Y to run away! -,DOSY,,,,- stiskni Y pro útěk! -,- drücke Y um wegzurennen -,,,- ¡pulsa Y para escapar! - ,,,-Appuie sur Y pour t'échapper!-,,- premere Y per scappare! -,,- 달아날려먼 Y 키를 눌러! -,,- Aperte Y para fugir! -,- Carrega Y para fugir! -,,"- нажми «Y», чтобы сбежать! -", +",STSTR_MUS,Should probably not be translated...,,,Zesil to!,,,,,,,,,,音量を上げろよ,볼륨을 올려라!,,,,,Подкрутите громкость, +INIT-Twitch n'Kill Mode,STSTR_KFAADDED,,,,Inicializuji režim Twitch and Kill,Initiiere Twitch'n Kill-Modus,,,INIT-Modo Tirar a Matar,,,,,Iniziare Twitch n'Kill Mode,INIT-Twitch n'Killモード,때리고 죽이는 모드 ON,,,,,ИНИЦ: режим Кликай-И-Убивай, +"So be it, Hacker.",STSTR_FAADDED,,,,"Budiž, Hackeře.","So sei es, Hacker.",,,"Que así sea, Hacker.",,,"Qu'il en soit ainsi, hacker.",,"Cosi' sia, Hacker.",好きにしろ、ハッカー。,"마음대로 해, 해커 양반.",,"Assim seja, Hacker.",,,"Да будет так, Хакер.", +Cyberpotence Mode ON,STSTR_DQDON,,,,Režim kybermoci ZAP,Cyberpotenzmodus AN,,,Modo Ciberpotencia ACTIVADO,,,,,Modo Cyberpotenza ATTIVADA,サイバーポテンスモード オン,전지전능 모드 ON,,Ciberpotência ATIVADO,,,Режим Кибер-улучшения вкл., +Cyberpotence Mode OFF,STSTR_DQDOFF,,,,Režim kybermoci VYP,Cyberpotenzmodus AUS,,,Modo Ciberpotencia DESACTIVADO,,,,,Modo Cyberpotenza DISATTIVADA,サイバーポテンスモード オフ,전지전능 모드 OFF,,Ciberpotência DESATIVADO,,,Режим Кибер-улучшения откл., +Tracking ON,AMSTR_FOLLOWON,,,,Sledování ZAP,Verfolgung AN,,,Seguimiento ACTIVADO,,,,,Mappa scorribile DISATTIVATA,トラッキング オン,추적 모드 ON,,Modo de seguimento ATIVADO,,,Сопровождение вкл., +Tracking OFF,AMSTR_FOLLOWOFF,,,,Sledování VYP,Verfolgung AUS,,,Seguimiento DESACTIVADO,,,,,Mappa scorribile ATTIVATA,トラッキング オフ,추적 모드 OFF,,Modo de seguimento DESATIVADO,,,Сопровождение откл., +- press Y to run away! -,DOSY,,,,- stiskni Y pro útěk! -,- drücke Y um wegzurennen -,,,- ¡pulsa Y para escapar! - ,,,-Appuie sur Y pour t'échapper!-,,- premere Y per scappare! -,-Y でトンズラだ!-,- 달아날려먼 Y 키를 눌러! -,,- Aperte Y para fugir! -,- Carrega Y para fugir! -,,"- нажми «Y», чтобы сбежать! -", "Are you insane or maladjusted? Well? Yes or No!",ENDGAME,,,,"Jsi blb@[adj_cs] nebo jen naveden@[adj_cs]? Tak? Jo nebo ne?","Bist du verrückt oder mies gelaunt? Also? Ja oer Nein?",,,"¿Estás loc@[ao_esp] o descolocad@[ao_esp]? ¿Y bien? ¿Sí o No?",,,Vous êtes fou où malajusté? Eh bien? Oui où non?,,"Sei pazzo o disadattato? -Allora? Sì o no!",,"부적응은 안 하겠지? 그렇겠지? +Allora? Sì o no!","お前はイカれた社会不適合者だろ? +あぁ?イエスかノーか言え!","부적응은 안 하겠지? 그렇겠지? 자신 있으면 선택해!",,"Você está louco ou desajustado? Bem? Sim ou não!",,,"Ты дурак или родом так? Отвечай! Да (Y) или нет (N)?", @@ -709,7 +710,10 @@ Pulsa Y para morir.",,,"Vous êtes sûr? Vous n'arriverez pas à tenir le coup, Appuyez sur Y pour mourir.",,"Sei sicura? Non puoi gestire questa abilità, hacker! -Premere Y per morire. ",,"그렇게 만만하다면 말리지는 않을게. +Premere Y per morire. ","本気か? +アンタの手に負えないぞ、ハッカー! + +死にたきゃYを押せ。","그렇게 만만하다면 말리지는 않을게. 어차피 너에겐 복잡할 테니까, 해커 양반. 준비됐으면 Y 키를 눌러.",,"Tem certeza? Você não pode lidar @@ -753,7 +757,11 @@ Nyomj Y-t vagy N-t.","Sovrascrivere il salvataggio '%s'? -Premi Y oppure N.",,"빠른 저장? +Premi Y oppure N.","この名称で上書きするのか? + +'%s' + +YかNで答えろ。","빠른 저장? '%s' @@ -810,7 +818,11 @@ Nyomj Y-t vagy N-t.","Vuoi fare un quickload della partita '%s'? -Premi Y oppure N.",,"빠른 불러오기? +Premi Y oppure N.","この名称をすぐロードするのか? + +'%s' + +YかNで答えろ。","빠른 불러오기? '%s' @@ -835,20 +847,20 @@ Carrega Y ou N.",,"Загрузить файл „%s“? Притисните Y или N." -Thug,CC_THUG,,,,Pobuda,Scherge,,,Matón,,,Brute,,Tazza,,서그,,Rufião,,,Головорез, -Android,CC_ANDROID,,,,,,,,Androide,,,Androïde,,,,안드로이드,,Andróide,,,Андроид, -ICE,CC_ICE,,,,,,,,,,,,,,,아이스,,,,,ЛЁД, -Buzzer,CC_BUZZER,,,,Bzučák,Summer,,,Zumbador,,,,,Cicalino,,버저,,Buzina,,,Летун, -D-Man,CC_DMAN,,,,,,,,,,,,,,,디-맨,,,,,Д-Мэн, -Phage,CC_PHAGE,,,,Fág,,,,Fago,,,,,Fago,,페이지,,Fago,,,Пожиратель, -Monstruct,CC_MONSTRUCT,,,,Monstrukce,Monstrukt,,,,,,,,Mostrutto,,몬스트럭트,,,,,Монструкт, -Mecha Maniac,CC_MECH,,,,Mechamaniak,,,,Meca-Maníaco,,,Mécha-maniaque,,Mecha Maniaco,,메카 메니악,,Meca-Maníaco,,,Механоман, -Terminatrix,CC_TERMI,,,,,,,,,,,,,,,터미네트릭스,,,,,Терминатриса, -Thorn Thing,CC_THORN,,,,Bodlák,Dornending,,,Cosa Espinosa,,,Truc épineux,,,,쏜 씽,,Coisa Espinhosa,,,Тернистая тварь, -Majong 7,CC_MAJONG,,,,,,,,,,,,,,,마작 7호,,,,,Маджонг 7, -Dan Evanger,CC_HERO,,,,,,,,,,,,,,,댄 에반저,,,,,Дэн Эвенджер, -Please don't shoot!,SKILL_BABY,,,,"Nestřílej, prosím!",Bitte schieß nicht!,,,¡Por favor no dispares!,,,"Pitié, ne tirez pas!",,"Ti prego, non sparare!",,쏘지 마세요!,,"Por favor, não atire!",,,"Не стреляй, пожалуйста!", -"Aargh, I need health!",SKILL_EASY,,,,Potřebuju zdraví!,Ich brauche Gesundheit!,,,"¡Aargh, necesito salud!",,,"Aargh, des soins!",,"Aargh, ho bisogno di salute!",,체력이 필요해!,,"Aargh, preciso de saúde!",,,"А-а-ргх, мне нужно здоровье!", -Let's rip them apart!,SKILL_NORMAL,,,,Rozsekejme je na kusy!,Lass uns sie zerfetzen!,,,¡Rompámoslos en pedazos!,,,J'en fais de la bouillie!,,Facciamoli a pezzi!,,갈기갈기 찢어버려!,,Vamos despedaçá-los!,,,Разорвём их на куски!, -I am immortal!,SKILL_HARD,,,,Jsem nesmrtelný!,Ich bin unsterblich!,,,¡Soy inmortal!,,,Je suis immortel!,,Sono immortale!,,난 무적이다!,,Eu sou imortal!,,,Я бессмертен!, -Insanity!,SKILL_NIGHTMARE,,,,Šílenství!,Wahnsinn!,,,¡Locura!,,,Folie!,,Follia!,,코드명: 광기!,,Insanidade!,,,Безумие!, \ No newline at end of file +Thug,CC_THUG,,,,Pobuda,Scherge,,,Matón,,,Brute,,Tazza,チンピラ,서그,,Rufião,,,Головорез, +Android,CC_ANDROID,,,,,,,,Androide,,,Androïde,,,アンドロイド,안드로이드,,Andróide,,,Андроид, +ICE,CC_ICE,,,,,,,,,,,,,,アイス,아이스,,,,,ЛЁД, +Buzzer,CC_BUZZER,,,,Bzučák,Summer,,,Zumbador,,,,,Cicalino,ブザー,버저,,Buzina,,,Летун, +D-Man,CC_DMAN,,,,,,,,,,,,,,D-Man,디-맨,,,,,Д-Мэн, +Phage,CC_PHAGE,,,,Fág,,,,Fago,,,,,Fago,ファージ,페이지,,Fago,,,Пожиратель, +Monstruct,CC_MONSTRUCT,,,,Monstrukce,Monstrukt,,,,,,,,Mostrutto,モンストラクト,몬스트럭트,,,,,Монструкт, +Mecha Maniac,CC_MECH,,,,Mechamaniak,,,,Meca-Maníaco,,,Mécha-maniaque,,Mecha Maniaco,メカマニア,메카 메니악,,Meca-Maníaco,,,Механоман, +Terminatrix,CC_TERMI,,,,,,,,,,,,,,ターミネイトリクス,터미네트릭스,,,,,Терминатриса, +Thorn Thing,CC_THORN,,,,Bodlák,Dornending,,,Cosa Espinosa,,,Truc épineux,,,ソーンツィン,쏜 씽,,Coisa Espinhosa,,,Тернистая тварь, +Majong 7,CC_MAJONG,,,,,,,,,,,,,,マージャン 7,마작 7호,,,,,Маджонг 7, +Dan Evanger,CC_HERO,,,,,,,,,,,,,,ダン エブァンガー,댄 에반저,,,,,Дэн Эвенджер, +Please don't shoot!,SKILL_BABY,,,,"Nestřílej, prosím!",Bitte schieß nicht!,,,¡Por favor no dispares!,,,"Pitié, ne tirez pas!",,"Ti prego, non sparare!",撃たないでくれ!,쏘지 마세요!,,"Por favor, não atire!",,,"Не стреляй, пожалуйста!", +"Aargh, I need health!",SKILL_EASY,,,,Potřebuju zdraví!,Ich brauche Gesundheit!,,,"¡Aargh, necesito salud!",,,"Aargh, des soins!",,"Aargh, ho bisogno di salute!",キメてくれ!,체력이 필요해!,,"Aargh, preciso de saúde!",,,"А-а-ргх, мне нужно здоровье!", +Let's rip them apart!,SKILL_NORMAL,,,,Rozsekejme je na kusy!,Lass uns sie zerfetzen!,,,¡Rompámoslos en pedazos!,,,J'en fais de la bouillie!,,Facciamoli a pezzi!,ばらまいてやれ!,갈기갈기 찢어버려!,,Vamos despedaçá-los!,,,Разорвём их на куски!, +I am immortal!,SKILL_HARD,,,,Jsem nesmrtelný!,Ich bin unsterblich!,,,¡Soy inmortal!,,,Je suis immortel!,,Sono immortale!,とっととくたばれ!,난 무적이다!,,Eu sou imortal!,,,Я бессмертен!, +Insanity!,SKILL_NIGHTMARE,,,,Šílenství!,Wahnsinn!,,,¡Locura!,,,Folie!,,Follia!,イカれてやがる!,코드명: 광기!,,Insanidade!,,,Безумие!, \ No newline at end of file diff --git a/wadsrc_extra/static/filter/harmony/language.csv b/wadsrc_extra/static/filter/harmony/language.csv index 5cacad807..858ef6630 100644 --- a/wadsrc_extra/static/filter/harmony/language.csv +++ b/wadsrc_extra/static/filter/harmony/language.csv @@ -8,53 +8,58 @@ Drücke Y oder N.",,,"¿Realmente crees que puedes con eso? Pulsa Y ó N...",,,Vous pensez sérieusement que vous pourrez tenir le coup?\n\nAppuyez sur Y ou N...,,"Pensi davvero di poterlo fare? -premere 'Y' o 'N'",ホントウニ タイショデキルト オモッテイマスカ?\n\n'Y'カ'N'デ オウトウセヨ,"정말 이 난이도를 버틸 자신이 있으십니까? +premere 'Y' o 'N'","ホントウニ タイショデキルト +オモッテイマスカ? -Y키, 아니면 N키를 누르시오...",,"Você acha que é capaz de aguentar? +'Y'カ'N'デ オウトウセヨ","정말 이 난이도를 버틸 자신이 있으십니까? + +Y키, 아니면 N키를 누르시오...","Czy ty naprawdę myślisz, że temu podołasz? + +Wciśnij 'Y' lub 'N'...","Você acha que é capaz de aguentar? Aperte Y ou N...",,,"Уверены, что справитесь?\n\nНажмите «Y» или «N»...", -Spot marked,AMSTR_MARKEDSPOT,,,,Bod označen,Punkt markiert,,,Punto marcado,,,Repère marqué.,Hely Megjelölve,Posizione segnata,スポットヲ マーク シタ,마커 표시함,,Posição marcada,,,Отметка,Означено место -Requires the GREEN keycard,PD_BLUEO,,,,Vyžaduje ZELENOU kartu,Benötigt die GRÜNE Schlüsselkarte,,,Requiere la tarjeta llave VERDE,,,Carte VERTE demandée.,,Richiede la card d'accesso VERDE,グリーン キーカード ガ ヒツヨウダ,필요함: 초록색 키카드,,Você precisa do cartão de passe VERDE,,,Требуется ЗЕЛЁНАЯ ключ-карта, -Requires the PURPLE keycard,PD_REDO,,,,Vyžaduje FIALOVOU kartu,Benötigt die VIOLETTE Schlüsselkarte,,,Requiere la tarjeta llave VIOLETA,,,Carte VIOLETTE demandée.,,Richiede la card d'accesso VIOLA,イエロー キーカード ガ ヒツヨウダ,필요함: 보라색 키카드,,Você precisa do cartão de passe ROXO,,,Требуется ФИОЛЕТОВАЯ ключ-карта, -Requires the YELLOW keycard,PD_YELLOWO,,,,Vyžaduje ŽLUTOU kartu,Benötigt die GELBE Schlüsselkarte,,,Requiere la tarjeta llave AMARILLA,,,Carte JAUNE demandée.,,Richiede la card d'accesso GIALLA,パープル キーカード ガ ヒツヨウダ,필요함: 노란색 키카드,,Você precisa do cartão de passe AMARELO,,,Требуется ЖЁЛТАЯ ключ-карта, -Requires the GREEN key,PD_BLUEK,,,,Vyžaduje ZELENÝ klíč,Benötigt den GRÜNEN Schlüssel,,,Requiere la llave VERDE,,,Clé VERTE demandée.,,Richiede la chiave VERDE,グリーン キー ガ ヒツヨウダ,필요함: 초록색 열쇠,,Você precisa da chave VERDE,,,Требуется ЗЕЛЁНЫЙ ключ, -Requires the YELLOW key,PD_YELLOWK,,,,Vyžaduje ŽLUTÝ klíč,Benötigt den GELBEN Schlüssel,,,Requiere la llave AMARILLA,,,Clé VIOLETTE demandée.,,Richiede la chiave GIALLO,イエロー キー ガ ヒツヨウダ,필요함: 노란색 열쇠,,Você precisa da chave AMARELA,,,Требуется ЖЁЛТЫЙ ключ, -Requires the PURPLE key,PD_REDK,,,,Vyžaduje FIALOVÝ klíč,Benötigt den VIOLETTEN Schlüssel,,,Requiere la llave VIOLETA,,,Clé JAUNE demandée.,,Richiede la chiave VIOLA,パープル キー ガ ヒツヨウダ,필요함: 보라색 열쇠,,Você precisa da chave ROXA,,,Требуется ФИОЛЕТОВЫЙ ключ, -Picked up armor.,GOTARMOR,,,Picked up armour.,Sebráno brnění.,Panzer genommen.,,,Recogiste la armadura.,,,Armure récupérée.,Felvettél egy páncélt.,Raccolto un'armatura.,アーマー ニュウシュ,획득: 전투복.,,Pegou uma armadura.,,,Получена броня.,Покупили сте панцир. -Picked up Combat Armor.,GOTMEGAARMOR,,,Picked up Combat Armour.,Sebráno bojové brnění.,Super-Panzer genommen.,,,Recogiste la Armadura de Combate.,,,Armure de combat récupérée.,,Raccolto Armatura da combattimento.,コンバット アーマー ニュウシュ,획득: 강화된 전투복.,,Pegou uma Armadura de Combate.,,,Получена боевая броня., -Superhealth,GOTMSPHERE,,,,Superzdraví,Super-Gesundheit,,,Supersalud,,,Super-Santé,,Super salute,スーパー ヘルス,사용: 체력강화 버섯.,,Supersaúde,,,Суперздоровье, -Obtained the GREEN keycard.,GOTBLUECARD,,,,Sebrána ZELENÁ karta.,GRÜNE Schlüsselkarte erhalten,,,Obtenida la tarjeta llave VERDE.,,,Carte VERTE obtenue.,,Ottenuta la card d'accesso VERDE.,グリーン キーカード ニュウシュ,획득: 초록색 키카드.,,Pegou o cartão de passe VERDE.,,,Получена ЗЕЛЁНАЯ ключ-карта., -Obtained the YELLOW keycard.,GOTYELWCARD,,,,Sebrána ŽLUTÁ karta.,GELBE Schlüsselkarte erhalten,,,Obtenida la tarjeta llave AMARILLA.,,,Carte JAUNE obtenue.,,Ottenuta la card d'accesso GIALLA.,イエロー キーカード ニュウシュ,획득: 노란색 키카드.,,Pegou o cartão de passe AMARELO.,,,Получена ЖЁЛТАЯ ключ-карта., -Obtained the PURPLE keycard.,GOTREDCARD,,,,Sebrána FIALOVÁ karta.,VIOLETTE Schlüsselkarte erhalten,,,Obtenida la tarjeta llave VIOLETA.,,,Carte VIOLETTE obtenue.,,Ottenuta la card d'accesso VIOLA.,パープル キーカード ニュウシュ,획득: 보라색 키카드.,,Pegou o cartão de passe ROXO.,,,Получена ФИОЛЕТОВАЯ ключ-карта., -Obtained the GREEN key.,GOTBLUESKUL,,,,Sebrán ZELENÝ klíč.,GRÜNEN Schlüssel erhalten,,,Obtenida la llave VERDE.,,,Clé VERTE obtenue.,,Ottenuta la chiave VERDE.,グリーン キー ニュウシュ,획득: 초록색 열쇠.,,Pegou a chave VERDE.,,,Получен ЗЕЛЁНЫЙ ключ., -Obtained the YELLOW key.,GOTYELWSKUL,,,,Sebrán ŽLUTÝ klíč.,GELBEN Schlüssel erhalten,,,Obtenida la llave AMARILLA.,,,Clé JAUNE obtenue.,,Ottenuta la chiave GIALLA.,イエロー キー ニュウシュ,획득: 노란색 열쇠.,,Pegou a chave AMARELA.,,,Получен ЖЁЛТЫЙ ключ., -Obtained the PURPLE key.,GOTREDSKUL,,,,Sebrán FIALOVÝ klíč.,VIOLETTEN Schlüssel erhalten,,,Obtenida la llave VIOLETA.,,,Clé VIOLETTE obtenue.,,Ottenuta la chiave VIOLA.,パープル キー ニュウシュ,획득: 보라색 열쇠.,,Pegou a chave ROXA.,,,Получен ФИОЛЕТОВЫЙ ключ., -Healing mushroom,GOTSTIM,,,,Léčivka,Heilpilz,,,Seta medicinal,,,Champignon médicinal,,Funghi curativi,ヒーリング マッシュルーム,사용: 체력회복 버섯.,,Cogumelo medicinal,,,Целебный гриб, -Acquired: medical kit.,GOTMEDIKIT,,,,Získána lékárnička.,Erhalten: Medikit,,,Adquirido: kit medicinal.,,,Acquis: Kit médical.,,Acquisito: kit medico.,シュトク: メディカルキット,사용: 의료 키트.,,Pegou um kit médico.,,,Получена: Аптечка., -Acquired: medical kit that you REALLY need.,GOTMEDINEED,,,,"Získána lékárnička, kterou OPRAVDU potřebuješ.","Erhalten: Medikit, das du WIRKLICH brauchst",,,Adquirido: kit medicinal que REALMENTE necesitabas.,,,Acquis: Kit médical. Besoin critique.,,Acquisito: kit medico di cui VERAMENTE avete bisogno.,シュトク: キンキュウジタイヲ スクウ メディカルキット,사용: 당신을 살려줄 의료 키트.,,Pegou um kit médico que você REALMENTE precisa.,,,Получена: Аптечка (КРАЙНЕ необходимая)., -Map,GOTMAP,,,,Mapa,Karte,,,Mapa,,,Carte,,Mappa,コノ クイキノ マップダ ,획득: 지도.,,Mapa,,,Карта, -Acquired: case of bullets.,GOTCLIPBOX,,,,Získána krabice nábojů.,Erhalten: Munitionskiste,,,Adquirido: Caja de balas.,Pegou uma caixa de balas.,,Acquis: Boîte de balles.,,Acquisito: caso di proiettili.,シュトク: バレット ケース,획득: 회전포 탄약.,,,,,Получен: Ящик с пулями., -Acquired: Grenade.,GOTROCKET,,,,Ziskán granát.,Erhalten: Granate,,,Adquirido: Granada.,,,Acquis: Grenade.,,Acquisito: Granata.,シュトク: グレネード,획득: 세열탄.,,Pegou uma granada.,,,Получена: Граната., -Acquired: Grenades.,GOTROCKBOX,,,,Ziskány granáty.,Erhalten: Granaten,,,Adquirido: Granadas.,,,Acquis: Grenades.,,Acquisito: Granate.,シュトク: グレネード セット,획득: 세열탄 여러 개.,,Pegou granadas.,,,Получены: Гранаты., -Acquired: box of shotgun shells.,GOTSHELLBOX,,,,Získána krabice broků.,Erhalten: Schrotpatronen,,,Adquirido: Caja de cartuchos de escopeta.,,,Acquis: Boîte de cartouches.,,Acquisito: scatola di cartucce per fucile.,シュトク: シェル ボックス,획득: 산탄총 탄약.,,Pegou uma caixa de cartuchos de espingarda.,,,Получена: Коробка патронов для дробовика., -Acquired: ammo backpack.,GOTBACKPACK,,,,Ziskán batoh s municí.,Erhalten: Munitionsrucksack,,,Adquirido: Mochila de municiones.,,,Acquis: Sac de munitions.,,Acquisito: zaino munizioni.,シュトク: バックパック,획득: 탄약 가방.,,Pegou uma mochila de munição.,,,Получен: Ранец для боеприпасов., -Acquired: Grenade.,GOTBFG9000,,,,Získán granát.,Erhalten: Granate,,,Adquirido: Granada.,,,Acquis: Grenade.,,Acquisito: Granata.,シュトク: グレネード,획득: 세열탄.,,Pegou uma granada.,,,Получена: Граната., -Acquired: Minigun.,GOTCHAINGUN,,,,Získán kulomet.,Erhalten: Minigun,,,Adquirido: Miniarma.,,,Acquis: Minigun.,,Acquisito: Minigun.,シュトク: ミニガン,획득: 회전포.,,Pegou uma metralhadora giratória.,,,Получен: Миниган., -Acquired: Grenade launcher.,GOTLAUNCHER,,,,Získán granátomet.,Erhalten: Granatwerfer,,,Adquirido: Lanzagranadas.,,,Acquis: Lance-Grenades,,Acquisito: Lanciagranate.,シュトク: グレネードランチャー,획득: 세열탄 추진기.,,Pegou um lança-granadas.,,,Получен: Гранатомёт., -Entropy thrower!,GOTPLASMA,,,,Vrhač entropie!,Entropiewerfer,,,¡Lanzador de Entropía!,,,Acquis: Lanceur d'Entropie!,,Lancia entropia!,エントロピースロワー!,획득: 엔트로피 방사기!,,Lançador de entropia!,,,Энтропиемёт!, -Acquired: Shotgun.,GOTSHOTGUN,,,,Získána brokovnice.,Erhalten: Schrotflinte,,,Adquirido: Escopeta.,,,Acquis: Fusil à pompe.,,Acquisito: Fucile.,シュトク: ショットガン,획득: 산탄총.,,Pegou uma espingarda.,,,Получен: Дробовик., -God Mode ON,STSTR_DQDON,,,,Nesmrtelnost ZAP,Gott-Modus AN,,,Modo Dios ACTIVADO,,,Mode invulnérable ON,,Modo Dio ATTIVADA,ゴッドモード オン,무적 치트: ON,,Modo Deus LIGADO,,,Режим Бога вкл., -God Mode OFF,STSTR_DQDOFF,,,,Nesmrtelnost VYP,Gott-Modus AUS,,,Modo Dios DESACTIVADO,,,Mode invulnérable OFF,,Modo Dio DISATTIVADA,ゴッドモード オフ,무적 치트: OFF,,Modo Deus DESLIGADO,,,Режим Бога откл., -All weapons/ ammo/ keys,STSTR_KFAADDED,,,,Všechny zbraně/munice/klíče,"Alle Waffen, Munition und Schlüssel",,,Todas las armas/municiones/llaves,,,Toutes les armes/munitions/clés,,Tutte le armi / munizioni / chiavi,スベテノ ブキ/カギ/ダンヤク,추가: 모든 무기/탄약/열쇠 치트,,Todas as armas/munição/chaves,,,Всё оружие/боеприпасы/ключи, -All weapons and ammo,STSTR_FAADDED,,,,Všechny zbraně a munice,Alle Waffen und Munition,,,Todas las armas y municiones,,,Toutes les armes et munitions,,Tutte le armi e le munizioni,スベテノ ブキ/ダンヤク,추가: 모든 무기/탄약 치트,,Todas as armas e munição completa,,,Всё оружие и боеприпасы, -Abduction,TXT_HARMMAP01,,,,Únos,Entführung,,,Abducción,,,Enlèvement,,Il rapimento,アブダクション,유괴,,Abdução,,,Похищение, -Harm's Way,TXT_HARMMAP02,,,,Nebezpečí,In Gefahr,,,En Peligro,,,Mise en Danger,,La via del danno,ハーム'ズ ウェイ,해함의 길,,No Caminho do Perigo,,,Опасный путь, -Owt Mood,TXT_HARMMAP03,,,,Špatný pocit,Missstimmung,,,Buen humor,,,Scontento,,Scontento,ヤバイムード,이상한 분위기,,Atrito,,,Нестроение, -Megalapolis,TXT_HARMMAP04,,,,Megalopole,Megalopolis,,,Megalópolis,,,Mégalopole,,Megalapoli,メガラポリス,거대 도시,,Megalópole,,,Мегалаполис, -The Hospital,TXT_HARMMAP05,,,,Nemocnice,Das Hospital,,,El Hospital,,,L'Hôpital,,L'ospedale,ホスピタル,병동,,O Hospital,,,Больница, -The Weapons Factory,TXT_HARMMAP06,,,,Továrna na zbraně,Die Waffenfabrik,,,La Fábrica de Armas,,,L'Usine d'Armes,,La fabbrica di armi,ウェポンファクトリー,무기 공장,,A Fábrica de Armamento,,,Оружейный завод, -The Underwater Lab,TXT_HARMMAP07,,,,Podvodní laboratoř,Das Unterwasserlabor,,,El Laboratorio Submarino,,,Le Laboratoire Sous-marin,,Il laboratorio subacqueo,アンダーウォーターラボ,해저 연구소,,O Laboratório Submarino,,,Подводная лаборатория, -Airstrip One,TXT_HARMMAP08,,,,Přistávací dráha jedna,Flugplatz Eins,,,Pista de Aterrizaje Uno,,,Piste D'Atterrisage Un,,Pista di atterraggio Uno,エアーシップ ワン,활주로 1호,,Base Aérea Um,,,Взлётная полоса №1, +Spot marked,AMSTR_MARKEDSPOT,,,,Bod označen,Punkt markiert,,,Punto marcado,,,Repère marqué.,Hely Megjelölve,Posizione segnata,スポットヲ マーク シタ,마커 표시함,Miejsce zaznaczone,Posição marcada,,,Отметка,Означено место +Requires the GREEN keycard,PD_BLUEO,,,,Vyžaduje ZELENOU kartu,Benötigt die GRÜNE Schlüsselkarte,,,Requiere la tarjeta llave VERDE,,,Carte VERTE demandée.,,Richiede la card d'accesso VERDE,グリーン キーカード ガ ヒツヨウダ,필요함: 초록색 키카드,Wymaga ZIELONEJ karty,Você precisa do cartão de passe VERDE,,,Требуется ЗЕЛЁНАЯ ключ-карта, +Requires the PURPLE keycard,PD_REDO,,,,Vyžaduje FIALOVOU kartu,Benötigt die VIOLETTE Schlüsselkarte,,,Requiere la tarjeta llave VIOLETA,,,Carte VIOLETTE demandée.,,Richiede la card d'accesso VIOLA,イエロー キーカード ガ ヒツヨウダ,필요함: 보라색 키카드,Wymaga FIOLETOWEJ karty,Você precisa do cartão de passe ROXO,,,Требуется ФИОЛЕТОВАЯ ключ-карта, +Requires the YELLOW keycard,PD_YELLOWO,,,,Vyžaduje ŽLUTOU kartu,Benötigt die GELBE Schlüsselkarte,,,Requiere la tarjeta llave AMARILLA,,,Carte JAUNE demandée.,,Richiede la card d'accesso GIALLA,パープル キーカード ガ ヒツヨウダ,필요함: 노란색 키카드,Wymaga ŻÓŁTEJ karty,Você precisa do cartão de passe AMARELO,,,Требуется ЖЁЛТАЯ ключ-карта, +Requires the GREEN key,PD_BLUEK,,,,Vyžaduje ZELENÝ klíč,Benötigt den GRÜNEN Schlüssel,,,Requiere la llave VERDE,,,Clé VERTE demandée.,,Richiede la chiave VERDE,グリーン キー ガ ヒツヨウダ,필요함: 초록색 열쇠,Wymaga ZIELONEGO klucza,Você precisa da chave VERDE,,,Требуется ЗЕЛЁНЫЙ ключ, +Requires the YELLOW key,PD_YELLOWK,,,,Vyžaduje ŽLUTÝ klíč,Benötigt den GELBEN Schlüssel,,,Requiere la llave AMARILLA,,,Clé VIOLETTE demandée.,,Richiede la chiave GIALLO,イエロー キー ガ ヒツヨウダ,필요함: 노란색 열쇠,Wymaga ŻÓŁTEGO klucza,Você precisa da chave AMARELA,,,Требуется ЖЁЛТЫЙ ключ, +Requires the PURPLE key,PD_REDK,,,,Vyžaduje FIALOVÝ klíč,Benötigt den VIOLETTEN Schlüssel,,,Requiere la llave VIOLETA,,,Clé JAUNE demandée.,,Richiede la chiave VIOLA,パープル キー ガ ヒツヨウダ,필요함: 보라색 열쇠,Wymaga FIOLETOWEGO klucza,Você precisa da chave ROXA,,,Требуется ФИОЛЕТОВЫЙ ключ, +Picked up armor.,GOTARMOR,,,Picked up armour.,Sebráno brnění.,Panzer genommen.,,,Recogiste la armadura.,,,Armure récupérée.,Felvettél egy páncélt.,Raccolto un'armatura.,アーマー ニュウシュ,획득: 전투복.,Podniesiono pancerz.,Pegou uma armadura.,,,Получена броня.,Покупили сте панцир. +Picked up Combat Armor.,GOTMEGAARMOR,,,Picked up Combat Armour.,Sebráno bojové brnění.,Super-Panzer genommen.,,,Recogiste la Armadura de Combate.,,,Armure de combat récupérée.,,Raccolto Armatura da combattimento.,コンバット アーマー ニュウシュ,획득: 강화된 전투복.,Podniesiono pancerz bojowy.,Pegou uma Armadura de Combate.,,,Получена боевая броня., +Superhealth,GOTMSPHERE,,,,Superzdraví,Super-Gesundheit,,,Supersalud,,,Super-Santé,,Super salute,スーパー ヘルス,사용: 체력강화 버섯.,Superzdrowie,Supersaúde,,,Суперздоровье, +Obtained the GREEN keycard.,GOTBLUECARD,,,,Sebrána ZELENÁ karta.,GRÜNE Schlüsselkarte erhalten,,,Obtenida la tarjeta llave VERDE.,,,Carte VERTE obtenue.,,Ottenuta la card d'accesso VERDE.,グリーン キーカード ニュウシュ,획득: 초록색 키카드.,Zdobyto ZIELONĄ kartę.,Pegou o cartão de passe VERDE.,,,Получена ЗЕЛЁНАЯ ключ-карта., +Obtained the YELLOW keycard.,GOTYELWCARD,,,,Sebrána ŽLUTÁ karta.,GELBE Schlüsselkarte erhalten,,,Obtenida la tarjeta llave AMARILLA.,,,Carte JAUNE obtenue.,,Ottenuta la card d'accesso GIALLA.,イエロー キーカード ニュウシュ,획득: 노란색 키카드.,Zdobyto ŻÓŁTĄ kartę.,Pegou o cartão de passe AMARELO.,,,Получена ЖЁЛТАЯ ключ-карта., +Obtained the PURPLE keycard.,GOTREDCARD,,,,Sebrána FIALOVÁ karta.,VIOLETTE Schlüsselkarte erhalten,,,Obtenida la tarjeta llave VIOLETA.,,,Carte VIOLETTE obtenue.,,Ottenuta la card d'accesso VIOLA.,パープル キーカード ニュウシュ,획득: 보라색 키카드.,Zdobyto FIOLETOWĄ kartę.,Pegou o cartão de passe ROXO.,,,Получена ФИОЛЕТОВАЯ ключ-карта., +Obtained the GREEN key.,GOTBLUESKUL,,,,Sebrán ZELENÝ klíč.,GRÜNEN Schlüssel erhalten,,,Obtenida la llave VERDE.,,,Clé VERTE obtenue.,,Ottenuta la chiave VERDE.,グリーン キー ニュウシュ,획득: 초록색 열쇠.,Zdobyto ZIELONY klucz.,Pegou a chave VERDE.,,,Получен ЗЕЛЁНЫЙ ключ., +Obtained the YELLOW key.,GOTYELWSKUL,,,,Sebrán ŽLUTÝ klíč.,GELBEN Schlüssel erhalten,,,Obtenida la llave AMARILLA.,,,Clé JAUNE obtenue.,,Ottenuta la chiave GIALLA.,イエロー キー ニュウシュ,획득: 노란색 열쇠.,Zdobyto ŻÓŁTY klucz.,Pegou a chave AMARELA.,,,Получен ЖЁЛТЫЙ ключ., +Obtained the PURPLE key.,GOTREDSKUL,,,,Sebrán FIALOVÝ klíč.,VIOLETTEN Schlüssel erhalten,,,Obtenida la llave VIOLETA.,,,Clé VIOLETTE obtenue.,,Ottenuta la chiave VIOLA.,パープル キー ニュウシュ,획득: 보라색 열쇠.,Zdobyto FIOLETOWY klucz.,Pegou a chave ROXA.,,,Получен ФИОЛЕТОВЫЙ ключ., +Healing mushroom,GOTSTIM,,,,Léčivka,Heilpilz,,,Seta medicinal,,,Champignon médicinal,,Funghi curativi,ヒーリング マッシュルーム,사용: 체력회복 버섯.,Leczący grzyb,Cogumelo medicinal,,,Целебный гриб, +Acquired: medical kit.,GOTMEDIKIT,,,,Získána lékárnička.,Erhalten: Medikit,,,Adquirido: kit medicinal.,,,Acquis: Kit médical.,,Acquisito: kit medico.,シュトク: メディカルキット,사용: 의료 키트.,Zdobyto: apteczkę.,Pegou um kit médico.,,,Получена: Аптечка., +Acquired: medical kit that you REALLY need.,GOTMEDINEED,,,,"Získána lékárnička, kterou OPRAVDU potřebuješ.","Erhalten: Medikit, das du WIRKLICH brauchst",,,Adquirido: kit medicinal que REALMENTE necesitabas.,,,Acquis: Kit médical. Besoin critique.,,Acquisito: kit medico di cui VERAMENTE avete bisogno.,シュトク: キンキュウジタイヲ スクウ メディカルキット,사용: 당신을 살려줄 의료 키트.,"Zdobyto: apteczkę, której NAPRAWDĘ potrzebujesz.",Pegou um kit médico que você REALMENTE precisa.,,,Получена: Аптечка (КРАЙНЕ необходимая)., +Map,GOTMAP,,,,Mapa,Karte,,,Mapa,,,Carte,,Mappa,コノ クイキノ マップダ ,획득: 지도.,Mapa,Mapa,,,Карта, +Acquired: case of bullets.,GOTCLIPBOX,,,,Získána krabice nábojů.,Erhalten: Munitionskiste,,,Adquirido: Caja de balas.,Pegou uma caixa de balas.,,Acquis: Boîte de balles.,,Acquisito: caso di proiettili.,シュトク: バレット ケース,획득: 회전포 탄약.,Zdobyto: pudełko naboi.,,,,Получен: Ящик с пулями., +Acquired: Grenade.,GOTROCKET,,,,Ziskán granát.,Erhalten: Granate,,,Adquirido: Granada.,,,Acquis: Grenade.,,Acquisito: Granata.,シュトク: グレネード,획득: 세열탄.,Zdobyto: Granat.,Pegou uma granada.,,,Получена: Граната., +Acquired: Grenades.,GOTROCKBOX,,,,Ziskány granáty.,Erhalten: Granaten,,,Adquirido: Granadas.,,,Acquis: Grenades.,,Acquisito: Granate.,シュトク: グレネード セット,획득: 세열탄 여러 개.,Zdobyto: Granaty.,Pegou granadas.,,,Получены: Гранаты., +Acquired: box of shotgun shells.,GOTSHELLBOX,,,,Získána krabice broků.,Erhalten: Schrotpatronen,,,Adquirido: Caja de cartuchos de escopeta.,,,Acquis: Boîte de cartouches.,,Acquisito: scatola di cartucce per fucile.,シュトク: シェル ボックス,획득: 산탄총 탄약.,Zdobyto: pudełko loftek do strzelby.,Pegou uma caixa de cartuchos de espingarda.,,,Получена: Коробка патронов для дробовика., +Acquired: ammo backpack.,GOTBACKPACK,,,,Ziskán batoh s municí.,Erhalten: Munitionsrucksack,,,Adquirido: Mochila de municiones.,,,Acquis: Sac de munitions.,,Acquisito: zaino munizioni.,シュトク: バックパック,획득: 탄약 가방.,Zdobyto: plecak z amunicją.,Pegou uma mochila de munição.,,,Получен: Ранец для боеприпасов., +Acquired: Grenade.,GOTBFG9000,,,,Získán granát.,Erhalten: Granate,,,Adquirido: Granada.,,,Acquis: Grenade.,,Acquisito: Granata.,シュトク: グレネード,획득: 세열탄.,Zdobyto: Granat.,Pegou uma granada.,,,Получена: Граната., +Acquired: Minigun.,GOTCHAINGUN,,,,Získán kulomet.,Erhalten: Minigun,,,Adquirido: Miniarma.,,,Acquis: Minigun.,,Acquisito: Minigun.,シュトク: ミニガン,획득: 회전포.,Zdobyto: Minigun.,Pegou uma metralhadora giratória.,,,Получен: Миниган., +Acquired: Grenade launcher.,GOTLAUNCHER,,,,Získán granátomet.,Erhalten: Granatwerfer,,,Adquirido: Lanzagranadas.,,,Acquis: Lance-Grenades,,Acquisito: Lanciagranate.,シュトク: グレネードランチャー,획득: 세열탄 추진기.,Zdobyto: Wyrzutnię granatów.,Pegou um lança-granadas.,,,Получен: Гранатомёт., +Entropy thrower!,GOTPLASMA,,,,Vrhač entropie!,Entropiewerfer,,,¡Lanzador de Entropía!,,,Acquis: Lanceur d'Entropie!,,Lancia entropia!,エントロピースロワー!,획득: 엔트로피 방사기!,Miotacz Entropii!,Lançador de entropia!,,,Энтропиемёт!, +Acquired: Shotgun.,GOTSHOTGUN,,,,Získána brokovnice.,Erhalten: Schrotflinte,,,Adquirido: Escopeta.,,,Acquis: Fusil à pompe.,,Acquisito: Fucile.,シュトク: ショットガン,획득: 산탄총.,Zdobyto: Strzelbę.,Pegou uma espingarda.,,,Получен: Дробовик., +God Mode ON,STSTR_DQDON,,,,Nesmrtelnost ZAP,Gott-Modus AN,,,Modo Dios ACTIVADO,,,Mode invulnérable ON,,Modo Dio ATTIVADA,ゴッドモード オン,무적 치트: ON,Tryb Boga WŁĄCZONY,Modo Deus LIGADO,,,Режим Бога вкл., +God Mode OFF,STSTR_DQDOFF,,,,Nesmrtelnost VYP,Gott-Modus AUS,,,Modo Dios DESACTIVADO,,,Mode invulnérable OFF,,Modo Dio DISATTIVADA,ゴッドモード オフ,무적 치트: OFF,Tryb Boga WYŁĄCZONY,Modo Deus DESLIGADO,,,Режим Бога откл., +All weapons/ ammo/ keys,STSTR_KFAADDED,,,,Všechny zbraně/munice/klíče,"Alle Waffen, Munition und Schlüssel",,,Todas las armas/municiones/llaves,,,Toutes les armes/munitions/clés,,Tutte le armi / munizioni / chiavi,スベテノ ブキ/カギ/ダンヤク,추가: 모든 무기/탄약/열쇠 치트,Wszystkie bronie/amunicja/klucze,Todas as armas/munição/chaves,,,Всё оружие/боеприпасы/ключи, +All weapons and ammo,STSTR_FAADDED,,,,Všechny zbraně a munice,Alle Waffen und Munition,,,Todas las armas y municiones,,,Toutes les armes et munitions,,Tutte le armi e le munizioni,スベテノ ブキ/ダンヤク,추가: 모든 무기/탄약 치트,Wszystkie bronie i amunicja,Todas as armas e munição completa,,,Всё оружие и боеприпасы, +Abduction,TXT_HARMMAP01,,,,Únos,Entführung,,,Abducción,,,Enlèvement,,Il rapimento,アブダクション,유괴,Porwanie,Abdução,,,Похищение, +Harm's Way,TXT_HARMMAP02,,,,Nebezpečí,In Gefahr,,,En Peligro,,,Mise en Danger,,La via del danno,ハーム'ズ ウェイ,해함의 길,Niebezpieczeństwo,No Caminho do Perigo,,,Опасный путь, +Owt Mood,TXT_HARMMAP03,,,,Špatný pocit,Missstimmung,,,Buen humor,,,Scontento,,Scontento,ヤバイムード,이상한 분위기,Paskudny Nastrój,Atrito,,,Нестроение, +Megalapolis,TXT_HARMMAP04,,,,Megalopole,Megalopolis,,,Megalópolis,,,Mégalopole,,Megalapoli,メガラポリス,거대 도시,Megalapolis,Megalópole,,,Мегалаполис, +The Hospital,TXT_HARMMAP05,,,,Nemocnice,Das Hospital,,,El Hospital,,,L'Hôpital,,L'ospedale,ホスピタル,병동,Szpital,O Hospital,,,Больница, +The Weapons Factory,TXT_HARMMAP06,,,,Továrna na zbraně,Die Waffenfabrik,,,La Fábrica de Armas,,,L'Usine d'Armes,,La fabbrica di armi,ウェポンファクトリー,무기 공장,Fabryka Broni,A Fábrica de Armamento,,,Оружейный завод, +The Underwater Lab,TXT_HARMMAP07,,,,Podvodní laboratoř,Das Unterwasserlabor,,,El Laboratorio Submarino,,,Le Laboratoire Sous-marin,,Il laboratorio subacqueo,アンダーウォーターラボ,해저 연구소,Podwodne Laboratorium,O Laboratório Submarino,,,Подводная лаборатория, +Airstrip One,TXT_HARMMAP08,,,,Přistávací dráha jedna,Flugplatz Eins,,,Pista de Aterrizaje Uno,,,Piste D'Atterrisage Un,,Pista di atterraggio Uno,エアーシップ ワン,활주로 1호,Lądowisko Numer Jeden,Base Aérea Um,,,Взлётная полоса №1, The Launch Base,TXT_HARMMAP09,,,,Vzletová základna,Die Startbasis,,,La Base de Despegue,,,La Base de Lancement,,La base di lancio,ランチャーベース,발진기지,,A Base de Lançamento,,,Пусковая площадка, The Radioactive Zone,TXT_HARMMAP10,,,,Radioaktivní zóna,Die radioaktive Zone,,,La Zona Radioactiva,,,La Zone Radioactive,,La zona radioattiva,ラディオアクティブ ゾーン,방사능 처리소,,A Zona Radioativa,,,Заражённая зона, Echidna,TXT_HARMMAP11,,,,,,,,,,,,,,エキドナ,에키드나,,Equidna,,,Ехидна, @@ -229,10 +234,10 @@ uma mulher desprezada!"" = К О Н Е Ц = ", ,WI_FINISHED,This text is deliberately empty,,,,,,,,,,,,,,,,,,,, -Loading,WI_ENTERING,Yellow needs retranslation,,,Vstupujete do,Lade,,Eniras,Entrando a:,,Seuraava kohde,Niveau Suivant,Következik,Caricamento,,불러오는 중,Wchodzisz,Próxima fase,Próximo nível,,Загрузка уровня, -Very Easy,SKILL_BABY,,,,Velmi snadné,Sehr einfach,,,Muy facil,,,Trés facile,,Molto facile,,아주 쉬움,,Muito facil,,,Очень лёгкий, -Easy,SKILL_EASY,,,,Snadný,Einfach,,,Facil,,,Facile,,Facile,,쉬움,,Fácil,,,Лёгкий, -Medium,SKILL_NORMAL,,,,Střední,Mittel,,,Medio,,,Moyen,,Medio,,중간,,Médio,,,Средний, -Hard,SKILL_HARD,,,,Obtížný,Schwer,,,Difícil,,,Difficile,,Difficile,,어려움,,Difícil,,,Тяжёлый, -Very Hard,SKILL_NIGHTMARE,,,,Velmi obtížné,Sehr schwer,,,Muy difícil,,,Très difficile,,Molto difficile,,아주 어려윰,,Muito difícil,,,Очень тяжёлый, -Thanks for playing,HARMQUITMSG,,,,Díky za hraní,Danke fürs Spielen,,,Gracias por jugar,,,Merci d'avoir joué,,Grazie per aver giocato,,플레이 해주셔서 감사드립니다,,Obrigado por jogar,,,"Спасибо, что сыграли в Harmony", \ No newline at end of file +Loading,WI_ENTERING,Yellow needs retranslation,,,Vstupujete do,Lade,,Eniras,Entrando a:,,Seuraava kohde,Niveau Suivant,Következik,Caricamento,ローディング,불러오는 중,Wchodzisz,Próxima fase,Próximo nível,,Загрузка уровня, +Very Easy,SKILL_BABY,,,,Velmi snadné,Sehr einfach,,,Muy facil,,,Trés facile,,Molto facile,ベリーイージー,아주 쉬움,,Muito facil,,,Очень лёгкий, +Easy,SKILL_EASY,,,,Snadný,Einfach,,,Facil,,,Facile,,Facile,イージー,쉬움,,Fácil,,,Лёгкий, +Medium,SKILL_NORMAL,,,,Střední,Mittel,,,Medio,,,Moyen,,Medio,ミディアム,중간,,Médio,,,Средний, +Hard,SKILL_HARD,,,,Obtížný,Schwer,,,Difícil,,,Difficile,,Difficile,ハード,어려움,,Difícil,,,Тяжёлый, +Very Hard,SKILL_NIGHTMARE,,,,Velmi obtížné,Sehr schwer,,,Muy difícil,,,Très difficile,,Molto difficile,ベリーハード,아주 어려윰,,Muito difícil,,,Очень тяжёлый, +Thanks for playing,HARMQUITMSG,,,,Díky za hraní,Danke fürs Spielen,,,Gracias por jugar,,,Merci d'avoir joué,,Grazie per aver giocato,プレイ シテクレテ カンシャスル,플레이 해주셔서 감사드립니다,,Obrigado por jogar,,,"Спасибо, что сыграли в Harmony", \ No newline at end of file diff --git a/wadsrc_extra/static/language.csv b/wadsrc_extra/static/language.csv index 5b54c4290..eec5bcca5 100644 --- a/wadsrc_extra/static/language.csv +++ b/wadsrc_extra/static/language.csv @@ -148,7 +148,7 @@ Level 15: Dead Zone,THUSTR_15,,,,Level 15: Mrtvá zóna,Level 15: Tote Zone,,Lev Level 16: Deepest Reaches,THUSTR_16,,,,Level 16: Nejhlubší sluje,Level 16: Tiefe,,Level 16: Plejsubejo,Nivel 16: Recodos profundos,,Taso 16: Syvyydet,NIVEAU 16: Profondeurs,Mélység,Level 16: Profondità,Level 16: 最深部,레벨 16: 깊숙한 강,Level 16: Głębiny,Nível 16: Profundezas,,,Level 16: Глубочайшие достижения,Level 16: Најдубља дубина Level 17: Processing Area,THUSTR_17,,,,Level 17: Kombinát,Level 17: Verarbeitungsbereich,,Level 17: Traktregiono,Nivel 17: Área de Procesamiento,,Taso 17: Käsittelyalue,NIVEAU 17: Zone de Traitement,Feldolgozó,Level 17: Area di Elaborazione,Level 17: 処理地帯,레벨 17: 처리 구역,Level 17: Strefa Przerobowa,Nível 17: Área de Processamento,,Nivelul 17: Aria de procesare,Level 17: Зона обработки,Level 17: Подручје обраде Level 18: Mill,THUSTR_18,,,,Level 18: Mlýn,Level 18: Mühle,,Level 18: Muelejo,Nivel 18: Molino,,Taso 18: Mylly,NIVEAU 18: Fonderie,Malom,Level 18: Fonderia,Level 18: 製粉所,레벨 18: 제분소,Level 18: Młyn,Nível 18: Moinho,,Nivelul 18: Moara,Level 18: Завод,Level 18: Млин -Level 19: Shipping/respawning,THUSTR_19,,,,Level 19: Přeprava,Level 19: Versandlager,,Level 19: Ekspedo/Revivado,Nivel 19: Enviando/Reapareciendo,,Taso 19: Huolinta/Ylösnostatus,NIVEAU 19: Envoi/Réapparition,Szállítás/újraéledés,Level 19: Consegna/Respawn,Level 19: 出荷と再生成,레벨 19: 운송/리스폰 장소,Level 19: Wysyłka/Reprodukcja,Nível 19: Expedição/reaparecimento,,Nivelul 19: Livrare/reapariție,Level 19: Погрузка/отправка,Level 19: Отпремање/Оживљавање +Level 19: Shipping/respawning,THUSTR_19,,,,Level 19: Přeprava,Level 19: Versandlager,,Level 19: Ekspedo/Revivado,Nivel 19: Enviando/Reapareciendo,,Taso 19: Huolinta/Ylösnostatus,NIVEAU 19: Envoi/Réapparition,Szállítás/újraéledés,Level 19: Consegna/Respawn,Level 19: 出荷と再生成,레벨 19: 운송/리스폰 장소,Level 19: Wysyłka/Reprodukcja,Nível 19: Expedição/reaparecimento,,Nivelul 19: Livrare/reapariție,Level 19: Погрузка/отправка,Level 19: Отпремање/оживљавање Level 20: Central Processing,THUSTR_20,,,,Level 20: Centrální zpracování,Level 20: Zentralverarbeitung,,Level 20: Centra Traktejo,Nivel 20: Procesamiento Central,,Taso 20: Käsittelykeskus,NIVEAU 20: Organisme Central,Központi feldolgozó,Level 20: Centrale di Elaborazione,Level 20: 中央処理所,레벨 20: 중앙 처리소,Level 20: Centralny Proces,Nível 20: Processamento Central,,Nivelul 20: Prelucrare centrală,Level 20: Центральный пункт обработки,Level 20: Централна обрада Level 21: Administration Center,THUSTR_21,,,,Level 21: Administrativní centrum,Level 21: Verwaltungszentrum,,Level 21: Administracicentro,Nivel 21: Centro de Administración,,Taso 21: Keskushallinto,NIVEAU 21: Centre Administratif,Adminisztrációs központ,Level 21: Centro Amministrativo,Level 21: 行政センター,레벨 21: 관리 센터,Level 21: Centrum Administracyjne,Nível 21: Centro de Administração,,Nivelul 21: Centru administrativ,Level 21: Административный центр,Level 21: Административни центар Level 22: Habitat,THUSTR_22,,,,,,,Level 22: Habitato,Nivel 22: Hábitat,,Taso 22: Asuinpaikka,NIVEAU 22: Habitat,Élőhely,Level 22: Habitat,Level 22: 生息地,레벨 22: 서식지,Level 22: Siedlisko,Nível 22: Habitat,,Nivelul 22: Habitat,Level 22: Обиталище,Level 22: Станиште @@ -2258,19 +2258,20 @@ luta, mata. Ah sim, mantem-te viv@[ao_ptb] também. прошлые усилия окажутся напрасными. Продолжайте двигаться, продолжайте сражаться, продолжайте убивать. И да, -продолжайте жить.","Пиљиш над испаравајући леш Чувара. -Са његовом смрћу, отргнуо си +продолжайте жить.","Пиљите над испаравајући леш Чувара. +Са његовом смрћу, отргнули сте акцелератора ван смрдљивих канџа -пакла. Опустивши се гледаш унаоколо у +пакла. Опустивши се гледате унаоколо у соби. Доврага! Требао је бити барем један прототип који ради, али га не -можеш видети. Демони мора да су га +можете видети. Демони мора да су га узели. -Мораш наћи прототип, или су све твоје -муке протраћене. Настави да се крећеш, -настави да се бориш, настави да убијаш. -И да, настави и да живиш." +Морате наћи прототип, или су све ваше +муке протраћене. Наставите да се +крећете, наставите да се борите, +наставите да убијате. +И да, наставите и да живите." "Even the deadly Arch-Vile labyrinth could not stop you, and you've gotten to the prototype Accelerator which is soon @@ -2346,11 +2347,11 @@ tipo de coisa.",,,"Даже смертельный лабиринт арчвай был уничтожен Вами раз и навсегда. Уничтожение — Ваша специальность.","Чак ни смртоносан арчвилов лавиринт -те није могао зауставити, и узео си +вас није могао зауставити, и узели сте прототип акцелератора који ће ускоро ефикасно бити деактивиран заувек. -Добар си у таквим стварима." +Добри сте у таквим стварима." "You've bashed and battered your way into the heart of the devil-hive. Time for a Search-and-Destroy mission, aimed at the @@ -2473,15 +2474,15 @@ própria criação!",,,"Вы пробили путь в самое Злобно ухмыляясь, Вы проверяете своё снаряжение, и готовитесь преподать ублюдку немного Ада Вашего -собственного изготовления!","Изударао и изубијао си свој пут до срца +собственного изготовления!","Изударали и изубијали сте свој пут до срца ђаволске кошнице. Време је за мисију Претражити-и-Уништити, усмерен ка Вратару, чије се гадно потомство спушта -на Земљу. Да, он је лош. Али знаш ко је +на Земљу. Да, он је лош. Али знате ко је гори! -Са злобним изразом провераваш -опрему, и припремаш се даш том +Са злобним изразом проверавате +опрему, и припремате се да дате том кучкином сину мало пакла од сопственог стварања!" "The Gatekeeper's evil face is splattered @@ -2628,12 +2629,12 @@ precisar dele para fazer uma limpeza final... инвертована капија се образује и увлачи делиће последњег акцелератора, камо ли и нешто мало преосталих демона. -Завршио си. Пакао се вратио ударању +Завршили сте. Пакао се вратио ударању лоших мртвака уместо добрих живих. -Не заборави да кажеш својим унучади -да ти ставе ракетни бацач у ковчег. Ако -одеш у пакао када умреш, треба ће ти за -последње чишћење..." +Не заборавите да кажете својим унучади +да вам ставе ракетни бацач у ковчег. Ако +одете у пакао када умрете, треба ће вам +за последње чишћење..." "You've found the second-hardest level we got. Hope you have a saved game a level or two previous. If not, be prepared to die @@ -2688,11 +2689,11 @@ para quem é mestre.",,,"Вы нашли второй по сложности у много умирать. Уровень рассчитан исключительно на -профессионалов.","Нашао си другопласирани најтежи ниво -који имамо. Надам се да си сачувао игру -ниво или два назад. Ако ниси, -припреми се да умреш пуно пута. Само -за маестро маринце." +профессионалов.","Нашли сте другопласирани најтежи ниво +који имамо. Надамо се да сте сачували +игру ниво или два назад. Ако нисте, +припремите се да умрете пуно пута. +Само за маестро маринце." "Betcha wondered just what WAS the hardest level we had ready for ya? Now you know. No one gets out alive.",P6TEXT,Plutonia before MAP32,,,"Určitě sis říkal@[ao_cs], CO byl ten nejtěžší @@ -2733,9 +2734,9 @@ wyjdzie stąd żywy.","Aposto que você estava pensando qual ERA a fase mais dificíl que preparamos. Agora você sabe. Ninguem sai vivo daqui.",,,"Спорим, Вы задавались вопросом, какой же уровень САМЫЙ сложный? Теперь Вы знаете. -Никто не выберётся живым.","Гладим се да си се питао који је +Никто не выберётся живым.","Гладимо се да сте се питали који је НАЈТЕЖИ ниво који смо спремили за -тебе? Сада знаш. Нико не излази жив." +вас? Сада знате. Нико не излази жив." "You've fought your way out of the infested experimental labs. It seems that UAC has once again gulped it down. With their @@ -2875,7 +2876,7 @@ equipamento militar em algum canto.",,,"Сражаясь, Вы выбралис кишащий гадкими ужасами, только ждущими как бы вгрызться в Вашу плоть. Что ж, если повезёт, в комплексе всё ещё -должны быть боеприпасы.","Изборио си се из роњевите +должны быть боеприпасы.","Изборили сте се из роњевите експерименталне лабораторије. Изгледа да је УАЦ опет прогутао. Са њиховом великим реноворирањем, @@ -2884,7 +2885,7 @@ equipamento militar em algum canto.",,,"Сражаясь, Вы выбралис Напред је војни комплекс, сада најежден мртвим хорорима који једва -чекају да уроне зубе у тебе. Са срећом, +чекају да уроне зубе у вама. Са срећом, комплекс идаље има неко оружје које лежи унаоколо." "You hear the grinding of heavy machinery @@ -3002,14 +3003,15 @@ Você não pretende ser derrotad@[ao_ptb] facilmente.",,,"Впереди слы себя как тысячи головорезов, собранных в одном безумном убийце. -Вы так просто не сдадитесь.","Чујеш брушење тешке машинерије -напред. Надаш се да не штампају нове -утваре, али си спреман да покољеш +Вы так просто не сдадитесь.","Чујете брушење тешке машинерије +напред. Надате се да не штампају нове +утваре, али сте спремни да покољете цело стадо ако требаш. Можда спремају -гозбу крви, али се ти осећаш као да су +гозбу крви, али се ви осећате као да су спакована две хиљада манијака у једног -побеснолог убицу. Не планираш да -паднеш тако лако." +побеснолог убицу. + +Не планирате да паднете тако лако." "The vista opening ahead looks real damn familiar. Smells familiar, too -- like fried excrement. You didn't like this @@ -3118,13 +3120,13 @@ uns demônios.",,,"Открывающийся вид выглядит ухмыляетесь. Настало время всерьёз надрать кое-кому задницу.","Видик који се напред отвара изгледа стварно познато. Чак и мирише -познато... као похован измет. Није ти се -свиђало ово место пре, и сто посто не -планираш да ти се сада свиђа. Што -више зиљиш у њега, то више си љут. -Подижући своју пишку, зао кез се -оформио на твом лицу. Време је за -убијање." +познато... као похован измет. Није вам +се свиђало ово место пре, и сто посто +не планирате да вам се сада свиђа. +Што више зиљите у њега, то више +сте љути. Подижући своју пишку, +зао кез се оформио на вашем лицу. +Време је за убијање." "Suddenly, all is silent, from one horizon to the other. The agonizing echo of Hell fades away, the nightmare sky turns to @@ -3930,14 +3932,14 @@ que ser herége era fácil.",,,"С уничтожением Железных Л су очишћени са равнице постојања. Та створења мора да су дошле однекуд, -мада, имаш сумњу да ватрени портал +мада, имате сумњу да ватрени портал утробе пакла води у њихову домаћу димензију. -Да би био сигуран да немртви (или +Да бисте били сигурни да немртви (или још горе ствари) не долазе кроз, -мораћеш да затвориш утробу пакла са -друге стране. Наравно то значи да ћеш +мораћете да затворите утробу пакла са +друге стране. Наравно то значи да ћете можда заглавити у непријатељском свету, али нико није реко да је лако бити јеретик." @@ -4152,15 +4154,16 @@ estar o céu certamente não é um bom sinal....",,,"Могучие Молота чудовищные создания ожидают Вас за этими вратами? Не голубое небо родного мира над головой, а -кристальный купол, — это плохой знак...","Моћни маулер је доказао да ти није ни -до колена, и док његов леш испарава и -пада на земљу ти осећаш огорченено -задовољство да су уништени. +кристальный купол, — это плохой знак...","Моћни маулотаури су доказали да +вам нису ни до колена, и док његови +лешеви испаравају и падају на земљу ви +осећате огорченено задовољство да +су уништени. Капија коју су чували је отоворена, -откривајући за шта се ти надаш да је -пролаз кући. Али како корачаш кроз -подругљив смех ти одзвања у ушима. +откривајући за шта се ви надате да је +пролаз кући. Али како корачате кроз, +подругљив смех вам одзвања у ушима. Да ли је нека друга сила контолистала минотауре? Да ли су још ужасавајуће @@ -4417,19 +4420,19 @@ Cavaleiros de Serpentes? врисци пренеражују његов плач у агонији. -Твоја заклетва освете извршена, +Ваша заклетва освете извршена, улазиш у портал свог света, само момент пренего што се купола уруши у милионе комада. Али ако је Д'Спарилова моћ уништена, -зашто се не осећаш сигурно? Да ли је то +зашто се не осећате сигурно? Да ли је то због последњег вриска пренего његове смрти, што је звучио као клетва? Или -призивање? Не можеш бити сигуран, +призивање? Не можете бити сигурни, можда је само био врисак. -Али опет, шта је са осталим јахачима +Али ипак, шта је са осталим јахачима змија?" "You thought you would return to your own world after D'Sparil died, but @@ -4671,25 +4674,25 @@ guarda-costas aguardam a sua chegada...",,,"С гибелью Д'Спарила родной мир — отыскать вход в него в тёмных глубинах опустевшей вотчины Д'Спарила. Личные стражи мёртвого -господина уже дожидаются Вас...","Мислио си да ћеш се вратити +господина уже дожидаются Вас...","Мислили сте да ћете се вратити сверту после Д'Спарилове смрти, али -његов последњи кец у рукаву те је -прогнао у његов свет. Овде си ушао у +његов последњи кец у рукаву вас је +прогнао у његов свет. Овде сте ушли у разореним остацима земљи које је -покорио. Поразио си последње чуваре -ових земљи, али сада стојиш испред +покорио. Поразили сте последње чуваре +ових земљи, али сада стојите испред капија Д'Спарилове тврђаве. До овог -момента ниси имао сумње у своју -способност да се супроставиш било -чему што сусретнеш, али преко +момента нисте имали сумње у своју +способност да се супроставите било +чему што сусретнете, али преко портала лежи срце зла које је напало -твој свет. Д'Спарил је можда мртав, али +ваш свет. Д'Спарил је можда мртав, али рупчага где је оживео је идаље ту. Сада -мораш да уђеш ту у нади да ћеш да -нађеш излаз. И негде, у најмрачнијим +морате да уђете ту у нади да ћете да +нађете излаз. И негде, у најмрачнијим ћошковима Д'Спариловог поседа, његови лишни телохранитељи -твој долазак." +чекају ваш долазак." "As the final maulotaur bellows his death-agony, you realize that you have never come so close to your own @@ -4885,22 +4888,22 @@ em frente para encontrar o seu destino.",,,"Наблюдая с мрачным глаза своей судьбе. Знайте, если Вы упали на самое дно, есть лишь один путь — наверх.","Са падом последњег минотаура у -очајничку смрт, схваташ да никад ниси -стигао толико близу своје пропасти. Чак +очајничку смрт, схватате да никад нисте +стигли толико близу своје пропасти. Чак ни борба против Д'Спарила и његових ученика није била толико безнадежна. -Мрко пиљиш у капију која се отвара -пред тобом, питајућу се да ли те води +Мрко пиљите у капију која се отвара +пред вама, питајућу се да ли вас води кући, или отварају врата још неуснулом -хорору. Питаш се да ли имаш снаге да -наставиш, ако ништа па само смрт и -патња чекају. Али шта ћеш друго да -урадиш, ако је воља за борбом нема? -Да ли можеш да натераш себе наставиш -у лице очајања? Да ли имаш храброст? -Налазиш, да у себи није да се предаш -без борбе. Широких очију, идеш да -упознаш своју судбину." +хорору. Питате се да ли имате снаге да +наставите, ако ништа па само смрт и +патња чекају. Али шта ћете друго да +урадите, ако је воља за борбом нема? +Да ли можете да натерате себе наставите +у лице очајања? Да ли имате храброст? +Налазите, да у себи није да се предате +без борбе. Широких очију, идете да +упознате своју судбину." "having passed the seven portals which sealed this realm, a vast domain of harsh wilderness stretches @@ -6295,11 +6298,18 @@ morte fria e prolongada... могло преживети. Али оно што је пре прошло би могло само да -буде бледа сенка која ти стоји на путу: тамна тврђава +буде бледа сенка која ти стоји на путу: сама тамна +тврђава. Блистави део катедрале блокира све осим фрагментарних погледа на саму цитаделу, али оно што се види говори у -шуштавом шапату хладне, дуготрајне смрти..." +шуштавом шапату хладне, дуготрајне смрти... + + + + + +...за срећнике." "once again you find yourself in the great hall of the chaos sphere, as if no time had passed from when @@ -6416,12 +6426,12 @@ intenção maléfica.",,,"Вы вновь в зале сферы хаоса. Н каждым вашим движением... ...Здесь те, кто таит угрозу -и готовит погибель для вас.","Још једном се проналазиш у великој дворани +и готовит погибель для вас.","Још једном се проналазите у великој дворани сфере хаоса, као да време није прошло од како -си се кретао међу овим сенкама. +сте се кретали међу овим сенкама. Али нешто је другачије, тишина у којој је некада -било тихо шапутање, осећај да те неко посматра +било тихо шапутање, осећај да вас неко посматра скривеним очима... ...очи које штите злобну намеру." @@ -6575,16 +6585,16 @@ fugir de um desafio...",,,"Когда-то Вы уже владели сферо И всё же, Вы не устоите перед -искушением и примете вызов...","Једном пре си зграбио сферу хаоса -дрхтећим рукама. Сада твоје руке дрхте са нечим +искушением и примете вызов...","Једном пре сте зграбили сферу хаоса +дрхтећим рукама. Сада ваше руке дрхте са нечим што је више од похлепе, и ужасне мреже које су гладне моћи. -Чак и ако моћ сфере није довољна да те заштити +Чак и ако моћ сфере није довољна да вас заштити од мрачних сила, можда је боље да остане нетакнуто, његово обећање остало неиспуњено. -Али још увек, ниси био од оних који се повлаче од изазова... +Али још увек, нисте били од оних који се повлаче од изазова... " "\n...and other players await. @@ -6644,218 +6654,220 @@ The door is barred from the inside,TXT_ACS_MAP35_3_THEDO,,,,Dveře jsou zatarase Are you strong enough,TXT_ACS_MAP35_12_AREYO,,,,Jsi dost siln@[adj_cs],Bist du stark genug,,,Eres lo suficientemente fuerte,,,Etes vous suffisamment fort,Elég erős vagy,Sei forte abbastanza,お前がどれだけ強かろうと,네 놈은 주인들을 대면할 힘이...,Czy jesteś wystarczająco silny,Você é forte o suficiente,,,"Достаточно ли ты силён,",Да ли си довољно снажан To face your own masters?,TXT_ACS_MAP35_14_TOFAC,,,,čelit svým vlastním pánům?,Dich deinen eigenen Meistern zu stellen?,,,¿Para enfrentarte a tus maestros?,,,pour faire face à vos maîtres?,Hogy saját mestereiddel nézz szembe?,Per affrontare i tuoi stessi maestri?,お前の師に立ち向かえるのか?,진심으로 있는 것인가?,By stawić czoła swoim mistrzom?,Para enfrentar os seus próprios mestres?,,,чтобы сразиться со своими наставниками?,да се суочиш са својим мајсторима? ,,Hexen: Deathkings script texts,,,,,,,,,,,,,,,,,,,, -You dare battle in the ready room?,TXT_ACS_MAP33_6_YOUDA,,,,Ty si dovoluješ rvát se v přípravné místnosti?,Du wagst es im Bereitschaftsraum zu kämpfen?,,,¿Te atreves a luchar en la sala de preparación?,,,Vous osez faire escarmouche dans la salle de préparation?,,Hai il coraggio di combattere nella sala di aspetto?,挑戦する準備は整ったか?,감히 준비의 방에서 전투를 벌이다니...,Śmiesz walczyć w pokoju przygotowań?,Como ousa batalhar na sala de espera?,,,Ты посмел сражаться в комнате ожидания?, -"For that, you shall die!",TXT_ACS_MAP33_7_FORTH,,,,Pro to zemřeš!,Dafür sollst du sterben!,,,"Por eso, ¡Deberás morir!",,,"Pour cette insulte, vous trépasserez!",Ezért meghalsz!,"Per quello, morirai!",ならば、死へ進め!,죽어서 값을 치러라!,Umrzesz za to!,"Por causa disso, deverá morrer!",,,Так умри же!, -The waterfall is open,TXT_ACS_MAP41_6_THEWA,,,,Vodopád je otevřen.,Der Wasserfall ist geöffnet,,,La cascada se ha abierto,,,La cascade s'est ouverte.,A vizesés nyitva,La cascata è aperta,滝 は開いた,폭포가 멈췄다,Wodospad jest otwarty,A cascata está aberta,,,Поток воды остановлен, -The waterfall is blocked,TXT_ACS_MAP41_7_THEWA,,,,Vodopád je zatarasen.,Der Wasserfall ist blockiert,,,La cascada está bloqueada,,,La cascade est bloquée.,A vizesés zárva,La cascata è bloccata,滝 は塞がっている,폭포에 의해 막혔다,Wodospad jest zablokowany,A cascata está bloqueada,,,Поток воды преграждает путь, -A door has opened in the chapel,TXT_ACS_MAP41_8_ADOOR,,,,Dveře se otevřely v kapli.,Eine Tür in der Kapelle hat sich geöffnet,,,Una puerta se abrió en la Capilla,,,Une porte s'est ouverte dans la chapelle.,Egy ajtó tárult ki a kápolnában,Una porta si è aperta nella cappella,庵寺 への扉が開いた,교외 근처에서 문이 열렸다,Drzwi w kaplicy zostały otwarte,Uma porta se abriu na capela,,,Дверь открылась в часовне, -Now that's odd...,TXT_ACS_MAP42_4_NOWTH,,,,Tak to je divné…,Hm. Das ist merkwürdig...,,,Eso es extraño...,,,Ca c'est étrange....,Most ez különös...,Ora questo è strano...,何かがおかしい...,무언가가 이상하다...,Dziwne...,Que estranho...,,,Как странно..., -Three more parts of the puzzle remain,TXT_ACS_MAP44_1_THREE,,,,Zbývají tři části rébusu.,Drei weitere Teile des Rätsels verbleiben,,,Quedan tres partes más del acertijo,,,Trois parties du puzzle restent à résoudre.,Három rész maradt a rejtvényből,Rimangono altre tre parti del puzzle,パズルの部品は残り 3つ,3개의 수수께끼가 아직 풀리지 않았다,Pozostały jeszcze trzy części zagadki,Faltam mais três partes do quebra-cabeça,,,Осталось три части головоломки, -Two more parts of the puzzle remain,TXT_ACS_MAP44_2_TWOMO,,,,Zbývají dvě části rébusu.,Zwei weitere Teile des Rätsels verbleiben,,,Quedan dos partes más del acertijo,,,Deux parties du puzzle restent à résoudre.,Kettő rész maradt a rejtvényből,Rimangono altre due parti del puzzle,パズルの部品は残り 2つ,2개의 수수께끼가 아직 풀리지 않았다,Pozostały jeszcze dwie części zagadki,Faltam mais duas partes do quebra-cabeça,,,Осталось две части головоломки, -One more part of the puzzle remains,TXT_ACS_MAP44_3_ONEMO,,,,Zbývá jedna část rébusu.,Ein weiteres Teil des Rätsels ist übrig,,,Queda una parte más del acertijo,,,Il reste une partie du puzzle à résoudre.,Egy rész maradt a rejtvényből,Rimane un'altra parte del puzzle,パズルの部品は残り 1つ,마지막 수수께끼가 아직 풀리지 않았다,Pozostała jeszcze jedna część zagadki,Falta mais uma parte do quebra-cabeça,,,Осталась одна часть головоломки, -The puzzle is complete,TXT_ACS_MAP44_4_THEPU,,,,Rébus je kompletní.,Das Rätsel ist abgeschlossen,,,El acertijo está completo,,,Le puzzle est résolu.,A rejtvény megoldódott,Il puzzle è completo,パズルは完成した,모든 수수께끼가 풀렸다,Zagadka ukończona,O quebra-cabeça está completo,,,Головоломка разгадана, -You have not completed the puzzle,TXT_ACS_MAP44_6_YOUHA,,,,Nesplnil jsi rébus.,Du hast das Rätsel noch nicht gelöst,,,No has completado el acertijo,,,Vous n'avez pas résolu le puzzle.,Nem fejtetted meg a rejtvényt,Non hai completato il puzzle,パズルはまだ完成していない,모든 수수께끼를 풀지 못했다,Nie ukończyłeś zagadki,Você não completou o quebra-cabeça,,,Головоломка не разгадана, -The floor is not safe!,TXT_ACS_MAP44_8_THEFL,,,,Podlaha není bezpečná!,Der Boden hier ist nicht sicher!,,,¡El suelo no es seguro!,,,Le sol est dangereux!,A padló nem biztonságos!,Il pavimento è pericoloso!,この場は安全ではない!,이 층은 안전하지 않다!,Ta podłoga nie jest bezpieczna!,O chão não está seguro!,,,Пол совсем прогнил!, -One third of the puzzle is solved,TXT_ACS_MAP44_10_ONETH,,,,Jedna třetina rébusu je vyřešena.,Ein Drittel des Rätsels ist gelöst,,,Un tercio del acertijo se ha resuelto,,,Un tiers du puzzle à été résolu,Egyharmada a rejtvénynek megoldva,Un terzo del puzzle è stato risolto,パズルの 三分の一 が解かれた,수수께끼의 3분의 1이 풀렸다,Jedna trzecia zagadki rozwiązana,Um terço do quebra-cabeça foi resolvido,,,Одна треть головоломки разгадана, -Two thirds of the puzzle is solved,TXT_ACS_MAP44_11_TWOTH,,,,Dvě třetiny rébusu jsou vyřešeny.,Zwei Drittel des Rätsels sind gelöst,,,Dos tercios del acertijo se han resuelto,,,Deux tiers du puzzle ont été résolus,Kétharmada a rejtvénynek megoldva,Due terzi del puzzle è stato risolto,パズルの 三分の二 が解かれた,수수께끼의 3분의 2가 풀렸다,Dwie trzecie zagadki rozwiązane,Dois terços do quebra-cabeça foi resolvido,,,Две трети головоломки разгаданы, +You dare battle in the ready room?,TXT_ACS_MAP33_6_YOUDA,,,,Ty si dovoluješ rvát se v přípravné místnosti?,Du wagst es im Bereitschaftsraum zu kämpfen?,,,¿Te atreves a luchar en la sala de preparación?,,,Vous osez faire escarmouche dans la salle de préparation?,,Hai il coraggio di combattere nella sala di aspetto?,挑戦する準備は整ったか?,감히 준비의 방에서 전투를 벌이다니...,Śmiesz walczyć w pokoju przygotowań?,Como ousa batalhar na sala de espera?,,,Ты посмел сражаться в комнате ожидания?,Усуђујеш се борити у припремној соби? +"For that, you shall die!",TXT_ACS_MAP33_7_FORTH,,,,Pro to zemřeš!,Dafür sollst du sterben!,,,"Por eso, ¡Deberás morir!",,,"Pour cette insulte, vous trépasserez!",Ezért meghalsz!,"Per quello, morirai!",ならば、死へ進め!,죽어서 값을 치러라!,Umrzesz za to!,"Por causa disso, deverá morrer!",,,Так умри же!,За то ћеш умрети! +The waterfall is open,TXT_ACS_MAP41_6_THEWA,,,,Vodopád je otevřen.,Der Wasserfall ist geöffnet,,,La cascada se ha abierto,,,La cascade s'est ouverte.,A vizesés nyitva,La cascata è aperta,滝 は開いた,폭포가 멈췄다,Wodospad jest otwarty,A cascata está aberta,,,Поток воды остановлен,Водопад је отворен +The waterfall is blocked,TXT_ACS_MAP41_7_THEWA,,,,Vodopád je zatarasen.,Der Wasserfall ist blockiert,,,La cascada está bloqueada,,,La cascade est bloquée.,A vizesés zárva,La cascata è bloccata,滝 は塞がっている,폭포에 의해 막혔다,Wodospad jest zablokowany,A cascata está bloqueada,,,Поток воды преграждает путь,Водопад је блокиран +A door has opened in the chapel,TXT_ACS_MAP41_8_ADOOR,,,,Dveře se otevřely v kapli.,Eine Tür in der Kapelle hat sich geöffnet,,,Una puerta se abrió en la Capilla,,,Une porte s'est ouverte dans la chapelle.,Egy ajtó tárult ki a kápolnában,Una porta si è aperta nella cappella,庵寺 への扉が開いた,교외 근처에서 문이 열렸다,Drzwi w kaplicy zostały otwarte,Uma porta se abriu na capela,,,Дверь открылась в часовне,Врата су се отворила у катедрали +Now that's odd...,TXT_ACS_MAP42_4_NOWTH,,,,Tak to je divné…,Hm. Das ist merkwürdig...,,,Eso es extraño...,,,Ca c'est étrange....,Most ez különös...,Ora questo è strano...,何かがおかしい...,무언가가 이상하다...,Dziwne...,Que estranho...,,,Как странно...,То је чудно... +Three more parts of the puzzle remain,TXT_ACS_MAP44_1_THREE,,,,Zbývají tři části rébusu.,Drei weitere Teile des Rätsels verbleiben,,,Quedan tres partes más del acertijo,,,Trois parties du puzzle restent à résoudre.,Három rész maradt a rejtvényből,Rimangono altre tre parti del puzzle,パズルの部品は残り 3つ,3개의 수수께끼가 아직 풀리지 않았다,Pozostały jeszcze trzy części zagadki,Faltam mais três partes do quebra-cabeça,,,Осталось три части головоломки,Остају још три дела загонетке +Two more parts of the puzzle remain,TXT_ACS_MAP44_2_TWOMO,,,,Zbývají dvě části rébusu.,Zwei weitere Teile des Rätsels verbleiben,,,Quedan dos partes más del acertijo,,,Deux parties du puzzle restent à résoudre.,Kettő rész maradt a rejtvényből,Rimangono altre due parti del puzzle,パズルの部品は残り 2つ,2개의 수수께끼가 아직 풀리지 않았다,Pozostały jeszcze dwie części zagadki,Faltam mais duas partes do quebra-cabeça,,,Осталось две части головоломки,Остају још два дела загонетке +One more part of the puzzle remains,TXT_ACS_MAP44_3_ONEMO,,,,Zbývá jedna část rébusu.,Ein weiteres Teil des Rätsels ist übrig,,,Queda una parte más del acertijo,,,Il reste une partie du puzzle à résoudre.,Egy rész maradt a rejtvényből,Rimane un'altra parte del puzzle,パズルの部品は残り 1つ,마지막 수수께끼가 아직 풀리지 않았다,Pozostała jeszcze jedna część zagadki,Falta mais uma parte do quebra-cabeça,,,Осталась одна часть головоломки,Остаје још један део загонетке +The puzzle is complete,TXT_ACS_MAP44_4_THEPU,,,,Rébus je kompletní.,Das Rätsel ist abgeschlossen,,,El acertijo está completo,,,Le puzzle est résolu.,A rejtvény megoldódott,Il puzzle è completo,パズルは完成した,모든 수수께끼가 풀렸다,Zagadka ukończona,O quebra-cabeça está completo,,,Головоломка разгадана,Загонетка је решена +You have not completed the puzzle,TXT_ACS_MAP44_6_YOUHA,,,,Nesplnil jsi rébus.,Du hast das Rätsel noch nicht gelöst,,,No has completado el acertijo,,,Vous n'avez pas résolu le puzzle.,Nem fejtetted meg a rejtvényt,Non hai completato il puzzle,パズルはまだ完成していない,모든 수수께끼를 풀지 못했다,Nie ukończyłeś zagadki,Você não completou o quebra-cabeça,,,Головоломка не разгадана,Нисте решили загонетку +The floor is not safe!,TXT_ACS_MAP44_8_THEFL,,,,Podlaha není bezpečná!,Der Boden hier ist nicht sicher!,,,¡El suelo no es seguro!,,,Le sol est dangereux!,A padló nem biztonságos!,Il pavimento è pericoloso!,この場は安全ではない!,이 층은 안전하지 않다!,Ta podłoga nie jest bezpieczna!,O chão não está seguro!,,,Пол совсем прогнил!,Под није безбедан! +One third of the puzzle is solved,TXT_ACS_MAP44_10_ONETH,,,,Jedna třetina rébusu je vyřešena.,Ein Drittel des Rätsels ist gelöst,,,Un tercio del acertijo se ha resuelto,,,Un tiers du puzzle à été résolu,Egyharmada a rejtvénynek megoldva,Un terzo del puzzle è stato risolto,パズルの 三分の一 が解かれた,수수께끼의 3분의 1이 풀렸다,Jedna trzecia zagadki rozwiązana,Um terço do quebra-cabeça foi resolvido,,,Одна треть головоломки разгадана,Једна трећина загонетке је решена +Two thirds of the puzzle is solved,TXT_ACS_MAP44_11_TWOTH,,,,Dvě třetiny rébusu jsou vyřešeny.,Zwei Drittel des Rätsels sind gelöst,,,Dos tercios del acertijo se han resuelto,,,Deux tiers du puzzle ont été résolus,Kétharmada a rejtvénynek megoldva,Due terzi del puzzle è stato risolto,パズルの 三分の二 が解かれた,수수께끼의 3분의 2가 풀렸다,Dwie trzecie zagadki rozwiązane,Dois terços do quebra-cabeça foi resolvido,,,Две трети головоломки разгаданы,Две трећине загонетке су решене You hear a platform moving in the distance,TXT_ACS_MAP45_1_YOUHE,,,,Slyšíš v dálce pohybující se plošinu.,"Du hörst, wie sich in der Ferne eine Platform bewegt",,,Escuchas una plataforma moverse a la distancia,,,Vous entendez une plateforme se déplacer au loin,Egy emelvény mozgását hallod a távolban,Senti una piattaforma muoversi a distanza,昇降機の音が遠くで聞こえる,멀리서 보행판이 움직이는 소리가 들려왔다,Słyszysz odgłos poruszającej się w oddali platformy,Você ouve de longe uma plataforma se movendo,,,"Неподалёку раздаётся звук -движущейся деревянной площадки", +движущейся деревянной площадки",Чујете како се платформа помера у даљини It is done...,TXT_ACS_MAP46_0_ITISD,,,,Je to dokonáno…,Es ist getan...,,,Está terminado...,,,C'est terminé...,Megvan...,Fatto...,これで完了だ...,이제 끝났다...,"Zrobione... -",Está terminado...,,,Готово..., -You have not completed the puzzle,TXT_ACS_MAP46_1_YOUHA,,,,Nesplnil@[ao_cs] jsi rébus.,Du hast das Rätsel noch nicht gelöst,,,No has completado el acertijo,,,Vous n'avez pas résolu le puzzle.,Nem fejtetted meg a rejtvényt.,Non hai completato il puzzle,パズルはまだ完成していない,모든 수수께끼를 풀지 못했다,Nie ukończyłeś zagadki,Você não completou o quebra-cabeça,,,Головоломка не разгадана, -I'm warning you...,TXT_ACS_MAP46_2_IMWAR,,,,Varuju tě…,Ich warne dich...,,,Te lo advierto...,,,Je vous avertis...,Figyelmeztetlek...,Ti avverto...,お前に警告しよう...,나는 경고했다...,Ostrzegam cię...,Estou te avisando...,,,Я тебя предупреждаю..., -"Stubborn, aren't you?",TXT_ACS_MAP46_3_STUBB,,,,"Ty jsi ale tvrdohlav@[adj_cs], nejsi?","Du bist aber stur, was?",,,"Eres obstinado, ¿verdad?",,,"Obstiné, n'est-ce pas?","Makacs vagy, nem igaz?","Testardo, no?",頑固だと、自らも思わないか?,정말 끈질기군.,"Jesteś uparty, prawda?","Você é teimos@[ao_ptb], não é mesmo?",,,Не слишком ли ты упрямый?, -"And stupid, too",TXT_ACS_MAP46_4_ANDST,,,,"A hloupý, též.",Und auch noch dumm,,,"Y estúpido, también",,,"Et stupide, aussi.",És hülye is.,E pure stupido,そして、あまりにも愚か者だ,어리석기도 하고.,Głupi też,E estúpid@[ao_ptb] também,,,И не слишком-то разумный!, -One fourth of this puzzle is complete,TXT_ACS_MAP46_8_ONEFO,,,,Jedna čtvrtina rébusu je vyřešena.,Ein Viertel des Rätsels ist gelöst,,,Un cuarto del acertijo se ha resuelto,,,Un quart du puzzle à été résolu,Egy negyede e rejtvénynek megvan.,Un quarto del puzzle è completo,パズルの 四分の一 が解かれた,수수께끼의 4분의 1만 풀렸다,Jedna czwarta tej zagadki ukończona,Um quarto deste quebra-cabeça está completo,,,Одна четвёртая этой головоломки разгадана, -Bad choice...,TXT_ACS_MAP46_9_BADCH,,,,Špatná volba.,Falsche Wahl...,,,Mala decisión...,,,Mauvaise décision...,Rossz választás...,Scelta sbagliata...,拙い選択だ...,서투른 선택이다...,Zły wybór...,Péssima escolha...,,,Плохой выбор..., -The symbols are not aligned,TXT_ACS_MAP47_2_THESY,,,,Symboly nejsou zarovnány.,Die Symbole sind nicht ausgerichtet,,,Los símbolos no están alineados,,,Les symboles ne sont pas alignés.,A jelek rendezetlenek.,I simboli non sono allineati,シンボルが揃っていない,상징이 정렬되지 않았다,Symbole nie są wyrównane,Os símbolos não estão alinhados,,,Символы не совпадают, -The door won't open from this side,TXT_ACS_MAP48_2_THEDO,,,,Dveře se z této strany neotevřou.,Die Tür kann sich von dieser Seite nicht öffnen,,,La puerta no abrirá por este lado,,,La porte ne s'ouvre pas de ce côté.,Az ajtó nem fog kinyílni innen.,La porta non si apre da questo lato,扉はこちら側から開けられない,이 문은 이 방향으로는 열리지 않는다,Drzwi nie otworzą się z tej strony,A porta não se abrirá deste lado,,,С этой стороны дверь не открыть, -The door is barred from the outside,TXT_ACS_MAP50_1_THEDO,,,,Dveře jsou zatarasené zvenku.,Die Tür ist von außen verriegelt,,,La puerta está atrancada por fuera,,,Cette porte est bloquée de l'extérieur.,Az ajtó kívülről van eltorlaszolva.,La porta è sbarrata da fuori,この扉は外側から塞がれている,이 문은 바깥에 빗장이 걸려있다,Drzwi są zabarykadowane od zewnątrz,A porta está barrada por fora,,,Дверь заблокирована снаружи, -Sacrilege !,TXT_ACS_MAP51_5_SACRI,,,,Svatokrádež!,Gotteslästerung!,,,¡Sacrilegio!,,,Sacrilège!,,Sacrilegio !,罰当たりが!,신성모독이다!,Świętokradztwo !,Sacrilégio!,,,Святотатство !, -You have defiled Eric's tomb !!,TXT_ACS_MAP51_6_YOUHA,,,,Znesvětil@[ao_cs] jsi Erikovu hrobku!!,Du hast Erics Gruft entehrt!!,,,¡Has profanado la tumba de Erick!,,,Vous avez vandalisé la tombe d'Eric!,Megszentségtelenítetted Eric sírját !!,Adesso hai profanato la tomba di eric !!,貴様はエリックの墓を荒らしたな!!,네 놈은 성 에릭의 무덤을 더렵혔다!!,Zhańbiłeś grób Erica !!,Você violou a tumba de Eric!,,,Ты осквернил могилу Эрика !!, -And now you die !!!,TXT_ACS_MAP51_7_ANDNO,,,,Teď zemřeš!!!,Und nun stirbst du!,,,¡Y ahora muere!,¡Y ahora morirás!,,"Pour cela, vous allez mourir!",És most meghalsz !!!,E ora muori !!!,万死に値する!!!,그 댓가로 목숨을 바쳐라!!!,I teraz zginiesz !!!,E agora você morrerá!!!,,,И умрёшь за это страшной смертью !!!, -One third of the puzzle is solved,TXT_ACS_MAP51_8_ONETH,,,,Jedna třetina rébusu je vyřešena.,Ein Drittel des Rätsels ist gelöst,,,Un tercio del acertijo se ha resuelto,,,Un tiers du puzzle à été résolu,A rejtvény egyharmada megoldva,Un terzo del puzzle è stato risolto,パズルの 三分の一 が解かれた,수수께끼의 3분의 1이 풀렸다,Jedna trzecia zagadki rozwiązana,Um terço do quebra-cabeça foi resolvido,,,Одна треть головоломки разгадана, -Two thirds of the puzzle is solved,TXT_ACS_MAP51_9_TWOTH,,,,Dvě třetiny rébusu jsou vyřešeny.,Zwei Drittel des Rätsels sind gelöst,,,Dos tercios del acertijo se han resuelto,,,deux tiers du puzzle ont été résolus,A rejtvény kétharmada megoldva,Due terzi del puzzle è stato risolto,パズルの 三分の二 が解かれた,수수께끼의 3분의 2가 풀렸다,Dwie trzecie zagadki rozwiązane,Dois terços do quebra-cabeça foi resolvido,,,Две трети головоломки разгаданы, -The crypt is open,TXT_ACS_MAP51_10_THECR,,,,Krypta je otevřena.,Die Gruft ist offen,,,La cripta ahora está abierta,,,La crypte est ouverte,A kripta nyitva,La cripta è aperta,地下聖堂 が開いた,지하 묘실의 입구가 열렸다.,Krypta jest otwarta,A cripta está aberta,,,Склеп открыт, -Beware the spider's tomb,TXT_ACS_MAP51_11_BEWAR,,,,Vyvaruj se pavoučí hrobky.,Hüte dich vor dem Grab der Spinne,,,Cuidado con la tumba de la araña,,,Attention à la tombe de l'araignée.,,Attento alla tomba del ragno,スパイダーの墓,거미의 무덤을 조심하라,Strzeż się grobowca pająków,Cuidado com a tumba da aranha,,,Опасайся гробницы паука, +",Está terminado...,,,Готово...,Готово је... +You have not completed the puzzle,TXT_ACS_MAP46_1_YOUHA,,,,Nesplnil@[ao_cs] jsi rébus.,Du hast das Rätsel noch nicht gelöst,,,No has completado el acertijo,,,Vous n'avez pas résolu le puzzle.,Nem fejtetted meg a rejtvényt.,Non hai completato il puzzle,パズルはまだ完成していない,모든 수수께끼를 풀지 못했다,Nie ukończyłeś zagadki,Você não completou o quebra-cabeça,,,Головоломка не разгадана,Ниси решио загонетку +I'm warning you...,TXT_ACS_MAP46_2_IMWAR,,,,Varuju tě…,Ich warne dich...,,,Te lo advierto...,,,Je vous avertis...,Figyelmeztetlek...,Ti avverto...,お前に警告しよう...,나는 경고했다...,Ostrzegam cię...,Estou te avisando...,,,Я тебя предупреждаю...,Упозоравам те... +"Stubborn, aren't you?",TXT_ACS_MAP46_3_STUBB,,,,"Ty jsi ale tvrdohlav@[adj_cs], nejsi?","Du bist aber stur, was?",,,"Eres obstinado, ¿verdad?",,,"Obstiné, n'est-ce pas?","Makacs vagy, nem igaz?","Testardo, no?",頑固だと、自らも思わないか?,정말 끈질기군.,"Jesteś uparty, prawda?","Você é teimos@[ao_ptb], não é mesmo?",,,Не слишком ли ты упрямый?,"Тврдоглав си, зар не?" +"And stupid, too",TXT_ACS_MAP46_4_ANDST,,,,"A hloupý, též.",Und auch noch dumm,,,"Y estúpido, también",,,"Et stupide, aussi.",És hülye is.,E pure stupido,そして、あまりにも愚か者だ,어리석기도 하고.,Głupi też,E estúpid@[ao_ptb] também,,,И не слишком-то разумный!,А још си и глуп +One fourth of this puzzle is complete,TXT_ACS_MAP46_8_ONEFO,,,,Jedna čtvrtina rébusu je vyřešena.,Ein Viertel des Rätsels ist gelöst,,,Un cuarto del acertijo se ha resuelto,,,Un quart du puzzle à été résolu,Egy negyede e rejtvénynek megvan.,Un quarto del puzzle è completo,パズルの 四分の一 が解かれた,수수께끼의 4분의 1만 풀렸다,Jedna czwarta tej zagadki ukończona,Um quarto deste quebra-cabeça está completo,,,Одна четвёртая этой головоломки разгадана,Једна четвртина загонетке је решена +Bad choice...,TXT_ACS_MAP46_9_BADCH,,,,Špatná volba.,Falsche Wahl...,,,Mala decisión...,,,Mauvaise décision...,Rossz választás...,Scelta sbagliata...,拙い選択だ...,서투른 선택이다...,Zły wybór...,Péssima escolha...,,,Плохой выбор...,Лош избор... +The symbols are not aligned,TXT_ACS_MAP47_2_THESY,,,,Symboly nejsou zarovnány.,Die Symbole sind nicht ausgerichtet,,,Los símbolos no están alineados,,,Les symboles ne sont pas alignés.,A jelek rendezetlenek.,I simboli non sono allineati,シンボルが揃っていない,상징이 정렬되지 않았다,Symbole nie są wyrównane,Os símbolos não estão alinhados,,,Символы не совпадают,Симболи нису поравнати +The door won't open from this side,TXT_ACS_MAP48_2_THEDO,,,,Dveře se z této strany neotevřou.,Die Tür kann sich von dieser Seite nicht öffnen,,,La puerta no abrirá por este lado,,,La porte ne s'ouvre pas de ce côté.,Az ajtó nem fog kinyílni innen.,La porta non si apre da questo lato,扉はこちら側から開けられない,이 문은 이 방향으로는 열리지 않는다,Drzwi nie otworzą się z tej strony,A porta não se abrirá deste lado,,,С этой стороны дверь не открыть,Врата неће да се отворе са стране +The door is barred from the outside,TXT_ACS_MAP50_1_THEDO,,,,Dveře jsou zatarasené zvenku.,Die Tür ist von außen verriegelt,,,La puerta está atrancada por fuera,,,Cette porte est bloquée de l'extérieur.,Az ajtó kívülről van eltorlaszolva.,La porta è sbarrata da fuori,この扉は外側から塞がれている,이 문은 바깥에 빗장이 걸려있다,Drzwi są zabarykadowane od zewnątrz,A porta está barrada por fora,,,Дверь заблокирована снаружи,Врата су блокирана споља +Sacrilege !,TXT_ACS_MAP51_5_SACRI,,,,Svatokrádež!,Gotteslästerung!,,,¡Sacrilegio!,,,Sacrilège!,,Sacrilegio !,罰当たりが!,신성모독이다!,Świętokradztwo !,Sacrilégio!,,,Святотатство !,Светогрђе ! +You have defiled Eric's tomb !!,TXT_ACS_MAP51_6_YOUHA,,,,Znesvětil@[ao_cs] jsi Erikovu hrobku!!,Du hast Erics Gruft entehrt!!,,,¡Has profanado la tumba de Erick!,,,Vous avez vandalisé la tombe d'Eric!,Megszentségtelenítetted Eric sírját !!,Adesso hai profanato la tomba di eric !!,貴様はエリックの墓を荒らしたな!!,네 놈은 성 에릭의 무덤을 더렵혔다!!,Zhańbiłeś grób Erica !!,Você violou a tumba de Eric!,,,Ты осквернил могилу Эрика !!,Оскрнавио си Ерикову гробницу !! +And now you die !!!,TXT_ACS_MAP51_7_ANDNO,,,,Teď zemřeš!!!,Und nun stirbst du!,,,¡Y ahora muere!,¡Y ahora morirás!,,"Pour cela, vous allez mourir!",És most meghalsz !!!,E ora muori !!!,万死に値する!!!,그 댓가로 목숨을 바쳐라!!!,I teraz zginiesz !!!,E agora você morrerá!!!,,,И умрёшь за это страшной смертью !!!,И сада умиреш !!! +One third of the puzzle is solved,TXT_ACS_MAP51_8_ONETH,,,,Jedna třetina rébusu je vyřešena.,Ein Drittel des Rätsels ist gelöst,,,Un tercio del acertijo se ha resuelto,,,Un tiers du puzzle à été résolu,A rejtvény egyharmada megoldva,Un terzo del puzzle è stato risolto,パズルの 三分の一 が解かれた,수수께끼의 3분의 1이 풀렸다,Jedna trzecia zagadki rozwiązana,Um terço do quebra-cabeça foi resolvido,,,Одна треть головоломки разгадана,Једна трећина загонетке је решена +Two thirds of the puzzle is solved,TXT_ACS_MAP51_9_TWOTH,,,,Dvě třetiny rébusu jsou vyřešeny.,Zwei Drittel des Rätsels sind gelöst,,,Dos tercios del acertijo se han resuelto,,,deux tiers du puzzle ont été résolus,A rejtvény kétharmada megoldva,Due terzi del puzzle è stato risolto,パズルの 三分の二 が解かれた,수수께끼의 3분의 2가 풀렸다,Dwie trzecie zagadki rozwiązane,Dois terços do quebra-cabeça foi resolvido,,,Две трети головоломки разгаданы,Две трећине загонетке су решене +The crypt is open,TXT_ACS_MAP51_10_THECR,,,,Krypta je otevřena.,Die Gruft ist offen,,,La cripta ahora está abierta,,,La crypte est ouverte,A kripta nyitva,La cripta è aperta,地下聖堂 が開いた,지하 묘실의 입구가 열렸다.,Krypta jest otwarta,A cripta está aberta,,,Склеп открыт,Гробница је отворена +Beware the spider's tomb,TXT_ACS_MAP51_11_BEWAR,,,,Vyvaruj se pavoučí hrobky.,Hüte dich vor dem Grab der Spinne,,,Cuidado con la tumba de la araña,,,Attention à la tombe de l'araignée.,,Attento alla tomba del ragno,スパイダーの墓,거미의 무덤을 조심하라,Strzeż się grobowca pająków,Cuidado com a tumba da aranha,,,Опасайся гробницы паука,Чувај се паукове гробнице You hear a platform rise outside,TXT_ACS_MAP51_13_YOUHE,,,,Slyšíš zvenku zvedající se platformu.,"Du hörst, wie sich draußen eine Plattform erhebt",,,Escuchas una plataforma erguirse afuera,,,Vous entendez une platforme s'élever dehors,Egy emelvényt hallasz emelkedni odakinn,Senti una piattaforma alzarsi a distanza,外で昇降機の音が聞こえる,밖에서 보행판이 올라오는 소리가 들려왔다,Słyszysz odgłos unoszącej się na zewnątrz platformy,Você ouve uma plataforma subir lá fora,,,"Снаружи слышен звук -поднимающегося камня", -Do you feel lucky?,TXT_ACS_MAP51_14_DOYOU,,,,"Zdá se ti, že máš štěstí?",Denkst du das heute dein Glückstag ist?,,,¿Te sientes afortunado?,,,Vous pensez être chanceux?,Szerencsésnek érzed magad?,Ti senti fortunato?,運が良かったと思うか?,"그대는 운수가 좋은가, 아닌가?",Masz szczęście?,Está se sentindo com sorte?,,,Чувствуешь ли ты себя везучим?, -You guessed wrong!,TXT_ACS_MAP51_15_YOUGU,,,,To máš smůlu!,Du hast falsch geraten!,,,¡Adivinaste incorrectamente!,,,Et bien non!,Hát rosszul érzed!,Non hai indovinato!,それは違うな!,잘못된 판단이다!,Źle zgadłeś!,Adivinhou errado!,,,Неправильное предположение!, -Good guess,TXT_ACS_MAP51_16_GOODG,,,,Dobré zdání.,Gut geraten,,,¡Buena elección!,,,Vous avez deviné!,Jól sejtetted,Hai indovinato,良い推測だ,옳은 판단이다,Dobrze zgadłeś,Certa resposta,,,Правильное предположение, -Can you do all the scripting for my level?,TXT_ACS_MAP51_17_CANYO,,,,Můžeš všechno skriptování udělat za mě?,Kannst du die Skripte für all meine Level schreiben?,,,¿Podrías hacer todo el script para mi nivel?,,,Vous pouvez faire tout le script de mon niveau?,Meg tudnád csinálni az egészt scriptelést a pályámhoz?,Puoi fare tutto lo scripting per il mio livello?,この階層を全て書き換える事は可能かな?,어쩔 수 없이 살아간다. 태어났기 때문에...,Czy możesz zrobić cały skrypt do mojego poziomu?,Poderia fazer todo o scripting da minha fase?,,,Можешь написать за меня все скрипты?, -Don't touch my gloppy,TXT_ACS_MAP51_18_DONTT,,,,Nesahej mi na slimáka!,Berühr mein Ding nicht!,,,No toques mi gloppy,,,Ne touche pas mon gloppy,,Non toccare la mia caramella,汚らしい手で触れるな,"에틴을 쳐죽인 것까지 신경 쓰다간, 걸을 수도 없을걸.",Nie ruszaj moich słodyczy,Não toca no meu docinho!,,,Не трогай мою вкусняшку, -Vorpal ?!?!?!,TXT_ACS_MAP51_19_VORPA,,,,Šaršoun?!?!?!,Tödlich ?!?!?!,,,¡¿¡¿¡¿ Vorpal ?!?!?!,,,,,,ボーパル ?!?!?!,드래곤 슬레이어 인가?!,Śmiercionośny ?!?!?!,,,,Остренько ?!?!?!, -"Gimme some sugar, baby",TXT_ACS_MAP51_20_GIMME,,,,"Dej mi trochu cukru, zlato.","Gib mir etwas Zucker, Baby",,,"Dame un poco de azúcar, baby","Dame algo de azúcar, bebe",,,,,砂糖が欲しいかい、ベイビー,등짝을 보자!...,Daj mi torchę cukru skarbie,"Me dá um pouco de açúcar, baby",,,"Подай-ка мне сахар, детка", -Duh-uhhh...,TXT_ACS_MAP51_21_DUHUH,,,,A jéje.,,,,,,,,,,えぇーとぉー...,낙원이란 있을 수 없는거야.,Coooooo...,Dãããã-ããã...,,,Ага-а-а-а..., -Film in an hour?,TXT_ACS_MAP51_22_FILMI,,,,Film za hodinu?,Film in einer Stunde?,,,¿Película en una hora?,¿Una película en una hora?,,Un film dans une heure?,,Un film in un'ora?,数時間のフィルム?,신은 운명을 주셨죠. 만남이라는 운명을.,Za godzinę film?,Quer ver um filme daqui a pouco?,,,Фильм на час?, -I don't even get my own tombstone - cf,TXT_ACS_MAP51_23_IDONT,,,,Ani nemám svůj vlastní náhrobek. -CF,Ich bekomme noch nicht einmal meinen eigenen Grabstein - cf,,,Ni siquiera tengo mi propia lápida - cf,,,J'ai même pas le droit à ma propre tombe - cf,,Non ho potuto avere la mia pietra tombale - cf,私は自分の墓標すら得られない - cf,내 묘비를 세우지도 않았네 -cf,Nawet nie dostałem swojego nagrobka - cf,Eu nem ganhei a minha própria lápide - cf,,,У меня даже нет своего надгробия (к.ф.), -Let no blood be spilt,TXT_ACS_MAP51_24_LETNO,,,,Nechť není prolita žádná krev.,Lass kein Blut vergossen sein,,,Que no se derrame sangre,,,Qu'aucune goutte de sang ne soit tirée,,Si cerchi di non spargere sangue,血を零さないように,피 한 방울도 흘리지 말라,Nie pozwól by krew została przelana,Que sangue nenhum seja derramado,,,Да не прольётся кровь, -Let no hand be raised in anger,TXT_ACS_MAP51_25_LETNO,,,,Nechť není žádná ruka hněvem zvednuta.,Lass keine Hand in Wut erhoben sein,,,Que ninguna mano se levante con ira,,,Qu'aucune main de se lève avec colère,,Si cerchi di non alzare le mani per rabbia,怒りで拳を振るわないように,분노하여 주먹을 휘두르지 말라,Nie pozwól by ręka została uniesiona w gniewie,Que mão nenhuma seja erguida por raiva,,,И да не поднимется рука во гневе, -Who dares disturb our slumber?,TXT_ACS_MAP52_9_WHODA,,,,Kdo se opovažuje narušit náš spánek?,Wer wagt es unseren Schlummer zu stören?,,,¿Quién se atreve a perturbar nuestro sueño?,,,Qui ose troubler notre sommeil?,,Chi osa disturbare il nostro riposo?,誰が、我々の眠りを妨げる勇気があるかな?,감히 우리들의 숙면을 방해하는가?,Kto śmie przeszkadzać nam w drzemce?,Quem ousa perturbar o nosso descanso?,,,Кто осмелился потревожить наш покой?, -The way is open,TXT_ACS_MAP52_10_THEWA,,,,Cesta je otevřena.,Der Weg ist offen,,,El camino está abierto,,,Le chemin est ouvert.,,La via è aperta,道は開いた,길이 열렸다,Droga jest otwarta,O caminho está aberto,,,Путь открыт, -You have ,TXT_ACS_MAP53_2_YOUHA,,,,Zbývají ti ,Du hast,,,Tienes,,,Vous avez,,hai,スイッチはまだ,지금 ,Masz,Faltam ainda,,,Осталось, - switches left,TXT_ACS_MAP53_3_SWITC,,,, spínače., Schalter übrig,,,interruptores restantes,switches restantes,, boutons à trouver,, interuttori rimanenti,残っている,개의 개폐기들이 남았다, pozostałych przełączników, interruptores,,,Переключателей, -You have only ,TXT_ACS_MAP53_4_YOUHA,,,,Zbývá ti jen ,Du hast nur,,,Tienes solo,,,Vous avez seulement,,Hai solamente,スイッチは,지금 오로지 ,Masz tylko,Falta somente,,,Остался всего, +поднимающегося камня",Чујете како се платформа диже споља +Do you feel lucky?,TXT_ACS_MAP51_14_DOYOU,,,,"Zdá se ti, že máš štěstí?",Denkst du das heute dein Glückstag ist?,,,¿Te sientes afortunado?,,,Vous pensez être chanceux?,Szerencsésnek érzed magad?,Ti senti fortunato?,運が良かったと思うか?,"그대는 운수가 좋은가, 아닌가?",Masz szczęście?,Está se sentindo com sorte?,,,Чувствуешь ли ты себя везучим?,Да ли се осећаш срећним? +You guessed wrong!,TXT_ACS_MAP51_15_YOUGU,,,,To máš smůlu!,Du hast falsch geraten!,,,¡Adivinaste incorrectamente!,,,Et bien non!,Hát rosszul érzed!,Non hai indovinato!,それは違うな!,잘못된 판단이다!,Źle zgadłeś!,Adivinhou errado!,,,Неправильное предположение!,Погодио си погрешно! +Good guess,TXT_ACS_MAP51_16_GOODG,,,,Dobré zdání.,Gut geraten,,,¡Buena elección!,,,Vous avez deviné!,Jól sejtetted,Hai indovinato,良い推測だ,옳은 판단이다,Dobrze zgadłeś,Certa resposta,,,Правильное предположение,Добар погодак +Can you do all the scripting for my level?,TXT_ACS_MAP51_17_CANYO,,,,Můžeš všechno skriptování udělat za mě?,Kannst du die Skripte für all meine Level schreiben?,,,¿Podrías hacer todo el script para mi nivel?,,,Vous pouvez faire tout le script de mon niveau?,Meg tudnád csinálni az egészt scriptelést a pályámhoz?,Puoi fare tutto lo scripting per il mio livello?,この階層を全て書き換える事は可能かな?,어쩔 수 없이 살아간다. 태어났기 때문에...,Czy możesz zrobić cały skrypt do mojego poziomu?,Poderia fazer todo o scripting da minha fase?,,,Можешь написать за меня все скрипты?,Можеш ли да урадиш све сценарије за мој ниво? +Don't touch my gloppy,TXT_ACS_MAP51_18_DONTT,,,,Nesahej mi na slimáka!,Berühr mein Ding nicht!,,,No toques mi gloppy,,,Ne touche pas mon gloppy,,Non toccare la mia caramella,汚らしい手で触れるな,"에틴을 쳐죽인 것까지 신경 쓰다간, 걸을 수도 없을걸.",Nie ruszaj moich słodyczy,Não toca no meu docinho!,,,Не трогай мою вкусняшку,Не дирај мој слаткиш +Vorpal ?!?!?!,TXT_ACS_MAP51_19_VORPA,,,,Šaršoun?!?!?!,Tödlich ?!?!?!,,,¡¿¡¿¡¿ Vorpal ?!?!?!,,,,,,ボーパル ?!?!?!,드래곤 슬레이어 인가?!,Śmiercionośny ?!?!?!,,,,Остренько ?!?!?!,Вајтолни мач ?!?!?! +"Gimme some sugar, baby",TXT_ACS_MAP51_20_GIMME,,,,"Dej mi trochu cukru, zlato.","Gib mir etwas Zucker, Baby",,,"Dame un poco de azúcar, baby","Dame algo de azúcar, bebe",,,,,砂糖が欲しいかい、ベイビー,등짝을 보자!...,Daj mi torchę cukru skarbie,"Me dá um pouco de açúcar, baby",,,"Подай-ка мне сахар, детка","Дај ми мало шећера, бебо" +Duh-uhhh...,TXT_ACS_MAP51_21_DUHUH,,,,A jéje.,,,,,,,,,,えぇーとぉー...,낙원이란 있을 수 없는거야.,Coooooo...,Dãããã-ããã...,,,Ага-а-а-а...,Дух-уххх... +Film in an hour?,TXT_ACS_MAP51_22_FILMI,,,,Film za hodinu?,Film in einer Stunde?,,,¿Película en una hora?,¿Una película en una hora?,,Un film dans une heure?,,Un film in un'ora?,数時間のフィルム?,신은 운명을 주셨죠. 만남이라는 운명을.,Za godzinę film?,Quer ver um filme daqui a pouco?,,,Фильм на час?,Снимамо за сат времена? +I don't even get my own tombstone - cf,TXT_ACS_MAP51_23_IDONT,,,,Ani nemám svůj vlastní náhrobek. -CF,Ich bekomme noch nicht einmal meinen eigenen Grabstein - cf,,,Ni siquiera tengo mi propia lápida - cf,,,J'ai même pas le droit à ma propre tombe - cf,,Non ho potuto avere la mia pietra tombale - cf,私は自分の墓標すら得られない - cf,내 묘비를 세우지도 않았네 -cf,Nawet nie dostałem swojego nagrobka - cf,Eu nem ganhei a minha própria lápide - cf,,,У меня даже нет своего надгробия (к.ф.),Ја чак и не добијам свој надгробни споменик - cf +Let no blood be spilt,TXT_ACS_MAP51_24_LETNO,,,,Nechť není prolita žádná krev.,Lass kein Blut vergossen sein,,,Que no se derrame sangre,,,Qu'aucune goutte de sang ne soit tirée,,Si cerchi di non spargere sangue,血を零さないように,피 한 방울도 흘리지 말라,Nie pozwól by krew została przelana,Que sangue nenhum seja derramado,,,Да не прольётся кровь,Нека се не пролије крв +Let no hand be raised in anger,TXT_ACS_MAP51_25_LETNO,,,,Nechť není žádná ruka hněvem zvednuta.,Lass keine Hand in Wut erhoben sein,,,Que ninguna mano se levante con ira,,,Qu'aucune main de se lève avec colère,,Si cerchi di non alzare le mani per rabbia,怒りで拳を振るわないように,분노하여 주먹을 휘두르지 말라,Nie pozwól by ręka została uniesiona w gniewie,Que mão nenhuma seja erguida por raiva,,,И да не поднимется рука во гневе,Нека се ниједна рука подигне из беса +Who dares disturb our slumber?,TXT_ACS_MAP52_9_WHODA,,,,Kdo se opovažuje narušit náš spánek?,Wer wagt es unseren Schlummer zu stören?,,,¿Quién se atreve a perturbar nuestro sueño?,,,Qui ose troubler notre sommeil?,,Chi osa disturbare il nostro riposo?,誰が、我々の眠りを妨げる勇気があるかな?,감히 우리들의 숙면을 방해하는가?,Kto śmie przeszkadzać nam w drzemce?,Quem ousa perturbar o nosso descanso?,,,Кто осмелился потревожить наш покой?,Ко се усуђује узнемиравати наш сан? +The way is open,TXT_ACS_MAP52_10_THEWA,,,,Cesta je otevřena.,Der Weg ist offen,,,El camino está abierto,,,Le chemin est ouvert.,,La via è aperta,道は開いた,길이 열렸다,Droga jest otwarta,O caminho está aberto,,,Путь открыт,Пролаз је отворен +You have ,TXT_ACS_MAP53_2_YOUHA,,,,Zbývají ti ,Du hast,,,Tienes,,,Vous avez,,hai,スイッチはまだ,지금 ,Masz,Faltam ainda,,,Осталось,Остало је + switches left,TXT_ACS_MAP53_3_SWITC,,,, spínače., Schalter übrig,,,interruptores restantes,switches restantes,, boutons à trouver,, interuttori rimanenti,残っている,개의 개폐기들이 남았다, pozostałych przełączników, interruptores,,,Переключателей, прекидача +You have only ,TXT_ACS_MAP53_4_YOUHA,,,,Zbývá ti jen ,Du hast nur,,,Tienes solo,,,Vous avez seulement,,Hai solamente,スイッチは,지금 오로지 ,Masz tylko,Falta somente,,,Остался всего,Остао је само switch left,TXT_ACS_MAP53_5_SWITC,,,, spínač., Schalter übrig,,,interruptor restante,switch restante,, bouton à trouver,, interruttore rimanente,"だけ残っている -",개의 개폐기가 남았다, przełącznik, interruptor,,,переключатель, -The exit is open,TXT_ACS_MAP53_6_THEEX,,,,Východ je otevřen.,Der Ausgang ist offen,,,La salida está abierta,,,La sortie est ouverte,,L'uscita è aperta,出口が開いた,출구가 열렸다,Wyjście jest otwarte,A saída está aberta,,,Выход открыт, -The doors won't open from this side,TXT_ACS_MAP54_1_THEDO,,,,Dveře se z této strany neotevřou.,Die Türen werden sich nicht von dieser Seite öffnen,,,Las puertas no abrirán de este lado,,,Les portes ne s'ouvrent pas de ce côté,,Le porte non si aprono da questo lato,扉はこちらから開けない,이 문들은 이 방향으로는 열리지 않는다,Drzwi nie otworzą się z tej strony,As portas não se abrirão deste lado,,,С этой стороны дверь не открыть, -The doors are open...,TXT_ACS_MAP54_4_THEDO,,,,Dveře jsou otevřené…,Die Türen sind offen,,,Las puertas están abiertas...,,,Les portes sont ouvertes...,,Le porte sono aperte...,ドアは開いている...,문이 열렸다...,Drzwi są otwarte...,As portas estão abertas...,,,Путь в цитадель открыт..., -...if you are ready,TXT_ACS_MAP54_5_IFYOU,,,,jestli jsi připraven.,...Wenn du bereit bist,,,...si estás listo,,,...si vous êtes prêt.,,...Se sei pronto,...準備が良いなら,... 준비 되었다면,...jeśli jesteś gotów,...se você estiver preparad@[ao_ptb],,,...Осмелишься ли ты войти?, -A door has opened,TXT_ACS_MAP54_9_ADOOR,,,,Dveře se otevřely,Eine Tür hat sich geöffnet,,,Una puerta se abrió,,,Une porte est ouverte,,Una porta è stata aperta,先へ進むドアは開いた,지금 문이 열렸다...,Drzwi otworzyły się,Uma porta se abriu,,,Дверь откроется, -on the Chantry,TXT_ACS_MAP54_10_ONTHE,,,,v Modlitebně.,In der Kantorei,,,En la capilla,,,dans la chapelle.,,Nella Cappella,小礼拝堂 へ向かえ,... 예배당에서,w Kaplicy Wotywnej,na Capela,,,в Часовне, -A bridge has been built,TXT_ACS_MAP54_11_ABRID,,,,Most byl postaven,Eine Brücke wurde errichtet,,,Se construyó un puente,,,Une pont a été construit,,È stato costruito un ponte,先へ進む橋が架かった,다리가 건설되었다...,Most został utworzony,Uma ponte foi construída,,,Мост воздвигнется, -on the Abattoir,TXT_ACS_MAP54_12_ONTHE,,,,na Jatkách.,Im Schlachthaus,,,En el matadero,,,dans l'abbatoir.,,Nella Macelleria, 屠殺場 へ向かえ,... 도살장에서,w Rzeźni,no Matadouro,,,на Бойне, -A stair has been built,TXT_ACS_MAP54_13_ASTAI,,,,Schody byly postaveny,Eine Treppe wurde errichtet,,,Se construyó una escalera,,,Un escalier a été construit,,È stata costruita una scalinata,先へ進む階段が出来た,계단이 건설되었다...,Schody zostały utworzone,Uma escada foi construída,,,Лестница воздвигнется, -on the Dark Watch,TXT_ACS_MAP54_14_ONTHE,,,,na Temné hlídce.,auf der Dunklen Wache,,,En la guardia oscura,,,dans la Garde Noire.,,Nella Guardia Oscura, 闇の刻計 へ向かえ,... 어둠의 감시초소에서,w Ciemnej Straży,na Guarda Negra,,,у Тёмного стража, -One gear has been placed,TXT_ACS_MAP54_15_ONEGE,,,,Jedno kolo bylo umístěno.,Ein Zahnrad wurde eingesetzt,,,Un engranaje se ha puesto,Un engrane se ha puesto,,Un engrenage a été placé,,Un ingranaggio è stato piazzato,歯車を一つ配置した,톱니바퀴 1개가 배치되었다,Jedna zębatka została umieszczona,Uma engrenagem foi colocada,,,Шестерня установлена, - gears have been placed,TXT_ACS_MAP54_16_GEARS,,,, kola byla umístěna., Zahnräder wurden eingesetzt,,, engranajes se han puesto, engranes se han puesto,, engrenages ont été placés,, ingranaggi sono stati piazzati,歯車を配置した, 톱니바퀴들이 배치되었다, zębatki zostały umieszczone, engrenagens foram colocadas,,,шестернёй установлено, -A barricade has opened,TXT_ACS_MAP54_17_ABARR,,,,Barikáda se otevřela,Eine Barrikade wurde geöffnet,,,La barricada se ha abierto,,,Une barricade s'est ouverte,,Una barricata è stata aperta,バリケードは開かれた,방벽이 열렸다...,Barykada została otwarta,Uma barricada se abriu,,,Преграда поднимется, -On the Cloaca,TXT_ACS_MAP54_18_ONTHE,,,,v Kloace.,In der Kloake,,,En la Cloaca,,,dans le cloaque,,Nella Cloaca,排泄腔 へ向かえ,... 하수구에서,W Kloace,Na Cloaca,,,в Клоаке, -The way back is open,TXT_ACS_MAP54_20_THEWA,,,,Cesta zpět je otevřena.,Der Weg zurück ist offen,,,El camino está abierto,,,Un chemin s'est ouvert,,La via del ritorno è aperta,裏口は開いた,돌아가는 길이 열렸다,Droga powrotna jest otwarta,O caminho de volta está aberto,,,Путь назад открыт, -The door is barred from the inside,TXT_ACS_MAP55_9_THEDO,,,,Dveře jsou zatarasené zevnitř.,Die Tür ist von innen verriegelt,,,La puerta está atrancada desde el interior,,,La porte est bloquée de ce côté,,La porta è stata aperta da dentro,この扉は内側から塞がれている,이 문은 안에 빗장이 걸려있다,Drzwi są zabarykadowane od wewnątrz,A porta está barrada por dentro,,,Дверь заблокирована изнутри, -You dare plunder the tomb,TXT_ACS_MAP56_0_YOUDA,,,,Ty se opovažuješ rabovat,Wagst du es,,,¿Te atreves a saquear la tumba,,,Vous osez piller la tombe,,Osi saccheggiare la tomba,お前はあえて 執行人達の墓を,배짱이 두둑하구나...,Śmiesz plądrować grobowiec,Como ousa saquear a tumba,,,Ты посмел ограбить могилу, -of the executioner?,TXT_ACS_MAP56_1_OFTHE,,,,hrobku popravčího?,das Grab des Henkers zu plündern?,,,del ejecutor?,,,du bourreau?,,dell'esecutore?,荒らすつもりか?,사형 집행자의 무덤을 도굴하다니.,kata?,do executor?,,,верховного палача?, -Prepare to die,TXT_ACS_MAP56_2_PREPA,,,,Připrav se zemřít.,Bereite dich vor zu sterben,,,¡Prepárate para morir!,,,Préparez vous à mourir!,,Preparati a morire,死ぬ準備をしろ,죽어서 회계하라.,Przygotuj się na śmierć,Prepare-se para morrer,,,Готовься к смерти, -You have ,TXT_ACS_MAP59_1_YOUHA,,,,Zbývají ti ,Du musst,,,Aún tienes,,,Vous avez,,Hai ancora altri,スイッチはまだ,당신은,Masz,Faltam mais,,,Осталось, - more switches to find,TXT_ACS_MAP59_2_MORES,,,, spínače k nalezení., weitere Schalter finden,,, interruptores más que encontrar, switches más que encontrar,, boutons à trouver,, interruttori da trovare,残っている,개의 개폐기들을 더 찾아야 한다, przełączników do znalezienia, interruptores para encontrar,,, переключателей, -You have only ,TXT_ACS_MAP59_3_YOUHA,,,,Zbývá ti jen ,Du musst nur,,,Tienes solo,,,Vous avez seulement,,Hai solamente,スイッチは,이제 당신은 ,Masz tylko,Falta somente,,,Остался всего, +",개의 개폐기가 남았다, przełącznik, interruptor,,,переключатель, прекидач +The exit is open,TXT_ACS_MAP53_6_THEEX,,,,Východ je otevřen.,Der Ausgang ist offen,,,La salida está abierta,,,La sortie est ouverte,,L'uscita è aperta,出口が開いた,출구가 열렸다,Wyjście jest otwarte,A saída está aberta,,,Выход открыт,Излаз је отворен +The doors won't open from this side,TXT_ACS_MAP54_1_THEDO,,,,Dveře se z této strany neotevřou.,Die Türen werden sich nicht von dieser Seite öffnen,,,Las puertas no abrirán de este lado,,,Les portes ne s'ouvrent pas de ce côté,,Le porte non si aprono da questo lato,扉はこちらから開けない,이 문들은 이 방향으로는 열리지 않는다,Drzwi nie otworzą się z tej strony,As portas não se abrirão deste lado,,,С этой стороны дверь не открыть,Врата неће да се отворе са стране +The doors are open...,TXT_ACS_MAP54_4_THEDO,,,,Dveře jsou otevřené…,Die Türen sind offen,,,Las puertas están abiertas...,,,Les portes sont ouvertes...,,Le porte sono aperte...,ドアは開いている...,문이 열렸다...,Drzwi są otwarte...,As portas estão abertas...,,,Путь в цитадель открыт...,Врата су отворена... +...if you are ready,TXT_ACS_MAP54_5_IFYOU,,,,jestli jsi připraven.,...Wenn du bereit bist,,,...si estás listo,,,...si vous êtes prêt.,,...Se sei pronto,...準備が良いなら,... 준비 되었다면,...jeśli jesteś gotów,...se você estiver preparad@[ao_ptb],,,...Осмелишься ли ты войти?,...ако си спреман +A door has opened,TXT_ACS_MAP54_9_ADOOR,,,,Dveře se otevřely,Eine Tür hat sich geöffnet,,,Una puerta se abrió,,,Une porte est ouverte,,Una porta è stata aperta,先へ進むドアは開いた,지금 문이 열렸다...,Drzwi otworzyły się,Uma porta se abriu,,,Дверь откроется,Врата су се отворила +on the Chantry,TXT_ACS_MAP54_10_ONTHE,,,,v Modlitebně.,In der Kantorei,,,En la capilla,,,dans la chapelle.,,Nella Cappella,小礼拝堂 へ向かえ,... 예배당에서,w Kaplicy Wotywnej,na Capela,,,в Часовне,у Капели +A bridge has been built,TXT_ACS_MAP54_11_ABRID,,,,Most byl postaven,Eine Brücke wurde errichtet,,,Se construyó un puente,,,Une pont a été construit,,È stato costruito un ponte,先へ進む橋が架かった,다리가 건설되었다...,Most został utworzony,Uma ponte foi construída,,,Мост воздвигнется,Мост се саградио +on the Abattoir,TXT_ACS_MAP54_12_ONTHE,,,,na Jatkách.,Im Schlachthaus,,,En el matadero,,,dans l'abbatoir.,,Nella Macelleria, 屠殺場 へ向かえ,... 도살장에서,w Rzeźni,no Matadouro,,,на Бойне,на Кланици +A stair has been built,TXT_ACS_MAP54_13_ASTAI,,,,Schody byly postaveny,Eine Treppe wurde errichtet,,,Se construyó una escalera,,,Un escalier a été construit,,È stata costruita una scalinata,先へ進む階段が出来た,계단이 건설되었다...,Schody zostały utworzone,Uma escada foi construída,,,Лестница воздвигнется,Степенице су се саградиле +on the Dark Watch,TXT_ACS_MAP54_14_ONTHE,,,,na Temné hlídce.,auf der Dunklen Wache,,,En la guardia oscura,,,dans la Garde Noire.,,Nella Guardia Oscura, 闇の刻計 へ向かえ,... 어둠의 감시초소에서,w Ciemnej Straży,na Guarda Negra,,,у Тёмного стража,на Црној стажи +One gear has been placed,TXT_ACS_MAP54_15_ONEGE,,,,Jedno kolo bylo umístěno.,Ein Zahnrad wurde eingesetzt,,,Un engranaje se ha puesto,Un engrane se ha puesto,,Un engrenage a été placé,,Un ingranaggio è stato piazzato,歯車を一つ配置した,톱니바퀴 1개가 배치되었다,Jedna zębatka została umieszczona,Uma engrenagem foi colocada,,,Шестерня установлена,Један зупчаник је постављен + gears have been placed,TXT_ACS_MAP54_16_GEARS,,,, kola byla umístěna., Zahnräder wurden eingesetzt,,, engranajes se han puesto, engranes se han puesto,, engrenages ont été placés,, ingranaggi sono stati piazzati,歯車を配置した, 톱니바퀴들이 배치되었다, zębatki zostały umieszczone, engrenagens foram colocadas,,,шестернёй установлено, зупчаника су постављена +A barricade has opened,TXT_ACS_MAP54_17_ABARR,,,,Barikáda se otevřela,Eine Barrikade wurde geöffnet,,,La barricada se ha abierto,,,Une barricade s'est ouverte,,Una barricata è stata aperta,バリケードは開かれた,방벽이 열렸다...,Barykada została otwarta,Uma barricada se abriu,,,Преграда поднимется,Барикада је отворена +On the Cloaca,TXT_ACS_MAP54_18_ONTHE,,,,v Kloace.,In der Kloake,,,En la Cloaca,,,dans le cloaque,,Nella Cloaca,排泄腔 へ向かえ,... 하수구에서,W Kloace,Na Cloaca,,,в Клоаке,у клоаци +The way back is open,TXT_ACS_MAP54_20_THEWA,,,,Cesta zpět je otevřena.,Der Weg zurück ist offen,,,El camino está abierto,,,Un chemin s'est ouvert,,La via del ritorno è aperta,裏口は開いた,돌아가는 길이 열렸다,Droga powrotna jest otwarta,O caminho de volta está aberto,,,Путь назад открыт,Пролаз назад је отворен +The door is barred from the inside,TXT_ACS_MAP55_9_THEDO,,,,Dveře jsou zatarasené zevnitř.,Die Tür ist von innen verriegelt,,,La puerta está atrancada desde el interior,,,La porte est bloquée de ce côté,,La porta è stata aperta da dentro,この扉は内側から塞がれている,이 문은 안에 빗장이 걸려있다,Drzwi są zabarykadowane od wewnątrz,A porta está barrada por dentro,,,Дверь заблокирована изнутри,Врата су затворена изнутра +You dare plunder the tomb,TXT_ACS_MAP56_0_YOUDA,,,,Ty se opovažuješ rabovat,Wagst du es,,,¿Te atreves a saquear la tumba,,,Vous osez piller la tombe,,Osi saccheggiare la tomba,お前はあえて 執行人達の墓を,배짱이 두둑하구나...,Śmiesz plądrować grobowiec,Como ousa saquear a tumba,,,Ты посмел ограбить могилу,Усуђујеш се пљачкати +of the executioner?,TXT_ACS_MAP56_1_OFTHE,,,,hrobku popravčího?,das Grab des Henkers zu plündern?,,,del ejecutor?,,,du bourreau?,,dell'esecutore?,荒らすつもりか?,사형 집행자의 무덤을 도굴하다니.,kata?,do executor?,,,верховного палача?,желатову гробницу? +Prepare to die,TXT_ACS_MAP56_2_PREPA,,,,Připrav se zemřít.,Bereite dich vor zu sterben,,,¡Prepárate para morir!,,,Préparez vous à mourir!,,Preparati a morire,死ぬ準備をしろ,죽어서 회계하라.,Przygotuj się na śmierć,Prepare-se para morrer,,,Готовься к смерти,Припреми се да умреш +You have ,TXT_ACS_MAP59_1_YOUHA,,,,Zbývají ti ,Du musst,,,Aún tienes,,,Vous avez,,Hai ancora altri,スイッチはまだ,당신은,Masz,Faltam mais,,,Осталось,Остало је + more switches to find,TXT_ACS_MAP59_2_MORES,,,, spínače k nalezení., weitere Schalter finden,,, interruptores más que encontrar, switches más que encontrar,, boutons à trouver,, interruttori da trovare,残っている,개의 개폐기들을 더 찾아야 한다, przełączników do znalezienia, interruptores para encontrar,,, переключателей, прекидача да се нађе +You have only ,TXT_ACS_MAP59_3_YOUHA,,,,Zbývá ti jen ,Du musst nur,,,Tienes solo,,,Vous avez seulement,,Hai solamente,スイッチは,이제 당신은 ,Masz tylko,Falta somente,,,Остался всего,Oстао је само switch left,TXT_ACS_MAP59_4_SWITC,,,, spínač., Schalter finden,,, interruptor restante, switch restante,, bouton a trouver,, interruttore rimanente,"だけ残っている -",개의 개폐기만 찾으면 된다, przełącznik, interruptor,,, переключатель, -The way to the tower is open,TXT_ACS_MAP59_5_THEWA,,,,Cesta do věže je otevřena.,Der Weg zum Turm ist offen,,,El camino a la torre está abierto,,,Le chemin vers la tour est ouvert.,,La via alla torre è stata aperta,塔への道 が開いた,탑으로 가는 길이 열렸다,Droga do wieży jest otwarta,O caminho para a torre está aberto,,,Путь к башне открыт, -The way is open,TXT_ACS_MAP60_3_THEWA,,,,Cesta je otevřena.,Der Weg ist offen,,,El camino está abierto,,,Le chemin est ouvert.,,La via è aperta,道は開いた,길이 열렸다,Droga jest otwarta,O caminho está aberto,,,Портал открыт, +",개의 개폐기만 찾으면 된다, przełącznik, interruptor,,, переключатель, прекидач +The way to the tower is open,TXT_ACS_MAP59_5_THEWA,,,,Cesta do věže je otevřena.,Der Weg zum Turm ist offen,,,El camino a la torre está abierto,,,Le chemin vers la tour est ouvert.,,La via alla torre è stata aperta,塔への道 が開いた,탑으로 가는 길이 열렸다,Droga do wieży jest otwarta,O caminho para a torre está aberto,,,Путь к башне открыт,Пролаз до куле је отворен +The way is open,TXT_ACS_MAP60_3_THEWA,,,,Cesta je otevřena.,Der Weg ist offen,,,El camino está abierto,,,Le chemin est ouvert.,,La via è aperta,道は開いた,길이 열렸다,Droga jest otwarta,O caminho está aberto,,,Портал открыт,Пролаз је отворен ,,Strife dialogue,,,,,,,,,,,,,,,,,,,, "I don't want any trouble, stay away from me. I've had enough trouble with what that bastard Harris did to me. He promised me money, instead I get to look forward to being Questioned by the Programmer.",TXT_DLG_SCRIPT01_D0_IDONT,,,,"Nechci žádný trable, jdi ode mě. Už tak mám dost potíží s tím, co mi ten hajzl Harris provedl. Slíbil mi peníze a místo toho se můžu těšit na výslech od Programátora.","Ich möchte keinen Ärger, bleib weg von mir. Ich hatte genug Ärger mit dem was der Bastard Harris mir angetan hat. Er hat mir Geld versprochen, stattdessen musste ich mich darauf vorbereiten von dem Programmierer ausgefragt zu werden.",,,"No quiero ningún problema, aléjate de mí. He tenido suficientes problemas con lo que me hizo Harris. Me prometió dinero, en lugar de eso, ahora espero a ser cuestionado por El Programador.",,,"Je ne veux pas d'embrouilles. Laissez moi tranquille. J'ai déjà assez de problèmes avec ce que ce salaud d'Harris ma fait. Il m'a promis de l'argent, maintenant, je risque de me faire interroger par le Programmeur.","Én nem akarok semmi gondot, maradj távol tőlem. Elég baj nekem az amit az a barom Harris okozott. Pénzt ígért, ehelyett az vár rám, hogy A Programozó kételkedik bennem.","Non voglio problemi, stammi lontano. Ho già avuto abbastanza problemi con quello che quel bastardo di Harris ha fatto a me. Mi aveva promesso soldi, invece mi ritrovo ad avere l'opportunità di essere Interrogato dal Programmatore.","もう面倒事には御免だ、私に近づくな。 あのハリスのクズのせいでもう十分面倒な目に 遭ったんだ。ヤツは私に金を渡すと約束したのに、 裏切られて私がプログラマーに尋問されることに -なってしまったんだ。","난 문제를 더 일으키고 싶지 않아, 나에게서 떨어져! 해리스 그 자식이 나를 속였어. 녀석이 돈을 준다고 해서 도와줬더니 도망치고 없었고 결국엔 붙잡혀서 프로그래머에게 심문을 받을 처지에 놓였다고!","Nie chcę żadnych kłopotów, zostaw mnie w spokoju. Miałem już wystarczająco dużo problemów z tym co ten drań Harris mi zrobił. Obiecał mi pieniądze, ale zamiast tego muszę czekać na to, by być Przesłuchanym przez Programistę.","Não quero me meter em problemas, fique longe de mim. Já tive problemas demais com o que aquele desgraçado do Harris fez comigo. Ele me prometeu dinheiro, mas ao invés disso vou ser Questionado pelo Programador.",,,"Не подходи ко мне — мне не нужны неприятности! У меня их и так достаточно из-за этого мерзавца Харриса. Он обещал мне деньги, а вместо этого меня ожидает «допрос» у Программиста.", +なってしまったんだ。","난 문제를 더 일으키고 싶지 않아, 나에게서 떨어져! 해리스 그 자식이 나를 속였어. 녀석이 돈을 준다고 해서 도와줬더니 도망치고 없었고 결국엔 붙잡혀서 프로그래머에게 심문을 받을 처지에 놓였다고!","Nie chcę żadnych kłopotów, zostaw mnie w spokoju. Miałem już wystarczająco dużo problemów z tym co ten drań Harris mi zrobił. Obiecał mi pieniądze, ale zamiast tego muszę czekać na to, by być Przesłuchanym przez Programistę.","Não quero me meter em problemas, fique longe de mim. Já tive problemas demais com o que aquele desgraçado do Harris fez comigo. Ele me prometeu dinheiro, mas ao invés disso vou ser Questionado pelo Programador.",,,"Не подходи ко мне — мне не нужны неприятности! У меня их и так достаточно из-за этого мерзавца Харриса. Он обещал мне деньги, а вместо этого меня ожидает «допрос» у Программиста.","Не желим невољу, одмакни се од мене. Имао сам довољно невоље са оним што је онај кретен Харис урадио мени. Обећао ми је новац, у ствари требам се надати испитивању Програмера." I'll help you if you help me. Five pieces of gold and I'll tell all I know.,TXT_DLG_SCRIPT02_D0_ILLHE,,,,"Pomůžu ti, když pomůžeš ty mě. Pět zlaťáků a řeknu ti vše, co vím.",Ich helfe dir wenn du mir hilfst. Fünf Goldstücke und ich erzähle alles was ich weiß.,,,Te ayudaré si me ayudas. Cinco piezas de oro y te cuento todo lo que sé.,,,"Tu m'aide, je t'aide. Cinq pièces et je te dis ce que je sais.","Segítek, ha segítesz. 5 arany és mindent elmondok, amit tudok.",Ti aiuterò se tu mi aiuti. Cinque pezzi d'oro e ti dirò tutto quello che so.,"助けてくれるなら援助する。 -5ゴールドで知っている情報を全て教えよう",저를 도와준다면 당신을 돕겠습니다. 5 골드를 줌으로써 말이죠.,Pomogę ci jeśli ty mi pomożesz. Pięć sztuk złota i powiem ci wszytsko co wiem.,Eu te ajudo se você me ajudar. Cinco moedas de ouro e te digo tudo que eu sei.,,,"Я помогу тебе, если ты поможешь мне. Пять золотых, и я расскажу всё, что знаю.", -Here's the gold.,TXT_RPLY0_SCRIPT02_D0_HERES,,,,Tady máš to zlato.,Hier ist dein Gold.,,,Aquí está el oro.,,,Voilà l'argent.,Íme az arany.,Ecco l'oro.,金はこれだ。,여기 골드입니다.,Oto złoto.,Aqui está o ouro.,,,Вот золото., -"Be stealthy when you kill, you won't set off alarms.",TXT_RYES0_SCRIPT02_D0_BESTE,,,,"Když zabíjíš, dělej to potichu - nevyhlásíš tak poplach.","Sei leise, wenn du jemanden tötest, damit du keinen Alarm auslöst.",,,Sé cauteloso cuando mates y no activarás las alarmas.,,,Tuez discrètement et vous n'aurez pas de problème avec les alarmes.,"Lopakodva, halkan gyilkolj, kézzel, így nem indul be a riasztó.","Sii furtivo quando uccidi, non farai scattare l'allarme.",始末する際は隠密に、警報を鳴らさないように。,"조용히 은신해서 암살만 한다면, 경보를 울리지 않을 겁니다.","Bądź cicho kiedy zabijasz, nie włączysz wtedy alarmu.",Seja cauteloso quando for matar e não ativará os alarmes.,,,"Убивай бесшумно, чтобы не поднять тревогу.", -"Well, I won't be telling you anything for free!",TXT_RNO0_SCRIPT02_D0_WELLI,,,,Zadarmo ti nic říkat nebudu!,"Na ja, für umsonst werde ich dir nichts erzählen!",,,"Bueno, ¡No te diré nada gratis!",,,Je ne vous dirai rien si vous ne me donnez rien!,"Figyelj, ingyen semmit sem mondok el neked.",Io non ti dirò un bel niente a gratis!,いや、タダで情報は渡せない!,세상에 공짜가 어딨습니까? 먼저 돈을 주세요!,"Cóż, nie będę ci mówił niczego za darmo!","Bom, não vou te dar informação de graça!",,,"Что ж, я ничего не скажу даром!", -Have you by any chance got another 5 gold on you?,TXT_DLG_SCRIPT02_D1516_HAVEY,,,,Neměl bys u sebe náhodou dalších pět zlatek?,Hast du vielleicht 5 weitere Goldmünzen dabei?,,,¿Por casualidad has conseguido otros 5 de oro?,,,T'aurais pas 5 pièces en plus sur toi?,"Van bármi esély arra, hogy még 5 aranyad azért van?",Hai per caso altri 5 pezzi d'oro con te?,もしかして5ゴールド稼いだのか?,5 골드 더 있습니까? 그러면 아주 좋을 텐데.,Czy przypadkiem masz może kolejne 5 monet przy sobie?,Por acaso teria mais 5 de ouro aí?,,,У тебя случайно не найдётся ещё 5 монеток?, -5 gold.,TXT_RPLY0_SCRIPT02_D1516_5GOLD,,,,Pět zlatých.,5 Gold.,,,5 de oro.,,,5 pièces.,5 arany.,5 pezzi d'oro.,5ゴールドだ。,5 골드.,5 monet.,5 de ouro.,,,5 золотых., +5ゴールドで知っている情報を全て教えよう",저를 도와준다면 당신을 돕겠습니다. 5 골드를 줌으로써 말이죠.,Pomogę ci jeśli ty mi pomożesz. Pięć sztuk złota i powiem ci wszytsko co wiem.,Eu te ajudo se você me ajudar. Cinco moedas de ouro e te digo tudo que eu sei.,,,"Я помогу тебе, если ты поможешь мне. Пять золотых, и я расскажу всё, что знаю.",Помоћи ћу ти ако ти помогнеш мени. Пет златника и рећи ћу ти све што знам. +Here's the gold.,TXT_RPLY0_SCRIPT02_D0_HERES,,,,Tady máš to zlato.,Hier ist dein Gold.,,,Aquí está el oro.,,,Voilà l'argent.,Íme az arany.,Ecco l'oro.,金はこれだ。,여기 골드입니다.,Oto złoto.,Aqui está o ouro.,,,Вот золото.,Ево га злато. +"Be stealthy when you kill, you won't set off alarms.",TXT_RYES0_SCRIPT02_D0_BESTE,,,,"Když zabíjíš, dělej to potichu - nevyhlásíš tak poplach.","Sei leise, wenn du jemanden tötest, damit du keinen Alarm auslöst.",,,Sé cauteloso cuando mates y no activarás las alarmas.,,,Tuez discrètement et vous n'aurez pas de problème avec les alarmes.,"Lopakodva, halkan gyilkolj, kézzel, így nem indul be a riasztó.","Sii furtivo quando uccidi, non farai scattare l'allarme.",始末する際は隠密に、警報を鳴らさないように。,"조용히 은신해서 암살만 한다면, 경보를 울리지 않을 겁니다.","Bądź cicho kiedy zabijasz, nie włączysz wtedy alarmu.",Seja cauteloso quando for matar e não ativará os alarmes.,,,"Убивай бесшумно, чтобы не поднять тревогу.","Буди нечујан када убијаш, и нећеш активирати аларм." +"Well, I won't be telling you anything for free!",TXT_RNO0_SCRIPT02_D0_WELLI,,,,Zadarmo ti nic říkat nebudu!,"Na ja, für umsonst werde ich dir nichts erzählen!",,,"Bueno, ¡No te diré nada gratis!",,,Je ne vous dirai rien si vous ne me donnez rien!,"Figyelj, ingyen semmit sem mondok el neked.",Io non ti dirò un bel niente a gratis!,いや、タダで情報は渡せない!,세상에 공짜가 어딨습니까? 먼저 돈을 주세요!,"Cóż, nie będę ci mówił niczego za darmo!","Bom, não vou te dar informação de graça!",,,"Что ж, я ничего не скажу даром!","Па, нећу ништа да ти кажем џабе!" +Have you by any chance got another 5 gold on you?,TXT_DLG_SCRIPT02_D1516_HAVEY,,,,Neměl bys u sebe náhodou dalších pět zlatek?,Hast du vielleicht 5 weitere Goldmünzen dabei?,,,¿Por casualidad has conseguido otros 5 de oro?,,,T'aurais pas 5 pièces en plus sur toi?,"Van bármi esély arra, hogy még 5 aranyad azért van?",Hai per caso altri 5 pezzi d'oro con te?,もしかして5ゴールド稼いだのか?,5 골드 더 있습니까? 그러면 아주 좋을 텐데.,Czy przypadkiem masz może kolejne 5 monet przy sobie?,Por acaso teria mais 5 de ouro aí?,,,У тебя случайно не найдётся ещё 5 монеток?,Да ли имаш још 5 златника? +5 gold.,TXT_RPLY0_SCRIPT02_D1516_5GOLD,,,,Pět zlatých.,5 Gold.,,,5 de oro.,,,5 pièces.,5 arany.,5 pezzi d'oro.,5ゴールドだ。,5 골드.,5 monet.,5 de ouro.,,,5 золотых.,5 златника. "Well, poison bolts can kill the guards instantly and won't set off the alarms.",TXT_RYES0_SCRIPT02_D1516_WELLP,,,,"No, otrávené šípy okamžitě zabijí stráže a nevyhlásí poplach.",Also Giftpfeile können die Wachen sofort töten und lösen keinen Alarm aus.,,,"Bien, las saetas envenenadas pueden matar a los guardias al instante sin activar las alarmas.",,,Les carreaux empoisonnés tuent les gardes instantanément et discrètement.,"Hát, a mérgező nyilak azonnal a túlvilágra küldik az őröket, és a riasztó sem kapcsol be.",Le frecce avvelenate possono uccidere le guardie istantaneamente e non faranno scattare l'allarme.,"そうだな、ポイズンボルトは警備員を簡単に殺せるし、 -警報を作動させることもない。",아시나요? 맹독 볼트만 있으면 경보를 울리지 않고 경비병을 죽일 수 있다는거?,"Więc, zatrute bełty mogą od razu zabić strażników i nie włączą alarmu.","Bem, setas venenosas podem matar os guardas instantâneamente e não ativarão os alarmes.",,,"Что ж, отравленными болтами можно убивать охранников быстро и бесшумно.", -"No sir, I won't be telling you anything for free!",TXT_RNO0_SCRIPT02_D1516_NOSIR,,,,"Ne, pane, nic vám zadarmo říkat nebudu!","Nein, ich werde dir nichts für umsonst erzählen!",,,"No, ¡No diré nada gratis!",,,"Non, monsieur, je ne vous dirai rien si je ne me fais pas payer!","Nem uram, tudja, semmi sincs ingyen.","No signore, non ti dirò nulla a gratis!",いやいや、タダでは話せないな!,"죄송합니다만, 전 아무것도 무료로 말해주지 않을 겁니다!","Nie panie, nie będę ci mówił niczego za darmo!","Não senhor, não vou te dizer nada de graça!",,,"Нет, товарищ! Даром — только за амбаром!", -You've wrung the last bit of gossip out of me already!,TXT_DLG_SCRIPT02_D3032_YOUVE,,,,"Už jsi ze mě vyždímal všechny klepy, co jsem měl!",Du hast bereits das letzte bisschen Klatsch aus mir herausgequetscht!,,,¡Ya me has sacado hasta el último chisme!,,,Vous m'avez tiré tous les vers du nez!,Már a legutolsó pletykát is kiszedted belőlem.,Hai già strizzato l'ultimo pezzo di gossip da me!,既にイキのいい噂は聞かせたぞ!,가십거리를 이미 다 털어놓았습니다. 더 뭘 바랍니까?,Wyciągnąłeś już ze mnie ostatnią plotkę!,Você já ouviu todos os boatos que posso te contar!,,,"Ты уже вытянул из меня всё, что только можно!", -What can I get for you?,TXT_DLG_SCRIPT02_D4548_WHATC,,,,Co si budeš přát?,Was kann ich für dich tun?,,,¿Qué puedo ofrecerte?,,,Qu'est ce que je peux pour vous?,Mit tehetnék érted?,Cosa posso offrirti?,何か必要か?,무엇을 구매하고 싶어?,Co mogę dla ciebie zrobić?,Como posso te ajudar?,,,Что я могу тебе предложить?, -Assault gun,TXT_RPLY0_SCRIPT02_D4548_ASSAU,,,,Útočnou pušku,Sturmgewehr,,,Fusil de Asalto,,,Fusil d'Assaut,Gépfegyver,Fucile d'assalto,アサルトガン,돌격소총,Karabin Szturmowy,Fuzil de assalto,,,Штурмовую винтовку, -Here you go.,TXT_RYES0_SCRIPT02_D4548_HEREY,,,,Tu máš.,Bitte sehr!,,,Aquí tienes.,,,Voilà pour vous.,Tessék,Ecco per te.,毎度あり。,여기 있어.,Proszę bardzo.,Aqui está.,,,Держи., -You can't afford that right now.,TXT_RNO0_SCRIPT02_D4548_YOUCA,,,,Tu si teď nemůžeš dovolit.,Das kannst du dir momentan nicht leisten.,,,No puedes adquirir esto ahora.,,,Vous n'avez pas assez d'argent.,Erre most nincs pénzed.,Non hai abbastanza soldi.,今それを買える余裕は無い。,그걸 사기엔 여유가 없는 것 같네.,Nie możesz teraz tego kupić.,Você não pode comprar isso no momento.,,,Ты пока не можешь себе это позволить., -Clip of bullets,TXT_RPLY1_SCRIPT02_D4548_CLIPO,,,,Zásobník nábojů,Gewehrmunition.,,,Cargador con balas,,,Chargeur de balles,Egy tár töltény,Un caricatore di proiettili,銃弾倉,돌격소총 탄창,Magazynek,Carregador de balas,,,Обойму патронов, -Thanks.,TXT_RYES1_SCRIPT02_D4548_THANK,,,,Díky.,Danke.,,,Gracias.,,,Merci.,Köszi.,Grazie.,どうも。,고맙다!,Dzięki.,Obrigado.,,,Благодарю., -"Come on, 10 gold.",TXT_RNO1_SCRIPT02_D4548_COMEO,,,,"No tak, je to deset zlatých.","Na komm, 10 Gold.",,,¡Vamos! 10 de oro.,,,"Allez, 10 pièces.","Rajta, 10 aranyat.","Avanti, 10 pezzi d'oro.",頼むぜ、10ゴールドだぞ。,10 골드만 있으면 되는데...,"No weź, 10 monet.","Vamos lá, 10 de ouro.",,,"Ну же, 10 золотых.", -Ammo box,TXT_RPLY2_SCRIPT02_D4548_AMMOB,,,,Krabici nábojů,Munitionsschachtel,,,Caja de balas,,,Bôite de balles,Egy doboz lőszer,Scatole di munizioni,銃弾倉箱,돌격소총 탄약 박스,Pudło z amunicją,Caixa de balas,,,Коробку патронов, -Here's your ammo.,TXT_RYES2_SCRIPT02_D4548_HERES,,,,Tady je tvá munice.,Hier ist deine Munition.,,,Aquí tienes tus municiones.,,,Voilà vos munitions.,Itt a lőszered.,Ecco le tue munizioni.,これでアンタのブツだ。,탄약 여기 있어!,Oto twoja amunicja.,Aqui está a sua munição.,,,Вот твои патроны., -Maybe some other time.,TXT_RNO2_SCRIPT02_D4548_MAYBE,,,,Možná někdy jindy.,Vielleicht ein anderes Mal.,,,Tal vez en otra ocasión.,,,Peut être une autre fois.,Talán majd máskor.,Forse qualche altra volta.,また後でな。,아마도 나중에...,Może innym razem.,Talvez outra hora.,,,"Может, в другой раз.", +警報を作動させることもない。",아시나요? 맹독 볼트만 있으면 경보를 울리지 않고 경비병을 죽일 수 있다는거?,"Więc, zatrute bełty mogą od razu zabić strażników i nie włączą alarmu.","Bem, setas venenosas podem matar os guardas instantâneamente e não ativarão os alarmes.",,,"Что ж, отравленными болтами можно убивать охранников быстро и бесшумно.","Па, отровне стреле ће убити стражаре одмах и неће активирати аларм" +"No sir, I won't be telling you anything for free!",TXT_RNO0_SCRIPT02_D1516_NOSIR,,,,"Ne, pane, nic vám zadarmo říkat nebudu!","Nein, ich werde dir nichts für umsonst erzählen!",,,"No, ¡No diré nada gratis!",,,"Non, monsieur, je ne vous dirai rien si je ne me fais pas payer!","Nem uram, tudja, semmi sincs ingyen.","No signore, non ti dirò nulla a gratis!",いやいや、タダでは話せないな!,"죄송합니다만, 전 아무것도 무료로 말해주지 않을 겁니다!","Nie panie, nie będę ci mówił niczego za darmo!","Não senhor, não vou te dizer nada de graça!",,,"Нет, товарищ! Даром — только за амбаром!","Не господине, нећу ништа да ти кажем џабе!" +You've wrung the last bit of gossip out of me already!,TXT_DLG_SCRIPT02_D3032_YOUVE,,,,"Už jsi ze mě vyždímal všechny klepy, co jsem měl!",Du hast bereits das letzte bisschen Klatsch aus mir herausgequetscht!,,,¡Ya me has sacado hasta el último chisme!,,,Vous m'avez tiré tous les vers du nez!,Már a legutolsó pletykát is kiszedted belőlem.,Hai già strizzato l'ultimo pezzo di gossip da me!,既にイキのいい噂は聞かせたぞ!,가십거리를 이미 다 털어놓았습니다. 더 뭘 바랍니까?,Wyciągnąłeś już ze mnie ostatnią plotkę!,Você já ouviu todos os boatos que posso te contar!,,,"Ты уже вытянул из меня всё, что только можно!",Већ сте исцедили задњу трунку трача из мене! +What can I get for you?,TXT_DLG_SCRIPT02_D4548_WHATC,,,,Co si budeš přát?,Was kann ich für dich tun?,,,¿Qué puedo ofrecerte?,,,Qu'est ce que je peux pour vous?,Mit tehetnék érted?,Cosa posso offrirti?,何か必要か?,무엇을 구매하고 싶어?,Co mogę dla ciebie zrobić?,Como posso te ajudar?,,,Что я могу тебе предложить?,Шта ти могу учинити? +Assault gun,TXT_RPLY0_SCRIPT02_D4548_ASSAU,,,,Útočnou pušku,Sturmgewehr,,,Fusil de Asalto,,,Fusil d'Assaut,Gépfegyver,Fucile d'assalto,アサルトガン,돌격소총,Karabin Szturmowy,Fuzil de assalto,,,Штурмовую винтовку,Аутоматска пушка +Here you go.,TXT_RYES0_SCRIPT02_D4548_HEREY,,,,Tu máš.,Bitte sehr!,,,Aquí tienes.,,,Voilà pour vous.,Tessék,Ecco per te.,毎度あり。,여기 있어.,Proszę bardzo.,Aqui está.,,,Держи.,Изволи. +You can't afford that right now.,TXT_RNO0_SCRIPT02_D4548_YOUCA,,,,Tu si teď nemůžeš dovolit.,Das kannst du dir momentan nicht leisten.,,,No puedes adquirir esto ahora.,,,Vous n'avez pas assez d'argent.,Erre most nincs pénzed.,Non hai abbastanza soldi.,今それを買える余裕は無い。,그걸 사기엔 여유가 없는 것 같네.,Nie możesz teraz tego kupić.,Você não pode comprar isso no momento.,,,Ты пока не можешь себе это позволить.,Немате довољно новца за то сада. +Clip of bullets,TXT_RPLY1_SCRIPT02_D4548_CLIPO,,,,Zásobník nábojů,Gewehrmunition.,,,Cargador con balas,,,Chargeur de balles,Egy tár töltény,Un caricatore di proiettili,銃弾倉,돌격소총 탄창,Magazynek,Carregador de balas,,,Обойму патронов,Шанжер +Thanks.,TXT_RYES1_SCRIPT02_D4548_THANK,,,,Díky.,Danke.,,,Gracias.,,,Merci.,Köszi.,Grazie.,どうも。,고맙다!,Dzięki.,Obrigado.,,,Благодарю.,Хвала. +"Come on, 10 gold.",TXT_RNO1_SCRIPT02_D4548_COMEO,,,,"No tak, je to deset zlatých.","Na komm, 10 Gold.",,,¡Vamos! 10 de oro.,,,"Allez, 10 pièces.","Rajta, 10 aranyat.","Avanti, 10 pezzi d'oro.",頼むぜ、10ゴールドだぞ。,10 골드만 있으면 되는데...,"No weź, 10 monet.","Vamos lá, 10 de ouro.",,,"Ну же, 10 золотых.","Хајде, 10 златника." +Ammo box,TXT_RPLY2_SCRIPT02_D4548_AMMOB,,,,Krabici nábojů,Munitionsschachtel,,,Caja de balas,,,Bôite de balles,Egy doboz lőszer,Scatole di munizioni,銃弾倉箱,돌격소총 탄약 박스,Pudło z amunicją,Caixa de balas,,,Коробку патронов,Кутија муниције +Here's your ammo.,TXT_RYES2_SCRIPT02_D4548_HERES,,,,Tady je tvá munice.,Hier ist deine Munition.,,,Aquí tienes tus municiones.,,,Voilà vos munitions.,Itt a lőszered.,Ecco le tue munizioni.,これでアンタのブツだ。,탄약 여기 있어!,Oto twoja amunicja.,Aqui está a sua munição.,,,Вот твои патроны.,Ево ти муниције. +Maybe some other time.,TXT_RNO2_SCRIPT02_D4548_MAYBE,,,,Možná někdy jindy.,Vielleicht ein anderes Mal.,,,Tal vez en otra ocasión.,,,Peut être une autre fois.,Talán majd máskor.,Forse qualche altra volta.,また後でな。,아마도 나중에...,Może innym razem.,Talvez outra hora.,,,"Может, в другой раз.",Можда неки други пут. Good news from the Front for a change. Macil sent you for a reward and training. He's instructed me to give them to you.,TXT_DLG_SCRIPT02_D6064_GOODN,,,,"Pro jednou dobré zprávy od Fronty. Macil tě poslal pro odměnu a trénink. Řekl mi, že ti to mám předat.","Gute Nachrichten von der Front zur Abwechslung. Macil lässt dir eine Belohnung und Training zukommen. Er hat mir aufgetragen, es dir zu geben.",,,"Buenas noticias desde el Frente, para variar. Macil mandó una recompensa y entrenamiento para ti. Me solicitó dártelos.",,,Des bonnes nouvelles du Front pour une fois. Macil t'a envoyé pour une récompense et de l'entraînement. Il m'a instruit de te les procurer.,"Jó hírek a Fronttól a változások miatt! Macil jutalom és kiképzés gyanánt küldött. Arra kért, hogy ezeket én adjam át neked.",Buone notizie dal Fronte per una volta. Macil ti ha inviato una ricompensa e allenamento. Mi ha istruito che te li dovevo procurare.,"フロントから朗報だ。 マシルは貴方に報酬と訓練の許可を送った。 -私はそれらを貴方に渡す為に持って来た。","프론트로부터 좋은 소식을 들었어. 마실 사령관님이 보상과 훈련받을 특권을 당신에게 전해주라는군. 이미 준비된 것 같으니, 시작할까?","Dobre wieści od Frontu dla odmiany. Macil wysłał cię po nagrodę i na trening. Poinstruował mnie, aby ci je dostarczyć.",Boas notícias da Frente pra variar. O Macil enviou uma recompensa e treinamento para você. Ele me deu ordens para passá-los a você.,,,"Наконец-то, хорошие новости от Сопротивления. Ты пришёл от Мэйсила за наградой и обучением? Он распорядился, чтобы ты получил их от меня.", -Thanks.,TXT_RPLY0_SCRIPT02_D6064_THANK,,,,Díky.,Danke.,,,Gracias.,,,Merci.,Köszi.,Grazie.,ありがとう。,고맙습니다.,Dzięki.,Obrigado.,,,Спасибо., -Glad to be of service.,TXT_RYES0_SCRIPT02_D6064_GLADT,,,,Rád jsem pomohl.,Es war mir eine Freude dir zu Diensten zu sein,,,Un placer atenderte.,,,Ravi de vous avoir servi.,Szíves örömest segítek.,Felice di essere al servizio.,感謝する。,도와줄 수 있어서 영광이야.,"Cieszę się, że mogłem pomóc.",É um prazer serví-los.,,,Рад помочь., +私はそれらを貴方に渡す為に持って来た。","프론트로부터 좋은 소식을 들었어. 마실 사령관님이 보상과 훈련받을 특권을 당신에게 전해주라는군. 이미 준비된 것 같으니, 시작할까?","Dobre wieści od Frontu dla odmiany. Macil wysłał cię po nagrodę i na trening. Poinstruował mnie, aby ci je dostarczyć.",Boas notícias da Frente pra variar. O Macil enviou uma recompensa e treinamento para você. Ele me deu ordens para passá-los a você.,,,"Наконец-то, хорошие новости от Сопротивления. Ты пришёл от Мэйсила за наградой и обучением? Он распорядился, чтобы ты получил их от меня.",Добре вести са фронта за промену. Мацил те је послао да добијеш награду и тренинг. Наредио ми је да ти их дам. +Thanks.,TXT_RPLY0_SCRIPT02_D6064_THANK,,,,Díky.,Danke.,,,Gracias.,,,Merci.,Köszi.,Grazie.,ありがとう。,고맙습니다.,Dzięki.,Obrigado.,,,Спасибо.,Хвала. +Glad to be of service.,TXT_RYES0_SCRIPT02_D6064_GLADT,,,,Rád jsem pomohl.,Es war mir eine Freude dir zu Diensten zu sein,,,Un placer atenderte.,,,Ravi de vous avoir servi.,Szíves örömest segítek.,Felice di essere al servizio.,感謝する。,도와줄 수 있어서 영광이야.,"Cieszę się, że mogłem pomóc.",É um prazer serví-los.,,,Рад помочь.,Драго ми је да сам од помоћи. "All right, here's a few pointers on what to do: don't get in the way of Crusaders: firing short bursts from your assault gun keeps it on target.",TXT_DLG_SCRIPT02_D7580_ALLRI,,,,"Jistě, tady je pár rad, co dělat:","Also, hier hast du ein paar Hinweise: Gerate nicht ins Visier der Ordensritter: Wenn du kurze Feuerstöße mit deinem Sturmgewehr abgibst, triffst du besser.",,,"De acuerdo, aquí algunos consejos: No te cruces en el camino de los Cruzados: disparar rachas cortas del Fusil de Asalto lo mantendrá en el objetivo.",,,"Bon, voilà quelques conseils sur ce que tu devrais faire: Ne vas pas te mêler aux croisés. Tirer en courte rafales avec le fusil d'assaut te permet de rester sur ta cible.","Na jól van, itt egy kis útbaigazítás neked: Ne kerülj a keresztesek útjába: Gépfegyveredből rövid sorozatokat leadva pontosabban tudsz célozni.","Bene, ecco alcuni consigli sul da farsi: non mischiarti ai Crociati: scattare a raffiche con il tuo fucile d'assalto ti tiene sul bersaglio.","オーライ、 それで何をすべきかについて説明がある :クルセイダーの斜線に立つな -:アサルトガンを遠くから的に向かって撃て",좋아. 먼저 배워둬야 할 것은: 크루세이더를 제압하기 위해선 가능한 한 멀리서 상대해야 해. 그리고 돌격소총의 방아쇠를 한 번 누르면 정확한 3 점발사격이 가능하지. ,"W porządku, oto kilka wskazówek co trzeba robić: nie wchodzić w drogę Krzyżowcom: strzelanie krótkimi seriami z karabinu szturmowego utrzymuje cel.","Muito bem, tenho alguns conselhos pra te dar: não se meta na frente dos Cruzados: atire rajadas curtas com o seu fuzil de assalto para ter mais precisão.",,,"Отлично, вот несколько советов: не попадайся под ноги крестоносцам. Из штурмовой винтовки лучше всего стрелять короткими очередями.", -Is that it?,TXT_RPLY0_SCRIPT02_D7580_ISTHA,,,,To je všechno?,War es das?,,,¿Eso es todo?,,,C'est tout?,Ennyi?,Questo è?,そうなのか?,그게 답니까?,To wszystko?,Só isso?,,,И всё?, -"Look, you'll learn more later.",TXT_RYES0_SCRIPT02_D7580_LOOKY,,,,"Hele, víc se toho naučíš pak.",Fürs Erste ja. Du wirst später noch mehr lernen.,,,"Mira, aprenderás más tarde.",,,Tu en apprendras davantage plus tard.,"Nézd, később majd többet fogsz tanulni.","Guarda, imparerai di più dopo.",良し、後でもっと学べるぞ。,나중에 알려줄게.,"Zobacz, później nauczysz się więcej.","Olha, você vai aprender mais depois.",,,"Позже узнаешь больше, хорошо?", +:アサルトガンを遠くから的に向かって撃て",좋아. 먼저 배워둬야 할 것은: 크루세이더를 제압하기 위해선 가능한 한 멀리서 상대해야 해. 그리고 돌격소총의 방아쇠를 한 번 누르면 정확한 3 점발사격이 가능하지. ,"W porządku, oto kilka wskazówek co trzeba robić: nie wchodzić w drogę Krzyżowcom: strzelanie krótkimi seriami z karabinu szturmowego utrzymuje cel.","Muito bem, tenho alguns conselhos pra te dar: não se meta na frente dos Cruzados: atire rajadas curtas com o seu fuzil de assalto para ter mais precisão.",,,"Отлично, вот несколько советов: не попадайся под ноги крестоносцам. Из штурмовой винтовки лучше всего стрелять короткими очередями.","Добро, ево пар смерница за тебе: +немој стајати на пут Крсташима:испаљивање кратких рафала из јуришног оружја држи га на мети +" +Is that it?,TXT_RPLY0_SCRIPT02_D7580_ISTHA,,,,To je všechno?,War es das?,,,¿Eso es todo?,,,C'est tout?,Ennyi?,Questo è?,そうなのか?,그게 답니까?,To wszystko?,Só isso?,,,И всё?,Да ли је то све? +"Look, you'll learn more later.",TXT_RYES0_SCRIPT02_D7580_LOOKY,,,,"Hele, víc se toho naučíš pak.",Fürs Erste ja. Du wirst später noch mehr lernen.,,,"Mira, aprenderás más tarde.",,,Tu en apprendras davantage plus tard.,"Nézd, később majd többet fogsz tanulni.","Guarda, imparerai di più dopo.",良し、後でもっと学べるぞ。,나중에 알려줄게.,"Zobacz, później nauczysz się więcej.","Olha, você vai aprender mais depois.",,,"Позже узнаешь больше, хорошо?","Гледај, учићеш више касније." "I think I can convert a flamethrower from one of the Crusaders for use by a human. Oh, anything else I can get you?",TXT_DLG_SCRIPT02_D9096_ITHIN,,,,"Myslím, že bych mohl předělat plamenomet z jednoho z těch Křižáků pro lidské použití. Oh, mohu ti sehnat ještě něco?","Ich denke ich kann einen Flammenwerfer von einen der Ordensritter umbauen, damit ein Mensch ihn benutzen kann. Oh, kann ich dir sonst noch etwas besorgen?",,,"Creo que puedo convertir un lanzallamas de uno de los cruzados para que un humano pueda utilizarlo. Oh, ¿Algo más que pueda ofrecerte?",,,Je crois que je peux convertir un lance-flammes de croisé pour être utilisé par un humain. Je peux faire quelque chose d'autre pour vous?,"Azt hiszem, ha az egyik keresztesről leszednénk egy lángszórót, azt át tudnám alakítani emberi használatra. Ó, még valamit tehetek érted?","Penso posso convertire un lanciafiamme da uno dei Crociati per essere usato da un umano. Oh, desideri qualcos'altro?","俺ならクルセイダー専用の火炎放射器を 誰でも使える様に作り変えられるだろう。 ああ、他に何か必要か?",크루세이더가 사용하는 화염방사기를 사람들이 다룰 수 있도록 개조할 수 있을 것 같아. 그래서... 뭘 원해?,"Myślę, że mogę przerobić miotacz ognia jednego z Krzyżowców, by mógł z niego korzystać człowiek. Oh, czy mogę coś jeszcze dla ciebie zrobić?","Acho que eu consigo converter o lança-chamas de um dos Cruzados para ser usado por um humano. Ah, posso te ajudar com mais alguma coisa?",,,"Думаю, я смогу приспособить огнемёт для ручного использования. А, ты что-то ещё хотел? -", -Flamethrower.,TXT_RPLY0_SCRIPT02_D9096_FLAME,,,,Plamenomet.,Flammenwerfer,,,Lanzallamas.,,,Lance-flammes.,Lángszóró.,Lanciafiamme.,火炎放射器,화염방사기?,Miotacz Ognia,Lança-chamas.,,,Огнемёт., -"I knew that'd work! Here you go, take her for a spin!",TXT_RYES0_SCRIPT02_D9096_IKNEW,,,,"Věděl jsem, že to bude fungovat! Tady máš, pořádně ji rozpal!","Ich wusste das würde funktionieren! Bitte sehr, probiere ihn mal aus!",,,"¡Sabía que eso funcionaría! Aquí tienes, ¡Dale un paseo!","¡Sabía que eso funcionaría! Aquí tienes, ¡Dale una vuelta!",,Je savais que ça marcherait! Prends-le et va donc l'essayer!,"Tudtam, hogy ez működni fog! Nesze vidd el egy körre!",Lo sapevo che avrebbe funzionato! Prendila e vai a provarla!,よくやってくれた! どうよ、このアツアツな子を!,"역시 잘 작동할 줄 알았어! 여기, 화염방사기야. 한번 놈들에게 사용해봐!","Wiedziałem, że zadziała! Masz, przetestuj ją!","Eu sabia que daria certo! Toma, leva pra testar!",,,"Я и не сомневался, что всё получится! Держи, испробуй его на ком-нибудь!", -"Listen, I can't make anything without the right parts!",TXT_RNO0_SCRIPT02_D9096_LISTE,,,,"Poslyš, bez těch správných komponent ti nic nesestavím!","Hör zu, ohne die richtigen Teile kann ich dir nichts machen!",,,"Escucha, ¡No puedo hacer nada sin las partes correctas!",,,"Ecoute, je ne peux pas faire quoi que ce soit si je n'ai pas les pièces dont j'ai besoin!","Figyu, az alkatrészek nélkül semmit sem tudok tenni.","Senti, non posso creare nulla senza i giusti pezzi!",部品が無ければ何も出来ない!,"이봐, 제대로 된 부품 없이는 아무 것도 할 수 없다고!","Słuchaj, nie mogę nic zrobić bez właściwych części!","Escuta, eu não consigo fazer qualquer coisa sem as peças certas!",,,"Слушай, у меня нет нужных деталей!", -Assault gun,TXT_RPLY1_SCRIPT02_D9096_ASSAU,,,,Útočnou pušku,Sturmgewehr,,,Fusil de Asalto,,,Fusil d'Assaut,Gépfegyver,Fucile d'assalto,アサルトガン,돌격소총,Karabin Szturmowy,Fuzil de assalto,,,Штурмовую винтовку, -"Well, here you go sir!",TXT_RYES1_SCRIPT02_D9096_WELLH,,,,"Tak tady máte, pane!","Alles klar, bitteschön!",,,"Bien, ¡Aquí tiene, caballero!",,,"Voilà pour vous, monsieur!","Nos, íme, lásson csodát Uram!",Ecco qua signore!,ほら、毎度あり!,여기 대령이요!,Oto jest proszę pana!,"Bem, aqui está, senhor!",,,Забирай!, -"Obviously, you can't afford that right now.",TXT_RNO1_SCRIPT02_D9096_OBVIO,,,,"Je nabíledni, že tohle si teď nemůžeš dovolit.",Offensichtlich kannst du dir das im Moment nicht leisten.,,,"Obviamente, no puedes adquirir esto por ahora.",,,"Manifestement, vous ne pouvez pas vous l'offrir.","Egyértelmű, hogy ezt nem tudod most kifizetni.","Ovviamente, ora non hai abbastanza soldi.",明らかに、今買える余裕は無い。,"당연하겠지만, 아직 가질 수가 없겠네.","Oczywiście, nie możesz teraz tego kupić.",Obviamente você não pode comprar isso agora.,,,"Похоже, тебе это не по карману.", -Clip of bullets,TXT_RPLY2_SCRIPT02_D9096_CLIPO,,,,Zásobník nábojů,Gewehrmunition.,,,Cargador con balas,,,Chargeur de balles,Egy tár töltény.,Un caricatore di proiettili,銃弾倉,돌격소총 탄창,Magazynek,Carregador de balas,,,Обойму патронов, -Thanks.,TXT_RYES2_SCRIPT02_D9096_THANK,,,,Díky.,Danke.,,,Gracias.,,,Merci.,Köszi.,Grazie.,どうも。,고마워.,Dzięki.,Obrigado.,,,Благодарю., -"Come on, 10 gold.",TXT_RNO2_SCRIPT02_D9096_COMEO,,,,"No tak, je to deset zlatých.","Na komm, 10 Gold.",,,¡Vamos! 10 de oro.,,,"Allez, 10 pièces.","Rajta, 10 arnyat.","Avanti, 10 pezzi d'oro.",頼むぜ、10ゴールドだぞ。,"이봐, 그건 10 골드짜리라고.","No weź, 10 monet.","Vamos lá, 10 de ouro.",,,"Ну же, 10 золотых.", -Ammo box,TXT_RPLY3_SCRIPT02_D9096_AMMOB,,,,Krabici nábojů,Munitionsschachtel,,,Caja de balas,,,Bôite de balles,Lőszeres doboz.,Scatole di munizioni,弾薬箱,돌격소총 탄약 박스,Pudło z amunicją,Caixa de balas,,,Коробку патронов, -Here's your ammo.,TXT_RYES3_SCRIPT02_D9096_HERES,,,,Tady je tvá munice.,Hier ist deine Munition.,,,Aquí tienes tus municiones.,,,Voilà vos munitions.,Íme a lőszered.,Ecco le tue munizioni.,これでアンタのブツだ。,여기 탄약.,Oto twoja amunicja.,Aqui está a sua munição.,,,Вот твои патроны., -Maybe some other time. Goodbye!,TXT_RNO3_SCRIPT02_D9096_MAYBE,,,,Možná někdy jindy. Nashledanou!,Vielleicht ein anderes mal. Auf Wiedersehen!,,,Tal vez en otra ocasión. ¡Adiós!,,,"Peut être une autre fois, au revoir!",Talán majd valamikor máskor. Viszontlátásra!,Forse qualche altra volta. Arrivederci!,またの機会に、じゃあな!,다음번에 돈을 챙기고 예기하자. 잘 가!,Może innym razem. Do widzenia!,Talvez outra hora. Até mais!,,,"Может, в другой раз. Пока!", +","Мислим да могу претворити бацач пламена са једног од Крсташа за употребу од стране човјека. Ох, још нешто што могу да ти донесем?" +Flamethrower.,TXT_RPLY0_SCRIPT02_D9096_FLAME,,,,Plamenomet.,Flammenwerfer,,,Lanzallamas.,,,Lance-flammes.,Lángszóró.,Lanciafiamme.,火炎放射器,화염방사기?,Miotacz Ognia,Lança-chamas.,,,Огнемёт.,Бацач пламена +"I knew that'd work! Here you go, take her for a spin!",TXT_RYES0_SCRIPT02_D9096_IKNEW,,,,"Věděl jsem, že to bude fungovat! Tady máš, pořádně ji rozpal!","Ich wusste das würde funktionieren! Bitte sehr, probiere ihn mal aus!",,,"¡Sabía que eso funcionaría! Aquí tienes, ¡Dale un paseo!","¡Sabía que eso funcionaría! Aquí tienes, ¡Dale una vuelta!",,Je savais que ça marcherait! Prends-le et va donc l'essayer!,"Tudtam, hogy ez működni fog! Nesze vidd el egy körre!",Lo sapevo che avrebbe funzionato! Prendila e vai a provarla!,よくやってくれた! どうよ、このアツアツな子を!,"역시 잘 작동할 줄 알았어! 여기, 화염방사기야. 한번 놈들에게 사용해봐!","Wiedziałem, że zadziała! Masz, przetestuj ją!","Eu sabia que daria certo! Toma, leva pra testar!",,,"Я и не сомневался, что всё получится! Держи, испробуй его на ком-нибудь!","Знао сам да ће то успети! Изволи, испробај је мало!" +"Listen, I can't make anything without the right parts!",TXT_RNO0_SCRIPT02_D9096_LISTE,,,,"Poslyš, bez těch správných komponent ti nic nesestavím!","Hör zu, ohne die richtigen Teile kann ich dir nichts machen!",,,"Escucha, ¡No puedo hacer nada sin las partes correctas!",,,"Ecoute, je ne peux pas faire quoi que ce soit si je n'ai pas les pièces dont j'ai besoin!","Figyu, az alkatrészek nélkül semmit sem tudok tenni.","Senti, non posso creare nulla senza i giusti pezzi!",部品が無ければ何も出来ない!,"이봐, 제대로 된 부품 없이는 아무 것도 할 수 없다고!","Słuchaj, nie mogę nic zrobić bez właściwych części!","Escuta, eu não consigo fazer qualquer coisa sem as peças certas!",,,"Слушай, у меня нет нужных деталей!","Слушај, не могу ништа да направим без одговарајућих делова!" +Assault gun,TXT_RPLY1_SCRIPT02_D9096_ASSAU,,,,Útočnou pušku,Sturmgewehr,,,Fusil de Asalto,,,Fusil d'Assaut,Gépfegyver,Fucile d'assalto,アサルトガン,돌격소총,Karabin Szturmowy,Fuzil de assalto,,,Штурмовую винтовку,Аутоматска пушка +"Well, here you go sir!",TXT_RYES1_SCRIPT02_D9096_WELLH,,,,"Tak tady máte, pane!","Alles klar, bitteschön!",,,"Bien, ¡Aquí tiene, caballero!",,,"Voilà pour vous, monsieur!","Nos, íme, lásson csodát Uram!",Ecco qua signore!,ほら、毎度あり!,여기 대령이요!,Oto jest proszę pana!,"Bem, aqui está, senhor!",,,Забирай!,"Па, изволите господине!" +"Obviously, you can't afford that right now.",TXT_RNO1_SCRIPT02_D9096_OBVIO,,,,"Je nabíledni, že tohle si teď nemůžeš dovolit.",Offensichtlich kannst du dir das im Moment nicht leisten.,,,"Obviamente, no puedes adquirir esto por ahora.",,,"Manifestement, vous ne pouvez pas vous l'offrir.","Egyértelmű, hogy ezt nem tudod most kifizetni.","Ovviamente, ora non hai abbastanza soldi.",明らかに、今買える余裕は無い。,"당연하겠지만, 아직 가질 수가 없겠네.","Oczywiście, nie możesz teraz tego kupić.",Obviamente você não pode comprar isso agora.,,,"Похоже, тебе это не по карману.",Очигледно немате довољно новца за то сада. +Clip of bullets,TXT_RPLY2_SCRIPT02_D9096_CLIPO,,,,Zásobník nábojů,Gewehrmunition.,,,Cargador con balas,,,Chargeur de balles,Egy tár töltény.,Un caricatore di proiettili,銃弾倉,돌격소총 탄창,Magazynek,Carregador de balas,,,Обойму патронов,Исјечак метака +Thanks.,TXT_RYES2_SCRIPT02_D9096_THANK,,,,Díky.,Danke.,,,Gracias.,,,Merci.,Köszi.,Grazie.,どうも。,고마워.,Dzięki.,Obrigado.,,,Благодарю.,Хвала. +"Come on, 10 gold.",TXT_RNO2_SCRIPT02_D9096_COMEO,,,,"No tak, je to deset zlatých.","Na komm, 10 Gold.",,,¡Vamos! 10 de oro.,,,"Allez, 10 pièces.","Rajta, 10 arnyat.","Avanti, 10 pezzi d'oro.",頼むぜ、10ゴールドだぞ。,"이봐, 그건 10 골드짜리라고.","No weź, 10 monet.","Vamos lá, 10 de ouro.",,,"Ну же, 10 золотых.","Хајде, 10 златника." +Ammo box,TXT_RPLY3_SCRIPT02_D9096_AMMOB,,,,Krabici nábojů,Munitionsschachtel,,,Caja de balas,,,Bôite de balles,Lőszeres doboz.,Scatole di munizioni,弾薬箱,돌격소총 탄약 박스,Pudło z amunicją,Caixa de balas,,,Коробку патронов,Сандук са муницијом +Here's your ammo.,TXT_RYES3_SCRIPT02_D9096_HERES,,,,Tady je tvá munice.,Hier ist deine Munition.,,,Aquí tienes tus municiones.,,,Voilà vos munitions.,Íme a lőszered.,Ecco le tue munizioni.,これでアンタのブツだ。,여기 탄약.,Oto twoja amunicja.,Aqui está a sua munição.,,,Вот твои патроны.,Изволи муницију +Maybe some other time. Goodbye!,TXT_RNO3_SCRIPT02_D9096_MAYBE,,,,Možná někdy jindy. Nashledanou!,Vielleicht ein anderes mal. Auf Wiedersehen!,,,Tal vez en otra ocasión. ¡Adiós!,,,"Peut être une autre fois, au revoir!",Talán majd valamikor máskor. Viszontlátásra!,Forse qualche altra volta. Arrivederci!,またの機会に、じゃあな!,다음번에 돈을 챙기고 예기하자. 잘 가!,Może innym razem. Do widzenia!,Talvez outra hora. Até mais!,,,"Может, в другой раз. Пока!",Можда неки други пут. Довиђења! "Now that you have the flamethrower, is there anything else I can get you?",TXT_DLG_SCRIPT02_D10612_NOWTH,,,,"Teď když máš ten plamenomet, můžu pro tebe udělat něco jiného?","Jetzt wo du den Flammenwerfer hast, gibt es etwas anderes was ich dir besorgen kann?",,,"Ahora que tienes el lanzallamas, ¿Hay algo más que pueda ofrecerte?",,,"Maintenant que vous avez le lance-flammes, est-ce que je peux faire quelque chose pour vous?","Most, hogy megkaptad a lángszórót is, tehetek még valamit érted?","Ora che hai il lanciafiamme, c'è qualcos'altro che ti posso dare?","火炎放射器を手に入れたが、 -他に必要な物はあるか?","이제 화염방사기를 얻었으니, 더 원하는 물품이 있나?","Jak już masz miotacz ognia, mogę coś jeszcze dla ciebie zrobić?","Agora que você tem o lança-chamas, deseja mais alguma coisa?",,,"Теперь, когда у тебя есть огнемёт, могу я ещё чем-нибудь тебе помочь?", -Assault gun,TXT_RPLY0_SCRIPT02_D10612_ASSAU,,,,Útočnou pušku,Sturmgewehr,,,Fusil de Asalto,,,Fusil d'Assaut,Gépfegyver,Fucile d'assalto,アサルトガン,돌격소총,Karabin Szturmowy,Fuzil de assalto,,,Штурмовую винтовку, -Here you go.,TXT_RYES0_SCRIPT02_D10612_HEREY,,,,Tu máš.,Bitte sehr!,,,Aquí tienes.,,,Voilà pour vous.,Itt is van!,Ecco qua.,毎度あり。,여기 있어.,Proszę bardzo.,Aqui está.,,,Забирай!, -You can't afford that right now.,TXT_RNO0_SCRIPT02_D10612_YOUCA,,,,Tu si teď nemůžeš dovolit.,Das kannst du dir im Moment nicht leisten.,,,No puedes adquirir esto ahora.,,,Vous n'avez pas assez d'argent.,Erre jelenleg nincs pénzed.,Non hai abbastanza soldi.,今それを買える余裕は無い。,그럴 여유가 전혀 없는 것 같은데 말이지.,Nie możesz teraz tego kupić.,Você não pode comprar isso no momento.,,,"Похоже, тебе это не по карману.", -Clip of bullets,TXT_RPLY1_SCRIPT02_D10612_CLIPO,,,,Zásobník nábojů,Gewehrmunition.,,,Cargador con balas,,,Chargeur de balles,egy tárnyi töltény,Un caricatore di proiettili,銃弾倉,돌격소총 탄창,Magazynek,Carregador de balas,,,Обойму патронов, -Thanks.,TXT_RYES1_SCRIPT02_D10612_THANK,,,,Díky.,Danke.,,,Gracias.,,,Merci.,Köszi.,Grazie.,どうも。,고마워.,Dzięki.,Obrigado.,,,Благодарю., -"Come on, 10 gold.",TXT_RNO1_SCRIPT02_D10612_COMEO,,,,"No tak, je to deset zlatých.","Komm schon, 10 Gold.",,,¡Vamos! 10 de oro.,,,"Allez, 10 pièces.","Gyerünk, 10 aranyat.","Avanti, 10 pezzi d'oro.",頼むぜ、10ゴールドだぞ。,"이봐, 10 골드를 먼저 달라고.","No weź, 10 monet.","Vamos lá, 10 de ouro.",,,"Ну же, 10 золотых.", -Ammo box,TXT_RPLY2_SCRIPT02_D10612_AMMOB,,,,Krabici nábojů,Munitionsschachtel,,,Caja de balas,,,Boîte de balles,Töltényes doboz,Scatole di munizioni,銃弾倉箱,돌격소총 탄약 박스,Pudło z amunicją,Caixa de balas,,,Коробку патронов, -Here's your ammo.,TXT_RYES2_SCRIPT02_D10612_HERES,,,,Tady je tvá munice.,Hier ist deine Munition.,,,Aquí tienes tus municiones.,,,Voilà vos munitions.,Itt a töltényed.,Ecco le tue munizioni.,これでアンタのブツだ。,여기 네 탄약이야.,Oto twoja amunicja.,Aqui está a sua munição.,,,Вот твои патроны., -Maybe some other time.,TXT_RNO2_SCRIPT02_D10612_MAYBE,,,,Možná někdy jindy.,Vielleicht ein anderes mal.,,,Tal vez en otra ocasión.,,,Peut être une autre fois.,Talán Máskor.,Forse un'altra volta.,また後でな。,지금 말고. 아마도 나중에?,Może innym razem.,Talvez outra hora.,,,"Может, в другой раз.", +他に必要な物はあるか?","이제 화염방사기를 얻었으니, 더 원하는 물품이 있나?","Jak już masz miotacz ognia, mogę coś jeszcze dla ciebie zrobić?","Agora que você tem o lança-chamas, deseja mais alguma coisa?",,,"Теперь, когда у тебя есть огнемёт, могу я ещё чем-нибудь тебе помочь?","Сада када имаш бацач пламена, има ли још нешто шта ти могу донети?" +Assault gun,TXT_RPLY0_SCRIPT02_D10612_ASSAU,,,,Útočnou pušku,Sturmgewehr,,,Fusil de Asalto,,,Fusil d'Assaut,Gépfegyver,Fucile d'assalto,アサルトガン,돌격소총,Karabin Szturmowy,Fuzil de assalto,,,Штурмовую винтовку,Аутоматска пушка +Here you go.,TXT_RYES0_SCRIPT02_D10612_HEREY,,,,Tu máš.,Bitte sehr!,,,Aquí tienes.,,,Voilà pour vous.,Itt is van!,Ecco qua.,毎度あり。,여기 있어.,Proszę bardzo.,Aqui está.,,,Забирай!,Изволи. +You can't afford that right now.,TXT_RNO0_SCRIPT02_D10612_YOUCA,,,,Tu si teď nemůžeš dovolit.,Das kannst du dir im Moment nicht leisten.,,,No puedes adquirir esto ahora.,,,Vous n'avez pas assez d'argent.,Erre jelenleg nincs pénzed.,Non hai abbastanza soldi.,今それを買える余裕は無い。,그럴 여유가 전혀 없는 것 같은데 말이지.,Nie możesz teraz tego kupić.,Você não pode comprar isso no momento.,,,"Похоже, тебе это не по карману.",Не можете то сада себи приуштити. +Clip of bullets,TXT_RPLY1_SCRIPT02_D10612_CLIPO,,,,Zásobník nábojů,Gewehrmunition.,,,Cargador con balas,,,Chargeur de balles,egy tárnyi töltény,Un caricatore di proiettili,銃弾倉,돌격소총 탄창,Magazynek,Carregador de balas,,,Обойму патронов,Исјечак метака +Thanks.,TXT_RYES1_SCRIPT02_D10612_THANK,,,,Díky.,Danke.,,,Gracias.,,,Merci.,Köszi.,Grazie.,どうも。,고마워.,Dzięki.,Obrigado.,,,Благодарю.,Хвала. +"Come on, 10 gold.",TXT_RNO1_SCRIPT02_D10612_COMEO,,,,"No tak, je to deset zlatých.","Komm schon, 10 Gold.",,,¡Vamos! 10 de oro.,,,"Allez, 10 pièces.","Gyerünk, 10 aranyat.","Avanti, 10 pezzi d'oro.",頼むぜ、10ゴールドだぞ。,"이봐, 10 골드를 먼저 달라고.","No weź, 10 monet.","Vamos lá, 10 de ouro.",,,"Ну же, 10 золотых.","Хајде, 10 златника." +Ammo box,TXT_RPLY2_SCRIPT02_D10612_AMMOB,,,,Krabici nábojů,Munitionsschachtel,,,Caja de balas,,,Boîte de balles,Töltényes doboz,Scatole di munizioni,銃弾倉箱,돌격소총 탄약 박스,Pudło z amunicją,Caixa de balas,,,Коробку патронов,Сандук са муницијом +Here's your ammo.,TXT_RYES2_SCRIPT02_D10612_HERES,,,,Tady je tvá munice.,Hier ist deine Munition.,,,Aquí tienes tus municiones.,,,Voilà vos munitions.,Itt a töltényed.,Ecco le tue munizioni.,これでアンタのブツだ。,여기 네 탄약이야.,Oto twoja amunicja.,Aqui está a sua munição.,,,Вот твои патроны.,Изволи муницију. +Maybe some other time.,TXT_RNO2_SCRIPT02_D10612_MAYBE,,,,Možná někdy jindy.,Vielleicht ein anderes mal.,,,Tal vez en otra ocasión.,,,Peut être une autre fois.,Talán Máskor.,Forse un'altra volta.,また後でな。,지금 말고. 아마도 나중에?,Może innym razem.,Talvez outra hora.,,,"Может, в другой раз.",Можда неки други пут. "Now that you have the flamethrower, is there anything else I can get you?",TXT_DLG_SCRIPT02_D12128_NOWTH,,,,"Teď když máš ten plamenomet, můžu pro tebe udělat něco jiného?","Jetzt wo du den Flammenwerfer hast, gibt es etwas anderes was ich dir besorgen kann?",,,"Ahora que tienes el lanzallamas, ¿Hay algo más que pueda ofrecerte?",,,"Maintenant que vous avez le lance-flammes, est-ce que je peux faire quelque chose pour vous?","Most, hogy van egy lángszóród, van bármi más, amivel szolgáhatok?","Ora che hai il lanciafiamme, c'è qualcos'altro che ti posso dare?","火炎放射器を手に入れたが、 -他に必要な物はあるか?","이제 화염방사기를 얻었으니, 더 원하는 물품이 있나?","Jak już masz miotacz ognia, mogę coś jeszcze dla ciebie zrobić?","Agora que você tem o lança-chamas, deseja mais alguma coisa?",,,"Теперь, когда у тебя есть огнемёт, могу я ещё чем-нибудь тебе помочь?", -Clip of bullets,TXT_RPLY0_SCRIPT02_D12128_CLIPO,,,,Zásobník nábojů,Gewehrmunition.,,,Caja de balas,,,Chargeur de balles,egy tárnyi töltény,Un caricatore di proiettili,銃弾倉,돌격소총 탄창,Magazynek,Carregador de balas,,,Обойму патронов, -Thanks.,TXT_RYES0_SCRIPT02_D12128_THANK,,,,Díky.,Danke.,,,Gracias.,,,Merci.,Köszönöm,Grazie.,どうも。,고맙네.,Dzięki.,Obrigado.,,,Благодарю., -"Come on, 10 gold.",TXT_RNO0_SCRIPT02_D12128_COMEO,,,,"No tak, je to deset zlatých.","Na komm, 10 Gold.",,,¡Vamos! 10 de oro.,,,"Allez, 10 pièces.","Gyerünk már, 10 aranyat.","Avanti, 10 pezzi d'oro.",頼むぜ、10ゴールドだぞ。,"이봐, 그건 10 골드라고.","No weź, 10 monet.","Vamos lá, 10 de ouro.",,,"Ну же, 10 золотых.", -Ammo box,TXT_RPLY1_SCRIPT02_D12128_AMMOB,,,,Krabici nábojů,Munitionsschachtel,,,Caja de balas,,,Bôite de balles,Lőszeres doboz.,Scatole di munizioni,銃弾倉箱,돌격소총 탄약 박스,Pudło z amunicją,Caixa de balas,,,Коробку патронов, -Here's your ammo.,TXT_RYES1_SCRIPT02_D12128_HERES,,,,Tady je tvá munice.,Hier ist deine Munition.,,,Aquí tienes tus municiones.,,,Voilà vos munitions.,Itt a lőszered.,Ecco le tue munizioni.,これでアンタのブツだ。,여기 탄약이야.,Oto twoja amunicja.,Aqui está a sua munição.,,,Вот твои патроны., -Maybe some other time.,TXT_RNO1_SCRIPT02_D12128_MAYBE,,,,Možná někdy jindy.,Vielleicht ein anderes Mal.,,,Tal vez en otra ocasión.,,,Peut être une autre fois.,Talán majd máskor.,Forse un'altra volta.,また後でな。,다음 번에 찾아와서 알려줘.,Może innym razem.,Talvez outra hora.,,,"Может, в другой раз.", -Phosphor grenades,TXT_RPLY2_SCRIPT02_D12128_PHOSP,,,,Fosforečné granáty,Phosphorgranaten,,,Granadas de Fósforo,,,Grenades phosphoriques,Foszforgránátok,Granate al Fosforo.,白リングレネード弾,소이 유탄,Fosforowe granaty,Granadas de fósforo,,,Фосфорные гранаты, -Thanks.,TXT_RYES2_SCRIPT02_D12128_THANK,,,,Díky.,Danke.,,,Gracias.,,,Merci.,Kösz.,Grazie.,どうも。,고마워.,Dzięki.,Obrigado.,,,Благодарю., -You don't have enough,TXT_RNO2_SCRIPT02_D12128_YOUDO,,,,Nemáš u sebe dost.,Du hast nicht genug,,,No tienes suficiente,,,Vous n'avez pas assez d'argent.,Nincs elég pénzed more,Non hai abbastanza soldi.,十分な額じゃない,충분치 않아.,Nie wystarczy ci.,Você não tem o suficiente.,,,Тебе не хватает на них., -Poison bolts,TXT_RPLY3_SCRIPT02_D12128_POISO,,,,Otrávené šípy,Giftbolzen,,,Saetas envenenadas,,,Carreaux Empoisonnés,Mérgezett nyilak,Frecce avvelenate.,ポイズンボルト,맹독 볼트,Zatrute bełty,Setas venenosas,,,Отравленные болты, -Worth every gold!,TXT_RYES3_SCRIPT02_D12128_WORTH,,,,Ty se vyplatí!,Jedes Goldstück wert!,,,¡Valen cada moneda de oro!,,,Ca vaut son prix!,Minden aranyat megér,Ne vale la pena!,値段に合う価値だぜ!,아주 가치가 있는 것이지!,Warte każdych pieniędzy!,Vale cada moeda de ouro!,,,Они того стоят!, -"Come on, 200 gold!",TXT_RNO3_SCRIPT02_D12128_COMEO,,,,"No tak, 200 zlatých!","Na komm, 200 Gold!",,,¡Vamos! 200 de oro.,,,"Allez, 200 pièces!","Rajta, 200 arany!","Avanti, 200 pezzi d'oro.",頼むぜ、200ゴールドだぞ!,"이봐, 이건 200 골드라고!","No weź, 200 monet!","Vamos lá, 200 de ouro!",,,"Ну же, 200 золотых!", +他に必要な物はあるか?","이제 화염방사기를 얻었으니, 더 원하는 물품이 있나?","Jak już masz miotacz ognia, mogę coś jeszcze dla ciebie zrobić?","Agora que você tem o lança-chamas, deseja mais alguma coisa?",,,"Теперь, когда у тебя есть огнемёт, могу я ещё чем-нибудь тебе помочь?","Сада када имаш бацач пламена, има ли још нешто шта ти могу донети?" +Clip of bullets,TXT_RPLY0_SCRIPT02_D12128_CLIPO,,,,Zásobník nábojů,Gewehrmunition.,,,Caja de balas,,,Chargeur de balles,egy tárnyi töltény,Un caricatore di proiettili,銃弾倉,돌격소총 탄창,Magazynek,Carregador de balas,,,Обойму патронов,Исјечак метака +Thanks.,TXT_RYES0_SCRIPT02_D12128_THANK,,,,Díky.,Danke.,,,Gracias.,,,Merci.,Köszönöm,Grazie.,どうも。,고맙네.,Dzięki.,Obrigado.,,,Благодарю.,Хвала. +"Come on, 10 gold.",TXT_RNO0_SCRIPT02_D12128_COMEO,,,,"No tak, je to deset zlatých.","Na komm, 10 Gold.",,,¡Vamos! 10 de oro.,,,"Allez, 10 pièces.","Gyerünk már, 10 aranyat.","Avanti, 10 pezzi d'oro.",頼むぜ、10ゴールドだぞ。,"이봐, 그건 10 골드라고.","No weź, 10 monet.","Vamos lá, 10 de ouro.",,,"Ну же, 10 золотых.","Хајде, 10 златника." +Ammo box,TXT_RPLY1_SCRIPT02_D12128_AMMOB,,,,Krabici nábojů,Munitionsschachtel,,,Caja de balas,,,Bôite de balles,Lőszeres doboz.,Scatole di munizioni,銃弾倉箱,돌격소총 탄약 박스,Pudło z amunicją,Caixa de balas,,,Коробку патронов,Сандук са муницијом +Here's your ammo.,TXT_RYES1_SCRIPT02_D12128_HERES,,,,Tady je tvá munice.,Hier ist deine Munition.,,,Aquí tienes tus municiones.,,,Voilà vos munitions.,Itt a lőszered.,Ecco le tue munizioni.,これでアンタのブツだ。,여기 탄약이야.,Oto twoja amunicja.,Aqui está a sua munição.,,,Вот твои патроны.,Изволи муницију. +Maybe some other time.,TXT_RNO1_SCRIPT02_D12128_MAYBE,,,,Možná někdy jindy.,Vielleicht ein anderes Mal.,,,Tal vez en otra ocasión.,,,Peut être une autre fois.,Talán majd máskor.,Forse un'altra volta.,また後でな。,다음 번에 찾아와서 알려줘.,Może innym razem.,Talvez outra hora.,,,"Может, в другой раз.",Можда неки други пут. +Phosphor grenades,TXT_RPLY2_SCRIPT02_D12128_PHOSP,,,,Fosforečné granáty,Phosphorgranaten,,,Granadas de Fósforo,,,Grenades phosphoriques,Foszforgránátok,Granate al Fosforo.,白リングレネード弾,소이 유탄,Fosforowe granaty,Granadas de fósforo,,,Фосфорные гранаты,Фосфор гранате +Thanks.,TXT_RYES2_SCRIPT02_D12128_THANK,,,,Díky.,Danke.,,,Gracias.,,,Merci.,Kösz.,Grazie.,どうも。,고마워.,Dzięki.,Obrigado.,,,Благодарю.,Хвала. +You don't have enough,TXT_RNO2_SCRIPT02_D12128_YOUDO,,,,Nemáš u sebe dost.,Du hast nicht genug,,,No tienes suficiente,,,Vous n'avez pas assez d'argent.,Nincs elég pénzed more,Non hai abbastanza soldi.,十分な額じゃない,충분치 않아.,Nie wystarczy ci.,Você não tem o suficiente.,,,Тебе не хватает на них.,Немаш довољно +Poison bolts,TXT_RPLY3_SCRIPT02_D12128_POISO,,,,Otrávené šípy,Giftbolzen,,,Saetas envenenadas,,,Carreaux Empoisonnés,Mérgezett nyilak,Frecce avvelenate.,ポイズンボルト,맹독 볼트,Zatrute bełty,Setas venenosas,,,Отравленные болты,Отровне стреле +Worth every gold!,TXT_RYES3_SCRIPT02_D12128_WORTH,,,,Ty se vyplatí!,Jedes Goldstück wert!,,,¡Valen cada moneda de oro!,,,Ca vaut son prix!,Minden aranyat megér,Ne vale la pena!,値段に合う価値だぜ!,아주 가치가 있는 것이지!,Warte każdych pieniędzy!,Vale cada moeda de ouro!,,,Они того стоят!,Вредно сваког златника! +"Come on, 200 gold!",TXT_RNO3_SCRIPT02_D12128_COMEO,,,,"No tak, 200 zlatých!","Na komm, 200 Gold!",,,¡Vamos! 200 de oro.,,,"Allez, 200 pièces!","Rajta, 200 arany!","Avanti, 200 pezzi d'oro.",頼むぜ、200ゴールドだぞ!,"이봐, 이건 200 골드라고!","No weź, 200 monet!","Vamos lá, 200 de ouro!",,,"Ну же, 200 золотых!","Хајде, 200 златника!" I can't believe that I got stuck with this duty. They say that something evil came up out of this sewer gate... Now I get to stand here until it comes up again!,TXT_DLG_SCRIPT02_D13644_ICANT,,,,"Nemůžu uvěřit, že jsem zkysnul s touhle prací. Řekli mi, že z téhle brány vylezlo něco zlého... A teď tady mám stát dokud to znovu nevyleze!","Ich kann's nicht glauben dass ich diesen Dienst hier machen muss. Sie haben gesagt, dass etwas Böses aus dem Kanalisationstor gekommen ist... Nun muss ich hier stehen, bis es wieder kommt!",,,No puedo creer que me quedara con esta tarea. Dicen que algo maligno salió de esta compuerta de alcantarilla... ¡Ahora tengo que quedarme aquí hasta que salga de nuevo!,,,J'arrive pas à croire que je me retrouve coincé ici. On me raconte qu'une chose maléfique est sortie de cette barrière des égouts.. Maintenant je me retrouve planté ici jusqu'a ce qu'elle revienne!,"El sem hiszem, hogy még mindig ennél a melónál rekedtem. Úgy hírlik, hogy valami gonosz bukkant fel itt a csatorna kapuja felől... Most addig fogok itt állni, amíg újra fel nem bukkan.",,"私がこの勤務で足止めとは信じられん。 皆が下水ゲートから悪しきものが来たと言う。 -再びドアが開くまで、ここで立ち往生だ!",내가 이 임무에 얽매였다는 게 믿기지 않아요. 사람들이 하수도 입구에서 뭔가 나타났다고 하던데... 이제 그게 다시 올 때까지 여기에서 서 있어야 한다니!,"Nie mogę uwierzyć, że zostałem z tym obowiązkiem. Mówią, że coś złego wyszło z tej bramy do kanałów... Teraz muszę tu stać aż się znów pojawi.",Não acredito que fiquei com essa tarefa. Dizem que algo horrível saiu dessa comporta de esgoto... Agora tenho que ficar aqui até que saia de novo!,,,"Не могу поверить, что застрял на дежурстве. Они говорят, что какая-то пакость поднимается из этого люка... и теперь я должен стоять тут и ждать, пока она не появится снова!", -What gate?,TXT_RPLY0_SCRIPT02_D13644_WHATG,,,,Jaké brány?,Welches Tor?,,,¿Qué compuerta?,,,Quelle barrière?,Milyen Kapu?,,何のゲートだ?,무슨 입구?,Jakiej bramy?,Que comporta?,,,Какого люка?, -The sewer overflow gate.,TXT_RYES0_SCRIPT02_D13644_THESE,,,,Odpadní přepadové brány.,Das Überlauftor der Kanalisation.,,,La compuerta de desagüe de alcantarillado.,,,La barrière de débordement des égouts.,A csatorna kiárasztó kapuja.,,下水道の溢水ゲートだ。,하수도 입구 말이에요.,Bramy do kanałów.,A comporta de transborda de esgoto.,,,Канализационного люка., -Hello friend. What can I get for you?,TXT_DLG_SCRIPT02_D15160_HELLO,,,,"Ahoj, příteli. Co pro tebe můžu udělat?","Hallo, Freund. Was darf es sein?",,,Saludos amigo. ¿Qué puedo ofrecerte?,,,"Bonjour mon ami, que puis-je faire pour vous?","Szervusz barátom, mit tehetnék érted?",,どうも同士よ。何か必要か?,안녕하십니까. 뭘 드릴까요?,Witaj kolego. Co mogę dla ciebie zrobić?,Olá amigo. Como posso ajudá-lo?,,,Здравствуй. Что-нибудь интересует?, -Electric bolts,TXT_RPLY0_SCRIPT02_D15160_ELECT,,,,Elektrické šípy,Elektrische Bolzen,,,Virotes eléctricos,,,Carreaux électriques,Elektromos nyilak.,,エレクトリックボルト,전격 볼트,Elektryczne bełty,Setas elétricas,,,Электрические болты, -You got the electric bolts.,TXT_RYES0_SCRIPT02_D15160_YOUGO,,,,Tady máš své šípy.,Du hast die elektrischen Bolzen erhalten.,,,Obtuviste los virotes eléctricos.,,,Vous recevez les carreaux électriques.,Megkaptad az elektromos nyilakat.,,エレクトリックボルト 入手。,전격 볼트를 받았습니다.,Masz elektryczne bełty.,Você pegou as setas elétricas,,,Вот твои электрические болты., -Ammo satchel,TXT_RPLY1_SCRIPT02_D15160_AMMOS,,,,Brašnu na munici,Munitionstasche,,,Bolsa de Municiones,,,Sacoche de Munitions,Lőszeres zsák.,,弾薬鞄,탄약 배낭,Torba z amunicją,Mochila de munição,,,Ранец для боеприпасов, -No. You don't have what I want for the electric bolts!,TXT_RNO0_SCRIPT02_D15160_NOYOU,,,,"Ne. Nemáš, co za ně chci!","Nein. Du hast nicht das, was ich für die elektrischen Pfeile haben möchte!",,,No. ¡No tienes lo que quiero por las saetas eléctricas!,,,"Non, vous n'avez pas ce qu'il me faut pour les carreaux électriques!","Nem. Neked nincs olyanod, ami nekem kéne az elektromos nyilakért.",,いや。エレクトリックボルトに必要な物が足りない!,전격 볼트의 가격에 해당하는 게 전혀 없구먼!,"Nie. Nie masz tego co ja chcę, by dać ci elektryczne bełty.",Não. Você não tem o que eu quero pelas setas elétricas!,,,Нет. У тебя нет денег на электрические болты!, -No. You don't have what I want for the electric bolts!,TXT_RNO0_SCRIPT02_D16676_NOYOU,,,,"Ne. Nemáš, co za ně chci!","Nein. Du hast nicht das, was ich für die elektrischen Pfeile haben möchte!",,,No. ¡No tienes lo que quiero por las saetas eléctricas!,,,"Non, vous n'avez pas ce qu'il me faut pour les carreaux électriques!","Nem. Neked nincs olyanod, ami nekem kéne az elektromos nyilakért.",,いや。エレクトリックボルトに必要な物が足りない!,전격 볼트의 가격에 맞춰서 흥정하시길.,"Nie. Nie masz tego co ja chcę, by dać ci elektryczne bełty.",Não. Você não tem o que eu quero pelas setas elétricas!,,,Нет. У тебя нет денег на электрические болты!, -Thank you. Anything else?,TXT_RYES1_SCRIPT02_D15160_THANK,,,,Děkuji. Něco dalšího?,Danke. Sonst noch etwas?,,,Gracias. ¿Algo más?,,,"Merci, Autre chose?",Köszönöm. Még valamit?,,ありがとう。 他に何か?,감사합니다. 다른 건 없나요?,Dziękuję. Coś jeszcze?,Obrigado. Mais alguma coisa?,,,Благодарю. Что-нибудь ещё?, -"You can't afford that, good day.",TXT_RNO1_SCRIPT02_D15160_YOUCA,,,,"To si nemůžeš dovolit, přeji hezký den.",Das kannst du dir nicht leisten. Guten Tag.,,,"No puedes adquirir esto, buen día.",,,Vous n'avez pas assez d'argent. Bonne journée.,Ezt most nem tudod kifizetni. Szép napot!,,それを買える余裕は無い、また今度。,가질 수가 없는 것 같으니... 그럼 이만!,"Nie możesz tego kupić, miłego dnia.",Você não pode comprar isso. Tenha um bom dia.,,,У тебя не хватает денег. Всего доброго., -What can I get for you?,TXT_DLG_SCRIPT02_D16676_WHATC,,,,Co bych ti mohl sehnat?,Was darf es sein?,,,¿Qué puedo ofrecerte?,,,Que puis-je faire pour vous?,Mivel szolgáhatok?,,何か必要か?,"무엇을 구매하고 싶으신가요, 좋은 친구여?",Co mogę dla ciebie zrobić?,Como posso te ajudar?,,,Чем могу быть полезен?, -Electric bolts,TXT_RPLY0_SCRIPT02_D16676_ELECT,,,,Elektrické šípy,Elektrische Bolzen,,,Saetas eléctricas,,,Carreaux électriques,Elektromos nyilak.,,エレクトリックボルト,전격 볼트,Elektryczne bełty,Setas elétricas,,,Электрические болты, -You got the electric bolts.,TXT_RYES0_SCRIPT02_D16676_YOUGO,,,,Tady máš své šípy.,Du hast die elektrischen Bolzen erhalten.,,,Obtuviste las saetas eléctricas.,,,Vous recevez les carreaux électriques.,Elektromos nyilakra tettél szert.,,エレクトリックボルト 入手。,전격 볼트를 구매했습니다.,Masz elektryczne bełty.,Você pegou as setas elétricas,,,Вот твои электрические болты., -Ammo satchel,TXT_RPLY1_SCRIPT02_D16676_AMMOS,,,,Brašnu na munici,Munitionstasche,,,Bolsa de Municiones,,,Sacoche de Munitions,Lőszeres hátizsák,,弾薬鞄,탄약 배낭,Torba z amunicją,Mochila de munição,,,Ранец для боеприпасов, -"Thank you, anything else?",TXT_RYES1_SCRIPT02_D16676_THANK,,,,Děkuji. Něco dalšího?,Danke. Sonst noch etwas?,,,Gracias. ¿Algo más?,,,"Merci, Autre chose?","Köszönöm, bármi mást?",,ありがとう。 他に何か?,감사합니다. 다른 건 더 없나요?,"Dziękuję, coś jeszcze?",Obrigado. Mais alguma coisa?,,,Благодарю. Что-нибудь ещё?, -"You can't afford that, good day to you!",TXT_RNO1_SCRIPT02_D16676_YOUCA,,,,"To si nemůžeš dovolit, přeji hezký den.",Das kannst du dir nicht leisten. Guten Tag!,,,"No puedes adquirir esto, buen día.",,,Vous n'avez pas assez d'argent. Bonne journée.,"Nincs elég pénzed arra, további jó napot neked!",,それを買える余裕は無い、また今度。,살 돈이 부족하신가요? 그럼 갈 길 가시길!,"Nie możesz tego kupić, życzę miłego dnia!",Você não pode comprar isso. Um bom dia pra você!,,,У тебя не хватает денег. Всего доброго!, +再びドアが開くまで、ここで立ち往生だ!",내가 이 임무에 얽매였다는 게 믿기지 않아요. 사람들이 하수도 입구에서 뭔가 나타났다고 하던데... 이제 그게 다시 올 때까지 여기에서 서 있어야 한다니!,"Nie mogę uwierzyć, że zostałem z tym obowiązkiem. Mówią, że coś złego wyszło z tej bramy do kanałów... Teraz muszę tu stać aż się znów pojawi.",Não acredito que fiquei com essa tarefa. Dizem que algo horrível saiu dessa comporta de esgoto... Agora tenho que ficar aqui até que saia de novo!,,,"Не могу поверить, что застрял на дежурстве. Они говорят, что какая-то пакость поднимается из этого люка... и теперь я должен стоять тут и ждать, пока она не появится снова!",Не могу да верујем да сам се заглавио на овој дужности. Кажу да је некакво зло изашло из те канализације... Сада морам да стојим овде док се опет не појави! +What gate?,TXT_RPLY0_SCRIPT02_D13644_WHATG,,,,Jaké brány?,Welches Tor?,,,¿Qué compuerta?,,,Quelle barrière?,Milyen Kapu?,,何のゲートだ?,무슨 입구?,Jakiej bramy?,Que comporta?,,,Какого люка?,Каква капија? +The sewer overflow gate.,TXT_RYES0_SCRIPT02_D13644_THESE,,,,Odpadní přepadové brány.,Das Überlauftor der Kanalisation.,,,La compuerta de desagüe de alcantarillado.,,,La barrière de débordement des égouts.,A csatorna kiárasztó kapuja.,,下水道の溢水ゲートだ。,하수도 입구 말이에요.,Bramy do kanałów.,A comporta de transborda de esgoto.,,,Канализационного люка.,Одводни канал за канализацију. +Hello friend. What can I get for you?,TXT_DLG_SCRIPT02_D15160_HELLO,,,,"Ahoj, příteli. Co pro tebe můžu udělat?","Hallo, Freund. Was darf es sein?",,,Saludos amigo. ¿Qué puedo ofrecerte?,,,"Bonjour mon ami, que puis-je faire pour vous?","Szervusz barátom, mit tehetnék érted?",,どうも同士よ。何か必要か?,안녕하십니까. 뭘 드릴까요?,Witaj kolego. Co mogę dla ciebie zrobić?,Olá amigo. Como posso ajudá-lo?,,,Здравствуй. Что-нибудь интересует?,Здраво пријатељу. Шта могу да учиним за тебе? +Electric bolts,TXT_RPLY0_SCRIPT02_D15160_ELECT,,,,Elektrické šípy,Elektrische Bolzen,,,Virotes eléctricos,,,Carreaux électriques,Elektromos nyilak.,,エレクトリックボルト,전격 볼트,Elektryczne bełty,Setas elétricas,,,Электрические болты,Електричне стреле +You got the electric bolts.,TXT_RYES0_SCRIPT02_D15160_YOUGO,,,,Tady máš své šípy.,Du hast die elektrischen Bolzen erhalten.,,,Obtuviste los virotes eléctricos.,,,Vous recevez les carreaux électriques.,Megkaptad az elektromos nyilakat.,,エレクトリックボルト 入手。,전격 볼트를 받았습니다.,Masz elektryczne bełty.,Você pegou as setas elétricas,,,Вот твои электрические болты.,Добио си електричне стреле. +Ammo satchel,TXT_RPLY1_SCRIPT02_D15160_AMMOS,,,,Brašnu na munici,Munitionstasche,,,Bolsa de Municiones,,,Sacoche de Munitions,Lőszeres zsák.,,弾薬鞄,탄약 배낭,Torba z amunicją,Mochila de munição,,,Ранец для боеприпасов,Торба за муницију +No. You don't have what I want for the electric bolts!,TXT_RNO0_SCRIPT02_D15160_NOYOU,,,,"Ne. Nemáš, co za ně chci!","Nein. Du hast nicht das, was ich für die elektrischen Pfeile haben möchte!",,,No. ¡No tienes lo que quiero por las saetas eléctricas!,,,"Non, vous n'avez pas ce qu'il me faut pour les carreaux électriques!","Nem. Neked nincs olyanod, ami nekem kéne az elektromos nyilakért.",,いや。エレクトリックボルトに必要な物が足りない!,전격 볼트의 가격에 해당하는 게 전혀 없구먼!,"Nie. Nie masz tego co ja chcę, by dać ci elektryczne bełty.",Não. Você não tem o que eu quero pelas setas elétricas!,,,Нет. У тебя нет денег на электрические болты!,Не. Ти немаш шта мени треба за електричне стреле! +No. You don't have what I want for the electric bolts!,TXT_RNO0_SCRIPT02_D16676_NOYOU,,,,"Ne. Nemáš, co za ně chci!","Nein. Du hast nicht das, was ich für die elektrischen Pfeile haben möchte!",,,No. ¡No tienes lo que quiero por las saetas eléctricas!,,,"Non, vous n'avez pas ce qu'il me faut pour les carreaux électriques!","Nem. Neked nincs olyanod, ami nekem kéne az elektromos nyilakért.",,いや。エレクトリックボルトに必要な物が足りない!,전격 볼트의 가격에 맞춰서 흥정하시길.,"Nie. Nie masz tego co ja chcę, by dać ci elektryczne bełty.",Não. Você não tem o que eu quero pelas setas elétricas!,,,Нет. У тебя нет денег на электрические болты!,Не. Ти немаш шта мени треба за електричне стреле! +Thank you. Anything else?,TXT_RYES1_SCRIPT02_D15160_THANK,,,,Děkuji. Něco dalšího?,Danke. Sonst noch etwas?,,,Gracias. ¿Algo más?,,,"Merci, Autre chose?",Köszönöm. Még valamit?,,ありがとう。 他に何か?,감사합니다. 다른 건 없나요?,Dziękuję. Coś jeszcze?,Obrigado. Mais alguma coisa?,,,Благодарю. Что-нибудь ещё?,Хвала. Још нешто? +"You can't afford that, good day.",TXT_RNO1_SCRIPT02_D15160_YOUCA,,,,"To si nemůžeš dovolit, přeji hezký den.",Das kannst du dir nicht leisten. Guten Tag.,,,"No puedes adquirir esto, buen día.",,,Vous n'avez pas assez d'argent. Bonne journée.,Ezt most nem tudod kifizetni. Szép napot!,,それを買える余裕は無い、また今度。,가질 수가 없는 것 같으니... 그럼 이만!,"Nie możesz tego kupić, miłego dnia.",Você não pode comprar isso. Tenha um bom dia.,,,У тебя не хватает денег. Всего доброго.,"Не можете то приуштити, довиђења." +What can I get for you?,TXT_DLG_SCRIPT02_D16676_WHATC,,,,Co bych ti mohl sehnat?,Was darf es sein?,,,¿Qué puedo ofrecerte?,,,Que puis-je faire pour vous?,Mivel szolgáhatok?,,何か必要か?,"무엇을 구매하고 싶으신가요, 좋은 친구여?",Co mogę dla ciebie zrobić?,Como posso te ajudar?,,,Чем могу быть полезен?,Шта ти могу учинити? +Electric bolts,TXT_RPLY0_SCRIPT02_D16676_ELECT,,,,Elektrické šípy,Elektrische Bolzen,,,Saetas eléctricas,,,Carreaux électriques,Elektromos nyilak.,,エレクトリックボルト,전격 볼트,Elektryczne bełty,Setas elétricas,,,Электрические болты,Електричне стреле +You got the electric bolts.,TXT_RYES0_SCRIPT02_D16676_YOUGO,,,,Tady máš své šípy.,Du hast die elektrischen Bolzen erhalten.,,,Obtuviste las saetas eléctricas.,,,Vous recevez les carreaux électriques.,Elektromos nyilakra tettél szert.,,エレクトリックボルト 入手。,전격 볼트를 구매했습니다.,Masz elektryczne bełty.,Você pegou as setas elétricas,,,Вот твои электрические болты.,Ево ти електричне стреле. +Ammo satchel,TXT_RPLY1_SCRIPT02_D16676_AMMOS,,,,Brašnu na munici,Munitionstasche,,,Bolsa de Municiones,,,Sacoche de Munitions,Lőszeres hátizsák,,弾薬鞄,탄약 배낭,Torba z amunicją,Mochila de munição,,,Ранец для боеприпасов,Торба за муницију +"Thank you, anything else?",TXT_RYES1_SCRIPT02_D16676_THANK,,,,Děkuji. Něco dalšího?,Danke. Sonst noch etwas?,,,Gracias. ¿Algo más?,,,"Merci, Autre chose?","Köszönöm, bármi mást?",,ありがとう。 他に何か?,감사합니다. 다른 건 더 없나요?,"Dziękuję, coś jeszcze?",Obrigado. Mais alguma coisa?,,,Благодарю. Что-нибудь ещё?,"Хвала, још нешто?" +"You can't afford that, good day to you!",TXT_RNO1_SCRIPT02_D16676_YOUCA,,,,"To si nemůžeš dovolit, přeji hezký den.",Das kannst du dir nicht leisten. Guten Tag!,,,"No puedes adquirir esto, buen día.",,,Vous n'avez pas assez d'argent. Bonne journée.,"Nincs elég pénzed arra, további jó napot neked!",,それを買える余裕は無い、また今度。,살 돈이 부족하신가요? 그럼 갈 길 가시길!,"Nie możesz tego kupić, życzę miłego dnia!",Você não pode comprar isso. Um bom dia pra você!,,,У тебя не хватает денег. Всего доброго!,"Не можете то приуштити, довиђења." Welcome. What may I show you?,TXT_DLG_SCRIPT02_D18192_WELCO,,,,Vítej. Co bych ti mohl nabídnout?,Willkommen. Was kann ich dirZeigen.,,,Bienvenido. ¿Qué puedo mostrarte?,,,"Bienvenue, que souhaitez vous?",Üdvözletem! Mit is mutassak neked?,,ようこそ、何を見ていきますか?,환영합니다! 보여드릴 게 아주 많아요.,"Witaj. Co mogę ci pokazać? -",Seja bem-vindo. O que posso te mostrar?,,,Здравствуй. Что-нибудь интересует?, -Environmental suit,TXT_RPLY0_SCRIPT02_D18192_ENVIR,,,,Ochranný oblek,Schutzanzug.,,,Traje Ambiental,,,Combinaison hazmat,Természetálló öltözet,,耐環境スーツ,환경 방호복,Skafander Ochronny,Traje de proteção,,,Защитный костюм, -"Well, here you are.",TXT_RYES0_SCRIPT02_D18192_WELLH,,,,"Tak, tady to je.",Bitte sehr.,,,"Bien, aquí tienes.",,,Voilà pour vous.,"Nos, tessék.",,はい、これをどうぞ。,"자, 여기있습니다.","Proszę, masz.","Muito bem, aqui está.",,,"Хорошо, бери.", -I'm sorry but you don't have enough money for that.,TXT_RNO0_SCRIPT02_D18192_IMSOR,,,,"Promiň, ale na ten nemáš dost peněz.","Es tut mir Leid, aber du hast nicht genug Geld dabei.",,,"Lo siento, no tienes suficiente dinero para esto.",,,Je suis désolé mais vous n'avez pas assez d'argent.,"Sajnálom, de nincs elég pénzed erre.",,すみませんが、貴方は十分なお金を持っていません。,"죄송합니다만, 그걸 사기엔 돈이 부족해 보입니다.","Przepraszam, ale nie masz wystarczająco dużo monet, aby to kupić.",Sinto muito mas você não tem dinheiro o suficiente para isso.,,,"Извини, но у тебя не хватает денег.", -Leather armor,TXT_RPLY1_SCRIPT02_D18192_LEATH,,,Leather armour,Kožené brnění,Lederrüstung,,,Armadura de Cuero,,,Armure en cuir,Bőr páncél,,レザーアーマー,가죽 갑옷,Skórzany Pancerz,Armadura de couro,,,Кожаная броня, -Here you are.,TXT_RYES1_SCRIPT02_D18192_HEREY,,,,Tady máš.,Bitte sehr.,,,Aquí tienes.,,,Voilà pour vous.,Tessék.,,これをどうぞ。,여기 있습니다.,Proszę bardzo.,Aqui está.,,,Держи., -Perhaps some other time?,TXT_RNO1_SCRIPT02_D18192_PERHA,,,,Možná někdy jindy?,Vielleicht ein anderes Mal?,,,¿Quizás en otra ocasión?,,,Peut être une autre fois?,Esetleg talán máskor?,,また別の機会に?,아마 나중에 사야 할 것 같은데?,Może innym razem?,Talvez uma outra hora?,,,"Может, в следующий раз?", -Metal armor,TXT_RPLY2_SCRIPT02_D18192_METAL,,,Metal armour,Kovové brnění,Metallrüstung,,,Armadura de Metal,,,Armure en Métal,Fémpáncél,,メタルアーマー,강철 갑옷,Metalowy Pancerz,Armadura de metal,,,Металлическая броня, -Wear it in good health.,TXT_RYES2_SCRIPT02_D18192_WEARI,,,,Nes ho ve zdraví.,Trage sie mit Stolz.,,,Úsala con buena salud.,,,Portez la en bonne santé.,Viseld jó egészséggel!,,着ると安心しますよ。,건강하게 입으세요.,Bądź zdrów nosząc go.,Vista ela com orgulho.,,,Носи на здоровье., -Come back when you can afford to buy something you lout!,TXT_RNO2_SCRIPT02_D18192_COMEB,,,,"Vrať se, až si budeš moct něco dovolit, troubo!","Komm zurück wenn du dir etwas leisten kannst, du Rüpel!",,,"¡Vuelve cuando puedas comprar algo, patán! ",,,"Revenez quand vous avez de l'argent, rustre!","Majd akkor gyere vissza, ha lesz pénzed megvenni bármit is, te fajankó!",,余裕がある時にまたどうぞ!,뭔가를 살 여유가 있을 때 오세요!,Wróć kiedy będziesz mógł coś kupić prostaku!,"Volte quando você puder comprar algo, seu caloteiro!",,,"Вернёшься, когда поднакопишь на то, что хочешь!", +",Seja bem-vindo. O que posso te mostrar?,,,Здравствуй. Что-нибудь интересует?,Добродошли. Шта вам могу показати? +Environmental suit,TXT_RPLY0_SCRIPT02_D18192_ENVIR,,,,Ochranný oblek,Schutzanzug.,,,Traje Ambiental,,,Combinaison hazmat,Természetálló öltözet,,耐環境スーツ,환경 방호복,Skafander Ochronny,Traje de proteção,,,Защитный костюм,Заштитно одело +"Well, here you are.",TXT_RYES0_SCRIPT02_D18192_WELLH,,,,"Tak, tady to je.",Bitte sehr.,,,"Bien, aquí tienes.",,,Voilà pour vous.,"Nos, tessék.",,はい、これをどうぞ。,"자, 여기있습니다.","Proszę, masz.","Muito bem, aqui está.",,,"Хорошо, бери.","Па, изволите." +I'm sorry but you don't have enough money for that.,TXT_RNO0_SCRIPT02_D18192_IMSOR,,,,"Promiň, ale na ten nemáš dost peněz.","Es tut mir Leid, aber du hast nicht genug Geld dabei.",,,"Lo siento, no tienes suficiente dinero para esto.",,,Je suis désolé mais vous n'avez pas assez d'argent.,"Sajnálom, de nincs elég pénzed erre.",,すみませんが、貴方は十分なお金を持っていません。,"죄송합니다만, 그걸 사기엔 돈이 부족해 보입니다.","Przepraszam, ale nie masz wystarczająco dużo monet, aby to kupić.",Sinto muito mas você não tem dinheiro o suficiente para isso.,,,"Извини, но у тебя не хватает денег.",Жао ми је али немате довољно пара за то. +Leather armor,TXT_RPLY1_SCRIPT02_D18192_LEATH,,,Leather armour,Kožené brnění,Lederrüstung,,,Armadura de Cuero,,,Armure en cuir,Bőr páncél,,レザーアーマー,가죽 갑옷,Skórzany Pancerz,Armadura de couro,,,Кожаная броня,Кожни оклоп +Here you are.,TXT_RYES1_SCRIPT02_D18192_HEREY,,,,Tady máš.,Bitte sehr.,,,Aquí tienes.,,,Voilà pour vous.,Tessék.,,これをどうぞ。,여기 있습니다.,Proszę bardzo.,Aqui está.,,,Держи.,Изволите. +Perhaps some other time?,TXT_RNO1_SCRIPT02_D18192_PERHA,,,,Možná někdy jindy?,Vielleicht ein anderes Mal?,,,¿Quizás en otra ocasión?,,,Peut être une autre fois?,Esetleg talán máskor?,,また別の機会に?,아마 나중에 사야 할 것 같은데?,Może innym razem?,Talvez uma outra hora?,,,"Может, в следующий раз?",Можда неки други пут? +Metal armor,TXT_RPLY2_SCRIPT02_D18192_METAL,,,Metal armour,Kovové brnění,Metallrüstung,,,Armadura de Metal,,,Armure en Métal,Fémpáncél,,メタルアーマー,강철 갑옷,Metalowy Pancerz,Armadura de metal,,,Металлическая броня,Метални оклоп +Wear it in good health.,TXT_RYES2_SCRIPT02_D18192_WEARI,,,,Nes ho ve zdraví.,Trage sie mit Stolz.,,,Úsala con buena salud.,,,Portez la en bonne santé.,Viseld jó egészséggel!,,着ると安心しますよ。,건강하게 입으세요.,Bądź zdrów nosząc go.,Vista ela com orgulho.,,,Носи на здоровье.,Носите га са добрим здрављем. +Come back when you can afford to buy something you lout!,TXT_RNO2_SCRIPT02_D18192_COMEB,,,,"Vrať se, až si budeš moct něco dovolit, troubo!","Komm zurück wenn du dir etwas leisten kannst, du Rüpel!",,,"¡Vuelve cuando puedas comprar algo, patán! ",,,"Revenez quand vous avez de l'argent, rustre!","Majd akkor gyere vissza, ha lesz pénzed megvenni bármit is, te fajankó!",,余裕がある時にまたどうぞ!,뭔가를 살 여유가 있을 때 오세요!,Wróć kiedy będziesz mógł coś kupić prostaku!,"Volte quando você puder comprar algo, seu caloteiro!",,,"Вернёшься, когда поднакопишь на то, что хочешь!",Врати се када будеш могао приуштити нешто што не знаш! Welcome. What may I show you?,TXT_DLG_SCRIPT02_D19708_WELCO,,,,Vítej. Co bych ti mohl nabídnout?,Willkommen. Was kann ich dir zeigen.,,,Bienvenido. ¿Qué puedo mostrarte?,,,"Bienvenue, que souhaitez vous?","Üdvözlet, mire volnál kíváncsi?",,ようこそ、何をお探しで?,어서 오십시오. 어떤 걸 보여드릴까요?,"Witaj. Co mogę ci pokazać? -",Seja bem-vindo. O que posso te mostrar?,,,Здравствуй. Что-нибудь интересует?, -Environmental suit,TXT_RPLY0_SCRIPT02_D19708_ENVIR,,,,Ochranný oblek,Schutzanzug.,,,Traje Ambiental,,,Combinaison hazmat,Természetálló öltözet,,耐環境スーツ,환경 방호복,Skafander Ochronny,Traje de proteção,,,Защитный костюм, -"Well, here you are.",TXT_RYES0_SCRIPT02_D19708_WELLH,,,,"Tak, tady to je.",Bitte sehr.,,,"Bien, aquí tienes.",,,Voilà pour vous.,"Nos, íme.",,では、これをどうぞ。,"자, 여기 있습니다.","Proszę, masz.","Muito bem, aqui está.",,,"Хорошо, бери.", -I'm sorry but you don't have enough money for that.,TXT_RNO0_SCRIPT02_D19708_IMSOR,,,,"Promiň, ale na ten nemáš dost peněz.","Es tut mir Leid, aber du hast nicht genug Geld dabei.",,,"Lo siento, no tienes suficiente dinero para esto.",,,Je suis désolé mais vous n'avez pas assez d'argent.,"Sajnálom, de Önnek nem áll módjában kifizetni ezt.",,すみませんが、貴方は十分なお金を持っていません。,"미안하지만, 구매하기 위한 돈이 부족하신 것 같군요.","Przepraszam, ale nie masz wystarczająco dużo monet, aby to kupić.",Sinto muito mas você não tem dinheiro o suficiente para isso.,,,"Извини, но у тебя не хватает денег.", -Leather armor,TXT_RPLY1_SCRIPT02_D19708_LEATH,,,Leather armour,Kožené brnění,Lederrüstung,,,Armadura de Cuero,,,Armure en cuir,Bőr páncél,,レザーアーマー,가죽 갑옷,Skórzany Pancerz,Armadura de couro,,,Кожаная броня, -Here you are.,TXT_RYES1_SCRIPT02_D19708_HEREY,,,,Tady máš.,Bitte sehr.,,,Aquí tienes.,,,Voilà pour vous.,Tessék,,これをどうぞ。,여기 있습니다.,Proszę bardzo.,Aqui está.,,,Держи., -Perhaps some other time?,TXT_RNO1_SCRIPT02_D19708_PERHA,,,,Možná někdy jindy?,Vielleicht ein anderes Mal?,,,¿Quizás en otra ocasión?,,,Peut être une autre fois?,Talán majd máskor?,,また別の機会に?,나중에 돈을 모아서 구매하세요.,Może innym razem?,Talvez uma outra hora?,,,"Может, в следующий раз?", -Metal armor,TXT_RPLY2_SCRIPT02_D19708_METAL,,,Metal armour,Kovové brnění,Metallrüstung,,,Armadura de Metal,,,Armure en Métal,Fém páncél,,メタルアーマー,강철 갑옷,Metalowy Pancerz,Armadura de metal,,,Металлическая броня, -Wear it in good health.,TXT_RYES2_SCRIPT02_D19708_WEARI,,,,Nes ho ve zdraví.,Trage sie mit Stolz.,,,Úsala con buena salud.,,,Portez la en bonne santé.,Viseld jó egészséggel!,,着ると安心しますよ。,믿고 입으셔도 됩니다.,Bądź zdrów nosząc go.,Vista ela com orgulho.,,,Носи на здоровье., -Come back when you can afford to buy something you lout!,TXT_RNO2_SCRIPT02_D19708_COMEB,,,,"Vrať se, až si budeš moct něco dovolit, troubo!","Komm zurück wenn du dir etwas leisten kannst, du Rüpel!",,,"¡Vuelve cuando puedas comprar algo, patán! ",,,"Revenez quand vous avez de l'argent, rustre!","Majd akkor gyere vissza, ha lesz pénzed megvenni bármit is, te fajankó!",,余裕がある時にまたどうぞ!,이런 거래는 못 하겠습니다. 돈을 모아서 다시 찾아오시길!,Wróć kiedy będziesz mógł coś kupić prostaku!,"Volte quando você puder comprar algo, seu caloteiro!",,,"Вернёшься, когда поднакопишь на то, что хочешь!", -How may I assist you?,TXT_DLG_SCRIPT02_D21224_HOWMA,,,,Jak ti mohu pomoci?,Wie kann ich dir helfen?,,,¿Cómo puedo ayudarte?,,,Comment puis-je vous assister?,Hogyan tudnék segíteni neked?,,何かお困りですか?,제가 어떻게 도와드릴까요?,Jak mogę ci pomóc?,Como posso ajudá-lo?,,,Чем могу помочь?, -Med patch,TXT_RPLY0_SCRIPT02_D21224_MEDPA,,,,Obvazy,Medizinische Bandage,,,Parche Médico,,,Pansement,Ragtapasz,,医薬パッチ,의료 붕대,Bandaż,Compressa médica,,,Бинтами, -Here's your patch.,TXT_RYES0_SCRIPT02_D21224_HERES,,,,Tady je tvůj obvaz.,Hier ist deine Bandage,,,Aquí tienes tu parche.,,,Voilà votre pansement.,Itt a tapaszod,,これをどうぞ。,의료 붕대 여깄습니다.,Oto twój bandaż.,Aqui está sua compressa,,,Вот они., -You need 10 gold for that.,TXT_RNO0_SCRIPT02_D21224_YOUNE,,,,Na ty potřebuješ deset zlatých.,Dafür brauchst du 10 Gold.,,,Necesitarás 10 de oro para esto.,,,Il vous faut 10 pièces pour cela.,10 Aranyra lesz szükséged ehhez.,,10 ゴールド必要です。,10 골드가 필요합니다.,Potrzebujesz 10 monet aby to kupić.,Você precisa de 10 de ouro pra isso.,,,Тебе не хватает 10 золотых., -Medical kit,TXT_RPLY1_SCRIPT02_D21224_MEDIC,,,,Lékárničku,Verbandskasten,,,Kit Médico,,,Kit médical,Elsősegély készlet,,医療用キット,구급 키트,Apteczka,Kit médico.,,,Аптечкой, -Thank you.,TXT_RYES1_SCRIPT02_D21224_THANK,,,,Děkuji.,Danke.,,,Gracias.,,,Merci.,Köszönöm,,ありがとうございます。,이용 감사드려요.,Dziękuję.,Obrigado.,,,Спасибо., -"I wish I could give them away, but they cost 25 gold.",TXT_RNO1_SCRIPT02_D21224_IWISH,,,,"Přál bych si je dávat zadarmo, ale stojí 25 zlatých.","Ich wünschte ich könnte sie weggeben, aber sie kosten 25 Gold.",,,"Ojalá pudiera regalarlos, pero cuestan 25 de oro.",,,"J'aimerais vraiment les donner gratuitement, mais cela côute 25 pièces.",,,譲渡したい所ですが、25 ゴールド必要です。,"주고 싶지만, 이것의 가격은 25 골드입니다.","Chciałbym móc je rozdać, ale one kosztują 25 monet.","Bem que eu queria poder dar de graça, mas custam 25 de ouro.",,,"С радостью бы отдал, но они по 25 золотых.", -Field surgery kit,TXT_RPLY2_SCRIPT02_D21224_FIELD,,,,Chirurgickou soupravu,Erste-Hilfe-Kasten,,,Kit Quirúrgico,,,Kit de chirurgie,Harctéri műtéti felszerelés,,手術キット,수술 키트,Polowy zestaw chirurga,Kit de cirurgia,,,Медкомплектом, -There you go. Take care now.,TXT_RYES2_SCRIPT02_D21224_THERE,,,,Tady máš. Buď opatrný.,Bitte schön. Mach's gut.,,,Aquí tienes. Cuídate.,,,Voilà pour vous. Faites attention à vous maintenant.,"Tessék, minden jót most már!",,こちらになります、お気をつけて。,여기 있습니다. 잘 쓰세요.,Proszę bardzo. Trzymaj się.,Aqui está. Se cuida.,,,Пожалуйста. Береги себя!, -"Well, maybe you can afford some med patches?",TXT_RNO2_SCRIPT02_D21224_WELLM,,,,"No, možná by sis mohl spíš dovolit nějaké obvazy?","Nun, vielleicht kannst du dir ein paar medizinische Bandagen leisten?",,,"Bien, ¿Quizás te alcance para algunos parches médicos?",,,"Eh bien, peut être que vous pouvez vous acheter quelques pansements?",Talán némi ragtapaszra tudnál költeni?,,ところで、医薬パッチを買う余裕はありますか?,"글쎄요, 아마 의료 붕대 정돈 살 수 있을걸요?","Cóż, może stać cię na jakieś bandaże?","Bem, talvez você possa comprar algumas compressas?",,,"Тогда, может быть, купишь несколько бинтов?", +",Seja bem-vindo. O que posso te mostrar?,,,Здравствуй. Что-нибудь интересует?,Добродошли. Шта вам могу показати? +Environmental suit,TXT_RPLY0_SCRIPT02_D19708_ENVIR,,,,Ochranný oblek,Schutzanzug.,,,Traje Ambiental,,,Combinaison hazmat,Természetálló öltözet,,耐環境スーツ,환경 방호복,Skafander Ochronny,Traje de proteção,,,Защитный костюм,Заштитно одело +"Well, here you are.",TXT_RYES0_SCRIPT02_D19708_WELLH,,,,"Tak, tady to je.",Bitte sehr.,,,"Bien, aquí tienes.",,,Voilà pour vous.,"Nos, íme.",,では、これをどうぞ。,"자, 여기 있습니다.","Proszę, masz.","Muito bem, aqui está.",,,"Хорошо, бери.","Па, изволите." +I'm sorry but you don't have enough money for that.,TXT_RNO0_SCRIPT02_D19708_IMSOR,,,,"Promiň, ale na ten nemáš dost peněz.","Es tut mir Leid, aber du hast nicht genug Geld dabei.",,,"Lo siento, no tienes suficiente dinero para esto.",,,Je suis désolé mais vous n'avez pas assez d'argent.,"Sajnálom, de Önnek nem áll módjában kifizetni ezt.",,すみませんが、貴方は十分なお金を持っていません。,"미안하지만, 구매하기 위한 돈이 부족하신 것 같군요.","Przepraszam, ale nie masz wystarczająco dużo monet, aby to kupić.",Sinto muito mas você não tem dinheiro o suficiente para isso.,,,"Извини, но у тебя не хватает денег.",Извините али немате довољно пара за то. +Leather armor,TXT_RPLY1_SCRIPT02_D19708_LEATH,,,Leather armour,Kožené brnění,Lederrüstung,,,Armadura de Cuero,,,Armure en cuir,Bőr páncél,,レザーアーマー,가죽 갑옷,Skórzany Pancerz,Armadura de couro,,,Кожаная броня,Кожни оклоп +Here you are.,TXT_RYES1_SCRIPT02_D19708_HEREY,,,,Tady máš.,Bitte sehr.,,,Aquí tienes.,,,Voilà pour vous.,Tessék,,これをどうぞ。,여기 있습니다.,Proszę bardzo.,Aqui está.,,,Держи.,Изволите +Perhaps some other time?,TXT_RNO1_SCRIPT02_D19708_PERHA,,,,Možná někdy jindy?,Vielleicht ein anderes Mal?,,,¿Quizás en otra ocasión?,,,Peut être une autre fois?,Talán majd máskor?,,また別の機会に?,나중에 돈을 모아서 구매하세요.,Może innym razem?,Talvez uma outra hora?,,,"Может, в следующий раз?",Можда неки други пут? +Metal armor,TXT_RPLY2_SCRIPT02_D19708_METAL,,,Metal armour,Kovové brnění,Metallrüstung,,,Armadura de Metal,,,Armure en Métal,Fém páncél,,メタルアーマー,강철 갑옷,Metalowy Pancerz,Armadura de metal,,,Металлическая броня,Метални оклоп +Wear it in good health.,TXT_RYES2_SCRIPT02_D19708_WEARI,,,,Nes ho ve zdraví.,Trage sie mit Stolz.,,,Úsala con buena salud.,,,Portez la en bonne santé.,Viseld jó egészséggel!,,着ると安心しますよ。,믿고 입으셔도 됩니다.,Bądź zdrów nosząc go.,Vista ela com orgulho.,,,Носи на здоровье.,Носите га са добрим здрављем. +Come back when you can afford to buy something you lout!,TXT_RNO2_SCRIPT02_D19708_COMEB,,,,"Vrať se, až si budeš moct něco dovolit, troubo!","Komm zurück wenn du dir etwas leisten kannst, du Rüpel!",,,"¡Vuelve cuando puedas comprar algo, patán! ",,,"Revenez quand vous avez de l'argent, rustre!","Majd akkor gyere vissza, ha lesz pénzed megvenni bármit is, te fajankó!",,余裕がある時にまたどうぞ!,이런 거래는 못 하겠습니다. 돈을 모아서 다시 찾아오시길!,Wróć kiedy będziesz mógł coś kupić prostaku!,"Volte quando você puder comprar algo, seu caloteiro!",,,"Вернёшься, когда поднакопишь на то, что хочешь!",Врати се када будеш могао приуштити нешто што не знаш! +How may I assist you?,TXT_DLG_SCRIPT02_D21224_HOWMA,,,,Jak ti mohu pomoci?,Wie kann ich dir helfen?,,,¿Cómo puedo ayudarte?,,,Comment puis-je vous assister?,Hogyan tudnék segíteni neked?,,何かお困りですか?,제가 어떻게 도와드릴까요?,Jak mogę ci pomóc?,Como posso ajudá-lo?,,,Чем могу помочь?,Како вам могу помоћи? +Med patch,TXT_RPLY0_SCRIPT02_D21224_MEDPA,,,,Obvazy,Medizinische Bandage,,,Parche Médico,,,Pansement,Ragtapasz,,医薬パッチ,의료 붕대,Bandaż,Compressa médica,,,Бинтами,Фластери +Here's your patch.,TXT_RYES0_SCRIPT02_D21224_HERES,,,,Tady je tvůj obvaz.,Hier ist deine Bandage,,,Aquí tienes tu parche.,,,Voilà votre pansement.,Itt a tapaszod,,これをどうぞ。,의료 붕대 여깄습니다.,Oto twój bandaż.,Aqui está sua compressa,,,Вот они.,Ево ваших фластера +You need 10 gold for that.,TXT_RNO0_SCRIPT02_D21224_YOUNE,,,,Na ty potřebuješ deset zlatých.,Dafür brauchst du 10 Gold.,,,Necesitarás 10 de oro para esto.,,,Il vous faut 10 pièces pour cela.,10 Aranyra lesz szükséged ehhez.,,10 ゴールド必要です。,10 골드가 필요합니다.,Potrzebujesz 10 monet aby to kupić.,Você precisa de 10 de ouro pra isso.,,,Тебе не хватает 10 золотых.,Треба вам 10 златника за то. +Medical kit,TXT_RPLY1_SCRIPT02_D21224_MEDIC,,,,Lékárničku,Verbandskasten,,,Kit Médico,,,Kit médical,Elsősegély készlet,,医療用キット,구급 키트,Apteczka,Kit médico.,,,Аптечкой,Медицински комплет +Thank you.,TXT_RYES1_SCRIPT02_D21224_THANK,,,,Děkuji.,Danke.,,,Gracias.,,,Merci.,Köszönöm,,ありがとうございます。,이용 감사드려요.,Dziękuję.,Obrigado.,,,Спасибо.,Хвала. +"I wish I could give them away, but they cost 25 gold.",TXT_RNO1_SCRIPT02_D21224_IWISH,,,,"Přál bych si je dávat zadarmo, ale stojí 25 zlatých.","Ich wünschte ich könnte sie weggeben, aber sie kosten 25 Gold.",,,"Ojalá pudiera regalarlos, pero cuestan 25 de oro.",,,"J'aimerais vraiment les donner gratuitement, mais cela côute 25 pièces.",,,譲渡したい所ですが、25 ゴールド必要です。,"주고 싶지만, 이것의 가격은 25 골드입니다.","Chciałbym móc je rozdać, ale one kosztują 25 monet.","Bem que eu queria poder dar de graça, mas custam 25 de ouro.",,,"С радостью бы отдал, но они по 25 золотых.","Волео бих да их могу дати, али коштају 25 златника." +Field surgery kit,TXT_RPLY2_SCRIPT02_D21224_FIELD,,,,Chirurgickou soupravu,Erste-Hilfe-Kasten,,,Kit Quirúrgico,,,Kit de chirurgie,Harctéri műtéti felszerelés,,手術キット,수술 키트,Polowy zestaw chirurga,Kit de cirurgia,,,Медкомплектом,Комплет за операцију на терену +There you go. Take care now.,TXT_RYES2_SCRIPT02_D21224_THERE,,,,Tady máš. Buď opatrný.,Bitte schön. Mach's gut.,,,Aquí tienes. Cuídate.,,,Voilà pour vous. Faites attention à vous maintenant.,"Tessék, minden jót most már!",,こちらになります、お気をつけて。,여기 있습니다. 잘 쓰세요.,Proszę bardzo. Trzymaj się.,Aqui está. Se cuida.,,,Пожалуйста. Береги себя!,Изволите. Чувајте се. +"Well, maybe you can afford some med patches?",TXT_RNO2_SCRIPT02_D21224_WELLM,,,,"No, možná by sis mohl spíš dovolit nějaké obvazy?","Nun, vielleicht kannst du dir ein paar medizinische Bandagen leisten?",,,"Bien, ¿Quizás te alcance para algunos parches médicos?",,,"Eh bien, peut être que vous pouvez vous acheter quelques pansements?",Talán némi ragtapaszra tudnál költeni?,,ところで、医薬パッチを買う余裕はありますか?,"글쎄요, 아마 의료 붕대 정돈 살 수 있을걸요?","Cóż, może stać cię na jakieś bandaże?","Bem, talvez você possa comprar algumas compressas?",,,"Тогда, может быть, купишь несколько бинтов?","Па, можда бих могао приуштити фластере?" "I hope Macil knows what he's doing. If the Order finds out I'm helping the Front I'm as good as dead... Not that this matters to you any. The Front's medic gave me an upgrade chip for you, are you ready? ",TXT_DLG_SCRIPT02_D22740_IHOPE,,,,"Doufám, že Macil ví, co dělá. Jestli Řád zjistí, že pomáhám Frontě, jsem mrtvý... Ne, že by tě to mělo trápit. Medik Fronty mi pro tebe dal vylepšovací čip, jsi připravený?","Ich hoffe Macil weiß was er tut. Wenn der Orden herausfindet das ich der Front helfe, bin ich so gut wie tot... auch wenn es für dich keine Rolle spielt. Ein Sanitäter der Front hat mir einen Verbesserungschip für dich mitgegeben, bist du bereit?",,,"Espero que Macil sepa lo que está haciendo. Si la Orden descubre que ayudo al Frente, estoy muerto... Tampoco es que te importe nada. El médico del Frente me dio un chip para ti, ¿Estás listo?",,,"J'espère que Macil sait ce qu'il fait. Si l'Ordre se rend compte que j'aide le Front, c'est comme si j'étais mort.. bon, cela ne vous importe pas. Le médecin du Front m'a donné une puce d'augmentation pour vous. Etes vous prêt?","Remélem Macil tudja, mit csinál. Ha a Rend rájön, hogy a Frontot segítem, alulról szagolom majd az ibolyát. Nem mintha ez neked most lényeges lenne. A Front orvosa egy fejlesztési chipet küldött neked. Készen állsz?",,"マシルの行いが正しければ良いですが。 私がフロントを援助しているとオーダーが 知ったら、私は...これは貴方には関係無いか。 @@ -6863,97 +6875,97 @@ There you go. Take care now.,TXT_RYES2_SCRIPT02_D21224_THERE,,,,Tady máš. Buď アップグレードチップを送ってくれました、 装着しますか? ",마실 사령관님이 하는 일이 무엇인지 알고 있기를... 만약 오더가 내가 프론트를 위해 일한다는 걸 눈치챈다면 절 죽일 거예요. 물론 당신이 알 바는 아니지만. 프론트 의무관님이 업그레이드 칩을 당신에게 이식하라고 여기까지 가져왔더군요. 준비되셨습니까?,"Mam nadzieję, że Macil wie co robi. Jeśli Zakon odkryje, że pomagam Frontowi, będę martwy... Nie to, że kogokolwiek to obchodzi. Medyk frontu dał mi czip ulepszający dla ciebie, jesteś gotowy?","Espero que Macil saiba o que está fazendo. Se a Ordem descobrir que estou ajudando a Frente, estou morto... Não que isso importe para vocês. O médico da Frente me passou um chip de upgrade pra você, está preparado?",,,"Надеюсь, Мэйсил знает, что делает. Если Орден обнаружит, что я помогаю повстанцам, я не жилец... хотя тебе-то какое дело. Медик Сопротивления передал мне этот чип для тебя. Ты готов? -", -"Yes, I'm ready.",TXT_RPLY0_SCRIPT02_D22740_YESIM,,,,"Ano, jsem připravený.","Ja, ich bin bereit.",,,"Si, estoy listo.",,,"Oui, je suis prêt.","Igen, készen állok.",,ああ、準備良しだ。,"좋아요, 준비 됐습니다.","Tak, jestem gotowy.","Sim, estou preparado.",,,"Да, готов.", -"Well then, this won't take but a second. There, done already.",TXT_RYES0_SCRIPT02_D22740_WELLT,,,,"Tak dobře, měla by to být jen vteřinka. Tak, a je hotovo.","Nun dann, das wird nicht mal eine Sekunde dauern. So, bereits erledigt.",,,"Bueno entonces. Esto no tomará sino un segundo. Bien, hecho.",,,"Bon, cela ne prendra qu'une seconde. Voilà, c'est fait.","Jól van hát, nem fog csak egy pár másodpercig tartani... És kész is.",,それでは、これに時間は掛かりません。はい、完了しました。,"그럼 잠깐이면 됩니다. 자, 다 됐어요.","Dobrze więc, to zajmie tylko sekundę. Już, gotowe.","Muito bem, isso vai levar um segundo. Pronto, já terminei.",,,"Хорошо. Секундочку... Всё, готово.", -How may I assist you?,TXT_DLG_SCRIPT02_D24256_HOWMA,,,,Jak ti mohu pomoci?,Wie kann ich dir helfen?,,,¿Cómo puedo ayudarte?,,,Comment puis-je vous assister?,Miben segíthetek?,,何かお困りですか?,어떻게 도와드릴까요?,Jak mogę ci pomóc?,Como posso ajudá-lo?,,,Чем могу тебе помочь?, -Med patch,TXT_RPLY0_SCRIPT02_D24256_MEDPA,,,,Obvazy,Medizinische Bandage,,,Parche Médico,,,Pansement,,,医薬パッチ,의료 붕대,Bandaż,Compressa médica,,,Бинтами, -Here's your patch.,TXT_RYES0_SCRIPT02_D24256_HERES,,,,Tady je tvůj obvaz.,Hier ist deine Bandage,,,Aquí tienes tu parche.,,,Voilà votre pansement.,,,これをどうぞ。,여기 의료 붕대입니다.,Oto twój bandaż.,Aqui está sua compressa,,,Вот они., -You need 10 gold for that.,TXT_RNO0_SCRIPT02_D24256_YOUNE,,,,Na ty potřebuješ deset zlatých.,Dafür brauchst du 10 Gold.,,,Necesitarás 10 de oro para esto.,,,Il vous faut 10 pièces pour cela.,,,10 ゴールド必要です。,10 골드가 필요한데.,Potrzebujesz 10 monet aby to kupić.,Você precisa de 10 de ouro pra isso.,,,Тебе не хватает 10 золотых., -Medical kit,TXT_RPLY1_SCRIPT02_D24256_MEDIC,,,,Lékárničku,Verbandskasten,,,Kit Médico,,,Kit médical,,,医療用キット,구급 키트,Apteczka,Kit médico.,,,Аптечкой, -Thank you.,TXT_RYES1_SCRIPT02_D24256_THANK,,,,Děkuji.,Danke.,,,Gracias.,,,Merci.,,,ありがとうございます。,또 오세요.,Dziękuję.,Obrigado.,,,Спасибо., -"I wish I could give them away, but they cost 25 gold.",TXT_RNO1_SCRIPT02_D24256_IWISH,,,,"Přál bych si je dávat zadarmo, ale stojí 25 zlatých.","Ich wünschte ich könnte sie weggeben, aber sie kosten 25 Gold.",,,"Ojalá pudiera regalarlos, pero cuestan 25 de oro.",,,"J'aimerais vraiment les donner gratuitement, mais cela côute 25 pièces.",,,譲渡したい所ですが、25 ゴールド必要です。,25 골드만 있다면 이건 당신 것인데 말이죠.,"Chciałbym móc je rozdać, ale one kosztują 25 monet.","Bem que eu queria poder dar de graça, mas custam 25 de ouro.",,,"С радостью бы отдал, но они по 25 золотых.", -Field surgery kit,TXT_RPLY2_SCRIPT02_D24256_FIELD,,,,Chirurgickou soupravu,Erste-Hilfe-Kasten,,,Kit Quirúrgico,,,Kit de chirurgie,,,手術キット,수술 키트,Polowy zestaw chirurga,Kit de cirurgia,,,Медкомплект, -There you go. Take care now.,TXT_RYES2_SCRIPT02_D24256_THERE,,,,Tady máš. Buď opatrný.,Bitte schön. Mach's gut.,,,Aquí Tienes. Cuídate.,,,Voilà pour vous. Faites attention à vous maintenant.,,,こちらになります、お気をつけて。,여기 있습니다. 잘 쓰세요.,Proszę bardzo. Trzymaj się.,Aqui está. Se cuida.,,,Пожалуйста. Береги себя!, -"Well, maybe you can afford some med patches?",TXT_RNO2_SCRIPT02_D24256_WELLM,,,,"No, možná by sis mohl spíš dovolit nějaké obvazy?","Nun, vielleicht kannst du dir ein paar medizinische Bandagen leisten?",,,"Bien, ¿Quizás te alcance para algunos parches médicos?",,,"Eh bien, peut être que vous pouvez vous acheter quelques pansements?",,,ところで、医薬パッチを買う余裕はありますか?,글쎄요... 의료 붕대는 어떻습니까?,"Cóż, może stać cię na jakieś bandaże?","Bem, talvez você possa comprar algumas compressas?",,,"Тогда, может быть, купишь несколько бинтов?", +","Надам се да Мацил зна шта ради. Ако одред сазна да помажем Фронту мртав сам... Није да вам је то битно. Лекар ми је дао за тебе чип за надоградњу, јеси спреман? " +"Yes, I'm ready.",TXT_RPLY0_SCRIPT02_D22740_YESIM,,,,"Ano, jsem připravený.","Ja, ich bin bereit.",,,"Si, estoy listo.",,,"Oui, je suis prêt.","Igen, készen állok.",,ああ、準備良しだ。,"좋아요, 준비 됐습니다.","Tak, jestem gotowy.","Sim, estou preparado.",,,"Да, готов.",Да. Спреман сам. +"Well then, this won't take but a second. There, done already.",TXT_RYES0_SCRIPT02_D22740_WELLT,,,,"Tak dobře, měla by to být jen vteřinka. Tak, a je hotovo.","Nun dann, das wird nicht mal eine Sekunde dauern. So, bereits erledigt.",,,"Bueno entonces. Esto no tomará sino un segundo. Bien, hecho.",,,"Bon, cela ne prendra qu'une seconde. Voilà, c'est fait.","Jól van hát, nem fog csak egy pár másodpercig tartani... És kész is.",,それでは、これに時間は掛かりません。はい、完了しました。,"그럼 잠깐이면 됩니다. 자, 다 됐어요.","Dobrze więc, to zajmie tylko sekundę. Już, gotowe.","Muito bem, isso vai levar um segundo. Pronto, já terminei.",,,"Хорошо. Секундочку... Всё, готово.","Па, ово ће трајати једну секунду. Ето, већ завршено." +How may I assist you?,TXT_DLG_SCRIPT02_D24256_HOWMA,,,,Jak ti mohu pomoci?,Wie kann ich dir helfen?,,,¿Cómo puedo ayudarte?,,,Comment puis-je vous assister?,Miben segíthetek?,,何かお困りですか?,어떻게 도와드릴까요?,Jak mogę ci pomóc?,Como posso ajudá-lo?,,,Чем могу тебе помочь?,Како вам могу помоћи? +Med patch,TXT_RPLY0_SCRIPT02_D24256_MEDPA,,,,Obvazy,Medizinische Bandage,,,Parche Médico,,,Pansement,,,医薬パッチ,의료 붕대,Bandaż,Compressa médica,,,Бинтами,Фластери +Here's your patch.,TXT_RYES0_SCRIPT02_D24256_HERES,,,,Tady je tvůj obvaz.,Hier ist deine Bandage,,,Aquí tienes tu parche.,,,Voilà votre pansement.,,,これをどうぞ。,여기 의료 붕대입니다.,Oto twój bandaż.,Aqui está sua compressa,,,Вот они.,Ево ваших фластера +You need 10 gold for that.,TXT_RNO0_SCRIPT02_D24256_YOUNE,,,,Na ty potřebuješ deset zlatých.,Dafür brauchst du 10 Gold.,,,Necesitarás 10 de oro para esto.,,,Il vous faut 10 pièces pour cela.,,,10 ゴールド必要です。,10 골드가 필요한데.,Potrzebujesz 10 monet aby to kupić.,Você precisa de 10 de ouro pra isso.,,,Тебе не хватает 10 золотых.,Треба вам 10 златника за то. +Medical kit,TXT_RPLY1_SCRIPT02_D24256_MEDIC,,,,Lékárničku,Verbandskasten,,,Kit Médico,,,Kit médical,,,医療用キット,구급 키트,Apteczka,Kit médico.,,,Аптечкой,Медицински комплет +Thank you.,TXT_RYES1_SCRIPT02_D24256_THANK,,,,Děkuji.,Danke.,,,Gracias.,,,Merci.,,,ありがとうございます。,또 오세요.,Dziękuję.,Obrigado.,,,Спасибо.,Хвала. +"I wish I could give them away, but they cost 25 gold.",TXT_RNO1_SCRIPT02_D24256_IWISH,,,,"Přál bych si je dávat zadarmo, ale stojí 25 zlatých.","Ich wünschte ich könnte sie weggeben, aber sie kosten 25 Gold.",,,"Ojalá pudiera regalarlos, pero cuestan 25 de oro.",,,"J'aimerais vraiment les donner gratuitement, mais cela côute 25 pièces.",,,譲渡したい所ですが、25 ゴールド必要です。,25 골드만 있다면 이건 당신 것인데 말이죠.,"Chciałbym móc je rozdać, ale one kosztują 25 monet.","Bem que eu queria poder dar de graça, mas custam 25 de ouro.",,,"С радостью бы отдал, но они по 25 золотых.","Волео бих да их могу дати, али коштају 25 златника" +Field surgery kit,TXT_RPLY2_SCRIPT02_D24256_FIELD,,,,Chirurgickou soupravu,Erste-Hilfe-Kasten,,,Kit Quirúrgico,,,Kit de chirurgie,,,手術キット,수술 키트,Polowy zestaw chirurga,Kit de cirurgia,,,Медкомплект,Комплет за операцију на терену +There you go. Take care now.,TXT_RYES2_SCRIPT02_D24256_THERE,,,,Tady máš. Buď opatrný.,Bitte schön. Mach's gut.,,,Aquí Tienes. Cuídate.,,,Voilà pour vous. Faites attention à vous maintenant.,,,こちらになります、お気をつけて。,여기 있습니다. 잘 쓰세요.,Proszę bardzo. Trzymaj się.,Aqui está. Se cuida.,,,Пожалуйста. Береги себя!,Изволите. Чувајте се. +"Well, maybe you can afford some med patches?",TXT_RNO2_SCRIPT02_D24256_WELLM,,,,"No, možná by sis mohl spíš dovolit nějaké obvazy?","Nun, vielleicht kannst du dir ein paar medizinische Bandagen leisten?",,,"Bien, ¿Quizás te alcance para algunos parches médicos?",,,"Eh bien, peut être que vous pouvez vous acheter quelques pansements?",,,ところで、医薬パッチを買う余裕はありますか?,글쎄요... 의료 붕대는 어떻습니까?,"Cóż, może stać cię na jakieś bandaże?","Bem, talvez você possa comprar algumas compressas?",,,"Тогда, может быть, купишь несколько бинтов?","Па, можда можете да приуштите нешто фластера?" "Hello stranger, I haven't seen you around here before. Let me give you a piece of free advice. I'd be careful if I were you. The Order does not tolerate free will, and their justice is swift.",TXT_DLG_SCRIPT02_D25772_HELLO,,,,"Vítej, cizinče, tebe jsem tu ještě neviděl. Tady je drobná rada na začátek grátis: Být tebou, byl bych opatrný. Řád netoleruje svobodnou vůli a jejich spravedlnost je hbitá. ","Hallo, Fremder. Ich habe dich hier vorher noch nie gesehen. Lass mich dir einen kostenlosen Rat geben. An deiner Stelle wäre ich vorsichtig. Der Orden duldet keinen freien Willen und sie greifen hart durch.",,,"Hola extranjero, no te he visto por aquí antes. Déjame darte un consejo gratis. Tendría cuidado si fuera tú. La orden no tolera el libre albedrío, y su justicia es veloz.",,,"Bien le bonjour, étranger. On ne vous a pas encore vu dans ce coin. Laissez-moi vous donner un petit conseil. Je ferais attention si j'étais vous. L'Ordre ne tolère pas le libre arbitre et leur justice est fulgurante.",,,"どうも余所者、この辺では見かけない顔だな。 では一杯アドバイスをおごろう。この付近が 自由な発言を許さないからって下手な真似は するなよ。オーダーという自警団がすぐに -駆けつけてくるぞ。","안녕하신가 이방인이여, 자네는 이곳에서 처음 보는 얼굴이군. 내가 자네에게 공짜 조언을 해주지. 내가 자네라면 조심할 거야. 오더는 자유의지를 용납하지 않아. 그리고 그들의 정의는 신속하지.","Witaj nieznajomy, nigdy cie tu wcześniej nie widziałem. Dam ci darmową radę. Na twoim miejscu bym uważał. Zakon nie toleruje wolnej woli, a ich prawo działa prędko.","Olá, forasteiro. Nunca vi você por aqui antes. Deixa eu te dar um conselho de graça. Eu tomaria cuidado se eu fosse você. A Ordem não tolera livre arbítrio e a justiça deles é rápida.",,,"Привет, незнакомец. Что-то я не видел тебя тут раньше. Позволь дать тебе бесплатный совет: я на твоём месте был бы поосторожнее. Орден не терпит неповиновения, и они быстры на правосудие.", -What's the word?,TXT_RPLY0_SCRIPT02_D25772_WHATS,,,,Nějaké zvěsti?,Was erzählt man sich so?,,,¿Qué se dice por aquí?,,,C'est quoi la rumeur?,,,他には?,무슨 뜻이죠?,Jakieś wieści?,Quais são as últimas?,,,Есть новости?, -The word is... The sewers hold more than just rats and robots.,TXT_RYES0_SCRIPT02_D25772_THEWO,,,,Zvěsti jsou... že stoky ukrývají víc než jen krysy a roboty.,"Man erzählt sich, dass die Kanalisation mehr als Ratten und Roboter zu bieten hat.",,,Se dice que... Las alcantarillas albergan más que solo ratas y robots.,,,La rumeur est.. Que les égouts cachent quelque chose de plus gros que des rats et des robots.,,,他は...下水道には鼠やロボが沢山だ。,"무슨 말이냐 하면, 하수도 안에는 시궁쥐만 있는 게 아니라 로봇들도 숨어 있다는 거지.","Wieści są takie, że... kanały skrywają coś więcej niż tylko szczury i roboty.",As ultimas são... Que os esgotos abrigam mais do que apenas ratos e robôs.,,,В канализации водятся не только крысы и роботы., -What can I do for you now?,TXT_DLG_SCRIPT02_D27288_WHATC,,,,Co pro tebe můžu udělat teď?,Was kann ich jetzt für dich tun?,,,¿Qué puedo hacer por ti?,,,Que puis-je faire pour vous?,Mit tehetek ma Önért?,,何か用か?,이제 자네에게 무엇을 해드릴까?,Co mogę dla ciebie zrobić?,O que posso fazer por você agora?,,,Тебе что-нибудь нужно?, -More info.,TXT_RPLY0_SCRIPT02_D27288_MOREI,,,,Další informace,Mehr Informationen.,,,Más información.,,,Plus d'infos.,Több információt.,,話のネタ。,더 많은 정보를 주세요.,Więcej informacji.,Mais informações.,,,Расскажи больше, -The Governor is a simple reminder to us that we aren't free people anymore.,TXT_RYES0_SCRIPT02_D27288_THEGO,,,,"Náš guvernér je hezkou přípomínkou toho, že už nejsme svobodní.","Der Gouverneur ist eine einfache Erinnerung daran, das wir keine freien Menschen mehr sind.",,,El gobernador es un simple recordatorio de que ya no somos personas libres.,,,Le gouverneur n'est qu'un exemple parmi d'autres pour nous montrer que ne nous somme plus un peuple libre.,"A Kormányzó egy egyszerű emlékeztető számunkra, hogy többé nem vagyunk szabad emberek.",,知事は俺達に自由はないと思い出させる象徴さ。,모렐 총독은 우리들이 자유롭게 남들을 도울 수 없는 이유 중 하나이기도 하다네.,"Gubernator jest dla nas przypomnieniem, że już nie jesteśmy wolnymi ludźmi.",O Governador é um simples lembrete para nós de que não somos mais um povo livre.,,,"Губернатор — живое напоминание, что мы больше не свободные люди.", -Come back when you get some gold.,TXT_RNO0_SCRIPT02_D27288_COMEB,,,,"Vrať se, až budeš mít trochu zlata.","Komm zurück, wenn du etwas Gold hast.",,,Vuelve cuando hayas obtenido algo de oro.,,,Revenez quand vous avez de l'argent.,"Majd akkor térj vissza, ha szeretél egy kis aranyat.",,銭を一杯分持って戻ってきな。,골드가 더 있다면 더 알려주지.,Wróć kiedy będziesz miał więcej monet.,Volte quando tiver ouro.,,,"Возвращайся, когда у тебя будет золото.", +駆けつけてくるぞ。","안녕하신가 이방인이여, 자네는 이곳에서 처음 보는 얼굴이군. 내가 자네에게 공짜 조언을 해주지. 내가 자네라면 조심할 거야. 오더는 자유의지를 용납하지 않아. 그리고 그들의 정의는 신속하지.","Witaj nieznajomy, nigdy cie tu wcześniej nie widziałem. Dam ci darmową radę. Na twoim miejscu bym uważał. Zakon nie toleruje wolnej woli, a ich prawo działa prędko.","Olá, forasteiro. Nunca vi você por aqui antes. Deixa eu te dar um conselho de graça. Eu tomaria cuidado se eu fosse você. A Ordem não tolera livre arbítrio e a justiça deles é rápida.",,,"Привет, незнакомец. Что-то я не видел тебя тут раньше. Позволь дать тебе бесплатный совет: я на твоём месте был бы поосторожнее. Орден не терпит неповиновения, и они быстры на правосудие.","Здраво странче, нисам те раније виђао овде. Дај да ти дам савет. Да сам ти био бих опрезан. Одред не толерише слободну вољу, и њихова правда је брза." +What's the word?,TXT_RPLY0_SCRIPT02_D25772_WHATS,,,,Nějaké zvěsti?,Was erzählt man sich so?,,,¿Qué se dice por aquí?,,,C'est quoi la rumeur?,,,他には?,무슨 뜻이죠?,Jakieś wieści?,Quais são as últimas?,,,Есть новости?,Која је реч? +The word is... The sewers hold more than just rats and robots.,TXT_RYES0_SCRIPT02_D25772_THEWO,,,,Zvěsti jsou... že stoky ukrývají víc než jen krysy a roboty.,"Man erzählt sich, dass die Kanalisation mehr als Ratten und Roboter zu bieten hat.",,,Se dice que... Las alcantarillas albergan más que solo ratas y robots.,,,La rumeur est.. Que les égouts cachent quelque chose de plus gros que des rats et des robots.,,,他は...下水道には鼠やロボが沢山だ。,"무슨 말이냐 하면, 하수도 안에는 시궁쥐만 있는 게 아니라 로봇들도 숨어 있다는 거지.","Wieści są takie, że... kanały skrywają coś więcej niż tylko szczury i roboty.",As ultimas são... Que os esgotos abrigam mais do que apenas ratos e robôs.,,,В канализации водятся не только крысы и роботы.,Реч је... Канализација садржи више сем пацова и робота. +What can I do for you now?,TXT_DLG_SCRIPT02_D27288_WHATC,,,,Co pro tebe můžu udělat teď?,Was kann ich jetzt für dich tun?,,,¿Qué puedo hacer por ti?,,,Que puis-je faire pour vous?,Mit tehetek ma Önért?,,何か用か?,이제 자네에게 무엇을 해드릴까?,Co mogę dla ciebie zrobić?,O que posso fazer por você agora?,,,Тебе что-нибудь нужно?,Како вам могу помоћи сада? +More info.,TXT_RPLY0_SCRIPT02_D27288_MOREI,,,,Další informace,Mehr Informationen.,,,Más información.,,,Plus d'infos.,Több információt.,,話のネタ。,더 많은 정보를 주세요.,Więcej informacji.,Mais informações.,,,Расскажи больше,Више информације. +The Governor is a simple reminder to us that we aren't free people anymore.,TXT_RYES0_SCRIPT02_D27288_THEGO,,,,"Náš guvernér je hezkou přípomínkou toho, že už nejsme svobodní.","Der Gouverneur ist eine einfache Erinnerung daran, das wir keine freien Menschen mehr sind.",,,El gobernador es un simple recordatorio de que ya no somos personas libres.,,,Le gouverneur n'est qu'un exemple parmi d'autres pour nous montrer que ne nous somme plus un peuple libre.,"A Kormányzó egy egyszerű emlékeztető számunkra, hogy többé nem vagyunk szabad emberek.",,知事は俺達に自由はないと思い出させる象徴さ。,모렐 총독은 우리들이 자유롭게 남들을 도울 수 없는 이유 중 하나이기도 하다네.,"Gubernator jest dla nas przypomnieniem, że już nie jesteśmy wolnymi ludźmi.",O Governador é um simples lembrete para nós de que não somos mais um povo livre.,,,"Губернатор — живое напоминание, что мы больше не свободные люди.",Гувернер нам је једноставан подсетник да ми више нисмо слободни људи. +Come back when you get some gold.,TXT_RNO0_SCRIPT02_D27288_COMEB,,,,"Vrať se, až budeš mít trochu zlata.","Komm zurück, wenn du etwas Gold hast.",,,Vuelve cuando hayas obtenido algo de oro.,,,Revenez quand vous avez de l'argent.,"Majd akkor térj vissza, ha szeretél egy kis aranyat.",,銭を一杯分持って戻ってきな。,골드가 더 있다면 더 알려주지.,Wróć kiedy będziesz miał więcej monet.,Volte quando tiver ouro.,,,"Возвращайся, когда у тебя будет золото.",Врати се када имаш више златника. "Well, you're asking a lot of questions for someone who's not trying to die. Make sure you don't go and get yourself killed, or worse.",TXT_DLG_SCRIPT02_D28804_WELLY,,,,"Na někoho, kdo se nesnaží zemřít, se hodně ptáš. Dej si pozor a nenech se zabít, nebo něco horšího.","Hmm, du stellst aber ziemlich viele Fragen für jemand der nicht versucht zu sterben. Lass dich nicht umbringen, oder schlimmeres.",,,"Bueno, estás haciendo muchas preguntas para ser alguien que no está tratando de morir. Asegúrate que no vayas a hacer que te maten o algo peor.",,,"Vous posez beaucoup de questions pour quelqu'un qui n'essaie pas de se faire tuer. Essayez donc de ne pas vous faire descendre, ou pire.","Figyelj, elég sok kérdést teszel fel, ahhoz képest, hogy elvileg nem akarsz meghalni. Igyekezz nem kinyiratni magad a továbbiakban, vagy rosszabb.",,"所で、アンタは死に行かない人達に 聞き回ってる様だが。悪いことは言わねえ、 -あんまし死に急ぐんじゃねえぞ。",죽지 않으려고 발버둥 치듯이 질문을 많이 하는구먼. 무장한 곳에 무모하게 가서 죽지나 말게.,"Cóż, zadajesz dużo pytań jak na kogoś, kto próbuje nie zginąć. Upewnij się, że nie dasz się zabić jak pójdziesz. Lub gorzej.","Bom, você está fazendo um monte de perguntas pra alguém que não está tentando morrer. Procure não acabar sendo morto por aí, ou coisa pior.",,,"Ты задаёшь слишком много вопросов для того, кто не хочет сдохнуть. Перед тем, как выйти отсюда, проверь своё оружие.", -More info.,TXT_RPLY0_SCRIPT02_D28804_MOREI,,,,Další informace,Mehr Informationen.,,,Más información.,,,Plus d'infos.,Több infót.,,話のネタ。,정보를 좀 더 알려주시오.,Więcej informacji.,Mais informações.,,,Говори дальше, -There's more to the Order than meets the eye.,TXT_RYES0_SCRIPT02_D28804_THERE,,,,"Za Řádem se toho skrývá víc, než se zdá.",An dem Orden ist mehr dran als man auf den ersten Blick denkt.,,,Hay más de la Orden de lo que parece.,,,L'Ordre cache bien son jeu.,"Több van a Rend mögött, mint amit a szemünk lát.",,オーダーは見えてる以上に強大だ。,오더의 뒤에는 더 많은 것들이 숨겨져 있다네. 비밀 같은 것들 말일세.,"Zakonu jest więcej, niż się wydaje.",Há mais sobre a Ordem do que aparenta.,,,"Орден — нечто большее, чем кажется.", -We'll talk when you get gold!,TXT_RNO0_SCRIPT02_D28804_WELLT,,,,"Popovídáme si, když budeš mít zlato!","Wir werden reden, wenn du Gold hast!",,,¡Hablaremos cuando traigas oro!,,,On parlera quand tu auras des sous!,"Majd beszélünk, ha lesz aranyad.",,銭を持ってたら話すさ!,골드를 더 가져오면 의논을 시작해보지.,Pomówimy jeśli masz złoto.,Conversaremos quando você tiver ouro!,,,"Поговорим, когда принесешь золото!", +あんまし死に急ぐんじゃねえぞ。",죽지 않으려고 발버둥 치듯이 질문을 많이 하는구먼. 무장한 곳에 무모하게 가서 죽지나 말게.,"Cóż, zadajesz dużo pytań jak na kogoś, kto próbuje nie zginąć. Upewnij się, że nie dasz się zabić jak pójdziesz. Lub gorzej.","Bom, você está fazendo um monte de perguntas pra alguém que não está tentando morrer. Procure não acabar sendo morto por aí, ou coisa pior.",,,"Ты задаёшь слишком много вопросов для того, кто не хочет сдохнуть. Перед тем, как выйти отсюда, проверь своё оружие.","Па, постаљате много питања за некога ко не жели да умре. Побрините се да не идете и погинете, или горе. " +More info.,TXT_RPLY0_SCRIPT02_D28804_MOREI,,,,Další informace,Mehr Informationen.,,,Más información.,,,Plus d'infos.,Több infót.,,話のネタ。,정보를 좀 더 알려주시오.,Więcej informacji.,Mais informações.,,,Говори дальше,Више информације. +There's more to the Order than meets the eye.,TXT_RYES0_SCRIPT02_D28804_THERE,,,,"Za Řádem se toho skrývá víc, než se zdá.",An dem Orden ist mehr dran als man auf den ersten Blick denkt.,,,Hay más de la Orden de lo que parece.,,,L'Ordre cache bien son jeu.,"Több van a Rend mögött, mint amit a szemünk lát.",,オーダーは見えてる以上に強大だ。,오더의 뒤에는 더 많은 것들이 숨겨져 있다네. 비밀 같은 것들 말일세.,"Zakonu jest więcej, niż się wydaje.",Há mais sobre a Ordem do que aparenta.,,,"Орден — нечто большее, чем кажется.",Има више од Одреда него што се види +We'll talk when you get gold!,TXT_RNO0_SCRIPT02_D28804_WELLT,,,,"Popovídáme si, když budeš mít zlato!","Wir werden reden, wenn du Gold hast!",,,¡Hablaremos cuando traigas oro!,,,On parlera quand tu auras des sous!,"Majd beszélünk, ha lesz aranyad.",,銭を持ってたら話すさ!,골드를 더 가져오면 의논을 시작해보지.,Pomówimy jeśli masz złoto.,Conversaremos quando você tiver ouro!,,,"Поговорим, когда принесешь золото!",Разговараћемо када имаш златнике! "That's it friend, the well of knowledge has run dry. I've told you more than I should have anyway. Good luck... And don't come back.",TXT_DLG_SCRIPT02_D30320_THATS,,,,"A to je vše, příteli, studnice mé moudrosti vyschla. Stejně jsem ti řekl víc, než jsem měl. Hodně štěstí... a už se nevracej.","Das war's mein Freund, der Brunnen der Weisheit ist versiegt. Ich habe dir sowieso mehr erzählt als ich sollte. Viel Glück... und komm nicht zurück.",,,Ya está amigo. El pozo del conocimiento se ha secado. De todas formas te he dicho más de lo que debería. Buena suerte ... y no vuelvas.,,,"Eh bien voilà, mon ami, le puits de la connaîssance s'est enfin asséché.. Je t'en ai dit plus que je n'aurai du, de toutes manières! Bonne chance.. Et ne reviens pas!","Ez az, barátom. A tudás kútja kiszáradt. Többször mondtam neked kelleténél amúgy. Sok szerencsét... És ne gyere vissza.",,"これはこれは親友、心得の瓶は切らしてるぞ。 とにかく俺が知ってる話はこれで全部だ。 -頑張りな...それともう来なくていいぞ。","친구여... 안타깝게도 지식의 우물은 이제 고갈됐다네. 내가 알려줄 수 있는 걸 다 알려줬거든. 건투를 빌겠네, 그리고 다시 돌아오지는 말고.","To wszystko kolego, studnia wiedzy wyschła. Powiedziałem ci więcej niż powinienem. Powodzenia... I nie wracaj.","Isso é tudo, amigo. O poço de conhecimento está seco. Já te contei tudo o que eu deveria, de qualquer forma. Boa sorte... E não volte mais aqui.",,,"Это всё, дружище. Кладезь мудрости исчерпан. Я и так рассказал тебе больше, чем следовало. Удачи... и не возвращайся.", +頑張りな...それともう来なくていいぞ。","친구여... 안타깝게도 지식의 우물은 이제 고갈됐다네. 내가 알려줄 수 있는 걸 다 알려줬거든. 건투를 빌겠네, 그리고 다시 돌아오지는 말고.","To wszystko kolego, studnia wiedzy wyschła. Powiedziałem ci więcej niż powinienem. Powodzenia... I nie wracaj.","Isso é tudo, amigo. O poço de conhecimento está seco. Já te contei tudo o que eu deveria, de qualquer forma. Boa sorte... E não volte mais aqui.",,,"Это всё, дружище. Кладезь мудрости исчерпан. Я и так рассказал тебе больше, чем следовало. Удачи... и не возвращайся.","То је то пријатељу, бунар мудрости се исушио. Свакако сам ти рекао више него што сам требао. Срећно... И немој се враћати." "Hey, I'm only here in case of an emergency. If the core breaches, then I make sure no one gets in... or out.",TXT_DLG_SCRIPT02_D31836_HEYIM,,,,"Hej, já jsem tu jen pro případ nouze. Jestli se něco stane s jádrem, zajistím, že se nikdo nedostane dovnitř... ani ven.","Hey, ich bin nur für den Fall eines Notfalls hier. Im Falle eines Kernbruchs sorge ich dafür das niemand rein kommt... oder raus.",,,"Oye, sólo estoy aquí en caso de una emergencia. Si el núcleo se rompe, entonces me aseguro de que nadie entre... o salga.",,,"Hé, je ne suis là qu'en cas d'urgence. Si le coeur a une brèche, il faut que je fasse en sorte que rien ne rentre.. Ou ne sorte.","Hé, én csak vészhelyzet esetén vagyok itt. Ha a mag kitör, akkor elintázem, hogy senki ne jöjjön be... vagy ki.",,"おう、俺は緊急時の為にここにいる。 コアが破壊されないか、誰が入っているかを -確認している...出ていくのもな。","이봐, 난 비상사태를 대비해서 여기에 있는 거라고. 만약 중심부가 파괴되면, 그 누구도 들어올 수 없게 막을 거야... 도망치는 사람도 포함해서.","Hej, jestem tu tylko w razie wypadku. Jeśli rdzeń zostanie naruszony, wtedy upewniam się, że nikt tam nie wejdzie... lub stamtąd nie wyjdzie.","Ei, só estou aqui em caso de uma emergência. Se o núcleo se romper, preciso garantir que ninguém entre... ou saia.",,,"Слушай, меня сюда поставили на всякий случай. Если реактор даст течь, я позабочусь, чтобы никто не вошёл... и не вышел.", +確認している...出ていくのもな。","이봐, 난 비상사태를 대비해서 여기에 있는 거라고. 만약 중심부가 파괴되면, 그 누구도 들어올 수 없게 막을 거야... 도망치는 사람도 포함해서.","Hej, jestem tu tylko w razie wypadku. Jeśli rdzeń zostanie naruszony, wtedy upewniam się, że nikt tam nie wejdzie... lub stamtąd nie wyjdzie.","Ei, só estou aqui em caso de uma emergência. Se o núcleo se romper, preciso garantir que ninguém entre... ou saia.",,,"Слушай, меня сюда поставили на всякий случай. Если реактор даст течь, я позабочусь, чтобы никто не вошёл... и не вышел.","Хеј, ја сам овде само у случају нужде. Ако се језгро пробије, онда се ја постарам да нико не уђе... или изађе." "Watch your step, peasant!",TXT_DLG_SCRIPT02_D33352_WATCH,,,,"Dávej si na sebe pozor, poddaný! -","Pass auf wo du hintrittst, Bauer!",,,"¡Cuida por donde caminas, campesino!",,,"Regarde où tu va, paysan!","Nézz a lábad elé, jobbágy!",,気を付けろ、田舎モン!,"똑바로 보고 다녀라, 시민!",Uważaj jak leziesz kmiocie!,"Cuida por onde anda, plebeu!",,,"Смотри, куда прёшь, рабочий!", +","Pass auf wo du hintrittst, Bauer!",,,"¡Cuida por donde caminas, campesino!",,,"Regarde où tu va, paysan!","Nézz a lábad elé, jobbágy!",,気を付けろ、田舎モン!,"똑바로 보고 다녀라, 시민!",Uważaj jak leziesz kmiocie!,"Cuida por onde anda, plebeu!",,,"Смотри, куда прёшь, рабочий!","Пази се, сељаку!" We're going to kill you! ,TXT_DLG_SCRIPT02_D34868_WEREG,,,,Zabijeme tě!,Wir werden dich umbringen!,,,"¡Vamos a matarte! -",,,On va te descendre!,Megdöglesz!,,お前を粛正する!,우린 널 죽일거야!,Zabijemy cię!,Nós vamos matar você!,,,Готовься к смерти!, +",,,On va te descendre!,Megdöglesz!,,お前を粛正する!,우린 널 죽일거야!,Zabijemy cię!,Nós vamos matar você!,,,Готовься к смерти!,Спреми се да умреш! Who in the blazes are you? No one's supposed to be loitering about in this area!,TXT_DLG_SCRIPT02_D36384_WHOIN,,,,Kdo k čertu jsi? Tady se nikdo nemá potloukat!,Wer zum Teufel bist du? Hier soll doch eigentlich niemand rumschnüffeln!,,,¿Quién diantres eres tú? ¡Se supone que nadie debería de estar merodeando por esta área!,¿Quién demonios eres tú? ¡Se supone que nadie debería de estar merodeando por esta área!,,Qu'est ce que c'est ça? Que faites vous ici? Personne n'est sensé se trouver dans cette zone!,Te meg ki az Isten nyila vagy? Senki sem csavaroghat ebben a körzetben.,,"誰だお前は?この区域を立ち入ることは 許されていないぞ! -",너는 누구지? 아무도 이 지역에서 어슬렁거릴 수 없다!,Kim u diaska jesteś? Nikt nie powinien się tu włóczyć!,Quem diabos é você? Não pode ficar perambulando por aqui!,,,"Кто ты, чёрт побери, такой? Никому не разрешено тут шляться!", -"You there, nobody's allowed in here. Move along!",TXT_DLG_SCRIPT02_D37900_YOUTH,,,,"Hej ty, sem nikdo nesmí. Jdi dál!","Hey, du da. Hier darfst du nicht rein. Geh weiter!",,,"¡Oye tú! No está permitido que estés aquí, ¡Muévete!",,,"Vous, là, personne n'est autorisé à traîner ici, dégagez!","Te ott, ide senki sem jöhet be, kotródj!",,お前は許可していないぞ。立ち去れ!,"거기 너, 아무도 이곳에 지나갈 수 없다. 가던 길이나 가!","Ty tutaj, nikt nie ma prawa tu przebywać. Wynocha!","Ei você, não pode ficar aqui. Vá embora!",,,"Эй, ты! Никому не позволено тут ошиваться. Проваливай!", -Irale will set you right up!,TXT_DLG_SCRIPT02_D39416_IRALE,,,,Irale tě hned vyzbrojí!,Irale wird sich darum kümmern!,,,¡Irale te pondrá a punto!,¡Irale te pondrá listo!,,Irale a ce qu'il te faut!,,,イラールが貴方を手助けします!,여기 이롤리가 중요한 물품을 판매할 거야.,Irale dobrze cię przygotuje!,O Irale vai te ajudar!,,,Ирэйл снабдит тебя всем необходимым!, +",너는 누구지? 아무도 이 지역에서 어슬렁거릴 수 없다!,Kim u diaska jesteś? Nikt nie powinien się tu włóczyć!,Quem diabos é você? Não pode ficar perambulando por aqui!,,,"Кто ты, чёрт побери, такой? Никому не разрешено тут шляться!",Ко си па сад ти? Нико не би требао да лута у овој области! +"You there, nobody's allowed in here. Move along!",TXT_DLG_SCRIPT02_D37900_YOUTH,,,,"Hej ty, sem nikdo nesmí. Jdi dál!","Hey, du da. Hier darfst du nicht rein. Geh weiter!",,,"¡Oye tú! No está permitido que estés aquí, ¡Muévete!",,,"Vous, là, personne n'est autorisé à traîner ici, dégagez!","Te ott, ide senki sem jöhet be, kotródj!",,お前は許可していないぞ。立ち去れ!,"거기 너, 아무도 이곳에 지나갈 수 없다. 가던 길이나 가!","Ty tutaj, nikt nie ma prawa tu przebywać. Wynocha!","Ei você, não pode ficar aqui. Vá embora!",,,"Эй, ты! Никому не позволено тут ошиваться. Проваливай!","Хеј, ти, никоме није дозвољено да дође овђе. Мрдај одавде!" +Irale will set you right up!,TXT_DLG_SCRIPT02_D39416_IRALE,,,,Irale tě hned vyzbrojí!,Irale wird sich darum kümmern!,,,¡Irale te pondrá a punto!,¡Irale te pondrá listo!,,Irale a ce qu'il te faut!,,,イラールが貴方を手助けします!,여기 이롤리가 중요한 물품을 판매할 거야.,Irale dobrze cię przygotuje!,O Irale vai te ajudar!,,,Ирэйл снабдит тебя всем необходимым!,Ирале ће се одмах постарати за вас! I'm kinda a talent broker for the rebels. A guy who's as good as you could make a lot of gold... if you hooked up with the right people.,TXT_DLG_SCRIPT02_D40932_IMKIN,,,,Jsem takový hledač talentů pro rebely. Někdo tak dobrý jako ty by si mohl vydělat hodně zlata... pokud by se spojil s těmi správnými lidmi.,"Ich bin sowas wie ein Talentsucher für die Rebellen. Jemand, der so gut ist wie du kann hier eine Menge Gold verdienen... wenn du mit den richtigen Leuten in Verbindung stehst.",,,Soy algo así como un buscador de talento para los rebeldes. Alguien que es tan bueno como tú podría ganar mucho oro... Si te juntas con las personas adecuadas.,,,"Je suis une sorte de chasseur de têtes pour les rebelles. Un type comme toi pourrait se faire pas mal de fric... Avec les bons contacts, bien entendu.",,,"俺は反乱者への斡旋屋さ。才能を生かして 誰よりも儲けたいと思ってるなら... 相応しい人と関係を持つことさ。 -",난 반란군을 위한 일종의 재능 중개인이야. 당신만큼 좋은 사람이라면 많은 돈을 벌 수 있겠지... 당신이 제대로 된 사람들과 연결되어 있다면.,Jestem tak jakby pośrednikiem rebeliantów. Człowiek tak dobry jak ty może zarobić dużo pieniędzy... jeśli trzymasz z właściwymi ludźmi.,Sou tipo um olheiro de talentos para rebeldes. Um cara tão bom quanto você poderia fazer bastante grana... se você se juntar às pessoas certas.,,,"Я, скажем так, вербовщик повстанцев. Такой парень, как ты, может неплохо заработать... если состыкуется с нужными людьми.", -I'm interested.,TXT_RPLY0_SCRIPT02_D40932_IMINT,,,,Mám zájem.,Ich bin interessiert.,,,Me interesa.,,,Je suis intéressé.,Érdekel.,,興味ある。,흥미롭군.,Jestem zainteresowany.,Estou interessado.,,,Я заинтригован., -Screw the rebels!,TXT_RPLY1_SCRIPT02_D40932_SCREW,,,,Kašlu na rebely!,Scheiß auf die Rebellen!,,,¡Al demonio los rebeldes!,,,Je m'en fous des rebelles!,Francba a lázadókkal!,,何が反逆だ!,반란군은 집어치워!,Pieprzyć rebeliantów!,Que se danem os rebeldes!,,,К чёрту повстанцев!, +",난 반란군을 위한 일종의 재능 중개인이야. 당신만큼 좋은 사람이라면 많은 돈을 벌 수 있겠지... 당신이 제대로 된 사람들과 연결되어 있다면.,Jestem tak jakby pośrednikiem rebeliantów. Człowiek tak dobry jak ty może zarobić dużo pieniędzy... jeśli trzymasz z właściwymi ludźmi.,Sou tipo um olheiro de talentos para rebeldes. Um cara tão bom quanto você poderia fazer bastante grana... se você se juntar às pessoas certas.,,,"Я, скажем так, вербовщик повстанцев. Такой парень, как ты, может неплохо заработать... если состыкуется с нужными людьми.",Ја сам као талентовани трговац за побуњенике. Човек који је добар као ти би могао да заради доста златника... Ако се спетља са правим људима. +I'm interested.,TXT_RPLY0_SCRIPT02_D40932_IMINT,,,,Mám zájem.,Ich bin interessiert.,,,Me interesa.,,,Je suis intéressé.,Érdekel.,,興味ある。,흥미롭군.,Jestem zainteresowany.,Estou interessado.,,,Я заинтригован.,Заинтересован сам. +Screw the rebels!,TXT_RPLY1_SCRIPT02_D40932_SCREW,,,,Kašlu na rebely!,Scheiß auf die Rebellen!,,,¡Al demonio los rebeldes!,,,Je m'en fous des rebelles!,Francba a lázadókkal!,,何が反逆だ!,반란군은 집어치워!,Pieprzyć rebeliantów!,Que se danem os rebeldes!,,,К чёрту повстанцев!,Јеби побуњенике! "No, no second chance. Oh guards, kill him.",TXT_DLG_SCRIPT02_D42448_NONOS,,,,"Ne, žádná druhá šance. Á, stráže, zabte ho.","Nein, keine zweite Chance. Oh, Wachen, tötet ihn.",,,"No, no hay otra oportunidad. Oh guardias, mátenlo.",,,"Non, non, pas de deuxième chance. Gardes, tuez-le.","Nem, nincs második esély. Őrök, intézzétek el!",,"次はねえな。おぅガードの旦那、 -やっちゃってくだせえ。","안 돼, 두 번째 기회는 없어. 경비원, 저놈을 죽여.","Nie, nie będzie drugiej szansy. Oh... strażnicy, zabijcie go.","Não, sem segundas chances. Ah, guardas, matem ele.",,,"Нет, никакого второго шанса. Эй, стража, убейте его.", +やっちゃってくだせえ。","안 돼, 두 번째 기회는 없어. 경비원, 저놈을 죽여.","Nie, nie będzie drugiej szansy. Oh... strażnicy, zabijcie go.","Não, sem segundas chances. Ah, guardas, matem ele.",,,"Нет, никакого второго шанса. Эй, стража, убейте его.","Не, нема друге шансе. Стражари, побијте их." Good choice. The Order's sanctuary by the river is their unofficial torture chamber. Hidden inside there's a golden chalice. You swipe it and reap your reward.,TXT_DLG_SCRIPT02_D43964_GOODC,,,,Dobrá volba. Svatyně Řádu u řeky je jejich tajná mučírna. Uvnitř je skrytý zlatý kalich. Ukradni ho a převezmi si svou odměnu.,Gute Wahl. Das Heiligtum des Ordens bei dem Fluss ist ihre inoffiziele Folterkammer. Darin versteckt ist ein goldener Kelch. Du klaust ihn und erntest deinen Lohn.,,,Buena elección. El santuario de la Orden junto al río es su cámara de tortura no oficial. Escondido adentro hay un cáliz dorado. Tráemelo y recoges tú recompensa.,,,Bon choix. Le sanctuaire de l'ordre près de la rivière est leur chambre torture.. officieusement. A l'intérieur se trouve un calice en or. Récupérez le et venez prendre votre récompense.,"Jó választás. A Rend Szentélye a folyónál az ő nem hivatalos kínzókamrájuk. Odabent elrejtve található egy arany kehely. Elcsened, és learatod a dicsőséged",,"良い判断だ。川沿いにあるオーダーの聖域は あいつらの非公式の拷問室だ。中には黄金の 聖杯が隠してある。そいつを持ってくれば 報酬をやるぜ。 -",좋은 선택이야. 강가 근처에 있는 성소가 바로 오더의 비공식적인 고문실이야. 그리고 그 안에는 숨겨진 금색 성배가 있지. 넌 그것을 훔치고 보상을 받으면 돼.,Dobry wybór. Sanktuarium Zakonu nad rzeką to ich nieoficjalna sala tortur. Jest w niej ukryty złoty kielich. Zwijasz go i dostajesz swoją nagrodę.,Boa escolha. O santuário da Ordem perto do rio é a câmara de tortura não-oficial deles. Há um cálice dourado escondido dentro. Pegue-o e você recebe a sua recompensa.,,,Правильный выбор. В святилище Ордена у реки — там у них негласная камера пыток — спрятана золотая чаша. Ты крадёшь её и получаешь свою награду., -How am I supposed to do that?,TXT_RPLY0_SCRIPT02_D43964_HOWAM,,,,Jak to mám udělat?,Wie soll ich das anstellen?,,,¿Cómo se supone que debo hacer eso?,,,Comment est-ce que je suis sensé faire ça?,Mégis hogy kéne hozzálássak ehhez?,,どうすればいい?,내가 그걸 어떻게 하지?,Jak powinienem to zrobić?,Como eu vou conseguir fazer isso?,,,И как я это сделаю?, +",좋은 선택이야. 강가 근처에 있는 성소가 바로 오더의 비공식적인 고문실이야. 그리고 그 안에는 숨겨진 금색 성배가 있지. 넌 그것을 훔치고 보상을 받으면 돼.,Dobry wybór. Sanktuarium Zakonu nad rzeką to ich nieoficjalna sala tortur. Jest w niej ukryty złoty kielich. Zwijasz go i dostajesz swoją nagrodę.,Boa escolha. O santuário da Ordem perto do rio é a câmara de tortura não-oficial deles. Há um cálice dourado escondido dentro. Pegue-o e você recebe a sua recompensa.,,,Правильный выбор. В святилище Ордена у реки — там у них негласная камера пыток — спрятана золотая чаша. Ты крадёшь её и получаешь свою награду.,Добар избор. Одредово светилиште поред реке представља њихову незваничну собу за мучење. Сакривено унутра је златни пехар. Повучеш га и добијеш награду. +How am I supposed to do that?,TXT_RPLY0_SCRIPT02_D43964_HOWAM,,,,Jak to mám udělat?,Wie soll ich das anstellen?,,,¿Cómo se supone que debo hacer eso?,,,Comment est-ce que je suis sensé faire ça?,Mégis hogy kéne hozzálássak ehhez?,,どうすればいい?,내가 그걸 어떻게 하지?,Jak powinienem to zrobić?,Como eu vou conseguir fazer isso?,,,И как я это сделаю?,Како бих ја то требао урадити? "Here's a crossbow, just aim straight and --splat--. Remember, grab the fancy cup and get to the tavern.",TXT_DLG_SCRIPT02_D45480_HERES,,,,"Tady máš kuši, prostě zamiř rovně a --plesk--. Nezapomeň, popadni fešný hrnek a přijď do taverny.","Hier ist eine Armbust, einfach gerade zielen und --Platsch--. Denk dran, schnapp dir den schicken Kelch und dann ab zur Taverne.",,,"Toma una ballesta, solo apunta en línea recta y --splat--. Recuerda, toma la bonita copa y ven a la taberna.",,,Voilà une arbalète. Vous avez juste à viser droit et paf! Souvenez-vous. Prenez le goblet et ramenez le à la taverne.,"Itt a számszeríj. Csak célozz előre és -placcs- . Vésd az eszedbe, fogd a pofás kis csészét és menj a fogadóba!",,"このクロスボウを使いな、狙いを定めて --シュッとな。覚えておけ、 -ファンシーなカップを持ってここに戻ってこい。","여기 석궁이야, 똑바로 겨냥해, 그리고... '철퍼덕'. 기억해, 멋진 컵을 들고 선술집에 와.","Oto kusza, tylko wyceluj i --plask--. Pamiętaj, weź ozdobny puchar i wróć do tawerny.","Aqui está uma besta. Só mirar reto e --splat--. Lembre-se, pegue o copo bonito e vá pra taverna.",,,Вот арбалет — просто прицеливаешься и «шлёп!» Запомни — хватаешь чашку и возвращаешься в таверну., +ファンシーなカップを持ってここに戻ってこい。","여기 석궁이야, 똑바로 겨냥해, 그리고... '철퍼덕'. 기억해, 멋진 컵을 들고 선술집에 와.","Oto kusza, tylko wyceluj i --plask--. Pamiętaj, weź ozdobny puchar i wróć do tawerny.","Aqui está uma besta. Só mirar reto e --splat--. Lembre-se, pegue o copo bonito e vá pra taverna.",,,Вот арбалет — просто прицеливаешься и «шлёп!» Запомни — хватаешь чашку и возвращаешься в таверну.,"Ево ти самострел, само циљај право и --пљуц--. Запамти, зграби фенси пехар и иди у крчму." Cool. I'll get it.,TXT_RPLY0_SCRIPT02_D45480_COOLI,,,,"Fajn, přinesu ho.",Cool. Ich werde ihn holen.,,,Genial. La conseguiré.,,,Ok. Je m'en occupe.,Király. Meglesz majd.,,良い物だ、貰っとく。,"멋지군, 이해 했어.",Fajnie. Wchodzę w to.,Beleza. Vou lá pegar.,,,"Класс. Я достану её. -", -What are you waiting for? Bring me that chalice.,TXT_DLG_SCRIPT02_D46996_WHATA,,,,Na co čekáš? Přines mi ten kalich.,Worauf wartest du noch? Bring mir den Kelch.,,,¿A que estas esperando? Tráeme ese cáliz.,¿Qué estas esperando? Tráeme ese cáliz.,,Qu'attendez vous? Récupérez-moi ce calice.,Mire vársz? Hozd ide azt a kelyhet.,,何ボーっとしてんだ?とっとと聖杯を持ってこい。,뭘 기다리는 거야? 가서 성배를 찾아.,Na co czekasz? Przynieś mi ten kielich.,Está esperando o quê? Me traga o cálice.,,,Чего ты ждёшь? Принеси мне эту чашу., +",Одлично. Скапираћу. +What are you waiting for? Bring me that chalice.,TXT_DLG_SCRIPT02_D46996_WHATA,,,,Na co čekáš? Přines mi ten kalich.,Worauf wartest du noch? Bring mir den Kelch.,,,¿A que estas esperando? Tráeme ese cáliz.,¿Qué estas esperando? Tráeme ese cáliz.,,Qu'attendez vous? Récupérez-moi ce calice.,Mire vársz? Hozd ide azt a kelyhet.,,何ボーっとしてんだ?とっとと聖杯を持ってこい。,뭘 기다리는 거야? 가서 성배를 찾아.,Na co czekasz? Przynieś mi ten kielich.,Está esperando o quê? Me traga o cálice.,,,Чего ты ждёшь? Принеси мне эту чашу.,На шта чекаш? Донеси ми тај пехар. "Hey, I know, kinda looks like a set-up. I would never do that to such a great killing machine. Got the item? Great! Now get ready, gold and glory just like I promised. Take this key and the Governor will reward you.",TXT_DLG_SCRIPT02_D48512_HEYIK,,,,"Hej, vím, že to vypadá jako bouda. Takovému zabijákovi bych nikdy nic takového neudělal. Máš ten kalich? Fajn! Tak teď se připrav, zlato a sláva, jak jsem slíbil. Vem si tenhle klíč a samotný guvernér tě odmění.","Hey, ich weiß, es sieht anscheinend wie eine Falle aus, aber so etwas würde ich einer so großeartigen Tötungsmaschine nicht antun. Hast du ddas Ding? Großartig! Nun mach dich bereit, Geld und Ruhm, genau wie ich es dir versprochen habe. Nimm diesen Schlüssel und der Gouverneur wird dich belohnen.",,,"Si, lo sé, esto parece un timo. Nunca le haría eso a una gran máquina de matar. ¿Tienes el objeto? ¡Genial! Ahora prepárate, oro y gloria tal como lo prometí. Toma esta llave y el gobernador te recompensará.",,,"Hé, je sais que ça à l'air d'être un coup monté, mais je ne ferais jamais ça à une aussi bonne machine à tuer. Vous avez le butin? Excellent! Préparez vous, l'or et la gloire vous attend, comme promis. Prenez cette clé et le gouverneur vous récompensera.",,,"おう、罠みたいだと思ったか。 俺に暴れん坊みたいな芸当出来るわきゃねえ。 ブツはあるか?そりゃいい!じゃあ準備しな。 金と栄光は約束された。この鍵で知事に合えば 報酬をありったけくれるさ。 -","이봐, 알겠어. 확실히 뭔가 꾸며 놓은 것 같다는 거. 난 훌륭한 학살 기계에게 그런 짓을 할 사람이 아니야. 그래서 그걸 가져왔나? 좋아! 그럼 약속한 대로 골드와 영광을 줄 테니 준비해. 이 열쇠를 총독에게 가져다주면 보상해 줄 거야.","Hej, wiem, wygląda to jak zasadzka. Nigdy bym czegoś takiego nie zrobił wspaniałej maszynie do zabijania. Masz przedmiot? Wspaniale! Przygotuj się teraz, złoto i chwała tak jak obiecywałem. Weź ten klucz, a Gubernator cię nagrodzi.","Olha, eu sei, meio que parece uma cilada. Eu nunca faria aquilo a uma grande máquina mortífera. Conseguiu o item? Ótimo! Agora se prepare, ouro e glória conforme prometido. Pegue esta chave e o Governador irá te recompensar.",,,"Слушай, я знаю, о чём ты думаешь. Ты думаешь, что это подстава. Но я бы никогда не сделал этого с такой машиной для убийств, как ты. Достал то, что я просил? Отлично! Тебя ждёт золото и слава, как я и обещал. Возьми этот ключ — губернатор лично наградит тебя.", -He'd better. For your sake!,TXT_RPLY0_SCRIPT02_D48512_HEDBE,,,,"To by tedy měl, pro tvoje vlastní dobro!",Das macht er besser. Deinetwillen!,,,Más le vale. ¡Por tu propio bien!,Será lo mejor. ¡Por tu propio bien!,,"Il a intérêt, pour votre bien!",Jobban teszi. Miattad.,,戻せ、お前の為だ!,"살고 싶으면, 이 말이 사실이야 할 거다!",Mam nadzieję. Dla twojego dobra!,Acho bom mesmo. Pro seu bem!,,,Надеюсь. Это в твоих интересах!, -What! Where's my money?,TXT_RPLY1_SCRIPT02_D48512_WHATW,,,,Co! Kde jsou moje peníze?,Was! Wo ist mein Geld?,,,¡Qué! ¿Dónde está mi dinero?,,,Quoi? Où est mon argent!,Mi a! Hol van a pénzem?,,何だと! 金はどこだ?,뭐라고! 내 돈은 어디있지?,Co! Gdzie moje pieniądze?,Como é? Cadê o meu dinheiro!,,,Что? Где мои деньги?, -"Get lost kid, you bother me.",TXT_DLG_SCRIPT02_D50028_GETLO,,,,"Odprejskni, mladej, otravuješ mě.","Verzieh dich Jungchen, du störst mich.",,,"Piérdete mocoso, me molestas.",,,"Dégage, gamin, tu m'agaces.","Kopj le kölyök, ne itt lábatlankodj.",,失せろ、うざってえ。,사라져. 신경 거슬리게 하지 말고.,"Spadaj mały, przeszkadzasz mi.","Some daqui, garoto. Você está me incomodando.",,,"Пропади, малой. Ты меня раздражаешь.", +","이봐, 알겠어. 확실히 뭔가 꾸며 놓은 것 같다는 거. 난 훌륭한 학살 기계에게 그런 짓을 할 사람이 아니야. 그래서 그걸 가져왔나? 좋아! 그럼 약속한 대로 골드와 영광을 줄 테니 준비해. 이 열쇠를 총독에게 가져다주면 보상해 줄 거야.","Hej, wiem, wygląda to jak zasadzka. Nigdy bym czegoś takiego nie zrobił wspaniałej maszynie do zabijania. Masz przedmiot? Wspaniale! Przygotuj się teraz, złoto i chwała tak jak obiecywałem. Weź ten klucz, a Gubernator cię nagrodzi.","Olha, eu sei, meio que parece uma cilada. Eu nunca faria aquilo a uma grande máquina mortífera. Conseguiu o item? Ótimo! Agora se prepare, ouro e glória conforme prometido. Pegue esta chave e o Governador irá te recompensar.",,,"Слушай, я знаю, о чём ты думаешь. Ты думаешь, что это подстава. Но я бы никогда не сделал этого с такой машиной для убийств, как ты. Достал то, что я просил? Отлично! Тебя ждёт золото и слава, как я и обещал. Возьми этот ключ — губернатор лично наградит тебя.","Хеј, знам, некако изгледа као намештаљка. Никада не бих урадио тако нешто невероватној машини за убијање. Имаш ли предмет? Одлично! Сада се припреми, злато и слава као што сам и обећао. Узми овај кључ и Гувернер ће те наградити." +He'd better. For your sake!,TXT_RPLY0_SCRIPT02_D48512_HEDBE,,,,"To by tedy měl, pro tvoje vlastní dobro!",Das macht er besser. Deinetwillen!,,,Más le vale. ¡Por tu propio bien!,Será lo mejor. ¡Por tu propio bien!,,"Il a intérêt, pour votre bien!",Jobban teszi. Miattad.,,戻せ、お前の為だ!,"살고 싶으면, 이 말이 사실이야 할 거다!",Mam nadzieję. Dla twojego dobra!,Acho bom mesmo. Pro seu bem!,,,Надеюсь. Это в твоих интересах!,Боље би му било. За твоје добро! +What! Where's my money?,TXT_RPLY1_SCRIPT02_D48512_WHATW,,,,Co! Kde jsou moje peníze?,Was! Wo ist mein Geld?,,,¡Qué! ¿Dónde está mi dinero?,,,Quoi? Où est mon argent!,Mi a! Hol van a pénzem?,,何だと! 金はどこだ?,뭐라고! 내 돈은 어디있지?,Co! Gdzie moje pieniądze?,Como é? Cadê o meu dinheiro!,,,Что? Где мои деньги?,Шта! Где је мој новац? +"Get lost kid, you bother me.",TXT_DLG_SCRIPT02_D50028_GETLO,,,,"Odprejskni, mladej, otravuješ mě.","Verzieh dich Jungchen, du störst mich.",,,"Piérdete mocoso, me molestas.",,,"Dégage, gamin, tu m'agaces.","Kopj le kölyök, ne itt lábatlankodj.",,失せろ、うざってえ。,사라져. 신경 거슬리게 하지 말고.,"Spadaj mały, przeszkadzasz mi.","Some daqui, garoto. Você está me incomodando.",,,"Пропади, малой. Ты меня раздражаешь.","Губи се клинац, смараш ме." "No second chance. Oh guards, kill him.",TXT_DLG_SCRIPT02_D51544_NOSEC,,,,"Žádná druhá šance. Á, stráže, zabte ho.","Keine zweite Chance. Oh Wachen, tötet ihn.",,,"No hay otra oportunidad. Oh guardias, mátenlo.",,,"Pas de deuxième chance. Gardes, tuez-le.","Nincs második esély. Ó, őrök, öljétek meg.",,"次はねえな。おぅガードの旦那、 -やっちゃってくだせえ。","너에게는 기회 따윈 없었어. 경비원, 저놈을 죽여.","Nie będzie drugiej szansy. Oh... strażnicy, zabijcie go.","Sem segunda chance. Ah, guardas, matem ele.",,,"Нет, никакого второго шанса. Эй, стража, убейте его.", +やっちゃってくだせえ。","너에게는 기회 따윈 없었어. 경비원, 저놈을 죽여.","Nie będzie drugiej szansy. Oh... strażnicy, zabijcie go.","Sem segunda chance. Ah, guardas, matem ele.",,,"Нет, никакого второго шанса. Эй, стража, убейте его.","Нема друге шансе. Стражари, побијте их." "First they slaughter thousands, now they want all able-bodied peasants for unspecified 'tests'. How does the Order expect me to keep the peace? What the hell do you want?",TXT_DLG_SCRIPT02_D53060_FIRST,,,,"Nejprve povraždí tisíce a teď po mě chtějí všechny schopné poddané pro neupřesněné 'testy'. Jak Řád očekává, že mám zachovat mír? Co sakra chceš?",Zuerst metzeln sie Tausende nieder und nun wollen sie alle gesunden Bauern für unspezifierte „Tests“. Wie kann es der Orden nur so von mir verlangen Frieden zu bewahren? Was zum Teufel willst du?,,,"Primero matan a miles, ahora quieren a todos los campesinos sanos para 'Pruebas' no especificadas. ¿Cómo espera la orden que yo guarde la paz? ¿Qué demonios quieres?",,,"D'abord ils en massacrent des miliers, maintenant ils veulent tous les paysans en bonne santé pour leur « tests » dont personne ne sait rien. Comment est-ce que l'ordre veut que je garde la paix? Qu'est-ce que vous voulez?","Először ezreket kaszabolnak le, most meg minden ép testű jobbágyot nem részletezett ""kísérletekhez"" akarnak. Hogy várhatja el a Rend, hogy fenntartsam a békét? Mi a francot akarsz?",,"あいつら散々大量虐殺しといて、今度は'実験' の為に健康な庶民を用意しろとか。オーダーは 本当に平和を維持してくれるのか? で、君は何用で来たのかね? -","먼저 오더가 수천 명을 죽여놓고, 이젠 힘 좋은 시민들을 불러서 생각지도 않은 시험을 하라고 시키는구먼. 그놈들이 나한테 바라는 게 뭔지 전혀 모르겠네. 넌 원하는 게 뭐야?","Najpierw mordują tysiące, a teraz chcą wszystkich krzepkich chłopów do nieokreślonych ""testów"". Jak Zakon oczekuje ode mnie abym utrzymywał pokój? Czego chcesz u diabła?","Primeiro eles massacram milhares, agora querem que todos os plebeus saudáveis façam ""provas"" não especificadas. Como que a Ordem quer que eu mantenha a paz? Que diabos você quer?",,,"Сначала они убивают людей тысячами, а теперь им нужны все пригодные рабочие для каких-то «экспериментов»! И Орден ещё хочет, чтобы я поддерживал мир? Какого чёрта тебе нужно?", -"A prison pass, let's deal.",TXT_RPLY0_SCRIPT02_D53060_APRIS,,,,"Propustku do vězení, dohodněme se.",Ein Gefängnispass. Lassen Sie uns verhandeln.,,,"Un pase de la prisión, negociemos.",,,Un passe de la prison. Faisons affaires.,Egy börtön belépő. Üzleteljünk.,,刑務所の許可証だ、取引をしよう。,감옥 통행증만 있으면 돼.,"Przepustkę do więzienia, ponegocjujmy.","Um passe da prisão, vamos negociar.",,,Пропуск в тюрьму. Заключим сделку., +","먼저 오더가 수천 명을 죽여놓고, 이젠 힘 좋은 시민들을 불러서 생각지도 않은 시험을 하라고 시키는구먼. 그놈들이 나한테 바라는 게 뭔지 전혀 모르겠네. 넌 원하는 게 뭐야?","Najpierw mordują tysiące, a teraz chcą wszystkich krzepkich chłopów do nieokreślonych ""testów"". Jak Zakon oczekuje ode mnie abym utrzymywał pokój? Czego chcesz u diabła?","Primeiro eles massacram milhares, agora querem que todos os plebeus saudáveis façam ""provas"" não especificadas. Como que a Ordem quer que eu mantenha a paz? Que diabos você quer?",,,"Сначала они убивают людей тысячами, а теперь им нужны все пригодные рабочие для каких-то «экспериментов»! И Орден ещё хочет, чтобы я поддерживал мир? Какого чёрта тебе нужно?","Прво их покољу на хиљаде, сада желе све способне сељаке за неспецифиране ""testove"". Како Одред очекује од мене да очувам мир? Шта ког врага желиш?" +"A prison pass, let's deal.",TXT_RPLY0_SCRIPT02_D53060_APRIS,,,,"Propustku do vězení, dohodněme se.",Ein Gefängnispass. Lassen Sie uns verhandeln.,,,"Un pase de la prisión, negociemos.",,,Un passe de la prison. Faisons affaires.,Egy börtön belépő. Üzleteljünk.,,刑務所の許可証だ、取引をしよう。,감옥 통행증만 있으면 돼.,"Przepustkę do więzienia, ponegocjujmy.","Um passe da prisão, vamos negociar.",,,Пропуск в тюрьму. Заключим сделку.,"Затворска прпусница, хајде да дилујемо." "I like you already. I have two chores that I don't want to do myself. One is messy, the other bloody.",TXT_DLG_SCRIPT02_D54576_ILIKE,,,,"Už teď se mi líbíš. Mám dvě prácičky, které nechci dělat sám. Jedna je špinavá, druhá je krvavá.","Du gefällst mir bereits. Ich habe zwei lästige Angelegenheiten, um die ich mich nicht selber kümmern möchte. Die eine davon ist dreckig, die andere blutig.",,,"Ya me caes bien. Tengo dos tareas que no quiero hacer yo mismo. Una es sucia, la otra sangrienta.",,,"Vous me plaisez déjà. J'ai deux corvées que je n'ai pas envie de faire. Une est.. Sale, l'autre est sanglante.","Kedvellek már most. Van két rigojám, amit nem szeretek magam végezni. Az egyik a koszos, a másik a véres.",,"いいだろう。仕事は二つあるのだが -一つは面倒で、もう一つは血を見ることになる。",이제야 말길이 가네. 지금 너에게 맡을 시험이 두 가지 있거든. 더러운 거랑... 잔인한 거.,"Już cię lubię. Mam dwa zadania, których sam nie chcę wykonać. Jedno jest brudne, a drugie krwawe.","Estou gostando de você. Tenho mais duas tarefas chatas que eu particularmente não estou a fim de fazer. Uma é suja, a outra sangrenta.",,,"Мне нравится твой настрой! У меня есть два неприятных дела, которыми я не хочу заниматься сам. Одно грязное, а другое кровавое.", -Call me the cleaner,TXT_RPLY0_SCRIPT02_D54576_CALLM,,,,Říkej mi uklízeč.,Nennen Sie mich den Säuberer,,,Llámame el limpiador,,,Appelez-moi le nettoyeur.,Hívj csak takarítónak.,,まだ手は汚したくない,청소부라 불러줘.,Nazywaj mnie czyścicielem.,Pode me chamar de limpador,,,Я — лучший чистильщик!, -I'm not squeamish,TXT_RPLY1_SCRIPT02_D54576_IMNOT,,,,Mám silný žaludek.,Ich bin nicht zimperlich.,,,No soy escrupuloso,,,J'ai pas peur de me tacher les mains.,,,汚れ仕事でも構わない,나는 비위가 약하지 않아.,Nie jestem wybredny.,Não tenho medo de sujar as mãos,,,Я не боюсь крови., +一つは面倒で、もう一つは血を見ることになる。",이제야 말길이 가네. 지금 너에게 맡을 시험이 두 가지 있거든. 더러운 거랑... 잔인한 거.,"Już cię lubię. Mam dwa zadania, których sam nie chcę wykonać. Jedno jest brudne, a drugie krwawe.","Estou gostando de você. Tenho mais duas tarefas chatas que eu particularmente não estou a fim de fazer. Uma é suja, a outra sangrenta.",,,"Мне нравится твой настрой! У меня есть два неприятных дела, которыми я не хочу заниматься сам. Одно грязное, а другое кровавое.","Већ ми се допадаш. Имам два посла која не желим да радим сам. Један је прљав, а други је крвав." +Call me the cleaner,TXT_RPLY0_SCRIPT02_D54576_CALLM,,,,Říkej mi uklízeč.,Nennen Sie mich den Säuberer,,,Llámame el limpiador,,,Appelez-moi le nettoyeur.,Hívj csak takarítónak.,,まだ手は汚したくない,청소부라 불러줘.,Nazywaj mnie czyścicielem.,Pode me chamar de limpador,,,Я — лучший чистильщик!,Можеш ме звати чистачем +I'm not squeamish,TXT_RPLY1_SCRIPT02_D54576_IMNOT,,,,Mám silný žaludek.,Ich bin nicht zimperlich.,,,No soy escrupuloso,,,J'ai pas peur de me tacher les mains.,,,汚れ仕事でも構わない,나는 비위가 약하지 않아.,Nie jestem wybredny.,Não tenho medo de sujar as mãos,,,Я не боюсь крови.,Нисам гадљив One of my minions is stealing power with a tap on the mains somewhere. Find it and truncate his supply and I'll provide you with what you want. Bring me something as a token.,TXT_DLG_SCRIPT02_D56092_ONEOF,,,,"Jeden z mých poddaných stáčedlem někde z hlavního vedení krade energii. Najdi jej a odřízni dotyčného od zásoby a já ti dám, co chceš. Přines mi něco jako důkaz.","Einer meiner Untertanen zapft irgendwo Strom ab. Finde die Anzapfung und kappe sie. Falls du Erfolg hast, kriegst du was du brauchst. Aber bring mir einen Beweis mit!",,,"Uno de mis secuaces está robando energía interviniendo la red en algún lugar. Encuéntralo, trunca su suministro y te proporcionaré lo que quieras. Tráeme algo como prueba de que está hecho.",,,Un de mes larbins pompe de l'électricité avec une connection pirate dans les transformateurs là haut. Trouvez là et coupez sa connection. Je vous donnerai ce que vous voulez. Ramenez moi une preuve.,"Az egyik alattvalóm áramot lop egy dugasszal a központi hálózatnál valahol. Találd meg, majd válaszd el az ellátását, és én adok neked amit akarsz. Hozz nekem valamit bizonyítékként",,"私の手下の一人が水力発電から電力を盗んで いるらしい。それを見つけ供給を切って くれれば君の望む物をやろう。 -その象徴となるのも持ってきてほしい。",내 부하 중 한 명이 어딘가에 있는 동력선에 추출기를 꽂아 동력을 훔치고 있다는군. 그것을 찾아내서 그의 공급을 자르면 네가 원하는 것을 제공하지. 증거가 될만한 그것을 가져와.,"Jeden z moich sług kradnie gdzieś moc w przewodach za pomocą przełącznika. Znajdź go i odetnij jego dostawę mocy, a dam ci co chcesz. Przynieś mi coś jako dowód.",Um dos meus capangas está roubando energia por uma ligação clandestina em algum lugar. Encontre-o e corte essa ligação e conseguirei o que você quer. Traga algo como prova.,,,"Кто-то из моих подчинённых отводит энергию откуда-то из питающей сети. Найди и отключи эту установку — тогда получишь то, за чем пришёл. И принеси мне что-нибудь в качестве доказательства.", +その象徴となるのも持ってきてほしい。",내 부하 중 한 명이 어딘가에 있는 동력선에 추출기를 꽂아 동력을 훔치고 있다는군. 그것을 찾아내서 그의 공급을 자르면 네가 원하는 것을 제공하지. 증거가 될만한 그것을 가져와.,"Jeden z moich sług kradnie gdzieś moc w przewodach za pomocą przełącznika. Znajdź go i odetnij jego dostawę mocy, a dam ci co chcesz. Przynieś mi coś jako dowód.",Um dos meus capangas está roubando energia por uma ligação clandestina em algum lugar. Encontre-o e corte essa ligação e conseguirei o que você quer. Traga algo como prova.,,,"Кто-то из моих подчинённых отводит энергию откуда-то из питающей сети. Найди и отключи эту установку — тогда получишь то, за чем пришёл. И принеси мне что-нибудь в качестве доказательства.","Један од мојих слуга краде електрицитет са славином на копну негде. Нађите то и уништите му залихе, а ја ћу вам дати оно што желите. Донесите ми нешто као знак. " Where do I find this tap?,TXT_RPLY0_SCRIPT02_D56092_WHERE,,,,Kde najdu tohle stáčedlo?,Wo finde ich die Anzapfung?,,,¿Dónde encuentro la intervención?,,,Où est-ce que je trouve cette connection?,Hol találom ezt a dugaszt?,,どうやって突き止めたらいい?,그 추출기는 어디에 찾을 수 있지?,Gdzie znajdę ten przełącznik?,Onde encontro essa ligação clandestina?,,,Где может находиться эта установка?, "If I knew, it wouldn't be a chore now would it? Use your charm, but shut off his supply.",TXT_DLG_SCRIPT02_D57608_IFIKN,,,,"Kdybych věděl, nebyla by to práce, ne? Použij svůj šarm, ale vypni mu přívod.","Wenn ich das wüsste, wäre das keine lästige Angelegenheit, nicht wahr? Benutze deinen Charme, aber schalte seine Versorgung aus.",,,"Si lo supiera, no sería un recado, ¿no? Usa tu encanto, pero corta su suministro. ","Si lo supiera, no sería un problema ahora, ¿verdad? Usa tu encanto, pero corta su suministro. @@ -7700,7 +7712,7 @@ The Sigil of the One God.,TXT_RPLY0_SCRIPT12_D0_THESI,,,,Pečeť Jednoho boha.,D I'll be back.,TXT_RPLY0_SCRIPT12_D1516_ILLBE,,,,Vrátím se.,Ich werde zurückkommen.,,,Volveré.,,,Je reviendrai.,,,すぐ戻ってくる。,금방 돌아올게.,,Eu voltarei.,,,Я вернусь., "Although the Bishop is formidable, this quest is slight. Return to me when you possess the next fragment.",TXT_DLG_SCRIPT12_D3032_ALTHO,,,,"I přes Biskupovu hrozivost je tento úkol drobný. Vrať se, až budeš vlastnit další díl.","Auch wenn der Bischof ein schwerer Gegner ist, diese Aufgabe ist geringfügig. Komm zu mir zurück, wenn du das nächste Fragment besitzt.",,,"Aunque el Obispo es formidable, esta misión es leve. Vuelve a mí cuando poseas el siguiente fragmento.",,,"Bien que l'évêque soit un puissant adversaire, cette quête n'est qu'une courte aventure. Revenez à moi quand vous possédez le deuxième fragment.",,,"ビショップは手強く、この使命は困難であろう。 次の欠片を手にしたら此処へ戻るのだ。 -","비숍은 만만치 않은 상대지만, 이보다 더한 일들이 기다리고 있다. 두 번째 조각을 찾고 다시 돌아오라.",,"Embora o Bispo seja formidável, esta missão é simples. Retorne para mim quando você possuir o próximo fragmento.",,,"Каким бы страшным Епископ ни был, это задание не доставит тебе хлопот. Достань следующий фрагмент и возвращайся ко мне.", +","비숍은 만만치 않은 상대지만, 이보다 더한 일들이 기다리고 있다. 두 번째 조각을 찾고 다시 돌아오라.",,"Embora o Bispo seja poderoso, esta missão é simples. Retorne para mim quando você possuir o próximo fragmento.",,,"Каким бы страшным Епископ ни был, это задание не доставит тебе хлопот. Достань следующий фрагмент и возвращайся ко мне.", Your next challenge will test your spirit. The third piece is held by your own leader. He is the same as that which he sends you to kill.,TXT_DLG_SCRIPT12_D4548_YOURN,,,,"Tvá další výzva pokusí tvou vůli. Třetí díl je držen tvým vlastním vůdcem. Je stejný, jako ti, které tě posílá zabít.","Die nächste Herausforderung wird deinen Geist prüfen. Das dritte Teilstück wird von deinem eigenen Anführer, Macil, gehalten. Er ist das Gleiche, was er dich töten lässt.",,,Tu próximo desafío pondrá a prueba tu espíritu. El tercer fragmento está en manos de tu propio líder. Él es igual que aquello que te envía a matar.,,,Le prochain défi testera votre esprit. Le troisième fragment est possédé par votre leader. Il est le même que celui qu'il vous a envoyé tuer.,,,"次の挑戦はお主の精神が試されるだろう。 三つ目の欠片はお主の指導者が所持している。 彼奴はお主の死を望むが為 @@ -7798,7 +7810,7 @@ Anything else?,TXT_RPLY0_SCRIPT17_D12128_ANYTH,,,,Ještě něco dalšího?,Noch "Is that it, now?",TXT_RPLY0_SCRIPT17_D13644_ISTHA,,,,Je to už všechno?,War es das jetzt?,,,"Con que eso es, ¿eh?",,,Vraiment?,,,それはまだあるんだな?,이게 전부지?,,Só isso?,,,Теперь всё?, "Don't you know the meaning of the words ""get lost""?",TXT_DLG_SCRIPT17_D15160_DONTY,,,,Neznáš význam slova „zmizni“?,Sagen dir die Worte „Verzieh dich“ etwas?,,,¿No sabes lo que significa la palabra Piérdete?,,,Vous ne connaîssez pas le sens du mot: « Dégage?»,,,次の話はバレる前に'去れ'か?,"자네, “꺼져.”가 무슨 뜻인지는 알지?",,"Você não sabe o que significa a expressão ""se manda""?",,,Ты не знаешь значения слова «исчезни»?, Talk to Quincy first. I'm not allowed to help anyone unless he says it's ok.,TXT_DLG_SCRIPT17_D16676_TALKT,,,,Promluv si nejprve s Quincym. Já nemůžu nikomu pomáhat dokud to nepovolí.,"Rede erst mit Quincy. Ich darf mit niemanden reden, solange er nicht sein OK gegeben hat.",,,Habla con Quincy primero. No se me permite ayudar a nacie a menos que lo diga.,,,Parlez à Quincy d'abord. Je ne suis pas autorisé à aider qui que ce soit sans son autorisation.,,,"先にクインシーと話を。彼から許可を -得られない限りお助けすることは出来ません。",퀸시에게 먼저 물어보세요. 전 그가 괜찮다 하지 않는다면 아무것도 도울 수 없습니다.,,Fale com o Quincy primeiro. Não posso ajudar ninguém a não ser que ele diga que não tem problema.,,,"Сперва поговори с Куинси. Мне не позволено помогать кому-либо, пока он не разрешит.", +得られない限りお助けすることは出来ません。",퀸시에게 먼저 물어보세요. 전 그가 괜찮다 하지 않는다면 아무것도 도울 수 없습니다.,,Fale com o Quincy primeiro. Não posso ajudar ninguém enquanto ele não autorizar.,,,"Сперва поговори с Куинси. Мне не позволено помогать кому-либо, пока он не разрешит.", How how can I help you today?,TXT_DLG_SCRIPT17_D18192_HOWHO,,,,Jak ti mohu dnes pomoci?,Wie kann ich dir heute helfen?,,,¿Cómo puedo ayudarte hoy?,,,Comment puis-je vous aider aujourd'hui?,,,本日は何かお困りで?,오늘은 어떻게 도와드릴까요?,,Como posso ajudá-lo hoje?,,,Чем я могу помочь тебе сегодня?, Med patch,TXT_RPLY0_SCRIPT17_D18192_MEDPA,,,,Obvazy,Medizinische Bandage,,,Parche médico.,,,Pansement.,,,医薬パッチ,의료 붕대,,Compressa médica,,,Бинтами, Here's your patch.,TXT_RYES0_SCRIPT17_D18192_HERES,,,,Tady jsou.,Hier ist deine Bandage.,,,Aquí tienes tu parche.,,,Voilà votre pansement.,,,これをどうぞ。,"의료 붕대 하나, 여기 있습니다.",,Aqui está sua compressa.,,,Вот твой набор бинтов., @@ -7843,7 +7855,7 @@ Do you know what's inside?,TXT_RPLY0_SCRIPT22_D1516_DOYOU,,,,"Víš, co je uvnit アーティファクトをこの目で見た。 誰もそれには近づくことが許されていないのだ。 噂では、タリスマンはほかの2つのタリスマンと -つながることで強大なパワーを発揮できるらしい。",아주 중요한 기밀 공간이야. 난 오더가 거기에서 각종... 생물들을 만드는 거랑 부적이라는 희한한 유물을 보호하는 모습을 봤지. 그런 이유로 그 누구도 못 들어가. 그리고 이와 똑같은 다른 유물을 합치면 초월한 힘을 발휘한다는 소문도 들었어.,,"É uma área ultrassecreta. Não só a Ordem está criando um tipo de...criatura lá dentro, eu vi com meus próprios olhos um artefato estranho chamado de Talismã. Ninguém tem permissão para chegar perto. Rumores dizem que ele tem um grande poder ao se unir com outros dois do mesmo tipo.",,,"Это совершенно секретно. Во-первых, Орден разводит там каких-то... существ. Во-вторых, я своими глазами видел странный артефакт, «Талисман». К нему никого и близко не подпускают. Говорят, что можно получить огромную силу, если объединить его с двумя другими.", +つながることで強大なパワーを発揮できるらしい。",아주 중요한 기밀 공간이야. 난 오더가 거기에서 각종... 생물들을 만드는 거랑 부적이라는 희한한 유물을 보호하는 모습을 봤지. 그런 이유로 그 누구도 못 들어가. 그리고 이와 똑같은 다른 유물을 합치면 초월한 힘을 발휘한다는 소문도 들었어.,,"É uma área ultrassecreta. Não só a Ordem está criando um tipo de...criatura lá dentro, eu vi com meus próprios olhos um artefato estranho chamado de Talismã. Ninguém tem permissão para chegar perto. Dizem que ele tem um grande poder ao se unir com outros dois do mesmo tipo.",,,"Это совершенно секретно. Во-первых, Орден разводит там каких-то... существ. Во-вторых, я своими глазами видел странный артефакт, «Талисман». К нему никого и близко не подпускают. Говорят, что можно получить огромную силу, если объединить его с двумя другими.", I suppose you want this thing?,TXT_RPLY0_SCRIPT22_D3032_ISUPP,,,,"Předpokládám, že jej chceš?","Ich denke mal, du willst dieses Ding haben?",,,¿Supongo que quieres esto?,,,Je suppose que vous le voulez?,,,それが欲しいということか?,내 생각엔 그걸 원하나 보지?,,Imagino que você quer essa coisa?,,,"Похоже, ты и сам хочешь этот артефакт?", "No! If you can find it, it's yours to keep. Maybe you can use it to help free us from our oppression. I'd wish you luck, but you're going to need a lot more than that if you go in there...",TXT_DLG_SCRIPT22_D4548_NOIFY,,,,"Ne! Jestli ho najdeš, je tvůj. Možná by ti mohl pomoct osvobodit nás od nadvlády. Přál bych ti štěstí, ale jestli tam půjdeš, budeš potřebovat mnohem víc než to...","Nein! Wenn du es findest, darfst du es behalten. Vielleicht kannst du es benutzen, um uns von unserer Unterdrückung zu befreien. Ich würde dir Glück wünschen, aber du wirst viel mehr brauchen, wenn du dort hinein gehst.",,,"¡No! Si lo encuentras, quédatelo. Tal vez puedas usarlo para ayudar a librarnos de nuestra opresión. Te desearía suerte, pero vas a necesitar más que eso si vas ahí...",,,"Non! Si vous le trouvez, gardez le pour vous. Peut être qu'il vous aidera à nous débarasser de nos oppresseurs.. Je vous souhaiterais bonne chance, mais vous allez avoir besoin de beaucoup plus que ça si vous y entrez..",,,"そうではない!もし見つけたら それは自分のものにしてくれ。もしかすれば、 @@ -8282,7 +8294,7 @@ Macil says that you're the new hope. Bear that in mind.,TXT_RANDOM_REBEL_07,,,," "Remember that you aren't fighting just for yourself, but for everyone here and outside.",TXT_RANDOM_REBEL_09,,,,"Nezapomeň, že nebojuješ jen kvůli sobě, ale kvůli všem tady a tam venku.","Vergiß nicht, dass du nicht nur für dich selbst kämpfst, sondern für alle von uns da draußen.",,,"Recuerda que no estás peleando solo por ti, sino por todos aquí y afuera.",,,"Souviens-toi, tu ne te bats pas seulement pour toi, mais pour tous le monde ici et ailleurs.","Ne feledd, nem csak magadért harcolsz, hanem mindnyájunkért idebent, és odakint.","Ricordati che non stai combattendo solo per te stesso, ma per tutti quelli che sono qui e fuori.","貴方は自分自身だけでなく、 国中の人の為に戦っている事を忘れないでくれよ。",너 혼자 위해서 싸우는 게 아니라 인류를 위해서 싸우고 있다는 걸 잊지 마.,,"Lembre-se que você não está lutando só por si mesmo, mas por todos nós.",,,"Помни, ты сражаешься не только за себя, но и за каждого здесь и снаружи.", "As long as one of us still stands, we will win.",TXT_RANDOM_REBEL_10,,,,"Dokud je alespoň jeden z nás na nohou, vyhrajeme!","Solange nur einer von uns steht, werden wir gewinnen.",,,"Mientras uno de nosotros siga en pie, ganaremos.",,,"Aussi longtemps qu'un de nous est vivant, nous vaincrons.","Ha csak egy is marad meg közülünk, nyerni fogunk.","Finché ci sarà uno di noi in piedi, vinceremo.",我々が一人でも立っていれば、それが勝利。,"우리 중 한 명이 남아있는 한, 이길 수 있어.",,"Enquanto um de nós ainda estiver de pé, teremos chance de vencer.",,,"Пока хотя бы один из нас ещё дышит, мы непобедимы.", -"Move along, peasant.",TXT_RANDOM_AGUARD_01,,,,"Jdi dál, poddaný.","Beweg dich, Bauer!",,,"Muévete, plebeyo.",,,"Barre-toi, paysan!","Mozgás, paraszt. Egy kettő.","Spostati, contadino.",立ち去れ、百姓。,"어서 움직여, 이 자식아.",,"Continue andando, plebeu.",,,"Проходи, рабочий.", +"Move along, peasant.",TXT_RANDOM_AGUARD_01,,,,"Jdi dál, poddaný.","Beweg dich, Bauer!",,,"Muévete, plebeyo.",,,"Barre-toi, paysan!","Mozgás, paraszt. Egy kettő.","Spostati, contadino.",立ち去れ、百姓。,"어서 움직여, 이 자식아.",,"Continue andando, plebeu.",,,"Проходи, рабочий.","Мрдај одавде, сироче." "Follow the true faith, only then will you begin to understand.",TXT_RANDOM_AGUARD_02,,,,"Následuj pravou víru, jen tak začneš chápat.",Folge dem wahren Glauben und du wirst verstehen.,,,"Sigue la fe verdadera, sólo entonces empezarás a entender.",,,"Suis la vraie foi, tu commençeras a comprendre.","Csak ha az igaz hitet követed, csakis akkor kezded majd megérteni.","Segui la vera fede, solo allora comincerai a capire.",真の信仰を求めよ、それしか理解に至る道はない。,참된 신앙이야말로 자기 자신을 깨우칠 수 있지.,,Siga a verdadeira fé. Só então você começará a entender.,,,Следуй истинной вере. Только тогда ты начнёшь понимать., Only through death can one be truly reborn.,TXT_RANDOM_AGUARD_03,,,,Pouze skrz smrt lze dosáhnout znovuzrození.,Nur durch den Tod kann man wirklich wiedergeboren werden.,,,Sólo a través de la muerte uno puede realmente renacer.,,,C'est seulement a travers la mort que quelqu'un peut renaître.,Csak a halál útján lehet igazán újjászületni.,Solo attraverso la morte uno può rinascere per davvero.,人が真の意味で生まれ変われる方法は、死のみだ,죽음을 통해서만이 진정하게 환생할 수 있는 거다.,,Somente através da morte que alguem poderá renascer de verdade.,,,Истинное перерождение возможно только через смерть., I'm not interested in your useless drivel.,TXT_RANDOM_AGUARD_04,,,,Nezajímají mě tvoje žvásty.,Dein nutzloses Geschwafel interessiert mich nicht.,,,No estoy interesado en tu charlatanería.,No estoy interesado en tus inútiles tonterías.,,Je ne suis pas intéressé par tes idioties inutiles.,Nem érdekel az értelmetlen hablatyolásod.,Non sono interessato alle tue ciance inutili.,お前の無益な戯言なぞ興味は無い。,네 잡담 따위는 듣고 싶지 않아.,,Não estou interessado em ouvir as suas bobagens inúteis.,,,Мне неинтересна твоя пустая болтовня., @@ -8327,9 +8339,9 @@ Acolytes? They have yet to see the full glory of the Order.,TXT_RANDOM_PGUARD_09 奴等はオーダーの爛漫なる未来を見ていない。",아콜라이트들이라... 애석하게도 이 들은 믿음이 아직 부족하다고 생각함이라.,,Acólitos? Eles ainda não viram toda a glória da Ordem.,,,Служители? Им ещё только предстоит узреть подлинное величие Ордена., "If there is any honor inside that pathetic shell of a body, you'll enter into the arms of the Order.",TXT_RANDOM_PGUARD_10,,,"If there is any honour inside that pathetic shell of a body, you'll enter into the arms of the Order.","Jestli ta tvoje žalostná tělesná schránka má v sobě kousek cti, dáš se do rukou Řádu.","Wenn du noch einen Hauch von Ehre hast, wirst du dem Orden beitreten.",,,"Si hay algo de honor dentro de esa patética cáscara de cuerpo, podrás entrar a los brazos de la Orden.",,,"Si il y a une once de gloire dans ce corps pathétique, ceux de l'ordre te prendront parmi les leurs.","Ha csak egy csipetnyi becsület is van testednek szánalmas páncéljában, A Rend katonáinak sorába fogsz beállni.","Se c'è ancora un onore dentro quel guscio patetico di corpo, entrerai nelle braccia dell'Ordine.","その哀れな肉体の殻でも名誉の為ならば、 オーダーの兵器を携える事が出来るだろう。",육체라는 나약한 껍질에 갇힌 운명을 참회하는 자들이야말로 오더와 함께할 수 있을지어다. ,,"Se ainda existe honra dentro da sua carne patética, você entrará para os braços da Ordem.",,,"Если внутри этой бренной телесной оболочки есть хоть капля чести, ты присоединишься к Ордену.", -Bye!,TXT_RANDOMGOODBYE_1,,,,Tak ahoj!,Tschüss!,,,¡Adiós!,,,Au revoir!,Szervusz!,Ciao!,じゃあな!,안녕!,,Tchau!,,,Пока!, -"Thanks, bye!",TXT_RANDOMGOODBYE_2,,,,"Díky, ahoj!","Danke, tschüss!",,,"Gracias, ¡Adiós!",,,"Merci, au revoir!","Köszi, szia!","Grazie, ciao!",どうも、じゃあ!,그렇군요. 그럼 안녕히!,,Obrigado. Até mais!,,,"Спасибо, пока!", -See you later!,TXT_RANDOMGOODBYE_3,,,,Uvidíme se později!,Bis später!,,,¡Nos vemos!,,,A plus tard!,Később találkozunk!,Ci vediamo dopo!,また今度!,다음에 봐요!,,Até logo!,,,До встречи!, +Bye!,TXT_RANDOMGOODBYE_1,,,,Tak ahoj!,Tschüss!,,,¡Adiós!,,,Au revoir!,Szervusz!,Ciao!,じゃあな!,안녕!,,Tchau!,,,Пока!,Довиђења! +"Thanks, bye!",TXT_RANDOMGOODBYE_2,,,,"Díky, ahoj!","Danke, tschüss!",,,"Gracias, ¡Adiós!",,,"Merci, au revoir!","Köszi, szia!","Grazie, ciao!",どうも、じゃあ!,그렇군요. 그럼 안녕히!,,Obrigado. Até mais!,,,"Спасибо, пока!","Хвала, довиђења!" +See you later!,TXT_RANDOMGOODBYE_3,,,,Uvidíme se později!,Bis später!,,,¡Nos vemos!,,,A plus tard!,Később találkozunk!,Ci vediamo dopo!,また今度!,다음에 봐요!,,Até logo!,,,До встречи!,Видимо се! ,,Strife logs,,,,,,,,,,,,,,,,,,,, "Hello? Command, a com unit has just been activated... Am receiving visuals and sound from... somebody... Hey you, get out of there now... and drop the chalice!",TXT_ILOG1,,,,"Haló? Velení, právě byl aktivován komunikátor... příjimám obraz a zvuk od... někoho... Hej, ty, dostaň se odtaď... a zahoď ten kalich!","Hallo, Kommandozentrale, eine Kommunikationseinheit wurde gerade aktiviert.... Ich empfange Bilder und Ton von... irgend jemandem... Hey, du, verschwinde da sofort... Und schmeiß den Kelch weg!",,,"¿Hola? Comando, una unidad de comunicación acaba de ser activada... Recibo visuales y sonido de... Alguien... Eh tú, sal de ahí ahora mismo... ¡Y tira el cáliz!",,,"Allô? Central, un communicateur à été activé.. Je recois visuel et son de.. quelqu'un.. Hé, vous, sortez de là! Et lâchez le calice!",,,"もしもし? 司令部、comユニットが起動されました。 …からビジュアルとサウンドを受け取っています @@ -8616,7 +8628,7 @@ Governor Mourel,TXT_SPEAKER_GOVERNOR_MOUREL,,,,Guvernér Mourel,Gouverneur Moure Bowyer,TXT_SPEAKER_BOWYER,,,,,,,,,,,,,,ボウヤー,보여,,,,,Лучник, Derwin,TXT_SPEAKER_DERWIN,,,,,,,,,,,,,,ダーウィン,더윈,,,,,Дервин, ,,Strife subtitles,,,,,,,,,,,,,,,,,,,, -The comet struck our planet without warning. We lost our paradise in a single violent stroke.,TXT_SUB_INTRO1,,,,"Kometa bez varování narazila do naší planety. Ztratili jsme svůj ráj během jediného, brutálního úderu.",Der Komet hat unsen Planeten ohne Vorwarnung getroffen. Wir haben unser Paradies in einem einzelnen brutalen Schlag verloren.,,,El cometa se estrelló en nuestro planeta sin previo aviso. Perdimos nuestro paraíso en un único y violento golpe.,,,"La comète frappa notre monde sans prévenir. En un seul moment de violence, nous avons perdu notre paradis.",,"La cometa colpì il nostro pianeta senza preavviso. Perdemmo il nostro paradiso, in un solo violento colpo.",彗星がこの星に突然衝突した。私達の楽園はこの一撃で失われた。,혜성 하나가 아무런 경고도 없이 우리 행성에 충돌했다. 그 강력한 한 방으로 우리의 낙원을 잃어버렸다.,,"O cometa atingiu o nosso planeta sem aviso prévio. Num único e violento golpe, nós perdemos o nosso paraíso.",,,Метеорит обрушился на нашу планету без всякого предупреждения. Наш рай был разрушен единственным безжалостным ударом., +The comet struck our planet without warning. We lost our paradise in a single violent stroke.,TXT_SUB_INTRO1,,,,"Kometa bez varování narazila do naší planety. Ztratili jsme svůj ráj během jediného, brutálního úderu.",Der Komet hat unsen Planeten ohne Vorwarnung getroffen. Wir haben unser Paradies in einem einzelnen brutalen Schlag verloren.,,,El cometa se estrelló en nuestro planeta sin previo aviso. Perdimos nuestro paraíso en un único y violento golpe.,,,"La comète frappa notre monde sans prévenir. En un seul moment de violence, nous avons perdu notre paradis.",,"La cometa colpì il nostro pianeta senza preavviso. Perdemmo il nostro paradiso, in un solo violento colpo.",彗星がこの星に突然衝突した。私達の楽園はこの一撃で失われた。,혜성 하나가 아무런 경고도 없이 우리 행성에 충돌했다. 그 강력한 한 방으로 우리의 낙원을 잃어버렸다.,,"O cometa atingiu o nosso planeta sem aviso prévio. Num único e violento golpe, nós perdemos o nosso paraíso.",,,"Никто не ожидал, что на нашу планету обрушится метеорит. Земной рай был разрушен единственным безжалостным ударом.", "The impact released a virus, which swept through the land and killed millions. They turned out to be the lucky ones.",TXT_SUB_INTRO2,,,,"Náraz vypustil virus, který se začal šířit krajem a zabil milióny lidí. Ukázalo se, že to byli ti šťastnější.","Der Einschlag setzte einen Virus frei, der durch das Land fegte und Millionen tötete. Sie hatten Glück.",,,"El impacto liberó un virus, el cual barrió la tierra y mató a millones. Resultaron ser los más afortunados.",,,"L'impact libéra un virus, qui traversa les contrées et tua des millions. Ceux qui moururent furent les plus chanceux.",,"L'impatto rilasciò un virus, spargendosi ovunque e uccidendo milioni. Quelli che morirono furono i più fortunati.","彗星の衝突によりウィルスが世界中に放たれ、数えきれないほどの人々が死んだ。 今から考えれば、彼らはまだ運がいい方だった。","충돌의 여파로 바이러스가 사방에 퍼졌고, 이로 인해 수백만명이 목숨을 잃었다. 죽은 자들은 운이 좋은 자들이었다.",,"O impacto liberou um vírus, que se espalhou pela terra e matou milhões. Esses foram os que tiveram sorte.",,,"Удар метеорита выпустил вирус, который пронёсся по землям и истребил миллионы людей. Умершие оказались счастливчиками.", "For those who did not die became mutations of humanity. Some became fanatics who heard the voice of a malignant god in their heads and called themselves ""the Order"".",TXT_SUB_INTRO3,,,,"Protože ti, kteří nezemřeli, se stali lidskými mutanty. Někteří se proměnili ve fanatiky, kteří v hlavě slyšeli hlas zlého boha, a začali si říkat „Řád“.","Diejenigen, die nicht starben, wurden zu Mutanten der Menschheit. Einige wurden Fanatiker, die die Stimme eines bösartigen Gottes in ihrem Kopf hörten und sie nannten sich „Der Orden“.",,,"Ya que aquellos que no murieron se convirtieron en mutaciones de humanidad. Algunos se volvieron fanáticos que oían la voz de un dios maligno en sus cabezas y se hicieron llamar ""la Orden"".",,,"Ceux qui survécurent devinrent les mutants de l'humanité. Certains devinrent des fanatiques qui écoutent la voix d'un dieu maléfique dans leur tête, et se nommèrent « L'Ordre ».",,"Coloro che sopravvissero divennero i mutanti dell'umanità. Alcuni sono diventati fanatici che hanno ascoltato la voce di un dio malvagio nelle loro teste e si sono fatti chiamare ""L'Ordine"".","死ななかった人々は、人間から変異して別の物となった。 @@ -8709,7 +8721,8 @@ Guess there's no free lunch. Time to lock and load.,TXT_SUB_LOG18,STRIFE1.WAD: M "OK. You've pleased the Governor, splattered the Warden... Now it looks like we got to have to do a little surgery.",TXT_SUB_LOG19,STRIFE1.WAD: MAP05,,,"Dobrá. Uspokojil jsi guvernéra, rozmetal dozorčího... Vypadá to, že teď budeme muset provést menší chirurgický zákrok.","Ok, du hast den Gouverneur zufriedengestellt, den Direktor abgemetzelt... Und jetzt sieht es aus als ob eine kleine Operation nötig ist.",,,"OK. Has satisfecho al Gobernador, despedazado al Carcelero... Ahora parece que tendremos que hacer algo de cirugía.",,,"OK. Le gouverneur est satisfait, le gardien est en bouillie... Maintenant il va falloir faire un peu de chirurgie.",,,"よし、知事は喜ばせ刑務所長はぶちのめした... 私達が少々手術を施す必要が出来たわ。","좋아, 총독과 놀았고, 간수장도 죽었으니... 이제 관련 인간을 손 좀 봐 줘야겠네!",,"Ok, você agradou o Governador, estourou os miolos do carcereiro... Agora parece que temos que fazer uma pequena cirurgia.",,,"Хорошо. Ты доставил удовольствие губернатору, забрызгал стены мозгами тюремщика... Теперь нам предстоит небольшое хирургическое вмешательство.", Oh you cut off his hand! And I thought you were a nice guy... kinda. Let's go.,TXT_SUB_LOG20,STRIFE1.WAD: MAP05,,,"Oh, tys mu uříznul ruku! A já myslela že jsi hodný chlap... jakž takž. Pojďme.","Oh, du hast seine Hand abgeschnitten! Und ich dachte du wärest ein netter Typ... oder so. Lass uns gehen.",,,¡Oh le cortaste la mano! Y yo creía que eras un buen tío... más o menos. Vamos.,,,"Oh, tu a coupé sa main? Je croyais que tu étais un type sympa.. Plus où moins. Allons-y.",,,"おいおい手を切り取ったのかよ! -ただのナイスガイってわけじゃないのね...まあいい、行こうか。","손을 뜯어버리다니! 아주 좋은 사람인 줄 알았는데... 귀엽네! 후훗, 가자구.",,"Ai, você cortou fora a mão dele! Eu achava que você era um cara bonzinho... talvez. Vamos lá.",,,"О ч-чёрт, ты отрезал ему руку! Я думала, ты добрый парень... в некотором роде. Ладно, не бери в голову.", +ただのナイスガイってわけじゃないのね...まあいい、行こうか。","손을 뜯어버리다니! 아주 좋은 사람인 줄 알았는데... 귀엽네! 후훗, 가자구.",,"Ai, você cortou fora a mão dele! Eu achava que você era um cara bonzinho... talvez. Vamos lá.",,,"О ч-чёрт, ты отрезал ему руку! Я думала, ты добрый парень... в некотором роде. Ладно, не бери в голову.","Осекао си му руку! И мислила сам да си добар човек... онако. Настављамо. +" "Way to go, my friend. Jump on one of the teleporters and it will bring you back to base.",TXT_SUB_LOG21,STRIFE1.WAD: MAP05,,,"Jen tak dál, příteli. Skoč na teleportér, dostane tě zpět na základnu.",Das war gute Arbeit. Benutze einen der Teleporter um zur Basis zurückzugelangen.,,,Así se hace amigo. Ponte en uno de los teletransportes y te traerá de vuelta a la base.,Que forma de avanzar amigo mío. Entra en alguno de los teleportes y te traerá de vuelta a la base.,,Bien joué mon ami! Utilise l'un des téléporteurs pour revenir à la base.,,,行きましょう、相棒。牢屋奥のテレポーターに飛び込めば基地にすぐ着くわ。,"정말 잘했어, 친구. 저 텔레포터들 중 하나를 타면 기지로 복귀할 수 있을 거야.",,"Boa, meu amigo. Entre num desses teletransportadores e você voltará para a base.",,,"Так держать, дружище. Прыгай в любой телепорт, и он вернёт тебя на базу.", Worner is a spy we recruited in the warehouse of the power station.,TXT_SUB_LOG22,,,,"Worner je špión, kterého jsme najali ve skladišti elektrárny.","Worner ist ein Spion, den wir im Lagerhaus des Kraftwerks rekrutiert haben.",,,Worner es un espía que reclutamos en el almacén de la estación eléctrica.,,,Worner est un espion que nous avons recruté dans l'entrepôt de la centrale éléctrique.,,,,워너는 우리가 모집한 첩자야. 그는 발전소 창고에 있어.,,Worner é um espião que recrutamos no depósito da usina de energia.,,,"Уорнэр — шпион, которого мы завербовали на складе электростанции.", "Word from the boss is stand back when you whack the crystal, or else you'll end up mesquite-flavored too.",TXT_SUB_LOG23,STRIFE1.WAD: MAP04,,,"Velení radí, aby ses držel dál až rozbiješ krystal, jinak taky skončíš jako pečínka.","Der Ratschlag vom Boss ist, in Deckung zu gehen, wenn du den Kristall plattmachst. Andernfalls könntest du als Omelett enden.",,,"Dice el jefe que te eches atrás cuando le des al cristal, o si no también acabaras frito.",,,"Le boss me raconte que tu as intérêt à prendre tes distances avant de péter le cristal, sinon tu va aussi te retrouver cuit à la sauce barbecue au plasma.",,,"上司が言うには、クリスタルを破壊する瞬間には隠れる必要があるな、 @@ -8777,7 +8790,7 @@ Random comment when the player dies with Classic Mode turned off",,,"Dobře, nes Don't give up. This is it. Straight ahead.,TXT_SUB_LOG64,STRIFE1.WAD: MAP19,,,"Nevzdávej se, tohle je ono. Jdi rovně.",Gib nicht auf. Direkt voraus.,,,No te rindas. Esto es. Justo adelante.,,,"Abandonne pas, on y est. Juste devant.",,,諦めないで。これでいいんだ。真っ直ぐ行こう。,포기하지 마. 거의 다 왔어. 가까이 왔다고.,,Não desista. Esta é a hora. Siga reto adiante.,,,Не падай духом. Вот оно. Впереди., "Next time, we stop at a gas station and ask for directions.",TXT_SUB_LOG65,,,,Příště se zastavíme na benzince a zeptáme se na cestu.,Nächstes Mal halten wir an einer Tankstelle und fragen nach der Richtung.,,,A la próxima paramos en una gasolinera y preguntamos la dirección.,,,"La prochaine fois, on s'arrète à une station-service et on demande notre chemin.",,,,다음엔 편의점 같은 건물에 들러서 그냥 방향을 묻자.,,Da próxima vez vamos parar num posto de gasolina e perguntar onde fica.,,,В следующий раз остановимся на заправке и спросим дорогу., Oh no! More bells and whistles and nasty guys chasing us.,TXT_SUB_LOG66,STRIFE1.WAD: MAP19,,,"Ale ne! Další fešné vymoženosti a padouši, co nás pronásledují.",Oh nein. Noch mehr Lärm und Bösewichte auf unseren Fersen.,,,Oh no! Más bombos y platillos y tipos malos persiguiéndonos.,,,Oh non! Encore des trucs et des choses et des sales types qui nous prennent en chasse.,,,あーらら!鐘と笛で更に厄介な奴等を呼び込んできたな。,"오, 안 돼! 삼엄한 경비에 피할 수도 없는 선택지라니.",,Ai não! Mais bugigangas e capangas vindo atrás de nós.,,,"О, нет! Ещё больше свистелок, перделок и плохих парней, которые за нами гонятся.", -"You know, from the outside, this place looks tiny.",TXT_SUB_LOG67,STRIFE1.WAD: MAP15,,,Zvenku tohle místo vypadalo drobounké.,Von außen sieht das hier irgendwie mickrig aus.,,,"Sabes, por fuera, este sitio parece enano.",,,"Tu sais, de l'extérieur, cet endroit à l'air super petit.",,,外から見ると、此処は小さいみたいね。,"궁금한 게 있는데, 왜 안에 들어가면 커지는 걸까?",,"Sabe, vendo de longe esse lugar parece minúsculo.",,,"Знаешь, снаружи это место кажется крошечным.", +"You know, from the outside, this place looks tiny.",TXT_SUB_LOG67,STRIFE1.WAD: MAP15,,,Zvenku tohle místo vypadalo drobounké.,Von außen sieht das hier irgendwie mickrig aus.,,,"Sabes, por fuera, este sitio parece enano.",,,"Tu sais, de l'extérieur, cet endroit à l'air super petit.",,,外から見ると、此処は小さいみたいね。,"궁금한 게 있는데, 왜 안에 들어가면 커지는 걸까?",,"Sabe, vendo de longe esse lugar parece minúsculo.",,,"Знаешь, снаружи это место кажется крошечным.","Знаш, напољу, ово место изгледа веома мало." "I'm getting a new enemy reading. Don't stop and stare, just waste 'em.",TXT_SUB_LOG68,,,,Zaznamenávám nového nepřítele. Nestůj tam a znič ho!,"Ich habe eine neue Feindortung. Warum wartest du, mach sie alle!",,,"Tengo señales de un nuevo enemigo. No te pares a mirar, solo cárgatelo.",,,"J'ai un ping ennemi sur mon radar. Ne t'arrète pas, flingue-les.",,,,네 주변에 적이 포착됐어. 그냥 쳐다보지 말고 어떻게든 해봐.,,"Estou recebendo sinais de um novo inimigo. Nâo fique parado olhando, mete bala neles.",,,"Вижу врагов. Не стой столбом, мочи их!", "I hate these forcefields. Look for the shut-off switch, it's gotta be nearby.",TXT_SUB_LOG69,STRIFE1.WAD: MAP15,,,"Nesnáším tahle silová pole. Porozhlédni se po nějakém vypínači, měl by být nablízko.","Ich hasse diese Kraftfelder. Such nach einem Schalter, er müsste in der Nähe sein.",,,"Odio estos campos de fuerza. Busca el interruptor de apagado, tiene que estar cerca.",,,"Je déteste les champs de force. Trouve leur commandes, elles ne doivent pas être loin.",,,私はフォースフィールドが憎いわ。遮断させるスイッチが近くにあるはずだわ。,이런 방어막들 정말 싫다니까. 저걸 끌 스위치를 찾아봐. 가까이에 있을 거야.,,"Odeio esses campos de força. Procure pelo interruptor de desligar, deve estar por perto.",,,"Ненавижу эти силовые поля. Поищи выключатель, он где-то неподалёку.", "Ooh, very impressive. Let's blow it up!",TXT_SUB_LOG70,"STRIFE1.WAD: MAP15 @@ -8879,7 +8892,7 @@ Esse imbecil possui outra peça do Sigilo.",,,"Никакой смерти. Ве (If the player is progressing through the mediocre ending)",,,"Ha há! Vítej. Čekala jsem na tento okamžik. Čekala jsem na blázna jako ty, který by mi přinesl svobodu. Tvá drobná planeta je moje a ty si budeš přát, že ses nikdy nenarodil!","Ha ha! Willkommen. Ich habe auf diesen Moment gewartet, dass ein Narr wie du mir meine Freiheit bringt. Dein kleiner Planet ist mein, und du wirst dir wünschen nie geboren worden zu sein!",,,"¡Ha ha! Bienvenido. He estado esperando este momento. He estado esperando a un necio como tú para traerme mi libertad. ¡Tu pequeño planeta es mío, y desearás no haber nacido!",,,"Ha ha! Bienvenue, j'ai attendu ce moment. J'ai attendu qu'un idiot comme vous me rende ma liberté. Votre pathétique planète m'appartient, et bientôt, vous allez tous regretter d'être nés!",,"Ha ha! Benvenuto, ho aspettato questo momento. Ho aspettato un idiota come te per ridarmi la libertà. Il tuo patetico pianeta è nelle mie mani, e tu presto rimpiangerai di essere nato.","ハッハッハ!ようこそ。私はこの瞬間を待ってイタ。 自由を得る為、アンタの様な愚か者を待っていたノダ。 キサマのワクセイはワタシのモノだ、ソシテ生マレタコトニ後悔スルデアロウ。 -","하하, 이 순간만을 기다리고 있었노라. 그대와 같은 어리석은 자가 짐을 풀어줄 순간을. 그대의 조그만 행성은 이제 짐의 것이고, 그대는 태어난 것을 후회하게 될 것이니라!",,Ha ha! Bem-vindo. Eu esperei por este momento. Esperei por um tolo como você trazer a minha liberdade. O seu planeta insignificante é meu e você vai desejar nunca ter nascido!,,,"Ха-ха! Приветствую. Я так долго ждала! Я ждала, что идиот вроде тебя освободит меня. Эта крошечная планета моя, и сейчас ты пожалеешь, что родился на свет!", +","하하, 이 순간만을 기다리고 있었노라. 그대와 같은 어리석은 자가 짐을 풀어줄 순간을. 그대의 조그만 행성은 이제 짐의 것이고, 그대는 태어난 것을 후회하게 될 것이니라!",,Ha ha! Bem-vindo. Eu esperei por este momento. Esperei por um tolo como você trazer a minha liberdade. O seu planeta insignificante é meu e você vai desejar nunca ter nascido!,,,"Ха-ха! Приветствую. Я так долго ждала! Я ждала, что идиот вроде тебя освободит меня. Эта крошечная планета моя, и сейчас ты пожалеешь, что родился на свет!","Ха ха! Добродошао. Чекао сам овај тренутак. Чекао сам будалу као ти да ми донесе слободу. Твоја мала планета је моја, и пожељећеш да ниси рођен! " "The truth can only be found in universal will. You will fall on your knees in front of the True God, the One Light. Join me and I will complete the Sigil. I'm sick of this mystical double talk.",TXT_SUB_LOG129,STRIFE1.WAD: MAP27,,,"- Pravda může být nalezena jedině v přání jsoucna. Padneš na kolena před Pravým bohem, Jedním světlem. Připoj se ke mě a já složím Pečeť. - Tenhle tajemný dvojhlas už mi leze krkem.","Die Warheit kann nur universell gefunden werden. Du wirst im Angesicht des Einen Gottes, des Einen Lichtes auf die Knie fallen. Folge mir und ich werde das Sigil komplettieren. @@ -8902,7 +8915,7 @@ Já estou cansada de toda essa ladainha mística.",,,"Истина одна — "Sounds like a dream job, doesn't it?",TXT_SUB_LOG200,,,,"Zní jako práce snů, ne?","Hört sich wie ein Traumjob an, nicht wahr?",,,"¿Parece un trabajo ideal, verdad?",,,"Le job de vos rêves, non?",,,,바라던 일 같네. 그렇지 않아?,,"Parece ser o emprego ideal, não é mesmo?",,,, "You've seen too much. Ice him, Macil!",TXT_SUB_LOG201,,,,"Viděl jsi moc. Zab ho, Macile!","Du hast genug gesehen. Mach ihn kalt, Macil!",,,"Has visto demasiado. ¡Acaba con él, Macil!",,,"Vous en avez trop vu. Descend-le, Macil!",,,,"넌 많은 걸 봤어. 얼려버려, 마실!",,"Você já viu demais. Acaba com ele, Macil!",,,, "Next time, you'll listen to me.",TXT_SUB_LOG202,"(Strife: Veteran Edition) -Random comment when the player dies with Classic Mode turned off",,,Příště budeš poslouchat mě.,Nächstes Mal hörst du auf mich.,,,"La próxima vez, me harás caso.",,,"La prochaine fois, tu m'écouteras.",,,今度は、私の言う事を聞きなさいよ。,"다음번엔, 내 말을 좀 들어. ",,"Da próxima vez, você vai me ouvir.",,,, +Random comment when the player dies with Classic Mode turned off",,,Příště budeš poslouchat mě.,Nächstes Mal hörst du auf mich.,,,"La próxima vez, me harás caso.",,,"La prochaine fois, tu m'écouteras.",,,今度は、私の言う事を聞きなさいよ。,"다음번엔, 내 말을 좀 들어. ",,"Da próxima vez, você vai me ouvir.",,,,"Следећи пут, слушаћеш ме." "Ugh, these post-apocalyptic prices...",TXT_SUB_LOG203,,,,"Uf, tyhle postapokalyptické ceny...","Ugh, diese postapokalyptischen Preise...",,,"Ugh, estos precios post-apocalípticos...",,,"Eugh, ces prix post-apocalyptiques..",,,,"으윽, 세기말 가격이네.",,"Urgh, esses preços pós-apocalípticos...",,,, Take the big one. He won't stop you.,TXT_SUB_LOG204,,,,Vem si toho velkého. Nezastaví tě.,"Nimm das große, Er wird dich nicht stoppen.",,,Toma el grande. No te detendrá.,,,"Prends le gros, il ne t'arrètera pas.",,,,커다란 놈을 막아. 둔하니까.,,Leve o grandão. Ele não vai te deter.,,,, Don't dawdle. Straight ahead!,TXT_SUB_LOG205,,,,Neloudej se. Jdi rovně!,Trödel nicht rum. Direkt voraus!,,,No te pares. ¡Sigue adelante!,,,"Ne traîne pas, tout devant!",,,,꾸물거리지 말고 빨리 움직여야 해! ,,Não pare. Siga adiante!,,,, @@ -8933,9 +8946,9 @@ Typical stubborn pig-headed male!... Unless you're a girl.,TXT_SUB_LOG226,,,,"Ty "Strong, brutal and silent. My kind of partner.",TXT_SUB_LOG227,,,,"Silný, tvrdý a tichý. Přesně můj typ.","Stark, brutal und leise. Mein Typ von Partner.",,,"Fuerte, brutal y callado. Mi tipo de compañero.",,,"Fort, brutal et silencieux. Mon type préféré.",,,,"크고, 아름답고, 과묵하네. 같이 있고 싶은 타입이야.",,"Forte, bruto e silencioso. Meu tipo de parceiro.",,,, Okay! I was wrong!,TXT_SUB_LOG228,,,,Dobře! Mýlila jsem se!,"Ok, ich habe mich geirrt.",,,¡OK! ¡Estaba equivocada!,,,"Ok, j'avais tort!",,,,아마도 아니었던 것 같네! ,,Ok! Eu estava errada!,,,, Too bad we never met... face-to-face.,TXT_SUB_LOG229,"(Strife: Veteran Edition) -Random comment when the player dies with Classic Mode turned off",,,"Škoda, že jsme se nikdy nepotkali... tváří v tvář.","Schade, dass wir uns noch nie begegnet sind...",,,Una pena que nunca nos conocieramos... cara a cara.,,,C'est dommage qu'on s'est jamais rencontré.. En face à face.,,,私達はもう会えなくなったわ...面と向かって。,만나지 못한 게 유감스럽네... 가까이서. ,,Pena que nunca nos encontramos... cara a cara.,,,, +Random comment when the player dies with Classic Mode turned off",,,"Škoda, že jsme se nikdy nepotkali... tváří v tvář.","Schade, dass wir uns noch nie begegnet sind...",,,Una pena que nunca nos conocieramos... cara a cara.,,,C'est dommage qu'on s'est jamais rencontré.. En face à face.,,,私達はもう会えなくなったわ...面と向かって。,만나지 못한 게 유감스럽네... 가까이서. ,,Pena que nunca nos encontramos... cara a cara.,,,,Жао ми је што се никад нисмо упознали... лице-у-лице. I had dreams for you... Tough shit.,TXT_SUB_LOG230,"(Strife: Veteran Edition) -Random comment when the player dies with Classic Mode turned off",,,Snila jsem o tobě... Kurva.,Ich hatte Träume für dich. Scheiße.,,,Tenía sueños para ti... Lástima.,,,J'avais des grands rêves pour toi.. Franchement dommage.,,,私は貴方に希望を抱いていた...クソ世知辛いわ。,너를 꿈꿔왔어... 꿈은 꿈이였나봐.,,Eu tinha sonhos pra você... Que merda.,,,, +Random comment when the player dies with Classic Mode turned off",,,Snila jsem o tobě... Kurva.,Ich hatte Träume für dich. Scheiße.,,,Tenía sueños para ti... Lástima.,,,J'avais des grands rêves pour toi.. Franchement dommage.,,,私は貴方に希望を抱いていた...クソ世知辛いわ。,너를 꿈꿔왔어... 꿈은 꿈이였나봐.,,Eu tinha uma grande expectativa sobre você... Que merda.,,,, "No. Don't enter the town hall. It's not safe anymore. Our cover's been blown. That's why it's raining heavy metal. Kill as many of those big boys as you can. They're called ""Crusaders"". When you're done, I'll guide you to Macil.",TXT_SUB_LOG231,,,,"Ne. Nechoď do radnice, už není bezpečná. Byli jsme odhaleni, proto nám prší kov na hlavu. Zabij kolik těch velkých kluků můžeš. Říká se jim Křižáci. Když jsi hotový, nasměruju tě k Macilovi.","Nein, betrete das Rathaus nicht. Es ist nicht mehr sicher. Unsere Tarnung ist aufgeflogen. Darum regnet es Schwermetall. Erledige so viele von den großen Robotern, wie du kannst. Sie werden „Ordensritter“ genannt. Wenn du das erledigt hast führe ich dich zu Macil.",,,"No. No entres en el ayuntamiento. Ya no es seguro. Nuestra tapadera ha sido descubierta. Por eso está lloviendo metal. Mata a tantos de esos grandotes como puedas. Se llaman ""Cruzados"". Cuando hayas terminado, te guiaré hasta Macil.",,,"Non, n'entre pas dans la mairie, notre couverture est foutue. C'est pour ça que tout est en train de péter. Détruis tous les gros machins que tu croise, on les appelle les ""Croisés"". Quand tu as fini, je te dirais où se trouve Macil.",,,,"잠깐, 시청으로 가지 마. 이미 발각되어서 이젠 안전하지 않아. 아마도 총알의 비가 내리는 유일한 이유일 거야. 최선을 다해서 저 커다란 친구들을 격파해봐. 저놈들은 ""크루세이더"" 라고 해. 이 일을 끝마치면, 마실이 있는 곳으로 안내해줄게. ",,"Não. Não entre na prefeitura. Não é mais seguro. Fomos descobertos. É por isso que está vindo chumbo grosso pra todo lado. Mate o máximo possível desses grandalhões. São chamados de ""Cruzados"". Quando você terminar, eu te levo pro Macil.",,,, "Good work, friend! It's time to bring you inside.",TXT_SUB_LOG232,,,,"Dobrá práce, kamaráde! Je čas přivést tě dovnitř.","Gute Arbeit, mein Freund. Es ist Zeit dich hereinzubringen.",,,"¡Buen trabajo, amigo! Es hora de traerte adentro.",,,"Bien joué, mon ami! Il est temps de te faire rentrer.",,,,"건투를 빌어, 친구! 안으로 들여보내 줄게. ",,"Bom trabalho, amigo! Hora de trazê-lo pra dentro.",,,, "Watch out for those Crusaders. They're big, hunking robots, and mean as hell. We don't know jack about their weapons, but odds are... you're outmatched. Careful.",TXT_SUB_LOG233,,,,"Pozor na ty Křižáky. Jsou to velcí, mohutní roboti a zatraceně zlí. Nevíme nic o jejich zbraních. Vypadá to že... jsou v přesile. Opatrně.",Sieh dich vor den Ordensrittern vor. Das sind große und mächtige Roboter und höllisch gefährlich. Wir wissen nichts über ihre Waffen aber sie übertreffen deine bei weitem. Vorsicht!,,,"Ten cuidado con esos Cruzados. Son unos robots enormes y despiadados. No sabemos nada sobre sus armas, pero lo probable es... que te lleven ventaja. Cuidado.",,,"Fais attention aux croisés, ce sont des sacrément grosses machines, et salement méchantes, aussi. On ne sait pas quelles armes ils utilisent, mais il est probable qu'ils en ont.. Plus que toi. Fais attention.",,,,"크루세이더를 조심해. 저놈들은 커다랗고 강력한 기동 병기야. 난폭하기도 하지. 놈들의 무장이 뭔지 모르지만, 중요한 점은 넌 포위됐다는 거지. 조심해. ",,"Cuidado com esses Cruzados. São robôs grandes e perigosos pra caramba. Não sabemos merda nenhuma sobre as suas armas, mas as chances são de que... você está em desvantagem. Cuidado.",,,, @@ -8945,8 +8958,8 @@ Random comment when the player dies with Classic Mode turned off",,,Snila jsem o "I wish I was waiting for you behind that door... but I've got to stay underground. It's time for you to meet our leader, Macil.",TXT_SUB_LOG237,,,,"Přála bych si, abych to byla já, kdo bude čekat za těmi dveřmi... ale musím zůstat v podzemí. Je čas setkat se s naším vůdcem, Macilem.","Ich wünschte, ich würde hinter der Tür dort warten... aber ich muss im Untergrund bleiben. Es ist Zeit, unseren Anführer, Macil, zu treffen.",,,"Ojalá fuera yo esperando tras esa puerta... Pero debo mantenerme bajo tierra. Es hora de que conozcas a nuestro lider, Macil.",,,"J'aurais adoré être de l'autre côté de cette porte.. Mais il faut que je reste sous terre. Il est temps que tu rencontre notre leader, Macil.",,"Speravo di aspettarti da dietro la porta... ma sono dovuto stare nel sottosuolo. È tempo per te di incontrare il nostro leader, Macil.",,저 문 앞에서 내가 기다리고 있었으면 얼마나 좋을까... 하지만 난 지하에서 임무를 수행해야 해. 마실 사령관을 만날 준비를 해.,,"Eu queria estar te esperando por trás daquela porta... mas eu tenho que ficar no subterrâneo. É hora de você conhecer o nosso líder, Macil.",,,, ,,Blackbird's remarks embedded in other conversations,,,,,,,,,,,,,,,,,,,, "Bloated pig. I know nothing about this so-called power coupling, so let's go slow.",TXT_BBSUB_SCRIPT02_D57608_IFIKN,,,,"Zatracený sviňák. O téhle jakési spojce nic nevím, takže na to pojďme pomalu.",Aufgeblasener Mistkerl. Ich weiß nichts über diese sogenannte Anzapfung so lass uns vorsichtig sein.,,,"Cerdo hinchado. No sé nada sobre este tal acoplamiento de energía, así que vayamos con calma.",,,"Quel porc. Je ne sais rien sur ce coupleur énergétique, allons-y doucement.",,"Che pallone gonfiato. Non so nulla sul cosiddetto ""accoppiamento elettrico"", quindi andiamoci piano.","慢心してた。私はこの配電機と言われている物について何も知らない。 -まあゆっくりやろう。",배부른 돼지 같은 녀석. 난 이 추출기에 대해서 아무것도 몰라. 너무 급하게 하지 말자.,,"Porco nojento. Eu não sei nada sobre essa tal ligação de energia, então vamos devagar.",,,Жирная свинья. Я ничего не знаю об этой «соединительной муфте». Давай не будем торопиться., -"Sounds like a dream job, doesn't it?",TXT_BBSUB_SCRIPT03_D4548_GOODB,,,,"Zní jako práce snů, ne?","Hört sich an wie ein Traumjob, nicht wahr?",,,"¿Suena como un trabajo ideal, verdad?",,,"On dirait que c'est le boulot idéal, non?",,"Sembra un lavoro da sogno, no?",夢の様な仕事ね、そう思わない?,"듣기만 해도 꿈에 그리던 일만 같네, 그렇지?",,"Parece ser o emprego dos sonhos, não é mesmo?",,,"Это же работа мечты, разве нет?", +まあゆっくりやろう。",배부른 돼지 같은 녀석. 난 이 추출기에 대해서 아무것도 몰라. 너무 급하게 하지 말자.,,"Que porco nojento. Eu não sei nada sobre essa tal ligação de energia, então vamos devagar.",,,Жирная свинья. Я ничего не знаю об этой «соединительной муфте». Давай не будем торопиться., +"Sounds like a dream job, doesn't it?",TXT_BBSUB_SCRIPT03_D4548_GOODB,,,,"Zní jako práce snů, ne?","Hört sich an wie ein Traumjob, nicht wahr?",,,"¿Suena como un trabajo ideal, verdad?",,,"On dirait que c'est le boulot idéal, non?",,"Sembra un lavoro da sogno, no?",夢の様な仕事ね、そう思わない?,"듣기만 해도 꿈에 그리던 일만 같네, 그렇지?",,"Parece ser o emprego dos sonhos, não é mesmo?",,,"Это же работа мечты, разве нет?","Звучи као посао из снова, је ли тако?" And I'll be right there with you.,TXT_BBSUB_SCRIPT03_D7580_TAKET,,,,A já tam budu s tebou.,Und ich werde bei deiner Seite sein.,,,Y estaré justo ahí contigo.,,,Et je serais là pour toi.,,E io sarò lì con te.,それで貴方のすぐ傍にいるわ。,그리고 내가 너와 함께 있어 줄께.,,E eu vou estar bem alí do seu lado.,,,А я буду рядом с тобой., Worner's a spy we recruited in the warehouse of the power station.,TXT_BBSUB_SCRIPT03_D12128_ASING,,,,"Worner je špión, kterého jsme najali ve skladišti elektrárny.","Worner ist ein Spion, den wir im Lagerhaus des Kraftwerks rekrutiert haben.",,,Worner es un espía que reclutamos en el almacén de la estación eléctrica.,,,Worner est un espion que l'on a recruté dans l'entrepôt de la centrale électrique.,,Worner è una spia che noi avevamo reclutato nel magazzino della centrale elettrica.,ワーナーは発電所の倉庫に送った我々のスパイよ。,워너는 우리가 모집한 첩자야. 그는 발전소 창고에 있어.,,O Worner é um espião que recrutamos no depósito da usina elétrica.,,,"Уорнэр — шпион, которого мы завербовали на складе электростанции.", Make sure you're ready for the fight of your life. No scrimping. Spend everything you've got.,TXT_BBSUB_SCRIPT03_D16676_THEPR,,,,"Ujisti se, že jsi připraven na souboj svého života. Žádné škudlení. Utrať všechno, co máš.","Bereite dich auf den Kampf deines Lebens vor. Kein falsche Sparsamkeit, benutze alles, was du hast.",,,Asegúrate de estar preparado para la pelea de tu vida. No escatimes. Gástate todo lo que tengas.,,,"Sois sûr que tu est prêt pour le combat le plus brutal de ta vie. Pas d'avarice, dépense tout ce que tu as.",,Preparati per la lotta della tua vita. Non risparmiare. Spendi tutto ciò che hai.,"己の命の為に戦う準備が出来ているか確認して。 @@ -8954,7 +8967,7 @@ Make sure you're ready for the fight of your life. No scrimping. Spend everythin "Excuse me, I'm gonna be sick.",TXT_BBSUB_SCRIPT04_D21224_BUSIN,,,,"Omluv mě, budu zvracet.","Entschuldige, aber mir wird übel.",,,"Perdona, me voy a poner mala.",,,"Pardon, je crois que je vais vomir.",,"Scusami, sto per sentirmi male.",失礼ながら、しゃくに障るわ。,"실례지만, 이거 좀 골때리겠는데?",,"Desculpa, estou passando mal.",,,"Прости, меня сейчас вырвет.", Mmm. Sounds like weapons. We can always use more firepower.,TXT_BBSUB_SCRIPT04_D25772_TELLW,,,,"Mhmm, to zní jako zbraně. Palebná síla se nám vždycky hodí.",Hm... Klingt wie Waffen. Mehr Feuerkraft können wir immer gebrauchen.,,,Mmm. Suena a armas. Siempre nos viene bien más potencia de fuego.,,,Mmmh. On dirait des armes. On peut toujours faire avec plus de puissance de feu.,,Mm. Sembrano le armi. Possiamo sempre usare più potenza di fuoco.,フーム。聞く限り武器の様ね。いつも以上の火力を出せそうだ。,으음. 왠지 무기 같은데. 화력이야 더 많으면 좋지.,,Hmmm. Sinto cheiro de armas. Poder de fogo a mais é sempre bem-vindo.,,,"М-м-м. Похоже, там оружие. Лишняя огневая мощь не помешает.", "This sounds too easy, but let's give it a shot.",TXT_BBSUB_SCRIPT04_D31836_WHATD,,,,"To zní moc snadno, ale zkusme to.","Das klingt zu einfach, aber lass es uns versuchen.",,,"Esto suena muy fácil, pero intentémoslo.",,,Ca à l'air trop facile mais ça vaut le coup d'essayer.,,"Sembra troppo facile, ma proviamoci.",簡単すぎるけど、一発かましてみましょうか。,"쉬운 일 같지만, 일단 한번 해보자고.",,"Tá parecendo fácil demais, mas vamos tentar.",,,Слишком уж заманчиво. Хотя давай попытаемся., -Who cares. Nobody listens to programmers anyway.,TXT_BBSUB_SCRIPT04_D40932_LETME,,,,"Koho to zajímá, programátory stejně nikdo neposlouchá.",Egal! Wer hört schon auf Programmierer.,,,A quien le importa. Nadie escucha a los programadores de todos modos.,,,"On s'en fout, personne n'écoute les programmeurs de toute manières.",,A chi importa. Tanto nessuno sta a sentire i programmatori.,面倒ね。プログラマーについて知ってるのは誰もいないわ。,어쩌라고. 아무도 프로그래머들 이야기는 안 듣는데.,,Quem liga? Ninguém dá bola pra programadores mesmo.,,,Какая разница? Программистов всё равно никто не слушает., +Who cares. Nobody listens to programmers anyway.,TXT_BBSUB_SCRIPT04_D40932_LETME,,,,"Koho to zajímá, programátory stejně nikdo neposlouchá.",Egal! Wer hört schon auf Programmierer.,,,A quien le importa. Nadie escucha a los programadores de todos modos.,,,"On s'en fout, personne n'écoute les programmeurs de toute manières.",,A chi importa. Tanto nessuno sta a sentire i programmatori.,面倒ね。プログラマーについて知ってるのは誰もいないわ。,어쩌라고. 아무도 프로그래머들 이야기는 안 듣는데.,,Quem liga? Ninguém dá bola pros programadores mesmo.,,,Какая разница? Программистов всё равно никто не слушает.,Кога брига. Нико не слуша програмере ионако. "Ooh. Glad I'm in hiding, if you know what I mean.",TXT_BBSUB_SCRIPT04_D54576_ITSAS,,,,"Oh, jsem ráda, že se schovávám, jestli víš, co tím myslím.","Uh. Wie gut, dass ich mich verstecke - du weißt schon was ich meine.",,,"Ooh. Menos mal que estoy escondida, si sabes a lo que me refiero.",,,"Ooh, je suis contente d'être cachée, si tu vois ce que je veux dire.",,"Ooh. Per fortuna che sono nascosta, se capisci cosa intendo.",オオゥ。私が言わなくてもわかるけど、隠れた方がいいわね。,"오, 내가 숨어있어서 다행이야. 무슨 뜻인지 알겠지?",,"Oooh. Ainda bem que estou escondida, se é que você me entende.",,,"Ой. Хорошо, что я в укрытии, если ты понимаешь, о чём я.", What a grouch. I hope you get to kill him later.,TXT_BBSUB_SCRIPT05_D1516_OKBUT,,,,"Takový mrzout. Doufám, že ho pak zabijeme.",Was für ein Ekel. Hoffentlich kannst du ihn später mal erledigen.,,,Qué gruñón. Espero que lo mates luego.,,,Quel grincheux. J'espère qu'on va le buter plus tard.,,Che brontolone. Spero che ti ritrovi a ucciderlo dopo.,なに拗ねてるの。後で彼を殺すのを期待してるわ。,뭐가 이리 불만이야. 나중에 얘 좀 꼭 처리해줘.,,Que rabugento! Espero que você mate ele depois.,,,"Ну и зануда. Может, ты потом вернёшься и убьёшь его?", """This area's off limits!"" Pompous so-and-so.",TXT_BBSUB_SCRIPT05_D3032_DOILO,,,,„Do této oblasti je vstup zakázán!“ Pompézní hajzl.,„Zutritt verboten!“ Elendiger Wichtigtuer.,,,"""¡Esta área está fuera de limite!"" Que estirado.",,,"""Cette zone est à accès restreint!"" Pompeux anonyme, va.",,"""Quest'area è off limits!"" Pomposo miserabile.",この区域は立入禁止!'そんなワザとらしい。,“이곳은 통행 금지야!” 웃기고 앉아있네.,,"""Proibido entrar nessa área!"" Que miserável prepotente.",,,«Здесь закрытая территория!» Надутый индюк., @@ -8963,7 +8976,7 @@ What an up guy.,TXT_BBSUB_SCRIPT05_D4548_THEOR,,,,Takový veselý chlapík!,Was "Everybody is so needy. ",TXT_BBSUB_SCRIPT06_D1516_DOMYF,,,,Každý toho tolik potřebuje.,Jeder hier ist so bedürftig!,,,Todo el mundo es tan necesitado.,,,Tout le monde est tellement demandant.,,Tutti sono così bisognosi.,誰もがとても貧しいのよ。,다들 참 궁색하게 사네.,,Por que todo mundo é tão mimimizento?,,,Тут все такие нуждающиеся!, Great. Now we're shopping for the Rat King.,TXT_BBSUB_SCRIPT06_D3032_BRING,,,,"Super, teď máme nakupovat pro Krysího krále.","Klasse, jetzt machen wir die Arbeit für den Rattenkönig.",,,Genial. Ahora vamos de compras para el Rey de las Ratas.,,,"Parfait, maintenant on fait du shopping pour le roi des rats.",,Grandioso. Adesso stiamo facendo shopping con il re dei ratti.,素敵ね。私達がラットキングのために買い物とか。,끝내준다. 이제 시궁쥐 왕의 심부름도 해야 한다니.,,Que beleza. Agora estamos fazendo comprinhas pro Rato-Rei.,,,Классно. Мы идём за покупками для Крысиного Короля., -"I bet this guy smells really bad, too.",TXT_BBSUB_SCRIPT06_D4548_OPENT,,,,"Hádám, že tenhle chlápek taky pěkně smrdí.","Ich wette, dieser Kerl riecht auch übel.",,,"Apuesto a que este tipo huele muy mal, también.",,,"Je parie que ce type sent salement mauvais, aussi.",,Scommetto che questo ragazzo ha pure un cattivo odore.,この男も酷い悪臭がすると賭けるわ。,얘도 분명 냄새 하나는 죽여줄 거야.,,Aposto que esse cara fede pra caramba também.,,,"Уверена, этот парень воняет особенно ужасно.", +"I bet this guy smells really bad, too.",TXT_BBSUB_SCRIPT06_D4548_OPENT,,,,"Hádám, že tenhle chlápek taky pěkně smrdí.","Ich wette, dieser Kerl riecht auch übel.",,,"Apuesto a que este tipo huele muy mal, también.",,,"Je parie que ce type sent salement mauvais, aussi.",,Scommetto che questo ragazzo ha pure un cattivo odore.,この男も酷い悪臭がすると賭けるわ。,얘도 분명 냄새 하나는 죽여줄 거야.,,Aposto que esse cara fede pra caramba também.,,,"Уверена, этот парень воняет особенно ужасно.",Кладим се да овај човек смрди лоше такође. More sewers... Great. Wonder what lives down there.,TXT_BBSUB_SCRIPT06_D9096_YOUHA,,,,"Další stoky... skvělý. Zajímalo by mě, co tam dole žije.","Mehr Kanäle, toll... Ich frage mich, was da unten lebt.",,,Más alcantarillas... Genial. Me pregunto que vivirá ahí abajo.,,,Plus d'égouts.. Youpi. Je me demande qui vit là dedans.,,Altre fogne... fantastico. Mi domando cosa vive qua giù.,更なる下水道...ヤッバ。下に何が住んでるのか不思議に思うわ。,또 하수도라... 끝내준다. 저 아래에 또 뭐가 살고 있을까?,,Mais esgotos... Que legal. O que será que vive lá embaixo?,,,"Снова канализация... Замечательно. Интересно, кого мы там встретим?", Dead end here. We'd better keep looking.,TXT_BBSUB_SCRIPT07_D6064_PROGR,,,,Tudy cesta nevede. Měli bychom se dívat dál.,Sackgasse. Wir sollten es woanders versuchen.,,,Un callejón sin salida. Deberíamos seguir buscando.,,,"Une impasse. Bon, on continue de chercher.",,Qui c'è un vicolo cieco. Meglio continuare a guardare.,行き止まりだ。私達はまだこの景色を楽しめるわ。,여기가 아닌가 봐. 다른 곳을 찾아봐야겠어.,,Sem saída aqui. Melhor seguirmos procurando.,,,Тупик. Давай продолжать поиски., "Onward, my champion. Let's make Mr. Ugly twist and shout. @@ -8973,11 +8986,11 @@ Dead end here. We'd better keep looking.,TXT_BBSUB_SCRIPT07_D6064_PROGR,,,,Tudy それと態度が悪いことも。 ","인간개조? 음, 이거 때문에 녀석들이 끊임없이 나오는 거였어! 녀석들 성질 더러운 것도 그렇고.",,"Biomecânicos? Bom, deve ser por isso que o número de soldados parece não ter fim! Deve explicar os péssimos comportamentos também.",,,"Биомеханических? Что ж, теперь ясно, почему их солдаты не заканчиваются! И почему они так отвратительно себя ведут.", Sick fuck... Waste him!,TXT_BBSUB_SCRIPT10_D16676_IAMTH,,,,Podlý sráč... Zab ho!,Der Typ ist doch krank. Mach ihn alle.,,,Maldito enfermo... ¡Cárgatelo!,,,"Quel salaud, bute le!",,È malato marcio... Fallo fuori!,クソ腹立つ...!野郎を消せ!,역겨운 자식... 죽여버려!,,Doente do caralho... Acaba com ele!,,,Больной ублюдок... Мочи его!, -"He may be ugly, but it seems like he's on our side.",TXT_BBSUB_SCRIPT12_D12128_USETH,,,,"Možná je ošklivý, ale zdá se, že je na naší straně.","Er mag ja hässlich sein, aber es sieht aus als ob er auf unserer Seite sei.",,,"Puede que sea feo, pero parece que está de nuestro lado.",,,"Il est hideux, mais il semble qu'il soit de notre côté.",,"Può essere brutto, ma sembra che lui sia dalla nostra parte.",彼は醜いだろうが、我々に味方している。,"이 양반 못생기긴 했어도, 우리 편인 것 같네.",,"Ele pode ser feio, mas parece que ele está no nosso lado.",,,"Пусть он и урод, но, похоже, он на нашей стороне.", +"He may be ugly, but it seems like he's on our side.",TXT_BBSUB_SCRIPT12_D12128_USETH,,,,"Možná je ošklivý, ale zdá se, že je na naší straně.","Er mag ja hässlich sein, aber es sieht aus als ob er auf unserer Seite sei.",,,"Puede que sea feo, pero parece que está de nuestro lado.",,,"Il est hideux, mais il semble qu'il soit de notre côté.",,"Può essere brutto, ma sembra che lui sia dalla nostra parte.",彼は醜いだろうが、我々に味方している。,"이 양반 못생기긴 했어도, 우리 편인 것 같네.",,"Ele pode ser feio, mas parece que ele está no nosso lado.",,,"Пусть он и урод, но, похоже, он на нашей стороне.","Можда је он ружан, али је на нашој страни." "Judging by recent history, I guess stealth is out.",TXT_BBSUB_SCRIPT17_D10612_OHSUR,,,,"Soudě podle naší nedávné historie hádám, že pokradmu to nepůjde.","Nach den jüngsten Geschehnissen zu urteilen, ist Tarnung nicht drin.",,,"Juzgando por nuestro historial reciente, supongo que el sigilo queda descartado.",,,"En se basant sur ce qui vient de se passer, je pense que la discrétion n'est pas une option.",,"A giudicare dalla storia recente, suppongo che lo stealth sia da scartare.",最近の記録から判断すると、秘密は公になると私は思う。,"최근 상황을 보건대, 잠입 작전은 힘들 것 같아.",,"Julgando pelo nosso histórico recente, acho que cautela está fora de questão.",,,"Судя по недавним событиям, можно больше не прятаться.", "Hmm. No fuss, no muss, nothing for mom to clean up... Get me one, please. ",TXT_BBSUB_SCRIPT17_D13644_OHWEL,This remark is for information about the maulers in the warehouse.,,,"Hmm. Žádný rámus, žádný bordel, maminka nemusí nic uklízet... Taky mi jeden kup, prosím!",Hmm. Lass nichts anbrennen. Hol mir bitte so ein Ding.,,,"Hmm. Sin dejar restos, nada que mamá tenga que limpiar... Dame uno, por favor.",,,"Hmm. Pas de boucan, pas de bordel, rien que maman à besoin de nettoyer après.. Récupère en un pour moi, s'il te plaît.",,"Mm. Non protesta, fa zero residui, nulla da far pulire a mamma... Dammene uno, per favore.","うーむ。慌てず、騒がず、ママの掃除も無し... 何か一杯お願い。",흠. 이유 없이 그런 소문이 났을 리는 없을 테고... 나도 그 무기 하나만 가져다줘.,,"Hmm. Sem frescura, sem sujeira, nada pra mamãe ter que limpar... Pega um pra mim, por favor.",,,"Хм-м. Ни шума, ни пыли, мама не заставит убираться... Достань мне одно такое, пожалуйста!", "You think I'd get tired of all this killing everyone stuff, but I know I'm going to miss it when it's over. ",TXT_BBSUB_SCRIPT31_D0_OHNOI,,,,"Řekl bys, že by mě tohle zabíjení všech začalo unavovat, ale vím, že mi to bude chybět, až tohle všechno skončí.","Man könnte denken, dass man von dieser „alle töten“-Sache müde wird, aber ich weiß, ich werde es vermissen, wenn alles vorbei ist.",,,"Pensarás que me cansaría de esto de matar a todo el mundo, pero sé que lo echaré de menos cuando se acabe.",,,"On pensrai que j'en aurai marre de cette routine de ""tue tout le monde"", mais je crois que ça va me manquer quand on en aura fini.",,"Potresti pensare che io mi stanchi di questa cosa di ""uccidere tutti"", ma io so già che mi mancherà quando tutto sarà finito.","貴方は全ての人々が殺害される事にうんざりしていると思うわ、 -でも私は全てが終わったら見逃すと知っている。","내가 사람들 죽이는 걸 지겨워할 것 같지만, 이 일이 모두 끝나면 아마 그리워할 거야.",,"Você deve achar que fico cansada de toda essa matança, mas sei que vou sentir falta disso quando acabar.",,,"Ты думаешь, что я устану от всех этих убийств? Нет, на самом деле мне их будет не хватать.", \ No newline at end of file +でも私は全てが終わったら見逃すと知っている。","내가 사람들 죽이는 걸 지겨워할 것 같지만, 이 일이 모두 끝나면 아마 그리워할 거야.",,"Você deve achar que fico cansada de toda essa matança, mas sei que vou sentir falta disso quando acabar.",,,"Ты думаешь, что я устану от всех этих убийств? Нет, на самом деле мне их будет не хватать.","Мислиш да би ми досадило овај убити свакога ствар, али ће ми недостајати када се заврши." \ No newline at end of file From 1dd98a5c89afd8ac1b0316219bbb1322b3f6f029 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Sat, 27 Jul 2019 09:35:45 +0200 Subject: [PATCH 14/32] - when using the VGA font, confine the speaker's text in Strife dialogues to the backdrop picture. This looks a lot better. Unfortunately for the regular SmallFont this would severely reduce the available space for the text so it isn't done here, even though for shorter texts the formatting would look better as well. --- .../zscript/ui/menu/conversationmenu.zs | 35 +++++++++++++++---- 1 file changed, 29 insertions(+), 6 deletions(-) diff --git a/wadsrc/static/zscript/ui/menu/conversationmenu.zs b/wadsrc/static/zscript/ui/menu/conversationmenu.zs index 3c939d380..efa1b10ec 100644 --- a/wadsrc/static/zscript/ui/menu/conversationmenu.zs +++ b/wadsrc/static/zscript/ui/menu/conversationmenu.zs @@ -77,6 +77,8 @@ class ConversationMenu : Menu Array mResponseLines; Array mResponses; bool mShowGold; + bool mHasBackdrop; + bool mConfineTextToBackdrop; StrifeDialogueNode mCurNode; int mYpos; PlayerInfo mPlayer; @@ -85,6 +87,7 @@ class ConversationMenu : Menu int LineHeight; int ReplyLineHeight; Font displayFont; + int speechDisplayWidth; int displayWidth; int displayHeight; int fontScale; @@ -101,7 +104,7 @@ class ConversationMenu : Menu //============================================================================= // - // returns the y position of the replies boy for positioning the terminal response. + // returns the y position of the replies box for positioning the terminal response. // //============================================================================= @@ -112,6 +115,10 @@ class ConversationMenu : Menu mShowGold = false; ConversationPauseTic = gametic + 20; DontDim = true; + + let tex = TexMan.CheckForTexture (CurNode.Backdrop, TexMan.Type_MiscPatch); + mHasBackdrop = tex.isValid(); + if (!generic_ui && !dlg_vgafont) { displayFont = SmallFont; @@ -123,17 +130,33 @@ class ConversationMenu : Menu ReplyWidth = 320-50-10; SpeechWidth = screen.GetWidth()/CleanXfac - 24*2; ReplyLineHeight = LineHeight = displayFont.GetHeight(); + mConfineTextToBackdrop = false; + speechDisplayWidth = displayWidth; } else { displayFont = NewSmallFont; fontScale = (CleanXfac+1) / 2; - displayWidth = screen.GetWidth() / fontScale; - displayHeight = screen.GetHeight() / fontScale; refwidth = 640; refheight = 400; ReplyWidth = 640-100-20; - SpeechWidth = screen.GetWidth()/fontScale - (24*2 * CleanXfac / fontScale); + displayWidth = screen.GetWidth() / fontScale; + displayHeight = screen.GetHeight() / fontScale; + let aspect = Screen.GetAspectRatio(); + if (!mHasBackdrop || aspect <= 1.3334) + { + SpeechWidth = screen.GetWidth()/fontScale - (24*3 * CleanXfac / fontScale); + mConfineTextToBackdrop = false; + speechDisplayWidth = displayWidth; + } + else + { + let formatWidth = Screen.GetHeight() * 1.3333; + SpeechWidth = formatWidth / fontScale - (24*3 * CleanXfac / fontScale); + mConfineTextToBackdrop = true; + speechDisplayWidth = formatWidth / fontScale; + } + LineHeight = displayFont.GetHeight() + 2; ReplyLineHeight = LineHeight * fontScale / CleanYfac; } @@ -442,13 +465,13 @@ class ConversationMenu : Menu if (speakerName.Length() > 0) { - screen.DrawText(displayFont, Font.CR_WHITE, x / fontScale, y / fontScale, speakerName, DTA_KeepRatio, true, DTA_VirtualWidth, displayWidth, DTA_VirtualHeight, displayHeight); + screen.DrawText(displayFont, Font.CR_WHITE, x / fontScale, y / fontScale, speakerName, DTA_KeepRatio, !mConfineTextToBackdrop, DTA_VirtualWidth, speechDisplayWidth, DTA_VirtualHeight, displayHeight); y += linesize * 3 / 2; } x = 24 * screen.GetWidth() / 320; for (int i = 0; i < cnt; ++i) { - screen.DrawText(displayFont, Font.CR_UNTRANSLATED, x / fontScale, y / fontScale, mDialogueLines.StringAt(i), DTA_KeepRatio, true, DTA_VirtualWidth, displayWidth, DTA_VirtualHeight, displayHeight); + screen.DrawText(displayFont, Font.CR_UNTRANSLATED, x / fontScale, y / fontScale, mDialogueLines.StringAt(i), DTA_KeepRatio, !mConfineTextToBackdrop, DTA_VirtualWidth, speechDisplayWidth, DTA_VirtualHeight, displayHeight); y += linesize; } } From 8219c3fd07850ccc475e90e15f9570194288a862 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Sat, 27 Jul 2019 11:29:18 +0200 Subject: [PATCH 15/32] - corrected character offsets. --- .../filter/game-strife/fonts/bigfont/0402.lmp | Bin 402 -> 402 bytes .../filter/game-strife/fonts/bigfont/0409.lmp | Bin 489 -> 489 bytes .../filter/game-strife/fonts/bigfont/040A.lmp | Bin 526 -> 526 bytes .../filter/game-strife/fonts/bigfont/040B.lmp | Bin 386 -> 386 bytes .../filter/game-strife/fonts/bigfont/040F.lmp | Bin 368 -> 368 bytes 5 files changed, 0 insertions(+), 0 deletions(-) diff --git a/wadsrc_extra/static/filter/game-strife/fonts/bigfont/0402.lmp b/wadsrc_extra/static/filter/game-strife/fonts/bigfont/0402.lmp index 38f4e8456823d141daf6b125c33c04c0db156e9b..b0b071fc436855c8838a9d164a96a4ec531d4b0e 100644 GIT binary patch delta 17 YcmbQlJc*e@h(UmXf#J{pjT~K!03%-nlmGw# delta 17 WcmbQlJc*e@h(Uk>1U7PXF#-S>d;*yO diff --git a/wadsrc_extra/static/filter/game-strife/fonts/bigfont/0409.lmp b/wadsrc_extra/static/filter/game-strife/fonts/bigfont/0409.lmp index ff6fa0b93c4140264795754b94308dec379b7b3c..1d09df31d1fddf540625d281e7e8bc513c9e391d 100644 GIT binary patch delta 17 YcmaFK{F0eNf`Olbf#J{pjT{dd0WT{Bo&W#< delta 17 WcmaFK{F0eNf`Oj_1U7O!WCQ>tNCTq) diff --git a/wadsrc_extra/static/filter/game-strife/fonts/bigfont/040A.lmp b/wadsrc_extra/static/filter/game-strife/fonts/bigfont/040A.lmp index d4eb418283e938bd8b5f30e1344764ee1f5f2f8a..bf844135bfd5c7918fde4effb46f6c485211092c 100644 GIT binary patch delta 17 YcmeBU>0{xLWDsCrVEFTYBL^E303u2R5&!@I delta 17 VcmeBU>0{xLWDsBgfsGt&OaK>W0v7-P diff --git a/wadsrc_extra/static/filter/game-strife/fonts/bigfont/040B.lmp b/wadsrc_extra/static/filter/game-strife/fonts/bigfont/040B.lmp index a41971612cfdc341fe71589f3963692e3a721338..b6cb870a04a5563c2be5061277d07541bfd0b59f 100644 GIT binary patch delta 17 YcmZo-Zer#TWDsCrVEFTYBS#e@03kC3V*mgE delta 17 VcmZo-Zer#TWDsBgfsGthi~tr;0%!mL diff --git a/wadsrc_extra/static/filter/game-strife/fonts/bigfont/040F.lmp b/wadsrc_extra/static/filter/game-strife/fonts/bigfont/040F.lmp index 15d00db8edc386618657ae58ec7affd8bb8f6a51..bb7031a3f4ed9447c580b1408944e5aaf130d571 100644 GIT binary patch delta 17 Ycmeys^nr;(fI*Off#J{pjT{+_04}cuD*ylh delta 17 Wcmeys^nr;(fI*M}1U7PHFaiK0%mXk0 From a308becb48939ef712a185db9acf2295da1663fd Mon Sep 17 00:00:00 2001 From: "alexey.lysiuk" Date: Sat, 27 Jul 2019 12:49:06 +0300 Subject: [PATCH 16/32] - pass NSView instance when creating macOS Vulkan surface MoltenVK allows passing a layer, although Vulkan specs prohibit this https://www.khronos.org/registry/vulkan/specs/1.1-extensions/man/html/VkMacOSSurfaceCreateInfoMVK.html This helps with testing of renderer using Vulkan Portability Implementation --- src/posix/cocoa/i_video.mm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/posix/cocoa/i_video.mm b/src/posix/cocoa/i_video.mm index a03cae46c..d157c4b33 100644 --- a/src/posix/cocoa/i_video.mm +++ b/src/posix/cocoa/i_video.mm @@ -903,7 +903,7 @@ bool I_CreateVulkanSurface(VkInstance instance, VkSurfaceKHR *surface) windowCreateInfo.sType = VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK; windowCreateInfo.pNext = nullptr; windowCreateInfo.flags = 0; - windowCreateInfo.pView = [[CocoaVideo::GetWindow() contentView] layer]; + windowCreateInfo.pView = [CocoaVideo::GetWindow() contentView]; const VkResult result = vkCreateMacOSSurfaceMVK(instance, &windowCreateInfo, nullptr, surface); return result == VK_SUCCESS; From 5cb59018e03396232eeefe2ef9f340cb86345431 Mon Sep 17 00:00:00 2001 From: Kevin Hutchins Date: Sat, 13 Jul 2019 13:38:44 -0700 Subject: [PATCH 17/32] Adds option to use a rotation of quicksaves instead of having one quicksave slot that needs to be manually created. --- src/g_game.cpp | 47 ++++++++++++++++++++++++++++++++++----- src/g_game.h | 2 ++ src/menu/loadsavemenu.cpp | 6 ++--- src/menu/menu.h | 2 +- src/menu/messagebox.cpp | 8 +++++++ wadsrc/static/menudef.txt | 2 ++ 6 files changed, 58 insertions(+), 9 deletions(-) diff --git a/src/g_game.cpp b/src/g_game.cpp index 3e040df56..fffa6eff3 100644 --- a/src/g_game.cpp +++ b/src/g_game.cpp @@ -95,8 +95,9 @@ void G_DoPlayDemo (void); void G_DoCompleted (void); void G_DoVictory (void); void G_DoWorldDone (void); -void G_DoSaveGame (bool okForQuicksave, FString filename, const char *description); +void G_DoSaveGame (bool okForQuicksave, bool forceQuicksave, FString filename, const char *description); void G_DoAutoSave (); +void G_DoQuickSave (); void STAT_Serialize(FSerializer &file); bool WriteZip(const char *filename, TArray &filenames, TArray &content); @@ -1059,7 +1060,7 @@ void G_Ticker () G_DoLoadGame (); break; case ga_savegame: - G_DoSaveGame (true, savegamefile, savedescription); + G_DoSaveGame (true, false, savegamefile, savedescription); gameaction = ga_nothing; savegamefile = ""; savedescription = ""; @@ -2028,6 +2029,14 @@ CUSTOM_CVAR (Int, autosavecount, 4, CVAR_ARCHIVE|CVAR_GLOBALCONFIG) if (self < 0) self = 0; } +CVAR (Int, quicksavenum, -1, CVAR_NOSET|CVAR_ARCHIVE|CVAR_GLOBALCONFIG) +static int lastquicksave = -1; +CVAR (Bool, quicksaverotation, false, CVAR_ARCHIVE|CVAR_GLOBALCONFIG) +CUSTOM_CVAR (Int, quicksaverotationcount, 4, CVAR_ARCHIVE|CVAR_GLOBALCONFIG) +{ + if (self < 1) + self = 1; +} void G_DoAutoSave () { @@ -2061,7 +2070,35 @@ void G_DoAutoSave () readableTime = myasctime (); description.Format("Autosave %s", readableTime); - G_DoSaveGame (false, file, description); + G_DoSaveGame (false, false, file, description); +} + +void G_DoQuickSave () +{ + FString description; + FString file; + // Keeps a rotating set of quicksaves + UCVarValue num; + const char *readableTime; + int count = quicksaverotationcount != 0 ? quicksaverotationcount : 1; + + if (quicksavenum < 0) + { + lastquicksave = 0; + } + else + { + lastquicksave = (quicksavenum + 1) % count; + } + + num.Int = lastquicksave; + quicksavenum.ForceSet (num, CVAR_Int); + + file = G_BuildSaveName ("quick", lastquicksave); + + readableTime = myasctime (); + description.Format("Quicksave %s", readableTime); + G_DoSaveGame (true, true, file, description); } @@ -2166,7 +2203,7 @@ static void PutSavePic (FileWriter *file, int width, int height) } } -void G_DoSaveGame (bool okForQuicksave, FString filename, const char *description) +void G_DoSaveGame (bool okForQuicksave, bool forceQuicksave, FString filename, const char *description) { TArray savegame_content; TArray savegame_filenames; @@ -2282,7 +2319,7 @@ void G_DoSaveGame (bool okForQuicksave, FString filename, const char *descriptio WriteZip(filename, savegame_filenames, savegame_content); - savegameManager.NotifyNewSave (filename, description, okForQuicksave); + savegameManager.NotifyNewSave (filename, description, okForQuicksave, forceQuicksave); // delete the JSON buffers we created just above. Everything else will // either still be needed or taken care of automatically. diff --git a/src/g_game.h b/src/g_game.h index baedc0627..47d9231a0 100644 --- a/src/g_game.h +++ b/src/g_game.h @@ -82,6 +82,8 @@ void G_DoLoadGame (void); // Called by M_Responder. void G_SaveGame (const char *filename, const char *description); +// Called by messagebox +void G_DoQuickSave (); // Only called by startup code. void G_RecordDemo (const char* name); diff --git a/src/menu/loadsavemenu.cpp b/src/menu/loadsavemenu.cpp index a21818f54..6a3d5f0df 100644 --- a/src/menu/loadsavemenu.cpp +++ b/src/menu/loadsavemenu.cpp @@ -318,7 +318,7 @@ DEFINE_ACTION_FUNCTION(FSavegameManager, ReadSaveStrings) // //============================================================================= -void FSavegameManager::NotifyNewSave(const FString &file, const FString &title, bool okForQuicksave) +void FSavegameManager::NotifyNewSave(const FString &file, const FString &title, bool okForQuicksave, bool forceQuicksave) { FSaveGameNode *node; @@ -342,7 +342,7 @@ void FSavegameManager::NotifyNewSave(const FString &file, const FString &title, node->bMissingWads = false; if (okForQuicksave) { - if (quickSaveSlot == nullptr) quickSaveSlot = node; + if (quickSaveSlot == nullptr || forceQuicksave) quickSaveSlot = node; LastAccessed = LastSaved = i; } return; @@ -358,7 +358,7 @@ void FSavegameManager::NotifyNewSave(const FString &file, const FString &title, if (okForQuicksave) { - if (quickSaveSlot == nullptr) quickSaveSlot = node; + if (quickSaveSlot == nullptr || forceQuicksave) quickSaveSlot = node; LastAccessed = LastSaved = index; } } diff --git a/src/menu/menu.h b/src/menu/menu.h index 6928bd5b8..296665326 100644 --- a/src/menu/menu.h +++ b/src/menu/menu.h @@ -84,7 +84,7 @@ public: private: int InsertSaveNode(FSaveGameNode *node); public: - void NotifyNewSave(const FString &file, const FString &title, bool okForQuicksave); + void NotifyNewSave(const FString &file, const FString &title, bool okForQuicksave, bool forceQuicksave); void ClearSaveGames(); void ReadSaveStrings(); diff --git a/src/menu/messagebox.cpp b/src/menu/messagebox.cpp index c58b2ab94..732ad8001 100644 --- a/src/menu/messagebox.cpp +++ b/src/menu/messagebox.cpp @@ -44,6 +44,7 @@ #include "vm.h" EXTERN_CVAR (Bool, saveloadconfirmation) // [mxd] +EXTERN_CVAR (Bool, quicksaverotation) typedef void(*hfunc)(); DEFINE_ACTION_FUNCTION(DMessageBoxMenu, CallHandler) @@ -174,6 +175,13 @@ CCMD (quicksave) if (gamestate != GS_LEVEL) return; + + // If the quick save rotation is enabled, it handles the save slot. + if (quicksaverotation) + { + G_DoQuickSave(); + return; + } if (savegameManager.quickSaveSlot == NULL) { diff --git a/wadsrc/static/menudef.txt b/wadsrc/static/menudef.txt index 0e238666c..32fa61bdb 100644 --- a/wadsrc/static/menudef.txt +++ b/wadsrc/static/menudef.txt @@ -1182,6 +1182,8 @@ OptionMenu "MiscOptions" protected Option "$MISCMNU_ENABLEAUTOSAVES", "disableautosave", "Autosave" Option "$MISCMNU_SAVELOADCONFIRMATION", "saveloadconfirmation", "OnOff" Slider "$MISCMNU_AUTOSAVECOUNT", "autosavecount", 1, 20, 1, 0 + Option "$MISCMNU_QUICKSAVEROTATION", "quicksaverotation", "OnOff" + Slider "$MISCMNU_QUICKSAVECOUNT", "quicksaverotationcount", 1, 20, 1, 0 Option "$MISCMNU_DEHLOAD", "dehload", "dehopt" Option "$MISCMNU_ENABLESCRIPTSCREENSHOTS", "enablescriptscreenshot", "OnOff" Option "$MISCMNU_INTERSCROLL", "nointerscrollabort", "OffOn" From 05cae50612c26a8cff85db451db4b6a930569624 Mon Sep 17 00:00:00 2001 From: "alexey.lysiuk" Date: Sun, 28 Jul 2019 11:01:16 +0300 Subject: [PATCH 18/32] - updated bzip2 to version 1.0.8 https://www.sourceware.org/bzip2/ https://sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz --- libraries/bzip2/CHANGES | 20 ++++++++++++++++++-- libraries/bzip2/LICENSE | 4 ++-- libraries/bzip2/README | 9 +++++---- libraries/bzip2/blocksort.c | 4 ++-- libraries/bzip2/bzlib.c | 8 ++++---- libraries/bzip2/bzlib.h | 4 ++-- libraries/bzip2/bzlib_private.h | 6 +++--- libraries/bzip2/compress.c | 6 +++--- libraries/bzip2/crctable.c | 4 ++-- libraries/bzip2/decompress.c | 14 ++++++++++---- libraries/bzip2/huffman.c | 4 ++-- libraries/bzip2/randtable.c | 4 ++-- 12 files changed, 55 insertions(+), 32 deletions(-) diff --git a/libraries/bzip2/CHANGES b/libraries/bzip2/CHANGES index d9b4c05c5..30afead25 100644 --- a/libraries/bzip2/CHANGES +++ b/libraries/bzip2/CHANGES @@ -2,8 +2,8 @@ This file is part of bzip2/libbzip2, a program and library for lossless, block-sorting data compression. - bzip2/libbzip2 version 1.0.7 of 27 June 2019 - Copyright (C) 1996-2010 Julian Seward + bzip2/libbzip2 version 1.0.8 of 13 July 2019 + Copyright (C) 1996-2019 Julian Seward Please read the WARNING, DISCLAIMER and PATENTS sections in the README file. @@ -338,3 +338,19 @@ Security fix only. Fixes CERT-FI 20469 as it applies to bzip2. * bzip2recover: Fix use after free issue with outFile (CVE-2016-3189) * Make sure nSelectors is not out of range (CVE-2019-12900) + +1.0.8 (13 Jul 19) +~~~~~~~~~~~~~~~~~ + +* Accept as many selectors as the file format allows. + This relaxes the fix for CVE-2019-12900 from 1.0.7 + so that bzip2 allows decompression of bz2 files that + use (too) many selectors again. + +* Fix handling of large (> 4GB) files on Windows. + +* Cleanup of bzdiff and bzgrep scripts so they don't use + any bash extensions and handle multiple archives correctly. + +* There is now a bz2-files testsuite at + https://sourceware.org/git/bzip2-tests.git diff --git a/libraries/bzip2/LICENSE b/libraries/bzip2/LICENSE index 95f9598f8..81a37eab7 100644 --- a/libraries/bzip2/LICENSE +++ b/libraries/bzip2/LICENSE @@ -2,7 +2,7 @@ -------------------------------------------------------------------------- This program, "bzip2", the associated library "libbzip2", and all -documentation, are copyright (C) 1996-2010 Julian R Seward. All +documentation, are copyright (C) 1996-2019 Julian R Seward. All rights reserved. Redistribution and use in source and binary forms, with or without @@ -37,6 +37,6 @@ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Julian Seward, jseward@acm.org -bzip2/libbzip2 version 1.0.7 of 27 June 2019 +bzip2/libbzip2 version 1.0.8 of 13 July 2019 -------------------------------------------------------------------------- diff --git a/libraries/bzip2/README b/libraries/bzip2/README index 64873f982..b9c6099fd 100644 --- a/libraries/bzip2/README +++ b/libraries/bzip2/README @@ -6,8 +6,8 @@ This version is fully compatible with the previous public releases. This file is part of bzip2/libbzip2, a program and library for lossless, block-sorting data compression. -bzip2/libbzip2 version 1.0.7 of 27 June 2019 -Copyright (C) 1996-2010 Julian Seward +bzip2/libbzip2 version 1.0.8 of 13 July 2019 +Copyright (C) 1996-2019 Julian Seward Please read the WARNING, DISCLAIMER and PATENTS sections in this file. @@ -165,8 +165,8 @@ WHAT'S NEW IN 1.0.x ? See the CHANGES file. -I hope you find bzip2 useful. Feel free to contact me at - jseward@acm.org +I hope you find bzip2 useful. Feel free to contact the developers at + bzip2-devel@sourceware.org if you have any suggestions or queries. Many people mailed me with comments, suggestions and patches after the releases of bzip-0.15, bzip-0.21, and bzip2 versions 0.1pl2, 0.9.0, 0.9.5, 1.0.0, 1.0.1, @@ -193,3 +193,4 @@ Cambridge, UK. 10 December 2007 (bzip2, version 1.0.5) 6 Sept 2010 (bzip2, version 1.0.6) 27 June 2019 (bzip2, version 1.0.7) +13 July 2019 (bzip2, version 1.0.8) diff --git a/libraries/bzip2/blocksort.c b/libraries/bzip2/blocksort.c index 26579017a..92d81fe28 100644 --- a/libraries/bzip2/blocksort.c +++ b/libraries/bzip2/blocksort.c @@ -8,8 +8,8 @@ This file is part of bzip2/libbzip2, a program and library for lossless, block-sorting data compression. - bzip2/libbzip2 version 1.0.7 of 27 June 2019 - Copyright (C) 1996-2010 Julian Seward + bzip2/libbzip2 version 1.0.8 of 13 July 2019 + Copyright (C) 1996-2019 Julian Seward Please read the WARNING, DISCLAIMER and PATENTS sections in the README file. diff --git a/libraries/bzip2/bzlib.c b/libraries/bzip2/bzlib.c index f9da295c7..21786551b 100644 --- a/libraries/bzip2/bzlib.c +++ b/libraries/bzip2/bzlib.c @@ -8,8 +8,8 @@ This file is part of bzip2/libbzip2, a program and library for lossless, block-sorting data compression. - bzip2/libbzip2 version 1.0.7 of 27 June 2019 - Copyright (C) 1996-2010 Julian Seward + bzip2/libbzip2 version 1.0.8 of 13 July 2019 + Copyright (C) 1996-2019 Julian Seward Please read the WARNING, DISCLAIMER and PATENTS sections in the README file. @@ -43,12 +43,12 @@ void BZ2_bz__AssertH__fail ( int errcode ) fprintf(stderr, "\n\nbzip2/libbzip2: internal error number %d.\n" "This is a bug in bzip2/libbzip2, %s.\n" - "Please report it to me at: jseward@acm.org. If this happened\n" + "Please report it to: bzip2-devel@sourceware.org. If this happened\n" "when you were using some program which uses libbzip2 as a\n" "component, you should also report this bug to the author(s)\n" "of that program. Please make an effort to report this bug;\n" "timely and accurate bug reports eventually lead to higher\n" - "quality software. Thanks. Julian Seward, 10 December 2007.\n\n", + "quality software. Thanks.\n\n", errcode, BZ2_bzlibVersion() ); diff --git a/libraries/bzip2/bzlib.h b/libraries/bzip2/bzlib.h index 8cf07918f..8966a6c58 100644 --- a/libraries/bzip2/bzlib.h +++ b/libraries/bzip2/bzlib.h @@ -8,8 +8,8 @@ This file is part of bzip2/libbzip2, a program and library for lossless, block-sorting data compression. - bzip2/libbzip2 version 1.0.7 of 27 June 2019 - Copyright (C) 1996-2010 Julian Seward + bzip2/libbzip2 version 1.0.8 of 13 July 2019 + Copyright (C) 1996-2019 Julian Seward Please read the WARNING, DISCLAIMER and PATENTS sections in the README file. diff --git a/libraries/bzip2/bzlib_private.h b/libraries/bzip2/bzlib_private.h index 797555222..3755a6f70 100644 --- a/libraries/bzip2/bzlib_private.h +++ b/libraries/bzip2/bzlib_private.h @@ -8,8 +8,8 @@ This file is part of bzip2/libbzip2, a program and library for lossless, block-sorting data compression. - bzip2/libbzip2 version 1.0.7 of 27 June 2019 - Copyright (C) 1996-2010 Julian Seward + bzip2/libbzip2 version 1.0.8 of 13 July 2019 + Copyright (C) 1996-2019 Julian Seward Please read the WARNING, DISCLAIMER and PATENTS sections in the README file. @@ -36,7 +36,7 @@ /*-- General stuff. --*/ -#define BZ_VERSION "1.0.7, 27-Jun-2019" +#define BZ_VERSION "1.0.8, 13-Jul-2019" typedef char Char; typedef unsigned char Bool; diff --git a/libraries/bzip2/compress.c b/libraries/bzip2/compress.c index 237620d85..5dfa00231 100644 --- a/libraries/bzip2/compress.c +++ b/libraries/bzip2/compress.c @@ -8,8 +8,8 @@ This file is part of bzip2/libbzip2, a program and library for lossless, block-sorting data compression. - bzip2/libbzip2 version 1.0.7 of 27 June 2019 - Copyright (C) 1996-2010 Julian Seward + bzip2/libbzip2 version 1.0.8 of 13 July 2019 + Copyright (C) 1996-2019 Julian Seward Please read the WARNING, DISCLAIMER and PATENTS sections in the README file. @@ -454,7 +454,7 @@ void sendMTFValues ( EState* s ) AssertH( nGroups < 8, 3002 ); AssertH( nSelectors < 32768 && - nSelectors <= (2 + (900000 / BZ_G_SIZE)), + nSelectors <= BZ_MAX_SELECTORS, 3003 ); diff --git a/libraries/bzip2/crctable.c b/libraries/bzip2/crctable.c index 746efac1c..2b33c2535 100644 --- a/libraries/bzip2/crctable.c +++ b/libraries/bzip2/crctable.c @@ -8,8 +8,8 @@ This file is part of bzip2/libbzip2, a program and library for lossless, block-sorting data compression. - bzip2/libbzip2 version 1.0.7 of 27 June 2019 - Copyright (C) 1996-2010 Julian Seward + bzip2/libbzip2 version 1.0.8 of 13 July 2019 + Copyright (C) 1996-2019 Julian Seward Please read the WARNING, DISCLAIMER and PATENTS sections in the README file. diff --git a/libraries/bzip2/decompress.c b/libraries/bzip2/decompress.c index 20ce4936c..a1a0bac89 100644 --- a/libraries/bzip2/decompress.c +++ b/libraries/bzip2/decompress.c @@ -8,8 +8,8 @@ This file is part of bzip2/libbzip2, a program and library for lossless, block-sorting data compression. - bzip2/libbzip2 version 1.0.7 of 27 June 2019 - Copyright (C) 1996-2010 Julian Seward + bzip2/libbzip2 version 1.0.8 of 13 July 2019 + Copyright (C) 1996-2019 Julian Seward Please read the WARNING, DISCLAIMER and PATENTS sections in the README file. @@ -287,7 +287,7 @@ Int32 BZ2_decompress ( DState* s ) GET_BITS(BZ_X_SELECTOR_1, nGroups, 3); if (nGroups < 2 || nGroups > BZ_N_GROUPS) RETURN(BZ_DATA_ERROR); GET_BITS(BZ_X_SELECTOR_2, nSelectors, 15); - if (nSelectors < 1 || nSelectors > BZ_MAX_SELECTORS) RETURN(BZ_DATA_ERROR); + if (nSelectors < 1) RETURN(BZ_DATA_ERROR); for (i = 0; i < nSelectors; i++) { j = 0; while (True) { @@ -296,8 +296,14 @@ Int32 BZ2_decompress ( DState* s ) j++; if (j >= nGroups) RETURN(BZ_DATA_ERROR); } - s->selectorMtf[i] = j; + /* Having more than BZ_MAX_SELECTORS doesn't make much sense + since they will never be used, but some implementations might + "round up" the number of selectors, so just ignore those. */ + if (i < BZ_MAX_SELECTORS) + s->selectorMtf[i] = j; } + if (nSelectors > BZ_MAX_SELECTORS) + nSelectors = BZ_MAX_SELECTORS; /*--- Undo the MTF values for the selectors. ---*/ { diff --git a/libraries/bzip2/huffman.c b/libraries/bzip2/huffman.c index 0fd6fd762..43a1899e4 100644 --- a/libraries/bzip2/huffman.c +++ b/libraries/bzip2/huffman.c @@ -8,8 +8,8 @@ This file is part of bzip2/libbzip2, a program and library for lossless, block-sorting data compression. - bzip2/libbzip2 version 1.0.7 of 27 June 2019 - Copyright (C) 1996-2010 Julian Seward + bzip2/libbzip2 version 1.0.8 of 13 July 2019 + Copyright (C) 1996-2019 Julian Seward Please read the WARNING, DISCLAIMER and PATENTS sections in the README file. diff --git a/libraries/bzip2/randtable.c b/libraries/bzip2/randtable.c index 726d62f0c..bdc6d4a4c 100644 --- a/libraries/bzip2/randtable.c +++ b/libraries/bzip2/randtable.c @@ -8,8 +8,8 @@ This file is part of bzip2/libbzip2, a program and library for lossless, block-sorting data compression. - bzip2/libbzip2 version 1.0.7 of 27 June 2019 - Copyright (C) 1996-2010 Julian Seward + bzip2/libbzip2 version 1.0.8 of 13 July 2019 + Copyright (C) 1996-2019 Julian Seward Please read the WARNING, DISCLAIMER and PATENTS sections in the README file. From 4adac3fe59fac974c6cadd8d81865e87c0078ef6 Mon Sep 17 00:00:00 2001 From: Magnus Norddahl Date: Sun, 28 Jul 2019 16:28:43 +0200 Subject: [PATCH 19/32] - move streaming uniform buffers out of VkRenderState --- src/CMakeLists.txt | 1 + .../vulkan/renderer/vk_renderpass.cpp | 4 +- .../vulkan/renderer/vk_renderstate.cpp | 88 +++--------- .../vulkan/renderer/vk_renderstate.h | 9 +- .../vulkan/renderer/vk_streambuffer.cpp | 135 ++++++++++++++++++ .../vulkan/renderer/vk_streambuffer.h | 58 ++++++++ .../vulkan/system/vk_framebuffer.cpp | 11 +- src/rendering/vulkan/system/vk_framebuffer.h | 9 +- 8 files changed, 227 insertions(+), 88 deletions(-) create mode 100644 src/rendering/vulkan/renderer/vk_streambuffer.cpp create mode 100644 src/rendering/vulkan/renderer/vk_streambuffer.h diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 997c7958d..3b49c5848 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -920,6 +920,7 @@ set (VULKAN_SOURCES rendering/vulkan/system/vk_buffers.cpp rendering/vulkan/renderer/vk_renderstate.cpp rendering/vulkan/renderer/vk_renderpass.cpp + rendering/vulkan/renderer/vk_streambuffer.cpp rendering/vulkan/renderer/vk_postprocess.cpp rendering/vulkan/renderer/vk_renderbuffers.cpp rendering/vulkan/shaders/vk_shader.cpp diff --git a/src/rendering/vulkan/renderer/vk_renderpass.cpp b/src/rendering/vulkan/renderer/vk_renderpass.cpp index e76b00711..f773f8527 100644 --- a/src/rendering/vulkan/renderer/vk_renderpass.cpp +++ b/src/rendering/vulkan/renderer/vk_renderpass.cpp @@ -173,8 +173,8 @@ void VkRenderPassManager::UpdateDynamicSet() WriteDescriptors update; update.addBuffer(DynamicSet.get(), 0, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, fb->ViewpointUBO->mBuffer.get(), 0, sizeof(HWViewpointUniforms)); update.addBuffer(DynamicSet.get(), 1, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, fb->LightBufferSSO->mBuffer.get()); - update.addBuffer(DynamicSet.get(), 2, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, fb->MatricesUBO->mBuffer.get(), 0, sizeof(MatricesUBO)); - update.addBuffer(DynamicSet.get(), 3, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, fb->StreamUBO->mBuffer.get(), 0, sizeof(StreamUBO)); + update.addBuffer(DynamicSet.get(), 2, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, fb->MatrixBuffer->UniformBuffer->mBuffer.get(), 0, sizeof(MatricesUBO)); + update.addBuffer(DynamicSet.get(), 3, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, fb->StreamBuffer->UniformBuffer->mBuffer.get(), 0, sizeof(StreamUBO)); update.addCombinedImageSampler(DynamicSet.get(), 4, fb->GetBuffers()->Shadowmap.View.get(), fb->GetBuffers()->ShadowmapSampler.get(), VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL); update.updateSets(fb->device); } diff --git a/src/rendering/vulkan/renderer/vk_renderstate.cpp b/src/rendering/vulkan/renderer/vk_renderstate.cpp index 07425ad08..2f55fee24 100644 --- a/src/rendering/vulkan/renderer/vk_renderstate.cpp +++ b/src/rendering/vulkan/renderer/vk_renderstate.cpp @@ -21,7 +21,6 @@ CVAR(Int, vk_submit_size, 1000, 0); VkRenderState::VkRenderState() { - mIdentityMatrix.loadIdentity(); Reset(); } @@ -322,17 +321,11 @@ void VkRenderState::ApplyStreamData() else mStreamData.timer = 0.0f; - mDataIndex++; - if (mDataIndex == MAX_STREAM_DATA) + if (!mStreamBufferWriter.Write(mStreamData)) { - mDataIndex = 0; - mStreamDataOffset += sizeof(StreamUBO); - - if (mStreamDataOffset + sizeof(StreamUBO) >= fb->StreamUBO->Size()) - WaitForStreamBuffers(); + WaitForStreamBuffers(); + mStreamBufferWriter.Write(mStreamData); } - uint8_t *ptr = (uint8_t*)fb->StreamUBO->Memory(); - memcpy(ptr + mStreamDataOffset + sizeof(StreamData) * mDataIndex, &mStreamData, sizeof(StreamData)); } void VkRenderState::ApplyPushConstants() @@ -371,63 +364,20 @@ void VkRenderState::ApplyPushConstants() mPushConstants.uSpecularMaterial = { mMaterial.mMaterial->tex->Glossiness, mMaterial.mMaterial->tex->SpecularLevel }; mPushConstants.uLightIndex = mLightIndex; - mPushConstants.uDataIndex = mDataIndex; + mPushConstants.uDataIndex = mStreamBufferWriter.DataIndex(); auto fb = GetVulkanFrameBuffer(); auto passManager = fb->GetRenderPassManager(); mCommandBuffer->pushConstants(passManager->GetPipelineLayout(mPipelineKey.NumTextureLayers), VK_SHADER_STAGE_VERTEX_BIT | VK_SHADER_STAGE_FRAGMENT_BIT, 0, (uint32_t)sizeof(PushConstants), &mPushConstants); } -template -static void BufferedSet(bool &modified, T &dst, const T &src) -{ - if (dst == src) - return; - dst = src; - modified = true; -} - -static void BufferedSet(bool &modified, VSMatrix &dst, const VSMatrix &src) -{ - if (memcmp(dst.get(), src.get(), sizeof(FLOATTYPE) * 16) == 0) - return; - dst = src; - modified = true; -} - void VkRenderState::ApplyMatrices() { - bool modified = (mMatricesOffset == 0); // always modified first call - if (mTextureMatrixEnabled) + auto fb = GetVulkanFrameBuffer(); + if (!fb->MatrixBuffer->Write(mModelMatrix, mModelMatrixEnabled, mTextureMatrix, mTextureMatrixEnabled)) { - BufferedSet(modified, mMatrices.TextureMatrix, mTextureMatrix); - } - else - { - BufferedSet(modified, mMatrices.TextureMatrix, mIdentityMatrix); - } - - if (mModelMatrixEnabled) - { - BufferedSet(modified, mMatrices.ModelMatrix, mModelMatrix); - if (modified) - mMatrices.NormalModelMatrix.computeNormalMatrix(mModelMatrix); - } - else - { - BufferedSet(modified, mMatrices.ModelMatrix, mIdentityMatrix); - BufferedSet(modified, mMatrices.NormalModelMatrix, mIdentityMatrix); - } - - if (modified) - { - auto fb = GetVulkanFrameBuffer(); - - if (mMatricesOffset + (fb->UniformBufferAlignedSize() << 1) >= fb->MatricesUBO->Size()) - WaitForStreamBuffers(); - - mMatricesOffset += fb->UniformBufferAlignedSize(); - memcpy(static_cast(fb->MatricesUBO->Memory()) + mMatricesOffset, &mMatrices, sizeof(MatricesUBO)); + WaitForStreamBuffers(); + fb->MatrixBuffer->Write(mModelMatrix, mModelMatrixEnabled, mTextureMatrix, mTextureMatrixEnabled); } } @@ -470,17 +420,19 @@ void VkRenderState::ApplyMaterial() void VkRenderState::ApplyDynamicSet() { - if (mViewpointOffset != mLastViewpointOffset || mMatricesOffset != mLastMatricesOffset || mStreamDataOffset != mLastStreamDataOffset) + auto fb = GetVulkanFrameBuffer(); + uint32_t matrixOffset = fb->MatrixBuffer->Offset(); + uint32_t streamDataOffset = mStreamBufferWriter.StreamDataOffset(); + if (mViewpointOffset != mLastViewpointOffset || matrixOffset != mLastMatricesOffset || streamDataOffset != mLastStreamDataOffset) { - auto fb = GetVulkanFrameBuffer(); auto passManager = fb->GetRenderPassManager(); - uint32_t offsets[3] = { mViewpointOffset, mMatricesOffset, mStreamDataOffset }; + uint32_t offsets[3] = { mViewpointOffset, matrixOffset, streamDataOffset }; mCommandBuffer->bindDescriptorSet(VK_PIPELINE_BIND_POINT_GRAPHICS, passManager->GetPipelineLayout(mPipelineKey.NumTextureLayers), 0, passManager->DynamicSet.get(), 3, offsets); mLastViewpointOffset = mViewpointOffset; - mLastMatricesOffset = mMatricesOffset; - mLastStreamDataOffset = mStreamDataOffset; + mLastMatricesOffset = matrixOffset; + mLastStreamDataOffset = streamDataOffset; } } @@ -489,9 +441,8 @@ void VkRenderState::WaitForStreamBuffers() EndRenderPass(); GetVulkanFrameBuffer()->WaitForCommands(false); mApplyCount = 0; - mStreamDataOffset = 0; - mDataIndex = 0; - mMatricesOffset = 0; + mStreamBufferWriter.Reset(); + GetVulkanFrameBuffer()->MatrixBuffer->Reset(); } void VkRenderState::Bind(int bindingpoint, uint32_t offset) @@ -527,9 +478,8 @@ void VkRenderState::EndRenderPass() void VkRenderState::EndFrame() { - mMatricesOffset = 0; - mStreamDataOffset = 0; - mDataIndex = -1; + GetVulkanFrameBuffer()->MatrixBuffer->Reset(); + mStreamBufferWriter.Reset(); } void VkRenderState::EnableDrawBuffers(int count) diff --git a/src/rendering/vulkan/renderer/vk_renderstate.h b/src/rendering/vulkan/renderer/vk_renderstate.h index 6848d15a5..58582e0b0 100644 --- a/src/rendering/vulkan/renderer/vk_renderstate.h +++ b/src/rendering/vulkan/renderer/vk_renderstate.h @@ -4,6 +4,7 @@ #include "vulkan/system/vk_buffers.h" #include "vulkan/shaders/vk_shader.h" #include "vulkan/renderer/vk_renderpass.h" +#include "vulkan/renderer/vk_streambuffer.h" #include "name.h" @@ -63,8 +64,8 @@ protected: void ApplyVertexBuffers(); void ApplyMaterial(); - void WaitForStreamBuffers(); void BeginRenderPass(VulkanCommandBuffer *cmdbuffer); + void WaitForStreamBuffers(); bool mDepthClamp = true; VulkanCommandBuffer *mCommandBuffer = nullptr; @@ -90,18 +91,14 @@ protected: int mColorMask = 15; int mCullMode = 0; - MatricesUBO mMatrices = {}; PushConstants mPushConstants = {}; uint32_t mLastViewpointOffset = 0xffffffff; uint32_t mLastMatricesOffset = 0xffffffff; uint32_t mLastStreamDataOffset = 0xffffffff; uint32_t mViewpointOffset = 0; - uint32_t mMatricesOffset = 0; - uint32_t mDataIndex = -1; - uint32_t mStreamDataOffset = 0; - VSMatrix mIdentityMatrix; + VkStreamBufferWriter mStreamBufferWriter; int mLastVertexOffsets[2] = { 0, 0 }; IVertexBuffer *mLastVertexBuffer = nullptr; diff --git a/src/rendering/vulkan/renderer/vk_streambuffer.cpp b/src/rendering/vulkan/renderer/vk_streambuffer.cpp new file mode 100644 index 000000000..b8377ba40 --- /dev/null +++ b/src/rendering/vulkan/renderer/vk_streambuffer.cpp @@ -0,0 +1,135 @@ + +#include "vk_renderstate.h" +#include "vulkan/system/vk_framebuffer.h" +#include "vulkan/system/vk_builders.h" +#include "vulkan/renderer/vk_streambuffer.h" + +template +int UniformBufferAlignedSize(int count) { return ((sizeof(T) + screen->uniformblockalignment - 1) / screen->uniformblockalignment * screen->uniformblockalignment) * count; } + +VkStreamBuffer::VkStreamBuffer() +{ + auto fb = GetVulkanFrameBuffer(); + UniformBuffer = (VKDataBuffer*)fb->CreateDataBuffer(-1, false, false); + UniformBuffer->SetData(UniformBufferAlignedSize(200), nullptr, false); +} + +VkStreamBuffer::~VkStreamBuffer() +{ + delete UniformBuffer; +} + +uint32_t VkStreamBuffer::NextStreamDataBlock() +{ + mStreamDataOffset += sizeof(StreamUBO); + if (mStreamDataOffset + sizeof(StreamUBO) >= UniformBuffer->Size()) + { + mStreamDataOffset = 0; + return 0xffffffff; + } + return mStreamDataOffset; +} + +///////////////////////////////////////////////////////////////////////////// + +VkStreamBufferWriter::VkStreamBufferWriter() +{ + mBuffer = GetVulkanFrameBuffer()->StreamBuffer; +} + +bool VkStreamBufferWriter::Write(const StreamData& data) +{ + mDataIndex++; + if (mDataIndex == MAX_STREAM_DATA) + { + mDataIndex = 0; + mStreamDataOffset = mBuffer->NextStreamDataBlock(); + if (mStreamDataOffset == 0xffffffff) + return false; + } + uint8_t* ptr = (uint8_t*)mBuffer->UniformBuffer->Memory(); + memcpy(ptr + mStreamDataOffset + sizeof(StreamData) * mDataIndex, &data, sizeof(StreamData)); + return true; +} + +void VkStreamBufferWriter::Reset() +{ + mDataIndex = MAX_STREAM_DATA - 1; + mStreamDataOffset = 0; + mBuffer->Reset(); +} + +///////////////////////////////////////////////////////////////////////////// + +VkMatrixBuffer::VkMatrixBuffer() +{ + mIdentityMatrix.loadIdentity(); + + auto fb = GetVulkanFrameBuffer(); + UniformBuffer = (VKDataBuffer*)fb->CreateDataBuffer(-1, false, false); + UniformBuffer->SetData(UniformBufferAlignedSize(50000), nullptr, false); +} + +VkMatrixBuffer::~VkMatrixBuffer() +{ + delete UniformBuffer; +} + +template +static void BufferedSet(bool& modified, T& dst, const T& src) +{ + if (dst == src) + return; + dst = src; + modified = true; +} + +static void BufferedSet(bool& modified, VSMatrix& dst, const VSMatrix& src) +{ + if (memcmp(dst.get(), src.get(), sizeof(FLOATTYPE) * 16) == 0) + return; + dst = src; + modified = true; +} + +bool VkMatrixBuffer::Write(const VSMatrix& modelMatrix, bool modelMatrixEnabled, const VSMatrix& textureMatrix, bool textureMatrixEnabled) +{ + bool modified = (mOffset == 0); // always modified first call + + if (modelMatrixEnabled) + { + BufferedSet(modified, mMatrices.ModelMatrix, modelMatrix); + if (modified) + mMatrices.NormalModelMatrix.computeNormalMatrix(modelMatrix); + } + else + { + BufferedSet(modified, mMatrices.ModelMatrix, mIdentityMatrix); + BufferedSet(modified, mMatrices.NormalModelMatrix, mIdentityMatrix); + } + + if (textureMatrixEnabled) + { + BufferedSet(modified, mMatrices.TextureMatrix, textureMatrixEnabled); + } + else + { + BufferedSet(modified, mMatrices.TextureMatrix, mIdentityMatrix); + } + + if (modified) + { + if (mOffset + (size_t)UniformBufferAlignedSize(2) >= UniformBuffer->Size()) + return false; + + mOffset += UniformBufferAlignedSize(1); + memcpy(static_cast(UniformBuffer->Memory()) + mOffset, &mMatrices, sizeof(MatricesUBO)); + } + + return true; +} + +void VkMatrixBuffer::Reset() +{ + mOffset = 0; +} diff --git a/src/rendering/vulkan/renderer/vk_streambuffer.h b/src/rendering/vulkan/renderer/vk_streambuffer.h new file mode 100644 index 000000000..da1a5bf83 --- /dev/null +++ b/src/rendering/vulkan/renderer/vk_streambuffer.h @@ -0,0 +1,58 @@ + +#pragma once + +#include "vulkan/system/vk_buffers.h" +#include "vulkan/shaders/vk_shader.h" + +class VkStreamBuffer; + +class VkStreamBufferWriter +{ +public: + VkStreamBufferWriter(); + + bool Write(const StreamData& data); + void Reset(); + + uint32_t DataIndex() const { return mDataIndex; } + uint32_t StreamDataOffset() const { return mStreamDataOffset; } + +private: + VkStreamBuffer* mBuffer; + uint32_t mDataIndex = MAX_STREAM_DATA - 1; + uint32_t mStreamDataOffset = 0; +}; + +class VkStreamBuffer +{ +public: + VkStreamBuffer(); + ~VkStreamBuffer(); + + uint32_t NextStreamDataBlock(); + void Reset() { mStreamDataOffset = 0; } + + VKDataBuffer* UniformBuffer = nullptr; + +private: + uint32_t mStreamDataOffset = 0; +}; + +class VkMatrixBuffer +{ +public: + VkMatrixBuffer(); + ~VkMatrixBuffer(); + + bool Write(const VSMatrix &modelMatrix, bool modelMatrixEnabled, const VSMatrix& textureMatrix, bool textureMatrixEnabled); + void Reset(); + + uint32_t Offset() const { return mOffset; } + + VKDataBuffer* UniformBuffer = nullptr; + +private: + MatricesUBO mMatrices = {}; + VSMatrix mIdentityMatrix; + uint32_t mOffset = 0; +}; diff --git a/src/rendering/vulkan/system/vk_framebuffer.cpp b/src/rendering/vulkan/system/vk_framebuffer.cpp index 17610145c..5b36207e1 100644 --- a/src/rendering/vulkan/system/vk_framebuffer.cpp +++ b/src/rendering/vulkan/system/vk_framebuffer.cpp @@ -50,6 +50,7 @@ #include "vk_buffers.h" #include "vulkan/renderer/vk_renderstate.h" #include "vulkan/renderer/vk_renderpass.h" +#include "vulkan/renderer/vk_streambuffer.h" #include "vulkan/renderer/vk_postprocess.h" #include "vulkan/renderer/vk_renderbuffers.h" #include "vulkan/shaders/vk_shader.h" @@ -106,8 +107,8 @@ VulkanFrameBuffer::~VulkanFrameBuffer() VKBuffer::ResetAll(); PPResource::ResetAll(); - delete MatricesUBO; - delete StreamUBO; + delete MatrixBuffer; + delete StreamBuffer; delete mVertexData; delete mSkyData; delete mViewpoints; @@ -158,10 +159,8 @@ void VulkanFrameBuffer::InitializeState() CreateFanToTrisIndexBuffer(); // To do: move this to HW renderer interface maybe? - MatricesUBO = (VKDataBuffer*)CreateDataBuffer(-1, false, false); - StreamUBO = (VKDataBuffer*)CreateDataBuffer(-1, false, false); - MatricesUBO->SetData(UniformBufferAlignedSize<::MatricesUBO>() * 50000, nullptr, false); - StreamUBO->SetData(UniformBufferAlignedSize<::StreamUBO>() * 200, nullptr, false); + MatrixBuffer = new VkMatrixBuffer(); + StreamBuffer = new VkStreamBuffer(); mShaderManager.reset(new VkShaderManager(device)); mSamplerManager.reset(new VkSamplerManager(device)); diff --git a/src/rendering/vulkan/system/vk_framebuffer.h b/src/rendering/vulkan/system/vk_framebuffer.h index 9010b8d6b..b157bd100 100644 --- a/src/rendering/vulkan/system/vk_framebuffer.h +++ b/src/rendering/vulkan/system/vk_framebuffer.h @@ -9,6 +9,8 @@ class VkSamplerManager; class VkShaderManager; class VkRenderPassManager; class VkRenderState; +class VkStreamBuffer; +class VkMatrixBuffer; class VKDataBuffer; class VkHardwareTexture; class VkRenderBuffers; @@ -38,13 +40,10 @@ public: unsigned int GetLightBufferBlockSize() const; - template - int UniformBufferAlignedSize() const { return (sizeof(T) + uniformblockalignment - 1) / uniformblockalignment * uniformblockalignment; } - VKDataBuffer *ViewpointUBO = nullptr; VKDataBuffer *LightBufferSSO = nullptr; - VKDataBuffer *MatricesUBO = nullptr; - VKDataBuffer *StreamUBO = nullptr; + VkMatrixBuffer *MatrixBuffer = nullptr; + VkStreamBuffer *StreamBuffer = nullptr; VKDataBuffer *LightNodes = nullptr; VKDataBuffer *LightLines = nullptr; From 76675a4d610e0d132e5413a5cd5d14789006be6d Mon Sep 17 00:00:00 2001 From: Magnus Norddahl Date: Sun, 28 Jul 2019 17:04:56 +0200 Subject: [PATCH 20/32] - add VkMatrixBufferWriter so that both buffers are used same way in VkRenderState --- .../vulkan/renderer/vk_renderstate.cpp | 11 +++-- .../vulkan/renderer/vk_renderstate.h | 1 + .../vulkan/renderer/vk_streambuffer.cpp | 40 ++++++++----------- .../vulkan/renderer/vk_streambuffer.h | 40 +++++++++---------- .../vulkan/system/vk_framebuffer.cpp | 4 +- src/rendering/vulkan/system/vk_framebuffer.h | 3 +- 6 files changed, 45 insertions(+), 54 deletions(-) diff --git a/src/rendering/vulkan/renderer/vk_renderstate.cpp b/src/rendering/vulkan/renderer/vk_renderstate.cpp index 2f55fee24..1f5bc5203 100644 --- a/src/rendering/vulkan/renderer/vk_renderstate.cpp +++ b/src/rendering/vulkan/renderer/vk_renderstate.cpp @@ -373,11 +373,10 @@ void VkRenderState::ApplyPushConstants() void VkRenderState::ApplyMatrices() { - auto fb = GetVulkanFrameBuffer(); - if (!fb->MatrixBuffer->Write(mModelMatrix, mModelMatrixEnabled, mTextureMatrix, mTextureMatrixEnabled)) + if (!mMatrixBufferWriter.Write(mModelMatrix, mModelMatrixEnabled, mTextureMatrix, mTextureMatrixEnabled)) { WaitForStreamBuffers(); - fb->MatrixBuffer->Write(mModelMatrix, mModelMatrixEnabled, mTextureMatrix, mTextureMatrixEnabled); + mMatrixBufferWriter.Write(mModelMatrix, mModelMatrixEnabled, mTextureMatrix, mTextureMatrixEnabled); } } @@ -421,7 +420,7 @@ void VkRenderState::ApplyMaterial() void VkRenderState::ApplyDynamicSet() { auto fb = GetVulkanFrameBuffer(); - uint32_t matrixOffset = fb->MatrixBuffer->Offset(); + uint32_t matrixOffset = mMatrixBufferWriter.Offset(); uint32_t streamDataOffset = mStreamBufferWriter.StreamDataOffset(); if (mViewpointOffset != mLastViewpointOffset || matrixOffset != mLastMatricesOffset || streamDataOffset != mLastStreamDataOffset) { @@ -442,7 +441,7 @@ void VkRenderState::WaitForStreamBuffers() GetVulkanFrameBuffer()->WaitForCommands(false); mApplyCount = 0; mStreamBufferWriter.Reset(); - GetVulkanFrameBuffer()->MatrixBuffer->Reset(); + mMatrixBufferWriter.Reset(); } void VkRenderState::Bind(int bindingpoint, uint32_t offset) @@ -478,7 +477,7 @@ void VkRenderState::EndRenderPass() void VkRenderState::EndFrame() { - GetVulkanFrameBuffer()->MatrixBuffer->Reset(); + mMatrixBufferWriter.Reset(); mStreamBufferWriter.Reset(); } diff --git a/src/rendering/vulkan/renderer/vk_renderstate.h b/src/rendering/vulkan/renderer/vk_renderstate.h index 58582e0b0..73c777eb0 100644 --- a/src/rendering/vulkan/renderer/vk_renderstate.h +++ b/src/rendering/vulkan/renderer/vk_renderstate.h @@ -99,6 +99,7 @@ protected: uint32_t mViewpointOffset = 0; VkStreamBufferWriter mStreamBufferWriter; + VkMatrixBufferWriter mMatrixBufferWriter; int mLastVertexOffsets[2] = { 0, 0 }; IVertexBuffer *mLastVertexBuffer = nullptr; diff --git a/src/rendering/vulkan/renderer/vk_streambuffer.cpp b/src/rendering/vulkan/renderer/vk_streambuffer.cpp index b8377ba40..58eed4911 100644 --- a/src/rendering/vulkan/renderer/vk_streambuffer.cpp +++ b/src/rendering/vulkan/renderer/vk_streambuffer.cpp @@ -4,14 +4,12 @@ #include "vulkan/system/vk_builders.h" #include "vulkan/renderer/vk_streambuffer.h" -template -int UniformBufferAlignedSize(int count) { return ((sizeof(T) + screen->uniformblockalignment - 1) / screen->uniformblockalignment * screen->uniformblockalignment) * count; } - -VkStreamBuffer::VkStreamBuffer() +VkStreamBuffer::VkStreamBuffer(size_t structSize, size_t count) { - auto fb = GetVulkanFrameBuffer(); - UniformBuffer = (VKDataBuffer*)fb->CreateDataBuffer(-1, false, false); - UniformBuffer->SetData(UniformBufferAlignedSize(200), nullptr, false); + mBlockSize = static_cast((structSize + screen->uniformblockalignment - 1) / screen->uniformblockalignment * screen->uniformblockalignment); + + UniformBuffer = (VKDataBuffer*)GetVulkanFrameBuffer()->CreateDataBuffer(-1, false, false); + UniformBuffer->SetData(mBlockSize * count, nullptr, false); } VkStreamBuffer::~VkStreamBuffer() @@ -21,8 +19,8 @@ VkStreamBuffer::~VkStreamBuffer() uint32_t VkStreamBuffer::NextStreamDataBlock() { - mStreamDataOffset += sizeof(StreamUBO); - if (mStreamDataOffset + sizeof(StreamUBO) >= UniformBuffer->Size()) + mStreamDataOffset += mBlockSize; + if (mStreamDataOffset + (size_t)mBlockSize >= UniformBuffer->Size()) { mStreamDataOffset = 0; return 0xffffffff; @@ -61,18 +59,10 @@ void VkStreamBufferWriter::Reset() ///////////////////////////////////////////////////////////////////////////// -VkMatrixBuffer::VkMatrixBuffer() +VkMatrixBufferWriter::VkMatrixBufferWriter() { + mBuffer = GetVulkanFrameBuffer()->MatrixBuffer; mIdentityMatrix.loadIdentity(); - - auto fb = GetVulkanFrameBuffer(); - UniformBuffer = (VKDataBuffer*)fb->CreateDataBuffer(-1, false, false); - UniformBuffer->SetData(UniformBufferAlignedSize(50000), nullptr, false); -} - -VkMatrixBuffer::~VkMatrixBuffer() -{ - delete UniformBuffer; } template @@ -92,7 +82,7 @@ static void BufferedSet(bool& modified, VSMatrix& dst, const VSMatrix& src) modified = true; } -bool VkMatrixBuffer::Write(const VSMatrix& modelMatrix, bool modelMatrixEnabled, const VSMatrix& textureMatrix, bool textureMatrixEnabled) +bool VkMatrixBufferWriter::Write(const VSMatrix& modelMatrix, bool modelMatrixEnabled, const VSMatrix& textureMatrix, bool textureMatrixEnabled) { bool modified = (mOffset == 0); // always modified first call @@ -119,17 +109,19 @@ bool VkMatrixBuffer::Write(const VSMatrix& modelMatrix, bool modelMatrixEnabled, if (modified) { - if (mOffset + (size_t)UniformBufferAlignedSize(2) >= UniformBuffer->Size()) + mOffset = mBuffer->NextStreamDataBlock(); + if (mOffset == 0xffffffff) return false; - mOffset += UniformBufferAlignedSize(1); - memcpy(static_cast(UniformBuffer->Memory()) + mOffset, &mMatrices, sizeof(MatricesUBO)); + uint8_t* ptr = (uint8_t*)mBuffer->UniformBuffer->Memory(); + memcpy(ptr + mOffset, &mMatrices, sizeof(MatricesUBO)); } return true; } -void VkMatrixBuffer::Reset() +void VkMatrixBufferWriter::Reset() { mOffset = 0; + mBuffer->Reset(); } diff --git a/src/rendering/vulkan/renderer/vk_streambuffer.h b/src/rendering/vulkan/renderer/vk_streambuffer.h index da1a5bf83..21c15867a 100644 --- a/src/rendering/vulkan/renderer/vk_streambuffer.h +++ b/src/rendering/vulkan/renderer/vk_streambuffer.h @@ -5,6 +5,7 @@ #include "vulkan/shaders/vk_shader.h" class VkStreamBuffer; +class VkMatrixBuffer; class VkStreamBufferWriter { @@ -23,10 +24,27 @@ private: uint32_t mStreamDataOffset = 0; }; +class VkMatrixBufferWriter +{ +public: + VkMatrixBufferWriter(); + + bool Write(const VSMatrix& modelMatrix, bool modelMatrixEnabled, const VSMatrix& textureMatrix, bool textureMatrixEnabled); + void Reset(); + + uint32_t Offset() const { return mOffset; } + +private: + VkStreamBuffer* mBuffer; + MatricesUBO mMatrices = {}; + VSMatrix mIdentityMatrix; + uint32_t mOffset = 0; +}; + class VkStreamBuffer { public: - VkStreamBuffer(); + VkStreamBuffer(size_t structSize, size_t count); ~VkStreamBuffer(); uint32_t NextStreamDataBlock(); @@ -35,24 +53,6 @@ public: VKDataBuffer* UniformBuffer = nullptr; private: + uint32_t mBlockSize = 0; uint32_t mStreamDataOffset = 0; }; - -class VkMatrixBuffer -{ -public: - VkMatrixBuffer(); - ~VkMatrixBuffer(); - - bool Write(const VSMatrix &modelMatrix, bool modelMatrixEnabled, const VSMatrix& textureMatrix, bool textureMatrixEnabled); - void Reset(); - - uint32_t Offset() const { return mOffset; } - - VKDataBuffer* UniformBuffer = nullptr; - -private: - MatricesUBO mMatrices = {}; - VSMatrix mIdentityMatrix; - uint32_t mOffset = 0; -}; diff --git a/src/rendering/vulkan/system/vk_framebuffer.cpp b/src/rendering/vulkan/system/vk_framebuffer.cpp index 5b36207e1..b8f49edc8 100644 --- a/src/rendering/vulkan/system/vk_framebuffer.cpp +++ b/src/rendering/vulkan/system/vk_framebuffer.cpp @@ -159,8 +159,8 @@ void VulkanFrameBuffer::InitializeState() CreateFanToTrisIndexBuffer(); // To do: move this to HW renderer interface maybe? - MatrixBuffer = new VkMatrixBuffer(); - StreamBuffer = new VkStreamBuffer(); + MatrixBuffer = new VkStreamBuffer(sizeof(MatricesUBO), 50000); + StreamBuffer = new VkStreamBuffer(sizeof(StreamUBO), 200); mShaderManager.reset(new VkShaderManager(device)); mSamplerManager.reset(new VkSamplerManager(device)); diff --git a/src/rendering/vulkan/system/vk_framebuffer.h b/src/rendering/vulkan/system/vk_framebuffer.h index b157bd100..9843851bf 100644 --- a/src/rendering/vulkan/system/vk_framebuffer.h +++ b/src/rendering/vulkan/system/vk_framebuffer.h @@ -10,7 +10,6 @@ class VkShaderManager; class VkRenderPassManager; class VkRenderState; class VkStreamBuffer; -class VkMatrixBuffer; class VKDataBuffer; class VkHardwareTexture; class VkRenderBuffers; @@ -42,7 +41,7 @@ public: VKDataBuffer *ViewpointUBO = nullptr; VKDataBuffer *LightBufferSSO = nullptr; - VkMatrixBuffer *MatrixBuffer = nullptr; + VkStreamBuffer *MatrixBuffer = nullptr; VkStreamBuffer *StreamBuffer = nullptr; VKDataBuffer *LightNodes = nullptr; From ad8c5bb96eeb72399d8d9d723ff6f3f08d653877 Mon Sep 17 00:00:00 2001 From: Magnus Norddahl Date: Sun, 28 Jul 2019 17:20:49 +0200 Subject: [PATCH 21/32] - add VkRenderPassManager::GetVertexFormat so that all VkRenderState access is done through functions that can then be made thread safe --- src/rendering/vulkan/renderer/vk_renderpass.cpp | 7 ++++++- src/rendering/vulkan/renderer/vk_renderpass.h | 5 +++-- src/rendering/vulkan/renderer/vk_renderstate.cpp | 6 +++--- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/rendering/vulkan/renderer/vk_renderpass.cpp b/src/rendering/vulkan/renderer/vk_renderpass.cpp index f773f8527..bb62a7a40 100644 --- a/src/rendering/vulkan/renderer/vk_renderpass.cpp +++ b/src/rendering/vulkan/renderer/vk_renderpass.cpp @@ -93,6 +93,11 @@ int VkRenderPassManager::GetVertexFormat(int numBindingPoints, int numAttributes return (int)VertexFormats.size() - 1; } +VkVertexFormat *VkRenderPassManager::GetVertexFormat(int index) +{ + return &VertexFormats[index]; +} + void VkRenderPassManager::CreateDynamicSetLayout() { DescriptorSetLayoutBuilder builder; @@ -289,7 +294,7 @@ std::unique_ptr VkRenderPassSetup::CreatePipeline(const VkPipeli builder.addVertexShader(program->vert.get()); builder.addFragmentShader(program->frag.get()); - const VkVertexFormat &vfmt = fb->GetRenderPassManager()->VertexFormats[key.VertexFormat]; + const VkVertexFormat &vfmt = *fb->GetRenderPassManager()->GetVertexFormat(key.VertexFormat); for (int i = 0; i < vfmt.NumBindingPoints; i++) builder.addVertexBufferBinding(i, vfmt.Stride); diff --git a/src/rendering/vulkan/renderer/vk_renderpass.h b/src/rendering/vulkan/renderer/vk_renderpass.h index 877a752d1..85c89266d 100644 --- a/src/rendering/vulkan/renderer/vk_renderpass.h +++ b/src/rendering/vulkan/renderer/vk_renderpass.h @@ -88,6 +88,8 @@ public: VkRenderPassSetup *GetRenderPass(const VkRenderPassKey &key); int GetVertexFormat(int numBindingPoints, int numAttributes, size_t stride, const FVertexBufferAttribute *attrs); + VkVertexFormat *GetVertexFormat(int index); + std::unique_ptr AllocateTextureDescriptorSet(int numLayers); VulkanPipelineLayout* GetPipelineLayout(int numLayers); @@ -96,8 +98,6 @@ public: std::unique_ptr DynamicSet; - std::vector VertexFormats; - private: void CreateDynamicSetLayout(); void CreateDescriptorPool(); @@ -111,4 +111,5 @@ private: std::unique_ptr DynamicDescriptorPool; std::vector> TextureSetLayouts; std::vector> PipelineLayouts; + std::vector VertexFormats; }; diff --git a/src/rendering/vulkan/renderer/vk_renderstate.cpp b/src/rendering/vulkan/renderer/vk_renderstate.cpp index 1f5bc5203..1e7167baf 100644 --- a/src/rendering/vulkan/renderer/vk_renderstate.cpp +++ b/src/rendering/vulkan/renderer/vk_renderstate.cpp @@ -314,7 +314,7 @@ void VkRenderState::ApplyStreamData() auto fb = GetVulkanFrameBuffer(); auto passManager = fb->GetRenderPassManager(); - mStreamData.useVertexData = passManager->VertexFormats[static_cast(mVertexBuffer)->VertexFormat].UseVertexData; + mStreamData.useVertexData = passManager->GetVertexFormat(static_cast(mVertexBuffer)->VertexFormat)->UseVertexData; if (mMaterial.mMaterial && mMaterial.mMaterial->tex) mStreamData.timer = static_cast((double)(screen->FrameTime - firstFrame) * (double)mMaterial.mMaterial->tex->shaderspeed / 1000.); @@ -385,9 +385,9 @@ void VkRenderState::ApplyVertexBuffers() if ((mVertexBuffer != mLastVertexBuffer || mVertexOffsets[0] != mLastVertexOffsets[0] || mVertexOffsets[1] != mLastVertexOffsets[1]) && mVertexBuffer) { auto vkbuf = static_cast(mVertexBuffer); - const auto &format = GetVulkanFrameBuffer()->GetRenderPassManager()->VertexFormats[vkbuf->VertexFormat]; + const VkVertexFormat *format = GetVulkanFrameBuffer()->GetRenderPassManager()->GetVertexFormat(vkbuf->VertexFormat); VkBuffer vertexBuffers[2] = { vkbuf->mBuffer->buffer, vkbuf->mBuffer->buffer }; - VkDeviceSize offsets[] = { mVertexOffsets[0] * format.Stride, mVertexOffsets[1] * format.Stride }; + VkDeviceSize offsets[] = { mVertexOffsets[0] * format->Stride, mVertexOffsets[1] * format->Stride }; mCommandBuffer->bindVertexBuffers(0, 2, vertexBuffers, offsets); mLastVertexBuffer = mVertexBuffer; mLastVertexOffsets[0] = mVertexOffsets[0]; From afbd7f7a247b182e24056d751f5664ca9a7cb5a0 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Sun, 28 Jul 2019 19:05:39 +0200 Subject: [PATCH 22/32] - increased StreamBuffer size because I got it to crash with comatose.wad once due to an overflow here. --- src/rendering/vulkan/system/vk_framebuffer.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rendering/vulkan/system/vk_framebuffer.cpp b/src/rendering/vulkan/system/vk_framebuffer.cpp index b8f49edc8..9b0008b00 100644 --- a/src/rendering/vulkan/system/vk_framebuffer.cpp +++ b/src/rendering/vulkan/system/vk_framebuffer.cpp @@ -160,7 +160,7 @@ void VulkanFrameBuffer::InitializeState() // To do: move this to HW renderer interface maybe? MatrixBuffer = new VkStreamBuffer(sizeof(MatricesUBO), 50000); - StreamBuffer = new VkStreamBuffer(sizeof(StreamUBO), 200); + StreamBuffer = new VkStreamBuffer(sizeof(StreamUBO), 300); mShaderManager.reset(new VkShaderManager(device)); mSamplerManager.reset(new VkSamplerManager(device)); From 370f5ef234a0896ce119e994e20dc9ddd70e9b15 Mon Sep 17 00:00:00 2001 From: "alexey.lysiuk" Date: Tue, 30 Jul 2019 11:46:14 +0300 Subject: [PATCH 23/32] - fixed writing of texture matrices in Vulkan render backend https://forum.zdoom.org/viewtopic.php?t=65479 --- src/rendering/vulkan/renderer/vk_streambuffer.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rendering/vulkan/renderer/vk_streambuffer.cpp b/src/rendering/vulkan/renderer/vk_streambuffer.cpp index 58eed4911..39275fdb1 100644 --- a/src/rendering/vulkan/renderer/vk_streambuffer.cpp +++ b/src/rendering/vulkan/renderer/vk_streambuffer.cpp @@ -100,7 +100,7 @@ bool VkMatrixBufferWriter::Write(const VSMatrix& modelMatrix, bool modelMatrixEn if (textureMatrixEnabled) { - BufferedSet(modified, mMatrices.TextureMatrix, textureMatrixEnabled); + BufferedSet(modified, mMatrices.TextureMatrix, textureMatrix); } else { From c36dc137bada0c217a921ff96c7c2f0f859f3e31 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Tue, 30 Jul 2019 10:52:24 +0200 Subject: [PATCH 24/32] - made adjustments to the text placement on the summary screen. With extended fonts much of the old code did not work anymore, this needed more precise checks for the sources of the printed texts. --- src/gamedata/fonts/font.cpp | 47 +++++++++++ src/gamedata/fonts/v_font.h | 3 + src/scripting/vmthunks.cpp | 13 +++ wadsrc/static/zscript/base.zs | 1 + .../zscript/ui/statscreen/statscreen.zs | 83 +++++++++++++------ 5 files changed, 123 insertions(+), 24 deletions(-) diff --git a/src/gamedata/fonts/font.cpp b/src/gamedata/fonts/font.cpp index 480b9a4c4..b3de95197 100644 --- a/src/gamedata/fonts/font.cpp +++ b/src/gamedata/fonts/font.cpp @@ -1107,6 +1107,53 @@ int FFont::StringWidth(const uint8_t *string) const return MAX(maxw, w); } +//========================================================================== +// +// Get the largest ascender in the first line of this text. +// +//========================================================================== + +int FFont::GetMaxAscender(const uint8_t* string) const +{ + int retval = 0; + + while (*string) + { + auto chr = GetCharFromString(string); + if (chr == TEXTCOLOR_ESCAPE) + { + // We do not need to check for UTF-8 in here. + if (*string == '[') + { + while (*string != '\0' && *string != ']') + { + ++string; + } + } + if (*string != '\0') + { + ++string; + } + continue; + } + else if (chr == '\n') + { + break; + } + else + { + auto ctex = GetChar(chr, CR_UNTRANSLATED, nullptr); + if (ctex) + { + auto offs = int(ctex->GetScaledTopOffset(0)); + if (offs > retval) retval = offs; + } + } + } + + return retval; +} + //========================================================================== // // FFont :: LoadTranslations diff --git a/src/gamedata/fonts/v_font.h b/src/gamedata/fonts/v_font.h index 6eff7e009..2c9d1aeb6 100644 --- a/src/gamedata/fonts/v_font.h +++ b/src/gamedata/fonts/v_font.h @@ -103,6 +103,9 @@ public: int GetSpaceWidth () const { return SpaceWidth; } int GetHeight () const { return FontHeight; } int GetDefaultKerning () const { return GlobalKerning; } + int GetMaxAscender(const uint8_t* text) const; + int GetMaxAscender(const char* text) const { return GetMaxAscender((uint8_t*)text); } + int GetMaxAscender(const FString &text) const { return GetMaxAscender((uint8_t*)text.GetChars()); } virtual void LoadTranslations(); FName GetName() const { return FontName; } diff --git a/src/scripting/vmthunks.cpp b/src/scripting/vmthunks.cpp index d2ffc0c73..fbf412890 100644 --- a/src/scripting/vmthunks.cpp +++ b/src/scripting/vmthunks.cpp @@ -2032,6 +2032,19 @@ DEFINE_ACTION_FUNCTION_NATIVE(FFont, StringWidth, StringWidth) ACTION_RETURN_INT(StringWidth(self, str)); } +static int GetMaxAscender(FFont* font, const FString& str) +{ + const char* txt = str[0] == '$' ? GStrings(&str[1]) : str.GetChars(); + return font->GetMaxAscender(txt); +} + +DEFINE_ACTION_FUNCTION_NATIVE(FFont, GetMaxAscender, GetMaxAscender) +{ + PARAM_SELF_STRUCT_PROLOGUE(FFont); + PARAM_STRING(str); + ACTION_RETURN_INT(GetMaxAscender(self, str)); +} + static int CanPrint(FFont *font, const FString &str) { const char *txt = str[0] == '$' ? GStrings(&str[1]) : str.GetChars(); diff --git a/wadsrc/static/zscript/base.zs b/wadsrc/static/zscript/base.zs index 3d343e896..3b52b2730 100644 --- a/wadsrc/static/zscript/base.zs +++ b/wadsrc/static/zscript/base.zs @@ -320,6 +320,7 @@ struct Font native native int GetCharWidth(int code); native int StringWidth(String code); + native int GetMaxAscender(String code); native bool CanPrint(String code); native int GetHeight(); native int GetDisplacement(); diff --git a/wadsrc/static/zscript/ui/statscreen/statscreen.zs b/wadsrc/static/zscript/ui/statscreen/statscreen.zs index 699790308..10160efc2 100644 --- a/wadsrc/static/zscript/ui/statscreen/statscreen.zs +++ b/wadsrc/static/zscript/ui/statscreen/statscreen.zs @@ -149,7 +149,7 @@ class StatusScreen abstract play version("2.5") // //==================================================================== - int, int DrawName(int y, TextureID tex, String levelname) + int DrawName(int y, TextureID tex, String levelname) { // draw if (tex.isValid()) @@ -161,7 +161,7 @@ class StatusScreen abstract play version("2.5") // patches with vast amounts of empty space at the bottom. size.Y = TexMan.CheckRealHeight(tex); } - return y + int(Size.Y), (BigFont.GetHeight() - BigFont.GetDisplacement()) * CleanYfac / 4; + return y + int(Size.Y) * CleanYfac; } else if (levelname.Length() > 0) { @@ -176,9 +176,9 @@ class StatusScreen abstract play version("2.5") screen.DrawText(mapname.mFont, mapname.mColor, (screen.GetWidth() - lines.StringWidth(i) * CleanXfac) / 2, y + h, lines.StringAt(i), DTA_CleanNoMove, true); h += lumph; } - return y + h, (mapname.mFont.GetHeight() - mapname.mFont.GetDisplacement())/4; + return y + h; } - return 0, 0; + return 0; } //==================================================================== @@ -232,17 +232,35 @@ class StatusScreen abstract play version("2.5") virtual int drawLF () { - int y = TITLEY * CleanYfac; + bool ispatch = wbs.LName0.isValid(); + int oldy = TITLEY * CleanYfac; int h; + + if (!ispatch) + { + let asc = mapname.mFont.GetMaxAscender(lnametexts[1]); + if (asc > TITLEY - 2) + { + oldy = (asc+2) * CleanYfac; + } + } + + int y = DrawName(oldy, wbs.LName0, lnametexts[0]); - [y, h] = DrawName(y, wbs.LName0, lnametexts[0]); - - // Adjustment for different font sizes for map name and 'finished'. - let fontspace1 = finished.mFont.GetDisplacement(); - let fontspace2 = ((h + (finished.mFont.GetHeight() - fontspace1)/4)) / 2; - - y += max(0, fontspace2 - fontspace1) * CleanYFac; - + // If the displayed info is made of patches we need some additional offsetting here. + if (ispatch) + { + int h1 = BigFont.GetHeight() - BigFont.GetDisplacement(); + int h2 = (y - oldy) / CleanYfac / 4; + let disp = min(h1, h2); + // The offset getting applied here must at least be as tall as the largest ascender in the following text to avoid overlaps. + if (!TexMan.OkForLocalization(finishedPatch, "$WI_FINISHED")) + { + disp += finished.mFont.GetMaxAscender("$WI_FINISHED"); + } + y += disp * CleanYfac; + } + // draw "Finished!" int statsy = multiplayer? NG_STATSY : SP_STATSY * CleanYFac; @@ -266,19 +284,36 @@ class StatusScreen abstract play version("2.5") virtual void drawEL () { - int y = TITLEY * CleanYfac; + bool ispatch = TexMan.OkForLocalization(enteringPatch, "$WI_ENTERING"); + int oldy = TITLEY * CleanYfac; - y = DrawPatchOrText(y, entering, enteringPatch, "$WI_ENTERING"); - let h = (entering.mFont.GetHeight() - entering.mFont.GetDisplacement()) / 4; - - if (!wbs.LName1.isValid()) + if (!ispatch) { - // Factor out the font's displacement here. - let fontspace1 = mapname.mFont.GetDisplacement(); - let fontspace2 = ((h + (mapname.mFont.GetHeight() - fontspace1)/4)) / 2; - h = max(0, fontspace2 - fontspace1) * CleanYFac; - } - y += h * CleanYFac; + let asc = entering.mFont.GetMaxAscender("$WI_ENTERING"); + if (asc > TITLEY - 2) + { + oldy = (asc+2) * CleanYfac; + } + } + + int y = DrawPatchOrText(oldy, entering, enteringPatch, "$WI_ENTERING"); + + // If the displayed info is made of patches we need some additional offsetting here. + + if (ispatch) + { + int h1 = BigFont.GetHeight() - BigFont.GetDisplacement(); + let size = TexMan.GetScaledSize(enteringPatch); + int h2 = int(size.Y); + let disp = min(h1, h2) / 4; + // The offset getting applied here must at least be as tall as the largest ascender in the following text to avoid overlaps. + if (!wbs.LName1.isValid()) + { + disp += mapname.mFont.GetMaxAscender(lnametexts[1]); + } + y += disp * CleanYfac; + } + DrawName(y, wbs.LName1, lnametexts[1]); } From 045025f4cfdf79d87650ac25bcc85348feb881ee Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Wed, 31 Jul 2019 10:08:47 +0200 Subject: [PATCH 25/32] - text update. --- wadsrc/static/language.csv | 46 +- .../static/filter/harmony/language.csv | 41 +- wadsrc_extra/static/language.csv | 401 +++++++++++------- 3 files changed, 297 insertions(+), 191 deletions(-) diff --git a/wadsrc/static/language.csv b/wadsrc/static/language.csv index bfde76f84..e99e89848 100644 --- a/wadsrc/static/language.csv +++ b/wadsrc/static/language.csv @@ -1681,34 +1681,34 @@ Energy Pack,TAG_ENERGYPACK,,,,Energetický svazek,Energiekiste,,,Pack de Energí Poison Bolts,TAG_POISONBOLTS,,,,Otrávené šípy,Giftbolzen,,,Saetas Venenosas,,Myrkkynuolet,Carreaux Empoisonnés,Mérgező Nyílak,Dardi Velenosi ,ポイズンボルト,맹독 볼트,Zatrute Bełty,Setas Envenenadas,,,Отравленные болты,Отровне стреле Electric Bolts,TAG_ELECTRICBOLTS,,,,Elektrické šípy,Elektrische Bolzen,,,Saetas Eléctricas,,Sähkönuolet,Carreaux Electriques,Elektromos Nyílak,Dardi Elettrici ,エレクトリックボルト,전격 볼트,Elektryczne Bełty,Setas Elétricas,,,Электрические болты,Електричне стреле Ammo Satchel,TAG_AMMOSATCHEL,,,,Brašna na munici,Munitionstasche,,,Bolsa de Municiones,,Ammuslaukku,Sacoche à munitions,Lőszeres táska,Borsa di Munizioni ,弾薬鞄,탄약 배낭,Torba z Amunicją,Bolsa de Munição,,,Ранец для боеприпасов,Торбица муниције -Base Key,TAG_BASEKEY,,,,Klíč od základny,Basisschlüssel,,,Llave de la Base,,Tukikohdan avain,Clé de la base,Bázis Kulcs,Chiave della Base,基地 のキー,기지 키,Klucz do Bazy,Chave da Base,,,Ключ от базы,Кључ базе -Govs Key,TAG_GOVSKEY,,,,Klíč ke guvernérovi,Gouverneursschlüssel,,,Llave del Gobernador,,Kuvernöörin avain,Clé du Gouverneur,Kormányzó Kulcs,Chiave del Governatore ,政府 のキー,총독의 키,Klucz Gubernatora,Chave do Governador,,,Ключ губернатора,Гувернеров кључ +Base Key,TAG_BASEKEY,,,,Klíč od základny,Basisschlüssel,,,Llave de la Base,,Tukikohdan avain,Clé de la base,Bázis Kulcs,Chiave della Base,基地のキー,기지 키,Klucz do Bazy,Chave da Base,,,Ключ от базы,Кључ базе +Govs Key,TAG_GOVSKEY,,,,Klíč ke guvernérovi,Gouverneursschlüssel,,,Llave del Gobernador,,Kuvernöörin avain,Clé du Gouverneur,Kormányzó Kulcs,Chiave del Governatore ,政府のキー,총독의 키,Klucz Gubernatora,Chave do Governador,,,Ключ губернатора,Гувернеров кључ Passcard,TAG_PASSCARD,,,,Vstupní karta,Zugangskarte,,,Pase de Acceso,,Avainkortti,Passe,Belépőkártya,Tessera Lasciapassare ,パスカード,통행 카드,Karta Dostępu,Cartão de Acesso,,,Пропуск,Пропусница ID Badge,TAG_IDBADGE,,,,Identifikační odznak,Identitätskarte,,,Insignia de identificación,,Henkilötunniste,Badge d'Identification,Azonosító Jelvény,Distintivo ,ID バッジ,신분 휘장,Odznaka Identyfikacyjna,Crachá de Identificação,,,Личная карта,Идентификациона значка -Prison Key,TAG_PRISONKEY,,,,Klíč od věznice,Gefängnisschlüssel,,,Llave de Prisión,,Vankilan avain,Clé de la Prison,Börtön Kulcs,Chiave della Prigione ,刑務所 のキー,감옥 키,Klucz do Więzienia,Chave da Prisão,,,Ключ от тюрьмы,Кључ од 3атвора +Prison Key,TAG_PRISONKEY,,,,Klíč od věznice,Gefängnisschlüssel,,,Llave de Prisión,,Vankilan avain,Clé de la Prison,Börtön Kulcs,Chiave della Prigione ,刑務所のキー,감옥 키,Klucz do Więzienia,Chave da Prisão,,,Ключ от тюрьмы,Кључ од 3атвора Severed Hand,TAG_SEVEREDHAND,,,,Useknutá ruka,Abgetrennte Hand,,,Mano Cercenada,,Katkennut käsi,Main coupée,Levágott Kéz,Mano Mozzata,切り取った手,잘린 손목,Odcięta Ręka,Mão Decepada,Mão Desmenbrada,,Отрезанная рука,Одвојена шака -Power1 Key,TAG_POWER1KEY,,,,Klíč od elektrárny 1,Kraftwerksschlüssel 1,,,Llave de Poder 1,,Power1-avain,Clé Power1,Áram1 Kulcs,Chiave della Centrale 1,パワー1 キー,발전소 1호 키,Klucz do Elektrowni 1,Chave da Usina 1,Chave Energética 1,,Ключ ЭС 1,Кључ од ел. 1 -Power2 Key,TAG_POWER2KEY,,,,Klíč od elektrárny 2,Kraftwerksschlüssel 2,,,Llave de Poder 2,,Power2-avain,Clé Power2,Áram2 Kulcs,Chiave della Centrale 2,パワー2 キー,발전소 2호 키,Klucz do Elektrowni 2,Chave da Usina 2,Chave Energética 2,,Ключ ЭС 2,Кључ од ел. 2 -Power3 Key,TAG_POWER3KEY,,,,Klíč od elektrárny 3,Kraftwerksschlüssel 3,,,Llave de Poder 3,,Power3-avain,Clé Power3,Áram3 Kulcs,Chiave della Centrale 3,パワー3 キー,발전소 3호 키,Klucz do Elektrowni 3,Chave da Usina 3,Chave Energética 3,,Ключ ЭС 3,Кључ од ел. 3 -Gold Key,TAG_GOLDKEY,,,,Zlatý klíč,Goldschlüssel,,,Llave Dorada,,Kulta-avain,Clé en Or,Aranykulcs,Chiave Dorata,ゴールド キー,황금 키,Złoty Klucz,Chave de Ouro,,,Золотой ключ,Златни кључ +Power1 Key,TAG_POWER1KEY,,,,Klíč od elektrárny 1,Kraftwerksschlüssel 1,,,Llave de Poder 1,,Power1-avain,Clé Power1,Áram1 Kulcs,Chiave della Centrale 1,パワー1キー,발전소 1호 키,Klucz do Elektrowni 1,Chave da Usina 1,Chave Energética 1,,Ключ ЭС 1,Кључ од ел. 1 +Power2 Key,TAG_POWER2KEY,,,,Klíč od elektrárny 2,Kraftwerksschlüssel 2,,,Llave de Poder 2,,Power2-avain,Clé Power2,Áram2 Kulcs,Chiave della Centrale 2,パワー2キー,발전소 2호 키,Klucz do Elektrowni 2,Chave da Usina 2,Chave Energética 2,,Ключ ЭС 2,Кључ од ел. 2 +Power3 Key,TAG_POWER3KEY,,,,Klíč od elektrárny 3,Kraftwerksschlüssel 3,,,Llave de Poder 3,,Power3-avain,Clé Power3,Áram3 Kulcs,Chiave della Centrale 3,パワー3キー,발전소 3호 키,Klucz do Elektrowni 3,Chave da Usina 3,Chave Energética 3,,Ключ ЭС 3,Кључ од ел. 3 +Gold Key,TAG_GOLDKEY,,,,Zlatý klíč,Goldschlüssel,,,Llave Dorada,,Kulta-avain,Clé en Or,Aranykulcs,Chiave Dorata,ゴールドキー,황금 키,Złoty Klucz,Chave de Ouro,,,Золотой ключ,Златни кључ ID Card,TAG_IDCARD,,,,Identifikační karta,Ausweis,,,Tarjeta de Identificación,,Henkilökortti,Carte d'Identité,Azonosító Kártya,Tessera Identificativa,ID カード,신분증,Karta Identyfikacyjna,Cartão de Identificação,,,Удостоверение,Лична карта -Silver Key,TAG_SILVERKEY,,,,Stříbrný klíč,Silberschlüssel,,,Llave Plateada,,Hopea-avain,Clé en Argent,Ezüst Kulcs,Chiave Argentata,シルバー キー,은 키,Srebrny Klucz,Chave de Prata,,,Серебряный ключ,Сребрни кључ -Oracle Key,TAG_ORACLEKEY,,,,Věštcův klíč,Orakelschlüssel,,,Llave del Oráculo,,Oraakkelin avain,Clé de l'Oracle,Orákulum kulcs,Chiave dell'Oracolo ,オラクル キー,오라클 키,Klucz do Wyroczni,Chave do Oráculo,,,Ключ Оракула,Пророков кључ +Silver Key,TAG_SILVERKEY,,,,Stříbrný klíč,Silberschlüssel,,,Llave Plateada,,Hopea-avain,Clé en Argent,Ezüst Kulcs,Chiave Argentata,シルバーキー,은 키,Srebrny Klucz,Chave de Prata,,,Серебряный ключ,Сребрни кључ +Oracle Key,TAG_ORACLEKEY,,,,Věštcův klíč,Orakelschlüssel,,,Llave del Oráculo,,Oraakkelin avain,Clé de l'Oracle,Orákulum kulcs,Chiave dell'Oracolo ,オラクルキー,오라클 키,Klucz do Wyroczni,Chave do Oráculo,,,Ключ Оракула,Пророков кључ Military ID,TAG_MILITARYID,,,,Vojenské ID,Militärausweis,,,Identificación Militar,,Sotilastunnus,Identification Militaire,Katonai Azonosító Kártya,Identificativo Militare,ミリタリー ID,군용 아이디,Wojskowy Identyfikator,ID Militar,,,Военный ID,Војна идентификација -Order Key,TAG_ORDERKEY,,,,Klíč Řádu,Ordensschlüssel,,,Llave de la Orden,,Veljeskunnan avain,Clé de l'Ordre,Rend Kulcs,Chiave dell'Ordine,オーダー キー,오더의 키,Klucz Zakonu,Chave da Ordem,,,Ключ Ордена,Кључ одреда -Warehouse Key,TAG_WAREHOUSEKEY,,,,Klíč ke skladu,Lagerhausschlüssel,,,Llave del Almacén,,Varaston avain,Clé de l'Entrepôt,Raktár Kulcs,Chiave del Magazzino ,倉庫 のキー,창고 키,Klucz do Magazynu,Chave do Armazém,,,Ключ от склада,Кључ складишта -Brass Key,TAG_BRASSKEY,,,,Mosazný klíč,Messingschlüssel,,,Llave de Latón,,Messinkiavain,Clé en Bronze,Sárgaréz Kulcs,Chiave d'Ottone ,ブラス キー,황동 키,Mosiężny Klucz,Chave de Latão,,,Латунный ключ,Кључ од месинга -Red Crystal Key,TAG_REDCRYSTALKEY,,,,Červený krystalový klíč,Roter Kristallschlüssel,,,Llave de Cristal Rojo,,Punainen kristalliavain,Clé de Cristal Rouge,Piros Kristály Kulcs,Chiave di Cristallo Rosso ,赤水晶 のキー,적색 크리스탈 키,Czerwony Kryształowy Klucz,Chave de Cristal Vermelho,,,Крас. ключ-кристалл,Кључ од црвеног кристала -Blue Crystal Key,TAG_BLUECRYSTALKEY,,,,Modrý krystalový klíč,Blauer Kristallschlüssel,,,Llave de Cristal Azul,,Sininen kristalliavain,Clé de Crisal Bleu,Kék Kristály Kulcs,Chiave di Cristallo Blu,青水晶 のキー,청색 크리스탈 키,Niebieski Kryształowy Klucz,Chave de Cristal Azul,,,Син. ключ-кристалл,Кључ од плавог кристала -Chapel Key,TAG_CHAPELKEY,,,,Klíč od kaple,Kapellenschlüssel,,,Llave de la Capilla,,Kappelin avain,Clé de la Chapelle,Kápolna Kulcs,Chiave della Cappella ,チャペル キー,예배당 키,Klucz do Kaplicy,Chave da Capela,,,Ключ от часовни,Кључ капеле -Catacomb Key,TAG_CATACOMBKEY,,,,Klíč do katakomb,Katakombenschlüssel,,,Llave de la Catacumba,,Katakombin avain,Clé des Catacombes,Katakomb Kulcs,Chiave delle Catacombe ,カタコンベ キー,고대 묘지 키,Klucz do Katakumb,Chave da Catacumba,,,Ключ от катакомб,Кључ од катакомби -Security Key,TAG_SECURITYKEY,,,,Klíč ochranky,Sicherheitsschlüssel,,,Llave de Seguridad,,Turvamiesavain,Clé de la Sécurité,Biztonsági Kulcs,Chiave della Sicurezza ,警備 のキー,보안 키,Klucz Ochrony,Chave de Segurança,,,Ключ охраны,Сигурносни кључ +Order Key,TAG_ORDERKEY,,,,Klíč Řádu,Ordensschlüssel,,,Llave de la Orden,,Veljeskunnan avain,Clé de l'Ordre,Rend Kulcs,Chiave dell'Ordine,オーダーキー,오더의 키,Klucz Zakonu,Chave da Ordem,,,Ключ Ордена,Кључ одреда +Warehouse Key,TAG_WAREHOUSEKEY,,,,Klíč ke skladu,Lagerhausschlüssel,,,Llave del Almacén,,Varaston avain,Clé de l'Entrepôt,Raktár Kulcs,Chiave del Magazzino ,倉庫のキー,창고 키,Klucz do Magazynu,Chave do Armazém,,,Ключ от склада,Кључ складишта +Brass Key,TAG_BRASSKEY,,,,Mosazný klíč,Messingschlüssel,,,Llave de Latón,,Messinkiavain,Clé en Bronze,Sárgaréz Kulcs,Chiave d'Ottone ,ブラスキー,황동 키,Mosiężny Klucz,Chave de Latão,,,Латунный ключ,Кључ од месинга +Red Crystal Key,TAG_REDCRYSTALKEY,,,,Červený krystalový klíč,Roter Kristallschlüssel,,,Llave de Cristal Rojo,,Punainen kristalliavain,Clé de Cristal Rouge,Piros Kristály Kulcs,Chiave di Cristallo Rosso ,赤水晶のキー,적색 크리스탈 키,Czerwony Kryształowy Klucz,Chave de Cristal Vermelho,,,Крас. ключ-кристалл,Кључ од црвеног кристала +Blue Crystal Key,TAG_BLUECRYSTALKEY,,,,Modrý krystalový klíč,Blauer Kristallschlüssel,,,Llave de Cristal Azul,,Sininen kristalliavain,Clé de Crisal Bleu,Kék Kristály Kulcs,Chiave di Cristallo Blu,青水晶のキー,청색 크리스탈 키,Niebieski Kryształowy Klucz,Chave de Cristal Azul,,,Син. ключ-кристалл,Кључ од плавог кристала +Chapel Key,TAG_CHAPELKEY,,,,Klíč od kaple,Kapellenschlüssel,,,Llave de la Capilla,,Kappelin avain,Clé de la Chapelle,Kápolna Kulcs,Chiave della Cappella ,チャペルキー,예배당 키,Klucz do Kaplicy,Chave da Capela,,,Ключ от часовни,Кључ капеле +Catacomb Key,TAG_CATACOMBKEY,,,,Klíč do katakomb,Katakombenschlüssel,,,Llave de la Catacumba,,Katakombin avain,Clé des Catacombes,Katakomb Kulcs,Chiave delle Catacombe ,カタコンベキー,고대 묘지 키,Klucz do Katakumb,Chave da Catacumba,,,Ключ от катакомб,Кључ од катакомби +Security Key,TAG_SECURITYKEY,,,,Klíč ochranky,Sicherheitsschlüssel,,,Llave de Seguridad,,Turvamiesavain,Clé de la Sécurité,Biztonsági Kulcs,Chiave della Sicurezza ,警備のキー,보안 키,Klucz Ochrony,Chave de Segurança,,,Ключ охраны,Сигурносни кључ Core Key,TAG_COREKEY,,,,Klíč k jádru,Reaktorschlüssel,,,Llave del Núcleo,,Ytimen avain,Clé du Réacteur,Mag Kulcs,Chiave del Nucleo,コア キー,중심부 키,Klucz do Rdzenia,Chave do Núcleo,,,Ключ от реактора,Кључ језгра -Mauler Key,TAG_MAULERKEY,,,,Klíč k trhačům,Vernichterschlüssel,,,Llave del Triturador,,Moukarin avain,Clé du Broyeur,Szétbomló Kulcs,Chiave del Pestatore ,マウラー キー,마울러 키,Klucz do Magazynu Miażdżycieli,Chave - Mauler,,,Ключ истязателя,Маулер кључ -Factory Key,TAG_FACTORYKEY,,,,Klíč do továrny,Fabrikschlüssel,,,Llave de la Fábrica,,Tehtaan avain,Clé de l'Usine,Gyár Kulcs,Chiave della Fabbrica ,工場 のキー,공장 키,Klucz do Fabryki,Chave da Fábrica,,,Ключ от фабрики,Кључ фабрике -Mine Key,TAG_MINEKEY,,,,Klíč od dolů,Minenschlüssel,,,Llave de la Mina,,Kaivoksen avain,Clé de la Mine,Bánya Kulcs,Chiave della Miniera ,鉱山 のキー,탄광 키,Klucz do Kopalni,Chave da Mina,,,Ключ от шахт,Кључ рудника -New Key5,TAG_NEWKEY5,,,,Nový klíč 5,Neuer Schlüssel 5,,,Llave Nueva5,,Uusi 5-avain,Clé nouveau 5,Új Kulcs5,Nuova Chiave 5,ニュー キー5,새로운 키5,Nowy Klucz5,Chave Nova 5,,,Новый ключ5,Нови кључ5 -Oracle Pass,TAG_ORACLEPASS,,,,Věštcův pas,Orakelpass,,,Pase del Oráculo,,Oraakkelin kulkulupa,Passe de l'Oracle,Orákulum engedély,Lasciapassare dell'Oracolo ,オラクル パス,오라클의 통행증,Przepustka Wyroczni,Passe do Oráculo,,,Пропуск Оракула,Пророкова пропусница +Mauler Key,TAG_MAULERKEY,,,,Klíč k trhačům,Vernichterschlüssel,,,Llave del Triturador,,Moukarin avain,Clé du Broyeur,Szétbomló Kulcs,Chiave del Pestatore ,マウラーキー,마울러 키,Klucz do Magazynu Miażdżycieli,Chave - Mauler,,,Ключ истязателя,Маулер кључ +Factory Key,TAG_FACTORYKEY,,,,Klíč do továrny,Fabrikschlüssel,,,Llave de la Fábrica,,Tehtaan avain,Clé de l'Usine,Gyár Kulcs,Chiave della Fabbrica ,工場のキー,공장 키,Klucz do Fabryki,Chave da Fábrica,,,Ключ от фабрики,Кључ фабрике +Mine Key,TAG_MINEKEY,,,,Klíč od dolů,Minenschlüssel,,,Llave de la Mina,,Kaivoksen avain,Clé de la Mine,Bánya Kulcs,Chiave della Miniera ,鉱山のキー,탄광 키,Klucz do Kopalni,Chave da Mina,,,Ключ от шахт,Кључ рудника +New Key5,TAG_NEWKEY5,,,,Nový klíč 5,Neuer Schlüssel 5,,,Llave Nueva5,,Uusi 5-avain,Clé nouveau 5,Új Kulcs5,Nuova Chiave 5,ニューキー5,새로운 키5,Nowy Klucz5,Chave Nova 5,,,Новый ключ5,Нови кључ5 +Oracle Pass,TAG_ORACLEPASS,,,,Věštcův pas,Orakelpass,,,Pase del Oráculo,,Oraakkelin kulkulupa,Passe de l'Oracle,Orákulum engedély,Lasciapassare dell'Oracolo ,オラクルパス,오라클의 통행증,Przepustka Wyroczni,Passe do Oráculo,,,Пропуск Оракула,Пророкова пропусница 10 gold,TAG_10GOLD,,,,10 zlatých,10 Gold,,,10 de Oro,,10 kolikkoa,10 Pièces,10 arany,10 pezzi d'oro ,10ゴールド,10 골드,10 monet,10 moedas,10 moedas de ouro,,10 золотых,10 златника 25 gold,TAG_25GOLD,,,,25 zlatých,25 Gold,,,25 de Oro,,25 kolikkoa,25 Pièces,25 arany,25 pezzi d'oro ,25ゴールド,25 골드,25 monet,25 moedas,25 moedas de ouro,,25 золотых,25 златника 50 gold,TAG_50GOLD,,,,50 zlatých,50 Gold,,,50 de Oro,,50 kolikkoa,50 Pièces,50 arany,50 pezzi d'oro ,50ゴールド,50 골드,50 monet,50 moedas,50 moedas de ouro,,50 золотых,50 златника @@ -3442,5 +3442,7 @@ Dull Green,TXT_COLOR_DULLGREEN,,,,Bledě zelená,Blassgrün,,,Verde pálido,,Haa Bright Green,TXT_COLOR_BRIGHTGREEN,,,,Jasně zelená,Hellgrün,,,Verde claro,,Vaaleanvihreä,Vert clair,,Verde chiaro,鮮,,Jasnozielony,Verde claro,,,Ярко-зелёный,Светла зелена Dark Green,TXT_COLOR_DARKGREEN,,,,Tmavě zelená,Dunkelgrün,,,Verde oscuro,,Tummanvihreä,Vert sombre,Sötétzöld,Verde scuro,深,암녹색,Ciemnozielony,Verde escuro,,,Тёмно-зелёный,Тамна зелена Rust,TXT_COLOR_RUST,,,,Rez,Rostbraun,,,Óxido,,Ruoste,Rouille,,,錆,,Rdzawy,Ferrugem,,,Ржавый,Рђа +Quicksave rotation,MISCMNU_QUICKSAVEROTATION,,,,,Schnellspeicherrotation,,,,,,,,,,,,,,,, +Number of quicksaves in rotation,MISCMNU_QUICKSAVECOUNT,,,,,Anzahl Schnellspeicherplätze,,,,,,,,,,,,,,,, ,USE_GENERIC_FONT,This is not a text to be translated but an engine switch for complex languages.,,,,,,,,,,,,,1,1,,,,,, ,REQUIRED_CHARACTERS,This should list all uppercase characters that are REQUIRED for proper language display. If it is acceptable that accents get omitted a character should NOT be listed here!,,,ÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ,ÄÖÜẞ,,,ÁÉÍÓÚÑÜ,,ÄÖ,ÀÂÇÉÈÊËÎÏÔŒÙÛŸ,ÁÉÍÓÖÚÜŐŰ,ÀÈÉÌÒÙ,,,ĄĆĘŁŃÓŚŹŻ,ÁÉÍÓÚÀÃÕÂÊÔÇ,,,АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ,АБВГДЂЕЖЗИЈКЛЉМНЊОПРСТЋУФХЦЧЏШ \ No newline at end of file diff --git a/wadsrc_extra/static/filter/harmony/language.csv b/wadsrc_extra/static/filter/harmony/language.csv index 858ef6630..2c0c14432 100644 --- a/wadsrc_extra/static/filter/harmony/language.csv +++ b/wadsrc_extra/static/filter/harmony/language.csv @@ -60,8 +60,8 @@ The Hospital,TXT_HARMMAP05,,,,Nemocnice,Das Hospital,,,El Hospital,,,L'Hôpital, The Weapons Factory,TXT_HARMMAP06,,,,Továrna na zbraně,Die Waffenfabrik,,,La Fábrica de Armas,,,L'Usine d'Armes,,La fabbrica di armi,ウェポンファクトリー,무기 공장,Fabryka Broni,A Fábrica de Armamento,,,Оружейный завод, The Underwater Lab,TXT_HARMMAP07,,,,Podvodní laboratoř,Das Unterwasserlabor,,,El Laboratorio Submarino,,,Le Laboratoire Sous-marin,,Il laboratorio subacqueo,アンダーウォーターラボ,해저 연구소,Podwodne Laboratorium,O Laboratório Submarino,,,Подводная лаборатория, Airstrip One,TXT_HARMMAP08,,,,Přistávací dráha jedna,Flugplatz Eins,,,Pista de Aterrizaje Uno,,,Piste D'Atterrisage Un,,Pista di atterraggio Uno,エアーシップ ワン,활주로 1호,Lądowisko Numer Jeden,Base Aérea Um,,,Взлётная полоса №1, -The Launch Base,TXT_HARMMAP09,,,,Vzletová základna,Die Startbasis,,,La Base de Despegue,,,La Base de Lancement,,La base di lancio,ランチャーベース,발진기지,,A Base de Lançamento,,,Пусковая площадка, -The Radioactive Zone,TXT_HARMMAP10,,,,Radioaktivní zóna,Die radioaktive Zone,,,La Zona Radioactiva,,,La Zone Radioactive,,La zona radioattiva,ラディオアクティブ ゾーン,방사능 처리소,,A Zona Radioativa,,,Заражённая зона, +The Launch Base,TXT_HARMMAP09,,,,Vzletová základna,Die Startbasis,,,La Base de Despegue,,,La Base de Lancement,,La base di lancio,ランチャーベース,발진기지,Baza Startowa,A Base de Lançamento,,,Пусковая площадка, +The Radioactive Zone,TXT_HARMMAP10,,,,Radioaktivní zóna,Die radioaktive Zone,,,La Zona Radioactiva,,,La Zone Radioactive,,La zona radioattiva,ラディオアクティブ ゾーン,방사능 처리소,Radioaktywna Strefa,A Zona Radioativa,,,Заражённая зона, Echidna,TXT_HARMMAP11,,,,,,,,,,,,,,エキドナ,에키드나,,Equidna,,,Ехидна, "You feel sick to your stomach... Looking in the face of the mutant queen... @@ -169,7 +169,7 @@ Pagheranno per farti uccidere la tuo amica... ""L'inferno non ha furia come una donna disprezzata!"" = L A F I N E = - + ","貴方はミュータントの女王の顔を見た時 気分が凄まじく悪くなった... その顔は... 見覚えがあった... @@ -194,7 +194,25 @@ Pagheranno per farti uccidere la tuo amica... ""고통받은 여자의 심정보다 더한 지옥은 없지! 그 녀석들, 가만 안 둬!"" -= 끝 =",,"Você sente vontade de vomitar... += 끝 =","Czujesz się niedobrze... +Patrząc na twarz królowej mutantów... +Ale rzecz w tym, że... to była kiedyś... +Twoja przyjaciółka... Amira! + +Te potwory znalazły sposób, aby ją +zmutować i zamienić ją w tą ohydną +poczwarę, by mogły się rozmnażać. + +Ehh... + +Bierzesz się w garść... +Zapłacą za to, że musiałaś zabić +swoją przyjaciółkę... + +""Nawet piekło nie może być tak wściekłe +jak zlekceważnona kobieta!"" + + =K O N I E C=","Você sente vontade de vomitar... Vendo o rosto da rainha mutante... Essa coisa... Que costumava ser... Sua amiga... Amira! @@ -234,10 +252,11 @@ uma mulher desprezada!"" = К О Н Е Ц = ", ,WI_FINISHED,This text is deliberately empty,,,,,,,,,,,,,,,,,,,, -Loading,WI_ENTERING,Yellow needs retranslation,,,Vstupujete do,Lade,,Eniras,Entrando a:,,Seuraava kohde,Niveau Suivant,Következik,Caricamento,ローディング,불러오는 중,Wchodzisz,Próxima fase,Próximo nível,,Загрузка уровня, -Very Easy,SKILL_BABY,,,,Velmi snadné,Sehr einfach,,,Muy facil,,,Trés facile,,Molto facile,ベリーイージー,아주 쉬움,,Muito facil,,,Очень лёгкий, -Easy,SKILL_EASY,,,,Snadný,Einfach,,,Facil,,,Facile,,Facile,イージー,쉬움,,Fácil,,,Лёгкий, -Medium,SKILL_NORMAL,,,,Střední,Mittel,,,Medio,,,Moyen,,Medio,ミディアム,중간,,Médio,,,Средний, -Hard,SKILL_HARD,,,,Obtížný,Schwer,,,Difícil,,,Difficile,,Difficile,ハード,어려움,,Difícil,,,Тяжёлый, -Very Hard,SKILL_NIGHTMARE,,,,Velmi obtížné,Sehr schwer,,,Muy difícil,,,Très difficile,,Molto difficile,ベリーハード,아주 어려윰,,Muito difícil,,,Очень тяжёлый, -Thanks for playing,HARMQUITMSG,,,,Díky za hraní,Danke fürs Spielen,,,Gracias por jugar,,,Merci d'avoir joué,,Grazie per aver giocato,プレイ シテクレテ カンシャスル,플레이 해주셔서 감사드립니다,,Obrigado por jogar,,,"Спасибо, что сыграли в Harmony", \ No newline at end of file +Loading,WI_ENTERING,Yellow needs retranslation,,,Vstupujete do,Lade,,Eniras,Entrando a:,,Seuraava kohde,Niveau Suivant,Következik,Caricamento,ローディング,불러오는 중,Ładowanie,Próxima fase,Próximo nível,,Загрузка уровня, +Very Easy,SKILL_BABY,,,,Velmi snadné,Sehr einfach,,,Muy facil,,,Trés facile,,Molto facile,ベリーイージー,아주 쉬움,Bardzo Łatwy,Muito facil,,,Очень лёгкий, +Easy,SKILL_EASY,,,,Snadný,Einfach,,,Facil,,,Facile,,Facile,イージー,쉬움,Łatwy,Fácil,,,Лёгкий, +Medium,SKILL_NORMAL,,,,Střední,Mittel,,,Medio,,,Moyen,,Medio,ミディアム,중간,Średni,Médio,,,Средний, +Hard,SKILL_HARD,,,,Obtížný,Schwer,,,Difícil,,,Difficile,,Difficile,ハード,어려움,Trudny,Difícil,,,Тяжёлый, +Very Hard,SKILL_NIGHTMARE,,,,Velmi obtížné,Sehr schwer,,,Muy difícil,,,Très difficile,,Molto difficile,ベリーハード,아주 어려윰,Bardzo Trudny,Muito difícil,,,Очень тяжёлый, +Thanks for playing,HARMQUITMSG,,,,Díky za hraní,Danke fürs Spielen,,,Gracias por jugar,,,Merci d'avoir joué,,Grazie per aver giocato,プレイ シテクレテ カンシャスル,플레이 해주셔서 감사드립니다,Dziękuję za grę,Obrigado por jogar,,,"Спасибо, что сыграли в Harmony", +Harmony,TXT_D2E1,,,,,,,,,,,,,,,,,,,,, \ No newline at end of file diff --git a/wadsrc_extra/static/language.csv b/wadsrc_extra/static/language.csv index eec5bcca5..dace11e61 100644 --- a/wadsrc_extra/static/language.csv +++ b/wadsrc_extra/static/language.csv @@ -142,7 +142,7 @@ Level 9: Stronghold,THUSTR_9,,,,Level 9: Pevnost,Level 9: Festung,,Level 9: Fuor Level 10: Redemption,THUSTR_10,,,,Level 10: Vykoupení,Level 10: Erlösung,,Level 10: Elaĉeto,Nivel 10: Redención,,Taso 10: Lunastus,NIVEAU 10: Rédemption,Megváltás,Level 10: Redenzione,Level 10: 償還,레벨 10: 구원,Level 10: Odkupienie,Nível 10: Redenção,,Nivelul 10: Răscumpărare,Level 10: Искупление,Level 10: Искупљење Level 11: Storage Facility,THUSTR_11,,,,Level 11: Skladiště,Level 11: Lagerstätte,,Level 11: Konservejo,Nivel 11: Complejo de Almacenes,,Taso 11: Varastolaitos,NIVEAU 11: Complexe de Stockage,Raktárépület,Level 11: Impianto di Stoccaggio,Level 11: 貯蔵施設,레벨 11: 저장소,Level 11: Magazyn,Nível 11: Instalação de Armazenamento,,Nivelul 11: Stația de depozitare,Level 11: Склад,Level 11: Складиште Level 12: Crater,THUSTR_12,,,,Level 12: Kráter,Level 12: Krater,,Level 12: Kratero,Nivel 12: Cráter,,Taso 12: Kraateri,NIVEAU 12: Cratère,Kráter,Level 12: Cratere,Level 12: 火口,레벨 12: 분화구,Level 12: Krater,Nível 12: Cratera,,Nivelul 12: Crater,Level 12: Кратер,Level 12: Кратер -Level 13: Nukage Processing,THUSTR_13,,,,Level 13: Zpracování odpadu,Level 13: Nuklearverarbeitung,,Level 13: Nukleaĵo-traktejo,Nivel 13: Procesamiento Nuclear,,Taso 13: Ydinjätekäsittely,NIVEAU 13: Traitement Nucléaire,Atomhulladék-feldolgozó,Level 13: Trattamento Nucleare,Level 13: 核廃棄物加工所,레벨 13: 폐기물 처리소,Level 13: Przetwórstwo Jądrowe,Nível 13: Processamento Nuclear,,Nivelul 13: Prelucrarea deșeurilor nucleare,Level 13: Переработка ядерных отходов,Level 13: Нуклеарна електрана +Level 13: Nukage Processing,THUSTR_13,,,,Level 13: Zpracování odpadu,Level 13: Nuklearverarbeitung,,Level 13: Nukleaĵo-traktejo,Nivel 13: Procesamiento Nuclear,,Taso 13: Ydinjätekäsittely,NIVEAU 13: Traitement Nucléaire,Atomhulladék-feldolgozó,Level 13: Trattamento Nucleare,Level 13: 核廃棄物加工所,레벨 13: 폐기물 처리소,Level 13: Przetwórstwo Jądrowe,Nível 13: Processamento Nuclear,,Nivelul 13: Prelucrarea deșeurilor nucleare,Level 13: Переработка ядерных отходов,0 Level 14: Steel Works,THUSTR_14,,,,Level 14: Ocelárna,Level 14: Stahlwerk,,Level 14: Ŝtalejo,Nivel 14: Siderúrgica,,Taso 14: Terästehdas,NIVEAU 14: Aciérie,Acélművek,Level 14: Acciaieria,Level 14: 製鉄所,레벨 14: 제강소,Level 14: Huta,Nível 14: Siderúrgica,,Nivelul 14: Oțelărie,Level 14: Металлургия,Level 14: Челичана Level 15: Dead Zone,THUSTR_15,,,,Level 15: Mrtvá zóna,Level 15: Tote Zone,,Level 15: Mortzono,Nivel 15: Zona Muerta,,Taso 15: Kuollut alue,NIVEAU 15: Zone Morte,A holtak zónája,Level 15: Zona Morta,Level 15: 危険地帯,레벨 15: 데드 존,Level 15: Martwa Strefa,Nível 15: Zona Morta,,Nivelul 15: Zonă moartă,Level 15: Мёртвая зона,Level 15: Зона смрти Level 16: Deepest Reaches,THUSTR_16,,,,Level 16: Nejhlubší sluje,Level 16: Tiefe,,Level 16: Plejsubejo,Nivel 16: Recodos profundos,,Taso 16: Syvyydet,NIVEAU 16: Profondeurs,Mélység,Level 16: Profondità,Level 16: 最深部,레벨 16: 깊숙한 강,Level 16: Głębiny,Nível 16: Profundezas,,,Level 16: Глубочайшие достижения,Level 16: Најдубља дубина @@ -163,152 +163,152 @@ Level 30: Last Call,THUSTR_30,,,,Level 30: Poslední mise,Level 30: Letzter Aufr Level 31: Pharaoh,THUSTR_31,,,,Level 31: Faraón,Level 31: Pharao,,Level 31: Faraono,Nivel 31: Faraón,,Taso 31: Faarao,NIVEAU 31: Pharaon,Fáraó,Level 31: Faraone,Level 31: ファラオ,레벨 31: 파라오,Level 31: Faraon,Nível 31: Faraó,,Nivelul 31: Faraon,Level 31: Фараон,Level 31: Фараон Level 32: Caribbean,THUSTR_32,,,,Level 32: Karibik,Level 32: Karibik,,Level 32: Karibio,Nivel 32: Caribeño,,Taso 32: Karibia,NIVEAU 32: Caraïbes,Karib-térség,Level 32: Caraibi,Level 32: カリビアン,레벨 32: 카리브해,Level 32: Karaiby,Nível 32: Caribe,Nível 32: Caraíbas,Nivelul 32: Caraibe,Level 32: Карибы,Level 32: Кариби ,,Heretic,,,,,,,,,,,,,,,,,,,, -The Docks,HHUSTR_E1M1,,,,Přístaviště,Die Docks,,,Los Muelles,,,Les Docks,A Kikötő,Il Molo,埠頭,항구,Doki,As Docas,,Docul,Доки,Лука -The Dungeons,HHUSTR_E1M2,,,,Žaláře,Die Kerker,,,Los Calabozos,,,Le Donjon,A Kazamaták,I Sotterranei,地下牢,지하감옥,Lochy,As Masmorras,,Temnița,Темницы,Тамнице -The Gatehouse,HHUSTR_E1M3,,,,Vrátnice,Das Pförtnerhaus,,,El Cuerpo de Guardia,,,Le Corps de Garde,A Kapuház,L'ingresso,門塔,문루,Stróżówka,O Portão de Entrada,,Casa portarului,Привратницкая,Стражарница -The Guard Tower,HHUSTR_E1M4,,,,Střážní věž,Der Wachturm,,,La Torre de Guardia,,,La Tour de Garde,Az Őrtorony,La Torre di Guardia,監視塔,보초 누대,Wieża Strażnicza,A Torre de Guarda,,Turnul de veghe,Сторожевая башня,Извидница -The Citadel,HHUSTR_E1M5,,,,Citadela,Die Festung,,,La Ciudadela,,,La Citadelle,A Citadella,La Cittadella,要塞,거점,Cytadela,A Cidadela,,Cetatea,Цитадель,Цитадела -The Cathedral,HHUSTR_E1M6,,,,Katedrála,Die Kathedrale,,,La Catedral,,,La Cathédrale,A Katedrális,La Cattedrale,大聖堂,대성당,Katedra,A Catedral,,Catedrala,Кафедральный собор,Катедрала -The Crypts,HHUSTR_E1M7,,,,Krypty,Die Krypten,,,Las Criptas,,,La Crypte,A Kripták,Le Cripte,地下聖堂,지하 묘실,Krypty,As Criptas,,Criptele,Склепы,Крипта -Hell's Maw,HHUSTR_E1M8,,,,Chřtán pekla,Der Höllenschlund,,,Fauces del Infierno,,,La Geule de l'Enfer,A Pokol Szája,La Bocca dell'Inferno,地獄の肚,지옥의 목구멍,Paszcza Piekieł,A Boca do Inferno,,Gura către iad,Адская утроба,Паклено ждрело -The Graveyard,HHUSTR_E1M9,,,,Hřbitov,Der Friedhof,,,El Cementerio,,,Le Cimetière,A Temető,Il Cimitero,墓場,공동묘지,Cmentarz,O Cemitério,,Cimitirul,Кладбище,Гробље -The Crater,HHUSTR_E2M1,,,,Kráter,Der Krater,,,El Cráter,,,Le Cratère,A Kráter,Il Cratere,噴火口,깊은 혈,Krater,A Cratera,,Craterul,Кратер,Кратер -The Lava Pits,HHUSTR_E2M2,,,,Lávové jámy,Die Lavagruben,,,Las Canteras de Lava,,,Les Puits de Lave,A Láva Gödrök,I Pozzi della Lava,溶岩の竪穴,용암 구덩이,Szyb Lawy,Os Fossos de Lava,,Gropile cu lavă,Лавовые очаги,Понор лаве -The River of Fire,HHUSTR_E2M3,,,,Ohnivá řeka,Der Feuerfluss,,,El Río de Fuego,,,La Rivière de Feu,A Tűz Folyama,Il Fiume di Fuoco,火の河,화염의 강,Rzeka Ognia,O Rio de Fogo,,Râul de foc,Река огня,Река од ватре -The Ice Grotto,HHUSTR_E2M4,,,,Ledová grotta,Die Eisgrotte,,,La Gruta de Hielo,,,La Grotte de Glace,A Jégbarlang,La Grotta del Ghiaccio,氷の洞窟,얼음 동굴,Lodowa Grota,A Gruta de Gelo,,Grota de gheață,Ледяной грот,Ледена пећина -The Catacombs,HHUSTR_E2M5,,,,Katakomby,Die Katakomben,,,Las Catacumbas,,,Les Catacombes,A Katakombák,Le Catacombe,地下墓所,태고의 무덤,Katakumby,As Catacumbas,Os Túmulos,Catacombele,Катакомбы,Катакомбе -The Labyrinth,HHUSTR_E2M6,,,,Labyrint,Das Labyrinth,,,El Laberinto,,,Le Labyrinthe,A Labirintus,Il Labirinto,迷宮,미궁,Labirynt,O Labirinto,,Labirintul,Лабиринт,Лавиринт -The Great Hall,HHUSTR_E2M7,,,,Velký sál,Die große Halle,,,El Gran Salón,,,Le Grand Hall,A Nagy Folyosó,La Grande Sala,大公会堂,대회관,Wielki Hol,O Grande Salão,,Sala cea mare,Большой зал,Велика дворана -The Portals of Chaos,HHUSTR_E2M8,,,,Portály chaosu,Das Portal des Chaos,,,Los Portales del Caos,,,Le Portail du Chaos,A Káosz Portáljai,I Portali del Caos,混沌への門,혼돈의 차원문,Portale Chaosu,Os Portais do Caos,,Portalurile de haos,Порталы хаоса,Портали хаоса -The Glacier,HHUSTR_E2M9,,,,Ledovec,Der Gletscher,,,El Glaciar,,,Le Glacier,A Gleccser,Il Ghiacciaio,氷河,빙하 구역,Lodowiec,A Geleira,O Glaciar,Ghețarul,Ледник,Глечер -The Storehouse,HHUSTR_E3M1,,,,Skladiště,Die Lagerhalle,,,El Almacén,,,L'Entrepôt,A Raktár,Il Magazzino,倉庫,저장고,Magazyn,O Armazém,,Depozitul,Кладовая,Складиште -The Cesspool,HHUSTR_E3M2,,,,Žumpa,Die Latrine,,,El Pozo,,,Le Bourbier,A Pöcegödör,Il Pozzo Nero,汚水層,불결한 장소,Szambo,A Fossa,,Haznaua,Сточный колодец,Септичка јама -The Confluence,HHUSTR_E3M3,,,,Soutok,Die Vereinigung,,,La Confluencia,,,La Confluence,A Kereszteződés,La Confluenza,合流点,합류점,Spływ,A Confluência,,Confluența,Слияние,Ушће -The Azure Fortress,HHUSTR_E3M4,,,,Azurová pevnost,Die himmelblaue Festung,,,La Fortaleza de Azur,,,La Fortresse d'Azur,Az Azúr Erőd,La Fortezza Azzurra,紺碧の要塞,청천의 요새,Lazurowa Forteca,A Fortaleza Azul,,Fortăreața de azur,Лазурная крепость,Азурна дврђава -The Ophidian Lair,HHUSTR_E3M5,,,,Hadí doupě,Das Schlangennest,,,La Guarida Ofídica,,,Le Repaire des Ophidiens,Az Opfidiánok Fészke,L'antro degli Ophidian,オフィディアンの塒,오피디안의 소굴,Gniazdo Węży,A Cova dos Ofídios,,Cuibul ofidienilor,Логово офидианов,Змијска јазбина -The Halls of Fear,HHUSTR_E3M6,,,,Chodby strachu,Die Hallen der Angst,,,Los Salones del Miedo,,,Les Couloirs de la Peur,A Félelem Folyosói,Le Sale della Paura,恐怖の館,공포의 회관,Korytarze Strachu,Os Salões do Medo,,Sălile groazei,Залы страха,Дворана страха -The Chasm,HHUSTR_E3M7,,,,Propast,Der Abgrund,,,El Abismo,,,Le Gouffre,A Szakadék,L'abisso,裂け目,깊은 골,Przepaść,O Abismo,,Prăpastia,Пропасть,Понор лаве -D'Sparil's Keep,HHUSTR_E3M8,,,,D'Sparilova pevnost,D'Sparils Außenposten,,,Guarida de D'Sparil,,,Le Donjon de D'Sparil,D'Sparil Terme,La Dimora di D'sparil,デ’スパリルの間,드'스파릴의 초소,Baszta D'Sparila,Fortaleza de D'Sparil,,Palatul lui D'sparil,Крепость Д'Спарила,Д'Спарилова кула -The Aquifer,HHUSTR_E3M9,,,,Zvodeň,Der Wasserspeicher,,,El Acuífero,,,L'Aquifère,A Víztorony,L'acquedotto,帯水層,대수층,Wodociąg,O Aquífero,,Galerii acvifere,Водоносный слой,Водоносник -Catafalque,HHUSTR_E4M1,,,,Katafalk,Katafalk,,,Catafalco,,,Le Catafalque,Ravatal,Catafalco,棺台,관대,Katafalk,Catafalco,,Catafalc,Катафалк,Одар -Blockhouse,HHUSTR_E4M2,,,,Tvrzka,Blockhaus,,,Fortín,,,Le Fortin,Gerendaház,Blocco di Case,丸太小屋,특화점,Blokhauz,O Forte,,Fort,Укрытие,Бункер -Ambulatory,HHUSTR_E4M3,,,,Ochoz,Wandelgang,,,Ambulatorio,,,Le Déambulatoire,Kerengő,Ambulatorio,遊歩道,유보장,Krużganek,Ambulatório,,,Монастырская галерея,Амбуланта -Sepulcher,HHUSTR_E4M4,,,,Hrob,Grabstätte,,,Sepulcro,,,Le Sépulcre,Síremlék,Sepolcro,埋葬所,매장소,Grób,Sepulcro,,Sepulcru,Гробница,Гробница -Great Stair,HHUSTR_E4M5,,,,Velké schodiště,Große Treppe,,,Gran Escalera,,,Le Grand Escalier,Nagy Lépcső,Grande Scala,大階段,특급 계단,Wielka Gwiazda,Grande Escada,,Scara cea mare,Великая лестница,Велики степеник -Halls of the Apostate,HHUSTR_E4M6,,,,Chodby odpadlictví,Halle des Abtrünnigen,,,Salas de los Apóstatas,,,Les Halls de l'Apôtre,A Hitehagyott Átjárója,Sale dell'Apostata,背教者の館,배교자의 회관,Korytarze Odszczepieńca,Os Salões dos Apóstatas,,Sălile apostatului,Залы отступников,Дворана апостола -Ramparts of Perdition,HHUSTR_E4M7,,,,Náspy zatracení,Wälle der Verdammnis,,,Murallas de la Perdición,,,Les Remparts de la Perdition,A Kárhozat Támasza,Torrioni della Perdizione,破滅の塁壁,파멸의 성벽,Wał Potępienia,Muralhas da Perdição,,Meterezele pierzaniei,Твердыни погибели,Бедем пропасти -Shattered Bridge,HHUSTR_E4M8,,,,Rozbitý most,Zerstörte Brücke,,,Puente Destrozado,,,Le Pont effondré,A Szétesett Híd,Ponte Distrutto,崩落の橋,붕괴된 다리,Zniszczony Most,Ponte Despedaçada,,Podul dărâmat,Разрушенный мост,Поломљен мост -Mausoleum,HHUSTR_E4M9,,,,Mauzoleum,,,,Mausoleo,,,Le Mausolée,Mauzóleum,Mausoleo,霊廟,대영묘,Mauzoleum,Mausoléu,,Mausoleu,Мавзолей,Маузолеј -Ochre Cliffs,HHUSTR_E5M1,,,,Okrové útesy,Ockerfarbene Klippen,,,Acantilados Ocres,,,Les Falaises Ochre,Okker Szakadékok,Colline Ocra,黄土絶壁,황토 산맥,Ochrowe Klify,Penhascos Ocres,,Stâncile de ocru,Охровые утёсы,Окер брда -Rapids,HHUSTR_E5M2,,,,Peřeje,Stromschnellen,,,Rápidos,,,Les Rapides,Zuhatagok,Rapide,奔流,여울,Katarakty,Corredeiras,,Ape repezi,Стремнина,Брзак -Quay,HHUSTR_E5M3,,,,Nábřeží,Kai,,,Muelle,,,Le Quai,Rakpart,Banchina,岸壁,부두,Wir,Cais,,Chei,Причал,Кеј -Courtyard,HHUSTR_E5M4,,,,Nádvoří,Schlosshof,,,Patio,,,La Cour,Pitvar,Cortile,中庭,안마당,Dziedziniec,Pátio,,Curte,Внутренний двор,Двориште +The Docks,HHUSTR_E1M1,,,,Přístaviště,Die Docks,,,Los Muelles,,Satamat,Les Docks,A Kikötő,Il Molo,埠頭,항구,Doki,As Docas,,Docul,Доки,Лука +The Dungeons,HHUSTR_E1M2,,,,Žaláře,Die Kerker,,,Los Calabozos,,Tyrmät,Le Donjon,A Kazamaták,I Sotterranei,地下牢,지하감옥,Lochy,As Masmorras,,Temnița,Темницы,Тамнице +The Gatehouse,HHUSTR_E1M3,,,,Vrátnice,Das Pförtnerhaus,,,El Cuerpo de Guardia,,Porttitalo,Le Corps de Garde,A Kapuház,L'ingresso,門塔,문루,Stróżówka,O Portão de Entrada,,Casa portarului,Привратницкая,Стражарница +The Guard Tower,HHUSTR_E1M4,,,,Střážní věž,Der Wachturm,,,La Torre de Guardia,,Vartiotorni,La Tour de Garde,Az Őrtorony,La Torre di Guardia,監視塔,보초 누대,Wieża Strażnicza,A Torre de Guarda,,Turnul de veghe,Сторожевая башня,Извидница +The Citadel,HHUSTR_E1M5,,,,Citadela,Die Festung,,,La Ciudadela,,Linnake,La Citadelle,A Citadella,La Cittadella,要塞,거점,Cytadela,A Cidadela,,Cetatea,Цитадель,Цитадела +The Cathedral,HHUSTR_E1M6,,,,Katedrála,Die Kathedrale,,,La Catedral,,Katedraali,La Cathédrale,A Katedrális,La Cattedrale,大聖堂,대성당,Katedra,A Catedral,,Catedrala,Кафедральный собор,Катедрала +The Crypts,HHUSTR_E1M7,,,,Krypty,Die Krypten,,,Las Criptas,,Kryptat,La Crypte,A Kripták,Le Cripte,地下聖堂,지하 묘실,Krypty,As Criptas,,Criptele,Склепы,Крипта +Hell's Maw,HHUSTR_E1M8,,,,Chřtán pekla,Der Höllenschlund,,,Fauces del Infierno,,Helvetin kita,La Geule de l'Enfer,A Pokol Szája,La Bocca dell'Inferno,地獄の肚,지옥의 목구멍,Paszcza Piekieł,A Boca do Inferno,,Gura către iad,Адская утроба,Паклено ждрело +The Graveyard,HHUSTR_E1M9,,,,Hřbitov,Der Friedhof,,,El Cementerio,,Hautausmaa,Le Cimetière,A Temető,Il Cimitero,墓場,공동묘지,Cmentarz,O Cemitério,,Cimitirul,Кладбище,Гробље +The Crater,HHUSTR_E2M1,,,,Kráter,Der Krater,,,El Cráter,,Kraateri,Le Cratère,A Kráter,Il Cratere,噴火口,깊은 혈,Krater,A Cratera,,Craterul,Кратер,Кратер +The Lava Pits,HHUSTR_E2M2,,,,Lávové jámy,Die Lavagruben,,,Las Canteras de Lava,,Laavamontut,Les Puits de Lave,A Láva Gödrök,I Pozzi della Lava,溶岩の竪穴,용암 구덩이,Szyb Lawy,Os Fossos de Lava,,Gropile cu lavă,Лавовые очаги,Понор лаве +The River of Fire,HHUSTR_E2M3,,,,Ohnivá řeka,Der Feuerfluss,,,El Río de Fuego,,Tulijoki,La Rivière de Feu,A Tűz Folyama,Il Fiume di Fuoco,火の河,화염의 강,Rzeka Ognia,O Rio de Fogo,,Râul de foc,Река огня,Река од ватре +The Ice Grotto,HHUSTR_E2M4,,,,Ledová grotta,Die Eisgrotte,,,La Gruta de Hielo,,Jääluola,La Grotte de Glace,A Jégbarlang,La Grotta del Ghiaccio,氷の洞窟,얼음 동굴,Lodowa Grota,A Gruta de Gelo,,Grota de gheață,Ледяной грот,Ледена пећина +The Catacombs,HHUSTR_E2M5,,,,Katakomby,Die Katakomben,,,Las Catacumbas,,Katakombit,Les Catacombes,A Katakombák,Le Catacombe,地下墓所,태고의 무덤,Katakumby,As Catacumbas,Os Túmulos,Catacombele,Катакомбы,Катакомбе +The Labyrinth,HHUSTR_E2M6,,,,Labyrint,Das Labyrinth,,,El Laberinto,,Labyrintti,Le Labyrinthe,A Labirintus,Il Labirinto,迷宮,미궁,Labirynt,O Labirinto,,Labirintul,Лабиринт,Лавиринт +The Great Hall,HHUSTR_E2M7,,,,Velký sál,Die große Halle,,,El Gran Salón,,Suuri halli,Le Grand Hall,A Nagy Folyosó,La Grande Sala,大公会堂,대회관,Wielki Hol,O Grande Salão,,Sala cea mare,Большой зал,Велика дворана +The Portals of Chaos,HHUSTR_E2M8,,,,Portály chaosu,Das Portal des Chaos,,,Los Portales del Caos,,Kaaoksen portaalit,Le Portail du Chaos,A Káosz Portáljai,I Portali del Caos,混沌への門,혼돈의 차원문,Portale Chaosu,Os Portais do Caos,,Portalurile de haos,Порталы хаоса,Портали хаоса +The Glacier,HHUSTR_E2M9,,,,Ledovec,Der Gletscher,,,El Glaciar,,Jäätikkö,Le Glacier,A Gleccser,Il Ghiacciaio,氷河,빙하 구역,Lodowiec,A Geleira,O Glaciar,Ghețarul,Ледник,Глечер +The Storehouse,HHUSTR_E3M1,,,,Skladiště,Die Lagerhalle,,,El Almacén,,Varasto,L'Entrepôt,A Raktár,Il Magazzino,倉庫,저장고,Magazyn,O Armazém,,Depozitul,Кладовая,Складиште +The Cesspool,HHUSTR_E3M2,,,,Žumpa,Die Latrine,,,El Pozo,,Likakaivo,Le Bourbier,A Pöcegödör,Il Pozzo Nero,汚水層,불결한 장소,Szambo,A Fossa,,Haznaua,Сточный колодец,Септичка јама +The Confluence,HHUSTR_E3M3,,,,Soutok,Die Vereinigung,,,La Confluencia,,Yhtymäkohta,La Confluence,A Kereszteződés,La Confluenza,合流点,합류점,Spływ,A Confluência,,Confluența,Слияние,Ушће +The Azure Fortress,HHUSTR_E3M4,,,,Azurová pevnost,Die himmelblaue Festung,,,La Fortaleza de Azur,,Sininen linnoitus,La Fortresse d'Azur,Az Azúr Erőd,La Fortezza Azzurra,紺碧の要塞,청천의 요새,Lazurowa Forteca,A Fortaleza Azul,,Fortăreața de azur,Лазурная крепость,Азурна дврђава +The Ophidian Lair,HHUSTR_E3M5,,,,Hadí doupě,Das Schlangennest,,,La Guarida Ofídica,,Käärmeiden pesä,Le Repaire des Ophidiens,Az Opfidiánok Fészke,L'antro degli Ophidian,オフィディアンの塒,오피디안의 소굴,Gniazdo Węży,A Cova dos Ofídios,,Cuibul ofidienilor,Логово офидианов,Змијска јазбина +The Halls of Fear,HHUSTR_E3M6,,,,Chodby strachu,Die Hallen der Angst,,,Los Salones del Miedo,,Pelon salit,Les Couloirs de la Peur,A Félelem Folyosói,Le Sale della Paura,恐怖の館,공포의 회관,Korytarze Strachu,Os Salões do Medo,,Sălile groazei,Залы страха,Дворана страха +The Chasm,HHUSTR_E3M7,,,,Propast,Der Abgrund,,,El Abismo,,Rotko,Le Gouffre,A Szakadék,L'abisso,裂け目,깊은 골,Przepaść,O Abismo,,Prăpastia,Пропасть,Понор лаве +D'Sparil's Keep,HHUSTR_E3M8,,,,D'Sparilova pevnost,D'Sparils Außenposten,,,Guarida de D'Sparil,,D'Sparilin linna,Le Donjon de D'Sparil,D'Sparil Terme,La Dimora di D'sparil,デ’スパリルの間,드'스파릴의 초소,Baszta D'Sparila,Fortaleza de D'Sparil,,Palatul lui D'sparil,Крепость Д'Спарила,Д'Спарилова кула +The Aquifer,HHUSTR_E3M9,,,,Zvodeň,Der Wasserspeicher,,,El Acuífero,,Akviferi,L'Aquifère,A Víztorony,L'acquedotto,帯水層,대수층,Wodociąg,O Aquífero,,Galerii acvifere,Водоносный слой,Водоносник +Catafalque,HHUSTR_E4M1,,,,Katafalk,Katafalk,,,Catafalco,,Katafalkki,Le Catafalque,Ravatal,Catafalco,棺台,관대,Katafalk,Catafalco,,Catafalc,Катафалк,Одар +Blockhouse,HHUSTR_E4M2,,,,Tvrzka,Blockhaus,,,Fortín,,Linnoitus,Le Fortin,Gerendaház,Blocco di Case,丸太小屋,특화점,Blokhauz,O Forte,,Fort,Укрытие,Бункер +Ambulatory,HHUSTR_E4M3,,,,Ochoz,Wandelgang,,,Ambulatorio,,Kuorikäytävä,Le Déambulatoire,Kerengő,Ambulatorio,遊歩道,유보장,Krużganek,Ambulatório,,,Монастырская галерея,Амбуланта +Sepulcher,HHUSTR_E4M4,,,,Hrob,Grabstätte,,,Sepulcro,,Hautakammio,Le Sépulcre,Síremlék,Sepolcro,埋葬所,매장소,Grób,Sepulcro,,Sepulcru,Гробница,Гробница +Great Stair,HHUSTR_E4M5,,,,Velké schodiště,Große Treppe,,,Gran Escalera,,Suuret portaat,Le Grand Escalier,Nagy Lépcső,Grande Scala,大階段,특급 계단,Wielka Gwiazda,Grande Escada,,Scara cea mare,Великая лестница,Велики степеник +Halls of the Apostate,HHUSTR_E4M6,,,,Chodby odpadlictví,Halle des Abtrünnigen,,,Salas de los Apóstatas,,Luopioiden salit,Les Halls de l'Apôtre,A Hitehagyott Átjárója,Sale dell'Apostata,背教者の館,배교자의 회관,Korytarze Odszczepieńca,Os Salões dos Apóstatas,,Sălile apostatului,Залы отступников,Дворана апостола +Ramparts of Perdition,HHUSTR_E4M7,,,,Náspy zatracení,Wälle der Verdammnis,,,Murallas de la Perdición,,Kadotuksen vallit,Les Remparts de la Perdition,A Kárhozat Támasza,Torrioni della Perdizione,破滅の塁壁,파멸의 성벽,Wał Potępienia,Muralhas da Perdição,,Meterezele pierzaniei,Твердыни погибели,Бедем пропасти +Shattered Bridge,HHUSTR_E4M8,,,,Rozbitý most,Zerstörte Brücke,,,Puente Destrozado,,Särkynyt silta,Le Pont effondré,A Szétesett Híd,Ponte Distrutto,崩落の橋,붕괴된 다리,Zniszczony Most,Ponte Despedaçada,,Podul dărâmat,Разрушенный мост,Поломљен мост +Mausoleum,HHUSTR_E4M9,,,,Mauzoleum,,,,Mausoleo,,Mausoleumi,Le Mausolée,Mauzóleum,Mausoleo,霊廟,대영묘,Mauzoleum,Mausoléu,,Mausoleu,Мавзолей,Маузолеј +Ochre Cliffs,HHUSTR_E5M1,,,,Okrové útesy,Ockerfarbene Klippen,,,Acantilados Ocres,,Okrajyrkänteet,Les Falaises Ochre,Okker Szakadékok,Colline Ocra,黄土絶壁,황토 산맥,Ochrowe Klify,Penhascos Ocres,,Stâncile de ocru,Охровые утёсы,Окер брда +Rapids,HHUSTR_E5M2,,,,Peřeje,Stromschnellen,,,Rápidos,,Koski,Les Rapides,Zuhatagok,Rapide,奔流,여울,Katarakty,Corredeiras,,Ape repezi,Стремнина,Брзак +Quay,HHUSTR_E5M3,,,,Nábřeží,Kai,,,Muelle,,Satamalaituri,Le Quai,Rakpart,Banchina,岸壁,부두,Wir,Cais,,Chei,Причал,10 +Courtyard,HHUSTR_E5M4,,,,Nádvoří,Schlosshof,,,Patio,,Linnanpiha,La Cour,Pitvar,Cortile,中庭,안마당,Dziedziniec,Pátio,,Curte,Внутренний двор,Двориште Hydratyr,HHUSTR_E5M5,,,,Hydratýr,,,,Hydratyr,,,L'Hydratyr,Hidratáló,Hydratyr,ヒュドラテュール,식수공급처,Hydratyr,,,Hidratir,Гидротир,Канализација -Colonnade,HHUSTR_E5M6,,,,Kolonáda,Kolonnaden,,,Columnata,,,La Colonnade,Kolonnád,Colonnato,柱廊,열주의 길,Kolumnada,Colunata,,Colonadă,Колоннада,Колонада -Foetid Manse,HHUSTR_E5M7,,,,Smrdutá vila,Stinkendes Pfarrhaus,,,Mansión Fétida,,,Le Presbytère Fétide,Bűzös Parókia,Fetido Castello,悪臭の牧師館,역겨운 목사관,Cuchnąca Plebania,Mansão Fétida,,,Зловонный особняк,Фетидна кућа -Field of Judgement,HHUSTR_E5M8,,,,Soudná pole,Richtstätte,,,Campo de Juicio,,,Les Champs du Jugement,Az Itélet Mezeje,Campo del Giudizio,審判之地,심판의 평야,Pole Sądu,Campo do Julgamento,,Câmpul de Judecată,Поле высшего суда,Чистилиште -Skein of D'sparil,HHUSTR_E5M9,,,,Hejno D'Sparila,DSparils Bau,,,Madeja de D'Sparil,,,L'échevaux de D'Sparil,D'Sparil Káosza,Groviglio di D'sparil,デ'スパリルの枷,드'스파릴의 타래,Motek D'Sparila,Meada de D'Sparil,,,Путаница Д'Спарила,Реке Д'Спарила +Colonnade,HHUSTR_E5M6,,,,Kolonáda,Kolonnaden,,,Columnata,,Pylväikkö,La Colonnade,Kolonnád,Colonnato,柱廊,열주의 길,Kolumnada,Colunata,,Colonadă,Колоннада,Колонада +Foetid Manse,HHUSTR_E5M7,,,,Smrdutá vila,Stinkendes Pfarrhaus,,,Mansión Fétida,,Löyhkäävä kartano,Le Presbytère Fétide,Bűzös Parókia,Fetido Castello,悪臭の牧師館,역겨운 목사관,Cuchnąca Plebania,Mansão Fétida,,,Зловонный особняк,Фетидна кућа +Field of Judgement,HHUSTR_E5M8,,,,Soudná pole,Richtstätte,,,Campo de Juicio,,Tuomion kenttä,Les Champs du Jugement,Az Itélet Mezeje,Campo del Giudizio,審判之地,심판의 평야,Pole Sądu,Campo do Julgamento,,Câmpul de Judecată,Поле высшего суда,Чистилиште +Skein of D'sparil,HHUSTR_E5M9,,,,Hejno D'Sparila,DSparils Bau,,,Madeja de D'Sparil,,D'Sparilin vyyhti,L'échevaux de D'Sparil,D'Sparil Káosza,Groviglio di D'sparil,デ'スパリルの枷,드'스파릴의 타래,Motek D'Sparila,Meada de D'Sparil,,,Путаница Д'Спарила,Реке Д'Спарила ,,Strife,,,,,,,,,,,,,,,,,,,, -AREA 1: Sanctuary,TXT_STRIFE_MAP01,,,,ZÓNA 1: Svatyně,ZONE 1: Heiligtum,,,ÁREA 1: Santuario,,,ZONE 1: Sanctuaire,1. Terület: Szentély,AREA 1: Santuario,エリア 1: 聖域,구역 1: 성소,Strefa 1: Sanktuarium,Área 1: Santuário,,ZONA 1: Sanctuar,МЕСТНОСТЬ 1: Святилище, -AREA 2: Town,TXT_STRIFE_MAP02,,,,ZÓNA 2: Město,ZONE 2: Stadt,,,ÁREA 2: Pueblo,,,ZONE 2: Ville,2. Terület: Város,AREA 2: Città,"エリア 2: 町 +AREA 1: Sanctuary,TXT_STRIFE_MAP01,,,,ZÓNA 1: Svatyně,ZONE 1: Heiligtum,,,ÁREA 1: Santuario,,ALUE 1: Turvapaikka,ZONE 1: Sanctuaire,1. Terület: Szentély,AREA 1: Santuario,エリア 1: 聖域,구역 1: 성소,Strefa 1: Sanktuarium,Área 1: Santuário,,ZONA 1: Sanctuar,МЕСТНОСТЬ 1: Святилище, +AREA 2: Town,TXT_STRIFE_MAP02,,,,ZÓNA 2: Město,ZONE 2: Stadt,,,ÁREA 2: Pueblo,,ALUE 2: Kylä,ZONE 2: Ville,2. Terület: Város,AREA 2: Città,"エリア 2: 町 ",구역 2: 마을,Strefa 2: Miasto,Área 2: Vila,,ZONA 2: Oraș,МЕСТНОСТЬ 2: Город, -AREA 3: Front Base,TXT_STRIFE_MAP03,,,,ZÓNA 3: Základna Fronty,ZONE 3: Basis der Front,,,ÁREA 3: Base del Frente,,,ZONE 3: Base du Front,3. Terület: Elülső bázis,AREA 3: Base del Fronte,エリア 3: フロント基地,구역 3: 프론트 기지,Strefa 3: Baza Frontu,Área 3: Base da Frente,,ZONA 3: Baza Frontului,МЕСТНОСТЬ 3: База Сопротивления, -AREA 4: Power Station,TXT_STRIFE_MAP04,,,,ZÓNA 4: Elektrárna,ZONE 4: Kraftwerk,,,ÁREA 4: Central Eléctrica,,,ZONE 4: Centrale,4. Terület: Erőmű,AREA 4: Centrale Elettrica,エリア 4: 発電所,구역 4: 발전소,Strefa 4: Elektrownia,Área 4: Usina de Energia,Área 4: Central Energética,,МЕСТНОСТЬ 4: Электростанция, -AREA 5: Prison,TXT_STRIFE_MAP05,,,,ZÓNA 5: Vězení,ZONE 5: Gefängnis,,,ÁREA 5: Prisión,,,ZONE 5: Prison,5. Terület: Börtön,AREA 5: Carcere,エリア 5: 刑務所,구역 5: 감옥,Strefa 5: Więzienie,Área 5: Prisão,,ZONA 5: Închisoare,МЕСТНОСТЬ 5: Тюрьма, -AREA 6: Sewers,TXT_STRIFE_MAP06,,,,ZÓNA 6: Kanály,ZONE 6: Kanalisation,,,ÁREA 6: Alcantarillas,,,ZONE 6: Egouts,6. Terület: Szennyvízcsatornák,AREA 6: Fogne,エリア 6: 下水道,구역 6: 하수도,Strefa 6: Kanały,Área 6: Esgoto,,ZONA 6: Canal,МЕСТНОСТЬ 6: Канализация, -AREA 7: Castle,TXT_STRIFE_MAP07,,,,ZÓNA 7: Hrad,ZONE 7: Burg,,,ÁREA 7: Castillo,,,ZONE 7: Château,7. Terület: Vár,AREA 7: Castello,エリア 7: 城,구역 7: 성,Strefa 7: Zamek,Área 7: Castelo,,ZONA 7: Castel,МЕСТНОСТЬ 7: Замок, -AREA 8: Audience Chamber,TXT_STRIFE_MAP08,,,,ZÓNA 8: Audienční sál,ZONE 8: Audienzsaal,,,ÁREA 8: Cámara de Audiencias,,,ZONE 8: Chambre d'Audience,8. Terület: Nézőtér,AREA 8: Sala delle Udienze,エリア 8: 観客席,구역 8: 알현실,Strefa 8: Izba Audiencji,Área 8: Câmara de Audiências,,ZONA 8: Camera de audiențe,МЕСТНОСТЬ 8: Приёмная, -AREA 9: Castle: Programmer's Keep,TXT_STRIFE_MAP09,,,,ZÓNA 9: Hrad: Programátorovo doupě,ZONE 9: Burg: Unterkunft des Programmierers,,,ÁREA 9: Castillo: Guarida del Programador,,,ZONE 9: Château: Donjon du Programmeur,9. Terület: Vár: Programozó parcellája,AREA 9: Castello: Dimora del Programmatore,エリア 9: 城内:プログラマーの間,구역 9: 성: 프로그래머의 성채,Strefa 9: Zamek: Baszta Programisty,Área 9: Castelo: Torre do Programador,,,МЕСТНОСТЬ 9: Замок (Цитадель Программиста), -AREA 10: New Front Base,TXT_STRIFE_MAP10,,,,ZÓNA 10: Nová základna Fronty,ZONE 10: Neue Basis der Front,,,ÁREA 10: Nueva Base del Frente,,,ZONE 10: Nouvelle Base du Front,10. Terület: Új első bázis,AREA 10: Nuova Base del Fronte,エリア 10: 新フロント基地,구역 10: 새 프론트 기지,Strefa 10: Nowa Baza Frontu,Área 10: Nova Base da Frente,,ZONA 10: Noua bază a Frontului,МЕСТНОСТЬ 10: Новая база Сопротивления, -AREA 11: Borderlands,TXT_STRIFE_MAP11,,,,ZÓNA 11: Pohraničí,ZONE 11: Grenzgebiete,,,ÁREA 11: Tierras Fronterizas,,,ZONE 11: Terres Sauvages,11. Terület: Peremvidék,AREA 11: Lande di Confine,エリア 11: 国境地帯,구역 11: 접경지,Strefa 11: Pogranicze,Área 11: Fronteira,,ZONA 11: Frontiere,МЕСТНОСТЬ 11: Пограничье, -AREA 12: The Temple of the Oracle,TXT_STRIFE_MAP12,,,,ZÓNA 12: Chrám Věštce,ZONE 12: Der Tempel des Orakels,,,ÁREA 12: El Templo del Oráculo,,,ZONE 12: Temple de l'Oracle,12. Terület: Az Orákulum Temploma,AREA 12: Il Tempio dell'Oracolo,エリア 12: オラクルの神殿,구역 12: 오라클의 신전,Strefa 12: Świątynia Wyroczni,Área 12: O Templo do Oráculo,,ZONA 12: Templul Oracolului,МЕСТНОСТЬ 12: Храм Оракула, -AREA 13: Catacombs,TXT_STRIFE_MAP13,,,,ZÓNA 13: Katakomby,ZONE 13: Katakomben,,,ÁREA 13: Catacumbas,,,ZONE 13: Catacombes,13. Terület: Katakombák,AREA 13: Catacombe,エリア 13: 地下墓所,구역 13: 고대 묘지,Strefa 13: Katakumby,Área 13: Catacumbas,Área 13: Túmulos,ZONA 13: Catacombe,МЕСТНОСТЬ 13: Катакомбы, -AREA 14: Mines,TXT_STRIFE_MAP14,,,,ZÓNA 14: Doly,ZONE 14: Die Minen,,,ÁREA 14: Minas,,,ZONE 14: Mines,14. Terület: Bánya,AREA 14: Miniere,エリア 14: 鉱山,구역 14: 광산,Strefa 14: Kopalnia,Área 14: Minas,,ZONA 14: Mine,МЕСТНОСТЬ 14: Шахты, -AREA 15: Fortress: Administration,TXT_STRIFE_MAP15,,,,ZÓNA 15: Pevnost: Administrace,ZONE 15: Festung: Administration,,,ÁREA 15: Fortaleza: Administración,,,ZONE 15: Forteresse: Administration,15. Terület: Erőd: Adminisztráció,AREA 15: Fortezza: Amministrazione,エリア 15: 要塞:管理室,구역 15: 요새: 중앙 관리소,Strefa 15: Forteca: Administracja,Área 15: Fortaleza: Administração,,ZONA 15: Fortăreața: Administrația,МЕСТНОСТЬ 15: Крепость (Администрация), -AREA 16: Fortress: Bishop's Tower,TXT_STRIFE_MAP16,,,,ZÓNA 16: Pevnost: Biskupova věž,ZONE 16: Festung: Bischofsturm,,,ÁREA 16: Fortaleza: Torre del Obispo,,,ZONE 16: Forteresse: Tour de l'évèque,16. Terület: Erőd: Püspök tornya,AREA 16: Fortezza: Torre del Vescovo,エリア 16: 要塞:ビショップの塔,구역 16: 요새: 비숍의 탑,Strefa 16: Forteca: Wieża Biskupa,Área 16: Fortaleza: Torre do Bispo,,ZONA 16: Fortăreața: Turnul Episcopului,МЕСТНОСТЬ 16: Крепость (Башня Епископа), -AREA 17: Fortress: The Bailey,TXT_STRIFE_MAP17,,,,ZÓNA 17: Pevnost: Vnější opevnění,ZONE 17: Festung: Vorhof,,,ÁREA 17: Fortaleza: El Patio,,,ZONE 17: Forteresse: Mur d'enceinte,17. Terület: Erőd: Várfal,AREA 17: Fortezza: Bastione,エリア 17: 要塞:ベイリー,구역 17: 요새: 안뜰,Strefa 17: Forteca: Mur Obronny,Área 17: Fortaleza: O Pátio,,,МЕСТНОСТЬ 17: Крепость (Двор), -AREA 18: Fortress: Stores,TXT_STRIFE_MAP18,,,,ZÓNA 18: Pevnost: Sklady,ZONE 18: Festung: Lager,,,ÁREA 18: Fortaleza: Almacenes,,,ZONE 18: Forteresse: Réserves,18. Terület: Erőd: Üzletek,AREA 18: Fortezza: Negozi,エリア 18: 要塞:商店,구역 18: 요새: 격납고,Strefa 18: Forteca: Sklepy,Área 18: Fortaleza: Reservas,,ZONA 18: Fortăreața: Depozite,МЕСТНОСТЬ 18: Крепость (Склады), -AREA 19: Fortress: Security Complex,TXT_STRIFE_MAP19,,,,ZÓNA 19: Pevnost: Bezpečnostní komplex,ZONE 19: Festung: Sicherheitsanlage,,,ÁREA 19: Fortaleza: Complejo de Seguridad,,,ZONE 19: Forteresse: Complexe Sécurité,19. Terület: Erőd: Biztonsági Komplexum,AREA 19: Fortezza: Complesso di Sicurezza,エリア 19: 要塞:複合警備所,구역 19: 요새: 보안 담당 기지,Strefa 19: Forteca: Kompleks Ochronny,Área 19: Fortaleza: Complexo de Segurança,,,МЕСТНОСТЬ 19: Крепость (Охранный комплекс), -AREA 20: Factory: Receiving,TXT_STRIFE_MAP20,,,,ZÓNA 20: Továrna: Příjem,ZONE 20: Fabrik: Empfang,,,ÁREA 20: Fábrica: Recepción,,,ZONE 20: Usine: Réception,20. Terület: Gyár: Beszállítás,AREA 20: Fabbrica: Ricevimento,"エリア 20: 工場:受取所 +AREA 3: Front Base,TXT_STRIFE_MAP03,,,,ZÓNA 3: Základna Fronty,ZONE 3: Basis der Front,,,ÁREA 3: Base del Frente,,ALUE 3: Etutukikohta,ZONE 3: Base du Front,3. Terület: Elülső bázis,AREA 3: Base del Fronte,エリア 3: フロント基地,구역 3: 프론트 기지,Strefa 3: Baza Frontu,Área 3: Base da Frente,,ZONA 3: Baza Frontului,МЕСТНОСТЬ 3: База Сопротивления, +AREA 4: Power Station,TXT_STRIFE_MAP04,,,,ZÓNA 4: Elektrárna,ZONE 4: Kraftwerk,,,ÁREA 4: Central Eléctrica,,ALUE 4: Voimalaitos,ZONE 4: Centrale,4. Terület: Erőmű,AREA 4: Centrale Elettrica,エリア 4: 発電所,구역 4: 발전소,Strefa 4: Elektrownia,Área 4: Usina de Energia,Área 4: Central Energética,,МЕСТНОСТЬ 4: Электростанция, +AREA 5: Prison,TXT_STRIFE_MAP05,,,,ZÓNA 5: Vězení,ZONE 5: Gefängnis,,,ÁREA 5: Prisión,,ALUE 5: Vankila,ZONE 5: Prison,5. Terület: Börtön,AREA 5: Carcere,エリア 5: 刑務所,구역 5: 감옥,Strefa 5: Więzienie,Área 5: Prisão,,ZONA 5: Închisoare,МЕСТНОСТЬ 5: Тюрьма, +AREA 6: Sewers,TXT_STRIFE_MAP06,,,,ZÓNA 6: Kanály,ZONE 6: Kanalisation,,,ÁREA 6: Alcantarillas,,ALUE 6: Viemärit,ZONE 6: Egouts,6. Terület: Szennyvízcsatornák,AREA 6: Fogne,エリア 6: 下水道,구역 6: 하수도,Strefa 6: Kanały,Área 6: Esgoto,,ZONA 6: Canal,МЕСТНОСТЬ 6: Канализация, +AREA 7: Castle,TXT_STRIFE_MAP07,,,,ZÓNA 7: Hrad,ZONE 7: Burg,,,ÁREA 7: Castillo,,ALUE 7: Linna,ZONE 7: Château,7. Terület: Vár,AREA 7: Castello,エリア 7: 城,구역 7: 성,Strefa 7: Zamek,Área 7: Castelo,,ZONA 7: Castel,МЕСТНОСТЬ 7: Замок, +AREA 8: Audience Chamber,TXT_STRIFE_MAP08,,,,ZÓNA 8: Audienční sál,ZONE 8: Audienzsaal,,,ÁREA 8: Cámara de Audiencias,,ALUE 8: Yleisösali,ZONE 8: Chambre d'Audience,8. Terület: Nézőtér,AREA 8: Sala delle Udienze,エリア 8: 観客席,구역 8: 알현실,Strefa 8: Izba Audiencji,Área 8: Câmara de Audiências,,ZONA 8: Camera de audiențe,МЕСТНОСТЬ 8: Приёмная, +AREA 9: Castle: Programmer's Keep,TXT_STRIFE_MAP09,,,,ZÓNA 9: Hrad: Programátorovo doupě,ZONE 9: Burg: Unterkunft des Programmierers,,,ÁREA 9: Castillo: Guarida del Programador,,ALUE 9: Linna: Ohjelmoijan asema,ZONE 9: Château: Donjon du Programmeur,9. Terület: Vár: Programozó parcellája,AREA 9: Castello: Dimora del Programmatore,エリア 9: 城内:プログラマーの間,구역 9: 성: 프로그래머의 성채,Strefa 9: Zamek: Baszta Programisty,Área 9: Castelo: Torre do Programador,,,МЕСТНОСТЬ 9: Замок (Цитадель Программиста), +AREA 10: New Front Base,TXT_STRIFE_MAP10,,,,ZÓNA 10: Nová základna Fronty,ZONE 10: Neue Basis der Front,,,ÁREA 10: Nueva Base del Frente,,ALUE 10: Uusi etutukikohta,ZONE 10: Nouvelle Base du Front,10. Terület: Új első bázis,AREA 10: Nuova Base del Fronte,エリア 10: 新フロント基地,구역 10: 새 프론트 기지,Strefa 10: Nowa Baza Frontu,Área 10: Nova Base da Frente,,ZONA 10: Noua bază a Frontului,МЕСТНОСТЬ 10: Новая база Сопротивления, +AREA 11: Borderlands,TXT_STRIFE_MAP11,,,,ZÓNA 11: Pohraničí,ZONE 11: Grenzgebiete,,,ÁREA 11: Tierras Fronterizas,,ALUE 11: Rajamaat,ZONE 11: Terres Sauvages,11. Terület: Peremvidék,AREA 11: Lande di Confine,エリア 11: 国境地帯,구역 11: 접경지,Strefa 11: Pogranicze,Área 11: Fronteira,,ZONA 11: Frontiere,МЕСТНОСТЬ 11: Пограничье, +AREA 12: The Temple of the Oracle,TXT_STRIFE_MAP12,,,,ZÓNA 12: Chrám Věštce,ZONE 12: Der Tempel des Orakels,,,ÁREA 12: El Templo del Oráculo,,ALUE 12: Oraakkelin temppeli,ZONE 12: Temple de l'Oracle,12. Terület: Az Orákulum Temploma,AREA 12: Il Tempio dell'Oracolo,エリア 12: オラクルの神殿,구역 12: 오라클의 신전,Strefa 12: Świątynia Wyroczni,Área 12: O Templo do Oráculo,,ZONA 12: Templul Oracolului,МЕСТНОСТЬ 12: Храм Оракула, +AREA 13: Catacombs,TXT_STRIFE_MAP13,,,,ZÓNA 13: Katakomby,ZONE 13: Katakomben,,,ÁREA 13: Catacumbas,,ALUE 13: Katakombit,ZONE 13: Catacombes,13. Terület: Katakombák,AREA 13: Catacombe,エリア 13: 地下墓所,구역 13: 고대 묘지,Strefa 13: Katakumby,Área 13: Catacumbas,Área 13: Túmulos,ZONA 13: Catacombe,МЕСТНОСТЬ 13: Катакомбы, +AREA 14: Mines,TXT_STRIFE_MAP14,,,,ZÓNA 14: Doly,ZONE 14: Die Minen,,,ÁREA 14: Minas,,ALUE 14: Kaivokset,ZONE 14: Mines,14. Terület: Bánya,AREA 14: Miniere,エリア 14: 鉱山,구역 14: 광산,Strefa 14: Kopalnia,Área 14: Minas,,ZONA 14: Mine,МЕСТНОСТЬ 14: Шахты, +AREA 15: Fortress: Administration,TXT_STRIFE_MAP15,,,,ZÓNA 15: Pevnost: Administrace,ZONE 15: Festung: Administration,,,ÁREA 15: Fortaleza: Administración,,ALUE 15: Linnoitus: hallinto,ZONE 15: Forteresse: Administration,15. Terület: Erőd: Adminisztráció,AREA 15: Fortezza: Amministrazione,エリア 15: 要塞:管理室,구역 15: 요새: 중앙 관리소,Strefa 15: Forteca: Administracja,Área 15: Fortaleza: Administração,,ZONA 15: Fortăreața: Administrația,МЕСТНОСТЬ 15: Крепость (Администрация), +AREA 16: Fortress: Bishop's Tower,TXT_STRIFE_MAP16,,,,ZÓNA 16: Pevnost: Biskupova věž,ZONE 16: Festung: Bischofsturm,,,ÁREA 16: Fortaleza: Torre del Obispo,,ALUE 16: Linnoitus: Piispan torni,ZONE 16: Forteresse: Tour de l'évèque,16. Terület: Erőd: Püspök tornya,AREA 16: Fortezza: Torre del Vescovo,エリア 16: 要塞:ビショップの塔,구역 16: 요새: 비숍의 탑,Strefa 16: Forteca: Wieża Biskupa,Área 16: Fortaleza: Torre do Bispo,,ZONA 16: Fortăreața: Turnul Episcopului,МЕСТНОСТЬ 16: Крепость (Башня Епископа), +AREA 17: Fortress: The Bailey,TXT_STRIFE_MAP17,,,,ZÓNA 17: Pevnost: Vnější opevnění,ZONE 17: Festung: Vorhof,,,ÁREA 17: Fortaleza: El Patio,,ALUE 17: Linnoitus: ulkomuuri,ZONE 17: Forteresse: Mur d'enceinte,17. Terület: Erőd: Várfal,AREA 17: Fortezza: Bastione,エリア 17: 要塞:ベイリー,구역 17: 요새: 안뜰,Strefa 17: Forteca: Mur Obronny,Área 17: Fortaleza: O Pátio,,,МЕСТНОСТЬ 17: Крепость (Двор), +AREA 18: Fortress: Stores,TXT_STRIFE_MAP18,,,,ZÓNA 18: Pevnost: Sklady,ZONE 18: Festung: Lager,,,ÁREA 18: Fortaleza: Almacenes,,ALUE 18: Linnoitus: varastot,ZONE 18: Forteresse: Réserves,18. Terület: Erőd: Üzletek,AREA 18: Fortezza: Negozi,エリア 18: 要塞:商店,구역 18: 요새: 격납고,Strefa 18: Forteca: Sklepy,Área 18: Fortaleza: Reservas,,ZONA 18: Fortăreața: Depozite,МЕСТНОСТЬ 18: Крепость (Склады), +AREA 19: Fortress: Security Complex,TXT_STRIFE_MAP19,,,,ZÓNA 19: Pevnost: Bezpečnostní komplex,ZONE 19: Festung: Sicherheitsanlage,,,ÁREA 19: Fortaleza: Complejo de Seguridad,,ALUE 19: Linnoitus: turvakompleksi,ZONE 19: Forteresse: Complexe Sécurité,19. Terület: Erőd: Biztonsági Komplexum,AREA 19: Fortezza: Complesso di Sicurezza,エリア 19: 要塞:複合警備所,구역 19: 요새: 보안 담당 기지,Strefa 19: Forteca: Kompleks Ochronny,Área 19: Fortaleza: Complexo de Segurança,,,МЕСТНОСТЬ 19: Крепость (Охранный комплекс), +AREA 20: Factory: Receiving,TXT_STRIFE_MAP20,,,,ZÓNA 20: Továrna: Příjem,ZONE 20: Fabrik: Empfang,,,ÁREA 20: Fábrica: Recepción,,ALUE 20: Tehdas: vastaanotto,ZONE 20: Usine: Réception,20. Terület: Gyár: Beszállítás,AREA 20: Fabbrica: Ricevimento,"エリア 20: 工場:受取所 ",구역 20: 공장: 수납구역,Strefa 20: Fabryka: Odbiór,Área 20: Fábrica: Recebimento,,,МЕСТНОСТЬ 20: Фабрика (Приём), -AREA 21: Factory: Manufacturing,TXT_STRIFE_MAP21,,,,ZÓNA 21: Továrna: Výroba,ZONE 21: Fabrik: Herstellung,,,ÁREA 21: Fábrica: Manufactura,,,ZONE 21: Usine: Manufacture,21. Terület: Gyár: Sorozatgyártás,AREA 21: Fabbrica: Manifattura,エリア 21: 工場:製造機関,구역 21: 공장: 조립시설,Strefa 21: Fabryka: Przetwórstwo,Área 21: Fábrica: Manufatura,,,МЕСТНОСТЬ 21: Фабрика (Обработка), -AREA 22: Factory: Forge,TXT_STRIFE_MAP22,,,,ZÓNA 22: Továrna: Kovárna,ZONE 22: Fabrik: Schmiede,,,ÁREA 22: Fábrica: Forja,,,ZONE 22: Usine: Forge,22. Terület: Gyár: Kohó,AREA 22: Fabbrica: Fucina,エリア 22: 工場:鉄工所,구역 22: 공장: 제련소,Strefa 22: Fabryka: Kuźnia,Área 22: Fábrica: Forja,,ZONA 22: Fabrica: Forja,МЕСТНОСТЬ 22: Фабрика (Кузня), -AREA 23: Order Commons,TXT_STRIFE_MAP23,,,,ZÓNA 23: Náměstí Řádu,ZONE 23: Mensa des Ordens,,,ÁREA 23: Condominios de la Orden,,,ZONE 23: Mess de l'Ordre,23. Terület: Rendi köztér,AREA 23: Camera dell'Ordine,エリア 23: オーダーコモンズ,구역 23: 오더 식당가,Strefa 23: Wikt Zakonu,Área 23: Câmara da Ordem,,,МЕСТНОСТЬ 23: Поселение Ордена, -AREA 24: Factory: Conversion Chapel,TXT_STRIFE_MAP24,,,,ZÓNA 24: Továrna: Kaple konverze,ZONE 24: Umwandlungskapelle,,,ÁREA 24: Fábrica: Capilla de Conversión,,,ZONE 24: Usine: Chapelle de Conversion,24. Terület: A megtérés kápolnája,AREA 24: Fabbrica: Cappella di Conversione,エリア 24: 工場:改宗礼拝堂,구역 24: 공장: 전향실,Strefa 24: Fabryka: Kaplica Przemiany,Área 24: Fábrica: Capela de Conversão,,,МЕСТНОСТЬ 24: Часовня обращения, -AREA 25: Catacombs: Ruined Temple,TXT_STRIFE_MAP25,,,,ZÓNA 25: Katakomby: Zničený chrám,ZONE 25: Katakomben: Zerstörter Tempel,,,ÁREA 25: Catacumbas: Templo Arruinado,,,ZONE 25: Catacombes: Temple Ruiné,25. Terület: Katakombák: Romtemplom,AREA 25: Catacombe: Tempio in Rovina,エリア 25: 地下墓所:没落した寺院,구역 25: 고대 묘지: 무너진 사원,Strefa 25: Katakumby: Zrujnowana Świątynia,Área 25: Catacumbas: Templo Arruinado,Área 25: Túmulos: Templo Arruinado,,МЕСТНОСТЬ 25: Катакомбы (Руины храма), -AREA 26: Proving Grounds,TXT_STRIFE_MAP26,,,,ZÓNA 26: Vojenský újezd,ZONE 26: Testgelände,,,ÁREA 26: Campo de Pruebas,,,ZONE 26: Terrain d'entraînement,26. Terület: Ígéretes föld,AREA 26: Banco di Prova,エリア 26: 試練場,구역 26: 증명의 전장,Strefa 26: Poligon Wojskowy,Área 26: Campo de Treinamento,Área 26: Campo de Treino,,МЕСТНОСТЬ 26: Испытательный полигон, -AREA 27: The Lab,TXT_STRIFE_MAP27,,,,ZÓNA 27: Laboratoř,ZONE 27: Das Labor,,,ÁREA 27: El Laboratorio,,,ZONE 27: Laboratoire,27. Terület: A labor,AREA 27: Il Laboratorio,エリア 27: 研究所,구역 27: 연구소,Strefa 27: Laboratorium,Área 27: O Laboratório,,ZONA 27: Laboratorul,МЕСТНОСТЬ 27: Лаборатория, -AREA 28: Alien Ship,TXT_STRIFE_MAP28,,,,ZÓNA 28: Mimozemská Loď,ZONE 28: Außerirdisches Schiff,,,ÁREA 28: Nave Alienígena,,,ZONE 28: Vaisseau Alien,28. Terület: Idegen űrhajó,AREA 28: Nave Aliena,エリア 28: エイリアンの船,구역 28: 외계 우주선,Strefa 28: Statek Obcych,Área 28: Nave Alienígena,,ZONA 28: Nava extraterestră,МЕСТНОСТЬ 28: Корабль пришельцев, -AREA 29: Entity's Lair,TXT_STRIFE_MAP29,,,,ZÓNA 29: Doupě Bytosti,ZONE 29: Das Nest der Entität,,,ÁREA 29: Escondite de la Entidad,,,ZONE 29: Demeure de L'Entité,,AREA 29: Tana dell'Entità,エリア 29: エンティティの隠れ家,구역 29: 엔티티의 소굴,Strefa 29: Leże Bytu,Área 29: Covil da Entidade,,ZONA 29: Cuibul Entității,МЕСТНОСТЬ 29: Логово Сущности, -AREA 30: Abandoned Front Base,TXT_STRIFE_MAP30,,,,ZÓNA 30: Opuštěná základna Fronty,ZONE 30: Verlassene Basis der Front,,,ÁREA 30: Base Abandonada del Frente,,,ZONE 30: Base Abandonnée du Front,30. Terület: Elhagyatott Előbázis,AREA 30: Base del Fronte abbandonata,エリア 30: 放棄された基地,구역 30: 버려진 프론트 기지,Strefa 30: Opuszczona Baza Frontu,Área 30: Base da Frente Abandonada,,ZONA 30: Baza abandonată a Frontului,МЕСТНОСТЬ 30: Заброшенная база Сопротивления, -AREA 31: Training Facility,TXT_STRIFE_MAP31,,,,ZÓNA 31: Výcvikové zařízení,ZONE 31: Trainingseinrichtung,,,ÁREA 31: Facilidad de Entrenamiento,,,ZONE 31: Complexe d'Entraînement,31. Terület: Képzési létesítmény,AREA 31: Struttura di Addestramento,エリア 31: 研修施設,구역 31: 훈련 시설,Strefa 31: Centrum Szkoleniowe,Área 31: Instalação de Treinamento,,ZONA 31: Spațiul de antrenament,МЕСТНОСТЬ 31: Тренировочный корпус, -AREA 1: Sanctuary,TXT_STRIFE_MAP32,,,,ZÓNA 1: Útočiště,ZONE 1: Heiligtum,,,ÁREA 1: Santuario,,,ZONE 1: Sanctuaire,1. Terület: Szentély,AREA 1: Santuario,エリア 1: 聖域 ,구역 1: 성소,Strefa 1: Sanktuarium,Área 1: Santuário,,ZONA 1: Sanctuar,МЕСТНОСТЬ 1: Святилище, -AREA 2: Town,TXT_STRIFE_MAP33,,,,ZÓNA 2: Město,ZONE 2: Stadt,,,ÁREA 2: Pueblo,,,ZONE 2: Ville,2. Terület: Város,AREA 2: Città,エリア 2: 町,구역 2: 마을,Strefa 2: Miasto,Área 2: Vila,,ZONA 2: Oraș,МЕСТНОСТЬ 2: Город, -AREA 3: Movement Base,TXT_STRIFE_MAP34,,,,ZÓNA 3: Rebelská základna,ZONE 3: Rebellenbasis,,,ÁREA 3: Base del Movimiento,,,ZONE 3: Base du Front,3. Terület: Mozgalmi Bázis,AREA 3: Base del Movimento,エリア 3: 移転基地,구역 3: 반군 기지,Strefa 3: Baza Ruchu Oporu,Área 3: Base do Movimento,,,МЕСТНОСТЬ 3: База Сопротивления, -AREA 35: Factory: Production,TXT_STRIFE_MAP35,,,,ZÓNA 35: Továrna: Produkce,ZONE 35: Fabrik: Produktion,,,ÁREA 35: Fábrica: Producción,,,ZONE 35: Usine: Production,35. Terület: Gyár: Termelés,AREA 35: Fabbrica: Produzione,エリア 35: 工場 : 生産ライン,구역 35: 공장: 제작실,Strefa 35: Fabryka: Produkcja,Área 35: Fábrica: Produção,,,МЕСТНОСТЬ 35: Фабрика (Производство), -AREA 36: Castle Clash,TXT_STRIFE_MAP36,,,,ZÓNA 36: Střet na hradě,ZONE 36: Burg-Konflikt,,,ÁREA 36: Ataque al Castillo,,,ZONE 36: Bataille du Château,36: Terület: Vári ütközet,AREA 36: Collisione di Castello,エリア 36: キャッスルクラッシュ,구역 36: 성채간의 충돌,Strefa 36: Potyczka w Zamku,Área 36: Ataque ao Castelo,,,МЕСТНОСТЬ 36: Битва в замке, -AREA 37: Killing Grounds,TXT_STRIFE_MAP37,,,,ZÓNA 37: Zabíjecí zahrady,ZONE 37: Kampfgelände,,,ÁREA 37: Campo de Matanza,,,ZONE 37: Zone de Chasse,37. Terület: Gyilkos Vidék,AREA 37: Campi di Uccisione,エリア 37: 殺害者の地,구역 37: 살육의 전장,Strefa 37: Śmiercionośny Grunt,Área 37: Campo de Matança,,,МЕСТНОСТЬ 37: Секторы обстрела, -AREA 38: Ordered Chaos,TXT_STRIFE_MAP38,,,,ZÓNA 38: Nařízený chaos,ZONE 38: Geordnetes Chaos,,,ÁREA 38: Caos Ordenado,,,ZONE 38: Chaos Ordonné,38. Terület: Rendezett Káosz,AREA 38: Caos Ordinato,エリア 38: カオスの秩序,구역 38: 정돈된 혼란,Strefa 38: Uporządkowany Chaos,Área 38: Caos Ordenado,,,МЕСТНОСТЬ 38: Управляемый хаос, +AREA 21: Factory: Manufacturing,TXT_STRIFE_MAP21,,,,ZÓNA 21: Továrna: Výroba,ZONE 21: Fabrik: Herstellung,,,ÁREA 21: Fábrica: Manufactura,,ALUE 21: Tehdas: valmistus,ZONE 21: Usine: Manufacture,21. Terület: Gyár: Sorozatgyártás,AREA 21: Fabbrica: Manifattura,エリア 21: 工場:製造機関,구역 21: 공장: 조립시설,Strefa 21: Fabryka: Przetwórstwo,Área 21: Fábrica: Manufatura,,,МЕСТНОСТЬ 21: Фабрика (Обработка), +AREA 22: Factory: Forge,TXT_STRIFE_MAP22,,,,ZÓNA 22: Továrna: Kovárna,ZONE 22: Fabrik: Schmiede,,,ÁREA 22: Fábrica: Forja,,ALUE 22 Tehdas: paja,ZONE 22: Usine: Forge,22. Terület: Gyár: Kohó,AREA 22: Fabbrica: Fucina,エリア 22: 工場:鉄工所,구역 22: 공장: 제련소,Strefa 22: Fabryka: Kuźnia,Área 22: Fábrica: Forja,,ZONA 22: Fabrica: Forja,МЕСТНОСТЬ 22: Фабрика (Кузня), +AREA 23: Order Commons,TXT_STRIFE_MAP23,,,,ZÓNA 23: Náměstí Řádu,ZONE 23: Mensa des Ordens,,,ÁREA 23: Condominios de la Orden,,ALUE 23: Veljeskunnan alahuone,ZONE 23: Mess de l'Ordre,23. Terület: Rendi köztér,AREA 23: Camera dell'Ordine,エリア 23: オーダーコモンズ,구역 23: 오더 식당가,Strefa 23: Wikt Zakonu,Área 23: Câmara da Ordem,,,МЕСТНОСТЬ 23: Поселение Ордена, +AREA 24: Factory: Conversion Chapel,TXT_STRIFE_MAP24,,,,ZÓNA 24: Továrna: Kaple konverze,ZONE 24: Umwandlungskapelle,,,ÁREA 24: Fábrica: Capilla de Conversión,,ALUE 24: Tehdas: käännytyskappeli,ZONE 24: Usine: Chapelle de Conversion,24. Terület: A megtérés kápolnája,AREA 24: Fabbrica: Cappella di Conversione,エリア 24: 工場:改宗礼拝堂,구역 24: 공장: 전향실,Strefa 24: Fabryka: Kaplica Przemiany,Área 24: Fábrica: Capela de Conversão,,,МЕСТНОСТЬ 24: Часовня обращения, +AREA 25: Catacombs: Ruined Temple,TXT_STRIFE_MAP25,,,,ZÓNA 25: Katakomby: Zničený chrám,ZONE 25: Katakomben: Zerstörter Tempel,,,ÁREA 25: Catacumbas: Templo Arruinado,,ALUE 25: Katakombit: temppeliraunio,ZONE 25: Catacombes: Temple Ruiné,25. Terület: Katakombák: Romtemplom,AREA 25: Catacombe: Tempio in Rovina,エリア 25: 地下墓所:没落した寺院,구역 25: 고대 묘지: 무너진 사원,Strefa 25: Katakumby: Zrujnowana Świątynia,Área 25: Catacumbas: Templo Arruinado,Área 25: Túmulos: Templo Arruinado,,МЕСТНОСТЬ 25: Катакомбы (Руины храма), +AREA 26: Proving Grounds,TXT_STRIFE_MAP26,,,,ZÓNA 26: Vojenský újezd,ZONE 26: Testgelände,,,ÁREA 26: Campo de Pruebas,,ALUE 26: Koetuspaikka,ZONE 26: Terrain d'entraînement,26. Terület: Ígéretes föld,AREA 26: Banco di Prova,エリア 26: 試練場,구역 26: 증명의 전장,Strefa 26: Poligon Wojskowy,Área 26: Campo de Treinamento,Área 26: Campo de Treino,,МЕСТНОСТЬ 26: Испытательный полигон, +AREA 27: The Lab,TXT_STRIFE_MAP27,,,,ZÓNA 27: Laboratoř,ZONE 27: Das Labor,,,ÁREA 27: El Laboratorio,,ALUE 27: Laboratorio,ZONE 27: Laboratoire,27. Terület: A labor,AREA 27: Il Laboratorio,エリア 27: 研究所,구역 27: 연구소,Strefa 27: Laboratorium,Área 27: O Laboratório,,ZONA 27: Laboratorul,МЕСТНОСТЬ 27: Лаборатория, +AREA 28: Alien Ship,TXT_STRIFE_MAP28,,,,ZÓNA 28: Mimozemská Loď,ZONE 28: Außerirdisches Schiff,,,ÁREA 28: Nave Alienígena,,ALUE 28: Muukalaisalus,ZONE 28: Vaisseau Alien,28. Terület: Idegen űrhajó,AREA 28: Nave Aliena,エリア 28: エイリアンの船,구역 28: 외계 우주선,Strefa 28: Statek Obcych,Área 28: Nave Alienígena,,ZONA 28: Nava extraterestră,МЕСТНОСТЬ 28: Корабль пришельцев, +AREA 29: Entity's Lair,TXT_STRIFE_MAP29,,,,ZÓNA 29: Doupě Bytosti,ZONE 29: Das Nest der Entität,,,ÁREA 29: Escondite de la Entidad,,ALUE 29: Tosiolevan maja,ZONE 29: Demeure de L'Entité,,AREA 29: Tana dell'Entità,エリア 29: エンティティの隠れ家,구역 29: 엔티티의 소굴,Strefa 29: Leże Bytu,Área 29: Covil da Entidade,,ZONA 29: Cuibul Entității,МЕСТНОСТЬ 29: Логово Сущности, +AREA 30: Abandoned Front Base,TXT_STRIFE_MAP30,,,,ZÓNA 30: Opuštěná základna Fronty,ZONE 30: Verlassene Basis der Front,,,ÁREA 30: Base Abandonada del Frente,,ALUE 30: Hylätty etutukikohta,ZONE 30: Base Abandonnée du Front,30. Terület: Elhagyatott Előbázis,AREA 30: Base del Fronte abbandonata,エリア 30: 放棄された基地,구역 30: 버려진 프론트 기지,Strefa 30: Opuszczona Baza Frontu,Área 30: Base da Frente Abandonada,,ZONA 30: Baza abandonată a Frontului,МЕСТНОСТЬ 30: Заброшенная база Сопротивления, +AREA 31: Training Facility,TXT_STRIFE_MAP31,,,,ZÓNA 31: Výcvikové zařízení,ZONE 31: Trainingseinrichtung,,,ÁREA 31: Facilidad de Entrenamiento,,ALUE 31: Koulutuslaitos,ZONE 31: Complexe d'Entraînement,31. Terület: Képzési létesítmény,AREA 31: Struttura di Addestramento,エリア 31: 研修施設,구역 31: 훈련 시설,Strefa 31: Centrum Szkoleniowe,Área 31: Instalação de Treinamento,,ZONA 31: Spațiul de antrenament,МЕСТНОСТЬ 31: Тренировочный корпус, +AREA 1: Sanctuary,TXT_STRIFE_MAP32,,,,ZÓNA 1: Útočiště,ZONE 1: Heiligtum,,,ÁREA 1: Santuario,,ALUE 1: Turvapaikka,ZONE 1: Sanctuaire,1. Terület: Szentély,AREA 1: Santuario,エリア 1: 聖域 ,구역 1: 성소,Strefa 1: Sanktuarium,Área 1: Santuário,,ZONA 1: Sanctuar,МЕСТНОСТЬ 1: Святилище, +AREA 2: Town,TXT_STRIFE_MAP33,,,,ZÓNA 2: Město,ZONE 2: Stadt,,,ÁREA 2: Pueblo,,ALUE 2: Kylä,ZONE 2: Ville,2. Terület: Város,AREA 2: Città,エリア 2: 町,구역 2: 마을,Strefa 2: Miasto,Área 2: Vila,,ZONA 2: Oraș,МЕСТНОСТЬ 2: Город, +AREA 3: Movement Base,TXT_STRIFE_MAP34,,,,ZÓNA 3: Rebelská základna,ZONE 3: Rebellenbasis,,,ÁREA 3: Base del Movimiento,,ALUE 3: Liikkeen tukikohta,ZONE 3: Base du Front,3. Terület: Mozgalmi Bázis,AREA 3: Base del Movimento,エリア 3: 移転基地,구역 3: 반군 기지,Strefa 3: Baza Ruchu Oporu,Área 3: Base do Movimento,,,МЕСТНОСТЬ 3: База Сопротивления, +AREA 35: Factory: Production,TXT_STRIFE_MAP35,,,,ZÓNA 35: Továrna: Produkce,ZONE 35: Fabrik: Produktion,,,ÁREA 35: Fábrica: Producción,,ALUE 35: Tehdas: tuotanto,ZONE 35: Usine: Production,35. Terület: Gyár: Termelés,AREA 35: Fabbrica: Produzione,エリア 35: 工場 : 生産ライン,구역 35: 공장: 제작실,Strefa 35: Fabryka: Produkcja,Área 35: Fábrica: Produção,,,МЕСТНОСТЬ 35: Фабрика (Производство), +AREA 36: Castle Clash,TXT_STRIFE_MAP36,,,,ZÓNA 36: Střet na hradě,ZONE 36: Burg-Konflikt,,,ÁREA 36: Ataque al Castillo,,ALUE 36: Linnayhteenotto,ZONE 36: Bataille du Château,36: Terület: Vári ütközet,AREA 36: Collisione di Castello,エリア 36: キャッスルクラッシュ,구역 36: 성채간의 충돌,Strefa 36: Potyczka w Zamku,Área 36: Ataque ao Castelo,,,МЕСТНОСТЬ 36: Битва в замке, +AREA 37: Killing Grounds,TXT_STRIFE_MAP37,,,,ZÓNA 37: Zabíjecí zahrady,ZONE 37: Kampfgelände,,,ÁREA 37: Campo de Matanza,,ALUE 37: Tappotanner,ZONE 37: Zone de Chasse,37. Terület: Gyilkos Vidék,AREA 37: Campi di Uccisione,エリア 37: 殺害者の地,구역 37: 살육의 전장,Strefa 37: Śmiercionośny Grunt,Área 37: Campo de Matança,,,МЕСТНОСТЬ 37: Секторы обстрела, +AREA 38: Ordered Chaos,TXT_STRIFE_MAP38,,,,ZÓNA 38: Nařízený chaos,ZONE 38: Geordnetes Chaos,,,ÁREA 38: Caos Ordenado,,ALUE 38: Järjestynyt kaaos,ZONE 38: Chaos Ordonné,38. Terület: Rendezett Káosz,AREA 38: Caos Ordinato,エリア 38: カオスの秩序,구역 38: 정돈된 혼란,Strefa 38: Uporządkowany Chaos,Área 38: Caos Ordenado,,,МЕСТНОСТЬ 38: Управляемый хаос, ,,Hexen,,,,,,,,,,,,,,,,,,,, -Winnowing Hall,TXT_HEXEN_MAP01,,,,Sál prosetí,Trennungshalle,,,Sala de los Vientos,,,Chambre de la Séparation,Huzatos Folyosó,Camera di separazione,選抜の間,바람 회관,Hala Przesiewu,Sala de Separação,,,Зал отсеивания,Овејана дворана -Seven Portals,TXT_HEXEN_MAP02,,,,Sedmero portálů,Sieben Portale,,,Siete Portales,,,Les Sept Portails,Hét Portál,I Sette Portali,漆之門,일곱 차원문,Siedem Portali,Sete Portais,,Șapte portaluri,Семь порталов,Седам портала -Guardian of Ice,TXT_HEXEN_MAP03,,,,Strážce ledu,Wächter des Eises,,,Guardián de Hielo,,,Gardien de Glace,A Jég Őre,Guardiano del Ghiaccio,氷の守護者,얼음의 수호자,Strażnik Lodu,Guardião de Gelo,,Străjerul Gheții,Страж льда,Чувар леда -Guardian of Fire,TXT_HEXEN_MAP04,,,,Strážce ohně,Wächter des Feuers,,,Guardián de Fuego,,,Gardien de Feu,A Tűz Őre,Guardiano del Fuoco,炎の守護者,화염의 수호자,Strażnik Ognia,Guardião de Fogo,,Străjerul Focului,Страж огня,Чувар ватре -Guardian of Steel,TXT_HEXEN_MAP05,,,,Strážce oceli,Wächter des Stahls,,,Guardián de Acero,,,Gardien d'Acier,Az Acél Őre,Guardiano dell'Acciaio,鋼の守護者,강철의 수호자,Strażnik Stali,Guardião de Aço,,Străjerul Oțelului,Страж стали,Чувар челика -Bright Crucible,TXT_HEXEN_MAP06,,,,Světlý očistec,Glänzende Feuerprobe,,,Crisol de Luz,,,Creuset Radiant,,Crogiolo Luminoso,光の坩堝,빛나는 고난,Próba Światła,Crisol de Luz,,,Испытание света,Испитивање светла -Shadow Wood,TXT_HEXEN_MAP13,,,,Temný hvozd,Schattenwald,,,Bosque de la Sombra,,,Forêt des Ombres,Árnyék Erdő,Foresta Oscura,陰影樹,그림자 숲,Las Cieni,Floresta das Sombras,,Pădurea umbrelor,Лес теней,Шума сена -Darkmere,TXT_HEXEN_MAP08,,,,Černý močál,Düstersee,,,Pantano,,,Marais Noir,,Palude Nera,暗黒の地,흙빛호수,Mroczne Bagno,Pantâno Negro,,,Болотная топь,Мочваре -Caves of Circe,TXT_HEXEN_MAP09,,,,Jeskyně Kirké,Circes Höhle,,,Cuevas de Circe,,,Caves de Circé,Körök Barlangja,Grotte di Circe,キルケーの洞窟,키르케의 동굴,Jaskinie Kirke,Cavernas de Circe,,Peștera lui Circe,Пещеры цирцеи,Пећине цирке -Wastelands,TXT_HEXEN_MAP10,,,,Pustiny,Ödland,,,Yermo,,,Terres Ruinées,Senkiföldje,Terre in rovina,荒野,황무지,Pustkowia,Terras Desoladas,,,Пустоши,Пустаре -Sacred Grove,TXT_HEXEN_MAP11,,,,Posvátný háj,Heiliger Hain,,,Arboleda Sagrada,,,Bosquet Sacré,,Boschetto Sacro,神聖なる園,성스러운 수풀,Święty Gaj,Bosque Sagrado,,,Священная роща,Свети шумарак -Hypostyle,TXT_HEXEN_MAP12,,,,Hypostyl,Säulenhalle,,,Hipóstila,,,Hypostyle,,Ipostilo,多柱の間,다주실,Hypostyl,Hipostilo,,,Гипостильный зал,Хипостил -Heresiarch's Seminary,TXT_HEXEN_MAP27,,,,Arcikacířův alumnát,Seminar des Erzketzers,,,Seminario del Heresiarca,,,Séminaire de l'Hérésiarche,,Seminario dell'Heresiarch,ヘレシアークの神学舎,헤러시아크의 신학교,Seminarium Herezjarchy,Seminário do Heresiarca,,Seminarul Ereziarhului,Семинария Ересиарха,Јересијархов семинар -Dragon Chapel,TXT_HEXEN_MAP28,,,,Dračí kaple,Drachenkapelle,,,Capilla Dragón,,,Chapelle du Dragon,Sárkány Szentély,Cappella del Drago,ドラゴンの庵寺,드래곤 예배실,Kaplica Smoka,Capela do Dragão,,Capela dragonilor,Часовня дракона,Змајева капела -Griffin Chapel,TXT_HEXEN_MAP30,,,,Gryfí kaple,Greifenkapelle,,,Capilla Grifo,,,Chapelle du Grifon,Griff Szentély,Cappella del Grifone,グリフィンの庵寺,그리핀 예배실,Kaplica Gryfa,Capela do Grifo,,Capela grifonilor,Часовня грифона,Грифинова капела -Deathwind Chapel,TXT_HEXEN_MAP31,,,,Kaple mrakosmrtě,Todeswindkapelle,,,Capilla Viento de Muerte,,,Chapelle du Vent Tueur,,Cappella del Vento Assassino,デスウィンドの庵寺,죽음바람 예배실,Kaplica Wiatru Śmierci,Capela do Vento da Morte,,Capela suflului morții,Часовня ветра смерти,Капела ветра смрти -Orchard of Lamentations,TXT_HEXEN_MAP32,,,,Sad nářků,Garten der Wehklagen,,,Huerto de los Lamentos,,,Verger des Lamentations,,Frutteto delle Lamentazioni,哀悼茂る園,통탄의 과수원,Płaczący Sad,Pomar das Lamentações,,Livada amărăciunii,Сады плача,Воћњак тужбалица -Silent Refectory,TXT_HEXEN_MAP33,,,,Tichý refektář,Stilles Refektorium,,,Refectorio Silencioso,,,Réfectoire Silencieux,,Refettorio silenzioso,寡黙なる食堂,침묵의 식당,Cichy Refektarz,Refeitório Silencioso,,Refectoriul tăcerii,Безмолвная трапезная,Тиха трпезарија -Wolf Chapel,TXT_HEXEN_MAP34,,,,Vlčí kaple,Wolfskapelle,,,Capilla Lobo,,,Chapelle du Loup,Farkas Szentély,Cappella del Lupo,狼の庵寺,늑대 예배실,Kaplica Wilka,Capela do Lobo,,Capela lupilor,Часовня волка,Вучја капела -Forsaken Outpost,TXT_HEXEN_MAP21,,,,Opuštěné stanoviště,Verlassener Vorposten,,,Puesto de Avanzada Abandonado,,,Base Abandonnée,,Avamposto Abbandonato,荒れ果てた前哨地,버려진 초소,Opuszczony Posterunek,Posto Abandonado,,Avanpostul părăsit,Покинутая застава,Напуштена постаја -Castle of Grief,TXT_HEXEN_MAP22,,,,Hrad smutku,Leidensburg,,,Castillo del Pesar,,,Château de la Souffrance,,Castello della Sofferenza,嘆きの城,비탄의 성,Zamek Smutku,Castelo da Aflição,,,Замок скорби,Замак жалости -Gibbet,TXT_HEXEN_MAP23,,,,Šibenice,Richtstätte,,,Horca,,,Gibet,,Forca,晒し台,교수대,Szubienica,Forca,,Eșafodul,Виселица,Вешала -Effluvium,TXT_HEXEN_MAP24,,,,Výpary,Effluvium,,,Efluvio,,,Effluvium,,Effluvio,腐臭漂う残骸,악취,Odór,Eflúvio,,,Зловонный сток,Ефлувиум -Dungeons,TXT_HEXEN_MAP25,,,,Žalář,Kerker,,,Calabozos,,,Donjons,Kazamaták,I Dungeon,地下牢,지하감옥,Lochy,Masmorras,,Temnițe,Подземелья,Тамнице -Desolate Garden,TXT_HEXEN_MAP26,,,,Zpustošená zahrada,Verwildeter Garten,,,Jardín Desolado,,,Jardin de la Désolation,,Giardino Desolato,荒涼とした庭,황폐한 정원,Spustoszały Ogród,Jardim Desolado,,Grădina dezolantă,Заброшенный сад,Пуста башта -Necropolis,TXT_HEXEN_MAP35,,,,Nekropole,Nekropole,,,Necrópolis,,,Nécropole,Halottak Városa,Necropoli,ネクロポリス,망자의 도시,Nekropolia,Necrópole,,Necropola,Некрополь,Некрополис -Zedek's Tomb,TXT_HEXEN_MAP36,,,,Zedekova hrobka,Zedeks Gruft,,,Tumba de Zedek,,,Tombeau de Zedek,Zedek Sírja,Tomba di Zedek,ゼデクの墓,제닥의 무덤,Grobowiec Zedeka,Tumba de Zedek,Túmulo de Zedek,Mormântul lui Zedek,Гробница Зедека,Зедеков гроб -Menelkir's Tomb,TXT_HEXEN_MAP37,,,,Menelkirova hrobka,Menelkirs Gruft,,,Tumba de Menelkir,,,Tombeau de Menelkir,Menelkir Sírja,Tomba di Menelkir,メネルキルの墓,메넬키어의 무덤,Grobowiec Menelkira,Tumba de Menelkir,Túmulo de Menelkir,Mormântul lui Menelkir,Гробница Менелкира,Менелкиров гроб -Traductus' Tomb,TXT_HEXEN_MAP38,,,,Traduktova hrobka,Traductus' Gruft,,,Tumba de Traductus,,,Tombeau de Traductus,Traductus Sírja,Tomba di Traductus,トダクティスの墓,트라닥투스의 무덤,Grobowiec Traductusa,Tumba de Traductus,Túmulo de Traductus,Mormântul lui Traductus,Гробница Традактуса,Традуктусов гроб -Vivarium,TXT_HEXEN_MAP39,,,,Vivárium,Vivarium,,,Vivario,,,Vivarium,Vivárium,Vivario,ビバリウム,사육장,Wiwarium,Viveiro,,Vivariu,Виварий,Зверињак -Dark Crucible,TXT_HEXEN_MAP40,,,,Temný očistec,Dunkle Feuerprobe,,,Crisol de Oscuridad,,,Creuset Sombre,,Crogiolo Buio,"暗黒の坩堝 +Winnowing Hall,TXT_HEXEN_MAP01,,,,Sál prosetí,Trennungshalle,,,Sala de los Vientos,,Viskaussali,Chambre de la Séparation,Huzatos Folyosó,Camera di separazione,選抜の間,바람 회관,Hala Przesiewu,Sala de Separação,,,Зал отсеивания,Овејана дворана +Seven Portals,TXT_HEXEN_MAP02,,,,Sedmero portálů,Sieben Portale,,,Siete Portales,,Seitsemän portaalia,Les Sept Portails,Hét Portál,I Sette Portali,漆之門,일곱 차원문,Siedem Portali,Sete Portais,,Șapte portaluri,Семь порталов,Седам портала +Guardian of Ice,TXT_HEXEN_MAP03,,,,Strážce ledu,Wächter des Eises,,,Guardián de Hielo,,Jään vartija,Gardien de Glace,A Jég Őre,Guardiano del Ghiaccio,氷の守護者,얼음의 수호자,Strażnik Lodu,Guardião de Gelo,,Străjerul Gheții,Страж льда,Чувар леда +Guardian of Fire,TXT_HEXEN_MAP04,,,,Strážce ohně,Wächter des Feuers,,,Guardián de Fuego,,Tulen vartija,Gardien de Feu,A Tűz Őre,Guardiano del Fuoco,炎の守護者,화염의 수호자,Strażnik Ognia,Guardião de Fogo,,Străjerul Focului,Страж огня,Чувар ватре +Guardian of Steel,TXT_HEXEN_MAP05,,,,Strážce oceli,Wächter des Stahls,,,Guardián de Acero,,Teräksen vartija,Gardien d'Acier,Az Acél Őre,Guardiano dell'Acciaio,鋼の守護者,강철의 수호자,Strażnik Stali,Guardião de Aço,,Străjerul Oțelului,Страж стали,Чувар челика +Bright Crucible,TXT_HEXEN_MAP06,,,,Světlý očistec,Glänzende Feuerprobe,,,Crisol de Luz,,Kirkas tulikoe,Creuset Radiant,,Crogiolo Luminoso,光の坩堝,빛나는 고난,Próba Światła,Crisol de Luz,,,Испытание света,Испитивање светла +Shadow Wood,TXT_HEXEN_MAP13,,,,Temný hvozd,Schattenwald,,,Bosque de la Sombra,,Varjosalo,Forêt des Ombres,Árnyék Erdő,Foresta Oscura,陰影樹,그림자 숲,Las Cieni,Floresta das Sombras,,Pădurea umbrelor,Лес теней,Шума сена +Darkmere,TXT_HEXEN_MAP08,,,,Černý močál,Düstersee,,,Pantano,,Pikiräme,Marais Noir,,Palude Nera,暗黒の地,흙빛호수,Mroczne Bagno,Pantâno Negro,,,Болотная топь,Мочваре +Caves of Circe,TXT_HEXEN_MAP09,,,,Jeskyně Kirké,Circes Höhle,,,Cuevas de Circe,,Circeluolat,Caves de Circé,Körök Barlangja,Grotte di Circe,キルケーの洞窟,키르케의 동굴,Jaskinie Kirke,Cavernas de Circe,,Peștera lui Circe,Пещеры цирцеи,Пећине цирке +Wastelands,TXT_HEXEN_MAP10,,,,Pustiny,Ödland,,,Yermo,,Erämaat,Terres Ruinées,Senkiföldje,Terre in rovina,荒野,황무지,Pustkowia,Terras Desoladas,,,Пустоши,Пустаре +Sacred Grove,TXT_HEXEN_MAP11,,,,Posvátný háj,Heiliger Hain,,,Arboleda Sagrada,,Pyhä metsikkö,Bosquet Sacré,,Boschetto Sacro,神聖なる園,성스러운 수풀,Święty Gaj,Bosque Sagrado,,,Священная роща,Свети шумарак +Hypostyle,TXT_HEXEN_MAP12,,,,Hypostyl,Säulenhalle,,,Hipóstila,,Hypostyyli,Hypostyle,,Ipostilo,多柱の間,다주실,Hypostyl,Hipostilo,,,Гипостильный зал,Хипостил +Heresiarch's Seminary,TXT_HEXEN_MAP27,,,,Arcikacířův alumnát,Seminar des Erzketzers,,,Seminario del Heresiarca,,Kerettiarkin seminaari,Séminaire de l'Hérésiarche,,Seminario dell'Heresiarch,ヘレシアークの神学舎,헤러시아크의 신학교,Seminarium Herezjarchy,Seminário do Heresiarca,,Seminarul Ereziarhului,Семинария Ересиарха,Јересијархов семинар +Dragon Chapel,TXT_HEXEN_MAP28,,,,Dračí kaple,Drachenkapelle,,,Capilla Dragón,,Lohikäärmekappeli,Chapelle du Dragon,Sárkány Szentély,Cappella del Drago,ドラゴンの庵寺,드래곤 예배실,Kaplica Smoka,Capela do Dragão,,Capela dragonilor,Часовня дракона,Змајева капела +Griffin Chapel,TXT_HEXEN_MAP30,,,,Gryfí kaple,Greifenkapelle,,,Capilla Grifo,,Aarnikotkakappeli,Chapelle du Grifon,Griff Szentély,Cappella del Grifone,グリフィンの庵寺,그리핀 예배실,Kaplica Gryfa,Capela do Grifo,,Capela grifonilor,Часовня грифона,Грифинова капела +Deathwind Chapel,TXT_HEXEN_MAP31,,,,Kaple mrakosmrtě,Todeswindkapelle,,,Capilla Viento de Muerte,,Kuolontuulikappeli,Chapelle du Vent Tueur,,Cappella del Vento Assassino,デスウィンドの庵寺,죽음바람 예배실,Kaplica Wiatru Śmierci,Capela do Vento da Morte,,Capela suflului morții,Часовня ветра смерти,Капела ветра смрти +Orchard of Lamentations,TXT_HEXEN_MAP32,,,,Sad nářků,Garten der Wehklagen,,,Huerto de los Lamentos,,Valitusvirtten tarha,Verger des Lamentations,,Frutteto delle Lamentazioni,哀悼茂る園,통탄의 과수원,Płaczący Sad,Pomar das Lamentações,,Livada amărăciunii,Сады плача,Воћњак тужбалица +Silent Refectory,TXT_HEXEN_MAP33,,,,Tichý refektář,Stilles Refektorium,,,Refectorio Silencioso,,Hiljainen ruokasali,Réfectoire Silencieux,,Refettorio silenzioso,寡黙なる食堂,침묵의 식당,Cichy Refektarz,Refeitório Silencioso,,Refectoriul tăcerii,Безмолвная трапезная,Тиха трпезарија +Wolf Chapel,TXT_HEXEN_MAP34,,,,Vlčí kaple,Wolfskapelle,,,Capilla Lobo,,Susikappeli,Chapelle du Loup,Farkas Szentély,Cappella del Lupo,狼の庵寺,늑대 예배실,Kaplica Wilka,Capela do Lobo,,Capela lupilor,Часовня волка,Вучја капела +Forsaken Outpost,TXT_HEXEN_MAP21,,,,Opuštěné stanoviště,Verlassener Vorposten,,,Puesto de Avanzada Abandonado,,Hylätty etuvartio,Base Abandonnée,,Avamposto Abbandonato,荒れ果てた前哨地,버려진 초소,Opuszczony Posterunek,Posto Abandonado,,Avanpostul părăsit,Покинутая застава,Напуштена постаја +Castle of Grief,TXT_HEXEN_MAP22,,,,Hrad smutku,Leidensburg,,,Castillo del Pesar,,Surulinna,Château de la Souffrance,,Castello della Sofferenza,嘆きの城,비탄의 성,Zamek Smutku,Castelo da Aflição,,,Замок скорби,Замак жалости +Gibbet,TXT_HEXEN_MAP23,,,,Šibenice,Richtstätte,,,Horca,,Hirsipuu,Gibet,,Forca,晒し台,교수대,Szubienica,Forca,,Eșafodul,Виселица,Вешала +Effluvium,TXT_HEXEN_MAP24,,,,Výpary,Effluvium,,,Efluvio,,Katku,Effluvium,,Effluvio,腐臭漂う残骸,악취,Odór,Eflúvio,,,Зловонный сток,Ефлувиум +Dungeons,TXT_HEXEN_MAP25,,,,Žalář,Kerker,,,Calabozos,,Tyrmät,Donjons,Kazamaták,I Dungeon,地下牢,지하감옥,Lochy,Masmorras,,Temnițe,Подземелья,Тамнице +Desolate Garden,TXT_HEXEN_MAP26,,,,Zpustošená zahrada,Verwildeter Garten,,,Jardín Desolado,,Autio puutarha,Jardin de la Désolation,,Giardino Desolato,荒涼とした庭,황폐한 정원,Spustoszały Ogród,Jardim Desolado,,Grădina dezolantă,Заброшенный сад,Пуста башта +Necropolis,TXT_HEXEN_MAP35,,,,Nekropole,Nekropole,,,Necrópolis,,Nekropoli,Nécropole,Halottak Városa,Necropoli,ネクロポリス,망자의 도시,Nekropolia,Necrópole,,Necropola,Некрополь,Некрополис +Zedek's Tomb,TXT_HEXEN_MAP36,,,,Zedekova hrobka,Zedeks Gruft,,,Tumba de Zedek,,Sedekin hauta,Tombeau de Zedek,Zedek Sírja,Tomba di Zedek,ゼデクの墓,제닥의 무덤,Grobowiec Zedeka,Tumba de Zedek,Túmulo de Zedek,Mormântul lui Zedek,Гробница Зедека,Зедеков гроб +Menelkir's Tomb,TXT_HEXEN_MAP37,,,,Menelkirova hrobka,Menelkirs Gruft,,,Tumba de Menelkir,,Menelkirin hauta,Tombeau de Menelkir,Menelkir Sírja,Tomba di Menelkir,メネルキルの墓,메넬키어의 무덤,Grobowiec Menelkira,Tumba de Menelkir,Túmulo de Menelkir,Mormântul lui Menelkir,Гробница Менелкира,Менелкиров гроб +Traductus' Tomb,TXT_HEXEN_MAP38,,,,Traduktova hrobka,Traductus' Gruft,,,Tumba de Traductus,,Traduktuksen hauta,Tombeau de Traductus,Traductus Sírja,Tomba di Traductus,トダクティスの墓,트라닥투스의 무덤,Grobowiec Traductusa,Tumba de Traductus,Túmulo de Traductus,Mormântul lui Traductus,Гробница Традактуса,Традуктусов гроб +Vivarium,TXT_HEXEN_MAP39,,,,Vivárium,Vivarium,,,Vivario,,Vivaario,Vivarium,Vivárium,Vivario,ビバリウム,사육장,Wiwarium,Viveiro,,Vivariu,Виварий,Зверињак +Dark Crucible,TXT_HEXEN_MAP40,,,,Temný očistec,Dunkle Feuerprobe,,,Crisol de Oscuridad,,Pimeä tulikoe,Creuset Sombre,,Crogiolo Buio,"暗黒の坩堝 ",어두운 고난,Próba Mroku,Crisol das Trevas,,,Испытание тьмы,Испитивање мрака ,,Hexen Deathkings,,,,,,,,,,,,,,,,,,,, -Ruined Village,TXT_HEXDD_MAP41,,,,Zničená vesnice,Zerstörtes Dorf,,,Pueblo en Ruinas,,,Village en Ruines,Az Elpusztult Falu,Villagio in Rovine,廃村,파괴된 마을,Zrujnowana Wioska,Aldeia Destruída,Aldeia em Ruinas,Sat ruinat,Разрушенная деревня,Уништено село -Blight,TXT_HEXDD_MAP42,,,,Pohroma,Fäule,,,Decaimiento,,,Peste,,Peste,疫病,황폐화,Zaraza,Peste,,,Упадок,Пошаст -Sump,TXT_HEXDD_MAP43,,,,Žumpa,Sumpf,,,Pozo de Barro,,,Puisard,,Pozzetto,汚水槽,웅덩이,Studzienka,Poço de Lama,,,Грязеотстойник,Сливник -Catacomb,TXT_HEXDD_MAP44,,,,Katakomby,Katakombe,,,Catacumba,,,Catacombe,,Catacombe,カタコンベ,지하 묘실,Katakumba,Catacumba,,Catacombă,Катакомба,Катакомба -Badlands,TXT_HEXDD_MAP45,,,,Pustiny,Ödland,,,Páramos,,,Terres Sauvages,,Terre Selvagge,不毛地帯,불모지,Nieurodzaj,Ermo,,,Бесплодные земли,Пустош -Brackenwood,TXT_HEXDD_MAP46,,,,Prales,Moorwald,,,Brackenwood,,,Forêt de Bracken,,Foresta di Felce,ワラビの樹,고사리숲,Las Paproci,Floresta de Samambaias,,,Брекенвуд,Папрат -Pyre,TXT_HEXDD_MAP47,,,,Hranice,Scheiterhaufen,,,Pira Funeraria,,,Brasier,,Pira,火葬薪,화장,Stos,Pira,,Rug,Погребальный костёр,Ломача -Constable's Gate,TXT_HEXDD_MAP48,,,,Konstáblova brána,Wachtor,,,Puerta del Alguacil,,,Portail du Constable,,Porta del Conestabile,城守達の門,무관장의 문,Brama Posterunkowego,Portão do Condestável,,,Комендантские врата,Чиновникова капија -Treasury,TXT_HEXDD_MAP49,,,,Pokladnice,Schatzkammer,,,Tesorería,,,Trésorerie,,Tesoreria,宝庫,국고,Skarbiec,Tesouraria,,Vistierie,Сокровищница,Трезор -Market Place,TXT_HEXDD_MAP50,,,,Tržnice,Marktplatz,,,Plaza del Mercado,,,Place du Marché,,Piazza del Mercato,市場,시장,Rynek,Feira,,Piață,Рыночная площадь,Пијаца +Ruined Village,TXT_HEXDD_MAP41,,,,Zničená vesnice,Zerstörtes Dorf,,,Pueblo en Ruinas,,Rauniokylä,Village en Ruines,Az Elpusztult Falu,Villagio in Rovine,廃村,파괴된 마을,Zrujnowana Wioska,Aldeia Destruída,Aldeia em Ruinas,Sat ruinat,Разрушенная деревня,Уништено село +Blight,TXT_HEXDD_MAP42,,,,Pohroma,Fäule,,,Decaimiento,,Turmelus,Peste,,Peste,疫病,황폐화,Zaraza,Peste,,,Упадок,Пошаст +Sump,TXT_HEXDD_MAP43,,,,Žumpa,Sumpf,,,Pozo de Barro,,Likakaivo,Puisard,,Pozzetto,汚水槽,웅덩이,Studzienka,Poço de Lama,,,Грязеотстойник,Сливник +Catacomb,TXT_HEXDD_MAP44,,,,Katakomby,Katakombe,,,Catacumba,,Katakombi,Catacombe,,Catacombe,カタコンベ,지하 묘실,Katakumba,Catacumba,,Catacombă,Катакомба,Катакомба +Badlands,TXT_HEXDD_MAP45,,,,Pustiny,Ödland,,,Páramos,,Autiomaa,Terres Sauvages,,Terre Selvagge,不毛地帯,불모지,Nieurodzaj,Ermo,,,Бесплодные земли,Пустош +Brackenwood,TXT_HEXDD_MAP46,,,,Prales,Moorwald,,,Brackenwood,,Saniaissalo,Forêt de Bracken,,Foresta di Felce,ワラビの樹,고사리숲,Las Paproci,Floresta de Samambaias,,,Брекенвуд,Папрат +Pyre,TXT_HEXDD_MAP47,,,,Hranice,Scheiterhaufen,,,Pira Funeraria,,Rovio,Brasier,,Pira,火葬薪,화장,Stos,Pira,,Rug,Погребальный костёр,Ломача +Constable's Gate,TXT_HEXDD_MAP48,,,,Konstáblova brána,Wachtor,,,Puerta del Alguacil,,Konstaapelin portti,Portail du Constable,,Porta del Conestabile,城守達の門,무관장의 문,Brama Posterunkowego,Portão do Condestável,,,Комендантские врата,Чиновникова капија +Treasury,TXT_HEXDD_MAP49,,,,Pokladnice,Schatzkammer,,,Tesorería,,Rahasto,Trésorerie,,Tesoreria,宝庫,국고,Skarbiec,Tesouraria,,Vistierie,Сокровищница,Трезор +Market Place,TXT_HEXDD_MAP50,,,,Tržnice,Marktplatz,,,Plaza del Mercado,,Markkinat,Place du Marché,,Piazza del Mercato,市場,시장,Rynek,Feira,,Piață,Рыночная площадь,Пијаца Locus Requiescat,TXT_HEXDD_MAP51,,,,,Locus Requiescat,,,Lugar de Descanso Eterno,,,Locus Requiescat,,,祈祷師の軌跡,명복의 장소,Locus Requiescat,,,,Место вечного упокоения,Место починка -Ordeal,TXT_HEXDD_MAP52,,,,Utrpení,Heimsuchung,,,Prueba,,,Supplice,,Supplizio,試練,시죄의 시련,Męka,Suplício,,Supliciu,Испытание,Изазов -Armory,TXT_HEXDD_MAP53,,,Armoury,Zbrojnice,Waffenkammer,,,Armería,,,Amurerie,Fegyverraktár,Armeria,武器庫,무기고,Zbrojownia,Arsenal,,Arsenal,Оружейная,Оружарница -Nave,TXT_HEXDD_MAP54,,,,Chrámová loď,Kirchenschiff,,,La Nave,,,Nef,,Navata,身廊,본당,Nawa,,,Naos,Неф,Брод -Chantry,TXT_HEXDD_MAP55,,,,Modlitebna,Kantorei,,,Capilla,,,Chapelle,,Cappella,小礼拝堂,예배당,Kaplica Wotywna,Capela,,,Часовня,Капела -Abattoir,TXT_HEXDD_MAP56,,,,Jatka,Schlachthaus,,,Matadero,,,Abbatoire,,Mattatoio,屠殺場,도살장,Rzeźnia,Matadouro,,Abator,Бойня,Кланица -Dark Watch,TXT_HEXDD_MAP57,,,,Tmavá hlídka,Dunkle Wache,,,Guardia Oscura,,,Garde Noire,,Guardia Oscura,闇の刻計,어둠의 감시초소,Ciemna Straż,Guarda Negra,,,Тёмный страж,Мрачни чувар -Cloaca,TXT_HEXDD_MAP58,,,,Kloaka,Kloake,,,Cloaca,,,Cloaque,,,排泄腔,하수구,Kloaka,,,,Клоака,Клоака -Ice Hold,TXT_HEXDD_MAP59,,,,Ledová pevnost,Eiskammer,,,Tierra de Hielo,,,Fort de Glace,,Fortezza di Ghiaccio,氷結,빙고,Lodowa Twierdza,Fortaleza de Gelo,,Fort glaciar,Ледяная твердь,Ледена утврда -Dark Citadel,TXT_HEXDD_MAP60,,,,Temná citadela,Dunkle Festung,,,Fortaleza Oscura,,,Citadelle Sombre,,Cittadella Oscura,暗黒の城塞,어둠의 요새,Mroczna Cytadela,Cidadela Negra,,Cetatea întunecată,Тёмная цитадель,Мрачна цитадела -Transit,TXT_HEXDD_MAP33,,,,Převoz,,,,Sala de Espera,,,Transit,,Passaggio,変遷,통로,Tranzyt,Sala de Espera,,Tranzit,Комната ожидания,Прелаз -Over'n Under,TXT_HEXDD_MAP34,,,,Nad a Pod,Drunter und Drüber,,,Arriba y Abajo,,,Sens Dessus Dessous,,Sopra e Sotto,天と地,높낮이,Nad I Pod,Sobre e Sob,,Sus și jos,Выше и ниже,Изнад и испод -Deathfog,TXT_HEXDD_MAP35,,,,Mha skonu,Todesnebel,,,Niebla de Muerte,,,Brume Mortelle,Halálköd,Nebbia di Morte,死の霧,죽음의 안개,Mgła Śmierci,Névoa da Morte,,Ceața morții,Туман смерти,Магла смрти -Castle of Pain,TXT_HEXDD_MAP36,,,,Hrad bolesti,Burg der Angst,,,Castillo del Dolor,,,Château de la Douleur,,Castello del Dolore,苦しみの城,고통의 성,Zamek Bólu,Castelo da Dor,,,Замок боли,Тврђава бола -Sewer Pit,TXT_HEXDD_MAP37,,,,Odpadní jáma,Kanalgrube,,,Pozo de Residuos,,,Trou d'Egout,,Fossa della Fogna,地下溝穴,하수도,Ściek,Fossa de Esgoto,,Groapa de scurgere,Сточная яма,Канализациона јама -The Rose,TXT_HEXDD_MAP38,,,,Růže,Die Rose,,,La Rosa,,,La Rose,A Rózsa,La Rosa,薔薇,장밋빛,Róża,A Rosa,,Roza,Роза,Ружа +Ordeal,TXT_HEXDD_MAP52,,,,Utrpení,Heimsuchung,,,Prueba,,Koettelemus,Supplice,,Supplizio,試練,시죄의 시련,Męka,Suplício,,Supliciu,Испытание,Изазов +Armory,TXT_HEXDD_MAP53,,,Armoury,Zbrojnice,Waffenkammer,,,Armería,,Asehuone,Amurerie,Fegyverraktár,Armeria,武器庫,무기고,Zbrojownia,Arsenal,,Arsenal,Оружейная,Оружарница +Nave,TXT_HEXDD_MAP54,,,,Chrámová loď,Kirchenschiff,,,La Nave,,Laiva,Nef,,Navata,身廊,본당,Nawa,,,Naos,Неф,Брод +Chantry,TXT_HEXDD_MAP55,,,,Modlitebna,Kantorei,,,Capilla,,Kappeli,Chapelle,,Cappella,小礼拝堂,예배당,Kaplica Wotywna,Capela,,,Часовня,Капела +Abattoir,TXT_HEXDD_MAP56,,,,Jatka,Schlachthaus,,,Matadero,,Teurastamo,Abbatoire,,Mattatoio,屠殺場,도살장,Rzeźnia,Matadouro,,Abator,Бойня,Кланица +Dark Watch,TXT_HEXDD_MAP57,,,,Tmavá hlídka,Dunkle Wache,,,Guardia Oscura,,Pimeä vahti,Garde Noire,,Guardia Oscura,闇の刻計,어둠의 감시초소,Ciemna Straż,Guarda Negra,,,Тёмный страж,Мрачни чувар +Cloaca,TXT_HEXDD_MAP58,,,,Kloaka,Kloake,,,Cloaca,,Kloaakki,Cloaque,,,排泄腔,하수구,Kloaka,,,,Клоака,Клоака +Ice Hold,TXT_HEXDD_MAP59,,,,Ledová pevnost,Eiskammer,,,Tierra de Hielo,,Jääsäilö,Fort de Glace,,Fortezza di Ghiaccio,氷結,빙고,Lodowa Twierdza,Fortaleza de Gelo,,Fort glaciar,Ледяная твердь,Ледена утврда +Dark Citadel,TXT_HEXDD_MAP60,,,,Temná citadela,Dunkle Festung,,,Fortaleza Oscura,,Pimeä linnake,Citadelle Sombre,,Cittadella Oscura,暗黒の城塞,어둠의 요새,Mroczna Cytadela,Cidadela Negra,,Cetatea întunecată,Тёмная цитадель,Мрачна цитадела +Transit,TXT_HEXDD_MAP33,,,,Převoz,,,,Sala de Espera,,Läpikulku,Transit,,Passaggio,変遷,통로,Tranzyt,Sala de Espera,,Tranzit,Комната ожидания,Прелаз +Over'n Under,TXT_HEXDD_MAP34,,,,Nad a Pod,Drunter und Drüber,,,Arriba y Abajo,,Yli ja ali,Sens Dessus Dessous,,Sopra e Sotto,天と地,높낮이,Nad I Pod,Sobre e Sob,,Sus și jos,Выше и ниже,Изнад и испод +Deathfog,TXT_HEXDD_MAP35,,,,Mha skonu,Todesnebel,,,Niebla de Muerte,,Kuolonsumu,Brume Mortelle,Halálköd,Nebbia di Morte,死の霧,죽음의 안개,Mgła Śmierci,Névoa da Morte,,Ceața morții,Туман смерти,Магла смрти +Castle of Pain,TXT_HEXDD_MAP36,,,,Hrad bolesti,Burg der Angst,,,Castillo del Dolor,,Tuskan linna,Château de la Douleur,,Castello del Dolore,苦しみの城,고통의 성,Zamek Bólu,Castelo da Dor,,,Замок боли,Тврђава бола +Sewer Pit,TXT_HEXDD_MAP37,,,,Odpadní jáma,Kanalgrube,,,Pozo de Residuos,,Viemärimonttu,Trou d'Egout,,Fossa della Fogna,地下溝穴,하수도,Ściek,Fossa de Esgoto,,Groapa de scurgere,Сточная яма,Канализациона јама +The Rose,TXT_HEXDD_MAP38,,,,Růže,Die Rose,,,La Rosa,,Ruusu,La Rose,A Rózsa,La Rosa,薔薇,장밋빛,Róża,A Rosa,,Roza,Роза,Ружа ,,Intermission texts,,,,,,,,,,,,,,,,,,,, "Once you beat the big badasses and clean out the moon base you're supposed @@ -2585,7 +2585,7 @@ repulisti finale...","ゲートキーパーの間抜け面が辺り一面に散 なので君には俺の棺桶にロケットランチャーを供えるよう伝えておく。 いつか死に、デイジーの元に迎え入れなければ、 -あの世のゴミ共に最後の審判を下す為に...","문지기의 사악한 얼굴이 사방으로 흩어졌다. 놈의 추악한 시체같이 변형된 +あの世のゴミ共へ最後の審判を下す為に...","문지기의 사악한 얼굴이 사방으로 흩어졌다. 놈의 추악한 시체같이 변형된 지옥의 문이 마지막 남은 양자 가속기와 남아 있는 괴물들을 빨아들여 버렸다. 당신이 해냈다. 지옥은 살아있는 생명체들 대신 죽어있는 유령들이 가득 찬 지옥으로 돌아가고 말았다. 미래에 당신의 자손들한테 당신 관 속에 로켓포를 @@ -3259,9 +3259,11 @@ de demônios.",,,"Внезапно всё окуталось тишиной до пакла нестаје, небо ноћне море постаје плаво, гомиле леша чудовишта испарава и са њим зли смрад који је -испуњавао ваздух. Да сам проклет, -можда си завршио. Да ли стварно -победио? Нешто тутњи у даљини. Плава +испуњавао ваздух. Боже, можда сте +завршили. Да ли сте стварно +победили? + +Нешто тутњи у даљини. Плава светлост почиње да светли унутар уништене лобање избацивача демона." "What now? Looks totally different. Kind @@ -3466,15 +3468,15 @@ pisoteadas da pata de ferro de um ciberdemônio.",,,"Пришло время д Покинув транспортное средство, Вы слышите топот железного копыта -кибердемона.","Време је за одмор. Уништио си утробу -пакла и заслужено си спреман за -одмор. Промумлаш сам себи. Можда +кибердемона.","Време је за одмор. Уништили сте утробу +пакла и заслужено сте спремни за +одмор. Промумљате сами себи. Можда неко други може да растури тур паклу следећи пут. Напред је тиха варош, са мирним водама, старомодним зградама, и вероватно нема демона. -Корачаш ван својег транспорта, и чујеш +Корачате ван својег транспорта, и чујете удар челичног копита сајбердемона." "Trouble was brewing again in your favorite vacation spot... Hell. Some Cyberdemon @@ -3723,22 +3725,22 @@ Esta atração está fechada.",,,"Ваше любимое место отдых последний стон булькает из того, что осталось от его лица. -Этот аттракцион закрыт.","Опет се кувала невоља на твом +Этот аттракцион закрыт.","Опет се кувала невоља на вашем омиљеном месту за одмор... Пакао. Неки сајбердемон је мислио да може да претвори пакао у луна парк, а земља билетарница. -Па, та полу-роботска наказа не зна шта -му долази. Не постоји ништа као -стрелиште пуно демона да ти заврије +Али та полу-роботска наказа не зна шта +му долази. Не постоји ништа као +стрелиште пуно демона да вам заврије крв... Сада зидови демоновог лавиринта одјекују са звуковима металних удовима који ударају под. Његов посмртни јаук грогори из збрке -од лице са којем си га ти оставио. +од лице са којем сте га вам оставили. Ова атракција је затворена." "With the destruction of the Iron @@ -3808,7 +3810,22 @@ infierno desde el otro lado. Esto significa por supuesto que podrías quedarte atrapad@[ao_esp] en un mundo muy desagradable, ¡pero nadie ha dicho -que ser un Hereje sería fácil!",,,"Avec la destruction des liches +que ser un Hereje sería fácil!",,"Rautakalmojen ynnä niiden kätyreiden tuhon +myötä viimeisetkin epäkuolleet on korjattu +tältä olevaisuuden tasolta. + +Olentojen on täytynyt kuitenkin tulla +jostakin, ja ounastelet helvetin kidan +palavan portaalin aukeavan niiden +kotiulottuvuuteen. + +Varmistaaksesi, ettei enempää epäkuolleita +(tai vielä pahempaa) tule läpi, sinun on +sinetöitävä helvetin kita toiselta puolelta. +Se tietenkin tarkoittaa, että saatat jäädä +jumiin hyvin vihamieliseen maailmaan, mutta +kukaan ei sanonutkaan kerettiläisyyden +olevan helppoa!","Avec la destruction des liches de fer et leur serviteurs, les derniers mort-vivants furent éliminés de cette plaine de l'existence. @@ -4032,7 +4049,21 @@ maulotauros? ¿Podría haber seres más horribles al otro lado de esta puerta? La visión de un domo de cristal sobre ti donde debería estar el cielo no es -ciertamente una buena señal...",,"Les puissants massetaures ont fini par +ciertamente una buena señal...","Mahtavat maulotaurit eivät osoittautuneet +sinulle vastukseksi, ja niiden savuavien +ruumiiden syöksyessä maahan tunnet julmaa +mielihyvää niiden tuhoutumisesta. + +Niiden vartioimat porttikäytävät ovat +avautuneet paljastamaan tien, jonka toivot +johtavan kotiin. Mutta astuessasi läpi +kuulet pilkkaavan naurun soivan korvissasi. + +Hallitsiko jokin muu voima maulotaureja? +Voisiko tämän portin takana olla vieläkin +kamalampia olentoja? Yläpuolellesi kaartuva +kristallikupoli, jossa taivaan pitäisi olla, +ei ainakaan lupaa hyvää....","Les puissants massetaures ont fini par prouver qu'il n'étaient pas votre égal, et leurs cadavres fumants étalés sur le sol, vous sentez l'infernale @@ -4274,7 +4305,25 @@ una invocación? No lo sabes, podría haber sido solo un grito. De todos modos, ¿Qué hay de los otros -Jinetes de Serpientes?",,"La mort de D'Sparil a libéré les +Jinetes de Serpientes?","D'Sparilin kuoleman heikennettyä +taikavoimia, jotka sitovat hänen olentonsa +tähän ulottuvuuteen, niiden kuolonhuudot +hukuttavat allensa hänen omat piinaiset +parahduksensa. + +Kostonvalasi täytettynä astut portaalista +omaan maailmaasi vain hetkeä ennen kupolin +särkymistä miljooniksi palasiksi. + +Mutta jos D'Sparilin voima on murrettu +iäksi, mikset tunne oloasi turvalliseksi? +Oliko se hänen viimeinen juuri ennen hänen +kuolemaansa edeltänyt huuto, joka kuulosti +kiroukselta? Tai manaukselta? Et voi olla +ihan varma, mutta se saattoi olla vain huuto. + +Mutta toisaalta, miten on muiden +Käärmeratsastajien laita?","La mort de D'Sparil a libéré les liens magiques liant les créatures de ce monde, leurs cris d'agonie surpassant ses propres hurlements. @@ -4539,7 +4588,26 @@ debes entrar a esa fosa con la esperanza de encontrar una salida. Y en alguna parte, en la esquina más oscura de la heredad de D'Sparil, sus guardaespaldas -personales aguardan tú llegada...",,"Vous aviez cru pouvoir retourner dans +personales aguardan tú llegada...","Luulit palaavasi maailmaasi D'Sparilin +kuoleman jälkeen, mutta hänen viimeinen +tekonsa karkotti sinut hänen omaan +ulottuvuuteensa. Täällä sinä astuit +raunioisten maiden rippeisiin, jotka +D'Sparil oli valloittanut. Päihitit näiden +maiden viimeiset vartijat, mutta nyt seisot +D'Sparilin linnoituksen porttien edessä. +Ennen tätä hetkeä sinulla ei ollut +epäilystäkään kyvyistäsi kohdata mitä +tahansa vastaasi mahdollisesti tulevaa, +mutta tämän portin takana sijaitsee juuri +sen samaisen pahuuden sydän, joka oli +hyökännyt maailmaasi. D'Sparil saattaa olla +kuollut, mutta syvyys, josta hänet +synnytettiin, jatkuu olemistaan. Nyt sinun +on laskeuduttava siihen syvyyteen ulospääsyn +toivossa, ja jossakin D'Sparilin piirin +pimeimmässä nurkassa hänen henkivartijansa +odottavat saapumistasi.","Vous aviez cru pouvoir retourner dans votre monde après que D'Sparil ne trépasse, mais son acte final fut de vous bannir dans sa propre @@ -4772,7 +4840,24 @@ a continuar en el enfrentamiento de tal desesperación? ¿Tienes el valor? Encuentras que al final, no está en ti rendirte sin pelear. Con ojos abiertos, -vas a encontrarte con tu destino. ",,,"Dès que le dernier massetaure eût mugi +vas a encontrarte con tu destino. ",,"Viimeisen maulotaurin mylviessä +kuolontuskaansa tajuat, ettet ole koskaan +tullut näin lähelle omaa tuhoasi. Edes +taistelu D'Sparilin ja hänen opetuslastensa +kanssa ei ollut näin epätoivoinen. Tuijotat +synkästi edessäsi aukeavia portteja miettien, +johtavatko ne kotiin, vai avautuvatko ne +johonkin kauhuun, josta et ole osannut +uneksiakaan. Huomaat pohtivasi, onko sinulla +voimia jatkaa, jos vastassasi ei ole muuta +kuin kuolemaa ja tuskaa. Mutta mitä +muutakaan voit tehdä, jos tahto taistella on +loppu? Voitko pakottaa itsesi jatkamaan +sellaisen toivottomuuden edessä? Riittääkö +sinulla rohkeus? Päädyt lopulta siihen, +ettei taistelematta luovuttaminen kuulu +luontoosi. Menet silmät avoinna tapaamaan +kohtalosi.","Dès que le dernier massetaure eût mugi son râle d'agonie, Vous réalisez que vous n'avez jamais été aussi proche de votre propre mort. Même le combat @@ -7021,7 +7106,7 @@ Then get lost!,TXT_RYES1_SCRIPT02_D69736_THENG,,,,Tak vypadni!,Dann verzieh dich ほぼ使われていない。潜入してヤツを黙らせて、 仕事をした証拠としてヤツの指輪を見せてくれ。","좋구만... 그래서, 내 지인이 말하기를 벨딘이라는 사람의 입을 다물게 만들라는군. 그는 지금 오더에 의해 성소에 감금됐네. 그 근처 강가에 있는 작은 부두 옆에 자주 쓰이지 않는 입구가 있다네. 거기로 향해서, 그의 입을 막게. 그리고 그의 반지를 증거로 가져오게.","Dobrze. Paru moich... ehmm... przyjaciół potrzebuje kogoś uciszyć. Beldin jest trzymany przez Zakon w ich sanktuarium. Jest tu gdzieś rzadko używane wejście przy małej przystani przy rzece, które jest niestrzeżone. Wejdź tam, ucisz go i przynieś mi jego pierścień jako dowód.","Ótimo. Alguns hã, amigos meus precisam silenciar alguém. Beldin foi detido pela Ordem no santuário deles. Há uma entrada pouco usada perto de um pequeno pier pelo rio que está sem guardas. Entre lá, cale a boca dele e traga o seu anel de volta pra mim como prova.",,,"Хорошо. Некоторые мои, э-э-э, приятели, хотят, чтобы кое-кто замолчал. Орден держит предателя по имени Белдин в своём святилище. На берегу реки есть вход, который редко используется, а потому не охраняется. Проберись внутрь, заставь предателя замолчать навсегда и принеси мне его кольцо в качестве доказательства.", Will it be worth the effort?,TXT_RPLY0_SCRIPT02_D72768_WILLI,,,,Bude mi to stát za to?,Wird es die Mühe denn wert sein?,,,¿Valdrá la pena el esfuerzo?,,,Est-ce que ça en vaudra l'effort?,Megéri az erőfeszítést?,,苦労に見合った報酬だろうな?,노력할만한 가치가 있나요?,Czy będzie to warte moich starań?,Será que vale a pena o esforço?,,,Оно того стоит?, -"I'll guarantee 50 gold and if you return without setting off every alarm in town, there's the chance to earn much, much more, and here's a little helper that should give you an edge.",TXT_DLG_SCRIPT02_D74284_ILLGU,,,,"Garantuji ti padesát zlatých a jestliže se vrátíš bez toho, abys spustil každý poplach ve městě, je tu šance získat mnohem, mnohem víc. Tady je malý pomocník, který by ti měl pomoci.","Ich garantiere dir 50 Gold und wenn du zurückkehrst ohne den Alarm in der Stadt ausgelöst zu haben, dann hast du noch die Chance, viel, viel mehr zu verdienen und hier ist noch ein kleiner Helfer der dir einen Vorteil verschaffen wird.",,,"Te garantizo 50 de oro y si vuelves sin activar todas las alarmas del pueblo, existe la posibilidad de ganar mucho, mucho más, y aquí hay un pequeño ayudante que debería darte una ventaja.",,,"Je vous garantis 50 pièces et si vous revenez sans déclencher toutes les alarmes de la ville, vous avez la possibilité de gagner bien plus. Voilà une petite avance qui pourra vous aider.",,,"50ゴールドは保証するし街の警報を鳴らさず +"I'll guarantee 50 gold and if you return without setting off every alarm in town, there's the chance to earn much, much more, and here's a little helper that should give you an edge.",TXT_DLG_SCRIPT02_D74284_ILLGU,,,,"Garantuji ti padesát zlatých a jestliže se vrátíš bez toho, abys spustil každý poplach ve městě, je tu šance vydělat si mnohem, mnohem víc. Tady je malý pomocník, který by ti měl pomoci.","Ich garantiere dir 50 Gold und wenn du zurückkehrst ohne den Alarm in der Stadt ausgelöst zu haben, dann hast du noch die Chance, viel, viel mehr zu verdienen und hier ist noch ein kleiner Helfer der dir einen Vorteil verschaffen wird.",,,"Te garantizo 50 de oro y si vuelves sin activar todas las alarmas del pueblo, existe la posibilidad de ganar mucho, mucho más, y aquí hay un pequeño ayudante que debería darte una ventaja.",,,"Je vous garantis 50 pièces et si vous revenez sans déclencher toutes les alarmes de la ville, vous avez la possibilité de gagner bien plus. Voilà une petite avance qui pourra vous aider.",,,"50ゴールドは保証するし街の警報を鳴らさず 戻ってこれたら、もっと金を得られる機会が あるぞ。それと、お前の力となる物も渡そう。","만약 이 마을의 경보를 울리지 않고 조용히 완수하면 50 골드를 보상으로 주지. 이 외에도 더 많은 보상을 받을 수 있는 일들이 아주 많이 있다네. 그리고 여기, 모험에 도움이 될 만한 무기를 가져가게.","Gwarantuję 50 monet, a jeśli wrócisz bez włączania wszystkich alarmów w mieście, jest szansa, że mógłbyś dostać więcej. Znacznie więcej. Oto mały pomocnik, który da ci przewagę.","Garanto que você será pago 50 de ouro e se você retornar sem ativar todos os alarmes na cidade haverá uma chance de ganhar muito, muito mais. E aqui tem algo que pode te ajudar um pouco.",,,"Я обещаю тебе 50 золотых. И ты сможешь заработать куда больше, если выполнишь задание, не переполошив всю стражу в городе. А чтобы у тебя было некоторое преимущество, вот тебе небольшой помощник. ", From 154af34cd9ccd399270449ed3ea0e1a72c60bb31 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Wed, 31 Jul 2019 17:02:39 +0200 Subject: [PATCH 26/32] - added an option to always display the log and the subtitles with the generic font. If this is on it will disable the status bar's pop screen for the log and always use the HUD overlay instead. --- src/console/c_console.cpp | 5 ----- src/g_statusbar/shared_sbar.cpp | 6 +++--- src/gamedata/fonts/v_font.h | 2 -- src/intermission/intermission.cpp | 2 +- wadsrc/static/zscript/ui/statusbar/strife_sbar.zs | 4 ++-- 5 files changed, 6 insertions(+), 13 deletions(-) diff --git a/src/console/c_console.cpp b/src/console/c_console.cpp index 7b9a0ae58..199c5a752 100644 --- a/src/console/c_console.cpp +++ b/src/console/c_console.cpp @@ -581,11 +581,6 @@ CUSTOM_CVAR (Int, msgmidcolor2, 4, CVAR_ARCHIVE) setmsgcolor (PRINTLEVELS+1, self); } -FFont * C_GetDefaultHUDFont() -{ - return generic_ui? NewSmallFont : SmallFont; -} - void C_InitConback() { conback = TexMan.CheckForTexture ("CONBACK", ETextureType::MiscPatch); diff --git a/src/g_statusbar/shared_sbar.cpp b/src/g_statusbar/shared_sbar.cpp index 293edf355..aec788b56 100644 --- a/src/g_statusbar/shared_sbar.cpp +++ b/src/g_statusbar/shared_sbar.cpp @@ -86,7 +86,7 @@ EXTERN_CVAR (Int, con_scaletext) EXTERN_CVAR(Bool, vid_fps) EXTERN_CVAR(Bool, inter_subtitles) CVAR(Int, hud_scale, 0, CVAR_ARCHIVE); - +CVAR(Bool, log_vgafont, false, CVAR_ARCHIVE) DBaseStatusBar *StatusBar; @@ -1231,10 +1231,10 @@ void DBaseStatusBar::DrawLog () if (text.IsNotEmpty()) { // This uses the same scaling as regular HUD messages - auto scale = active_con_scaletext(generic_ui); + auto scale = active_con_scaletext(generic_ui || log_vgafont); hudwidth = SCREENWIDTH / scale; hudheight = SCREENHEIGHT / scale; - FFont *font = C_GetDefaultHUDFont(); + FFont *font = (generic_ui || log_vgafont)? NewSmallFont : SmallFont; int linelen = hudwidth<640? Scale(hudwidth,9,10)-40 : 560; auto lines = V_BreakLines (font, linelen, text[0] == '$'? GStrings(text.GetChars()+1) : text.GetChars()); diff --git a/src/gamedata/fonts/v_font.h b/src/gamedata/fonts/v_font.h index 2c9d1aeb6..960476054 100644 --- a/src/gamedata/fonts/v_font.h +++ b/src/gamedata/fonts/v_font.h @@ -191,7 +191,5 @@ EColorRange V_ParseFontColor (const uint8_t *&color_value, int normalcolor, int FFont *V_GetFont(const char *fontname, const char *fontlumpname = nullptr); void V_InitFontColors(); -FFont * C_GetDefaultHUDFont(); - #endif //__V_FONT_H__ diff --git a/src/intermission/intermission.cpp b/src/intermission/intermission.cpp index 2d39b24ad..22226b563 100644 --- a/src/intermission/intermission.cpp +++ b/src/intermission/intermission.cpp @@ -84,7 +84,7 @@ void DrawFullscreenSubtitle(const char *text) auto scale = active_con_scaletext(generic_ui); int hudwidth = SCREENWIDTH / scale; int hudheight = SCREENHEIGHT / scale; - FFont *font = C_GetDefaultHUDFont(); + FFont *font = generic_ui? NewSmallFont : SmallFont; int linelen = hudwidth < 640 ? Scale(hudwidth, 9, 10) - 40 : 560; auto lines = V_BreakLines(font, linelen, text); diff --git a/wadsrc/static/zscript/ui/statusbar/strife_sbar.zs b/wadsrc/static/zscript/ui/statusbar/strife_sbar.zs index 5adf3ee6e..3a7c3e072 100644 --- a/wadsrc/static/zscript/ui/statusbar/strife_sbar.zs +++ b/wadsrc/static/zscript/ui/statusbar/strife_sbar.zs @@ -109,7 +109,7 @@ class StrifeStatusBar : BaseStatusBar override void ShowPop (int popnum) { Super.ShowPop(popnum); - if (popnum == CurrentPop || (popnum == POP_LOG && generic_ui)) + if (popnum == CurrentPop || (popnum == POP_LOG && MustDrawLog(0))) { if (popnum == POP_Keys) { @@ -146,7 +146,7 @@ class StrifeStatusBar : BaseStatusBar override bool MustDrawLog(int state) { // Tell the base class to draw the log if the pop screen won't be displayed. - return generic_ui; + return generic_ui || log_vgafont; } void Reset () From 5870cb7ea1ff5a4d902a7e77c12737b841b0997a Mon Sep 17 00:00:00 2001 From: "alexey.lysiuk" Date: Fri, 2 Aug 2019 10:21:06 +0300 Subject: [PATCH 27/32] - recreate Vulkan swapchain in case of surface lost error Do not abort with fatal error when VK_ERROR_SURFACE_LOST_KHR was returned from vkAcquireNextImageKHR() or vkQueuePresentKHR() So far, only gfx-portability implementation is reporting this error from time to time, usually on startup, entering the game, or task switching --- src/rendering/vulkan/system/vk_swapchain.cpp | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/src/rendering/vulkan/system/vk_swapchain.cpp b/src/rendering/vulkan/system/vk_swapchain.cpp index f5ca6599b..5f331bedc 100644 --- a/src/rendering/vulkan/system/vk_swapchain.cpp +++ b/src/rendering/vulkan/system/vk_swapchain.cpp @@ -44,7 +44,7 @@ uint32_t VulkanSwapChain::AcquireImage(int width, int height, VulkanSemaphore *s { break; } - else if (result == VK_SUBOPTIMAL_KHR) + else if (result == VK_SUBOPTIMAL_KHR || result == VK_ERROR_SURFACE_LOST_KHR) { // Force the recreate to happen next frame. // The spec is not very clear about what happens to the semaphore or the acquired image if the swapchain is recreated before the image is released with a call to vkQueuePresentKHR. @@ -69,10 +69,6 @@ uint32_t VulkanSwapChain::AcquireImage(int width, int height, VulkanSemaphore *s { VulkanError("vkAcquireNextImageKHR failed: device lost"); } - else if (result == VK_ERROR_SURFACE_LOST_KHR) - { - VulkanError("vkAcquireNextImageKHR failed: surface lost"); - } else { VulkanError("vkAcquireNextImageKHR failed"); @@ -92,7 +88,7 @@ void VulkanSwapChain::QueuePresent(uint32_t imageIndex, VulkanSemaphore *semapho presentInfo.pImageIndices = &imageIndex; presentInfo.pResults = nullptr; VkResult result = vkQueuePresentKHR(device->presentQueue, &presentInfo); - if (result == VK_SUBOPTIMAL_KHR || result == VK_ERROR_OUT_OF_DATE_KHR) + if (result == VK_SUBOPTIMAL_KHR || result == VK_ERROR_OUT_OF_DATE_KHR || result == VK_ERROR_SURFACE_LOST_KHR) { lastSwapWidth = 0; lastSwapHeight = 0; @@ -108,10 +104,6 @@ void VulkanSwapChain::QueuePresent(uint32_t imageIndex, VulkanSemaphore *semapho { VulkanError("vkQueuePresentKHR failed: device lost"); } - else if (result == VK_ERROR_SURFACE_LOST_KHR) - { - VulkanError("vkQueuePresentKHR failed: surface lost"); - } else if (result != VK_SUCCESS) { VulkanError("vkQueuePresentKHR failed"); From 479a992a3e91a85ad9e25e6a1cc72b9db2a3ddc6 Mon Sep 17 00:00:00 2001 From: Blue Shadow Date: Fri, 2 Aug 2019 15:10:06 +0300 Subject: [PATCH 28/32] - fixed buggy ArmorFactor behavior when set to a value other than 1.0 --- .../static/zscript/actors/inventory/armor.zs | 45 ++++++++----------- 1 file changed, 19 insertions(+), 26 deletions(-) diff --git a/wadsrc/static/zscript/actors/inventory/armor.zs b/wadsrc/static/zscript/actors/inventory/armor.zs index 96d355e19..bfb5d15ac 100644 --- a/wadsrc/static/zscript/actors/inventory/armor.zs +++ b/wadsrc/static/zscript/actors/inventory/armor.zs @@ -40,6 +40,23 @@ class Armor : Inventory Inventory.PickupSound "misc/armor_pkup"; +INVENTORY.ISARMOR } + + int GetSaveAmount () + { + if (self is 'BasicArmorBonus') + { + let armor = BasicArmorBonus(self); + return !armor.bIgnoreSkill ? int(armor.SaveAmount * G_SkillPropertyFloat(SKILLP_ArmorFactor)) : armor.SaveAmount; + } + + if (self is 'BasicArmorPickup') + { + let armor = BasicArmorPickup(self); + return !armor.bIgnoreSkill ? int(armor.SaveAmount * G_SkillPropertyFloat(SKILLP_ArmorFactor)) : armor.SaveAmount; + } + + return 0; + } } //=========================================================================== @@ -132,19 +149,6 @@ class BasicArmor : Armor // You shouldn't be picking up BasicArmor anyway. return true; } - if (!item.bIgnoreSkill) - { - if (item is "BasicArmorBonus") - { - let armor = BasicArmorBonus(item); - armor.SaveAmount = int(armor.SaveAmount * G_SkillPropertyFloat(SKILLP_ArmorFactor)); - } - else if (item is "BasicArmorPickup") - { - let armor = BasicArmorPickup(item); - armor.SaveAmount = int(armor.SaveAmount * G_SkillPropertyFloat(SKILLP_ArmorFactor)); - } - } return false; } @@ -263,12 +267,6 @@ class BasicArmorBonus : Armor override Inventory CreateCopy (Actor other) { let copy = BasicArmorBonus(Super.CreateCopy (other)); - - if (!bIgnoreSkill) - { - SaveAmount = int(SaveAmount * G_SkillPropertyFloat(SKILLP_ArmorFactor)); - } - copy.SavePercent = SavePercent; copy.SaveAmount = SaveAmount; copy.MaxSaveAmount = MaxSaveAmount; @@ -309,7 +307,7 @@ class BasicArmorBonus : Armor result = true; } - int saveAmount = min(SaveAmount, MaxSaveAmount); + int saveAmount = min(GetSaveAmount(), MaxSaveAmount); if (saveAmount <= 0) { // If it can't give you anything, it's as good as used. @@ -383,12 +381,6 @@ class BasicArmorPickup : Armor override Inventory CreateCopy (Actor other) { let copy = BasicArmorPickup(Super.CreateCopy (other)); - - if (!bIgnoreSkill) - { - SaveAmount = int(SaveAmount * G_SkillPropertyFloat(SKILLP_ArmorFactor)); - } - copy.SavePercent = SavePercent; copy.SaveAmount = SaveAmount; copy.MaxAbsorb = MaxAbsorb; @@ -410,6 +402,7 @@ class BasicArmorPickup : Armor override bool Use (bool pickup) { + int SaveAmount = GetSaveAmount(); let armor = BasicArmor(Owner.FindInventory("BasicArmor")); // This should really never happen but let's be prepared for a broken inventory. From cf81ab465ece2bcf56bc1792d8a185cce01015bc Mon Sep 17 00:00:00 2001 From: "alexey.lysiuk" Date: Sat, 3 Aug 2019 10:52:04 +0300 Subject: [PATCH 29/32] - updated Vulkan headers to version 1.1.114 This is the latest version released with Vulkan SDK New headers are needed for EXT_metal_surface --- .../vulkan/thirdparty/vulkan/vk_icd.h | 7 +- .../vulkan/thirdparty/vulkan/vk_layer.h | 17 +- .../vulkan/thirdparty/vulkan/vulkan.h | 19 +- .../vulkan/thirdparty/vulkan/vulkan_android.h | 121 + .../vulkan/thirdparty/vulkan/vulkan_core.h | 2387 +++++++++++++++-- .../vulkan/thirdparty/vulkan/vulkan_fuchsia.h | 56 + .../vulkan/thirdparty/vulkan/vulkan_ggp.h | 67 + .../vulkan/thirdparty/vulkan/vulkan_ios.h | 6 +- .../vulkan/thirdparty/vulkan/vulkan_macos.h | 6 +- .../vulkan/thirdparty/vulkan/vulkan_metal.h | 63 + .../vulkan/thirdparty/vulkan/vulkan_vi.h | 6 +- .../vulkan/thirdparty/vulkan/vulkan_wayland.h | 6 +- .../vulkan/thirdparty/vulkan/vulkan_win32.h | 79 +- .../vulkan/thirdparty/vulkan/vulkan_xcb.h | 6 +- .../vulkan/thirdparty/vulkan/vulkan_xlib.h | 6 +- .../thirdparty/vulkan/vulkan_xlib_xrandr.h | 4 +- 16 files changed, 2604 insertions(+), 252 deletions(-) create mode 100644 src/rendering/vulkan/thirdparty/vulkan/vulkan_android.h create mode 100644 src/rendering/vulkan/thirdparty/vulkan/vulkan_fuchsia.h create mode 100644 src/rendering/vulkan/thirdparty/vulkan/vulkan_ggp.h create mode 100644 src/rendering/vulkan/thirdparty/vulkan/vulkan_metal.h diff --git a/src/rendering/vulkan/thirdparty/vulkan/vk_icd.h b/src/rendering/vulkan/thirdparty/vulkan/vk_icd.h index b935fa178..a2d960a63 100644 --- a/src/rendering/vulkan/thirdparty/vulkan/vk_icd.h +++ b/src/rendering/vulkan/thirdparty/vulkan/vk_icd.h @@ -88,7 +88,8 @@ typedef enum { VK_ICD_WSI_PLATFORM_ANDROID, VK_ICD_WSI_PLATFORM_MACOS, VK_ICD_WSI_PLATFORM_IOS, - VK_ICD_WSI_PLATFORM_DISPLAY + VK_ICD_WSI_PLATFORM_DISPLAY, + VK_ICD_WSI_PLATFORM_HEADLESS } VkIcdWsiPlatform; typedef struct { @@ -167,4 +168,8 @@ typedef struct { VkExtent2D imageExtent; } VkIcdSurfaceDisplay; +typedef struct { + VkIcdSurfaceBase base; +} VkIcdSurfaceHeadless; + #endif // VKICD_H diff --git a/src/rendering/vulkan/thirdparty/vulkan/vk_layer.h b/src/rendering/vulkan/thirdparty/vulkan/vk_layer.h index e8300c37d..fa7652008 100644 --- a/src/rendering/vulkan/thirdparty/vulkan/vk_layer.h +++ b/src/rendering/vulkan/thirdparty/vulkan/vk_layer.h @@ -35,9 +35,6 @@ #define VK_LAYER_EXPORT #endif -// Definition for VkLayerDispatchTable and VkLayerInstanceDispatchTable now appear in externally generated header -#include "vk_layer_dispatch_table.h" - #define MAX_NUM_UNKNOWN_EXTS 250 // Loader-Layer version negotiation API. Versions add the following features: @@ -50,6 +47,9 @@ #define VK_CURRENT_CHAIN_VERSION 1 +// Typedef for use in the interfaces below +typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_GetPhysicalDeviceProcAddr)(VkInstance instance, const char* pName); + // Version negotiation values typedef enum VkNegotiateLayerStructType { LAYER_NEGOTIATE_UNINTIALIZED = 0, @@ -82,7 +82,8 @@ typedef VkResult(VKAPI_PTR *PFN_PhysDevExt)(VkPhysicalDevice phys_device); */ typedef enum VkLayerFunction_ { VK_LAYER_LINK_INFO = 0, - VK_LOADER_DATA_CALLBACK = 1 + VK_LOADER_DATA_CALLBACK = 1, + VK_LOADER_LAYER_CREATE_DEVICE_CALLBACK = 2 } VkLayerFunction; typedef struct VkLayerInstanceLink_ { @@ -107,7 +108,9 @@ typedef VkResult (VKAPI_PTR *PFN_vkSetInstanceLoaderData)(VkInstance instance, void *object); typedef VkResult (VKAPI_PTR *PFN_vkSetDeviceLoaderData)(VkDevice device, void *object); - +typedef VkResult (VKAPI_PTR *PFN_vkLayerCreateDevice)(VkInstance instance, VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo *pCreateInfo, + const VkAllocationCallbacks *pAllocator, VkDevice *pDevice, PFN_vkGetInstanceProcAddr layerGIPA, PFN_vkGetDeviceProcAddr *nextGDPA); +typedef void (VKAPI_PTR *PFN_vkLayerDestroyDevice)(VkDevice physicalDevice, const VkAllocationCallbacks *pAllocator, PFN_vkDestroyDevice destroyFunction); typedef struct { VkStructureType sType; // VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO const void *pNext; @@ -115,6 +118,10 @@ typedef struct { union { VkLayerInstanceLink *pLayerInfo; PFN_vkSetInstanceLoaderData pfnSetInstanceLoaderData; + struct { + PFN_vkLayerCreateDevice pfnLayerCreateDevice; + PFN_vkLayerDestroyDevice pfnLayerDestroyDevice; + } layerDevice; } u; } VkLayerInstanceCreateInfo; diff --git a/src/rendering/vulkan/thirdparty/vulkan/vulkan.h b/src/rendering/vulkan/thirdparty/vulkan/vulkan.h index d05c8490a..5f853f9fc 100644 --- a/src/rendering/vulkan/thirdparty/vulkan/vulkan.h +++ b/src/rendering/vulkan/thirdparty/vulkan/vulkan.h @@ -2,7 +2,7 @@ #define VULKAN_H_ 1 /* -** Copyright (c) 2015-2018 The Khronos Group Inc. +** Copyright (c) 2015-2019 The Khronos Group Inc. ** ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. @@ -24,6 +24,10 @@ #include "vulkan_android.h" #endif +#ifdef VK_USE_PLATFORM_FUCHSIA +#include +#include "vulkan_fuchsia.h" +#endif #ifdef VK_USE_PLATFORM_IOS_MVK #include "vulkan_ios.h" @@ -34,13 +38,10 @@ #include "vulkan_macos.h" #endif - -#ifdef VK_USE_PLATFORM_MIR_KHR -#include -#include "vulkan_mir.h" +#ifdef VK_USE_PLATFORM_METAL_EXT +#include "vulkan_metal.h" #endif - #ifdef VK_USE_PLATFORM_VI_NN #include "vulkan_vi.h" #endif @@ -76,4 +77,10 @@ #include "vulkan_xlib_xrandr.h" #endif + +#ifdef VK_USE_PLATFORM_GGP +#include +#include "vulkan_ggp.h" +#endif + #endif // VULKAN_H_ diff --git a/src/rendering/vulkan/thirdparty/vulkan/vulkan_android.h b/src/rendering/vulkan/thirdparty/vulkan/vulkan_android.h new file mode 100644 index 000000000..186180241 --- /dev/null +++ b/src/rendering/vulkan/thirdparty/vulkan/vulkan_android.h @@ -0,0 +1,121 @@ +#ifndef VULKAN_ANDROID_H_ +#define VULKAN_ANDROID_H_ 1 + +#ifdef __cplusplus +extern "C" { +#endif + +/* +** Copyright (c) 2015-2019 The Khronos Group Inc. +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ + +/* +** This header is generated from the Khronos Vulkan XML API Registry. +** +*/ + + + +#define VK_KHR_android_surface 1 +struct ANativeWindow; +#define VK_KHR_ANDROID_SURFACE_SPEC_VERSION 6 +#define VK_KHR_ANDROID_SURFACE_EXTENSION_NAME "VK_KHR_android_surface" +typedef VkFlags VkAndroidSurfaceCreateFlagsKHR; +typedef struct VkAndroidSurfaceCreateInfoKHR { + VkStructureType sType; + const void* pNext; + VkAndroidSurfaceCreateFlagsKHR flags; + struct ANativeWindow* window; +} VkAndroidSurfaceCreateInfoKHR; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateAndroidSurfaceKHR)(VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateAndroidSurfaceKHR( + VkInstance instance, + const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkSurfaceKHR* pSurface); +#endif + + +#define VK_ANDROID_external_memory_android_hardware_buffer 1 +struct AHardwareBuffer; +#define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_SPEC_VERSION 3 +#define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_EXTENSION_NAME "VK_ANDROID_external_memory_android_hardware_buffer" +typedef struct VkAndroidHardwareBufferUsageANDROID { + VkStructureType sType; + void* pNext; + uint64_t androidHardwareBufferUsage; +} VkAndroidHardwareBufferUsageANDROID; + +typedef struct VkAndroidHardwareBufferPropertiesANDROID { + VkStructureType sType; + void* pNext; + VkDeviceSize allocationSize; + uint32_t memoryTypeBits; +} VkAndroidHardwareBufferPropertiesANDROID; + +typedef struct VkAndroidHardwareBufferFormatPropertiesANDROID { + VkStructureType sType; + void* pNext; + VkFormat format; + uint64_t externalFormat; + VkFormatFeatureFlags formatFeatures; + VkComponentMapping samplerYcbcrConversionComponents; + VkSamplerYcbcrModelConversion suggestedYcbcrModel; + VkSamplerYcbcrRange suggestedYcbcrRange; + VkChromaLocation suggestedXChromaOffset; + VkChromaLocation suggestedYChromaOffset; +} VkAndroidHardwareBufferFormatPropertiesANDROID; + +typedef struct VkImportAndroidHardwareBufferInfoANDROID { + VkStructureType sType; + const void* pNext; + struct AHardwareBuffer* buffer; +} VkImportAndroidHardwareBufferInfoANDROID; + +typedef struct VkMemoryGetAndroidHardwareBufferInfoANDROID { + VkStructureType sType; + const void* pNext; + VkDeviceMemory memory; +} VkMemoryGetAndroidHardwareBufferInfoANDROID; + +typedef struct VkExternalFormatANDROID { + VkStructureType sType; + void* pNext; + uint64_t externalFormat; +} VkExternalFormatANDROID; + +typedef VkResult (VKAPI_PTR *PFN_vkGetAndroidHardwareBufferPropertiesANDROID)(VkDevice device, const struct AHardwareBuffer* buffer, VkAndroidHardwareBufferPropertiesANDROID* pProperties); +typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryAndroidHardwareBufferANDROID)(VkDevice device, const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, struct AHardwareBuffer** pBuffer); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetAndroidHardwareBufferPropertiesANDROID( + VkDevice device, + const struct AHardwareBuffer* buffer, + VkAndroidHardwareBufferPropertiesANDROID* pProperties); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryAndroidHardwareBufferANDROID( + VkDevice device, + const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, + struct AHardwareBuffer** pBuffer); +#endif + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/src/rendering/vulkan/thirdparty/vulkan/vulkan_core.h b/src/rendering/vulkan/thirdparty/vulkan/vulkan_core.h index c27b84d0e..544f24fb6 100644 --- a/src/rendering/vulkan/thirdparty/vulkan/vulkan_core.h +++ b/src/rendering/vulkan/thirdparty/vulkan/vulkan_core.h @@ -6,7 +6,7 @@ extern "C" { #endif /* -** Copyright (c) 2015-2018 The Khronos Group Inc. +** Copyright (c) 2015-2019 The Khronos Group Inc. ** ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. @@ -27,9 +27,9 @@ extern "C" { */ + #define VK_VERSION_1_0 1 #include "vk_platform.h" - #define VK_MAKE_VERSION(major, minor, patch) \ (((major) << 22) | ((minor) << 12) | (patch)) @@ -43,11 +43,10 @@ extern "C" { #define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3ff) #define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xfff) // Version of this file -#define VK_HEADER_VERSION 77 +#define VK_HEADER_VERSION 114 #define VK_NULL_HANDLE 0 - #define VK_DEFINE_HANDLE(object) typedef struct object##_T* object; @@ -60,14 +59,11 @@ extern "C" { #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object; #endif #endif - - typedef uint32_t VkFlags; typedef uint32_t VkBool32; typedef uint64_t VkDeviceSize; typedef uint32_t VkSampleMask; - VK_DEFINE_HANDLE(VkInstance) VK_DEFINE_HANDLE(VkPhysicalDevice) VK_DEFINE_HANDLE(VkDevice) @@ -93,7 +89,6 @@ VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorPool) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSet) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFramebuffer) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCommandPool) - #define VK_LOD_CLAMP_NONE 1000.0f #define VK_REMAINING_MIP_LEVELS (~0U) #define VK_REMAINING_ARRAY_LAYERS (~0U) @@ -110,7 +105,6 @@ VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCommandPool) #define VK_MAX_EXTENSION_NAME_SIZE 256 #define VK_MAX_DESCRIPTION_SIZE 256 - typedef enum VkPipelineCacheHeaderVersion { VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1, VK_PIPELINE_CACHE_HEADER_VERSION_BEGIN_RANGE = VK_PIPELINE_CACHE_HEADER_VERSION_ONE, @@ -147,8 +141,11 @@ typedef enum VkResult { VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = -1000003001, VK_ERROR_VALIDATION_FAILED_EXT = -1000011001, VK_ERROR_INVALID_SHADER_NV = -1000012000, + VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT = -1000158000, VK_ERROR_FRAGMENTATION_EXT = -1000161000, VK_ERROR_NOT_PERMITTED_EXT = -1000174001, + VK_ERROR_INVALID_DEVICE_ADDRESS_EXT = -1000244000, + VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT = -1000255000, VK_ERROR_OUT_OF_POOL_MEMORY_KHR = VK_ERROR_OUT_OF_POOL_MEMORY, VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = VK_ERROR_INVALID_EXTERNAL_HANDLE, VK_RESULT_BEGIN_RANGE = VK_ERROR_FRAGMENTED_POOL, @@ -243,7 +240,7 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO = 1000053000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES = 1000053001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES = 1000053002, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = 1000120000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES = 1000120000, VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO = 1000145000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES = 1000145001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES = 1000145002, @@ -271,7 +268,7 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES = 1000076001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES = 1000168000, VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT = 1000168001, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = 1000063000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES = 1000063000, VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000, VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001, VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007, @@ -286,7 +283,6 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR = 1000004000, VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR = 1000005000, VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR = 1000006000, - VK_STRUCTURE_TYPE_MIR_SURFACE_CREATE_INFO_KHR = 1000007000, VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000, VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000, VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000, @@ -297,7 +293,13 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000, VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001, VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT = 1000028000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT = 1000028001, + VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT = 1000028002, + VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX = 1000030000, VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000, + VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP = 1000049000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV = 1000050000, VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000, VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001, VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057000, @@ -305,6 +307,8 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = 1000058000, VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000, VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000, + VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT = 1000067000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT = 1000067001, VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000, VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001, VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002, @@ -320,6 +324,10 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR = 1000079000, VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR = 1000079001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = 1000080000, + VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT = 1000081000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT = 1000081001, + VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT = 1000081002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR = 1000082000, VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000, VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX = 1000086000, VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX = 1000086001, @@ -340,7 +348,20 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT = 1000099001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT = 1000101000, VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT = 1000101001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT = 1000102000, + VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT = 1000102001, VK_STRUCTURE_TYPE_HDR_METADATA_EXT = 1000105000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR = 1000108000, + VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR = 1000108001, + VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR = 1000108002, + VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR = 1000108003, + VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR = 1000109000, + VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR = 1000109001, + VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR = 1000109002, + VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR = 1000109003, + VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR = 1000109004, + VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR = 1000109005, + VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR = 1000109006, VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR = 1000111000, VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114000, VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114001, @@ -370,6 +391,10 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID = 1000129005, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT = 1000130000, VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT = 1000130001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT = 1000138000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT = 1000138001, + VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT = 1000138002, + VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT = 1000138003, VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = 1000143000, VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = 1000143001, VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = 1000143002, @@ -381,6 +406,14 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = 1000148002, VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = 1000149000, VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = 1000152000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV = 1000154000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV = 1000154001, + VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT = 1000158000, + VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT = 1000158002, + VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT = 1000158003, + VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT = 1000158004, + VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158005, VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160000, VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160001, VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT = 1000161000, @@ -388,13 +421,99 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT = 1000161002, VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT = 1000161003, VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT = 1000161004, + VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV = 1000164000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV = 1000164001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV = 1000164002, + VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV = 1000164005, + VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV = 1000165000, + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV = 1000165001, + VK_STRUCTURE_TYPE_GEOMETRY_NV = 1000165003, + VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV = 1000165004, + VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV = 1000165005, + VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV = 1000165006, + VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV = 1000165007, + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV = 1000165008, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV = 1000165009, + VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV = 1000165011, + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV = 1000165012, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV = 1000166000, + VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV = 1000166001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT = 1000170000, + VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT = 1000170001, VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = 1000174000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR = 1000177000, VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = 1000178000, VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR = 1000180000, + VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = 1000184000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000, + VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD = 1000189000, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = 1000190000, VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = 1000190001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT = 1000190002, + VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP = 1000191000, + VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT = 1000192000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR = 1000196000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR = 1000197000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR = 1000199000, + VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR = 1000199001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV = 1000201000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV = 1000202000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV = 1000202001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV = 1000203000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV = 1000204000, + VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV = 1000205000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV = 1000205002, + VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV = 1000206000, + VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV = 1000206001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS2_FEATURES_INTEL = 1000209000, + VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL = 1000210000, + VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL = 1000210001, + VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL = 1000210002, + VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL = 1000210003, + VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL = 1000210004, + VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL = 1000210005, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR = 1000211000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT = 1000212000, + VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD = 1000213000, + VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD = 1000213001, + VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA = 1000214000, + VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT = 1000217000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT = 1000218000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT = 1000218001, + VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT = 1000218002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT = 1000221000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT = 1000237000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT = 1000238000, + VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT = 1000238001, + VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR = 1000239000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV = 1000240000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT = 1000244000, + VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT = 1000244001, + VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT = 1000244002, + VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT = 1000246000, + VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT = 1000247000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV = 1000249000, + VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV = 1000250000, + VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV = 1000250001, + VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV = 1000250002, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT = 1000251000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT = 1000252000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR = 1000253000, + VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT = 1000255000, + VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT = 1000255002, + VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT = 1000255001, + VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT = 1000256000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT = 1000261000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT = 1000276000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT = 1000281000, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT = 1000281001, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES, + VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT, VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES, @@ -429,6 +548,7 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES, VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO, + VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO, VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES, VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO, @@ -437,6 +557,7 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO, VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES, VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS, VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO, VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2, @@ -454,6 +575,7 @@ typedef enum VkStructureType { VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES, VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT, + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT, VK_STRUCTURE_TYPE_BEGIN_RANGE = VK_STRUCTURE_TYPE_APPLICATION_INFO, VK_STRUCTURE_TYPE_END_RANGE = VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO, VK_STRUCTURE_TYPE_RANGE_SIZE = (VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO - VK_STRUCTURE_TYPE_APPLICATION_INFO + 1), @@ -761,6 +883,7 @@ typedef enum VkImageType { typedef enum VkImageTiling { VK_IMAGE_TILING_OPTIMAL = 0, VK_IMAGE_TILING_LINEAR = 1, + VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT = 1000158000, VK_IMAGE_TILING_BEGIN_RANGE = VK_IMAGE_TILING_OPTIMAL, VK_IMAGE_TILING_END_RANGE = VK_IMAGE_TILING_LINEAR, VK_IMAGE_TILING_RANGE_SIZE = (VK_IMAGE_TILING_LINEAR - VK_IMAGE_TILING_OPTIMAL + 1), @@ -783,6 +906,9 @@ typedef enum VkQueryType { VK_QUERY_TYPE_OCCLUSION = 0, VK_QUERY_TYPE_PIPELINE_STATISTICS = 1, VK_QUERY_TYPE_TIMESTAMP = 2, + VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004, + VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = 1000165000, + VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL = 1000210000, VK_QUERY_TYPE_BEGIN_RANGE = VK_QUERY_TYPE_OCCLUSION, VK_QUERY_TYPE_END_RANGE = VK_QUERY_TYPE_TIMESTAMP, VK_QUERY_TYPE_RANGE_SIZE = (VK_QUERY_TYPE_TIMESTAMP - VK_QUERY_TYPE_OCCLUSION + 1), @@ -812,6 +938,8 @@ typedef enum VkImageLayout { VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001, VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002, VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000, + VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = 1000164003, + VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = 1000218000, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_BEGIN_RANGE = VK_IMAGE_LAYOUT_UNDEFINED, @@ -1045,6 +1173,9 @@ typedef enum VkDynamicState { VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000, VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000, VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT = 1000143000, + VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV = 1000164004, + VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV = 1000164006, + VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV = 1000205001, VK_DYNAMIC_STATE_BEGIN_RANGE = VK_DYNAMIC_STATE_VIEWPORT, VK_DYNAMIC_STATE_END_RANGE = VK_DYNAMIC_STATE_STENCIL_REFERENCE, VK_DYNAMIC_STATE_RANGE_SIZE = (VK_DYNAMIC_STATE_STENCIL_REFERENCE - VK_DYNAMIC_STATE_VIEWPORT + 1), @@ -1055,6 +1186,7 @@ typedef enum VkFilter { VK_FILTER_NEAREST = 0, VK_FILTER_LINEAR = 1, VK_FILTER_CUBIC_IMG = 1000015000, + VK_FILTER_CUBIC_EXT = VK_FILTER_CUBIC_IMG, VK_FILTER_BEGIN_RANGE = VK_FILTER_NEAREST, VK_FILTER_END_RANGE = VK_FILTER_LINEAR, VK_FILTER_RANGE_SIZE = (VK_FILTER_LINEAR - VK_FILTER_NEAREST + 1), @@ -1107,6 +1239,8 @@ typedef enum VkDescriptorType { VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 8, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9, VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 10, + VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = 1000138000, + VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000, VK_DESCRIPTOR_TYPE_BEGIN_RANGE = VK_DESCRIPTOR_TYPE_SAMPLER, VK_DESCRIPTOR_TYPE_END_RANGE = VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, VK_DESCRIPTOR_TYPE_RANGE_SIZE = (VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT - VK_DESCRIPTOR_TYPE_SAMPLER + 1), @@ -1135,6 +1269,7 @@ typedef enum VkAttachmentStoreOp { typedef enum VkPipelineBindPoint { VK_PIPELINE_BIND_POINT_GRAPHICS = 0, VK_PIPELINE_BIND_POINT_COMPUTE = 1, + VK_PIPELINE_BIND_POINT_RAY_TRACING_NV = 1000165000, VK_PIPELINE_BIND_POINT_BEGIN_RANGE = VK_PIPELINE_BIND_POINT_GRAPHICS, VK_PIPELINE_BIND_POINT_END_RANGE = VK_PIPELINE_BIND_POINT_COMPUTE, VK_PIPELINE_BIND_POINT_RANGE_SIZE = (VK_PIPELINE_BIND_POINT_COMPUTE - VK_PIPELINE_BIND_POINT_GRAPHICS + 1), @@ -1153,6 +1288,7 @@ typedef enum VkCommandBufferLevel { typedef enum VkIndexType { VK_INDEX_TYPE_UINT16 = 0, VK_INDEX_TYPE_UINT32 = 1, + VK_INDEX_TYPE_NONE_NV = 1000165000, VK_INDEX_TYPE_BEGIN_RANGE = VK_INDEX_TYPE_UINT16, VK_INDEX_TYPE_END_RANGE = VK_INDEX_TYPE_UINT32, VK_INDEX_TYPE_RANGE_SIZE = (VK_INDEX_TYPE_UINT32 - VK_INDEX_TYPE_UINT16 + 1), @@ -1206,6 +1342,8 @@ typedef enum VkObjectType { VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX = 1000086001, VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000, VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000, + VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000, + VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL = 1000210000, VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE, VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION, VK_OBJECT_TYPE_BEGIN_RANGE = VK_OBJECT_TYPE_UNKNOWN, @@ -1214,6 +1352,15 @@ typedef enum VkObjectType { VK_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF } VkObjectType; +typedef enum VkVendorId { + VK_VENDOR_ID_VIV = 0x10001, + VK_VENDOR_ID_VSI = 0x10002, + VK_VENDOR_ID_KAZAN = 0x10003, + VK_VENDOR_ID_BEGIN_RANGE = VK_VENDOR_ID_VIV, + VK_VENDOR_ID_END_RANGE = VK_VENDOR_ID_KAZAN, + VK_VENDOR_ID_RANGE_SIZE = (VK_VENDOR_ID_KAZAN - VK_VENDOR_ID_VIV + 1), + VK_VENDOR_ID_MAX_ENUM = 0x7FFFFFFF +} VkVendorId; typedef VkFlags VkInstanceCreateFlags; typedef enum VkFormatFeatureFlagBits { @@ -1241,6 +1388,7 @@ typedef enum VkFormatFeatureFlagBits { VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 0x00800000, VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 0x00002000, VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = 0x00010000, + VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x01000000, VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT, VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_DST_BIT, VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT, @@ -1250,6 +1398,7 @@ typedef enum VkFormatFeatureFlagBits { VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT, VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = VK_FORMAT_FEATURE_DISJOINT_BIT, VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT, + VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG, VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkFormatFeatureFlagBits; typedef VkFlags VkFormatFeatureFlags; @@ -1263,6 +1412,8 @@ typedef enum VkImageUsageFlagBits { VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020, VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040, VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080, + VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = 0x00000100, + VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x00000200, VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkImageUsageFlagBits; typedef VkFlags VkImageUsageFlags; @@ -1280,7 +1431,9 @@ typedef enum VkImageCreateFlagBits { VK_IMAGE_CREATE_EXTENDED_USAGE_BIT = 0x00000100, VK_IMAGE_CREATE_PROTECTED_BIT = 0x00000800, VK_IMAGE_CREATE_DISJOINT_BIT = 0x00000200, + VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = 0x00002000, VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0x00001000, + VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT = 0x00004000, VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT, VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT, VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT, @@ -1357,7 +1510,15 @@ typedef enum VkPipelineStageFlagBits { VK_PIPELINE_STAGE_HOST_BIT = 0x00004000, VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000, VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000, + VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000, + VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000, VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX = 0x00020000, + VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = 0x00400000, + VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV = 0x00200000, + VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV = 0x02000000, + VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = 0x00080000, + VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = 0x00100000, + VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000, VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkPipelineStageFlagBits; typedef VkFlags VkPipelineStageFlags; @@ -1371,6 +1532,10 @@ typedef enum VkImageAspectFlagBits { VK_IMAGE_ASPECT_PLANE_0_BIT = 0x00000010, VK_IMAGE_ASPECT_PLANE_1_BIT = 0x00000020, VK_IMAGE_ASPECT_PLANE_2_BIT = 0x00000040, + VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT = 0x00000080, + VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT = 0x00000100, + VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT = 0x00000200, + VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT = 0x00000400, VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = VK_IMAGE_ASPECT_PLANE_1_BIT, VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = VK_IMAGE_ASPECT_PLANE_2_BIT, @@ -1431,6 +1596,7 @@ typedef enum VkBufferCreateFlagBits { VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002, VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0x00000004, VK_BUFFER_CREATE_PROTECTED_BIT = 0x00000008, + VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = 0x00000010, VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkBufferCreateFlagBits; typedef VkFlags VkBufferCreateFlags; @@ -1445,10 +1611,20 @@ typedef enum VkBufferUsageFlagBits { VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040, VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080, VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100, + VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0x00000800, + VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000, + VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200, + VK_BUFFER_USAGE_RAY_TRACING_BIT_NV = 0x00000400, + VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT = 0x00020000, VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkBufferUsageFlagBits; typedef VkFlags VkBufferUsageFlags; typedef VkFlags VkBufferViewCreateFlags; + +typedef enum VkImageViewCreateFlagBits { + VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT = 0x00000001, + VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkImageViewCreateFlagBits; typedef VkFlags VkImageViewCreateFlags; typedef VkFlags VkShaderModuleCreateFlags; typedef VkFlags VkPipelineCacheCreateFlags; @@ -1459,6 +1635,7 @@ typedef enum VkPipelineCreateFlagBits { VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004, VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008, VK_PIPELINE_CREATE_DISPATCH_BASE = 0x00000010, + VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV = 0x00000020, VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT, VK_PIPELINE_CREATE_DISPATCH_BASE_KHR = VK_PIPELINE_CREATE_DISPATCH_BASE, VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF @@ -1475,6 +1652,14 @@ typedef enum VkShaderStageFlagBits { VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020, VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F, VK_SHADER_STAGE_ALL = 0x7FFFFFFF, + VK_SHADER_STAGE_RAYGEN_BIT_NV = 0x00000100, + VK_SHADER_STAGE_ANY_HIT_BIT_NV = 0x00000200, + VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV = 0x00000400, + VK_SHADER_STAGE_MISS_BIT_NV = 0x00000800, + VK_SHADER_STAGE_INTERSECTION_BIT_NV = 0x00001000, + VK_SHADER_STAGE_CALLABLE_BIT_NV = 0x00002000, + VK_SHADER_STAGE_TASK_BIT_NV = 0x00000040, + VK_SHADER_STAGE_MESH_BIT_NV = 0x00000080, VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkShaderStageFlagBits; typedef VkFlags VkPipelineVertexInputStateCreateFlags; @@ -1506,6 +1691,12 @@ typedef VkFlags VkColorComponentFlags; typedef VkFlags VkPipelineDynamicStateCreateFlags; typedef VkFlags VkPipelineLayoutCreateFlags; typedef VkFlags VkShaderStageFlags; + +typedef enum VkSamplerCreateFlagBits { + VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT = 0x00000001, + VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT = 0x00000002, + VK_SAMPLER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkSamplerCreateFlagBits; typedef VkFlags VkSamplerCreateFlags; typedef enum VkDescriptorSetLayoutCreateFlagBits { @@ -1522,6 +1713,11 @@ typedef enum VkDescriptorPoolCreateFlagBits { } VkDescriptorPoolCreateFlagBits; typedef VkFlags VkDescriptorPoolCreateFlags; typedef VkFlags VkDescriptorPoolResetFlags; + +typedef enum VkFramebufferCreateFlagBits { + VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR = 0x00000001, + VK_FRAMEBUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +} VkFramebufferCreateFlagBits; typedef VkFlags VkFramebufferCreateFlags; typedef VkFlags VkRenderPassCreateFlags; @@ -1556,9 +1752,17 @@ typedef enum VkAccessFlagBits { VK_ACCESS_HOST_WRITE_BIT = 0x00004000, VK_ACCESS_MEMORY_READ_BIT = 0x00008000, VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000, + VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000, + VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000, + VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000, + VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000, VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX = 0x00020000, VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX = 0x00040000, VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000, + VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV = 0x00800000, + VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV = 0x00200000, + VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV = 0x00400000, + VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000, VK_ACCESS_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkAccessFlagBits; typedef VkFlags VkAccessFlags; @@ -1614,7 +1818,6 @@ typedef enum VkStencilFaceFlagBits { VK_STENCIL_FACE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkStencilFaceFlagBits; typedef VkFlags VkStencilFaceFlags; - typedef struct VkApplicationInfo { VkStructureType sType; const void* pNext; @@ -2730,7 +2933,6 @@ typedef struct VkBaseInStructure { const struct VkBaseInStructure* pNext; } VkBaseInStructure; - typedef VkResult (VKAPI_PTR *PFN_vkCreateInstance)(const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance); typedef void (VKAPI_PTR *PFN_vkDestroyInstance)(VkInstance instance, const VkAllocationCallbacks* pAllocator); typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDevices)(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices); @@ -3668,19 +3870,17 @@ VKAPI_ATTR void VKAPI_CALL vkCmdExecuteCommands( const VkCommandBuffer* pCommandBuffers); #endif + #define VK_VERSION_1_1 1 // Vulkan 1.1 version number #define VK_API_VERSION_1_1 VK_MAKE_VERSION(1, 1, 0)// Patch version should always be set to 0 - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSamplerYcbcrConversion) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorUpdateTemplate) - #define VK_MAX_DEVICE_GROUP_SIZE 32 #define VK_LUID_SIZE 8 #define VK_QUEUE_FAMILY_EXTERNAL (~0U-1) - typedef enum VkPointClippingBehavior { VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES = 0, VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = 1, @@ -3752,7 +3952,6 @@ typedef enum VkDescriptorUpdateTemplateType { VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_MAX_ENUM = 0x7FFFFFFF } VkDescriptorUpdateTemplateType; - typedef enum VkSubgroupFeatureFlagBits { VK_SUBGROUP_FEATURE_BASIC_BIT = 0x00000001, VK_SUBGROUP_FEATURE_VOTE_BIT = 0x00000002, @@ -3882,7 +4081,6 @@ typedef enum VkExternalSemaphoreFeatureFlagBits { VK_EXTERNAL_SEMAPHORE_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF } VkExternalSemaphoreFeatureFlagBits; typedef VkFlags VkExternalSemaphoreFeatureFlags; - typedef struct VkPhysicalDeviceSubgroupProperties { VkStructureType sType; void* pNext; @@ -4025,6 +4223,8 @@ typedef struct VkMemoryRequirements2 { VkMemoryRequirements memoryRequirements; } VkMemoryRequirements2; +typedef VkMemoryRequirements2 VkMemoryRequirements2KHR; + typedef struct VkSparseImageMemoryRequirements2 { VkStructureType sType; void* pNext; @@ -4150,12 +4350,14 @@ typedef struct VkPhysicalDeviceMultiviewProperties { uint32_t maxMultiviewInstanceIndex; } VkPhysicalDeviceMultiviewProperties; -typedef struct VkPhysicalDeviceVariablePointerFeatures { +typedef struct VkPhysicalDeviceVariablePointersFeatures { VkStructureType sType; void* pNext; VkBool32 variablePointersStorageBuffer; VkBool32 variablePointers; -} VkPhysicalDeviceVariablePointerFeatures; +} VkPhysicalDeviceVariablePointersFeatures; + +typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointerFeatures; typedef struct VkPhysicalDeviceProtectedMemoryFeatures { VkStructureType sType; @@ -4237,7 +4439,7 @@ typedef struct VkDescriptorUpdateTemplateEntry { typedef struct VkDescriptorUpdateTemplateCreateInfo { VkStructureType sType; - void* pNext; + const void* pNext; VkDescriptorUpdateTemplateCreateFlags flags; uint32_t descriptorUpdateEntryCount; const VkDescriptorUpdateTemplateEntry* pDescriptorUpdateEntries; @@ -4361,12 +4563,13 @@ typedef struct VkDescriptorSetLayoutSupport { VkBool32 supported; } VkDescriptorSetLayoutSupport; -typedef struct VkPhysicalDeviceShaderDrawParameterFeatures { +typedef struct VkPhysicalDeviceShaderDrawParametersFeatures { VkStructureType sType; void* pNext; VkBool32 shaderDrawParameters; -} VkPhysicalDeviceShaderDrawParameterFeatures; +} VkPhysicalDeviceShaderDrawParametersFeatures; +typedef VkPhysicalDeviceShaderDrawParametersFeatures VkPhysicalDeviceShaderDrawParameterFeatures; typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceVersion)(uint32_t* pApiVersion); typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos); @@ -4544,19 +4747,17 @@ VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSupport( VkDescriptorSetLayoutSupport* pSupport); #endif + #define VK_KHR_surface 1 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR) - #define VK_KHR_SURFACE_SPEC_VERSION 25 #define VK_KHR_SURFACE_EXTENSION_NAME "VK_KHR_surface" -#define VK_COLORSPACE_SRGB_NONLINEAR_KHR VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - typedef enum VkColorSpaceKHR { VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0, VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001, VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = 1000104002, - VK_COLOR_SPACE_DCI_P3_LINEAR_EXT = 1000104003, + VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT = 1000104003, VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT = 1000104004, VK_COLOR_SPACE_BT709_LINEAR_EXT = 1000104005, VK_COLOR_SPACE_BT709_NONLINEAR_EXT = 1000104006, @@ -4568,6 +4769,9 @@ typedef enum VkColorSpaceKHR { VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012, VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013, VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014, + VK_COLOR_SPACE_DISPLAY_NATIVE_AMD = 1000213000, + VK_COLORSPACE_SRGB_NONLINEAR_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR, + VK_COLOR_SPACE_DCI_P3_LINEAR_EXT = VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT, VK_COLOR_SPACE_BEGIN_RANGE_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR, VK_COLOR_SPACE_END_RANGE_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR, VK_COLOR_SPACE_RANGE_SIZE_KHR = (VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - VK_COLOR_SPACE_SRGB_NONLINEAR_KHR + 1), @@ -4587,7 +4791,6 @@ typedef enum VkPresentModeKHR { VK_PRESENT_MODE_MAX_ENUM_KHR = 0x7FFFFFFF } VkPresentModeKHR; - typedef enum VkSurfaceTransformFlagBitsKHR { VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001, VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002, @@ -4610,7 +4813,6 @@ typedef enum VkCompositeAlphaFlagBitsKHR { VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF } VkCompositeAlphaFlagBitsKHR; typedef VkFlags VkCompositeAlphaFlagsKHR; - typedef struct VkSurfaceCapabilitiesKHR { uint32_t minImageCount; uint32_t maxImageCount; @@ -4629,7 +4831,6 @@ typedef struct VkSurfaceFormatKHR { VkColorSpaceKHR colorSpace; } VkSurfaceFormatKHR; - typedef void (VKAPI_PTR *PFN_vkDestroySurfaceKHR)(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator); typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported); typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities); @@ -4666,16 +4867,16 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfacePresentModesKHR( VkPresentModeKHR* pPresentModes); #endif + #define VK_KHR_swapchain 1 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSwapchainKHR) - #define VK_KHR_SWAPCHAIN_SPEC_VERSION 70 #define VK_KHR_SWAPCHAIN_EXTENSION_NAME "VK_KHR_swapchain" - typedef enum VkSwapchainCreateFlagBitsKHR { VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 0x00000001, VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 0x00000002, + VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR = 0x00000004, VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF } VkSwapchainCreateFlagBitsKHR; typedef VkFlags VkSwapchainCreateFlagsKHR; @@ -4688,7 +4889,6 @@ typedef enum VkDeviceGroupPresentModeFlagBitsKHR { VK_DEVICE_GROUP_PRESENT_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF } VkDeviceGroupPresentModeFlagBitsKHR; typedef VkFlags VkDeviceGroupPresentModeFlagsKHR; - typedef struct VkSwapchainCreateInfoKHR { VkStructureType sType; const void* pNext; @@ -4765,7 +4965,6 @@ typedef struct VkDeviceGroupSwapchainCreateInfoKHR { VkDeviceGroupPresentModeFlagsKHR modes; } VkDeviceGroupSwapchainCreateInfoKHR; - typedef VkResult (VKAPI_PTR *PFN_vkCreateSwapchainKHR)(VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain); typedef void (VKAPI_PTR *PFN_vkDestroySwapchainKHR)(VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator); typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainImagesKHR)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages); @@ -4827,14 +5026,13 @@ VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImage2KHR( uint32_t* pImageIndex); #endif + #define VK_KHR_display 1 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayKHR) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayModeKHR) - #define VK_KHR_DISPLAY_SPEC_VERSION 21 #define VK_KHR_DISPLAY_EXTENSION_NAME "VK_KHR_display" - typedef enum VkDisplayPlaneAlphaFlagBitsKHR { VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0x00000001, VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000002, @@ -4845,7 +5043,6 @@ typedef enum VkDisplayPlaneAlphaFlagBitsKHR { typedef VkFlags VkDisplayPlaneAlphaFlagsKHR; typedef VkFlags VkDisplayModeCreateFlagsKHR; typedef VkFlags VkDisplaySurfaceCreateFlagsKHR; - typedef struct VkDisplayPropertiesKHR { VkDisplayKHR display; const char* displayName; @@ -4903,7 +5100,6 @@ typedef struct VkDisplaySurfaceCreateInfoKHR { VkExtent2D imageExtent; } VkDisplaySurfaceCreateInfoKHR; - typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties); typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties); typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneSupportedDisplaysKHR)(VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays); @@ -4955,10 +5151,10 @@ VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayPlaneSurfaceKHR( VkSurfaceKHR* pSurface); #endif + #define VK_KHR_display_swapchain 1 #define VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION 9 #define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME "VK_KHR_display_swapchain" - typedef struct VkDisplayPresentInfoKHR { VkStructureType sType; const void* pNext; @@ -4967,7 +5163,6 @@ typedef struct VkDisplayPresentInfoKHR { VkBool32 persistent; } VkDisplayPresentInfoKHR; - typedef VkResult (VKAPI_PTR *PFN_vkCreateSharedSwapchainsKHR)(VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains); #ifndef VK_NO_PROTOTYPES @@ -4979,6 +5174,7 @@ VKAPI_ATTR VkResult VKAPI_CALL vkCreateSharedSwapchainsKHR( VkSwapchainKHR* pSwapchains); #endif + #define VK_KHR_sampler_mirror_clamp_to_edge 1 #define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION 1 #define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME "VK_KHR_sampler_mirror_clamp_to_edge" @@ -4987,7 +5183,6 @@ VKAPI_ATTR VkResult VKAPI_CALL vkCreateSharedSwapchainsKHR( #define VK_KHR_multiview 1 #define VK_KHR_MULTIVIEW_SPEC_VERSION 1 #define VK_KHR_MULTIVIEW_EXTENSION_NAME "VK_KHR_multiview" - typedef VkRenderPassMultiviewCreateInfo VkRenderPassMultiviewCreateInfoKHR; typedef VkPhysicalDeviceMultiviewFeatures VkPhysicalDeviceMultiviewFeaturesKHR; @@ -4999,7 +5194,6 @@ typedef VkPhysicalDeviceMultiviewProperties VkPhysicalDeviceMultiviewPropertiesK #define VK_KHR_get_physical_device_properties2 1 #define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION 1 #define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_physical_device_properties2" - typedef VkPhysicalDeviceFeatures2 VkPhysicalDeviceFeatures2KHR; typedef VkPhysicalDeviceProperties2 VkPhysicalDeviceProperties2KHR; @@ -5018,7 +5212,6 @@ typedef VkSparseImageFormatProperties2 VkSparseImageFormatProperties2KHR; typedef VkPhysicalDeviceSparseImageFormatInfo2 VkPhysicalDeviceSparseImageFormatInfo2KHR; - typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures); typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties); typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2KHR)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties); @@ -5062,10 +5255,10 @@ VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2KHR( VkSparseImageFormatProperties2* pProperties); #endif + #define VK_KHR_device_group 1 #define VK_KHR_DEVICE_GROUP_SPEC_VERSION 3 #define VK_KHR_DEVICE_GROUP_EXTENSION_NAME "VK_KHR_device_group" - typedef VkPeerMemoryFeatureFlags VkPeerMemoryFeatureFlagsKHR; typedef VkPeerMemoryFeatureFlagBits VkPeerMemoryFeatureFlagBitsKHR; @@ -5074,7 +5267,6 @@ typedef VkMemoryAllocateFlags VkMemoryAllocateFlagsKHR; typedef VkMemoryAllocateFlagBits VkMemoryAllocateFlagBitsKHR; - typedef VkMemoryAllocateFlagsInfo VkMemoryAllocateFlagsInfoKHR; typedef VkDeviceGroupRenderPassBeginInfo VkDeviceGroupRenderPassBeginInfoKHR; @@ -5089,7 +5281,6 @@ typedef VkBindBufferMemoryDeviceGroupInfo VkBindBufferMemoryDeviceGroupInfoKHR; typedef VkBindImageMemoryDeviceGroupInfo VkBindImageMemoryDeviceGroupInfoKHR; - typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures); typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMaskKHR)(VkCommandBuffer commandBuffer, uint32_t deviceMask); typedef void (VKAPI_PTR *PFN_vkCmdDispatchBaseKHR)(VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ); @@ -5116,6 +5307,7 @@ VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBaseKHR( uint32_t groupCountZ); #endif + #define VK_KHR_shader_draw_parameters 1 #define VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION 1 #define VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME "VK_KHR_shader_draw_parameters" @@ -5124,10 +5316,8 @@ VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBaseKHR( #define VK_KHR_maintenance1 1 #define VK_KHR_MAINTENANCE1_SPEC_VERSION 2 #define VK_KHR_MAINTENANCE1_EXTENSION_NAME "VK_KHR_maintenance1" - typedef VkCommandPoolTrimFlags VkCommandPoolTrimFlagsKHR; - typedef void (VKAPI_PTR *PFN_vkTrimCommandPoolKHR)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags); #ifndef VK_NO_PROTOTYPES @@ -5137,16 +5327,15 @@ VKAPI_ATTR void VKAPI_CALL vkTrimCommandPoolKHR( VkCommandPoolTrimFlags flags); #endif + #define VK_KHR_device_group_creation 1 #define VK_KHR_DEVICE_GROUP_CREATION_SPEC_VERSION 1 #define VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME "VK_KHR_device_group_creation" #define VK_MAX_DEVICE_GROUP_SIZE_KHR VK_MAX_DEVICE_GROUP_SIZE - typedef VkPhysicalDeviceGroupProperties VkPhysicalDeviceGroupPropertiesKHR; typedef VkDeviceGroupDeviceCreateInfo VkDeviceGroupDeviceCreateInfoKHR; - typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceGroupsKHR)(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties); #ifndef VK_NO_PROTOTYPES @@ -5156,11 +5345,11 @@ VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroupsKHR( VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties); #endif + #define VK_KHR_external_memory_capabilities 1 #define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1 #define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_memory_capabilities" #define VK_LUID_SIZE_KHR VK_LUID_SIZE - typedef VkExternalMemoryHandleTypeFlags VkExternalMemoryHandleTypeFlagsKHR; typedef VkExternalMemoryHandleTypeFlagBits VkExternalMemoryHandleTypeFlagBitsKHR; @@ -5169,7 +5358,6 @@ typedef VkExternalMemoryFeatureFlags VkExternalMemoryFeatureFlagsKHR; typedef VkExternalMemoryFeatureFlagBits VkExternalMemoryFeatureFlagBitsKHR; - typedef VkExternalMemoryProperties VkExternalMemoryPropertiesKHR; typedef VkPhysicalDeviceExternalImageFormatInfo VkPhysicalDeviceExternalImageFormatInfoKHR; @@ -5182,7 +5370,6 @@ typedef VkExternalBufferProperties VkExternalBufferPropertiesKHR; typedef VkPhysicalDeviceIDProperties VkPhysicalDeviceIDPropertiesKHR; - typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties); #ifndef VK_NO_PROTOTYPES @@ -5192,11 +5379,11 @@ VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferPropertiesKHR( VkExternalBufferProperties* pExternalBufferProperties); #endif + #define VK_KHR_external_memory 1 #define VK_KHR_EXTERNAL_MEMORY_SPEC_VERSION 1 #define VK_KHR_EXTERNAL_MEMORY_EXTENSION_NAME "VK_KHR_external_memory" #define VK_QUEUE_FAMILY_EXTERNAL_KHR VK_QUEUE_FAMILY_EXTERNAL - typedef VkExternalMemoryImageCreateInfo VkExternalMemoryImageCreateInfoKHR; typedef VkExternalMemoryBufferCreateInfo VkExternalMemoryBufferCreateInfoKHR; @@ -5208,7 +5395,6 @@ typedef VkExportMemoryAllocateInfo VkExportMemoryAllocateInfoKHR; #define VK_KHR_external_memory_fd 1 #define VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION 1 #define VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME "VK_KHR_external_memory_fd" - typedef struct VkImportMemoryFdInfoKHR { VkStructureType sType; const void* pNext; @@ -5229,7 +5415,6 @@ typedef struct VkMemoryGetFdInfoKHR { VkExternalMemoryHandleTypeFlagBits handleType; } VkMemoryGetFdInfoKHR; - typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdKHR)(VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd); typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdPropertiesKHR)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties); @@ -5246,10 +5431,10 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdPropertiesKHR( VkMemoryFdPropertiesKHR* pMemoryFdProperties); #endif + #define VK_KHR_external_semaphore_capabilities 1 #define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION 1 #define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_semaphore_capabilities" - typedef VkExternalSemaphoreHandleTypeFlags VkExternalSemaphoreHandleTypeFlagsKHR; typedef VkExternalSemaphoreHandleTypeFlagBits VkExternalSemaphoreHandleTypeFlagBitsKHR; @@ -5258,12 +5443,10 @@ typedef VkExternalSemaphoreFeatureFlags VkExternalSemaphoreFeatureFlagsKHR; typedef VkExternalSemaphoreFeatureFlagBits VkExternalSemaphoreFeatureFlagBitsKHR; - typedef VkPhysicalDeviceExternalSemaphoreInfo VkPhysicalDeviceExternalSemaphoreInfoKHR; typedef VkExternalSemaphoreProperties VkExternalSemaphorePropertiesKHR; - typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties); #ifndef VK_NO_PROTOTYPES @@ -5273,15 +5456,14 @@ VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( VkExternalSemaphoreProperties* pExternalSemaphoreProperties); #endif + #define VK_KHR_external_semaphore 1 #define VK_KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION 1 #define VK_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_KHR_external_semaphore" - typedef VkSemaphoreImportFlags VkSemaphoreImportFlagsKHR; typedef VkSemaphoreImportFlagBits VkSemaphoreImportFlagBitsKHR; - typedef VkExportSemaphoreCreateInfo VkExportSemaphoreCreateInfoKHR; @@ -5289,7 +5471,6 @@ typedef VkExportSemaphoreCreateInfo VkExportSemaphoreCreateInfoKHR; #define VK_KHR_external_semaphore_fd 1 #define VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION 1 #define VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME "VK_KHR_external_semaphore_fd" - typedef struct VkImportSemaphoreFdInfoKHR { VkStructureType sType; const void* pNext; @@ -5306,7 +5487,6 @@ typedef struct VkSemaphoreGetFdInfoKHR { VkExternalSemaphoreHandleTypeFlagBits handleType; } VkSemaphoreGetFdInfoKHR; - typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreFdKHR)(VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo); typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreFdKHR)(VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd); @@ -5321,17 +5501,16 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreFdKHR( int* pFd); #endif + #define VK_KHR_push_descriptor 1 #define VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION 2 #define VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME "VK_KHR_push_descriptor" - typedef struct VkPhysicalDevicePushDescriptorPropertiesKHR { VkStructureType sType; void* pNext; uint32_t maxPushDescriptors; } VkPhysicalDevicePushDescriptorPropertiesKHR; - typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetKHR)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites); typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplateKHR)(VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData); @@ -5352,10 +5531,22 @@ VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplateKHR( const void* pData); #endif + +#define VK_KHR_shader_float16_int8 1 +#define VK_KHR_SHADER_FLOAT16_INT8_SPEC_VERSION 1 +#define VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME "VK_KHR_shader_float16_int8" +typedef struct VkPhysicalDeviceFloat16Int8FeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 shaderFloat16; + VkBool32 shaderInt8; +} VkPhysicalDeviceFloat16Int8FeaturesKHR; + + + #define VK_KHR_16bit_storage 1 #define VK_KHR_16BIT_STORAGE_SPEC_VERSION 1 #define VK_KHR_16BIT_STORAGE_EXTENSION_NAME "VK_KHR_16bit_storage" - typedef VkPhysicalDevice16BitStorageFeatures VkPhysicalDevice16BitStorageFeaturesKHR; @@ -5363,7 +5554,6 @@ typedef VkPhysicalDevice16BitStorageFeatures VkPhysicalDevice16BitStorageFeature #define VK_KHR_incremental_present 1 #define VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION 1 #define VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME "VK_KHR_incremental_present" - typedef struct VkRectLayerKHR { VkOffset2D offset; VkExtent2D extent; @@ -5387,21 +5577,16 @@ typedef struct VkPresentRegionsKHR { #define VK_KHR_descriptor_update_template 1 typedef VkDescriptorUpdateTemplate VkDescriptorUpdateTemplateKHR; - #define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION 1 #define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME "VK_KHR_descriptor_update_template" - typedef VkDescriptorUpdateTemplateType VkDescriptorUpdateTemplateTypeKHR; - typedef VkDescriptorUpdateTemplateCreateFlags VkDescriptorUpdateTemplateCreateFlagsKHR; - typedef VkDescriptorUpdateTemplateEntry VkDescriptorUpdateTemplateEntryKHR; typedef VkDescriptorUpdateTemplateCreateInfo VkDescriptorUpdateTemplateCreateInfoKHR; - typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorUpdateTemplateKHR)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate); typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorUpdateTemplateKHR)(VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator); typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSetWithTemplateKHR)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData); @@ -5425,17 +5610,160 @@ VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplateKHR( const void* pData); #endif + +#define VK_KHR_imageless_framebuffer 1 +#define VK_KHR_IMAGELESS_FRAMEBUFFER_SPEC_VERSION 1 +#define VK_KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME "VK_KHR_imageless_framebuffer" +typedef struct VkPhysicalDeviceImagelessFramebufferFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 imagelessFramebuffer; +} VkPhysicalDeviceImagelessFramebufferFeaturesKHR; + +typedef struct VkFramebufferAttachmentImageInfoKHR { + VkStructureType sType; + const void* pNext; + VkImageCreateFlags flags; + VkImageUsageFlags usage; + uint32_t width; + uint32_t height; + uint32_t layerCount; + uint32_t viewFormatCount; + const VkFormat* pViewFormats; +} VkFramebufferAttachmentImageInfoKHR; + +typedef struct VkFramebufferAttachmentsCreateInfoKHR { + VkStructureType sType; + const void* pNext; + uint32_t attachmentImageInfoCount; + const VkFramebufferAttachmentImageInfoKHR* pAttachmentImageInfos; +} VkFramebufferAttachmentsCreateInfoKHR; + +typedef struct VkRenderPassAttachmentBeginInfoKHR { + VkStructureType sType; + const void* pNext; + uint32_t attachmentCount; + const VkImageView* pAttachments; +} VkRenderPassAttachmentBeginInfoKHR; + + + +#define VK_KHR_create_renderpass2 1 +#define VK_KHR_CREATE_RENDERPASS_2_SPEC_VERSION 1 +#define VK_KHR_CREATE_RENDERPASS_2_EXTENSION_NAME "VK_KHR_create_renderpass2" +typedef struct VkAttachmentDescription2KHR { + VkStructureType sType; + const void* pNext; + VkAttachmentDescriptionFlags flags; + VkFormat format; + VkSampleCountFlagBits samples; + VkAttachmentLoadOp loadOp; + VkAttachmentStoreOp storeOp; + VkAttachmentLoadOp stencilLoadOp; + VkAttachmentStoreOp stencilStoreOp; + VkImageLayout initialLayout; + VkImageLayout finalLayout; +} VkAttachmentDescription2KHR; + +typedef struct VkAttachmentReference2KHR { + VkStructureType sType; + const void* pNext; + uint32_t attachment; + VkImageLayout layout; + VkImageAspectFlags aspectMask; +} VkAttachmentReference2KHR; + +typedef struct VkSubpassDescription2KHR { + VkStructureType sType; + const void* pNext; + VkSubpassDescriptionFlags flags; + VkPipelineBindPoint pipelineBindPoint; + uint32_t viewMask; + uint32_t inputAttachmentCount; + const VkAttachmentReference2KHR* pInputAttachments; + uint32_t colorAttachmentCount; + const VkAttachmentReference2KHR* pColorAttachments; + const VkAttachmentReference2KHR* pResolveAttachments; + const VkAttachmentReference2KHR* pDepthStencilAttachment; + uint32_t preserveAttachmentCount; + const uint32_t* pPreserveAttachments; +} VkSubpassDescription2KHR; + +typedef struct VkSubpassDependency2KHR { + VkStructureType sType; + const void* pNext; + uint32_t srcSubpass; + uint32_t dstSubpass; + VkPipelineStageFlags srcStageMask; + VkPipelineStageFlags dstStageMask; + VkAccessFlags srcAccessMask; + VkAccessFlags dstAccessMask; + VkDependencyFlags dependencyFlags; + int32_t viewOffset; +} VkSubpassDependency2KHR; + +typedef struct VkRenderPassCreateInfo2KHR { + VkStructureType sType; + const void* pNext; + VkRenderPassCreateFlags flags; + uint32_t attachmentCount; + const VkAttachmentDescription2KHR* pAttachments; + uint32_t subpassCount; + const VkSubpassDescription2KHR* pSubpasses; + uint32_t dependencyCount; + const VkSubpassDependency2KHR* pDependencies; + uint32_t correlatedViewMaskCount; + const uint32_t* pCorrelatedViewMasks; +} VkRenderPassCreateInfo2KHR; + +typedef struct VkSubpassBeginInfoKHR { + VkStructureType sType; + const void* pNext; + VkSubpassContents contents; +} VkSubpassBeginInfoKHR; + +typedef struct VkSubpassEndInfoKHR { + VkStructureType sType; + const void* pNext; +} VkSubpassEndInfoKHR; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass2KHR)(VkDevice device, const VkRenderPassCreateInfo2KHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass); +typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfoKHR* pSubpassBeginInfo); +typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassBeginInfoKHR* pSubpassBeginInfo, const VkSubpassEndInfoKHR* pSubpassEndInfo); +typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassEndInfoKHR* pSubpassEndInfo); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass2KHR( + VkDevice device, + const VkRenderPassCreateInfo2KHR* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkRenderPass* pRenderPass); + +VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass2KHR( + VkCommandBuffer commandBuffer, + const VkRenderPassBeginInfo* pRenderPassBegin, + const VkSubpassBeginInfoKHR* pSubpassBeginInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass2KHR( + VkCommandBuffer commandBuffer, + const VkSubpassBeginInfoKHR* pSubpassBeginInfo, + const VkSubpassEndInfoKHR* pSubpassEndInfo); + +VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass2KHR( + VkCommandBuffer commandBuffer, + const VkSubpassEndInfoKHR* pSubpassEndInfo); +#endif + + #define VK_KHR_shared_presentable_image 1 #define VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION 1 #define VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME "VK_KHR_shared_presentable_image" - typedef struct VkSharedPresentSurfaceCapabilitiesKHR { VkStructureType sType; void* pNext; VkImageUsageFlags sharedPresentSupportedUsageFlags; } VkSharedPresentSurfaceCapabilitiesKHR; - typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainStatusKHR)(VkDevice device, VkSwapchainKHR swapchain); #ifndef VK_NO_PROTOTYPES @@ -5444,10 +5772,10 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainStatusKHR( VkSwapchainKHR swapchain); #endif + #define VK_KHR_external_fence_capabilities 1 #define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION 1 #define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_fence_capabilities" - typedef VkExternalFenceHandleTypeFlags VkExternalFenceHandleTypeFlagsKHR; typedef VkExternalFenceHandleTypeFlagBits VkExternalFenceHandleTypeFlagBitsKHR; @@ -5456,12 +5784,10 @@ typedef VkExternalFenceFeatureFlags VkExternalFenceFeatureFlagsKHR; typedef VkExternalFenceFeatureFlagBits VkExternalFenceFeatureFlagBitsKHR; - typedef VkPhysicalDeviceExternalFenceInfo VkPhysicalDeviceExternalFenceInfoKHR; typedef VkExternalFenceProperties VkExternalFencePropertiesKHR; - typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties); #ifndef VK_NO_PROTOTYPES @@ -5471,15 +5797,14 @@ VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalFencePropertiesKHR( VkExternalFenceProperties* pExternalFenceProperties); #endif + #define VK_KHR_external_fence 1 #define VK_KHR_EXTERNAL_FENCE_SPEC_VERSION 1 #define VK_KHR_EXTERNAL_FENCE_EXTENSION_NAME "VK_KHR_external_fence" - typedef VkFenceImportFlags VkFenceImportFlagsKHR; typedef VkFenceImportFlagBits VkFenceImportFlagBitsKHR; - typedef VkExportFenceCreateInfo VkExportFenceCreateInfoKHR; @@ -5487,7 +5812,6 @@ typedef VkExportFenceCreateInfo VkExportFenceCreateInfoKHR; #define VK_KHR_external_fence_fd 1 #define VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION 1 #define VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME "VK_KHR_external_fence_fd" - typedef struct VkImportFenceFdInfoKHR { VkStructureType sType; const void* pNext; @@ -5504,7 +5828,6 @@ typedef struct VkFenceGetFdInfoKHR { VkExternalFenceHandleTypeFlagBits handleType; } VkFenceGetFdInfoKHR; - typedef VkResult (VKAPI_PTR *PFN_vkImportFenceFdKHR)(VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo); typedef VkResult (VKAPI_PTR *PFN_vkGetFenceFdKHR)(VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd); @@ -5519,15 +5842,14 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceFdKHR( int* pFd); #endif + #define VK_KHR_maintenance2 1 #define VK_KHR_MAINTENANCE2_SPEC_VERSION 1 #define VK_KHR_MAINTENANCE2_EXTENSION_NAME "VK_KHR_maintenance2" - typedef VkPointClippingBehavior VkPointClippingBehaviorKHR; typedef VkTessellationDomainOrigin VkTessellationDomainOriginKHR; - typedef VkPhysicalDevicePointClippingProperties VkPhysicalDevicePointClippingPropertiesKHR; typedef VkRenderPassInputAttachmentAspectCreateInfo VkRenderPassInputAttachmentAspectCreateInfoKHR; @@ -5543,7 +5865,6 @@ typedef VkPipelineTessellationDomainOriginStateCreateInfo VkPipelineTessellation #define VK_KHR_get_surface_capabilities2 1 #define VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION 1 #define VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME "VK_KHR_get_surface_capabilities2" - typedef struct VkPhysicalDeviceSurfaceInfo2KHR { VkStructureType sType; const void* pNext; @@ -5562,7 +5883,6 @@ typedef struct VkSurfaceFormat2KHR { VkSurfaceFormatKHR surfaceFormat; } VkSurfaceFormat2KHR; - typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities); typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormats2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats); @@ -5579,18 +5899,19 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormats2KHR( VkSurfaceFormat2KHR* pSurfaceFormats); #endif + #define VK_KHR_variable_pointers 1 #define VK_KHR_VARIABLE_POINTERS_SPEC_VERSION 1 #define VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME "VK_KHR_variable_pointers" +typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointerFeaturesKHR; -typedef VkPhysicalDeviceVariablePointerFeatures VkPhysicalDeviceVariablePointerFeaturesKHR; +typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointersFeaturesKHR; #define VK_KHR_get_display_properties2 1 #define VK_KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION 1 #define VK_KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_display_properties2" - typedef struct VkDisplayProperties2KHR { VkStructureType sType; void* pNext; @@ -5622,7 +5943,6 @@ typedef struct VkDisplayPlaneCapabilities2KHR { VkDisplayPlaneCapabilitiesKHR capabilities; } VkDisplayPlaneCapabilities2KHR; - typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayProperties2KHR* pProperties); typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlaneProperties2KHR* pProperties); typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModeProperties2KHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModeProperties2KHR* pProperties); @@ -5651,10 +5971,10 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilities2KHR( VkDisplayPlaneCapabilities2KHR* pCapabilities); #endif + #define VK_KHR_dedicated_allocation 1 #define VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION 3 #define VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_KHR_dedicated_allocation" - typedef VkMemoryDedicatedRequirements VkMemoryDedicatedRequirementsKHR; typedef VkMemoryDedicatedAllocateInfo VkMemoryDedicatedAllocateInfoKHR; @@ -5674,18 +5994,14 @@ typedef VkMemoryDedicatedAllocateInfo VkMemoryDedicatedAllocateInfoKHR; #define VK_KHR_get_memory_requirements2 1 #define VK_KHR_GET_MEMORY_REQUIREMENTS_2_SPEC_VERSION 1 #define VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME "VK_KHR_get_memory_requirements2" - typedef VkBufferMemoryRequirementsInfo2 VkBufferMemoryRequirementsInfo2KHR; typedef VkImageMemoryRequirementsInfo2 VkImageMemoryRequirementsInfo2KHR; typedef VkImageSparseMemoryRequirementsInfo2 VkImageSparseMemoryRequirementsInfo2KHR; -typedef VkMemoryRequirements2 VkMemoryRequirements2KHR; - typedef VkSparseImageMemoryRequirements2 VkSparseImageMemoryRequirements2KHR; - typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements2KHR)(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements); typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements2KHR)(VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements); typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements2KHR)(VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements); @@ -5708,10 +6024,10 @@ VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements2KHR( VkSparseImageMemoryRequirements2* pSparseMemoryRequirements); #endif + #define VK_KHR_image_format_list 1 #define VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION 1 #define VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME "VK_KHR_image_format_list" - typedef struct VkImageFormatListCreateInfoKHR { VkStructureType sType; const void* pNext; @@ -5724,17 +6040,14 @@ typedef struct VkImageFormatListCreateInfoKHR { #define VK_KHR_sampler_ycbcr_conversion 1 typedef VkSamplerYcbcrConversion VkSamplerYcbcrConversionKHR; - #define VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION 1 #define VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME "VK_KHR_sampler_ycbcr_conversion" - typedef VkSamplerYcbcrModelConversion VkSamplerYcbcrModelConversionKHR; typedef VkSamplerYcbcrRange VkSamplerYcbcrRangeKHR; typedef VkChromaLocation VkChromaLocationKHR; - typedef VkSamplerYcbcrConversionCreateInfo VkSamplerYcbcrConversionCreateInfoKHR; typedef VkSamplerYcbcrConversionInfo VkSamplerYcbcrConversionInfoKHR; @@ -5747,7 +6060,6 @@ typedef VkPhysicalDeviceSamplerYcbcrConversionFeatures VkPhysicalDeviceSamplerYc typedef VkSamplerYcbcrConversionImageFormatProperties VkSamplerYcbcrConversionImageFormatPropertiesKHR; - typedef VkResult (VKAPI_PTR *PFN_vkCreateSamplerYcbcrConversionKHR)(VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion); typedef void (VKAPI_PTR *PFN_vkDestroySamplerYcbcrConversionKHR)(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator); @@ -5764,15 +6076,14 @@ VKAPI_ATTR void VKAPI_CALL vkDestroySamplerYcbcrConversionKHR( const VkAllocationCallbacks* pAllocator); #endif + #define VK_KHR_bind_memory2 1 #define VK_KHR_BIND_MEMORY_2_SPEC_VERSION 1 #define VK_KHR_BIND_MEMORY_2_EXTENSION_NAME "VK_KHR_bind_memory2" - typedef VkBindBufferMemoryInfo VkBindBufferMemoryInfoKHR; typedef VkBindImageMemoryInfo VkBindImageMemoryInfoKHR; - typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos); typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos); @@ -5788,15 +6099,14 @@ VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2KHR( const VkBindImageMemoryInfo* pBindInfos); #endif + #define VK_KHR_maintenance3 1 #define VK_KHR_MAINTENANCE3_SPEC_VERSION 1 #define VK_KHR_MAINTENANCE3_EXTENSION_NAME "VK_KHR_maintenance3" - typedef VkPhysicalDeviceMaintenance3Properties VkPhysicalDeviceMaintenance3PropertiesKHR; typedef VkDescriptorSetLayoutSupport VkDescriptorSetLayoutSupportKHR; - typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSupportKHR)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport); #ifndef VK_NO_PROTOTYPES @@ -5806,10 +6116,10 @@ VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSupportKHR( VkDescriptorSetLayoutSupport* pSupport); #endif + #define VK_KHR_draw_indirect_count 1 #define VK_KHR_DRAW_INDIRECT_COUNT_SPEC_VERSION 1 #define VK_KHR_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_KHR_draw_indirect_count" - typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountKHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride); typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountKHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride); @@ -5833,14 +6143,177 @@ VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountKHR( uint32_t stride); #endif + +#define VK_KHR_8bit_storage 1 +#define VK_KHR_8BIT_STORAGE_SPEC_VERSION 1 +#define VK_KHR_8BIT_STORAGE_EXTENSION_NAME "VK_KHR_8bit_storage" +typedef struct VkPhysicalDevice8BitStorageFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 storageBuffer8BitAccess; + VkBool32 uniformAndStorageBuffer8BitAccess; + VkBool32 storagePushConstant8; +} VkPhysicalDevice8BitStorageFeaturesKHR; + + + +#define VK_KHR_shader_atomic_int64 1 +#define VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION 1 +#define VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME "VK_KHR_shader_atomic_int64" +typedef struct VkPhysicalDeviceShaderAtomicInt64FeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 shaderBufferInt64Atomics; + VkBool32 shaderSharedInt64Atomics; +} VkPhysicalDeviceShaderAtomicInt64FeaturesKHR; + + + +#define VK_KHR_driver_properties 1 +#define VK_MAX_DRIVER_NAME_SIZE_KHR 256 +#define VK_MAX_DRIVER_INFO_SIZE_KHR 256 +#define VK_KHR_DRIVER_PROPERTIES_SPEC_VERSION 1 +#define VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME "VK_KHR_driver_properties" + +typedef enum VkDriverIdKHR { + VK_DRIVER_ID_AMD_PROPRIETARY_KHR = 1, + VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = 2, + VK_DRIVER_ID_MESA_RADV_KHR = 3, + VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR = 4, + VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS_KHR = 5, + VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA_KHR = 6, + VK_DRIVER_ID_IMAGINATION_PROPRIETARY_KHR = 7, + VK_DRIVER_ID_QUALCOMM_PROPRIETARY_KHR = 8, + VK_DRIVER_ID_ARM_PROPRIETARY_KHR = 9, + VK_DRIVER_ID_GOOGLE_SWIFTSHADER_KHR = 10, + VK_DRIVER_ID_GGP_PROPRIETARY_KHR = 11, + VK_DRIVER_ID_BROADCOM_PROPRIETARY_KHR = 12, + VK_DRIVER_ID_BEGIN_RANGE_KHR = VK_DRIVER_ID_AMD_PROPRIETARY_KHR, + VK_DRIVER_ID_END_RANGE_KHR = VK_DRIVER_ID_BROADCOM_PROPRIETARY_KHR, + VK_DRIVER_ID_RANGE_SIZE_KHR = (VK_DRIVER_ID_BROADCOM_PROPRIETARY_KHR - VK_DRIVER_ID_AMD_PROPRIETARY_KHR + 1), + VK_DRIVER_ID_MAX_ENUM_KHR = 0x7FFFFFFF +} VkDriverIdKHR; +typedef struct VkConformanceVersionKHR { + uint8_t major; + uint8_t minor; + uint8_t subminor; + uint8_t patch; +} VkConformanceVersionKHR; + +typedef struct VkPhysicalDeviceDriverPropertiesKHR { + VkStructureType sType; + void* pNext; + VkDriverIdKHR driverID; + char driverName[VK_MAX_DRIVER_NAME_SIZE_KHR]; + char driverInfo[VK_MAX_DRIVER_INFO_SIZE_KHR]; + VkConformanceVersionKHR conformanceVersion; +} VkPhysicalDeviceDriverPropertiesKHR; + + + +#define VK_KHR_shader_float_controls 1 +#define VK_KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION 1 +#define VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME "VK_KHR_shader_float_controls" +typedef struct VkPhysicalDeviceFloatControlsPropertiesKHR { + VkStructureType sType; + void* pNext; + VkBool32 separateDenormSettings; + VkBool32 separateRoundingModeSettings; + VkBool32 shaderSignedZeroInfNanPreserveFloat16; + VkBool32 shaderSignedZeroInfNanPreserveFloat32; + VkBool32 shaderSignedZeroInfNanPreserveFloat64; + VkBool32 shaderDenormPreserveFloat16; + VkBool32 shaderDenormPreserveFloat32; + VkBool32 shaderDenormPreserveFloat64; + VkBool32 shaderDenormFlushToZeroFloat16; + VkBool32 shaderDenormFlushToZeroFloat32; + VkBool32 shaderDenormFlushToZeroFloat64; + VkBool32 shaderRoundingModeRTEFloat16; + VkBool32 shaderRoundingModeRTEFloat32; + VkBool32 shaderRoundingModeRTEFloat64; + VkBool32 shaderRoundingModeRTZFloat16; + VkBool32 shaderRoundingModeRTZFloat32; + VkBool32 shaderRoundingModeRTZFloat64; +} VkPhysicalDeviceFloatControlsPropertiesKHR; + + + +#define VK_KHR_depth_stencil_resolve 1 +#define VK_KHR_DEPTH_STENCIL_RESOLVE_SPEC_VERSION 1 +#define VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME "VK_KHR_depth_stencil_resolve" + +typedef enum VkResolveModeFlagBitsKHR { + VK_RESOLVE_MODE_NONE_KHR = 0, + VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR = 0x00000001, + VK_RESOLVE_MODE_AVERAGE_BIT_KHR = 0x00000002, + VK_RESOLVE_MODE_MIN_BIT_KHR = 0x00000004, + VK_RESOLVE_MODE_MAX_BIT_KHR = 0x00000008, + VK_RESOLVE_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF +} VkResolveModeFlagBitsKHR; +typedef VkFlags VkResolveModeFlagsKHR; +typedef struct VkSubpassDescriptionDepthStencilResolveKHR { + VkStructureType sType; + const void* pNext; + VkResolveModeFlagBitsKHR depthResolveMode; + VkResolveModeFlagBitsKHR stencilResolveMode; + const VkAttachmentReference2KHR* pDepthStencilResolveAttachment; +} VkSubpassDescriptionDepthStencilResolveKHR; + +typedef struct VkPhysicalDeviceDepthStencilResolvePropertiesKHR { + VkStructureType sType; + void* pNext; + VkResolveModeFlagsKHR supportedDepthResolveModes; + VkResolveModeFlagsKHR supportedStencilResolveModes; + VkBool32 independentResolveNone; + VkBool32 independentResolve; +} VkPhysicalDeviceDepthStencilResolvePropertiesKHR; + + + +#define VK_KHR_swapchain_mutable_format 1 +#define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_SPEC_VERSION 1 +#define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_EXTENSION_NAME "VK_KHR_swapchain_mutable_format" + + +#define VK_KHR_vulkan_memory_model 1 +#define VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION 3 +#define VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME "VK_KHR_vulkan_memory_model" +typedef struct VkPhysicalDeviceVulkanMemoryModelFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 vulkanMemoryModel; + VkBool32 vulkanMemoryModelDeviceScope; + VkBool32 vulkanMemoryModelAvailabilityVisibilityChains; +} VkPhysicalDeviceVulkanMemoryModelFeaturesKHR; + + + +#define VK_KHR_surface_protected_capabilities 1 +#define VK_KHR_SURFACE_PROTECTED_CAPABILITIES_SPEC_VERSION 1 +#define VK_KHR_SURFACE_PROTECTED_CAPABILITIES_EXTENSION_NAME "VK_KHR_surface_protected_capabilities" +typedef struct VkSurfaceProtectedCapabilitiesKHR { + VkStructureType sType; + const void* pNext; + VkBool32 supportsProtected; +} VkSurfaceProtectedCapabilitiesKHR; + + + +#define VK_KHR_uniform_buffer_standard_layout 1 +#define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_SPEC_VERSION 1 +#define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME "VK_KHR_uniform_buffer_standard_layout" +typedef struct VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR { + VkStructureType sType; + void* pNext; + VkBool32 uniformBufferStandardLayout; +} VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR; + + + #define VK_EXT_debug_report 1 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT) - #define VK_EXT_DEBUG_REPORT_SPEC_VERSION 9 #define VK_EXT_DEBUG_REPORT_EXTENSION_NAME "VK_EXT_debug_report" -#define VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT -#define VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT - typedef enum VkDebugReportObjectTypeEXT { VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0, @@ -5879,6 +6352,9 @@ typedef enum VkDebugReportObjectTypeEXT { VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33, VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000, VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000, + VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000, + VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT, + VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT, VK_DEBUG_REPORT_OBJECT_TYPE_BEGIN_RANGE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, @@ -5887,7 +6363,6 @@ typedef enum VkDebugReportObjectTypeEXT { VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF } VkDebugReportObjectTypeEXT; - typedef enum VkDebugReportFlagBitsEXT { VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 0x00000001, VK_DEBUG_REPORT_WARNING_BIT_EXT = 0x00000002, @@ -5897,7 +6372,6 @@ typedef enum VkDebugReportFlagBitsEXT { VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF } VkDebugReportFlagBitsEXT; typedef VkFlags VkDebugReportFlagsEXT; - typedef VkBool32 (VKAPI_PTR *PFN_vkDebugReportCallbackEXT)( VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, @@ -5916,7 +6390,6 @@ typedef struct VkDebugReportCallbackCreateInfoEXT { void* pUserData; } VkDebugReportCallbackCreateInfoEXT; - typedef VkResult (VKAPI_PTR *PFN_vkCreateDebugReportCallbackEXT)(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback); typedef void (VKAPI_PTR *PFN_vkDestroyDebugReportCallbackEXT)(VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator); typedef void (VKAPI_PTR *PFN_vkDebugReportMessageEXT)(VkInstance instance, VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const char* pLayerPrefix, const char* pMessage); @@ -5944,6 +6417,7 @@ VKAPI_ATTR void VKAPI_CALL vkDebugReportMessageEXT( const char* pMessage); #endif + #define VK_NV_glsl_shader 1 #define VK_NV_GLSL_SHADER_SPEC_VERSION 1 #define VK_NV_GLSL_SHADER_EXTENSION_NAME "VK_NV_glsl_shader" @@ -5963,7 +6437,6 @@ VKAPI_ATTR void VKAPI_CALL vkDebugReportMessageEXT( #define VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION 1 #define VK_AMD_RASTERIZATION_ORDER_EXTENSION_NAME "VK_AMD_rasterization_order" - typedef enum VkRasterizationOrderAMD { VK_RASTERIZATION_ORDER_STRICT_AMD = 0, VK_RASTERIZATION_ORDER_RELAXED_AMD = 1, @@ -5972,7 +6445,6 @@ typedef enum VkRasterizationOrderAMD { VK_RASTERIZATION_ORDER_RANGE_SIZE_AMD = (VK_RASTERIZATION_ORDER_RELAXED_AMD - VK_RASTERIZATION_ORDER_STRICT_AMD + 1), VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 0x7FFFFFFF } VkRasterizationOrderAMD; - typedef struct VkPipelineRasterizationStateRasterizationOrderAMD { VkStructureType sType; const void* pNext; @@ -5994,7 +6466,6 @@ typedef struct VkPipelineRasterizationStateRasterizationOrderAMD { #define VK_EXT_debug_marker 1 #define VK_EXT_DEBUG_MARKER_SPEC_VERSION 4 #define VK_EXT_DEBUG_MARKER_EXTENSION_NAME "VK_EXT_debug_marker" - typedef struct VkDebugMarkerObjectNameInfoEXT { VkStructureType sType; const void* pNext; @@ -6020,7 +6491,6 @@ typedef struct VkDebugMarkerMarkerInfoEXT { float color[4]; } VkDebugMarkerMarkerInfoEXT; - typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectTagEXT)(VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo); typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectNameEXT)(VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo); typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerBeginEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo); @@ -6048,6 +6518,7 @@ VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerInsertEXT( const VkDebugMarkerMarkerInfoEXT* pMarkerInfo); #endif + #define VK_AMD_gcn_shader 1 #define VK_AMD_GCN_SHADER_SPEC_VERSION 1 #define VK_AMD_GCN_SHADER_EXTENSION_NAME "VK_AMD_gcn_shader" @@ -6056,7 +6527,6 @@ VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerInsertEXT( #define VK_NV_dedicated_allocation 1 #define VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION 1 #define VK_NV_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_NV_dedicated_allocation" - typedef struct VkDedicatedAllocationImageCreateInfoNV { VkStructureType sType; const void* pNext; @@ -6078,10 +6548,116 @@ typedef struct VkDedicatedAllocationMemoryAllocateInfoNV { +#define VK_EXT_transform_feedback 1 +#define VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION 1 +#define VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME "VK_EXT_transform_feedback" +typedef VkFlags VkPipelineRasterizationStateStreamCreateFlagsEXT; +typedef struct VkPhysicalDeviceTransformFeedbackFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 transformFeedback; + VkBool32 geometryStreams; +} VkPhysicalDeviceTransformFeedbackFeaturesEXT; + +typedef struct VkPhysicalDeviceTransformFeedbackPropertiesEXT { + VkStructureType sType; + void* pNext; + uint32_t maxTransformFeedbackStreams; + uint32_t maxTransformFeedbackBuffers; + VkDeviceSize maxTransformFeedbackBufferSize; + uint32_t maxTransformFeedbackStreamDataSize; + uint32_t maxTransformFeedbackBufferDataSize; + uint32_t maxTransformFeedbackBufferDataStride; + VkBool32 transformFeedbackQueries; + VkBool32 transformFeedbackStreamsLinesTriangles; + VkBool32 transformFeedbackRasterizationStreamSelect; + VkBool32 transformFeedbackDraw; +} VkPhysicalDeviceTransformFeedbackPropertiesEXT; + +typedef struct VkPipelineRasterizationStateStreamCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkPipelineRasterizationStateStreamCreateFlagsEXT flags; + uint32_t rasterizationStream; +} VkPipelineRasterizationStateStreamCreateInfoEXT; + +typedef void (VKAPI_PTR *PFN_vkCmdBindTransformFeedbackBuffersEXT)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes); +typedef void (VKAPI_PTR *PFN_vkCmdBeginTransformFeedbackEXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets); +typedef void (VKAPI_PTR *PFN_vkCmdEndTransformFeedbackEXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets); +typedef void (VKAPI_PTR *PFN_vkCmdBeginQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags, uint32_t index); +typedef void (VKAPI_PTR *PFN_vkCmdEndQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, uint32_t index); +typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectByteCountEXT)(VkCommandBuffer commandBuffer, uint32_t instanceCount, uint32_t firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdBindTransformFeedbackBuffersEXT( + VkCommandBuffer commandBuffer, + uint32_t firstBinding, + uint32_t bindingCount, + const VkBuffer* pBuffers, + const VkDeviceSize* pOffsets, + const VkDeviceSize* pSizes); + +VKAPI_ATTR void VKAPI_CALL vkCmdBeginTransformFeedbackEXT( + VkCommandBuffer commandBuffer, + uint32_t firstCounterBuffer, + uint32_t counterBufferCount, + const VkBuffer* pCounterBuffers, + const VkDeviceSize* pCounterBufferOffsets); + +VKAPI_ATTR void VKAPI_CALL vkCmdEndTransformFeedbackEXT( + VkCommandBuffer commandBuffer, + uint32_t firstCounterBuffer, + uint32_t counterBufferCount, + const VkBuffer* pCounterBuffers, + const VkDeviceSize* pCounterBufferOffsets); + +VKAPI_ATTR void VKAPI_CALL vkCmdBeginQueryIndexedEXT( + VkCommandBuffer commandBuffer, + VkQueryPool queryPool, + uint32_t query, + VkQueryControlFlags flags, + uint32_t index); + +VKAPI_ATTR void VKAPI_CALL vkCmdEndQueryIndexedEXT( + VkCommandBuffer commandBuffer, + VkQueryPool queryPool, + uint32_t query, + uint32_t index); + +VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectByteCountEXT( + VkCommandBuffer commandBuffer, + uint32_t instanceCount, + uint32_t firstInstance, + VkBuffer counterBuffer, + VkDeviceSize counterBufferOffset, + uint32_t counterOffset, + uint32_t vertexStride); +#endif + + +#define VK_NVX_image_view_handle 1 +#define VK_NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION 1 +#define VK_NVX_IMAGE_VIEW_HANDLE_EXTENSION_NAME "VK_NVX_image_view_handle" +typedef struct VkImageViewHandleInfoNVX { + VkStructureType sType; + const void* pNext; + VkImageView imageView; + VkDescriptorType descriptorType; + VkSampler sampler; +} VkImageViewHandleInfoNVX; + +typedef uint32_t (VKAPI_PTR *PFN_vkGetImageViewHandleNVX)(VkDevice device, const VkImageViewHandleInfoNVX* pInfo); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR uint32_t VKAPI_CALL vkGetImageViewHandleNVX( + VkDevice device, + const VkImageViewHandleInfoNVX* pInfo); +#endif + + #define VK_AMD_draw_indirect_count 1 #define VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION 1 #define VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_AMD_draw_indirect_count" - typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride); typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride); @@ -6105,13 +6681,14 @@ VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountAMD( uint32_t stride); #endif + #define VK_AMD_negative_viewport_height 1 #define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION 1 #define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME "VK_AMD_negative_viewport_height" #define VK_AMD_gpu_shader_half_float 1 -#define VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION 1 +#define VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION 2 #define VK_AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME "VK_AMD_gpu_shader_half_float" @@ -6123,7 +6700,6 @@ VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountAMD( #define VK_AMD_texture_gather_bias_lod 1 #define VK_AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION 1 #define VK_AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME "VK_AMD_texture_gather_bias_lod" - typedef struct VkTextureLODGatherFormatPropertiesAMD { VkStructureType sType; void* pNext; @@ -6136,7 +6712,6 @@ typedef struct VkTextureLODGatherFormatPropertiesAMD { #define VK_AMD_SHADER_INFO_SPEC_VERSION 1 #define VK_AMD_SHADER_INFO_EXTENSION_NAME "VK_AMD_shader_info" - typedef enum VkShaderInfoTypeAMD { VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0, VK_SHADER_INFO_TYPE_BINARY_AMD = 1, @@ -6146,7 +6721,6 @@ typedef enum VkShaderInfoTypeAMD { VK_SHADER_INFO_TYPE_RANGE_SIZE_AMD = (VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD - VK_SHADER_INFO_TYPE_STATISTICS_AMD + 1), VK_SHADER_INFO_TYPE_MAX_ENUM_AMD = 0x7FFFFFFF } VkShaderInfoTypeAMD; - typedef struct VkShaderResourceUsageAMD { uint32_t numUsedVgprs; uint32_t numUsedSgprs; @@ -6165,7 +6739,6 @@ typedef struct VkShaderStatisticsInfoAMD { uint32_t computeWorkGroupSize[3]; } VkShaderStatisticsInfoAMD; - typedef VkResult (VKAPI_PTR *PFN_vkGetShaderInfoAMD)(VkDevice device, VkPipeline pipeline, VkShaderStageFlagBits shaderStage, VkShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo); #ifndef VK_NO_PROTOTYPES @@ -6178,11 +6751,23 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetShaderInfoAMD( void* pInfo); #endif + #define VK_AMD_shader_image_load_store_lod 1 #define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_SPEC_VERSION 1 #define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_EXTENSION_NAME "VK_AMD_shader_image_load_store_lod" +#define VK_NV_corner_sampled_image 1 +#define VK_NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION 2 +#define VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME "VK_NV_corner_sampled_image" +typedef struct VkPhysicalDeviceCornerSampledImageFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 cornerSampledImage; +} VkPhysicalDeviceCornerSampledImageFeaturesNV; + + + #define VK_IMG_format_pvrtc 1 #define VK_IMG_FORMAT_PVRTC_SPEC_VERSION 1 #define VK_IMG_FORMAT_PVRTC_EXTENSION_NAME "VK_IMG_format_pvrtc" @@ -6192,7 +6777,6 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetShaderInfoAMD( #define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1 #define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_NV_external_memory_capabilities" - typedef enum VkExternalMemoryHandleTypeFlagBitsNV { VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 0x00000001, VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 0x00000002, @@ -6209,7 +6793,6 @@ typedef enum VkExternalMemoryFeatureFlagBitsNV { VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF } VkExternalMemoryFeatureFlagBitsNV; typedef VkFlags VkExternalMemoryFeatureFlagsNV; - typedef struct VkExternalImageFormatPropertiesNV { VkImageFormatProperties imageFormatProperties; VkExternalMemoryFeatureFlagsNV externalMemoryFeatures; @@ -6217,7 +6800,6 @@ typedef struct VkExternalImageFormatPropertiesNV { VkExternalMemoryHandleTypeFlagsNV compatibleHandleTypes; } VkExternalImageFormatPropertiesNV; - typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties); #ifndef VK_NO_PROTOTYPES @@ -6232,10 +6814,10 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceExternalImageFormatPropertiesN VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties); #endif + #define VK_NV_external_memory 1 #define VK_NV_EXTERNAL_MEMORY_SPEC_VERSION 1 #define VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME "VK_NV_external_memory" - typedef struct VkExternalMemoryImageCreateInfoNV { VkStructureType sType; const void* pNext; @@ -6254,7 +6836,6 @@ typedef struct VkExportMemoryAllocateInfoNV { #define VK_EXT_VALIDATION_FLAGS_SPEC_VERSION 1 #define VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME "VK_EXT_validation_flags" - typedef enum VkValidationCheckEXT { VK_VALIDATION_CHECK_ALL_EXT = 0, VK_VALIDATION_CHECK_SHADERS_EXT = 1, @@ -6263,12 +6844,11 @@ typedef enum VkValidationCheckEXT { VK_VALIDATION_CHECK_RANGE_SIZE_EXT = (VK_VALIDATION_CHECK_SHADERS_EXT - VK_VALIDATION_CHECK_ALL_EXT + 1), VK_VALIDATION_CHECK_MAX_ENUM_EXT = 0x7FFFFFFF } VkValidationCheckEXT; - typedef struct VkValidationFlagsEXT { - VkStructureType sType; - const void* pNext; - uint32_t disabledValidationCheckCount; - VkValidationCheckEXT* pDisabledValidationChecks; + VkStructureType sType; + const void* pNext; + uint32_t disabledValidationCheckCount; + const VkValidationCheckEXT* pDisabledValidationChecks; } VkValidationFlagsEXT; @@ -6283,14 +6863,72 @@ typedef struct VkValidationFlagsEXT { #define VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME "VK_EXT_shader_subgroup_vote" +#define VK_EXT_astc_decode_mode 1 +#define VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION 1 +#define VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME "VK_EXT_astc_decode_mode" +typedef struct VkImageViewASTCDecodeModeEXT { + VkStructureType sType; + const void* pNext; + VkFormat decodeMode; +} VkImageViewASTCDecodeModeEXT; + +typedef struct VkPhysicalDeviceASTCDecodeFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 decodeModeSharedExponent; +} VkPhysicalDeviceASTCDecodeFeaturesEXT; + + + +#define VK_EXT_conditional_rendering 1 +#define VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION 1 +#define VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME "VK_EXT_conditional_rendering" + +typedef enum VkConditionalRenderingFlagBitsEXT { + VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 0x00000001, + VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF +} VkConditionalRenderingFlagBitsEXT; +typedef VkFlags VkConditionalRenderingFlagsEXT; +typedef struct VkConditionalRenderingBeginInfoEXT { + VkStructureType sType; + const void* pNext; + VkBuffer buffer; + VkDeviceSize offset; + VkConditionalRenderingFlagsEXT flags; +} VkConditionalRenderingBeginInfoEXT; + +typedef struct VkPhysicalDeviceConditionalRenderingFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 conditionalRendering; + VkBool32 inheritedConditionalRendering; +} VkPhysicalDeviceConditionalRenderingFeaturesEXT; + +typedef struct VkCommandBufferInheritanceConditionalRenderingInfoEXT { + VkStructureType sType; + const void* pNext; + VkBool32 conditionalRenderingEnable; +} VkCommandBufferInheritanceConditionalRenderingInfoEXT; + +typedef void (VKAPI_PTR *PFN_vkCmdBeginConditionalRenderingEXT)(VkCommandBuffer commandBuffer, const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin); +typedef void (VKAPI_PTR *PFN_vkCmdEndConditionalRenderingEXT)(VkCommandBuffer commandBuffer); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdBeginConditionalRenderingEXT( + VkCommandBuffer commandBuffer, + const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin); + +VKAPI_ATTR void VKAPI_CALL vkCmdEndConditionalRenderingEXT( + VkCommandBuffer commandBuffer); +#endif + + #define VK_NVX_device_generated_commands 1 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkObjectTableNVX) VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutNVX) - #define VK_NVX_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 3 #define VK_NVX_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NVX_device_generated_commands" - typedef enum VkIndirectCommandsTokenTypeNVX { VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX = 0, VK_INDIRECT_COMMANDS_TOKEN_TYPE_DESCRIPTOR_SET_NVX = 1, @@ -6318,7 +6956,6 @@ typedef enum VkObjectEntryTypeNVX { VK_OBJECT_ENTRY_TYPE_MAX_ENUM_NVX = 0x7FFFFFFF } VkObjectEntryTypeNVX; - typedef enum VkIndirectCommandsLayoutUsageFlagBitsNVX { VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX = 0x00000001, VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX = 0x00000002, @@ -6334,7 +6971,6 @@ typedef enum VkObjectEntryUsageFlagBitsNVX { VK_OBJECT_ENTRY_USAGE_FLAG_BITS_MAX_ENUM_NVX = 0x7FFFFFFF } VkObjectEntryUsageFlagBitsNVX; typedef VkFlags VkObjectEntryUsageFlagsNVX; - typedef struct VkDeviceGeneratedCommandsFeaturesNVX { VkStructureType sType; const void* pNext; @@ -6448,7 +7084,6 @@ typedef struct VkObjectTablePushConstantEntryNVX { VkShaderStageFlags stageFlags; } VkObjectTablePushConstantEntryNVX; - typedef void (VKAPI_PTR *PFN_vkCmdProcessCommandsNVX)(VkCommandBuffer commandBuffer, const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo); typedef void (VKAPI_PTR *PFN_vkCmdReserveSpaceForCommandsNVX)(VkCommandBuffer commandBuffer, const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo); typedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectCommandsLayoutNVX)(VkDevice device, const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout); @@ -6510,10 +7145,10 @@ VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX( VkDeviceGeneratedCommandsLimitsNVX* pLimits); #endif + #define VK_NV_clip_space_w_scaling 1 #define VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION 1 #define VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME "VK_NV_clip_space_w_scaling" - typedef struct VkViewportWScalingNV { float xcoeff; float ycoeff; @@ -6527,7 +7162,6 @@ typedef struct VkPipelineViewportWScalingStateCreateInfoNV { const VkViewportWScalingNV* pViewportWScalings; } VkPipelineViewportWScalingStateCreateInfoNV; - typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWScalingNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportWScalingNV* pViewportWScalings); #ifndef VK_NO_PROTOTYPES @@ -6538,10 +7172,10 @@ VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWScalingNV( const VkViewportWScalingNV* pViewportWScalings); #endif + #define VK_EXT_direct_mode_display 1 #define VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION 1 #define VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME "VK_EXT_direct_mode_display" - typedef VkResult (VKAPI_PTR *PFN_vkReleaseDisplayEXT)(VkPhysicalDevice physicalDevice, VkDisplayKHR display); #ifndef VK_NO_PROTOTYPES @@ -6550,18 +7184,16 @@ VKAPI_ATTR VkResult VKAPI_CALL vkReleaseDisplayEXT( VkDisplayKHR display); #endif + #define VK_EXT_display_surface_counter 1 #define VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION 1 #define VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME "VK_EXT_display_surface_counter" -#define VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT - typedef enum VkSurfaceCounterFlagBitsEXT { VK_SURFACE_COUNTER_VBLANK_EXT = 0x00000001, VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF } VkSurfaceCounterFlagBitsEXT; typedef VkFlags VkSurfaceCounterFlagsEXT; - typedef struct VkSurfaceCapabilities2EXT { VkStructureType sType; void* pNext; @@ -6578,7 +7210,6 @@ typedef struct VkSurfaceCapabilities2EXT { VkSurfaceCounterFlagsEXT supportedSurfaceCounters; } VkSurfaceCapabilities2EXT; - typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities); #ifndef VK_NO_PROTOTYPES @@ -6588,11 +7219,11 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2EXT( VkSurfaceCapabilities2EXT* pSurfaceCapabilities); #endif + #define VK_EXT_display_control 1 #define VK_EXT_DISPLAY_CONTROL_SPEC_VERSION 1 #define VK_EXT_DISPLAY_CONTROL_EXTENSION_NAME "VK_EXT_display_control" - typedef enum VkDisplayPowerStateEXT { VK_DISPLAY_POWER_STATE_OFF_EXT = 0, VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1, @@ -6618,7 +7249,6 @@ typedef enum VkDisplayEventTypeEXT { VK_DISPLAY_EVENT_TYPE_RANGE_SIZE_EXT = (VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT - VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT + 1), VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF } VkDisplayEventTypeEXT; - typedef struct VkDisplayPowerInfoEXT { VkStructureType sType; const void* pNext; @@ -6643,7 +7273,6 @@ typedef struct VkSwapchainCounterCreateInfoEXT { VkSurfaceCounterFlagsEXT surfaceCounters; } VkSwapchainCounterCreateInfoEXT; - typedef VkResult (VKAPI_PTR *PFN_vkDisplayPowerControlEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo); typedef VkResult (VKAPI_PTR *PFN_vkRegisterDeviceEventEXT)(VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence); typedef VkResult (VKAPI_PTR *PFN_vkRegisterDisplayEventEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence); @@ -6675,10 +7304,10 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainCounterEXT( uint64_t* pCounterValue); #endif + #define VK_GOOGLE_display_timing 1 #define VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION 1 #define VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME "VK_GOOGLE_display_timing" - typedef struct VkRefreshCycleDurationGOOGLE { uint64_t refreshDuration; } VkRefreshCycleDurationGOOGLE; @@ -6703,7 +7332,6 @@ typedef struct VkPresentTimesInfoGOOGLE { const VkPresentTimeGOOGLE* pTimes; } VkPresentTimesInfoGOOGLE; - typedef VkResult (VKAPI_PTR *PFN_vkGetRefreshCycleDurationGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties); typedef VkResult (VKAPI_PTR *PFN_vkGetPastPresentationTimingGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings); @@ -6720,6 +7348,7 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetPastPresentationTimingGOOGLE( VkPastPresentationTimingGOOGLE* pPresentationTimings); #endif + #define VK_NV_sample_mask_override_coverage 1 #define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION 1 #define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME "VK_NV_sample_mask_override_coverage" @@ -6738,7 +7367,6 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetPastPresentationTimingGOOGLE( #define VK_NVX_multiview_per_view_attributes 1 #define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION 1 #define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME "VK_NVX_multiview_per_view_attributes" - typedef struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX { VkStructureType sType; void* pNext; @@ -6751,7 +7379,6 @@ typedef struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX { #define VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION 1 #define VK_NV_VIEWPORT_SWIZZLE_EXTENSION_NAME "VK_NV_viewport_swizzle" - typedef enum VkViewportCoordinateSwizzleNV { VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0, VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1, @@ -6766,9 +7393,7 @@ typedef enum VkViewportCoordinateSwizzleNV { VK_VIEWPORT_COORDINATE_SWIZZLE_RANGE_SIZE_NV = (VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV + 1), VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 0x7FFFFFFF } VkViewportCoordinateSwizzleNV; - typedef VkFlags VkPipelineViewportSwizzleStateCreateFlagsNV; - typedef struct VkViewportSwizzleNV { VkViewportCoordinateSwizzleNV x; VkViewportCoordinateSwizzleNV y; @@ -6790,7 +7415,6 @@ typedef struct VkPipelineViewportSwizzleStateCreateInfoNV { #define VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION 1 #define VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME "VK_EXT_discard_rectangles" - typedef enum VkDiscardRectangleModeEXT { VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0, VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1, @@ -6799,9 +7423,7 @@ typedef enum VkDiscardRectangleModeEXT { VK_DISCARD_RECTANGLE_MODE_RANGE_SIZE_EXT = (VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT - VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT + 1), VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 0x7FFFFFFF } VkDiscardRectangleModeEXT; - typedef VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT; - typedef struct VkPhysicalDeviceDiscardRectanglePropertiesEXT { VkStructureType sType; void* pNext; @@ -6817,7 +7439,6 @@ typedef struct VkPipelineDiscardRectangleStateCreateInfoEXT { const VkRect2D* pDiscardRectangles; } VkPipelineDiscardRectangleStateCreateInfoEXT; - typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleEXT)(VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VkRect2D* pDiscardRectangles); #ifndef VK_NO_PROTOTYPES @@ -6828,11 +7449,11 @@ VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleEXT( const VkRect2D* pDiscardRectangles); #endif + #define VK_EXT_conservative_rasterization 1 #define VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION 1 #define VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME "VK_EXT_conservative_rasterization" - typedef enum VkConservativeRasterizationModeEXT { VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0, VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1, @@ -6842,9 +7463,7 @@ typedef enum VkConservativeRasterizationModeEXT { VK_CONSERVATIVE_RASTERIZATION_MODE_RANGE_SIZE_EXT = (VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT - VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT + 1), VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT = 0x7FFFFFFF } VkConservativeRasterizationModeEXT; - typedef VkFlags VkPipelineRasterizationConservativeStateCreateFlagsEXT; - typedef struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT { VkStructureType sType; void* pNext; @@ -6869,15 +7488,33 @@ typedef struct VkPipelineRasterizationConservativeStateCreateInfoEXT { +#define VK_EXT_depth_clip_enable 1 +#define VK_EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION 1 +#define VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME "VK_EXT_depth_clip_enable" +typedef VkFlags VkPipelineRasterizationDepthClipStateCreateFlagsEXT; +typedef struct VkPhysicalDeviceDepthClipEnableFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 depthClipEnable; +} VkPhysicalDeviceDepthClipEnableFeaturesEXT; + +typedef struct VkPipelineRasterizationDepthClipStateCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkPipelineRasterizationDepthClipStateCreateFlagsEXT flags; + VkBool32 depthClipEnable; +} VkPipelineRasterizationDepthClipStateCreateInfoEXT; + + + #define VK_EXT_swapchain_colorspace 1 -#define VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION 3 +#define VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION 4 #define VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME "VK_EXT_swapchain_colorspace" #define VK_EXT_hdr_metadata 1 #define VK_EXT_HDR_METADATA_SPEC_VERSION 1 #define VK_EXT_HDR_METADATA_EXTENSION_NAME "VK_EXT_hdr_metadata" - typedef struct VkXYColorEXT { float x; float y; @@ -6896,7 +7533,6 @@ typedef struct VkHdrMetadataEXT { float maxFrameAverageLightLevel; } VkHdrMetadataEXT; - typedef void (VKAPI_PTR *PFN_vkSetHdrMetadataEXT)(VkDevice device, uint32_t swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata); #ifndef VK_NO_PROTOTYPES @@ -6907,6 +7543,7 @@ VKAPI_ATTR void VKAPI_CALL vkSetHdrMetadataEXT( const VkHdrMetadataEXT* pMetadata); #endif + #define VK_EXT_external_memory_dma_buf 1 #define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION 1 #define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME "VK_EXT_external_memory_dma_buf" @@ -6920,10 +7557,8 @@ VKAPI_ATTR void VKAPI_CALL vkSetHdrMetadataEXT( #define VK_EXT_debug_utils 1 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugUtilsMessengerEXT) - #define VK_EXT_DEBUG_UTILS_SPEC_VERSION 1 #define VK_EXT_DEBUG_UTILS_EXTENSION_NAME "VK_EXT_debug_utils" - typedef VkFlags VkDebugUtilsMessengerCallbackDataFlagsEXT; typedef VkFlags VkDebugUtilsMessengerCreateFlagsEXT; @@ -6943,7 +7578,6 @@ typedef enum VkDebugUtilsMessageTypeFlagBitsEXT { VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF } VkDebugUtilsMessageTypeFlagBitsEXT; typedef VkFlags VkDebugUtilsMessageTypeFlagsEXT; - typedef struct VkDebugUtilsObjectNameInfoEXT { VkStructureType sType; const void* pNext; @@ -6977,16 +7611,16 @@ typedef struct VkDebugUtilsMessengerCallbackDataEXT { int32_t messageIdNumber; const char* pMessage; uint32_t queueLabelCount; - VkDebugUtilsLabelEXT* pQueueLabels; + const VkDebugUtilsLabelEXT* pQueueLabels; uint32_t cmdBufLabelCount; - VkDebugUtilsLabelEXT* pCmdBufLabels; + const VkDebugUtilsLabelEXT* pCmdBufLabels; uint32_t objectCount; - VkDebugUtilsObjectNameInfoEXT* pObjects; + const VkDebugUtilsObjectNameInfoEXT* pObjects; } VkDebugUtilsMessengerCallbackDataEXT; typedef VkBool32 (VKAPI_PTR *PFN_vkDebugUtilsMessengerCallbackEXT)( VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, - VkDebugUtilsMessageTypeFlagsEXT messageType, + VkDebugUtilsMessageTypeFlagsEXT messageTypes, const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData, void* pUserData); @@ -7000,7 +7634,6 @@ typedef struct VkDebugUtilsMessengerCreateInfoEXT { void* pUserData; } VkDebugUtilsMessengerCreateInfoEXT; - typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectNameEXT)(VkDevice device, const VkDebugUtilsObjectNameInfoEXT* pNameInfo); typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectTagEXT)(VkDevice device, const VkDebugUtilsObjectTagInfoEXT* pTagInfo); typedef void (VKAPI_PTR *PFN_vkQueueBeginDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo); @@ -7062,11 +7695,11 @@ VKAPI_ATTR void VKAPI_CALL vkSubmitDebugUtilsMessageEXT( const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData); #endif + #define VK_EXT_sampler_filter_minmax 1 #define VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION 1 #define VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME "VK_EXT_sampler_filter_minmax" - typedef enum VkSamplerReductionModeEXT { VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT = 0, VK_SAMPLER_REDUCTION_MODE_MIN_EXT = 1, @@ -7076,7 +7709,6 @@ typedef enum VkSamplerReductionModeEXT { VK_SAMPLER_REDUCTION_MODE_RANGE_SIZE_EXT = (VK_SAMPLER_REDUCTION_MODE_MAX_EXT - VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT + 1), VK_SAMPLER_REDUCTION_MODE_MAX_ENUM_EXT = 0x7FFFFFFF } VkSamplerReductionModeEXT; - typedef struct VkSamplerReductionModeCreateInfoEXT { VkStructureType sType; const void* pNext; @@ -7093,7 +7725,7 @@ typedef struct VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT { #define VK_AMD_gpu_shader_int16 1 -#define VK_AMD_GPU_SHADER_INT16_SPEC_VERSION 1 +#define VK_AMD_GPU_SHADER_INT16_SPEC_VERSION 2 #define VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME "VK_AMD_gpu_shader_int16" @@ -7107,6 +7739,41 @@ typedef struct VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT { #define VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME "VK_AMD_shader_fragment_mask" +#define VK_EXT_inline_uniform_block 1 +#define VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION 1 +#define VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME "VK_EXT_inline_uniform_block" +typedef struct VkPhysicalDeviceInlineUniformBlockFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 inlineUniformBlock; + VkBool32 descriptorBindingInlineUniformBlockUpdateAfterBind; +} VkPhysicalDeviceInlineUniformBlockFeaturesEXT; + +typedef struct VkPhysicalDeviceInlineUniformBlockPropertiesEXT { + VkStructureType sType; + void* pNext; + uint32_t maxInlineUniformBlockSize; + uint32_t maxPerStageDescriptorInlineUniformBlocks; + uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks; + uint32_t maxDescriptorSetInlineUniformBlocks; + uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks; +} VkPhysicalDeviceInlineUniformBlockPropertiesEXT; + +typedef struct VkWriteDescriptorSetInlineUniformBlockEXT { + VkStructureType sType; + const void* pNext; + uint32_t dataSize; + const void* pData; +} VkWriteDescriptorSetInlineUniformBlockEXT; + +typedef struct VkDescriptorPoolInlineUniformBlockCreateInfoEXT { + VkStructureType sType; + const void* pNext; + uint32_t maxInlineUniformBlockBindings; +} VkDescriptorPoolInlineUniformBlockCreateInfoEXT; + + + #define VK_EXT_shader_stencil_export 1 #define VK_EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION 1 #define VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME "VK_EXT_shader_stencil_export" @@ -7115,7 +7782,6 @@ typedef struct VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT { #define VK_EXT_sample_locations 1 #define VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION 1 #define VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME "VK_EXT_sample_locations" - typedef struct VkSampleLocationEXT { float x; float y; @@ -7172,7 +7838,6 @@ typedef struct VkMultisamplePropertiesEXT { VkExtent2D maxSampleLocationGridSize; } VkMultisamplePropertiesEXT; - typedef void (VKAPI_PTR *PFN_vkCmdSetSampleLocationsEXT)(VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo); typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT)(VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties); @@ -7187,11 +7852,11 @@ VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMultisamplePropertiesEXT( VkMultisamplePropertiesEXT* pMultisampleProperties); #endif + #define VK_EXT_blend_operation_advanced 1 #define VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION 2 #define VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME "VK_EXT_blend_operation_advanced" - typedef enum VkBlendOverlapEXT { VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0, VK_BLEND_OVERLAP_DISJOINT_EXT = 1, @@ -7201,7 +7866,6 @@ typedef enum VkBlendOverlapEXT { VK_BLEND_OVERLAP_RANGE_SIZE_EXT = (VK_BLEND_OVERLAP_CONJOINT_EXT - VK_BLEND_OVERLAP_UNCORRELATED_EXT + 1), VK_BLEND_OVERLAP_MAX_ENUM_EXT = 0x7FFFFFFF } VkBlendOverlapEXT; - typedef struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT { VkStructureType sType; void* pNext; @@ -7232,9 +7896,7 @@ typedef struct VkPipelineColorBlendAdvancedStateCreateInfoEXT { #define VK_NV_fragment_coverage_to_color 1 #define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION 1 #define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME "VK_NV_fragment_coverage_to_color" - typedef VkFlags VkPipelineCoverageToColorStateCreateFlagsNV; - typedef struct VkPipelineCoverageToColorStateCreateInfoNV { VkStructureType sType; const void* pNext; @@ -7249,7 +7911,6 @@ typedef struct VkPipelineCoverageToColorStateCreateInfoNV { #define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION 1 #define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME "VK_NV_framebuffer_mixed_samples" - typedef enum VkCoverageModulationModeNV { VK_COVERAGE_MODULATION_MODE_NONE_NV = 0, VK_COVERAGE_MODULATION_MODE_RGB_NV = 1, @@ -7260,9 +7921,7 @@ typedef enum VkCoverageModulationModeNV { VK_COVERAGE_MODULATION_MODE_RANGE_SIZE_NV = (VK_COVERAGE_MODULATION_MODE_RGBA_NV - VK_COVERAGE_MODULATION_MODE_NONE_NV + 1), VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 0x7FFFFFFF } VkCoverageModulationModeNV; - typedef VkFlags VkPipelineCoverageModulationStateCreateFlagsNV; - typedef struct VkPipelineCoverageModulationStateCreateInfoNV { VkStructureType sType; const void* pNext; @@ -7280,18 +7939,89 @@ typedef struct VkPipelineCoverageModulationStateCreateInfoNV { #define VK_NV_FILL_RECTANGLE_EXTENSION_NAME "VK_NV_fill_rectangle" +#define VK_NV_shader_sm_builtins 1 +#define VK_NV_SHADER_SM_BUILTINS_SPEC_VERSION 1 +#define VK_NV_SHADER_SM_BUILTINS_EXTENSION_NAME "VK_NV_shader_sm_builtins" +typedef struct VkPhysicalDeviceShaderSMBuiltinsPropertiesNV { + VkStructureType sType; + void* pNext; + uint32_t shaderSMCount; + uint32_t shaderWarpsPerSM; +} VkPhysicalDeviceShaderSMBuiltinsPropertiesNV; + +typedef struct VkPhysicalDeviceShaderSMBuiltinsFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 shaderSMBuiltins; +} VkPhysicalDeviceShaderSMBuiltinsFeaturesNV; + + + #define VK_EXT_post_depth_coverage 1 #define VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION 1 #define VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME "VK_EXT_post_depth_coverage" +#define VK_EXT_image_drm_format_modifier 1 +#define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION 1 +#define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME "VK_EXT_image_drm_format_modifier" +typedef struct VkDrmFormatModifierPropertiesEXT { + uint64_t drmFormatModifier; + uint32_t drmFormatModifierPlaneCount; + VkFormatFeatureFlags drmFormatModifierTilingFeatures; +} VkDrmFormatModifierPropertiesEXT; + +typedef struct VkDrmFormatModifierPropertiesListEXT { + VkStructureType sType; + void* pNext; + uint32_t drmFormatModifierCount; + VkDrmFormatModifierPropertiesEXT* pDrmFormatModifierProperties; +} VkDrmFormatModifierPropertiesListEXT; + +typedef struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT { + VkStructureType sType; + const void* pNext; + uint64_t drmFormatModifier; + VkSharingMode sharingMode; + uint32_t queueFamilyIndexCount; + const uint32_t* pQueueFamilyIndices; +} VkPhysicalDeviceImageDrmFormatModifierInfoEXT; + +typedef struct VkImageDrmFormatModifierListCreateInfoEXT { + VkStructureType sType; + const void* pNext; + uint32_t drmFormatModifierCount; + const uint64_t* pDrmFormatModifiers; +} VkImageDrmFormatModifierListCreateInfoEXT; + +typedef struct VkImageDrmFormatModifierExplicitCreateInfoEXT { + VkStructureType sType; + const void* pNext; + uint64_t drmFormatModifier; + uint32_t drmFormatModifierPlaneCount; + const VkSubresourceLayout* pPlaneLayouts; +} VkImageDrmFormatModifierExplicitCreateInfoEXT; + +typedef struct VkImageDrmFormatModifierPropertiesEXT { + VkStructureType sType; + void* pNext; + uint64_t drmFormatModifier; +} VkImageDrmFormatModifierPropertiesEXT; + +typedef VkResult (VKAPI_PTR *PFN_vkGetImageDrmFormatModifierPropertiesEXT)(VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetImageDrmFormatModifierPropertiesEXT( + VkDevice device, + VkImage image, + VkImageDrmFormatModifierPropertiesEXT* pProperties); +#endif + + #define VK_EXT_validation_cache 1 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkValidationCacheEXT) - #define VK_EXT_VALIDATION_CACHE_SPEC_VERSION 1 #define VK_EXT_VALIDATION_CACHE_EXTENSION_NAME "VK_EXT_validation_cache" -#define VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT - typedef enum VkValidationCacheHeaderVersionEXT { VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1, @@ -7300,9 +8030,7 @@ typedef enum VkValidationCacheHeaderVersionEXT { VK_VALIDATION_CACHE_HEADER_VERSION_RANGE_SIZE_EXT = (VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT - VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT + 1), VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 0x7FFFFFFF } VkValidationCacheHeaderVersionEXT; - typedef VkFlags VkValidationCacheCreateFlagsEXT; - typedef struct VkValidationCacheCreateInfoEXT { VkStructureType sType; const void* pNext; @@ -7317,7 +8045,6 @@ typedef struct VkShaderModuleValidationCacheCreateInfoEXT { VkValidationCacheEXT validationCache; } VkShaderModuleValidationCacheCreateInfoEXT; - typedef VkResult (VKAPI_PTR *PFN_vkCreateValidationCacheEXT)(VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkValidationCacheEXT* pValidationCache); typedef void (VKAPI_PTR *PFN_vkDestroyValidationCacheEXT)(VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks* pAllocator); typedef VkResult (VKAPI_PTR *PFN_vkMergeValidationCachesEXT)(VkDevice device, VkValidationCacheEXT dstCache, uint32_t srcCacheCount, const VkValidationCacheEXT* pSrcCaches); @@ -7348,11 +8075,11 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetValidationCacheDataEXT( void* pData); #endif + #define VK_EXT_descriptor_indexing 1 #define VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION 2 #define VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME "VK_EXT_descriptor_indexing" - typedef enum VkDescriptorBindingFlagBitsEXT { VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT = 0x00000001, VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT = 0x00000002, @@ -7361,7 +8088,6 @@ typedef enum VkDescriptorBindingFlagBitsEXT { VK_DESCRIPTOR_BINDING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF } VkDescriptorBindingFlagBitsEXT; typedef VkFlags VkDescriptorBindingFlagsEXT; - typedef struct VkDescriptorSetLayoutBindingFlagsCreateInfoEXT { VkStructureType sType; const void* pNext; @@ -7442,11 +8168,451 @@ typedef struct VkDescriptorSetVariableDescriptorCountLayoutSupportEXT { #define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME "VK_EXT_shader_viewport_index_layer" +#define VK_NV_shading_rate_image 1 +#define VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION 3 +#define VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME "VK_NV_shading_rate_image" + +typedef enum VkShadingRatePaletteEntryNV { + VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0, + VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1, + VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2, + VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3, + VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4, + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5, + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6, + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7, + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8, + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9, + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10, + VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11, + VK_SHADING_RATE_PALETTE_ENTRY_BEGIN_RANGE_NV = VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV, + VK_SHADING_RATE_PALETTE_ENTRY_END_RANGE_NV = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV, + VK_SHADING_RATE_PALETTE_ENTRY_RANGE_SIZE_NV = (VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV - VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV + 1), + VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV = 0x7FFFFFFF +} VkShadingRatePaletteEntryNV; + +typedef enum VkCoarseSampleOrderTypeNV { + VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0, + VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1, + VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2, + VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3, + VK_COARSE_SAMPLE_ORDER_TYPE_BEGIN_RANGE_NV = VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV, + VK_COARSE_SAMPLE_ORDER_TYPE_END_RANGE_NV = VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV, + VK_COARSE_SAMPLE_ORDER_TYPE_RANGE_SIZE_NV = (VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV - VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV + 1), + VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV = 0x7FFFFFFF +} VkCoarseSampleOrderTypeNV; +typedef struct VkShadingRatePaletteNV { + uint32_t shadingRatePaletteEntryCount; + const VkShadingRatePaletteEntryNV* pShadingRatePaletteEntries; +} VkShadingRatePaletteNV; + +typedef struct VkPipelineViewportShadingRateImageStateCreateInfoNV { + VkStructureType sType; + const void* pNext; + VkBool32 shadingRateImageEnable; + uint32_t viewportCount; + const VkShadingRatePaletteNV* pShadingRatePalettes; +} VkPipelineViewportShadingRateImageStateCreateInfoNV; + +typedef struct VkPhysicalDeviceShadingRateImageFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 shadingRateImage; + VkBool32 shadingRateCoarseSampleOrder; +} VkPhysicalDeviceShadingRateImageFeaturesNV; + +typedef struct VkPhysicalDeviceShadingRateImagePropertiesNV { + VkStructureType sType; + void* pNext; + VkExtent2D shadingRateTexelSize; + uint32_t shadingRatePaletteSize; + uint32_t shadingRateMaxCoarseSamples; +} VkPhysicalDeviceShadingRateImagePropertiesNV; + +typedef struct VkCoarseSampleLocationNV { + uint32_t pixelX; + uint32_t pixelY; + uint32_t sample; +} VkCoarseSampleLocationNV; + +typedef struct VkCoarseSampleOrderCustomNV { + VkShadingRatePaletteEntryNV shadingRate; + uint32_t sampleCount; + uint32_t sampleLocationCount; + const VkCoarseSampleLocationNV* pSampleLocations; +} VkCoarseSampleOrderCustomNV; + +typedef struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV { + VkStructureType sType; + const void* pNext; + VkCoarseSampleOrderTypeNV sampleOrderType; + uint32_t customSampleOrderCount; + const VkCoarseSampleOrderCustomNV* pCustomSampleOrders; +} VkPipelineViewportCoarseSampleOrderStateCreateInfoNV; + +typedef void (VKAPI_PTR *PFN_vkCmdBindShadingRateImageNV)(VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout); +typedef void (VKAPI_PTR *PFN_vkCmdSetViewportShadingRatePaletteNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkShadingRatePaletteNV* pShadingRatePalettes); +typedef void (VKAPI_PTR *PFN_vkCmdSetCoarseSampleOrderNV)(VkCommandBuffer commandBuffer, VkCoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const VkCoarseSampleOrderCustomNV* pCustomSampleOrders); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdBindShadingRateImageNV( + VkCommandBuffer commandBuffer, + VkImageView imageView, + VkImageLayout imageLayout); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportShadingRatePaletteNV( + VkCommandBuffer commandBuffer, + uint32_t firstViewport, + uint32_t viewportCount, + const VkShadingRatePaletteNV* pShadingRatePalettes); + +VKAPI_ATTR void VKAPI_CALL vkCmdSetCoarseSampleOrderNV( + VkCommandBuffer commandBuffer, + VkCoarseSampleOrderTypeNV sampleOrderType, + uint32_t customSampleOrderCount, + const VkCoarseSampleOrderCustomNV* pCustomSampleOrders); +#endif + + +#define VK_NV_ray_tracing 1 +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureNV) +#define VK_NV_RAY_TRACING_SPEC_VERSION 3 +#define VK_NV_RAY_TRACING_EXTENSION_NAME "VK_NV_ray_tracing" +#define VK_SHADER_UNUSED_NV (~0U) + +typedef enum VkRayTracingShaderGroupTypeNV { + VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = 0, + VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = 1, + VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = 2, + VK_RAY_TRACING_SHADER_GROUP_TYPE_BEGIN_RANGE_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV, + VK_RAY_TRACING_SHADER_GROUP_TYPE_END_RANGE_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV, + VK_RAY_TRACING_SHADER_GROUP_TYPE_RANGE_SIZE_NV = (VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV - VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV + 1), + VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_NV = 0x7FFFFFFF +} VkRayTracingShaderGroupTypeNV; + +typedef enum VkGeometryTypeNV { + VK_GEOMETRY_TYPE_TRIANGLES_NV = 0, + VK_GEOMETRY_TYPE_AABBS_NV = 1, + VK_GEOMETRY_TYPE_BEGIN_RANGE_NV = VK_GEOMETRY_TYPE_TRIANGLES_NV, + VK_GEOMETRY_TYPE_END_RANGE_NV = VK_GEOMETRY_TYPE_AABBS_NV, + VK_GEOMETRY_TYPE_RANGE_SIZE_NV = (VK_GEOMETRY_TYPE_AABBS_NV - VK_GEOMETRY_TYPE_TRIANGLES_NV + 1), + VK_GEOMETRY_TYPE_MAX_ENUM_NV = 0x7FFFFFFF +} VkGeometryTypeNV; + +typedef enum VkAccelerationStructureTypeNV { + VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = 0, + VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = 1, + VK_ACCELERATION_STRUCTURE_TYPE_BEGIN_RANGE_NV = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV, + VK_ACCELERATION_STRUCTURE_TYPE_END_RANGE_NV = VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV, + VK_ACCELERATION_STRUCTURE_TYPE_RANGE_SIZE_NV = (VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV - VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV + 1), + VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF +} VkAccelerationStructureTypeNV; + +typedef enum VkCopyAccelerationStructureModeNV { + VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = 0, + VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = 1, + VK_COPY_ACCELERATION_STRUCTURE_MODE_BEGIN_RANGE_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV, + VK_COPY_ACCELERATION_STRUCTURE_MODE_END_RANGE_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV, + VK_COPY_ACCELERATION_STRUCTURE_MODE_RANGE_SIZE_NV = (VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV - VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV + 1), + VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_NV = 0x7FFFFFFF +} VkCopyAccelerationStructureModeNV; + +typedef enum VkAccelerationStructureMemoryRequirementsTypeNV { + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0, + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1, + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2, + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BEGIN_RANGE_NV = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV, + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_END_RANGE_NV = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV, + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_RANGE_SIZE_NV = (VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV + 1), + VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV = 0x7FFFFFFF +} VkAccelerationStructureMemoryRequirementsTypeNV; + +typedef enum VkGeometryFlagBitsNV { + VK_GEOMETRY_OPAQUE_BIT_NV = 0x00000001, + VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = 0x00000002, + VK_GEOMETRY_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF +} VkGeometryFlagBitsNV; +typedef VkFlags VkGeometryFlagsNV; + +typedef enum VkGeometryInstanceFlagBitsNV { + VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = 0x00000001, + VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = 0x00000002, + VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = 0x00000004, + VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = 0x00000008, + VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF +} VkGeometryInstanceFlagBitsNV; +typedef VkFlags VkGeometryInstanceFlagsNV; + +typedef enum VkBuildAccelerationStructureFlagBitsNV { + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = 0x00000001, + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = 0x00000002, + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = 0x00000004, + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = 0x00000008, + VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = 0x00000010, + VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF +} VkBuildAccelerationStructureFlagBitsNV; +typedef VkFlags VkBuildAccelerationStructureFlagsNV; +typedef struct VkRayTracingShaderGroupCreateInfoNV { + VkStructureType sType; + const void* pNext; + VkRayTracingShaderGroupTypeNV type; + uint32_t generalShader; + uint32_t closestHitShader; + uint32_t anyHitShader; + uint32_t intersectionShader; +} VkRayTracingShaderGroupCreateInfoNV; + +typedef struct VkRayTracingPipelineCreateInfoNV { + VkStructureType sType; + const void* pNext; + VkPipelineCreateFlags flags; + uint32_t stageCount; + const VkPipelineShaderStageCreateInfo* pStages; + uint32_t groupCount; + const VkRayTracingShaderGroupCreateInfoNV* pGroups; + uint32_t maxRecursionDepth; + VkPipelineLayout layout; + VkPipeline basePipelineHandle; + int32_t basePipelineIndex; +} VkRayTracingPipelineCreateInfoNV; + +typedef struct VkGeometryTrianglesNV { + VkStructureType sType; + const void* pNext; + VkBuffer vertexData; + VkDeviceSize vertexOffset; + uint32_t vertexCount; + VkDeviceSize vertexStride; + VkFormat vertexFormat; + VkBuffer indexData; + VkDeviceSize indexOffset; + uint32_t indexCount; + VkIndexType indexType; + VkBuffer transformData; + VkDeviceSize transformOffset; +} VkGeometryTrianglesNV; + +typedef struct VkGeometryAABBNV { + VkStructureType sType; + const void* pNext; + VkBuffer aabbData; + uint32_t numAABBs; + uint32_t stride; + VkDeviceSize offset; +} VkGeometryAABBNV; + +typedef struct VkGeometryDataNV { + VkGeometryTrianglesNV triangles; + VkGeometryAABBNV aabbs; +} VkGeometryDataNV; + +typedef struct VkGeometryNV { + VkStructureType sType; + const void* pNext; + VkGeometryTypeNV geometryType; + VkGeometryDataNV geometry; + VkGeometryFlagsNV flags; +} VkGeometryNV; + +typedef struct VkAccelerationStructureInfoNV { + VkStructureType sType; + const void* pNext; + VkAccelerationStructureTypeNV type; + VkBuildAccelerationStructureFlagsNV flags; + uint32_t instanceCount; + uint32_t geometryCount; + const VkGeometryNV* pGeometries; +} VkAccelerationStructureInfoNV; + +typedef struct VkAccelerationStructureCreateInfoNV { + VkStructureType sType; + const void* pNext; + VkDeviceSize compactedSize; + VkAccelerationStructureInfoNV info; +} VkAccelerationStructureCreateInfoNV; + +typedef struct VkBindAccelerationStructureMemoryInfoNV { + VkStructureType sType; + const void* pNext; + VkAccelerationStructureNV accelerationStructure; + VkDeviceMemory memory; + VkDeviceSize memoryOffset; + uint32_t deviceIndexCount; + const uint32_t* pDeviceIndices; +} VkBindAccelerationStructureMemoryInfoNV; + +typedef struct VkWriteDescriptorSetAccelerationStructureNV { + VkStructureType sType; + const void* pNext; + uint32_t accelerationStructureCount; + const VkAccelerationStructureNV* pAccelerationStructures; +} VkWriteDescriptorSetAccelerationStructureNV; + +typedef struct VkAccelerationStructureMemoryRequirementsInfoNV { + VkStructureType sType; + const void* pNext; + VkAccelerationStructureMemoryRequirementsTypeNV type; + VkAccelerationStructureNV accelerationStructure; +} VkAccelerationStructureMemoryRequirementsInfoNV; + +typedef struct VkPhysicalDeviceRayTracingPropertiesNV { + VkStructureType sType; + void* pNext; + uint32_t shaderGroupHandleSize; + uint32_t maxRecursionDepth; + uint32_t maxShaderGroupStride; + uint32_t shaderGroupBaseAlignment; + uint64_t maxGeometryCount; + uint64_t maxInstanceCount; + uint64_t maxTriangleCount; + uint32_t maxDescriptorSetAccelerationStructures; +} VkPhysicalDeviceRayTracingPropertiesNV; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateAccelerationStructureNV)(VkDevice device, const VkAccelerationStructureCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureNV* pAccelerationStructure); +typedef void (VKAPI_PTR *PFN_vkDestroyAccelerationStructureNV)(VkDevice device, VkAccelerationStructureNV accelerationStructure, const VkAllocationCallbacks* pAllocator); +typedef void (VKAPI_PTR *PFN_vkGetAccelerationStructureMemoryRequirementsNV)(VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements); +typedef VkResult (VKAPI_PTR *PFN_vkBindAccelerationStructureMemoryNV)(VkDevice device, uint32_t bindInfoCount, const VkBindAccelerationStructureMemoryInfoNV* pBindInfos); +typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructureNV)(VkCommandBuffer commandBuffer, const VkAccelerationStructureInfoNV* pInfo, VkBuffer instanceData, VkDeviceSize instanceOffset, VkBool32 update, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkBuffer scratch, VkDeviceSize scratchOffset); +typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureNV)(VkCommandBuffer commandBuffer, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkCopyAccelerationStructureModeNV mode); +typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysNV)(VkCommandBuffer commandBuffer, VkBuffer raygenShaderBindingTableBuffer, VkDeviceSize raygenShaderBindingOffset, VkBuffer missShaderBindingTableBuffer, VkDeviceSize missShaderBindingOffset, VkDeviceSize missShaderBindingStride, VkBuffer hitShaderBindingTableBuffer, VkDeviceSize hitShaderBindingOffset, VkDeviceSize hitShaderBindingStride, VkBuffer callableShaderBindingTableBuffer, VkDeviceSize callableShaderBindingOffset, VkDeviceSize callableShaderBindingStride, uint32_t width, uint32_t height, uint32_t depth); +typedef VkResult (VKAPI_PTR *PFN_vkCreateRayTracingPipelinesNV)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoNV* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines); +typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupHandlesNV)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData); +typedef VkResult (VKAPI_PTR *PFN_vkGetAccelerationStructureHandleNV)(VkDevice device, VkAccelerationStructureNV accelerationStructure, size_t dataSize, void* pData); +typedef void (VKAPI_PTR *PFN_vkCmdWriteAccelerationStructuresPropertiesNV)(VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureNV* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery); +typedef VkResult (VKAPI_PTR *PFN_vkCompileDeferredNV)(VkDevice device, VkPipeline pipeline, uint32_t shader); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateAccelerationStructureNV( + VkDevice device, + const VkAccelerationStructureCreateInfoNV* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkAccelerationStructureNV* pAccelerationStructure); + +VKAPI_ATTR void VKAPI_CALL vkDestroyAccelerationStructureNV( + VkDevice device, + VkAccelerationStructureNV accelerationStructure, + const VkAllocationCallbacks* pAllocator); + +VKAPI_ATTR void VKAPI_CALL vkGetAccelerationStructureMemoryRequirementsNV( + VkDevice device, + const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo, + VkMemoryRequirements2KHR* pMemoryRequirements); + +VKAPI_ATTR VkResult VKAPI_CALL vkBindAccelerationStructureMemoryNV( + VkDevice device, + uint32_t bindInfoCount, + const VkBindAccelerationStructureMemoryInfoNV* pBindInfos); + +VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructureNV( + VkCommandBuffer commandBuffer, + const VkAccelerationStructureInfoNV* pInfo, + VkBuffer instanceData, + VkDeviceSize instanceOffset, + VkBool32 update, + VkAccelerationStructureNV dst, + VkAccelerationStructureNV src, + VkBuffer scratch, + VkDeviceSize scratchOffset); + +VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureNV( + VkCommandBuffer commandBuffer, + VkAccelerationStructureNV dst, + VkAccelerationStructureNV src, + VkCopyAccelerationStructureModeNV mode); + +VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysNV( + VkCommandBuffer commandBuffer, + VkBuffer raygenShaderBindingTableBuffer, + VkDeviceSize raygenShaderBindingOffset, + VkBuffer missShaderBindingTableBuffer, + VkDeviceSize missShaderBindingOffset, + VkDeviceSize missShaderBindingStride, + VkBuffer hitShaderBindingTableBuffer, + VkDeviceSize hitShaderBindingOffset, + VkDeviceSize hitShaderBindingStride, + VkBuffer callableShaderBindingTableBuffer, + VkDeviceSize callableShaderBindingOffset, + VkDeviceSize callableShaderBindingStride, + uint32_t width, + uint32_t height, + uint32_t depth); + +VKAPI_ATTR VkResult VKAPI_CALL vkCreateRayTracingPipelinesNV( + VkDevice device, + VkPipelineCache pipelineCache, + uint32_t createInfoCount, + const VkRayTracingPipelineCreateInfoNV* pCreateInfos, + const VkAllocationCallbacks* pAllocator, + VkPipeline* pPipelines); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingShaderGroupHandlesNV( + VkDevice device, + VkPipeline pipeline, + uint32_t firstGroup, + uint32_t groupCount, + size_t dataSize, + void* pData); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetAccelerationStructureHandleNV( + VkDevice device, + VkAccelerationStructureNV accelerationStructure, + size_t dataSize, + void* pData); + +VKAPI_ATTR void VKAPI_CALL vkCmdWriteAccelerationStructuresPropertiesNV( + VkCommandBuffer commandBuffer, + uint32_t accelerationStructureCount, + const VkAccelerationStructureNV* pAccelerationStructures, + VkQueryType queryType, + VkQueryPool queryPool, + uint32_t firstQuery); + +VKAPI_ATTR VkResult VKAPI_CALL vkCompileDeferredNV( + VkDevice device, + VkPipeline pipeline, + uint32_t shader); +#endif + + +#define VK_NV_representative_fragment_test 1 +#define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION 1 +#define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME "VK_NV_representative_fragment_test" +typedef struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 representativeFragmentTest; +} VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV; + +typedef struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV { + VkStructureType sType; + const void* pNext; + VkBool32 representativeFragmentTestEnable; +} VkPipelineRepresentativeFragmentTestStateCreateInfoNV; + + + +#define VK_EXT_filter_cubic 1 +#define VK_EXT_FILTER_CUBIC_SPEC_VERSION 2 +#define VK_EXT_FILTER_CUBIC_EXTENSION_NAME "VK_EXT_filter_cubic" +typedef struct VkPhysicalDeviceImageViewImageFormatInfoEXT { + VkStructureType sType; + void* pNext; + VkImageViewType imageViewType; +} VkPhysicalDeviceImageViewImageFormatInfoEXT; + +typedef struct VkFilterCubicImageViewImageFormatPropertiesEXT { + VkStructureType sType; + void* pNext; + VkBool32 filterCubic; + VkBool32 filterCubicMinmax ; +} VkFilterCubicImageViewImageFormatPropertiesEXT; + + + #define VK_EXT_global_priority 1 #define VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION 2 #define VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME "VK_EXT_global_priority" - typedef enum VkQueueGlobalPriorityEXT { VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = 128, VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256, @@ -7457,7 +8623,6 @@ typedef enum VkQueueGlobalPriorityEXT { VK_QUEUE_GLOBAL_PRIORITY_RANGE_SIZE_EXT = (VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT - VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT + 1), VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_EXT = 0x7FFFFFFF } VkQueueGlobalPriorityEXT; - typedef struct VkDeviceQueueGlobalPriorityCreateInfoEXT { VkStructureType sType; const void* pNext; @@ -7469,7 +8634,6 @@ typedef struct VkDeviceQueueGlobalPriorityCreateInfoEXT { #define VK_EXT_external_memory_host 1 #define VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION 1 #define VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME "VK_EXT_external_memory_host" - typedef struct VkImportMemoryHostPointerInfoEXT { VkStructureType sType; const void* pNext; @@ -7489,7 +8653,6 @@ typedef struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT { VkDeviceSize minImportedHostPointerAlignment; } VkPhysicalDeviceExternalMemoryHostPropertiesEXT; - typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryHostPointerPropertiesEXT)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties); #ifndef VK_NO_PROTOTYPES @@ -7500,10 +8663,10 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryHostPointerPropertiesEXT( VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties); #endif + #define VK_AMD_buffer_marker 1 #define VK_AMD_BUFFER_MARKER_SPEC_VERSION 1 #define VK_AMD_BUFFER_MARKER_EXTENSION_NAME "VK_AMD_buffer_marker" - typedef void (VKAPI_PTR *PFN_vkCmdWriteBufferMarkerAMD)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker); #ifndef VK_NO_PROTOTYPES @@ -7515,10 +8678,48 @@ VKAPI_ATTR void VKAPI_CALL vkCmdWriteBufferMarkerAMD( uint32_t marker); #endif + +#define VK_EXT_calibrated_timestamps 1 +#define VK_EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION 1 +#define VK_EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME "VK_EXT_calibrated_timestamps" + +typedef enum VkTimeDomainEXT { + VK_TIME_DOMAIN_DEVICE_EXT = 0, + VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = 1, + VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = 2, + VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = 3, + VK_TIME_DOMAIN_BEGIN_RANGE_EXT = VK_TIME_DOMAIN_DEVICE_EXT, + VK_TIME_DOMAIN_END_RANGE_EXT = VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT, + VK_TIME_DOMAIN_RANGE_SIZE_EXT = (VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT - VK_TIME_DOMAIN_DEVICE_EXT + 1), + VK_TIME_DOMAIN_MAX_ENUM_EXT = 0x7FFFFFFF +} VkTimeDomainEXT; +typedef struct VkCalibratedTimestampInfoEXT { + VkStructureType sType; + const void* pNext; + VkTimeDomainEXT timeDomain; +} VkCalibratedTimestampInfoEXT; + +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT)(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainEXT* pTimeDomains); +typedef VkResult (VKAPI_PTR *PFN_vkGetCalibratedTimestampsEXT)(VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( + VkPhysicalDevice physicalDevice, + uint32_t* pTimeDomainCount, + VkTimeDomainEXT* pTimeDomains); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetCalibratedTimestampsEXT( + VkDevice device, + uint32_t timestampCount, + const VkCalibratedTimestampInfoEXT* pTimestampInfos, + uint64_t* pTimestamps, + uint64_t* pMaxDeviation); +#endif + + #define VK_AMD_shader_core_properties 1 #define VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION 1 #define VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_AMD_shader_core_properties" - typedef struct VkPhysicalDeviceShaderCorePropertiesAMD { VkStructureType sType; void* pNext; @@ -7540,10 +8741,30 @@ typedef struct VkPhysicalDeviceShaderCorePropertiesAMD { -#define VK_EXT_vertex_attribute_divisor 1 -#define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION 1 -#define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_EXT_vertex_attribute_divisor" +#define VK_AMD_memory_overallocation_behavior 1 +#define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_SPEC_VERSION 1 +#define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_EXTENSION_NAME "VK_AMD_memory_overallocation_behavior" +typedef enum VkMemoryOverallocationBehaviorAMD { + VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0, + VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1, + VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2, + VK_MEMORY_OVERALLOCATION_BEHAVIOR_BEGIN_RANGE_AMD = VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD, + VK_MEMORY_OVERALLOCATION_BEHAVIOR_END_RANGE_AMD = VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD, + VK_MEMORY_OVERALLOCATION_BEHAVIOR_RANGE_SIZE_AMD = (VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD - VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD + 1), + VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD = 0x7FFFFFFF +} VkMemoryOverallocationBehaviorAMD; +typedef struct VkDeviceMemoryOverallocationCreateInfoAMD { + VkStructureType sType; + const void* pNext; + VkMemoryOverallocationBehaviorAMD overallocationBehavior; +} VkDeviceMemoryOverallocationCreateInfoAMD; + + + +#define VK_EXT_vertex_attribute_divisor 1 +#define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION 3 +#define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_EXT_vertex_attribute_divisor" typedef struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT { VkStructureType sType; void* pNext; @@ -7562,6 +8783,39 @@ typedef struct VkPipelineVertexInputDivisorStateCreateInfoEXT { const VkVertexInputBindingDivisorDescriptionEXT* pVertexBindingDivisors; } VkPipelineVertexInputDivisorStateCreateInfoEXT; +typedef struct VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 vertexAttributeInstanceRateDivisor; + VkBool32 vertexAttributeInstanceRateZeroDivisor; +} VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT; + + + +#define VK_EXT_pipeline_creation_feedback 1 +#define VK_EXT_PIPELINE_CREATION_FEEDBACK_SPEC_VERSION 1 +#define VK_EXT_PIPELINE_CREATION_FEEDBACK_EXTENSION_NAME "VK_EXT_pipeline_creation_feedback" + +typedef enum VkPipelineCreationFeedbackFlagBitsEXT { + VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT = 0x00000001, + VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT = 0x00000002, + VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT = 0x00000004, + VK_PIPELINE_CREATION_FEEDBACK_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF +} VkPipelineCreationFeedbackFlagBitsEXT; +typedef VkFlags VkPipelineCreationFeedbackFlagsEXT; +typedef struct VkPipelineCreationFeedbackEXT { + VkPipelineCreationFeedbackFlagsEXT flags; + uint64_t duration; +} VkPipelineCreationFeedbackEXT; + +typedef struct VkPipelineCreationFeedbackCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkPipelineCreationFeedbackEXT* pPipelineCreationFeedback; + uint32_t pipelineStageCreationFeedbackCount; + VkPipelineCreationFeedbackEXT* pPipelineStageCreationFeedbacks; +} VkPipelineCreationFeedbackCreateInfoEXT; + #define VK_NV_shader_subgroup_partitioned 1 @@ -7569,6 +8823,739 @@ typedef struct VkPipelineVertexInputDivisorStateCreateInfoEXT { #define VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME "VK_NV_shader_subgroup_partitioned" +#define VK_NV_compute_shader_derivatives 1 +#define VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION 1 +#define VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME "VK_NV_compute_shader_derivatives" +typedef struct VkPhysicalDeviceComputeShaderDerivativesFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 computeDerivativeGroupQuads; + VkBool32 computeDerivativeGroupLinear; +} VkPhysicalDeviceComputeShaderDerivativesFeaturesNV; + + + +#define VK_NV_mesh_shader 1 +#define VK_NV_MESH_SHADER_SPEC_VERSION 1 +#define VK_NV_MESH_SHADER_EXTENSION_NAME "VK_NV_mesh_shader" +typedef struct VkPhysicalDeviceMeshShaderFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 taskShader; + VkBool32 meshShader; +} VkPhysicalDeviceMeshShaderFeaturesNV; + +typedef struct VkPhysicalDeviceMeshShaderPropertiesNV { + VkStructureType sType; + void* pNext; + uint32_t maxDrawMeshTasksCount; + uint32_t maxTaskWorkGroupInvocations; + uint32_t maxTaskWorkGroupSize[3]; + uint32_t maxTaskTotalMemorySize; + uint32_t maxTaskOutputCount; + uint32_t maxMeshWorkGroupInvocations; + uint32_t maxMeshWorkGroupSize[3]; + uint32_t maxMeshTotalMemorySize; + uint32_t maxMeshOutputVertices; + uint32_t maxMeshOutputPrimitives; + uint32_t maxMeshMultiviewViewCount; + uint32_t meshOutputPerVertexGranularity; + uint32_t meshOutputPerPrimitiveGranularity; +} VkPhysicalDeviceMeshShaderPropertiesNV; + +typedef struct VkDrawMeshTasksIndirectCommandNV { + uint32_t taskCount; + uint32_t firstTask; +} VkDrawMeshTasksIndirectCommandNV; + +typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksNV)(VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask); +typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectNV)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride); +typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectCountNV)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksNV( + VkCommandBuffer commandBuffer, + uint32_t taskCount, + uint32_t firstTask); + +VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectNV( + VkCommandBuffer commandBuffer, + VkBuffer buffer, + VkDeviceSize offset, + uint32_t drawCount, + uint32_t stride); + +VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectCountNV( + VkCommandBuffer commandBuffer, + VkBuffer buffer, + VkDeviceSize offset, + VkBuffer countBuffer, + VkDeviceSize countBufferOffset, + uint32_t maxDrawCount, + uint32_t stride); +#endif + + +#define VK_NV_fragment_shader_barycentric 1 +#define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION 1 +#define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_NV_fragment_shader_barycentric" +typedef struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 fragmentShaderBarycentric; +} VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV; + + + +#define VK_NV_shader_image_footprint 1 +#define VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION 1 +#define VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME "VK_NV_shader_image_footprint" +typedef struct VkPhysicalDeviceShaderImageFootprintFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 imageFootprint; +} VkPhysicalDeviceShaderImageFootprintFeaturesNV; + + + +#define VK_NV_scissor_exclusive 1 +#define VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION 1 +#define VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME "VK_NV_scissor_exclusive" +typedef struct VkPipelineViewportExclusiveScissorStateCreateInfoNV { + VkStructureType sType; + const void* pNext; + uint32_t exclusiveScissorCount; + const VkRect2D* pExclusiveScissors; +} VkPipelineViewportExclusiveScissorStateCreateInfoNV; + +typedef struct VkPhysicalDeviceExclusiveScissorFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 exclusiveScissor; +} VkPhysicalDeviceExclusiveScissorFeaturesNV; + +typedef void (VKAPI_PTR *PFN_vkCmdSetExclusiveScissorNV)(VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkRect2D* pExclusiveScissors); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdSetExclusiveScissorNV( + VkCommandBuffer commandBuffer, + uint32_t firstExclusiveScissor, + uint32_t exclusiveScissorCount, + const VkRect2D* pExclusiveScissors); +#endif + + +#define VK_NV_device_diagnostic_checkpoints 1 +#define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION 2 +#define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME "VK_NV_device_diagnostic_checkpoints" +typedef struct VkQueueFamilyCheckpointPropertiesNV { + VkStructureType sType; + void* pNext; + VkPipelineStageFlags checkpointExecutionStageMask; +} VkQueueFamilyCheckpointPropertiesNV; + +typedef struct VkCheckpointDataNV { + VkStructureType sType; + void* pNext; + VkPipelineStageFlagBits stage; + void* pCheckpointMarker; +} VkCheckpointDataNV; + +typedef void (VKAPI_PTR *PFN_vkCmdSetCheckpointNV)(VkCommandBuffer commandBuffer, const void* pCheckpointMarker); +typedef void (VKAPI_PTR *PFN_vkGetQueueCheckpointDataNV)(VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointDataNV* pCheckpointData); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkCmdSetCheckpointNV( + VkCommandBuffer commandBuffer, + const void* pCheckpointMarker); + +VKAPI_ATTR void VKAPI_CALL vkGetQueueCheckpointDataNV( + VkQueue queue, + uint32_t* pCheckpointDataCount, + VkCheckpointDataNV* pCheckpointData); +#endif + + +#define VK_INTEL_shader_integer_functions2 1 +#define VK_INTEL_SHADER_INTEGER_FUNCTIONS2_SPEC_VERSION 1 +#define VK_INTEL_SHADER_INTEGER_FUNCTIONS2_EXTENSION_NAME "VK_INTEL_shader_integer_functions2" +typedef struct VkPhysicalDeviceShaderIntegerFunctions2INTEL { + VkStructureType sType; + void* pNext; + VkBool32 shaderIntegerFunctions2; +} VkPhysicalDeviceShaderIntegerFunctions2INTEL; + + + +#define VK_INTEL_performance_query 1 +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPerformanceConfigurationINTEL) +#define VK_INTEL_PERFORMANCE_QUERY_SPEC_VERSION 1 +#define VK_INTEL_PERFORMANCE_QUERY_EXTENSION_NAME "VK_INTEL_performance_query" + +typedef enum VkPerformanceConfigurationTypeINTEL { + VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL = 0, + VK_PERFORMANCE_CONFIGURATION_TYPE_BEGIN_RANGE_INTEL = VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL, + VK_PERFORMANCE_CONFIGURATION_TYPE_END_RANGE_INTEL = VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL, + VK_PERFORMANCE_CONFIGURATION_TYPE_RANGE_SIZE_INTEL = (VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL - VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL + 1), + VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF +} VkPerformanceConfigurationTypeINTEL; + +typedef enum VkQueryPoolSamplingModeINTEL { + VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL = 0, + VK_QUERY_POOL_SAMPLING_MODE_BEGIN_RANGE_INTEL = VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL, + VK_QUERY_POOL_SAMPLING_MODE_END_RANGE_INTEL = VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL, + VK_QUERY_POOL_SAMPLING_MODE_RANGE_SIZE_INTEL = (VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL - VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL + 1), + VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL = 0x7FFFFFFF +} VkQueryPoolSamplingModeINTEL; + +typedef enum VkPerformanceOverrideTypeINTEL { + VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL = 0, + VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL = 1, + VK_PERFORMANCE_OVERRIDE_TYPE_BEGIN_RANGE_INTEL = VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL, + VK_PERFORMANCE_OVERRIDE_TYPE_END_RANGE_INTEL = VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL, + VK_PERFORMANCE_OVERRIDE_TYPE_RANGE_SIZE_INTEL = (VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL - VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL + 1), + VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF +} VkPerformanceOverrideTypeINTEL; + +typedef enum VkPerformanceParameterTypeINTEL { + VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL = 0, + VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL = 1, + VK_PERFORMANCE_PARAMETER_TYPE_BEGIN_RANGE_INTEL = VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL, + VK_PERFORMANCE_PARAMETER_TYPE_END_RANGE_INTEL = VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL, + VK_PERFORMANCE_PARAMETER_TYPE_RANGE_SIZE_INTEL = (VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL - VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL + 1), + VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF +} VkPerformanceParameterTypeINTEL; + +typedef enum VkPerformanceValueTypeINTEL { + VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL = 0, + VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL = 1, + VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL = 2, + VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL = 3, + VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL = 4, + VK_PERFORMANCE_VALUE_TYPE_BEGIN_RANGE_INTEL = VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL, + VK_PERFORMANCE_VALUE_TYPE_END_RANGE_INTEL = VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL, + VK_PERFORMANCE_VALUE_TYPE_RANGE_SIZE_INTEL = (VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL - VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL + 1), + VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF +} VkPerformanceValueTypeINTEL; +typedef union VkPerformanceValueDataINTEL { + uint32_t value32; + uint64_t value64; + float valueFloat; + VkBool32 valueBool; + const char* valueString; +} VkPerformanceValueDataINTEL; + +typedef struct VkPerformanceValueINTEL { + VkPerformanceValueTypeINTEL type; + VkPerformanceValueDataINTEL data; +} VkPerformanceValueINTEL; + +typedef struct VkInitializePerformanceApiInfoINTEL { + VkStructureType sType; + const void* pNext; + void* pUserData; +} VkInitializePerformanceApiInfoINTEL; + +typedef struct VkQueryPoolCreateInfoINTEL { + VkStructureType sType; + const void* pNext; + VkQueryPoolSamplingModeINTEL performanceCountersSampling; +} VkQueryPoolCreateInfoINTEL; + +typedef struct VkPerformanceMarkerInfoINTEL { + VkStructureType sType; + const void* pNext; + uint64_t marker; +} VkPerformanceMarkerInfoINTEL; + +typedef struct VkPerformanceStreamMarkerInfoINTEL { + VkStructureType sType; + const void* pNext; + uint32_t marker; +} VkPerformanceStreamMarkerInfoINTEL; + +typedef struct VkPerformanceOverrideInfoINTEL { + VkStructureType sType; + const void* pNext; + VkPerformanceOverrideTypeINTEL type; + VkBool32 enable; + uint64_t parameter; +} VkPerformanceOverrideInfoINTEL; + +typedef struct VkPerformanceConfigurationAcquireInfoINTEL { + VkStructureType sType; + const void* pNext; + VkPerformanceConfigurationTypeINTEL type; +} VkPerformanceConfigurationAcquireInfoINTEL; + +typedef VkResult (VKAPI_PTR *PFN_vkInitializePerformanceApiINTEL)(VkDevice device, const VkInitializePerformanceApiInfoINTEL* pInitializeInfo); +typedef void (VKAPI_PTR *PFN_vkUninitializePerformanceApiINTEL)(VkDevice device); +typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceMarkerINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceMarkerInfoINTEL* pMarkerInfo); +typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceStreamMarkerINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo); +typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceOverrideINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceOverrideInfoINTEL* pOverrideInfo); +typedef VkResult (VKAPI_PTR *PFN_vkAcquirePerformanceConfigurationINTEL)(VkDevice device, const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo, VkPerformanceConfigurationINTEL* pConfiguration); +typedef VkResult (VKAPI_PTR *PFN_vkReleasePerformanceConfigurationINTEL)(VkDevice device, VkPerformanceConfigurationINTEL configuration); +typedef VkResult (VKAPI_PTR *PFN_vkQueueSetPerformanceConfigurationINTEL)(VkQueue queue, VkPerformanceConfigurationINTEL configuration); +typedef VkResult (VKAPI_PTR *PFN_vkGetPerformanceParameterINTEL)(VkDevice device, VkPerformanceParameterTypeINTEL parameter, VkPerformanceValueINTEL* pValue); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkInitializePerformanceApiINTEL( + VkDevice device, + const VkInitializePerformanceApiInfoINTEL* pInitializeInfo); + +VKAPI_ATTR void VKAPI_CALL vkUninitializePerformanceApiINTEL( + VkDevice device); + +VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceMarkerINTEL( + VkCommandBuffer commandBuffer, + const VkPerformanceMarkerInfoINTEL* pMarkerInfo); + +VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceStreamMarkerINTEL( + VkCommandBuffer commandBuffer, + const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo); + +VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceOverrideINTEL( + VkCommandBuffer commandBuffer, + const VkPerformanceOverrideInfoINTEL* pOverrideInfo); + +VKAPI_ATTR VkResult VKAPI_CALL vkAcquirePerformanceConfigurationINTEL( + VkDevice device, + const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo, + VkPerformanceConfigurationINTEL* pConfiguration); + +VKAPI_ATTR VkResult VKAPI_CALL vkReleasePerformanceConfigurationINTEL( + VkDevice device, + VkPerformanceConfigurationINTEL configuration); + +VKAPI_ATTR VkResult VKAPI_CALL vkQueueSetPerformanceConfigurationINTEL( + VkQueue queue, + VkPerformanceConfigurationINTEL configuration); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetPerformanceParameterINTEL( + VkDevice device, + VkPerformanceParameterTypeINTEL parameter, + VkPerformanceValueINTEL* pValue); +#endif + + +#define VK_EXT_pci_bus_info 1 +#define VK_EXT_PCI_BUS_INFO_SPEC_VERSION 2 +#define VK_EXT_PCI_BUS_INFO_EXTENSION_NAME "VK_EXT_pci_bus_info" +typedef struct VkPhysicalDevicePCIBusInfoPropertiesEXT { + VkStructureType sType; + void* pNext; + uint32_t pciDomain; + uint32_t pciBus; + uint32_t pciDevice; + uint32_t pciFunction; +} VkPhysicalDevicePCIBusInfoPropertiesEXT; + + + +#define VK_AMD_display_native_hdr 1 +#define VK_AMD_DISPLAY_NATIVE_HDR_SPEC_VERSION 1 +#define VK_AMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME "VK_AMD_display_native_hdr" +typedef struct VkDisplayNativeHdrSurfaceCapabilitiesAMD { + VkStructureType sType; + void* pNext; + VkBool32 localDimmingSupport; +} VkDisplayNativeHdrSurfaceCapabilitiesAMD; + +typedef struct VkSwapchainDisplayNativeHdrCreateInfoAMD { + VkStructureType sType; + const void* pNext; + VkBool32 localDimmingEnable; +} VkSwapchainDisplayNativeHdrCreateInfoAMD; + +typedef void (VKAPI_PTR *PFN_vkSetLocalDimmingAMD)(VkDevice device, VkSwapchainKHR swapChain, VkBool32 localDimmingEnable); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkSetLocalDimmingAMD( + VkDevice device, + VkSwapchainKHR swapChain, + VkBool32 localDimmingEnable); +#endif + + +#define VK_EXT_fragment_density_map 1 +#define VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION 1 +#define VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME "VK_EXT_fragment_density_map" +typedef struct VkPhysicalDeviceFragmentDensityMapFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 fragmentDensityMap; + VkBool32 fragmentDensityMapDynamic; + VkBool32 fragmentDensityMapNonSubsampledImages; +} VkPhysicalDeviceFragmentDensityMapFeaturesEXT; + +typedef struct VkPhysicalDeviceFragmentDensityMapPropertiesEXT { + VkStructureType sType; + void* pNext; + VkExtent2D minFragmentDensityTexelSize; + VkExtent2D maxFragmentDensityTexelSize; + VkBool32 fragmentDensityInvocations; +} VkPhysicalDeviceFragmentDensityMapPropertiesEXT; + +typedef struct VkRenderPassFragmentDensityMapCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkAttachmentReference fragmentDensityMapAttachment; +} VkRenderPassFragmentDensityMapCreateInfoEXT; + + + +#define VK_EXT_scalar_block_layout 1 +#define VK_EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION 1 +#define VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME "VK_EXT_scalar_block_layout" +typedef struct VkPhysicalDeviceScalarBlockLayoutFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 scalarBlockLayout; +} VkPhysicalDeviceScalarBlockLayoutFeaturesEXT; + + + +#define VK_GOOGLE_hlsl_functionality1 1 +#define VK_GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION 1 +#define VK_GOOGLE_HLSL_FUNCTIONALITY1_EXTENSION_NAME "VK_GOOGLE_hlsl_functionality1" + + +#define VK_GOOGLE_decorate_string 1 +#define VK_GOOGLE_DECORATE_STRING_SPEC_VERSION 1 +#define VK_GOOGLE_DECORATE_STRING_EXTENSION_NAME "VK_GOOGLE_decorate_string" + + +#define VK_EXT_memory_budget 1 +#define VK_EXT_MEMORY_BUDGET_SPEC_VERSION 1 +#define VK_EXT_MEMORY_BUDGET_EXTENSION_NAME "VK_EXT_memory_budget" +typedef struct VkPhysicalDeviceMemoryBudgetPropertiesEXT { + VkStructureType sType; + void* pNext; + VkDeviceSize heapBudget[VK_MAX_MEMORY_HEAPS]; + VkDeviceSize heapUsage[VK_MAX_MEMORY_HEAPS]; +} VkPhysicalDeviceMemoryBudgetPropertiesEXT; + + + +#define VK_EXT_memory_priority 1 +#define VK_EXT_MEMORY_PRIORITY_SPEC_VERSION 1 +#define VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME "VK_EXT_memory_priority" +typedef struct VkPhysicalDeviceMemoryPriorityFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 memoryPriority; +} VkPhysicalDeviceMemoryPriorityFeaturesEXT; + +typedef struct VkMemoryPriorityAllocateInfoEXT { + VkStructureType sType; + const void* pNext; + float priority; +} VkMemoryPriorityAllocateInfoEXT; + + + +#define VK_NV_dedicated_allocation_image_aliasing 1 +#define VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_SPEC_VERSION 1 +#define VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_EXTENSION_NAME "VK_NV_dedicated_allocation_image_aliasing" +typedef struct VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 dedicatedAllocationImageAliasing; +} VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV; + + + +#define VK_EXT_buffer_device_address 1 +typedef uint64_t VkDeviceAddress; +#define VK_EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSION 2 +#define VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_EXT_buffer_device_address" +typedef struct VkPhysicalDeviceBufferDeviceAddressFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 bufferDeviceAddress; + VkBool32 bufferDeviceAddressCaptureReplay; + VkBool32 bufferDeviceAddressMultiDevice; +} VkPhysicalDeviceBufferDeviceAddressFeaturesEXT; + +typedef VkPhysicalDeviceBufferDeviceAddressFeaturesEXT VkPhysicalDeviceBufferAddressFeaturesEXT; + +typedef struct VkBufferDeviceAddressInfoEXT { + VkStructureType sType; + const void* pNext; + VkBuffer buffer; +} VkBufferDeviceAddressInfoEXT; + +typedef struct VkBufferDeviceAddressCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkDeviceAddress deviceAddress; +} VkBufferDeviceAddressCreateInfoEXT; + +typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddressEXT)(VkDevice device, const VkBufferDeviceAddressInfoEXT* pInfo); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddressEXT( + VkDevice device, + const VkBufferDeviceAddressInfoEXT* pInfo); +#endif + + +#define VK_EXT_separate_stencil_usage 1 +#define VK_EXT_SEPARATE_STENCIL_USAGE_SPEC_VERSION 1 +#define VK_EXT_SEPARATE_STENCIL_USAGE_EXTENSION_NAME "VK_EXT_separate_stencil_usage" +typedef struct VkImageStencilUsageCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkImageUsageFlags stencilUsage; +} VkImageStencilUsageCreateInfoEXT; + + + +#define VK_EXT_validation_features 1 +#define VK_EXT_VALIDATION_FEATURES_SPEC_VERSION 1 +#define VK_EXT_VALIDATION_FEATURES_EXTENSION_NAME "VK_EXT_validation_features" + +typedef enum VkValidationFeatureEnableEXT { + VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0, + VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1, + VK_VALIDATION_FEATURE_ENABLE_BEGIN_RANGE_EXT = VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT, + VK_VALIDATION_FEATURE_ENABLE_END_RANGE_EXT = VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT, + VK_VALIDATION_FEATURE_ENABLE_RANGE_SIZE_EXT = (VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT - VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT + 1), + VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT = 0x7FFFFFFF +} VkValidationFeatureEnableEXT; + +typedef enum VkValidationFeatureDisableEXT { + VK_VALIDATION_FEATURE_DISABLE_ALL_EXT = 0, + VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT = 1, + VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = 2, + VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = 3, + VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4, + VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5, + VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6, + VK_VALIDATION_FEATURE_DISABLE_BEGIN_RANGE_EXT = VK_VALIDATION_FEATURE_DISABLE_ALL_EXT, + VK_VALIDATION_FEATURE_DISABLE_END_RANGE_EXT = VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT, + VK_VALIDATION_FEATURE_DISABLE_RANGE_SIZE_EXT = (VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT - VK_VALIDATION_FEATURE_DISABLE_ALL_EXT + 1), + VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT = 0x7FFFFFFF +} VkValidationFeatureDisableEXT; +typedef struct VkValidationFeaturesEXT { + VkStructureType sType; + const void* pNext; + uint32_t enabledValidationFeatureCount; + const VkValidationFeatureEnableEXT* pEnabledValidationFeatures; + uint32_t disabledValidationFeatureCount; + const VkValidationFeatureDisableEXT* pDisabledValidationFeatures; +} VkValidationFeaturesEXT; + + + +#define VK_NV_cooperative_matrix 1 +#define VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION 1 +#define VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME "VK_NV_cooperative_matrix" + +typedef enum VkComponentTypeNV { + VK_COMPONENT_TYPE_FLOAT16_NV = 0, + VK_COMPONENT_TYPE_FLOAT32_NV = 1, + VK_COMPONENT_TYPE_FLOAT64_NV = 2, + VK_COMPONENT_TYPE_SINT8_NV = 3, + VK_COMPONENT_TYPE_SINT16_NV = 4, + VK_COMPONENT_TYPE_SINT32_NV = 5, + VK_COMPONENT_TYPE_SINT64_NV = 6, + VK_COMPONENT_TYPE_UINT8_NV = 7, + VK_COMPONENT_TYPE_UINT16_NV = 8, + VK_COMPONENT_TYPE_UINT32_NV = 9, + VK_COMPONENT_TYPE_UINT64_NV = 10, + VK_COMPONENT_TYPE_BEGIN_RANGE_NV = VK_COMPONENT_TYPE_FLOAT16_NV, + VK_COMPONENT_TYPE_END_RANGE_NV = VK_COMPONENT_TYPE_UINT64_NV, + VK_COMPONENT_TYPE_RANGE_SIZE_NV = (VK_COMPONENT_TYPE_UINT64_NV - VK_COMPONENT_TYPE_FLOAT16_NV + 1), + VK_COMPONENT_TYPE_MAX_ENUM_NV = 0x7FFFFFFF +} VkComponentTypeNV; + +typedef enum VkScopeNV { + VK_SCOPE_DEVICE_NV = 1, + VK_SCOPE_WORKGROUP_NV = 2, + VK_SCOPE_SUBGROUP_NV = 3, + VK_SCOPE_QUEUE_FAMILY_NV = 5, + VK_SCOPE_BEGIN_RANGE_NV = VK_SCOPE_DEVICE_NV, + VK_SCOPE_END_RANGE_NV = VK_SCOPE_QUEUE_FAMILY_NV, + VK_SCOPE_RANGE_SIZE_NV = (VK_SCOPE_QUEUE_FAMILY_NV - VK_SCOPE_DEVICE_NV + 1), + VK_SCOPE_MAX_ENUM_NV = 0x7FFFFFFF +} VkScopeNV; +typedef struct VkCooperativeMatrixPropertiesNV { + VkStructureType sType; + void* pNext; + uint32_t MSize; + uint32_t NSize; + uint32_t KSize; + VkComponentTypeNV AType; + VkComponentTypeNV BType; + VkComponentTypeNV CType; + VkComponentTypeNV DType; + VkScopeNV scope; +} VkCooperativeMatrixPropertiesNV; + +typedef struct VkPhysicalDeviceCooperativeMatrixFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 cooperativeMatrix; + VkBool32 cooperativeMatrixRobustBufferAccess; +} VkPhysicalDeviceCooperativeMatrixFeaturesNV; + +typedef struct VkPhysicalDeviceCooperativeMatrixPropertiesNV { + VkStructureType sType; + void* pNext; + VkShaderStageFlags cooperativeMatrixSupportedStages; +} VkPhysicalDeviceCooperativeMatrixPropertiesNV; + +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesNV* pProperties); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( + VkPhysicalDevice physicalDevice, + uint32_t* pPropertyCount, + VkCooperativeMatrixPropertiesNV* pProperties); +#endif + + +#define VK_NV_coverage_reduction_mode 1 +#define VK_NV_COVERAGE_REDUCTION_MODE_SPEC_VERSION 1 +#define VK_NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME "VK_NV_coverage_reduction_mode" + +typedef enum VkCoverageReductionModeNV { + VK_COVERAGE_REDUCTION_MODE_MERGE_NV = 0, + VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV = 1, + VK_COVERAGE_REDUCTION_MODE_BEGIN_RANGE_NV = VK_COVERAGE_REDUCTION_MODE_MERGE_NV, + VK_COVERAGE_REDUCTION_MODE_END_RANGE_NV = VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV, + VK_COVERAGE_REDUCTION_MODE_RANGE_SIZE_NV = (VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV - VK_COVERAGE_REDUCTION_MODE_MERGE_NV + 1), + VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV = 0x7FFFFFFF +} VkCoverageReductionModeNV; +typedef VkFlags VkPipelineCoverageReductionStateCreateFlagsNV; +typedef struct VkPhysicalDeviceCoverageReductionModeFeaturesNV { + VkStructureType sType; + void* pNext; + VkBool32 coverageReductionMode; +} VkPhysicalDeviceCoverageReductionModeFeaturesNV; + +typedef struct VkPipelineCoverageReductionStateCreateInfoNV { + VkStructureType sType; + const void* pNext; + VkPipelineCoverageReductionStateCreateFlagsNV flags; + VkCoverageReductionModeNV coverageReductionMode; +} VkPipelineCoverageReductionStateCreateInfoNV; + +typedef struct VkFramebufferMixedSamplesCombinationNV { + VkStructureType sType; + void* pNext; + VkCoverageReductionModeNV coverageReductionMode; + VkSampleCountFlagBits rasterizationSamples; + VkSampleCountFlags depthStencilSamples; + VkSampleCountFlags colorSamples; +} VkFramebufferMixedSamplesCombinationNV; + +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV)(VkPhysicalDevice physicalDevice, uint32_t* pCombinationCount, VkFramebufferMixedSamplesCombinationNV* pCombinations); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( + VkPhysicalDevice physicalDevice, + uint32_t* pCombinationCount, + VkFramebufferMixedSamplesCombinationNV* pCombinations); +#endif + + +#define VK_EXT_fragment_shader_interlock 1 +#define VK_EXT_FRAGMENT_SHADER_INTERLOCK_SPEC_VERSION 1 +#define VK_EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME "VK_EXT_fragment_shader_interlock" +typedef struct VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 fragmentShaderSampleInterlock; + VkBool32 fragmentShaderPixelInterlock; + VkBool32 fragmentShaderShadingRateInterlock; +} VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT; + + + +#define VK_EXT_ycbcr_image_arrays 1 +#define VK_EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION 1 +#define VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME "VK_EXT_ycbcr_image_arrays" +typedef struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 ycbcrImageArrays; +} VkPhysicalDeviceYcbcrImageArraysFeaturesEXT; + + + +#define VK_EXT_headless_surface 1 +#define VK_EXT_HEADLESS_SURFACE_SPEC_VERSION 0 +#define VK_EXT_HEADLESS_SURFACE_EXTENSION_NAME "VK_EXT_headless_surface" +typedef VkFlags VkHeadlessSurfaceCreateFlagsEXT; +typedef struct VkHeadlessSurfaceCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkHeadlessSurfaceCreateFlagsEXT flags; +} VkHeadlessSurfaceCreateInfoEXT; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateHeadlessSurfaceEXT)(VkInstance instance, const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateHeadlessSurfaceEXT( + VkInstance instance, + const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkSurfaceKHR* pSurface); +#endif + + +#define VK_EXT_host_query_reset 1 +#define VK_EXT_HOST_QUERY_RESET_SPEC_VERSION 1 +#define VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME "VK_EXT_host_query_reset" +typedef struct VkPhysicalDeviceHostQueryResetFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 hostQueryReset; +} VkPhysicalDeviceHostQueryResetFeaturesEXT; + +typedef void (VKAPI_PTR *PFN_vkResetQueryPoolEXT)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR void VKAPI_CALL vkResetQueryPoolEXT( + VkDevice device, + VkQueryPool queryPool, + uint32_t firstQuery, + uint32_t queryCount); +#endif + + +#define VK_EXT_shader_demote_to_helper_invocation 1 +#define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION 1 +#define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME "VK_EXT_shader_demote_to_helper_invocation" +typedef struct VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 shaderDemoteToHelperInvocation; +} VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT; + + + +#define VK_EXT_texel_buffer_alignment 1 +#define VK_EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION 1 +#define VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME "VK_EXT_texel_buffer_alignment" +typedef struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT { + VkStructureType sType; + void* pNext; + VkBool32 texelBufferAlignment; +} VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT; + +typedef struct VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT { + VkStructureType sType; + void* pNext; + VkDeviceSize storageTexelBufferOffsetAlignmentBytes; + VkBool32 storageTexelBufferOffsetSingleTexelAlignment; + VkDeviceSize uniformTexelBufferOffsetAlignmentBytes; + VkBool32 uniformTexelBufferOffsetSingleTexelAlignment; +} VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT; + + #ifdef __cplusplus } #endif diff --git a/src/rendering/vulkan/thirdparty/vulkan/vulkan_fuchsia.h b/src/rendering/vulkan/thirdparty/vulkan/vulkan_fuchsia.h new file mode 100644 index 000000000..4c62a7c2f --- /dev/null +++ b/src/rendering/vulkan/thirdparty/vulkan/vulkan_fuchsia.h @@ -0,0 +1,56 @@ +#ifndef VULKAN_FUCHSIA_H_ +#define VULKAN_FUCHSIA_H_ 1 + +#ifdef __cplusplus +extern "C" { +#endif + +/* +** Copyright (c) 2015-2019 The Khronos Group Inc. +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ + +/* +** This header is generated from the Khronos Vulkan XML API Registry. +** +*/ + + + +#define VK_FUCHSIA_imagepipe_surface 1 +#define VK_FUCHSIA_IMAGEPIPE_SURFACE_SPEC_VERSION 1 +#define VK_FUCHSIA_IMAGEPIPE_SURFACE_EXTENSION_NAME "VK_FUCHSIA_imagepipe_surface" +typedef VkFlags VkImagePipeSurfaceCreateFlagsFUCHSIA; +typedef struct VkImagePipeSurfaceCreateInfoFUCHSIA { + VkStructureType sType; + const void* pNext; + VkImagePipeSurfaceCreateFlagsFUCHSIA flags; + zx_handle_t imagePipeHandle; +} VkImagePipeSurfaceCreateInfoFUCHSIA; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateImagePipeSurfaceFUCHSIA)(VkInstance instance, const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateImagePipeSurfaceFUCHSIA( + VkInstance instance, + const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkSurfaceKHR* pSurface); +#endif + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/src/rendering/vulkan/thirdparty/vulkan/vulkan_ggp.h b/src/rendering/vulkan/thirdparty/vulkan/vulkan_ggp.h new file mode 100644 index 000000000..3d67c4b8c --- /dev/null +++ b/src/rendering/vulkan/thirdparty/vulkan/vulkan_ggp.h @@ -0,0 +1,67 @@ +#ifndef VULKAN_GGP_H_ +#define VULKAN_GGP_H_ 1 + +#ifdef __cplusplus +extern "C" { +#endif + +/* +** Copyright (c) 2015-2019 The Khronos Group Inc. +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ + +/* +** This header is generated from the Khronos Vulkan XML API Registry. +** +*/ + + + +#define VK_GGP_stream_descriptor_surface 1 +#define VK_GGP_STREAM_DESCRIPTOR_SURFACE_SPEC_VERSION 1 +#define VK_GGP_STREAM_DESCRIPTOR_SURFACE_EXTENSION_NAME "VK_GGP_stream_descriptor_surface" +typedef VkFlags VkStreamDescriptorSurfaceCreateFlagsGGP; +typedef struct VkStreamDescriptorSurfaceCreateInfoGGP { + VkStructureType sType; + const void* pNext; + VkStreamDescriptorSurfaceCreateFlagsGGP flags; + GgpStreamDescriptor streamDescriptor; +} VkStreamDescriptorSurfaceCreateInfoGGP; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateStreamDescriptorSurfaceGGP)(VkInstance instance, const VkStreamDescriptorSurfaceCreateInfoGGP* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateStreamDescriptorSurfaceGGP( + VkInstance instance, + const VkStreamDescriptorSurfaceCreateInfoGGP* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkSurfaceKHR* pSurface); +#endif + + +#define VK_GGP_frame_token 1 +#define VK_GGP_FRAME_TOKEN_SPEC_VERSION 1 +#define VK_GGP_FRAME_TOKEN_EXTENSION_NAME "VK_GGP_frame_token" +typedef struct VkPresentFrameTokenGGP { + VkStructureType sType; + const void* pNext; + GgpFrameToken frameToken; +} VkPresentFrameTokenGGP; + + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/src/rendering/vulkan/thirdparty/vulkan/vulkan_ios.h b/src/rendering/vulkan/thirdparty/vulkan/vulkan_ios.h index a0924816d..1846df52d 100644 --- a/src/rendering/vulkan/thirdparty/vulkan/vulkan_ios.h +++ b/src/rendering/vulkan/thirdparty/vulkan/vulkan_ios.h @@ -6,7 +6,7 @@ extern "C" { #endif /* -** Copyright (c) 2015-2018 The Khronos Group Inc. +** Copyright (c) 2015-2019 The Khronos Group Inc. ** ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. @@ -27,12 +27,11 @@ extern "C" { */ + #define VK_MVK_ios_surface 1 #define VK_MVK_IOS_SURFACE_SPEC_VERSION 2 #define VK_MVK_IOS_SURFACE_EXTENSION_NAME "VK_MVK_ios_surface" - typedef VkFlags VkIOSSurfaceCreateFlagsMVK; - typedef struct VkIOSSurfaceCreateInfoMVK { VkStructureType sType; const void* pNext; @@ -40,7 +39,6 @@ typedef struct VkIOSSurfaceCreateInfoMVK { const void* pView; } VkIOSSurfaceCreateInfoMVK; - typedef VkResult (VKAPI_PTR *PFN_vkCreateIOSSurfaceMVK)(VkInstance instance, const VkIOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); #ifndef VK_NO_PROTOTYPES diff --git a/src/rendering/vulkan/thirdparty/vulkan/vulkan_macos.h b/src/rendering/vulkan/thirdparty/vulkan/vulkan_macos.h index ff0b70180..dca623b04 100644 --- a/src/rendering/vulkan/thirdparty/vulkan/vulkan_macos.h +++ b/src/rendering/vulkan/thirdparty/vulkan/vulkan_macos.h @@ -6,7 +6,7 @@ extern "C" { #endif /* -** Copyright (c) 2015-2018 The Khronos Group Inc. +** Copyright (c) 2015-2019 The Khronos Group Inc. ** ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. @@ -27,12 +27,11 @@ extern "C" { */ + #define VK_MVK_macos_surface 1 #define VK_MVK_MACOS_SURFACE_SPEC_VERSION 2 #define VK_MVK_MACOS_SURFACE_EXTENSION_NAME "VK_MVK_macos_surface" - typedef VkFlags VkMacOSSurfaceCreateFlagsMVK; - typedef struct VkMacOSSurfaceCreateInfoMVK { VkStructureType sType; const void* pNext; @@ -40,7 +39,6 @@ typedef struct VkMacOSSurfaceCreateInfoMVK { const void* pView; } VkMacOSSurfaceCreateInfoMVK; - typedef VkResult (VKAPI_PTR *PFN_vkCreateMacOSSurfaceMVK)(VkInstance instance, const VkMacOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); #ifndef VK_NO_PROTOTYPES diff --git a/src/rendering/vulkan/thirdparty/vulkan/vulkan_metal.h b/src/rendering/vulkan/thirdparty/vulkan/vulkan_metal.h new file mode 100644 index 000000000..16505237d --- /dev/null +++ b/src/rendering/vulkan/thirdparty/vulkan/vulkan_metal.h @@ -0,0 +1,63 @@ +#ifndef VULKAN_METAL_H_ +#define VULKAN_METAL_H_ 1 + +#ifdef __cplusplus +extern "C" { +#endif + +/* +** Copyright (c) 2015-2019 The Khronos Group Inc. +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ + +/* +** This header is generated from the Khronos Vulkan XML API Registry. +** +*/ + + + +#define VK_EXT_metal_surface 1 + +#ifdef __OBJC__ +@class CAMetalLayer; +#else +typedef void CAMetalLayer; +#endif + +#define VK_EXT_METAL_SURFACE_SPEC_VERSION 1 +#define VK_EXT_METAL_SURFACE_EXTENSION_NAME "VK_EXT_metal_surface" +typedef VkFlags VkMetalSurfaceCreateFlagsEXT; +typedef struct VkMetalSurfaceCreateInfoEXT { + VkStructureType sType; + const void* pNext; + VkMetalSurfaceCreateFlagsEXT flags; + const CAMetalLayer* pLayer; +} VkMetalSurfaceCreateInfoEXT; + +typedef VkResult (VKAPI_PTR *PFN_vkCreateMetalSurfaceEXT)(VkInstance instance, const VkMetalSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkCreateMetalSurfaceEXT( + VkInstance instance, + const VkMetalSurfaceCreateInfoEXT* pCreateInfo, + const VkAllocationCallbacks* pAllocator, + VkSurfaceKHR* pSurface); +#endif + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/src/rendering/vulkan/thirdparty/vulkan/vulkan_vi.h b/src/rendering/vulkan/thirdparty/vulkan/vulkan_vi.h index 015166bfc..50aa27dfb 100644 --- a/src/rendering/vulkan/thirdparty/vulkan/vulkan_vi.h +++ b/src/rendering/vulkan/thirdparty/vulkan/vulkan_vi.h @@ -6,7 +6,7 @@ extern "C" { #endif /* -** Copyright (c) 2015-2018 The Khronos Group Inc. +** Copyright (c) 2015-2019 The Khronos Group Inc. ** ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. @@ -27,12 +27,11 @@ extern "C" { */ + #define VK_NN_vi_surface 1 #define VK_NN_VI_SURFACE_SPEC_VERSION 1 #define VK_NN_VI_SURFACE_EXTENSION_NAME "VK_NN_vi_surface" - typedef VkFlags VkViSurfaceCreateFlagsNN; - typedef struct VkViSurfaceCreateInfoNN { VkStructureType sType; const void* pNext; @@ -40,7 +39,6 @@ typedef struct VkViSurfaceCreateInfoNN { void* window; } VkViSurfaceCreateInfoNN; - typedef VkResult (VKAPI_PTR *PFN_vkCreateViSurfaceNN)(VkInstance instance, const VkViSurfaceCreateInfoNN* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); #ifndef VK_NO_PROTOTYPES diff --git a/src/rendering/vulkan/thirdparty/vulkan/vulkan_wayland.h b/src/rendering/vulkan/thirdparty/vulkan/vulkan_wayland.h index 5ba0827aa..12a5f045c 100644 --- a/src/rendering/vulkan/thirdparty/vulkan/vulkan_wayland.h +++ b/src/rendering/vulkan/thirdparty/vulkan/vulkan_wayland.h @@ -6,7 +6,7 @@ extern "C" { #endif /* -** Copyright (c) 2015-2018 The Khronos Group Inc. +** Copyright (c) 2015-2019 The Khronos Group Inc. ** ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. @@ -27,12 +27,11 @@ extern "C" { */ + #define VK_KHR_wayland_surface 1 #define VK_KHR_WAYLAND_SURFACE_SPEC_VERSION 6 #define VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME "VK_KHR_wayland_surface" - typedef VkFlags VkWaylandSurfaceCreateFlagsKHR; - typedef struct VkWaylandSurfaceCreateInfoKHR { VkStructureType sType; const void* pNext; @@ -41,7 +40,6 @@ typedef struct VkWaylandSurfaceCreateInfoKHR { struct wl_surface* surface; } VkWaylandSurfaceCreateInfoKHR; - typedef VkResult (VKAPI_PTR *PFN_vkCreateWaylandSurfaceKHR)(VkInstance instance, const VkWaylandSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, struct wl_display* display); diff --git a/src/rendering/vulkan/thirdparty/vulkan/vulkan_win32.h b/src/rendering/vulkan/thirdparty/vulkan/vulkan_win32.h index 6a85409eb..a61a7d885 100644 --- a/src/rendering/vulkan/thirdparty/vulkan/vulkan_win32.h +++ b/src/rendering/vulkan/thirdparty/vulkan/vulkan_win32.h @@ -6,7 +6,7 @@ extern "C" { #endif /* -** Copyright (c) 2015-2018 The Khronos Group Inc. +** Copyright (c) 2015-2019 The Khronos Group Inc. ** ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. @@ -27,12 +27,11 @@ extern "C" { */ + #define VK_KHR_win32_surface 1 #define VK_KHR_WIN32_SURFACE_SPEC_VERSION 6 #define VK_KHR_WIN32_SURFACE_EXTENSION_NAME "VK_KHR_win32_surface" - typedef VkFlags VkWin32SurfaceCreateFlagsKHR; - typedef struct VkWin32SurfaceCreateInfoKHR { VkStructureType sType; const void* pNext; @@ -41,7 +40,6 @@ typedef struct VkWin32SurfaceCreateInfoKHR { HWND hwnd; } VkWin32SurfaceCreateInfoKHR; - typedef VkResult (VKAPI_PTR *PFN_vkCreateWin32SurfaceKHR)(VkInstance instance, const VkWin32SurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex); @@ -57,10 +55,10 @@ VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceWin32PresentationSupportKHR( uint32_t queueFamilyIndex); #endif + #define VK_KHR_external_memory_win32 1 #define VK_KHR_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1 #define VK_KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_KHR_external_memory_win32" - typedef struct VkImportMemoryWin32HandleInfoKHR { VkStructureType sType; const void* pNext; @@ -90,7 +88,6 @@ typedef struct VkMemoryGetWin32HandleInfoKHR { VkExternalMemoryHandleTypeFlagBits handleType; } VkMemoryGetWin32HandleInfoKHR; - typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandleKHR)(VkDevice device, const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle); typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandlePropertiesKHR)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, HANDLE handle, VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties); @@ -107,10 +104,10 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandlePropertiesKHR( VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties); #endif + #define VK_KHR_win32_keyed_mutex 1 #define VK_KHR_WIN32_KEYED_MUTEX_SPEC_VERSION 1 #define VK_KHR_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_KHR_win32_keyed_mutex" - typedef struct VkWin32KeyedMutexAcquireReleaseInfoKHR { VkStructureType sType; const void* pNext; @@ -128,7 +125,6 @@ typedef struct VkWin32KeyedMutexAcquireReleaseInfoKHR { #define VK_KHR_external_semaphore_win32 1 #define VK_KHR_EXTERNAL_SEMAPHORE_WIN32_SPEC_VERSION 1 #define VK_KHR_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME "VK_KHR_external_semaphore_win32" - typedef struct VkImportSemaphoreWin32HandleInfoKHR { VkStructureType sType; const void* pNext; @@ -163,7 +159,6 @@ typedef struct VkSemaphoreGetWin32HandleInfoKHR { VkExternalSemaphoreHandleTypeFlagBits handleType; } VkSemaphoreGetWin32HandleInfoKHR; - typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreWin32HandleKHR)(VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo); typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreWin32HandleKHR)(VkDevice device, const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle); @@ -178,10 +173,10 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreWin32HandleKHR( HANDLE* pHandle); #endif + #define VK_KHR_external_fence_win32 1 #define VK_KHR_EXTERNAL_FENCE_WIN32_SPEC_VERSION 1 #define VK_KHR_EXTERNAL_FENCE_WIN32_EXTENSION_NAME "VK_KHR_external_fence_win32" - typedef struct VkImportFenceWin32HandleInfoKHR { VkStructureType sType; const void* pNext; @@ -207,7 +202,6 @@ typedef struct VkFenceGetWin32HandleInfoKHR { VkExternalFenceHandleTypeFlagBits handleType; } VkFenceGetWin32HandleInfoKHR; - typedef VkResult (VKAPI_PTR *PFN_vkImportFenceWin32HandleKHR)(VkDevice device, const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo); typedef VkResult (VKAPI_PTR *PFN_vkGetFenceWin32HandleKHR)(VkDevice device, const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle); @@ -222,10 +216,10 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceWin32HandleKHR( HANDLE* pHandle); #endif + #define VK_NV_external_memory_win32 1 #define VK_NV_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1 #define VK_NV_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_NV_external_memory_win32" - typedef struct VkImportMemoryWin32HandleInfoNV { VkStructureType sType; const void* pNext; @@ -240,7 +234,6 @@ typedef struct VkExportMemoryWin32HandleInfoNV { DWORD dwAccess; } VkExportMemoryWin32HandleInfoNV; - typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandleNV)(VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, HANDLE* pHandle); #ifndef VK_NO_PROTOTYPES @@ -251,10 +244,10 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandleNV( HANDLE* pHandle); #endif + #define VK_NV_win32_keyed_mutex 1 #define VK_NV_WIN32_KEYED_MUTEX_SPEC_VERSION 1 #define VK_NV_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_NV_win32_keyed_mutex" - typedef struct VkWin32KeyedMutexAcquireReleaseInfoNV { VkStructureType sType; const void* pNext; @@ -269,6 +262,64 @@ typedef struct VkWin32KeyedMutexAcquireReleaseInfoNV { +#define VK_EXT_full_screen_exclusive 1 +#define VK_EXT_FULL_SCREEN_EXCLUSIVE_SPEC_VERSION 3 +#define VK_EXT_FULL_SCREEN_EXCLUSIVE_EXTENSION_NAME "VK_EXT_full_screen_exclusive" + +typedef enum VkFullScreenExclusiveEXT { + VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT = 0, + VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT = 1, + VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT = 2, + VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT = 3, + VK_FULL_SCREEN_EXCLUSIVE_BEGIN_RANGE_EXT = VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT, + VK_FULL_SCREEN_EXCLUSIVE_END_RANGE_EXT = VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT, + VK_FULL_SCREEN_EXCLUSIVE_RANGE_SIZE_EXT = (VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT - VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT + 1), + VK_FULL_SCREEN_EXCLUSIVE_MAX_ENUM_EXT = 0x7FFFFFFF +} VkFullScreenExclusiveEXT; +typedef struct VkSurfaceFullScreenExclusiveInfoEXT { + VkStructureType sType; + void* pNext; + VkFullScreenExclusiveEXT fullScreenExclusive; +} VkSurfaceFullScreenExclusiveInfoEXT; + +typedef struct VkSurfaceCapabilitiesFullScreenExclusiveEXT { + VkStructureType sType; + void* pNext; + VkBool32 fullScreenExclusiveSupported; +} VkSurfaceCapabilitiesFullScreenExclusiveEXT; + +typedef struct VkSurfaceFullScreenExclusiveWin32InfoEXT { + VkStructureType sType; + const void* pNext; + HMONITOR hmonitor; +} VkSurfaceFullScreenExclusiveWin32InfoEXT; + +typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes); +typedef VkResult (VKAPI_PTR *PFN_vkAcquireFullScreenExclusiveModeEXT)(VkDevice device, VkSwapchainKHR swapchain); +typedef VkResult (VKAPI_PTR *PFN_vkReleaseFullScreenExclusiveModeEXT)(VkDevice device, VkSwapchainKHR swapchain); +typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupSurfacePresentModes2EXT)(VkDevice device, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkDeviceGroupPresentModeFlagsKHR* pModes); + +#ifndef VK_NO_PROTOTYPES +VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfacePresentModes2EXT( + VkPhysicalDevice physicalDevice, + const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, + uint32_t* pPresentModeCount, + VkPresentModeKHR* pPresentModes); + +VKAPI_ATTR VkResult VKAPI_CALL vkAcquireFullScreenExclusiveModeEXT( + VkDevice device, + VkSwapchainKHR swapchain); + +VKAPI_ATTR VkResult VKAPI_CALL vkReleaseFullScreenExclusiveModeEXT( + VkDevice device, + VkSwapchainKHR swapchain); + +VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupSurfacePresentModes2EXT( + VkDevice device, + const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, + VkDeviceGroupPresentModeFlagsKHR* pModes); +#endif + #ifdef __cplusplus } #endif diff --git a/src/rendering/vulkan/thirdparty/vulkan/vulkan_xcb.h b/src/rendering/vulkan/thirdparty/vulkan/vulkan_xcb.h index ba0360060..7d6905d2d 100644 --- a/src/rendering/vulkan/thirdparty/vulkan/vulkan_xcb.h +++ b/src/rendering/vulkan/thirdparty/vulkan/vulkan_xcb.h @@ -6,7 +6,7 @@ extern "C" { #endif /* -** Copyright (c) 2015-2018 The Khronos Group Inc. +** Copyright (c) 2015-2019 The Khronos Group Inc. ** ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. @@ -27,12 +27,11 @@ extern "C" { */ + #define VK_KHR_xcb_surface 1 #define VK_KHR_XCB_SURFACE_SPEC_VERSION 6 #define VK_KHR_XCB_SURFACE_EXTENSION_NAME "VK_KHR_xcb_surface" - typedef VkFlags VkXcbSurfaceCreateFlagsKHR; - typedef struct VkXcbSurfaceCreateInfoKHR { VkStructureType sType; const void* pNext; @@ -41,7 +40,6 @@ typedef struct VkXcbSurfaceCreateInfoKHR { xcb_window_t window; } VkXcbSurfaceCreateInfoKHR; - typedef VkResult (VKAPI_PTR *PFN_vkCreateXcbSurfaceKHR)(VkInstance instance, const VkXcbSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, xcb_connection_t* connection, xcb_visualid_t visual_id); diff --git a/src/rendering/vulkan/thirdparty/vulkan/vulkan_xlib.h b/src/rendering/vulkan/thirdparty/vulkan/vulkan_xlib.h index e1d967e01..7a05d297d 100644 --- a/src/rendering/vulkan/thirdparty/vulkan/vulkan_xlib.h +++ b/src/rendering/vulkan/thirdparty/vulkan/vulkan_xlib.h @@ -6,7 +6,7 @@ extern "C" { #endif /* -** Copyright (c) 2015-2018 The Khronos Group Inc. +** Copyright (c) 2015-2019 The Khronos Group Inc. ** ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. @@ -27,12 +27,11 @@ extern "C" { */ + #define VK_KHR_xlib_surface 1 #define VK_KHR_XLIB_SURFACE_SPEC_VERSION 6 #define VK_KHR_XLIB_SURFACE_EXTENSION_NAME "VK_KHR_xlib_surface" - typedef VkFlags VkXlibSurfaceCreateFlagsKHR; - typedef struct VkXlibSurfaceCreateInfoKHR { VkStructureType sType; const void* pNext; @@ -41,7 +40,6 @@ typedef struct VkXlibSurfaceCreateInfoKHR { Window window; } VkXlibSurfaceCreateInfoKHR; - typedef VkResult (VKAPI_PTR *PFN_vkCreateXlibSurfaceKHR)(VkInstance instance, const VkXlibSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, Display* dpy, VisualID visualID); diff --git a/src/rendering/vulkan/thirdparty/vulkan/vulkan_xlib_xrandr.h b/src/rendering/vulkan/thirdparty/vulkan/vulkan_xlib_xrandr.h index 117d01799..3a2095308 100644 --- a/src/rendering/vulkan/thirdparty/vulkan/vulkan_xlib_xrandr.h +++ b/src/rendering/vulkan/thirdparty/vulkan/vulkan_xlib_xrandr.h @@ -6,7 +6,7 @@ extern "C" { #endif /* -** Copyright (c) 2015-2018 The Khronos Group Inc. +** Copyright (c) 2015-2019 The Khronos Group Inc. ** ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. @@ -27,10 +27,10 @@ extern "C" { */ + #define VK_EXT_acquire_xlib_display 1 #define VK_EXT_ACQUIRE_XLIB_DISPLAY_SPEC_VERSION 1 #define VK_EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME "VK_EXT_acquire_xlib_display" - typedef VkResult (VKAPI_PTR *PFN_vkAcquireXlibDisplayEXT)(VkPhysicalDevice physicalDevice, Display* dpy, VkDisplayKHR display); typedef VkResult (VKAPI_PTR *PFN_vkGetRandROutputDisplayEXT)(VkPhysicalDevice physicalDevice, Display* dpy, RROutput rrOutput, VkDisplayKHR* pDisplay); From 5abffabb560f6b456657e25a11793a05f39bb063 Mon Sep 17 00:00:00 2001 From: Blue Shadow Date: Sat, 3 Aug 2019 11:14:03 +0300 Subject: [PATCH 30/32] - moved GetSaveAmount() from the base armor class --- .../static/zscript/actors/inventory/armor.zs | 26 +++++++------------ 1 file changed, 9 insertions(+), 17 deletions(-) diff --git a/wadsrc/static/zscript/actors/inventory/armor.zs b/wadsrc/static/zscript/actors/inventory/armor.zs index bfb5d15ac..0887197b1 100644 --- a/wadsrc/static/zscript/actors/inventory/armor.zs +++ b/wadsrc/static/zscript/actors/inventory/armor.zs @@ -40,23 +40,6 @@ class Armor : Inventory Inventory.PickupSound "misc/armor_pkup"; +INVENTORY.ISARMOR } - - int GetSaveAmount () - { - if (self is 'BasicArmorBonus') - { - let armor = BasicArmorBonus(self); - return !armor.bIgnoreSkill ? int(armor.SaveAmount * G_SkillPropertyFloat(SKILLP_ArmorFactor)) : armor.SaveAmount; - } - - if (self is 'BasicArmorPickup') - { - let armor = BasicArmorPickup(self); - return !armor.bIgnoreSkill ? int(armor.SaveAmount * G_SkillPropertyFloat(SKILLP_ArmorFactor)) : armor.SaveAmount; - } - - return 0; - } } //=========================================================================== @@ -342,6 +325,11 @@ class BasicArmorBonus : Armor { SaveAmount *= amount; } + + int GetSaveAmount () + { + return !bIgnoreSkill ? int(SaveAmount * G_SkillPropertyFloat(SKILLP_ArmorFactor)) : SaveAmount; + } } //=========================================================================== @@ -443,6 +431,10 @@ class BasicArmorPickup : Armor SaveAmount *= amount; } + int GetSaveAmount () + { + return !bIgnoreSkill ? int(SaveAmount * G_SkillPropertyFloat(SKILLP_ArmorFactor)) : SaveAmount; + } } //=========================================================================== From ff4bc8bab922b6664d19943234e49b23c25117bd Mon Sep 17 00:00:00 2001 From: "alexey.lysiuk" Date: Sat, 3 Aug 2019 13:15:06 +0300 Subject: [PATCH 31/32] - use EXT_metal_surface extension for Vulkan surface creation Prefer EXT_metal_surface over deprecated MVK_macos_surface extension, and use it only when modern one is not available --- src/posix/cocoa/i_video.mm | 50 ++++++++++++++++++--- src/rendering/vulkan/thirdparty/volk/volk.c | 1 + 2 files changed, 46 insertions(+), 5 deletions(-) diff --git a/src/posix/cocoa/i_video.mm b/src/posix/cocoa/i_video.mm index d157c4b33..5ad566b7f 100644 --- a/src/posix/cocoa/i_video.mm +++ b/src/posix/cocoa/i_video.mm @@ -35,6 +35,7 @@ #ifdef HAVE_VULKAN #define VK_USE_PLATFORM_MACOS_MVK +#define VK_USE_PLATFORM_METAL_EXT #include "volk/volk.h" #endif @@ -867,12 +868,37 @@ void I_GetVulkanDrawableSize(int *width, int *height) bool I_GetVulkanPlatformExtensions(unsigned int *count, const char **names) { - static const char* extensions[] = + static std::vector extensions; + + if (extensions.empty()) { - VK_KHR_SURFACE_EXTENSION_NAME, - VK_MVK_MACOS_SURFACE_EXTENSION_NAME - }; - static const unsigned int extensionCount = static_cast(sizeof extensions / sizeof extensions[0]); + uint32_t extensionPropertyCount = 0; + vkEnumerateInstanceExtensionProperties(nullptr, &extensionPropertyCount, nullptr); + + std::vector extensionProperties(extensionPropertyCount); + vkEnumerateInstanceExtensionProperties(nullptr, &extensionPropertyCount, extensionProperties.data()); + + static const char* const EXTENSION_NAMES[] = + { + VK_KHR_SURFACE_EXTENSION_NAME, // KHR_surface, required + VK_EXT_METAL_SURFACE_EXTENSION_NAME, // EXT_metal_surface, optional, preferred + VK_MVK_MACOS_SURFACE_EXTENSION_NAME, // MVK_macos_surface, optional, deprecated + }; + + for (const VkExtensionProperties ¤tProperties : extensionProperties) + { + for (const char *const extensionName : EXTENSION_NAMES) + { + if (strcmp(currentProperties.extensionName, extensionName) == 0) + { + extensions.push_back(extensionName); + } + } + } + } + + static const unsigned int extensionCount = static_cast(extensions.size()); + assert(extensionCount >= 2); // KHR_surface + at least one of the platform surface extentions if (count == nullptr && names == nullptr) { @@ -899,6 +925,20 @@ bool I_GetVulkanPlatformExtensions(unsigned int *count, const char **names) bool I_CreateVulkanSurface(VkInstance instance, VkSurfaceKHR *surface) { + if (vkCreateMetalSurfaceEXT) + { + // Preferred surface creation path + VkMetalSurfaceCreateInfoEXT surfaceCreateInfo; + surfaceCreateInfo.sType = VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT; + surfaceCreateInfo.pNext = nullptr; + surfaceCreateInfo.flags = 0; + surfaceCreateInfo.pLayer = static_cast(CocoaVideo::GetWindow().contentView.layer); + + const VkResult result = vkCreateMetalSurfaceEXT(instance, &surfaceCreateInfo, nullptr, surface); + return result == VK_SUCCESS; + } + + // Deprecated surface creation path VkMacOSSurfaceCreateInfoMVK windowCreateInfo; windowCreateInfo.sType = VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK; windowCreateInfo.pNext = nullptr; diff --git a/src/rendering/vulkan/thirdparty/volk/volk.c b/src/rendering/vulkan/thirdparty/volk/volk.c index 66344cae5..bcaf541c3 100644 --- a/src/rendering/vulkan/thirdparty/volk/volk.c +++ b/src/rendering/vulkan/thirdparty/volk/volk.c @@ -4,6 +4,7 @@ #ifdef __APPLE__ #define VK_USE_PLATFORM_MACOS_MVK +#define VK_USE_PLATFORM_METAL_EXT #endif From c05ef397181d480951175880ef43c17106a132aa Mon Sep 17 00:00:00 2001 From: "alexey.lysiuk" Date: Sat, 3 Aug 2019 15:42:06 +0300 Subject: [PATCH 32/32] - do not set use type on font texture if it is used as a sprite Setting texture use type in this case would break actors that use the corresponding sprite https://forum.zdoom.org/viewtopic.php?t=65509 --- src/gamedata/fonts/specialfont.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/gamedata/fonts/specialfont.cpp b/src/gamedata/fonts/specialfont.cpp index 1d3c92c23..c87c49241 100644 --- a/src/gamedata/fonts/specialfont.cpp +++ b/src/gamedata/fonts/specialfont.cpp @@ -102,7 +102,10 @@ FSpecialFont::FSpecialFont (const char *name, int first, int count, FTexture **l if (charlumps[i] != nullptr) { - charlumps[i]->SetUseType(ETextureType::FontChar); + // If texture is used as a sprite, do not set use type + // Changing it would break actors that use this sprite + if (charlumps[i]->GetUseType() != ETextureType::Sprite) + charlumps[i]->SetUseType(ETextureType::FontChar); Chars[i].OriginalPic = charlumps[i]; if (!noTranslate)