Compare commits
1125 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d408d58b57 | ||
|
|
481cecf6aa | ||
|
|
e3ea0025c5 | ||
|
|
584d7f3136 | ||
|
|
1f4570c14b | ||
|
|
8ec3f4462a | ||
|
|
174b07f266 | ||
|
|
0917c225d8 | ||
|
|
05d1643d26 | ||
|
|
686321deff | ||
|
|
bcec5edab9 | ||
|
|
eba99834e0 | ||
|
|
712ebb3287 | ||
|
|
17abfa33d0 | ||
|
|
4cba4d08aa | ||
|
|
de9d011a01 | ||
|
|
fe24037905 | ||
|
|
0b931d9383 | ||
|
|
4310dc186b | ||
|
|
0452c60ac1 | ||
|
|
ca668e7c99 | ||
|
|
02fc2201bc | ||
|
|
8787230f82 | ||
|
|
510548f381 | ||
|
|
e1d12868f7 | ||
|
|
19bfa2317c | ||
|
|
a7a8e35968 | ||
|
|
a474c233e0 | ||
|
|
6fcdd5c43f | ||
|
|
b0441047aa | ||
|
|
00dc8319eb | ||
|
|
b4b6e07057 | ||
|
|
5bbb64885a | ||
|
|
844cb32a88 | ||
|
|
8b686b812d | ||
|
|
bcacd626ef | ||
|
|
026bd48e91 | ||
|
|
03fa2b7487 | ||
|
|
b74200f58f | ||
|
|
5e54f92241 | ||
|
|
5d77a7ff22 | ||
|
|
4c30d8e5a4 | ||
|
|
5a6f11361d | ||
|
|
2b5d1be8e7 | ||
|
|
ab5c174602 | ||
|
|
0ad6eba1b6 | ||
|
|
04cecd2f9a | ||
|
|
e7bc77d4b4 | ||
|
|
eec71a5e62 | ||
|
|
29e1314e97 | ||
|
|
74c1382675 | ||
|
|
b07ae4fa74 | ||
|
|
3a12f56a62 | ||
|
|
cfef9c8f29 | ||
|
|
16f249f025 | ||
|
|
a0299ff713 | ||
|
|
d03b27e1f6 | ||
|
|
a016e3fbf9 | ||
|
|
2f59f6d1df | ||
|
|
d00e9cd050 | ||
|
|
50e6a86f7b | ||
|
|
d2a582fb9e | ||
|
|
eadf5e9f4a | ||
|
|
4c1172d9d0 | ||
|
|
3ff1ccb5c2 | ||
|
|
279baee43a | ||
|
|
a479267db2 | ||
|
|
1ea2ca0482 | ||
|
|
12ea53e19e | ||
|
|
e58a207cf6 | ||
|
|
2365e94acb | ||
|
|
34e886c5e5 | ||
|
|
fe72293c37 | ||
|
|
c7087a15b7 | ||
|
|
9500f8d92a | ||
|
|
f5a0182b8a | ||
|
|
3a77fccd6f | ||
|
|
6910735abf | ||
|
|
d6148192a3 | ||
|
|
7dc511ba5c | ||
|
|
13ad49d329 | ||
|
|
075ac65a93 | ||
|
|
9652791a07 | ||
|
|
5c44744772 | ||
|
|
963cd3c5ea | ||
|
|
f99dc9868f | ||
|
|
05c6c76771 | ||
|
|
13b56f21f9 | ||
|
|
09b117c824 | ||
|
|
444044a2ef | ||
|
|
a137088a80 | ||
|
|
a0bcc2ae25 | ||
|
|
400065fa43 | ||
|
|
3ef1c1baff | ||
|
|
a8b5756718 | ||
|
|
8284c69a61 | ||
|
|
815fce8bd9 | ||
|
|
4a64ced9b5 | ||
|
|
d9da47f913 | ||
|
|
e7f0902eaf | ||
|
|
9aaad3fa60 | ||
|
|
561c4c2f02 | ||
|
|
9043cbf9bf | ||
|
|
9db36bd87a | ||
|
|
4b8c6983e7 | ||
|
|
4b894775af | ||
|
|
b23f22f0f6 | ||
|
|
3cc990d0f9 | ||
|
|
da104bee01 | ||
|
|
ff0c05f990 | ||
|
|
25bda8a417 | ||
|
|
4459e01f79 | ||
|
|
16fb5bf9bb | ||
|
|
36e66a17dc | ||
|
|
265c8d090f | ||
|
|
3b1696f13a | ||
|
|
d046a02c7d | ||
|
|
e45f9d32c1 | ||
|
|
f5359a70be | ||
|
|
9c6655a37c | ||
|
|
45adb8f172 | ||
|
|
5102ba54ea | ||
|
|
e1df8edf66 | ||
|
|
ee00bef5a9 | ||
|
|
60733359fa | ||
|
|
137ecd5377 | ||
|
|
7ab291af95 | ||
|
|
864c6360eb | ||
|
|
8e5487c347 | ||
|
|
4445809dd9 | ||
|
|
12915a202f | ||
|
|
cc3fcf7d61 | ||
|
|
e9d4e9b896 | ||
|
|
ff0f720e82 | ||
|
|
82a412031b | ||
|
|
7c7565e33c | ||
|
|
afe19055bb | ||
|
|
1ebc92faec | ||
|
|
96aa437f85 | ||
|
|
ed7e09833e | ||
|
|
7338ed075f | ||
|
|
8660a2c2b1 | ||
|
|
566d7de6af | ||
|
|
696626a8e9 | ||
|
|
ae767d30a4 | ||
|
|
ae1bb896e6 | ||
|
|
1bf75b1abb | ||
|
|
e78a03d7b4 | ||
|
|
244144f0f6 | ||
|
|
9808cfdf5e | ||
|
|
bf61d7a797 | ||
|
|
786838d277 | ||
|
|
e94c79227b | ||
|
|
06fc9283f7 | ||
|
|
ca93b0ef79 | ||
|
|
d8b8f033d5 | ||
|
|
17e6f42f03 | ||
|
|
e1a00bc244 | ||
|
|
e32afcc4ea | ||
|
|
05812cd61b | ||
|
|
420eb83065 | ||
|
|
7db053813b | ||
|
|
1a0723579b | ||
|
|
15b7e8faf1 | ||
|
|
0cff11130d | ||
|
|
90b340e689 | ||
|
|
4dcda474fc | ||
|
|
a55e6b6d5a | ||
|
|
12229d80fe | ||
|
|
7ce96b4d47 | ||
|
|
515fb701c2 | ||
|
|
19e0cb8c50 | ||
|
|
591c3e2c81 | ||
|
|
246e85088d | ||
|
|
ba955956cb | ||
|
|
ade25fff71 | ||
|
|
0f8f738942 | ||
|
|
c74ffeecd1 | ||
|
|
e51abf1796 | ||
|
|
34627862c6 | ||
|
|
1e897531cb | ||
|
|
7be7851b94 | ||
|
|
49a18025f8 | ||
|
|
51787a3465 | ||
|
|
147b53fbff | ||
|
|
d20a116dfd | ||
|
|
85b19944f4 | ||
|
|
3af9438fb5 | ||
|
|
2d684b8e76 | ||
|
|
3c269df00d | ||
|
|
e156f43848 | ||
|
|
6155d6a3e0 | ||
|
|
67da640e97 | ||
|
|
0608ab5f81 | ||
|
|
e9a338f9ef | ||
|
|
440af97436 | ||
|
|
0d4b84f06b | ||
|
|
0df4b5142c | ||
|
|
334b2319ef | ||
|
|
12b35b301c | ||
|
|
0d0b15875f | ||
|
|
67b605337f | ||
|
|
e8788019fa | ||
|
|
e4c3db0c6a | ||
|
|
65f8b1c95e | ||
|
|
65db59da81 | ||
|
|
a5355ec6c4 | ||
|
|
081da61d05 | ||
|
|
54eb340998 | ||
|
|
246df66229 | ||
|
|
ee8bee5e31 | ||
|
|
8c389a2a96 | ||
|
|
8f36c49ffa | ||
|
|
284c9dd342 | ||
|
|
8cfc1e9d23 | ||
|
|
3b8aabdd9e | ||
|
|
70322bce59 | ||
|
|
8f711aca53 | ||
|
|
f4cd0198f4 | ||
|
|
44918010df | ||
|
|
0cd198c798 | ||
|
|
63aa9f4ea8 | ||
|
|
438d7a26cc | ||
|
|
eb4b6a08d0 | ||
|
|
cc5b8ea6cb | ||
|
|
2011c24502 | ||
|
|
36f77b1aa7 | ||
|
|
c3715a025d | ||
|
|
f05d71a9a6 | ||
|
|
f179a92007 | ||
|
|
2aee2899e8 | ||
|
|
a08d1a044f | ||
|
|
625bc2e0e7 | ||
|
|
ee700fd3b1 | ||
|
|
9f72662ecc | ||
|
|
c9120cd714 | ||
|
|
a9200aa69a | ||
|
|
894f69e1fd | ||
|
|
48485a6a5a | ||
|
|
bc199a4fe1 | ||
|
|
501ee2105a | ||
|
|
f95759139b | ||
|
|
163c30570b | ||
|
|
e6782df9ba | ||
|
|
4eb6ce863a | ||
|
|
66418db43e | ||
|
|
18e7b67864 | ||
|
|
67366cf03d | ||
|
|
e36a82c3e6 | ||
|
|
b1f1647303 | ||
|
|
13a726b18f | ||
|
|
730c2177bf | ||
|
|
bd50600f5b | ||
|
|
67ae231f1b | ||
|
|
932aaa8cb5 | ||
|
|
55c177c26d | ||
|
|
f6a3faf927 | ||
|
|
28f9637aed | ||
|
|
28e885dd51 | ||
|
|
80df194341 | ||
|
|
99ed8df797 | ||
|
|
86825a745c | ||
|
|
2af1fa921a | ||
|
|
f16fc69e95 | ||
|
|
04e9978f1f | ||
|
|
fc902d354f | ||
|
|
d25934580f | ||
|
|
81ec32199f | ||
|
|
b50eddaea2 | ||
|
|
d1c2eae95d | ||
|
|
e55f1adfa8 | ||
|
|
70e2c23772 | ||
|
|
1d9c78ef6b | ||
|
|
c5a4b89915 | ||
|
|
d3bfb5422f | ||
|
|
d9f8045255 | ||
|
|
d64d56b5a8 | ||
|
|
42630dfa01 | ||
|
|
a1ca479a65 | ||
|
|
8f84989389 | ||
|
|
90d50d78c0 | ||
|
|
d4db9cb109 | ||
|
|
c0015d6a7c | ||
|
|
a2f13f0fe2 | ||
|
|
0efffb6df4 | ||
|
|
07b83b8869 | ||
|
|
81bdf8928e | ||
|
|
b1763f1e77 | ||
|
|
19d1cda92e | ||
|
|
4117c5b747 | ||
|
|
d07b686927 | ||
|
|
891021cdd3 | ||
|
|
6f2937855a | ||
|
|
04aa61ffac | ||
|
|
aa0bd78a5d | ||
|
|
3ed9f24d19 | ||
|
|
14052de6b2 | ||
|
|
7f5e63324d | ||
|
|
25b87fe4a9 | ||
|
|
5053ba6a6e | ||
|
|
fa83524eb4 | ||
|
|
dde669e6d3 | ||
|
|
809161ebf2 | ||
|
|
a41f197379 | ||
|
|
ada765a7e1 | ||
|
|
ad8a7aee30 | ||
|
|
56c9765f72 | ||
|
|
ffb6f3cea0 | ||
|
|
a976ec28b4 | ||
|
|
a7849377dd | ||
|
|
eccbe842b3 | ||
|
|
0ed553c0a7 | ||
|
|
f3ae301125 | ||
|
|
17d9b77db6 | ||
|
|
4a6036208a | ||
|
|
c348ebfeb1 | ||
|
|
e7fa640566 | ||
|
|
4b01ce36eb | ||
|
|
97c76a51d6 | ||
|
|
5923cfff4f | ||
|
|
cf629bfb97 | ||
|
|
9f7749553e | ||
|
|
8803df32aa | ||
|
|
be00f631da | ||
|
|
09caebf357 | ||
|
|
071b574e2c | ||
|
|
108aa4e7af | ||
|
|
edad1a1ce5 | ||
|
|
be30f224c7 | ||
|
|
53ee8c696b | ||
|
|
9c75b61e5f | ||
|
|
db7dc5a6e9 | ||
|
|
f690713802 | ||
|
|
e9c3ca62cd | ||
|
|
482714e1cf | ||
|
|
9714f95c63 | ||
|
|
f27dc40c8a | ||
|
|
c1505cfcdb | ||
|
|
269d702cc8 | ||
|
|
7fdc4da4b9 | ||
|
|
ddae581ac8 | ||
|
|
c9e9dacc6b | ||
|
|
e09d7e6fe4 | ||
|
|
dbc025798d | ||
|
|
7fbcc64801 | ||
|
|
5d6ee8da6c | ||
|
|
9c8fb872aa | ||
|
|
9508b96bc0 | ||
|
|
abe409db89 | ||
|
|
9e2d0f4322 | ||
|
|
9f7545368d | ||
|
|
e700bc1e04 | ||
|
|
684f6d4fcc | ||
|
|
9b946e3bf2 | ||
|
|
b611635c0e | ||
|
|
80f6d6c644 | ||
|
|
01680f7415 | ||
|
|
bc6940dbbb | ||
|
|
31f8ef4c15 | ||
|
|
fcaff34724 | ||
|
|
e54ba05393 | ||
|
|
acef9bb811 | ||
|
|
da9a1d0c14 | ||
|
|
bb3366e8b2 | ||
|
|
78d590aab9 | ||
|
|
55f5a83fbc | ||
|
|
4dbabbd9e2 | ||
|
|
1b87589008 | ||
|
|
37cf7f78f2 | ||
|
|
622a9c6a9a | ||
|
|
6de0714a3c | ||
|
|
6977514ff1 | ||
|
|
fc4ae3a627 | ||
|
|
1e5fb9290c | ||
|
|
cdde929500 | ||
|
|
eb6626d247 | ||
|
|
ab0e3a8bef | ||
|
|
dce1a08117 | ||
|
|
49d814d5d3 | ||
|
|
d260038aac | ||
|
|
5b874adee8 | ||
|
|
d9f14a5b79 | ||
|
|
8f7e444f4f | ||
|
|
9875c97661 | ||
|
|
0d3412d064 | ||
|
|
6f9c0181c1 | ||
|
|
ac76047f54 | ||
|
|
bde4cdebc1 | ||
|
|
60f12ed588 | ||
|
|
400b6daad0 | ||
|
|
fdddd873dd | ||
|
|
5934a69f67 | ||
|
|
55d31f06fb | ||
|
|
396aebaa98 | ||
|
|
e0efbfbd75 | ||
|
|
be3f236eaf | ||
|
|
69a31cde7b | ||
|
|
7fa4e7bbc3 | ||
|
|
024daa1225 | ||
|
|
4d4f707638 | ||
|
|
9a3b8e8969 | ||
|
|
fa59440329 | ||
|
|
8835c78261 | ||
|
|
c8a727d3fc | ||
|
|
bba85a6e01 | ||
|
|
5503af7bfa | ||
|
|
1ab66855db | ||
|
|
9074326e86 | ||
|
|
3966c3e37c | ||
|
|
ae9f4571b8 | ||
|
|
cfd442e74b | ||
|
|
a6647f389b | ||
|
|
558f756a15 | ||
|
|
c37ee53ecc | ||
|
|
a5d412ba79 | ||
|
|
3df2b8020d | ||
|
|
78fb9afd80 | ||
|
|
8a7d5b0c9b | ||
|
|
2edbc72ebd | ||
|
|
5b1632f4aa | ||
|
|
dbcf0d8625 | ||
|
|
a04042f7b4 | ||
|
|
aef1cf42e1 | ||
|
|
ab048fdcd1 | ||
|
|
7cb07acd86 | ||
|
|
76b1bd0f4c | ||
|
|
7ae2a1764d | ||
|
|
a149707db7 | ||
|
|
f34340a2d6 | ||
|
|
18d8d3e5a6 | ||
|
|
ad056b0da5 | ||
|
|
a14b836bf2 | ||
|
|
163ab9fd56 | ||
|
|
0a9364cef6 | ||
|
|
833f680a5e | ||
|
|
da9721ffd6 | ||
|
|
06e97d529b | ||
|
|
c0801cbd8d | ||
|
|
b251ba3e66 | ||
|
|
c7ec7761f8 | ||
|
|
a601894017 | ||
|
|
3cceb21a94 | ||
|
|
74b0e2b73e | ||
|
|
10c653e702 | ||
|
|
cd36ff1bfe | ||
|
|
6cb930168f | ||
|
|
8d04567343 | ||
|
|
939719ffc0 | ||
|
|
d35670aa2a | ||
|
|
7dee16a9b9 | ||
|
|
79380a566e | ||
|
|
bd3a8bf9e4 | ||
|
|
9a601a1029 | ||
|
|
2b82b55b7f | ||
|
|
993622d770 | ||
|
|
c4f8995a1d | ||
|
|
4b39e3d98c | ||
|
|
04b8fe6d0b | ||
|
|
e40c3149de | ||
|
|
5779e0d192 | ||
|
|
891e4c40ce | ||
|
|
5ebc0c9934 | ||
|
|
abe22e594d | ||
|
|
0360abb54e | ||
|
|
3d37abf802 | ||
|
|
f610db45b8 | ||
|
|
9cb0d889d7 | ||
|
|
6670d28cca | ||
|
|
11d6570585 | ||
|
|
00981908d0 | ||
|
|
f933dec10b | ||
|
|
dcf5c12280 | ||
|
|
b6568912f1 | ||
|
|
8767a11d60 | ||
|
|
cd3f113249 | ||
|
|
a0c42f25a4 | ||
|
|
18a1131e9f | ||
|
|
4e626567ae | ||
|
|
70d52a502a | ||
|
|
c2ce131f21 | ||
|
|
fd3388467f | ||
|
|
19bf264433 | ||
|
|
14a24f5732 | ||
|
|
577d812df4 | ||
|
|
bf714413a2 | ||
|
|
f22b6d3116 | ||
|
|
d97b60fb21 | ||
|
|
c16caa87d5 | ||
|
|
e5a8f6e7d4 | ||
|
|
59db260e63 | ||
|
|
0a10fce8f1 | ||
|
|
99b89f67db | ||
|
|
de3e7110e0 | ||
|
|
63318c2144 | ||
|
|
a41fc2e341 | ||
|
|
4dc65dd9b5 | ||
|
|
39d6562158 | ||
|
|
e25e44866e | ||
|
|
f0924bb910 | ||
|
|
19198a2156 | ||
|
|
cd9d6f85e5 | ||
|
|
9983ddee32 | ||
|
|
84b7773724 | ||
|
|
65f836f677 | ||
|
|
dd40950643 | ||
|
|
978d4e4eaa | ||
|
|
1ed92b3ca3 | ||
|
|
44cfdbbfc6 | ||
|
|
3245076905 | ||
|
|
202adad53a | ||
|
|
4841873f36 | ||
|
|
6b0ea01f4e | ||
|
|
e02b267f01 | ||
|
|
0bc06e8e08 | ||
|
|
93fb724f87 | ||
|
|
23b44140a9 | ||
|
|
ff43128963 | ||
|
|
2cf3024d39 | ||
|
|
cd4db2e8e7 | ||
|
|
fe92e9678f | ||
|
|
8f6df8c230 | ||
|
|
eb9da96a46 | ||
|
|
b67d483b46 | ||
|
|
21a4672485 | ||
|
|
768a4cd790 | ||
|
|
79e90dfe11 | ||
|
|
cfa4bf7e8c | ||
|
|
84e2d4dd9e | ||
|
|
395c65e561 | ||
|
|
8c4d779ff1 | ||
|
|
489958f1a4 | ||
|
|
1bbe59af69 | ||
|
|
051be72ba3 | ||
|
|
801d4ba918 | ||
|
|
bd6a4c35c4 | ||
|
|
9edee18e28 | ||
|
|
68937dc638 | ||
|
|
c2acc4ffbb | ||
|
|
61d1f8e121 | ||
|
|
91cb6e8774 | ||
|
|
ef49bca5c7 | ||
|
|
4e3622bade | ||
|
|
4b62fc9bbd | ||
|
|
e4063cb6d4 | ||
|
|
ae17dd7d19 | ||
|
|
ca02d7df4f | ||
|
|
e21ebb26c8 | ||
|
|
2d3ad05aa7 | ||
|
|
2072edc02c | ||
|
|
f3ec20a494 | ||
|
|
aa0e397c97 | ||
|
|
a2bde8dba6 | ||
|
|
a9a8ed5188 | ||
|
|
3eb4d49f97 | ||
|
|
c0445bb20a | ||
|
|
619e6bbeda | ||
|
|
e9ba763f74 | ||
|
|
1ad3db76e6 | ||
|
|
2c21d4fbd1 | ||
|
|
9cb1ca6fbd | ||
|
|
221f1a2e46 | ||
|
|
7e6eb5043b | ||
|
|
372acd13be | ||
|
|
ed8f48a945 | ||
|
|
574767cacf | ||
|
|
f453c166c5 | ||
|
|
0affe0e119 | ||
|
|
dd8f90882f | ||
|
|
543656f256 | ||
|
|
988b387f14 | ||
|
|
1149f7be46 | ||
|
|
3ef8ddce2b | ||
|
|
fa0860db9d | ||
|
|
3596bee92f | ||
|
|
a0f58d54dc | ||
|
|
05e8bdebc2 | ||
|
|
09f6c46d0b | ||
|
|
3cd00ed2fc | ||
|
|
c017c18c26 | ||
|
|
a2f1351a90 | ||
|
|
0889145dc5 | ||
|
|
ca4f7b0eca | ||
|
|
616622a8c0 | ||
|
|
eb2c2bdafa | ||
|
|
0c2f4bdc2b | ||
|
|
4f1d50190a | ||
|
|
4c6febee49 | ||
|
|
5911d5cb93 | ||
|
|
4de8b75605 | ||
|
|
d549ed2d6c | ||
|
|
ba96233b6e | ||
|
|
890f50d491 | ||
|
|
76f6bf0b32 | ||
|
|
6cba7f4447 | ||
|
|
5d7f235bd3 | ||
|
|
0efe811f74 | ||
|
|
1d685c9711 | ||
|
|
cb64738f4c | ||
|
|
4a497c1bbb | ||
|
|
325d2b419d | ||
|
|
aa6fdf6f13 | ||
|
|
660a95e5d2 | ||
|
|
26574124b1 | ||
|
|
0b76408304 | ||
|
|
ffb443934a | ||
|
|
a9de336295 | ||
|
|
c44c6b0f9b | ||
|
|
5159d90e6c | ||
|
|
dcced1007b | ||
|
|
3ea4eebe9a | ||
|
|
51a2a31c46 | ||
|
|
ff71a8f5c9 | ||
|
|
3c2316b979 | ||
|
|
d43c3d73e1 | ||
|
|
2655de52d7 | ||
|
|
f7c64bc2dd | ||
|
|
354f03ad5d | ||
|
|
1e954351ff | ||
|
|
4132e4e7e3 | ||
|
|
f72e4dfbe4 | ||
|
|
284912d102 | ||
|
|
9efb6be700 | ||
|
|
c3e286ae58 | ||
|
|
bea7010a8b | ||
|
|
39fa9d2127 | ||
|
|
8a971f0229 | ||
|
|
815576440c | ||
|
|
fdd5b2293d | ||
|
|
9f654b200d | ||
|
|
eabb35a874 | ||
|
|
485f60bb9f | ||
|
|
42a4379fad | ||
|
|
c7e2b466a5 | ||
|
|
ee266b9b9d | ||
|
|
d3c614c3cf | ||
|
|
c4e8c81707 | ||
|
|
a0c53f7c4c | ||
|
|
b46e61be63 | ||
|
|
6872b647f1 | ||
|
|
ae22f8ab55 | ||
|
|
79e124cf2b | ||
|
|
44fa18b4fa | ||
|
|
67991b70f0 | ||
|
|
d3332d106b | ||
|
|
7f6a282b7f | ||
|
|
cc0847deb9 | ||
|
|
f7f49c15a3 | ||
|
|
3b3c1f1cec | ||
|
|
687ad230d8 | ||
|
|
94c7401a78 | ||
|
|
a255c87d32 | ||
|
|
517bfd4361 | ||
|
|
94513de4f8 | ||
|
|
ada4718568 | ||
|
|
d40eafd92e | ||
|
|
04c78761b7 | ||
|
|
3911ea1f90 | ||
|
|
d63fcbe519 | ||
|
|
e550580d74 | ||
|
|
72354f7e6a | ||
|
|
4549a07a89 | ||
|
|
5d09105bf1 | ||
|
|
217635d357 | ||
|
|
fc3ee5b7a8 | ||
|
|
b1f6dd5455 | ||
|
|
e1120327e7 | ||
|
|
3ae9ca8759 | ||
|
|
340ecd7385 | ||
|
|
367150ba34 | ||
|
|
4b8d6ee319 | ||
|
|
ae406cf52e | ||
|
|
84920f721d | ||
|
|
e41a83dc32 | ||
|
|
d408cabca7 | ||
|
|
a1929222d5 | ||
|
|
049c7dba29 | ||
|
|
01c30568e8 | ||
|
|
33061f4024 | ||
|
|
d48a176f4c | ||
|
|
1b8186ea8e | ||
|
|
7306fe015d | ||
|
|
2df038c705 | ||
|
|
fc36231cdf | ||
|
|
b752ba6a0c | ||
|
|
1477b365c1 | ||
|
|
22dd5ddca1 | ||
|
|
04a8b1cdf9 | ||
|
|
1c077e596b | ||
|
|
49dafc0848 | ||
|
|
4f63bbedc1 | ||
|
|
8a0e523ce5 | ||
|
|
11e9afdf5e | ||
|
|
9a2d28e4c6 | ||
|
|
58f1e15bce | ||
|
|
1d81ca44f2 | ||
|
|
dfd472f4a4 | ||
|
|
6cee5310c1 | ||
|
|
0584d36c0b | ||
|
|
14604b9215 | ||
|
|
3f2da92ea2 | ||
|
|
82baae3eb8 | ||
|
|
df1971fbde | ||
|
|
d206b436aa | ||
|
|
b6833fc6ef | ||
|
|
78df68e695 | ||
|
|
b0c7488f6d | ||
|
|
ce9d75f517 | ||
|
|
4e021f0059 | ||
|
|
6b35c182ce | ||
|
|
babe50da92 | ||
|
|
fa193ece85 | ||
|
|
d17a4e0918 | ||
|
|
0daf8085c0 | ||
|
|
647a3c8e5f | ||
|
|
b50c649405 | ||
|
|
ab3660278a | ||
|
|
dc2b4f2498 | ||
|
|
f3b79480ed | ||
|
|
8a993b6141 | ||
|
|
173a234951 | ||
|
|
f82c07b582 | ||
|
|
fe1e883dc9 | ||
|
|
337af973b0 | ||
|
|
3dfb423446 | ||
|
|
c709953a3b | ||
|
|
44bcff645c | ||
|
|
6592da4952 | ||
|
|
feab521cd5 | ||
|
|
f9be0f5faa | ||
|
|
39ded38c01 | ||
|
|
51e2c2bf62 | ||
|
|
8ab4f746f2 | ||
|
|
ac269a3f08 | ||
|
|
c07aea8ab8 | ||
|
|
2f871d02b3 | ||
|
|
890c61d596 | ||
|
|
fba10bead9 | ||
|
|
657c108d32 | ||
|
|
e353f22dc1 | ||
|
|
c2d4068a5e | ||
|
|
2bb3524416 | ||
|
|
a3eaa31178 | ||
|
|
6a1ed21342 | ||
|
|
1bc9785a6e | ||
|
|
118bb9a193 | ||
|
|
7836a487ae | ||
|
|
1e7992d4f9 | ||
|
|
d0f23b0b7e | ||
|
|
672b14a7c6 | ||
|
|
41ad2aecd8 | ||
|
|
e87572d103 | ||
|
|
d3a68c3391 | ||
|
|
5fe44256e2 | ||
|
|
c35e638c36 | ||
|
|
8560071dbc | ||
|
|
20cb257a05 | ||
|
|
525316ea9b | ||
|
|
061be20b78 | ||
|
|
e19dfdee99 | ||
|
|
3d2f511f43 | ||
|
|
5502a19f3d | ||
|
|
fef12f24dd | ||
|
|
8716e0c26d | ||
|
|
dd0254220f | ||
|
|
de8230a219 | ||
|
|
a27c92acb5 | ||
|
|
3280146448 | ||
|
|
876d87097a | ||
|
|
5ecbc2dd16 | ||
|
|
ff7ce41362 | ||
|
|
b90fc355fb | ||
|
|
c225276a7a | ||
|
|
79e180250c | ||
|
|
84b9d25374 | ||
|
|
a7678c367e | ||
|
|
035fedd30b | ||
|
|
7663c54905 | ||
|
|
7e159a5303 | ||
|
|
889592549b | ||
|
|
f24aa8807d | ||
|
|
82aa086673 | ||
|
|
18e157fe7a | ||
|
|
77a77575dc | ||
|
|
1806f6ba81 | ||
|
|
378e92e6ed | ||
|
|
aa2078a40e | ||
|
|
cb3f69f746 | ||
|
|
48c5bb4dc0 | ||
|
|
44d2f6a988 | ||
|
|
7df9a39172 | ||
|
|
5d38e0f24b | ||
|
|
427fdb2fb3 | ||
|
|
8292133522 | ||
|
|
5f8b37047a | ||
|
|
9cbdd45751 | ||
|
|
599a5a1969 | ||
|
|
e00f4cac59 | ||
|
|
d2ec27c6c4 | ||
|
|
db45d979db | ||
|
|
be23e13e33 | ||
|
|
00e1e69187 | ||
|
|
0d042630d5 | ||
|
|
4506858a83 | ||
|
|
e8a72f8234 | ||
|
|
fc6d256948 | ||
|
|
ed365a33c0 | ||
|
|
506de3c53d | ||
|
|
ac7ef48b0d | ||
|
|
a106bd1dd5 | ||
|
|
a7044da533 | ||
|
|
65cab46a84 | ||
|
|
cab419130e | ||
|
|
ab4f228aa8 | ||
|
|
95549e6da5 | ||
|
|
20a83b406e | ||
|
|
e874be7691 | ||
|
|
2f697aa06d | ||
|
|
63b06faece | ||
|
|
f54ce4f2fd | ||
|
|
9270d243cd | ||
|
|
44fabee8ca | ||
|
|
12a6d877a6 | ||
|
|
2f6a314b36 | ||
|
|
d4589aaba6 | ||
|
|
86b4144a4a | ||
|
|
47561a55a3 | ||
|
|
1a35644033 | ||
|
|
09d079b666 | ||
|
|
5853f9c714 | ||
|
|
c6cd861997 | ||
|
|
6fbca04f06 | ||
|
|
d214ca2c7d | ||
|
|
fd82ab4b60 | ||
|
|
01827a992d | ||
|
|
2603e6b5e3 | ||
|
|
9916f1e361 | ||
|
|
17f0f3d650 | ||
|
|
6c9fffd545 | ||
|
|
21e577c7d4 | ||
|
|
c938b99716 | ||
|
|
b4cfc84fc7 | ||
|
|
5236d0f75f | ||
|
|
b6991a3044 | ||
|
|
c0d262b572 | ||
|
|
f377302cbf | ||
|
|
3fe4a7846e | ||
|
|
e0166f471a | ||
|
|
f1273275cc | ||
|
|
69c25c5d44 | ||
|
|
f6c9743ad9 | ||
|
|
e704ab3921 | ||
|
|
156fed1b61 | ||
|
|
07077c2088 | ||
|
|
898ec49421 | ||
|
|
63047e51b1 | ||
|
|
98c4648d20 | ||
|
|
7d1e17bdb5 | ||
|
|
f5d0b935c1 | ||
|
|
a290f4a6fb | ||
|
|
54ad0d342f | ||
|
|
bbe58ca737 | ||
|
|
a9367c0219 | ||
|
|
213b0613c7 | ||
|
|
554eec1129 | ||
|
|
a7f020e8ef | ||
|
|
7de8318125 | ||
|
|
db47d62069 | ||
|
|
e15f2b8457 | ||
|
|
0b02513cc9 | ||
|
|
04a6430e97 | ||
|
|
c562fbc539 | ||
|
|
fa4996feef | ||
|
|
633ac888f6 | ||
|
|
46520308c4 | ||
|
|
871630f3ae | ||
|
|
a56e57fa0f | ||
|
|
592cf107d1 | ||
|
|
8d8c06ce86 | ||
|
|
3ed596a329 | ||
|
|
5a296a2d08 | ||
|
|
cd084721b4 | ||
|
|
60b07504ee | ||
|
|
a19c92bfdc | ||
|
|
498556d6ce | ||
|
|
892423a90f | ||
|
|
32ec863237 | ||
|
|
1d62499d40 | ||
|
|
df2b116867 | ||
|
|
89eb2c8800 | ||
|
|
a1f31b735a | ||
|
|
0d2f141c10 | ||
|
|
8b0ecf4e1b | ||
|
|
7e01f3b3bd | ||
|
|
09e716882d | ||
|
|
489fac7339 | ||
|
|
d10fe2ce21 | ||
|
|
d563ff20e6 | ||
|
|
dbc67efa98 | ||
|
|
a7987ade44 | ||
|
|
47b8c1a7b7 | ||
|
|
ac8ccca67a | ||
|
|
e34fe57a92 | ||
|
|
3de5537331 | ||
|
|
ee7700ef78 | ||
|
|
6fd3eaa287 | ||
|
|
1752ccf99c | ||
|
|
1274287f9f | ||
|
|
2f30a9ac28 | ||
|
|
8e99615c7e | ||
|
|
9d5a1b2275 | ||
|
|
ef3ca2047b | ||
|
|
208611801e | ||
|
|
9b34aedc1e | ||
|
|
b12c4e0208 | ||
|
|
703ce33008 | ||
|
|
07486f963f | ||
|
|
8ea1dec8f4 | ||
|
|
2b7b42f09e | ||
|
|
f49395839e | ||
|
|
7f2870796a | ||
|
|
e694a492cc | ||
|
|
c2252ade05 | ||
|
|
5510275b2c | ||
|
|
11d737da14 | ||
|
|
d28d396cb3 | ||
|
|
068c0224bf | ||
|
|
3f19e19952 | ||
|
|
5f3bd7ff9b | ||
|
|
dae08c370b | ||
|
|
9a64e4b43e | ||
|
|
796fcaa9e1 | ||
|
|
6b4bae76b6 | ||
|
|
7f9e7b1a08 | ||
|
|
15c4a7ec1c | ||
|
|
bdde95513a | ||
|
|
1f9c141ec5 | ||
|
|
d3e9368f34 | ||
|
|
21704f4531 | ||
|
|
cc3627ad00 | ||
|
|
ef2caa02b2 | ||
|
|
3a49a63dd1 | ||
|
|
3c02d8ffac | ||
|
|
cf098ef1a0 | ||
|
|
64923692c6 | ||
|
|
9d996d2c09 | ||
|
|
7b3ead329b | ||
|
|
ef0bff5ac3 | ||
|
|
6cdd172027 | ||
|
|
5cfa181420 | ||
|
|
489f88fa02 | ||
|
|
608a8ce8a1 | ||
|
|
9649cd8bea | ||
|
|
941c57cb07 | ||
|
|
f9dd8b57a4 | ||
|
|
00b254a9b3 | ||
|
|
ac04334897 | ||
|
|
f8def6184b | ||
|
|
91ebce1a9c | ||
|
|
bb3544e086 | ||
|
|
0de42947c7 | ||
|
|
5fd223ae9b | ||
|
|
202c4ebd40 | ||
|
|
9971990bd9 | ||
|
|
42a22d3c41 | ||
|
|
b64f543ee5 | ||
|
|
a8a14caeac | ||
|
|
e8d4ab8994 | ||
|
|
e2be6f657d | ||
|
|
03b3ff74f9 | ||
|
|
59a49a4483 | ||
|
|
c24998e79f | ||
|
|
e333f0e9ef | ||
|
|
88d1d3c8c1 | ||
|
|
ac23e46713 | ||
|
|
dcc2da107a | ||
|
|
64d6adb063 | ||
|
|
7a2d79f2ea | ||
|
|
6e9edc085b | ||
|
|
f807d7f559 | ||
|
|
7e359e1b8d | ||
|
|
0f01ac42a0 | ||
|
|
6ab81f87e8 | ||
|
|
8885100498 | ||
|
|
a53bbfd9e9 | ||
|
|
957b7c0199 | ||
|
|
3e7cd6d6c1 | ||
|
|
fc86ec1f39 | ||
|
|
4c6c4677fa | ||
|
|
20f54c2f61 | ||
|
|
7d2d4a1f82 | ||
|
|
bd98b14ba5 | ||
|
|
31ec113e54 | ||
|
|
b2e322a3fc | ||
|
|
ebe3c797dc | ||
|
|
36e8123e4c | ||
|
|
dafbed20d2 | ||
|
|
1b11ea80ee | ||
|
|
81c2d75048 | ||
|
|
fb9dbf30fa | ||
|
|
efa70e7a7c | ||
|
|
b6ffc92bb2 | ||
|
|
7db8be4a1e | ||
|
|
492c6ed39b | ||
|
|
1dc630ff26 | ||
|
|
726e1b6920 | ||
|
|
1a47fb03ea | ||
|
|
7f1fb05846 | ||
|
|
c56deb61c9 | ||
|
|
d91d2bb29f | ||
|
|
df665a3ec2 | ||
|
|
28975c5558 | ||
|
|
597de74ea0 | ||
|
|
a85838a618 | ||
|
|
121d62d922 | ||
|
|
5ca05a28df | ||
|
|
38ee1c7b92 | ||
|
|
82aa42080a | ||
|
|
cee5920fcc | ||
|
|
7836470f60 | ||
|
|
0535569d2f | ||
|
|
e3647002af | ||
|
|
e297f14676 | ||
|
|
f9f5f7aaa0 | ||
|
|
0c8ecb8364 | ||
|
|
7c9ef443e3 | ||
|
|
d4aae15fa5 | ||
|
|
b8381b6b25 | ||
|
|
d5bd72296b | ||
|
|
c81a6070cb | ||
|
|
d49dad9f9c | ||
|
|
9f3590ccba | ||
|
|
e1b03c3e43 | ||
|
|
071662545c | ||
|
|
beb540ec55 | ||
|
|
39e2e5af1e | ||
|
|
90f0ba840f | ||
|
|
639223058e | ||
|
|
0fa2f909cc | ||
|
|
e811c54d1d | ||
|
|
12fb14724d | ||
|
|
5a8b28621f | ||
|
|
32c9d71baf | ||
|
|
fffab86525 | ||
|
|
7a6d2e0110 | ||
|
|
f5545aa0b1 | ||
|
|
9430dfe7fa | ||
|
|
94116f93fb | ||
|
|
3be8cb7061 | ||
|
|
b2c786ea68 | ||
|
|
707ca990a9 | ||
|
|
e23c9b1fc5 | ||
|
|
108fec6130 | ||
|
|
caffafc38b | ||
|
|
b3ea3c45f9 | ||
|
|
9edf5eba4e | ||
|
|
b40d6dfb81 | ||
|
|
6a9599e4a9 | ||
|
|
8fff83588d | ||
|
|
555ee931bf | ||
|
|
034735a54c | ||
|
|
0b159549d4 | ||
|
|
e251d82f96 | ||
|
|
b886c8db8c | ||
|
|
3232a64598 | ||
|
|
efd1c31864 | ||
|
|
b8f9579133 | ||
|
|
982c68754d | ||
|
|
a13ec598a8 | ||
|
|
baa9dd4b5d | ||
|
|
699779324e | ||
|
|
4768fae6d4 | ||
|
|
0eda34689e | ||
|
|
aa743dc837 | ||
|
|
9c4ab4cb8c | ||
|
|
a7e999ee20 | ||
|
|
e2330f16ea | ||
|
|
1ab6ab9094 | ||
|
|
1535ad6327 | ||
|
|
4cc448fa82 | ||
|
|
5c7c2445d8 | ||
|
|
a0eaaf80b7 | ||
|
|
b1f6351eff | ||
|
|
6ecc602050 | ||
|
|
24c7134bff | ||
|
|
547e8233be | ||
|
|
ba66343558 | ||
|
|
2be4215f43 | ||
|
|
dd84952d15 | ||
|
|
f54d141211 | ||
|
|
a4e769d3f6 | ||
|
|
09e08c01ad | ||
|
|
0c03fa3208 | ||
|
|
aa7456e397 | ||
|
|
101b982263 | ||
|
|
3c3f9663e9 | ||
|
|
6504817680 | ||
|
|
67f3c2a764 | ||
|
|
25c26d2eba | ||
|
|
9f38748a19 | ||
|
|
61399adc3f | ||
|
|
6cbe80f564 | ||
|
|
f2a47eb080 | ||
|
|
a05c07b45a | ||
|
|
505297aa17 | ||
|
|
ff4030b6ad | ||
|
|
3465686076 | ||
|
|
fb4beb6338 | ||
|
|
aeb6671017 | ||
|
|
c10662e4cc | ||
|
|
5c3891fe3c | ||
|
|
74f666d741 | ||
|
|
816ab7fc8a | ||
|
|
d107b4f4bd | ||
|
|
1af7203e6d | ||
|
|
612ccec16c | ||
|
|
3ea8e22fc1 | ||
|
|
ed8f6f1a0f | ||
|
|
1d8c673587 | ||
|
|
8395c08738 | ||
|
|
4ef5339405 | ||
|
|
afebddccb3 | ||
|
|
d6097956a5 | ||
|
|
551b0fdc5c | ||
|
|
822fc7d9b8 | ||
|
|
6384755793 |
@@ -172,6 +172,7 @@ install: bundle
|
||||
$(Q)install -d "$(INSTALL_BINARY_DIR)"
|
||||
$(Q)install -d "$(INSTALL_ICON_DIR)"
|
||||
$(Q)install -d "$(INSTALL_DATA_DIR)/ai"
|
||||
$(Q)install -d "$(INSTALL_DATA_DIR)/game"
|
||||
$(Q)install -d "$(INSTALL_DATA_DIR)/baseset"
|
||||
$(Q)install -d "$(INSTALL_DATA_DIR)/lang"
|
||||
$(Q)install -d "$(INSTALL_DATA_DIR)/scripts"
|
||||
@@ -182,6 +183,7 @@ else
|
||||
endif
|
||||
$(Q)install -m 644 "$(BUNDLE_DIR)/lang/"* "$(INSTALL_DATA_DIR)/lang"
|
||||
$(Q)install -m 644 "$(BUNDLE_DIR)/ai/"* "$(INSTALL_DATA_DIR)/ai"
|
||||
$(Q)install -m 644 "$(BUNDLE_DIR)/game/"* "$(INSTALL_DATA_DIR)/game"
|
||||
$(Q)install -m 644 "$(BUNDLE_DIR)/baseset/"* "$(INSTALL_DATA_DIR)/baseset"
|
||||
$(Q)install -m 644 "$(BUNDLE_DIR)/scripts/"* "$(INSTALL_DATA_DIR)/scripts"
|
||||
ifndef DO_NOT_INSTALL_DOCS
|
||||
|
||||
@@ -5,16 +5,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/>.
|
||||
#
|
||||
# Building requires GRFCodec and NFORenum. Older versions of GRFCodec are
|
||||
# known to miscompile the graphics.
|
||||
# Building requires GRFCodec.
|
||||
#
|
||||
# Recent nightlies (including sources) of both can be found at:
|
||||
# Recent versions (including sources) can be found at:
|
||||
# http://www.openttd.org/download-grfcodec
|
||||
# http://www.openttd.org/download-nforenum
|
||||
#
|
||||
# The mercurial repository of both can be found at:
|
||||
# The mercurial repository can be found at:
|
||||
# http://hg.openttdcoop.org/grfcodec
|
||||
# http://hg.openttdcoop.org/nforenum
|
||||
#
|
||||
|
||||
|
||||
|
||||
@@ -43,23 +43,23 @@ RES := $(shell mkdir -p $(BIN_DIR)/lang )
|
||||
|
||||
all: table/strings.h $(LANGS)
|
||||
|
||||
strgen_base.o: $(SRC_DIR)/strgen/strgen_base.cpp $(SRC_DIR)/strgen/strgen.h endian_host.h $(SRC_DIR)/table/control_codes.h $(SRC_DIR)/table/strgen_tables.h
|
||||
strgen_base.o: $(SRC_DIR)/strgen/strgen_base.cpp $(SRC_DIR)/strgen/strgen.h endian_host.h $(SRC_DIR)/table/control_codes.h $(SRC_DIR)/table/strgen_tables.h $(SRC_DIR)/safeguards.h
|
||||
$(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.cpp=%.cpp)'
|
||||
$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) $(CXXFLAGS_BUILD) -DSTRGEN -c -o $@ $<
|
||||
|
||||
strgen.o: $(SRC_DIR)/strgen/strgen.cpp $(SRC_DIR)/strgen/strgen.h endian_host.h $(SRC_DIR)/table/control_codes.h $(SRC_DIR)/table/strgen_tables.h
|
||||
strgen.o: $(SRC_DIR)/strgen/strgen.cpp $(SRC_DIR)/strgen/strgen.h endian_host.h $(SRC_DIR)/table/control_codes.h $(SRC_DIR)/table/strgen_tables.h $(SRC_DIR)/safeguards.h
|
||||
$(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.cpp=%.cpp)'
|
||||
$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) $(CXXFLAGS_BUILD) -DSTRGEN -c -o $@ $<
|
||||
|
||||
string.o: $(SRC_DIR)/string.cpp endian_host.h
|
||||
string.o: $(SRC_DIR)/string.cpp endian_host.h $(SRC_DIR)/safeguards.h
|
||||
$(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.cpp=%.cpp)'
|
||||
$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) $(CXXFLAGS_BUILD) -DSTRGEN -c -o $@ $<
|
||||
|
||||
alloc_func.o: $(SRC_DIR)/core/alloc_func.cpp endian_host.h
|
||||
alloc_func.o: $(SRC_DIR)/core/alloc_func.cpp endian_host.h $(SRC_DIR)/safeguards.h
|
||||
$(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.cpp=%.cpp)'
|
||||
$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) $(CXXFLAGS_BUILD) -DSTRGEN -c -o $@ $<
|
||||
|
||||
getoptdata.o: $(SRC_DIR)/misc/getoptdata.cpp $(SRC_DIR)/misc/getoptdata.h
|
||||
getoptdata.o: $(SRC_DIR)/misc/getoptdata.cpp $(SRC_DIR)/misc/getoptdata.h $(SRC_DIR)/safeguards.h
|
||||
$(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/misc/%.cpp=%.cpp)'
|
||||
$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) $(CXXFLAGS_BUILD) -DSTRGEN -c -o $@ $<
|
||||
|
||||
|
||||
@@ -28,23 +28,23 @@ endif
|
||||
|
||||
all: table/settings.h
|
||||
|
||||
settingsgen.o: $(SRC_DIR)/settingsgen/settingsgen.cpp $(SRC_DIR)/string_func.h $(SRC_DIR)/strings_type.h $(SRC_DIR)/misc/getoptdata.h $(SRC_DIR)/ini_type.h $(SRC_DIR)/core/smallvec_type.hpp
|
||||
settingsgen.o: $(SRC_DIR)/settingsgen/settingsgen.cpp $(SRC_DIR)/string_func.h $(SRC_DIR)/strings_type.h $(SRC_DIR)/misc/getoptdata.h $(SRC_DIR)/ini_type.h $(SRC_DIR)/core/smallvec_type.hpp $(SRC_DIR)/safeguards.h
|
||||
$(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.cpp=%.cpp)'
|
||||
$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) $(CXXFLAGS_BUILD) -DSETTINGSGEN -c -o $@ $<
|
||||
|
||||
alloc_func.o: $(SRC_DIR)/core/alloc_func.cpp endian_host.h
|
||||
alloc_func.o: $(SRC_DIR)/core/alloc_func.cpp endian_host.h $(SRC_DIR)/safeguards.h
|
||||
$(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.cpp=%.cpp)'
|
||||
$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) $(CXXFLAGS_BUILD) -DSETTINGSGEN -c -o $@ $<
|
||||
|
||||
getoptdata.o: $(SRC_DIR)/misc/getoptdata.cpp $(SRC_DIR)/misc/getoptdata.h
|
||||
getoptdata.o: $(SRC_DIR)/misc/getoptdata.cpp $(SRC_DIR)/misc/getoptdata.h $(SRC_DIR)/safeguards.h
|
||||
$(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/misc/%.cpp=%.cpp)'
|
||||
$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) $(CXXFLAGS_BUILD) -DSETTINGSGEN -c -o $@ $<
|
||||
|
||||
string.o: $(SRC_DIR)/string.cpp endian_host.h
|
||||
string.o: $(SRC_DIR)/string.cpp endian_host.h $(SRC_DIR)/safeguards.h
|
||||
$(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.cpp=%.cpp)'
|
||||
$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) $(CXXFLAGS_BUILD) -DSETTINGSGEN -c -o $@ $<
|
||||
|
||||
ini_load.o: $(SRC_DIR)/ini_load.cpp $(SRC_DIR)/core/alloc_func.hpp $(SRC_DIR)/core/mem_func.hpp $(SRC_DIR)/ini_type.h $(SRC_DIR)/string_func.h
|
||||
ini_load.o: $(SRC_DIR)/ini_load.cpp $(SRC_DIR)/core/alloc_func.hpp $(SRC_DIR)/core/mem_func.hpp $(SRC_DIR)/ini_type.h $(SRC_DIR)/string_func.h $(SRC_DIR)/safeguards.h
|
||||
$(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.cpp=%.cpp)'
|
||||
$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) $(CXXFLAGS_BUILD) -DSETTINGSGEN -c -o $@ $<
|
||||
|
||||
|
||||
16
android-extract-strings.sh
Executable file
16
android-extract-strings.sh
Executable file
@@ -0,0 +1,16 @@
|
||||
#!/bin/sh
|
||||
|
||||
mkdir -p ../translations/lang
|
||||
git diff 1.6/master -- src/lang/english.txt | tail -n +5 | grep '^[+]' | cut -b 2- | \
|
||||
grep -v "^STR_TABLET_CLOSE\b" | \
|
||||
grep -v "^STR_TABLET_SHIFT\b" | \
|
||||
grep -v "^STR_TABLET_CTRL\b" | \
|
||||
cat > ../translations/lang/english.txt
|
||||
|
||||
for f in src/lang/*.txt; do
|
||||
[ "$f" = src/lang/english.txt ] && continue
|
||||
rm -f ../translations/lang/`basename $f`
|
||||
cat ../translations/lang/english.txt | grep '^STR' | while read name text; do
|
||||
grep "^$name\b" $f >> ../translations/lang/`basename $f`
|
||||
done
|
||||
done
|
||||
13
android-store-strings.sh
Executable file
13
android-store-strings.sh
Executable file
@@ -0,0 +1,13 @@
|
||||
#!/bin/sh
|
||||
|
||||
for f in ../translations/lang/*.txt; do
|
||||
[ "$f" = ../translations/lang/english.txt ] && continue
|
||||
out=src/lang/`basename $f`
|
||||
grep "^# Android strings" $out > /dev/null || [ -z "`tail -c 2 $out`" ] || echo >> $out
|
||||
{ grep -v "^# Android strings" $out ; echo "# Android strings" ; } > $out.new
|
||||
mv -f $out.new $out
|
||||
cat $f | grep '^STR' | while read name text; do
|
||||
{ grep -v "^$name\b" $out ; printf "%-64s%s\n" "$name" "$text" ; } > $out.new
|
||||
mv -f $out.new $out
|
||||
done
|
||||
done
|
||||
@@ -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.5 API compatibility in effect.");
|
||||
|
||||
8
bin/ai/compat_1.6.nut
Normal file
8
bin/ai/compat_1.6.nut
Normal file
@@ -0,0 +1,8 @@
|
||||
/* $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/>.
|
||||
*/
|
||||
@@ -2,12 +2,12 @@
|
||||
|
||||
# $Id$
|
||||
|
||||
if ! [ -f ai/regression/regression.nut ]; then
|
||||
if ! [ -f ai/regression/completeness.sh ]; then
|
||||
echo "Make sure you are in the root of OpenTTD before starting this script."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cat ai/regression/regression.nut | tr ';' '\n' | awk '
|
||||
cat ai/regression/tst_*/main.nut | tr ';' '\n' | awk '
|
||||
/^function/ {
|
||||
for (local in locals) {
|
||||
delete locals[local]
|
||||
@@ -61,7 +61,7 @@ cat ai/regression/regression.nut | tr ';' '\n' | awk '
|
||||
}
|
||||
' | sed 's/ //g' | sort | uniq > tmp.in_regression
|
||||
|
||||
grep 'DefSQ.*Method' ../src/ai/api/*.hpp.sq | grep -v 'AIError::' | grep -v 'AIAbstractList::Valuate' | grep -v '::GetClassName' | sed 's/^[^,]*, &//g;s/,[^,]*//g' | sort > tmp.in_api
|
||||
grep 'DefSQ.*Method' ../src/script/api/ai/*.hpp.sq | grep -v 'AIError::' | grep -v 'AIAbstractList::Valuate' | grep -v '::GetClassName' | sed 's/^[^,]*, &//g;s/,[^,]*//g' | sort > tmp.in_api
|
||||
|
||||
diff -u tmp.in_regression tmp.in_api | grep -v '^+++' | grep '^+' | sed 's/^+//'
|
||||
|
||||
|
||||
@@ -4,9 +4,9 @@ class Regression extends AIInfo {
|
||||
function GetAuthor() { return "OpenTTD NoAI Developers Team"; }
|
||||
function GetName() { return "Regression"; }
|
||||
function GetShortName() { return "REGR"; }
|
||||
function GetDescription() { return "This runs regression-tests on all commands. On the same map the result should always be the same."; }
|
||||
function GetDescription() { return "This runs regression-tests on some commands. On the same map the result should always be the same."; }
|
||||
function GetVersion() { return 1; }
|
||||
function GetAPIVersion() { return "1.5"; }
|
||||
function GetAPIVersion() { return "1.6"; }
|
||||
function GetDate() { return "2007-03-18"; }
|
||||
function CreateInstance() { return "Regression"; }
|
||||
}
|
||||
|
||||
@@ -2,14 +2,11 @@
|
||||
|
||||
# $Id$
|
||||
|
||||
if ! [ -f ai/regression/regression.nut ]; then
|
||||
if ! [ -f ai/regression/run.sh ]; then
|
||||
echo "Make sure you are in the root of OpenTTD before starting this script."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cp ai/regression/regression.nut ai/regression/main.nut
|
||||
cp ai/regression/regression_info.nut ai/regression/info.nut
|
||||
|
||||
if [ -f scripts/game_start.scr ]; then
|
||||
mv scripts/game_start.scr scripts/game_start.scr.regression
|
||||
fi
|
||||
@@ -22,27 +19,46 @@ fi
|
||||
if [ "$1" = "-g" ]; then
|
||||
gdb="gdb --ex run --args "
|
||||
fi
|
||||
if [ -n "$gdb" ]; then
|
||||
$gdb ./openttd -x -c ai/regression/regression.cfg $params -g ai/regression/regression.sav
|
||||
|
||||
if [ -d "ai/regression/tst_$1" ]; then
|
||||
tests="ai/regression/tst_$1"
|
||||
elif [ -d "ai/regression/tst_$2" ]; then
|
||||
tests="ai/regression/tst_$2"
|
||||
else
|
||||
./openttd -x -c ai/regression/regression.cfg $params -g ai/regression/regression.sav -d script=2 -d misc=9 2>&1 | awk '{ gsub("0x(\\(nil\\)|0+)(x0)?", "0x00000000", $0); gsub("^dbg: \\[script\\]", "", $0); gsub("^ ", "ERROR: ", $0); gsub("ERROR: \\[1\\] ", "", $0); gsub("\\[P\\] ", "", $0); print $0; }' | grep -v '^dbg: \[.*\]' > tmp.regression
|
||||
tests=ai/regression/tst_*
|
||||
fi
|
||||
|
||||
ret=0
|
||||
if [ -z "$gdb" ]; then
|
||||
res="`diff -ub ai/regression/regression.txt tmp.regression`"
|
||||
if [ -z "$res" ]; then
|
||||
echo "Regression test passed!"
|
||||
else
|
||||
echo "Regression test failed! Difference:"
|
||||
echo "$res"
|
||||
ret=1
|
||||
fi
|
||||
echo ""
|
||||
echo "Regression test done"
|
||||
fi
|
||||
for tst in $tests; do
|
||||
echo -n "Running $tst... "
|
||||
|
||||
rm -f ai/regression/main.nut ai/regression/info.nut
|
||||
# Make sure that only one info.nut is present for each test run. Otherwise openttd gets confused.
|
||||
cp ai/regression/regression_info.nut $tst/info.nut
|
||||
|
||||
sav=$tst/test.sav
|
||||
if ! [ -f $sav ]; then
|
||||
sav=ai/regression/empty.sav
|
||||
fi
|
||||
|
||||
if [ -n "$gdb" ]; then
|
||||
$gdb ./openttd -x -c ai/regression/regression.cfg $params -g $sav
|
||||
else
|
||||
./openttd -x -c ai/regression/regression.cfg $params -g $sav -d script=2 -d misc=9 2>&1 | awk '{ gsub("0x(\\(nil\\)|0+)(x0)?", "0x00000000", $0); gsub("^dbg: \\[script\\]", "", $0); gsub("^ ", "ERROR: ", $0); gsub("ERROR: \\[1\\] ", "", $0); gsub("\\[P\\] ", "", $0); print $0; }' | grep -v '^dbg: \[.*\]' > tmp.regression
|
||||
fi
|
||||
|
||||
if [ -z "$gdb" ]; then
|
||||
res="`diff -ub $tst/result.txt tmp.regression`"
|
||||
if [ -z "$res" ]; then
|
||||
echo "passed!"
|
||||
else
|
||||
echo "failed! Difference:"
|
||||
echo "$res"
|
||||
ret=1
|
||||
fi
|
||||
fi
|
||||
|
||||
rm $tst/info.nut
|
||||
done
|
||||
|
||||
if [ -f scripts/game_start.scr.regression ]; then
|
||||
mv scripts/game_start.scr.regression scripts/game_start.scr
|
||||
|
||||
@@ -972,48 +972,7 @@ function Regression::Order()
|
||||
print(" SetStopLocation(): " + AIOrder.SetStopLocation(20, 0, AIOrder.STOPLOCATION_MIDDLE));
|
||||
print(" GetStopLocation(): " + AIOrder.GetStopLocation(20, 0));
|
||||
|
||||
local list = AIStationList_Vehicle(12);
|
||||
|
||||
print("");
|
||||
print("--StationList_Vehicle--");
|
||||
print(" Count(): " + list.Count());
|
||||
list.Valuate(AIStation.GetLocation);
|
||||
print(" Location ListDump:");
|
||||
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
|
||||
print(" " + i + " => " + list.GetValue(i));
|
||||
}
|
||||
list.Valuate(AIStation.GetCargoWaiting, 0);
|
||||
print(" CargoWaiting(0) ListDump:");
|
||||
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
|
||||
print(" " + i + " => " + list.GetValue(i));
|
||||
}
|
||||
list.Valuate(AIStation.GetCargoWaiting, 1);
|
||||
print(" CargoWaiting(1) ListDump:");
|
||||
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
|
||||
print(" " + i + " => " + list.GetValue(i));
|
||||
}
|
||||
list.Valuate(AIStation.GetCargoRating, 1);
|
||||
print(" CargoRating(1) ListDump:");
|
||||
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
|
||||
print(" " + i + " => " + list.GetValue(i));
|
||||
}
|
||||
list.Valuate(AIStation.GetDistanceManhattanToTile, 30000);
|
||||
print(" DistanceManhattanToTile(30000) ListDump:");
|
||||
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
|
||||
print(" " + i + " => " + list.GetValue(i));
|
||||
}
|
||||
list.Valuate(AIStation.GetDistanceSquareToTile, 30000);
|
||||
print(" DistanceSquareToTile(30000) ListDump:");
|
||||
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
|
||||
print(" " + i + " => " + list.GetValue(i));
|
||||
}
|
||||
list.Valuate(AIStation.IsWithinTownInfluence, 0);
|
||||
print(" IsWithinTownInfluence(0) ListDump:");
|
||||
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
|
||||
print(" " + i + " => " + list.GetValue(i));
|
||||
}
|
||||
|
||||
list = AIVehicleList_Station(3);
|
||||
local list = AIVehicleList_Station(3);
|
||||
|
||||
print("");
|
||||
print("--VehicleList_Station--");
|
||||
@@ -1234,10 +1193,6 @@ function Regression::Station()
|
||||
print(" GetLocation(1000): " + AIStation.GetLocation(1000));
|
||||
print(" GetStationID(33411): " + AIStation.GetStationID(33411));
|
||||
print(" GetStationID(34411): " + AIStation.GetStationID(34411));
|
||||
print(" GetCargoWaiting(0, 0): " + AIStation.GetCargoWaiting(0, 0));
|
||||
print(" GetCargoWaiting(1000, 0): " + AIStation.GetCargoWaiting(1000, 0));
|
||||
print(" GetCargoWaiting(0, 1000): " + AIStation.GetCargoWaiting(0, 1000));
|
||||
|
||||
print(" GetStationID(33411): " + AIStation.GetStationID(33411));
|
||||
print(" HasRoadType(3, TRAM): " + AIStation.HasRoadType(3, AIRoad.ROADTYPE_TRAM));
|
||||
print(" HasRoadType(3, ROAD): " + AIStation.HasRoadType(3, AIRoad.ROADTYPE_ROAD));
|
||||
@@ -1254,25 +1209,42 @@ function Regression::Station()
|
||||
print(" GetNearestTown(): " + AIStation.GetNearestTown(10000));
|
||||
print(" GetNearestTown(): " + AIStation.GetNearestTown(3));
|
||||
|
||||
local list = AIStationList(AIStation.STATION_BUS_STOP + AIStation.STATION_TRUCK_STOP);
|
||||
print("");
|
||||
print("--CargoWaiting--");
|
||||
for (local cargo = 0; cargo <= 1000; cargo += 1000) {
|
||||
for (local station0 = 0; station0 <= 1000; station0 += 1000) {
|
||||
print(" GetCargoWaiting(" + station0 + ", " + cargo + "): " +
|
||||
AIStation.GetCargoWaiting(station0, cargo));
|
||||
for (local station1 = 0; station1 <= 1000; station1 += 1000) {
|
||||
print(" GetCargoWaitingFrom(" + station0 + ", " + station1 + ", " + cargo + "): " +
|
||||
AIStation.GetCargoWaitingFrom(station0, station1, cargo));
|
||||
print(" GetCargoWaitingVia(" + station0 + ", " + station1 + ", " + cargo + "): " +
|
||||
AIStation.GetCargoWaitingFrom(station0, station1, cargo));
|
||||
for (local station2 = 0; station2 <= 1000; station2 += 1000) {
|
||||
print(" GetCargoWaitingFromVia(" + station0 + ", " + station1 + ", " + station2 + ", " + cargo + "): " +
|
||||
AIStation.GetCargoWaitingFromVia(station0, station1, station2, cargo));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
print("");
|
||||
print("--StationList--");
|
||||
print(" Count(): " + list.Count());
|
||||
list.Valuate(AIStation.GetLocation);
|
||||
print(" Location ListDump:");
|
||||
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
|
||||
print(" " + i + " => " + list.GetValue(i));
|
||||
}
|
||||
list.Valuate(AIStation.GetCargoWaiting, 0);
|
||||
print(" CargoWaiting(0) ListDump:");
|
||||
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
|
||||
print(" " + i + " => " + list.GetValue(i));
|
||||
}
|
||||
list.Valuate(AIStation.GetCargoWaiting, 1);
|
||||
print(" CargoWaiting(1) ListDump:");
|
||||
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
|
||||
print(" " + i + " => " + list.GetValue(i));
|
||||
print("--CargoPlanned--");
|
||||
for (local cargo = 0; cargo <= 1000; cargo += 1000) {
|
||||
for (local station0 = 0; station0 <= 1000; station0 += 1000) {
|
||||
print(" GetCargoPlanned(" + station0 + ", " + cargo + "): " +
|
||||
AIStation.GetCargoPlanned(station0, cargo));
|
||||
for (local station1 = 0; station1 <= 1000; station1 += 1000) {
|
||||
print(" GetCargoPlannedFrom(" + station0 + ", " + station1 + ", " + cargo + "): " +
|
||||
AIStation.GetCargoPlannedFrom(station0, station1, cargo));
|
||||
print(" GetCargoPlannedVia(" + station0 + ", " + station1 + ", " + cargo + "): " +
|
||||
AIStation.GetCargoPlannedFrom(station0, station1, cargo));
|
||||
for (local station2 = 0; station2 <= 1000; station2 += 1000) {
|
||||
print(" GetCargoPlannedFromVia(" + station0 + ", " + station1 + ", " + station2 + ", " + cargo + "): " +
|
||||
AIStation.GetCargoPlannedFromVia(station0, station1, station2, cargo));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7487,9 +7487,6 @@ ERROR: IsEnd() is invalid as Begin() is never called
|
||||
GetLocation(1000): -1
|
||||
GetStationID(33411): 4
|
||||
GetStationID(34411): 65535
|
||||
GetCargoWaiting(0, 0): 0
|
||||
GetCargoWaiting(1000, 0): -1
|
||||
GetCargoWaiting(0, 1000): -1
|
||||
GetStationID(33411): 4
|
||||
HasRoadType(3, TRAM): false
|
||||
HasRoadType(3, ROAD): false
|
||||
@@ -7504,17 +7501,81 @@ ERROR: IsEnd() is invalid as Begin() is never called
|
||||
GetNearestTown(): 65535
|
||||
GetNearestTown(): 10
|
||||
|
||||
--StationList--
|
||||
Count(): 2
|
||||
Location ListDump:
|
||||
5 => 33421
|
||||
4 => 33411
|
||||
CargoWaiting(0) ListDump:
|
||||
5 => 0
|
||||
4 => 0
|
||||
CargoWaiting(1) ListDump:
|
||||
5 => 0
|
||||
4 => 0
|
||||
--CargoWaiting--
|
||||
GetCargoWaiting(0, 0): 0
|
||||
GetCargoWaitingFrom(0, 0, 0): 0
|
||||
GetCargoWaitingVia(0, 0, 0): 0
|
||||
GetCargoWaitingFromVia(0, 0, 0, 0): 0
|
||||
GetCargoWaitingFromVia(0, 0, 1000, 0): -1
|
||||
GetCargoWaitingFrom(0, 1000, 0): -1
|
||||
GetCargoWaitingVia(0, 1000, 0): -1
|
||||
GetCargoWaitingFromVia(0, 1000, 0, 0): -1
|
||||
GetCargoWaitingFromVia(0, 1000, 1000, 0): -1
|
||||
GetCargoWaiting(1000, 0): -1
|
||||
GetCargoWaitingFrom(1000, 0, 0): -1
|
||||
GetCargoWaitingVia(1000, 0, 0): -1
|
||||
GetCargoWaitingFromVia(1000, 0, 0, 0): -1
|
||||
GetCargoWaitingFromVia(1000, 0, 1000, 0): -1
|
||||
GetCargoWaitingFrom(1000, 1000, 0): -1
|
||||
GetCargoWaitingVia(1000, 1000, 0): -1
|
||||
GetCargoWaitingFromVia(1000, 1000, 0, 0): -1
|
||||
GetCargoWaitingFromVia(1000, 1000, 1000, 0): -1
|
||||
GetCargoWaiting(0, 1000): -1
|
||||
GetCargoWaitingFrom(0, 0, 1000): -1
|
||||
GetCargoWaitingVia(0, 0, 1000): -1
|
||||
GetCargoWaitingFromVia(0, 0, 0, 1000): -1
|
||||
GetCargoWaitingFromVia(0, 0, 1000, 1000): -1
|
||||
GetCargoWaitingFrom(0, 1000, 1000): -1
|
||||
GetCargoWaitingVia(0, 1000, 1000): -1
|
||||
GetCargoWaitingFromVia(0, 1000, 0, 1000): -1
|
||||
GetCargoWaitingFromVia(0, 1000, 1000, 1000): -1
|
||||
GetCargoWaiting(1000, 1000): -1
|
||||
GetCargoWaitingFrom(1000, 0, 1000): -1
|
||||
GetCargoWaitingVia(1000, 0, 1000): -1
|
||||
GetCargoWaitingFromVia(1000, 0, 0, 1000): -1
|
||||
GetCargoWaitingFromVia(1000, 0, 1000, 1000): -1
|
||||
GetCargoWaitingFrom(1000, 1000, 1000): -1
|
||||
GetCargoWaitingVia(1000, 1000, 1000): -1
|
||||
GetCargoWaitingFromVia(1000, 1000, 0, 1000): -1
|
||||
GetCargoWaitingFromVia(1000, 1000, 1000, 1000): -1
|
||||
|
||||
--CargoPlanned--
|
||||
GetCargoPlanned(0, 0): 0
|
||||
GetCargoPlannedFrom(0, 0, 0): 0
|
||||
GetCargoPlannedVia(0, 0, 0): 0
|
||||
GetCargoPlannedFromVia(0, 0, 0, 0): 0
|
||||
GetCargoPlannedFromVia(0, 0, 1000, 0): -1
|
||||
GetCargoPlannedFrom(0, 1000, 0): -1
|
||||
GetCargoPlannedVia(0, 1000, 0): -1
|
||||
GetCargoPlannedFromVia(0, 1000, 0, 0): -1
|
||||
GetCargoPlannedFromVia(0, 1000, 1000, 0): -1
|
||||
GetCargoPlanned(1000, 0): -1
|
||||
GetCargoPlannedFrom(1000, 0, 0): -1
|
||||
GetCargoPlannedVia(1000, 0, 0): -1
|
||||
GetCargoPlannedFromVia(1000, 0, 0, 0): -1
|
||||
GetCargoPlannedFromVia(1000, 0, 1000, 0): -1
|
||||
GetCargoPlannedFrom(1000, 1000, 0): -1
|
||||
GetCargoPlannedVia(1000, 1000, 0): -1
|
||||
GetCargoPlannedFromVia(1000, 1000, 0, 0): -1
|
||||
GetCargoPlannedFromVia(1000, 1000, 1000, 0): -1
|
||||
GetCargoPlanned(0, 1000): -1
|
||||
GetCargoPlannedFrom(0, 0, 1000): -1
|
||||
GetCargoPlannedVia(0, 0, 1000): -1
|
||||
GetCargoPlannedFromVia(0, 0, 0, 1000): -1
|
||||
GetCargoPlannedFromVia(0, 0, 1000, 1000): -1
|
||||
GetCargoPlannedFrom(0, 1000, 1000): -1
|
||||
GetCargoPlannedVia(0, 1000, 1000): -1
|
||||
GetCargoPlannedFromVia(0, 1000, 0, 1000): -1
|
||||
GetCargoPlannedFromVia(0, 1000, 1000, 1000): -1
|
||||
GetCargoPlanned(1000, 1000): -1
|
||||
GetCargoPlannedFrom(1000, 0, 1000): -1
|
||||
GetCargoPlannedVia(1000, 0, 1000): -1
|
||||
GetCargoPlannedFromVia(1000, 0, 0, 1000): -1
|
||||
GetCargoPlannedFromVia(1000, 0, 1000, 1000): -1
|
||||
GetCargoPlannedFrom(1000, 1000, 1000): -1
|
||||
GetCargoPlannedVia(1000, 1000, 1000): -1
|
||||
GetCargoPlannedFromVia(1000, 1000, 0, 1000): -1
|
||||
GetCargoPlannedFromVia(1000, 1000, 1000, 1000): -1
|
||||
|
||||
--Tile--
|
||||
HasTreeOnTile(): false
|
||||
@@ -9106,30 +9167,6 @@ ERROR: IsEnd() is invalid as Begin() is never called
|
||||
SetStopLocation(): true
|
||||
GetStopLocation(): 1
|
||||
|
||||
--StationList_Vehicle--
|
||||
Count(): 2
|
||||
Location ListDump:
|
||||
5 => 33421
|
||||
4 => 33411
|
||||
CargoWaiting(0) ListDump:
|
||||
5 => 0
|
||||
4 => 0
|
||||
CargoWaiting(1) ListDump:
|
||||
5 => 0
|
||||
4 => 0
|
||||
CargoRating(1) ListDump:
|
||||
5 => -1
|
||||
4 => -1
|
||||
DistanceManhattanToTile(30000) ListDump:
|
||||
5 => 106
|
||||
4 => 96
|
||||
DistanceSquareToTile(30000) ListDump:
|
||||
5 => 8818
|
||||
4 => 7058
|
||||
IsWithinTownInfluence(0) ListDump:
|
||||
5 => 0
|
||||
4 => 0
|
||||
|
||||
--VehicleList_Station--
|
||||
Count(): 1
|
||||
Location ListDump:
|
||||
216
bin/ai/regression/tst_stationlist/main.nut
Normal file
216
bin/ai/regression/tst_stationlist/main.nut
Normal file
@@ -0,0 +1,216 @@
|
||||
/* $Id$ */
|
||||
|
||||
class Regression extends AIController {
|
||||
function Start();
|
||||
};
|
||||
|
||||
|
||||
function Regression::StationList()
|
||||
{
|
||||
local list = AIStationList(AIStation.STATION_BUS_STOP + AIStation.STATION_TRUCK_STOP);
|
||||
|
||||
print("");
|
||||
print("--StationList--");
|
||||
print(" Count(): " + list.Count());
|
||||
list.Valuate(AIStation.GetLocation);
|
||||
print(" Location ListDump:");
|
||||
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
|
||||
print(" " + i + " => " + list.GetValue(i));
|
||||
}
|
||||
list.Valuate(AIStation.GetCargoWaiting, 0);
|
||||
print(" CargoWaiting(0) ListDump:");
|
||||
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
|
||||
print(" " + i + " => " + list.GetValue(i));
|
||||
}
|
||||
list.Valuate(AIStation.GetCargoWaiting, 1);
|
||||
print(" CargoWaiting(1) ListDump:");
|
||||
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
|
||||
print(" " + i + " => " + list.GetValue(i));
|
||||
}
|
||||
};
|
||||
|
||||
function Regression::StationList_Cargo()
|
||||
{
|
||||
print("");
|
||||
print("--StationList_Cargo--");
|
||||
|
||||
for (local mode = AIStationList_Cargo.CM_WAITING; mode <= AIStationList_Cargo.CM_PLANNED; ++mode) {
|
||||
print(" " + mode);
|
||||
for (local selector = AIStationList_Cargo.CS_BY_FROM; selector <= AIStationList_Cargo.CS_FROM_BY_VIA ; ++selector) {
|
||||
print(" " + selector);
|
||||
local list = AIStationList_Cargo(mode, selector, 6, 0, 7);
|
||||
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
|
||||
print(" " + i + " => " + list.GetValue(i));
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
function Regression::StationList_CargoPlanned()
|
||||
{
|
||||
print("");
|
||||
print("--StationList_CargoPlanned--");
|
||||
|
||||
for (local selector = AIStationList_Cargo.CS_BY_FROM; selector <= AIStationList_Cargo.CS_FROM_BY_VIA; ++selector) {
|
||||
print(" " + selector);
|
||||
local list = AIStationList_CargoPlanned(selector, 6, 0, 7);
|
||||
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
|
||||
print(" " + i + " => " + list.GetValue(i));
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
function Regression::StationList_CargoPlannedByFrom()
|
||||
{
|
||||
print("");
|
||||
print("--StationList_CargoPlannedByFrom--");
|
||||
local list = AIStationList_CargoPlannedByFrom(2, 0);
|
||||
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
|
||||
print(" " + i + " => " + list.GetValue(i));
|
||||
}
|
||||
};
|
||||
|
||||
function Regression::StationList_CargoPlannedByVia()
|
||||
{
|
||||
print("");
|
||||
print("--StationList_CargoPlannedByVia--");
|
||||
local list = AIStationList_CargoPlannedByVia(2, 0);
|
||||
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
|
||||
print(" " + i + " => " + list.GetValue(i));
|
||||
}
|
||||
};
|
||||
|
||||
function Regression::StationList_CargoPlannedViaByFrom()
|
||||
{
|
||||
print("");
|
||||
print("--StationList_CargoPlannedViaByFrom--");
|
||||
local list = AIStationList_CargoPlannedViaByFrom(6, 0, 7);
|
||||
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
|
||||
print(" " + i + " => " + list.GetValue(i));
|
||||
}
|
||||
};
|
||||
|
||||
function Regression::StationList_CargoPlannedFromByVia()
|
||||
{
|
||||
print("");
|
||||
print("--StationList_CargoPlannedFromByVia--");
|
||||
local list = AIStationList_CargoPlannedFromByVia(6, 0, 7);
|
||||
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
|
||||
print(" " + i + " => " + list.GetValue(i));
|
||||
}
|
||||
};
|
||||
|
||||
function Regression::StationList_CargoWaiting()
|
||||
{
|
||||
print("");
|
||||
print("--StationList_CargoWaiting--");
|
||||
|
||||
for (local selector = AIStationList_Cargo.CS_BY_FROM; selector <= AIStationList_Cargo.CS_FROM_BY_VIA; ++selector) {
|
||||
print(" " + selector);
|
||||
local list = AIStationList_CargoWaiting(selector, 6, 0, 7);
|
||||
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
|
||||
print(" " + i + " => " + list.GetValue(i));
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
function Regression::StationList_CargoWaitingByFrom()
|
||||
{
|
||||
print("");
|
||||
print("--StationList_CargoWaitingByFrom--");
|
||||
local list = AIStationList_CargoWaitingByFrom(2, 0);
|
||||
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
|
||||
print(" " + i + " => " + list.GetValue(i));
|
||||
}
|
||||
};
|
||||
|
||||
function Regression::StationList_CargoWaitingByVia()
|
||||
{
|
||||
print("");
|
||||
print("--StationList_CargoWaitingByVia--");
|
||||
local list = AIStationList_CargoWaitingByVia(2, 0);
|
||||
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
|
||||
print(" " + i + " => " + list.GetValue(i));
|
||||
}
|
||||
};
|
||||
|
||||
function Regression::StationList_CargoWaitingViaByFrom()
|
||||
{
|
||||
print("");
|
||||
print("--StationList_CargoWaitingViaByFrom--");
|
||||
local list = AIStationList_CargoWaitingViaByFrom(6, 0, 7);
|
||||
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
|
||||
print(" " + i + " => " + list.GetValue(i));
|
||||
}
|
||||
};
|
||||
|
||||
function Regression::StationList_CargoWaitingFromByVia()
|
||||
{
|
||||
print("");
|
||||
print("--StationList_CargoWaitingFromByVia--");
|
||||
local list = AIStationList_CargoWaitingFromByVia(2, 0, 2);
|
||||
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
|
||||
print(" " + i + " => " + list.GetValue(i));
|
||||
}
|
||||
};
|
||||
|
||||
function Regression::StationList_Vehicle()
|
||||
{
|
||||
local list = AIStationList_Vehicle(12);
|
||||
|
||||
print("");
|
||||
print("--StationList_Vehicle--");
|
||||
print(" Count(): " + list.Count());
|
||||
list.Valuate(AIStation.GetLocation);
|
||||
print(" Location ListDump:");
|
||||
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
|
||||
print(" " + i + " => " + list.GetValue(i));
|
||||
}
|
||||
list.Valuate(AIStation.GetCargoWaiting, 0);
|
||||
print(" CargoWaiting(0) ListDump:");
|
||||
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
|
||||
print(" " + i + " => " + list.GetValue(i));
|
||||
}
|
||||
list.Valuate(AIStation.GetCargoWaiting, 1);
|
||||
print(" CargoWaiting(1) ListDump:");
|
||||
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
|
||||
print(" " + i + " => " + list.GetValue(i));
|
||||
}
|
||||
list.Valuate(AIStation.GetCargoRating, 1);
|
||||
print(" CargoRating(1) ListDump:");
|
||||
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
|
||||
print(" " + i + " => " + list.GetValue(i));
|
||||
}
|
||||
list.Valuate(AIStation.GetDistanceManhattanToTile, 30000);
|
||||
print(" DistanceManhattanToTile(30000) ListDump:");
|
||||
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
|
||||
print(" " + i + " => " + list.GetValue(i));
|
||||
}
|
||||
list.Valuate(AIStation.GetDistanceSquareToTile, 30000);
|
||||
print(" DistanceSquareToTile(30000) ListDump:");
|
||||
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
|
||||
print(" " + i + " => " + list.GetValue(i));
|
||||
}
|
||||
list.Valuate(AIStation.IsWithinTownInfluence, 0);
|
||||
print(" IsWithinTownInfluence(0) ListDump:");
|
||||
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
|
||||
print(" " + i + " => " + list.GetValue(i));
|
||||
}
|
||||
}
|
||||
|
||||
function Regression::Start()
|
||||
{
|
||||
StationList();
|
||||
StationList_Cargo();
|
||||
StationList_CargoPlanned();
|
||||
StationList_CargoPlannedByFrom();
|
||||
StationList_CargoPlannedByVia();
|
||||
StationList_CargoPlannedViaByFrom();
|
||||
StationList_CargoPlannedFromByVia();
|
||||
StationList_CargoWaiting();
|
||||
StationList_CargoWaitingByFrom();
|
||||
StationList_CargoWaitingByVia();
|
||||
StationList_CargoWaitingViaByFrom();
|
||||
StationList_CargoWaitingFromByVia();
|
||||
StationList_Vehicle();
|
||||
}
|
||||
127
bin/ai/regression/tst_stationlist/result.txt
Normal file
127
bin/ai/regression/tst_stationlist/result.txt
Normal file
@@ -0,0 +1,127 @@
|
||||
|
||||
--StationList--
|
||||
Count(): 5
|
||||
Location ListDump:
|
||||
6 => 42341
|
||||
2 => 41831
|
||||
7 => 41825
|
||||
5 => 33421
|
||||
4 => 33411
|
||||
CargoWaiting(0) ListDump:
|
||||
7 => 6
|
||||
6 => 6
|
||||
2 => 3
|
||||
5 => 0
|
||||
4 => 0
|
||||
CargoWaiting(1) ListDump:
|
||||
7 => 0
|
||||
6 => 0
|
||||
5 => 0
|
||||
4 => 0
|
||||
2 => 0
|
||||
|
||||
--StationList_Cargo--
|
||||
0
|
||||
0
|
||||
6 => 6
|
||||
1
|
||||
6 => 2
|
||||
2
|
||||
2 => 4
|
||||
7 => 2
|
||||
3
|
||||
1
|
||||
0
|
||||
7 => 18
|
||||
6 => 16
|
||||
2 => 7
|
||||
1
|
||||
6 => 8
|
||||
2 => 3
|
||||
2
|
||||
2 => 16
|
||||
6 => 14
|
||||
7 => 11
|
||||
3
|
||||
6 => 10
|
||||
2 => 8
|
||||
|
||||
--StationList_CargoPlanned--
|
||||
0
|
||||
7 => 18
|
||||
6 => 16
|
||||
2 => 7
|
||||
1
|
||||
6 => 8
|
||||
2 => 3
|
||||
2
|
||||
2 => 16
|
||||
6 => 14
|
||||
7 => 11
|
||||
3
|
||||
6 => 10
|
||||
2 => 8
|
||||
|
||||
--StationList_CargoPlannedByFrom--
|
||||
7 => 8
|
||||
6 => 8
|
||||
2 => 7
|
||||
|
||||
--StationList_CargoPlannedByVia--
|
||||
2 => 16
|
||||
6 => 7
|
||||
|
||||
--StationList_CargoPlannedViaByFrom--
|
||||
6 => 8
|
||||
2 => 3
|
||||
|
||||
--StationList_CargoPlannedFromByVia--
|
||||
6 => 10
|
||||
2 => 8
|
||||
|
||||
--StationList_CargoWaiting--
|
||||
0
|
||||
6 => 6
|
||||
1
|
||||
6 => 2
|
||||
2
|
||||
2 => 4
|
||||
7 => 2
|
||||
3
|
||||
|
||||
--StationList_CargoWaitingByFrom--
|
||||
2 => 3
|
||||
|
||||
--StationList_CargoWaitingByVia--
|
||||
6 => 3
|
||||
|
||||
--StationList_CargoWaitingViaByFrom--
|
||||
6 => 2
|
||||
|
||||
--StationList_CargoWaitingFromByVia--
|
||||
6 => 3
|
||||
|
||||
--StationList_Vehicle--
|
||||
Count(): 2
|
||||
Location ListDump:
|
||||
5 => 33421
|
||||
4 => 33411
|
||||
CargoWaiting(0) ListDump:
|
||||
5 => 0
|
||||
4 => 0
|
||||
CargoWaiting(1) ListDump:
|
||||
5 => 0
|
||||
4 => 0
|
||||
CargoRating(1) ListDump:
|
||||
5 => -1
|
||||
4 => -1
|
||||
DistanceManhattanToTile(30000) ListDump:
|
||||
5 => 106
|
||||
4 => 96
|
||||
DistanceSquareToTile(30000) ListDump:
|
||||
5 => 8818
|
||||
4 => 7058
|
||||
IsWithinTownInfluence(0) ListDump:
|
||||
5 => 0
|
||||
4 => 0
|
||||
ERROR: The script died unexpectedly.
|
||||
BIN
bin/ai/regression/tst_stationlist/test.sav
Normal file
BIN
bin/ai/regression/tst_stationlist/test.sav
Normal file
Binary file not shown.
@@ -12,7 +12,7 @@ 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.ca_ES = Una llista de música sense cap peça.
|
||||
description.cs_CZ = Prázná hudební sada.
|
||||
description.cy_GB = Pecyn cerddoriaeth heb unrhyw gerddoriaeth ynddo.
|
||||
description.da_DK = En musikpakke uden musik.
|
||||
@@ -24,15 +24,17 @@ description.es_ES = Un conjunto de música vacío.
|
||||
description.et_EE = Muusikakogu ilma muusikata.
|
||||
description.fi_FI = Musiikkipaketti, jossa ei ole musiikkia.
|
||||
description.fr_FR = Un pack de musiques sans musiques.
|
||||
description.ga_IE = Pacáiste ceoil gan aon cheol iarbhír ann.
|
||||
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.hr_HR = Glazbeni paket bez ikakve glazbe.
|
||||
description.hu_HU = Zenei alapcsomag zene nélkül.
|
||||
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.la_VA = Sarcina musicae sine ulla musica.
|
||||
description.lb_LU = E Musikpack ouni aktuell Musik.
|
||||
description.lt_LT = Muzikos pakas be muzikos.
|
||||
description.lv_LV = Mūzikas kopa bez mūzikas
|
||||
|
||||
@@ -12,7 +12,7 @@ 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.ca_ES = Una llista de sons buida.
|
||||
description.cs_CZ = Prázdná sada zvuků.
|
||||
description.cy_GB = Pecyn sain heb unrhyw effeithiau sain ynddo.
|
||||
description.da_DK = En lydpakke uden lyde.
|
||||
@@ -25,6 +25,7 @@ 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.ga_IE = Pacáiste fuaimeanna gan aon fhuaimeanna ann.
|
||||
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.
|
||||
@@ -34,7 +35,8 @@ 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.la_VA = Sarcina sonorum sine ullis sonis.
|
||||
description.lb_LU = E Soundpack ouni iergendee Sound.
|
||||
description.lt_LT = Garsų pakas be jokių garsų.
|
||||
description.nb_NO = En lydpakke uten noen lyder.
|
||||
description.nl_NL = Een geluidset zonder geluid.
|
||||
|
||||
Binary file not shown.
@@ -13,7 +13,7 @@ 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.ca_ES = Gràfics originals del Transport Tycoon Deluxe pel DOS.
|
||||
description.cs_CZ = Původní sada grafik Transport Tycoon Deluxe (verze pro DOS).
|
||||
description.cy_GB = Graffeg gwreiddiol fersiwn DOS o Transport Tycoon Deluxe.
|
||||
description.da_DK = Originalgrafik fra Transport Tycoon Deluxe DOS-version.
|
||||
@@ -25,6 +25,7 @@ description.es_ES = Gráficos originales de Transport Tycoon Deluxe versión DOS
|
||||
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.ga_IE = Grafaicí bunaidhTransport Tycoon Deluxe, eagrán 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.
|
||||
@@ -34,6 +35,7 @@ description.is_IS = Upprunalega grafíkin úr Transport Tycoon Deluxe DOS útgá
|
||||
description.it_IT = Grafica originale di Transport Tycoon Deluxe, edizione DOS.
|
||||
description.ja_JP = Transport Tycoon Deluxe オリジナル版 グラフィック (DOS)
|
||||
description.ko_KR = 오리지널 트랜스포트 타이쿤 디럭스 도스 에디션의 그래픽입니다.
|
||||
description.la_VA = Graphica ex editione originale Transport Tycoon Deluxe DOS.
|
||||
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.
|
||||
@@ -70,7 +72,7 @@ TRGI.GRF = da6a6c9dcc451eec88d79211437b76a8
|
||||
TRGC.GRF = ed446637e034104c5559b32c18afe78d
|
||||
TRGH.GRF = ee6616fb0e6ef6b24892c58c93d86fc9
|
||||
TRGT.GRF = e30e8a398ae86c03dc534a8ac7dfb3b6
|
||||
OPENTTD.GRF = 75a93cea2ed455c2fd5dcbda39e53538
|
||||
OPENTTD.GRF = 505d96061556d3bb5cec6234096ec5bc
|
||||
|
||||
[origin]
|
||||
default = You can find it on your Transport Tycoon Deluxe CD-ROM.
|
||||
|
||||
@@ -12,7 +12,7 @@ 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.ca_ES = Sons originals del Transport Tycoon Deluxe pel DOS.
|
||||
description.cs_CZ = Původní sada zvuků Transport Tycoon Deluxe (verze pro DOS).
|
||||
description.cy_GB = Effeithiau sain gwreiddiol fersiwn DOS o Transport Tycoon Deluxe.
|
||||
description.da_DK = Originallyd fra Transport Tycoon Deluxe DOS-version.
|
||||
@@ -24,6 +24,7 @@ description.es_ES = Sonidos originales de Transport Tycoon Deluxe versión DOS.
|
||||
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.ga_IE = Fuaimeanna bunaidh Transport Tycoon Deluxe, eagrán 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.
|
||||
@@ -33,6 +34,7 @@ description.is_IS = Upprunalega hljóðið úr Transport Tycoon Deluxe DOS útg
|
||||
description.it_IT = Suoni originali di Transport Tycoon Deluxe, edizione DOS.
|
||||
description.ja_JP = Transport Tycoon Deluxe オリジナル版 効果音 (DOS)
|
||||
description.ko_KR = 오리지널 트랜스포트 타이쿤 도스 에디션의 효과음입니다.
|
||||
description.la_VA = Soni ex editione originale Transport Tycoon Deluxe DOS.
|
||||
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.
|
||||
|
||||
@@ -13,7 +13,7 @@ description.af_ZA = Oorspronklike Transport Tycoon Deluxe DOS (German) uitgawe g
|
||||
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.ca_ES = Gràfics originals del Transport Tycoon Deluxe (alemany) pel DOS.
|
||||
description.cs_CZ = Původní sada grafik Transport Tycoon Deluxe (německá verze pro DOS).
|
||||
description.cy_GB = Graffeg gwreiddiol fersiwn DOS (Almaenig) o Transport Tycoon Deluxe.
|
||||
description.da_DK = Originalgrafik fra Transport Tycoon Deluxe DOS (Tysk) version.
|
||||
@@ -25,6 +25,7 @@ description.es_ES = Gráficos originales de Transport Tycoon Deluxe versión DOS
|
||||
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.ga_IE = Grafaicí bunaidhTransport Tycoon Deluxe, eagrán DOS (Gearmánach).
|
||||
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.
|
||||
@@ -34,6 +35,7 @@ description.is_IS = Upprunalega grafíkin úr Transport Tycoon Deluxe DOS (þýs
|
||||
description.it_IT = Grafica originale di Transport Tycoon Deluxe (tedesco), edizione DOS.
|
||||
description.ja_JP = Transport Tycoon Deluxe オリジナル版 グラフィック (DOS・ドイツ版)
|
||||
description.ko_KR = 오리지널 트랜스포트 타이쿤 디럭스 도스 에디션(독일)의 그래픽입니다.
|
||||
description.la_VA = Graphica ex editione originale Transport Tycoon Deluxe DOS (Germanica).
|
||||
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).
|
||||
@@ -70,7 +72,7 @@ TRGI.GRF = da6a6c9dcc451eec88d79211437b76a8
|
||||
TRGC.GRF = ed446637e034104c5559b32c18afe78d
|
||||
TRGH.GRF = ee6616fb0e6ef6b24892c58c93d86fc9
|
||||
TRGT.GRF = fcde1d7e8a74197d72a62695884b909e
|
||||
OPENTTD.GRF = 75a93cea2ed455c2fd5dcbda39e53538
|
||||
OPENTTD.GRF = 505d96061556d3bb5cec6234096ec5bc
|
||||
|
||||
[origin]
|
||||
default = You can find it on your Transport Tycoon Deluxe CD-ROM.
|
||||
|
||||
@@ -13,7 +13,7 @@ description.af_ZA = Oorspronklike Transport Tycoon Deluxe Windows uitgawe grafie
|
||||
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.ca_ES = Gràfics originals del Transport Tycoon Deluxe pel Windows.
|
||||
description.cs_CZ = Původní sada grafik Transport Tycoon Deluxe (verze pro Windows).
|
||||
description.cy_GB = Graffeg gwreiddiol fersiwn Windows o Transport Tycoon Deluxe.
|
||||
description.da_DK = Originalgrafik fra Transport Tycoon Deluxe Windows-version.
|
||||
@@ -25,6 +25,7 @@ description.es_ES = Gráficos originales de Transport Tycoon Deluxe versión Win
|
||||
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.ga_IE = Grafaicí bunaidhTransport Tycoon Deluxe, eagrán 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.
|
||||
@@ -34,6 +35,7 @@ description.is_IS = Upprunalega grafíkin úr Transport Tycoon Deluxe Windows ú
|
||||
description.it_IT = Grafica originale di Transport Tycoon Deluxe, edizione Windows.
|
||||
description.ja_JP = Transport Tycoon Deluxe オリジナル版 グラフィック (Windows)
|
||||
description.ko_KR = 오리지널 트랜스포트 타이쿤 디럭스 윈도 에디션의 그래픽입니다.
|
||||
description.la_VA = Graphica ex editione originale Transport Tycoon Deluxe Windows.
|
||||
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.
|
||||
@@ -70,7 +72,7 @@ TRGIR.GRF = 0c2484ff6be49fc63a83be6ab5c38f32
|
||||
TRGCR.GRF = 3668f410c761a050b5e7095a2b14879b
|
||||
TRGHR.GRF = 06bf2b7a31766f048baac2ebe43457b1
|
||||
TRGTR.GRF = de53650517fe661ceaa3138c6edb0eb8
|
||||
OPENTTD.GRF = 75a93cea2ed455c2fd5dcbda39e53538
|
||||
OPENTTD.GRF = 505d96061556d3bb5cec6234096ec5bc
|
||||
|
||||
[origin]
|
||||
default = You can find it on your Transport Tycoon Deluxe CD-ROM.
|
||||
|
||||
@@ -12,7 +12,7 @@ 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.ca_ES = Música original del Transport Tycoon Deluxe pel Windows.
|
||||
description.cs_CZ = Původní hudba Transport Tycoon Deluxe (verze pro Windows).
|
||||
description.cy_GB = Cerddoriaeth gwreiddiol fersion Windows o Transport Tycoon Deluxe.
|
||||
description.da_DK = Originalmusik fra Transport Tycoon Deluxe Windows-version.
|
||||
@@ -24,16 +24,18 @@ description.es_ES = Música original de Transport Tycoon Deluxe versión Windows
|
||||
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.ga_IE = Ceol bunaidh Transport Tycoon Deluxe, eagrán 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.hr_HR = Originalna glazba 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.la_VA = Musica ex editione originale Transport Tycoon Deluxe Windows.
|
||||
description.lb_LU = Original Transport Tycoon Deluxe Windows Editioun Musik.
|
||||
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.
|
||||
|
||||
@@ -12,7 +12,7 @@ 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.ca_ES = Sons originals del Transport Tycoon Deluxe pel Windows.
|
||||
description.cs_CZ = Původní sada zvuků Transport Tycoon Deluxe (verze pro Windows).
|
||||
description.cy_GB = Effeithiau sain gwreiddiol fersiwn Windows o Transport Tycoon Deluxe.
|
||||
description.da_DK = Originallyd fra Transport Tycoon Deluxe Windows-version.
|
||||
@@ -24,6 +24,7 @@ description.es_ES = Sonidos originales de Transport Tycoon Deluxe versión Windo
|
||||
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.ga_IE = Fuaimeanna bunaidh Transport Tycoon Deluxe, eagrán 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.
|
||||
@@ -33,6 +34,7 @@ description.is_IS = Upprunalega hljóðið úr Transport Tycoon Deluxe Windows
|
||||
description.it_IT = Suoni originali di Transport Tycoon Deluxe, edizione Windows.
|
||||
description.ja_JP = Transport Tycoon Deluxe オリジナル版 効果音 (Windows)
|
||||
description.ko_KR = 오리지널 트랜스포트 타이쿤 디럭스 윈도 에디션의 효과음입니다.
|
||||
description.la_VA = Soni ex editione originale Transport Tycoon Deluxe Windows.
|
||||
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.
|
||||
|
||||
@@ -16,3 +16,10 @@ GSTown.SetGrowthRate <- function(town_id, days_between_town_growth)
|
||||
if (days_between_town_growth == 0) days_between_town_growth = GSTown.TOWN_GROWTH_NORMAL;
|
||||
return GSTown._SetGrowthRate(town_id, days_between_town_growth);
|
||||
}
|
||||
|
||||
/* 1.5 adds a game element reference to the news. */
|
||||
GSNews._Create <- GSNews.Create;
|
||||
GSNews.Create <- function(type, text, company)
|
||||
{
|
||||
return GSNews._Create(type, text, company, GSNews.NR_NONE, 0);
|
||||
}
|
||||
|
||||
@@ -16,3 +16,10 @@ GSTown.SetGrowthRate <- function(town_id, days_between_town_growth)
|
||||
if (days_between_town_growth == 0) days_between_town_growth = GSTown.TOWN_GROWTH_NORMAL;
|
||||
return GSTown._SetGrowthRate(town_id, days_between_town_growth);
|
||||
}
|
||||
|
||||
/* 1.5 adds a game element reference to the news. */
|
||||
GSNews._Create <- GSNews.Create;
|
||||
GSNews.Create <- function(type, text, company)
|
||||
{
|
||||
return GSNews._Create(type, text, company, GSNews.NR_NONE, 0);
|
||||
}
|
||||
|
||||
@@ -8,3 +8,10 @@
|
||||
*/
|
||||
|
||||
GSLog.Info("1.4 API compatibility in effect.");
|
||||
|
||||
/* 1.5 adds a game element reference to the news. */
|
||||
GSNews._Create <- GSNews.Create;
|
||||
GSNews.Create <- function(type, text, company)
|
||||
{
|
||||
return GSNews._Create(type, text, company, GSNews.NR_NONE, 0);
|
||||
}
|
||||
|
||||
@@ -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/>.
|
||||
*/
|
||||
|
||||
GSLog.Info("1.5 API compatibility in effect.");
|
||||
|
||||
8
bin/game/compat_1.6.nut
Normal file
8
bin/game/compat_1.6.nut
Normal file
@@ -0,0 +1,8 @@
|
||||
/* $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/>.
|
||||
*/
|
||||
203
changelog.txt
203
changelog.txt
@@ -1,3 +1,206 @@
|
||||
1.6.0 (2016-04-01)
|
||||
------------------------------------------------------------------------
|
||||
(None)
|
||||
|
||||
|
||||
1.6.0-RC1 (2016-03-01)
|
||||
------------------------------------------------------------------------
|
||||
- Feature: [NewGRF] Allow custom sound IDs in RV property 0x12, ship property 0x10 and aircraft property 0x12 (r27507)
|
||||
- Feature: When viewing online content of a particular type, hide content of other types unless they have been (auto)selected for download (r27469, r27468, r27444)
|
||||
- Feature: [NewGRF] Move sprite 8 positions in sprite aligner with ctrl+click [FS#6241] (r27451)
|
||||
- Feature: Lower the sell-vehicle and sell-chain buttons in the train depot GUI while dragging a vehicle over it [FS#6391] (r27450, r27446)
|
||||
- Feature: Make the object placement GUI an independent window (r27438, r27397, r27346)
|
||||
- Feature: [Build] Project files and compilation with MSVC2015 (r27385, r27382, r27381, r27380, r27379)
|
||||
- Feature: [NewGRF] Allow railtype NewGRF to define separate sprites for the fences on either track side [FS#6315] (r27354, r27343)
|
||||
- Feature: [NewGRF] Increase the maximum amount of industry types to 128 per NewGRF and 240 in total (r27279)
|
||||
- Feature: Make Ctrl+Remove-Roadstop also remove the road, just like for rail stations [FS#6252] (r27251)
|
||||
- Change: [NewGRF] Allow static NewGRF to enable the second rocky tile set (r27497)
|
||||
- Change: Round loading percentage in loading indicators and conditional orders towards 50%, so that 0% and 100% mean completely empty or full (r27426)
|
||||
- Change: [Build] Rework the configure system to make more use of pkg-config (r27377:r27366, r27361, r27360)
|
||||
- Change: Enable YAPF cache debugging with desync debug level 2 (r27332)
|
||||
- Change: [strgen] Default plural subparameter position for CARGO_xxx string control codes is subparameter 1 (r27295)
|
||||
- Change: [NewGRF] Translate industry variable A6 (r27267)
|
||||
- Change: Do not consider cargo that is already being loaded as waiting cargo wrt. the station rating [FS#6165] (r27256)
|
||||
- Change: Tune down terrain generation to reduce amount of long slopes (r27230)
|
||||
- Change: Generate more detailed curves at the coast (r27229)
|
||||
- Change: Slightly more water in the non-custom sea levels (r27228)
|
||||
- Change: Be more lenient about road stop removal when at least one stop could be removed [FS#6262] (r27225)
|
||||
- Fix: [Win32] Stdin/out/err need to be re-assigned differently if the runtime lib of MSVC2015 is used (r27481)
|
||||
- Fix: [Haiku] On Haiku use the appropriate system variable to obtain the include dir [FS#6401] (r27472)
|
||||
|
||||
|
||||
1.5.3 (2015-12-01)
|
||||
------------------------------------------------------------------------
|
||||
(None)
|
||||
|
||||
|
||||
1.5.3-RC1 (2015-11-01)
|
||||
------------------------------------------------------------------------
|
||||
- Fix: When selecting a refit cargo for orders, do not check whether the vehicle is in a depot or station, and do not ask whether the vehicle currently allows station-refitting. Also hide the refit cost for orders, it is not predictable (r27428)
|
||||
- Fix: Use the NewGRF railtype sorting order in the infrastructure window (r27427)
|
||||
- Fix: Crash when switching to or taking over companies, when an order window of a vehicle of the new company was opened. Now close those windows [FS#5842] (r27425)
|
||||
- Fix: Towns did not connect roads to existing roads, unless they had only a single roadbit. Otoh, towns also tried to connect to single roadbit tiles such as tunnels and depots, even though they were not connectable in the direction of interest [FS#6374] (r27424)
|
||||
- Fix: When towns expanded single-bit roadtiles using a grid-layout, they used the layout position of the neighbouring tile (r27423)
|
||||
- Fix: Aircraft picked the wrong airport entry point, if airports were rotated by 180 degree [FS#6341] (r27422)
|
||||
- Fix: Consider text and icon sizes when drawing the client list [FS#6265] (r27421)
|
||||
- Fix: GrowTownAtRoad sometimes returned false, even when a house was built [FS#6362] (r27420)
|
||||
- Fix: CmdSellRailWagon did not revert all actions properly when no orderlist could be allocated [FS#6369] (r27419)
|
||||
- Fix: Desync due to incorrect storage of segments with different railtype in the YAPF cache [FS#6329] [FS#6379] (r27418)
|
||||
- Fix: When a dedicated server was paused with no clients, the master server advertisement interval was slowed, causing deadvertisement of the server [FS#6368] (r27400)
|
||||
- Fix: [Makefile] Game script directory and compat*.nut were never installed on *nix (r27399)
|
||||
- Fix: There are two different availability conditions for fdatasync in the manpage. Use them both, since at least on some MinGW versions one is not enough (r27389)
|
||||
- Fix: win32 sound driver failed to report errors (r27383)
|
||||
- Fix: Clickareas in settings tree were misaligned when the filter warning was displayed, if the setting height was defined by the icons instead of the font [FS#6358] (r27366)
|
||||
- Fix: Center settings filter warning also vertically, and also in case of multiple lines (r27365)
|
||||
|
||||
|
||||
1.5.2 (2015-09-01)
|
||||
------------------------------------------------------------------------
|
||||
(None)
|
||||
|
||||
|
||||
1.5.2-RC1 (2015-08-01)
|
||||
------------------------------------------------------------------------
|
||||
- Change: Auto-complete partial roads when building level-crossings [FS#6283] (r27309)
|
||||
- Fix: Do not rerandomise the town name when only cost-estimating the founding [FS#6332] (r27341)
|
||||
- Fix: Make variety distribution not assume that sea level is at height 0.2 / 3 * TGPGetMaxHeight() [FS#6335] (r27331, r27330, r27329, r27328)
|
||||
- Fix: Remove corner-case optimisation for line drawing, which failed for dashed lines (r27324)
|
||||
- Fix: Clipping of inclined lines did not account for the 'horizontal width' being bigger than the 'real width' (r27323, r27322)
|
||||
- Fix: Incorrect owner assignment when adding/removing road/tram to/from bridges [FS#6317] (r27313, r27312)
|
||||
- Fix: Mark infrastructure window dirty in more cases (r27311)
|
||||
- Fix: Prevent breaking of tram-reversal points by adding more road pieces [FS#6283] (r27308)
|
||||
- Fix: Error message window with manager face failed with GUI zoom [FS#6259] (r27307)
|
||||
- Fix: Account for road-bridges and drive-through-stops in CanFollowRoad [FS#6320] (r27306, r27305)
|
||||
- Fix: Password window layout with GUI zoom [FS#6321] (r27304, r27303)
|
||||
- Fix: Speed-only timetables got assigned times in stations [FS#6313] (r27302, r27301)
|
||||
- Fix: Enforce the company's default service intervals when purchasing another company [FS#6254] (r27282, r27281)
|
||||
- Fix: Cloning/autoreplace/autorenew did not copy custom service intervals (r27280)
|
||||
|
||||
|
||||
1.5.1 (2015-06-01)
|
||||
------------------------------------------------------------------------
|
||||
(None)
|
||||
|
||||
|
||||
1.5.1-RC1 (2015-05-08)
|
||||
------------------------------------------------------------------------
|
||||
- Fix: Do not consider road junctions with trivial dead ends as branch points during town growth [FS#6245] (r27260, r27259, r27244)
|
||||
- Fix: ScriptList::RemoveList failed to remove a list from itself [FS#6287] (r27258)
|
||||
- Fix: Combined button+dropdown widgets in order and autoreplace GUI had incorrect hitbox when using GUI zoom [FS#6270] (r27255)
|
||||
- Fix: When building a lock on DC_AUTO-removable water-based objects, the water class was always set to canal [FS#6264] (r27254)
|
||||
- Fix: When crossing tram tracks with railroads, cost of extra roads was not being counted [FS#6282] (r27253)
|
||||
- Fix: Invalid infrastructure counting when crossing tram tracks with railroads [FS#6281] (r27252)
|
||||
- Fix: Broken error message in configure [FS#6286] (r27250)
|
||||
- Fix: In some cases town growth failure was considered as success [FS#6240] (r27249, r27247)
|
||||
- Fix: Town labels on smallmap and zoomed-out viewports were not centered [FS#6257] (r27248)
|
||||
- Fix: Removing a rail waypoint used the remove-rail-station cost [FS#6251] (r27245)
|
||||
- Fix: Duplicate frees due to pool item classes not having copy constructors [FS#6285] (r27243)
|
||||
- Fix: Crash when no AIs were installed due to improper handling of non-ASCII characters by the string pointer lexer [FS#6272] (r27233)
|
||||
- Fix: Compilation on DragonflyBSD [FS#6274] (r27224, r27223)
|
||||
- Fix: Use the current maximum speed as limited by bridges, orders etc. for all vehicle types alike when considering increased smoke emissions of vehicles [FS#6278] (r27222)
|
||||
- Fix: Multi-value keys in the desktop entry shall end with a trailing separator (r27221)
|
||||
- Fix: Draw path reservation on the whole bridge, not only on the bridge heads (r27209)
|
||||
- Fix: Draw correct overlay sprites for path reservations on bridges and tunnels (r27208)
|
||||
|
||||
|
||||
1.5.0 (2015-04-01)
|
||||
------------------------------------------------------------------------
|
||||
- Fix: [NewGRF] Add Misc. GRF Feature Flag 6 to enable the second rocky tile set [FS#6260] (r27200)
|
||||
|
||||
|
||||
1.5.0-RC1 (2015-03-18)
|
||||
------------------------------------------------------------------------
|
||||
- Feature: [NewGRF] Display relative offset changes in the sprite aligner [FS#6236] (r27174)
|
||||
- Fix: Original road vehicle acceleration crashed for vehicles taking over [FS#6255] (r27190)
|
||||
- Fix: GCC 5 compilation (r27185, r27183)
|
||||
- Fix: Data race due to lazy initialisation of objects [FS#5969] (r27178)
|
||||
- Fix: Compilation with MinGW64 (r27176)
|
||||
- Fix: Use the regular clipping functions in the sprite aligner instead of some magic [FS#6237] (r27173)
|
||||
- Fix: Windows randomly drops SetCursorPos calls, breaking the RMB-scrolling [FS#6238] (r27172)
|
||||
|
||||
|
||||
1.5.0-beta2 (2015-02-24)
|
||||
------------------------------------------------------------------------
|
||||
- Feature: [NoGo] Game scripts can point to a location, station, industry, or town when publishing news (r27164)
|
||||
- Feature: Allow changing max heightlevel in scenario editor (r27151)
|
||||
- Feature: Make use of both rocky tile sets from the base graphics (r27117)
|
||||
- Change: Scale (non-custom) default window sizes according to GUI zoom (r27147)
|
||||
- Change: Make statusbar and chat-entry window use the same width as the toolbar (r27146)
|
||||
- Change: The chatbox-width setting now uses percent of screen width instead of pixels (r27144)
|
||||
- Change: [NewGRF] Interpret negative positions in industry layouts depending on GRF version (r27138)
|
||||
- Fix: [SDL, Windows] Right-mouse-button scrolling scrolled/jumped too far, when OpenTTD lagged during mouse event processing (r27167)
|
||||
- Fix: Toolbars were not invalidated when changing max-vehicles settings [FS#6204] (r27163)
|
||||
- Fix: Tile selection was drawn outside of map in some cases [FS#6208] (r27162)
|
||||
- Fix: Reimplement the viewport drawing algorithm [FS#6156] [FS#6206] (r27161)
|
||||
- Fix: Issues with smallmap and viewport coordinates and transformations (r27160, r27159, r27158)
|
||||
- Fix: Mark bridge middle tiles dirty when building/removing/changing bridges (r27157)
|
||||
- Fix: Rounding and unit-conversion inconsistencies in calls to MarkAllViewportsDirty (r27148)
|
||||
- Fix: Oilrig empty-tile checks were incorrect due to wrong TileIndexDiff->TileIndexDiffC conversion (r27137)
|
||||
- Fix: Misalignment in generate world window in case of small fonts (r27135)
|
||||
- Fix: Dragging of free wagons in depot failed with GUI zoom (r27133)
|
||||
- Fix: Reduce memory footprint of map array by shuffling its members [FS#6218] (r27132, r27126)
|
||||
- Fix: Dropdown- and tooltip-windows should not steal the focus (r27131)
|
||||
- Fix: [NewGRF] Action 7/9 condition 0A failed for present, but disabled, NewGRF (r27119)
|
||||
- Fix: Road vehicles could not reverse to be sent to depots when the following tile has the right type to run on, but could not be entered [FS#6183] (r27107)
|
||||
- Fix: Use the actual max speed of the vehicle in front when determining if a RV can overtake [FS#6176] (r27106)
|
||||
- Fix: grow_counter was not properly bounded by growth_rate, but by some other value used to calculate growth_rate [FS#6195] (r27105)
|
||||
- Fix: [Script] Support 64 bits integers in ScriptLists [FS#6194] (r27104)
|
||||
- Fix: [Script] Money values would end up wrong in strings when outside the bounds of a 32 bits integer [FS#6194] (r27102)
|
||||
|
||||
|
||||
1.5.0-beta1 (2014-12-24)
|
||||
------------------------------------------------------------------------
|
||||
- Feature: Support .txt.gz and -txt.xz changelog, readme and license files in basesets, NewGRFs, etc (r27035, r27034)
|
||||
- Feature: More height levels [FS#4126] (r27010)
|
||||
- Feature: Latin translation (r26993)
|
||||
- Feature: Add option to choose normal, double or quad-size interface (r26990)
|
||||
- Feature: [Script] Swap method for script lists (r26894)
|
||||
- Feature: [Script] ScriptStationList_Cargo for sorting cargo by from and via (r26893)
|
||||
- Feature: [Script] API for retrieving planned flow (r26892)
|
||||
- Feature: [CargoDist] Predict links for station-autorefitting vehicles (r26889)
|
||||
- Feature: Setting for limiting the height of bridges (r26882)
|
||||
- Feature: Make aircraft ascend/descend when they are too close to the ground or too far away (r26866)
|
||||
- Feature: Allow hiding of non-interesting engines in the GUI (r26805, r26804)
|
||||
- Feature: Vehicle sorting in autoreplace GUI [FS#1640] (r26800)
|
||||
- Feature: [NewGRF] Advanced visual effects with multiple effect sprites independent of spawning model (r26988, r26747)
|
||||
- Feature: Warn about missing industries after generating a map (r26729)
|
||||
- Feature: Upgrade currently active NewGRFs to newest installed version (r26613)
|
||||
- Feature: Save and load grfid and md5sum of NewGRFs in config file (r26611)
|
||||
- Feature: Select an editable preset name for saving (r26610)
|
||||
- Feature: Cancel cargo delivery from industries/houses to stations after about 21 months of not having picked up any of the cargo (r26582)
|
||||
- Feature: Give a warning when a plane's orders tell it to use a runway which is too short for it [FS#6009] (r26566)
|
||||
- Feature: [Script] Extended API for CargoDist (r26557)
|
||||
- Feature: Show measured order times in timetable GUI also when not timetabled (r26550)
|
||||
- Feature: Prompt for confirmation when deleting a vehicle group (r26455)
|
||||
- Feature: Hierarchical vehicle subgroups (r26450)
|
||||
- Feature: Allow more sound sleep for dedicated servers when there's nothing to do and nobody paying attention (r26449)
|
||||
- Feature: [NewGRF] Add vehicle modflag 1 (unloading in progress) (r26430)
|
||||
- Change: Improvements to the man page (r27091, r27012)
|
||||
- Change: Allow to set the granularity of the tooltip hover time in milliseconds instead of seconds. New default value is 250ms (r26815)
|
||||
- Change: Follow SI recommendation about spaces between numbers and units [FS#6086] (r26733)
|
||||
- Change: [CargoDist] Save locations instead of distances in link graphs to reduce size (r26646)
|
||||
- Change: [Squirrel] Make the internal integer for scripts always 64 bits, so scripts behave the same on 32 and 64 bit architectures and money can be represented properly (r26585, r26584)
|
||||
- Change: Reshuffle advanced settings tree (r26614, r26536)
|
||||
- Change: Add backend-independent config-file setting to disable 8bpp video modes, and disable 8bpp by default (r26522)
|
||||
- Fix: [OS/2] Compile again [FS#6186] (r27092)
|
||||
- Fix: Compilation with freetype2 version 2.5.4 and newer [FS#6185] (r27079)
|
||||
- Fix: Variable 47 used the carge translation table of the wrong GRF in case of callback 1D [FS#6182] (r27075)
|
||||
- Fix: Some lists did not use natural string sorting [FS#6172] (r27063)
|
||||
- Fix: Mercurial version detection failed if personal presets were configured (r27059)
|
||||
- Fix: [OSX] Don't require double-press from non-dead console hotkeys [FS#5812] (r27046)
|
||||
- Fix: Crash when having the vehicle list opened from a buoy or oil rig when the buoy/oil rig is removed (r27030)
|
||||
- Fix: Unit number was not always fully shown in depots [FS#6102] (r27014)
|
||||
- Fix: [CargoDist] Reserve cargo only after unloading finished or if the vehicle has the desired cargo already [FS#6110] (r26918)
|
||||
- Fix: [Squirrel] Loading a value saved as boolean caused it to be of type integer instead of boolean (r26785)
|
||||
- Fix: [Squirrel] Harden string handling (r26777)
|
||||
- Fix: [OSX] Implement more of the text editing API to prevent crashes and improve IME support [FS#5972] (r26758)
|
||||
- Fix: Incorrect saving of order backups [FS#6066] (r26700)
|
||||
- Fix: Ordering a vehicle to a competitor's rail waypoint displayed an error message. Ignore the click as is done for the other order types to competitor's stuff [FS#6059] (r26692)
|
||||
- Fix: [Script] Loading/parsing of info .nuts was done in the same VM, causing e.g. constants to break the loading of info of other scripts [FS#5973] (r26617)
|
||||
- Fix: [CargoDist] Improve estimation of link capacitites (r26549)
|
||||
- Remove: A bunch of archaic settings from the GUI (r26528, r26526, r26525)
|
||||
|
||||
|
||||
1.4.4 (2014-10-21)
|
||||
------------------------------------------------------------------------
|
||||
(None)
|
||||
|
||||
488
config.lib
488
config.lib
@@ -29,6 +29,7 @@ set_default() {
|
||||
strip=""
|
||||
lipo=""
|
||||
awk="awk"
|
||||
pkg_config="pkg-config"
|
||||
os="DETECT"
|
||||
endian="AUTO"
|
||||
cpu_type="DETECT"
|
||||
@@ -84,7 +85,8 @@ set_default() {
|
||||
with_libtimidity="1"
|
||||
with_freetype="1"
|
||||
with_fontconfig="1"
|
||||
with_icu="1"
|
||||
with_icu_layout="1"
|
||||
with_icu_sort="1"
|
||||
static_icu="0"
|
||||
with_psp_config="1"
|
||||
with_threads="1"
|
||||
@@ -105,6 +107,7 @@ set_default() {
|
||||
strip
|
||||
lipo
|
||||
awk
|
||||
pkg_config
|
||||
os
|
||||
endian
|
||||
cpu_type
|
||||
@@ -159,7 +162,8 @@ set_default() {
|
||||
with_libtimidity
|
||||
with_freetype
|
||||
with_fontconfig
|
||||
with_icu
|
||||
with_icu_layout
|
||||
with_icu_sort
|
||||
static_icu
|
||||
with_psp_config
|
||||
with_threads
|
||||
@@ -213,6 +217,8 @@ detect_params() {
|
||||
--windres=*) windres="$optarg";;
|
||||
--awk) prev_p="awk";;
|
||||
--awk=*) awk="$optarg";;
|
||||
--pkg-config) prev_p="pkg_config";;
|
||||
--pkg-config=*) pkg_config="$optarg";;
|
||||
--strip) prev_p="strip";;
|
||||
--strip=*) strip="$optarg";;
|
||||
--lipo) prev_p="lipo";;
|
||||
@@ -383,12 +389,18 @@ detect_params() {
|
||||
--without-libfontconfig) with_fontconfig="0";;
|
||||
--with-libfontconfig=*) with_fontconfig="$optarg";;
|
||||
|
||||
--with-icu) with_icu="2";;
|
||||
--without-icu) with_icu="0";;
|
||||
--with-icu=*) with_icu="$optarg";;
|
||||
--with-libicu) with_icu="2";;
|
||||
--without-libicu) with_icu="0";;
|
||||
--with-libicu=*) with_icu="$optarg";;
|
||||
--with-icu) with_icu_layout="2";with_icu_sort="2";;
|
||||
--without-icu) with_icu_layout="0";with_icu_sort="0";;
|
||||
--with-icu=*) with_icu_layout="$optarg";with_icu_sort="$optarg";;
|
||||
--with-libicu) with_icu_layout="2";with_icu_sort="2";;
|
||||
--without-libicu) with_icu_layout="0";with_icu_sort="0";;
|
||||
--with-libicu=*) with_icu_layout="$optarg";with_icu_sort="$optarg";;
|
||||
--with-icu-layout) with_icu_layout="2";;
|
||||
--without-icu-layout) with_icu_layout="0";;
|
||||
--with-icu-layout=*) with_icu_layout="$optarg";;
|
||||
--with-icu-sort) with_icu_sort="2";;
|
||||
--without-icu-sort) with_icu_sort="0";;
|
||||
--with-icu-sort=*) with_icu_sort="$optarg";;
|
||||
--static-icu) static_icu="1";;
|
||||
--static-icu=*) static_icu="$optarg";;
|
||||
--static-libicu) static_icu="1";;
|
||||
@@ -526,10 +538,10 @@ check_params() {
|
||||
log 1 " PREPROCESSOR is only available for OSX"
|
||||
exit 1
|
||||
fi
|
||||
# OS only allows DETECT, UNIX, OSX, FREEBSD, OPENBSD, MORPHOS, BEOS, HAIKU, SUNOS, CYGWIN, MINGW, OS2, DOS, WINCE, and PSP
|
||||
if [ -z "`echo $os | egrep '^(DETECT|UNIX|OSX|FREEBSD|OPENBSD|NETBSD|HPUX|MORPHOS|BEOS|HAIKU|SUNOS|CYGWIN|MINGW|OS2|DOS|WINCE|PSP)$'`" ]; then
|
||||
# OS only allows DETECT, UNIX, OSX, FREEBSD, DRAGONFLY, OPENBSD, NETBSD, MORPHOS, BEOS, HAIKU, SUNOS, CYGWIN, MINGW, OS2, DOS, WINCE, and PSP
|
||||
if [ -z "`echo $os | egrep '^(DETECT|UNIX|OSX|FREEBSD|DRAGONFLY|OPENBSD|NETBSD|HPUX|MORPHOS|BEOS|HAIKU|SUNOS|CYGWIN|MINGW|OS2|DOS|WINCE|PSP)$'`" ]; then
|
||||
log 1 "configure: error: invalid option --os=$os"
|
||||
log 1 " Available options are: --os=[DETECT|UNIX|OSX|FREEBSD|OPENBSD|NETBSD|HPUX|MORPHOS|BEOS|HAIKU|SUNOS|CYGWIN|MINGW|OS2|DOS|WINCE|PSP]"
|
||||
log 1 " Available options are: --os=[DETECT|UNIX|OSX|FREEBSD|DRAGONFLY|OPENBSD|NETBSD|HPUX|MORPHOS|BEOS|HAIKU|SUNOS|CYGWIN|MINGW|OS2|DOS|WINCE|PSP]"
|
||||
exit 1
|
||||
fi
|
||||
# cpu_type can be either 32 or 64
|
||||
@@ -787,7 +799,7 @@ check_params() {
|
||||
pre_detect_with_zlib=$with_zlib
|
||||
detect_zlib
|
||||
|
||||
if [ "$with_zlib" = "0" ] || [ -z "$zlib" ]; then
|
||||
if [ "$with_zlib" = "0" ] || [ -z "$zlib-config" ]; then
|
||||
log 1 "WARNING: zlib was not detected or disabled"
|
||||
log 1 "WARNING: OpenTTD doesn't require zlib, but it does mean that many features"
|
||||
log 1 "WARNING: (like loading most old savegames/scenarios, loading heightmaps,"
|
||||
@@ -838,7 +850,8 @@ check_params() {
|
||||
detect_png
|
||||
detect_freetype
|
||||
detect_fontconfig
|
||||
detect_icu
|
||||
detect_icu_layout
|
||||
detect_icu_sort
|
||||
detect_pspconfig
|
||||
detect_libtimidity
|
||||
|
||||
@@ -862,7 +875,7 @@ check_params() {
|
||||
endian="PREPROCESSOR"
|
||||
fi
|
||||
|
||||
log 1 "checking endianess... $endian"
|
||||
log 1 "checking endianness... $endian"
|
||||
|
||||
# Suppress language errors when there is a version defined, indicating a release
|
||||
# It just isn't pretty if any release produces warnings in the languages.
|
||||
@@ -1037,7 +1050,7 @@ check_params() {
|
||||
log 1 "checking revision... svn detection (tag)"
|
||||
elif [ -e "$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
|
||||
elif [ -d "$ROOT_DIR/.hg" ] && [ -n "`HGPLAIN= hg help 2>/dev/null`" ]; then
|
||||
log 1 "checking revision... hg detection"
|
||||
elif [ -f "$ROOT_DIR/.ottdrev" ]; then
|
||||
log 1 "checking revision... source tarball"
|
||||
@@ -1054,7 +1067,7 @@ check_params() {
|
||||
fi
|
||||
|
||||
if [ "$doc_dir" = "1" ]; then
|
||||
if [ "$os" = "UNIX" ] || [ "$os" = "FREEBSD" ] || [ "$os" = "OPENBSD" ] || [ "$os" = "NETBSD" ] || [ "$os" = "HPUX" ] || [ "$os" = "SUNOS" ]; then
|
||||
if [ "$os" = "UNIX" ] || [ "$os" = "FREEBSD" ] || [ "$os" = "DRAGONFLY" ] || [ "$os" = "OPENBSD" ] || [ "$os" = "NETBSD" ] || [ "$os" = "HPUX" ] || [ "$os" = "SUNOS" ]; then
|
||||
doc_dir="share/doc/openttd"
|
||||
else
|
||||
doc_dir="$data_dir/docs"
|
||||
@@ -1064,7 +1077,7 @@ check_params() {
|
||||
fi
|
||||
|
||||
if [ "$icon_theme_dir" = "1" ]; then
|
||||
if [ "$os" = "UNIX" ] || [ "$os" = "FREEBSD" ] || [ "$os" = "OPENBSD" ] || [ "$os" = "NETBSD" ] || [ "$os" = "HPUX" ] || [ "$os" = "SUNOS" ]; then
|
||||
if [ "$os" = "UNIX" ] || [ "$os" = "FREEBSD" ] || [ "$os" = "DRAGONFLY" ] || [ "$os" = "OPENBSD" ] || [ "$os" = "NETBSD" ] || [ "$os" = "HPUX" ] || [ "$os" = "SUNOS" ]; then
|
||||
icon_theme_dir="share/icons/hicolor"
|
||||
else
|
||||
icon_theme_dir=""
|
||||
@@ -1098,7 +1111,7 @@ check_params() {
|
||||
|
||||
if [ "$man_dir" = "1" ]; then
|
||||
# add manpage on UNIX systems
|
||||
if [ "$os" = "UNIX" ] || [ "$os" = "FREEBSD" ] || [ "$os" = "OPENBSD" ] || [ "$os" = "NETBSD" ] || [ "$os" = "HPUX" ] || [ "$os" = "SUNOS" ] || [ "$os" = "OSX" ]; then
|
||||
if [ "$os" = "UNIX" ] || [ "$os" = "FREEBSD" ] || [ "$os" = "DRAGONFLY" ] || [ "$os" = "OPENBSD" ] || [ "$os" = "NETBSD" ] || [ "$os" = "HPUX" ] || [ "$os" = "SUNOS" ] || [ "$os" = "OSX" ]; then
|
||||
man_dir="share/man/man6"
|
||||
else
|
||||
man_dir=""
|
||||
@@ -1109,7 +1122,7 @@ check_params() {
|
||||
|
||||
if [ "$menu_dir" = "1" ]; then
|
||||
# add a freedesktop menu item only for some UNIX systems
|
||||
if [ "$os" = "UNIX" ] || [ "$os" = "FREEBSD" ] || [ "$os" = "OPENBSD" ] || [ "$os" = "NETBSD" ] || [ "$os" = "HPUX" ] || [ "$os" = "SUNOS" ]; then
|
||||
if [ "$os" = "UNIX" ] || [ "$os" = "FREEBSD" ] || [ "$os" = "DRAGONFLY" ] || [ "$os" = "OPENBSD" ] || [ "$os" = "NETBSD" ] || [ "$os" = "HPUX" ] || [ "$os" = "SUNOS" ]; then
|
||||
menu_dir="share/applications"
|
||||
else
|
||||
menu_dir=""
|
||||
@@ -1538,7 +1551,7 @@ make_cflags_and_ldflags() {
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$os" != "CYGWIN" ] && [ "$os" != "HAIKU" ] && [ "$os" != "FREEBSD" ] && [ "$os" != "OPENBSD" ] && [ "$os" != "MINGW" ] && [ "$os" != "MORPHOS" ] && [ "$os" != "OSX" ] && [ "$os" != "DOS" ] && [ "$os" != "WINCE" ] && [ "$os" != "PSP" ] && [ "$os" != "OS2" ]; then
|
||||
if [ "$os" != "CYGWIN" ] && [ "$os" != "HAIKU" ] && [ "$os" != "OPENBSD" ] && [ "$os" != "MINGW" ] && [ "$os" != "MORPHOS" ] && [ "$os" != "OSX" ] && [ "$os" != "DOS" ] && [ "$os" != "WINCE" ] && [ "$os" != "PSP" ] && [ "$os" != "OS2" ]; then
|
||||
LIBS="$LIBS -lpthread"
|
||||
fi
|
||||
|
||||
@@ -1565,10 +1578,6 @@ make_cflags_and_ldflags() {
|
||||
LIBS="$LIBS -pthread"
|
||||
fi
|
||||
|
||||
if [ "$os" = "FREEBSD" ]; then
|
||||
LIBS="$LIBS -lpthread"
|
||||
fi
|
||||
|
||||
if [ "$os" = "OSX" ]; then
|
||||
LDFLAGS="$LDFLAGS -framework Cocoa"
|
||||
|
||||
@@ -1610,7 +1619,7 @@ make_cflags_and_ldflags() {
|
||||
fi
|
||||
|
||||
# Most targets act like UNIX, just with some additions
|
||||
if [ "$os" = "BEOS" ] || [ "$os" = "HAIKU" ] || [ "$os" = "OSX" ] || [ "$os" = "MORPHOS" ] || [ "$os" = "FREEBSD" ] || [ "$os" = "OPENBSD" ] || [ "$os" = "NETBSD" ] || [ "$os" = "HPUX" ] || [ "$os" = "SUNOS" ] || [ "$os" = "OS2" ]; then
|
||||
if [ "$os" = "BEOS" ] || [ "$os" = "HAIKU" ] || [ "$os" = "OSX" ] || [ "$os" = "MORPHOS" ] || [ "$os" = "FREEBSD" ] || [ "$os" = "DRAGONFLY" ] || [ "$os" = "OPENBSD" ] || [ "$os" = "NETBSD" ] || [ "$os" = "HPUX" ] || [ "$os" = "SUNOS" ] || [ "$os" = "OS2" ]; then
|
||||
CFLAGS="$CFLAGS -DUNIX"
|
||||
fi
|
||||
# And others like Windows
|
||||
@@ -1657,12 +1666,13 @@ make_cflags_and_ldflags() {
|
||||
fi
|
||||
|
||||
if [ "$with_zlib" != "0" ]; then
|
||||
if [ "$enable_static" != "0" ] && [ "$os" != "OSX" ]; then
|
||||
LIBS="$LIBS $zlib"
|
||||
else
|
||||
LIBS="$LIBS -lz"
|
||||
fi
|
||||
CFLAGS="$CFLAGS -DWITH_ZLIB"
|
||||
CFLAGS="$CFLAGS `$zlib_config --cflags | tr '\n\r' ' '`"
|
||||
if [ "$enable_static" != "0" ]; then
|
||||
LIBS="$LIBS `$zlib_config --libs --static | tr '\n\r' ' '`"
|
||||
else
|
||||
LIBS="$LIBS `$zlib_config --libs | tr '\n\r' ' '`"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -n "$lzma_config" ]; then
|
||||
@@ -1708,13 +1718,7 @@ make_cflags_and_ldflags() {
|
||||
CFLAGS="$CFLAGS `$png_config --cflags | tr '\n\r' ' '`"
|
||||
|
||||
if [ "$enable_static" != "0" ]; then
|
||||
if [ "$os" = "OSX" ]; then
|
||||
# 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 --libs --static | tr '\n\r' ' '`"
|
||||
fi
|
||||
LIBS="$LIBS `$png_config --libs --static | tr '\n\r' ' '`"
|
||||
else
|
||||
LIBS="$LIBS `$png_config --libs | tr '\n\r' ' '`"
|
||||
fi
|
||||
@@ -1725,13 +1729,7 @@ make_cflags_and_ldflags() {
|
||||
CFLAGS="$CFLAGS `$fontconfig_config --cflags | tr '\n\r' ' '`"
|
||||
|
||||
if [ "$enable_static" != "0" ]; then
|
||||
if [ "$os" = "OSX" ]; then
|
||||
# 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 `$fontconfig_config --variable=prefix`/lib/libfontconfig.a `$fontconfig_config --libs --static | sed s@-lfontconfig@@`"
|
||||
else
|
||||
LIBS="$LIBS `$fontconfig_config --libs --static | tr '\n\r' ' '`"
|
||||
fi
|
||||
LIBS="$LIBS `$fontconfig_config --libs --static | tr '\n\r' ' '`"
|
||||
else
|
||||
LIBS="$LIBS `$fontconfig_config --libs | tr '\n\r' ' '`"
|
||||
fi
|
||||
@@ -1742,26 +1740,31 @@ make_cflags_and_ldflags() {
|
||||
CFLAGS="$CFLAGS `$freetype_config --cflags | tr '\n\r' ' '`"
|
||||
|
||||
if [ "$enable_static" != "0" ]; then
|
||||
if [ "$os" = "OSX" ]; then
|
||||
LIBS="$LIBS `$freetype_config --prefix`/lib/libfreetype.a"
|
||||
else
|
||||
# Is it possible to do static with freetype, if so: how?
|
||||
LIBS="$LIBS `$freetype_config --libs | tr '\n\r' ' '`"
|
||||
fi
|
||||
LIBS="$LIBS `$freetype_config --libs --static | tr '\n\r' ' '`"
|
||||
else
|
||||
LIBS="$LIBS `$freetype_config --libs | tr '\n\r' ' '`"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -n "$icu_config" ]; then
|
||||
CFLAGS="$CFLAGS -DWITH_ICU"
|
||||
CFLAGS="$CFLAGS `$icu_config --cppflags | tr '\n\r' ' '`"
|
||||
if [ -n "$icu_layout_config" ]; then
|
||||
CFLAGS="$CFLAGS -DWITH_ICU_LAYOUT"
|
||||
CFLAGS="$CFLAGS `$icu_layout_config --cflags | tr '\n\r' ' '`"
|
||||
|
||||
# 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; $icu_config --ldflags-layout) | tr '\n\r' ' ' | sed s/licu/lsicu/g`"
|
||||
LIBS="$LIBS `$icu_layout_config --libs --static | tr '\n\r' ' ' | sed s/-licu/-lsicu/g`"
|
||||
else
|
||||
LIBS="$LIBS `$icu_config --ldflags-searchpath` `($icu_config --ldflags-libsonly; $icu_config --ldflags-layout) | tr '\n\r' ' '`"
|
||||
LIBS="$LIBS `$icu_layout_config --libs | tr '\n\r' ' '`"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -n "$icu_sort_config" ]; then
|
||||
CFLAGS="$CFLAGS -DWITH_ICU_SORT"
|
||||
CFLAGS="$CFLAGS `$icu_sort_config --cflags | tr '\n\r' ' '`"
|
||||
|
||||
if [ "$static_icu" != "0" ]; then
|
||||
LIBS="$LIBS `$icu_sort_config --libs --static | tr '\n\r' ' ' | sed s/-licu/-lsicu/g`"
|
||||
else
|
||||
LIBS="$LIBS `$icu_sort_config --libs | tr '\n\r' ' '`"
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -1776,13 +1779,15 @@ make_cflags_and_ldflags() {
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -n "$libtimidity" ]; then
|
||||
if [ "$enable_static" != "0" ]; then
|
||||
LIBS="$LIBS $libtimidity"
|
||||
else
|
||||
LIBS="$LIBS -ltimidity"
|
||||
fi
|
||||
if [ -n "$libtimidity_config" ]; then
|
||||
CFLAGS="$CFLAGS -DLIBTIMIDITY"
|
||||
CFLAGS="$CFLAGS `$libtimidity_config --cflags | tr '\n\r' ' '`"
|
||||
|
||||
if [ "$enable_static" != "0" ]; then
|
||||
LIBS="$LIBS `$libtimidity_config --libs --static | tr '\n\r' ' '`"
|
||||
else
|
||||
LIBS="$LIBS `$libtimidity_config --libs | tr '\n\r' ' '`"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$with_iconv" != "0" ]; then
|
||||
@@ -1942,9 +1947,26 @@ check_compiler() {
|
||||
log 2 " exit code $ret"
|
||||
|
||||
if ( [ -z "$machine" ] && [ "$8" != "3" ] ) || [ "$ret" != "0" ]; then
|
||||
log 1 "checking $1... $compiler not found"
|
||||
log 1 "I couldn't detect any $6 binary for $3"
|
||||
exit 1
|
||||
if [ -z "$5" ]; then
|
||||
log 1 "checking $1... $compiler not found"
|
||||
log 1 "I couldn't detect any $6 binary for $3"
|
||||
exit 1
|
||||
else
|
||||
compiler="$3-$5"
|
||||
fi
|
||||
machine=`eval $compiler $9 2>/dev/null`
|
||||
ret=$?
|
||||
eval "$2=\"$compiler\""
|
||||
|
||||
log 2 "executing $compiler $9"
|
||||
log 2 " returned $machine"
|
||||
log 2 " exit code $ret"
|
||||
|
||||
if ( [ -z "$machine" ] && [ "$8" != "3" ] ) || [ "$ret" != "0" ]; then
|
||||
log 1 "checking $1... $compiler not found"
|
||||
log 1 "I couldn't detect any $5 binary for $3"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$machine" != "$3" ] && ( [ "$8" = "0" ] || [ "$8" = "1" ] ); then
|
||||
@@ -2268,52 +2290,54 @@ detect_awk() {
|
||||
|
||||
detect_os() {
|
||||
if [ "$os" = "DETECT" ]; then
|
||||
# Detect UNIX, OSX, FREEBSD, OPENBSD, NETBSD, HPUX, MORPHOS, BEOS, SUNOS, CYGWIN, MINGW, OS2, DOS, WINCE, and PSP
|
||||
# Detect UNIX, OSX, FREEBSD, DRAGONFLY, OPENBSD, NETBSD, HPUX, MORPHOS, BEOS, SUNOS, CYGWIN, MINGW, OS2, DOS, WINCE, and PSP
|
||||
|
||||
# Try first via dumpmachine, then via uname
|
||||
os=`echo "$host" | tr '[A-Z]' '[a-z]' | $awk '
|
||||
/linux/ { print "UNIX"; exit}
|
||||
/darwin/ { print "OSX"; exit}
|
||||
/freebsd/ { print "FREEBSD"; exit}
|
||||
/openbsd/ { print "OPENBSD"; exit}
|
||||
/netbsd/ { print "NETBSD"; exit}
|
||||
/hp-ux/ { print "HPUX"; exit}
|
||||
/morphos/ { print "MORPHOS"; exit}
|
||||
/beos/ { print "BEOS"; exit}
|
||||
/haiku/ { print "HAIKU"; exit}
|
||||
/sunos/ { print "SUNOS"; exit}
|
||||
/solaris/ { print "SUNOS"; exit}
|
||||
/cygwin/ { print "CYGWIN"; exit}
|
||||
/mingw/ { print "MINGW"; exit}
|
||||
/os2/ { print "OS2"; exit}
|
||||
/dos/ { print "DOS"; exit}
|
||||
/wince/ { print "WINCE"; exit}
|
||||
/psp/ { print "PSP"; exit}
|
||||
/linux/ { print "UNIX"; exit}
|
||||
/darwin/ { print "OSX"; exit}
|
||||
/freebsd/ { print "FREEBSD"; exit}
|
||||
/dragonfly/ { print "DRAGONFLY"; exit}
|
||||
/openbsd/ { print "OPENBSD"; exit}
|
||||
/netbsd/ { print "NETBSD"; exit}
|
||||
/hp-ux/ { print "HPUX"; exit}
|
||||
/morphos/ { print "MORPHOS"; exit}
|
||||
/beos/ { print "BEOS"; exit}
|
||||
/haiku/ { print "HAIKU"; exit}
|
||||
/sunos/ { print "SUNOS"; exit}
|
||||
/solaris/ { print "SUNOS"; exit}
|
||||
/cygwin/ { print "CYGWIN"; exit}
|
||||
/mingw/ { print "MINGW"; exit}
|
||||
/os2/ { print "OS2"; exit}
|
||||
/dos/ { print "DOS"; exit}
|
||||
/wince/ { print "WINCE"; exit}
|
||||
/psp/ { print "PSP"; exit}
|
||||
'`
|
||||
|
||||
if [ -z "$os" ]; then
|
||||
os=`LC_ALL=C uname | tr '[A-Z]' '[a-z]' | $awk '
|
||||
/linux/ { print "UNIX"; exit}
|
||||
/darwin/ { print "OSX"; exit}
|
||||
/freebsd/ { print "FREEBSD"; exit}
|
||||
/openbsd/ { print "OPENBSD"; exit}
|
||||
/netbsd/ { print "NETBSD"; exit}
|
||||
/hp-ux/ { print "HPUX"; exit}
|
||||
/morphos/ { print "MORPHOS"; exit}
|
||||
/beos/ { print "BEOS"; exit}
|
||||
/haiku/ { print "HAIKU"; exit}
|
||||
/sunos/ { print "SUNOS"; exit}
|
||||
/cygwin/ { print "CYGWIN"; exit}
|
||||
/mingw/ { print "MINGW"; exit}
|
||||
/os\/2/ { print "OS2"; exit}
|
||||
/gnu/ { print "UNIX"; exit}
|
||||
/linux/ { print "UNIX"; exit}
|
||||
/darwin/ { print "OSX"; exit}
|
||||
/freebsd/ { print "FREEBSD"; exit}
|
||||
/dragonfly/ { print "DRAGONFLY"; exit}
|
||||
/openbsd/ { print "OPENBSD"; exit}
|
||||
/netbsd/ { print "NETBSD"; exit}
|
||||
/hp-ux/ { print "HPUX"; exit}
|
||||
/morphos/ { print "MORPHOS"; exit}
|
||||
/beos/ { print "BEOS"; exit}
|
||||
/haiku/ { print "HAIKU"; exit}
|
||||
/sunos/ { print "SUNOS"; exit}
|
||||
/cygwin/ { print "CYGWIN"; exit}
|
||||
/mingw/ { print "MINGW"; exit}
|
||||
/os\/2/ { print "OS2"; exit}
|
||||
/gnu/ { print "UNIX"; exit}
|
||||
'`
|
||||
fi
|
||||
|
||||
if [ -z "$os" ]; then
|
||||
log 1 "detecting OS... none detected"
|
||||
log 1 "I couldn't detect your OS. Please use --os=OS to force one"
|
||||
log 1 "Allowed values are: UNIX, OSX, FREEBSD, OPENBSD, NETBSD, MORPHOS, HPUX, BEOS, HAIKU, SUNOS, CYGWIN, MINGW, OS2, DOS, WINCE, and PSP"
|
||||
log 1 "Allowed values are: UNIX, OSX, FREEBSD, DRAGONFLY, OPENBSD, NETBSD, MORPHOS, HPUX, BEOS, HAIKU, SUNOS, CYGWIN, MINGW, OS2, DOS, WINCE, and PSP"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@@ -2351,7 +2375,7 @@ detect_allegro() {
|
||||
return 0
|
||||
fi
|
||||
|
||||
# By default on OSX we don't use SDL. The rest is auto-detect
|
||||
# By default on OSX we don't use Allegro. The rest is auto-detect
|
||||
if [ "$with_allegro" = "1" ] && [ "$os" = "OSX" ] && [ "$with_cocoa" != "0" ]; then
|
||||
log 1 "checking Allegro... OSX, skipping"
|
||||
|
||||
@@ -2359,33 +2383,7 @@ detect_allegro() {
|
||||
return 0
|
||||
fi
|
||||
|
||||
if [ "$with_allegro" = "1" ] || [ "$with_allegro" = "" ] || [ "$with_allegro" = "2" ]; then
|
||||
allegro_config="allegro-config"
|
||||
else
|
||||
allegro_config="$with_allegro"
|
||||
fi
|
||||
|
||||
version=`$allegro_config --version 2>/dev/null`
|
||||
ret=$?
|
||||
log 2 "executing $allegro_config --version"
|
||||
log 2 " returned $version"
|
||||
log 2 " exit code $ret"
|
||||
|
||||
if [ -z "$version" ] || [ "$ret" != "0" ]; then
|
||||
log 1 "checking Allegro... not found"
|
||||
|
||||
# It was forced, so it should be found.
|
||||
if [ "$with_allegro" != "1" ]; then
|
||||
log 1 "configure: error: allegro-config couldn't be found"
|
||||
log 1 "configure: error: you supplied '$with_allegro', but it seems invalid"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
allegro_config=""
|
||||
return 0
|
||||
fi
|
||||
|
||||
log 1 "checking Allegro... found"
|
||||
detect_pkg_config "$with_allegro" "allegro" "allegro_config" "4.4"
|
||||
}
|
||||
|
||||
|
||||
@@ -2431,33 +2429,7 @@ detect_sdl() {
|
||||
sleep 5
|
||||
fi
|
||||
|
||||
if [ "$with_sdl" = "1" ] || [ "$with_sdl" = "" ] || [ "$with_sdl" = "2" ]; then
|
||||
sdl_config="sdl-config"
|
||||
else
|
||||
sdl_config="$with_sdl"
|
||||
fi
|
||||
|
||||
version=`$sdl_config --version 2>/dev/null`
|
||||
ret=$?
|
||||
log 2 "executing $sdl_config --version"
|
||||
log 2 " returned $version"
|
||||
log 2 " exit code $ret"
|
||||
|
||||
if [ -z "$version" ] || [ "$ret" != "0" ]; then
|
||||
log 1 "checking SDL... not found"
|
||||
|
||||
# It was forced, so it should be found.
|
||||
if [ "$with_sdl" != "1" ]; then
|
||||
log 1 "configure: error: sdl-config couldn't be found"
|
||||
log 1 "configure: error: you supplied '$with_sdl', but it seems invalid"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
sdl_config=""
|
||||
return 0
|
||||
fi
|
||||
|
||||
log 1 "checking SDL... found"
|
||||
detect_pkg_config "$with_sdl" "sdl" "sdl_config" "1.2"
|
||||
}
|
||||
|
||||
detect_osx_sdk() {
|
||||
@@ -2638,10 +2610,13 @@ detect_library() {
|
||||
fi
|
||||
fi
|
||||
if [ -z "$res" ] && [ "$os" = "HAIKU" ]; then
|
||||
eval "$2=`ls -1 /boot/common/include/$4*.h 2>/dev/null | egrep \"\/$5\$\"`"
|
||||
if [ -z "$includeDir" ]; then
|
||||
includeDir=`finddir B_SYSTEM_HEADERS_DIRECTORY`
|
||||
fi
|
||||
eval "$2=`ls -1 $includeDir/$4*.h 2>/dev/null | egrep \"\/$5\$\"`"
|
||||
eval "res=\$$2"
|
||||
if [ -z "$res" ]; then
|
||||
log 2 " trying /boot/common/include/$4$5... no"
|
||||
log 2 " trying $includeDir/$4$5... no"
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -2710,7 +2685,7 @@ detect_library() {
|
||||
}
|
||||
|
||||
detect_zlib() {
|
||||
detect_library "$with_zlib" "zlib" "libz.a" "" "zlib.h"
|
||||
detect_pkg_config "$with_zlib" "zlib" "zlib_config" "1.2"
|
||||
}
|
||||
|
||||
detect_lzo2() {
|
||||
@@ -2718,7 +2693,7 @@ detect_lzo2() {
|
||||
}
|
||||
|
||||
detect_libtimidity() {
|
||||
detect_library "$with_libtimidity" "libtimidity" "libtimidity.a" "" "timidity.h"
|
||||
detect_pkg_config "$with_libtimidity" "libtimidity" "libtimidity_config" "0.1" "1"
|
||||
}
|
||||
|
||||
detect_pkg_config() {
|
||||
@@ -2726,6 +2701,7 @@ detect_pkg_config() {
|
||||
# $2 - package name ('liblzma')
|
||||
# $3 - config name ('lzma_config', sets $lzma_config)
|
||||
# $4 - minimum module version ('2.3')
|
||||
# $5 - check for dedicated, 1 is "skif if dedicated"
|
||||
|
||||
# 0 means no, 1 is auto-detect, 2 is force
|
||||
if [ "$1" = "0" ]; then
|
||||
@@ -2735,10 +2711,17 @@ detect_pkg_config() {
|
||||
return 0
|
||||
fi
|
||||
|
||||
if [ "$5" = "1" ] && [ "$1" = "1" ] && [ "$enable_dedicated" != "0" ]; then
|
||||
log 1 "checking $2... dedicated server, skipping"
|
||||
|
||||
eval "$3=\"\""
|
||||
return 0
|
||||
fi
|
||||
|
||||
log 2 "detecting $2"
|
||||
|
||||
if [ "$1" = "1" ] || [ "$1" = "" ] || [ "$1" = "2" ]; then
|
||||
pkg_config_call="pkg-config $2"
|
||||
pkg_config_call="$pkg_config $2"
|
||||
else
|
||||
pkg_config_call="$1"
|
||||
fi
|
||||
@@ -2760,7 +2743,7 @@ detect_pkg_config() {
|
||||
|
||||
# It was forced, so it should be found.
|
||||
if [ "$1" != "1" ]; then
|
||||
log 1 "configure: error: pkg-config $2 couldn't be found"
|
||||
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
|
||||
@@ -2782,89 +2765,11 @@ detect_xdg_basedir() {
|
||||
}
|
||||
|
||||
detect_png() {
|
||||
# 0 means no, 1 is auto-detect, 2 is force
|
||||
if [ "$with_png" = "0" ]; then
|
||||
log 1 "checking libpng... disabled"
|
||||
|
||||
png_config=""
|
||||
return 0
|
||||
fi
|
||||
|
||||
if [ "$with_zlib" = "0" ] || [ -z "$zlib" ]; then
|
||||
if [ "$with_png" != "1" ]; then
|
||||
log 1 "checking libpng... no zlib"
|
||||
log 1 "ERROR: libpng was forced, but zlib was not detected / disabled."
|
||||
log 1 "ERROR: libpng depends on zlib."
|
||||
|
||||
exit 1
|
||||
fi
|
||||
|
||||
log 1 "checking libpng... no zlib, skipping"
|
||||
|
||||
png_config=""
|
||||
return 0
|
||||
fi
|
||||
|
||||
detect_pkg_config "$with_png" "libpng" "png_config" "1.2"
|
||||
}
|
||||
|
||||
detect_freetype() {
|
||||
# 0 means no, 1 is auto-detect, 2 is force
|
||||
if [ "$with_freetype" = "0" ]; then
|
||||
log 1 "checking libfreetype... disabled"
|
||||
|
||||
freetype_config=""
|
||||
return 0
|
||||
fi
|
||||
if [ "$with_freetype" = "1" ] && [ "$enable_dedicated" != "0" ]; then
|
||||
log 1 "checking libfreetype... dedicated server, skipping"
|
||||
|
||||
freetype_config=""
|
||||
return 0
|
||||
fi
|
||||
|
||||
if [ "$with_zlib" = "0" ] || [ -z "$zlib" ]; then
|
||||
if [ "$with_freetype" != "1" ]; then
|
||||
log 1 "checking libfreetype... no zlib"
|
||||
log 1 "ERROR: libfreetype was forced, but zlib was not detected / disabled."
|
||||
log 1 "ERROR: libfreetype depends on zlib."
|
||||
|
||||
exit 1
|
||||
fi
|
||||
|
||||
log 1 "checking libfreetype... no zlib, skipping"
|
||||
|
||||
freetype_config=""
|
||||
return 0
|
||||
fi
|
||||
|
||||
if [ "$with_freetype" = "1" ] || [ "$with_freetype" = "" ] || [ "$with_freetype" = "2" ]; then
|
||||
freetype_config="freetype-config"
|
||||
else
|
||||
freetype_config="$with_freetype"
|
||||
fi
|
||||
|
||||
version=`$freetype_config --version 2>/dev/null`
|
||||
ret=$?
|
||||
log 2 "executing freetype_config --version"
|
||||
log 2 " returned $version"
|
||||
log 2 " exit code $ret"
|
||||
|
||||
if [ -z "$version" ] || [ "$ret" != "0" ]; then
|
||||
log 1 "checking libfreetype... not found"
|
||||
|
||||
# It was forced, so it should be found.
|
||||
if [ "$with_freetype" != "1" ]; then
|
||||
log 1 "configure: error: freetype-config couldn't be found"
|
||||
log 1 "configure: error: you supplied '$with_freetype', but it seems invalid"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
freetype_config=""
|
||||
return 0
|
||||
fi
|
||||
|
||||
log 1 "checking libfreetype... found"
|
||||
detect_pkg_config "$with_freetype" "freetype2" "freetype_config" "2.2" "1"
|
||||
}
|
||||
|
||||
detect_fontconfig() {
|
||||
@@ -2875,19 +2780,6 @@ detect_fontconfig() {
|
||||
fontconfig_config=""
|
||||
return 0
|
||||
fi
|
||||
if [ "$with_fontconfig" = "1" ] && [ "$enable_dedicated" != "0" ]; then
|
||||
log 1 "checking libfontconfig... dedicated server, skipping"
|
||||
|
||||
fontconfig_config=""
|
||||
return 0
|
||||
fi
|
||||
if [ "$with_fontconfig" != "2" ] && [ -z "$freetype_config" ]; then
|
||||
log 1 "checking libfontconfig... no freetype, skipping"
|
||||
|
||||
fontconfig_config=""
|
||||
return 0
|
||||
fi
|
||||
|
||||
if [ "$os" = "MINGW" ] || [ "$os" = "CYGWIN" ] || [ "$os" = "WINCE" ]; then
|
||||
log 1 "checking libfontconfig... WIN32, skipping"
|
||||
fontconfig_config=""
|
||||
@@ -2900,57 +2792,15 @@ detect_fontconfig() {
|
||||
return 0
|
||||
fi
|
||||
|
||||
detect_pkg_config "$with_fontconfig" "fontconfig" "fontconfig_config" "2.3"
|
||||
detect_pkg_config "$with_fontconfig" "fontconfig" "fontconfig_config" "2.3" "1"
|
||||
}
|
||||
|
||||
detect_icu() {
|
||||
# 0 means no, 1 is auto-detect, 2 is force
|
||||
if [ "$with_icu" = "0" ]; then
|
||||
log 1 "checking libicu... disabled"
|
||||
detect_icu_layout() {
|
||||
detect_pkg_config "$with_icu_layout" "icu-lx" "icu_layout_config" "4.8" "1"
|
||||
}
|
||||
|
||||
icu_config=""
|
||||
return 0
|
||||
fi
|
||||
if [ "$with_icu" = "1" ] && [ "$enable_dedicated" != "0" ]; then
|
||||
log 1 "checking libicu... dedicated server, skipping"
|
||||
|
||||
icu_config=""
|
||||
return 0
|
||||
fi
|
||||
|
||||
if [ "$with_icu" = "1" ] || [ "$with_icu" = "" ] || [ "$with_icu" = "2" ]; then
|
||||
icu_config="icu-config"
|
||||
else
|
||||
icu_config="$with_icu"
|
||||
fi
|
||||
|
||||
version=`$icu_config --version 2>/dev/null`
|
||||
ret=$?
|
||||
check_version '3.6' "$version"
|
||||
version_ok=$?
|
||||
log 2 "executing $icu_config --version"
|
||||
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 libicu... needs at least version 3.6.0, icu NOT enabled"
|
||||
else
|
||||
log 1 "checking libicu... not found"
|
||||
fi
|
||||
|
||||
# It was forced, so it should be found.
|
||||
if [ "$with_icu" != "1" ]; then
|
||||
log 1 "configure: error: icu-config couldn't be found"
|
||||
log 1 "configure: error: you supplied '$with_icuconfig', but it seems invalid"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
icu_config=""
|
||||
return 0
|
||||
fi
|
||||
|
||||
log 1 "checking libicu... found"
|
||||
detect_icu_sort() {
|
||||
detect_pkg_config "$with_icu_sort" "icu-i18n" "icu_sort_config" "4.8" "1"
|
||||
}
|
||||
|
||||
detect_pspconfig() {
|
||||
@@ -3183,9 +3033,9 @@ detect_grfcodec() {
|
||||
log 2 " returned $version"
|
||||
log 2 " exit code $ret"
|
||||
|
||||
if [ -z "$version" ] || [ "$ret" != "0" ] || [ "$version" -lt "949" ]; then
|
||||
if [ -n "$version" ] && [ "$version" -lt "949" ]; then
|
||||
log 1 "checking grfcodec... needs at least version 6.0.2 (r949), disabled"
|
||||
if [ -z "$version" ] || [ "$ret" != "0" ] || [ "$version" -lt "985" ]; then
|
||||
if [ -n "$version" ] && [ "$version" -lt "985" ]; then
|
||||
log 1 "checking grfcodec... needs at least version 6.0.5 (r985), disabled"
|
||||
else
|
||||
log 1 "checking grfcodec... not found"
|
||||
fi
|
||||
@@ -3225,9 +3075,9 @@ detect_nforenum() {
|
||||
log 2 " returned $version"
|
||||
log 2 " exit code $ret"
|
||||
|
||||
if [ -z "$version" ] || [ "$ret" != "0" ] || [ "$version" -lt "949" ]; then
|
||||
if [ -n "$version" ] && [ "$version" -lt "949" ]; then
|
||||
log 1 "checking nforenum... needs at least version 6.0.2 (r949), disabled"
|
||||
if [ -z "$version" ] || [ "$ret" != "0" ] || [ "$version" -lt "985" ]; then
|
||||
if [ -n "$version" ] && [ "$version" -lt "985" ]; then
|
||||
log 1 "checking nforenum... needs at least version 6.0.5 (r985), disabled"
|
||||
else
|
||||
log 1 "checking nforenum... not found"
|
||||
fi
|
||||
@@ -3590,11 +3440,12 @@ showhelp() {
|
||||
echo " --windres=WINDRES the windres to use [HOST-windres]"
|
||||
echo " --strip=STRIP the strip to use [HOST-strip]"
|
||||
echo " --awk=AWK the awk to use in configure [awk]"
|
||||
echo " --pkg-config=PKG-CONFIG the pkg-config to use in configure [pkg-config]"
|
||||
echo " --lipo=LIPO the lipo to use (OSX ONLY) [HOST-lipo]"
|
||||
echo " --os=OS the OS we are compiling for [DETECT]"
|
||||
echo " DETECT/UNIX/OSX/FREEBSD/OPENBSD/NETBSD/"
|
||||
echo " MORPHOS/HPUX/BEOS/SUNOS/CYGWIN/MINGW/OS2/"
|
||||
echo " DOS/WINCE/PSP/HAIKU"
|
||||
echo " DETECT/UNIX/OSX/FREEBSD/DRAGONFLY/OPENBSD/"
|
||||
echo " NETBSD/MORPHOS/HPUX/BEOS/SUNOS/CYGWIN/"
|
||||
echo " MINGW/OS2/DOS/WINCE/PSP/HAIKU"
|
||||
echo " --endian=ENDIAN set the endian of the HOST (AUTO/LE/BE)"
|
||||
echo ""
|
||||
echo "Paths:"
|
||||
@@ -3664,23 +3515,30 @@ showhelp() {
|
||||
echo " --with-midi=midi define which midi-player to use"
|
||||
echo " --with-midi-arg=arg define which args to use for the"
|
||||
echo " midi-player"
|
||||
echo " --with-libtimidity enables libtimidity support"
|
||||
echo " --with-allegro[=allegro-config]"
|
||||
echo " --with-libtimidity[=\"pkg-config libtimidity\"]"
|
||||
echo " enables libtimidity support"
|
||||
echo " --with-allegro[=\"pkg-config allegro\"]"
|
||||
echo " enables Allegro video driver support"
|
||||
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-sdl[=\"pkg-config sdl\"] enables SDL video driver support"
|
||||
echo " --with-zlib[=\"pkg-config zlib\"]"
|
||||
echo " enables zlib 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 " --with-png[=\"pkg-config libpng\"]"
|
||||
echo " enables libpng support"
|
||||
echo " --with-freetype[=\"pkg-config freetype2\"]"
|
||||
echo " enables libfreetype support"
|
||||
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 " --with-icu enables icu components for layout and sorting"
|
||||
echo " --with-icu-layout[=\"pkg-config icu-lx\"]"
|
||||
echo " enables icu components for layouting (right-to-left support)"
|
||||
echo " --with-icu-sort[=\"pkg-config icu-i18n\"]"
|
||||
echo " enables icu components for locale specific string sorting"
|
||||
echo " --static-icu try to link statically (libsicu instead of"
|
||||
echo " libicu; can fail as the new name is guessed)"
|
||||
echo " --with-iconv[=iconv-path] enables iconv support"
|
||||
|
||||
@@ -106,7 +106,7 @@ Table of contents
|
||||
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
|
||||
all have occurred 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
|
||||
@@ -194,6 +194,7 @@ Table of contents
|
||||
- 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'.
|
||||
(DEBUG_FAILED_DUMP_COMMANDS is explained later)
|
||||
- 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'.
|
||||
@@ -217,6 +218,11 @@ Table of contents
|
||||
the last dmp_cmds that reproduces the replay and the first one
|
||||
that fails.
|
||||
|
||||
If the replay does not succeed without mismatch, you can check the logs
|
||||
whether there were failed commands. Then you may try to replay with
|
||||
DEBUG_FAILED_DUMP_COMMANDS enabled. If the replay then fails, the
|
||||
command test-run of the failed command modified the game state.
|
||||
|
||||
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
|
||||
|
||||
@@ -15,20 +15,60 @@
|
||||
For a graphical representation of the tile-layout have a look at
|
||||
<a href="landscape_grid.html">Landscape grid</a> page.
|
||||
</p>
|
||||
<p>Eight attributes (counting "<span style="font-weight: bold;">type_height</span>") hold the informations about a tile.<BR>
|
||||
<p>Nine attributes (counting "<span style="font-weight: bold;">type</span>" and
|
||||
"<span style="font-weight: bold;">height</span>") hold the informations about a tile.<BR>
|
||||
These attributes are referred to as
|
||||
"<span style="font-weight: bold;">type_height</span>",
|
||||
"<span style="font-weight: bold;">type</span>",
|
||||
"<span style="font-weight: bold;">height</span>",
|
||||
"<span style="font-weight: bold;">m1</span>", "<span style="font-weight: bold;">m2</span>",
|
||||
"<span style="font-weight: bold;">m3</span>", "<span style="font-weight: bold;">m4</span>",
|
||||
"<span style="font-weight: bold;">m5</span>", "<span style="font-weight: bold;">m6</span>"
|
||||
and "<span style="font-weight: bold;">m7</span>".<br>
|
||||
The most important value is the class of a tile, stored in the upper 4 bits
|
||||
of the <span style="font-weight: bold;">type_height</span> attribute. The lower 4 bits are used to encode the height and
|
||||
slope data.
|
||||
of the <span style="font-weight: bold;">type</span> attribute.
|
||||
</p>
|
||||
|
||||
Frequently repeating patterns:
|
||||
<ul>
|
||||
<li><span style="font-weight: bold;">type</span>
|
||||
<ul>
|
||||
<li>
|
||||
<a name="type"></a>
|
||||
Bits 7..4:
|
||||
<table border="1" style="width: 30em;">
|
||||
<tr bgcolor="#CCCCCC"><td colspan="2">The tile type.</td></tr>
|
||||
<tr><td style="width: 5em;"><tt>00</tt></td><td>Ground</td></tr>
|
||||
<tr><td><tt>01</tt></td><td>Railway tracks</td></tr>
|
||||
<tr><td><tt>02</tt></td><td>Roads</td></tr>
|
||||
<tr><td><tt>03</tt></td><td>Town building</td></tr>
|
||||
<tr><td><tt>04</tt></td><td>Trees</td></tr>
|
||||
<tr><td><tt>05</tt></td><td>Station tiles</td></tr>
|
||||
<tr><td><tt>06</tt></td><td>Water</td></tr>
|
||||
<tr><td><tt>07</tt></td><td>Void</td></tr>
|
||||
<tr><td><tt>08</tt></td><td>Industries</td></tr>
|
||||
<tr><td><tt>09</tt></td><td>Tunnel / bridge</td></tr>
|
||||
<tr><td><tt>0A</tt></td><td>Objects</td></tr>
|
||||
</table>
|
||||
</li>
|
||||
Bits 3..2:
|
||||
<table border="1" style="width: 30em;">
|
||||
<tr bgcolor="#CCCCCC"><td colspan="2">Presence and direction of bridge above.</td></tr>
|
||||
<tr><td style="width: 5em;"><tt>00</tt></td><td>no bridge</td></tr>
|
||||
<tr><td><tt>01</tt></td><td>Axis X (North-East)</td></tr>
|
||||
<tr><td><tt>02</tt></td><td>Axis Y (South-West)</td></tr>
|
||||
</table>
|
||||
<li>
|
||||
<a name="tropic_zone"></a>
|
||||
Bits 1..0:
|
||||
<table border="1" style="width: 30em;">
|
||||
<tr bgcolor="#CCCCCC"><td colspan="2">Only meaningfull in tropic climate. It contains the definition of the available zones</td></tr>
|
||||
<tr><td style="width: 5em;"><tt>00</tt></td><td>normal</td></tr>
|
||||
<tr><td><tt>01</tt></td><td>desert</td></tr>
|
||||
<tr><td><tt>02</tt></td><td>rain forest</td></tr>
|
||||
</table>
|
||||
In any other climate these 2 bits are theoretically free of use, however using them does not seem useful.
|
||||
</li>
|
||||
</ul>
|
||||
<li><span style="font-weight: bold;">m1</span>
|
||||
<ul>
|
||||
<li>
|
||||
@@ -58,32 +98,6 @@
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><span style="font-weight: bold;">m6</span>
|
||||
<ul>
|
||||
<li>
|
||||
<a name="bridge_direction"></a>
|
||||
Bits 7..6:
|
||||
<table border="1" style="width: 30em;">
|
||||
<tr bgcolor="#CCCCCC"><td colspan="2">Presence and direction of bridge above, for tiles that support this.</td></tr>
|
||||
<tr><td style="width: 5em;"><tt>00</tt></td><td>no bridge</td></tr>
|
||||
<tr><td><tt>01</tt></td><td>Axis X (North-East)</td></tr>
|
||||
<tr><td><tt>02</tt></td><td>Axis Y (South-West)</td></tr>
|
||||
</table>
|
||||
Some tiles, such as houses do not support bridges over them and use these bits for other purposes.
|
||||
</li>
|
||||
<li>
|
||||
<a name="tropic_zone"></a>
|
||||
Bits 1..0:
|
||||
<table border="1" style="width: 30em;">
|
||||
<tr bgcolor="#CCCCCC"><td colspan="2">Only meaningfull in tropic climate. It contains the definition of the available zones</td></tr>
|
||||
<tr><td style="width: 5em;"><tt>00</tt></td><td>normal</td></tr>
|
||||
<tr><td><tt>01</tt></td><td>desert</td></tr>
|
||||
<tr><td><tt>02</tt></td><td>rain forest</td></tr>
|
||||
</table>
|
||||
In any other climate these 2 bits are theoretically free of use, however using them does not seem useful.
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><span style="font-weight: bold;">m7:</span><br>
|
||||
Animation frame/state. Used for houses, industries, objects and stations.
|
||||
</li>
|
||||
@@ -196,9 +210,7 @@
|
||||
</tr>
|
||||
</table>
|
||||
</li>
|
||||
<li>m6 bits 7..6 : Possibility of a bridge above, in the <a href="#bridge_direction">direction specified</a></li>
|
||||
<li>m6 bits 4..2: type of hedge on NW border of the tile</li>
|
||||
<li>m6 bits 1..0 : <a href="#tropic_zone">Tropic zone definition</a></li>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -510,8 +522,6 @@
|
||||
<li>m5 bit 4: pbs reservation state</li>
|
||||
</ul>
|
||||
</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>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -666,8 +676,6 @@
|
||||
<li>m7 bits 4..0: <a href="#OwnershipInfo">owner</a> of the road type 0 (normal road)</li>
|
||||
</ul>
|
||||
</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>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -714,7 +722,6 @@
|
||||
<li>bits 7..2 : lift position (for houses type 04 and 05)</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>bits 1..0 : tropic zone specifier</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>m7 :
|
||||
@@ -836,7 +843,6 @@
|
||||
</tr>
|
||||
</table>
|
||||
</li>
|
||||
<li>m6 bits 1..0 : <a href="#tropic_zone">Tropic zone definition</a></li>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -970,7 +976,6 @@
|
||||
<li>m6 bits 5..3: the station type (rail, airport, truck, bus, oilrig, dock, buoy, waypoint)</li>
|
||||
<li>m6 bit 2: pbs reservation state for railway stations/waypoints</li>
|
||||
|
||||
<li>m6 bits 1..0 : <a href="#tropic_zone">Tropic zone definition</a></li>
|
||||
<li>m7 bits 4..0: <a href="#OwnershipInfo">owner</a> of road (road stops)</li>
|
||||
<li>m7 bits 7..6: present road types (road stops)</li>
|
||||
<li>m7: animation frame (railway stations/waypoints, airports)</li>
|
||||
@@ -1083,8 +1088,6 @@
|
||||
</tr>
|
||||
</table>
|
||||
</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>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -1102,7 +1105,7 @@
|
||||
|
||||
<tr bgcolor="#CCCCCC">
|
||||
<td valign=top nowrap><strong><a name="Class8"><tt> 8</tt></a></strong></td>
|
||||
<td><strong>Industry tile </strong></td>
|
||||
<td><strong>Industries </strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign=top nowrap> </td>
|
||||
@@ -1426,7 +1429,6 @@
|
||||
</li>
|
||||
<li>m6 bits 5..3: random triggers (NewGRF)</li>
|
||||
<li>m6 bit 2: bit 8 of type (see m5)</li>
|
||||
<li>m6 bits 1..0 : <a href="#tropic_zone">Tropic zone definition</a></li>
|
||||
<li>m7: animation frame</li>
|
||||
</ul>
|
||||
</td>
|
||||
@@ -1577,8 +1579,6 @@
|
||||
</tr>
|
||||
</table>
|
||||
</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 bits 4..0: <a href="#OwnershipInfo">owner</a> of road</li>
|
||||
<li>m7 bit 5 set = on snow or desert</li>
|
||||
<li>m7 bits 7..6: present road types for road</li>
|
||||
@@ -1599,8 +1599,6 @@
|
||||
<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>
|
||||
</ul>
|
||||
</td>
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
</head>
|
||||
<body style="direction: ltr;">
|
||||
<h3 style="font-weight: bold;">Landscape</h3>
|
||||
<span style="font-weight: bold;"></span>Six attributes hold the information about a tile.
|
||||
<span style="font-weight: bold;"></span>Nine attributes hold the information about a tile.
|
||||
This can be seen in the <a href="landscape.html">Landscape</a> document. This page tries to give an overview of used and free bits of
|
||||
the array so you can quickly see what is used and what is not.
|
||||
<ul>
|
||||
@@ -28,13 +28,14 @@ the array so you can quickly see what is used and what is not.
|
||||
</ul>
|
||||
<p>
|
||||
<ul>
|
||||
<li><span style="font-weight: bold;">type_height</span> - 8 bits in size, stores tile height (lower 4 bits) and tile class (upper 4 bits)</li>
|
||||
<li><span style="font-weight: bold;">type</span> - 8 bits in size, tile class (bits 4..7), bridge (bits 2..3) tropic zone (bits 0..1, only valid in tropic climate)</li>
|
||||
<li><span style="font-weight: bold;">height</span> - 8 bits in size, stores tile height</li>
|
||||
<li><span style="font-weight: bold;">m1</span> - 8 bits in size, used to identify the owner of that tile (eg piece of rail, bridge, etc.)</li>
|
||||
<li><span style="font-weight: bold;">m2</span> - 16 bits in size, used to identify the index of the given tile (object) in the (object-)array</li>
|
||||
<li><span style="font-weight: bold;">m3</span> - 8 bits in size, is used for general storage</li>
|
||||
<li><span style="font-weight: bold;">m4</span> - 8 bits in size, is used for general storage</li>
|
||||
<li><span style="font-weight: bold;">m5</span> - 8 bits in size, is used for general storage</li>
|
||||
<li><span style="font-weight: bold;">m6</span> - 8 bits in size, special meaning : lower 2 bits only valid in tropic climate, upper 2 bits for bridges</li>
|
||||
<li><span style="font-weight: bold;">m6</span> - 8 bits in size, is used for general storage</li>
|
||||
<li><span style="font-weight: bold;">m7</span> - 8 bits in size, is used for general storage</li>
|
||||
</ul>
|
||||
|
||||
@@ -42,7 +43,8 @@ the array so you can quickly see what is used and what is not.
|
||||
<tbody>
|
||||
<tr>
|
||||
<th colspan=2>class</th>
|
||||
<th>type_height (8)</th>
|
||||
<th>type (8)</th>
|
||||
<th>height (8)</th>
|
||||
<th>m1 (8)</th>
|
||||
<th>m2 (16)</th>
|
||||
<th>m3 (8)</th>
|
||||
@@ -55,6 +57,7 @@ the array so you can quickly see what is used and what is not.
|
||||
<td colspan=2 class="caption">bits</td>
|
||||
<td class="bits">7654 3210</td>
|
||||
<td class="bits">7654 3210</td>
|
||||
<td class="bits">7654 3210</td>
|
||||
<td class="bits">FEDC BA98 7654 3210</td>
|
||||
<td class="bits">7654 3210</td>
|
||||
<td class="bits">7654 3210</td>
|
||||
@@ -66,69 +69,75 @@ the array so you can quickly see what is used and what is not.
|
||||
<td rowspan="2">0</td>
|
||||
<td class="caption">ground</td>
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
<td class="bits"><span class="free">OOO</span><span class="option">~ ~~~~</span></td>
|
||||
<td class="bits"><span class="free">OOOO OOOO OOOO OOOO</span></td>
|
||||
<td class="bits">XXXX <span class="free">OOOO</span></td>
|
||||
<td class="bits">XXXX XX<span class="free">OO</span></td>
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
<td class="bits">XX<span class="free">O</span>X XXXX</td>
|
||||
<td class="bits"><span class="free">OOO</span>X XX<span class="free">OO</span></td>
|
||||
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="caption">farmland</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">XXXX XXXX XXXX XXXX</td>
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">XX<span class="free">O</span>X XXXX</td>
|
||||
<td class="bits"><span class="free">OOO</span>X XX<span class="free">OO</span></td>
|
||||
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan=3>1</td>
|
||||
<td class="caption">rail</td>
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
<td class="bits"><span class="free">OOO</span>X XXXX</td>
|
||||
<td class="bits"><span class="free">OOOO</span> XXXX <span class="free">OOOO OOOO</span></td>
|
||||
<td class="bits"><span class="free">OOOO</span> XXXX</td>
|
||||
<td class="bits"><span class="free">OOOO</span> XXXX</td>
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
<td class="bits">XX<span class="free">OO OO</span>XX</td>
|
||||
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
||||
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="caption">rail with signals</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits"><span class="free">OOOO</span> XXXX XXXX XXXX</td>
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">XX<span class="free">OO OO</span>XX</td>
|
||||
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
||||
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="caption">depot</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<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">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>
|
||||
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan=3>2</td>
|
||||
<td class="caption">road</td>
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
<td class="bits"><span class="free">OOO</span>X XXXX</td>
|
||||
<td class="bits">XXXX XXXX XXXX XXXX</td>
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
<td class="bits">XXXX X<span class="free">O</span>XX</td>
|
||||
<td class="bits"><span class="free">OO</span>XX X<span class="free">OOO</span></td>
|
||||
<td class="bits">XXX<span class="free">O</span> XXXX</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -136,10 +145,11 @@ the array so you can quickly see what is used and what is not.
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">XXXX<span class="free"> OOO</span>X</td>
|
||||
<td class="bits">XXXX X<span class="free">O</span>XX</td>
|
||||
<td class="bits"><span class="free">OO</span>XX X<span class="free">OOO</span></td>
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -147,10 +157,11 @@ the array so you can quickly see what is used and what is not.
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">XXXX <span class="free">OOOO</span></td>
|
||||
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
||||
<td class="bits">XX<span class="free">OO 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>
|
||||
<td class="bits">XXX<span class="free">O</span> XXXX</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -158,35 +169,38 @@ the array so you can quickly see what is used and what is not.
|
||||
<td class="caption">house</td>
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
<td class="bits">XXXX XXXX XXXX XXXX</td>
|
||||
<td class="bits">XX<span class="free">O</span><span class="option">~ ~~</span>XX</td>
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
<td class="bits">XXX<span class="abuse">X XXXX</span></td>
|
||||
<td class="bits"><span class="abuse">XXXX XX</span>XX</td>
|
||||
<td class="bits"><span class="abuse">XXXX XX</span><span class="free">OO</span></td>
|
||||
<td class="bits">XXXX <span class="abuse">XXXX</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>4</td>
|
||||
<td class="caption">trees</td>
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
<td class="bits"><span class="free">OOO</span><span class="option">~ ~~~~</span></td>
|
||||
<td class="bits"><span class="free">OOOO OOO</span>X XXXX XXXX</td>
|
||||
<td class="bits"><span class="option">~~</span>XX XXXX</td>
|
||||
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
||||
<td class="bits">XX<span class="free">OO O</span>XXX</td>
|
||||
<td class="bits"><span class="free">OOOO OO</span>XX</td>
|
||||
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
||||
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan=7>5</td>
|
||||
<td class="caption">rail station</td>
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
<td class="bits"><span class="free">O</span>XXX XXXX</td>
|
||||
<td class="bits">XXXX XXXX XXXX XXXX</td>
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
<td class="bits"><span class="free">OO</span>XX XXXX</td>
|
||||
<td class="bits"><span class="free">OO</span>XX XX<span class="free">OO</span></td>
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -199,16 +213,18 @@ the array so you can quickly see what is used and what is not.
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="caption">road stop</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<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 X<span class="free">O</span>XX</td>
|
||||
<td class="bits"><span class="free">OO</span>XX X<span class="free">OOO</span></td>
|
||||
<td class="bits">XX<span class="free">O</span>X XXXX</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -216,10 +232,11 @@ the array so you can quickly see what is used and what is not.
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits"><span class="free">OOOO 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 X<span class="free">O</span>XX</td>
|
||||
<td class="bits"><span class="free">OO</span>XX X<span class="free">OOO</span></td>
|
||||
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -227,10 +244,11 @@ the array so you can quickly see what is used and what is not.
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">XXXX <span class="free">OOOO</span></td>
|
||||
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
<td class="bits"><span class="free">OO</span>XX X<span class="free">O</span>XX</td>
|
||||
<td class="bits"><span class="free">OO</span>XX X<span class="free">OOO</span></td>
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -238,10 +256,11 @@ the array so you can quickly see what is used and what is not.
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
||||
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
||||
<td class="bits"><span class="option">~~~~ ~~~~</span></td>
|
||||
<td class="bits"><span class="free">OO</span>XX X<span class="free">O</span>XX</td>
|
||||
<td class="bits"><span class="free">OO</span>XX X<span class="free">OOO</span></td>
|
||||
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -249,68 +268,74 @@ the array so you can quickly see what is used and what is not.
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
||||
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
||||
<td class="bits"><span class="option">~~~~ ~~~~</span></td>
|
||||
<td class="bits"><span class="free">OO</span>XX X<span class="free">O</span>XX</td>
|
||||
<td class="bits"><span class="free">OO</span>XX X<span class="free">OOO</span></td>
|
||||
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan=3>6</td>
|
||||
<td class="caption">sea, shore</td>
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
<td class="bits"><span class="free">O</span>XXX XXXX</td>
|
||||
<td class="bits"><span class="free">OOOO OOOO OOOO OOOO</span></td>
|
||||
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
||||
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
||||
<td class="bits">X<span class="option">~~</span>X XXXX</td>
|
||||
<td class="bits">XX<span class="free">OO OO</span>XX</td>
|
||||
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
||||
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="caption">canal, river</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits"><span class="free">OOOO OOOO OOOO OOOO</span></td>
|
||||
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">XX<span class="free">OO OO</span>XX</td>
|
||||
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
||||
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="caption">shipdepot</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">XXXX XXXX XXXX XXXX</td>
|
||||
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
||||
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">XX<span class="free">OO OO</span>XX</td>
|
||||
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
||||
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>8</td>
|
||||
<td class="caption">industry</td>
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
<td class="bits">XXX<span class="free">O</span> <span class="abuse">XXXX</span></td>
|
||||
<td class="bits">XXXX XXXX XXXX XXXX</td>
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
<td class="bits"><span class="free">OO</span>XX XXXX</td>
|
||||
<td class="bits"><span class="free">OO</span>XX XX<span class="free">OO</span></td>
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan=2>9</td>
|
||||
<td class="caption">tunnel entrance</td>
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
<td class="bits"><span class="free">OOO</span>X XXXX</td>
|
||||
<td class="bits"><span class="free">OOOO OOOO OOOO OOOO</span></td>
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
<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"><span class="free">OOOO OOOO</span></td>
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -321,19 +346,21 @@ the array so you can quickly see what is used and what is not.
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits"><span class="free">OO</span>XX XX<span class="free">OO</span></td>
|
||||
<td class="bits">-inherit-</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan=2>A</td>
|
||||
<td class="caption">objects</td>
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
<td class="bits"><span class="free">O</span>XXX XXXX</td>
|
||||
<td class="bits">XXXX XXXX XXXX XXXX</td>
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
<td class="bits">XX<span class="free">OO OO</span>XX</td>
|
||||
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
||||
150
docs/openttd.6
150
docs/openttd.6
@@ -1,112 +1,152 @@
|
||||
.\" Hey, EMACS: -*- nroff -*-
|
||||
.\" Please adjust this date whenever revising the manpage.
|
||||
.Dd May 31, 2011
|
||||
.Dd October 13, 2014
|
||||
.Dt OPENTTD 6
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm openttd
|
||||
.Nd An open source clone of the Microprose game "Transport Tycoon Deluxe"
|
||||
.Nd open source clone of the Microprose game \(lqTransport Tycoon Deluxe\(rq
|
||||
.Sh SYNOPSIS
|
||||
.Nm
|
||||
.Op Fl efhx
|
||||
.Op Fl b Ar blitter
|
||||
.Op Fl c Ar config_file
|
||||
.Op Fl d Ar [level | cat=lvl[,...]]
|
||||
.Op Fl D Ar [host][:port]
|
||||
.Op Fl g Ar [savegame]
|
||||
.Op Fl d Op Ar level | Ar cat Ns = Ns Ar lvl Ns Op , Ns Ar ...
|
||||
.Op Fl D Oo Ar host Oc Ns Op : Ns Ar port
|
||||
.Op Fl g Op Ar savegame
|
||||
.Op Fl G Ar seed
|
||||
.Op Fl I Ar graphicsset
|
||||
.Op Fl l Ar host[:port]
|
||||
.Op Fl l Ar host Ns Op : Ns Ar port
|
||||
.Op Fl m Ar driver
|
||||
.Op Fl M Ar musicset
|
||||
.Op Fl n Ar host[:port][#player]
|
||||
.Op Fl n Ar host Ns Oo : Ns Ar port Oc Ns Op # Ns Ar player
|
||||
.Op Fl p Ar password
|
||||
.Op Fl P Ar password
|
||||
.Op Fl q Ar savegame
|
||||
.Op Fl r Ar widthxheight
|
||||
.Op Fl r Ar width Ns x Ns Ar height
|
||||
.Op Fl s Ar driver
|
||||
.Op Fl S Ar soundset
|
||||
.Op Fl t Ar year
|
||||
.Op Fl v Ar driver
|
||||
.Sh OPTIONS
|
||||
.Bl -tag -width ".Fl n Ar host[:port][#player]"
|
||||
.Bl -tag -width "-n host[:port][#player]"
|
||||
.It Fl b Ar blitter
|
||||
Set the blitter, see
|
||||
Select the blitter
|
||||
.Ar blitter ;
|
||||
see
|
||||
.Fl h
|
||||
for a full list
|
||||
for a full list.
|
||||
.It Fl c Ar config_file
|
||||
Use 'config_file' instead of 'openttd.cfg'
|
||||
Use
|
||||
.Ar config_file
|
||||
instead of
|
||||
.Pa openttd.cfg .
|
||||
.It Fl d Ar [level]
|
||||
Set debug verbosity for all categories to
|
||||
.Ar level
|
||||
or 1 if omitted
|
||||
.It Fl d Ar cat=level[,...]
|
||||
Set debug verbosity for a specific category
|
||||
.It Fl D Ar [host][:port]
|
||||
Start a dedicated server. Sets network debug level to 6. If you want to change this, use
|
||||
.Ar level ,
|
||||
or 1 if omitted.
|
||||
.It Fl d Ar cat Ns = Ns Ar lvl Ns Op , Ns Ar ...
|
||||
Set debug verbosity to
|
||||
.Ar lvl
|
||||
for a specific category
|
||||
.Ar cat .
|
||||
.It Fl D Oo Ar host Oc Ns Op : Ns Ar port
|
||||
Start a dedicated server.
|
||||
.Pp
|
||||
Network debug level will be set to 6.
|
||||
If you want to change this, set
|
||||
.Fl d
|
||||
after
|
||||
.Fl D
|
||||
.It Fl G Ar seed
|
||||
Seed the pseudo random number generator
|
||||
after setting
|
||||
.Fl D .
|
||||
.It Fl e
|
||||
Start in world editor mode
|
||||
Start in world editor mode.
|
||||
.It Fl f
|
||||
Fork into background (dedicated server only, see
|
||||
.Fl D )
|
||||
.It Fl g Ar [savegame]
|
||||
.Fl D ) .
|
||||
.It Fl g Op Ar savegame
|
||||
Load
|
||||
.Ar savegame
|
||||
at start or start a new game if omitted. The
|
||||
at start or start a new game if omitted.
|
||||
.Ar savegame
|
||||
must be either absolute or relative to the current path or one of the search paths.
|
||||
must be either an absolute path or one relative to the current path or one of
|
||||
the search paths.
|
||||
.It Fl G Ar seed
|
||||
Seed the pseudo random number generator with
|
||||
.Ar seed .
|
||||
.It Fl h
|
||||
Display a summary of all options and lists all the available AIs, blitters, sound, music and video drivers, graphics sets and sound sets.
|
||||
Display a summary of all options and list all the available AIs, blitters,
|
||||
sound, music and video drivers, graphics sets and sound sets.
|
||||
.It Fl I Ar graphicsset
|
||||
Set the graphics set, see
|
||||
Select the graphics set
|
||||
.Ar graphicsset ;
|
||||
see
|
||||
.Fl h
|
||||
for a full list
|
||||
.It Fl l Ar host[:port]
|
||||
Redirect DEBUG(), See
|
||||
.Fl D
|
||||
for a full list.
|
||||
.It Fl l Ar host Ns Op : Ns Ar port
|
||||
Redirect
|
||||
.Fn DEBUG
|
||||
output; see
|
||||
.Fl D .
|
||||
.It Fl m Ar driver
|
||||
Set the music driver, see
|
||||
Select the music driver
|
||||
.Ar driver ;
|
||||
see
|
||||
.Fl h
|
||||
for a full list
|
||||
for a full list.
|
||||
.It Fl M Ar musicset
|
||||
Set the music set, see
|
||||
Select the music set
|
||||
.Ar musicset ;
|
||||
see
|
||||
.Fl h
|
||||
for a full list
|
||||
.It Fl n Ar host[:port][#player]
|
||||
Join a network game, optionally specify a port to connect to and player to play as
|
||||
for a full list.
|
||||
.It Fl n Ar host Ns Oo : Ns Ar port Oc Ns Op # Ns Ar player
|
||||
Join a network game, optionally specifying a port to connect to and player to
|
||||
play as.
|
||||
.It Fl p Ar password
|
||||
Password used to join server. Only useful with
|
||||
.Fl n
|
||||
Password used to join server.
|
||||
Only useful with
|
||||
.Fl n .
|
||||
.It Fl P Ar password
|
||||
Password used to join company. Only useful with
|
||||
.Fl n
|
||||
Password used to join company.
|
||||
Only useful with
|
||||
.Fl n .
|
||||
.It Fl q Ar savegame
|
||||
Write some information about the savegame and exit
|
||||
.It Fl r Ar widthxheight
|
||||
Set the resolution
|
||||
Write some information about the specified savegame and exit.
|
||||
.It Fl r Ar width Ns x Ns Ar height
|
||||
Set the resolution to
|
||||
.Ar width
|
||||
\(mu
|
||||
.Ar height
|
||||
pixels.
|
||||
.It Fl s Ar driver
|
||||
Set the sound driver, see
|
||||
Select the sound driver
|
||||
.Ar driver ;
|
||||
see
|
||||
.Fl h
|
||||
for a full list
|
||||
for a full list.
|
||||
.It Fl S Ar soundset
|
||||
Set the sound set, see
|
||||
Select the sound set
|
||||
.Ar soundset ;
|
||||
see
|
||||
.Fl h
|
||||
for a full list
|
||||
for a full list.
|
||||
.It Fl t Ar year
|
||||
Set the starting year
|
||||
Set the starting year to
|
||||
.Ar year .
|
||||
.It Fl v Ar driver
|
||||
Set the video driver, see
|
||||
Select the video driver
|
||||
.Ar driver ;
|
||||
see
|
||||
.Fl h
|
||||
for a full list
|
||||
for a full list.
|
||||
.It Fl x
|
||||
Do not automatically save to config file on exit
|
||||
Do not automatically save to config file on exit.
|
||||
.El
|
||||
.Sh SEE ALSO
|
||||
http://wiki.openttd.org/, http://www.openttd.org
|
||||
.Lk https://wiki.openttd.org "Wiki"
|
||||
(includes community maintained manual),
|
||||
.Lk https://forum.openttd.org "Forum",
|
||||
.Lk https://www.openttd.org "News"
|
||||
.Sh HISTORY
|
||||
Transport Tycoon Deluxe was written by Chris Sawyer and published by Microprose.
|
||||
.Nm
|
||||
|
||||
@@ -70,7 +70,11 @@ ROOT_DIR=`pwd`
|
||||
# Determine if we are using a modified version
|
||||
# Assume the dir is not modified
|
||||
MODIFIED="0"
|
||||
if [ -d "$ROOT_DIR/.svn" ] || [ -d "$ROOT_DIR/../.svn" ]; then
|
||||
if [ -f "$ROOT_DIR/.ottdrev" ]; then
|
||||
# We are an exported source bundle
|
||||
cat $ROOT_DIR/.ottdrev
|
||||
exit
|
||||
elif [ -d "$ROOT_DIR/.svn" ] || [ -d "$ROOT_DIR/../.svn" ]; then
|
||||
# We are an svn checkout
|
||||
if [ -n "`svnversion | grep 'M'`" ]; then
|
||||
MODIFIED="2"
|
||||
@@ -84,7 +88,7 @@ if [ -d "$ROOT_DIR/.svn" ] || [ -d "$ROOT_DIR/../.svn" ]; then
|
||||
else
|
||||
REV="r$REV_NR"
|
||||
fi
|
||||
elif [ -d "$ROOT_DIR/.git" ]; then
|
||||
elif [ -e "$ROOT_DIR/.git" ]; then
|
||||
# We are a git checkout
|
||||
# Refresh the index to make sure file stat info is in sync, then look for modifications
|
||||
git update-index --refresh >/dev/null
|
||||
@@ -106,26 +110,22 @@ elif [ -d "$ROOT_DIR/.git" ]; then
|
||||
fi
|
||||
elif [ -d "$ROOT_DIR/.hg" ]; then
|
||||
# We are a hg checkout
|
||||
if [ -n "`hg status | grep -v '^?'`" ]; then
|
||||
if [ -n "`HGPLAIN= hg status | grep -v '^?'`" ]; then
|
||||
MODIFIED="2"
|
||||
fi
|
||||
HASH=`LC_ALL=C hg id -i | cut -c1-12`
|
||||
HASH=`LC_ALL=C HGPLAIN= hg id -i | cut -c1-12`
|
||||
REV="h`echo $HASH | cut -c1-8`"
|
||||
BRANCH="`hg branch | sed 's@^default$@@'`"
|
||||
TAG="`hg id -t | grep -v 'tip$'`"
|
||||
BRANCH="`HGPLAIN= hg branch | sed 's@^default$@@'`"
|
||||
TAG="`HGPLAIN= hg id -t | grep -v 'tip$'`"
|
||||
if [ -n "$TAG" ]; then
|
||||
BRANCH=""
|
||||
REV="$TAG"
|
||||
fi
|
||||
REV_NR=`LC_ALL=C hg log -f -k "(svn r" -l 1 --template "{desc|firstline}\n" | grep "^(svn r[0-9]*)" | sed "s@.*(svn r\([0-9]*\)).*@\1@"`
|
||||
REV_NR=`LC_ALL=C HGPLAIN= hg log -f -k "(svn r" -l 1 --template "{desc|firstline}\n" | grep "^(svn r[0-9]*)" | sed "s@.*(svn r\([0-9]*\)).*@\1@"`
|
||||
if [ -z "$REV_NR" ]; then
|
||||
# No rev? Maybe it is a custom hgsubversion clone
|
||||
REV_NR=`LC_ALL=C hg parent --template="{svnrev}"`
|
||||
REV_NR=`LC_ALL=C HGPLAIN= hg parent --template="{svnrev}"`
|
||||
fi
|
||||
elif [ -f "$ROOT_DIR/.ottdrev" ]; then
|
||||
# We are an exported source bundle
|
||||
cat $ROOT_DIR/.ottdrev
|
||||
exit
|
||||
else
|
||||
# We don't know
|
||||
MODIFIED="1"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
OpenTTD's known bugs
|
||||
Last updated: 2014-10-21
|
||||
Release version: 1.4.4
|
||||
Last updated: 2016-04-01
|
||||
Release version: 1.6.0
|
||||
------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
@@ -104,3 +104,4 @@
|
||||
#include "rivers/tropic.nfo"
|
||||
#include "rivers/toyland.nfo"
|
||||
#include "tunnel_portals.nfo"
|
||||
#include "palette.nfo"
|
||||
|
||||
20
media/extra_grf/palette.nfo
Normal file
20
media/extra_grf/palette.nfo
Normal file
@@ -0,0 +1,20 @@
|
||||
//
|
||||
// $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/>.
|
||||
//
|
||||
|
||||
-1 * 0 0C "All black palette"
|
||||
-1 * 0 05 18 01
|
||||
-1 * 0 00 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
|
||||
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
|
||||
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
|
||||
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
|
||||
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
|
||||
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
|
||||
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
|
||||
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
|
||||
01
|
||||
@@ -47,7 +47,7 @@
|
||||
-1 sprites/shore.png 8bpp 82 200 64 32 -31 -1 normal
|
||||
-1 sprites/shore.png 8bpp 162 200 64 31 -31 -8 normal
|
||||
-1 * 6 07 83 01 \7! 03 0C
|
||||
-1 * 44 0C "Missing shore tile graphics for the toyland climate"
|
||||
-1 * 52 0C "Missing shore tile graphics for the toyland climate"
|
||||
-1 * 3 05 0D 0A
|
||||
-1 sprites/shore.png 8bpp 290 200 64 15 -31 0 normal
|
||||
-1 sprites/shore.png 8bpp 370 200 64 31 -31 -8 normal
|
||||
|
||||
@@ -9,4 +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
|
||||
Keywords=game;simulation;transport;tycoon;deluxe;economics;multiplayer;money;train;ship;bus;truck;aircraft;cargo;
|
||||
|
||||
@@ -1,3 +1,75 @@
|
||||
openttd (1.6.0-0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.6.0
|
||||
|
||||
-- OpenTTD <info@openttd.org> Fri, 01 Apr 2016 21:00:00 +0200
|
||||
|
||||
openttd (1.6.0~RC1-0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.6.0-RC1
|
||||
|
||||
-- OpenTTD <info@openttd.org> Tue, 01 Mar 2016 21:00:00 +0100
|
||||
|
||||
openttd (1.5.3-0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.5.3
|
||||
|
||||
-- OpenTTD <info@openttd.org> Tue, 01 Dec 2015 21:00:00 +0100
|
||||
|
||||
openttd (1.5.3~RC1-0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.5.3-RC1
|
||||
|
||||
-- OpenTTD <info@openttd.org> Sun, 01 Nov 2015 14:00:00 +0100
|
||||
|
||||
openttd (1.5.2-0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.5.2
|
||||
|
||||
-- OpenTTD <info@openttd.org> Tue, 01 Sep 2015 21:00:00 +0200
|
||||
|
||||
openttd (1.5.2~RC1-0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.5.2-RC1
|
||||
|
||||
-- OpenTTD <info@openttd.org> Sat, 01 Aug 2015 13:00:00 +0200
|
||||
|
||||
openttd (1.5.1-0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.5.1
|
||||
|
||||
-- OpenTTD <info@openttd.org> Mon, 01 Jun 2015 21:00:00 +0200
|
||||
|
||||
openttd (1.5.1~RC1-0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.5.1-RC1
|
||||
|
||||
-- OpenTTD <info@openttd.org> Fri, 08 May 2015 21:00:00 +0200
|
||||
|
||||
openttd (1.5.0-0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.5.0
|
||||
|
||||
-- OpenTTD <info@openttd.org> Wed, 01 Apr 2015 21:00:00 +0200
|
||||
|
||||
openttd (1.5.0~RC1-0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.5.0-RC1
|
||||
|
||||
-- OpenTTD <info@openttd.org> Wed, 18 Mar 2015 21:00:00 +0100
|
||||
|
||||
openttd (1.5.0~beta2-0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.5.0-beta2
|
||||
|
||||
-- OpenTTD <info@openttd.org> Tue, 24 Feb 2015 21:00:00 +0100
|
||||
|
||||
openttd (1.5.0~beta1-0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.5.0-beta1
|
||||
|
||||
-- OpenTTD <info@openttd.org> Wed, 24 Dec 2014 21:00:00 +0100
|
||||
|
||||
openttd (1.4.4-0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.4.4
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
@echo off
|
||||
|
||||
set OPENTTD_VERSION=1.5.0
|
||||
set OPENTTD_VERSION=1.6.0
|
||||
set OPENSFX_VERSION=0.8.0
|
||||
set NOSOUND_VERSION=0.8.0
|
||||
set OPENGFX_VERSION=1.2.0
|
||||
|
||||
@@ -17,9 +17,9 @@
|
||||
#
|
||||
|
||||
Name: openttd
|
||||
Version: 1.5.beta1
|
||||
Version: 1.6.beta1
|
||||
Release: 0
|
||||
%define srcver 1.5.0-beta1
|
||||
%define srcver 1.6.0-beta1
|
||||
Summary: An open source reimplementation of Chris Sawyer's Transport Tycoon Deluxe
|
||||
License: GPL-2.0
|
||||
Group: Amusements/Games/Strategy/Other
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# Version numbers to update
|
||||
!define APPV_MAJOR 1
|
||||
!define APPV_MINOR 4
|
||||
!define APPV_MAINT 4
|
||||
!define APPV_MINOR 6
|
||||
!define APPV_MAINT 0
|
||||
!define APPV_BUILD 1
|
||||
!define APPV_EXTRA ""
|
||||
|
||||
|
||||
@@ -22,6 +22,15 @@ then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# openttd_vs140.sln is for MSVC 2015
|
||||
# openttd_vs140.vcxproj is for MSVC 2015
|
||||
# openttd_vs140.vcxproj.filters is for MSVC 2015
|
||||
# langs_vs140.vcxproj is for MSVC 2015
|
||||
# strgen_vs140.vcxproj is for MSVC 2015
|
||||
# strgen_vs140.vcxproj.filters is for MSVC 2015
|
||||
# generate_vs140.vcxproj is for MSVC 2015
|
||||
# version_vs140.vcxproj is for MSVC 2015
|
||||
|
||||
# openttd_vs100.sln is for MSVC 2010
|
||||
# openttd_vs100.vcxproj is for MSVC 2010
|
||||
# openttd_vs100.vcxproj.filters is for MSVC 2010
|
||||
@@ -77,7 +86,7 @@ safety_check() {
|
||||
done
|
||||
}
|
||||
|
||||
grep '\.h' "$ROOT_DIR/source.list" | grep -v '../objs/langs/table/strings.h\|../objs/settings/table/settings.h' | sed 's/ //' | sort > tmp.headers.source.list
|
||||
grep '\.h' "$ROOT_DIR/source.list" | grep -v '../objs/langs/table/strings.h\|../objs/settings/table/settings.h' | sed 's/ //g' | sort > tmp.headers.source.list
|
||||
find "$ROOT_DIR/src" \( -iname "*.h" -or -iname "*.hpp" \) -and -not -ipath "*/.svn/*" | sed "s~$ROOT_DIR/src/~~" | sort > tmp.headers.src
|
||||
if [ -n "`diff tmp.headers.source.list tmp.headers.src`" ]; then
|
||||
echo "The following headers are missing in source.list and not in /src/ or vice versa."
|
||||
@@ -306,11 +315,17 @@ generate "$openttd" "openttd_vs80.vcproj"
|
||||
generate "$openttd" "openttd_vs90.vcproj"
|
||||
generate "$openttdvcxproj" "openttd_vs100.vcxproj"
|
||||
generate "$openttdfiles" "openttd_vs100.vcxproj.filters" "$openttdfilters"
|
||||
generate "$openttdvcxproj" "openttd_vs140.vcxproj"
|
||||
generate "$openttdfiles" "openttd_vs140.vcxproj.filters" "$openttdfilters"
|
||||
generate "$lang" "langs_vs80.vcproj"
|
||||
generate "$lang" "langs_vs90.vcproj"
|
||||
generate "$langvcxproj" "langs_vs100.vcxproj"
|
||||
generate "$langfiles" "langs_vs100.vcxproj.filters"
|
||||
generate "$langvcxproj" "langs_vs140.vcxproj"
|
||||
generate "$langfiles" "langs_vs140.vcxproj.filters"
|
||||
generate "$settings" "settings_vs80.vcproj" "$settingscommand"
|
||||
generate "$settings" "settings_vs90.vcproj" "$settingscommand"
|
||||
generate "$settingsvcxproj" "settings_vs100.vcxproj" "$settingscommand"
|
||||
generate "$settingsfiles" "settings_vs100.vcxproj.filters"
|
||||
generate "$settingsvcxproj" "settings_vs140.vcxproj" "$settingscommand"
|
||||
generate "$settingsfiles" "settings_vs140.vcxproj.filters"
|
||||
|
||||
@@ -10,6 +10,15 @@ Option Explicit
|
||||
Dim FSO
|
||||
Set FSO = CreateObject("Scripting.FileSystemObject")
|
||||
|
||||
' openttd_vs140.sln is for MSVC 2015
|
||||
' openttd_vs140.vcxproj is for MSVC 2015
|
||||
' openttd_vs140.vcxproj.filters is for MSVC 2015
|
||||
' langs_vs140.vcxproj is for MSVC 2015
|
||||
' strgen_vs140.vcxproj is for MSVC 2015
|
||||
' strgen_vs140.vcxproj.filters is for MSVC 2015
|
||||
' generate_vs140.vcxproj is for MSVC 2015
|
||||
' version_vs140.vcxproj is for MSVC 2015
|
||||
|
||||
' openttd_vs100.sln is for MSVC 2010
|
||||
' openttd_vs100.vcxproj is for MSVC 2010
|
||||
' openttd_vs100.vcxproj.filters is for MSVC 2010
|
||||
@@ -369,6 +378,8 @@ generate openttd, ROOT_DIR & "/projects/openttd_vs80.vcproj", Null
|
||||
generate openttd, ROOT_DIR & "/projects/openttd_vs90.vcproj", Null
|
||||
generate openttdvcxproj, ROOT_DIR & "/projects/openttd_vs100.vcxproj", Null
|
||||
generate openttdfiles, ROOT_DIR & "/projects/openttd_vs100.vcxproj.filters", openttdfilters
|
||||
generate openttdvcxproj, ROOT_DIR & "/projects/openttd_vs140.vcxproj", Null
|
||||
generate openttdfiles, ROOT_DIR & "/projects/openttd_vs140.vcxproj.filters", openttdfilters
|
||||
|
||||
Dim lang, langvcxproj, langfiles
|
||||
lang = load_lang_data(ROOT_DIR & "/src/lang", langvcxproj, langfiles)
|
||||
@@ -376,6 +387,8 @@ generate lang, ROOT_DIR & "/projects/langs_vs80.vcproj", Null
|
||||
generate lang, ROOT_DIR & "/projects/langs_vs90.vcproj", Null
|
||||
generate langvcxproj, ROOT_DIR & "/projects/langs_vs100.vcxproj", Null
|
||||
generate langfiles, ROOT_DIR & "/projects/langs_vs100.vcxproj.filters", Null
|
||||
generate langvcxproj, ROOT_DIR & "/projects/langs_vs140.vcxproj", Null
|
||||
generate langfiles, ROOT_DIR & "/projects/langs_vs140.vcxproj.filters", Null
|
||||
|
||||
Dim settings, settingsvcxproj, settingscommand, settingsfiles
|
||||
settings = load_settings_data(ROOT_DIR & "/src/table", settingsvcxproj, settingscommand, settingsfiles)
|
||||
@@ -383,3 +396,5 @@ generate settings, ROOT_DIR & "/projects/settings_vs80.vcproj", settingscommand
|
||||
generate settings, ROOT_DIR & "/projects/settings_vs90.vcproj", settingscommand
|
||||
generate settingsvcxproj, ROOT_DIR & "/projects/settings_vs100.vcxproj", settingscommand
|
||||
generate settingsfiles, ROOT_DIR & "/projects/settings_vs100.vcxproj.filters", Null
|
||||
generate settingsvcxproj, ROOT_DIR & "/projects/settings_vs140.vcxproj", settingscommand
|
||||
generate settingsfiles, ROOT_DIR & "/projects/settings_vs140.vcxproj.filters", Null
|
||||
|
||||
40
projects/generate_vs140.vcxproj
Normal file
40
projects/generate_vs140.vcxproj
Normal file
@@ -0,0 +1,40 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectName>generate</ProjectName>
|
||||
<ProjectGuid>{2F31FD79-D1AC-43C4-89F3-B0D5E4E53E34}</ProjectGuid>
|
||||
<RootNamespace>generate</RootNamespace>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Utility</ConfigurationType>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<ItemDefinitionGroup>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="..\source.list">
|
||||
<FileType>Document</FileType>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Running %27generate.vbs%27 ...</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">cscript "$(ProjectDir)generate.vbs"</Command>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(FullPath);%(AdditionalInputs)</AdditionalInputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)openttd_vs80.vcproj;$(SolutionDir)openttd_vs90.vcproj;$(SolutionDir)openttd_vs100.vcxproj;$(SolutionDir)openttd_vs100.vcxproj.filters;$(SolutionDir)langs_vs80.vcproj;$(SolutionDir)langs_vs90.vcproj;$(SolutionDir)langs_vs100.vcxproj;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
@@ -227,6 +227,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\korean.lng;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\latin.txt">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating latin 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\latin.lng;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\latvian.txt">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating latvian language file</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
|
||||
|
||||
@@ -97,6 +97,9 @@
|
||||
<CustomBuild Include="..\src\lang\korean.txt">
|
||||
<Filter>Translations</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\latin.txt">
|
||||
<Filter>Translations</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\latvian.txt">
|
||||
<Filter>Translations</Filter>
|
||||
</CustomBuild>
|
||||
|
||||
384
projects/langs_vs140.vcxproj
Normal file
384
projects/langs_vs140.vcxproj
Normal file
@@ -0,0 +1,384 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectName>langs</ProjectName>
|
||||
<ProjectGuid>{0F066B23-18DF-4284-8265-F4A5E7E3B966}</ProjectGuid>
|
||||
<RootNamespace>langs</RootNamespace>
|
||||
<Keyword>MakeFileProj</Keyword>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Utility</ConfigurationType>
|
||||
<UseOfMfc>false</UseOfMfc>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\</OutDir>
|
||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\langs\</IntDir>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<PreBuildEvent>
|
||||
<Message>Generating strings.h</Message>
|
||||
<Command>..\objs\strgen\strgen.exe -s ..\src\lang -d ..\objs\langs\table</Command>
|
||||
</PreBuildEvent>
|
||||
<Midl>
|
||||
<TypeLibraryName>./langs.tlb</TypeLibraryName>
|
||||
<HeaderFileName>
|
||||
</HeaderFileName>
|
||||
</Midl>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="..\src\lang\english.txt">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating english 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\english.lng;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\afrikaans.txt">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating afrikaans 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\afrikaans.lng;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\arabic_egypt.txt">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating arabic_egypt 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\arabic_egypt.lng;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\basque.txt">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating basque 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\basque.lng;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\belarusian.txt">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating belarusian 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\belarusian.lng;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\brazilian_portuguese.txt">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating brazilian_portuguese 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\brazilian_portuguese.lng;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\bulgarian.txt">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating bulgarian 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\bulgarian.lng;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\catalan.txt">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating catalan 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\catalan.lng;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\croatian.txt">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating croatian 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\croatian.lng;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\czech.txt">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating czech 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\czech.lng;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\danish.txt">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating danish 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\danish.lng;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\dutch.txt">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating dutch 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\dutch.lng;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\english_AU.txt">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating english_AU 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\english_AU.lng;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\english_US.txt">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating english_US 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\english_US.lng;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\esperanto.txt">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating esperanto 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\esperanto.lng;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\estonian.txt">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating estonian 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\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>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\finnish.lng;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\french.txt">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating french 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\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>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\galician.lng;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\german.txt">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating german 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\german.lng;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\greek.txt">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating greek 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\greek.lng;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\hebrew.txt">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating hebrew 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\hebrew.lng;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\hungarian.txt">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating hungarian 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\hungarian.lng;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\icelandic.txt">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating icelandic 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\icelandic.lng;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\indonesian.txt">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating indonesian 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\indonesian.lng;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\irish.txt">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating irish 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\irish.lng;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\italian.txt">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating italian 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\italian.lng;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\japanese.txt">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating japanese 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\japanese.lng;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\korean.txt">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating korean 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\korean.lng;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\latin.txt">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating latin 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\latin.lng;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\latvian.txt">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating latvian 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\latvian.lng;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\lithuanian.txt">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating lithuanian 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\lithuanian.lng;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\luxembourgish.txt">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating luxembourgish 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\luxembourgish.lng;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\malay.txt">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating malay 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\malay.lng;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\norwegian_bokmal.txt">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating norwegian_bokmal 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\norwegian_bokmal.lng;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\norwegian_nynorsk.txt">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating norwegian_nynorsk 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\norwegian_nynorsk.lng;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\polish.txt">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating polish 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\polish.lng;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\portuguese.txt">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating portuguese 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\portuguese.lng;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\romanian.txt">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating romanian 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\romanian.lng;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\russian.txt">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating russian 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\russian.lng;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\serbian.txt">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating serbian 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\serbian.lng;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\simplified_chinese.txt">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating simplified_chinese 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\simplified_chinese.lng;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\slovak.txt">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating slovak 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\slovak.lng;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\slovenian.txt">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating slovenian 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\slovenian.lng;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\spanish.txt">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating spanish 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\spanish.lng;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\swedish.txt">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating swedish 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\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>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\traditional_chinese.lng;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\turkish.txt">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating turkish 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\turkish.lng;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\ukrainian.txt">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating ukrainian 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\ukrainian.lng;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\vietnamese.txt">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating vietnamese 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\vietnamese.lng;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\welsh.txt">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating welsh 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\welsh.lng;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="strgen_vs100.vcxproj">
|
||||
<Project>{a133a442-bd0a-4ade-b117-ad7545e4bdd1}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
173
projects/langs_vs140.vcxproj.filters
Normal file
173
projects/langs_vs140.vcxproj.filters
Normal file
@@ -0,0 +1,173 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Translations">
|
||||
<UniqueIdentifier>{2a164580-9033-4a01-974b-b21da507efda}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="..\src\lang\english.txt" />
|
||||
<CustomBuild Include="..\src\lang\afrikaans.txt">
|
||||
<Filter>Translations</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\arabic_egypt.txt">
|
||||
<Filter>Translations</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\basque.txt">
|
||||
<Filter>Translations</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\belarusian.txt">
|
||||
<Filter>Translations</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\brazilian_portuguese.txt">
|
||||
<Filter>Translations</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\bulgarian.txt">
|
||||
<Filter>Translations</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\catalan.txt">
|
||||
<Filter>Translations</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\croatian.txt">
|
||||
<Filter>Translations</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\czech.txt">
|
||||
<Filter>Translations</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\danish.txt">
|
||||
<Filter>Translations</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\dutch.txt">
|
||||
<Filter>Translations</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\english_AU.txt">
|
||||
<Filter>Translations</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\english_US.txt">
|
||||
<Filter>Translations</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\esperanto.txt">
|
||||
<Filter>Translations</Filter>
|
||||
</CustomBuild>
|
||||
<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>
|
||||
<CustomBuild Include="..\src\lang\german.txt">
|
||||
<Filter>Translations</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\greek.txt">
|
||||
<Filter>Translations</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\hebrew.txt">
|
||||
<Filter>Translations</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\hungarian.txt">
|
||||
<Filter>Translations</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\icelandic.txt">
|
||||
<Filter>Translations</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\indonesian.txt">
|
||||
<Filter>Translations</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\irish.txt">
|
||||
<Filter>Translations</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\italian.txt">
|
||||
<Filter>Translations</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\japanese.txt">
|
||||
<Filter>Translations</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\korean.txt">
|
||||
<Filter>Translations</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\latin.txt">
|
||||
<Filter>Translations</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\latvian.txt">
|
||||
<Filter>Translations</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\lithuanian.txt">
|
||||
<Filter>Translations</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\luxembourgish.txt">
|
||||
<Filter>Translations</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\malay.txt">
|
||||
<Filter>Translations</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\norwegian_bokmal.txt">
|
||||
<Filter>Translations</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\norwegian_nynorsk.txt">
|
||||
<Filter>Translations</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\polish.txt">
|
||||
<Filter>Translations</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\portuguese.txt">
|
||||
<Filter>Translations</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\romanian.txt">
|
||||
<Filter>Translations</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\russian.txt">
|
||||
<Filter>Translations</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\serbian.txt">
|
||||
<Filter>Translations</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\simplified_chinese.txt">
|
||||
<Filter>Translations</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\slovak.txt">
|
||||
<Filter>Translations</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\slovenian.txt">
|
||||
<Filter>Translations</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\spanish.txt">
|
||||
<Filter>Translations</Filter>
|
||||
</CustomBuild>
|
||||
<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>
|
||||
<CustomBuild Include="..\src\lang\turkish.txt">
|
||||
<Filter>Translations</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\ukrainian.txt">
|
||||
<Filter>Translations</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\vietnamese.txt">
|
||||
<Filter>Translations</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\src\lang\welsh.txt">
|
||||
<Filter>Translations</Filter>
|
||||
</CustomBuild>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
12
projects/langs_vs140.vcxproj.filters.in
Normal file
12
projects/langs_vs140.vcxproj.filters.in
Normal file
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Translations">
|
||||
<UniqueIdentifier>{2a164580-9033-4a01-974b-b21da507efda}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="..\src\lang\english.txt" />
|
||||
!!FILES!!
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
61
projects/langs_vs140.vcxproj.in
Normal file
61
projects/langs_vs140.vcxproj.in
Normal file
@@ -0,0 +1,61 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectName>langs</ProjectName>
|
||||
<ProjectGuid>{0F066B23-18DF-4284-8265-F4A5E7E3B966}</ProjectGuid>
|
||||
<RootNamespace>langs</RootNamespace>
|
||||
<Keyword>MakeFileProj</Keyword>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Utility</ConfigurationType>
|
||||
<UseOfMfc>false</UseOfMfc>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\</OutDir>
|
||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\langs\</IntDir>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<PreBuildEvent>
|
||||
<Message>Generating strings.h</Message>
|
||||
<Command>..\objs\strgen\strgen.exe -s ..\src\lang -d ..\objs\langs\table</Command>
|
||||
</PreBuildEvent>
|
||||
<Midl>
|
||||
<TypeLibraryName>./langs.tlb</TypeLibraryName>
|
||||
<HeaderFileName>
|
||||
</HeaderFileName>
|
||||
</Midl>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="..\src\lang\english.txt">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating english 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\english.lng;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
!!FILES!!
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="strgen_vs100.vcxproj">
|
||||
<Project>{a133a442-bd0a-4ade-b117-ad7545e4bdd1}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
@@ -513,6 +513,21 @@
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\lang\latin.txt"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating latin 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\latin.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\lang\latvian.txt"
|
||||
>
|
||||
|
||||
@@ -514,6 +514,21 @@
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\lang\latin.txt"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating latin 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\latin.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\lang\latvian.txt"
|
||||
>
|
||||
|
||||
@@ -311,6 +311,7 @@
|
||||
<ClCompile Include="..\src\debug.cpp" />
|
||||
<ClCompile Include="..\src\dedicated.cpp" />
|
||||
<ClCompile Include="..\src\depot.cpp" />
|
||||
<ClCompile Include="..\src\disaster_vehicle.cpp" />
|
||||
<ClCompile Include="..\src\driver.cpp" />
|
||||
<ClCompile Include="..\src\economy.cpp" />
|
||||
<ClCompile Include="..\src\effectvehicle.cpp" />
|
||||
@@ -437,6 +438,7 @@
|
||||
<ClInclude Include="..\src\depot_type.h" />
|
||||
<ClInclude Include="..\src\direction_func.h" />
|
||||
<ClInclude Include="..\src\direction_type.h" />
|
||||
<ClInclude Include="..\src\disaster_vehicle.h" />
|
||||
<ClInclude Include="..\src\music\dmusic.h" />
|
||||
<ClInclude Include="..\src\driver.h" />
|
||||
<ClInclude Include="..\src\economy_base.h" />
|
||||
@@ -568,6 +570,7 @@
|
||||
<ClInclude Include="..\src\road_type.h" />
|
||||
<ClInclude Include="..\src\roadstop_base.h" />
|
||||
<ClInclude Include="..\src\roadveh.h" />
|
||||
<ClInclude Include="..\src\safeguards.h" />
|
||||
<ClInclude Include="..\src\screenshot.h" />
|
||||
<ClInclude Include="..\src\sdl.h" />
|
||||
<ClInclude Include="..\src\sound\sdl_s.h" />
|
||||
@@ -805,7 +808,6 @@
|
||||
<ClCompile Include="..\src\clear_cmd.cpp" />
|
||||
<ClCompile Include="..\src\company_cmd.cpp" />
|
||||
<ClCompile Include="..\src\depot_cmd.cpp" />
|
||||
<ClCompile Include="..\src\disaster_cmd.cpp" />
|
||||
<ClCompile Include="..\src\group_cmd.cpp" />
|
||||
<ClCompile Include="..\src\industry_cmd.cpp" />
|
||||
<ClCompile Include="..\src\misc_cmd.cpp" />
|
||||
@@ -882,6 +884,7 @@
|
||||
<ClInclude Include="..\src\table\elrail_data.h" />
|
||||
<ClInclude Include="..\src\table\engines.h" />
|
||||
<ClInclude Include="..\src\table\genland.h" />
|
||||
<ClInclude Include="..\src\table\heightmap_colours.h" />
|
||||
<ClInclude Include="..\src\table\industry_land.h" />
|
||||
<ClInclude Include="..\src\table\landscape_sprite.h" />
|
||||
<ClInclude Include="..\src\table\newgrf_debug_data.h" />
|
||||
@@ -896,6 +899,7 @@
|
||||
<ClInclude Include="..\src\table\sprites.h" />
|
||||
<ClInclude Include="..\src\table\station_land.h" />
|
||||
<ClInclude Include="..\src\table\strgen_tables.h" />
|
||||
<ClInclude Include="..\src\table\string_colours.h" />
|
||||
<ClInclude Include="..\src\..\objs\langs\table\strings.h" />
|
||||
<ClInclude Include="..\src\table\town_land.h" />
|
||||
<ClInclude Include="..\src\table\townname.h" />
|
||||
@@ -952,6 +956,7 @@
|
||||
<ClInclude Include="..\src\3rdparty\squirrel\squirrel\sqstate.h" />
|
||||
<ClInclude Include="..\src\3rdparty\squirrel\include\sqstdaux.h" />
|
||||
<ClInclude Include="..\src\3rdparty\squirrel\include\sqstdmath.h" />
|
||||
<ClInclude Include="..\src\3rdparty\squirrel\include\sqstdstring.h" />
|
||||
<ClInclude Include="..\src\3rdparty\squirrel\squirrel\sqstring.h" />
|
||||
<ClInclude Include="..\src\3rdparty\squirrel\squirrel\sqtable.h" />
|
||||
<ClInclude Include="..\src\3rdparty\squirrel\include\squirrel.h" />
|
||||
|
||||
@@ -162,6 +162,9 @@
|
||||
<ClCompile Include="..\src\depot.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\disaster_vehicle.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\driver.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
@@ -540,6 +543,9 @@
|
||||
<ClInclude Include="..\src\direction_type.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\disaster_vehicle.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\music\dmusic.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
@@ -933,6 +939,9 @@
|
||||
<ClInclude Include="..\src\roadveh.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\safeguards.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\screenshot.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
@@ -1644,9 +1653,6 @@
|
||||
<ClCompile Include="..\src\depot_cmd.cpp">
|
||||
<Filter>Command handlers</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\disaster_cmd.cpp">
|
||||
<Filter>Command handlers</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\group_cmd.cpp">
|
||||
<Filter>Command handlers</Filter>
|
||||
</ClCompile>
|
||||
@@ -1875,6 +1881,9 @@
|
||||
<ClInclude Include="..\src\table\genland.h">
|
||||
<Filter>Tables</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\table\heightmap_colours.h">
|
||||
<Filter>Tables</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\table\industry_land.h">
|
||||
<Filter>Tables</Filter>
|
||||
</ClInclude>
|
||||
@@ -1917,6 +1926,9 @@
|
||||
<ClInclude Include="..\src\table\strgen_tables.h">
|
||||
<Filter>Tables</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\table\string_colours.h">
|
||||
<Filter>Tables</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\..\objs\langs\table\strings.h">
|
||||
<Filter>Tables</Filter>
|
||||
</ClInclude>
|
||||
@@ -2085,6 +2097,9 @@
|
||||
<ClInclude Include="..\src\3rdparty\squirrel\include\sqstdmath.h">
|
||||
<Filter>Squirrel headers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\3rdparty\squirrel\include\sqstdstring.h">
|
||||
<Filter>Squirrel headers</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\3rdparty\squirrel\squirrel\sqstring.h">
|
||||
<Filter>Squirrel headers</Filter>
|
||||
</ClInclude>
|
||||
|
||||
94
projects/openttd_vs140.sln
Normal file
94
projects/openttd_vs140.sln
Normal file
@@ -0,0 +1,94 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 14
|
||||
VisualStudioVersion = 14.0.23107.0
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "openttd", "openttd_vs140.vcxproj", "{668328A0-B40E-4CDB-BD72-D0064424414A}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{0817F629-589E-4A3B-B81A-8647BC571E35} = {0817F629-589E-4A3B-B81A-8647BC571E35}
|
||||
{E9548DE9-F089-49B7-93A6-30BE2CC311C7} = {E9548DE9-F089-49B7-93A6-30BE2CC311C7}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "strgen", "strgen_vs140.vcxproj", "{A133A442-BD0A-4ADE-B117-AD7545E4BDD1}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "langs", "langs_vs140.vcxproj", "{0F066B23-18DF-4284-8265-F4A5E7E3B966}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "version", "version_vs140.vcxproj", "{1A2B3C5E-1C23-41A5-9C9B-ACBA2AA75FEC}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "generate", "generate_vs140.vcxproj", "{2F31FD79-D1AC-43C4-89F3-B0D5E4E53E34}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "settings", "settings_vs140.vcxproj", "{0817F629-589E-4A3B-B81A-8647BC571E35}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{E9548DE9-F089-49B7-93A6-30BE2CC311C7} = {E9548DE9-F089-49B7-93A6-30BE2CC311C7}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "settingsgen", "settingsgen_vs140.vcxproj", "{E9548DE9-F089-49B7-93A6-30BE2CC311C7}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Win32 = Debug|Win32
|
||||
Debug|x64 = Debug|x64
|
||||
Release|Win32 = Release|Win32
|
||||
Release|x64 = Release|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{668328A0-B40E-4CDB-BD72-D0064424414A}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{668328A0-B40E-4CDB-BD72-D0064424414A}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{668328A0-B40E-4CDB-BD72-D0064424414A}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{668328A0-B40E-4CDB-BD72-D0064424414A}.Debug|x64.Build.0 = Debug|x64
|
||||
{668328A0-B40E-4CDB-BD72-D0064424414A}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{668328A0-B40E-4CDB-BD72-D0064424414A}.Release|Win32.Build.0 = Release|Win32
|
||||
{668328A0-B40E-4CDB-BD72-D0064424414A}.Release|x64.ActiveCfg = Release|x64
|
||||
{668328A0-B40E-4CDB-BD72-D0064424414A}.Release|x64.Build.0 = Release|x64
|
||||
{A133A442-BD0A-4ADE-B117-AD7545E4BDD1}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{A133A442-BD0A-4ADE-B117-AD7545E4BDD1}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{A133A442-BD0A-4ADE-B117-AD7545E4BDD1}.Debug|x64.ActiveCfg = Debug|Win32
|
||||
{A133A442-BD0A-4ADE-B117-AD7545E4BDD1}.Debug|x64.Build.0 = Debug|Win32
|
||||
{A133A442-BD0A-4ADE-B117-AD7545E4BDD1}.Release|Win32.ActiveCfg = Debug|Win32
|
||||
{A133A442-BD0A-4ADE-B117-AD7545E4BDD1}.Release|Win32.Build.0 = Debug|Win32
|
||||
{A133A442-BD0A-4ADE-B117-AD7545E4BDD1}.Release|x64.ActiveCfg = Debug|Win32
|
||||
{A133A442-BD0A-4ADE-B117-AD7545E4BDD1}.Release|x64.Build.0 = Debug|Win32
|
||||
{0F066B23-18DF-4284-8265-F4A5E7E3B966}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{0F066B23-18DF-4284-8265-F4A5E7E3B966}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{0F066B23-18DF-4284-8265-F4A5E7E3B966}.Debug|x64.ActiveCfg = Debug|Win32
|
||||
{0F066B23-18DF-4284-8265-F4A5E7E3B966}.Debug|x64.Build.0 = Debug|Win32
|
||||
{0F066B23-18DF-4284-8265-F4A5E7E3B966}.Release|Win32.ActiveCfg = Debug|Win32
|
||||
{0F066B23-18DF-4284-8265-F4A5E7E3B966}.Release|Win32.Build.0 = Debug|Win32
|
||||
{0F066B23-18DF-4284-8265-F4A5E7E3B966}.Release|x64.ActiveCfg = Debug|Win32
|
||||
{0F066B23-18DF-4284-8265-F4A5E7E3B966}.Release|x64.Build.0 = Debug|Win32
|
||||
{1A2B3C5E-1C23-41A5-9C9B-ACBA2AA75FEC}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{1A2B3C5E-1C23-41A5-9C9B-ACBA2AA75FEC}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{1A2B3C5E-1C23-41A5-9C9B-ACBA2AA75FEC}.Debug|x64.ActiveCfg = Debug|Win32
|
||||
{1A2B3C5E-1C23-41A5-9C9B-ACBA2AA75FEC}.Debug|x64.Build.0 = Debug|Win32
|
||||
{1A2B3C5E-1C23-41A5-9C9B-ACBA2AA75FEC}.Release|Win32.ActiveCfg = Debug|Win32
|
||||
{1A2B3C5E-1C23-41A5-9C9B-ACBA2AA75FEC}.Release|Win32.Build.0 = Debug|Win32
|
||||
{1A2B3C5E-1C23-41A5-9C9B-ACBA2AA75FEC}.Release|x64.ActiveCfg = Debug|Win32
|
||||
{1A2B3C5E-1C23-41A5-9C9B-ACBA2AA75FEC}.Release|x64.Build.0 = Debug|Win32
|
||||
{2F31FD79-D1AC-43C4-89F3-B0D5E4E53E34}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{2F31FD79-D1AC-43C4-89F3-B0D5E4E53E34}.Debug|x64.ActiveCfg = Debug|Win32
|
||||
{2F31FD79-D1AC-43C4-89F3-B0D5E4E53E34}.Release|Win32.ActiveCfg = Debug|Win32
|
||||
{2F31FD79-D1AC-43C4-89F3-B0D5E4E53E34}.Release|x64.ActiveCfg = Debug|Win32
|
||||
{0817F629-589E-4A3B-B81A-8647BC571E35}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{0817F629-589E-4A3B-B81A-8647BC571E35}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{0817F629-589E-4A3B-B81A-8647BC571E35}.Debug|x64.ActiveCfg = Debug|Win32
|
||||
{0817F629-589E-4A3B-B81A-8647BC571E35}.Debug|x64.Build.0 = Debug|Win32
|
||||
{0817F629-589E-4A3B-B81A-8647BC571E35}.Release|Win32.ActiveCfg = Debug|Win32
|
||||
{0817F629-589E-4A3B-B81A-8647BC571E35}.Release|Win32.Build.0 = Debug|Win32
|
||||
{0817F629-589E-4A3B-B81A-8647BC571E35}.Release|x64.ActiveCfg = Debug|Win32
|
||||
{0817F629-589E-4A3B-B81A-8647BC571E35}.Release|x64.Build.0 = Debug|Win32
|
||||
{E9548DE9-F089-49B7-93A6-30BE2CC311C7}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{E9548DE9-F089-49B7-93A6-30BE2CC311C7}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{E9548DE9-F089-49B7-93A6-30BE2CC311C7}.Debug|x64.ActiveCfg = Debug|Win32
|
||||
{E9548DE9-F089-49B7-93A6-30BE2CC311C7}.Debug|x64.Build.0 = Debug|Win32
|
||||
{E9548DE9-F089-49B7-93A6-30BE2CC311C7}.Release|Win32.ActiveCfg = Debug|Win32
|
||||
{E9548DE9-F089-49B7-93A6-30BE2CC311C7}.Release|Win32.Build.0 = Debug|Win32
|
||||
{E9548DE9-F089-49B7-93A6-30BE2CC311C7}.Release|x64.ActiveCfg = Debug|Win32
|
||||
{E9548DE9-F089-49B7-93A6-30BE2CC311C7}.Release|x64.Build.0 = Debug|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(DPCodeReviewSolutionGUID) = preSolution
|
||||
DPCodeReviewSolutionGUID = {00000000-0000-0000-0000-000000000000}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
1311
projects/openttd_vs140.vcxproj
Normal file
1311
projects/openttd_vs140.vcxproj
Normal file
File diff suppressed because it is too large
Load Diff
3050
projects/openttd_vs140.vcxproj.filters
Normal file
3050
projects/openttd_vs140.vcxproj.filters
Normal file
File diff suppressed because it is too large
Load Diff
13
projects/openttd_vs140.vcxproj.filters.in
Normal file
13
projects/openttd_vs140.vcxproj.filters.in
Normal file
@@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
!!FILTERS!!
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
!!FILES!!
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="..\media\openttd.ico" />
|
||||
<None Include="..\readme.txt" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
332
projects/openttd_vs140.vcxproj.in
Normal file
332
projects/openttd_vs140.vcxproj.in
Normal file
@@ -0,0 +1,332 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectName>openttd</ProjectName>
|
||||
<ProjectGuid>{668328A0-B40E-4CDB-BD72-D0064424414A}</ProjectGuid>
|
||||
<RootNamespace>openttd</RootNamespace>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseOfMfc>false</UseOfMfc>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseOfMfc>false</UseOfMfc>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseOfMfc>false</UseOfMfc>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseOfMfc>false</UseOfMfc>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)..\objs\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)..\objs\$(Platform)\$(Configuration)\</IntDir>
|
||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)..\objs\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)..\objs\$(Platform)\$(Configuration)\</IntDir>
|
||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
|
||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)..\objs\$(Platform)\$(Configuration)\</IntDir>
|
||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)..\objs\$(Platform)\$(Configuration)\</OutDir>
|
||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)..\objs\$(Platform)\$(Configuration)\</IntDir>
|
||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
|
||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
|
||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
|
||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
|
||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
|
||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
|
||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)..\objs\$(Platform)\$(Configuration)\</OutDir>
|
||||
<LocalDebuggerWorkingDirectory>$(ProjectDir)..\bin</LocalDebuggerWorkingDirectory>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<Midl>
|
||||
<TypeLibraryName>.\Release/openttd.tlb</TypeLibraryName>
|
||||
<HeaderFileName>
|
||||
</HeaderFileName>
|
||||
</Midl>
|
||||
<ClCompile>
|
||||
<AdditionalOptions>/J /Zc:throwingNew %(AdditionalOptions)</AdditionalOptions>
|
||||
<Optimization>Full</Optimization>
|
||||
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<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_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>
|
||||
<StructMemberAlignment>4Bytes</StructMemberAlignment>
|
||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>
|
||||
</PrecompiledHeaderFile>
|
||||
<PrecompiledHeaderOutputFile>
|
||||
</PrecompiledHeaderOutputFile>
|
||||
<AssemblerOutput>All</AssemblerOutput>
|
||||
<AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
|
||||
<ObjectFileName>$(IntDir)</ObjectFileName>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<TreatWarningAsError>false</TreatWarningAsError>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<CallingConvention>FastCall</CallingConvention>
|
||||
<CompileAs>Default</CompileAs>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<EnforceTypeConversionRules>true</EnforceTypeConversionRules>
|
||||
</ClCompile>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<Culture>0x0809</Culture>
|
||||
</ResourceCompile>
|
||||
<Link>
|
||||
<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>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<StackReserveSize>1048576</StackReserveSize>
|
||||
<StackCommitSize>1048576</StackCommitSize>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<RandomizedBaseAddress>false</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>
|
||||
</DataExecutionPrevention>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<MinimumRequiredVersion>5.01</MinimumRequiredVersion>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<Midl>
|
||||
<TypeLibraryName>.\Debug/openttd.tlb</TypeLibraryName>
|
||||
<HeaderFileName>
|
||||
</HeaderFileName>
|
||||
</Midl>
|
||||
<ClCompile>
|
||||
<AdditionalOptions>/J /Zc:throwingNew %(AdditionalOptions)</AdditionalOptions>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<AdditionalIncludeDirectories>..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<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>
|
||||
</PrecompiledHeader>
|
||||
<AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
|
||||
<ObjectFileName>$(IntDir)</ObjectFileName>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<TreatWarningAsError>false</TreatWarningAsError>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<CallingConvention>FastCall</CallingConvention>
|
||||
<CompileAs>Default</CompileAs>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<EnforceTypeConversionRules>true</EnforceTypeConversionRules>
|
||||
</ClCompile>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<Culture>0x0809</Culture>
|
||||
</ResourceCompile>
|
||||
<Link>
|
||||
<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>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<StackReserveSize>1048576</StackReserveSize>
|
||||
<StackCommitSize>1048576</StackCommitSize>
|
||||
<RandomizedBaseAddress>false</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>
|
||||
</DataExecutionPrevention>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
<MinimumRequiredVersion>5.01</MinimumRequiredVersion>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<Midl>
|
||||
<TargetEnvironment>X64</TargetEnvironment>
|
||||
<TypeLibraryName>.\Release/openttd.tlb</TypeLibraryName>
|
||||
<HeaderFileName>
|
||||
</HeaderFileName>
|
||||
</Midl>
|
||||
<ClCompile>
|
||||
<AdditionalOptions>/J /Zc:throwingNew %(AdditionalOptions)</AdditionalOptions>
|
||||
<Optimization>Full</Optimization>
|
||||
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
|
||||
<OmitFramePointers>true</OmitFramePointers>
|
||||
<AdditionalIncludeDirectories>..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<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>
|
||||
<StructMemberAlignment>Default</StructMemberAlignment>
|
||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>
|
||||
</PrecompiledHeaderFile>
|
||||
<PrecompiledHeaderOutputFile>
|
||||
</PrecompiledHeaderOutputFile>
|
||||
<AssemblerOutput>All</AssemblerOutput>
|
||||
<AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
|
||||
<ObjectFileName>$(IntDir)</ObjectFileName>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<TreatWarningAsError>false</TreatWarningAsError>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<CallingConvention>FastCall</CallingConvention>
|
||||
<CompileAs>Default</CompileAs>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<EnforceTypeConversionRules>true</EnforceTypeConversionRules>
|
||||
</ClCompile>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<Culture>0x0809</Culture>
|
||||
</ResourceCompile>
|
||||
<Link>
|
||||
<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>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<StackReserveSize>1048576</StackReserveSize>
|
||||
<StackCommitSize>1048576</StackCommitSize>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<MinimumRequiredVersion>5.02</MinimumRequiredVersion>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<Midl>
|
||||
<TargetEnvironment>X64</TargetEnvironment>
|
||||
<TypeLibraryName>.\Debug/openttd.tlb</TypeLibraryName>
|
||||
<HeaderFileName>
|
||||
</HeaderFileName>
|
||||
</Midl>
|
||||
<ClCompile>
|
||||
<AdditionalOptions>/J /Zc:throwingNew %(AdditionalOptions)</AdditionalOptions>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<AdditionalIncludeDirectories>..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<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>
|
||||
</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>
|
||||
</PrecompiledHeaderFile>
|
||||
<PrecompiledHeaderOutputFile>
|
||||
</PrecompiledHeaderOutputFile>
|
||||
<AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
|
||||
<ObjectFileName>$(IntDir)</ObjectFileName>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<TreatWarningAsError>false</TreatWarningAsError>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<CallingConvention>Cdecl</CallingConvention>
|
||||
<CompileAs>Default</CompileAs>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<EnforceTypeConversionRules>true</EnforceTypeConversionRules>
|
||||
</ClCompile>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<Culture>0x0809</Culture>
|
||||
</ResourceCompile>
|
||||
<Link>
|
||||
<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>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<StackReserveSize>1048576</StackReserveSize>
|
||||
<StackCommitSize>1048576</StackCommitSize>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
<MinimumRequiredVersion>5.02</MinimumRequiredVersion>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
!!FILES!!
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="..\media\openttd.ico" />
|
||||
<None Include="..\readme.txt" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="langs_vs100.vcxproj">
|
||||
<Project>{0f066b23-18df-4284-8265-f4a5e7e3b966}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="strgen_vs100.vcxproj">
|
||||
<Project>{a133a442-bd0a-4ade-b117-ad7545e4bdd1}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="version_vs100.vcxproj">
|
||||
<Project>{1a2b3c5e-1c23-41a5-9c9b-acba2aa75fec}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
</Project>
|
||||
@@ -514,6 +514,10 @@
|
||||
RelativePath=".\..\src\depot.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\disaster_vehicle.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\driver.cpp"
|
||||
>
|
||||
@@ -1022,6 +1026,10 @@
|
||||
RelativePath=".\..\src\direction_type.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\disaster_vehicle.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\music\dmusic.h"
|
||||
>
|
||||
@@ -1546,6 +1554,10 @@
|
||||
RelativePath=".\..\src\roadveh.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\safeguards.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\screenshot.h"
|
||||
>
|
||||
@@ -2510,10 +2522,6 @@
|
||||
RelativePath=".\..\src\depot_cmd.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\disaster_cmd.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\group_cmd.cpp"
|
||||
>
|
||||
@@ -2826,6 +2834,10 @@
|
||||
RelativePath=".\..\src\table\genland.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\table\heightmap_colours.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\table\industry_land.h"
|
||||
>
|
||||
@@ -2882,6 +2894,10 @@
|
||||
RelativePath=".\..\src\table\strgen_tables.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\table\string_colours.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\..\objs\langs\table\strings.h"
|
||||
>
|
||||
@@ -3122,6 +3138,10 @@
|
||||
RelativePath=".\..\src\3rdparty\squirrel\include\sqstdmath.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\3rdparty\squirrel\include\sqstdstring.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\3rdparty\squirrel\squirrel\sqstring.h"
|
||||
>
|
||||
|
||||
@@ -511,6 +511,10 @@
|
||||
RelativePath=".\..\src\depot.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\disaster_vehicle.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\driver.cpp"
|
||||
>
|
||||
@@ -1019,6 +1023,10 @@
|
||||
RelativePath=".\..\src\direction_type.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\disaster_vehicle.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\music\dmusic.h"
|
||||
>
|
||||
@@ -1543,6 +1551,10 @@
|
||||
RelativePath=".\..\src\roadveh.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\safeguards.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\screenshot.h"
|
||||
>
|
||||
@@ -2507,10 +2519,6 @@
|
||||
RelativePath=".\..\src\depot_cmd.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\disaster_cmd.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\group_cmd.cpp"
|
||||
>
|
||||
@@ -2823,6 +2831,10 @@
|
||||
RelativePath=".\..\src\table\genland.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\table\heightmap_colours.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\table\industry_land.h"
|
||||
>
|
||||
@@ -2879,6 +2891,10 @@
|
||||
RelativePath=".\..\src\table\strgen_tables.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\table\string_colours.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\..\objs\langs\table\strings.h"
|
||||
>
|
||||
@@ -3119,6 +3135,10 @@
|
||||
RelativePath=".\..\src\3rdparty\squirrel\include\sqstdmath.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\3rdparty\squirrel\include\sqstdstring.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\src\3rdparty\squirrel\squirrel\sqstring.h"
|
||||
>
|
||||
|
||||
54
projects/settings_vs140.vcxproj
Normal file
54
projects/settings_vs140.vcxproj
Normal file
@@ -0,0 +1,54 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectName>settings</ProjectName>
|
||||
<ProjectGuid>{0817F629-589E-4A3B-B81A-8647BC571E35}</ProjectGuid>
|
||||
<RootNamespace>settings</RootNamespace>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Makefile</ConfigurationType>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</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 ..\src\table\window_settings.ini
|
||||
</SettingsCommandLine>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\settings\table\</OutDir>
|
||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\settings\table\</IntDir>
|
||||
<NMakeBuildCommandLine Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SettingsCommandLine)</NMakeBuildCommandLine>
|
||||
<NMakeReBuildCommandLine Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SettingsCommandLine)</NMakeReBuildCommandLine>
|
||||
<NMakeCleanCommandLine Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">del ..\objs\settings\table\settings.h</NMakeCleanCommandLine>
|
||||
<NMakeOutput Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\settings\table\settings.h</NMakeOutput>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<None Include="..\src\table\company_settings.ini" />
|
||||
<None Include="..\src\table\currency_settings.ini" />
|
||||
<None Include="..\src\table\gameopt_settings.ini" />
|
||||
<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" />
|
||||
<None Include="..\src\table\settings.h.preamble" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
35
projects/settings_vs140.vcxproj.filters
Normal file
35
projects/settings_vs140.vcxproj.filters
Normal file
@@ -0,0 +1,35 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="INI">
|
||||
<UniqueIdentifier>{21deca6c-8df4-4f34-9dad-17d7781cd5a0}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="..\src\table\company_settings.ini">
|
||||
<Filter>INI</Filter>
|
||||
</None>
|
||||
<None Include="..\src\table\currency_settings.ini">
|
||||
<Filter>INI</Filter>
|
||||
</None>
|
||||
<None Include="..\src\table\gameopt_settings.ini">
|
||||
<Filter>INI</Filter>
|
||||
</None>
|
||||
<None Include="..\src\table\misc_settings.ini">
|
||||
<Filter>INI</Filter>
|
||||
</None>
|
||||
<None Include="..\src\table\settings.ini">
|
||||
<Filter>INI</Filter>
|
||||
</None>
|
||||
<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" />
|
||||
<None Include="..\src\table\settings.h.preamble" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
15
projects/settings_vs140.vcxproj.filters.in
Normal file
15
projects/settings_vs140.vcxproj.filters.in
Normal file
@@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="INI">
|
||||
<UniqueIdentifier>{21deca6c-8df4-4f34-9dad-17d7781cd5a0}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
!!FILES!!
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="..\src\table\settings.h.postamble" />
|
||||
<None Include="..\src\table\settings.h.preamble" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
48
projects/settings_vs140.vcxproj.in
Normal file
48
projects/settings_vs140.vcxproj.in
Normal file
@@ -0,0 +1,48 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectName>settings</ProjectName>
|
||||
<ProjectGuid>{0817F629-589E-4A3B-B81A-8647BC571E35}</ProjectGuid>
|
||||
<RootNamespace>settings</RootNamespace>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Makefile</ConfigurationType>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros">
|
||||
<SettingsCommandLine>
|
||||
!!FILTERS!!
|
||||
</SettingsCommandLine>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\settings\table\</OutDir>
|
||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\settings\table\</IntDir>
|
||||
<NMakeBuildCommandLine Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SettingsCommandLine)</NMakeBuildCommandLine>
|
||||
<NMakeReBuildCommandLine Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SettingsCommandLine)</NMakeReBuildCommandLine>
|
||||
<NMakeCleanCommandLine Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">del ..\objs\settings\table\settings.h</NMakeCleanCommandLine>
|
||||
<NMakeOutput Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\settings\table\settings.h</NMakeOutput>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
!!FILES!!
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="..\src\table\settings.h.postamble" />
|
||||
<None Include="..\src\table\settings.h.preamble" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
83
projects/settingsgen_vs140.vcxproj
Normal file
83
projects/settingsgen_vs140.vcxproj
Normal file
@@ -0,0 +1,83 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectName>settingsgen</ProjectName>
|
||||
<ProjectGuid>{E9548DE9-F089-49B7-93A6-30BE2CC311C7}</ProjectGuid>
|
||||
<RootNamespace>settings</RootNamespace>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup>
|
||||
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\settings\</OutDir>
|
||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\settings\</IntDir>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">settings_gen</TargetName>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<PreBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PreBuildEvent>
|
||||
<CustomBuildStep>
|
||||
<Inputs>%(Inputs)</Inputs>
|
||||
</CustomBuildStep>
|
||||
<ClCompile>
|
||||
<Optimization>MinSpace</Optimization>
|
||||
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
|
||||
<PreprocessorDefinitions>SETTINGSGEN;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AssemblerOutput>All</AssemblerOutput>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<TreatWarningAsError>true</TreatWarningAsError>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<OutputFile>$(OutDir)settings_gen.exe</OutputFile>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<RandomizedBaseAddress>false</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>
|
||||
</DataExecutionPrevention>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<MinimumRequiredVersion>5.01</MinimumRequiredVersion>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\src\core\alloc_func.cpp" />
|
||||
<ClCompile Include="..\src\misc\getoptdata.cpp" />
|
||||
<ClCompile Include="..\src\ini_load.cpp" />
|
||||
<ClCompile Include="..\src\settingsgen\settingsgen.cpp" />
|
||||
<ClCompile Include="..\src\string.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\src\misc\getoptdata.h" />
|
||||
<ClInclude Include="..\src\ini_type.h" />
|
||||
<ClInclude Include="..\src\core\smallvec_type.hpp" />
|
||||
<ClInclude Include="..\src\string_func.h" />
|
||||
<ClInclude Include="..\src\strings_type.h" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
32
projects/settingsgen_vs140.vcxproj.filters
Normal file
32
projects/settingsgen_vs140.vcxproj.filters
Normal file
@@ -0,0 +1,32 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{a4678737-b3b3-4be5-9db1-fa6ccd164c59}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\src\core\alloc_func.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\misc\getoptdata.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\ini_load.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\settingsgen\settingsgen.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\string.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\src\misc\getoptdata.h" />
|
||||
<ClInclude Include="..\src\ini_type.h" />
|
||||
<ClInclude Include="..\src\core\smallvec_type.hpp" />
|
||||
<ClInclude Include="..\src\string_func.h" />
|
||||
<ClInclude Include="..\src\strings_type.h" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
95
projects/strgen_vs140.vcxproj
Normal file
95
projects/strgen_vs140.vcxproj
Normal file
@@ -0,0 +1,95 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectName>strgen</ProjectName>
|
||||
<ProjectGuid>{A133A442-BD0A-4ADE-B117-AD7545E4BDD1}</ProjectGuid>
|
||||
<RootNamespace>strgen</RootNamespace>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseOfMfc>false</UseOfMfc>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)..\objs\strgen\</OutDir>
|
||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)..\objs\strgen\</IntDir>
|
||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>
|
||||
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
|
||||
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
|
||||
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<Midl>
|
||||
<TypeLibraryName>.\Debug/strgen.tlb</TypeLibraryName>
|
||||
<HeaderFileName>
|
||||
</HeaderFileName>
|
||||
</Midl>
|
||||
<ClCompile>
|
||||
<AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
|
||||
<Optimization>MinSpace</Optimization>
|
||||
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
|
||||
<PreprocessorDefinitions>STRGEN;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<PrecompiledHeaderOutputFile>
|
||||
</PrecompiledHeaderOutputFile>
|
||||
<AssemblerOutput>All</AssemblerOutput>
|
||||
<AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
|
||||
<ObjectFileName>$(IntDir)</ObjectFileName>
|
||||
<ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<TreatWarningAsError>true</TreatWarningAsError>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<Culture>0x041d</Culture>
|
||||
</ResourceCompile>
|
||||
<Link>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<ProgramDatabaseFile>$(IntDir)strgen.pdb</ProgramDatabaseFile>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<RandomizedBaseAddress>false</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>
|
||||
</DataExecutionPrevention>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
<MinimumRequiredVersion>5.01</MinimumRequiredVersion>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\src\core\alloc_func.cpp" />
|
||||
<ClCompile Include="..\src\strgen\strgen_base.cpp" />
|
||||
<ClCompile Include="..\src\strgen\strgen.cpp" />
|
||||
<ClCompile Include="..\src\string.cpp" />
|
||||
<ClCompile Include="..\src\misc\getoptdata.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\src\core\alloc_func.hpp" />
|
||||
<ClInclude Include="..\src\table\control_codes.h" />
|
||||
<ClInclude Include="..\src\debug.h" />
|
||||
<ClInclude Include="..\src\core\endian_func.hpp" />
|
||||
<ClInclude Include="..\src\stdafx.h" />
|
||||
<ClInclude Include="..\src\string_func.h" />
|
||||
<ClInclude Include="..\src\misc\getoptdata.h" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
35
projects/strgen_vs140.vcxproj.filters
Normal file
35
projects/strgen_vs140.vcxproj.filters
Normal file
@@ -0,0 +1,35 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{5894294c-d4dc-41f0-be31-e56cff4e0405}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\src\core\alloc_func.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\strgen\strgen_base.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\strgen\strgen.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\string.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\misc\getoptdata.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\src\core\alloc_func.hpp" />
|
||||
<ClInclude Include="..\src\table\control_codes.h" />
|
||||
<ClInclude Include="..\src\debug.h" />
|
||||
<ClInclude Include="..\src\core\endian_func.hpp" />
|
||||
<ClInclude Include="..\src\stdafx.h" />
|
||||
<ClInclude Include="..\src\string_func.h" />
|
||||
<ClInclude Include="..\src\misc\getoptdata.h" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
42
projects/version_vs140.vcxproj
Normal file
42
projects/version_vs140.vcxproj
Normal file
@@ -0,0 +1,42 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectName>version</ProjectName>
|
||||
<ProjectGuid>{1A2B3C5E-1C23-41A5-9C9B-ACBA2AA75FEC}</ProjectGuid>
|
||||
<RootNamespace>version</RootNamespace>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Makefile</ConfigurationType>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<PlatformToolset>v140</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)..\objs\version\</OutDir>
|
||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)..\objs\version\</IntDir>
|
||||
<NMakeBuildCommandLine Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">cscript "$(ProjectDir)/determineversion.vbs"</NMakeBuildCommandLine>
|
||||
<NMakeReBuildCommandLine Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">cscript "$(ProjectDir)/determineversion.vbs"</NMakeReBuildCommandLine>
|
||||
<NMakeOutput Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\rev.cpp</NMakeOutput>
|
||||
<NMakeCleanCommandLine Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">del ..\src\rev.cpp</NMakeCleanCommandLine>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<None Include="..\src\os\windows\ottdres.rc.in" />
|
||||
<None Include="..\src\rev.cpp.in" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
15
readme.txt
15
readme.txt
@@ -1,5 +1,5 @@
|
||||
Last updated: 2014-10-21
|
||||
Release version: 1.4.4
|
||||
Last updated: 2016-04-01
|
||||
Release version: 1.6.0
|
||||
------------------------------------------------------------------------
|
||||
|
||||
|
||||
@@ -308,9 +308,9 @@ chosen main OpenTTD directory:
|
||||
32bpp Sets: newgrf (or a subdirectory thereof)
|
||||
Music Sets: baseset (or a subdirectory thereof)
|
||||
AIs: ai (or a subdirectory thereof)
|
||||
AI Libraries: ai/libraries (or a subdirectory thereof)
|
||||
AI Libraries: ai/library (or a subdirectory thereof)
|
||||
Game Scripts (GS): game (or a subdirectory thereof)
|
||||
GS Libraries: game/libraries (or a subdirectory thereof)
|
||||
GS Libraries: game/library (or a subdirectory thereof)
|
||||
Savegames: save
|
||||
Automatic Savegames: save/autosave
|
||||
Scenarios: scenario
|
||||
@@ -661,6 +661,12 @@ 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 implementations of Posix getaddrinfo and getnameinfo for OS/2 in
|
||||
src/3rdparty/os2 are distributed partly under the GNU Lesser General Public
|
||||
License 2.1, and partly under the (3-clause) BSD license. The exact licensing
|
||||
terms can be found in src/3rdparty/os2/getaddrinfo.c resp.
|
||||
src/3rdparty/os2/getnameinfo.c.
|
||||
|
||||
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.
|
||||
@@ -723,7 +729,6 @@ 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!
|
||||
|
||||
18
source.list
18
source.list
@@ -19,6 +19,7 @@ date.cpp
|
||||
debug.cpp
|
||||
dedicated.cpp
|
||||
depot.cpp
|
||||
disaster_vehicle.cpp
|
||||
driver.cpp
|
||||
economy.cpp
|
||||
effectvehicle.cpp
|
||||
@@ -99,6 +100,10 @@ tutorial_gui.cpp
|
||||
#else
|
||||
#if OS2
|
||||
os/os2/os2.cpp
|
||||
3rdparty/os2/getaddrinfo.c
|
||||
3rdparty/os2/getaddrinfo.h
|
||||
3rdparty/os2/getnameinfo.c
|
||||
3rdparty/os2/getnameinfo.h
|
||||
#else
|
||||
#if OSX
|
||||
os/macosx/crashlog_osx.cpp
|
||||
@@ -139,6 +144,7 @@ base_media_func.h
|
||||
base_station_base.h
|
||||
bmp.h
|
||||
bridge.h
|
||||
build_confirmation_func.h
|
||||
cargo_type.h
|
||||
cargoaction.h
|
||||
cargomonitor.h
|
||||
@@ -173,6 +179,7 @@ depot_map.h
|
||||
depot_type.h
|
||||
direction_func.h
|
||||
direction_type.h
|
||||
disaster_vehicle.h
|
||||
music/dmusic.h
|
||||
driver.h
|
||||
economy_base.h
|
||||
@@ -304,6 +311,7 @@ road_internal.h
|
||||
road_type.h
|
||||
roadstop_base.h
|
||||
roadveh.h
|
||||
safeguards.h
|
||||
screenshot.h
|
||||
sdl.h
|
||||
sound/sdl_s.h
|
||||
@@ -446,6 +454,7 @@ airport_gui.cpp
|
||||
autoreplace_gui.cpp
|
||||
bootstrap_gui.cpp
|
||||
bridge_gui.cpp
|
||||
build_confirmation_gui.cpp
|
||||
build_vehicle_gui.cpp
|
||||
cheat_gui.cpp
|
||||
company_gui.cpp
|
||||
@@ -564,7 +573,6 @@ autoreplace_cmd.cpp
|
||||
clear_cmd.cpp
|
||||
company_cmd.cpp
|
||||
depot_cmd.cpp
|
||||
disaster_cmd.cpp
|
||||
group_cmd.cpp
|
||||
industry_cmd.cpp
|
||||
misc_cmd.cpp
|
||||
@@ -645,6 +653,7 @@ table/control_codes.h
|
||||
table/elrail_data.h
|
||||
table/engines.h
|
||||
table/genland.h
|
||||
table/heightmap_colours.h
|
||||
table/industry_land.h
|
||||
table/landscape_sprite.h
|
||||
table/newgrf_debug_data.h
|
||||
@@ -659,6 +668,7 @@ table/roadveh_movement.h
|
||||
table/sprites.h
|
||||
table/station_land.h
|
||||
table/strgen_tables.h
|
||||
table/string_colours.h
|
||||
../objs/langs/table/strings.h
|
||||
table/town_land.h
|
||||
table/townname.h
|
||||
@@ -723,6 +733,7 @@ script/squirrel_std.hpp
|
||||
3rdparty/squirrel/squirrel/sqstate.h
|
||||
3rdparty/squirrel/include/sqstdaux.h
|
||||
3rdparty/squirrel/include/sqstdmath.h
|
||||
3rdparty/squirrel/include/sqstdstring.h
|
||||
3rdparty/squirrel/squirrel/sqstring.h
|
||||
3rdparty/squirrel/squirrel/sqtable.h
|
||||
3rdparty/squirrel/include/squirrel.h
|
||||
@@ -1110,7 +1121,10 @@ music/null_m.cpp
|
||||
#else
|
||||
#if DOS
|
||||
#else
|
||||
music/extmidi.cpp
|
||||
#if MORPHOS
|
||||
#else
|
||||
music/libtimidity.cpp
|
||||
#end
|
||||
#end
|
||||
#end
|
||||
#end
|
||||
|
||||
2
src/3rdparty/md5/md5.cpp
vendored
2
src/3rdparty/md5/md5.cpp
vendored
@@ -60,6 +60,8 @@
|
||||
#include "../../core/endian_func.hpp"
|
||||
#include "md5.h"
|
||||
|
||||
#include "../../safeguards.h"
|
||||
|
||||
#define T_MASK ((uint32)~0)
|
||||
#define T1 /* 0xd76aa478 */ (T_MASK ^ 0x28955b87)
|
||||
#define T2 /* 0xe8c7b756 */ (T_MASK ^ 0x173848a9)
|
||||
|
||||
299
src/3rdparty/os2/getaddrinfo.c
vendored
Normal file
299
src/3rdparty/os2/getaddrinfo.c
vendored
Normal file
@@ -0,0 +1,299 @@
|
||||
/*
|
||||
* This file is part of libESMTP, a library for submission of RFC 2822
|
||||
* formatted electronic mail messages using the SMTP protocol described
|
||||
* in RFC 2821.
|
||||
*
|
||||
* Copyright (C) 2001,2002 Brian Stafford <brian@stafford.uklinux.net>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library 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
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
/* An emulation of the RFC 2553 / Posix getaddrinfo resolver interface.
|
||||
*/
|
||||
|
||||
#if !HAVE_GETADDRINFO
|
||||
|
||||
/* Need to turn off Posix features in glibc to build this */
|
||||
#undef _POSIX_C_SOURCE
|
||||
#undef _XOPEN_SOURCE
|
||||
|
||||
#include "getaddrinfo.h"
|
||||
//#include "compat/inet_pton.h"
|
||||
|
||||
#include <string.h>
|
||||
#include <ctype.h>
|
||||
#include <errno.h>
|
||||
#include <sys/socket.h>
|
||||
#include <netinet/in.h>
|
||||
#include <arpa/inet.h>
|
||||
#include <netdb.h>
|
||||
|
||||
static struct addrinfo *
|
||||
dup_addrinfo (struct addrinfo *info, void *addr, size_t addrlen) {
|
||||
struct addrinfo *ret;
|
||||
|
||||
ret = malloc (sizeof (struct addrinfo));
|
||||
if (ret == NULL)
|
||||
return NULL;
|
||||
memcpy (ret, info, sizeof (struct addrinfo));
|
||||
ret->ai_addr = malloc (addrlen);
|
||||
if (ret->ai_addr == NULL) {
|
||||
free (ret);
|
||||
return NULL;
|
||||
}
|
||||
memcpy (ret->ai_addr, addr, addrlen);
|
||||
ret->ai_addrlen = addrlen;
|
||||
return ret;
|
||||
}
|
||||
|
||||
int
|
||||
getaddrinfo (const char *nodename, const char *servname,
|
||||
const struct addrinfo *hints, struct addrinfo **res)
|
||||
{
|
||||
struct hostent *hp;
|
||||
struct servent *servent;
|
||||
const char *socktype;
|
||||
int port;
|
||||
struct addrinfo hint, result;
|
||||
struct addrinfo *ai, *sai, *eai;
|
||||
char **addrs;
|
||||
|
||||
if (servname == NULL && nodename == NULL)
|
||||
return EAI_NONAME;
|
||||
|
||||
memset (&result, 0, sizeof result);
|
||||
|
||||
/* default for hints */
|
||||
if (hints == NULL) {
|
||||
memset (&hint, 0, sizeof hint);
|
||||
hint.ai_family = PF_UNSPEC;
|
||||
hints = &hint;
|
||||
}
|
||||
|
||||
if (servname == NULL)
|
||||
port = 0;
|
||||
else {
|
||||
/* check for tcp or udp sockets only */
|
||||
if (hints->ai_socktype == SOCK_STREAM)
|
||||
socktype = "tcp";
|
||||
else if (hints->ai_socktype == SOCK_DGRAM)
|
||||
socktype = "udp";
|
||||
else
|
||||
return EAI_SERVICE;
|
||||
result.ai_socktype = hints->ai_socktype;
|
||||
|
||||
/* Note: maintain port in host byte order to make debugging easier */
|
||||
if (isdigit (*servname))
|
||||
port = strtol (servname, NULL, 10);
|
||||
else if ((servent = getservbyname (servname, socktype)) != NULL)
|
||||
port = ntohs (servent->s_port);
|
||||
else
|
||||
return EAI_NONAME;
|
||||
}
|
||||
|
||||
/* if nodename == NULL refer to the local host for a client or any
|
||||
for a server */
|
||||
if (nodename == NULL) {
|
||||
struct sockaddr_in sin;
|
||||
|
||||
/* check protocol family is PF_UNSPEC or PF_INET - could try harder
|
||||
for IPv6 but that's more code than I'm prepared to write */
|
||||
if (hints->ai_family == PF_UNSPEC || hints->ai_family == PF_INET)
|
||||
result.ai_family = AF_INET;
|
||||
else
|
||||
return EAI_FAMILY;
|
||||
|
||||
sin.sin_family = result.ai_family;
|
||||
sin.sin_port = htons (port);
|
||||
if (hints->ai_flags & AI_PASSIVE)
|
||||
sin.sin_addr.s_addr = htonl (INADDR_ANY);
|
||||
else
|
||||
sin.sin_addr.s_addr = htonl (INADDR_LOOPBACK);
|
||||
/* Duplicate result and addr and return */
|
||||
*res = dup_addrinfo (&result, &sin, sizeof sin);
|
||||
return (*res == NULL) ? EAI_MEMORY : 0;
|
||||
}
|
||||
|
||||
/* If AI_NUMERIC is specified, use inet_pton to translate numbers and
|
||||
dots notation. */
|
||||
if (hints->ai_flags & AI_NUMERICHOST) {
|
||||
struct sockaddr_in sin;
|
||||
|
||||
/* check protocol family is PF_UNSPEC or PF_INET */
|
||||
if (hints->ai_family == PF_UNSPEC || hints->ai_family == PF_INET)
|
||||
result.ai_family = AF_INET;
|
||||
else
|
||||
return EAI_FAMILY;
|
||||
|
||||
sin.sin_family = result.ai_family;
|
||||
sin.sin_port = htons (port);
|
||||
if (inet_pton(result.ai_family, nodename, &sin.sin_addr)==0)
|
||||
return EAI_NONAME;
|
||||
sin.sin_addr.s_addr = inet_addr (nodename);
|
||||
/* Duplicate result and addr and return */
|
||||
*res = dup_addrinfo (&result, &sin, sizeof sin);
|
||||
return (*res == NULL) ? EAI_MEMORY : 0;
|
||||
}
|
||||
|
||||
#if HAVE_H_ERRNO
|
||||
h_errno = 0;
|
||||
#endif
|
||||
errno = 0;
|
||||
hp = gethostbyname(nodename);
|
||||
if (hp == NULL) {
|
||||
#ifdef EAI_SYSTEM
|
||||
if (errno != 0) {
|
||||
return EAI_SYSTEM;
|
||||
}
|
||||
#endif
|
||||
switch (h_errno) {
|
||||
case HOST_NOT_FOUND:
|
||||
return EAI_NODATA;
|
||||
case NO_DATA:
|
||||
return EAI_NODATA;
|
||||
#if defined(NO_ADDRESS) && NO_ADDRESS != NO_DATA
|
||||
case NO_ADDRESS:
|
||||
return EAI_NODATA;
|
||||
#endif
|
||||
case NO_RECOVERY:
|
||||
return EAI_FAIL;
|
||||
case TRY_AGAIN:
|
||||
return EAI_AGAIN;
|
||||
default:
|
||||
return EAI_FAIL;
|
||||
}
|
||||
return EAI_FAIL;
|
||||
}
|
||||
|
||||
/* Check that the address family is acceptable.
|
||||
*/
|
||||
switch (hp->h_addrtype) {
|
||||
case AF_INET:
|
||||
if (!(hints->ai_family == PF_UNSPEC || hints->ai_family == PF_INET))
|
||||
return EAI_FAMILY;
|
||||
break;
|
||||
#ifndef __OS2__
|
||||
case AF_INET6:
|
||||
if (!(hints->ai_family == PF_UNSPEC || hints->ai_family == PF_INET6))
|
||||
return EAI_FAMILY;
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
return EAI_FAMILY;
|
||||
}
|
||||
|
||||
/* For each element pointed to by hp, create an element in the
|
||||
result linked list. */
|
||||
sai = eai = NULL;
|
||||
for (addrs = hp->h_addr_list; *addrs != NULL; addrs++) {
|
||||
struct sockaddr sa;
|
||||
size_t addrlen;
|
||||
|
||||
if (hp->h_length < 1)
|
||||
continue;
|
||||
sa.sa_family = hp->h_addrtype;
|
||||
switch (hp->h_addrtype) {
|
||||
case AF_INET:
|
||||
((struct sockaddr_in *) &sa)->sin_port = htons (port);
|
||||
memcpy (&((struct sockaddr_in *) &sa)->sin_addr,
|
||||
*addrs, hp->h_length);
|
||||
addrlen = sizeof (struct sockaddr_in);
|
||||
break;
|
||||
#ifndef __OS2__
|
||||
case AF_INET6:
|
||||
#if SIN6_LEN
|
||||
((struct sockaddr_in6 *) &sa)->sin6_len = hp->h_length;
|
||||
#endif
|
||||
((struct sockaddr_in6 *) &sa)->sin6_port = htons (port);
|
||||
memcpy (&((struct sockaddr_in6 *) &sa)->sin6_addr,
|
||||
*addrs, hp->h_length);
|
||||
addrlen = sizeof (struct sockaddr_in6);
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
continue;
|
||||
}
|
||||
|
||||
result.ai_family = hp->h_addrtype;
|
||||
ai = dup_addrinfo (&result, &sa, addrlen);
|
||||
if (ai == NULL) {
|
||||
freeaddrinfo (sai);
|
||||
return EAI_MEMORY;
|
||||
}
|
||||
if (sai == NULL)
|
||||
sai = ai;
|
||||
else
|
||||
eai->ai_next = ai;
|
||||
eai = ai;
|
||||
}
|
||||
|
||||
if (sai == NULL) {
|
||||
return EAI_NODATA;
|
||||
}
|
||||
|
||||
if (hints->ai_flags & AI_CANONNAME) {
|
||||
sai->ai_canonname = malloc (strlen (hp->h_name) + 1);
|
||||
if (sai->ai_canonname == NULL) {
|
||||
freeaddrinfo (sai);
|
||||
return EAI_MEMORY;
|
||||
}
|
||||
strcpy (sai->ai_canonname, hp->h_name);
|
||||
}
|
||||
|
||||
*res = sai;
|
||||
return 0;
|
||||
}
|
||||
|
||||
void
|
||||
freeaddrinfo (struct addrinfo *ai)
|
||||
{
|
||||
struct addrinfo *next;
|
||||
|
||||
while (ai != NULL) {
|
||||
next = ai->ai_next;
|
||||
if (ai->ai_canonname != NULL)
|
||||
free (ai->ai_canonname);
|
||||
if (ai->ai_addr != NULL)
|
||||
free (ai->ai_addr);
|
||||
free (ai);
|
||||
ai = next;
|
||||
}
|
||||
}
|
||||
|
||||
const char *
|
||||
gai_strerror (int ecode)
|
||||
{
|
||||
static const char *eai_descr[] = {
|
||||
"no error",
|
||||
"address family for nodename not supported", /* EAI_ADDRFAMILY */
|
||||
"temporary failure in name resolution", /* EAI_AGAIN */
|
||||
"invalid value for ai_flags", /* EAI_BADFLAGS */
|
||||
"non-recoverable failure in name resolution", /* EAI_FAIL */
|
||||
"ai_family not supported", /* EAI_FAMILY */
|
||||
"memory allocation failure", /* EAI_MEMORY */
|
||||
"no address associated with nodename", /* EAI_NODATA */
|
||||
"nodename nor servname provided, or not known", /* EAI_NONAME */
|
||||
"servname not supported for ai_socktype", /* EAI_SERVICE */
|
||||
"ai_socktype not supported", /* EAI_SOCKTYPE */
|
||||
"system error returned in errno", /* EAI_SYSTEM */
|
||||
"argument buffer overflow", /* EAI_OVERFLOW */
|
||||
};
|
||||
|
||||
if (ecode < 0 || ecode > (int) (sizeof eai_descr/ sizeof eai_descr[0]))
|
||||
return "unknown error";
|
||||
return eai_descr[ecode];
|
||||
}
|
||||
|
||||
#endif /* HAVE_GETADDRINFO */
|
||||
101
src/3rdparty/os2/getaddrinfo.h
vendored
Normal file
101
src/3rdparty/os2/getaddrinfo.h
vendored
Normal file
@@ -0,0 +1,101 @@
|
||||
#ifndef _getaddrinfo_h
|
||||
#define _getaddrinfo_h
|
||||
|
||||
/*
|
||||
* Shamelessly duplicated from the fetchmail public sources
|
||||
* for use by the Squid Project under GNU Public License.
|
||||
*
|
||||
* Update/Maintenance History:
|
||||
*
|
||||
* 15-Aug-2007 : Copied from fetchmail 6.3.8
|
||||
* - added protection around libray headers
|
||||
*
|
||||
* 16-Aug-2007 : Altered configure checks
|
||||
* Un-hacked slightly to use system gethostbyname()
|
||||
*
|
||||
* Original License and code follows.
|
||||
*/
|
||||
|
||||
/*
|
||||
* This file is part of libESMTP, a library for submission of RFC 2822
|
||||
* formatted electronic mail messages using the SMTP protocol described
|
||||
* in RFC 2821.
|
||||
*
|
||||
* Copyright (C) 2001,2002 Brian Stafford <brian@stafford.uklinux.net>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library 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
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
/* Structure and prototypes taken from RFC 2553 */
|
||||
|
||||
/* SG 23/09/2007:
|
||||
On Windows the following definitions are already available, may be that
|
||||
this could be needed on some other platform */
|
||||
typedef int socklen_t;
|
||||
|
||||
struct addrinfo {
|
||||
int ai_flags; /* AI_PASSIVE, AI_CANONNAME, AI_NUMERICHOST */
|
||||
int ai_family; /* PF_xxx */
|
||||
int ai_socktype; /* SOCK_xxx */
|
||||
int ai_protocol; /* 0 or IPPROTO_xxx for IPv4 and IPv6 */
|
||||
socklen_t ai_addrlen; /* length of ai_addr */
|
||||
char *ai_canonname; /* canonical name for nodename */
|
||||
struct sockaddr *ai_addr; /* binary address */
|
||||
struct addrinfo *ai_next; /* next structure in linked list */
|
||||
};
|
||||
|
||||
/* Supposed to be defined in <netdb.h> */
|
||||
#define AI_ADDRCONFIG 0
|
||||
#define AI_PASSIVE 1 /* Socket address is intended for `bind'. */
|
||||
#define AI_CANONNAME 2 /* Request for canonical name. */
|
||||
#define AI_NUMERICHOST 4 /* Don't use name resolution. */
|
||||
|
||||
/* Supposed to be defined in <netdb.h> */
|
||||
#define EAI_ADDRFAMILY 1 /* address family for nodename not supported */
|
||||
#define EAI_AGAIN 2 /* temporary failure in name resolution */
|
||||
#define EAI_BADFLAGS 3 /* invalid value for ai_flags */
|
||||
#define EAI_FAIL 4 /* non-recoverable failure in name resolution */
|
||||
#define EAI_FAMILY 5 /* ai_family not supported */
|
||||
#define EAI_MEMORY 6 /* memory allocation failure */
|
||||
#define EAI_NODATA 7 /* no address associated with nodename */
|
||||
#define EAI_NONAME 8 /* nodename nor servname provided, or not known */
|
||||
#define EAI_SERVICE 9 /* servname not supported for ai_socktype */
|
||||
#define EAI_SOCKTYPE 10 /* ai_socktype not supported */
|
||||
|
||||
#ifndef EAI_SYSTEM
|
||||
/* Not defined on mingw32. */
|
||||
#define EAI_SYSTEM 11 /* System error returned in `errno'. */
|
||||
#endif
|
||||
#ifndef EAI_OVERFLOW
|
||||
/* Not defined on mingw32. */
|
||||
#define EAI_OVERFLOW 12 /* Argument buffer overflow. */
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
/* RFC 2553 / Posix resolver */
|
||||
int getaddrinfo (const char *nodename, const char *servname,
|
||||
const struct addrinfo *hints, struct addrinfo **res);
|
||||
/* Free addrinfo structure and associated storage */
|
||||
void freeaddrinfo (struct addrinfo *ai);
|
||||
|
||||
/* Convert error return from getaddrinfo() to string */
|
||||
const char *gai_strerror (int code);
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* _getaddrinfo_h */
|
||||
367
src/3rdparty/os2/getnameinfo.c
vendored
Normal file
367
src/3rdparty/os2/getnameinfo.c
vendored
Normal file
@@ -0,0 +1,367 @@
|
||||
/*
|
||||
* Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. Neither the name of the project nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Issues to be discussed:
|
||||
* - RFC2553 says that we should raise error on short buffer. X/Open says
|
||||
* we need to truncate the result. We obey RFC2553 (and X/Open should be
|
||||
* modified). ipngwg rough consensus seems to follow RFC2553. RFC3493 says
|
||||
* nothing about it, but defines a new error code EAI_OVERFLOW which seems
|
||||
* to be intended the code for this case.
|
||||
* - What is "local" in NI_NOFQDN? (see comments in the code)
|
||||
* - NI_NAMEREQD and NI_NUMERICHOST conflict with each other.
|
||||
* - (KAME extension) always attach textual scopeid (fe80::1%lo0), if
|
||||
* sin6_scope_id is filled - standardization status?
|
||||
* - what should we do if we should do getservbyport("sctp")?
|
||||
*/
|
||||
|
||||
/*
|
||||
* Considerations about thread-safeness
|
||||
* The code in this file is thread-safe, and so the thread-safeness of
|
||||
* getnameinfo() depends on the property of backend functions.
|
||||
* - getservbyport() is not thread safe for most systems we are targeting.
|
||||
* - getipnodebyaddr() is thread safe. However, many resolver libraries
|
||||
* used in the function are not thread safe.
|
||||
* - gethostbyaddr() is usually not thread safe.
|
||||
*/
|
||||
|
||||
#if !HAVE_GETNAMEINFO
|
||||
|
||||
#include <sys/socket.h>
|
||||
#include <net/if.h>
|
||||
#include <netinet/in.h>
|
||||
#include <arpa/inet.h>
|
||||
#include <arpa/nameser.h>
|
||||
#include <netdb.h>
|
||||
#include <resolv.h>
|
||||
#include <string.h>
|
||||
#include <stddef.h>
|
||||
#include <errno.h>
|
||||
#include <inttypes.h>
|
||||
#include "getaddrinfo.h"
|
||||
#include "getnameinfo.h"
|
||||
|
||||
static const struct afd {
|
||||
int a_af;
|
||||
int a_addrlen;
|
||||
int a_socklen;
|
||||
int a_off;
|
||||
int a_portoff;
|
||||
} afdl [] = {
|
||||
#if INET6
|
||||
{PF_INET6, sizeof(struct in6_addr), sizeof(struct sockaddr_in6),
|
||||
offsetof(struct sockaddr_in6, sin6_addr),
|
||||
offsetof(struct sockaddr_in6, sin6_port)},
|
||||
#endif
|
||||
{PF_INET, sizeof(struct in_addr), sizeof(struct sockaddr_in),
|
||||
offsetof(struct sockaddr_in, sin_addr),
|
||||
offsetof(struct sockaddr_in, sin_port)},
|
||||
{0, 0, 0, 0, 0},
|
||||
};
|
||||
|
||||
#if INET6
|
||||
static int ip6_parsenumeric __P((const struct sockaddr *, const char *, char *,
|
||||
size_t, int));
|
||||
static int ip6_sa2str __P((const struct sockaddr_in6 *, char *, size_t, int));
|
||||
#endif
|
||||
|
||||
int
|
||||
getnameinfo(sa, salen, host, hostlen, serv, servlen, flags)
|
||||
const struct sockaddr *sa;
|
||||
socklen_t salen;
|
||||
char *host;
|
||||
size_t hostlen;
|
||||
char *serv;
|
||||
size_t servlen;
|
||||
int flags;
|
||||
{
|
||||
const struct afd *afd;
|
||||
struct servent *sp;
|
||||
struct hostent *hp;
|
||||
unsigned short port;
|
||||
int family, i;
|
||||
const char *addr;
|
||||
uint32_t v4a;
|
||||
char numserv[512];
|
||||
|
||||
if (sa == NULL)
|
||||
return EAI_FAIL;
|
||||
|
||||
#if HAVE_SA_LEN /*XXX*/
|
||||
if (sa->sa_len != salen)
|
||||
return EAI_FAIL;
|
||||
#endif
|
||||
|
||||
family = sa->sa_family;
|
||||
for (i = 0; afdl[i].a_af; i++)
|
||||
if (afdl[i].a_af == family) {
|
||||
afd = &afdl[i];
|
||||
goto found;
|
||||
}
|
||||
return EAI_FAMILY;
|
||||
|
||||
found:
|
||||
if (salen != afd->a_socklen)
|
||||
return EAI_FAIL;
|
||||
|
||||
/* network byte order */
|
||||
memcpy(&port, (const char *)sa + afd->a_portoff, sizeof(port));
|
||||
addr = (const char *)sa + afd->a_off;
|
||||
|
||||
if (serv == NULL || servlen == 0) {
|
||||
/*
|
||||
* do nothing in this case.
|
||||
* in case you are wondering if "&&" is more correct than
|
||||
* "||" here: RFC3493 says that serv == NULL OR servlen == 0
|
||||
* means that the caller does not want the result.
|
||||
*/
|
||||
} else {
|
||||
if (flags & NI_NUMERICSERV)
|
||||
sp = NULL;
|
||||
else {
|
||||
sp = getservbyport(port,
|
||||
(flags & NI_DGRAM) ? "udp" : "tcp");
|
||||
}
|
||||
if (sp) {
|
||||
if (strlen(sp->s_name) + 1 > servlen)
|
||||
return EAI_OVERFLOW;
|
||||
strncpy(serv, sp->s_name, servlen);
|
||||
} else {
|
||||
snprintf(numserv, sizeof(numserv), "%u", ntohs(port));
|
||||
if (strlen(numserv) + 1 > servlen)
|
||||
return EAI_OVERFLOW;
|
||||
strncpy(serv, numserv, servlen);
|
||||
}
|
||||
}
|
||||
|
||||
switch (sa->sa_family) {
|
||||
case AF_INET:
|
||||
v4a = (uint32_t)
|
||||
ntohl(((const struct sockaddr_in *)sa)->sin_addr.s_addr);
|
||||
if (IN_MULTICAST(v4a) || IN_EXPERIMENTAL(v4a))
|
||||
flags |= NI_NUMERICHOST;
|
||||
v4a >>= IN_CLASSA_NSHIFT;
|
||||
if (v4a == 0)
|
||||
flags |= NI_NUMERICHOST;
|
||||
break;
|
||||
#if INET6
|
||||
case AF_INET6: {
|
||||
const struct sockaddr_in6 *sin6;
|
||||
sin6 = (const struct sockaddr_in6 *)sa;
|
||||
switch (sin6->sin6_addr.s6_addr[0]) {
|
||||
case 0x00:
|
||||
if (IN6_IS_ADDR_V4MAPPED(&sin6->sin6_addr))
|
||||
;
|
||||
else if (IN6_IS_ADDR_LOOPBACK(&sin6->sin6_addr))
|
||||
;
|
||||
else
|
||||
flags |= NI_NUMERICHOST;
|
||||
break;
|
||||
default:
|
||||
if (IN6_IS_ADDR_LINKLOCAL(&sin6->sin6_addr))
|
||||
flags |= NI_NUMERICHOST;
|
||||
else if (IN6_IS_ADDR_MULTICAST(&sin6->sin6_addr))
|
||||
flags |= NI_NUMERICHOST;
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
}
|
||||
if (host == NULL || hostlen == 0) {
|
||||
/*
|
||||
* do nothing in this case.
|
||||
* in case you are wondering if "&&" is more correct than
|
||||
* "||" here: RFC3493 says that host == NULL or hostlen == 0
|
||||
* means that the caller does not want the result.
|
||||
*/
|
||||
} else if (flags & NI_NUMERICHOST) {
|
||||
/* NUMERICHOST and NAMEREQD conflicts with each other */
|
||||
if (flags & NI_NAMEREQD)
|
||||
return EAI_NONAME;
|
||||
|
||||
goto numeric;
|
||||
} else {
|
||||
#if USE_GETIPNODEBY
|
||||
int h_error = 0;
|
||||
hp = getipnodebyaddr(addr, afd->a_addrlen, afd->a_af, &h_error);
|
||||
#else
|
||||
hp = gethostbyaddr(addr, afd->a_addrlen, afd->a_af);
|
||||
#if 0 // getnameinfo.c:161:9: error: variable 'h_error' set but not used
|
||||
#if HAVE_H_ERRNO
|
||||
h_error = h_errno;
|
||||
#else
|
||||
h_error = EINVAL;
|
||||
#endif
|
||||
#endif /* 0 */
|
||||
#endif
|
||||
|
||||
if (hp) {
|
||||
#if 0
|
||||
if (flags & NI_NOFQDN) {
|
||||
/*
|
||||
* According to RFC3493 section 6.2, NI_NOFQDN
|
||||
* means "node name portion of the FQDN shall
|
||||
* be returned for local hosts." The following
|
||||
* code tries to implement it by returning the
|
||||
* first label (the part before the first
|
||||
* period) of the FQDN. However, it is not
|
||||
* clear if this always makes sense, since the
|
||||
* given address may be outside of "local
|
||||
* hosts." Due to the unclear description, we
|
||||
* disable the code in this implementation.
|
||||
*/
|
||||
char *p;
|
||||
p = strchr(hp->h_name, '.');
|
||||
if (p)
|
||||
*p = '\0';
|
||||
}
|
||||
#endif
|
||||
if (strlen(hp->h_name) + 1 > hostlen) {
|
||||
#if USE_GETIPNODEBY
|
||||
freehostent(hp);
|
||||
#endif
|
||||
return EAI_OVERFLOW;
|
||||
}
|
||||
strncpy(host, hp->h_name, hostlen);
|
||||
#if USE_GETIPNODEBY
|
||||
freehostent(hp);
|
||||
#endif
|
||||
} else {
|
||||
if (flags & NI_NAMEREQD)
|
||||
return EAI_NONAME;
|
||||
|
||||
numeric:
|
||||
switch (afd->a_af) {
|
||||
#if INET6
|
||||
case AF_INET6: {
|
||||
int error;
|
||||
|
||||
if ((error = ip6_parsenumeric(sa, addr, host,
|
||||
hostlen,
|
||||
flags)) != 0)
|
||||
return(error);
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
default:
|
||||
if (inet_ntop(afd->a_af, addr, host,
|
||||
hostlen) == NULL)
|
||||
return EAI_SYSTEM;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return(0);
|
||||
}
|
||||
|
||||
#if INET6
|
||||
static int
|
||||
ip6_parsenumeric(sa, addr, host, hostlen, flags)
|
||||
const struct sockaddr *sa;
|
||||
const char *addr;
|
||||
char *host;
|
||||
size_t hostlen;
|
||||
int flags;
|
||||
{
|
||||
int numaddrlen;
|
||||
char numaddr[512];
|
||||
|
||||
if (inet_ntop(AF_INET6, addr, numaddr, sizeof(numaddr)) == NULL)
|
||||
return EAI_SYSTEM;
|
||||
|
||||
numaddrlen = strlen(numaddr);
|
||||
if (numaddrlen + 1 > hostlen) /* don't forget terminator */
|
||||
return EAI_OVERFLOW;
|
||||
strncpy(host, numaddr, hostlen);
|
||||
|
||||
if (((const struct sockaddr_in6 *)sa)->sin6_scope_id) {
|
||||
char zonebuf[SQUIDHOSTNAMELEN];
|
||||
int zonelen;
|
||||
|
||||
zonelen = ip6_sa2str(
|
||||
(const struct sockaddr_in6 *)(const void *)sa,
|
||||
zonebuf, sizeof(zonebuf), flags);
|
||||
if (zonelen < 0)
|
||||
return EAI_OVERFLOW;
|
||||
if (zonelen + 1 + numaddrlen + 1 > hostlen)
|
||||
return EAI_OVERFLOW;
|
||||
|
||||
/* construct <numeric-addr><delim><zoneid> */
|
||||
memcpy(host + numaddrlen + 1, zonebuf,
|
||||
(size_t)zonelen);
|
||||
host[numaddrlen] = SCOPE_DELIMITER;
|
||||
host[numaddrlen + 1 + zonelen] = '\0';
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* ARGSUSED */
|
||||
static int
|
||||
ip6_sa2str(sa6, buf, bufsiz, flags)
|
||||
const struct sockaddr_in6 *sa6;
|
||||
char *buf;
|
||||
size_t bufsiz;
|
||||
int flags;
|
||||
{
|
||||
unsigned int ifindex;
|
||||
const struct in6_addr *a6;
|
||||
int n;
|
||||
|
||||
ifindex = (unsigned int)sa6->sin6_scope_id;
|
||||
a6 = &sa6->sin6_addr;
|
||||
|
||||
#if NI_NUMERICSCOPE
|
||||
if ((flags & NI_NUMERICSCOPE) != 0) {
|
||||
n = snprintf(buf, bufsiz, "%u", sa6->sin6_scope_id);
|
||||
if (n < 0 || n >= bufsiz)
|
||||
return -1;
|
||||
else
|
||||
return n;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* if_indextoname() does not take buffer size. not a good api... */
|
||||
if ((IN6_IS_ADDR_LINKLOCAL(a6) || IN6_IS_ADDR_MC_LINKLOCAL(a6) ||
|
||||
IN6_IS_ADDR_MC_NODELOCAL(a6)) && bufsiz >= IF_NAMESIZE) {
|
||||
char *p = if_indextoname(ifindex, buf);
|
||||
if (p)
|
||||
return (strlen(p));
|
||||
}
|
||||
|
||||
/* last resort */
|
||||
n = snprintf(buf, bufsiz, "%u", sa6->sin6_scope_id);
|
||||
if (n < 0 || n >= bufsiz)
|
||||
return -1;
|
||||
else
|
||||
return n;
|
||||
}
|
||||
#endif /* INET6 */
|
||||
#endif
|
||||
29
src/3rdparty/os2/getnameinfo.h
vendored
Normal file
29
src/3rdparty/os2/getnameinfo.h
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
#ifndef _getnameinfo_h
|
||||
#define _getnameinfo_h
|
||||
/*
|
||||
* Reconstructed from KAME getnameinfo.c (in lib/)
|
||||
*/
|
||||
|
||||
/* getnameinfo flags */
|
||||
#define NI_NOFQDN 0x0001
|
||||
#define NI_NUMERICHOST 0x0002 /* return numeric form of address */
|
||||
#define NI_NAMEREQD 0x0004 /* request DNS name */
|
||||
#define NI_NUMERICSERV 0x0008
|
||||
#define NI_DGRAM 0x0010
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
/* RFC 2553 / Posix resolver */
|
||||
int getnameinfo(const struct sockaddr *sa,
|
||||
socklen_t salen,
|
||||
char *host,
|
||||
size_t hostlen,
|
||||
char *serv,
|
||||
size_t servlen,
|
||||
int flags );
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* _getnameinfo_h */
|
||||
12
src/3rdparty/squirrel/include/sqstdaux.h
vendored
12
src/3rdparty/squirrel/include/sqstdaux.h
vendored
@@ -2,15 +2,7 @@
|
||||
#ifndef _SQSTD_AUXLIB_H_
|
||||
#define _SQSTD_AUXLIB_H_
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
SQUIRREL_API void sqstd_seterrorhandlers(HSQUIRRELVM v);
|
||||
SQUIRREL_API void sqstd_printcallstack(HSQUIRRELVM v);
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /*extern "C"*/
|
||||
#endif
|
||||
void sqstd_seterrorhandlers(HSQUIRRELVM v);
|
||||
void sqstd_printcallstack(HSQUIRRELVM v);
|
||||
|
||||
#endif /* _SQSTD_AUXLIB_H_ */
|
||||
|
||||
10
src/3rdparty/squirrel/include/sqstdmath.h
vendored
10
src/3rdparty/squirrel/include/sqstdmath.h
vendored
@@ -2,14 +2,6 @@
|
||||
#ifndef _SQSTD_MATH_H_
|
||||
#define _SQSTD_MATH_H_
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
SQUIRREL_API SQRESULT sqstd_register_mathlib(HSQUIRRELVM v);
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /*extern "C"*/
|
||||
#endif
|
||||
SQRESULT sqstd_register_mathlib(HSQUIRRELVM v);
|
||||
|
||||
#endif /*_SQSTD_MATH_H_*/
|
||||
|
||||
26
src/3rdparty/squirrel/include/sqstdstring.h
vendored
26
src/3rdparty/squirrel/include/sqstdstring.h
vendored
@@ -2,10 +2,6 @@
|
||||
#ifndef _SQSTD_STRING_H_
|
||||
#define _SQSTD_STRING_H_
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef unsigned int SQRexBool;
|
||||
typedef struct SQRex SQRex;
|
||||
|
||||
@@ -14,20 +10,16 @@ typedef struct {
|
||||
SQInteger len;
|
||||
} SQRexMatch;
|
||||
|
||||
SQUIRREL_API SQRex *sqstd_rex_compile(const SQChar *pattern,const SQChar **error);
|
||||
SQUIRREL_API void sqstd_rex_free(SQRex *exp);
|
||||
SQUIRREL_API SQBool sqstd_rex_match(SQRex* exp,const SQChar* text);
|
||||
SQUIRREL_API SQBool sqstd_rex_search(SQRex* exp,const SQChar* text, const SQChar** out_begin, const SQChar** out_end);
|
||||
SQUIRREL_API SQBool sqstd_rex_searchrange(SQRex* exp,const SQChar* text_begin,const SQChar* text_end,const SQChar** out_begin, const SQChar** out_end);
|
||||
SQUIRREL_API SQInteger sqstd_rex_getsubexpcount(SQRex* exp);
|
||||
SQUIRREL_API SQBool sqstd_rex_getsubexp(SQRex* exp, SQInteger n, SQRexMatch *subexp);
|
||||
SQRex *sqstd_rex_compile(const SQChar *pattern,const SQChar **error);
|
||||
void sqstd_rex_free(SQRex *exp);
|
||||
SQBool sqstd_rex_match(SQRex* exp,const SQChar* text);
|
||||
SQBool sqstd_rex_search(SQRex* exp,const SQChar* text, const SQChar** out_begin, const SQChar** out_end);
|
||||
SQBool sqstd_rex_searchrange(SQRex* exp,const SQChar* text_begin,const SQChar* text_end,const SQChar** out_begin, const SQChar** out_end);
|
||||
SQInteger sqstd_rex_getsubexpcount(SQRex* exp);
|
||||
SQBool sqstd_rex_getsubexp(SQRex* exp, SQInteger n, SQRexMatch *subexp);
|
||||
|
||||
SQUIRREL_API SQRESULT sqstd_format(HSQUIRRELVM v,SQInteger nformatstringidx,SQInteger *outlen,SQChar **output);
|
||||
SQRESULT sqstd_format(HSQUIRRELVM v,SQInteger nformatstringidx,SQInteger *outlen,SQChar **output);
|
||||
|
||||
SQUIRREL_API SQRESULT sqstd_register_stringlib(HSQUIRRELVM v);
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /*extern "C"*/
|
||||
#endif
|
||||
SQRESULT sqstd_register_stringlib(HSQUIRRELVM v);
|
||||
|
||||
#endif /*_SQSTD_STRING_H_*/
|
||||
|
||||
427
src/3rdparty/squirrel/include/squirrel.h
vendored
427
src/3rdparty/squirrel/include/squirrel.h
vendored
@@ -1,81 +1,41 @@
|
||||
/*
|
||||
Copyright (c) 2003-2011 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.
|
||||
|
||||
*/
|
||||
* Copyright (c) 2003-2011 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.
|
||||
*/
|
||||
#ifndef _SQUIRREL_H_
|
||||
#define _SQUIRREL_H_
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
#include "../../../string_type.h"
|
||||
|
||||
#if defined(_MSC_VER)
|
||||
# define inline __forceinline
|
||||
#endif /* _MSC_VER */
|
||||
|
||||
#if defined(_MSC_VER) && _MSC_VER >= 1400 // MSVC 2005 safety checks
|
||||
# pragma warning(disable: 4996) // '_wfopen' was declared deprecated
|
||||
# define _CRT_SECURE_NO_DEPRECATE // all deprecated 'unsafe string functions
|
||||
# define _CRT_NON_CONFORMING_SWPRINTFS // another deprecated stuff
|
||||
#endif /* _MSC_VER >= 1400 */
|
||||
|
||||
#ifndef SQUIRREL_API
|
||||
#define SQUIRREL_API extern
|
||||
#endif
|
||||
|
||||
#if (defined(_WIN64) || defined(_LP64))
|
||||
#ifndef _SQ64
|
||||
#define _SQ64
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef _SQ64
|
||||
#ifdef _MSC_VER
|
||||
typedef __int64 SQInteger;
|
||||
typedef unsigned __int64 SQUnsignedInteger;
|
||||
typedef unsigned __int64 SQHash; /*should be the same size of a pointer*/
|
||||
#elif defined(_WIN32)
|
||||
typedef long long SQInteger;
|
||||
typedef unsigned long long SQUnsignedInteger;
|
||||
typedef unsigned long long SQHash; /*should be the same size of a pointer*/
|
||||
#else
|
||||
typedef long SQInteger;
|
||||
typedef unsigned long SQUnsignedInteger;
|
||||
typedef unsigned long SQHash; /*should be the same size of a pointer*/
|
||||
#endif
|
||||
typedef int SQInt32;
|
||||
#else
|
||||
typedef int SQInteger;
|
||||
typedef int SQInt32; /*must be 32 bits(also on 64bits processors)*/
|
||||
typedef unsigned int SQUnsignedInteger;
|
||||
typedef unsigned int SQHash; /*should be the same size of a pointer*/
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef SQUSEDOUBLE
|
||||
@@ -84,17 +44,8 @@ typedef double SQFloat;
|
||||
typedef float SQFloat;
|
||||
#endif
|
||||
|
||||
#if defined(SQUSEDOUBLE) && !defined(_SQ64) || !defined(SQUSEDOUBLE) && defined(_SQ64)
|
||||
#ifdef _MSC_VER
|
||||
typedef __int64 SQRawObjectVal; //must be 64bits
|
||||
#else
|
||||
typedef long long SQRawObjectVal; //must be 64bits
|
||||
#endif
|
||||
#define SQ_OBJECT_RAWINIT() { _unVal.raw = 0; }
|
||||
#else
|
||||
typedef SQUnsignedInteger SQRawObjectVal; //is 32 bits on 32 bits builds and 64 bits otherwise
|
||||
#define SQ_OBJECT_RAWINIT()
|
||||
#endif
|
||||
|
||||
typedef void* SQUserPointer;
|
||||
typedef SQUnsignedInteger SQBool;
|
||||
@@ -117,78 +68,12 @@ struct SQClass;
|
||||
struct SQInstance;
|
||||
struct SQDelegable;
|
||||
|
||||
#ifdef _UNICODE
|
||||
#define SQUNICODE
|
||||
#endif
|
||||
|
||||
#ifdef SQUNICODE
|
||||
#if (defined(_MSC_VER) && _MSC_VER >= 1400) // 1400 = VS8
|
||||
|
||||
#ifndef _WCHAR_T_DEFINED //this is if the compiler considers wchar_t as native type
|
||||
typedef unsigned short wchar_t;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
typedef wchar_t SQChar;
|
||||
#define _SC(a) L##a
|
||||
#define scstrcmp wcscmp
|
||||
#define scsprintf swprintf
|
||||
#define scsnprintf _snwprintf
|
||||
#define scstrlen wcslen
|
||||
#define scstrtod wcstod
|
||||
#define scstrtol wcstol
|
||||
#define scatoi _wtoi
|
||||
#define scstrtoul wcstoul
|
||||
#define scvsprintf vswprintf
|
||||
#define scstrstr wcsstr
|
||||
#define scisspace iswspace
|
||||
#define scisdigit iswdigit
|
||||
#define scisxdigit iswxdigit
|
||||
#define scisalpha iswalpha
|
||||
#define sciscntrl iswcntrl
|
||||
#define scisalnum iswalnum
|
||||
#define scprintf wprintf
|
||||
#define scfprintf fwprintf
|
||||
#define scvprintf vwprintf
|
||||
#define scvfprintf vfwprintf
|
||||
#define scvsnprintf _vsnwprintf
|
||||
#define scstrdup _wcsdup
|
||||
#define scstrrchr wcsrchr
|
||||
#define scstrcat wcscat
|
||||
#define MAX_CHAR 0xFFFF
|
||||
#else
|
||||
typedef char SQChar;
|
||||
#define _SC(a) a
|
||||
#define scstrcmp strcmp
|
||||
#define scsprintf sprintf
|
||||
#define scsnprintf snprintf
|
||||
#define scstrlen strlen
|
||||
#define scstrtod strtod
|
||||
#define scstrtol strtol
|
||||
#define scatoi atoi
|
||||
#define scstrtoul strtoul
|
||||
#define scvsprintf vsprintf
|
||||
#define scstrstr strstr
|
||||
#define scisspace isspace
|
||||
#define scisdigit isdigit
|
||||
#define scisxdigit isxdigit
|
||||
#define sciscntrl iscntrl
|
||||
#define scisalpha isalpha
|
||||
#define scisalnum isalnum
|
||||
#define scprintf printf
|
||||
#define scfprintf fprintf
|
||||
#define scvprintf vprintf
|
||||
#define scvfprintf vfprintf
|
||||
#define scvsnprintf vsnprintf
|
||||
#define scstrdup strdup
|
||||
#define scstrrchr strrchr
|
||||
#define scstrcat strcat
|
||||
#define MAX_CHAR 0xFFFF
|
||||
#endif
|
||||
|
||||
#define SQUIRREL_VERSION _SC("Squirrel 2.2.5 stable - With custom OpenTTD modifications")
|
||||
#define SQUIRREL_COPYRIGHT _SC("Copyright (C) 2003-2010 Alberto Demichelis")
|
||||
#define SQUIRREL_AUTHOR _SC("Alberto Demichelis")
|
||||
#define SQUIRREL_VERSION "Squirrel 2.2.5 stable - With custom OpenTTD modifications"
|
||||
#define SQUIRREL_COPYRIGHT "Copyright (C) 2003-2010 Alberto Demichelis"
|
||||
#define SQUIRREL_AUTHOR "Alberto Demichelis"
|
||||
#define SQUIRREL_VERSION_NUMBER 225
|
||||
|
||||
#define SQ_VMSTATE_IDLE 0
|
||||
@@ -294,7 +179,7 @@ typedef void (*SQPRINTFUNCTION)(HSQUIRRELVM,const SQChar * ,...);
|
||||
typedef SQInteger (*SQWRITEFUNC)(SQUserPointer,SQUserPointer,SQInteger);
|
||||
typedef SQInteger (*SQREADFUNC)(SQUserPointer,SQUserPointer,SQInteger);
|
||||
|
||||
typedef SQInteger (*SQLEXREADFUNC)(SQUserPointer);
|
||||
typedef WChar (*SQLEXREADFUNC)(SQUserPointer);
|
||||
|
||||
typedef struct tagSQRegFunction{
|
||||
const SQChar *name;
|
||||
@@ -311,147 +196,147 @@ typedef struct tagSQFunctionInfo {
|
||||
|
||||
|
||||
/*vm*/
|
||||
SQUIRREL_API bool sq_can_suspend(HSQUIRRELVM v);
|
||||
SQUIRREL_API HSQUIRRELVM sq_open(SQInteger initialstacksize);
|
||||
SQUIRREL_API HSQUIRRELVM sq_newthread(HSQUIRRELVM friendvm, SQInteger initialstacksize);
|
||||
SQUIRREL_API void sq_seterrorhandler(HSQUIRRELVM v);
|
||||
SQUIRREL_API void sq_close(HSQUIRRELVM v);
|
||||
SQUIRREL_API void sq_setforeignptr(HSQUIRRELVM v,SQUserPointer p);
|
||||
SQUIRREL_API SQUserPointer sq_getforeignptr(HSQUIRRELVM v);
|
||||
SQUIRREL_API void sq_setprintfunc(HSQUIRRELVM v, SQPRINTFUNCTION printfunc);
|
||||
SQUIRREL_API SQPRINTFUNCTION sq_getprintfunc(HSQUIRRELVM v);
|
||||
SQUIRREL_API SQRESULT sq_suspendvm(HSQUIRRELVM v);
|
||||
SQUIRREL_API bool sq_resumecatch(HSQUIRRELVM v, int suspend = -1);
|
||||
SQUIRREL_API bool sq_resumeerror(HSQUIRRELVM v);
|
||||
SQUIRREL_API SQRESULT sq_wakeupvm(HSQUIRRELVM v,SQBool resumedret,SQBool retval,SQBool raiseerror,SQBool throwerror);
|
||||
SQUIRREL_API SQInteger sq_getvmstate(HSQUIRRELVM v);
|
||||
SQUIRREL_API void sq_decreaseops(HSQUIRRELVM v, int amount);
|
||||
bool sq_can_suspend(HSQUIRRELVM v);
|
||||
HSQUIRRELVM sq_open(SQInteger initialstacksize);
|
||||
HSQUIRRELVM sq_newthread(HSQUIRRELVM friendvm, SQInteger initialstacksize);
|
||||
void sq_seterrorhandler(HSQUIRRELVM v);
|
||||
void sq_close(HSQUIRRELVM v);
|
||||
void sq_setforeignptr(HSQUIRRELVM v,SQUserPointer p);
|
||||
SQUserPointer sq_getforeignptr(HSQUIRRELVM v);
|
||||
void sq_setprintfunc(HSQUIRRELVM v, SQPRINTFUNCTION printfunc);
|
||||
SQPRINTFUNCTION sq_getprintfunc(HSQUIRRELVM v);
|
||||
SQRESULT sq_suspendvm(HSQUIRRELVM v);
|
||||
bool sq_resumecatch(HSQUIRRELVM v, int suspend = -1);
|
||||
bool sq_resumeerror(HSQUIRRELVM v);
|
||||
SQRESULT sq_wakeupvm(HSQUIRRELVM v,SQBool resumedret,SQBool retval,SQBool raiseerror,SQBool throwerror);
|
||||
SQInteger sq_getvmstate(HSQUIRRELVM v);
|
||||
void sq_decreaseops(HSQUIRRELVM v, int amount);
|
||||
|
||||
/*compiler*/
|
||||
SQUIRREL_API SQRESULT sq_compile(HSQUIRRELVM v,SQLEXREADFUNC read,SQUserPointer p,const SQChar *sourcename,SQBool raiseerror);
|
||||
SQUIRREL_API SQRESULT sq_compilebuffer(HSQUIRRELVM v,const SQChar *s,SQInteger size,const SQChar *sourcename,SQBool raiseerror);
|
||||
SQUIRREL_API void sq_enabledebuginfo(HSQUIRRELVM v, SQBool enable);
|
||||
SQUIRREL_API void sq_notifyallexceptions(HSQUIRRELVM v, SQBool enable);
|
||||
SQUIRREL_API void sq_setcompilererrorhandler(HSQUIRRELVM v,SQCOMPILERERROR f);
|
||||
SQRESULT sq_compile(HSQUIRRELVM v,SQLEXREADFUNC read,SQUserPointer p,const SQChar *sourcename,SQBool raiseerror);
|
||||
SQRESULT sq_compilebuffer(HSQUIRRELVM v,const SQChar *s,SQInteger size,const SQChar *sourcename,SQBool raiseerror);
|
||||
void sq_enabledebuginfo(HSQUIRRELVM v, SQBool enable);
|
||||
void sq_notifyallexceptions(HSQUIRRELVM v, SQBool enable);
|
||||
void sq_setcompilererrorhandler(HSQUIRRELVM v,SQCOMPILERERROR f);
|
||||
|
||||
/*stack operations*/
|
||||
SQUIRREL_API void sq_push(HSQUIRRELVM v,SQInteger idx);
|
||||
SQUIRREL_API void sq_pop(HSQUIRRELVM v,SQInteger nelemstopop);
|
||||
SQUIRREL_API void sq_poptop(HSQUIRRELVM v);
|
||||
SQUIRREL_API void sq_remove(HSQUIRRELVM v,SQInteger idx);
|
||||
SQUIRREL_API SQInteger sq_gettop(HSQUIRRELVM v);
|
||||
SQUIRREL_API void sq_settop(HSQUIRRELVM v,SQInteger newtop);
|
||||
SQUIRREL_API void sq_reservestack(HSQUIRRELVM v,SQInteger nsize);
|
||||
SQUIRREL_API SQInteger sq_cmp(HSQUIRRELVM v);
|
||||
SQUIRREL_API void sq_move(HSQUIRRELVM dest,HSQUIRRELVM src,SQInteger idx);
|
||||
void sq_push(HSQUIRRELVM v,SQInteger idx);
|
||||
void sq_pop(HSQUIRRELVM v,SQInteger nelemstopop);
|
||||
void sq_poptop(HSQUIRRELVM v);
|
||||
void sq_remove(HSQUIRRELVM v,SQInteger idx);
|
||||
SQInteger sq_gettop(HSQUIRRELVM v);
|
||||
void sq_settop(HSQUIRRELVM v,SQInteger newtop);
|
||||
void sq_reservestack(HSQUIRRELVM v,SQInteger nsize);
|
||||
SQInteger sq_cmp(HSQUIRRELVM v);
|
||||
void sq_move(HSQUIRRELVM dest,HSQUIRRELVM src,SQInteger idx);
|
||||
|
||||
/*object creation handling*/
|
||||
SQUIRREL_API SQUserPointer sq_newuserdata(HSQUIRRELVM v,SQUnsignedInteger size);
|
||||
SQUIRREL_API void sq_newtable(HSQUIRRELVM v);
|
||||
SQUIRREL_API void sq_newarray(HSQUIRRELVM v,SQInteger size);
|
||||
SQUIRREL_API void sq_newclosure(HSQUIRRELVM v,SQFUNCTION func,SQUnsignedInteger nfreevars);
|
||||
SQUIRREL_API SQRESULT sq_setparamscheck(HSQUIRRELVM v,SQInteger nparamscheck,const SQChar *typemask);
|
||||
SQUIRREL_API SQRESULT sq_bindenv(HSQUIRRELVM v,SQInteger idx);
|
||||
SQUIRREL_API void sq_pushstring(HSQUIRRELVM v,const SQChar *s,SQInteger len);
|
||||
SQUIRREL_API void sq_pushfloat(HSQUIRRELVM v,SQFloat f);
|
||||
SQUIRREL_API void sq_pushinteger(HSQUIRRELVM v,SQInteger n);
|
||||
SQUIRREL_API void sq_pushbool(HSQUIRRELVM v,SQBool b);
|
||||
SQUIRREL_API void sq_pushuserpointer(HSQUIRRELVM v,SQUserPointer p);
|
||||
SQUIRREL_API void sq_pushnull(HSQUIRRELVM v);
|
||||
SQUIRREL_API SQObjectType sq_gettype(HSQUIRRELVM v,SQInteger idx);
|
||||
SQUIRREL_API SQInteger sq_getsize(HSQUIRRELVM v,SQInteger idx);
|
||||
SQUIRREL_API SQRESULT sq_getbase(HSQUIRRELVM v,SQInteger idx);
|
||||
SQUIRREL_API SQBool sq_instanceof(HSQUIRRELVM v);
|
||||
SQUIRREL_API void sq_tostring(HSQUIRRELVM v,SQInteger idx);
|
||||
SQUIRREL_API void sq_tobool(HSQUIRRELVM v, SQInteger idx, SQBool *b);
|
||||
SQUIRREL_API SQRESULT sq_getstring(HSQUIRRELVM v,SQInteger idx,const SQChar **c);
|
||||
SQUIRREL_API SQRESULT sq_getinteger(HSQUIRRELVM v,SQInteger idx,SQInteger *i);
|
||||
SQUIRREL_API SQRESULT sq_getfloat(HSQUIRRELVM v,SQInteger idx,SQFloat *f);
|
||||
SQUIRREL_API SQRESULT sq_getbool(HSQUIRRELVM v,SQInteger idx,SQBool *b);
|
||||
SQUIRREL_API SQRESULT sq_getthread(HSQUIRRELVM v,SQInteger idx,HSQUIRRELVM *thread);
|
||||
SQUIRREL_API SQRESULT sq_getuserpointer(HSQUIRRELVM v,SQInteger idx,SQUserPointer *p);
|
||||
SQUIRREL_API SQRESULT sq_getuserdata(HSQUIRRELVM v,SQInteger idx,SQUserPointer *p,SQUserPointer *typetag);
|
||||
SQUIRREL_API SQRESULT sq_settypetag(HSQUIRRELVM v,SQInteger idx,SQUserPointer typetag);
|
||||
SQUIRREL_API SQRESULT sq_gettypetag(HSQUIRRELVM v,SQInteger idx,SQUserPointer *typetag);
|
||||
SQUIRREL_API void sq_setreleasehook(HSQUIRRELVM v,SQInteger idx,SQRELEASEHOOK hook);
|
||||
SQUIRREL_API SQChar *sq_getscratchpad(HSQUIRRELVM v,SQInteger minsize);
|
||||
SQUIRREL_API SQRESULT sq_getfunctioninfo(HSQUIRRELVM v,SQInteger idx,SQFunctionInfo *fi);
|
||||
SQUIRREL_API SQRESULT sq_getclosureinfo(HSQUIRRELVM v,SQInteger idx,SQUnsignedInteger *nparams,SQUnsignedInteger *nfreevars);
|
||||
SQUIRREL_API SQRESULT sq_setnativeclosurename(HSQUIRRELVM v,SQInteger idx,const SQChar *name);
|
||||
SQUIRREL_API SQRESULT sq_setinstanceup(HSQUIRRELVM v, SQInteger idx, SQUserPointer p);
|
||||
SQUIRREL_API SQRESULT sq_getinstanceup(HSQUIRRELVM v, SQInteger idx, SQUserPointer *p,SQUserPointer typetag);
|
||||
SQUIRREL_API SQRESULT sq_setclassudsize(HSQUIRRELVM v, SQInteger idx, SQInteger udsize);
|
||||
SQUIRREL_API SQRESULT sq_newclass(HSQUIRRELVM v,SQBool hasbase);
|
||||
SQUIRREL_API SQRESULT sq_createinstance(HSQUIRRELVM v,SQInteger idx);
|
||||
SQUIRREL_API SQRESULT sq_setattributes(HSQUIRRELVM v,SQInteger idx);
|
||||
SQUIRREL_API SQRESULT sq_getattributes(HSQUIRRELVM v,SQInteger idx);
|
||||
SQUIRREL_API SQRESULT sq_getclass(HSQUIRRELVM v,SQInteger idx);
|
||||
SQUIRREL_API void sq_weakref(HSQUIRRELVM v,SQInteger idx);
|
||||
SQUIRREL_API SQRESULT sq_getdefaultdelegate(HSQUIRRELVM v,SQObjectType t);
|
||||
SQUserPointer sq_newuserdata(HSQUIRRELVM v,SQUnsignedInteger size);
|
||||
void sq_newtable(HSQUIRRELVM v);
|
||||
void sq_newarray(HSQUIRRELVM v,SQInteger size);
|
||||
void sq_newclosure(HSQUIRRELVM v,SQFUNCTION func,SQUnsignedInteger nfreevars);
|
||||
SQRESULT sq_setparamscheck(HSQUIRRELVM v,SQInteger nparamscheck,const SQChar *typemask);
|
||||
SQRESULT sq_bindenv(HSQUIRRELVM v,SQInteger idx);
|
||||
void sq_pushstring(HSQUIRRELVM v,const SQChar *s,SQInteger len);
|
||||
void sq_pushfloat(HSQUIRRELVM v,SQFloat f);
|
||||
void sq_pushinteger(HSQUIRRELVM v,SQInteger n);
|
||||
void sq_pushbool(HSQUIRRELVM v,SQBool b);
|
||||
void sq_pushuserpointer(HSQUIRRELVM v,SQUserPointer p);
|
||||
void sq_pushnull(HSQUIRRELVM v);
|
||||
SQObjectType sq_gettype(HSQUIRRELVM v,SQInteger idx);
|
||||
SQInteger sq_getsize(HSQUIRRELVM v,SQInteger idx);
|
||||
SQRESULT sq_getbase(HSQUIRRELVM v,SQInteger idx);
|
||||
SQBool sq_instanceof(HSQUIRRELVM v);
|
||||
void sq_tostring(HSQUIRRELVM v,SQInteger idx);
|
||||
void sq_tobool(HSQUIRRELVM v, SQInteger idx, SQBool *b);
|
||||
SQRESULT sq_getstring(HSQUIRRELVM v,SQInteger idx,const SQChar **c);
|
||||
SQRESULT sq_getinteger(HSQUIRRELVM v,SQInteger idx,SQInteger *i);
|
||||
SQRESULT sq_getfloat(HSQUIRRELVM v,SQInteger idx,SQFloat *f);
|
||||
SQRESULT sq_getbool(HSQUIRRELVM v,SQInteger idx,SQBool *b);
|
||||
SQRESULT sq_getthread(HSQUIRRELVM v,SQInteger idx,HSQUIRRELVM *thread);
|
||||
SQRESULT sq_getuserpointer(HSQUIRRELVM v,SQInteger idx,SQUserPointer *p);
|
||||
SQRESULT sq_getuserdata(HSQUIRRELVM v,SQInteger idx,SQUserPointer *p,SQUserPointer *typetag);
|
||||
SQRESULT sq_settypetag(HSQUIRRELVM v,SQInteger idx,SQUserPointer typetag);
|
||||
SQRESULT sq_gettypetag(HSQUIRRELVM v,SQInteger idx,SQUserPointer *typetag);
|
||||
void sq_setreleasehook(HSQUIRRELVM v,SQInteger idx,SQRELEASEHOOK hook);
|
||||
SQChar *sq_getscratchpad(HSQUIRRELVM v,SQInteger minsize);
|
||||
SQRESULT sq_getfunctioninfo(HSQUIRRELVM v,SQInteger idx,SQFunctionInfo *fi);
|
||||
SQRESULT sq_getclosureinfo(HSQUIRRELVM v,SQInteger idx,SQUnsignedInteger *nparams,SQUnsignedInteger *nfreevars);
|
||||
SQRESULT sq_setnativeclosurename(HSQUIRRELVM v,SQInteger idx,const SQChar *name);
|
||||
SQRESULT sq_setinstanceup(HSQUIRRELVM v, SQInteger idx, SQUserPointer p);
|
||||
SQRESULT sq_getinstanceup(HSQUIRRELVM v, SQInteger idx, SQUserPointer *p,SQUserPointer typetag);
|
||||
SQRESULT sq_setclassudsize(HSQUIRRELVM v, SQInteger idx, SQInteger udsize);
|
||||
SQRESULT sq_newclass(HSQUIRRELVM v,SQBool hasbase);
|
||||
SQRESULT sq_createinstance(HSQUIRRELVM v,SQInteger idx);
|
||||
SQRESULT sq_setattributes(HSQUIRRELVM v,SQInteger idx);
|
||||
SQRESULT sq_getattributes(HSQUIRRELVM v,SQInteger idx);
|
||||
SQRESULT sq_getclass(HSQUIRRELVM v,SQInteger idx);
|
||||
void sq_weakref(HSQUIRRELVM v,SQInteger idx);
|
||||
SQRESULT sq_getdefaultdelegate(HSQUIRRELVM v,SQObjectType t);
|
||||
|
||||
/*object manipulation*/
|
||||
SQUIRREL_API void sq_pushroottable(HSQUIRRELVM v);
|
||||
SQUIRREL_API void sq_pushregistrytable(HSQUIRRELVM v);
|
||||
SQUIRREL_API void sq_pushconsttable(HSQUIRRELVM v);
|
||||
SQUIRREL_API SQRESULT sq_setroottable(HSQUIRRELVM v);
|
||||
SQUIRREL_API SQRESULT sq_setconsttable(HSQUIRRELVM v);
|
||||
SQUIRREL_API SQRESULT sq_newslot(HSQUIRRELVM v, SQInteger idx, SQBool bstatic);
|
||||
SQUIRREL_API SQRESULT sq_deleteslot(HSQUIRRELVM v,SQInteger idx,SQBool pushval);
|
||||
SQUIRREL_API SQRESULT sq_set(HSQUIRRELVM v,SQInteger idx);
|
||||
SQUIRREL_API SQRESULT sq_get(HSQUIRRELVM v,SQInteger idx);
|
||||
SQUIRREL_API SQRESULT sq_rawget(HSQUIRRELVM v,SQInteger idx);
|
||||
SQUIRREL_API SQRESULT sq_rawset(HSQUIRRELVM v,SQInteger idx);
|
||||
SQUIRREL_API SQRESULT sq_rawdeleteslot(HSQUIRRELVM v,SQInteger idx,SQBool pushval);
|
||||
SQUIRREL_API SQRESULT sq_arrayappend(HSQUIRRELVM v,SQInteger idx);
|
||||
SQUIRREL_API SQRESULT sq_arraypop(HSQUIRRELVM v,SQInteger idx,SQBool pushval);
|
||||
SQUIRREL_API SQRESULT sq_arrayresize(HSQUIRRELVM v,SQInteger idx,SQInteger newsize);
|
||||
SQUIRREL_API SQRESULT sq_arrayreverse(HSQUIRRELVM v,SQInteger idx);
|
||||
SQUIRREL_API SQRESULT sq_arrayremove(HSQUIRRELVM v,SQInteger idx,SQInteger itemidx);
|
||||
SQUIRREL_API SQRESULT sq_arrayinsert(HSQUIRRELVM v,SQInteger idx,SQInteger destpos);
|
||||
SQUIRREL_API SQRESULT sq_setdelegate(HSQUIRRELVM v,SQInteger idx);
|
||||
SQUIRREL_API SQRESULT sq_getdelegate(HSQUIRRELVM v,SQInteger idx);
|
||||
SQUIRREL_API SQRESULT sq_clone(HSQUIRRELVM v,SQInteger idx);
|
||||
SQUIRREL_API SQRESULT sq_setfreevariable(HSQUIRRELVM v,SQInteger idx,SQUnsignedInteger nval);
|
||||
SQUIRREL_API SQRESULT sq_next(HSQUIRRELVM v,SQInteger idx);
|
||||
SQUIRREL_API SQRESULT sq_getweakrefval(HSQUIRRELVM v,SQInteger idx);
|
||||
SQUIRREL_API SQRESULT sq_clear(HSQUIRRELVM v,SQInteger idx);
|
||||
void sq_pushroottable(HSQUIRRELVM v);
|
||||
void sq_pushregistrytable(HSQUIRRELVM v);
|
||||
void sq_pushconsttable(HSQUIRRELVM v);
|
||||
SQRESULT sq_setroottable(HSQUIRRELVM v);
|
||||
SQRESULT sq_setconsttable(HSQUIRRELVM v);
|
||||
SQRESULT sq_newslot(HSQUIRRELVM v, SQInteger idx, SQBool bstatic);
|
||||
SQRESULT sq_deleteslot(HSQUIRRELVM v,SQInteger idx,SQBool pushval);
|
||||
SQRESULT sq_set(HSQUIRRELVM v,SQInteger idx);
|
||||
SQRESULT sq_get(HSQUIRRELVM v,SQInteger idx);
|
||||
SQRESULT sq_rawget(HSQUIRRELVM v,SQInteger idx);
|
||||
SQRESULT sq_rawset(HSQUIRRELVM v,SQInteger idx);
|
||||
SQRESULT sq_rawdeleteslot(HSQUIRRELVM v,SQInteger idx,SQBool pushval);
|
||||
SQRESULT sq_arrayappend(HSQUIRRELVM v,SQInteger idx);
|
||||
SQRESULT sq_arraypop(HSQUIRRELVM v,SQInteger idx,SQBool pushval);
|
||||
SQRESULT sq_arrayresize(HSQUIRRELVM v,SQInteger idx,SQInteger newsize);
|
||||
SQRESULT sq_arrayreverse(HSQUIRRELVM v,SQInteger idx);
|
||||
SQRESULT sq_arrayremove(HSQUIRRELVM v,SQInteger idx,SQInteger itemidx);
|
||||
SQRESULT sq_arrayinsert(HSQUIRRELVM v,SQInteger idx,SQInteger destpos);
|
||||
SQRESULT sq_setdelegate(HSQUIRRELVM v,SQInteger idx);
|
||||
SQRESULT sq_getdelegate(HSQUIRRELVM v,SQInteger idx);
|
||||
SQRESULT sq_clone(HSQUIRRELVM v,SQInteger idx);
|
||||
SQRESULT sq_setfreevariable(HSQUIRRELVM v,SQInteger idx,SQUnsignedInteger nval);
|
||||
SQRESULT sq_next(HSQUIRRELVM v,SQInteger idx);
|
||||
SQRESULT sq_getweakrefval(HSQUIRRELVM v,SQInteger idx);
|
||||
SQRESULT sq_clear(HSQUIRRELVM v,SQInteger idx);
|
||||
|
||||
/*calls*/
|
||||
SQUIRREL_API SQRESULT sq_call(HSQUIRRELVM v,SQInteger params,SQBool retval,SQBool raiseerror, int suspend = -1);
|
||||
SQUIRREL_API SQRESULT sq_resume(HSQUIRRELVM v,SQBool retval,SQBool raiseerror);
|
||||
SQUIRREL_API const SQChar *sq_getlocal(HSQUIRRELVM v,SQUnsignedInteger level,SQUnsignedInteger idx);
|
||||
SQUIRREL_API const SQChar *sq_getfreevariable(HSQUIRRELVM v,SQInteger idx,SQUnsignedInteger nval);
|
||||
SQUIRREL_API SQRESULT sq_throwerror(HSQUIRRELVM v,const SQChar *err);
|
||||
SQUIRREL_API void sq_reseterror(HSQUIRRELVM v);
|
||||
SQUIRREL_API void sq_getlasterror(HSQUIRRELVM v);
|
||||
SQRESULT sq_call(HSQUIRRELVM v,SQInteger params,SQBool retval,SQBool raiseerror, int suspend = -1);
|
||||
SQRESULT sq_resume(HSQUIRRELVM v,SQBool retval,SQBool raiseerror);
|
||||
const SQChar *sq_getlocal(HSQUIRRELVM v,SQUnsignedInteger level,SQUnsignedInteger idx);
|
||||
const SQChar *sq_getfreevariable(HSQUIRRELVM v,SQInteger idx,SQUnsignedInteger nval);
|
||||
SQRESULT sq_throwerror(HSQUIRRELVM v,const SQChar *err);
|
||||
void sq_reseterror(HSQUIRRELVM v);
|
||||
void sq_getlasterror(HSQUIRRELVM v);
|
||||
|
||||
/*raw object handling*/
|
||||
SQUIRREL_API SQRESULT sq_getstackobj(HSQUIRRELVM v,SQInteger idx,HSQOBJECT *po);
|
||||
SQUIRREL_API void sq_pushobject(HSQUIRRELVM v,HSQOBJECT obj);
|
||||
SQUIRREL_API void sq_addref(HSQUIRRELVM v,HSQOBJECT *po);
|
||||
SQUIRREL_API SQBool sq_release(HSQUIRRELVM v,HSQOBJECT *po);
|
||||
SQUIRREL_API void sq_resetobject(HSQOBJECT *po);
|
||||
SQUIRREL_API const SQChar *sq_objtostring(HSQOBJECT *o);
|
||||
SQUIRREL_API SQBool sq_objtobool(HSQOBJECT *o);
|
||||
SQUIRREL_API SQInteger sq_objtointeger(HSQOBJECT *o);
|
||||
SQUIRREL_API SQFloat sq_objtofloat(HSQOBJECT *o);
|
||||
SQUIRREL_API SQRESULT sq_getobjtypetag(HSQOBJECT *o,SQUserPointer * typetag);
|
||||
SQRESULT sq_getstackobj(HSQUIRRELVM v,SQInteger idx,HSQOBJECT *po);
|
||||
void sq_pushobject(HSQUIRRELVM v,HSQOBJECT obj);
|
||||
void sq_addref(HSQUIRRELVM v,HSQOBJECT *po);
|
||||
SQBool sq_release(HSQUIRRELVM v,HSQOBJECT *po);
|
||||
void sq_resetobject(HSQOBJECT *po);
|
||||
const SQChar *sq_objtostring(HSQOBJECT *o);
|
||||
SQBool sq_objtobool(HSQOBJECT *o);
|
||||
SQInteger sq_objtointeger(HSQOBJECT *o);
|
||||
SQFloat sq_objtofloat(HSQOBJECT *o);
|
||||
SQRESULT sq_getobjtypetag(HSQOBJECT *o,SQUserPointer * typetag);
|
||||
|
||||
/*GC*/
|
||||
SQUIRREL_API SQInteger sq_collectgarbage(HSQUIRRELVM v);
|
||||
SQInteger sq_collectgarbage(HSQUIRRELVM v);
|
||||
|
||||
/*serialization*/
|
||||
SQUIRREL_API SQRESULT sq_writeclosure(HSQUIRRELVM vm,SQWRITEFUNC writef,SQUserPointer up);
|
||||
SQUIRREL_API SQRESULT sq_readclosure(HSQUIRRELVM vm,SQREADFUNC readf,SQUserPointer up);
|
||||
SQRESULT sq_writeclosure(HSQUIRRELVM vm,SQWRITEFUNC writef,SQUserPointer up);
|
||||
SQRESULT sq_readclosure(HSQUIRRELVM vm,SQREADFUNC readf,SQUserPointer up);
|
||||
|
||||
/*mem allocation*/
|
||||
SQUIRREL_API void *sq_malloc(SQUnsignedInteger size);
|
||||
SQUIRREL_API void *sq_realloc(void* p,SQUnsignedInteger oldsize,SQUnsignedInteger newsize);
|
||||
SQUIRREL_API void sq_free(void *p,SQUnsignedInteger size);
|
||||
void *sq_malloc(SQUnsignedInteger size);
|
||||
void *sq_realloc(void* p,SQUnsignedInteger oldsize,SQUnsignedInteger newsize);
|
||||
void sq_free(void *p,SQUnsignedInteger size);
|
||||
|
||||
/*debug*/
|
||||
SQUIRREL_API SQRESULT sq_stackinfos(HSQUIRRELVM v,SQInteger level,SQStackInfos *si);
|
||||
SQUIRREL_API void sq_setdebughook(HSQUIRRELVM v);
|
||||
SQRESULT sq_stackinfos(HSQUIRRELVM v,SQInteger level,SQStackInfos *si);
|
||||
void sq_setdebughook(HSQUIRRELVM v);
|
||||
|
||||
/*UTILITY MACRO*/
|
||||
#define sq_isnumeric(o) ((o)._type&SQOBJECT_NUMERIC)
|
||||
@@ -483,8 +368,4 @@ SQUIRREL_API void sq_setdebughook(HSQUIRRELVM v);
|
||||
#define SQ_FAILED(res) (res<0)
|
||||
#define SQ_SUCCEEDED(res) (res>=0)
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /*extern "C"*/
|
||||
#endif
|
||||
|
||||
#endif /*_SQUIRREL_H_*/
|
||||
|
||||
59
src/3rdparty/squirrel/sqstdlib/sqstdaux.cpp
vendored
59
src/3rdparty/squirrel/sqstdlib/sqstdaux.cpp
vendored
@@ -1,8 +1,11 @@
|
||||
/* see copyright notice in squirrel.h */
|
||||
|
||||
#include "../../../stdafx.h"
|
||||
|
||||
#include <squirrel.h>
|
||||
#include <sqstdaux.h>
|
||||
#include <assert.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "../../../safeguards.h"
|
||||
|
||||
void sqstd_printcallstack(HSQUIRRELVM v)
|
||||
{
|
||||
@@ -16,30 +19,30 @@ void sqstd_printcallstack(HSQUIRRELVM v)
|
||||
SQInteger level=1; //1 is to skip this function that is level 0
|
||||
const SQChar *name=0;
|
||||
SQInteger seq=0;
|
||||
pf(v,_SC("\nCALLSTACK\n"));
|
||||
pf(v,"\nCALLSTACK\n");
|
||||
while(SQ_SUCCEEDED(sq_stackinfos(v,level,&si)))
|
||||
{
|
||||
const SQChar *fn=_SC("unknown");
|
||||
const SQChar *src=_SC("unknown");
|
||||
const SQChar *fn="unknown";
|
||||
const SQChar *src="unknown";
|
||||
if(si.funcname)fn=si.funcname;
|
||||
if(si.source) {
|
||||
/* We don't want to bother users with absolute paths to all AI files.
|
||||
* Since the path only reaches NoAI code in a formatted string we have
|
||||
* to strip it here. Let's hope nobody installs openttd in a subdirectory
|
||||
* of a directory named /ai/. */
|
||||
src = scstrstr(si.source, _SC("\\ai\\"));
|
||||
if (!src) src = scstrstr(si.source, _SC("/ai/"));
|
||||
src = strstr(si.source, "\\ai\\");
|
||||
if (!src) src = strstr(si.source, "/ai/");
|
||||
if (src) {
|
||||
src += 4;
|
||||
} else {
|
||||
src = si.source;
|
||||
}
|
||||
}
|
||||
pf(v,_SC("*FUNCTION [%s()] %s line [%d]\n"),fn,src,si.line);
|
||||
pf(v,"*FUNCTION [%s()] %s line [%d]\n",fn,src,si.line);
|
||||
level++;
|
||||
}
|
||||
level=0;
|
||||
pf(v,_SC("\nLOCALS\n"));
|
||||
pf(v,"\nLOCALS\n");
|
||||
|
||||
for(level=0;level<10;level++){
|
||||
seq=0;
|
||||
@@ -49,56 +52,56 @@ void sqstd_printcallstack(HSQUIRRELVM v)
|
||||
switch(sq_gettype(v,-1))
|
||||
{
|
||||
case OT_NULL:
|
||||
pf(v,_SC("[%s] NULL\n"),name);
|
||||
pf(v,"[%s] NULL\n",name);
|
||||
break;
|
||||
case OT_INTEGER:
|
||||
sq_getinteger(v,-1,&i);
|
||||
pf(v,_SC("[%s] %d\n"),name,i);
|
||||
pf(v,"[%s] %d\n",name,i);
|
||||
break;
|
||||
case OT_FLOAT:
|
||||
sq_getfloat(v,-1,&f);
|
||||
pf(v,_SC("[%s] %.14g\n"),name,f);
|
||||
pf(v,"[%s] %.14g\n",name,f);
|
||||
break;
|
||||
case OT_USERPOINTER:
|
||||
pf(v,_SC("[%s] USERPOINTER\n"),name);
|
||||
pf(v,"[%s] USERPOINTER\n",name);
|
||||
break;
|
||||
case OT_STRING:
|
||||
sq_getstring(v,-1,&s);
|
||||
pf(v,_SC("[%s] \"%s\"\n"),name,s);
|
||||
pf(v,"[%s] \"%s\"\n",name,s);
|
||||
break;
|
||||
case OT_TABLE:
|
||||
pf(v,_SC("[%s] TABLE\n"),name);
|
||||
pf(v,"[%s] TABLE\n",name);
|
||||
break;
|
||||
case OT_ARRAY:
|
||||
pf(v,_SC("[%s] ARRAY\n"),name);
|
||||
pf(v,"[%s] ARRAY\n",name);
|
||||
break;
|
||||
case OT_CLOSURE:
|
||||
pf(v,_SC("[%s] CLOSURE\n"),name);
|
||||
pf(v,"[%s] CLOSURE\n",name);
|
||||
break;
|
||||
case OT_NATIVECLOSURE:
|
||||
pf(v,_SC("[%s] NATIVECLOSURE\n"),name);
|
||||
pf(v,"[%s] NATIVECLOSURE\n",name);
|
||||
break;
|
||||
case OT_GENERATOR:
|
||||
pf(v,_SC("[%s] GENERATOR\n"),name);
|
||||
pf(v,"[%s] GENERATOR\n",name);
|
||||
break;
|
||||
case OT_USERDATA:
|
||||
pf(v,_SC("[%s] USERDATA\n"),name);
|
||||
pf(v,"[%s] USERDATA\n",name);
|
||||
break;
|
||||
case OT_THREAD:
|
||||
pf(v,_SC("[%s] THREAD\n"),name);
|
||||
pf(v,"[%s] THREAD\n",name);
|
||||
break;
|
||||
case OT_CLASS:
|
||||
pf(v,_SC("[%s] CLASS\n"),name);
|
||||
pf(v,"[%s] CLASS\n",name);
|
||||
break;
|
||||
case OT_INSTANCE:
|
||||
pf(v,_SC("[%s] INSTANCE\n"),name);
|
||||
pf(v,"[%s] INSTANCE\n",name);
|
||||
break;
|
||||
case OT_WEAKREF:
|
||||
pf(v,_SC("[%s] WEAKREF\n"),name);
|
||||
pf(v,"[%s] WEAKREF\n",name);
|
||||
break;
|
||||
case OT_BOOL:{
|
||||
sq_getbool(v,-1,&b);
|
||||
pf(v,_SC("[%s] %s\n"),name,b?_SC("true"):_SC("false"));
|
||||
pf(v,"[%s] %s\n",name,b?"true":"false");
|
||||
}
|
||||
break;
|
||||
default: assert(0); break;
|
||||
@@ -116,10 +119,10 @@ static SQInteger _sqstd_aux_printerror(HSQUIRRELVM v)
|
||||
const SQChar *sErr = 0;
|
||||
if(sq_gettop(v)>=1) {
|
||||
if(SQ_SUCCEEDED(sq_getstring(v,2,&sErr))) {
|
||||
pf(v,_SC("\nAN ERROR HAS OCCURED [%s]\n"),sErr);
|
||||
pf(v,"\nAN ERROR HAS OCCURED [%s]\n",sErr);
|
||||
}
|
||||
else{
|
||||
pf(v,_SC("\nAN ERROR HAS OCCURED [unknown]\n"));
|
||||
pf(v,"\nAN ERROR HAS OCCURED [unknown]\n");
|
||||
}
|
||||
sqstd_printcallstack(v);
|
||||
}
|
||||
@@ -131,7 +134,7 @@ void _sqstd_compiler_error(HSQUIRRELVM v,const SQChar *sErr,const SQChar *sSourc
|
||||
{
|
||||
SQPRINTFUNCTION pf = sq_getprintfunc(v);
|
||||
if(pf) {
|
||||
pf(v,_SC("%s line = (%d) column = (%d) : error %s\n"),sSource,line,column,sErr);
|
||||
pf(v,"%s line = (%d) column = (%d) : error %s\n",sSource,line,column,sErr);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
48
src/3rdparty/squirrel/sqstdlib/sqstdmath.cpp
vendored
48
src/3rdparty/squirrel/sqstdlib/sqstdmath.cpp
vendored
@@ -1,9 +1,13 @@
|
||||
/* see copyright notice in squirrel.h */
|
||||
|
||||
#include "../../../stdafx.h"
|
||||
|
||||
#include <squirrel.h>
|
||||
#include <math.h>
|
||||
#include <stdlib.h>
|
||||
#include <sqstdmath.h>
|
||||
|
||||
#include "../../../safeguards.h"
|
||||
|
||||
#define SINGLE_ARG_FUNC(_funcname, num_ops) static SQInteger math_##_funcname(HSQUIRRELVM v){ \
|
||||
SQFloat f; \
|
||||
sq_decreaseops(v,num_ops); \
|
||||
@@ -26,7 +30,7 @@ static SQInteger math_srand(HSQUIRRELVM v)
|
||||
{
|
||||
SQInteger i;
|
||||
if(SQ_FAILED(sq_getinteger(v,2,&i)))
|
||||
return sq_throwerror(v,_SC("invalid param"));
|
||||
return sq_throwerror(v,"invalid param");
|
||||
srand((unsigned int)i);
|
||||
return 0;
|
||||
}
|
||||
@@ -62,28 +66,28 @@ SINGLE_ARG_FUNC(floor, 1)
|
||||
SINGLE_ARG_FUNC(ceil, 1)
|
||||
SINGLE_ARG_FUNC(exp, 100)
|
||||
|
||||
#define _DECL_FUNC(name,nparams,tycheck) {_SC(#name),math_##name,nparams,tycheck}
|
||||
#define _DECL_FUNC(name,nparams,tycheck) {#name,math_##name,nparams,tycheck}
|
||||
static SQRegFunction mathlib_funcs[] = {
|
||||
_DECL_FUNC(sqrt,2,_SC(".n")),
|
||||
_DECL_FUNC(sin,2,_SC(".n")),
|
||||
_DECL_FUNC(cos,2,_SC(".n")),
|
||||
_DECL_FUNC(asin,2,_SC(".n")),
|
||||
_DECL_FUNC(acos,2,_SC(".n")),
|
||||
_DECL_FUNC(log,2,_SC(".n")),
|
||||
_DECL_FUNC(log10,2,_SC(".n")),
|
||||
_DECL_FUNC(tan,2,_SC(".n")),
|
||||
_DECL_FUNC(atan,2,_SC(".n")),
|
||||
_DECL_FUNC(atan2,3,_SC(".nn")),
|
||||
_DECL_FUNC(pow,3,_SC(".nn")),
|
||||
_DECL_FUNC(floor,2,_SC(".n")),
|
||||
_DECL_FUNC(ceil,2,_SC(".n")),
|
||||
_DECL_FUNC(exp,2,_SC(".n")),
|
||||
_DECL_FUNC(sqrt,2,".n"),
|
||||
_DECL_FUNC(sin,2,".n"),
|
||||
_DECL_FUNC(cos,2,".n"),
|
||||
_DECL_FUNC(asin,2,".n"),
|
||||
_DECL_FUNC(acos,2,".n"),
|
||||
_DECL_FUNC(log,2,".n"),
|
||||
_DECL_FUNC(log10,2,".n"),
|
||||
_DECL_FUNC(tan,2,".n"),
|
||||
_DECL_FUNC(atan,2,".n"),
|
||||
_DECL_FUNC(atan2,3,".nn"),
|
||||
_DECL_FUNC(pow,3,".nn"),
|
||||
_DECL_FUNC(floor,2,".n"),
|
||||
_DECL_FUNC(ceil,2,".n"),
|
||||
_DECL_FUNC(exp,2,".n"),
|
||||
#ifdef EXPORT_DEFAULT_SQUIRREL_FUNCTIONS
|
||||
_DECL_FUNC(srand,2,_SC(".n")),
|
||||
_DECL_FUNC(srand,2,".n"),
|
||||
_DECL_FUNC(rand,1,NULL),
|
||||
#endif /* EXPORT_DEFAULT_SQUIRREL_FUNCTIONS */
|
||||
_DECL_FUNC(fabs,2,_SC(".n")),
|
||||
_DECL_FUNC(abs,2,_SC(".n")),
|
||||
_DECL_FUNC(fabs,2,".n"),
|
||||
_DECL_FUNC(abs,2,".n"),
|
||||
{0,0,0,0},
|
||||
};
|
||||
|
||||
@@ -103,11 +107,11 @@ SQRESULT sqstd_register_mathlib(HSQUIRRELVM v)
|
||||
i++;
|
||||
}
|
||||
#ifdef EXPORT_DEFAULT_SQUIRREL_FUNCTIONS
|
||||
sq_pushstring(v,_SC("RAND_MAX"),-1);
|
||||
sq_pushstring(v,"RAND_MAX",-1);
|
||||
sq_pushinteger(v,RAND_MAX);
|
||||
sq_createslot(v,-3);
|
||||
#endif /* EXPORT_DEFAULT_SQUIRREL_FUNCTIONS */
|
||||
sq_pushstring(v,_SC("PI"),-1);
|
||||
sq_pushstring(v,"PI",-1);
|
||||
sq_pushfloat(v,(SQFloat)M_PI);
|
||||
sq_createslot(v,-3);
|
||||
return SQ_OK;
|
||||
|
||||
57
src/3rdparty/squirrel/sqstdlib/sqstdrex.cpp
vendored
57
src/3rdparty/squirrel/sqstdlib/sqstdrex.cpp
vendored
@@ -1,7 +1,5 @@
|
||||
/* see copyright notice in squirrel.h */
|
||||
#include <squirrel.h>
|
||||
#include <string.h>
|
||||
#include <ctype.h>
|
||||
#include <exception>
|
||||
#include "sqstdstring.h"
|
||||
|
||||
@@ -12,14 +10,13 @@
|
||||
#endif
|
||||
|
||||
#ifdef _DEBUG
|
||||
#include <stdio.h>
|
||||
|
||||
static const SQChar *g_nnames[] =
|
||||
{
|
||||
_SC("NONE"),_SC("OP_GREEDY"), _SC("OP_OR"),
|
||||
_SC("OP_EXPR"),_SC("OP_NOCAPEXPR"),_SC("OP_DOT"), _SC("OP_CLASS"),
|
||||
_SC("OP_CCLASS"),_SC("OP_NCLASS"),_SC("OP_RANGE"),_SC("OP_CHAR"),
|
||||
_SC("OP_EOL"),_SC("OP_BOL"),_SC("OP_WB")
|
||||
"NONE","OP_GREEDY", "OP_OR",
|
||||
"OP_EXPR","OP_NOCAPEXPR","OP_DOT", "OP_CLASS",
|
||||
"OP_CCLASS","OP_NCLASS","OP_RANGE","OP_CHAR",
|
||||
"OP_EOL","OP_BOL","OP_WB"
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -99,7 +96,7 @@ static void sqstd_rex_error(SQRex *exp,const SQChar *error)
|
||||
|
||||
static void sqstd_rex_expect(SQRex *exp, SQChar n){
|
||||
if((*exp->_p) != n)
|
||||
sqstd_rex_error(exp, _SC("expected paren"));
|
||||
sqstd_rex_error(exp, "expected paren");
|
||||
exp->_p++;
|
||||
}
|
||||
|
||||
@@ -115,7 +112,7 @@ static SQChar sqstd_rex_escapechar(SQRex *exp)
|
||||
case 'f': exp->_p++; return '\f';
|
||||
default: return (*exp->_p++);
|
||||
}
|
||||
} else if(!scisprint(*exp->_p)) sqstd_rex_error(exp,_SC("letter expected"));
|
||||
} else if(!scisprint(*exp->_p)) sqstd_rex_error(exp,"letter expected");
|
||||
return (*exp->_p++);
|
||||
}
|
||||
|
||||
@@ -159,7 +156,7 @@ static SQInteger sqstd_rex_charnode(SQRex *exp,SQBool isclass)
|
||||
}
|
||||
else if(!scisprint(*exp->_p)) {
|
||||
|
||||
sqstd_rex_error(exp,_SC("letter expected"));
|
||||
sqstd_rex_error(exp,"letter expected");
|
||||
}
|
||||
t = *exp->_p; exp->_p++;
|
||||
return sqstd_rex_newnode(exp,t);
|
||||
@@ -173,15 +170,15 @@ static SQInteger sqstd_rex_class(SQRex *exp)
|
||||
exp->_p++;
|
||||
}else ret = sqstd_rex_newnode(exp,OP_CLASS);
|
||||
|
||||
if(*exp->_p == ']') sqstd_rex_error(exp,_SC("empty class"));
|
||||
if(*exp->_p == ']') sqstd_rex_error(exp,"empty class");
|
||||
chain = ret;
|
||||
while(*exp->_p != ']' && exp->_p != exp->_eol) {
|
||||
if(*exp->_p == '-' && first != -1){
|
||||
SQInteger r;
|
||||
if(*exp->_p++ == ']') sqstd_rex_error(exp,_SC("unfinished range"));
|
||||
if(*exp->_p++ == ']') sqstd_rex_error(exp,"unfinished range");
|
||||
r = sqstd_rex_newnode(exp,OP_RANGE);
|
||||
if(exp->_nodes[first].type>*exp->_p) sqstd_rex_error(exp,_SC("invalid range"));
|
||||
if(exp->_nodes[first].type == OP_CCLASS) sqstd_rex_error(exp,_SC("cannot use character classes in ranges"));
|
||||
if(exp->_nodes[first].type>*exp->_p) sqstd_rex_error(exp,"invalid range");
|
||||
if(exp->_nodes[first].type == OP_CCLASS) sqstd_rex_error(exp,"cannot use character classes in ranges");
|
||||
exp->_nodes[r].left = exp->_nodes[first].type;
|
||||
SQInteger t = sqstd_rex_escapechar(exp);
|
||||
exp->_nodes[r].right = t;
|
||||
@@ -220,7 +217,7 @@ static SQInteger sqstd_rex_parsenumber(SQRex *exp)
|
||||
exp->_p++;
|
||||
while(isdigit(*exp->_p)) {
|
||||
ret = ret*10+(*exp->_p++-'0');
|
||||
if(positions==1000000000) sqstd_rex_error(exp,_SC("overflow in numeric constant"));
|
||||
if(positions==1000000000) sqstd_rex_error(exp,"overflow in numeric constant");
|
||||
positions *= 10;
|
||||
};
|
||||
return ret;
|
||||
@@ -238,7 +235,7 @@ static SQInteger sqstd_rex_element(SQRex *exp)
|
||||
|
||||
if(*exp->_p =='?') {
|
||||
exp->_p++;
|
||||
sqstd_rex_expect(exp,_SC(':'));
|
||||
sqstd_rex_expect(exp,':');
|
||||
expr = sqstd_rex_newnode(exp,OP_NOCAPEXPR);
|
||||
}
|
||||
else
|
||||
@@ -246,13 +243,13 @@ static SQInteger sqstd_rex_element(SQRex *exp)
|
||||
SQInteger newn = sqstd_rex_list(exp);
|
||||
exp->_nodes[expr].left = newn;
|
||||
ret = expr;
|
||||
sqstd_rex_expect(exp,_SC(')'));
|
||||
sqstd_rex_expect(exp,')');
|
||||
}
|
||||
break;
|
||||
case '[':
|
||||
exp->_p++;
|
||||
ret = sqstd_rex_class(exp);
|
||||
sqstd_rex_expect(exp,_SC(']'));
|
||||
sqstd_rex_expect(exp,']');
|
||||
break;
|
||||
case SQREX_SYMBOL_END_OF_STRING: exp->_p++; ret = sqstd_rex_newnode(exp,OP_EOL);break;
|
||||
case SQREX_SYMBOL_ANY_CHAR: exp->_p++; ret = sqstd_rex_newnode(exp,OP_DOT);break;
|
||||
@@ -271,7 +268,7 @@ static SQInteger sqstd_rex_element(SQRex *exp)
|
||||
case SQREX_SYMBOL_GREEDY_ZERO_OR_ONE: p0 = 0; p1 = 1; exp->_p++; isgreedy = SQTrue; break;
|
||||
case '{':
|
||||
exp->_p++;
|
||||
if(!isdigit(*exp->_p)) sqstd_rex_error(exp,_SC("number expected"));
|
||||
if(!isdigit(*exp->_p)) sqstd_rex_error(exp,"number expected");
|
||||
p0 = (unsigned short)sqstd_rex_parsenumber(exp);
|
||||
/*******************************/
|
||||
switch(*exp->_p) {
|
||||
@@ -284,10 +281,10 @@ static SQInteger sqstd_rex_element(SQRex *exp)
|
||||
if(isdigit(*exp->_p)){
|
||||
p1 = (unsigned short)sqstd_rex_parsenumber(exp);
|
||||
}
|
||||
sqstd_rex_expect(exp,_SC('}'));
|
||||
sqstd_rex_expect(exp,'}');
|
||||
break;
|
||||
default:
|
||||
sqstd_rex_error(exp,_SC(", or } expected"));
|
||||
sqstd_rex_error(exp,", or } expected");
|
||||
}
|
||||
/*******************************/
|
||||
isgreedy = SQTrue;
|
||||
@@ -526,7 +523,7 @@ SQRex *sqstd_rex_compile(const SQChar *pattern,const SQChar **error)
|
||||
SQRex *exp = (SQRex *)sq_malloc(sizeof(SQRex));
|
||||
exp->_eol = exp->_bol = NULL;
|
||||
exp->_p = pattern;
|
||||
exp->_nallocated = (SQInteger)scstrlen(pattern) * sizeof(SQChar);
|
||||
exp->_nallocated = (SQInteger)strlen(pattern) * sizeof(SQChar);
|
||||
exp->_nodes = (SQRexNode *)sq_malloc(exp->_nallocated * sizeof(SQRexNode));
|
||||
exp->_nsize = 0;
|
||||
exp->_matches = 0;
|
||||
@@ -537,23 +534,23 @@ SQRex *sqstd_rex_compile(const SQChar *pattern,const SQChar **error)
|
||||
SQInteger res = sqstd_rex_list(exp);
|
||||
exp->_nodes[exp->_first].left = res;
|
||||
if(*exp->_p!='\0')
|
||||
sqstd_rex_error(exp,_SC("unexpected character"));
|
||||
sqstd_rex_error(exp,"unexpected character");
|
||||
#ifdef _DEBUG
|
||||
{
|
||||
SQInteger nsize,i;
|
||||
SQRexNode *t;
|
||||
nsize = exp->_nsize;
|
||||
t = &exp->_nodes[0];
|
||||
scprintf(_SC("\n"));
|
||||
printf("\n");
|
||||
/* XXX -- The (int) casts are needed to silent warnings on 64bit systems (SQInteger is 64bit, %d assumes 32bit, (int) is 32bit) */
|
||||
for(i = 0;i < nsize; i++) {
|
||||
if(exp->_nodes[i].type>MAX_CHAR)
|
||||
scprintf(_SC("[%02d] %10s "),(int)i,g_nnames[exp->_nodes[i].type-MAX_CHAR]);
|
||||
printf("[%02d] %10s ",(int)i,g_nnames[exp->_nodes[i].type-MAX_CHAR]);
|
||||
else
|
||||
scprintf(_SC("[%02d] %10c "),(int)i,exp->_nodes[i].type);
|
||||
scprintf(_SC("left %02d right %02d next %02d\n"),(int)exp->_nodes[i].left,(int)exp->_nodes[i].right,(int)exp->_nodes[i].next);
|
||||
printf("[%02d] %10c ",(int)i,exp->_nodes[i].type);
|
||||
printf("left %02d right %02d next %02d\n",(int)exp->_nodes[i].left,(int)exp->_nodes[i].right,(int)exp->_nodes[i].next);
|
||||
}
|
||||
scprintf(_SC("\n"));
|
||||
printf("\n");
|
||||
}
|
||||
#endif
|
||||
exp->_matches = (SQRexMatch *) sq_malloc(exp->_nsubexpr * sizeof(SQRexMatch));
|
||||
@@ -579,7 +576,7 @@ SQBool sqstd_rex_match(SQRex* exp,const SQChar* text)
|
||||
{
|
||||
const SQChar* res = NULL;
|
||||
exp->_bol = text;
|
||||
exp->_eol = text + scstrlen(text);
|
||||
exp->_eol = text + strlen(text);
|
||||
exp->_currsubexp = 0;
|
||||
res = sqstd_rex_matchnode(exp,exp->_nodes,text,NULL);
|
||||
if(res == NULL || res != exp->_eol)
|
||||
@@ -618,7 +615,7 @@ SQBool sqstd_rex_searchrange(SQRex* exp,const SQChar* text_begin,const SQChar* t
|
||||
|
||||
SQBool sqstd_rex_search(SQRex* exp,const SQChar* text, const SQChar** out_begin, const SQChar** out_end)
|
||||
{
|
||||
return sqstd_rex_searchrange(exp,text,text + scstrlen(text),out_begin,out_end);
|
||||
return sqstd_rex_searchrange(exp,text,text + strlen(text),out_begin,out_end);
|
||||
}
|
||||
|
||||
SQInteger sqstd_rex_getsubexpcount(SQRex* exp)
|
||||
|
||||
79
src/3rdparty/squirrel/sqstdlib/sqstdstring.cpp
vendored
79
src/3rdparty/squirrel/sqstdlib/sqstdstring.cpp
vendored
@@ -1,22 +1,11 @@
|
||||
/* see copyright notice in squirrel.h */
|
||||
#include <squirrel.h>
|
||||
#include <sqstdstring.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <ctype.h>
|
||||
#include <assert.h>
|
||||
#include <stdarg.h>
|
||||
|
||||
#ifdef SQUNICODE
|
||||
#define scstrchr wcschr
|
||||
#define scatoi _wtoi
|
||||
#define scstrtok wcstok
|
||||
#else
|
||||
#define scstrchr strchr
|
||||
#define scatoi atoi
|
||||
#define scstrtok strtok
|
||||
#endif
|
||||
#define MAX_FORMAT_LEN 20
|
||||
#define MAX_WFORMAT_LEN 3
|
||||
#define ADDITIONAL_FORMAT_SPACE (100*sizeof(SQChar))
|
||||
@@ -27,17 +16,17 @@ static SQInteger validate_format(HSQUIRRELVM v, SQChar *fmt, const SQChar *src,
|
||||
SQInteger wc = 0;
|
||||
SQInteger start = n;
|
||||
fmt[0] = '%';
|
||||
while (scstrchr(_SC("-+ #0"), src[n])) n++;
|
||||
while (scisdigit(src[n])) {
|
||||
while (scstrchr("-+ #0", src[n])) n++;
|
||||
while (isdigit(src[n])) {
|
||||
swidth[wc] = src[n];
|
||||
n++;
|
||||
wc++;
|
||||
if(wc>=MAX_WFORMAT_LEN)
|
||||
return sq_throwerror(v,_SC("width format too long"));
|
||||
return sq_throwerror(v,"width format too long");
|
||||
}
|
||||
swidth[wc] = '\0';
|
||||
if(wc > 0) {
|
||||
width = scatoi(swidth);
|
||||
width = atoi(swidth);
|
||||
}
|
||||
else
|
||||
width = 0;
|
||||
@@ -45,20 +34,20 @@ static SQInteger validate_format(HSQUIRRELVM v, SQChar *fmt, const SQChar *src,
|
||||
n++;
|
||||
|
||||
wc = 0;
|
||||
while (scisdigit(src[n])) {
|
||||
while (isdigit(src[n])) {
|
||||
swidth[wc] = src[n];
|
||||
n++;
|
||||
wc++;
|
||||
if(wc>=MAX_WFORMAT_LEN)
|
||||
return sq_throwerror(v,_SC("precision format too long"));
|
||||
return sq_throwerror(v,"precision format too long");
|
||||
}
|
||||
swidth[wc] = '\0';
|
||||
if(wc > 0) {
|
||||
width += scatoi(swidth);
|
||||
width += atoi(swidth);
|
||||
}
|
||||
}
|
||||
if (n-start > MAX_FORMAT_LEN )
|
||||
return sq_throwerror(v,_SC("format too long"));
|
||||
return sq_throwerror(v,"format too long");
|
||||
memcpy(&fmt[1],&src[start],((n-start)+1)*sizeof(SQChar));
|
||||
fmt[(n-start)+2] = '\0';
|
||||
return n;
|
||||
@@ -75,7 +64,7 @@ static void _append_string(SQInteger &i, SQChar *dest, SQInteger allocated, cons
|
||||
{
|
||||
va_list va;
|
||||
va_start(va, fmt);
|
||||
i += scvsnprintf(&dest[i],allocated-i,fmt,va);
|
||||
i += vsnprintf(&dest[i],allocated-i,fmt,va);
|
||||
va_end(va);
|
||||
}
|
||||
|
||||
@@ -102,7 +91,7 @@ SQRESULT sqstd_format(HSQUIRRELVM v,SQInteger nformatstringidx,SQInteger *outlen
|
||||
else {
|
||||
n++;
|
||||
if( nparam > sq_gettop(v) )
|
||||
return sq_throwerror(v,_SC("not enough paramters for the given format string"));
|
||||
return sq_throwerror(v,"not enough paramters for the given format string");
|
||||
n = validate_format(v,fmt,format,n,w);
|
||||
if(n < 0) return -1;
|
||||
SQInteger addlen = 0;
|
||||
@@ -113,24 +102,24 @@ SQRESULT sqstd_format(HSQUIRRELVM v,SQInteger nformatstringidx,SQInteger *outlen
|
||||
switch(format[n]) {
|
||||
case 's':
|
||||
if(SQ_FAILED(sq_getstring(v,nparam,&ts)))
|
||||
return sq_throwerror(v,_SC("string expected for the specified format"));
|
||||
return sq_throwerror(v,"string expected for the specified format");
|
||||
addlen = (sq_getsize(v,nparam)*sizeof(SQChar))+((w+1)*sizeof(SQChar));
|
||||
valtype = 's';
|
||||
break;
|
||||
case 'i': case 'd': case 'c':case 'o': case 'u': case 'x': case 'X':
|
||||
if(SQ_FAILED(sq_getinteger(v,nparam,&ti)))
|
||||
return sq_throwerror(v,_SC("integer expected for the specified format"));
|
||||
return sq_throwerror(v,"integer expected for the specified format");
|
||||
addlen = (ADDITIONAL_FORMAT_SPACE)+((w+1)*sizeof(SQChar));
|
||||
valtype = 'i';
|
||||
break;
|
||||
case 'f': case 'g': case 'G': case 'e': case 'E':
|
||||
if(SQ_FAILED(sq_getfloat(v,nparam,&tf)))
|
||||
return sq_throwerror(v,_SC("float expected for the specified format"));
|
||||
return sq_throwerror(v,"float expected for the specified format");
|
||||
addlen = (ADDITIONAL_FORMAT_SPACE)+((w+1)*sizeof(SQChar));
|
||||
valtype = 'f';
|
||||
break;
|
||||
default:
|
||||
return sq_throwerror(v,_SC("invalid format"));
|
||||
return sq_throwerror(v,"invalid format");
|
||||
}
|
||||
n++;
|
||||
allocated += addlen + sizeof(SQChar);
|
||||
@@ -162,7 +151,7 @@ static SQInteger _string_format(HSQUIRRELVM v)
|
||||
static void __strip_l(const SQChar *str,const SQChar **start)
|
||||
{
|
||||
const SQChar *t = str;
|
||||
while(((*t) != '\0') && scisspace(*t)){ t++; }
|
||||
while(((*t) != '\0') && isspace(*t)){ t++; }
|
||||
*start = t;
|
||||
}
|
||||
|
||||
@@ -173,7 +162,7 @@ static void __strip_r(const SQChar *str,SQInteger len,const SQChar **end)
|
||||
return;
|
||||
}
|
||||
const SQChar *t = &str[len-1];
|
||||
while(t != str && scisspace(*t)) { t--; }
|
||||
while(t != str && isspace(*t)) { t--; }
|
||||
*end = t+1;
|
||||
}
|
||||
|
||||
@@ -213,7 +202,7 @@ static SQInteger _string_split(HSQUIRRELVM v)
|
||||
SQChar *stemp,*tok;
|
||||
sq_getstring(v,2,&str);
|
||||
sq_getstring(v,3,&seps);
|
||||
if(sq_getsize(v,3) == 0) return sq_throwerror(v,_SC("empty separators string"));
|
||||
if(sq_getsize(v,3) == 0) return sq_throwerror(v,"empty separators string");
|
||||
SQInteger memsize = (sq_getsize(v,2)+1)*sizeof(SQChar);
|
||||
stemp = sq_getscratchpad(v,memsize);
|
||||
memcpy(stemp,str,memsize);
|
||||
@@ -255,10 +244,10 @@ static SQInteger _regexp_match(HSQUIRRELVM v)
|
||||
static void _addrexmatch(HSQUIRRELVM v,const SQChar *str,const SQChar *begin,const SQChar *end)
|
||||
{
|
||||
sq_newtable(v);
|
||||
sq_pushstring(v,_SC("begin"),-1);
|
||||
sq_pushstring(v,"begin",-1);
|
||||
sq_pushinteger(v,begin - str);
|
||||
sq_rawset(v,-3);
|
||||
sq_pushstring(v,_SC("end"),-1);
|
||||
sq_pushstring(v,"end",-1);
|
||||
sq_pushinteger(v,end - str);
|
||||
sq_rawset(v,-3);
|
||||
}
|
||||
@@ -321,35 +310,35 @@ static SQInteger _regexp_constructor(HSQUIRRELVM v)
|
||||
|
||||
static SQInteger _regexp__typeof(HSQUIRRELVM v)
|
||||
{
|
||||
sq_pushstring(v,_SC("regexp"),-1);
|
||||
sq_pushstring(v,"regexp",-1);
|
||||
return 1;
|
||||
}
|
||||
|
||||
#define _DECL_REX_FUNC(name,nparams,pmask) {_SC(#name),_regexp_##name,nparams,pmask}
|
||||
#define _DECL_REX_FUNC(name,nparams,pmask) {#name,_regexp_##name,nparams,pmask}
|
||||
static SQRegFunction rexobj_funcs[]={
|
||||
_DECL_REX_FUNC(constructor,2,_SC(".s")),
|
||||
_DECL_REX_FUNC(search,-2,_SC("xsn")),
|
||||
_DECL_REX_FUNC(match,2,_SC("xs")),
|
||||
_DECL_REX_FUNC(capture,-2,_SC("xsn")),
|
||||
_DECL_REX_FUNC(subexpcount,1,_SC("x")),
|
||||
_DECL_REX_FUNC(_typeof,1,_SC("x")),
|
||||
_DECL_REX_FUNC(constructor,2,".s"),
|
||||
_DECL_REX_FUNC(search,-2,"xsn"),
|
||||
_DECL_REX_FUNC(match,2,"xs"),
|
||||
_DECL_REX_FUNC(capture,-2,"xsn"),
|
||||
_DECL_REX_FUNC(subexpcount,1,"x"),
|
||||
_DECL_REX_FUNC(_typeof,1,"x"),
|
||||
{0,0,0,0}
|
||||
};
|
||||
|
||||
#define _DECL_FUNC(name,nparams,pmask) {_SC(#name),_string_##name,nparams,pmask}
|
||||
#define _DECL_FUNC(name,nparams,pmask) {#name,_string_##name,nparams,pmask}
|
||||
static SQRegFunction stringlib_funcs[]={
|
||||
_DECL_FUNC(format,-2,_SC(".s")),
|
||||
_DECL_FUNC(strip,2,_SC(".s")),
|
||||
_DECL_FUNC(lstrip,2,_SC(".s")),
|
||||
_DECL_FUNC(rstrip,2,_SC(".s")),
|
||||
_DECL_FUNC(split,3,_SC(".ss")),
|
||||
_DECL_FUNC(format,-2,".s"),
|
||||
_DECL_FUNC(strip,2,".s"),
|
||||
_DECL_FUNC(lstrip,2,".s"),
|
||||
_DECL_FUNC(rstrip,2,".s"),
|
||||
_DECL_FUNC(split,3,".ss"),
|
||||
{0,0,0,0}
|
||||
};
|
||||
|
||||
|
||||
SQInteger sqstd_register_stringlib(HSQUIRRELVM v)
|
||||
{
|
||||
sq_pushstring(v,_SC("regexp"),-1);
|
||||
sq_pushstring(v,"regexp",-1);
|
||||
sq_newclass(v,SQFalse);
|
||||
SQInteger i = 0;
|
||||
while(rexobj_funcs[i].name != 0) {
|
||||
|
||||
139
src/3rdparty/squirrel/squirrel/sqapi.cpp
vendored
139
src/3rdparty/squirrel/squirrel/sqapi.cpp
vendored
@@ -1,6 +1,9 @@
|
||||
/*
|
||||
see copyright notice in squirrel.h
|
||||
*/
|
||||
* see copyright notice in squirrel.h
|
||||
*/
|
||||
|
||||
#include "../../../stdafx.h"
|
||||
|
||||
#include <squirrel.h>
|
||||
#include "sqpcheader.h"
|
||||
#include "sqvm.h"
|
||||
@@ -14,12 +17,16 @@
|
||||
#include "sqfuncstate.h"
|
||||
#include "sqclass.h"
|
||||
|
||||
#include "../../../string_func.h"
|
||||
|
||||
#include "../../../safeguards.h"
|
||||
|
||||
bool sq_aux_gettypedarg(HSQUIRRELVM v,SQInteger idx,SQObjectType type,SQObjectPtr **o)
|
||||
{
|
||||
*o = &stack_get(v,idx);
|
||||
if(type(**o) != type){
|
||||
SQObjectPtr oval = v->PrintObjVal(**o);
|
||||
v->Raise_Error(_SC("wrong argument type, expected '%s' got '%.50s'"),IdType2Name(type),_stringval(oval));
|
||||
v->Raise_Error("wrong argument type, expected '%s' got '%.50s'",IdType2Name(type),_stringval(oval));
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
@@ -29,7 +36,7 @@ bool sq_aux_gettypedarg(HSQUIRRELVM v,SQInteger idx,SQObjectType type,SQObjectPt
|
||||
|
||||
#define sq_aux_paramscheck(v,count) \
|
||||
{ \
|
||||
if(sq_gettop(v) < count){ v->Raise_Error(_SC("not enough params in the stack")); return SQ_ERROR; }\
|
||||
if(sq_gettop(v) < count){ v->Raise_Error("not enough params in the stack"); return SQ_ERROR; }\
|
||||
}
|
||||
|
||||
SQInteger sq_aux_throwobject(HSQUIRRELVM v,SQObjectPtr &e)
|
||||
@@ -40,8 +47,9 @@ SQInteger sq_aux_throwobject(HSQUIRRELVM v,SQObjectPtr &e)
|
||||
|
||||
SQInteger sq_aux_invalidtype(HSQUIRRELVM v,SQObjectType type)
|
||||
{
|
||||
scsprintf(_ss(v)->GetScratchPad(100), _SC("unexpected type %s"), IdType2Name(type));
|
||||
return sq_throwerror(v, _ss(v)->GetScratchPad(-1));
|
||||
char buf[100];
|
||||
seprintf(buf, lastof(buf), "unexpected type %s", IdType2Name(type));
|
||||
return sq_throwerror(v, buf);
|
||||
}
|
||||
|
||||
HSQUIRRELVM sq_open(SQInteger initialstacksize)
|
||||
@@ -49,7 +57,6 @@ HSQUIRRELVM sq_open(SQInteger initialstacksize)
|
||||
SQSharedState *ss;
|
||||
SQVM *v;
|
||||
sq_new(ss, SQSharedState);
|
||||
ss->Init();
|
||||
v = (SQVM *)SQ_MALLOC(sizeof(SQVM));
|
||||
new (v) SQVM(ss);
|
||||
ss->_root_vm = v;
|
||||
@@ -253,7 +260,7 @@ SQRESULT sq_newclass(HSQUIRRELVM v,SQBool hasbase)
|
||||
if(hasbase) {
|
||||
SQObjectPtr &base = stack_get(v,-1);
|
||||
if(type(base) != OT_CLASS)
|
||||
return sq_throwerror(v,_SC("invalid base type"));
|
||||
return sq_throwerror(v,"invalid base type");
|
||||
baseclass = _class(base);
|
||||
}
|
||||
SQClass *newclass = SQClass::Create(_ss(v), baseclass);
|
||||
@@ -267,7 +274,7 @@ SQBool sq_instanceof(HSQUIRRELVM v)
|
||||
SQObjectPtr &inst = stack_get(v,-1);
|
||||
SQObjectPtr &cl = stack_get(v,-2);
|
||||
if(type(inst) != OT_INSTANCE || type(cl) != OT_CLASS)
|
||||
return sq_throwerror(v,_SC("invalid param type"));
|
||||
return sq_throwerror(v,"invalid param type");
|
||||
return _instance(inst)->InstanceOf(_class(cl))?SQTrue:SQFalse;
|
||||
}
|
||||
|
||||
@@ -291,7 +298,7 @@ SQRESULT sq_arraypop(HSQUIRRELVM v,SQInteger idx,SQBool pushval)
|
||||
_array(*arr)->Pop();
|
||||
return SQ_OK;
|
||||
}
|
||||
return sq_throwerror(v, _SC("empty array"));
|
||||
return sq_throwerror(v, "empty array");
|
||||
}
|
||||
|
||||
SQRESULT sq_arrayresize(HSQUIRRELVM v,SQInteger idx,SQInteger newsize)
|
||||
@@ -303,7 +310,7 @@ SQRESULT sq_arrayresize(HSQUIRRELVM v,SQInteger idx,SQInteger newsize)
|
||||
_array(*arr)->Resize(newsize);
|
||||
return SQ_OK;
|
||||
}
|
||||
return sq_throwerror(v,_SC("negative size"));
|
||||
return sq_throwerror(v,"negative size");
|
||||
}
|
||||
|
||||
|
||||
@@ -332,7 +339,7 @@ SQRESULT sq_arrayremove(HSQUIRRELVM v,SQInteger idx,SQInteger itemidx)
|
||||
sq_aux_paramscheck(v, 1);
|
||||
SQObjectPtr *arr;
|
||||
_GETSAFE_OBJ(v, idx, OT_ARRAY,arr);
|
||||
return _array(*arr)->Remove(itemidx) ? SQ_OK : sq_throwerror(v,_SC("index out of range"));
|
||||
return _array(*arr)->Remove(itemidx) ? SQ_OK : sq_throwerror(v,"index out of range");
|
||||
}
|
||||
|
||||
SQRESULT sq_arrayinsert(HSQUIRRELVM v,SQInteger idx,SQInteger destpos)
|
||||
@@ -340,7 +347,7 @@ SQRESULT sq_arrayinsert(HSQUIRRELVM v,SQInteger idx,SQInteger destpos)
|
||||
sq_aux_paramscheck(v, 1);
|
||||
SQObjectPtr *arr;
|
||||
_GETSAFE_OBJ(v, idx, OT_ARRAY,arr);
|
||||
SQRESULT ret = _array(*arr)->Insert(destpos, v->GetUp(-1)) ? SQ_OK : sq_throwerror(v,_SC("index out of range"));
|
||||
SQRESULT ret = _array(*arr)->Insert(destpos, v->GetUp(-1)) ? SQ_OK : sq_throwerror(v,"index out of range");
|
||||
v->Pop();
|
||||
return ret;
|
||||
}
|
||||
@@ -349,7 +356,6 @@ SQRESULT sq_arrayinsert(HSQUIRRELVM v,SQInteger idx,SQInteger destpos)
|
||||
void sq_newclosure(HSQUIRRELVM v,SQFUNCTION func,SQUnsignedInteger nfreevars)
|
||||
{
|
||||
SQNativeClosure *nc = SQNativeClosure::Create(_ss(v), func);
|
||||
nc->_nparamscheck = 0;
|
||||
for(SQUnsignedInteger i = 0; i < nfreevars; i++) {
|
||||
nc->_outervalues.push_back(v->Top());
|
||||
v->Pop();
|
||||
@@ -367,7 +373,7 @@ SQRESULT sq_getclosureinfo(HSQUIRRELVM v,SQInteger idx,SQUnsignedInteger *nparam
|
||||
*nfreevars = (SQUnsignedInteger)c->_outervalues.size();
|
||||
return SQ_OK;
|
||||
}
|
||||
return sq_throwerror(v,_SC("the object is not a closure"));
|
||||
return sq_throwerror(v,"the object is not a closure");
|
||||
}
|
||||
|
||||
SQRESULT sq_setnativeclosurename(HSQUIRRELVM v,SQInteger idx,const SQChar *name)
|
||||
@@ -378,20 +384,20 @@ SQRESULT sq_setnativeclosurename(HSQUIRRELVM v,SQInteger idx,const SQChar *name)
|
||||
nc->_name = SQString::Create(_ss(v),name);
|
||||
return SQ_OK;
|
||||
}
|
||||
return sq_throwerror(v,_SC("the object is not a nativeclosure"));
|
||||
return sq_throwerror(v,"the object is not a nativeclosure");
|
||||
}
|
||||
|
||||
SQRESULT sq_setparamscheck(HSQUIRRELVM v,SQInteger nparamscheck,const SQChar *typemask)
|
||||
{
|
||||
SQObject o = stack_get(v, -1);
|
||||
if(!sq_isnativeclosure(o))
|
||||
return sq_throwerror(v, _SC("native closure expected"));
|
||||
return sq_throwerror(v, "native closure expected");
|
||||
SQNativeClosure *nc = _nativeclosure(o);
|
||||
nc->_nparamscheck = nparamscheck;
|
||||
if(typemask) {
|
||||
SQIntVec res;
|
||||
if(!CompileTypemask(res, typemask))
|
||||
return sq_throwerror(v, _SC("invalid typemask"));
|
||||
return sq_throwerror(v, "invalid typemask");
|
||||
nc->_typecheck.copy(res);
|
||||
}
|
||||
else {
|
||||
@@ -408,12 +414,12 @@ SQRESULT sq_bindenv(HSQUIRRELVM v,SQInteger idx)
|
||||
SQObjectPtr &o = stack_get(v,idx);
|
||||
if(!sq_isnativeclosure(o) &&
|
||||
!sq_isclosure(o))
|
||||
return sq_throwerror(v,_SC("the target is not a closure"));
|
||||
return sq_throwerror(v,"the target is not a closure");
|
||||
SQObjectPtr &env = stack_get(v,-1);
|
||||
if(!sq_istable(env) &&
|
||||
!sq_isclass(env) &&
|
||||
!sq_isinstance(env))
|
||||
return sq_throwerror(v,_SC("invalid environment"));
|
||||
return sq_throwerror(v,"invalid environment");
|
||||
SQObjectPtr w = _refcounted(env)->GetWeakRef(type(env));
|
||||
SQObjectPtr ret;
|
||||
if(sq_isclosure(o)) {
|
||||
@@ -438,7 +444,7 @@ SQRESULT sq_clear(HSQUIRRELVM v,SQInteger idx)
|
||||
case OT_TABLE: _table(o)->Clear(); break;
|
||||
case OT_ARRAY: _array(o)->Resize(0); break;
|
||||
default:
|
||||
return sq_throwerror(v, _SC("clear only works on table and array"));
|
||||
return sq_throwerror(v, "clear only works on table and array");
|
||||
break;
|
||||
|
||||
}
|
||||
@@ -468,7 +474,7 @@ SQRESULT sq_setroottable(HSQUIRRELVM v)
|
||||
v->Pop();
|
||||
return SQ_OK;
|
||||
}
|
||||
return sq_throwerror(v, _SC("ivalid type"));
|
||||
return sq_throwerror(v, "ivalid type");
|
||||
}
|
||||
|
||||
SQRESULT sq_setconsttable(HSQUIRRELVM v)
|
||||
@@ -479,7 +485,7 @@ SQRESULT sq_setconsttable(HSQUIRRELVM v)
|
||||
v->Pop();
|
||||
return SQ_OK;
|
||||
}
|
||||
return sq_throwerror(v, _SC("ivalid type, expected table"));
|
||||
return sq_throwerror(v, "ivalid type, expected table");
|
||||
}
|
||||
|
||||
void sq_setforeignptr(HSQUIRRELVM v,SQUserPointer p)
|
||||
@@ -605,7 +611,7 @@ SQRESULT sq_settypetag(HSQUIRRELVM v,SQInteger idx,SQUserPointer typetag)
|
||||
switch(type(o)) {
|
||||
case OT_USERDATA: _userdata(o)->_typetag = typetag; break;
|
||||
case OT_CLASS: _class(o)->_typetag = typetag; break;
|
||||
default: return sq_throwerror(v,_SC("invalid object type"));
|
||||
default: return sq_throwerror(v,"invalid object type");
|
||||
}
|
||||
return SQ_OK;
|
||||
}
|
||||
@@ -625,7 +631,7 @@ SQRESULT sq_gettypetag(HSQUIRRELVM v,SQInteger idx,SQUserPointer *typetag)
|
||||
{
|
||||
SQObjectPtr &o = stack_get(v,idx);
|
||||
if(SQ_FAILED(sq_getobjtypetag(&o,typetag)))
|
||||
return sq_throwerror(v,_SC("invalid object type"));
|
||||
return sq_throwerror(v,"invalid object type");
|
||||
return SQ_OK;
|
||||
}
|
||||
|
||||
@@ -640,7 +646,7 @@ SQRESULT sq_getuserpointer(HSQUIRRELVM v, SQInteger idx, SQUserPointer *p)
|
||||
SQRESULT sq_setinstanceup(HSQUIRRELVM v, SQInteger idx, SQUserPointer p)
|
||||
{
|
||||
SQObjectPtr &o = stack_get(v,idx);
|
||||
if(type(o) != OT_INSTANCE) return sq_throwerror(v,_SC("the object is not a class instance"));
|
||||
if(type(o) != OT_INSTANCE) return sq_throwerror(v,"the object is not a class instance");
|
||||
_instance(o)->_userpointer = p;
|
||||
return SQ_OK;
|
||||
}
|
||||
@@ -648,8 +654,8 @@ SQRESULT sq_setinstanceup(HSQUIRRELVM v, SQInteger idx, SQUserPointer p)
|
||||
SQRESULT sq_setclassudsize(HSQUIRRELVM v, SQInteger idx, SQInteger udsize)
|
||||
{
|
||||
SQObjectPtr &o = stack_get(v,idx);
|
||||
if(type(o) != OT_CLASS) return sq_throwerror(v,_SC("the object is not a class"));
|
||||
if(_class(o)->_locked) return sq_throwerror(v,_SC("the class is locked"));
|
||||
if(type(o) != OT_CLASS) return sq_throwerror(v,"the object is not a class");
|
||||
if(_class(o)->_locked) return sq_throwerror(v,"the class is locked");
|
||||
_class(o)->_udsize = udsize;
|
||||
return SQ_OK;
|
||||
}
|
||||
@@ -658,7 +664,7 @@ SQRESULT sq_setclassudsize(HSQUIRRELVM v, SQInteger idx, SQInteger udsize)
|
||||
SQRESULT sq_getinstanceup(HSQUIRRELVM v, SQInteger idx, SQUserPointer *p,SQUserPointer typetag)
|
||||
{
|
||||
SQObjectPtr &o = stack_get(v,idx);
|
||||
if(type(o) != OT_INSTANCE) return sq_throwerror(v,_SC("the object is not a class instance"));
|
||||
if(type(o) != OT_INSTANCE) return sq_throwerror(v,"the object is not a class instance");
|
||||
(*p) = _instance(o)->_userpointer;
|
||||
if(typetag != 0) {
|
||||
SQClass *cl = _instance(o)->_class;
|
||||
@@ -667,7 +673,7 @@ SQRESULT sq_getinstanceup(HSQUIRRELVM v, SQInteger idx, SQUserPointer *p,SQUserP
|
||||
return SQ_OK;
|
||||
cl = cl->_base;
|
||||
}while(cl != NULL);
|
||||
return sq_throwerror(v,_SC("invalid type tag"));
|
||||
return sq_throwerror(v,"invalid type tag");
|
||||
}
|
||||
return SQ_OK;
|
||||
}
|
||||
@@ -717,7 +723,7 @@ SQRESULT sq_newslot(HSQUIRRELVM v, SQInteger idx, SQBool bstatic)
|
||||
SQObjectPtr &self = stack_get(v, idx);
|
||||
if(type(self) == OT_TABLE || type(self) == OT_CLASS) {
|
||||
SQObjectPtr &key = v->GetUp(-2);
|
||||
if(type(key) == OT_NULL) return sq_throwerror(v, _SC("null is not a valid key"));
|
||||
if(type(key) == OT_NULL) return sq_throwerror(v, "null is not a valid key");
|
||||
v->NewSlot(self, key, v->GetUp(-1),bstatic?true:false);
|
||||
v->Pop(2);
|
||||
}
|
||||
@@ -730,7 +736,7 @@ SQRESULT sq_deleteslot(HSQUIRRELVM v,SQInteger idx,SQBool pushval)
|
||||
SQObjectPtr *self;
|
||||
_GETSAFE_OBJ(v, idx, OT_TABLE,self);
|
||||
SQObjectPtr &key = v->GetUp(-1);
|
||||
if(type(key) == OT_NULL) return sq_throwerror(v, _SC("null is not a valid key"));
|
||||
if(type(key) == OT_NULL) return sq_throwerror(v, "null is not a valid key");
|
||||
SQObjectPtr res;
|
||||
if(!v->DeleteSlot(*self, key, res)){
|
||||
return SQ_ERROR;
|
||||
@@ -753,7 +759,7 @@ SQRESULT sq_set(HSQUIRRELVM v,SQInteger idx)
|
||||
SQRESULT sq_rawset(HSQUIRRELVM v,SQInteger idx)
|
||||
{
|
||||
SQObjectPtr &self = stack_get(v, idx);
|
||||
if(type(v->GetUp(-2)) == OT_NULL) return sq_throwerror(v, _SC("null key"));
|
||||
if(type(v->GetUp(-2)) == OT_NULL) return sq_throwerror(v, "null key");
|
||||
switch(type(self)) {
|
||||
case OT_TABLE:
|
||||
_table(self)->NewSlot(v->GetUp(-2), v->GetUp(-1));
|
||||
@@ -779,7 +785,7 @@ SQRESULT sq_rawset(HSQUIRRELVM v,SQInteger idx)
|
||||
break;
|
||||
default:
|
||||
v->Pop(2);
|
||||
return sq_throwerror(v, _SC("rawset works only on array/table/class and instance"));
|
||||
return sq_throwerror(v, "rawset works only on array/table/class and instance");
|
||||
}
|
||||
v->Raise_IdxError(v->GetUp(-2));return SQ_ERROR;
|
||||
}
|
||||
@@ -792,7 +798,7 @@ SQRESULT sq_setdelegate(HSQUIRRELVM v,SQInteger idx)
|
||||
switch(type) {
|
||||
case OT_TABLE:
|
||||
if(type(mt) == OT_TABLE) {
|
||||
if(!_table(self)->SetDelegate(_table(mt))) return sq_throwerror(v, _SC("delagate cycle")); v->Pop();}
|
||||
if(!_table(self)->SetDelegate(_table(mt))) return sq_throwerror(v, "delagate cycle"); v->Pop();}
|
||||
else if(type(mt)==OT_NULL) {
|
||||
_table(self)->SetDelegate(NULL); v->Pop(); }
|
||||
else return sq_aux_invalidtype(v,type);
|
||||
@@ -841,7 +847,7 @@ SQRESULT sq_getdelegate(HSQUIRRELVM v,SQInteger idx)
|
||||
}
|
||||
v->Push(SQObjectPtr(_delegable(self)->_delegate));
|
||||
break;
|
||||
default: return sq_throwerror(v,_SC("wrong type")); break;
|
||||
default: return sq_throwerror(v,"wrong type"); break;
|
||||
}
|
||||
return SQ_OK;
|
||||
|
||||
@@ -853,7 +859,7 @@ SQRESULT sq_get(HSQUIRRELVM v,SQInteger idx)
|
||||
if(v->Get(self,v->GetUp(-1),v->GetUp(-1),false,false))
|
||||
return SQ_OK;
|
||||
v->Pop(1);
|
||||
return sq_throwerror(v,_SC("the index doesn't exist"));
|
||||
return sq_throwerror(v,"the index doesn't exist");
|
||||
}
|
||||
|
||||
SQRESULT sq_rawget(HSQUIRRELVM v,SQInteger idx)
|
||||
@@ -878,10 +884,10 @@ SQRESULT sq_rawget(HSQUIRRELVM v,SQInteger idx)
|
||||
break;
|
||||
default:
|
||||
v->Pop(1);
|
||||
return sq_throwerror(v,_SC("rawget works only on array/table/instance and class"));
|
||||
return sq_throwerror(v,"rawget works only on array/table/instance and class");
|
||||
}
|
||||
v->Pop(1);
|
||||
return sq_throwerror(v,_SC("the index doesn't exist"));
|
||||
return sq_throwerror(v,"the index doesn't exist");
|
||||
}
|
||||
|
||||
SQRESULT sq_getstackobj(HSQUIRRELVM v,SQInteger idx,HSQOBJECT *po)
|
||||
@@ -959,7 +965,7 @@ SQRESULT sq_resume(HSQUIRRELVM v,SQBool retval,SQBool raiseerror)
|
||||
v->Pop();
|
||||
return SQ_OK;
|
||||
}
|
||||
return sq_throwerror(v,_SC("only generators can be resumed"));
|
||||
return sq_throwerror(v,"only generators can be resumed");
|
||||
}
|
||||
|
||||
SQRESULT sq_call(HSQUIRRELVM v,SQInteger params,SQBool retval,SQBool raiseerror, int suspend)
|
||||
@@ -981,9 +987,6 @@ SQRESULT sq_call(HSQUIRRELVM v,SQInteger params,SQBool retval,SQBool raiseerror,
|
||||
v->Pop(params);
|
||||
return SQ_ERROR;
|
||||
}
|
||||
if(!v->_suspended)
|
||||
v->Pop(params);
|
||||
return sq_throwerror(v,_SC("call failed"));
|
||||
}
|
||||
|
||||
SQRESULT sq_suspendvm(HSQUIRRELVM v)
|
||||
@@ -995,7 +998,7 @@ SQRESULT sq_wakeupvm(HSQUIRRELVM v,SQBool wakeupret,SQBool retval,SQBool raiseer
|
||||
{
|
||||
SQObjectPtr ret;
|
||||
if(!v->_suspended)
|
||||
return sq_throwerror(v,_SC("cannot resume a vm that is not running any code"));
|
||||
return sq_throwerror(v,"cannot resume a vm that is not running any code");
|
||||
if(wakeupret) {
|
||||
v->GetAt(v->_stackbase+v->_suspended_target)=v->GetUp(-1); //retval
|
||||
v->Pop();
|
||||
@@ -1051,7 +1054,7 @@ SQRESULT sq_writeclosure(HSQUIRRELVM v,SQWRITEFUNC w,SQUserPointer up)
|
||||
_GETSAFE_OBJ(v, -1, OT_CLOSURE,o);
|
||||
unsigned short tag = SQ_BYTECODE_STREAM_TAG;
|
||||
if(w(up,&tag,2) != 2)
|
||||
return sq_throwerror(v,_SC("io error"));
|
||||
return sq_throwerror(v,"io error");
|
||||
if(!_closure(*o)->Save(v,up,w))
|
||||
return SQ_ERROR;
|
||||
return SQ_OK;
|
||||
@@ -1063,9 +1066,9 @@ SQRESULT sq_readclosure(HSQUIRRELVM v,SQREADFUNC r,SQUserPointer up)
|
||||
|
||||
unsigned short tag;
|
||||
if(r(up,&tag,2) != 2)
|
||||
return sq_throwerror(v,_SC("io error"));
|
||||
return sq_throwerror(v,"io error");
|
||||
if(tag != SQ_BYTECODE_STREAM_TAG)
|
||||
return sq_throwerror(v,_SC("invalid stream"));
|
||||
return sq_throwerror(v,"invalid stream");
|
||||
if(!SQClosure::Load(v,up,r,closure))
|
||||
return SQ_ERROR;
|
||||
v->Push(closure);
|
||||
@@ -1110,13 +1113,13 @@ SQRESULT sq_setfreevariable(HSQUIRRELVM v,SQInteger idx,SQUnsignedInteger nval)
|
||||
if(_closure(self)->_outervalues.size()>nval){
|
||||
_closure(self)->_outervalues[nval]=stack_get(v,-1);
|
||||
}
|
||||
else return sq_throwerror(v,_SC("invalid free var index"));
|
||||
else return sq_throwerror(v,"invalid free var index");
|
||||
break;
|
||||
case OT_NATIVECLOSURE:
|
||||
if(_nativeclosure(self)->_outervalues.size()>nval){
|
||||
_nativeclosure(self)->_outervalues[nval]=stack_get(v,-1);
|
||||
}
|
||||
else return sq_throwerror(v,_SC("invalid free var index"));
|
||||
else return sq_throwerror(v,"invalid free var index");
|
||||
break;
|
||||
default:
|
||||
return sq_aux_invalidtype(v,type(self));
|
||||
@@ -1144,7 +1147,7 @@ SQRESULT sq_setattributes(HSQUIRRELVM v,SQInteger idx)
|
||||
v->Push(attrs);
|
||||
return SQ_OK;
|
||||
}
|
||||
return sq_throwerror(v,_SC("wrong index"));
|
||||
return sq_throwerror(v,"wrong index");
|
||||
}
|
||||
|
||||
SQRESULT sq_getattributes(HSQUIRRELVM v,SQInteger idx)
|
||||
@@ -1164,7 +1167,7 @@ SQRESULT sq_getattributes(HSQUIRRELVM v,SQInteger idx)
|
||||
v->Push(attrs);
|
||||
return SQ_OK;
|
||||
}
|
||||
return sq_throwerror(v,_SC("wrong index"));
|
||||
return sq_throwerror(v,"wrong index");
|
||||
}
|
||||
|
||||
SQRESULT sq_getbase(HSQUIRRELVM v,SQInteger idx)
|
||||
@@ -1208,7 +1211,7 @@ SQRESULT sq_getweakrefval(HSQUIRRELVM v,SQInteger idx)
|
||||
{
|
||||
SQObjectPtr &o = stack_get(v,idx);
|
||||
if(type(o) != OT_WEAKREF) {
|
||||
return sq_throwerror(v,_SC("the object must be a weakref"));
|
||||
return sq_throwerror(v,"the object must be a weakref");
|
||||
}
|
||||
v->Push(_weakref(o)->_obj);
|
||||
return SQ_OK;
|
||||
@@ -1228,7 +1231,7 @@ SQRESULT sq_getdefaultdelegate(HSQUIRRELVM v,SQObjectType t)
|
||||
case OT_CLASS: v->Push(ss->_class_default_delegate); break;
|
||||
case OT_INSTANCE: v->Push(ss->_instance_default_delegate); break;
|
||||
case OT_WEAKREF: v->Push(ss->_weakref_default_delegate); break;
|
||||
default: return sq_throwerror(v,_SC("the type doesn't have a default delegate"));
|
||||
default: return sq_throwerror(v,"the type doesn't have a default delegate");
|
||||
}
|
||||
return SQ_OK;
|
||||
}
|
||||
@@ -1237,7 +1240,7 @@ SQRESULT sq_next(HSQUIRRELVM v,SQInteger idx)
|
||||
{
|
||||
SQObjectPtr o=stack_get(v,idx),&refpos = stack_get(v,-1),realkey,val;
|
||||
if(type(o) == OT_GENERATOR) {
|
||||
return sq_throwerror(v,_SC("cannot iterate a generator"));
|
||||
return sq_throwerror(v,"cannot iterate a generator");
|
||||
}
|
||||
int faketojump;
|
||||
if(!v->FOREACH_OP(o,realkey,val,refpos,0,666,faketojump))
|
||||
@@ -1256,12 +1259,30 @@ struct BufState{
|
||||
SQInteger size;
|
||||
};
|
||||
|
||||
SQInteger buf_lexfeed(SQUserPointer file)
|
||||
WChar buf_lexfeed(SQUserPointer file)
|
||||
{
|
||||
BufState *buf=(BufState*)file;
|
||||
if(buf->size<(buf->ptr+1))
|
||||
return 0;
|
||||
return buf->buf[buf->ptr++];
|
||||
/* Convert an UTF-8 character into a WChar */
|
||||
BufState *buf = (BufState *)file;
|
||||
const char *p = &buf->buf[buf->ptr];
|
||||
|
||||
if (buf->size < buf->ptr + 1) return 0;
|
||||
|
||||
/* Read the first character, and get the length based on UTF-8 specs. If invalid, bail out. */
|
||||
uint len = Utf8EncodedCharLen(*p);
|
||||
if (len == 0) {
|
||||
buf->ptr++;
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Read the remaining bits. */
|
||||
if (buf->size < buf->ptr + len) return 0;
|
||||
buf->ptr += len;
|
||||
|
||||
/* Convert the character, and when definitely invalid, bail out as well. */
|
||||
WChar c;
|
||||
if (Utf8Decode(&c, p) != len) return -1;
|
||||
|
||||
return c;
|
||||
}
|
||||
|
||||
SQRESULT sq_compilebuffer(HSQUIRRELVM v,const SQChar *s,SQInteger size,const SQChar *sourcename,SQBool raiseerror) {
|
||||
|
||||
292
src/3rdparty/squirrel/squirrel/sqbaselib.cpp
vendored
292
src/3rdparty/squirrel/squirrel/sqbaselib.cpp
vendored
@@ -1,8 +1,13 @@
|
||||
/*
|
||||
see copyright notice in squirrel.h
|
||||
*/
|
||||
/* Needs to be first due to a squirrel header defining type() and type()
|
||||
* being used in some versions of the headers included by algorithm. */
|
||||
* see copyright notice in squirrel.h
|
||||
*/
|
||||
/*
|
||||
* Needs to be first due to a squirrel header defining type() and type()
|
||||
* being used in some versions of the headers included by algorithm.
|
||||
*/
|
||||
|
||||
#include "../../../stdafx.h"
|
||||
|
||||
#include <algorithm>
|
||||
#include "sqpcheader.h"
|
||||
#include "sqvm.h"
|
||||
@@ -12,21 +17,22 @@
|
||||
#include "sqfuncproto.h"
|
||||
#include "sqclosure.h"
|
||||
#include "sqclass.h"
|
||||
#include <stdlib.h>
|
||||
#include <stdarg.h>
|
||||
#include <ctype.h>
|
||||
|
||||
#include "../../../safeguards.h"
|
||||
|
||||
bool str2num(const SQChar *s,SQObjectPtr &res)
|
||||
{
|
||||
SQChar *end;
|
||||
if(scstrstr(s,_SC("."))){
|
||||
SQFloat r = SQFloat(scstrtod(s,&end));
|
||||
if(strstr(s,".")){
|
||||
SQFloat r = SQFloat(strtod(s,&end));
|
||||
if(s == end) return false;
|
||||
res = r;
|
||||
return true;
|
||||
}
|
||||
else{
|
||||
SQInteger r = SQInteger(scstrtol(s,&end,10));
|
||||
SQInteger r = SQInteger(strtol(s,&end,10));
|
||||
if(s == end) return false;
|
||||
res = r;
|
||||
return true;
|
||||
@@ -104,21 +110,21 @@ static SQInteger base_getstackinfos(HSQUIRRELVM v)
|
||||
sq_getinteger(v, -1, &level);
|
||||
if (SQ_SUCCEEDED(sq_stackinfos(v, level, &si)))
|
||||
{
|
||||
const SQChar *fn = _SC("unknown");
|
||||
const SQChar *src = _SC("unknown");
|
||||
const SQChar *fn = "unknown";
|
||||
const SQChar *src = "unknown";
|
||||
if(si.funcname)fn = si.funcname;
|
||||
if(si.source)src = si.source;
|
||||
sq_newtable(v);
|
||||
sq_pushstring(v, _SC("func"), -1);
|
||||
sq_pushstring(v, "func", -1);
|
||||
sq_pushstring(v, fn, -1);
|
||||
sq_createslot(v, -3);
|
||||
sq_pushstring(v, _SC("src"), -1);
|
||||
sq_pushstring(v, "src", -1);
|
||||
sq_pushstring(v, src, -1);
|
||||
sq_createslot(v, -3);
|
||||
sq_pushstring(v, _SC("line"), -1);
|
||||
sq_pushstring(v, "line", -1);
|
||||
sq_pushinteger(v, si.line);
|
||||
sq_createslot(v, -3);
|
||||
sq_pushstring(v, _SC("locals"), -1);
|
||||
sq_pushstring(v, "locals", -1);
|
||||
sq_newtable(v);
|
||||
seq=0;
|
||||
while ((name = sq_getlocal(v, level, seq))) {
|
||||
@@ -139,7 +145,7 @@ static SQInteger base_getstackinfos(HSQUIRRELVM v)
|
||||
static SQInteger base_assert(HSQUIRRELVM v)
|
||||
{
|
||||
if(v->IsFalse(stack_get(v,2))){
|
||||
return sq_throwerror(v,_SC("assertion failed"));
|
||||
return sq_throwerror(v,"assertion failed");
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@@ -171,7 +177,7 @@ static SQInteger base_print(HSQUIRRELVM v)
|
||||
const SQChar *str;
|
||||
sq_tostring(v,2);
|
||||
sq_getstring(v,-1,&str);
|
||||
if(_ss(v)->_printfunc) _ss(v)->_printfunc(v,_SC("%s"),str);
|
||||
if(_ss(v)->_printfunc) _ss(v)->_printfunc(v,"%s",str);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -179,7 +185,7 @@ static SQInteger base_print(HSQUIRRELVM v)
|
||||
static SQInteger base_compilestring(HSQUIRRELVM v)
|
||||
{
|
||||
SQInteger nargs=sq_gettop(v);
|
||||
const SQChar *src=NULL,*name=_SC("unnamedbuffer");
|
||||
const SQChar *src=NULL,*name="unnamedbuffer";
|
||||
SQInteger size;
|
||||
sq_getstring(v,2,&src);
|
||||
size=sq_getsize(v,2);
|
||||
@@ -213,7 +219,7 @@ static SQInteger base_array(HSQUIRRELVM v)
|
||||
SQInteger nInitialSize = tointeger(stack_get(v,2));
|
||||
SQInteger ret = 1;
|
||||
if (nInitialSize < 0) {
|
||||
v->Raise_Error(_SC("can't create/resize array with/to size %d"), nInitialSize);
|
||||
v->Raise_Error("can't create/resize array with/to size %d", nInitialSize);
|
||||
nInitialSize = 0;
|
||||
ret = -1;
|
||||
}
|
||||
@@ -238,28 +244,28 @@ static SQInteger base_type(HSQUIRRELVM v)
|
||||
static SQRegFunction base_funcs[]={
|
||||
//generic
|
||||
#ifdef EXPORT_DEFAULT_SQUIRREL_FUNCTIONS
|
||||
{_SC("seterrorhandler"),base_seterrorhandler,2, NULL},
|
||||
{_SC("setdebughook"),base_setdebughook,2, NULL},
|
||||
{_SC("enabledebuginfo"),base_enabledebuginfo,2, NULL},
|
||||
{_SC("getstackinfos"),base_getstackinfos,2, _SC(".n")},
|
||||
{_SC("getroottable"),base_getroottable,1, NULL},
|
||||
{_SC("setroottable"),base_setroottable,2, NULL},
|
||||
{_SC("getconsttable"),base_getconsttable,1, NULL},
|
||||
{_SC("setconsttable"),base_setconsttable,2, NULL},
|
||||
{"seterrorhandler",base_seterrorhandler,2, NULL},
|
||||
{"setdebughook",base_setdebughook,2, NULL},
|
||||
{"enabledebuginfo",base_enabledebuginfo,2, NULL},
|
||||
{"getstackinfos",base_getstackinfos,2, ".n"},
|
||||
{"getroottable",base_getroottable,1, NULL},
|
||||
{"setroottable",base_setroottable,2, NULL},
|
||||
{"getconsttable",base_getconsttable,1, NULL},
|
||||
{"setconsttable",base_setconsttable,2, NULL},
|
||||
#endif
|
||||
{_SC("assert"),base_assert,2, NULL},
|
||||
{_SC("print"),base_print,2, NULL},
|
||||
{"assert",base_assert,2, NULL},
|
||||
{"print",base_print,2, NULL},
|
||||
#ifdef EXPORT_DEFAULT_SQUIRREL_FUNCTIONS
|
||||
{_SC("compilestring"),base_compilestring,-2, _SC(".ss")},
|
||||
{_SC("newthread"),base_newthread,2, _SC(".c")},
|
||||
{_SC("suspend"),base_suspend,-1, NULL},
|
||||
{"compilestring",base_compilestring,-2, ".ss"},
|
||||
{"newthread",base_newthread,2, ".c"},
|
||||
{"suspend",base_suspend,-1, NULL},
|
||||
#endif
|
||||
{_SC("array"),base_array,-2, _SC(".n")},
|
||||
{_SC("type"),base_type,2, NULL},
|
||||
{"array",base_array,-2, ".n"},
|
||||
{"type",base_type,2, NULL},
|
||||
#ifdef EXPORT_DEFAULT_SQUIRREL_FUNCTIONS
|
||||
{_SC("dummy"),base_dummy,0,NULL},
|
||||
{"dummy",base_dummy,0,NULL},
|
||||
#ifndef NO_GARBAGE_COLLECTOR
|
||||
{_SC("collectgarbage"),base_collectgarbage,1, _SC("t")},
|
||||
{"collectgarbage",base_collectgarbage,1, "t"},
|
||||
#endif
|
||||
#endif
|
||||
{0,0,0,0}
|
||||
@@ -277,16 +283,16 @@ void sq_base_register(HSQUIRRELVM v)
|
||||
sq_createslot(v,-3);
|
||||
i++;
|
||||
}
|
||||
sq_pushstring(v,_SC("_version_"),-1);
|
||||
sq_pushstring(v,"_version_",-1);
|
||||
sq_pushstring(v,SQUIRREL_VERSION,-1);
|
||||
sq_createslot(v,-3);
|
||||
sq_pushstring(v,_SC("_charsize_"),-1);
|
||||
sq_pushstring(v,"_charsize_",-1);
|
||||
sq_pushinteger(v,sizeof(SQChar));
|
||||
sq_createslot(v,-3);
|
||||
sq_pushstring(v,_SC("_intsize_"),-1);
|
||||
sq_pushstring(v,"_intsize_",-1);
|
||||
sq_pushinteger(v,sizeof(SQInteger));
|
||||
sq_createslot(v,-3);
|
||||
sq_pushstring(v,_SC("_floatsize_"),-1);
|
||||
sq_pushstring(v,"_floatsize_",-1);
|
||||
sq_pushinteger(v,sizeof(SQFloat));
|
||||
sq_createslot(v,-3);
|
||||
sq_pop(v,1);
|
||||
@@ -308,7 +314,7 @@ static SQInteger default_delegate_tofloat(HSQUIRRELVM v)
|
||||
v->Push(SQObjectPtr(tofloat(res)));
|
||||
break;
|
||||
}}
|
||||
return sq_throwerror(v, _SC("cannot convert the string"));
|
||||
return sq_throwerror(v, "cannot convert the string");
|
||||
break;
|
||||
case OT_INTEGER:case OT_FLOAT:
|
||||
v->Push(SQObjectPtr(tofloat(o)));
|
||||
@@ -333,7 +339,7 @@ static SQInteger default_delegate_tointeger(HSQUIRRELVM v)
|
||||
v->Push(SQObjectPtr(tointeger(res)));
|
||||
break;
|
||||
}}
|
||||
return sq_throwerror(v, _SC("cannot convert the string"));
|
||||
return sq_throwerror(v, "cannot convert the string");
|
||||
break;
|
||||
case OT_INTEGER:case OT_FLOAT:
|
||||
v->Push(SQObjectPtr(tointeger(o)));
|
||||
@@ -409,14 +415,14 @@ static SQInteger table_rawget(HSQUIRRELVM v)
|
||||
|
||||
|
||||
SQRegFunction SQSharedState::_table_default_delegate_funcz[]={
|
||||
{_SC("len"),default_delegate_len,1, _SC("t")},
|
||||
{_SC("rawget"),table_rawget,2, _SC("t")},
|
||||
{_SC("rawset"),table_rawset,3, _SC("t")},
|
||||
{_SC("rawdelete"),table_rawdelete,2, _SC("t")},
|
||||
{_SC("rawin"),container_rawexists,2, _SC("t")},
|
||||
{_SC("weakref"),obj_delegate_weakref,1, NULL },
|
||||
{_SC("tostring"),default_delegate_tostring,1, _SC(".")},
|
||||
{_SC("clear"),obj_clear,1, _SC(".")},
|
||||
{"len",default_delegate_len,1, "t"},
|
||||
{"rawget",table_rawget,2, "t"},
|
||||
{"rawset",table_rawset,3, "t"},
|
||||
{"rawdelete",table_rawdelete,2, "t"},
|
||||
{"rawin",container_rawexists,2, "t"},
|
||||
{"weakref",obj_delegate_weakref,1, NULL },
|
||||
{"tostring",default_delegate_tostring,1, "."},
|
||||
{"clear",obj_clear,1, "."},
|
||||
{0,0,0,0}
|
||||
};
|
||||
|
||||
@@ -450,7 +456,7 @@ static SQInteger array_top(HSQUIRRELVM v)
|
||||
v->Push(_array(o)->Top());
|
||||
return 1;
|
||||
}
|
||||
else return sq_throwerror(v,_SC("top() on a empty array"));
|
||||
else return sq_throwerror(v,"top() on a empty array");
|
||||
}
|
||||
|
||||
static SQInteger array_insert(HSQUIRRELVM v)
|
||||
@@ -459,7 +465,7 @@ static SQInteger array_insert(HSQUIRRELVM v)
|
||||
SQObject &idx=stack_get(v,2);
|
||||
SQObject &val=stack_get(v,3);
|
||||
if(!_array(o)->Insert(tointeger(idx),val))
|
||||
return sq_throwerror(v,_SC("index out of range"));
|
||||
return sq_throwerror(v,"index out of range");
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -467,14 +473,14 @@ static SQInteger array_remove(HSQUIRRELVM v)
|
||||
{
|
||||
SQObject &o = stack_get(v, 1);
|
||||
SQObject &idx = stack_get(v, 2);
|
||||
if(!sq_isnumeric(idx)) return sq_throwerror(v, _SC("wrong type"));
|
||||
if(!sq_isnumeric(idx)) return sq_throwerror(v, "wrong type");
|
||||
SQObjectPtr val;
|
||||
if(_array(o)->Get(tointeger(idx), val)) {
|
||||
_array(o)->Remove(tointeger(idx));
|
||||
v->Push(val);
|
||||
return 1;
|
||||
}
|
||||
return sq_throwerror(v, _SC("idx out of range"));
|
||||
return sq_throwerror(v, "idx out of range");
|
||||
}
|
||||
|
||||
static SQInteger array_resize(HSQUIRRELVM v)
|
||||
@@ -488,7 +494,7 @@ static SQInteger array_resize(HSQUIRRELVM v)
|
||||
_array(o)->Resize(tointeger(nsize),fill);
|
||||
return 0;
|
||||
}
|
||||
return sq_throwerror(v, _SC("size must be a number"));
|
||||
return sq_throwerror(v, "size must be a number");
|
||||
}
|
||||
|
||||
|
||||
@@ -505,11 +511,11 @@ bool _sort_compare(HSQUIRRELVM v,SQObjectPtr &a,SQObjectPtr &b,SQInteger func,SQ
|
||||
v->Push(b);
|
||||
if(SQ_FAILED(sq_call(v, 3, SQTrue, SQFalse))) {
|
||||
if(!sq_isstring( v->_lasterror))
|
||||
v->Raise_Error(_SC("compare func failed"));
|
||||
v->Raise_Error("compare func failed");
|
||||
return false;
|
||||
}
|
||||
if(SQ_FAILED(sq_getinteger(v, -1, &ret))) {
|
||||
v->Raise_Error(_SC("numeric value expected as return value of the compare function"));
|
||||
v->Raise_Error("numeric value expected as return value of the compare function");
|
||||
return false;
|
||||
}
|
||||
sq_settop(v, top);
|
||||
@@ -545,7 +551,7 @@ bool _hsort_sift_down(HSQUIRRELVM v,SQArray *arr, SQInteger root, SQInteger bott
|
||||
return false;
|
||||
if (ret < 0) {
|
||||
if (root == maxChild) {
|
||||
v->Raise_Error(_SC("inconsistent compare function"));
|
||||
v->Raise_Error("inconsistent compare function");
|
||||
return false; // We'd be swapping ourselve. The compare function is incorrect
|
||||
}
|
||||
_Swap(arr->_values[root],arr->_values[maxChild]);
|
||||
@@ -596,8 +602,8 @@ static SQInteger array_slice(HSQUIRRELVM v)
|
||||
SQInteger alen = _array(o)->Size();
|
||||
if(sidx < 0)sidx = alen + sidx;
|
||||
if(eidx < 0)eidx = alen + eidx;
|
||||
if(eidx < sidx)return sq_throwerror(v,_SC("wrong indexes"));
|
||||
if(eidx > alen)return sq_throwerror(v,_SC("slice out of range"));
|
||||
if(eidx < sidx)return sq_throwerror(v,"wrong indexes");
|
||||
if(eidx > alen)return sq_throwerror(v,"slice out of range");
|
||||
SQArray *arr=SQArray::Create(_ss(v),eidx-sidx);
|
||||
SQObjectPtr t;
|
||||
SQInteger count=0;
|
||||
@@ -611,21 +617,21 @@ static SQInteger array_slice(HSQUIRRELVM v)
|
||||
}
|
||||
|
||||
SQRegFunction SQSharedState::_array_default_delegate_funcz[]={
|
||||
{_SC("len"),default_delegate_len,1, _SC("a")},
|
||||
{_SC("append"),array_append,2, _SC("a")},
|
||||
{_SC("extend"),array_extend,2, _SC("aa")},
|
||||
{_SC("push"),array_append,2, _SC("a")},
|
||||
{_SC("pop"),array_pop,1, _SC("a")},
|
||||
{_SC("top"),array_top,1, _SC("a")},
|
||||
{_SC("insert"),array_insert,3, _SC("an")},
|
||||
{_SC("remove"),array_remove,2, _SC("an")},
|
||||
{_SC("resize"),array_resize,-2, _SC("an")},
|
||||
{_SC("reverse"),array_reverse,1, _SC("a")},
|
||||
{_SC("sort"),array_sort,-1, _SC("ac")},
|
||||
{_SC("slice"),array_slice,-1, _SC("ann")},
|
||||
{_SC("weakref"),obj_delegate_weakref,1, NULL },
|
||||
{_SC("tostring"),default_delegate_tostring,1, _SC(".")},
|
||||
{_SC("clear"),obj_clear,1, _SC(".")},
|
||||
{"len",default_delegate_len,1, "a"},
|
||||
{"append",array_append,2, "a"},
|
||||
{"extend",array_extend,2, "aa"},
|
||||
{"push",array_append,2, "a"},
|
||||
{"pop",array_pop,1, "a"},
|
||||
{"top",array_top,1, "a"},
|
||||
{"insert",array_insert,3, "an"},
|
||||
{"remove",array_remove,2, "an"},
|
||||
{"resize",array_resize,-2, "an"},
|
||||
{"reverse",array_reverse,1, "a"},
|
||||
{"sort",array_sort,-1, "ac"},
|
||||
{"slice",array_slice,-1, "ann"},
|
||||
{"weakref",obj_delegate_weakref,1, NULL },
|
||||
{"tostring",default_delegate_tostring,1, "."},
|
||||
{"clear",obj_clear,1, "."},
|
||||
{0,0,0,0}
|
||||
};
|
||||
|
||||
@@ -638,8 +644,8 @@ static SQInteger string_slice(HSQUIRRELVM v)
|
||||
SQInteger slen = _string(o)->_len;
|
||||
if(sidx < 0)sidx = slen + sidx;
|
||||
if(eidx < 0)eidx = slen + eidx;
|
||||
if(eidx < sidx) return sq_throwerror(v,_SC("wrong indexes"));
|
||||
if(eidx > slen) return sq_throwerror(v,_SC("slice out of range"));
|
||||
if(eidx < sidx) return sq_throwerror(v,"wrong indexes");
|
||||
if(eidx > slen) return sq_throwerror(v,"slice out of range");
|
||||
v->Push(SQString::Create(_ss(v),&_stringval(o)[sidx],eidx-sidx));
|
||||
return 1;
|
||||
}
|
||||
@@ -651,7 +657,7 @@ static SQInteger string_find(HSQUIRRELVM v)
|
||||
if(((top=sq_gettop(v))>1) && SQ_SUCCEEDED(sq_getstring(v,1,&str)) && SQ_SUCCEEDED(sq_getstring(v,2,&substr))){
|
||||
if(top>2)sq_getinteger(v,3,&start_idx);
|
||||
if((sq_getsize(v,1)>start_idx) && (start_idx>=0)){
|
||||
ret=scstrstr(&str[start_idx],substr);
|
||||
ret=strstr(&str[start_idx],substr);
|
||||
if(ret){
|
||||
sq_pushinteger(v,(SQInteger)(ret-str));
|
||||
return 1;
|
||||
@@ -659,7 +665,7 @@ static SQInteger string_find(HSQUIRRELVM v)
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
return sq_throwerror(v,_SC("invalid param"));
|
||||
return sq_throwerror(v,"invalid param");
|
||||
}
|
||||
|
||||
#define STRING_TOFUNCZ(func) static SQInteger string_##func(HSQUIRRELVM v) \
|
||||
@@ -667,7 +673,7 @@ static SQInteger string_find(HSQUIRRELVM v)
|
||||
SQObject str=stack_get(v,1); \
|
||||
SQInteger len=_string(str)->_len; \
|
||||
const SQChar *sThis=_stringval(str); \
|
||||
SQChar *sNew=(_ss(v)->GetScratchPad(rsl(len))); \
|
||||
SQChar *sNew=(_ss(v)->GetScratchPad(len)); \
|
||||
for(SQInteger i=0;i<len;i++) sNew[i]=func(sThis[i]); \
|
||||
v->Push(SQString::Create(_ss(v),sNew,len)); \
|
||||
return 1; \
|
||||
@@ -678,25 +684,25 @@ STRING_TOFUNCZ(tolower)
|
||||
STRING_TOFUNCZ(toupper)
|
||||
|
||||
SQRegFunction SQSharedState::_string_default_delegate_funcz[]={
|
||||
{_SC("len"),default_delegate_len,1, _SC("s")},
|
||||
{_SC("tointeger"),default_delegate_tointeger,1, _SC("s")},
|
||||
{_SC("tofloat"),default_delegate_tofloat,1, _SC("s")},
|
||||
{_SC("tostring"),default_delegate_tostring,1, _SC(".")},
|
||||
{_SC("slice"),string_slice,-1, _SC(" s n n")},
|
||||
{_SC("find"),string_find,-2, _SC("s s n ")},
|
||||
{_SC("tolower"),string_tolower,1, _SC("s")},
|
||||
{_SC("toupper"),string_toupper,1, _SC("s")},
|
||||
{_SC("weakref"),obj_delegate_weakref,1, NULL },
|
||||
{"len",default_delegate_len,1, "s"},
|
||||
{"tointeger",default_delegate_tointeger,1, "s"},
|
||||
{"tofloat",default_delegate_tofloat,1, "s"},
|
||||
{"tostring",default_delegate_tostring,1, "."},
|
||||
{"slice",string_slice,-1, " s n n"},
|
||||
{"find",string_find,-2, "s s n "},
|
||||
{"tolower",string_tolower,1, "s"},
|
||||
{"toupper",string_toupper,1, "s"},
|
||||
{"weakref",obj_delegate_weakref,1, NULL },
|
||||
{0,0,0,0}
|
||||
};
|
||||
|
||||
//INTEGER DEFAULT DELEGATE//////////////////////////
|
||||
SQRegFunction SQSharedState::_number_default_delegate_funcz[]={
|
||||
{_SC("tointeger"),default_delegate_tointeger,1, _SC("n|b")},
|
||||
{_SC("tofloat"),default_delegate_tofloat,1, _SC("n|b")},
|
||||
{_SC("tostring"),default_delegate_tostring,1, _SC(".")},
|
||||
{_SC("tochar"),number_delegate_tochar,1, _SC("n|b")},
|
||||
{_SC("weakref"),obj_delegate_weakref,1, NULL },
|
||||
{"tointeger",default_delegate_tointeger,1, "n|b"},
|
||||
{"tofloat",default_delegate_tofloat,1, "n|b"},
|
||||
{"tostring",default_delegate_tostring,1, "."},
|
||||
{"tochar",number_delegate_tochar,1, "n|b"},
|
||||
{"weakref",obj_delegate_weakref,1, NULL },
|
||||
{0,0,0,0}
|
||||
};
|
||||
|
||||
@@ -748,19 +754,19 @@ static SQInteger closure_getinfos(HSQUIRRELVM v) {
|
||||
_array(params)->Set((SQInteger)n,f->_parameters[n]);
|
||||
}
|
||||
if(f->_varparams) {
|
||||
_array(params)->Set(nparams-1,SQString::Create(_ss(v),_SC("..."),-1));
|
||||
_array(params)->Set(nparams-1,SQString::Create(_ss(v),"...",-1));
|
||||
}
|
||||
res->NewSlot(SQString::Create(_ss(v),_SC("native"),-1),false);
|
||||
res->NewSlot(SQString::Create(_ss(v),_SC("name"),-1),f->_name);
|
||||
res->NewSlot(SQString::Create(_ss(v),_SC("src"),-1),f->_sourcename);
|
||||
res->NewSlot(SQString::Create(_ss(v),_SC("parameters"),-1),params);
|
||||
res->NewSlot(SQString::Create(_ss(v),_SC("varargs"),-1),f->_varparams);
|
||||
res->NewSlot(SQString::Create(_ss(v),"native",-1),false);
|
||||
res->NewSlot(SQString::Create(_ss(v),"name",-1),f->_name);
|
||||
res->NewSlot(SQString::Create(_ss(v),"src",-1),f->_sourcename);
|
||||
res->NewSlot(SQString::Create(_ss(v),"parameters",-1),params);
|
||||
res->NewSlot(SQString::Create(_ss(v),"varargs",-1),f->_varparams);
|
||||
}
|
||||
else { //OT_NATIVECLOSURE
|
||||
SQNativeClosure *nc = _nativeclosure(o);
|
||||
res->NewSlot(SQString::Create(_ss(v),_SC("native"),-1),true);
|
||||
res->NewSlot(SQString::Create(_ss(v),_SC("name"),-1),nc->_name);
|
||||
res->NewSlot(SQString::Create(_ss(v),_SC("paramscheck"),-1),nc->_nparamscheck);
|
||||
res->NewSlot(SQString::Create(_ss(v),"native",-1),true);
|
||||
res->NewSlot(SQString::Create(_ss(v),"name",-1),nc->_name);
|
||||
res->NewSlot(SQString::Create(_ss(v),"paramscheck",-1),nc->_nparamscheck);
|
||||
SQObjectPtr typecheck;
|
||||
if(nc->_typecheck.size() > 0) {
|
||||
typecheck =
|
||||
@@ -769,7 +775,7 @@ static SQInteger closure_getinfos(HSQUIRRELVM v) {
|
||||
_array(typecheck)->Set((SQInteger)n,nc->_typecheck[n]);
|
||||
}
|
||||
}
|
||||
res->NewSlot(SQString::Create(_ss(v),_SC("typecheck"),-1),typecheck);
|
||||
res->NewSlot(SQString::Create(_ss(v),"typecheck",-1),typecheck);
|
||||
}
|
||||
v->Push(res);
|
||||
return 1;
|
||||
@@ -777,14 +783,14 @@ static SQInteger closure_getinfos(HSQUIRRELVM v) {
|
||||
|
||||
|
||||
SQRegFunction SQSharedState::_closure_default_delegate_funcz[]={
|
||||
{_SC("call"),closure_call,-1, _SC("c")},
|
||||
{_SC("pcall"),closure_pcall,-1, _SC("c")},
|
||||
{_SC("acall"),closure_acall,2, _SC("ca")},
|
||||
{_SC("pacall"),closure_pacall,2, _SC("ca")},
|
||||
{_SC("weakref"),obj_delegate_weakref,1, NULL },
|
||||
{_SC("tostring"),default_delegate_tostring,1, _SC(".")},
|
||||
{_SC("bindenv"),closure_bindenv,2, _SC("c x|y|t")},
|
||||
{_SC("getinfos"),closure_getinfos,1, _SC("c")},
|
||||
{"call",closure_call,-1, "c"},
|
||||
{"pcall",closure_pcall,-1, "c"},
|
||||
{"acall",closure_acall,2, "ca"},
|
||||
{"pacall",closure_pacall,2, "ca"},
|
||||
{"weakref",obj_delegate_weakref,1, NULL },
|
||||
{"tostring",default_delegate_tostring,1, "."},
|
||||
{"bindenv",closure_bindenv,2, "c x|y|t"},
|
||||
{"getinfos",closure_getinfos,1, "c"},
|
||||
{0,0,0,0}
|
||||
};
|
||||
|
||||
@@ -793,17 +799,17 @@ static SQInteger generator_getstatus(HSQUIRRELVM v)
|
||||
{
|
||||
SQObject &o=stack_get(v,1);
|
||||
switch(_generator(o)->_state){
|
||||
case SQGenerator::eSuspended:v->Push(SQString::Create(_ss(v),_SC("suspended")));break;
|
||||
case SQGenerator::eRunning:v->Push(SQString::Create(_ss(v),_SC("running")));break;
|
||||
case SQGenerator::eDead:v->Push(SQString::Create(_ss(v),_SC("dead")));break;
|
||||
case SQGenerator::eSuspended:v->Push(SQString::Create(_ss(v),"suspended"));break;
|
||||
case SQGenerator::eRunning:v->Push(SQString::Create(_ss(v),"running"));break;
|
||||
case SQGenerator::eDead:v->Push(SQString::Create(_ss(v),"dead"));break;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
SQRegFunction SQSharedState::_generator_default_delegate_funcz[]={
|
||||
{_SC("getstatus"),generator_getstatus,1, _SC("g")},
|
||||
{_SC("weakref"),obj_delegate_weakref,1, NULL },
|
||||
{_SC("tostring"),default_delegate_tostring,1, _SC(".")},
|
||||
{"getstatus",generator_getstatus,1, "g"},
|
||||
{"weakref",obj_delegate_weakref,1, NULL },
|
||||
{"tostring",default_delegate_tostring,1, "."},
|
||||
{0,0,0,0}
|
||||
};
|
||||
|
||||
@@ -826,7 +832,7 @@ static SQInteger thread_call(HSQUIRRELVM v)
|
||||
v->_lasterror = _thread(o)->_lasterror;
|
||||
return SQ_ERROR;
|
||||
}
|
||||
return sq_throwerror(v,_SC("wrong parameter"));
|
||||
return sq_throwerror(v,"wrong parameter");
|
||||
}
|
||||
|
||||
static SQInteger thread_wakeup(HSQUIRRELVM v)
|
||||
@@ -838,10 +844,10 @@ static SQInteger thread_wakeup(HSQUIRRELVM v)
|
||||
if(state != SQ_VMSTATE_SUSPENDED) {
|
||||
switch(state) {
|
||||
case SQ_VMSTATE_IDLE:
|
||||
return sq_throwerror(v,_SC("cannot wakeup a idle thread"));
|
||||
return sq_throwerror(v,"cannot wakeup a idle thread");
|
||||
break;
|
||||
case SQ_VMSTATE_RUNNING:
|
||||
return sq_throwerror(v,_SC("cannot wakeup a running thread"));
|
||||
return sq_throwerror(v,"cannot wakeup a running thread");
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -862,7 +868,7 @@ static SQInteger thread_wakeup(HSQUIRRELVM v)
|
||||
v->_lasterror = thread->_lasterror;
|
||||
return SQ_ERROR;
|
||||
}
|
||||
return sq_throwerror(v,_SC("wrong parameter"));
|
||||
return sq_throwerror(v,"wrong parameter");
|
||||
}
|
||||
|
||||
static SQInteger thread_getstatus(HSQUIRRELVM v)
|
||||
@@ -870,26 +876,26 @@ static SQInteger thread_getstatus(HSQUIRRELVM v)
|
||||
SQObjectPtr &o = stack_get(v,1);
|
||||
switch(sq_getvmstate(_thread(o))) {
|
||||
case SQ_VMSTATE_IDLE:
|
||||
sq_pushstring(v,_SC("idle"),-1);
|
||||
sq_pushstring(v,"idle",-1);
|
||||
break;
|
||||
case SQ_VMSTATE_RUNNING:
|
||||
sq_pushstring(v,_SC("running"),-1);
|
||||
sq_pushstring(v,"running",-1);
|
||||
break;
|
||||
case SQ_VMSTATE_SUSPENDED:
|
||||
sq_pushstring(v,_SC("suspended"),-1);
|
||||
sq_pushstring(v,"suspended",-1);
|
||||
break;
|
||||
default:
|
||||
return sq_throwerror(v,_SC("internal VM error"));
|
||||
return sq_throwerror(v,"internal VM error");
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
SQRegFunction SQSharedState::_thread_default_delegate_funcz[] = {
|
||||
{_SC("call"), thread_call, -1, _SC("v")},
|
||||
{_SC("wakeup"), thread_wakeup, -1, _SC("v")},
|
||||
{_SC("getstatus"), thread_getstatus, 1, _SC("v")},
|
||||
{_SC("weakref"),obj_delegate_weakref,1, NULL },
|
||||
{_SC("tostring"),default_delegate_tostring,1, _SC(".")},
|
||||
{"call", thread_call, -1, "v"},
|
||||
{"wakeup", thread_wakeup, -1, "v"},
|
||||
{"getstatus", thread_getstatus, 1, "v"},
|
||||
{"weakref",obj_delegate_weakref,1, NULL },
|
||||
{"tostring",default_delegate_tostring,1, "."},
|
||||
{0,0,0,0},
|
||||
};
|
||||
|
||||
@@ -915,12 +921,12 @@ static SQInteger class_instance(HSQUIRRELVM v)
|
||||
}
|
||||
|
||||
SQRegFunction SQSharedState::_class_default_delegate_funcz[] = {
|
||||
{_SC("getattributes"), class_getattributes, 2, _SC("y.")},
|
||||
{_SC("setattributes"), class_setattributes, 3, _SC("y..")},
|
||||
{_SC("rawin"),container_rawexists,2, _SC("y")},
|
||||
{_SC("weakref"),obj_delegate_weakref,1, NULL },
|
||||
{_SC("tostring"),default_delegate_tostring,1, _SC(".")},
|
||||
{_SC("instance"),class_instance,1, _SC("y")},
|
||||
{"getattributes", class_getattributes, 2, "y."},
|
||||
{"setattributes", class_setattributes, 3, "y.."},
|
||||
{"rawin",container_rawexists,2, "y"},
|
||||
{"weakref",obj_delegate_weakref,1, NULL },
|
||||
{"tostring",default_delegate_tostring,1, "."},
|
||||
{"instance",class_instance,1, "y"},
|
||||
{0,0,0,0}
|
||||
};
|
||||
|
||||
@@ -932,10 +938,10 @@ static SQInteger instance_getclass(HSQUIRRELVM v)
|
||||
}
|
||||
|
||||
SQRegFunction SQSharedState::_instance_default_delegate_funcz[] = {
|
||||
{_SC("getclass"), instance_getclass, 1, _SC("x")},
|
||||
{_SC("rawin"),container_rawexists,2, _SC("x")},
|
||||
{_SC("weakref"),obj_delegate_weakref,1, NULL },
|
||||
{_SC("tostring"),default_delegate_tostring,1, _SC(".")},
|
||||
{"getclass", instance_getclass, 1, "x"},
|
||||
{"rawin",container_rawexists,2, "x"},
|
||||
{"weakref",obj_delegate_weakref,1, NULL },
|
||||
{"tostring",default_delegate_tostring,1, "."},
|
||||
{0,0,0,0}
|
||||
};
|
||||
|
||||
@@ -947,9 +953,9 @@ static SQInteger weakref_ref(HSQUIRRELVM v)
|
||||
}
|
||||
|
||||
SQRegFunction SQSharedState::_weakref_default_delegate_funcz[] = {
|
||||
{_SC("ref"),weakref_ref,1, _SC("r")},
|
||||
{_SC("weakref"),obj_delegate_weakref,1, NULL },
|
||||
{_SC("tostring"),default_delegate_tostring,1, _SC(".")},
|
||||
{"ref",weakref_ref,1, "r"},
|
||||
{"weakref",obj_delegate_weakref,1, NULL },
|
||||
{"tostring",default_delegate_tostring,1, "."},
|
||||
{0,0,0,0}
|
||||
};
|
||||
|
||||
|
||||
9
src/3rdparty/squirrel/squirrel/sqclass.cpp
vendored
9
src/3rdparty/squirrel/squirrel/sqclass.cpp
vendored
@@ -1,12 +1,17 @@
|
||||
/*
|
||||
see copyright notice in squirrel.h
|
||||
*/
|
||||
* see copyright notice in squirrel.h
|
||||
*/
|
||||
|
||||
#include "../../../stdafx.h"
|
||||
|
||||
#include "sqpcheader.h"
|
||||
#include "sqvm.h"
|
||||
#include "sqtable.h"
|
||||
#include "sqclass.h"
|
||||
#include "sqclosure.h"
|
||||
|
||||
#include "../../../safeguards.h"
|
||||
|
||||
SQClass::SQClass(SQSharedState *ss,SQClass *base)
|
||||
{
|
||||
_base = base;
|
||||
|
||||
2
src/3rdparty/squirrel/squirrel/sqclosure.h
vendored
2
src/3rdparty/squirrel/squirrel/sqclosure.h
vendored
@@ -80,7 +80,7 @@ public:
|
||||
struct SQNativeClosure : public CHAINABLE_OBJ
|
||||
{
|
||||
private:
|
||||
SQNativeClosure(SQSharedState *ss,SQFUNCTION func){_function=func;INIT_CHAIN();ADD_TO_CHAIN(&_ss(this)->_gc_chain,this); }
|
||||
SQNativeClosure(SQSharedState *ss,SQFUNCTION func) : _nparamscheck(0) {_function=func;INIT_CHAIN();ADD_TO_CHAIN(&_ss(this)->_gc_chain,this); }
|
||||
public:
|
||||
static SQNativeClosure *Create(SQSharedState *ss,SQFUNCTION func)
|
||||
{
|
||||
|
||||
277
src/3rdparty/squirrel/squirrel/sqcompiler.cpp
vendored
277
src/3rdparty/squirrel/squirrel/sqcompiler.cpp
vendored
@@ -1,6 +1,9 @@
|
||||
/*
|
||||
see copyright notice in squirrel.h
|
||||
*/
|
||||
* see copyright notice in squirrel.h
|
||||
*/
|
||||
|
||||
#include "../../../stdafx.h"
|
||||
|
||||
#include <squirrel.h>
|
||||
#include "sqpcheader.h"
|
||||
#include <stdarg.h>
|
||||
@@ -13,6 +16,10 @@
|
||||
#include "sqvm.h"
|
||||
#include "sqtable.h"
|
||||
|
||||
#include "../../../string_func.h"
|
||||
|
||||
#include "../../../safeguards.h"
|
||||
|
||||
#define DEREF_NO_DEREF -1
|
||||
#define DEREF_FIELD -2
|
||||
|
||||
@@ -50,23 +57,22 @@ typedef sqvector<ExpState> ExpStateVec;
|
||||
class SQCompiler
|
||||
{
|
||||
public:
|
||||
SQCompiler(SQVM *v, SQLEXREADFUNC rg, SQUserPointer up, const SQChar* sourcename, bool raiseerror, bool lineinfo)
|
||||
SQCompiler(SQVM *v, SQLEXREADFUNC rg, SQUserPointer up, const SQChar* sourcename, bool raiseerror, bool lineinfo) : _token(0), _fs(NULL), _lex(_ss(v), rg, up, ThrowError, this), _debugline(0), _debugop(0)
|
||||
{
|
||||
_vm=v;
|
||||
_lex.Init(_ss(v), rg, up,ThrowError,this);
|
||||
_sourcename = SQString::Create(_ss(v), sourcename);
|
||||
_lineinfo = lineinfo;_raiseerror = raiseerror;
|
||||
}
|
||||
static void ThrowError(void *ud, const SQChar *s) {
|
||||
NORETURN static void ThrowError(void *ud, const SQChar *s) {
|
||||
SQCompiler *c = (SQCompiler *)ud;
|
||||
c->Error(s);
|
||||
}
|
||||
void Error(const SQChar *s, ...)
|
||||
NORETURN void Error(const SQChar *s, ...)
|
||||
{
|
||||
static SQChar temp[256];
|
||||
va_list vl;
|
||||
va_start(vl, s);
|
||||
scvsnprintf(temp, sizeof(temp), s, vl);
|
||||
vseprintf(temp, lastof(temp), s, vl);
|
||||
va_end(vl);
|
||||
throw temp;
|
||||
}
|
||||
@@ -75,7 +81,7 @@ public:
|
||||
bool IsDerefToken(SQInteger tok)
|
||||
{
|
||||
switch(tok){
|
||||
case _SC('='): case _SC('('): case TK_NEWSLOT:
|
||||
case '=': case '(': case TK_NEWSLOT:
|
||||
case TK_MODEQ: case TK_MULEQ: case TK_DIVEQ: case TK_MINUSEQ: case TK_PLUSEQ: case TK_PLUSPLUS: case TK_MINUSMINUS: return true;
|
||||
}
|
||||
return false;
|
||||
@@ -91,7 +97,7 @@ public:
|
||||
|
||||
if(_token != tok) {
|
||||
if(_token == TK_CONSTRUCTOR && tok == TK_IDENTIFIER) {
|
||||
//ret = SQString::Create(_ss(_vm),_SC("constructor"));
|
||||
//ret = SQString::Create(_ss(_vm),"constructor");
|
||||
//do nothing
|
||||
}
|
||||
else {
|
||||
@@ -100,23 +106,23 @@ public:
|
||||
switch(tok)
|
||||
{
|
||||
case TK_IDENTIFIER:
|
||||
etypename = _SC("IDENTIFIER");
|
||||
etypename = "IDENTIFIER";
|
||||
break;
|
||||
case TK_STRING_LITERAL:
|
||||
etypename = _SC("STRING_LITERAL");
|
||||
etypename = "STRING_LITERAL";
|
||||
break;
|
||||
case TK_INTEGER:
|
||||
etypename = _SC("INTEGER");
|
||||
etypename = "INTEGER";
|
||||
break;
|
||||
case TK_FLOAT:
|
||||
etypename = _SC("FLOAT");
|
||||
etypename = "FLOAT";
|
||||
break;
|
||||
default:
|
||||
etypename = _lex.Tok2Str(tok);
|
||||
}
|
||||
Error(_SC("expected '%s'"), etypename);
|
||||
Error("expected '%s'", etypename);
|
||||
}
|
||||
Error(_SC("expected '%c'"), tok);
|
||||
Error("expected '%c'", tok);
|
||||
}
|
||||
}
|
||||
SQObjectPtr ret;
|
||||
@@ -138,12 +144,12 @@ public:
|
||||
Lex();
|
||||
return ret;
|
||||
}
|
||||
bool IsEndOfStatement() { return ((_lex._prevtoken == _SC('\n')) || (_token == SQUIRREL_EOB) || (_token == _SC('}')) || (_token == _SC(';'))); }
|
||||
bool IsEndOfStatement() { return ((_lex._prevtoken == '\n') || (_token == SQUIRREL_EOB) || (_token == '}') || (_token == ';')); }
|
||||
void OptionalSemicolon()
|
||||
{
|
||||
if(_token == _SC(';')) { Lex(); return; }
|
||||
if(_token == ';') { Lex(); return; }
|
||||
if(!IsEndOfStatement()) {
|
||||
Error(_SC("end of statement expected (; or lf)"));
|
||||
Error("end of statement expected (; or lf)");
|
||||
}
|
||||
}
|
||||
void MoveIfCurrentTargetIsLocal() {
|
||||
@@ -159,16 +165,16 @@ public:
|
||||
_debugop = 0;
|
||||
|
||||
SQFuncState funcstate(_ss(_vm), NULL,ThrowError,this);
|
||||
funcstate._name = SQString::Create(_ss(_vm), _SC("main"));
|
||||
funcstate._name = SQString::Create(_ss(_vm), "main");
|
||||
_fs = &funcstate;
|
||||
_fs->AddParameter(_fs->CreateString(_SC("this")));
|
||||
_fs->AddParameter(_fs->CreateString("this"));
|
||||
_fs->_sourcename = _sourcename;
|
||||
SQInteger stacksize = _fs->GetStackSize();
|
||||
try {
|
||||
Lex();
|
||||
while(_token > 0){
|
||||
Statement();
|
||||
if(_lex._prevtoken != _SC('}')) OptionalSemicolon();
|
||||
if(_lex._prevtoken != '}') OptionalSemicolon();
|
||||
}
|
||||
CleanStack(stacksize);
|
||||
_fs->AddLineInfos(_lex._currentline, _lineinfo, true);
|
||||
@@ -182,7 +188,7 @@ public:
|
||||
}
|
||||
catch (SQChar *compilererror) {
|
||||
if(_raiseerror && _ss(_vm)->_compilererrorhandler) {
|
||||
_ss(_vm)->_compilererrorhandler(_vm, compilererror, type(_sourcename) == OT_STRING?_stringval(_sourcename):_SC("unknown"),
|
||||
_ss(_vm)->_compilererrorhandler(_vm, compilererror, type(_sourcename) == OT_STRING?_stringval(_sourcename):"unknown",
|
||||
_lex._currentline, _lex._currentcolumn);
|
||||
}
|
||||
_vm->_lasterror = SQString::Create(_ss(_vm), compilererror, -1);
|
||||
@@ -191,16 +197,16 @@ public:
|
||||
}
|
||||
void Statements()
|
||||
{
|
||||
while(_token != _SC('}') && _token != TK_DEFAULT && _token != TK_CASE) {
|
||||
while(_token != '}' && _token != TK_DEFAULT && _token != TK_CASE) {
|
||||
Statement();
|
||||
if(_lex._prevtoken != _SC('}') && _lex._prevtoken != _SC(';')) OptionalSemicolon();
|
||||
if(_lex._prevtoken != '}' && _lex._prevtoken != ';') OptionalSemicolon();
|
||||
}
|
||||
}
|
||||
void Statement()
|
||||
{
|
||||
_fs->AddLineInfos(_lex._currentline, _lineinfo);
|
||||
switch(_token){
|
||||
case _SC(';'): Lex(); break;
|
||||
case ';': Lex(); break;
|
||||
case TK_IF: IfStatement(); break;
|
||||
case TK_WHILE: WhileStatement(); break;
|
||||
case TK_DO: DoWhileStatement(); break;
|
||||
@@ -236,7 +242,7 @@ public:
|
||||
}
|
||||
break;}
|
||||
case TK_BREAK:
|
||||
if(_fs->_breaktargets.size() <= 0)Error(_SC("'break' has to be in a loop block"));
|
||||
if(_fs->_breaktargets.size() <= 0)Error("'break' has to be in a loop block");
|
||||
if(_fs->_breaktargets.top() > 0){
|
||||
_fs->AddInstruction(_OP_POPTRAP, _fs->_breaktargets.top(), 0);
|
||||
}
|
||||
@@ -246,7 +252,7 @@ public:
|
||||
Lex();
|
||||
break;
|
||||
case TK_CONTINUE:
|
||||
if(_fs->_continuetargets.size() <= 0)Error(_SC("'continue' has to be in a loop block"));
|
||||
if(_fs->_continuetargets.size() <= 0)Error("'continue' has to be in a loop block");
|
||||
if(_fs->_continuetargets.top() > 0) {
|
||||
_fs->AddInstruction(_OP_POPTRAP, _fs->_continuetargets.top(), 0);
|
||||
}
|
||||
@@ -264,11 +270,11 @@ public:
|
||||
case TK_ENUM:
|
||||
EnumStatement();
|
||||
break;
|
||||
case _SC('{'):{
|
||||
case '{':{
|
||||
SQInteger stacksize = _fs->GetStackSize();
|
||||
Lex();
|
||||
Statements();
|
||||
Expect(_SC('}'));
|
||||
Expect('}');
|
||||
_fs->AddInstruction(_OP_SCOPE_END, stacksize, _fs->GetStackSize());
|
||||
_fs->SetStackSize(stacksize);
|
||||
}
|
||||
@@ -348,7 +354,7 @@ public:
|
||||
_exst._funcarg = funcarg;
|
||||
LogicalOrExp();
|
||||
switch(_token) {
|
||||
case _SC('='):
|
||||
case '=':
|
||||
case TK_NEWSLOT:
|
||||
case TK_MINUSEQ:
|
||||
case TK_PLUSEQ:
|
||||
@@ -359,19 +365,19 @@ public:
|
||||
SQInteger op = _token;
|
||||
SQInteger ds = _exst._deref;
|
||||
bool freevar = _exst._freevar;
|
||||
if(ds == DEREF_NO_DEREF) Error(_SC("can't assign expression"));
|
||||
if(ds == DEREF_NO_DEREF) Error("can't assign expression");
|
||||
Lex(); Expression();
|
||||
|
||||
switch(op){
|
||||
case TK_NEWSLOT:
|
||||
if(freevar) Error(_SC("free variables cannot be modified"));
|
||||
if(freevar) Error("free variables cannot be modified");
|
||||
if(ds == DEREF_FIELD)
|
||||
EmitDerefOp(_OP_NEWSLOT);
|
||||
else //if _derefstate != DEREF_NO_DEREF && DEREF_FIELD so is the index of a local
|
||||
Error(_SC("can't 'create' a local slot"));
|
||||
Error("can't 'create' a local slot");
|
||||
break;
|
||||
case _SC('='): //ASSIGN
|
||||
if(freevar) Error(_SC("free variables cannot be modified"));
|
||||
case '=': //ASSIGN
|
||||
if(freevar) Error("free variables cannot be modified");
|
||||
if(ds == DEREF_FIELD)
|
||||
EmitDerefOp(_OP_SET);
|
||||
else {//if _derefstate != DEREF_NO_DEREF && DEREF_FIELD so is the index of a local
|
||||
@@ -390,7 +396,7 @@ public:
|
||||
}
|
||||
}
|
||||
break;
|
||||
case _SC('?'): {
|
||||
case '?': {
|
||||
Lex();
|
||||
_fs->AddInstruction(_OP_JZ, _fs->PopTarget());
|
||||
SQInteger jzpos = _fs->GetCurrentPos();
|
||||
@@ -400,7 +406,7 @@ public:
|
||||
if(trg != first_exp) _fs->AddInstruction(_OP_MOVE, trg, first_exp);
|
||||
SQInteger endfirstexp = _fs->GetCurrentPos();
|
||||
_fs->AddInstruction(_OP_JMP, 0, 0);
|
||||
Expect(_SC(':'));
|
||||
Expect(':');
|
||||
SQInteger jmppos = _fs->GetCurrentPos();
|
||||
Expression();
|
||||
SQInteger second_exp = _fs->PopTarget();
|
||||
@@ -422,7 +428,7 @@ public:
|
||||
void LogicalOrExp()
|
||||
{
|
||||
LogicalAndExp();
|
||||
for(;;) if(_token == TK_OR) {
|
||||
if(_token == TK_OR) {
|
||||
SQInteger first_exp = _fs->PopTarget();
|
||||
SQInteger trg = _fs->PushTarget();
|
||||
_fs->AddInstruction(_OP_OR, trg, 0, first_exp, 0);
|
||||
@@ -434,8 +440,7 @@ public:
|
||||
if(trg != second_exp) _fs->AddInstruction(_OP_MOVE, trg, second_exp);
|
||||
_fs->SnoozeOpt();
|
||||
_fs->SetIntructionParam(jpos, 1, (_fs->GetCurrentPos() - jpos));
|
||||
break;
|
||||
}else return;
|
||||
}
|
||||
}
|
||||
void LogicalAndExp()
|
||||
{
|
||||
@@ -464,21 +469,21 @@ public:
|
||||
void BitwiseOrExp()
|
||||
{
|
||||
BitwiseXorExp();
|
||||
for(;;) if(_token == _SC('|'))
|
||||
for(;;) if(_token == '|')
|
||||
{BIN_EXP(_OP_BITW, &SQCompiler::BitwiseXorExp,BW_OR);
|
||||
}else return;
|
||||
}
|
||||
void BitwiseXorExp()
|
||||
{
|
||||
BitwiseAndExp();
|
||||
for(;;) if(_token == _SC('^'))
|
||||
for(;;) if(_token == '^')
|
||||
{BIN_EXP(_OP_BITW, &SQCompiler::BitwiseAndExp,BW_XOR);
|
||||
}else return;
|
||||
}
|
||||
void BitwiseAndExp()
|
||||
{
|
||||
CompExp();
|
||||
for(;;) if(_token == _SC('&'))
|
||||
for(;;) if(_token == '&')
|
||||
{BIN_EXP(_OP_BITW, &SQCompiler::CompExp,BW_AND);
|
||||
}else return;
|
||||
}
|
||||
@@ -487,8 +492,8 @@ public:
|
||||
ShiftExp();
|
||||
for(;;) switch(_token) {
|
||||
case TK_EQ: BIN_EXP(_OP_EQ, &SQCompiler::ShiftExp); break;
|
||||
case _SC('>'): BIN_EXP(_OP_CMP, &SQCompiler::ShiftExp,CMP_G); break;
|
||||
case _SC('<'): BIN_EXP(_OP_CMP, &SQCompiler::ShiftExp,CMP_L); break;
|
||||
case '>': BIN_EXP(_OP_CMP, &SQCompiler::ShiftExp,CMP_G); break;
|
||||
case '<': BIN_EXP(_OP_CMP, &SQCompiler::ShiftExp,CMP_L); break;
|
||||
case TK_GE: BIN_EXP(_OP_CMP, &SQCompiler::ShiftExp,CMP_GE); break;
|
||||
case TK_LE: BIN_EXP(_OP_CMP, &SQCompiler::ShiftExp,CMP_LE); break;
|
||||
case TK_NE: BIN_EXP(_OP_NE, &SQCompiler::ShiftExp); break;
|
||||
@@ -509,7 +514,7 @@ public:
|
||||
{
|
||||
MultExp();
|
||||
for(;;) switch(_token) {
|
||||
case _SC('+'): case _SC('-'):
|
||||
case '+': case '-':
|
||||
BIN_EXP(_OP_ARITH, &SQCompiler::MultExp,_token); break;
|
||||
default: return;
|
||||
}
|
||||
@@ -519,7 +524,7 @@ public:
|
||||
{
|
||||
PrefixedExpr();
|
||||
for(;;) switch(_token) {
|
||||
case _SC('*'): case _SC('/'): case _SC('%'):
|
||||
case '*': case '/': case '%':
|
||||
BIN_EXP(_OP_ARITH, &SQCompiler::PrefixedExpr,_token); break;
|
||||
default: return;
|
||||
}
|
||||
@@ -531,13 +536,13 @@ public:
|
||||
|
||||
for(;;) {
|
||||
switch(_token) {
|
||||
case _SC('.'): {
|
||||
case '.': {
|
||||
pos = -1;
|
||||
Lex();
|
||||
if(_token == TK_PARENT) {
|
||||
Lex();
|
||||
if(!NeedGet())
|
||||
Error(_SC("parent cannot be set"));
|
||||
Error("parent cannot be set");
|
||||
SQInteger src = _fs->PopTarget();
|
||||
_fs->AddInstruction(_OP_GETPARENT, _fs->PushTarget(), src);
|
||||
}
|
||||
@@ -549,9 +554,9 @@ public:
|
||||
_exst._freevar = false;
|
||||
}
|
||||
break;
|
||||
case _SC('['):
|
||||
if(_lex._prevtoken == _SC('\n')) Error(_SC("cannot brake deref/or comma needed after [exp]=exp slot declaration"));
|
||||
Lex(); Expression(); Expect(_SC(']'));
|
||||
case '[':
|
||||
if(_lex._prevtoken == '\n') Error("cannot brake deref/or comma needed after [exp]=exp slot declaration");
|
||||
Lex(); Expression(); Expect(']');
|
||||
pos = -1;
|
||||
if(NeedGet()) Emit2ArgsOP(_OP_GET);
|
||||
_exst._deref = DEREF_FIELD;
|
||||
@@ -571,7 +576,7 @@ public:
|
||||
}
|
||||
return;
|
||||
break;
|
||||
case _SC('('):
|
||||
case '(':
|
||||
{
|
||||
if(_exst._deref != DEREF_NO_DEREF) {
|
||||
if(pos<0) {
|
||||
@@ -609,9 +614,9 @@ public:
|
||||
break;
|
||||
case TK_VARGC: Lex(); _fs->AddInstruction(_OP_VARGC, _fs->PushTarget()); break;
|
||||
case TK_VARGV: { Lex();
|
||||
Expect(_SC('['));
|
||||
Expect('[');
|
||||
Expression();
|
||||
Expect(_SC(']'));
|
||||
Expect(']');
|
||||
SQInteger src = _fs->PopTarget();
|
||||
_fs->AddInstruction(_OP_GETVARGV, _fs->PushTarget(), src);
|
||||
}
|
||||
@@ -624,8 +629,8 @@ public:
|
||||
SQObject constant;
|
||||
switch(_token) {
|
||||
case TK_IDENTIFIER: id = _fs->CreateString(_lex._svalue); break;
|
||||
case TK_THIS: id = _fs->CreateString(_SC("this")); break;
|
||||
case TK_CONSTRUCTOR: id = _fs->CreateString(_SC("constructor")); break;
|
||||
case TK_THIS: id = _fs->CreateString("this"); break;
|
||||
case TK_CONSTRUCTOR: id = _fs->CreateString("constructor"); break;
|
||||
}
|
||||
SQInteger pos = -1;
|
||||
Lex();
|
||||
@@ -643,7 +648,7 @@ public:
|
||||
Expect('.'); constid = Expect(TK_IDENTIFIER);
|
||||
if(!_table(constant)->Get(constid,constval)) {
|
||||
constval.Null();
|
||||
Error(_SC("invalid constant [%s.%s]"), _stringval(id),_stringval(constid));
|
||||
Error("invalid constant [%s.%s]", _stringval(id),_stringval(constid));
|
||||
}
|
||||
}
|
||||
else {
|
||||
@@ -683,7 +688,7 @@ public:
|
||||
case TK_DOUBLE_COLON: // "::"
|
||||
_fs->AddInstruction(_OP_LOADROOTTABLE, _fs->PushTarget());
|
||||
_exst._deref = DEREF_FIELD;
|
||||
_token = _SC('.'); //hack
|
||||
_token = '.'; //hack
|
||||
return -1;
|
||||
break;
|
||||
case TK_NULL:
|
||||
@@ -713,13 +718,13 @@ public:
|
||||
_fs->AddInstruction(_OP_LOADBOOL, _fs->PushTarget(),_token == TK_TRUE?1:0);
|
||||
Lex();
|
||||
break;
|
||||
case _SC('['): {
|
||||
case '[': {
|
||||
_fs->AddInstruction(_OP_NEWARRAY, _fs->PushTarget());
|
||||
SQInteger apos = _fs->GetCurrentPos(),key = 0;
|
||||
Lex();
|
||||
while(_token != _SC(']')) {
|
||||
while(_token != ']') {
|
||||
Expression();
|
||||
if(_token == _SC(',')) Lex();
|
||||
if(_token == ',') Lex();
|
||||
SQInteger val = _fs->PopTarget();
|
||||
SQInteger array = _fs->TopTarget();
|
||||
_fs->AddInstruction(_OP_APPENDARRAY, array, val);
|
||||
@@ -729,16 +734,16 @@ public:
|
||||
Lex();
|
||||
}
|
||||
break;
|
||||
case _SC('{'):{
|
||||
case '{':{
|
||||
_fs->AddInstruction(_OP_NEWTABLE, _fs->PushTarget());
|
||||
Lex();ParseTableOrClass(_SC(','));
|
||||
Lex();ParseTableOrClass(',');
|
||||
}
|
||||
break;
|
||||
case TK_FUNCTION: FunctionExp(_token);break;
|
||||
case TK_CLASS: Lex(); ClassExp();break;
|
||||
case _SC('-'): UnaryOP(_OP_NEG); break;
|
||||
case _SC('!'): UnaryOP(_OP_NOT); break;
|
||||
case _SC('~'): UnaryOP(_OP_BWNOT); break;
|
||||
case '-': UnaryOP(_OP_NEG); break;
|
||||
case '!': UnaryOP(_OP_NOT); break;
|
||||
case '~': UnaryOP(_OP_BWNOT); break;
|
||||
case TK_TYPEOF : UnaryOP(_OP_TYPEOF); break;
|
||||
case TK_RESUME : UnaryOP(_OP_RESUME); break;
|
||||
case TK_CLONE : UnaryOP(_OP_CLONE); break;
|
||||
@@ -746,9 +751,9 @@ public:
|
||||
case TK_PLUSPLUS :PrefixIncDec(_token); break;
|
||||
case TK_DELETE : DeleteExpr(); break;
|
||||
case TK_DELEGATE : DelegateExpr(); break;
|
||||
case _SC('('): Lex(); CommaExpr(); Expect(_SC(')'));
|
||||
case '(': Lex(); CommaExpr(); Expect(')');
|
||||
break;
|
||||
default: Error(_SC("expression expected"));
|
||||
default: Error("expression expected");
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
@@ -761,23 +766,23 @@ public:
|
||||
bool NeedGet()
|
||||
{
|
||||
switch(_token) {
|
||||
case _SC('='): case _SC('('): case TK_NEWSLOT: case TK_PLUSPLUS: case TK_MINUSMINUS:
|
||||
case '=': case '(': case TK_NEWSLOT: case TK_PLUSPLUS: case TK_MINUSMINUS:
|
||||
case TK_PLUSEQ: case TK_MINUSEQ: case TK_MULEQ: case TK_DIVEQ: case TK_MODEQ:
|
||||
return false;
|
||||
}
|
||||
return (!_exst._class_or_delete) || (_exst._class_or_delete && (_token == _SC('.') || _token == _SC('[')));
|
||||
return (!_exst._class_or_delete) || (_exst._class_or_delete && (_token == '.' || _token == '['));
|
||||
}
|
||||
|
||||
void FunctionCallArgs()
|
||||
{
|
||||
SQInteger nargs = 1;//this
|
||||
while(_token != _SC(')')) {
|
||||
while(_token != ')') {
|
||||
Expression(true);
|
||||
MoveIfCurrentTargetIsLocal();
|
||||
nargs++;
|
||||
if(_token == _SC(',')){
|
||||
if(_token == ','){
|
||||
Lex();
|
||||
if(_token == ')') Error(_SC("expression expected, found ')'"));
|
||||
if(_token == ')') Error("expression expected, found ')'");
|
||||
}
|
||||
}
|
||||
Lex();
|
||||
@@ -810,20 +815,20 @@ public:
|
||||
case TK_CONSTRUCTOR:{
|
||||
SQInteger tk = _token;
|
||||
Lex();
|
||||
SQObject id = tk == TK_FUNCTION ? Expect(TK_IDENTIFIER) : _fs->CreateString(_SC("constructor"));
|
||||
Expect(_SC('('));
|
||||
SQObject id = tk == TK_FUNCTION ? Expect(TK_IDENTIFIER) : _fs->CreateString("constructor");
|
||||
Expect('(');
|
||||
_fs->AddInstruction(_OP_LOAD, _fs->PushTarget(), _fs->GetConstant(id));
|
||||
CreateFunction(id);
|
||||
_fs->AddInstruction(_OP_CLOSURE, _fs->PushTarget(), _fs->_functions.size() - 1, 0);
|
||||
}
|
||||
break;
|
||||
case _SC('['):
|
||||
Lex(); CommaExpr(); Expect(_SC(']'));
|
||||
Expect(_SC('=')); Expression();
|
||||
case '[':
|
||||
Lex(); CommaExpr(); Expect(']');
|
||||
Expect('='); Expression();
|
||||
break;
|
||||
default :
|
||||
_fs->AddInstruction(_OP_LOAD, _fs->PushTarget(), _fs->GetConstant(Expect(TK_IDENTIFIER)));
|
||||
Expect(_SC('=')); Expression();
|
||||
Expect('='); Expression();
|
||||
}
|
||||
|
||||
if(_token == separator) Lex();//optional comma/semicolon
|
||||
@@ -837,7 +842,7 @@ public:
|
||||
_fs->AddInstruction(_OP_NEWSLOTA, flags, table, key, val);
|
||||
//_fs->PopTarget();
|
||||
}
|
||||
if(separator == _SC(',')) //hack recognizes a table from the separator
|
||||
if(separator == ',') //hack recognizes a table from the separator
|
||||
_fs->SetIntructionParam(tpos, 1, nkeys);
|
||||
Lex();
|
||||
}
|
||||
@@ -846,7 +851,7 @@ public:
|
||||
SQObject varname;
|
||||
do {
|
||||
Lex(); varname = Expect(TK_IDENTIFIER);
|
||||
if(_token == _SC('=')) {
|
||||
if(_token == '=') {
|
||||
Lex(); Expression();
|
||||
SQInteger src = _fs->PopTarget();
|
||||
SQInteger dest = _fs->PushTarget();
|
||||
@@ -858,20 +863,20 @@ public:
|
||||
_fs->PopTarget();
|
||||
_fs->PushLocalVariable(varname);
|
||||
|
||||
} while(_token == _SC(','));
|
||||
} while(_token == ',');
|
||||
}
|
||||
void IfStatement()
|
||||
{
|
||||
SQInteger jmppos;
|
||||
bool haselse = false;
|
||||
Lex(); Expect(_SC('(')); CommaExpr(); Expect(_SC(')'));
|
||||
Lex(); Expect('('); CommaExpr(); Expect(')');
|
||||
_fs->AddInstruction(_OP_JZ, _fs->PopTarget());
|
||||
SQInteger jnepos = _fs->GetCurrentPos();
|
||||
SQInteger stacksize = _fs->GetStackSize();
|
||||
|
||||
Statement();
|
||||
//
|
||||
if(_token != _SC('}') && _token != TK_ELSE) OptionalSemicolon();
|
||||
if(_token != '}' && _token != TK_ELSE) OptionalSemicolon();
|
||||
|
||||
CleanStack(stacksize);
|
||||
SQInteger endifblock = _fs->GetCurrentPos();
|
||||
@@ -892,7 +897,7 @@ public:
|
||||
SQInteger jzpos, jmppos;
|
||||
SQInteger stacksize = _fs->GetStackSize();
|
||||
jmppos = _fs->GetCurrentPos();
|
||||
Lex(); Expect(_SC('(')); CommaExpr(); Expect(_SC(')'));
|
||||
Lex(); Expect('('); CommaExpr(); Expect(')');
|
||||
|
||||
BEGIN_BREAKBLE_BLOCK();
|
||||
_fs->AddInstruction(_OP_JZ, _fs->PopTarget());
|
||||
@@ -920,7 +925,7 @@ public:
|
||||
_fs->AddLineInfos(_lex._currentline, _lineinfo, true);
|
||||
Expect(TK_WHILE);
|
||||
SQInteger continuetrg = _fs->GetCurrentPos();
|
||||
Expect(_SC('(')); CommaExpr(); Expect(_SC(')'));
|
||||
Expect('('); CommaExpr(); Expect(')');
|
||||
_fs->AddInstruction(_OP_JNZ, _fs->PopTarget(), jzpos - _fs->GetCurrentPos() - 1);
|
||||
END_BREAKBLE_BLOCK(continuetrg);
|
||||
}
|
||||
@@ -928,25 +933,25 @@ public:
|
||||
{
|
||||
Lex();
|
||||
SQInteger stacksize = _fs->GetStackSize();
|
||||
Expect(_SC('('));
|
||||
Expect('(');
|
||||
if(_token == TK_LOCAL) LocalDeclStatement();
|
||||
else if(_token != _SC(';')){
|
||||
else if(_token != ';'){
|
||||
CommaExpr();
|
||||
_fs->PopTarget();
|
||||
}
|
||||
Expect(_SC(';'));
|
||||
Expect(';');
|
||||
_fs->SnoozeOpt();
|
||||
SQInteger jmppos = _fs->GetCurrentPos();
|
||||
SQInteger jzpos = -1;
|
||||
if(_token != _SC(';')) { CommaExpr(); _fs->AddInstruction(_OP_JZ, _fs->PopTarget()); jzpos = _fs->GetCurrentPos(); }
|
||||
Expect(_SC(';'));
|
||||
if(_token != ';') { CommaExpr(); _fs->AddInstruction(_OP_JZ, _fs->PopTarget()); jzpos = _fs->GetCurrentPos(); }
|
||||
Expect(';');
|
||||
_fs->SnoozeOpt();
|
||||
SQInteger expstart = _fs->GetCurrentPos() + 1;
|
||||
if(_token != _SC(')')) {
|
||||
if(_token != ')') {
|
||||
CommaExpr();
|
||||
_fs->PopTarget();
|
||||
}
|
||||
Expect(_SC(')'));
|
||||
Expect(')');
|
||||
_fs->SnoozeOpt();
|
||||
SQInteger expend = _fs->GetCurrentPos();
|
||||
SQInteger expsize = (expend - expstart) + 1;
|
||||
@@ -973,20 +978,20 @@ public:
|
||||
void ForEachStatement()
|
||||
{
|
||||
SQObject idxname, valname;
|
||||
Lex(); Expect(_SC('(')); valname = Expect(TK_IDENTIFIER);
|
||||
if(_token == _SC(',')) {
|
||||
Lex(); Expect('('); valname = Expect(TK_IDENTIFIER);
|
||||
if(_token == ',') {
|
||||
idxname = valname;
|
||||
Lex(); valname = Expect(TK_IDENTIFIER);
|
||||
}
|
||||
else{
|
||||
idxname = _fs->CreateString(_SC("@INDEX@"));
|
||||
idxname = _fs->CreateString("@INDEX@");
|
||||
}
|
||||
Expect(TK_IN);
|
||||
|
||||
//save the stack size
|
||||
SQInteger stacksize = _fs->GetStackSize();
|
||||
//put the table in the stack(evaluate the table expression)
|
||||
Expression(); Expect(_SC(')'));
|
||||
Expression(); Expect(')');
|
||||
SQInteger container = _fs->TopTarget();
|
||||
//push the index local var
|
||||
SQInteger indexpos = _fs->PushLocalVariable(idxname);
|
||||
@@ -995,7 +1000,7 @@ public:
|
||||
SQInteger valuepos = _fs->PushLocalVariable(valname);
|
||||
_fs->AddInstruction(_OP_LOADNULLS, valuepos,1);
|
||||
//push reference index
|
||||
SQInteger itrpos = _fs->PushLocalVariable(_fs->CreateString(_SC("@ITERATOR@"))); //use invalid id to make it inaccessible
|
||||
SQInteger itrpos = _fs->PushLocalVariable(_fs->CreateString("@ITERATOR@")); //use invalid id to make it inaccessible
|
||||
_fs->AddInstruction(_OP_LOADNULLS, itrpos,1);
|
||||
SQInteger jmppos = _fs->GetCurrentPos();
|
||||
_fs->AddInstruction(_OP_FOREACH, container, 0, indexpos);
|
||||
@@ -1014,8 +1019,8 @@ public:
|
||||
}
|
||||
void SwitchStatement()
|
||||
{
|
||||
Lex(); Expect(_SC('(')); CommaExpr(); Expect(_SC(')'));
|
||||
Expect(_SC('{'));
|
||||
Lex(); Expect('('); CommaExpr(); Expect(')');
|
||||
Expect('{');
|
||||
SQInteger expr = _fs->TopTarget();
|
||||
bool bfirst = true;
|
||||
SQInteger tonextcondjmp = -1;
|
||||
@@ -1030,7 +1035,7 @@ public:
|
||||
_fs->SetIntructionParam(tonextcondjmp, 1, _fs->GetCurrentPos() - tonextcondjmp);
|
||||
}
|
||||
//condition
|
||||
Lex(); Expression(); Expect(_SC(':'));
|
||||
Lex(); Expression(); Expect(':');
|
||||
SQInteger trg = _fs->PopTarget();
|
||||
_fs->AddInstruction(_OP_EQ, trg, trg, expr);
|
||||
_fs->AddInstruction(_OP_JZ, trg, 0);
|
||||
@@ -1049,13 +1054,13 @@ public:
|
||||
_fs->SetIntructionParam(tonextcondjmp, 1, _fs->GetCurrentPos() - tonextcondjmp);
|
||||
if(_token == TK_DEFAULT) {
|
||||
// _fs->AddLineInfos(_lex._currentline, _lineinfo);
|
||||
Lex(); Expect(_SC(':'));
|
||||
Lex(); Expect(':');
|
||||
SQInteger stacksize = _fs->GetStackSize();
|
||||
_last_stacksize = _fs->GetStackSize();
|
||||
Statements();
|
||||
_fs->SetStackSize(stacksize);
|
||||
}
|
||||
Expect(_SC('}'));
|
||||
Expect('}');
|
||||
_fs->PopTarget();
|
||||
__nbreaks__ = _fs->_unresolvedbreaks.size() - __nbreaks__;
|
||||
if(__nbreaks__ > 0)ResolveBreaks(_fs, __nbreaks__);
|
||||
@@ -1076,7 +1081,7 @@ public:
|
||||
_fs->AddInstruction(_OP_LOAD, _fs->PushTarget(), _fs->GetConstant(id));
|
||||
if(_token == TK_DOUBLE_COLON) Emit2ArgsOP(_OP_GET);
|
||||
}
|
||||
Expect(_SC('('));
|
||||
Expect('(');
|
||||
CreateFunction(id);
|
||||
_fs->AddInstruction(_OP_CLOSURE, _fs->PushTarget(), _fs->_functions.size() - 1, 0);
|
||||
EmitDerefOp(_OP_NEWSLOT);
|
||||
@@ -1090,13 +1095,13 @@ public:
|
||||
_exst._funcarg = false;
|
||||
PrefixedExpr();
|
||||
es = PopExpState();
|
||||
if(es._deref == DEREF_NO_DEREF) Error(_SC("invalid class name"));
|
||||
if(es._deref == DEREF_NO_DEREF) Error("invalid class name");
|
||||
if(es._deref == DEREF_FIELD) {
|
||||
ClassExp();
|
||||
EmitDerefOp(_OP_NEWSLOT);
|
||||
_fs->PopTarget();
|
||||
}
|
||||
else Error(_SC("cannot create a class in a local with the syntax(class <local>)"));
|
||||
else Error("cannot create a class in a local with the syntax(class <local>)");
|
||||
}
|
||||
SQObject ExpectScalar()
|
||||
{
|
||||
@@ -1126,12 +1131,12 @@ public:
|
||||
val._unVal.fFloat = -_lex._fvalue;
|
||||
break;
|
||||
default:
|
||||
Error(_SC("scalar expected : integer,float"));
|
||||
Error("scalar expected : integer,float");
|
||||
val._type = OT_NULL; // Silent compile-warning
|
||||
}
|
||||
break;
|
||||
default:
|
||||
Error(_SC("scalar expected : integer,float or string"));
|
||||
Error("scalar expected : integer,float or string");
|
||||
val._type = OT_NULL; // Silent compile-warning
|
||||
}
|
||||
Lex();
|
||||
@@ -1142,14 +1147,14 @@ public:
|
||||
|
||||
Lex();
|
||||
SQObject id = Expect(TK_IDENTIFIER);
|
||||
Expect(_SC('{'));
|
||||
Expect('{');
|
||||
|
||||
SQObject table = _fs->CreateTable();
|
||||
SQInteger nval = 0;
|
||||
while(_token != _SC('}')) {
|
||||
while(_token != '}') {
|
||||
SQObject key = Expect(TK_IDENTIFIER);
|
||||
SQObject val;
|
||||
if(_token == _SC('=')) {
|
||||
if(_token == '=') {
|
||||
Lex();
|
||||
val = ExpectScalar();
|
||||
}
|
||||
@@ -1165,7 +1170,7 @@ public:
|
||||
/*SQObjectPtr dummy;
|
||||
if(enums->Get(strongid,dummy)) {
|
||||
dummy.Null(); strongid.Null();
|
||||
Error(_SC("enumeration already exists"));
|
||||
Error("enumeration already exists");
|
||||
}*/
|
||||
enums->NewSlot(SQObjectPtr(strongid),SQObjectPtr(table));
|
||||
strongid.Null();
|
||||
@@ -1189,7 +1194,7 @@ public:
|
||||
_fs->AddInstruction(_OP_JMP, 0, 0);
|
||||
SQInteger jmppos = _fs->GetCurrentPos();
|
||||
_fs->SetIntructionParam(trappos, 1, (_fs->GetCurrentPos() - trappos));
|
||||
Expect(TK_CATCH); Expect(_SC('(')); exid = Expect(TK_IDENTIFIER); Expect(_SC(')'));
|
||||
Expect(TK_CATCH); Expect('('); exid = Expect(TK_IDENTIFIER); Expect(')');
|
||||
SQInteger stacksize = _fs->GetStackSize();
|
||||
SQInteger ex_target = _fs->PushLocalVariable(exid);
|
||||
_fs->SetIntructionParam(trappos, 0, ex_target);
|
||||
@@ -1199,7 +1204,7 @@ public:
|
||||
}
|
||||
void FunctionExp(SQInteger ftype)
|
||||
{
|
||||
Lex(); Expect(_SC('('));
|
||||
Lex(); Expect('(');
|
||||
CreateFunction(_null_);
|
||||
_fs->AddInstruction(_OP_CLOSURE, _fs->PushTarget(), _fs->_functions.size() - 1, ftype == TK_FUNCTION?0:1);
|
||||
}
|
||||
@@ -1214,19 +1219,19 @@ public:
|
||||
if(_token == TK_ATTR_OPEN) {
|
||||
Lex();
|
||||
_fs->AddInstruction(_OP_NEWTABLE, _fs->PushTarget());
|
||||
ParseTableOrClass(_SC(','),TK_ATTR_CLOSE);
|
||||
ParseTableOrClass(',',TK_ATTR_CLOSE);
|
||||
attrs = _fs->TopTarget();
|
||||
}
|
||||
Expect(_SC('{'));
|
||||
Expect('{');
|
||||
if(attrs != -1) _fs->PopTarget();
|
||||
if(base != -1) _fs->PopTarget();
|
||||
_fs->AddInstruction(_OP_CLASS, _fs->PushTarget(), base, attrs);
|
||||
ParseTableOrClass(_SC(';'));
|
||||
ParseTableOrClass(';');
|
||||
}
|
||||
void DelegateExpr()
|
||||
{
|
||||
Lex(); CommaExpr();
|
||||
Expect(_SC(':'));
|
||||
Expect(':');
|
||||
CommaExpr();
|
||||
SQInteger table = _fs->PopTarget(), delegate = _fs->PopTarget();
|
||||
_fs->AddInstruction(_OP_DELEGATE, _fs->PushTarget(), table, delegate);
|
||||
@@ -1239,9 +1244,9 @@ public:
|
||||
_exst._funcarg = false;
|
||||
PrefixedExpr();
|
||||
es = PopExpState();
|
||||
if(es._deref == DEREF_NO_DEREF) Error(_SC("can't delete an expression"));
|
||||
if(es._deref == DEREF_NO_DEREF) Error("can't delete an expression");
|
||||
if(es._deref == DEREF_FIELD) Emit2ArgsOP(_OP_DELETE);
|
||||
else Error(_SC("cannot delete a local"));
|
||||
else Error("cannot delete a local");
|
||||
}
|
||||
void PrefixIncDec(SQInteger token)
|
||||
{
|
||||
@@ -1263,46 +1268,46 @@ public:
|
||||
SQFuncState *funcstate = _fs->PushChildState(_ss(_vm));
|
||||
funcstate->_name = name;
|
||||
SQObject paramname;
|
||||
funcstate->AddParameter(_fs->CreateString(_SC("this")));
|
||||
funcstate->AddParameter(_fs->CreateString("this"));
|
||||
funcstate->_sourcename = _sourcename;
|
||||
SQInteger defparams = 0;
|
||||
while(_token!=_SC(')')) {
|
||||
while(_token!=')') {
|
||||
if(_token == TK_VARPARAMS) {
|
||||
if(defparams > 0) Error(_SC("function with default parameters cannot have variable number of parameters"));
|
||||
if(defparams > 0) Error("function with default parameters cannot have variable number of parameters");
|
||||
funcstate->_varparams = true;
|
||||
Lex();
|
||||
if(_token != _SC(')')) Error(_SC("expected ')'"));
|
||||
if(_token != ')') Error("expected ')'");
|
||||
break;
|
||||
}
|
||||
else {
|
||||
paramname = Expect(TK_IDENTIFIER);
|
||||
funcstate->AddParameter(paramname);
|
||||
if(_token == _SC('=')) {
|
||||
if(_token == '=') {
|
||||
Lex();
|
||||
Expression();
|
||||
funcstate->AddDefaultParam(_fs->TopTarget());
|
||||
defparams++;
|
||||
}
|
||||
else {
|
||||
if(defparams > 0) Error(_SC("expected '='"));
|
||||
if(defparams > 0) Error("expected '='");
|
||||
}
|
||||
if(_token == _SC(',')) Lex();
|
||||
else if(_token != _SC(')')) Error(_SC("expected ')' or ','"));
|
||||
if(_token == ',') Lex();
|
||||
else if(_token != ')') Error("expected ')' or ','");
|
||||
}
|
||||
}
|
||||
Expect(_SC(')'));
|
||||
Expect(')');
|
||||
for(SQInteger n = 0; n < defparams; n++) {
|
||||
_fs->PopTarget();
|
||||
}
|
||||
//outer values
|
||||
if(_token == _SC(':')) {
|
||||
Lex(); Expect(_SC('('));
|
||||
while(_token != _SC(')')) {
|
||||
if(_token == ':') {
|
||||
Lex(); Expect('(');
|
||||
while(_token != ')') {
|
||||
paramname = Expect(TK_IDENTIFIER);
|
||||
//outers are treated as implicit local variables
|
||||
funcstate->AddOuterValue(paramname);
|
||||
if(_token == _SC(',')) Lex();
|
||||
else if(_token != _SC(')')) Error(_SC("expected ')' or ','"));
|
||||
if(_token == ',') Lex();
|
||||
else if(_token != ')') Error("expected ')' or ','");
|
||||
}
|
||||
Lex();
|
||||
}
|
||||
@@ -1310,7 +1315,7 @@ public:
|
||||
SQFuncState *currchunk = _fs;
|
||||
_fs = funcstate;
|
||||
Statement();
|
||||
funcstate->AddLineInfos(_lex._prevtoken == _SC('\n')?_lex._lasttokenline:_lex._currentline, _lineinfo, true);
|
||||
funcstate->AddLineInfos(_lex._prevtoken == '\n'?_lex._lasttokenline:_lex._currentline, _lineinfo, true);
|
||||
funcstate->AddInstruction(_OP_RETURN, -1);
|
||||
funcstate->SetStackSize(0);
|
||||
//_fs->->_stacksize = _fs->_stacksize;
|
||||
|
||||
7
src/3rdparty/squirrel/squirrel/sqcompiler.h
vendored
7
src/3rdparty/squirrel/squirrel/sqcompiler.h
vendored
@@ -71,7 +71,12 @@ struct SQVM;
|
||||
#define TK_ENUM 323
|
||||
#define TK_CONST 324
|
||||
|
||||
|
||||
/* MSVC doesn't like NORETURN for function prototypes, but we kinda need it for GCC. */
|
||||
#if defined(_MSC_VER)
|
||||
typedef void(*CompilerErrorFunc)(void *ud, const SQChar *s);
|
||||
#else
|
||||
typedef NORETURN void(*CompilerErrorFunc)(void *ud, const SQChar *s);
|
||||
#endif
|
||||
|
||||
bool Compile(SQVM *vm, SQLEXREADFUNC rg, SQUserPointer up, const SQChar *sourcename, SQObjectPtr &out, bool raiseerror, bool lineinfo);
|
||||
#endif //_SQCOMPILER_H_
|
||||
|
||||
55
src/3rdparty/squirrel/squirrel/sqdebug.cpp
vendored
55
src/3rdparty/squirrel/squirrel/sqdebug.cpp
vendored
@@ -1,14 +1,21 @@
|
||||
/*
|
||||
see copyright notice in squirrel.h
|
||||
*/
|
||||
* see copyright notice in squirrel.h
|
||||
*/
|
||||
|
||||
#include "../../../stdafx.h"
|
||||
|
||||
#include <squirrel.h>
|
||||
#include "sqpcheader.h"
|
||||
#include <stdarg.h>
|
||||
#include "sqvm.h"
|
||||
#include "sqfuncproto.h"
|
||||
#include "sqclosure.h"
|
||||
#include "sqstring.h"
|
||||
|
||||
#include "../../../core/alloc_func.hpp"
|
||||
#include "../../../string_func.h"
|
||||
|
||||
#include "../../../safeguards.h"
|
||||
|
||||
SQRESULT sq_getfunctioninfo(HSQUIRRELVM v,SQInteger level,SQFunctionInfo *fi)
|
||||
{
|
||||
SQInteger cssize = v->_callsstacksize;
|
||||
@@ -18,12 +25,12 @@ SQRESULT sq_getfunctioninfo(HSQUIRRELVM v,SQInteger level,SQFunctionInfo *fi)
|
||||
SQClosure *c = _closure(ci._closure);
|
||||
SQFunctionProto *proto = _funcproto(c->_function);
|
||||
fi->funcid = proto;
|
||||
fi->name = type(proto->_name) == OT_STRING?_stringval(proto->_name):_SC("unknown");
|
||||
fi->source = type(proto->_name) == OT_STRING?_stringval(proto->_sourcename):_SC("unknown");
|
||||
fi->name = type(proto->_name) == OT_STRING?_stringval(proto->_name):"unknown";
|
||||
fi->source = type(proto->_name) == OT_STRING?_stringval(proto->_sourcename):"unknown";
|
||||
return SQ_OK;
|
||||
}
|
||||
}
|
||||
return sq_throwerror(v,_SC("the object is not a closure"));
|
||||
return sq_throwerror(v,"the object is not a closure");
|
||||
}
|
||||
|
||||
SQRESULT sq_stackinfos(HSQUIRRELVM v, SQInteger level, SQStackInfos *si)
|
||||
@@ -43,8 +50,8 @@ SQRESULT sq_stackinfos(HSQUIRRELVM v, SQInteger level, SQStackInfos *si)
|
||||
}
|
||||
break;
|
||||
case OT_NATIVECLOSURE:
|
||||
si->source = _SC("NATIVE");
|
||||
si->funcname = _SC("unknown");
|
||||
si->source = "NATIVE";
|
||||
si->funcname = "unknown";
|
||||
if(type(_nativeclosure(ci._closure)->_name) == OT_STRING)
|
||||
si->funcname = _stringval(_nativeclosure(ci._closure)->_name);
|
||||
si->line = -1;
|
||||
@@ -60,9 +67,12 @@ void SQVM::Raise_Error(const SQChar *s, ...)
|
||||
{
|
||||
va_list vl;
|
||||
va_start(vl, s);
|
||||
scvsprintf(_sp(rsl((SQInteger)scstrlen(s)+(NUMBER_MAX_CHAR*2))), s, vl);
|
||||
size_t len = strlen(s)+(NUMBER_MAX_CHAR*2);
|
||||
char *buffer = MallocT<char>(len + 1);
|
||||
vseprintf(buffer, buffer + len, s, vl);
|
||||
va_end(vl);
|
||||
_lasterror = SQString::Create(_ss(this),_spval,-1);
|
||||
_lasterror = SQString::Create(_ss(this),buffer,-1);
|
||||
free(buffer);
|
||||
}
|
||||
|
||||
void SQVM::Raise_Error(SQObjectPtr &desc)
|
||||
@@ -72,20 +82,15 @@ void SQVM::Raise_Error(SQObjectPtr &desc)
|
||||
|
||||
SQString *SQVM::PrintObjVal(const SQObject &o)
|
||||
{
|
||||
char buf[NUMBER_MAX_CHAR+1];
|
||||
switch(type(o)) {
|
||||
case OT_STRING: return _string(o);
|
||||
case OT_INTEGER:
|
||||
#if defined(_SQ64)
|
||||
scsprintf(_sp(rsl(NUMBER_MAX_CHAR+1)), _SC("%ld"), _integer(o));
|
||||
#else
|
||||
scsprintf(_sp(rsl(NUMBER_MAX_CHAR+1)), _SC("%d"), _integer(o));
|
||||
#endif
|
||||
return SQString::Create(_ss(this), _spval);
|
||||
break;
|
||||
seprintf(buf, lastof(buf), OTTD_PRINTF64, _integer(o));
|
||||
return SQString::Create(_ss(this), buf);
|
||||
case OT_FLOAT:
|
||||
scsprintf(_sp(rsl(NUMBER_MAX_CHAR+1)), _SC("%.14g"), _float(o));
|
||||
return SQString::Create(_ss(this), _spval);
|
||||
break;
|
||||
seprintf(buf, lastof(buf), "%.14g", _float(o));
|
||||
return SQString::Create(_ss(this), buf);
|
||||
default:
|
||||
return SQString::Create(_ss(this), GetTypeName(o));
|
||||
}
|
||||
@@ -94,28 +99,28 @@ SQString *SQVM::PrintObjVal(const SQObject &o)
|
||||
void SQVM::Raise_IdxError(const SQObject &o)
|
||||
{
|
||||
SQObjectPtr oval = PrintObjVal(o);
|
||||
Raise_Error(_SC("the index '%.50s' does not exist"), _stringval(oval));
|
||||
Raise_Error("the index '%.50s' does not exist", _stringval(oval));
|
||||
}
|
||||
|
||||
void SQVM::Raise_CompareError(const SQObject &o1, const SQObject &o2)
|
||||
{
|
||||
SQObjectPtr oval1 = PrintObjVal(o1), oval2 = PrintObjVal(o2);
|
||||
Raise_Error(_SC("comparsion between '%.50s' and '%.50s'"), _stringval(oval1), _stringval(oval2));
|
||||
Raise_Error("comparsion between '%.50s' and '%.50s'", _stringval(oval1), _stringval(oval2));
|
||||
}
|
||||
|
||||
|
||||
void SQVM::Raise_ParamTypeError(SQInteger nparam,SQInteger typemask,SQInteger type)
|
||||
{
|
||||
SQObjectPtr exptypes = SQString::Create(_ss(this), _SC(""), -1);
|
||||
SQObjectPtr exptypes = SQString::Create(_ss(this), "", -1);
|
||||
SQInteger found = 0;
|
||||
for(SQInteger i=0; i<16; i++)
|
||||
{
|
||||
SQInteger mask = 0x00000001 << i;
|
||||
if(typemask & (mask)) {
|
||||
if(found>0) StringCat(exptypes,SQString::Create(_ss(this), _SC("|"), -1), exptypes);
|
||||
if(found>0) StringCat(exptypes,SQString::Create(_ss(this), "|", -1), exptypes);
|
||||
found ++;
|
||||
StringCat(exptypes,SQString::Create(_ss(this), IdType2Name((SQObjectType)mask), -1), exptypes);
|
||||
}
|
||||
}
|
||||
Raise_Error(_SC("parameter %d has an invalid type '%s' ; expected: '%s'"), nparam, IdType2Name((SQObjectType)type), _stringval(exptypes));
|
||||
Raise_Error("parameter %d has an invalid type '%s' ; expected: '%s'", nparam, IdType2Name((SQObjectType)type), _stringval(exptypes));
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user