1
0
mirror of https://github.com/OpenTTD/OpenTTD.git synced 2025-08-12 17:19:09 +00:00

Compare commits

...

81 Commits

Author SHA1 Message Date
rubidium
7e853d8792 (svn r26096) -Release: 1.3.3-RC2 2013-11-24 20:08:28 +00:00
rubidium
184a94510b (svn r26095) [1.3] -Update: documentation 2013-11-24 19:59:51 +00:00
rubidium
c4273e5d93 (svn r26094) [1.3] -Backport from trunk:
- Fix: [Script] Prevent scripts from crashing OpenTTD when they send text with command codes to user editable texts such as sign and station names [FS#5818] (r26093, r26092)
- Fix: Occasional hanging when client joins [FS#5811] (r26043)
- Fix: Multi line text was handled incorrectly causing glitches [FS#5809] (r26037, r26036)
- Language updates
2013-11-24 19:57:23 +00:00
rubidium
1c45ddd861 (svn r26033) [1.3] -Update: some documentation 2013-11-17 17:36:00 +00:00
rubidium
4a33c03a49 (svn r26032) [1.3] -Backport from trunk:
- Fix: The internal index of a character in the layout line depends on the used layouter (r26029)
- Fix: Make the installer warning about Windows XP SP3 not trigger on the 64 bit Windows XP which is not really Windows XP to start with [FS#5773] (r26028)
2013-11-17 17:31:51 +00:00
rubidium
28dfc29888 (svn r26031) [1.3] -Backport from trunk: language updates 2013-11-17 17:30:42 +00:00
rubidium
8d90a3f417 (svn r26025) [1.3] -Fix: get hotkeys working again 2013-11-17 13:53:33 +00:00
rubidium
10fdf41107 (svn r26024) [1.3] -Backport: number of prerequisites for key handling fixes/improvements 2013-11-17 13:35:48 +00:00
rubidium
c13d1d6362 (svn r26022) [1.3] -Fix: missing OS X headers 2013-11-17 11:51:33 +00:00
rubidium
9fdc7a4ec9 (svn r26021) [1.3] -Backport from trunk:
- Fix: Crash when the ICU layouter thinks a font is corrupted [FS#5711] (r26018, r26017, r26016, r26015)
- Fix: Having trains miss a platform that is just being modified is less of a problem than having trains stop twice without moving [FS#5684] (r26013)
- Fix: --help text of ./configure for packages that require pkg-config (r26011)
- Fix: The AI/GS library name to use in Import, is not the name given by GetName but GetInstanceName [FS#5662] (r26010)
2013-11-17 11:29:44 +00:00
rubidium
5a82846fb0 (svn r26020) [1.3] -Backport from trunk:
- Fix: [Windows] Conditional expression with enumeral with non-enumeral type (r26009)
- Fix: Game script showing vehicle on e.g. a goal, then the vehicle being removed and eventually being replaced by a non-user vehicle (most likely smoke) causing an assertion to trigger [FS#5804] (r26007, r26006)
- Fix: Crash when transferring savegame from server to client [FS#5478] (r26005)
2013-11-17 11:24:39 +00:00
rubidium
e026f80caa (svn r25994) [1.3] -Backport from trunk:
- Update: Debian packaging (r25976, r25783, r25782, r25781, r25780)
2013-11-13 22:14:52 +00:00
rubidium
47fe12ebc2 (svn r25993) [1.3] -Backport from trunk:
- Fix: Comma key collided with F12 key for hotkeys; also remove '+' as that is generally not a key (the '+' on the numpad is a separate one) [FS#5679] (r25973)
- Fix: Rail laying sounds of others could be heard in multiplayer [FS#5665] (r25972)
- Fix: [SDL] Recursive mutex locking when changing blitter [FS#5787] (r25970)
2013-11-13 22:04:22 +00:00
rubidium
1ffa019bb5 (svn r25992) [1.3] -Backport from trunk:
- Fix: The wrong vehicle would be taken in a shared order vehicle list window when the ID >= 65536, causing assertions triggering later on [FS#5800] (r25965)
- Fix: [OSX] Compilation under OSX 10.9 [FS#5797] (r25962, r25951, r25950, r25913)
- Fix: [NewGRF] A powered rail type implies it is compatible as well, but some NewGRF did not state that causing the path reservation code to bail out in some cases because there was no compatible path [FS#5779] (r25961)
2013-11-13 22:03:26 +00:00
rubidium
3e445b2a6d (svn r25991) [1.3] -Backport from trunk:
- Fix: Temporary persistent storage modifications, e.g. command tests or those from GUI, were not properly reset, creating the possibility of desyncs [FS#5772] (r25956)
- Fix: Train's 'force proceed' status gets reset when the track on the other side of the tile has a signal [FS#5723] (r25955)
- Fix: Wrong signal conversions for savegames from before 0.4.5 [FS#5731, FS#5732] (r25954, r25953)
- Fix: Do not skip numbers when skipping spaces and other sorting 'improving' characters [FS#5719] (r25952)
2013-11-13 22:00:46 +00:00
rubidium
a4551ff5ac (svn r25990) [1.3] -Backport from trunk: language updates 2013-11-13 22:00:02 +00:00
rubidium
c40bbef756 (svn r25989) [1.3] -Backport from trunk:
- Fix: Text direction forcing characters were not filtered out, but shown as ? when ICU was not used for layouting. These are included in chat and console messages to force them to be displayed right [FS#5683] (r25949)
- Fix: NewGRF inspect window in RTL mode (r25943)
- Fix: [NoGo] Preserve the relative town growth progress when changing the town growth rate [FS#5786] (r25931)
- Fix: Several drawing overflows in the signal GUI [FS#5733] (r25929, r25928, r25927)
2013-11-13 21:58:36 +00:00
rubidium
dff569beb6 (svn r25988) [1.3] -Backport from trunk:
- Fix: Center the edit sign window like all query windows (r25918)
- Fix: Initialization of default objects swapped cost and dates (r25868)
- Fix: Use the actual sprite dimensions for sizing the dropdown arrow of dropdown widgets (r25864)
- Fix: If the child widgets of a NWidgetHorizontal container do not fill the complete container, align them according to text direction [FS#5686] (r25862, r25729)
2013-11-13 21:56:48 +00:00
rubidium
04fc4595cf (svn r25987) [1.3] -Backport from trunk:
- Fix: When clearing font cache, also clear layout cache [FS#5737] (r25860)
- Fix: Goto button in order window was not always lowered when it should [FS#5783] (r25858, 25857)
- Fix: Searching for a suitable font failed, if one of the fonts had no '?' glyph, and no baseset is installed [FS#5704] (r25822, r25820)
- Fix: Sprite 0 was considered available, even if no baseset was loaded (r25821)
2013-11-13 21:53:40 +00:00
rubidium
33ab06a9da (svn r25986) [1.3] -Backport from trunk:
- Fix: [GS] Language file scanner considered filenames starting with '.' as valid translations, resulting in languages with empty name, which causes trouble [FS#5750] (r25818)
- Fix: [GS] Handle savegames which contain GS translations for languages with empty name more gently [FS#5750] (r25817)
- Fix: [Script] ScriptTile::IsBuildableRectangle could report true for tiles outside of the map, if they happened to wrap around into a valid area [FS#5754] (r25815)
- Fix: Ensure the vehicle bar is high enough for the start/stop vehicle graphics [FS#5740] (r25805)
2013-11-13 21:49:31 +00:00
rubidium
f2cd6d20be (svn r25985) [1.3] -Backport from trunk:
- Fix: Lower sprite and text at the vehicle bar if it is pressed [FS#5739] (r25804)
- Fix: Draw start/stop graphics of the vehicle bar at the right place in RTL mode [FS#5738] (r25803)
- Fix: [Script] Decoding JSON data with an empty array from Admin port failed (r25809)
- Fix: [NewGRF] Do not allow changing palette when it's set by the NewGRF (r25794, r25793, r25972)
2013-11-13 21:46:47 +00:00
rubidium
95569e444b (svn r25984) [1.3] -Backport from trunk:
- Fix: Some spelling corrections to Catalan and Latin American town names [FS#5746] (r25775, r25774)
- Fix: If old savegames contain bridges over owned land, keep on drawing the bridges nevertheless [FS#5725] (r25753)
- Fix: [OSX] Text input into an edit box would trigger hotkeys [FS#5705] (r25743, r25671)
- Fix: Several RTL alignment issues [FS#5692] (r25733, r25732, r25731)
2013-11-13 21:43:16 +00:00
rubidium
27bf9549d6 (svn r25983) [1.3] -Backport from trunk:
- Fix: NWidgetMatrix used pip_pre and pip_post inconsistently and incorrectly, causing misalignment for RTL [FS#5686] (r25727)
- Fix: Right side of object class string was misaligned (r25726)
- Fix: [OSX] Do not pass -mmacosx-version-min to compilers that do not support it (r25706)
- Fix: Autoreplace/renew also refits free wagons [FS#5700] (r25698)
2013-11-13 21:39:14 +00:00
rubidium
68423b35cf (svn r25982) [1.3] -Backport from trunk:
- Fix: Textbuf caret rendering for complex scripts (e.g. Tamil) (r25696, r25694, r25652, r25651, r25092, r25091)
- Fix: Vehicle::MarkDirty must be called for the front engine [FS#5700] (r25695)
- Fix: [Win32] Several issues regarding conversion of characters (r25677, r25676, r25675, r25674, r25673)
- Fix: [Win32] Handle Unicode characters from outside the BMP correctly (r25672, r25670, r25669, r25668)
2013-11-13 21:35:44 +00:00
rubidium
53fffb3bab (svn r25981) [1.3] -Backport from trunk:
- Fix: [Win32] Only forward key presses to the IME system if an edit box has the input focus (r25667)
- Fix: [OSX] Crash when unhiding the main window [FS#4689] (r25665)
- Fix: [OSX] Bootstrap downloading of a baseset did not work [FS#4847] (r25664)
- Fix: [OSX] Monospace font detection [FS#4857] (r25663, r25662)
2013-11-13 21:30:39 +00:00
rubidium
7489a5d153 (svn r25980) [1.3] -Backport from trunk:
- Fix: [OSX] Rework font detection to work even if no default font sprites are present [FS#4847] (r25661)
- Fix: [OSX] The name's OpenTTD, not OTTD (r25660)
- Fix: [OSX] System mouse cursor could become visible during dragging [FS#4420] (r25659)
- Fix: [OSX] The mouse cursor would sometimes jump near the window borders [FS#4392] (r25658)
2013-11-13 21:29:37 +00:00
rubidium
6b47e4ba24 (svn r25979) [1.3] -Backport from trunk:
- Fix: [OSX] The new 10.7 fullscreen code can now also be compiled with older SDK versions [FS#4744] (r25656)
- Fix: [OSX] Mouse cursor was not displayed properly after switching to fullscreen on 10.7+ (r25655)
- Fix: Improve character and word deletion for CJK languages and complex scripts (r25654, r25653)
- Fix: [OSX] Define version constants before they are used (r25643)
2013-11-13 21:28:21 +00:00
rubidium
38bcb67c38 (svn r25978) [1.3] -Backport from trunk:
- Fix: Some icu_config scripts are too stupid to separate two ldflags by spaces, thus only call it with one (r25642, r25638)
- Fix: Do not suggest a start date for the game when there will be no vehicles available at all (r25640, r25639)
- Fix: City list sort of population and rating are reversed compared to the icon [FS#5666] (r25630)
- Fix: [Script] Give a slightly less generic error when removing inexisting rail [FS#5651] (r25614)
2013-11-13 21:21:47 +00:00
rubidium
e57c544643 (svn r25977) [1.3] -Backport from trunk:
- Fix: [Script] Do not return ERR_UNKNOWN when trying to move an order to its current location [FS#5648] (r25612)
- Fix: Various misreferences in AI and GS changelog [FS#5649] (r25607)
- Fix: [Script] If a NewGRF returned station type that could not be built by an AI via callback 18, an unknown error would be thrown instead of falling back to the default station [FS#5641] (r25605)
- Fix: Only the front engine's date of last service was updated [FS#5550] (r25604)
2013-11-13 21:17:29 +00:00
rubidium
1c5ff9933f (svn r25957) [1.3] -Backport from trunk: language updates 2013-11-08 23:02:00 +00:00
rubidium
8ebe828137 (svn r25631) [1.3] -Update: some documentation 2013-07-27 14:55:00 +00:00
rubidium
beceab38f8 (svn r25602) [1.3] -Prepare: for 1.3.2-RC2 2013-07-13 10:39:57 +00:00
rubidium
6a91636e1a (svn r25601) [1.3] -Backport from trunk: language updates 2013-07-13 10:37:17 +00:00
rubidium
7a081330e4 (svn r25599) [1.3] -Backport from trunk:
- Fix: [Admin] End-of-rcon data could not be determined reliably for any rcon command [FS#5643] (r25598, r25588, r25587)
- Fix: [Content] When the server closed the connection, the client would for eternity try to read a packet and never timeout making it impossible to reconnect [FS#5635] (r25597)
- Fix: [Script] Changing the script difficulty level in-game would also change the settings using the default even though they were not allowed to change in-game [FS#5644] (r25592)
- Fix: [Admin] Ensure that sent and received length of json strings are the same [FS#5646] (r25590, r25589)
- Fix: [Squirrel] Stack overflow did not show an error, due to the stack to throw the error already being full [FS#5320] (r25585)
2013-07-13 10:13:55 +00:00
rubidium
8f6204546e (svn r25584) [1.3] -Backport from trunk: language updates 2013-07-10 19:57:02 +00:00
rubidium
909502dc41 (svn r25583) [1.3] -Backport from trunk:
- Fix: Layouter caused significant slowdown with text heavy windows, cache it to make it managable (r25574, r25570, r25569, r25567, r25564)
2013-07-10 19:41:31 +00:00
rubidium
6cde48e49f (svn r25582) [1.3] -Backport from trunk:
- Fix: [Script] Documentation implied that XXList::AddItem has a default for value if it isn't filled in [FS#5638] (r25579, r25577)
- Fix: Make content list appear faster (r25573)
- Fix: Non-ICU layouter started new lines with the space which triggered the linebreak (r25568)
- Fix: If the next order cannot be resolved, reset the current order property instead of leaving it in an intermediate state [FS#5633] (r25562)
2013-07-10 19:38:53 +00:00
rubidium
b0486a940d (svn r25560) [1.3] -Backport from trunk:
- Fix: [Squirrel] Infinite recursion loop in freeing data via a looping set of references [FS#5568] (r25558)
- Fix: One could build bridges over owned land of another company [FS#5524] (r25557)
- Fix: [Script] Texts from scripts were not validated before they were shown, causing an assertion to trigger [FS#5632] (r25555)
- Fix: Provide a warning when no vehicles are available, and tell what to do in that case [FS#5530] (r25553)
2013-07-04 21:20:05 +00:00
rubidium
526fb6fa21 (svn r25559) [1.3] -Backport from trunk:
- Fix: Possible reading of uninitialised memory due to undefined execution order (r25551)
- Fix: [Windows] Race condition between two drawing threads could crash OpenTTD [FS#5571] (r25550)
- Fix: ICU returns the width of the visual run as if the trailing space was added (in case a newline was added). This caused the width to be more than the requested width, but it would still be drawn correctly [FS#5626] (r25547)
- Fix: Two small memory leaks (r25546)
- Fix: [GS] The checks and validations for setting the extra text in the town window became too stringent [FS#5625] (r25544)
2013-07-04 21:16:35 +00:00
rubidium
441364ff91 (svn r25529) [1.3] -Backport from trunk: language updates
[1.3] -Update: documentation
2013-06-30 09:05:55 +00:00
rubidium
322abc44e0 (svn r25528) [1.3] -Backport from trunk:
- Fix: strndup should not examine strings beyond its upper limit [FS#5621] (r25527)
- Fix: SDL does not give an event when an application gets mouse focus while going to full screen, so manually force the mouse-is-in-window state [FS#5587] (r25523)
- Fix: Reworked layouting (r25526, r25525, r25524, r25513, r25512, r25511)
2013-06-30 08:58:35 +00:00
rubidium
aee85cf8b0 (svn r25503) [1.3] -Backport from trunk: language updates 2013-06-28 19:48:10 +00:00
rubidium
7e74941a73 (svn r25502) [1.3] -Backport from trunk:
- Fix: Proper support for Brahmic scripts (e.g. Tamil and Thai) [FS#5481] (r25501, r25493, r25485, r25483, r25482, r25481, r25478, r25477, r25476, r25474, r25473, r25472, r25471, r25470, r25469, r25468, r25467, r25466, r25465, r25463, r25462, r25455, r25452, r25451, r25450, r25447, r25446, r25445, r25444, r25443, r25442, r25441, r25440, r25439, r25438, r25437, r25436, r25343, r25157)
2013-06-28 19:44:28 +00:00
rubidium
79c02e4ae4 (svn r25500) [1.3] -Backport from trunk:
- Remove: SETX(Y) does not work at all with other than default fonts, so get rid of it (r25454)
- Fix: When addings bits to a (train) station, the train trying to stop there could overshoot the (new) stop location and not stop at all [FS#5553] (r25495)
- Fix: The face of the manager differed on clients when the company was started after the clients joined [FS#5610] (r25491, r25490)
2013-06-28 19:29:08 +00:00
rubidium
d271dd9566 (svn r25499) [1.3] -Backport from trunk:
- Fix: Do not send encoded texts to names, but decode them into a plain C string and then pass them on [FS#5613] (r25489, r25488)
- Fix: Do not allow control codes in names of things (signs, vehicles, towns, stations, etc), so they have a known maximum fixed size and are, by definition, the same for everyone (r25487)
- Fix: Missing length validation for town and president names in script APIs (r25486)
2013-06-28 19:24:39 +00:00
rubidium
c62e867b56 (svn r25498) [1.3] -Backport from trunk:
- Fix: [NewGRF] When cargo NewGRF define a multiplier to modify vehicle capacities, use the same multiplier to modify loading speed (r25497, r25479)
- Fix: [OSX] OS X SDK versions >= 10.5 always have a non-const iconv declaration (r25480)
- Fix: Disable the depot-refit button in the order GUI, if the consist is not refittable unless it already has a refit order (r25459, r25458, r25457)
2013-06-28 19:21:24 +00:00
rubidium
fab048a116 (svn r25496) [1.3] -Backport from trunk:
- Fix: When town creation failed, removing remnants of the construction failed on protected houses [FS#5603] (r25429)
- Fix: There were two hotkeys to toggle between 'unload' and 'unload if possible' (r25406)
- Fix: The size of station construction windows could oscillate when resizing the window moved the mouse into the window [FS#5596] (r25395)
- Fix: Restrict renaming engines to the server, just like renaming towns (r25394)
2013-06-28 19:09:47 +00:00
rubidium
906a848cdb (svn r25416) [1.3] -Backport from trunk: language updates 2013-06-15 15:43:32 +00:00
rubidium
7d779754e6 (svn r25415) [1.3] -Feature: Thai translation 2013-06-15 15:34:57 +00:00
rubidium
1924ab4b9a (svn r25341) [1.3] -Backport from trunk: language updates 2013-06-09 09:42:50 +00:00
rubidium
3b7a42bbc9 (svn r25340) [1.3] -Backport from trunk:
- Fix: Loading only 8 bits into a 16 bit variable could cause endianness problems (r25337)
- Fix: Check for zero width space in translations and fail upon finding them [FS#5589] (r25326)
- Fix: [SDL] Keyboard input stopped working after fullscreen toggle [FS#5580] (r25318)
- Fix: Proper size-estimation for numbers with n digits, i.e. not assume a particular number is the widest [FS#5562] (r25314, r25313)
2013-06-09 09:38:21 +00:00
rubidium
02fc90dfbd (svn r25339) [1.3] -Backport from trunk:
- Fix: Do not focus the editbox in the NewGRF window, if there is no editbox visible (r25307)
- Fix: Game Script APIs that execute a DoCommand were returning the same result as in TestMode during world generation [FS#5561] (r25305)
- Fix: Build railway fences next to objects, even if they are owned by the same company [FS#5565] (r25302)
- Fix: gcc4.6 removed -mno-cygwin option (r25266)
2013-06-09 09:33:06 +00:00
rubidium
3ac18d20c9 (svn r25309) [1.3] -Update: some documentation 2013-05-31 20:51:15 +00:00
rubidium
6289bb92af (svn r25308) [1.3] -Backport from trunk:
- Fix: When overbuilding a reserved track with a non-track station tile, that tile would remain reserved and eventually trigger a crash upon removal [FS#5540] (r25251)
- Doc: Update some small parts of the readme (r25278)
2013-05-31 20:49:00 +00:00
rubidium
c32de24438 (svn r25255) [1.3] -Fix: forgot running project/generate for the newly added languages 2013-05-19 14:02:50 +00:00
rubidium
011de43698 (svn r25248) [1.3] -Update: some documentation 2013-05-17 19:04:45 +00:00
rubidium
9cb01a519b (svn r25247) [1.3] -Backport from trunk:
- Fix: 'No station' error was given, even when there was a station that way occupied or not yours [FS#5546] (r25243)
- Language updates
2013-05-17 18:56:51 +00:00
rubidium
b604bbfb3d (svn r25242) [1.3] -Backport from trunk: translations 2013-05-13 19:25:53 +00:00
rubidium
37ed615df1 (svn r25241) [1.3] -Backport from trunk:
- Fix: Crash when AI is executing a command as it is bankrupted (removed from the game) [FS#5547] (r25236)
- Fix: Give bridges owned by noone (from bankrupt companies) to the first company which replaces the bridge. Everyone could have removed/rebuild the bridge anyway [FS#5541] (r25231, r25227)
- Fix: [NewGRF] Revise when vehicle running sound effects 04, 07 and 08 are played; in depot or tunnel, or when crashed or stopped: No sound. Braking: Effect 08 instead of 07 [FS#5538] (r25226)
- Fix: [NewGRF] Play vehicle sound effect also for planes (r25225)
- Fix: [NewGRF] cur_speed is only valid for the front engine, so make other engines in the consist use the speed of the front [FS#5534] (r25224)
2013-05-13 19:22:08 +00:00
rubidium
a40ad243ca (svn r25240) [1.3] -Backport from trunk:
- Fix: [NewGRF] Make tick_counters work the same for vehicles (r25223, r25222)
- Fix: [NewGRF] IsCompatibleTrainStationTile() is not a symmetric function. Clarify the parameters and fix the cases were they were swapped (r25221)
- Fix: Consider map border as water with repsect to river/canal continuation (r25220)
- Fix: [Script] Clarify on which tiles IsDesertTile and IsSnowTile work, i.e. the ones without infrastructure or buildings, and introduce GetTerrainType for the cases where IsDesertTile/IsSnowTile do not work [FS#5537] (r25213)
- Fix: The baseset description translation script did not work with any awk other than gawk (r25218)
2013-05-13 19:18:10 +00:00
rubidium
962dda2b8b (svn r25212) [1.3] -Backport from trunk:
- Feature: Translations of baseset descriptions via language files (r25209, r25205)
- Fix: The level crossing sound is an ambient sound and not a new year sound (r25200)
2013-04-29 20:50:58 +00:00
rubidium
7739f1951d (svn r25204) [1.3] -Backport from trunk:
- Change: [strgen] Allow any number of colour codes in translations (r25193, r25192, r25191)
- Feature: Faroese and Scottish Gaelic translations (r25198, r25176)
- Feature: Plural form to be used by Scottish Gaelic (1,11; 2,12; 3..10, 13..19; other) (r25078)
2013-04-24 17:54:43 +00:00
rubidium
17d90107a3 (svn r25203) [1.3] -Backport: language updates from trunk 2013-04-24 17:48:37 +00:00
rubidium
7daff778f9 (svn r25170) [1.3] -Backport from trunk:
- Fix: Original train and rv acceleration did no longer respect bridge speed limits [FS#5523] (r25167)
- Fix: [Win32] Do not statically link to SHGetFolderPath as it may not exist, and improve its emulation [FS#5522] (r25155, r25153)
- Fix: [Win32] Do not store invalid paths in the search path list (r25154)
- Fix: Remove stray reservation from savegames affected by FS#5510 et al. upon loading [FS#5520] (r25152)
- Fix: [Script] XXBase::Chance function did not work for large values (>65535) [FS#5517] (r25148)
2013-04-08 20:59:42 +00:00
rubidium
283ab728f2 (svn r25169) [1.3] -Backport from trunk:
- Fix: Several typos/inconsistencies in English strings [FS#5496] (r25144, r25143)
- Fix: When extra dynamite was disabled, towns would be allowed to clear bridges with trams (r25141)
- Fix: Towns are build as OWNER_TOWN, so they also need to be removed as OWNER_TOWN otherwise parts might remain [FS#5519] (r25140)
- Fix: Editboxes could become too small when resizing windows (r25121)
- Fix: Game script language files did not work, when inside a tar [FS#5509] (r25117, r25114)
2013-04-08 20:56:30 +00:00
rubidium
6bb922953d (svn r25168) [1.3] -Backport from trunk:
- Fix: [NewGRF] Acceleration of NewGRF aircraft was too fast, while acceleration of default aircraft was way too slow (r25115)
- Fix: Pass $LDFLAGS_BUILD to all endian_check compilations (r25108)
- Change: [Win32] MSVC 2010 comes with stdint.h (r25128)
- Change: Be slightly more lenient with trying to detect a subversion repository in case someone has a sparse tags checkout. In that case the .svn folder misses from the $ROOT_DIR because it is in the $ROOT_DIR/.. (i.e. tags) folder (r25107)
2013-04-08 20:52:32 +00:00
rubidium
7e0c0b633d (svn r25134) [1.3] -Update: some documentation 2013-03-31 20:50:46 +00:00
rubidium
585f0ef91c (svn r25133) [1.3] -Backport from trunk:
- Fix: Station rebuilding could leave reserved tiles which caused crashes later on [FS#5510, FS#5516] (r25132)
- Fix: When the count for a scrollbar was 0, the inter distance was subtracted too much causing a scrollbar with a negative size (r25123)
2013-03-31 20:32:21 +00:00
rubidium
0e692735c4 (svn r25105) [1.3] -Prepare: for 1.3.0-RC3 2013-03-18 05:53:35 +00:00
rubidium
5df60bf2a6 (svn r25103) [1.3] -Backport from trunk: language updates 2013-03-17 21:02:36 +00:00
rubidium
42e569e0d1 (svn r25102) [1.3] -Backport from trunk:
- Fix: Limit aircraft property 0D to 19, since the conversion result to km-ish/h needs to fit into a byte [FS#5492] (r25099)
- Fix: Clicking the statusbar crashed, when news were pending but no news were shown yet [FS#5486] (r25093)
- Fix: Make editbox character filters also apply to pasted content from clipboard (r25090, r25089)
- Fix: Catch exception anonymously, if the exception content is not of interest [FS#5500] (r25081)
2013-03-17 20:58:40 +00:00
rubidium
278cebf202 (svn r25101) [1.3] -Update: the intro game 2013-03-17 20:38:53 +00:00
frosch
51f4d6d357 (svn r25067) [1.3] -Update: documentation 2013-03-05 18:29:18 +00:00
frosch
b0a9f0e638 (svn r25066) [1.3] -Backport from trunk: language updates 2013-03-05 18:09:31 +00:00
frosch
eb548884b8 (svn r25065) [1.3] -Backport from trunk:
-Fix: Make sizes of the station preview list and direction selection identical in the station build window [FS#5472] (r25064)
-Fix: When allocation of the sprite cache fails, try to allocate less memory and display an error message later on (r25061)
2013-03-05 18:04:05 +00:00
rubidium
b69d02ef4f (svn r25055) [1.3] -Backport from trunk:
- Fix: Refactor Script Debug GUI to only set widget states in OnInvalidateData [FS#5490] (r25052)
- Fix: Do not let gcc include files from the "standard C" include directories; newer gcc/libc seem to otherwise automatically include some header files at the top of the preprocessed nfo files which causes NFOrenum/GRFcodec to make invalid assumptions about the NFO version (r25050)
- Fix: Minimise gaps feature caused removal to only happen at the signal build interval instead of the implicit interval of 1 [FS#5479] (r25038)
- Fix: Green path signals would be shown when building them 'under' a train, and they would keep showing green until they were passed again [FS#5480] (r25037)
2013-02-28 06:55:22 +00:00
rubidium
bb4a82c8e1 (svn r25031) [1.3] -Update: documentation 2013-02-19 19:59:08 +00:00
rubidium
8ad76d2f8d (svn r25030) [1.3] -Backport from trunk: tamil was upgraded to finished 2013-02-19 19:58:46 +00:00
rubidium
e572eecc73 (svn r25029) [1.3] -Backport from trunk: language updates 2013-02-19 19:54:06 +00:00
rubidium
f393cecbf7 (svn r25028) [1.3] -Backport from trunk:
- Feature: Searching of (missing) content via GrfCrawler (r25024, r25023)
- Fix: [SDL] Crash after bootstrap download of 32bits base set due to referencing a deleted mutex [FS#5466] (r25017)
- Fix: [SDL] Improve 8bpp hardware palette support. Instead of always requesting SDL_HWPALETTE, it is now only done for 8bp blitters in fullscreen mode (r25003, r25002, r24993)
2013-02-19 19:46:46 +00:00
rubidium
5bc674b48d (svn r25000) [1.3] -Branch: time to get this thing done and do some new stuff in trunk 2013-02-14 18:52:05 +00:00
318 changed files with 30115 additions and 12481 deletions

View File

@@ -1,3 +1,7 @@
This is the license which applies to OpenTTD with the exception of some
3rd party modules. See readme.txt for details
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991

View File

@@ -90,9 +90,9 @@ endif
ifeq ($(TTD), openttd.exe)
$(Q)unix2dos "$(BUNDLE_DIR)/docs/"* "$(BUNDLE_DIR)/readme.txt" "$(BUNDLE_DIR)/COPYING" "$(BUNDLE_DIR)/changelog.txt" "$(BUNDLE_DIR)/known-bugs.txt"
ifeq ($(OS), DOS)
$(Q)cp "$(ROOT_DIR)/os/dos/cwsdpmi.txt" "$(BUNDLE_DIR)/docs/"
$(Q)cp "$(ROOT_DIR)/os/dos/cwsdpmi/cwsdpmi.txt" "$(BUNDLE_DIR)/docs/"
ifndef STRIP
$(Q)cp "$(ROOT_DIR)/os/dos/cwsdpmi.exe" "$(TTD_DIR)/"
$(Q)cp "$(ROOT_DIR)/os/dos/cwsdpmi/cwsdpmi.exe" "$(TTD_DIR)/"
endif
endif
endif

View File

@@ -20,6 +20,8 @@
ROOT_DIR = !!ROOT_DIR!!
GRF_DIR = $(ROOT_DIR)/media/extra_grf
BASESET_DIR = $(ROOT_DIR)/media/baseset
LANG_DIR = $(ROOT_DIR)/src/lang
BIN_DIR = !!BIN_DIR!!/baseset
OBJS_DIR = !!GRF_OBJS_DIR!!
OS = !!OS!!
@@ -36,6 +38,7 @@ endif
GRFCODEC := !!GRFCODEC!!
NFORENUM := !!NFORENUM!!
CC_BUILD := !!CC_BUILD!!
MD5SUM := $(shell [ "$(OS)" = "OSX" ] && echo "md5 -r" || echo "md5sum")
# Some "should not be changed" settings.
@@ -44,7 +47,7 @@ PNG_FILES := $(GRF_DIR)/*.png $(GRF_DIR)/rivers/*.png
# Build the GRF.
ifdef GRFCODEC
all: $(BIN_DIR)/openttd.grf
all: $(BIN_DIR)/openttd.grf $(BIN_DIR)/orig_dos.obg $(BIN_DIR)/orig_dos_de.obg $(BIN_DIR)/orig_win.obg $(BIN_DIR)/orig_dos.obs $(BIN_DIR)/orig_win.obs $(BIN_DIR)/no_sound.obs $(BIN_DIR)/orig_win.obm $(BIN_DIR)/no_music.obm
else
all:
endif
@@ -53,20 +56,33 @@ endif
$(OBJS_DIR)/sprites:
$(Q)-mkdir "$@"
# Generic
$(BIN_DIR)/openttd.grf: $(OBJS_DIR)/openttd.grf
$(Q)cp $(OBJS_DIR)/openttd.grf $(BIN_DIR)/openttd.grf
$(E) '$(STAGE) Updating base graphics sets'
$(Q) for grf in $(BIN_DIR)/orig*.obg; do sed 's/^OPENTTD.GRF = [0-9a-f]*$$/OPENTTD.GRF = '`$(MD5SUM) $(BIN_DIR)/openttd.grf | sed 's@ .*@@'`'/' $$grf > $$grf.tmp && mv $$grf.tmp $$grf; done
$(OBJS_DIR)/langfiles.tmp: $(LANG_DIR)/*.txt
$(E) '$(STAGE) Collecting baseset translations'
$(Q) cat $^ > $@
# Yeah, we'd like to use -i in the sed, but Mac OS X's sed and GNU sed just can't agree on the usage of -i. In any case either one of them fails.
$(OBJS_DIR)/openttd.grf: $(PNG_FILES) $(NFO_FILES) $(OBJS_DIR)/sprites
$(BIN_DIR)/%.obg: $(BASESET_DIR)/%.obg $(BIN_DIR)/openttd.grf $(OBJS_DIR)/langfiles.tmp $(BASESET_DIR)/translations.awk
$(E) '$(STAGE) Updating $(notdir $@)'
$(Q) sed 's/^OPENTTD.GRF = *[0-9a-f]*$$/OPENTTD.GRF = '`$(MD5SUM) $(BIN_DIR)/openttd.grf | sed 's@ .*@@'`'/' $< > $@.tmp
$(Q) awk -v langfiles='$(OBJS_DIR)/langfiles.tmp' -f $(BASESET_DIR)/translations.awk $@.tmp >$@
$(Q) rm $@.tmp
$(BIN_DIR)/%.obs: $(BASESET_DIR)/%.obs $(OBJS_DIR)/langfiles.tmp $(BASESET_DIR)/translations.awk
$(E) '$(STAGE) Updating $(notdir $@)'
$(Q) awk -v langfiles='$(OBJS_DIR)/langfiles.tmp' -f $(BASESET_DIR)/translations.awk $< >$@
$(BIN_DIR)/%.obm: $(BASESET_DIR)/%.obm $(OBJS_DIR)/langfiles.tmp $(BASESET_DIR)/translations.awk
$(E) '$(STAGE) Updating $(notdir $@)'
$(Q) awk -v langfiles='$(OBJS_DIR)/langfiles.tmp' -f $(BASESET_DIR)/translations.awk $< >$@
# Compile extra grf
$(BIN_DIR)/openttd.grf: $(PNG_FILES) $(NFO_FILES) $(OBJS_DIR)/sprites
$(E) '$(STAGE) Assembling openttd.nfo'
$(Q)-cp $(PNG_FILES) $(OBJS_DIR)/sprites 2> /dev/null
$(Q) gcc -I$(GRF_DIR) -C -E - < "$(GRF_DIR)/openttd.nfo" | sed -e '/^#/d' -e '/^$$/d' > $(OBJS_DIR)/sprites/openttd.nfo
$(Q) $(CC_BUILD) -nostdinc -I$(GRF_DIR) -C -E - < "$(GRF_DIR)/openttd.nfo" | sed -e '/^#/d' -e '/^$$/d' > $(OBJS_DIR)/sprites/openttd.nfo
$(Q) $(NFORENUM) -s $(OBJS_DIR)/sprites/openttd.nfo
$(E) '$(STAGE) Compiling openttd.grf'
$(Q) $(GRFCODEC) -n -s -e -p1 $(OBJS_DIR)/openttd.grf
$(Q)cp $(OBJS_DIR)/openttd.grf $(BIN_DIR)/openttd.grf
# Clean up temporary files.
clean:

View File

@@ -154,7 +154,7 @@ mrproper:
distclean: mrproper
maintainer-clean: distclean
$(Q)rm -f $(BIN_DIR)/baseset/openttd.grf
$(Q)rm -f $(BIN_DIR)/baseset/openttd.grf $(BIN_DIR)/baseset/*.obg $(BIN_DIR)/baseset/*.obs $(BIN_DIR)/baseset/*.obm
depend:
@for dir in $(SRC_DIRS); do \

View File

@@ -276,7 +276,7 @@ endian_target.h: $(ENDIAN_CHECK) $(CONFIG_CACHE_ENDIAN)
$(ENDIAN_CHECK): $(SRC_DIR)/endian_check.cpp
$(E) '$(STAGE) Compiling and Linking $@'
$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) $(CXXFLAGS_BUILD) $< -o $@
$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) $(CXXFLAGS_BUILD) $(LDFLAGS_BUILD) $< -o $@
# Revision files

View File

@@ -588,7 +588,7 @@ ERROR: IsEnd() is invalid as Begin() is never called
SetName(): false
GetLastErrorString(): ERR_NAME_IS_NOT_UNIQUE
GetName(): Regression
GetPresidentName(): P. Sharkey
GetPresidentName(): E. McAlpine
SetPresidentName(): true
GetPresidentName(): Regression AI
GetBankBalance(): 100000
@@ -5079,7 +5079,7 @@ ERROR: IsEnd() is invalid as Begin() is never called
GetPlaneType(): -1
Engine 211
IsValidEngine(): true
GetName(): Yate Cargo ship
GetName(): Yate Cargo Ship
GetCargoType(): 5
CanRefitCargo(): true
GetCapacity(): 160

View File

@@ -10,34 +10,49 @@ fallback = true
description = A music pack without actual music.
description.af_ZA = 'n Musiek stel sonder enige musiek.
description.ar_EG = مجموعة موسيقى بدون موسيقى
description.be_BY = "Пусты" набор музычнага афармлення, не змяшчаючы ніякай музыкі.
description.bg_BG = Празен музикален пакет.
description.ca_ES = Un joc de música sense cap música.
description.cs_CZ = Prázná hudební sada.
description.da_DA = En musikpakke uden musik.
description.cy_GB = Pecyn cerddoriaeth heb unrhyw gerddoriaeth ynddo.
description.da_DK = En musikpakke uden musik.
description.de_DE = Ein Musikset ohne Musik.
description.el_GR = Ένα πάκετο μουσικής χωρίς πραγματική μουσική.
description.en_GB = A music pack without actual music.
description.en_AU = A music pack without actual music.
description.en_US = A music pack without actual music.
description.es_ES = Un conjunto de música vacío.
description.et_ET = Muusikakomplekt ilma igasuguse muusikata.
description.et_EE = Muusikakogu ilma muusikata.
description.fi_FI = Musiikkipaketti, jossa ei ole musiikkia.
description.fr_FR = Un pack de musiques sans musiques.
description.gd_GB = Pacaid ciùil anns nach eil fonn sam bith.
description.gl_ES = Un conxunto de músicas sen ningunha música.
description.hr_HR = Muzički paket bez ikakve muzike.
description.hu_HU = Zenei alapcsomag zene nélkül.
description.id_ID = Paket musik tanpa berisi musik.
description.id_ID = Paket musik tanpa musik sungguhan.
description.is_IS = Tónlistarpakki sem er í raun án tónlistar.
description.it_IT = Un pacchetto musicale non contenente alcuna musica.
description.ja_JP = 空の音楽パック
description.ko_KR = 실제 음악이 없는 음악 목록입니다.
description.lb_LU = E Musikpack ouni aktuell Musik.
description.lt_LT = Muzikos pakas be muzikos.
description.nb_NO = En musikkpakke uten noe musikk.
description.nl_NL = Een muziekset zonder muziek.
description.nn_NO = Ei musikkpakke utan noko musikk.
description.pl_PL = Zestaw utworów muzycznych nie zawierający żadnej muzyki.
description.pt_BR = Um pacote de músicas sem músicas.
description.pt_PT = Um conjunto de música vazio.
description.ro_RO = Un set de muzică fără muzică inclusă.
description.ru_RU = "Пустой" набор музыкального оформления, не содержащий никакой музыки.
description.sk_SK = Sada hudby neobsahujúca hudbu.
description.sl_SL = Glasbeni paket z vključeno glasbo.
description.sl_SI = Glasbeni paket z vključeno glasbo.
description.sr_RS = Prazan skup muzičkih numera.
description.sv_SE = Ett musikpaket utan någon musik.
description.ta_IN = இசை இல்லாத இசைத்தொகுப்பு.
description.th_TH = ชุดเพลงประกอบแบบไม่มีเสียงเพลง
description.tr_TR = Müzik içermeyen boş bir müzik paketi.
description.uk_UA = Порожній набір музики.
description.vi_VN = Gói âm nhạc này không có nhạc nào.
description.zh_CN = 一个没有实际内容的音乐包.
description.zh_TW = 不含任何音樂的音樂集。
[files]

View File

@@ -10,34 +10,49 @@ fallback = true
description = A sound pack without any sounds.
description.af_ZA = 'n Klank stel sonder enige klanke.
description.ar_EG = مجموعة صوت بدوت اصوات مضافة
description.be_BY = "Пусты" набор гукавога афармленьня, не змяшчаючы ніякіх гукаў.
description.bg_BG = Празен звуков пакет.
description.ca_ES = Un joc de sons sense cap so.
description.cs_CZ = Prázdná sada zvuků.
description.da_DA = En lydpakke uden lyde.
description.cy_GB = Pecyn sain heb unrhyw effeithiau sain ynddo.
description.da_DK = En lydpakke uden lyde.
description.de_DE = Basissounds ohne Sound.
description.el_GR = Ένα πάκετο ήχων χώρις ήχους.
description.en_GB = A sound pack without any sounds.
description.en_AU = A sound pack without any sounds.
description.en_US = A sound pack without any sounds.
description.es_ES = Un conjunto de sonidos vacío.
description.et_ET = Ilma häälteta helipakk.
description.fi_FI = Äänipaketti ilman ääniä.
description.et_EE = Helikogu ilma helideta.
description.fi_FI = Äänipaketti, jossa ei ole ääniä.
description.fr_FR = Un pack de sons sans sons.
description.gd_GB = Pacaid fhuaimean anns nach eil fuaim sam bith.
description.gl_ES = Un conxunto de sons sen ningún son
description.hr_HR = Zvučni paket bez ikakvih zvukova.
description.hu_HU = Hang alapcsomag hangok nélkül.
description.id_ID = Paket efek suara tanpa berisi suara.
description.id_ID = Paket efek suara tanpa suara apapun.
description.is_IS = Hljóðpakki án hljóðs.
description.it_IT = Un pacchetto sonoro non contenente alcun suono.
description.ja_JP = 空の効果音パック
description.ko_KR = 아무런 효과음도 없는 효과음 팩입니다.
description.lb_LU = En Soundpack mat all den Sounds.
description.lt_LT = Garsų pakas be jokių garsų.
description.nb_NO = En lydpakke uten noen lyder.
description.nl_NL = Een geluidset zonder geluid.
description.nn_NO = Ei lydpakke utan nokon lydar.
description.pl_PL = Zestaw dźwięków nie zawierający żadnych dźwięków.
description.pt_BR = Um pacote de sons sem sons.
description.pt_PT = Um conjunto de sons vazio.
description.ro_RO = Un set de sunete fără nici un sunet inclus.
description.ru_RU = "Пустой" набор звукового оформления, не содержащий никаких звуков.
description.sk_SK = Zvuková sada neobsahujúca zvuky.
description.sl_SL = Zvočni paket brez zvoka.
description.sl_SI = Zvočni paket brez zvoka.
description.sr_RS = Prazan skup zvukova.
description.sv_SE = Ett ljudpaket utan några ljud.
description.ta_IN = ஒலிகள் இல்லாத ஒலி தொகுப்பு.
description.th_TH = ชุดเสียงแบบไร้เสียง
description.tr_TR = Ses içermeyen boş bir ses kümesi.
description.uk_UA = Порожній набір звуків.
description.vi_VN = Gói âm thanh này không có âm thanh nào.
description.zh_CN = 一个空的音效包.
description.zh_TW = 不含任何音效的音效集。
[files]

Binary file not shown.

View File

@@ -11,34 +11,49 @@ palette = DOS
description = Original Transport Tycoon Deluxe DOS edition graphics.
description.af_ZA = Oorspronklike Transport Tycoon Deluxe DOS uitgawe grafieke.
description.ar_EG = النسخة الاصلية من ترانسبورت تايكون ديلوكس الرسومية نسخة الدوس
description.be_BY = Арыгінальная графіка з Transport Tycoon Deluxe для DOS.
description.bg_BG = Оригинални графики на Transport Tycoon Deluxe за DOS.
description.ca_ES = Gràfics originals de Transport Tycoon Deluxe per a DOS.
description.cs_CZ = Původní sada grafik Transport Tycoon Deluxe (verze pro DOS).
description.da_DA = Originalgrafik fra Transport Tycoon Deluxe DOS-version.
description.cy_GB = Graffeg gwreiddiol fersiwn DOS o Transport Tycoon Deluxe.
description.da_DK = Originalgrafik fra Transport Tycoon Deluxe DOS-version.
description.de_DE = Original Transport Tycoon Deluxe DOS Basisgrafiken.
description.el_GR = Αρχικά γραφικά από το Transport Tycoon Deluxe έκδοση DOS.
description.en_GB = Original Transport Tycoon Deluxe DOS edition graphics.
description.en_AU = Original Transport Tycoon Deluxe DOS edition graphics.
description.en_US = Original Transport Tycoon Deluxe DOS edition graphics.
description.es_ES = Gráficos originales de Transport Tycoon Deluxe versión DOS.
description.et_ET = Algse Transport Tycoon Deluxe DOSi versiooni graafika.
description.fi_FI = Alkuperäiset Transport Tycoon Deluxe DOS grafiikat.
description.et_EE = Algse Transport Tycoon Deluxe DOSi versiooni graafika.
description.fi_FI = Alkuperäiset Transport Tycoon Deluxen DOS-version grafiikat.
description.fr_FR = Graphiques originaux de Transport Tycoon Deluxe (version DOS).
description.gd_GB = Grafaigeachd aig an deasachadh DOS tùsail aig Transport Tycoon Deluxe.
description.gl_ES = Graficos da edición orixinal de Transport Tycoon Deluxe para DOS.
description.hr_HR = Originalna grafika za Transport Tycoon Deluxe DOS izdanje.
description.hu_HU = Az eredeti Transport Tycoon Deluxe DOS verziójának grafikája.
description.id_ID = Grafik orisinil Transport Tycoon Deluxe versi DOS.
description.is_IS = Upprunalega grafíkin úr Transport Tycoon Deluxe DOS útgáfunni.
description.it_IT = Grafica originale di Transport Tycoon Deluxe, edizione DOS.
description.ja_JP = Transport Tycoon Deluxe オリジナル版 グラフィック (DOS)
description.ko_KR = 오리지널 트랜스포트 타이쿤 디럭스 도스 에디션의 그래픽입니다.
description.lb_LU = Original Transport Tycoon Deluxe DOS Editioun Grafik.
description.lt_LT = Originali Transport Tycoon Deluxe DOS leidimo grafika.
description.nb_NO = Original grafikk fra Transport Tycoon Deluxe for DOS.
description.nl_NL = Originele graphics van de Transport Tycoon Deluxe DOS-versie.
description.nn_NO = Original grafikk frå Transport Tycoon Deluxe for DOS.
description.pl_PL = Oryginalna edycja grafik dla Transport Tycoon Deluxe DOS.
description.pt_BR = Gráficos Originais do Transport Tycoon Deluxe, Edição DOS.
description.pt_PT = Gráficos originais da edição DOS de Transport Tycoon Deluxe.
description.ro_RO = Setul grafic original al Transport Tycoon Deluxe pentru DOS.
description.ru_RU = Оригинальная графика из Transport Tycoon Deluxe для DOS.
description.sk_SK = Pôvodná grafika Transport Tycoon Deluxe (DOS).
description.sl_SL = Originalna grafika Transport Tycoon Deluxe za različico DOS.
description.sl_SI = Originalna grafika Transport Tycoon Deluxe za različico DOS.
description.sr_RS = Originalni skup grafika Transport Tycoon Deluxe DOS izdanja.
description.sv_SE = Originalgrafiken från Transport Tycoon Deluxe, DOS-utgåvan.
description.ta_IN = அசல் டிரான்ஸ்ஃபோர்ட் டைகூன் டீலக்ஸ் DOS பதிப்பு அசைவூட்டங்கள்.
description.th_TH = กราฟฟิกต้นตำหรับของ Transport Tycoon Deluxe DOS edition
description.tr_TR = Orijinal Transport Tycoon Deluxe DOS sürümü grafikleri.
description.uk_UA = Оригінальна графіка з Transport Tycoon Deluxe DOS edition.
description.vi_VN = Đồ họa gốc từ phiên bản Transport Tycoon Deluxe trên DOS
description.zh_CN = 运输大亨DOS豪华版原版图形包.
description.zh_TW = 原版 Transport Tycoon Deluxe DOS 版的圖形。
[files]

View File

@@ -10,34 +10,49 @@ version = 0
description = Original Transport Tycoon Deluxe DOS edition sounds.
description.af_ZA = Oorspronklike Transport Tycoon Deluxe DOS uitgawe klanke.
description.ar_EG = النسخة الاصلية من ترانسبورت تايكون ديلوكس الصوتية نسخة الدوس
description.be_BY = Арыгінальны набор гукавога афармленьня з гульні Transport Tycoon Deluxe для DOS.
description.bg_BG = Оригинални звуци на Transport Tycoon Deluxe за DOS.
description.ca_ES = Sons originals de Transport Tycoon Deluxe per a DOS.
description.cs_CZ = Původní sada zvuků Transport Tycoon Deluxe (verze pro DOS).
description.da_DA = Originallyd fra Transport Tycoon Deluxe DOS-version.
description.cy_GB = Effeithiau sain gwreiddiol fersiwn DOS o Transport Tycoon Deluxe.
description.da_DK = Originallyd fra Transport Tycoon Deluxe DOS-version.
description.de_DE = Original Transport Tycoon Deluxe DOS Basissounds.
description.el_GR = Αρχικοί ήχοι από το Transport Tycoon Deluxe έκδοση DOS.
description.en_GB = Original Transport Tycoon Deluxe DOS edition sounds.
description.en_AU = Original Transport Tycoon Deluxe DOS edition sounds.
description.en_US = Original Transport Tycoon Deluxe DOS edition sounds.
description.es_ES = Sonidos originales de Transport Tycoon Deluxe versión DOS.
description.et_ET = Algse Transport Tycoon Deluxe DOSi versiooni helid.
description.fi_FI = Alkuperäiset Transport Tycoon Deluxe DOS äänet.
description.et_EE = Algse Transport Tycoon Deluxe DOSi versiooni helid.
description.fi_FI = Alkuperäiset Transport Tycoon Deluxen DOS-version äänet.
description.fr_FR = Sons originaux de Transport Tycoon Deluxe (version DOS).
description.gd_GB = Fuaimean aig an deasachadh DOS tùsail aig Transport Tycoon Deluxe.
description.gl_ES = Sons da edición orixinal de Transport Tycoon Deluxe para DOS.
description.hr_HR = Originalni zvukovi za Transport Tycoon Deluxe DOS izdanje.
description.hu_HU = Az eredeti Transport Tycoon Deluxe DOS verziójának hangjai.
description.fr_FR = Sons originaux de Transport Tycoon Deluxe (version DOS).
description.id_ID = Efek suara orisinil Transport Tycoon Deluxe versi DOS.
description.is_IS = Upprunalega hljóðið úr Transport Tycoon Deluxe DOS útgáfunni.
description.it_IT = Suoni originali di Transport Tycoon Deluxe, edizione DOS.
description.ja_JP = Transport Tycoon Deluxe オリジナル版 効果音 (DOS)
description.ko_KR = 오리지널 트랜스포트 타이쿤 도스 에디션의 효과음입니다.
description.lb_LU = Original Transport Tycoon Deluxe DOS Editioun Sound.
description.lt_LT = Originalūs Transport Tycoon Deluxe DOS leidimo garsai.
description.nb_NO = Originale lyder fra Transport Tycoon Deluxe for DOS.
description.nl_NL = Originele geluiden van de Transport Tycoon Deluxe DOS-versie.
description.nn_NO = Originale lydar frå Transport Tycoon Deluxe for DOS.
description.pl_PL = Oryginalna edycja dźwięków dla Transport Tycoon Deluxe DOS.
description.pt_BR = Sons Originais do Transport Tycoon Deluxe, Edição DOS.
description.pt_PT = Sons originais da edição DOS de Transport Tycoon Deluxe.
description.ro_RO = Setul de sunete original al Transport Tycoon Deluxe pentru DOS.
description.ru_RU = Оригинальный набор звукового оформления из игры Transport Tycoon Deluxe для DOS.
description.sk_SK = Pôvodné zvuky Transport Tycoon Deluxe (DOS).
description.sl_SL = Originalni zvoki Transport Tycoon Deluxe različice DOS.
description.sl_SI = Originalni zvoki Transport Tycoon Deluxe različice DOS.
description.sr_RS = Originalni skup zvukova Transport Tycoon Deluxe DOS izdanja.
description.sv_SE = Originalljuden från Transport Tycoon Deluxe, DOS-utgåvan.
description.ta_IN = அசல் டிரான்ஸ்ஃபோர்ட் டைகூன் டீலக்ஸ் DOS பதிப்பு ஒலிகள்.
description.th_TH = เสียงต้นตำหรับของ Transport Tycoon Deluxe DOS edition
description.tr_TR = Orijinal Transport Tycoon Deluxe DOS sürümü sesleri.
description.uk_UA = Оригінальний набір звуків з Transport Tycoon Deluxe DOS edition.
description.vi_VN = Âm thanh gốc từ phiên bản Transport Tycoon Deluxe trên DOS
description.zh_CN = 运输大亨DOS豪华版原版音效包.
description.zh_TW = 原版 Transport Tycoon Deluxe DOS 版的音效。
[files]

View File

@@ -11,34 +11,49 @@ palette = DOS
description = Original Transport Tycoon Deluxe DOS (German) edition graphics.
description.af_ZA = Oorspronklike Transport Tycoon Deluxe DOS (German) uitgawe grafieke.
description.ar_EG = النسخة الاصلية من ترانسبورت تايكون ديلوكس الالمانية نسخة الدوس
description.be_BY = Арыгінальная графіка з нямецкай версіі Transport Tycoon Deluxe для DOS.
description.bg_BG = Оригинални графики на Transport Tycoon Deluxe за DOS (немски) .
description.ca_ES = Gràfics originals de Transport Tycoon Deluxe per a DOS (Alemany).
description.cs_CZ = Původní sada grafik Transport Tycoon Deluxe (německá verze pro DOS).
description.da_DA = Originalgrafik fra Transport Tycoon Deluxe DOS (Tysk) version.
description.cy_GB = Graffeg gwreiddiol fersiwn DOS (Almaenig) o Transport Tycoon Deluxe.
description.da_DK = Originalgrafik fra Transport Tycoon Deluxe DOS (Tysk) version.
description.de_DE = Original Transport Tycoon Deluxe DOS (Deutsch) Basisgrafiken.
description.el_GR = Αρχικά γραφικά από το Transport Tycoon Deluxe έκδοση DOS (Γερμανικό).
description.en_GB = Original Transport Tycoon Deluxe DOS (German) edition graphics.
description.en_AU = Original Transport Tycoon Deluxe DOS (German) edition graphics.
description.en_US = Original Transport Tycoon Deluxe DOS (German) edition graphics.
description.es_ES = Gráficos originales de Transport Tycoon Deluxe versión DOS (Alemán).
description.et_ET = Algse Transport Tycoon Deluxe DOSi (Saksa) versiooni graafika.
description.fi_FI = Alkuperäiset Transport Tycoon Deluxe DOS (Saksalainen) grafiikat.
description.et_EE = Algse Transport Tycoon Deluxe DOSi (Saksa) versiooni graafika.
description.fi_FI = Alkuperäiset Saksassa julkaistun Transport Tycoon Deluxen DOS-version grafiikat.
description.fr_FR = Graphiques originaux de Transport Tycoon Deluxe (version DOS allemande).
description.gd_GB = Grafaigeachd aig an deasachadh DOS (Gearmailteach) tùsail aig Transport Tycoon Deluxe.
description.gl_ES = Graficos da edición orixinal (alemá) de Transport Tycoon Deluxe para DOS.
description.hr_HR = Originalna grafika za Transport Tycoon Deluxe DOS (Njemački) izdanje.
description.hu_HU = Az eredeti Transport Tycoon Deluxe DOS (német) verziójának grafikája.
description.id_ID = Grafik orisinil Transport Tycoon Deluxe versi DOS (Jerman).
description.is_IS = Upprunalega grafíkin úr Transport Tycoon Deluxe DOS (þýsku) útgáfunni.
description.it_IT = Grafica originale di Transport Tycoon Deluxe (tedesco), edizione DOS.
description.ja_JP = Transport Tycoon Deluxe オリジナル版 グラフィック (DOS・ドイツ版)
description.ko_KR = 오리지널 트랜스포트 타이쿤 디럭스 도스 에디션(독일)의 그래픽입니다.
description.lb_LU = Original Transport Tycoon Deluxe DOS (Däitsch) Editioun Grafik.
description.lt_LT = Originali Transport Tycoon Deluxe DOS (Vokiečių) leidimo grafika.
description.nb_NO = Original grafikk fra Transport Tycoon Deluxe for DOS (tysk).
description.nl_NL = Originele graphics van de Duitse Transport Tycoon Deluxe DOS-versie.
description.nn_NO = Original grafikk frå Transport Tycoon Deluxe for DOS (tysk).
description.pl_PL = Oryginalna edycja grafik dla Transport Tycoon Deluxe DOS (German).
description.pt_BR = Gráficos Originais do Transport Tycoon Deluxe, Edição DOS alemã.
description.pt_PT = Gráficos originais da edição DOS (Alemã) de Transport Tycoon Deluxe.
description.ro_RO = Setul grafic original al Transport Tycoon Deluxe pentru DOS (ediţia germană).
description.ru_RU = Оригинальная графика из немецкой версии Transport Tycoon Deluxe для DOS.
description.sk_SK = Pôvodná grafika Transport Tycoon Deluxe (DOS) (v jazyku nemčina).
description.sl_SL = Originalna grafika Transport Tycoon Deluxe za nemško različico DOS.
description.sl_SI = Originalna grafika Transport Tycoon Deluxe za nemško različico DOS.
description.sr_RS = Originalni skup grafika nemačkog Transport Tycoon Deluxe DOS izdanja.
description.sv_SE = Originalgrafiken från Transport Tycoon Deluxe, DOS-utgåvan (tyska).
description.ta_IN = அசல் டிரான்ஸ்ஃபோர்ட் டைகூன் டீலக்ஸ் DOS (செருமன்) பதிப்பு அசைவூட்டங்கள்.
description.th_TH = กราฟฟิกต้นตำหรับของ Transport Tycoon Deluxe DOS (German) edition
description.tr_TR = Orijinal Transport Tycoon Deluxe DOS (Almanca) sürümü grafikleri.
description.uk_UA = Оригінальна графіка з Transport Tycoon Deluxe DOS edition (німецького).
description.vi_VN = Đồ họa gốc từ phiên bản Transport Tycoon Deluxe trên DOS (tiếng Đức)
description.zh_CN = 运输大亨DOS豪华德语版原版图形包.
description.zh_TW = 原版 Transport Tycoon Deluxe DOS 版 (德國版) 的圖形。
[files]

View File

@@ -11,34 +11,49 @@ palette = Windows
description = Original Transport Tycoon Deluxe Windows edition graphics.
description.af_ZA = Oorspronklike Transport Tycoon Deluxe Windows uitgawe grafieke.
description.ar_EG = النسخة الاصلية من ترانسبورت تايكون ديلوكس الرسومية نسخة وندوز
description.be_BY = Арыгінальная графіка з Transport Tycoon Deluxe для Windows.
description.bg_BG = Оригинални графики на Transport Tycoon Deluxe за Windows.
description.ca_ES = Gràfics originals de Transport Tycoon Deluxe per a Windows.
description.cs_CZ = Původní sada grafik Transport Tycoon Deluxe (verze pro Windows).
description.da_DA = Originalgrafik fra Transport Tycoon Deluxe Windows-version.
description.cy_GB = Graffeg gwreiddiol fersiwn Windows o Transport Tycoon Deluxe.
description.da_DK = Originalgrafik fra Transport Tycoon Deluxe Windows-version.
description.de_DE = Original Transport Tycoon Deluxe Windows Basisgrafiken.
description.el_GR = Αρχικά γραφικά από το Transport Tycoon Deluxe έκδοση Windows.
description.en_GB = Original Transport Tycoon Deluxe Windows edition graphics.
description.en_AU = Original Transport Tycoon Deluxe Windows edition graphics.
description.en_US = Original Transport Tycoon Deluxe Windows edition graphics.
description.es_ES = Gráficos originales de Transport Tycoon Deluxe versión Windows.
description.et_ET = Algse Transport Tycoon Deluxe Windowsi versiooni graafika.
description.fi_FI = Alkuperäiset Transport Tycoon Deluxe Windows grafiikat.
description.et_EE = Algse Transport Tycoon Deluxe Windowsi versiooni graafika.
description.fi_FI = Alkuperäiset Transport Tycoon Deluxen Windows-version grafiikat.
description.fr_FR = Graphiques originaux de Transport Tycoon Deluxe (version Windows).
description.gd_GB = Grafaigeachd aig an deasachadh Windows tùsail aig Transport Tycoon Deluxe.
description.gl_ES = Graficos da edición orixinal de Transport Tycoon Deluxe para Windows.
description.hr_HR = Originalna grafika za Transport Tycoon Deluxe Windows izdanje.
description.hu_HU = Az eredeti Transport Tycoon Deluxe Windows verziójának grafikája.
description.id_ID = Grafik orisinil Transport Tycoon Deluxe versi Windows.
description.is_IS = Upprunalega grafíkin úr Transport Tycoon Deluxe Windows útgáfunni.
description.it_IT = Grafica originale di Transport Tycoon Deluxe, edizione Windows.
description.ja_JP = Transport Tycoon Deluxe オリジナル版 グラフィック (Windows)
description.ko_KR = 오리지널 트랜스포트 타이쿤 디럭스 윈도우 에디션의 그래픽입니다.
description.lb_LU = Original Transport Tycoon Deluxe Windows Editioun Grafik.
description.lt_LT = Originali Transport Tycoon Deluxe Windows leidimo grafika.
description.nb_NO = Original grafikk fra Transport Tycoon Deluxe for Windows.
description.nl_NL = Originele graphics van de Transport Tycoon Deluxe Windows-versie.
description.nn_NO = Original grafikk frå Transport Tycoon Deluxe for Windows.
description.pl_PL = Oryginalna edycja grafik dla Transport Tycoon Deluxe Windows.
description.pt_BR = Gráficos Originais do Transport Tycoon, Edição Windows.
description.pt_PT = Gráficos originais da edição Windows de Transport Tycoon Deluxe.
description.ro_RO = Setul grafic original al Transport Tycoon Deluxe pentru Windows.
description.ru_RU = Оригинальная графика из Transport Tycoon Deluxe для Windows.
description.sk_SK = Pôvodná grafika Transport Tycoon Deluxe (Windows).
description.sl_SL = Originalna grafika Transport Tycoon Deluxe za različico oken(windows).
description.sl_SI = Originalna grafika Transport Tycoon Deluxe za različico oken(windows).
description.sr_RS = Originalni skup grafika Transport Tycoon Deluxe Windows izdanja.
description.sv_SE = Originalgrafiken från Transport Tycoon Deluxe, Windows-utgåvan.
description.ta_IN = அசல் டிரான்ஸ்ஃபோர்ட் டைகூன் டீலக்ஸ் விண்டோஸ் பதிப்பு அசைவூட்டங்கள்.
description.th_TH = กราฟฟิกต้ำตำหรับของ Transport Tycoon Deluxe Windows edition
description.tr_TR = Orijinal Transport Tycoon Deluxe Windows sürümü grafikleri.
description.uk_UA = Оригінальна графіка з Transport Tycoon Deluxe Windows edition.
description.vi_VN = Đồ họa gốc từ phiên bản Transport Tycoon Deluxe trên Windows
description.zh_CN = 运输大亨Windows豪华版原版图形包.
description.zh_TW = 原版 Transport Tycoon Deluxe Windows 版的圖形。
[files]

View File

@@ -10,34 +10,49 @@ version = 1
description = Original Transport Tycoon Deluxe Windows edition music.
description.af_ZA = Oorspronklike Transport Tycoon Deluxe Windows uitgawe musiek.
description.ar_EG = النسخة الاصلية من ترانسبورت تايكون ديلوكس الموسيقية نسخة وندوز
description.be_BY = Арыгінальны набор музычнага афармленьня з гульні Transport Tycoon Deluxe для Windows.
description.bg_BG = Оригинална музика на Transport Tycoon Deluxe за Windows.
description.ca_ES = Música Original de Transport Tycoon Deluxe per a Windows.
description.cs_CZ = Původní hudba Transport Tycoon Deluxe (verze pro Windows).
description.da_DA = Originalmusik fra Transport Tycoon Deluxe Windows-version.
description.cy_GB = Cerddoriaeth gwreiddiol fersion Windows o Transport Tycoon Deluxe.
description.da_DK = Originalmusik fra Transport Tycoon Deluxe Windows-version.
description.de_DE = Original Transport Tycoon Deluxe Windows Musikset.
description.el_GR = Αρχική μουσική από το Transport Tycoon Deluxe έκδοση Windows.
description.en_GB = Original Transport Tycoon Deluxe Windows edition music.
description.en_AU = Original Transport Tycoon Deluxe Windows edition music.
description.en_US = Original Transport Tycoon Deluxe Windows edition music.
description.es_ES = Música original de Transport Tycoon Deluxe versión Windows.
description.et_ET = Algse Transport Tycoon Deluxe Windowsi versiooni muusika.
description.fi_FI = Alkuperäinen Transport Tycoon Deluxe Windows musiikki.
description.et_EE = Algse Transport Tycoon Deluxe Windowsi versiooni muusika.
description.fi_FI = Alkuperäinen Transport Tycoon Deluxen Windows-version musiikki.
description.fr_FR = Musiques originales de Transport Tycoon Deluxe (version Windows).
description.gd_GB = Ceòl aig an deasachadh Windows tùsail aig Transport Tycoon Deluxe.
description.gl_ES = Música da edición orixinal de Transport Tycoon Deluxe para Windows.
description.hr_HR = Originalna muzika za Transport Tycoon Deluxe Windows izdanje.
description.hu_HU = Az eredeti Transport Tycoon Deluxe Windows verziójának zenéje.
description.id_ID = Musik pengiring orisinil Transport Tycoon Deluxe versi Windows.
description.is_IS = Upprunalega tónlistin úr Transport Tycoon Deluxe Windows útgáfunni.
description.it_IT = Musica originale di Transport Tycoon Deluxe, edizione Windows.
description.ja_JP = Transport Tycoon Deluxe オリジナル版 音楽 (Windows)
description.ko_KR = 오리지널 트랜스포트 타이쿤 디럭스 윈도우 에디션의 음악입니다.
description.lb_LU = Original Transport Tycoon Deluxe Windows Editioun Music.
description.lt_LT = Originali Transport Tycoon Deluxe Windows leidimo muzika.
description.nb_NO = Original musikk fra Transport Tycoon Deluxe for Windows.
description.nl_NL = Originele muziek van de Transport Tycoon Deluxe Windows-versie.
description.nn_NO = Original musikk frå Transport Tycoon Deluxe for Windows.
description.pl_PL = Oryginalna edycja utworów muzycznych w Transport Tycoon Deluxe Windows.
description.pt_BR = Música Original do Transport Tycoon Deluxe, Edição Windows
description.pt_PT = Música original da edição Windows de Transport Tycoon Deluxe.
description.ro_RO = Setul de muzică original al Transport Tycoon Deluxe pentru Windows.
description.ru_RU = Оригинальный набор музыкального оформления из игры Transport Tycoon Deluxe.
description.ru_RU = Оригинальный набор музыкального оформления из игры Transport Tycoon Deluxe для Windows.
description.sk_SK = Pôvodná hudba z Transport Tycoon Deluxe (Windows).
description.sl_SL = Originalna glasba Transport Tycoon Deluxe različice oken(windows).
description.sl_SI = Originalna glasba Transport Tycoon Deluxe različice oken(windows).
description.sr_RS = Originalni skup muzičkih numera Transport Tycoon Deluxe Windows izdanja.
description.sv_SE = Originalmusiken från Transport Tycoon Deluxe, Windows-utgåvan.
description.ta_IN = அசல் டிரான்ஸ்ஃபோர்ட் டைகூன் டீலக்ஸ் விண்டோஸ் பதிப்பு இசை.
description.th_TH = เพลงต้นตำหรับชอง Transport Tycoon Deluxe Windows edition
description.tr_TR = Orijinal Transport Tycoon Deluxe Windows sürümü müzikleri.
description.uk_UA = Оригінальна музика з Transport Tycoon Deluxe Windows edition.
description.vi_VN = Nhạc gốc từ phiên bản Transport Tycoon Deluxe trên Windows
description.zh_CN = Transport Tycoon Deluxe运输大亨Windows豪华版的原版音乐包
description.zh_TW = 原版 Transport Tycoon Deluxe Windows 版的音樂。
[files]

View File

@@ -10,34 +10,49 @@ version = 0
description = Original Transport Tycoon Deluxe Windows edition sounds.
description.af_ZA = Oorspronklike Transport Tycoon Deluxe Windows uitgawe klanke.
description.ar_EG = النسخة الاصلية من ترانسبورت تايكون ديلوكس الصوتية نسخة وندوز
description.be_BY = Арыгінальны набор гукавога афармленьня з гульні Transport Tycoon Deluxe для Windows.
description.bg_BG = Оригинални звуци на Transport Tycoon Deluxe за Windows.
description.ca_ES = Sons originals de Transport Tycoon Deluxe per a Windows.
description.cs_CZ = Původní sada zvuků Transport Tycoon Deluxe (verze pro Windows).
description.da_DA = Originallyd fra Transport Tycoon Deluxe Windows-version.
description.cy_GB = Effeithiau sain gwreiddiol fersiwn Windows o Transport Tycoon Deluxe.
description.da_DK = Originallyd fra Transport Tycoon Deluxe Windows-version.
description.de_DE = Original Transport Tycoon Deluxe Windows Basissounds.
description.el_GR = Αρχικοί ήχοι από το Transport Tycoon Deluxe έκδοση Windows.
description.en_GB = Original Transport Tycoon Deluxe Windows edition sounds.
description.en_AU = Original Transport Tycoon Deluxe Windows edition sounds.
description.en_US = Original Transport Tycoon Deluxe Windows edition sounds.
description.es_ES = Sonidos originales de Transport Tycoon Deluxe versión Windows.
description.et_ET = Algse Transport Tycoon Deluxe Windowsi versiooni helid.
description.fi_FI = Alkuperäiset Transport Tycoon Deluxe Windows äänet.
description.et_EE = Algse Transport Tycoon Deluxe Windowsi versiooni helid.
description.fi_FI = Alkuperäiset Transport Tycoon Deluxen Windows-version äänet.
description.fr_FR = Sons originaux de Transport Tycoon Deluxe (version Windows).
description.gd_GB = Fuaimean aig an deasachadh Windows tùsail aig Transport Tycoon Deluxe.
description.gl_ES = Sons da edición orixinal de Transport Tycoon Deluxe para Windows.
description.hr_HR = Originalni zvukovi za Transport Tycoon Deluxe Windows izdanje.
description.hu_HU = Az eredeti Transport Tycoon Deluxe Windows verziójának hangjai.
description.fr_FR = Sons originaux de Transport Tycoon Deluxe (version Windows).
description.id_ID = Efek suara orisinil Transport Tycoon Deluxe versi Windows.
description.is_IS = Upprunalega hljóðið úr Transport Tycoon Deluxe Windows útgáfunni.
description.it_IT = Suoni originali di Transport Tycoon Deluxe, edizione Windows.
description.ja_JP = Transport Tycoon Deluxe オリジナル版 効果音 (Windows)
description.ko_KR = 오리지널 트랜스포트 타이쿤 디럭스 윈도우 에디션의 효과음입니다.
description.lb_LU = Original Transport Tycoon Deluxe Windows Editioun Sound.
description.lt_LT = Originalūs Transport Tycoon Deluxe Windows leidimo garsai.
description.nb_NO = Originale lyder fra Transport Tycoon Deluxe for Windows.
description.nl_NL = Originele geluiden van de Transport Tycoon Deluxe Windows-versie.
description.nn_NO = Originale lydar frå Transport Tycoon Deluxe for Windows.
description.pl_PL = Oryginalna edycja dźwięków dla Transport Tycoon Deluxe Windows.
description.pt_BR = Sons Originais do Transport Tycoon Deluxe, Edição Windows.
description.pt_PT = Sons originais da edição Windows de Transport Tycoon Deluxe.
description.ro_RO = Setul de sunete original al Transport Tycoon Deluxe pentru Windows.
description.ru_RU = Оригинальный набор звукового оформления из игры Transport Tycoon Deluxe для Windows.
description.sk_SK = Pôvodné zvuky Transport Tycoon Deluxe (Windows).
description.sl_SL = Originalni zvoki Transport Tycoon Deluxe različice oken(windows).
description.sl_SI = Originalni zvoki Transport Tycoon Deluxe različice oken(windows).
description.sr_RS = Originalni skup zvukova Transport Tycoon Deluxe Windows izdanja.
description.sv_SE = Originalljuden från Transport Tycoon Deluxe, Windows-utgåvan.
description.ta_IN = அசல் டிரான்ஸ்ஃபோர்ட் டைகூன் டீலக்ஸ் விண்டோஸ் பதிப்பு ஒலிகள்.
description.th_TH = เสียงต้นตำหรับของ Transport Tycoon Deluxe Windows edition
description.tr_TR = Orijinal Transport Tycoon Deluxe Windows sürümü sesleri.
description.uk_UA = Оригінальний набір звуків з Transport Tycoon Deluxe Windows edition.
description.vi_VN = Âm thanh gốc từ phiên bản Transport Tycoon Deluxe trên Windows
description.zh_CN = Transport Tycoon Deluxe Windows (运输大亨Windows豪华版)的原版音效包.
description.zh_TW = 原版 Transport Tycoon Deluxe Windows 版的音效。
[files]

View File

@@ -1,3 +1,214 @@
1.3.3-RC2 (2013-11-24)
------------------------------------------------------------------------
- Fix: [Script] Prevent scripts from crashing OpenTTD when they send text with command codes to user editable texts such as sign and station names [FS#5818] (r26093, r26092)
- Fix: Occasional hanging when client joins [FS#5811] (r26043)
- Fix: Multi line text was handled incorrectly causing glitches [FS#5809] (r26037, r26036)
1.3.3-RC1 (2013-11-17)
------------------------------------------------------------------------
- Fix: Crash when the ICU layouter thinks a font is corrupted [FS#5711] (r26029, r26018, r26017, r26016, r26015)
- Fix: Make the installer warning about Windows XP SP3 not trigger on the 64 bit Windows XP which is not really Windows XP to start with [FS#5773] (r26028)
- Fix: Only forward key presses to the IME system if an edit box has the input focus (r26023, r25693, r25691, r25689, r25686, r25684, r25682, r25681, r25667)
- Fix: Having trains miss a platform that is just being modified is less of a problem than having trains stop twice without moving [FS#5684] (r26013)
- Fix: --help text of ./configure for packages that require pkg-config (r26011)
- Fix: The AI/GS library name to use in Import, is not the name given by GetName but GetInstanceName [FS#5662] (r26010)
- Fix: [Windows] Conditional expression with enumeral with non-enumeral type (r26009)
- Fix: Game script showing vehicle on e.g. a goal, then the vehicle being removed and eventually being replaced by a non-user vehicle (most likely smoke) causing an assertion to trigger [FS#5804] (r26007, r26006)
- Fix: Crash when transferring savegame from server to client [FS#5478] (r26005)
- Fix: [OSX] Text input into an edit box would trigger hotkeys [FS#5705] (r26003, r25743, r25671)
- Fix: Comma key collided with F12 key for hotkeys; also remove '+' as that is generally not a key (the '+' on the numpad is a separate one) [FS#5679] (r25973)
- Fix: Rail laying sounds of others could be heard in multiplayer [FS#5665] (r25972)
- Fix: [SDL] Recursive mutex locking when changing blitter [FS#5787] (r25970)
- Fix: The wrong vehicle would be taken in a shared order vehicle list window when the ID >= 65536, causing assertions triggering later on [FS#5800] (r25965)
- Fix: [OSX] Compilation under OSX 10.9 [FS#5797] (r25962, r25951, r25950, r25913)
- Fix: [NewGRF] A powered rail type implies it is compatible as well, but some NewGRF did not state that causing the path reservation code to bail out in some cases because there was no compatible path [FS#5779] (r25961)
- Fix: Temporary persistent storage modifications, e.g. command tests or those from GUI, were not properly reset, creating the possibility of desyncs [FS#5772] (r25956)
- Fix: Train's 'force proceed' status gets reset when the track on the other side of the tile has a signal [FS#5723] (r25955)
- Fix: Wrong signal conversions for savegames from before 0.4.5 [FS#5731, FS#5732] (r25954, r25953)
- Fix: Do not skip numbers when skipping spaces and other sorting 'improving' characters [FS#5719] (r25952)
- Fix: Text direction forcing characters were not filtered out, but shown as ? when ICU was not used for layouting. These are included in chat and console messages to force them to be displayed right [FS#5683] (r25949)
- Fix: NewGRF inspect window in RTL mode (r25943)
- Fix: [NoGo] Preserve the relative town growth progress when changing the town growth rate [FS#5786] (r25931)
- Fix: Several drawing overflows in the signal GUI [FS#5733] (r25929, r25928, r25927)
- Fix: Center the edit sign window like all query windows (r25918)
- Fix: Initialization of default objects swapped cost and dates (r25868)
- Fix: Use the actual sprite dimensions for sizing the dropdown arrow of dropdown widgets (r25864)
- Fix: If the child widgets of a NWidgetHorizontal container do not fill the complete container, align them according to text direction [FS#5686] (r25862, r25729)
- Fix: When clearing font cache, also clear layout cache [FS#5737] (r25860)
- Fix: Goto button in order window was not always lowered when it should [FS#5783] (r25858, 25857)
- Fix: Searching for a suitable font failed, if one of the fonts had no '?' glyph, and no baseset is installed [FS#5704] (r25822, r25820)
- Fix: Sprite 0 was considered available, even if no baseset was loaded (r25821)
- Fix: [GS] Language file scanner considered filenames starting with '.' as valid translations, resulting in languages with empty name, which causes trouble [FS#5750] (r25818)
- Fix: [GS] Handle savegames which contain GS translations for languages with empty name more gently [FS#5750] (r25817)
- Fix: [Script] ScriptTile::IsBuildableRectangle could report true for tiles outside of the map, if they happened to wrap around into a valid area [FS#5754] (r25815)
- Fix: [Script] Decoding JSON data with an empty array from Admin port failed (r25809)
- Fix: Ensure the vehicle bar is high enough for the start/stop vehicle graphics [FS#5740] (r25805)
- Fix: Lower sprite and text at the vehicle bar if it is pressed [FS#5739] (r25804)
- Fix: Draw start/stop graphics of the vehicle bar at the right place in RTL mode [FS#5738] (r25803)
- Fix: [NewGRF] Do not allow changing palette when it is set by the NewGRF (r25794, r25793, r25972)
- Fix: Some spelling corrections to Catalan and Latin American town names [FS#5746] (r25775, r25774)
- Fix: If old savegames contain bridges over owned land, keep on drawing the bridges nevertheless [FS#5725] (r25753)
- Fix: Several RTL alignment issues [FS#5692] (r25733, r25732, r25731)
- Fix: NWidgetMatrix used pip_pre and pip_post inconsistently and incorrectly, causing misalignment for RTL [FS#5686] (r25727)
- Fix: Right side of object class string was misaligned (r25726)
- Fix: [OSX] Do not pass -mmacosx-version-min to compilers that do not support it (r25706)
- Fix: Autoreplace/renew also refits free wagons [FS#5700] (r25698)
- Fix: Textbuf caret rendering for complex scripts (e.g. Tamil) (r25696, r25694, r25652, r25651, r25092, r25091)
- Fix: Vehicle::MarkDirty must be called for the front engine [FS#5700] (r25695)
- Fix: [Win32] Several issues regarding conversion of characters (r25677, r25676, r25675, r25674, r25673)
- Fix: [Win32] Handle Unicode characters from outside the BMP correctly (r25672, r25670, r25669, r25668)
- Fix: [OSX] Crash when unhiding the main window [FS#4689] (r25665)
- Fix: [OSX] Bootstrap downloading of a baseset did not work [FS#4847] (r25664)
- Fix: [OSX] Monospace font detection [FS#4857] (r25663, r25662)
- Fix: [OSX] Rework font detection to work even if no default font sprites are present [FS#4847] (r25661)
- Fix: [OSX] The name is OpenTTD, not OTTD (r25660)
- Fix: [OSX] System mouse cursor could become visible during dragging [FS#4420] (r25659)
- Fix: [OSX] The mouse cursor would sometimes jump near the window borders [FS#4392] (r25658)
- Fix: [OSX] The new 10.7 fullscreen code can now also be compiled with older SDK versions [FS#4744] (r25656)
- Fix: [OSX] Mouse cursor was not displayed properly after switching to fullscreen on 10.7+ (r25655)
- Fix: Improve character and word deletion for CJK languages and complex scripts (r25654, r25653)
- Fix: [OSX] Define version constants before they are used (r25643)
- Fix: Some icu_config scripts are too stupid to separate two ldflags by spaces, thus only call it with one (r25642, r25638)
- Fix: Do not suggest a start date for the game when there will be no vehicles available at all (r25640, r25639)
- Fix: City list sort of population and rating are reversed compared to the icon [FS#5666] (r25630)
- Fix: [Script] Give a slightly less generic error when removing inexisting rail [FS#5651] (r25614)
- Fix: [Script] Do not return ERR_UNKNOWN when trying to move an order to its current location [FS#5648] (r25612)
- Fix: Various misreferences in AI and GS changelog [FS#5649] (r25607)
- Fix: [Script] If a NewGRF returned station type that could not be built by an AI via callback 18, an unknown error would be thrown instead of falling back to the default station [FS#5641] (r25605)
- Fix: Only the front engine's date of last service was updated [FS#5550] (r25604)
1.3.2 (2013-07-27)
------------------------------------------------------------------------
(None)
1.3.2-RC2 (2013-07-13)
------------------------------------------------------------------------
- Fix: [Admin] End-of-rcon data could not be determined reliably for any rcon command [FS#5643] (r25598, r25588, r25587)
- Fix: [Content] When the server closed the connection, the client would for eternity try to read a packet and never timeout making it impossible to reconnect [FS#5635] (r25597)
- Fix: [Script] Changing the script difficulty level in-game would also change the settings using the default even though they were not allowed to change in-game [FS#5644] (r25592)
- Fix: [Admin] Ensure that sent and received length of json strings are the same [FS#5646] (r25590, r25589)
- Fix: [Squirrel] Stack overflow did not show an error, due to the stack to throw the error already being full [FS#5320] (r25585)
- Fix: [Script] Documentation implied that XXList::AddItem has a default for value if it isn't filled in [FS#5638] (r25579, r25577)
- Fix: Layouter caused significant slowdown with text heavy windows, cache it to make it manageable (r25574, r25570, r25569, r25567, r25564)
- Fix: Make content list appear faster (r25573)
- Fix: Non-ICU layouter started new lines with the space which triggered the linebreak (r25568)
- Fix: If the next order cannot be resolved, reset the current order property instead of leaving it in an intermediate state [FS#5633] (r25562)
- Fix: [Squirrel] Infinite recursion loop in freeing data via a looping set of references [FS#5568] (r25558)
- Fix: One could build bridges over owned land of another company [FS#5524] (r25557)
- Fix: [Script] Texts from scripts were not validated before they were shown, causing an assertion to trigger [FS#5632] (r25555)
- Fix: Provide a warning when no vehicles are available, and tell what to do in that case [FS#5530] (r25553)
- Fix: Possible reading of uninitialised memory due to undefined execution order (r25551)
- Fix: [Windows] Race condition between two drawing threads could crash OpenTTD [FS#5571] (r25550)
- Fix: ICU returns the width of the visual run as if the trailing space was added (in case a newline was added). This caused the width to be more than the requested width, but it would still be drawn correctly [FS#5626] (r25547)
- Fix: Small memory leaks (r25546)
- Fix: [GS] The checks and validations for setting the extra text in the town window became too stringent [FS#5625] (r25544)
1.3.2-RC1 (2013-06-30)
------------------------------------------------------------------------
- Remove: SETX(Y) does not work at all with other than default fonts, so get rid of it (r25454)
- Fix: strndup should not examine strings beyond its upper limit [FS#5621] (r25527)
- Fix: Proper support for Brahmic scripts (e.g. Tamil and Thai) [FS#5481] (r25526, r25525, r25524, r25514, r25513, r25512, r25511, r25501, r25493, r25485, r25483, r25482, r25481, r25478, r25477, r25476, r25474, r25473, r25472, r25471, r25470, r25469, r25468, r25467, r25466, r25465, r25463, r25462, r25455, r25452, r25451, r25450, r25447, r25446, r25445, r25444, r25443, r25442, r25441, r25440, r25439, r25438, r25437, r25436, r25343, r25157)
- Fix: SDL does not give an event when an application gets mouse focus while going to full screen, so manually force the mouse-is-in-window state [FS#5587] (r25523)
- Fix: [NewGRF] When cargo NewGRF define a multiplier to modify vehicle capacities, use the same multiplier to modify loading speed (r25497, r25479)
- Fix: When addings bits to a (train) station, the train trying to stop there could overshoot the (new) stop location and not stop at all [FS#5553] (r25495)
- Fix: The face of the manager differed on clients when the company was started after the clients joined [FS#5610] (r25491, r25490)
- Fix: Do not send encoded texts to names, but decode them into a plain C string and then pass them on [FS#5613] (r25489, r25488)
- Fix: Do not allow control codes in names of things (signs, vehicles, towns, stations, etc), so they have a known maximum fixed size and are, by definition, the same for everyone (r25487)
- Fix: Missing length validation for town and president names in script APIs (r25486)
- Fix: [OSX] OS X SDK versions >= 10.5 always have a non-const iconv declaration (r25480)
- Fix: Disable the depot-refit button in the order GUI, if the consist is not refittable unless it already has a refit order (r25459, r25458, r25457)
- Fix: When town creation failed, removing remnants of the construction failed on protected houses [FS#5603] (r25429)
- Fix: There were two hotkeys to toggle between 'unload' and 'unload if possible' (r25406)
- Fix: The size of station construction windows could oscillate when resizing the window moved the mouse into the window [FS#5596] (r25395)
- Fix: Restrict renaming engines to the server, just like renaming towns (r25394)
- Fix: Loading only 8 bits into a 16 bit variable could cause endianness problems (r25337)
- Fix: Check for zero width space in translations and fail upon finding them [FS#5589] (r25326)
- Fix: [SDL] Keyboard input stopped working after fullscreen toggle [FS#5580] (r25318)
- Fix: Proper size-estimation for numbers with n digits, i.e. not assume a particular number is the widest [FS#5562] (r25314, r25313)
- Fix: Do not focus the editbox in the NewGRF window, if there is no editbox visible (r25307)
- Fix: Game Script APIs that execute a DoCommand were returning the same result as in TestMode during world generation [FS#5561] (r25305)
- Fix: Build railway fences next to objects, even if they are owned by the same company [FS#5565] (r25302)
- Fix: gcc4.6 removed -mno-cygwin option (r25266)
1.3.1 (2013-06-01)
------------------------------------------------------------------------
- Fix: When overbuilding a reserved track with a non-track station tile, that tile would remain reserved and eventually trigger a crash upon removal [FS#5540] (r25251)
1.3.1-RC1 (2013-05-17)
------------------------------------------------------------------------
- Feature: Translations of baseset descriptions via language files (r25209, r25205)
- Feature: Faroese and Scottish Gaelic translations (r25198, r25176)
- Feature: Plural form to be used by Scottish Gaelic (1,11; 2,12; 3..10, 13..19; other) (r25078)
- Change: [strgen] Allow any number of colour codes in translations (r25193, r25192, r25191)
- Change: [Win32] MSVC 2010 comes with stdint.h (r25128)
- Change: Be slightly more lenient with trying to detect a subversion repository in case someone has a sparse tags checkout. In that case the .svn folder misses from the $ROOT_DIR because it is in the $ROOT_DIR/.. (i.e. tags) folder (r25107)
- Fix: 'No station' error was given, even when there was a station that way occupied or not yours [FS#5546] (r25243)
- Fix: Crash when AI is executing a command as it is bankrupted (removed from the game) [FS#5547] (r25236)
- Fix: Give bridges owned by noone (from bankrupt companies) to the first company which replaces the bridge. Everyone could have removed/rebuild the bridge anyway [FS#5541] (r25231, r25227)
- Fix: [NewGRF] Revise when vehicle running sound effects 04, 07 and 08 are played; in depot or tunnel, or when crashed or stopped: No sound. Braking: Effect 08 instead of 07 [FS#5538] (r25226)
- Fix: [NewGRF] Play vehicle sound effect also for planes (r25225)
- Fix: [NewGRF] cur_speed is only valid for the front engine, so make other engines in the consist use the speed of the front [FS#5534] (r25224)
- Fix: [NewGRF] Make tick_counters work the same for vehicles (r25223, r25222)
- Fix: [NewGRF] IsCompatibleTrainStationTile() is not a symmetric function. Clarify the parameters and fix the cases were they were swapped (r25221)
- Fix: Consider map border as water with repsect to river/canal continuation (r25220)
- Fix: [Script] Clarify on which tiles IsDesertTile and IsSnowTile work, i.e. the ones without infrastructure or buildings, and introduce GetTerrainType for the cases where IsDesertTile/IsSnowTile do not work [FS#5537] (r25213)
- Fix: The level crossing sound is an ambient sound and not a new year sound (r25200)
- Fix: Original train and road vehicle acceleration did no longer respect bridge speed limits [FS#5523] (r25167)
- Fix: [Win32] Do not statically link to SHGetFolderPath as it may not exist, and improve its emulation [FS#5522] (r25155, r25153)
- Fix: [Win32] Do not store invalid paths in the search path list (r25154)
- Fix: Remove stray reservation from savegames affected by FS#5510 et al. upon loading [FS#5520] (r25152)
- Fix: [Script] XXBase::Chance function did not work for large values (>65535) [FS#5517] (r25148)
- Fix: Several typos/inconsistencies in English strings [FS#5496] (r25144, r25143)
- Fix: When extra dynamite was disabled, towns would be allowed to clear bridges with trams (r25141)
- Fix: Towns are build as OWNER_TOWN, so they also need to be removed as OWNER_TOWN otherwise parts might remain [FS#5519] (r25140)
- Fix: Editboxes could become too small when resizing windows (r25121)
- Fix: Game script language files did not work, when inside a tar [FS#5509] (r25117, r25114)
- Fix: [NewGRF] Acceleration of NewGRF aircraft was too fast, while acceleration of default aircraft was way too slow (r25115)
- Fix: Pass $LDFLAGS_BUILD to all endian_check compilations (r25108)
1.3.0 (2013-04-01)
------------------------------------------------------------------------
- Fix: Station rebuilding could leave reserved tiles which caused crashes later on [FS#5510, FS#5516] (r25132)
- Fix: When the count for a scrollbar was 0, the inter distance was subtracted too much causing a scrollbar with a negative size (r25123)
1.3.0-RC3 (2013-03-18)
------------------------------------------------------------------------
- Fix: Limit aircraft property 0D to 19, since the conversion result to km-ish/h needs to fit into a byte [FS#5492] (r25099)
- Fix: Clicking the statusbar crashed, when news were pending but no news were shown yet [FS#5486] (r25093)
- Fix: Make editbox character filters also apply to pasted content from clipboard (r25090, r25089)
- Fix: Catch exception anonymously, if the exception content is not of interest [FS#5500] (r25081)
1.3.0-RC2 (2013-03-05)
------------------------------------------------------------------------
- Fix: Make sizes of the station preview list and direction selection identical in the station build window [FS#5472] (r25064)
- Fix: When allocation of the sprite cache fails, try to allocate less memory and display an error message later on (r25061)
- Fix: Refactor Script Debug GUI to only set widget states in OnInvalidateData [FS#5490] (r25052)
- Fix: Do not let gcc include files from the 'standard C' include directories to avoid inclusion of header files at the top of the preprocessed nfo files, which cause NFOrenum/GRFcodec to make invalid assumptions about the NFO version (r25050)
- Fix: Minimise gaps feature caused removal to only happen at the signal build interval instead of the implicit interval of 1 [FS#5479] (r25038)
- Fix: Green path signals would be shown when building them 'under' a train, and they would keep showing green until they were passed again [FS#5480] (r25037)
1.3.0-RC1 (2013-02-19)
------------------------------------------------------------------------
- Feature: Searching of (missing) content via GrfCrawler (r25024, r25023)
- Change: Cleanup goals and cargo monitors of companies when they go bankrupt or are taken over (r24986)
- Change: Apply the same name sorting rules to content and NewGRF list as for the server list (r24983)
- Fix: [SDL] Crash after bootstrap download of 32bits base set due to referencing a deleted mutex [FS#5466] (r25017)
- Fix: [SDL] Improve 8bpp hardware palette support. Instead of always requesting SDL_HWPALETTE, it is now only done for 8bp blitters in fullscreen mode (r25003, r25002, r24993)
- Fix: Set vehicle's service interval is percent flag appropriately on creation [FS#5137] (r24998)
- Fix: When choosing a train in a depot to attach a newly purchased wagon to, do not consider trains currently moving in and out of the depot (r24987)
- Fix: [Script] Crash when passing too many parameters [FS#5465] (r24982, r24981, r24980)
1.3.0-beta2 (2013-02-07)
------------------------------------------------------------------------
- Feature: [NewGRF] Station randomisation triggers (r24906, r24905)
@@ -1703,7 +1914,7 @@
- Fix: The lock in the company window was only drawn for your own company [FS#3427] (r18729)
- Fix: Some invalid gender/plural indices in strings, which could eventually cause crashes [FS#3480] (r18727)
- Fix: With non-uniform industries the 'supplies' text when building a station could be incorrect (missing a cargo) [FS#3463] (r18726)
- Fix: Refitting a non-refittable vehicle to it's default cargotype failed, causing problems for AIs [FS#3475] (r18724)
- Fix: Refitting a non-refittable vehicle to its default cargotype failed, causing problems for AIs [FS#3475] (r18724)
- Fix: The join station window did not account for scrolling, so if you did scroll the station was not joined with the selected station [FS#3476] (r18713)
- Fix: The wrong town is mentioned in the error when trying to make one way roads of town owned roads [FS#3478] (r18710)
- Fix: Animation buffer for 32bpp-anim blitter was only validated during sprite blitting, other drawing operations did not check it. Initial startup and window resize could therefore lead to crash [FS#3464] (r18709)
@@ -2364,7 +2575,7 @@
- Feature: [NewGRF] Add support for property 0x13 for Bridges. In other words, one can now specifies a 16 bits cost multiplier (r14172)
- Feature: Make it possible to choose between the DOS and Windows graphics packs while retaining the possibility to override the palette (r14151)
- Feature: Increase the size of the console backlog. Now it'll only remove backlog items when there are more than a threshold and when they are there longer than (another) threshold (r14056)
- Feature: Make it possible to filter list_patches output like it's done for other list_* console commands (r14041)
- Feature: Make it possible to filter list_patches output like it is done for other list_* console commands (r14041)
- Feature: Path based signalling (r13926-13967)
- Feature: Show [total-]cargo info in depot when [ctrl-]right-clicking on vehicle (r13923)
- Feature: NewGRF presets, selected by a drop down list in the NewGRF window. Presets are saved in the config file (r13781)
@@ -2444,7 +2655,7 @@
- Fix: Order pool seemed to look full when it was not as it only checked whether it was possible to allocate a new block of pool items instead of checking for free pool items (r14547)
- Fix: Do not deliver cargo to industries not inside station catchment area [FS#2138] (r14530)
- Fix: Allocate stub (empty) sound entries when loading an empty/corrupt/incorrectly sized sample.cat instead of making valid NewGRFs fail to load (r14527)
- Fix: Make sure trains stop at the end of a station; a 3/8th length train did stop 2/8th of it's length too early causing a 63/8th long train not to fit in a 4 tile station [FS#2379] (r14526)
- Fix: Make sure trains stop at the end of a station; a 3/8th length train did stop 2/8th of its length too early causing a 63/8th long train not to fit in a 4 tile station [FS#2379] (r14526)
- Fix: Small possible chance of desync due to sorting on pointer instead of by (station) index [FS#2348] (r14463)
- Fix: When a road stop gets moved make sure to update the destination of RVs going to that road stop [FS#2330] (r14446)
- Fix: Support for spaces in directories passed to ./configure [FS#1802] (r14440)
@@ -2642,7 +2853,7 @@
- Fix: Do not crash very hard on unrecognised savegames, just go back to the intro menu instead (r12707)
- Fix: In some cases a news messages would not be shown [FS#1906] (r12683)
- Fix: Removing road pieces from a town gave you twice the intended penalty [FS#1920] (r12682)
- Fix: When a road vehicle has a tram only stop multiple times in a row in it's orders, only the first one would be skipped [FS#1918] (r12678)
- Fix: When a road vehicle has a tram only stop multiple times in a row in its orders, only the first one would be skipped [FS#1918] (r12678)
- Fix: Colour remaps on station sprites only worked for company colours [FS#1902] (r12674)
- Fix: Remove buggy buoys at tile 0 from old TTDP savegames (r12642)
- Fix: Possible NULL pointer dereference when reading some NewGRF data [FS#1913] (r12637)
@@ -3355,7 +3566,7 @@
- Fix: Some disaster-events fixed: combat chopper shoots from right position, submarine once again moves around (r8140, r8158)
- Fix: 'out of sprite memory' warning messages due to incorrect assumption of requested memory for sprites (r8133)
- Fix: Buoys are now built and numbered 1..9 not 9..1 [FS#538] (r8123)
- Fix: Clicking for more news properly cycles through the news history backwards, and does not show the first item doubly if it's already open (r8049)
- Fix: Clicking for more news properly cycles through the news history backwards, and does not show the first item doubly if it is already open (r8049)
- Fix: Crash when removing a town in the scenario editor while the query window is open for one of the town's tiles (r8030)
- Fix: Overflow of system-ticks was not handled properly, resulting in a possibly unresponsive server/client (r8028)
- Fix: Automatic pause interfering with 'pause_on_join setting' in MP when <shift> is pressed [FS#486] (r8027)
@@ -3476,7 +3687,7 @@
- Codechange: Show more correct capacity of articulated wagons in the train purchase list (r6650)
- Codechange: When showing tooltips, properly position the tooltip taking into account window dimensions and cursor (r6405)
- Codechange: Speed up the animated cursors a bit so they move once in a while at least (r6367)
- Codechange: Remove the 'unsorted' vehicle sorter, because it's plain useless (r6270)
- Codechange: Remove the 'unsorted' vehicle sorter, because it is plain useless (r6270)
- Codechange: Remove MSVC6 support. The compiler was too stupid and too many workarounds were needed. Please switch to mingw or VC2005++ express (r5286)
- Codechange: Allow a switch in Makefile.config to disable threads in OpenTTD (r5978)
- Codechange: [Windows] Add native x64 target to VS2005 project files (r5813)
@@ -3583,9 +3794,9 @@
- Fix: The wrong IP could get unbanned, e.g. 'unban 1.2.3.42' could result in unbanning 1.2.3.4
- Fix: It was possible to convert the railtype of a bridge while a train was on it
- Fix: It was possible to rename signs or waypoints with the chat box
- Fix: Be more strict what it means for an aircraft to be in a hangar: It's not just being stopped on a hangar tile
- Fix: If a road vehicle is on a road depot tile and stopped does not mean it's in the depot. Use the proper test for this
- Fix: [AI] The AI should send a plane into a hangar if it's not in a hangar _or_ not stopped, not when it's not in a hangar _and_ not stopped
- Fix: Be more strict what it means for an aircraft to be in a hangar: It is not just being stopped on a hangar tile
- Fix: If a road vehicle is on a road depot tile and stopped does not mean it is in the depot. Use the proper test for this
- Fix: [AI] The AI should send a plane into a hangar if it is not in a hangar _or_ not stopped, not when it is not in a hangar _and_ not stopped
- Fix: [AI] The trolly AI used information from the wrong industry when calculating the amount of to be transported goods
- Fix: [NTP] Fix NTP over bridges: do not check the rail type when on a bridge
- Fix: Truncate text in dropdown lists to stop text overflowing
@@ -3657,7 +3868,7 @@
- Fix: Update german and finnish languages (r3968)
- Fix: Properly set back the owner of a crossing/road-under bridge after removing it (r3967)
- Fix: [Autoreplace] Autoreplacing trains now keep their tile length instead of their pixel length [FS#67] (r3964)
- Fix: Mark the right tile as dirty. It's just a graphical glitch which happend in r1592 (r3962)
- Fix: Mark the right tile as dirty. It is just a graphical glitch which happend in r1592 (r3962)
- Fix: Fix crash when resizing news history window (r3961)
- Fix: Correctly implement minimum search, so road vehicles head twoards the closest station, not the last one in the list (r3960)
- Fix: The tooltips for raising and lowering land buttons in the scenario editor are interchanged [FS#61] (r3959)
@@ -3758,7 +3969,7 @@
- Fix: Spaces in the path to the MIDI files caused the Windows MIDI player to fail (r2563)
- Fix: Set server map name to the loaded name of the game/scenario (r2610)
- Fix: Improve the old pathfinder. Changed it to A* instead of Dijkstra. Benchmark shows that NTP is now around 10x faster than NPF (r2635)
- Fix: Correctly save and load company_value, it's 64 bits wide, not 32 bits (r2684)
- Fix: Correctly save and load company_value, it is 64 bits wide, not 32 bits (r2684)
- Fix: Volume control works now for the DirectMusic MIDI backend (r2712)
- Fix: Change the fence algorithm so it removes fences when no farm tile is adjacent (r2739)
- Fix: Tree tiles above the snow line got redrawn disproportionately often (r2750)
@@ -3888,7 +4099,7 @@
- Fix: Speeding up when pressing ALT+TAB (Windows) [SF#1114261]
- Fix: Signals disappear after typing text and pressing enter!. Signs in Scenario Editor have no owner so ignore that [SF#1149403]
- Fix: Single tile Bridge in Volcano City scenario. Some bridges still had the old single-tile bridge bug that was caused by improper town growth in combination with DC_AUTO. Fixed the scenario [SF#1149766]
- Fix: Stop startup memory corruption crash using optimized MSVC6. MSVC6 workaround as it's too stupid again for its own good [SF#1119147]
- Fix: Stop startup memory corruption crash using optimized MSVC6. MSVC6 workaround as it is too stupid again for its own good [SF#1119147]
- Fix: Dedicated server now accepts '-g' (load game) as param [SF#1101874]
- Fix: Crash with German umlauts in station names [SF#1155696]
- Fix: Segmentation fault when loading savegame, out of bounds array check [SF#1158618]
@@ -3914,7 +4125,7 @@
- Fix: [NewGRF] Helicopters are correctly recognized
- Fix: [Autoreplace] Made sure that planes only show planes in replace GUI and helicopters only show helicopters
- Fix: Crash when generating tropical maps
- Fix: [Autoreplace] Cheaters can no longer exploit autoreplace to get vehicles, that's not invented yet
- Fix: [Autoreplace] Cheaters can no longer exploit autoreplace to get vehicles, that is not invented yet
- Fix: [Autoreplace] Fixed a stupid bug introduced in r1687, that made a crash if anybody tried to autoreplace anything but an aircraft
- Fix: Expand rail stations beyond maximum spread
- Fix: [Autoreplace] Fixed a typo that could prevent autoreplaced aircraft from automatically go to a hangar
@@ -4000,7 +4211,7 @@
- Fix: Aircraft in hangar messages are now revalidated before display [SF#1104969]
- Fix: Destroyed train locks crossings [SF#1105112]
- Fix: Upgrade rail fails when train under bridge [SF#1105281]
- Fix: Trains do not think they're on a slope any more while they drive around in a tunnel [SF#1105959]
- Fix: Trains do not think they are on a slope any more while they drive around in a tunnel [SF#1105959]
- Fix: Buoys can now only be removed if no ship has it in their schedule. This makes buoys more useable in multiplayer games again, as buoys cannot be deleted by other players if they are used [SF#1105963]
- Fix: Graph's keys get confused [SF#1106354]
- Fix: Placing signals with 2x1 drags is treated as placing a single signal [SF#1106930]

View File

@@ -1012,6 +1012,12 @@ check_params() {
if [ -d "$ROOT_DIR/.svn" ] && [ -n "`svn help 2>/dev/null`" ]; then
log 1 "checking revision... svn detection"
elif [ -d "$ROOT_DIR/../.svn" ] && [ -n "`svn help 2>/dev/null`" ] && [ -n "`LC_ALL=C svn info $ROOT_DIR/.. | grep '^URL:.*tags$'`" ]; then
# subversion changed its behaviour; now not all folders have a .svn folder,
# but only the root folder. Since making tags requires a (sparse) checkout
# of the tags folder, the folder of the tag does not have a .svn folder
# anymore and this fails to detect the subversion repository checkout.
log 1 "checking revision... svn detection (tag)"
elif [ -d "$ROOT_DIR/.git" ] && [ -n "`git help 2>/dev/null`" ]; then
log 1 "checking revision... git detection"
elif [ -d "$ROOT_DIR/.hg" ] && [ -n "`hg help 2>/dev/null`" ]; then
@@ -1481,15 +1487,18 @@ make_cflags_and_ldflags() {
LDFLAGS="$LDFLAGS -mwin32"
fi
if [ "$os" = "MINGW" ] || [ "$os" = "CYGWIN" ]; then
flags="$flags -mno-cygwin"
if [ "$enable_console" != "0" ]; then
LDFLAGS="$LDFLAGS -mno-cygwin -Wl,--subsystem,console"
else
LDFLAGS="$LDFLAGS -mno-cygwin -Wl,--subsystem,windows"
if [ $cc_version -lt 46 ]; then
flags="$flags -mno-cygwin"
LDFLAGS="$LDFLAGS -mno-cygwin"
fi
LIBS="$LIBS -lws2_32 -lwinmm -lgdi32 -ldxguid -lole32"
if [ "$enable_console" != "0" ]; then
LDFLAGS="$LDFLAGS -Wl,--subsystem,console"
else
LDFLAGS="$LDFLAGS -Wl,--subsystem,windows"
fi
LIBS="$LIBS -lws2_32 -lwinmm -lgdi32 -ldxguid -lole32 -limm32"
if [ $cc_version -ge 44 ]; then
LDFLAGS_BUILD="$LDFLAGS_BUILD -static-libgcc -static-libstdc++"
@@ -1549,7 +1558,7 @@ make_cflags_and_ldflags() {
LDFLAGS="$OSX_LD_SYSROOT $LDFLAGS"
fi
if [ "$enable_universal" = "0" ] && [ $cc_version -ge 40 ]; then
if [ "$enable_universal" = "0" ] && [ $cc_version -gt 40 ]; then
# Only set the min version when not doing an universal build.
# Universal builds set the version elsewhere.
if [ "$cpu_type" = "64" ]; then
@@ -1709,9 +1718,9 @@ make_cflags_and_ldflags() {
# Some icu-configs have the 'feature' of not adding a space where others do add the space
if [ "$static_icu" != "0" ]; then
LIBS="$LIBS `$icu_config --ldflags-searchpath` `$icu_config --ldflags-libsonly | tr '\n\r' ' ' | sed s/licu/lsicu/g`"
LIBS="$LIBS `$icu_config --ldflags-searchpath` `($icu_config --ldflags-libsonly; $icu_config --ldflags-layout) | tr '\n\r' ' ' | sed s/licu/lsicu/g`"
else
LIBS="$LIBS `$icu_config --ldflags-searchpath` `$icu_config --ldflags-libsonly | tr '\n\r' ' '`"
LIBS="$LIBS `$icu_config --ldflags-searchpath` `($icu_config --ldflags-libsonly; $icu_config --ldflags-layout) | tr '\n\r' ' '`"
fi
fi
@@ -1745,7 +1754,7 @@ make_cflags_and_ldflags() {
fi
fi
if [ "$have_non_const_iconv" != "no" ]; then
if [ "$os" != "OSX" ] && [ "$have_non_const_iconv" != "no" ]; then
CFLAGS="$CFLAGS -DHAVE_NON_CONST_ICONV"
fi
fi
@@ -3429,7 +3438,7 @@ generate_settings() {
}
generate_grf() {
STAGE="[GRF]"
STAGE="[BASESET]"
make_sed
@@ -3479,7 +3488,7 @@ generate_src_osx() {
CFLAGS="-isysroot $osx_sdk_path $CFLAGS_orig"
LDFLAGS="-Wl,-syslibroot,$osx_sdk_path $LDFLAGS_orig"
fi
CFLAGS="$CFLAGS -D_SQ64 -DHAVE_NON_CONST_ICONV -DNO_QUICKTIME -UENABLE_COCOA_QUICKDRAW"
CFLAGS="$CFLAGS -D_SQ64 -DNO_QUICKTIME -UENABLE_COCOA_QUICKDRAW"
LIBS="`echo $LIBS | sed 's/-framework QuickTime//'`"
fi
@@ -3622,12 +3631,13 @@ showhelp() {
echo " --with-cocoa enables COCOA video driver (OSX ONLY)"
echo " --with-sdl[=sdl-config] enables SDL video driver support"
echo " --with-zlib[=zlib.a] enables zlib support"
echo " --with-liblzma[=liblzma.a] enables liblzma support"
echo " --with-liblzma[=\"pkg-config liblzma\"]"
echo " enables liblzma support"
echo " --with-liblzo2[=liblzo2.a] enables liblzo2 support"
echo " --with-png[=libpng-config] enables libpng support"
echo " --with-freetype[=freetype-config]"
echo " enables libfreetype support"
echo " --with-fontconfig[=pkg-config fontconfig]"
echo " --with-fontconfig[=\"pkg-config fontconfig\"]"
echo " enables fontconfig support"
echo " --with-icu[=icu-config] enables icu (used for right-to-left support)"
echo " --static-icu try to link statically (libsicu instead of"
@@ -3638,6 +3648,7 @@ showhelp() {
echo " --with-makedepend[=makedepend] enables makedepend support"
echo " --with-ccache enables ccache support"
echo " --with-distcc enables distcc support"
echo " --without-grfcodec disable usage of grfcodec and re-generation of base sets"
echo ""
echo "Some influential environment variables:"
echo " CC C compiler command"
@@ -3648,6 +3659,9 @@ showhelp() {
echo " LDFLAGS linker flags, e.g. -L<lib dir> if you"
echo " have libraries in a nonstandard"
echo " directory <lib dir>"
echo " CFLAGS_BUILD C compiler flags for build time tool generation"
echo " CXXFLAGS_BUILD C++ compiler flags for build time tool generation"
echo " LDFLAGS_BUILD linker flags for build time tool generation"
echo ""
echo "Use these variables to override the choices made by 'configure' or to help"
echo "it to find libraries and programs with nonstandard names/locations."

View File

@@ -150,7 +150,8 @@ Table of contents
Note: No additional authentication is required for rcon commands.
The server will reply with a ADMIN_PACKET_SERVER_RCON packet. Applications
The server will reply with one or more ADMIN_PACKET_SERVER_RCON packets.
Finally an ADMIN_PACKET_ADMIN_RCON_END packet will be sent. Applications
will not receive the answer twice if they have asked for the AdminUpdateType
ADMIN_UPDATE_CONSOLE, as the result is not printed on the servers console
(just like clients rcon commands).
@@ -160,6 +161,13 @@ Table of contents
Chat from the server itself will only be sent to the admin network when it
was not sent from the admin network.
Note that when content is queried or updated via rcon, the processing
happens asynchronously. But the ADMIN_PACKET_ADMIN_RCON_END packet is sent
already right after the content is requested as there's no immediate output.
Thus other packages and the output of content rcon command may be sent at
an arbitrary later time, mixing into the output of other console activity,
e.g. also of possible subsequent other rcon commands sent.
5.0) Sending chat
---- ------------

View File

@@ -70,7 +70,7 @@ ROOT_DIR=`pwd`
# Determine if we are using a modified version
# Assume the dir is not modified
MODIFIED="0"
if [ -d "$ROOT_DIR/.svn" ]; then
if [ -d "$ROOT_DIR/.svn" ] || [ -d "$ROOT_DIR/../.svn" ]; then
# We are an svn checkout
if [ -n "`svnversion | grep 'M'`" ]; then
MODIFIED="2"

View File

@@ -1,14 +1,13 @@
OpenTTD's known bugs
Last updated: 2012-06-01
Release version: 1.2.1
Last updated: 2013-11-24
Release version: 1.3.3-RC2
------------------------------------------------------------------------
Table of contents
-----------------
1.0) About
2.0) Known bugs in this release
* 2.1) Known bugs that will not be solved
2.0) Known bugs
1.0) About
@@ -17,36 +16,13 @@ All bugs listed below are marked as known. Please do not submit any bugs
that are the same as these. If you do, do not act surprised, because
we WILL flame you!!
Of course if you have more knowledge about any of these bugs, have more
specifics, we welcome you to report them. React to the given bug indicated
by the number below on http://bugs.openttd.org.
The current list of known bugs that we intend to fix can be found in our
bug tracking system at: http://bugs.openttd.org
Also check the closed bugs when searching for your bug in this system as
we might have fixed the bug in the mean time.
2.0) Known bugs in this release
---- --------------------------
The following bugs are known to exist in this release and we intend to
fix them. Some bugs are known but are not fixable or fixing them would
cause further problems. Those bugs can be found in the "Known bugs that
will not be solved" section.
The bugs in this section all refer to a ticket in our bug tracking system
that you can find at: http://bugs.openttd.org
If the bugs are closed but still listed here it means that the bug is fixed
and that the nightlies and next major release will not have that bug.
Issues prefixed with [OSX] are required to be fixed before we consider
officially supporting Mac OS X again. For now it remains unsupported and
we only apply bug fixes provided by the community but we are unable to fix
these bugs ourselves.
- 4857 [OSX] No support for detecting mono space font
- 4847 [OSX] No support for bootstrap downloading of base graphics
- 4744 [OSX] Crash when switching to full screen with OS X Lion
- 4689 [OSX] Crash when hiding window after coming from full screen
- 4420 [OSX] OS' mouse pointer still shows
- 2484 [OSX] Cannot enter CJK characters
2.1) Known bugs that will not be solved
2.0) Known bugs
---- ----------------------------------
This section lists all known bugs that we do not intend to fix and the
reasons why we think that fixing them is infeasible. We might make some
@@ -427,3 +403,44 @@ Mouse cursor going missing with SDL [FS#4997]:
We cannot fix this problem as SDL simply does not provide the
required information in these corner cases. This is a bug in SDL
and as such there is little that we can do about it.
Inconsistent catchment areas [FS#5661]:
Due to performance decisions the catchment area for cargo accepted
by a station for delivery to houses or industries differs from the
catchment area for cargo that is delivered to stations from houses
or industries.
Conceptually they work the same, but the effect in game differs.
They work by finding the closest destination "around" the source
which is within a certain distance. This distance depends on the
type of station, e.g. road stops have a smaller catchment area than
large airports. In both cases the bounding box, the smallest
rectangle that contains all tiles of something, is searched for the
target of the cargo, and then spiraling outwards finding the closest
tile of the target.
In the case of a station with two tiles spread far apart with a house
that is within the station's bounding box, it would be possible that
the spiraling search from the house does not reach one of the station
tiles before the search ends, i.e. all tiles within that distance
are searched. So the house does not deliver cargo to the station. On
the other hand, the station will deliver cargo because the house
falls within the bounding box, and thus search area.
It is possible to make these consistent, but then cargo from a house
to a station needs to search up to 32 tiles around itself, i.e. 64
by 64 tiles, to find all possible stations it could deliver to
instead of 10 by 10 tiles (40 times more tiles). Alternatively the
search from a station could be changed to use the actual tiles, but
that would require considering checking 10 by 10 tiles for each of
the tiles of a station, instead of just once.
Trains might not stop at platforms that are currently being changed [FS#5553]:
If you add tiles to or remove tiles from a platform while a train is
approaching to stop at the same platform, that train can miss the place
where it's supposed to stop and pass the station without stopping. This
is caused by the fact that the train is considered to already have stopped
if it's beyond its assigned stopping location. We can't let the train stop
just anywhere in the station because then it would never leave the station
if you have the same station in the order list multiple times in a row or
if there is only one station in the order list (see FS#5684).

View File

@@ -0,0 +1,50 @@
; $Id$
;
; This represents more or less nothingness
;
[metadata]
name = NoMusic
shortname = NULL
version = 0
fallback = true
!! description STR_BASEMUSIC_NONE_DESCRIPTION
[files]
theme =
old_0 =
old_1 =
old_2 =
old_3 =
old_4 =
old_5 =
old_6 =
old_7 =
old_8 =
old_9 =
new_0 =
new_1 =
new_2 =
new_3 =
new_4 =
new_5 =
new_6 =
new_7 =
new_8 =
new_9 =
ezy_0 =
ezy_1 =
ezy_2 =
ezy_3 =
ezy_4 =
ezy_5 =
ezy_6 =
ezy_7 =
ezy_8 =
ezy_9 =
[md5s]
[names]
[origin]
default = This file was part of your OpenTTD installation.

View File

@@ -0,0 +1,18 @@
; $Id$
;
; This represents more or less nothingness
;
[metadata]
name = NoSound
shortname = NULL
version = 2
fallback = true
!! description STR_BASESOUNDS_NONE_DESCRIPTION
[files]
samples =
[md5s]
[origin]
default = This file was part of your OpenTTD installation.

View File

@@ -0,0 +1,31 @@
; $Id$
;
; This represents the original graphics as on the non-German Transport
; Tycoon Deluxe DOS CD.
;
[metadata]
name = original_dos
shortname = TTDD
version = 1
palette = DOS
!! description STR_BASEGRAPHICS_DOS_DESCRIPTION
[files]
base = TRG1.GRF
logos = TRGI.GRF
arctic = TRGC.GRF
tropical = TRGH.GRF
toyland = TRGT.GRF
extra = OPENTTD.GRF
[md5s]
TRG1.GRF = 9311676280e5b14077a8ee41c1b42192
TRGI.GRF = da6a6c9dcc451eec88d79211437b76a8
TRGC.GRF = ed446637e034104c5559b32c18afe78d
TRGH.GRF = ee6616fb0e6ef6b24892c58c93d86fc9
TRGT.GRF = e30e8a398ae86c03dc534a8ac7dfb3b6
OPENTTD.GRF =
[origin]
default = You can find it on your Transport Tycoon Deluxe CD-ROM.
OPENTTD.GRF = This file was part of your OpenTTD installation.

View File

@@ -0,0 +1,19 @@
; $Id$
;
; This represents the original sounds as on the Transport
; Tycoon Deluxe DOS CD.
;
[metadata]
name = original_dos
shortname = TTDO
version = 0
!! description STR_BASESOUNDS_DOS_DESCRIPTION
[files]
samples = SAMPLE.CAT
[md5s]
SAMPLE.CAT = 422ea3dd074d2859bb51639a6e0e85da
[origin]
default = You can find it on your Transport Tycoon Deluxe CD-ROM.

View File

@@ -0,0 +1,31 @@
; $Id$
;
; This represents the original graphics as on the German Transport
; Tycoon Deluxe DOS CD. It contains one broken sprite.
;
[metadata]
name = original_dos_de
shortname = TTDD
version = 0
palette = DOS
!! description STR_BASEGRAPHICS_DOS_DE_DESCRIPTION
[files]
base = TRG1.GRF
logos = TRGI.GRF
arctic = TRGC.GRF
tropical = TRGH.GRF
toyland = TRGT.GRF
extra = OPENTTD.GRF
[md5s]
TRG1.GRF = 9311676280e5b14077a8ee41c1b42192
TRGI.GRF = da6a6c9dcc451eec88d79211437b76a8
TRGC.GRF = ed446637e034104c5559b32c18afe78d
TRGH.GRF = ee6616fb0e6ef6b24892c58c93d86fc9
TRGT.GRF = fcde1d7e8a74197d72a62695884b909e
OPENTTD.GRF =
[origin]
default = You can find it on your Transport Tycoon Deluxe CD-ROM.
OPENTTD.GRF = This file was part of your OpenTTD installation.

View File

@@ -0,0 +1,31 @@
; $Id$
;
; This represents the original graphics as on the Transport
; Tycoon Deluxe for Windows CD.
;
[metadata]
name = original_windows
shortname = TTDW
version = 0
palette = Windows
!! description STR_BASEGRAPHICS_WIN_DESCRIPTION
[files]
base = TRG1R.GRF
logos = TRGIR.GRF
arctic = TRGCR.GRF
tropical = TRGHR.GRF
toyland = TRGTR.GRF
extra = OPENTTD.GRF
[md5s]
TRG1R.GRF = b04ce593d8c5016e07473a743d7d3358
TRGIR.GRF = 0c2484ff6be49fc63a83be6ab5c38f32
TRGCR.GRF = 3668f410c761a050b5e7095a2b14879b
TRGHR.GRF = 06bf2b7a31766f048baac2ebe43457b1
TRGTR.GRF = de53650517fe661ceaa3138c6edb0eb8
OPENTTD.GRF =
[origin]
default = You can find it on your Transport Tycoon Deluxe CD-ROM.
OPENTTD.GRF = This file was part of your OpenTTD installation.

View File

@@ -0,0 +1,94 @@
; $Id$
;
; This represents the original music as on the Transport
; Tycoon Deluxe for Windows CD.
;
[metadata]
name = original_windows
shortname = TTDW
version = 1
!! description STR_BASEMUSIC_WIN_DESCRIPTION
[files]
theme = GM_TT00.GM
old_0 = GM_TT02.GM
old_1 = GM_TT06.GM
old_2 = GM_TT03.GM
old_3 = GM_TT12.GM
old_4 = GM_TT08.GM
old_5 = GM_TT13.GM
old_6 = GM_TT14.GM
old_7 = GM_TT10.GM
old_8 =
old_9 =
new_0 = GM_TT04.GM
new_1 = GM_TT01.GM
new_2 = GM_TT05.GM
new_3 = GM_TT15.GM
new_4 = GM_TT11.GM
new_5 = GM_TT16.GM
new_6 = GM_TT09.GM
new_7 =
new_8 =
new_9 =
ezy_0 = GM_TT18.GM
ezy_1 = GM_TT19.GM
ezy_2 = GM_TT21.GM
ezy_3 = GM_TT17.GM
ezy_4 = GM_TT20.GM
ezy_5 = GM_TT07.GM
ezy_6 =
ezy_7 =
ezy_8 =
ezy_9 =
[md5s]
GM_TT00.GM = 45cfec1b9d8c7a0ad45e755833cbf221
GM_TT01.GM = ab14ed3392d848abd2a2e90a9d75d121
GM_TT02.GM = dd4f696e4be5987ce738257b08b50171
GM_TT03.GM = a1bfde23343df9e4063419bf29c166b8
GM_TT04.GM = 4e6943aa0c455203d76c79389054747d
GM_TT05.GM = cee281cb85a2e2343552d97640545a47
GM_TT06.GM = 26d1de5efa8675f94065784e9d539e49
GM_TT07.GM = 6f2691e17558f552ec4c565e4ab7139c
GM_TT08.GM = a42bf2cb3340a822f1a69646fc7a487d
GM_TT09.GM = eb35761a58a8df3c59ed8929cce13916
GM_TT10.GM = 42fecd686720a785d20a78590c466a82
GM_TT11.GM = 50ef1ef02e49d2112786dd45e69dc3ee
GM_TT12.GM = 4ce707a0e0e72419f0681dd9bd95271b
GM_TT13.GM = e765753be29d889ec818f38009103619
GM_TT14.GM = 270e2d63bd32b95a4d007ce15a6ce45f
GM_TT15.GM = 89e116a1c0c69f1845cc903a9bfbe460
GM_TT16.GM = f824e2371b3bedfe61aad4b9c62dd6be
GM_TT17.GM = 1b23eebb0796c1ab99cd97fa7082cf7b
GM_TT18.GM = 15650de3bad645d0e88c4f5c7a2df92a
GM_TT19.GM = 7aec079e15bd09588660b85545ac4dfc
GM_TT20.GM = 1509097889dee617aa1e9a1738a5a930
GM_TT21.GM = a8d0aaad02e1a762d8d54cf81da56bab
[names]
GM_TT00.GM = Tycoon DELUXE Theme
GM_TT01.GM = Snarl Up
GM_TT02.GM = Easy Driver
GM_TT03.GM = Little Red Diesel
GM_TT04.GM = City Groove
GM_TT05.GM = Aliens Ate My Railway
GM_TT06.GM = Stoke It
GM_TT07.GM = Don't Walk!
GM_TT08.GM = Sawyer's Tune
GM_TT09.GM = Fell Apart On Me
GM_TT10.GM = Can't Get There From Here
GM_TT11.GM = Hard Drivin'
GM_TT12.GM = Road Hog
GM_TT13.GM = Hold That Train!
GM_TT14.GM = Broomer's Oil Rag
GM_TT15.GM = Goss Groove
GM_TT16.GM = Small Town
GM_TT17.GM = Cruise Control
GM_TT18.GM = Stroll On
GM_TT19.GM = Funk Central
GM_TT20.GM = Jammit
GM_TT21.GM = Movin' On
[origin]
default = You can find it on your Transport Tycoon Deluxe CD-ROM.

View File

@@ -0,0 +1,19 @@
; $Id$
;
; This represents the original sounds as on the Transport
; Tycoon Deluxe for Windows CD.
;
[metadata]
name = original_windows
shortname = TTDO
version = 0
!! description STR_BASESOUNDS_WIN_DESCRIPTION
[files]
samples = SAMPLE.CAT
[md5s]
SAMPLE.CAT = 9212e81e72badd4bbe1eaeae66458e10
[origin]
default = You can find it on your Transport Tycoon Deluxe CD-ROM.

View File

@@ -0,0 +1,69 @@
# $Id: openttd.desktop.translation.awk 24100 2012-04-08 14:29:31Z rubidium $
# This file is part of OpenTTD.
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
# OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
#
# Awk script to extract translations for baseset descriptions
# from lang files for insertion into .obg/obs/obm files.
# If there is no translation, there is no output.
#
# The input file is scanned for the pattern
# !! <ini-key> <STR_id>
#
# The lang files (passed as variable 'langfiles') are scanned for <STR_id> and
# the translations are added to the output file:
# <ini-key>.<iso-code> = <translation>
#
# Simple insertion sort since not all AWKs have a sort implementation
function isort(A) {
n = 0
for (val in A) {
n++;
}
for (i = 2; i <= n; i++) {
j = i;
hold = A[j]
while (A[j - 1] > hold) {
j--;
A[j + 1] = A[j]
}
A[j] = hold
}
return n
}
/^!!/ {
ini_key = $2;
str_id = $3;
file = langfiles
while ((getline < file) > 0) {
if (match($0, "##isocode") > 0) {
lang = $2;
} else if (match($0, "^" str_id " *:") > 0) {
sub("^[^:]*:", "", $0)
i++;
if (lang == "en_GB") {
texts[i] = ini_key " = "$0;
} else {
texts[i] = ini_key "." lang " = "$0;
}
}
}
close(file);
count = isort(texts);
for (i = 1; i <= count; i++) {
print texts[i]
}
next
}
{ print }

View File

@@ -9,3 +9,4 @@ Exec=!!TTD!!
Terminal=false
Categories=!!MENU_GROUP!!
Comment=A clone of Transport Tycoon Deluxe
Keywords=game;simulation;transport;tycoon;deluxe;economics;multiplayer;money;train;ship;bus;truck;aircraft;cargo

View File

@@ -1,284 +1,350 @@
openttd (1.3.0-beta2) unstable; urgency=low
openttd (1.3.3~RC2-0) unstable; urgency=low
* New upstream release 1.3.3-RC2
-- OpenTTD <info@openttd.org> Sun, 24 Nov 2013 19:00:00 +0100
openttd (1.3.3~RC1-0) unstable; urgency=low
* New upstream release 1.3.3-RC1
-- OpenTTD <info@openttd.org> Sun, 17 Nov 2013 19:00:00 +0100
openttd (1.3.2-0) unstable; urgency=low
* New upstream release 1.3.2
-- OpenTTD <info@openttd.org> Sat, 27 Jul 2013 18:00:00 +0200
openttd (1.3.2~RC2-0) unstable; urgency=low
* New upstream release 1.3.2-RC2
-- OpenTTD <info@openttd.org> Sat, 13 Jul 2013 12:00:00 +0200
openttd (1.3.2~RC1-0) unstable; urgency=low
* New upstream release 1.3.2-RC1
-- OpenTTD <info@openttd.org> Sun, 30 Jun 2013 12:00:00 +0200
openttd (1.3.1-0) unstable; urgency=low
* New upstream release 1.3.1
-- OpenTTD <info@openttd.org> Sat, 01 Jun 2013 00:00:00 +0300
openttd (1.3.1~RC1-0) unstable; urgency=low
* New upstream release 1.3.1-RC1
-- OpenTTD <info@openttd.org> Fri, 17 May 2013 22:00:00 +0200
openttd (1.3.0-0) unstable; urgency=low
* New upstream release 1.3.0
-- OpenTTD <info@openttd.org> Mon, 01 Apr 2013 00:00:00 +0200
openttd (1.3.0~RC3) unstable; urgency=low
* New upstream release 1.3.0-RC3
-- OpenTTD <info@openttd.org> Mon, 18 Mar 2013 00:00:00 +0100
openttd (1.3.0~RC2) unstable; urgency=low
* New upstream release 1.3.0-RC2
-- OpenTTD <info@openttd.org> Tue, 05 Mar 2013 00:00:00 +0100
openttd (1.3.0~RC1) unstable; urgency=low
* New upstream release 1.3.0-RC1
-- OpenTTD <info@openttd.org> Tue, 19 Feb 2013 00:00:00 +0100
openttd (1.3.0~beta2) unstable; urgency=low
* New upstream release 1.3.0-beta2
-- Matthijs Kooijman <matthijs@stdin.nl> Thu, 07 Feb 2013 00:00:00 +0100
-- OpenTTD <info@openttd.org> Thu, 07 Feb 2013 00:00:00 +0100
openttd (1.3.0-beta1) unstable; urgency=low
openttd (1.3.0~beta1) unstable; urgency=low
* New upstream release 1.3.0-beta1
-- Matthijs Kooijman <matthijs@stdin.nl> Mon, 24 Dec 2012 00:00:00 +0100
-- OpenTTD <info@openttd.org> Mon, 24 Dec 2012 00:00:00 +0100
openttd (1.2.3) unstable; urgency=low
* New upstream release 1.2.3
-- Matthijs Kooijman <matthijs@stdin.nl> Thu, 01 Nov 2012 00:00:00 +0200
-- OpenTTD <info@openttd.org> Thu, 01 Nov 2012 00:00:00 +0200
openttd (1.2.3~RC1) unstable; urgency=low
* New upstream release 1.2.3-RC1
-- Matthijs Kooijman <matthijs@stdin.nl> Wed, 17 Oct 2012 00:00:00 +0200
-- OpenTTD <info@openttd.org> Wed, 17 Oct 2012 00:00:00 +0200
openttd (1.2.2) unstable; urgency=low
* New upstream release 1.2.2
-- Matthijs Kooijman <matthijs@stdin.nl> Thu, 16 Aug 2012 20:00:00 +0200
-- OpenTTD <info@openttd.org> Thu, 16 Aug 2012 20:00:00 +0200
openttd (1.2.2~RC1) unstable; urgency=low
* New upstream release 1.2.2-RC1
-- Matthijs Kooijman <matthijs@stdin.nl> Wed, 01 Aug 2012 00:00:00 +0200
-- OpenTTD <info@openttd.org> Wed, 01 Aug 2012 00:00:00 +0200
openttd (1.2.1) unstable; urgency=low
* New upstream release 1.2.1
-- Matthijs Kooijman <matthijs@stdin.nl> Fri, 01 Jun 2012 00:00:00 +0200
-- OpenTTD <info@openttd.org> Fri, 01 Jun 2012 00:00:00 +0200
openttd (1.2.1~RC1) unstable; urgency=low
* New upstream release 1.2.1-RC1
-- Matthijs Kooijman <matthijs@stdin.nl> Wed, 16 Apr 2012 22:00:00 +0200
-- OpenTTD <info@openttd.org> Wed, 16 Apr 2012 22:00:00 +0200
openttd (1.2.0) unstable; urgency=low
* New upstream release 1.2.0
-- Matthijs Kooijman <matthijs@stdin.nl> Sun, 15 Apr 2012 14:00:00 +0200
-- OpenTTD <info@openttd.org> Sun, 15 Apr 2012 14:00:00 +0200
openttd (1.2.0~RC4) unstable; urgency=low
* New upstream release 1.2.0-RC4
-- Matthijs Kooijman <matthijs@stdin.nl> Sun, 01 Apr 2012 00:00:00 +0200
-- OpenTTD <info@openttd.org> Sun, 01 Apr 2012 00:00:00 +0200
openttd (1.2.0~RC3) unstable; urgency=low
* New upstream release 1.2.0-RC3
-- Matthijs Kooijman <matthijs@stdin.nl> Sun, 18 Mar 2012 18:00:00 +0100
-- OpenTTD <info@openttd.org> Sun, 18 Mar 2012 18:00:00 +0100
openttd (1.2.0~RC2) unstable; urgency=low
* New upstream release 1.2.0-RC2
-- Matthijs Kooijman <matthijs@stdin.nl> Sun, 04 Mar 2012 18:00:00 +0100
-- OpenTTD <info@openttd.org> Sun, 04 Mar 2012 18:00:00 +0100
openttd (1.2.0~RC1) unstable; urgency=low
* New upstream release 1.2.0-RC1
-- Matthijs Kooijman <matthijs@stdin.nl> Sun, 19 Feb 2012 23:00:00 +0100
-- OpenTTD <info@openttd.org> Sun, 19 Feb 2012 23:00:00 +0100
openttd (1.2.0~beta4) unstable; urgency=low
* New upstream release 1.2.0-beta4
-- Matthijs Kooijman <matthijs@stdin.nl> Sat, 04 Feb 2012 16:00:00 +0100
-- OpenTTD <info@openttd.org> Sat, 04 Feb 2012 16:00:00 +0100
openttd (1.2.0~beta3) unstable; urgency=low
* New upstream release 1.2.0-beta3
-- Matthijs Kooijman <matthijs@stdin.nl> Sat, 21 Jan 2012 16:00:00 +0100
-- OpenTTD <info@openttd.org> Sat, 21 Jan 2012 16:00:00 +0100
openttd (1.2.0~beta2) unstable; urgency=low
* New upstream release 1.2.0-beta2
-- Matthijs Kooijman <matthijs@stdin.nl> Sat, 07 Jan 2012 00:00:00 +0100
-- OpenTTD <info@openttd.org> Sat, 07 Jan 2012 00:00:00 +0100
openttd (1.2.0~beta1) unstable; urgency=low
* New upstream release 1.2.0-beta1
-- Matthijs Kooijman <matthijs@stdin.nl> Sat, 24 Dec 2011 00:00:00 +0100
-- OpenTTD <info@openttd.org> Sat, 24 Dec 2011 00:00:00 +0100
openttd (1.1.4) unstable; urgency=low
* New upstream release 1.1.4
-- Matthijs Kooijman <matthijs@stdin.nl> Mon, 05 Dec 2011 00:00:00 +0400
-- OpenTTD <info@openttd.org> Mon, 05 Dec 2011 00:00:00 +0400
openttd (1.1.4-RC1) unstable; urgency=low
* New upstream release 1.1.4-RC1
-- Matthijs Kooijman <matthijs@stdin.nl> Sun, 20 Nov 2011 17:00:00 +0100
-- OpenTTD <info@openttd.org> Sun, 20 Nov 2011 17:00:00 +0100
openttd (1.1.3) unstable; urgency=low
* New upstream release 1.1.3
-- Matthijs Kooijman <matthijs@stdin.nl> Thu, 15 Sep 2011 21:00:00 +0200
-- OpenTTD <info@openttd.org> Thu, 15 Sep 2011 21:00:00 +0200
openttd (1.1.3-RC1) unstable; urgency=low
* New upstream release 1.1.3-RC1
-- Matthijs Kooijman <matthijs@stdin.nl> Sun, 04 Sep 2011 17:00:00 +0200
-- OpenTTD <info@openttd.org> Sun, 04 Sep 2011 17:00:00 +0200
openttd (1.1.2) unstable; urgency=low
* New upstream release 1.1.2
-- Matthijs Kooijman <matthijs@stdin.nl> Sun, 14 Aug 2011 17:00:00 +0200
-- OpenTTD <info@openttd.org> Sun, 14 Aug 2011 17:00:00 +0200
openttd (1.1.2~RC2) unstable; urgency=low
* New upstream release 1.1.2-RC2
-- Matthijs Kooijman <matthijs@stdin.nl> Sat, 30 Jul 2011 21:00:00 +0200
-- OpenTTD <info@openttd.org> Sat, 30 Jul 2011 21:00:00 +0200
openttd (1.1.2~RC1) unstable; urgency=low
* New upstream release 1.1.2-RC1
-- Matthijs Kooijman <matthijs@stdin.nl> Sun, 24 Jul 2011 21:00:00 +0200
-- OpenTTD <info@openttd.org> Sun, 24 Jul 2011 21:00:00 +0200
openttd (1.1.1) unstable; urgency=low
* New upstream release 1.1.1
-- Matthijs Kooijman <matthijs@stdin.nl> Wed, 01 Jun 2011 00:00:00 +0200
-- OpenTTD <info@openttd.org> Wed, 01 Jun 2011 00:00:00 +0200
openttd (1.1.1~RC1) unstable; urgency=low
* New upstream release 1.1.1-RC1
-- Matthijs Kooijman <matthijs@stdin.nl> Sun, 15 May 2011 21:00:00 +0200
-- OpenTTD <info@openttd.org> Sun, 15 May 2011 21:00:00 +0200
openttd (1.1.0) unstable; urgency=low
* New upstream release 1.1.0
-- Matthijs Kooijman <matthijs@stdin.nl> Fri, 01 Apr 2011 00:00:00 +0100
-- OpenTTD <info@openttd.org> Fri, 01 Apr 2011 00:00:00 +0100
openttd (1.1.0~RC3) unstable; urgency=low
* New upstream release 1.1.0-RC3
-- Matthijs Kooijman <matthijs@stdin.nl> Fri, 18 Mar 2011 22:00:00 +0100
-- OpenTTD <info@openttd.org> Fri, 18 Mar 2011 22:00:00 +0100
openttd (1.1.0~RC2) unstable; urgency=low
* New upstream release 1.1.0-RC2
-- Matthijs Kooijman <matthijs@stdin.nl> Fri, 04 Mar 2011 22:00:00 +0100
-- OpenTTD <info@openttd.org> Fri, 04 Mar 2011 22:00:00 +0100
openttd (1.1.0~RC1) unstable; urgency=low
* New upstream release 1.1.0-RC1
-- Matthijs Kooijman <matthijs@stdin.nl> Fri, 18 Feb 2011 22:00:00 +0100
-- OpenTTD <info@openttd.org> Fri, 18 Feb 2011 22:00:00 +0100
openttd (1.1.0~beta5) unstable; urgency=low
* New upstream release 1.1.0-beta5
-- Matthijs Kooijman <matthijs@stdin.nl> Fri, 04 Feb 2011 22:00:00 +0100
-- OpenTTD <info@openttd.org> Fri, 04 Feb 2011 22:00:00 +0100
openttd (1.1.0~beta4) unstable; urgency=low
* New upstream release 1.1.0-beta4
-- Matthijs Kooijman <matthijs@stdin.nl> Fri, 21 Jan 2011 00:00:00 +0100
-- OpenTTD <info@openttd.org> Fri, 21 Jan 2011 00:00:00 +0100
openttd (1.1.0~beta3) unstable; urgency=low
* New upstream release 1.1.0-beta3
-- Matthijs Kooijman <matthijs@stdin.nl> Sun, 09 Jan 2011 18:00:00 +0100
-- OpenTTD <info@openttd.org> Sun, 09 Jan 2011 18:00:00 +0100
openttd (1.1.0~beta2) unstable; urgency=low
* New upstream release 1.1.0-beta2
-- Matthijs Kooijman <matthijs@stdin.nl> Fri, 31 Dec 2010 18:00:00 +0100
-- OpenTTD <info@openttd.org> Fri, 31 Dec 2010 18:00:00 +0100
openttd (1.1.0~beta1) unstable; urgency=low
* New upstream release 1.1.0-beta1
-- Matthijs Kooijman <matthijs@stdin.nl> Fri, 24 Dec 2010 00:00:00 +0100
-- OpenTTD <info@openttd.org> Fri, 24 Dec 2010 00:00:00 +0100
openttd (1.0.5-0) unstable; urgency=low
* New upstream release 1.0.5
-- Matthijs Kooijman <matthijs@stdin.nl> Sat, 20 Nov 2010 21:00:00 +0000
-- OpenTTD <info@openttd.org> Sat, 20 Nov 2010 21:00:00 +0000
openttd (1.0.5~rc2-0) unstable; urgency=low
* New upstream release 1.0.5~rc2
-- Matthijs Kooijman <matthijs@stdin.nl> Sun, 14 Nov 2010 15:00:00 +0000
-- OpenTTD <info@openttd.org> Sun, 14 Nov 2010 15:00:00 +0000
openttd (1.0.5~rc1-0) unstable; urgency=low
* New upstream release 1.0.5-RC1
-- Matthijs Kooijman <matthijs@stdin.nl> Sun, 31 Oct 2010 15:00:00 +0000
-- OpenTTD <info@openttd.org> Sun, 31 Oct 2010 15:00:00 +0000
openttd (1.0.4-0) unstable; urgency=low
* New upstream release 1.0.4
-- Matthijs Kooijman <matthijs@stdin.nl> Tue, 14 Sep 2010 20:00:00 +0000
-- OpenTTD <info@openttd.org> Tue, 14 Sep 2010 20:00:00 +0000
openttd (1.0.4~rc1-0) unstable; urgency=low
* New upstream release 1.0.4-RC1
-- Matthijs Kooijman <matthijs@stdin.nl> Mon, 30 Aug 2010 20:00:00 +0000
-- OpenTTD <info@openttd.org> Mon, 30 Aug 2010 20:00:00 +0000
openttd (1.0.3-0) unstable; urgency=low
* New upstream release 1.0.3
-- Matthijs Kooijman <matthijs@stdin.nl> Sun, 01 Aug 2010 00:00:00 +0000
-- OpenTTD <info@openttd.org> Sun, 01 Aug 2010 00:00:00 +0000
openttd (1.0.3~rc1-0) unstable; urgency=low
* New upstream release 1.0.3-RC1
-- Matthijs Kooijman <matthijs@stdin.nl> Sat, 05 Jul 2010 17:37:21 +0000
-- OpenTTD <info@openttd.org> Sat, 05 Jul 2010 17:37:21 +0000
openttd (1.0.2-0) unstable; urgency=low
* New upstream release 1.0.2
-- Matthijs Kooijman <matthijs@stdin.nl> Sat, 19 Jun 2010 18:36:21 +0000
-- OpenTTD <info@openttd.org> Sat, 19 Jun 2010 18:36:21 +0000
openttd (1.0.2~rc1-0) unstable; urgency=low
* New upstream release 1.0.2-RC1
-- Matthijs Kooijman <matthijs@stdin.nl> Sat, 05 Jun 2010 23:36:21 +0000
-- OpenTTD <info@openttd.org> Sat, 05 Jun 2010 23:36:21 +0000
openttd (1.0.1-0) unstable; urgency=low
* New upstream release 1.0.1
-- Matthijs Kooijman <matthijs@stdin.nl> Sat, 01 May 2010 00:00:00 +0200
-- OpenTTD <info@openttd.org> Sat, 01 May 2010 00:00:00 +0200
openttd (1.0.1~rc2-0) unstable; urgency=low
* New upstream release 1.0.1-RC2
-- Matthijs Kooijman <matthijs@stdin.nl> Wed, 21 Apr 2010 21:36:21 +0200
-- OpenTTD <info@openttd.org> Wed, 21 Apr 2010 21:36:21 +0200
openttd (1.0.1~rc1-0) unstable; urgency=low
* New upstream release 1.0.1-RC1
-- Matthijs Kooijman <matthijs@stdin.nl> Sat, 17 Apr 2010 23:36:21 +0000
-- OpenTTD <info@openttd.org> Sat, 17 Apr 2010 23:36:21 +0000
openttd (1.0.0-1) unstable; urgency=low

View File

@@ -3,11 +3,10 @@ Section: games
Priority: optional
Maintainer: Matthijs Kooijman <matthijs@stdin.nl>
Uploaders: Jordi Mallach <jordi@debian.org>
DM-Upload-Allowed: yes
Build-Depends: debhelper (>= 7.0.50), libsdl-dev, zlib1g-dev, libpng-dev, libfreetype6-dev, libfontconfig-dev, libicu-dev, liblzma-dev, liblzo2-dev
Standards-Version: 3.8.4
Vcs-Browser: http://git.debian.org/?p=collab-maint/openttd.git
Vcs-Git: git://git.debian.org/collab-maint/openttd.git
Vcs-Browser: http://anonscm.debian.org/gitweb/?p=collab-maint/openttd.git
Vcs-Git: git://anonscm.debian.org/collab-maint/openttd.git
Homepage: http://www.openttd.org/
Package: openttd

View File

@@ -1,77 +1,106 @@
This package was debianized by Matthijs Kooijman <matthijs@stdin.nl>
on Wed, 15 Sep 2004 00:24:01 +0200.
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: OpenTTD
Upstream-Contact: info@openttd.org, #openttd on irc.oftc.net
Source: http://www.openttd.org
Upstream author: Ludvig Strigeus (ludde) and many others.
Upstream homepage: http://www.openttd.org
Copyright © 2004-2009 Ludvig Strigeous and others.
Files: *
Copyright: © 2004-2012 Ludvig Strigeous and others.
License: GPL-2.0
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License version 2.0 as
published by the Free Software Foundation;
.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
.
You should have received a copy of the GNU General Public License
along with this package; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
.
On Debian systems, the complete text of the GNU General Public License
version 2 can be found in `/usr/share/common-licenses/GPL-2'.
OpenTTD License:
Files: src/3rdparty/squirrel/*
Copyright: © 2003-2009 Alberto Demichelis
License: Zlib
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License version 2.0 as
published by the Free Software Foundation;
Files: src/3rdparty/md5/*
Copyright: © 1999, 2000, 2002 Aladdin Enterprises. All rights reserved.
License: Zlib
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this package; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
License: Zlib
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
.
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software in
a product, an acknowledgment in the product documentation would be
appreciated but is not required.
.
2. Altered source versions must be plainly marked as such, and must not
be misrepresented as being the original software.
.
3. This notice may not be removed or altered from any source
distribution.
On Debian systems, the complete text of the GNU General Public License
version 2 can be found in `/usr/share/common-licenses/GPL-2'.
Files: os/dos/exe2coff/*
Copyright: © 1998 DJ Delorie
License: GPL-2.0 with additional restrictions
This document is Copyright (C) DJ Delorie and may be distributed
verbatim, but changing it is not allowed.
.
Source code copyright DJ Delorie is distributed under the terms of the
GNU General Public Licence, with the following exceptions:
.
* Sources used to build crt0.o, gcrt0.o, libc.a, libdbg.a, and
libemu.a are distributed under the terms of the GNU Library General
Public License, rather than the GNU GPL.
.
* Any existing copyright or authorship information in any given source
file must remain intact. If you modify a source file, a notice to that
effect must be added to the authorship information in the source file.
.
* Runtime binaries, as provided by DJ in DJGPP, may be distributed
without sources ONLY if the recipient is given sufficient information
to obtain a copy of djgpp themselves. This primarily applies to
go32-v2.exe, emu387.dxe, and stubedit.exe.
.
* Runtime objects and libraries, as provided by DJ in DJGPP, when
linked into an application, may be distributed without sources ONLY
if the recipient is given sufficient information to obtain a copy of
djgpp themselves. This primarily applies to crt0.o and libc.a.
.
On Debian systems, the complete text of the GNU General Public License
version 2 can be found in `/usr/share/common-licenses/GPL-2'.
Comment:
Given only the exe2coff.c file is distributed in the source distribution (and
nothing in Debian binary distribution), it seems only the 2nd condition
applies.
This package contains an embedded version of the "Squirrel" programming
language, which is shipped under the following license:
Copyright (c) 2003-2009 Alberto Demichelis
This software is provided 'as-is', without any
express or implied warranty. In no event will the
authors be held liable for any damages arising from
the use of this software.
Permission is granted to anyone to use this software
for any purpose, including commercial applications,
and to alter it and redistribute it freely, subject
to the following restrictions:
1. The origin of this software must not be
misrepresented; you must not claim that
you wrote the original software. If you
use this software in a product, an
acknowledgment in the product
documentation would be appreciated but is
not required.
2. Altered source versions must be plainly
marked as such, and must not be
misrepresented as being the original
software.
3. This notice may not be removed or
altered from any source distribution.
This package contains an implementation of the md5 hash algorithm, which
is shipped under the following license:
Copyright (C) 1999, 2000, 2002 Aladdin Enterprises. All rights reserved.
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
Files: os/dos/cwsdpmi/*
Source: http://homer.rice.edu/~sandmann/cwsdpmi/index.html
Copyright: © 1995-2000 Charles W Sandmann (sandmann@clio.rice.edu)
License: Custom binary-only license
This is release 5. The files in this binary distribution may be redistributed
under the GPL (with source) or without the source code provided:
.
* CWSDPMI.EXE or CWSDPR0.EXE are not modified in any way except via CWSPARAM.
.
* CWSDSTUB.EXE internal contents are not modified in any way except via
CWSPARAM or STUBEDIT. It may have a COFF image plus data appended to it.
.
* Notice to users that they have the right to receive the source code and/or
binary updates for CWSDPMI. Distributors should indicate a site for the
source in their documentation.
Comment:
Files are distributed as binary only, so the second option in the license
("without source code provided: ...") is applicable.

View File

@@ -1,2 +1,2 @@
?package(openttd):needs="X11" section="Games/Simulation" title="OpenTTD"\
command="/usr/share/games/openttd/openttd-wrapper" icon="/usr/share/pixmaps/openttd.32.xpm"
command="/usr/games/openttd" icon="/usr/share/pixmaps/openttd.32.xpm"

View File

@@ -4,7 +4,7 @@
# Use debhelper default for all targets (but some are overridden below).
%:
dh $@
dh --parallel $@
DEB_HOST_GNU_TYPE=$(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
DEB_BUILD_GNU_TYPE=$(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
@@ -12,21 +12,29 @@ ifneq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE))
CROSS= --build $(DEB_BUILD_GNU_TYPE) --host $(DEB_HOST_GNU_TYPE)
endif
# This prevents linking uselessly to libicudata and silences a warning
# in the build process.
DEB_LDFLAGS_MAINT_APPEND="-Wl,-as-needed"
# Enable all hardening options (since openttd offers a network-listening
# service that handles untrusted data).
DEB_BUILD_MAINT_OPTIONS=hardening=+all
# Load buildflags (this uses dpkg-buildflags). Note that we don't export
# them, but instead pass them to ./configure explicitly.
include /usr/share/dpkg/buildflags.mk
# Pass custom options to configure. Since it's not autoconf but a custom
# script, some of the option names are slightly different. We also need
# to be explicit about the dependencies, in case we're not running in a
# clean build root.
override_dh_auto_configure:
./configure $(CROSS) --prefix-dir=/usr --install-dir=debian/openttd --without-allegro --with-zlib --with-sdl --with-png --with-freetype --with-fontconfig --with-icu --with-liblzo2 --with-lzma --without-iconv --disable-strip CFLAGS="$(CFLAGS) -g" LDFLAGS="$(LDFLAGS) -Wl,-as-needed"
./configure $(CROSS) --prefix-dir=/usr --install-dir=debian/openttd --without-allegro --with-zlib --with-sdl --with-png --with-freetype --with-fontconfig --with-icu --with-liblzo2 --with-lzma --without-iconv --disable-strip CFLAGS="$(CFLAGS) $(CPPFLAGS)" CXXFLAGS="$(CXXFLAGS) $(CPPFLAGS)" LDFLAGS="$(LDFLAGS)" CFLAGS_BUILD="$(CFLAGS) $(CPPFLAGS)" CXXFLAGS_BUILD="$(CXXFLAGS) $(CPPFLAGS)" LDFLAGS_BUILD="$(LDFLAGS)"
# Do some extra installation
override_dh_auto_install:
$(MAKE) install DO_NOT_INSTALL_CHANGELOG=1 DO_NOT_INSTALL_LICENSE=1
# Install the wrapper and make it executable
install -d debian/openttd/usr/share/games/openttd/
install -m755 debian/openttd-wrapper debian/openttd/usr/share/games/openttd/
# Don't do testing. Because the OpenTTD Makefile always does dependency
# generation (even on invalid targets), dh_auto_test thinks there is a
# "test" target, while there isn't.

View File

@@ -0,0 +1,3 @@
The files in this directory are not licensed under the same terms as the
rest of OpenTTD. Licensing details can be found in OpenTTD's readme.txt
and in this directory or subdirectories as well.

View File

@@ -0,0 +1,3 @@
The files in this directory are not licensed under the same terms as the
rest of OpenTTD. Licensing details can be found in OpenTTD's readme.txt
and in this directory or subdirectories as well.

View File

@@ -3,9 +3,9 @@
# $Id$
cd `dirname $0`
cc -o exe2coff exe2coff.c || exit
cc -o exe2coff/exe2coff exe2coff/exe2coff.c || exit
cp $1 binary.exe || exit
./exe2coff binary.exe || exit
cat cwsdstub.exe binary > binary.exe || exit
./exe2coff/exe2coff binary.exe || exit
cat cwsdpmi/cwsdstub.exe binary > binary.exe || exit
mv binary.exe $1
rm binary exe2coff
rm binary exe2coff/exe2coff

View File

@@ -1,6 +1,6 @@
@echo off
set OPENTTD_VERSION=1.3.0-beta2
set OPENTTD_VERSION=1.3.3-RC2
set OPENSFX_VERSION=0.8.0
set NOSOUND_VERSION=0.8.0
set OPENGFX_VERSION=1.2.0

View File

@@ -1,9 +1,9 @@
# Version numbers to update
!define APPV_MAJOR 1
!define APPV_MINOR 3
!define APPV_MAINT 0
!define APPV_MAINT 3
!define APPV_BUILD 1
!define APPV_EXTRA "-beta2"
!define APPV_EXTRA "-RC2"
!define APPNAME "OpenTTD" ; Define application name
!define APPVERSION "${APPV_MAJOR}.${APPV_MINOR}.${APPV_MAINT}${APPV_EXTRA}" ; Define application version
@@ -545,15 +545,22 @@ FunctionEnd
;-------------------------------------------------------------------------------
; Determine windows version, returns "win9x" if Win9x/Me/2000/XP SP2- or "winnt" for the rest on the stack
Function GetWindowsVersion
GetVersion::WindowsPlatformArchitecture
Pop $R0
IntCmp $R0 64 WinNT 0
ClearErrors
StrCpy $R0 "win9x"
${If} ${IsNT}
${If} ${IsWinXP}
${AndIf} ${AtLeastServicePack} 3
${OrIf} ${AtLeastWin2003}
StrCpy $R0 "winnt"
GoTo WinNT
${EndIf}
${EndIf}
GoTo Done
WinNT:
StrCpy $R0 "winnt"
Done:
Push $R0
FunctionEnd

View File

@@ -137,6 +137,12 @@
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\estonian.lng;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\src\lang\faroese.txt">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating faroese language file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\faroese.lng;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\src\lang\finnish.txt">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating finnish language file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
@@ -149,6 +155,12 @@
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\french.lng;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\src\lang\gaelic.txt">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating gaelic language file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\gaelic.lng;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\src\lang\galician.txt">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating galician language file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
@@ -311,6 +323,18 @@
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\swedish.lng;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\src\lang\tamil.txt">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating tamil language file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\tamil.lng;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\src\lang\thai.txt">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating thai language file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\thai.lng;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\src\lang\traditional_chinese.txt">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating traditional_chinese language file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>

View File

@@ -52,12 +52,18 @@
<CustomBuild Include="..\src\lang\estonian.txt">
<Filter>Translations</Filter>
</CustomBuild>
<CustomBuild Include="..\src\lang\faroese.txt">
<Filter>Translations</Filter>
</CustomBuild>
<CustomBuild Include="..\src\lang\finnish.txt">
<Filter>Translations</Filter>
</CustomBuild>
<CustomBuild Include="..\src\lang\french.txt">
<Filter>Translations</Filter>
</CustomBuild>
<CustomBuild Include="..\src\lang\gaelic.txt">
<Filter>Translations</Filter>
</CustomBuild>
<CustomBuild Include="..\src\lang\galician.txt">
<Filter>Translations</Filter>
</CustomBuild>
@@ -139,6 +145,12 @@
<CustomBuild Include="..\src\lang\swedish.txt">
<Filter>Translations</Filter>
</CustomBuild>
<CustomBuild Include="..\src\lang\tamil.txt">
<Filter>Translations</Filter>
</CustomBuild>
<CustomBuild Include="..\src\lang\thai.txt">
<Filter>Translations</Filter>
</CustomBuild>
<CustomBuild Include="..\src\lang\traditional_chinese.txt">
<Filter>Translations</Filter>
</CustomBuild>

View File

@@ -288,6 +288,21 @@
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\lang\faroese.txt"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Generating faroese language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0&#x0D;&#x0A;"
AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\faroese.lng"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\lang\finnish.txt"
>
@@ -318,6 +333,21 @@
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\lang\gaelic.txt"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Generating gaelic language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0&#x0D;&#x0A;"
AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\gaelic.lng"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\lang\galician.txt"
>
@@ -723,6 +753,36 @@
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\lang\tamil.txt"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Generating tamil language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0&#x0D;&#x0A;"
AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\tamil.lng"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\lang\thai.txt"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Generating thai language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0&#x0D;&#x0A;"
AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\thai.lng"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\lang\traditional_chinese.txt"
>

View File

@@ -289,6 +289,21 @@
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\lang\faroese.txt"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Generating faroese language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0&#x0D;&#x0A;"
AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\faroese.lng"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\lang\finnish.txt"
>
@@ -319,6 +334,21 @@
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\lang\gaelic.txt"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Generating gaelic language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0&#x0D;&#x0A;"
AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\gaelic.lng"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\lang\galician.txt"
>
@@ -724,6 +754,36 @@
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\lang\tamil.txt"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Generating tamil language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0&#x0D;&#x0A;"
AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\tamil.lng"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\lang\thai.txt"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Generating thai language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0&#x0D;&#x0A;"
AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\thai.lng"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\lang\traditional_chinese.txt"
>

View File

@@ -131,7 +131,7 @@
<Culture>0x0809</Culture>
</ResourceCompile>
<Link>
<AdditionalDependencies>winmm.lib;ws2_32.lib;libpng.lib;zlibstat.lib;lzo2.lib;liblzma.lib;libfreetype2.lib;icuuc.lib;icuin.lib;icudt.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>winmm.lib;ws2_32.lib;imm32.lib;libpng.lib;zlibstat.lib;lzo2.lib;liblzma.lib;libfreetype2.lib;icuuc.lib;icuin.lib;icudt.lib;icule.lib;iculx.lib;%(AdditionalDependencies)</AdditionalDependencies>
<SuppressStartupBanner>true</SuppressStartupBanner>
<IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
<GenerateDebugInformation>true</GenerateDebugInformation>
@@ -176,7 +176,7 @@
<Culture>0x0809</Culture>
</ResourceCompile>
<Link>
<AdditionalDependencies>winmm.lib;ws2_32.lib;libpng.lib;zlibstat.lib;lzo2.lib;liblzma.lib;libfreetype2.lib;icuuc.lib;icuin.lib;icudt.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>winmm.lib;ws2_32.lib;imm32.lib;libpng.lib;zlibstat.lib;lzo2.lib;liblzma.lib;libfreetype2.lib;icuuc.lib;icuin.lib;icudt.lib;icule.lib;iculx.lib;%(AdditionalDependencies)</AdditionalDependencies>
<SuppressStartupBanner>true</SuppressStartupBanner>
<IgnoreSpecificDefaultLibraries>LIBCMT.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
<GenerateDebugInformation>true</GenerateDebugInformation>
@@ -233,7 +233,7 @@
<Culture>0x0809</Culture>
</ResourceCompile>
<Link>
<AdditionalDependencies>winmm.lib;ws2_32.lib;libpng.lib;zlibstat.lib;lzo2.lib;liblzma.lib;libfreetype2.lib;icuuc.lib;icuin.lib;icudt.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>winmm.lib;ws2_32.lib;imm32.lib;libpng.lib;zlibstat.lib;lzo2.lib;liblzma.lib;libfreetype2.lib;icuuc.lib;icuin.lib;icudt.lib;icule.lib;iculx.lib;%(AdditionalDependencies)</AdditionalDependencies>
<SuppressStartupBanner>true</SuppressStartupBanner>
<IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
<GenerateDebugInformation>true</GenerateDebugInformation>
@@ -280,7 +280,7 @@
<Culture>0x0809</Culture>
</ResourceCompile>
<Link>
<AdditionalDependencies>winmm.lib;ws2_32.lib;libpng.lib;zlibstat.lib;lzo2.lib;liblzma.lib;libfreetype2.lib;icuuc.lib;icuin.lib;icudt.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>winmm.lib;ws2_32.lib;imm32.lib;libpng.lib;zlibstat.lib;lzo2.lib;liblzma.lib;libfreetype2.lib;icuuc.lib;icuin.lib;icudt.lib;icule.lib;iculx.lib;%(AdditionalDependencies)</AdditionalDependencies>
<SuppressStartupBanner>true</SuppressStartupBanner>
<IgnoreSpecificDefaultLibraries>LIBCMT.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
<GenerateDebugInformation>true</GenerateDebugInformation>
@@ -317,11 +317,13 @@
<ClCompile Include="..\src\fileio.cpp" />
<ClCompile Include="..\src\fios.cpp" />
<ClCompile Include="..\src\fontcache.cpp" />
<ClCompile Include="..\src\fontdetection.cpp" />
<ClCompile Include="..\src\base_consist.cpp" />
<ClCompile Include="..\src\gamelog.cpp" />
<ClCompile Include="..\src\genworld.cpp" />
<ClCompile Include="..\src\gfx.cpp" />
<ClCompile Include="..\src\gfxinit.cpp" />
<ClCompile Include="..\src\gfx_layout.cpp" />
<ClCompile Include="..\src\goal.cpp" />
<ClCompile Include="..\src\ground_vehicle.cpp" />
<ClCompile Include="..\src\heightmap.cpp" />
@@ -440,11 +442,13 @@
<ClInclude Include="..\src\fileio_type.h" />
<ClInclude Include="..\src\fios.h" />
<ClInclude Include="..\src\fontcache.h" />
<ClInclude Include="..\src\fontdetection.h" />
<ClInclude Include="..\src\base_consist.h" />
<ClInclude Include="..\src\gamelog.h" />
<ClInclude Include="..\src\gamelog_internal.h" />
<ClInclude Include="..\src\genworld.h" />
<ClInclude Include="..\src\gfx_func.h" />
<ClInclude Include="..\src\gfx_layout.h" />
<ClInclude Include="..\src\gfx_type.h" />
<ClInclude Include="..\src\gfxinit.h" />
<ClInclude Include="..\src\goal_base.h" />
@@ -569,6 +573,7 @@
<ClInclude Include="..\src\statusbar_gui.h" />
<ClInclude Include="..\src\stdafx.h" />
<ClInclude Include="..\src\strgen\strgen.h" />
<ClInclude Include="..\src\string_base.h" />
<ClInclude Include="..\src\string_func.h" />
<ClInclude Include="..\src\string_type.h" />
<ClInclude Include="..\src\stringfilter_type.h" />

View File

@@ -180,6 +180,9 @@
<ClCompile Include="..\src\fontcache.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\src\fontdetection.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\src\base_consist.cpp">
<Filter>Source Files</Filter>
</ClCompile>
@@ -195,6 +198,9 @@
<ClCompile Include="..\src\gfxinit.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\src\gfx_layout.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\src\goal.cpp">
<Filter>Source Files</Filter>
</ClCompile>
@@ -549,6 +555,9 @@
<ClInclude Include="..\src\fontcache.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\src\fontdetection.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\src\base_consist.h">
<Filter>Header Files</Filter>
</ClInclude>
@@ -564,6 +573,9 @@
<ClInclude Include="..\src\gfx_func.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\src\gfx_layout.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\src\gfx_type.h">
<Filter>Header Files</Filter>
</ClInclude>
@@ -936,6 +948,9 @@
<ClInclude Include="..\src\strgen\strgen.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\src\string_base.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\src\string_func.h">
<Filter>Header Files</Filter>
</ClInclude>

View File

@@ -131,7 +131,7 @@
<Culture>0x0809</Culture>
</ResourceCompile>
<Link>
<AdditionalDependencies>winmm.lib;ws2_32.lib;libpng.lib;zlibstat.lib;lzo2.lib;liblzma.lib;libfreetype2.lib;icuuc.lib;icuin.lib;icudt.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>winmm.lib;ws2_32.lib;imm32.lib;libpng.lib;zlibstat.lib;lzo2.lib;liblzma.lib;libfreetype2.lib;icuuc.lib;icuin.lib;icudt.lib;icule.lib;iculx.lib;%(AdditionalDependencies)</AdditionalDependencies>
<SuppressStartupBanner>true</SuppressStartupBanner>
<IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
<GenerateDebugInformation>true</GenerateDebugInformation>
@@ -176,7 +176,7 @@
<Culture>0x0809</Culture>
</ResourceCompile>
<Link>
<AdditionalDependencies>winmm.lib;ws2_32.lib;libpng.lib;zlibstat.lib;lzo2.lib;liblzma.lib;libfreetype2.lib;icuuc.lib;icuin.lib;icudt.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>winmm.lib;ws2_32.lib;imm32.lib;libpng.lib;zlibstat.lib;lzo2.lib;liblzma.lib;libfreetype2.lib;icuuc.lib;icuin.lib;icudt.lib;icule.lib;iculx.lib;%(AdditionalDependencies)</AdditionalDependencies>
<SuppressStartupBanner>true</SuppressStartupBanner>
<IgnoreSpecificDefaultLibraries>LIBCMT.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
<GenerateDebugInformation>true</GenerateDebugInformation>
@@ -233,7 +233,7 @@
<Culture>0x0809</Culture>
</ResourceCompile>
<Link>
<AdditionalDependencies>winmm.lib;ws2_32.lib;libpng.lib;zlibstat.lib;lzo2.lib;liblzma.lib;libfreetype2.lib;icuuc.lib;icuin.lib;icudt.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>winmm.lib;ws2_32.lib;imm32.lib;libpng.lib;zlibstat.lib;lzo2.lib;liblzma.lib;libfreetype2.lib;icuuc.lib;icuin.lib;icudt.lib;icule.lib;iculx.lib;%(AdditionalDependencies)</AdditionalDependencies>
<SuppressStartupBanner>true</SuppressStartupBanner>
<IgnoreSpecificDefaultLibraries>%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
<GenerateDebugInformation>true</GenerateDebugInformation>
@@ -280,7 +280,7 @@
<Culture>0x0809</Culture>
</ResourceCompile>
<Link>
<AdditionalDependencies>winmm.lib;ws2_32.lib;libpng.lib;zlibstat.lib;lzo2.lib;liblzma.lib;libfreetype2.lib;icuuc.lib;icuin.lib;icudt.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>winmm.lib;ws2_32.lib;imm32.lib;libpng.lib;zlibstat.lib;lzo2.lib;liblzma.lib;libfreetype2.lib;icuuc.lib;icuin.lib;icudt.lib;icule.lib;iculx.lib;%(AdditionalDependencies)</AdditionalDependencies>
<SuppressStartupBanner>true</SuppressStartupBanner>
<IgnoreSpecificDefaultLibraries>LIBCMT.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
<GenerateDebugInformation>true</GenerateDebugInformation>

View File

@@ -87,7 +87,7 @@
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib"
AdditionalDependencies="winmm.lib ws2_32.lib imm32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib icule.lib iculx.lib"
LinkIncremental="1"
SuppressStartupBanner="true"
IgnoreDefaultLibraryNames=""
@@ -184,7 +184,7 @@
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib"
AdditionalDependencies="winmm.lib ws2_32.lib imm32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib icule.lib iculx.lib"
LinkIncremental="0"
SuppressStartupBanner="true"
IgnoreDefaultLibraryNames="LIBCMT.lib"
@@ -292,7 +292,7 @@
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib"
AdditionalDependencies="winmm.lib ws2_32.lib imm32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib icule.lib iculx.lib"
LinkIncremental="1"
SuppressStartupBanner="true"
IgnoreDefaultLibraryNames=""
@@ -392,7 +392,7 @@
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib"
AdditionalDependencies="winmm.lib ws2_32.lib imm32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib icule.lib iculx.lib"
LinkIncremental="0"
SuppressStartupBanner="true"
IgnoreDefaultLibraryNames="LIBCMT.lib"
@@ -538,6 +538,10 @@
RelativePath=".\..\src\fontcache.cpp"
>
</File>
<File
RelativePath=".\..\src\fontdetection.cpp"
>
</File>
<File
RelativePath=".\..\src\base_consist.cpp"
>
@@ -558,6 +562,10 @@
RelativePath=".\..\src\gfxinit.cpp"
>
</File>
<File
RelativePath=".\..\src\gfx_layout.cpp"
>
</File>
<File
RelativePath=".\..\src\goal.cpp"
>
@@ -1034,6 +1042,10 @@
RelativePath=".\..\src\fontcache.h"
>
</File>
<File
RelativePath=".\..\src\fontdetection.h"
>
</File>
<File
RelativePath=".\..\src\base_consist.h"
>
@@ -1054,6 +1066,10 @@
RelativePath=".\..\src\gfx_func.h"
>
</File>
<File
RelativePath=".\..\src\gfx_layout.h"
>
</File>
<File
RelativePath=".\..\src\gfx_type.h"
>
@@ -1550,6 +1566,10 @@
RelativePath=".\..\src\strgen\strgen.h"
>
</File>
<File
RelativePath=".\..\src\string_base.h"
>
</File>
<File
RelativePath=".\..\src\string_func.h"
>

View File

@@ -87,7 +87,7 @@
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib"
AdditionalDependencies="winmm.lib ws2_32.lib imm32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib icule.lib iculx.lib"
LinkIncremental="1"
SuppressStartupBanner="true"
IgnoreDefaultLibraryNames=""
@@ -184,7 +184,7 @@
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib"
AdditionalDependencies="winmm.lib ws2_32.lib imm32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib icule.lib iculx.lib"
LinkIncremental="0"
SuppressStartupBanner="true"
IgnoreDefaultLibraryNames="LIBCMT.lib"
@@ -292,7 +292,7 @@
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib"
AdditionalDependencies="winmm.lib ws2_32.lib imm32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib icule.lib iculx.lib"
LinkIncremental="1"
SuppressStartupBanner="true"
IgnoreDefaultLibraryNames=""
@@ -392,7 +392,7 @@
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib"
AdditionalDependencies="winmm.lib ws2_32.lib imm32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib icule.lib iculx.lib"
LinkIncremental="0"
SuppressStartupBanner="true"
IgnoreDefaultLibraryNames="LIBCMT.lib"

View File

@@ -88,7 +88,7 @@
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib"
AdditionalDependencies="winmm.lib ws2_32.lib imm32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib icule.lib iculx.lib"
LinkIncremental="1"
SuppressStartupBanner="true"
IgnoreDefaultLibraryNames=""
@@ -183,7 +183,7 @@
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib"
AdditionalDependencies="winmm.lib ws2_32.lib imm32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib icule.lib iculx.lib"
LinkIncremental="0"
SuppressStartupBanner="true"
IgnoreDefaultLibraryNames="LIBCMT.lib"
@@ -290,7 +290,7 @@
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib"
AdditionalDependencies="winmm.lib ws2_32.lib imm32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib icule.lib iculx.lib"
LinkIncremental="1"
SuppressStartupBanner="true"
IgnoreDefaultLibraryNames=""
@@ -389,7 +389,7 @@
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib"
AdditionalDependencies="winmm.lib ws2_32.lib imm32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib icule.lib iculx.lib"
LinkIncremental="0"
SuppressStartupBanner="true"
IgnoreDefaultLibraryNames="LIBCMT.lib"
@@ -535,6 +535,10 @@
RelativePath=".\..\src\fontcache.cpp"
>
</File>
<File
RelativePath=".\..\src\fontdetection.cpp"
>
</File>
<File
RelativePath=".\..\src\base_consist.cpp"
>
@@ -555,6 +559,10 @@
RelativePath=".\..\src\gfxinit.cpp"
>
</File>
<File
RelativePath=".\..\src\gfx_layout.cpp"
>
</File>
<File
RelativePath=".\..\src\goal.cpp"
>
@@ -1031,6 +1039,10 @@
RelativePath=".\..\src\fontcache.h"
>
</File>
<File
RelativePath=".\..\src\fontdetection.h"
>
</File>
<File
RelativePath=".\..\src\base_consist.h"
>
@@ -1051,6 +1063,10 @@
RelativePath=".\..\src\gfx_func.h"
>
</File>
<File
RelativePath=".\..\src\gfx_layout.h"
>
</File>
<File
RelativePath=".\..\src\gfx_type.h"
>
@@ -1547,6 +1563,10 @@
RelativePath=".\..\src\strgen\strgen.h"
>
</File>
<File
RelativePath=".\..\src\string_base.h"
>
</File>
<File
RelativePath=".\..\src\string_func.h"
>

View File

@@ -88,7 +88,7 @@
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib"
AdditionalDependencies="winmm.lib ws2_32.lib imm32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib icule.lib iculx.lib"
LinkIncremental="1"
SuppressStartupBanner="true"
IgnoreDefaultLibraryNames=""
@@ -183,7 +183,7 @@
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib"
AdditionalDependencies="winmm.lib ws2_32.lib imm32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib icule.lib iculx.lib"
LinkIncremental="0"
SuppressStartupBanner="true"
IgnoreDefaultLibraryNames="LIBCMT.lib"
@@ -290,7 +290,7 @@
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib"
AdditionalDependencies="winmm.lib ws2_32.lib imm32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib icule.lib iculx.lib"
LinkIncremental="1"
SuppressStartupBanner="true"
IgnoreDefaultLibraryNames=""
@@ -389,7 +389,7 @@
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib"
AdditionalDependencies="winmm.lib ws2_32.lib imm32.lib libpng.lib zlibstat.lib lzo2.lib liblzma.lib libfreetype2.lib icuuc.lib icuin.lib icudt.lib icule.lib iculx.lib"
LinkIncremental="0"
SuppressStartupBanner="true"
IgnoreDefaultLibraryNames="LIBCMT.lib"

View File

@@ -1,6 +1,5 @@
OpenTTD readme
Last updated: 2013-02-07
Release version: 1.3.0-beta2
Last updated: 2013-11-24
Release version: 1.3.3-RC2
------------------------------------------------------------------------
@@ -22,10 +21,12 @@ Table of contents
7.0) Compiling
* 7.1) Required/optional libraries
* 7.2) Supported compilers
* 7.3) Compilation of base sets
8.0) Translating
* 8.1) Translation
* 8.2) Previewing
9.0) Troubleshooting
10.0) Licensing
X.X) Credits
@@ -35,9 +36,9 @@ OpenTTD is a transport simulation game based upon the popular game Transport
Tycoon Deluxe, written by Chris Sawyer. It attempts to mimic the original
game as closely as possible while extending it with new features.
OpenTTD is licensed under the GNU General Public License version 2.0. For
more information, see the file 'COPYING'.
OpenTTD is licensed under the GNU General Public License version 2.0,
but includes some 3rd party software under different licenses. See the
section "Licensing" below for details.
2.0) Contacting
---- ----------
@@ -218,9 +219,9 @@ The Windows installer can optionally download and install these packages.
4.1.2) Original Transport Tycoon Deluxe graphics and sound files
------ ---------------------------------------------------------
If you want to play with the original Transport Tycoon Deluxe data files you
have to copy the data files from the CD-ROM into the data/ directory. It does
not matter whether you copy them from the DOS or Windows version of Transport
Tycoon Deluxe. The Windows install can optionally copy these files.
have to copy the data files from the CD-ROM into the baseset/ directory. It
does not matter whether you copy them from the DOS or Windows version of
Transport Tycoon Deluxe. The Windows install can optionally copy these files.
You need to copy the following files:
- sample.cat
- trg1r.grf or TRG1.GRF
@@ -409,7 +410,6 @@ Information logged:
original Transport Tycoon version
* Running a modified OpenTTD build
* Changing settings affecting NewGRF behaviour (non-network-safe settings)
* Changing landscape (by cheat)
* Triggering NewGRF bugs
No personal information is stored.
@@ -477,9 +477,9 @@ DOS:
website. Compilation is straight forward: use make, but do a './configure'
before the first build. The build binary will need cwsdpmi.exe to be in
the same directory as the openttd executable. cwsdpmi.exe can be found in
the os/dos subdirectory. If you compile with stripping turned on a binary
will be generated that does not need cwsdpmi.exe by adding the cswdstub.exe
to the created OpenTTD binary.
the os/dos/cwsdpmi subdirectory. If you compile with stripping turned on a
binary will be generated that does not need cwsdpmi.exe by adding the
cswdstub.exe to the created OpenTTD binary.
7.1) Required/optional libraries
---- ---------------------------
@@ -501,21 +501,15 @@ open most older savegames or use the content downloading system.
Without libSDL/liballegro on non-Windows and non-MacOS X machines you have
no graphical user interface; you would be building a dedicated server.
To recompile the extra graphics needed to play with the original Transport
Tycoon Deluxe graphics you need GRFCodec (which includes NFORenum) as well.
GRFCodec can be found at: http://www.openttd.org/download-grfcodec
The compilation of these extra graphics does generally not happen, unless
you remove the graphics file using 'make maintainer-clean'.
7.2) Supported compilers
---- -------------------
The following compilers are known to compile OpenTTD:
- Microsoft Visual C++ (MSVC) 2005, 2008 and 2010.
Version 2005 gives bogus warnings about scoping issues.
- GNU Compiler Collection (GCC) 3.3 - 4.7.
- GNU Compiler Collection (GCC) 3.3 - 4.4, 4.6 - 4.8.
Versions 4.1 and earlier give bogus warnings about uninitialised variables.
Versions 4.4 - 4.6 give bogus warnings about freeing non-heap objects.
Versions 4.5 and later give invalid warnings when lto is enabled.
Versions 4.4, 4.6 give bogus warnings about freeing non-heap objects.
Versions 4.6 and later give invalid warnings when lto is enabled.
- Intel C++ Compiler (ICC) 12.0.
- Clang/LLVM 2.9 - 3.0
Version 2.9 gives bogus warnings about code nonconformity.
@@ -524,6 +518,8 @@ The following compilers are known not to compile OpenTTD:
- Microsoft Visual C++ (MSVC) 2003 and earlier.
- GNU Compiler Collection (GCC) 3.2 and earlier.
These old versions fail due to OpenTTD's template usage.
- GNU Compiler Collection (GCC) 4.5. It optimizes enums too aggressively.
See http://bugs.openttd.org/task/5513 and references therein.
- Intel C++ Compiler (ICC) 11.1 and earlier.
Version 10.0 and earlier fail a configure check and fail with recent system
headers.
@@ -535,6 +531,21 @@ The following compilers are known not to compile OpenTTD:
If any of these compilers can compile OpenTTD again, please let us know.
Patches to support more compilers are welcome.
7.3) Compilation of base sets
-----------------------------
To recompile the extra graphics needed to play with the original Transport
Tycoon Deluxe graphics you need GRFCodec (which includes NFORenum) as well.
GRFCodec can be found at: http://www.openttd.org/download-grfcodec
The compilation of these extra graphics does generally not happen, unless
you remove the graphics file using 'make maintainer-clean'.
Re-compilation of the base sets, thus also use of --maintainer-clean can
leave the repository in a modified state as different grfcodec versions can
cause binary differences in the resulting grf. Also translations might have
been added for the base sets which are not yet included in the base set
information files. Use the configure option --without-grfcodec to avoid
modification of the base set files by the build process.
8.0) Translating
---- -----------
@@ -572,10 +583,9 @@ Note: Do not alter the following parts of the file:
8.2) Previewing
---- ----------
In order to view the translation in the game, you need to compile your language
file with the strgen utility. You can download the precompiled strgen from:
http://www.openttd.org/download-strgen
To compile it yourself just take the normal OpenTTD sources and build that.
During the build process the strgen utility will be made.
file with the strgen utility. As this utility is tailored to a specific OpenTTD
version, you need to compile it yourself. Just take the normal OpenTTD sources
and build that. During the build process the strgen utility will be made.
strgen is a command-line utility. It takes the language filename as parameter.
Example:
@@ -633,6 +643,29 @@ development section (http://www.tt-forums.net/viewforum.php?f=66) or GrfCrawler
(see section 4.2 'OpenTTD directories') and rescan the list of available NewGRFs.
Once you have all missing files, you are set to go.
10.0) Licensing
----- ---------
OpenTTD is licensed under the GNU General Public License version 2.0. For
the complete license text, see the file 'COPYING'. This license applies
to all files in this distribution, except as noted below.
The squirrel implementation in src/3rdparty/squirrel is licensed under
the Zlib license. See src/3rdparty/squirrel/COPYRIGHT for the complete
license text.
The md5 implementation in src/3rdparty/md5 is licensed under the Zlib
license. See the comments in the source files in src/3rdparty/md5 for
the complete license text.
The exe2coff implementation in os/dos/exe2coff is available under the
GPL, with a number of additional terms. See os/dos/exe2coff/copying and
os/dos/exe2coff/copying.dj for the exact licensing terms.
The CWSDPMI implementation in os/dos/cwsdpmi is distributed under a
custom binary-only license that prohibits modification. The exact
licensing terms can be found in os/dos/cwsdpmi/cwsdpmi.txt. The sources
for these files can be downloaded at its author site, at:
http://homer.rice.edu/~sandmann/cwsdpmi/csdpmi5s.zip
X.X) Credits
---- -------
@@ -640,6 +673,7 @@ The OpenTTD team (in alphabetical order):
Albert Hofkamp (Alberth) - GUI expert
Jean-François Claeys (Belugas) - GUI, newindustries and more
Matthijs Kooijman (blathijs) - Pathfinder-guru, pool rework
Ulf Hermann (fonsinchen) - Cargo Distribution
Christoph Elsenhans (frosch) - General coding
Loïc Guilloux (glx) - Windows Expert
Michael Lutz (michi_cc) - Path based signals

View File

@@ -25,11 +25,13 @@ engine.cpp
fileio.cpp
fios.cpp
fontcache.cpp
fontdetection.cpp
base_consist.cpp
gamelog.cpp
genworld.cpp
gfx.cpp
gfxinit.cpp
gfx_layout.cpp
goal.cpp
ground_vehicle.cpp
heightmap.cpp
@@ -173,11 +175,13 @@ fileio_func.h
fileio_type.h
fios.h
fontcache.h
fontdetection.h
base_consist.h
gamelog.h
gamelog_internal.h
genworld.h
gfx_func.h
gfx_layout.h
gfx_type.h
gfxinit.h
goal_base.h
@@ -302,6 +306,7 @@ station_type.h
statusbar_gui.h
stdafx.h
strgen/strgen.h
string_base.h
string_func.h
string_type.h
stringfilter_type.h

3
src/3rdparty/README.licensing vendored Normal file
View File

@@ -0,0 +1,3 @@
The files in this directory are not licensed under the same terms as the
rest of OpenTTD. Licensing details can be found in OpenTTD's readme.txt
and in this directory or subdirectories as well.

View File

@@ -37,9 +37,13 @@ public:
~sqvector()
{
if(_allocated) {
/* Break freeing loops, if this vector (indirectly) links to itself. */
size_t allocated_size = _allocated * sizeof(T);
_allocated = 0;
for(SQUnsignedInteger i = 0; i < _size; i++)
_vals[i].~T();
SQ_FREE(_vals, (_allocated * sizeof(T)));
SQ_FREE(_vals, allocated_size);
}
}
void reserve(SQUnsignedInteger newsize) { _realloc(newsize); }

View File

@@ -107,6 +107,7 @@ SQVM::SQVM(SQSharedState *ss)
_errorhandler = _null_;
_debughook = _null_;
_can_suspend = false;
_in_stackoverflow = false;
_ops_till_suspend = 0;
ci = NULL;
INIT_CHAIN();ADD_TO_CHAIN(&_ss(this)->_gc_chain,this);

View File

@@ -170,6 +170,7 @@ public:
SQBool _can_suspend;
SQInteger _ops_till_suspend;
SQBool _in_stackoverflow;
bool ShouldSuspend()
{
@@ -200,8 +201,10 @@ inline SQObjectPtr &stack_get(HSQUIRRELVM v,SQInteger idx){return ((idx>=0)?(v->
#define PUSH_CALLINFO(v,nci){ \
if(v->_callsstacksize == v->_alloccallsstacksize) { \
if (v->_callsstacksize > 65535) {\
if (v->_callsstacksize > 65535 && !v->_in_stackoverflow) {\
v->_in_stackoverflow = true; \
v->Raise_Error(_SC("stack overflow"));\
v->CallErrorHandler(v->_lasterror);\
return false;\
}\
v->GrowCallStack(); \

View File

@@ -47,6 +47,7 @@
/* Load default data and store the name in the settings */
config->Change(info->GetName(), -1, false, true);
}
config->AnchorUnchangeableSettings();
Backup<CompanyByte> cur_company(_current_company, company, FILE_LINE);
Company *c = Company::Get(company);

View File

@@ -1000,6 +1000,43 @@ struct AIDebugWindow : public Window {
return !Company::IsValidAiID(ai_debug_company) || Company::Get(ai_debug_company)->ai_instance->IsDead();
}
/**
* Check whether a company is a valid AI company or GS.
* @param company Company to check for validity.
* @return true if company is valid for debugging.
*/
bool IsValidDebugCompany(CompanyID company) const
{
switch (company) {
case INVALID_COMPANY: return false;
case OWNER_DEITY: return Game::GetInstance() != NULL;
default: return Company::IsValidAiID(company);
}
}
/**
* Ensure that \c ai_debug_company refers to a valid AI company or GS, or is set to #INVALID_COMPANY.
* If no valid company is selected, it selects the first valid AI or GS if any.
*/
void SelectValidDebugCompany()
{
/* Check if the currently selected company is still active. */
if (this->IsValidDebugCompany(ai_debug_company)) return;
ai_debug_company = INVALID_COMPANY;
const Company *c;
FOR_ALL_COMPANIES(c) {
if (c->is_ai) {
ChangeToAI(c->index);
return;
}
}
/* If no AI is available, see if there is a game script. */
if (Game::GetInstance() != NULL) ChangeToAI(OWNER_DEITY);
}
/**
* Constructor for the window.
* @param desc The description of the window.
@@ -1014,14 +1051,6 @@ struct AIDebugWindow : public Window {
this->FinishInitNested(desc, number);
if (!this->show_break_box) break_check_enabled = false;
/* Disable the companies who are not active or not an AI */
for (CompanyID i = COMPANY_FIRST; i < MAX_COMPANIES; i++) {
this->SetWidgetDisabledState(i + WID_AID_COMPANY_BUTTON_START, !Company::IsValidAiID(i));
}
this->EnableWidget(WID_AID_SCRIPT_GAME);
this->DisableWidget(WID_AID_RELOAD_TOGGLE);
this->DisableWidget(WID_AID_SETTINGS);
this->DisableWidget(WID_AID_CONTINUE_BTN);
this->last_vscroll_pos = 0;
this->autoscroll = true;
@@ -1032,17 +1061,8 @@ struct AIDebugWindow : public Window {
/* Restore the break string value from static variable */
this->break_editbox.text.Assign(this->break_string);
/* Restore button state from static class variables */
if (ai_debug_company == OWNER_DEITY) {
this->LowerWidget(WID_AID_SCRIPT_GAME);
this->SetWidgetDisabledState(WID_AID_CONTINUE_BTN, !Game::IsPaused());
} else if (ai_debug_company != INVALID_COMPANY) {
this->LowerWidget(ai_debug_company + WID_AID_COMPANY_BUTTON_START);
this->SetWidgetDisabledState(WID_AID_CONTINUE_BTN, !AI::IsPaused(ai_debug_company));
}
this->SetWidgetLoweredState(WID_AID_BREAK_STR_ON_OFF_BTN, this->break_check_enabled);
this->SetWidgetLoweredState(WID_AID_MATCH_CASE_BTN, this->case_sensitive_break_check);
this->SelectValidDebugCompany();
this->InvalidateData(-1);
}
virtual void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize)
@@ -1055,67 +1075,31 @@ struct AIDebugWindow : public Window {
virtual void OnPaint()
{
/* Check if the currently selected company is still active. */
if (ai_debug_company == INVALID_COMPANY || (ai_debug_company != OWNER_DEITY && !Company::IsValidAiID(ai_debug_company))) {
if (ai_debug_company != INVALID_COMPANY) {
/* Raise the widget for the previous selection. */
this->RaiseWidget(ai_debug_company + WID_AID_COMPANY_BUTTON_START);
ai_debug_company = INVALID_COMPANY;
}
const Company *c;
FOR_ALL_COMPANIES(c) {
if (c->is_ai) {
/* Lower the widget corresponding to this company. */
this->LowerWidget(c->index + WID_AID_COMPANY_BUTTON_START);
ai_debug_company = c->index;
break;
}
}
/* If no AI is available, see if there is a game script. */
if (ai_debug_company == INVALID_COMPANY && Game::GetInstance() != NULL) {
/* Lower the widget corresponding to the game script. */
this->LowerWidget(WID_AID_SCRIPT_GAME);
ai_debug_company = OWNER_DEITY;
}
}
/* Update "Reload AI" and "AI settings" buttons */
this->SetWidgetDisabledState(WID_AID_SETTINGS, ai_debug_company == INVALID_COMPANY);
this->SetWidgetDisabledState(WID_AID_RELOAD_TOGGLE, ai_debug_company == INVALID_COMPANY || ai_debug_company == OWNER_DEITY);
this->SetWidgetDisabledState(WID_AID_SCRIPT_GAME, Game::GetGameInstance() == NULL);
this->SelectValidDebugCompany();
/* Draw standard stuff */
this->DrawWidgets();
if (this->IsShaded()) return; // Don't draw anything when the window is shaded.
bool dirty = false;
/* Paint the company icons */
for (CompanyID i = COMPANY_FIRST; i < MAX_COMPANIES; i++) {
NWidgetCore *button = this->GetWidget<NWidgetCore>(i + WID_AID_COMPANY_BUTTON_START);
bool dirty = false;
bool valid = Company::IsValidAiID(i);
bool disabled = !valid;
if (button->IsDisabled() != disabled) {
/* Invalid/non-AI companies have button disabled */
button->SetDisabled(disabled);
dirty = true;
}
/* Check whether the validity of the company changed */
dirty |= (button->IsDisabled() == valid);
/* Mark dead/paused AIs by setting the background colour. */
bool dead = valid && Company::Get(i)->ai_instance->IsDead();
bool paused = valid && Company::Get(i)->ai_instance->IsPaused();
/* Re-paint if the button was updated.
* (note that it is intentional that SetScriptButtonColour is always called) */
dirty = SetScriptButtonColour(*button, dead, paused) || dirty;
dirty |= SetScriptButtonColour(*button, dead, paused);
/* Do we need a repaint? */
if (dirty) this->SetDirty();
/* Draw company icon only for valid AI companies */
if (!valid) continue;
@@ -1125,13 +1109,14 @@ struct AIDebugWindow : public Window {
/* Set button colour for Game Script. */
GameInstance *game = Game::GetInstance();
bool dead = game != NULL && game->IsDead();
bool paused = game != NULL && game->IsPaused();
bool valid = game != NULL;
bool dead = valid && game->IsDead();
bool paused = valid && game->IsPaused();
NWidgetCore *button = this->GetWidget<NWidgetCore>(WID_AID_SCRIPT_GAME);
if (SetScriptButtonColour(*button, dead, paused)) {
/* Re-paint if the button was updated. */
this->SetWidgetDirty(WID_AID_SCRIPT_GAME);
}
dirty |= (button->IsDisabled() == valid) || SetScriptButtonColour(*button, dead, paused);
if (dirty) this->InvalidateData(-1);
/* If there are no active companies, don't display anything else. */
if (ai_debug_company == INVALID_COMPANY) return;
@@ -1233,30 +1218,19 @@ struct AIDebugWindow : public Window {
*/
void ChangeToAI(CompanyID show_ai)
{
if (ai_debug_company == OWNER_DEITY) {
this->RaiseWidget(WID_AID_SCRIPT_GAME);
} else {
this->RaiseWidget(ai_debug_company + WID_AID_COMPANY_BUTTON_START);
}
if (!this->IsValidDebugCompany(show_ai)) return;
ai_debug_company = show_ai;
ScriptLog::LogData *log = this->GetLogPointer();
this->vscroll->SetCount((log == NULL) ? 0 : log->used);
if (ai_debug_company == OWNER_DEITY) {
this->LowerWidget(WID_AID_SCRIPT_GAME);
this->SetWidgetDisabledState(WID_AID_CONTINUE_BTN, !Game::IsPaused());
} else {
this->LowerWidget(ai_debug_company + WID_AID_COMPANY_BUTTON_START);
this->SetWidgetDisabledState(WID_AID_CONTINUE_BTN, !AI::IsPaused(ai_debug_company));
}
this->highlight_row = -1; // The highlight of one AI make little sense for another AI.
this->autoscroll = true;
this->last_vscroll_pos = this->vscroll->GetPosition();
this->SetDirty();
/* Close AI settings window to prevent confusion */
DeleteWindowByClass(WC_AI_SETTINGS);
this->InvalidateData(-1);
this->autoscroll = true;
this->last_vscroll_pos = this->vscroll->GetPosition();
}
virtual void OnClick(Point pt, int widget, int click_count)
@@ -1287,25 +1261,21 @@ struct AIDebugWindow : public Window {
case WID_AID_BREAK_STR_ON_OFF_BTN:
this->break_check_enabled = !this->break_check_enabled;
this->SetWidgetLoweredState(WID_AID_BREAK_STR_ON_OFF_BTN, this->break_check_enabled);
this->SetWidgetDirty(WID_AID_BREAK_STR_ON_OFF_BTN);
this->InvalidateData(-1);
break;
case WID_AID_MATCH_CASE_BTN:
this->case_sensitive_break_check = !this->case_sensitive_break_check;
this->SetWidgetLoweredState(WID_AID_MATCH_CASE_BTN, this->case_sensitive_break_check);
this->SetWidgetDirty(WID_AID_MATCH_CASE_BTN);
this->InvalidateData(-1);
break;
case WID_AID_CONTINUE_BTN:
/* Unpause current AI / game script and mark the corresponding script button dirty. */
if (!IsDead()) {
if (!this->IsDead()) {
if (ai_debug_company == OWNER_DEITY) {
Game::Unpause();
this->SetWidgetDirty(WID_AID_SCRIPT_GAME);
} else {
AI::Unpause(ai_debug_company);
this->SetWidgetDirty(WID_AID_COMPANY_BUTTON_START + ai_debug_company);
}
}
@@ -1328,13 +1298,12 @@ struct AIDebugWindow : public Window {
}
this->highlight_row = -1;
this->SetWidgetDirty(WID_AID_LOG_PANEL);
this->DisableWidget(WID_AID_CONTINUE_BTN);
this->InvalidateData(-1);
break;
}
}
virtual EventState OnKeyPress(uint16 key, uint16 keycode)
virtual EventState OnKeyPress(WChar key, uint16 keycode)
{
EventState state = ES_NOT_HANDLED;
int num = CheckHotkeyMatch(aidebug_hotkeys, keycode, this);
@@ -1363,15 +1332,14 @@ struct AIDebugWindow : public Window {
/**
* Some data on this window has become invalid.
* @param data Information about the changed data.
* This is the company ID of the AI/GS which wrote a new log message, or -1 in other cases.
* @param gui_scope Whether the call is done from GUI scope. You may not do everything when not in GUI scope. See #InvalidateWindowData() for details.
*/
virtual void OnInvalidateData(int data = 0, bool gui_scope = true)
{
if (data == -1 || ai_debug_company == data) this->SetDirty();
/* If the log message is related to the active company tab, check the break string.
* This needs to be done in gameloop-scope, so the AI is suspended immediately. */
if (!gui_scope && data == ai_debug_company && this->break_check_enabled && !this->break_string_filter.IsEmpty()) {
if (!gui_scope && data == ai_debug_company && this->IsValidDebugCompany(ai_debug_company) && this->break_check_enabled && !this->break_string_filter.IsEmpty()) {
/* Get the log instance of the active company */
ScriptLog::LogData *log = this->GetLogPointer();
@@ -1380,7 +1348,7 @@ struct AIDebugWindow : public Window {
this->break_string_filter.AddLine(log->lines[log->pos]);
if (this->break_string_filter.GetState()) {
/* Pause execution of script. */
if (!IsDead()) {
if (!this->IsDead()) {
if (ai_debug_company == OWNER_DEITY) {
Game::Pause();
} else {
@@ -1393,15 +1361,35 @@ struct AIDebugWindow : public Window {
DoCommandP(0, PM_PAUSED_NORMAL, 1, CMD_PAUSE);
}
/* Make it possible to click on the continue button */
this->EnableWidget(WID_AID_CONTINUE_BTN);
this->SetWidgetDirty(WID_AID_CONTINUE_BTN);
/* Highlight row that matched */
this->highlight_row = log->pos;
}
}
}
if (!gui_scope) return;
this->SelectValidDebugCompany();
ScriptLog::LogData *log = ai_debug_company != INVALID_COMPANY ? this->GetLogPointer() : NULL;
this->vscroll->SetCount((log == NULL) ? 0 : log->used);
/* Update company buttons */
for (CompanyID i = COMPANY_FIRST; i < MAX_COMPANIES; i++) {
this->SetWidgetDisabledState(i + WID_AID_COMPANY_BUTTON_START, !Company::IsValidAiID(i));
this->SetWidgetLoweredState(i + WID_AID_COMPANY_BUTTON_START, ai_debug_company == i);
}
this->SetWidgetDisabledState(WID_AID_SCRIPT_GAME, Game::GetGameInstance() == NULL);
this->SetWidgetLoweredState(WID_AID_SCRIPT_GAME, ai_debug_company == OWNER_DEITY);
this->SetWidgetLoweredState(WID_AID_BREAK_STR_ON_OFF_BTN, this->break_check_enabled);
this->SetWidgetLoweredState(WID_AID_MATCH_CASE_BTN, this->case_sensitive_break_check);
this->SetWidgetDisabledState(WID_AID_SETTINGS, ai_debug_company == INVALID_COMPANY);
this->SetWidgetDisabledState(WID_AID_RELOAD_TOGGLE, ai_debug_company == INVALID_COMPANY || ai_debug_company == OWNER_DEITY);
this->SetWidgetDisabledState(WID_AID_CONTINUE_BTN, ai_debug_company == INVALID_COMPANY ||
(ai_debug_company == OWNER_DEITY ? !Game::IsPaused() : !AI::IsPaused(ai_debug_company)));
}
virtual void OnResize()
@@ -1526,7 +1514,7 @@ Window *ShowAIDebugWindow(CompanyID show_company)
/**
* Handler for global AI debug window hotkeys.
*/
EventState AIDebugGlobalHotkeys(uint16 key, uint16 keycode)
EventState AIDebugGlobalHotkeys(WChar key, uint16 keycode)
{
int num = CheckHotkeyMatch<AIDebugWindow>(_aidebug_hotkeys, keycode, NULL, true);
if (num == -1) return ES_NOT_HANDLED;

View File

@@ -238,8 +238,17 @@ ScriptInfo *AIInstance::FindLibrary(const char *library, int version)
*/
void CcAI(const CommandCost &result, TileIndex tile, uint32 p1, uint32 p2)
{
Company::Get(_current_company)->ai_instance->DoCommandCallback(result, tile, p1, p2);
Company::Get(_current_company)->ai_instance->Continue();
/*
* The company might not exist anymore. Check for this.
* The command checks are not useful since this callback
* is also called when the command fails, which is does
* when the company does not exist anymore.
*/
const Company *c = Company::GetIfValid(_current_company);
if (c == NULL || c->ai_instance == NULL) return;
c->ai_instance->DoCommandCallback(result, tile, p1, p2);
c->ai_instance->Continue();
}
CommandCallback *AIInstance::GetDoCommandCallback()

View File

@@ -598,7 +598,14 @@ enum AircraftSpeedLimits {
*/
static int UpdateAircraftSpeed(Aircraft *v, uint speed_limit = SPEED_LIMIT_NONE, bool hard_limit = true)
{
uint spd = v->acceleration * 16;
/**
* 'acceleration' has the unit 3/8 mph/tick. This function is called twice per tick.
* So the speed amount we need to accelerate is:
* acceleration * 3 / 16 mph = acceleration * 3 / 16 * 16 / 10 km-ish/h
* = acceleration * 3 / 10 * 256 * (km-ish/h / 256)
* ~ acceleration * 77 (km-ish/h / 256)
*/
uint spd = v->acceleration * 77;
byte t;
/* Adjust speed limits by plane speed factor to prevent taxiing
@@ -1059,7 +1066,12 @@ static bool HandleCrashedAircraft(Aircraft *v)
}
static void HandleAircraftSmoke(Aircraft *v)
/**
* Handle smoke of broken aircraft.
* @param v Aircraft
* @param mode Is this the non-first call for this vehicle in this tick?
*/
static void HandleAircraftSmoke(Aircraft *v, bool mode)
{
static const struct {
int8 x;
@@ -1077,13 +1089,15 @@ static void HandleAircraftSmoke(Aircraft *v)
if (!(v->vehstatus & VS_AIRCRAFT_BROKEN)) return;
/* Stop smoking when landed */
if (v->cur_speed < 10) {
v->vehstatus &= ~VS_AIRCRAFT_BROKEN;
v->breakdown_ctr = 0;
return;
}
if ((v->tick_counter & 0x1F) == 0) {
/* Spawn effect et most once per Tick, i.e. !mode */
if (!mode && (v->tick_counter & 0x0F) == 0) {
CreateEffectVehicleRel(v,
smoke_pos[v->direction].x,
smoke_pos[v->direction].y,
@@ -1886,8 +1900,6 @@ static void AircraftHandleDestTooFar(Aircraft *v, bool too_far)
static bool AircraftEventHandler(Aircraft *v, int loop)
{
v->tick_counter++;
if (v->vehstatus & VS_CRASHED) {
return HandleCrashedAircraft(v);
}
@@ -1896,7 +1908,7 @@ static bool AircraftEventHandler(Aircraft *v, int loop)
v->HandleBreakdown();
HandleAircraftSmoke(v);
HandleAircraftSmoke(v, loop != 0);
ProcessOrders(v);
v->HandleLoading(loop != 0);
@@ -1926,6 +1938,8 @@ bool Aircraft::Tick()
{
if (!this->IsNormalAircraft()) return true;
this->tick_counter++;
if (!(this->vehstatus & VS_STOPPED)) this->running_ticks++;
if (this->subtype == AIR_HELICOPTER) HelicopterTickHandler(this);

View File

@@ -39,7 +39,7 @@ void DrawAircraftDetails(const Aircraft *v, int left, int right, int y)
SetDParam(0, u->engine_type);
SetDParam(1, u->build_year);
SetDParam(2, u->value);
DrawString(left, right, y, STR_VEHICLE_INFO_BUILT_VALUE, TC_FROMSTRING, SA_LEFT | SA_STRIP);
DrawString(left, right, y, STR_VEHICLE_INFO_BUILT_VALUE);
SetDParam(0, u->cargo_type);
SetDParam(1, u->cargo_cap);

View File

@@ -99,7 +99,7 @@ struct BuildAirToolbarWindow : Window {
}
virtual EventState OnKeyPress(uint16 key, uint16 keycode)
virtual EventState OnKeyPress(WChar key, uint16 keycode)
{
int num = CheckHotkeyMatch(airtoolbar_hotkeys, keycode, this);
if (num == -1) return ES_NOT_HANDLED;
@@ -187,7 +187,7 @@ Window *ShowBuildAirToolbar()
return AllocateWindowDescFront<BuildAirToolbarWindow>(&_air_toolbar_desc, TRANSPORT_AIR);
}
EventState AirportToolbarGlobalHotkeys(uint16 key, uint16 keycode)
EventState AirportToolbarGlobalHotkeys(WChar key, uint16 keycode)
{
if (!CanBuildVehicleInfrastructure(VEH_AIRCRAFT)) return ES_NOT_HANDLED;
int num = CheckHotkeyMatch<BuildAirToolbarWindow>(_airtoolbar_hotkeys, keycode, NULL, true);
@@ -338,7 +338,7 @@ public:
if (!as->IsAvailable()) {
GfxFillRect(r.left + 1, y + 1, r.right - 1, y + this->line_height - 2, PC_BLACK, FILLRECT_CHECKER);
}
DrawString(r.left + WD_MATRIX_LEFT, r.right + WD_MATRIX_RIGHT, y + WD_MATRIX_TOP, as->name, ((int)i == _selected_airport_index) ? TC_WHITE : TC_BLACK);
DrawString(r.left + WD_MATRIX_LEFT, r.right - WD_MATRIX_RIGHT, y + WD_MATRIX_TOP, as->name, ((int)i == _selected_airport_index) ? TC_WHITE : TC_BLACK);
y += this->line_height;
}
break;
@@ -391,8 +391,10 @@ public:
top = DrawStationCoverageAreaText(panel_nwi->pos_x + WD_FRAMERECT_LEFT, right - WD_FRAMERECT_RIGHT, top, SCT_ALL, rad, true) + WD_PAR_VSEP_NORMAL;
}
/* Resize background if the text is not equally long as the window. */
if (top > bottom || (top < bottom && panel_nwi->current_y > panel_nwi->smallest_y)) {
/* Resize background if the window is too small.
* Never make the window smaller to avoid oscillating if the size change affects the acceptance.
* (This is the case, if making the window bigger moves the mouse into the window.) */
if (top > bottom) {
ResizeWindow(this, 0, top - bottom);
}
}

View File

@@ -207,7 +207,7 @@ void Blitter_32bppOptimized::Draw(Blitter::BlitterParams *bp, BlitterMode mode,
}
}
Sprite *Blitter_32bppOptimized::Encode(SpriteLoader::Sprite *sprite, AllocatorProc *allocator)
Sprite *Blitter_32bppOptimized::Encode(const SpriteLoader::Sprite *sprite, AllocatorProc *allocator)
{
/* streams of pixels (a, r, g, b channels)
*

View File

@@ -24,7 +24,7 @@ public:
};
/* virtual */ void Draw(Blitter::BlitterParams *bp, BlitterMode mode, ZoomLevel zoom);
/* virtual */ Sprite *Encode(SpriteLoader::Sprite *sprite, AllocatorProc *allocator);
/* virtual */ Sprite *Encode(const SpriteLoader::Sprite *sprite, AllocatorProc *allocator);
/* virtual */ const char *GetName() { return "32bpp-optimized"; }

View File

@@ -92,7 +92,7 @@ void Blitter_32bppSimple::DrawColourMappingRect(void *dst, int width, int height
DEBUG(misc, 0, "32bpp blitter doesn't know how to draw this colour table ('%d')", pal);
}
Sprite *Blitter_32bppSimple::Encode(SpriteLoader::Sprite *sprite, AllocatorProc *allocator)
Sprite *Blitter_32bppSimple::Encode(const SpriteLoader::Sprite *sprite, AllocatorProc *allocator)
{
Blitter_32bppSimple::Pixel *dst;
Sprite *dest_sprite = (Sprite *)allocator(sizeof(*dest_sprite) + sprite->height * sprite->width * sizeof(*dst));

View File

@@ -28,7 +28,7 @@ class Blitter_32bppSimple : public Blitter_32bppBase {
public:
/* virtual */ void Draw(Blitter::BlitterParams *bp, BlitterMode mode, ZoomLevel zoom);
/* virtual */ void DrawColourMappingRect(void *dst, int width, int height, PaletteID pal);
/* virtual */ Sprite *Encode(SpriteLoader::Sprite *sprite, AllocatorProc *allocator);
/* virtual */ Sprite *Encode(const SpriteLoader::Sprite *sprite, AllocatorProc *allocator);
/* virtual */ const char *GetName() { return "32bpp-simple"; }
};

View File

@@ -112,7 +112,7 @@ void Blitter_8bppOptimized::Draw(Blitter::BlitterParams *bp, BlitterMode mode, Z
}
}
Sprite *Blitter_8bppOptimized::Encode(SpriteLoader::Sprite *sprite, AllocatorProc *allocator)
Sprite *Blitter_8bppOptimized::Encode(const SpriteLoader::Sprite *sprite, AllocatorProc *allocator)
{
/* Make memory for all zoom-levels */
uint memory = sizeof(SpriteData);

View File

@@ -25,7 +25,7 @@ public:
};
/* virtual */ void Draw(Blitter::BlitterParams *bp, BlitterMode mode, ZoomLevel zoom);
/* virtual */ Sprite *Encode(SpriteLoader::Sprite *sprite, AllocatorProc *allocator);
/* virtual */ Sprite *Encode(const SpriteLoader::Sprite *sprite, AllocatorProc *allocator);
/* virtual */ const char *GetName() { return "8bpp-optimized"; }
};

View File

@@ -55,7 +55,7 @@ void Blitter_8bppSimple::Draw(Blitter::BlitterParams *bp, BlitterMode mode, Zoom
}
}
Sprite *Blitter_8bppSimple::Encode(SpriteLoader::Sprite *sprite, AllocatorProc *allocator)
Sprite *Blitter_8bppSimple::Encode(const SpriteLoader::Sprite *sprite, AllocatorProc *allocator)
{
Sprite *dest_sprite;
dest_sprite = (Sprite *)allocator(sizeof(*dest_sprite) + sprite->height * sprite->width);

View File

@@ -19,7 +19,7 @@
class Blitter_8bppSimple FINAL : public Blitter_8bppBase {
public:
/* virtual */ void Draw(Blitter::BlitterParams *bp, BlitterMode mode, ZoomLevel zoom);
/* virtual */ Sprite *Encode(SpriteLoader::Sprite *sprite, AllocatorProc *allocator);
/* virtual */ Sprite *Encode(const SpriteLoader::Sprite *sprite, AllocatorProc *allocator);
/* virtual */ const char *GetName() { return "8bpp-simple"; }
};

View File

@@ -77,7 +77,7 @@ public:
/**
* Convert a sprite from the loader to our own format.
*/
virtual Sprite *Encode(SpriteLoader::Sprite *sprite, AllocatorProc *allocator) = 0;
virtual Sprite *Encode(const SpriteLoader::Sprite *sprite, AllocatorProc *allocator) = 0;
/**
* Move the destination pointer the requested amount x and y, keeping in mind

View File

@@ -15,7 +15,7 @@
/** Instantiation of the null blitter factory. */
static FBlitter_Null iFBlitter_Null;
Sprite *Blitter_Null::Encode(SpriteLoader::Sprite *sprite, AllocatorProc *allocator)
Sprite *Blitter_Null::Encode(const SpriteLoader::Sprite *sprite, AllocatorProc *allocator)
{
Sprite *dest_sprite;
dest_sprite = (Sprite *)allocator(sizeof(*dest_sprite));

View File

@@ -20,7 +20,7 @@ public:
/* virtual */ uint8 GetScreenDepth() { return 0; }
/* virtual */ void Draw(Blitter::BlitterParams *bp, BlitterMode mode, ZoomLevel zoom) {};
/* virtual */ void DrawColourMappingRect(void *dst, int width, int height, PaletteID pal) {};
/* virtual */ Sprite *Encode(SpriteLoader::Sprite *sprite, AllocatorProc *allocator);
/* virtual */ Sprite *Encode(const SpriteLoader::Sprite *sprite, AllocatorProc *allocator);
/* virtual */ void *MoveTo(void *video, int x, int y) { return NULL; };
/* virtual */ void SetPixel(void *video, int x, int y, uint8 colour) {};
/* virtual */ void DrawRect(void *video, int width, int height, uint8 colour) {};

View File

@@ -218,7 +218,7 @@ bool HandleBootstrap()
if (BlitterFactoryBase::GetCurrentBlitter()->GetScreenDepth() == 0) goto failure;
/* If there is no network or no freetype, then there is nothing we can do. Go straight to failure. */
#if defined(ENABLE_NETWORK) && defined(WITH_FREETYPE) && !defined(__APPLE__) && (defined(WITH_FONTCONFIG) || defined(WIN32))
#if defined(ENABLE_NETWORK) && defined(WITH_FREETYPE) && (defined(WITH_FONTCONFIG) || defined(WIN32) || defined(__APPLE__))
if (!_network_available) goto failure;
/* First tell the game we're bootstrapping. */

View File

@@ -249,7 +249,7 @@ public:
}
}
virtual EventState OnKeyPress(uint16 key, uint16 keycode)
virtual EventState OnKeyPress(WChar key, uint16 keycode)
{
const uint8 i = keycode - '1';
if (i < 9 && i < this->bridges->Length()) {

View File

@@ -13,6 +13,7 @@
#include "engine_base.h"
#include "engine_func.h"
#include "station_base.h"
#include "network/network.h"
#include "articulated_vehicles.h"
#include "textbuf_gui.h"
#include "command_func.h"
@@ -889,7 +890,7 @@ void DrawEngineList(VehicleType type, int l, int r, int y, const GUIEngineList *
int count_width = 0;
if (show_count) {
replace_icon = GetSpriteSize(SPR_GROUP_REPLACE_ACTIVE);
SetDParamMaxDigits(0, 3);
SetDParamMaxDigits(0, 3, FS_SMALL);
count_width = GetStringBoundingBox(STR_TINY_BLACK_COMA).width;
}
@@ -909,7 +910,7 @@ void DrawEngineList(VehicleType type, int l, int r, int y, const GUIEngineList *
const uint num_engines = GetGroupNumEngines(_local_company, selected_group, engine);
SetDParam(0, engine);
DrawString(text_left, text_right, y + normal_text_y_offset, STR_ENGINE_NAME, engine == selected_id ? TC_WHITE : TC_BLACK, SA_STRIP | (rtl ? SA_RIGHT : SA_LEFT));
DrawString(text_left, text_right, y + normal_text_y_offset, STR_ENGINE_NAME, engine == selected_id ? TC_WHITE : TC_BLACK);
DrawVehicleEngine(l, r, sprite_x, y + sprite_y_offset, engine, (show_count && num_engines == 0) ? PALETTE_CRASH : GetEnginePalette(engine, _local_company), EIT_PURCHASE);
if (show_count) {
SetDParam(0, num_engines);
@@ -970,6 +971,9 @@ struct BuildVehicleWindow : Window {
* So we just hide it, and enlarge the Rename button by the now vacant place. */
if (this->listview_mode) this->GetWidget<NWidgetStacked>(WID_BV_BUILD_SEL)->SetDisplayedPlane(SZSP_NONE);
/* disable renaming engines in network games if you are not the server */
this->SetWidgetDisabledState(WID_BV_RENAME, _networking && !_network_server);
NWidgetCore *widget = this->GetWidget<NWidgetCore>(WID_BV_LIST);
widget->tool_tip = STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP + type;

View File

@@ -209,7 +209,7 @@ static const Command _command_proc_table[] = {
DEF_CMD(CmdRemoveFromRailStation, 0, CMDT_LANDSCAPE_CONSTRUCTION), // CMD_REMOVE_FROM_RAIL_STATION
DEF_CMD(CmdConvertRail, 0, CMDT_LANDSCAPE_CONSTRUCTION), // CMD_CONVERT_RAILD
DEF_CMD(CmdBuildRailWaypoint, 0, CMDT_LANDSCAPE_CONSTRUCTION), // CMD_BUILD_RAIL_WAYPOINT
DEF_CMD(CmdRenameWaypoint, CMD_STR_CTRL, CMDT_OTHER_MANAGEMENT ), // CMD_RENAME_WAYPOINT
DEF_CMD(CmdRenameWaypoint, 0, CMDT_OTHER_MANAGEMENT ), // CMD_RENAME_WAYPOINT
DEF_CMD(CmdRemoveFromRailWaypoint, 0, CMDT_LANDSCAPE_CONSTRUCTION), // CMD_REMOVE_FROM_RAIL_WAYPOINT
DEF_CMD(CmdBuildRoadStop, CMD_NO_WATER | CMD_AUTO, CMDT_LANDSCAPE_CONSTRUCTION), // CMD_BUILD_ROAD_STOP
@@ -251,17 +251,17 @@ static const Command _command_proc_table[] = {
DEF_CMD(CmdWantEnginePreview, 0, CMDT_VEHICLE_MANAGEMENT ), // CMD_WANT_ENGINE_PREVIEW
DEF_CMD(CmdRenameVehicle, CMD_STR_CTRL, CMDT_OTHER_MANAGEMENT ), // CMD_RENAME_VEHICLE
DEF_CMD(CmdRenameEngine, CMD_STR_CTRL, CMDT_OTHER_MANAGEMENT ), // CMD_RENAME_ENGINE
DEF_CMD(CmdRenameVehicle, 0, CMDT_OTHER_MANAGEMENT ), // CMD_RENAME_VEHICLE
DEF_CMD(CmdRenameEngine, CMD_SERVER, CMDT_OTHER_MANAGEMENT ), // CMD_RENAME_ENGINE
DEF_CMD(CmdRenameCompany, CMD_STR_CTRL, CMDT_OTHER_MANAGEMENT ), // CMD_RENAME_COMPANY
DEF_CMD(CmdRenamePresident, CMD_STR_CTRL, CMDT_OTHER_MANAGEMENT ), // CMD_RENAME_PRESIDENT
DEF_CMD(CmdRenameCompany, 0, CMDT_OTHER_MANAGEMENT ), // CMD_RENAME_COMPANY
DEF_CMD(CmdRenamePresident, 0, CMDT_OTHER_MANAGEMENT ), // CMD_RENAME_PRESIDENT
DEF_CMD(CmdRenameStation, CMD_STR_CTRL, CMDT_OTHER_MANAGEMENT ), // CMD_RENAME_STATION
DEF_CMD(CmdRenameDepot, CMD_STR_CTRL, CMDT_OTHER_MANAGEMENT ), // CMD_RENAME_DEPOT
DEF_CMD(CmdRenameStation, 0, CMDT_OTHER_MANAGEMENT ), // CMD_RENAME_STATION
DEF_CMD(CmdRenameDepot, 0, CMDT_OTHER_MANAGEMENT ), // CMD_RENAME_DEPOT
DEF_CMD(CmdPlaceSign, CMD_STR_CTRL | CMD_DEITY, CMDT_OTHER_MANAGEMENT ), // CMD_PLACE_SIGN
DEF_CMD(CmdRenameSign, CMD_STR_CTRL | CMD_DEITY, CMDT_OTHER_MANAGEMENT ), // CMD_RENAME_SIGN
DEF_CMD(CmdPlaceSign, CMD_DEITY, CMDT_OTHER_MANAGEMENT ), // CMD_PLACE_SIGN
DEF_CMD(CmdRenameSign, CMD_DEITY, CMDT_OTHER_MANAGEMENT ), // CMD_RENAME_SIGN
DEF_CMD(CmdTurnRoadVeh, 0, CMDT_VEHICLE_MANAGEMENT ), // CMD_TURN_ROADVEH
@@ -272,7 +272,7 @@ static const Command _command_proc_table[] = {
DEF_CMD(CmdBuyCompany, 0, CMDT_MONEY_MANAGEMENT ), // CMD_BUY_COMANY
DEF_CMD(CmdFoundTown, CMD_NO_TEST, CMDT_LANDSCAPE_CONSTRUCTION), // CMD_FOUND_TOWN; founding random town can fail only in exec run
DEF_CMD(CmdRenameTown, CMD_STR_CTRL | CMD_SERVER, CMDT_OTHER_MANAGEMENT ), // CMD_RENAME_TOWN
DEF_CMD(CmdRenameTown, CMD_SERVER, CMDT_OTHER_MANAGEMENT ), // CMD_RENAME_TOWN
DEF_CMD(CmdDoTownAction, 0, CMDT_LANDSCAPE_CONSTRUCTION), // CMD_DO_TOWN_ACTION
DEF_CMD(CmdTownCargoGoal, CMD_DEITY, CMDT_OTHER_MANAGEMENT ), // CMD_TOWN_CARGO_GOAL
DEF_CMD(CmdTownGrowthRate, CMD_DEITY, CMDT_OTHER_MANAGEMENT ), // CMD_TOWN_GROWTH_RATE
@@ -314,7 +314,7 @@ static const Command _command_proc_table[] = {
DEF_CMD(CmdDepotMassAutoReplace, 0, CMDT_VEHICLE_CONSTRUCTION ), // CMD_DEPOT_MASS_AUTOREPLACE
DEF_CMD(CmdCreateGroup, 0, CMDT_ROUTE_MANAGEMENT ), // CMD_CREATE_GROUP
DEF_CMD(CmdDeleteGroup, 0, CMDT_ROUTE_MANAGEMENT ), // CMD_DELETE_GROUP
DEF_CMD(CmdRenameGroup, CMD_STR_CTRL, CMDT_OTHER_MANAGEMENT ), // CMD_RENAME_GROUP
DEF_CMD(CmdRenameGroup, 0, CMDT_OTHER_MANAGEMENT ), // CMD_RENAME_GROUP
DEF_CMD(CmdAddVehicleGroup, 0, CMDT_ROUTE_MANAGEMENT ), // CMD_ADD_VEHICLE_GROUP
DEF_CMD(CmdAddSharedVehicleGroup, 0, CMDT_ROUTE_MANAGEMENT ), // CMD_ADD_SHARE_VEHICLE_GROUP
DEF_CMD(CmdRemoveAllVehiclesGroup, 0, CMDT_ROUTE_MANAGEMENT ), // CMD_REMOVE_ALL_VEHICLES_GROUP

View File

@@ -550,7 +550,7 @@ Company *DoStartupNewCompany(bool is_ai, CompanyID company = INVALID_COMPANY)
c->avail_railtypes = GetCompanyRailtypes(c->index);
c->avail_roadtypes = GetCompanyRoadtypes(c->index);
c->inaugurated_year = _cur_year;
RandomCompanyManagerFaceBits(c->face, (GenderEthnicity)Random(), false); // create a random company manager face
RandomCompanyManagerFaceBits(c->face, (GenderEthnicity)Random(), false, false); // create a random company manager face
SetDefaultCompanySettings(c->index);

View File

@@ -526,7 +526,7 @@ public:
uint Height(uint width) const
{
return max(FONT_HEIGHT_NORMAL, (byte)14);
return max(FONT_HEIGHT_NORMAL, 14);
}
bool Selectable() const

View File

@@ -201,12 +201,15 @@ static inline void ScaleAllCompanyManagerFaceBits(CompanyManagerFace &cmf)
* @param cmf the company manager's face to write the bits to
* @param ge the gender and ethnicity of the old company manager's face
* @param adv if it for the advanced company manager's face window
* @param interactive is the call from within the user interface?
*
* @pre scale 'ge' to a valid gender/ethnicity combination
*/
static inline void RandomCompanyManagerFaceBits(CompanyManagerFace &cmf, GenderEthnicity ge, bool adv)
static inline void RandomCompanyManagerFaceBits(CompanyManagerFace &cmf, GenderEthnicity ge, bool adv, bool interactive = true)
{
cmf = InteractiveRandom(); // random all company manager's face bits
/* This method is called from a command when not interactive and
* then we must use Random to get the same result on all clients. */
cmf = interactive ? InteractiveRandom() : Random(); // random all company manager's face bits
/* scale ge: 0 == GE_WM, 1 == GE_WF, 2 == GE_BM, 3 == GE_BF (and maybe in future: ...) */
ge = (GenderEthnicity)((uint)ge % GE_END);

View File

@@ -21,6 +21,7 @@
#include "settings_type.h"
#include "console_func.h"
#include "rev.h"
#include "video/video_driver.hpp"
#include "widgets/console_widget.h"
@@ -184,6 +185,7 @@ struct IConsoleWindow : Window
~IConsoleWindow()
{
_iconsole_mode = ICONSOLE_CLOSED;
_video_driver->EditBoxLostFocus();
}
/**
@@ -215,6 +217,9 @@ struct IConsoleWindow : Window
delta = 0;
}
/* If we have a marked area, draw a background highlight. */
if (_iconsole_cmdline.marklength != 0) GfxFillRect(this->line_offset + delta + _iconsole_cmdline.markxoffs, this->height - this->line_height, this->line_offset + delta + _iconsole_cmdline.markxoffs + _iconsole_cmdline.marklength, this->height - 1, PC_DARK_RED);
DrawString(this->line_offset + delta, right, this->height - this->line_height, _iconsole_cmdline.buf, (TextColour)CC_COMMAND, SA_LEFT | SA_FORCE);
if (_focused_window == this && _iconsole_cmdline.caret) {
@@ -236,7 +241,7 @@ struct IConsoleWindow : Window
if (_iconsole_cmdline.HandleCaret()) this->SetDirty();
}
virtual EventState OnKeyPress(uint16 key, uint16 keycode)
virtual EventState OnKeyPress(WChar key, uint16 keycode)
{
if (_focused_window != this) return ES_NOT_HANDLED;
@@ -290,46 +295,13 @@ struct IConsoleWindow : Window
MarkWholeScreenDirty();
break;
#ifdef WITH_COCOA
case (WKC_META | 'V'):
#endif
case (WKC_CTRL | 'V'):
if (_iconsole_cmdline.InsertClipboard()) {
IConsoleResetHistoryPos();
this->SetDirty();
}
break;
case (WKC_CTRL | 'L'):
IConsoleCmdExec("clear");
break;
#ifdef WITH_COCOA
case (WKC_META | 'U'):
#endif
case (WKC_CTRL | 'U'):
_iconsole_cmdline.DeleteAll();
this->SetDirty();
break;
case WKC_BACKSPACE: case WKC_DELETE:
if (_iconsole_cmdline.DeleteChar(keycode)) {
IConsoleResetHistoryPos();
this->SetDirty();
}
break;
case WKC_LEFT: case WKC_RIGHT: case WKC_END: case WKC_HOME:
if (_iconsole_cmdline.MovePos(keycode)) {
IConsoleResetHistoryPos();
this->SetDirty();
}
break;
default:
if (IsValidChar(key, CS_ALPHANUMERAL)) {
if (_iconsole_cmdline.HandleKeyPress(key, keycode) != HKPR_NOT_HANDLED) {
IConsoleWindow::scroll = 0;
_iconsole_cmdline.InsertChar(key);
IConsoleResetHistoryPos();
this->SetDirty();
} else {
@@ -340,10 +312,70 @@ struct IConsoleWindow : Window
return ES_HANDLED;
}
virtual void InsertTextString(int wid, const char *str, bool marked, const char *caret, const char *insert_location, const char *replacement_end)
{
if (_iconsole_cmdline.InsertString(str, marked, caret, insert_location, replacement_end)) {
IConsoleWindow::scroll = 0;
IConsoleResetHistoryPos();
this->SetDirty();
}
}
virtual const char *GetFocusedText() const
{
return _iconsole_cmdline.buf;
}
virtual const char *GetCaret() const
{
return _iconsole_cmdline.buf + _iconsole_cmdline.caretpos;
}
virtual const char *GetMarkedText(size_t *length) const
{
if (_iconsole_cmdline.markend == 0) return NULL;
*length = _iconsole_cmdline.markend - _iconsole_cmdline.markpos;
return _iconsole_cmdline.buf + _iconsole_cmdline.markpos;
}
virtual Point GetCaretPosition() const
{
int delta = min(this->width - this->line_offset - _iconsole_cmdline.pixels - ICON_RIGHT_BORDERWIDTH, 0);
Point pt = {this->line_offset + delta + _iconsole_cmdline.caretxoffs, this->height - this->line_height};
return pt;
}
virtual Rect GetTextBoundingRect(const char *from, const char *to) const
{
int delta = min(this->width - this->line_offset - _iconsole_cmdline.pixels - ICON_RIGHT_BORDERWIDTH, 0);
Point p1 = GetCharPosInString(_iconsole_cmdline.buf, from, FS_NORMAL);
Point p2 = from != to ? GetCharPosInString(_iconsole_cmdline.buf, from) : p1;
Rect r = {this->line_offset + delta + p1.x, this->height - this->line_height, this->line_offset + delta + p2.x, this->height};
return r;
}
virtual const char *GetTextCharacterAtPosition(const Point &pt) const
{
int delta = min(this->width - this->line_offset - _iconsole_cmdline.pixels - ICON_RIGHT_BORDERWIDTH, 0);
if (!IsInsideMM(pt.y, this->height - this->line_height, this->height)) return NULL;
return GetCharAtPosition(_iconsole_cmdline.buf, pt.x - delta);
}
virtual void OnMouseWheel(int wheel)
{
this->Scroll(-wheel);
}
virtual void OnFocusLost()
{
_video_driver->EditBoxLostFocus();
}
};
int IConsoleWindow::scroll = 0;

View File

@@ -365,8 +365,8 @@ static inline T ROR(const T x, const uint8 n)
* (since it will use hardware swapping if available).
* Even though they should return uint16 and uint32, we get
* warnings if we don't cast those (why?) */
#define BSWAP32(x) ((uint32)Endian32_Swap(x))
#define BSWAP16(x) ((uint16)Endian16_Swap(x))
#define BSWAP32(x) ((uint32)CFSwapInt32(x))
#define BSWAP16(x) ((uint16)CFSwapInt16(x))
#elif defined(_MSC_VER)
/* MSVC has intrinsics for swapping, resulting in faster code */
#define BSWAP32(x) (_byteswap_ulong(x))

View File

@@ -131,13 +131,14 @@ static void debug_print(const char *dbg, const char *buf)
fflush(f);
#endif
} else {
char buffer[512];
seprintf(buffer, lastof(buffer), "%sdbg: [%s] %s\n", GetLogPrefix(), dbg, buf);
#if defined(WINCE)
/* We need to do OTTD2FS twice, but as it uses a static buffer, we need to store one temporary */
TCHAR tbuf[512];
_sntprintf(tbuf, sizeof(tbuf), _T("%s"), OTTD2FS(dbg));
NKDbgPrintfW(_T("dbg: [%s] %s\n"), tbuf, OTTD2FS(buf));
NKDbgPrintfW(OTTD2FS(buffer));
#elif defined(WIN32) || defined(WIN64)
_fputts(OTTD2FS(buffer, true), stderr);
#else
fprintf(stderr, "%sdbg: [%s] %s\n", GetLogPrefix(), dbg, buf);
fputs(buffer, stderr);
#endif
#ifdef ENABLE_NETWORK
NetworkAdminConsole(dbg, buf);

View File

@@ -600,7 +600,7 @@ struct DepotWindow : Window {
uint min_height = 0;
if (this->type == VEH_TRAIN) {
SetDParamMaxValue(0, 1000);
SetDParamMaxValue(0, 1000, 0, FS_SMALL);
SetDParam(1, 1);
this->count_width = GetStringBoundingBox(STR_TINY_BLACK_DECIMAL).width + WD_FRAMERECT_LEFT + WD_FRAMERECT_RIGHT;
} else {

View File

@@ -163,7 +163,7 @@ struct BuildDocksToolbarWindow : Window {
this->last_clicked_widget = (DockToolbarWidgets)widget;
}
virtual EventState OnKeyPress(uint16 key, uint16 keycode)
virtual EventState OnKeyPress(WChar key, uint16 keycode)
{
int num = CheckHotkeyMatch(dockstoolbar_hotkeys, keycode, this);
if (num == -1) return ES_NOT_HANDLED;
@@ -335,7 +335,7 @@ Window *ShowBuildDocksToolbar()
return AllocateWindowDescFront<BuildDocksToolbarWindow>(&_build_docks_toolbar_desc, TRANSPORT_WATER);
}
EventState DockToolbarGlobalHotkeys(uint16 key, uint16 keycode)
EventState DockToolbarGlobalHotkeys(WChar key, uint16 keycode)
{
int num = CheckHotkeyMatch<BuildDocksToolbarWindow>(_dockstoolbar_hotkeys, keycode, NULL, true);
if (num == -1) return ES_NOT_HANDLED;
@@ -422,8 +422,10 @@ public:
int bottom = back_nwi->pos_y + back_nwi->current_y;
top = DrawStationCoverageAreaText(back_nwi->pos_x + WD_FRAMERECT_LEFT, right - WD_FRAMERECT_RIGHT, top, SCT_ALL, rad, false) + WD_PAR_VSEP_NORMAL;
top = DrawStationCoverageAreaText(back_nwi->pos_x + WD_FRAMERECT_LEFT, right - WD_FRAMERECT_RIGHT, top, SCT_ALL, rad, true) + WD_PAR_VSEP_NORMAL;
/* Resize background if the text is not equally long as the window. */
if (top > bottom || (top < bottom && back_nwi->current_y > back_nwi->smallest_y)) {
/* Resize background if the window is too small.
* Never make the window smaller to avoid oscillating if the size change affects the acceptance.
* (This is the case, if making the window bigger moves the mouse into the window.) */
if (top > bottom) {
ResizeWindow(this, 0, top - bottom);
}
}

View File

@@ -1313,10 +1313,11 @@ static void LoadUnloadVehicle(Vehicle *front, int *cargo_left)
artic_part++;
const Engine *e = v->GetEngine();
byte load_amount = e->info.load_amount;
uint load_amount = e->info.load_amount;
/* The default loadamount for mail is 1/4 of the load amount for passengers */
if (v->type == VEH_AIRCRAFT && !Aircraft::From(v)->IsNormalAircraft()) load_amount = CeilDiv(load_amount, 4);
bool air_mail = v->type == VEH_AIRCRAFT && !Aircraft::From(v)->IsNormalAircraft();
if (air_mail) load_amount = CeilDiv(load_amount, 4);
if (_settings_game.order.gradual_loading) {
uint16 cb_load_amount = CALLBACK_FAILED;
@@ -1337,6 +1338,9 @@ static void LoadUnloadVehicle(Vehicle *front, int *cargo_left)
}
}
/* Scale load amount the same as capacity */
if (HasBit(e->info.misc_flags, EF_NO_DEFAULT_CARGO_MULTIPLIER) && !air_mail) load_amount = CeilDiv(load_amount * CargoSpec::Get(v->cargo_type)->multiplier, 0x100);
GoodsEntry *ge = &st->goods[v->cargo_type];
if (HasBit(v->vehicle_flags, VF_CARGO_UNLOADING) && (front->current_order.GetUnloadType() & OUFB_NO_UNLOAD) == 0) {

View File

@@ -30,6 +30,7 @@
#include "company_base.h"
#include "vehicle_func.h"
#include "articulated_vehicles.h"
#include "error.h"
#include "table/strings.h"
#include "table/engines.h"
@@ -1098,3 +1099,29 @@ bool IsEngineRefittable(EngineID engine)
CargoID default_cargo = e->GetDefaultCargoType();
return default_cargo != CT_INVALID && ei->refit_mask != 1U << default_cargo;
}
/**
* Check for engines that have an appropriate availability.
*/
void CheckEngines()
{
const Engine *e;
Date min_date = INT32_MAX;
FOR_ALL_ENGINES(e) {
if (!e->IsEnabled()) continue;
/* We have an available engine... yay! */
if ((e->flags & ENGINE_AVAILABLE) != 0 && e->company_avail != 0) return;
/* Okay, try to find the earliest date. */
min_date = min(min_date, e->info.base_intro);
}
if (min_date < INT32_MAX) {
SetDParam(0, min_date);
ShowErrorMessage(STR_ERROR_NO_VEHICLES_AVAILABLE_YET, STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION, WL_WARNING);
} else {
ShowErrorMessage(STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL, STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION, WL_WARNING);
}
}

View File

@@ -18,6 +18,7 @@
void SetupEngines();
void StartupEngines();
void CheckEngines();
/* Original engine data counts and offsets */
extern const uint8 _engine_counts[4];

View File

@@ -300,7 +300,7 @@ public:
if (_window_system_initialized) ShowFirstError();
}
virtual EventState OnKeyPress(uint16 key, uint16 keycode)
virtual EventState OnKeyPress(WChar key, uint16 keycode)
{
if (keycode != WKC_SPACE) return ES_NOT_HANDLED;
delete this;

View File

@@ -266,7 +266,6 @@ public:
this->querystrings[WID_SL_SAVE_OSK_TITLE] = &this->filename_editbox;
this->filename_editbox.ok_button = WID_SL_SAVE_GAME;
this->filename_editbox.afilter = CS_ALPHANUMERAL;
this->CreateNestedTree(desc, true);
if (mode == SLD_LOAD_GAME) this->GetWidget<NWidgetStacked>(WID_SL_CONTENT_DOWNLOAD_SEL)->SetDisplayedPlane(SZSP_HORIZONTAL);
@@ -616,7 +615,7 @@ public:
}
}
virtual EventState OnKeyPress(uint16 key, uint16 keycode)
virtual EventState OnKeyPress(WChar key, uint16 keycode)
{
if (keycode == WKC_ESC) {
delete this;

File diff suppressed because it is too large Load Diff

View File

@@ -12,84 +12,201 @@
#ifndef FONTCACHE_H
#define FONTCACHE_H
#include "string_type.h"
#include "spritecache.h"
/** Glyphs are characters from a font. */
typedef uint32 GlyphID;
static const GlyphID SPRITE_GLYPH = 1U << 30;
/** Font cache for basic fonts. */
class FontCache {
private:
static FontCache *caches[FS_END]; ///< All the font caches.
protected:
FontCache *parent; ///< The parent of this font cache.
const FontSize fs; ///< The size of the font.
int height; ///< The height of the font.
int ascender; ///< The ascender value of the font.
int descender; ///< The descender value of the font.
int units_per_em; ///< The units per EM value of the font.
public:
FontCache(FontSize fs);
virtual ~FontCache();
/**
* Get the FontSize of the font.
* @return The FontSize.
*/
inline FontSize GetSize() const { return this->fs; }
/**
* Get the height of the font.
* @return The height of the font.
*/
inline int GetHeight() const { return this->height; }
/**
* Get the ascender value of the font.
* @return The ascender value of the font.
*/
inline int GetAscender() const { return this->ascender; }
/**
* Get the descender value of the font.
* @return The descender value of the font.
*/
inline int GetDescender() const{ return this->descender; }
/**
* Get the units per EM value of the font.
* @return The units per EM value of the font.
*/
inline int GetUnitsPerEM() const { return this->units_per_em; }
/**
* Get the SpriteID mapped to the given key
* @param key The key to get the sprite for.
* @return The sprite.
*/
virtual SpriteID GetUnicodeGlyph(WChar key) = 0;
/**
* Map a SpriteID to the key
* @param key The key to map to.
* @param sprite The sprite that is being mapped.
*/
virtual void SetUnicodeGlyph(WChar key, SpriteID sprite) = 0;
/** Initialize the glyph map */
virtual void InitializeUnicodeGlyphMap() = 0;
/** Clear the font cache. */
virtual void ClearFontCache() = 0;
/**
* Get the glyph (sprite) of the given key.
* @param key The key to look up.
* @return The sprite.
*/
virtual const Sprite *GetGlyph(GlyphID key) = 0;
/**
* Get the width of the glyph with the given key.
* @param key The key to look up.
* @return The width.
*/
virtual uint GetGlyphWidth(GlyphID key) = 0;
/**
* Do we need to draw a glyph shadow?
* @return True if it has to be done, otherwise false.
*/
virtual bool GetDrawGlyphShadow() = 0;
/**
* Map a character into a glyph.
* @param key The character.
* @return The glyph ID used to draw the character.
*/
virtual GlyphID MapCharToGlyph(WChar key) = 0;
/**
* Read a font table from the font.
* @param tag The of the table to load.
* @param length The length of the read data.
* @return The loaded table data.
*/
virtual const void *GetFontTable(uint32 tag, size_t &length) = 0;
/**
* Get the font cache of a given font size.
* @param fs The font size to look up.
* @return The font cache.
*/
static inline FontCache *Get(FontSize fs)
{
assert(fs < FS_END);
return FontCache::caches[fs];
}
/**
* Check whether the font cache has a parent.
*/
inline bool HasParent()
{
return this->parent != NULL;
}
};
/** Get the SpriteID mapped to the given font size and key */
SpriteID GetUnicodeGlyph(FontSize size, uint32 key);
static inline SpriteID GetUnicodeGlyph(FontSize size, WChar key)
{
return FontCache::Get(size)->GetUnicodeGlyph(key);
}
/** Map a SpriteID to the font size and key */
void SetUnicodeGlyph(FontSize size, uint32 key, SpriteID sprite);
static inline void SetUnicodeGlyph(FontSize size, WChar key, SpriteID sprite)
{
FontCache::Get(size)->SetUnicodeGlyph(key, sprite);
}
/** Initialize the glyph map */
void InitializeUnicodeGlyphMap();
static inline void InitializeUnicodeGlyphMap()
{
for (FontSize fs = FS_BEGIN; fs < FS_END; fs++) {
FontCache::Get(fs)->InitializeUnicodeGlyphMap();
}
}
static inline void ClearFontCache()
{
for (FontSize fs = FS_BEGIN; fs < FS_END; fs++) {
FontCache::Get(fs)->ClearFontCache();
}
}
/** Get the Sprite for a glyph */
static inline const Sprite *GetGlyph(FontSize size, WChar key)
{
FontCache *fc = FontCache::Get(size);
return fc->GetGlyph(fc->MapCharToGlyph(key));
}
/** Get the width of a glyph */
static inline uint GetGlyphWidth(FontSize size, WChar key)
{
FontCache *fc = FontCache::Get(size);
return fc->GetGlyphWidth(fc->MapCharToGlyph(key));
}
static inline bool GetDrawGlyphShadow(FontSize size)
{
return FontCache::Get(size)->GetDrawGlyphShadow();
}
#ifdef WITH_FREETYPE
/** Settings for a single freetype font. */
struct FreeTypeSubSetting {
char font[MAX_PATH]; ///< The name of the font, or path to the font.
uint size; ///< The (requested) size of the font.
bool aa; ///< Whether to do anti aliasing or not.
};
/** Settings for the freetype fonts. */
struct FreeTypeSettings {
char small_font[MAX_PATH];
char medium_font[MAX_PATH];
char large_font[MAX_PATH];
char mono_font[MAX_PATH];
uint small_size;
uint medium_size;
uint large_size;
uint mono_size;
bool small_aa;
bool medium_aa;
bool large_aa;
bool mono_aa;
FreeTypeSubSetting small; ///< The smallest font; mostly used for zoomed out view.
FreeTypeSubSetting medium; ///< The normal font size.
FreeTypeSubSetting large; ///< The largest font; mostly used for newspapers.
FreeTypeSubSetting mono; ///< The mono space font used for license/readme viewers.
};
extern FreeTypeSettings _freetype;
void InitFreeType(bool monospace);
void UninitFreeType();
void ClearFontCache();
const Sprite *GetGlyph(FontSize size, uint32 key);
uint GetGlyphWidth(FontSize size, uint32 key);
bool GetDrawGlyphShadow();
/**
* We would like to have a fallback font as the current one
* doesn't contain all characters we need.
* This function must set all fonts of settings.
* @param settings the settings to overwrite the fontname of.
* @param language_isocode the language, e.g. en_GB.
* @param winlangid the language ID windows style.
* @param callback The function to call to check for missing glyphs.
* @return true if a font has been set, false otherwise.
*/
bool SetFallbackFont(FreeTypeSettings *settings, const char *language_isocode, int winlangid, class MissingGlyphSearcher *callback);
#else
/* Stub for initializiation */
static inline void InitFreeType(bool monospace) { extern void ResetFontSizes(bool monospace); ResetFontSizes(monospace); }
static inline void UninitFreeType() {}
static inline void ClearFontCache() {}
/** Get the Sprite for a glyph */
static inline const Sprite *GetGlyph(FontSize size, uint32 key)
{
SpriteID sprite = GetUnicodeGlyph(size, key);
if (sprite == 0) sprite = GetUnicodeGlyph(size, '?');
return GetSprite(sprite, ST_FONT);
}
/** Get the width of a glyph */
static inline uint GetGlyphWidth(FontSize size, uint32 key)
{
SpriteID sprite = GetUnicodeGlyph(size, key);
if (sprite == 0) sprite = GetUnicodeGlyph(size, '?');
return SpriteExists(sprite) ? GetSprite(sprite, ST_FONT)->width + (size != FS_NORMAL) : 0;
}
static inline bool GetDrawGlyphShadow()
{
return false;
}
#endif /* WITH_FREETYPE */
void InitFreeType(bool monospace);
void UninitFreeType();
#endif /* FONTCACHE_H */

Some files were not shown because too many files have changed in this diff Show More