mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2026-07-16 15:49:43 +00:00
Compare commits
2695 Commits
release/0.6
..
0.7.1
| Author | SHA1 | Date | |
|---|---|---|---|
| 3c383624ac | |||
| a00a4b5ad8 | |||
| b1d2a8876b | |||
| 253702529d | |||
| 65c5e26913 | |||
| 9456d20800 | |||
| 7ccaa82206 | |||
| 02f3d2d8af | |||
| 7742f8c080 | |||
| ba01583ce3 | |||
| 498e5989d1 | |||
| ab7b117c50 | |||
| 085b498c28 | |||
| 30eff93341 | |||
| 139a213d4d | |||
| 06c45d6fe5 | |||
| 8446d6b8c2 | |||
| 9676072298 | |||
| 2db7e3a0a8 | |||
| 1e9fd18e6a | |||
| 909af50aaa | |||
| 07a16f9282 | |||
| 28e7981a5b | |||
| f7cc97fe5c | |||
| d9ed2d380f | |||
| 60901368cc | |||
| 9f5e690118 | |||
| 2fbd7ff6cc | |||
| 1595413545 | |||
| 76b2e1c5ab | |||
| 7e1385b6eb | |||
| 4ec28e1ba7 | |||
| 30afba1d10 | |||
| 61e97110c9 | |||
| 9e592b9986 | |||
| de7a4a4006 | |||
| 53dc1a89da | |||
| 42e0a5d2ca | |||
| deab21114e | |||
| 64dcd8acc5 | |||
| 95cff9979c | |||
| 5648ea3058 | |||
| 9dc98b4c27 | |||
| 36dfa1f21e | |||
| 8585aa71ed | |||
| af293142fe | |||
| 4f8eeca437 | |||
| f9def73be6 | |||
| e9ae5ae307 | |||
| 8761a5a4c4 | |||
| 6e9dc85c76 | |||
| e5204f96f9 | |||
| b25a4f8231 | |||
| d72273d1f3 | |||
| 86a9df82b7 | |||
| bbb28d210a | |||
| 1f5ad840a4 | |||
| e0dd907cab | |||
| 40ddc49764 | |||
| 9d018723b7 | |||
| 1692ce8312 | |||
| aea8e7291e | |||
| 2e6e2457f1 | |||
| 0ca92a47a2 | |||
| b1479bec02 | |||
| fa35dc10e5 | |||
| 40745dc0d9 | |||
| 42d9816ce3 | |||
| 27bcfd115b | |||
| 4129b418cc | |||
| e6353a1a22 | |||
| 070320f25b | |||
| 38d66e82e2 | |||
| 2adbf67968 | |||
| eb0d43aadd | |||
| f6e4bc765a | |||
| af18469455 | |||
| 5c40b7235c | |||
| afe547448e | |||
| 684d1c4d4c | |||
| 0f361aab6e | |||
| d5a2dc1d0b | |||
| 9dbf8a163f | |||
| 8ed58f2b94 | |||
| bd2e1ac903 | |||
| 3d780608a2 | |||
| cef662825b | |||
| 9eef8f77e2 | |||
| 84e5e44ca9 | |||
| 55ce735c2c | |||
| c2834412f7 | |||
| 7f650197d7 | |||
| f67e2a41ce | |||
| cf21547814 | |||
| 655b0ccc2e | |||
| 48c8cdfd84 | |||
| a471321b1b | |||
| 308dbcf822 | |||
| fb2ea6c9ed | |||
| 66e0fcdd01 | |||
| bdab37b11a | |||
| 2b0b9a6367 | |||
| 13fb01d07d | |||
| da0cbb2a2f | |||
| fa78027ffd | |||
| 733c0c5c5b | |||
| f45e3b3068 | |||
| d6f2a65323 | |||
| 0564d52d99 | |||
| 62e2de5822 | |||
| 01167ea456 | |||
| 1ff06b3f9c | |||
| c4c0a09927 | |||
| aa7a19fd49 | |||
| e982100fe6 | |||
| cfea2d428b | |||
| db05dbc70a | |||
| 81595bf256 | |||
| 6667241814 | |||
| 6616393cd2 | |||
| 60de42be49 | |||
| a231ab7560 | |||
| 7b39b0c652 | |||
| e17ded04f1 | |||
| 987e72f4f2 | |||
| 4a5c4f6089 | |||
| e124aa8fd6 | |||
| 7c8474da13 | |||
| f5c1365471 | |||
| 642dc1ea5e | |||
| 3f73152b7f | |||
| 3ca01c64f7 | |||
| 3adc0d77b8 | |||
| 81dde09c27 | |||
| accb79049e | |||
| 0d2d5565a6 | |||
| d1a9fcc67f | |||
| 406832fed8 | |||
| bc58d4ef9a | |||
| 3633fd9a06 | |||
| b520d73285 | |||
| f3ed8268b6 | |||
| 3d05c31031 | |||
| 86ca408d46 | |||
| c3a7e6b693 | |||
| a92cd2b72e | |||
| f2f2a6d303 | |||
| 7dd6f218ef | |||
| 1bde2d97b5 | |||
| 05fe2d8d21 | |||
| a4aba77e49 | |||
| 71d5bdd074 | |||
| c0d71b84f9 | |||
| 890c5e3ae4 | |||
| 15e9fdd47a | |||
| ffe2caf20f | |||
| 5fd7c79987 | |||
| a52d50c62f | |||
| 6cbf131318 | |||
| 0d8da02ec1 | |||
| f0de54bc10 | |||
| 0682c1c46c | |||
| 4f3da358ee | |||
| d1d0778a54 | |||
| 908e850b5a | |||
| f1a96c5577 | |||
| b55ed2e668 | |||
| 07df0d05dc | |||
| 7831346ef8 | |||
| 6dd3703a4c | |||
| 9ff4ae0f5d | |||
| b1c105e77e | |||
| f5a07faf87 | |||
| 52f5717a66 | |||
| 6082ba65d7 | |||
| ff348c8972 | |||
| dbec2ec628 | |||
| e01106f66b | |||
| 7299728472 | |||
| eafdc200c8 | |||
| 1a940c24e3 | |||
| 3fdac6f702 | |||
| a41b143e58 | |||
| a78724e824 | |||
| a0c4f1156a | |||
| fb7b0536e7 | |||
| c5684e56ec | |||
| c7e324bb40 | |||
| 0a2e46c6c7 | |||
| 3ae9851bd8 | |||
| 1ad50ce4e6 | |||
| 66a8c0a132 | |||
| 3bb872e7dd | |||
| 901230bde1 | |||
| d86ae1fde6 | |||
| 1104e10695 | |||
| 13f390be3e | |||
| 846044ee26 | |||
| 2860399397 | |||
| 425fe86a3d | |||
| d73c1fa7bf | |||
| 8beca127dd | |||
| 8fa247c4b1 | |||
| 4bf2f4a166 | |||
| 391fe952b9 | |||
| 932b1c24b2 | |||
| 1884ba20bc | |||
| c876e3e1b2 | |||
| cfc233e2ab | |||
| a987c7299b | |||
| cabfe35e54 | |||
| 85c0276d0e | |||
| 3ba802e995 | |||
| 0c1b8ea602 | |||
| 2433ba042b | |||
| c81866fb8d | |||
| 54f852f094 | |||
| 731c1e90e8 | |||
| b68a870fe3 | |||
| 930a31f5f5 | |||
| 87751dc95d | |||
| 6390ece34f | |||
| 81d8e55c38 | |||
| 8316c4381f | |||
| fdc2e85184 | |||
| a4567f243d | |||
| 157e0481ad | |||
| d3850e101c | |||
| b674d1f6f5 | |||
| 85333d4211 | |||
| c3c549f731 | |||
| 13bc604fde | |||
| ab3fc1d437 | |||
| 15789a76c1 | |||
| c4fb879561 | |||
| 7dc607b2d1 | |||
| 07a37af14c | |||
| c5677da94d | |||
| ef67e59145 | |||
| a54061f840 | |||
| b3fe664d90 | |||
| 2fdc395d45 | |||
| 3491b0fab9 | |||
| ce5b380a1d | |||
| a5f30dd553 | |||
| 459a855e60 | |||
| c0e7ddeb9e | |||
| c2d9c85c0f | |||
| 336fda62be | |||
| 3542b1dced | |||
| b832881a6e | |||
| 3e1664aff1 | |||
| fd6a480004 | |||
| fe5acb59f7 | |||
| e5d6f3ef2e | |||
| 5d0e1f70de | |||
| e9378e17c8 | |||
| b8471e5401 | |||
| 42c0faf9e1 | |||
| 42747e222c | |||
| 0878541cf2 | |||
| db0cd46a3f | |||
| b9b14bd803 | |||
| 2f767e77e8 | |||
| de07228f68 | |||
| e1c43f4fac | |||
| f65d70476b | |||
| 1f9ec758aa | |||
| a0b57c849e | |||
| ab288d3bdb | |||
| 2b221f5afc | |||
| 336abd66a2 | |||
| 7d88077add | |||
| 16954ba378 | |||
| bce1bcb0f2 | |||
| 5a5bc8ab52 | |||
| 8ceb92e699 | |||
| cea470e687 | |||
| 58359b8d6e | |||
| 7fdde2fec0 | |||
| 92fc2e692c | |||
| 37819fc8c5 | |||
| 84deeecc5b | |||
| b123756c9f | |||
| 03a1051de9 | |||
| 7f245b22dc | |||
| 7b5c5d4432 | |||
| 53caa6cb21 | |||
| 9554b8aafe | |||
| 424a494c7b | |||
| 9e6363a7d9 | |||
| e84f25a2bd | |||
| f33bf2dddd | |||
| 8535ceb5e2 | |||
| 8e14d77d05 | |||
| 15b9366f06 | |||
| d3f018a7e3 | |||
| 9292c90360 | |||
| b9c66aa750 | |||
| 4c7106dad7 | |||
| 806807e16b | |||
| dea3490b2f | |||
| 3314ef39d2 | |||
| 565602fe90 | |||
| 9fb19be134 | |||
| 0a673d870b | |||
| 1d362442ec | |||
| e8dbf62761 | |||
| 81cf1cac8f | |||
| 032346cf8a | |||
| 92584d0149 | |||
| 15152cdc03 | |||
| 3e3a158610 | |||
| 3728df8323 | |||
| e73a4e490c | |||
| 62be0ce7e6 | |||
| c26426a44e | |||
| 5239eee6ac | |||
| dba12992e8 | |||
| 8d25202067 | |||
| 1eeb0f6748 | |||
| 3072a5d7c2 | |||
| d6e8601a62 | |||
| da9783aaf7 | |||
| ad30a3c4ca | |||
| d846eef0b6 | |||
| cd0b38d234 | |||
| 8c36a96920 | |||
| d71ec28edc | |||
| 05792c46a3 | |||
| c0a8d09ca7 | |||
| 90e2465d7d | |||
| 030f52e998 | |||
| 8dae160d0f | |||
| 861e9cefb3 | |||
| 9907742a0f | |||
| 7b8c13fa5c | |||
| ebd72fa0fd | |||
| 68e641e9ed | |||
| a68e0ee42f | |||
| 986224519a | |||
| faeb00008a | |||
| 57b27ffbab | |||
| 856f26e35b | |||
| 748d4d2fb9 | |||
| dcb3a9ac51 | |||
| 377ce6c5bf | |||
| 27105127f6 | |||
| 5bcdcdd1d1 | |||
| 5f8c2b1b4e | |||
| e1b1fd18b5 | |||
| 8bd5f10a2c | |||
| 088d5bb2ed | |||
| 575e349828 | |||
| 9c59b711b7 | |||
| 4e8707b93f | |||
| 769573d1e9 | |||
| 9702edb554 | |||
| e31e514474 | |||
| abb17d64a1 | |||
| d7a053578d | |||
| 39dfd18880 | |||
| b4f9cf551f | |||
| 0abf14384c | |||
| bab7367a59 | |||
| 322515e8d5 | |||
| 967491a22d | |||
| ae2fda6c02 | |||
| 77760a62fd | |||
| db54537369 | |||
| cd84ffb036 | |||
| eb533138bc | |||
| 4301278514 | |||
| 4cc07196ac | |||
| c52680a131 | |||
| 5a369e1b50 | |||
| 25a5178aaf | |||
| a5d515bfd6 | |||
| 841050ec83 | |||
| cecc3863cd | |||
| 9bc7e4bdb2 | |||
| 0cfc402823 | |||
| ef754b8b6d | |||
| c346f249cd | |||
| 35c5da08c5 | |||
| ba3d7e70f2 | |||
| 2ab6fffccc | |||
| 6252c74584 | |||
| cfc80a17d8 | |||
| cb3784d8b1 | |||
| 8f270af124 | |||
| 93ed94c493 | |||
| 546cd4f70e | |||
| 0cf08d32c7 | |||
| d2716d66e3 | |||
| 324e92f879 | |||
| cb049e4e58 | |||
| 7f198507f7 | |||
| 6dff31d34b | |||
| ef4282f8de | |||
| 8fb4962407 | |||
| b7c7a1f701 | |||
| 324b54132c | |||
| aa692a99a9 | |||
| 9d94c8f369 | |||
| bf82545b4a | |||
| 63cc1bd21f | |||
| f936afa64a | |||
| 31a17a4add | |||
| f2907d816f | |||
| 62a11eb5a9 | |||
| 364e2a110d | |||
| b321130d9a | |||
| df2a387fc3 | |||
| 47516b31a7 | |||
| 832e392855 | |||
| 030984a763 | |||
| ac7757324e | |||
| b6e6be58da | |||
| 7da743a0dc | |||
| 09fca459a7 | |||
| 496b541cb1 | |||
| 3cf7255c4f | |||
| d2a725ec94 | |||
| cabedf173d | |||
| 1c30c8c801 | |||
| 101f55e65c | |||
| 1892c34ac6 | |||
| 9c4c0ff3a1 | |||
| ff2720c56e | |||
| 5ad1cd32b2 | |||
| d23db8306e | |||
| a5807f4a77 | |||
| 5e6e4417a5 | |||
| 48e6e7d586 | |||
| 5105cd2c6b | |||
| 9723630cea | |||
| 7e928974a7 | |||
| 6d6e2232ea | |||
| c6bc3b8692 | |||
| ad210c7647 | |||
| 44016a4d6e | |||
| aad67b5736 | |||
| 7cd579e7ef | |||
| 4a3ebf6966 | |||
| 4a8736033f | |||
| de9a6fc90b | |||
| 317220c2e4 | |||
| c28c4c1986 | |||
| 6d5cd47c74 | |||
| 2afa9312fc | |||
| 16b9dcd0ea | |||
| 969af4d97d | |||
| 6899955b0c | |||
| 6df312cd54 | |||
| 0d3f5e6e74 | |||
| 416c7d5dda | |||
| a0df8d1338 | |||
| df79660531 | |||
| 1c7cb8368c | |||
| 627d54a081 | |||
| d7971e5e37 | |||
| 31adec86a0 | |||
| 0e42a7bac7 | |||
| 3671ed9e4f | |||
| bfde9f7eef | |||
| 8877a0c9ae | |||
| 7d64441008 | |||
| 7dbd0582b6 | |||
| e836f18ff1 | |||
| ea01534e6d | |||
| 9bb57ec840 | |||
| 7d45e8b376 | |||
| 9cf1a19762 | |||
| 43121fc2cb | |||
| 3ac080425a | |||
| 659989af45 | |||
| 7f9c91901e | |||
| d960d0a851 | |||
| 450b9b7900 | |||
| 562299d809 | |||
| 18ed717410 | |||
| 7afd506301 | |||
| c4ccf1a28d | |||
| 062f32a186 | |||
| fc965a75dc | |||
| ca10c5c6e3 | |||
| 84848f8a28 | |||
| c1cf3934fa | |||
| 80ee3d3440 | |||
| e8b5f49861 | |||
| 7e7fab1b18 | |||
| 851b243f01 | |||
| dbc4a8b331 | |||
| 4493bd03e3 | |||
| 47cdbe4a20 | |||
| a92f472714 | |||
| ba397634fd | |||
| 7e6049ba02 | |||
| 12bcc254c8 | |||
| 60dc54b234 | |||
| 8278fc2149 | |||
| 3964b2dd8c | |||
| 3d21639d5b | |||
| 53ebde7633 | |||
| aff27ca884 | |||
| d05ab5a531 | |||
| 130870e6a9 | |||
| 04709f2798 | |||
| a1d4b792e8 | |||
| 7b5bccb329 | |||
| 757b11325b | |||
| c57f5ed668 | |||
| 26d5543eb2 | |||
| 3d404c2927 | |||
| 1879319f66 | |||
| c5332eb161 | |||
| a3dc092ebc | |||
| 48125a6d5f | |||
| 4ba90f6887 | |||
| 789fa42f52 | |||
| 93b1202576 | |||
| 4fe58bc303 | |||
| e3cc807c7a | |||
| ceb60b426e | |||
| aaad553233 | |||
| a88883c1c1 | |||
| 042d7800d0 | |||
| decd0c51e4 | |||
| 8382b76b0f | |||
| 67a2dd12e8 | |||
| c8cbdc17d3 | |||
| 8ecdbf216d | |||
| 6f5078b555 | |||
| 6dffd8ae82 | |||
| 83e1288c6a | |||
| 92f5c6b1da | |||
| fab90386a7 | |||
| 08670da54a | |||
| 3852ae1264 | |||
| c5f0fe7c40 | |||
| b2d0e14848 | |||
| c1622b04ab | |||
| 8ef066baee | |||
| 4f5a8b15ed | |||
| 92b9ff3f96 | |||
| 0d52f3b417 | |||
| cb7449b83c | |||
| a89e63f672 | |||
| 01cc5234dc | |||
| f2777cd02d | |||
| 0fa6e050e4 | |||
| 3f38615af1 | |||
| 0877b58ba6 | |||
| 86c1d49c08 | |||
| 4bf2326bd1 | |||
| 727ffeedc9 | |||
| c8a7135d6c | |||
| 59d61e5d9d | |||
| b44390bf39 | |||
| db3ee34b44 | |||
| 5e7669b539 | |||
| ddcaf2f4cc | |||
| 2307adf8d2 | |||
| e395533632 | |||
| c3b7917da1 | |||
| a4d3c76093 | |||
| 376edabb65 | |||
| 3c757724e9 | |||
| 3511218e37 | |||
| 90381d5d63 | |||
| 5aa1171988 | |||
| ff328bf68b | |||
| 052c957a94 | |||
| eeb38a8e3a | |||
| 3d35b3c2cc | |||
| 49c5c71348 | |||
| c8e26be649 | |||
| cef4103137 | |||
| 61ee8ca42a | |||
| 38afe1fe3f | |||
| 091d82470b | |||
| 7a13ade405 | |||
| eab990901b | |||
| a9a8bb3590 | |||
| 4091989752 | |||
| 196085eb0f | |||
| 28a641066e | |||
| c9436c8d88 | |||
| 99b1f1a8f4 | |||
| 24351416f6 | |||
| 6a3aaef486 | |||
| bb77071749 | |||
| 5f3772a42c | |||
| 6e1af6a051 | |||
| 9b463c26de | |||
| 7205a8f9f4 | |||
| 914073a30a | |||
| 537112fcb1 | |||
| 8b04787d09 | |||
| 49e69399a6 | |||
| 481c2164d0 | |||
| 8fabd3982d | |||
| ee1331bb46 | |||
| 0e83fb37c0 | |||
| a337c47d4f | |||
| 3bceaf41b4 | |||
| a46245f21f | |||
| 790499376f | |||
| 6e0766fe78 | |||
| 67ac7124b1 | |||
| 331d4d2d45 | |||
| 52e0c6fd35 | |||
| d793439f43 | |||
| 07e135547e | |||
| b8219eb7a1 | |||
| dba9d60d3a | |||
| f92fbaa548 | |||
| 3deb373c60 | |||
| 61156d6d61 | |||
| b0be1553bf | |||
| ee1310af71 | |||
| 3a13b75e37 | |||
| 2850bf9e00 | |||
| 4bc7afae41 | |||
| 3abb8abd07 | |||
| 7e8d9a3e66 | |||
| 27717e1b6d | |||
| fe90077681 | |||
| 2cc217cabf | |||
| 7eae652302 | |||
| 6b25bc0e0c | |||
| e77462a866 | |||
| c9fab1c314 | |||
| f8d65b4865 | |||
| 102cc11ee9 | |||
| c333790dd8 | |||
| 2adcaa576f | |||
| 3db8b544ba | |||
| 8510afe233 | |||
| a43cd3456b | |||
| 7f851eaeb9 | |||
| 95fa33157f | |||
| 4a53ba1886 | |||
| b1a33a494f | |||
| cdd3676478 | |||
| b8d2049bc4 | |||
| 94dd36d1ec | |||
| 5119132dda | |||
| e9437c2b2b | |||
| e61008d6c0 | |||
| 555037b623 | |||
| 6cfb9a24e0 | |||
| ef62688522 | |||
| a039ec0d21 | |||
| 3e7c2bbacc | |||
| 7eac17f5ea | |||
| 103cd2a5ed | |||
| d62a85f2ce | |||
| 606ef3c179 | |||
| 1ee0c4caf4 | |||
| 4f4408f37e | |||
| ae29148565 | |||
| 7d70f0cd14 | |||
| 3cd6bf0ead | |||
| a483ddf7ae | |||
| ea5457d831 | |||
| ff4fcdb03c | |||
| 66213d8e4b | |||
| e18c24cdb5 | |||
| 6fe54a2d1a | |||
| e00cf92f47 | |||
| cb221d9996 | |||
| 89da8820e5 | |||
| 2d3fc8141d | |||
| 792d1bd883 | |||
| dab9de2e61 | |||
| b8963032e7 | |||
| 10f7525277 | |||
| 9ca1e15f51 | |||
| 2e30efb530 | |||
| 02bda12599 | |||
| e1f64922c5 | |||
| 4780c73224 | |||
| e41655d67c | |||
| 890074a03e | |||
| 0a357c0ac1 | |||
| 7cea618fcc | |||
| 667332bab0 | |||
| c3249d599f | |||
| 405239758e | |||
| 07f2afa635 | |||
| 1bd2867715 | |||
| e6543c2776 | |||
| 04ea0b9316 | |||
| fc696a7e29 | |||
| f0e6eeb57d | |||
| 56b91b582e | |||
| 37500a13f6 | |||
| 0adcb5bc2f | |||
| c9d20bfd47 | |||
| e06e372529 | |||
| bcbbf2c366 | |||
| e6883c5cc7 | |||
| 2462e8dc9d | |||
| 695765fde7 | |||
| 1c3b7ba863 | |||
| 15a7b6094b | |||
| 26e5ccb60d | |||
| 2c89bfbc81 | |||
| 4a5044e61a | |||
| c666cf5a49 | |||
| 324e256dfd | |||
| a5c47a2da8 | |||
| b7b29d96de | |||
| e2d2946007 | |||
| 16dfe58e4d | |||
| eb22e265f2 | |||
| 221df9bb19 | |||
| a3dd7506d3 | |||
| 9294f96168 | |||
| eb6dc2b8ae | |||
| 9a80c0b1de | |||
| 508fc29221 | |||
| 809bf8fb43 | |||
| 2d4c9cda72 | |||
| e99335c085 | |||
| 53ca48efe2 | |||
| 7947e78daa | |||
| 1287fddd8f | |||
| 720eedf7c5 | |||
| a9e5f9fbe9 | |||
| 5c78d35078 | |||
| a6fc079c52 | |||
| f5cff71284 | |||
| e8796a148f | |||
| 6c880d1c20 | |||
| 1ef953e4a5 | |||
| 78d3fc59b9 | |||
| f6f6f15604 | |||
| 510e0ce083 | |||
| 238c0a5d1f | |||
| e1a351cb1a | |||
| bc786f9e59 | |||
| 496f6aed3c | |||
| 8e42e20ebe | |||
| 698fbe891c | |||
| 7a0d957b05 | |||
| 7039c84c6a | |||
| 8ad56c4229 | |||
| 52108959c9 | |||
| d6d8411a5f | |||
| eec72275f1 | |||
| 1fbc41f1fd | |||
| 6a359a586b | |||
| 32d5369675 | |||
| 850e45b1f1 | |||
| 3f1da12faf | |||
| 99337bf4a1 | |||
| 0cd41d1dc6 | |||
| 07d1c28025 | |||
| db546e607f | |||
| 1b546505d2 | |||
| 7878405a12 | |||
| c8f3630e64 | |||
| 3d6c09b38d | |||
| ece7d9a16f | |||
| 7f97d40080 | |||
| 11da45ee55 | |||
| c3839648f7 | |||
| dc1f1664fd | |||
| 61f19b6e3e | |||
| 3ca73b0c4c | |||
| cda853872a | |||
| c08f520acf | |||
| 5fc7fe9648 | |||
| 5c666fac14 | |||
| b26cee21f6 | |||
| 4fafb723aa | |||
| 0464e9f864 | |||
| 07c5fb2a02 | |||
| f0b0691bfe | |||
| 331b8dd7d4 | |||
| 729cebda47 | |||
| 0052c85002 | |||
| b522f73ba8 | |||
| 17a9bab142 | |||
| 067b9a15d1 | |||
| 26e9c4c489 | |||
| c8c61e36bd | |||
| b34b386588 | |||
| e39484e9a8 | |||
| 427e2d30c5 | |||
| 38bd396f90 | |||
| 5a430c3e6b | |||
| 85c0d42616 | |||
| 57cff4bca8 | |||
| d4b6cc997d | |||
| 020dbb180a | |||
| 45f1d83bc7 | |||
| 6b6fd36050 | |||
| c71862174a | |||
| 6bd14cf1a1 | |||
| aedc0c1302 | |||
| cf1e926e37 | |||
| 84dee1e738 | |||
| fa22bcd456 | |||
| 8d017f0ea1 | |||
| f5b23103d7 | |||
| 5fcf07f388 | |||
| d66d36126c | |||
| cb81e637b0 | |||
| bfc840f436 | |||
| ebf0fbc969 | |||
| 9888afd6d0 | |||
| 1ada1a4ff2 | |||
| 828675bf0e | |||
| 2490f8f471 | |||
| 19edb3ccc3 | |||
| 6138f6a2bb | |||
| c0efc759ef | |||
| 680175fea0 | |||
| 00b3d6f923 | |||
| 63e47ed480 | |||
| a446a2366c | |||
| 9877b71ee0 | |||
| 13f06c812d | |||
| c9d25e20f0 | |||
| f9f9bb9c3c | |||
| 809d9bc498 | |||
| 9ad0c80e67 | |||
| d642a55b91 | |||
| d5f311d3a2 | |||
| c7959ce2a9 | |||
| ec7244d971 | |||
| e997463c88 | |||
| 1103353b57 | |||
| d7d95e0f43 | |||
| 67bf6a0998 | |||
| f1cc20edc0 | |||
| c1585376f0 | |||
| 9a09e5c4a0 | |||
| e557c88667 | |||
| 9658c83a33 | |||
| 7368c740a6 | |||
| c9e8fd307e | |||
| ce5304f9a2 | |||
| 2283b8038f | |||
| 8c33893ffd | |||
| 702c372744 | |||
| 2a47aaf4a8 | |||
| e15231c4a4 | |||
| fad3519d4f | |||
| 3024850bb1 | |||
| e9484cff12 | |||
| 799f30c663 | |||
| 502607410e | |||
| 09cd9a8017 | |||
| db56caff3d | |||
| 11c25a72fa | |||
| afef22e3e7 | |||
| 6512d717e1 | |||
| 099022224f | |||
| 455a6e4554 | |||
| 16fb54da5e | |||
| 254e19da91 | |||
| 21308de6cb | |||
| 51b9091689 | |||
| e5c1a7b5c3 | |||
| 0d54db5f9f | |||
| fa2bf69a53 | |||
| d428da5a35 | |||
| 18b27692aa | |||
| fcee426b80 | |||
| d9bc99658b | |||
| 489584b85e | |||
| c3954f2e38 | |||
| 6913ae5a5f | |||
| 8ff93c2c14 | |||
| f77503e5a3 | |||
| 35f5783c62 | |||
| aff7feb767 | |||
| 3a0d966ae4 | |||
| 1357b0a4c2 | |||
| 2086fbcf17 | |||
| 35f76ce26b | |||
| 5b3a2ed2ab | |||
| b3f2f40db7 | |||
| bde4b6020a | |||
| 0c352ede7a | |||
| 3000a62f53 | |||
| 6513bf3a3a | |||
| bf16032308 | |||
| 5a6d3a601d | |||
| 9a5f4f28f4 | |||
| 88e3ff5413 | |||
| 5f4aef3c11 | |||
| 3bf9e9e9c2 | |||
| 5c83e8a853 | |||
| 32583bd405 | |||
| 3c6add5293 | |||
| ad1c52abf8 | |||
| 1ce965ed5f | |||
| 9f4132c739 | |||
| d38d7f1297 | |||
| 31d496342f | |||
| e198bf02ab | |||
| deffb584b0 | |||
| a25e3f8d70 | |||
| 703831ec6d | |||
| 105b84e343 | |||
| e626e07bd3 | |||
| ee952b10d9 | |||
| c7d3ab3382 | |||
| aa73cc9202 | |||
| 683b65ee18 | |||
| 87e5a8b52b | |||
| 53679122af | |||
| b8d82cc28c | |||
| f4d10ec033 | |||
| 21fa036c21 | |||
| c2466d9571 | |||
| 3ebe66a5e4 | |||
| f18043ee21 | |||
| 73ca72922c | |||
| 1721222080 | |||
| a8cb9fa2f5 | |||
| 419f6e099f | |||
| 2e2086f3f8 | |||
| 435d920448 | |||
| 5e79462685 | |||
| aeeb60868c | |||
| 48af805ada | |||
| 921863da15 | |||
| 4ec06cc478 | |||
| d1bb5e5f36 | |||
| 5b26afbd6b | |||
| 4a1f4144eb | |||
| c3746a55bb | |||
| ece37ca2c0 | |||
| afddfcb2b1 | |||
| 94dd23aaf8 | |||
| f7a52c4444 | |||
| bc8984a9bb | |||
| fb7ccc6820 | |||
| f8f7febe41 | |||
| 52fb6b7d7c | |||
| 9476a49763 | |||
| d501a20065 | |||
| ae96ca635c | |||
| d95a485108 | |||
| b4734ee9a4 | |||
| 94e7f41a9d | |||
| f49cc67f83 | |||
| 573d1b324a | |||
| 5b7cd460e9 | |||
| a687667448 | |||
| 4511739377 | |||
| abc903d625 | |||
| e6e32bad4d | |||
| 887869c771 | |||
| 782b80eff7 | |||
| 8431174e88 | |||
| ebf51ffb6b | |||
| 400626d882 | |||
| f1900768c0 | |||
| 5ea2dc97fd | |||
| 8db5bda4f7 | |||
| 74ed0b5efc | |||
| 4ed946bca2 | |||
| d1ea050232 | |||
| 383d8713cb | |||
| 395cb45039 | |||
| 59fca8523f | |||
| c20e6d3a13 | |||
| f52d1bd0ba | |||
| a7f82bd11a | |||
| e1565c5707 | |||
| 6af6f576eb | |||
| 7f4683a811 | |||
| ade1802e04 | |||
| b85eb5da8f | |||
| b2c7e521d0 | |||
| 5305759fb0 | |||
| 29b73896b4 | |||
| c7c65cf5bc | |||
| b177c5fd9e | |||
| 014eb8fcf9 | |||
| a87af0d7e5 | |||
| 1599ade7ca | |||
| bfe9743f20 | |||
| 9edc4e8030 | |||
| e259fa8ede | |||
| 79e20448f8 | |||
| a5c02ba0a5 | |||
| 4b12d83fdd | |||
| fab1a52963 | |||
| d2a050bb29 | |||
| 28028cf755 | |||
| 3cd2957544 | |||
| 0bf775a20a | |||
| 065e10fd1b | |||
| f71429dc0f | |||
| be874f0cd0 | |||
| 175228d036 | |||
| c3f96f8377 | |||
| d952324cfa | |||
| ab8e24e332 | |||
| 64c973ccc5 | |||
| c8cade5519 | |||
| bcb9a11754 | |||
| 1b91ec49c8 | |||
| 1b0bf2d264 | |||
| 7ce3c1e798 | |||
| cf6a167a1c | |||
| e4edaa78ae | |||
| 57eb0df62d | |||
| 217a72122a | |||
| 0b248ef69a | |||
| 9905fa3116 | |||
| 58b2cdbcff | |||
| d3da60f01d | |||
| 25ec47e2ac | |||
| a0327b375f | |||
| 0191220b64 | |||
| cdec8f6b27 | |||
| 9140315c7b | |||
| 7f24ffea6a | |||
| 93ee81fa45 | |||
| 7b7e3e0fce | |||
| a614dd7174 | |||
| bb25748a9d | |||
| 69eb6978e7 | |||
| 131f9e39d3 | |||
| 34ddda1009 | |||
| 72124862f0 | |||
| 3aacd0a3d5 | |||
| 614e724dd4 | |||
| c4cd912048 | |||
| 64b46751d2 | |||
| f31999c030 | |||
| 1983754132 | |||
| 8e48319c44 | |||
| 5466d8e959 | |||
| b7c6872903 | |||
| f7f89d63b2 | |||
| 68d399d0ae | |||
| 730a3d4772 | |||
| fea78fbfbb | |||
| 6878b181c7 | |||
| f28992719d | |||
| 54128db1cf | |||
| d0e4cc5ee0 | |||
| e35be92a3a | |||
| c4179d4ea9 | |||
| 3d467cabe5 | |||
| 2277a1ff9c | |||
| ca5ed4b2cc | |||
| 5aad874639 | |||
| 6df10074d4 | |||
| 259a073f0c | |||
| f0286cb1e5 | |||
| b759ccd032 | |||
| 6e93e611c8 | |||
| 176e7469b6 | |||
| 2209c6a344 | |||
| bc88d7d9b0 | |||
| ee8fb221d3 | |||
| a1853ea27c | |||
| e80a222d31 | |||
| 1e991548ac | |||
| aa126066b7 | |||
| b00bfa0adf | |||
| aaeb01b428 | |||
| 2ed3c27822 | |||
| 07e3c096b3 | |||
| e1a36e90a4 | |||
| ebad6b6730 | |||
| 798fa3ec81 | |||
| 2ed0c72ec5 | |||
| f4fd895631 | |||
| 46bf0fadaa | |||
| 13aa3e24cd | |||
| 64ee487ed5 | |||
| cdfa2d68b1 | |||
| ffa3ec54f9 | |||
| fd3335521a | |||
| 1a866c7552 | |||
| f28172c5f4 | |||
| a13108d5b6 | |||
| a9f82cddea | |||
| cb89c5fe6d | |||
| 16d03f660b | |||
| 13ee151a69 | |||
| c7f3935506 | |||
| e91ae97e19 | |||
| f23dabb149 | |||
| 39450b6e4e | |||
| e1bf231727 | |||
| ec4b30f9d9 | |||
| 7dd0b0dc07 | |||
| 808d9255a8 | |||
| f649496caa | |||
| 6d94be75e9 | |||
| f8ed412b40 | |||
| 706dd0f86c | |||
| c03e55b32a | |||
| 6043b4574e | |||
| a4548a4b9b | |||
| 4661917f64 | |||
| 6629698dfe | |||
| ffe155bb2a | |||
| 38efdc8222 | |||
| a6df995fbb | |||
| 633b15caf3 | |||
| da0a0ef8ca | |||
| 0d254e8914 | |||
| cf4cffd91a | |||
| 896841403f | |||
| 77a5a4953b | |||
| a6bfd7f15b | |||
| 7df85e8a45 | |||
| 78502d9fe0 | |||
| fd049f0a64 | |||
| ac281ed35c | |||
| 11ef57d81e | |||
| a14ad77a36 | |||
| 9075a2bbfc | |||
| 7588513003 | |||
| e3e65e8f2b | |||
| 42df5cbc03 | |||
| e094088852 | |||
| f9221778cc | |||
| eb0464071d | |||
| a7ff1920f9 | |||
| 1e7e5fb175 | |||
| f43dc3e758 | |||
| 219abb5235 | |||
| fcb6f0bafe | |||
| c10f7db576 | |||
| 6bc0f0ef92 | |||
| c4046a3ea5 | |||
| bb4a4a255d | |||
| 0c253041bd | |||
| 639f9d8305 | |||
| ac722661a5 | |||
| 02c99bdf66 | |||
| 6c35825453 | |||
| 9df75b3f9e | |||
| 122ce41f78 | |||
| 29ea45fc02 | |||
| f609a26929 | |||
| 8cce756f8f | |||
| 4dcf12a3ad | |||
| 6815cc52fe | |||
| d832626bb9 | |||
| 15eb140d28 | |||
| 2cc1d00bab | |||
| 5a1df325e2 | |||
| 2e6894b7bb | |||
| 7a031b60cd | |||
| f2eba8b0bf | |||
| 63a9ddeb77 | |||
| 2001d127b8 | |||
| 73dc280847 | |||
| e9d6016fe6 | |||
| 65404674a4 | |||
| ae0715e8c3 | |||
| b6ca10b05a | |||
| 098c3b817e | |||
| 266dfc019c | |||
| 1fc852cb31 | |||
| 7610bf2cb4 | |||
| e354b614e9 | |||
| 7f5f0fea42 | |||
| b3742c0165 | |||
| 14d8689e66 | |||
| a999bb3227 | |||
| 0c5c199f2f | |||
| 272b2ef0e9 | |||
| 03bef3fb5b | |||
| e9f5a19544 | |||
| f1f5b248c2 | |||
| 313f193b55 | |||
| dea505cbb8 | |||
| 2611fbeb18 | |||
| 9075eafaae | |||
| 70e1e83eb2 | |||
| a34bd150fe | |||
| 1d2fbbc8a7 | |||
| 1906aa2bbb | |||
| b3726f4c7c | |||
| 719891c23e | |||
| 0e518c2d92 | |||
| 249a9c0912 | |||
| 5b8af7db3b | |||
| 1358756071 | |||
| e17db9655c | |||
| 568ab254ca | |||
| b4a307d0bb | |||
| 5f9e2e60fb | |||
| da2b14e6b2 | |||
| b727f93bbc | |||
| bdd756b58c | |||
| d19d6f21a0 | |||
| ba5575e0fc | |||
| c9a82ac3e7 | |||
| b650a86e58 | |||
| 3b798599b6 | |||
| cc1e761eda | |||
| d130ff3889 | |||
| a858d0993f | |||
| e65771f25c | |||
| c631c26a9f | |||
| e7829c1a57 | |||
| a25d9bcc8b | |||
| c20c3be91d | |||
| 1032dbe142 | |||
| e635df8d53 | |||
| a370f32c15 | |||
| f2d7c48b31 | |||
| 76c13beef0 | |||
| 67db5087cd | |||
| 05d8a0ebad | |||
| 257f7a229b | |||
| 436011dda3 | |||
| 804185d392 | |||
| 37931fb2c6 | |||
| e4242c8735 | |||
| 86f1a98ac8 | |||
| b907ffec97 | |||
| 6987e6015a | |||
| 7a527807d9 | |||
| a143100f46 | |||
| 57d592828b | |||
| 6a931d67cd | |||
| ff76ef6a0a | |||
| 5abea62e3e | |||
| abbc9cd9cb | |||
| 7ef5406946 | |||
| 2bf182fb36 | |||
| cccd1a8739 | |||
| 3dceffd283 | |||
| c125cfa6cc | |||
| fe5cc9c839 | |||
| 07418cbf7f | |||
| c3c58c95b9 | |||
| 89edec7bfb | |||
| ee2a851aab | |||
| 001be23127 | |||
| deaa0725e9 | |||
| a9d2b4b73c | |||
| 9d3eb490c7 | |||
| 0582039ae0 | |||
| 217db3cb61 | |||
| 9fed67a05a | |||
| 97150dcffd | |||
| 7ae255a553 | |||
| c998342206 | |||
| 5a1203963f | |||
| 4a97033e7e | |||
| 192d348f78 | |||
| 47d19f7914 | |||
| dce7bec2d3 | |||
| 5f4ff33ce3 | |||
| a20dae0df1 | |||
| bffc5717bc | |||
| 1266b1a73f | |||
| 42f33890aa | |||
| 0682dc3a0d | |||
| 606f4defdc | |||
| ff89c704fa | |||
| 1ce4e5721b | |||
| 6be25eabb3 | |||
| c496fe4d1a | |||
| 497ded7e40 | |||
| cc16809f71 | |||
| 7c8a50d7d8 | |||
| 5df524ecc0 | |||
| c5960b4be1 | |||
| 6ce4fe40f7 | |||
| 811193e468 | |||
| 9174c19291 | |||
| cbbb2eb85c | |||
| 45ce441a55 | |||
| 54d1b49981 | |||
| c4d49dfc21 | |||
| d5ca29a5ab | |||
| 856157b6da | |||
| 0251a9c529 | |||
| ab4d0e2dac | |||
| defecbc6ef | |||
| 66be028ad4 | |||
| fc62d736f7 | |||
| 1647597943 | |||
| 3236b3d10e | |||
| 3b4d15d35b | |||
| 3384638e36 | |||
| 560e5560f1 | |||
| 95bdb5a6a3 | |||
| 6d52fce720 | |||
| d6bc633870 | |||
| 8d449825f9 | |||
| 8f42c38039 | |||
| a2b00e24b6 | |||
| 13eab4177d | |||
| 37edc141e2 | |||
| 80b0671cc9 | |||
| 33c2b798fb | |||
| ef03a41631 | |||
| 9431bf1c29 | |||
| 1b7de43e80 | |||
| fa3f2ae035 | |||
| a7a7e2d3cc | |||
| 0757669c49 | |||
| e5081f587a | |||
| f503c7c99e | |||
| a527d237aa | |||
| 3baee8f3c6 | |||
| 07f353718d | |||
| 95ba19ee69 | |||
| e3f2da01d3 | |||
| db7c2b97f8 | |||
| 250e4476ba | |||
| 157b625263 | |||
| 0a4090b8a7 | |||
| 2c0a95ed66 | |||
| 12dcb3adb4 | |||
| 06be820730 | |||
| bb683cf38e | |||
| 6cf61714ca | |||
| 3b7ffcf759 | |||
| 9474db5cb6 | |||
| f4ee4fd5ae | |||
| 72f86fe801 | |||
| db58c25af2 | |||
| 8bb50123f9 | |||
| a7a2f54716 | |||
| 72b72bb368 | |||
| 2f350316b6 | |||
| 236c613365 | |||
| 199a53c4ca | |||
| 8ca4d34aad | |||
| e7d534c5a6 | |||
| e6688ab190 | |||
| 6c924578de | |||
| 1c3b4c8a54 | |||
| 7b78084150 | |||
| b6962222ee | |||
| a4cd12274c | |||
| c620d5e5f0 | |||
| a482f0053d | |||
| 3ce1a5672e | |||
| fc216aeeb8 | |||
| c0cdfea97d | |||
| aaf1d78220 | |||
| 4cd3f2a72e | |||
| ec8962a599 | |||
| ded6434502 | |||
| c8e8911ef6 | |||
| cbe397388f | |||
| fd97a89c57 | |||
| 941f8b5f16 | |||
| 886c8ec79f | |||
| fb58502398 | |||
| b51bb8c221 | |||
| 7fa98e33ce | |||
| 744b3527e5 | |||
| dc2ace2494 | |||
| c930fb4c81 | |||
| 48479cd86f | |||
| f2dbe6685d | |||
| 7bc5b136b1 | |||
| b4b1f26a9f | |||
| 7e88b7bb3e | |||
| 6b86de13d6 | |||
| ea1f180a55 | |||
| 46e23b8f99 | |||
| c3a9653c89 | |||
| 1afa473d0f | |||
| bb92a7ab08 | |||
| 0b88f0cf54 | |||
| d40145008e | |||
| d3d34d2aac | |||
| e06c21426e | |||
| bfcd6e9772 | |||
| 2b67c01a24 | |||
| 468655c916 | |||
| ead8de78ea | |||
| 7c002c14cc | |||
| 4c56b827e5 | |||
| 06777f7efc | |||
| 80c9ecedcd | |||
| 38ee1c8d49 | |||
| e598fa4701 | |||
| ef60a4cf35 | |||
| 7ce75961b4 | |||
| 361292bd23 | |||
| e840aabf8d | |||
| 759fb5937d | |||
| c9bef19043 | |||
| b60ff46806 | |||
| 23a9938317 | |||
| bc7a87613f | |||
| 6a742cef5f | |||
| 08898f69be | |||
| cf52b683c0 | |||
| 621a9b647a | |||
| 262ddecfc5 | |||
| c76455be02 | |||
| 411c65e755 | |||
| 6e4d8a273e | |||
| b2d6254b44 | |||
| b45ced35ee | |||
| 2f80a277eb | |||
| ff07598ce2 | |||
| 0d4e7f9537 | |||
| 4a4549405c | |||
| 2ddb86eea5 | |||
| ae32d158cb | |||
| a4854aaddc | |||
| 8c73b5c42d | |||
| 14bc2b5d4f | |||
| 6aeeeb9012 | |||
| 13d938ae3d | |||
| 32e1fd55c5 | |||
| 200f405706 | |||
| 5de17da66e | |||
| 2e28978264 | |||
| a813b6a854 | |||
| 857df41a6d | |||
| 4e0faffc72 | |||
| 63f4726e06 | |||
| 5216223f45 | |||
| 0816d2cf20 | |||
| 7e8c7dfcbf | |||
| e89e6b1361 | |||
| 7dc212edeb | |||
| f625ecbeba | |||
| ca27155a52 | |||
| 12f38e56df | |||
| 9fe035f8e8 | |||
| f2623e7c09 | |||
| b03fcdf323 | |||
| c428ce6277 | |||
| bb3c205e05 | |||
| 0e2736399e | |||
| 447d0930f7 | |||
| f520a702e0 | |||
| e30651a807 | |||
| 90176a547a | |||
| 8385653118 | |||
| d3dd9c6566 | |||
| c4f5d419c0 | |||
| 71c44cf7f5 | |||
| 2c09760378 | |||
| ff749ab09d | |||
| f42fab0dec | |||
| 7c5d237447 | |||
| d43a475650 | |||
| ef0458c739 | |||
| 5d5cb04297 | |||
| 80ca96d469 | |||
| 999994bcf3 | |||
| 578833ef01 | |||
| f2f2bcf23c | |||
| 77ee099212 | |||
| bd6ef958e7 | |||
| aa80c3a96c | |||
| c98c3122b5 | |||
| 70edc700b1 | |||
| 1500ed3665 | |||
| 23a48b2815 | |||
| 99efe9aaae | |||
| abd9f74871 | |||
| ca3f1f6406 | |||
| fbd2db34e6 | |||
| 2f5caa63f8 | |||
| 2f7c20eccd | |||
| 11a20379f3 | |||
| 3663965f3e | |||
| b6b9cd9d51 | |||
| f7ce9339ba | |||
| 9648bf3019 | |||
| 25a1c59abb | |||
| 9751fbe4dc | |||
| f3e7b77dcb | |||
| f7826f8a37 | |||
| 56459cab81 | |||
| a8e85f00c9 | |||
| c10691faff | |||
| 7672cd43d5 | |||
| 9d0e1b635a | |||
| 03f260059a | |||
| 844a83ed58 | |||
| d7382c86a5 | |||
| 3a529ce878 | |||
| 618681997d | |||
| 20ee6f1158 | |||
| d986380169 | |||
| e5bdcfaf9e | |||
| 2d94337e1a | |||
| 97c184f8f8 | |||
| 08e7da71f5 | |||
| c773d33cc3 | |||
| 931f16cfa8 | |||
| 7564dbd32f | |||
| 0b9be84d46 | |||
| d1073ba574 | |||
| fe87fa8205 | |||
| 203b5eed27 | |||
| 4ae352d288 | |||
| 4d10054112 | |||
| 72c154fd0f | |||
| a3910ced70 | |||
| 61007078b6 | |||
| c04ab6628b | |||
| d0c1a989a4 | |||
| 6995365535 | |||
| 3b4c3a3df6 | |||
| 5f52c44c14 | |||
| 7f5173bf94 | |||
| 16aac30c66 | |||
| ebe9ae2b17 | |||
| 8726c2fd99 | |||
| 2086f77dab | |||
| 4eae917c1c | |||
| b1ed3bad58 | |||
| 1c04049f1c | |||
| 8531a1f430 | |||
| 6ad76f4d1c | |||
| fbef6535a5 | |||
| 731685cf64 | |||
| 92afb4d9bd | |||
| 815f08982a | |||
| 9e883ca48f | |||
| e3ea3c8fbe | |||
| 788b625553 | |||
| cc3685ffaf | |||
| 872cefeb27 | |||
| b595d59497 | |||
| 5229e45363 | |||
| de629dd62f | |||
| 2cb555ed11 | |||
| ef22740ccb | |||
| a2f590aeec | |||
| 3c2f69bf62 | |||
| 6bae045b4a | |||
| bf65e7e8f9 | |||
| a993a29b63 | |||
| 8c7a450e98 | |||
| aff313cd4b | |||
| 1e5175451a | |||
| acf224683d | |||
| cffd5d17de | |||
| 0eade71bde | |||
| 98d3d86004 | |||
| 85c84c9d86 | |||
| 158d4acbba | |||
| ddd8b73f0a | |||
| fe6111d6f2 | |||
| 8025cd1d2c | |||
| 0ebcac669e | |||
| 96b9fba333 | |||
| b1eaf763e1 | |||
| 5c3a18fa90 | |||
| d21f73658c | |||
| 6c5f703cf0 | |||
| 8fba4705f0 | |||
| 0f10939029 | |||
| 7a50ae28d5 | |||
| c88cb1daa0 | |||
| a822e259c5 | |||
| dcc10a3b8f | |||
| 63cd8fc24f | |||
| 628723d45c | |||
| 1f4b89ff4b | |||
| e434323d38 | |||
| e1451e1124 | |||
| 29ba35df7b | |||
| 65f26bb737 | |||
| 92b63e38f0 | |||
| b92c4cfc92 | |||
| a5453e43b1 | |||
| 983e297ff0 | |||
| 9a1958be91 | |||
| 6639c496c3 | |||
| 13dee60ae1 | |||
| 96892e081a | |||
| 87c3599895 | |||
| cc48f3d6f9 | |||
| bba8ff290e | |||
| 88b1ee0b43 | |||
| 1e2c61360b | |||
| 47a5faf874 | |||
| 5c9bb1bbd6 | |||
| db637a2b7f | |||
| 9e91bb4b33 | |||
| 4339948b1f | |||
| 16ab0d84bb | |||
| 753da05bc6 | |||
| bce6f7b41c | |||
| bd0a420744 | |||
| e9b62103e4 | |||
| d06fb949ff | |||
| 10d8fb6456 | |||
| 33898d49bb | |||
| e9c33fb288 | |||
| 0dfaa88c1e | |||
| a706766690 | |||
| 4f5f3846a0 | |||
| cd041b6944 | |||
| 773f19da05 | |||
| 53cc7e8a5c | |||
| 2b153abd93 | |||
| ecc509195a | |||
| 8c7983727e | |||
| abc46b1e86 | |||
| c91c12adde | |||
| 908591b40a | |||
| 3e055b32bf | |||
| 07a43863c4 | |||
| 60006ad24c | |||
| 5c55922a06 | |||
| d6645818b4 | |||
| fe4f23dba2 | |||
| ad4fdb76fc | |||
| 9295bd3f7c | |||
| f6555cf6f8 | |||
| 2bb8825538 | |||
| df99103a31 | |||
| ec7cc49825 | |||
| ea570c8160 | |||
| 770d293788 | |||
| 0fc769bb6c | |||
| b92520ddfd | |||
| d0d285ed57 | |||
| c5cecdd2e3 | |||
| d67ef3573c | |||
| 862ba19279 | |||
| ad36ea6b29 | |||
| 7c0b1172e1 | |||
| c5a4e90338 | |||
| 47592b9288 | |||
| 62c94f1b12 | |||
| 69671d3aef | |||
| 325ef293fd | |||
| 513f4c7ca7 | |||
| fb80ed218d | |||
| 50f7e7a71e | |||
| c04965c8db | |||
| 10f450e2d4 | |||
| 87f95cd4cf | |||
| d2c29c22fb | |||
| d34eedfdb3 | |||
| 5bbb5721df | |||
| 5c3b347350 | |||
| c779b7c4b2 | |||
| 61799786d5 | |||
| 53fc140db4 | |||
| 5e2c2db235 | |||
| b7e64bb5a6 | |||
| 1cd0aa4b74 | |||
| 22d9d9c588 | |||
| 1737ce45e3 | |||
| 93d0ca8731 | |||
| 515b55c635 | |||
| faaa637987 | |||
| 63f7214abd | |||
| c840a63dfd | |||
| c848b9d3c4 | |||
| 4cc5da9409 | |||
| 96a0010911 | |||
| 486ce7dbc3 | |||
| 60d020059c | |||
| caf5cac9eb | |||
| d358eff64d | |||
| b90dc6cc34 | |||
| ef6e366c08 | |||
| 814c91843a | |||
| da4dc32a6f | |||
| ca703d3701 | |||
| b49814c537 | |||
| ec58ec4a73 | |||
| 01b4ee1664 | |||
| 88637d9213 | |||
| 686019398f | |||
| 81dafb5e69 | |||
| 78730d4c71 | |||
| 1aa6e00b48 | |||
| 1f31e117f0 | |||
| 62c053729a | |||
| 80725edc3d | |||
| 2cec059248 | |||
| 74c63ac9e2 | |||
| 4da23a6280 | |||
| 91486b116b | |||
| 16c80d031c | |||
| ea7ed286a6 | |||
| 49c971c8eb | |||
| 7a73bff37a | |||
| 05c2a8eba4 | |||
| ce7585101d | |||
| 7cdd6ef33c | |||
| 64833bb84f | |||
| 3a706b0f2d | |||
| 1a4ac3ee5c | |||
| 00d87b537f | |||
| 679a6db391 | |||
| b98deeb5cc | |||
| 97eeb07201 | |||
| aae2aa64c4 | |||
| 9bee994898 | |||
| 81c50c6c32 | |||
| a050a78525 | |||
| 1560fe3298 | |||
| c0e11a797c | |||
| 32ab467e97 | |||
| e9ea5dec05 | |||
| 79295afcc6 | |||
| 856c9e14b1 | |||
| f9d15a6baf | |||
| 4835e300c4 | |||
| ec6aff4870 | |||
| ac9459c46c | |||
| 52982de589 | |||
| 24bb768450 | |||
| af21ac537e | |||
| 7cb5bf9c12 | |||
| 317207ce0c | |||
| 9db4ea6230 | |||
| 1b60a3522e | |||
| 9a6b7a90e0 | |||
| 06a52be95c | |||
| e3d5000424 | |||
| 2710144452 | |||
| 49769dffba | |||
| 1f0939f4e2 | |||
| 6e0af9fdfe | |||
| 14a747e490 | |||
| 317868261a | |||
| e6aa4e1eb1 | |||
| aafd8393cc | |||
| e6a1f1c012 | |||
| 00e052ad39 | |||
| fec49bcc83 | |||
| 690859bf57 | |||
| 6dfc596da1 | |||
| 77fdefea19 | |||
| b607b51d93 | |||
| a6e314bbba | |||
| 7c3fc13087 | |||
| c4467aa8fb | |||
| bfa66f70b3 | |||
| f2da045731 | |||
| 5f280d0e50 | |||
| 3a799389eb | |||
| 891bec7e23 | |||
| e48d86fad0 | |||
| b3bafb1d9c | |||
| 927507818f | |||
| 69cb2f088f | |||
| 6e1aaa2c69 | |||
| d06529ef4d | |||
| c2d2f817de | |||
| 227085622a | |||
| 39beec190b | |||
| ab234cf90c | |||
| c913be73d8 | |||
| 60a6582590 | |||
| 2e4f32023c | |||
| 88848d78b5 | |||
| 33cd16981c | |||
| 5b48371867 | |||
| 0f4d9a8e49 | |||
| 797ccc8b49 | |||
| be722412fa | |||
| 9895afb43e | |||
| 71820bf129 | |||
| b7c69ba5f0 | |||
| 1c17405721 | |||
| 1655a6f2a8 | |||
| f666fd5a9b | |||
| 53436082a2 | |||
| e74743227b | |||
| 2b6dee7f64 | |||
| 56379fff51 | |||
| 447ec39f49 | |||
| 33150af3e2 | |||
| cb452bcc7d | |||
| d974acac89 | |||
| 03d32e12fb | |||
| fbdc1c0476 | |||
| 3a793ceea9 | |||
| 22249a7317 | |||
| 0cc206e662 | |||
| b5f7633883 | |||
| 173f0f4cd5 | |||
| f37a47c0cb | |||
| aede445e2a | |||
| 4cb2fba8fb | |||
| ce721a579f | |||
| e9e453cf8b | |||
| ac3896feaf | |||
| f06daceb16 | |||
| 4f5eae2789 | |||
| 7ed892411a | |||
| 6a216ee4f6 | |||
| ecc5d648df | |||
| 06049563da | |||
| 9335a28cb5 | |||
| de86235274 | |||
| 3e5f10fca6 | |||
| dde4de5e20 | |||
| e8cddf8baa | |||
| 32ea99a741 | |||
| 6d1e5a3f5b | |||
| 1834a2f670 | |||
| 114c820c56 | |||
| 0b75129c24 | |||
| 35c8cdb5fa | |||
| 17de6f9ced | |||
| 7e50278d8e | |||
| 4e6d827ea6 | |||
| 644fa40339 | |||
| 7a0ad3af52 | |||
| 983e5a96f0 | |||
| 41b09d4027 | |||
| 7c7e08df59 | |||
| fdbb1f475b | |||
| c3009c34ee | |||
| 5b973282de | |||
| 47933d2ddb | |||
| 61847389d6 | |||
| fee2adb299 | |||
| 6e1dd7f719 | |||
| 469ecf4bd2 | |||
| 67e610a8a8 | |||
| a2b0b13c6f | |||
| b4ef380c49 | |||
| 640e547886 | |||
| 31b002dab0 | |||
| 37b8e87454 | |||
| 2ca4b8b2e4 | |||
| a6e0e2d837 | |||
| 4236dd3be5 | |||
| c406ea35ec | |||
| fd49e1c379 | |||
| 52c06f1baa | |||
| 1f4475d518 | |||
| 1cf74e7667 | |||
| bee7934220 | |||
| 32c2041f89 | |||
| 4cc9439d65 | |||
| 6bd2d0ffcb | |||
| bd31dda2fb | |||
| 525c964f53 | |||
| ad8578419e | |||
| bf826eb06e | |||
| 4ccd8a6786 | |||
| 2f65d35ead | |||
| c4cc5cdf3b | |||
| e7f2765f4c | |||
| f2730396da | |||
| 7a7ff65ac5 | |||
| bc12e5453c | |||
| 29985b768c | |||
| cc2f9187cc | |||
| be4e7b86f3 | |||
| 22c017c0c2 | |||
| f16b9dcd2b | |||
| 5408e1a51b | |||
| 9da745b381 | |||
| dedb0033b3 | |||
| 6d4590ec7c | |||
| 26879ce24a | |||
| d3fa4228cb | |||
| 37c58f606b | |||
| da5fb0cf7e | |||
| f5f05b4e86 | |||
| 4782df757c | |||
| 0fff18b044 | |||
| 2299181c4b | |||
| 0c342f3292 | |||
| f1cecb1795 | |||
| 0a19f738bc | |||
| 6b8a758339 | |||
| 617e1f16c0 | |||
| f95cee3057 | |||
| dd5f4f0a2c | |||
| 1ddafcadd2 | |||
| 704c9be0b8 | |||
| 237a6f554a | |||
| 8bc42a8c2f | |||
| 03854bf27c | |||
| 96fc91baf3 | |||
| bf9a32b475 | |||
| 8cbb17384d | |||
| bcb71a011e | |||
| fd08e7b51a | |||
| 24d35c58b7 | |||
| f2404ac20f | |||
| 5d828d8eee | |||
| 3d07e5ca10 | |||
| e40f835a7e | |||
| 421a040e89 | |||
| 79ad51867a | |||
| 7dcc69e617 | |||
| 005d612227 | |||
| d99aef2f71 | |||
| a5486e626d | |||
| 39b397438c | |||
| 43622f95e1 | |||
| d61da119d3 | |||
| 9d359641ec | |||
| da524e71ae | |||
| 5d5d9f682e | |||
| 1a043128e1 | |||
| 881d384e56 | |||
| 232a2a8e3c | |||
| 58d63ec726 | |||
| f56fe58d48 | |||
| 3d5fe9bfc1 | |||
| f858e5bbf4 | |||
| 93fb5bc63d | |||
| 7f6382badd | |||
| dc5ceacd77 | |||
| bd5067b5a0 | |||
| f4153bcbde | |||
| 8123d4de11 | |||
| 0900f3388a | |||
| bb7e9ee138 | |||
| 54e7a3b196 | |||
| bf8afb4c38 | |||
| 657bbf305e | |||
| 2f59734909 | |||
| e43d050730 | |||
| eac3301b63 | |||
| b95042b05c | |||
| 96d7f87cc9 | |||
| b1dc705492 | |||
| d083afea90 | |||
| 04e31cae5a | |||
| 77ff05a5f1 | |||
| a43c7af33b | |||
| ee256e770a | |||
| 5176319dd5 | |||
| 261018fc8c | |||
| 94718ae0de | |||
| 9e811a2f8b | |||
| 9b971dab60 | |||
| c217a11bbd | |||
| 4f3eb7f3cd | |||
| dc22170c99 | |||
| 0c1d792d5e | |||
| ce692c16ee | |||
| f78ea7c6bf | |||
| 2550f353e9 | |||
| c7a9637834 | |||
| d58f055876 | |||
| 7ec0a9ec3f | |||
| 722f48a1d6 | |||
| 7b75cee876 | |||
| 1ddfdda02c | |||
| abf2b0efc3 | |||
| 4b4e73c1dd | |||
| b0ada3fbbf | |||
| 00851610e1 | |||
| def3177d3a | |||
| 7b66180d78 | |||
| 86ab690ec5 | |||
| 2e8b9a70ec | |||
| 014cb33bb9 | |||
| 11cdcf875c | |||
| 8a40ca49c6 | |||
| fd0be850fe | |||
| 3efece1284 | |||
| 10b494d260 | |||
| 0812e2f959 | |||
| ed462507b2 | |||
| 10d6f6c5b8 | |||
| 92c80dab4c | |||
| d19c347fd0 | |||
| 0268076337 | |||
| 3d75eb446d | |||
| 5a6f6bf067 | |||
| 6d90affce0 | |||
| 2f3b88ef9a | |||
| e81386476f | |||
| 00ccb1dc33 | |||
| 933c9df335 | |||
| e2997c9976 | |||
| fdb4214525 | |||
| 2854cc968f | |||
| d58080fd44 | |||
| c33164831d | |||
| 61507ffeab | |||
| be93c2c089 | |||
| 79d008cd2e | |||
| a0c62f1752 | |||
| bed7719967 | |||
| a8abdaec92 | |||
| 923e21129c | |||
| 2a816fb685 | |||
| 22d7b25296 | |||
| f2869bb7db | |||
| 34e2d8f1e1 | |||
| 8ea996e246 | |||
| 27bca407de | |||
| 7f8f5fa52c | |||
| b4e431bf7c | |||
| 53aebc84c6 | |||
| f954a93ee0 | |||
| f44a2c38f8 | |||
| 6e334d10bb | |||
| b80425fdf9 | |||
| f7233786d2 | |||
| 17ccd5ec65 | |||
| 9e863e1dbb | |||
| f9fc53f98a | |||
| bb00206736 | |||
| 504d0d1ae5 | |||
| e15863fa77 | |||
| 8aa797603c | |||
| 14d8aacebb | |||
| 5c5ee7eb57 | |||
| 49a0bd7f90 | |||
| 437d5d9798 | |||
| cfb962c7f1 | |||
| ee9a9503ce | |||
| ee904e1df5 | |||
| 83c442cc57 | |||
| 9c7d4ffd4c | |||
| 20f2bc3138 | |||
| 0ce9343fb6 | |||
| f7a9c4f522 | |||
| 6d46851b61 | |||
| e42690b381 | |||
| 825f8266e2 | |||
| e424367938 | |||
| a7761332f6 | |||
| 88f2ef652e | |||
| 495ca8fdb9 | |||
| a0b14f02c8 | |||
| a509746288 | |||
| 6e6014918e | |||
| 0972b3dd15 | |||
| 4c69d11f5e | |||
| 515e0fa22d | |||
| 18acb21d65 | |||
| 02b5ffa13f | |||
| 5a0fb3ca97 | |||
| e4be8c6e70 | |||
| feebf3f3c9 | |||
| 3a4b397961 | |||
| 5f782d06be | |||
| cd8e589fa9 | |||
| 8c9cc415e3 | |||
| 51ca426c4b | |||
| 9fa52f7316 | |||
| f9e7fa4c88 | |||
| 4625695653 | |||
| 6ea832ec7c | |||
| 31a266b5b3 | |||
| 56f78e6412 | |||
| 5292ee981e | |||
| cfc8ed1f5b | |||
| da8bb14cec | |||
| 32380e257c | |||
| 5fa0946c08 | |||
| f6ea07e7d8 | |||
| d9805b46b9 | |||
| 60ae799321 | |||
| ca30288c9d | |||
| 6e7a7412cd | |||
| c34b458ace | |||
| 68bb5a08c5 | |||
| 8b1e7c8189 | |||
| 6884f9cb41 | |||
| 6c20f77330 | |||
| 0c47d3fc14 | |||
| fc35ad9ee9 | |||
| 6f233b1f8f | |||
| 95c2307595 | |||
| 3866effe71 | |||
| 0b07ed0bcd | |||
| 2d14e889b2 | |||
| a1bf80933d | |||
| e9cd783e66 | |||
| 1e79665b45 | |||
| b4128cbc25 | |||
| 0d2266a3ac | |||
| 0b54ea39db | |||
| eca692ef90 | |||
| 510c0acb4a | |||
| 621e205f74 | |||
| f244b6b361 | |||
| 5cedf77a9a | |||
| 27c38052b7 | |||
| fc29abf621 | |||
| eb35fce734 | |||
| c3fd582c55 | |||
| a1137fcdfe | |||
| b1e324dd47 | |||
| 6864eedb1b | |||
| 70127934d1 | |||
| cbd0349251 | |||
| 290cedade2 | |||
| fa72187bbf | |||
| 17a1873843 | |||
| 09b5320a81 | |||
| 9fc630422d | |||
| ade538828d | |||
| eb2f19ed66 | |||
| 6da56ee87e | |||
| 9aa69db2e6 | |||
| 629c5ce740 | |||
| 2e25df3ddf | |||
| 9defec7876 | |||
| aab9e191f5 | |||
| 4bf7ab0d1c | |||
| e82bab5323 | |||
| fc4393dcfe | |||
| a426047441 | |||
| fc7e8100e1 | |||
| 3455844ea3 | |||
| cc3a41bfa9 | |||
| 50203f8786 | |||
| 33b822faf7 | |||
| 62e36abd2e | |||
| f5681547ef | |||
| c1713c9ab7 | |||
| 736671347b | |||
| 8e47178919 | |||
| 152e82ba92 | |||
| 9717e1ef07 | |||
| dbdfccc2da | |||
| b68943e4df | |||
| 88f9fa89bc | |||
| fdcb4e6402 | |||
| 7812b24a77 | |||
| 87015f5b63 | |||
| 8b54212900 | |||
| d8154e00ac | |||
| 976f86e7a7 | |||
| 9f41e0cf18 | |||
| edb2e77035 | |||
| 27c3d210c4 | |||
| 17bd325574 | |||
| 5199f5ff47 | |||
| 5b54c9e373 | |||
| cc0dae2271 | |||
| 55546ae82c | |||
| 7ae25c25b6 | |||
| 670eca936f | |||
| 180272ed86 | |||
| 5469686001 | |||
| ced7ee3043 | |||
| 5ede3da220 | |||
| 5ea41a57b8 | |||
| 3b97cc2e30 | |||
| 2da844b146 | |||
| e1cce4dd3c | |||
| feba3ac1e7 | |||
| b39525581d | |||
| 1a2413d59e | |||
| 6ac20f00bb | |||
| 7491b792e2 | |||
| 7c7a4de3e5 | |||
| b84adf1d89 | |||
| 9e4d664a24 | |||
| c81a333cb6 | |||
| 9013632325 | |||
| b08d728ac9 | |||
| 6a50687bdc | |||
| eeb6381690 | |||
| 8ba6f08ca6 | |||
| 5ae795953a | |||
| 8fff6e8638 | |||
| d94bef9d5c | |||
| d1ab9908bc | |||
| 76b8970a33 | |||
| 009a748ab3 | |||
| 15e89b32b9 | |||
| 534bf5b402 | |||
| bdd75a65f8 | |||
| 7728ef7204 | |||
| 0449abe88b | |||
| be43bbc3f3 | |||
| 22960e82aa | |||
| 7890344bbd | |||
| ec627dedf8 | |||
| 56f15b3544 | |||
| 08814d50ea | |||
| 6bfd695002 | |||
| f64c4fc4fb | |||
| 044f385f9c | |||
| 1118e389e9 | |||
| bbc173dfc6 | |||
| c9f26cceb7 | |||
| b4682bff97 | |||
| 311f2482fa | |||
| a152d420a5 | |||
| cf91f6bf3e | |||
| a9cc987929 | |||
| bb3bd587a6 | |||
| 9fa2e849f2 | |||
| eb112946a7 | |||
| 153acec334 | |||
| ad8057ab76 | |||
| ab7a5568d7 | |||
| 8e702d1053 | |||
| dddfaaac7d | |||
| db69f81fe7 | |||
| aa44fe3b69 | |||
| e6f96da537 | |||
| d0c79e1164 | |||
| d0033bfb07 | |||
| 3982160f50 | |||
| 6c0d2b9132 | |||
| ca4d92e2f2 | |||
| 18c33e1569 | |||
| cffb7a834c | |||
| ad19bf105a | |||
| 526d5de867 | |||
| 4a809a692c | |||
| 5924346697 | |||
| 4caa813711 | |||
| 56c3f828cd | |||
| 3ef0a1e3be | |||
| 1be2847668 | |||
| c708ab3b48 | |||
| c47926311b | |||
| 75e3792aa3 | |||
| 568464aa96 | |||
| 9066a961e7 | |||
| eb2d47b547 | |||
| e63137f47f | |||
| 599bc8942e | |||
| 46875e28be | |||
| 7884a4ff19 | |||
| b47a151bce | |||
| 356473efa5 | |||
| c32559ac12 | |||
| 3749323e23 | |||
| d41f3def5c | |||
| 6ad199d127 | |||
| 83664c8bc4 | |||
| 89c15ecb23 | |||
| d24442ae8b | |||
| 935434333b | |||
| f23026cce8 | |||
| e099831210 | |||
| 68a1d75d9e | |||
| f438700402 | |||
| 486172e07f | |||
| 5e51833ee5 | |||
| 2ba05f8987 | |||
| bc514a7f51 | |||
| 0b37b81956 | |||
| ba853fdb0b | |||
| 386a3f1d20 | |||
| 4a11ebe76f | |||
| 5fda77239e | |||
| d7e0dd6e82 | |||
| ea218de179 | |||
| c74ca38970 | |||
| cd3dda5c0c | |||
| cabd771fc0 | |||
| e48a351f8e | |||
| f7b6a02b1e | |||
| 9ed36409c5 | |||
| 23fc96c3e8 | |||
| 2eef026fe3 | |||
| d3650ecb3a | |||
| 02709df7e3 | |||
| 6e6102e20d | |||
| 19910188fa | |||
| 5e1516e486 | |||
| c990d97291 | |||
| 3445b8054c | |||
| 220bc49731 | |||
| c3822e3a90 | |||
| 0c4715d825 | |||
| c2c9121307 | |||
| 694ba37377 | |||
| cd7c99452f | |||
| 0cfd2baa3c | |||
| 3d5567ccf7 | |||
| 7ccda80b0b | |||
| 8fea5a62c9 | |||
| ca4349b517 | |||
| fa8ab829e9 | |||
| 75a87a7266 | |||
| a9d263c459 | |||
| 3b9e4f6d17 | |||
| eaaf217a96 | |||
| 822c130b70 | |||
| 402a1e24ba | |||
| 9bf519f26b | |||
| e6c944a6c4 | |||
| 46a0ebe1d9 | |||
| c025d7a152 | |||
| 780db88e99 | |||
| d03994098b | |||
| fb938a2cb3 | |||
| fb1db90cc6 | |||
| 8da41ec62e | |||
| 7e1ac0ce57 | |||
| e326a03c4c | |||
| 963dce0d47 | |||
| e7678a03cc | |||
| 50516f2372 | |||
| 71800aa7c6 | |||
| c9cf1d4cee | |||
| 56e1178dca | |||
| 1050f07ed1 | |||
| 22aa011b57 | |||
| f200fc3b99 | |||
| 0eab2c07c2 | |||
| 72120a48c4 | |||
| 4595d2c3b1 | |||
| 57e104f97e | |||
| cdd22af5a1 | |||
| 26f11fd181 | |||
| a1e77073fe | |||
| e6bc8fa3d8 | |||
| 9eb498eb53 | |||
| a51e32376e | |||
| 7a85e26268 | |||
| 297f99e100 | |||
| 0b8b5d1f3b | |||
| 762315c47c | |||
| cb680474c3 | |||
| dbf6e344a4 | |||
| 8ca1035316 | |||
| a26b25aecc | |||
| 5b44c68b19 | |||
| 72eb1f100b | |||
| d1ddff90d9 | |||
| b49b4f627f | |||
| 49484eedca | |||
| 3e0b6199c4 | |||
| 4097d81323 | |||
| c76b2be644 | |||
| a00371c8db | |||
| 1d01390fa6 | |||
| a870a66877 | |||
| fc60ef874d | |||
| 9f3351fed4 | |||
| 5ca6fd67fc | |||
| 868c17a175 | |||
| dd00683a46 | |||
| a37ee93f8d | |||
| 757de2bdf5 | |||
| 9f5f4e59cd | |||
| 3f2513b5ac | |||
| 9e1b8b69e3 | |||
| 805e1db332 | |||
| 4e80f3f3b1 | |||
| 1aa7d9faff | |||
| 9d7181abd7 | |||
| f1679bcbb7 | |||
| e7582da106 | |||
| 1d9dbd9401 | |||
| 4ac6655bad | |||
| bf702602c1 | |||
| fbeaf0389d | |||
| 91fa34ea11 | |||
| f8612ad5b9 | |||
| 345f160978 | |||
| 5ac07a2c34 | |||
| 9fc355fca5 | |||
| 48eda2b6ef | |||
| 60eb3c034f | |||
| 9c675afb91 | |||
| 739cb53fff | |||
| dce1b33196 | |||
| 10ab24a5f1 | |||
| 6939569362 | |||
| 1ba6e3deeb | |||
| 459259aeec | |||
| ccfe024a2a | |||
| e3ca91dc15 | |||
| 24cccc8333 | |||
| fff763b5ce | |||
| 39a715f1f3 | |||
| 2d860049a7 | |||
| 501b89b8de | |||
| 46bd824b3e | |||
| c5211354a6 | |||
| da134d5a39 | |||
| 845b827fbc | |||
| 5dcd689f56 | |||
| 173ac52da5 | |||
| 5ef8c01ce7 | |||
| 22140d82c6 | |||
| a40bba8bac | |||
| 2a779a5e10 | |||
| cea98ea0e6 | |||
| dea4738382 | |||
| c332c68170 | |||
| 4395bda7b5 | |||
| b418ee5a4c | |||
| f7d3d879c5 | |||
| fccfcd093b | |||
| b139756e2b | |||
| f55ffd14bd | |||
| 12ae3a2194 | |||
| 181b36ca0b | |||
| 15680e477a | |||
| 4f8409daf6 | |||
| 210d757499 | |||
| de015fbf90 | |||
| c884d82e46 | |||
| 0e624275ee | |||
| c360e71e3c | |||
| 4f2c2656e7 | |||
| 01549e1574 | |||
| ad3ef0fb26 | |||
| 752c8d8f2e | |||
| 24b5c91039 | |||
| 1dcf912f06 | |||
| c84fe27ca9 | |||
| 118a680fd3 | |||
| 222988603f | |||
| 161b588631 | |||
| e0722751c6 | |||
| 49cfba55bb | |||
| 15242b1784 | |||
| dde68e922a | |||
| 14dc60c8a1 | |||
| f32ecbcadb | |||
| 8e49daf3e1 | |||
| e5eac05c6e | |||
| fb466f4db2 | |||
| 7edc9b65c6 | |||
| 3547e6d2ba | |||
| 0cecc4af20 | |||
| 8c2c7c27ea | |||
| dc16b4f2b4 | |||
| 31411d4755 | |||
| 1b2773445d | |||
| 2070cee089 | |||
| 8fa715e43b | |||
| acafc26426 | |||
| 9d8fa486af | |||
| 6daaf0fc55 | |||
| 8e4b259352 | |||
| 184ffbb976 | |||
| b1d1a4ac66 | |||
| 5050ba84fb | |||
| a2884f0a3c | |||
| 02cdf01507 | |||
| 059e94e355 | |||
| e098b50379 | |||
| 00f0bf98ee | |||
| 5796fb3b34 | |||
| c31287206d | |||
| 0cd14f9ebb | |||
| b2095f37ac | |||
| 9488db56d4 | |||
| 1367c90161 | |||
| 4703eb2036 | |||
| 5254131d9c | |||
| 1f22f47b3b | |||
| 7957bdde13 | |||
| 208dd15c91 | |||
| 6ab158f9d9 | |||
| 0c9120a882 | |||
| 8a669f04cd | |||
| dccf5b4509 | |||
| 9d3a08523a | |||
| 9346e067f3 | |||
| 7ba1d9076f | |||
| fd38b3f850 | |||
| 2152e1c420 | |||
| 3a84a74f4d | |||
| 172237e326 | |||
| 62c178f326 | |||
| be7e36e0b9 | |||
| 12188e7a5d | |||
| a8008db23d | |||
| 8418bc5050 | |||
| fc1f32a693 | |||
| c0fbfd03ac | |||
| 1f59821020 | |||
| 14b307a621 | |||
| 304cb0e1e2 | |||
| 4f0bfa91ab | |||
| 9a73b698d4 | |||
| 04138ddffc | |||
| 2310557716 | |||
| 87ddcb0d5a | |||
| 668e218600 | |||
| a5c456e75e | |||
| e8ee93b593 | |||
| 145ea54474 | |||
| af3723e217 | |||
| 5e2a5953a4 | |||
| 305dc1001b | |||
| e1ab9c2eea | |||
| d7bae069e1 | |||
| 372830b731 | |||
| 9349767e1d | |||
| 604c5bbfb7 | |||
| ed43ffe435 | |||
| a3e2d8f577 | |||
| 447a31b702 | |||
| a45c1d45e5 | |||
| 711909fa0c | |||
| f44aa5e088 | |||
| ed250cc7b5 | |||
| 8c89250f58 | |||
| 8410bff078 | |||
| ac94b6384b | |||
| 04b9600920 | |||
| e9014c99b3 | |||
| 8226c92c8a | |||
| 00d23c57b3 | |||
| 02a907f306 | |||
| cebe2001ba | |||
| 3919c30c2d | |||
| 00051b2721 | |||
| 570519d79b | |||
| 62bdc381e7 | |||
| 3a0cb23548 | |||
| d781fc7cc9 | |||
| 5d6ef7bc6e | |||
| 31f982f1f9 | |||
| ba0a5814c2 | |||
| 63116691a9 | |||
| 6379c30d26 | |||
| 3974bf2199 | |||
| 5992dad01f | |||
| fa1359ebc6 | |||
| ccd49d81a8 | |||
| f484b2e1c7 | |||
| 2ac6af4e48 | |||
| c9e9e6005b | |||
| e075ade119 | |||
| 70f3413a36 | |||
| 82155367f6 | |||
| d178345947 | |||
| 55f0d01235 | |||
| ab7b05da50 | |||
| c41624bb94 | |||
| caa3b659b0 | |||
| 25e5e5b1a9 | |||
| d8f88f06d4 | |||
| 627322b9f7 | |||
| 3abf0eea7c | |||
| 85e5053b68 | |||
| 96700d5605 | |||
| 71a2dd21fd | |||
| 310170364f | |||
| b0ca38e20a | |||
| d31dee2717 | |||
| ee02dd7dad | |||
| f04ecd2e4a | |||
| d74c6ffb62 | |||
| 42a66ef990 | |||
| f1cd7ef5ee | |||
| 45165fe075 | |||
| 77dca1f023 | |||
| ac389e16d2 | |||
| f46ae97d8e | |||
| c57a1d74c3 | |||
| 6af1fb2bdd | |||
| 1bd5a29df5 | |||
| d90a041230 | |||
| c0a5fa9eea | |||
| fb1c4eccd8 | |||
| 5d8e3adccc | |||
| aaa1b0744a | |||
| d6623cf654 | |||
| 8cd1795fe3 | |||
| e68b2088ce | |||
| 630d5ad766 | |||
| 5b47f81b0f | |||
| 56e63a6044 | |||
| 669b4bc609 | |||
| 84211a8fea | |||
| aef20ec54d | |||
| d977461d10 | |||
| 5eb5889954 | |||
| 65fedf0cfb | |||
| b2e4adc2b8 | |||
| bdd64495cd | |||
| e9661fb420 | |||
| fb379b522d | |||
| a7d885e4c6 | |||
| c5814a72ce | |||
| d1c0e57901 | |||
| b78e8f82e1 | |||
| 15d5167a17 | |||
| e5d4ee30d3 | |||
| 8a2762978c | |||
| c49f813e7f | |||
| 0aeefe164d | |||
| 99b2536351 | |||
| 42ed287506 | |||
| 2675db8d70 | |||
| 110584808d | |||
| c745ca21a3 | |||
| b9b99d3150 | |||
| ff7e8fb2dd | |||
| 277df6d622 | |||
| 86c72ab927 | |||
| febc5150c9 | |||
| 83f9e141e0 | |||
| 87e5d85d6e | |||
| f219eb5653 | |||
| 323fb6a888 | |||
| fa68e5f770 | |||
| 5e5e074a5d | |||
| b0ee311780 | |||
| 8e83627991 | |||
| 81b6125ac2 | |||
| 584bbfd7e7 | |||
| 4329223476 | |||
| 549d05dc4d | |||
| 15a9fba867 | |||
| 9d914a803c | |||
| 4cc6140619 | |||
| a0895d57fa | |||
| b1e1c13420 | |||
| 7c759731dc | |||
| 6f15d34fe5 | |||
| ef2be7d0fc | |||
| 2edd403656 | |||
| 4a1035ab95 | |||
| 9598b1ecaf | |||
| 667aa5d957 | |||
| a81a572434 | |||
| 1670c34e2f | |||
| f8294b1386 | |||
| d51347a04d | |||
| 93d59fe448 | |||
| d97c16ee8b | |||
| f4d48f0e5b | |||
| cdd5f90e64 | |||
| ff3a401404 | |||
| 0f552a88a7 | |||
| 4c63dd074e | |||
| 878489e38d | |||
| 58e6e75320 | |||
| 7f139373aa | |||
| 450d234745 | |||
| cb96caa3d2 | |||
| 0d30619425 | |||
| b4dafb3036 | |||
| eeabab4555 | |||
| d8cfb4f064 | |||
| 79f033c78f | |||
| 64797f06eb | |||
| 226e48cf83 | |||
| d4f7f5e5fe | |||
| b8ac06b462 | |||
| bbdb831301 | |||
| 5ddb78af9f | |||
| 7df7a3069c | |||
| 3343586c84 | |||
| b88882c2fa | |||
| 692ac96625 | |||
| 9676d90a95 | |||
| ffe07b9292 | |||
| 3256b24dd6 | |||
| 63ab877c27 | |||
| 2405ffd855 | |||
| e9dad7637e | |||
| b490a21e50 | |||
| 3d03eab9bc | |||
| 67c1e00aea | |||
| f9e7b70f91 | |||
| 989f967509 | |||
| 3d8bd6245e | |||
| f241b0acd4 | |||
| 327e870962 | |||
| 06c0e5df5a | |||
| 97fb7fb8d9 | |||
| 82eebc20c0 | |||
| 2023f59541 | |||
| 6184676ec7 | |||
| 237524f960 | |||
| fed6a25799 | |||
| 4a16a8b948 | |||
| 67190b2906 | |||
| 516282fe3c | |||
| 37d961c8e7 | |||
| 3f3598bd76 | |||
| 83fec1b297 | |||
| 65c7ef9629 | |||
| fb755e6e87 | |||
| c7d4c0e269 |
@@ -1,5 +1,6 @@
|
||||
Makefile*
|
||||
bin/*
|
||||
bundle/*
|
||||
!bin/data/chars.grf
|
||||
!bin/data/openttdd.grf
|
||||
!bin/data/openttdw.grf
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
bin/lang/*
|
||||
bin/opentd*
|
||||
bundle/*
|
||||
config.cache.*
|
||||
config.log
|
||||
config.pwd
|
||||
Makefile
|
||||
Makefile.am
|
||||
media/openttd.desktop*
|
||||
objs/*
|
||||
src/rev.cpp
|
||||
@@ -1,7 +1,7 @@
|
||||
#---------------------------------------------------------------------------
|
||||
# Project related configuration options
|
||||
#---------------------------------------------------------------------------
|
||||
PROJECT_NAME = openttd
|
||||
PROJECT_NAME = OpenTTD
|
||||
OUTPUT_DIRECTORY = docs/source/
|
||||
CREATE_SUBDIRS = NO
|
||||
OUTPUT_LANGUAGE = English
|
||||
@@ -76,7 +76,7 @@ WARN_LOGFILE =
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the input files
|
||||
#---------------------------------------------------------------------------
|
||||
INPUT = ./
|
||||
INPUT = ./src/
|
||||
FILE_PATTERNS = *.c \
|
||||
*.cc \
|
||||
*.cxx \
|
||||
|
||||
+35
-25
@@ -8,7 +8,7 @@ REV := $(REVISION)
|
||||
else
|
||||
# Detect the revision
|
||||
VERSIONS := $(shell AWK="$(AWK)" "$(ROOT_DIR)/findversion.sh")
|
||||
REV := $(shell echo "$(VERSIONS)" | cut -f 1)
|
||||
REV := $(shell echo "$(VERSIONS)" | cut -f 1 -d' ')
|
||||
endif
|
||||
|
||||
# Make sure we have something in REV
|
||||
@@ -17,7 +17,7 @@ REV := norev000
|
||||
endif
|
||||
|
||||
ifndef BUNDLE_NAME
|
||||
BUNDLE_NAME = OTTD-$(OS)-custom-$(REV)
|
||||
BUNDLE_NAME = openttd-custom-$(REV)-$(OS)
|
||||
endif
|
||||
|
||||
# An OSX application bundle needs the data files, lang files and openttd executable in a different location.
|
||||
@@ -33,12 +33,11 @@ endif
|
||||
|
||||
bundle: all
|
||||
@echo '[BUNDLE] Constructing bundle'
|
||||
$(Q)rm -rf "${BUNDLE_DIR}"
|
||||
$(Q)mkdir -p "${BUNDLE_DIR}"
|
||||
$(Q)rm -rf "$(BUNDLE_DIR)"
|
||||
$(Q)mkdir -p "$(BUNDLE_DIR)"
|
||||
$(Q)mkdir -p "$(BUNDLE_DIR)/docs"
|
||||
$(Q)mkdir -p "$(BUNDLE_DIR)/scenario"
|
||||
$(Q)mkdir -p "$(BUNDLE_DIR)/scenario/heightmap"
|
||||
$(Q)mkdir -p "$(BUNDLE_DIR)/media"
|
||||
$(Q)mkdir -p "$(BUNDLE_DIR)/scripts"
|
||||
$(Q)mkdir -p "$(TTD_DIR)"
|
||||
$(Q)mkdir -p "$(DATA_DIR)"
|
||||
$(Q)mkdir -p "$(LANG_DIR)"
|
||||
@@ -46,38 +45,42 @@ ifdef OSXAPP
|
||||
$(Q)mkdir -p "$(BUNDLE_DIR)/$(OSXAPP)/Contents/Resources"
|
||||
$(Q)echo "APPL????" > "$(BUNDLE_DIR)/$(OSXAPP)/Contents/PkgInfo"
|
||||
$(Q)cp "$(ROOT_DIR)/os/macosx/openttd.icns" "$(BUNDLE_DIR)/$(OSXAPP)/Contents/Resources/openttd.icns"
|
||||
$(Q)$(ROOT_DIR)/os/macosx/plistgen.sh "${BUNDLE_DIR}/$(OSXAPP)" "$(REV)"
|
||||
$(Q)$(ROOT_DIR)/os/macosx/plistgen.sh "$(BUNDLE_DIR)/$(OSXAPP)" "$(REV)"
|
||||
$(Q)cp "$(ROOT_DIR)/docs/OSX_install_instructions.txt" "$(BUNDLE_DIR)/docs/"
|
||||
$(Q)cp "$(ROOT_DIR)/os/macosx/splash.png" "$(DATA_DIR)"
|
||||
endif
|
||||
$(Q)cp "$(BIN_DIR)/$(TTD)" "$(TTD_DIR)/"
|
||||
$(Q)cp "$(BIN_DIR)/data/"*.grf "$(DATA_DIR)/"
|
||||
$(Q)cp "$(BIN_DIR)/data/"*.obg "$(DATA_DIR)/"
|
||||
$(Q)cp "$(BIN_DIR)/data/opntitle.dat" "$(DATA_DIR)/"
|
||||
$(Q)cp "$(BIN_DIR)/lang/"*.lng "$(LANG_DIR)/"
|
||||
$(Q)cp "$(ROOT_DIR)/readme.txt" "$(BUNDLE_DIR)/"
|
||||
$(Q)cp "$(ROOT_DIR)/COPYING" "$(BUNDLE_DIR)/"
|
||||
$(Q)cp "$(ROOT_DIR)/known-bugs.txt" "$(BUNDLE_DIR)/"
|
||||
$(Q)cp "$(ROOT_DIR)/docs/obg_format.txt" "$(BUNDLE_DIR)/docs/"
|
||||
$(Q)cp "$(ROOT_DIR)/docs/multiplayer.txt" "$(BUNDLE_DIR)/docs/"
|
||||
$(Q)cp "$(ROOT_DIR)/docs/32bpp.txt" "$(BUNDLE_DIR)/docs/"
|
||||
$(Q)cp "$(ROOT_DIR)/changelog.txt" "$(BUNDLE_DIR)/"
|
||||
ifdef MAN_DIR
|
||||
$(Q)mkdir -p "$(BUNDLE_DIR)/man/"
|
||||
$(Q)cp "$(ROOT_DIR)/docs/openttd.6" "$(BUNDLE_DIR)/man/"
|
||||
$(Q)gzip "$(BUNDLE_DIR)/man/openttd.6"
|
||||
$(Q)gzip -9 "$(BUNDLE_DIR)/man/openttd.6"
|
||||
endif
|
||||
$(Q)cp "$(ROOT_DIR)/media/openttd.32.xpm" "$(BUNDLE_DIR)/media/"
|
||||
$(Q)cp "$(ROOT_DIR)/media/openttd."*.png "$(BUNDLE_DIR)/media/"
|
||||
$(Q)cp "$(BIN_DIR)/scripts/"* "$(BUNDLE_DIR)/scripts/"
|
||||
ifdef MENU_DIR
|
||||
$(Q)cp "$(ROOT_DIR)/media/openttd.desktop" "$(BUNDLE_DIR)/media/"
|
||||
endif
|
||||
ifeq ($(shell if test -n "`ls -l \"$(BIN_DIR)/scenario/\"*.scn 2> /dev/null`"; then echo 1; fi), 1)
|
||||
$(Q)cp "$(BIN_DIR)/scenario/"*.scn "$(BUNDLE_DIR)/scenario/"
|
||||
endif
|
||||
ifeq ($(shell if test -n "`ls -l \"$(BIN_DIR)/scenario/heightmaps/\"* 2>/dev/null`"; then echo 1; fi), 1)
|
||||
$(Q)cp "$(BIN_DIR)/scenario/heightmaps/"* "$(BUNDLE_DIR)/scenario/heightmap/"
|
||||
$(Q)cat "$(ROOT_DIR)/media/openttd.desktop" | sed s/=openttd/=$(BINARY_NAME)/g > "$(ROOT_DIR)/media/openttd.desktop.install"
|
||||
endif
|
||||
ifeq ($(TTD), openttd.exe)
|
||||
$(Q)unix2dos "$(BUNDLE_DIR)/docs/"* "$(BUNDLE_DIR)/readme.txt" "$(BUNDLE_DIR)/COPYING" "$(BUNDLE_DIR)/changelog.txt" "$(BUNDLE_DIR)/known-bugs.txt"
|
||||
ifeq ($(OS), DOS)
|
||||
$(Q)cp "$(ROOT_DIR)/os/dos/cwsdpmi.txt" "$(BUNDLE_DIR)/docs/"
|
||||
ifndef STRIP
|
||||
$(Q)cp "$(ROOT_DIR)/os/dos/cwsdpmi.exe" "$(TTD_DIR)/"
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
### Packing the current bundle into several compressed file formats ###
|
||||
@@ -138,36 +141,43 @@ install: bundle
|
||||
$(Q)install -d "$(INSTALL_DATA_DIR)/gm"
|
||||
$(Q)install -d "$(INSTALL_DATA_DIR)/data"
|
||||
$(Q)install -d "$(INSTALL_DATA_DIR)/lang"
|
||||
$(Q)install -d "$(INSTALL_DATA_DIR)/scripts"
|
||||
$(Q)install -d "$(INSTALL_DOC_DIR)"
|
||||
$(Q)install -m 755 "$(BUNDLE_DIR)/$(TTD)" "$(INSTALL_BINARY_DIR)"
|
||||
ifeq ($(TTD), openttd.exe)
|
||||
$(Q)install -m 755 "$(BUNDLE_DIR)/$(TTD)" "$(INSTALL_BINARY_DIR)/${BINARY_NAME}.exe"
|
||||
else
|
||||
$(Q)install -m 755 "$(BUNDLE_DIR)/$(TTD)" "$(INSTALL_BINARY_DIR)/${BINARY_NAME}"
|
||||
endif
|
||||
$(Q)install -m 644 "$(BUNDLE_DIR)/lang/"* "$(INSTALL_DATA_DIR)/lang"
|
||||
$(Q)install -m 644 "$(BUNDLE_DIR)/data/"* "$(INSTALL_DATA_DIR)/data"
|
||||
$(Q)install -m 644 "$(BUNDLE_DIR)/scripts/"* "$(INSTALL_DATA_DIR)/scripts"
|
||||
$(Q)install -m 644 "$(BUNDLE_DIR)/docs/"* "$(INSTALL_DOC_DIR)"
|
||||
$(Q)install -m 644 "$(BUNDLE_DIR)/media/openttd.32.xpm" "$(INSTALL_ICON_DIR)"
|
||||
$(Q)install -m 644 "$(BUNDLE_DIR)/"*.txt "$(INSTALL_DOC_DIR)"
|
||||
$(Q)install -m 644 "$(BUNDLE_DIR)/COPYING" "$(INSTALL_DOC_DIR)"
|
||||
$(Q)install -m 644 "$(BUNDLE_DIR)/media/openttd.32.xpm" "$(INSTALL_ICON_DIR)/${BINARY_NAME}.32.xpm"
|
||||
ifdef ICON_THEME_DIR
|
||||
$(Q)install -d "$(INSTALL_ICON_THEME_DIR)"
|
||||
$(Q)install -d "$(INSTALL_ICON_THEME_DIR)/16x16/apps"
|
||||
$(Q)install -m 644 "$(BUNDLE_DIR)/media/openttd.16.png" "$(INSTALL_ICON_THEME_DIR)/16x16/apps"
|
||||
$(Q)install -m 644 "$(BUNDLE_DIR)/media/openttd.16.png" "$(INSTALL_ICON_THEME_DIR)/16x16/apps/${BINARY_NAME}.png"
|
||||
$(Q)install -d "$(INSTALL_ICON_THEME_DIR)/32x32/apps"
|
||||
$(Q)install -m 644 "$(BUNDLE_DIR)/media/openttd.32.png" "$(INSTALL_ICON_THEME_DIR)/32x32/apps"
|
||||
$(Q)install -m 644 "$(BUNDLE_DIR)/media/openttd.32.png" "$(INSTALL_ICON_THEME_DIR)/32x32/apps/${BINARY_NAME}.png"
|
||||
$(Q)install -d "$(INSTALL_ICON_THEME_DIR)/48x48/apps"
|
||||
$(Q)install -m 644 "$(BUNDLE_DIR)/media/openttd.48.png" "$(INSTALL_ICON_THEME_DIR)/48x48/apps"
|
||||
$(Q)install -m 644 "$(BUNDLE_DIR)/media/openttd.48.png" "$(INSTALL_ICON_THEME_DIR)/48x48/apps/${BINARY_NAME}.png"
|
||||
$(Q)install -d "$(INSTALL_ICON_THEME_DIR)/64x64/apps"
|
||||
$(Q)install -m 644 "$(BUNDLE_DIR)/media/openttd.64.png" "$(INSTALL_ICON_THEME_DIR)/64x64/apps"
|
||||
$(Q)install -m 644 "$(BUNDLE_DIR)/media/openttd.64.png" "$(INSTALL_ICON_THEME_DIR)/64x64/apps/${BINARY_NAME}.png"
|
||||
$(Q)install -d "$(INSTALL_ICON_THEME_DIR)/128x128/apps"
|
||||
$(Q)install -m 644 "$(BUNDLE_DIR)/media/openttd.128.png" "$(INSTALL_ICON_THEME_DIR)/128x128/apps"
|
||||
$(Q)install -m 644 "$(BUNDLE_DIR)/media/openttd.128.png" "$(INSTALL_ICON_THEME_DIR)/128x128/apps/${BINARY_NAME}.png"
|
||||
$(Q)install -d "$(INSTALL_ICON_THEME_DIR)/256x256/apps"
|
||||
$(Q)install -m 644 "$(BUNDLE_DIR)/media/openttd.256.png" "$(INSTALL_ICON_THEME_DIR)/256x256/apps"
|
||||
$(Q)install -m 644 "$(BUNDLE_DIR)/media/openttd.256.png" "$(INSTALL_ICON_THEME_DIR)/256x256/apps/${BINARY_NAME}.png"
|
||||
else
|
||||
$(Q)install -m 644 "$(BUNDLE_DIR)/media/"*.png "$(INSTALL_ICON_DIR)"
|
||||
endif
|
||||
ifdef MAN_DIR
|
||||
$(Q)install -d "$(INSTALL_MAN_DIR)"
|
||||
$(Q)install -m 644 "$(BUNDLE_DIR)/man/openttd.6.gz" "$(INSTALL_MAN_DIR)"
|
||||
$(Q)install -m 644 "$(BUNDLE_DIR)/man/openttd.6.gz" "$(INSTALL_MAN_DIR)/${BINARY_NAME}.6.gz"
|
||||
endif
|
||||
ifdef MENU_DIR
|
||||
$(Q)install -d "$(INSTALL_MENU_DIR)"
|
||||
$(Q)install -m 644 "$(BUNDLE_DIR)/media/openttd.desktop" "$(INSTALL_MENU_DIR)"
|
||||
$(Q)install -m 644 "$(ROOT_DIR)/media/openttd.desktop.install" "$(INSTALL_MENU_DIR)/${BINARY_NAME}.desktop"
|
||||
endif
|
||||
$(Q)cp -R "$(BUNDLE_DIR)/scenario" "$(INSTALL_DATA_DIR)"
|
||||
endif # OSXAPP
|
||||
|
||||
+6
-1
@@ -28,6 +28,8 @@ INSTALL_ICON_DIR = "$(INSTALL_DIR)/"!!ICON_DIR!!
|
||||
INSTALL_ICON_THEME_DIR = "$(INSTALL_DIR)/$(ICON_THEME_DIR)"
|
||||
INSTALL_DATA_DIR = "$(INSTALL_DIR)/"!!DATA_DIR!!
|
||||
INSTALL_DOC_DIR = "$(INSTALL_DIR)/"!!DOC_DIR!!
|
||||
BINARY_NAME = !!BINARY_NAME!!
|
||||
STRIP = !!STRIP!!
|
||||
TTD = !!TTD!!
|
||||
TTDS = $(SRC_DIRS:%=%/$(TTD))
|
||||
OS = !!OS!!
|
||||
@@ -91,7 +93,7 @@ ifeq ($(shell if test -f config.cache; then echo 1; fi), 1)
|
||||
@echo " Going to reconfigure with last known settings..."
|
||||
@echo "----------------"
|
||||
# Make sure we don't lock config.cache
|
||||
@$(shell cat config.cache | sed 's/\\ /\\\\ /g') || exit 1
|
||||
@$(shell cat config.cache | sed 's@\\ @\\\\ @g') || exit 1
|
||||
@echo "----------------"
|
||||
@echo "Reconfig done. Please re-execute make."
|
||||
@echo "----------------"
|
||||
@@ -139,6 +141,9 @@ run-gdb: all
|
||||
run-prof: all
|
||||
$(Q)cd !!BIN_DIR!! && ./!!TTD!! $(OPENTTD_ARGS) && gprof !!TTD!! | less
|
||||
|
||||
regression: all
|
||||
$(Q)cd !!BIN_DIR!! && sh ai/regression/run.sh
|
||||
|
||||
%.o:
|
||||
@for dir in $(SRC_DIRS); do \
|
||||
$(MAKE) -C $$dir $(@:src/%=%); \
|
||||
|
||||
+1
-1
@@ -20,7 +20,7 @@ SRC_DIR = "$(ROOT_DIR)/src"
|
||||
BUNDLE_DIR = "$(ROOT_DIR)/bundle"
|
||||
BUNDLES_DIR = "$(ROOT_DIR)/bundles"
|
||||
TTD = "openttd.exe"
|
||||
TARGET := $(shell echo $(PLATFORM) | sed "s/win64/x64/;s/win32/Win32/")
|
||||
TARGET := $(shell echo $(PLATFORM) | sed "s@win64@x64@;s@win32@Win32@")
|
||||
|
||||
all:
|
||||
$(Q)cp objs/$(TARGET)/Release/$(TTD) $(BIN_DIR)/$(TTD)
|
||||
|
||||
+22
-16
@@ -15,6 +15,7 @@ LANG_DIR = !!LANG_DIR!!
|
||||
SRC_OBJS_DIR = !!SRC_OBJS_DIR!!
|
||||
LANG_OBJS_DIR= !!LANG_OBJS_DIR!!
|
||||
SRC_DIR = !!SRC_DIR!!
|
||||
SCRIPT_SRC_DIR=!!SCRIPT_SRC_DIR!!
|
||||
MEDIA_DIR = !!MEDIA_DIR!!
|
||||
TTD = !!TTD!!
|
||||
STRGEN = !!STRGEN!!
|
||||
@@ -42,12 +43,13 @@ OBJS := $(OBJS_C) $(OBJS_CPP) $(OBJS_MM) $(OBJS_RC)
|
||||
SRCS := !!SRCS!!
|
||||
|
||||
# All C-files depend on those 3 files
|
||||
FILE_DEP := $(CONFIG_CACHE_COMPILER) $(LANG_OBJS_DIR)/table/strings.h endian_target.h
|
||||
FILE_DEP := $(CONFIG_CACHE_COMPILER) endian_target.h
|
||||
# Create all dirs and subdirs
|
||||
RES := $(shell mkdir -p $(BIN_DIR) $(sort $(dir $(OBJS))))
|
||||
|
||||
# Make sure endian_target.h is reasable as if it was in the src/ dir
|
||||
CFLAGS += -I $(SRC_OBJS_DIR) -I $(LANG_OBJS_DIR)
|
||||
CFLAGS_MAKEDEP += -I $(SRC_OBJS_DIR) -I $(LANG_OBJS_DIR) -I $(SCRIPT_SRC_DIR)
|
||||
|
||||
ENDIAN_TARGETS := endian_target.h $(ENDIAN_CHECK)
|
||||
|
||||
@@ -55,7 +57,7 @@ ENDIAN_TARGETS := endian_target.h $(ENDIAN_CHECK)
|
||||
# For more information, please check:
|
||||
# http://maillist.openttd.org/pipermail/devs/2007-April/000284.html
|
||||
# http://maillist.openttd.org/pipermail/devs/2007-February/000248.html
|
||||
GCC295_FIX=sed -r 's/^(\t*)(.*)( const )([A-Za-z0-9_ ]+(\[.*\]){2,})(( = \{)|(;))(.*)$$/\1\2 \4\6\8\9/g'
|
||||
GCC295_FIX=sed -r 's@^(\t*)(.*)( const )([A-Za-z0-9_ ]+(\[.*\]){2,})(( = \{)|(;))(.*)$$@\1\2 \4\6\8\9@g'
|
||||
# This 'sed' removes the 3rd '4' in the # lines of the -E output of
|
||||
# gcc 2.95.3 and lower, as it should indicate that it is a C-linkage, but the
|
||||
# compiler can't handle that information (just don't ask). So we remove it
|
||||
@@ -63,7 +65,7 @@ GCC295_FIX=sed -r 's/^(\t*)(.*)( const )([A-Za-z0-9_ ]+(\[.*\]){2,})(( = \{)|(;)
|
||||
# Furthermore gcc 2.95 has some trouble with protected and private when
|
||||
# accessing the protected/private stuff of the enclosing class (or the
|
||||
# super class of the enclosing class).
|
||||
GCC295_FIX_2=sed -e 's|\(^\# [0-9][0-9]* "[^"]*"[ 0-9]*\) 4$$|\1|g;s|private:|public:|g;s|protected:|public:|g'
|
||||
GCC295_FIX_2=sed -e 's@\(^\# [0-9][0-9]* "[^"]*"[ 0-9]*\) 4$$@\1@g;s@private:@public:@g;s@protected:@public:@g'
|
||||
|
||||
# Check if we want to show what we are doing
|
||||
ifdef VERBOSE
|
||||
@@ -91,16 +93,16 @@ $(LANG_OBJS_DIR)/table/strings.h: $(LANG_DIR)/english.txt $(LANG_OBJS_DIR)/$(STR
|
||||
# Always run version detection, so we always have an accurate modified
|
||||
# flag
|
||||
VERSIONS := $(shell AWK="$(AWK)" "$(ROOT_DIR)/findversion.sh")
|
||||
MODIFIED := $(shell echo "$(VERSIONS)" | cut -f 3)
|
||||
MODIFIED := $(shell echo "$(VERSIONS)" | cut -f 3 -d' ')
|
||||
|
||||
ifdef REVISION
|
||||
# Use specified revision (which should be of the form "r000").
|
||||
REV := $(REVISION)
|
||||
REV_NR := $(shell echo $(REVISION) | sed "s/[^0-9]//g")
|
||||
REV_NR := $(shell echo $(REVISION) | sed "s@[^0-9]@@g")
|
||||
else
|
||||
# Use autodetected revisions
|
||||
REV := $(shell echo "$(VERSIONS)" | cut -f 1)
|
||||
REV_NR := $(shell echo "$(VERSIONS)" | cut -f 2)
|
||||
REV := $(shell echo "$(VERSIONS)" | cut -f 1 -d' ')
|
||||
REV_NR := $(shell echo "$(VERSIONS)" | cut -f 2 -d' ')
|
||||
endif
|
||||
|
||||
# Make sure we have something in REV and REV_NR
|
||||
@@ -141,15 +143,15 @@ endif
|
||||
|
||||
$(OBJS_C:%.o=%.d): %.d: $(SRC_DIR)/%.c $(FILE_DEP)
|
||||
$(E) '$(STAGE) DEP $(<:$(SRC_DIR)/%.c=%.c)'
|
||||
$(Q)$(CC_HOST) $(CC_CFLAGS) $(CFLAGS) -MM $< | sed 's#^$(@F:%.d=%.o):#$@ $(@:%.d=%.o):#' > $@
|
||||
$(Q)$(CC_HOST) $(CC_CFLAGS) $(CFLAGS) -MM $< | sed 's@^$(@F:%.d=%.o):@$@ $(@:%.d=%.o):@' > $@
|
||||
|
||||
$(OBJS_CPP:%.o=%.d): %.d: $(SRC_DIR)/%.cpp $(FILE_DEP)
|
||||
$(E) '$(STAGE) DEP $(<:$(SRC_DIR)/%.cpp=%.cpp)'
|
||||
$(Q)$(CXX_HOST) $(CFLAGS) -MM $< | sed 's#^$(@F:%.d=%.o):#$@ $(@:%.d=%.o):#' > $@
|
||||
$(Q)$(CXX_HOST) $(CFLAGS) -MM $< | sed 's@^$(@F:%.d=%.o):@$@ $(@:%.d=%.o):@' > $@
|
||||
|
||||
$(OBJS_MM:%.o=%.d): %.d: $(SRC_DIR)/%.mm $(FILE_DEP)
|
||||
$(E) '$(STAGE) DEP $(<:$(SRC_DIR)/%.mm=%.mm)'
|
||||
$(Q)$(CC_HOST) $(CFLAGS) -MM $< | sed 's#^$(@F:%.d=%.o):#$@ $(@:%.d=%.o):#' > $@
|
||||
$(Q)$(CC_HOST) $(CFLAGS) -MM $< | sed 's@^$(@F:%.d=%.o):@$@ $(@:%.d=%.o):@' > $@
|
||||
|
||||
$(OBJS_RC:%.o=%.d): %.d: $(SRC_DIR)/%.rc $(FILE_DEP)
|
||||
$(E) '$(STAGE) DEP $(<:$(SRC_DIR)/%.mm=%.mm)'
|
||||
@@ -193,7 +195,7 @@ endif
|
||||
/:/ { \
|
||||
left = NF - 1; \
|
||||
for (n = 2; n <= NF; n++) { \
|
||||
if (match($$n, "^$(SRC_DIR)") == 0) { \
|
||||
if (match($$n, "^$(ROOT_DIR)") == 0) { \
|
||||
$$n = ""; \
|
||||
left--; \
|
||||
} \
|
||||
@@ -209,16 +211,16 @@ endif
|
||||
{ \
|
||||
print $$0 \
|
||||
} \
|
||||
' < Makefile.dep.tmp | sed 's/ */ /g;s/ $$//' | $(SORT) > Makefile.dep
|
||||
' < Makefile.dep.tmp | sed 's@ *@ @g;s@ $$@@' | $(SORT) > Makefile.dep
|
||||
|
||||
$(Q)rm -f Makefile.dep.tmp Makefile.dep.tmp.bak
|
||||
|
||||
endif
|
||||
|
||||
# Avoid problems with deps if a .h/.hpp file is deleted without the deps
|
||||
# Avoid problems with deps if a .h/.hpp/.hpp.sq file is deleted without the deps
|
||||
# being updated. Now the Makefile continues, the deps are recreated
|
||||
# and all will be fine.
|
||||
%.h %.hpp:
|
||||
%.h %.hpp %.hpp.sq:
|
||||
@true
|
||||
|
||||
|
||||
@@ -259,6 +261,10 @@ else
|
||||
endif
|
||||
ifdef STRIP
|
||||
$(Q)$(STRIP) $@
|
||||
ifeq ($(OS), DOS)
|
||||
$(E) '$(STAGE) Adding CWSDPMI stub to $@'
|
||||
$(Q)$(ROOT_DIR)/os/dos/make_dos_binary_selfcontained.sh $(SRC_OBJS_DIR)/$@
|
||||
endif
|
||||
endif
|
||||
|
||||
# The targets to compile the endian-code
|
||||
@@ -274,10 +280,10 @@ $(ENDIAN_CHECK): $(SRC_DIR)/endian_check.cpp
|
||||
# Revision files
|
||||
|
||||
$(SRC_DIR)/rev.cpp: $(CONFIG_CACHE_VERSION) $(SRC_DIR)/rev.cpp.in
|
||||
$(Q)cat $(SRC_DIR)/rev.cpp.in | sed "s#@@REVISION@@#$(REV_NR)#g;s#@@VERSION@@#$(REV)#g;s#@@MODIFIED@@#$(MODIFIED)#g;s#@@DATE@@#`date +%d.%m.%y`#g" > $(SRC_DIR)/rev.cpp
|
||||
$(Q)cat $(SRC_DIR)/rev.cpp.in | sed "s@\!\!REVISION\!\!@$(REV_NR)@g;s@!!VERSION!!@$(REV)@g;s@!!MODIFIED!!@$(MODIFIED)@g;s@!!DATE!!@`date +%d.%m.%y`@g" > $(SRC_DIR)/rev.cpp
|
||||
|
||||
$(SRC_DIR)/ottdres.rc: $(CONFIG_CACHE_VERSION) $(SRC_DIR)/ottdres.rc.in
|
||||
$(Q)cat $(SRC_DIR)/ottdres.rc.in | sed "s#@@REVISION@@#$(REV_NR)#g;s#@@VERSION@@#$(REV)#g;s#@@DATE@@#`date +%d.%m.%y`#g" > $(SRC_DIR)/ottdres.rc
|
||||
$(Q)cat $(SRC_DIR)/ottdres.rc.in | sed "s@\!\!REVISION\!\!@$(REV_NR)@g;s@!!VERSION!!@$(REV)@g;s@!!DATE!!@`date +%d.%m.%y`@g" > $(SRC_DIR)/ottdres.rc
|
||||
|
||||
FORCE:
|
||||
|
||||
|
||||
Executable
+69
@@ -0,0 +1,69 @@
|
||||
#!/bin/sh
|
||||
|
||||
# $Id$
|
||||
|
||||
if ! [ -f ai/regression/regression.nut ]; 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 '
|
||||
/^function/ {
|
||||
for (local in locals) {
|
||||
delete locals[local]
|
||||
}
|
||||
if (match($0, "function Regression::Start") || match($0, "function Regression::Stop")) next
|
||||
locals["this"] = "AIControllerSquirrel"
|
||||
}
|
||||
|
||||
/local/ {
|
||||
gsub(".*local", "local")
|
||||
if (match($4, "^AI")) {
|
||||
sub("\\(.*", "", $4)
|
||||
locals[$2] = $4
|
||||
}
|
||||
}
|
||||
|
||||
/Valuate/ {
|
||||
gsub(".*Valuate\\(", "")
|
||||
gsub("\\).*", "")
|
||||
gsub(",.*", "")
|
||||
gsub("\\.", "::")
|
||||
print $0
|
||||
}
|
||||
|
||||
/\./ {
|
||||
for (local in locals) {
|
||||
if (match($0, local ".")) {
|
||||
fname = substr($0, index($0, local "."))
|
||||
sub("\\(.*", "", fname)
|
||||
sub("\\.", "::", fname)
|
||||
sub(local, locals[local], fname)
|
||||
print fname
|
||||
if (match(locals[local], "List")) {
|
||||
sub(locals[local], "AIAbstractList", fname)
|
||||
print fname
|
||||
}
|
||||
}
|
||||
}
|
||||
# We want to remove everything before the FIRST occurence of AI.
|
||||
# If we do not remove any other occurences of AI from the string
|
||||
# we will remove everything before the LAST occurence of AI, so
|
||||
# do some little magic to make it work the way we want.
|
||||
sub("AI", "AXXXXY")
|
||||
gsub("AI", "AXXXXX")
|
||||
sub(".*AXXXXY", "AI")
|
||||
if (match($0, "^AI") && match($0, ".")) {
|
||||
sub("\\(.*", "", $0)
|
||||
sub("\\.", "::", $0)
|
||||
print $0
|
||||
}
|
||||
}
|
||||
' | 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
|
||||
|
||||
diff -u tmp.in_regression tmp.in_api | grep -v '^+++' | grep '^+' | sed 's/^+//'
|
||||
|
||||
rm -f tmp.in_regression tmp.in_api
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
[misc]
|
||||
display_opt = SHOW_TOWN_NAMES|SHOW_STATION_NAMES|SHOW_SIGNS|WAYPOINTS
|
||||
language = english.lng
|
||||
|
||||
[gui]
|
||||
autosave = off
|
||||
|
||||
[game_creation]
|
||||
town_name = english
|
||||
|
||||
[ai_players]
|
||||
none =
|
||||
regression =
|
||||
|
||||
[vehicle]
|
||||
road_side = right
|
||||
plane_speed = 2
|
||||
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,14 @@
|
||||
/* $Id$ */
|
||||
|
||||
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 GetVersion() { return 1; }
|
||||
function GetDate() { return "2007-03-18"; }
|
||||
function CreateInstance() { return "Regression"; }
|
||||
}
|
||||
|
||||
RegisterAI(Regression());
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
/* $Id$ */
|
||||
|
||||
print(" Required this file");
|
||||
|
||||
Executable
+51
@@ -0,0 +1,51 @@
|
||||
#!/bin/sh
|
||||
|
||||
# $Id$
|
||||
|
||||
if ! [ -f ai/regression/regression.nut ]; 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
|
||||
|
||||
params=""
|
||||
gdb=""
|
||||
if [ "$1" != "-r" ]; then
|
||||
params="-snull -mnull -vnull:ticks=30000"
|
||||
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
|
||||
else
|
||||
./openttd -x -c ai/regression/regression.cfg $params -g ai/regression/regression.sav -d ai=2 2>&1 | awk '{ gsub("0x(\\(nil\\)|0+)", "0x00000000", $0); gsub("^dbg: \\[ai\\]", "", $0); gsub("^ ", "ERROR: ", $0); gsub("ERROR: \\[1\\] ", "", $0); gsub("\\[P\\] ", "", $0); print $0; }' > tmp.regression
|
||||
fi
|
||||
|
||||
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"
|
||||
fi
|
||||
echo ""
|
||||
echo "Regression test done"
|
||||
fi
|
||||
|
||||
rm -f ai/regression/main.nut ai/regression/info.nut
|
||||
|
||||
if [ -f scripts/game_start.scr.regression ]; then
|
||||
mv scripts/game_start.scr.regression scripts/game_start.scr
|
||||
fi
|
||||
|
||||
if [ "$1" != "-k" ]; then
|
||||
rm -f tmp.regression
|
||||
fi
|
||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,31 @@
|
||||
; $Id$
|
||||
;
|
||||
; This represents the original graphics as on the non-German Transport
|
||||
; Tycoon Deluxe DOS CD.
|
||||
;
|
||||
[metadata]
|
||||
name = original_dos
|
||||
shortname = TTDD
|
||||
version = 1
|
||||
description = Original Transport Tycoon Deluxe DOS edition graphics
|
||||
palette = DOS
|
||||
|
||||
[files]
|
||||
base = TRG1.GRF
|
||||
logos = TRGI.GRF
|
||||
arctic = TRGC.GRF
|
||||
tropical = TRGH.GRF
|
||||
toyland = TRGT.GRF
|
||||
extra = OPENTTDD.GRF
|
||||
|
||||
[md5s]
|
||||
TRG1.GRF = 9311676280e5b14077a8ee41c1b42192
|
||||
TRGI.GRF = da6a6c9dcc451eec88d79211437b76a8
|
||||
TRGC.GRF = ed446637e034104c5559b32c18afe78d
|
||||
TRGH.GRF = ee6616fb0e6ef6b24892c58c93d86fc9
|
||||
TRGT.GRF = e30e8a398ae86c03dc534a8ac7dfb3b6
|
||||
OPENTTDD.GRF = c886c7d5b38a93f2cb1cdc0d33472eb8
|
||||
|
||||
[origin]
|
||||
default = You can find it on your Transport Tycoon Deluxe CD-ROM.
|
||||
OPENTTDD.GRF = This file was part of your installation.
|
||||
@@ -0,0 +1,31 @@
|
||||
; $Id$
|
||||
;
|
||||
; This represents the original graphics as on the German Transport
|
||||
; Tycoon Deluxe DOS CD. It contains one broken sprite.
|
||||
;
|
||||
[metadata]
|
||||
name = original_dos_de
|
||||
shortname = TTDD
|
||||
version = 0
|
||||
description = Original Transport Tycoon Deluxe DOS (German) edition graphics
|
||||
palette = DOS
|
||||
|
||||
[files]
|
||||
base = TRG1.GRF
|
||||
logos = TRGI.GRF
|
||||
arctic = TRGC.GRF
|
||||
tropical = TRGH.GRF
|
||||
toyland = TRGT.GRF
|
||||
extra = OPENTTDD.GRF
|
||||
|
||||
[md5s]
|
||||
TRG1.GRF = 9311676280e5b14077a8ee41c1b42192
|
||||
TRGI.GRF = da6a6c9dcc451eec88d79211437b76a8
|
||||
TRGC.GRF = ed446637e034104c5559b32c18afe78d
|
||||
TRGH.GRF = ee6616fb0e6ef6b24892c58c93d86fc9
|
||||
TRGT.GRF = fcde1d7e8a74197d72a62695884b909e
|
||||
OPENTTDD.GRF = c886c7d5b38a93f2cb1cdc0d33472eb8
|
||||
|
||||
[origin]
|
||||
default = You can find it on your Transport Tycoon Deluxe CD-ROM.
|
||||
OPENTTDD.GRF = This file was part of your installation.
|
||||
@@ -0,0 +1,31 @@
|
||||
; $Id$
|
||||
;
|
||||
; This represents the original graphics as on the Transport
|
||||
; Tycoon Deluxe for Windows.
|
||||
;
|
||||
[metadata]
|
||||
name = original_windows
|
||||
shortname = TTDW
|
||||
version = 0
|
||||
description = Original Transport Tycoon Deluxe Windows edition graphics
|
||||
palette = Windows
|
||||
|
||||
[files]
|
||||
base = TRG1R.GRF
|
||||
logos = TRGIR.GRF
|
||||
arctic = TRGCR.GRF
|
||||
tropical = TRGHR.GRF
|
||||
toyland = TRGTR.GRF
|
||||
extra = OPENTTDW.GRF
|
||||
|
||||
[md5s]
|
||||
TRG1R.GRF = b04ce593d8c5016e07473a743d7d3358
|
||||
TRGIR.GRF = 0c2484ff6be49fc63a83be6ab5c38f32
|
||||
TRGCR.GRF = 3668f410c761a050b5e7095a2b14879b
|
||||
TRGHR.GRF = 06bf2b7a31766f048baac2ebe43457b1
|
||||
TRGTR.GRF = de53650517fe661ceaa3138c6edb0eb8
|
||||
OPENTTDW.GRF = b6689105405fa3ea34cb8a5543633d29
|
||||
|
||||
[origin]
|
||||
default = You can find it on your Transport Tycoon Deluxe CD-ROM.
|
||||
OPENTTDW.GRF = This file was part of your installation.
|
||||
@@ -1,4 +0,0 @@
|
||||
You can place you scenarios in this dir.
|
||||
|
||||
This file is really here to make the Makefile happy, it should be modified to
|
||||
properly handle scenarios (or maybe even not at all...).
|
||||
@@ -0,0 +1,2 @@
|
||||
start_ai MyAI
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
# Show a MOTD
|
||||
say "Welcome..."
|
||||
@@ -10,6 +10,8 @@ local scripts:
|
||||
should be used to set client optimization settings:
|
||||
- 'on_client.scr' is executed when you join a server [all clients]
|
||||
|
||||
- 'on_server_connect.scr' is executed on the server when a client has joined (MOTD)
|
||||
|
||||
should be used to set the servers port/ip and/or server optimization settings/patches:
|
||||
- 'pre_server.scr' is executed before the servers tcp stack is started [in-game only]
|
||||
- 'pre_dedicated.scr' is executed before the servers tcp stack is started [dedicated only]
|
||||
|
||||
+1290
-940
File diff suppressed because it is too large
Load Diff
Executable → Regular
+464
-156
File diff suppressed because it is too large
Load Diff
@@ -37,7 +37,7 @@ if [ "$1" = "--reconfig" ] || [ "$1" = "--reconfigure" ]; then
|
||||
exit 1
|
||||
fi
|
||||
# Make sure we don't lock config.cache
|
||||
cat config.cache | sed 's/\\ /\\\\ /g' > cache.tmp
|
||||
cat config.cache | sed 's@\\ @\\\\ @g' > cache.tmp
|
||||
sh cache.tmp
|
||||
rm -f cache.tmp
|
||||
exit $?
|
||||
@@ -50,7 +50,7 @@ save_params
|
||||
make_cflags_and_ldflags
|
||||
|
||||
EXE=""
|
||||
if [ "$os" = "MINGW" ] || [ "$os" = "CYGWIN" ] || [ "$os" = "OS2" ] || [ "$os" = "WINCE" ]; then
|
||||
if [ "$os" = "MINGW" ] || [ "$os" = "CYGWIN" ] || [ "$os" = "OS2" ] || [ "$os" = "DOS" ] || [ "$os" = "WINCE" ]; then
|
||||
EXE=".exe"
|
||||
fi
|
||||
|
||||
@@ -59,7 +59,7 @@ STRGEN="strgen$EXE"
|
||||
ENDIAN_CHECK="endian_check$EXE"
|
||||
|
||||
if [ -z "$sort" ]; then
|
||||
PIPE_SORT="sed s/a/a/"
|
||||
PIPE_SORT="sed s@a@a@"
|
||||
else
|
||||
PIPE_SORT="$sort"
|
||||
fi
|
||||
@@ -82,6 +82,7 @@ SRCS="`< $ROOT_DIR/source.list tr '\r' '\n' | $awk '
|
||||
|
||||
deep += 1;
|
||||
|
||||
if ($0 == "ALLEGRO" && "'$allegro_config'" == "") { next; }
|
||||
if ($0 == "SDL" && "'$sdl_config'" == "") { next; }
|
||||
if ($0 == "PNG" && "'$png_config'" == "") { next; }
|
||||
if ($0 == "OSX" && "'$os'" != "OSX") { next; }
|
||||
@@ -89,14 +90,16 @@ SRCS="`< $ROOT_DIR/source.list tr '\r' '\n' | $awk '
|
||||
if ($0 == "PSP" && "'$os'" != "PSP") { next; }
|
||||
if ($0 == "DEDICATED" && "'$enable_dedicated'" != "1") { next; }
|
||||
if ($0 == "COCOA" && "'$with_cocoa'" == "0") { next; }
|
||||
if ($0 == "DOS" && "'$os'" != "DOS") { next; }
|
||||
if ($0 == "BEOS" && "'$os'" != "BEOS") { next; }
|
||||
if ($0 == "WIN32" && "'$os'" != "MINGW" &&
|
||||
"'$os'" != "CYGWIN" && "'$os'" != "MSVC" ) { next; }
|
||||
if ($0 == "MORPHOS" && "'$os'" != "MORPHOS") { next; }
|
||||
if ($0 == "WINCE" && "'$os'" != "WINCE") { next; }
|
||||
if ($0 == "MSVC" && "'$os'" != "MSVC") { next; }
|
||||
if ($0 == "DIRECTMUSIC" && "'$with_direct_music'" == "0") { next; }
|
||||
if ($0 == "LIBTIMIDITY" && "'$libtimidity'" == "" ) { next; }
|
||||
if ($0 == "NO_THREADS" && "'$with_threads'" == "0") { next; }
|
||||
if ($0 == "HAVE_THREAD" && "'$with_threads'" == "0") { next; }
|
||||
|
||||
skip += 1;
|
||||
|
||||
@@ -122,12 +125,12 @@ SRCS="` echo \"$SRCS\" | $awk ' { ORS = " " } { print $0; }'`"
|
||||
|
||||
# In makefiles, we always use -u for sort
|
||||
if [ -z "$sort" ]; then
|
||||
sort="sed s/a/a/"
|
||||
sort="sed s@a@a@"
|
||||
else
|
||||
sort="$sort -u"
|
||||
fi
|
||||
|
||||
CONFIGURE_FILES="$ROOT_DIR/configure $ROOT_DIR/config.lib $ROOT_DIR/Makefile.in $ROOT_DIR/Makefile.lang.in $ROOT_DIR/Makefile.src.in"
|
||||
CONFIGURE_FILES="$ROOT_DIR/configure $ROOT_DIR/config.lib $ROOT_DIR/Makefile.in $ROOT_DIR/Makefile.lang.in $ROOT_DIR/Makefile.src.in $ROOT_DIR/Makefile.bundle.in"
|
||||
|
||||
generate_main
|
||||
generate_lang
|
||||
|
||||
@@ -7,8 +7,9 @@ you have downloaded english.txt, the master language file, for. While this is
|
||||
not always true, namely when changes in the code have not touched language
|
||||
files, your safest bet is to assume this 'limitation'.
|
||||
As a first step you need to compile strgen. This is as easy as typing
|
||||
'make strgen'. You can also download a precompiled binary from a release,
|
||||
nightly, etc.
|
||||
'make strgen'. You can download the precompile strgen from:
|
||||
http://www.openttd.org/download-strgen
|
||||
|
||||
strgen takes as argument a txt file and translates it to a lng file, allowing
|
||||
it to be used inside OpenTTD. strgen needs the master language file
|
||||
english.txt to work. Below are some examples of strgen usage.
|
||||
|
||||
@@ -20,7 +20,7 @@ downloading; mostly because the DirectX SDK and Platform SDK are about
|
||||
500MB each.
|
||||
Download the following files:
|
||||
|
||||
* openttd-useful.zip (http://sf.net/project/showfiles.php?group_id=103924&package_id=114307)
|
||||
* openttd-useful.zip (http://binaries.openttd.org/extra/openttd-useful/)
|
||||
* DirectX 8.1 SDK (http://neuron.tuke.sk/~mizanin/eng/Dx81sdk-include-lib.rar) (or alternatively the latest DirectX SDK from Microsoft)
|
||||
* MS Windows Platform SDK (http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en)
|
||||
* afxres.h (http://www-d0.fnal.gov/d0dist/dist/packages/d0ve/devel/windows/AFXRES.H)
|
||||
@@ -29,8 +29,8 @@ Download the following files:
|
||||
|
||||
You need an SVN-client to download the source from subversion:
|
||||
|
||||
* CLI Subversion (http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91)
|
||||
* GUI TortoiseSVN (http://tortoisesvn.tigris.org/download.html)
|
||||
* CLI Subversion (http://subversion.tigris.org/)
|
||||
* GUI TortoiseSVN (http://tortoisesvn.tigris.org/)
|
||||
|
||||
|
||||
2) INCLUDES AND LIBRARIES
|
||||
|
||||
+89
-36
@@ -376,30 +376,40 @@
|
||||
</tr>
|
||||
</table>
|
||||
<ul>
|
||||
<li>m2 bit 6: Signal 0 and 1: set = semaphore signals, clear = light signals</li>
|
||||
<li>m2 bit 2: Signal 2 and 3: set = semaphore signals, clear = light signals</li>
|
||||
<li>m2 bits 5..4: type of signal 0 and 1 (same values as m2 bits 1..0)</li>
|
||||
<li>m2 bits 1..0: type of signal 2 and 3
|
||||
<li>m2 bit 7: Signal 0 and 1: set = semaphore signals, clear = light signals</li>
|
||||
<li>m2 bit 3: Signal 2 and 3: set = semaphore signals, clear = light signals</li>
|
||||
<li>m2 bits 6..4: type of signal 0 and 1 (same values as m2 bits 2..0)</li>
|
||||
<li>m2 bits 2..0: type of signal 2 and 3
|
||||
<table>
|
||||
<tr>
|
||||
<td nowrap="nowrap" valign="top"><tt>00</tt>: </td>
|
||||
<td nowrap="nowrap" valign="top"><tt>000</tt>: </td>
|
||||
<td align="left">normal signals</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td nowrap="nowrap" valign="top"><tt>01</tt>: </td>
|
||||
<td nowrap="nowrap" valign="top"><tt>001</tt>: </td>
|
||||
<td align="left">pre-signals</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td nowrap="nowrap" valign="top"><tt>10</tt>: </td>
|
||||
<td nowrap="nowrap" valign="top"><tt>010</tt>: </td>
|
||||
<td align="left">exit-signals</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td nowrap="nowrap" valign="top"><tt>11</tt>: </td>
|
||||
<td nowrap="nowrap" valign="top"><tt>011</tt>: </td>
|
||||
<td align="left">combo-signals</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td nowrap="nowrap" valign="top"><tt>100</tt>: </td>
|
||||
<td align="left">pbs signals</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td nowrap="nowrap" valign="top"><tt>101</tt>: </td>
|
||||
<td align="left">no-entry signals</td>
|
||||
</tr>
|
||||
</table>
|
||||
</li>
|
||||
|
||||
@@ -407,6 +417,39 @@
|
||||
<li>m4 bits 7..4: bit clear = signal 3..0 shows red</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>m2 bits 8..10: track reserved for pbs
|
||||
<table>
|
||||
<tr>
|
||||
<td><tt>0</tt> </td>
|
||||
<td>not reserved</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><tt>1</tt> </td>
|
||||
<td>X direction</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><tt>2</tt> </td>
|
||||
<td>Y direction</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><tt>3</tt> </td>
|
||||
<td>north corner (W-E)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><tt>4</tt> </td>
|
||||
<td>south corner (W-E)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><tt>5</tt> </td>
|
||||
<td>west corner (N-S)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><tt>6</tt> </td>
|
||||
<td>east corner (N-S)</td>
|
||||
</tr>
|
||||
</table>
|
||||
</li>
|
||||
<li>m2 bit 11: opposite track is reserved, too</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>m5 bit 7 set, bit 6 clear: checkpoint
|
||||
@@ -425,6 +468,7 @@
|
||||
</tr>
|
||||
</table>
|
||||
</li>
|
||||
<li>m5 bit 4: pbs reservation state</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>m5 bit 7 set, bit 6 set: railway depot
|
||||
@@ -452,6 +496,7 @@
|
||||
</tr>
|
||||
</table>
|
||||
</li>
|
||||
<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>
|
||||
@@ -468,8 +513,9 @@
|
||||
<td valign=top nowrap> </td>
|
||||
<td>
|
||||
<ul>
|
||||
<li>m3 bit 7 set = on snow or desert</li>
|
||||
<li>m7 bits 7..5: present road types
|
||||
<li>m2: Index into the array of towns (owning town for town roads; closest town otherwise, INVALID_TOWN if there is no town or we are creating a town)</li>
|
||||
<li>m7 bit 5 set = on snow or desert</li>
|
||||
<li>m7 bits 7..6: present road types
|
||||
<table>
|
||||
<tr>
|
||||
<td>bit 0 </td>
|
||||
@@ -480,17 +526,11 @@
|
||||
<td>bit 1 </td>
|
||||
<td>tram</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>bit 2 </td>
|
||||
<td>reserved</td>
|
||||
</tr>
|
||||
</table>
|
||||
</li>
|
||||
<li>m5 bits 7 clear: road or level-crossing
|
||||
<ul>
|
||||
<li>m2: Index into the array of towns, 0 for non-town roads</li>
|
||||
<li>m3 bits 6..4:
|
||||
<li>m6 bits 5..3:
|
||||
<table>
|
||||
<tr>
|
||||
<td><tt>0</tt> </td>
|
||||
@@ -522,13 +562,12 @@
|
||||
</tr>
|
||||
</table>
|
||||
</li>
|
||||
<li>m5 bits 3..0: <a href="#OwnershipInfo">owner</a> of road type 1 (tram); OWNER_NONE (<tt>10</tt>) is stored as OWNER_TOWN (<tt>0F</tt>)
|
||||
<li>m7 bits 4..0: <a href="#OwnershipInfo">owner</a> of road type 2 (reserved)
|
||||
<li>m3 bits 7..4: <a href="#OwnershipInfo">owner</a> of road type 1 (tram); OWNER_NONE (<tt>10</tt>) is stored as OWNER_TOWN (<tt>0F</tt>)
|
||||
<li>m5 bit 6 clear: road
|
||||
<ul>
|
||||
<li>m1: <a href="#OwnershipInfo">owner</a> of the road type 0 (normal road)</li>
|
||||
<li>m3 bits 3..0: counter for the roadworks</li>
|
||||
<li>m4 bits 3..0: road layout road type 0 (normal road): bit set = road piece present:
|
||||
<li>m7 bits 3..0: counter for the roadworks</li>
|
||||
<li>m5 bits 3..0: road layout road type 0 (normal road): bit set = road piece present:
|
||||
<table>
|
||||
<tr>
|
||||
<td align=left>bit 0: </td>
|
||||
@@ -548,8 +587,7 @@
|
||||
</tr>
|
||||
</table>
|
||||
</li>
|
||||
<li>m4 bits 7..4: road layout road type 1 (tram)</li>
|
||||
<li>m6 bits 5..2: road layout road type 2 (reserved)</li>
|
||||
<li>m3 bits 0..3: road layout road type 1 (tram)</li>
|
||||
<li>m5 bits 5..4: bits to disallow vehicles to go a specific direction
|
||||
<table>
|
||||
<tr>
|
||||
@@ -568,7 +606,7 @@
|
||||
<ul>
|
||||
<li>m1: <a href="#OwnershipInfo">owner</a> of the railway track</li>
|
||||
<li>m3 bits 3..0: <a href="#TrackType">railway track type</a></li>
|
||||
<li>m4 bit 6: direction
|
||||
<li>m5 bit 0: direction
|
||||
<table>
|
||||
<tr>
|
||||
<td align=left><tt>0</tt> </td>
|
||||
@@ -580,8 +618,9 @@
|
||||
</tr>
|
||||
</table>
|
||||
</li>
|
||||
<li>m4 bit 5: set if crossing lights are on</li>
|
||||
<li>m4 bits 4..0: <a href="#OwnershipInfo">owner</a> of the road type 0 (normal road)</li>
|
||||
<li>m5 bit 5: set if crossing lights are on</li>
|
||||
<li>m6 bits 4..0: <a href="#OwnershipInfo">owner</a> of the road type 0 (normal road)</li>
|
||||
<li>m5 bit 4: pbs reservation state</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
@@ -634,7 +673,7 @@
|
||||
<ul>
|
||||
<li> set : House is complete
|
||||
<ul>
|
||||
<li>m5 : year of house construction (relative to 1920); clamped to 0..255 (1920..2175)</li>
|
||||
<li>m5 : Age of house in years, clamped at 255</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li> clear : House is in construction
|
||||
@@ -796,9 +835,9 @@
|
||||
<ul>
|
||||
<li>m1: <a href="#OwnershipInfo">owner</a> of the station</li>
|
||||
<li>m2: index into the array of stations</li>
|
||||
<li>m3 bits 7..4: persistent random data for newstations</li>
|
||||
<li>m3 bits 7..4: persistent random data for newstations (train station)</li>
|
||||
<li>m3 bits 7..4: <a href="#OwnershipInfo">owner</a> of tram tracks (road stop)</li>
|
||||
<li>m3 bits 3..0: <a href="#TrackType">track type</a> for railway stations</li>
|
||||
<li>m3 bits 2..0: present road types for road stops</li>
|
||||
<li>m3 bits 1..0: water class for buoys and water part of docks</li>
|
||||
<li>m4: custom station id; 0 means standard graphics</li>
|
||||
<li>m5: graphics index (range from 0..255 for each station type):
|
||||
@@ -897,8 +936,12 @@
|
||||
</table>
|
||||
</li>
|
||||
<li>m6 bits 5..3: the station type (rail, airport, truck, bus, oilrig, dock, buoy)</li>
|
||||
<li>m6 bit 2: 1 when a drive through road stop is built over a town owned road, otherwise 0</li>
|
||||
<li>m6 bit 2: pbs reservation state for railway stations</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 (train station)</li>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -1034,6 +1077,7 @@
|
||||
<ul>
|
||||
<li>m1 bit 7: clear = under construction
|
||||
<ul>
|
||||
<li>m1 bits 6..5 : Water class (sea, canal, river or land)
|
||||
<li>m1 bits 3..2: construction counter, for buildings under construction incremented on every periodic tile processing</li>
|
||||
<li>m1 bits 1..0: stage of construction (<tt>3</tt> = completed), incremented when the construction counter wraps around<br>
|
||||
the meaning is different for some animated tiles which are never under construction (types <tt>01</tt>, <tt>1E</tt>..<tt>20</tt>, <tt>30</tt>, <tt>58</tt>; see above)</li>
|
||||
@@ -1364,14 +1408,13 @@
|
||||
<td>
|
||||
<ul>
|
||||
<li>m1: <a href="#OwnershipInfo">owner</a></li>
|
||||
<li>m2 bits 7..4: see bridge ramp</li>
|
||||
<li>m3 bits 7..4: <a href="#OwnershipInfo">owner</a> of tram</li>
|
||||
<li>m3 bits 3..0: <a href="#TrackType">track type</a> for railway</li>
|
||||
<li>m3 bits 2..0: present road types for road</li>
|
||||
<li>m4 bit 7 set = on snow or desert</li>
|
||||
<li>m5 bit 4: pbs reservation state for railway</li>
|
||||
<li>m5 bits 7 clear: tunnel entrance/exit</li>
|
||||
<li>m5 bit 7 set: bridge ramp
|
||||
<ul>
|
||||
<li>m2 bits 7..4: <a name="BridgeType">bridge type</a>:
|
||||
<li>m6 bits 5..2: <a name="BridgeType">bridge type</a>:
|
||||
<table>
|
||||
<tr>
|
||||
<th align=left>Type </th>
|
||||
@@ -1471,6 +1514,11 @@
|
||||
<td><tt>1</tt> </td>
|
||||
<td>road</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><tt>2</tt> </td>
|
||||
<td>water</td>
|
||||
</tr>
|
||||
</li>
|
||||
<li>m5 bits 1..0: direction onto the bridge / out of the tunnel
|
||||
<table>
|
||||
@@ -1497,6 +1545,9 @@
|
||||
</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>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -1511,6 +1562,8 @@
|
||||
<ul>
|
||||
<li>m1: <a href="#OwnershipInfo">owner</a> of the object (for lighthouses and transmitters normally <tt>10</tt>)</li>
|
||||
<li>m2: see company statue
|
||||
<li>m3 bits 4..2: size of HQ
|
||||
<li>m3 bits 1..0: section identification of the HQ
|
||||
<li>m5: tile type:
|
||||
<table>
|
||||
<tr>
|
||||
@@ -1538,8 +1591,8 @@
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td nowrap valign=top><tt>80</tt>..<tt>93</tt> </td>
|
||||
<td align=left>company headquarters (5 sets of 4 tiles each, updated quarterly depending on the company performance)</td>
|
||||
<td nowrap valign=top><tt>04</tt><tt></tt> </td>
|
||||
<td align=left>company headquarters</td>
|
||||
</tr>
|
||||
</table>
|
||||
</li>
|
||||
|
||||
+29
-29
@@ -90,7 +90,7 @@ the array so you can quickly see what is used and what is not.
|
||||
<td class="caption">rail</td>
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
<td class="bits"><span class="option">~~~</span>X XXXX</td>
|
||||
<td class="bits"><span class="free">OOOO OOOO OOOO OOOO</span></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> <span class="option">~~</span>XX</td>
|
||||
<td class="bits"><span class="free">OOOO</span> XXXX</td>
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
@@ -101,7 +101,7 @@ the array so you can quickly see what is used and what is not.
|
||||
<td class="caption">rail with signals</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits"><span class="free">OOOO OOOO O</span>XXX <span class="free">O</span>XXX</td>
|
||||
<td class="bits"><span class="free">OOOO</span> XXXX XXXX XXXX</td>
|
||||
<td class="bits">XXXX <span class="option">~~</span>XX</td>
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
@@ -115,7 +115,7 @@ the array so you can quickly see what is used and what is not.
|
||||
<td class="bits"><span class="free">OOOO OOOO OOOO OOOO</span></td>
|
||||
<td class="bits"><span class="free">OOOO</span> <span class="option">~~</span>XX</td>
|
||||
<td class="bits"><span class="free">OOOO</span> XXXX</td>
|
||||
<td class="bits">XX<span class="free">OO OO</span>XX</td>
|
||||
<td class="bits">XX<span class="free">O</span>X <span class="free">O</span>XXX</td>
|
||||
<td class="bits">XX<span class="free">OO OO</span>XX</td>
|
||||
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
||||
</tr>
|
||||
@@ -126,7 +126,7 @@ the array so you can quickly see what is used and what is not.
|
||||
<td class="bits">XXXX XXXX XXXX XXXX</td>
|
||||
<td class="bits"><span class="free">OOOO</span> <span class="option">~~</span>XX</td>
|
||||
<td class="bits"><span class="free">OOOO</span> XXXX</td>
|
||||
<td class="bits">XX<span class="free">OO OOO</span>X</td>
|
||||
<td class="bits">XX<span class="free">O</span>X <span class="free">OOO</span>X</td>
|
||||
<td class="bits">XX<span class="free">OO OO</span>XX</td>
|
||||
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
||||
</tr>
|
||||
@@ -137,10 +137,10 @@ the array so you can quickly see what is used and what is not.
|
||||
<td class="bits"><span class="option">~~~</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 XXXX</td>
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
<td class="bits">XXXX X<span class="free">O</span>XX</td>
|
||||
<td class="bits">XXX<span class="free">O</span> XXXX</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="caption">level crossing</td>
|
||||
@@ -148,17 +148,17 @@ 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">XXXX <span class="option">~~</span>XX</td>
|
||||
<td class="bits"><span class="free">O</span>XXX XXXX</td>
|
||||
<td class="bits">XX<span class="free">OO</span> XXXX</td>
|
||||
<td class="bits">XX<span class="free">OO OO</span>XX</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">XXXX XXXX</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="caption">road depot</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">X<span class="free">OOO OOOO</span></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">XX<span class="free">OO OO</span>XX</td>
|
||||
<td class="bits">XX<span class="free">OO OO</span>XX</td>
|
||||
@@ -197,19 +197,19 @@ the array so you can quickly see what is used and what is not.
|
||||
<td class="bits">XXXX <span class="option">~~</span>XX</td>
|
||||
<td class="bits">XXXX XXXX</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">OOOO OOOO</span></td>
|
||||
<td class="bits"><span class="free">OO</span>XX XXXX</td>
|
||||
<td class="bits">XXXX XXXX</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"><span class="free">OOOO O</span>XXX</td>
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
<td class="bits"><span class="option">~~~~ ~~~~</span></td>
|
||||
<td class="bits"><span class="option">~~~~ ~</span>XXX</td>
|
||||
<td class="bits"><span class="free">OO</span>XX XXXX</td>
|
||||
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
||||
<td class="bits">XXXX X<span class="free">O</span>XX</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="caption">dock</td>
|
||||
@@ -293,7 +293,7 @@ the array so you can quickly see what is used and what is not.
|
||||
<td>8</td>
|
||||
<td class="caption">industry</td>
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
<td class="bits">X<span class="free">OOO</span> <span class="abuse">
|
||||
<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>
|
||||
@@ -308,22 +308,22 @@ the array so you can quickly see what is used and what is not.
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
<td class="bits"><span class="option">~~~</span>X XXXX</td>
|
||||
<td class="bits"><span class="free">OOOO OOOO OOOO OOOO</span></td>
|
||||
<td class="bits"><span class="free">OOOO</span> <span class="option">~</span><span class="abuse">XXX</span></td>
|
||||
<td class="bits">X<span class="free">OOO OOOO</span></td>
|
||||
<td class="bits">X<span class="free">OOO</span> <span class="option">~</span>XXX</td>
|
||||
<td class="bits">XX<span class="free">OO OO</span>XX</td>
|
||||
<td class="bits">XXXX <span class="option">~~</span>XX</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">XXXX X<span class="free">O</span>XX</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>bridge ramp</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits">-inherit-</td>
|
||||
<td class="bits"><span class="free">OOOO OOOO</span> XXXX <span class="free">OOOO</span></td>
|
||||
<td class="bits"><span class="free">OOOO</span> <span class="option">~</span><span class="abuse">XXX</span></td>
|
||||
<td class="bits">X<span class="free">OOO OOOO</span></td>
|
||||
<td class="bits">X<span class="free">OOO</span> <span class="option">~</span>XXX</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">-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>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan=2>A</td>
|
||||
@@ -331,9 +331,9 @@ the array so you can quickly see what is used and what is not.
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
<td class="bits"><span class="option">~~~</span>X XXXX</td>
|
||||
<td class="bits"><span class="free">OOOO OOOO OOOO OOOO</span></td>
|
||||
<td class="bits"><span class="free">OOO</span>X 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">X<span class="option">~~</span>X 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>
|
||||
</tr>
|
||||
|
||||
@@ -0,0 +1,73 @@
|
||||
;
|
||||
; Example file for the OpenTTD Base Graphics replacement sets.
|
||||
; This file consists of basically two different parts:
|
||||
; * metadata
|
||||
; * information about the files
|
||||
;
|
||||
; Metadata contains information about the name, version and palette
|
||||
; of the graphics set.
|
||||
;
|
||||
; == Getting started ==
|
||||
; - you can't add comments after values
|
||||
; - you have to fill the MD5 checksum for each file
|
||||
; - you may not miss any of the metadata or files items
|
||||
; - `openttd -h` lists all graphics replacements sets it found to be correct
|
||||
; - `openttd -d grf=1` shows warnings/errors when parsing an .obg file
|
||||
; - `openttd -I <name>` starts OpenTTD with the given set (case sensitive)
|
||||
; - adding `graphicsset = <name>` to the misc section of openttd.cfg makes
|
||||
; OpenTTD start with that graphics set by default
|
||||
; - there is a command line tool for all platforms called md5sum that can
|
||||
; create the MD5 checksum you need.
|
||||
; - all files specified in this file are search relatively to the path where
|
||||
; this file is found, i.e. if the graphics files are in a subdir you have
|
||||
; to add that subdir to the names in this file to! It will NOT search for
|
||||
; a file named like specified in here.
|
||||
|
||||
[metadata]
|
||||
; the name of the pack, preferably less than 16 characters
|
||||
name = example
|
||||
; the short name (4 characters), used to identify this set within NewGRFs
|
||||
shortname = XMPL
|
||||
; the version of this graphics set (read as single integer)
|
||||
version = 0
|
||||
; a fairly short description of the set
|
||||
description = foo
|
||||
; palette used by the set; either DOS or Windows
|
||||
palette = DOS
|
||||
|
||||
; The files section lists the files that replace sprites.
|
||||
; The file names are case sensitive.
|
||||
[files]
|
||||
; GRF file with the base sprites
|
||||
base = TRG1.GRF
|
||||
; GRF file with logos, original terrain generator sprites
|
||||
logos = TRGI.GRF
|
||||
; GRF file with extra arctic sprites
|
||||
arctic = TRGC.GRF
|
||||
; GRF file with extra tropical sprites
|
||||
tropical = TRGH.GRF
|
||||
; GRF file with extra toyland sprites
|
||||
toyland = TRGT.GRF
|
||||
; NewGRF file using Actions 5, 7, 9 and A to replace sprites
|
||||
extra = OPENTTDD.GRF
|
||||
|
||||
; The md5s section lists the MD5 checksum for the files that replace them.
|
||||
; Note that the list of files is case sensitive. Each GRF listed in the
|
||||
; files section must be listed here with it's MD5 checksum, otherwise you
|
||||
; will get a lot of warnings when starting OpenTTD.
|
||||
[md5s]
|
||||
TRG1.GRF = 9311676280e5b14077a8ee41c1b42192
|
||||
TRGI.GRF = da6a6c9dcc451eec88d79211437b76a8
|
||||
TRGH.GRF = ee6616fb0e6ef6b24892c58c93d86fc9
|
||||
TRGC.GRF = ed446637e034104c5559b32c18afe78d
|
||||
TRGT.GRF = fcde1d7e8a74197d72a62695884b909e
|
||||
OPENTTDD.GRF = f829f62c137d6d7c6e272c481b796dd5
|
||||
|
||||
; The origin section provides the possibility to put and extra line into
|
||||
; the warning that a file is missing/corrupt. This can be used to tell
|
||||
; them where to find it. It works on the filename specified in the
|
||||
; files section and if that is not found it will fall back to the default
|
||||
; as shown below here.
|
||||
[origin]
|
||||
default = You can find it on your Transport Tycoon Deluxe CD-ROM.
|
||||
OPENTTDD.GRF = This file was part of your installation.
|
||||
+29
-16
@@ -1,32 +1,34 @@
|
||||
.\" Hey, EMACS: -*- nroff -*-
|
||||
.\" Please adjust this date whenever revising the manpage.
|
||||
.Dd Jul 20, 2008
|
||||
.Dd Feb 05, 2009
|
||||
.Dt OPENTTD 6
|
||||
.Sh NAME
|
||||
.Nm openttd
|
||||
.Nd An open source clone of the Microprose game "Transport Tycoon Deluxe"
|
||||
.Sh SYNOPSIS
|
||||
.Nm
|
||||
.Op Fl Defhix
|
||||
.Op Fl G Ar seed
|
||||
.Op Fl efhx
|
||||
.Op Fl a Ar ai
|
||||
.Op Fl b Ar blitter
|
||||
.Op Fl d Ar [level | cat=lvl[, ...]]
|
||||
.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 G Ar seed
|
||||
.Op Fl i Ar palette
|
||||
.Op Fl I Ar graphicsset
|
||||
.Op Fl l Ar host[:port]
|
||||
.Op Fl m Ar driver
|
||||
.Op Fl n Ar host[:port][#player]
|
||||
.Op Fl r Ar widthxheight
|
||||
.Op Fl t Ar date
|
||||
.Op Fl m Ar driver
|
||||
.Op Fl s Ar driver
|
||||
.Op Fl t Ar year
|
||||
.Op Fl v Ar driver
|
||||
.Op Fl b Ar blitter
|
||||
.Sh OPTIONS
|
||||
.Bl -tag -width ".Fl n Ar host[:port][#player]"
|
||||
.It Fl D Ar [host][:port]
|
||||
Start a dedicated server
|
||||
.It Fl G Ar seed
|
||||
Seed the pseudo random number generator
|
||||
.It Fl a Ar ai
|
||||
Set the AI, see
|
||||
.Fl h
|
||||
.It Fl b Ar blitter
|
||||
Set the blitter, see
|
||||
.Fl h
|
||||
@@ -38,6 +40,13 @@ Set debug verbosity for all categories to
|
||||
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
|
||||
.Fl d
|
||||
after
|
||||
.Fl D
|
||||
.It Fl G Ar seed
|
||||
Seed the pseudo random number generator
|
||||
.It Fl e
|
||||
Start in world editor mode
|
||||
.It Fl f
|
||||
@@ -48,9 +57,13 @@ Load
|
||||
.Ar savegame
|
||||
at start or start a new game if omitted
|
||||
.It Fl h
|
||||
Display a summary of all options and available drivers
|
||||
.It Fl i
|
||||
Force to use the DOS palette (use this if you see a lot of magenta)
|
||||
Display a summary of all options and available AIs, blitters, drivers and graphic sets
|
||||
.It Fl i Ar palette
|
||||
Set the palette, see
|
||||
.Fl h
|
||||
.It Fl I Ar graphicsset
|
||||
Set the graphics set, see
|
||||
.Fl h
|
||||
.It Fl l Ar host[:port]
|
||||
Redirect DEBUG(), See
|
||||
.Fl D
|
||||
@@ -64,8 +77,8 @@ Set the resolution
|
||||
.It Fl s Ar driver
|
||||
Set the sound driver, see
|
||||
.Fl h
|
||||
.It Fl t Ar date
|
||||
Set the starting date
|
||||
.It Fl t Ar year
|
||||
Set the starting year
|
||||
.It Fl v Ar driver
|
||||
Set the video driver, see
|
||||
.Fl h
|
||||
|
||||
+10
-8
@@ -1,5 +1,7 @@
|
||||
#!/bin/sh
|
||||
|
||||
# $Id$
|
||||
|
||||
# Arguments given? Show help text.
|
||||
if [ "$#" != "0" ]; then
|
||||
cat <<EOF
|
||||
@@ -82,19 +84,19 @@ elif [ -d "$ROOT_DIR/.git" ]; then
|
||||
if [ -n "`git diff-index HEAD \"$SRC_DIR\"`" ]; then
|
||||
MODIFIED="2"
|
||||
fi
|
||||
HASH=`LC_ALL=C git rev-parse --verify HEAD 2>/dev/null | cut -c1-8`
|
||||
REV="g$HASH"
|
||||
BRANCH=`git branch|grep '[*]' | sed 's/\* //;s/^master$//'`
|
||||
REV_NR=`LC_ALL=C git log --pretty=format:%s "$SRC_DIR" | grep "^(svn r[0-9]*)" | head -n 1 | sed "s/.*(svn r\([0-9]*\)).*/\1/"`
|
||||
HASH=`LC_ALL=C git rev-parse --verify HEAD 2>/dev/null`
|
||||
REV="g`echo $HASH | cut -c1-8`"
|
||||
BRANCH=`git branch|grep '[*]' | sed 's@\* @@;s@^master$@@'`
|
||||
REV_NR=`LC_ALL=C git log --pretty=format:%s "$SRC_DIR" | grep "^(svn r[0-9]*)" | head -n 1 | sed "s@.*(svn r\([0-9]*\)).*@\1@"`
|
||||
elif [ -d "$ROOT_DIR/.hg" ]; then
|
||||
# We are a hg checkout
|
||||
if [ -n "`hg status \"$SRC_DIR\" | grep -v '^?'`" ]; then
|
||||
MODIFIED="2"
|
||||
fi
|
||||
HASH=`LC_ALL=C hg parents 2>/dev/null | head -n 1 | cut -d: -f3 | cut -c1-8`
|
||||
REV="h$HASH"
|
||||
BRANCH=`hg branch | sed 's/^default$//'`
|
||||
REV_NR=`LC_ALL=C hg log -r $HASH:0 -k "svn" -l 1 --template "{desc}\n" "$SRC_DIR" | grep "^(svn r[0-9]*)" | head -n 1 | sed "s/.*(svn r\([0-9]*\)).*/\1/"`
|
||||
HASH=`LC_ALL=C hg parents --template="{node}"`
|
||||
REV="h`echo $HASH | cut -c1-8`"
|
||||
BRANCH=`hg branch | sed 's@^default$@@'`
|
||||
REV_NR=`LC_ALL=C hg log -r $HASH:0 -k "svn" -l 1 --template "{desc}\n" "$SRC_DIR" | grep "^(svn r[0-9]*)" | head -n 1 | sed "s@.*(svn r\([0-9]*\)).*@\1@"`
|
||||
else
|
||||
# We don't know
|
||||
MODIFIED="1"
|
||||
|
||||
+11
-17
@@ -11,28 +11,22 @@ by the number below on http://bugs.openttd.org.
|
||||
If the bug report is closed, it has been fixed, which then can be verified
|
||||
in the latest SVN version of /trunk.
|
||||
|
||||
Bugs for 0.6.3
|
||||
Bugs for 0.7.1
|
||||
------------------------------------------------------------------------
|
||||
URL: http://bugs.openttd.org
|
||||
|
||||
- 2176 Towns unconditionally flatten all land
|
||||
- 2138 Unexpected cargo appears
|
||||
- 2132 Station vehicle/service window closes even when pinned
|
||||
- 2129 Strings from message boxes could sometimes change (e.g. the screenshot filename)
|
||||
- 2085 Vehicle list of shared vehicles without orders not possible
|
||||
- 2955 With path signals depots are less likely to be visited
|
||||
- 2891 Ignore signal does not keep the train running when in path signalled block till the next signal
|
||||
- 2769 No offer for buying bankrupt AIs
|
||||
- 2737 Self-crossing trains ignore "forbid 90 degree turn" setting
|
||||
- 2616 Cloning creates vehicles with invalid subcargos
|
||||
- 2585 [OSX] OS' mouse pointer showing
|
||||
- 2484 [OSX] Cannot enter CJK characters
|
||||
- 2427 Vehicle owner gets paid for whole cargo feeder share
|
||||
- 1944 Road vehicles not picking empty drivethrough platform
|
||||
- 1923 Unique names not always enforced
|
||||
- 1890 Airplanes copy helipcopters goto heliport order
|
||||
- 1885 Almost all unserved industries die in big maps
|
||||
- 1858 Industry legend in small map overwrites buttons
|
||||
- 1802 Path with space in configure fails
|
||||
- 1793 Inconsistent travel time for fast trains
|
||||
- 1762 Strange Autoreplace behaviour
|
||||
- 1752 User input is not checked
|
||||
- 1693 Removing road does not reset owner
|
||||
- 1473 Train not going to available platform
|
||||
- 1404 Spinner widget interprets one click as many
|
||||
- 1264 Autoreplace for multiple NewGRF DMU sets fails
|
||||
- 1495 Long vehicles might block multistop drivethrough stations
|
||||
- 1473 Lost trains ignore exit signals
|
||||
- 1140 [OSX] Not smooth moving map with touchpad
|
||||
- 1072 Text overflows in several windows
|
||||
- 119 Clipping problems with vehicles on slopes
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 766 B |
@@ -4,9 +4,8 @@
|
||||
Encoding=UTF-8
|
||||
Type=Application
|
||||
Version=1.1
|
||||
Name=OpenTTD
|
||||
GenericName=A clone of Transport Tycoon Deluxe
|
||||
Comment=A business simulation game
|
||||
Name=!!MENU_NAME!!
|
||||
Comment=A clone of Transport Tycoon Deluxe
|
||||
Icon=openttd
|
||||
Exec=!!TTD!!
|
||||
Terminal=false
|
||||
|
||||
Binary file not shown.
+59
-6
@@ -1,14 +1,67 @@
|
||||
openttd (0.7.1) unstable; urgency=low
|
||||
|
||||
* New upstream release.
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Tue, 09 Jun 2008 01:34:56 +0200
|
||||
|
||||
openttd (0.7.1~RC3) unstable; urgency=low
|
||||
|
||||
* New upstream release.
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Wed, 03 Jun 2008 15:34:56 +0200
|
||||
|
||||
openttd (0.7.1~RC2) unstable; urgency=low
|
||||
|
||||
* New upstream release.
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Thu, 21 Mar 2008 14:34:56 +0200
|
||||
|
||||
openttd (0.7.1~RC1) unstable; urgency=low
|
||||
|
||||
* New upstream release.
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Mon, 11 Mar 2008 17:34:56 +0200
|
||||
|
||||
openttd (0.7.0) unstable; urgency=low
|
||||
|
||||
* New upstream release.
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Wed, 01 Apr 2008 13:37:42 +0000
|
||||
|
||||
openttd (0.7.0~RC2) unstable; urgency=low
|
||||
|
||||
* New upstream release.
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Mon, 23 Mar 2008 00:42:00 +0200
|
||||
|
||||
openttd (0.7.0~RC1) unstable; urgency=low
|
||||
|
||||
* New upstream release.
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Mon, 16 Mar 2008 00:07:00 +0200
|
||||
|
||||
openttd (0.7.0~beta2) unstable; urgency=low
|
||||
|
||||
* New upstream release.
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Tue, 10 Mar 2009 00:33:05 +0100
|
||||
|
||||
openttd (0.7.0~beta1) unstable; urgency=low
|
||||
|
||||
* New upstream release.
|
||||
|
||||
-- Matthijs Kooijman <matthijs@stdin.nl> Mon, 16 Feb 2009 23:07:05 +0100
|
||||
|
||||
openttd (0.6.3-1) unstable; urgency=low
|
||||
|
||||
[ Matthijs Kooijman ]
|
||||
* New upstream release.
|
||||
|
||||
-- Remko Bijker <rubidium@openttd.org> Wed, 01 Oct 2008 18:48:05 +0200
|
||||
[ Jordi Mallach ]
|
||||
* Add Spanish Debconf template translation, after fixing its corrupted
|
||||
encoding.
|
||||
|
||||
openttd (0.6.3~rc1-1) unstable; urgency=low
|
||||
|
||||
* New upstream release.
|
||||
|
||||
-- Remko Bijker <rubidium@openttd.org> Mon, 22 Sep 2008 22:17:05 +0200
|
||||
-- Jordi Mallach <jordi@debian.org> Thu, 02 Oct 2008 16:59:03 +0200
|
||||
|
||||
openttd (0.6.2-1) unstable; urgency=low
|
||||
|
||||
|
||||
+1
-1
@@ -36,7 +36,7 @@ clean:
|
||||
# We check for Makefile presence, because clean is called at the
|
||||
# start of the build process (before configure) where we don't
|
||||
# have a Makefile yet.
|
||||
[ ! -f Makefile ] || $(MAKE) distclean
|
||||
[ ! -f Makefile ] || $(MAKE) mrproper
|
||||
|
||||
dh_clean
|
||||
|
||||
|
||||
+339
@@ -0,0 +1,339 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
675 Mass Ave, Cambridge, MA 02139, USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
Appendix: How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) 19yy <name of author>
|
||||
|
||||
This program 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; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) 19yy name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Library General
|
||||
Public License instead of this License.
|
||||
@@ -0,0 +1,48 @@
|
||||
This is the file "copying.dj". It does NOT apply to any sources or
|
||||
binaries copyrighted by UCB Berkeley, the Free Software Foundation, or
|
||||
any other agency besides DJ Delorie and others who have agreed to
|
||||
allow their sources to be distributed under these terms.
|
||||
|
||||
Copyright Information for sources and executables that are marked
|
||||
Copyright (C) DJ Delorie
|
||||
7 Kim Lane
|
||||
Rochester NH 03867-2954
|
||||
|
||||
This document is Copyright (C) DJ Delorie and may be distributed
|
||||
verbatim, but changing it is not allowed.
|
||||
|
||||
Source code copyright DJ Delorie is distributed under the terms of the
|
||||
GNU General Public Licence, with the following exceptions:
|
||||
|
||||
* Sources used to build crt0.o, gcrt0.o, libc.a, libdbg.a, and
|
||||
libemu.a are distributed under the terms of the GNU Library General
|
||||
Public License, rather than the GNU GPL.
|
||||
|
||||
* Any existing copyright or authorship information in any given source
|
||||
file must remain intact. If you modify a source file, a notice to that
|
||||
effect must be added to the authorship information in the source file.
|
||||
|
||||
* Runtime binaries, as provided by DJ in DJGPP, may be distributed
|
||||
without sources ONLY if the recipient is given sufficient information
|
||||
to obtain a copy of djgpp themselves. This primarily applies to
|
||||
go32-v2.exe, emu387.dxe, and stubedit.exe.
|
||||
|
||||
* Runtime objects and libraries, as provided by DJ in DJGPP, when
|
||||
linked into an application, may be distributed without sources ONLY
|
||||
if the recipient is given sufficient information to obtain a copy of
|
||||
djgpp themselves. This primarily applies to crt0.o and libc.a.
|
||||
|
||||
-----
|
||||
|
||||
Changes to source code copyright BSD, FSF, or others, by DJ Delorie
|
||||
fall under the terms of the original copyright. Such files usually
|
||||
have multiple copyright notices in them.
|
||||
|
||||
A copy of the files "COPYING" and "COPYING.LIB" are included with this
|
||||
document. If you did not receive a copy of these files, you may
|
||||
obtain one from whence this document was obtained, or by writing:
|
||||
|
||||
Free Software Foundation
|
||||
59 Temple Place - Suite 330
|
||||
Boston, MA 02111-1307
|
||||
USA
|
||||
@@ -0,0 +1,481 @@
|
||||
GNU LIBRARY GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1991 Free Software Foundation, Inc.
|
||||
675 Mass Ave, Cambridge, MA 02139, USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
[This is the first released version of the library GPL. It is
|
||||
numbered 2 because it goes with version 2 of the ordinary GPL.]
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
Licenses are intended to guarantee your freedom to share and change
|
||||
free software--to make sure the software is free for all its users.
|
||||
|
||||
This license, the Library General Public License, applies to some
|
||||
specially designated Free Software Foundation software, and to any
|
||||
other libraries whose authors decide to use it. You can use it for
|
||||
your libraries, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if
|
||||
you distribute copies of the library, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of the library, whether gratis
|
||||
or for a fee, you must give the recipients all the rights that we gave
|
||||
you. You must make sure that they, too, receive or can get the source
|
||||
code. If you link a program with the library, you must provide
|
||||
complete object files to the recipients so that they can relink them
|
||||
with the library, after making changes to the library and recompiling
|
||||
it. And you must show them these terms so they know their rights.
|
||||
|
||||
Our method of protecting your rights has two steps: (1) copyright
|
||||
the library, and (2) offer you this license which gives you legal
|
||||
permission to copy, distribute and/or modify the library.
|
||||
|
||||
Also, for each distributor's protection, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
library. If the library is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original
|
||||
version, so that any problems introduced by others will not reflect on
|
||||
the original authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that companies distributing free
|
||||
software will individually obtain patent licenses, thus in effect
|
||||
transforming the program into proprietary software. To prevent this,
|
||||
we have made it clear that any patent must be licensed for everyone's
|
||||
free use or not licensed at all.
|
||||
|
||||
Most GNU software, including some libraries, is covered by the ordinary
|
||||
GNU General Public License, which was designed for utility programs. This
|
||||
license, the GNU Library General Public License, applies to certain
|
||||
designated libraries. This license is quite different from the ordinary
|
||||
one; be sure to read it in full, and don't assume that anything in it is
|
||||
the same as in the ordinary license.
|
||||
|
||||
The reason we have a separate public license for some libraries is that
|
||||
they blur the distinction we usually make between modifying or adding to a
|
||||
program and simply using it. Linking a program with a library, without
|
||||
changing the library, is in some sense simply using the library, and is
|
||||
analogous to running a utility program or application program. However, in
|
||||
a textual and legal sense, the linked executable is a combined work, a
|
||||
derivative of the original library, and the ordinary General Public License
|
||||
treats it as such.
|
||||
|
||||
Because of this blurred distinction, using the ordinary General
|
||||
Public License for libraries did not effectively promote software
|
||||
sharing, because most developers did not use the libraries. We
|
||||
concluded that weaker conditions might promote sharing better.
|
||||
|
||||
However, unrestricted linking of non-free programs would deprive the
|
||||
users of those programs of all benefit from the free status of the
|
||||
libraries themselves. This Library General Public License is intended to
|
||||
permit developers of non-free programs to use free libraries, while
|
||||
preserving your freedom as a user of such programs to change the free
|
||||
libraries that are incorporated in them. (We have not seen how to achieve
|
||||
this as regards changes in header files, but we have achieved it as regards
|
||||
changes in the actual functions of the Library.) The hope is that this
|
||||
will lead to faster development of free libraries.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow. Pay close attention to the difference between a
|
||||
"work based on the library" and a "work that uses the library". The
|
||||
former contains code derived from the library, while the latter only
|
||||
works together with the library.
|
||||
|
||||
Note that it is possible for a library to be covered by the ordinary
|
||||
General Public License rather than by this special one.
|
||||
|
||||
GNU LIBRARY GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License Agreement applies to any software library which
|
||||
contains a notice placed by the copyright holder or other authorized
|
||||
party saying it may be distributed under the terms of this Library
|
||||
General Public License (also called "this License"). Each licensee is
|
||||
addressed as "you".
|
||||
|
||||
A "library" means a collection of software functions and/or data
|
||||
prepared so as to be conveniently linked with application programs
|
||||
(which use some of those functions and data) to form executables.
|
||||
|
||||
The "Library", below, refers to any such software library or work
|
||||
which has been distributed under these terms. A "work based on the
|
||||
Library" means either the Library or any derivative work under
|
||||
copyright law: that is to say, a work containing the Library or a
|
||||
portion of it, either verbatim or with modifications and/or translated
|
||||
straightforwardly into another language. (Hereinafter, translation is
|
||||
included without limitation in the term "modification".)
|
||||
|
||||
"Source code" for a work means the preferred form of the work for
|
||||
making modifications to it. For a library, complete source code means
|
||||
all the source code for all modules it contains, plus any associated
|
||||
interface definition files, plus the scripts used to control compilation
|
||||
and installation of the library.
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running a program using the Library is not restricted, and output from
|
||||
such a program is covered only if its contents constitute a work based
|
||||
on the Library (independent of the use of the Library in a tool for
|
||||
writing it). Whether that is true depends on what the Library does
|
||||
and what the program that uses the Library does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Library's
|
||||
complete source code as you receive it, in any medium, provided that
|
||||
you conspicuously and appropriately publish on each copy an
|
||||
appropriate copyright notice and disclaimer of warranty; keep intact
|
||||
all the notices that refer to this License and to the absence of any
|
||||
warranty; and distribute a copy of this License along with the
|
||||
Library.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy,
|
||||
and you may at your option offer warranty protection in exchange for a
|
||||
fee.
|
||||
|
||||
2. You may modify your copy or copies of the Library or any portion
|
||||
of it, thus forming a work based on the Library, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) The modified work must itself be a software library.
|
||||
|
||||
b) You must cause the files modified to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
c) You must cause the whole of the work to be licensed at no
|
||||
charge to all third parties under the terms of this License.
|
||||
|
||||
d) If a facility in the modified Library refers to a function or a
|
||||
table of data to be supplied by an application program that uses
|
||||
the facility, other than as an argument passed when the facility
|
||||
is invoked, then you must make a good faith effort to ensure that,
|
||||
in the event an application does not supply such function or
|
||||
table, the facility still operates, and performs whatever part of
|
||||
its purpose remains meaningful.
|
||||
|
||||
(For example, a function in a library to compute square roots has
|
||||
a purpose that is entirely well-defined independent of the
|
||||
application. Therefore, Subsection 2d requires that any
|
||||
application-supplied function or table used by this function must
|
||||
be optional: if the application does not supply it, the square
|
||||
root function must still compute square roots.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Library,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Library, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote
|
||||
it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Library.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Library
|
||||
with the Library (or with a work based on the Library) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may opt to apply the terms of the ordinary GNU General Public
|
||||
License instead of this License to a given copy of the Library. To do
|
||||
this, you must alter all the notices that refer to this License, so
|
||||
that they refer to the ordinary GNU General Public License, version 2,
|
||||
instead of to this License. (If a newer version than version 2 of the
|
||||
ordinary GNU General Public License has appeared, then you can specify
|
||||
that version instead if you wish.) Do not make any other change in
|
||||
these notices.
|
||||
|
||||
Once this change is made in a given copy, it is irreversible for
|
||||
that copy, so the ordinary GNU General Public License applies to all
|
||||
subsequent copies and derivative works made from that copy.
|
||||
|
||||
This option is useful when you wish to copy part of the code of
|
||||
the Library into a program that is not a library.
|
||||
|
||||
4. You may copy and distribute the Library (or a portion or
|
||||
derivative of it, under Section 2) in object code or executable form
|
||||
under the terms of Sections 1 and 2 above provided that you accompany
|
||||
it with the complete corresponding machine-readable source code, which
|
||||
must be distributed under the terms of Sections 1 and 2 above on a
|
||||
medium customarily used for software interchange.
|
||||
|
||||
If distribution of object code is made by offering access to copy
|
||||
from a designated place, then offering equivalent access to copy the
|
||||
source code from the same place satisfies the requirement to
|
||||
distribute the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
5. A program that contains no derivative of any portion of the
|
||||
Library, but is designed to work with the Library by being compiled or
|
||||
linked with it, is called a "work that uses the Library". Such a
|
||||
work, in isolation, is not a derivative work of the Library, and
|
||||
therefore falls outside the scope of this License.
|
||||
|
||||
However, linking a "work that uses the Library" with the Library
|
||||
creates an executable that is a derivative of the Library (because it
|
||||
contains portions of the Library), rather than a "work that uses the
|
||||
library". The executable is therefore covered by this License.
|
||||
Section 6 states terms for distribution of such executables.
|
||||
|
||||
When a "work that uses the Library" uses material from a header file
|
||||
that is part of the Library, the object code for the work may be a
|
||||
derivative work of the Library even though the source code is not.
|
||||
Whether this is true is especially significant if the work can be
|
||||
linked without the Library, or if the work is itself a library. The
|
||||
threshold for this to be true is not precisely defined by law.
|
||||
|
||||
If such an object file uses only numerical parameters, data
|
||||
structure layouts and accessors, and small macros and small inline
|
||||
functions (ten lines or less in length), then the use of the object
|
||||
file is unrestricted, regardless of whether it is legally a derivative
|
||||
work. (Executables containing this object code plus portions of the
|
||||
Library will still fall under Section 6.)
|
||||
|
||||
Otherwise, if the work is a derivative of the Library, you may
|
||||
distribute the object code for the work under the terms of Section 6.
|
||||
Any executables containing that work also fall under Section 6,
|
||||
whether or not they are linked directly with the Library itself.
|
||||
|
||||
6. As an exception to the Sections above, you may also compile or
|
||||
link a "work that uses the Library" with the Library to produce a
|
||||
work containing portions of the Library, and distribute that work
|
||||
under terms of your choice, provided that the terms permit
|
||||
modification of the work for the customer's own use and reverse
|
||||
engineering for debugging such modifications.
|
||||
|
||||
You must give prominent notice with each copy of the work that the
|
||||
Library is used in it and that the Library and its use are covered by
|
||||
this License. You must supply a copy of this License. If the work
|
||||
during execution displays copyright notices, you must include the
|
||||
copyright notice for the Library among them, as well as a reference
|
||||
directing the user to the copy of this License. Also, you must do one
|
||||
of these things:
|
||||
|
||||
a) Accompany the work with the complete corresponding
|
||||
machine-readable source code for the Library including whatever
|
||||
changes were used in the work (which must be distributed under
|
||||
Sections 1 and 2 above); and, if the work is an executable linked
|
||||
with the Library, with the complete machine-readable "work that
|
||||
uses the Library", as object code and/or source code, so that the
|
||||
user can modify the Library and then relink to produce a modified
|
||||
executable containing the modified Library. (It is understood
|
||||
that the user who changes the contents of definitions files in the
|
||||
Library will not necessarily be able to recompile the application
|
||||
to use the modified definitions.)
|
||||
|
||||
b) Accompany the work with a written offer, valid for at
|
||||
least three years, to give the same user the materials
|
||||
specified in Subsection 6a, above, for a charge no more
|
||||
than the cost of performing this distribution.
|
||||
|
||||
c) If distribution of the work is made by offering access to copy
|
||||
from a designated place, offer equivalent access to copy the above
|
||||
specified materials from the same place.
|
||||
|
||||
d) Verify that the user has already received a copy of these
|
||||
materials or that you have already sent this user a copy.
|
||||
|
||||
For an executable, the required form of the "work that uses the
|
||||
Library" must include any data and utility programs needed for
|
||||
reproducing the executable from it. However, as a special exception,
|
||||
the source code distributed need not include anything that is normally
|
||||
distributed (in either source or binary form) with the major
|
||||
components (compiler, kernel, and so on) of the operating system on
|
||||
which the executable runs, unless that component itself accompanies
|
||||
the executable.
|
||||
|
||||
It may happen that this requirement contradicts the license
|
||||
restrictions of other proprietary libraries that do not normally
|
||||
accompany the operating system. Such a contradiction means you cannot
|
||||
use both them and the Library together in an executable that you
|
||||
distribute.
|
||||
|
||||
7. You may place library facilities that are a work based on the
|
||||
Library side-by-side in a single library together with other library
|
||||
facilities not covered by this License, and distribute such a combined
|
||||
library, provided that the separate distribution of the work based on
|
||||
the Library and of the other library facilities is otherwise
|
||||
permitted, and provided that you do these two things:
|
||||
|
||||
a) Accompany the combined library with a copy of the same work
|
||||
based on the Library, uncombined with any other library
|
||||
facilities. This must be distributed under the terms of the
|
||||
Sections above.
|
||||
|
||||
b) Give prominent notice with the combined library of the fact
|
||||
that part of it is a work based on the Library, and explaining
|
||||
where to find the accompanying uncombined form of the same work.
|
||||
|
||||
8. You may not copy, modify, sublicense, link with, or distribute
|
||||
the Library except as expressly provided under this License. Any
|
||||
attempt otherwise to copy, modify, sublicense, link with, or
|
||||
distribute the Library is void, and will automatically terminate your
|
||||
rights under this License. However, parties who have received copies,
|
||||
or rights, from you under this License will not have their licenses
|
||||
terminated so long as such parties remain in full compliance.
|
||||
|
||||
9. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Library or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Library (or any work based on the
|
||||
Library), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Library or works based on it.
|
||||
|
||||
10. Each time you redistribute the Library (or any work based on the
|
||||
Library), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute, link with or modify the Library
|
||||
subject to these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
11. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Library at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Library by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Library.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under any
|
||||
particular circumstance, the balance of the section is intended to apply,
|
||||
and the section as a whole is intended to apply in other circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
12. If the distribution and/or use of the Library is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Library under this License may add
|
||||
an explicit geographical distribution limitation excluding those countries,
|
||||
so that distribution is permitted only in or among countries not thus
|
||||
excluded. In such case, this License incorporates the limitation as if
|
||||
written in the body of this License.
|
||||
|
||||
13. The Free Software Foundation may publish revised and/or new
|
||||
versions of the Library General Public License from time to time.
|
||||
Such new versions will be similar in spirit to the present version,
|
||||
but may differ in detail to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Library
|
||||
specifies a version number of this License which applies to it and
|
||||
"any later version", you have the option of following the terms and
|
||||
conditions either of that version or of any later version published by
|
||||
the Free Software Foundation. If the Library does not specify a
|
||||
license version number, you may choose any version ever published by
|
||||
the Free Software Foundation.
|
||||
|
||||
14. If you wish to incorporate parts of the Library into other free
|
||||
programs whose distribution conditions are incompatible with these,
|
||||
write to the author to ask for permission. For software which is
|
||||
copyrighted by the Free Software Foundation, write to the Free
|
||||
Software Foundation; we sometimes make exceptions for this. Our
|
||||
decision will be guided by the two goals of preserving the free status
|
||||
of all derivatives of our free software and of promoting the sharing
|
||||
and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
|
||||
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
|
||||
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
|
||||
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
|
||||
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
|
||||
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
|
||||
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
|
||||
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
|
||||
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
|
||||
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
|
||||
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
|
||||
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
|
||||
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
|
||||
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
|
||||
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
||||
DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
Appendix: How to Apply These Terms to Your New Libraries
|
||||
|
||||
If you develop a new library, and you want it to be of the greatest
|
||||
possible use to the public, we recommend making it free software that
|
||||
everyone can redistribute and change. You can do so by permitting
|
||||
redistribution under these terms (or, alternatively, under the terms of the
|
||||
ordinary General Public License).
|
||||
|
||||
To apply these terms, attach the following notices to the library. It is
|
||||
safest to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least the
|
||||
"copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the library's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 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
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with this library; if not, write to the Free
|
||||
Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the library, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the
|
||||
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1990
|
||||
Ty Coon, President of Vice
|
||||
|
||||
That's all there is to it!
|
||||
Binary file not shown.
@@ -0,0 +1,173 @@
|
||||
CWSDPMI is Copyright (C) 1995-2000 Charles W Sandmann (sandmann@clio.rice.edu)
|
||||
1206 Braelinn, Sugar Land, TX 77479
|
||||
|
||||
This is release 5. The files in this binary distribution may be redistributed
|
||||
under the GPL (with source) or without the source code provided:
|
||||
|
||||
* CWSDPMI.EXE or CWSDPR0.EXE are not modified in any way except via CWSPARAM.
|
||||
|
||||
* CWSDSTUB.EXE internal contents are not modified in any way except via
|
||||
CWSPARAM or STUBEDIT. It may have a COFF image plus data appended to it.
|
||||
|
||||
* Notice to users that they have the right to receive the source code and/or
|
||||
binary updates for CWSDPMI. Distributors should indicate a site for the
|
||||
source in their documentation.
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
CWSDPMI was written to provide DPMI services for V2 of DJGPP. It currently
|
||||
does not support 16-bit DPMI applications, or DPMI applications requiring a
|
||||
built in extender. It does support virtual memory and hardware interrupt
|
||||
reflection from real mode to protected mode. DJGPP V1.1x and RSX applications
|
||||
will also run using this server, which can be used to provide enhanced control
|
||||
over hardware interrupts. Some DPMI 1.0 extensions (0x506, 0x507, 0x508) have
|
||||
been implemented.
|
||||
|
||||
CWSDPR0.EXE is an alternate version which runs at ring 0 with virtual memory
|
||||
disabled. It may be used if access to ring-0 features are desired. It
|
||||
currently does not switch stacks on HW interrupts, so some DJGPP features
|
||||
such as SIGINT and SIGFPE are not supported and will generate a double fault
|
||||
or stack fault error (to be fixed someday).
|
||||
|
||||
CWSDSTUB.EXE is a stub loader image for DJGPP which includes CWSDPMI. This
|
||||
allows single executable image distributions. You can use the EXE2COFF
|
||||
program and COPY /B CWSDSTUB.EXE+yourimage yourimage.exe to create a
|
||||
standalone executable image.
|
||||
|
||||
Some of the internal tuning and configuration parameters may be modified
|
||||
in the image using CWSPARAM.EXE (see CWSPARAM.DOC).
|
||||
|
||||
If you want to use CWSDPMI with DJGPP, you expand the distribution into the
|
||||
DJGPP directory tree. CWSDPMI.EXE will be put in the BIN directory with your
|
||||
DJGPP images and it will automatically be loaded when they run.
|
||||
|
||||
Directions for use (server can be used in either of two different ways):
|
||||
|
||||
1) "cwsdpmi" alone with no parameters will terminate and stay resident
|
||||
FOR A SINGLE DPMI PROCESS. This means it unloads itself when your
|
||||
DPMI application exits. This mode is useful in software which needs
|
||||
DPMI services, since CWSDPMI can be exec'ed and then will unload on exit.
|
||||
|
||||
2) "cwsdpmi -p" will terminate and stay resident until you remove it.
|
||||
It can be loaded into UMBs with LH. "cwsdpmi -u" will unload the TSR.
|
||||
|
||||
3) The file used for virtual memory swapping, if desired, is controlled
|
||||
by the "-sc:\cwsdpmi.swp" syntax on the command line. You must specify
|
||||
either a file with full disk/directory syntax, or "-s-" which disables
|
||||
virtual memory.
|
||||
|
||||
4) The default swap file name is c:\cwsdpmi.swp, but this can be changed
|
||||
with the CWSPARAM image, as can some other parameters.
|
||||
|
||||
5) You can disable the DPMI 1.0 extensions by starting the image with the
|
||||
"cwsdpmi -x" syntax. This feature allows you to run programs developed
|
||||
under other DPMI providers which do not behave properly with these
|
||||
extensions enabled (typically use of NULL pointers).
|
||||
|
||||
I would like to give special thanks to DJ Delorie who wrote the original
|
||||
GO32 code on which CWSDPMI is based. Morten Welinder also provided and
|
||||
improved much of the code in this program.
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
This section contains a list of the error messages you might see out of
|
||||
CWSDPMI and some details on what they mean.
|
||||
|
||||
Exceptions are only handled by CWSDPMI if the application does not establish
|
||||
an exception handler, exceptions nest 5 deep, or the error is particularly bad:
|
||||
|
||||
"Page fault" -
|
||||
1) an illegal page fault happens in a RMCB or HW interrupt, (lock all pages!)
|
||||
2) all available pages have been locked,
|
||||
3) the application is using non-committed pages for null pointer protection.
|
||||
"Double Fault" - multiple exceptions occurred
|
||||
"Invalid TSS" - typically due to RMCB or HW interrupt being called after the
|
||||
selectors/memory have been deallocated (remember to reset the mouse)
|
||||
"General Protection Fault" - bad parameter sent to a DPMI call
|
||||
|
||||
"80386 required."
|
||||
|
||||
Since 80286 and lesser processors don't have the hardware necessary to
|
||||
run CWSDPMI. No workaround, upgrade.
|
||||
|
||||
"DOS 3 required."
|
||||
|
||||
A few interrupts are used which need DOS 3.0 or higher. I don't expect to
|
||||
ever see this message, since 80386 machines were introduced after DOS 3.0
|
||||
and that check is made first.
|
||||
|
||||
"CWSDPMI V0.90+ (r5) Copyright (C) 2000 CW Sandmann ABSOLUTELY NO WARRANTY"
|
||||
|
||||
An informational message displayed if the program is not run in one-pass mode.
|
||||
|
||||
"Protected mode not accessible."
|
||||
|
||||
This message should only be displayed if running CWSDPMI in a protected
|
||||
environment with no access to protected mode. In this case, DPMI should
|
||||
already be available and CWSDPMI would not be needed. This might happen if
|
||||
a 16-bit DPMI client is loaded and a DJGPP image attempts to load CWSDPMI
|
||||
to provide 32-bit DPMI services under Windows.
|
||||
|
||||
"Warning: cannot open swap file c:\cwsdpmi.swp"
|
||||
|
||||
Maybe you are out of file handles, or the swap file name is incorrectly
|
||||
specified in the image (change the name with cwsparam).
|
||||
|
||||
"No swap space!"
|
||||
|
||||
This message means you tried to use more paging file than CWSDPMI was
|
||||
configured to handle. Since this is protected against in the memory
|
||||
allocation code, you should never see this message.
|
||||
|
||||
"Swap disk full!"
|
||||
|
||||
This means the paging file could not be expanded when trying to page
|
||||
memory out to disk. This would normally not be seen, unless you are
|
||||
writing output to the same disk which holds the paging file. Decrease
|
||||
the amount of memory your DPMI application is using or free up disk space.
|
||||
|
||||
"Interrupt 0x??"
|
||||
|
||||
Your application tried to call an interrupt from protected mode which
|
||||
normally shouldn't be called (something like a data pointer). If the
|
||||
request was allowed to continue it would likely hang your machine. If you
|
||||
see this message and think the interrupt should be allowed to continue, let
|
||||
me know.
|
||||
|
||||
"Error: Using XMS switched CPU into V86 mode."
|
||||
|
||||
This message might be seen if you have your memory manager in AUTO mode. The
|
||||
only workaround in this case is to stop using AUTO mode.
|
||||
|
||||
"Error: could not allocate page table memory"
|
||||
|
||||
The page table memory (a minimum of 16Kb) is allocated from conventional
|
||||
memory (either in the 640Kb region or UMBs). If CWSDPMI cannot allocate the
|
||||
minimum necessary memory, you would see this message. Free up some
|
||||
conventional memory. You may also see this message if a page directory needs
|
||||
to be faulted in, and there are no available pages. This means too many pages
|
||||
have been locked for the allocated page tables available. While CWSDPMI
|
||||
tries to dynamically allocate these if needed, this effort failed. You need
|
||||
to increase the number of page tables with CWSPARAM, or increase the amount
|
||||
of free conventional memory if it is low. If the application which calls
|
||||
CWSDPMI internally manages all the DOS memory, the page tables may need to
|
||||
be pre-allocated at DPMI startup time (if this is needed, try using the
|
||||
run option flag 2 in cwsparam).
|
||||
|
||||
"16-bit DPMI unsupported."
|
||||
|
||||
CWSDPMI is a 32-bit only DPMI server. Ideally, on the request to enter DPMI's
|
||||
PM with a 16-bit request, we would just fail the call setting the carry bit
|
||||
like the DPMI specification describes. Some buggy 16-bit compiler tools don't
|
||||
check the return status and will hang the machine in this case. So, I issue
|
||||
an error message and exit the image instead.
|
||||
|
||||
"Descriptors exhausted."
|
||||
|
||||
An attempt to nest a DPMI client failed in the setup phase due to insufficient
|
||||
free selectors in the LDT.
|
||||
|
||||
"CWSDPMI not removed"
|
||||
|
||||
When the -u parameter is specified, if DPMI is not detected this message is
|
||||
printed. Informational.
|
||||
Binary file not shown.
@@ -0,0 +1,94 @@
|
||||
/* Copyright (C) 1998 DJ Delorie, see COPYING.DJ for details */
|
||||
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */
|
||||
/* Updated 2008 to use fread/fopen and friends instead of read/open so it compiles with GCC on Unix (Rubidium) */
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <fcntl.h>
|
||||
#include <sys/stat.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
#include <ctype.h>
|
||||
|
||||
|
||||
static void
|
||||
exe2aout(char *fname)
|
||||
{
|
||||
unsigned short header[3];
|
||||
FILE *ifile;
|
||||
FILE *ofile;
|
||||
char buf[4096];
|
||||
int rbytes;
|
||||
char *dot = strrchr(fname, '.');
|
||||
if (!dot || strlen(dot) != 4
|
||||
|| tolower(dot[1]) != 'e'
|
||||
|| tolower(dot[2]) != 'x'
|
||||
|| tolower(dot[3]) != 'e')
|
||||
{
|
||||
fprintf(stderr, "%s: Arguments MUST end with a .exe extension\n", fname);
|
||||
return;
|
||||
}
|
||||
|
||||
ifile = fopen(fname, "rb");
|
||||
if (!ifile)
|
||||
{
|
||||
perror(fname);
|
||||
return;
|
||||
}
|
||||
fread(header, sizeof(header), 1, ifile);
|
||||
if (header[0] == 0x5a4d)
|
||||
{
|
||||
long header_offset = (long)header[2]*512L;
|
||||
if (header[1])
|
||||
header_offset += (long)header[1] - 512L;
|
||||
fseek(ifile, header_offset, SEEK_SET);
|
||||
header[0] = 0;
|
||||
fread(header, sizeof(header), 1, ifile);
|
||||
if ((header[0] != 0x010b) && (header[0] != 0x014c))
|
||||
{
|
||||
fprintf(stderr, "`%s' does not have a COFF/AOUT program appended to it\n", fname);
|
||||
return;
|
||||
}
|
||||
fseek(ifile, header_offset, SEEK_SET);
|
||||
}
|
||||
else
|
||||
{
|
||||
fprintf(stderr, "`%s' is not an .EXE file\n", fname);
|
||||
return;
|
||||
}
|
||||
|
||||
*dot = 0;
|
||||
ofile = fopen(fname, "w+b");
|
||||
if (!ofile)
|
||||
{
|
||||
perror(fname);
|
||||
return;
|
||||
}
|
||||
|
||||
while ((rbytes=fread(buf, 1, 4096, ifile)) > 0)
|
||||
{
|
||||
int wb = fwrite(buf, 1, rbytes, ofile);
|
||||
if (wb < 0)
|
||||
{
|
||||
perror(fname);
|
||||
break;
|
||||
}
|
||||
if (wb < rbytes)
|
||||
{
|
||||
fprintf(stderr, "`%s': disk full\n", fname);
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
fclose(ifile);
|
||||
fclose(ofile);
|
||||
}
|
||||
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
int i;
|
||||
if (argc == 1) printf("Usage: %s <exename>", argv[0]);
|
||||
for (i=1; i<argc; i++)
|
||||
exe2aout(argv[i]);
|
||||
return 0;
|
||||
}
|
||||
|
||||
Executable
+11
@@ -0,0 +1,11 @@
|
||||
#!/bin/sh
|
||||
|
||||
# $Id$
|
||||
|
||||
cd `dirname $0`
|
||||
cc -o exe2coff exe2coff.c || exit
|
||||
cp $1 binary.exe || exit
|
||||
./exe2coff binary.exe || exit
|
||||
cat cwsdstub.exe binary > binary.exe || exit
|
||||
mv binary.exe $1
|
||||
rm binary exe2coff
|
||||
@@ -1,5 +1,7 @@
|
||||
#!/bin/sh
|
||||
|
||||
# $Id$
|
||||
|
||||
# sets VERSION to the value if RELEASE if there are any,
|
||||
# otherwise it sets VERSION to revision number
|
||||
if [ "$3" ]; then
|
||||
|
||||
+140
-39
@@ -1,75 +1,176 @@
|
||||
# $Id$
|
||||
#-------------------------------------------------------------------------------
|
||||
# spec file for the openttd rpm package
|
||||
#
|
||||
# spec file for package openttd (trunk)
|
||||
# Copyright (c) 2007-2009 The OpenTTD developers
|
||||
#
|
||||
# Copyright (c) 2007 The OpenTTD team.
|
||||
# This file and all modifications and additions to the pristine
|
||||
# package are under the same license as the package itself
|
||||
#
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
Name: openttd
|
||||
Version: svn
|
||||
Release: head
|
||||
Group: Applications/Games
|
||||
Source: %{name}-%{version}-%{release}.tar.gz
|
||||
License: GPL
|
||||
Version: 0.7.0
|
||||
Release: 1%{?dist}
|
||||
|
||||
Group: Amusements/Games
|
||||
License: GPLv2
|
||||
URL: http://www.openttd.org
|
||||
Packager: Denis Burlaka <burlaka@yandex.ru>
|
||||
Summary: OpenTTD is an Open Source clone of Chris Sawyer's Transport Tycoon Deluxe
|
||||
Requires: SDL zlib libpng freetype2 fontconfig
|
||||
BuildRequires: gcc SDL-devel zlib-devel libpng-devel fontconfig-devel
|
||||
%if %{_vendor}=="suse"
|
||||
BuildRequires: freetype2-devel
|
||||
%endif
|
||||
%if %{_vendor}=="fedora"
|
||||
|
||||
Source: %{name}-%{version}.tar.bz2
|
||||
|
||||
Requires: fontconfig
|
||||
Requires: libicu
|
||||
Requires: libpng
|
||||
Requires: SDL
|
||||
Requires: zlib
|
||||
BuildRequires: fontconfig-devel
|
||||
BuildRequires: libpng-devel
|
||||
BuildRequires: libicu-devel
|
||||
BuildRequires: SDL-devel
|
||||
BuildRequires: zlib-devel
|
||||
# vendor specific dependencies
|
||||
%if %{_vendor}=="alt"
|
||||
Requires: freetype
|
||||
BuildRequires: freetype-devel
|
||||
%endif
|
||||
%if %{_vendor}=="mandriva"
|
||||
%if %{_vendor}=="MandrakeSoft" || %{_vendor}=="mandriva"
|
||||
Requires: freetype2
|
||||
BuildRequires: libfreetype6-devel
|
||||
%endif
|
||||
%if %{_vendor}=="redhat" || %{_vendor}=="fedora"
|
||||
Requires: freetype
|
||||
BuildRequires: freetype-devel
|
||||
BuildRequires: desktop-file-utils
|
||||
%endif
|
||||
%if %{_vendor}=="suse"
|
||||
Requires: freetype2
|
||||
BuildRequires: freetype2-devel
|
||||
%endif
|
||||
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
|
||||
Prefix: /usr
|
||||
|
||||
%description
|
||||
OpenTTD is a clone of the Microprose game "Transport Tycoon Deluxe", a popular game originally written by Chris Sawyer. It attempts to mimic the original game as closely as possible while extending it with new features.
|
||||
OpenTTD is a reimplementation of the Microprose game "Transport Tycoon Deluxe"
|
||||
with lots of new features and enhancements. To play the game you need to copy
|
||||
the following 6 data files from your Transport Tycoon Deluxe CD to the game
|
||||
data directory in %{_datadir}/games/%{name}/data:
|
||||
|
||||
OpenTTD is licensed under the GNU General Public License version 2.0. For more information, see the file 'COPYING' included with every release and source download of the game.
|
||||
From the Windows version of TTD you need:
|
||||
sample.cat trg1r.grf trgcr.grf trghr.grf trgir.grf trgtr.grf
|
||||
|
||||
Or if you have the DOS version you need:
|
||||
sample.cat TRG1.GRF TRGC.GRF TRGH.GRF TRGI.GRF TRGT.GRF
|
||||
|
||||
OpenTTD is licensed under the GNU General Public License version 2.0. For more
|
||||
information, see the file 'COPYING' included with every release and source
|
||||
download of the game.
|
||||
|
||||
%prep
|
||||
%setup
|
||||
%setup -q
|
||||
|
||||
%build
|
||||
./configure --prefix-dir=%{prefix} --binary-dir=bin --install-dir="$RPM_BUILD_ROOT"
|
||||
make
|
||||
./configure \
|
||||
--revision=%{version} \
|
||||
--prefix-dir="%{_prefix}" \
|
||||
--binary-dir="bin" \
|
||||
--binary-name="%{name}" \
|
||||
# --menu-name="OpenTTD" \
|
||||
# --data-dir="share\games\%{name}" \
|
||||
# --doc-dir="share\doc\%{name}" \
|
||||
# --icon-dir="share/pixmaps" \
|
||||
# --icon-theme-dir="share/icons/hicolor" \
|
||||
# --man-dir="share/man/man6" \
|
||||
# --menu-dir="share/applications" \
|
||||
--enable-debug=0 \
|
||||
# --menu_group="Game;" \
|
||||
--with-sdl \
|
||||
--with-zlib \
|
||||
--with-png \
|
||||
--with-freetype \
|
||||
--with-fontconfig \
|
||||
--with-icu \
|
||||
--enable-strip
|
||||
make %{?_smp_mflags}
|
||||
|
||||
%install
|
||||
make ROOT="$RPM_BUILD_ROOT" install
|
||||
rm -rf "%{buildroot}"
|
||||
make install INSTALL_DIR="%{buildroot}"
|
||||
|
||||
mkdir -p $RPM_BUILD_ROOT/%{_datadir}/applications
|
||||
cat << EOF > $RPM_BUILD_ROOT/%{_datadir}/applications/%{name}.desktop
|
||||
[Desktop Entry]
|
||||
Categories=Games;
|
||||
Encoding=UTF-8
|
||||
Exec=/usr/bin/openttd
|
||||
Name=OpenTTD
|
||||
Icon=openttd.32
|
||||
Terminal=false
|
||||
Type=Application
|
||||
EOF
|
||||
# Validate menu entrys (vendor specific)
|
||||
%if %{_vendor} == "redhat" || %{_vendor}=="fedora"
|
||||
desktop-file-install \
|
||||
# --delete-original \
|
||||
--vendor="%{_vendor}" \
|
||||
--remove-key Version \
|
||||
--dir="%{buildroot}/%{_datadir}/applications/" \
|
||||
"%{buildroot}/%{_datadir}/applications/%{name}.desktop"
|
||||
%endif
|
||||
|
||||
%clean
|
||||
rm -Rf "$RPM_BUILD_ROOT"
|
||||
rm -rf "%{buildroot}"
|
||||
|
||||
%post
|
||||
# Update the icon cache (vendor specific)
|
||||
%if %{_vendor}=="MandrakeSoft" || %{_vendor}=="mandriva"
|
||||
%update_icon_cache hicolor
|
||||
%endif
|
||||
|
||||
%if %{_vendor} == "redhat" || %{_vendor}=="fedora"
|
||||
touch --no-create %{_datadir}/icons/hicolor
|
||||
if [ -x %{_bindir}/gtk-update-icon-cache ]; then
|
||||
%{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || :
|
||||
fi
|
||||
%endif
|
||||
|
||||
%postun
|
||||
# Update the icon cache (vendor specific)
|
||||
%if %{_vendor}=="MandrakeSoft" || %{_vendor}=="mandriva"
|
||||
%update_icon_cache hicolor
|
||||
%endif
|
||||
|
||||
%if %{_vendor} == "redhat" || %{_vendor}=="fedora"
|
||||
touch --no-create %{_datadir}/icons/hicolor
|
||||
if [ -x %{_bindir}/gtk-update-icon-cache ]; then
|
||||
%{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || :
|
||||
fi
|
||||
%endif
|
||||
|
||||
%files
|
||||
%defattr(-, root, games, -)
|
||||
%dir %{_datadir}/doc/%{name}
|
||||
%dir %{_datadir}/games/%{name}
|
||||
%dir %{_datadir}/games/%{name}/lang
|
||||
%dir %{_datadir}/games/%{name}/data
|
||||
%dir %{_datadir}/games/%{name}/gm
|
||||
%dir %{_datadir}/games/%{name}/docs
|
||||
%dir %{_datadir}/pixmaps
|
||||
%defattr(644, root, games, 755)
|
||||
%attr(755, root, games) %{_bindir}/%{name}
|
||||
%{_datadir}/doc/%{name}/*
|
||||
%{_datadir}/games/%{name}/lang/*
|
||||
%{_datadir}/games/%{name}/data/*
|
||||
%{_datadir}/games/%{name}/docs/*
|
||||
%{_datadir}/pixmaps/*
|
||||
%{_datadir}/applications/%{name}.desktop
|
||||
%{_datadir}/pixmaps/*
|
||||
%{_datadir}/icons/hicolor/*/apps/%{name}.png
|
||||
%doc %{_mandir}/man6/%{name}.6.gz
|
||||
|
||||
%changelog
|
||||
* Mon Oct 20 2008 Benedikt Brüggemeier <skidd13@openttd.org>
|
||||
|
||||
- Added libicu dependency
|
||||
|
||||
* Thu Sep 23 2008 Benedikt Brüggemeier <skidd13@openttd.org>
|
||||
|
||||
- Merged both versions of the spec file
|
||||
|
||||
* Fri Aug 29 2008 Jonathan Coome <maedhros@openttd.org>
|
||||
|
||||
- Rewrite spec file from scratch.
|
||||
|
||||
* Sat Aug 02 2008 Benedikt Brüggemeier <skidd13@openttd.org>
|
||||
|
||||
- Updated spec file
|
||||
|
||||
* Thu Mar 27 2008 Denis Burlaka <burlaka@yandex.ru>
|
||||
|
||||
- Universal spec file
|
||||
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
@echo off
|
||||
"c:\Program Files\NSIS\makensis.exe" /DVERSION_INCLUDE=version_win9x.txt install.nsi > win9x.log
|
||||
"c:\Program Files\NSIS\makensis.exe" /DVERSION_INCLUDE=version_win32.txt install.nsi > win32.log
|
||||
"c:\Program Files\NSIS\makensis.exe" /DVERSION_INCLUDE=version_win64.txt install.nsi > win64.log
|
||||
@@ -1,11 +1,11 @@
|
||||
!define APPNAME "OpenTTD" ; Define application name
|
||||
!define APPVERSION "0.6.3" ; Define application version
|
||||
!define INSTALLERVERSION 53 ; NEED TO UPDATE THIS FOR EVERY RELEASE!!!
|
||||
!define APPVERSION "0.7.1" ; Define application version
|
||||
!define APPVERSIONINTERNAL "0.7.1.0" ; Define application version in X.X.X.X
|
||||
!define INSTALLERVERSION 62 ; NEED TO UPDATE THIS FOR EVERY RELEASE!!!
|
||||
!include ${VERSION_INCLUDE}
|
||||
|
||||
!define APPURLLINK "http://www.openttd.org"
|
||||
!define APPNAMEANDVERSION "${APPNAME} ${APPVERSION}"
|
||||
!define APPVERSIONINTERNAL "${APPVERSION}.0" ; Needs to be of the format X.X.X.X
|
||||
|
||||
!define MUI_ICON "..\..\..\media\openttd.ico"
|
||||
!define MUI_UNICON "..\..\..\media\openttd.ico"
|
||||
@@ -110,14 +110,12 @@ Section "!OpenTTD" Section1
|
||||
; Copy data files
|
||||
SetOutPath "$INSTDIR\data\"
|
||||
File ${PATH_ROOT}bin\data\*.grf
|
||||
File ${PATH_ROOT}bin\data\*.obg
|
||||
File ${PATH_ROOT}bin\data\opntitle.dat
|
||||
; Copy scenario files (don't choke if they don't exist)
|
||||
SetOutPath "$INSTDIR\scenario\"
|
||||
File /nonfatal ${PATH_ROOT}bin\scenario\*.scn
|
||||
|
||||
; Copy heightmap files (don't choke if they don't exist)
|
||||
SetOutPath "$INSTDIR\scenario\heightmap\"
|
||||
File /nonfatal ${PATH_ROOT}bin\scenario\heightmap\*.*
|
||||
; Copy the scripts
|
||||
SetOutPath "$INSTDIR\scripts\"
|
||||
File ${PATH_ROOT}bin\scripts\*.*
|
||||
|
||||
; Copy the rest of the stuff
|
||||
SetOutPath "$INSTDIR\"
|
||||
@@ -135,6 +133,7 @@ Section "!OpenTTD" Section1
|
||||
; Delete old files from the main dir. they are now placed in data/ and lang/
|
||||
Delete "$INSTDIR\*.lng"
|
||||
Delete "$INSTDIR\*.grf"
|
||||
Delete "$INSTDIR\*.obg"
|
||||
Delete "$INSTDIR\sample.cat"
|
||||
Delete "$INSTDIR\ttd.exe"
|
||||
|
||||
@@ -270,6 +269,9 @@ Section "Uninstall"
|
||||
Delete "$INSTDIR\data\trkfoundw.grf"
|
||||
Delete "$INSTDIR\data\openttdd.grf"
|
||||
Delete "$INSTDIR\data\openttdw.grf"
|
||||
Delete "$INSTDIR\data\orig_win.obg"
|
||||
Delete "$INSTDIR\data\orig_dos.obg"
|
||||
Delete "$INSTDIR\data\orig_dos_de.obg"
|
||||
|
||||
Delete "$INSTDIR\data\sample.cat"
|
||||
; Windows Data files
|
||||
@@ -291,6 +293,9 @@ Section "Uninstall"
|
||||
; Language files
|
||||
Delete "$INSTDIR\lang\*.lng"
|
||||
|
||||
; Scripts
|
||||
Delete "$INSTDIR\scripts\*.*"
|
||||
|
||||
; Remove remaining directories
|
||||
RMDir "$SMPROGRAMS\$SHORTCUTS\Extras\"
|
||||
RMDir "$SMPROGRAMS\$SHORTCUTS"
|
||||
|
||||
+150
-131
@@ -16,43 +16,26 @@ End Sub
|
||||
|
||||
Sub UpdateFile(modified, revision, version, cur_date, filename)
|
||||
FSO.CopyFile filename & ".in", filename
|
||||
FindReplaceInFile filename, "@@MODIFIED@@", modified
|
||||
FindReplaceInFile filename, "@@REVISION@@", revision
|
||||
FindReplaceInFile filename, "@@VERSION@@", version
|
||||
FindReplaceInFile filename, "@@DATE@@", cur_date
|
||||
FindReplaceInFile filename, "!!MODIFIED!!", modified
|
||||
FindReplaceInFile filename, "!!REVISION!!", revision
|
||||
FindReplaceInFile filename, "!!VERSION!!", version
|
||||
FindReplaceInFile filename, "!!DATE!!", cur_date
|
||||
End Sub
|
||||
|
||||
Sub UpdateFiles(version)
|
||||
Dim WshShell, cur_date, modified, revision, oExec
|
||||
Set WshShell = CreateObject("WScript.Shell")
|
||||
Dim modified, revision, cur_date
|
||||
cur_date = DatePart("D", Date) & "." & DatePart("M", Date) & "." & DatePart("YYYY", Date)
|
||||
revision = 0
|
||||
modified = 1
|
||||
Select Case Mid(version, 1, 1)
|
||||
Case "r" ' svn
|
||||
revision = Mid(version, 2)
|
||||
If InStr(revision, "M") Then
|
||||
revision = Mid(revision, 1, InStr(revision, "M") - 1)
|
||||
modified = 2
|
||||
Else
|
||||
modified = 0
|
||||
End If
|
||||
If InStr(revision, "-") Then
|
||||
revision = Mid(revision, 1, InStr(revision, "-") - 1)
|
||||
End If
|
||||
Case "h" ' mercurial (hg)
|
||||
Set oExec = WshShell.Exec("hg log -r " & Mid(version, 2, 8) & ":0 -k " & Chr(34) & "svn" & Chr(34) & " -l 1 --template " & Chr(34) & "{desc}\n" & Chr(34) & " ../src")
|
||||
If Err.Number = 0 Then
|
||||
revision = Mid(OExec.StdOut.ReadLine(), 7)
|
||||
revision = Mid(revision, 1, InStr(revision, ")") - 1)
|
||||
End If
|
||||
Case "g" ' git
|
||||
Set oExec = WshShell.Exec("git log --pretty=format:%s --grep=" & Chr(34) & "^(svn r[0-9]*)" & Chr(34) & " -1 ../src")
|
||||
if Err.Number = 0 Then
|
||||
revision = Mid(oExec.StdOut.ReadLine(), 7)
|
||||
revision = Mid(revision, 1, InStr(revision, ")") - 1)
|
||||
End If
|
||||
End Select
|
||||
|
||||
If InStr(version, Chr(9)) Then
|
||||
revision = Mid(version, InStr(version, Chr(9)) + 1)
|
||||
revision = Mid(revision, 1, InStr(revision, Chr(9)) - 1)
|
||||
modified = Mid(version, InStrRev(version, Chr(9)) + 1)
|
||||
version = Mid(version, 1, InStr(version, Chr(9)) - 1)
|
||||
Else
|
||||
version = "0.7.1"
|
||||
revision = 0
|
||||
modified = 1
|
||||
End If
|
||||
|
||||
UpdateFile modified, revision, version, cur_date, "../src/rev.cpp"
|
||||
UpdateFile modified, revision, version, cur_date, "../src/ottdres.rc"
|
||||
@@ -96,151 +79,178 @@ Function ReadRegistryKey(shive, subkey, valuename, architecture)
|
||||
End Function
|
||||
|
||||
Function DetermineSVNVersion()
|
||||
Dim WshShell, version, url, oExec, line
|
||||
Dim WshShell, version, branch, modified, revision, url, oExec, line, hash
|
||||
Set WshShell = CreateObject("WScript.Shell")
|
||||
On Error Resume Next
|
||||
|
||||
revision = 0
|
||||
|
||||
' Try TortoiseSVN
|
||||
' Get the directory where TortoiseSVN (should) reside(s)
|
||||
Dim sTortoise
|
||||
' First, try with 32-bit architecture
|
||||
sTortoise = ReadRegistryKey("HKLM", "SOFTWARE\TortoiseSVN", "Directory", 32)
|
||||
If sTortoise = Nothing Then
|
||||
If sTortoise = "" Then
|
||||
' No 32-bit version of TortoiseSVN installed, try 64-bit version (doesn't hurt on 32-bit machines, it returns nothing or is ignored)
|
||||
sTortoise = ReadRegistryKey("HKLM", "SOFTWARE\TortoiseSVN", "Directory", 64)
|
||||
End If
|
||||
|
||||
' If TortoiseSVN is installed, try to get the revision number
|
||||
If sTortoise <> Nothing Then
|
||||
Dim file
|
||||
' Write some "magic" to a temporary file so we can acquire the svn revision/state
|
||||
Set file = FSO.CreateTextFile("tsvn_tmp", -1, 0)
|
||||
file.WriteLine "r$WCREV$$WCMODS?M:$"
|
||||
file.WriteLine "$WCURL$"
|
||||
file.Close
|
||||
Set oExec = WshShell.Exec(sTortoise & "\bin\SubWCRev.exe ../src tsvn_tmp tsvn_tmp")
|
||||
' Wait till the application is finished ...
|
||||
Do
|
||||
OExec.StdOut.ReadLine()
|
||||
Loop While Not OExec.StdOut.atEndOfStream
|
||||
|
||||
Set file = FSO.OpenTextFile("tsvn_tmp", 1, 0, 0)
|
||||
version = file.ReadLine
|
||||
url = file.ReadLine
|
||||
file.Close
|
||||
|
||||
Set file = FSO.GetFile("tsvn_tmp")
|
||||
file.Delete
|
||||
If sTortoise <> "" Then
|
||||
Dim SubWCRev
|
||||
Set SubWCRev = WScript.CreateObject("SubWCRev.object")
|
||||
SubWCRev.GetWCInfo FSO.GetAbsolutePathName("../src"), 0, 0
|
||||
revision = SubWCRev.Revision
|
||||
version = "r" & revision
|
||||
modified = 0
|
||||
if SubWCRev.HasModifications then modified = 2
|
||||
url = SubWCRev.Url
|
||||
End If
|
||||
|
||||
' Looks like there is no TortoiseSVN installed either. Then we don't know it.
|
||||
If InStr(version, "$") Then
|
||||
If revision = 0 Then
|
||||
' Reset error and version
|
||||
Err.Clear
|
||||
version = "norev000"
|
||||
modified = 0
|
||||
|
||||
' Set the environment to english
|
||||
WshShell.Environment("PROCESS")("LANG") = "en"
|
||||
|
||||
' Do we have subversion installed? Check immediatelly whether we've got a modified WC.
|
||||
Set oExec = WshShell.Exec("svnversion ../src")
|
||||
If Err.Number = 0 Then
|
||||
' Wait till the application is finished ...
|
||||
Do While oExec.Status = 0
|
||||
Loop
|
||||
End If
|
||||
If Err.Number = 0 And oExec.ExitCode = 0 Then
|
||||
Dim modified
|
||||
If InStr(OExec.StdOut.ReadLine(), "M") Then
|
||||
modified = "M"
|
||||
Else
|
||||
modified = ""
|
||||
End If
|
||||
|
||||
' Set the environment to english
|
||||
WshShell.Environment("PROCESS")("LANG") = "en"
|
||||
line = OExec.StdOut.ReadLine()
|
||||
If line <> "exported" Then
|
||||
If InStr(line, "M") Then
|
||||
modified = 2
|
||||
End If
|
||||
|
||||
' And use svn info to get the correct revision and branch information.
|
||||
Set oExec = WshShell.Exec("svn info ../src")
|
||||
If Err.Number = 0 Then
|
||||
Do
|
||||
line = OExec.StdOut.ReadLine()
|
||||
If InStr(line, "URL") Then
|
||||
url = line
|
||||
End If
|
||||
If InStr(line, "Last Changed Rev") Then
|
||||
version = "r" & Mid(line, 19) & modified
|
||||
End If
|
||||
Loop While Not OExec.StdOut.atEndOfStream
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
' And use svn info to get the correct revision and branch information.
|
||||
Set oExec = WshShell.Exec("svn info ../src")
|
||||
If Err.Number = 0 Then
|
||||
Do
|
||||
line = OExec.StdOut.ReadLine()
|
||||
If InStr(line, "URL") Then
|
||||
url = line
|
||||
End If
|
||||
If InStr(line, "Last Changed Rev") Then
|
||||
revision = Mid(line, 19)
|
||||
version = "r" & revision
|
||||
End If
|
||||
Loop While Not OExec.StdOut.atEndOfStream
|
||||
End If ' Err.Number = 0
|
||||
End If ' line <> "exported"
|
||||
End If ' Err.Number = 0
|
||||
End If ' InStr(version, "$")
|
||||
|
||||
If version <> "norev000" Then
|
||||
If InStr(url, "branches") Then
|
||||
url = Mid(url, InStr(url, "branches") + 8)
|
||||
url = Mid(url, 1, InStr(2, url, "/") - 1)
|
||||
version = version & Replace(url, "/", "-")
|
||||
url = Mid(url, InStr(url, "branches/") + 9)
|
||||
branch = Mid(url, 1, InStr(2, url, "/") - 1)
|
||||
End If
|
||||
Else
|
||||
Else ' version <> "norev000"
|
||||
' svn detection failed, reset error and try git
|
||||
Err.Clear
|
||||
Set oExec = WshShell.Exec("git rev-parse --verify --short=8 HEAD")
|
||||
Set oExec = WshShell.Exec("git rev-parse --verify HEAD")
|
||||
If Err.Number = 0 Then
|
||||
' Wait till the application is finished ...
|
||||
Do While oExec.Status = 0
|
||||
Loop
|
||||
End If
|
||||
If Err.Number = 0 And oExec.ExitCode = 0 Then
|
||||
version = "g" & oExec.StdOut.ReadLine()
|
||||
Set oExec = WshShell.Exec("git diff-index --exit-code --quiet HEAD ../src")
|
||||
Do While oExec.Status = 0 And Err.Number = 0
|
||||
Loop
|
||||
If Err.Number = 0 And oExec.ExitCode = 1 Then
|
||||
version = version & "M"
|
||||
End If
|
||||
|
||||
Set oExec = WshShell.Exec("git symbolic-ref HEAD")
|
||||
If Err.Number = 0 Then
|
||||
line = oExec.StdOut.ReadLine()
|
||||
line = Mid(line, InStrRev(line, "/") + 1)
|
||||
If line <> "master" Then
|
||||
version = version & "-" & line
|
||||
End If
|
||||
End If
|
||||
Else
|
||||
' try mercurial (hg)
|
||||
If oExec.ExitCode = 0 Then
|
||||
hash = oExec.StdOut.ReadLine()
|
||||
version = "g" & Mid(hash, 1, 8)
|
||||
Set oExec = WshShell.Exec("git diff-index --exit-code --quiet HEAD ../src")
|
||||
If Err.Number = 0 Then
|
||||
' Wait till the application is finished ...
|
||||
Do While oExec.Status = 0
|
||||
Loop
|
||||
|
||||
If oExec.ExitCode = 1 Then
|
||||
modified = 2
|
||||
End If ' oExec.ExitCode = 1
|
||||
|
||||
Set oExec = WshShell.Exec("git symbolic-ref HEAD")
|
||||
If Err.Number = 0 Then
|
||||
line = oExec.StdOut.ReadLine()
|
||||
line = Mid(line, InStrRev(line, "/") + 1)
|
||||
If line <> "master" Then
|
||||
branch = line
|
||||
End If ' line <> "master"
|
||||
End If ' Err.Number = 0
|
||||
|
||||
Set oExec = WshShell.Exec("git log --pretty=format:%s --grep=" & Chr(34) & "^(svn r[0-9]*)" & Chr(34) & " -1 ../src")
|
||||
if Err.Number = 0 Then
|
||||
revision = Mid(oExec.StdOut.ReadLine(), 7)
|
||||
revision = Mid(revision, 1, InStr(revision, ")") - 1)
|
||||
End If ' Err.Number = 0
|
||||
End If ' Err.Number = 0
|
||||
End If ' oExec.ExitCode = 0
|
||||
End If ' Err.Number = 0
|
||||
|
||||
If version = "norev000" Then
|
||||
' git detection failed, reset error and try mercurial (hg)
|
||||
Err.Clear
|
||||
Set oExec = WshShell.Exec("hg parents")
|
||||
If Err.Number = 0 Then
|
||||
' Wait till the application is finished ...
|
||||
Do While oExec.Status = 0
|
||||
Loop
|
||||
End If
|
||||
If Err.Number = 0 And oExec.ExitCode = 0 Then
|
||||
line = OExec.StdOut.ReadLine()
|
||||
version = "h" & Mid(line, InStrRev(line, ":") + 1, 8)
|
||||
Set oExec = WshShell.Exec("hg status ../src")
|
||||
If Err.Number = 0 Then
|
||||
Do
|
||||
line = OExec.StdOut.ReadLine()
|
||||
If Len(line) > 0 And Mid(line, 1, 1) <> "?" Then
|
||||
version = version & "M"
|
||||
Exit Do
|
||||
End If
|
||||
Loop While Not OExec.StdOut.atEndOfStream
|
||||
End If
|
||||
Set oExec = WshShell.Exec("hg branch")
|
||||
If Err.Number = 0 Then
|
||||
line = OExec.StdOut.ReadLine()
|
||||
If line <> "default" Then
|
||||
version = version & "-" & line
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
|
||||
If oExec.ExitCode = 0 Then
|
||||
line = OExec.StdOut.ReadLine()
|
||||
hash = Mid(line, InStrRev(line, ":") + 1)
|
||||
version = "h" & Mid(hash, 1, 8)
|
||||
Set oExec = WshShell.Exec("hg status ../src")
|
||||
If Err.Number = 0 Then
|
||||
Do
|
||||
line = OExec.StdOut.ReadLine()
|
||||
If Len(line) > 0 And Mid(line, 1, 1) <> "?" Then
|
||||
modified = 2
|
||||
Exit Do
|
||||
End If ' Len(line) > 0 And Mid(line, 1, 1) <> "?"
|
||||
Loop While Not OExec.StdOut.atEndOfStream
|
||||
|
||||
Set oExec = WshShell.Exec("hg branch")
|
||||
If Err.Number = 0 Then
|
||||
line = OExec.StdOut.ReadLine()
|
||||
If line <> "default" Then
|
||||
branch = line
|
||||
End If ' line <> "default"
|
||||
End If ' Err.Number = 0
|
||||
|
||||
Set oExec = WshShell.Exec("hg log -r " & hash & ":0 -k " & Chr(34) & "svn" & Chr(34) & " -l 1 --template " & Chr(34) & "{desc}\n" & Chr(34) & " ../src")
|
||||
If Err.Number = 0 Then
|
||||
revision = Mid(OExec.StdOut.ReadLine(), 7)
|
||||
revision = Mid(revision, 1, InStr(revision, ")") - 1)
|
||||
End If ' Err.Number = 0
|
||||
End If ' Err.Number = 0
|
||||
End If ' oExec.ExitCode = 0
|
||||
End If ' Err.Number = 0
|
||||
End If ' version = "norev000"
|
||||
End If ' version <> "norev000"
|
||||
|
||||
If modified = 2 Then
|
||||
version = version & "M"
|
||||
End If
|
||||
|
||||
DetermineSVNVersion = version
|
||||
If branch <> "" Then
|
||||
version = version & "-" & branch
|
||||
End If
|
||||
|
||||
If version <> "norev000" Then
|
||||
DetermineSVNVersion = version & Chr(9) & revision & Chr(9) & modified
|
||||
Else
|
||||
DetermineSVNVersion = version
|
||||
End If
|
||||
End Function
|
||||
|
||||
Function IsCachedVersion(version)
|
||||
Function IsCachedVersion(ByVal version)
|
||||
Dim cache_file, cached_version
|
||||
cached_version = ""
|
||||
Set cache_file = FSO.OpenTextFile("../config.cache.version", 1, True, 0)
|
||||
@@ -249,6 +259,10 @@ Function IsCachedVersion(version)
|
||||
End If
|
||||
cache_file.Close
|
||||
|
||||
If InStr(version, Chr(9)) Then
|
||||
version = Mid(version, 1, Instr(version, Chr(9)) - 1)
|
||||
End If
|
||||
|
||||
If version <> cached_version Then
|
||||
Set cache_file = fso.CreateTextFile("../config.cache.version", True)
|
||||
cache_file.WriteLine(version)
|
||||
@@ -259,8 +273,13 @@ Function IsCachedVersion(version)
|
||||
End If
|
||||
End Function
|
||||
|
||||
Function CheckFile(filename)
|
||||
CheckFile = FSO.FileExists(filename)
|
||||
If CheckFile Then CheckFile = (FSO.GetFile(filename).DateLastModified >= FSO.GetFile(filename & ".in").DateLastModified)
|
||||
End Function
|
||||
|
||||
Dim version
|
||||
version = DetermineSVNVersion
|
||||
If Not (IsCachedVersion(version) And FSO.FileExists("../src/rev.cpp") And FSO.FileExists("../src/ottdres.rc")) Then
|
||||
If Not (IsCachedVersion(version) And CheckFile("../src/rev.cpp") And CheckFile("../src/ottdres.rc")) Then
|
||||
UpdateFiles version
|
||||
End If
|
||||
|
||||
+14
-2
@@ -28,6 +28,7 @@ fi
|
||||
|
||||
|
||||
# First, collect the list of Windows files
|
||||
allegro_config=""
|
||||
sdl_config="1"
|
||||
png_config="1"
|
||||
os="MSVC"
|
||||
@@ -55,6 +56,15 @@ safety_check() {
|
||||
done
|
||||
}
|
||||
|
||||
grep '\.h' "$ROOT_DIR/source.list" | grep -v '../objs/langs/table/strings.h' | sed 's/ //' | 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."
|
||||
diff tmp.headers.source.list tmp.headers.src | grep '[<>]' | sort
|
||||
echo ""
|
||||
fi
|
||||
rm tmp.headers.*
|
||||
|
||||
load_main_data() {
|
||||
# Read the source.list and process it
|
||||
RES="`cat $1 | tr '\r' '\n' | awk '
|
||||
@@ -69,11 +79,13 @@ load_main_data() {
|
||||
|
||||
deep += 1;
|
||||
|
||||
if ($0 == "ALLEGRO" && "'$allegro_config'" == "") { next; }
|
||||
if ($0 == "SDL" && "'$sdl_config'" == "") { next; }
|
||||
if ($0 == "PNG" && "'$png_config'" == "") { next; }
|
||||
if ($0 == "OSX" && "'$os'" != "OSX") { next; }
|
||||
if ($0 == "OS2" && "'$os'" != "OS2") { next; }
|
||||
if ($0 == "PSP" && "'$os'" != "PSP") { next; }
|
||||
if ($0 == "DOS" && "'$os'" != "DOS") { next; }
|
||||
if ($0 == "DEDICATED" && "'$enable_dedicated'" != "1") { next; }
|
||||
if ($0 == "COCOA" && "'$with_cocoa'" == "0") { next; }
|
||||
if ($0 == "BEOS" && "'$os'" != "BEOS") { next; }
|
||||
@@ -83,7 +95,7 @@ load_main_data() {
|
||||
if ($0 == "MSVC" && "'$os'" != "MSVC") { next; }
|
||||
if ($0 == "DIRECTMUSIC" && "'$enable_directmusic'" != "1") { next; }
|
||||
if ($0 == "LIBTIMIDITY" && "'$libtimidity'" == "" ) { next; }
|
||||
if ($0 == "NO_THREADS" && "'$with_threads'" == "0") { next; }
|
||||
if ($0 == "HAVE_THREAD" && "'$with_threads'" == "0") { next; }
|
||||
|
||||
skip += 1;
|
||||
|
||||
@@ -129,7 +141,7 @@ load_lang_data() {
|
||||
RES=""
|
||||
for i in `ls $1`
|
||||
do
|
||||
i=`basename $i | sed s/.txt$//g`
|
||||
i=`basename $i | sed s~.txt$~~g`
|
||||
RES="$RES
|
||||
<File
|
||||
RelativePath=\"..\\src\\lang\\"$i".txt\"
|
||||
|
||||
+81
-1
@@ -46,6 +46,85 @@ Sub safety_check(filename)
|
||||
file.Close
|
||||
End Sub
|
||||
|
||||
Sub get_files(srcdir, dir, list)
|
||||
Dim file, filename
|
||||
Dim rekeep, reskip
|
||||
|
||||
' pattern for files to keep
|
||||
Set rekeep = New RegExp
|
||||
rekeep.Pattern = "\.h(pp)?$"
|
||||
rekeep.Global = True
|
||||
|
||||
' pattern for files to exclude
|
||||
Set reskip = New RegExp
|
||||
reskip.Pattern = "\.svn"
|
||||
reskip.Global = True
|
||||
|
||||
For Each file in dir.Files
|
||||
filename = Replace(file.path, srcdir, "") ' Remove */src/
|
||||
filename = Replace(filename, "\", "/") ' Replace separators
|
||||
If rekeep.Test(filename) And Not reskip.Test(filename) Then
|
||||
list.Add filename, filename
|
||||
End If
|
||||
Next
|
||||
End Sub
|
||||
|
||||
Sub get_dir_files(srcdir, dir, list)
|
||||
Dim folder
|
||||
' Get files
|
||||
get_files srcdir, dir, list
|
||||
|
||||
' Recurse in subfolders
|
||||
For Each folder in dir.SubFolders
|
||||
get_dir_files srcdir, folder, list
|
||||
Next
|
||||
End Sub
|
||||
|
||||
Sub headers_check(filename, dir)
|
||||
Dim source_list_headers, src_dir_headers, regexp, line, file, str
|
||||
|
||||
' Define regexp for source.list parsing
|
||||
Set regexp = New RegExp
|
||||
regexp.Pattern = "\.h"
|
||||
regexp.Global = True
|
||||
|
||||
' Parse source.list and store headers in a dictionary
|
||||
Set source_list_headers = CreateObject("Scripting.Dictionary")
|
||||
Set file = FSO.OpenTextFile(filename, 1, 0, 0)
|
||||
While Not file.AtEndOfStream
|
||||
line = Replace(file.ReadLine, Chr(9), "") ' Remove tabs
|
||||
If Len(line) > 0 And regexp.Test(line) And line <> "../objs/langs/table/strings.h" Then
|
||||
source_list_headers.Add line, line
|
||||
End If
|
||||
Wend
|
||||
file.Close()
|
||||
|
||||
' Get header files in /src/
|
||||
Set src_dir_headers = CreateObject("Scripting.Dictionary")
|
||||
get_dir_files dir, FSO.GetFolder(dir), src_dir_headers
|
||||
|
||||
' Finding files in source.list but not in /src/
|
||||
For Each line In source_list_headers
|
||||
If Not src_dir_headers.Exists(line) Then
|
||||
str = str & "< " & line & vbCrLf
|
||||
End If
|
||||
Next
|
||||
|
||||
' Finding files in /src/ but not in source.list
|
||||
For Each line In src_dir_headers
|
||||
If Not source_list_headers.Exists(line) Then
|
||||
str = str & "> " & line & vbCrLf
|
||||
End If
|
||||
Next
|
||||
|
||||
' Display the missing files if any
|
||||
If str <> "" Then
|
||||
str = "The following headers are missing in source.list and not in /src/ or vice versa." _
|
||||
& vbCrLf & str
|
||||
WScript.Echo str
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Function load_main_data(filename)
|
||||
Dim res, file, line, deep, skip, first_time
|
||||
res = ""
|
||||
@@ -72,7 +151,7 @@ Function load_main_data(filename)
|
||||
line = "WIN32" Or _
|
||||
line = "MSVC" Or _
|
||||
line = "DIRECTMUSIC" Or _
|
||||
line = "NO_THREADS" _
|
||||
line = "HAVE_THREAD" _
|
||||
) Then skip = skip + 1
|
||||
deep = deep + 1
|
||||
Case "#"
|
||||
@@ -171,6 +250,7 @@ If Not FSO.FileExists(ROOT_DIR & "/source.list") Then
|
||||
End If
|
||||
|
||||
safety_check ROOT_DIR & "/source.list"
|
||||
headers_check ROOT_DIR & "/source.list", ROOT_DIR & "\src\" ' Backslashes needed for DoFiles
|
||||
|
||||
Dim openttd
|
||||
openttd = load_main_data(ROOT_DIR &"/source.list")
|
||||
|
||||
+90
-15
@@ -61,6 +61,21 @@
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\lang\arabic_egypt.txt"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating arabic_egypt language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\arabic_egypt.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\lang\brazilian_portuguese.txt"
|
||||
>
|
||||
@@ -286,6 +301,21 @@
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\lang\hebrew.txt"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating hebrew language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\hebrew.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\lang\hungarian.txt"
|
||||
>
|
||||
@@ -316,6 +346,21 @@
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\lang\indonesian.txt"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating indonesian language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\indonesian.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\lang\italian.txt"
|
||||
>
|
||||
@@ -361,6 +406,21 @@
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\lang\latvian.txt"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating latvian language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\latvian.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\lang\lithuanian.txt"
|
||||
>
|
||||
@@ -376,6 +436,21 @@
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\lang\luxembourgish.txt"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating luxembourgish language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\luxembourgish.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\lang\norwegian_bokmal.txt"
|
||||
>
|
||||
@@ -406,21 +481,6 @@
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\lang\origveh.txt"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating origveh language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\origveh.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\lang\piglatin.txt"
|
||||
>
|
||||
@@ -616,6 +676,21 @@
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\lang\welsh.txt"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating welsh language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\welsh.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
|
||||
+90
-15
@@ -62,6 +62,21 @@
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\lang\arabic_egypt.txt"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating arabic_egypt language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\arabic_egypt.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\lang\brazilian_portuguese.txt"
|
||||
>
|
||||
@@ -287,6 +302,21 @@
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\lang\hebrew.txt"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating hebrew language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\hebrew.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\lang\hungarian.txt"
|
||||
>
|
||||
@@ -317,6 +347,21 @@
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\lang\indonesian.txt"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating indonesian language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\indonesian.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\lang\italian.txt"
|
||||
>
|
||||
@@ -362,6 +407,21 @@
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\lang\latvian.txt"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating latvian language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\latvian.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\lang\lithuanian.txt"
|
||||
>
|
||||
@@ -377,6 +437,21 @@
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\lang\luxembourgish.txt"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating luxembourgish language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\luxembourgish.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\lang\norwegian_bokmal.txt"
|
||||
>
|
||||
@@ -407,21 +482,6 @@
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\lang\origveh.txt"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating origveh language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\origveh.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\lang\piglatin.txt"
|
||||
>
|
||||
@@ -617,6 +677,21 @@
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\lang\welsh.txt"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
Description="Generating welsh language file"
|
||||
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "$(InputPath)"
"
|
||||
AdditionalDependencies=""
|
||||
Outputs="..\bin\lang\welsh.lng"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
|
||||
+1276
-112
File diff suppressed because it is too large
Load Diff
@@ -53,13 +53,14 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalOptions="/MP"
|
||||
Optimization="3"
|
||||
InlineFunctionExpansion="2"
|
||||
EnableIntrinsicFunctions="true"
|
||||
FavorSizeOrSpeed="2"
|
||||
OmitFramePointers="true"
|
||||
AdditionalIncludeDirectories="..\objs\langs"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_EXCEPTION_TRACKER;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_PNG;WITH_FREETYPE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";WITH_ASSERT"
|
||||
AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_EXCEPTION_TRACKER;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\""
|
||||
StringPooling="true"
|
||||
ExceptionHandling="1"
|
||||
RuntimeLibrary="0"
|
||||
@@ -89,14 +90,14 @@
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
Culture="1053"
|
||||
Culture="2057"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib dxguid.lib libfreetype2.lib"
|
||||
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib dxguid.lib libfreetype2.lib libicu.lib"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="true"
|
||||
IgnoreDefaultLibraryNames=""
|
||||
@@ -163,9 +164,10 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalOptions="/MP"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\objs\langs"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_PNG;WITH_FREETYPE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\""
|
||||
AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\""
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
UsePrecompiledHeader="0"
|
||||
@@ -186,14 +188,14 @@
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
Culture="1053"
|
||||
Culture="2057"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib dxguid.lib libfreetype2.lib"
|
||||
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib dxguid.lib libfreetype2.lib libicu.lib"
|
||||
LinkIncremental="0"
|
||||
SuppressStartupBanner="true"
|
||||
IgnoreDefaultLibraryNames="LIBCMT.lib"
|
||||
@@ -260,13 +262,14 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalOptions="/MP"
|
||||
Optimization="3"
|
||||
InlineFunctionExpansion="2"
|
||||
EnableIntrinsicFunctions="true"
|
||||
FavorSizeOrSpeed="2"
|
||||
OmitFramePointers="true"
|
||||
AdditionalIncludeDirectories="..\objs\langs"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_EXCEPTION_TRACKER;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_PNG;WITH_FREETYPE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";WITH_ASSERT"
|
||||
AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_EXCEPTION_TRACKER;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";_SQ64"
|
||||
StringPooling="true"
|
||||
ExceptionHandling="1"
|
||||
RuntimeLibrary="0"
|
||||
@@ -296,14 +299,14 @@
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
Culture="1053"
|
||||
Culture="2057"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib dxguid.lib libfreetype2.lib"
|
||||
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib dxguid.lib libfreetype2.lib libicu.lib"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="true"
|
||||
IgnoreDefaultLibraryNames=""
|
||||
@@ -371,9 +374,10 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalOptions="/MP"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\objs\langs"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_PNG;WITH_FREETYPE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\""
|
||||
AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";_SQ64"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
UsePrecompiledHeader="0"
|
||||
@@ -396,14 +400,14 @@
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
Culture="1053"
|
||||
Culture="2057"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib dxguid.lib libfreetype2.lib"
|
||||
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib dxguid.lib libfreetype2.lib libicu.lib"
|
||||
LinkIncremental="0"
|
||||
SuppressStartupBanner="true"
|
||||
IgnoreDefaultLibraryNames="LIBCMT.lib"
|
||||
@@ -484,10 +488,6 @@
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
</Filter>
|
||||
<File
|
||||
RelativePath=".\..\media\mainicon.ico"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\media\openttd.ico"
|
||||
>
|
||||
|
||||
+1276
-112
File diff suppressed because it is too large
Load Diff
@@ -54,13 +54,14 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalOptions="/MP"
|
||||
Optimization="3"
|
||||
InlineFunctionExpansion="2"
|
||||
EnableIntrinsicFunctions="true"
|
||||
FavorSizeOrSpeed="2"
|
||||
OmitFramePointers="true"
|
||||
AdditionalIncludeDirectories="..\objs\langs"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_EXCEPTION_TRACKER;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_PNG;WITH_FREETYPE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";WITH_ASSERT"
|
||||
AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_EXCEPTION_TRACKER;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\""
|
||||
StringPooling="true"
|
||||
ExceptionHandling="1"
|
||||
RuntimeLibrary="0"
|
||||
@@ -90,14 +91,14 @@
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
Culture="1053"
|
||||
Culture="2057"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib dxguid.lib libfreetype2.lib"
|
||||
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib dxguid.lib libfreetype2.lib libicu.lib"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="true"
|
||||
IgnoreDefaultLibraryNames=""
|
||||
@@ -162,9 +163,10 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalOptions="/MP"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\objs\langs"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_PNG;WITH_FREETYPE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\""
|
||||
AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\""
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
UsePrecompiledHeader="0"
|
||||
@@ -185,14 +187,14 @@
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
Culture="1053"
|
||||
Culture="2057"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib dxguid.lib libfreetype2.lib"
|
||||
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib dxguid.lib libfreetype2.lib libicu.lib"
|
||||
LinkIncremental="0"
|
||||
SuppressStartupBanner="true"
|
||||
IgnoreDefaultLibraryNames="LIBCMT.lib"
|
||||
@@ -258,13 +260,14 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalOptions="/MP"
|
||||
Optimization="3"
|
||||
InlineFunctionExpansion="2"
|
||||
EnableIntrinsicFunctions="true"
|
||||
FavorSizeOrSpeed="2"
|
||||
OmitFramePointers="true"
|
||||
AdditionalIncludeDirectories="..\objs\langs"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_EXCEPTION_TRACKER;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_PNG;WITH_FREETYPE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";WITH_ASSERT"
|
||||
AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_EXCEPTION_TRACKER;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";_SQ64"
|
||||
StringPooling="true"
|
||||
ExceptionHandling="1"
|
||||
RuntimeLibrary="0"
|
||||
@@ -294,14 +297,14 @@
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
Culture="1053"
|
||||
Culture="2057"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib dxguid.lib libfreetype2.lib"
|
||||
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib dxguid.lib libfreetype2.lib libicu.lib"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="true"
|
||||
IgnoreDefaultLibraryNames=""
|
||||
@@ -368,9 +371,10 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalOptions="/MP"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="..\objs\langs"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_PNG;WITH_FREETYPE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\""
|
||||
AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\"OpenTTD\";_SQ64"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
UsePrecompiledHeader="0"
|
||||
@@ -393,14 +397,14 @@
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
Culture="1053"
|
||||
Culture="2057"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib dxguid.lib libfreetype2.lib"
|
||||
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib dxguid.lib libfreetype2.lib libicu.lib"
|
||||
LinkIncremental="0"
|
||||
SuppressStartupBanner="true"
|
||||
IgnoreDefaultLibraryNames="LIBCMT.lib"
|
||||
@@ -481,10 +485,6 @@
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
</Filter>
|
||||
<File
|
||||
RelativePath=".\..\media\mainicon.ico"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\..\media\openttd.ico"
|
||||
>
|
||||
|
||||
@@ -43,6 +43,7 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalOptions="/MP"
|
||||
Optimization="1"
|
||||
FavorSizeOrSpeed="2"
|
||||
PreprocessorDefinitions="STRGEN;WIN32;_DEBUG;_CONSOLE"
|
||||
|
||||
@@ -44,6 +44,7 @@
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalOptions="/MP"
|
||||
Optimization="1"
|
||||
FavorSizeOrSpeed="2"
|
||||
PreprocessorDefinitions="STRGEN;WIN32;_DEBUG;_CONSOLE"
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
Description="Determining version number"
|
||||
CommandLine=""$(InputDir)/determineversion.vbs""
|
||||
CommandLine="cscript "$(InputDir)/determineversion.vbs""
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
@@ -34,6 +34,10 @@
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<File
|
||||
RelativePath="..\src\ottdres.rc.in"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\rev.cpp.in"
|
||||
>
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
Description="Determining version number"
|
||||
CommandLine=""$(InputDir)/determineversion.vbs""
|
||||
CommandLine="cscript "$(InputDir)/determineversion.vbs""
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
@@ -35,6 +35,10 @@
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<File
|
||||
RelativePath="..\src\ottdres.rc.in"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\rev.cpp.in"
|
||||
>
|
||||
|
||||
+131
-18
@@ -1,6 +1,6 @@
|
||||
OpenTTD README
|
||||
Last updated: 2008-10-01
|
||||
Release version: 0.6.3
|
||||
Last updated: 2009-06-09
|
||||
Release version: 0.7.1
|
||||
------------------------------------------------------------------------
|
||||
|
||||
|
||||
@@ -65,7 +65,61 @@ Please include the following information in your bug report:
|
||||
version without the bug and the first version including
|
||||
the bug. That way we can fix it quicker by looking at the
|
||||
changes made.
|
||||
- Attach crash.dmp, crash.log and crash.sav from the data
|
||||
directory if they exist.
|
||||
|
||||
2.2) Reporting Desyncs:
|
||||
---- ------------------
|
||||
As desyncs are hard to make reproducable OpenTTD has the ability to log all
|
||||
actions done by clients so we can replay the whole game in an effort to make
|
||||
desyncs better reproducable. You need to turn this ability on. When turned
|
||||
on an automatic savegame will be made once the map has been constructed in
|
||||
the 'save/autosave' directory, see OpenTTD directories to know where to find
|
||||
this directory. Furthermore the log file 'commands-out.log' will be created
|
||||
and all actions will be written to there.
|
||||
|
||||
To enable the desync debugging you need to set the debug level for 'desync'
|
||||
to at least 1. You do this by starting OpenTTD with '-d desync=<level>' as
|
||||
parameter or by typing 'debug_level desync=<level>' in OpenTTD's internal
|
||||
console.
|
||||
The desync debug levels are:
|
||||
0: nothing.
|
||||
1: dumping of commands to 'commands-out.log'.
|
||||
2: same as 1 plus checking vehicle caches and dumping that too.
|
||||
3: same as 2 plus monthly saves in autosave.
|
||||
4 and higher: same as 3
|
||||
|
||||
Restarting OpenTTD will overwrite 'commands-out.log'. OpenTTD will not remove
|
||||
the savegames (dmp_cmds_*.sav) made by the desync debugging system, so you
|
||||
have to occasionally remove them yourself!
|
||||
|
||||
The naming format of the desync savegames is as follows:
|
||||
dmp_cmds_XXXXXXXX_YYYYYYYY.sav. The XXXXXXXX is the hexadecimal representation
|
||||
of the generation seed of the game and YYYYYYYY is the hexadecimal
|
||||
representation of the date of the game. This sorts the savegames by game and
|
||||
then by date making it easier to find the right savegames.
|
||||
|
||||
When a desync has occurred with the desync debugging turned on you should file
|
||||
a bug report with the following files attached:
|
||||
- commands-out.log as it contains all the commands that were done
|
||||
- the last saved savegame (search for the last line beginning with
|
||||
'save: dmp_cmds_' in commands-out.log). We use this savegame to check
|
||||
whether we can quickly reproduce the desync. Otherwise we will need...
|
||||
- the first saved savegame (search for the first line beginning with 'save'
|
||||
where the first part, up to the last underscore '_', is the same). We need
|
||||
this savegame to be able to reproduce the bug when the last savegame is not
|
||||
old enough. If you loaded a scenario or savegame you need to attach that.
|
||||
- optionally you can attach the savegames from around 50%, 75%, 85%, 90% and
|
||||
95% of the game's progression. We can use these savegames to speed up the
|
||||
reproduction of the desync, but we should be able to reproduce these
|
||||
savegames based on the first savegame and commands-out.log.
|
||||
- in case you use any NewGRFs you should attach the ones you used unless
|
||||
we can easily find them ourselves via e.g. grfcrawler or when they are
|
||||
in the OpenTTDCoop pack.
|
||||
|
||||
Do NOT remove the dmp_cmds savegames of a desync you have reported until the
|
||||
desync has been fixed; if you, by accident, send us the wrong savegames we
|
||||
will not be able to reproduce the desync and thus will be unable to fix it.
|
||||
|
||||
3.0) Supported Platforms:
|
||||
---- --------------------
|
||||
@@ -73,14 +127,15 @@ OpenTTD has been ported to several platforms and operating systems. It shouldn't
|
||||
be very difficult to port it to a new platform. The currently working platforms
|
||||
are:
|
||||
|
||||
BeOS - SDL
|
||||
BeOS - SDL or Allegro
|
||||
DOS - Allegro
|
||||
FreeBSD - SDL
|
||||
Linux - SDL
|
||||
Linux - SDL or Allegro
|
||||
MacOS X (universal) - Cocoa video and sound drivers (SDL works too, but not 100% and not as a universal binary)
|
||||
MorphOS - SDL
|
||||
OpenBSD - SDL
|
||||
OS/2 - SDL
|
||||
Windows - Win32 GDI (faster) or SDL
|
||||
Windows - Win32 GDI (faster) or SDL or Allegro
|
||||
|
||||
|
||||
4.0) Installing and running OpenTTD:
|
||||
@@ -193,21 +248,56 @@ again, see section 4.1).
|
||||
OpenTTD has a lot of features going beyond the original TTD emulation.
|
||||
Unfortunately, there is currently no comprehensive list of features, but there
|
||||
is a basic features list on the web, and some optional features can be
|
||||
controlled through the Configure Patches dialog. We also implement some
|
||||
controlled through the Advanced Settings dialog. We also implement some
|
||||
features known from TTDPatch (http://www.ttdpatch.net/).
|
||||
|
||||
Several important non-standard controls:
|
||||
|
||||
* Use Ctrl to place semaphore signals
|
||||
* Ctrl makes many commands more powerful. For example Ctrl clicking on signals
|
||||
with the build signal tool changes their behaviour.
|
||||
* Ingame console. More information at
|
||||
http://wiki.openttd.org/index.php/Console
|
||||
* Right clicking shows tooltips
|
||||
|
||||
|
||||
5.1) Logging of potentially dangerous actions:
|
||||
---- ----------------------------------------
|
||||
|
||||
OpenTTD is a complex program, and together with NewGRF, it may show a buggy
|
||||
behaviour. But not only bugs in code can cause problems. There are several
|
||||
ways to affect game state possibly resulting in program crash or multiplayer
|
||||
desyncs.
|
||||
Easier way would be to forbid all these unsafe actions, but that would affect
|
||||
game usability for many players. We certainly do not want that.
|
||||
However, we receive bugreports because of this. To reduce time spent with
|
||||
solving these problems, these potentially unsafe actions are logged in
|
||||
the savegame (including crash.sav). Log is stored in crash logs, too.
|
||||
|
||||
Information logged:
|
||||
|
||||
* Adding / removing / changing order of NewGRFs
|
||||
* Changing NewGRF parameters, loading compatible NewGRF
|
||||
* Changing game mode (scenario editor <-> normal game)
|
||||
* Loading game saved in a different OTTD / TTDPatch / TTD version
|
||||
* Running a modified OTTD build
|
||||
* Changing settings affecting NewGRF behaviour (non-networksafe settings)
|
||||
* Changing landscape (by cheat)
|
||||
* Triggering NewGRF bugs
|
||||
|
||||
No personal information is stored.
|
||||
|
||||
You can show the gamelog by typing 'gamelog' in the console or by running
|
||||
OpenTTD in debug mode.
|
||||
|
||||
|
||||
6.0) Configuration File:
|
||||
---- -------------------
|
||||
The configuration file for OpenTTD (openttd.cfg) is in a simple Windows-like
|
||||
.INI format. It's mostly undocumented. Almost all settings can be changed
|
||||
ingame by using the 'Configure Patches' window.
|
||||
ingame by using the 'Advanced Settings' window.
|
||||
When you can not find openttd.cfg you should look in the directories as
|
||||
described in section 4.2. If you do not have an openttd.cfg OpenTTD will
|
||||
create one after closing.
|
||||
|
||||
|
||||
7.0) Compiling:
|
||||
@@ -268,10 +358,27 @@ OS/2:
|
||||
A comprehensive GNU build environment is required to build the OS/2 version.
|
||||
See the docs/Readme_OS2.txt file for more information.
|
||||
|
||||
DOS:
|
||||
A build environment with DJGPP is needed as well as libraries such as
|
||||
Allegro, zlib and libpng, which all can be downloaded from the DJGPP
|
||||
website. Compilation is straight forward: use make, but do a "./configure"
|
||||
before the first build. The build binary will need cwsdpmi.exe to be in
|
||||
the same directory as the openttd executable. cwsdpmi.exe can be found in
|
||||
the os/dos subdirectory. If you compile with stripping turned on a binary
|
||||
will be generated that does not need cwsdpmi.exe by adding the cswdstub.exe
|
||||
to the created OpenTTD binary.
|
||||
|
||||
The following libraries are used by OpenTTD for:
|
||||
- libSDL/liballegro: hardware access (video, sound, mouse)
|
||||
- zlib: (de)compressing of savegames
|
||||
- libpng: making screenshots and loading heightmaps
|
||||
- libfreetype: loading generic fonts and rendering them
|
||||
- libfontconfig: searching for fonts, resolving font names to actual fonts
|
||||
- libicu: handling of right-to-left scripts (e.g. Arabic and Persian)
|
||||
|
||||
8.0) Translating:
|
||||
---- -------------------
|
||||
See http://www.openttd.org/translating.php for up-to-date information.
|
||||
See http://www.openttd.org/development for up-to-date information.
|
||||
|
||||
The use of the online Translator service, located at
|
||||
http://translator2.openttd.org/, is highly encouraged. For a username/password
|
||||
@@ -294,7 +401,7 @@ Here are some translation guidelines which you should follow closely.
|
||||
---- -------------------
|
||||
So, now that you've notified the development team about your intention to
|
||||
translate (You did, right? Of course you did.) you can pick up english.txt
|
||||
(found in the SVN repository under /lang) and translate.
|
||||
(found in the SVN repository under /src/lang) and translate.
|
||||
|
||||
You must change the first two lines of the file appropriately:
|
||||
|
||||
@@ -311,7 +418,10 @@ Note: Do not alter the following parts of the file:
|
||||
8.3) Previewing:
|
||||
---- -------------------
|
||||
In order to view the translation in the game, you need to compile your language
|
||||
file with the strgen utility, which is now bundled with the game.
|
||||
file with the strgen utility. You can download the precompiled strgen from:
|
||||
http://www.openttd.org/download-strgen
|
||||
To compile it yourself just take the normal OpenTTD sources and build that.
|
||||
During the build process the strgen utility will be made.
|
||||
|
||||
strgen is a command-line utility. It takes the language filename as parameter.
|
||||
Example:
|
||||
@@ -362,27 +472,29 @@ The OpenTTD team (in alphabetical order):
|
||||
Jean-Francois Claeys (Belugas) - GUI, newindustries and more
|
||||
Bjarni Corfitzen (Bjarni) - MacOSX port, coder and vehicles
|
||||
Matthijs Kooijman (blathijs) - Pathfinder-guru, pool rework
|
||||
Loïc Guilloux (glx) - General coding
|
||||
Victor Fischer (Celestar) - Programming everywhere you need him to
|
||||
Christoph Elsenhans (frosch) - General coding
|
||||
Jaroslav Mazanec (KUDr) - YAPG (Yet Another Pathfinder God) ;)
|
||||
Jonathan Coome (Maedhros) - High priest of the newGRF Temple
|
||||
Attila Bán (MiHaMiX) - WebTranslator, Nightlies, Wiki and bugtracker host
|
||||
Loïc Guilloux (glx) - Windows Expert
|
||||
Michael Lutz (michi_cc) - Path based signals
|
||||
Owen Rudge (orudge) - Forum host, OS/2 port
|
||||
Peter Nelson (peter1138) - Spiritual descendant from newGRF gods
|
||||
Remko Bijker (Rubidium) - Lead coder and way more
|
||||
Benedikt Brüggemeier (skidd13) - Bug fixer and code reworker
|
||||
Zdenek Sojka (SmatZ) - Bug finder and fixer
|
||||
Thijs Marinussen (Yexo) - AI Framework
|
||||
|
||||
Inactive Developers:
|
||||
Victor Fischer (Celestar) - Programming everywhere you need him to
|
||||
Tamás Faragó (Darkvater) - Ex-Lead coder
|
||||
Jaroslav Mazanec (KUDr) - YAPG (Yet Another Pathfinder God) ;)
|
||||
Jonathan Coome (Maedhros) - High priest of the NewGRF Temple
|
||||
Attila Bán (MiHaMiX) - WebTranslator, Nightlies, Wiki and bugtracker host
|
||||
Christoph Mallon (Tron) - Programmer, code correctness police
|
||||
|
||||
Retired Developers:
|
||||
Ludvig Strigeus (ludde) - OpenTTD author, main coder (0.1 - 0.3.3)
|
||||
Serge Paquet (vurlix) - Assistant project manager, coder (0.1 - 0.3.3)
|
||||
Dominik Scherer (dominik81) - Lead programmer, GUI expert (0.3.0 - 0.3.6)
|
||||
Patric Stout (TrueLight) - Programmer, webhoster (0.3 - pre0.6)
|
||||
Benedikt Brüggemeier (skidd13) - Bug fixer and code reworker
|
||||
Patric Stout (TrueLight) - Programmer, webhoster (0.3 - pre0.7)
|
||||
|
||||
Thanks to:
|
||||
Josef Drexler - For his great work on TTDPatch.
|
||||
@@ -394,6 +506,7 @@ Thanks to:
|
||||
Cian Duffy (MYOB) - BeOS port / manual writing
|
||||
Christian Rosentreter (tokai) - MorphOS / AmigaOS port
|
||||
Richard Kempton (RichK67) - Additional airports, initial TGP implementation
|
||||
Alberto Demichelis - Squirrel scripting language
|
||||
Michael Blunck - For revolutionizing TTD with awesome graphics
|
||||
George - Canal graphics
|
||||
David Dallaston (Pikka) - Tram tracks
|
||||
|
||||
+408
-50
@@ -1,14 +1,14 @@
|
||||
# Source Files
|
||||
airport.cpp
|
||||
core/alloc_func.cpp
|
||||
animated_tile.cpp
|
||||
articulated_vehicles.cpp
|
||||
autoreplace_cmd.cpp
|
||||
autoreplace.cpp
|
||||
aystar.cpp
|
||||
core/bitmath_func.cpp
|
||||
bmp.cpp
|
||||
callback_table.cpp
|
||||
cargopacket.cpp
|
||||
cargotype.cpp
|
||||
cheat.cpp
|
||||
command.cpp
|
||||
console.cpp
|
||||
console_cmds.cpp
|
||||
@@ -18,18 +18,20 @@ debug.cpp
|
||||
dedicated.cpp
|
||||
depot.cpp
|
||||
driver.cpp
|
||||
widgets/dropdown.cpp
|
||||
economy.cpp
|
||||
effectvehicle.cpp
|
||||
elrail.cpp
|
||||
engine.cpp
|
||||
fileio.cpp
|
||||
fios.cpp
|
||||
fontcache.cpp
|
||||
gamelog.cpp
|
||||
genworld.cpp
|
||||
gfx.cpp
|
||||
gfxinit.cpp
|
||||
heightmap.cpp
|
||||
helpers.cpp
|
||||
highscore.cpp
|
||||
ini.cpp
|
||||
landscape.cpp
|
||||
map.cpp
|
||||
md5.cpp
|
||||
@@ -40,12 +42,12 @@ music.cpp
|
||||
namegen.cpp
|
||||
network/network.cpp
|
||||
network/network_client.cpp
|
||||
network/network_data.cpp
|
||||
network/network_command.cpp
|
||||
network/network_content.cpp
|
||||
network/network_gamelist.cpp
|
||||
network/network_server.cpp
|
||||
network/network_udp.cpp
|
||||
npf.cpp
|
||||
oldloader.cpp
|
||||
oldpool.cpp
|
||||
openttd.cpp
|
||||
os_timer.cpp
|
||||
@@ -56,13 +58,11 @@ os_timer.cpp
|
||||
ottdres.rc
|
||||
#end
|
||||
pathfind.cpp
|
||||
players.cpp
|
||||
pbs.cpp
|
||||
queue.cpp
|
||||
rail.cpp
|
||||
core/random_func.cpp
|
||||
rev.cpp
|
||||
road.cpp
|
||||
saveload.cpp
|
||||
screenshot.cpp
|
||||
#if SDL
|
||||
sdl.cpp
|
||||
@@ -77,7 +77,23 @@ string.cpp
|
||||
strings.cpp
|
||||
texteff.cpp
|
||||
tgp.cpp
|
||||
thread.cpp
|
||||
#if HAVE_THREAD
|
||||
#if WIN32
|
||||
thread_win32.cpp
|
||||
#else
|
||||
#if OS2
|
||||
thread_os2.cpp
|
||||
#else
|
||||
#if MORPHOS
|
||||
thread_morphos.cpp
|
||||
#else
|
||||
thread_pthread.cpp
|
||||
#end
|
||||
#end
|
||||
#end
|
||||
#else
|
||||
thread_none.cpp
|
||||
#end
|
||||
tile_map.cpp
|
||||
#if WIN32
|
||||
#else
|
||||
@@ -92,6 +108,7 @@ tile_map.cpp
|
||||
#end
|
||||
#end
|
||||
vehicle.cpp
|
||||
vehiclelist.cpp
|
||||
viewport.cpp
|
||||
waypoint.cpp
|
||||
widget.cpp
|
||||
@@ -101,10 +118,15 @@ widget.cpp
|
||||
window.cpp
|
||||
|
||||
# Header Files
|
||||
#if ALLEGRO
|
||||
music/allegro_m.h
|
||||
sound/allegro_s.h
|
||||
video/allegro_v.h
|
||||
#end
|
||||
aircraft.h
|
||||
airport.h
|
||||
airport_movement.h
|
||||
core/alloc_func.hpp
|
||||
animated_tile_func.h
|
||||
articulated_vehicles.h
|
||||
autoreplace_base.h
|
||||
autoreplace_func.h
|
||||
@@ -112,62 +134,89 @@ autoreplace_gui.h
|
||||
autoreplace_type.h
|
||||
autoslope.h
|
||||
aystar.h
|
||||
core/bitmath_func.hpp
|
||||
bmp.h
|
||||
bridge.h
|
||||
callback_table.h
|
||||
cargo_type.h
|
||||
cargopacket.h
|
||||
cargotype.h
|
||||
cheat_func.h
|
||||
cheat_type.h
|
||||
cmd_helper.h
|
||||
command_func.h
|
||||
command_type.h
|
||||
console.h
|
||||
company_base.h
|
||||
company_func.h
|
||||
company_gui.h
|
||||
company_manager_face.h
|
||||
company_type.h
|
||||
console_func.h
|
||||
console_gui.h
|
||||
console_internal.h
|
||||
console_type.h
|
||||
currency.h
|
||||
date_func.h
|
||||
date_type.h
|
||||
debug.h
|
||||
video/dedicated_v.h
|
||||
depot.h
|
||||
depot_base.h
|
||||
depot_func.h
|
||||
depot_map.h
|
||||
depot_type.h
|
||||
direction_func.h
|
||||
direction_type.h
|
||||
music/dmusic.h
|
||||
driver.h
|
||||
widgets/dropdown_func.h
|
||||
widgets/dropdown_type.h
|
||||
economy_func.h
|
||||
economy_type.h
|
||||
core/endian_func.hpp
|
||||
engine.h
|
||||
core/enum_type.hpp
|
||||
fileio.h
|
||||
effectvehicle_base.h
|
||||
effectvehicle_func.h
|
||||
elrail_func.h
|
||||
engine_base.h
|
||||
engine_func.h
|
||||
engine_gui.h
|
||||
engine_type.h
|
||||
fileio_func.h
|
||||
fileio_type.h
|
||||
fios.h
|
||||
fontcache.h
|
||||
functions.h
|
||||
gamelog.h
|
||||
gamelog_internal.h
|
||||
genworld.h
|
||||
core/geometry_type.hpp
|
||||
gfx_func.h
|
||||
gfx_type.h
|
||||
gfxinit.h
|
||||
group.h
|
||||
group_gui.h
|
||||
group_type.h
|
||||
gui.h
|
||||
heightmap.h
|
||||
highscore.h
|
||||
industry.h
|
||||
industry_type.h
|
||||
ini_type.h
|
||||
landscape.h
|
||||
landscape_type.h
|
||||
livery.h
|
||||
core/math_func.hpp
|
||||
lzoconf.h
|
||||
map_func.h
|
||||
map_type.h
|
||||
md5.h
|
||||
minilzo.h
|
||||
mixer.h
|
||||
music.h
|
||||
namegen_func.h
|
||||
network/network.h
|
||||
network/network_base.h
|
||||
network/network_client.h
|
||||
network/network_data.h
|
||||
network/network_content.h
|
||||
network/network_func.h
|
||||
network/network_gamelist.h
|
||||
network/network_gui.h
|
||||
network/network_internal.h
|
||||
network/network_server.h
|
||||
network/network_type.h
|
||||
network/network_udp.h
|
||||
newgrf.h
|
||||
newgrf_callbacks.h
|
||||
@@ -187,34 +236,35 @@ newgrf_storage.h
|
||||
newgrf_text.h
|
||||
newgrf_town.h
|
||||
newgrf_townname.h
|
||||
news.h
|
||||
news_func.h
|
||||
news_gui.h
|
||||
news_type.h
|
||||
npf.h
|
||||
music/null_m.h
|
||||
sound/null_s.h
|
||||
video/null_v.h
|
||||
oldpool.h
|
||||
oldpool_func.h
|
||||
openttd.h
|
||||
order.h
|
||||
core/overflowsafe_type.hpp
|
||||
order_base.h
|
||||
order_func.h
|
||||
order_type.h
|
||||
pathfind.h
|
||||
player_base.h
|
||||
player_face.h
|
||||
player_func.h
|
||||
player_gui.h
|
||||
player_type.h
|
||||
pbs.h
|
||||
querystring_gui.h
|
||||
queue.h
|
||||
rail.h
|
||||
rail_gui.h
|
||||
rail_type.h
|
||||
core/random_func.hpp
|
||||
rev.h
|
||||
road_cmd.h
|
||||
road_func.h
|
||||
road_gui.h
|
||||
road_internal.h
|
||||
road_type.h
|
||||
roadveh.h
|
||||
saveload.h
|
||||
screenshot.h
|
||||
sdl.h
|
||||
sound/sdl_s.h
|
||||
video/sdl_v.h
|
||||
settings_func.h
|
||||
@@ -222,20 +272,29 @@ settings_internal.h
|
||||
settings_type.h
|
||||
ship.h
|
||||
signal_func.h
|
||||
signs.h
|
||||
signal_type.h
|
||||
signs_base.h
|
||||
signs_func.h
|
||||
signs_type.h
|
||||
slope_func.h
|
||||
slope_type.h
|
||||
sortlist_type.h
|
||||
sound_func.h
|
||||
sound_type.h
|
||||
sprite.h
|
||||
spritecache.h
|
||||
station.h
|
||||
station_base.h
|
||||
station_func.h
|
||||
station_gui.h
|
||||
station_type.h
|
||||
statusbar_gui.h
|
||||
stdafx.h
|
||||
strgen/strgen.h
|
||||
string_func.h
|
||||
string_type.h
|
||||
strings_func.h
|
||||
strings_type.h
|
||||
tar_type.h
|
||||
terraform_gui.h
|
||||
textbuf_gui.h
|
||||
texteff.hpp
|
||||
@@ -243,7 +302,10 @@ tgp.h
|
||||
thread.h
|
||||
tile_cmd.h
|
||||
tile_type.h
|
||||
tilehighlight_func.h
|
||||
tilehighlight_type.h
|
||||
timetable.h
|
||||
toolbar_gui.h
|
||||
town.h
|
||||
town_type.h
|
||||
track_func.h
|
||||
@@ -251,14 +313,23 @@ track_type.h
|
||||
train.h
|
||||
transparency.h
|
||||
transparency_gui.h
|
||||
transport_type.h
|
||||
tunnelbridge.h
|
||||
unmovable.h
|
||||
variables.h
|
||||
vehicle_base.h
|
||||
vehicle_func.h
|
||||
vehicle_gui.h
|
||||
vehicle_gui_base.h
|
||||
vehicle_type.h
|
||||
vehiclelist.h
|
||||
viewport_func.h
|
||||
viewport_type.h
|
||||
water.h
|
||||
waypoint.h
|
||||
waypoint_type.h
|
||||
widget_type.h
|
||||
win32.h
|
||||
music/win32_m.h
|
||||
sound/win32_s.h
|
||||
video/win32_v.h
|
||||
@@ -267,6 +338,40 @@ window_gui.h
|
||||
window_type.h
|
||||
zoom_func.h
|
||||
zoom_type.h
|
||||
#if WIN32
|
||||
#else
|
||||
music/bemidi.h
|
||||
music/extmidi.h
|
||||
music/libtimidity.h
|
||||
music/os2_m.h
|
||||
music/qtmidi.h
|
||||
os/macosx/macos.h
|
||||
os/macosx/osx_stdafx.h
|
||||
os/macosx/splash.h
|
||||
sound/cocoa_s.h
|
||||
video/cocoa/cocoa_keys.h
|
||||
video/cocoa/cocoa_v.h
|
||||
#end
|
||||
|
||||
# Core Source Code
|
||||
core/alloc_func.cpp
|
||||
core/alloc_func.hpp
|
||||
core/alloc_type.hpp
|
||||
core/bitmath_func.cpp
|
||||
core/bitmath_func.hpp
|
||||
core/endian_func.hpp
|
||||
core/endian_type.hpp
|
||||
core/enum_type.hpp
|
||||
core/geometry_type.hpp
|
||||
core/math_func.hpp
|
||||
core/mem_func.hpp
|
||||
core/overflowsafe_type.hpp
|
||||
core/random_func.cpp
|
||||
core/random_func.hpp
|
||||
core/smallmap_type.hpp
|
||||
core/smallvec_type.hpp
|
||||
core/sort_func.hpp
|
||||
core/string_compare_type.hpp
|
||||
|
||||
# GUI Source Code
|
||||
aircraft_gui.cpp
|
||||
@@ -274,22 +379,28 @@ airport_gui.cpp
|
||||
autoreplace_gui.cpp
|
||||
bridge_gui.cpp
|
||||
build_vehicle_gui.cpp
|
||||
cheat_gui.cpp
|
||||
company_gui.cpp
|
||||
console_gui.cpp
|
||||
depot_gui.cpp
|
||||
dock_gui.cpp
|
||||
engine_gui.cpp
|
||||
genworld_gui.cpp
|
||||
graph_gui.cpp
|
||||
group_gui.cpp
|
||||
highscore_gui.cpp
|
||||
industry_gui.cpp
|
||||
intro_gui.cpp
|
||||
main_gui.cpp
|
||||
misc_gui.cpp
|
||||
music_gui.cpp
|
||||
network/network_chat_gui.cpp
|
||||
network/network_content_gui.cpp
|
||||
network/network_gui.cpp
|
||||
newgrf_gui.cpp
|
||||
news_gui.cpp
|
||||
order_gui.cpp
|
||||
player_gui.cpp
|
||||
osk_gui.cpp
|
||||
rail_gui.cpp
|
||||
road_gui.cpp
|
||||
roadveh_gui.cpp
|
||||
@@ -298,17 +409,28 @@ ship_gui.cpp
|
||||
signs_gui.cpp
|
||||
smallmap_gui.cpp
|
||||
station_gui.cpp
|
||||
statusbar_gui.cpp
|
||||
subsidy_gui.cpp
|
||||
terraform_gui.cpp
|
||||
timetable_gui.cpp
|
||||
toolbar_gui.cpp
|
||||
town_gui.cpp
|
||||
train_gui.cpp
|
||||
transparency_gui.cpp
|
||||
tree_gui.cpp
|
||||
vehicle_gui.cpp
|
||||
waypoint_gui.cpp
|
||||
|
||||
# Landscape
|
||||
# Widgets
|
||||
widgets/dropdown.cpp
|
||||
widgets/dropdown_func.h
|
||||
widgets/dropdown_type.h
|
||||
|
||||
# Command handlers
|
||||
aircraft_cmd.cpp
|
||||
autoreplace_cmd.cpp
|
||||
clear_cmd.cpp
|
||||
company_cmd.cpp
|
||||
disaster_cmd.cpp
|
||||
dummy_land.cpp
|
||||
group_cmd.cpp
|
||||
@@ -319,6 +441,7 @@ rail_cmd.cpp
|
||||
road_cmd.cpp
|
||||
roadveh_cmd.cpp
|
||||
ship_cmd.cpp
|
||||
signs_cmd.cpp
|
||||
station_cmd.cpp
|
||||
terraform_cmd.cpp
|
||||
timetable_cmd.cpp
|
||||
@@ -327,22 +450,60 @@ train_cmd.cpp
|
||||
tree_cmd.cpp
|
||||
tunnelbridge_cmd.cpp
|
||||
unmovable_cmd.cpp
|
||||
vehicle_cmd.cpp
|
||||
water_cmd.cpp
|
||||
waypoint_cmd.cpp
|
||||
|
||||
# Save/Load handlers
|
||||
saveload/afterload.cpp
|
||||
saveload/ai_sl.cpp
|
||||
saveload/animated_tile_sl.cpp
|
||||
saveload/autoreplace_sl.cpp
|
||||
saveload/cargopacket_sl.cpp
|
||||
saveload/cheat_sl.cpp
|
||||
saveload/company_sl.cpp
|
||||
saveload/depot_sl.cpp
|
||||
saveload/economy_sl.cpp
|
||||
saveload/engine_sl.cpp
|
||||
saveload/gamelog_sl.cpp
|
||||
saveload/group_sl.cpp
|
||||
saveload/industry_sl.cpp
|
||||
saveload/map_sl.cpp
|
||||
saveload/misc_sl.cpp
|
||||
saveload/newgrf_sl.cpp
|
||||
saveload/oldloader.cpp
|
||||
saveload/oldloader.h
|
||||
saveload/oldloader_sl.cpp
|
||||
saveload/order_sl.cpp
|
||||
saveload/saveload.cpp
|
||||
saveload/saveload.h
|
||||
saveload/saveload_internal.h
|
||||
saveload/signs_sl.cpp
|
||||
saveload/station_sl.cpp
|
||||
saveload/strings_sl.cpp
|
||||
saveload/subsidy_sl.cpp
|
||||
saveload/town_sl.cpp
|
||||
saveload/vehicle_sl.cpp
|
||||
saveload/waypoint_sl.cpp
|
||||
|
||||
# Tables
|
||||
table/ai_rail.h
|
||||
table/animcursors.h
|
||||
table/autorail.h
|
||||
table/bridge_land.h
|
||||
table/build_industry.h
|
||||
table/cargo_const.h
|
||||
table/clear_land.h
|
||||
table/control_codes.h
|
||||
table/elrail_data.h
|
||||
table/engines.h
|
||||
table/files.h
|
||||
table/genland.h
|
||||
table/industry_land.h
|
||||
table/landscape_sprite.h
|
||||
table/namegen.h
|
||||
table/palette_convert.h
|
||||
table/palettes.h
|
||||
table/railtypes.h
|
||||
table/road_land.h
|
||||
table/roadveh_movement.h
|
||||
table/sprites.h
|
||||
@@ -352,18 +513,185 @@ table/town_land.h
|
||||
table/track_land.h
|
||||
table/train_cmd.h
|
||||
table/tree_land.h
|
||||
table/unicode.h
|
||||
table/unmovable_land.h
|
||||
table/water_land.h
|
||||
|
||||
# AI Files
|
||||
ai/ai.cpp
|
||||
ai/trolly/build.cpp
|
||||
ai/default/default.cpp
|
||||
ai/trolly/pathfinder.cpp
|
||||
ai/trolly/shared.cpp
|
||||
ai/trolly/trolly.cpp
|
||||
# Script
|
||||
script/squirrel.cpp
|
||||
script/squirrel.hpp
|
||||
script/squirrel_class.hpp
|
||||
script/squirrel_helper.hpp
|
||||
script/squirrel_helper_type.hpp
|
||||
script/squirrel_std.cpp
|
||||
script/squirrel_std.hpp
|
||||
|
||||
# Squirrel
|
||||
3rdparty/squirrel/squirrel/sqapi.cpp
|
||||
3rdparty/squirrel/squirrel/sqbaselib.cpp
|
||||
3rdparty/squirrel/squirrel/sqclass.cpp
|
||||
3rdparty/squirrel/squirrel/sqcompiler.cpp
|
||||
3rdparty/squirrel/squirrel/sqdebug.cpp
|
||||
3rdparty/squirrel/squirrel/sqfuncstate.cpp
|
||||
3rdparty/squirrel/squirrel/sqlexer.cpp
|
||||
3rdparty/squirrel/squirrel/sqmem.cpp
|
||||
3rdparty/squirrel/squirrel/sqobject.cpp
|
||||
3rdparty/squirrel/squirrel/sqstate.cpp
|
||||
3rdparty/squirrel/sqstdlib/sqstdaux.cpp
|
||||
3rdparty/squirrel/squirrel/sqtable.cpp
|
||||
3rdparty/squirrel/squirrel/sqvm.cpp
|
||||
|
||||
# Squirrel headers
|
||||
3rdparty/squirrel/squirrel/sqarray.h
|
||||
3rdparty/squirrel/squirrel/sqclass.h
|
||||
3rdparty/squirrel/squirrel/sqclosure.h
|
||||
3rdparty/squirrel/squirrel/sqcompiler.h
|
||||
3rdparty/squirrel/squirrel/sqfuncproto.h
|
||||
3rdparty/squirrel/squirrel/sqfuncstate.h
|
||||
3rdparty/squirrel/squirrel/sqlexer.h
|
||||
3rdparty/squirrel/squirrel/sqobject.h
|
||||
3rdparty/squirrel/squirrel/sqopcodes.h
|
||||
3rdparty/squirrel/squirrel/sqpcheader.h
|
||||
3rdparty/squirrel/squirrel/sqstate.h
|
||||
3rdparty/squirrel/include/sqstdaux.h
|
||||
3rdparty/squirrel/include/sqstdblob.h
|
||||
3rdparty/squirrel/sqstdlib/sqstdblobimpl.h
|
||||
3rdparty/squirrel/include/sqstdio.h
|
||||
3rdparty/squirrel/include/sqstdmath.h
|
||||
3rdparty/squirrel/sqstdlib/sqstdstream.h
|
||||
3rdparty/squirrel/include/sqstdstring.h
|
||||
3rdparty/squirrel/include/sqstdsystem.h
|
||||
3rdparty/squirrel/squirrel/sqstring.h
|
||||
3rdparty/squirrel/squirrel/sqtable.h
|
||||
3rdparty/squirrel/include/squirrel.h
|
||||
3rdparty/squirrel/squirrel/squserdata.h
|
||||
3rdparty/squirrel/squirrel/squtils.h
|
||||
3rdparty/squirrel/squirrel/sqvm.h
|
||||
|
||||
# AI Core
|
||||
ai/ai.hpp
|
||||
ai/ai_config.cpp
|
||||
ai/ai_config.hpp
|
||||
ai/ai_core.cpp
|
||||
ai/ai_gui.cpp
|
||||
ai/ai_gui.hpp
|
||||
ai/ai_info.cpp
|
||||
ai/ai_info.hpp
|
||||
ai/ai_info_dummy.cpp
|
||||
ai/ai_instance.cpp
|
||||
ai/ai_instance.hpp
|
||||
ai/ai_scanner.cpp
|
||||
ai/ai_scanner.hpp
|
||||
ai/ai_storage.hpp
|
||||
|
||||
# AI API
|
||||
ai/api/ai_abstractlist.hpp
|
||||
ai/api/ai_accounting.hpp
|
||||
ai/api/ai_airport.hpp
|
||||
ai/api/ai_base.hpp
|
||||
ai/api/ai_bridge.hpp
|
||||
ai/api/ai_bridgelist.hpp
|
||||
ai/api/ai_cargo.hpp
|
||||
ai/api/ai_cargolist.hpp
|
||||
ai/api/ai_company.hpp
|
||||
ai/api/ai_controller.hpp
|
||||
ai/api/ai_date.hpp
|
||||
ai/api/ai_depotlist.hpp
|
||||
ai/api/ai_engine.hpp
|
||||
ai/api/ai_enginelist.hpp
|
||||
ai/api/ai_error.hpp
|
||||
ai/api/ai_event.hpp
|
||||
ai/api/ai_event_types.hpp
|
||||
ai/api/ai_execmode.hpp
|
||||
ai/api/ai_gamesettings.hpp
|
||||
ai/api/ai_group.hpp
|
||||
ai/api/ai_grouplist.hpp
|
||||
ai/api/ai_industry.hpp
|
||||
ai/api/ai_industrylist.hpp
|
||||
ai/api/ai_industrytype.hpp
|
||||
ai/api/ai_industrytypelist.hpp
|
||||
ai/api/ai_list.hpp
|
||||
ai/api/ai_log.hpp
|
||||
ai/api/ai_map.hpp
|
||||
ai/api/ai_marine.hpp
|
||||
ai/api/ai_object.hpp
|
||||
ai/api/ai_order.hpp
|
||||
ai/api/ai_rail.hpp
|
||||
ai/api/ai_railtypelist.hpp
|
||||
ai/api/ai_road.hpp
|
||||
ai/api/ai_sign.hpp
|
||||
ai/api/ai_signlist.hpp
|
||||
ai/api/ai_station.hpp
|
||||
ai/api/ai_stationlist.hpp
|
||||
ai/api/ai_subsidy.hpp
|
||||
ai/api/ai_subsidylist.hpp
|
||||
ai/api/ai_testmode.hpp
|
||||
ai/api/ai_tile.hpp
|
||||
ai/api/ai_tilelist.hpp
|
||||
ai/api/ai_town.hpp
|
||||
ai/api/ai_townlist.hpp
|
||||
ai/api/ai_tunnel.hpp
|
||||
ai/api/ai_types.hpp
|
||||
ai/api/ai_vehicle.hpp
|
||||
ai/api/ai_vehiclelist.hpp
|
||||
ai/api/ai_waypoint.hpp
|
||||
ai/api/ai_waypointlist.hpp
|
||||
|
||||
# AI API Implementation
|
||||
ai/api/ai_abstractlist.cpp
|
||||
ai/api/ai_accounting.cpp
|
||||
ai/api/ai_airport.cpp
|
||||
ai/api/ai_base.cpp
|
||||
ai/api/ai_bridge.cpp
|
||||
ai/api/ai_bridgelist.cpp
|
||||
ai/api/ai_cargo.cpp
|
||||
ai/api/ai_cargolist.cpp
|
||||
ai/api/ai_company.cpp
|
||||
ai/api/ai_controller.cpp
|
||||
ai/api/ai_date.cpp
|
||||
ai/api/ai_depotlist.cpp
|
||||
ai/api/ai_engine.cpp
|
||||
ai/api/ai_enginelist.cpp
|
||||
ai/api/ai_error.cpp
|
||||
ai/api/ai_event.cpp
|
||||
ai/api/ai_event_types.cpp
|
||||
ai/api/ai_execmode.cpp
|
||||
ai/api/ai_gamesettings.cpp
|
||||
ai/api/ai_group.cpp
|
||||
ai/api/ai_grouplist.cpp
|
||||
ai/api/ai_industry.cpp
|
||||
ai/api/ai_industrylist.cpp
|
||||
ai/api/ai_industrytype.cpp
|
||||
ai/api/ai_industrytypelist.cpp
|
||||
ai/api/ai_list.cpp
|
||||
ai/api/ai_log.cpp
|
||||
ai/api/ai_map.cpp
|
||||
ai/api/ai_marine.cpp
|
||||
ai/api/ai_object.cpp
|
||||
ai/api/ai_order.cpp
|
||||
ai/api/ai_rail.cpp
|
||||
ai/api/ai_railtypelist.cpp
|
||||
ai/api/ai_road.cpp
|
||||
ai/api/ai_sign.cpp
|
||||
ai/api/ai_signlist.cpp
|
||||
ai/api/ai_station.cpp
|
||||
ai/api/ai_stationlist.cpp
|
||||
ai/api/ai_subsidy.cpp
|
||||
ai/api/ai_subsidylist.cpp
|
||||
ai/api/ai_testmode.cpp
|
||||
ai/api/ai_tile.cpp
|
||||
ai/api/ai_tilelist.cpp
|
||||
ai/api/ai_town.cpp
|
||||
ai/api/ai_townlist.cpp
|
||||
ai/api/ai_tunnel.cpp
|
||||
ai/api/ai_vehicle.cpp
|
||||
ai/api/ai_vehiclelist.cpp
|
||||
ai/api/ai_waypoint.cpp
|
||||
ai/api/ai_waypointlist.cpp
|
||||
|
||||
# Blitters
|
||||
#if DEDICATED
|
||||
#else
|
||||
blitter/32bpp_anim.cpp
|
||||
blitter/32bpp_anim.hpp
|
||||
blitter/32bpp_base.cpp
|
||||
@@ -380,6 +708,7 @@ blitter/8bpp_optimized.cpp
|
||||
blitter/8bpp_optimized.hpp
|
||||
blitter/8bpp_simple.cpp
|
||||
blitter/8bpp_simple.hpp
|
||||
#end
|
||||
blitter/base.hpp
|
||||
blitter/factory.hpp
|
||||
blitter/null.cpp
|
||||
@@ -441,6 +770,7 @@ water_map.h
|
||||
misc/array.hpp
|
||||
misc/binaryheap.hpp
|
||||
misc/blob.hpp
|
||||
misc/countedobj.cpp
|
||||
misc/countedptr.hpp
|
||||
misc/crc32.hpp
|
||||
misc/dbg_helpers.cpp
|
||||
@@ -451,22 +781,30 @@ misc/str.hpp
|
||||
misc/strapi.hpp
|
||||
|
||||
# Network Core
|
||||
network/core/address.cpp
|
||||
network/core/address.h
|
||||
network/core/config.h
|
||||
network/core/core.cpp
|
||||
network/core/core.h
|
||||
network/core/game.h
|
||||
network/core/host.cpp
|
||||
network/core/host.h
|
||||
network/core/os_abstraction.h
|
||||
network/core/packet.cpp
|
||||
network/core/packet.h
|
||||
network/core/tcp.cpp
|
||||
network/core/tcp.h
|
||||
network/core/tcp_connect.cpp
|
||||
network/core/tcp_content.cpp
|
||||
network/core/tcp_content.h
|
||||
network/core/tcp_game.cpp
|
||||
network/core/tcp_game.h
|
||||
network/core/udp.cpp
|
||||
network/core/udp.h
|
||||
|
||||
# YAPF
|
||||
yapf/follow_track.hpp
|
||||
yapf/nodelist.hpp
|
||||
yapf/track_dir.hpp
|
||||
yapf/yapf.h
|
||||
yapf/yapf.hpp
|
||||
yapf/yapf_base.hpp
|
||||
@@ -480,12 +818,16 @@ yapf/yapf_node_rail.hpp
|
||||
yapf/yapf_node_road.hpp
|
||||
yapf/yapf_rail.cpp
|
||||
yapf/yapf_road.cpp
|
||||
yapf/yapf_settings.h
|
||||
yapf/yapf_ship.cpp
|
||||
|
||||
# Video
|
||||
video/dedicated_v.cpp
|
||||
video/null_v.cpp
|
||||
#if DEDICATED
|
||||
#else
|
||||
#if ALLEGRO
|
||||
video/allegro_v.cpp
|
||||
#end
|
||||
#if SDL
|
||||
video/sdl_v.cpp
|
||||
#end
|
||||
@@ -495,12 +837,18 @@ video/null_v.cpp
|
||||
#if WINCE
|
||||
video/win32_v.cpp
|
||||
#end
|
||||
#end
|
||||
|
||||
# Music
|
||||
music/null_m.cpp
|
||||
#if DEDICATED
|
||||
#else
|
||||
#if ALLEGRO
|
||||
music/allegro_m.cpp
|
||||
#end
|
||||
#if DIRECTMUSIC
|
||||
music/dmusic.cpp
|
||||
#end
|
||||
music/null_m.cpp
|
||||
#if WIN32
|
||||
music/win32_m.cpp
|
||||
#else
|
||||
@@ -508,7 +856,10 @@ music/null_m.cpp
|
||||
#else
|
||||
#if PSP
|
||||
#else
|
||||
music/extmidi.cpp
|
||||
#if DOS
|
||||
#else
|
||||
music/extmidi.cpp
|
||||
#end
|
||||
#end
|
||||
#end
|
||||
#end
|
||||
@@ -518,15 +869,22 @@ music/null_m.cpp
|
||||
#if LIBTIMIDITY
|
||||
music/libtimidity.cpp
|
||||
#end
|
||||
#end
|
||||
|
||||
# Sound
|
||||
sound/null_s.cpp
|
||||
#if DEDICATED
|
||||
#else
|
||||
#if ALLEGRO
|
||||
sound/allegro_s.cpp
|
||||
#end
|
||||
#if SDL
|
||||
sound/sdl_s.cpp
|
||||
#end
|
||||
#if WIN32
|
||||
sound/win32_s.cpp
|
||||
#end
|
||||
#end
|
||||
|
||||
#if OSX
|
||||
# OSX Files
|
||||
|
||||
Vendored
+41
@@ -0,0 +1,41 @@
|
||||
Squirrel 2.2.1 stable
|
||||
--------------------------------------------------------
|
||||
What is in this distribution?
|
||||
|
||||
squirrel
|
||||
static library implementing the compiler and interpreter of the language
|
||||
|
||||
sqstdlib
|
||||
the standard utility libraries
|
||||
|
||||
sq
|
||||
stand alone interpreter
|
||||
|
||||
doc
|
||||
The manual
|
||||
|
||||
etc
|
||||
a minimalistic embedding sample
|
||||
|
||||
samples
|
||||
samples programs
|
||||
|
||||
|
||||
HOW TO COMPILE
|
||||
---------------------------------------------------------
|
||||
GCC USERS
|
||||
.........................................................
|
||||
There is a very simple makefile that compiles all libraries and exes
|
||||
from the root of the project run 'make'
|
||||
|
||||
for 32 bits systems
|
||||
|
||||
$ make
|
||||
|
||||
for 64 bits systems
|
||||
|
||||
$ make sq64
|
||||
|
||||
VISUAL C++ USERS
|
||||
.........................................................
|
||||
Open squirrel.dsw from the root project directory and build(dho!)
|
||||
Vendored
+29
@@ -0,0 +1,29 @@
|
||||
Copyright (c) 2003-2008 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.
|
||||
-----------------------------------------------------
|
||||
END OF COPYRIGHT
|
||||
Vendored
+327
@@ -0,0 +1,327 @@
|
||||
***version 2.2.2 stable***
|
||||
-fixed some behaviour inconsistencies in thread.call() and thread.wakeup() (thx Mr.Accident)
|
||||
-fixed coroutine error propagation
|
||||
-fixed lingering return value from native function (thx Tom Leonard)
|
||||
-fixed a bug if array.sort() is given a bad sort function (thx Tom Leonard)
|
||||
-fixed some minor api bug
|
||||
-added sq_arrayremove() and sq_arrayinsert()
|
||||
|
||||
***2008-05-16 ***
|
||||
***version 2.2.1 stable***
|
||||
-fixed a tailcall bug
|
||||
|
||||
***2008-02-17 ***
|
||||
***version 2.2 stable ***
|
||||
-added _newslot metamethod in classes
|
||||
-added enums added constants
|
||||
-added sq_pushconsttable, sq_setconsttable
|
||||
-added default param
|
||||
-added octal literals(thx Dinosaur)
|
||||
-fixed debug hook, 'calls' and 'returns' are properly notified in the same number.
|
||||
-fixed a coroutine bug
|
||||
|
||||
***2007-07-29 ***
|
||||
***version 2.1.2 stable***
|
||||
-new behaviour for generators iteration using foreach
|
||||
now when a generator is iterated by foreach the value returned by a 'return val' statement
|
||||
will terminate the iteration but will not be returned as foreach iteration
|
||||
-added sq_setclassudsize()
|
||||
-added sq_clear()
|
||||
-added table.clear(), array.clear()
|
||||
-fixed sq_cmp() (thx jyuill)
|
||||
-fixed minor bugs
|
||||
|
||||
***2006-08-21 ***
|
||||
***version 2.1.1 stable***
|
||||
-vm refactoring
|
||||
-optimized internal function memory layout
|
||||
-new global symbol _version_ (is the version string)
|
||||
-code size optimization for float literals(on 32bits float builts)
|
||||
-now the raw ref API(sq_addref etc...) is fully reentrant.
|
||||
-fixed a bug in sq_getdelegate() now pushes null if the object doesn't have a delegate(thx MatzeB)
|
||||
-improved C reference performances in NO_GARBAGE_COLLECTOR builds
|
||||
-sq_getlocal() now enumerates also outer values.
|
||||
-fixed regexp library for GCC users.
|
||||
|
||||
***2006-03-19 ***
|
||||
***version 2.1 stable***
|
||||
-added static class fields, new keyword static
|
||||
-added 64bits architecture support
|
||||
-added global slot _intsize_ int the base lib to recognize 32bits and 64bits builds
|
||||
-added functions with fixed environment, closure.bindenv() built-in function
|
||||
-all types except userdata and null implement the tostring() method
|
||||
-string concatenation now invokes metamethod _tostring
|
||||
-new metamethods for class objects _newmember and _inherited
|
||||
-sq_call() sq_resume() sq_wakeupvm() have a new signature
|
||||
-new C referencing implementation(scales more with the amount of references)
|
||||
-refactored hash table
|
||||
-new api functions sq_newslot(),sq_tobool(),sq_getbase(), sq_instanceof(), sq_bindenv()
|
||||
-the api func sq_createslot was deprecated but still supported in form of C macro on top of sq_newslot
|
||||
-sq_setreleasehook() now also works for classes
|
||||
-stream.readstr() and stream.writestr() have been deprecated(this affects file and blob)
|
||||
-fixed squirrel.h undeclared api calls
|
||||
-fixed few minor bugs
|
||||
-SQChar is now defined as wchar_t
|
||||
-removed warning when building with -Wall -pedantic for GCC users
|
||||
-added new std io function writeclosuretofile()
|
||||
-added new std string functions strip(),rstrip(),lstrip() and split()
|
||||
-regular expressions operators (+,*) now have more POSIX greedyness behaviour
|
||||
-class constructors are now invoked as normal functions
|
||||
|
||||
***2005-10-02 ***
|
||||
***version 2.0.5 stable***
|
||||
-fixed some 64bits incompatibilities (thx sarge)
|
||||
-fixed minor bug in the stdlib format() function (thx Rick)
|
||||
-fixed a bug in dofile() that was preventing to compile empty files
|
||||
-added new API sq_poptop() & sq_getfreevariable()
|
||||
-some performance improvements
|
||||
|
||||
***2005-08-14 ***
|
||||
***version 2.0.4 stable***
|
||||
-weak references and related API calls
|
||||
-added sq_objtobool()
|
||||
-class instances memory policies improved(1 mem allocation for the whole instance)
|
||||
-typetags are now declared as SQUserPointer instead of unsigned int
|
||||
-first pass for 64bits compatibility
|
||||
-fixed minor bug in the stdio stream
|
||||
-fixed a bug in format()
|
||||
-fixed bug in string.tointeger() and string.tofloat()
|
||||
|
||||
***2005-06-24 ***
|
||||
***version 2.0.3 stable***
|
||||
-dofile() and loadfile() in the iolib now can decode ASCII, UTF8 files UCS2 big-endian and little-endian
|
||||
-sq_setparamscheck() : now typemesk can check for null
|
||||
-added string escape sequence \xhhhh
|
||||
-fixed some C++ standard incompatibilities
|
||||
|
||||
***2005-05-15 ***
|
||||
***version 2.0.2 stable***
|
||||
-performances improvements (expecially for GCC users)
|
||||
-removed all dependencies from C++ exception handling
|
||||
-various bugfixes
|
||||
|
||||
***2005-04-12 ***
|
||||
***version 2.0.1 stable***
|
||||
-various bugfixes
|
||||
-sq_setparamscheck() now allows spaces in the typemask
|
||||
|
||||
***2005-04-03 ***
|
||||
***version 2.0 stable***
|
||||
-added API sq_gettypetag()
|
||||
-added built-in function to the bool type(tointeger, tostring etc...)
|
||||
|
||||
***2005-02-27 ***
|
||||
***version 2.0 release candidate 1(RC 1)***
|
||||
-added API sq_reseterror()
|
||||
-modified sq_release()
|
||||
-now class instances can be cloned
|
||||
-various bufixes
|
||||
|
||||
***2005-01-26 ***
|
||||
***version 2.0 beta 1***
|
||||
-added bool type
|
||||
-class properties can be redefined in a derived class
|
||||
-added ops *= /= and %=
|
||||
-new syntax for class attributes declaration </ and /> instead of ( and )
|
||||
-increased the max number of literals per function from 65535 to 16777215
|
||||
-now free variables have proper lexical scoping
|
||||
-added API sq_createinstance(), sq_pushbool(), sq_getbool()
|
||||
-added built-in function type()
|
||||
-added built-in function obj.rawin(key) in table,class and instance
|
||||
-sq_rawget() and sq_rawset() now work also on classes and instances
|
||||
-the VM no longer uses C++ exception handling (more suitable for embedded devices)
|
||||
-various bufixes
|
||||
|
||||
***2004-12-21 ***
|
||||
***version 2.0 alpha 2***
|
||||
-globals scoping changed, now if :: is omitted the VM automatically falls back on the root table
|
||||
-various bufixes
|
||||
-added class level attributes
|
||||
|
||||
***2004-12-12 ***
|
||||
***version 2.0 alpha 1***
|
||||
-codebase branch from version 1.x
|
||||
-added classes
|
||||
-added functions with variable number of parameters(vargc & vargv and the ...)
|
||||
-0 and 0.0 are now considered 'false' by all conditional statements(if,while,for,?,do-while)
|
||||
-added new api functions sq_newclass() sq_setinstanceup() sq_getinstanceup() sq_getattributes() sq_setattributes()
|
||||
-modified api sq_settypetag()
|
||||
|
||||
***2004-11-01 ***
|
||||
***version 1.0 stable***
|
||||
-fixed some minor bug
|
||||
-improoved operator 'delete' performances
|
||||
-added scientific notation for float numbers( eg. 2.e16 or 2.e-2)
|
||||
|
||||
***2004-08-30 ***
|
||||
***version 1.0 release candidate 2(RC 2)***
|
||||
-fixed bug in the vm(thx Pierre Renaux)
|
||||
-fixed bug in the optimizer(thx Pierre Renaux)
|
||||
-fixed some bug in the documentation(thx JD)
|
||||
-added new api functions for raw object handling
|
||||
-removed nested multiline comments
|
||||
-reduced memory footprint in C references
|
||||
|
||||
***2004-08-23 ***
|
||||
***version 1.0 release candidate 1(RC 1)***
|
||||
-fixed division by zero
|
||||
-the 'in' operator and obj.rawget() do not query the default delegate anymore
|
||||
-added function sq_getprintfunc()
|
||||
-added new standard library 'auxlib'(implements default error handlers)
|
||||
|
||||
***2004-07-12 ***
|
||||
***version 1.0 beta 4***
|
||||
-fixed a bug in the integer.tochar() built-in method
|
||||
-fixed unary minus operator
|
||||
-fixed bug in dofile()
|
||||
-fixed inconsistency between != and == operators(on float/integer comparison)
|
||||
-added javascript style unsigned right shift operator '>>>'
|
||||
-added array(size) constructor built-in function
|
||||
-array.resize(size,[fill]) built-in function accepts an optional 'fill' value
|
||||
-improved debug API, added sq_getclosureinfo() and sq_setnativeclosurename()
|
||||
|
||||
***2004-05-23 ***
|
||||
***version 1.0 beta 3***
|
||||
-minor vm bug fixes
|
||||
-string allocation is now faster
|
||||
-tables and array memory usage is now less conservative(they shrink)
|
||||
-added regular expression routines in the standard library
|
||||
-The 'c' expression now accepts only 1 character(thx irbrian)
|
||||
-multiline strings <[ ]> have been substituted with C# style verbatim strings (eg. @"string")
|
||||
-added new keyword 'parent' for accessing the delegate of tables and unserdata
|
||||
-The metamethod '_clone' has been renamed '_cloned'
|
||||
-the _delslot metamethod's behaviour and prototype have been changed
|
||||
-new default function in the integer and float object 'tochar()'
|
||||
-the built-in function chcode2string has been removed
|
||||
-the default method [table].getdelegate() has been removed
|
||||
-new api sq_rawdeleteslot()
|
||||
-new table built-in method rawdelete(key)
|
||||
-the dynamic mudule loading has been removed from the standard distribution
|
||||
-some optimizations in the VM
|
||||
|
||||
***2004-04-21 ***
|
||||
***version 1.0 beta 2***
|
||||
-minor compiler/parser bug fixes
|
||||
-sq_newclosure has a different prototype, the "paramscheck" of paramter has been moved to the new function sq_setparamscheck()
|
||||
-sq_setparamscheck allows to add automatic parameters type checking in native closures
|
||||
-sq_compile() lost the lineinfo parameter
|
||||
-new api sq_enabledebuginfo() globally sets compiler's debug info generation
|
||||
-added consistency check on bytecode serialization
|
||||
-fixed += operator, now works on strings like +
|
||||
-added global slot in the base lib _charsize_ to recognize unicode builds from ascii builds runtime
|
||||
-added registry table
|
||||
-new api call sq_pushregistrytable()
|
||||
-added type tag to the userdata type sq_settypetag()
|
||||
-sq_getuserdata now queries the userdata typetag
|
||||
-the built in function collect_garbage() as been renamed collectgarbage() for consistency reasons
|
||||
-new standard libraries(sqlibs are now obsolete)
|
||||
|
||||
***2004-02-20 ***
|
||||
***version 1.0 beta 1***
|
||||
-fixed a bug in the compiler (thanks Martin Kofler)
|
||||
-fixed bug in the switch case statement
|
||||
-fixed the _unm metamethod
|
||||
-fixed minor bugs in the API
|
||||
-fixed automatic stack resizing
|
||||
-first beta version
|
||||
first pass code clean up in the VM and base lib
|
||||
first pass code coverege test has been done on VM and built-in lib
|
||||
-new VM creation API sq_open() sq_close() (sq_newvm and sq_releasevm are now obsolete)
|
||||
-new api allows to specifiy a "print" function to output text(sq_printfunc)
|
||||
-added some small optimizations
|
||||
-new cooperative multi-threading capabilities in the base library(coroutines), VMs are now a built in type("thread")
|
||||
-new built in functions have been added for manipulating the new "thread" type
|
||||
-friend virtual machines share the same root table, error handler and debug hook by default
|
||||
-new compile time options
|
||||
|
||||
***2004-01-19 ***
|
||||
***version 0.9 alpha***
|
||||
-fixed a garbage collection bug
|
||||
-fixed some API bugs(thanks to Joshua Jensen)
|
||||
-fixed tail calls (in the version 0.8 the tail call optimization was erroneously disabled)
|
||||
-new function parameters semantic, now passing a wrong number of parameters generates an exception
|
||||
-native closures have now a built in parameter number checking
|
||||
-sq_rawget and sq_rawset now work also on arrays
|
||||
-sq_getsize now woks also on userdata
|
||||
-the userdata release hook prototype is changed(now passes the size of the userdata)
|
||||
-the lexer reader function now returns an integer instead of a char that allows better error checking on the input(thx Joshua Jensen)
|
||||
-faster compiler
|
||||
-try/catch blocks do not cause any runtime memory allocation anymore
|
||||
|
||||
***2003-12-06 ***
|
||||
***version 0.8 alpha***
|
||||
-fixed a bug that was preventing to have callable userdata throught the metamethod _call
|
||||
-fixed a garbage collection bug
|
||||
-fixed == operator now can compare correctly different types
|
||||
-new built in method getstackinfos(level)
|
||||
-improoved line informations precision for the debug hook
|
||||
-new api call sq_compilebuffer()
|
||||
-new built-in api function compilestring()
|
||||
-new syntactic sugar for function declarations inside tables
|
||||
-the debug API has been finalized
|
||||
|
||||
***2003-11-17 ***
|
||||
***version 0.7 alpha***
|
||||
-fixed critical bug SQInteger the tail call system
|
||||
-fixed bug in the continue statement code generation
|
||||
-fixed func call param issue(thanks to Rewoonenco Andrew)
|
||||
-added _delslot metamethod(thanks to Rewoonenco Andrew)
|
||||
-new multiline string expression ( delimited by <[ and ]> )
|
||||
-normal strings ("") do not allow embedded new line anymore
|
||||
-reduced vm memory footprint(C refs are shared between friend VMs)
|
||||
-new api method sq_deleteslot()
|
||||
-new debug hook event 'r' is triggered when a function returns
|
||||
|
||||
***2003-11-04 ***
|
||||
***version 0.6 alpha***
|
||||
-fixed switch statement(was executing the default case after a break)
|
||||
-sq_call() doesn't pop the closure (just the params)
|
||||
-the vm execution can be suspended from the C API anytime (micro-threads)
|
||||
-new api calls sq_suspendvm() sq_wakeupvm() sq_getvmstate() and sq_reservestack()
|
||||
|
||||
***2003-10-13 ***
|
||||
***version 0.5 alpha***
|
||||
-fixed some minor bug
|
||||
-tested with non ASCII identifiers in unicode mode(I've tried chinese chars)
|
||||
-added built-in function string.find()
|
||||
-the built-in function array.sort() optionally accepts a cmp(a,b) function
|
||||
-the debug hook function now has a new prototype debug_hook(event_type,sourcefile,line,functionname)
|
||||
-fixed some debug info imprecision
|
||||
|
||||
***2003-10-01 ***
|
||||
***version 0.4 alpha***
|
||||
-faster VM
|
||||
-sq_call will pop arguments and closure also in case of failure
|
||||
-fixed a bug in sq_remove
|
||||
-now the VM detects delegation cycles(and throws an exception)
|
||||
-new operators ++ and --
|
||||
-new operator ',' comma operator
|
||||
-fixed some expression precedence issue
|
||||
-fixed bug in sq_arraypop
|
||||
|
||||
***2003-09-15 ***
|
||||
***version 0.3 alpha***
|
||||
-fixed a bug in array::insert()
|
||||
-optional Unicode core(define SQUNICODE or _UNICODE on Win32)
|
||||
-sq_compiler uses a new reader function SQLEXREADFUNC
|
||||
-the debug hook passes 'l' instead of 'line' for line callbacks
|
||||
and 'c' instead of 'call' for call callbacks
|
||||
-new array.extend() bulit-in function
|
||||
-new API sq_clone()
|
||||
|
||||
***2003-09-10 ***
|
||||
***version 0.2 pre-alpha***
|
||||
-new completely reentrant VM (sq_open and sq_close are now obsolete)
|
||||
-sq_newvm() has a new prototype
|
||||
-allocators are now global and linked in the VM
|
||||
-_newslot meta method added
|
||||
-rawset creates a slot if doesn't exists
|
||||
-the compiler error callback pass the vm handle(thanks Pierre Renaux)
|
||||
-sq_setforeignptr() sq_getforeingptr() are now public
|
||||
-sq_resume() now is possible to resume generators from C
|
||||
-sq_getlasterror() retrieve the last thrown error
|
||||
-improved docs
|
||||
|
||||
***2003-09-06 ***
|
||||
***version 0.1 pre-alpha***
|
||||
first release
|
||||
Vendored
+23
@@ -0,0 +1,23 @@
|
||||
|
||||
SQUIRREL=.
|
||||
MAKE=make
|
||||
|
||||
sq32:
|
||||
cd squirrel; $(MAKE)
|
||||
cd sqstdlib; $(MAKE)
|
||||
cd sq; $(MAKE)
|
||||
|
||||
sqprof:
|
||||
cd squirrel; $(MAKE) sqprof
|
||||
cd sqstdlib; $(MAKE) sqprof
|
||||
cd sq; $(MAKE) sqprof
|
||||
|
||||
sq64:
|
||||
cd squirrel; $(MAKE) sq64
|
||||
cd sqstdlib; $(MAKE) sq64
|
||||
cd sq; $(MAKE) sq64
|
||||
|
||||
clean:
|
||||
$(MAKE) -C squirrel clean
|
||||
$(MAKE) -C sqstdlib clean
|
||||
$(MAKE) -C sq clean
|
||||
Vendored
+22
@@ -0,0 +1,22 @@
|
||||
The programming language SQUIRREL 2.2.1 stable
|
||||
|
||||
--------------------------------------------------
|
||||
The project has been compiled and run on Windows(Windows XP/2000 on Intel x86 Windows XP Pro on AMD x64) and
|
||||
Linux(Slackware 9.0 on Intel x86, Fedora Core 4 on AMD x64).
|
||||
|
||||
Has been tested with the following compilers:
|
||||
MS Visual C++ 6.0,7.0,7.1 and 8.0 (32 and 64bits)
|
||||
MinGW gcc 3.2 (mingw special 20020817-1)
|
||||
Cygnus gcc 3.2
|
||||
Linux gcc 3.2.3
|
||||
Linux gcc 4.0.0 (x86 64bits)
|
||||
|
||||
|
||||
Feedback and suggestions are appreciated
|
||||
project page - http://www.squirrel-lang.org
|
||||
community forums - http://www.squirrel-lang.org/Forums
|
||||
wiki - http://wiki.squirrel-lang.org
|
||||
author - alberto@demichelis.net
|
||||
|
||||
END OF README
|
||||
|
||||
Vendored
+4
@@ -0,0 +1,4 @@
|
||||
This folder contains a modified version of Squirrel that is tailored to meet
|
||||
the needs of OpenTTD.
|
||||
We have based this modification on the version as described in:
|
||||
include/squirrel.h
|
||||
BIN
Binary file not shown.
BIN
Binary file not shown.
Vendored
+63
@@ -0,0 +1,63 @@
|
||||
#include <stdarg.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include <squirrel.h>
|
||||
#include <sqstdio.h>
|
||||
#include <sqstdaux.h>
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#pragma comment (lib ,"squirrel.lib")
|
||||
#pragma comment (lib ,"sqstdlib.lib")
|
||||
#endif
|
||||
|
||||
#ifdef SQUNICODE
|
||||
#define scvprintf vwprintf
|
||||
#else
|
||||
#define scvprintf vprintf
|
||||
#endif
|
||||
|
||||
void printfunc(HSQUIRRELVM v, const SQChar *s, ...)
|
||||
{
|
||||
va_list arglist;
|
||||
va_start(arglist, s);
|
||||
scvprintf(s, arglist);
|
||||
va_end(arglist);
|
||||
}
|
||||
|
||||
void call_foo(HSQUIRRELVM v, int n,float f,const SQChar *s)
|
||||
{
|
||||
SQInteger top = sq_gettop(v); //saves the stack size before the call
|
||||
sq_pushroottable(v); //pushes the global table
|
||||
sq_pushstring(v,_SC("foo"),-1);
|
||||
if(SQ_SUCCEEDED(sq_get(v,-2))) { //gets the field 'foo' from the global table
|
||||
sq_pushroottable(v); //push the 'this' (in this case is the global table)
|
||||
sq_pushinteger(v,n);
|
||||
sq_pushfloat(v,f);
|
||||
sq_pushstring(v,s,-1);
|
||||
sq_call(v,4,SQFalse,SQTrue); //calls the function
|
||||
}
|
||||
sq_settop(v,top); //restores the original stack size
|
||||
}
|
||||
|
||||
int main(int argc, char* argv[])
|
||||
{
|
||||
HSQUIRRELVM v;
|
||||
v = sq_open(1024); // creates a VM with initial stack size 1024
|
||||
|
||||
//sq_pushroottable(v); //push the root table were to register the lib function
|
||||
//sqstd_register_iolib(v);
|
||||
sqstd_seterrorhandlers(v); //registers the default error handlers
|
||||
|
||||
sq_setprintfunc(v, printfunc); //sets the print function
|
||||
|
||||
sq_pushroottable(v); //push the root table(were the globals of the script will be stored)
|
||||
if(SQ_SUCCEEDED(sqstd_dofile(v, _SC("test.nut"), SQFalse, SQTrue))) // also prints syntax errors if any
|
||||
{
|
||||
call_foo(v,1,2.5,_SC("teststring"));
|
||||
}
|
||||
|
||||
sq_pop(v,1); //pops the root table
|
||||
sq_close(v);
|
||||
|
||||
return 0;
|
||||
}
|
||||
Vendored
+4
@@ -0,0 +1,4 @@
|
||||
function foo(i, f, s)
|
||||
{
|
||||
print("Called foo(), i="+i+", f="+f+", s='"+s+"'\n");
|
||||
}
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
/* see copyright notice in squirrel.h */
|
||||
#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
|
||||
|
||||
#endif /* _SQSTD_AUXLIB_H_ */
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
/* see copyright notice in squirrel.h */
|
||||
#ifndef _SQSTDBLOB_H_
|
||||
#define _SQSTDBLOB_H_
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
SQUIRREL_API SQUserPointer sqstd_createblob(HSQUIRRELVM v, SQInteger size);
|
||||
SQUIRREL_API SQRESULT sqstd_getblob(HSQUIRRELVM v,SQInteger idx,SQUserPointer *ptr);
|
||||
SQUIRREL_API SQInteger sqstd_getblobsize(HSQUIRRELVM v,SQInteger idx);
|
||||
|
||||
SQUIRREL_API SQRESULT sqstd_register_bloblib(HSQUIRRELVM v);
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /*extern "C"*/
|
||||
#endif
|
||||
|
||||
#endif /*_SQSTDBLOB_H_*/
|
||||
|
||||
+54
@@ -0,0 +1,54 @@
|
||||
/* see copyright notice in squirrel.h */
|
||||
#ifndef _SQSTDIO_H_
|
||||
#define _SQSTDIO_H_
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
#define SQSTD_STREAM_TYPE_TAG 0x80000000
|
||||
|
||||
struct SQStream {
|
||||
virtual ~SQStream() {}
|
||||
virtual SQInteger Read(void *buffer, SQInteger size) = 0;
|
||||
virtual SQInteger Write(void *buffer, SQInteger size) = 0;
|
||||
virtual SQInteger Flush() = 0;
|
||||
virtual SQInteger Tell() = 0;
|
||||
virtual SQInteger Len() = 0;
|
||||
virtual SQInteger Seek(SQInteger offset, SQInteger origin) = 0;
|
||||
virtual bool IsValid() = 0;
|
||||
virtual bool EOS() = 0;
|
||||
};
|
||||
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define SQ_SEEK_CUR 0
|
||||
#define SQ_SEEK_END 1
|
||||
#define SQ_SEEK_SET 2
|
||||
|
||||
typedef void* SQFILE;
|
||||
|
||||
SQUIRREL_API SQFILE sqstd_fopen(const SQChar *,const SQChar *);
|
||||
SQUIRREL_API SQInteger sqstd_fread(SQUserPointer, SQInteger, SQInteger, SQFILE);
|
||||
SQUIRREL_API SQInteger sqstd_fwrite(const SQUserPointer, SQInteger, SQInteger, SQFILE);
|
||||
SQUIRREL_API SQInteger sqstd_fseek(SQFILE , SQInteger , SQInteger);
|
||||
SQUIRREL_API SQInteger sqstd_ftell(SQFILE);
|
||||
SQUIRREL_API SQInteger sqstd_fflush(SQFILE);
|
||||
SQUIRREL_API SQInteger sqstd_fclose(SQFILE);
|
||||
SQUIRREL_API SQInteger sqstd_feof(SQFILE);
|
||||
|
||||
SQUIRREL_API SQRESULT sqstd_createfile(HSQUIRRELVM v, SQFILE file,SQBool own);
|
||||
SQUIRREL_API SQRESULT sqstd_getfile(HSQUIRRELVM v, SQInteger idx, SQFILE *file);
|
||||
|
||||
//compiler helpers
|
||||
SQUIRREL_API SQRESULT sqstd_loadfile(HSQUIRRELVM v,const SQChar *filename,SQBool printerror);
|
||||
SQUIRREL_API SQRESULT sqstd_dofile(HSQUIRRELVM v,const SQChar *filename,SQBool retval,SQBool printerror);
|
||||
SQUIRREL_API SQRESULT sqstd_writeclosuretofile(HSQUIRRELVM v,const SQChar *filename);
|
||||
|
||||
SQUIRREL_API SQRESULT sqstd_register_iolib(HSQUIRRELVM v);
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /*extern "C"*/
|
||||
#endif
|
||||
|
||||
#endif /*_SQSTDIO_H_*/
|
||||
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
/* see copyright notice in squirrel.h */
|
||||
#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
|
||||
|
||||
#endif /*_SQSTD_MATH_H_*/
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
/* see copyright notice in squirrel.h */
|
||||
#ifndef _SQSTD_STRING_H_
|
||||
#define _SQSTD_STRING_H_
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef unsigned int SQRexBool;
|
||||
typedef struct SQRex SQRex;
|
||||
|
||||
typedef struct {
|
||||
const SQChar *begin;
|
||||
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);
|
||||
|
||||
SQUIRREL_API SQRESULT sqstd_register_stringlib(HSQUIRRELVM v);
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /*extern "C"*/
|
||||
#endif
|
||||
|
||||
#endif /*_SQSTD_STRING_H_*/
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
/* see copyright notice in squirrel.h */
|
||||
#ifndef _SQSTD_SYSTEMLIB_H_
|
||||
#define _SQSTD_SYSTEMLIB_H_
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
SQUIRREL_API SQInteger sqstd_register_systemlib(HSQUIRRELVM v);
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /*extern "C"*/
|
||||
#endif
|
||||
|
||||
#endif /* _SQSTD_SYSTEMLIB_H_ */
|
||||
+451
@@ -0,0 +1,451 @@
|
||||
/*
|
||||
Copyright (c) 2003-2008 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
|
||||
|
||||
#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)) && !defined(_SQ64)
|
||||
#define _SQ64
|
||||
#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*/
|
||||
#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
|
||||
|
||||
|
||||
typedef float SQFloat;
|
||||
typedef void* SQUserPointer;
|
||||
typedef SQUnsignedInteger SQBool;
|
||||
typedef SQInteger SQRESULT;
|
||||
|
||||
#define SQTrue (1)
|
||||
#define SQFalse (0)
|
||||
|
||||
struct SQVM;
|
||||
struct SQTable;
|
||||
struct SQArray;
|
||||
struct SQString;
|
||||
struct SQClosure;
|
||||
struct SQGenerator;
|
||||
struct SQNativeClosure;
|
||||
struct SQUserData;
|
||||
struct SQFunctionProto;
|
||||
struct SQRefCounted;
|
||||
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 0xFF
|
||||
#endif
|
||||
|
||||
#define SQUIRREL_VERSION _SC("Squirrel 2.2.2 stable - With custom OpenTTD modifications")
|
||||
#define SQUIRREL_COPYRIGHT _SC("Copyright (C) 2003-2008 Alberto Demichelis")
|
||||
#define SQUIRREL_AUTHOR _SC("Alberto Demichelis")
|
||||
|
||||
#define SQ_VMSTATE_IDLE 0
|
||||
#define SQ_VMSTATE_RUNNING 1
|
||||
#define SQ_VMSTATE_SUSPENDED 2
|
||||
|
||||
#define SQUIRREL_EOB 0
|
||||
#define SQ_BYTECODE_STREAM_TAG 0xFAFA
|
||||
|
||||
#define SQOBJECT_REF_COUNTED 0x08000000
|
||||
#define SQOBJECT_NUMERIC 0x04000000
|
||||
#define SQOBJECT_DELEGABLE 0x02000000
|
||||
#define SQOBJECT_CANBEFALSE 0x01000000
|
||||
|
||||
#define SQ_MATCHTYPEMASKSTRING (-99999)
|
||||
|
||||
#define _RT_MASK 0x00FFFFFF
|
||||
#define _RAW_TYPE(type) (type&_RT_MASK)
|
||||
|
||||
#define _RT_NULL 0x00000001
|
||||
#define _RT_INTEGER 0x00000002
|
||||
#define _RT_FLOAT 0x00000004
|
||||
#define _RT_BOOL 0x00000008
|
||||
#define _RT_STRING 0x00000010
|
||||
#define _RT_TABLE 0x00000020
|
||||
#define _RT_ARRAY 0x00000040
|
||||
#define _RT_USERDATA 0x00000080
|
||||
#define _RT_CLOSURE 0x00000100
|
||||
#define _RT_NATIVECLOSURE 0x00000200
|
||||
#define _RT_GENERATOR 0x00000400
|
||||
#define _RT_USERPOINTER 0x00000800
|
||||
#define _RT_THREAD 0x00001000
|
||||
#define _RT_FUNCPROTO 0x00002000
|
||||
#define _RT_CLASS 0x00004000
|
||||
#define _RT_INSTANCE 0x00008000
|
||||
#define _RT_WEAKREF 0x00010000
|
||||
|
||||
typedef enum tagSQObjectType{
|
||||
OT_NULL = (_RT_NULL|SQOBJECT_CANBEFALSE),
|
||||
OT_INTEGER = (_RT_INTEGER|SQOBJECT_NUMERIC|SQOBJECT_CANBEFALSE),
|
||||
OT_FLOAT = (_RT_FLOAT|SQOBJECT_NUMERIC|SQOBJECT_CANBEFALSE),
|
||||
OT_BOOL = (_RT_BOOL|SQOBJECT_CANBEFALSE),
|
||||
OT_STRING = (_RT_STRING|SQOBJECT_REF_COUNTED),
|
||||
OT_TABLE = (_RT_TABLE|SQOBJECT_REF_COUNTED|SQOBJECT_DELEGABLE),
|
||||
OT_ARRAY = (_RT_ARRAY|SQOBJECT_REF_COUNTED),
|
||||
OT_USERDATA = (_RT_USERDATA|SQOBJECT_REF_COUNTED|SQOBJECT_DELEGABLE),
|
||||
OT_CLOSURE = (_RT_CLOSURE|SQOBJECT_REF_COUNTED),
|
||||
OT_NATIVECLOSURE = (_RT_NATIVECLOSURE|SQOBJECT_REF_COUNTED),
|
||||
OT_GENERATOR = (_RT_GENERATOR|SQOBJECT_REF_COUNTED),
|
||||
OT_USERPOINTER = _RT_USERPOINTER,
|
||||
OT_THREAD = (_RT_THREAD|SQOBJECT_REF_COUNTED) ,
|
||||
OT_FUNCPROTO = (_RT_FUNCPROTO|SQOBJECT_REF_COUNTED), //internal usage only
|
||||
OT_CLASS = (_RT_CLASS|SQOBJECT_REF_COUNTED),
|
||||
OT_INSTANCE = (_RT_INSTANCE|SQOBJECT_REF_COUNTED|SQOBJECT_DELEGABLE),
|
||||
OT_WEAKREF = (_RT_WEAKREF|SQOBJECT_REF_COUNTED)
|
||||
}SQObjectType;
|
||||
|
||||
#define ISREFCOUNTED(t) (t&SQOBJECT_REF_COUNTED)
|
||||
|
||||
|
||||
typedef union tagSQObjectValue
|
||||
{
|
||||
struct SQTable *pTable;
|
||||
struct SQArray *pArray;
|
||||
struct SQClosure *pClosure;
|
||||
struct SQGenerator *pGenerator;
|
||||
struct SQNativeClosure *pNativeClosure;
|
||||
struct SQString *pString;
|
||||
struct SQUserData *pUserData;
|
||||
SQInteger nInteger;
|
||||
SQFloat fFloat;
|
||||
SQUserPointer pUserPointer;
|
||||
struct SQFunctionProto *pFunctionProto;
|
||||
struct SQRefCounted *pRefCounted;
|
||||
struct SQDelegable *pDelegable;
|
||||
struct SQVM *pThread;
|
||||
struct SQClass *pClass;
|
||||
struct SQInstance *pInstance;
|
||||
struct SQWeakRef *pWeakRef;
|
||||
}SQObjectValue;
|
||||
|
||||
|
||||
typedef struct tagSQObject
|
||||
{
|
||||
SQObjectType _type;
|
||||
SQObjectValue _unVal;
|
||||
}SQObject;
|
||||
|
||||
typedef struct tagSQStackInfos{
|
||||
const SQChar* funcname;
|
||||
const SQChar* source;
|
||||
SQInteger line;
|
||||
}SQStackInfos;
|
||||
|
||||
typedef struct SQVM* HSQUIRRELVM;
|
||||
typedef SQObject HSQOBJECT;
|
||||
typedef SQInteger (*SQFUNCTION)(HSQUIRRELVM);
|
||||
typedef SQInteger (*SQRELEASEHOOK)(SQUserPointer,SQInteger size);
|
||||
typedef void (*SQCOMPILERERROR)(HSQUIRRELVM,const SQChar * /*desc*/,const SQChar * /*source*/,SQInteger /*line*/,SQInteger /*column*/);
|
||||
typedef void (*SQPRINTFUNCTION)(HSQUIRRELVM,const SQChar * ,...);
|
||||
|
||||
typedef SQInteger (*SQWRITEFUNC)(SQUserPointer,SQUserPointer,SQInteger);
|
||||
typedef SQInteger (*SQREADFUNC)(SQUserPointer,SQUserPointer,SQInteger);
|
||||
|
||||
typedef SQInteger (*SQLEXREADFUNC)(SQUserPointer);
|
||||
|
||||
typedef struct tagSQRegFunction{
|
||||
const SQChar *name;
|
||||
SQFUNCTION f;
|
||||
SQInteger nparamscheck;
|
||||
const SQChar *typemask;
|
||||
}SQRegFunction;
|
||||
|
||||
/*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 SQRESULT sq_wakeupvm(HSQUIRRELVM v,SQBool resumedret,SQBool retval,SQBool raiseerror);
|
||||
SQUIRREL_API SQInteger sq_getvmstate(HSQUIRRELVM v);
|
||||
|
||||
/*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);
|
||||
|
||||
/*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);
|
||||
|
||||
/*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_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);
|
||||
|
||||
/*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);
|
||||
|
||||
/*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);
|
||||
|
||||
/*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);
|
||||
|
||||
/*GC*/
|
||||
SQUIRREL_API 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);
|
||||
|
||||
/*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);
|
||||
|
||||
/*debug*/
|
||||
SQUIRREL_API SQRESULT sq_stackinfos(HSQUIRRELVM v,SQInteger level,SQStackInfos *si);
|
||||
SQUIRREL_API void sq_setdebughook(HSQUIRRELVM v);
|
||||
|
||||
/*UTILITY MACRO*/
|
||||
#define sq_isnumeric(o) ((o)._type&SQOBJECT_NUMERIC)
|
||||
#define sq_istable(o) ((o)._type==OT_TABLE)
|
||||
#define sq_isarray(o) ((o)._type==OT_ARRAY)
|
||||
#define sq_isfunction(o) ((o)._type==OT_FUNCPROTO)
|
||||
#define sq_isclosure(o) ((o)._type==OT_CLOSURE)
|
||||
#define sq_isgenerator(o) ((o)._type==OT_GENERATOR)
|
||||
#define sq_isnativeclosure(o) ((o)._type==OT_NATIVECLOSURE)
|
||||
#define sq_isstring(o) ((o)._type==OT_STRING)
|
||||
#define sq_isinteger(o) ((o)._type==OT_INTEGER)
|
||||
#define sq_isfloat(o) ((o)._type==OT_FLOAT)
|
||||
#define sq_isuserpointer(o) ((o)._type==OT_USERPOINTER)
|
||||
#define sq_isuserdata(o) ((o)._type==OT_USERDATA)
|
||||
#define sq_isthread(o) ((o)._type==OT_THREAD)
|
||||
#define sq_isnull(o) ((o)._type==OT_NULL)
|
||||
#define sq_isclass(o) ((o)._type==OT_CLASS)
|
||||
#define sq_isinstance(o) ((o)._type==OT_INSTANCE)
|
||||
#define sq_isbool(o) ((o)._type==OT_BOOL)
|
||||
#define sq_isweakref(o) ((o)._type==OT_WEAKREF)
|
||||
#define sq_type(o) ((o)._type)
|
||||
|
||||
/* deprecated */
|
||||
#define sq_createslot(v,n) sq_newslot(v,n,SQFalse)
|
||||
|
||||
#define SQ_OK (0)
|
||||
#define SQ_ERROR (-1)
|
||||
|
||||
#define SQ_FAILED(res) (res<0)
|
||||
#define SQ_SUCCEEDED(res) (res>=0)
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /*extern "C"*/
|
||||
#endif
|
||||
|
||||
#endif /*_SQUIRREL_H_*/
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
/*
|
||||
*
|
||||
* Original Javascript version by David Hedbor(http://www.bagley.org/~doug/shootout/)
|
||||
*
|
||||
*/
|
||||
|
||||
function Ack(M, N) {
|
||||
if (M == 0) return( N + 1 );
|
||||
if (N == 0) return( Ack(M - 1, 1) );
|
||||
return( Ack(M - 1, Ack(M, (N - 1))) );
|
||||
}
|
||||
|
||||
local n;
|
||||
|
||||
if(ARGS.len()!=0) {
|
||||
n = ARGS[0].tointeger();
|
||||
if(n < 1) n = 1;
|
||||
} else {
|
||||
n = 1;
|
||||
}
|
||||
print("n="+n+"\n");
|
||||
print("Ack(3,"+ n+ "):"+ Ack(3, n));
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
/*
|
||||
*
|
||||
* Original Javascript version by David Hedbor(http://www.bagley.org/~doug/shootout/)
|
||||
*
|
||||
*/
|
||||
local n, i, k;
|
||||
|
||||
if(ARGS.len()!=0) {
|
||||
n = ARGS[0].tointeger();
|
||||
if(n < 1) n = 1;
|
||||
} else {
|
||||
n = 1;
|
||||
}
|
||||
|
||||
local x = []; x.resize(n);
|
||||
local y = []; y.resize(n);
|
||||
|
||||
for (i = 0; i < n; i+=1) {
|
||||
x[i] = i + 1;
|
||||
y[i] = 0;
|
||||
}
|
||||
|
||||
for (k = 0 ; k < n; k+=1) {
|
||||
for (i = n-1; i >= 0; i-=1) {
|
||||
y[i] = y[i]+ x[i];
|
||||
}
|
||||
}
|
||||
print(y[0].tostring()+" "+y[n-1]);
|
||||
+49
@@ -0,0 +1,49 @@
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
class BaseVector {
|
||||
constructor(...)
|
||||
{
|
||||
if(vargc >= 3) {
|
||||
x = vargv[0];
|
||||
y = vargv[1];
|
||||
z = vargv[2];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
x = 0;
|
||||
y = 0;
|
||||
z = 0;
|
||||
}
|
||||
|
||||
class Vector3 extends BaseVector {
|
||||
function _add(other)
|
||||
{
|
||||
if(other instanceof this.getclass())
|
||||
return ::Vector3(x+other.x,y+other.y,z+other.z);
|
||||
else
|
||||
throw "wrong parameter";
|
||||
}
|
||||
function Print()
|
||||
{
|
||||
::print(x+","+y+","+z+"\n");
|
||||
}
|
||||
}
|
||||
|
||||
local v0 = Vector3(1,2,3)
|
||||
local v1 = Vector3(11,12,13)
|
||||
local v2 = v0 + v1;
|
||||
v2.Print();
|
||||
|
||||
FakeNamespace <- {
|
||||
Utils = {}
|
||||
}
|
||||
|
||||
class FakeNamespace.Utils.SuperClass {
|
||||
constructor()
|
||||
{
|
||||
::print("FakeNamespace.Utils.SuperClass")
|
||||
}
|
||||
}
|
||||
|
||||
local testy = FakeNamespace.Utils.SuperClass();
|
||||
@@ -0,0 +1,35 @@
|
||||
class Foo {
|
||||
//constructor
|
||||
constructor(a)
|
||||
{
|
||||
testy = ["stuff",1,2,3];
|
||||
}
|
||||
//attributes of PrintTesty
|
||||
</ test = "freakin attribute"/>
|
||||
function PrintTesty()
|
||||
{
|
||||
foreach(i,val in testy)
|
||||
{
|
||||
::print("idx = "+i+" = "+val+" \n");
|
||||
}
|
||||
}
|
||||
//attributes of testy
|
||||
</ flippy = 10 , second = [1,2,3] />
|
||||
testy = null;
|
||||
|
||||
}
|
||||
|
||||
foreach(member,val in Foo)
|
||||
{
|
||||
::print(member+"\n");
|
||||
local attr;
|
||||
if((attr = Foo.getattributes(member)) != null) {
|
||||
foreach(i,v in attr)
|
||||
{
|
||||
::print("\t"+i+" = "+(typeof v)+"\n");
|
||||
}
|
||||
}
|
||||
else {
|
||||
::print("\t<no attributes>\n")
|
||||
}
|
||||
}
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
function coroutine_test(a,b)
|
||||
{
|
||||
::print(a+" "+b+"\n");
|
||||
local ret = ::suspend("suspend 1");
|
||||
::print("the coroutine says "+ret+"\n");
|
||||
ret = ::suspend("suspend 2");
|
||||
::print("the coroutine says "+ret+"\n");
|
||||
ret = ::suspend("suspend 3");
|
||||
::print("the coroutine says "+ret+"\n");
|
||||
return "I'm done"
|
||||
}
|
||||
|
||||
local coro = ::newthread(coroutine_test);
|
||||
|
||||
local susparam = coro.call("test","coroutine"); //starts the coroutine
|
||||
|
||||
local i = 1;
|
||||
do
|
||||
{
|
||||
::print("suspend passed ["+susparam+"]\n")
|
||||
susparam = coro.wakeup("ciao "+i);
|
||||
++i;
|
||||
}while(coro.getstatus()=="suspended")
|
||||
|
||||
::print("return passed ["+susparam+"]\n")
|
||||
+52
@@ -0,0 +1,52 @@
|
||||
|
||||
PEntity <- {
|
||||
name="noname"
|
||||
pos={x=0,y=0,z=0}
|
||||
type="entity"
|
||||
//methamethod
|
||||
_typeof=function()
|
||||
{
|
||||
return type;
|
||||
}
|
||||
}
|
||||
|
||||
function PEntity::PrintPos()
|
||||
{
|
||||
::print("x="+pos.x+" y="+pos.y+" z="+pos.z+"\n");
|
||||
}
|
||||
|
||||
function PEntity::new(name,pos)
|
||||
{
|
||||
local newentity=clone ::PEntity;
|
||||
if(name)
|
||||
newentity.name=name;
|
||||
if(pos)
|
||||
newentity.pos=pos;
|
||||
return newentity;
|
||||
}
|
||||
|
||||
PPlayer <- {
|
||||
model="warrior.mdl"
|
||||
weapon="fist"
|
||||
health=100
|
||||
armor=0
|
||||
//overrides the parent type
|
||||
type="player"
|
||||
}
|
||||
|
||||
function PPlayer::new(name,pos)
|
||||
{
|
||||
local newplayer=delegate ::PEntity.new(name,pos) : clone ::PPlayer;
|
||||
return newplayer;
|
||||
}
|
||||
|
||||
local player=PPlayer.new("godzilla",{x=10,y=20,z=30});
|
||||
|
||||
::print("PLAYER NAME"+player.name+"\n");
|
||||
::print("ENTITY TYPE"+typeof player+"\n");
|
||||
|
||||
player.PrintPos();
|
||||
|
||||
player.pos.x=123;
|
||||
|
||||
player.PrintPos();
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
/*
|
||||
*
|
||||
* Original Javascript version by David Hedbor(http://www.bagley.org/~doug/shootout/)
|
||||
*
|
||||
*/
|
||||
|
||||
function fib(n)
|
||||
{
|
||||
if (n < 2) return 1
|
||||
return fib(n-2) + fib(n-1)
|
||||
}
|
||||
|
||||
local n = ARGS.len()!=0?ARGS[0].tointeger():1
|
||||
|
||||
print(fib(n)+"\n")
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
function min(x,y)
|
||||
return x<y?x:y;
|
||||
|
||||
function max(x,y)
|
||||
return x>y?x:y;
|
||||
|
||||
if(min(100,200)>max(50,20))
|
||||
print("I'm useless statement just to show up the if/else\n");
|
||||
else
|
||||
print("squirrel!!\n");
|
||||
|
||||
print("\n")
|
||||
|
||||
function typy(obj)
|
||||
{
|
||||
switch(typeof obj)
|
||||
{
|
||||
case "integer":
|
||||
case "float":
|
||||
return "is a number";
|
||||
case "table":
|
||||
case "array":
|
||||
return "is a container";
|
||||
default:
|
||||
return "is other stuff"
|
||||
}
|
||||
}
|
||||
|
||||
local a=1,b={},c=function(a,b){return a+b;}
|
||||
|
||||
print("a "+typy(a)+"\n");
|
||||
print("b "+typy(b)+"\n");
|
||||
print("c "+typy(c)+"\n");
|
||||
+42
@@ -0,0 +1,42 @@
|
||||
/*
|
||||
*Random number function from The Great Computer Language shootout
|
||||
*converted to a generator func
|
||||
*/
|
||||
|
||||
function gen_random(max) {
|
||||
local last=42
|
||||
local IM = 139968;
|
||||
local IA = 3877;
|
||||
local IC = 29573;
|
||||
for(;;){ //loops forever
|
||||
yield (max * (last = (last * IA + IC) % IM) / IM);
|
||||
}
|
||||
}
|
||||
|
||||
local randtor=gen_random(100);
|
||||
|
||||
print("RAND NUMBERS \n")
|
||||
|
||||
for(local i=0;i<10;i+=1)
|
||||
print(">"+resume randtor+"\n");
|
||||
|
||||
print("FIBONACCI \n")
|
||||
function fiboz(n)
|
||||
{
|
||||
local prev=0;
|
||||
local curr=1;
|
||||
yield 1;
|
||||
|
||||
for(local i=0;i<n-1;i+=1)
|
||||
{
|
||||
local res=prev+curr;
|
||||
prev=curr;
|
||||
yield curr=res;
|
||||
}
|
||||
return prev+curr;
|
||||
}
|
||||
|
||||
foreach(val in fiboz(10))
|
||||
{
|
||||
::print(">"+val+"\n");
|
||||
}
|
||||
+1
@@ -0,0 +1 @@
|
||||
print("Hello World!")
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
/*translation of the list test from The Great Computer Language Shootout
|
||||
*/
|
||||
|
||||
function compare_arr(a1,a2)
|
||||
{
|
||||
foreach(i,val in a1)
|
||||
if(val!=a2[i])return null;
|
||||
return 1;
|
||||
}
|
||||
|
||||
function test()
|
||||
{
|
||||
local size=10000
|
||||
local l1=[]; l1.resize(size);
|
||||
for(local i=0;i<size;i+=1) l1[i]=i;
|
||||
local l2=clone l1;
|
||||
local l3=[]
|
||||
|
||||
l2.reverse();
|
||||
while(l2.len()>0)
|
||||
l3.append(l2.pop());
|
||||
while(l3.len()>0)
|
||||
l2.append(l3.pop());
|
||||
l1.reverse();
|
||||
|
||||
if(compare_arr(l1,l2))
|
||||
return l1.len();
|
||||
return null;
|
||||
}
|
||||
|
||||
local n = ARGS.len()!=0?ARGS[0].tointeger():1
|
||||
for(local i=0;i<n;i+=1)
|
||||
if(!test())
|
||||
{
|
||||
print("failed");
|
||||
return;
|
||||
}
|
||||
|
||||
print("oki doki");
|
||||
+32
@@ -0,0 +1,32 @@
|
||||
local arr=["one","two","three"]
|
||||
|
||||
::print("FOREACH\n");
|
||||
|
||||
foreach(i,val in arr)
|
||||
{
|
||||
::print("index ["+i+"]="+val+"\n");
|
||||
}
|
||||
|
||||
::print("FOR\n");
|
||||
|
||||
for(local i=0;i<arr.len();i+=1)
|
||||
{
|
||||
::print("index ["+i+"]="+arr[i]+"\n");
|
||||
}
|
||||
|
||||
::print("WHILE\n");
|
||||
|
||||
local i=0;
|
||||
while(i<arr.len())
|
||||
{
|
||||
::print("index ["+i+"]="+arr[i]+"\n");
|
||||
i+=1;
|
||||
}
|
||||
::print("DO WHILE\n");
|
||||
|
||||
local i=0;
|
||||
do
|
||||
{
|
||||
::print("index ["+i+"]="+arr[i]+"\n");
|
||||
i+=1;
|
||||
}while(i<arr.len());
|
||||
+44
@@ -0,0 +1,44 @@
|
||||
/*
|
||||
*
|
||||
* Original Javascript version by David Hedbor(http://www.bagley.org/~doug/shootout/)
|
||||
*
|
||||
*/
|
||||
local SIZE=30;
|
||||
|
||||
function mkmatrix(rows, cols) {
|
||||
local i, j, count = 1;
|
||||
local m = []; m.resize(rows);
|
||||
for (i = 0; i < rows; i+=1) {
|
||||
m[i] = [];m[i].resize(cols)
|
||||
for (j = 0; j < cols; j+=1) {
|
||||
m[i][j] = count+=1;
|
||||
}
|
||||
}
|
||||
return m;
|
||||
}
|
||||
|
||||
function mmult(rows, cols, m1, m2, m3) {
|
||||
local i, j, k, val;
|
||||
for (i = 0; i < rows; i+=1) {
|
||||
for (j = 0; j < cols; j+=1) {
|
||||
val = 0;
|
||||
for (k = 0; k < cols; k+=1) {
|
||||
val += m1[i][k] * m2[k][j];
|
||||
}
|
||||
m3[i][j] = val;
|
||||
}
|
||||
}
|
||||
return m3;
|
||||
}
|
||||
|
||||
local n = ARGS.len()!=0?ARGS[0].tointeger():1
|
||||
|
||||
local m1 = mkmatrix(SIZE, SIZE);
|
||||
local m2 = mkmatrix(SIZE, SIZE);
|
||||
local mm = mkmatrix(SIZE, SIZE);
|
||||
|
||||
for (local i = 0; i < n; i+=1) {
|
||||
mmult(SIZE, SIZE, m1, m2, mm);
|
||||
}
|
||||
|
||||
print(mm[0][0]+" "+mm[2][3]+" "+mm[3][2]+" "+mm[4][4]);
|
||||
+115
@@ -0,0 +1,115 @@
|
||||
|
||||
local base_vec={
|
||||
function _add(n)
|
||||
{
|
||||
return {
|
||||
x=x+n.x,
|
||||
y=y+n.y,
|
||||
z=z+n.z,
|
||||
}
|
||||
}
|
||||
function _sub(n)
|
||||
{
|
||||
return {
|
||||
x=x-n.x,
|
||||
y=y-n.y,
|
||||
z=z-n.z,
|
||||
}
|
||||
}
|
||||
function _div(n)
|
||||
{
|
||||
return {
|
||||
x=x/n.x,
|
||||
y=y/n.y,
|
||||
z=z/n.z,
|
||||
}
|
||||
}
|
||||
function _mul(n)
|
||||
{
|
||||
return {
|
||||
x=x*n.x,
|
||||
y=y*n.y,
|
||||
z=z*n.z,
|
||||
}
|
||||
}
|
||||
function _modulo(n)
|
||||
{
|
||||
return {
|
||||
x=x%n,
|
||||
y=y%n,
|
||||
z=z%n,
|
||||
}
|
||||
}
|
||||
function _typeof() {return "vector";}
|
||||
function _get(key)
|
||||
{
|
||||
if(key==100)
|
||||
{
|
||||
return test_field;
|
||||
}
|
||||
},
|
||||
function _set(key,val)
|
||||
{
|
||||
::print("key = "+key+"\n");
|
||||
::print("val = "+val+"\n")
|
||||
if(key==100)
|
||||
{
|
||||
return test_field=val;
|
||||
}
|
||||
}
|
||||
test_field="nothing"
|
||||
}
|
||||
|
||||
function vector(_x,_y,_z):(base_vec)
|
||||
{
|
||||
return delegate base_vec : {x=_x,y=_y,z=_z }
|
||||
}
|
||||
////////////////////////////////////////////////////////////
|
||||
|
||||
local v1=vector(1.5,2.5,3.5);
|
||||
local v2=vector(1.5,2.5,3.5);
|
||||
|
||||
local r=v1+v2;
|
||||
|
||||
|
||||
foreach(i,val in r)
|
||||
{
|
||||
print(i+" = "+val+"\n");
|
||||
}
|
||||
|
||||
r=v1*v2;
|
||||
|
||||
foreach(i,val in r)
|
||||
{
|
||||
print(i+" = "+val+"\n");
|
||||
}
|
||||
|
||||
r=v1/v2;
|
||||
|
||||
foreach(i,val in r)
|
||||
{
|
||||
print(i+" = "+val+"\n");
|
||||
}
|
||||
|
||||
r=v1-v2;
|
||||
|
||||
foreach(i,val in r)
|
||||
{
|
||||
print(i+" = "+val+"\n");
|
||||
}
|
||||
|
||||
r=v1%2;
|
||||
|
||||
foreach(i,val in r)
|
||||
{
|
||||
print(i+" = "+val+"\n");
|
||||
}
|
||||
|
||||
print(v1[100]+"\n");
|
||||
v1[100]="set SUCCEEDED";
|
||||
print(v1[100]+"\n");
|
||||
|
||||
if(typeof v1=="vector")
|
||||
print("<SUCCEEDED>\n");
|
||||
else
|
||||
print("<FAILED>\n");
|
||||
+61
@@ -0,0 +1,61 @@
|
||||
/*translation of the methcall test from The Great Computer Language Shootout
|
||||
*/
|
||||
|
||||
Toggle <- {
|
||||
bool=null
|
||||
}
|
||||
|
||||
function Toggle::value() {
|
||||
return bool;
|
||||
}
|
||||
|
||||
function Toggle::activate() {
|
||||
bool = !bool;
|
||||
return this;
|
||||
}
|
||||
|
||||
function Toggle::new(startstate) {
|
||||
local newo=clone this;
|
||||
newo.bool = startstate;
|
||||
return newo;
|
||||
}
|
||||
|
||||
NthToggle <- {
|
||||
count_max=null
|
||||
count=0
|
||||
}
|
||||
|
||||
function NthToggle::new(start_state,max_counter)
|
||||
{
|
||||
local newo=delegate ::Toggle.new(start_state) : clone this;
|
||||
newo.count_max <- max_counter
|
||||
return newo;
|
||||
}
|
||||
|
||||
function NthToggle::activate ()
|
||||
{
|
||||
count+=1
|
||||
if (count >= count_max) {
|
||||
bool = !bool;
|
||||
count = 0;
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
local n = ARGS.len()!=0?ARGS[0].tointeger():1
|
||||
|
||||
local val = 1;
|
||||
local toggle = Toggle.new(val);
|
||||
for (local i=0; i<n; i+=1) {
|
||||
val = toggle.activate().value();
|
||||
|
||||
}
|
||||
print(toggle.value() ? "true\n" : "false\n");
|
||||
|
||||
val = 1;
|
||||
local ntoggle = NthToggle.new(val, 3);
|
||||
for (local i=0; i<n; i+=1) {
|
||||
val = ntoggle.activate().value();
|
||||
}
|
||||
print(ntoggle.value() ? "true\n" : "false\n");
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
function state1()
|
||||
{
|
||||
::suspend("state1");
|
||||
return state2();
|
||||
}
|
||||
|
||||
function state2()
|
||||
{
|
||||
::suspend("state2");
|
||||
return state3();
|
||||
}
|
||||
|
||||
function state3()
|
||||
{
|
||||
::suspend("state3");
|
||||
return state1();
|
||||
}
|
||||
|
||||
local statethread = ::newthread(state1)
|
||||
|
||||
::print(statethread.call()+"\n");
|
||||
|
||||
for(local i = 0; i < 10000; i++)
|
||||
::print(statethread.wakeup()+"\n");
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user