mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-08-12 17:19:09 +00:00
Compare commits
1303 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
d356a0ca13 | ||
|
0db873d6da | ||
|
17507b217c | ||
|
48bd683010 | ||
|
3614c4447f | ||
|
3630a2cc4e | ||
|
26ed360ccd | ||
|
8dc0522434 | ||
|
13378995d9 | ||
|
1708243e51 | ||
|
324e17d827 | ||
|
bcfc0ec957 | ||
|
5702b3951c | ||
|
491b3e3efc | ||
|
2759e32451 | ||
|
d3c41a9d0e | ||
|
3cd96a459b | ||
|
1d18ef48a4 | ||
|
a6e95ace5c | ||
|
c57b316570 | ||
|
b720a16a1c | ||
|
7a0b2bff18 | ||
|
34bff06d8a | ||
|
be4eae9456 | ||
|
f8b956bc2c | ||
|
42c7cb38fa | ||
|
9d2f06c42c | ||
|
0c2be35fa1 | ||
|
80a3b5e78f | ||
|
8ca5334562 | ||
|
d470955e40 | ||
|
c18ccfe0de | ||
|
2e7230dc2b | ||
|
a7f5ff3f73 | ||
|
7ff5066904 | ||
|
2febdda8df | ||
|
e73cd7e81d | ||
|
e031a86d69 | ||
|
ae23f519f7 | ||
|
51501be48f | ||
|
d0356725f6 | ||
|
5d3fcce725 | ||
|
aee9444c1b | ||
|
7a126a20ea | ||
|
72f6c1b4bf | ||
|
b816e07742 | ||
|
6b61c4608f | ||
|
b935cb8415 | ||
|
363d5e8205 | ||
|
2b0863d2b0 | ||
|
d0aa98ef7d | ||
|
8e8cf213bd | ||
|
20970da24a | ||
|
34cd77dcf5 | ||
|
fc818d1373 | ||
|
33206425c0 | ||
|
2b3d87d7e6 | ||
|
90892cb66f | ||
|
a9acaf7a5e | ||
|
62b22bfd2b | ||
|
408b5a70af | ||
|
440168cfb2 | ||
|
a32d18cbb9 | ||
|
c6ce57e8a7 | ||
|
e9f7103ad7 | ||
|
5fa2a6faec | ||
|
e15446bc58 | ||
|
d8eda06a5a | ||
|
b4a015a4bd | ||
|
2b10ee1891 | ||
|
98539bd2c3 | ||
|
90fef59f80 | ||
|
7bdd67e701 | ||
|
aaa6d0f9ae | ||
|
9b9a21f044 | ||
|
cbacd70aa9 | ||
|
9479963b3b | ||
|
f7ba7f34f2 | ||
|
1fcb3bd1f1 | ||
|
ce1719e722 | ||
|
ac2cd315ef | ||
|
3e78c4dc7b | ||
|
27eede06c9 | ||
|
fe03ab06e5 | ||
|
7ac18c0f22 | ||
|
b2ca2e2979 | ||
|
cc77d40336 | ||
|
55502341ac | ||
|
20785c79fc | ||
|
40f61eaf15 | ||
|
46590e112e | ||
|
dc0f89b7e9 | ||
|
2945e76269 | ||
|
997b2634c5 | ||
|
7d56fd5382 | ||
|
4055397915 | ||
|
4a00552a09 | ||
|
4c11bddb3a | ||
|
bd54155cb6 | ||
|
cb7544ea39 | ||
|
858e80f3dd | ||
|
470bd0ce24 | ||
|
e37656f2e5 | ||
|
82ece7db12 | ||
|
4f24e33548 | ||
|
03169121c2 | ||
|
88787412b6 | ||
|
a4941e759c | ||
|
20737a3462 | ||
|
83a202ea46 | ||
|
e4c7c8876b | ||
|
77e62f0b98 | ||
|
202f21f262 | ||
|
75504d24bf | ||
|
4cbab4f744 | ||
|
2925a9005b | ||
|
41b7a04a68 | ||
|
50c6b2486b | ||
|
2e598be48f | ||
|
167f232623 | ||
|
9f6b8aea49 | ||
|
c7629735a3 | ||
|
d05ff6e77b | ||
|
fcb122124b | ||
|
f99d380583 | ||
|
30a95966ec | ||
|
9603014102 | ||
|
1dbd59e6ab | ||
|
57a88c9de2 | ||
|
14d99c6961 | ||
|
5165be2698 | ||
|
ebcc8462b7 | ||
|
fa7eb6dc8c | ||
|
425197a19c | ||
|
0c6f22b5c1 | ||
|
cf96168f6f | ||
|
8b003bd133 | ||
|
58dfc54296 | ||
|
9e5fc88499 | ||
|
9ff5aa4b7b | ||
|
c633ee15d2 | ||
|
9dc69d7f4d | ||
|
dda4ffab5e | ||
|
547e521381 | ||
|
1fc589bd2d | ||
|
4fd67347bd | ||
|
91407b924e | ||
|
e4a4f2c1dd | ||
|
9041473814 | ||
|
b12bf124c7 | ||
|
84b8d376b6 | ||
|
61380f51bb | ||
|
87d373e673 | ||
|
5d4c4b9172 | ||
|
cce3d4fec8 | ||
|
f0e7f9982a | ||
|
95354136be | ||
|
932dad7c8b | ||
|
278b380d10 | ||
|
aee9abeab2 | ||
|
c884665cb9 | ||
|
f36d084db5 | ||
|
efe6adba6a | ||
|
5a41423e03 | ||
|
7e91f96b92 | ||
|
b158c7d0fa | ||
|
be62387e44 | ||
|
f373f8a9c2 | ||
|
a5152be795 | ||
|
e3947c8019 | ||
|
1213e6ba71 | ||
|
ef9108bd58 | ||
|
eb2c2ef877 | ||
|
fdf55a1a48 | ||
|
f5f4f8a4b3 | ||
|
3a44e22b1a | ||
|
70901e04c5 | ||
|
2f7c4f6d12 | ||
|
5b3b533697 | ||
|
7f6e837b3a | ||
|
9a90bed79b | ||
|
6e34672c6c | ||
|
76661f2c56 | ||
|
31c6e33878 | ||
|
a942619911 | ||
|
54a898be33 | ||
|
ee5c115950 | ||
|
e9c22ef16f | ||
|
00e7ceeca4 | ||
|
4f419b8f84 | ||
|
ba1779b978 | ||
|
73c6565cf2 | ||
|
477c15383d | ||
|
5ab39cc651 | ||
|
bc86bf9b12 | ||
|
9ad173c9cc | ||
|
8259d279d5 | ||
|
de5f0e9cbb | ||
|
208db963ad | ||
|
6025a52ee9 | ||
|
a05d548fae | ||
|
ce72195cf3 | ||
|
014813141d | ||
|
1aa26b30c7 | ||
|
998049a618 | ||
|
4575420dcc | ||
|
b48bb25288 | ||
|
7b20da8a0a | ||
|
115c712f4e | ||
|
613fb9c6ef | ||
|
9947bdb0c4 | ||
|
e6fc55b07b | ||
|
a325c33578 | ||
|
f480c5a623 | ||
|
1d4565a666 | ||
|
1e1656110a | ||
|
4c84d13454 | ||
|
78df732a7b | ||
|
71a81a8762 | ||
|
fb05674cb7 | ||
|
899c0f9cd2 | ||
|
2618d960e3 | ||
|
456dba4889 | ||
|
b100125866 | ||
|
7247ecf172 | ||
|
3c94485ba0 | ||
|
c98a94da44 | ||
|
256a3160c4 | ||
|
9bf21279f8 | ||
|
fb4db0b022 | ||
|
868a67111b | ||
|
298b003db1 | ||
|
9ee447731a | ||
|
e76d294c10 | ||
|
52c942b177 | ||
|
59ff2836d4 | ||
|
6b3c1aa036 | ||
|
aad80b7536 | ||
|
e3542b1977 | ||
|
8ee152b747 | ||
|
0de65cbf91 | ||
|
2c6aa62bbf | ||
|
ecdd796a86 | ||
|
63b43ed914 | ||
|
c71aa27b92 | ||
|
cab6391ded | ||
|
a178781487 | ||
|
28de2ec68b | ||
|
cc873704ac | ||
|
fb1a5caf9f | ||
|
3bdb4982d7 | ||
|
40bf635a6d | ||
|
793c455e8a | ||
|
1154aecad6 | ||
|
49852e3dac | ||
|
eca86d1baf | ||
|
a9e8d7a361 | ||
|
3eea1befa7 | ||
|
82eb9d13df | ||
|
00c05e79b1 | ||
|
b02179bd8e | ||
|
b3f08fb67a | ||
|
62c0d42f92 | ||
|
ec492bfb77 | ||
|
4818b72c75 | ||
|
b2f2a017b1 | ||
|
6817e97898 | ||
|
0727b81db9 | ||
|
3d53c0f7b9 | ||
|
e595720085 | ||
|
a12fa22a75 | ||
|
e0d69933f6 | ||
|
07ecc26efa | ||
|
86c0bc6b78 | ||
|
ab9be31562 | ||
|
c69c2a243b | ||
|
065f8df860 | ||
|
51f5d62fdb | ||
|
bf0e7c34e6 | ||
|
2e79fd9c40 | ||
|
f317d0146e | ||
|
3cafd72cc4 | ||
|
ce8a45c870 | ||
|
da67cfe17c | ||
|
8f7f4ccc5e | ||
|
5890e184bb | ||
|
1f62de41ec | ||
|
7d632b7414 | ||
|
a3471b4ab9 | ||
|
eec66b089d | ||
|
354ec53b3c | ||
|
aa8f9e28a2 | ||
|
f6362ae298 | ||
|
70b2093ddb | ||
|
b0a6efc7b3 | ||
|
d2ba772f6a | ||
|
7abe85d727 | ||
|
b1bcd1adab | ||
|
f514e31978 | ||
|
54a8e00a7e | ||
|
982fcb7aab | ||
|
5e3aa72855 | ||
|
02059ab4a7 | ||
|
79ccf48636 | ||
|
50fdf5e30c | ||
|
945fccc706 | ||
|
3b83a195ca | ||
|
b12205697b | ||
|
f669101560 | ||
|
04e97a0bec | ||
|
77e5b1e3b2 | ||
|
d2ffba07bb | ||
|
43f76dcabb | ||
|
ffb9279479 | ||
|
b53da6a6f5 | ||
|
c2ee87c1a9 | ||
|
00264cc708 | ||
|
defda16eb6 | ||
|
6996b441d9 | ||
|
a399fc667c | ||
|
4b8d9aad5b | ||
|
c143ca729a | ||
|
f817b06c18 | ||
|
e106e54f9f | ||
|
18beaac571 | ||
|
573f6dcd34 | ||
|
2009da4f7d | ||
|
43edd2409e | ||
|
ee0aa389a8 | ||
|
0460b78515 | ||
|
168fa4129d | ||
|
4de2871fc0 | ||
|
c54a70cce8 | ||
|
0ac9ed0b6b | ||
|
2fc10b7e04 | ||
|
3eecd246eb | ||
|
83eeba28b7 | ||
|
db894b0b3f | ||
|
45a5aba8d5 | ||
|
58c356e935 | ||
|
b75e60124d | ||
|
6fb28d8719 | ||
|
a8e8f606d8 | ||
|
5e2d22da79 | ||
|
5049e938f5 | ||
|
2f51639af8 | ||
|
d336bf65df | ||
|
be6b64f4e6 | ||
|
729d64d8d9 | ||
|
1b9e32664f | ||
|
cf130ce9d8 | ||
|
9e216a688f | ||
|
c035a9531b | ||
|
d18852170b | ||
|
c29f18f357 | ||
|
d9ee35006d | ||
|
3bae1522c9 | ||
|
3b2a92ea97 | ||
|
78a316d349 | ||
|
29ef70c246 | ||
|
ba1b35a0ac | ||
|
0e9c992104 | ||
|
b3e93d6520 | ||
|
2e54c8fdfa | ||
|
bdd62a4b3e | ||
|
0eaa8fbfcd | ||
|
3362606401 | ||
|
83a76c73c7 | ||
|
8e27031492 | ||
|
6f21593bf6 | ||
|
1b924f194f | ||
|
830a49692d | ||
|
ed4e14dc20 | ||
|
fad4fa09ba | ||
|
b37d402b2d | ||
|
b568de6c49 | ||
|
1a043202d1 | ||
|
ae7b830964 | ||
|
8852d63711 | ||
|
29d0c68bb0 | ||
|
65752ec55b | ||
|
78d0c37298 | ||
|
5b3d3b7240 | ||
|
a36fb735c0 | ||
|
88216aa520 | ||
|
baf0a2b3d6 | ||
|
b0b20192a9 | ||
|
8abbcd3700 | ||
|
ec4806a82d | ||
|
8fbd2f5cb5 | ||
|
2708aff853 | ||
|
89a4455dbc | ||
|
4c5ccc8b94 | ||
|
ddc0026712 | ||
|
6449e96f1a | ||
|
b9e4697d8a | ||
|
16ecd533f3 | ||
|
e6668f24b5 | ||
|
6fc653d2d7 | ||
|
f10d2417d8 | ||
|
41b07b571d | ||
|
3b9f92e14c | ||
|
b934e528d9 | ||
|
a25ecfd982 | ||
|
d7af679fd6 | ||
|
18a3a569fb | ||
|
c98c41e007 | ||
|
a985f19d5a | ||
|
8f8173c3fe | ||
|
8ceef6ec61 | ||
|
a31b46ba84 | ||
|
9088972738 | ||
|
a0cad0c1ea | ||
|
c40f281545 | ||
|
079b2643de | ||
|
e044bd8a73 | ||
|
37633d5da1 | ||
|
ee137a5ced | ||
|
def597fe31 | ||
|
63e0ff048e | ||
|
116adbc0e1 | ||
|
5edda0149a | ||
|
52883db91b | ||
|
17eb3ee9df | ||
|
9a41aefcc4 | ||
|
b1f41a0afb | ||
|
41184fb871 | ||
|
be4355edd3 | ||
|
f7276876de | ||
|
962d6d7e48 | ||
|
9b68e4f864 | ||
|
ca7dce1fc2 | ||
|
015d2b13b2 | ||
|
85d4f8d65c | ||
|
14b8f6e594 | ||
|
c04d635ddb | ||
|
169bf3a403 | ||
|
1ffcdbd515 | ||
|
a7fd0f8f5d | ||
|
cdd6752ead | ||
|
a41b8c851d | ||
|
a298a62098 | ||
|
2df78944b9 | ||
|
f6fd21e8e6 | ||
|
fbceb10ff5 | ||
|
0aae2fd606 | ||
|
b0c2ab4501 | ||
|
f95fa79041 | ||
|
df10f7b9f9 | ||
|
cbcbcef1a0 | ||
|
6a637f7bbb | ||
|
86a658ca21 | ||
|
673599941f | ||
|
103ed39d1b | ||
|
134107b19f | ||
|
2a16d139a2 | ||
|
3a1fbc091e | ||
|
aa4a4911d3 | ||
|
cef342d57c | ||
|
403168287e | ||
|
56e5a80f5a | ||
|
7351158b3c | ||
|
eaafbb00ed | ||
|
f0fbe7767d | ||
|
0bc436fec9 | ||
|
a249db1374 | ||
|
28f6009509 | ||
|
12b30103b1 | ||
|
7480a00ce0 | ||
|
7fbe7895ef | ||
|
6872e8c63c | ||
|
2b8e66e3e3 | ||
|
e4a599424f | ||
|
103b6fffbb | ||
|
8926398f89 | ||
|
3ce2c4a5a3 | ||
|
dce0951fdc | ||
|
1237e3c48c | ||
|
89b7afbac8 | ||
|
f528d2c592 | ||
|
b5dd83e84f | ||
|
6c4e7ab51d | ||
|
8fc539251e | ||
|
fb7ad743d2 | ||
|
a9f6a1eeb7 | ||
|
d3fa322087 | ||
|
6e1cc80926 | ||
|
e0f547e694 | ||
|
2f9c48b859 | ||
|
bd230f34f4 | ||
|
6524849386 | ||
|
29e987f3fc | ||
|
ec2d36a4a4 | ||
|
e99965aa15 | ||
|
02e212a7fa | ||
|
dc10b6c167 | ||
|
fe550c2db3 | ||
|
9337c561b0 | ||
|
54db96be43 | ||
|
dffc4d411e | ||
|
1ed478d433 | ||
|
62c221a845 | ||
|
e21ae34878 | ||
|
a840efe7a0 | ||
|
b3b460cae2 | ||
|
c08259fe92 | ||
|
338d9861bc | ||
|
8fff781ca0 | ||
|
79f4cd2b7a | ||
|
95b973ec6c | ||
|
70e4074a4c | ||
|
ed54d39201 | ||
|
c29ec8edee | ||
|
8033162bb8 | ||
|
2ee9a2b5e7 | ||
|
547b1fba45 | ||
|
88286d33ab | ||
|
6f62458e3b | ||
|
0bc86ff9ee | ||
|
0a481d5ea6 | ||
|
8ede002a96 | ||
|
f5e408fa1c | ||
|
5ab204c8a1 | ||
|
a6fe1f2f63 | ||
|
cef1c47f18 | ||
|
12ddbb7cb1 | ||
|
d9717c0b01 | ||
|
ca18a4abef | ||
|
27a77d2c09 | ||
|
dcec8b9abd | ||
|
122158b4d8 | ||
|
2609693fe8 | ||
|
7ed5f6edf9 | ||
|
5bf105d4f2 | ||
|
871519f75a | ||
|
15ebb29447 | ||
|
e50478c053 | ||
|
fb5dc7762b | ||
|
a42f223b2b | ||
|
e7c6786016 | ||
|
dfb5663313 | ||
|
b35b8aa5bb | ||
|
d908897918 | ||
|
7d10302f35 | ||
|
189dd2dcce | ||
|
69a0c91d63 | ||
|
29f5eab56c | ||
|
1b6ceef086 | ||
|
48d22700ad | ||
|
a92b698525 | ||
|
cfaa9457a6 | ||
|
6a0439a789 | ||
|
ad8b387f9e | ||
|
a521af8cf8 | ||
|
ac599625da | ||
|
60f483822f | ||
|
35d7e8bca4 | ||
|
2080a8c16f | ||
|
b1131671d4 | ||
|
3d5a91424a | ||
|
7a75010b25 | ||
|
276c41ee1d | ||
|
f42dea680e | ||
|
aef25810c0 | ||
|
2e990f514f | ||
|
67bffff355 | ||
|
3d99546107 | ||
|
b4609fd923 | ||
|
1e0dd39075 | ||
|
640d39c001 | ||
|
2d972cb418 | ||
|
bf0f5345ea | ||
|
4912e3170e | ||
|
dfa0e61f25 | ||
|
f26aad2e84 | ||
|
3e8d498bc5 | ||
|
699e6b2588 | ||
|
e96c667017 | ||
|
aac3e9a823 | ||
|
4ce75d1cc9 | ||
|
8895ae5e0d | ||
|
3ad1896273 | ||
|
59afce7cfb | ||
|
999e76d305 | ||
|
26dbdafeed | ||
|
5437a588a0 | ||
|
3efc999c00 | ||
|
4a058e2afe | ||
|
4421eb683b | ||
|
d71ad9773a | ||
|
e27a91c8bc | ||
|
fb85128008 | ||
|
6f15492dd3 | ||
|
5775198966 | ||
|
21e85c9291 | ||
|
266d9262a2 | ||
|
5f415fa78e | ||
|
ce5ea8900c | ||
|
41b914aeb0 | ||
|
ffec9b41e8 | ||
|
ab69c6c2a0 | ||
|
01dea4ec37 | ||
|
1a9a2bcb49 | ||
|
67ab3108d6 | ||
|
953aa839b9 | ||
|
f13ef50e20 | ||
|
deb0662096 | ||
|
282d3778ad | ||
|
e25844cdf2 | ||
|
0e7bfdfbd4 | ||
|
e7073dc635 | ||
|
43ecfc2715 | ||
|
247feca247 | ||
|
5cc4d240f1 | ||
|
eecb4b3506 | ||
|
5e5d5b717b | ||
|
a8c9322729 | ||
|
f8f9e30f80 | ||
|
7adc453473 | ||
|
541fe1775a | ||
|
e2c618eaba | ||
|
9e30dda720 | ||
|
0746816b16 | ||
|
4e74a4c5cc | ||
|
6516afae50 | ||
|
24481998fa | ||
|
b8c6ac60a6 | ||
|
4184a6239f | ||
|
5605942387 | ||
|
a3b271a4eb | ||
|
938ae194a5 | ||
|
e695080caf | ||
|
f36396929a | ||
|
137bd4576e | ||
|
21189287c6 | ||
|
98bc30aa48 | ||
|
dc2dbb3ef6 | ||
|
84c92c8dc7 | ||
|
22d65e4a48 | ||
|
322b2da953 | ||
|
6bbca9307d | ||
|
2d44c98670 | ||
|
bcbaa92485 | ||
|
f719b273d3 | ||
|
abe0163ad4 | ||
|
95cde78e37 | ||
|
5e017b8000 | ||
|
5c0b766ed9 | ||
|
d8365c63fd | ||
|
ae629c028a | ||
|
549784efcd | ||
|
87ef3ab449 | ||
|
f89375aa44 | ||
|
fe4aa47bfb | ||
|
e3a0337951 | ||
|
d7c43bbc20 | ||
|
59b7125563 | ||
|
4fc6cdfbea | ||
|
f154d5915a | ||
|
84d43ed1c3 | ||
|
c9c07dc9d0 | ||
|
50f68b62bd | ||
|
a6e367d4ff | ||
|
d415bb2902 | ||
|
c48745cacc | ||
|
b98de55d22 | ||
|
1137e250a0 | ||
|
26bcc8c77f | ||
|
6ce4c1808b | ||
|
0baa72aff9 | ||
|
fd16b0c65c | ||
|
8222e18586 | ||
|
f42d60150d | ||
|
a9fde2856c | ||
|
7ea878b938 | ||
|
438520c3f4 | ||
|
6777059c15 | ||
|
94add80602 | ||
|
13855f0a09 | ||
|
78c48ee720 | ||
|
6eb6a7372a | ||
|
b0a063ed77 | ||
|
63382ac9c5 | ||
|
348d657380 | ||
|
8cd7368d7a | ||
|
fbe6b92b1d | ||
|
8f95bab001 | ||
|
bd02761b55 | ||
|
2770a24f9f | ||
|
4ed08dcd60 | ||
|
b3ecfbb67a | ||
|
d15c1c5d4a | ||
|
30867c487f | ||
|
e2ec0ddb03 | ||
|
f5e4131492 | ||
|
c64e297e0c | ||
|
643a294e68 | ||
|
e4d48f3a3b | ||
|
de097dd989 | ||
|
0883cf76e3 | ||
|
64d2fc4d1e | ||
|
cbdfd31a3c | ||
|
da09fd3077 | ||
|
21126aec62 | ||
|
7422120014 | ||
|
13873d2534 | ||
|
b96ef5c758 | ||
|
765e7d349e | ||
|
63332afcf0 | ||
|
e3648455aa | ||
|
e37968aadd | ||
|
fdc436b531 | ||
|
019984a14f | ||
|
270d8aa639 | ||
|
1567e32d89 | ||
|
b911f4a452 | ||
|
923eb009e8 | ||
|
8b476de3bf | ||
|
8003da77aa | ||
|
1ae357e905 | ||
|
3569a4fe5a | ||
|
313cdb579e | ||
|
d5681d7f6d | ||
|
4ec314989d | ||
|
d23fdfa403 | ||
|
408c595eb8 | ||
|
7ba4d425c8 | ||
|
2702fe88d7 | ||
|
6d50b10074 | ||
|
a31be4ce11 | ||
|
76367f6bf1 | ||
|
e7dc14b25a | ||
|
33f3cf3a5d | ||
|
9d7ec75fc0 | ||
|
20c2576142 | ||
|
5bda07c10c | ||
|
a3efc99034 | ||
|
c47ef21af0 | ||
|
aecc18daff | ||
|
41f5cefcec | ||
|
1024fd3116 | ||
|
b7441b3a77 | ||
|
ef31b04ef0 | ||
|
24d3594723 | ||
|
46901b73b2 | ||
|
19d393bda1 | ||
|
ca1c792144 | ||
|
456627e01c | ||
|
3351214e22 | ||
|
1ee4666f66 | ||
|
ced1c82bbd | ||
|
184e7744c3 | ||
|
6ca7a44407 | ||
|
a02c00404d | ||
|
53b4ca9d6d | ||
|
ea121aa170 | ||
|
6d150fd97f | ||
|
789b4e320b | ||
|
4f6d19465b | ||
|
7a805b621e | ||
|
5ea7ab1ad2 | ||
|
09897c5fd6 | ||
|
5eb8f0a0bb | ||
|
1180f57df9 | ||
|
fb1d479a51 | ||
|
b6a624bb92 | ||
|
304bb319e5 | ||
|
de90a1ffb3 | ||
|
72fb509286 | ||
|
6e12838376 | ||
|
3c300cdc37 | ||
|
5e5e0b5029 | ||
|
f178899609 | ||
|
740643f2b2 | ||
|
c35591c864 | ||
|
b7c1c5ccf0 | ||
|
57a3a2b147 | ||
|
e6eede841a | ||
|
94d48eb27f | ||
|
6fc2c14afe | ||
|
5eac3a77d2 | ||
|
8f89cd6dd3 | ||
|
fac0bc4176 | ||
|
e6ae8cf420 | ||
|
81ce9ad189 | ||
|
11f756ac97 | ||
|
bb7f08f8db | ||
|
2e390613a6 | ||
|
7686587f02 | ||
|
4a1bf704ee | ||
|
09a30ca7b5 | ||
|
2d459b2fc0 | ||
|
56a899f4bd | ||
|
3ed33255a2 | ||
|
423b44e552 | ||
|
b8ba32db06 | ||
|
635ec0dd9f | ||
|
84b0b288b3 | ||
|
201415848d | ||
|
0c0db5c4c7 | ||
|
51f0d11ee3 | ||
|
d0eff986be | ||
|
4824cb7886 | ||
|
72a531bc82 | ||
|
3fa1b4e8c3 | ||
|
3c0fbaaa13 | ||
|
b09c4043ec | ||
|
290fbd2231 | ||
|
e3bb1d8c73 | ||
|
840f836704 | ||
|
c6aad246c9 | ||
|
3f7fdd738b | ||
|
1e715bfbea | ||
|
021cc15672 | ||
|
4c443bce5c | ||
|
76566fde5b | ||
|
1efc64fa7d | ||
|
79ddda1b10 | ||
|
e8b6d2b32d | ||
|
d9065fbfbe | ||
|
68659495b5 | ||
|
3a81868518 | ||
|
7bc4845aac | ||
|
f4c9ba4981 | ||
|
36bd61f303 | ||
|
1ff95f36bf | ||
|
c1bf3122ad | ||
|
f128c61595 | ||
|
c640289d7f | ||
|
83a0174ef2 | ||
|
d798766f2e | ||
|
bcb0e04bf2 | ||
|
43ec0bf0c1 | ||
|
8116aeff21 | ||
|
634607573f | ||
|
df732f2bae | ||
|
e184b9799c | ||
|
5f8f71edf0 | ||
|
98fdd20f84 | ||
|
631540c400 | ||
|
92f276f26d | ||
|
4fed658a63 | ||
|
ea5d35a896 | ||
|
4fbcb73166 | ||
|
ccf36ca71b | ||
|
d894a6b897 | ||
|
c33040e037 | ||
|
be4451d40f | ||
|
094ac8c441 | ||
|
4356510408 | ||
|
ba1e42d057 | ||
|
c27ce651c9 | ||
|
1b9f54f0b2 | ||
|
bdb62c14e2 | ||
|
66b7123ed9 | ||
|
fac0b83df6 | ||
|
dd49c84363 | ||
|
096f1e37d3 | ||
|
f9c9ff6ec3 | ||
|
6e97b7a6e8 | ||
|
5b2a5ac790 | ||
|
31af0a3397 | ||
|
270257ab34 | ||
|
3831e3829d | ||
|
934f4decba | ||
|
d3ccc7c194 | ||
|
6e8f2f29f5 | ||
|
0c14a586bd | ||
|
6f359bc1f0 | ||
|
43a9cfcaa4 | ||
|
11e6d5c8df | ||
|
868001a1e0 | ||
|
19eca468fc | ||
|
8463335b00 | ||
|
5d37e21d04 | ||
|
928df8163a | ||
|
b82a3460d1 | ||
|
6ab0545022 | ||
|
569eaf0e11 | ||
|
bd2f4b9a24 | ||
|
0150ab1bb2 | ||
|
7c9f0545b4 | ||
|
653a005d19 | ||
|
809120bc05 | ||
|
eb7962a72e | ||
|
fc5335111d | ||
|
8f9d213675 | ||
|
3fe1e9176d | ||
|
f980d1a43c | ||
|
8bbbb1b37a | ||
|
48c1e4f87e | ||
|
7b10e39bf1 | ||
|
c90dbe2018 | ||
|
899c4d85e4 | ||
|
4f0ef61d4e | ||
|
2446b8ea60 | ||
|
bbbecceae1 | ||
|
43a37f7f28 | ||
|
092c33be3f | ||
|
b4106e686b | ||
|
9bb031533d | ||
|
e158383118 | ||
|
58ae2d5aeb | ||
|
bfbdbe688e | ||
|
abb5a13f1e | ||
|
be2b87c1cd | ||
|
7c0f34130c | ||
|
8197a3ea2a | ||
|
ed36aa0458 | ||
|
798f472552 | ||
|
aa3c106843 | ||
|
ab4bd11208 | ||
|
048b705360 | ||
|
8b25444300 | ||
|
8190d26f9e | ||
|
8c5a7cf0ab | ||
|
c23eaf0790 | ||
|
ac4dd5d627 | ||
|
d724088a1c | ||
|
eb4388f4f3 | ||
|
97a42f4b4f | ||
|
a285743d48 | ||
|
e1a2a8275b | ||
|
94a5fe6b92 | ||
|
13c450a66b | ||
|
930c19dae2 | ||
|
3dd811e179 | ||
|
57e5a95b6f | ||
|
e797f53c33 | ||
|
d0fe055ae4 | ||
|
07071c88e5 | ||
|
6df6b16320 | ||
|
6794456249 | ||
|
b55d8fee84 | ||
|
1584c8f733 | ||
|
854d5e4b78 | ||
|
f0119308f6 | ||
|
b923eb31a8 | ||
|
d9985c3331 | ||
|
be3b25fd65 | ||
|
a575465e03 | ||
|
c9452bbbff | ||
|
e06ad1dda1 | ||
|
ff67cf2893 | ||
|
fef30983e6 | ||
|
ee4e68bd5e | ||
|
5cb174c6b8 | ||
|
6291383823 | ||
|
1b8b1f3f6c | ||
|
40c2864e4d | ||
|
d9e9710cb3 | ||
|
cd0a57fba3 | ||
|
59b71b5666 | ||
|
420f95a6e9 | ||
|
2ef4438882 | ||
|
59a9d05776 | ||
|
18ae9c78bc | ||
|
bb308c5e30 | ||
|
e4e86620dd | ||
|
9240ec0e3a | ||
|
e5135f5c0f | ||
|
80d35ca284 | ||
|
b7a9a434fb | ||
|
9cb89b3639 | ||
|
c73219f9e5 | ||
|
040562909b | ||
|
bfdc7fe558 | ||
|
1c995a3faa | ||
|
06d95e9123 | ||
|
dee02ba153 | ||
|
15a0ed2782 | ||
|
b860353a66 | ||
|
9e7513d9e8 | ||
|
a2bda93647 | ||
|
78b6e79c01 | ||
|
be8645e137 | ||
|
21d0f2e883 | ||
|
53d2e785f5 | ||
|
dda71a15d1 | ||
|
6166772bc5 | ||
|
9a92d55dee | ||
|
a2af1f69af | ||
|
a724a9924b | ||
|
f9b08b1aec | ||
|
ed38214794 | ||
|
4e902f2e20 | ||
|
eaede14b8f | ||
|
bfc8980c09 | ||
|
086aae8d04 | ||
|
8980cb427d | ||
|
f373d29d62 | ||
|
cdfb296783 | ||
|
2505963b65 | ||
|
0fc198cb00 | ||
|
b4ab43be5f | ||
|
0e5fa8d195 | ||
|
741c431caa | ||
|
04e3eb6fab | ||
|
a2ff96d682 | ||
|
5c8ff0a251 | ||
|
3d0a0e8e48 | ||
|
575cabe90a | ||
|
9824d53d6a | ||
|
6a46b5262f | ||
|
c32eea02dd | ||
|
22f56ffdd7 | ||
|
33ad9774fb | ||
|
a49a4eec6e | ||
|
fdf04f60e0 | ||
|
793cc5d9d6 | ||
|
4fd57501bb | ||
|
dfad8317aa | ||
|
db671ffb86 | ||
|
c8f068d979 | ||
|
a2d84868e7 | ||
|
e311902198 | ||
|
9aa1bf0264 | ||
|
bea60988c6 | ||
|
16307a8a6f | ||
|
ab8531ac9c | ||
|
3ff6d19238 | ||
|
d79b2b03d0 | ||
|
5bb1d01af9 | ||
|
a23b84fdfc | ||
|
059eee93fc | ||
|
478fcadd21 | ||
|
a1a96b2e8b | ||
|
4ed1de4683 | ||
|
8b793e4791 | ||
|
b35b17beeb | ||
|
3283cf9373 | ||
|
12299afa31 | ||
|
dba533b640 | ||
|
71e26ce6db | ||
|
c5f9488a26 | ||
|
0fbc7140c5 | ||
|
254c3834d0 | ||
|
0d28dc92fc | ||
|
61f7b50480 | ||
|
bf96b0330c | ||
|
2093dea58a | ||
|
4261b6cc82 | ||
|
ce110eed32 | ||
|
f292a87dc4 | ||
|
c9f514eb4c | ||
|
4b286812c3 | ||
|
7b3bd1adda | ||
|
a58427115c | ||
|
2547523c0f | ||
|
4c1e969a31 | ||
|
812faf08b5 | ||
|
caa324ba89 | ||
|
a28cfd2d74 | ||
|
168391ad56 | ||
|
73c96fc66d | ||
|
dd826ecbdf | ||
|
a4cddc3e08 | ||
|
05c472f08a | ||
|
4e4e635916 | ||
|
559b7ef35e | ||
|
ed851034f5 | ||
|
23ba42b66c | ||
|
8157a8afd8 | ||
|
8c4714ad90 | ||
|
b6d76c4d4c | ||
|
56e4a8c4d6 | ||
|
b10a4f151a | ||
|
a7c9c6a4e7 | ||
|
c3a7ed5a65 | ||
|
4037251c82 | ||
|
4bdf33a1df | ||
|
ca5b64a433 | ||
|
5a420d8435 | ||
|
fad530cf07 | ||
|
1cbfb7e961 | ||
|
2a83335828 | ||
|
de45be0cae | ||
|
391318ed80 | ||
|
2f7d9a2851 | ||
|
992989dccb | ||
|
15b67dbafa | ||
|
d220c1d208 | ||
|
9aae00cc87 | ||
|
23a5c6a8c8 | ||
|
a959f0c23e | ||
|
ed858c08ca | ||
|
f9be533f9e | ||
|
da9729634d | ||
|
ef7befdbd8 | ||
|
50ae992b47 | ||
|
163dfdd34a | ||
|
5bca50c466 | ||
|
be4f85766c | ||
|
3947453277 | ||
|
0cc3d8df4b | ||
|
06313e4981 | ||
|
b0a2818ed0 | ||
|
216888485e | ||
|
7e4f68d275 | ||
|
c8dbb42b60 | ||
|
1a0c081c18 | ||
|
3e163928c3 | ||
|
8c879e25a6 | ||
|
93c301c901 | ||
|
dde08b0240 | ||
|
0d05b8a0fb | ||
|
df126a24de | ||
|
1b5b4db690 | ||
|
7671ea3b43 | ||
|
001fdc3682 | ||
|
5931faeff6 | ||
|
9bbc37450c | ||
|
41244765b5 | ||
|
8a7573f9f8 | ||
|
1e41b38b7d | ||
|
71cfe3d474 | ||
|
a8ba748434 | ||
|
26dd535c6b | ||
|
d3b9a55535 | ||
|
266bdfaffe | ||
|
9dee2f5c1e | ||
|
2030d1cf60 | ||
|
341a6f6e95 | ||
|
65855af084 | ||
|
b9528c3aa0 | ||
|
02924a1d3e | ||
|
f2322974a2 | ||
|
8d10337bf0 | ||
|
ff3baa1914 | ||
|
3b641c7184 | ||
|
f7dc4a50f4 | ||
|
414399540a | ||
|
5730e63a10 | ||
|
5b55afb7bd | ||
|
4e99ac5f92 | ||
|
7609dc7fdf | ||
|
f383011f97 | ||
|
6eba94a396 | ||
|
4f38b5b076 | ||
|
df63cb6cef | ||
|
f442cd7798 | ||
|
e586c29b31 | ||
|
461d366f30 | ||
|
90015a6953 | ||
|
8a879c49b7 | ||
|
8dca3a85ba | ||
|
8f8a7e7ea6 | ||
|
57ed1f259f | ||
|
006c2d5629 | ||
|
e28659aa51 | ||
|
bcd5038af9 | ||
|
b09bf08044 | ||
|
e4c3528a78 | ||
|
dd3b4c99fe | ||
|
c909421e6f | ||
|
25022d5345 | ||
|
2aa0e9a80b | ||
|
5eddbb338b | ||
|
8d1d521456 | ||
|
31adca0eee | ||
|
ea7ab09ede | ||
|
6fc5587be5 | ||
|
27a9beda3f | ||
|
1eb6e76d08 | ||
|
016730ab10 | ||
|
3419d19a36 | ||
|
55ba9320f3 | ||
|
2b6669a7ff | ||
|
2d67f07975 | ||
|
3349cb3347 | ||
|
d1212e0b1a | ||
|
aa2c1ce4b0 | ||
|
6772aebbb6 | ||
|
7a3d549f2f | ||
|
b2292122b6 | ||
|
70454b8d64 | ||
|
e5a77f94bd | ||
|
b07f650ed1 | ||
|
7e12c449f1 | ||
|
9036397d93 | ||
|
2ef98e0b7d | ||
|
1e9049e0bd | ||
|
87fae6ba57 | ||
|
c56c4f7b34 | ||
|
63cee3d0ef | ||
|
d3faaa6543 | ||
|
327615c2ce | ||
|
9986691220 | ||
|
28a54208a3 | ||
|
92b8334c86 | ||
|
8ce21bb1c0 | ||
|
9df9da8e0c | ||
|
1fa1542eab | ||
|
2d209a5c30 | ||
|
4f7aedecc3 | ||
|
bdaf082fc2 | ||
|
4b3ead97c5 | ||
|
451e2ea02b | ||
|
41ca81dc41 | ||
|
79185e7a2b | ||
|
166513bbd4 | ||
|
5046922f61 | ||
|
9370e981b9 | ||
|
30f601d685 | ||
|
9eab26a1a1 | ||
|
da68c497af | ||
|
11ae4a8515 | ||
|
af3678ff24 | ||
|
1fbabacda5 | ||
|
fe3ffb29dd | ||
|
aad9273248 | ||
|
2661b5cfff | ||
|
c6187b5d97 | ||
|
a78baec2ea | ||
|
cf4a2702f8 | ||
|
8ca173e365 | ||
|
d5307c9722 | ||
|
cfa42fcdce | ||
|
d62ab47c74 | ||
|
15ec6e26f0 | ||
|
b09743f3e8 | ||
|
c2c50b0c50 | ||
|
1ddf5a0786 | ||
|
19b18d7822 | ||
|
579ee7a592 | ||
|
9cad36865f | ||
|
aef0ce895a | ||
|
9401dc1cce | ||
|
5ab4f31f00 | ||
|
3d7d131602 | ||
|
bfede23628 | ||
|
aa2ff3d552 | ||
|
f800c826a8 | ||
|
553277dcd3 | ||
|
2559598dbb | ||
|
3c2d8cc28d | ||
|
f1c53da256 | ||
|
303ebbb6e4 | ||
|
fae3cbae9f | ||
|
bd301e8475 | ||
|
e808104b88 | ||
|
c22bbf5293 | ||
|
54915063f0 | ||
|
41de7e0195 | ||
|
b9405ee808 | ||
|
a742ad7d36 | ||
|
9e6b3b5102 | ||
|
7c1b4ee376 | ||
|
d3c0e1d340 | ||
|
3fe8ac8e64 | ||
|
d49f478ea4 | ||
|
591cab43b9 | ||
|
a718e424ca | ||
|
389348a844 | ||
|
5b74415631 | ||
|
c3b0bd7d58 | ||
|
9b06e79765 | ||
|
0c582e409e | ||
|
8808e9cfaa | ||
|
8bf949b956 | ||
|
6f875ada14 | ||
|
3aeb0402e5 | ||
|
c193a12341 | ||
|
c321733697 | ||
|
2f3fdbf837 | ||
|
5cd5aca98c | ||
|
b9aeb050e1 | ||
|
22bb015f3d | ||
|
205543f727 | ||
|
82fc3b15e7 | ||
|
35570156dd | ||
|
0c8b215935 | ||
|
c58c86efda | ||
|
21608367d8 | ||
|
00d8865db7 | ||
|
13b3fc7e19 | ||
|
037fbbb76e | ||
|
56023baf4d | ||
|
6f49b85bd1 | ||
|
1b10910af6 | ||
|
41cc06a83c | ||
|
37b0c459b4 | ||
|
d0d4710f56 | ||
|
52aeef1a79 | ||
|
dfdced2239 | ||
|
6b68956969 | ||
|
dcf3df65d3 | ||
|
bae033c23d | ||
|
20668eeb73 | ||
|
fd759af272 | ||
|
4367224b35 | ||
|
cdb0a76958 | ||
|
446d50f658 | ||
|
d6e2a8aa56 | ||
|
71bbc130fc | ||
|
2795ed5b09 | ||
|
6647cb9179 | ||
|
7e5c649844 | ||
|
5818ac77b1 | ||
|
bdf42d8355 | ||
|
2752dd7bbe | ||
|
afd1e49224 | ||
|
7ff6598cd2 |
4
COPYING
4
COPYING
@@ -1,3 +1,7 @@
|
||||
This is the license which applies to OpenTTD with the exception of some
|
||||
3rd party modules. See readme.txt for details
|
||||
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
|
4
Doxyfile
4
Doxyfile
@@ -97,7 +97,7 @@ EXCLUDE_PATTERNS = */3rdparty */.svn */script/api
|
||||
EXAMPLE_PATH =
|
||||
EXAMPLE_PATTERNS = *
|
||||
EXAMPLE_RECURSIVE = NO
|
||||
IMAGE_PATH =
|
||||
IMAGE_PATH =./docs/
|
||||
INPUT_FILTER =
|
||||
FILTER_PATTERNS =
|
||||
FILTER_SOURCE_FILES = NO
|
||||
@@ -202,7 +202,7 @@ SKIP_FUNCTION_MACROS = YES
|
||||
# Configuration::additions related to external references
|
||||
#---------------------------------------------------------------------------
|
||||
TAGFILES =
|
||||
GENERATE_TAGFILE = openttd.tag
|
||||
GENERATE_TAGFILE = objs/openttd.tag
|
||||
ALLEXTERNALS = NO
|
||||
EXTERNAL_GROUPS = YES
|
||||
PERL_PATH = /usr/bin/perl
|
||||
|
@@ -90,9 +90,9 @@ endif
|
||||
ifeq ($(TTD), openttd.exe)
|
||||
$(Q)unix2dos "$(BUNDLE_DIR)/docs/"* "$(BUNDLE_DIR)/readme.txt" "$(BUNDLE_DIR)/COPYING" "$(BUNDLE_DIR)/changelog.txt" "$(BUNDLE_DIR)/known-bugs.txt"
|
||||
ifeq ($(OS), DOS)
|
||||
$(Q)cp "$(ROOT_DIR)/os/dos/cwsdpmi.txt" "$(BUNDLE_DIR)/docs/"
|
||||
$(Q)cp "$(ROOT_DIR)/os/dos/cwsdpmi/cwsdpmi.txt" "$(BUNDLE_DIR)/docs/"
|
||||
ifndef STRIP
|
||||
$(Q)cp "$(ROOT_DIR)/os/dos/cwsdpmi.exe" "$(TTD_DIR)/"
|
||||
$(Q)cp "$(ROOT_DIR)/os/dos/cwsdpmi/cwsdpmi.exe" "$(TTD_DIR)/"
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
@@ -20,6 +20,8 @@
|
||||
|
||||
ROOT_DIR = !!ROOT_DIR!!
|
||||
GRF_DIR = $(ROOT_DIR)/media/extra_grf
|
||||
BASESET_DIR = $(ROOT_DIR)/media/baseset
|
||||
LANG_DIR = $(ROOT_DIR)/src/lang
|
||||
BIN_DIR = !!BIN_DIR!!/baseset
|
||||
OBJS_DIR = !!GRF_OBJS_DIR!!
|
||||
OS = !!OS!!
|
||||
@@ -36,6 +38,7 @@ endif
|
||||
|
||||
GRFCODEC := !!GRFCODEC!!
|
||||
NFORENUM := !!NFORENUM!!
|
||||
CC_BUILD := !!CC_BUILD!!
|
||||
MD5SUM := $(shell [ "$(OS)" = "OSX" ] && echo "md5 -r" || echo "md5sum")
|
||||
|
||||
# Some "should not be changed" settings.
|
||||
@@ -44,7 +47,7 @@ PNG_FILES := $(GRF_DIR)/*.png $(GRF_DIR)/rivers/*.png
|
||||
|
||||
# Build the GRF.
|
||||
ifdef GRFCODEC
|
||||
all: $(BIN_DIR)/openttd.grf
|
||||
all: $(BIN_DIR)/openttd.grf $(BIN_DIR)/orig_dos.obg $(BIN_DIR)/orig_dos_de.obg $(BIN_DIR)/orig_win.obg $(BIN_DIR)/orig_dos.obs $(BIN_DIR)/orig_win.obs $(BIN_DIR)/no_sound.obs $(BIN_DIR)/orig_win.obm $(BIN_DIR)/no_music.obm
|
||||
else
|
||||
all:
|
||||
endif
|
||||
@@ -53,20 +56,33 @@ endif
|
||||
$(OBJS_DIR)/sprites:
|
||||
$(Q)-mkdir "$@"
|
||||
|
||||
# Generic
|
||||
$(BIN_DIR)/openttd.grf: $(OBJS_DIR)/openttd.grf
|
||||
$(Q)cp $(OBJS_DIR)/openttd.grf $(BIN_DIR)/openttd.grf
|
||||
$(E) '$(STAGE) Updating base graphics sets'
|
||||
$(Q) for grf in $(BIN_DIR)/orig*.obg; do sed 's/^OPENTTD.GRF = [0-9a-f]*$$/OPENTTD.GRF = '`$(MD5SUM) $(BIN_DIR)/openttd.grf | sed 's@ .*@@'`'/' $$grf > $$grf.tmp && mv $$grf.tmp $$grf; done
|
||||
$(OBJS_DIR)/langfiles.tmp: $(LANG_DIR)/*.txt
|
||||
$(E) '$(STAGE) Collecting baseset translations'
|
||||
$(Q) cat $^ > $@
|
||||
|
||||
# Yeah, we'd like to use -i in the sed, but Mac OS X's sed and GNU sed just can't agree on the usage of -i. In any case either one of them fails.
|
||||
$(OBJS_DIR)/openttd.grf: $(PNG_FILES) $(NFO_FILES) $(OBJS_DIR)/sprites
|
||||
$(BIN_DIR)/%.obg: $(BASESET_DIR)/%.obg $(BIN_DIR)/openttd.grf $(OBJS_DIR)/langfiles.tmp $(BASESET_DIR)/translations.awk
|
||||
$(E) '$(STAGE) Updating $(notdir $@)'
|
||||
$(Q) sed 's/^OPENTTD.GRF = *[0-9a-f]*$$/OPENTTD.GRF = '`$(MD5SUM) $(BIN_DIR)/openttd.grf | sed 's@ .*@@'`'/' $< > $@.tmp
|
||||
$(Q) awk -v langfiles='$(OBJS_DIR)/langfiles.tmp' -f $(BASESET_DIR)/translations.awk $@.tmp >$@
|
||||
$(Q) rm $@.tmp
|
||||
|
||||
$(BIN_DIR)/%.obs: $(BASESET_DIR)/%.obs $(OBJS_DIR)/langfiles.tmp $(BASESET_DIR)/translations.awk
|
||||
$(E) '$(STAGE) Updating $(notdir $@)'
|
||||
$(Q) awk -v langfiles='$(OBJS_DIR)/langfiles.tmp' -f $(BASESET_DIR)/translations.awk $< >$@
|
||||
|
||||
$(BIN_DIR)/%.obm: $(BASESET_DIR)/%.obm $(OBJS_DIR)/langfiles.tmp $(BASESET_DIR)/translations.awk
|
||||
$(E) '$(STAGE) Updating $(notdir $@)'
|
||||
$(Q) awk -v langfiles='$(OBJS_DIR)/langfiles.tmp' -f $(BASESET_DIR)/translations.awk $< >$@
|
||||
|
||||
# Compile extra grf
|
||||
$(BIN_DIR)/openttd.grf: $(PNG_FILES) $(NFO_FILES) $(OBJS_DIR)/sprites $(GRF_DIR)/assemble_nfo.awk
|
||||
$(E) '$(STAGE) Assembling openttd.nfo'
|
||||
$(Q)-cp $(PNG_FILES) $(OBJS_DIR)/sprites 2> /dev/null
|
||||
$(Q) gcc -I$(GRF_DIR) -C -E - < "$(GRF_DIR)/openttd.nfo" | sed -e '/^#/d' -e '/^$$/d' > $(OBJS_DIR)/sprites/openttd.nfo
|
||||
$(Q) awk -f $(GRF_DIR)/assemble_nfo.awk $(GRF_DIR)/openttd.nfo > $(OBJS_DIR)/sprites/openttd.nfo
|
||||
$(Q) $(NFORENUM) -s $(OBJS_DIR)/sprites/openttd.nfo
|
||||
$(E) '$(STAGE) Compiling openttd.grf'
|
||||
$(Q) $(GRFCODEC) -n -s -e -p1 $(OBJS_DIR)/openttd.grf
|
||||
$(Q)cp $(OBJS_DIR)/openttd.grf $(BIN_DIR)/openttd.grf
|
||||
|
||||
# Clean up temporary files.
|
||||
clean:
|
||||
|
@@ -144,17 +144,15 @@ mrproper:
|
||||
# output of profiling
|
||||
$(Q)rm -f $(BIN_DIR)/gmon.out
|
||||
# output of generating 'API' documentation
|
||||
$(Q)rm -f $(ROOT_DIR)/openttd.tag
|
||||
$(Q)rm -rf $(ROOT_DIR)/docs/source
|
||||
# output of generating AI API documentation
|
||||
$(Q)rm -f $(SRC_DIR)/ai/api/openttd.tag
|
||||
$(Q)rm -rf $(ROOT_DIR)/docs/aidocs
|
||||
$(Q)rm -rf $(ROOT_DIR)/docs/gamedocs
|
||||
# directories created by OpenTTD on regression testing
|
||||
$(Q)rm -rf $(BIN_DIR)/ai/regression/content_download $(BIN_DIR)/ai/regression/save $(BIN_DIR)/ai/regression/scenario
|
||||
distclean: mrproper
|
||||
|
||||
maintainer-clean: distclean
|
||||
$(Q)rm -f $(BIN_DIR)/baseset/openttd.grf
|
||||
$(Q)rm -f $(BIN_DIR)/baseset/openttd.grf $(BIN_DIR)/baseset/*.obg $(BIN_DIR)/baseset/*.obs $(BIN_DIR)/baseset/*.obm
|
||||
|
||||
depend:
|
||||
@for dir in $(SRC_DIRS); do \
|
||||
|
@@ -229,10 +229,22 @@ $(OBJS_C): %.o: $(SRC_DIR)/%.c $(DEP_MASK) $(FILE_DEP)
|
||||
$(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.c=%.c)'
|
||||
$(Q)$(CC_HOST) $(CFLAGS) -c -o $@ $<
|
||||
|
||||
$(OBJS_CPP): %.o: $(SRC_DIR)/%.cpp $(DEP_MASK) $(FILE_DEP)
|
||||
$(filter-out %sse2.o, $(filter-out %ssse3.o, $(filter-out %sse4.o, $(OBJS_CPP)))): %.o: $(SRC_DIR)/%.cpp $(DEP_MASK) $(FILE_DEP)
|
||||
$(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.cpp=%.cpp)'
|
||||
$(Q)$(CXX_HOST) $(CFLAGS) $(CXXFLAGS) -c -o $@ $<
|
||||
|
||||
$(filter %sse2.o, $(OBJS_CPP)): %.o: $(SRC_DIR)/%.cpp $(DEP_MASK) $(FILE_DEP)
|
||||
$(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.cpp=%.cpp)'
|
||||
$(Q)$(CXX_HOST) $(CFLAGS) $(CXXFLAGS) -c -msse2 -o $@ $<
|
||||
|
||||
$(filter %ssse3.o, $(OBJS_CPP)): %.o: $(SRC_DIR)/%.cpp $(DEP_MASK) $(FILE_DEP)
|
||||
$(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.cpp=%.cpp)'
|
||||
$(Q)$(CXX_HOST) $(CFLAGS) $(CXXFLAGS) -c -mssse3 -o $@ $<
|
||||
|
||||
$(filter %sse4.o, $(OBJS_CPP)): %.o: $(SRC_DIR)/%.cpp $(DEP_MASK) $(FILE_DEP)
|
||||
$(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.cpp=%.cpp)'
|
||||
$(Q)$(CXX_HOST) $(CFLAGS) $(CXXFLAGS) -c -msse4.1 -o $@ $<
|
||||
|
||||
$(OBJS_MM): %.o: $(SRC_DIR)/%.mm $(DEP_MASK) $(FILE_DEP)
|
||||
$(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.mm=%.mm)'
|
||||
$(Q)$(CC_HOST) $(CFLAGS) -c -o $@ $<
|
||||
@@ -276,7 +288,7 @@ endian_target.h: $(ENDIAN_CHECK) $(CONFIG_CACHE_ENDIAN)
|
||||
|
||||
$(ENDIAN_CHECK): $(SRC_DIR)/endian_check.cpp
|
||||
$(E) '$(STAGE) Compiling and Linking $@'
|
||||
$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) $(CXXFLAGS_BUILD) $< -o $@
|
||||
$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) $(CXXFLAGS_BUILD) $(LDFLAGS_BUILD) $< -o $@
|
||||
|
||||
# Revision files
|
||||
|
||||
|
@@ -6,3 +6,5 @@
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
AILog.Info("1.3 API compatability in effect.");
|
||||
|
8
bin/ai/compat_1.4.nut
Normal file
8
bin/ai/compat_1.4.nut
Normal file
@@ -0,0 +1,8 @@
|
||||
/* $Id: compat_1.3.nut 23969 2012-02-19 19:14:17Z rubidium $ */
|
||||
|
||||
/*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
@@ -588,7 +588,7 @@ ERROR: IsEnd() is invalid as Begin() is never called
|
||||
SetName(): false
|
||||
GetLastErrorString(): ERR_NAME_IS_NOT_UNIQUE
|
||||
GetName(): Regression
|
||||
GetPresidentName(): P. Sharkey
|
||||
GetPresidentName(): E. McAlpine
|
||||
SetPresidentName(): true
|
||||
GetPresidentName(): Regression AI
|
||||
GetBankBalance(): 100000
|
||||
@@ -877,7 +877,7 @@ ERROR: IsEnd() is invalid as Begin() is never called
|
||||
GetName(): Wooden rail bridge
|
||||
GetMaxSpeed(): 32
|
||||
GetPrice(): 450
|
||||
GetMaxLength(): 102
|
||||
GetMaxLength(): 66
|
||||
GetMinLength(): 2
|
||||
Bridge 1
|
||||
IsValidBridge(): true
|
||||
@@ -905,14 +905,14 @@ ERROR: IsEnd() is invalid as Begin() is never called
|
||||
GetName(): Steel suspension rail bridge
|
||||
GetMaxSpeed(): 96
|
||||
GetPrice(): 1042
|
||||
GetMaxLength(): 102
|
||||
GetMaxLength(): 66
|
||||
GetMinLength(): 5
|
||||
Bridge 5
|
||||
IsValidBridge(): true
|
||||
GetName(): Steel suspension rail bridge
|
||||
GetMaxSpeed(): 112
|
||||
GetPrice(): 1081
|
||||
GetMaxLength(): 102
|
||||
GetMaxLength(): 66
|
||||
GetMinLength(): 5
|
||||
Bridge 6
|
||||
IsValidBridge(): true
|
||||
@@ -1012,9 +1012,9 @@ ERROR: IsEnd() is invalid as Begin() is never called
|
||||
1 => 630
|
||||
0 => 450
|
||||
MaxLength ListDump:
|
||||
5 => 102
|
||||
4 => 102
|
||||
0 => 102
|
||||
5 => 66
|
||||
4 => 66
|
||||
0 => 66
|
||||
3 => 12
|
||||
8 => 11
|
||||
7 => 10
|
||||
@@ -5079,7 +5079,7 @@ ERROR: IsEnd() is invalid as Begin() is never called
|
||||
GetPlaneType(): -1
|
||||
Engine 211
|
||||
IsValidEngine(): true
|
||||
GetName(): Yate Cargo ship
|
||||
GetName(): Yate Cargo Ship
|
||||
GetCargoType(): 5
|
||||
CanRefitCargo(): true
|
||||
GetCapacity(): 160
|
||||
@@ -9118,8 +9118,8 @@ ERROR: IsEnd() is invalid as Begin() is never called
|
||||
5 => 0
|
||||
4 => 0
|
||||
CargoRating(1) ListDump:
|
||||
5 => 69
|
||||
4 => 69
|
||||
5 => -1
|
||||
4 => -1
|
||||
DistanceManhattanToTile(30000) ListDump:
|
||||
5 => 106
|
||||
4 => 96
|
||||
|
@@ -10,34 +10,50 @@ fallback = true
|
||||
description = A music pack without actual music.
|
||||
description.af_ZA = 'n Musiek stel sonder enige musiek.
|
||||
description.ar_EG = مجموعة موسيقى بدون موسيقى
|
||||
description.be_BY = "Пусты" набор музычнага афармлення, які не зьмяшчае ніякай музыкі.
|
||||
description.bg_BG = Празен музикален пакет.
|
||||
description.ca_ES = Un joc de música sense cap música.
|
||||
description.cs_CZ = Prázná hudební sada.
|
||||
description.da_DA = En musikpakke uden musik.
|
||||
description.cy_GB = Pecyn cerddoriaeth heb unrhyw gerddoriaeth ynddo.
|
||||
description.da_DK = En musikpakke uden musik.
|
||||
description.de_DE = Ein Musikset ohne Musik.
|
||||
description.el_GR = Ένα πάκετο μουσικής χωρίς πραγματική μουσική.
|
||||
description.en_GB = A music pack without actual music.
|
||||
description.en_AU = A music pack without actual music.
|
||||
description.en_US = A music pack without actual music.
|
||||
description.es_ES = Un conjunto de música vacío.
|
||||
description.et_ET = Muusikakomplekt ilma igasuguse muusikata.
|
||||
description.et_EE = Muusikakogu ilma muusikata.
|
||||
description.fi_FI = Musiikkipaketti, jossa ei ole musiikkia.
|
||||
description.fr_FR = Un pack de musiques sans musiques.
|
||||
description.gd_GB = Pacaid ciùil anns nach eil fonn sam bith.
|
||||
description.gl_ES = Un conxunto de músicas sen ningunha música.
|
||||
description.hr_HR = Muzički paket bez ikakve muzike.
|
||||
description.hu_HU = Zenei alapcsomag zene nélkül.
|
||||
description.id_ID = Paket musik tanpa berisi musik.
|
||||
description.id_ID = Paket musik tanpa musik sungguhan.
|
||||
description.is_IS = Tónlistarpakki sem er í raun án tónlistar.
|
||||
description.it_IT = Un pacchetto musicale non contenente alcuna musica.
|
||||
description.ja_JP = 空の音楽パック
|
||||
description.ko_KR = 실제 음악이 없는 음악 목록입니다.
|
||||
description.lb_LU = E Musikpack ouni aktuell Musik.
|
||||
description.lt_LT = Muzikos pakas be muzikos.
|
||||
description.lv_LV = Mūzikas kopa bez mūzikas
|
||||
description.nb_NO = En musikkpakke uten noe musikk.
|
||||
description.nl_NL = Een muziekset zonder muziek.
|
||||
description.nn_NO = Ei musikkpakke utan noko musikk.
|
||||
description.pl_PL = Zestaw utworów muzycznych nie zawierający żadnej muzyki.
|
||||
description.pt_BR = Um pacote de músicas sem músicas.
|
||||
description.pt_PT = Um conjunto de música vazio.
|
||||
description.ro_RO = Un set de muzică fără muzică inclusă.
|
||||
description.ru_RU = "Пустой" набор музыкального оформления, не содержащий никакой музыки.
|
||||
description.sk_SK = Sada hudby neobsahujúca hudbu.
|
||||
description.sl_SL = Glasbeni paket z vključeno glasbo.
|
||||
description.sl_SI = Glasbeni paket z vključeno glasbo.
|
||||
description.sr_RS = Prazan skup muzičkih numera.
|
||||
description.sv_SE = Ett musikpaket utan någon musik.
|
||||
description.ta_IN = இசை இல்லாத இசைத்தொகுப்பு.
|
||||
description.th_TH = ชุดเพลงประกอบแบบไม่มีเสียงเพลง
|
||||
description.tr_TR = Müzik içermeyen boş bir müzik paketi.
|
||||
description.uk_UA = Порожній набір музики.
|
||||
description.vi_VN = Gói âm nhạc này không có nhạc nào.
|
||||
description.zh_CN = 一个没有实际内容的音乐包.
|
||||
description.zh_TW = 不含任何音樂的音樂集。
|
||||
|
||||
[files]
|
||||
|
@@ -10,34 +10,50 @@ fallback = true
|
||||
description = A sound pack without any sounds.
|
||||
description.af_ZA = 'n Klank stel sonder enige klanke.
|
||||
description.ar_EG = مجموعة صوت بدوت اصوات مضافة
|
||||
description.be_BY = "Пусты" набор гукавога афармленьня, які не зьмяшчае ніякіх гукаў.
|
||||
description.bg_BG = Празен звуков пакет.
|
||||
description.ca_ES = Un joc de sons sense cap so.
|
||||
description.cs_CZ = Prázdná sada zvuků.
|
||||
description.da_DA = En lydpakke uden lyde.
|
||||
description.cy_GB = Pecyn sain heb unrhyw effeithiau sain ynddo.
|
||||
description.da_DK = En lydpakke uden lyde.
|
||||
description.de_DE = Basissounds ohne Sound.
|
||||
description.el_GR = Ένα πάκετο ήχων χώρις ήχους.
|
||||
description.en_GB = A sound pack without any sounds.
|
||||
description.en_AU = A sound pack without any sounds.
|
||||
description.en_US = A sound pack without any sounds.
|
||||
description.es_ES = Un conjunto de sonidos vacío.
|
||||
description.et_ET = Ilma häälteta helipakk.
|
||||
description.fi_FI = Äänipaketti ilman ääniä.
|
||||
description.et_EE = Helikogu ilma helideta.
|
||||
description.eu_ES = Soinurik gabeko soinu pakete bat
|
||||
description.fi_FI = Äänipaketti, jossa ei ole ääniä.
|
||||
description.fr_FR = Un pack de sons sans sons.
|
||||
description.gd_GB = Pacaid fhuaimean anns nach eil fuaim sam bith.
|
||||
description.gl_ES = Un conxunto de sons sen ningún son
|
||||
description.hr_HR = Zvučni paket bez ikakvih zvukova.
|
||||
description.hu_HU = Hang alapcsomag hangok nélkül.
|
||||
description.id_ID = Paket efek suara tanpa berisi suara.
|
||||
description.id_ID = Paket efek suara tanpa suara apapun.
|
||||
description.is_IS = Hljóðpakki án hljóðs.
|
||||
description.it_IT = Un pacchetto sonoro non contenente alcun suono.
|
||||
description.ja_JP = 空の効果音パック
|
||||
description.ko_KR = 아무런 효과음도 없는 효과음 팩입니다.
|
||||
description.lb_LU = En Soundpack mat all den Sounds.
|
||||
description.lt_LT = Garsų pakas be jokių garsų.
|
||||
description.nb_NO = En lydpakke uten noen lyder.
|
||||
description.nl_NL = Een geluidset zonder geluid.
|
||||
description.nn_NO = Ei lydpakke utan nokon lydar.
|
||||
description.pl_PL = Zestaw dźwięków nie zawierający żadnych dźwięków.
|
||||
description.pt_BR = Um pacote de sons sem sons.
|
||||
description.pt_PT = Um conjunto de sons vazio.
|
||||
description.ro_RO = Un set de sunete fără nici un sunet inclus.
|
||||
description.ru_RU = "Пустой" набор звукового оформления, не содержащий никаких звуков.
|
||||
description.sk_SK = Zvuková sada neobsahujúca zvuky.
|
||||
description.sl_SL = Zvočni paket brez zvoka.
|
||||
description.sl_SI = Zvočni paket brez zvoka.
|
||||
description.sr_RS = Prazan skup zvukova.
|
||||
description.sv_SE = Ett ljudpaket utan några ljud.
|
||||
description.ta_IN = ஒலிகள் இல்லாத ஒலி தொகுப்பு.
|
||||
description.th_TH = ชุดเสียงแบบไร้เสียง
|
||||
description.tr_TR = Ses içermeyen boş bir ses kümesi.
|
||||
description.uk_UA = Порожній набір звуків.
|
||||
description.vi_VN = Gói âm thanh này không có âm thanh nào.
|
||||
description.zh_CN = 一个空的音效包.
|
||||
description.zh_TW = 不含任何音效的音效集。
|
||||
|
||||
[files]
|
||||
|
Binary file not shown.
Binary file not shown.
@@ -11,34 +11,49 @@ palette = DOS
|
||||
description = Original Transport Tycoon Deluxe DOS edition graphics.
|
||||
description.af_ZA = Oorspronklike Transport Tycoon Deluxe DOS uitgawe grafieke.
|
||||
description.ar_EG = النسخة الاصلية من ترانسبورت تايكون ديلوكس الرسومية نسخة الدوس
|
||||
description.be_BY = Арыґінальная ґрафіка з Transport Tycoon Deluxe для DOS.
|
||||
description.bg_BG = Оригинални графики на Transport Tycoon Deluxe за DOS.
|
||||
description.ca_ES = Gràfics originals de Transport Tycoon Deluxe per a DOS.
|
||||
description.cs_CZ = Původní sada grafik Transport Tycoon Deluxe (verze pro DOS).
|
||||
description.da_DA = Originalgrafik fra Transport Tycoon Deluxe DOS-version.
|
||||
description.cy_GB = Graffeg gwreiddiol fersiwn DOS o Transport Tycoon Deluxe.
|
||||
description.da_DK = Originalgrafik fra Transport Tycoon Deluxe DOS-version.
|
||||
description.de_DE = Original Transport Tycoon Deluxe DOS Basisgrafiken.
|
||||
description.el_GR = Αρχικά γραφικά από το Transport Tycoon Deluxe έκδοση DOS.
|
||||
description.en_GB = Original Transport Tycoon Deluxe DOS edition graphics.
|
||||
description.en_AU = Original Transport Tycoon Deluxe DOS edition graphics.
|
||||
description.en_US = Original Transport Tycoon Deluxe DOS edition graphics.
|
||||
description.es_ES = Gráficos originales de Transport Tycoon Deluxe versión DOS.
|
||||
description.et_ET = Algse Transport Tycoon Deluxe DOSi versiooni graafika.
|
||||
description.fi_FI = Alkuperäiset Transport Tycoon Deluxe DOS grafiikat.
|
||||
description.et_EE = Algse Transport Tycoon Deluxe DOSi versiooni graafika.
|
||||
description.fi_FI = Alkuperäiset Transport Tycoon Deluxen DOS-version grafiikat.
|
||||
description.fr_FR = Graphiques originaux de Transport Tycoon Deluxe (version DOS).
|
||||
description.gd_GB = Grafaigeachd aig an deasachadh DOS tùsail aig Transport Tycoon Deluxe.
|
||||
description.gl_ES = Graficos da edición orixinal de Transport Tycoon Deluxe para DOS.
|
||||
description.hr_HR = Originalna grafika za Transport Tycoon Deluxe DOS izdanje.
|
||||
description.hu_HU = Az eredeti Transport Tycoon Deluxe DOS verziójának grafikája.
|
||||
description.id_ID = Grafik orisinil Transport Tycoon Deluxe versi DOS.
|
||||
description.is_IS = Upprunalega grafíkin úr Transport Tycoon Deluxe DOS útgáfunni.
|
||||
description.it_IT = Grafica originale di Transport Tycoon Deluxe, edizione DOS.
|
||||
description.ja_JP = Transport Tycoon Deluxe オリジナル版 グラフィック (DOS)
|
||||
description.ko_KR = 오리지널 트랜스포트 타이쿤 디럭스 도스 에디션의 그래픽입니다.
|
||||
description.lb_LU = Original Transport Tycoon Deluxe DOS Editioun Grafik.
|
||||
description.lt_LT = Originali Transport Tycoon Deluxe DOS leidimo grafika.
|
||||
description.nb_NO = Original grafikk fra Transport Tycoon Deluxe for DOS.
|
||||
description.nl_NL = Originele graphics van de Transport Tycoon Deluxe DOS-versie.
|
||||
description.nn_NO = Original grafikk frå Transport Tycoon Deluxe for DOS.
|
||||
description.pl_PL = Oryginalna edycja grafik dla Transport Tycoon Deluxe DOS.
|
||||
description.pt_BR = Gráficos Originais do Transport Tycoon Deluxe, Edição DOS.
|
||||
description.pt_PT = Gráficos originais da edição DOS de Transport Tycoon Deluxe.
|
||||
description.ro_RO = Setul grafic original al Transport Tycoon Deluxe pentru DOS.
|
||||
description.ru_RU = Оригинальная графика из Transport Tycoon Deluxe для DOS.
|
||||
description.sk_SK = Pôvodná grafika Transport Tycoon Deluxe (DOS).
|
||||
description.sl_SL = Originalna grafika Transport Tycoon Deluxe za različico DOS.
|
||||
description.sl_SI = Originalna grafika Transport Tycoon Deluxe za različico DOS.
|
||||
description.sr_RS = Originalni skup grafika Transport Tycoon Deluxe DOS izdanja.
|
||||
description.sv_SE = Originalgrafiken från Transport Tycoon Deluxe, DOS-utgåvan.
|
||||
description.tr_TR = Orijinal Transport Tycoon Deluxe DOS sürümü grafikleri.
|
||||
description.ta_IN = அசல் டிரான்ஸ்ஃபோர்ட் டைகூன் டீலக்ஸ் DOS பதிப்பு அசைவூட்டங்கள்.
|
||||
description.th_TH = กราฟฟิกต้นตำหรับของ Transport Tycoon Deluxe DOS edition
|
||||
description.tr_TR = Özgün Transport Tycoon Deluxe DOS sürümü grafikleri.
|
||||
description.uk_UA = Оригінальна графіка з Transport Tycoon Deluxe DOS edition.
|
||||
description.vi_VN = Đồ họa gốc từ phiên bản Transport Tycoon Deluxe trên DOS
|
||||
description.zh_CN = 运输大亨DOS豪华版原版图形包.
|
||||
description.zh_TW = 原版 Transport Tycoon Deluxe DOS 版的圖形。
|
||||
|
||||
[files]
|
||||
@@ -55,7 +70,7 @@ TRGI.GRF = da6a6c9dcc451eec88d79211437b76a8
|
||||
TRGC.GRF = ed446637e034104c5559b32c18afe78d
|
||||
TRGH.GRF = ee6616fb0e6ef6b24892c58c93d86fc9
|
||||
TRGT.GRF = e30e8a398ae86c03dc534a8ac7dfb3b6
|
||||
OPENTTD.GRF = c683a77e1a43aed7db29ef318b166dd9
|
||||
OPENTTD.GRF = 75a93cea2ed455c2fd5dcbda39e53538
|
||||
|
||||
[origin]
|
||||
default = You can find it on your Transport Tycoon Deluxe CD-ROM.
|
||||
|
@@ -10,34 +10,49 @@ version = 0
|
||||
description = Original Transport Tycoon Deluxe DOS edition sounds.
|
||||
description.af_ZA = Oorspronklike Transport Tycoon Deluxe DOS uitgawe klanke.
|
||||
description.ar_EG = النسخة الاصلية من ترانسبورت تايكون ديلوكس الصوتية نسخة الدوس
|
||||
description.be_BY = Арыґінальны набор гукавога афармленьня з гульні Transport Tycoon Deluxe для DOS.
|
||||
description.bg_BG = Оригинални звуци на Transport Tycoon Deluxe за DOS.
|
||||
description.ca_ES = Sons originals de Transport Tycoon Deluxe per a DOS.
|
||||
description.cs_CZ = Původní sada zvuků Transport Tycoon Deluxe (verze pro DOS).
|
||||
description.da_DA = Originallyd fra Transport Tycoon Deluxe DOS-version.
|
||||
description.cy_GB = Effeithiau sain gwreiddiol fersiwn DOS o Transport Tycoon Deluxe.
|
||||
description.da_DK = Originallyd fra Transport Tycoon Deluxe DOS-version.
|
||||
description.de_DE = Original Transport Tycoon Deluxe DOS Basissounds.
|
||||
description.el_GR = Αρχικοί ήχοι από το Transport Tycoon Deluxe έκδοση DOS.
|
||||
description.en_GB = Original Transport Tycoon Deluxe DOS edition sounds.
|
||||
description.en_AU = Original Transport Tycoon Deluxe DOS edition sounds.
|
||||
description.en_US = Original Transport Tycoon Deluxe DOS edition sounds.
|
||||
description.es_ES = Sonidos originales de Transport Tycoon Deluxe versión DOS.
|
||||
description.et_ET = Algse Transport Tycoon Deluxe DOSi versiooni helid.
|
||||
description.fi_FI = Alkuperäiset Transport Tycoon Deluxe DOS äänet.
|
||||
description.et_EE = Algse Transport Tycoon Deluxe DOSi versiooni helid.
|
||||
description.fi_FI = Alkuperäiset Transport Tycoon Deluxen DOS-version äänet.
|
||||
description.fr_FR = Sons originaux de Transport Tycoon Deluxe (version DOS).
|
||||
description.gd_GB = Fuaimean aig an deasachadh DOS tùsail aig Transport Tycoon Deluxe.
|
||||
description.gl_ES = Sons da edición orixinal de Transport Tycoon Deluxe para DOS.
|
||||
description.hr_HR = Originalni zvukovi za Transport Tycoon Deluxe DOS izdanje.
|
||||
description.hu_HU = Az eredeti Transport Tycoon Deluxe DOS verziójának hangjai.
|
||||
description.fr_FR = Sons originaux de Transport Tycoon Deluxe (version DOS).
|
||||
description.id_ID = Efek suara orisinil Transport Tycoon Deluxe versi DOS.
|
||||
description.is_IS = Upprunalega hljóðið úr Transport Tycoon Deluxe DOS útgáfunni.
|
||||
description.it_IT = Suoni originali di Transport Tycoon Deluxe, edizione DOS.
|
||||
description.ja_JP = Transport Tycoon Deluxe オリジナル版 効果音 (DOS)
|
||||
description.ko_KR = 오리지널 트랜스포트 타이쿤 도스 에디션의 효과음입니다.
|
||||
description.lb_LU = Original Transport Tycoon Deluxe DOS Editioun Sound.
|
||||
description.lt_LT = Originalūs Transport Tycoon Deluxe DOS leidimo garsai.
|
||||
description.nb_NO = Originale lyder fra Transport Tycoon Deluxe for DOS.
|
||||
description.nl_NL = Originele geluiden van de Transport Tycoon Deluxe DOS-versie.
|
||||
description.nn_NO = Originale lydar frå Transport Tycoon Deluxe for DOS.
|
||||
description.pl_PL = Oryginalna edycja dźwięków dla Transport Tycoon Deluxe DOS.
|
||||
description.pt_BR = Sons Originais do Transport Tycoon Deluxe, Edição DOS.
|
||||
description.pt_PT = Sons originais da edição DOS de Transport Tycoon Deluxe.
|
||||
description.ro_RO = Setul de sunete original al Transport Tycoon Deluxe pentru DOS.
|
||||
description.ru_RU = Оригинальный набор звукового оформления из игры Transport Tycoon Deluxe для DOS.
|
||||
description.sk_SK = Pôvodné zvuky Transport Tycoon Deluxe (DOS).
|
||||
description.sl_SL = Originalni zvoki Transport Tycoon Deluxe različice DOS.
|
||||
description.sl_SI = Originalni zvoki Transport Tycoon Deluxe različice DOS.
|
||||
description.sr_RS = Originalni skup zvukova Transport Tycoon Deluxe DOS izdanja.
|
||||
description.sv_SE = Originalljuden från Transport Tycoon Deluxe, DOS-utgåvan.
|
||||
description.tr_TR = Orijinal Transport Tycoon Deluxe DOS sürümü sesleri.
|
||||
description.ta_IN = அசல் டிரான்ஸ்ஃபோர்ட் டைகூன் டீலக்ஸ் DOS பதிப்பு ஒலிகள்.
|
||||
description.th_TH = เสียงต้นตำหรับของ Transport Tycoon Deluxe DOS edition
|
||||
description.tr_TR = Özgün Transport Tycoon Deluxe DOS sürümü sesleri.
|
||||
description.uk_UA = Оригінальний набір звуків з Transport Tycoon Deluxe DOS edition.
|
||||
description.vi_VN = Âm thanh gốc từ phiên bản Transport Tycoon Deluxe trên DOS
|
||||
description.zh_CN = 运输大亨DOS豪华版原版音效包.
|
||||
description.zh_TW = 原版 Transport Tycoon Deluxe DOS 版的音效。
|
||||
|
||||
[files]
|
||||
|
@@ -11,34 +11,49 @@ palette = DOS
|
||||
description = Original Transport Tycoon Deluxe DOS (German) edition graphics.
|
||||
description.af_ZA = Oorspronklike Transport Tycoon Deluxe DOS (German) uitgawe grafieke.
|
||||
description.ar_EG = النسخة الاصلية من ترانسبورت تايكون ديلوكس الالمانية نسخة الدوس
|
||||
description.be_BY = Арыґінальная ґрафіка зь нямецкай версіі Transport Tycoon Deluxe для DOS.
|
||||
description.bg_BG = Оригинални графики на Transport Tycoon Deluxe за DOS (немски) .
|
||||
description.ca_ES = Gràfics originals de Transport Tycoon Deluxe per a DOS (Alemany).
|
||||
description.cs_CZ = Původní sada grafik Transport Tycoon Deluxe (německá verze pro DOS).
|
||||
description.da_DA = Originalgrafik fra Transport Tycoon Deluxe DOS (Tysk) version.
|
||||
description.cy_GB = Graffeg gwreiddiol fersiwn DOS (Almaenig) o Transport Tycoon Deluxe.
|
||||
description.da_DK = Originalgrafik fra Transport Tycoon Deluxe DOS (Tysk) version.
|
||||
description.de_DE = Original Transport Tycoon Deluxe DOS (Deutsch) Basisgrafiken.
|
||||
description.el_GR = Αρχικά γραφικά από το Transport Tycoon Deluxe έκδοση DOS (Γερμανικό).
|
||||
description.en_GB = Original Transport Tycoon Deluxe DOS (German) edition graphics.
|
||||
description.en_AU = Original Transport Tycoon Deluxe DOS (German) edition graphics.
|
||||
description.en_US = Original Transport Tycoon Deluxe DOS (German) edition graphics.
|
||||
description.es_ES = Gráficos originales de Transport Tycoon Deluxe versión DOS (Alemán).
|
||||
description.et_ET = Algse Transport Tycoon Deluxe DOSi (Saksa) versiooni graafika.
|
||||
description.fi_FI = Alkuperäiset Transport Tycoon Deluxe DOS (Saksalainen) grafiikat.
|
||||
description.et_EE = Algse Transport Tycoon Deluxe DOSi (Saksa) versiooni graafika.
|
||||
description.fi_FI = Alkuperäiset Saksassa julkaistun Transport Tycoon Deluxen DOS-version grafiikat.
|
||||
description.fr_FR = Graphiques originaux de Transport Tycoon Deluxe (version DOS allemande).
|
||||
description.gd_GB = Grafaigeachd aig an deasachadh DOS (Gearmailteach) tùsail aig Transport Tycoon Deluxe.
|
||||
description.gl_ES = Graficos da edición orixinal (alemá) de Transport Tycoon Deluxe para DOS.
|
||||
description.hr_HR = Originalna grafika za Transport Tycoon Deluxe DOS (Njemački) izdanje.
|
||||
description.hu_HU = Az eredeti Transport Tycoon Deluxe DOS (német) verziójának grafikája.
|
||||
description.id_ID = Grafik orisinil Transport Tycoon Deluxe versi DOS (Jerman).
|
||||
description.is_IS = Upprunalega grafíkin úr Transport Tycoon Deluxe DOS (þýsku) útgáfunni.
|
||||
description.it_IT = Grafica originale di Transport Tycoon Deluxe (tedesco), edizione DOS.
|
||||
description.ja_JP = Transport Tycoon Deluxe オリジナル版 グラフィック (DOS・ドイツ版)
|
||||
description.ko_KR = 오리지널 트랜스포트 타이쿤 디럭스 도스 에디션(독일)의 그래픽입니다.
|
||||
description.lb_LU = Original Transport Tycoon Deluxe DOS (Däitsch) Editioun Grafik.
|
||||
description.lt_LT = Originali Transport Tycoon Deluxe DOS (Vokiečių) leidimo grafika.
|
||||
description.nb_NO = Original grafikk fra Transport Tycoon Deluxe for DOS (tysk).
|
||||
description.nl_NL = Originele graphics van de Duitse Transport Tycoon Deluxe DOS-versie.
|
||||
description.nn_NO = Original grafikk frå Transport Tycoon Deluxe for DOS (tysk).
|
||||
description.pl_PL = Oryginalna edycja grafik dla Transport Tycoon Deluxe DOS (German).
|
||||
description.pt_BR = Gráficos Originais do Transport Tycoon Deluxe, Edição DOS alemã.
|
||||
description.pt_PT = Gráficos originais da edição DOS (Alemã) de Transport Tycoon Deluxe.
|
||||
description.ro_RO = Setul grafic original al Transport Tycoon Deluxe pentru DOS (ediţia germană).
|
||||
description.ru_RU = Оригинальная графика из немецкой версии Transport Tycoon Deluxe для DOS.
|
||||
description.sk_SK = Pôvodná grafika Transport Tycoon Deluxe (DOS) (v jazyku nemčina).
|
||||
description.sl_SL = Originalna grafika Transport Tycoon Deluxe za nemško različico DOS.
|
||||
description.sl_SI = Originalna grafika Transport Tycoon Deluxe za nemško različico DOS.
|
||||
description.sr_RS = Originalni skup grafika nemačkog Transport Tycoon Deluxe DOS izdanja.
|
||||
description.sv_SE = Originalgrafiken från Transport Tycoon Deluxe, DOS-utgåvan (tyska).
|
||||
description.tr_TR = Orijinal Transport Tycoon Deluxe DOS (Almanca) sürümü grafikleri.
|
||||
description.ta_IN = அசல் டிரான்ஸ்ஃபோர்ட் டைகூன் டீலக்ஸ் DOS (செருமன்) பதிப்பு அசைவூட்டங்கள்.
|
||||
description.th_TH = กราฟฟิกต้นตำหรับของ Transport Tycoon Deluxe DOS (German) edition
|
||||
description.tr_TR = Özgün Transport Tycoon Deluxe DOS (Almanca) sürümü grafikleri.
|
||||
description.uk_UA = Оригінальна графіка з Transport Tycoon Deluxe DOS edition (німецького).
|
||||
description.vi_VN = Đồ họa gốc từ phiên bản Transport Tycoon Deluxe trên DOS (tiếng Đức)
|
||||
description.zh_CN = 运输大亨DOS豪华德语版原版图形包.
|
||||
description.zh_TW = 原版 Transport Tycoon Deluxe DOS 版 (德國版) 的圖形。
|
||||
|
||||
[files]
|
||||
@@ -55,7 +70,7 @@ TRGI.GRF = da6a6c9dcc451eec88d79211437b76a8
|
||||
TRGC.GRF = ed446637e034104c5559b32c18afe78d
|
||||
TRGH.GRF = ee6616fb0e6ef6b24892c58c93d86fc9
|
||||
TRGT.GRF = fcde1d7e8a74197d72a62695884b909e
|
||||
OPENTTD.GRF = c683a77e1a43aed7db29ef318b166dd9
|
||||
OPENTTD.GRF = 75a93cea2ed455c2fd5dcbda39e53538
|
||||
|
||||
[origin]
|
||||
default = You can find it on your Transport Tycoon Deluxe CD-ROM.
|
||||
|
@@ -11,34 +11,49 @@ palette = Windows
|
||||
description = Original Transport Tycoon Deluxe Windows edition graphics.
|
||||
description.af_ZA = Oorspronklike Transport Tycoon Deluxe Windows uitgawe grafieke.
|
||||
description.ar_EG = النسخة الاصلية من ترانسبورت تايكون ديلوكس الرسومية نسخة وندوز
|
||||
description.be_BY = Арыґінальная ґрафіка з Transport Tycoon Deluxe для Windows.
|
||||
description.bg_BG = Оригинални графики на Transport Tycoon Deluxe за Windows.
|
||||
description.ca_ES = Gràfics originals de Transport Tycoon Deluxe per a Windows.
|
||||
description.cs_CZ = Původní sada grafik Transport Tycoon Deluxe (verze pro Windows).
|
||||
description.da_DA = Originalgrafik fra Transport Tycoon Deluxe Windows-version.
|
||||
description.cy_GB = Graffeg gwreiddiol fersiwn Windows o Transport Tycoon Deluxe.
|
||||
description.da_DK = Originalgrafik fra Transport Tycoon Deluxe Windows-version.
|
||||
description.de_DE = Original Transport Tycoon Deluxe Windows Basisgrafiken.
|
||||
description.el_GR = Αρχικά γραφικά από το Transport Tycoon Deluxe έκδοση Windows.
|
||||
description.en_GB = Original Transport Tycoon Deluxe Windows edition graphics.
|
||||
description.en_AU = Original Transport Tycoon Deluxe Windows edition graphics.
|
||||
description.en_US = Original Transport Tycoon Deluxe Windows edition graphics.
|
||||
description.es_ES = Gráficos originales de Transport Tycoon Deluxe versión Windows.
|
||||
description.et_ET = Algse Transport Tycoon Deluxe Windowsi versiooni graafika.
|
||||
description.fi_FI = Alkuperäiset Transport Tycoon Deluxe Windows grafiikat.
|
||||
description.et_EE = Algse Transport Tycoon Deluxe Windowsi versiooni graafika.
|
||||
description.fi_FI = Alkuperäiset Transport Tycoon Deluxen Windows-version grafiikat.
|
||||
description.fr_FR = Graphiques originaux de Transport Tycoon Deluxe (version Windows).
|
||||
description.gd_GB = Grafaigeachd aig an deasachadh Windows tùsail aig Transport Tycoon Deluxe.
|
||||
description.gl_ES = Graficos da edición orixinal de Transport Tycoon Deluxe para Windows.
|
||||
description.hr_HR = Originalna grafika za Transport Tycoon Deluxe Windows izdanje.
|
||||
description.hu_HU = Az eredeti Transport Tycoon Deluxe Windows verziójának grafikája.
|
||||
description.id_ID = Grafik orisinil Transport Tycoon Deluxe versi Windows.
|
||||
description.is_IS = Upprunalega grafíkin úr Transport Tycoon Deluxe Windows útgáfunni.
|
||||
description.it_IT = Grafica originale di Transport Tycoon Deluxe, edizione Windows.
|
||||
description.ja_JP = Transport Tycoon Deluxe オリジナル版 グラフィック (Windows)
|
||||
description.ko_KR = 오리지널 트랜스포트 타이쿤 디럭스 윈도 에디션의 그래픽입니다.
|
||||
description.lb_LU = Original Transport Tycoon Deluxe Windows Editioun Grafik.
|
||||
description.lt_LT = Originali Transport Tycoon Deluxe Windows leidimo grafika.
|
||||
description.nb_NO = Original grafikk fra Transport Tycoon Deluxe for Windows.
|
||||
description.nl_NL = Originele graphics van de Transport Tycoon Deluxe Windows-versie.
|
||||
description.nn_NO = Original grafikk frå Transport Tycoon Deluxe for Windows.
|
||||
description.pl_PL = Oryginalna edycja grafik dla Transport Tycoon Deluxe Windows.
|
||||
description.pt_BR = Gráficos Originais do Transport Tycoon, Edição Windows.
|
||||
description.pt_PT = Gráficos originais da edição Windows de Transport Tycoon Deluxe.
|
||||
description.ro_RO = Setul grafic original al Transport Tycoon Deluxe pentru Windows.
|
||||
description.ru_RU = Оригинальная графика из Transport Tycoon Deluxe для Windows.
|
||||
description.sk_SK = Pôvodná grafika Transport Tycoon Deluxe (Windows).
|
||||
description.sl_SL = Originalna grafika Transport Tycoon Deluxe za različico oken(windows).
|
||||
description.sl_SI = Originalna grafika Transport Tycoon Deluxe za različico oken(windows).
|
||||
description.sr_RS = Originalni skup grafika Transport Tycoon Deluxe Windows izdanja.
|
||||
description.sv_SE = Originalgrafiken från Transport Tycoon Deluxe, Windows-utgåvan.
|
||||
description.tr_TR = Orijinal Transport Tycoon Deluxe Windows sürümü grafikleri.
|
||||
description.ta_IN = அசல் டிரான்ஸ்ஃபோர்ட் டைகூன் டீலக்ஸ் விண்டோஸ் பதிப்பு அசைவூட்டங்கள்.
|
||||
description.th_TH = กราฟฟิกต้ำตำหรับของ Transport Tycoon Deluxe Windows edition
|
||||
description.tr_TR = Özgün Transport Tycoon Deluxe Windows sürümü grafikleri.
|
||||
description.uk_UA = Оригінальна графіка з Transport Tycoon Deluxe Windows edition.
|
||||
description.vi_VN = Đồ họa gốc từ phiên bản Transport Tycoon Deluxe trên Windows
|
||||
description.zh_CN = 运输大亨Windows豪华版原版图形包.
|
||||
description.zh_TW = 原版 Transport Tycoon Deluxe Windows 版的圖形。
|
||||
|
||||
[files]
|
||||
@@ -55,7 +70,7 @@ TRGIR.GRF = 0c2484ff6be49fc63a83be6ab5c38f32
|
||||
TRGCR.GRF = 3668f410c761a050b5e7095a2b14879b
|
||||
TRGHR.GRF = 06bf2b7a31766f048baac2ebe43457b1
|
||||
TRGTR.GRF = de53650517fe661ceaa3138c6edb0eb8
|
||||
OPENTTD.GRF = c683a77e1a43aed7db29ef318b166dd9
|
||||
OPENTTD.GRF = 75a93cea2ed455c2fd5dcbda39e53538
|
||||
|
||||
[origin]
|
||||
default = You can find it on your Transport Tycoon Deluxe CD-ROM.
|
||||
|
@@ -10,34 +10,50 @@ version = 1
|
||||
description = Original Transport Tycoon Deluxe Windows edition music.
|
||||
description.af_ZA = Oorspronklike Transport Tycoon Deluxe Windows uitgawe musiek.
|
||||
description.ar_EG = النسخة الاصلية من ترانسبورت تايكون ديلوكس الموسيقية نسخة وندوز
|
||||
description.be_BY = Арыґінальны набор музычнага афармленьня з гульні Transport Tycoon Deluxe для Windows.
|
||||
description.bg_BG = Оригинална музика на Transport Tycoon Deluxe за Windows.
|
||||
description.ca_ES = Música Original de Transport Tycoon Deluxe per a Windows.
|
||||
description.cs_CZ = Původní hudba Transport Tycoon Deluxe (verze pro Windows).
|
||||
description.da_DA = Originalmusik fra Transport Tycoon Deluxe Windows-version.
|
||||
description.cy_GB = Cerddoriaeth gwreiddiol fersion Windows o Transport Tycoon Deluxe.
|
||||
description.da_DK = Originalmusik fra Transport Tycoon Deluxe Windows-version.
|
||||
description.de_DE = Original Transport Tycoon Deluxe Windows Musikset.
|
||||
description.el_GR = Αρχική μουσική από το Transport Tycoon Deluxe έκδοση Windows.
|
||||
description.en_GB = Original Transport Tycoon Deluxe Windows edition music.
|
||||
description.en_AU = Original Transport Tycoon Deluxe Windows edition music.
|
||||
description.en_US = Original Transport Tycoon Deluxe Windows edition music.
|
||||
description.es_ES = Música original de Transport Tycoon Deluxe versión Windows.
|
||||
description.et_ET = Algse Transport Tycoon Deluxe Windowsi versiooni muusika.
|
||||
description.fi_FI = Alkuperäinen Transport Tycoon Deluxe Windows musiikki.
|
||||
description.et_EE = Algse Transport Tycoon Deluxe Windowsi versiooni muusika.
|
||||
description.fi_FI = Alkuperäinen Transport Tycoon Deluxen Windows-version musiikki.
|
||||
description.fr_FR = Musiques originales de Transport Tycoon Deluxe (version Windows).
|
||||
description.gd_GB = Ceòl aig an deasachadh Windows tùsail aig Transport Tycoon Deluxe.
|
||||
description.gl_ES = Música da edición orixinal de Transport Tycoon Deluxe para Windows.
|
||||
description.hr_HR = Originalna muzika za Transport Tycoon Deluxe Windows izdanje.
|
||||
description.hu_HU = Az eredeti Transport Tycoon Deluxe Windows verziójának zenéje.
|
||||
description.id_ID = Musik pengiring orisinil Transport Tycoon Deluxe versi Windows.
|
||||
description.is_IS = Upprunalega tónlistin úr Transport Tycoon Deluxe Windows útgáfunni.
|
||||
description.it_IT = Musica originale di Transport Tycoon Deluxe, edizione Windows.
|
||||
description.ja_JP = Transport Tycoon Deluxe オリジナル版 音楽 (Windows)
|
||||
description.ko_KR = 오리지널 트랜스포트 타이쿤 디럭스 윈도 에디션의 음악입니다.
|
||||
description.lb_LU = Original Transport Tycoon Deluxe Windows Editioun Music.
|
||||
description.lt_LT = Originali Transport Tycoon Deluxe Windows leidimo muzika.
|
||||
description.lv_LV = Oriģinālā Transport Tycoon Deluxe Windows izdevuma mūzika.
|
||||
description.nb_NO = Original musikk fra Transport Tycoon Deluxe for Windows.
|
||||
description.nl_NL = Originele muziek van de Transport Tycoon Deluxe Windows-versie.
|
||||
description.nn_NO = Original musikk frå Transport Tycoon Deluxe for Windows.
|
||||
description.pl_PL = Oryginalna edycja utworów muzycznych w Transport Tycoon Deluxe Windows.
|
||||
description.pt_BR = Música Original do Transport Tycoon Deluxe, Edição Windows
|
||||
description.pt_PT = Música original da edição Windows de Transport Tycoon Deluxe.
|
||||
description.ro_RO = Setul de muzică original al Transport Tycoon Deluxe pentru Windows.
|
||||
description.ru_RU = Оригинальный набор музыкального оформления из игры Transport Tycoon Deluxe.
|
||||
description.ru_RU = Оригинальный набор музыкального оформления из игры Transport Tycoon Deluxe для Windows.
|
||||
description.sk_SK = Pôvodná hudba z Transport Tycoon Deluxe (Windows).
|
||||
description.sl_SL = Originalna glasba Transport Tycoon Deluxe različice oken(windows).
|
||||
description.sl_SI = Originalna glasba Transport Tycoon Deluxe različice oken(windows).
|
||||
description.sr_RS = Originalni skup muzičkih numera Transport Tycoon Deluxe Windows izdanja.
|
||||
description.sv_SE = Originalmusiken från Transport Tycoon Deluxe, Windows-utgåvan.
|
||||
description.tr_TR = Orijinal Transport Tycoon Deluxe Windows sürümü müzikleri.
|
||||
description.ta_IN = அசல் டிரான்ஸ்ஃபோர்ட் டைகூன் டீலக்ஸ் விண்டோஸ் பதிப்பு இசை.
|
||||
description.th_TH = เพลงต้นตำหรับชอง Transport Tycoon Deluxe Windows edition
|
||||
description.tr_TR = Özgün Transport Tycoon Deluxe Windows sürümü müzikleri.
|
||||
description.uk_UA = Оригінальна музика з Transport Tycoon Deluxe Windows edition.
|
||||
description.vi_VN = Nhạc gốc từ phiên bản Transport Tycoon Deluxe trên Windows
|
||||
description.zh_CN = Transport Tycoon Deluxe(运输大亨Windows豪华版)的原版音乐包
|
||||
description.zh_TW = 原版 Transport Tycoon Deluxe Windows 版的音樂。
|
||||
|
||||
[files]
|
||||
|
@@ -10,34 +10,49 @@ version = 0
|
||||
description = Original Transport Tycoon Deluxe Windows edition sounds.
|
||||
description.af_ZA = Oorspronklike Transport Tycoon Deluxe Windows uitgawe klanke.
|
||||
description.ar_EG = النسخة الاصلية من ترانسبورت تايكون ديلوكس الصوتية نسخة وندوز
|
||||
description.be_BY = Арыґінальны набор гукавога афармленьня з гульні Transport Tycoon Deluxe для Windows.
|
||||
description.bg_BG = Оригинални звуци на Transport Tycoon Deluxe за Windows.
|
||||
description.ca_ES = Sons originals de Transport Tycoon Deluxe per a Windows.
|
||||
description.cs_CZ = Původní sada zvuků Transport Tycoon Deluxe (verze pro Windows).
|
||||
description.da_DA = Originallyd fra Transport Tycoon Deluxe Windows-version.
|
||||
description.cy_GB = Effeithiau sain gwreiddiol fersiwn Windows o Transport Tycoon Deluxe.
|
||||
description.da_DK = Originallyd fra Transport Tycoon Deluxe Windows-version.
|
||||
description.de_DE = Original Transport Tycoon Deluxe Windows Basissounds.
|
||||
description.el_GR = Αρχικοί ήχοι από το Transport Tycoon Deluxe έκδοση Windows.
|
||||
description.en_GB = Original Transport Tycoon Deluxe Windows edition sounds.
|
||||
description.en_AU = Original Transport Tycoon Deluxe Windows edition sounds.
|
||||
description.en_US = Original Transport Tycoon Deluxe Windows edition sounds.
|
||||
description.es_ES = Sonidos originales de Transport Tycoon Deluxe versión Windows.
|
||||
description.et_ET = Algse Transport Tycoon Deluxe Windowsi versiooni helid.
|
||||
description.fi_FI = Alkuperäiset Transport Tycoon Deluxe Windows äänet.
|
||||
description.et_EE = Algse Transport Tycoon Deluxe Windowsi versiooni helid.
|
||||
description.fi_FI = Alkuperäiset Transport Tycoon Deluxen Windows-version äänet.
|
||||
description.fr_FR = Sons originaux de Transport Tycoon Deluxe (version Windows).
|
||||
description.gd_GB = Fuaimean aig an deasachadh Windows tùsail aig Transport Tycoon Deluxe.
|
||||
description.gl_ES = Sons da edición orixinal de Transport Tycoon Deluxe para Windows.
|
||||
description.hr_HR = Originalni zvukovi za Transport Tycoon Deluxe Windows izdanje.
|
||||
description.hu_HU = Az eredeti Transport Tycoon Deluxe Windows verziójának hangjai.
|
||||
description.fr_FR = Sons originaux de Transport Tycoon Deluxe (version Windows).
|
||||
description.id_ID = Efek suara orisinil Transport Tycoon Deluxe versi Windows.
|
||||
description.is_IS = Upprunalega hljóðið úr Transport Tycoon Deluxe Windows útgáfunni.
|
||||
description.it_IT = Suoni originali di Transport Tycoon Deluxe, edizione Windows.
|
||||
description.ja_JP = Transport Tycoon Deluxe オリジナル版 効果音 (Windows)
|
||||
description.ko_KR = 오리지널 트랜스포트 타이쿤 디럭스 윈도 에디션의 효과음입니다.
|
||||
description.lb_LU = Original Transport Tycoon Deluxe Windows Editioun Sound.
|
||||
description.lt_LT = Originalūs Transport Tycoon Deluxe Windows leidimo garsai.
|
||||
description.nb_NO = Originale lyder fra Transport Tycoon Deluxe for Windows.
|
||||
description.nl_NL = Originele geluiden van de Transport Tycoon Deluxe Windows-versie.
|
||||
description.nn_NO = Originale lydar frå Transport Tycoon Deluxe for Windows.
|
||||
description.pl_PL = Oryginalna edycja dźwięków dla Transport Tycoon Deluxe Windows.
|
||||
description.pt_BR = Sons Originais do Transport Tycoon Deluxe, Edição Windows.
|
||||
description.pt_PT = Sons originais da edição Windows de Transport Tycoon Deluxe.
|
||||
description.ro_RO = Setul de sunete original al Transport Tycoon Deluxe pentru Windows.
|
||||
description.ru_RU = Оригинальный набор звукового оформления из игры Transport Tycoon Deluxe для Windows.
|
||||
description.sk_SK = Pôvodné zvuky Transport Tycoon Deluxe (Windows).
|
||||
description.sl_SL = Originalni zvoki Transport Tycoon Deluxe različice oken(windows).
|
||||
description.sl_SI = Originalni zvoki Transport Tycoon Deluxe različice oken(windows).
|
||||
description.sr_RS = Originalni skup zvukova Transport Tycoon Deluxe Windows izdanja.
|
||||
description.sv_SE = Originalljuden från Transport Tycoon Deluxe, Windows-utgåvan.
|
||||
description.tr_TR = Orijinal Transport Tycoon Deluxe Windows sürümü sesleri.
|
||||
description.ta_IN = அசல் டிரான்ஸ்ஃபோர்ட் டைகூன் டீலக்ஸ் விண்டோஸ் பதிப்பு ஒலிகள்.
|
||||
description.th_TH = เสียงต้นตำหรับของ Transport Tycoon Deluxe Windows edition
|
||||
description.tr_TR = Özgün Transport Tycoon Deluxe Windows sürümü sesleri.
|
||||
description.uk_UA = Оригінальний набір звуків з Transport Tycoon Deluxe Windows edition.
|
||||
description.vi_VN = Âm thanh gốc từ phiên bản Transport Tycoon Deluxe trên Windows
|
||||
description.zh_CN = Transport Tycoon Deluxe Windows (运输大亨Windows豪华版)的原版音效包.
|
||||
description.zh_TW = 原版 Transport Tycoon Deluxe Windows 版的音效。
|
||||
|
||||
[files]
|
||||
|
@@ -8,3 +8,11 @@
|
||||
*/
|
||||
|
||||
GSLog.Info("1.2 API compatability in effect.");
|
||||
|
||||
GSTown._SetGrowthRate <- GSTown.SetGrowthRate;
|
||||
GSTown.SetGrowthRate <- function(town_id, days_between_town_growth)
|
||||
{
|
||||
/* Growth rate 0 caused resetting the custom growth rate. While this was undocumented, it was used nevertheless (ofc). */
|
||||
if (days_between_town_growth == 0) days_between_town_growth = GSTown.TOWN_GROWTH_NORMAL;
|
||||
return GSTown._SetGrowthRate(town_id, days_between_town_growth);
|
||||
}
|
||||
|
@@ -6,3 +6,13 @@
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
GSLog.Info("1.3 API compatability in effect.");
|
||||
|
||||
GSTown._SetGrowthRate <- GSTown.SetGrowthRate;
|
||||
GSTown.SetGrowthRate <- function(town_id, days_between_town_growth)
|
||||
{
|
||||
/* Growth rate 0 caused resetting the custom growth rate. While this was undocumented, it was used nevertheless (ofc). */
|
||||
if (days_between_town_growth == 0) days_between_town_growth = GSTown.TOWN_GROWTH_NORMAL;
|
||||
return GSTown._SetGrowthRate(town_id, days_between_town_growth);
|
||||
}
|
||||
|
8
bin/game/compat_1.4.nut
Normal file
8
bin/game/compat_1.4.nut
Normal file
@@ -0,0 +1,8 @@
|
||||
/* $Id: compat_1.3.nut 24469 2012-08-13 19:33:17Z yexo $ */
|
||||
|
||||
/*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
874
changelog.txt
874
changelog.txt
File diff suppressed because it is too large
Load Diff
248
config.lib
248
config.lib
@@ -72,6 +72,7 @@ set_default() {
|
||||
with_zlib="1"
|
||||
with_lzma="1"
|
||||
with_lzo2="1"
|
||||
with_xdg_basedir="1"
|
||||
with_png="1"
|
||||
enable_builtin_depend="1"
|
||||
with_makedepend="0"
|
||||
@@ -91,6 +92,7 @@ set_default() {
|
||||
with_ccache="1"
|
||||
with_nforenum="1"
|
||||
with_grfcodec="1"
|
||||
with_sse="1"
|
||||
|
||||
save_params_array="
|
||||
build
|
||||
@@ -145,6 +147,7 @@ set_default() {
|
||||
with_zlib
|
||||
with_lzma
|
||||
with_lzo2
|
||||
with_xdg_basedir
|
||||
with_png
|
||||
enable_builtin_depend
|
||||
with_makedepend
|
||||
@@ -164,6 +167,7 @@ set_default() {
|
||||
with_ccache
|
||||
with_grfcodec
|
||||
with_nforenum
|
||||
with_sse
|
||||
CC CXX CFLAGS CXXFLAGS LDFLAGS CFLAGS_BUILD CXXFLAGS_BUILD LDFLAGS_BUILD"
|
||||
}
|
||||
|
||||
@@ -347,6 +351,13 @@ detect_params() {
|
||||
--without-liblzo2) with_lzo2="0";;
|
||||
--with-liblzo2=*) with_lzo2="$optarg";;
|
||||
|
||||
--with-xdg-basedir) with_xdg_basedir="2";;
|
||||
--without-xdg-basedir) with_xdg_basedir="0";;
|
||||
--with-xdg-basedir=*) with_xdg_basedir="$optarg";;
|
||||
--with-libxdg-basedir) with_xdg_basedir="2";;
|
||||
--without-libxdg-basedir) with_xdg_basedir="0";;
|
||||
--with-libxdg-basedir=*) with_xdg_basedir="$optarg";;
|
||||
|
||||
--with-png) with_png="2";;
|
||||
--without-png) with_png="0";;
|
||||
--with-png=*) with_png="$optarg";;
|
||||
@@ -438,6 +449,10 @@ detect_params() {
|
||||
--with-threads) with_threads="1";;
|
||||
--with-threads=*) with_threads="$optarg";;
|
||||
|
||||
--without-sse) with_sse="0";;
|
||||
--with-sse) with_sse="1";;
|
||||
--with-sse=*) with_sse="$optarg";;
|
||||
|
||||
CC=* | --CC=*) CC="$optarg";;
|
||||
CXX=* | --CXX=*) CXX="$optarg";;
|
||||
CFLAGS=* | --CFLAGS=*) CFLAGS="$optarg";;
|
||||
@@ -578,6 +593,7 @@ check_params() {
|
||||
|
||||
check_makedepend
|
||||
detect_cputype
|
||||
detect_sse_capable_architecture
|
||||
|
||||
if [ "$enable_static" = "1" ]; then
|
||||
if [ "$os" = "MINGW" ] || [ "$os" = "CYGWIN" ] || [ "$os" = "MORPHOS" ] || [ "$os" = "DOS" ]; then
|
||||
@@ -818,6 +834,7 @@ check_params() {
|
||||
fi
|
||||
fi
|
||||
|
||||
detect_xdg_basedir
|
||||
detect_png
|
||||
detect_freetype
|
||||
detect_fontconfig
|
||||
@@ -1012,6 +1029,12 @@ check_params() {
|
||||
|
||||
if [ -d "$ROOT_DIR/.svn" ] && [ -n "`svn help 2>/dev/null`" ]; then
|
||||
log 1 "checking revision... svn detection"
|
||||
elif [ -d "$ROOT_DIR/../.svn" ] && [ -n "`svn help 2>/dev/null`" ] && [ -n "`LC_ALL=C svn info $ROOT_DIR/.. | grep '^URL:.*tags$'`" ]; then
|
||||
# subversion changed its behaviour; now not all folders have a .svn folder,
|
||||
# but only the root folder. Since making tags requires a (sparse) checkout
|
||||
# of the tags folder, the folder of the tag does not have a .svn folder
|
||||
# anymore and this fails to detect the subversion repository checkout.
|
||||
log 1 "checking revision... svn detection (tag)"
|
||||
elif [ -d "$ROOT_DIR/.git" ] && [ -n "`git help 2>/dev/null`" ]; then
|
||||
log 1 "checking revision... git detection"
|
||||
elif [ -d "$ROOT_DIR/.hg" ] && [ -n "`hg help 2>/dev/null`" ]; then
|
||||
@@ -1449,12 +1472,16 @@ make_cflags_and_ldflags() {
|
||||
fi
|
||||
|
||||
if [ $enable_debug -le 2 ]; then
|
||||
if basename "$cc_host" | grep "gcc" &>/dev/null; then
|
||||
cc_host_is_gcc=`basename "$cc_host" | grep "gcc" &>/dev/null`
|
||||
if [ -n "$cc_host_is_gcc" ]; then
|
||||
# Define only when compiling with GCC. Some GLIBC versions use GNU
|
||||
# extensions in a way that breaks build with at least ICC.
|
||||
# This requires -O1 or more, so debug level 3 (-O0) is excluded.
|
||||
CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=2"
|
||||
fi
|
||||
|
||||
cc_build_is_gcc=`basename "$cc_build" | grep "gcc" &>/dev/null`
|
||||
if [ -n "$cc_build_is_gcc" ]; then
|
||||
# Just add -O1 to the tools needed for building.
|
||||
CFLAGS_BUILD="$CFLAGS_BUILD -D_FORTIFY_SOURCE=2 -O1"
|
||||
fi
|
||||
@@ -1474,6 +1501,9 @@ make_cflags_and_ldflags() {
|
||||
if [ "$with_threads" = "0" ]; then
|
||||
CFLAGS="$CFLAGS -DNO_THREADS"
|
||||
fi
|
||||
if [ "$with_sse" = "1" ]; then
|
||||
CFLAGS="$CFLAGS -DWITH_SSE"
|
||||
fi
|
||||
|
||||
if [ "`echo $1 | cut -c 1-3`" != "icc" ]; then
|
||||
if [ "$os" = "CYGWIN" ]; then
|
||||
@@ -1481,15 +1511,18 @@ make_cflags_and_ldflags() {
|
||||
LDFLAGS="$LDFLAGS -mwin32"
|
||||
fi
|
||||
if [ "$os" = "MINGW" ] || [ "$os" = "CYGWIN" ]; then
|
||||
flags="$flags -mno-cygwin"
|
||||
|
||||
if [ "$enable_console" != "0" ]; then
|
||||
LDFLAGS="$LDFLAGS -mno-cygwin -Wl,--subsystem,console"
|
||||
else
|
||||
LDFLAGS="$LDFLAGS -mno-cygwin -Wl,--subsystem,windows"
|
||||
if [ $cc_version -lt 46 ]; then
|
||||
flags="$flags -mno-cygwin"
|
||||
LDFLAGS="$LDFLAGS -mno-cygwin"
|
||||
fi
|
||||
|
||||
LIBS="$LIBS -lws2_32 -lwinmm -lgdi32 -ldxguid -lole32"
|
||||
if [ "$enable_console" != "0" ]; then
|
||||
LDFLAGS="$LDFLAGS -Wl,--subsystem,console"
|
||||
else
|
||||
LDFLAGS="$LDFLAGS -Wl,--subsystem,windows"
|
||||
fi
|
||||
|
||||
LIBS="$LIBS -lws2_32 -lwinmm -lgdi32 -ldxguid -lole32 -limm32"
|
||||
|
||||
if [ $cc_version -ge 44 ]; then
|
||||
LDFLAGS_BUILD="$LDFLAGS_BUILD -static-libgcc -static-libstdc++"
|
||||
@@ -1549,7 +1582,7 @@ make_cflags_and_ldflags() {
|
||||
LDFLAGS="$OSX_LD_SYSROOT $LDFLAGS"
|
||||
fi
|
||||
|
||||
if [ "$enable_universal" = "0" ] && [ $cc_version -ge 40 ]; then
|
||||
if [ "$enable_universal" = "0" ] && [ $cc_version -gt 40 ]; then
|
||||
# Only set the min version when not doing an universal build.
|
||||
# Universal builds set the version elsewhere.
|
||||
if [ "$cpu_type" = "64" ]; then
|
||||
@@ -1648,6 +1681,17 @@ make_cflags_and_ldflags() {
|
||||
CFLAGS="$CFLAGS -DWITH_LZO"
|
||||
fi
|
||||
|
||||
if [ -n "$xdg_basedir_config" ]; then
|
||||
CFLAGS="$CFLAGS -DWITH_XDG_BASEDIR"
|
||||
CFLAGS="$CFLAGS `$xdg_basedir_config --cflags | tr '\n\r' ' '`"
|
||||
|
||||
if [ "$enable_static" != "0" ]; then
|
||||
LIBS="$LIBS `$xdg_basedir_config --libs --static | tr '\n\r' ' '`"
|
||||
else
|
||||
LIBS="$LIBS `$xdg_basedir_config --libs | tr '\n\r' ' '`"
|
||||
fi
|
||||
fi
|
||||
|
||||
# 64bit machines need -D_SQ64
|
||||
if [ "$cpu_type" = "64" ] && [ "$enable_universal" = "0" ]; then
|
||||
CFLAGS="$CFLAGS -D_SQ64"
|
||||
@@ -1656,17 +1700,18 @@ make_cflags_and_ldflags() {
|
||||
|
||||
if [ -n "$png_config" ]; then
|
||||
CFLAGS="$CFLAGS -DWITH_PNG"
|
||||
CFLAGS="$CFLAGS `$png_config --cppflags --I_opts | tr '\n\r' ' '`"
|
||||
CFLAGS="$CFLAGS `$png_config --cflags | tr '\n\r' ' '`"
|
||||
|
||||
# The extra flags are unneeded for latest libpng-config, but some versions are so broken...
|
||||
if [ "$enable_static" != "0" ]; then
|
||||
if [ "$os" = "OSX" ]; then
|
||||
LIBS="$LIBS `$png_config --prefix`/lib/libpng.a"
|
||||
# fontconfig_config goes via pkg-config on all systems, which doesn't know --prefix
|
||||
# Also, despite the reason we link to the .a file ourself (because we can't use -static), we do need to ask pkg-config about possible other deps
|
||||
LIBS="$LIBS `$png_config --variable=prefix`/lib/libpng.a `$png_config --libs --static | sed s@-lpng[0-9]*@@`"
|
||||
else
|
||||
LIBS="$LIBS `$png_config --static --ldflags | tr '\n\r' ' '`"
|
||||
LIBS="$LIBS `$png_config --libs --static | tr '\n\r' ' '`"
|
||||
fi
|
||||
else
|
||||
LIBS="$LIBS `$png_config --ldflags | tr '\n\r' ' '`"
|
||||
LIBS="$LIBS `$png_config --libs | tr '\n\r' ' '`"
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -1709,9 +1754,9 @@ make_cflags_and_ldflags() {
|
||||
|
||||
# Some icu-configs have the 'feature' of not adding a space where others do add the space
|
||||
if [ "$static_icu" != "0" ]; then
|
||||
LIBS="$LIBS `$icu_config --ldflags-searchpath` `$icu_config --ldflags-libsonly | tr '\n\r' ' ' | sed s/licu/lsicu/g`"
|
||||
LIBS="$LIBS `$icu_config --ldflags-searchpath` `($icu_config --ldflags-libsonly; $icu_config --ldflags-layout) | tr '\n\r' ' ' | sed s/licu/lsicu/g`"
|
||||
else
|
||||
LIBS="$LIBS `$icu_config --ldflags-searchpath` `$icu_config --ldflags-libsonly | tr '\n\r' ' '`"
|
||||
LIBS="$LIBS `$icu_config --ldflags-searchpath` `($icu_config --ldflags-libsonly; $icu_config --ldflags-layout) | tr '\n\r' ' '`"
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -1745,7 +1790,7 @@ make_cflags_and_ldflags() {
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$have_non_const_iconv" != "no" ]; then
|
||||
if [ "$os" != "OSX" ] && [ "$have_non_const_iconv" != "no" ]; then
|
||||
CFLAGS="$CFLAGS -DHAVE_NON_CONST_ICONV"
|
||||
fi
|
||||
fi
|
||||
@@ -2671,42 +2716,64 @@ detect_libtimidity() {
|
||||
detect_library "$with_libtimidity" "libtimidity" "libtimidity.a" "" "timidity.h"
|
||||
}
|
||||
|
||||
detect_lzma() {
|
||||
# 0 means no, 1 is auto-detect, 2 is force
|
||||
if [ "$with_lzma" = "0" ]; then
|
||||
log 1 "checking liblzma... disabled"
|
||||
detect_pkg_config() {
|
||||
# $1 - config-param ($with_lzma value)
|
||||
# $2 - package name ('liblzma')
|
||||
# $3 - config name ('lzma_config', sets $lzma_config)
|
||||
# $4 - minimum module version ('2.3')
|
||||
|
||||
lzma_config=""
|
||||
# 0 means no, 1 is auto-detect, 2 is force
|
||||
if [ "$1" = "0" ]; then
|
||||
log 1 "checking $2... disabled"
|
||||
|
||||
eval "$3=\"\""
|
||||
return 0
|
||||
fi
|
||||
|
||||
if [ "$with_lzma" = "1" ] || [ "$with_lzma" = "" ] || [ "$with_lzma" = "2" ]; then
|
||||
lzma_config="pkg-config liblzma"
|
||||
log 2 "detecting $2"
|
||||
|
||||
if [ "$1" = "1" ] || [ "$1" = "" ] || [ "$1" = "2" ]; then
|
||||
pkg_config_call="pkg-config $2"
|
||||
else
|
||||
lzma_config="$with_lzma"
|
||||
pkg_config_call="$1"
|
||||
fi
|
||||
|
||||
version=`$lzma_config --modversion 2>/dev/null`
|
||||
version=`$pkg_config_call --modversion 2>/dev/null`
|
||||
ret=$?
|
||||
log 2 "executing $lzma_config --modversion"
|
||||
check_version "$4" "$version"
|
||||
version_ok=$?
|
||||
log 2 "executing $pkg_config_call --modversion"
|
||||
log 2 " returned $version"
|
||||
log 2 " exit code $ret"
|
||||
|
||||
if [ -z "$version" ] || [ "$ret" != "0" ]; then
|
||||
log 1 "checking liblzma... not found"
|
||||
if [ -z "$version" ] || [ "$ret" != "0" ] || [ "$version_ok" != "1" ]; then
|
||||
if [ -n "$version" ] && [ "$version_ok" != "1" ]; then
|
||||
log 1 "checking $2... needs at least version $4, $2 NOT enabled"
|
||||
else
|
||||
log 1 "checking $2... not found"
|
||||
fi
|
||||
|
||||
# It was forced, so it should be found.
|
||||
if [ "$with_lzma" != "1" ]; then
|
||||
log 1 "configure: error: pkg-config liblzma couldn't be found"
|
||||
log 1 "configure: error: you supplied '$with_lzma', but it seems invalid"
|
||||
if [ "$1" != "1" ]; then
|
||||
log 1 "configure: error: pkg-config $2 couldn't be found"
|
||||
log 1 "configure: error: you supplied '$1', but it seems invalid"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
lzma_config=""
|
||||
eval "$3=\"\""
|
||||
return 0
|
||||
fi
|
||||
|
||||
log 1 "checking liblzma... found"
|
||||
eval "$3=\"$pkg_config_call\""
|
||||
log 1 "checking $2... found"
|
||||
}
|
||||
|
||||
detect_lzma() {
|
||||
detect_pkg_config "$with_lzma" "liblzma" "lzma_config" "5.0"
|
||||
}
|
||||
|
||||
detect_xdg_basedir() {
|
||||
detect_pkg_config "$with_xdg_basedir" "libxdg-basedir" "xdg_basedir_config" "1.2"
|
||||
}
|
||||
|
||||
detect_png() {
|
||||
@@ -2733,33 +2800,7 @@ detect_png() {
|
||||
return 0
|
||||
fi
|
||||
|
||||
if [ "$with_png" = "1" ] || [ "$with_png" = "" ] || [ "$with_png" = "2" ]; then
|
||||
png_config="libpng-config"
|
||||
else
|
||||
png_config="$with_png"
|
||||
fi
|
||||
|
||||
version=`$png_config --version 2>/dev/null`
|
||||
ret=$?
|
||||
log 2 "executing $png_config --version"
|
||||
log 2 " returned $version"
|
||||
log 2 " exit code $ret"
|
||||
|
||||
if [ -z "$version" ] || [ "$ret" != "0" ]; then
|
||||
log 1 "checking libpng... not found"
|
||||
|
||||
# It was forced, so it should be found.
|
||||
if [ "$with_png" != "1" ]; then
|
||||
log 1 "configure: error: libpng-config couldn't be found"
|
||||
log 1 "configure: error: you supplied '$with_png', but it seems invalid"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
png_config=""
|
||||
return 0
|
||||
fi
|
||||
|
||||
log 1 "checking libpng... found"
|
||||
detect_pkg_config "$with_png" "libpng" "png_config" "1.2"
|
||||
}
|
||||
|
||||
detect_freetype() {
|
||||
@@ -2854,39 +2895,7 @@ detect_fontconfig() {
|
||||
return 0
|
||||
fi
|
||||
|
||||
if [ "$with_fontconfig" = "1" ] || [ "$with_fontconfig" = "" ] || [ "$with_fontconfig" = "2" ]; then
|
||||
fontconfig_config="pkg-config fontconfig"
|
||||
else
|
||||
fontconfig_config="$with_fontconfig"
|
||||
fi
|
||||
|
||||
version=`$fontconfig_config --modversion 2>/dev/null`
|
||||
ret=$?
|
||||
check_version '2.3' "$version"
|
||||
version_ok=$?
|
||||
log 2 "executing $fontconfig_config --modversion"
|
||||
log 2 " returned $version"
|
||||
log 2 " exit code $ret"
|
||||
|
||||
if [ -z "$version" ] || [ "$ret" != "0" ] || [ "$version_ok" != "1" ]; then
|
||||
if [ -n "$version" ] && [ "$version_ok" != "1" ]; then
|
||||
log 1 "checking libfontconfig... needs at least version 2.3.0, fontconfig NOT enabled"
|
||||
else
|
||||
log 1 "checking libfontconfig... not found"
|
||||
fi
|
||||
|
||||
# It was forced, so it should be found.
|
||||
if [ "$with_fontconfig" != "1" ]; then
|
||||
log 1 "configure: error: fontconfig-config couldn't be found"
|
||||
log 1 "configure: error: you supplied '$with_fontconfig', but it seems invalid"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
fontconfig_config=""
|
||||
return 0
|
||||
fi
|
||||
|
||||
log 1 "checking libfontconfig... found"
|
||||
detect_pkg_config "$with_fontconfig" "fontconfig" "fontconfig_config" "2.3"
|
||||
}
|
||||
|
||||
detect_icu() {
|
||||
@@ -3252,6 +3261,40 @@ detect_cputype() {
|
||||
rm -f tmp.64bit tmp.64bit.cpp
|
||||
}
|
||||
|
||||
detect_sse_capable_architecture() {
|
||||
# 0 means no, 1 is auto-detect, 2 is force
|
||||
if [ "$with_sse" = "0" ]; then
|
||||
log 1 "checking SSE... disabled"
|
||||
return
|
||||
fi
|
||||
|
||||
echo "#define _SQ64 1" > tmp.sse.cpp
|
||||
echo "#include <xmmintrin.h>" >> tmp.sse.cpp
|
||||
echo "#include <smmintrin.h>" >> tmp.sse.cpp
|
||||
echo "#include <tmmintrin.h>" >> tmp.sse.cpp
|
||||
echo "int main() { return 0; }" >> tmp.sse.cpp
|
||||
execute="$cxx_host -msse4.1 $CFLAGS tmp.sse.cpp -o tmp.sse 2>&1"
|
||||
sse="`eval $execute 2>/dev/null`"
|
||||
ret=$?
|
||||
log 2 "executing $execute"
|
||||
log 2 " returned $sse"
|
||||
log 2 " exit code $ret"
|
||||
if [ "$ret" = "0" ]; then
|
||||
log 1 "detecting SSE... found"
|
||||
else
|
||||
# It was forced, so it should be found.
|
||||
if [ "$with_sse" != "1" ]; then
|
||||
log 1 "configure: error: SSE couln't be found"
|
||||
log 1 "configure: error: you force enabled SSE, but it seems unavailable"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
log 1 "detecting SSE... not found"
|
||||
with_sse="0"
|
||||
fi
|
||||
rm -f tmp.sse tmp.exe tmp.sse.cpp
|
||||
}
|
||||
|
||||
make_sed() {
|
||||
T_CFLAGS="$CFLAGS"
|
||||
T_CXXFLAGS="$CXXFLAGS"
|
||||
@@ -3429,7 +3472,7 @@ generate_settings() {
|
||||
}
|
||||
|
||||
generate_grf() {
|
||||
STAGE="[GRF]"
|
||||
STAGE="[BASESET]"
|
||||
|
||||
make_sed
|
||||
|
||||
@@ -3479,7 +3522,7 @@ generate_src_osx() {
|
||||
CFLAGS="-isysroot $osx_sdk_path $CFLAGS_orig"
|
||||
LDFLAGS="-Wl,-syslibroot,$osx_sdk_path $LDFLAGS_orig"
|
||||
fi
|
||||
CFLAGS="$CFLAGS -D_SQ64 -DHAVE_NON_CONST_ICONV -DNO_QUICKTIME -UENABLE_COCOA_QUICKDRAW"
|
||||
CFLAGS="$CFLAGS -D_SQ64 -DNO_QUICKTIME -UENABLE_COCOA_QUICKDRAW"
|
||||
LIBS="`echo $LIBS | sed 's/-framework QuickTime//'`"
|
||||
fi
|
||||
|
||||
@@ -3622,13 +3665,16 @@ showhelp() {
|
||||
echo " --with-cocoa enables COCOA video driver (OSX ONLY)"
|
||||
echo " --with-sdl[=sdl-config] enables SDL video driver support"
|
||||
echo " --with-zlib[=zlib.a] enables zlib support"
|
||||
echo " --with-liblzma[=liblzma.a] enables liblzma support"
|
||||
echo " --with-liblzma[=\"pkg-config liblzma\"]"
|
||||
echo " enables liblzma support"
|
||||
echo " --with-liblzo2[=liblzo2.a] enables liblzo2 support"
|
||||
echo " --with-png[=libpng-config] enables libpng support"
|
||||
echo " --with-freetype[=freetype-config]"
|
||||
echo " enables libfreetype support"
|
||||
echo " --with-fontconfig[=pkg-config fontconfig]"
|
||||
echo " --with-fontconfig[=\"pkg-config fontconfig\"]"
|
||||
echo " enables fontconfig support"
|
||||
echo " --with-xdg-basedir[=\"pkg-config libxdg-basedir\"]"
|
||||
echo " enables XDG base directory support"
|
||||
echo " --with-icu[=icu-config] enables icu (used for right-to-left support)"
|
||||
echo " --static-icu try to link statically (libsicu instead of"
|
||||
echo " libicu; can fail as the new name is guessed)"
|
||||
@@ -3638,6 +3684,9 @@ showhelp() {
|
||||
echo " --with-makedepend[=makedepend] enables makedepend support"
|
||||
echo " --with-ccache enables ccache support"
|
||||
echo " --with-distcc enables distcc support"
|
||||
echo " --without-grfcodec disable usage of grfcodec and re-generation of base sets"
|
||||
echo " --without-threads disable threading support"
|
||||
echo " --without-sse disable SSE support (x86/x86_64 only)"
|
||||
echo ""
|
||||
echo "Some influential environment variables:"
|
||||
echo " CC C compiler command"
|
||||
@@ -3648,6 +3697,9 @@ showhelp() {
|
||||
echo " LDFLAGS linker flags, e.g. -L<lib dir> if you"
|
||||
echo " have libraries in a nonstandard"
|
||||
echo " directory <lib dir>"
|
||||
echo " CFLAGS_BUILD C compiler flags for build time tool generation"
|
||||
echo " CXXFLAGS_BUILD C++ compiler flags for build time tool generation"
|
||||
echo " LDFLAGS_BUILD linker flags for build time tool generation"
|
||||
echo ""
|
||||
echo "Use these variables to override the choices made by 'configure' or to help"
|
||||
echo "it to find libraries and programs with nonstandard names/locations."
|
||||
|
1
configure
vendored
1
configure
vendored
@@ -129,6 +129,7 @@ AWKCOMMAND='
|
||||
if ($0 == "DIRECTMUSIC" && "'$with_direct_music'" == "0") { next; }
|
||||
if ($0 == "LIBTIMIDITY" && "'$libtimidity'" == "" ) { next; }
|
||||
if ($0 == "HAVE_THREAD" && "'$with_threads'" == "0") { next; }
|
||||
if ($0 == "SSE" && "'$with_sse'" != "1") { next; }
|
||||
|
||||
skip += 1;
|
||||
|
||||
|
@@ -150,7 +150,8 @@ Table of contents
|
||||
|
||||
Note: No additional authentication is required for rcon commands.
|
||||
|
||||
The server will reply with a ADMIN_PACKET_SERVER_RCON packet. Applications
|
||||
The server will reply with one or more ADMIN_PACKET_SERVER_RCON packets.
|
||||
Finally an ADMIN_PACKET_ADMIN_RCON_END packet will be sent. Applications
|
||||
will not receive the answer twice if they have asked for the AdminUpdateType
|
||||
ADMIN_UPDATE_CONSOLE, as the result is not printed on the servers console
|
||||
(just like clients rcon commands).
|
||||
@@ -160,6 +161,13 @@ Table of contents
|
||||
Chat from the server itself will only be sent to the admin network when it
|
||||
was not sent from the admin network.
|
||||
|
||||
Note that when content is queried or updated via rcon, the processing
|
||||
happens asynchronously. But the ADMIN_PACKET_ADMIN_RCON_END packet is sent
|
||||
already right after the content is requested as there's no immediate output.
|
||||
Thus other packages and the output of content rcon command may be sent at
|
||||
an arbitrary later time, mixing into the output of other console activity,
|
||||
e.g. also of possible subsequent other rcon commands sent.
|
||||
|
||||
|
||||
5.0) Sending chat
|
||||
---- ------------
|
||||
|
262
docs/desync.txt
Normal file
262
docs/desync.txt
Normal file
@@ -0,0 +1,262 @@
|
||||
Some explanations about Desyncs
|
||||
Last updated: 2014-02-23
|
||||
------------------------------------------------------------------------
|
||||
|
||||
|
||||
Table of contents
|
||||
-----------------
|
||||
1.0) Desync theory
|
||||
* 1.1) OpenTTD multiplayer architecture
|
||||
* 1.2) What is a Desync and how is it detected
|
||||
* 1.3) Typical causes of Desyncs
|
||||
2.0) What to do in case of a Desync
|
||||
* 2.1) Cache debugging
|
||||
* 2.2) Desync recording
|
||||
3.0) Evaluating the Desync records
|
||||
* 3.1) Replaying
|
||||
* 3.2) Evaluation the replay
|
||||
* 3.3) Comparing savegames
|
||||
|
||||
|
||||
1.1) OpenTTD multiplayer architecture
|
||||
---- --------------------------------
|
||||
OpenTTD has a huge gamestate, which changes all of the time.
|
||||
The savegame contains the complete gamestate at a specific point
|
||||
in time. But this state changes completely each tick: Vehicles move
|
||||
and trees grow.
|
||||
|
||||
However, most of these changes in the gamestate are deterministic:
|
||||
Without a player interfering a vehicle follows its orders always
|
||||
in the same way, and trees always grow the same.
|
||||
|
||||
In OpenTTD multiplayer synchronisation works by creating a savegame
|
||||
when clients join, and then transfering that savegame to the client,
|
||||
so it has the complete gamestate at a fixed point in time.
|
||||
|
||||
Afterwards clients only receive 'commands', that is: Stuff which is
|
||||
not predictable, like
|
||||
- player actions
|
||||
- AI actions
|
||||
- GameScript actions
|
||||
- Admin Port command
|
||||
- rcon commands
|
||||
- ...
|
||||
|
||||
These commands contain the information on how to execute the command,
|
||||
and when to execute it. Time is measured in 'network frames'.
|
||||
Mind that network frames to not match ingame time. Network frames
|
||||
also run while the game is paused, to give a defined behaviour to
|
||||
stuff that is executing while the game is paused.
|
||||
|
||||
The deterministic part of the gamestate is run by the clients on
|
||||
their own. All they get from the server is the instruction to
|
||||
run the gamestate up to a certain network time, which basically
|
||||
says that there are no commands scheduled in that time.
|
||||
|
||||
When a client (which includes the server itself) wants to execute
|
||||
a command (i.e. a non-predictable action), it does this by
|
||||
- calling DoCommandP resp. DoCommandPInternal
|
||||
- These functions first do a local test-run of the command to
|
||||
check simple preconditions. (Just to give the client an
|
||||
immediate response without bothering the server and waiting for
|
||||
the response.) The test-run may not actually change the
|
||||
gamestate, all changes must be discarded.
|
||||
- If the local test-run succeeds the command is sent to the server.
|
||||
- The server inserts the command into the command queue, which
|
||||
assigns a network frame to the commands, i.e. when it shall be
|
||||
executed on all clients.
|
||||
- Enhanced with this specific timestamp, the command is send to all
|
||||
clients, which execute the command simultaneously in the same
|
||||
network frame in the same order.
|
||||
|
||||
1.2) What is a Desync and how is it detected
|
||||
---- ---------------------------------------
|
||||
In the ideal case all clients have the same gamestate as the server
|
||||
and run in sync. That is, vehicle movement is the same on all
|
||||
clients, and commands are executed the same everywhere and
|
||||
have the same results.
|
||||
|
||||
When a Desync happens, it means that the gamestates on the clients
|
||||
(including the server) are no longer the same. Just imagine
|
||||
that a vehicle picks the left line instead of the right line at
|
||||
a junction on one client.
|
||||
|
||||
The important thing here is, that noone notices when a Desync
|
||||
occurs. The desync client will continue to simulate the gamestate
|
||||
and execute commands from the server. Once the gamestate differs
|
||||
it will increasingly spiral out of control: If a vehicle picks a
|
||||
different route, it will arrive at a different time at a station,
|
||||
which will load different cargo, which causes other vehicles to
|
||||
load other stuff, which causes industries to notice different
|
||||
servicing, which causes industries to change production, ...
|
||||
the client could run all day in a different universe.
|
||||
|
||||
To limit how long a Desync can remain unnoticed, the server
|
||||
transfers some checksums every now and then for the gamestate.
|
||||
Currently this checksum is the state of the random number
|
||||
generator of the game logic. A lot of things in OpenTTD depend
|
||||
on the RNG, and if the gamestate differs, it is likely that the
|
||||
RNG is called at different times, and the state differs when
|
||||
checked.
|
||||
|
||||
The clients compare this 'checksum' with the checksum of their
|
||||
own gamestate at the specific network frame. If they differ,
|
||||
the client disconnects with a Desync error.
|
||||
|
||||
The important thing here is: The detection of the Desync is
|
||||
only an ultimate failure detection. It does not give any
|
||||
indication on when the Desync happened. The Desync may after
|
||||
all have occured long ago, and just did not affect the checksum
|
||||
up to now. The checksum may have matched 10 times or more
|
||||
since the Desync happend, and only now the Desync has spiraled
|
||||
enough to finally affect the checksum. (There was once a desync
|
||||
which was only noticed by the checksum after 20 game years.)
|
||||
|
||||
1.3) Typical causes of Desyncs
|
||||
---- -------------------------
|
||||
Desyncs can be caused by the following scenarios:
|
||||
- The savegame does not describe the complete gamestate.
|
||||
- Some information which affects the progression of the
|
||||
gamestate is not saved in the savegame.
|
||||
- Some information which affects the progression of the
|
||||
gamestate is not loaded from the savegame.
|
||||
This includes the case that something is not completely
|
||||
reset before loading the savegame, so data from the
|
||||
previous game is carried over to the new one.
|
||||
- The gamestate does not behave deterministic.
|
||||
- Cache mismatch: The game logic depends on some cached
|
||||
values, which are not invalidated properly. This is
|
||||
the usual case for NewGRF-specific Desyncs.
|
||||
- Undefined behaviour: The game logic performs multiple
|
||||
things in an undefined order or with an undefined
|
||||
result. E.g. when sorting something with a key while
|
||||
some keys are equal. Or some computation that depends
|
||||
on the CPU architecture (32/64 bit, little/big endian).
|
||||
- The gamestate is modified when it shall not be modified.
|
||||
- The test-run of a command alters the gamestate.
|
||||
- The gamestate is altered by a player or script without
|
||||
using commands.
|
||||
|
||||
|
||||
2.1) Cache debugging
|
||||
---- ---------------
|
||||
Desyncs which are caused by inproper cache validation can
|
||||
often be found by enabling cache validation:
|
||||
- Start OpenTTD with '-d desync=2'.
|
||||
- This will enable validation of caches every tick.
|
||||
That is, cached values are recomputed every tick and compared
|
||||
to the cached value.
|
||||
- Differences are logged to 'commands-out.log' in the autosave
|
||||
folder.
|
||||
|
||||
Mind that this type of debugging can also be done in singleplayer.
|
||||
|
||||
2.2) Desync recording
|
||||
---- ----------------
|
||||
If you have a server, which happens to encounter Desyncs often,
|
||||
you can enable recording of the gamestate alterations. This
|
||||
will later allow the replay the gamestate and locate the Desync
|
||||
cause.
|
||||
|
||||
There are two levels of Desync recording, which are enabled
|
||||
via '-d desync=2' resp. '-d desync=3'. Both will record all
|
||||
commands to a file 'commands-out.log' in the autosave folder.
|
||||
|
||||
If you have the savegame from the start of the server, and
|
||||
this command log you can replay the whole game. (see Section 3.1)
|
||||
|
||||
If you do not start the server from a savegame, there will
|
||||
also be a savegame created just after a map has been generated.
|
||||
The savegame will be named 'dmp_cmds_*.sav' and be put into
|
||||
the autosave folder.
|
||||
|
||||
In addition to that '-d desync=3' also creates regular savegames
|
||||
at defined spots in network time. (more defined than regular
|
||||
autosaves). These will be created in the autosave folder
|
||||
and will also be named 'dmp_cmds_*.sav'.
|
||||
|
||||
These saves allow comparing the gamestate with the original
|
||||
gamestate during replaying, and thus greatly help debugging.
|
||||
However, they also take a lot of disk space.
|
||||
|
||||
|
||||
3.1) Replaying
|
||||
---- ---------
|
||||
To replay a Desync recording, you need these files:
|
||||
- The savegame from when the server was started, resp.
|
||||
the automatically created savegame from when the map
|
||||
was generated.
|
||||
- The 'commands-out.log' file.
|
||||
- Optionally the 'dmp_cmds_*.sav'.
|
||||
Put these files into a safe spot. (Not your autosave folder!)
|
||||
|
||||
Next, prepare your OpenTTD for replaying:
|
||||
- Get the same version of OpenTTD as the original server was running.
|
||||
- Uncomment/enable the define 'DEBUG_DUMP_COMMANDS' in
|
||||
'src/network/network_func.h'.
|
||||
- Put the 'commands-out.log' into the root save folder, and rename
|
||||
it to 'commands.log'.
|
||||
- Run 'openttd -D -d desync=3 -g startsavegame.sav'.
|
||||
This replays the server log and creates new 'commands-out.log'
|
||||
and 'dmp_cmds_*.sav' in your autosave folder.
|
||||
|
||||
3.2) Evaluation the replay
|
||||
---- ---------------------
|
||||
The replaying will also compare the checksums which are part of
|
||||
the 'commands-out.log' with the replayed gamestate.
|
||||
If they differ, it will trigger a 'NOT_REACHED'.
|
||||
|
||||
If the replay succeeds without mismatch, that is the replay reproduces
|
||||
the original server state:
|
||||
- Repeat the replay starting from incrementally later 'dmp_cmds_*.sav'
|
||||
while truncating the 'commands.log' at the beginning appropriately.
|
||||
The 'dmp_cmds_*.sav' can be your own ones from the first reply, or
|
||||
the ones from the original server (if you have them).
|
||||
(This simulates the view of joining clients during the game.)
|
||||
- If one of those replays fails, you have located the Desync between
|
||||
the last dmp_cmds that reproduces the replay and the first one
|
||||
that fails.
|
||||
|
||||
If you have the original 'dmp_cmds_*.sav', you can also compare those
|
||||
savegames with your own ones from the replay. You can also comment/disable
|
||||
the 'NOT_REACHED' mentioned above, to get another 'dmp_cmds_*.sav' from
|
||||
the replay after the mismatch has already been detected.
|
||||
See Section 3.2 on how to compare savegames.
|
||||
If the saves differ you have located the Desync between the last dmp_cmds
|
||||
that match and the first one that does not. The difference of the saves
|
||||
may point you in the direction of what causes it.
|
||||
|
||||
If the replay succeeds without mismatch, and you do not have any
|
||||
'dmp_cmd_*.sav' from the original server, it is a lost case.
|
||||
Enable creation of the 'dmp_cmd_*.sav' on the server, and wait for the
|
||||
next Desync.
|
||||
|
||||
Finally, you can also compare the 'commands-out.log' from the original
|
||||
server with the one from the replay. They will differ in stuff like
|
||||
dates, and the original log will contain the chat, but otherwise they
|
||||
should match.
|
||||
|
||||
3.2) Comparing savegames
|
||||
---- -------------------
|
||||
The binary form of the savegames from the original server and from
|
||||
your replay will always differ:
|
||||
- The savegame contains paths to used NewGRF files.
|
||||
- The gamelog will log your loading of the savegame.
|
||||
- The savegame data of AIs and the Gamescript will differ.
|
||||
Scripts are not run during the replay, only their recorded commands
|
||||
are replayed. Their internal state will thus not change in the
|
||||
replay and will differ.
|
||||
|
||||
To compare savegame more semantically, there exist some ugly hackish
|
||||
tools at:
|
||||
http://devs.openttd.org/~frosch/texts/zpipe.c
|
||||
http://devs.openttd.org/~frosch/texts/printhunk.c
|
||||
|
||||
The first one decompresses OpenTTD savegames. The second one creates
|
||||
a textual representation of an uncompressed savegame, by parsing hunks
|
||||
and arrays and such. With both tools you need to be a bit careful
|
||||
since they work on stdin and stdout, which may not deal well with
|
||||
binary data.
|
||||
|
||||
If you have the textual representation of the savegames, you can
|
||||
compare them with regular diff tools.
|
@@ -640,7 +640,7 @@
|
||||
<ul>
|
||||
<li>m1 bits 4..0: <a href="#OwnershipInfo">owner</a> of the depot</li>
|
||||
<li>m2: Depot index</li>
|
||||
<li>m5 bits 3..0: exit towards:
|
||||
<li>m5 bits 1..0: exit towards:
|
||||
<table>
|
||||
<tr>
|
||||
<td><tt>0</tt> </td>
|
||||
@@ -1593,41 +1593,14 @@
|
||||
<td valign=top nowrap> </td>
|
||||
<td>
|
||||
<ul>
|
||||
<li>m1 bits 6..5 : Water class (sea, canal, river or land)
|
||||
<li>m1 bits 6..5 : Water class (sea, canal, river or land)</li>
|
||||
<li>m1 bits 4..0: <a href="#OwnershipInfo">owner</a> of the object (for lighthouses and transmitters normally <tt>10</tt>)</li>
|
||||
<li>m2: index into the array of objects
|
||||
<li>m3: random bits
|
||||
<li>m5: tile type:
|
||||
<table>
|
||||
<tr>
|
||||
<td nowrap valign=top><tt>00</tt> </td>
|
||||
<td align=left>transmitter</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td nowrap valign=top><tt>01</tt> </td>
|
||||
<td align=left>lighthouse</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td nowrap valign=top><tt>02</tt> </td>
|
||||
<td align=left>company statue
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td nowrap valign=top><tt>03</tt> </td>
|
||||
<td align=left>company-owned land</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td nowrap valign=top><tt>04</tt><tt></tt> </td>
|
||||
<td align=left>company headquarters</td>
|
||||
</tr>
|
||||
</table>
|
||||
</li>
|
||||
<li>m2: index into the array of objects, bits 0 to 15 (upper bits in m5)</li>
|
||||
<li>m3: random bits</li>
|
||||
<li>m5: index into the array of objects, bits 16 to 23 (lower bits in m2)</li>
|
||||
<li>m6 bits 7..6 : Possibility of a bridge above, in the <a href="#bridge_direction">direction specified</a></li>
|
||||
<li>m6 bits 1..0 : <a href="#tropic_zone">Tropic zone definition</a></li>
|
||||
<li>m7: animation counter
|
||||
<li>m7: animation counter</li>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
|
@@ -115,7 +115,7 @@ the array so you can quickly see what is used and what is not.
|
||||
<td class="bits">XXXX XXXX XXXX XXXX</td>
|
||||
<td class="bits"><span class="free">OOOO</span> XXXX</td>
|
||||
<td class="bits"><span class="free">OOOO</span> XXXX</td>
|
||||
<td class="bits">XX<span class="free">O</span>X <span class="free">O</span>XXX</td>
|
||||
<td class="bits">XX<span class="free">O</span>X <span class="free">OO</span>XX</td>
|
||||
<td class="bits">XX<span class="free">OO OO</span>XX</td>
|
||||
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
||||
</tr>
|
||||
@@ -208,7 +208,7 @@ the array so you can quickly see what is used and what is not.
|
||||
<td class="bits">XXXX <span class="free">OOOO</span></td>
|
||||
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
||||
<td class="bits"><span class="option">~~~~ ~</span>XXX</td>
|
||||
<td class="bits"><span class="free">OO</span>XX XXXX</td>
|
||||
<td class="bits"><span class="free">OO</span>XX X<span class="free">O</span>XX</td>
|
||||
<td class="bits">XX<span class="free">O</span>X XXXX</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -311,7 +311,7 @@ the array so you can quickly see what is used and what is not.
|
||||
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
||||
<td class="bits">X<span class="free">OO</span>X XXXX</td>
|
||||
<td class="bits">XX<span class="free">OO OO</span>XX</td>
|
||||
<td class="bits">XXXX X<span class="free">O</span>XX</td>
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>bridge ramp</td>
|
||||
|
30
docs/linkgraph.txt
Normal file
30
docs/linkgraph.txt
Normal file
@@ -0,0 +1,30 @@
|
||||
Some clarifications about the link graph
|
||||
----------------------------------------
|
||||
|
||||
InitializeLinkGraphs joins all threads, so if the game is abandoned
|
||||
with some threads still running, they're joined as soon as the next game
|
||||
(possibly the title game) is started. See also InitializeGame.
|
||||
|
||||
The MCF (multi-commodity flow) algorithm can be quite CPU-hungry as it's
|
||||
NP-hard and takes exponential time (though with a very small constant
|
||||
factor) in the number of nodes.
|
||||
This is why it is run in a separate thread where possible. However after
|
||||
some time the thread is joined and if it hasn't finished by then the game
|
||||
will hang. This problem gets worse if we are running on a platform without
|
||||
threads. However, as those are usually the ones with less CPU power I
|
||||
assume the contention for the CPU would make the game hard to play even
|
||||
with threads or even without cargodist (autosave ...). I might be wrong,
|
||||
but I won't put any work into this before someone shows me some problem.
|
||||
|
||||
You can configure the link graph recalculation time. A link graph
|
||||
recalculation time of X days means that each link graph job has X days
|
||||
to run before it is joined. The downside is that the flow stats won't be
|
||||
updated before the job is finished and thus a high value means less
|
||||
updates and longer times until changes in capacities are accounted for.
|
||||
If you play a very large map with a complicated link graph you may want to
|
||||
raise the time setting to avoid lags. The same holds for systems with slow
|
||||
CPUs.
|
||||
|
||||
Another option to avoid excessive lags is to reduce the accuracy of link
|
||||
graph calculations. Generally the accuracy is inversely correlated to the
|
||||
CPU requirements of the MCF algorithm.
|
@@ -70,7 +70,7 @@ ROOT_DIR=`pwd`
|
||||
# Determine if we are using a modified version
|
||||
# Assume the dir is not modified
|
||||
MODIFIED="0"
|
||||
if [ -d "$ROOT_DIR/.svn" ]; then
|
||||
if [ -d "$ROOT_DIR/.svn" ] || [ -d "$ROOT_DIR/../.svn" ]; then
|
||||
# We are an svn checkout
|
||||
if [ -n "`svnversion | grep 'M'`" ]; then
|
||||
MODIFIED="2"
|
||||
|
102
known-bugs.txt
102
known-bugs.txt
@@ -1,14 +1,13 @@
|
||||
OpenTTD's known bugs
|
||||
Last updated: 2012-06-01
|
||||
Release version: 1.2.1
|
||||
Last updated: 2014-08-03
|
||||
Release version: 1.4.2-RC2
|
||||
------------------------------------------------------------------------
|
||||
|
||||
|
||||
Table of contents
|
||||
-----------------
|
||||
1.0) About
|
||||
2.0) Known bugs in this release
|
||||
* 2.1) Known bugs that will not be solved
|
||||
2.0) Known bugs
|
||||
|
||||
|
||||
1.0) About
|
||||
@@ -17,36 +16,13 @@ All bugs listed below are marked as known. Please do not submit any bugs
|
||||
that are the same as these. If you do, do not act surprised, because
|
||||
we WILL flame you!!
|
||||
|
||||
Of course if you have more knowledge about any of these bugs, have more
|
||||
specifics, we welcome you to report them. React to the given bug indicated
|
||||
by the number below on http://bugs.openttd.org.
|
||||
The current list of known bugs that we intend to fix can be found in our
|
||||
bug tracking system at: http://bugs.openttd.org
|
||||
Also check the closed bugs when searching for your bug in this system as
|
||||
we might have fixed the bug in the mean time.
|
||||
|
||||
|
||||
2.0) Known bugs in this release
|
||||
---- --------------------------
|
||||
The following bugs are known to exist in this release and we intend to
|
||||
fix them. Some bugs are known but are not fixable or fixing them would
|
||||
cause further problems. Those bugs can be found in the "Known bugs that
|
||||
will not be solved" section.
|
||||
|
||||
The bugs in this section all refer to a ticket in our bug tracking system
|
||||
that you can find at: http://bugs.openttd.org
|
||||
If the bugs are closed but still listed here it means that the bug is fixed
|
||||
and that the nightlies and next major release will not have that bug.
|
||||
|
||||
Issues prefixed with [OSX] are required to be fixed before we consider
|
||||
officially supporting Mac OS X again. For now it remains unsupported and
|
||||
we only apply bug fixes provided by the community but we are unable to fix
|
||||
these bugs ourselves.
|
||||
|
||||
- 4857 [OSX] No support for detecting mono space font
|
||||
- 4847 [OSX] No support for bootstrap downloading of base graphics
|
||||
- 4744 [OSX] Crash when switching to full screen with OS X Lion
|
||||
- 4689 [OSX] Crash when hiding window after coming from full screen
|
||||
- 4420 [OSX] OS' mouse pointer still shows
|
||||
- 2484 [OSX] Cannot enter CJK characters
|
||||
|
||||
2.1) Known bugs that will not be solved
|
||||
2.0) Known bugs
|
||||
---- ----------------------------------
|
||||
This section lists all known bugs that we do not intend to fix and the
|
||||
reasons why we think that fixing them is infeasible. We might make some
|
||||
@@ -57,12 +33,13 @@ No suitable AI can be found
|
||||
If you have no AIs and an AI is started the so-called 'dummy' AI will
|
||||
be loaded. This AI does nothing but writing a message on the AI debug
|
||||
window and showing a red warning. There are basically two solutions
|
||||
for this problem: you must change the settings so no AI is started,
|
||||
this is done in the difficulty settings window. The other solution is
|
||||
acquiring (downloading) some AI. The easiest way to do this is via
|
||||
the "Check Online Content" button in the main (intro) menu or via
|
||||
"AI Settings" -> "Select AI" -> "Check Online Content" which is also
|
||||
accessed via the main menu.
|
||||
for this problem: Either you set the number of AI players to 0 so that
|
||||
no AI is started. You find that setting at the top of the window in the
|
||||
"AI / Game Scripts Settings" window.
|
||||
The other solution is acquiring (downloading) some AI. The easiest way
|
||||
to do this is via the "Check Online Content" button in the main (intro)
|
||||
menu or directly in the "AI / Game Scripts Settings" dialogue via the
|
||||
"Check Online Content" button.
|
||||
|
||||
After a while of playing, colours get corrupted
|
||||
In Windows 7 the background slideshow corrupts the colour mapping of
|
||||
@@ -427,3 +404,52 @@ Mouse cursor going missing with SDL [FS#4997]:
|
||||
We cannot fix this problem as SDL simply does not provide the
|
||||
required information in these corner cases. This is a bug in SDL
|
||||
and as such there is little that we can do about it.
|
||||
|
||||
Inconsistent catchment areas [FS#5661]:
|
||||
Due to performance decisions the catchment area for cargo accepted
|
||||
by a station for delivery to houses or industries differs from the
|
||||
catchment area for cargo that is delivered to stations from houses
|
||||
or industries.
|
||||
|
||||
Conceptually they work the same, but the effect in game differs.
|
||||
They work by finding the closest destination "around" the source
|
||||
which is within a certain distance. This distance depends on the
|
||||
type of station, e.g. road stops have a smaller catchment area than
|
||||
large airports. In both cases the bounding box, the smallest
|
||||
rectangle that contains all tiles of something, is searched for the
|
||||
target of the cargo, and then spiraling outwards finding the closest
|
||||
tile of the target.
|
||||
|
||||
In the case of a station with two tiles spread far apart with a house
|
||||
that is within the station's bounding box, it would be possible that
|
||||
the spiraling search from the house does not reach one of the station
|
||||
tiles before the search ends, i.e. all tiles within that distance
|
||||
are searched. So the house does not deliver cargo to the station. On
|
||||
the other hand, the station will deliver cargo because the house
|
||||
falls within the bounding box, and thus search area.
|
||||
|
||||
It is possible to make these consistent, but then cargo from a house
|
||||
to a station needs to search up to 32 tiles around itself, i.e. 64
|
||||
by 64 tiles, to find all possible stations it could deliver to
|
||||
instead of 10 by 10 tiles (40 times more tiles). Alternatively the
|
||||
search from a station could be changed to use the actual tiles, but
|
||||
that would require considering checking 10 by 10 tiles for each of
|
||||
the tiles of a station, instead of just once.
|
||||
|
||||
Trains might not stop at platforms that are currently being changed [FS#5553]:
|
||||
If you add tiles to or remove tiles from a platform while a train is
|
||||
approaching to stop at the same platform, that train can miss the place
|
||||
where it's supposed to stop and pass the station without stopping. This
|
||||
is caused by the fact that the train is considered to already have stopped
|
||||
if it's beyond its assigned stopping location. We can't let the train stop
|
||||
just anywhere in the station because then it would never leave the station
|
||||
if you have the same station in the order list multiple times in a row or
|
||||
if there is only one station in the order list (see FS#5684).
|
||||
|
||||
Some houses and industries are not affected by transparency [FS#5817]:
|
||||
Some of the default houses and industries (f.e. the iron ore mine) are
|
||||
not affected by the transparency options. This is because the graphics do
|
||||
not (completely) separate the ground from the building.
|
||||
This is a bug of the original graphics, and unfortunately cannot be
|
||||
fixed with OpenGFX for the sake of maintaining compatibility with the
|
||||
original graphics.
|
||||
|
50
media/baseset/no_music.obm
Normal file
50
media/baseset/no_music.obm
Normal file
@@ -0,0 +1,50 @@
|
||||
; $Id$
|
||||
;
|
||||
; This represents more or less nothingness
|
||||
;
|
||||
[metadata]
|
||||
name = NoMusic
|
||||
shortname = NULL
|
||||
version = 0
|
||||
fallback = true
|
||||
!! description STR_BASEMUSIC_NONE_DESCRIPTION
|
||||
|
||||
[files]
|
||||
theme =
|
||||
old_0 =
|
||||
old_1 =
|
||||
old_2 =
|
||||
old_3 =
|
||||
old_4 =
|
||||
old_5 =
|
||||
old_6 =
|
||||
old_7 =
|
||||
old_8 =
|
||||
old_9 =
|
||||
new_0 =
|
||||
new_1 =
|
||||
new_2 =
|
||||
new_3 =
|
||||
new_4 =
|
||||
new_5 =
|
||||
new_6 =
|
||||
new_7 =
|
||||
new_8 =
|
||||
new_9 =
|
||||
ezy_0 =
|
||||
ezy_1 =
|
||||
ezy_2 =
|
||||
ezy_3 =
|
||||
ezy_4 =
|
||||
ezy_5 =
|
||||
ezy_6 =
|
||||
ezy_7 =
|
||||
ezy_8 =
|
||||
ezy_9 =
|
||||
|
||||
[md5s]
|
||||
|
||||
[names]
|
||||
|
||||
[origin]
|
||||
default = This file was part of your OpenTTD installation.
|
18
media/baseset/no_sound.obs
Normal file
18
media/baseset/no_sound.obs
Normal file
@@ -0,0 +1,18 @@
|
||||
; $Id$
|
||||
;
|
||||
; This represents more or less nothingness
|
||||
;
|
||||
[metadata]
|
||||
name = NoSound
|
||||
shortname = NULL
|
||||
version = 2
|
||||
fallback = true
|
||||
!! description STR_BASESOUNDS_NONE_DESCRIPTION
|
||||
|
||||
[files]
|
||||
samples =
|
||||
|
||||
[md5s]
|
||||
|
||||
[origin]
|
||||
default = This file was part of your OpenTTD installation.
|
31
media/baseset/orig_dos.obg
Normal file
31
media/baseset/orig_dos.obg
Normal file
@@ -0,0 +1,31 @@
|
||||
; $Id$
|
||||
;
|
||||
; This represents the original graphics as on the non-German Transport
|
||||
; Tycoon Deluxe DOS CD.
|
||||
;
|
||||
[metadata]
|
||||
name = original_dos
|
||||
shortname = TTDD
|
||||
version = 1
|
||||
palette = DOS
|
||||
!! description STR_BASEGRAPHICS_DOS_DESCRIPTION
|
||||
|
||||
[files]
|
||||
base = TRG1.GRF
|
||||
logos = TRGI.GRF
|
||||
arctic = TRGC.GRF
|
||||
tropical = TRGH.GRF
|
||||
toyland = TRGT.GRF
|
||||
extra = OPENTTD.GRF
|
||||
|
||||
[md5s]
|
||||
TRG1.GRF = 9311676280e5b14077a8ee41c1b42192
|
||||
TRGI.GRF = da6a6c9dcc451eec88d79211437b76a8
|
||||
TRGC.GRF = ed446637e034104c5559b32c18afe78d
|
||||
TRGH.GRF = ee6616fb0e6ef6b24892c58c93d86fc9
|
||||
TRGT.GRF = e30e8a398ae86c03dc534a8ac7dfb3b6
|
||||
OPENTTD.GRF =
|
||||
|
||||
[origin]
|
||||
default = You can find it on your Transport Tycoon Deluxe CD-ROM.
|
||||
OPENTTD.GRF = This file was part of your OpenTTD installation.
|
19
media/baseset/orig_dos.obs
Normal file
19
media/baseset/orig_dos.obs
Normal file
@@ -0,0 +1,19 @@
|
||||
; $Id$
|
||||
;
|
||||
; This represents the original sounds as on the Transport
|
||||
; Tycoon Deluxe DOS CD.
|
||||
;
|
||||
[metadata]
|
||||
name = original_dos
|
||||
shortname = TTDO
|
||||
version = 0
|
||||
!! description STR_BASESOUNDS_DOS_DESCRIPTION
|
||||
|
||||
[files]
|
||||
samples = SAMPLE.CAT
|
||||
|
||||
[md5s]
|
||||
SAMPLE.CAT = 422ea3dd074d2859bb51639a6e0e85da
|
||||
|
||||
[origin]
|
||||
default = You can find it on your Transport Tycoon Deluxe CD-ROM.
|
31
media/baseset/orig_dos_de.obg
Normal file
31
media/baseset/orig_dos_de.obg
Normal file
@@ -0,0 +1,31 @@
|
||||
; $Id$
|
||||
;
|
||||
; This represents the original graphics as on the German Transport
|
||||
; Tycoon Deluxe DOS CD. It contains one broken sprite.
|
||||
;
|
||||
[metadata]
|
||||
name = original_dos_de
|
||||
shortname = TTDD
|
||||
version = 0
|
||||
palette = DOS
|
||||
!! description STR_BASEGRAPHICS_DOS_DE_DESCRIPTION
|
||||
|
||||
[files]
|
||||
base = TRG1.GRF
|
||||
logos = TRGI.GRF
|
||||
arctic = TRGC.GRF
|
||||
tropical = TRGH.GRF
|
||||
toyland = TRGT.GRF
|
||||
extra = OPENTTD.GRF
|
||||
|
||||
[md5s]
|
||||
TRG1.GRF = 9311676280e5b14077a8ee41c1b42192
|
||||
TRGI.GRF = da6a6c9dcc451eec88d79211437b76a8
|
||||
TRGC.GRF = ed446637e034104c5559b32c18afe78d
|
||||
TRGH.GRF = ee6616fb0e6ef6b24892c58c93d86fc9
|
||||
TRGT.GRF = fcde1d7e8a74197d72a62695884b909e
|
||||
OPENTTD.GRF =
|
||||
|
||||
[origin]
|
||||
default = You can find it on your Transport Tycoon Deluxe CD-ROM.
|
||||
OPENTTD.GRF = This file was part of your OpenTTD installation.
|
31
media/baseset/orig_win.obg
Normal file
31
media/baseset/orig_win.obg
Normal file
@@ -0,0 +1,31 @@
|
||||
; $Id$
|
||||
;
|
||||
; This represents the original graphics as on the Transport
|
||||
; Tycoon Deluxe for Windows CD.
|
||||
;
|
||||
[metadata]
|
||||
name = original_windows
|
||||
shortname = TTDW
|
||||
version = 0
|
||||
palette = Windows
|
||||
!! description STR_BASEGRAPHICS_WIN_DESCRIPTION
|
||||
|
||||
[files]
|
||||
base = TRG1R.GRF
|
||||
logos = TRGIR.GRF
|
||||
arctic = TRGCR.GRF
|
||||
tropical = TRGHR.GRF
|
||||
toyland = TRGTR.GRF
|
||||
extra = OPENTTD.GRF
|
||||
|
||||
[md5s]
|
||||
TRG1R.GRF = b04ce593d8c5016e07473a743d7d3358
|
||||
TRGIR.GRF = 0c2484ff6be49fc63a83be6ab5c38f32
|
||||
TRGCR.GRF = 3668f410c761a050b5e7095a2b14879b
|
||||
TRGHR.GRF = 06bf2b7a31766f048baac2ebe43457b1
|
||||
TRGTR.GRF = de53650517fe661ceaa3138c6edb0eb8
|
||||
OPENTTD.GRF =
|
||||
|
||||
[origin]
|
||||
default = You can find it on your Transport Tycoon Deluxe CD-ROM.
|
||||
OPENTTD.GRF = This file was part of your OpenTTD installation.
|
94
media/baseset/orig_win.obm
Normal file
94
media/baseset/orig_win.obm
Normal file
@@ -0,0 +1,94 @@
|
||||
; $Id$
|
||||
;
|
||||
; This represents the original music as on the Transport
|
||||
; Tycoon Deluxe for Windows CD.
|
||||
;
|
||||
[metadata]
|
||||
name = original_windows
|
||||
shortname = TTDW
|
||||
version = 1
|
||||
!! description STR_BASEMUSIC_WIN_DESCRIPTION
|
||||
|
||||
[files]
|
||||
theme = GM_TT00.GM
|
||||
old_0 = GM_TT02.GM
|
||||
old_1 = GM_TT06.GM
|
||||
old_2 = GM_TT03.GM
|
||||
old_3 = GM_TT12.GM
|
||||
old_4 = GM_TT08.GM
|
||||
old_5 = GM_TT13.GM
|
||||
old_6 = GM_TT14.GM
|
||||
old_7 = GM_TT10.GM
|
||||
old_8 =
|
||||
old_9 =
|
||||
new_0 = GM_TT04.GM
|
||||
new_1 = GM_TT01.GM
|
||||
new_2 = GM_TT05.GM
|
||||
new_3 = GM_TT15.GM
|
||||
new_4 = GM_TT11.GM
|
||||
new_5 = GM_TT16.GM
|
||||
new_6 = GM_TT09.GM
|
||||
new_7 =
|
||||
new_8 =
|
||||
new_9 =
|
||||
ezy_0 = GM_TT18.GM
|
||||
ezy_1 = GM_TT19.GM
|
||||
ezy_2 = GM_TT21.GM
|
||||
ezy_3 = GM_TT17.GM
|
||||
ezy_4 = GM_TT20.GM
|
||||
ezy_5 = GM_TT07.GM
|
||||
ezy_6 =
|
||||
ezy_7 =
|
||||
ezy_8 =
|
||||
ezy_9 =
|
||||
|
||||
[md5s]
|
||||
GM_TT00.GM = 45cfec1b9d8c7a0ad45e755833cbf221
|
||||
GM_TT01.GM = ab14ed3392d848abd2a2e90a9d75d121
|
||||
GM_TT02.GM = dd4f696e4be5987ce738257b08b50171
|
||||
GM_TT03.GM = a1bfde23343df9e4063419bf29c166b8
|
||||
GM_TT04.GM = 4e6943aa0c455203d76c79389054747d
|
||||
GM_TT05.GM = cee281cb85a2e2343552d97640545a47
|
||||
GM_TT06.GM = 26d1de5efa8675f94065784e9d539e49
|
||||
GM_TT07.GM = 6f2691e17558f552ec4c565e4ab7139c
|
||||
GM_TT08.GM = a42bf2cb3340a822f1a69646fc7a487d
|
||||
GM_TT09.GM = eb35761a58a8df3c59ed8929cce13916
|
||||
GM_TT10.GM = 42fecd686720a785d20a78590c466a82
|
||||
GM_TT11.GM = 50ef1ef02e49d2112786dd45e69dc3ee
|
||||
GM_TT12.GM = 4ce707a0e0e72419f0681dd9bd95271b
|
||||
GM_TT13.GM = e765753be29d889ec818f38009103619
|
||||
GM_TT14.GM = 270e2d63bd32b95a4d007ce15a6ce45f
|
||||
GM_TT15.GM = 89e116a1c0c69f1845cc903a9bfbe460
|
||||
GM_TT16.GM = f824e2371b3bedfe61aad4b9c62dd6be
|
||||
GM_TT17.GM = 1b23eebb0796c1ab99cd97fa7082cf7b
|
||||
GM_TT18.GM = 15650de3bad645d0e88c4f5c7a2df92a
|
||||
GM_TT19.GM = 7aec079e15bd09588660b85545ac4dfc
|
||||
GM_TT20.GM = 1509097889dee617aa1e9a1738a5a930
|
||||
GM_TT21.GM = a8d0aaad02e1a762d8d54cf81da56bab
|
||||
|
||||
[names]
|
||||
GM_TT00.GM = Tycoon DELUXE Theme
|
||||
GM_TT01.GM = Snarl Up
|
||||
GM_TT02.GM = Easy Driver
|
||||
GM_TT03.GM = Little Red Diesel
|
||||
GM_TT04.GM = City Groove
|
||||
GM_TT05.GM = Aliens Ate My Railway
|
||||
GM_TT06.GM = Stoke It
|
||||
GM_TT07.GM = Don't Walk!
|
||||
GM_TT08.GM = Sawyer's Tune
|
||||
GM_TT09.GM = Fell Apart On Me
|
||||
GM_TT10.GM = Can't Get There From Here
|
||||
GM_TT11.GM = Hard Drivin'
|
||||
GM_TT12.GM = Road Hog
|
||||
GM_TT13.GM = Hold That Train!
|
||||
GM_TT14.GM = Broomer's Oil Rag
|
||||
GM_TT15.GM = Goss Groove
|
||||
GM_TT16.GM = Small Town
|
||||
GM_TT17.GM = Cruise Control
|
||||
GM_TT18.GM = Stroll On
|
||||
GM_TT19.GM = Funk Central
|
||||
GM_TT20.GM = Jammit
|
||||
GM_TT21.GM = Movin' On
|
||||
|
||||
[origin]
|
||||
default = You can find it on your Transport Tycoon Deluxe CD-ROM.
|
19
media/baseset/orig_win.obs
Normal file
19
media/baseset/orig_win.obs
Normal file
@@ -0,0 +1,19 @@
|
||||
; $Id$
|
||||
;
|
||||
; This represents the original sounds as on the Transport
|
||||
; Tycoon Deluxe for Windows CD.
|
||||
;
|
||||
[metadata]
|
||||
name = original_windows
|
||||
shortname = TTDO
|
||||
version = 0
|
||||
!! description STR_BASESOUNDS_WIN_DESCRIPTION
|
||||
|
||||
[files]
|
||||
samples = SAMPLE.CAT
|
||||
|
||||
[md5s]
|
||||
SAMPLE.CAT = 9212e81e72badd4bbe1eaeae66458e10
|
||||
|
||||
[origin]
|
||||
default = You can find it on your Transport Tycoon Deluxe CD-ROM.
|
69
media/baseset/translations.awk
Normal file
69
media/baseset/translations.awk
Normal file
@@ -0,0 +1,69 @@
|
||||
# $Id: openttd.desktop.translation.awk 24100 2012-04-08 14:29:31Z rubidium $
|
||||
|
||||
# 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 <http://www.gnu.org/licenses/>.
|
||||
|
||||
#
|
||||
# Awk script to extract translations for baseset descriptions
|
||||
# from lang files for insertion into .obg/obs/obm files.
|
||||
# If there is no translation, there is no output.
|
||||
#
|
||||
# The input file is scanned for the pattern
|
||||
# !! <ini-key> <STR_id>
|
||||
#
|
||||
# The lang files (passed as variable 'langfiles') are scanned for <STR_id> and
|
||||
# the translations are added to the output file:
|
||||
# <ini-key>.<iso-code> = <translation>
|
||||
#
|
||||
|
||||
# Simple insertion sort since not all AWKs have a sort implementation
|
||||
function isort(A) {
|
||||
n = 0
|
||||
for (val in A) {
|
||||
n++;
|
||||
}
|
||||
|
||||
for (i = 2; i <= n; i++) {
|
||||
j = i;
|
||||
hold = A[j]
|
||||
while (A[j - 1] > hold) {
|
||||
j--;
|
||||
A[j + 1] = A[j]
|
||||
}
|
||||
A[j] = hold
|
||||
}
|
||||
|
||||
return n
|
||||
}
|
||||
|
||||
/^!!/ {
|
||||
ini_key = $2;
|
||||
str_id = $3;
|
||||
|
||||
file = langfiles
|
||||
while ((getline < file) > 0) {
|
||||
if (match($0, "##isocode") > 0) {
|
||||
lang = $2;
|
||||
} else if (match($0, "^" str_id " *:") > 0) {
|
||||
sub("^[^:]*:", "", $0)
|
||||
i++;
|
||||
if (lang == "en_GB") {
|
||||
texts[i] = ini_key " = "$0;
|
||||
} else {
|
||||
texts[i] = ini_key "." lang " = "$0;
|
||||
}
|
||||
}
|
||||
}
|
||||
close(file);
|
||||
|
||||
count = isort(texts);
|
||||
for (i = 1; i <= count; i++) {
|
||||
print texts[i]
|
||||
}
|
||||
|
||||
next
|
||||
}
|
||||
|
||||
{ print }
|
32
media/extra_grf/assemble_nfo.awk
Normal file
32
media/extra_grf/assemble_nfo.awk
Normal file
@@ -0,0 +1,32 @@
|
||||
# $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 <http://www.gnu.org/licenses/>.
|
||||
|
||||
BEGIN {
|
||||
# Very basic variant function; barely any error checking.
|
||||
# Just use the first argument as the file to start from when assembling everything
|
||||
path = ARGV[1];
|
||||
gsub("[^/\\\\]*$", "", path);
|
||||
assemble(ARGV[1]);
|
||||
}
|
||||
|
||||
# Recursive function for assembling by means of resolving the #includes.
|
||||
function assemble(filename) {
|
||||
while ((getline < filename) > 0) {
|
||||
if (NF == 2 && $1 == "#include" ) {
|
||||
# Remove the quotes.
|
||||
gsub("[\"'<>]", "", $2);
|
||||
assemble(path $2);
|
||||
} else {
|
||||
print $0;
|
||||
}
|
||||
}
|
||||
|
||||
if (close(filename) < 0) {
|
||||
print "Could not open " filename > "/dev/stderr";
|
||||
exit -1;
|
||||
}
|
||||
}
|
@@ -7,7 +7,7 @@
|
||||
// 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 <http://www.gnu.org/licenses/>.
|
||||
//
|
||||
-1 * 0 0C "OpenTTD GUI graphics"
|
||||
-1 * 3 05 15 \b 168 // OPENTTD_SPRITE_COUNT
|
||||
-1 * 3 05 15 \b 175 // OPENTTD_SPRITE_COUNT
|
||||
-1 sprites/openttdgui.png 8bpp 66 8 64 31 -31 7 normal
|
||||
-1 sprites/openttdgui.png 8bpp 146 8 64 31 -31 7 normal
|
||||
-1 sprites/openttdgui.png 8bpp 226 8 64 31 -31 7 normal
|
||||
@@ -176,3 +176,10 @@
|
||||
-1 sprites/openttdgui.png 8bpp 296 440 8 8 0 0 normal
|
||||
-1 sprites/openttdgui.png 8bpp 312 440 14 10 0 0 normal
|
||||
-1 sprites/openttdgui.png 8bpp 328 440 14 10 0 0 normal
|
||||
-1 sprites/openttdgui.png 8bpp 348 440 8 8 0 0 normal
|
||||
-1 sprites/openttdgui.png 8bpp 362 440 20 20 0 0 normal
|
||||
-1 sprites/openttdgui.png 8bpp 388 440 20 20 0 0 normal
|
||||
-1 sprites/openttdgui.png 8bpp 414 440 20 20 0 0 normal
|
||||
-1 sprites/openttdgui.png 8bpp 440 440 20 20 0 0 normal
|
||||
-1 sprites/openttdgui.png 8bpp 466 440 20 20 0 0 normal
|
||||
-1 sprites/openttdgui.png 8bpp 490 440 20 20 0 0 normal
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 26 KiB |
@@ -9,3 +9,4 @@ Exec=!!TTD!!
|
||||
Terminal=false
|
||||
Categories=!!MENU_GROUP!!
|
||||
Comment=A clone of Transport Tycoon Deluxe
|
||||
Keywords=game;simulation;transport;tycoon;deluxe;economics;multiplayer;money;train;ship;bus;truck;aircraft;cargo
|
||||
|
@@ -1,290 +1,428 @@
|
||||
openttd (1.4.2~RC2-0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.4.2-RC2
|
||||
|
||||
-- OpenTTD <info@openttd.org> Sun, 03 Aug 2014 18:00:00 +0200
|
||||
|
||||
openttd (1.4.2~RC1-0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.4.2-RC1
|
||||
|
||||
-- OpenTTD <info@openttd.org> Thu, 03 Jul 2014 21:00:00 +0200
|
||||
|
||||
openttd (1.4.1-0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.4.1
|
||||
|
||||
-- OpenTTD <info@openttd.org> Mon, 02 Jun 2014 21:00:00 +0200
|
||||
|
||||
openttd (1.4.1~RC2-0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.4.1-RC2
|
||||
|
||||
-- OpenTTD <info@openttd.org> Sun, 18 May 2014 21:00:00 +0200
|
||||
|
||||
openttd (1.4.1~RC1-0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.4.1-RC1
|
||||
|
||||
-- OpenTTD <info@openttd.org> Sun, 04 May 2014 21:00:00 +0200
|
||||
|
||||
openttd (1.4.0-0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.4.0
|
||||
|
||||
-- OpenTTD <info@openttd.org> Tue, 01 Apr 2014 21:00:00 +0200
|
||||
|
||||
openttd (1.4.0~RC1-0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.4.0-RC1
|
||||
|
||||
-- OpenTTD <info@openttd.org> Tue, 17 Mar 2014 21:00:00 +0100
|
||||
|
||||
openttd (1.4.0~beta5-0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.4.0-beta5
|
||||
|
||||
-- OpenTTD <info@openttd.org> Tue, 25 Feb 2014 10:15:00 +0100
|
||||
|
||||
openttd (1.4.0~beta4-0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.4.0-beta4
|
||||
|
||||
-- OpenTTD <info@openttd.org> Thu, 06 Feb 2014 21:00:00 +0100
|
||||
|
||||
openttd (1.4.0~beta3-0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.4.0-beta3
|
||||
|
||||
-- OpenTTD <info@openttd.org> Tue, 21 Jan 2014 21:00:00 +0100
|
||||
|
||||
openttd (1.4.0~beta2-0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.4.0-beta2
|
||||
|
||||
-- OpenTTD <info@openttd.org> Tue, 07 Jan 2014 21:00:00 +0100
|
||||
|
||||
openttd (1.4.0~beta1-0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.4.0-beta1
|
||||
|
||||
-- OpenTTD <info@openttd.org> Tue, 24 Dec 2013 00:00:00 +0100
|
||||
|
||||
openttd (1.3.3-0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.3.3
|
||||
|
||||
-- OpenTTD <info@openttd.org> Fri, 29 Nov 2013 19:00:00 +0100
|
||||
|
||||
openttd (1.3.3~RC2-0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.3.3-RC2
|
||||
|
||||
-- OpenTTD <info@openttd.org> Sun, 24 Nov 2013 19:00:00 +0100
|
||||
|
||||
openttd (1.3.3~RC1-0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.3.3-RC1
|
||||
|
||||
-- OpenTTD <info@openttd.org> Sun, 17 Nov 2013 19:00:00 +0100
|
||||
|
||||
openttd (1.3.2-0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.3.2
|
||||
|
||||
-- OpenTTD <info@openttd.org> Sat, 27 Jul 2013 18:00:00 +0200
|
||||
|
||||
openttd (1.3.2~RC2-0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.3.2-RC2
|
||||
|
||||
-- OpenTTD <info@openttd.org> Sat, 13 Jul 2013 12:00:00 +0200
|
||||
|
||||
openttd (1.3.2~RC1-0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.3.2-RC1
|
||||
|
||||
-- OpenTTD <info@openttd.org> Sun, 30 Jun 2013 12:00:00 +0200
|
||||
|
||||
openttd (1.3.1-0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.3.1
|
||||
|
||||
-- OpenTTD <info@openttd.org> Sat, 01 Jun 2013 00:00:00 +0300
|
||||
|
||||
openttd (1.3.1~RC1-0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.3.1-RC1
|
||||
|
||||
-- OpenTTD <info@openttd.org> Fri, 17 May 2013 22:00:00 +0200
|
||||
|
||||
openttd (1.3.0-0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.3.0
|
||||
|
||||
-- OpenTTD <info@openttd.org> Mon, 01 Apr 2013 00:00:00 +0200
|
||||
|
||||
openttd (1.3.0~RC3) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.3.0-RC3
|
||||
|
||||
-- OpenTTD <info@openttd.org> Mon, 18 Mar 2013 00:00:00 +0100
|
||||
|
||||
openttd (1.3.0~RC2) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.3.0-RC2
|
||||
|
||||
-- OpenTTD <info@openttd.org> Tue, 05 Mar 2013 00:00:00 +0100
|
||||
|
||||
openttd (1.3.0~RC1) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.3.0-RC1
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Tue, 19 Feb 2013 00:00:00 +0100
|
||||
-- OpenTTD <info@openttd.org> Tue, 19 Feb 2013 00:00:00 +0100
|
||||
|
||||
openttd (1.3.0~beta2) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.3.0-beta2
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Thu, 07 Feb 2013 00:00:00 +0100
|
||||
-- OpenTTD <info@openttd.org> Thu, 07 Feb 2013 00:00:00 +0100
|
||||
|
||||
openttd (1.3.0~beta1) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.3.0-beta1
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Mon, 24 Dec 2012 00:00:00 +0100
|
||||
-- OpenTTD <info@openttd.org> Mon, 24 Dec 2012 00:00:00 +0100
|
||||
|
||||
openttd (1.2.3) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.2.3
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Thu, 01 Nov 2012 00:00:00 +0200
|
||||
-- OpenTTD <info@openttd.org> Thu, 01 Nov 2012 00:00:00 +0200
|
||||
|
||||
openttd (1.2.3~RC1) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.2.3-RC1
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Wed, 17 Oct 2012 00:00:00 +0200
|
||||
-- OpenTTD <info@openttd.org> Wed, 17 Oct 2012 00:00:00 +0200
|
||||
|
||||
openttd (1.2.2) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.2.2
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Thu, 16 Aug 2012 20:00:00 +0200
|
||||
-- OpenTTD <info@openttd.org> Thu, 16 Aug 2012 20:00:00 +0200
|
||||
|
||||
openttd (1.2.2~RC1) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.2.2-RC1
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Wed, 01 Aug 2012 00:00:00 +0200
|
||||
-- OpenTTD <info@openttd.org> Wed, 01 Aug 2012 00:00:00 +0200
|
||||
|
||||
openttd (1.2.1) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.2.1
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Fri, 01 Jun 2012 00:00:00 +0200
|
||||
-- OpenTTD <info@openttd.org> Fri, 01 Jun 2012 00:00:00 +0200
|
||||
|
||||
openttd (1.2.1~RC1) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.2.1-RC1
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Wed, 16 Apr 2012 22:00:00 +0200
|
||||
-- OpenTTD <info@openttd.org> Wed, 16 Apr 2012 22:00:00 +0200
|
||||
|
||||
openttd (1.2.0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.2.0
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Sun, 15 Apr 2012 14:00:00 +0200
|
||||
-- OpenTTD <info@openttd.org> Sun, 15 Apr 2012 14:00:00 +0200
|
||||
|
||||
openttd (1.2.0~RC4) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.2.0-RC4
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Sun, 01 Apr 2012 00:00:00 +0200
|
||||
-- OpenTTD <info@openttd.org> Sun, 01 Apr 2012 00:00:00 +0200
|
||||
|
||||
openttd (1.2.0~RC3) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.2.0-RC3
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Sun, 18 Mar 2012 18:00:00 +0100
|
||||
-- OpenTTD <info@openttd.org> Sun, 18 Mar 2012 18:00:00 +0100
|
||||
|
||||
openttd (1.2.0~RC2) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.2.0-RC2
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Sun, 04 Mar 2012 18:00:00 +0100
|
||||
-- OpenTTD <info@openttd.org> Sun, 04 Mar 2012 18:00:00 +0100
|
||||
|
||||
openttd (1.2.0~RC1) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.2.0-RC1
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Sun, 19 Feb 2012 23:00:00 +0100
|
||||
-- OpenTTD <info@openttd.org> Sun, 19 Feb 2012 23:00:00 +0100
|
||||
|
||||
openttd (1.2.0~beta4) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.2.0-beta4
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Sat, 04 Feb 2012 16:00:00 +0100
|
||||
-- OpenTTD <info@openttd.org> Sat, 04 Feb 2012 16:00:00 +0100
|
||||
|
||||
openttd (1.2.0~beta3) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.2.0-beta3
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Sat, 21 Jan 2012 16:00:00 +0100
|
||||
-- OpenTTD <info@openttd.org> Sat, 21 Jan 2012 16:00:00 +0100
|
||||
|
||||
openttd (1.2.0~beta2) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.2.0-beta2
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Sat, 07 Jan 2012 00:00:00 +0100
|
||||
-- OpenTTD <info@openttd.org> Sat, 07 Jan 2012 00:00:00 +0100
|
||||
|
||||
openttd (1.2.0~beta1) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.2.0-beta1
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Sat, 24 Dec 2011 00:00:00 +0100
|
||||
-- OpenTTD <info@openttd.org> Sat, 24 Dec 2011 00:00:00 +0100
|
||||
|
||||
openttd (1.1.4) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.1.4
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Mon, 05 Dec 2011 00:00:00 +0400
|
||||
-- OpenTTD <info@openttd.org> Mon, 05 Dec 2011 00:00:00 +0400
|
||||
|
||||
openttd (1.1.4-RC1) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.1.4-RC1
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Sun, 20 Nov 2011 17:00:00 +0100
|
||||
-- OpenTTD <info@openttd.org> Sun, 20 Nov 2011 17:00:00 +0100
|
||||
|
||||
openttd (1.1.3) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.1.3
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Thu, 15 Sep 2011 21:00:00 +0200
|
||||
-- OpenTTD <info@openttd.org> Thu, 15 Sep 2011 21:00:00 +0200
|
||||
|
||||
openttd (1.1.3-RC1) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.1.3-RC1
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Sun, 04 Sep 2011 17:00:00 +0200
|
||||
-- OpenTTD <info@openttd.org> Sun, 04 Sep 2011 17:00:00 +0200
|
||||
|
||||
openttd (1.1.2) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.1.2
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Sun, 14 Aug 2011 17:00:00 +0200
|
||||
-- OpenTTD <info@openttd.org> Sun, 14 Aug 2011 17:00:00 +0200
|
||||
|
||||
openttd (1.1.2~RC2) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.1.2-RC2
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Sat, 30 Jul 2011 21:00:00 +0200
|
||||
-- OpenTTD <info@openttd.org> Sat, 30 Jul 2011 21:00:00 +0200
|
||||
|
||||
openttd (1.1.2~RC1) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.1.2-RC1
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Sun, 24 Jul 2011 21:00:00 +0200
|
||||
-- OpenTTD <info@openttd.org> Sun, 24 Jul 2011 21:00:00 +0200
|
||||
|
||||
openttd (1.1.1) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.1.1
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Wed, 01 Jun 2011 00:00:00 +0200
|
||||
-- OpenTTD <info@openttd.org> Wed, 01 Jun 2011 00:00:00 +0200
|
||||
|
||||
openttd (1.1.1~RC1) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.1.1-RC1
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Sun, 15 May 2011 21:00:00 +0200
|
||||
-- OpenTTD <info@openttd.org> Sun, 15 May 2011 21:00:00 +0200
|
||||
|
||||
openttd (1.1.0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.1.0
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Fri, 01 Apr 2011 00:00:00 +0100
|
||||
-- OpenTTD <info@openttd.org> Fri, 01 Apr 2011 00:00:00 +0100
|
||||
|
||||
openttd (1.1.0~RC3) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.1.0-RC3
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Fri, 18 Mar 2011 22:00:00 +0100
|
||||
-- OpenTTD <info@openttd.org> Fri, 18 Mar 2011 22:00:00 +0100
|
||||
|
||||
openttd (1.1.0~RC2) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.1.0-RC2
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Fri, 04 Mar 2011 22:00:00 +0100
|
||||
-- OpenTTD <info@openttd.org> Fri, 04 Mar 2011 22:00:00 +0100
|
||||
|
||||
openttd (1.1.0~RC1) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.1.0-RC1
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Fri, 18 Feb 2011 22:00:00 +0100
|
||||
-- OpenTTD <info@openttd.org> Fri, 18 Feb 2011 22:00:00 +0100
|
||||
|
||||
openttd (1.1.0~beta5) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.1.0-beta5
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Fri, 04 Feb 2011 22:00:00 +0100
|
||||
-- OpenTTD <info@openttd.org> Fri, 04 Feb 2011 22:00:00 +0100
|
||||
|
||||
openttd (1.1.0~beta4) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.1.0-beta4
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Fri, 21 Jan 2011 00:00:00 +0100
|
||||
-- OpenTTD <info@openttd.org> Fri, 21 Jan 2011 00:00:00 +0100
|
||||
|
||||
openttd (1.1.0~beta3) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.1.0-beta3
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Sun, 09 Jan 2011 18:00:00 +0100
|
||||
-- OpenTTD <info@openttd.org> Sun, 09 Jan 2011 18:00:00 +0100
|
||||
|
||||
openttd (1.1.0~beta2) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.1.0-beta2
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Fri, 31 Dec 2010 18:00:00 +0100
|
||||
-- OpenTTD <info@openttd.org> Fri, 31 Dec 2010 18:00:00 +0100
|
||||
|
||||
openttd (1.1.0~beta1) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.1.0-beta1
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Fri, 24 Dec 2010 00:00:00 +0100
|
||||
-- OpenTTD <info@openttd.org> Fri, 24 Dec 2010 00:00:00 +0100
|
||||
|
||||
openttd (1.0.5-0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.0.5
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Sat, 20 Nov 2010 21:00:00 +0000
|
||||
-- OpenTTD <info@openttd.org> Sat, 20 Nov 2010 21:00:00 +0000
|
||||
|
||||
openttd (1.0.5~rc2-0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.0.5~rc2
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Sun, 14 Nov 2010 15:00:00 +0000
|
||||
-- OpenTTD <info@openttd.org> Sun, 14 Nov 2010 15:00:00 +0000
|
||||
|
||||
openttd (1.0.5~rc1-0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.0.5-RC1
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Sun, 31 Oct 2010 15:00:00 +0000
|
||||
-- OpenTTD <info@openttd.org> Sun, 31 Oct 2010 15:00:00 +0000
|
||||
|
||||
openttd (1.0.4-0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.0.4
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Tue, 14 Sep 2010 20:00:00 +0000
|
||||
-- OpenTTD <info@openttd.org> Tue, 14 Sep 2010 20:00:00 +0000
|
||||
|
||||
openttd (1.0.4~rc1-0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.0.4-RC1
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Mon, 30 Aug 2010 20:00:00 +0000
|
||||
-- OpenTTD <info@openttd.org> Mon, 30 Aug 2010 20:00:00 +0000
|
||||
|
||||
openttd (1.0.3-0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.0.3
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Sun, 01 Aug 2010 00:00:00 +0000
|
||||
-- OpenTTD <info@openttd.org> Sun, 01 Aug 2010 00:00:00 +0000
|
||||
|
||||
openttd (1.0.3~rc1-0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.0.3-RC1
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Sat, 05 Jul 2010 17:37:21 +0000
|
||||
-- OpenTTD <info@openttd.org> Sat, 05 Jul 2010 17:37:21 +0000
|
||||
|
||||
openttd (1.0.2-0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.0.2
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Sat, 19 Jun 2010 18:36:21 +0000
|
||||
-- OpenTTD <info@openttd.org> Sat, 19 Jun 2010 18:36:21 +0000
|
||||
|
||||
openttd (1.0.2~rc1-0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.0.2-RC1
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Sat, 05 Jun 2010 23:36:21 +0000
|
||||
-- OpenTTD <info@openttd.org> Sat, 05 Jun 2010 23:36:21 +0000
|
||||
|
||||
openttd (1.0.1-0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.0.1
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Sat, 01 May 2010 00:00:00 +0200
|
||||
-- OpenTTD <info@openttd.org> Sat, 01 May 2010 00:00:00 +0200
|
||||
|
||||
openttd (1.0.1~rc2-0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.0.1-RC2
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Wed, 21 Apr 2010 21:36:21 +0200
|
||||
-- OpenTTD <info@openttd.org> Wed, 21 Apr 2010 21:36:21 +0200
|
||||
|
||||
openttd (1.0.1~rc1-0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.0.1-RC1
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Sat, 17 Apr 2010 23:36:21 +0000
|
||||
-- OpenTTD <info@openttd.org> Sat, 17 Apr 2010 23:36:21 +0000
|
||||
|
||||
openttd (1.0.0-1) unstable; urgency=low
|
||||
|
||||
|
@@ -3,11 +3,10 @@ Section: games
|
||||
Priority: optional
|
||||
Maintainer: Matthijs Kooijman <matthijs@stdin.nl>
|
||||
Uploaders: Jordi Mallach <jordi@debian.org>
|
||||
DM-Upload-Allowed: yes
|
||||
Build-Depends: debhelper (>= 7.0.50), libsdl-dev, zlib1g-dev, libpng-dev, libfreetype6-dev, libfontconfig-dev, libicu-dev, liblzma-dev, liblzo2-dev
|
||||
Standards-Version: 3.8.4
|
||||
Vcs-Browser: http://git.debian.org/?p=collab-maint/openttd.git
|
||||
Vcs-Git: git://git.debian.org/collab-maint/openttd.git
|
||||
Vcs-Browser: http://anonscm.debian.org/gitweb/?p=collab-maint/openttd.git
|
||||
Vcs-Git: git://anonscm.debian.org/collab-maint/openttd.git
|
||||
Homepage: http://www.openttd.org/
|
||||
|
||||
Package: openttd
|
||||
|
@@ -1,77 +1,106 @@
|
||||
This package was debianized by Matthijs Kooijman <matthijs@stdin.nl>
|
||||
on Wed, 15 Sep 2004 00:24:01 +0200.
|
||||
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
||||
Upstream-Name: OpenTTD
|
||||
Upstream-Contact: info@openttd.org, #openttd on irc.oftc.net
|
||||
Source: http://www.openttd.org
|
||||
|
||||
Upstream author: Ludvig Strigeus (ludde) and many others.
|
||||
Upstream homepage: http://www.openttd.org
|
||||
|
||||
Copyright © 2004-2009 Ludvig Strigeous and others.
|
||||
Files: *
|
||||
Copyright: © 2004-2012 Ludvig Strigeous and others.
|
||||
License: GPL-2.0
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License version 2.0 as
|
||||
published by the Free Software Foundation;
|
||||
.
|
||||
This program 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 this package; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
.
|
||||
On Debian systems, the complete text of the GNU General Public License
|
||||
version 2 can be found in `/usr/share/common-licenses/GPL-2'.
|
||||
|
||||
OpenTTD License:
|
||||
Files: src/3rdparty/squirrel/*
|
||||
Copyright: © 2003-2009 Alberto Demichelis
|
||||
License: Zlib
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License version 2.0 as
|
||||
published by the Free Software Foundation;
|
||||
Files: src/3rdparty/md5/*
|
||||
Copyright: © 1999, 2000, 2002 Aladdin Enterprises. All rights reserved.
|
||||
License: Zlib
|
||||
|
||||
This program 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 this package; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
License: Zlib
|
||||
This software is provided 'as-is', without any express or implied
|
||||
warranty. In no event will the authors be held liable for any damages
|
||||
arising from the use of this software.
|
||||
.
|
||||
Permission is granted to anyone to use this software for any purpose,
|
||||
including commercial applications, and to alter it and redistribute it
|
||||
freely, subject to the following restrictions:
|
||||
.
|
||||
1. The origin of this software must not be misrepresented; you must not
|
||||
claim that you wrote the original software. If you use this software in
|
||||
a product, an acknowledgment in the product documentation would be
|
||||
appreciated but is not required.
|
||||
.
|
||||
2. Altered source versions must be plainly marked as such, and must not
|
||||
be misrepresented as being the original software.
|
||||
.
|
||||
3. This notice may not be removed or altered from any source
|
||||
distribution.
|
||||
|
||||
On Debian systems, the complete text of the GNU General Public License
|
||||
version 2 can be found in `/usr/share/common-licenses/GPL-2'.
|
||||
Files: os/dos/exe2coff/*
|
||||
Copyright: © 1998 DJ Delorie
|
||||
License: GPL-2.0 with additional restrictions
|
||||
This document is Copyright (C) DJ Delorie and may be distributed
|
||||
verbatim, but changing it is not allowed.
|
||||
.
|
||||
Source code copyright DJ Delorie is distributed under the terms of the
|
||||
GNU General Public Licence, with the following exceptions:
|
||||
.
|
||||
* Sources used to build crt0.o, gcrt0.o, libc.a, libdbg.a, and
|
||||
libemu.a are distributed under the terms of the GNU Library General
|
||||
Public License, rather than the GNU GPL.
|
||||
.
|
||||
* Any existing copyright or authorship information in any given source
|
||||
file must remain intact. If you modify a source file, a notice to that
|
||||
effect must be added to the authorship information in the source file.
|
||||
.
|
||||
* Runtime binaries, as provided by DJ in DJGPP, may be distributed
|
||||
without sources ONLY if the recipient is given sufficient information
|
||||
to obtain a copy of djgpp themselves. This primarily applies to
|
||||
go32-v2.exe, emu387.dxe, and stubedit.exe.
|
||||
.
|
||||
* Runtime objects and libraries, as provided by DJ in DJGPP, when
|
||||
linked into an application, may be distributed without sources ONLY
|
||||
if the recipient is given sufficient information to obtain a copy of
|
||||
djgpp themselves. This primarily applies to crt0.o and libc.a.
|
||||
.
|
||||
On Debian systems, the complete text of the GNU General Public License
|
||||
version 2 can be found in `/usr/share/common-licenses/GPL-2'.
|
||||
Comment:
|
||||
Given only the exe2coff.c file is distributed in the source distribution (and
|
||||
nothing in Debian binary distribution), it seems only the 2nd condition
|
||||
applies.
|
||||
|
||||
This package contains an embedded version of the "Squirrel" programming
|
||||
language, which is shipped under the following license:
|
||||
|
||||
Copyright (c) 2003-2009 Alberto Demichelis
|
||||
|
||||
This software is provided 'as-is', without any
|
||||
express or implied warranty. In no event will the
|
||||
authors be held liable for any damages arising from
|
||||
the use of this software.
|
||||
|
||||
Permission is granted to anyone to use this software
|
||||
for any purpose, including commercial applications,
|
||||
and to alter it and redistribute it freely, subject
|
||||
to the following restrictions:
|
||||
|
||||
1. The origin of this software must not be
|
||||
misrepresented; you must not claim that
|
||||
you wrote the original software. If you
|
||||
use this software in a product, an
|
||||
acknowledgment in the product
|
||||
documentation would be appreciated but is
|
||||
not required.
|
||||
|
||||
2. Altered source versions must be plainly
|
||||
marked as such, and must not be
|
||||
misrepresented as being the original
|
||||
software.
|
||||
|
||||
3. This notice may not be removed or
|
||||
altered from any source distribution.
|
||||
|
||||
This package contains an implementation of the md5 hash algorithm, which
|
||||
is shipped under the following license:
|
||||
|
||||
Copyright (C) 1999, 2000, 2002 Aladdin Enterprises. All rights reserved.
|
||||
|
||||
This software is provided 'as-is', without any express or implied
|
||||
warranty. In no event will the authors be held liable for any damages
|
||||
arising from the use of this software.
|
||||
|
||||
Permission is granted to anyone to use this software for any purpose,
|
||||
including commercial applications, and to alter it and redistribute it
|
||||
freely, subject to the following restrictions:
|
||||
|
||||
1. The origin of this software must not be misrepresented; you must not
|
||||
claim that you wrote the original software. If you use this software
|
||||
in a product, an acknowledgment in the product documentation would be
|
||||
appreciated but is not required.
|
||||
2. Altered source versions must be plainly marked as such, and must not be
|
||||
misrepresented as being the original software.
|
||||
3. This notice may not be removed or altered from any source distribution.
|
||||
Files: os/dos/cwsdpmi/*
|
||||
Source: http://homer.rice.edu/~sandmann/cwsdpmi/index.html
|
||||
Copyright: © 1995-2000 Charles W Sandmann (sandmann@clio.rice.edu)
|
||||
License: Custom binary-only license
|
||||
This is release 5. The files in this binary distribution may be redistributed
|
||||
under the GPL (with source) or without the source code provided:
|
||||
.
|
||||
* CWSDPMI.EXE or CWSDPR0.EXE are not modified in any way except via CWSPARAM.
|
||||
.
|
||||
* CWSDSTUB.EXE internal contents are not modified in any way except via
|
||||
CWSPARAM or STUBEDIT. It may have a COFF image plus data appended to it.
|
||||
.
|
||||
* Notice to users that they have the right to receive the source code and/or
|
||||
binary updates for CWSDPMI. Distributors should indicate a site for the
|
||||
source in their documentation.
|
||||
Comment:
|
||||
Files are distributed as binary only, so the second option in the license
|
||||
("without source code provided: ...") is applicable.
|
||||
|
@@ -1,2 +1,2 @@
|
||||
?package(openttd):needs="X11" section="Games/Simulation" title="OpenTTD"\
|
||||
command="/usr/share/games/openttd/openttd-wrapper" icon="/usr/share/pixmaps/openttd.32.xpm"
|
||||
command="/usr/games/openttd" icon="/usr/share/pixmaps/openttd.32.xpm"
|
||||
|
@@ -4,7 +4,7 @@
|
||||
|
||||
# Use debhelper default for all targets (but some are overridden below).
|
||||
%:
|
||||
dh $@
|
||||
dh --parallel $@
|
||||
|
||||
DEB_HOST_GNU_TYPE=$(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
|
||||
DEB_BUILD_GNU_TYPE=$(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
|
||||
@@ -12,21 +12,29 @@ ifneq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE))
|
||||
CROSS= --build $(DEB_BUILD_GNU_TYPE) --host $(DEB_HOST_GNU_TYPE)
|
||||
endif
|
||||
|
||||
# This prevents linking uselessly to libicudata and silences a warning
|
||||
# in the build process.
|
||||
DEB_LDFLAGS_MAINT_APPEND="-Wl,-as-needed"
|
||||
|
||||
# Enable all hardening options (since openttd offers a network-listening
|
||||
# service that handles untrusted data).
|
||||
DEB_BUILD_MAINT_OPTIONS=hardening=+all
|
||||
|
||||
# Load buildflags (this uses dpkg-buildflags). Note that we don't export
|
||||
# them, but instead pass them to ./configure explicitly.
|
||||
include /usr/share/dpkg/buildflags.mk
|
||||
|
||||
# Pass custom options to configure. Since it's not autoconf but a custom
|
||||
# script, some of the option names are slightly different. We also need
|
||||
# to be explicit about the dependencies, in case we're not running in a
|
||||
# clean build root.
|
||||
override_dh_auto_configure:
|
||||
./configure $(CROSS) --prefix-dir=/usr --install-dir=debian/openttd --without-allegro --with-zlib --with-sdl --with-png --with-freetype --with-fontconfig --with-icu --with-liblzo2 --with-lzma --without-iconv --disable-strip CFLAGS="$(CFLAGS) -g" LDFLAGS="$(LDFLAGS) -Wl,-as-needed"
|
||||
./configure $(CROSS) --prefix-dir=/usr --install-dir=debian/openttd --without-allegro --with-zlib --with-sdl --with-png --with-freetype --with-fontconfig --with-icu --with-liblzo2 --with-lzma --without-xdg-basedir --without-iconv --disable-strip CFLAGS="$(CFLAGS) $(CPPFLAGS)" CXXFLAGS="$(CXXFLAGS) $(CPPFLAGS)" LDFLAGS="$(LDFLAGS)" CFLAGS_BUILD="$(CFLAGS) $(CPPFLAGS)" CXXFLAGS_BUILD="$(CXXFLAGS) $(CPPFLAGS)" LDFLAGS_BUILD="$(LDFLAGS)"
|
||||
|
||||
# Do some extra installation
|
||||
override_dh_auto_install:
|
||||
$(MAKE) install DO_NOT_INSTALL_CHANGELOG=1 DO_NOT_INSTALL_LICENSE=1
|
||||
|
||||
# Install the wrapper and make it executable
|
||||
install -d debian/openttd/usr/share/games/openttd/
|
||||
install -m755 debian/openttd-wrapper debian/openttd/usr/share/games/openttd/
|
||||
|
||||
# Don't do testing. Because the OpenTTD Makefile always does dependency
|
||||
# generation (even on invalid targets), dh_auto_test thinks there is a
|
||||
# "test" target, while there isn't.
|
||||
|
3
os/dos/cwsdpmi/README.licensing
Normal file
3
os/dos/cwsdpmi/README.licensing
Normal file
@@ -0,0 +1,3 @@
|
||||
The files in this directory are not licensed under the same terms as the
|
||||
rest of OpenTTD. Licensing details can be found in OpenTTD's readme.txt
|
||||
and in this directory or subdirectories as well.
|
3
os/dos/exe2coff/README.licensing
Normal file
3
os/dos/exe2coff/README.licensing
Normal file
@@ -0,0 +1,3 @@
|
||||
The files in this directory are not licensed under the same terms as the
|
||||
rest of OpenTTD. Licensing details can be found in OpenTTD's readme.txt
|
||||
and in this directory or subdirectories as well.
|
@@ -3,9 +3,9 @@
|
||||
# $Id$
|
||||
|
||||
cd `dirname $0`
|
||||
cc -o exe2coff exe2coff.c || exit
|
||||
cc -o exe2coff/exe2coff exe2coff/exe2coff.c || exit
|
||||
cp $1 binary.exe || exit
|
||||
./exe2coff binary.exe || exit
|
||||
cat cwsdstub.exe binary > binary.exe || exit
|
||||
./exe2coff/exe2coff binary.exe || exit
|
||||
cat cwsdpmi/cwsdstub.exe binary > binary.exe || exit
|
||||
mv binary.exe $1
|
||||
rm binary exe2coff
|
||||
rm binary exe2coff/exe2coff
|
||||
|
@@ -1,6 +1,6 @@
|
||||
@echo off
|
||||
|
||||
set OPENTTD_VERSION=1.3.0-RC1
|
||||
set OPENTTD_VERSION=1.4.0
|
||||
set OPENSFX_VERSION=0.8.0
|
||||
set NOSOUND_VERSION=0.8.0
|
||||
set OPENGFX_VERSION=1.2.0
|
||||
|
@@ -1,9 +1,9 @@
|
||||
# Version numbers to update
|
||||
!define APPV_MAJOR 1
|
||||
!define APPV_MINOR 3
|
||||
!define APPV_MAINT 0
|
||||
!define APPV_BUILD 2
|
||||
!define APPV_EXTRA "-RC1"
|
||||
!define APPV_MINOR 4
|
||||
!define APPV_MAINT 2
|
||||
!define APPV_BUILD 1
|
||||
!define APPV_EXTRA "-RC2"
|
||||
|
||||
!define APPNAME "OpenTTD" ; Define application name
|
||||
!define APPVERSION "${APPV_MAJOR}.${APPV_MINOR}.${APPV_MAINT}${APPV_EXTRA}" ; Define application version
|
||||
@@ -545,15 +545,22 @@ FunctionEnd
|
||||
;-------------------------------------------------------------------------------
|
||||
; Determine windows version, returns "win9x" if Win9x/Me/2000/XP SP2- or "winnt" for the rest on the stack
|
||||
Function GetWindowsVersion
|
||||
GetVersion::WindowsPlatformArchitecture
|
||||
Pop $R0
|
||||
IntCmp $R0 64 WinNT 0
|
||||
ClearErrors
|
||||
StrCpy $R0 "win9x"
|
||||
${If} ${IsNT}
|
||||
${If} ${IsWinXP}
|
||||
${AndIf} ${AtLeastServicePack} 3
|
||||
${OrIf} ${AtLeastWin2003}
|
||||
StrCpy $R0 "winnt"
|
||||
GoTo WinNT
|
||||
${EndIf}
|
||||
${EndIf}
|
||||
GoTo Done
|
||||
WinNT:
|
||||
StrCpy $R0 "winnt"
|
||||
Done:
|
||||
Push $R0
|
||||
FunctionEnd
|
||||
|
||||
|
@@ -173,6 +173,7 @@ Function load_main_data(filename, ByRef vcxproj, ByRef filters, ByRef files)
|
||||
line = "MSVC" Or _
|
||||
line = "DIRECTMUSIC" Or _
|
||||
line = "AI" Or _
|
||||
line = "SSE" Or _
|
||||
line = "HAVE_THREAD" _
|
||||
) Then skip = skip + 1
|
||||
deep = deep + 1
|
||||
|
@@ -137,6 +137,12 @@
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\estonian.lng;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\faroese.txt">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating faroese language file</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\faroese.lng;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\finnish.txt">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating finnish language file</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
|
||||
@@ -149,6 +155,12 @@
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\french.lng;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\gaelic.txt">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating gaelic language file</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\gaelic.lng;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\galician.txt">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating galician language file</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
|
||||
@@ -311,6 +323,18 @@
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\swedish.lng;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\tamil.txt">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating tamil language file</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\tamil.lng;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\thai.txt">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating thai language file</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\thai.lng;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\traditional_chinese.txt">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating traditional_chinese language file</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
|
||||
|
@@ -52,12 +52,18 @@
|
||||
<CustomBuild Include="..\src\lang\estonian.txt">
|
||||
<Filter>Translations</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\faroese.txt">
|
||||
<Filter>Translations</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\finnish.txt">
|
||||
<Filter>Translations</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\french.txt">
|
||||
<Filter>Translations</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\gaelic.txt">
|
||||
<Filter>Translations</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\galician.txt">
|
||||
<Filter>Translations</Filter>
|
||||
</CustomBuild>
|
||||
@@ -139,6 +145,12 @@
|
||||
<CustomBuild Include="..\src\lang\swedish.txt">
|
||||
<Filter>Translations</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\tamil.txt">
|
||||
<Filter>Translations</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\thai.txt">
|
||||
<Filter>Translations</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\traditional_chinese.txt">
|
||||
<Filter>Translations</Filter>
|
||||
</CustomBuild>
|
||||
|
@@ -288,6 +288,21 @@
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\lang\faroese.txt"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating faroese language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
exit 0
"
|
||||
AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
|
||||
Outputs="..\bin\lang\faroese.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\lang\finnish.txt"
|
||||
>
|
||||
@@ -318,6 +333,21 @@
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\lang\gaelic.txt"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating gaelic language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
exit 0
"
|
||||
AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
|
||||
Outputs="..\bin\lang\gaelic.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\lang\galician.txt"
|
||||
>
|
||||
@@ -723,6 +753,36 @@
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\lang\tamil.txt"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating tamil language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
exit 0
"
|
||||
AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
|
||||
Outputs="..\bin\lang\tamil.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\lang\thai.txt"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating thai language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
exit 0
"
|
||||
AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
|
||||
Outputs="..\bin\lang\thai.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\lang\traditional_chinese.txt"
|
||||
>
|
||||
|
@@ -289,6 +289,21 @@
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\lang\faroese.txt"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating faroese language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
exit 0
"
|
||||
AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
|
||||
Outputs="..\bin\lang\faroese.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\lang\finnish.txt"
|
||||
>
|
||||
@@ -319,6 +334,21 @@
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\lang\gaelic.txt"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating gaelic language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
exit 0
"
|
||||
AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
|
||||
Outputs="..\bin\lang\gaelic.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\lang\galician.txt"
|
||||
>
|
||||
@@ -724,6 +754,36 @@
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\lang\tamil.txt"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating tamil language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
exit 0
"
|
||||
AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
|
||||
Outputs="..\bin\lang\tamil.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\lang\thai.txt"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating thai language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
exit 0
"
|
||||
AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
|
||||
Outputs="..\bin\lang\thai.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\lang\traditional_chinese.txt"
|
||||
>
|
||||
|
@@ -102,7 +102,7 @@
|
||||
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
|
||||
<OmitFramePointers>true</OmitFramePointers>
|
||||
<AdditionalIncludeDirectories>..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";WITH_ASSERT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";WITH_ASSERT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<StringPooling>true</StringPooling>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
@@ -131,7 +131,7 @@
|
||||
<Culture>0x0809</Culture>
|
||||
</ResourceCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>winmm.lib;ws2_32.lib;libpng.lib;zlibstat.lib;lzo2.lib;liblzma.lib;libfreetype2.lib;icuuc.lib;icuin.lib;icudt.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>winmm.lib;ws2_32.lib;imm32.lib;libpng.lib;zlibstat.lib;lzo2.lib;liblzma.lib;libfreetype2.lib;icuuc.lib;icuin.lib;icudt.lib;icule.lib;iculx.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
@@ -156,7 +156,7 @@
|
||||
<AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<PrecompiledHeader>
|
||||
@@ -176,7 +176,7 @@
|
||||
<Culture>0x0809</Culture>
|
||||
</ResourceCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>winmm.lib;ws2_32.lib;libpng.lib;zlibstat.lib;lzo2.lib;liblzma.lib;libfreetype2.lib;icuuc.lib;icuin.lib;icudt.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>winmm.lib;ws2_32.lib;imm32.lib;libpng.lib;zlibstat.lib;lzo2.lib;liblzma.lib;libfreetype2.lib;icuuc.lib;icuin.lib;icudt.lib;icule.lib;iculx.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<IgnoreSpecificDefaultLibraries>LIBCMT.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
@@ -204,7 +204,7 @@
|
||||
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
|
||||
<OmitFramePointers>true</OmitFramePointers>
|
||||
<AdditionalIncludeDirectories>..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;WITH_ASSERT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;WITH_ASSERT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<StringPooling>true</StringPooling>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
@@ -233,7 +233,7 @@
|
||||
<Culture>0x0809</Culture>
|
||||
</ResourceCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>winmm.lib;ws2_32.lib;libpng.lib;zlibstat.lib;lzo2.lib;liblzma.lib;libfreetype2.lib;icuuc.lib;icuin.lib;icudt.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>winmm.lib;ws2_32.lib;imm32.lib;libpng.lib;zlibstat.lib;lzo2.lib;liblzma.lib;libfreetype2.lib;icuuc.lib;icuin.lib;icudt.lib;icule.lib;iculx.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
@@ -256,7 +256,7 @@
|
||||
<AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<PrecompiledHeader>
|
||||
@@ -280,7 +280,7 @@
|
||||
<Culture>0x0809</Culture>
|
||||
</ResourceCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>winmm.lib;ws2_32.lib;libpng.lib;zlibstat.lib;lzo2.lib;liblzma.lib;libfreetype2.lib;icuuc.lib;icuin.lib;icudt.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>winmm.lib;ws2_32.lib;imm32.lib;libpng.lib;zlibstat.lib;lzo2.lib;liblzma.lib;libfreetype2.lib;icuuc.lib;icuin.lib;icudt.lib;icule.lib;iculx.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<IgnoreSpecificDefaultLibraries>LIBCMT.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
@@ -296,6 +296,7 @@
|
||||
<ClCompile Include="..\src\articulated_vehicles.cpp" />
|
||||
<ClCompile Include="..\src\autoreplace.cpp" />
|
||||
<ClCompile Include="..\src\bmp.cpp" />
|
||||
<ClCompile Include="..\src\cargoaction.cpp" />
|
||||
<ClCompile Include="..\src\cargomonitor.cpp" />
|
||||
<ClCompile Include="..\src\cargopacket.cpp" />
|
||||
<ClCompile Include="..\src\cargotype.cpp" />
|
||||
@@ -303,6 +304,7 @@
|
||||
<ClCompile Include="..\src\command.cpp" />
|
||||
<ClCompile Include="..\src\console.cpp" />
|
||||
<ClCompile Include="..\src\console_cmds.cpp" />
|
||||
<ClCompile Include="..\src\cpu.cpp" />
|
||||
<ClCompile Include="..\src\crashlog.cpp" />
|
||||
<ClCompile Include="..\src\currency.cpp" />
|
||||
<ClCompile Include="..\src\date.cpp" />
|
||||
@@ -317,11 +319,13 @@
|
||||
<ClCompile Include="..\src\fileio.cpp" />
|
||||
<ClCompile Include="..\src\fios.cpp" />
|
||||
<ClCompile Include="..\src\fontcache.cpp" />
|
||||
<ClCompile Include="..\src\fontdetection.cpp" />
|
||||
<ClCompile Include="..\src\base_consist.cpp" />
|
||||
<ClCompile Include="..\src\gamelog.cpp" />
|
||||
<ClCompile Include="..\src\genworld.cpp" />
|
||||
<ClCompile Include="..\src\gfx.cpp" />
|
||||
<ClCompile Include="..\src\gfxinit.cpp" />
|
||||
<ClCompile Include="..\src\gfx_layout.cpp" />
|
||||
<ClCompile Include="..\src\goal.cpp" />
|
||||
<ClCompile Include="..\src\ground_vehicle.cpp" />
|
||||
<ClCompile Include="..\src\heightmap.cpp" />
|
||||
@@ -330,6 +334,13 @@
|
||||
<ClCompile Include="..\src\ini.cpp" />
|
||||
<ClCompile Include="..\src\ini_load.cpp" />
|
||||
<ClCompile Include="..\src\landscape.cpp" />
|
||||
<ClCompile Include="..\src\linkgraph\demands.cpp" />
|
||||
<ClCompile Include="..\src\linkgraph\flowmapper.cpp" />
|
||||
<ClCompile Include="..\src\linkgraph\linkgraph.cpp" />
|
||||
<ClCompile Include="..\src\linkgraph\linkgraphjob.cpp" />
|
||||
<ClCompile Include="..\src\linkgraph\linkgraphschedule.cpp" />
|
||||
<ClCompile Include="..\src\linkgraph\mcf.cpp" />
|
||||
<ClCompile Include="..\src\linkgraph\refresh.cpp" />
|
||||
<ClCompile Include="..\src\map.cpp" />
|
||||
<ClCompile Include="..\src\misc.cpp" />
|
||||
<ClCompile Include="..\src\mixer.cpp" />
|
||||
@@ -344,7 +355,6 @@
|
||||
<ClCompile Include="..\src\network\network_udp.cpp" />
|
||||
<ClCompile Include="..\src\openttd.cpp" />
|
||||
<ClCompile Include="..\src\order_backup.cpp" />
|
||||
<ClCompile Include="..\src\os_timer.cpp" />
|
||||
<ClCompile Include="..\src\pbs.cpp" />
|
||||
<ClCompile Include="..\src\progress.cpp" />
|
||||
<ClCompile Include="..\src\rail.cpp" />
|
||||
@@ -364,6 +374,7 @@
|
||||
<ClCompile Include="..\src\string.cpp" />
|
||||
<ClCompile Include="..\src\stringfilter.cpp" />
|
||||
<ClCompile Include="..\src\strings.cpp" />
|
||||
<ClCompile Include="..\src\story.cpp" />
|
||||
<ClCompile Include="..\src\subsidy.cpp" />
|
||||
<ClCompile Include="..\src\textbuf.cpp" />
|
||||
<ClCompile Include="..\src\texteff.cpp" />
|
||||
@@ -374,6 +385,7 @@
|
||||
<ClCompile Include="..\src\vehicle.cpp" />
|
||||
<ClCompile Include="..\src\vehiclelist.cpp" />
|
||||
<ClCompile Include="..\src\viewport.cpp" />
|
||||
<ClCompile Include="..\src\viewport_sprite_sorter_sse4.cpp" />
|
||||
<ClCompile Include="..\src\waypoint.cpp" />
|
||||
<ClCompile Include="..\src\widget.cpp" />
|
||||
<ClCompile Include="..\src\window.cpp" />
|
||||
@@ -392,6 +404,7 @@
|
||||
<ClInclude Include="..\src\bmp.h" />
|
||||
<ClInclude Include="..\src\bridge.h" />
|
||||
<ClInclude Include="..\src\cargo_type.h" />
|
||||
<ClInclude Include="..\src\cargoaction.h" />
|
||||
<ClInclude Include="..\src\cargomonitor.h" />
|
||||
<ClInclude Include="..\src\cargopacket.h" />
|
||||
<ClInclude Include="..\src\cargotype.h" />
|
||||
@@ -410,6 +423,7 @@
|
||||
<ClInclude Include="..\src\console_gui.h" />
|
||||
<ClInclude Include="..\src\console_internal.h" />
|
||||
<ClInclude Include="..\src\console_type.h" />
|
||||
<ClInclude Include="..\src\cpu.h" />
|
||||
<ClInclude Include="..\src\crashlog.h" />
|
||||
<ClInclude Include="..\src\currency.h" />
|
||||
<ClInclude Include="..\src\date_func.h" />
|
||||
@@ -440,11 +454,13 @@
|
||||
<ClInclude Include="..\src\fileio_type.h" />
|
||||
<ClInclude Include="..\src\fios.h" />
|
||||
<ClInclude Include="..\src\fontcache.h" />
|
||||
<ClInclude Include="..\src\fontdetection.h" />
|
||||
<ClInclude Include="..\src\base_consist.h" />
|
||||
<ClInclude Include="..\src\gamelog.h" />
|
||||
<ClInclude Include="..\src\gamelog_internal.h" />
|
||||
<ClInclude Include="..\src\genworld.h" />
|
||||
<ClInclude Include="..\src\gfx_func.h" />
|
||||
<ClInclude Include="..\src\gfx_layout.h" />
|
||||
<ClInclude Include="..\src\gfx_type.h" />
|
||||
<ClInclude Include="..\src\gfxinit.h" />
|
||||
<ClInclude Include="..\src\goal_base.h" />
|
||||
@@ -467,6 +483,18 @@
|
||||
<ClInclude Include="..\src\landscape.h" />
|
||||
<ClInclude Include="..\src\landscape_type.h" />
|
||||
<ClInclude Include="..\src\language.h" />
|
||||
<ClInclude Include="..\src\linkgraph\demands.h" />
|
||||
<ClInclude Include="..\src\linkgraph\flowmapper.h" />
|
||||
<ClInclude Include="..\src\linkgraph\init.h" />
|
||||
<ClInclude Include="..\src\linkgraph\linkgraph.h" />
|
||||
<ClInclude Include="..\src\linkgraph\linkgraph_base.h" />
|
||||
<ClInclude Include="..\src\linkgraph\linkgraph_gui.h" />
|
||||
<ClInclude Include="..\src\linkgraph\linkgraph_type.h" />
|
||||
<ClInclude Include="..\src\linkgraph\linkgraphjob.h" />
|
||||
<ClInclude Include="..\src\linkgraph\linkgraphjob_base.h" />
|
||||
<ClInclude Include="..\src\linkgraph\linkgraphschedule.h" />
|
||||
<ClInclude Include="..\src\linkgraph\mcf.h" />
|
||||
<ClInclude Include="..\src\linkgraph\refresh.h" />
|
||||
<ClInclude Include="..\src\livery.h" />
|
||||
<ClInclude Include="..\src\map_func.h" />
|
||||
<ClInclude Include="..\src\map_type.h" />
|
||||
@@ -568,7 +596,10 @@
|
||||
<ClInclude Include="..\src\station_type.h" />
|
||||
<ClInclude Include="..\src\statusbar_gui.h" />
|
||||
<ClInclude Include="..\src\stdafx.h" />
|
||||
<ClInclude Include="..\src\story_base.h" />
|
||||
<ClInclude Include="..\src\story_type.h" />
|
||||
<ClInclude Include="..\src\strgen\strgen.h" />
|
||||
<ClInclude Include="..\src\string_base.h" />
|
||||
<ClInclude Include="..\src\string_func.h" />
|
||||
<ClInclude Include="..\src\string_type.h" />
|
||||
<ClInclude Include="..\src\stringfilter_type.h" />
|
||||
@@ -611,6 +642,7 @@
|
||||
<ClInclude Include="..\src\vehicle_type.h" />
|
||||
<ClInclude Include="..\src\vehiclelist.h" />
|
||||
<ClInclude Include="..\src\viewport_func.h" />
|
||||
<ClInclude Include="..\src\viewport_sprite_sorter.h" />
|
||||
<ClInclude Include="..\src\viewport_type.h" />
|
||||
<ClInclude Include="..\src\water.h" />
|
||||
<ClInclude Include="..\src\waypoint_base.h" />
|
||||
@@ -640,6 +672,7 @@
|
||||
<ClCompile Include="..\src\core\math_func.cpp" />
|
||||
<ClInclude Include="..\src\core\math_func.hpp" />
|
||||
<ClInclude Include="..\src\core\mem_func.hpp" />
|
||||
<ClInclude Include="..\src\core\multimap.hpp" />
|
||||
<ClInclude Include="..\src\core\overflowsafe_type.hpp" />
|
||||
<ClCompile Include="..\src\core\pool_func.cpp" />
|
||||
<ClInclude Include="..\src\core\pool_func.hpp" />
|
||||
@@ -647,6 +680,8 @@
|
||||
<ClCompile Include="..\src\core\random_func.cpp" />
|
||||
<ClInclude Include="..\src\core\random_func.hpp" />
|
||||
<ClInclude Include="..\src\core\smallmap_type.hpp" />
|
||||
<ClInclude Include="..\src\core\smallmatrix_type.hpp" />
|
||||
<ClInclude Include="..\src\core\smallstack_type.hpp" />
|
||||
<ClInclude Include="..\src\core\smallvec_type.hpp" />
|
||||
<ClInclude Include="..\src\core\sort_func.hpp" />
|
||||
<ClInclude Include="..\src\core\string_compare_type.hpp" />
|
||||
@@ -672,6 +707,7 @@
|
||||
<ClCompile Include="..\src\highscore_gui.cpp" />
|
||||
<ClCompile Include="..\src\industry_gui.cpp" />
|
||||
<ClCompile Include="..\src\intro_gui.cpp" />
|
||||
<ClCompile Include="..\src\linkgraph\linkgraph_gui.cpp" />
|
||||
<ClCompile Include="..\src\main_gui.cpp" />
|
||||
<ClCompile Include="..\src\misc_gui.cpp" />
|
||||
<ClCompile Include="..\src\music_gui.cpp" />
|
||||
@@ -693,6 +729,7 @@
|
||||
<ClCompile Include="..\src\smallmap_gui.cpp" />
|
||||
<ClCompile Include="..\src\station_gui.cpp" />
|
||||
<ClCompile Include="..\src\statusbar_gui.cpp" />
|
||||
<ClCompile Include="..\src\story_gui.cpp" />
|
||||
<ClCompile Include="..\src\subsidy_gui.cpp" />
|
||||
<ClCompile Include="..\src\terraform_gui.cpp" />
|
||||
<ClCompile Include="..\src\textfile_gui.cpp" />
|
||||
@@ -731,6 +768,7 @@
|
||||
<ClInclude Include="..\src\widgets\highscore_widget.h" />
|
||||
<ClInclude Include="..\src\widgets\industry_widget.h" />
|
||||
<ClInclude Include="..\src\widgets\intro_widget.h" />
|
||||
<ClInclude Include="..\src\widgets\link_graph_legend_widget.h" />
|
||||
<ClInclude Include="..\src\widgets\main_widget.h" />
|
||||
<ClInclude Include="..\src\widgets\misc_widget.h" />
|
||||
<ClInclude Include="..\src\widgets\music_widget.h" />
|
||||
@@ -750,6 +788,7 @@
|
||||
<ClInclude Include="..\src\widgets\smallmap_widget.h" />
|
||||
<ClInclude Include="..\src\widgets\station_widget.h" />
|
||||
<ClInclude Include="..\src\widgets\statusbar_widget.h" />
|
||||
<ClInclude Include="..\src\widgets\story_widget.h" />
|
||||
<ClInclude Include="..\src\widgets\subsidy_widget.h" />
|
||||
<ClInclude Include="..\src\widgets\terraform_widget.h" />
|
||||
<ClInclude Include="..\src\widgets\timetable_widget.h" />
|
||||
@@ -805,6 +844,7 @@
|
||||
<ClCompile Include="..\src\saveload\group_sl.cpp" />
|
||||
<ClCompile Include="..\src\saveload\industry_sl.cpp" />
|
||||
<ClCompile Include="..\src\saveload\labelmaps_sl.cpp" />
|
||||
<ClCompile Include="..\src\saveload\linkgraph_sl.cpp" />
|
||||
<ClCompile Include="..\src\saveload\map_sl.cpp" />
|
||||
<ClCompile Include="..\src\saveload\misc_sl.cpp" />
|
||||
<ClCompile Include="..\src\saveload\newgrf_sl.cpp" />
|
||||
@@ -822,6 +862,7 @@
|
||||
<ClCompile Include="..\src\saveload\station_sl.cpp" />
|
||||
<ClCompile Include="..\src\saveload\storage_sl.cpp" />
|
||||
<ClCompile Include="..\src\saveload\strings_sl.cpp" />
|
||||
<ClCompile Include="..\src\saveload\story_sl.cpp" />
|
||||
<ClCompile Include="..\src\saveload\subsidy_sl.cpp" />
|
||||
<ClCompile Include="..\src\saveload\town_sl.cpp" />
|
||||
<ClCompile Include="..\src\saveload\vehicle_sl.cpp" />
|
||||
@@ -994,6 +1035,9 @@
|
||||
<ClInclude Include="..\src\script\api\script_signlist.hpp" />
|
||||
<ClInclude Include="..\src\script\api\script_station.hpp" />
|
||||
<ClInclude Include="..\src\script\api\script_stationlist.hpp" />
|
||||
<ClInclude Include="..\src\script\api\script_story_page.hpp" />
|
||||
<ClInclude Include="..\src\script\api\script_storypagelist.hpp" />
|
||||
<ClInclude Include="..\src\script\api\script_storypageelementlist.hpp" />
|
||||
<ClInclude Include="..\src\script\api\script_subsidy.hpp" />
|
||||
<ClInclude Include="..\src\script\api\script_subsidylist.hpp" />
|
||||
<ClInclude Include="..\src\script\api\script_testmode.hpp" />
|
||||
@@ -1055,6 +1099,9 @@
|
||||
<ClCompile Include="..\src\script\api\script_signlist.cpp" />
|
||||
<ClCompile Include="..\src\script\api\script_station.cpp" />
|
||||
<ClCompile Include="..\src\script\api\script_stationlist.cpp" />
|
||||
<ClCompile Include="..\src\script\api\script_story_page.cpp" />
|
||||
<ClCompile Include="..\src\script\api\script_storypagelist.cpp" />
|
||||
<ClCompile Include="..\src\script\api\script_storypageelementlist.cpp" />
|
||||
<ClCompile Include="..\src\script\api\script_subsidy.cpp" />
|
||||
<ClCompile Include="..\src\script\api\script_subsidylist.cpp" />
|
||||
<ClCompile Include="..\src\script\api\script_testmode.cpp" />
|
||||
@@ -1072,12 +1119,22 @@
|
||||
<ClCompile Include="..\src\script\api\script_window.cpp" />
|
||||
<ClCompile Include="..\src\blitter\32bpp_anim.cpp" />
|
||||
<ClInclude Include="..\src\blitter\32bpp_anim.hpp" />
|
||||
<ClCompile Include="..\src\blitter\32bpp_anim_sse4.cpp" />
|
||||
<ClInclude Include="..\src\blitter\32bpp_anim_sse4.hpp" />
|
||||
<ClCompile Include="..\src\blitter\32bpp_base.cpp" />
|
||||
<ClInclude Include="..\src\blitter\32bpp_base.hpp" />
|
||||
<ClCompile Include="..\src\blitter\32bpp_optimized.cpp" />
|
||||
<ClInclude Include="..\src\blitter\32bpp_optimized.hpp" />
|
||||
<ClCompile Include="..\src\blitter\32bpp_simple.cpp" />
|
||||
<ClInclude Include="..\src\blitter\32bpp_simple.hpp" />
|
||||
<ClInclude Include="..\src\blitter\32bpp_sse_func.hpp" />
|
||||
<ClInclude Include="..\src\blitter\32bpp_sse_type.h" />
|
||||
<ClCompile Include="..\src\blitter\32bpp_sse2.cpp" />
|
||||
<ClInclude Include="..\src\blitter\32bpp_sse2.hpp" />
|
||||
<ClCompile Include="..\src\blitter\32bpp_sse4.cpp" />
|
||||
<ClInclude Include="..\src\blitter\32bpp_sse4.hpp" />
|
||||
<ClCompile Include="..\src\blitter\32bpp_ssse3.cpp" />
|
||||
<ClInclude Include="..\src\blitter\32bpp_ssse3.hpp" />
|
||||
<ClCompile Include="..\src\blitter\8bpp_base.cpp" />
|
||||
<ClInclude Include="..\src\blitter\8bpp_base.hpp" />
|
||||
<ClCompile Include="..\src\blitter\8bpp_optimized.cpp" />
|
||||
@@ -1199,6 +1256,7 @@
|
||||
<ClCompile Include="..\src\pathfinder\yapf\yapf_rail.cpp" />
|
||||
<ClCompile Include="..\src\pathfinder\yapf\yapf_road.cpp" />
|
||||
<ClCompile Include="..\src\pathfinder\yapf\yapf_ship.cpp" />
|
||||
<ClInclude Include="..\src\pathfinder\yapf\yapf_type.hpp" />
|
||||
<ClCompile Include="..\src\video\dedicated_v.cpp" />
|
||||
<ClCompile Include="..\src\video\null_v.cpp" />
|
||||
<ClCompile Include="..\src\video\sdl_v.cpp" />
|
||||
|
@@ -117,6 +117,9 @@
|
||||
<ClCompile Include="..\src\bmp.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\cargoaction.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\cargomonitor.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
@@ -138,6 +141,9 @@
|
||||
<ClCompile Include="..\src\console_cmds.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\cpu.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\crashlog.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
@@ -180,6 +186,9 @@
|
||||
<ClCompile Include="..\src\fontcache.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\fontdetection.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\base_consist.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
@@ -195,6 +204,9 @@
|
||||
<ClCompile Include="..\src\gfxinit.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\gfx_layout.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\goal.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
@@ -219,6 +231,27 @@
|
||||
<ClCompile Include="..\src\landscape.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\linkgraph\demands.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\linkgraph\flowmapper.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\linkgraph\linkgraph.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\linkgraph\linkgraphjob.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\linkgraph\linkgraphschedule.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\linkgraph\mcf.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\linkgraph\refresh.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\map.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
@@ -261,9 +294,6 @@
|
||||
<ClCompile Include="..\src\order_backup.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\os_timer.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\pbs.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
@@ -321,6 +351,9 @@
|
||||
<ClCompile Include="..\src\strings.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\story.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\subsidy.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
@@ -351,6 +384,9 @@
|
||||
<ClCompile Include="..\src\viewport.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\viewport_sprite_sorter_sse4.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\waypoint.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
@@ -405,6 +441,9 @@
|
||||
<ClInclude Include="..\src\cargo_type.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\cargoaction.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\cargomonitor.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
@@ -459,6 +498,9 @@
|
||||
<ClInclude Include="..\src\console_type.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\cpu.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\crashlog.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
@@ -549,6 +591,9 @@
|
||||
<ClInclude Include="..\src\fontcache.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\fontdetection.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\base_consist.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
@@ -564,6 +609,9 @@
|
||||
<ClInclude Include="..\src\gfx_func.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\gfx_layout.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\gfx_type.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
@@ -630,6 +678,42 @@
|
||||
<ClInclude Include="..\src\language.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\linkgraph\demands.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\linkgraph\flowmapper.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\linkgraph\init.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\linkgraph\linkgraph.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\linkgraph\linkgraph_base.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\linkgraph\linkgraph_gui.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\linkgraph\linkgraph_type.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\linkgraph\linkgraphjob.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\linkgraph\linkgraphjob_base.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\linkgraph\linkgraphschedule.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\linkgraph\mcf.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\linkgraph\refresh.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\livery.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
@@ -933,9 +1017,18 @@
|
||||
<ClInclude Include="..\src\stdafx.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\story_base.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\story_type.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\strgen\strgen.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\string_base.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\string_func.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
@@ -1062,6 +1155,9 @@
|
||||
<ClInclude Include="..\src\viewport_func.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\viewport_sprite_sorter.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\viewport_type.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
@@ -1149,6 +1245,9 @@
|
||||
<ClInclude Include="..\src\core\mem_func.hpp">
|
||||
<Filter>Core Source Code</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\core\multimap.hpp">
|
||||
<Filter>Core Source Code</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\core\overflowsafe_type.hpp">
|
||||
<Filter>Core Source Code</Filter>
|
||||
</ClInclude>
|
||||
@@ -1170,6 +1269,12 @@
|
||||
<ClInclude Include="..\src\core\smallmap_type.hpp">
|
||||
<Filter>Core Source Code</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\core\smallmatrix_type.hpp">
|
||||
<Filter>Core Source Code</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\core\smallstack_type.hpp">
|
||||
<Filter>Core Source Code</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\core\smallvec_type.hpp">
|
||||
<Filter>Core Source Code</Filter>
|
||||
</ClInclude>
|
||||
@@ -1245,6 +1350,9 @@
|
||||
<ClCompile Include="..\src\intro_gui.cpp">
|
||||
<Filter>GUI Source Code</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\linkgraph\linkgraph_gui.cpp">
|
||||
<Filter>GUI Source Code</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\main_gui.cpp">
|
||||
<Filter>GUI Source Code</Filter>
|
||||
</ClCompile>
|
||||
@@ -1308,6 +1416,9 @@
|
||||
<ClCompile Include="..\src\statusbar_gui.cpp">
|
||||
<Filter>GUI Source Code</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\story_gui.cpp">
|
||||
<Filter>GUI Source Code</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\subsidy_gui.cpp">
|
||||
<Filter>GUI Source Code</Filter>
|
||||
</ClCompile>
|
||||
@@ -1422,6 +1533,9 @@
|
||||
<ClInclude Include="..\src\widgets\intro_widget.h">
|
||||
<Filter>Widgets</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\widgets\link_graph_legend_widget.h">
|
||||
<Filter>Widgets</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\widgets\main_widget.h">
|
||||
<Filter>Widgets</Filter>
|
||||
</ClInclude>
|
||||
@@ -1479,6 +1593,9 @@
|
||||
<ClInclude Include="..\src\widgets\statusbar_widget.h">
|
||||
<Filter>Widgets</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\widgets\story_widget.h">
|
||||
<Filter>Widgets</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\widgets\subsidy_widget.h">
|
||||
<Filter>Widgets</Filter>
|
||||
</ClInclude>
|
||||
@@ -1644,6 +1761,9 @@
|
||||
<ClCompile Include="..\src\saveload\labelmaps_sl.cpp">
|
||||
<Filter>Save/Load handlers</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\saveload\linkgraph_sl.cpp">
|
||||
<Filter>Save/Load handlers</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\saveload\map_sl.cpp">
|
||||
<Filter>Save/Load handlers</Filter>
|
||||
</ClCompile>
|
||||
@@ -1695,6 +1815,9 @@
|
||||
<ClCompile Include="..\src\saveload\strings_sl.cpp">
|
||||
<Filter>Save/Load handlers</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\saveload\story_sl.cpp">
|
||||
<Filter>Save/Load handlers</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\saveload\subsidy_sl.cpp">
|
||||
<Filter>Save/Load handlers</Filter>
|
||||
</ClCompile>
|
||||
@@ -2211,6 +2334,15 @@
|
||||
<ClInclude Include="..\src\script\api\script_stationlist.hpp">
|
||||
<Filter>Script API</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\script\api\script_story_page.hpp">
|
||||
<Filter>Script API</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\script\api\script_storypagelist.hpp">
|
||||
<Filter>Script API</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\script\api\script_storypageelementlist.hpp">
|
||||
<Filter>Script API</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\script\api\script_subsidy.hpp">
|
||||
<Filter>Script API</Filter>
|
||||
</ClInclude>
|
||||
@@ -2394,6 +2526,15 @@
|
||||
<ClCompile Include="..\src\script\api\script_stationlist.cpp">
|
||||
<Filter>Script API Implementation</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\script\api\script_story_page.cpp">
|
||||
<Filter>Script API Implementation</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\script\api\script_storypagelist.cpp">
|
||||
<Filter>Script API Implementation</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\script\api\script_storypageelementlist.cpp">
|
||||
<Filter>Script API Implementation</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\script\api\script_subsidy.cpp">
|
||||
<Filter>Script API Implementation</Filter>
|
||||
</ClCompile>
|
||||
@@ -2445,6 +2586,12 @@
|
||||
<ClInclude Include="..\src\blitter\32bpp_anim.hpp">
|
||||
<Filter>Blitters</Filter>
|
||||
</ClInclude>
|
||||
<ClCompile Include="..\src\blitter\32bpp_anim_sse4.cpp">
|
||||
<Filter>Blitters</Filter>
|
||||
</ClCompile>
|
||||
<ClInclude Include="..\src\blitter\32bpp_anim_sse4.hpp">
|
||||
<Filter>Blitters</Filter>
|
||||
</ClInclude>
|
||||
<ClCompile Include="..\src\blitter\32bpp_base.cpp">
|
||||
<Filter>Blitters</Filter>
|
||||
</ClCompile>
|
||||
@@ -2463,6 +2610,30 @@
|
||||
<ClInclude Include="..\src\blitter\32bpp_simple.hpp">
|
||||
<Filter>Blitters</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\blitter\32bpp_sse_func.hpp">
|
||||
<Filter>Blitters</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\blitter\32bpp_sse_type.h">
|
||||
<Filter>Blitters</Filter>
|
||||
</ClInclude>
|
||||
<ClCompile Include="..\src\blitter\32bpp_sse2.cpp">
|
||||
<Filter>Blitters</Filter>
|
||||
</ClCompile>
|
||||
<ClInclude Include="..\src\blitter\32bpp_sse2.hpp">
|
||||
<Filter>Blitters</Filter>
|
||||
</ClInclude>
|
||||
<ClCompile Include="..\src\blitter\32bpp_sse4.cpp">
|
||||
<Filter>Blitters</Filter>
|
||||
</ClCompile>
|
||||
<ClInclude Include="..\src\blitter\32bpp_sse4.hpp">
|
||||
<Filter>Blitters</Filter>
|
||||
</ClInclude>
|
||||
<ClCompile Include="..\src\blitter\32bpp_ssse3.cpp">
|
||||
<Filter>Blitters</Filter>
|
||||
</ClCompile>
|
||||
<ClInclude Include="..\src\blitter\32bpp_ssse3.hpp">
|
||||
<Filter>Blitters</Filter>
|
||||
</ClInclude>
|
||||
<ClCompile Include="..\src\blitter\8bpp_base.cpp">
|
||||
<Filter>Blitters</Filter>
|
||||
</ClCompile>
|
||||
@@ -2826,6 +2997,9 @@
|
||||
<ClCompile Include="..\src\pathfinder\yapf\yapf_ship.cpp">
|
||||
<Filter>YAPF</Filter>
|
||||
</ClCompile>
|
||||
<ClInclude Include="..\src\pathfinder\yapf\yapf_type.hpp">
|
||||
<Filter>YAPF</Filter>
|
||||
</ClInclude>
|
||||
<ClCompile Include="..\src\video\dedicated_v.cpp">
|
||||
<Filter>Video</Filter>
|
||||
</ClCompile>
|
||||
|
@@ -102,7 +102,7 @@
|
||||
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
|
||||
<OmitFramePointers>true</OmitFramePointers>
|
||||
<AdditionalIncludeDirectories>..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";WITH_ASSERT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";WITH_ASSERT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<StringPooling>true</StringPooling>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
@@ -131,7 +131,7 @@
|
||||
<Culture>0x0809</Culture>
|
||||
</ResourceCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>winmm.lib;ws2_32.lib;libpng.lib;zlibstat.lib;lzo2.lib;liblzma.lib;libfreetype2.lib;icuuc.lib;icuin.lib;icudt.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>winmm.lib;ws2_32.lib;imm32.lib;libpng.lib;zlibstat.lib;lzo2.lib;liblzma.lib;libfreetype2.lib;icuuc.lib;icuin.lib;icudt.lib;icule.lib;iculx.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
@@ -156,7 +156,7 @@
|
||||
<AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<PrecompiledHeader>
|
||||
@@ -176,7 +176,7 @@
|
||||
<Culture>0x0809</Culture>
|
||||
</ResourceCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>winmm.lib;ws2_32.lib;libpng.lib;zlibstat.lib;lzo2.lib;liblzma.lib;libfreetype2.lib;icuuc.lib;icuin.lib;icudt.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>winmm.lib;ws2_32.lib;imm32.lib;libpng.lib;zlibstat.lib;lzo2.lib;liblzma.lib;libfreetype2.lib;icuuc.lib;icuin.lib;icudt.lib;icule.lib;iculx.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<IgnoreSpecificDefaultLibraries>LIBCMT.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
@@ -204,7 +204,7 @@
|
||||
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
|
||||
<OmitFramePointers>true</OmitFramePointers>
|
||||
<AdditionalIncludeDirectories>..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;WITH_ASSERT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;WITH_ASSERT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<StringPooling>true</StringPooling>
|
||||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
@@ -233,7 +233,7 @@
|
||||
<Culture>0x0809</Culture>
|
||||
</ResourceCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>winmm.lib;ws2_32.lib;libpng.lib;zlibstat.lib;lzo2.lib;liblzma.lib;libfreetype2.lib;icuuc.lib;icuin.lib;icudt.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>winmm.lib;ws2_32.lib;imm32.lib;libpng.lib;zlibstat.lib;lzo2.lib;liblzma.lib;libfreetype2.lib;icuuc.lib;icuin.lib;icudt.lib;icule.lib;iculx.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
@@ -256,7 +256,7 @@
|
||||
<AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<AdditionalIncludeDirectories>..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<PrecompiledHeader>
|
||||
@@ -280,7 +280,7 @@
|
||||
<Culture>0x0809</Culture>
|
||||
</ResourceCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>winmm.lib;ws2_32.lib;libpng.lib;zlibstat.lib;lzo2.lib;liblzma.lib;libfreetype2.lib;icuuc.lib;icuin.lib;icudt.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalDependencies>winmm.lib;ws2_32.lib;imm32.lib;libpng.lib;zlibstat.lib;lzo2.lib;liblzma.lib;libfreetype2.lib;icuuc.lib;icuin.lib;icudt.lib;icule.lib;iculx.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<IgnoreSpecificDefaultLibraries>LIBCMT.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
|
@@ -52,7 +52,7 @@
|
||||
FavorSizeOrSpeed="2"
|
||||
OmitFramePointers="true"
|
||||
AdditionalIncludeDirectories="..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";WITH_ASSERT"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";WITH_ASSERT"
|
||||
StringPooling="true"
|
||||
ExceptionHandling="1"
|
||||
RuntimeLibrary="0"
|
||||
@@ -87,7 +87,7 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib"
|
||||
AdditionalDependencies="winmm.lib ws2_32.lib imm32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib icule.lib iculx.lib"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="true"
|
||||
IgnoreDefaultLibraryNames=""
|
||||
@@ -156,7 +156,7 @@
|
||||
AdditionalOptions="/MP"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\""
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\""
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
UsePrecompiledHeader="0"
|
||||
@@ -184,7 +184,7 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib"
|
||||
AdditionalDependencies="winmm.lib ws2_32.lib imm32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib icule.lib iculx.lib"
|
||||
LinkIncremental="0"
|
||||
SuppressStartupBanner="true"
|
||||
IgnoreDefaultLibraryNames="LIBCMT.lib"
|
||||
@@ -257,7 +257,7 @@
|
||||
FavorSizeOrSpeed="2"
|
||||
OmitFramePointers="true"
|
||||
AdditionalIncludeDirectories="..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";_SQ64;WITH_ASSERT"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";_SQ64;WITH_ASSERT"
|
||||
StringPooling="true"
|
||||
ExceptionHandling="1"
|
||||
RuntimeLibrary="0"
|
||||
@@ -292,7 +292,7 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib"
|
||||
AdditionalDependencies="winmm.lib ws2_32.lib imm32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib icule.lib iculx.lib"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="true"
|
||||
IgnoreDefaultLibraryNames=""
|
||||
@@ -362,7 +362,7 @@
|
||||
AdditionalOptions="/MP"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";_SQ64"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";_SQ64"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
UsePrecompiledHeader="0"
|
||||
@@ -392,7 +392,7 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib"
|
||||
AdditionalDependencies="winmm.lib ws2_32.lib imm32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib icule.lib iculx.lib"
|
||||
LinkIncremental="0"
|
||||
SuppressStartupBanner="true"
|
||||
IgnoreDefaultLibraryNames="LIBCMT.lib"
|
||||
@@ -454,6 +454,10 @@
|
||||
RelativePath=".\..\src\bmp.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\cargoaction.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\cargomonitor.cpp"
|
||||
>
|
||||
@@ -482,6 +486,10 @@
|
||||
RelativePath=".\..\src\console_cmds.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\cpu.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\crashlog.cpp"
|
||||
>
|
||||
@@ -538,6 +546,10 @@
|
||||
RelativePath=".\..\src\fontcache.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\fontdetection.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\base_consist.cpp"
|
||||
>
|
||||
@@ -558,6 +570,10 @@
|
||||
RelativePath=".\..\src\gfxinit.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\gfx_layout.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\goal.cpp"
|
||||
>
|
||||
@@ -590,6 +606,34 @@
|
||||
RelativePath=".\..\src\landscape.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\linkgraph\demands.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\linkgraph\flowmapper.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\linkgraph\linkgraph.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\linkgraph\linkgraphjob.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\linkgraph\linkgraphschedule.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\linkgraph\mcf.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\linkgraph\refresh.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\map.cpp"
|
||||
>
|
||||
@@ -646,10 +690,6 @@
|
||||
RelativePath=".\..\src\order_backup.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\os_timer.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pbs.cpp"
|
||||
>
|
||||
@@ -726,6 +766,10 @@
|
||||
RelativePath=".\..\src\strings.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\story.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\subsidy.cpp"
|
||||
>
|
||||
@@ -766,6 +810,10 @@
|
||||
RelativePath=".\..\src\viewport.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\viewport_sprite_sorter_sse4.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\waypoint.cpp"
|
||||
>
|
||||
@@ -842,6 +890,10 @@
|
||||
RelativePath=".\..\src\cargo_type.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\cargoaction.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\cargomonitor.h"
|
||||
>
|
||||
@@ -914,6 +966,10 @@
|
||||
RelativePath=".\..\src\console_type.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\cpu.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\crashlog.h"
|
||||
>
|
||||
@@ -1034,6 +1090,10 @@
|
||||
RelativePath=".\..\src\fontcache.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\fontdetection.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\base_consist.h"
|
||||
>
|
||||
@@ -1054,6 +1114,10 @@
|
||||
RelativePath=".\..\src\gfx_func.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\gfx_layout.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\gfx_type.h"
|
||||
>
|
||||
@@ -1142,6 +1206,54 @@
|
||||
RelativePath=".\..\src\language.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\linkgraph\demands.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\linkgraph\flowmapper.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\linkgraph\init.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\linkgraph\linkgraph.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\linkgraph\linkgraph_base.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\linkgraph\linkgraph_gui.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\linkgraph\linkgraph_type.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\linkgraph\linkgraphjob.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\linkgraph\linkgraphjob_base.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\linkgraph\linkgraphschedule.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\linkgraph\mcf.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\linkgraph\refresh.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\livery.h"
|
||||
>
|
||||
@@ -1546,10 +1658,22 @@
|
||||
RelativePath=".\..\src\stdafx.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\story_base.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\story_type.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\strgen\strgen.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\string_base.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\string_func.h"
|
||||
>
|
||||
@@ -1718,6 +1842,10 @@
|
||||
RelativePath=".\..\src\viewport_func.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\viewport_sprite_sorter.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\viewport_type.h"
|
||||
>
|
||||
@@ -1838,6 +1966,10 @@
|
||||
RelativePath=".\..\src\core\mem_func.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\core\multimap.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\core\overflowsafe_type.hpp"
|
||||
>
|
||||
@@ -1866,6 +1998,14 @@
|
||||
RelativePath=".\..\src\core\smallmap_type.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\core\smallmatrix_type.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\core\smallstack_type.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\core\smallvec_type.hpp"
|
||||
>
|
||||
@@ -1970,6 +2110,10 @@
|
||||
RelativePath=".\..\src\intro_gui.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\linkgraph\linkgraph_gui.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\main_gui.cpp"
|
||||
>
|
||||
@@ -2054,6 +2198,10 @@
|
||||
RelativePath=".\..\src\statusbar_gui.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\story_gui.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\subsidy_gui.cpp"
|
||||
>
|
||||
@@ -2210,6 +2358,10 @@
|
||||
RelativePath=".\..\src\widgets\intro_widget.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\widgets\link_graph_legend_widget.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\widgets\main_widget.h"
|
||||
>
|
||||
@@ -2286,6 +2438,10 @@
|
||||
RelativePath=".\..\src\widgets\statusbar_widget.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\widgets\story_widget.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\widgets\subsidy_widget.h"
|
||||
>
|
||||
@@ -2514,6 +2670,10 @@
|
||||
RelativePath=".\..\src\saveload\labelmaps_sl.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\saveload\linkgraph_sl.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\saveload\map_sl.cpp"
|
||||
>
|
||||
@@ -2582,6 +2742,10 @@
|
||||
RelativePath=".\..\src\saveload\strings_sl.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\saveload\story_sl.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\saveload\subsidy_sl.cpp"
|
||||
>
|
||||
@@ -3310,6 +3474,18 @@
|
||||
RelativePath=".\..\src\script\api\script_stationlist.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\script\api\script_story_page.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\script\api\script_storypagelist.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\script\api\script_storypageelementlist.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\script\api\script_subsidy.hpp"
|
||||
>
|
||||
@@ -3558,6 +3734,18 @@
|
||||
RelativePath=".\..\src\script\api\script_stationlist.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\script\api\script_story_page.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\script\api\script_storypagelist.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\script\api\script_storypageelementlist.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\script\api\script_subsidy.cpp"
|
||||
>
|
||||
@@ -3630,6 +3818,14 @@
|
||||
RelativePath=".\..\src\blitter\32bpp_anim.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\blitter\32bpp_anim_sse4.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\blitter\32bpp_anim_sse4.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\blitter\32bpp_base.cpp"
|
||||
>
|
||||
@@ -3654,6 +3850,38 @@
|
||||
RelativePath=".\..\src\blitter\32bpp_simple.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\blitter\32bpp_sse_func.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\blitter\32bpp_sse_type.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\blitter\32bpp_sse2.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\blitter\32bpp_sse2.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\blitter\32bpp_sse4.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\blitter\32bpp_sse4.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\blitter\32bpp_ssse3.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\blitter\32bpp_ssse3.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\blitter\8bpp_base.cpp"
|
||||
>
|
||||
@@ -4174,6 +4402,10 @@
|
||||
RelativePath=".\..\src\pathfinder\yapf\yapf_ship.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfinder\yapf\yapf_type.hpp"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Video"
|
||||
|
@@ -52,7 +52,7 @@
|
||||
FavorSizeOrSpeed="2"
|
||||
OmitFramePointers="true"
|
||||
AdditionalIncludeDirectories="..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";WITH_ASSERT"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";WITH_ASSERT"
|
||||
StringPooling="true"
|
||||
ExceptionHandling="1"
|
||||
RuntimeLibrary="0"
|
||||
@@ -87,7 +87,7 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib"
|
||||
AdditionalDependencies="winmm.lib ws2_32.lib imm32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib icule.lib iculx.lib"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="true"
|
||||
IgnoreDefaultLibraryNames=""
|
||||
@@ -156,7 +156,7 @@
|
||||
AdditionalOptions="/MP"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\""
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\""
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
UsePrecompiledHeader="0"
|
||||
@@ -184,7 +184,7 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib"
|
||||
AdditionalDependencies="winmm.lib ws2_32.lib imm32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib icule.lib iculx.lib"
|
||||
LinkIncremental="0"
|
||||
SuppressStartupBanner="true"
|
||||
IgnoreDefaultLibraryNames="LIBCMT.lib"
|
||||
@@ -257,7 +257,7 @@
|
||||
FavorSizeOrSpeed="2"
|
||||
OmitFramePointers="true"
|
||||
AdditionalIncludeDirectories="..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";_SQ64;WITH_ASSERT"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";_SQ64;WITH_ASSERT"
|
||||
StringPooling="true"
|
||||
ExceptionHandling="1"
|
||||
RuntimeLibrary="0"
|
||||
@@ -292,7 +292,7 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib"
|
||||
AdditionalDependencies="winmm.lib ws2_32.lib imm32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib icule.lib iculx.lib"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="true"
|
||||
IgnoreDefaultLibraryNames=""
|
||||
@@ -362,7 +362,7 @@
|
||||
AdditionalOptions="/MP"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";_SQ64"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";_SQ64"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
UsePrecompiledHeader="0"
|
||||
@@ -392,7 +392,7 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib"
|
||||
AdditionalDependencies="winmm.lib ws2_32.lib imm32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib icule.lib iculx.lib"
|
||||
LinkIncremental="0"
|
||||
SuppressStartupBanner="true"
|
||||
IgnoreDefaultLibraryNames="LIBCMT.lib"
|
||||
|
@@ -53,7 +53,7 @@
|
||||
FavorSizeOrSpeed="2"
|
||||
OmitFramePointers="true"
|
||||
AdditionalIncludeDirectories="..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";WITH_ASSERT"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";WITH_ASSERT"
|
||||
StringPooling="true"
|
||||
ExceptionHandling="1"
|
||||
RuntimeLibrary="0"
|
||||
@@ -88,7 +88,7 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib"
|
||||
AdditionalDependencies="winmm.lib ws2_32.lib imm32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib icule.lib iculx.lib"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="true"
|
||||
IgnoreDefaultLibraryNames=""
|
||||
@@ -155,7 +155,7 @@
|
||||
AdditionalOptions="/MP"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\""
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\""
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
UsePrecompiledHeader="0"
|
||||
@@ -183,7 +183,7 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib"
|
||||
AdditionalDependencies="winmm.lib ws2_32.lib imm32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib icule.lib iculx.lib"
|
||||
LinkIncremental="0"
|
||||
SuppressStartupBanner="true"
|
||||
IgnoreDefaultLibraryNames="LIBCMT.lib"
|
||||
@@ -255,7 +255,7 @@
|
||||
FavorSizeOrSpeed="2"
|
||||
OmitFramePointers="true"
|
||||
AdditionalIncludeDirectories="..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";_SQ64;WITH_ASSERT"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";_SQ64;WITH_ASSERT"
|
||||
StringPooling="true"
|
||||
ExceptionHandling="1"
|
||||
RuntimeLibrary="0"
|
||||
@@ -290,7 +290,7 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib"
|
||||
AdditionalDependencies="winmm.lib ws2_32.lib imm32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib icule.lib iculx.lib"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="true"
|
||||
IgnoreDefaultLibraryNames=""
|
||||
@@ -359,7 +359,7 @@
|
||||
AdditionalOptions="/MP"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";_SQ64"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";_SQ64"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
UsePrecompiledHeader="0"
|
||||
@@ -389,7 +389,7 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib"
|
||||
AdditionalDependencies="winmm.lib ws2_32.lib imm32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib icule.lib iculx.lib"
|
||||
LinkIncremental="0"
|
||||
SuppressStartupBanner="true"
|
||||
IgnoreDefaultLibraryNames="LIBCMT.lib"
|
||||
@@ -451,6 +451,10 @@
|
||||
RelativePath=".\..\src\bmp.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\cargoaction.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\cargomonitor.cpp"
|
||||
>
|
||||
@@ -479,6 +483,10 @@
|
||||
RelativePath=".\..\src\console_cmds.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\cpu.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\crashlog.cpp"
|
||||
>
|
||||
@@ -535,6 +543,10 @@
|
||||
RelativePath=".\..\src\fontcache.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\fontdetection.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\base_consist.cpp"
|
||||
>
|
||||
@@ -555,6 +567,10 @@
|
||||
RelativePath=".\..\src\gfxinit.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\gfx_layout.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\goal.cpp"
|
||||
>
|
||||
@@ -587,6 +603,34 @@
|
||||
RelativePath=".\..\src\landscape.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\linkgraph\demands.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\linkgraph\flowmapper.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\linkgraph\linkgraph.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\linkgraph\linkgraphjob.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\linkgraph\linkgraphschedule.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\linkgraph\mcf.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\linkgraph\refresh.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\map.cpp"
|
||||
>
|
||||
@@ -643,10 +687,6 @@
|
||||
RelativePath=".\..\src\order_backup.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\os_timer.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pbs.cpp"
|
||||
>
|
||||
@@ -723,6 +763,10 @@
|
||||
RelativePath=".\..\src\strings.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\story.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\subsidy.cpp"
|
||||
>
|
||||
@@ -763,6 +807,10 @@
|
||||
RelativePath=".\..\src\viewport.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\viewport_sprite_sorter_sse4.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\waypoint.cpp"
|
||||
>
|
||||
@@ -839,6 +887,10 @@
|
||||
RelativePath=".\..\src\cargo_type.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\cargoaction.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\cargomonitor.h"
|
||||
>
|
||||
@@ -911,6 +963,10 @@
|
||||
RelativePath=".\..\src\console_type.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\cpu.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\crashlog.h"
|
||||
>
|
||||
@@ -1031,6 +1087,10 @@
|
||||
RelativePath=".\..\src\fontcache.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\fontdetection.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\base_consist.h"
|
||||
>
|
||||
@@ -1051,6 +1111,10 @@
|
||||
RelativePath=".\..\src\gfx_func.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\gfx_layout.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\gfx_type.h"
|
||||
>
|
||||
@@ -1139,6 +1203,54 @@
|
||||
RelativePath=".\..\src\language.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\linkgraph\demands.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\linkgraph\flowmapper.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\linkgraph\init.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\linkgraph\linkgraph.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\linkgraph\linkgraph_base.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\linkgraph\linkgraph_gui.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\linkgraph\linkgraph_type.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\linkgraph\linkgraphjob.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\linkgraph\linkgraphjob_base.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\linkgraph\linkgraphschedule.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\linkgraph\mcf.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\linkgraph\refresh.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\livery.h"
|
||||
>
|
||||
@@ -1543,10 +1655,22 @@
|
||||
RelativePath=".\..\src\stdafx.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\story_base.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\story_type.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\strgen\strgen.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\string_base.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\string_func.h"
|
||||
>
|
||||
@@ -1715,6 +1839,10 @@
|
||||
RelativePath=".\..\src\viewport_func.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\viewport_sprite_sorter.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\viewport_type.h"
|
||||
>
|
||||
@@ -1835,6 +1963,10 @@
|
||||
RelativePath=".\..\src\core\mem_func.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\core\multimap.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\core\overflowsafe_type.hpp"
|
||||
>
|
||||
@@ -1863,6 +1995,14 @@
|
||||
RelativePath=".\..\src\core\smallmap_type.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\core\smallmatrix_type.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\core\smallstack_type.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\core\smallvec_type.hpp"
|
||||
>
|
||||
@@ -1967,6 +2107,10 @@
|
||||
RelativePath=".\..\src\intro_gui.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\linkgraph\linkgraph_gui.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\main_gui.cpp"
|
||||
>
|
||||
@@ -2051,6 +2195,10 @@
|
||||
RelativePath=".\..\src\statusbar_gui.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\story_gui.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\subsidy_gui.cpp"
|
||||
>
|
||||
@@ -2207,6 +2355,10 @@
|
||||
RelativePath=".\..\src\widgets\intro_widget.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\widgets\link_graph_legend_widget.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\widgets\main_widget.h"
|
||||
>
|
||||
@@ -2283,6 +2435,10 @@
|
||||
RelativePath=".\..\src\widgets\statusbar_widget.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\widgets\story_widget.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\widgets\subsidy_widget.h"
|
||||
>
|
||||
@@ -2511,6 +2667,10 @@
|
||||
RelativePath=".\..\src\saveload\labelmaps_sl.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\saveload\linkgraph_sl.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\saveload\map_sl.cpp"
|
||||
>
|
||||
@@ -2579,6 +2739,10 @@
|
||||
RelativePath=".\..\src\saveload\strings_sl.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\saveload\story_sl.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\saveload\subsidy_sl.cpp"
|
||||
>
|
||||
@@ -3307,6 +3471,18 @@
|
||||
RelativePath=".\..\src\script\api\script_stationlist.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\script\api\script_story_page.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\script\api\script_storypagelist.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\script\api\script_storypageelementlist.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\script\api\script_subsidy.hpp"
|
||||
>
|
||||
@@ -3555,6 +3731,18 @@
|
||||
RelativePath=".\..\src\script\api\script_stationlist.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\script\api\script_story_page.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\script\api\script_storypagelist.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\script\api\script_storypageelementlist.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\script\api\script_subsidy.cpp"
|
||||
>
|
||||
@@ -3627,6 +3815,14 @@
|
||||
RelativePath=".\..\src\blitter\32bpp_anim.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\blitter\32bpp_anim_sse4.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\blitter\32bpp_anim_sse4.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\blitter\32bpp_base.cpp"
|
||||
>
|
||||
@@ -3651,6 +3847,38 @@
|
||||
RelativePath=".\..\src\blitter\32bpp_simple.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\blitter\32bpp_sse_func.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\blitter\32bpp_sse_type.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\blitter\32bpp_sse2.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\blitter\32bpp_sse2.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\blitter\32bpp_sse4.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\blitter\32bpp_sse4.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\blitter\32bpp_ssse3.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\blitter\32bpp_ssse3.hpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\blitter\8bpp_base.cpp"
|
||||
>
|
||||
@@ -4171,6 +4399,10 @@
|
||||
RelativePath=".\..\src\pathfinder\yapf\yapf_ship.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\pathfinder\yapf\yapf_type.hpp"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Video"
|
||||
|
@@ -53,7 +53,7 @@
|
||||
FavorSizeOrSpeed="2"
|
||||
OmitFramePointers="true"
|
||||
AdditionalIncludeDirectories="..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";WITH_ASSERT"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";WITH_ASSERT"
|
||||
StringPooling="true"
|
||||
ExceptionHandling="1"
|
||||
RuntimeLibrary="0"
|
||||
@@ -88,7 +88,7 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib"
|
||||
AdditionalDependencies="winmm.lib ws2_32.lib imm32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib icule.lib iculx.lib"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="true"
|
||||
IgnoreDefaultLibraryNames=""
|
||||
@@ -155,7 +155,7 @@
|
||||
AdditionalOptions="/MP"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\""
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\""
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
UsePrecompiledHeader="0"
|
||||
@@ -183,7 +183,7 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib"
|
||||
AdditionalDependencies="winmm.lib ws2_32.lib imm32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib icule.lib iculx.lib"
|
||||
LinkIncremental="0"
|
||||
SuppressStartupBanner="true"
|
||||
IgnoreDefaultLibraryNames="LIBCMT.lib"
|
||||
@@ -255,7 +255,7 @@
|
||||
FavorSizeOrSpeed="2"
|
||||
OmitFramePointers="true"
|
||||
AdditionalIncludeDirectories="..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";_SQ64;WITH_ASSERT"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";_SQ64;WITH_ASSERT"
|
||||
StringPooling="true"
|
||||
ExceptionHandling="1"
|
||||
RuntimeLibrary="0"
|
||||
@@ -290,7 +290,7 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib"
|
||||
AdditionalDependencies="winmm.lib ws2_32.lib imm32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib icule.lib iculx.lib"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="true"
|
||||
IgnoreDefaultLibraryNames=""
|
||||
@@ -359,7 +359,7 @@
|
||||
AdditionalOptions="/MP"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";_SQ64"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";_SQ64"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
UsePrecompiledHeader="0"
|
||||
@@ -389,7 +389,7 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib"
|
||||
AdditionalDependencies="winmm.lib ws2_32.lib imm32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib icule.lib iculx.lib"
|
||||
LinkIncremental="0"
|
||||
SuppressStartupBanner="true"
|
||||
IgnoreDefaultLibraryNames="LIBCMT.lib"
|
||||
|
@@ -23,7 +23,7 @@
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros">
|
||||
<SettingsCommandLine>
|
||||
..\objs\settings\settings_gen.exe -o ..\objs\settings\table\settings.h -b ..\src\table\settings.h.preamble -a ..\src\table\settings.h.postamble ..\src\table\company_settings.ini ..\src\table\currency_settings.ini ..\src\table\gameopt_settings.ini ..\src\table\misc_settings.ini ..\src\table\settings.ini ..\src\table\win32_settings.ini
|
||||
..\objs\settings\settings_gen.exe -o ..\objs\settings\table\settings.h -b ..\src\table\settings.h.preamble -a ..\src\table\settings.h.postamble ..\src\table\company_settings.ini ..\src\table\currency_settings.ini ..\src\table\gameopt_settings.ini ..\src\table\misc_settings.ini ..\src\table\settings.ini ..\src\table\win32_settings.ini ..\src\table\window_settings.ini
|
||||
</SettingsCommandLine>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
@@ -42,6 +42,7 @@
|
||||
<None Include="..\src\table\misc_settings.ini" />
|
||||
<None Include="..\src\table\settings.ini" />
|
||||
<None Include="..\src\table\win32_settings.ini" />
|
||||
<None Include="..\src\table\window_settings.ini" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="..\src\table\settings.h.postamble" />
|
||||
|
@@ -24,6 +24,9 @@
|
||||
<None Include="..\src\table\win32_settings.ini">
|
||||
<Filter>INI</Filter>
|
||||
</None>
|
||||
<None Include="..\src\table\window_settings.ini">
|
||||
<Filter>INI</Filter>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="..\src\table\settings.h.postamble" />
|
||||
|
@@ -24,7 +24,7 @@
|
||||
Name="VCPreBuildEventTool"
|
||||
Description="Generating settings.h"
|
||||
CommandLine="
|
||||
..\objs\settings\settings_gen.exe -o ..\objs\settings\table\settings.h -b ..\src\table\settings.h.preamble -a ..\src\table\settings.h.postamble ..\src\table\company_settings.ini ..\src\table\currency_settings.ini ..\src\table\gameopt_settings.ini ..\src\table\misc_settings.ini ..\src\table\settings.ini ..\src\table\win32_settings.ini
|
||||
..\objs\settings\settings_gen.exe -o ..\objs\settings\table\settings.h -b ..\src\table\settings.h.preamble -a ..\src\table\settings.h.postamble ..\src\table\company_settings.ini ..\src\table\currency_settings.ini ..\src\table\gameopt_settings.ini ..\src\table\misc_settings.ini ..\src\table\settings.ini ..\src\table\win32_settings.ini ..\src\table\window_settings.ini
|
||||
"
|
||||
/>
|
||||
<Tool
|
||||
@@ -68,6 +68,10 @@
|
||||
RelativePath="..\src\table\win32_settings.ini"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\table\window_settings.ini"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<File
|
||||
RelativePath="..\src\table\settings.h.postamble"
|
||||
|
@@ -25,7 +25,7 @@
|
||||
Name="VCPreBuildEventTool"
|
||||
Description="Generating settings.h"
|
||||
CommandLine="
|
||||
..\objs\settings\settings_gen.exe -o ..\objs\settings\table\settings.h -b ..\src\table\settings.h.preamble -a ..\src\table\settings.h.postamble ..\src\table\company_settings.ini ..\src\table\currency_settings.ini ..\src\table\gameopt_settings.ini ..\src\table\misc_settings.ini ..\src\table\settings.ini ..\src\table\win32_settings.ini
|
||||
..\objs\settings\settings_gen.exe -o ..\objs\settings\table\settings.h -b ..\src\table\settings.h.preamble -a ..\src\table\settings.h.postamble ..\src\table\company_settings.ini ..\src\table\currency_settings.ini ..\src\table\gameopt_settings.ini ..\src\table\misc_settings.ini ..\src\table\settings.ini ..\src\table\win32_settings.ini ..\src\table\window_settings.ini
|
||||
"
|
||||
/>
|
||||
<Tool
|
||||
@@ -69,6 +69,10 @@
|
||||
RelativePath="..\src\table\win32_settings.ini"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\table\window_settings.ini"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<File
|
||||
RelativePath="..\src\table\settings.h.postamble"
|
||||
|
154
readme.txt
154
readme.txt
@@ -1,6 +1,5 @@
|
||||
OpenTTD readme
|
||||
Last updated: 2013-02-19
|
||||
Release version: 1.3.0-RC1
|
||||
Last updated: 2014-08-03
|
||||
Release version: 1.4.2-RC2
|
||||
------------------------------------------------------------------------
|
||||
|
||||
|
||||
@@ -22,10 +21,12 @@ Table of contents
|
||||
7.0) Compiling
|
||||
* 7.1) Required/optional libraries
|
||||
* 7.2) Supported compilers
|
||||
* 7.3) Compilation of base sets
|
||||
8.0) Translating
|
||||
* 8.1) Translation
|
||||
* 8.2) Previewing
|
||||
9.0) Troubleshooting
|
||||
10.0) Licensing
|
||||
X.X) Credits
|
||||
|
||||
|
||||
@@ -35,9 +36,9 @@ OpenTTD is a transport simulation game based upon the popular game Transport
|
||||
Tycoon Deluxe, written by Chris Sawyer. It attempts to mimic the original
|
||||
game as closely as possible while extending it with new features.
|
||||
|
||||
OpenTTD is licensed under the GNU General Public License version 2.0. For
|
||||
more information, see the file 'COPYING'.
|
||||
|
||||
OpenTTD is licensed under the GNU General Public License version 2.0,
|
||||
but includes some 3rd party software under different licenses. See the
|
||||
section "Licensing" below for details.
|
||||
|
||||
2.0) Contacting
|
||||
---- ----------
|
||||
@@ -218,9 +219,9 @@ The Windows installer can optionally download and install these packages.
|
||||
4.1.2) Original Transport Tycoon Deluxe graphics and sound files
|
||||
------ ---------------------------------------------------------
|
||||
If you want to play with the original Transport Tycoon Deluxe data files you
|
||||
have to copy the data files from the CD-ROM into the data/ directory. It does
|
||||
not matter whether you copy them from the DOS or Windows version of Transport
|
||||
Tycoon Deluxe. The Windows install can optionally copy these files.
|
||||
have to copy the data files from the CD-ROM into the baseset/ directory. It
|
||||
does not matter whether you copy them from the DOS or Windows version of
|
||||
Transport Tycoon Deluxe. The Windows install can optionally copy these files.
|
||||
You need to copy the following files:
|
||||
- sample.cat
|
||||
- trg1r.grf or TRG1.GRF
|
||||
@@ -281,7 +282,8 @@ your operating system:
|
||||
C:\Documents and Settings\<username>\My Documents\OpenTTD (2000, XP)
|
||||
C:\Users\<username>\Documents\OpenTTD (Vista, 7)
|
||||
Mac OSX: ~/Documents/OpenTTD
|
||||
Linux: ~/.openttd
|
||||
Linux: $XDG_DATA_HOME/openttd which is usually ~/.local/share/openttd when
|
||||
built with XDG base directory support, otherwise ~/.openttd
|
||||
3. The shared directory
|
||||
Windows: C:\Documents and Settings\All Users\Shared Documents\OpenTTD (2000, XP)
|
||||
C:\Users\Public\Documents\OpenTTD (Vista, 7)
|
||||
@@ -321,10 +323,13 @@ Notes:
|
||||
others.
|
||||
- The previous search order is also used for NewGRFs and openttd.cfg.
|
||||
- If openttd.cfg is not found, then it will be created using the 2, 4, 1, 3,
|
||||
5 order.
|
||||
5 order. When built with XDG base directory support, openttd.cfg will be
|
||||
created in $XDG_CONFIG_HOME/openttd which is usually ~/.config/openttd.
|
||||
- Savegames will be relative to the config file only if there is no save/
|
||||
directory in paths with higher priority than the config file path, but
|
||||
autosaves and screenshots will always be relative to the config file.
|
||||
Unless the configuration file is in $XDG_CONFIG_HOME/openttd, then all
|
||||
other files will be saved under $XDG_DATA_HOME/openttd.
|
||||
|
||||
The preferred setup:
|
||||
Place 3rd party files in shared directory (or in personal directory if you do
|
||||
@@ -409,7 +414,6 @@ Information logged:
|
||||
original Transport Tycoon version
|
||||
* Running a modified OpenTTD build
|
||||
* Changing settings affecting NewGRF behaviour (non-network-safe settings)
|
||||
* Changing landscape (by cheat)
|
||||
* Triggering NewGRF bugs
|
||||
|
||||
No personal information is stored.
|
||||
@@ -477,9 +481,9 @@ DOS:
|
||||
website. Compilation is straight forward: use make, but do a './configure'
|
||||
before the first build. The build binary will need cwsdpmi.exe to be in
|
||||
the same directory as the openttd executable. cwsdpmi.exe can be found in
|
||||
the os/dos subdirectory. If you compile with stripping turned on a binary
|
||||
will be generated that does not need cwsdpmi.exe by adding the cswdstub.exe
|
||||
to the created OpenTTD binary.
|
||||
the os/dos/cwsdpmi subdirectory. If you compile with stripping turned on a
|
||||
binary will be generated that does not need cwsdpmi.exe by adding the
|
||||
cswdstub.exe to the created OpenTTD binary.
|
||||
|
||||
7.1) Required/optional libraries
|
||||
---- ---------------------------
|
||||
@@ -501,21 +505,15 @@ open most older savegames or use the content downloading system.
|
||||
Without libSDL/liballegro on non-Windows and non-MacOS X machines you have
|
||||
no graphical user interface; you would be building a dedicated server.
|
||||
|
||||
To recompile the extra graphics needed to play with the original Transport
|
||||
Tycoon Deluxe graphics you need GRFCodec (which includes NFORenum) as well.
|
||||
GRFCodec can be found at: http://www.openttd.org/download-grfcodec
|
||||
The compilation of these extra graphics does generally not happen, unless
|
||||
you remove the graphics file using 'make maintainer-clean'.
|
||||
|
||||
7.2) Supported compilers
|
||||
---- -------------------
|
||||
The following compilers are known to compile OpenTTD:
|
||||
- Microsoft Visual C++ (MSVC) 2005, 2008 and 2010.
|
||||
Version 2005 gives bogus warnings about scoping issues.
|
||||
- GNU Compiler Collection (GCC) 3.3 - 4.7.
|
||||
- GNU Compiler Collection (GCC) 3.3 - 4.4, 4.6 - 4.8.
|
||||
Versions 4.1 and earlier give bogus warnings about uninitialised variables.
|
||||
Versions 4.4 - 4.6 give bogus warnings about freeing non-heap objects.
|
||||
Versions 4.5 and later give invalid warnings when lto is enabled.
|
||||
Versions 4.4, 4.6 give bogus warnings about freeing non-heap objects.
|
||||
Versions 4.6 and later give invalid warnings when lto is enabled.
|
||||
- Intel C++ Compiler (ICC) 12.0.
|
||||
- Clang/LLVM 2.9 - 3.0
|
||||
Version 2.9 gives bogus warnings about code nonconformity.
|
||||
@@ -524,6 +522,8 @@ The following compilers are known not to compile OpenTTD:
|
||||
- Microsoft Visual C++ (MSVC) 2003 and earlier.
|
||||
- GNU Compiler Collection (GCC) 3.2 and earlier.
|
||||
These old versions fail due to OpenTTD's template usage.
|
||||
- GNU Compiler Collection (GCC) 4.5. It optimizes enums too aggressively.
|
||||
See http://bugs.openttd.org/task/5513 and references therein.
|
||||
- Intel C++ Compiler (ICC) 11.1 and earlier.
|
||||
Version 10.0 and earlier fail a configure check and fail with recent system
|
||||
headers.
|
||||
@@ -535,6 +535,21 @@ The following compilers are known not to compile OpenTTD:
|
||||
If any of these compilers can compile OpenTTD again, please let us know.
|
||||
Patches to support more compilers are welcome.
|
||||
|
||||
7.3) Compilation of base sets
|
||||
-----------------------------
|
||||
To recompile the extra graphics needed to play with the original Transport
|
||||
Tycoon Deluxe graphics you need GRFCodec (which includes NFORenum) as well.
|
||||
GRFCodec can be found at: http://www.openttd.org/download-grfcodec
|
||||
The compilation of these extra graphics does generally not happen, unless
|
||||
you remove the graphics file using 'make maintainer-clean'.
|
||||
|
||||
Re-compilation of the base sets, thus also use of --maintainer-clean can
|
||||
leave the repository in a modified state as different grfcodec versions can
|
||||
cause binary differences in the resulting grf. Also translations might have
|
||||
been added for the base sets which are not yet included in the base set
|
||||
information files. Use the configure option --without-grfcodec to avoid
|
||||
modification of the base set files by the build process.
|
||||
|
||||
|
||||
8.0) Translating
|
||||
---- -----------
|
||||
@@ -572,10 +587,9 @@ Note: Do not alter the following parts of the file:
|
||||
8.2) Previewing
|
||||
---- ----------
|
||||
In order to view the translation in the game, you need to compile your language
|
||||
file with the strgen utility. You can download the precompiled strgen from:
|
||||
http://www.openttd.org/download-strgen
|
||||
To compile it yourself just take the normal OpenTTD sources and build that.
|
||||
During the build process the strgen utility will be made.
|
||||
file with the strgen utility. As this utility is tailored to a specific OpenTTD
|
||||
version, you need to compile it yourself. Just take the normal OpenTTD sources
|
||||
and build that. During the build process the strgen utility will be made.
|
||||
|
||||
strgen is a command-line utility. It takes the language filename as parameter.
|
||||
Example:
|
||||
@@ -633,49 +647,74 @@ development section (http://www.tt-forums.net/viewforum.php?f=66) or GrfCrawler
|
||||
(see section 4.2 'OpenTTD directories') and rescan the list of available NewGRFs.
|
||||
Once you have all missing files, you are set to go.
|
||||
|
||||
10.0) Licensing
|
||||
----- ---------
|
||||
OpenTTD is licensed under the GNU General Public License version 2.0. For
|
||||
the complete license text, see the file 'COPYING'. This license applies
|
||||
to all files in this distribution, except as noted below.
|
||||
|
||||
The squirrel implementation in src/3rdparty/squirrel is licensed under
|
||||
the Zlib license. See src/3rdparty/squirrel/COPYRIGHT for the complete
|
||||
license text.
|
||||
|
||||
The md5 implementation in src/3rdparty/md5 is licensed under the Zlib
|
||||
license. See the comments in the source files in src/3rdparty/md5 for
|
||||
the complete license text.
|
||||
|
||||
The exe2coff implementation in os/dos/exe2coff is available under the
|
||||
GPL, with a number of additional terms. See os/dos/exe2coff/copying and
|
||||
os/dos/exe2coff/copying.dj for the exact licensing terms.
|
||||
|
||||
The CWSDPMI implementation in os/dos/cwsdpmi is distributed under a
|
||||
custom binary-only license that prohibits modification. The exact
|
||||
licensing terms can be found in os/dos/cwsdpmi/cwsdpmi.txt. The sources
|
||||
for these files can be downloaded at its author site, at:
|
||||
http://homer.rice.edu/~sandmann/cwsdpmi/csdpmi5s.zip
|
||||
|
||||
X.X) Credits
|
||||
---- -------
|
||||
The OpenTTD team (in alphabetical order):
|
||||
Albert Hofkamp (Alberth) - GUI expert
|
||||
Jean-François Claeys (Belugas) - GUI, newindustries and more
|
||||
Matthijs Kooijman (blathijs) - Pathfinder-guru, pool rework
|
||||
Christoph Elsenhans (frosch) - General coding
|
||||
Loïc Guilloux (glx) - Windows Expert
|
||||
Michael Lutz (michi_cc) - Path based signals
|
||||
Owen Rudge (orudge) - Forum host, OS/2 port
|
||||
Peter Nelson (peter1138) - Spiritual descendant from newGRF gods
|
||||
Ingo von Borstel (planetmaker) - Support
|
||||
Remko Bijker (Rubidium) - Lead coder and way more
|
||||
Zdeněk Sojka (SmatZ) - Bug finder and fixer
|
||||
José Soler (Terkhen) - General coding
|
||||
Thijs Marinussen (Yexo) - AI Framework
|
||||
Leif Linse (Zuu) - AI/Game Script
|
||||
Albert Hofkamp (Alberth) - GUI expert (since 0.7)
|
||||
Matthijs Kooijman (blathijs) - Pathfinder-guru, Debian port (since 0.3)
|
||||
Ulf Hermann (fonsinchen) - Cargo Distribution (since 1.3)
|
||||
Christoph Elsenhans (frosch) - General coding (since 0.6)
|
||||
Loïc Guilloux (glx) - Windows Expert (since 0.4.5)
|
||||
Michael Lutz (michi_cc) - Path based signals (since 0.7)
|
||||
Owen Rudge (orudge) - Forum host, OS/2 port (since 0.1)
|
||||
Peter Nelson (peter1138) - Spiritual descendant from newGRF gods (since 0.4.5)
|
||||
Ingo von Borstel (planetmaker) - General coding, Support (since 1.1)
|
||||
Remko Bijker (Rubidium) - Lead coder and way more (since 0.4.5)
|
||||
José Soler (Terkhen) - General coding (since 1.0)
|
||||
Leif Linse (Zuu) - AI/Game Script (since 1.2)
|
||||
|
||||
Inactive Developers:
|
||||
Bjarni Corfitzen (Bjarni) - MacOSX port, coder and vehicles
|
||||
Victor Fischer (Celestar) - Programming everywhere you need him to
|
||||
Tamás Faragó (Darkvater) - Ex-Lead coder
|
||||
Jaroslav Mazanec (KUDr) - YAPG (Yet Another Pathfinder God) ;)
|
||||
Jonathan Coome (Maedhros) - High priest of the NewGRF Temple
|
||||
Attila Bán (MiHaMiX) - WebTranslator 1 and 2
|
||||
Christoph Mallon (Tron) - Programmer, code correctness police
|
||||
Jean-François Claeys (Belugas) - GUI, newindustries and more (0.4.5 - 1.0)
|
||||
Bjarni Corfitzen (Bjarni) - MacOSX port, coder and vehicles (0.3 - 0.7)
|
||||
Victor Fischer (Celestar) - Programming everywhere you need him to (0.3 - 0.6)
|
||||
Jaroslav Mazanec (KUDr) - YAPG (Yet Another Pathfinder God) ;) (0.4.5 - 0.6)
|
||||
Jonathan Coome (Maedhros) - High priest of the NewGRF Temple (0.5 - 0.6)
|
||||
Attila Bán (MiHaMiX) - WebTranslator 1 and 2 (0.3 - 0.5)
|
||||
Zdeněk Sojka (SmatZ) - Bug finder and fixer (0.6 - 1.3)
|
||||
Christoph Mallon (Tron) - Programmer, code correctness police (0.3 - 0.5)
|
||||
Patric Stout (TrueBrain) - NoProgrammer (0.3 - 1.2), sys op (active)
|
||||
Thijs Marinussen (Yexo) - AI Framework, General (0.6 - 1.3)
|
||||
|
||||
Retired Developers:
|
||||
Ludvig Strigeus (ludde) - OpenTTD author, main coder (0.1 - 0.3.3)
|
||||
Serge Paquet (vurlix) - Assistant project manager, coder (0.1 - 0.3.3)
|
||||
Dominik Scherer (dominik81) - Lead programmer, GUI expert (0.3.0 - 0.3.6)
|
||||
Benedikt Brüggemeier (skidd13) - Bug fixer and code reworker
|
||||
Patric Stout (TrueBrain) - NoProgrammer (0.3 - 1.2), sys op (active)
|
||||
Tamás Faragó (Darkvater) - Ex-Lead coder (0.3 - 0.5)
|
||||
Dominik Scherer (dominik81) - Lead programmer, GUI expert (0.3 - 0.3)
|
||||
Emil Djupfeld (egladil) - MacOSX port (0.4 - 0.6)
|
||||
Simon Sasburg (HackyKid) - Bug fixer (0.4 - 0.4.5)
|
||||
Ludvig Strigeus (ludde) - Original author of OpenTTD, main coder (0.1 - 0.3)
|
||||
Cian Duffy (MYOB) - BeOS port / manual writing (0.1 - 0.3)
|
||||
Petr Baudiš (pasky) - Many patches, newgrf support, etc. (0.3 - 0.3)
|
||||
Benedikt Brüggemeier (skidd13) - Bug fixer and code reworker (0.6 - 0.7)
|
||||
Serge Paquet (vurlix) - 2nd contributor after ludde (0.1 - 0.3)
|
||||
|
||||
Thanks to:
|
||||
Josef Drexler - For his great work on TTDPatch.
|
||||
Marcin Grzegorczyk - For his TTDPatch work and documentation of Transport Tycoon Deluxe internals and track foundations
|
||||
Petr Baudiš (pasky) - Many patches, newgrf support, etc.
|
||||
Simon Sasburg (HackyKid) - For the many bugfixes he has blessed us with
|
||||
Stefan Meißner (sign_de) - For his work on the console
|
||||
Mike Ragsdale - OpenTTD installer
|
||||
Cian Duffy (MYOB) - BeOS port / manual writing
|
||||
Christian Rosentreter (tokai) - MorphOS / AmigaOS port
|
||||
Richard Kempton (RichK67) - Additional airports, initial TGP implementation
|
||||
Alberto Demichelis - Squirrel scripting language
|
||||
@@ -684,6 +723,7 @@ Thanks to:
|
||||
George - Canal graphics
|
||||
Andrew Parkhouse (andythenorth) - River graphics
|
||||
David Dallaston (Pikka) - Tram tracks
|
||||
Fleashosio - Titlegame
|
||||
All Translators - For their support to make OpenTTD a truly international game
|
||||
Bug Reporters - Thanks for all bug reports
|
||||
Chris Sawyer - For an amazing game!
|
||||
|
66
source.list
66
source.list
@@ -4,6 +4,7 @@ animated_tile.cpp
|
||||
articulated_vehicles.cpp
|
||||
autoreplace.cpp
|
||||
bmp.cpp
|
||||
cargoaction.cpp
|
||||
cargomonitor.cpp
|
||||
cargopacket.cpp
|
||||
cargotype.cpp
|
||||
@@ -11,6 +12,7 @@ cheat.cpp
|
||||
command.cpp
|
||||
console.cpp
|
||||
console_cmds.cpp
|
||||
cpu.cpp
|
||||
crashlog.cpp
|
||||
currency.cpp
|
||||
date.cpp
|
||||
@@ -25,11 +27,13 @@ engine.cpp
|
||||
fileio.cpp
|
||||
fios.cpp
|
||||
fontcache.cpp
|
||||
fontdetection.cpp
|
||||
base_consist.cpp
|
||||
gamelog.cpp
|
||||
genworld.cpp
|
||||
gfx.cpp
|
||||
gfxinit.cpp
|
||||
gfx_layout.cpp
|
||||
goal.cpp
|
||||
ground_vehicle.cpp
|
||||
heightmap.cpp
|
||||
@@ -38,6 +42,13 @@ hotkeys.cpp
|
||||
ini.cpp
|
||||
ini_load.cpp
|
||||
landscape.cpp
|
||||
linkgraph/demands.cpp
|
||||
linkgraph/flowmapper.cpp
|
||||
linkgraph/linkgraph.cpp
|
||||
linkgraph/linkgraphjob.cpp
|
||||
linkgraph/linkgraphschedule.cpp
|
||||
linkgraph/mcf.cpp
|
||||
linkgraph/refresh.cpp
|
||||
map.cpp
|
||||
misc.cpp
|
||||
mixer.cpp
|
||||
@@ -52,7 +63,6 @@ network/network_server.cpp
|
||||
network/network_udp.cpp
|
||||
openttd.cpp
|
||||
order_backup.cpp
|
||||
os_timer.cpp
|
||||
pbs.cpp
|
||||
progress.cpp
|
||||
rail.cpp
|
||||
@@ -74,6 +84,7 @@ strgen/strgen_base.cpp
|
||||
string.cpp
|
||||
stringfilter.cpp
|
||||
strings.cpp
|
||||
story.cpp
|
||||
subsidy.cpp
|
||||
textbuf.cpp
|
||||
texteff.cpp
|
||||
@@ -100,6 +111,9 @@ townname.cpp
|
||||
vehicle.cpp
|
||||
vehiclelist.cpp
|
||||
viewport.cpp
|
||||
#if SSE
|
||||
viewport_sprite_sorter_sse4.cpp
|
||||
#end
|
||||
waypoint.cpp
|
||||
widget.cpp
|
||||
window.cpp
|
||||
@@ -125,6 +139,7 @@ base_station_base.h
|
||||
bmp.h
|
||||
bridge.h
|
||||
cargo_type.h
|
||||
cargoaction.h
|
||||
cargomonitor.h
|
||||
cargopacket.h
|
||||
cargotype.h
|
||||
@@ -143,6 +158,7 @@ console_func.h
|
||||
console_gui.h
|
||||
console_internal.h
|
||||
console_type.h
|
||||
cpu.h
|
||||
crashlog.h
|
||||
currency.h
|
||||
date_func.h
|
||||
@@ -173,11 +189,13 @@ fileio_func.h
|
||||
fileio_type.h
|
||||
fios.h
|
||||
fontcache.h
|
||||
fontdetection.h
|
||||
base_consist.h
|
||||
gamelog.h
|
||||
gamelog_internal.h
|
||||
genworld.h
|
||||
gfx_func.h
|
||||
gfx_layout.h
|
||||
gfx_type.h
|
||||
gfxinit.h
|
||||
goal_base.h
|
||||
@@ -200,6 +218,18 @@ ini_type.h
|
||||
landscape.h
|
||||
landscape_type.h
|
||||
language.h
|
||||
linkgraph/demands.h
|
||||
linkgraph/flowmapper.h
|
||||
linkgraph/init.h
|
||||
linkgraph/linkgraph.h
|
||||
linkgraph/linkgraph_base.h
|
||||
linkgraph/linkgraph_gui.h
|
||||
linkgraph/linkgraph_type.h
|
||||
linkgraph/linkgraphjob.h
|
||||
linkgraph/linkgraphjob_base.h
|
||||
linkgraph/linkgraphschedule.h
|
||||
linkgraph/mcf.h
|
||||
linkgraph/refresh.h
|
||||
livery.h
|
||||
map_func.h
|
||||
map_type.h
|
||||
@@ -301,7 +331,10 @@ station_gui.h
|
||||
station_type.h
|
||||
statusbar_gui.h
|
||||
stdafx.h
|
||||
story_base.h
|
||||
story_type.h
|
||||
strgen/strgen.h
|
||||
string_base.h
|
||||
string_func.h
|
||||
string_type.h
|
||||
stringfilter_type.h
|
||||
@@ -344,6 +377,7 @@ vehicle_gui_base.h
|
||||
vehicle_type.h
|
||||
vehiclelist.h
|
||||
viewport_func.h
|
||||
viewport_sprite_sorter.h
|
||||
viewport_type.h
|
||||
water.h
|
||||
waypoint_base.h
|
||||
@@ -390,6 +424,7 @@ core/geometry_type.hpp
|
||||
core/math_func.cpp
|
||||
core/math_func.hpp
|
||||
core/mem_func.hpp
|
||||
core/multimap.hpp
|
||||
core/overflowsafe_type.hpp
|
||||
core/pool_func.cpp
|
||||
core/pool_func.hpp
|
||||
@@ -397,6 +432,8 @@ core/pool_type.hpp
|
||||
core/random_func.cpp
|
||||
core/random_func.hpp
|
||||
core/smallmap_type.hpp
|
||||
core/smallmatrix_type.hpp
|
||||
core/smallstack_type.hpp
|
||||
core/smallvec_type.hpp
|
||||
core/sort_func.hpp
|
||||
core/string_compare_type.hpp
|
||||
@@ -424,6 +461,7 @@ group_gui.cpp
|
||||
highscore_gui.cpp
|
||||
industry_gui.cpp
|
||||
intro_gui.cpp
|
||||
linkgraph/linkgraph_gui.cpp
|
||||
main_gui.cpp
|
||||
misc_gui.cpp
|
||||
music_gui.cpp
|
||||
@@ -445,6 +483,7 @@ signs_gui.cpp
|
||||
smallmap_gui.cpp
|
||||
station_gui.cpp
|
||||
statusbar_gui.cpp
|
||||
story_gui.cpp
|
||||
subsidy_gui.cpp
|
||||
terraform_gui.cpp
|
||||
textfile_gui.cpp
|
||||
@@ -485,6 +524,7 @@ widgets/group_widget.h
|
||||
widgets/highscore_widget.h
|
||||
widgets/industry_widget.h
|
||||
widgets/intro_widget.h
|
||||
widgets/link_graph_legend_widget.h
|
||||
widgets/main_widget.h
|
||||
widgets/misc_widget.h
|
||||
widgets/music_widget.h
|
||||
@@ -504,6 +544,7 @@ widgets/sign_widget.h
|
||||
widgets/smallmap_widget.h
|
||||
widgets/station_widget.h
|
||||
widgets/statusbar_widget.h
|
||||
widgets/story_widget.h
|
||||
widgets/subsidy_widget.h
|
||||
widgets/terraform_widget.h
|
||||
widgets/timetable_widget.h
|
||||
@@ -563,6 +604,7 @@ saveload/goal_sl.cpp
|
||||
saveload/group_sl.cpp
|
||||
saveload/industry_sl.cpp
|
||||
saveload/labelmaps_sl.cpp
|
||||
saveload/linkgraph_sl.cpp
|
||||
saveload/map_sl.cpp
|
||||
saveload/misc_sl.cpp
|
||||
saveload/newgrf_sl.cpp
|
||||
@@ -580,6 +622,7 @@ saveload/signs_sl.cpp
|
||||
saveload/station_sl.cpp
|
||||
saveload/storage_sl.cpp
|
||||
saveload/strings_sl.cpp
|
||||
saveload/story_sl.cpp
|
||||
saveload/subsidy_sl.cpp
|
||||
saveload/town_sl.cpp
|
||||
saveload/vehicle_sl.cpp
|
||||
@@ -772,6 +815,9 @@ script/api/script_sign.hpp
|
||||
script/api/script_signlist.hpp
|
||||
script/api/script_station.hpp
|
||||
script/api/script_stationlist.hpp
|
||||
script/api/script_story_page.hpp
|
||||
script/api/script_storypagelist.hpp
|
||||
script/api/script_storypageelementlist.hpp
|
||||
script/api/script_subsidy.hpp
|
||||
script/api/script_subsidylist.hpp
|
||||
script/api/script_testmode.hpp
|
||||
@@ -835,6 +881,9 @@ script/api/script_sign.cpp
|
||||
script/api/script_signlist.cpp
|
||||
script/api/script_station.cpp
|
||||
script/api/script_stationlist.cpp
|
||||
script/api/script_story_page.cpp
|
||||
script/api/script_storypagelist.cpp
|
||||
script/api/script_storypageelementlist.cpp
|
||||
script/api/script_subsidy.cpp
|
||||
script/api/script_subsidylist.cpp
|
||||
script/api/script_testmode.cpp
|
||||
@@ -856,12 +905,26 @@ script/api/script_window.cpp
|
||||
#else
|
||||
blitter/32bpp_anim.cpp
|
||||
blitter/32bpp_anim.hpp
|
||||
#if SSE
|
||||
blitter/32bpp_anim_sse4.cpp
|
||||
blitter/32bpp_anim_sse4.hpp
|
||||
#end
|
||||
blitter/32bpp_base.cpp
|
||||
blitter/32bpp_base.hpp
|
||||
blitter/32bpp_optimized.cpp
|
||||
blitter/32bpp_optimized.hpp
|
||||
blitter/32bpp_simple.cpp
|
||||
blitter/32bpp_simple.hpp
|
||||
#if SSE
|
||||
blitter/32bpp_sse_func.hpp
|
||||
blitter/32bpp_sse_type.h
|
||||
blitter/32bpp_sse2.cpp
|
||||
blitter/32bpp_sse2.hpp
|
||||
blitter/32bpp_sse4.cpp
|
||||
blitter/32bpp_sse4.hpp
|
||||
blitter/32bpp_ssse3.cpp
|
||||
blitter/32bpp_ssse3.hpp
|
||||
#end
|
||||
blitter/8bpp_base.cpp
|
||||
blitter/8bpp_base.hpp
|
||||
blitter/8bpp_optimized.cpp
|
||||
@@ -1002,6 +1065,7 @@ pathfinder/yapf/yapf_node_ship.hpp
|
||||
pathfinder/yapf/yapf_rail.cpp
|
||||
pathfinder/yapf/yapf_road.cpp
|
||||
pathfinder/yapf/yapf_ship.cpp
|
||||
pathfinder/yapf/yapf_type.hpp
|
||||
|
||||
# Video
|
||||
video/dedicated_v.cpp
|
||||
|
3
src/3rdparty/README.licensing
vendored
Normal file
3
src/3rdparty/README.licensing
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
The files in this directory are not licensed under the same terms as the
|
||||
rest of OpenTTD. Licensing details can be found in OpenTTD's readme.txt
|
||||
and in this directory or subdirectories as well.
|
6
src/3rdparty/squirrel/squirrel/squtils.h
vendored
6
src/3rdparty/squirrel/squirrel/squtils.h
vendored
@@ -37,9 +37,13 @@ public:
|
||||
~sqvector()
|
||||
{
|
||||
if(_allocated) {
|
||||
/* Break freeing loops, if this vector (indirectly) links to itself. */
|
||||
size_t allocated_size = _allocated * sizeof(T);
|
||||
_allocated = 0;
|
||||
|
||||
for(SQUnsignedInteger i = 0; i < _size; i++)
|
||||
_vals[i].~T();
|
||||
SQ_FREE(_vals, (_allocated * sizeof(T)));
|
||||
SQ_FREE(_vals, allocated_size);
|
||||
}
|
||||
}
|
||||
void reserve(SQUnsignedInteger newsize) { _realloc(newsize); }
|
||||
|
1
src/3rdparty/squirrel/squirrel/sqvm.cpp
vendored
1
src/3rdparty/squirrel/squirrel/sqvm.cpp
vendored
@@ -107,6 +107,7 @@ SQVM::SQVM(SQSharedState *ss)
|
||||
_errorhandler = _null_;
|
||||
_debughook = _null_;
|
||||
_can_suspend = false;
|
||||
_in_stackoverflow = false;
|
||||
_ops_till_suspend = 0;
|
||||
ci = NULL;
|
||||
INIT_CHAIN();ADD_TO_CHAIN(&_ss(this)->_gc_chain,this);
|
||||
|
5
src/3rdparty/squirrel/squirrel/sqvm.h
vendored
5
src/3rdparty/squirrel/squirrel/sqvm.h
vendored
@@ -170,6 +170,7 @@ public:
|
||||
|
||||
SQBool _can_suspend;
|
||||
SQInteger _ops_till_suspend;
|
||||
SQBool _in_stackoverflow;
|
||||
|
||||
bool ShouldSuspend()
|
||||
{
|
||||
@@ -200,8 +201,10 @@ inline SQObjectPtr &stack_get(HSQUIRRELVM v,SQInteger idx){return ((idx>=0)?(v->
|
||||
|
||||
#define PUSH_CALLINFO(v,nci){ \
|
||||
if(v->_callsstacksize == v->_alloccallsstacksize) { \
|
||||
if (v->_callsstacksize > 65535) {\
|
||||
if (v->_callsstacksize > 65535 && !v->_in_stackoverflow) {\
|
||||
v->_in_stackoverflow = true; \
|
||||
v->Raise_Error(_SC("stack overflow"));\
|
||||
v->CallErrorHandler(v->_lasterror);\
|
||||
return false;\
|
||||
}\
|
||||
v->GrowCallStack(); \
|
||||
|
@@ -47,6 +47,7 @@
|
||||
/* Load default data and store the name in the settings */
|
||||
config->Change(info->GetName(), -1, false, true);
|
||||
}
|
||||
config->AnchorUnchangeableSettings();
|
||||
|
||||
Backup<CompanyByte> cur_company(_current_company, company, FILE_LINE);
|
||||
Company *c = Company::Get(company);
|
||||
|
@@ -30,6 +30,7 @@
|
||||
#include "../hotkeys.h"
|
||||
|
||||
#include "ai.hpp"
|
||||
#include "ai_gui.hpp"
|
||||
#include "../script/api/script_log.hpp"
|
||||
#include "ai_config.hpp"
|
||||
#include "ai_info.hpp"
|
||||
@@ -65,7 +66,7 @@ struct AIListWindow : public Window {
|
||||
* @param desc The description of the window.
|
||||
* @param slot The company we're changing the AI for.
|
||||
*/
|
||||
AIListWindow(const WindowDesc *desc, CompanyID slot) : Window(),
|
||||
AIListWindow(WindowDesc *desc, CompanyID slot) : Window(desc),
|
||||
slot(slot)
|
||||
{
|
||||
if (slot == OWNER_DEITY) {
|
||||
@@ -74,9 +75,9 @@ struct AIListWindow : public Window {
|
||||
this->info_list = AI::GetUniqueInfoList();
|
||||
}
|
||||
|
||||
this->CreateNestedTree(desc);
|
||||
this->CreateNestedTree();
|
||||
this->vscroll = this->GetScrollbar(WID_AIL_SCROLLBAR);
|
||||
this->FinishInitNested(desc); // Initializes 'this->line_height' as side effect.
|
||||
this->FinishInitNested(); // Initializes 'this->line_height' as side effect.
|
||||
|
||||
this->vscroll->SetCount((int)this->info_list->size() + 1);
|
||||
|
||||
@@ -110,7 +111,7 @@ struct AIListWindow : public Window {
|
||||
|
||||
resize->width = 1;
|
||||
resize->height = this->line_height;
|
||||
size->height = GB(this->GetWidget<NWidgetCore>(widget)->widget_data, MAT_ROW_START, MAT_ROW_BITS) * this->line_height;
|
||||
size->height = 5 * this->line_height;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -209,9 +210,7 @@ struct AIListWindow : public Window {
|
||||
|
||||
virtual void OnResize()
|
||||
{
|
||||
NWidgetCore *nwi = this->GetWidget<NWidgetCore>(WID_AIL_LIST);
|
||||
this->vscroll->SetCapacity(nwi->current_y / this->line_height);
|
||||
nwi->widget_data = (this->vscroll->GetCapacity() << MAT_ROW_START) + (1 << MAT_COL_START);
|
||||
this->vscroll->SetCapacityFromWidget(this, WID_AIL_LIST);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -240,9 +239,10 @@ static const NWidgetPart _nested_ai_list_widgets[] = {
|
||||
NWidget(NWID_HORIZONTAL),
|
||||
NWidget(WWT_CLOSEBOX, COLOUR_MAUVE),
|
||||
NWidget(WWT_CAPTION, COLOUR_MAUVE, WID_AIL_CAPTION), SetDataTip(STR_AI_LIST_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
|
||||
NWidget(WWT_DEFSIZEBOX, COLOUR_MAUVE),
|
||||
EndContainer(),
|
||||
NWidget(NWID_HORIZONTAL),
|
||||
NWidget(WWT_MATRIX, COLOUR_MAUVE, WID_AIL_LIST), SetMinimalSize(188, 112), SetFill(1, 1), SetResize(1, 1), SetDataTip(0x501, STR_AI_LIST_TOOLTIP), SetScrollbar(WID_AIL_SCROLLBAR),
|
||||
NWidget(WWT_MATRIX, COLOUR_MAUVE, WID_AIL_LIST), SetMinimalSize(188, 112), SetFill(1, 1), SetResize(1, 1), SetMatrixDataTip(1, 0, STR_AI_LIST_TOOLTIP), SetScrollbar(WID_AIL_SCROLLBAR),
|
||||
NWidget(NWID_VSCROLLBAR, COLOUR_MAUVE, WID_AIL_SCROLLBAR),
|
||||
EndContainer(),
|
||||
NWidget(WWT_PANEL, COLOUR_MAUVE, WID_AIL_INFO_BG), SetMinimalTextLines(8, WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM), SetResize(1, 0),
|
||||
@@ -257,8 +257,8 @@ static const NWidgetPart _nested_ai_list_widgets[] = {
|
||||
};
|
||||
|
||||
/** Window definition for the ai list window. */
|
||||
static const WindowDesc _ai_list_desc(
|
||||
WDP_CENTER, 200, 234,
|
||||
static WindowDesc _ai_list_desc(
|
||||
WDP_CENTER, "settings_script_list", 200, 234,
|
||||
WC_AI_LIST, WC_NONE,
|
||||
0,
|
||||
_nested_ai_list_widgets, lengthof(_nested_ai_list_widgets)
|
||||
@@ -296,7 +296,7 @@ struct AISettingsWindow : public Window {
|
||||
* @param desc The description of the window.
|
||||
* @param slot The company we're changing the settings for.
|
||||
*/
|
||||
AISettingsWindow(const WindowDesc *desc, CompanyID slot) : Window(),
|
||||
AISettingsWindow(WindowDesc *desc, CompanyID slot) : Window(desc),
|
||||
slot(slot),
|
||||
clicked_button(-1),
|
||||
clicked_dropdown(false),
|
||||
@@ -306,9 +306,9 @@ struct AISettingsWindow : public Window {
|
||||
this->ai_config = GetConfig(slot);
|
||||
this->RebuildVisibleSettings();
|
||||
|
||||
this->CreateNestedTree(desc);
|
||||
this->CreateNestedTree();
|
||||
this->vscroll = this->GetScrollbar(WID_AIS_SCROLLBAR);
|
||||
this->FinishInitNested(desc, slot); // Initializes 'this->line_height' as side effect.
|
||||
this->FinishInitNested(slot); // Initializes 'this->line_height' as side effect.
|
||||
|
||||
this->SetWidgetDisabledState(WID_AIS_RESET, _game_mode != GM_MENU && Company::IsValidID(this->slot));
|
||||
|
||||
@@ -349,7 +349,7 @@ struct AISettingsWindow : public Window {
|
||||
|
||||
resize->width = 1;
|
||||
resize->height = this->line_height;
|
||||
size->height = GB(this->GetWidget<NWidgetCore>(widget)->widget_data, MAT_ROW_START, MAT_ROW_BITS) * this->line_height;
|
||||
size->height = 5 * this->line_height;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -476,7 +476,7 @@ struct AISettingsWindow : public Window {
|
||||
|
||||
DropDownList *list = new DropDownList();
|
||||
for (int i = config_item.min_value; i <= config_item.max_value; i++) {
|
||||
list->push_back(new DropDownListCharStringItem(config_item.labels->Find(i)->second, i, false));
|
||||
*list->Append() = new DropDownListCharStringItem(config_item.labels->Find(i)->second, i, false);
|
||||
}
|
||||
|
||||
ShowDropDownListAt(this, list, old_val, -1, wi_rect, COLOUR_ORANGE, true);
|
||||
@@ -559,9 +559,7 @@ struct AISettingsWindow : public Window {
|
||||
|
||||
virtual void OnResize()
|
||||
{
|
||||
NWidgetCore *nwi = this->GetWidget<NWidgetCore>(WID_AIS_BACKGROUND);
|
||||
this->vscroll->SetCapacity(nwi->current_y / this->line_height);
|
||||
nwi->widget_data = (this->vscroll->GetCapacity() << MAT_ROW_START) + (1 << MAT_COL_START);
|
||||
this->vscroll->SetCapacityFromWidget(this, WID_AIS_BACKGROUND);
|
||||
}
|
||||
|
||||
virtual void OnTick()
|
||||
@@ -588,9 +586,10 @@ static const NWidgetPart _nested_ai_settings_widgets[] = {
|
||||
NWidget(NWID_HORIZONTAL),
|
||||
NWidget(WWT_CLOSEBOX, COLOUR_MAUVE),
|
||||
NWidget(WWT_CAPTION, COLOUR_MAUVE, WID_AIS_CAPTION), SetDataTip(STR_AI_SETTINGS_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
|
||||
NWidget(WWT_DEFSIZEBOX, COLOUR_MAUVE),
|
||||
EndContainer(),
|
||||
NWidget(NWID_HORIZONTAL),
|
||||
NWidget(WWT_MATRIX, COLOUR_MAUVE, WID_AIS_BACKGROUND), SetMinimalSize(188, 182), SetResize(1, 1), SetFill(1, 0), SetDataTip(0x501, STR_NULL), SetScrollbar(WID_AIS_SCROLLBAR),
|
||||
NWidget(WWT_MATRIX, COLOUR_MAUVE, WID_AIS_BACKGROUND), SetMinimalSize(188, 182), SetResize(1, 1), SetFill(1, 0), SetMatrixDataTip(1, 0, STR_NULL), SetScrollbar(WID_AIS_SCROLLBAR),
|
||||
NWidget(NWID_VSCROLLBAR, COLOUR_MAUVE, WID_AIS_SCROLLBAR),
|
||||
EndContainer(),
|
||||
NWidget(NWID_HORIZONTAL),
|
||||
@@ -603,8 +602,8 @@ static const NWidgetPart _nested_ai_settings_widgets[] = {
|
||||
};
|
||||
|
||||
/** Window definition for the AI settings window. */
|
||||
static const WindowDesc _ai_settings_desc(
|
||||
WDP_CENTER, 500, 208,
|
||||
static WindowDesc _ai_settings_desc(
|
||||
WDP_CENTER, "settings_script", 500, 208,
|
||||
WC_AI_SETTINGS, WC_NONE,
|
||||
0,
|
||||
_nested_ai_settings_widgets, lengthof(_nested_ai_settings_widgets)
|
||||
@@ -674,13 +673,13 @@ static const NWidgetPart _nested_ai_config_widgets[] = {
|
||||
EndContainer(),
|
||||
NWidget(WWT_FRAME, COLOUR_MAUVE), SetDataTip(STR_AI_CONFIG_AI, STR_NULL), SetPadding(0, 5, 0, 5),
|
||||
NWidget(NWID_HORIZONTAL),
|
||||
NWidget(WWT_MATRIX, COLOUR_MAUVE, WID_AIC_LIST), SetMinimalSize(288, 112), SetFill(1, 0), SetDataTip(0x801, STR_AI_CONFIG_AILIST_TOOLTIP), SetScrollbar(WID_AIC_SCROLLBAR),
|
||||
NWidget(WWT_MATRIX, COLOUR_MAUVE, WID_AIC_LIST), SetMinimalSize(288, 112), SetFill(1, 0), SetMatrixDataTip(1, 8, STR_AI_CONFIG_AILIST_TOOLTIP), SetScrollbar(WID_AIC_SCROLLBAR),
|
||||
NWidget(NWID_VSCROLLBAR, COLOUR_MAUVE, WID_AIC_SCROLLBAR),
|
||||
EndContainer(),
|
||||
EndContainer(),
|
||||
NWidget(NWID_SPACER), SetMinimalSize(0, 9),
|
||||
NWidget(WWT_FRAME, COLOUR_MAUVE), SetDataTip(STR_AI_CONFIG_GAMESCRIPT, STR_NULL), SetPadding(0, 5, 4, 5),
|
||||
NWidget(WWT_MATRIX, COLOUR_MAUVE, WID_AIC_GAMELIST), SetMinimalSize(288, 14), SetFill(1, 0), SetDataTip(0x101, STR_AI_CONFIG_GAMELIST_TOOLTIP),
|
||||
NWidget(WWT_MATRIX, COLOUR_MAUVE, WID_AIC_GAMELIST), SetMinimalSize(288, 14), SetFill(1, 0), SetMatrixDataTip(1, 1, STR_AI_CONFIG_GAMELIST_TOOLTIP),
|
||||
EndContainer(),
|
||||
NWidget(NWID_HORIZONTAL, NC_EQUALSIZE), SetPIP(7, 0, 7),
|
||||
NWidget(WWT_PUSHTXTBTN, COLOUR_YELLOW, WID_AIC_CHANGE), SetFill(1, 0), SetMinimalSize(93, 12), SetDataTip(STR_AI_CONFIG_CHANGE, STR_AI_CONFIG_CHANGE_TOOLTIP),
|
||||
@@ -697,8 +696,8 @@ static const NWidgetPart _nested_ai_config_widgets[] = {
|
||||
};
|
||||
|
||||
/** Window definition for the configure AI window. */
|
||||
static const WindowDesc _ai_config_desc(
|
||||
WDP_CENTER, 0, 0,
|
||||
static WindowDesc _ai_config_desc(
|
||||
WDP_CENTER, "settings_script_config", 0, 0,
|
||||
WC_GAME_OPTIONS, WC_NONE,
|
||||
0,
|
||||
_nested_ai_config_widgets, lengthof(_nested_ai_config_widgets)
|
||||
@@ -712,15 +711,14 @@ struct AIConfigWindow : public Window {
|
||||
int line_height; ///< Height of a single AI-name line.
|
||||
Scrollbar *vscroll; ///< Cache of the vertical scrollbar.
|
||||
|
||||
AIConfigWindow() : Window()
|
||||
AIConfigWindow() : Window(&_ai_config_desc)
|
||||
{
|
||||
this->InitNested(&_ai_config_desc, WN_GAME_OPTIONS_AI); // Initializes 'this->line_height' as a side effect.
|
||||
this->InitNested(WN_GAME_OPTIONS_AI); // Initializes 'this->line_height' as a side effect.
|
||||
this->vscroll = this->GetScrollbar(WID_AIC_SCROLLBAR);
|
||||
this->selected_slot = INVALID_COMPANY;
|
||||
NWidgetCore *nwi = this->GetWidget<NWidgetCore>(WID_AIC_LIST);
|
||||
this->vscroll->SetCapacity(nwi->current_y / this->line_height);
|
||||
this->vscroll->SetCount(MAX_COMPANIES);
|
||||
nwi->widget_data = (this->vscroll->GetCapacity() << MAT_ROW_START) + (1 << MAT_COL_START);
|
||||
this->OnInvalidateData(0);
|
||||
}
|
||||
|
||||
@@ -758,9 +756,13 @@ struct AIConfigWindow : public Window {
|
||||
{
|
||||
switch (widget) {
|
||||
case WID_AIC_GAMELIST:
|
||||
this->line_height = FONT_HEIGHT_NORMAL + WD_MATRIX_TOP + WD_MATRIX_BOTTOM;
|
||||
size->height = 1 * this->line_height;
|
||||
break;
|
||||
|
||||
case WID_AIC_LIST:
|
||||
this->line_height = FONT_HEIGHT_NORMAL + WD_MATRIX_TOP + WD_MATRIX_BOTTOM;
|
||||
size->height = GB(this->GetWidget<NWidgetCore>(widget)->widget_data, MAT_ROW_START, MAT_ROW_BITS) * this->line_height;
|
||||
size->height = 8 * this->line_height;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -772,7 +774,7 @@ struct AIConfigWindow : public Window {
|
||||
*/
|
||||
static bool IsEditable(CompanyID slot)
|
||||
{
|
||||
if (slot == OWNER_DEITY) return _game_mode != GM_NORMAL;
|
||||
if (slot == OWNER_DEITY) return _game_mode != GM_NORMAL || Game::GetInstance() != NULL;
|
||||
|
||||
if (_game_mode != GM_NORMAL) {
|
||||
return slot > 0 && slot <= GetGameSettings().difficulty.max_no_competitors;
|
||||
@@ -851,7 +853,7 @@ struct AIConfigWindow : public Window {
|
||||
case WID_AIC_GAMELIST: {
|
||||
this->selected_slot = OWNER_DEITY;
|
||||
this->InvalidateData();
|
||||
if (click_count > 1 && this->selected_slot != INVALID_COMPANY) ShowAIListWindow((CompanyID)this->selected_slot);
|
||||
if (click_count > 1 && this->selected_slot != INVALID_COMPANY && _game_mode != GM_NORMAL) ShowAIListWindow((CompanyID)this->selected_slot);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -920,7 +922,7 @@ struct AIConfigWindow : public Window {
|
||||
|
||||
this->SetWidgetDisabledState(WID_AIC_DECREASE, GetGameSettings().difficulty.max_no_competitors == 0);
|
||||
this->SetWidgetDisabledState(WID_AIC_INCREASE, GetGameSettings().difficulty.max_no_competitors == MAX_COMPANIES - 1);
|
||||
this->SetWidgetDisabledState(WID_AIC_CHANGE, this->selected_slot == INVALID_COMPANY);
|
||||
this->SetWidgetDisabledState(WID_AIC_CHANGE, (this->selected_slot == OWNER_DEITY && _game_mode == GM_NORMAL) || this->selected_slot == INVALID_COMPANY);
|
||||
this->SetWidgetDisabledState(WID_AIC_CONFIGURE, this->selected_slot == INVALID_COMPANY || GetConfig(this->selected_slot)->GetConfigList()->size() == 0);
|
||||
this->SetWidgetDisabledState(WID_AIC_MOVE_UP, this->selected_slot == OWNER_DEITY || this->selected_slot == INVALID_COMPANY || !IsEditable((CompanyID)(this->selected_slot - 1)));
|
||||
this->SetWidgetDisabledState(WID_AIC_MOVE_DOWN, this->selected_slot == OWNER_DEITY || this->selected_slot == INVALID_COMPANY || !IsEditable((CompanyID)(this->selected_slot + 1)));
|
||||
@@ -1000,28 +1002,57 @@ struct AIDebugWindow : public Window {
|
||||
return !Company::IsValidAiID(ai_debug_company) || Company::Get(ai_debug_company)->ai_instance->IsDead();
|
||||
}
|
||||
|
||||
/**
|
||||
* Check whether a company is a valid AI company or GS.
|
||||
* @param company Company to check for validity.
|
||||
* @return true if company is valid for debugging.
|
||||
*/
|
||||
bool IsValidDebugCompany(CompanyID company) const
|
||||
{
|
||||
switch (company) {
|
||||
case INVALID_COMPANY: return false;
|
||||
case OWNER_DEITY: return Game::GetInstance() != NULL;
|
||||
default: return Company::IsValidAiID(company);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Ensure that \c ai_debug_company refers to a valid AI company or GS, or is set to #INVALID_COMPANY.
|
||||
* If no valid company is selected, it selects the first valid AI or GS if any.
|
||||
*/
|
||||
void SelectValidDebugCompany()
|
||||
{
|
||||
/* Check if the currently selected company is still active. */
|
||||
if (this->IsValidDebugCompany(ai_debug_company)) return;
|
||||
|
||||
ai_debug_company = INVALID_COMPANY;
|
||||
|
||||
const Company *c;
|
||||
FOR_ALL_COMPANIES(c) {
|
||||
if (c->is_ai) {
|
||||
ChangeToAI(c->index);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/* If no AI is available, see if there is a game script. */
|
||||
if (Game::GetInstance() != NULL) ChangeToAI(OWNER_DEITY);
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructor for the window.
|
||||
* @param desc The description of the window.
|
||||
* @param number The window number (actually unused).
|
||||
*/
|
||||
AIDebugWindow(const WindowDesc *desc, WindowNumber number) : break_editbox(MAX_BREAK_STR_STRING_LENGTH)
|
||||
AIDebugWindow(WindowDesc *desc, WindowNumber number) : Window(desc), break_editbox(MAX_BREAK_STR_STRING_LENGTH)
|
||||
{
|
||||
this->CreateNestedTree(desc);
|
||||
this->CreateNestedTree();
|
||||
this->vscroll = this->GetScrollbar(WID_AID_SCROLLBAR);
|
||||
this->show_break_box = _settings_client.gui.ai_developer_tools;
|
||||
this->GetWidget<NWidgetStacked>(WID_AID_BREAK_STRING_WIDGETS)->SetDisplayedPlane(this->show_break_box ? 0 : SZSP_HORIZONTAL);
|
||||
this->FinishInitNested(desc, number);
|
||||
this->FinishInitNested(number);
|
||||
|
||||
if (!this->show_break_box) break_check_enabled = false;
|
||||
/* Disable the companies who are not active or not an AI */
|
||||
for (CompanyID i = COMPANY_FIRST; i < MAX_COMPANIES; i++) {
|
||||
this->SetWidgetDisabledState(i + WID_AID_COMPANY_BUTTON_START, !Company::IsValidAiID(i));
|
||||
}
|
||||
this->EnableWidget(WID_AID_SCRIPT_GAME);
|
||||
this->DisableWidget(WID_AID_RELOAD_TOGGLE);
|
||||
this->DisableWidget(WID_AID_SETTINGS);
|
||||
this->DisableWidget(WID_AID_CONTINUE_BTN);
|
||||
|
||||
this->last_vscroll_pos = 0;
|
||||
this->autoscroll = true;
|
||||
@@ -1029,20 +1060,13 @@ struct AIDebugWindow : public Window {
|
||||
|
||||
this->querystrings[WID_AID_BREAK_STR_EDIT_BOX] = &this->break_editbox;
|
||||
|
||||
SetWidgetsDisabledState(!this->show_break_box, WID_AID_BREAK_STR_ON_OFF_BTN, WID_AID_BREAK_STR_EDIT_BOX, WID_AID_MATCH_CASE_BTN, WIDGET_LIST_END);
|
||||
|
||||
/* Restore the break string value from static variable */
|
||||
this->break_editbox.text.Assign(this->break_string);
|
||||
|
||||
/* Restore button state from static class variables */
|
||||
if (ai_debug_company == OWNER_DEITY) {
|
||||
this->LowerWidget(WID_AID_SCRIPT_GAME);
|
||||
this->SetWidgetDisabledState(WID_AID_CONTINUE_BTN, !Game::IsPaused());
|
||||
} else if (ai_debug_company != INVALID_COMPANY) {
|
||||
this->LowerWidget(ai_debug_company + WID_AID_COMPANY_BUTTON_START);
|
||||
this->SetWidgetDisabledState(WID_AID_CONTINUE_BTN, !AI::IsPaused(ai_debug_company));
|
||||
}
|
||||
this->SetWidgetLoweredState(WID_AID_BREAK_STR_ON_OFF_BTN, this->break_check_enabled);
|
||||
this->SetWidgetLoweredState(WID_AID_MATCH_CASE_BTN, this->case_sensitive_break_check);
|
||||
|
||||
this->SelectValidDebugCompany();
|
||||
this->InvalidateData(-1);
|
||||
}
|
||||
|
||||
virtual void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize)
|
||||
@@ -1055,67 +1079,31 @@ struct AIDebugWindow : public Window {
|
||||
|
||||
virtual void OnPaint()
|
||||
{
|
||||
/* Check if the currently selected company is still active. */
|
||||
if (ai_debug_company == INVALID_COMPANY || (ai_debug_company != OWNER_DEITY && !Company::IsValidAiID(ai_debug_company))) {
|
||||
if (ai_debug_company != INVALID_COMPANY) {
|
||||
/* Raise the widget for the previous selection. */
|
||||
this->RaiseWidget(ai_debug_company + WID_AID_COMPANY_BUTTON_START);
|
||||
|
||||
ai_debug_company = INVALID_COMPANY;
|
||||
}
|
||||
|
||||
const Company *c;
|
||||
FOR_ALL_COMPANIES(c) {
|
||||
if (c->is_ai) {
|
||||
/* Lower the widget corresponding to this company. */
|
||||
this->LowerWidget(c->index + WID_AID_COMPANY_BUTTON_START);
|
||||
|
||||
ai_debug_company = c->index;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* If no AI is available, see if there is a game script. */
|
||||
if (ai_debug_company == INVALID_COMPANY && Game::GetInstance() != NULL) {
|
||||
/* Lower the widget corresponding to the game script. */
|
||||
this->LowerWidget(WID_AID_SCRIPT_GAME);
|
||||
|
||||
ai_debug_company = OWNER_DEITY;
|
||||
}
|
||||
}
|
||||
|
||||
/* Update "Reload AI" and "AI settings" buttons */
|
||||
this->SetWidgetDisabledState(WID_AID_SETTINGS, ai_debug_company == INVALID_COMPANY);
|
||||
this->SetWidgetDisabledState(WID_AID_RELOAD_TOGGLE, ai_debug_company == INVALID_COMPANY || ai_debug_company == OWNER_DEITY);
|
||||
this->SetWidgetDisabledState(WID_AID_SCRIPT_GAME, Game::GetGameInstance() == NULL);
|
||||
this->SelectValidDebugCompany();
|
||||
|
||||
/* Draw standard stuff */
|
||||
this->DrawWidgets();
|
||||
|
||||
if (this->IsShaded()) return; // Don't draw anything when the window is shaded.
|
||||
|
||||
bool dirty = false;
|
||||
|
||||
/* Paint the company icons */
|
||||
for (CompanyID i = COMPANY_FIRST; i < MAX_COMPANIES; i++) {
|
||||
NWidgetCore *button = this->GetWidget<NWidgetCore>(i + WID_AID_COMPANY_BUTTON_START);
|
||||
bool dirty = false;
|
||||
|
||||
bool valid = Company::IsValidAiID(i);
|
||||
bool disabled = !valid;
|
||||
if (button->IsDisabled() != disabled) {
|
||||
/* Invalid/non-AI companies have button disabled */
|
||||
button->SetDisabled(disabled);
|
||||
dirty = true;
|
||||
}
|
||||
|
||||
/* Check whether the validity of the company changed */
|
||||
dirty |= (button->IsDisabled() == valid);
|
||||
|
||||
/* Mark dead/paused AIs by setting the background colour. */
|
||||
bool dead = valid && Company::Get(i)->ai_instance->IsDead();
|
||||
bool paused = valid && Company::Get(i)->ai_instance->IsPaused();
|
||||
/* Re-paint if the button was updated.
|
||||
* (note that it is intentional that SetScriptButtonColour is always called) */
|
||||
dirty = SetScriptButtonColour(*button, dead, paused) || dirty;
|
||||
dirty |= SetScriptButtonColour(*button, dead, paused);
|
||||
|
||||
/* Do we need a repaint? */
|
||||
if (dirty) this->SetDirty();
|
||||
/* Draw company icon only for valid AI companies */
|
||||
if (!valid) continue;
|
||||
|
||||
@@ -1125,13 +1113,14 @@ struct AIDebugWindow : public Window {
|
||||
|
||||
/* Set button colour for Game Script. */
|
||||
GameInstance *game = Game::GetInstance();
|
||||
bool dead = game != NULL && game->IsDead();
|
||||
bool paused = game != NULL && game->IsPaused();
|
||||
bool valid = game != NULL;
|
||||
bool dead = valid && game->IsDead();
|
||||
bool paused = valid && game->IsPaused();
|
||||
|
||||
NWidgetCore *button = this->GetWidget<NWidgetCore>(WID_AID_SCRIPT_GAME);
|
||||
if (SetScriptButtonColour(*button, dead, paused)) {
|
||||
/* Re-paint if the button was updated. */
|
||||
this->SetWidgetDirty(WID_AID_SCRIPT_GAME);
|
||||
}
|
||||
dirty |= (button->IsDisabled() == valid) || SetScriptButtonColour(*button, dead, paused);
|
||||
|
||||
if (dirty) this->InvalidateData(-1);
|
||||
|
||||
/* If there are no active companies, don't display anything else. */
|
||||
if (ai_debug_company == INVALID_COMPANY) return;
|
||||
@@ -1233,30 +1222,19 @@ struct AIDebugWindow : public Window {
|
||||
*/
|
||||
void ChangeToAI(CompanyID show_ai)
|
||||
{
|
||||
if (ai_debug_company == OWNER_DEITY) {
|
||||
this->RaiseWidget(WID_AID_SCRIPT_GAME);
|
||||
} else {
|
||||
this->RaiseWidget(ai_debug_company + WID_AID_COMPANY_BUTTON_START);
|
||||
}
|
||||
if (!this->IsValidDebugCompany(show_ai)) return;
|
||||
|
||||
ai_debug_company = show_ai;
|
||||
|
||||
ScriptLog::LogData *log = this->GetLogPointer();
|
||||
this->vscroll->SetCount((log == NULL) ? 0 : log->used);
|
||||
|
||||
if (ai_debug_company == OWNER_DEITY) {
|
||||
this->LowerWidget(WID_AID_SCRIPT_GAME);
|
||||
this->SetWidgetDisabledState(WID_AID_CONTINUE_BTN, !Game::IsPaused());
|
||||
} else {
|
||||
this->LowerWidget(ai_debug_company + WID_AID_COMPANY_BUTTON_START);
|
||||
this->SetWidgetDisabledState(WID_AID_CONTINUE_BTN, !AI::IsPaused(ai_debug_company));
|
||||
}
|
||||
|
||||
this->highlight_row = -1; // The highlight of one AI make little sense for another AI.
|
||||
this->autoscroll = true;
|
||||
this->last_vscroll_pos = this->vscroll->GetPosition();
|
||||
this->SetDirty();
|
||||
|
||||
/* Close AI settings window to prevent confusion */
|
||||
DeleteWindowByClass(WC_AI_SETTINGS);
|
||||
|
||||
this->InvalidateData(-1);
|
||||
|
||||
this->autoscroll = true;
|
||||
this->last_vscroll_pos = this->vscroll->GetPosition();
|
||||
}
|
||||
|
||||
virtual void OnClick(Point pt, int widget, int click_count)
|
||||
@@ -1287,25 +1265,21 @@ struct AIDebugWindow : public Window {
|
||||
|
||||
case WID_AID_BREAK_STR_ON_OFF_BTN:
|
||||
this->break_check_enabled = !this->break_check_enabled;
|
||||
this->SetWidgetLoweredState(WID_AID_BREAK_STR_ON_OFF_BTN, this->break_check_enabled);
|
||||
this->SetWidgetDirty(WID_AID_BREAK_STR_ON_OFF_BTN);
|
||||
this->InvalidateData(-1);
|
||||
break;
|
||||
|
||||
case WID_AID_MATCH_CASE_BTN:
|
||||
this->case_sensitive_break_check = !this->case_sensitive_break_check;
|
||||
this->SetWidgetLoweredState(WID_AID_MATCH_CASE_BTN, this->case_sensitive_break_check);
|
||||
this->SetWidgetDirty(WID_AID_MATCH_CASE_BTN);
|
||||
this->InvalidateData(-1);
|
||||
break;
|
||||
|
||||
case WID_AID_CONTINUE_BTN:
|
||||
/* Unpause current AI / game script and mark the corresponding script button dirty. */
|
||||
if (!IsDead()) {
|
||||
if (!this->IsDead()) {
|
||||
if (ai_debug_company == OWNER_DEITY) {
|
||||
Game::Unpause();
|
||||
this->SetWidgetDirty(WID_AID_SCRIPT_GAME);
|
||||
} else {
|
||||
AI::Unpause(ai_debug_company);
|
||||
this->SetWidgetDirty(WID_AID_COMPANY_BUTTON_START + ai_debug_company);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1328,29 +1302,11 @@ struct AIDebugWindow : public Window {
|
||||
}
|
||||
|
||||
this->highlight_row = -1;
|
||||
this->SetWidgetDirty(WID_AID_LOG_PANEL);
|
||||
this->DisableWidget(WID_AID_CONTINUE_BTN);
|
||||
this->InvalidateData(-1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
virtual EventState OnKeyPress(uint16 key, uint16 keycode)
|
||||
{
|
||||
EventState state = ES_NOT_HANDLED;
|
||||
int num = CheckHotkeyMatch(aidebug_hotkeys, keycode, this);
|
||||
if (num != -1) {
|
||||
if (this->show_break_box && num == WID_AID_BREAK_STR_EDIT_BOX) {
|
||||
this->SetFocusedWidget(WID_AID_BREAK_STR_EDIT_BOX);
|
||||
SetFocusedWindow(this);
|
||||
state = ES_HANDLED;
|
||||
} else if (this->show_break_box || num < WID_AID_BREAK_STRING_WIDGETS) {
|
||||
this->OnClick(Point(), num, 1);
|
||||
state = ES_HANDLED;
|
||||
}
|
||||
}
|
||||
return state;
|
||||
}
|
||||
|
||||
virtual void OnEditboxChanged(int wid)
|
||||
{
|
||||
if (wid == WID_AID_BREAK_STR_EDIT_BOX) {
|
||||
@@ -1363,15 +1319,14 @@ struct AIDebugWindow : public Window {
|
||||
/**
|
||||
* Some data on this window has become invalid.
|
||||
* @param data Information about the changed data.
|
||||
* This is the company ID of the AI/GS which wrote a new log message, or -1 in other cases.
|
||||
* @param gui_scope Whether the call is done from GUI scope. You may not do everything when not in GUI scope. See #InvalidateWindowData() for details.
|
||||
*/
|
||||
virtual void OnInvalidateData(int data = 0, bool gui_scope = true)
|
||||
{
|
||||
if (data == -1 || ai_debug_company == data) this->SetDirty();
|
||||
|
||||
/* If the log message is related to the active company tab, check the break string.
|
||||
* This needs to be done in gameloop-scope, so the AI is suspended immediately. */
|
||||
if (!gui_scope && data == ai_debug_company && this->break_check_enabled && !this->break_string_filter.IsEmpty()) {
|
||||
if (!gui_scope && data == ai_debug_company && this->IsValidDebugCompany(ai_debug_company) && this->break_check_enabled && !this->break_string_filter.IsEmpty()) {
|
||||
/* Get the log instance of the active company */
|
||||
ScriptLog::LogData *log = this->GetLogPointer();
|
||||
|
||||
@@ -1380,7 +1335,7 @@ struct AIDebugWindow : public Window {
|
||||
this->break_string_filter.AddLine(log->lines[log->pos]);
|
||||
if (this->break_string_filter.GetState()) {
|
||||
/* Pause execution of script. */
|
||||
if (!IsDead()) {
|
||||
if (!this->IsDead()) {
|
||||
if (ai_debug_company == OWNER_DEITY) {
|
||||
Game::Pause();
|
||||
} else {
|
||||
@@ -1393,15 +1348,35 @@ struct AIDebugWindow : public Window {
|
||||
DoCommandP(0, PM_PAUSED_NORMAL, 1, CMD_PAUSE);
|
||||
}
|
||||
|
||||
/* Make it possible to click on the continue button */
|
||||
this->EnableWidget(WID_AID_CONTINUE_BTN);
|
||||
this->SetWidgetDirty(WID_AID_CONTINUE_BTN);
|
||||
|
||||
/* Highlight row that matched */
|
||||
this->highlight_row = log->pos;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!gui_scope) return;
|
||||
|
||||
this->SelectValidDebugCompany();
|
||||
|
||||
ScriptLog::LogData *log = ai_debug_company != INVALID_COMPANY ? this->GetLogPointer() : NULL;
|
||||
this->vscroll->SetCount((log == NULL) ? 0 : log->used);
|
||||
|
||||
/* Update company buttons */
|
||||
for (CompanyID i = COMPANY_FIRST; i < MAX_COMPANIES; i++) {
|
||||
this->SetWidgetDisabledState(i + WID_AID_COMPANY_BUTTON_START, !Company::IsValidAiID(i));
|
||||
this->SetWidgetLoweredState(i + WID_AID_COMPANY_BUTTON_START, ai_debug_company == i);
|
||||
}
|
||||
|
||||
this->SetWidgetDisabledState(WID_AID_SCRIPT_GAME, Game::GetGameInstance() == NULL);
|
||||
this->SetWidgetLoweredState(WID_AID_SCRIPT_GAME, ai_debug_company == OWNER_DEITY);
|
||||
|
||||
this->SetWidgetLoweredState(WID_AID_BREAK_STR_ON_OFF_BTN, this->break_check_enabled);
|
||||
this->SetWidgetLoweredState(WID_AID_MATCH_CASE_BTN, this->case_sensitive_break_check);
|
||||
|
||||
this->SetWidgetDisabledState(WID_AID_SETTINGS, ai_debug_company == INVALID_COMPANY);
|
||||
this->SetWidgetDisabledState(WID_AID_RELOAD_TOGGLE, ai_debug_company == INVALID_COMPANY || ai_debug_company == OWNER_DEITY);
|
||||
this->SetWidgetDisabledState(WID_AID_CONTINUE_BTN, ai_debug_company == INVALID_COMPANY ||
|
||||
(ai_debug_company == OWNER_DEITY ? !Game::IsPaused() : !AI::IsPaused(ai_debug_company)));
|
||||
}
|
||||
|
||||
virtual void OnResize()
|
||||
@@ -1409,7 +1384,7 @@ struct AIDebugWindow : public Window {
|
||||
this->vscroll->SetCapacityFromWidget(this, WID_AID_LOG_PANEL);
|
||||
}
|
||||
|
||||
static Hotkey<AIDebugWindow> aidebug_hotkeys[];
|
||||
static HotkeyList hotkeys;
|
||||
};
|
||||
|
||||
const int AIDebugWindow::top_offset = WD_FRAMERECT_TOP + 2;
|
||||
@@ -1426,32 +1401,45 @@ NWidgetBase *MakeCompanyButtonRowsAIDebug(int *biggest_index)
|
||||
return MakeCompanyButtonRows(biggest_index, WID_AID_COMPANY_BUTTON_START, WID_AID_COMPANY_BUTTON_END, 8, STR_AI_DEBUG_SELECT_AI_TOOLTIP);
|
||||
}
|
||||
|
||||
Hotkey<AIDebugWindow> AIDebugWindow::aidebug_hotkeys[] = {
|
||||
Hotkey<AIDebugWindow>('1', "company_1", WID_AID_COMPANY_BUTTON_START),
|
||||
Hotkey<AIDebugWindow>('2', "company_2", WID_AID_COMPANY_BUTTON_START + 1),
|
||||
Hotkey<AIDebugWindow>('3', "company_3", WID_AID_COMPANY_BUTTON_START + 2),
|
||||
Hotkey<AIDebugWindow>('4', "company_4", WID_AID_COMPANY_BUTTON_START + 3),
|
||||
Hotkey<AIDebugWindow>('5', "company_5", WID_AID_COMPANY_BUTTON_START + 4),
|
||||
Hotkey<AIDebugWindow>('6', "company_6", WID_AID_COMPANY_BUTTON_START + 5),
|
||||
Hotkey<AIDebugWindow>('7', "company_7", WID_AID_COMPANY_BUTTON_START + 6),
|
||||
Hotkey<AIDebugWindow>('8', "company_8", WID_AID_COMPANY_BUTTON_START + 7),
|
||||
Hotkey<AIDebugWindow>('9', "company_9", WID_AID_COMPANY_BUTTON_START + 8),
|
||||
Hotkey<AIDebugWindow>((uint16)0, "company_10", WID_AID_COMPANY_BUTTON_START + 9),
|
||||
Hotkey<AIDebugWindow>((uint16)0, "company_11", WID_AID_COMPANY_BUTTON_START + 10),
|
||||
Hotkey<AIDebugWindow>((uint16)0, "company_12", WID_AID_COMPANY_BUTTON_START + 11),
|
||||
Hotkey<AIDebugWindow>((uint16)0, "company_13", WID_AID_COMPANY_BUTTON_START + 12),
|
||||
Hotkey<AIDebugWindow>((uint16)0, "company_14", WID_AID_COMPANY_BUTTON_START + 13),
|
||||
Hotkey<AIDebugWindow>((uint16)0, "company_15", WID_AID_COMPANY_BUTTON_START + 14),
|
||||
Hotkey<AIDebugWindow>('S', "settings", WID_AID_SETTINGS),
|
||||
Hotkey<AIDebugWindow>('0', "game_script", WID_AID_SCRIPT_GAME),
|
||||
Hotkey<AIDebugWindow>((uint16)0, "reload", WID_AID_RELOAD_TOGGLE),
|
||||
Hotkey<AIDebugWindow>('B', "break_toggle", WID_AID_BREAK_STR_ON_OFF_BTN),
|
||||
Hotkey<AIDebugWindow>('F', "break_string", WID_AID_BREAK_STR_EDIT_BOX),
|
||||
Hotkey<AIDebugWindow>('C', "match_case", WID_AID_MATCH_CASE_BTN),
|
||||
Hotkey<AIDebugWindow>(WKC_RETURN, "continue", WID_AID_CONTINUE_BTN),
|
||||
HOTKEY_LIST_END(AIDebugWindow)
|
||||
/**
|
||||
* Handler for global hotkeys of the AIDebugWindow.
|
||||
* @param hotkey Hotkey
|
||||
* @return ES_HANDLED if hotkey was accepted.
|
||||
*/
|
||||
static EventState AIDebugGlobalHotkeys(int hotkey)
|
||||
{
|
||||
if (_game_mode != GM_NORMAL) return ES_NOT_HANDLED;
|
||||
Window *w = ShowAIDebugWindow(INVALID_COMPANY);
|
||||
if (w == NULL) return ES_NOT_HANDLED;
|
||||
return w->OnHotkey(hotkey);
|
||||
}
|
||||
|
||||
static Hotkey aidebug_hotkeys[] = {
|
||||
Hotkey('1', "company_1", WID_AID_COMPANY_BUTTON_START),
|
||||
Hotkey('2', "company_2", WID_AID_COMPANY_BUTTON_START + 1),
|
||||
Hotkey('3', "company_3", WID_AID_COMPANY_BUTTON_START + 2),
|
||||
Hotkey('4', "company_4", WID_AID_COMPANY_BUTTON_START + 3),
|
||||
Hotkey('5', "company_5", WID_AID_COMPANY_BUTTON_START + 4),
|
||||
Hotkey('6', "company_6", WID_AID_COMPANY_BUTTON_START + 5),
|
||||
Hotkey('7', "company_7", WID_AID_COMPANY_BUTTON_START + 6),
|
||||
Hotkey('8', "company_8", WID_AID_COMPANY_BUTTON_START + 7),
|
||||
Hotkey('9', "company_9", WID_AID_COMPANY_BUTTON_START + 8),
|
||||
Hotkey((uint16)0, "company_10", WID_AID_COMPANY_BUTTON_START + 9),
|
||||
Hotkey((uint16)0, "company_11", WID_AID_COMPANY_BUTTON_START + 10),
|
||||
Hotkey((uint16)0, "company_12", WID_AID_COMPANY_BUTTON_START + 11),
|
||||
Hotkey((uint16)0, "company_13", WID_AID_COMPANY_BUTTON_START + 12),
|
||||
Hotkey((uint16)0, "company_14", WID_AID_COMPANY_BUTTON_START + 13),
|
||||
Hotkey((uint16)0, "company_15", WID_AID_COMPANY_BUTTON_START + 14),
|
||||
Hotkey('S', "settings", WID_AID_SETTINGS),
|
||||
Hotkey('0', "game_script", WID_AID_SCRIPT_GAME),
|
||||
Hotkey((uint16)0, "reload", WID_AID_RELOAD_TOGGLE),
|
||||
Hotkey('B', "break_toggle", WID_AID_BREAK_STR_ON_OFF_BTN),
|
||||
Hotkey('F', "break_string", WID_AID_BREAK_STR_EDIT_BOX),
|
||||
Hotkey('C', "match_case", WID_AID_MATCH_CASE_BTN),
|
||||
Hotkey(WKC_RETURN, "continue", WID_AID_CONTINUE_BTN),
|
||||
HOTKEY_LIST_END
|
||||
};
|
||||
Hotkey<AIDebugWindow> *_aidebug_hotkeys = AIDebugWindow::aidebug_hotkeys;
|
||||
HotkeyList AIDebugWindow::hotkeys("aidebug", aidebug_hotkeys, AIDebugGlobalHotkeys);
|
||||
|
||||
/** Widgets for the AI debug window. */
|
||||
static const NWidgetPart _nested_ai_debug_widgets[] = {
|
||||
@@ -1459,6 +1447,7 @@ static const NWidgetPart _nested_ai_debug_widgets[] = {
|
||||
NWidget(WWT_CLOSEBOX, COLOUR_GREY),
|
||||
NWidget(WWT_CAPTION, COLOUR_GREY), SetDataTip(STR_AI_DEBUG, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
|
||||
NWidget(WWT_SHADEBOX, COLOUR_GREY),
|
||||
NWidget(WWT_DEFSIZEBOX, COLOUR_GREY),
|
||||
NWidget(WWT_STICKYBOX, COLOUR_GREY),
|
||||
EndContainer(),
|
||||
NWidget(WWT_PANEL, COLOUR_GREY, WID_AID_VIEW),
|
||||
@@ -1498,11 +1487,12 @@ static const NWidgetPart _nested_ai_debug_widgets[] = {
|
||||
};
|
||||
|
||||
/** Window definition for the AI debug window. */
|
||||
static const WindowDesc _ai_debug_desc(
|
||||
WDP_AUTO, 600, 450,
|
||||
static WindowDesc _ai_debug_desc(
|
||||
WDP_AUTO, "script_debug", 600, 450,
|
||||
WC_AI_DEBUG, WC_NONE,
|
||||
0,
|
||||
_nested_ai_debug_widgets, lengthof(_nested_ai_debug_widgets)
|
||||
_nested_ai_debug_widgets, lengthof(_nested_ai_debug_widgets),
|
||||
&AIDebugWindow::hotkeys
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -1523,18 +1513,6 @@ Window *ShowAIDebugWindow(CompanyID show_company)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
* Handler for global AI debug window hotkeys.
|
||||
*/
|
||||
EventState AIDebugGlobalHotkeys(uint16 key, uint16 keycode)
|
||||
{
|
||||
int num = CheckHotkeyMatch<AIDebugWindow>(_aidebug_hotkeys, keycode, NULL, true);
|
||||
if (num == -1) return ES_NOT_HANDLED;
|
||||
Window *w = ShowAIDebugWindow(INVALID_COMPANY);
|
||||
if (w == NULL) return ES_NOT_HANDLED;
|
||||
return w->OnKeyPress(key, keycode);
|
||||
}
|
||||
|
||||
/**
|
||||
* Reset the AI windows to their initial state.
|
||||
*/
|
||||
|
@@ -23,7 +23,7 @@
|
||||
*/
|
||||
static bool CheckAPIVersion(const char *api_version)
|
||||
{
|
||||
return strcmp(api_version, "0.7") == 0 || strcmp(api_version, "1.0") == 0 || strcmp(api_version, "1.1") == 0 || strcmp(api_version, "1.2") == 0 || strcmp(api_version, "1.3") == 0;
|
||||
return strcmp(api_version, "0.7") == 0 || strcmp(api_version, "1.0") == 0 || strcmp(api_version, "1.1") == 0 || strcmp(api_version, "1.2") == 0 || strcmp(api_version, "1.3") == 0 || strcmp(api_version, "1.4") == 0;
|
||||
}
|
||||
|
||||
#if defined(WIN32)
|
||||
|
@@ -238,8 +238,17 @@ ScriptInfo *AIInstance::FindLibrary(const char *library, int version)
|
||||
*/
|
||||
void CcAI(const CommandCost &result, TileIndex tile, uint32 p1, uint32 p2)
|
||||
{
|
||||
Company::Get(_current_company)->ai_instance->DoCommandCallback(result, tile, p1, p2);
|
||||
Company::Get(_current_company)->ai_instance->Continue();
|
||||
/*
|
||||
* The company might not exist anymore. Check for this.
|
||||
* The command checks are not useful since this callback
|
||||
* is also called when the command fails, which is does
|
||||
* when the company does not exist anymore.
|
||||
*/
|
||||
const Company *c = Company::GetIfValid(_current_company);
|
||||
if (c == NULL || c->ai_instance == NULL) return;
|
||||
|
||||
c->ai_instance->DoCommandCallback(result, tile, p1, p2);
|
||||
c->ai_instance->Continue();
|
||||
}
|
||||
|
||||
CommandCallback *AIInstance::GetDoCommandCallback()
|
||||
|
@@ -99,6 +99,12 @@ static const SpriteID _aircraft_sprite[] = {
|
||||
0x0EBD, 0x0EC5
|
||||
};
|
||||
|
||||
template <>
|
||||
bool IsValidImageIndex<VEH_AIRCRAFT>(uint8 image_index)
|
||||
{
|
||||
return image_index < lengthof(_aircraft_sprite);
|
||||
}
|
||||
|
||||
/** Helicopter rotor animation states */
|
||||
enum HelicopterRotorStates {
|
||||
HRS_ROTOR_STOPPED,
|
||||
@@ -160,6 +166,7 @@ SpriteID Aircraft::GetImage(Direction direction, EngineImageType image_type) con
|
||||
spritenum = this->GetEngine()->original_image_index;
|
||||
}
|
||||
|
||||
assert(IsValidImageIndex<VEH_AIRCRAFT>(spritenum));
|
||||
return direction + _aircraft_sprite[spritenum];
|
||||
}
|
||||
|
||||
@@ -189,6 +196,7 @@ static SpriteID GetAircraftIcon(EngineID engine, EngineImageType image_type)
|
||||
spritenum = e->original_image_index;
|
||||
}
|
||||
|
||||
assert(IsValidImageIndex<VEH_AIRCRAFT>(spritenum));
|
||||
return DIR_W + _aircraft_sprite[spritenum];
|
||||
}
|
||||
|
||||
@@ -242,7 +250,7 @@ CommandCost CmdBuildAircraft(TileIndex tile, DoCommandFlag flags, const Engine *
|
||||
/* Prevent building aircraft types at places which can't handle them */
|
||||
if (!CanVehicleUseStation(e->index, st)) return CMD_ERROR;
|
||||
|
||||
/* Make sure all aircraft end up in the first tile of the hanger. */
|
||||
/* Make sure all aircraft end up in the first tile of the hangar. */
|
||||
tile = st->airport.GetHangarTile(st->airport.GetHangarNum(tile));
|
||||
|
||||
if (flags & DC_EXEC) {
|
||||
@@ -271,13 +279,16 @@ CommandCost CmdBuildAircraft(TileIndex tile, DoCommandFlag flags, const Engine *
|
||||
v->spritenum = avi->image_index;
|
||||
|
||||
v->cargo_cap = avi->passenger_capacity;
|
||||
v->refit_cap = 0;
|
||||
u->cargo_cap = avi->mail_capacity;
|
||||
u->refit_cap = 0;
|
||||
|
||||
v->cargo_type = e->GetDefaultCargoType();
|
||||
u->cargo_type = CT_MAIL;
|
||||
|
||||
v->name = NULL;
|
||||
v->last_station_visited = INVALID_STATION;
|
||||
v->last_loading_station = INVALID_STATION;
|
||||
|
||||
v->acceleration = avi->acceleration;
|
||||
v->engine_type = e->index;
|
||||
@@ -598,7 +609,14 @@ enum AircraftSpeedLimits {
|
||||
*/
|
||||
static int UpdateAircraftSpeed(Aircraft *v, uint speed_limit = SPEED_LIMIT_NONE, bool hard_limit = true)
|
||||
{
|
||||
uint spd = v->acceleration * 16;
|
||||
/**
|
||||
* 'acceleration' has the unit 3/8 mph/tick. This function is called twice per tick.
|
||||
* So the speed amount we need to accelerate is:
|
||||
* acceleration * 3 / 16 mph = acceleration * 3 / 16 * 16 / 10 km-ish/h
|
||||
* = acceleration * 3 / 10 * 256 * (km-ish/h / 256)
|
||||
* ~ acceleration * 77 (km-ish/h / 256)
|
||||
*/
|
||||
uint spd = v->acceleration * 77;
|
||||
byte t;
|
||||
|
||||
/* Adjust speed limits by plane speed factor to prevent taxiing
|
||||
@@ -1014,7 +1032,7 @@ static bool HandleCrashedAircraft(Aircraft *v)
|
||||
|
||||
/* make aircraft crash down to the ground */
|
||||
if (v->crashed_counter < 500 && st == NULL && ((v->crashed_counter % 3) == 0) ) {
|
||||
int z = GetSlopePixelZ(v->x_pos, v->y_pos);
|
||||
int z = GetSlopePixelZ(Clamp(v->x_pos, 0, MapMaxX() * TILE_SIZE), Clamp(v->y_pos, 0, MapMaxY() * TILE_SIZE));
|
||||
v->z_pos -= 1;
|
||||
if (v->z_pos == z) {
|
||||
v->crashed_counter = 500;
|
||||
@@ -1059,7 +1077,12 @@ static bool HandleCrashedAircraft(Aircraft *v)
|
||||
}
|
||||
|
||||
|
||||
static void HandleAircraftSmoke(Aircraft *v)
|
||||
/**
|
||||
* Handle smoke of broken aircraft.
|
||||
* @param v Aircraft
|
||||
* @param mode Is this the non-first call for this vehicle in this tick?
|
||||
*/
|
||||
static void HandleAircraftSmoke(Aircraft *v, bool mode)
|
||||
{
|
||||
static const struct {
|
||||
int8 x;
|
||||
@@ -1077,13 +1100,15 @@ static void HandleAircraftSmoke(Aircraft *v)
|
||||
|
||||
if (!(v->vehstatus & VS_AIRCRAFT_BROKEN)) return;
|
||||
|
||||
/* Stop smoking when landed */
|
||||
if (v->cur_speed < 10) {
|
||||
v->vehstatus &= ~VS_AIRCRAFT_BROKEN;
|
||||
v->breakdown_ctr = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
if ((v->tick_counter & 0x1F) == 0) {
|
||||
/* Spawn effect et most once per Tick, i.e. !mode */
|
||||
if (!mode && (v->tick_counter & 0x0F) == 0) {
|
||||
CreateEffectVehicleRel(v,
|
||||
smoke_pos[v->direction].x,
|
||||
smoke_pos[v->direction].y,
|
||||
@@ -1136,7 +1161,8 @@ TileIndex Aircraft::GetOrderStationLocation(StationID station)
|
||||
|
||||
void Aircraft::MarkDirty()
|
||||
{
|
||||
this->UpdateViewport(false, false);
|
||||
this->colourmap = PAL_NONE;
|
||||
this->UpdateViewport(true, false);
|
||||
if (this->subtype == AIR_HELICOPTER) this->Next()->Next()->cur_image = GetRotorImage(this, EIT_ON_MAP);
|
||||
}
|
||||
|
||||
@@ -1160,8 +1186,8 @@ static void CrashAirplane(Aircraft *v)
|
||||
uint pass = v->Crash();
|
||||
SetDParam(0, pass);
|
||||
|
||||
v->cargo.Truncate(0);
|
||||
v->Next()->cargo.Truncate(0);
|
||||
v->cargo.Truncate();
|
||||
v->Next()->cargo.Truncate();
|
||||
const Station *st = GetTargetAirportIfValid(v);
|
||||
StringID newsitem;
|
||||
if (st == NULL) {
|
||||
@@ -1205,7 +1231,7 @@ static void MaybeCrashAirplane(Aircraft *v)
|
||||
/* Crash the airplane. Remove all goods stored at the station. */
|
||||
for (CargoID i = 0; i < NUM_CARGO; i++) {
|
||||
st->goods[i].rating = 1;
|
||||
st->goods[i].cargo.Truncate(0);
|
||||
st->goods[i].cargo.Truncate();
|
||||
}
|
||||
|
||||
CrashAirplane(v);
|
||||
@@ -1886,8 +1912,6 @@ static void AircraftHandleDestTooFar(Aircraft *v, bool too_far)
|
||||
|
||||
static bool AircraftEventHandler(Aircraft *v, int loop)
|
||||
{
|
||||
v->tick_counter++;
|
||||
|
||||
if (v->vehstatus & VS_CRASHED) {
|
||||
return HandleCrashedAircraft(v);
|
||||
}
|
||||
@@ -1896,7 +1920,7 @@ static bool AircraftEventHandler(Aircraft *v, int loop)
|
||||
|
||||
v->HandleBreakdown();
|
||||
|
||||
HandleAircraftSmoke(v);
|
||||
HandleAircraftSmoke(v, loop != 0);
|
||||
ProcessOrders(v);
|
||||
v->HandleLoading(loop != 0);
|
||||
|
||||
@@ -1926,6 +1950,8 @@ bool Aircraft::Tick()
|
||||
{
|
||||
if (!this->IsNormalAircraft()) return true;
|
||||
|
||||
this->tick_counter++;
|
||||
|
||||
if (!(this->vehstatus & VS_STOPPED)) this->running_ticks++;
|
||||
|
||||
if (this->subtype == AIR_HELICOPTER) HelicopterTickHandler(this);
|
||||
|
@@ -39,7 +39,7 @@ void DrawAircraftDetails(const Aircraft *v, int left, int right, int y)
|
||||
SetDParam(0, u->engine_type);
|
||||
SetDParam(1, u->build_year);
|
||||
SetDParam(2, u->value);
|
||||
DrawString(left, right, y, STR_VEHICLE_INFO_BUILT_VALUE, TC_FROMSTRING, SA_LEFT | SA_STRIP);
|
||||
DrawString(left, right, y, STR_VEHICLE_INFO_BUILT_VALUE);
|
||||
|
||||
SetDParam(0, u->cargo_type);
|
||||
SetDParam(1, u->cargo_cap);
|
||||
@@ -50,7 +50,7 @@ void DrawAircraftDetails(const Aircraft *v, int left, int right, int y)
|
||||
}
|
||||
|
||||
if (u->cargo_cap != 0) {
|
||||
uint cargo_count = u->cargo.Count();
|
||||
uint cargo_count = u->cargo.StoredCount();
|
||||
|
||||
y_offset += FONT_HEIGHT_NORMAL + 1;
|
||||
if (cargo_count != 0) {
|
||||
|
@@ -20,7 +20,9 @@ static const uint MAX_TERMINALS = 8; ///< maximum number
|
||||
static const uint MAX_HELIPADS = 3; ///< maximum number of helipads per airport
|
||||
static const uint MAX_ELEMENTS = 255; ///< maximum number of aircraft positions at airport
|
||||
|
||||
static const uint NUM_AIRPORTTILES = 256; ///< total number of airport tiles
|
||||
static const uint NUM_AIRPORTTILES_PER_GRF = 255; ///< Number of airport tiles per NewGRF; limited to 255 to allow extending Action3 with an extended byte later on.
|
||||
|
||||
static const uint NUM_AIRPORTTILES = 256; ///< Total number of airport tiles.
|
||||
static const uint NEW_AIRPORTTILE_OFFSET = 74; ///< offset of first newgrf airport tile
|
||||
static const uint INVALID_AIRPORTTILE = NUM_AIRPORTTILES; ///< id for an invalid airport tile
|
||||
|
||||
@@ -37,7 +39,8 @@ enum AirportTypes {
|
||||
AT_HELISTATION = 8, ///< Heli station airport.
|
||||
AT_OILRIG = 9, ///< Oilrig airport.
|
||||
NEW_AIRPORT_OFFSET = 10, ///< Number of the first newgrf airport.
|
||||
NUM_AIRPORTS = 128, ///< Maximal number of airports.
|
||||
NUM_AIRPORTS_PER_GRF = 128, ///< Maximal number of airports per NewGRF.
|
||||
NUM_AIRPORTS = 128, ///< Maximal number of airports in total.
|
||||
AT_INVALID = 254, ///< Invalid airport.
|
||||
AT_DUMMY = 255, ///< Dummy airport.
|
||||
};
|
||||
|
@@ -27,6 +27,7 @@
|
||||
#include "core/geometry_func.hpp"
|
||||
#include "hotkeys.h"
|
||||
#include "vehicle_func.h"
|
||||
#include "gui.h"
|
||||
|
||||
#include "widgets/airport_widget.h"
|
||||
|
||||
@@ -43,7 +44,7 @@ void CcBuildAirport(const CommandCost &result, TileIndex tile, uint32 p1, uint32
|
||||
{
|
||||
if (result.Failed()) return;
|
||||
|
||||
if (_settings_client.sound.confirm) SndPlayTileFx(SND_1F_SPLAT, tile);
|
||||
if (_settings_client.sound.confirm) SndPlayTileFx(SND_1F_SPLAT_OTHER, tile);
|
||||
if (!_settings_client.gui.persistent_buildingtools) ResetObjectToPlace();
|
||||
}
|
||||
|
||||
@@ -67,9 +68,9 @@ static void PlaceAirport(TileIndex tile)
|
||||
struct BuildAirToolbarWindow : Window {
|
||||
int last_user_action; // Last started user action.
|
||||
|
||||
BuildAirToolbarWindow(const WindowDesc *desc, WindowNumber window_number) : Window()
|
||||
BuildAirToolbarWindow(WindowDesc *desc, WindowNumber window_number) : Window(desc)
|
||||
{
|
||||
this->InitNested(desc, window_number);
|
||||
this->InitNested(window_number);
|
||||
if (_settings_client.gui.link_terraform_toolbar) ShowTerraformToolbar(this);
|
||||
this->last_user_action = WIDGET_LIST_END;
|
||||
}
|
||||
@@ -99,14 +100,6 @@ struct BuildAirToolbarWindow : Window {
|
||||
}
|
||||
|
||||
|
||||
virtual EventState OnKeyPress(uint16 key, uint16 keycode)
|
||||
{
|
||||
int num = CheckHotkeyMatch(airtoolbar_hotkeys, keycode, this);
|
||||
if (num == -1) return ES_NOT_HANDLED;
|
||||
this->OnClick(Point(), num, 1);
|
||||
return ES_HANDLED;
|
||||
}
|
||||
|
||||
virtual void OnPlaceObject(Point pt, TileIndex tile)
|
||||
{
|
||||
switch (this->last_user_action) {
|
||||
@@ -142,15 +135,28 @@ struct BuildAirToolbarWindow : Window {
|
||||
DeleteWindowById(WC_SELECT_STATION, 0);
|
||||
}
|
||||
|
||||
static Hotkey<BuildAirToolbarWindow> airtoolbar_hotkeys[];
|
||||
static HotkeyList hotkeys;
|
||||
};
|
||||
|
||||
Hotkey<BuildAirToolbarWindow> BuildAirToolbarWindow::airtoolbar_hotkeys[] = {
|
||||
Hotkey<BuildAirToolbarWindow>('1', "airport", WID_AT_AIRPORT),
|
||||
Hotkey<BuildAirToolbarWindow>('2', "demolish", WID_AT_DEMOLISH),
|
||||
HOTKEY_LIST_END(BuildAirToolbarWindow)
|
||||
/**
|
||||
* Handler for global hotkeys of the BuildAirToolbarWindow.
|
||||
* @param hotkey Hotkey
|
||||
* @return ES_HANDLED if hotkey was accepted.
|
||||
*/
|
||||
static EventState AirportToolbarGlobalHotkeys(int hotkey)
|
||||
{
|
||||
if (_game_mode != GM_NORMAL || !CanBuildVehicleInfrastructure(VEH_AIRCRAFT)) return ES_NOT_HANDLED;
|
||||
Window *w = ShowBuildAirToolbar();
|
||||
if (w == NULL) return ES_NOT_HANDLED;
|
||||
return w->OnHotkey(hotkey);
|
||||
}
|
||||
|
||||
static Hotkey airtoolbar_hotkeys[] = {
|
||||
Hotkey('1', "airport", WID_AT_AIRPORT),
|
||||
Hotkey('2', "demolish", WID_AT_DEMOLISH),
|
||||
HOTKEY_LIST_END
|
||||
};
|
||||
Hotkey<BuildAirToolbarWindow> *_airtoolbar_hotkeys = BuildAirToolbarWindow::airtoolbar_hotkeys;
|
||||
HotkeyList BuildAirToolbarWindow::hotkeys("airtoolbar", airtoolbar_hotkeys, AirportToolbarGlobalHotkeys);
|
||||
|
||||
static const NWidgetPart _nested_air_toolbar_widgets[] = {
|
||||
NWidget(NWID_HORIZONTAL),
|
||||
@@ -165,11 +171,12 @@ static const NWidgetPart _nested_air_toolbar_widgets[] = {
|
||||
EndContainer(),
|
||||
};
|
||||
|
||||
static const WindowDesc _air_toolbar_desc(
|
||||
WDP_ALIGN_TOOLBAR, 0, 0,
|
||||
static WindowDesc _air_toolbar_desc(
|
||||
WDP_ALIGN_TOOLBAR, "toolbar_air", 0, 0,
|
||||
WC_BUILD_TOOLBAR, WC_NONE,
|
||||
WDF_CONSTRUCTION,
|
||||
_nested_air_toolbar_widgets, lengthof(_nested_air_toolbar_widgets)
|
||||
_nested_air_toolbar_widgets, lengthof(_nested_air_toolbar_widgets),
|
||||
&BuildAirToolbarWindow::hotkeys
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -187,16 +194,6 @@ Window *ShowBuildAirToolbar()
|
||||
return AllocateWindowDescFront<BuildAirToolbarWindow>(&_air_toolbar_desc, TRANSPORT_AIR);
|
||||
}
|
||||
|
||||
EventState AirportToolbarGlobalHotkeys(uint16 key, uint16 keycode)
|
||||
{
|
||||
if (!CanBuildVehicleInfrastructure(VEH_AIRCRAFT)) return ES_NOT_HANDLED;
|
||||
int num = CheckHotkeyMatch<BuildAirToolbarWindow>(_airtoolbar_hotkeys, keycode, NULL, true);
|
||||
if (num == -1) return ES_NOT_HANDLED;
|
||||
Window *w = ShowBuildAirToolbar();
|
||||
if (w == NULL) return ES_NOT_HANDLED;
|
||||
return w->OnKeyPress(key, keycode);
|
||||
}
|
||||
|
||||
class BuildAirportWindow : public PickerWindowBase {
|
||||
SpriteID preview_sprite; ///< Cached airport preview sprite.
|
||||
int line_height;
|
||||
@@ -208,22 +205,22 @@ class BuildAirportWindow : public PickerWindowBase {
|
||||
DropDownList *list = new DropDownList();
|
||||
|
||||
for (uint i = 0; i < AirportClass::GetClassCount(); i++) {
|
||||
list->push_back(new DropDownListStringItem(AirportClass::Get((AirportClassID)i)->name, i, false));
|
||||
*list->Append() = new DropDownListStringItem(AirportClass::Get((AirportClassID)i)->name, i, false);
|
||||
}
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
public:
|
||||
BuildAirportWindow(const WindowDesc *desc, Window *parent) : PickerWindowBase(parent)
|
||||
BuildAirportWindow(WindowDesc *desc, Window *parent) : PickerWindowBase(desc, parent)
|
||||
{
|
||||
this->CreateNestedTree(desc);
|
||||
this->CreateNestedTree();
|
||||
|
||||
this->vscroll = this->GetScrollbar(WID_AP_SCROLLBAR);
|
||||
this->vscroll->SetCapacity(5);
|
||||
this->vscroll->SetPosition(0);
|
||||
|
||||
this->FinishInitNested(desc, TRANSPORT_AIR);
|
||||
this->FinishInitNested(TRANSPORT_AIR);
|
||||
|
||||
this->SetWidgetLoweredState(WID_AP_BTN_DONTHILIGHT, !_settings_client.gui.station_show_coverage);
|
||||
this->SetWidgetLoweredState(WID_AP_BTN_DOHILIGHT, _settings_client.gui.station_show_coverage);
|
||||
@@ -287,7 +284,7 @@ public:
|
||||
}
|
||||
|
||||
this->line_height = FONT_HEIGHT_NORMAL + WD_MATRIX_TOP + WD_MATRIX_BOTTOM;
|
||||
size->height = this->vscroll->GetCapacity() * this->line_height;
|
||||
size->height = 5 * this->line_height;
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -338,7 +335,7 @@ public:
|
||||
if (!as->IsAvailable()) {
|
||||
GfxFillRect(r.left + 1, y + 1, r.right - 1, y + this->line_height - 2, PC_BLACK, FILLRECT_CHECKER);
|
||||
}
|
||||
DrawString(r.left + WD_MATRIX_LEFT, r.right + WD_MATRIX_RIGHT, y + WD_MATRIX_TOP, as->name, ((int)i == _selected_airport_index) ? TC_WHITE : TC_BLACK);
|
||||
DrawString(r.left + WD_MATRIX_LEFT, r.right - WD_MATRIX_RIGHT, y + WD_MATRIX_TOP, as->name, ((int)i == _selected_airport_index) ? TC_WHITE : TC_BLACK);
|
||||
y += this->line_height;
|
||||
}
|
||||
break;
|
||||
@@ -391,8 +388,10 @@ public:
|
||||
top = DrawStationCoverageAreaText(panel_nwi->pos_x + WD_FRAMERECT_LEFT, right - WD_FRAMERECT_RIGHT, top, SCT_ALL, rad, true) + WD_PAR_VSEP_NORMAL;
|
||||
}
|
||||
|
||||
/* Resize background if the text is not equally long as the window. */
|
||||
if (top > bottom || (top < bottom && panel_nwi->current_y > panel_nwi->smallest_y)) {
|
||||
/* Resize background if the window is too small.
|
||||
* Never make the window smaller to avoid oscillating if the size change affects the acceptance.
|
||||
* (This is the case, if making the window bigger moves the mouse into the window.) */
|
||||
if (top > bottom) {
|
||||
ResizeWindow(this, 0, top - bottom);
|
||||
}
|
||||
}
|
||||
@@ -525,8 +524,9 @@ static const NWidgetPart _nested_build_airport_widgets[] = {
|
||||
NWidget(WWT_PANEL, COLOUR_DARK_GREEN), SetFill(1, 0), SetPIP(2, 0, 2),
|
||||
NWidget(WWT_LABEL, COLOUR_DARK_GREEN), SetDataTip(STR_STATION_BUILD_AIRPORT_CLASS_LABEL, STR_NULL), SetFill(1, 0),
|
||||
NWidget(WWT_DROPDOWN, COLOUR_GREY, WID_AP_CLASS_DROPDOWN), SetFill(1, 0), SetDataTip(STR_BLACK_STRING, STR_STATION_BUILD_AIRPORT_TOOLTIP),
|
||||
NWidget(WWT_EMPTY, COLOUR_DARK_GREEN, WID_AP_AIRPORT_SPRITE), SetFill(1, 0),
|
||||
NWidget(NWID_HORIZONTAL),
|
||||
NWidget(WWT_MATRIX, COLOUR_GREY, WID_AP_AIRPORT_LIST), SetFill(1, 0), SetDataTip(0x501, STR_STATION_BUILD_AIRPORT_TOOLTIP), SetScrollbar(WID_AP_SCROLLBAR),
|
||||
NWidget(WWT_MATRIX, COLOUR_GREY, WID_AP_AIRPORT_LIST), SetFill(1, 0), SetMatrixDataTip(1, 5, STR_STATION_BUILD_AIRPORT_TOOLTIP), SetScrollbar(WID_AP_SCROLLBAR),
|
||||
NWidget(NWID_VSCROLLBAR, COLOUR_GREY, WID_AP_SCROLLBAR),
|
||||
EndContainer(),
|
||||
NWidget(NWID_HORIZONTAL),
|
||||
@@ -534,7 +534,6 @@ static const NWidgetPart _nested_build_airport_widgets[] = {
|
||||
NWidget(WWT_LABEL, COLOUR_GREY, WID_AP_LAYOUT_NUM), SetResize(1, 0), SetFill(1, 0), SetDataTip(STR_BLACK_STRING, STR_NULL),
|
||||
NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_AP_LAYOUT_INCREASE), SetMinimalSize(12, 0), SetDataTip(AWV_INCREASE, STR_NULL),
|
||||
EndContainer(),
|
||||
NWidget(WWT_EMPTY, COLOUR_DARK_GREEN, WID_AP_AIRPORT_SPRITE), SetFill(1, 0),
|
||||
NWidget(WWT_EMPTY, COLOUR_DARK_GREEN, WID_AP_EXTRA_TEXT), SetFill(1, 0), SetMinimalSize(150, 0),
|
||||
EndContainer(),
|
||||
/* Bottom panel. */
|
||||
@@ -554,8 +553,8 @@ static const NWidgetPart _nested_build_airport_widgets[] = {
|
||||
EndContainer(),
|
||||
};
|
||||
|
||||
static const WindowDesc _build_airport_desc(
|
||||
WDP_AUTO, 0, 0,
|
||||
static WindowDesc _build_airport_desc(
|
||||
WDP_AUTO, "build_station_air", 0, 0,
|
||||
WC_BUILD_STATION, WC_BUILD_TOOLBAR,
|
||||
WDF_CONSTRUCTION,
|
||||
_nested_build_airport_widgets, lengthof(_nested_build_airport_widgets)
|
||||
|
@@ -355,6 +355,7 @@ void AddArticulatedParts(Vehicle *first)
|
||||
t->cargo_type = front->cargo_type; // Needed for livery selection
|
||||
t->cargo_cap = 0;
|
||||
}
|
||||
t->refit_cap = 0;
|
||||
|
||||
t->SetArticulatedPart();
|
||||
break;
|
||||
@@ -381,6 +382,7 @@ void AddArticulatedParts(Vehicle *first)
|
||||
rv->cargo_type = front->cargo_type; // Needed for livery selection
|
||||
rv->cargo_cap = 0;
|
||||
}
|
||||
rv->refit_cap = 0;
|
||||
|
||||
rv->SetArticulatedPart();
|
||||
break;
|
||||
|
@@ -91,27 +91,32 @@ bool CheckAutoreplaceValidity(EngineID from, EngineID to, CompanyID company)
|
||||
/**
|
||||
* Check the capacity of all vehicles in a chain and spread cargo if needed.
|
||||
* @param v The vehicle to check.
|
||||
* @pre You can only do this if the consist is not loading or unloading. It
|
||||
* must not carry reserved cargo, nor cargo to be unloaded or transferred.
|
||||
*/
|
||||
void CheckCargoCapacity(Vehicle *v)
|
||||
{
|
||||
assert(v == NULL || v->First() == v);
|
||||
|
||||
for (Vehicle *src = v; src != NULL; src = src->Next()) {
|
||||
assert(src->cargo.TotalCount() == src->cargo.ActionCount(VehicleCargoList::MTA_KEEP));
|
||||
|
||||
/* Do we need to more cargo away? */
|
||||
if (src->cargo.Count() <= src->cargo_cap) continue;
|
||||
if (src->cargo.TotalCount() <= src->cargo_cap) continue;
|
||||
|
||||
/* We need to move a particular amount. Try that on the other vehicles. */
|
||||
uint to_spread = src->cargo.Count() - src->cargo_cap;
|
||||
uint to_spread = src->cargo.TotalCount() - src->cargo_cap;
|
||||
for (Vehicle *dest = v; dest != NULL && to_spread != 0; dest = dest->Next()) {
|
||||
if (dest->cargo.Count() >= dest->cargo_cap || dest->cargo_type != src->cargo_type) continue;
|
||||
assert(dest->cargo.TotalCount() == dest->cargo.ActionCount(VehicleCargoList::MTA_KEEP));
|
||||
if (dest->cargo.TotalCount() >= dest->cargo_cap || dest->cargo_type != src->cargo_type) continue;
|
||||
|
||||
uint amount = min(to_spread, dest->cargo_cap - dest->cargo.Count());
|
||||
src->cargo.MoveTo(&dest->cargo, amount, VehicleCargoList::MTA_UNLOAD, NULL);
|
||||
uint amount = min(to_spread, dest->cargo_cap - dest->cargo.TotalCount());
|
||||
src->cargo.Shift(amount, &dest->cargo);
|
||||
to_spread -= amount;
|
||||
}
|
||||
|
||||
/* Any left-overs will be thrown away, but not their feeder share. */
|
||||
src->cargo.Truncate(src->cargo_cap);
|
||||
if (src->cargo_cap < src->cargo.TotalCount()) src->cargo.Truncate(src->cargo.TotalCount() - src->cargo_cap);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -120,21 +125,26 @@ void CheckCargoCapacity(Vehicle *v)
|
||||
* @param old_veh Old vehicle that will be sold
|
||||
* @param new_head Head of the completely constructed new vehicle chain
|
||||
* @param part_of_chain The vehicle is part of a train
|
||||
* @pre You can only do this if both consists are not loading or unloading.
|
||||
* They must not carry reserved cargo, nor cargo to be unloaded or
|
||||
* transferred.
|
||||
*/
|
||||
static void TransferCargo(Vehicle *old_veh, Vehicle *new_head, bool part_of_chain)
|
||||
{
|
||||
assert(!part_of_chain || new_head->IsPrimaryVehicle());
|
||||
/* Loop through source parts */
|
||||
for (Vehicle *src = old_veh; src != NULL; src = src->Next()) {
|
||||
assert(src->cargo.TotalCount() == src->cargo.ActionCount(VehicleCargoList::MTA_KEEP));
|
||||
if (!part_of_chain && src->type == VEH_TRAIN && src != old_veh && src != Train::From(old_veh)->other_multiheaded_part && !src->IsArticulatedPart()) {
|
||||
/* Skip vehicles, which do not belong to old_veh */
|
||||
src = src->GetLastEnginePart();
|
||||
continue;
|
||||
}
|
||||
if (src->cargo_type >= NUM_CARGO || src->cargo.Count() == 0) continue;
|
||||
if (src->cargo_type >= NUM_CARGO || src->cargo.TotalCount() == 0) continue;
|
||||
|
||||
/* Find free space in the new chain */
|
||||
for (Vehicle *dest = new_head; dest != NULL && src->cargo.Count() > 0; dest = dest->Next()) {
|
||||
for (Vehicle *dest = new_head; dest != NULL && src->cargo.TotalCount() > 0; dest = dest->Next()) {
|
||||
assert(dest->cargo.TotalCount() == dest->cargo.ActionCount(VehicleCargoList::MTA_KEEP));
|
||||
if (!part_of_chain && dest->type == VEH_TRAIN && dest != new_head && dest != Train::From(new_head)->other_multiheaded_part && !dest->IsArticulatedPart()) {
|
||||
/* Skip vehicles, which do not belong to new_head */
|
||||
dest = dest->GetLastEnginePart();
|
||||
@@ -142,15 +152,15 @@ static void TransferCargo(Vehicle *old_veh, Vehicle *new_head, bool part_of_chai
|
||||
}
|
||||
if (dest->cargo_type != src->cargo_type) continue;
|
||||
|
||||
uint amount = min(src->cargo.Count(), dest->cargo_cap - dest->cargo.Count());
|
||||
uint amount = min(src->cargo.TotalCount(), dest->cargo_cap - dest->cargo.TotalCount());
|
||||
if (amount <= 0) continue;
|
||||
|
||||
src->cargo.MoveTo(&dest->cargo, amount, VehicleCargoList::MTA_UNLOAD, NULL);
|
||||
src->cargo.Shift(amount, &dest->cargo);
|
||||
}
|
||||
}
|
||||
|
||||
/* Update train weight etc., the old vehicle will be sold anyway */
|
||||
if (part_of_chain && new_head->type == VEH_TRAIN) Train::From(new_head)->ConsistChanged(true);
|
||||
if (part_of_chain && new_head->type == VEH_TRAIN) Train::From(new_head)->ConsistChanged(CCF_LOADUNLOAD);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -164,10 +164,21 @@ class ReplaceVehicleWindow : public Window {
|
||||
this->engines[1].Clear();
|
||||
this->sel_engine[1] = INVALID_ENGINE;
|
||||
} else {
|
||||
if (this->reset_sel_engine && this->sel_engine[0] != INVALID_ENGINE) {
|
||||
/* Select the current replacement for sel_engine[0]. */
|
||||
const Company *c = Company::Get(_local_company);
|
||||
this->sel_engine[1] = EngineReplacementForCompany(c, this->sel_engine[0], this->sel_group);
|
||||
}
|
||||
/* Regenerate the list on the right. Note: This resets sel_engine[1] to INVALID_ENGINE, if it is no longer available. */
|
||||
this->GenerateReplaceVehList(false);
|
||||
this->vscroll[1]->SetCount(this->engines[1].Length());
|
||||
if (this->reset_sel_engine && this->sel_engine[1] == INVALID_ENGINE && this->engines[1].Length() != 0) {
|
||||
this->sel_engine[1] = this->engines[1][0];
|
||||
if (this->reset_sel_engine && this->sel_engine[1] != INVALID_ENGINE) {
|
||||
int position = 0;
|
||||
for (EngineID *it = this->engines[1].Begin(); it != this->engines[1].End(); ++it) {
|
||||
if (*it == this->sel_engine[1]) break;
|
||||
++position;
|
||||
}
|
||||
this->vscroll[1]->ScrollTowards(position);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -189,7 +200,7 @@ class ReplaceVehicleWindow : public Window {
|
||||
}
|
||||
|
||||
public:
|
||||
ReplaceVehicleWindow(const WindowDesc *desc, VehicleType vehicletype, GroupID id_g) : Window()
|
||||
ReplaceVehicleWindow(WindowDesc *desc, VehicleType vehicletype, GroupID id_g) : Window(desc)
|
||||
{
|
||||
if (vehicletype == VEH_TRAIN) {
|
||||
/* For rail vehicles find the most used vehicle type, which is usually
|
||||
@@ -217,10 +228,10 @@ public:
|
||||
this->sel_engine[0] = INVALID_ENGINE;
|
||||
this->sel_engine[1] = INVALID_ENGINE;
|
||||
|
||||
this->CreateNestedTree(desc);
|
||||
this->CreateNestedTree();
|
||||
this->vscroll[0] = this->GetScrollbar(WID_RV_LEFT_SCROLLBAR);
|
||||
this->vscroll[1] = this->GetScrollbar(WID_RV_RIGHT_SCROLLBAR);
|
||||
this->FinishInitNested(desc, vehicletype);
|
||||
this->FinishInitNested(vehicletype);
|
||||
|
||||
this->owner = _local_company;
|
||||
this->sel_group = id_g;
|
||||
@@ -265,10 +276,8 @@ public:
|
||||
}
|
||||
|
||||
case WID_RV_INFO_TAB: {
|
||||
SetDParam(0, STR_REPLACE_NOT_REPLACING);
|
||||
Dimension d = GetStringBoundingBox(STR_BLACK_STRING);
|
||||
SetDParam(0, STR_REPLACE_NOT_REPLACING_VEHICLE_SELECTED);
|
||||
d = maxdim(d, GetStringBoundingBox(STR_BLACK_STRING));
|
||||
Dimension d = GetStringBoundingBox(STR_REPLACE_NOT_REPLACING);
|
||||
d = maxdim(d, GetStringBoundingBox(STR_REPLACE_NOT_REPLACING_VEHICLE_SELECTED));
|
||||
d.width += WD_FRAMETEXT_LEFT + WD_FRAMETEXT_RIGHT;
|
||||
d.height += WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM;
|
||||
*size = maxdim(*size, d);
|
||||
@@ -340,20 +349,21 @@ public:
|
||||
switch (widget) {
|
||||
case WID_RV_INFO_TAB: {
|
||||
const Company *c = Company::Get(_local_company);
|
||||
StringID str;
|
||||
if (this->sel_engine[0] != INVALID_ENGINE) {
|
||||
if (!EngineHasReplacementForCompany(c, this->sel_engine[0], this->sel_group)) {
|
||||
SetDParam(0, STR_REPLACE_NOT_REPLACING);
|
||||
str = STR_REPLACE_NOT_REPLACING;
|
||||
} else {
|
||||
bool when_old = false;
|
||||
EngineID e = EngineReplacementForCompany(c, this->sel_engine[0], this->sel_group, &when_old);
|
||||
SetDParam(0, when_old ? STR_REPLACE_REPLACING_WHEN_OLD : STR_ENGINE_NAME);
|
||||
SetDParam(1, e);
|
||||
str = when_old ? STR_REPLACE_REPLACING_WHEN_OLD : STR_ENGINE_NAME;
|
||||
SetDParam(0, e);
|
||||
}
|
||||
} else {
|
||||
SetDParam(0, STR_REPLACE_NOT_REPLACING_VEHICLE_SELECTED);
|
||||
str = STR_REPLACE_NOT_REPLACING_VEHICLE_SELECTED;
|
||||
}
|
||||
|
||||
DrawString(r.left + WD_FRAMETEXT_LEFT, r.right - WD_FRAMETEXT_RIGHT, r.top + WD_FRAMERECT_TOP, STR_BLACK_STRING, TC_FROMSTRING, SA_HOR_CENTER);
|
||||
DrawString(r.left + WD_FRAMETEXT_LEFT, r.right - WD_FRAMETEXT_RIGHT, r.top + WD_FRAMERECT_TOP, str, TC_BLACK, SA_HOR_CENTER);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -509,9 +519,6 @@ public:
|
||||
{
|
||||
this->vscroll[0]->SetCapacityFromWidget(this, WID_RV_LEFT_MATRIX);
|
||||
this->vscroll[1]->SetCapacityFromWidget(this, WID_RV_RIGHT_MATRIX);
|
||||
|
||||
this->GetWidget<NWidgetCore>(WID_RV_LEFT_MATRIX)->widget_data =
|
||||
this->GetWidget<NWidgetCore>(WID_RV_RIGHT_MATRIX)->widget_data = (this->vscroll[0]->GetCapacity() << MAT_ROW_START) + (1 << MAT_COL_START);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -535,12 +542,13 @@ static const NWidgetPart _nested_replace_rail_vehicle_widgets[] = {
|
||||
NWidget(WWT_CLOSEBOX, COLOUR_GREY),
|
||||
NWidget(WWT_CAPTION, COLOUR_GREY, WID_RV_CAPTION), SetDataTip(STR_REPLACE_VEHICLES_WHITE, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
|
||||
NWidget(WWT_SHADEBOX, COLOUR_GREY),
|
||||
NWidget(WWT_DEFSIZEBOX, COLOUR_GREY),
|
||||
NWidget(WWT_STICKYBOX, COLOUR_GREY),
|
||||
EndContainer(),
|
||||
NWidget(NWID_HORIZONTAL, NC_EQUALSIZE),
|
||||
NWidget(WWT_MATRIX, COLOUR_GREY, WID_RV_LEFT_MATRIX), SetMinimalSize(216, 0), SetFill(1, 1), SetDataTip(0x1, STR_REPLACE_HELP_LEFT_ARRAY), SetResize(1, 1), SetScrollbar(WID_RV_LEFT_SCROLLBAR),
|
||||
NWidget(WWT_MATRIX, COLOUR_GREY, WID_RV_LEFT_MATRIX), SetMinimalSize(216, 0), SetFill(1, 1), SetMatrixDataTip(1, 0, STR_REPLACE_HELP_LEFT_ARRAY), SetResize(1, 1), SetScrollbar(WID_RV_LEFT_SCROLLBAR),
|
||||
NWidget(NWID_VSCROLLBAR, COLOUR_GREY, WID_RV_LEFT_SCROLLBAR),
|
||||
NWidget(WWT_MATRIX, COLOUR_GREY, WID_RV_RIGHT_MATRIX), SetMinimalSize(216, 0), SetFill(1, 1), SetDataTip(0x1, STR_REPLACE_HELP_RIGHT_ARRAY), SetResize(1, 1), SetScrollbar(WID_RV_RIGHT_SCROLLBAR),
|
||||
NWidget(WWT_MATRIX, COLOUR_GREY, WID_RV_RIGHT_MATRIX), SetMinimalSize(216, 0), SetFill(1, 1), SetMatrixDataTip(1, 0, STR_REPLACE_HELP_RIGHT_ARRAY), SetResize(1, 1), SetScrollbar(WID_RV_RIGHT_SCROLLBAR),
|
||||
NWidget(NWID_VSCROLLBAR, COLOUR_GREY, WID_RV_RIGHT_SCROLLBAR),
|
||||
EndContainer(),
|
||||
NWidget(NWID_HORIZONTAL, NC_EQUALSIZE),
|
||||
@@ -563,8 +571,8 @@ static const NWidgetPart _nested_replace_rail_vehicle_widgets[] = {
|
||||
EndContainer(),
|
||||
};
|
||||
|
||||
static const WindowDesc _replace_rail_vehicle_desc(
|
||||
WDP_AUTO, 500, 140,
|
||||
static WindowDesc _replace_rail_vehicle_desc(
|
||||
WDP_AUTO, "replace_vehicle_train", 500, 140,
|
||||
WC_REPLACE_VEHICLE, WC_NONE,
|
||||
WDF_CONSTRUCTION,
|
||||
_nested_replace_rail_vehicle_widgets, lengthof(_nested_replace_rail_vehicle_widgets)
|
||||
@@ -575,12 +583,13 @@ static const NWidgetPart _nested_replace_vehicle_widgets[] = {
|
||||
NWidget(WWT_CLOSEBOX, COLOUR_GREY),
|
||||
NWidget(WWT_CAPTION, COLOUR_GREY, WID_RV_CAPTION), SetMinimalSize(433, 14), SetDataTip(STR_REPLACE_VEHICLES_WHITE, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
|
||||
NWidget(WWT_SHADEBOX, COLOUR_GREY),
|
||||
NWidget(WWT_DEFSIZEBOX, COLOUR_GREY),
|
||||
NWidget(WWT_STICKYBOX, COLOUR_GREY),
|
||||
EndContainer(),
|
||||
NWidget(NWID_HORIZONTAL, NC_EQUALSIZE),
|
||||
NWidget(WWT_MATRIX, COLOUR_GREY, WID_RV_LEFT_MATRIX), SetMinimalSize(216, 0), SetFill(1, 1), SetDataTip(0x1, STR_REPLACE_HELP_LEFT_ARRAY), SetResize(1, 1), SetScrollbar(WID_RV_LEFT_SCROLLBAR),
|
||||
NWidget(WWT_MATRIX, COLOUR_GREY, WID_RV_LEFT_MATRIX), SetMinimalSize(216, 0), SetFill(1, 1), SetMatrixDataTip(1, 0, STR_REPLACE_HELP_LEFT_ARRAY), SetResize(1, 1), SetScrollbar(WID_RV_LEFT_SCROLLBAR),
|
||||
NWidget(NWID_VSCROLLBAR, COLOUR_GREY, WID_RV_LEFT_SCROLLBAR),
|
||||
NWidget(WWT_MATRIX, COLOUR_GREY, WID_RV_RIGHT_MATRIX), SetMinimalSize(216, 0), SetFill(1, 1), SetDataTip(0x1, STR_REPLACE_HELP_RIGHT_ARRAY), SetResize(1, 1), SetScrollbar(WID_RV_RIGHT_SCROLLBAR),
|
||||
NWidget(WWT_MATRIX, COLOUR_GREY, WID_RV_RIGHT_MATRIX), SetMinimalSize(216, 0), SetFill(1, 1), SetMatrixDataTip(1, 0, STR_REPLACE_HELP_RIGHT_ARRAY), SetResize(1, 1), SetScrollbar(WID_RV_RIGHT_SCROLLBAR),
|
||||
NWidget(NWID_VSCROLLBAR, COLOUR_GREY, WID_RV_RIGHT_SCROLLBAR),
|
||||
EndContainer(),
|
||||
NWidget(NWID_HORIZONTAL, NC_EQUALSIZE),
|
||||
@@ -595,8 +604,8 @@ static const NWidgetPart _nested_replace_vehicle_widgets[] = {
|
||||
EndContainer(),
|
||||
};
|
||||
|
||||
static const WindowDesc _replace_vehicle_desc(
|
||||
WDP_AUTO, 456, 118,
|
||||
static WindowDesc _replace_vehicle_desc(
|
||||
WDP_AUTO, "replace_vehicle", 456, 118,
|
||||
WC_REPLACE_VEHICLE, WC_NONE,
|
||||
WDF_CONSTRUCTION,
|
||||
_nested_replace_vehicle_widgets, lengthof(_nested_replace_vehicle_widgets)
|
||||
|
@@ -100,7 +100,7 @@ bool BaseSet<T, Tnum_files, Tsearch_in_tars>::FillSetDetails(IniFile *ini, const
|
||||
|
||||
/* Then find the MD5 checksum */
|
||||
item = md5s->GetItem(filename, false);
|
||||
if (item == NULL) {
|
||||
if (item == NULL || item->value == NULL) {
|
||||
DEBUG(grf, 0, "No MD5 checksum specified for: %s (in %s)", filename, full_filename);
|
||||
return false;
|
||||
}
|
||||
@@ -125,7 +125,7 @@ bool BaseSet<T, Tnum_files, Tsearch_in_tars>::FillSetDetails(IniFile *ini, const
|
||||
}
|
||||
|
||||
/* Then find the warning message when the file's missing */
|
||||
item = filename == NULL ? NULL : origin->GetItem(filename, false);
|
||||
item = origin->GetItem(filename, false);
|
||||
if (item == NULL) item = origin->GetItem("default", false);
|
||||
if (item == NULL) {
|
||||
DEBUG(grf, 1, "No origin warning message specified for: %s", filename);
|
||||
|
@@ -103,7 +103,7 @@ struct BaseStation : StationPool::PoolItem<&_station_pool> {
|
||||
* @param available will return false if ever the variable asked for does not exist
|
||||
* @return the value stored in the corresponding variable
|
||||
*/
|
||||
virtual uint32 GetNewGRFVariable(const struct ResolverObject *object, byte variable, byte parameter, bool *available) const = 0;
|
||||
virtual uint32 GetNewGRFVariable(const struct ResolverObject &object, byte variable, byte parameter, bool *available) const = 0;
|
||||
|
||||
/**
|
||||
* Update the coordinated of the sign (as shown in the viewport).
|
||||
|
@@ -133,6 +133,46 @@ inline void Blitter_32bppAnim::Draw(const Blitter::BlitterParams *bp, ZoomLevel
|
||||
}
|
||||
break;
|
||||
|
||||
case BM_CRASH_REMAP:
|
||||
if (src_px->a == 255) {
|
||||
do {
|
||||
uint m = *src_n;
|
||||
if (m == 0) {
|
||||
uint8 g = MakeDark(src_px->r, src_px->g, src_px->b);
|
||||
*dst = ComposeColourRGBA(g, g, g, src_px->a, *dst);
|
||||
*anim = 0;
|
||||
} else {
|
||||
uint r = remap[GB(m, 0, 8)];
|
||||
*anim = r | (m & 0xFF00);
|
||||
if (r != 0) *dst = this->AdjustBrightness(this->LookupColourInPalette(r), GB(m, 8, 8));
|
||||
}
|
||||
anim++;
|
||||
dst++;
|
||||
src_px++;
|
||||
src_n++;
|
||||
} while (--n != 0);
|
||||
} else {
|
||||
do {
|
||||
uint m = *src_n;
|
||||
if (m == 0) {
|
||||
if (src_px->a != 0) {
|
||||
uint8 g = MakeDark(src_px->r, src_px->g, src_px->b);
|
||||
*dst = ComposeColourRGBA(g, g, g, src_px->a, *dst);
|
||||
*anim = 0;
|
||||
}
|
||||
} else {
|
||||
uint r = remap[GB(m, 0, 8)];
|
||||
*anim = 0;
|
||||
if (r != 0) *dst = ComposeColourPANoCheck(this->AdjustBrightness(this->LookupColourInPalette(r), GB(m, 8, 8)), src_px->a, *dst);
|
||||
}
|
||||
anim++;
|
||||
dst++;
|
||||
src_px++;
|
||||
src_n++;
|
||||
} while (--n != 0);
|
||||
}
|
||||
break;
|
||||
|
||||
case BM_TRANSPARENT:
|
||||
/* TODO -- We make an assumption here that the remap in fact is transparency, not some colour.
|
||||
* This is never a problem with the code we produce, but newgrfs can make it fail... or at least:
|
||||
@@ -208,6 +248,7 @@ void Blitter_32bppAnim::Draw(Blitter::BlitterParams *bp, BlitterMode mode, ZoomL
|
||||
case BM_NORMAL: Draw<BM_NORMAL> (bp, zoom); return;
|
||||
case BM_COLOUR_REMAP: Draw<BM_COLOUR_REMAP>(bp, zoom); return;
|
||||
case BM_TRANSPARENT: Draw<BM_TRANSPARENT> (bp, zoom); return;
|
||||
case BM_CRASH_REMAP: Draw<BM_CRASH_REMAP> (bp, zoom); return;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -439,7 +480,7 @@ void Blitter_32bppAnim::PaletteAnimate(const Palette &palette)
|
||||
}
|
||||
|
||||
/* Make sure the backend redraws the whole screen */
|
||||
_video_driver->MakeDirty(0, 0, _screen.width, _screen.height);
|
||||
VideoDriver::GetInstance()->MakeDirty(0, 0, _screen.width, _screen.height);
|
||||
}
|
||||
|
||||
Blitter::PaletteAnimation Blitter_32bppAnim::UsePaletteAnimation()
|
||||
|
@@ -15,8 +15,8 @@
|
||||
#include "32bpp_optimized.hpp"
|
||||
|
||||
/** The optimised 32 bpp blitter with palette animation. */
|
||||
class Blitter_32bppAnim FINAL : public Blitter_32bppOptimized {
|
||||
private:
|
||||
class Blitter_32bppAnim : public Blitter_32bppOptimized {
|
||||
protected:
|
||||
uint16 *anim_buf; ///< In this buffer we keep track of the 8bpp indexes so we can do palette animation
|
||||
int anim_buf_width; ///< The width of the animation buffer.
|
||||
int anim_buf_height; ///< The height of the animation buffer.
|
||||
@@ -56,10 +56,9 @@ public:
|
||||
};
|
||||
|
||||
/** Factory for the 32bpp blitter with animation. */
|
||||
class FBlitter_32bppAnim: public BlitterFactory<FBlitter_32bppAnim> {
|
||||
class FBlitter_32bppAnim : public BlitterFactory {
|
||||
public:
|
||||
/* virtual */ const char *GetName() { return "32bpp-anim"; }
|
||||
/* virtual */ const char *GetDescription() { return "32bpp Animation Blitter (palette animation)"; }
|
||||
FBlitter_32bppAnim() : BlitterFactory("32bpp-anim", "32bpp Animation Blitter (palette animation)") {}
|
||||
/* virtual */ Blitter *CreateInstance() { return new Blitter_32bppAnim(); }
|
||||
};
|
||||
|
||||
|
399
src/blitter/32bpp_anim_sse4.cpp
Normal file
399
src/blitter/32bpp_anim_sse4.cpp
Normal file
@@ -0,0 +1,399 @@
|
||||
/* $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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/** @file 32bpp_sse4_anim.cpp Implementation of the SSE4 32 bpp blitter with animation support. */
|
||||
|
||||
#ifdef WITH_SSE
|
||||
|
||||
#include "../stdafx.h"
|
||||
#include "../video/video_driver.hpp"
|
||||
#include "../table/sprites.h"
|
||||
#include "32bpp_anim_sse4.hpp"
|
||||
#include "32bpp_sse_func.hpp"
|
||||
|
||||
/** Instantiation of the SSE4 32bpp blitter factory. */
|
||||
static FBlitter_32bppSSE4_Anim iFBlitter_32bppSSE4_Anim;
|
||||
|
||||
/**
|
||||
* Draws a sprite to a (screen) buffer. It is templated to allow faster operation.
|
||||
*
|
||||
* @tparam mode blitter mode
|
||||
* @param bp further blitting parameters
|
||||
* @param zoom zoom level at which we are drawing
|
||||
*/
|
||||
IGNORE_UNINITIALIZED_WARNING_START
|
||||
template <BlitterMode mode, Blitter_32bppSSE2::ReadMode read_mode, Blitter_32bppSSE2::BlockType bt_last, bool translucent, bool animated>
|
||||
inline void Blitter_32bppSSE4_Anim::Draw(const Blitter::BlitterParams *bp, ZoomLevel zoom)
|
||||
{
|
||||
const byte * const remap = bp->remap;
|
||||
Colour *dst_line = (Colour *) bp->dst + bp->top * bp->pitch + bp->left;
|
||||
uint16 *anim_line = this->anim_buf + ((uint32 *)bp->dst - (uint32 *)_screen.dst_ptr) + bp->top * this->anim_buf_width + bp->left;
|
||||
int effective_width = bp->width;
|
||||
|
||||
/* Find where to start reading in the source sprite. */
|
||||
const Blitter_32bppSSE_Base::SpriteData * const sd = (const Blitter_32bppSSE_Base::SpriteData *) bp->sprite;
|
||||
const SpriteInfo * const si = &sd->infos[zoom];
|
||||
const MapValue *src_mv_line = (const MapValue *) &sd->data[si->mv_offset] + bp->skip_top * si->sprite_width;
|
||||
const Colour *src_rgba_line = (const Colour *) ((const byte *) &sd->data[si->sprite_offset] + bp->skip_top * si->sprite_line_size);
|
||||
|
||||
if (read_mode != RM_WITH_MARGIN) {
|
||||
src_rgba_line += bp->skip_left;
|
||||
src_mv_line += bp->skip_left;
|
||||
}
|
||||
const MapValue *src_mv = src_mv_line;
|
||||
|
||||
/* Load these variables into register before loop. */
|
||||
const __m128i a_cm = ALPHA_CONTROL_MASK;
|
||||
const __m128i pack_low_cm = PACK_LOW_CONTROL_MASK;
|
||||
const __m128i tr_nom_base = TRANSPARENT_NOM_BASE;
|
||||
|
||||
for (int y = bp->height; y != 0; y--) {
|
||||
Colour *dst = dst_line;
|
||||
const Colour *src = src_rgba_line + META_LENGTH;
|
||||
if (mode != BM_TRANSPARENT) src_mv = src_mv_line;
|
||||
uint16 *anim = anim_line;
|
||||
|
||||
if (read_mode == RM_WITH_MARGIN) {
|
||||
assert(bt_last == BT_NONE); // or you must ensure block type is preserved
|
||||
anim += src_rgba_line[0].data;
|
||||
src += src_rgba_line[0].data;
|
||||
dst += src_rgba_line[0].data;
|
||||
if (mode != BM_TRANSPARENT) src_mv += src_rgba_line[0].data;
|
||||
const int width_diff = si->sprite_width - bp->width;
|
||||
effective_width = bp->width - (int) src_rgba_line[0].data;
|
||||
const int delta_diff = (int) src_rgba_line[1].data - width_diff;
|
||||
const int new_width = effective_width - delta_diff;
|
||||
effective_width = delta_diff > 0 ? new_width : effective_width;
|
||||
if (effective_width <= 0) goto next_line;
|
||||
}
|
||||
|
||||
switch (mode) {
|
||||
default:
|
||||
if (!translucent) {
|
||||
for (uint x = (uint) effective_width; x > 0; x--) {
|
||||
if (src->a) {
|
||||
if (animated) {
|
||||
*anim = *(const uint16*) src_mv;
|
||||
*dst = (src_mv->m >= PALETTE_ANIM_START) ? AdjustBrightneSSE(this->LookupColourInPalette(src_mv->m), src_mv->v) : src->data;
|
||||
} else {
|
||||
*anim = 0;
|
||||
*dst = *src;
|
||||
}
|
||||
}
|
||||
if (animated) src_mv++;
|
||||
anim++;
|
||||
src++;
|
||||
dst++;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
for (uint x = (uint) effective_width/2; x != 0; x--) {
|
||||
uint32 mvX2 = *((uint32 *) const_cast<MapValue *>(src_mv));
|
||||
__m128i srcABCD = _mm_loadl_epi64((const __m128i*) src);
|
||||
__m128i dstABCD = _mm_loadl_epi64((__m128i*) dst);
|
||||
|
||||
if (animated) {
|
||||
/* Remap colours. */
|
||||
const byte m0 = mvX2;
|
||||
if (m0 >= PALETTE_ANIM_START) {
|
||||
const Colour c0 = (this->LookupColourInPalette(m0).data & 0x00FFFFFF) | (src[0].data & 0xFF000000);
|
||||
InsertFirstUint32(AdjustBrightneSSE(c0, (byte) (mvX2 >> 8)).data, srcABCD);
|
||||
}
|
||||
const byte m1 = mvX2 >> 16;
|
||||
if (m1 >= PALETTE_ANIM_START) {
|
||||
const Colour c1 = (this->LookupColourInPalette(m1).data & 0x00FFFFFF) | (src[1].data & 0xFF000000);
|
||||
InsertSecondUint32(AdjustBrightneSSE(c1, (byte) (mvX2 >> 24)).data, srcABCD);
|
||||
}
|
||||
|
||||
/* Update anim buffer. */
|
||||
const byte a0 = src[0].a;
|
||||
const byte a1 = src[1].a;
|
||||
uint32 anim01 = 0;
|
||||
if (a0 == 255) {
|
||||
if (a1 == 255) {
|
||||
*(uint32*) anim = mvX2;
|
||||
goto bmno_full_opacity;
|
||||
}
|
||||
anim01 = (uint16) mvX2;
|
||||
} else if (a0 == 0) {
|
||||
if (a1 == 0) {
|
||||
goto bmno_full_transparency;
|
||||
} else {
|
||||
if (a1 == 255) anim[1] = (uint16) (mvX2 >> 16);
|
||||
goto bmno_alpha_blend;
|
||||
}
|
||||
}
|
||||
if (a1 > 0) {
|
||||
if (a1 == 255) anim01 |= mvX2 & 0xFFFF0000;
|
||||
*(uint32*) anim = anim01;
|
||||
} else {
|
||||
anim[0] = (uint16) anim01;
|
||||
}
|
||||
} else {
|
||||
if (src[0].a) anim[0] = 0;
|
||||
if (src[1].a) anim[1] = 0;
|
||||
}
|
||||
|
||||
/* Blend colours. */
|
||||
bmno_alpha_blend:
|
||||
srcABCD = AlphaBlendTwoPixels(srcABCD, dstABCD, a_cm, pack_low_cm);
|
||||
bmno_full_opacity:
|
||||
_mm_storel_epi64((__m128i *) dst, srcABCD);
|
||||
bmno_full_transparency:
|
||||
src_mv += 2;
|
||||
src += 2;
|
||||
anim += 2;
|
||||
dst += 2;
|
||||
}
|
||||
|
||||
if ((bt_last == BT_NONE && effective_width & 1) || bt_last == BT_ODD) {
|
||||
if (src->a == 0) {
|
||||
} else if (src->a == 255) {
|
||||
*anim = *(const uint16*) src_mv;
|
||||
*dst = (src_mv->m >= PALETTE_ANIM_START) ? AdjustBrightneSSE(LookupColourInPalette(src_mv->m), src_mv->v) : *src;
|
||||
} else {
|
||||
*anim = 0;
|
||||
__m128i srcABCD;
|
||||
__m128i dstABCD = _mm_cvtsi32_si128(dst->data);
|
||||
if (src_mv->m >= PALETTE_ANIM_START) {
|
||||
Colour colour = AdjustBrightneSSE(LookupColourInPalette(src_mv->m), src_mv->v);
|
||||
colour.a = src->a;
|
||||
srcABCD = _mm_cvtsi32_si128(colour.data);
|
||||
} else {
|
||||
srcABCD = _mm_cvtsi32_si128(src->data);
|
||||
}
|
||||
dst->data = _mm_cvtsi128_si32(AlphaBlendTwoPixels(srcABCD, dstABCD, a_cm, pack_low_cm));
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case BM_COLOUR_REMAP:
|
||||
for (uint x = (uint) effective_width / 2; x != 0; x--) {
|
||||
uint32 mvX2 = *((uint32 *) const_cast<MapValue *>(src_mv));
|
||||
__m128i srcABCD = _mm_loadl_epi64((const __m128i*) src);
|
||||
__m128i dstABCD = _mm_loadl_epi64((__m128i*) dst);
|
||||
|
||||
/* Remap colours. */
|
||||
const uint m0 = (byte) mvX2;
|
||||
const uint r0 = remap[m0];
|
||||
const uint m1 = (byte) (mvX2 >> 16);
|
||||
const uint r1 = remap[m1];
|
||||
if (mvX2 & 0x00FF00FF) {
|
||||
#define CMOV_REMAP(m_colour, m_colour_init, m_src, m_m) \
|
||||
/* Written so the compiler uses CMOV. */ \
|
||||
Colour m_colour = m_colour_init; \
|
||||
{ \
|
||||
const Colour srcm = (Colour) (m_src); \
|
||||
const uint m = (byte) (m_m); \
|
||||
const uint r = remap[m]; \
|
||||
const Colour cmap = (this->LookupColourInPalette(r).data & 0x00FFFFFF) | (srcm.data & 0xFF000000); \
|
||||
m_colour = r == 0 ? m_colour : cmap; \
|
||||
m_colour = m != 0 ? m_colour : srcm; \
|
||||
}
|
||||
#ifdef _SQ64
|
||||
uint64 srcs = _mm_cvtsi128_si64(srcABCD);
|
||||
uint64 dsts;
|
||||
if (animated) dsts = _mm_cvtsi128_si64(dstABCD);
|
||||
uint64 remapped_src = 0;
|
||||
CMOV_REMAP(c0, animated ? dsts : 0, srcs, mvX2);
|
||||
remapped_src = c0.data;
|
||||
CMOV_REMAP(c1, animated ? dsts >> 32 : 0, srcs >> 32, mvX2 >> 16);
|
||||
remapped_src |= (uint64) c1.data << 32;
|
||||
srcABCD = _mm_cvtsi64_si128(remapped_src);
|
||||
#else
|
||||
Colour remapped_src[2];
|
||||
CMOV_REMAP(c0, animated ? _mm_cvtsi128_si32(dstABCD) : 0, _mm_cvtsi128_si32(srcABCD), mvX2);
|
||||
remapped_src[0] = c0.data;
|
||||
CMOV_REMAP(c1, animated ? dst[1] : 0, src[1], mvX2 >> 16);
|
||||
remapped_src[1] = c1.data;
|
||||
srcABCD = _mm_loadl_epi64((__m128i*) &remapped_src);
|
||||
#endif
|
||||
|
||||
if ((mvX2 & 0xFF00FF00) != 0x80008000) srcABCD = AdjustBrightnessOfTwoPixels(srcABCD, mvX2);
|
||||
}
|
||||
|
||||
/* Update anim buffer. */
|
||||
if (animated) {
|
||||
const byte a0 = src[0].a;
|
||||
const byte a1 = src[1].a;
|
||||
uint32 anim01 = mvX2 & 0xFF00FF00;
|
||||
if (a0 == 255) {
|
||||
anim01 |= r0;
|
||||
if (a1 == 255) {
|
||||
*(uint32*) anim = anim01 | (r1 << 16);
|
||||
goto bmcr_full_opacity;
|
||||
}
|
||||
} else if (a0 == 0) {
|
||||
if (a1 == 0) {
|
||||
goto bmcr_full_transparency;
|
||||
} else {
|
||||
if (a1 == 255) {
|
||||
anim[1] = r1 | (anim01 >> 16);
|
||||
}
|
||||
goto bmcr_alpha_blend;
|
||||
}
|
||||
}
|
||||
if (a1 > 0) {
|
||||
if (a1 == 255) anim01 |= r1 << 16;
|
||||
*(uint32*) anim = anim01;
|
||||
} else {
|
||||
anim[0] = (uint16) anim01;
|
||||
}
|
||||
} else {
|
||||
if (src[0].a) anim[0] = 0;
|
||||
if (src[1].a) anim[1] = 0;
|
||||
}
|
||||
|
||||
/* Blend colours. */
|
||||
bmcr_alpha_blend:
|
||||
srcABCD = AlphaBlendTwoPixels(srcABCD, dstABCD, a_cm, pack_low_cm);
|
||||
bmcr_full_opacity:
|
||||
_mm_storel_epi64((__m128i *) dst, srcABCD);
|
||||
bmcr_full_transparency:
|
||||
src_mv += 2;
|
||||
dst += 2;
|
||||
src += 2;
|
||||
anim += 2;
|
||||
}
|
||||
|
||||
if ((bt_last == BT_NONE && effective_width & 1) || bt_last == BT_ODD) {
|
||||
/* In case the m-channel is zero, do not remap this pixel in any way. */
|
||||
__m128i srcABCD;
|
||||
if (src->a == 0) break;
|
||||
if (src_mv->m) {
|
||||
const uint r = remap[src_mv->m];
|
||||
*anim = (animated && src->a == 255) ? r | ((uint16) src_mv->v << 8 ) : 0;
|
||||
if (r != 0) {
|
||||
Colour remapped_colour = AdjustBrightneSSE(this->LookupColourInPalette(r), src_mv->v);
|
||||
if (src->a == 255) {
|
||||
*dst = remapped_colour;
|
||||
} else {
|
||||
remapped_colour.a = src->a;
|
||||
srcABCD = _mm_cvtsi32_si128(remapped_colour.data);
|
||||
goto bmcr_alpha_blend_single;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
*anim = 0;
|
||||
srcABCD = _mm_cvtsi32_si128(src->data);
|
||||
if (src->a < 255) {
|
||||
bmcr_alpha_blend_single:
|
||||
__m128i dstABCD = _mm_cvtsi32_si128(dst->data);
|
||||
srcABCD = AlphaBlendTwoPixels(srcABCD, dstABCD, a_cm, pack_low_cm);
|
||||
}
|
||||
dst->data = _mm_cvtsi128_si32(srcABCD);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case BM_TRANSPARENT:
|
||||
/* Make the current colour a bit more black, so it looks like this image is transparent. */
|
||||
for (uint x = (uint) bp->width / 2; x > 0; x--) {
|
||||
__m128i srcABCD = _mm_loadl_epi64((const __m128i*) src);
|
||||
__m128i dstABCD = _mm_loadl_epi64((__m128i*) dst);
|
||||
_mm_storel_epi64((__m128i *) dst, DarkenTwoPixels(srcABCD, dstABCD, a_cm, tr_nom_base));
|
||||
src += 2;
|
||||
dst += 2;
|
||||
anim += 2;
|
||||
if (src[-2].a) anim[-2] = 0;
|
||||
if (src[-1].a) anim[-1] = 0;
|
||||
}
|
||||
|
||||
if ((bt_last == BT_NONE && bp->width & 1) || bt_last == BT_ODD) {
|
||||
__m128i srcABCD = _mm_cvtsi32_si128(src->data);
|
||||
__m128i dstABCD = _mm_cvtsi32_si128(dst->data);
|
||||
dst->data = _mm_cvtsi128_si32(DarkenTwoPixels(srcABCD, dstABCD, a_cm, tr_nom_base));
|
||||
if (src[0].a) anim[0] = 0;
|
||||
}
|
||||
break;
|
||||
|
||||
case BM_CRASH_REMAP:
|
||||
for (uint x = (uint) bp->width; x > 0; x--) {
|
||||
if (src_mv->m == 0) {
|
||||
if (src->a != 0) {
|
||||
uint8 g = MakeDark(src->r, src->g, src->b);
|
||||
*dst = ComposeColourRGBA(g, g, g, src->a, *dst);
|
||||
*anim = 0;
|
||||
}
|
||||
} else {
|
||||
uint r = remap[src_mv->m];
|
||||
if (r != 0) *dst = ComposeColourPANoCheck(this->AdjustBrightness(this->LookupColourInPalette(r), src_mv->v), src->a, *dst);
|
||||
}
|
||||
src_mv++;
|
||||
dst++;
|
||||
src++;
|
||||
anim++;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
next_line:
|
||||
if (mode != BM_TRANSPARENT) src_mv_line += si->sprite_width;
|
||||
src_rgba_line = (const Colour*) ((const byte*) src_rgba_line + si->sprite_line_size);
|
||||
dst_line += bp->pitch;
|
||||
anim_line += this->anim_buf_width;
|
||||
}
|
||||
}
|
||||
IGNORE_UNINITIALIZED_WARNING_STOP
|
||||
|
||||
/**
|
||||
* Draws a sprite to a (screen) buffer. Calls adequate templated function.
|
||||
*
|
||||
* @param bp further blitting parameters
|
||||
* @param mode blitter mode
|
||||
* @param zoom zoom level at which we are drawing
|
||||
*/
|
||||
void Blitter_32bppSSE4_Anim::Draw(Blitter::BlitterParams *bp, BlitterMode mode, ZoomLevel zoom)
|
||||
{
|
||||
const Blitter_32bppSSE_Base::SpriteFlags sprite_flags = ((const Blitter_32bppSSE_Base::SpriteData *) bp->sprite)->flags;
|
||||
switch (mode) {
|
||||
default: {
|
||||
bm_normal:
|
||||
if (bp->skip_left != 0 || bp->width <= MARGIN_NORMAL_THRESHOLD) {
|
||||
const BlockType bt_last = (BlockType) (bp->width & 1);
|
||||
if (bt_last == BT_EVEN) {
|
||||
if (sprite_flags & SF_NO_ANIM) Draw<BM_NORMAL, RM_WITH_SKIP, BT_EVEN, true, false>(bp, zoom);
|
||||
else Draw<BM_NORMAL, RM_WITH_SKIP, BT_EVEN, true, true>(bp, zoom);
|
||||
} else {
|
||||
if (sprite_flags & SF_NO_ANIM) Draw<BM_NORMAL, RM_WITH_SKIP, BT_ODD, true, false>(bp, zoom);
|
||||
else Draw<BM_NORMAL, RM_WITH_SKIP, BT_ODD, true, true>(bp, zoom);
|
||||
}
|
||||
} else {
|
||||
#ifdef _SQ64
|
||||
if (sprite_flags & SF_TRANSLUCENT) {
|
||||
if (sprite_flags & SF_NO_ANIM) Draw<BM_NORMAL, RM_WITH_MARGIN, BT_NONE, true, false>(bp, zoom);
|
||||
else Draw<BM_NORMAL, RM_WITH_MARGIN, BT_NONE, true, true>(bp, zoom);
|
||||
} else {
|
||||
if (sprite_flags & SF_NO_ANIM) Draw<BM_NORMAL, RM_WITH_MARGIN, BT_NONE, false, false>(bp, zoom);
|
||||
else Draw<BM_NORMAL, RM_WITH_MARGIN, BT_NONE, false, true>(bp, zoom);
|
||||
}
|
||||
#else
|
||||
if (sprite_flags & SF_NO_ANIM) Draw<BM_NORMAL, RM_WITH_MARGIN, BT_NONE, true, false>(bp, zoom);
|
||||
else Draw<BM_NORMAL, RM_WITH_MARGIN, BT_NONE, true, true>(bp, zoom);
|
||||
#endif
|
||||
}
|
||||
break;
|
||||
}
|
||||
case BM_COLOUR_REMAP:
|
||||
if (sprite_flags & SF_NO_REMAP) goto bm_normal;
|
||||
if (bp->skip_left != 0 || bp->width <= MARGIN_REMAP_THRESHOLD) {
|
||||
if (sprite_flags & SF_NO_ANIM) Draw<BM_COLOUR_REMAP, RM_WITH_SKIP, BT_NONE, true, false>(bp, zoom);
|
||||
else Draw<BM_COLOUR_REMAP, RM_WITH_SKIP, BT_NONE, true, true>(bp, zoom);
|
||||
} else {
|
||||
if (sprite_flags & SF_NO_ANIM) Draw<BM_COLOUR_REMAP, RM_WITH_MARGIN, BT_NONE, true, false>(bp, zoom);
|
||||
else Draw<BM_COLOUR_REMAP, RM_WITH_MARGIN, BT_NONE, true, true>(bp, zoom);
|
||||
}
|
||||
break;
|
||||
case BM_TRANSPARENT: Draw<BM_TRANSPARENT, RM_NONE, BT_NONE, true, true>(bp, zoom); return;
|
||||
case BM_CRASH_REMAP: Draw<BM_CRASH_REMAP, RM_NONE, BT_NONE, true, true>(bp, zoom); return;
|
||||
}
|
||||
}
|
||||
|
||||
#endif /* WITH_SSE */
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user