1
0
mirror of https://github.com/OpenTTD/OpenTTD.git synced 2025-08-13 09:39:10 +00:00

Compare commits

...

50 Commits

Author SHA1 Message Date
rubidium
a917abd38d (svn r20000) -Release: 1.0.2 2010-06-19 16:44:18 +00:00
rubidium
017e56d64b (svn r19995) [1.0] -Backport from trunk
- Fix: Owner of the Waypoint View window was not properly set (r19990)
- Fix: Close list of vehicles with given oil rig in orders when the oil rig is deleted (r19956)
- Fix: Close list of vehicles with given buoy/oil rig in orders when switching company (r19955)
- Fix: Do not close list of waypoint's trains when the waypoint view is closed when it is sticky (r19952)
- Fix: Close buoy's vehicle list when the buoy is deleted [FS#3869] (r19951)
-Prepare: for 1.0.2
2010-06-19 16:35:37 +00:00
rubidium
e31a99619e (svn r19938) [1.0] -Backport from trunk:
- Fix: When 'pause on new game' is set, pause the game before CleanupGeneration() to avoid conflicts with concurrent GUI code [FS#3857] (r19934)
- Fix: Blocked roadvehicles should first check whether they are still blocked before accelerating again, instead of continuous starting/stopping (r19755)
- Fix: [NewGRF] Passing some invalid data to industry variable 67/68 could cause a crash (r19713)
- Update: changelog and such
2010-06-05 21:13:35 +00:00
rubidium
9f8627152b (svn r19929) [1.0] -Backport language updates from trunk 2010-06-04 21:28:43 +00:00
rubidium
69aa1249fb (svn r19928) [1.0] -Backport from trunk:
- Feature: Translated desktop shortcut comments (r19884)
- Fix: Pay for the rail/road when constructing tunnels, bridges, depots and stations [FS#3859, FS#3827] (r19925, r19887, r19881)
- Fix: Closing chatbox could cause glitches when news message was shown [FS#3865] (r19921)
2010-06-04 21:14:22 +00:00
rubidium
76f552f16d (svn r19927) [1.0] -Backport from trunk:
- Fix: [YAPP] Inform the pathfinder as well about the fact that the backside of an one-way path signal can be a safe waiting point [FS#3803] (r19896)
- Fix: Allow loading savegames from the console without specifying the ".sav" extension, i.e. make it consistent with saving savegames from the console [FS#3761] (r19885)
- Fix: Dropdowns did affect positioning of new windows because they were not yet removed when the new windows were positioned [FS#3812] (r19883)
- Fix: [NoAI] AIEngine::IsValidEngine() and AIEngine::IsBuildable() returned false positives. Especially wagons of unavailable railtypes were reported available (r19880)
2010-06-04 21:10:18 +00:00
rubidium
517a9d4a68 (svn r19926) [1.0] -Backport from trunk:
- Fix: Default vehicle group texts were drawn one pixel too low [FS#3851] (r19878)
- Fix: It was not possible to send all trains with common waypoint order to depot (r19876)
- Change: Name invalid engines, cargos and industries 'invalid', if the player removed the supplying NewGRFs, hide invalid engines from the purchase list (r19879, r19877)
2010-06-04 21:07:08 +00:00
rubidium
a68647b11e (svn r19875) [1.0] -Backport from trunk:
- Fix: NetBSD compilation was still broken in some cases [FS#3845] (r19874, r19859)
- Fix: If the (guessed initial) destination tile of a road vehicle was not a road stop but was a T-junction or turn, the road vehicles would jump around in circles [FS#3817] (r19873)
- Fix: When a network connection gets lost and a game with AIs was loaded the client might crash due to the AIs not being loaded while the game loop is executed [FS#3819] (r19869)
- Fix: Use non-breaking spaces for currency pre-/postfixes (r19867)
- Fix: Crash when changing/viewing locale settings in the console [FS#3830] (r19865, r19864, r19863, r19862)
2010-05-21 16:03:29 +00:00
rubidium
0c01de0929 (svn r19858) [1.0] -Backport from trunk:
- Fix: Compilation for NetBSD [FS#3809, FS#3840] (r19853, r19781)
- Fix: Drawing fallback sprites for unavailable NewGRF waypoints failed (r19852)
- Fix: Ensure that both texts of the NewGRF gui download button fit (r19823)
- Fix: Kicking clients by IP did not work [FS#3784] (r19818)
- Fix: Compilation with MinGW GCC 4.5.0 and UNICODE (r19787)
2010-05-18 21:49:59 +00:00
rubidium
eee6e228c7 (svn r19857) [1.0] -Backport from trunk:
- Fix: If a waypoint is immediately followed by a path signal a reservation would be made from that path signal before the waypoint is marked passed. As a result the order to go to the waypoint is used to reserve the path after the waypoint and as such trains get lost [FS#3770] (r19784)
- Fix: NULL pointer deference when testing relative scope *action2 on an unbuilt engine [FS#3828] (r19782)
- Fix: Crash on too long paths [FS#3807] (r19780, r19779, r19778, r19777, r19776)
- Fix: MP_VOID tiles shall have no tropic zone [FS#3820] (r19769)
- Fix: Half-desert tiles would never revert back to clear tiles (r19768)
2010-05-18 21:44:47 +00:00
rubidium
3f1bc42eb0 (svn r19856) [1.0] -Backport from trunk:
- Fix: Height in smallmap was different from measured heights [FS#3808]
- Fix: [NewGRF] Vehicle var 43 missed AI information in purchase list (r19761)
- Fix: Try harder to find a suitable font that can be loaded, i.e. while searching for a suitable font test whether you can open it [FS#3740] (r19753)
- Fix: Make sure the chat area fits in the default window size; if you want it larger, you can always change/override it in the config file [FS#3798] (r19751)
- Fix: [NewGRF] Industry var 0x43 is not 'safe' during callbacks 22 and 38 either (r19750)
2010-05-18 21:38:09 +00:00
rubidium
1e5d35634d (svn r19855) [1.0] -Backport from trunk:
- Fix: [NewGRF] Possible divide-by-zero if a NewGRF checked industry var 42 while the production level was 0 (r19749)
- Fix: Do not recenter usually centered windows when resizing main window or changing language, if they have been moved/resized before [FS#3675] (r19746)
- Fix: The GUI is controlled by _local_company, not _current_company (r19745)
- Fix: NewGRFs could access map bits of not yet constructed industries and houses during construction callbacks (r19748, r19743)
- Fix: Check for industry availability more thoroughly and cancel object placement when selecting not available industries [FS#3787] (r19701)
2010-05-18 21:30:56 +00:00
rubidium
530d904f84 (svn r19854) [1.0] -Backport from trunk:
- Fix: Avoid showing building toolbars behind the main toolbar when the 'Link landscape toolbar' setting is active [FS#3781] (r19696)
- Fix: Under some circumstances the player's name could be empty (r19693)
- Fix: Do not show an error message when trying to give another client an amount of 0 money [FS#3779] (r19684)
- Fix: Do not display an error message when double clicking on a vehicle in the 'available vehicles'-window (r19669)
2010-05-18 21:25:03 +00:00
rubidium
233ff7cacd (svn r19741) [1.0] -Backport from trunk:
- Fix: Crash when using restart via rcon (r19722)                                                                   
- Fix: Leaking a file descriptor [FS#3785] (r19695)                                                 
- Fix: Crash when the music/graphics metadata files were unreadable [FS#3774] (r19674)
2010-04-30 21:01:21 +00:00
rubidium
b62a1ad1d5 (svn r19691) [1.0] -Prepare: 1.0.1-RC2 2010-04-21 19:52:20 +00:00
rubidium
706d321f52 (svn r19690) [1.0] -Backport from trunk:
- Fix: Desync when joining the game because of using the wrong variable (r19687)
- Fix: Truncated archives were not detected when using zlib 1.2.3. This also fixes zlib 1.2.4 compatibility, zlib 1.2.5 is bugfree (r19686)
- Fix: Towns with 3x3 and 2x2 road layouts could not expand (r19683)
- Fix: When joining a MP game all clients with company ID > 0 would be shown as if they were a spectator [FS#3775] (r19680)
- Fix: Client status was shown incorrect in the console (r19678)
2010-04-21 19:20:28 +00:00
rubidium
2dee7158d3 (svn r19666) [1.0] -Backport from trunk: many many string updates 2010-04-17 22:39:17 +00:00
rubidium
1f1ad73073 (svn r19665) [1.0] -Backport from trunk:
- Fix: Crash of a dedicated server if the null blitter is overridden and (after a while) there is no company 0 on new year anymore [FS#3749] (r19664) 
- Fix: In rare cases, update of signals could be missed (r19663)
- Fix: Various improvements of command handling, missing error messages (r19658, r19657, r19656, r19655, r19654, r19637, r19633, r19621, r19616, r19605, r19604)
- Fix: Sorting industries by production was broken for NewGRF industries (r19538)
2010-04-17 22:27:49 +00:00
rubidium
9f14d652a9 (svn r19653) [1.0] -Backport from trunk:
- Fix: RandomRange() is used for bigger ranges in many cases, so generally extent it to handle 32 bits (r19652)
- Fix: When a company is sold, move connected clients to spectators [FS#3745] (r19651)
- Fix: A client would not be properly moved when moved while joining, e.g. when entering a company's password. This caused the client to be in the wrong company (according to the rest of the clients) and the client being kicked on the first command [FS#3760] (r19648)
- Fix: Trains loaded above the original IDs did not have a default railtypelabel assigned to them, causing them to be unavailable. Could cause desyncs if the multiplayer game was not started from a savegame [FS#3768] (r19647)
2010-04-17 12:00:59 +00:00
rubidium
4fada121bd (svn r19646) [1.0] -Backport from trunk:
- Change: Log the _date and _date_fract in the desync log for saved games (r19638)
- Fix: Do not allow building cacti outside of the desert or rain forest trees outside of the rain forest area. This to prevent people from thinking planting rain forest trees makes the rain forest bigger and thus adds more place to build a lumber mill [FS#3728] (r19644, r19635, r19634)
- Fix: Industry generation failed for large maps and lots of industry types (r19643)
- Fix: Desync when taking over companies (r19636)
- Fix: Chat message caused glitch when rejoining a network game [FS#3757] (r19629)
2010-04-16 22:02:33 +00:00
rubidium
7c3487501c (svn r19624) [1.0] -Backport from trunk:
- Fix: Possible invalid read when server moves client to spectators before he finishes joining [FS#3755] (r19613)
- Fix: Improve joining behaviour; kicking clients when entering passwords that was just cleared, 'connection lost' for people failing the password (r19610, r19609, r19608, r19607, r19606)
2010-04-13 21:40:24 +00:00
rubidium
ba8422354b (svn r19623) [1.0] -Backport from trunk:
- Fix: Company related graphs were not updated correctly after changing the company colour [FS#3763] (r19615)
- Fix: Crash when opening a savegame with a waypoint from around 0.4.0 [FS#3756] (r19612)
- Fix: Presence of online content was not properly updated after download due to duplicate slashes in the path (r19600)
- Fix: [NewGRF] Setting industry prop 0x24 to 0 caused empty station names (r19590)
2010-04-13 21:32:29 +00:00
rubidium
9ed75d3ab7 (svn r19622) [1.0] -Backport from trunk:
- Fix: Desync when a command is received and in the queue while a client starts joining, i.e. save the game state. This can happen in two ways: with frame_freq > 1 a command received in a previous frame might not be executed yet or when a command is received in the same frame as the join but before the savegame is made. In both cases the joining client would not get all commands to get in-sync with the server (and the other clients) (r19620)
- Fix: [desync debug] Minor fixes; "join" pause could cause a crash as some command data was not properly initialised, state was logged multiple times (r19619, r19617, r19602)
2010-04-13 19:30:51 +00:00
rubidium
83cca3a75a (svn r19603) [1.0] -Backport from trunk:
- Fix: Desync debugging; false positives in the cache validity checks and saving/loading the command stream (r19601, r19600, r19596, r19593, r19592, r19589, r19587, r19586)
2010-04-11 10:57:21 +00:00
rubidium
d197bcae1c (svn r19585) [1.0] -Backport from trunk:
- Feature: [NewGRF] Support for extended text code 0x9A 11, print qword (r19570)
- Change: Sync Debian packaging updates from Debian, but keep building a single package (r19572)
- Fix: Crash when pressing 'h' (non-stop) in the order window of a ship or aircraft [FS#3744] (r19584)
- Fix: Graphs were not properly updated when going toggling keys (i.e. companies) (r19574)
- Fix: The timetable button was not automatically raised [FS#3739] (r19571)
- Fix: [NewGRF] Possible buffer underflow in NewGRF string code (r19569)
2010-04-08 15:40:46 +00:00
rubidium
bb74ec40ea (svn r19567) [1.0] -Backport from trunk:
- Feature: Give more detailed error message when trying to build a too long bridge (r19561)
- Fix: [NewGRF] Do not return a random colour for unowned industries in var 45; TTDPatch does not seem to set the colour data in that case either and it could lead to desyncs (r19566)
- Fix: Window::OnResize() was not always called while resizing a window causing incorrect windows [FS#3730] (r19563, r19558)
- Fix: Bridge build error message should not show the same message twice (r19560, r19559)
- Fix: Missed conversion to checking temporary data broke rail type setting upon changing traction type (r19557)
- Fix: Incorrect speed limit reported for rail depots with original acceleration model (r19556)
2010-04-05 21:34:47 +00:00
rubidium
8840831852 (svn r19555) [1.0] -Backport from trunk:
- Fix: Remove same_industry_close setting did not do what it said and caused NewGRF trouble (r19499)
2010-04-03 20:19:26 +00:00
rubidium
fcff99da75 (svn r19554) [1.0] -Backport from trunk:
- Fix: Improperly scaled cargo payment graph when having lots of cargo (r19550, 19543)
- Fix: [NewGRF] Properties set before property 08 (house, industry, industry tiles) should be ignored, not trigger the NewGRF to be disabled [FS#3725] (r19547)
- Fix: Vehicle details window did not resize correctly after refitting a road vehicle to a longer variant [FS#3720] (r19533)
2010-04-03 20:09:19 +00:00
rubidium
a9163d0503 (svn r19552) [1.0] -Backport from trunk:
- Fix: Prevent drawing industries disabled at the smallmap as land tiles when they are built on water (r19523)
- Fix: Tunnels, bridges and roadstops are build with only one roadtype (r19506)
- Fix: [NewGRF] During NewGRF loading, store rail type labels in temporary data and process after loading has finished. This avoids deactivated rail vehicles being reactivated if the climate property is set after the rail type property (r19502)
- Fix: Keep number padding intact when cloning vehicle names [FS#3710] (r19498)
2010-04-03 19:57:23 +00:00
rubidium
3106bb110e (svn r19551) [1.0] -Backport from trunk:
- Feature: Add rail speed limit to land area information window (r19434)
- Fix: [NewGRF] Bytes and words get sign-extended for temporary/persistent storage (r19497)
- Fix: Stop reducing the size of the vehicle list after selecting a vehicle with a long description (r19480)
- Fix: Implement custom sound effect for helicopter take-off [FS#3668] (r19364)
- Update: Plural type of Slovak (r19452)
2010-04-03 19:48:01 +00:00
rubidium
6837650080 (svn r19529) [1.0] -Backport from trunk:
- Fix: Network clients would crash while connecting to a server with AIs (r19526)
- Fix: [NPF] Crash when finding a waypoint before finding the closest depot [FS#3703] (r19460)
2010-03-31 22:05:20 +00:00
rubidium
286575a6c3 (svn r19446) [1.0] -Backport from trunk:
- Fix: Mark industry windows dirty more often [FS#3701] (r19443)
- Update: Readme about openmsx and make it easier to find the pulseaudio-ubuntu-slowness bug in the readme/known-bugs (r19442)
- Language updates
2010-03-17 22:21:03 +00:00
rubidium
9931557d89 (svn r19439) [1.0] -Backport from trunk:
- Fix: Custom group names are misaligned with default ones when using rtl languages [FS#3700] (r19438)
- Fix: With certain game settings one could clear tiles for free when building long roads (r19436)
- Fix: When loading a savegame created with a house NewGRF without that NewGRF available all houses became tall office blocks (r19435)
- Fix: Limit rail clearance earnings to 3/4s of rail build cost, to avoid money making loophole when rail build cost is less than rail removal earnings (r19433)
- Fix: Crash when the error message 'owned by <town>' was shown [FS#3696] (r19432)
- Feature: Append rail type speed limit (if set) to rail type selection list, and toolbar title (r19431)
2010-03-16 20:54:26 +00:00
rubidium
821fe5c3ba (svn r19430) [1.0] -Backport from trunk:
- Fix: [NoAI] When the title game contains an AIPL block the AI settings where overwritten by those from the title game (r19429)
- Fix: Gracefully handle the case where we cannot open a .tar file (r19427)
- Fix: [YAPP] A train on a bridge/tunnel was not always found when checking for trains on a reserved path (r19425)
- Fix: [NoAI] The AI Debug window did not open if an AI or library fails to compile when loading a savegame [FS#3669] (r19395)
- Change: Make the drive through and cargo list consistency checks only run when 'desync' debugging is enabled (r19403, r19398)
2010-03-15 22:52:39 +00:00
rubidium
c3daa9a9fe (svn r19411) [1.0] -Backport from trunk: language updates 2010-03-13 18:47:58 +00:00
rubidium
7c127b2760 (svn r19393) [1.0] -Backport from trunk:
- Fix: One could not level the whole map anymore at once (r19392)
- Fix: Only show the 'No AIs available' error message when explicitly changing the number of AI opponents [FS3676] (r19389)
- Fix: [NoAI] When reloading a savegame, an AI failing to compile could trigger (trying) to read the not yet loaded information of another AI via the AI Debug window and its "open with the most recently used AI" feature [FS#3666] (r19388)
- Fix: Close all orders windows when switching companies [FS#3671] (r19387)
- Fix: [IPv6] Netmask calculations were wrong if cidr >= 32 [FS#3684] (r19385)
- Fix: Overbuilding bridges, rail stations did not properly update PBS reservation [FS#3680] (r19384, r19383)
2010-03-12 21:12:35 +00:00
rubidium
4aef9b3247 (svn r19376) [1.0] -Backport from trunk:
- Feature: [NewGRF] Smallmap colours for railtypes (r19307)
- Change: Update documentation for console command connect to use ip:port#company parameter format, in line with command line help (r19374)
- Change: [NewGRF] Increase railtype cost range (r19306)
- Fix: [NoAI] List valuator could cause invalid iterators [FS#3665] (r19367)
- Fix: Close error messages about missing ownership when the company closes or is taken over [FS#3663] (r19358, r19357)
[1.0] -Backport string updates from trunk
2010-03-08 22:19:39 +00:00
rubidium
d0583ff075 (svn r19312) [1.0] -Backport from trunk:
- Feature: [YAPF] Consider the railtype imposed speed limit for pathfinding (r19301)
- Change: Increase the default small font size for freetype fonts as 6 point fonts are usually unreadable [FS#3655] (r19308)
- Change: [NewGRF] Railtype cost factor from byte to word value (r19306)
- Fix: Disable sound when a sound error happens instead of crashing [FS#3652] (r19304)
2010-03-03 23:24:37 +00:00
rubidium
aba6a8a229 (svn r19310) [1.0] -Backport from trunk: language updates 2010-03-03 20:39:29 +00:00
rubidium
fa9867879f (svn r19300) [1.0] -Backport from trunk:
- Fix: [NewGRF] Return the TTD airport type in station var 0xF1 (r19299)
- Fix: [NewGRF] Segfault when station vars 0xF2/0xF3 is accessed when there is no truck/bus stop (r19298)
- Fix: [NoAI] Some methods of AIAbstractList left invalid iterators [FS#3566] (r19293)
- Fix: [YAPP] If reversing at path signals was disabled, a train would not reverse when hitting the back of an one-way signal (r19286)
[1.0] -Update: Intro game
2010-03-02 00:38:01 +00:00
rubidium
ccf52c64e9 (svn r19284) [1.0] -Backport from trunk: language updates 2010-02-27 21:05:13 +00:00
rubidium
6a8b04d01e (svn r19278) [1.0] -Backport from trunk:
- Feature: BaNaNaS support for music sets (r19262)
- Fix: [NewGRF] Ensure prices cannot be set to zero. Zero prices break a lot of the internal logic to determine whether something has been done [FS#3646] (r19277)
- Fix: 'Cannot build <industry> here... <industry> in the way' showed the to-be-built industry twice, instead of the to-be-built industry and the industry that's in the way [FS#3618] (r19265)
- Fix: strgen segfaults when trying to lookup the command for a non-existing command (r19264)
2010-02-27 16:41:10 +00:00
rubidium
7ed9361ad9 (svn r19258) [1.0] -Backport from trunk:
- Feature: [NewGRF] Add 2 bits of pseudo-random data for rail types, based on tile location (r19235)
- Fix: Writing (console) output to a file failed on Windows if the date would not be logged [FS#3639] (r19252)
- Fix: [NewGRF] Some GRF error messages did not free the previous error messages, creating a memory leak (r19251)
- Fix: With RTL languages clicking a horizontal scrollbar that could not scroll could cause a crash [FS#3643] (r19250)
- Fix: Start and end tiles were swapped in CMD_REMOVE_LONG_ROAD causing too much road to be removed [FS#3642] (r19249)
- Fix: DOS 'port' did not compile anymore (r19248)
- Fix: The -M command line option did not work (r19233)
2010-02-25 21:18:38 +00:00
rubidium
bfa5e7fef5 (svn r19223) [1.0] -Backport from trunk:
- Feature: Add OpenMSX to the installer (r19220, r19219)
- Feature: [NewGRF] Add CB36 support for aircraft properties 0F and 11 (r19218)
- Feature: Scroll to current order destination when ctrl+clicking the start/stop bar (r19216, r19215)
- Feature: Concept of fallback base sets, i.e. do not automatically load the NoMusic/NoSound sets when there is another set; make NoSound part of base installations (r19214, r19213, r19212, r19211, r19206)
- Feature: Support for genders for cargos, industries, vehicles, stations (r19180, r19179, r19178, r19177)
2010-02-23 23:26:37 +00:00
rubidium
5b188a4933 (svn r19222) [1.0] -Backport from trunk:
- Change: Improve error message with track building when signals are in the way (r19190, r19189)
- Fix: GetDestination() is invalid for nearest-depot orders (r19210)
- Fix: Compilation was broken for gcc 3.3 (r19207)
- Fix: The vehicle info in the autoreplace gui was drawn even when the window was shaded [FS#3634] (r19187)
- Fix: When selecting 'build many industries' in the scenario editor the 'build' button was not enabled [FS#3632] (r19176)
2010-02-23 23:18:41 +00:00
rubidium
eb8263ce50 (svn r19175) [1.0] -Backport from trunk:
- Change: Do not print the absolute path to AI script files in the AI debug window, use the relative path from /ai/ instead (r19166)
- Change: The Debian packaging; bring it in sync with the packaging used at Debian excluding package splitting (r19162)
- Fix: Buoys are no Stations, only BaseStations (r19174)
- Fix: Under some circumstances timidity (via extmidi) would not shut down properly causing all kinds of trouble (e.g. blocked audio output). Try harder to shut down timidity and first shut down the music so shut down order is the inverse of initialisation order (r19168)
- Fix: Industry 0 could be choosen even if not available [FS#3631] (r19167)
- Fix: Vehicle running costs should not be changed in a running game [FS#3629] (r19165)
2010-02-20 21:10:58 +00:00
rubidium
b87549229b (svn r19156) [1.0] -Prepare: for 1.0.0-RC1 2010-02-17 23:00:36 +00:00
rubidium
02afc66664 (svn r19155) [1.0] -Backport from trunk:
- Fix: Invisible depots draw the track, so also draw the overlays (r19154)
- Fix: PBS reservation was drawn incorrectly for depots (r19153)
- Change: Move home directory to a better place in Haiku [FS#3625] (r19151)
- Fix: [v]seprintf should return the number of added characters excluding '\0' on truncation [FS#3627] (r19149, r19148)
2010-02-17 21:29:31 +00:00
rubidium
6c86fa768c (svn r19144) [1.0] -Fix [FS#3569]: under certain circumstances one could crash a competitor's train 2010-02-16 00:09:43 +00:00
rubidium
9a4fd32e87 (svn r19142) [1.0] -Branch: the 1.0 series 2010-02-15 23:59:46 +00:00
307 changed files with 16789 additions and 8578 deletions

View File

@@ -88,7 +88,8 @@ endif
$(Q)cp "$(BIN_DIR)/scripts/"* "$(BUNDLE_DIR)/scripts/" $(Q)cp "$(BIN_DIR)/scripts/"* "$(BUNDLE_DIR)/scripts/"
ifdef MENU_DIR ifdef MENU_DIR
$(Q)cp "$(ROOT_DIR)/media/openttd.desktop" "$(BUNDLE_DIR)/media/" $(Q)cp "$(ROOT_DIR)/media/openttd.desktop" "$(BUNDLE_DIR)/media/"
$(Q)cat "$(ROOT_DIR)/media/openttd.desktop" | sed s/=openttd/=$(BINARY_NAME)/g > "$(ROOT_DIR)/media/openttd.desktop.install" $(Q)$(AWK) -f "$(ROOT_DIR)/media/openttd.desktop.translation.awk" "$(SRC_DIR)/lang/"*.txt | $(SORT) >> "$(BUNDLE_DIR)/media/openttd.desktop"
$(Q)sed s/=openttd/=$(BINARY_NAME)/g "$(BUNDLE_DIR)/media/openttd.desktop" > "$(ROOT_DIR)/media/openttd.desktop.install"
endif endif
ifeq ($(TTD), openttd.exe) 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" $(Q)unix2dos "$(BUNDLE_DIR)/docs/"* "$(BUNDLE_DIR)/readme.txt" "$(BUNDLE_DIR)/COPYING" "$(BUNDLE_DIR)/changelog.txt" "$(BUNDLE_DIR)/known-bugs.txt"

View File

@@ -43,6 +43,7 @@ OSXAPP = !!OSXAPP!!
LIPO = !!LIPO!! LIPO = !!LIPO!!
REVISION = !!REVISION!! REVISION = !!REVISION!!
AWK = !!AWK!! AWK = !!AWK!!
SORT = !!SORT!!
DISTCC = !!DISTCC!! DISTCC = !!DISTCC!!
RES := $(shell if [ ! -f $(CONFIG_CACHE_PWD) ] || [ "`pwd`" != "`cat $(CONFIG_CACHE_PWD)`" ]; then echo "`pwd`" > $(CONFIG_CACHE_PWD); fi ) RES := $(shell if [ ! -f $(CONFIG_CACHE_PWD) ] || [ "`pwd`" != "`cat $(CONFIG_CACHE_PWD)`" ]; then echo "`pwd`" > $(CONFIG_CACHE_PWD); fi )

View File

@@ -192,9 +192,9 @@ function Regression::Base()
print(" RandRange(2): " + AIBase.RandRange(2)); print(" RandRange(2): " + AIBase.RandRange(2));
print(" RandRange(2): " + AIBase.RandRange(2)); print(" RandRange(2): " + AIBase.RandRange(2));
print(" RandRange(2): " + AIBase.RandRange(2)); print(" RandRange(2): " + AIBase.RandRange(2));
print(" RandRange(9): " + AIBase.RandRange(9)); print(" RandRange(1000000): " + AIBase.RandRange(1000000)); // 32 bit tests
print(" RandRange(9): " + AIBase.RandRange(9)); print(" RandRange(1000000): " + AIBase.RandRange(1000000));
print(" RandRange(9): " + AIBase.RandRange(9)); print(" RandRange(1000000): " + AIBase.RandRange(1000000));
print(" Chance(1, 2): " + AIBase.Chance(1, 2)); print(" Chance(1, 2): " + AIBase.Chance(1, 2));
print(" Chance(1, 2): " + AIBase.Chance(1, 2)); print(" Chance(1, 2): " + AIBase.Chance(1, 2));
print(" Chance(1, 2): " + AIBase.Chance(1, 2)); print(" Chance(1, 2): " + AIBase.Chance(1, 2));
@@ -785,6 +785,36 @@ function Regression::List()
list.Clear(); list.Clear();
print(" IsEmpty(): " + list.IsEmpty()); print(" IsEmpty(): " + list.IsEmpty());
for (local i = 0; i < 10; i++) {
list.AddItem(i, 5 + i / 2);
}
local it = list.Begin();
print(" " + it + " => " + list.GetValue(it) + " (" + list.HasNext() + ")");
list.Sort(list.SORT_BY_VALUE, list.SORT_ASCENDING);
it = list.Next();
print(" " + it + " => " + list.GetValue(it) + " (" + list.HasNext() + ")");
it = list.Begin();
print(" " + it + " => " + list.GetValue(it) + " (" + list.HasNext() + ")");
list.SetValue(it + 1, -5);
it = list.Next();
print(" " + it + " => " + list.GetValue(it) + " (" + list.HasNext() + ")");
list.RemoveValue(list.GetValue(it) + 1);
it = list.Next();
print(" " + it + " => " + list.GetValue(it) + " (" + list.HasNext() + ")");
list.RemoveAboveValue(list.GetValue(it));
it = list.Next();
print(" " + it + " => " + list.GetValue(it) + " (" + list.HasNext() + ")");
while (list.HasNext()) {
it = list.Next();
print(" " + it + " => " + list.GetValue(it));
}
} }
function Regression::Map() function Regression::Map()
@@ -997,6 +1027,7 @@ function Regression::RailTypeList()
for (local i = list.Begin(); list.HasNext(); i = list.Next()) { for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" RailType: " + i); print(" RailType: " + i);
print(" IsRailTypeAvailable(): " + AIRail.IsRailTypeAvailable(i)); print(" IsRailTypeAvailable(): " + AIRail.IsRailTypeAvailable(i));
print(" GetMaxSpeed(): " + AIRail.GetMaxSpeed(i));
} }
} }

View File

@@ -96,10 +96,10 @@
RandRange(1): 0 RandRange(1): 0
RandRange(2): 0 RandRange(2): 0
RandRange(2): 0 RandRange(2): 0
RandRange(2): 1 RandRange(2): 0
RandRange(9): 6 RandRange(1000000): 987346
RandRange(9): 7 RandRange(1000000): 781750
RandRange(9): 4 RandRange(1000000): 191841
Chance(1, 2): true Chance(1, 2): true
Chance(1, 2): false Chance(1, 2): false
Chance(1, 2): false Chance(1, 2): false
@@ -569,6 +569,14 @@
[]: []:
4000 => 50 4000 => 50
IsEmpty(): true IsEmpty(): true
0 => 5 (true)
ERROR: Next() is invalid as Begin() is never called
ERROR: HasNext() is invalid as Begin() is never called
0 => 5 (false)
0 => 5 (true)
2 => 6 (true)
3 => 6 (true)
9 => 0 (false)
--Company-- --Company--
SetName(): true SetName(): true
@@ -2140,201 +2148,201 @@
GetRoadType(): -1 GetRoadType(): -1
GetPlaneType(): -1 GetPlaneType(): -1
Engine 57 Engine 57
IsValidEngine(): true IsValidEngine(): false
GetName(): Passenger Carriage GetName(): (null : 0x00000000)
GetCargoType(): 0 GetCargoType(): 255
CanRefitCargo(): false CanRefitCargo(): false
GetCapacity(): 45 GetCapacity(): -1
GetReliability(): -1 GetReliability(): -1
GetMaxSpeed(): 0 GetMaxSpeed(): -1
GetPrice(): 1447 GetPrice(): -1
GetMaxAge(): -1 GetMaxAge(): -1
GetRunningCost(): 0 GetRunningCost(): -1
GetPower(): -1 GetPower(): -1
GetWeight(): 25 GetWeight(): -1
GetMaxTractiveEffort(): -1 GetMaxTractiveEffort(): -1
GetVehicleType(): 0 GetVehicleType(): 255
GetRailType(): 2 GetRailType(): 255
GetRoadType(): -1 GetRoadType(): -1
GetPlaneType(): -1 GetPlaneType(): -1
Engine 58 Engine 58
IsValidEngine(): true IsValidEngine(): false
GetName(): Mail Van GetName(): (null : 0x00000000)
GetCargoType(): 2 GetCargoType(): 255
CanRefitCargo(): false CanRefitCargo(): false
GetCapacity(): 35 GetCapacity(): -1
GetReliability(): -1 GetReliability(): -1
GetMaxSpeed(): 0 GetMaxSpeed(): -1
GetPrice(): 1335 GetPrice(): -1
GetMaxAge(): -1 GetMaxAge(): -1
GetRunningCost(): 0 GetRunningCost(): -1
GetPower(): -1 GetPower(): -1
GetWeight(): 21 GetWeight(): -1
GetMaxTractiveEffort(): -1 GetMaxTractiveEffort(): -1
GetVehicleType(): 0 GetVehicleType(): 255
GetRailType(): 2 GetRailType(): 255
GetRoadType(): -1 GetRoadType(): -1
GetPlaneType(): -1 GetPlaneType(): -1
Engine 59 Engine 59
IsValidEngine(): true IsValidEngine(): false
GetName(): Coal Truck GetName(): (null : 0x00000000)
GetCargoType(): 1 GetCargoType(): 255
CanRefitCargo(): true CanRefitCargo(): false
GetCapacity(): 35 GetCapacity(): -1
GetReliability(): -1 GetReliability(): -1
GetMaxSpeed(): 0 GetMaxSpeed(): -1
GetPrice(): 1031 GetPrice(): -1
GetMaxAge(): -1 GetMaxAge(): -1
GetRunningCost(): 0 GetRunningCost(): -1
GetPower(): -1 GetPower(): -1
GetWeight(): 18 GetWeight(): -1
GetMaxTractiveEffort(): -1 GetMaxTractiveEffort(): -1
GetVehicleType(): 0 GetVehicleType(): 255
GetRailType(): 2 GetRailType(): 255
GetRoadType(): -1 GetRoadType(): -1
GetPlaneType(): -1 GetPlaneType(): -1
Engine 60 Engine 60
IsValidEngine(): true IsValidEngine(): false
GetName(): Oil Tanker GetName(): (null : 0x00000000)
GetCargoType(): 3 GetCargoType(): 255
CanRefitCargo(): false CanRefitCargo(): false
GetCapacity(): 35 GetCapacity(): -1
GetReliability(): -1 GetReliability(): -1
GetMaxSpeed(): 0 GetMaxSpeed(): -1
GetPrice(): 1171 GetPrice(): -1
GetMaxAge(): -1 GetMaxAge(): -1
GetRunningCost(): 0 GetRunningCost(): -1
GetPower(): -1 GetPower(): -1
GetWeight(): 24 GetWeight(): -1
GetMaxTractiveEffort(): -1 GetMaxTractiveEffort(): -1
GetVehicleType(): 0 GetVehicleType(): 255
GetRailType(): 2 GetRailType(): 255
GetRoadType(): -1 GetRoadType(): -1
GetPlaneType(): -1 GetPlaneType(): -1
Engine 61 Engine 61
IsValidEngine(): true IsValidEngine(): false
GetName(): Livestock Van GetName(): (null : 0x00000000)
GetCargoType(): 4 GetCargoType(): 255
CanRefitCargo(): false CanRefitCargo(): false
GetCapacity(): 30 GetCapacity(): -1
GetReliability(): -1 GetReliability(): -1
GetMaxSpeed(): 0 GetMaxSpeed(): -1
GetPrice(): 1125 GetPrice(): -1
GetMaxAge(): -1 GetMaxAge(): -1
GetRunningCost(): 0 GetRunningCost(): -1
GetPower(): -1 GetPower(): -1
GetWeight(): 20 GetWeight(): -1
GetMaxTractiveEffort(): -1 GetMaxTractiveEffort(): -1
GetVehicleType(): 0 GetVehicleType(): 255
GetRailType(): 2 GetRailType(): 255
GetRoadType(): -1 GetRoadType(): -1
GetPlaneType(): -1 GetPlaneType(): -1
Engine 62 Engine 62
IsValidEngine(): true IsValidEngine(): false
GetName(): Goods Van GetName(): (null : 0x00000000)
GetCargoType(): 5 GetCargoType(): 255
CanRefitCargo(): false CanRefitCargo(): false
GetCapacity(): 30 GetCapacity(): -1
GetReliability(): -1 GetReliability(): -1
GetMaxSpeed(): 0 GetMaxSpeed(): -1
GetPrice(): 1113 GetPrice(): -1
GetMaxAge(): -1 GetMaxAge(): -1
GetRunningCost(): 0 GetRunningCost(): -1
GetPower(): -1 GetPower(): -1
GetWeight(): 21 GetWeight(): -1
GetMaxTractiveEffort(): -1 GetMaxTractiveEffort(): -1
GetVehicleType(): 0 GetVehicleType(): 255
GetRailType(): 2 GetRailType(): 255
GetRoadType(): -1 GetRoadType(): -1
GetPlaneType(): -1 GetPlaneType(): -1
Engine 63 Engine 63
IsValidEngine(): true IsValidEngine(): false
GetName(): Grain Hopper GetName(): (null : 0x00000000)
GetCargoType(): 6 GetCargoType(): 255
CanRefitCargo(): false CanRefitCargo(): false
GetCapacity(): 35 GetCapacity(): -1
GetReliability(): -1 GetReliability(): -1
GetMaxSpeed(): 0 GetMaxSpeed(): -1
GetPrice(): 1066 GetPrice(): -1
GetMaxAge(): -1 GetMaxAge(): -1
GetRunningCost(): 0 GetRunningCost(): -1
GetPower(): -1 GetPower(): -1
GetWeight(): 19 GetWeight(): -1
GetMaxTractiveEffort(): -1 GetMaxTractiveEffort(): -1
GetVehicleType(): 0 GetVehicleType(): 255
GetRailType(): 2 GetRailType(): 255
GetRoadType(): -1 GetRoadType(): -1
GetPlaneType(): -1 GetPlaneType(): -1
Engine 64 Engine 64
IsValidEngine(): true IsValidEngine(): false
GetName(): Wood Truck GetName(): (null : 0x00000000)
GetCargoType(): 7 GetCargoType(): 255
CanRefitCargo(): false CanRefitCargo(): false
GetCapacity(): 35 GetCapacity(): -1
GetReliability(): -1 GetReliability(): -1
GetMaxSpeed(): 0 GetMaxSpeed(): -1
GetPrice(): 1060 GetPrice(): -1
GetMaxAge(): -1 GetMaxAge(): -1
GetRunningCost(): 0 GetRunningCost(): -1
GetPower(): -1 GetPower(): -1
GetWeight(): 16 GetWeight(): -1
GetMaxTractiveEffort(): -1 GetMaxTractiveEffort(): -1
GetVehicleType(): 0 GetVehicleType(): 255
GetRailType(): 2 GetRailType(): 255
GetRoadType(): -1 GetRoadType(): -1
GetPlaneType(): -1 GetPlaneType(): -1
Engine 65 Engine 65
IsValidEngine(): true IsValidEngine(): false
GetName(): Iron Ore Hopper GetName(): (null : 0x00000000)
GetCargoType(): 8 GetCargoType(): 255
CanRefitCargo(): false CanRefitCargo(): false
GetCapacity(): 35 GetCapacity(): -1
GetReliability(): -1 GetReliability(): -1
GetMaxSpeed(): 0 GetMaxSpeed(): -1
GetPrice(): 1048 GetPrice(): -1
GetMaxAge(): -1 GetMaxAge(): -1
GetRunningCost(): 0 GetRunningCost(): -1
GetPower(): -1 GetPower(): -1
GetWeight(): 19 GetWeight(): -1
GetMaxTractiveEffort(): -1 GetMaxTractiveEffort(): -1
GetVehicleType(): 0 GetVehicleType(): 255
GetRailType(): 2 GetRailType(): 255
GetRoadType(): -1 GetRoadType(): -1
GetPlaneType(): -1 GetPlaneType(): -1
Engine 66 Engine 66
IsValidEngine(): true IsValidEngine(): false
GetName(): Steel Truck GetName(): (null : 0x00000000)
GetCargoType(): 9 GetCargoType(): 255
CanRefitCargo(): false CanRefitCargo(): false
GetCapacity(): 25 GetCapacity(): -1
GetReliability(): -1 GetReliability(): -1
GetMaxSpeed(): 0 GetMaxSpeed(): -1
GetPrice(): 1148 GetPrice(): -1
GetMaxAge(): -1 GetMaxAge(): -1
GetRunningCost(): 0 GetRunningCost(): -1
GetPower(): -1 GetPower(): -1
GetWeight(): 18 GetWeight(): -1
GetMaxTractiveEffort(): -1 GetMaxTractiveEffort(): -1
GetVehicleType(): 0 GetVehicleType(): 255
GetRailType(): 2 GetRailType(): 255
GetRoadType(): -1 GetRoadType(): -1
GetPlaneType(): -1 GetPlaneType(): -1
Engine 67 Engine 67
IsValidEngine(): true IsValidEngine(): false
GetName(): Armoured Van GetName(): (null : 0x00000000)
GetCargoType(): 10 GetCargoType(): 255
CanRefitCargo(): false CanRefitCargo(): false
GetCapacity(): 25 GetCapacity(): -1
GetReliability(): -1 GetReliability(): -1
GetMaxSpeed(): 0 GetMaxSpeed(): -1
GetPrice(): 1494 GetPrice(): -1
GetMaxAge(): -1 GetMaxAge(): -1
GetRunningCost(): 0 GetRunningCost(): -1
GetPower(): -1 GetPower(): -1
GetWeight(): 30 GetWeight(): -1
GetMaxTractiveEffort(): -1 GetMaxTractiveEffort(): -1
GetVehicleType(): 0 GetVehicleType(): 255
GetRailType(): 2 GetRailType(): 255
GetRoadType(): -1 GetRoadType(): -1
GetPlaneType(): -1 GetPlaneType(): -1
Engine 68 Engine 68
@@ -2716,201 +2724,201 @@
GetRoadType(): -1 GetRoadType(): -1
GetPlaneType(): -1 GetPlaneType(): -1
Engine 89 Engine 89
IsValidEngine(): true IsValidEngine(): false
GetName(): Passenger Carriage GetName(): (null : 0x00000000)
GetCargoType(): 0 GetCargoType(): 255
CanRefitCargo(): false CanRefitCargo(): false
GetCapacity(): 47 GetCapacity(): -1
GetReliability(): -1 GetReliability(): -1
GetMaxSpeed(): 0 GetMaxSpeed(): -1
GetPrice(): 1447 GetPrice(): -1
GetMaxAge(): -1 GetMaxAge(): -1
GetRunningCost(): 0 GetRunningCost(): -1
GetPower(): -1 GetPower(): -1
GetWeight(): 25 GetWeight(): -1
GetMaxTractiveEffort(): -1 GetMaxTractiveEffort(): -1
GetVehicleType(): 0 GetVehicleType(): 255
GetRailType(): 3 GetRailType(): 255
GetRoadType(): -1 GetRoadType(): -1
GetPlaneType(): -1 GetPlaneType(): -1
Engine 90 Engine 90
IsValidEngine(): true IsValidEngine(): false
GetName(): Mail Van GetName(): (null : 0x00000000)
GetCargoType(): 2 GetCargoType(): 255
CanRefitCargo(): false CanRefitCargo(): false
GetCapacity(): 37 GetCapacity(): -1
GetReliability(): -1 GetReliability(): -1
GetMaxSpeed(): 0 GetMaxSpeed(): -1
GetPrice(): 1335 GetPrice(): -1
GetMaxAge(): -1 GetMaxAge(): -1
GetRunningCost(): 0 GetRunningCost(): -1
GetPower(): -1 GetPower(): -1
GetWeight(): 21 GetWeight(): -1
GetMaxTractiveEffort(): -1 GetMaxTractiveEffort(): -1
GetVehicleType(): 0 GetVehicleType(): 255
GetRailType(): 3 GetRailType(): 255
GetRoadType(): -1 GetRoadType(): -1
GetPlaneType(): -1 GetPlaneType(): -1
Engine 91 Engine 91
IsValidEngine(): true IsValidEngine(): false
GetName(): Coal Truck GetName(): (null : 0x00000000)
GetCargoType(): 1 GetCargoType(): 255
CanRefitCargo(): true CanRefitCargo(): false
GetCapacity(): 37 GetCapacity(): -1
GetReliability(): -1 GetReliability(): -1
GetMaxSpeed(): 0 GetMaxSpeed(): -1
GetPrice(): 1031 GetPrice(): -1
GetMaxAge(): -1 GetMaxAge(): -1
GetRunningCost(): 0 GetRunningCost(): -1
GetPower(): -1 GetPower(): -1
GetWeight(): 18 GetWeight(): -1
GetMaxTractiveEffort(): -1 GetMaxTractiveEffort(): -1
GetVehicleType(): 0 GetVehicleType(): 255
GetRailType(): 3 GetRailType(): 255
GetRoadType(): -1 GetRoadType(): -1
GetPlaneType(): -1 GetPlaneType(): -1
Engine 92 Engine 92
IsValidEngine(): true IsValidEngine(): false
GetName(): Oil Tanker GetName(): (null : 0x00000000)
GetCargoType(): 3 GetCargoType(): 255
CanRefitCargo(): false CanRefitCargo(): false
GetCapacity(): 37 GetCapacity(): -1
GetReliability(): -1 GetReliability(): -1
GetMaxSpeed(): 0 GetMaxSpeed(): -1
GetPrice(): 1171 GetPrice(): -1
GetMaxAge(): -1 GetMaxAge(): -1
GetRunningCost(): 0 GetRunningCost(): -1
GetPower(): -1 GetPower(): -1
GetWeight(): 24 GetWeight(): -1
GetMaxTractiveEffort(): -1 GetMaxTractiveEffort(): -1
GetVehicleType(): 0 GetVehicleType(): 255
GetRailType(): 3 GetRailType(): 255
GetRoadType(): -1 GetRoadType(): -1
GetPlaneType(): -1 GetPlaneType(): -1
Engine 93 Engine 93
IsValidEngine(): true IsValidEngine(): false
GetName(): Livestock Van GetName(): (null : 0x00000000)
GetCargoType(): 4 GetCargoType(): 255
CanRefitCargo(): false CanRefitCargo(): false
GetCapacity(): 32 GetCapacity(): -1
GetReliability(): -1 GetReliability(): -1
GetMaxSpeed(): 0 GetMaxSpeed(): -1
GetPrice(): 1125 GetPrice(): -1
GetMaxAge(): -1 GetMaxAge(): -1
GetRunningCost(): 0 GetRunningCost(): -1
GetPower(): -1 GetPower(): -1
GetWeight(): 20 GetWeight(): -1
GetMaxTractiveEffort(): -1 GetMaxTractiveEffort(): -1
GetVehicleType(): 0 GetVehicleType(): 255
GetRailType(): 3 GetRailType(): 255
GetRoadType(): -1 GetRoadType(): -1
GetPlaneType(): -1 GetPlaneType(): -1
Engine 94 Engine 94
IsValidEngine(): true IsValidEngine(): false
GetName(): Goods Van GetName(): (null : 0x00000000)
GetCargoType(): 5 GetCargoType(): 255
CanRefitCargo(): false CanRefitCargo(): false
GetCapacity(): 32 GetCapacity(): -1
GetReliability(): -1 GetReliability(): -1
GetMaxSpeed(): 0 GetMaxSpeed(): -1
GetPrice(): 1113 GetPrice(): -1
GetMaxAge(): -1 GetMaxAge(): -1
GetRunningCost(): 0 GetRunningCost(): -1
GetPower(): -1 GetPower(): -1
GetWeight(): 21 GetWeight(): -1
GetMaxTractiveEffort(): -1 GetMaxTractiveEffort(): -1
GetVehicleType(): 0 GetVehicleType(): 255
GetRailType(): 3 GetRailType(): 255
GetRoadType(): -1 GetRoadType(): -1
GetPlaneType(): -1 GetPlaneType(): -1
Engine 95 Engine 95
IsValidEngine(): true IsValidEngine(): false
GetName(): Grain Hopper GetName(): (null : 0x00000000)
GetCargoType(): 6 GetCargoType(): 255
CanRefitCargo(): false CanRefitCargo(): false
GetCapacity(): 37 GetCapacity(): -1
GetReliability(): -1 GetReliability(): -1
GetMaxSpeed(): 0 GetMaxSpeed(): -1
GetPrice(): 1066 GetPrice(): -1
GetMaxAge(): -1 GetMaxAge(): -1
GetRunningCost(): 0 GetRunningCost(): -1
GetPower(): -1 GetPower(): -1
GetWeight(): 19 GetWeight(): -1
GetMaxTractiveEffort(): -1 GetMaxTractiveEffort(): -1
GetVehicleType(): 0 GetVehicleType(): 255
GetRailType(): 3 GetRailType(): 255
GetRoadType(): -1 GetRoadType(): -1
GetPlaneType(): -1 GetPlaneType(): -1
Engine 96 Engine 96
IsValidEngine(): true IsValidEngine(): false
GetName(): Wood Truck GetName(): (null : 0x00000000)
GetCargoType(): 7 GetCargoType(): 255
CanRefitCargo(): false CanRefitCargo(): false
GetCapacity(): 37 GetCapacity(): -1
GetReliability(): -1 GetReliability(): -1
GetMaxSpeed(): 0 GetMaxSpeed(): -1
GetPrice(): 1060 GetPrice(): -1
GetMaxAge(): -1 GetMaxAge(): -1
GetRunningCost(): 0 GetRunningCost(): -1
GetPower(): -1 GetPower(): -1
GetWeight(): 16 GetWeight(): -1
GetMaxTractiveEffort(): -1 GetMaxTractiveEffort(): -1
GetVehicleType(): 0 GetVehicleType(): 255
GetRailType(): 3 GetRailType(): 255
GetRoadType(): -1 GetRoadType(): -1
GetPlaneType(): -1 GetPlaneType(): -1
Engine 97 Engine 97
IsValidEngine(): true IsValidEngine(): false
GetName(): Iron Ore Hopper GetName(): (null : 0x00000000)
GetCargoType(): 8 GetCargoType(): 255
CanRefitCargo(): false CanRefitCargo(): false
GetCapacity(): 37 GetCapacity(): -1
GetReliability(): -1 GetReliability(): -1
GetMaxSpeed(): 0 GetMaxSpeed(): -1
GetPrice(): 1048 GetPrice(): -1
GetMaxAge(): -1 GetMaxAge(): -1
GetRunningCost(): 0 GetRunningCost(): -1
GetPower(): -1 GetPower(): -1
GetWeight(): 19 GetWeight(): -1
GetMaxTractiveEffort(): -1 GetMaxTractiveEffort(): -1
GetVehicleType(): 0 GetVehicleType(): 255
GetRailType(): 3 GetRailType(): 255
GetRoadType(): -1 GetRoadType(): -1
GetPlaneType(): -1 GetPlaneType(): -1
Engine 98 Engine 98
IsValidEngine(): true IsValidEngine(): false
GetName(): Steel Truck GetName(): (null : 0x00000000)
GetCargoType(): 9 GetCargoType(): 255
CanRefitCargo(): false CanRefitCargo(): false
GetCapacity(): 27 GetCapacity(): -1
GetReliability(): -1 GetReliability(): -1
GetMaxSpeed(): 0 GetMaxSpeed(): -1
GetPrice(): 1148 GetPrice(): -1
GetMaxAge(): -1 GetMaxAge(): -1
GetRunningCost(): 0 GetRunningCost(): -1
GetPower(): -1 GetPower(): -1
GetWeight(): 18 GetWeight(): -1
GetMaxTractiveEffort(): -1 GetMaxTractiveEffort(): -1
GetVehicleType(): 0 GetVehicleType(): 255
GetRailType(): 3 GetRailType(): 255
GetRoadType(): -1 GetRoadType(): -1
GetPlaneType(): -1 GetPlaneType(): -1
Engine 99 Engine 99
IsValidEngine(): true IsValidEngine(): false
GetName(): Armoured Van GetName(): (null : 0x00000000)
GetCargoType(): 10 GetCargoType(): 255
CanRefitCargo(): false CanRefitCargo(): false
GetCapacity(): 27 GetCapacity(): -1
GetReliability(): -1 GetReliability(): -1
GetMaxSpeed(): 0 GetMaxSpeed(): -1
GetPrice(): 1494 GetPrice(): -1
GetMaxAge(): -1 GetMaxAge(): -1
GetRunningCost(): 0 GetRunningCost(): -1
GetPower(): -1 GetPower(): -1
GetWeight(): 30 GetWeight(): -1
GetMaxTractiveEffort(): -1 GetMaxTractiveEffort(): -1
GetVehicleType(): 0 GetVehicleType(): 255
GetRailType(): 3 GetRailType(): 255
GetRoadType(): -1 GetRoadType(): -1
GetPlaneType(): -1 GetPlaneType(): -1
Engine 100 Engine 100
@@ -5739,7 +5747,7 @@
GetRailType(): 255 GetRailType(): 255
GetRoadType(): -1 GetRoadType(): -1
GetPlaneType(): -1 GetPlaneType(): -1
Valid Engines: 53 Valid Engines: 31
--EngineList-- --EngineList--
Count(): 11 Count(): 11
@@ -7085,7 +7093,7 @@
IsBuoyTile(): false IsBuoyTile(): false
IsLockTile(): false IsLockTile(): false
IsCanalTile(): false IsCanalTile(): false
GetBankBalance(): 480703 GetBankBalance(): 479851
BuildWaterDepot(): true BuildWaterDepot(): true
BuildDock(): true BuildDock(): true
BuildBuoy(): true BuildBuoy(): true
@@ -7098,7 +7106,7 @@
IsBuoyTile(): true IsBuoyTile(): true
IsLockTile(): true IsLockTile(): true
IsCanalTile(): true IsCanalTile(): true
GetBankBalance(): 451154 GetBankBalance(): 450302
--AIWaypointList(BUOY)-- --AIWaypointList(BUOY)--
Count(): 1 Count(): 1
@@ -7117,7 +7125,7 @@
IsBuoyTile(): false IsBuoyTile(): false
IsLockTile(): false IsLockTile(): false
IsCanalTile(): false IsCanalTile(): false
GetBankBalance(): 428509 GetBankBalance(): 427657
BuildWaterDepot(): true BuildWaterDepot(): true
BuildDock(): true BuildDock(): true
@@ -7200,6 +7208,7 @@
ListDump: ListDump:
RailType: 0 RailType: 0
IsRailTypeAvailable(): true IsRailTypeAvailable(): true
GetMaxSpeed(): 0
--Road-- --Road--
Road Road

49
bin/data/no_sound.obs Normal file
View File

@@ -0,0 +1,49 @@
; $Id$
;
; This represents more or less nothingness
;
[metadata]
name = NoSound
shortname = NULL
version = 2
fallback = true
description = A sound pack without any sounds.
description.af_ZA = 'n Klank stel sonder enige klanke.
description.ar_EG = مجموعة صوت بدوت اصوات مضافة
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.de_DE = Basissounds ohne Sound.
description.el_GR = Ένα πάκετο ήχων χώρις ήχους.
description.en_GB = 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.fr_FR = Un pack de sons sans sons.
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.it_IT = Un pacchetto sonoro non contenente alcun suono.
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_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.sr_RS = Prazan skup zvukova.
description.sv_SE = Ett ljudpaket utan några ljud.
description.tr_TR = Ses içermeyen boş bir ses kümesi.
description.zh_TW = 不含任何音效的音效集。
[files]
samples =
[md5s]
[origin]
default = This file was part of your OpenTTD installation.

Binary file not shown.

View File

@@ -4,11 +4,42 @@
; Tycoon Deluxe DOS CD. ; Tycoon Deluxe DOS CD.
; ;
[metadata] [metadata]
name = original_dos name = original_dos
shortname = TTDD shortname = TTDD
version = 1 version = 1
description = Original Transport Tycoon Deluxe DOS edition graphics palette = DOS
palette = DOS description = Original Transport Tycoon Deluxe DOS edition graphics.
description.af_ZA = Oorspronklike Transport Tycoon Deluxe DOS uitgawe grafieke.
description.ar_EG = النسخة الاصلية من ترانسبورت تايكون ديلوكس الرسومية نسخة الدوس
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.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_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.fr_FR = Graphiques originaux de Transport Tycoon Deluxe (version 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.it_IT = Grafica originale di Transport Tycoon Deluxe, edizione DOS.
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_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.sr_RS = Originalni skup grafika Transport Tycoon Deluxe DOS izdanja.
description.sv_SE = Originalgrafiken från Transport Tycoon Deluxe, DOS-utgåvan.
description.tr_TR = Orijinal Transport Tycoon Deluxe DOS sürümü grafikleri.
description.zh_TW = 原版 Transport Tycoon Deluxe DOS 版的圖形。
[files] [files]
base = TRG1.GRF base = TRG1.GRF
@@ -28,4 +59,4 @@ OPENTTDD.GRF = 356cf9663aacb212fdbff609d99090d6
[origin] [origin]
default = You can find it on your Transport Tycoon Deluxe CD-ROM. default = You can find it on your Transport Tycoon Deluxe CD-ROM.
OPENTTDD.GRF = This file was part of your installation. OPENTTDD.GRF = This file was part of your OpenTTD installation.

View File

@@ -4,10 +4,41 @@
; Tycoon Deluxe DOS CD. ; Tycoon Deluxe DOS CD.
; ;
[metadata] [metadata]
name = original_dos name = original_dos
shortname = TTDO shortname = TTDO
version = 0 version = 0
description = Original Transport Tycoon Deluxe DOS edition sounds description = Original Transport Tycoon Deluxe DOS edition sounds.
description.af_ZA = Oorspronklike Transport Tycoon Deluxe DOS uitgawe klanke.
description.ar_EG = النسخة الاصلية من ترانسبورت تايكون ديلوكس الصوتية نسخة الدوس
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.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_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.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.it_IT = Suoni originali di Transport Tycoon Deluxe, edizione DOS.
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_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.sr_RS = Originalni skup zvukova Transport Tycoon Deluxe DOS izdanja.
description.sv_SE = Originalljuden från Transport Tycoon Deluxe, DOS-utgåvan.
description.tr_TR = Orijinal Transport Tycoon Deluxe DOS sürümü sesleri.
description.zh_TW = 原版 Transport Tycoon Deluxe DOS 版的音效。
[files] [files]
samples = SAMPLE.CAT samples = SAMPLE.CAT

View File

@@ -4,11 +4,42 @@
; Tycoon Deluxe DOS CD. It contains one broken sprite. ; Tycoon Deluxe DOS CD. It contains one broken sprite.
; ;
[metadata] [metadata]
name = original_dos_de name = original_dos_de
shortname = TTDD shortname = TTDD
version = 0 version = 0
description = Original Transport Tycoon Deluxe DOS (German) edition graphics palette = DOS
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.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.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_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.fr_FR = Graphiques originaux de Transport Tycoon Deluxe (version DOS allemande).
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.it_IT = Grafica originale di Transport Tycoon Deluxe (tedesco), edizione DOS.
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_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.sr_RS = Originalni skup grafika nemačkog Transport Tycoon Deluxe DOS izdanja.
description.sv_SE = Originalgrafiken från Transport Tycoon Deluxe, DOS-utgåvan (tyska).
description.tr_TR = Orijinal Transport Tycoon Deluxe DOS (Almanca) sürümü grafikleri.
description.zh_TW = 原版 Transport Tycoon Deluxe DOS 版 (德國版) 的圖形。
[files] [files]
base = TRG1.GRF base = TRG1.GRF
@@ -28,4 +59,4 @@ OPENTTDD.GRF = 356cf9663aacb212fdbff609d99090d6
[origin] [origin]
default = You can find it on your Transport Tycoon Deluxe CD-ROM. default = You can find it on your Transport Tycoon Deluxe CD-ROM.
OPENTTDD.GRF = This file was part of your installation. OPENTTDD.GRF = This file was part of your OpenTTD installation.

View File

@@ -4,11 +4,42 @@
; Tycoon Deluxe for Windows CD. ; Tycoon Deluxe for Windows CD.
; ;
[metadata] [metadata]
name = original_windows name = original_windows
shortname = TTDW shortname = TTDW
version = 0 version = 0
description = Original Transport Tycoon Deluxe Windows edition graphics palette = Windows
palette = Windows description = Original Transport Tycoon Deluxe Windows edition graphics.
description.af_ZA = Oorspronklike Transport Tycoon Deluxe Windows uitgawe grafieke.
description.ar_EG = النسخة الاصلية من ترانسبورت تايكون ديلوكس الرسومية نسخة وندوز
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.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_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.fr_FR = Graphiques originaux de Transport Tycoon Deluxe (version 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.it_IT = Grafica originale di Transport Tycoon Deluxe, edizione Windows.
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_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.sr_RS = Originalni skup grafika Transport Tycoon Deluxe Windows izdanja.
description.sv_SE = Originalgrafiken från Transport Tycoon Deluxe, Windows-utgåvan.
description.tr_TR = Orijinal Transport Tycoon Deluxe Windows sürümü grafikleri.
description.zh_TW = 原版 Transport Tycoon Deluxe Windows 版的圖形。
[files] [files]
base = TRG1R.GRF base = TRG1R.GRF
@@ -28,4 +59,4 @@ OPENTTDW.GRF = 80346ea80de167068cfb975f93963941
[origin] [origin]
default = You can find it on your Transport Tycoon Deluxe CD-ROM. default = You can find it on your Transport Tycoon Deluxe CD-ROM.
OPENTTDW.GRF = This file was part of your installation. OPENTTDW.GRF = This file was part of your OpenTTD installation.

View File

@@ -4,10 +4,41 @@
; Tycoon Deluxe for Windows CD. ; Tycoon Deluxe for Windows CD.
; ;
[metadata] [metadata]
name = original_windows name = original_windows
shortname = TTDO shortname = TTDO
version = 0 version = 0
description = Original Transport Tycoon Deluxe Windows edition sounds description = Original Transport Tycoon Deluxe Windows edition sounds.
description.af_ZA = Oorspronklike Transport Tycoon Deluxe Windows uitgawe klanke.
description.ar_EG = النسخة الاصلية من ترانسبورت تايكون ديلوكس الصوتية نسخة وندوز
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.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_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.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.it_IT = Suoni originali di Transport Tycoon Deluxe, edizione Windows.
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_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.sr_RS = Originalni skup zvukova Transport Tycoon Deluxe Windows izdanja.
description.sv_SE = Originalljuden från Transport Tycoon Deluxe, Windows-utgåvan.
description.tr_TR = Orijinal Transport Tycoon Deluxe Windows sürümü sesleri.
description.zh_TW = 原版 Transport Tycoon Deluxe Windows 版的音效。
[files] [files]
samples = SAMPLE.CAT samples = SAMPLE.CAT

View File

@@ -3,10 +3,42 @@
; This represents more or less nothingness ; This represents more or less nothingness
; ;
[metadata] [metadata]
name = NoMusic name = NoMusic
shortname = NOMU shortname = NULL
version = 0 version = 0
description = A music pack without actual music fallback = true
description = A music pack without actual music.
description.af_ZA = 'n Musiek stel sonder enige musiek.
description.ar_EG = مجموعة موسيقى بدون موسيقى
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.de_DE = Ein Musikset ohne Musik.
description.el_GR = Ένα πάκετο μουσικής χωρίς πραγματική μουσική.
description.en_GB = 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.fi_FI = Musiikkipaketti, jossa ei ole musiikkia.
description.fr_FR = Un pack de musiques sans musiques.
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.it_IT = Un pacchetto musicale non contenente alcuna musica.
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_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.sr_RS = Prazan skup muzičkih numera.
description.sv_SE = Ett musikpaket utan någon musik.
description.tr_TR = Müzik içermeyen boş bir müzik paketi.
description.zh_TW = 不含任何音樂的音樂集。
[files] [files]
theme = theme =
@@ -46,3 +78,4 @@ ezy_9 =
[names] [names]
[origin] [origin]
default = This file was part of your OpenTTD installation.

View File

@@ -4,10 +4,41 @@
; Tycoon Deluxe for Windows CD. ; Tycoon Deluxe for Windows CD.
; ;
[metadata] [metadata]
name = original_windows name = original_windows
shortname = TTDW shortname = TTDW
version = 1 version = 1
description = Original Transport Tycoon Deluxe Windows edition music description = Original Transport Tycoon Deluxe Windows edition music.
description.af_ZA = Oorspronklike Transport Tycoon Deluxe Windows uitgawe musiek.
description.ar_EG = النسخة الاصلية من ترانسبورت تايكون ديلوكس الموسيقية نسخة وندوز
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.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_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.fr_FR = Musiques originales de Transport Tycoon Deluxe (version 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.it_IT = Musica originale di Transport Tycoon Deluxe, edizione Windows.
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_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.sk_SK = Pôvodná hudba z Transport Tycoon Deluxe (Windows).
description.sl_SL = Originalna glasba Transport Tycoon Deluxe različice oken(windows).
description.sr_RS = Originalni skup muzičkih numera Transport Tycoon Deluxe Windows izdanja.
description.sv_SE = Originalmusiken från Transport Tycoon Deluxe, Windows-utgåvan.
description.tr_TR = Orijinal Transport Tycoon Deluxe Windows sürümü müzikleri.
description.zh_TW = 原版 Transport Tycoon Deluxe Windows 版的音樂。
[files] [files]
theme = GM_TT00.GM theme = GM_TT00.GM
@@ -91,4 +122,4 @@ GM_TT20.GM = Jammit
GM_TT21.GM = Movin' On GM_TT21.GM = Movin' On
[origin] [origin]
default = You can find it on your Transport Tycoon Deluxe CD-ROM. default = You can find it on your Transport Tycoon Deluxe CD-ROM.

View File

@@ -1,3 +1,223 @@
1.0.2 (2010-06-19)
------------------------------------------------------------------------
- Fix: Owner of the Waypoint View window was not properly set (r19990)
- Fix: Close list of vehicles with given oil rig in orders when the oil rig is deleted (r19956)
- Fix: Close list of vehicles with given buoy/oil rig in orders when switching company (r19955)
- Fix: Do not close list of waypoint's trains when the waypoint view is closed when it is sticky (r19952)
- Fix: Close buoy's vehicle list when the buoy is deleted [FS#3869] (r19951)
1.0.2-RC1 (2010-06-05)
------------------------------------------------------------------------
- Feature: Translated desktop shortcut comments (r19884)
- Fix: When 'pause on new game' is set, pause the game before CleanupGeneration() to avoid conflicts with concurrent GUI code [FS#3857] (r19934)
- Fix: Pay for the rail/road when constructing tunnels, bridges, depots and stations [FS#3859, FS#3827] (r19925, r19887, r19881)
- Fix: Closing chatbox could cause glitches when news message was shown [FS#3865] (r19921)
- Fix: [YAPP] Inform the pathfinder as well about the fact that the backside of an one-way path signal can be a safe waiting point [FS#3803] (r19896)
- Fix: Allow loading savegames from the console without specifying the ".sav" extension, i.e. make it consistent with saving savegames from the console [FS#3761] (r19885)
- Fix: Dropdowns did affect positioning of new windows because they were not yet removed when the new windows were positioned [FS#3812] (r19883)
- Fix: [NoAI] AIEngine::IsValidEngine() and AIEngine::IsBuildable() returned false positives. Especially wagons of unavailable railtypes were reported available (r19880)
- Fix: Default vehicle group texts were drawn one pixel too low [FS#3851] (r19878)
- Fix: It was not possible to send all trains with common waypoint order to depot (r19876)
- Fix: Compilation for NetBSD [FS#3809, FS#3840, FS#3845] (r19874, r19859, r19853, r19781)
- Fix: If the (guessed initial) destination tile of a road vehicle was not a road stop but was a T-junction or turn, the road vehicles would jump around in circles [FS#3817] (r19873)
- Fix: When a network connection gets lost and a game with AIs was loaded the client might crash due to the AIs not being loaded while the game loop is executed [FS#3819] (r19869)
- Fix: Use non-breaking spaces for currency pre-/postfixes (r19867)
- Fix: Crash when changing/viewing locale settings in the console [FS#3830] (r19865, r19864, r19863, r19862)
- Fix: Drawing fallback sprites for unavailable NewGRF waypoints failed (r19852)
- Fix: Ensure that both texts of the NewGRF gui download button fit (r19823)
- Fix: Kicking clients by IP did not work [FS#3784] (r19818)
- Fix: Compilation with MinGW GCC 4.5.0 and UNICODE (r19787)
- Fix: If a waypoint is immediately followed by a path signal a reservation would be made from that path signal before the waypoint is marked passed. As a result the order to go to the waypoint is used to reserve the path after the waypoint and as such trains get lost [FS#3770] (r19784)
- Fix: NULL pointer deference when testing relative scope *action2 on an unbuilt engine [FS#3828] (r19782)
- Fix: Crash on too long paths [FS#3807] (r19780, r19779, r19778, r19777, r19776)
- Fix: MP_VOID tiles shall have no tropic zone [FS#3820] (r19769)
- Fix: Half-desert tiles would never revert back to clear tiles (r19768)
- Fix: Height in smallmap was different from measured heights [FS#3808] (r19767)
- Fix: [NewGRF] Vehicle var 43 missed AI information in purchase list (r19761)
- Fix: Blocked roadvehicles should first check whether they are still blocked before accelerating again, instead of continuous starting/stopping (r19755)
- Fix: Try harder to find a suitable font that can be loaded, i.e. while searching for a suitable font test whether you can open it [FS#3740] (r19753)
- Fix: Make sure the chat area fits in the default window size; if you want it larger, you can always change/override it in the config file [FS#3798] (r19751)
- Fix: [NewGRF] Industry var 0x43 is not 'safe' during callbacks 22 and 38 either (r19750)
- Fix: [NewGRF] Possible divide-by-zero if a NewGRF checked industry var 42 while the production level was 0 (r19749)
- Fix: Do not recenter usually centered windows when resizing main window or changing language, if they have been moved/resized before [FS#3675] (r19746)
- Fix: The GUI is controlled by _local_company, not _current_company (r19745)
- Fix: NewGRFs could access map bits of not yet constructed industries and houses during construction callbacks (r19748, r19743)
- Fix: [NewGRF] Passing some invalid data to industry variable 67/68 could cause a crash (r19713)
- Fix: Check for industry availability more thoroughly and cancel object placement when selecting not available industries [FS#3787] (r19701)
- Fix: Avoid showing building toolbars behind the main toolbar when the 'Link landscape toolbar' setting is active [FS#3781] (r19696)
- Fix: Under some circumstances the player's name could be empty (r19693)
- Fix: Do not show an error message when trying to give another client an amount of 0 money [FS#3779] (r19684)
- Fix: Do not display an error message when double clicking on a vehicle in the 'available vehicles'-window (r19669)
- Change: Name invalid engines, cargos and industries 'invalid', if the player removed the supplying NewGRFs, hide invalid engines from the purchase list (r19879, r19877)
1.0.1 (2010-05-01)
------------------------------------------------------------------------
- Fix: Crash when using restart via rcon (r19722)
- Fix: Leaking a file descriptor [CVE-2010-0406] [FS#3785] (r19695)
- Fix: Crash when the music/graphics metadata files were unreadable [FS#3774] (r19674)
1.0.1-RC2 (2010-04-22)
------------------------------------------------------------------------
- Fix: Desync when joining the game because of using the wrong variable (r19687)
- Fix: Truncated archives were not detected when using zlib 1.2.3. This also fixes zlib 1.2.4 compatibility, zlib 1.2.5 is bugfree (r19686)
- Fix: Towns with 3x3 and 2x2 road layouts could not expand (r19683)
- Fix: When joining a MP game all clients with company ID > 0 would be shown as if they were a spectator [FS#3775] (r19680)
- Fix: Client status was shown incorrect in the console (r19678)
1.0.1-RC1 (2010-04-17)
------------------------------------------------------------------------
- Feature: [NewGRF] Support for extended text code 0x9A 11, print qword (r19570)
- Feature: Give more detailed error message when trying to build a too long bridge (r19561)
- Feature: Add rail speed limit to land area information window (r19556, r19434)
- Add: [NoAI] AIRail::GetMaxSpeed(RailType) to get the speed limit of railtypes (r19591)
- Change: Sync Debian packaging updates from Debian, but keep building a single package (r19572)
- Fix: Crash of a dedicated server if the null blitter is overridden and (after a while) there is no company 0 on new year anymore [FS#3749] (r19664)
- Fix: In rare cases, update of signals could be missed (r19663)
- Fix: Various improvements of command handling, missing error messages, improper validation causing crashes [CVE-2010-0402] [FS#3748] (r19658, r19657, r19656, r19655, r19654, r19637, r19633, r19621, r19616, r19605, r19604)
- Fix: Industry generation failed for large maps and lots of industry types (r19652, r19643)
- Fix: When a company is sold, move connected clients to spectators [FS#3745] (r19651)
- Fix: A client would not be properly moved when moved while joining, e.g. when entering a company's password. This caused the client to be in the wrong company (according to the rest of the clients) and the client being kicked on the first command [FS#3760] (r19648)
- Fix: Trains loaded above the original IDs did not have a default railtypelabel assigned to them, causing them to be unavailable. Could cause desyncs if the multiplayer game was not started from a savegame [FS#3768] (r19647)
- Fix: Do not allow building cacti outside of the desert or rain forest trees outside of the rain forest area. This to prevent people from thinking planting rain forest trees makes the rain forest bigger and thus adds more place to build a lumber mill [FS#3728] (r19644, r19635, r19634)
- Fix: Desync when taking over companies (r19636)
- Fix: Chat message caused glitch when rejoining a network game [FS#3757] (r19629)
- Fix: Desync when a command is received and in the queue while a client starts joining, i.e. save the game state. This can happen in two ways: with frame_freq > 1 a command received in a previous frame might not be executed yet or when a command is received in the same frame as the join but before the savegame is made. In both cases the joining client would not get all commands to get in-sync with the server (and the other clients) (r19620)
- Fix: Company related graphs were not updated correctly after changing the company colour [FS#3763] (r19615)
- Fix: Possible invalid read when server moves client to spectators before he finishes joining [FS#3755] (r19613)
- Fix: Crash when opening a savegame with a waypoint from around 0.4.0 [FS#3756] (r19612)
- Fix: Improve joining behaviour; kicking clients when entering passwords that was just cleared, 'connection lost' for people failing the password, access restriction circumvention [CVE-2010-0401] [FS#3754] (r19610, r19609, r19608, r19607, r19606)
- Fix: Desync debugging; false positives in the cache validity checks and saving/loading the command stream (r19619, r19617, r19602, r19601, r19600, r19596, r19593, r19592, r19589, r19587, r19586)
- Fix: Presence of online content was not properly updated after download due to duplicate slashes in the path (r19600)
- Fix: [NewGRF] Setting industry prop 0x24 to 0 caused empty station names (r19590)
- Fix: Crash when pressing 'h' (non-stop) in the order window of a ship or aircraft [FS#3744] (r19584)
- Fix: Graphs were not properly updated when going toggling keys (i.e. companies) (r19574)
- Fix: The timetable button was not automatically raised [FS#3739] (r19571)
- Fix: [NewGRF] Possible buffer underflow in NewGRF string code (r19569)
- Fix: [NewGRF] Do not return a random colour for unowned industries in var 45; TTDPatch does not seem to set the colour data in that case either and it could lead to desyncs (r19566)
- Fix: Window::OnResize() was not always called while resizing a window causing incorrect windows [FS#3730] (r19563, r19558)
- Fix: Bridge build error message should not show the same message twice (r19560, r19559)
- Fix: [NewGRF] During NewGRF loading, store rail type labels in temporary data and process after loading has finished. This avoids deactivated rail vehicles being reactivated if the climate property is set after the rail type property (r19557, r19502)
- Fix: Improperly scaled cargo payment graph when having lots of cargo (r19550, 19543)
- Fix: [NewGRF] Properties set before property 08 (house, industry, industry tiles) should be ignored, not trigger the NewGRF to be disabled [FS#3725] (r19547)
- Fix: Sorting industries by production was broken for NewGRF industries (r19538)
- Fix: Vehicle details window did not resize correctly after refitting a road vehicle to a longer variant [FS#3720] (r19533)
- Fix: Prevent drawing industries disabled at the smallmap as land tiles when they are built on water (r19523)
- Fix: Tunnels, bridges and roadstops are build with only one roadtype (r19506)
- Fix: Remove same_industry_close setting did not do what it said and caused NewGRF trouble (r19499)
- Fix: Keep number padding intact when cloning vehicle names [FS#3710] (r19498)
- Fix: [NewGRF] Bytes and words get sign-extended for temporary/persistent storage (r19497)
- Fix: Stop reducing the size of the vehicle list after selecting a vehicle with a long description (r19480)
- Fix: Implement custom sound effect for helicopter take-off [FS#3668] (r19364)
- Update: Plural type of Slovak (r19452)
1.0.0 (2010-04-01)
------------------------------------------------------------------------
- Fix: Network clients would crash while connecting to a server with AIs (r19526)
- Fix: [NPF] Crash when finding a waypoint before finding the closest depot [FS#3703] (r19460)
1.0.0-RC3 (2010-03-18)
------------------------------------------------------------------------
- Feature: Append rail type speed limit (if set) to rail type selection list, and toolbar title (r19431)
- Feature: [NewGRF] Smallmap colours for railtypes (r19307)
- Change: Make the drive through and cargo list consistency checks only run when 'desync' debugging is enabled (r19403, r19398)
- Change: Update documentation for console command connect to use ip:port#company parameter format, in line with command line help (r19374)
- Change: [NewGRF] Increase railtype cost range (r19306)
- Fix: Mark industry windows dirty more often [FS#3701] (r19443)
- Fix: Custom group names are misaligned with default ones when using rtl languages [FS#3700] (r19438)
- Fix: With certain game settings one could clear tiles for free when building long roads (r19436)
- Fix: When loading a savegame created with a house NewGRF without that NewGRF available all houses became tall office blocks (r19435)
- Fix: Limit rail clearance earnings to 3/4s of rail build cost, to avoid money making loophole when rail build cost is less than rail removal earnings (r19433)
- Fix: Crash when the error message 'owned by <town>' was shown [FS#3696] (r19432)
- Fix: [NoAI] When the title game contains an AIPL block the AI settings where overwritten by those from the title game (r19429)
- Fix: Gracefully handle the case where we cannot open a .tar file (r19427)
- Fix: [YAPP] A train on a bridge/tunnel was not always found when checking for trains on a reserved path (r19425)
- Fix: [NoAI] The AI Debug window did not open if an AI or library fails to compile when loading a savegame [FS#3669] (r19395)
- Fix: One could not level the whole map anymore at once (r19392)
- Fix: Only show the 'No AIs available' error message when explicitly changing the number of AI opponents [FS3676] (r19389)
- Fix: [NoAI] When reloading a savegame, an AI failing to compile could trigger (trying) to read the not yet loaded information of another AI via the AI Debug window and its "open with the most recently used AI" feature [FS#3666] (r19388)
- Fix: Close all orders windows when switching companies [FS#3671] (r19387)
- Fix: [IPv6] Netmask calculations were wrong if cidr >= 32 [FS#3684] (r19385)
- Fix: Overbuilding bridges, rail stations did not properly update PBS reservation [FS#3680] (r19384, r19383)
- Fix: [NoAI] List valuator could cause invalid iterators [FS#3665] (r19367)
- Fix: Close error messages about missing ownership when the company closes or is taken over [FS#3663] (r19358, r19357)
1.0.0-RC2 (2010-03-04)
------------------------------------------------------------------------
- Feature: [YAPF] Consider the railtype imposed speed limit for pathfinding (r19301)
- Feature: BaNaNaS support for music sets (r19262)
- Feature: [NewGRF] Add 2 bits of pseudo-random data for rail types, based on tile location (r19235)
- Feature: [Windows] Add OpenMSX to the installer (r19220, r19219)
- Feature: [NewGRF] Add CB36 support for aircraft properties 0F and 11 (r19218)
- Feature: Scroll to current order destination when ctrl+clicking the start/stop bar (r19216, r19215)
- Feature: Concept of fallback base sets, i.e. do not automatically load the NoMusic/NoSound sets when there is another set; make NoSound part of base installations (r19214, r19213, r19212, r19211, r19206)
- Feature: Support for genders for cargos, industries, vehicles, stations (r19180, r19179, r19178, r19177)
- Change: Increase the default small font size for freetype fonts as 6 point fonts are usually unreadable [FS#3655] (r19308)
- Change: [NewGRF] Railtype cost factor from byte to word value (r19306)
- Change: Improve error message with track building when signals are in the way (r19190, r19189)
- Change: Do not print the absolute path to AI script files in the AI debug window, use the relative path from /ai/ instead (r19166)
- Change: The Debian packaging; bring it in sync with the packaging used at Debian excluding package splitting (r19162)
- Fix: [Windows] Disable sound when a sound error happens instead of crashing [FS#3652] (r19304)
- Fix: [NewGRF] Return the TTD airport type in station var 0xF1 (r19299)
- Fix: [NewGRF] Segfault when station vars 0xF2/0xF3 is accessed when there is no truck/bus stop (r19298)
- Fix: [NoAI] Some methods of AIAbstractList left invalid iterators [FS#3566] (r19293)
- Fix: [YAPP] If reversing at path signals was disabled, a train would not reverse when hitting the back of an one-way signal (r19286)
- Fix: [NewGRF] Ensure prices cannot be set to zero. Zero prices break a lot of the internal logic to determine whether something has been done [FS#3646] (r19277)
- Fix: 'Cannot build <industry> here... <industry> in the way' showed the to-be-built industry twice, instead of the to-be-built industry and the industry that is in the way [FS#3618] (r19265)
- Fix: Writing (console) output to a file failed on Windows if the date would not be logged [FS#3639] (r19252)
- Fix: [NewGRF] Some GRF error messages did not free the previous error messages, creating a memory leak (r19251)
- Fix: With RTL languages clicking a horizontal scrollbar that could not scroll could cause a crash [FS#3643] (r19250)
- Fix: Start and end tiles were swapped in CMD_REMOVE_LONG_ROAD causing too much road to be removed [FS#3642] (r19249)
- Fix: DOS 'port' did not compile anymore (r19248)
- Fix: The -M command line option did not work (r19233)
- Fix: GetDestination() is invalid for nearest-depot orders (r19210)
- Fix: Compilation was broken for gcc 3.3 (r19207)
- Fix: The vehicle info in the autoreplace gui was drawn even when the window was shaded [FS#3634] (r19187)
- Fix: When selecting 'build many industries' in the scenario editor the 'build' button was not enabled [FS#3632] (r19176)
- Fix: Buoys are no Stations, only BaseStations (r19174)
- Fix: Under some circumstances timidity (via extmidi) would not shut down properly causing all kinds of trouble (e.g. blocked audio output). Try harder to shut down timidity and first shut down the music so shut down order is the inverse of initialisation order (r19168)
- Fix: Industry 0 could be choosen even if not available [FS#3631] (r19167)
- Fix: Vehicle running costs should not be changed in a running game [FS#3629] (r19165)
1.0.0-RC1 (2010-02-18)
------------------------------------------------------------------------
- Feature: Allow to select different land colours for the smallmap (r19064)
- Feature: [NewGRF] Action 3/2/1 (i.e. new graphics) support for rail types (r19056)
- Feature: Add zoom-out to smallmap (r19039)
- Add: [NoAI] AIOrder::[G|S]etStopLocation to get/set the stop location of trains in a rail station (r19014)
- Change: Move home directory to a better place in Haiku [FS#3625] (r19151)
- Change: Do not load the 'new game' NewGRFs when you are certain the savegame would not have been saved with them, i.e. do not load the 'new game' NewGRFs for TTO savegames (r19044)
- Fix: Invisible depots draw the track, so also draw the overlays (r19154)
- Fix: [v]seprintf should return the number of added characters excluding '\0' on truncation [FS#3627] (r19149, r19148)
- Fix: [YAPF] Look-ahead for multitile waypoints 'made up' data that should not go into the cache, causing desyncs in MP [FS#3619] (r19141)
- Fix: Report a more useful error when failing to build a bubble generator (r19137)
- Fix: Resize station cargo widget when needed to display all accepted cargo types [FS#3617] (r19123)
- Fix: [NewGRF] Industry property 0x17 was interpreted incorrectly and in some cases circumvented the density difficulty setting (r19120)
- Fix: removing towns (in the scenario editor) that had stations/depots refer to them or vehicles were on the town's road could cause a crash [FS#3616] (r19119)
- Fix: In the order window the Non-stop dropdown was not enabled for depot and waypoint orders and some buttons were raised too soon [FS#3593] (r19118, r19117)
- Fix: Do not crash on broken lng file and prevent it from happening again [FS#3611] (r19113, r19112)
- Fix: Not all news data was properly freed when starting a new game [FS#3614] (r19105)
- Fix: The BeMidi driver was broken [FS#3610] (r19097)
- Fix: Crash when one of the items in the news_display group in the config file has no value (r19096)
- Fix: Crash when a baseset has an empty metadata field (r19095)
- Fix: Possible read/write after free when the client triggered the server to close the connection [FS#3599] (r19072)
- Fix: Remove Bidi control characters from the reordered text so they are not drawn [FS#3604] (r19067)
- Fix: [NewGRF] Settings that are part of the "TTPatch flags" can cause desyncs if they are changed in network games (r19066)
- Fix: When banning yourself via rcon do not send the 'command response' to the client as the connection has already been terminated [FS#3598] (r19054)
- Fix: Mass stopping/starting/autoreplacing gave empty errors when there were no vehicles [FS#3577] (r19024)
- Fix: City airport introduction date had become 5 years later (r19023)
- Fix: Loading old (0.1-ish) savegames failed (r19022)
- Fix: Do not NULL the pointers when saving the savegame on an error during saving; the savegame is still valid, so do not make it invalid [FS#3570] (r19021)
- Fix: When removing roads, the player was also charged for removing the foundations [FS#3591] (r19016)
1.0.0-beta4 (2010-02-04) 1.0.0-beta4 (2010-02-04)
------------------------------------------------------------------------ ------------------------------------------------------------------------
- Feature: Content mirroring support (r18994) - Feature: Content mirroring support (r18994)

View File

@@ -11,7 +11,7 @@ log() {
} }
set_default() { set_default() {
released_version="" released_version="1.0.2"
ignore_extra_parameters="0" ignore_extra_parameters="0"
# We set all kinds of defaults for params. Later on the user can override # We set all kinds of defaults for params. Later on the user can override
@@ -55,8 +55,8 @@ set_default() {
enable_static="1" enable_static="1"
enable_translator="0" enable_translator="0"
enable_unicode="1" enable_unicode="1"
enable_assert="1" enable_assert="0"
enable_strip="0" enable_strip="1"
enable_universal="1" enable_universal="1"
enable_osx_g5="0" enable_osx_g5="0"
enable_cocoa_quartz="1" enable_cocoa_quartz="1"
@@ -1018,7 +1018,7 @@ check_params() {
fi fi
if [ "$personal_dir" = "1" ]; then if [ "$personal_dir" = "1" ]; then
if [ "$os" = "MINGW" ] || [ "$os" = "CYGWIN" ] || [ "$os" = "WINCE" ] || [ "$os" = "DOS" ]; then if [ "$os" = "MINGW" ] || [ "$os" = "CYGWIN" ] || [ "$os" = "WINCE" ] || [ "$os" = "DOS" ] || [ "$os" = "HAIKU" ]; then
personal_dir="OpenTTD" personal_dir="OpenTTD"
elif [ "$os" = "OSX" ]; then elif [ "$os" = "OSX" ]; then
personal_dir="Documents/OpenTTD" personal_dir="Documents/OpenTTD"
@@ -2304,6 +2304,13 @@ detect_library() {
if [ -z "$res" ]; then if [ -z "$res" ]; then
log 2 " trying /usr/local/include/$4$5... no" log 2 " trying /usr/local/include/$4$5... no"
fi fi
if [ -z "$res" ] && [ "$os" = "NETBSD" ]; then
eval "$2=`ls -1 /usr/pkg/include/$4*.h 2>/dev/null | egrep \"\/$5\$\"`"
eval "res=\$$2"
if [ -z "$res" ]; then
log 2 " trying /usr/pkg/include/$4$5... no"
fi
fi
eval "res=\$$2" eval "res=\$$2"
if [ -n "$res" ] && ( [ -n "$force_static" ] || ( [ "$enable_static" != "0" ] && [ "$os" != "OSX" ] ) ); then if [ -n "$res" ] && ( [ -n "$force_static" ] || ( [ "$enable_static" != "0" ] && [ "$os" != "OSX" ] ) ); then
@@ -3154,6 +3161,7 @@ showhelp() {
echo " --with-midi=midi define which midi-player to use" echo " --with-midi=midi define which midi-player to use"
echo " --with-midi-arg=arg define which args to use for the" echo " --with-midi-arg=arg define which args to use for the"
echo " midi-player" echo " midi-player"
echo " --with-libtimidity enables libtimidity support"
echo " --with-allegrol[=allegro-config]" echo " --with-allegrol[=allegro-config]"
echo " enables Allegro video driver support" echo " enables Allegro video driver support"
echo " --with-cocoa enables COCOA video driver (OSX ONLY)" echo " --with-cocoa enables COCOA video driver (OSX ONLY)"

View File

@@ -1,6 +1,6 @@
.\" Hey, EMACS: -*- nroff -*- .\" Hey, EMACS: -*- nroff -*-
.\" Please adjust this date whenever revising the manpage. .\" Please adjust this date whenever revising the manpage.
.Dd Jan 18, 2010 .Dd Apr 01, 2010
.Dt OPENTTD 6 .Dt OPENTTD 6
.Sh NAME .Sh NAME
.Nm openttd .Nm openttd

View File

@@ -1,6 +1,6 @@
OpenTTD's known bugs OpenTTD's known bugs
Last updated: 2010-02-04 Last updated: 2010-06-19
Release version: 1.0.0-beta4 Release version: 1.0.2
------------------------------------------------------------------------ ------------------------------------------------------------------------
@@ -34,6 +34,14 @@ 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 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. and that the nightlies and next major release will not have that bug.
- 3816 Console text does not always fit at 640x480
- 3746 Console output with right-to-left texts in left-to-right texts is not correct
- 3714 Some corrupted savegames can cause crashes
- 3695 Behaviour inconsistency building railway/road down towards water
- 3651 [OSX] Crash when selecting full screen
- 3648 [OSX] Crash when selecting music
- 3637 Second highest competing station gets penalised twice
- 3546 Ignoring signals might crash trains
- 3447 [OSX] SDL port is unuseable - 3447 [OSX] SDL port is unuseable
- 2782 [OSX] Port hopelessly outdated - 2782 [OSX] Port hopelessly outdated
- 2585 [OSX] OS' mouse pointer showing - 2585 [OSX] OS' mouse pointer showing
@@ -131,6 +139,7 @@ Duplicate (station) names after renaming [FS#3204]
to the automatically generated names. to the automatically generated names.
Extreme CPU usage/hangs when using SDL and PulseAudio [FS#3294] Extreme CPU usage/hangs when using SDL and PulseAudio [FS#3294]
OpenTTD hangs/freezes when closing, OpenTTD is slow, OpenTTD uses a lot of CPU
OpenTTD can be extremely slow/use a lot of CPU when the sound is OpenTTD can be extremely slow/use a lot of CPU when the sound is
played via SDL and then through PulseAudio's ALSA wrapper. Under the played via SDL and then through PulseAudio's ALSA wrapper. Under the
same configuration OpenTTD, or rather SDL, might hang when exiting same configuration OpenTTD, or rather SDL, might hang when exiting

View File

@@ -4,8 +4,8 @@
Type=Application Type=Application
Version=1.1 Version=1.1
Name=!!MENU_NAME!! Name=!!MENU_NAME!!
Comment=A clone of Transport Tycoon Deluxe
Icon=openttd Icon=openttd
Exec=!!TTD!! Exec=!!TTD!!
Terminal=false Terminal=false
Categories=!!MENU_GROUP!! Categories=!!MENU_GROUP!!
Comment=A clone of Transport Tycoon Deluxe

View File

@@ -0,0 +1,15 @@
# $Id$
# This file is part of OpenTTD.
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
# OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
#
# Awk script to automatically generate a single comment line
# for a translated desktop shortcut. If it does not exist there
# is no output.
#
/##isocode/ { lang = $2; next }
/STR_DESKTOP_SHORTCUT_COMMENT/ { sub("^[^:]*:", "", $0); print "Comment[" lang "]=" $0; next}

25
os/debian/NEWS Normal file
View File

@@ -0,0 +1,25 @@
openttd (1.0.0~rc3-2) unstable; urgency=low
The openttd package has been moved from contrib into main. Since the
OpenGFX free graphics set has been packaged for Debian, one can now run
OpenTTD without needing any of the resources from the original game
(though the original resources are still supported).
-- Matthijs Kooijman <matthijs@stdin.nl> Thu, 18 Mar 2010 13:09:35 +0100
openttd (0.7.0-1) unstable; urgency=low
Handling of AI players has changed in 0.7.0. This package no longer
contains any AI players, so playing against the computer is not possible
out of the box any longer. However, you can easily download AI players
through the new "Content Downloading Service", after which playing with
computer players is possible.
Loading old savegames with computer players is supported (AI players will
be converted according to the current AI settings), but at this moment
there are no AIs that completely handle any existing infrastructure built
by the old AI, so starting a new game might be more fun (especially since
most of the new AIs are a lot less erratic).
-- Matthijs Kooijman <matthijs@stdin.nl> Mon, 13 Apr 2009 15:11:20 +0200

View File

@@ -1,31 +1,41 @@
openttd for Debian OpenTTD for Debian
------------------ ------------------
To properly play this game, original data files are needed. To properly play this game, you need a base graphics and sound set.
You should copy the data files from the original TTD into the data directory Currently, the graphics, sound and music files from the original
(/usr/share/games/openttd/data). You should copy these files: Transport Tycoon Deluxe game (Windows and DOS versions) are supported,
* trg1r.grf as well as the free graphics replacement set "OpenGFX", sound
* trgcr.grf replacement set "OpenSFX" (which is in non-free due to a restrictive
* trghr.grf license) and the free music replacement set "OpenMSX".
* trgir.grf
* trgtr.grf
* sample.cat
-Music Normally, installing the openttd package should automatically install
For in game music (optional), you should copy all files in the gm/ openttd-opengfx as well, allowing OpenTTD to run out of the box. If you
subdir of your ttd installation to /usr/share/games/openttd/gm. You want sound, you'll have to enable non-free sources and install the
should also install timidity and a soundfont (freepats is packaged in openttd-opensfx package manually (or install the original Transport
Debian and works out of the box). Tyccon Deluxe sound files).
Don't forget to use -m extmidi if you want music, and if you have The easiest way to install the OpenMSX music files is to use the in-game
problems, remember that not all audio devices support multiple content download system, which should offer the latest version of the
audiostreams (music and sound), so you might have to use software music files.
mixing. My VIA AC97 device cannot do hardware mixing, for example.
To find out how to install the original Transport Tycoon Deluxe graphics
sound files and music files, see readme.txt, section 4.1.
-Playing Music
In addition to installing a music set (see above), you'll also need
to install the timidity midi player, available in the timidity
package.
Remember that not all audio devices support multiple audiostreams
(music and sound), so you might have to use alsa software mixing or
pulseaudio.
-Scenarios -Scenarios
There are no scenarios included in this release. Scenarios can be There are no scenarios included in this release. Scenarios can be
downloaded separately from the OpenTTD website and all over the downloaded using OpenTTD's content service, which is available from
internet. Place scenarios in your ~/.openttd/scenario directory to OpenTTD's main menu. If you have obtained a scenario through other
use them. means, you can place it either in your ~/.openttd/scenario directory
or in the system-wide /usr/share/games/openttd/scenario directory.
-- Matthijs Kooijman <matthijs@stdin.nl> Mon, 01 Feb 2010 10:42:11 +0100
-- Matthijs Kooijman <matthijs@stdin.nl>, Tue, 25 Jan 2004 14:11:01 +0200

View File

@@ -1,147 +1,190 @@
openttd (1.0~svn-1) UNRELEASED; urgency=low openttd (1.0.2-0) unstable; urgency=low
* Unreleased SVN version. Versioned to allow normal upgrades to released * New upstream release 1.0.2
-- Matthijs Kooijman <matthijs@stdin.nl> 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 (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 (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 (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 (1.0.0-1) unstable; urgency=low
* [30a2162] New upstream release 1.0.0. (Closes: #570104)
* [102698a] Make openttd-wrapper work with older mktemp versions.
-- Matthijs Kooijman <matthijs@stdin.nl> Fri, 02 Apr 2010 23:36:21 +0200
openttd (1.0.0~rc3-2) unstable; urgency=low
* [279c5ef] Recommend openttd-opengfx and suggest openttd-opensfx.
* [9330ad7] Update README.Debian concerning music files.
* [07bde24] Move openttd from contrib to main. (Closes: #560810)
-- Matthijs Kooijman <matthijs@stdin.nl> Thu, 18 Mar 2010 13:16:32 +0100
openttd (1.0.0~rc3-1) unstable; urgency=low
* [412d153] New upstream release 1.0.0~rc3.
-- Matthijs Kooijman <matthijs@stdin.nl> Thu, 18 Mar 2010 10:09:33 +0100
openttd (1.0.0~rc2-1) unstable; urgency=low
* [9c99af4] New upstream release 1.0.0~rc2.
-- Matthijs Kooijman <matthijs@stdin.nl> Thu, 04 Mar 2010 12:22:28 +0100
openttd (1.0.0~rc1-1) unstable; urgency=low
* [fe4eb51] New upstream release 1.0.0~rc1.
* [6aa2be0] Note that the embedded md5 implementation has a different
license.
* [39eb336] Remove lintian override for empty gm directory.
-- Matthijs Kooijman <matthijs@stdin.nl> Fri, 19 Feb 2010 13:00:53 +0100
openttd (1.0.0~beta4-1) unstable; urgency=low
* [6718224] New upstream release 1.0.0~beta4.
* [7b0fa8d] Remove some more docs that we don't want in the package.
* [bb9d744] Use liblzo2 instead of an embedded minilzo version.
* [949c06b] Explicitly disable iconv support.
-- Matthijs Kooijman <matthijs@stdin.nl> Fri, 19 Feb 2010 12:59:27 +0100
openttd (0.7.5-4) unstable; urgency=low
* [174d0b1] Don't use deprecated < in Replaces.
-- Matthijs Kooijman <matthijs@stdin.nl> Mon, 15 Feb 2010 00:35:33 +0100
openttd (0.7.5-3) unstable; urgency=low
* [d12fc5a] Make openttd-data replace openttd (< 0.7.5-2).
(Closes: #569679)
-- Matthijs Kooijman <matthijs@stdin.nl> Sun, 14 Feb 2010 16:56:31 +0100
openttd (0.7.5-2) unstable; urgency=low
[ Matthijs Kooijman ]
* [fbab21d] Switch to source format 3.0 (quilt).
* [85c0c7d] No longer check for (and complain about missing) datafiles
on installation and upgrades. (Closes: #524651, 562574)
* [827eb61] Split the architecture independent data into openttd-data.
(Closes: #492462)
* [6fbd9c7] Update README.Debian.
* [76a5148] Support cross compilation. (Closes: #550951)
* [2005bf8] Simplify the rules file, make debhelper do more stuff.
* [fc0500e] Remove some configure arguments.
* [8ca38bb] Explicitly enable or disable all of the dependencies.
* [e38fb3e] Let the upstream Makefile install documentation.
* [5954fcf] Update the watch file to the new upstream url scheme.
* [7249594] Fix typo in copyright file.
* [660fb61] Bump the Standards-Version to 3.8.4, with no changes
required.
* [f94ab89] Move the packaging git repository to git.debian.org.
-- Jordi Mallach <jordi@debian.org> Tue, 09 Feb 2010 21:40:24 +0100
openttd (0.7.5-1) unstable; urgency=high
* [cdcb73a] Imported Upstream version 0.7.5. This release fixes
CVE-2009-4007.
-- Matthijs Kooijman <matthijs@stdin.nl> Thu, 24 Dec 2009 00:55:45 +0100
openttd (0.7.4-1) unstable; urgency=low
* [a2c297b0] Imported Upstream version 0.7.4
* [0232a645] Make Debian-specific patches executable.
* [76be04b] Switch the Debian packaging to git.
-- Matthijs Kooijman <matthijs@stdin.nl> Tue, 15 Dec 2009 22:11:52 +0100
openttd (0.7.3-1) unstable; urgency=low
[ Matthijs Kooijman ]
* New upstream release
* Use printf instead of echo -en in openttd-wrapper to make it POSIX
compatible (Closes: #547758).
* Remove three patches that are now included in upstream.
-- Matthijs Kooijman <matthijs@stdin.nl> Thu, 01 Oct 2009 22:52:59 +0200
openttd (0.7.2-1) unstable; urgency=low
[ Matthijs Kooijman ]
* New upstream release
* Bump Standards-Version to 3.8.3, with no changes required.
* Clean up the rules file a bit and add some lintian overrides.
* Explain why openttd is in contrib (Closes: #539381).
* Add the DM-Upload-Allowed control field.
* Re-add dpatch infrastructure.
* Fix the copyright file, since upstream only allows GPLv2, not later
versions. versions.
* Add a section to the copyright file on the different license used by the
"Squirrel" programming language, which is shipped with OpenTTD since
0.7.0.
* Backport upstream r17226, which removes the deprecated Encoding entry from
the .desktop file.
* Add a wrapper script for openttd, which captures any stderr output and
displays it when openttd returns an error code (Closes: #533557).
* Recommend x11-utils, since we use xmessage for displaying errors. Don't
depend on it, since openttd will still run fine without it, you just won't
see any errors.
* Backport upstream r17227 and r17229, which prevents terminal escape codes
from ending up in the captured error output.
* Backport upstream r17240, which improves stderr output when files are
missing or corrupt.
-- Matthijs Kooijman <matthijs@stdin.nl> Thu, 24 Dec 2009 01:02:03 +0100 -- Jordi Mallach <jordi@debian.org> Fri, 21 Aug 2009 15:27:26 +0200
openttd (1.0.0~beta4) unstable; urgency=low openttd (0.7.1-1) unstable; urgency=low
[ Matthijs Kooijman ]
* New upstream release. * New upstream release.
* Link against libicu to enable right-to-left language support.
-- Matthijs Kooijman <matthijs@stdin.nl> Thu, 04 Feb 2010 18:36:02 +0100 -- Jordi Mallach <jordi@debian.org> Tue, 09 Jun 2009 21:46:28 +0200
openttd (1.0.0~beta3) unstable; urgency=low openttd (0.7.0-1) unstable; urgency=low
[ Matthijs Kooijman ]
* New upstream release. * New upstream release.
* Remove Debian specific desktop file, upstream provides one now.
* Add debian/watch file.
-- Matthijs Kooijman <matthijs@stdin.nl> Thu, 21 Jan 2010 00:01:02 +0100 [ Jordi Mallach ]
* Bump Standards-Version to 3.8.1, with no changes required.
* Move to debhelper compat 7. Bump Build-Depends accordingly.
* Use dh_prep.
* Add "set -e" to config script.
* Remove a few extra doc files that get installed by upstream Makefile.
* Add more complete copyright information.
openttd (1.0.0~beta2) unstable; urgency=low -- Jordi Mallach <jordi@debian.org> Wed, 15 Apr 2009 18:22:10 +0200
* New upstream release.
-- Matthijs Kooijman <matthijs@stdin.nl> Tue, 05 Jan 2010 21:36:51 +0100
openttd (1.0.0~beta1) unstable; urgency=low
* New upstream release.
-- Matthijs Kooijman <matthijs@stdin.nl> Thu, 24 Dec 2009 01:01:01 +0100
openttd (0.7.5) unstable; urgency=low
* New upstream release.
-- Matthijs Kooijman <matthijs@stdin.nl> Wed, 23 Dec 2009 20:52:34 +0100
openttd (0.7.5~RC1) unstable; urgency=low
* New upstream release.
-- Matthijs Kooijman <matthijs@stdin.nl> Mon, 14 Dec 2009 19:28:37 +0100
openttd (0.7.4) unstable; urgency=low
* New upstream release.
-- Matthijs Kooijman <matthijs@stdin.nl> Tue, 01 Dec 2009 01:23:45 +0100
openttd (0.7.4~RC1) unstable; urgency=low
* New upstream release.
-- Matthijs Kooijman <matthijs@stdin.nl> Sun, 15 Nov 2009 16:30:07 +0100
openttd (0.7.3) unstable; urgency=low
* New upstream release.
-- Matthijs Kooijman <matthijs@stdin.nl> Thu, 01 Oct 2009 12:35:47 +0200
openttd (0.7.3~RC2) unstable; urgency=low
* New upstream release.
-- Matthijs Kooijman <matthijs@stdin.nl> Thu, 24 Sep 2009 21:30:43 +0200
openttd (0.7.3~RC1) unstable; urgency=low
* New upstream release.
-- Matthijs Kooijman <matthijs@stdin.nl> Sun, 13 Sep 2009 10:25:56 +0200
openttd (0.7.2) unstable; urgency=low
* New upstream release.
-- Matthijs Kooijman <matthijs@stdin.nl> Sat, 01 Aug 2009 00:19:43 +0200
openttd (0.7.2~RC2) unstable; urgency=low
* New upstream release.
-- Matthijs Kooijman <matthijs@stdin.nl> Tue, 21 Jul 2009 20:25:56 +0200
openttd (0.7.2~RC1) unstable; urgency=low
* New upstream release.
-- Matthijs Kooijman <matthijs@stdin.nl> Wed, 15 Jul 2009 22:25:56 +0200
openttd (0.7.1) unstable; urgency=low
* New upstream release.
-- Matthijs Kooijman <matthijs@stdin.nl> Tue, 09 Jun 2009 01:34:56 +0200
openttd (0.7.1~RC3) unstable; urgency=low
* New upstream release.
-- Matthijs Kooijman <matthijs@stdin.nl> Wed, 03 Jun 2009 15:34:56 +0200
openttd (0.7.1~RC2) unstable; urgency=low
* New upstream release.
-- Matthijs Kooijman <matthijs@stdin.nl> Thu, 21 Mar 2009 14:34:56 +0200
openttd (0.7.1~RC1) unstable; urgency=low
* New upstream release.
-- Matthijs Kooijman <matthijs@stdin.nl> Mon, 11 Mar 2009 17:34:56 +0200
openttd (0.7.0) unstable; urgency=low
* New upstream release.
-- Matthijs Kooijman <matthijs@stdin.nl> Wed, 01 Apr 2009 13:37:42 +0000
openttd (0.7.0~RC2) unstable; urgency=low
* New upstream release.
-- Matthijs Kooijman <matthijs@stdin.nl> Mon, 23 Mar 2009 00:42:00 +0200
openttd (0.7.0~RC1) unstable; urgency=low
* New upstream release.
-- Matthijs Kooijman <matthijs@stdin.nl> Mon, 16 Mar 2009 00:07:00 +0200
openttd (0.7.0~beta2) unstable; urgency=low
* New upstream release.
-- Matthijs Kooijman <matthijs@stdin.nl> Tue, 10 Mar 2009 00:33:05 +0100
openttd (0.7.0~beta1) unstable; urgency=low
* New upstream release.
-- Matthijs Kooijman <matthijs@stdin.nl> Mon, 16 Feb 2009 23:07:05 +0100
openttd (0.6.3-1) unstable; urgency=low openttd (0.6.3-1) unstable; urgency=low
@@ -150,7 +193,7 @@ openttd (0.6.3-1) unstable; urgency=low
[ Jordi Mallach ] [ Jordi Mallach ]
* Add Spanish Debconf template translation, after fixing its corrupted * Add Spanish Debconf template translation, after fixing its corrupted
encoding. encoding (thanks, Germana Oliveira, closes: #499214).
-- Jordi Mallach <jordi@debian.org> Thu, 02 Oct 2008 16:59:03 +0200 -- Jordi Mallach <jordi@debian.org> Thu, 02 Oct 2008 16:59:03 +0200

View File

@@ -1 +1 @@
4 7

View File

@@ -1,21 +0,0 @@
#!/bin/sh
# Source debconf library.
. /usr/share/debconf/confmodule
FILES="trg1r.grf trgcr.grf trghr.grf trgir.grf trgtr.grf sample.cat"
DATADIR=/usr/share/games/openttd/data
MISSING="No"
for FILE in $FILES; do
# Check if all the files needed are here.
if [ ! -e $DATADIR/$FILE ]; then
MISSING="Yes"
break
fi;
done
if [ $MISSING = "Yes" ]; then
db_input high openttd/datafiles || true
db_go
fi

View File

@@ -1,21 +1,27 @@
Source: openttd Source: openttd
Section: contrib/games Section: games
Priority: optional Priority: optional
Maintainer: Matthijs Kooijman <matthijs@stdin.nl> Maintainer: Matthijs Kooijman <matthijs@stdin.nl>
Uploaders: Jordi Mallach <jordi@debian.org> Uploaders: Jordi Mallach <jordi@debian.org>
Build-Depends: debhelper (>= 4.0.0), libsdl-dev, zlib1g-dev, libpng-dev, libfreetype6-dev, libfontconfig-dev, liblzo2-dev DM-Upload-Allowed: yes
Standards-Version: 3.7.3 Build-Depends: debhelper (>= 7.0.50), libsdl-dev, zlib1g-dev, libpng-dev, libfreetype6-dev, libfontconfig-dev, libicu-dev, liblzo2-dev
Vcs-Browser: http://svn.debian.org/wsvn/collab-maint/deb-maint/openttd/trunk/ Standards-Version: 3.8.4
Vcs-Svn: svn://svn.debian.org/svn/collab-maint/deb-maint/openttd/trunk Vcs-Browser: http://git.debian.org/?p=collab-maint/openttd.git
Vcs-Git: git://git.debian.org/collab-maint/openttd.git
Homepage: http://www.openttd.org/ Homepage: http://www.openttd.org/
Package: openttd Package: openttd
Architecture: any Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends} Depends: ${shlibs:Depends}, ${misc:Depends}
Suggests: timidity, freepats Recommends: openttd-opengfx, x11-utils
Replaces: openttd-data
Conflicts: openttd-data
Suggests: openttd-opensfx, timidity, freepats
Description: reimplementation of Transport Tycoon Deluxe with enhancements Description: reimplementation of Transport Tycoon Deluxe with enhancements
OpenTTD is a reimplementation of the Microprose game "Transport OpenTTD is a reimplementation of the Microprose game "Transport
Tycoon Deluxe" with lots of new features and enhancements. The data Tycoon Deluxe" with lots of new features and enhancements.
files of the original Transport Tycoon Deluxe for Windows are .
mandatory to play the game. They must be manually copied to the game OpenTTD is playable with the free graphics files from the openttd-opengfx
data directory (see README.Debian for details). package and optional sound files from the openttd-opensfx package (which is in
non-free). Alternatively, OpenTTD can use the graphics files from the original
Transport Tycoon Deluxe game (See README.Debian on how to set this up).

View File

@@ -1,25 +1,77 @@
This package was debianized by Matthijs Kooijman <m.kooijman@student.utwente.nl> This package was debianized by Matthijs Kooijman <matthijs@stdin.nl>
on Wed, 15 Sep 2004 00:24:01 +0200. on Wed, 15 Sep 2004 00:24:01 +0200.
It was downloaded from http://sourceforge.net/projects/openttd
Upstream author: Ludvig Strigeus (ludde) and many others. Upstream author: Ludvig Strigeus (ludde) and many others.
Upstream homepage: http://www.openttd.org
License: Copyright © 2004-2009 Ludvig Strigeous and others.
This program is free software; you can redistribute it and/or modify OpenTTD License:
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful, This program is free software; you can redistribute it and/or modify
but WITHOUT ANY WARRANTY; without even the implied warranty of it under the terms of the GNU General Public License version 2.0 as
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the published by the Free Software Foundation;
GNU General Public License for more details.
You should have received a copy of the GNU General Public License This program is distributed in the hope that it will be useful,
along with this package; if not, write to the Free Software but WITHOUT ANY WARRANTY; without even the implied warranty of
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
On Debian systems, the complete text of the GNU General You should have received a copy of the GNU General Public License
Public License can be found in `/usr/share/common-licenses/GPL'. 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'.
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.

View File

@@ -1,2 +0,0 @@
readme.txt
docs/multiplayer.txt

13
os/debian/gbp.conf Normal file
View File

@@ -0,0 +1,13 @@
[DEFAULT]
# Use pristine-tar
pristine-tar = True
[git-dch]
# We use metaheaders in commit messages.
meta = True
# Put git commit ids in the debian changelog.
id-length = 7
[git-import-orig]
# Use a custom commit message for upstream imports.
import-msg = New upstream release %(version)s.

View File

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

28
os/debian/openttd-wrapper Normal file
View File

@@ -0,0 +1,28 @@
#!/bin/sh
# This is a wrapper script that checks openttd's exit status and
# displays its stderr output
# Get a file to capture stderr to. Use the deprecated -t option, so this
# works on the old mktemp from the mktemp package (which has been
# replaced by the version from the coreutils package).
TMPFILE=`mktemp -t openttd.errout.XXXXXXXXX`
if [ ! -w "$TMPFILE" ]; then
xmessage "Could not create temporary file for error messages. Not starting OpenTTD."
exit 1;
fi
# Capture stderr
openttd "$@" 2> "$TMPFILE"
ERRCODE=$?
if [ "$ERRCODE" -ne 0 ]; then
CODEMSG="OpenTTD returned with error code $ERRCODE."
if [ -s "$TMPFILE" ]; then
MESSAGE="$CODEMSG The following error messages were produced:\n\n"
printf "$MESSAGE" | cat - "$TMPFILE" | fold -s | xmessage -file -
else
xmessage "$CODEMSG No error messages were produced."
fi
fi
rm -f "$TMPFILE"

View File

@@ -0,0 +1,19 @@
From: Matthijs Kooijman <matthijs@stdin.nl>
Subject: Use a wrapper script for running openttd
The wrapper script captures stderr from openttd and displays this in
case of an error. This patch makes the the .desktop file call the
wrapper instead of the openttd binary directly.
Index: media/openttd.desktop.in
===================================================================
--- a/media/openttd.desktop.in (revision 17228)
+++ b/media/openttd.desktop.in (working copy)
@@ -6,6 +6,6 @@
Name=!!MENU_NAME!!
Comment=A clone of Transport Tycoon Deluxe
Icon=openttd
-Exec=!!TTD!!
+Exec=/usr/share/games/openttd/openttd-wrapper
Terminal=false
Categories=!!MENU_GROUP!!

1
os/debian/patches/series Normal file
View File

@@ -0,0 +1 @@
run-openttd-wrapper.patch

View File

@@ -1 +0,0 @@
[type: gettext/rfc822deb] templates

View File

@@ -1,40 +0,0 @@
# Catalan translation of openttd's Debconf templates.
# Copyright © 2007 Software in the Public Interest, Inc.
# This file is distributed under the same license as the openttd package.
# Jordi Mallach <jordi@debian.org>, 2007.
#
msgid ""
msgstr ""
"Project-Id-Version: openttd 0.5.2-1\n"
"Report-Msgid-Bugs-To: m.kooijman@student.utwente.nl\n"
"POT-Creation-Date: 2007-05-08 09:39+0200\n"
"PO-Revision-Date: 2007-06-01 00:45+0200\n"
"Last-Translator: Jordi Mallach <jordi@debian.org>\n"
"Language-Team: Catalan <debian-l10n-catalan@lists.debian.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#. Type: error
#. Description
#: ../templates:2001
msgid "Data files needed"
msgstr "Es necessiten els fitxers de dades"
#. Type: error
#. Description
#: ../templates:2001
msgid ""
"For its operation, OpenTTD needs the data files from the original Transport "
"Tycoon Deluxe game."
msgstr ""
"Per a funcionar, OpenTTD necessita els fitxers de dades del joc "
"Transport Tycoon Deluxe original."
#. Type: error
#. Description
#: ../templates:2001
msgid ""
"See the /usr/share/doc/openttd/README.Debian file for more details about the "
"needed files and their location."
msgstr "Vegeu el fitxer /usr/share/doc/openttd/README.Debian per a obtenir-ne més detalls sobre els fitxers necessaris i la seua ubicació."

View File

@@ -1,42 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: openttd\n"
"Report-Msgid-Bugs-To: m.kooijman@student.utwente.nl\n"
"POT-Creation-Date: 2007-05-08 09:39+0200\n"
"PO-Revision-Date: 2007-05-08 10:52+0200\n"
"Last-Translator: Miroslav Kure <kurem@debian.cz>\n"
"Language-Team: Czech <debian-l10n-czech@lists.debian.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#. Type: error
#. Description
#: ../templates:2001
msgid "Data files needed"
msgstr "Vyžadovány datové soubory"
#. Type: error
#. Description
#: ../templates:2001
msgid ""
"For its operation, OpenTTD needs the data files from the original Transport "
"Tycoon Deluxe game."
msgstr ""
"Pro svůj běh vyžaduje OpenTTD datové soubory z původní hry Transport Tycoon "
"Deluxe."
#. Type: error
#. Description
#: ../templates:2001
msgid ""
"See the /usr/share/doc/openttd/README.Debian file for more details about the "
"needed files and their location."
msgstr ""
"Podrobnosti o vyžadovaných souborech a jejich umístění naleznete v souboru /"
"usr/share/doc/openttd/README.Debian."

View File

@@ -1,55 +0,0 @@
# Translation of openttd debconf templates to German
# Copyright (C) Helge Kreutzmann <debian@helgefjell.de>, 2007.
# This file is distributed under the same license as the openttd package.
#
msgid ""
msgstr ""
"Project-Id-Version: openttd 0.5.0-2\n"
"Report-Msgid-Bugs-To: m.kooijman@student.utwente.nl\n"
"POT-Creation-Date: 2007-05-08 09:39+0200\n"
"PO-Revision-Date: 2007-05-08 21:21+0200\n"
"Last-Translator: Helge Kreutzmann <debian@helgefjell.de>\n"
"Language-Team: German <debian-l10n-german@lists.debian.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-15\n"
"Content-Transfer-Encoding: 8bit\n"
#. Type: error
#. Description
#: ../templates:2001
msgid "Data files needed"
msgstr "Ben<65>tigte Datendateien"
#. Type: error
#. Description
#: ../templates:2001
msgid ""
"For its operation, OpenTTD needs the data files from the original Transport "
"Tycoon Deluxe game."
msgstr ""
"Zum Betrieb ben<65>tigt OpenTTD Datendateien aus dem Originalspiel Transport "
"Tycoon Deluxe."
#. Type: error
#. Description
#: ../templates:2001
msgid ""
"See the /usr/share/doc/openttd/README.Debian file for more details about the "
"needed files and their location."
msgstr ""
"Lesen Sie die Datei /usr/share/doc/openttd/README.Debian f<>r weitere Details "
"<22>ber die ben<65>tigten Dateien und ihren Ort."
#~ msgid "You need to install data files"
#~ msgstr "Sie m<>ssen Daten-Dateien installieren"
#~ msgid ""
#~ "OpenTTD needs the data files from the original Transport Tycoon Deluxe "
#~ "game to run. You should install these data files before you can play the "
#~ "game. See README.Debian for more details on which files need to be copied "
#~ "where."
#~ msgstr ""
#~ "OpenTTD ben<65>tigt zur Ausf<73>hrung Daten-Dateien aus dem Originalspiel "
#~ "<22>Transport Tycoon Deluxe<78>. Sie sollten diese Daten-Dateien installieren, "
#~ "bevor Sie das Spiel spielen k<>nnen. Lesen Sie README.Debian f<>r weitere "
#~ "Details dar<61>ber, welche Dateien wohin kopiert werden m<>ssen."

View File

@@ -1,42 +0,0 @@
# OpenTTD debconf template basque translation
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Piarres eobide <pi@beobide.net>, 2007.
#
msgid ""
msgstr ""
"Project-Id-Version: OpenTTD Debconf\n"
"Report-Msgid-Bugs-To: m.kooijman@student.utwente.nl\n"
"POT-Creation-Date: 2007-05-08 09:39+0200\n"
"PO-Revision-Date: 2007-05-08 09:55+0200\n"
"Last-Translator: Piarres eobide <pi@beobide.net>\n"
"Language-Team: Euskara <Librezale@librezale.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#. Type: error
#. Description
#: ../templates:2001
msgid "Data files needed"
msgstr "Datu fitxategiak behar dira"
#. Type: error
#. Description
#: ../templates:2001
msgid ""
"For its operation, OpenTTD needs the data files from the original Transport "
"Tycoon Deluxe game."
msgstr ""
"Funtziona dezan, OpenTTD-ek jatorrizko 'Transport Tycoon Deluxe' jokoaren "
"datu fitxategiak behar ditu."
#. Type: error
#. Description
#: ../templates:2001
msgid ""
"See the /usr/share/doc/openttd/README.Debian file for more details about the "
"needed files and their location."
msgstr ""
"/usr/share/doc/openttd/README.Debian fitxategia begiratu beharrezko "
"fitategien eta bere kokapenari buruz xehetasun gehiago ikusteko."

View File

@@ -1,32 +0,0 @@
msgid ""
msgstr ""
"Project-Id-Version: openttd_0.5.3-1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2007-09-19 04:33+0200\n"
"PO-Revision-Date: 2007-12-18 20:01+0200\n"
"Last-Translator: Esko Arajärvi <edu@iki.fi>\n"
"Language-Team: Finnish <debian-l10n-finnish@lists.debian.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-Language: Finnish\n"
"X-Poedit-Country: Finland\n"
#. Type: error
#. Description
#: ../templates:1001
msgid "Data files needed"
msgstr "Datatiedostoja puuttuu"
#. Type: error
#. Description
#: ../templates:1001
msgid "For its operation, OpenTTD needs the data files from the original Transport Tycoon Deluxe game."
msgstr "OpenTTD tarvitsee toimiakseen datatiedostoja alkuperäisestä Transport Tycoon Deluxe -pelistä."
#. Type: error
#. Description
#: ../templates:1001
msgid "See the /usr/share/doc/openttd/README.Debian file for more details about the needed files and their location."
msgstr "Tiedostossa /usr/share/doc/openttd/README.Debian on (englanniksi) lisätietoja tarvittavista tiedostoista ja niiden sijainnista."

View File

@@ -1,42 +0,0 @@
# debian-l10n-french translation of 0.5.1-1.
# Copyright (C) 2007 THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Ivan Buresi <err747@free.fr>, 2007.
#
msgid ""
msgstr ""
"Project-Id-Version: 0.5.1-1\n"
"Report-Msgid-Bugs-To: m.kooijman@student.utwente.nl\n"
"POT-Creation-Date: 2007-05-08 09:39+0200\n"
"PO-Revision-Date: 2007-05-08 11:41+0200\n"
"Last-Translator: Ivan Buresi <err747@free.fr>\n"
"Language-Team: debian-l10n-french <debian-l10n-french@lists.debian.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
#. Type: error
#. Description
#: ../templates:2001
msgid "Data files needed"
msgstr "Fichiers de données indispensables"
#. Type: error
#. Description
#: ../templates:2001
msgid ""
"For its operation, OpenTTD needs the data files from the original Transport "
"Tycoon Deluxe game."
msgstr ""
"Pour fonctionner correctement, OpenTTD a besoin des fichiers de données du "
"jeu « Transport Tycoon Deluxe » original."
#. Type: error
#. Description
#: ../templates:2001
msgid ""
"See the /usr/share/doc/openttd/README.Debian file for more details about the "
"needed files and their location."
msgstr ""
"Veuillez lire le fichier /usr/share/doc/openttd/README.Debian pour plus "
"d'informations sur les fichiers requis et leur emplacement."

View File

@@ -1,41 +0,0 @@
# Galician translation of openttd's debconf templates
# This file is distributed under the same license as the openttd package.
# Jacobo Tarrio <jtarrio@debian.org>, 2007.
#
msgid ""
msgstr ""
"Project-Id-Version: openttd\n"
"Report-Msgid-Bugs-To: m.kooijman@student.utwente.nl\n"
"POT-Creation-Date: 2007-05-08 09:39+0200\n"
"PO-Revision-Date: 2007-05-08 13:12+0200\n"
"Last-Translator: Jacobo Tarrio <jtarrio@debian.org>\n"
"Language-Team: Galician <proxecto@trasno.net>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#. Type: error
#. Description
#: ../templates:2001
msgid "Data files needed"
msgstr "Precísase de ficheiros de datos"
#. Type: error
#. Description
#: ../templates:2001
msgid ""
"For its operation, OpenTTD needs the data files from the original Transport "
"Tycoon Deluxe game."
msgstr ""
"Para o seu funcionamento, OpenTTD precisa dos ficheiros de datos do xogo "
"Transport Tycoon Deluxe orixinal."
#. Type: error
#. Description
#: ../templates:2001
msgid ""
"See the /usr/share/doc/openttd/README.Debian file for more details about the "
"needed files and their location."
msgstr ""
"Consulte o ficheiro /usr/share/doc/openttd/README.Debian para máis "
"información sobre os ficheiros necesarios e as súas ubicacións."

View File

@@ -1,43 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: openttd\n"
"Report-Msgid-Bugs-To: m.kooijman@student.utwente.nl\n"
"POT-Creation-Date: 2007-05-08 09:39+0200\n"
"PO-Revision-Date: 2007-05-16 19:25+0100\n"
"Last-Translator: Bart Cornelis <cobaco@skolelinux.no>\n"
"Language-Team: debian-l10n-dutch <debian-l10n-dutch@lists.debian.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-Language: Dutch\n"
#. Type: error
#. Description
#: ../templates:2001
msgid "Data files needed"
msgstr "Databestanden zijn vereist"
#. Type: error
#. Description
#: ../templates:2001
msgid ""
"For its operation, OpenTTD needs the data files from the original Transport "
"Tycoon Deluxe game."
msgstr ""
"Om te werken heeft OpenTTD de databestanden van het oorspronkelijkee "
"'Transport Tycoon Deluxe'-spel nodig."
#. Type: error
#. Description
#: ../templates:2001
msgid ""
"See the /usr/share/doc/openttd/README.Debian file for more details about the "
"needed files and their location."
msgstr ""
"Meer informatie over de vereiste bestanden en hun locatie vindt u in /usr/"
"share/doc/openttd/README.Debian . "

View File

@@ -1,42 +0,0 @@
# Portuguese translation of openttd's debconf messages.
# Copyright (C) 2007
# This file is distributed under the same license as the openttd package.
# Ricardo Silva <ardoric@gmail.com>, 2007
#
msgid ""
msgstr ""
"Project-Id-Version: openttd\n"
"Report-Msgid-Bugs-To: m.kooijman@student.utwente.nl\n"
"POT-Creation-Date: 2007-05-08 09:39+0200\n"
"PO-Revision-Date: 2007-05-09 09:37+0100\n"
"Last-Translator: Ricardo Silva <ardoric@gmail.com>\n"
"Language-Team: Portuguese <traduz@debianpt.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#. Type: error
#. Description
#: ../templates:2001
msgid "Data files needed"
msgstr "São necessários ficheiros de dados"
#. Type: error
#. Description
#: ../templates:2001
msgid ""
"For its operation, OpenTTD needs the data files from the original Transport "
"Tycoon Deluxe game."
msgstr ""
"Para esta operação o OpenTTD precisa dos ficheiros de dados do jogo original "
"Transport Tycool Deluxe."
#. Type: error
#. Description
#: ../templates:2001
msgid ""
"See the /usr/share/doc/openttd/README.Debian file for more details about the "
"needed files and their location."
msgstr ""
"Veja o ficheiro /usr/share/doc/openttd/README.Debian para mais detalhes "
"sobre os ficheiros que são necessários e a sua localização."

View File

@@ -1,43 +0,0 @@
# openttd Brazilian Portuguese translation
# Copyright (C) 2007, Eder L. Marques
# This file is distributed under the same license as the openttd package.
# Eder L. Marques <frolic@debian-ce.org>, 2007.
#
msgid ""
msgstr ""
"Project-Id-Version: openttd 0.5.0-2\n"
"Report-Msgid-Bugs-To: m.kooijman@student.utwente.nl\n"
"POT-Creation-Date: 2007-05-08 09:39+0200\n"
"PO-Revision-Date: 2007-05-08 11:00-0300\n"
"Last-Translator: Eder L. Marques <frolic@debian-ce.org>\n"
"Language-Team: l10n Portuguese <debian-l10n-portuguese@lists.debian.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"pt_BR utf-8\n"
#. Type: error
#. Description
#: ../templates:2001
msgid "Data files needed"
msgstr "Arquivos de dados necessários"
#. Type: error
#. Description
#: ../templates:2001
msgid ""
"For its operation, OpenTTD needs the data files from the original Transport "
"Tycoon Deluxe game."
msgstr ""
"Para sua operação, o OpenTTD necessita dos arquivos de dados do jogo "
"Transport Tycoon Deluxe original."
#. Type: error
#. Description
#: ../templates:2001
msgid ""
"See the /usr/share/doc/openttd/README.Debian file for more details about the "
"needed files and their location."
msgstr ""
"Veja o arquivo /usr/share/doc/openttd/README.Debian para maiores detalhes "
"sobre os arquivos necessários e suas localizações."

View File

@@ -1,45 +0,0 @@
# translation of openttd_debconf_ru.po to Russian
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Yuri Kozlov <kozlov.y@gmail.com>, 2007.
msgid ""
msgstr ""
"Project-Id-Version: 0.5.1-1\n"
"Report-Msgid-Bugs-To: m.kooijman@student.utwente.nl\n"
"POT-Creation-Date: 2007-05-08 09:39+0200\n"
"PO-Revision-Date: 2007-05-10 21:45+0400\n"
"Last-Translator: Yuri Kozlov <kozlov.y@gmail.com>\n"
"Language-Team: Russian <debian-l10n-russian@lists.debian.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.11.4\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
#. Type: error
#. Description
#: ../templates:2001
msgid "Data files needed"
msgstr "Необходимы файлы данных"
#. Type: error
#. Description
#: ../templates:2001
msgid ""
"For its operation, OpenTTD needs the data files from the original Transport "
"Tycoon Deluxe game."
msgstr ""
"Для работы OpenTTD требуются файлы данных от оригинальной игры Transport "
"Tycoon Deluxe."
#. Type: error
#. Description
#: ../templates:2001
msgid ""
"See the /usr/share/doc/openttd/README.Debian file for more details about the "
"needed files and their location."
msgstr ""
"В файле /usr/share/doc/openttd/README.Debian приведена информация о том, "
"какие файлы нужны и где они лежат."

View File

@@ -1,56 +0,0 @@
# Swedish translation for openttd debconf template.
# Copyright (C) 2007 Free Software Foundation, Inc.
# This file is distributed under the same license as the openttd package.
# Daniel Nylander <po@danielnylander.se>, 2007.
#
msgid ""
msgstr ""
"Project-Id-Version: openttd\n"
"Report-Msgid-Bugs-To: m.kooijman@student.utwente.nl\n"
"POT-Creation-Date: 2007-05-08 09:39+0200\n"
"PO-Revision-Date: 2007-05-08 09:47+0100\n"
"Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
"Language-Team: Swedish <debian-l10n-swedish@lists.debian.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
#. Type: error
#. Description
#: ../templates:2001
msgid "Data files needed"
msgstr "Datafiler behövs"
#. Type: error
#. Description
#: ../templates:2001
msgid ""
"For its operation, OpenTTD needs the data files from the original Transport "
"Tycoon Deluxe game."
msgstr ""
"För att fungera behöva OpenTTD datafilerna från det ursprungliga spelet "
"Transport Tycoon Deluxe."
#. Type: error
#. Description
#: ../templates:2001
msgid ""
"See the /usr/share/doc/openttd/README.Debian file for more details about the "
"needed files and their location."
msgstr ""
"Se filen /usr/share/doc/openttd/README.Debian för mer information om de "
"nödvändiga filera och var de finns någonstans."
#~ msgid "You need to install data files"
#~ msgstr "Du behöver installera datafilerna"
#~ msgid ""
#~ "OpenTTD needs the data files from the original Transport Tycoon Deluxe "
#~ "game to run. You should install these data files before you can play the "
#~ "game. See README.Debian for more details on which files need to be copied "
#~ "where."
#~ msgstr ""
#~ "OpenTTD behöver datafilerna från det ursprungliga spelet Transport Tycoon "
#~ "Deluxe för att kunna köras. Du måste installera dessa datafiler innan du "
#~ "kan spela spelet. Se README.Debian för fler detaljer om vilka filer som "
#~ "behöver kopieras."

View File

@@ -1,43 +0,0 @@
# translation of openttd.po to TAMIL
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Dr.T.Vasudevan <agnihot3@gmail.com>, 2007.
msgid ""
msgstr ""
"Project-Id-Version: openttd\n"
"Report-Msgid-Bugs-To: m.kooijman@student.utwente.nl\n"
"POT-Creation-Date: 2007-05-08 09:39+0200\n"
"PO-Revision-Date: 2007-05-08 15:04+0530\n"
"Last-Translator: Dr.T.Vasudevan <agnihot3@gmail.com>\n"
"Language-Team: TAMIL <ubuntu-l10n-tam@lists.ubuntu.com>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.11.4\n"
#. Type: error
#. Description
#: ../templates:2001
msgid "Data files needed"
msgstr "தேவையான தரவு கோப்புகள்"
#. Type: error
#. Description
#: ../templates:2001
msgid ""
"For its operation, OpenTTD needs the data files from the original Transport "
"Tycoon Deluxe game."
msgstr ""
"இயங்குவதற்கு ஓபன் டிடிடி(OpenTTD) க்கு ட்ரான்ஸ்போர்ட் டைகூன் டீலக்ஸ் விளையாட்டிலிருந்து "
"தரவு கோப்புகள் தேவை."
#. Type: error
#. Description
#: ../templates:2001
msgid ""
"See the /usr/share/doc/openttd/README.Debian file for more details about the "
"needed files and their location."
msgstr ""
"தேவையான கோப்புகள் அவற்றின் இடம் ஆகியவற்றை அறிய /usr/share/doc/openttd/README "
"டெபியன் கோப்பை பார்க்கவும்."

View File

@@ -1,39 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: m.kooijman@student.utwente.nl\n"
"POT-Creation-Date: 2007-05-08 09:39+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
#. Type: error
#. Description
#: ../templates:2001
msgid "Data files needed"
msgstr ""
#. Type: error
#. Description
#: ../templates:2001
msgid ""
"For its operation, OpenTTD needs the data files from the original Transport "
"Tycoon Deluxe game."
msgstr ""
#. Type: error
#. Description
#: ../templates:2001
msgid ""
"See the /usr/share/doc/openttd/README.Debian file for more details about the "
"needed files and their location."
msgstr ""

View File

@@ -1,8 +0,0 @@
#! /bin/sh
set -e
. /usr/share/debconf/confmodule
#DEBHELPER#

View File

@@ -1,88 +1,43 @@
#!/usr/bin/make -f #!/usr/bin/make -f
# -*- makefile -*- # -*- makefile -*-
# Sample debian/rules that uses debhelper. # Makefile to build the openttd debian package.
# GNU copyright 1997 to 1999 by Joey Hess.
# Uncomment this to turn on verbose mode. # Use debhelper default for all targets (but some are overridden below).
#export DH_VERBOSE=1 %:
dh $@
configure: configure-stamp DEB_HOST_GNU_TYPE=$(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
configure-stamp: DEB_BUILD_GNU_TYPE=$(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
dh_testdir ifneq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE))
# Add here commands to configure the package. CROSS= --build $(DEB_BUILD_GNU_TYPE) --host $(DEB_HOST_GNU_TYPE)
endif
touch configure-stamp # 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 --without-iconv
# Do some extra installation
build: configure build-stamp override_dh_auto_install:
build-stamp:
dh_testdir
# Add here commands to compile the package.
./configure --prefix-dir=/usr --binary-dir=games --data-dir=share/games/openttd --icon-dir=share/pixmaps --personal-dir=.openttd --install-dir=debian/openttd
$(MAKE)
#/usr/bin/docbook-to-man debian/openttd.sgml > openttd.1
touch build-stamp
clean:
dh_testdir
dh_testroot
rm -f build-stamp configure-stamp
# Add here commands to clean up after the build process.
# We check for Makefile presence, because clean is called at the
# start of the build process (before configure) where we don't
# have a Makefile yet.
[ ! -f Makefile ] || $(MAKE) mrproper
dh_clean
install: build
dh_testdir
dh_testroot
dh_clean -k
dh_installdirs
# Add here commands to install the package into debian/openttd.
$(MAKE) install $(MAKE) install
# Build architecture-independent files here. # Install the wrapper and make it executable
binary-indep: build install install -d debian/openttd/usr/share/games/openttd/
# We have nothing to do by default. install -m755 debian/openttd-wrapper debian/openttd/usr/share/games/openttd/
# Build architecture-dependent files here. # Since 0.7.0, upstream Makefile installs some unwanted stuff.
binary-arch: build install -rm $(CURDIR)/debian/openttd/usr/share/doc/openttd/COPYING
dh_testdir -rm $(CURDIR)/debian/openttd/usr/share/doc/openttd/changelog.txt
dh_testroot -rm $(CURDIR)/debian/openttd/usr/share/doc/openttd/ob*_format.txt
dh_installchangelogs changelog.txt
dh_installdocs
dh_installexamples
# dh_install
dh_installmenu
dh_installdebconf
# dh_installlogrotate
# dh_installemacsen
# dh_installpam
# dh_installmime
# dh_installinit
# dh_installcron
# dh_installinfo
dh_installman docs/openttd.6
dh_link
dh_strip
dh_compress
dh_fixperms
# dh_perl
# dh_python
# dh_makeshlibs
dh_installdeb
dh_shlibdeps
dh_gencontrol
dh_md5sums
dh_builddeb
binary: binary-indep binary-arch # Don't do testing. Because the OpenTTD Makefile always does dependency
.PHONY: build clean binary-indep binary-arch binary install configure # generation (even on invalid targets), dh_auto_test thinks there is a
# "test" target, while there isn't.
override_dh_auto_test:
# Call mrproper. Again, dh_auto_clean thinks there is a distclean
# target, while there isn't.
override_dh_auto_clean:
[ ! -f Makefile ] || $(MAKE) mrproper

1
os/debian/source/format Normal file
View File

@@ -0,0 +1 @@
3.0 (quilt)

View File

@@ -1,16 +0,0 @@
# These templates have been reviewed by the debian-l10n-english
# team
#
# If modifications/additions/rewording are needed, please ask
# for an advice to debian-l10n-english@lists.debian.org
#
# Even minor modifications require translation updates and such
# changes should be coordinated with translators and reviewers.
Template: openttd/datafiles
Type: error
_Description: Data files needed
For its operation, OpenTTD needs the data files from the original
Transport Tycoon Deluxe game.
.
See the /usr/share/doc/openttd/README.Debian file for more details
about the needed files and their location.

5
os/debian/watch Normal file
View File

@@ -0,0 +1,5 @@
version=3
options=downloadurlmangle=s/(.*)\/index.html$/\1\/openttd-\1-source.tar.gz/ \
http://master.binaries.openttd.org/releases/ \
(\d+(?:\.\d+)*)/index.html

View File

@@ -1,6 +1,6 @@
@echo off @echo off
set OPENTTD_VERSION=1.0.0-beta4 set OPENTTD_VERSION=1.0.2
set OPENSFX_VERSION=0.8.0 set OPENSFX_VERSION=0.8.0
set NOSOUND_VERSION=0.8.0 set NOSOUND_VERSION=0.8.0
set OPENGFX_VERSION=0.7.0 set OPENGFX_VERSION=0.7.0

View File

@@ -1,9 +1,9 @@
# Version numbers to update # Version numbers to update
!define APPV_MAJOR 1 !define APPV_MAJOR 1
!define APPV_MINOR 0 !define APPV_MINOR 0
!define APPV_MAINT 0 !define APPV_MAINT 2
!define APPV_BUILD 3 !define APPV_BUILD 0
!define APPV_EXTRA "-beta4" !define APPV_EXTRA "-RC1"
!define APPNAME "OpenTTD" ; Define application name !define APPNAME "OpenTTD" ; Define application name
!define APPVERSION "${APPV_MAJOR}.${APPV_MINOR}.${APPV_MAINT}${APPV_EXTRA}" ; Define application version !define APPVERSION "${APPV_MAJOR}.${APPV_MINOR}.${APPV_MAINT}${APPV_EXTRA}" ; Define application version
@@ -16,7 +16,7 @@
!define OPENGFX_BASE_VERSION "0.7.0" !define OPENGFX_BASE_VERSION "0.7.0"
!define OPENSFX_BASE_VERSION "0.8.0" !define OPENSFX_BASE_VERSION "0.8.0"
!define NOSOUND_BASE_VERSION "0.8.0" !define OPENMSX_BASE_VERSION "1.0.0"
!define MUI_ICON "..\..\..\media\openttd.ico" !define MUI_ICON "..\..\..\media\openttd.ico"
!define MUI_UNICON "..\..\..\media\openttd.ico" !define MUI_UNICON "..\..\..\media\openttd.ico"
@@ -238,21 +238,21 @@ Done:
SectionEnd SectionEnd
;---------------------------------------------------------------------------------- ;----------------------------------------------------------------------------------
; NoSound files install section. Downloads NoSound and installs it ; OpenMSX files install section. Downloads OpenMSX and installs it
Section "Download NoSound (free sound set)" Section5 Section "Download OpenMSX (free music set)" Section5
SetOverwrite try SetOverwrite try
NSISdl::download "http://binaries.openttd.org/installer/nosound-${NOSOUND_BASE_VERSION}.7z" "$INSTDIR\data\nosound.7z" NSISdl::download "http://binaries.openttd.org/installer/openmsx-${OPENMSX_BASE_VERSION}.7z" "$INSTDIR\gm\openmsx.7z"
Pop $R0 ;Get the return value Pop $R0 ;Get the return value
StrCmp $R0 "success" +3 StrCmp $R0 "success" +3
MessageBox MB_OK "Downloading of NoSound failed" MessageBox MB_OK "Downloading of OpenMSX failed"
Goto Done Goto Done
; Let's extract the files ; Let's extract the files
SetOutPath "$INSTDIR\data\" SetOutPath "$INSTDIR\gm\"
NSIS7z::Extract "$INSTDIR\data\nosound.7z" NSIS7z::Extract "$INSTDIR\gm\openmsx.7z"
Delete "$INSTDIR\data\nosound.7z" Delete "$INSTDIR\gm\openmsx.7z"
SetOutPath "$INSTDIR\" SetOutPath "$INSTDIR\"
Done: Done:
@@ -294,8 +294,8 @@ SectionEnd
!insertmacro MUI_DESCRIPTION_TEXT ${Section6} "Translations of OpenTTD." !insertmacro MUI_DESCRIPTION_TEXT ${Section6} "Translations of OpenTTD."
!insertmacro MUI_DESCRIPTION_TEXT ${Section3} "Download the free OpenGFX game graphics set. This download is about 3 MiB." !insertmacro MUI_DESCRIPTION_TEXT ${Section3} "Download the free OpenGFX game graphics set. This download is about 3 MiB."
!insertmacro MUI_DESCRIPTION_TEXT ${Section4} "Download the free OpenSFX game sound set. This download is about 10 MiB." !insertmacro MUI_DESCRIPTION_TEXT ${Section4} "Download the free OpenSFX game sound set. This download is about 10 MiB."
!insertmacro MUI_DESCRIPTION_TEXT ${Section5} "Download the free NoSound game sound set. You will not hear anything with this. This download is about 7 KiB." !insertmacro MUI_DESCRIPTION_TEXT ${Section5} "Download the free OpenMSX game music set. This download is about 200 KiB."
!insertmacro MUI_DESCRIPTION_TEXT ${Section2} "Copies the game graphics and sounds from the Transport Tycoon Deluxe CD." !insertmacro MUI_DESCRIPTION_TEXT ${Section2} "Copies the game graphics, sounds and music from the Transport Tycoon Deluxe CD."
!insertmacro MUI_FUNCTION_DESCRIPTION_END !insertmacro MUI_FUNCTION_DESCRIPTION_END
;----------------------------------------------- ;-----------------------------------------------
@@ -377,6 +377,7 @@ Section "Uninstall"
Delete "$INSTDIR\data\orig_dos_de.obg" Delete "$INSTDIR\data\orig_dos_de.obg"
Delete "$INSTDIR\data\orig_win.obs" Delete "$INSTDIR\data\orig_win.obs"
Delete "$INSTDIR\data\orig_dos.obs" Delete "$INSTDIR\data\orig_dos.obs"
Delete "$INSTDIR\data\no_sound.obs"
Delete "$INSTDIR\data\sample.cat" Delete "$INSTDIR\data\sample.cat"
; Windows Data files ; Windows Data files
@@ -395,13 +396,13 @@ Section "Uninstall"
; Music ; Music
Delete "$INSTDIR\gm\*.gm" Delete "$INSTDIR\gm\*.gm"
; Downloaded OpenGFX/OpenSFX/NoSound ; Downloaded OpenGFX/OpenSFX/OpenMSX
Delete "$INSTDIR\data\opengfx\*" Delete "$INSTDIR\data\opengfx\*"
RMDir "$INSTDIR\data\opengfx" RMDir "$INSTDIR\data\opengfx"
Delete "$INSTDIR\data\opensfx\*" Delete "$INSTDIR\data\opensfx\*"
RMDir "$INSTDIR\data\opensfx" RMDir "$INSTDIR\data\opensfx"
Delete "$INSTDIR\data\nosound\*" Delete "$INSTDIR\gm\openmsx\*"
RMDir "$INSTDIR\data\nosound" RMDir "$INSTDIR\gm\openmsx"
; Language files ; Language files
Delete "$INSTDIR\lang\*.lng" Delete "$INSTDIR\lang\*.lng"
@@ -549,7 +550,7 @@ Function .onInit
SectionSetSize ${Section3} 6144 SectionSetSize ${Section3} 6144
SectionSetSize ${Section4} 13312 SectionSetSize ${Section4} 13312
SectionSetSize ${Section5} 30 SectionSetSize ${Section5} 1024
SectionSetFlags 0 17 SectionSetFlags 0 17

View File

@@ -39,6 +39,7 @@ Sub UpdateFiles(version)
modified = Mid(version, InStrRev(version, Chr(9)) + 1) modified = Mid(version, InStrRev(version, Chr(9)) + 1)
version = Mid(version, 1, InStr(version, Chr(9)) - 1) version = Mid(version, 1, InStr(version, Chr(9)) - 1)
Else Else
version = "1.0.2"
revision = 0 revision = 0
modified = 1 modified = 1
End If End If

View File

@@ -161,8 +161,8 @@ load_lang_data() {
<Tool <Tool
Name=\"VCCustomBuildTool\" Name=\"VCCustomBuildTool\"
Description=\"Generating "$i" language file\" Description=\"Generating "$i" language file\"
CommandLine=\"..\\objs\\strgen\\strgen.exe -s ..\\src\\lang -d ..\\bin\\lang &quot;\$(InputPath)&quot;&#x0D;&#x0A;exit 0\" 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\" AdditionalDependencies=\"..\\src\\lang\\english.txt;..\\objs\\strgen\\strgen.exe\"
Outputs=\"..\\bin\\lang\\"$i".lng\" Outputs=\"..\\bin\\lang\\"$i".lng\"
/> />
</FileConfiguration> </FileConfiguration>

View File

@@ -210,8 +210,8 @@ Function load_lang_data(dir)
& vbCrLf & " <Tool" _ & vbCrLf & " <Tool" _
& vbCrLf & " Name=" & Chr(34) & "VCCustomBuildTool" & Chr(34) _ & vbCrLf & " Name=" & Chr(34) & "VCCustomBuildTool" & Chr(34) _
& vbCrLf & " Description=" & Chr(34) & "Generating " & file & " language file" & Chr(34) _ & vbCrLf & " Description=" & Chr(34) & "Generating " & file & " language file" & Chr(34) _
& vbCrLf & " CommandLine=" & Chr(34) & "..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" & Chr(34) _ & vbCrLf & " CommandLine=" & Chr(34) & "..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0&#x0D;&#x0A;" & Chr(34) _
& vbCrLf & " AdditionalDependencies=" & Chr(34) & "..\src\lang\english.txt" & Chr(34) _ & vbCrLf & " AdditionalDependencies=" & Chr(34) & "..\src\lang\english.txt;..\objs\strgen\strgen.exe" & Chr(34) _
& vbCrLf & " Outputs=" & Chr(34) & "..\bin\lang\" & file & ".lng" & Chr(34) _ & vbCrLf & " Outputs=" & Chr(34) & "..\bin\lang\" & file & ".lng" & Chr(34) _
& vbCrLf & " />" _ & vbCrLf & " />" _
& vbCrLf & " </FileConfiguration>" _ & vbCrLf & " </FileConfiguration>" _

View File

@@ -55,8 +55,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating afrikaans language file" Description="Generating afrikaans language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\afrikaans.lng" Outputs="..\bin\lang\afrikaans.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -70,8 +70,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating arabic_egypt language file" Description="Generating arabic_egypt language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\arabic_egypt.lng" Outputs="..\bin\lang\arabic_egypt.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -85,8 +85,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating brazilian_portuguese language file" Description="Generating brazilian_portuguese language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\brazilian_portuguese.lng" Outputs="..\bin\lang\brazilian_portuguese.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -100,8 +100,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating bulgarian language file" Description="Generating bulgarian language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\bulgarian.lng" Outputs="..\bin\lang\bulgarian.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -115,8 +115,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating catalan language file" Description="Generating catalan language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\catalan.lng" Outputs="..\bin\lang\catalan.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -130,8 +130,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating croatian language file" Description="Generating croatian language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\croatian.lng" Outputs="..\bin\lang\croatian.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -145,8 +145,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating czech language file" Description="Generating czech language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\czech.lng" Outputs="..\bin\lang\czech.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -160,8 +160,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating danish language file" Description="Generating danish language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\danish.lng" Outputs="..\bin\lang\danish.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -175,8 +175,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating dutch language file" Description="Generating dutch language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\dutch.lng" Outputs="..\bin\lang\dutch.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -190,8 +190,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating english language file" Description="Generating english language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\english.lng" Outputs="..\bin\lang\english.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -205,8 +205,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating english_US language file" Description="Generating english_US language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\english_US.lng" Outputs="..\bin\lang\english_US.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -220,8 +220,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating esperanto language file" Description="Generating esperanto language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\esperanto.lng" Outputs="..\bin\lang\esperanto.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -235,8 +235,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating estonian language file" Description="Generating estonian language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\estonian.lng" Outputs="..\bin\lang\estonian.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -250,8 +250,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating finnish language file" Description="Generating finnish language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\finnish.lng" Outputs="..\bin\lang\finnish.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -265,8 +265,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating french language file" Description="Generating french language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\french.lng" Outputs="..\bin\lang\french.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -280,8 +280,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating galician language file" Description="Generating galician language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\galician.lng" Outputs="..\bin\lang\galician.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -295,8 +295,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating german language file" Description="Generating german language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\german.lng" Outputs="..\bin\lang\german.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -310,8 +310,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating greek language file" Description="Generating greek language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\greek.lng" Outputs="..\bin\lang\greek.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -325,8 +325,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating hebrew language file" Description="Generating hebrew language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\hebrew.lng" Outputs="..\bin\lang\hebrew.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -340,8 +340,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating hungarian language file" Description="Generating hungarian language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\hungarian.lng" Outputs="..\bin\lang\hungarian.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -355,8 +355,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating icelandic language file" Description="Generating icelandic language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\icelandic.lng" Outputs="..\bin\lang\icelandic.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -370,8 +370,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating indonesian language file" Description="Generating indonesian language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\indonesian.lng" Outputs="..\bin\lang\indonesian.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -385,8 +385,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating italian language file" Description="Generating italian language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\italian.lng" Outputs="..\bin\lang\italian.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -400,8 +400,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating japanese language file" Description="Generating japanese language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\japanese.lng" Outputs="..\bin\lang\japanese.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -415,8 +415,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating korean language file" Description="Generating korean language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\korean.lng" Outputs="..\bin\lang\korean.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -430,8 +430,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating latvian language file" Description="Generating latvian language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\latvian.lng" Outputs="..\bin\lang\latvian.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -445,8 +445,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating lithuanian language file" Description="Generating lithuanian language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\lithuanian.lng" Outputs="..\bin\lang\lithuanian.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -460,8 +460,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating luxembourgish language file" Description="Generating luxembourgish language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\luxembourgish.lng" Outputs="..\bin\lang\luxembourgish.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -475,8 +475,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating malay language file" Description="Generating malay language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\malay.lng" Outputs="..\bin\lang\malay.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -490,8 +490,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating norwegian_bokmal language file" Description="Generating norwegian_bokmal language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\norwegian_bokmal.lng" Outputs="..\bin\lang\norwegian_bokmal.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -505,8 +505,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating norwegian_nynorsk language file" Description="Generating norwegian_nynorsk language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\norwegian_nynorsk.lng" Outputs="..\bin\lang\norwegian_nynorsk.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -520,8 +520,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating polish language file" Description="Generating polish language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\polish.lng" Outputs="..\bin\lang\polish.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -535,8 +535,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating portuguese language file" Description="Generating portuguese language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\portuguese.lng" Outputs="..\bin\lang\portuguese.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -550,8 +550,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating romanian language file" Description="Generating romanian language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\romanian.lng" Outputs="..\bin\lang\romanian.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -565,8 +565,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating russian language file" Description="Generating russian language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\russian.lng" Outputs="..\bin\lang\russian.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -580,8 +580,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating serbian language file" Description="Generating serbian language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\serbian.lng" Outputs="..\bin\lang\serbian.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -595,8 +595,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating simplified_chinese language file" Description="Generating simplified_chinese language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\simplified_chinese.lng" Outputs="..\bin\lang\simplified_chinese.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -610,8 +610,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating slovak language file" Description="Generating slovak language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\slovak.lng" Outputs="..\bin\lang\slovak.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -625,8 +625,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating slovenian language file" Description="Generating slovenian language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\slovenian.lng" Outputs="..\bin\lang\slovenian.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -640,8 +640,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating spanish language file" Description="Generating spanish language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\spanish.lng" Outputs="..\bin\lang\spanish.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -655,8 +655,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating swedish language file" Description="Generating swedish language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\swedish.lng" Outputs="..\bin\lang\swedish.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -670,8 +670,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating traditional_chinese language file" Description="Generating traditional_chinese language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\traditional_chinese.lng" Outputs="..\bin\lang\traditional_chinese.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -685,8 +685,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating turkish language file" Description="Generating turkish language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\turkish.lng" Outputs="..\bin\lang\turkish.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -700,8 +700,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating ukrainian language file" Description="Generating ukrainian language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\ukrainian.lng" Outputs="..\bin\lang\ukrainian.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -715,8 +715,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating vietnamese language file" Description="Generating vietnamese language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\vietnamese.lng" Outputs="..\bin\lang\vietnamese.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -730,8 +730,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating welsh language file" Description="Generating welsh language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\welsh.lng" Outputs="..\bin\lang\welsh.lng"
/> />
</FileConfiguration> </FileConfiguration>

View File

@@ -56,8 +56,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating afrikaans language file" Description="Generating afrikaans language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\afrikaans.lng" Outputs="..\bin\lang\afrikaans.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -71,8 +71,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating arabic_egypt language file" Description="Generating arabic_egypt language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\arabic_egypt.lng" Outputs="..\bin\lang\arabic_egypt.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -86,8 +86,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating brazilian_portuguese language file" Description="Generating brazilian_portuguese language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\brazilian_portuguese.lng" Outputs="..\bin\lang\brazilian_portuguese.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -101,8 +101,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating bulgarian language file" Description="Generating bulgarian language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\bulgarian.lng" Outputs="..\bin\lang\bulgarian.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -116,8 +116,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating catalan language file" Description="Generating catalan language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\catalan.lng" Outputs="..\bin\lang\catalan.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -131,8 +131,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating croatian language file" Description="Generating croatian language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\croatian.lng" Outputs="..\bin\lang\croatian.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -146,8 +146,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating czech language file" Description="Generating czech language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\czech.lng" Outputs="..\bin\lang\czech.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -161,8 +161,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating danish language file" Description="Generating danish language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\danish.lng" Outputs="..\bin\lang\danish.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -176,8 +176,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating dutch language file" Description="Generating dutch language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\dutch.lng" Outputs="..\bin\lang\dutch.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -191,8 +191,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating english language file" Description="Generating english language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\english.lng" Outputs="..\bin\lang\english.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -206,8 +206,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating english_US language file" Description="Generating english_US language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\english_US.lng" Outputs="..\bin\lang\english_US.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -221,8 +221,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating esperanto language file" Description="Generating esperanto language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\esperanto.lng" Outputs="..\bin\lang\esperanto.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -236,8 +236,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating estonian language file" Description="Generating estonian language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\estonian.lng" Outputs="..\bin\lang\estonian.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -251,8 +251,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating finnish language file" Description="Generating finnish language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\finnish.lng" Outputs="..\bin\lang\finnish.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -266,8 +266,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating french language file" Description="Generating french language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\french.lng" Outputs="..\bin\lang\french.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -281,8 +281,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating galician language file" Description="Generating galician language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\galician.lng" Outputs="..\bin\lang\galician.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -296,8 +296,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating german language file" Description="Generating german language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\german.lng" Outputs="..\bin\lang\german.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -311,8 +311,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating greek language file" Description="Generating greek language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\greek.lng" Outputs="..\bin\lang\greek.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -326,8 +326,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating hebrew language file" Description="Generating hebrew language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\hebrew.lng" Outputs="..\bin\lang\hebrew.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -341,8 +341,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating hungarian language file" Description="Generating hungarian language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\hungarian.lng" Outputs="..\bin\lang\hungarian.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -356,8 +356,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating icelandic language file" Description="Generating icelandic language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\icelandic.lng" Outputs="..\bin\lang\icelandic.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -371,8 +371,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating indonesian language file" Description="Generating indonesian language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\indonesian.lng" Outputs="..\bin\lang\indonesian.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -386,8 +386,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating italian language file" Description="Generating italian language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\italian.lng" Outputs="..\bin\lang\italian.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -401,8 +401,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating japanese language file" Description="Generating japanese language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\japanese.lng" Outputs="..\bin\lang\japanese.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -416,8 +416,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating korean language file" Description="Generating korean language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\korean.lng" Outputs="..\bin\lang\korean.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -431,8 +431,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating latvian language file" Description="Generating latvian language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\latvian.lng" Outputs="..\bin\lang\latvian.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -446,8 +446,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating lithuanian language file" Description="Generating lithuanian language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\lithuanian.lng" Outputs="..\bin\lang\lithuanian.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -461,8 +461,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating luxembourgish language file" Description="Generating luxembourgish language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\luxembourgish.lng" Outputs="..\bin\lang\luxembourgish.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -476,8 +476,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating malay language file" Description="Generating malay language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\malay.lng" Outputs="..\bin\lang\malay.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -491,8 +491,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating norwegian_bokmal language file" Description="Generating norwegian_bokmal language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\norwegian_bokmal.lng" Outputs="..\bin\lang\norwegian_bokmal.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -506,8 +506,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating norwegian_nynorsk language file" Description="Generating norwegian_nynorsk language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\norwegian_nynorsk.lng" Outputs="..\bin\lang\norwegian_nynorsk.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -521,8 +521,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating polish language file" Description="Generating polish language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\polish.lng" Outputs="..\bin\lang\polish.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -536,8 +536,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating portuguese language file" Description="Generating portuguese language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\portuguese.lng" Outputs="..\bin\lang\portuguese.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -551,8 +551,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating romanian language file" Description="Generating romanian language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\romanian.lng" Outputs="..\bin\lang\romanian.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -566,8 +566,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating russian language file" Description="Generating russian language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\russian.lng" Outputs="..\bin\lang\russian.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -581,8 +581,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating serbian language file" Description="Generating serbian language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\serbian.lng" Outputs="..\bin\lang\serbian.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -596,8 +596,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating simplified_chinese language file" Description="Generating simplified_chinese language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\simplified_chinese.lng" Outputs="..\bin\lang\simplified_chinese.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -611,8 +611,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating slovak language file" Description="Generating slovak language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\slovak.lng" Outputs="..\bin\lang\slovak.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -626,8 +626,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating slovenian language file" Description="Generating slovenian language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\slovenian.lng" Outputs="..\bin\lang\slovenian.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -641,8 +641,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating spanish language file" Description="Generating spanish language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\spanish.lng" Outputs="..\bin\lang\spanish.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -656,8 +656,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating swedish language file" Description="Generating swedish language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\swedish.lng" Outputs="..\bin\lang\swedish.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -671,8 +671,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating traditional_chinese language file" Description="Generating traditional_chinese language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\traditional_chinese.lng" Outputs="..\bin\lang\traditional_chinese.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -686,8 +686,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating turkish language file" Description="Generating turkish language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\turkish.lng" Outputs="..\bin\lang\turkish.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -701,8 +701,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating ukrainian language file" Description="Generating ukrainian language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\ukrainian.lng" Outputs="..\bin\lang\ukrainian.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -716,8 +716,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating vietnamese language file" Description="Generating vietnamese language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\vietnamese.lng" Outputs="..\bin\lang\vietnamese.lng"
/> />
</FileConfiguration> </FileConfiguration>
@@ -731,8 +731,8 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Generating welsh language file" Description="Generating welsh language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0" 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" AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\welsh.lng" Outputs="..\bin\lang\welsh.lng"
/> />
</FileConfiguration> </FileConfiguration>

View File

@@ -60,7 +60,7 @@
FavorSizeOrSpeed="2" FavorSizeOrSpeed="2"
OmitFramePointers="true" OmitFramePointers="true"
AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include" AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_LZO;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;ENABLE_AI;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;;WITH_ASSERT" PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_LZO;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;ENABLE_AI;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;"
StringPooling="true" StringPooling="true"
ExceptionHandling="1" ExceptionHandling="1"
RuntimeLibrary="0" RuntimeLibrary="0"
@@ -273,7 +273,7 @@
FavorSizeOrSpeed="2" FavorSizeOrSpeed="2"
OmitFramePointers="true" OmitFramePointers="true"
AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include" AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_LZO;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;ENABLE_AI;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;;_SQ64;WITH_ASSERT" PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_LZO;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;ENABLE_AI;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;;_SQ64"
StringPooling="true" StringPooling="true"
ExceptionHandling="1" ExceptionHandling="1"
RuntimeLibrary="0" RuntimeLibrary="0"

View File

@@ -60,7 +60,7 @@
FavorSizeOrSpeed="2" FavorSizeOrSpeed="2"
OmitFramePointers="true" OmitFramePointers="true"
AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include" AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_LZO;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;ENABLE_AI;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;;WITH_ASSERT" PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_LZO;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;ENABLE_AI;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;"
StringPooling="true" StringPooling="true"
ExceptionHandling="1" ExceptionHandling="1"
RuntimeLibrary="0" RuntimeLibrary="0"
@@ -273,7 +273,7 @@
FavorSizeOrSpeed="2" FavorSizeOrSpeed="2"
OmitFramePointers="true" OmitFramePointers="true"
AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include" AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_LZO;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;ENABLE_AI;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;;_SQ64;WITH_ASSERT" PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_LZO;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;ENABLE_AI;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;;_SQ64"
StringPooling="true" StringPooling="true"
ExceptionHandling="1" ExceptionHandling="1"
RuntimeLibrary="0" RuntimeLibrary="0"

View File

@@ -61,7 +61,7 @@
FavorSizeOrSpeed="2" FavorSizeOrSpeed="2"
OmitFramePointers="true" OmitFramePointers="true"
AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include" AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_LZO;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;ENABLE_AI;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;;WITH_ASSERT" PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_LZO;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;ENABLE_AI;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;"
StringPooling="true" StringPooling="true"
ExceptionHandling="1" ExceptionHandling="1"
RuntimeLibrary="0" RuntimeLibrary="0"
@@ -271,7 +271,7 @@
FavorSizeOrSpeed="2" FavorSizeOrSpeed="2"
OmitFramePointers="true" OmitFramePointers="true"
AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include" AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_LZO;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;ENABLE_AI;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;;_SQ64;WITH_ASSERT" PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_LZO;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;ENABLE_AI;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;;_SQ64"
StringPooling="true" StringPooling="true"
ExceptionHandling="1" ExceptionHandling="1"
RuntimeLibrary="0" RuntimeLibrary="0"

View File

@@ -61,7 +61,7 @@
FavorSizeOrSpeed="2" FavorSizeOrSpeed="2"
OmitFramePointers="true" OmitFramePointers="true"
AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include" AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_LZO;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;ENABLE_AI;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;;WITH_ASSERT" PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_LZO;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;ENABLE_AI;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;"
StringPooling="true" StringPooling="true"
ExceptionHandling="1" ExceptionHandling="1"
RuntimeLibrary="0" RuntimeLibrary="0"
@@ -271,7 +271,7 @@
FavorSizeOrSpeed="2" FavorSizeOrSpeed="2"
OmitFramePointers="true" OmitFramePointers="true"
AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include" AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_LZO;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;ENABLE_AI;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;;_SQ64;WITH_ASSERT" PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_LZO;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;ENABLE_AI;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;;_SQ64"
StringPooling="true" StringPooling="true"
ExceptionHandling="1" ExceptionHandling="1"
RuntimeLibrary="0" RuntimeLibrary="0"

View File

@@ -1,6 +1,6 @@
OpenTTD README OpenTTD README
Last updated: 2010-02-04 Last updated: 2010-06-19
Release version: 1.0.0-beta4 Release version: 1.0.2
------------------------------------------------------------------------ ------------------------------------------------------------------------
@@ -202,10 +202,11 @@ when using other versions of the game.
4.1.1) Free graphics and sound files 4.1.1) Free graphics and sound files
------ ----------------------------- ------ -----------------------------
The free data files, split into OpenGFX for graphics and OpenSFX for sounds The free data files, split into OpenGFX for graphics, OpenSFX for sounds and
can be found at: OpenMSX for music can be found at:
- http://bundles.openttdcoop.org/opengfx/releases/ for OpenGFX - http://bundles.openttdcoop.org/opengfx/releases/ for OpenGFX
- http://bundles.openttdcoop.org/opensfx/releases/ for OpenSFX - http://bundles.openttdcoop.org/opensfx/releases/ for OpenSFX
- http://bundles.openttdcoop.org/openmsx/releases/ for OpenMSX
Please follow the readme of these packages about the installation procedure. Please follow the readme of these packages about the installation procedure.
The Windows installer can optionally download and install these packages. The Windows installer can optionally download and install these packages.
@@ -508,8 +509,12 @@ debugging messages. This is mostly undocumented so best is to look in the
source code file debug.c for the various debugging types. For more information source code file debug.c for the various debugging types. For more information
look at http://wiki.openttd.org/index.php/Command_line. look at http://wiki.openttd.org/index.php/Command_line.
The most frequent problem is missing data files. Don't forget to put all GRF The most frequent problem is missing data files. Please install OpenGFX and
files from TTD into your data/ folder including sample.cat! possibly OpenSFX and OpenMSX. See section 4.1.1 for more information.
Under, especially, Ubuntu OpenTTD can be extremely slow and freeze/hand under
certain circumstance. See known-bugs.txt for more information and how to
solve this problem on your computer.
Under Windows 98 and lower it is impossible to use a dedicated server; it will Under Windows 98 and lower it is impossible to use a dedicated server; it will
fail to start. Perhaps this is for the better because those OSes are not known fail to start. Perhaps this is for the better because those OSes are not known

View File

@@ -2,6 +2,7 @@
#include <squirrel.h> #include <squirrel.h>
#include <sqstdaux.h> #include <sqstdaux.h>
#include <assert.h> #include <assert.h>
#include <string.h>
void sqstd_printcallstack(HSQUIRRELVM v) void sqstd_printcallstack(HSQUIRRELVM v)
{ {
@@ -21,7 +22,19 @@ void sqstd_printcallstack(HSQUIRRELVM v)
const SQChar *fn=_SC("unknown"); const SQChar *fn=_SC("unknown");
const SQChar *src=_SC("unknown"); const SQChar *src=_SC("unknown");
if(si.funcname)fn=si.funcname; if(si.funcname)fn=si.funcname;
if(si.source)src=si.source; if(si.source) {
/* We don't want to bother users with absolute paths to all AI files.
* Since the path only reaches NoAI code in a formatted string we have
* to strip it here. Let's hope nobody installs openttd in a subdirectory
* of a directory named /ai/. */
src = scstrstr(si.source, _SC("\\ai\\"));
if (!src) src = scstrstr(si.source, _SC("/ai/"));
if (src) {
src += 4;
} else {
src = si.source;
}
}
pf(v,_SC("*FUNCTION [%s()] %s line [%d]\n"),fn,src,si.line); pf(v,_SC("*FUNCTION [%s()] %s line [%d]\n"),fn,src,si.line);
level++; level++;
} }

View File

@@ -93,13 +93,13 @@ const AIConfigItemList *AIConfig::GetConfigList()
return this->config_list; return this->config_list;
} }
AIConfig *AIConfig::GetConfig(CompanyID company, bool forceNewgameSetting) AIConfig *AIConfig::GetConfig(CompanyID company, AISettingSource source)
{ {
AIConfig **config; AIConfig **config;
if (!forceNewgameSetting) { if (source == AISS_FORCE_NEWGAME || (source == AISS_DEFAULT && _game_mode == GM_MENU)) {
config = (_game_mode == GM_MENU) ? &_settings_newgame.ai_config[company] : &_settings_game.ai_config[company];
} else {
config = &_settings_newgame.ai_config[company]; config = &_settings_newgame.ai_config[company];
} else {
config = &_settings_game.ai_config[company];
} }
if (*config == NULL) *config = new AIConfig(); if (*config == NULL) *config = new AIConfig();
return *config; return *config;

View File

@@ -61,10 +61,18 @@ public:
*/ */
const AIConfigItemList *GetConfigList(); const AIConfigItemList *GetConfigList();
/* Where to get the config from, either default (depends on current game
* mode) or force either newgame or normal */
enum AISettingSource {
AISS_DEFAULT, ///< Get the AI config from the current game mode
AISS_FORCE_NEWGAME, ///< Get the newgame AI config
AISS_FORCE_GAME, ///< Get the AI config from the current game
};
/** /**
* Get the config of a company. * Get the config of a company.
*/ */
static AIConfig *GetConfig(CompanyID company, bool forceNewgameSetting = false); static AIConfig *GetConfig(CompanyID company, AISettingSource source = AISS_DEFAULT);
/** /**
* Get the value of a setting for this config. It might fallback to his * Get the value of a setting for this config. It might fallback to his

View File

@@ -1016,3 +1016,26 @@ void ShowAIDebugWindow(CompanyID show_company)
ShowErrorMessage(STR_ERROR_AI_DEBUG_SERVER_ONLY, INVALID_STRING_ID, 0, 0); ShowErrorMessage(STR_ERROR_AI_DEBUG_SERVER_ONLY, INVALID_STRING_ID, 0, 0);
} }
} }
/**
* Reset the AI windows to their initial state.
*/
void InitializeAIGui()
{
AIDebugWindow::ai_debug_company = INVALID_COMPANY;
}
/** Open the AI debug window if one of the AI scripts has crashed. */
void ShowAIDebugWindowIfAIError()
{
/* Network clients can't debug AIs. */
if (_networking && !_network_server) return;
Company *c;
FOR_ALL_COMPANIES(c) {
if (c->is_ai && c->ai_instance->IsDead()) {
ShowAIDebugWindow(c->index);
break;
}
}
}

View File

@@ -17,7 +17,10 @@
#ifdef ENABLE_AI #ifdef ENABLE_AI
void ShowAIDebugWindow(CompanyID show_company = INVALID_COMPANY); void ShowAIDebugWindow(CompanyID show_company = INVALID_COMPANY);
void ShowAIConfigWindow(); void ShowAIConfigWindow();
void ShowAIDebugWindowIfAIError();
void InitializeAIGui();
#else #else
#include "../gui.h"
#include "table/strings.h" #include "table/strings.h"
static inline void ShowAIConfigWindow() static inline void ShowAIConfigWindow()
@@ -25,6 +28,8 @@ static inline void ShowAIConfigWindow()
ShowErrorMessage(STR_ERROR_NO_AI, STR_ERROR_NO_AI_SUB, 0, 0); ShowErrorMessage(STR_ERROR_NO_AI, STR_ERROR_NO_AI_SUB, 0, 0);
} }
static inline void ShowAIDebugWindow(CompanyID show_company = INVALID_COMPANY) {ShowAIConfigWindow();} static inline void ShowAIDebugWindow(CompanyID show_company = INVALID_COMPANY) {ShowAIConfigWindow();}
static inline void ShowAIDebugWindowIfAIError() {}
static inline void InitializeAIGui() {}
#endif /* ENABLE_AI */ #endif /* ENABLE_AI */
#endif /* AI_GUI_HPP */ #endif /* AI_GUI_HPP */

View File

@@ -437,8 +437,8 @@ int32 AIAbstractList::Begin()
int32 AIAbstractList::Next() int32 AIAbstractList::Next()
{ {
if (this->initialized == false) { if (this->initialized == false) {
DEBUG(ai, 0, "ERROR: Next() is invalid as Begin() is never called"); DEBUG(ai, 0, "Next() is invalid as Begin() is never called");
return false; return 0;
} }
return this->sorter->Next(); return this->sorter->Next();
} }
@@ -451,7 +451,7 @@ bool AIAbstractList::IsEmpty()
bool AIAbstractList::HasNext() bool AIAbstractList::HasNext()
{ {
if (this->initialized == false) { if (this->initialized == false) {
DEBUG(ai, 0, "ERROR: HasNext() is invalid as Begin() is never called"); DEBUG(ai, 0, "HasNext() is invalid as Begin() is never called");
return false; return false;
} }
return this->sorter->HasNext(); return this->sorter->HasNext();
@@ -517,6 +517,7 @@ void AIAbstractList::Sort(SorterType sorter, bool ascending)
} }
this->sorter_type = sorter; this->sorter_type = sorter;
this->sort_ascending = ascending; this->sort_ascending = ascending;
this->initialized = false;
} }
void AIAbstractList::AddList(AIAbstractList *list) void AIAbstractList::AddList(AIAbstractList *list)
@@ -534,12 +535,7 @@ void AIAbstractList::RemoveAboveValue(int32 value)
for (AIAbstractListMap::iterator next_iter, iter = this->items.begin(); iter != this->items.end(); iter = next_iter) { for (AIAbstractListMap::iterator next_iter, iter = this->items.begin(); iter != this->items.end(); iter = next_iter) {
next_iter = iter; next_iter++; next_iter = iter; next_iter++;
if ((*iter).second > value) this->items.erase(iter); if ((*iter).second > value) this->RemoveItem((*iter).first);
}
for (AIAbstractListBucket::iterator next_iter, iter = this->buckets.begin(); iter != this->buckets.end(); iter = next_iter) {
next_iter = iter; next_iter++;
if ((*iter).first > value) this->buckets.erase(iter);
} }
} }
@@ -549,12 +545,7 @@ void AIAbstractList::RemoveBelowValue(int32 value)
for (AIAbstractListMap::iterator next_iter, iter = this->items.begin(); iter != this->items.end(); iter = next_iter) { for (AIAbstractListMap::iterator next_iter, iter = this->items.begin(); iter != this->items.end(); iter = next_iter) {
next_iter = iter; next_iter++; next_iter = iter; next_iter++;
if ((*iter).second < value) this->items.erase(iter); if ((*iter).second < value) this->RemoveItem((*iter).first);
}
for (AIAbstractListBucket::iterator next_iter, iter = this->buckets.begin(); iter != this->buckets.end(); iter = next_iter) {
next_iter = iter; next_iter++;
if ((*iter).first < value) this->buckets.erase(iter);
} }
} }
@@ -564,12 +555,7 @@ void AIAbstractList::RemoveBetweenValue(int32 start, int32 end)
for (AIAbstractListMap::iterator next_iter, iter = this->items.begin(); iter != this->items.end(); iter = next_iter) { for (AIAbstractListMap::iterator next_iter, iter = this->items.begin(); iter != this->items.end(); iter = next_iter) {
next_iter = iter; next_iter++; next_iter = iter; next_iter++;
if ((*iter).second > start && (*iter).second < end) this->items.erase(iter); if ((*iter).second > start && (*iter).second < end) this->RemoveItem((*iter).first);
}
for (AIAbstractListBucket::iterator next_iter, iter = this->buckets.begin(); iter != this->buckets.end(); iter = next_iter) {
next_iter = iter; next_iter++;
if ((*iter).first > start && (*iter).first < end) this->buckets.erase(iter);
} }
} }
@@ -579,12 +565,7 @@ void AIAbstractList::RemoveValue(int32 value)
for (AIAbstractListMap::iterator next_iter, iter = this->items.begin(); iter != this->items.end(); iter = next_iter) { for (AIAbstractListMap::iterator next_iter, iter = this->items.begin(); iter != this->items.end(); iter = next_iter) {
next_iter = iter; next_iter++; next_iter = iter; next_iter++;
if ((*iter).second == value) this->items.erase(iter); if ((*iter).second == value) this->RemoveItem((*iter).first);
}
for (AIAbstractListBucket::iterator next_iter, iter = this->buckets.begin(); iter != this->buckets.end(); iter = next_iter) {
next_iter = iter; next_iter++;
if ((*iter).first == value) this->buckets.erase(iter);
} }
} }
@@ -677,12 +658,7 @@ void AIAbstractList::KeepAboveValue(int32 value)
for (AIAbstractListMap::iterator next_iter, iter = this->items.begin(); iter != this->items.end(); iter = next_iter) { for (AIAbstractListMap::iterator next_iter, iter = this->items.begin(); iter != this->items.end(); iter = next_iter) {
next_iter = iter; next_iter++; next_iter = iter; next_iter++;
if ((*iter).second <= value) this->items.erase(iter); if ((*iter).second <= value) this->RemoveItem((*iter).first);
}
for (AIAbstractListBucket::iterator next_iter, iter = this->buckets.begin(); iter != this->buckets.end(); iter = next_iter) {
next_iter = iter; next_iter++;
if ((*iter).first <= value) this->buckets.erase(iter);
} }
} }
@@ -692,12 +668,7 @@ void AIAbstractList::KeepBelowValue(int32 value)
for (AIAbstractListMap::iterator next_iter, iter = this->items.begin(); iter != this->items.end(); iter = next_iter) { for (AIAbstractListMap::iterator next_iter, iter = this->items.begin(); iter != this->items.end(); iter = next_iter) {
next_iter = iter; next_iter++; next_iter = iter; next_iter++;
if ((*iter).second >= value) this->items.erase(iter); if ((*iter).second >= value) this->RemoveItem((*iter).first);
}
for (AIAbstractListBucket::iterator next_iter, iter = this->buckets.begin(); iter != this->buckets.end(); iter = next_iter) {
next_iter = iter; next_iter++;
if ((*iter).first >= value) this->buckets.erase(iter);
} }
} }
@@ -707,12 +678,7 @@ void AIAbstractList::KeepBetweenValue(int32 start, int32 end)
for (AIAbstractListMap::iterator next_iter, iter = this->items.begin(); iter != this->items.end(); iter = next_iter) { for (AIAbstractListMap::iterator next_iter, iter = this->items.begin(); iter != this->items.end(); iter = next_iter) {
next_iter = iter; next_iter++; next_iter = iter; next_iter++;
if ((*iter).second <= start || (*iter).second >= end) this->items.erase(iter); if ((*iter).second <= start || (*iter).second >= end) this->RemoveItem((*iter).first);
}
for (AIAbstractListBucket::iterator next_iter, iter = this->buckets.begin(); iter != this->buckets.end(); iter = next_iter) {
next_iter = iter; next_iter++;
if ((*iter).first <= start || (*iter).first >= end) this->buckets.erase(iter);
} }
} }
@@ -722,12 +688,7 @@ void AIAbstractList::KeepValue(int32 value)
for (AIAbstractListMap::iterator next_iter, iter = this->items.begin(); iter != this->items.end(); iter = next_iter) { for (AIAbstractListMap::iterator next_iter, iter = this->items.begin(); iter != this->items.end(); iter = next_iter) {
next_iter = iter; next_iter++; next_iter = iter; next_iter++;
if ((*iter).second != value) this->items.erase(iter); if ((*iter).second != value) this->RemoveItem((*iter).first);
}
for (AIAbstractListBucket::iterator next_iter, iter = this->buckets.begin(); iter != this->buckets.end(); iter = next_iter) {
next_iter = iter; next_iter++;
if ((*iter).first != value) this->buckets.erase(iter);
} }
} }
@@ -823,13 +784,10 @@ SQInteger AIAbstractList::Valuate(HSQUIRRELVM vm)
/* Push the function to call */ /* Push the function to call */
sq_push(vm, 2); sq_push(vm, 2);
/* Walk all items, and query the result */
this->buckets.clear();
/* Check for changing of items. */
int begin_modification_count = this->modifications;
for (AIAbstractListMap::iterator iter = this->items.begin(); iter != this->items.end(); iter++) { for (AIAbstractListMap::iterator iter = this->items.begin(); iter != this->items.end(); iter++) {
/* Check for changing of items. */
int previous_modification_count = this->modifications;
/* Push the root table as instance object, this is what squirrel does for meta-functions. */ /* Push the root table as instance object, this is what squirrel does for meta-functions. */
sq_pushroottable(vm); sq_pushroottable(vm);
/* Push all arguments for the valuator function. */ /* Push all arguments for the valuator function. */
@@ -867,7 +825,7 @@ SQInteger AIAbstractList::Valuate(HSQUIRRELVM vm)
} }
/* Was something changed? */ /* Was something changed? */
if (begin_modification_count != this->modifications) { if (previous_modification_count != this->modifications) {
/* See below for explanation. The extra pop is the return value. */ /* See below for explanation. The extra pop is the return value. */
sq_pop(vm, nparam + 4); sq_pop(vm, nparam + 4);
@@ -875,8 +833,7 @@ SQInteger AIAbstractList::Valuate(HSQUIRRELVM vm)
return sq_throwerror(vm, _SC("modifying valuated list outside of valuator function")); return sq_throwerror(vm, _SC("modifying valuated list outside of valuator function"));
} }
(*iter).second = (int32)value; this->SetValue((*iter).first, value);
this->buckets[(int32)value].insert((*iter).first);
/* Pop the return value. */ /* Pop the return value. */
sq_poptop(vm); sq_poptop(vm);

View File

@@ -63,6 +63,7 @@ protected:
/** /**
* Remove a single item from the list. * Remove a single item from the list.
* @param item the item to remove. If not existing, it is ignored. * @param item the item to remove. If not existing, it is ignored.
* @note Always use this function for removing items. It keeps the iterator valid!
*/ */
void RemoveItem(int32 item); void RemoveItem(int32 item);

View File

@@ -86,7 +86,7 @@ public:
static int32 GetMaxSpeed(BridgeID bridge_id); static int32 GetMaxSpeed(BridgeID bridge_id);
/** /**
* Get the new cost of a bridge. * Get the new cost of a bridge, excluding the road and/or rail.
* @param bridge_id The bridge to get the new cost of. * @param bridge_id The bridge to get the new cost of.
* @param length The length of the bridge. * @param length The length of the bridge.
* @pre IsValidBridge(bridge_id). * @pre IsValidBridge(bridge_id).

View File

@@ -14,9 +14,17 @@
* functions may still be available if you return an older API version * functions may still be available if you return an older API version
* in GetAPIVersion() in info.nut. * in GetAPIVersion() in info.nut.
* *
* \b 1.0.0 * \b 1.0.2
* *
* 1.0.0 is not yet released. The following changes are not set in stone yet. * Other changes:
* \li AIBridge::GetPrice now returns the price of the bridge without the cost for the rail or road.
*
* \b 1.0.1
*
* API additions:
* \li AIRail::GetMaxSpeed
*
* \b 1.0.0
* *
* API additions: * API additions:
* \li AIBaseStation * \li AIBaseStation

View File

@@ -16,20 +16,21 @@
#include "../../strings_func.h" #include "../../strings_func.h"
#include "../../rail.h" #include "../../rail.h"
#include "../../engine_base.h" #include "../../engine_base.h"
#include "../../engine_func.h"
#include "../../articulated_vehicles.h" #include "../../articulated_vehicles.h"
#include "table/strings.h" #include "table/strings.h"
/* static */ bool AIEngine::IsValidEngine(EngineID engine_id) /* static */ bool AIEngine::IsValidEngine(EngineID engine_id)
{ {
const Engine *e = ::Engine::GetIfValid(engine_id); const Engine *e = ::Engine::GetIfValid(engine_id);
return e != NULL && (HasBit(e->company_avail, _current_company) || ::Company::Get(_current_company)->num_engines[engine_id] > 0); return e != NULL && (::IsEngineBuildable(engine_id, e->type, _current_company) || ::Company::Get(_current_company)->num_engines[engine_id] > 0);
} }
/* static */ bool AIEngine::IsBuildable(EngineID engine_id) /* static */ bool AIEngine::IsBuildable(EngineID engine_id)
{ {
const Engine *e = ::Engine::GetIfValid(engine_id); const Engine *e = ::Engine::GetIfValid(engine_id);
return e != NULL && HasBit(e->company_avail, _current_company); return e != NULL && ::IsEngineBuildable(engine_id, e->type, _current_company);
} }
/* static */ char *AIEngine::GetName(EngineID engine_id) /* static */ char *AIEngine::GetName(EngineID engine_id)

View File

@@ -14,6 +14,7 @@
#include "../../command_type.h" #include "../../command_type.h"
#include "../../strings_func.h" #include "../../strings_func.h"
#include "../../industry.h" #include "../../industry.h"
#include "../../newgrf_industries.h"
#include "../../core/random_func.hpp" #include "../../core/random_func.hpp"
/* static */ bool AIIndustryType::IsValidIndustryType(IndustryType industry_type) /* static */ bool AIIndustryType::IsValidIndustryType(IndustryType industry_type)
@@ -88,6 +89,8 @@
/* static */ bool AIIndustryType::CanBuildIndustry(IndustryType industry_type) /* static */ bool AIIndustryType::CanBuildIndustry(IndustryType industry_type)
{ {
if (!IsValidIndustryType(industry_type)) return false; if (!IsValidIndustryType(industry_type)) return false;
if (!::CheckIfCallBackAllowsAvailability(industry_type, IACT_USERCREATION)) return false;
if (!::GetIndustrySpec(industry_type)->IsRawIndustry()) return true; if (!::GetIndustrySpec(industry_type)->IsRawIndustry()) return true;
/* raw_industry_construction == 1 means "Build as other industries" */ /* raw_industry_construction == 1 means "Build as other industries" */
@@ -97,7 +100,9 @@
/* static */ bool AIIndustryType::CanProspectIndustry(IndustryType industry_type) /* static */ bool AIIndustryType::CanProspectIndustry(IndustryType industry_type)
{ {
if (!IsValidIndustryType(industry_type)) return false; if (!IsValidIndustryType(industry_type)) return false;
if (!::GetIndustrySpec(industry_type)->IsRawIndustry()) return false; if (!::GetIndustrySpec(industry_type)->IsRawIndustry()) return false;
if (!::CheckIfCallBackAllowsAvailability(industry_type, IACT_USERCREATION)) return false;
/* raw_industry_construction == 2 means "prospect" */ /* raw_industry_construction == 2 means "prospect" */
return _settings_game.construction.raw_industry_construction == 2; return _settings_game.construction.raw_industry_construction == 2;

View File

@@ -469,3 +469,10 @@ static bool IsValidSignalType(int signal_type)
default: return -1; default: return -1;
} }
} }
/* static */ int32 AIRail::GetMaxSpeed(RailType railtype)
{
if (!AIRail::IsRailTypeAvailable(railtype)) return -1;
return ::GetRailTypeInfo((::RailType)railtype)->max_speed;
}

View File

@@ -440,6 +440,18 @@ public:
* @return The baseprice of building the given object. * @return The baseprice of building the given object.
*/ */
static Money GetBuildCost(RailType railtype, BuildType build_type); static Money GetBuildCost(RailType railtype, BuildType build_type);
/**
* Get the maximum speed of trains running on this railtype.
* @param railtype The railtype to get the maximum speed of.
* @pre IsRailTypeAvailable(railtype)
* @return The maximum speed trains can run on this railtype
* or 0 if there is no limit.
* @note The speed is in OpenTTD's internal speed unit.
* This is mph / 1.6, which is roughly km/h.
* To get km/h multiply this number by 1.00584.
*/
static int32 GetMaxSpeed(RailType railtype);
}; };
#endif /* AI_RAIL_HPP */ #endif /* AI_RAIL_HPP */

View File

@@ -106,6 +106,7 @@ void SQAIRail_Register(Squirrel *engine)
SQAIRail.DefSQStaticMethod(engine, &AIRail::BuildSignal, "BuildSignal", 4, ".iii"); SQAIRail.DefSQStaticMethod(engine, &AIRail::BuildSignal, "BuildSignal", 4, ".iii");
SQAIRail.DefSQStaticMethod(engine, &AIRail::RemoveSignal, "RemoveSignal", 3, ".ii"); SQAIRail.DefSQStaticMethod(engine, &AIRail::RemoveSignal, "RemoveSignal", 3, ".ii");
SQAIRail.DefSQStaticMethod(engine, &AIRail::GetBuildCost, "GetBuildCost", 3, ".ii"); SQAIRail.DefSQStaticMethod(engine, &AIRail::GetBuildCost, "GetBuildCost", 3, ".ii");
SQAIRail.DefSQStaticMethod(engine, &AIRail::GetMaxSpeed, "GetMaxSpeed", 2, ".i");
SQAIRail.PostRegister(engine); SQAIRail.PostRegister(engine);
} }

View File

@@ -549,7 +549,7 @@ static bool NeighbourHasReachableRoad(::RoadTypes rts, TileIndex start_tile, Dia
EnforcePrecondition(false, ::TileX(start) == ::TileX(end) || ::TileY(start) == ::TileY(end)); EnforcePrecondition(false, ::TileX(start) == ::TileX(end) || ::TileY(start) == ::TileY(end));
EnforcePrecondition(false, IsRoadTypeAvailable(GetCurrentRoadType())); EnforcePrecondition(false, IsRoadTypeAvailable(GetCurrentRoadType()));
return AIObject::DoCommand(end, start, (::TileY(start) != ::TileY(end) ? 4 : 0) | (start < end ? 1 : 2) | (AIObject::GetRoadType() << 3), CMD_REMOVE_LONG_ROAD); return AIObject::DoCommand(start, end, (::TileY(start) != ::TileY(end) ? 4 : 0) | (start < end ? 1 : 2) | (AIObject::GetRoadType() << 3), CMD_REMOVE_LONG_ROAD);
} }
/* static */ bool AIRoad::RemoveRoadFull(TileIndex start, TileIndex end) /* static */ bool AIRoad::RemoveRoadFull(TileIndex start, TileIndex end)
@@ -559,7 +559,7 @@ static bool NeighbourHasReachableRoad(::RoadTypes rts, TileIndex start_tile, Dia
EnforcePrecondition(false, ::TileX(start) == ::TileX(end) || ::TileY(start) == ::TileY(end)); EnforcePrecondition(false, ::TileX(start) == ::TileX(end) || ::TileY(start) == ::TileY(end));
EnforcePrecondition(false, IsRoadTypeAvailable(GetCurrentRoadType())); EnforcePrecondition(false, IsRoadTypeAvailable(GetCurrentRoadType()));
return AIObject::DoCommand(end, start, (::TileY(start) != ::TileY(end) ? 4 : 0) | (start < end ? 2 : 1) | (AIObject::GetRoadType() << 3), CMD_REMOVE_LONG_ROAD); return AIObject::DoCommand(start, end, (::TileY(start) != ::TileY(end) ? 4 : 0) | (start < end ? 2 : 1) | (AIObject::GetRoadType() << 3), CMD_REMOVE_LONG_ROAD);
} }
/* static */ bool AIRoad::RemoveRoadDepot(TileIndex tile) /* static */ bool AIRoad::RemoveRoadDepot(TileIndex tile)

View File

@@ -248,7 +248,7 @@
{ {
EnforcePrecondition(false, ::IsValidTile(tile)); EnforcePrecondition(false, ::IsValidTile(tile));
return AIObject::DoCommand(tile, UINT_MAX, tile, CMD_PLANT_TREE); return AIObject::DoCommand(tile, TREE_INVALID, tile, CMD_PLANT_TREE);
} }
/* static */ bool AITile::PlantTreeRectangle(TileIndex tile, uint width, uint height) /* static */ bool AITile::PlantTreeRectangle(TileIndex tile, uint width, uint height)
@@ -258,7 +258,7 @@
EnforcePrecondition(false, height >= 1 && height <= 20); EnforcePrecondition(false, height >= 1 && height <= 20);
TileIndex end_tile = tile + ::TileDiffXY(width - 1, height - 1); TileIndex end_tile = tile + ::TileDiffXY(width - 1, height - 1);
return AIObject::DoCommand(tile, UINT_MAX, end_tile, CMD_PLANT_TREE); return AIObject::DoCommand(tile, TREE_INVALID, end_tile, CMD_PLANT_TREE);
} }
/* static */ bool AITile::IsWithinTownInfluence(TileIndex tile, TownID town_id) /* static */ bool AITile::IsWithinTownInfluence(TileIndex tile, TownID town_id)

View File

@@ -77,10 +77,10 @@ static void _DoCommandReturnBuildTunnel1(class AIInstance *instance)
uint type = 0; uint type = 0;
if (vehicle_type == AIVehicle::VT_ROAD) { if (vehicle_type == AIVehicle::VT_ROAD) {
type |= (TRANSPORT_ROAD << 9); type |= (TRANSPORT_ROAD << 8);
type |= ::RoadTypeToRoadTypes((::RoadType)AIObject::GetRoadType()); type |= ::RoadTypeToRoadTypes((::RoadType)AIObject::GetRoadType());
} else { } else {
type |= (TRANSPORT_RAIL << 9); type |= (TRANSPORT_RAIL << 8);
type |= AIRail::GetCurrentRailType(); type |= AIRail::GetCurrentRailType();
} }

View File

@@ -237,9 +237,10 @@ void GetAircraftSpriteSize(EngineID engine, uint &width, uint &height)
*/ */
CommandCost CmdBuildAircraft(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text) CommandCost CmdBuildAircraft(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
{ {
if (!IsEngineBuildable(p1, VEH_AIRCRAFT, _current_company)) return_cmd_error(STR_ERROR_AIRCRAFT_NOT_AVAILABLE); EngineID eid = GB(p1, 0, 16);
if (!IsEngineBuildable(eid, VEH_AIRCRAFT, _current_company)) return_cmd_error(STR_ERROR_AIRCRAFT_NOT_AVAILABLE);
const Engine *e = Engine::Get(p1); const Engine *e = Engine::Get(eid);
const AircraftVehicleInfo *avi = &e->u.air; const AircraftVehicleInfo *avi = &e->u.air;
CommandCost value(EXPENSES_NEW_VEHICLES, e->GetCost()); CommandCost value(EXPENSES_NEW_VEHICLES, e->GetCost());
@@ -252,7 +253,7 @@ CommandCost CmdBuildAircraft(TileIndex tile, DoCommandFlag flags, uint32 p1, uin
if (!IsHangarTile(tile) || !IsTileOwner(tile, _current_company)) return CMD_ERROR; if (!IsHangarTile(tile) || !IsTileOwner(tile, _current_company)) return CMD_ERROR;
/* Prevent building aircraft types at places which can't handle them */ /* Prevent building aircraft types at places which can't handle them */
if (!CanVehicleUseStation(p1, Station::GetByTile(tile))) return CMD_ERROR; if (!CanVehicleUseStation(eid, Station::GetByTile(tile))) return CMD_ERROR;
/* We will need to allocate 2 or 3 vehicle structs, depending on type */ /* We will need to allocate 2 or 3 vehicle structs, depending on type */
if (!Vehicle::CanAllocateItem(avi->subtype & AIR_CTOL ? 2 : 3)) { if (!Vehicle::CanAllocateItem(avi->subtype & AIR_CTOL ? 2 : 3)) {
@@ -299,8 +300,8 @@ CommandCost CmdBuildAircraft(TileIndex tile, DoCommandFlag flags, uint32 p1, uin
v->max_speed = avi->max_speed; v->max_speed = avi->max_speed;
v->acceleration = avi->acceleration; v->acceleration = avi->acceleration;
v->engine_type = p1; v->engine_type = eid;
u->engine_type = p1; u->engine_type = eid;
v->subtype = (avi->subtype & AIR_CTOL ? AIR_AIRCRAFT : AIR_HELICOPTER); v->subtype = (avi->subtype & AIR_CTOL ? AIR_AIRCRAFT : AIR_HELICOPTER);
v->UpdateDeltaXY(INVALID_DIR); v->UpdateDeltaXY(INVALID_DIR);
@@ -362,7 +363,7 @@ CommandCost CmdBuildAircraft(TileIndex tile, DoCommandFlag flags, uint32 p1, uin
/* Aircraft with 3 vehicles (chopper)? */ /* Aircraft with 3 vehicles (chopper)? */
if (v->subtype == AIR_HELICOPTER) { if (v->subtype == AIR_HELICOPTER) {
Aircraft *w = new Aircraft(); Aircraft *w = new Aircraft();
w->engine_type = p1; w->engine_type = eid;
w->direction = DIR_N; w->direction = DIR_N;
w->owner = _current_company; w->owner = _current_company;
w->x_pos = v->x_pos; w->x_pos = v->x_pos;
@@ -387,7 +388,7 @@ CommandCost CmdBuildAircraft(TileIndex tile, DoCommandFlag flags, uint32 p1, uin
if (IsLocalCompany()) if (IsLocalCompany())
InvalidateAutoreplaceWindow(v->engine_type, v->group_id); // updates the replace Aircraft window InvalidateAutoreplaceWindow(v->engine_type, v->group_id); // updates the replace Aircraft window
Company::Get(_current_company)->num_engines[p1]++; Company::Get(_current_company)->num_engines[eid]++;
} }
return value; return value;
@@ -876,7 +877,11 @@ static bool AircraftController(Aircraft *v)
/* Make sure the rotors don't rotate too fast */ /* Make sure the rotors don't rotate too fast */
if (u->cur_speed > 32) { if (u->cur_speed > 32) {
v->cur_speed = 0; v->cur_speed = 0;
if (--u->cur_speed == 32) SndPlayVehicleFx(SND_18_HELICOPTER, v); if (--u->cur_speed == 32) {
if (!PlayVehicleSound(v, VSE_START)) {
SndPlayVehicleFx(SND_18_HELICOPTER, v);
}
}
} else { } else {
u->cur_speed = 32; u->cur_speed = 32;
count = UpdateAircraftSpeed(v); count = UpdateAircraftSpeed(v);

View File

@@ -382,20 +382,22 @@ public:
this->DrawWidgets(); this->DrawWidgets();
int needed_height = this->details_height; if (!this->IsShaded()) {
/* Draw details panels. */ int needed_height = this->details_height;
for (int side = 0; side < 2; side++) { /* Draw details panels. */
if (this->sel_engine[side] != INVALID_ENGINE) { for (int side = 0; side < 2; side++) {
NWidgetBase *nwi = this->GetWidget<NWidgetBase>(side == 0 ? RVW_WIDGET_LEFT_DETAILS : RVW_WIDGET_RIGHT_DETAILS); if (this->sel_engine[side] != INVALID_ENGINE) {
int text_end = DrawVehiclePurchaseInfo(nwi->pos_x + WD_FRAMETEXT_LEFT, nwi->pos_x + nwi->current_x - WD_FRAMETEXT_RIGHT, NWidgetBase *nwi = this->GetWidget<NWidgetBase>(side == 0 ? RVW_WIDGET_LEFT_DETAILS : RVW_WIDGET_RIGHT_DETAILS);
nwi->pos_y + WD_FRAMERECT_TOP, this->sel_engine[side]); int text_end = DrawVehiclePurchaseInfo(nwi->pos_x + WD_FRAMETEXT_LEFT, nwi->pos_x + nwi->current_x - WD_FRAMETEXT_RIGHT,
needed_height = max(needed_height, text_end - (int)nwi->pos_y + WD_FRAMERECT_BOTTOM); nwi->pos_y + WD_FRAMERECT_TOP, this->sel_engine[side]);
needed_height = max(needed_height, text_end - (int)nwi->pos_y + WD_FRAMERECT_BOTTOM);
}
}
if (needed_height != this->details_height) { // Details window are not high enough, enlarge them.
this->details_height = needed_height;
this->ReInit();
return;
} }
}
if (!this->IsShaded() && needed_height != this->details_height) { // Details window are not high enough, enlarge them.
this->details_height = needed_height;
this->ReInit();
return;
} }
} }

View File

@@ -59,6 +59,7 @@ struct BaseSet {
TranslatedStrings description; ///< Description of the base set TranslatedStrings description; ///< Description of the base set
uint32 shortname; ///< Four letter short variant of the name uint32 shortname; ///< Four letter short variant of the name
uint32 version; ///< The version of this base set uint32 version; ///< The version of this base set
bool fallback; ///< This set is a fallback set, i.e. it should be used only as last resort
MD5File files[NUM_FILES]; ///< All files part of this set MD5File files[NUM_FILES]; ///< All files part of this set
uint found_files; ///< Number of the files that could be found uint found_files; ///< Number of the files that could be found
@@ -107,9 +108,11 @@ struct BaseSet {
* Read the set information from a loaded ini. * Read the set information from a loaded ini.
* @param ini the ini to read from * @param ini the ini to read from
* @param path the path to this ini file (for filenames) * @param path the path to this ini file (for filenames)
* @param full_filename the full filename of the loaded file (for error reporting purposes)
* @param allow_empty_filename empty filenames are valid
* @return true if loading was successful. * @return true if loading was successful.
*/ */
bool FillSetDetails(IniFile *ini, const char *path); bool FillSetDetails(IniFile *ini, const char *path, const char *full_filename, bool allow_empty_filename = true);
/** /**
* Get the description for the given ISO code. * Get the description for the given ISO code.
@@ -168,7 +171,9 @@ public:
static uint FindSets() static uint FindSets()
{ {
BaseMedia<Tbase_set> fs; BaseMedia<Tbase_set> fs;
return fs.Scan(GetExtension(), Tbase_set::SUBDIR); /* GM_DIR == music set. Music sets don't support tars,
* so there is no need to search for tars in that case. */
return fs.Scan(GetExtension(), Tbase_set::SUBDIR, Tbase_set::SUBDIR != GM_DIR);
} }
/** /**
@@ -234,7 +239,7 @@ enum GraphicsFileType {
struct GraphicsSet : BaseSet<GraphicsSet, MAX_GFT, DATA_DIR> { struct GraphicsSet : BaseSet<GraphicsSet, MAX_GFT, DATA_DIR> {
PaletteType palette; ///< Palette of this graphics set PaletteType palette; ///< Palette of this graphics set
bool FillSetDetails(struct IniFile *ini, const char *path); bool FillSetDetails(struct IniFile *ini, const char *path, const char *full_filename);
}; };
/** All data/functions related with replacing the base graphics. */ /** All data/functions related with replacing the base graphics. */
@@ -272,7 +277,7 @@ struct MusicSet : BaseSet<MusicSet, NUM_SONGS_AVAILABLE, GM_DIR> {
byte track_nr[NUM_SONGS_AVAILABLE]; byte track_nr[NUM_SONGS_AVAILABLE];
byte num_available; byte num_available;
bool FillSetDetails(struct IniFile *ini, const char *path); bool FillSetDetails(struct IniFile *ini, const char *path, const char *full_filename);
}; };
/** All data/functions related with replacing the base music */ /** All data/functions related with replacing the base music */

View File

@@ -25,12 +25,13 @@ template <class Tbase_set> /* static */ Tbase_set *BaseMedia<Tbase_set>::availab
#define fetch_metadata(name) \ #define fetch_metadata(name) \
item = metadata->GetItem(name, false); \ item = metadata->GetItem(name, false); \
if (item == NULL || StrEmpty(item->value)) { \ if (item == NULL || StrEmpty(item->value)) { \
DEBUG(grf, 0, "Base " SET_TYPE "set detail loading: %s field missing", name); \ DEBUG(grf, 0, "Base " SET_TYPE "set detail loading: %s field missing.", name); \
DEBUG(grf, 0, " Is %s readable for the user running OpenTTD?", full_filename); \
return false; \ return false; \
} }
template <class T, size_t Tnum_files, Subdirectory Tsubdir> template <class T, size_t Tnum_files, Subdirectory Tsubdir>
bool BaseSet<T, Tnum_files, Tsubdir>::FillSetDetails(IniFile *ini, const char *path) bool BaseSet<T, Tnum_files, Tsubdir>::FillSetDetails(IniFile *ini, const char *path, const char *full_filename, bool allow_empty_filename)
{ {
memset(this, 0, sizeof(*this)); memset(this, 0, sizeof(*this));
@@ -58,6 +59,9 @@ bool BaseSet<T, Tnum_files, Tsubdir>::FillSetDetails(IniFile *ini, const char *p
fetch_metadata("version"); fetch_metadata("version");
this->version = atoi(item->value); this->version = atoi(item->value);
item = metadata->GetItem("fallback", false);
this->fallback = (item != NULL && strcmp(item->value, "0") != 0 && strcmp(item->value, "false") != 0);
/* For each of the file types we want to find the file, MD5 checksums and warning messages. */ /* For each of the file types we want to find the file, MD5 checksums and warning messages. */
IniGroup *files = ini->GetGroup("files"); IniGroup *files = ini->GetGroup("files");
IniGroup *md5s = ini->GetGroup("md5s"); IniGroup *md5s = ini->GetGroup("md5s");
@@ -66,8 +70,8 @@ bool BaseSet<T, Tnum_files, Tsubdir>::FillSetDetails(IniFile *ini, const char *p
MD5File *file = &this->files[i]; MD5File *file = &this->files[i];
/* Find the filename first. */ /* Find the filename first. */
item = files->GetItem(BaseSet<T, Tnum_files, Tsubdir>::file_names[i], false); item = files->GetItem(BaseSet<T, Tnum_files, Tsubdir>::file_names[i], false);
if (item == NULL) { if (item == NULL || (item->value == NULL && !allow_empty_filename)) {
DEBUG(grf, 0, "No " SET_TYPE " file for: %s", BaseSet<T, Tnum_files, Tsubdir>::file_names[i]); DEBUG(grf, 0, "No " SET_TYPE " file for: %s (in %s)", BaseSet<T, Tnum_files, Tsubdir>::file_names[i], full_filename);
return false; return false;
} }
@@ -85,7 +89,7 @@ bool BaseSet<T, Tnum_files, Tsubdir>::FillSetDetails(IniFile *ini, const char *p
/* Then find the MD5 checksum */ /* Then find the MD5 checksum */
item = md5s->GetItem(filename, false); item = md5s->GetItem(filename, false);
if (item == NULL) { if (item == NULL) {
DEBUG(grf, 0, "No MD5 checksum specified for: %s", filename); DEBUG(grf, 0, "No MD5 checksum specified for: %s (in %s)", filename, full_filename);
return false; return false;
} }
char *c = item->value; char *c = item->value;
@@ -98,7 +102,7 @@ bool BaseSet<T, Tnum_files, Tsubdir>::FillSetDetails(IniFile *ini, const char *p
} else if ('A' <= *c && *c <= 'F') { } else if ('A' <= *c && *c <= 'F') {
j = *c - 'A' + 10; j = *c - 'A' + 10;
} else { } else {
DEBUG(grf, 0, "Malformed MD5 checksum specified for: %s", filename); DEBUG(grf, 0, "Malformed MD5 checksum specified for: %s (in %s)", filename, full_filename);
return false; return false;
} }
if (i % 2 == 0) { if (i % 2 == 0) {
@@ -152,7 +156,7 @@ bool BaseMedia<Tbase_set>::AddFile(const char *filename, size_t basepath_length)
*path = '\0'; *path = '\0';
} }
if (set->FillSetDetails(ini, path)) { if (set->FillSetDetails(ini, path, filename)) {
Tbase_set *duplicate = NULL; Tbase_set *duplicate = NULL;
for (Tbase_set *c = BaseMedia<Tbase_set>::available_sets; c != NULL; c = c->next) { for (Tbase_set *c = BaseMedia<Tbase_set>::available_sets; c != NULL; c = c->next) {
if (strcmp(c->name, set->name) == 0 || c->shortname == set->shortname) { if (strcmp(c->name, set->name) == 0 || c->shortname == set->shortname) {

View File

@@ -67,7 +67,7 @@ static inline const BridgeSpec *GetBridgeSpec(BridgeType i)
void DrawBridgeMiddle(const TileInfo *ti); void DrawBridgeMiddle(const TileInfo *ti);
bool CheckBridge_Stuff(BridgeType bridge_type, uint bridge_len, DoCommandFlag flags = DC_NONE); CommandCost CheckBridgeAvailability(BridgeType bridge_type, uint bridge_len, DoCommandFlag flags = DC_NONE);
int CalcBridgeLenCostFactor(int x); int CalcBridgeLenCostFactor(int x);
void ResetBridges(); void ResetBridges();

View File

@@ -14,6 +14,7 @@
#include "command_func.h" #include "command_func.h"
#include "economy_func.h" #include "economy_func.h"
#include "bridge.h" #include "bridge.h"
#include "rail.h"
#include "strings_func.h" #include "strings_func.h"
#include "window_func.h" #include "window_func.h"
#include "sound_func.h" #include "sound_func.h"
@@ -375,7 +376,7 @@ void ShowBuildBridgeWindow(TileIndex start, TileIndex end, TransportType transpo
case TRANSPORT_RAIL: last_bridge_type = _last_railbridge_type; break; case TRANSPORT_RAIL: last_bridge_type = _last_railbridge_type; break;
default: break; // water ways and air routes don't have bridge types default: break; // water ways and air routes don't have bridge types
} }
if (_ctrl_pressed && CheckBridge_Stuff(last_bridge_type, bridge_len)) { if (_ctrl_pressed && CheckBridgeAvailability(last_bridge_type, bridge_len).Succeeded()) {
DoCommandP(end, start, type | last_bridge_type, CMD_BUILD_BRIDGE | CMD_MSG(STR_ERROR_CAN_T_BUILD_BRIDGE_HERE), CcBuildBridge); DoCommandP(end, start, type | last_bridge_type, CMD_BUILD_BRIDGE | CMD_MSG(STR_ERROR_CAN_T_BUILD_BRIDGE_HERE), CcBuildBridge);
return; return;
} }
@@ -394,16 +395,23 @@ void ShowBuildBridgeWindow(TileIndex start, TileIndex end, TransportType transpo
bl = new GUIBridgeList(); bl = new GUIBridgeList();
Money infra_cost = 0;
switch (transport_type) {
case TRANSPORT_ROAD: infra_cost = (bridge_len + 2) * _price[PR_BUILD_ROAD] * 2; break;
case TRANSPORT_RAIL: infra_cost = (bridge_len + 2) * RailBuildCost((RailType)road_rail_type); break;
default: break;
}
/* loop for all bridgetypes */ /* loop for all bridgetypes */
for (BridgeType brd_type = 0; brd_type != MAX_BRIDGES; brd_type++) { for (BridgeType brd_type = 0; brd_type != MAX_BRIDGES; brd_type++) {
if (CheckBridge_Stuff(brd_type, bridge_len)) { if (CheckBridgeAvailability(brd_type, bridge_len).Succeeded()) {
/* bridge is accepted, add to list */ /* bridge is accepted, add to list */
BuildBridgeData *item = bl->Append(); BuildBridgeData *item = bl->Append();
item->index = brd_type; item->index = brd_type;
item->spec = GetBridgeSpec(brd_type); item->spec = GetBridgeSpec(brd_type);
/* Add to terraforming & bulldozing costs the cost of the /* Add to terraforming & bulldozing costs the cost of the
* bridge itself (not computed with DC_QUERY_COST) */ * bridge itself (not computed with DC_QUERY_COST) */
item->cost = ret.GetCost() + (((int64)tot_bridgedata_len * _price[PR_BUILD_BRIDGE] * item->spec->price) >> 8); item->cost = ret.GetCost() + (((int64)tot_bridgedata_len * _price[PR_BUILD_BRIDGE] * item->spec->price) >> 8) + infra_cost;
} }
} }
} }

View File

@@ -1017,7 +1017,7 @@ struct BuildVehicleWindow : Window {
size_t num_items = this->eng_list.Length(); size_t num_items = this->eng_list.Length();
this->sel_engine = (i < num_items) ? this->eng_list[i] : INVALID_ENGINE; this->sel_engine = (i < num_items) ? this->eng_list[i] : INVALID_ENGINE;
this->SetDirty(); this->SetDirty();
if (click_count > 1) this->OnClick(pt, BUILD_VEHICLE_WIDGET_BUILD, 1); if (click_count > 1 && !this->listview_mode) this->OnClick(pt, BUILD_VEHICLE_WIDGET_BUILD, 1);
break; break;
} }
@@ -1122,8 +1122,9 @@ struct BuildVehicleWindow : Window {
} }
} }
if (needed_height != this->details_height) { // Details window are not high enough, enlarge them. if (needed_height != this->details_height) { // Details window are not high enough, enlarge them.
int resize = needed_height - this->details_height;
this->details_height = needed_height; this->details_height = needed_height;
this->ReInit(); this->ReInit(0, resize);
return; return;
} }
} }

View File

@@ -189,19 +189,40 @@ static void TileLoopClearAlps(TileIndex tile)
MarkTileDirtyByTile(tile); MarkTileDirtyByTile(tile);
} }
/**
* Tests if at least one surrounding tile is desert
* @param tile tile to check
* @return does this tile have at least one desert tile around?
*/
static inline bool NeighbourIsDesert(TileIndex tile)
{
return GetTropicZone(tile + TileDiffXY( 1, 0)) == TROPICZONE_DESERT ||
GetTropicZone(tile + TileDiffXY( -1, 0)) == TROPICZONE_DESERT ||
GetTropicZone(tile + TileDiffXY( 0, 1)) == TROPICZONE_DESERT ||
GetTropicZone(tile + TileDiffXY( 0, -1)) == TROPICZONE_DESERT;
}
static void TileLoopClearDesert(TileIndex tile) static void TileLoopClearDesert(TileIndex tile)
{ {
if (IsClearGround(tile, CLEAR_DESERT)) return; /* Current desert level - 0 if it is not desert */
uint current = 0;
if (IsClearGround(tile, CLEAR_DESERT)) current = GetClearDensity(tile);
/* Expected desert level - 0 if it shouldn't be desert */
uint expected = 0;
if (GetTropicZone(tile) == TROPICZONE_DESERT) { if (GetTropicZone(tile) == TROPICZONE_DESERT) {
SetClearGroundDensity(tile, CLEAR_DESERT, 3); expected = 3;
} else if (NeighbourIsDesert(tile)) {
expected = 1;
}
if (current == expected) return;
if (expected == 0) {
SetClearGroundDensity(tile, CLEAR_GRASS, 3);
} else { } else {
if (GetTropicZone(tile + TileDiffXY( 1, 0)) != TROPICZONE_DESERT && /* Transition from clear to desert is not smooth (after clearing desert tile) */
GetTropicZone(tile + TileDiffXY(-1, 0)) != TROPICZONE_DESERT && SetClearGroundDensity(tile, CLEAR_DESERT, expected);
GetTropicZone(tile + TileDiffXY( 0, 1)) != TROPICZONE_DESERT &&
GetTropicZone(tile + TileDiffXY( 0, -1)) != TROPICZONE_DESERT)
return;
SetClearGroundDensity(tile, CLEAR_DESERT, 1);
} }
MarkTileDirtyByTile(tile); MarkTileDirtyByTile(tile);

View File

@@ -12,25 +12,16 @@
#ifndef CMD_HELPER_H #ifndef CMD_HELPER_H
#define CMD_HELPER_H #define CMD_HELPER_H
#include "direction_type.h" #include "core/enum_type.hpp"
#include "road_type.h"
template<typename T, uint S, uint N, typename U> static inline T Extract(U v)
template<uint N> static inline void ExtractValid();
template<> inline void ExtractValid<1>() {}
template<typename T> struct ExtractBits;
template<> struct ExtractBits<Axis> { static const uint Count = 1; };
template<> struct ExtractBits<DiagDirection> { static const uint Count = 2; };
template<> struct ExtractBits<RoadBits> { static const uint Count = 4; };
template<typename T, uint N, typename U> static inline T Extract(U v)
{ {
/* Check if there are enough bits in v */ /* Check if there are enough bits in v */
ExtractValid<N + ExtractBits<T>::Count <= sizeof(U) * 8>(); assert_tcompile(N == EnumPropsT<T>::num_bits);
return (T)GB(v, N, ExtractBits<T>::Count); assert_tcompile(S + N <= sizeof(U) * 8);
assert_tcompile(EnumPropsT<T>::end <= (1 << N));
U masked = GB(v, S, N);
return IsInsideMM(masked, EnumPropsT<T>::begin, EnumPropsT<T>::end) ? (T)masked : EnumPropsT<T>::invalid;
} }
#endif #endif

View File

@@ -188,6 +188,8 @@ CommandProc CmdSetVehicleOnTime;
CommandProc CmdAutofillTimetable; CommandProc CmdAutofillTimetable;
CommandProc CmdSetTimetableStart; CommandProc CmdSetTimetableStart;
#define DEF_CMD(proc, flags) {proc, #proc, flags}
/** /**
* The master command table * The master command table
* *
@@ -196,141 +198,141 @@ CommandProc CmdSetTimetableStart;
* as the value from the CMD_* enums. * as the value from the CMD_* enums.
*/ */
static const Command _command_proc_table[] = { static const Command _command_proc_table[] = {
{CmdBuildRailroadTrack, CMD_NO_WATER | CMD_AUTO}, // CMD_BUILD_RAILROAD_TRACK DEF_CMD(CmdBuildRailroadTrack, CMD_NO_WATER | CMD_AUTO), // CMD_BUILD_RAILROAD_TRACK
{CmdRemoveRailroadTrack, CMD_AUTO}, // CMD_REMOVE_RAILROAD_TRACK DEF_CMD(CmdRemoveRailroadTrack, CMD_AUTO), // CMD_REMOVE_RAILROAD_TRACK
{CmdBuildSingleRail, CMD_NO_WATER | CMD_AUTO}, // CMD_BUILD_SINGLE_RAIL DEF_CMD(CmdBuildSingleRail, CMD_NO_WATER | CMD_AUTO), // CMD_BUILD_SINGLE_RAIL
{CmdRemoveSingleRail, CMD_AUTO}, // CMD_REMOVE_SINGLE_RAIL DEF_CMD(CmdRemoveSingleRail, CMD_AUTO), // CMD_REMOVE_SINGLE_RAIL
{CmdLandscapeClear, 0}, // CMD_LANDSCAPE_CLEAR DEF_CMD(CmdLandscapeClear, 0), // CMD_LANDSCAPE_CLEAR
{CmdBuildBridge, CMD_AUTO}, // CMD_BUILD_BRIDGE DEF_CMD(CmdBuildBridge, CMD_AUTO), // CMD_BUILD_BRIDGE
{CmdBuildRailStation, CMD_NO_WATER | CMD_AUTO}, // CMD_BUILD_RAIL_STATION DEF_CMD(CmdBuildRailStation, CMD_NO_WATER | CMD_AUTO), // CMD_BUILD_RAIL_STATION
{CmdBuildTrainDepot, CMD_NO_WATER | CMD_AUTO}, // CMD_BUILD_TRAIN_DEPOT DEF_CMD(CmdBuildTrainDepot, CMD_NO_WATER | CMD_AUTO), // CMD_BUILD_TRAIN_DEPOT
{CmdBuildSingleSignal, CMD_AUTO}, // CMD_BUILD_SIGNALS DEF_CMD(CmdBuildSingleSignal, CMD_AUTO), // CMD_BUILD_SIGNALS
{CmdRemoveSingleSignal, CMD_AUTO}, // CMD_REMOVE_SIGNALS DEF_CMD(CmdRemoveSingleSignal, CMD_AUTO), // CMD_REMOVE_SIGNALS
{CmdTerraformLand, CMD_ALL_TILES | CMD_AUTO}, // CMD_TERRAFORM_LAND DEF_CMD(CmdTerraformLand, CMD_ALL_TILES | CMD_AUTO), // CMD_TERRAFORM_LAND
{CmdPurchaseLandArea, CMD_NO_WATER | CMD_AUTO}, // CMD_PURCHASE_LAND_AREA DEF_CMD(CmdPurchaseLandArea, CMD_NO_WATER | CMD_AUTO), // CMD_PURCHASE_LAND_AREA
{CmdSellLandArea, 0}, // CMD_SELL_LAND_AREA DEF_CMD(CmdSellLandArea, 0), // CMD_SELL_LAND_AREA
{CmdBuildTunnel, CMD_AUTO}, // CMD_BUILD_TUNNEL DEF_CMD(CmdBuildTunnel, CMD_AUTO), // CMD_BUILD_TUNNEL
{CmdRemoveFromRailStation, 0}, // CMD_REMOVE_FROM_RAIL_STATION DEF_CMD(CmdRemoveFromRailStation, 0), // CMD_REMOVE_FROM_RAIL_STATION
{CmdConvertRail, 0}, // CMD_CONVERT_RAILD DEF_CMD(CmdConvertRail, 0), // CMD_CONVERT_RAILD
{CmdBuildRailWaypoint, 0}, // CMD_BUILD_RAIL_WAYPOINT DEF_CMD(CmdBuildRailWaypoint, 0), // CMD_BUILD_RAIL_WAYPOINT
{CmdRenameWaypoint, 0}, // CMD_RENAME_WAYPOINT DEF_CMD(CmdRenameWaypoint, 0), // CMD_RENAME_WAYPOINT
{CmdRemoveFromRailWaypoint, 0}, // CMD_REMOVE_FROM_RAIL_WAYPOINT DEF_CMD(CmdRemoveFromRailWaypoint, 0), // CMD_REMOVE_FROM_RAIL_WAYPOINT
{CmdBuildRoadStop, CMD_NO_WATER | CMD_AUTO}, // CMD_BUILD_ROAD_STOP DEF_CMD(CmdBuildRoadStop, CMD_NO_WATER | CMD_AUTO), // CMD_BUILD_ROAD_STOP
{CmdRemoveRoadStop, 0}, // CMD_REMOVE_ROAD_STOP DEF_CMD(CmdRemoveRoadStop, 0), // CMD_REMOVE_ROAD_STOP
{CmdBuildLongRoad, CMD_NO_WATER | CMD_AUTO}, // CMD_BUILD_LONG_ROAD DEF_CMD(CmdBuildLongRoad, CMD_NO_WATER | CMD_AUTO), // CMD_BUILD_LONG_ROAD
{CmdRemoveLongRoad, CMD_NO_TEST | CMD_AUTO}, // CMD_REMOVE_LONG_ROAD; towns may disallow removing road bits (as they are connected) in test, but in exec they're removed and thus removing is allowed. DEF_CMD(CmdRemoveLongRoad, CMD_NO_TEST | CMD_AUTO), // CMD_REMOVE_LONG_ROAD; towns may disallow removing road bits (as they are connected) in test, but in exec they're removed and thus removing is allowed.
{CmdBuildRoad, CMD_NO_WATER | CMD_AUTO}, // CMD_BUILD_ROAD DEF_CMD(CmdBuildRoad, CMD_NO_WATER | CMD_AUTO), // CMD_BUILD_ROAD
{CmdBuildRoadDepot, CMD_NO_WATER | CMD_AUTO}, // CMD_BUILD_ROAD_DEPOT DEF_CMD(CmdBuildRoadDepot, CMD_NO_WATER | CMD_AUTO), // CMD_BUILD_ROAD_DEPOT
{CmdBuildAirport, CMD_NO_WATER | CMD_AUTO}, // CMD_BUILD_AIRPORT DEF_CMD(CmdBuildAirport, CMD_NO_WATER | CMD_AUTO), // CMD_BUILD_AIRPORT
{CmdBuildDock, CMD_AUTO}, // CMD_BUILD_DOCK DEF_CMD(CmdBuildDock, CMD_AUTO), // CMD_BUILD_DOCK
{CmdBuildShipDepot, CMD_AUTO}, // CMD_BUILD_SHIP_DEPOT DEF_CMD(CmdBuildShipDepot, CMD_AUTO), // CMD_BUILD_SHIP_DEPOT
{CmdBuildBuoy, CMD_AUTO}, // CMD_BUILD_BUOY DEF_CMD(CmdBuildBuoy, CMD_AUTO), // CMD_BUILD_BUOY
{CmdPlantTree, CMD_AUTO}, // CMD_PLANT_TREE DEF_CMD(CmdPlantTree, CMD_AUTO), // CMD_PLANT_TREE
{CmdBuildRailVehicle, 0}, // CMD_BUILD_RAIL_VEHICLE DEF_CMD(CmdBuildRailVehicle, 0), // CMD_BUILD_RAIL_VEHICLE
{CmdMoveRailVehicle, 0}, // CMD_MOVE_RAIL_VEHICLE DEF_CMD(CmdMoveRailVehicle, 0), // CMD_MOVE_RAIL_VEHICLE
{CmdSellRailWagon, 0}, // CMD_SELL_RAIL_WAGON DEF_CMD(CmdSellRailWagon, 0), // CMD_SELL_RAIL_WAGON
{CmdSendTrainToDepot, 0}, // CMD_SEND_TRAIN_TO_DEPOT DEF_CMD(CmdSendTrainToDepot, 0), // CMD_SEND_TRAIN_TO_DEPOT
{CmdForceTrainProceed, 0}, // CMD_FORCE_TRAIN_PROCEED DEF_CMD(CmdForceTrainProceed, 0), // CMD_FORCE_TRAIN_PROCEED
{CmdReverseTrainDirection, 0}, // CMD_REVERSE_TRAIN_DIRECTION DEF_CMD(CmdReverseTrainDirection, 0), // CMD_REVERSE_TRAIN_DIRECTION
{CmdModifyOrder, 0}, // CMD_MODIFY_ORDER DEF_CMD(CmdModifyOrder, 0), // CMD_MODIFY_ORDER
{CmdSkipToOrder, 0}, // CMD_SKIP_TO_ORDER DEF_CMD(CmdSkipToOrder, 0), // CMD_SKIP_TO_ORDER
{CmdDeleteOrder, 0}, // CMD_DELETE_ORDER DEF_CMD(CmdDeleteOrder, 0), // CMD_DELETE_ORDER
{CmdInsertOrder, 0}, // CMD_INSERT_ORDER DEF_CMD(CmdInsertOrder, 0), // CMD_INSERT_ORDER
{CmdChangeServiceInt, 0}, // CMD_CHANGE_SERVICE_INT DEF_CMD(CmdChangeServiceInt, 0), // CMD_CHANGE_SERVICE_INT
{CmdBuildIndustry, 0}, // CMD_BUILD_INDUSTRY DEF_CMD(CmdBuildIndustry, 0), // CMD_BUILD_INDUSTRY
{CmdBuildCompanyHQ, CMD_NO_WATER | CMD_AUTO}, // CMD_BUILD_COMPANY_HQ DEF_CMD(CmdBuildCompanyHQ, CMD_NO_WATER | CMD_AUTO), // CMD_BUILD_COMPANY_HQ
{CmdSetCompanyManagerFace, 0}, // CMD_SET_COMPANY_MANAGER_FACE DEF_CMD(CmdSetCompanyManagerFace, 0), // CMD_SET_COMPANY_MANAGER_FACE
{CmdSetCompanyColour, 0}, // CMD_SET_COMPANY_COLOUR DEF_CMD(CmdSetCompanyColour, 0), // CMD_SET_COMPANY_COLOUR
{CmdIncreaseLoan, 0}, // CMD_INCREASE_LOAN DEF_CMD(CmdIncreaseLoan, 0), // CMD_INCREASE_LOAN
{CmdDecreaseLoan, 0}, // CMD_DECREASE_LOAN DEF_CMD(CmdDecreaseLoan, 0), // CMD_DECREASE_LOAN
{CmdWantEnginePreview, 0}, // CMD_WANT_ENGINE_PREVIEW DEF_CMD(CmdWantEnginePreview, 0), // CMD_WANT_ENGINE_PREVIEW
{CmdRenameVehicle, 0}, // CMD_RENAME_VEHICLE DEF_CMD(CmdRenameVehicle, 0), // CMD_RENAME_VEHICLE
{CmdRenameEngine, 0}, // CMD_RENAME_ENGINE DEF_CMD(CmdRenameEngine, 0), // CMD_RENAME_ENGINE
{CmdRenameCompany, 0}, // CMD_RENAME_COMPANY DEF_CMD(CmdRenameCompany, 0), // CMD_RENAME_COMPANY
{CmdRenamePresident, 0}, // CMD_RENAME_PRESIDENT DEF_CMD(CmdRenamePresident, 0), // CMD_RENAME_PRESIDENT
{CmdRenameStation, 0}, // CMD_RENAME_STATION DEF_CMD(CmdRenameStation, 0), // CMD_RENAME_STATION
{CmdSellAircraft, 0}, // CMD_SELL_AIRCRAFT DEF_CMD(CmdSellAircraft, 0), // CMD_SELL_AIRCRAFT
{CmdBuildAircraft, 0}, // CMD_BUILD_AIRCRAFT DEF_CMD(CmdBuildAircraft, 0), // CMD_BUILD_AIRCRAFT
{CmdSendAircraftToHangar, 0}, // CMD_SEND_AIRCRAFT_TO_HANGAR DEF_CMD(CmdSendAircraftToHangar, 0), // CMD_SEND_AIRCRAFT_TO_HANGAR
{CmdRefitAircraft, 0}, // CMD_REFIT_AIRCRAFT DEF_CMD(CmdRefitAircraft, 0), // CMD_REFIT_AIRCRAFT
{CmdPlaceSign, 0}, // CMD_PLACE_SIGN DEF_CMD(CmdPlaceSign, 0), // CMD_PLACE_SIGN
{CmdRenameSign, 0}, // CMD_RENAME_SIGN DEF_CMD(CmdRenameSign, 0), // CMD_RENAME_SIGN
{CmdBuildRoadVeh, 0}, // CMD_BUILD_ROAD_VEH DEF_CMD(CmdBuildRoadVeh, 0), // CMD_BUILD_ROAD_VEH
{CmdSellRoadVeh, 0}, // CMD_SELL_ROAD_VEH DEF_CMD(CmdSellRoadVeh, 0), // CMD_SELL_ROAD_VEH
{CmdSendRoadVehToDepot, 0}, // CMD_SEND_ROADVEH_TO_DEPOT DEF_CMD(CmdSendRoadVehToDepot, 0), // CMD_SEND_ROADVEH_TO_DEPOT
{CmdTurnRoadVeh, 0}, // CMD_TURN_ROADVEH DEF_CMD(CmdTurnRoadVeh, 0), // CMD_TURN_ROADVEH
{CmdRefitRoadVeh, 0}, // CMD_REFIT_ROAD_VEH DEF_CMD(CmdRefitRoadVeh, 0), // CMD_REFIT_ROAD_VEH
{CmdPause, CMD_SERVER}, // CMD_PAUSE DEF_CMD(CmdPause, CMD_SERVER), // CMD_PAUSE
{CmdBuyShareInCompany, 0}, // CMD_BUY_SHARE_IN_COMPANY DEF_CMD(CmdBuyShareInCompany, 0), // CMD_BUY_SHARE_IN_COMPANY
{CmdSellShareInCompany, 0}, // CMD_SELL_SHARE_IN_COMPANY DEF_CMD(CmdSellShareInCompany, 0), // CMD_SELL_SHARE_IN_COMPANY
{CmdBuyCompany, 0}, // CMD_BUY_COMANY DEF_CMD(CmdBuyCompany, 0), // CMD_BUY_COMANY
{CmdFoundTown, CMD_NO_TEST}, // CMD_FOUND_TOWN; founding random town can fail only in exec run DEF_CMD(CmdFoundTown, CMD_NO_TEST), // CMD_FOUND_TOWN; founding random town can fail only in exec run
{CmdRenameTown, CMD_SERVER}, // CMD_RENAME_TOWN DEF_CMD(CmdRenameTown, CMD_SERVER), // CMD_RENAME_TOWN
{CmdDoTownAction, 0}, // CMD_DO_TOWN_ACTION DEF_CMD(CmdDoTownAction, 0), // CMD_DO_TOWN_ACTION
{CmdSellShip, 0}, // CMD_SELL_SHIP DEF_CMD(CmdSellShip, 0), // CMD_SELL_SHIP
{CmdBuildShip, 0}, // CMD_BUILD_SHIP DEF_CMD(CmdBuildShip, 0), // CMD_BUILD_SHIP
{CmdSendShipToDepot, 0}, // CMD_SEND_SHIP_TO_DEPOT DEF_CMD(CmdSendShipToDepot, 0), // CMD_SEND_SHIP_TO_DEPOT
{CmdRefitShip, 0}, // CMD_REFIT_SHIP DEF_CMD(CmdRefitShip, 0), // CMD_REFIT_SHIP
{CmdOrderRefit, 0}, // CMD_ORDER_REFIT DEF_CMD(CmdOrderRefit, 0), // CMD_ORDER_REFIT
{CmdCloneOrder, 0}, // CMD_CLONE_ORDER DEF_CMD(CmdCloneOrder, 0), // CMD_CLONE_ORDER
{CmdClearArea, CMD_NO_TEST}, // CMD_CLEAR_AREA; destroying multi-tile houses makes town rating differ between test and execution DEF_CMD(CmdClearArea, CMD_NO_TEST), // CMD_CLEAR_AREA; destroying multi-tile houses makes town rating differ between test and execution
{CmdMoneyCheat, CMD_OFFLINE}, // CMD_MONEY_CHEAT DEF_CMD(CmdMoneyCheat, CMD_OFFLINE), // CMD_MONEY_CHEAT
{CmdBuildCanal, CMD_AUTO}, // CMD_BUILD_CANAL DEF_CMD(CmdBuildCanal, CMD_AUTO), // CMD_BUILD_CANAL
{CmdCompanyCtrl, CMD_SPECTATOR}, // CMD_COMPANY_CTRL DEF_CMD(CmdCompanyCtrl, CMD_SPECTATOR), // CMD_COMPANY_CTRL
{CmdLevelLand, CMD_ALL_TILES | CMD_NO_TEST | CMD_AUTO}, // CMD_LEVEL_LAND; test run might clear tiles multiple times, in execution that only happens once DEF_CMD(CmdLevelLand, CMD_ALL_TILES | CMD_NO_TEST | CMD_AUTO), // CMD_LEVEL_LAND; test run might clear tiles multiple times, in execution that only happens once
{CmdRefitRailVehicle, 0}, // CMD_REFIT_RAIL_VEHICLE DEF_CMD(CmdRefitRailVehicle, 0), // CMD_REFIT_RAIL_VEHICLE
{CmdRestoreOrderIndex, 0}, // CMD_RESTORE_ORDER_INDEX DEF_CMD(CmdRestoreOrderIndex, 0), // CMD_RESTORE_ORDER_INDEX
{CmdBuildLock, CMD_AUTO}, // CMD_BUILD_LOCK DEF_CMD(CmdBuildLock, CMD_AUTO), // CMD_BUILD_LOCK
{CmdBuildSignalTrack, CMD_AUTO}, // CMD_BUILD_SIGNAL_TRACK DEF_CMD(CmdBuildSignalTrack, CMD_AUTO), // CMD_BUILD_SIGNAL_TRACK
{CmdRemoveSignalTrack, CMD_AUTO}, // CMD_REMOVE_SIGNAL_TRACK DEF_CMD(CmdRemoveSignalTrack, CMD_AUTO), // CMD_REMOVE_SIGNAL_TRACK
{CmdGiveMoney, 0}, // CMD_GIVE_MONEY DEF_CMD(CmdGiveMoney, 0), // CMD_GIVE_MONEY
{CmdChangeSetting, CMD_SERVER}, // CMD_CHANGE_SETTING DEF_CMD(CmdChangeSetting, CMD_SERVER), // CMD_CHANGE_SETTING
{CmdChangeCompanySetting, 0}, // CMD_CHANGE_COMPANY_SETTING DEF_CMD(CmdChangeCompanySetting, 0), // CMD_CHANGE_COMPANY_SETTING
{CmdSetAutoReplace, 0}, // CMD_SET_AUTOREPLACE DEF_CMD(CmdSetAutoReplace, 0), // CMD_SET_AUTOREPLACE
{CmdCloneVehicle, CMD_NO_TEST}, // CMD_CLONE_VEHICLE; NewGRF callbacks influence building and refitting making it impossible to correctly estimate the cost DEF_CMD(CmdCloneVehicle, CMD_NO_TEST), // CMD_CLONE_VEHICLE; NewGRF callbacks influence building and refitting making it impossible to correctly estimate the cost
{CmdStartStopVehicle, 0}, // CMD_START_STOP_VEHICLE DEF_CMD(CmdStartStopVehicle, 0), // CMD_START_STOP_VEHICLE
{CmdMassStartStopVehicle, 0}, // CMD_MASS_START_STOP DEF_CMD(CmdMassStartStopVehicle, 0), // CMD_MASS_START_STOP
{CmdAutoreplaceVehicle, 0}, // CMD_AUTOREPLACE_VEHICLE DEF_CMD(CmdAutoreplaceVehicle, 0), // CMD_AUTOREPLACE_VEHICLE
{CmdDepotSellAllVehicles, 0}, // CMD_DEPOT_SELL_ALL_VEHICLES DEF_CMD(CmdDepotSellAllVehicles, 0), // CMD_DEPOT_SELL_ALL_VEHICLES
{CmdDepotMassAutoReplace, 0}, // CMD_DEPOT_MASS_AUTOREPLACE DEF_CMD(CmdDepotMassAutoReplace, 0), // CMD_DEPOT_MASS_AUTOREPLACE
{CmdCreateGroup, 0}, // CMD_CREATE_GROUP DEF_CMD(CmdCreateGroup, 0), // CMD_CREATE_GROUP
{CmdDeleteGroup, 0}, // CMD_DELETE_GROUP DEF_CMD(CmdDeleteGroup, 0), // CMD_DELETE_GROUP
{CmdRenameGroup, 0}, // CMD_RENAME_GROUP DEF_CMD(CmdRenameGroup, 0), // CMD_RENAME_GROUP
{CmdAddVehicleGroup, 0}, // CMD_ADD_VEHICLE_GROUP DEF_CMD(CmdAddVehicleGroup, 0), // CMD_ADD_VEHICLE_GROUP
{CmdAddSharedVehicleGroup, 0}, // CMD_ADD_SHARE_VEHICLE_GROUP DEF_CMD(CmdAddSharedVehicleGroup, 0), // CMD_ADD_SHARE_VEHICLE_GROUP
{CmdRemoveAllVehiclesGroup, 0}, // CMD_REMOVE_ALL_VEHICLES_GROUP DEF_CMD(CmdRemoveAllVehiclesGroup, 0), // CMD_REMOVE_ALL_VEHICLES_GROUP
{CmdSetGroupReplaceProtection, 0}, // CMD_SET_GROUP_REPLACE_PROTECTION DEF_CMD(CmdSetGroupReplaceProtection, 0), // CMD_SET_GROUP_REPLACE_PROTECTION
{CmdMoveOrder, 0}, // CMD_MOVE_ORDER DEF_CMD(CmdMoveOrder, 0), // CMD_MOVE_ORDER
{CmdChangeTimetable, 0}, // CMD_CHANGE_TIMETABLE DEF_CMD(CmdChangeTimetable, 0), // CMD_CHANGE_TIMETABLE
{CmdSetVehicleOnTime, 0}, // CMD_SET_VEHICLE_ON_TIME DEF_CMD(CmdSetVehicleOnTime, 0), // CMD_SET_VEHICLE_ON_TIME
{CmdAutofillTimetable, 0}, // CMD_AUTOFILL_TIMETABLE DEF_CMD(CmdAutofillTimetable, 0), // CMD_AUTOFILL_TIMETABLE
{CmdSetTimetableStart, 0}, // CMD_SET_TIMETABLE_START DEF_CMD(CmdSetTimetableStart, 0), // CMD_SET_TIMETABLE_START
}; };
/*! /*!
@@ -362,6 +364,20 @@ byte GetCommandFlags(uint32 cmd)
return _command_proc_table[cmd & CMD_ID_MASK].flags; return _command_proc_table[cmd & CMD_ID_MASK].flags;
} }
/*!
* This function mask the parameter with CMD_ID_MASK and returns
* the name which belongs to the given command.
*
* @param cmd The integer value of the command
* @return The name for this command
*/
const char *GetCommandName(uint32 cmd)
{
assert(IsValidCommand(cmd));
return _command_proc_table[cmd & CMD_ID_MASK].name;
}
static int _docommand_recursive = 0; static int _docommand_recursive = 0;
/** /**
@@ -640,7 +656,7 @@ CommandCost DoCommandPInternal(TileIndex tile, uint32 p1, uint32 p2, uint32 cmd,
return_dcpi(CommandCost(), false); return_dcpi(CommandCost(), false);
} }
#endif /* ENABLE_NETWORK */ #endif /* ENABLE_NETWORK */
DEBUG(desync, 1, "cmd: %08x; %08x; %1x; %06x; %08x; %08x; %04x; %s\n", _date, _date_fract, (int)_current_company, tile, p1, p2, cmd & ~CMD_NETWORK_COMMAND, text); DEBUG(desync, 1, "cmd: %08x; %02x; %02x; %06x; %08x; %08x; %08x; \"%s\" (%s)", _date, _date_fract, (int)_current_company, tile, p1, p2, cmd & ~CMD_NETWORK_COMMAND, text, GetCommandName(cmd));
/* Actually try and execute the command. If no cost-type is given /* Actually try and execute the command. If no cost-type is given
* use the construction one */ * use the construction one */
@@ -662,6 +678,9 @@ CommandCost DoCommandPInternal(TileIndex tile, uint32 p1, uint32 p2, uint32 cmd,
/* If we're needing more money and we haven't done /* If we're needing more money and we haven't done
* anything yet, ask for the money! */ * anything yet, ask for the money! */
if (_additional_cash_required != 0 && res2.GetCost() == 0) { if (_additional_cash_required != 0 && res2.GetCost() == 0) {
/* It could happen we removed rail, thus gained money, and deleted something else.
* So make sure the signal buffer is empty even in this case */
UpdateSignalsInBuffer();
SetDParam(0, _additional_cash_required); SetDParam(0, _additional_cash_required);
return_dcpi(CommandCost(STR_ERROR_NOT_ENOUGH_CASH_REQUIRES_CURRENCY), false); return_dcpi(CommandCost(STR_ERROR_NOT_ENOUGH_CASH_REQUIRES_CURRENCY), false);
} }

View File

@@ -67,6 +67,10 @@ bool IsValidCommand(uint32 cmd);
* Returns the flags from a given command. * Returns the flags from a given command.
*/ */
byte GetCommandFlags(uint32 cmd); byte GetCommandFlags(uint32 cmd);
/**
* Returns the name of a given command.
*/
const char *GetCommandName(uint32 cmd);
/** /**
* Returns the current money available which can be used for a command. * Returns the current money available which can be used for a command.
*/ */

View File

@@ -382,8 +382,9 @@ typedef CommandCost CommandProc(TileIndex tile, DoCommandFlag flags, uint32 p1,
* the #CMD_AUTO, #CMD_OFFLINE and #CMD_SERVER values. * the #CMD_AUTO, #CMD_OFFLINE and #CMD_SERVER values.
*/ */
struct Command { struct Command {
CommandProc *proc; CommandProc *proc; ///< The procedure to actually executing
byte flags; const char *name; ///< A human readable name for the procedure
byte flags; ///< The (command) flags to that apply to this command
}; };
/** /**

View File

@@ -15,6 +15,7 @@
#include "company_gui.h" #include "company_gui.h"
#include "town.h" #include "town.h"
#include "news_func.h" #include "news_func.h"
#include "cmd_helper.h"
#include "command_func.h" #include "command_func.h"
#include "network/network.h" #include "network/network.h"
#include "network/network_func.h" #include "network/network_func.h"
@@ -78,6 +79,8 @@ void Company::PostDestructor(size_t index)
InvalidateWindowData(WC_GRAPH_LEGEND, 0, (int)index); InvalidateWindowData(WC_GRAPH_LEGEND, 0, (int)index);
InvalidateWindowData(WC_PERFORMANCE_DETAIL, 0, (int)index); InvalidateWindowData(WC_PERFORMANCE_DETAIL, 0, (int)index);
InvalidateWindowData(WC_COMPANY_LEAGUE, 0, 0); InvalidateWindowData(WC_COMPANY_LEAGUE, 0, 0);
/* If the currently shown error message has this company in it, the close it. */
InvalidateWindowData(WC_ERRMSG, 0);
} }
/** /**
@@ -589,14 +592,11 @@ static void HandleBankruptcyTakeover(Company *c)
SetBit(c->bankrupt_asked, best->index); SetBit(c->bankrupt_asked, best->index);
if (IsInteractiveCompany(best->index)) { c->bankrupt_timeout = TAKE_OVER_TIMEOUT;
c->bankrupt_timeout = TAKE_OVER_TIMEOUT;
ShowBuyCompanyDialog(c->index);
return;
}
if (best->is_ai) { if (best->is_ai) {
AI::NewEvent(best->index, new AIEventCompanyAskMerger(c->index, ClampToI32(c->bankrupt_value))); AI::NewEvent(best->index, new AIEventCompanyAskMerger(c->index, ClampToI32(c->bankrupt_value)));
} else if (IsInteractiveCompany(best->index)) {
ShowBuyCompanyDialog(c->index);
} }
} }
@@ -895,14 +895,11 @@ CommandCost CmdSetCompanyManagerFace(TileIndex tile, DoCommandFlag flags, uint32
*/ */
CommandCost CmdSetCompanyColour(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text) CommandCost CmdSetCompanyColour(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
{ {
if (p2 >= 16) return CMD_ERROR; // max 16 colours Colours colour = Extract<Colours, 0, 4>(p2);
LiveryScheme scheme = Extract<LiveryScheme, 0, 8>(p1);
Colours colour = (Colours)p2;
LiveryScheme scheme = (LiveryScheme)GB(p1, 0, 8);
byte state = GB(p1, 8, 2); byte state = GB(p1, 8, 2);
if (scheme >= LS_END || state >= 3) return CMD_ERROR; if (scheme >= LS_END || state >= 3 || colour == INVALID_COLOUR) return CMD_ERROR;
Company *c = Company::Get(_current_company); Company *c = Company::Get(_current_company);
@@ -963,6 +960,13 @@ CommandCost CmdSetCompanyColour(TileIndex tile, DoCommandFlag flags, uint32 p1,
ResetVehicleColourMap(); ResetVehicleColourMap();
MarkWholeScreenDirty(); MarkWholeScreenDirty();
/* All graph related to companies use the company colour. */
InvalidateWindowData(WC_INCOME_GRAPH, 0);
InvalidateWindowData(WC_OPERATING_PROFIT, 0);
InvalidateWindowData(WC_DELIVERED_CARGO, 0);
InvalidateWindowData(WC_PERFORMANCE_HISTORY, 0);
InvalidateWindowData(WC_COMPANY_VALUE, 0);
/* Company colour data is indirectly cached. */ /* Company colour data is indirectly cached. */
Vehicle *v; Vehicle *v;
FOR_ALL_VEHICLES(v) { FOR_ALL_VEHICLES(v) {

View File

@@ -50,7 +50,7 @@ static void IConsoleWriteToLogFile(const char *string)
if (_iconsole_output_file != NULL) { if (_iconsole_output_file != NULL) {
/* if there is an console output file ... also print it there */ /* if there is an console output file ... also print it there */
const char *header = GetLogPrefix(); const char *header = GetLogPrefix();
if (fwrite(header, strlen(header), 1, _iconsole_output_file) != 1 || if ((strlen(header) != 0 && fwrite(header, strlen(header), 1, _iconsole_output_file) != 1) ||
fwrite(string, strlen(string), 1, _iconsole_output_file) != 1 || fwrite(string, strlen(string), 1, _iconsole_output_file) != 1 ||
fwrite("\n", 1, 1, _iconsole_output_file) != 1) { fwrite("\n", 1, 1, _iconsole_output_file) != 1) {
fclose(_iconsole_output_file); fclose(_iconsole_output_file);
@@ -437,6 +437,10 @@ void IConsoleCmdExec(const char *cmdstr)
break; break;
case '"': // Tokens enclosed in "" are one token case '"': // Tokens enclosed in "" are one token
longtoken = !longtoken; longtoken = !longtoken;
if (!foundtoken) {
tokens[t_index++] = &tokenstream[tstream_i];
foundtoken = true;
}
break; break;
case '\\': // Escape character for "" case '\\': // Escape character for ""
if (cmdptr[1] == '"' && tstream_i + 1 < lengthof(tokenstream)) { if (cmdptr[1] == '"' && tstream_i + 1 < lengthof(tokenstream)) {

View File

@@ -252,7 +252,18 @@ static const FiosItem *GetFiosItem(const char *file)
int i = strtol(file, &endptr, 10); int i = strtol(file, &endptr, 10);
if (file == endptr || *endptr != '\0') i = -1; if (file == endptr || *endptr != '\0') i = -1;
return IsInsideMM(i, 0, _fios_items.Length()) ? _fios_items.Get(i) : NULL; if (IsInsideMM(i, 0, _fios_items.Length())) return _fios_items.Get(i);
/* As a last effort assume it is an OpenTTD savegame and
* that the ".sav" part was not given. */
char long_file[MAX_PATH];
seprintf(long_file, lastof(long_file), "%s.sav", file);
for (const FiosItem *item = _fios_items.Begin(); item != _fios_items.End(); item++) {
if (strcmp(long_file, item->name) == 0) return item;
if (strcmp(long_file, item->title) == 0) return item;
}
return NULL;
} }
@@ -391,12 +402,59 @@ DEF_CONSOLE_CMD(ConClearBuffer)
**********************************/ **********************************/
#ifdef ENABLE_NETWORK #ifdef ENABLE_NETWORK
static bool ConKickOrBan(const char *argv, bool ban)
{
const char *ip = argv;
if (strchr(argv, '.') == NULL && strchr(argv, ':') == NULL) { // banning with ID
ClientID client_id = (ClientID)atoi(argv);
if (client_id == CLIENT_ID_SERVER) {
IConsolePrintF(CC_ERROR, "ERROR: Silly boy, you can not %s yourself!", ban ? "ban" : "kick");
return true;
}
NetworkClientInfo *ci = NetworkFindClientInfoFromClientID(client_id);
if (ci == NULL) {
IConsoleError("Invalid client");
return true;
}
if (!ban) {
/* Kick only this client, not all clients with that IP */
NetworkServerKickClient(client_id);
return true;
}
/* When banning, kick+ban all clients with that IP */
ip = GetClientIP(ci);
}
uint n = NetworkServerKickOrBanIP(ip, ban);
if (n == 0) {
IConsolePrint(CC_DEFAULT, ban ? "Client not online, address added to banlist" : "Client not found");
} else {
IConsolePrintF(CC_DEFAULT, "%sed %u client(s)", ban ? "Bann" : "Kick", n);
}
return true;
}
DEF_CONSOLE_CMD(ConKick)
{
if (argc == 0) {
IConsoleHelp("Kick a client from a network game. Usage: 'kick <ip | client-id>'");
IConsoleHelp("For client-id's, see the command 'clients'");
return true;
}
if (argc != 2) return false;
return ConKickOrBan(argv[1], false);
}
DEF_CONSOLE_CMD(ConBan) DEF_CONSOLE_CMD(ConBan)
{ {
NetworkClientInfo *ci;
const char *banip = NULL;
ClientID client_id;
if (argc == 0) { if (argc == 0) {
IConsoleHelp("Ban a client from a network game. Usage: 'ban <ip | client-id>'"); IConsoleHelp("Ban a client from a network game. Usage: 'ban <ip | client-id>'");
IConsoleHelp("For client-id's, see the command 'clients'"); IConsoleHelp("For client-id's, see the command 'clients'");
@@ -406,39 +464,7 @@ DEF_CONSOLE_CMD(ConBan)
if (argc != 2) return false; if (argc != 2) return false;
if (strchr(argv[1], '.') == NULL && strchr(argv[1], ':') == NULL) { // banning with ID return ConKickOrBan(argv[1], true);
client_id = (ClientID)atoi(argv[1]);
ci = NetworkFindClientInfoFromClientID(client_id);
} else { // banning IP
ci = NetworkFindClientInfoFromIP(argv[1]);
if (ci == NULL) {
banip = argv[1];
client_id = (ClientID)-1;
} else {
client_id = ci->client_id;
}
}
if (client_id == CLIENT_ID_SERVER) {
IConsoleError("Silly boy, you can not ban yourself!");
return true;
}
if (client_id == INVALID_CLIENT_ID || (ci == NULL && client_id != (ClientID)-1)) {
IConsoleError("Invalid client");
return true;
}
if (ci != NULL) {
IConsolePrint(CC_DEFAULT, "Client banned");
banip = GetClientIP(ci);
} else {
IConsolePrint(CC_DEFAULT, "Client not online, banned IP");
}
NetworkServerBanIP(banip);
return true;
} }
DEF_CONSOLE_CMD(ConUnBan) DEF_CONSOLE_CMD(ConUnBan)
@@ -595,46 +621,6 @@ DEF_CONSOLE_CMD(ConClientNickChange)
return true; return true;
} }
DEF_CONSOLE_CMD(ConKick)
{
NetworkClientInfo *ci;
ClientID client_id;
if (argc == 0) {
IConsoleHelp("Kick a client from a network game. Usage: 'kick <ip | client-id>'");
IConsoleHelp("For client-id's, see the command 'clients'");
return true;
}
if (argc != 2) return false;
if (strchr(argv[1], '.') == NULL) {
client_id = (ClientID)atoi(argv[1]);
ci = NetworkFindClientInfoFromClientID(client_id);
} else {
ci = NetworkFindClientInfoFromIP(argv[1]);
client_id = (ci == NULL) ? INVALID_CLIENT_ID : ci->client_id;
}
if (client_id == CLIENT_ID_SERVER) {
IConsoleError("Silly boy, you can not kick yourself!");
return true;
}
if (client_id == INVALID_CLIENT_ID) {
IConsoleError("Invalid client");
return true;
}
if (ci != NULL) {
NetworkServerKickClient(client_id);
} else {
IConsoleError("Client not found");
}
return true;
}
DEF_CONSOLE_CMD(ConJoinCompany) DEF_CONSOLE_CMD(ConJoinCompany)
{ {
if (argc < 2) { if (argc < 2) {
@@ -814,7 +800,7 @@ DEF_CONSOLE_CMD(ConNetworkConnect)
{ {
if (argc == 0) { if (argc == 0) {
IConsoleHelp("Connect to a remote OTTD server and join the game. Usage: 'connect <ip>'"); IConsoleHelp("Connect to a remote OTTD server and join the game. Usage: 'connect <ip>'");
IConsoleHelp("IP can contain port and company: 'IP[[#Company]:Port]', eg: 'server.ottd.org#2:443'"); IConsoleHelp("IP can contain port and company: 'IP[:Port][#Company]', eg: 'server.ottd.org:443#2'");
IConsoleHelp("Company #255 is spectator all others are a certain company with Company 1 being #1"); IConsoleHelp("Company #255 is spectator all others are a certain company with Company 1 being #1");
return true; return true;
} }
@@ -989,7 +975,7 @@ DEF_CONSOLE_CMD(ConRestart)
/* Don't copy the _newgame pointers to the real pointers, so call SwitchToMode directly */ /* Don't copy the _newgame pointers to the real pointers, so call SwitchToMode directly */
_settings_game.game_creation.map_x = MapLogX(); _settings_game.game_creation.map_x = MapLogX();
_settings_game.game_creation.map_y = FindFirstBit(MapSizeY()); _settings_game.game_creation.map_y = FindFirstBit(MapSizeY());
SwitchToMode(SM_RESTARTGAME); _switch_mode = SM_RESTARTGAME;
return true; return true;
} }

View File

@@ -58,14 +58,16 @@ template <typename Tenum_t> struct EnumPropsT;
* @param Tbegin first valid value from the contiguous range (i.e. TRACK_BEGIN) * @param Tbegin first valid value from the contiguous range (i.e. TRACK_BEGIN)
* @param Tend one past the last valid value from the contiguous range (i.e. TRACK_END) * @param Tend one past the last valid value from the contiguous range (i.e. TRACK_END)
* @param Tinvalid value used as invalid value marker (i.e. INVALID_TRACK) * @param Tinvalid value used as invalid value marker (i.e. INVALID_TRACK)
* @param Tnum_bits Number of bits for storing the enum in command parameters
*/ */
template <typename Tenum_t, typename Tstorage_t, Tenum_t Tbegin, Tenum_t Tend, Tenum_t Tinvalid> template <typename Tenum_t, typename Tstorage_t, Tenum_t Tbegin, Tenum_t Tend, Tenum_t Tinvalid, uint Tnum_bits = 8 * sizeof(Tstorage_t)>
struct MakeEnumPropsT { struct MakeEnumPropsT {
typedef Tenum_t type; ///< enum type (i.e. Trackdir) typedef Tenum_t type; ///< enum type (i.e. Trackdir)
typedef Tstorage_t storage; ///< storage type (i.e. byte) typedef Tstorage_t storage; ///< storage type (i.e. byte)
static const Tenum_t begin = Tbegin; ///< lowest valid value (i.e. TRACKDIR_BEGIN) static const Tenum_t begin = Tbegin; ///< lowest valid value (i.e. TRACKDIR_BEGIN)
static const Tenum_t end = Tend; ///< one after the last valid value (i.e. TRACKDIR_END) static const Tenum_t end = Tend; ///< one after the last valid value (i.e. TRACKDIR_END)
static const Tenum_t invalid = Tinvalid; ///< what value is used as invalid value (i.e. INVALID_TRACKDIR) static const Tenum_t invalid = Tinvalid; ///< what value is used as invalid value (i.e. INVALID_TRACKDIR)
static const uint num_bits = Tnum_bits; ///< Number of bits for storing the enum in command parameters
}; };

View File

@@ -24,9 +24,9 @@ uint32 Randomizer::Next()
return this->state[1] = ROR(s, 3) - 1; return this->state[1] = ROR(s, 3) - 1;
} }
uint32 Randomizer::Next(uint16 max) uint32 Randomizer::Next(uint32 max)
{ {
return GB(this->Next(), 0, 16) * max >> 16; return ((uint64)this->Next() * (uint64)max) >> 32;
} }
void Randomizer::SetSeed(uint32 seed) void Randomizer::SetSeed(uint32 seed)
@@ -55,8 +55,8 @@ uint32 DoRandom(int line, const char *file)
return _random.Next(); return _random.Next();
} }
uint DoRandomRange(uint max, int line, const char *file) uint32 DoRandomRange(uint32 max, int line, const char *file)
{ {
return GB(DoRandom(line, file), 0, 16) * max >> 16; return ((uint64)DoRandom(line, file) * (uint64)max) >> 32;
} }
#endif /* RANDOM_DEBUG */ #endif /* RANDOM_DEBUG */

View File

@@ -48,7 +48,7 @@ struct Randomizer {
* @param max the maximum value of the returned random number * @param max the maximum value of the returned random number
* @return the random number * @return the random number
*/ */
uint32 Next(uint16 max); uint32 Next(uint32 max);
/** /**
* (Re)set the state of the random number generator. * (Re)set the state of the random number generator.
@@ -92,14 +92,14 @@ void SetRandomSeed(uint32 seed);
#endif #endif
uint32 DoRandom(int line, const char *file); uint32 DoRandom(int line, const char *file);
#define RandomRange(max) DoRandomRange(max, __LINE__, __FILE__) #define RandomRange(max) DoRandomRange(max, __LINE__, __FILE__)
uint DoRandomRange(uint max, int line, const char *file); uint32 DoRandomRange(uint32 max, int line, const char *file);
#else #else
static FORCEINLINE uint32 Random() static FORCEINLINE uint32 Random()
{ {
return _random.Next(); return _random.Next();
} }
static FORCEINLINE uint32 RandomRange(uint16 max) static FORCEINLINE uint32 RandomRange(uint32 max)
{ {
return _random.Next(max); return _random.Next(max);
} }
@@ -110,7 +110,7 @@ static FORCEINLINE uint32 InteractiveRandom()
return _interactive_random.Next(); return _interactive_random.Next();
} }
static FORCEINLINE uint32 InteractiveRandomRange(uint16 max) static FORCEINLINE uint32 InteractiveRandomRange(uint32 max)
{ {
return _interactive_random.Next(max); return _interactive_random.Next(max);
} }

View File

@@ -14,43 +14,44 @@
#include "news_func.h" #include "news_func.h"
#include "settings_type.h" #include "settings_type.h"
#include "date_func.h" #include "date_func.h"
#include "string_type.h"
#include "table/strings.h" #include "table/strings.h"
/* exchange rate prefix symbol_pos /* exchange rate prefix symbol_pos
* | separator | postfix | * | separator | postfix |
* | | Euro year | | | name * | | Euro year | | | name
* | | | | | | | */ * | | | | | | | */
static const CurrencySpec origin_currency_specs[NUM_CURRENCY] = { static const CurrencySpec origin_currency_specs[NUM_CURRENCY] = {
{ 1, "", CF_NOEURO, "\xC2\xA3", "", 0, STR_GAME_OPTIONS_CURRENCY_GBP }, ///< british pounds { 1, "", CF_NOEURO, "\xC2\xA3", "", 0, STR_GAME_OPTIONS_CURRENCY_GBP }, ///< british pounds
{ 2, "", CF_NOEURO, "$", "", 0, STR_GAME_OPTIONS_CURRENCY_USD }, ///< us dollars { 2, "", CF_NOEURO, "$", "", 0, STR_GAME_OPTIONS_CURRENCY_USD }, ///< us dollars
{ 2, "", CF_ISEURO, "\xE2\x82\xAC", "", 0, STR_GAME_OPTIONS_CURRENCY_EUR }, ///< Euro { 2, "", CF_ISEURO, "\xE2\x82\xAC", "", 0, STR_GAME_OPTIONS_CURRENCY_EUR }, ///< Euro
{ 220, "", CF_NOEURO, "\xC2\xA5", "", 0, STR_GAME_OPTIONS_CURRENCY_YEN }, ///< yen { 220, "", CF_NOEURO, "\xC2\xA5", "", 0, STR_GAME_OPTIONS_CURRENCY_YEN }, ///< yen
{ 20, "", 2002, "", " S.", 1, STR_GAME_OPTIONS_CURRENCY_ATS }, ///< austrian schilling { 20, "", 2002, "", NBSP"S.", 1, STR_GAME_OPTIONS_CURRENCY_ATS }, ///< austrian schilling
{ 59, "", 2002, "BEF ", "", 0, STR_GAME_OPTIONS_CURRENCY_BEF }, ///< belgian franc { 59, "", 2002, "BEF"NBSP, "", 0, STR_GAME_OPTIONS_CURRENCY_BEF }, ///< belgian franc
{ 2, "", CF_NOEURO, "CHF ", "", 0, STR_GAME_OPTIONS_CURRENCY_CHF }, ///< swiss franc { 2, "", CF_NOEURO, "CHF"NBSP, "", 0, STR_GAME_OPTIONS_CURRENCY_CHF }, ///< swiss franc
{ 41, "", CF_NOEURO, "", " K\xC4\x8D", 1, STR_GAME_OPTIONS_CURRENCY_CZK }, ///< czech koruna { 41, "", CF_NOEURO, "", NBSP"K\xC4\x8D", 1, STR_GAME_OPTIONS_CURRENCY_CZK }, ///< czech koruna
{ 3, "", 2002, "DM ", "", 0, STR_GAME_OPTIONS_CURRENCY_DEM }, ///< deutsche mark { 3, "", 2002, "DM"NBSP, "", 0, STR_GAME_OPTIONS_CURRENCY_DEM }, ///< deutsche mark
{ 11, "", CF_NOEURO, "", " kr", 1, STR_GAME_OPTIONS_CURRENCY_DKK }, ///< danish krone { 11, "", CF_NOEURO, "", NBSP"kr", 1, STR_GAME_OPTIONS_CURRENCY_DKK }, ///< danish krone
{ 245, "", 2002, "Pts ", "", 0, STR_GAME_OPTIONS_CURRENCY_ESP }, ///< spanish pesetas { 245, "", 2002, "Pts"NBSP, "", 0, STR_GAME_OPTIONS_CURRENCY_ESP }, ///< spanish pesetas
{ 9, "", 2002, "", " mk", 1, STR_GAME_OPTIONS_CURRENCY_FIM }, ///< finnish markka { 9, "", 2002, "", NBSP"mk", 1, STR_GAME_OPTIONS_CURRENCY_FIM }, ///< finnish markka
{ 10, "", 2002, "FF ", "", 0, STR_GAME_OPTIONS_CURRENCY_FRF }, ///< french francs { 10, "", 2002, "FF"NBSP, "", 0, STR_GAME_OPTIONS_CURRENCY_FRF }, ///< french francs
{ 500, "", 2002, "", "Dr.", 1, STR_GAME_OPTIONS_CURRENCY_GRD }, ///< greek drachma { 500, "", 2002, "", "Dr.", 1, STR_GAME_OPTIONS_CURRENCY_GRD }, ///< greek drachma
{ 378, "", CF_NOEURO, "", " Ft", 1, STR_GAME_OPTIONS_CURRENCY_HUF }, ///< hungarian forint { 378, "", CF_NOEURO, "", NBSP"Ft", 1, STR_GAME_OPTIONS_CURRENCY_HUF }, ///< hungarian forint
{ 130, "", CF_NOEURO, "", " Kr", 1, STR_GAME_OPTIONS_CURRENCY_ISK }, ///< icelandic krona { 130, "", CF_NOEURO, "", NBSP"Kr", 1, STR_GAME_OPTIONS_CURRENCY_ISK }, ///< icelandic krona
{ 2850, "", 2002, "", " L.", 1, STR_GAME_OPTIONS_CURRENCY_ITL }, ///< italian lira { 2850, "", 2002, "", NBSP"L.", 1, STR_GAME_OPTIONS_CURRENCY_ITL }, ///< italian lira
{ 3, "", 2002, "NLG ", "", 0, STR_GAME_OPTIONS_CURRENCY_NLG }, ///< dutch gulden { 3, "", 2002, "NLG"NBSP, "", 0, STR_GAME_OPTIONS_CURRENCY_NLG }, ///< dutch gulden
{ 12, "", CF_NOEURO, "", " Kr", 1, STR_GAME_OPTIONS_CURRENCY_NOK }, ///< norwegian krone { 12, "", CF_NOEURO, "", NBSP"Kr", 1, STR_GAME_OPTIONS_CURRENCY_NOK }, ///< norwegian krone
{ 6, "", CF_NOEURO, "", " z\xC5\x82", 1, STR_GAME_OPTIONS_CURRENCY_PLN }, ///< polish zloty { 6, "", CF_NOEURO, "", NBSP"z\xC5\x82", 1, STR_GAME_OPTIONS_CURRENCY_PLN }, ///< polish zloty
{ 5, "", CF_NOEURO, "", " Lei", 1, STR_GAME_OPTIONS_CURRENCY_RON }, ///< romanian Lei { 5, "", CF_NOEURO, "", NBSP"Lei", 1, STR_GAME_OPTIONS_CURRENCY_RON }, ///< romanian Lei
{ 50, "", CF_NOEURO, "", " p", 1, STR_GAME_OPTIONS_CURRENCY_RUR }, ///< russian rouble { 50, "", CF_NOEURO, "", NBSP"p", 1, STR_GAME_OPTIONS_CURRENCY_RUR }, ///< russian rouble
{ 352, "", 2007, "", " SIT", 1, STR_GAME_OPTIONS_CURRENCY_SIT }, ///< slovenian tolar { 352, "", 2007, "", NBSP"SIT", 1, STR_GAME_OPTIONS_CURRENCY_SIT }, ///< slovenian tolar
{ 13, "", CF_NOEURO, "", " Kr", 1, STR_GAME_OPTIONS_CURRENCY_SEK }, ///< swedish krona { 13, "", CF_NOEURO, "", NBSP"Kr", 1, STR_GAME_OPTIONS_CURRENCY_SEK }, ///< swedish krona
{ 3, "", CF_NOEURO, "", " TL", 1, STR_GAME_OPTIONS_CURRENCY_TRY }, ///< turkish lira { 3, "", CF_NOEURO, "", NBSP"TL", 1, STR_GAME_OPTIONS_CURRENCY_TRY }, ///< turkish lira
{ 52, "", 2009, "", " Sk", 1, STR_GAME_OPTIONS_CURRENCY_SKK }, ///< slovak koruna { 52, "", 2009, "", NBSP"Sk", 1, STR_GAME_OPTIONS_CURRENCY_SKK }, ///< slovak koruna
{ 4, "", CF_NOEURO, "R$ ", "", 0, STR_GAME_OPTIONS_CURRENCY_BRL }, ///< brazil real { 4, "", CF_NOEURO, "R$"NBSP, "", 0, STR_GAME_OPTIONS_CURRENCY_BRL }, ///< brazil real
{ 20, "", CF_NOEURO, "", " EEK", 1, STR_GAME_OPTIONS_CURRENCY_EEK }, ///< estonian krooni { 20, "", CF_NOEURO, "", NBSP"EEK", 1, STR_GAME_OPTIONS_CURRENCY_EEK }, ///< estonian krooni
{ 1, "", CF_NOEURO, "", "", 2, STR_GAME_OPTIONS_CURRENCY_CUSTOM }, ///< custom currency { 1, "", CF_NOEURO, "", "", 2, STR_GAME_OPTIONS_CURRENCY_CUSTOM }, ///< custom currency
}; };
/* Array of currencies used by the system */ /* Array of currencies used by the system */

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