Skip to content
Permalink
Browse files

Merge remote-tracking branch 'origin/master' into polybackend

  • Loading branch information...
dpjudas committed Aug 4, 2019
2 parents 97a4f25 + 3c0ff17 commit 7940d5fe01e61bd07ea64125b4e1801bf48af937
Showing with 4,001 additions and 1,163 deletions.
  1. +18 −2 libraries/bzip2/CHANGES
  2. +2 −2 libraries/bzip2/LICENSE
  3. +5 −4 libraries/bzip2/README
  4. +2 −2 libraries/bzip2/blocksort.c
  5. +4 −4 libraries/bzip2/bzlib.c
  6. +2 −2 libraries/bzip2/bzlib.h
  7. +3 −3 libraries/bzip2/bzlib_private.h
  8. +3 −3 libraries/bzip2/compress.c
  9. +2 −2 libraries/bzip2/crctable.c
  10. +10 −4 libraries/bzip2/decompress.c
  11. +2 −2 libraries/bzip2/huffman.c
  12. +2 −2 libraries/bzip2/randtable.c
  13. +1 −0 src/CMakeLists.txt
  14. +0 −5 src/console/c_console.cpp
  15. +42 −5 src/g_game.cpp
  16. +2 −0 src/g_game.h
  17. +3 −3 src/g_statusbar/shared_sbar.cpp
  18. +47 −0 src/gamedata/fonts/font.cpp
  19. +4 −1 src/gamedata/fonts/specialfont.cpp
  20. +3 −2 src/gamedata/fonts/v_font.h
  21. +3 −1 src/gamedata/fonts/v_text.cpp
  22. +1 −1 src/intermission/intermission.cpp
  23. +3 −3 src/menu/loadsavemenu.cpp
  24. +1 −1 src/menu/menu.h
  25. +8 −0 src/menu/messagebox.cpp
  26. +1 −0 src/p_conversation.cpp
  27. +1 −1 src/playsim/d_player.h
  28. +1 −1 src/playsim/p_lnspec.cpp
  29. +5 −3 src/playsim/p_user.cpp
  30. +46 −6 src/posix/cocoa/i_video.mm
  31. +8 −3 src/rendering/vulkan/renderer/vk_renderpass.cpp
  32. +3 −2 src/rendering/vulkan/renderer/vk_renderpass.h
  33. +21 −72 src/rendering/vulkan/renderer/vk_renderstate.cpp
  34. +4 −6 src/rendering/vulkan/renderer/vk_renderstate.h
  35. +127 −0 src/rendering/vulkan/renderer/vk_streambuffer.cpp
  36. +58 −0 src/rendering/vulkan/renderer/vk_streambuffer.h
  37. +5 −6 src/rendering/vulkan/system/vk_framebuffer.cpp
  38. +3 −5 src/rendering/vulkan/system/vk_framebuffer.h
  39. +2 −10 src/rendering/vulkan/system/vk_swapchain.cpp
  40. +1 −0 src/rendering/vulkan/thirdparty/volk/volk.c
  41. +6 −1 src/rendering/vulkan/thirdparty/vulkan/vk_icd.h
  42. +12 −5 src/rendering/vulkan/thirdparty/vulkan/vk_layer.h
  43. +13 −6 src/rendering/vulkan/thirdparty/vulkan/vulkan.h
  44. +121 −0 src/rendering/vulkan/thirdparty/vulkan/vulkan_android.h
  45. +2,233 −246 src/rendering/vulkan/thirdparty/vulkan/vulkan_core.h
  46. +56 −0 src/rendering/vulkan/thirdparty/vulkan/vulkan_fuchsia.h
  47. +67 −0 src/rendering/vulkan/thirdparty/vulkan/vulkan_ggp.h
  48. +2 −4 src/rendering/vulkan/thirdparty/vulkan/vulkan_ios.h
  49. +2 −4 src/rendering/vulkan/thirdparty/vulkan/vulkan_macos.h
  50. +63 −0 src/rendering/vulkan/thirdparty/vulkan/vulkan_metal.h
  51. +2 −4 src/rendering/vulkan/thirdparty/vulkan/vulkan_vi.h
  52. +2 −4 src/rendering/vulkan/thirdparty/vulkan/vulkan_wayland.h
  53. +65 −14 src/rendering/vulkan/thirdparty/vulkan/vulkan_win32.h
  54. +2 −4 src/rendering/vulkan/thirdparty/vulkan/vulkan_xcb.h
  55. +2 −4 src/rendering/vulkan/thirdparty/vulkan/vulkan_xlib.h
  56. +2 −2 src/rendering/vulkan/thirdparty/vulkan/vulkan_xlib_xrandr.h
  57. +13 −0 src/scripting/vmthunks.cpp
  58. +38 −36 wadsrc/static/language.csv
  59. +2 −0 wadsrc/static/menudef.txt
  60. +2 −2 wadsrc/static/zscript/actors/hexen/korax.zs
  61. +11 −26 wadsrc/static/zscript/actors/inventory/armor.zs
  62. +1 −1 wadsrc/static/zscript/actors/player/player.zs
  63. +1 −1 wadsrc/static/zscript/actors/strife/acolyte.zs
  64. +1 −1 wadsrc/static/zscript/actors/strife/alienspectres.zs
  65. +1 −1 wadsrc/static/zscript/actors/strife/strifestuff.zs
  66. +1 −0 wadsrc/static/zscript/base.zs
  67. +30 −7 wadsrc/static/zscript/ui/menu/conversationmenu.zs
  68. +58 −23 wadsrc/static/zscript/ui/statscreen/statscreen.zs
  69. +2 −2 wadsrc/static/zscript/ui/statusbar/strife_sbar.zs
  70. BIN wadsrc_extra/static/filter/game-chex/fonts/bigfont/0402.lmp
  71. BIN wadsrc_extra/static/filter/game-chex/fonts/bigfont/0409.lmp
  72. BIN wadsrc_extra/static/filter/game-chex/fonts/bigfont/040A.lmp
  73. BIN wadsrc_extra/static/filter/game-chex/fonts/bigfont/040B.lmp
  74. BIN wadsrc_extra/static/filter/game-chex/fonts/bigfont/040F.lmp
  75. BIN wadsrc_extra/static/filter/game-strife/fonts/bigfont/0402.lmp
  76. BIN wadsrc_extra/static/filter/game-strife/fonts/bigfont/0409.lmp
  77. BIN wadsrc_extra/static/filter/game-strife/fonts/bigfont/040A.lmp
  78. BIN wadsrc_extra/static/filter/game-strife/fonts/bigfont/040B.lmp
  79. BIN wadsrc_extra/static/filter/game-strife/fonts/bigfont/040F.lmp
  80. BIN wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0402.lmp
  81. BIN wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/0409.lmp
  82. BIN wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/040A.lmp
  83. BIN wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/040B.lmp
  84. BIN wadsrc_extra/static/filter/game-strife/fonts/defsmallfont2/040F.lmp
  85. BIN wadsrc_extra/static/filter/hacx.hacx1/fonts/bigfont/0402.lmp
  86. BIN wadsrc_extra/static/filter/hacx.hacx1/fonts/bigfont/0409.lmp
  87. BIN wadsrc_extra/static/filter/hacx.hacx1/fonts/bigfont/040A.lmp
  88. BIN wadsrc_extra/static/filter/hacx.hacx1/fonts/bigfont/040B.lmp
  89. BIN wadsrc_extra/static/filter/hacx.hacx1/fonts/bigfont/040F.lmp
  90. BIN wadsrc_extra/static/filter/hacx.hacx1/fonts/defsmallfont/0402.lmp
  91. BIN wadsrc_extra/static/filter/hacx.hacx1/fonts/defsmallfont/0409.lmp
  92. BIN wadsrc_extra/static/filter/hacx.hacx1/fonts/defsmallfont/040A.lmp
  93. BIN wadsrc_extra/static/filter/hacx.hacx1/fonts/defsmallfont/040B.lmp
  94. BIN wadsrc_extra/static/filter/hacx.hacx1/fonts/defsmallfont/040F.lmp
  95. +48 −36 wadsrc_extra/static/filter/hacx.hacx1/language.csv
  96. BIN wadsrc_extra/static/filter/harmony/fonts/defsmallfont/0402.lmp
  97. BIN wadsrc_extra/static/filter/harmony/fonts/defsmallfont/0409.lmp
  98. BIN wadsrc_extra/static/filter/harmony/fonts/defsmallfont/040A.lmp
  99. BIN wadsrc_extra/static/filter/harmony/fonts/defsmallfont/040B.lmp
  100. BIN wadsrc_extra/static/filter/harmony/fonts/defsmallfont/040F.lmp
  101. +79 −55 wadsrc_extra/static/filter/harmony/language.csv
  102. +1 −0 wadsrc_extra/static/filter/harmony/mapinfo.txt
  103. +603 −505 wadsrc_extra/static/language.csv
@@ -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 <jseward@acm.org>
bzip2/libbzip2 version 1.0.8 of 13 July 2019
Copyright (C) 1996-2019 Julian Seward <jseward@acm.org>

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
@@ -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

--------------------------------------------------------------------------
@@ -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 <jseward@acm.org>
bzip2/libbzip2 version 1.0.8 of 13 July 2019
Copyright (C) 1996-2019 Julian Seward <jseward@acm.org>

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)
@@ -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 <jseward@acm.org>
bzip2/libbzip2 version 1.0.8 of 13 July 2019
Copyright (C) 1996-2019 Julian Seward <jseward@acm.org>
Please read the WARNING, DISCLAIMER and PATENTS sections in the
README file.
@@ -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 <jseward@acm.org>
bzip2/libbzip2 version 1.0.8 of 13 July 2019
Copyright (C) 1996-2019 Julian Seward <jseward@acm.org>
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()
);
@@ -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 <jseward@acm.org>
bzip2/libbzip2 version 1.0.8 of 13 July 2019
Copyright (C) 1996-2019 Julian Seward <jseward@acm.org>
Please read the WARNING, DISCLAIMER and PATENTS sections in the
README file.
@@ -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 <jseward@acm.org>
bzip2/libbzip2 version 1.0.8 of 13 July 2019
Copyright (C) 1996-2019 Julian Seward <jseward@acm.org>
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;
@@ -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 <jseward@acm.org>
bzip2/libbzip2 version 1.0.8 of 13 July 2019
Copyright (C) 1996-2019 Julian Seward <jseward@acm.org>
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 );


@@ -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 <jseward@acm.org>
bzip2/libbzip2 version 1.0.8 of 13 July 2019
Copyright (C) 1996-2019 Julian Seward <jseward@acm.org>
Please read the WARNING, DISCLAIMER and PATENTS sections in the
README file.
@@ -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 <jseward@acm.org>
bzip2/libbzip2 version 1.0.8 of 13 July 2019
Copyright (C) 1996-2019 Julian Seward <jseward@acm.org>
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. ---*/
{
@@ -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 <jseward@acm.org>
bzip2/libbzip2 version 1.0.8 of 13 July 2019
Copyright (C) 1996-2019 Julian Seward <jseward@acm.org>
Please read the WARNING, DISCLAIMER and PATENTS sections in the
README file.
@@ -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 <jseward@acm.org>
bzip2/libbzip2 version 1.0.8 of 13 July 2019
Copyright (C) 1996-2019 Julian Seward <jseward@acm.org>
Please read the WARNING, DISCLAIMER and PATENTS sections in the
README file.
@@ -905,6 +905,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
@@ -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);
@@ -94,8 +94,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<FString> &filenames, TArray<FCompressedBuffer> &content);
@@ -1058,7 +1059,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 = "";
@@ -2027,6 +2028,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 ()
{
@@ -2060,7 +2069,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);
}


@@ -2165,7 +2202,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<FCompressedBuffer> savegame_content;
TArray<FString> savegame_filenames;
@@ -2281,7 +2318,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.
@@ -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);
@@ -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());

0 comments on commit 7940d5f

Please sign in to comment.
You can’t perform that action at this time.