From ae6474344862de9e035f9c98a5e7315a16d610db Mon Sep 17 00:00:00 2001 From: frosch Date: Mon, 11 Dec 2017 19:24:46 +0000 Subject: [PATCH] (svn r27940) [1.7] -Backport from trunk: - Change: When train depots have a horizontal scrollbar, allow scrolling 1 tile beyond the longest train, so you can actually attach a wagon at the end (r27937) - Fix: When moving wagons in the depot, the drag highlight did not exactly match the length of the dragged wagon chain (r27936) - Fix: [Win32] Right mouse scrolling didn't work properly with the Windows 10 Fall Creators Update [FS#6629] (r27935) - Fix: Forest, candyfloss forest and battery farm skipped the first animation frame [FS#6639] (r27932) - Fix: Glyphs in range U+0020 to U+00FF may only be defined in orig_extra.grf, not in openttd.grf [FS#6620] (r27915) --- bin/baseset/openttd.grf | Bin 508098 -> 498506 bytes bin/baseset/orig_dos.obg | 2 +- bin/baseset/orig_dos_de.obg | 2 +- bin/baseset/orig_extra.grf | Bin 318212 -> 327856 bytes bin/baseset/orig_win.obg | 2 +- media/extra_grf/chars.nfo | 240 +------------------------- media/extra_grf/chars_orig_extra.nfo | 249 +++++++++++++++++++++++++++ media/extra_grf/orig_extra.nfo | 1 + src/depot_gui.cpp | 3 +- src/industry_cmd.cpp | 30 ++-- src/train_gui.cpp | 8 +- src/video/win32_v.cpp | 18 +- 12 files changed, 294 insertions(+), 261 deletions(-) create mode 100644 media/extra_grf/chars_orig_extra.nfo diff --git a/bin/baseset/openttd.grf b/bin/baseset/openttd.grf index 168d00fbd858c29245a6d8f029e5f9d342502cb7..85d3fc8adc6f90cb9912c0ea79d0dbee280581a5 100644 GIT binary patch delta 44 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 delta 36 scmdncDAKY`n1zMmzvxDmNsP@->g`VIjO|Y9OzlqU%-fyRS@LcI0Mxe&Bme*a diff --git a/bin/baseset/orig_win.obg b/bin/baseset/orig_win.obg index 049a3dca9b..2b7d43478d 100644 --- a/bin/baseset/orig_win.obg +++ b/bin/baseset/orig_win.obg @@ -76,7 +76,7 @@ TRGIR.GRF = 0c2484ff6be49fc63a83be6ab5c38f32 TRGCR.GRF = 3668f410c761a050b5e7095a2b14879b TRGHR.GRF = 06bf2b7a31766f048baac2ebe43457b1 TRGTR.GRF = de53650517fe661ceaa3138c6edb0eb8 -ORIG_EXTRA.GRF = 73b921a42814c47a84945b7e9add5d9f +ORIG_EXTRA.GRF = 0b10a95c0adee710ecca9c3d676be4f3 [origin] default = You can find it on your Transport Tycoon Deluxe CD-ROM. diff --git a/media/extra_grf/chars.nfo b/media/extra_grf/chars.nfo index 26db641b35..32462f8c1c 100644 --- a/media/extra_grf/chars.nfo +++ b/media/extra_grf/chars.nfo @@ -8,245 +8,7 @@ // -1 * 0 0C "Font characters by PaulC, Bilbo and Jasper Vries" -// Replace original characters - - -1 * 5 0A 01 02 41 00 - -1 sprites/chars.png 8bpp 10 10 6 12 0 -1 normal - -1 sprites/chars.png 8bpp 20 10 4 12 0 -1 normal - -1 * 5 0A 01 02 86 00 - -1 sprites/chars.png 8bpp 50 10 8 12 0 -1 normal - -1 sprites/chars.png 8bpp 70 10 9 12 0 -1 normal - -1 * 5 0A 01 01 8A 00 - -1 sprites/chars.png 8bpp 120 10 6 12 0 -1 normal - -1 * 5 0A 01 01 A0 00 - -1 sprites/chars.png 8bpp 230 10 10 12 0 -1 normal - -1 * 5 0A 01 04 A2 00 - -1 sprites/chars.png 8bpp 260 10 8 12 0 -1 normal - -1 sprites/chars.png 8bpp 290 10 8 12 0 -1 normal - -1 sprites/chars.png 8bpp 320 10 8 12 0 -1 normal - -1 sprites/chars.png 8bpp 350 10 8 12 0 -1 normal - -1 * 5 0A 01 06 A7 00 - -1 sprites/chars.png 8bpp 410 10 8 12 0 -1 normal - -1 sprites/chars.png 8bpp 440 10 12 12 0 -1 normal - -1 sprites/chars.png 8bpp 470 10 8 12 0 -1 normal - -1 sprites/chars.png 8bpp 480 10 7 12 0 -1 normal - -1 sprites/chars.png 8bpp 500 10 7 12 0 -1 normal - -1 sprites/chars.png 8bpp 520 10 7 12 0 -1 normal - -1 * 5 0A 01 03 AE 00 - -1 sprites/chars.png 8bpp 560 10 4 12 0 -1 normal - -1 sprites/chars.png 8bpp 570 10 4 12 0 -1 normal - -1 sprites/chars.png 8bpp 580 10 5 12 0 -1 normal - -1 * 5 0A 01 05 B3 00 - -1 sprites/chars.png 8bpp 620 10 8 12 0 -1 normal - -1 sprites/chars.png 8bpp 640 10 9 12 0 -1 normal - -1 sprites/chars.png 8bpp 660 10 9 12 0 -1 normal - -1 sprites/chars.png 8bpp 680 10 9 12 0 -1 normal - -1 sprites/chars.png 8bpp 700 10 9 12 0 -1 normal - -1 * 5 0A 01 03 BB 00 - -1 sprites/chars.png 8bpp 770 10 8 12 0 -1 normal - -1 sprites/chars.png 8bpp 10 70 8 12 0 -1 normal - -1 sprites/chars.png 8bpp 30 70 8 12 0 -1 normal - -1 * 5 0A 01 01 BF 00 - -1 sprites/chars.png 8bpp 70 70 9 12 0 -1 normal - -1 * 5 0A 01 05 C1 00 - -1 sprites/chars.png 8bpp 450 70 8 12 0 -1 normal - -1 sprites/chars.png 8bpp 110 70 6 12 0 -1 normal - -1 sprites/chars.png 8bpp 120 70 6 12 0 -1 normal - -1 sprites/chars.png 8bpp 130 70 6 12 0 -1 normal - -1 sprites/chars.png 8bpp 140 70 6 12 0 -1 normal - -1 * 5 0A 01 01 C7 00 - -1 sprites/chars.png 8bpp 160 70 6 12 0 -1 normal - -1 * 5 0A 01 03 CA 00 - -1 sprites/chars.png 8bpp 200 70 6 12 0 -1 normal - -1 sprites/chars.png 8bpp 210 70 6 12 0 -1 normal - -1 sprites/chars.png 8bpp 220 70 6 12 0 -1 normal - -1 * 5 0A 01 04 CE 00 - -1 sprites/chars.png 8bpp 230 70 4 12 0 -1 normal - -1 sprites/chars.png 8bpp 240 70 4 12 0 -1 normal - -1 sprites/chars.png 8bpp 250 70 5 12 0 -1 normal - -1 sprites/chars.png 8bpp 260 70 5 12 0 -1 normal - -1 * 5 0A 01 05 D3 00 - -1 sprites/chars.png 8bpp 290 70 6 12 0 -1 normal - -1 sprites/chars.png 8bpp 310 70 6 12 0 -1 normal - -1 sprites/chars.png 8bpp 320 70 6 12 0 -1 normal - -1 sprites/chars.png 8bpp 330 70 6 12 0 -1 normal - -1 sprites/chars.png 8bpp 340 70 6 12 0 -1 normal - -1 * 5 0A 01 03 DB 00 - -1 sprites/chars.png 8bpp 390 70 6 12 0 -1 normal - -1 sprites/chars.png 8bpp 400 70 6 12 0 -1 normal - -1 sprites/chars.png 8bpp 410 70 6 12 0 -1 normal - -1 * 5 0A 01 02 DF 00 - -1 sprites/chars.png 8bpp 420 70 7 12 0 -1 normal - -1 sprites/chars.png 8bpp 430 70 6 12 0 -1 normal - -1 * 5 0A 01 01 22 01 - -1 sprites/chars.png 8bpp 20 30 2 7 0 0 normal - -1 * 5 0A 01 01 7D 01 - -1 sprites/chars.png 8bpp 220 30 4 7 0 0 normal - -1 * 5 0A 01 02 80 01 - -1 sprites/chars.png 8bpp 230 30 9 7 0 0 normal - -1 sprites/chars.png 8bpp 250 30 3 7 0 0 normal - -1 * 5 0A 01 01 89 01 - -1 sprites/chars.png 8bpp 470 30 3 7 0 0 normal - -1 * 5 0A 01 01 9F 01 - -1 sprites/chars.png 8bpp 70 90 3 7 0 0 normal - -1 * 5 0A 01 01 A9 01 - -1 sprites/chars.png 8bpp 190 90 3 7 0 0 normal - -1 * 5 0A 01 02 BF 01 - -1 sprites/chars.png 8bpp 420 90 3 7 0 0 normal - -1 sprites/chars.png 8bpp 430 90 3 7 0 0 normal - -1 * 5 0A 01 01 02 02 - -1 sprites/chars.png 8bpp 20 40 4 21 0 -2 normal - -1 * 5 0A 01 01 41 02 - -1 sprites/chars.png 8bpp 30 40 14 21 0 -2 normal - -1 * 5 0A 01 06 46 02 - -1 sprites/chars.png 8bpp 50 40 10 21 0 -2 normal - -1 sprites/chars.png 8bpp 70 40 14 21 0 -2 normal - -1 sprites/chars.png 8bpp 90 40 3 21 0 -2 normal - -1 sprites/chars.png 8bpp 100 40 13 21 0 -2 normal - -1 sprites/chars.png 8bpp 120 40 7 21 0 -2 normal - -1 sprites/chars.png 8bpp 130 40 16 21 0 -2 normal - -1 * 5 0A 01 01 50 02 - -1 sprites/chars.png 8bpp 150 40 16 21 0 -2 normal - -1 * 5 0A 01 04 52 02 - -1 sprites/chars.png 8bpp 170 40 8 21 0 -2 normal - -1 sprites/chars.png 8bpp 180 40 9 21 0 -2 normal - -1 sprites/chars.png 8bpp 190 40 6 21 0 -2 normal - -1 sprites/chars.png 8bpp 200 40 6 21 0 -2 normal - -1 * 5 0A 01 01 5C 02 - -1 sprites/chars.png 8bpp 210 40 7 21 0 -2 normal - -1 * 5 0A 01 01 60 02 - -1 sprites/chars.png 8bpp 230 40 16 21 0 -2 normal - -1 * 5 0A 01 07 62 02 - -1 sprites/chars.png 8bpp 260 40 20 21 0 -2 normal - -1 sprites/chars.png 8bpp 290 40 20 21 0 -2 normal - -1 sprites/chars.png 8bpp 320 40 20 21 0 -2 normal - -1 sprites/chars.png 8bpp 350 40 20 21 0 -2 normal - -1 sprites/chars.png 8bpp 380 40 20 21 0 -2 normal - -1 sprites/chars.png 8bpp 410 40 20 21 0 -2 normal - -1 sprites/chars.png 8bpp 440 40 24 21 0 -2 normal - -1 * 5 0A 01 18 6A 02 - -1 sprites/chars.png 8bpp 480 40 14 21 0 -2 normal - -1 sprites/chars.png 8bpp 500 40 14 21 0 -2 normal - -1 sprites/chars.png 8bpp 520 40 14 21 0 -2 normal - -1 sprites/chars.png 8bpp 540 40 14 21 0 -2 normal - -1 sprites/chars.png 8bpp 560 40 9 21 0 -2 normal - -1 sprites/chars.png 8bpp 570 40 9 21 0 -2 normal - -1 sprites/chars.png 8bpp 580 40 9 21 0 -2 normal - -1 sprites/chars.png 8bpp 590 40 9 21 0 -2 normal - -1 sprites/chars.png 8bpp 600 40 17 21 0 -2 normal - -1 sprites/chars.png 8bpp 620 40 18 21 0 -2 normal - -1 sprites/chars.png 8bpp 640 40 15 21 0 -2 normal - -1 sprites/chars.png 8bpp 660 40 15 21 0 -2 normal - -1 sprites/chars.png 8bpp 680 40 15 21 0 -2 normal - -1 sprites/chars.png 8bpp 700 40 15 21 0 -2 normal - -1 sprites/chars.png 8bpp 720 40 15 21 0 -2 normal - -1 sprites/chars.png 8bpp 740 40 9 21 0 -2 normal - -1 sprites/chars.png 8bpp 750 40 16 21 0 -2 normal - -1 sprites/chars.png 8bpp 770 40 17 21 0 -2 normal - -1 sprites/chars.png 8bpp 10 100 17 21 0 -2 normal - -1 sprites/chars.png 8bpp 30 100 17 21 0 -2 normal - -1 sprites/chars.png 8bpp 50 100 17 21 0 -2 normal - -1 sprites/chars.png 8bpp 70 100 14 21 0 -2 normal - -1 sprites/chars.png 8bpp 90 100 14 21 0 -2 normal - -1 sprites/chars.png 8bpp 450 100 14 21 0 -2 normal - -1 * 5 0A 01 01 85 02 - -1 sprites/chars.png 8bpp 140 100 12 21 0 -2 normal - -1 * 5 0A 01 01 88 02 - -1 sprites/chars.png 8bpp 170 100 19 21 0 -2 normal - -1 * 5 0A 01 02 92 02 - -1 sprites/chars.png 8bpp 270 100 11 21 0 -2 normal - -1 sprites/chars.png 8bpp 290 100 15 21 0 -2 normal - -1 * 5 0A 01 01 97 02 - -1 sprites/chars.png 8bpp 340 100 11 21 0 -2 normal - -1 * 5 0A 01 02 99 02 - -1 sprites/chars.png 8bpp 360 100 9 21 0 -2 normal - -1 sprites/chars.png 8bpp 370 100 11 21 0 -2 normal - -1 * 5 0A 01 01 A0 02 - -1 sprites/chars.png 8bpp 430 100 14 21 0 -2 normal - -// New characters, all fonts except monospaced - -// U+007B: Left Curly Bracket -// U+007C: Vertical Line -// U+007D: Right Curly Bracket -// U+007E: Tilde - -1 * 14 12 03 00 04 7B 00 01 04 7B 00 02 04 7B 00 - -1 sprites/chars.png 8bpp 10 130 5 12 0 -1 normal - -1 sprites/chars.png 8bpp 20 130 3 12 0 -1 normal - -1 sprites/chars.png 8bpp 30 130 5 12 0 -1 normal - -1 sprites/chars.png 8bpp 50 130 7 12 0 -1 normal - -1 sprites/chars.png 8bpp 10 150 3 7 0 0 normal - -1 sprites/chars.png 8bpp 20 150 1 7 0 0 normal - -1 sprites/chars.png 8bpp 30 150 3 7 0 0 normal - -1 sprites/chars.png 8bpp 50 150 4 7 0 0 normal - -1 sprites/chars.png 8bpp 10 160 9 21 0 -2 normal - -1 sprites/chars.png 8bpp 20 160 3 21 0 -2 normal - -1 sprites/chars.png 8bpp 30 160 9 21 0 -2 normal - -1 sprites/chars.png 8bpp 50 160 10 21 0 -2 normal - -// U+007F: No-Break Space - -1 * 14 12 03 00 01 7F 00 01 01 7F 00 02 01 7F 00 - -1 sprites/chars.png 8bpp 70 130 2 12 0 -1 normal - -1 sprites/chars.png 8bpp 70 150 1 7 0 0 normal - -1 sprites/chars.png 8bpp 70 160 5 21 0 -2 normal - -// U+00AA: Feminine Ordinal Indicator - -1 * 14 12 03 00 01 AA 00 01 01 AA 00 02 01 AA 00 - -1 sprites/chars.png 8bpp 80 130 6 12 0 -1 normal - -1 sprites/chars.png 8bpp 80 150 3 7 0 0 normal - -1 sprites/chars.png 8bpp 80 160 7 21 0 -2 normal - -// U+00AC: Not Sign -// U+00AD: Soft Hyphen - -1 * 14 12 03 00 02 AC 00 01 02 AC 00 02 02 AC 00 - -1 sprites/chars.png 8bpp 90 130 8 12 0 -1 normal - -1 sprites/chars.png 8bpp 110 130 6 12 0 -1 normal - -1 sprites/chars.png 8bpp 90 150 4 7 0 0 normal - -1 sprites/chars.png 8bpp 110 150 3 7 0 0 normal - -1 sprites/chars.png 8bpp 90 160 12 21 0 -2 normal - -1 sprites/chars.png 8bpp 110 160 9 21 0 -2 normal - -// U+00AF: Macron - -1 * 14 12 03 00 01 AF 00 01 01 AF 00 02 01 AF 00 - -1 sprites/chars.png 8bpp 130 130 6 12 0 -1 normal - -1 sprites/chars.png 8bpp 130 150 3 7 0 0 normal - -1 sprites/chars.png 8bpp 130 160 12 21 0 -2 normal - -// U+00B4: Acute Accent -// U+00B5: Micro Sign -// U+00B6: Pilcrow Sign -// U+00B7: Middle Dot -// U+00B8: Cedilla -// U+00B9: Superscript One - -1 * 14 12 03 00 06 B4 00 01 06 B4 00 02 06 B4 00 - -1 sprites/chars.png 8bpp 150 130 4 12 0 -1 normal - -1 sprites/chars.png 8bpp 160 130 6 12 0 -1 normal - -1 sprites/chars.png 8bpp 180 130 8 12 0 -1 normal - -1 sprites/chars.png 8bpp 200 130 3 12 0 -1 normal - -1 sprites/chars.png 8bpp 210 130 4 12 0 -1 normal - -1 sprites/chars.png 8bpp 220 130 5 12 0 -1 normal - -1 sprites/chars.png 8bpp 150 150 2 7 0 0 normal - -1 sprites/chars.png 8bpp 160 150 3 7 0 0 normal - -1 sprites/chars.png 8bpp 180 150 6 7 0 0 normal - -1 sprites/chars.png 8bpp 200 150 1 7 0 0 normal - -1 sprites/chars.png 8bpp 210 150 2 7 0 0 normal - -1 sprites/chars.png 8bpp 220 150 2 7 0 0 normal - -1 sprites/chars.png 8bpp 150 160 4 21 0 -2 normal - -1 sprites/chars.png 8bpp 160 160 15 21 0 -2 normal - -1 sprites/chars.png 8bpp 180 160 13 21 0 -2 normal - -1 sprites/chars.png 8bpp 200 160 3 21 0 -2 normal - -1 sprites/chars.png 8bpp 210 160 5 21 0 -2 normal - -1 sprites/chars.png 8bpp 220 160 6 21 0 -2 normal - -// U+00BC: Vulgar Fraction One Quarter -// U+00BD: Vulgar Fraction One Half - -1 * 14 12 03 00 02 BC 00 01 02 BC 00 02 02 BC 00 - -1 sprites/chars.png 8bpp 230 130 10 12 0 -1 normal - -1 sprites/chars.png 8bpp 250 130 10 12 0 -1 normal - -1 sprites/chars.png 8bpp 230 150 9 7 0 0 normal - -1 sprites/chars.png 8bpp 250 150 9 7 0 0 normal - -1 sprites/chars.png 8bpp 230 160 16 21 0 -2 normal - -1 sprites/chars.png 8bpp 250 160 16 21 0 -2 normal +// Note: Characters in range U+0020..U+00FF may only be defined in chars_orig_extra.nfo. // New characters, all fonts diff --git a/media/extra_grf/chars_orig_extra.nfo b/media/extra_grf/chars_orig_extra.nfo new file mode 100644 index 0000000000..7979e79450 --- /dev/null +++ b/media/extra_grf/chars_orig_extra.nfo @@ -0,0 +1,249 @@ +// +// $Id$ +// +// This file is part of OpenTTD. +// OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2. +// OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +// See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see . +// + -1 * 0 0C "Font characters by PaulC, Bilbo and Jasper Vries" + +// Replace original characters + + -1 * 5 0A 01 02 41 00 + -1 sprites/chars.png 8bpp 10 10 6 12 0 -1 normal + -1 sprites/chars.png 8bpp 20 10 4 12 0 -1 normal + -1 * 5 0A 01 02 86 00 + -1 sprites/chars.png 8bpp 50 10 8 12 0 -1 normal + -1 sprites/chars.png 8bpp 70 10 9 12 0 -1 normal + -1 * 5 0A 01 01 8A 00 + -1 sprites/chars.png 8bpp 120 10 6 12 0 -1 normal + -1 * 5 0A 01 01 A0 00 + -1 sprites/chars.png 8bpp 230 10 10 12 0 -1 normal + -1 * 5 0A 01 04 A2 00 + -1 sprites/chars.png 8bpp 260 10 8 12 0 -1 normal + -1 sprites/chars.png 8bpp 290 10 8 12 0 -1 normal + -1 sprites/chars.png 8bpp 320 10 8 12 0 -1 normal + -1 sprites/chars.png 8bpp 350 10 8 12 0 -1 normal + -1 * 5 0A 01 06 A7 00 + -1 sprites/chars.png 8bpp 410 10 8 12 0 -1 normal + -1 sprites/chars.png 8bpp 440 10 12 12 0 -1 normal + -1 sprites/chars.png 8bpp 470 10 8 12 0 -1 normal + -1 sprites/chars.png 8bpp 480 10 7 12 0 -1 normal + -1 sprites/chars.png 8bpp 500 10 7 12 0 -1 normal + -1 sprites/chars.png 8bpp 520 10 7 12 0 -1 normal + -1 * 5 0A 01 03 AE 00 + -1 sprites/chars.png 8bpp 560 10 4 12 0 -1 normal + -1 sprites/chars.png 8bpp 570 10 4 12 0 -1 normal + -1 sprites/chars.png 8bpp 580 10 5 12 0 -1 normal + -1 * 5 0A 01 05 B3 00 + -1 sprites/chars.png 8bpp 620 10 8 12 0 -1 normal + -1 sprites/chars.png 8bpp 640 10 9 12 0 -1 normal + -1 sprites/chars.png 8bpp 660 10 9 12 0 -1 normal + -1 sprites/chars.png 8bpp 680 10 9 12 0 -1 normal + -1 sprites/chars.png 8bpp 700 10 9 12 0 -1 normal + -1 * 5 0A 01 03 BB 00 + -1 sprites/chars.png 8bpp 770 10 8 12 0 -1 normal + -1 sprites/chars.png 8bpp 10 70 8 12 0 -1 normal + -1 sprites/chars.png 8bpp 30 70 8 12 0 -1 normal + -1 * 5 0A 01 01 BF 00 + -1 sprites/chars.png 8bpp 70 70 9 12 0 -1 normal + -1 * 5 0A 01 05 C1 00 + -1 sprites/chars.png 8bpp 450 70 8 12 0 -1 normal + -1 sprites/chars.png 8bpp 110 70 6 12 0 -1 normal + -1 sprites/chars.png 8bpp 120 70 6 12 0 -1 normal + -1 sprites/chars.png 8bpp 130 70 6 12 0 -1 normal + -1 sprites/chars.png 8bpp 140 70 6 12 0 -1 normal + -1 * 5 0A 01 01 C7 00 + -1 sprites/chars.png 8bpp 160 70 6 12 0 -1 normal + -1 * 5 0A 01 03 CA 00 + -1 sprites/chars.png 8bpp 200 70 6 12 0 -1 normal + -1 sprites/chars.png 8bpp 210 70 6 12 0 -1 normal + -1 sprites/chars.png 8bpp 220 70 6 12 0 -1 normal + -1 * 5 0A 01 04 CE 00 + -1 sprites/chars.png 8bpp 230 70 4 12 0 -1 normal + -1 sprites/chars.png 8bpp 240 70 4 12 0 -1 normal + -1 sprites/chars.png 8bpp 250 70 5 12 0 -1 normal + -1 sprites/chars.png 8bpp 260 70 5 12 0 -1 normal + -1 * 5 0A 01 05 D3 00 + -1 sprites/chars.png 8bpp 290 70 6 12 0 -1 normal + -1 sprites/chars.png 8bpp 310 70 6 12 0 -1 normal + -1 sprites/chars.png 8bpp 320 70 6 12 0 -1 normal + -1 sprites/chars.png 8bpp 330 70 6 12 0 -1 normal + -1 sprites/chars.png 8bpp 340 70 6 12 0 -1 normal + -1 * 5 0A 01 03 DB 00 + -1 sprites/chars.png 8bpp 390 70 6 12 0 -1 normal + -1 sprites/chars.png 8bpp 400 70 6 12 0 -1 normal + -1 sprites/chars.png 8bpp 410 70 6 12 0 -1 normal + -1 * 5 0A 01 02 DF 00 + -1 sprites/chars.png 8bpp 420 70 7 12 0 -1 normal + -1 sprites/chars.png 8bpp 430 70 6 12 0 -1 normal + -1 * 5 0A 01 01 22 01 + -1 sprites/chars.png 8bpp 20 30 2 7 0 0 normal + -1 * 5 0A 01 01 7D 01 + -1 sprites/chars.png 8bpp 220 30 4 7 0 0 normal + -1 * 5 0A 01 02 80 01 + -1 sprites/chars.png 8bpp 230 30 9 7 0 0 normal + -1 sprites/chars.png 8bpp 250 30 3 7 0 0 normal + -1 * 5 0A 01 01 89 01 + -1 sprites/chars.png 8bpp 470 30 3 7 0 0 normal + -1 * 5 0A 01 01 9F 01 + -1 sprites/chars.png 8bpp 70 90 3 7 0 0 normal + -1 * 5 0A 01 01 A9 01 + -1 sprites/chars.png 8bpp 190 90 3 7 0 0 normal + -1 * 5 0A 01 02 BF 01 + -1 sprites/chars.png 8bpp 420 90 3 7 0 0 normal + -1 sprites/chars.png 8bpp 430 90 3 7 0 0 normal + -1 * 5 0A 01 01 02 02 + -1 sprites/chars.png 8bpp 20 40 4 21 0 -2 normal + -1 * 5 0A 01 01 41 02 + -1 sprites/chars.png 8bpp 30 40 14 21 0 -2 normal + -1 * 5 0A 01 06 46 02 + -1 sprites/chars.png 8bpp 50 40 10 21 0 -2 normal + -1 sprites/chars.png 8bpp 70 40 14 21 0 -2 normal + -1 sprites/chars.png 8bpp 90 40 3 21 0 -2 normal + -1 sprites/chars.png 8bpp 100 40 13 21 0 -2 normal + -1 sprites/chars.png 8bpp 120 40 7 21 0 -2 normal + -1 sprites/chars.png 8bpp 130 40 16 21 0 -2 normal + -1 * 5 0A 01 01 50 02 + -1 sprites/chars.png 8bpp 150 40 16 21 0 -2 normal + -1 * 5 0A 01 04 52 02 + -1 sprites/chars.png 8bpp 170 40 8 21 0 -2 normal + -1 sprites/chars.png 8bpp 180 40 9 21 0 -2 normal + -1 sprites/chars.png 8bpp 190 40 6 21 0 -2 normal + -1 sprites/chars.png 8bpp 200 40 6 21 0 -2 normal + -1 * 5 0A 01 01 5C 02 + -1 sprites/chars.png 8bpp 210 40 7 21 0 -2 normal + -1 * 5 0A 01 01 60 02 + -1 sprites/chars.png 8bpp 230 40 16 21 0 -2 normal + -1 * 5 0A 01 07 62 02 + -1 sprites/chars.png 8bpp 260 40 20 21 0 -2 normal + -1 sprites/chars.png 8bpp 290 40 20 21 0 -2 normal + -1 sprites/chars.png 8bpp 320 40 20 21 0 -2 normal + -1 sprites/chars.png 8bpp 350 40 20 21 0 -2 normal + -1 sprites/chars.png 8bpp 380 40 20 21 0 -2 normal + -1 sprites/chars.png 8bpp 410 40 20 21 0 -2 normal + -1 sprites/chars.png 8bpp 440 40 24 21 0 -2 normal + -1 * 5 0A 01 18 6A 02 + -1 sprites/chars.png 8bpp 480 40 14 21 0 -2 normal + -1 sprites/chars.png 8bpp 500 40 14 21 0 -2 normal + -1 sprites/chars.png 8bpp 520 40 14 21 0 -2 normal + -1 sprites/chars.png 8bpp 540 40 14 21 0 -2 normal + -1 sprites/chars.png 8bpp 560 40 9 21 0 -2 normal + -1 sprites/chars.png 8bpp 570 40 9 21 0 -2 normal + -1 sprites/chars.png 8bpp 580 40 9 21 0 -2 normal + -1 sprites/chars.png 8bpp 590 40 9 21 0 -2 normal + -1 sprites/chars.png 8bpp 600 40 17 21 0 -2 normal + -1 sprites/chars.png 8bpp 620 40 18 21 0 -2 normal + -1 sprites/chars.png 8bpp 640 40 15 21 0 -2 normal + -1 sprites/chars.png 8bpp 660 40 15 21 0 -2 normal + -1 sprites/chars.png 8bpp 680 40 15 21 0 -2 normal + -1 sprites/chars.png 8bpp 700 40 15 21 0 -2 normal + -1 sprites/chars.png 8bpp 720 40 15 21 0 -2 normal + -1 sprites/chars.png 8bpp 740 40 9 21 0 -2 normal + -1 sprites/chars.png 8bpp 750 40 16 21 0 -2 normal + -1 sprites/chars.png 8bpp 770 40 17 21 0 -2 normal + -1 sprites/chars.png 8bpp 10 100 17 21 0 -2 normal + -1 sprites/chars.png 8bpp 30 100 17 21 0 -2 normal + -1 sprites/chars.png 8bpp 50 100 17 21 0 -2 normal + -1 sprites/chars.png 8bpp 70 100 14 21 0 -2 normal + -1 sprites/chars.png 8bpp 90 100 14 21 0 -2 normal + -1 sprites/chars.png 8bpp 450 100 14 21 0 -2 normal + -1 * 5 0A 01 01 85 02 + -1 sprites/chars.png 8bpp 140 100 12 21 0 -2 normal + -1 * 5 0A 01 01 88 02 + -1 sprites/chars.png 8bpp 170 100 19 21 0 -2 normal + -1 * 5 0A 01 02 92 02 + -1 sprites/chars.png 8bpp 270 100 11 21 0 -2 normal + -1 sprites/chars.png 8bpp 290 100 15 21 0 -2 normal + -1 * 5 0A 01 01 97 02 + -1 sprites/chars.png 8bpp 340 100 11 21 0 -2 normal + -1 * 5 0A 01 02 99 02 + -1 sprites/chars.png 8bpp 360 100 9 21 0 -2 normal + -1 sprites/chars.png 8bpp 370 100 11 21 0 -2 normal + -1 * 5 0A 01 01 A0 02 + -1 sprites/chars.png 8bpp 430 100 14 21 0 -2 normal + +// New characters, all fonts except monospaced + +// U+007B: Left Curly Bracket +// U+007C: Vertical Line +// U+007D: Right Curly Bracket +// U+007E: Tilde + -1 * 14 12 03 00 04 7B 00 01 04 7B 00 02 04 7B 00 + -1 sprites/chars.png 8bpp 10 130 5 12 0 -1 normal + -1 sprites/chars.png 8bpp 20 130 3 12 0 -1 normal + -1 sprites/chars.png 8bpp 30 130 5 12 0 -1 normal + -1 sprites/chars.png 8bpp 50 130 7 12 0 -1 normal + -1 sprites/chars.png 8bpp 10 150 3 7 0 0 normal + -1 sprites/chars.png 8bpp 20 150 1 7 0 0 normal + -1 sprites/chars.png 8bpp 30 150 3 7 0 0 normal + -1 sprites/chars.png 8bpp 50 150 4 7 0 0 normal + -1 sprites/chars.png 8bpp 10 160 9 21 0 -2 normal + -1 sprites/chars.png 8bpp 20 160 3 21 0 -2 normal + -1 sprites/chars.png 8bpp 30 160 9 21 0 -2 normal + -1 sprites/chars.png 8bpp 50 160 10 21 0 -2 normal + +// U+007F: No-Break Space + -1 * 14 12 03 00 01 7F 00 01 01 7F 00 02 01 7F 00 + -1 sprites/chars.png 8bpp 70 130 2 12 0 -1 normal + -1 sprites/chars.png 8bpp 70 150 1 7 0 0 normal + -1 sprites/chars.png 8bpp 70 160 5 21 0 -2 normal + +// U+00AA: Feminine Ordinal Indicator + -1 * 14 12 03 00 01 AA 00 01 01 AA 00 02 01 AA 00 + -1 sprites/chars.png 8bpp 80 130 6 12 0 -1 normal + -1 sprites/chars.png 8bpp 80 150 3 7 0 0 normal + -1 sprites/chars.png 8bpp 80 160 7 21 0 -2 normal + +// U+00AC: Not Sign +// U+00AD: Soft Hyphen + -1 * 14 12 03 00 02 AC 00 01 02 AC 00 02 02 AC 00 + -1 sprites/chars.png 8bpp 90 130 8 12 0 -1 normal + -1 sprites/chars.png 8bpp 110 130 6 12 0 -1 normal + -1 sprites/chars.png 8bpp 90 150 4 7 0 0 normal + -1 sprites/chars.png 8bpp 110 150 3 7 0 0 normal + -1 sprites/chars.png 8bpp 90 160 12 21 0 -2 normal + -1 sprites/chars.png 8bpp 110 160 9 21 0 -2 normal + +// U+00AF: Macron + -1 * 14 12 03 00 01 AF 00 01 01 AF 00 02 01 AF 00 + -1 sprites/chars.png 8bpp 130 130 6 12 0 -1 normal + -1 sprites/chars.png 8bpp 130 150 3 7 0 0 normal + -1 sprites/chars.png 8bpp 130 160 12 21 0 -2 normal + +// U+00B4: Acute Accent +// U+00B5: Micro Sign +// U+00B6: Pilcrow Sign +// U+00B7: Middle Dot +// U+00B8: Cedilla +// U+00B9: Superscript One + -1 * 14 12 03 00 06 B4 00 01 06 B4 00 02 06 B4 00 + -1 sprites/chars.png 8bpp 150 130 4 12 0 -1 normal + -1 sprites/chars.png 8bpp 160 130 6 12 0 -1 normal + -1 sprites/chars.png 8bpp 180 130 8 12 0 -1 normal + -1 sprites/chars.png 8bpp 200 130 3 12 0 -1 normal + -1 sprites/chars.png 8bpp 210 130 4 12 0 -1 normal + -1 sprites/chars.png 8bpp 220 130 5 12 0 -1 normal + -1 sprites/chars.png 8bpp 150 150 2 7 0 0 normal + -1 sprites/chars.png 8bpp 160 150 3 7 0 0 normal + -1 sprites/chars.png 8bpp 180 150 6 7 0 0 normal + -1 sprites/chars.png 8bpp 200 150 1 7 0 0 normal + -1 sprites/chars.png 8bpp 210 150 2 7 0 0 normal + -1 sprites/chars.png 8bpp 220 150 2 7 0 0 normal + -1 sprites/chars.png 8bpp 150 160 4 21 0 -2 normal + -1 sprites/chars.png 8bpp 160 160 15 21 0 -2 normal + -1 sprites/chars.png 8bpp 180 160 13 21 0 -2 normal + -1 sprites/chars.png 8bpp 200 160 3 21 0 -2 normal + -1 sprites/chars.png 8bpp 210 160 5 21 0 -2 normal + -1 sprites/chars.png 8bpp 220 160 6 21 0 -2 normal + +// U+00BC: Vulgar Fraction One Quarter +// U+00BD: Vulgar Fraction One Half + -1 * 14 12 03 00 02 BC 00 01 02 BC 00 02 02 BC 00 + -1 sprites/chars.png 8bpp 230 130 10 12 0 -1 normal + -1 sprites/chars.png 8bpp 250 130 10 12 0 -1 normal + -1 sprites/chars.png 8bpp 230 150 9 7 0 0 normal + -1 sprites/chars.png 8bpp 250 150 9 7 0 0 normal + -1 sprites/chars.png 8bpp 230 160 16 21 0 -2 normal + -1 sprites/chars.png 8bpp 250 160 16 21 0 -2 normal diff --git a/media/extra_grf/orig_extra.nfo b/media/extra_grf/orig_extra.nfo index 03a8ff6741..534badab03 100644 --- a/media/extra_grf/orig_extra.nfo +++ b/media/extra_grf/orig_extra.nfo @@ -75,6 +75,7 @@ // // The real data of the GRF is acquired from several subfiles. // +#include "chars_orig_extra.nfo" #include "shore.nfo" #include "fix_graphics.nfo" #include "canals_extra.nfo" diff --git a/src/depot_gui.cpp b/src/depot_gui.cpp index 5137777726..259252c13c 100644 --- a/src/depot_gui.cpp +++ b/src/depot_gui.cpp @@ -682,7 +682,8 @@ struct DepotWindow : Window { } /* Always have 1 empty row, so people can change the setting of the train */ this->vscroll->SetCount(this->vehicle_list.Length() + this->wagon_list.Length() + 1); - this->hscroll->SetCount(max_width); + /* Always make it longer than the longest train, so you can attach vehicles at the end */ + this->hscroll->SetCount(max_width + ScaleGUITrad(2 * VEHICLEINFO_FULL_VEHICLE_WIDTH + 1)); } else { this->vscroll->SetCount(CeilDiv(this->vehicle_list.Length(), this->num_columns)); } diff --git a/src/industry_cmd.cpp b/src/industry_cmd.cpp index 8fea6953ae..9c98b120c6 100644 --- a/src/industry_cmd.cpp +++ b/src/industry_cmd.cpp @@ -491,7 +491,12 @@ static CommandCost ClearTile_Industry(TileIndex tile, DoCommandFlag flags) return CommandCost(EXPENSES_CONSTRUCTION, indspec->GetRemovalCost()); } -static void TransportIndustryGoods(TileIndex tile) +/** + * Move produced cargo from industry to nearby stations. + * @param tile Industry tile + * @return true if any cargo was moved. + */ +static bool TransportIndustryGoods(TileIndex tile) { Industry *i = Industry::GetByTile(tile); const IndustrySpec *indspec = GetIndustrySpec(i->type); @@ -516,16 +521,7 @@ static void TransportIndustryGoods(TileIndex tile) } } - if (moved_cargo && !StartStopIndustryTileAnimation(i, IAT_INDUSTRY_DISTRIBUTES_CARGO)) { - uint newgfx = GetIndustryTileSpec(GetIndustryGfx(tile))->anim_production; - - if (newgfx != INDUSTRYTILE_NOANIM) { - ResetIndustryConstructionStage(tile); - SetIndustryCompleted(tile); - SetIndustryGfx(tile, newgfx); - MarkTileDirtyByTile(tile); - } - } + return moved_cargo; } @@ -810,7 +806,17 @@ static void TileLoop_Industry(TileIndex tile) if (_game_mode == GM_EDITOR) return; - TransportIndustryGoods(tile); + if (TransportIndustryGoods(tile) && !StartStopIndustryTileAnimation(Industry::GetByTile(tile), IAT_INDUSTRY_DISTRIBUTES_CARGO)) { + uint newgfx = GetIndustryTileSpec(GetIndustryGfx(tile))->anim_production; + + if (newgfx != INDUSTRYTILE_NOANIM) { + ResetIndustryConstructionStage(tile); + SetIndustryCompleted(tile); + SetIndustryGfx(tile, newgfx); + MarkTileDirtyByTile(tile); + return; + } + } if (StartStopIndustryTileAnimation(tile, IAT_TILELOOP)) return; diff --git a/src/train_gui.cpp b/src/train_gui.cpp index 4724fb98ab..51e772b520 100644 --- a/src/train_gui.cpp +++ b/src/train_gui.cpp @@ -64,14 +64,14 @@ static int HighlightDragPosition(int px, int max_width, VehicleID selection, boo bool rtl = _current_text_dir == TD_RTL; assert(selection != INVALID_VEHICLE); - int dragged_width = WD_FRAMERECT_LEFT + WD_FRAMERECT_RIGHT; + int dragged_width = 0; for (Train *t = Train::Get(selection); t != NULL; t = chain ? t->Next() : (t->HasArticulatedPart() ? t->GetNextArticulatedPart() : NULL)) { dragged_width += t->GetDisplayImageWidth(NULL); } - int drag_hlight_left = rtl ? max(px -dragged_width, 0) : px; - int drag_hlight_right = rtl ? px : min(px + dragged_width, max_width); - int drag_hlight_width = max(drag_hlight_right - drag_hlight_left, 0); + int drag_hlight_left = rtl ? max(px - dragged_width + 1, 0) : px; + int drag_hlight_right = rtl ? px : min(px + dragged_width, max_width) - 1; + int drag_hlight_width = max(drag_hlight_right - drag_hlight_left + 1, 0); if (drag_hlight_width > 0) { GfxFillRect(drag_hlight_left + WD_FRAMERECT_LEFT, WD_FRAMERECT_TOP + 1, diff --git a/src/video/win32_v.cpp b/src/video/win32_v.cpp index e536ae8e5e..1d73f3411f 100644 --- a/src/video/win32_v.cpp +++ b/src/video/win32_v.cpp @@ -34,6 +34,10 @@ #define MAPVK_VK_TO_CHAR (2) #endif +#ifndef PM_QS_INPUT +#define PM_QS_INPUT 0x20000 +#endif + static struct { HWND main_wnd; HBITMAP dib_sect; @@ -737,7 +741,6 @@ static LRESULT CALLBACK WndProcGdi(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lP case WM_MOUSEMOVE: { int x = (int16)LOWORD(lParam); int y = (int16)HIWORD(lParam); - POINT pt; /* If the mouse was not in the window and it has moved it means it has * come into the window, so start drawing the mouse. Also start @@ -747,7 +750,18 @@ static LRESULT CALLBACK WndProcGdi(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lP SetTimer(hwnd, TID_POLLMOUSE, MOUSE_POLL_DELAY, (TIMERPROC)TrackMouseTimerProc); } - if (_cursor.UpdateCursorPosition(x, y, true)) { + if (_cursor.fix_at) { + /* Get all queued mouse events now in case we have to warp the cursor. In the + * end, we only care about the current mouse position and not bygone events. */ + MSG m; + while (PeekMessage(&m, hwnd, WM_MOUSEMOVE, WM_MOUSEMOVE, PM_REMOVE | PM_NOYIELD | PM_QS_INPUT)) { + x = (int16)LOWORD(m.lParam); + y = (int16)HIWORD(m.lParam); + } + } + + if (_cursor.UpdateCursorPosition(x, y, false)) { + POINT pt; pt.x = _cursor.pos.x; pt.y = _cursor.pos.y; ClientToScreen(hwnd, &pt);