merge 1.0.0 beta 1 into ui-scaling branch ui-scaling
authorsheepluva
Wed, 31 Jul 2019 23:14:27 +0200
branchui-scaling
changeset 15283 c4fd2813b127
parent 13390 0135e64c6c66 (diff)
parent 15279 7ab5cf405686 (current diff)
child 15663 d92eeb468dad
merge 1.0.0 beta 1 into ui-scaling branch
ChangeLog.txt
QTfrontend/game.cpp
QTfrontend/gameuiconfig.cpp
QTfrontend/gameuiconfig.h
QTfrontend/net/recorder.cpp
QTfrontend/res/campaign/A_Classic_Fairytale/backstab.png
QTfrontend/res/campaign/A_Classic_Fairytale/dragon.png
QTfrontend/res/campaign/A_Classic_Fairytale/enemy.png
QTfrontend/res/campaign/A_Classic_Fairytale/epil.png
QTfrontend/res/campaign/A_Classic_Fairytale/family.png
QTfrontend/res/campaign/A_Classic_Fairytale/first_blood.png
QTfrontend/res/campaign/A_Classic_Fairytale/journey.png
QTfrontend/res/campaign/A_Classic_Fairytale/queen.png
QTfrontend/res/campaign/A_Classic_Fairytale/shadow.png
QTfrontend/res/campaign/A_Classic_Fairytale/united.png
QTfrontend/res/campaign/A_Space_Adventure/cosmos.png
QTfrontend/res/campaign/A_Space_Adventure/death01.png
QTfrontend/res/campaign/A_Space_Adventure/death02.png
QTfrontend/res/campaign/A_Space_Adventure/desert01.png
QTfrontend/res/campaign/A_Space_Adventure/desert02.png
QTfrontend/res/campaign/A_Space_Adventure/desert03.png
QTfrontend/res/campaign/A_Space_Adventure/final.png
QTfrontend/res/campaign/A_Space_Adventure/fruit01.png
QTfrontend/res/campaign/A_Space_Adventure/fruit02.png
QTfrontend/res/campaign/A_Space_Adventure/fruit03.png
QTfrontend/res/campaign/A_Space_Adventure/ice01.png
QTfrontend/res/campaign/A_Space_Adventure/ice02.png
QTfrontend/res/campaign/A_Space_Adventure/moon01.png
QTfrontend/res/campaign/A_Space_Adventure/moon02.png
QTfrontend/res/html/about.html
QTfrontend/ui/page/pageoptions.cpp
QTfrontend/ui/page/pageoptions.h
gameServer2/Cargo.toml
gameServer2/src/main.rs
gameServer2/src/protocol/messages.rs
gameServer2/src/protocol/mod.rs
gameServer2/src/protocol/parser.rs
gameServer2/src/server/actions.rs
gameServer2/src/server/client.rs
gameServer2/src/server/coretypes.rs
gameServer2/src/server/handlers/inroom.rs
gameServer2/src/server/handlers/lobby.rs
gameServer2/src/server/handlers/loggingin.rs
gameServer2/src/server/handlers/mod.rs
gameServer2/src/server/mod.rs
gameServer2/src/server/network.rs
gameServer2/src/server/room.rs
gameServer2/src/server/server.rs
gameServer2/src/utils.rs
hedgewars/ArgParsers.pas
hedgewars/uChat.pas
hedgewars/uConsts.pas
hedgewars/uStore.pas
hedgewars/uTypes.pas
hedgewars/uVariables.pas
misc/libphysfs/Android.mk
misc/libphysfs/CMakeLists.txt
misc/libphysfs/Xcode/Physfs.xcodeproj/project.pbxproj
misc/libphysfs/Xcode/Physfs_Prefix.pch
misc/libphysfs/archiver_dir.c
misc/libphysfs/archiver_grp.c
misc/libphysfs/archiver_hog.c
misc/libphysfs/archiver_iso9660.c
misc/libphysfs/archiver_lzma.c
misc/libphysfs/archiver_mvl.c
misc/libphysfs/archiver_qpak.c
misc/libphysfs/archiver_slb.c
misc/libphysfs/archiver_unpacked.c
misc/libphysfs/archiver_wad.c
misc/libphysfs/archiver_zip.c
misc/libphysfs/lzma/7zC.txt
misc/libphysfs/lzma/7zFormat.txt
misc/libphysfs/lzma/C/7zCrc.c
misc/libphysfs/lzma/C/7zCrc.h
misc/libphysfs/lzma/C/7zCrcT8.c
misc/libphysfs/lzma/C/Alloc.c
misc/libphysfs/lzma/C/Alloc.h
misc/libphysfs/lzma/C/Archive/7z/7zAlloc.c
misc/libphysfs/lzma/C/Archive/7z/7zAlloc.h
misc/libphysfs/lzma/C/Archive/7z/7zBuffer.c
misc/libphysfs/lzma/C/Archive/7z/7zBuffer.h
misc/libphysfs/lzma/C/Archive/7z/7zDecode.c
misc/libphysfs/lzma/C/Archive/7z/7zDecode.h
misc/libphysfs/lzma/C/Archive/7z/7zExtract.c
misc/libphysfs/lzma/C/Archive/7z/7zExtract.h
misc/libphysfs/lzma/C/Archive/7z/7zHeader.c
misc/libphysfs/lzma/C/Archive/7z/7zHeader.h
misc/libphysfs/lzma/C/Archive/7z/7zIn.c
misc/libphysfs/lzma/C/Archive/7z/7zIn.h
misc/libphysfs/lzma/C/Archive/7z/7zItem.c
misc/libphysfs/lzma/C/Archive/7z/7zItem.h
misc/libphysfs/lzma/C/Archive/7z/7zMain.c
misc/libphysfs/lzma/C/Archive/7z/7zMethodID.c
misc/libphysfs/lzma/C/Archive/7z/7zMethodID.h
misc/libphysfs/lzma/C/Archive/7z/7z_C.dsp
misc/libphysfs/lzma/C/Archive/7z/7z_C.dsw
misc/libphysfs/lzma/C/Archive/7z/makefile
misc/libphysfs/lzma/C/Archive/7z/makefile.gcc
misc/libphysfs/lzma/C/Compress/Branch/BranchARM.c
misc/libphysfs/lzma/C/Compress/Branch/BranchARM.h
misc/libphysfs/lzma/C/Compress/Branch/BranchARMThumb.c
misc/libphysfs/lzma/C/Compress/Branch/BranchARMThumb.h
misc/libphysfs/lzma/C/Compress/Branch/BranchIA64.c
misc/libphysfs/lzma/C/Compress/Branch/BranchIA64.h
misc/libphysfs/lzma/C/Compress/Branch/BranchPPC.c
misc/libphysfs/lzma/C/Compress/Branch/BranchPPC.h
misc/libphysfs/lzma/C/Compress/Branch/BranchSPARC.c
misc/libphysfs/lzma/C/Compress/Branch/BranchSPARC.h
misc/libphysfs/lzma/C/Compress/Branch/BranchTypes.h
misc/libphysfs/lzma/C/Compress/Branch/BranchX86.c
misc/libphysfs/lzma/C/Compress/Branch/BranchX86.h
misc/libphysfs/lzma/C/Compress/Branch/BranchX86_2.c
misc/libphysfs/lzma/C/Compress/Branch/BranchX86_2.h
misc/libphysfs/lzma/C/Compress/Huffman/HuffmanEncode.c
misc/libphysfs/lzma/C/Compress/Huffman/HuffmanEncode.h
misc/libphysfs/lzma/C/Compress/Lz/LzHash.h
misc/libphysfs/lzma/C/Compress/Lz/MatchFinder.c
misc/libphysfs/lzma/C/Compress/Lz/MatchFinder.h
misc/libphysfs/lzma/C/Compress/Lz/MatchFinderMt.c
misc/libphysfs/lzma/C/Compress/Lz/MatchFinderMt.h
misc/libphysfs/lzma/C/Compress/Lzma/LzmaDecode.c
misc/libphysfs/lzma/C/Compress/Lzma/LzmaDecode.h
misc/libphysfs/lzma/C/Compress/Lzma/LzmaDecodeSize.c
misc/libphysfs/lzma/C/Compress/Lzma/LzmaStateDecode.c
misc/libphysfs/lzma/C/Compress/Lzma/LzmaStateDecode.h
misc/libphysfs/lzma/C/Compress/Lzma/LzmaStateTest.c
misc/libphysfs/lzma/C/Compress/Lzma/LzmaTest.c
misc/libphysfs/lzma/C/Compress/Lzma/LzmaTypes.h
misc/libphysfs/lzma/C/CpuArch.h
misc/libphysfs/lzma/C/IStream.h
misc/libphysfs/lzma/C/Sort.c
misc/libphysfs/lzma/C/Sort.h
misc/libphysfs/lzma/C/Threads.c
misc/libphysfs/lzma/C/Threads.h
misc/libphysfs/lzma/C/Types.h
misc/libphysfs/lzma/CPP/7zip/Archive/7z/7z.ico
misc/libphysfs/lzma/CPP/7zip/Archive/7z/7zCompressionMode.cpp
misc/libphysfs/lzma/CPP/7zip/Archive/7z/7zCompressionMode.h
misc/libphysfs/lzma/CPP/7zip/Archive/7z/7zDecode.cpp
misc/libphysfs/lzma/CPP/7zip/Archive/7z/7zDecode.h
misc/libphysfs/lzma/CPP/7zip/Archive/7z/7zEncode.cpp
misc/libphysfs/lzma/CPP/7zip/Archive/7z/7zEncode.h
misc/libphysfs/lzma/CPP/7zip/Archive/7z/7zExtract.cpp
misc/libphysfs/lzma/CPP/7zip/Archive/7z/7zFolderInStream.cpp
misc/libphysfs/lzma/CPP/7zip/Archive/7z/7zFolderInStream.h
misc/libphysfs/lzma/CPP/7zip/Archive/7z/7zFolderOutStream.cpp
misc/libphysfs/lzma/CPP/7zip/Archive/7z/7zFolderOutStream.h
misc/libphysfs/lzma/CPP/7zip/Archive/7z/7zHandler.cpp
misc/libphysfs/lzma/CPP/7zip/Archive/7z/7zHandler.h
misc/libphysfs/lzma/CPP/7zip/Archive/7z/7zHandlerOut.cpp
misc/libphysfs/lzma/CPP/7zip/Archive/7z/7zHeader.cpp
misc/libphysfs/lzma/CPP/7zip/Archive/7z/7zHeader.h
misc/libphysfs/lzma/CPP/7zip/Archive/7z/7zIn.cpp
misc/libphysfs/lzma/CPP/7zip/Archive/7z/7zIn.h
misc/libphysfs/lzma/CPP/7zip/Archive/7z/7zItem.h
misc/libphysfs/lzma/CPP/7zip/Archive/7z/7zOut.cpp
misc/libphysfs/lzma/CPP/7zip/Archive/7z/7zOut.h
misc/libphysfs/lzma/CPP/7zip/Archive/7z/7zProperties.cpp
misc/libphysfs/lzma/CPP/7zip/Archive/7z/7zProperties.h
misc/libphysfs/lzma/CPP/7zip/Archive/7z/7zRegister.cpp
misc/libphysfs/lzma/CPP/7zip/Archive/7z/7zSpecStream.cpp
misc/libphysfs/lzma/CPP/7zip/Archive/7z/7zSpecStream.h
misc/libphysfs/lzma/CPP/7zip/Archive/7z/7zUpdate.cpp
misc/libphysfs/lzma/CPP/7zip/Archive/7z/7zUpdate.h
misc/libphysfs/lzma/CPP/7zip/Archive/7z/StdAfx.cpp
misc/libphysfs/lzma/CPP/7zip/Archive/7z/StdAfx.h
misc/libphysfs/lzma/CPP/7zip/Archive/Archive.def
misc/libphysfs/lzma/CPP/7zip/Archive/Archive2.def
misc/libphysfs/lzma/CPP/7zip/Archive/ArchiveExports.cpp
misc/libphysfs/lzma/CPP/7zip/Archive/Common/CoderMixer2.cpp
misc/libphysfs/lzma/CPP/7zip/Archive/Common/CoderMixer2.h
misc/libphysfs/lzma/CPP/7zip/Archive/Common/CoderMixer2MT.cpp
misc/libphysfs/lzma/CPP/7zip/Archive/Common/CoderMixer2MT.h
misc/libphysfs/lzma/CPP/7zip/Archive/Common/CrossThreadProgress.cpp
misc/libphysfs/lzma/CPP/7zip/Archive/Common/CrossThreadProgress.h
misc/libphysfs/lzma/CPP/7zip/Archive/Common/DummyOutStream.cpp
misc/libphysfs/lzma/CPP/7zip/Archive/Common/DummyOutStream.h
misc/libphysfs/lzma/CPP/7zip/Archive/Common/HandlerOut.cpp
misc/libphysfs/lzma/CPP/7zip/Archive/Common/HandlerOut.h
misc/libphysfs/lzma/CPP/7zip/Archive/Common/InStreamWithCRC.cpp
misc/libphysfs/lzma/CPP/7zip/Archive/Common/InStreamWithCRC.h
misc/libphysfs/lzma/CPP/7zip/Archive/Common/ItemNameUtils.cpp
misc/libphysfs/lzma/CPP/7zip/Archive/Common/ItemNameUtils.h
misc/libphysfs/lzma/CPP/7zip/Archive/Common/MultiStream.cpp
misc/libphysfs/lzma/CPP/7zip/Archive/Common/MultiStream.h
misc/libphysfs/lzma/CPP/7zip/Archive/Common/OutStreamWithCRC.cpp
misc/libphysfs/lzma/CPP/7zip/Archive/Common/OutStreamWithCRC.h
misc/libphysfs/lzma/CPP/7zip/Archive/Common/ParseProperties.cpp
misc/libphysfs/lzma/CPP/7zip/Archive/Common/ParseProperties.h
misc/libphysfs/lzma/CPP/7zip/Archive/DllExports2.cpp
misc/libphysfs/lzma/CPP/7zip/Archive/IArchive.h
misc/libphysfs/lzma/CPP/7zip/Bundles/Alone7z/Alone.dsp
misc/libphysfs/lzma/CPP/7zip/Bundles/Alone7z/Alone.dsw
misc/libphysfs/lzma/CPP/7zip/Bundles/Alone7z/StdAfx.cpp
misc/libphysfs/lzma/CPP/7zip/Bundles/Alone7z/StdAfx.h
misc/libphysfs/lzma/CPP/7zip/Bundles/Alone7z/makefile
misc/libphysfs/lzma/CPP/7zip/Bundles/Alone7z/resource.rc
misc/libphysfs/lzma/CPP/7zip/Bundles/Format7zExtractR/StdAfx.cpp
misc/libphysfs/lzma/CPP/7zip/Bundles/Format7zExtractR/StdAfx.h
misc/libphysfs/lzma/CPP/7zip/Bundles/Format7zExtractR/makefile
misc/libphysfs/lzma/CPP/7zip/Bundles/Format7zExtractR/resource.rc
misc/libphysfs/lzma/CPP/7zip/Bundles/Format7zR/StdAfx.cpp
misc/libphysfs/lzma/CPP/7zip/Bundles/Format7zR/StdAfx.h
misc/libphysfs/lzma/CPP/7zip/Bundles/Format7zR/makefile
misc/libphysfs/lzma/CPP/7zip/Bundles/Format7zR/resource.rc
misc/libphysfs/lzma/CPP/7zip/Common/CreateCoder.cpp
misc/libphysfs/lzma/CPP/7zip/Common/CreateCoder.h
misc/libphysfs/lzma/CPP/7zip/Common/FilePathAutoRename.cpp
misc/libphysfs/lzma/CPP/7zip/Common/FilePathAutoRename.h
misc/libphysfs/lzma/CPP/7zip/Common/FileStreams.cpp
misc/libphysfs/lzma/CPP/7zip/Common/FileStreams.h
misc/libphysfs/lzma/CPP/7zip/Common/FilterCoder.cpp
misc/libphysfs/lzma/CPP/7zip/Common/FilterCoder.h
misc/libphysfs/lzma/CPP/7zip/Common/InBuffer.cpp
misc/libphysfs/lzma/CPP/7zip/Common/InBuffer.h
misc/libphysfs/lzma/CPP/7zip/Common/InOutTempBuffer.cpp
misc/libphysfs/lzma/CPP/7zip/Common/InOutTempBuffer.h
misc/libphysfs/lzma/CPP/7zip/Common/LimitedStreams.cpp
misc/libphysfs/lzma/CPP/7zip/Common/LimitedStreams.h
misc/libphysfs/lzma/CPP/7zip/Common/LockedStream.cpp
misc/libphysfs/lzma/CPP/7zip/Common/LockedStream.h
misc/libphysfs/lzma/CPP/7zip/Common/MethodId.cpp
misc/libphysfs/lzma/CPP/7zip/Common/MethodId.h
misc/libphysfs/lzma/CPP/7zip/Common/MethodProps.cpp
misc/libphysfs/lzma/CPP/7zip/Common/MethodProps.h
misc/libphysfs/lzma/CPP/7zip/Common/OffsetStream.cpp
misc/libphysfs/lzma/CPP/7zip/Common/OffsetStream.h
misc/libphysfs/lzma/CPP/7zip/Common/OutBuffer.cpp
misc/libphysfs/lzma/CPP/7zip/Common/OutBuffer.h
misc/libphysfs/lzma/CPP/7zip/Common/ProgressUtils.cpp
misc/libphysfs/lzma/CPP/7zip/Common/ProgressUtils.h
misc/libphysfs/lzma/CPP/7zip/Common/RegisterArc.h
misc/libphysfs/lzma/CPP/7zip/Common/RegisterCodec.h
misc/libphysfs/lzma/CPP/7zip/Common/StdAfx.h
misc/libphysfs/lzma/CPP/7zip/Common/StreamBinder.cpp
misc/libphysfs/lzma/CPP/7zip/Common/StreamBinder.h
misc/libphysfs/lzma/CPP/7zip/Common/StreamObjects.cpp
misc/libphysfs/lzma/CPP/7zip/Common/StreamObjects.h
misc/libphysfs/lzma/CPP/7zip/Common/StreamUtils.cpp
misc/libphysfs/lzma/CPP/7zip/Common/StreamUtils.h
misc/libphysfs/lzma/CPP/7zip/Common/VirtThread.cpp
misc/libphysfs/lzma/CPP/7zip/Common/VirtThread.h
misc/libphysfs/lzma/CPP/7zip/Compress/Branch/ARM.cpp
misc/libphysfs/lzma/CPP/7zip/Compress/Branch/ARM.h
misc/libphysfs/lzma/CPP/7zip/Compress/Branch/ARMThumb.cpp
misc/libphysfs/lzma/CPP/7zip/Compress/Branch/ARMThumb.h
misc/libphysfs/lzma/CPP/7zip/Compress/Branch/BCJ2Register.cpp
misc/libphysfs/lzma/CPP/7zip/Compress/Branch/BCJRegister.cpp
misc/libphysfs/lzma/CPP/7zip/Compress/Branch/BranchCoder.cpp
misc/libphysfs/lzma/CPP/7zip/Compress/Branch/BranchCoder.h
misc/libphysfs/lzma/CPP/7zip/Compress/Branch/BranchRegister.cpp
misc/libphysfs/lzma/CPP/7zip/Compress/Branch/IA64.cpp
misc/libphysfs/lzma/CPP/7zip/Compress/Branch/IA64.h
misc/libphysfs/lzma/CPP/7zip/Compress/Branch/PPC.cpp
misc/libphysfs/lzma/CPP/7zip/Compress/Branch/PPC.h
misc/libphysfs/lzma/CPP/7zip/Compress/Branch/SPARC.cpp
misc/libphysfs/lzma/CPP/7zip/Compress/Branch/SPARC.h
misc/libphysfs/lzma/CPP/7zip/Compress/Branch/StdAfx.cpp
misc/libphysfs/lzma/CPP/7zip/Compress/Branch/StdAfx.h
misc/libphysfs/lzma/CPP/7zip/Compress/Branch/x86.cpp
misc/libphysfs/lzma/CPP/7zip/Compress/Branch/x86.h
misc/libphysfs/lzma/CPP/7zip/Compress/Branch/x86_2.cpp
misc/libphysfs/lzma/CPP/7zip/Compress/Branch/x86_2.h
misc/libphysfs/lzma/CPP/7zip/Compress/ByteSwap/ByteSwap.cpp
misc/libphysfs/lzma/CPP/7zip/Compress/ByteSwap/ByteSwap.h
misc/libphysfs/lzma/CPP/7zip/Compress/ByteSwap/ByteSwapRegister.cpp
misc/libphysfs/lzma/CPP/7zip/Compress/ByteSwap/StdAfx.cpp
misc/libphysfs/lzma/CPP/7zip/Compress/ByteSwap/StdAfx.h
misc/libphysfs/lzma/CPP/7zip/Compress/CodecExports.cpp
misc/libphysfs/lzma/CPP/7zip/Compress/Copy/CopyCoder.cpp
misc/libphysfs/lzma/CPP/7zip/Compress/Copy/CopyCoder.h
misc/libphysfs/lzma/CPP/7zip/Compress/Copy/CopyRegister.cpp
misc/libphysfs/lzma/CPP/7zip/Compress/Copy/StdAfx.cpp
misc/libphysfs/lzma/CPP/7zip/Compress/Copy/StdAfx.h
misc/libphysfs/lzma/CPP/7zip/Compress/LZ/LZOutWindow.cpp
misc/libphysfs/lzma/CPP/7zip/Compress/LZ/LZOutWindow.h
misc/libphysfs/lzma/CPP/7zip/Compress/LZ/StdAfx.h
misc/libphysfs/lzma/CPP/7zip/Compress/LZMA/LZMA.h
misc/libphysfs/lzma/CPP/7zip/Compress/LZMA/LZMADecoder.cpp
misc/libphysfs/lzma/CPP/7zip/Compress/LZMA/LZMADecoder.h
misc/libphysfs/lzma/CPP/7zip/Compress/LZMA/LZMAEncoder.cpp
misc/libphysfs/lzma/CPP/7zip/Compress/LZMA/LZMAEncoder.h
misc/libphysfs/lzma/CPP/7zip/Compress/LZMA/LZMARegister.cpp
misc/libphysfs/lzma/CPP/7zip/Compress/LZMA/StdAfx.cpp
misc/libphysfs/lzma/CPP/7zip/Compress/LZMA/StdAfx.h
misc/libphysfs/lzma/CPP/7zip/Compress/LZMA_Alone/AloneLZMA.dsp
misc/libphysfs/lzma/CPP/7zip/Compress/LZMA_Alone/AloneLZMA.dsw
misc/libphysfs/lzma/CPP/7zip/Compress/LZMA_Alone/LzmaAlone.cpp
misc/libphysfs/lzma/CPP/7zip/Compress/LZMA_Alone/LzmaBench.cpp
misc/libphysfs/lzma/CPP/7zip/Compress/LZMA_Alone/LzmaBench.h
misc/libphysfs/lzma/CPP/7zip/Compress/LZMA_Alone/LzmaBenchCon.cpp
misc/libphysfs/lzma/CPP/7zip/Compress/LZMA_Alone/LzmaBenchCon.h
misc/libphysfs/lzma/CPP/7zip/Compress/LZMA_Alone/LzmaRam.cpp
misc/libphysfs/lzma/CPP/7zip/Compress/LZMA_Alone/LzmaRam.h
misc/libphysfs/lzma/CPP/7zip/Compress/LZMA_Alone/LzmaRamDecode.c
misc/libphysfs/lzma/CPP/7zip/Compress/LZMA_Alone/LzmaRamDecode.h
misc/libphysfs/lzma/CPP/7zip/Compress/LZMA_Alone/StdAfx.cpp
misc/libphysfs/lzma/CPP/7zip/Compress/LZMA_Alone/StdAfx.h
misc/libphysfs/lzma/CPP/7zip/Compress/LZMA_Alone/makefile
misc/libphysfs/lzma/CPP/7zip/Compress/LZMA_Alone/makefile.gcc
misc/libphysfs/lzma/CPP/7zip/Compress/RangeCoder/RangeCoder.h
misc/libphysfs/lzma/CPP/7zip/Compress/RangeCoder/RangeCoderBit.cpp
misc/libphysfs/lzma/CPP/7zip/Compress/RangeCoder/RangeCoderBit.h
misc/libphysfs/lzma/CPP/7zip/Compress/RangeCoder/RangeCoderBitTree.h
misc/libphysfs/lzma/CPP/7zip/Compress/RangeCoder/RangeCoderOpt.h
misc/libphysfs/lzma/CPP/7zip/Compress/RangeCoder/StdAfx.h
misc/libphysfs/lzma/CPP/7zip/ICoder.h
misc/libphysfs/lzma/CPP/7zip/IDecl.h
misc/libphysfs/lzma/CPP/7zip/IPassword.h
misc/libphysfs/lzma/CPP/7zip/IProgress.h
misc/libphysfs/lzma/CPP/7zip/IStream.h
misc/libphysfs/lzma/CPP/7zip/MyVersion.h
misc/libphysfs/lzma/CPP/7zip/MyVersionInfo.rc
misc/libphysfs/lzma/CPP/7zip/PropID.h
misc/libphysfs/lzma/CPP/7zip/UI/Client7z/Client7z.cpp
misc/libphysfs/lzma/CPP/7zip/UI/Client7z/Client7z.dsp
misc/libphysfs/lzma/CPP/7zip/UI/Client7z/Client7z.dsw
misc/libphysfs/lzma/CPP/7zip/UI/Client7z/StdAfx.cpp
misc/libphysfs/lzma/CPP/7zip/UI/Client7z/StdAfx.h
misc/libphysfs/lzma/CPP/7zip/UI/Client7z/makefile
misc/libphysfs/lzma/CPP/7zip/UI/Common/ArchiveCommandLine.cpp
misc/libphysfs/lzma/CPP/7zip/UI/Common/ArchiveCommandLine.h
misc/libphysfs/lzma/CPP/7zip/UI/Common/ArchiveExtractCallback.cpp
misc/libphysfs/lzma/CPP/7zip/UI/Common/ArchiveExtractCallback.h
misc/libphysfs/lzma/CPP/7zip/UI/Common/ArchiveName.cpp
misc/libphysfs/lzma/CPP/7zip/UI/Common/ArchiveName.h
misc/libphysfs/lzma/CPP/7zip/UI/Common/ArchiveOpenCallback.cpp
misc/libphysfs/lzma/CPP/7zip/UI/Common/ArchiveOpenCallback.h
misc/libphysfs/lzma/CPP/7zip/UI/Common/DefaultName.cpp
misc/libphysfs/lzma/CPP/7zip/UI/Common/DefaultName.h
misc/libphysfs/lzma/CPP/7zip/UI/Common/DirItem.h
misc/libphysfs/lzma/CPP/7zip/UI/Common/EnumDirItems.cpp
misc/libphysfs/lzma/CPP/7zip/UI/Common/EnumDirItems.h
misc/libphysfs/lzma/CPP/7zip/UI/Common/ExitCode.h
misc/libphysfs/lzma/CPP/7zip/UI/Common/Extract.cpp
misc/libphysfs/lzma/CPP/7zip/UI/Common/Extract.h
misc/libphysfs/lzma/CPP/7zip/UI/Common/ExtractMode.h
misc/libphysfs/lzma/CPP/7zip/UI/Common/ExtractingFilePath.cpp
misc/libphysfs/lzma/CPP/7zip/UI/Common/ExtractingFilePath.h
misc/libphysfs/lzma/CPP/7zip/UI/Common/IFileExtractCallback.h
misc/libphysfs/lzma/CPP/7zip/UI/Common/LoadCodecs.cpp
misc/libphysfs/lzma/CPP/7zip/UI/Common/LoadCodecs.h
misc/libphysfs/lzma/CPP/7zip/UI/Common/OpenArchive.cpp
misc/libphysfs/lzma/CPP/7zip/UI/Common/OpenArchive.h
misc/libphysfs/lzma/CPP/7zip/UI/Common/PropIDUtils.cpp
misc/libphysfs/lzma/CPP/7zip/UI/Common/PropIDUtils.h
misc/libphysfs/lzma/CPP/7zip/UI/Common/Property.h
misc/libphysfs/lzma/CPP/7zip/UI/Common/SetProperties.cpp
misc/libphysfs/lzma/CPP/7zip/UI/Common/SetProperties.h
misc/libphysfs/lzma/CPP/7zip/UI/Common/SortUtils.cpp
misc/libphysfs/lzma/CPP/7zip/UI/Common/SortUtils.h
misc/libphysfs/lzma/CPP/7zip/UI/Common/TempFiles.cpp
misc/libphysfs/lzma/CPP/7zip/UI/Common/TempFiles.h
misc/libphysfs/lzma/CPP/7zip/UI/Common/Update.cpp
misc/libphysfs/lzma/CPP/7zip/UI/Common/Update.h
misc/libphysfs/lzma/CPP/7zip/UI/Common/UpdateAction.cpp
misc/libphysfs/lzma/CPP/7zip/UI/Common/UpdateAction.h
misc/libphysfs/lzma/CPP/7zip/UI/Common/UpdateCallback.cpp
misc/libphysfs/lzma/CPP/7zip/UI/Common/UpdateCallback.h
misc/libphysfs/lzma/CPP/7zip/UI/Common/UpdatePair.cpp
misc/libphysfs/lzma/CPP/7zip/UI/Common/UpdatePair.h
misc/libphysfs/lzma/CPP/7zip/UI/Common/UpdateProduce.cpp
misc/libphysfs/lzma/CPP/7zip/UI/Common/UpdateProduce.h
misc/libphysfs/lzma/CPP/7zip/UI/Common/WorkDir.cpp
misc/libphysfs/lzma/CPP/7zip/UI/Common/WorkDir.h
misc/libphysfs/lzma/CPP/7zip/UI/Common/ZipRegistry.h
misc/libphysfs/lzma/CPP/7zip/UI/Console/ConsoleClose.cpp
misc/libphysfs/lzma/CPP/7zip/UI/Console/ConsoleClose.h
misc/libphysfs/lzma/CPP/7zip/UI/Console/ExtractCallbackConsole.cpp
misc/libphysfs/lzma/CPP/7zip/UI/Console/ExtractCallbackConsole.h
misc/libphysfs/lzma/CPP/7zip/UI/Console/List.cpp
misc/libphysfs/lzma/CPP/7zip/UI/Console/List.h
misc/libphysfs/lzma/CPP/7zip/UI/Console/Main.cpp
misc/libphysfs/lzma/CPP/7zip/UI/Console/MainAr.cpp
misc/libphysfs/lzma/CPP/7zip/UI/Console/OpenCallbackConsole.cpp
misc/libphysfs/lzma/CPP/7zip/UI/Console/OpenCallbackConsole.h
misc/libphysfs/lzma/CPP/7zip/UI/Console/PercentPrinter.cpp
misc/libphysfs/lzma/CPP/7zip/UI/Console/PercentPrinter.h
misc/libphysfs/lzma/CPP/7zip/UI/Console/StdAfx.cpp
misc/libphysfs/lzma/CPP/7zip/UI/Console/StdAfx.h
misc/libphysfs/lzma/CPP/7zip/UI/Console/UpdateCallbackConsole.cpp
misc/libphysfs/lzma/CPP/7zip/UI/Console/UpdateCallbackConsole.h
misc/libphysfs/lzma/CPP/7zip/UI/Console/UserInputUtils.cpp
misc/libphysfs/lzma/CPP/7zip/UI/Console/UserInputUtils.h
misc/libphysfs/lzma/CPP/7zip/UI/Console/afxres.h
misc/libphysfs/lzma/CPP/Build.mak
misc/libphysfs/lzma/CPP/Common/AutoPtr.h
misc/libphysfs/lzma/CPP/Common/Buffer.h
misc/libphysfs/lzma/CPP/Common/CRC.cpp
misc/libphysfs/lzma/CPP/Common/C_FileIO.cpp
misc/libphysfs/lzma/CPP/Common/C_FileIO.h
misc/libphysfs/lzma/CPP/Common/ComTry.h
misc/libphysfs/lzma/CPP/Common/CommandLineParser.cpp
misc/libphysfs/lzma/CPP/Common/CommandLineParser.h
misc/libphysfs/lzma/CPP/Common/Defs.h
misc/libphysfs/lzma/CPP/Common/DynamicBuffer.h
misc/libphysfs/lzma/CPP/Common/IntToString.cpp
misc/libphysfs/lzma/CPP/Common/IntToString.h
misc/libphysfs/lzma/CPP/Common/ListFileUtils.cpp
misc/libphysfs/lzma/CPP/Common/ListFileUtils.h
misc/libphysfs/lzma/CPP/Common/MyCom.h
misc/libphysfs/lzma/CPP/Common/MyException.h
misc/libphysfs/lzma/CPP/Common/MyGuidDef.h
misc/libphysfs/lzma/CPP/Common/MyInitGuid.h
misc/libphysfs/lzma/CPP/Common/MyString.cpp
misc/libphysfs/lzma/CPP/Common/MyString.h
misc/libphysfs/lzma/CPP/Common/MyUnknown.h
misc/libphysfs/lzma/CPP/Common/MyVector.cpp
misc/libphysfs/lzma/CPP/Common/MyVector.h
misc/libphysfs/lzma/CPP/Common/MyWindows.h
misc/libphysfs/lzma/CPP/Common/NewHandler.cpp
misc/libphysfs/lzma/CPP/Common/NewHandler.h
misc/libphysfs/lzma/CPP/Common/StdAfx.h
misc/libphysfs/lzma/CPP/Common/StdInStream.cpp
misc/libphysfs/lzma/CPP/Common/StdInStream.h
misc/libphysfs/lzma/CPP/Common/StdOutStream.cpp
misc/libphysfs/lzma/CPP/Common/StdOutStream.h
misc/libphysfs/lzma/CPP/Common/StringConvert.cpp
misc/libphysfs/lzma/CPP/Common/StringConvert.h
misc/libphysfs/lzma/CPP/Common/StringToInt.cpp
misc/libphysfs/lzma/CPP/Common/StringToInt.h
misc/libphysfs/lzma/CPP/Common/Types.h
misc/libphysfs/lzma/CPP/Common/UTFConvert.cpp
misc/libphysfs/lzma/CPP/Common/UTFConvert.h
misc/libphysfs/lzma/CPP/Common/Wildcard.cpp
misc/libphysfs/lzma/CPP/Common/Wildcard.h
misc/libphysfs/lzma/CPP/Windows/DLL.cpp
misc/libphysfs/lzma/CPP/Windows/DLL.h
misc/libphysfs/lzma/CPP/Windows/Defs.h
misc/libphysfs/lzma/CPP/Windows/Error.cpp
misc/libphysfs/lzma/CPP/Windows/Error.h
misc/libphysfs/lzma/CPP/Windows/FileDir.cpp
misc/libphysfs/lzma/CPP/Windows/FileDir.h
misc/libphysfs/lzma/CPP/Windows/FileFind.cpp
misc/libphysfs/lzma/CPP/Windows/FileFind.h
misc/libphysfs/lzma/CPP/Windows/FileIO.cpp
misc/libphysfs/lzma/CPP/Windows/FileIO.h
misc/libphysfs/lzma/CPP/Windows/FileMapping.cpp
misc/libphysfs/lzma/CPP/Windows/FileMapping.h
misc/libphysfs/lzma/CPP/Windows/FileName.cpp
misc/libphysfs/lzma/CPP/Windows/FileName.h
misc/libphysfs/lzma/CPP/Windows/Handle.h
misc/libphysfs/lzma/CPP/Windows/MemoryLock.cpp
misc/libphysfs/lzma/CPP/Windows/MemoryLock.h
misc/libphysfs/lzma/CPP/Windows/PropVariant.cpp
misc/libphysfs/lzma/CPP/Windows/PropVariant.h
misc/libphysfs/lzma/CPP/Windows/PropVariantConversions.cpp
misc/libphysfs/lzma/CPP/Windows/PropVariantConversions.h
misc/libphysfs/lzma/CPP/Windows/StdAfx.h
misc/libphysfs/lzma/CPP/Windows/Synchronization.cpp
misc/libphysfs/lzma/CPP/Windows/Synchronization.h
misc/libphysfs/lzma/CPP/Windows/System.cpp
misc/libphysfs/lzma/CPP/Windows/System.h
misc/libphysfs/lzma/CPP/Windows/Thread.h
misc/libphysfs/lzma/CPP/Windows/Time.h
misc/libphysfs/lzma/CS/7zip/Common/CRC.cs
misc/libphysfs/lzma/CS/7zip/Common/CommandLineParser.cs
misc/libphysfs/lzma/CS/7zip/Common/InBuffer.cs
misc/libphysfs/lzma/CS/7zip/Common/OutBuffer.cs
misc/libphysfs/lzma/CS/7zip/Compress/LZ/IMatchFinder.cs
misc/libphysfs/lzma/CS/7zip/Compress/LZ/LzBinTree.cs
misc/libphysfs/lzma/CS/7zip/Compress/LZ/LzInWindow.cs
misc/libphysfs/lzma/CS/7zip/Compress/LZ/LzOutWindow.cs
misc/libphysfs/lzma/CS/7zip/Compress/LZMA/LzmaBase.cs
misc/libphysfs/lzma/CS/7zip/Compress/LZMA/LzmaDecoder.cs
misc/libphysfs/lzma/CS/7zip/Compress/LZMA/LzmaEncoder.cs
misc/libphysfs/lzma/CS/7zip/Compress/LzmaAlone/LzmaAlone.cs
misc/libphysfs/lzma/CS/7zip/Compress/LzmaAlone/LzmaAlone.csproj
misc/libphysfs/lzma/CS/7zip/Compress/LzmaAlone/LzmaAlone.sln
misc/libphysfs/lzma/CS/7zip/Compress/LzmaAlone/LzmaBench.cs
misc/libphysfs/lzma/CS/7zip/Compress/LzmaAlone/Properties/AssemblyInfo.cs
misc/libphysfs/lzma/CS/7zip/Compress/LzmaAlone/Properties/Resources.cs
misc/libphysfs/lzma/CS/7zip/Compress/LzmaAlone/Properties/Settings.cs
misc/libphysfs/lzma/CS/7zip/Compress/RangeCoder/RangeCoder.cs
misc/libphysfs/lzma/CS/7zip/Compress/RangeCoder/RangeCoderBit.cs
misc/libphysfs/lzma/CS/7zip/Compress/RangeCoder/RangeCoderBitTree.cs
misc/libphysfs/lzma/CS/7zip/ICoder.cs
misc/libphysfs/lzma/Java/SevenZip/CRC.java
misc/libphysfs/lzma/Java/SevenZip/Compression/LZ/BinTree.java
misc/libphysfs/lzma/Java/SevenZip/Compression/LZ/InWindow.java
misc/libphysfs/lzma/Java/SevenZip/Compression/LZ/OutWindow.java
misc/libphysfs/lzma/Java/SevenZip/Compression/LZMA/Base.java
misc/libphysfs/lzma/Java/SevenZip/Compression/LZMA/Decoder.java
misc/libphysfs/lzma/Java/SevenZip/Compression/LZMA/Encoder.java
misc/libphysfs/lzma/Java/SevenZip/Compression/RangeCoder/BitTreeDecoder.java
misc/libphysfs/lzma/Java/SevenZip/Compression/RangeCoder/BitTreeEncoder.java
misc/libphysfs/lzma/Java/SevenZip/Compression/RangeCoder/Decoder.java
misc/libphysfs/lzma/Java/SevenZip/Compression/RangeCoder/Encoder.java
misc/libphysfs/lzma/Java/SevenZip/ICodeProgress.java
misc/libphysfs/lzma/Java/SevenZip/LzmaAlone.java
misc/libphysfs/lzma/Java/SevenZip/LzmaBench.java
misc/libphysfs/lzma/LGPL.txt
misc/libphysfs/lzma/Methods.txt
misc/libphysfs/lzma/history.txt
misc/libphysfs/lzma/lzma.txt
misc/libphysfs/physfs.c
misc/libphysfs/physfs.h
misc/libphysfs/physfs_byteorder.c
misc/libphysfs/physfs_casefolding.h
misc/libphysfs/physfs_internal.h
misc/libphysfs/physfs_miniz.h
misc/libphysfs/physfs_platforms.h
misc/libphysfs/physfs_unicode.c
misc/libphysfs/platform_beos.cpp
misc/libphysfs/platform_macosx.c
misc/libphysfs/platform_posix.c
misc/libphysfs/platform_unix.c
misc/libphysfs/platform_windows.c
misc/libphysfs/platform_winrt.cpp
misc/winutils/include/SDL.h
misc/winutils/include/SDL_active.h
misc/winutils/include/SDL_audio.h
misc/winutils/include/SDL_byteorder.h
misc/winutils/include/SDL_cdrom.h
misc/winutils/include/SDL_config.h
misc/winutils/include/SDL_config_win32.h
misc/winutils/include/SDL_copying.h
misc/winutils/include/SDL_cpuinfo.h
misc/winutils/include/SDL_endian.h
misc/winutils/include/SDL_error.h
misc/winutils/include/SDL_events.h
misc/winutils/include/SDL_getenv.h
misc/winutils/include/SDL_joystick.h
misc/winutils/include/SDL_keyboard.h
misc/winutils/include/SDL_keysym.h
misc/winutils/include/SDL_loadso.h
misc/winutils/include/SDL_main.h
misc/winutils/include/SDL_mixer.h
misc/winutils/include/SDL_mouse.h
misc/winutils/include/SDL_mutex.h
misc/winutils/include/SDL_name.h
misc/winutils/include/SDL_net.h
misc/winutils/include/SDL_opengl.h
misc/winutils/include/SDL_platform.h
misc/winutils/include/SDL_quit.h
misc/winutils/include/SDL_rwops.h
misc/winutils/include/SDL_stdinc.h
misc/winutils/include/SDL_syswm.h
misc/winutils/include/SDL_thread.h
misc/winutils/include/SDL_timer.h
misc/winutils/include/SDL_types.h
misc/winutils/include/SDL_version.h
misc/winutils/include/SDL_video.h
misc/winutils/include/begin_code.h
misc/winutils/include/close_code.h
misc/winutils/include/png.h
misc/winutils/include/pngconf.h
misc/winutils/include/zconf.h
misc/winutils/include/zlib.h
misc/winutils/lib/libSDL.dll.a
misc/winutils/lib/libSDL_image.dll.a
misc/winutils/lib/libSDL_mixer.dll.a
misc/winutils/lib/libSDL_net.dll.a
misc/winutils/lib/libSDLmain.a
project_files/HedgewarsMobile/Default-568h@2x.png
project_files/HedgewarsMobile/Locale/Bulgarian.lproj/About.strings
project_files/HedgewarsMobile/Locale/Bulgarian.lproj/Localizable.strings
project_files/HedgewarsMobile/Locale/Bulgarian.lproj/Scheme.strings
project_files/HedgewarsMobile/Locale/Danish.lproj/About.strings
project_files/HedgewarsMobile/Locale/Danish.lproj/Localizable.strings
project_files/HedgewarsMobile/Locale/Danish.lproj/Scheme.strings
project_files/HedgewarsMobile/Locale/English.lproj/About.strings
project_files/HedgewarsMobile/Locale/English.lproj/Localizable.strings
project_files/HedgewarsMobile/Locale/English.lproj/Scheme.strings
project_files/HedgewarsMobile/Locale/French.lproj/About.strings
project_files/HedgewarsMobile/Locale/French.lproj/Localizable.strings
project_files/HedgewarsMobile/Locale/French.lproj/Scheme.strings
project_files/HedgewarsMobile/Locale/German.lproj/About.strings
project_files/HedgewarsMobile/Locale/German.lproj/Localizable.strings
project_files/HedgewarsMobile/Locale/German.lproj/Scheme.strings
project_files/HedgewarsMobile/Locale/Italian.lproj/About.strings
project_files/HedgewarsMobile/Locale/Italian.lproj/Localizable.strings
project_files/HedgewarsMobile/Locale/Italian.lproj/Scheme.strings
project_files/HedgewarsMobile/Locale/Japanese.lproj/About.strings
project_files/HedgewarsMobile/Locale/Japanese.lproj/Localizable.strings
project_files/HedgewarsMobile/Locale/Japanese.lproj/Scheme.strings
project_files/HedgewarsMobile/Locale/Polish.lproj/About.strings
project_files/HedgewarsMobile/Locale/Polish.lproj/Localizable.strings
project_files/HedgewarsMobile/Locale/Polish.lproj/Scheme.strings
project_files/HedgewarsMobile/Locale/Portuguese.lproj/About.strings
project_files/HedgewarsMobile/Locale/Portuguese.lproj/Localizable.strings
project_files/HedgewarsMobile/Locale/Portuguese.lproj/Scheme.strings
project_files/HedgewarsMobile/Locale/Romanian.lproj/About.strings
project_files/HedgewarsMobile/Locale/Romanian.lproj/Localizable.strings
project_files/HedgewarsMobile/Locale/Romanian.lproj/Scheme.strings
project_files/HedgewarsMobile/Locale/Spanish.lproj/About.strings
project_files/HedgewarsMobile/Locale/Spanish.lproj/Localizable.strings
project_files/HedgewarsMobile/Locale/Spanish.lproj/Scheme.strings
project_files/HedgewarsMobile/Resources/Icons/Default-ipad-Landscape.png
project_files/HedgewarsMobile/Resources/Icons/Default.png
project_files/HedgewarsMobile/Resources/Icons/Default@2x.png
project_files/HedgewarsMobile/Resources/Icons/Icon-60@2x.png
project_files/HedgewarsMobile/Resources/Icons/Icon-72.png
project_files/HedgewarsMobile/Resources/Icons/Icon-76.png
project_files/HedgewarsMobile/Resources/Icons/Icon-76@2x.png
project_files/HedgewarsMobile/Resources/Icons/Icon-Small-50.png
project_files/HedgewarsMobile/Resources/Icons/Icon-Small.png
project_files/HedgewarsMobile/Resources/Icons/Icon-Small@2x.png
project_files/HedgewarsMobile/Resources/Icons/Icon.png
project_files/HedgewarsMobile/Resources/Icons/Icon@2x.png
project_files/HedgewarsMobile/Resources/Icons/iTunesArtwork.png
share/hedgewars/Data/Graphics/Hats/Luigi.svg
share/hedgewars/Data/Graphics/Hats/Mario.svg
share/hedgewars/Data/Graphics/Hats/PrincessPeach.svg
share/hedgewars/Data/Graphics/Hats/Toad.svg
share/hedgewars/Data/Graphics/Hats/Wario.svg
share/hedgewars/Data/Graphics/Hats/pikachu.svg
share/hedgewars/Data/Graphics/slider.png
share/hedgewars/Data/Locale/ar.txt
share/hedgewars/Data/Locale/hedgewars_ar.ts
share/hedgewars/Data/Sounds/voices/British/PoisonCough.ogg
share/hedgewars/Data/Sounds/voices/British/PoisonMoan.ogg
share/hedgewars/Data/Sounds/voices/Classic/PoisonCough.ogg
share/hedgewars/Data/Sounds/voices/Classic/PoisonMoan.ogg
share/hedgewars/Data/Sounds/voices/Default_es/Coward.ogg
share/hedgewars/Data/Sounds/voices/Default_uk/PoisonCough.ogg
share/hedgewars/Data/Sounds/voices/Default_uk/PoisonMoan.ogg
share/hedgewars/Data/Sounds/voices/Mobster/PoisonCough.ogg
share/hedgewars/Data/Sounds/voices/Mobster/PoisonMoan.ogg
share/hedgewars/Data/Sounds/voices/Pirate/PoisonCough.ogg
share/hedgewars/Data/Sounds/voices/Pirate/PoisonMoan.ogg
share/hedgewars/Data/Sounds/voices/Robot/PoisonCough.ogg
share/hedgewars/Data/Sounds/voices/Robot/PoisonMoan.ogg
share/hedgewars/Data/Sounds/voices/Russian/PoisonCough.ogg
share/hedgewars/Data/Sounds/voices/Russian/PoisonMoan.ogg
share/hedgewars/Data/Sounds/voices/Singer/PoisonCough.ogg
share/hedgewars/Data/Sounds/voices/Singer/PoisonMoan.ogg
share/hedgewars/Data/Sounds/voices/Surfer/PoisonCough.ogg
share/hedgewars/Data/Sounds/voices/Surfer/PoisonMoan.ogg
share/hedgewars/Data/Themes/Hoggywood/SkyL.png
share/hedgewars/Data/Themes/Hoggywood/SkyR.png
tests/lua/staticmines.lua
tools/build_windows.bat
tools/drawMapTest/drawMapTest.pro
tools/drawMapTest/drawmapscene.cpp
tools/drawMapTest/drawmapscene.h
tools/drawMapTest/drawmapwidget.cpp
tools/drawMapTest/drawmapwidget.h
tools/drawMapTest/main.cpp
tools/drawMapTest/mainwindow.cpp
tools/drawMapTest/mainwindow.h
tools/drawMapTest/mainwindow.ui
tools/drawMapTest/qaspectratiolayout.cpp
tools/drawMapTest/qaspectratiolayout.h
tools/templates/main.cpp
tools/templates/mainform.cpp
tools/templates/mainform.h
tools/templates/pixlabel.cpp
tools/templates/pixlabel.h
tools/templates/templates.pro
tools/w32DownloadUnzip.vbs
--- a/ChangeLog.txt	Sun Jul 28 00:36:09 2019 +0200
+++ b/ChangeLog.txt	Wed Jul 31 23:14:27 2019 +0200
@@ -1,5 +1,10 @@
 + features
 * bugfixes
+======================= ??? ========================
+User Interface:
+ + In-Game chat size can now be adjusted. Hold Ctrl and press -, + or = while in chat input. Hold shift for finer control.
+ + The intial in-game chat size can be configured in the Frontend's "advanced" settings tab.
+
 ============== 1.0.0-dev (unreleased) ==============
 Highlights:
  + Campaigns now respect your team identity instead of overwriting it
--- a/QTfrontend/game.cpp	Sun Jul 28 00:36:09 2019 +0200
+++ b/QTfrontend/game.cpp	Wed Jul 31 23:14:27 2019 +0200
@@ -644,6 +644,8 @@
         arguments << "--translucent-tags";
     if (!config->isHolidaySillinessEnabled())
         arguments << "--no-holiday-silliness";
+    arguments << "--chat-size";
+    arguments << QString::number(config->chatSize());
 
     return arguments;
 }
--- a/QTfrontend/gameuiconfig.cpp	Sun Jul 28 00:36:09 2019 +0200
+++ b/QTfrontend/gameuiconfig.cpp	Wed Jul 31 23:14:27 2019 +0200
@@ -177,6 +177,8 @@
             if (m_binds[i].strbind.isEmpty() || m_binds[i].strbind == "default") m_binds[i].strbind = cbinds[i].strbind;
         }
     }
+
+    Form->ui.pageOptions->sbChatSize->setValue(value("chat/size", 100).toInt());
 }
 
 void GameUIConfig::reloadVideosValues(void)
@@ -325,6 +327,8 @@
             setValue(QString("colors/color%1").arg(i), model->item(i)->data().value<QColor>().name());
     }
 
+    setValue("chat/size", Form->ui.pageOptions->sbChatSize->value());
+
     sync();
 }
 
@@ -630,6 +634,11 @@
     }
 }
 
+int GameUIConfig::chatSize()
+{
+    return Form->ui.pageOptions->sbChatSize->value();
+}
+
 quint8 GameUIConfig::volume()
 {
     return Form->ui.pageOptions->SLVolume->value() * 128 / 100;
--- a/QTfrontend/gameuiconfig.h	Sun Jul 28 00:36:09 2019 +0200
+++ b/QTfrontend/gameuiconfig.h	Wed Jul 31 23:14:27 2019 +0200
@@ -51,6 +51,7 @@
         bool isShowFPSEnabled();
         bool isAltDamageEnabled();
         bool appendDateTimeToRecordName();
+        int chatSize();
         quint8 volume();
         quint8 timerInterval();
         QString netNick();
--- a/QTfrontend/net/recorder.cpp	Sun Jul 28 00:36:09 2019 +0200
+++ b/QTfrontend/net/recorder.cpp	Wed Jul 31 23:14:27 2019 +0200
@@ -156,6 +156,8 @@
         arguments << config->audioCodec();
     else
         arguments << "no";
+    arguments << "--chat-size";
+    arguments << QString::number(config->chatSize());
 
     return arguments;
 }
--- a/QTfrontend/ui/page/pageoptions.cpp	Sun Jul 28 00:36:09 2019 +0200
+++ b/QTfrontend/ui/page/pageoptions.cpp	Wed Jul 31 23:14:27 2019 +0200
@@ -713,6 +713,22 @@
             BtnAssociateFiles->setText(QPushButton::tr("Associate file extensions"));
             BtnAssociateFiles->setVisible(!custom_data && !custom_config);
             groupMisc->layout()->addWidget(BtnAssociateFiles, 4, 0, 1, 2);
+
+            // Divider
+
+            groupMisc->addDivider(); // row 5
+
+            QLabel *labelChatSize = new QLabel(groupMisc);
+            labelChatSize->setText(QLabel::tr("Initial in-game chat size (%)"));
+            groupMisc->layout()->addWidget(labelChatSize, 6, 0);
+
+            // Chat size adjustment
+            sbChatSize = new QSpinBox(groupMisc);
+            sbChatSize->setMinimum(80);
+            sbChatSize->setMaximum(2000);
+            sbChatSize->setValue(100);
+            groupMisc->layout()->addWidget(sbChatSize, 6, 1);
+
         }
 
 #ifdef __APPLE__
--- a/QTfrontend/ui/page/pageoptions.h	Sun Jul 28 00:36:09 2019 +0200
+++ b/QTfrontend/ui/page/pageoptions.h	Wed Jul 31 23:14:27 2019 +0200
@@ -106,6 +106,7 @@
 
         FPSEdit *fpsedit;
         QLabel *labelNN;
+        QSpinBox * sbChatSize;
         QSlider *SLVolume;
         QLabel *lblVolumeLevel;
         QLineEdit *editNetNick;
--- a/hedgewars/ArgParsers.pas	Sun Jul 28 00:36:09 2019 +0200
+++ b/hedgewars/ArgParsers.pas	Wed Jul 31 23:14:27 2019 +0200
@@ -78,26 +78,31 @@
     WriteLn(stdout, 'Usage: hwengine <path to demo file> [options]');
     WriteLn(stdout, '');
     WriteLn(stdout, 'where [options] can be any of the following:');
-    WriteLn(stdout, '');
-    WriteLn(stdout, 'File locations:');
-    WriteLn(stdout, '  --prefix <path to folder>: Set the path to the system game data folder');
-    WriteLn(stdout, '  --user-prefix <path to folder>: Set the path to the custom data folder to find game content');
-    WriteLn(stdout, '  --locale <name of file>: Set the game language (en.txt for example)');
-    WriteLn(stdout, '');
-    WriteLn(stdout, 'Graphics:');
-    WriteLn(stdout, '  --width <width in pixels>: Set game window width');
-    WriteLn(stdout, '  --height <height in pixels>: Set game window height');
-    WriteLn(stdout, '  --fullscreen: Start in fullscreen');
-    WriteLn(stdout, '  --fullscreen-width <width in pixels>: Set fullscreen width');
-    WriteLn(stdout, '  --fullscreen-height <height in pixels>: Set fullscreen height');
-    WriteLn(stdout, '  --low-quality: Lowers the game quality');
-    WriteLn(stdout, '  --zoom <percent>: Start with custom zoom level');
-    WriteLn(stdout, '');
-    WriteLn(stdout, 'Audio:');
-    WriteLn(stdout, '  --volume <sound level>: Set volume between 0 and 100');
-    WriteLn(stdout, '  --nomusic: Disable music');
-    WriteLn(stdout, '  --nosound: Disable sound effects');
-    WriteLn(stdout, '  --nodampen: Don''t dampen sound volume when game application loses focus');
+    WriteLn(stdout, ' --prefix [path to folder]');
+    WriteLn(stdout, ' --user-prefix [path to folder]');
+    WriteLn(stdout, ' --locale [name of language file]');
+    WriteLn(stdout, ' --nick [string]');
+    WriteLn(stdout, ' --fullscreen-width [fullscreen width in pixels]');
+    WriteLn(stdout, ' --fullscreen-height [fullscreen height in pixels]');
+    WriteLn(stdout, ' --width [window width in pixels]');
+    WriteLn(stdout, ' --height [window height in pixels]');
+    WriteLn(stdout, ' --volume [sound level]');
+    WriteLn(stdout, ' --frame-interval [milliseconds]');
+    Writeln(stdout, ' --stereo [value]');
+    WriteLn(stdout, ' --raw-quality [flags]');
+    WriteLn(stdout, ' --low-quality');
+    WriteLn(stdout, ' --nomusic');
+    WriteLn(stdout, ' --nosound');
+    WriteLn(stdout, ' --fullscreen');
+    WriteLn(stdout, ' --showfps');
+    WriteLn(stdout, ' --altdmg');
+    WriteLn(stdout, ' --no-teamtag');
+    WriteLn(stdout, ' --no-hogtag');
+    WriteLn(stdout, ' --no-healthtag');
+    WriteLn(stdout, ' --translucent-tags');
+    WriteLn(stdout, ' --stats-only');
+    WriteLn(stdout, ' --chat-size [default chat size in percent]');
+    WriteLn(stdout, ' --help');
     WriteLn(stdout, '');
     WriteLn(stdout, 'HUD:');
     WriteLn(stdout, '  --altdmg: Show alternative damage');
@@ -105,6 +110,7 @@
     WriteLn(stdout, '  --no-hogtag: Disable hedgehog name tags');
     WriteLn(stdout, '  --no-healthtag: Disable hedgehog health tags');
     WriteLn(stdout, '  --translucent-tags: Enable translucent name and health tags');
+    WriteLn(stdout, '  --chat-size [default chat size in percent]');
     WriteLn(stdout, '  --showfps: Show frames per second');
     WriteLn(stdout, '');
     WriteLn(stdout, 'Miscellaneous:');
@@ -256,15 +262,15 @@
       audioarray: array [0..2] of string = ('--volume','--nomusic','--nosound');
       otherarray: array [0..2] of string = ('--locale','--fullscreen','--showfps');
       mediaarray: array [0..9] of string = ('--fullscreen-width', '--fullscreen-height', '--width', '--height', '--depth', '--volume','--nomusic','--nosound','--locale','--fullscreen');
-      allarray: array [0..18] of string = ('--fullscreen-width','--fullscreen-height', '--width', '--height', '--depth','--volume','--nomusic','--nosound','--nodampen','--locale','--fullscreen','--showfps','--altdmg','--frame-interval','--low-quality','--no-teamtag','--no-hogtag','--no-healthtag','--translucent-tags');
-      reallyAll: array[0..39] of shortstring = (
+      allarray: array [0..19] of string = ('--fullscreen-width','--fullscreen-height', '--width', '--height', '--depth','--volume','--nomusic','--nosound','--nodampen','--locale','--fullscreen','--showfps','--altdmg','--frame-interval','--low-quality','--no-teamtag','--no-hogtag','--no-healthtag','--translucent-tags', '--chat-size');
+      reallyAll: array[0..40] of shortstring = (
                 '--prefix', '--user-prefix', '--locale', '--fullscreen-width', '--fullscreen-height', '--width',
                 '--height', '--frame-interval', '--volume','--nomusic', '--nosound', '--nodampen',
                 '--fullscreen', '--showfps', '--altdmg', '--low-quality', '--raw-quality', '--stereo', '--nick',
                 '--zoom',
   {deprecated}  '--depth', '--set-video', '--set-audio', '--set-other', '--set-multimedia', '--set-everything',
   {internal}    '--internal', '--port', '--recorder', '--landpreview',
-  {misc}        '--stats-only', '--gci', '--help','--protocol', '--no-teamtag','--no-hogtag','--no-healthtag','--translucent-tags','--lua-test','--no-holiday-silliness');
+  {misc}        '--stats-only', '--gci', '--help','--protocol', '--no-teamtag','--no-hogtag','--no-healthtag','--translucent-tags','--lua-test','--no-holiday-silliness','--chat-size');
 var cmdIndex: byte;
 begin
     parseParameter:= false;
@@ -318,6 +324,7 @@
         {--translucent-tags}    37 : cTagsMask := cTagsMask or htTransparent;
         {--lua-test}            38 : begin cTestLua := true; SetSound(false); cScriptName := getstringParameter(arg, paramIndex, parseParameter); WriteLn(stdout, 'Lua test file specified: ' + cScriptName);end;
         {--no-holiday-silliness} 39 : cHolidaySilliness:= false;
+        {--chat-size}           40 : cDefaultChatScale := 1.0 * getLongIntParameter(arg, paramIndex, parseParameter) / 100;
     else
         begin
         //Assume the first "non parameter" is the demo file, anything else is invalid
--- a/hedgewars/uChat.pas	Sun Jul 28 00:36:09 2019 +0200
+++ b/hedgewars/uChat.pas	Wed Jul 31 23:14:27 2019 +0200
@@ -35,7 +35,7 @@
 procedure TextInput(var event: TSDL_TextInputEvent);
 
 implementation
-uses uInputHandler, uTypes, uVariables, uCommands, uUtils, uTextures, uRender, uIO, uScript, uRenderUtils, uLocale
+uses uConsts, uInputHandler, uTypes, uVariables, uCommands, uUtils, uTextures, uRender, uIO, uScript, uRenderUtils, uStore, uLocale
      {$IFDEF USE_VIDEO_RECORDING}, uVideoRec{$ENDIF};
 
 const MaxStrIndex = 27;
@@ -94,8 +94,14 @@
             );
 
 
-const Padding  = 2;
-      ClHeight = 2 * Padding + 16; // font height
+const PaddingFactor = (1/6); // relative to font size
+
+var Padding, ClHeight: integer;
+    LastChatScaleValue, LastUIScaleValue: real;
+    SkipNextInput: boolean;
+
+procedure UpdateInputLinePrefix(); forward;
+procedure UpdateCursorCoords(); forward;
 
 // relevant for UTF-8 handling
 function IsFirstCharByte(c: char): boolean; inline;
@@ -114,26 +120,105 @@
     selectedPos:= -1;
 end;
 
+procedure AdjustToUIScale();
+var fntSize: integer;
+begin
+    // don't do anything if no change
+    if (ChatScaleValue = LastChatScaleValue) and (UIScaleValue = LastUIScaleValue) then
+        exit;
+
+    LastChatScaleValue:= ChatScaleValue;
+    LastUIScaleValue:= UIScaleValue;
+
+    // determine font size - note: +0.001 to because I don't trust float inaccuracy combined with trunc
+    fntSize:= max(1, trunc(UIScaleValue * ChatScaleValue * cBaseChatFontHeight + 0.001));
+
+    if Fontz[fntChat].Height <> fntSize then
+        begin
+        // adjust associated heights
+        Fontz[fntChat].Height:= fntSize;
+        Fontz[CJKfntChat].Height:= fntSize;
+        // reload if initialized already
+        if Fontz[fntChat].Handle <> nil then
+            LoadFont(fntChat);
+        if Fontz[CJKfntChat].Handle <> nil then
+            LoadFont(CJKfntChat);
+        end;
+
+    // adjust line height etc.
+    Padding:= max(1, trunc(PaddingFactor * fntSize + 0.1));
+    ClHeight:= 2 * Padding + fntSize;
+
+    // clear cache of already rendered lines
+    ReloadLines();
+    UpdateInputLinePrefix();
+    UpdateCursorCoords();
+end;
+
+procedure ChatSizeInc(pxprecise: boolean);
+var fntSize: integer;
+begin
+if pxprecise then
+    begin
+    fntSize:= Fontz[fntChat].Height;
+    inc(fntSize);
+    ChatScaleValue:= 1.0 * fntSize / cBaseChatFontHeight;
+    end
+else
+    ChatScaleValue:= ChatScaleValue * (1.0 + cChatScaleRelDelta);
+if ChatScaleValue > cMaxChatScaleValue then
+    ChatScaleValue:= cMaxChatScaleValue;
+AdjustToUIScale();
+end;
+
+procedure ChatSizeDec(pxprecise: boolean);
+var fntSize: integer;
+begin
+if pxprecise then
+    begin
+    fntSize:= Fontz[fntChat].Height;
+    dec(fntSize);
+    ChatScaleValue:= 1.0 * fntSize / cBaseChatFontHeight;
+    end
+else
+    ChatScaleValue:= ChatScaleValue / (1.0 + cChatScaleRelDelta);
+if ChatScaleValue < cMinChatScaleValue then
+    ChatScaleValue:= cMinChatScaleValue;
+AdjustToUIScale();
+end;
+
+procedure chatSizeReset();
+begin
+ChatScaleValue:= cDefaultChatScale;
+AdjustToUIScale();
+end;
+
+function GetChatFont(str: shortstring): THWFONT;
+begin
+    GetChatFont:= CheckCJKFont(ansistring(str), fntChat);
+end;
+
 procedure UpdateCursorCoords();
 var font: THWFont;
     str : shortstring;
     coff, soff: LongInt;
 begin
+    AdjustToUIScale();
+
     if cursorPos = selectedPos then
         ResetSelection();
 
     // calculate cursor offset
 
     str:= InputStr.s;
-    font:= CheckCJKFont(ansistring(str), fnt16);
+    font:= GetChatFont(str);
 
     // get only substring before cursor to determine length
     // SetLength(str, cursorPos); // makes pas2c unhappy
     str[0]:= char(cursorPos);
     // get render size of text
     TTF_SizeUTF8(Fontz[font].Handle, Str2PChar(str), @coff, nil);
-
-    cursorX:= 2 + coff;
+    cursorX:= Padding + coff;
 
     // calculate selection width on screen
     if selectedPos >= 0 then
@@ -171,7 +256,7 @@
 
 FreeAndNilTexture(cl.Tex);
 
-font:= CheckCJKFont(ansistring(str), fnt16);
+font:= GetChatFont(str);
 
 // get render size of text
 TTF_SizeUTF8(Fontz[font].Handle, Str2PChar(str), @cl.Width, nil);
@@ -200,7 +285,7 @@
 if strSurface <> nil then tmpSurface:= SDL_ConvertSurface(strSurface, resSurface^.format, 0);
 SDL_FreeSurface(strSurface);
 //SDL_UpperBlit(strSurface, nil, resSurface, @dstrect);
-if tmpSurface <> nil then copyToXY(tmpSurface, resSurface, Padding, Padding);
+if tmpSurface <> nil then copyToXY(tmpSurface, resSurface, Padding, 2);
 SDL_FreeSurface(tmpSurface);
 
 cl.Tex:= Surface2Tex(resSurface, false);
@@ -245,8 +330,9 @@
 procedure ReloadLines;
 var i: LongWord;
 begin
-    if InputStr.s <> '' then
-        SetLine(InputStr, InputStr.s, true);
+    // also reload empty input line (as chat size/scaling might have changed)
+    //if InputStr.s <> '' then
+    SetLine(InputStr, InputStr.s, true);
     for i:= 0 to MaxStrIndex do
         if Strs[i].s <> '' then
             begin
@@ -294,6 +380,8 @@
     selRect: TSDL_Rect;
     c: char;
 begin
+AdjustToUIScale();
+
 ChatReady:= true; // maybe move to somewhere else?
 
 if ChatHidden and (not showAll) then
@@ -329,12 +417,12 @@
         begin
         // draw cursor
         if ((RealTicks - LastKeyPressTick) and 512) < 256 then
-            DrawLineOnScreen(left + cursorX, top + 2, left + cursorX, top + ClHeight - 2, 2.0, $00, $FF, $FF, $FF);
+            DrawLineOnScreen(left + cursorX, top + Padding, left + cursorX, top + ClHeight - Padding, 2.0, $00, $FF, $FF, $FF);
         end
     else // draw selection
         begin
-        selRect.y:= top + 2;
-        selRect.h:= clHeight - 4;
+        selRect.y:= top + Padding;
+        selRect.h:= clHeight - 2 * Padding;
         if selectionDx < 0 then
             begin
             selRect.x:= left + cursorX + selectionDx;
@@ -1066,7 +1154,7 @@
             // ignore me!!!
             end;
         // TODO: figure out how to determine those keys better
-        SDL_SCANCODE_a:
+        SDL_SCANCODE_b:
             begin
             // select all
             if ctrlonly then
@@ -1102,6 +1190,33 @@
                 DeleteSelected();
                 end
             end;
+            // make chat bigger
+        SDL_SCANCODE_KP_PLUS, SDL_SCANCODE_EQUALS:
+            begin
+            if ctrl then
+                begin
+                ChatSizeInc(selMode);
+                SkipNextInput:= true;
+                end;
+            end;
+            // make chat smaller
+        SDL_SCANCODE_KP_MINUS, SDL_SCANCODE_MINUS:
+            begin
+            if ctrl then
+                begin
+                ChatSizeDec(selMode);
+                SkipNextInput:= true;
+                end;
+            end;
+            // revert chat size to default
+        SDL_SCANCODE_KP_0, SDL_SCANCODE_0:
+            begin
+            if ctrl then
+                begin
+                ChatSizeReset();
+                SkipNextInput:= true;
+                end;
+            end;
         end;
 end;
 
@@ -1110,16 +1225,25 @@
     l: byte;
     isl: integer;
 begin
+    if SkipNextInput then
+        begin
+        SkipNextInput:= false;
+        exit;
+        end;
+
     DeleteSelected();
 
+    s:= '';
     l:= 0;
     // fetch all bytes of character/input
     while event.text[l] <> #0 do
         begin
-        s[l + 1]:= event.text[l];
-        inc(l)
+        if Length(s) < 255 then
+            begin
+            s[l + 1]:= event.text[l];
+            inc(l)
+            end
         end;
-
     if l > 0 then
         begin
         isl:= Length(InputStr.s);
@@ -1235,6 +1359,10 @@
     ChatHidden:= false;
     firstDraw:= true;
 
+    LastChatScaleValue:= 0;
+    LastUIScaleValue:= 0;
+    SkipNextInput:= false;
+
     InputLinePrefix.Tex:= nil;
     UpdateInputLinePrefix();
     inputStr.s:= '';
--- a/hedgewars/uConsts.pas	Sun Jul 28 00:36:09 2019 +0200
+++ b/hedgewars/uConsts.pas	Wed Jul 31 23:14:27 2019 +0200
@@ -228,6 +228,13 @@
     // do not change this value
     cDefaultZoomLevel = 2.0; // 100% zoom
 
+    cBaseChatFontHeight = 12;
+    cChatScaleRelDelta = 0.1;
+    cMinChatScaleValue = 0.8;
+    cMaxChatScaleValue = 20.0;
+
+    cDefaultUIScaleLevel = 1.0;
+
     // game flags
     gfAny                = $FFFFFFFF; // mask for all possible gameflags
     gfOneClanMode        = $00000001; // Game does not end if there's only one clan in play. For missions
--- a/hedgewars/uStore.pas	Sun Jul 28 00:36:09 2019 +0200
+++ b/hedgewars/uStore.pas	Wed Jul 31 23:14:27 2019 +0200
@@ -33,6 +33,7 @@
 function makeHealthBarTexture(w, h, Color: Longword): PTexture;
 procedure AddProgress;
 procedure FinishProgress;
+procedure LoadFont(font: THWFont);
 function  LoadImage(const filename: shortstring; imageFlags: LongInt): PSDL_Surface;
 
 // loads an image from the games data files
@@ -362,23 +363,35 @@
             end
 end;
 
-procedure LoadFonts();
+procedure LoadFont(font: THWFont);
 var s: shortstring;
-    fi: THWFont;
+begin
+    with Fontz[font] do
+        begin
+        if Handle <> nil then
+            begin
+            TTF_CloseFont(Handle);
+            Handle:= nil;
+            end;
+        s:= cPathz[ptFonts] + '/' + Name;
+        WriteToConsole(msgLoading + s + ' (' + inttostr(Height) + 'pt)... ');
+        Handle:= TTF_OpenFontRW(rwopsOpenRead(s), true, Height);
+        if SDLCheck(Handle <> nil, 'TTF_OpenFontRW', true) then exit;
+        TTF_SetFontStyle(Handle, style);
+        WriteLnToConsole(msgOK)
+        end;
+end;
+
+procedure LoadFonts();
+var fi: THWFont;
 begin
 AddFileLog('LoadFonts();');
 
 if (not cOnlyStats) then
     for fi:= Low(THWFont) to High(THWFont) do
-        with Fontz[fi] do
-            begin
-            s:= cPathz[ptFonts] + '/' + Name;
-            WriteToConsole(msgLoading + s + ' (' + inttostr(Height) + 'pt)... ');
-            Handle:= TTF_OpenFontRW(rwopsOpenRead(s), true, Height);
-            if SDLCheck(Handle <> nil, 'TTF_OpenFontRW', true) then exit;
-            TTF_SetFontStyle(Handle, style);
-            WriteLnToConsole(msgOK)
-            end;
+        begin
+        LoadFont(fi);
+        end;
 end;
 
 procedure StoreLoad(reload: boolean);
--- a/hedgewars/uTypes.pas	Sun Jul 28 00:36:09 2019 +0200
+++ b/hedgewars/uTypes.pas	Wed Jul 31 23:14:27 2019 +0200
@@ -177,7 +177,7 @@
     // Different kind of crates that e.g. hedgehogs can pick up
     TCrateType = (HealthCrate, AmmoCrate, UtilityCrate);
 
-    THWFont = (fnt16, fntBig, fntSmall {$IFNDEF MOBILE}, CJKfnt16, CJKfntBig, CJKfntSmall{$ENDIF});
+    THWFont = (fnt16, fntBig, fntSmall, fntChat {$IFNDEF MOBILE}, CJKfnt16, CJKfntBig, CJKfntSmall, CJKfntChat{$ENDIF});
 
     TCapGroup = (capgrpGameState, capgrpAmmoinfo, capgrpVolume,
             capgrpMessage, capgrpMessage2, capgrpAmmostate);
--- a/hedgewars/uVariables.pas	Sun Jul 28 00:36:09 2019 +0200
+++ b/hedgewars/uVariables.pas	Wed Jul 31 23:14:27 2019 +0200
@@ -139,6 +139,9 @@
     zoom             : GLfloat; // current zoom
     ZoomValue        : GLfloat; // aimed zoom
     UserZoom         : GLfloat; // user-chosen initial and default zoom
+    ChatScaleValue   : real;
+    cDefaultChatScale: real;
+    UIScaleValue     : real;
 
     cWaterLine       : LongInt;
     cGearScrEdgesDist: LongInt;
@@ -261,6 +264,8 @@
 
     // for tracking the limits of the visible grid based on cScaleFactor
     ViewLeftX, ViewRightX, ViewBottomY, ViewTopY, ViewWidth, ViewHeight: LongInt;
+    // for tracking the limits of the visible UI space based on cUIScaleFactor
+    UIWidth, UIHeight: LongInt;
 
     // for debugging the view limits visually
     cViewLimitsDebug: boolean;
@@ -357,6 +362,10 @@
             (Handle: nil;
             Height: 10*HDPIScaleFactor;
             style: TTF_STYLE_NORMAL;
+            Name: 'DejaVuSans-Bold.ttf'),
+            (Handle: nil; // fntChat
+            Height: 12*HDPIScaleFactor;
+            style: TTF_STYLE_NORMAL;
             Name: 'DejaVuSans-Bold.ttf')
             {$IFNDEF MOBILE}, // remove chinese fonts for now
             (Handle: nil;
@@ -370,6 +379,10 @@
             (Handle: nil;
             Height: 10*HDPIScaleFactor;
             style: TTF_STYLE_NORMAL;
+            Name: 'wqy-zenhei.ttc'),
+            (Handle: nil; // CJKfntChat
+            Height: 12*HDPIScaleFactor;
+            style: TTF_STYLE_NORMAL;
             Name: 'wqy-zenhei.ttc')
             {$ENDIF}
             );
@@ -2590,6 +2603,7 @@
     SyncTexture,
     ConfirmTexture: PTexture;
     cScaleFactor: GLfloat;
+    cUIScaleFactor: float;
     cStereoDepth: GLfloat;
     SupportNPOTT: Boolean;
     Step: LongInt;
@@ -2714,6 +2728,8 @@
     cAudioCodec        := '';
 {$ENDIF}
 
+    cDefaultChatScale:= 1.0;
+
     cTagsMask:= htTeamName or htName or htHealth;
     cPrevTagsMask:= cTagsMask;
 end;
@@ -2920,6 +2936,16 @@
     cExplosives     := 2;
 
     GameState       := Low(TGameState);
+    zoom            := cDefaultZoomLevel;
+    ZoomValue       := cDefaultZoomLevel;
+
+    if cDefaultChatScale < cMinChatScaleValue then
+        cDefaultChatScale := cMinChatScaleValue
+    else if cDefaultChatScale > cMaxChatScaleValue then
+        cDefaultChatScale := cMaxChatScaleValue;
+    ChatScaleValue  := cDefaultChatScale;
+    UIScaleValue    := cDefaultUIScaleLevel;
+
     WeaponTooltipTex:= nil;
     cLaserSighting  := false;
     cLaserSightingSniper := false;