1
0
mirror of https://github.com/OpenTTD/OpenTTD.git synced 2025-08-14 01:59:09 +00:00

Compare commits

..

38 Commits

Author SHA1 Message Date
rubidium
65d8131ef0 (svn r19742) -Release: 1.0.1 2010-04-30 21:24:33 +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
869 changed files with 43431 additions and 101305 deletions

49
.gitignore vendored
View File

@@ -1,45 +1,12 @@
Makefile*
bin/*
!bin/ai
bin/ai/*
!bin/ai/compat*.nut
!bin/ai/regression
!bin/data
bin/data/*
!bin/data/openttd.grf
!bin/data/opntitle.dat
!bin/data/orig_*.obg
!bin/data/orig_*.obs
!bin/data/no_sound.obs
!bin/gm
bin/gm/*
!bin/gm/no_music.obm
!bin/gm/orig_*.obm
!bin/scripts
bin/scripts/*
!bin/scripts/*.example
!bin/scripts/readme.txt
bundle/*
bundles/*
docs/aidocs/*
docs/source/*
media/openttd.desktop
media/openttd.desktop.install
!bin/data/chars.grf
!bin/data/openttdd.grf
!bin/data/openttdw.grf
!bin/data/opntitle.grf
!bin/scenario/README
!bin/scripts*
config.*
objs/*
projects/Debug
projects/Release
projects/*.ncb
projects/*.suo
projects/*.sdf
projects/*.opensdf
projects/*.vcproj.*.user
projects/*.vcxproj.user
src/rev.cpp
src/os/windows/ottdres.rc
/Makefile*
!/Makefile.msvc
/config.*
!/config.lib
!*.in
*.tmp

View File

@@ -1,26 +1,11 @@
syntax: glob
bin/lang/*
bin/openttd*
bin/*.cfg
bin/opentd*
bundle/*
bundles/*
config.cache*
config.cache.*
config.log
config.pwd
docs/aidocs/*
docs/source/*
Makefile
Makefile.am
Makefile.bundle
media/openttd.desktop
media/openttd.desktop.install
media/openttd.desktop*
objs/*
projects/*.ncb
projects/*.suo
projects/*.sdf
projects/*.opensdf
projects/*.vcproj.*.user
projects/*.vcxproj.user
src/rev.cpp
src/os/windows/ottdres.rc

View File

@@ -72,6 +72,9 @@ endif
$(Q)cp "$(ROOT_DIR)/readme.txt" "$(BUNDLE_DIR)/"
$(Q)cp "$(ROOT_DIR)/COPYING" "$(BUNDLE_DIR)/"
$(Q)cp "$(ROOT_DIR)/known-bugs.txt" "$(BUNDLE_DIR)/"
$(Q)cp "$(ROOT_DIR)/docs/obg_format.txt" "$(BUNDLE_DIR)/docs/"
$(Q)cp "$(ROOT_DIR)/docs/obm_format.txt" "$(BUNDLE_DIR)/docs/"
$(Q)cp "$(ROOT_DIR)/docs/obs_format.txt" "$(BUNDLE_DIR)/docs/"
$(Q)cp "$(ROOT_DIR)/docs/multiplayer.txt" "$(BUNDLE_DIR)/docs/"
$(Q)cp "$(ROOT_DIR)/docs/32bpp.txt" "$(BUNDLE_DIR)/docs/"
$(Q)cp "$(ROOT_DIR)/changelog.txt" "$(BUNDLE_DIR)/"
@@ -85,8 +88,7 @@ endif
$(Q)cp "$(BIN_DIR)/scripts/"* "$(BUNDLE_DIR)/scripts/"
ifdef MENU_DIR
$(Q)cp "$(ROOT_DIR)/media/openttd.desktop" "$(BUNDLE_DIR)/media/"
$(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"
$(Q)cat "$(ROOT_DIR)/media/openttd.desktop" | sed s/=openttd/=$(BINARY_NAME)/g > "$(ROOT_DIR)/media/openttd.desktop.install"
endif
ifeq ($(TTD), openttd.exe)
$(Q)unix2dos "$(BUNDLE_DIR)/docs/"* "$(BUNDLE_DIR)/readme.txt" "$(BUNDLE_DIR)/COPYING" "$(BUNDLE_DIR)/changelog.txt" "$(BUNDLE_DIR)/known-bugs.txt"
@@ -136,13 +138,6 @@ bundle_lzma: bundle
$(Q)cd "$(BUNDLES_DIR)/.lzma" && tar --lzma -c$(shell if test -n "$(VERBOSE)"; then echo 'v'; fi)f "$(BUNDLES_DIR)/$(BUNDLE_NAME).tar.lzma" "$(BUNDLE_NAME)"
$(Q)rm -rf "$(BUNDLES_DIR)/.lzma"
bundle_xz: bundle
@echo '[BUNDLE] Creating $(BUNDLE_NAME).tar.xz'
$(Q)mkdir -p "$(BUNDLES_DIR)/.xz/$(BUNDLE_NAME)"
$(Q)cp -R "$(BUNDLE_DIR)/"* "$(BUNDLES_DIR)/.xz/$(BUNDLE_NAME)/"
$(Q)cd "$(BUNDLES_DIR)/.xz" && tar --xz -c$(shell if test -n "$(VERBOSE)"; then echo 'v'; fi)f "$(BUNDLES_DIR)/$(BUNDLE_NAME).tar.xz" "$(BUNDLE_NAME)"
$(Q)rm -rf "$(BUNDLES_DIR)/.xz"
bundle_lha: bundle
@echo '[BUNDLE] Creating $(BUNDLE_NAME).lha'
$(Q)mkdir -p "$(BUNDLES_DIR)/.lha/$(BUNDLE_NAME)"
@@ -160,7 +155,7 @@ bundle_dmg: bundle
bundle_exe: all
@echo '[BUNDLE] Creating $(BUNDLE_NAME).exe'
$(Q)mkdir -p "$(BUNDLES_DIR)"
$(Q)unix2dos "$(ROOT_DIR)/docs/"*.txt "$(ROOT_DIR)/readme.txt" "$(ROOT_DIR)/COPYING" "$(ROOT_DIR)/changelog.txt" "$(ROOT_DIR)/known-bugs.txt"
$(Q)unix2dos "$(ROOT_DIR)/docs/"* "$(ROOT_DIR)/readme.txt" "$(ROOT_DIR)/COPYING" "$(ROOT_DIR)/changelog.txt" "$(ROOT_DIR)/known-bugs.txt"
$(Q)cd $(ROOT_DIR)/os/windows/installer && makensis.exe //DVERSION_INCLUDE=version_$(PLATFORM).txt install.nsi
$(Q)mv $(ROOT_DIR)/os/windows/installer/*$(PLATFORM).exe "$(BUNDLES_DIR)/$(BUNDLE_NAME).exe"
@@ -178,6 +173,7 @@ install: bundle
$(Q)install -d "$(INSTALL_DATA_DIR)/lang"
$(Q)install -d "$(INSTALL_DATA_DIR)/gm"
$(Q)install -d "$(INSTALL_DATA_DIR)/scripts"
$(Q)install -d "$(INSTALL_DOC_DIR)"
ifeq ($(TTD), openttd.exe)
$(Q)install -m 755 "$(BUNDLE_DIR)/$(TTD)" "$(INSTALL_BINARY_DIR)/${BINARY_NAME}.exe"
else
@@ -188,18 +184,9 @@ endif
$(Q)install -m 644 "$(BUNDLE_DIR)/data/"* "$(INSTALL_DATA_DIR)/data"
$(Q)install -m 644 "$(BUNDLE_DIR)/gm/"* "$(INSTALL_DATA_DIR)/gm"
$(Q)install -m 644 "$(BUNDLE_DIR)/scripts/"* "$(INSTALL_DATA_DIR)/scripts"
ifndef DO_NOT_INSTALL_DOCS
$(Q)install -d "$(INSTALL_DOC_DIR)"
$(Q)install -m 644 "$(BUNDLE_DIR)/docs/"* "$(BUNDLE_DIR)/readme.txt" "$(BUNDLE_DIR)/known-bugs.txt" "$(INSTALL_DOC_DIR)"
endif
ifndef DO_NOT_INSTALL_CHANGELOG
$(Q)install -d "$(INSTALL_DOC_DIR)"
$(Q)install -m 644 "$(BUNDLE_DIR)/changelog.txt" "$(INSTALL_DOC_DIR)"
endif
ifndef DO_NOT_INSTALL_LICENSE
$(Q)install -d "$(INSTALL_DOC_DIR)"
$(Q)install -m 644 "$(BUNDLE_DIR)/docs/"* "$(INSTALL_DOC_DIR)"
$(Q)install -m 644 "$(BUNDLE_DIR)/"*.txt "$(INSTALL_DOC_DIR)"
$(Q)install -m 644 "$(BUNDLE_DIR)/COPYING" "$(INSTALL_DOC_DIR)"
endif
$(Q)install -m 644 "$(BUNDLE_DIR)/media/openttd.32.xpm" "$(INSTALL_ICON_DIR)/${BINARY_NAME}.32.xpm"
ifdef ICON_THEME_DIR
$(Q)install -d "$(INSTALL_ICON_THEME_DIR)"
@@ -219,11 +206,9 @@ else
$(Q)install -m 644 "$(BUNDLE_DIR)/media/"*.png "$(INSTALL_ICON_DIR)"
endif
ifdef MAN_DIR
ifndef DO_NOT_INSTALL_MAN
$(Q)install -d "$(INSTALL_MAN_DIR)"
$(Q)install -m 644 "$(BUNDLE_DIR)/man/openttd.6.gz" "$(INSTALL_MAN_DIR)/${BINARY_NAME}.6.gz"
endif
endif
ifdef MENU_DIR
$(Q)install -d "$(INSTALL_MENU_DIR)"
$(Q)install -m 644 "$(ROOT_DIR)/media/openttd.desktop.install" "$(INSTALL_MENU_DIR)/${BINARY_NAME}.desktop"

View File

@@ -1,80 +0,0 @@
# $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/>.
#
# Building requires GRFCodec and NFORenum. Older versions of GRFCodec are
# known to miscompile the graphics.
#
# Recent nightlies (including sources) of both can be found at:
# http://www.openttd.org/download-grfcodec
# http://www.openttd.org/download-nforenum
#
# The mercurial repository of both can be found at:
# http://hg.openttdcoop.org/grfcodec
# http://hg.openttdcoop.org/nforenum
#
ROOT_DIR = !!ROOT_DIR!!
GRF_DIR = $(ROOT_DIR)/media/extra_grf
BIN_DIR = !!BIN_DIR!!/data
OBJS_DIR = !!GRF_OBJS_DIR!!
OS = !!OS!!
STAGE = !!STAGE!!
# Check if we want to show what we are doing
ifdef VERBOSE
Q =
E = @true
else
Q = @
E = @echo
endif
# Some configurational settings for your environment.
# If GRFCodec doesn't know a command, it'll exit with a non-zero exit code.
GRFCODEC := $(shell grfcodec -s -v >/dev/null 2>/dev/null && echo "grfcodec -s" || echo "grfcodec")
# Old NFORenums don't give an error code when a parameter isn't known, so we have to work around that.
NFORENUM := $(shell [ `nforenum -s -v 2>/dev/null | wc -l ` -eq 1 ] && echo "nforenum -s" || echo "nforenum")
MD5SUM := $(shell [ "$(OS)" = "OSX" ] && echo "md5 -r" || echo "md5sum")
# Some "should not be changed" settings.
NFO_FILES := $(GRF_DIR)/*.nfo
PNG_FILES := $(GRF_DIR)/*.png
# Build the GRF.
all: $(BIN_DIR)/openttd.grf
# Make sure the sprites directory exists.
$(OBJS_DIR)/sprites:
$(Q)-mkdir "$@"
# Generic
$(BIN_DIR)/openttd.grf: $(PNG_FILES) $(NFO_FILES) $(OBJS_DIR)/sprites
@# Only try; if nforenum isn't available, just retouch the file as they likely didn't need it anyway.
$(Q) ($(NFORENUM) --help > /dev/null 2>&1 && $(MAKE) $(OBJS_DIR)/openttd.grf && cp $(OBJS_DIR)/openttd.grf $(BIN_DIR)/openttd.grf) || ([ -e $(BIN_DIR)/openttd.grf ] && touch $(BIN_DIR)/openttd.grf && echo "no NFORenum and GRFCodec found, skipping rebuild of openttd.grf...") || (echo "no NFORenum and GRFCodec found, but no openttd.grf either. Install NFORenum and GRFCodec." && exit 1)
# Yeah, we'd like to use -i in the sed, but Mac OS X's sed and GNU sed just can't agree on the usage of -i. In any case either one of them fails.
$(OBJS_DIR)/openttd.grf: $(PNG_FILES) $(NFO_FILES) $(OBJS_DIR)/sprites
$(E) '$(STAGE) Assembling openttd.nfo'
$(Q)-cp $(PNG_FILES) $(OBJS_DIR)/sprites 2> /dev/null
$(Q) gcc -I$(GRF_DIR) -C -E - < "$(GRF_DIR)/openttd.nfo" | sed -e '/^#/d' -e '/^$$/d' > $(OBJS_DIR)/sprites/openttd.nfo
$(Q) $(NFORENUM) $(OBJS_DIR)/sprites/openttd.nfo
$(E) '$(STAGE) Compiling openttd.grf'
$(Q) $(GRFCODEC) -e -p1 $(OBJS_DIR)/openttd.grf
$(Q) cp $(OBJS_DIR)/openttd.grf $(BIN_DIR)/openttd.grf
$(E) '$(STAGE) Updating base graphics sets'
$(Q) for grf in $(BIN_DIR)/orig*.obg; do sed 's/^OPENTTD.GRF = [0-9a-f]*$$/OPENTTD.GRF = '`$(MD5SUM) $(BIN_DIR)/openttd.grf | sed 's@ .*@@'`'/' $$grf > $$grf.tmp && mv $$grf.tmp $$grf; done
# Clean up temporary files.
clean:
$(Q)rm -f *.bak *.grf
# Clean up temporary files
mrproper: clean
$(Q)rm -fr sprites
.PHONY: all mrproper depend clean

View File

@@ -43,7 +43,6 @@ OSXAPP = !!OSXAPP!!
LIPO = !!LIPO!!
REVISION = !!REVISION!!
AWK = !!AWK!!
SORT = !!SORT!!
DISTCC = !!DISTCC!!
RES := $(shell if [ ! -f $(CONFIG_CACHE_PWD) ] || [ "`pwd`" != "`cat $(CONFIG_CACHE_PWD)`" ]; then echo "`pwd`" > $(CONFIG_CACHE_PWD); fi )
@@ -54,7 +53,7 @@ ifdef DISTCC
@if [ -z "`echo '$(MFLAGS)' | grep '\-j'`" ]; then echo; echo "WARNING: you enabled distcc support, but you don't seem to be using the -jN paramter"; echo; fi
endif
@for dir in $(DIRS); do \
$(MAKE) -C $$dir all || exit 1; \
$(MAKE) -C $$dir all; \
done
ifdef LIPO
# Lipo is an OSX thing. If it is defined, it means we are building for universal,
@@ -147,9 +146,6 @@ mrproper:
$(Q)rm -rf $(BIN_DIR)/ai/regression/content_download $(BIN_DIR)/ai/regression/save $(BIN_DIR)/ai/regression/scenario
distclean: mrproper
maintainer-clean: distclean
$(Q)rm -f $(BIN_DIR)/data/openttd.grf
depend:
@for dir in $(SRC_DIRS); do \
$(MAKE) -C $$dir depend; \

View File

@@ -256,17 +256,17 @@ ifeq ($(OS), PSP)
# Because of a bug in the PSP GCC tools, linking via CXX results
# in total chaos and more problems then you can handle. So we need
# CC to link OpenTTD for PSP
$(Q)+$(CC_HOST) $(LDFLAGS) $(OBJS) $(LIBS) -o $@
$(Q)$(CC_HOST) $(LDFLAGS) $(OBJS) $(LIBS) -o $@
else
$(Q)+$(CXX_HOST) $(LDFLAGS) $(OBJS) $(LIBS) -o $@
$(Q)$(CXX_HOST) $(LDFLAGS) $(OBJS) $(LIBS) -o $@
endif
ifdef STRIP
$(Q)$(STRIP) $@
endif
ifeq ($(OS), DOS)
$(E) '$(STAGE) Adding CWSDPMI stub to $@'
$(Q)$(ROOT_DIR)/os/dos/make_dos_binary_selfcontained.sh $(SRC_OBJS_DIR)/$@
endif
endif
# The targets to compile the endian-code

View File

@@ -258,64 +258,3 @@ class AIWaypointList extends _AIWaypointList {
::_AIWaypointList.constructor(AIWaypoint.WAYPOINT_RAIL);
}
}
AIRoad._BuildRoadStation <- AIRoad.BuildRoadStation;
AIRoad.BuildRoadStation <- function(tile, front, road_veh_type, station_id)
{
if (AIRoad.IsRoadStationTile(tile) && AICompany.IsMine(AITile.GetOwner(tile))) return false;
return AIRoad._BuildRoadStation(tile, front, road_veh_type, station_id);
}
AIRoad._BuildDriveThroughRoadStation <- AIRoad.BuildDriveThroughRoadStation;
AIRoad.BuildDriveThroughRoadStation <- function(tile, front, road_veh_type, station_id)
{
if (AIRoad.IsRoadStationTile(tile) && AICompany.IsMine(AITile.GetOwner(tile))) return false;
return AIRoad._BuildDriveThroughRoadStation(tile, front, road_veh_type, station_id);
}
AIBridgeList.HasNext <-
AIBridgeList_Length.HasNext <-
AICargoList.HasNext <-
AICargoList_IndustryAccepting.HasNext <-
AICargoList_IndustryProducing.HasNext <-
AIDepotList.HasNext <-
AIEngineList.HasNext <-
AIGroupList.HasNext <-
AIIndustryList.HasNext <-
AIIndustryList_CargoAccepting.HasNext <-
AIIndustryList_CargoProducing.HasNext <-
AIIndustryTypeList.HasNext <-
AIList.HasNext <-
AIRailTypeList.HasNext <-
AISignList.HasNext <-
AIStationList.HasNext <-
AIStationList_Vehicle.HasNext <-
AISubsidyList.HasNext <-
AITileList.HasNext <-
AITileList_IndustryAccepting.HasNext <-
AITileList_IndustryProducing.HasNext <-
AITileList_StationType.HasNext <-
AITownList.HasNext <-
AIVehicleList.HasNext <-
AIVehicleList_DefaultGroup.HasNext <-
AIVehicleList_Group.HasNext <-
AIVehicleList_SharedOrders.HasNext <-
AIVehicleList_Station.HasNext <-
AIWaypointList.HasNext <-
AIWaypointList_Vehicle.HasNext <-
function()
{
return !this.IsEnd();
}
AIIndustry._IsCargoAccepted <- AIIndustry.IsCargoAccepted;
AIIndustry.IsCargoAccepted <- function(industry_id, cargo_id)
{
return AIIndustry._IsCargoAccepted(industry_id, cargo_id) != AIIndustry.CAS_NOT_ACCEPTED;
}
AIAbstractList <- AIList;
AIList.ChangeItem <- AIList.SetValue;

View File

@@ -6,67 +6,3 @@
* OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
*/
AILog.Info("1.0 API compatability in effect.");
AIRoad._BuildRoadStation <- AIRoad.BuildRoadStation;
AIRoad.BuildRoadStation <- function(tile, front, road_veh_type, station_id)
{
if (AIRoad.IsRoadStationTile(tile) && AICompany.IsMine(AITile.GetOwner(tile))) return false;
return AIRoad._BuildRoadStation(tile, front, road_veh_type, station_id);
}
AIRoad._BuildDriveThroughRoadStation <- AIRoad.BuildDriveThroughRoadStation;
AIRoad.BuildDriveThroughRoadStation <- function(tile, front, road_veh_type, station_id)
{
if (AIRoad.IsRoadStationTile(tile) && AICompany.IsMine(AITile.GetOwner(tile))) return false;
return AIRoad._BuildDriveThroughRoadStation(tile, front, road_veh_type, station_id);
}
AIBridgeList.HasNext <-
AIBridgeList_Length.HasNext <-
AICargoList.HasNext <-
AICargoList_IndustryAccepting.HasNext <-
AICargoList_IndustryProducing.HasNext <-
AIDepotList.HasNext <-
AIEngineList.HasNext <-
AIGroupList.HasNext <-
AIIndustryList.HasNext <-
AIIndustryList_CargoAccepting.HasNext <-
AIIndustryList_CargoProducing.HasNext <-
AIIndustryTypeList.HasNext <-
AIList.HasNext <-
AIRailTypeList.HasNext <-
AISignList.HasNext <-
AIStationList.HasNext <-
AIStationList_Vehicle.HasNext <-
AISubsidyList.HasNext <-
AITileList.HasNext <-
AITileList_IndustryAccepting.HasNext <-
AITileList_IndustryProducing.HasNext <-
AITileList_StationType.HasNext <-
AITownList.HasNext <-
AIVehicleList.HasNext <-
AIVehicleList_DefaultGroup.HasNext <-
AIVehicleList_Depot.HasNext <-
AIVehicleList_Group.HasNext <-
AIVehicleList_SharedOrders.HasNext <-
AIVehicleList_Station.HasNext <-
AIWaypointList.HasNext <-
AIWaypointList_Vehicle.HasNext <-
function()
{
return !this.IsEnd();
}
AIIndustry._IsCargoAccepted <- AIIndustry.IsCargoAccepted;
AIIndustry.IsCargoAccepted <- function(industry_id, cargo_id)
{
return AIIndustry._IsCargoAccepted(industry_id, cargo_id) != AIIndustry.CAS_NOT_ACCEPTED;
}
AIAbstractList <- AIList;
AIList.ChangeItem <- AIList.SetValue;

View File

@@ -1,8 +0,0 @@
/* $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/>.
*/

View File

@@ -35,7 +35,7 @@ function Regression::TestInit()
list.AddItem(35, 40);
list.AddItem(40, 40);
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
list.RemoveItem(i - 10);
list.RemoveItem(i - 5);
list.RemoveItem(i);
@@ -48,17 +48,17 @@ function Regression::TestInit()
list.AddItem(40, 40);
print("");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
list.SetValue(i, 2);
print(" " + i);
}
print("");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i);
}
list = AIList();
list.Sort(AIList.SORT_BY_VALUE, AIList.SORT_ASCENDING);
list.Sort(AIAbstractList.SORT_BY_VALUE, AIAbstractList.SORT_ASCENDING);
print("");
print(" Value Ascending");
list.AddItem( 5, 10);
@@ -70,7 +70,7 @@ function Regression::TestInit()
list.AddItem(35, 40);
list.AddItem(40, 40);
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
list.RemoveItem(i + 10);
list.RemoveItem(i + 5);
list.RemoveItem(i);
@@ -83,17 +83,17 @@ function Regression::TestInit()
list.AddItem(40, 40);
print("");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
list.SetValue(i, 50);
print(" " + i);
}
print("");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i);
}
list = AIList();
list.Sort(AIList.SORT_BY_ITEM, AIList.SORT_DESCENDING);
list.Sort(AIAbstractList.SORT_BY_ITEM, AIAbstractList.SORT_DESCENDING);
print("");
print(" Item Descending");
list.AddItem( 5, 10);
@@ -105,7 +105,7 @@ function Regression::TestInit()
list.AddItem(35, 40);
list.AddItem(40, 40);
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
list.RemoveItem(i - 10);
list.RemoveItem(i - 5);
list.RemoveItem(i);
@@ -118,17 +118,17 @@ function Regression::TestInit()
list.AddItem(40, 40);
print("");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
list.SetValue(i, 2);
print(" " + i);
}
print("");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i);
}
list = AIList();
list.Sort(AIList.SORT_BY_ITEM, AIList.SORT_ASCENDING);
list.Sort(AIAbstractList.SORT_BY_ITEM, AIAbstractList.SORT_ASCENDING);
print("");
print(" Item Ascending");
list.AddItem( 5, 10);
@@ -140,7 +140,7 @@ function Regression::TestInit()
list.AddItem(35, 40);
list.AddItem(40, 40);
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
list.RemoveItem(i + 10);
list.RemoveItem(i + 5);
list.RemoveItem(i);
@@ -153,12 +153,12 @@ function Regression::TestInit()
list.AddItem(40, 40);
print("");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
list.SetValue(i, 50);
print(" " + i);
}
print("");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i);
}
@@ -283,22 +283,22 @@ function Regression::BridgeList()
print(" Count(): " + list.Count());
list.Valuate(AIBridge.GetMaxSpeed);
print(" MaxSpeed ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
list.Valuate(AIBridge.GetPrice, 5);
print(" Price ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
list.Valuate(AIBridge.GetMaxLength);
print(" MaxLength ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
list.Valuate(AIBridge.GetMinLength);
print(" MinLength ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
@@ -309,12 +309,12 @@ function Regression::BridgeList()
print(" Count(): " + list.Count());
list.Valuate(AIBridge.GetMaxSpeed);
print(" MaxSpeed ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
list.Valuate(AIBridge.GetPrice, 14);
print(" Price ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
}
@@ -347,13 +347,13 @@ function Regression::CargoList()
print(" Count(): " + list.Count());
list.Valuate(AICargo.IsFreight);
print(" IsFreight ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
list.Valuate(AICargo.GetCargoIncome, 100, 100);
print(" CargoIncomes(100, 100) ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
@@ -362,7 +362,7 @@ function Regression::CargoList()
print("--CargoList_IndustryAccepting--");
print(" Count(): " + list.Count());
print(" ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i);
}
@@ -371,7 +371,7 @@ function Regression::CargoList()
print("--CargoList_IndustryProducing--");
print(" Count(): " + list.Count());
print(" ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i);
}
}
@@ -479,27 +479,27 @@ function Regression::EngineList()
print(" Count(): " + list.Count());
list.Valuate(AIEngine.GetCargoType);
print(" CargoType ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
list.Valuate(AIEngine.GetCapacity);
print(" Capacity ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
list.Valuate(AIEngine.GetReliability);
print(" Reliability ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
list.Valuate(AIEngine.GetMaxSpeed);
print(" MaxSpeed ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
list.Valuate(AIEngine.GetPrice);
print(" Price ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
}
@@ -585,8 +585,8 @@ function Regression::Industry()
print("--Industry--");
print(" GetIndustryCount(): " + AIIndustry.GetIndustryCount());
local list = AIIndustryList();
list.Sort(AIList.SORT_BY_ITEM, AIList.SORT_ASCENDING);
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
list.Sort(AIAbstractList.SORT_BY_ITEM, AIAbstractList.SORT_ASCENDING);
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
if (AIIndustry.IsValidIndustry(i)) j++;
print(" Industry " + i);
print(" IsValidIndustry(): " + AIIndustry.IsValidIndustry(i));
@@ -595,7 +595,7 @@ function Regression::Industry()
print(" IsCargoAccepted(): " + AIIndustry.IsCargoAccepted(i, 1));
local cargo_list = AICargoList();
for (local j = cargo_list.Begin(); !cargo_list.IsEnd(); j = cargo_list.Next()) {
for (local j = cargo_list.Begin(); cargo_list.HasNext(); j = cargo_list.Next()) {
if (AIIndustry.IsCargoAccepted(i, j) || AIIndustry.GetLastMonthProduction(i,j) >= 0) {
print(" GetLastMonthProduction(): " + AIIndustry.GetLastMonthProduction(i, j));
print(" GetLastMonthTransported(): " + AIIndustry.GetLastMonthTransported(i, j));
@@ -605,8 +605,6 @@ function Regression::Industry()
}
print(" Valid Industries: " + j);
print(" GetIndustryCount(): " + AIIndustry.GetIndustryCount());
print(" GetIndustryID(): " + AIIndustry.GetIndustryID(19694));
print(" GetIndustryID(): " + AIIndustry.GetIndustryID(19695));
}
function Regression::IndustryList()
@@ -618,27 +616,27 @@ function Regression::IndustryList()
print(" Count(): " + list.Count());
list.Valuate(AIIndustry.GetLocation);
print(" Location ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
list.Valuate(AIIndustry.GetDistanceManhattanToTile, 30000);
print(" DistanceManhattanToTile(30000) ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
list.Valuate(AIIndustry.GetDistanceSquareToTile, 30000);
print(" DistanceSquareToTile(30000) ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
list.Valuate(AIIndustry.GetAmountOfStationsAround);
print(" GetAmountOfStationsAround(30000) ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
list.Valuate(AIIndustry.IsCargoAccepted, 1);
print(" CargoAccepted(1) ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
@@ -647,7 +645,7 @@ function Regression::IndustryList()
print(" Count(): " + list.Count());
list.Valuate(AIIndustry.GetLocation);
print(" Location ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
@@ -656,7 +654,7 @@ function Regression::IndustryList()
print(" Count(): " + list.Count());
list.Valuate(AIIndustry.GetLocation);
print(" Location ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
}
@@ -670,7 +668,7 @@ function Regression::IndustryTypeList()
print(" Count(): " + list.Count());
list.Valuate(AIIndustry.GetLocation);
print(" Location ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" Id: " + i);
print(" IsRawIndustry(): " + AIIndustryType.IsRawIndustry(i));
print(" ProductionCanIncrease(): " + AIIndustryType.ProductionCanIncrease(i));
@@ -704,50 +702,50 @@ function Regression::List()
}
list.RemoveItem(1050);
list.RemoveItem(1150);
list.SetValue(1051, 12);
list.ChangeItem(1051, 12);
print(" Count(): " + list.Count());
print(" HasItem(1050): " + list.HasItem(1050));
print(" HasItem(1051): " + list.HasItem(1051));
print(" IsEmpty(): " + list.IsEmpty());
list.Sort(AIList.SORT_BY_ITEM, AIList.SORT_ASCENDING);
list.Sort(AIAbstractList.SORT_BY_ITEM, AIAbstractList.SORT_ASCENDING);
print(" List Dump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
list.Valuate(CustomValuator);
print(" Custom ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
list.Valuate(function (a) { return a * 42; });
print(" Custom ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
list.Valuate(AIBase.RandItem);
print(" Randomize ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
list.KeepTop(10);
print(" KeepTop(10):");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
list.KeepBottom(8);
print(" KeepBottom(8):");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
list.RemoveBottom(2);
print(" RemoveBottom(2):");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
list.RemoveTop(2);
print(" RemoveTop(2):");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
@@ -756,13 +754,13 @@ function Regression::List()
list2.AddItem(1004, 0);
list.RemoveList(list2);
print(" RemoveList({1003, 1004}):");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
list2.AddItem(1005, 0);
list.KeepList(list2);
print(" KeepList({1003, 1004, 1005}):");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
list2.Clear();
@@ -772,7 +770,7 @@ function Regression::List()
list2.AddItem(1005, 1005);
list.AddList(list2);
print(" AddList({1005, 4000, 4001, 4002}):");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
list[4000] = 50;
@@ -793,27 +791,27 @@ function Regression::List()
}
local it = list.Begin();
print(" " + it + " => " + list.GetValue(it) + " (" + !list.IsEnd() + ")");
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.IsEnd() + ")");
print(" " + it + " => " + list.GetValue(it) + " (" + list.HasNext() + ")");
it = list.Begin();
print(" " + it + " => " + list.GetValue(it) + " (" + !list.IsEnd() + ")");
print(" " + it + " => " + list.GetValue(it) + " (" + list.HasNext() + ")");
list.SetValue(it + 1, -5);
it = list.Next();
print(" " + it + " => " + list.GetValue(it) + " (" + !list.IsEnd() + ")");
print(" " + it + " => " + list.GetValue(it) + " (" + list.HasNext() + ")");
list.RemoveValue(list.GetValue(it) + 1);
it = list.Next();
print(" " + it + " => " + list.GetValue(it) + " (" + !list.IsEnd() + ")");
print(" " + it + " => " + list.GetValue(it) + " (" + list.HasNext() + ")");
list.RemoveAboveValue(list.GetValue(it));
it = list.Next();
print(" " + it + " => " + list.GetValue(it) + " (" + !list.IsEnd() + ")");
print(" " + it + " => " + list.GetValue(it) + " (" + list.HasNext() + ")");
while (!list.IsEnd()) {
while (list.HasNext()) {
it = list.Next();
print(" " + it + " => " + list.GetValue(it));
}
@@ -881,11 +879,11 @@ function Regression::Marine()
print("--AIWaypointList(BUOY)--");
print(" Count(): " + list.Count());
print(" Location ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + AIWaypoint.GetLocation(i));
}
print(" HasWaypointType:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + AIWaypoint.HasWaypointType(i, AIWaypoint.WAYPOINT_RAIL) + " " + AIWaypoint.HasWaypointType(i, AIWaypoint.WAYPOINT_BUOY) + " " + AIWaypoint.HasWaypointType(i, AIWaypoint.WAYPOINT_ANY));
}
print("");
@@ -968,37 +966,37 @@ function Regression::Order()
print(" Count(): " + list.Count());
list.Valuate(AIStation.GetLocation);
print(" Location ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
list.Valuate(AIStation.GetCargoWaiting, 0);
print(" CargoWaiting(0) ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
list.Valuate(AIStation.GetCargoWaiting, 1);
print(" CargoWaiting(1) ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
list.Valuate(AIStation.GetCargoRating, 1);
print(" CargoRating(1) ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
list.Valuate(AIStation.GetDistanceManhattanToTile, 30000);
print(" DistanceManhattanToTile(30000) ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
list.Valuate(AIStation.GetDistanceSquareToTile, 30000);
print(" DistanceSquareToTile(30000) ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
list.Valuate(AIStation.IsWithinTownInfluence, 0);
print(" IsWithinTownInfluence(0) ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
@@ -1009,7 +1007,7 @@ function Regression::Order()
print(" Count(): " + list.Count());
list.Valuate(AIVehicle.GetLocation);
print(" Location ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
print(" foreach():");
@@ -1026,9 +1024,8 @@ function Regression::RailTypeList()
print("--RailTypeList--");
print(" Count(): " + list.Count());
print(" ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" RailType: " + i);
print(" GetName(): " + AIRail.GetName(i));
print(" IsRailTypeAvailable(): " + AIRail.IsRailTypeAvailable(i));
print(" GetMaxSpeed(): " + AIRail.GetMaxSpeed(i));
}
@@ -1063,7 +1060,7 @@ function Regression::Rail()
print(" Count(): " + list.Count());
list.Valuate(AITile.GetDistanceManhattanToTile, 0);
print(" Depot distance from (0,0) ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
print(" RemoveDepot(): " + AITile.DemolishTile(33411));
@@ -1141,7 +1138,7 @@ function Regression::Road()
print(" Count(): " + list.Count());
list.Valuate(AITile.GetDistanceManhattanToTile, 0);
print(" Depot distance from (0,0) ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
print(" RemoveRoadDepot(): " + AIRoad.RemoveRoadDepot(33411));
@@ -1199,8 +1196,8 @@ function Regression::Sign()
print(" RemoveSign(" + sign_id + "): " + AISign.RemoveSign(sign_id));
print("");
local list = AISignList();
list.Sort(AIList.SORT_BY_ITEM, AIList.SORT_ASCENDING);
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
list.Sort(AIAbstractList.SORT_BY_ITEM, AIAbstractList.SORT_ASCENDING);
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
j++;
print(" Sign " + i);
print(" IsValidSign(): " + AISign.IsValidSign(i));
@@ -1250,17 +1247,17 @@ function Regression::Station()
print(" Count(): " + list.Count());
list.Valuate(AIStation.GetLocation);
print(" Location ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
list.Valuate(AIStation.GetCargoWaiting, 0);
print(" CargoWaiting(0) ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
list.Valuate(AIStation.GetCargoWaiting, 1);
print(" CargoWaiting(1) ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
}
@@ -1301,7 +1298,7 @@ function Regression::TileList()
print(" Slope(): done");
print(" Count(): " + list.Count());
print(" ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
print(" " + i + " => " + AITile.GetComplementSlope(list.GetValue(i)));
print(" " + i + " => " + AITile.IsSteepSlope(list.GetValue(i)));
@@ -1319,7 +1316,7 @@ function Regression::TileList()
print(" Height(): done");
print(" Count(): " + list.Count());
print(" ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
@@ -1327,7 +1324,7 @@ function Regression::TileList()
print(" CornerHeight(North): done");
print(" Count(): " + list.Count());
print(" ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
@@ -1335,7 +1332,7 @@ function Regression::TileList()
print(" MinHeight(): done");
print(" Count(): " + list.Count());
print(" ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
@@ -1343,7 +1340,7 @@ function Regression::TileList()
print(" MaxHeight(): done");
print(" Count(): " + list.Count());
print(" ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
@@ -1353,7 +1350,7 @@ function Regression::TileList()
print(" KeepValue(0): done");
print(" Count(): " + list.Count());
print(" ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
@@ -1367,27 +1364,27 @@ function Regression::TileList()
list.Valuate(AITile.IsBuildableRectangle, 3, 3);
print(" BuildableRectangle(3, 3) ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
list.Valuate(AITile.GetDistanceManhattanToTile, 30000);
print(" DistanceManhattanToTile(30000) ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
list.Valuate(AITile.GetDistanceSquareToTile, 30000);
print(" DistanceSquareToTile(30000) ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
list.Valuate(AITile.GetOwner);
print(" GetOwner() ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
list.Valuate(AITile.GetClosestTown);
print(" GetClosestTown() ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
@@ -1397,7 +1394,7 @@ function Regression::TileList()
print(" KeepAboveValue(10): done");
print(" Count(): " + list.Count());
print(" ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
@@ -1407,7 +1404,7 @@ function Regression::TileList()
print(" KeepValue(1): done");
print(" Count(): " + list.Count());
print(" ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
@@ -1417,7 +1414,7 @@ function Regression::TileList()
print(" KeepValue(1): done");
print(" Count(): " + list.Count());
print(" ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
@@ -1426,7 +1423,7 @@ function Regression::TileList()
print(" Water(): done");
print(" Count(): " + list.Count());
print(" ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
@@ -1436,7 +1433,7 @@ function Regression::TileList()
print(" Count(): " + list.Count());
list.Valuate(AITile.GetCargoAcceptance, 3, 1, 1, 3);
print(" Location ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
@@ -1446,7 +1443,7 @@ function Regression::TileList()
print(" Count(): " + list.Count());
list.Valuate(AITile.GetCargoProduction, 7, 1, 1, 3);
print(" Location ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
@@ -1455,7 +1452,7 @@ function Regression::TileList()
print("--TileList_StationType--");
print(" Count(): " + list.Count());
print(" Location ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
}
@@ -1468,8 +1465,8 @@ function Regression::Town()
print("--Town--");
print(" GetTownCount(): " + AITown.GetTownCount());
local list = AITownList();
list.Sort(AIList.SORT_BY_ITEM, AIList.SORT_ASCENDING);
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
list.Sort(AIAbstractList.SORT_BY_ITEM, AIAbstractList.SORT_ASCENDING);
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
if (AITown.IsValidTown(i)) j++;
print(" Town " + i);
print(" IsValidTown(): " + AITown.IsValidTown(i));
@@ -1478,7 +1475,6 @@ function Regression::Town()
print(" GetLocation(): " + AITown.GetLocation(i));
print(" GetHouseCount(): " + AITown.GetHouseCount(i));
print(" GetRating(): " + AITown.GetRating(i, AICompany.COMPANY_SELF));
print(" IsCity(): " + AITown.IsCity(i));
}
print(" Valid Towns: " + j);
print(" GetTownCount(): " + AITown.GetTownCount());
@@ -1493,27 +1489,27 @@ function Regression::TownList()
print(" Count(): " + list.Count());
list.Valuate(AITown.GetLocation);
print(" Location ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
list.Valuate(AITown.GetDistanceManhattanToTile, 30000);
print(" DistanceManhattanToTile(30000) ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
list.Valuate(AITown.GetDistanceSquareToTile, 30000);
print(" DistanceSquareToTile(30000) ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
list.Valuate(AITown.IsWithinTownInfluence, AITown.GetLocation(0));
print(" IsWithinTownInfluence(" + AITown.GetLocation(0) + ") ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
list.Valuate(AITown.GetAllowedNoise);
print(" GetAllowedNoise() ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
list.Valuate(AITown.GetPopulation);
@@ -1521,7 +1517,7 @@ function Regression::TownList()
print(" KeepAboveValue(500): done");
print(" Count(): " + list.Count());
print(" Population ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
@@ -1670,77 +1666,77 @@ function Regression::Vehicle()
print(" Count(): " + list.Count());
list.Valuate(AIVehicle.GetLocation);
print(" Location ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
list.Valuate(AIVehicle.GetEngineType);
print(" EngineType ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
list.Valuate(AIVehicle.GetUnitNumber);
print(" UnitNumber ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
list.Valuate(AIVehicle.GetAge);
print(" Age ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
list.Valuate(AIVehicle.GetMaxAge);
print(" MaxAge ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
list.Valuate(AIVehicle.GetAgeLeft);
print(" AgeLeft ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
list.Valuate(AIVehicle.GetCurrentSpeed);
print(" CurrentSpeed ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
list.Valuate(AIVehicle.GetRunningCost);
print(" RunningCost ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
list.Valuate(AIVehicle.GetProfitThisYear);
print(" ProfitThisYear ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
list.Valuate(AIVehicle.GetProfitLastYear);
print(" ProfitLastYear ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
list.Valuate(AIVehicle.GetCurrentValue);
print(" CurrentValue ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
list.Valuate(AIVehicle.GetVehicleType);
print(" VehicleType ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
list.Valuate(AIVehicle.GetRoadType);
print(" RoadType ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
list.Valuate(AIVehicle.GetCapacity, 10);
print(" VehicleType ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
list.Valuate(AIVehicle.GetCargoLoad, 10);
print(" VehicleType ListDump:");
for (local i = list.Begin(); !list.IsEnd(); i = list.Next()) {
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + i + " => " + list.GetValue(i));
}
}
@@ -1759,48 +1755,6 @@ function Regression::PrintSubsidy(subsidy_id)
print(" GetCargoType(): " + AISubsidy.GetCargoType(subsidy_id));
}
function Regression::Math()
{
print("");
print("--Math--");
print(" -2147483648 < -2147483647: " + (-2147483648 < -2147483647));
print(" -2147483648 < -1 : " + (-2147483648 < -1 ));
print(" -2147483648 < 0 : " + (-2147483648 < 0 ));
print(" -2147483648 < 1 : " + (-2147483648 < 1 ));
print(" -2147483648 < 2147483647: " + (-2147483648 < 2147483647));
print(" -2147483647 < -2147483648: " + (-2147483647 < -2147483648));
print(" -1 < -2147483648: " + (-1 < -2147483648));
print(" 0 < -2147483648: " + ( 0 < -2147483648));
print(" 1 < -2147483648: " + ( 1 < -2147483648));
print(" 2147483647 < -2147483648: " + ( 2147483647 < -2147483648));
print(" -1 > 2147483647: " + (-1 > 2147483647));
print(" -1 > 1 : " + (-1 > 1 ));
print(" -1 > 0 : " + (-1 > 0 ));
print(" -1 > -1 : " + (-1 > -1 ));
print(" -1 > -2147483648: " + (-1 > -2147483648));
print(" 1 > 2147483647: " + ( 1 > 2147483647));
print(" 1 > 1 : " + ( 1 > 1 ));
print(" 1 > 0 : " + ( 1 > 0 ));
print(" 1 > -1 : " + ( 1 > -1 ));
print(" 1 > -2147483648: " + ( 1 > -2147483648));
print(" 2147483647 > 2147483646: " + ( 2147483647 > 2147483646));
print(" 2147483647 > 1 : " + ( 2147483647 > 1 ));
print(" 2147483647 > 0 : " + ( 2147483647 > 0 ));
print(" 2147483647 > -1 : " + ( 2147483647 > -1 ));
print(" 2147483647 > -2147483648: " + ( 2147483647 > -2147483648));
print(" 2147483646 > 2147483647: " + ( 2147483646 > 2147483647));
print(" 1 > 2147483647: " + ( 1 > 2147483647));
print(" 0 > 2147483647: " + ( 0 > 2147483647));
print(" -1 > 2147483647: " + (-1 > 2147483647));
print(" -2147483648 > 2147483647: " + (-2147483648 > 2147483647));
print(" 13725 > -2147483648: " + ( 13725 > -2147483648));
}
function Regression::Start()
{
@@ -1866,7 +1820,5 @@ function Regression::Start()
}
}
print(" IsEventWaiting: false");
this.Math();
}

File diff suppressed because it is too large Load Diff

View File

@@ -6,7 +6,7 @@ class Regression extends AIInfo {
function GetShortName() { return "REGR"; }
function GetDescription() { return "This runs regression-tests on all commands. On the same map the result should always be the same."; }
function GetVersion() { return 1; }
function GetAPIVersion() { return "1.1"; }
function GetAPIVersion() { return "1.0"; }
function GetDate() { return "2007-03-18"; }
function CreateInstance() { return "Regression"; }
}

View File

@@ -25,7 +25,7 @@ fi
if [ -n "$gdb" ]; then
$gdb ./openttd -x -c ai/regression/regression.cfg $params -g ai/regression/regression.sav
else
./openttd -x -c ai/regression/regression.cfg $params -g ai/regression/regression.sav -d ai=2 2>&1 | awk '{ gsub("0x(\\(nil\\)|0+)(x0)?", "0x00000000", $0); gsub("^dbg: \\[ai\\]", "", $0); gsub("^ ", "ERROR: ", $0); gsub("ERROR: \\[1\\] ", "", $0); gsub("\\[P\\] ", "", $0); print $0; }' > tmp.regression
./openttd -x -c ai/regression/regression.cfg $params -g ai/regression/regression.sav -d ai=2 2>&1 | awk '{ gsub("0x(\\(nil\\)|0+)", "0x00000000", $0); gsub("^dbg: \\[ai\\]", "", $0); gsub("^ ", "ERROR: ", $0); gsub("ERROR: \\[1\\] ", "", $0); gsub("\\[P\\] ", "", $0); print $0; }' > tmp.regression
fi
if [ -z "$gdb" ]; then

BIN
bin/data/openttdw.grf Normal file

Binary file not shown.

Binary file not shown.

View File

@@ -47,7 +47,7 @@ logos = TRGI.GRF
arctic = TRGC.GRF
tropical = TRGH.GRF
toyland = TRGT.GRF
extra = OPENTTD.GRF
extra = OPENTTDD.GRF
[md5s]
TRG1.GRF = 9311676280e5b14077a8ee41c1b42192
@@ -55,8 +55,8 @@ TRGI.GRF = da6a6c9dcc451eec88d79211437b76a8
TRGC.GRF = ed446637e034104c5559b32c18afe78d
TRGH.GRF = ee6616fb0e6ef6b24892c58c93d86fc9
TRGT.GRF = e30e8a398ae86c03dc534a8ac7dfb3b6
OPENTTD.GRF = e67a3aaf13b81bab5d72d7440244e20c
OPENTTDD.GRF = 356cf9663aacb212fdbff609d99090d6
[origin]
default = You can find it on your Transport Tycoon Deluxe CD-ROM.
OPENTTD.GRF = This file was part of your OpenTTD installation.
OPENTTDD.GRF = This file was part of your OpenTTD installation.

View File

@@ -47,7 +47,7 @@ logos = TRGI.GRF
arctic = TRGC.GRF
tropical = TRGH.GRF
toyland = TRGT.GRF
extra = OPENTTD.GRF
extra = OPENTTDD.GRF
[md5s]
TRG1.GRF = 9311676280e5b14077a8ee41c1b42192
@@ -55,8 +55,8 @@ TRGI.GRF = da6a6c9dcc451eec88d79211437b76a8
TRGC.GRF = ed446637e034104c5559b32c18afe78d
TRGH.GRF = ee6616fb0e6ef6b24892c58c93d86fc9
TRGT.GRF = fcde1d7e8a74197d72a62695884b909e
OPENTTD.GRF = e67a3aaf13b81bab5d72d7440244e20c
OPENTTDD.GRF = 356cf9663aacb212fdbff609d99090d6
[origin]
default = You can find it on your Transport Tycoon Deluxe CD-ROM.
OPENTTD.GRF = This file was part of your OpenTTD installation.
OPENTTDD.GRF = This file was part of your OpenTTD installation.

View File

@@ -47,7 +47,7 @@ logos = TRGIR.GRF
arctic = TRGCR.GRF
tropical = TRGHR.GRF
toyland = TRGTR.GRF
extra = OPENTTD.GRF
extra = OPENTTDW.GRF
[md5s]
TRG1R.GRF = b04ce593d8c5016e07473a743d7d3358
@@ -55,8 +55,8 @@ TRGIR.GRF = 0c2484ff6be49fc63a83be6ab5c38f32
TRGCR.GRF = 3668f410c761a050b5e7095a2b14879b
TRGHR.GRF = 06bf2b7a31766f048baac2ebe43457b1
TRGTR.GRF = de53650517fe661ceaa3138c6edb0eb8
OPENTTD.GRF = e67a3aaf13b81bab5d72d7440244e20c
OPENTTDW.GRF = 80346ea80de167068cfb975f93963941
[origin]
default = You can find it on your Transport Tycoon Deluxe CD-ROM.
OPENTTD.GRF = This file was part of your OpenTTD installation.
OPENTTDW.GRF = This file was part of your OpenTTD installation.

View File

@@ -1,482 +1,3 @@
1.1.0-beta4 (2011-01-21)
------------------------------------------------------------------------
- Feature: [NewGRF] Rail type property to influence sorting of rail types in the drop down list [FS#4394] (r21866)
- Feature: [Network] Console command to change the password of other companies for servers [FS#4368] (r21855)
- Feature: [NewGRF] Introduction dates/required types for rail types; e.g. introduce a particular rail type in 1960 (or when a vehicle using it is introduced), but also allow limiting its introduction to only happen when the required railtypes are available [FS#4393] (r21842)
- Feature: Limit vehicle lateness to the length of a full timetable cycle, e.g. when a cycle takes 50 days and the vehicle is 65 days later reduce the lateness to 15 days (r21832)
- Feature: After building a road or tram bridge/tunnel, connect it to any existing road or tram (r21778, r21777)
- Feature: Display NewGRF object sprites during object picking (r21772)
- Feature: Display NewGRF station sprites during station picking (r21755)
- Change: Allow LMB scrolling with the mouse outside of the extra viewport instead of canceling scrolling when going slightly over the edge (r21838)
- Change: Only show rail/road types that will eventually be available in-game. For example do not show trams when there is no tram NewGRF loaded (r21817)
- Change: Keep aqueducts and road/tram tunnels and bridges after removing a company (r21780)
- Fix: Distant-join station would build at the wrong location when having persistent building turned on and selecting a 'second' location for the station tile [FS#4430] (r21864)
- Fix: Slowing down of trains was done by reducing the speed by 10%, but also when you are just 1% too fast, so limit the slowdown till the new maximum speed [FS#4423] (r21847)
- Fix: Left-mouse-button dragging would switch over to other viewports instead of staying locked to the viewport you started on [FS#4419] (r21837)
- Fix: When a train was reversed while inside a tunnel/bridge, it would not have (re)set the GOINGUP/DOWN bits after leaving the tunnel/bridge (r21836)
- Fix: Desync debug savegames might not be actually saved in case threading is enabled, which is enabled by default [FS#4427] (r21833)
- Fix: Service orders for trains/aircraft would (sometimes) not get a time when autofilling [FS#4414] (r21831)
- Fix: Crash with the small map window on big endian platforms [FS#4417] (r21830)
- Fix: The expectations from the 'always build infrastructure' setting name/description did not match the behaviour [FS#4007] (r21826)
- Fix: Allow dragging of combo signals (again) [FS#4378] (r21816)
- Fix: [YAPF] Apply a pathfinder penalty for back of one-way path signals so those arenot preferred over other possibilities [FS#3908] (r21815)
- Fix: Check GRF version from action 8, and disallow usage of GRFs with versions above 7 (r21814)
- Fix: Crash when displaying the owner view [FS#4411] (r21813)
- Fix: Do not create automatic orders when there are no manual orders, and remove unreached automatic orders when reaching an ordered waypoint or depot [FS#4404] (r21809, r21808)
- Fix: Loading a TTO savegame failed after loading a TTDP savegame (r21799, r21798)
- Fix: The size (in characters) of the string inputs was too small for loading some TTD savegames (r21797)
- Fix: Drive through road stop state was not properly converted from TTDPatch savegames [FS#4398] (r21796)
- Fix: Broken usage of GetTileOwner() caused wrong conversion of old savegames (r21793)
- Fix: Terraforming limit was off-by-one when terraforming a single tile height [FS#4407] (r21791)
- Fix: TTDPatch savegames can have train waypoints encoded as buoys [FS#4398] (r21790)
- Fix: When the font misses the fallback character '?', use the sprite font's '?' instead [FS#4405] (r21789)
- Fix: Crash due to invalid rail station width and height data stored in TTDPatch savegames [FS#4398] (r21786)
- Fix: Crash when converting savegame with custom waypoint name (r21784)
- Fix: Diagonal tile iterator failed for A * 0 selections [FS#4396] (r21768)
- Fix: Do not limit tile clearing during bankruptcy [FS#4397] (r21767)
- Fix: PBS reservation was not shown on road crossings with NewGRF railtypes [FS#4369] (r21765)
- Remove: The 'stopall' console command, as its functionality was broken. Group start/stop commands can be used instead [FS#4409] (r21804)
1.1.0-beta3 (2011-01-09)
------------------------------------------------------------------------
- Feature: Configurable limit amount of tiles that can be cleared/terraformed by a company [FS#4331] (r21728)
- Feature: Show a list of companies in the owner legend and allow them to be toggled for visibility (r21720, r21718)
- Feature: Console command 'list_ai_libs' to get a list of recognized AI libraries [FS#4372] (r21703)
- Feature: Allow changing the AI configuration in the scenario editor / in game [FS#4362] (r21696)
- Change: Tune 'realistic' acceleration even more to make more trains reach their top speed, and make it behave more like TTDPatch (r21712)
- Change: Display the minimum height of the tile in the LandInfo window instead of the height of the northern corner. So it is more useful for NewGRF and AI developers, and maybe more transparent for players (r21711)
- Fix: The diagonal iterator would iterate twice over some tiles [FS#4395] (r21747)
- Fix: [NewGRF] Canal variable 83 accessed water random bits also for non-water tiles (e.g. watery industries or objects) (r21746)
- Fix: [NewGRF] Canal variable 80 shall return consistent heights within a lock (r21745)
- Fix: Allow Ctrl+Clicking automatic orders for scrolling to their destination (r21744)
- Fix: Coast tiles were not drawn under bridges [FS#4386] (r21743)
- Fix: Make clearing refit orders work again [FS#4388] (r21739)
- Fix: Start loading when cur_order_index points to the destination station, i.e. after deleting not-reached automatic orders [FS#4384] (r21738)
- Fix: A loading order was also marked as 'not part of orders' when the order before the current order was deleted (r21737)
- Fix: Admin bots were not always notified of password changes [FS#4377] (r21727)
- Fix: Vehicle sprite was cached into a 16 bit variable, causing incorrect sprites to be displayed (r21709)
- Fix: [NewGRF] Report TTDPatch flag 4A (newobjects) as set (r21708)
- Fix: The old ship pathfinder is too stupid to provide 'lost' notices; it would even get lost while following its own path [FS#4370] (r21706)
- Fix: Do not perform any more checks after the connection is closed [FS#4374] (r21704)
- Fix: Changing AI settings ingame was impossible when the difficulty level was other than custom (r21694)
- Fix: Due to an error in the Debian changelog building of Debian/Ubuntu packages failed (r21682)
1.1.0-beta2 (2010-12-31)
------------------------------------------------------------------------
- Feature: Command logging using the admin interface (r21668)
- Feature: Concept of automatic station orders; add stub orders for intermediate stations and remove them when not visiting them anymore. This allows you to see what trains visit a station without actually having to order a vehicle to stop at all stations (r21642)
- Add: [NoAI] AIEventTownFounded (r21664)
- Add: [NoAI] AIRail::GetName() to get the name of a railtype (r21663)
- Add: [NoAI] AITown::IsCity() so AIs can find out which towns grow faster than others (r21654)
- Change: Do not show price to build a bridge in the scenario editor as they are free to build there [FS#4358] (r21673)
- Change: Do not highlight tile when selecting a vehicle to clone or an order to skip to (r21616)
- Fix: Estonia introduced the Euro in 2011 (r21670)
- Fix: Autofill timetable had side effects in test mode, possibly causing desyncs in MP [FS#4354] (r21660)
- Fix: Cargo payment graph was not properly invalidated when payment rate changed [FS#4351] (r21658)
- Fix: Use a bool instead of uint8 to store a bool and use the dedicated accessor function when reading boolean settings [FS#4345] (r21656)
- Fix: Infinite loop in the road pathfinder due to bouncing around in an 'one way' trap; two one ways pointing towards eachother making it impossible to leave [FS#4338] (r21651)
- Fix: Make '[centre|main] view' consistent, and make '[main|global] view' consistent [FS#4339] (r21650)
- Fix: Newly created skip-to order was created at wrong place (r21633)
- Fix: Ships with the old pathfinder would easily show up as lost, even when it would eventually find a path. Now also the distance from the 'end' of the pathfinding run to the destination is compared to the current distance to the destination; if the distance to the destination at the end of the pathfinder run is less than the current distance from the destination the ship will not be marked as lost. This means that the ships with the old pathfinder will less likely get marked as lost, but due to the design of the old ship pathfinder there 'lostness' is merely a best guess. When you still get a lost message you need to build buoys to guide the ship pathfinder [FS#4325] (r21631)
- Fix: Version detection of subversion branches and tags got broken (r21630)
- Fix: Crash under certain circumstances when using autorail [FS#4327] (r21619)
1.1.0-beta1 (2010-12-24)
------------------------------------------------------------------------
- Feature: [NewGRF] Variable 7B for accessing 60+x variables while taking the parameter from the accumulator (r21604)
- Feature: Allow to refit only the selected part of a train consist (r21567)
- Feature: Store the used OpenTTD version, base graphics set, NewGRFs and AIs in the PNG screenshots (r21558, r21553)
- Feature: Make the delay of the chat messages timing out unrelated to the number of passed game days, i.e. do not stop aging chat messages when the server is paused, and make the timeout user configurable [FS#532] (r21513, r21512)
- Feature: Vehicle lost messages for ships and road vehicles [FS#1956] (r21511, r21510)
- Feature: Diagonal tile clearing and terraforming by pressing Ctrl [FS#730] (r21500)
- Feature: [NewGRF] Use the station graphics property to determine a fallback for the depot sprites [FS#4279] (r21473)
- Feature: Add explicit make 'shared orders' an option in the orders menu (r21464)
- Feature: Make it more clear that you are stopping a shared order, and make it possible retain the order list upon unsharing [FS#3711] (r21461)
- Feature: Hotkey Ctrl+W for returning to the main menu [FS#3217] (r21459)
- Feature: Scroll to the inserted order [FS#4215] (r21457)
- Feature: Building while paused always works in the scenario editor [FS#1521] (r21430)
- Feature: Perform the compression of savegames to send to the client asynchronously. This will reduce the lag of the other clients to the time it takes to make the memory dump and it will speed up downloading the map as the download starts earlier (possibly with a slightly lower bandwidth due to slow compression) [FS#4284] (r21399)
- Feature: Do not store savegames to disk when transferring it from the server to a client (r21398, r21397)
- Feature: Use alphabetical order when sorting industries by type at the industry directory window (r21389)
- Feature: Allow entering of the new year in a text box when cheating the year [FS#4289] (r21388)
- Feature: Support for limiting the amount of (accepted) incoming data for a server (r21363)
- Feature: Natural sorting of strings using ICU [FS#4214] (r21344)
- Feature: [NewGRF] Implement action0 visual effect properties for ships and RVs (r21240)
- Feature: [NewGRF] Support callback 0x10 for RVs and ships (r21238)
- Feature: [NewGRF] Make positioning of diesel fumes and electric sparks actually work (r21230)
- Feature: [NewGRF] Support OpenTTD's genders, cases and plurals (r21216, r21211, r21209)
- Feature: Display mail capacity when refitting an aircraft to passengers (r21214)
- Feature: Make the statusbar's location configurable [FS#4201] (r21179)
- Feature: Forced construction of missing industries (r21175)
- Feature: Do not build industries during economic recession (r21169)
- Feature: Use desired industry counts rather than relative probability to decide which industry to build (r21168)
- Feature: Allow to sort purchase lists for trains and road vehicles by tractive effort (r21105)
- Feature: [NewGRF] Add CB36 support for road vehicle property 0x15 (Speed) (r21100)
- Feature: [NewGRF] Implement stringcode 9A 0C (station name), 9A 0D (weight) (r21086, r21085)
- Feature: [NewGRF] Add CB36 support for road vehicle properties 0x13 (Power), 0x14 (Weight) and 0x18 (Tractive effort) (r21058)
- Feature: XZ/LZMA2 savegame support. New default reduces savegame size by 10 to 30% with slightly more CPU usage. With maximum settings it reduces savegame size by 20 to 30%, but that takes 7 to 14 times longer. Map saving + downloading takes, on average, 5% less (r21044)
- Feature: Chat directly to the server or a bot/admin/IRC channel monitoring the server (r21000)
- Feature: Remote administration (r20975-r20963)
- Feature: [NewGRF] The concept of minimum loadable version to NewGRFs when choosing compatible NewGRFs (r20960, r20958)
- Feature: Center new extra viewports on the tile below the mouse. Only center on center of main viewport if mouse is not in any viewport (r20956)
- Feature: [NewGRF] Make it possible to distinguish player built/randomly placed industries in the location and land slope check callbacks (r20942)
- Feature: Highlight all destination tiles when building a lock [FS#4153] (r20932)
- Feature: Transfer orders imply 'leave empty' by default [FS#3905] (r20927)
- Feature: Allow to select a custom percentage of water in the map generation window (r20832)
- Feature: Make it possible to select vehicle to clone and vehicle to clone orders from directly from vehicle lists and depot window [FS#3999] (r20753)
- Feature: Separate GUI icons for vehicle/company profit, exclusive rights and unread news (r20720)
- Feature: [NewGRF] Support for newobjects (r20670)
- Feature: Make the (flat) area around an industry configurable (r20659)
- Feature: [Network] Allow rate limiting of incoming commands (r20553)
- Feature: Filter signs at the sign list window [FS#3472] (r20516)
- Feature: Ignore _ in console command names so there is no 'inconsistent' behaviour w.r.t. underscores anymore without breaking backward compatibility greatly (r20515)
- Feature: A new screenshot type that makes a zoomed-in screenshot of the visible viewport [FS#3973] (r20508)
- Feature: Setting for none/original/more smoke [FS#3093] (r20376)
- Feature: Airport previews (r20381, r20369)
- Feature: [NewGRF] Support for callback 0x147 ('add sprite offset') for canals (r20353)
- Feature: [NewGRF] Support for property 09, feature 05, i.e alternate canal sprite layout (r20352)
- Feature: Add rescan_newgrf console command (r20344)
- Feature: [NewGRF] AdvVarAct2 operators for SHL, SHR and SAR (r20332)
- Feature: [NewGRF] Air drag property support for trains and road vehicles. Air drag for vehicles with air drag not set or set to zero will use a default value depending on their max speed (r20303, r20302, r20301, r20300, r20299)
- Feature: More user-friendly gui to change NewGRF parameters (r20258)
- Feature: [NewGRF] Add support for static NewGRF information, i.e. Action 14 (r20250)
- Feature: Display suppliers and customers of an industry or cargo (r20206)
- Feature: Allow horizontal resizing for all vehicle lists [FS#3955] (r20174)
- Feature: [NewGRF] Information (var 4A) about the current railtype a train is on (r20165)
- Feature: Tooltips are shown by hovering the mouse over a widget instead of by right clicking on it [FS#3913]
- Feature: Customizable hotkeys (r20055)
- Feature: Wrap console lines when they are too long [FS#3816] (r20046)
- Feature: [NewGRF] Variable 43 depot build date for railtypes [FS#3886] (r20003)
- Feature: Show some savegame details when selecting items in saveload GUIs (r19984)
- Feature: Open vehicle view when clicking on the caption of vehicle news (r19944)
- Feature: [NewGRF] Access to industry founder (var A7) during callbacks 28 and 2F (r19901)
- Feature: Add highlighting of drag destination in depot and order GUI gui [FS#3705] (r19889, r19888)
- Feature: Configure NewGRFs from a single window (r19841)
- Feature: Give depots an unique name in the same manner buoys and waypoints are named. Also allow them to be custom named [FS#3691] (r19801, r19799)
- Feature: Hide all other industries when Ctrl+clicking an industry type in smallmap legend (r19770)
- Feature: [NewGRF] Access to random bits of houses and industries from construction callbacks 17, 28 and 2F. That is: The random bits the house/industry will start with, if construction succeeds [FS#3477] (r19744)
- Feature: A simple sprite alignment helper. It does not store the new offsets anywhere so as soon as the sprite is reloaded the offsets are gone (use a bigger sprite cache if this happens). Also anything that reloads NewGRFs (new games, loading games or (re)applying NewGRFs) clears the sprite cache and as such resets the offsets (r19723)
- Feature: New base costs for building/clearing canals, building/clearing aqueducts and building/clearing locks (r19720)
- Feature: Ctrl+click on a vehicle to start/stop it (r19714)
- Feature: NewGRF debugging/inspecting of (primarily) enabled callbacks and values of variables (r19709)
- Feature: Graphs with negative values are no longer forced to have the zero axis in the middle, resizeable graphs (r19662, r19631)
- Feature: [NewGRF] Support callback 36 for aircraft speed also in the build menu (r19660)
- Feature: Add an input box to the AI Debug window where you can input a break string [FS#3496] (r19544)
- Feature: Add buttons to enable/disable all cargos at the cargo payment rates graph (r19542)
- Feature: Sort industries alphabetically at the smallmap legend, fund industry list; sort cargos alphabetically at cargo payment graph, build vehicles cargo filter dropdown, station ratings and refit options (r19541, r19540, r19436, r19535, r19522, r19503)
- Feature: Console command 'reload_newgrfs'; only available when NewGRF developer tools are enabled (r19515)
- Feature: Enter the starting year in the scenario editor by clicking at the date panel (r19397)
- Feature: Configurable slope steepness for road vehicles from 0% to 10%, default is 7% (r19346)
- Feature: Realistic acceleration for road vehicles (r19345)
- Feature: Allow to (over)build and remove multiple road stops using drag and drop (r19231, r19230, r19229)
- Feature: Show warnings and errors in console as well, not only in a message box (r19225)
- Feature: [NewGRF] Action 0/1/2/3 support for NewGRF airporttiles (r19194)
- Add: [NoAI] AIOrder::IsVoidOrder to find void '(Invalid Order)' orders (r20389)
- Add: Support for MSVC 2010 (r20032)
- Add: [NoAI] AIIndustry::GetIndustryID(TileIndex) (r19773)
- Change: Make it possible to start actions that require selecting stuff (landscaping, vehicle cloning, etc) in the viewport while paused. As side-effect you will get an error message explaining the command cannot be executed because the game is paused instead of seemingly nothing happening when you click. Additional side effect of this is that you can make use of the measurement tooltip while paused [FS#4292] (r21480)
- Change: Make building aqueducts behave more like building tunnels. They cannot be built on flat (or foundationed) tiles, so there is at most one destination tile like there is only one for tunnels [FS#4153] (r21471)
- Change: Place the bridge building window under the mouse instead of somewhere randomly on the screen and change the default sort order [FS#3975] (r21460)
- Change: Make sure the client is listening, or rather receiving, our frames (r21361)
- Change: Read some metadata from (official) source tarballs so you will more likely get the right version/revision out-of-the-box (r21351)
- Change: Be more explicit that the game state can get broken by changing NewGRFs (r21335)
- Change: Use the last red instead of last red exit penalty for making sure other waypoint entries are evaluated as well when they are occupied, e.g. when there are no signals before the waypoint but a train just beyond the waypoint is stopped (like for stations) (r21271)
- Change: Do not receive money for removing the rail of non-rail rail station tiles, i.e. rail station tiles for which the NewGRF has prevented trains to be routed through (r21266)
- Change: Show a different 'lag' message when a client is lagging because of connection trouble or lagging because the client is just slow (r21254)
- Change: Mention the OpenTTD version on the console/logs when starting an OpenTTD dedicated server like we mention it in the title bar for the GUI version (r21253)
- Change: Filter stations by cargo they have a rating for instead of having cargo waiting [FS#4206] (r21144)
- Change: Limit the number of exceptions in the refittable cargo list to 7 (r21083)
- Change: Reduce the chances to accidentally break savegames with NewGRFs by limiting loading of savegames that miss NewGRFs or change NewGRF settings in-game [FS#3012] (r21116)
- Change: Tuned realistic acceleration to be a bit more realistic in order to make acceleration 'slower', which highlights the differences between vehicle types more (r21106)
- Change: Do not make client reconnect waiting time depend on the company; in coop games that does not spread clients at all, and most companies have a low number causing it not to be spread out either. Use the ClientID instead. (r21008)
- Change: Add installing options or rather options to not install certain documentation, in a similar way to GRFCodec/catcodec (r20999)
- Change: Only display liveries in the livery window if they are used by some vehicle somewhen (r20849)
- Change: [NoAI] Rename AIAbstractList to AIList (r20563)
- Change: [NoAI] AIOrder::GetOrderFlags returns AIOrder::AIOF_INVALID for void orders (r20389)
- Change: [NewGRF] Adapt vehicle var FE bit 6 to new railtypes (r20175)
- Change: [NewGRF] Call callbacks 14A, 14B and 14C after all industry variables have been assigned, so more variables are valid during the callbacks (r19907)
- Change: [NoAI] Remove HasNext() from all lists/iterators and add IsEnd() instead (r19294)
- Change: Add the default installation directory of lzo/zlib for Mac OS X/MinGW to the paths where (the headers of) those libraries are searched [FS#3638] (r19285)
- Fix: Crash due to cargo payments belonging to a non-existing company [FS#4324] (r21605)
- Fix: Company league table used stats from two quarters ago instead of last quarter [FS#4323] (r21601)
- Fix: The default visual effect only depends on properties of the Engine (wagon or not, tractiontype, ...), not whether it is used as articulated part, front engine or whatever in a specific consist [FS#4275] (r21598)
- Fix: [OSX] A double mouse cursor was shown under certain circumstances [FS#2585] (r21578)
- Fix: Show 'plant trees' button lowered on the terraform toolbar, like how other buttons are lowered when you selected a 'build' action [FS#4315] (r21539)
- Fix: 2CC recolour sprites were the same for DOS and WIN palette, thus 'dark green', 'brown', 'grey' and 'white' were wrong for DOS [FS#4312] (r21535)
- Fix: Do not apply the last signal red pathfinder penalty when the signal is a path signal [FS#4302] (r21524)
- Fix: Tooltips were not removed when their related window got closed [FS#4300] (r21477)
- Fix: Make sure the query window is only opened once per parent window/callback [FS#4298] (r21472)
- Fix: Crash when news item gets removed at just the wrong moment [FS#4180] (r21458)
- Fix: [NewGRF] Ensure the parameter for house variable 60 is the id of an original house (r21456)
- Fix: [NewGRF] A NewGRF with incomplete string codes at the end of a string could cause invalid memory reads (r21433)
- Fix: The server did not check for the paused state when allowing to execute commands [FS#3771] (r21429)
- Fix: Vehicles could be built while the game is paused. Now you can enable or disable that with a setting, which replaces the build-while-paused cheat [FS#4021] (r21428)
- Fix: Purchase lists were not invalidated when using 'resetengines' (r21374)
- Fix: Fields were not cleared under snow though they were intended to be [FS#4283] (r21367)
- Fix: New railtypes with overlays did not use the shore sprites as groundtiles for three-corner-raised slopes (at shore) [FS#4277] (r21353)
- Fix: Buffer overflow in strgen for strings with very large arguments (r21346)
- Fix: Bogus cache mismatch warnings with desync debugging because some cache was invalidated but never reset [FS#4272] (r21338)
- Fix: Make it more likely that the savegame and transferred file are the same file and not different ones [FS#4271] (r21334)
- Fix: Use the correct font sizes when checking for missing glyphs (r21321)
- Fix: [Content] Crash when creating file download by the content download system failed (r21319)
- Fix: AIs in an infinite loop in e.g. autosave, but also getting settings and such from info.nut, would not be interrupted after a while causing OpenTTD to seem to not respond [FS#4260] (r21311)
- Fix: [Content] Do not add HTTP connection to list of connections when it fails in the beginning (r21302)
- Fix: Fonts set in openttd.cfg were not properly checked for missing glyphs on language change [FS#4261] (r21298)
- Fix: FreeBSD introduced strndup as well [FS#4259] (r21295)
- Fix: [Windows installer] Check for existence of save/scenario dirs before asking for deletion confirmation [FS#4251] (r21294)
- Fix: Under some circumstances two vehicles could leave a non drive-through road stop at once [FS#3935] (r21263)
- Fix: [NewGRF] Custom station foundations using the 'simple foundations'-method did not draw any sprite for WSE-slopes when there are foundations on both neighboured tiles in the north. As there must be at least one sprite to provide the correct offset for the groundsprite draw the (empty) default foundation sprite in that case [FS#4246] (r21262)
- Fix: The main menu error messages would not show when you had an error message open in the game while whatever triggered you to go back to the main menu (r21255)
- Fix: Rescanning AIs did not 'forget' removed AIs [FS#3952] (r21250)
- Fix: Upon rescanning AIs the new AIs would (after some time) show up in the AI list but you could not select all (r21246)
- Fix: [YAPF] Road vehicles not finding the nearest depot in some (corner) cases [FS#4130] (r21229)
- Fix: [NewGRF] The specs' cargo strings and OpenTTD's use of the clashed. Provide properties so NewGRFs can provide cargo strings tailored for OpenTTD while retaining (some) backward compatibility [FS#4172] (r21224)
- Fix: Use proper plural for the short cargo unit names (r21223)
- Fix: Under some conditions, group count would be wrong after moving train engines in the depot window [FS#4207] (r21205)
- Fix: [OSX] Do not let the mouse cursor jump when switching to full screen mode (r21200)
- Fix: [OSX] Finding a fallback font failed when compiling for OSX 10.4 as it tried to match also OpenTTD-specific control characters [FS#4001] (r21197)
- Fix: Use non-interactive randomness for townnames on map generation, so they are controlled by the generation seed as well [FS#4226] (r21192)
- Fix: [OSX] Unify compiler flags with other OS and work around a compiler bug in gcc-4.0.1 which breaks graphics display in x86_64 binaries [FS#4210] (r21149)
- Fix: Station list was not updated when a new cargo got a rating (r21145)
- Fix: Station ratings were not updated (anymore) after an aircraft crashed (r21137)
- Fix: Bridge speed limits should apply to all wagons of a vehicle, not just the head of the vehicle [FS#4213] (r21136)
- Fix: Helicopter flight altitude was determined inconsistently in different places (r21119)
- Fix: Do not use the maximum track speed where the maximum vehicle speed is meant (r21107)
- Fix: Display the real maximum speed for aircraft instead of always using the engine value (r21096)
- Fix: Aircraft speed would ignore callback 36 result when it is greater than the engine speed (r21094)
- Fix: [OSX] Mouse cursor would leave footprint with 8bpp blitter when switching to full screen (r21037)
- Fix: [OSX] Properly set the palette when using the 8bpp blitter during start-up (r21036)
- Fix: Center industry gui and waypoint gui after resize [FS#4171] (r21021)
- Fix: Draw bridge pillars with correct length on all tile corners by drawing only half of the pillar sprite if required (r20950, r20947)
- Fix: Accidentally moving the mouse of the scrollbar arrows while pressing it clicks the button next to the arrow [FS#4071] (r20922)
- Fix: Refit costs were not shown for long cargo names [FS#4160] (r20921)
- Fix: When using non-smooth or NewGRF-economy changing production rates does not work, so allow changing the production multiplier instead (r20901)
- Fix: The station with the second highest rating was doubly penalised when distributing cargo. Now the penalty is completely removed and the granularity/precision of the distribution in increased by using fractional cargo. This should make competing stations less all-or-nothing [FS#3637] (r20857)
- Fix: Make sure (gradual) loading is properly terminated for consists with multiple cargo types. Do not stop loading if the timetabled wait is not over yet [FS#2534] (r20843)
- Fix: Place less trees at once when planting random trees at the scenario editor [FS#4094] (r20829)
- Fix: Do not use new game settings when creating many random towns/industries at the scenario editor [FS#4094] (r20712, r20711)
- Fix: Keep _current_company and _local_company in sync during GUI operation [FS#3804] (r19933)
- Fix: When building a lock, do not add the cost of building canals if they are already built, pay for clearing the other tiles and do not add the first bridge type's cost to aqueducts (r19719, r19718, r19717)
1.0.5 (2010-11-20)
------------------------------------------------------------------------
(None)
1.0.5-RC2 (2010-11-14)
------------------------------------------------------------------------
- Fix: Reading (very) recently freed memory [CVE-2010-4168] (r21182)
- Fix: Default service interval for ships/aircraft got switched [FS#4222] (r21155)
- Fix: Size of sort buttons for save/load and build vehicle list gui could be too small [FS#4221] (r21151)
- Fix: [Windows] Make sure to be upgraded openttd is not running when installing [FS#4212] (r21146)
- Fix: [NewGRF] Crash when disabling static NewGRFs (when joining/starting a server) [FS#4208] (r21130, r21129, r21128)
- Fix: Upper limit for snowline was too low [FS#4203] (r21078)
- Fix: Wrong (maximum) value shown for generation seed in the in-game console [FS#4192] (r21075)
- Fix: Under some circumstances the file handle of the downloaded savegame would not be closed, and validity of the handled was not checked in all cases (r21027)
- Fix: [NewGRF] Crash when getting an industry ID at an offset that uses some 'old' style industry tile [FS#4157] (r20912)
1.0.5-RC1 (2010-10-31)
------------------------------------------------------------------------
- Change: Make OpenTTD aware of XZ/LZMA compressed savegames so loading those gives a proper error message (r21047)
- Change: Make it possible to make .tar.xz bundles (r21042)
- Fix: Missing default values for the custom town number in the world generation options (r21034)
- Fix: Dropdown menu glitched in small screenshots, when issueing them from the menu (r21031)
- Fix: Do not let the resize button go past the bottom of the screen [FS#4176] (r21015)
- Fix: The detailed performance rating window could be too narrow [FS#4102] (r21010)
- Fix: For the compact notation 1.000.000k and 1.000M would be shown depending on the initial (and later rounded) value. Make everything that would round to 1.000.000k be drawn as 1.000M as well (r21009)
- Fix: Do not consider the text direction character when searching for missing glyphs (r21007)
- Fix: Chat/console messages got sometimes messed up due to LTR names in RTL translations and vice-versa [FS#3746] (r21006, r21004)
- Fix: Size of sort buttons for order and vehicle list gui could be too small (r20997)
- Fix: [NewGRF] The X and Y offsets in the parameter for industry vars 60, 61, 62, 63 are unsigned instead of signed (r20996)
- Fix: When removing a rail station, do not leave track under non-station tiles (r20990)
- Fix: [NewGRF] Ignore the variable for Action7/9 condition type 0x0D and 0x0E as documented (r20979)
- Fix: Crash when, while the 'go to' cursor is active, you open the order list of a vehicle of another company and then select a 'go to' destination [FS#4159] (r20916)
- Fix: Helicopters fired a bit too late [FS#4155] (r20910)
- Fix: Road/water toolbars did not get updated when the first vehicle of their type becomes available [FS#4141] (r20856)
- Fix: Smallmap legend buttons must all be equal in size, even if their contents is not (r20851)
- Fix: Deadlock when aborting map generation on Windows [FS#3707] (r20822)
- Fix: Be a bit more lenient with invalid savegames; do not crash on saveload related NOT_REACHEDs, just show the user an error that the savegame is corrupted [FS#3714] (r20819)
- Fix: Make the crash-on-saveload message clearer and more correct [FS#3791] (r20818)
- Fix: [NewGRF] Clamp/convert some vehicle variables so NewGRFs get their specified range (r20800, r20799, r20792)
- Fix: [NoAI] Document that AITile::HasTransportType does not work for TRANSPORT_AIR [FS#4117] (r20798)
- Fix: [NewGRF] Disable houses without a size that are available according to their building flags (r20797)
- Fix: [NewGRF] Make sure all houses in the house spec array are valid. It was possible that part of a multitile house was not copied because the array was full (r20796)
- Fix: Building 2x2 houses did not work for 2x2 road layouts on all map sizes (r20791)
- Fix: [NewGRF] Remove a check which is wrong for NewGRF houses and serves no use for original houses [FS#4118] (r20790)
- Fix: Spelling mistake in Slovak real town names (r20787)
- Fix: Do autosave-on-exit as well when using kill/CTRL-C to terminate a dedicated OpenTTD (r20783)
- Fix: [NoAI] AIEventCompanyAskMerger was disguised as AIEventCompanyMerger (r20765)
- Fix: [NewGRF] Assert when an industry previously build on water was flooded because its NewGRF changed/is missing [FS#4112] (r20754)
- Fix: Do not use new game settings when creating many random towns/industries in the scenario editor [FS#4094] (r20712, r20711)
- Fix: Graphics glitch when switching to a different-sized font while the chat message box was visible (r20705)
- Fix: Vehicle lists of non-trains could not resize horizontally causing truncation of texts [FS#4123, FS#3955] (r20174)
1.0.4 (2010-09-14)
------------------------------------------------------------------------
- Change: Move removal of bin/data/opentt[dw].grf from distclean to maintainer-clean (r20752)
- Fix: Recent NFORenum does not know '-?' (r20715)
1.0.4-RC1 (2010-08-30)
------------------------------------------------------------------------
- Change: Merge the extra GRF's sources and make it possible to rebuild them easily (r20490)
- Fix: Empty NewGRF presets were not selectable [FS#4087] (r20694)
- Fix: Desync checker checked the wrong variable (r20677)
- Fix: Drawing the 'OpenTTD' text in the intro game caused crashes with very low resolutions [FS#4081] (r20618)
- Fix: Crash when a NewGRF defined an invalid substitute type for a house and the NewGRF was removed during the game, disable houses with different size than their substitute [FS#3702] (r20611, r20610, r20609)
- Fix: Retain information about all base sets that are found and not only the latest version to stop confusing people that use newer versions of the base sets than those available via BaNaNaS (r20607)
- Fix: Let NewGRFs var43 var (information about liveries) for vehicles not be influenced by the local setting determining whether to show liveries or not [FS#4063] (r20605)
- Fix: 'Downscale' a full load order to a load if possible order when removing the order while the vehicle is loading. This to prevent the vehicle from (possibly) staying forever in the station [FS#4075] (r20600)
- Fix: Crash when the tooltip is wider than the window is [FS#4066] (r20596)
- Fix: No (proper) savegame conversion was done when _date_fract got a new value range (r20592)
- Fix: Autoreplace failed while attaching non-replaced wagons to the new chain, if to-be-sold-engines would become front-engines and the unitnumber limit would be exceeded (r20583)
- Fix: Autoreplace can trigger an assertion when at the vehicle limit [FS#4044] (r20582)
- Fix: Go via station and go via waypoint behaved differently when a train went back to the same (unordered) station again [FS#4039] (r20580)
- Fix: Draw bounding boxes using white instead of pure white, so they are recoloured to grey in coloured newspaper instead of blue [FS#4051] (r20578)
- Fix: Scroll button flickering when pressed [FS#4043] (r20577)
- Fix: Warn OpenGFX users when they are using a base set that misses sprites (r20566)
- Fix: Wrong tooltip for the company select button in the AI debug and performance rating windows [FS#4053] (r20556, r20555)
- Fix: In old savegames aircraft can have an invalid state (r20528)
- Fix: Crash when the content download tried to get a MD5 checksum of an 'originally' loaded NewGRF [FS#4038] (r20519)
- Fix: Draw error messages in white by default, they may not have a colour set when coming from a NewGRF (r20514)
- Fix: Entering half the 'generation seeds' in the console's 'newgame' command failed to set the correct seed [FS#4036] (r20512)
- Fix: Desync when vehicles change NewGRF properties such as visual effect when changing railtype [FS#3978] (r20505, r20504, r20503, r20502)
- Fix: Desync when converting rail all as trains with a part on the converted rails need updating and not only the engines (r20500)
- Fix: Ignore the non-stop state when comparing one order type to another order type, otherwise non-stop nearest depot orders fail [FS#4030] (r20498)
- Fix: Non-dedicated servers failing to load a game caused the introgame to be the server's game causing desyncs when people tried to join [FS#3960] (r20497)
- Fix: [NoAI] checking whether water tiles are connected failed in some cases [FS#4031] (r20489)
- Fix: Statues were not removed when towns would be removed (r20481)
- Fix: Do not spend cash when building a statue fails [FS#3985] (r20469, r20227)
- Fix: Adding 'goto nearest depot and stop' orders in one go was denied. This caused both AI adding those orders and backed up order restoration to fail [FS#4024] (r20441)
- Fix: For docks 'facing' north, i.e. having the watery part a the northern side, the station joiner had an off-by-one to the north w.r.t. the station spread against the actual other (correct) building tools [FS#4022] (r20438)
- Fix: Make snow on bridges depend on bridgeheight and make snowiness of bridgeheads depend on the tileheight at the entry [FS#3947] (r20424, r20423, r20422, r20421, r20420)
- Fix: During world generation the snow-mapbits are not yet available, so test the snowline variable directly (as they were before) [FS#4017] (r20418)
- Fix: PBS reservations were always displayed on halftile foundations if the railtype uses overlays [FS#4013] (r20408)
- Fix: Make the default minimum width for editboxes 10 pixels to prevent crashes [FS#4010] (r20394)
- Fix: Prevent buying more vehicles than allowed or buying companies when you'd get too many vehicles [FS#3993] (r20393, r20392, r20391, r20390)
- Fix: Initialize fund-industry buttons when opening window (r20386)
- Fix: Update cursor dimensions when reloading grfs resp. changing base graphics, so the cursor does not glitch if it becomes bigger (r20384)
- Fix: Stop vehicle following after zooming out [FS#3989] (r20361)
- Fix: [NoAI] Ship depots were constructed along the wrong axis [FS#4004] (r20348)
- Fix: Fallback font selection due to missing glyphs did not work as intended (r20296)
- Fix: When it is known the loading an old savegame is going to fail, bail out immediately (using an exception) instead of going on until e.g. the expected number of byte is read (r20247)
- Fix: The caption of the 'Available vehicle' lists was black, whereas for building those vehicles, which uses the exact same window, it was white (r20244)
- Fix: [NoAI] Clarify the documentation for AIBaseStation::GetLocation (r20238)
- Fix: Refit costs from refit orders are subtracted from the vehicle yearly income [FS#3988] (r20234)
- Fix: Road vehicles could be dead locked with one way roads. This allows one wayness to be removed if there are vehicles on a tile; it does not allow you to add one wayness to roads that have vehicles on them as it makes turning vehicles jump [FS#3961] (r20230)
- Fix: 'Service at nearest depot' behaved the same as 'Go to nearest depot' [FS#3986] (r20229)
- Fix: Depot did not become unsnowy, when snowline rises [FS#3976] (r20224)
- Fix: Strip non-printable characters before showing it in an edit box, so when renaming a vehicle type you will not get the 'SETX stuff' that some NewGRFs use [FS#3974] (r20220)
- Fix: NewGRFs that defined a vehicle without either loaded or loading groups could crash OpenTTD [FS#3964] (r20199)
- Fix: [NewGRF] GetNearbyTileInformation can be used to get the terrain type of a MP_VOID tile [FS#3963] (r20197)
- Fix: [NewGRF] Vehicle var FE bit 6 did return incorrect values for new railtypes (r20175)
- Fix: Inconsistencies w.r.t. to km/h vs km-ish/h as 'base' unit for aircraft speeds [FS#3870] (r20164)
1.0.3 (2010-08-01)
------------------------------------------------------------------------
- Fix: Make it possible to properly assess the length of the rail toolbar caption, do not require '{WHITE}' control codes (r20242)
- Fix: Check for disallowed level crossings also when converting rail (r20237)
- Fix: Haiku uses a 'special' location for headers (r20219)
- Fix: Desync due to (temporary) wrong railtype; when loading a savegame the railtype of some (high ID) trains could be wrong [FS#3945] (r20137)
1.0.3-RC1 (2010-07-17)
------------------------------------------------------------------------
- Feature: [NewGRF] Textstack support for CB 38 (r20086)
- Feature: [NewGRF] Add a railtype flag to disallow level crossings per railtype (r20049)
- Change: Improve desync debugging, crash log data and the Debian packaging (by making a debug symbols package) (r20138, r20136, r20129)
- Fix: Do not scan /data and ~/data (if they happen to be your working directory). If it is the directory where your binary is located it will still scan them [FS#3949] (r20166)
- Fix: Integer comparison failed in case the difference was more than 'MAX_UINT'/2 [FS#3954] (r20162)
- Fix: [YAPP] Converting a one-way block to a path signal with trains on both sides could lead to a train crash [FS#3937] (r20156)
- Fix: [NewGRF] Improve handling of snowing of railtypes and (infra)structures on foundations [FS#3883] (r20153, r20132, r20126, r20125)
- Fix: Ships were not marked as dirty when stopping inside a depot [FS#3880] (r20142)
- Fix: Some windows ignored all hotkeys [FS#3902] (r20141, r20140, r20139)
- Fix: Do not allow building a rail track to the water using a tree-tile [FS#3695] (r20110)
- Fix: [NoAI] AITown::GetRating() returned wrong values [FS#3934] (r20103)
- Fix: Reading deleted memory when selecting a NewGRF in the content download window of which the data has not been acquired from the content server. The crash would occur after the content server's reply was processed and the ContentInfo object was replaced with another [FS#3899] (r20089, r20082)
- Fix: If after loading a savegame (including intro game) one tried to save a game (including autosave) and that failed (very) early on because it could not open the file for writing all pointers would be converted to NULLs which then causes corrupted game states [FS#3786, FS#3887, FS#3920, FS#3923] (r20087)
- Fix: gitignore and hgignore had more missing/wrong entries (r20078, r20033, r20031)
- Fix: Remove the space between 'open' and 'ttd' in the title screen (r20077)
- Fix: Road vehicles could get crashed twice in a tick [FS#3896] (r20053, r20034)
- Fix: Coloured_news_year was stored in savegames while it should be a client setting [FS#3916] (r20051)
- Fix: Crash when spectator tried to open a vehicle list without selecting any company [FS#3892] (r20041)
- Fix: Instead of loading the intro game when loading a savegame fails on the dedicated server, generate a new game [FS#3907] (r20039)
- Fix: Tram tracks did not show at level crossing with the new railtypes [FS#3911] (r20036)
- Fix: Under some circumstances you could get into an infinite loop [CVE-2010-2534] [FS#3909] (r20035)
- Fix: The 64 bits TortoiseSVN was not always properly detected (r20029)
- Fix: Do not close the sort dropdown in the (original) vehicle list when there are no vehicles. That code is meant for the 'actions' dropdown [FS#3881] (r20014)
- Fix: When joining a company with a password you could only enter 20 characters of the password (r20012)
- Fix: Sign sorting was unstable [FS#3893] (r20009)
- Fix: Trains should also have running cost while slowing down for stop (r20006)
- Fix: [NewGRF] Stringcodes 82, 83 and 84 were not properly converted to openttd codes so they did not work (r20004)
- Fix: Clear force_proceed when entering depots and when loading, resetting of force_proceed on manual stopping did not work [FS#3878] (r19992)
- Fix: Do not show an error message when trying to start/stop a crashed plane [FS#3874] (r19953)
- Fix: Allow turning of roadvehicles while waiting in a queue (r19945)
- Fix: Disallow moving of vehicle news window [FS#3865] (r19943)
- Fix: Under some (unlucky) circumstances the wrong company would be 'current company' when changing company colour or orders [FS#3903]
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)
- Change: Name invalid engines, cargos and industries 'invalid', if the player removed the supplying NewGRFs, hide invalid engines from the purchase list (r19879, r19877)
- 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)
1.0.1 (2010-05-01)
------------------------------------------------------------------------
- Fix: Crash when using restart via rcon (r19722)
@@ -565,7 +86,7 @@
- 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: [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)
@@ -634,7 +155,7 @@
- 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 'TTDPatch flags' can cause desyncs if they are changed in network games (r19066)
- 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)
@@ -807,7 +328,7 @@
- Feature: Allow building rail stations over existing rail without signals but will upgrade normal rail to electrified rail if necessary (r17460)
- Feature: Crash logger for all Unixy OSes in a similar way as the Windows crash logger (r17453)
- Feature: Open the 'Rename group' dialog after creating new group (r17281)
- Feature: [NoAI] Older API compatibility wrappers, so one can get the 0.7 API in later versions while keeping the real API clean (r17214)
- Feature: [NoAI] Older API compatability wrappers, so one can get the 0.7 API in later versions while keeping the real API clean (r17214)
- Feature: The Windows installer can now optionnaly download OpenGFX and OpenSFX (r17191)
- Feature: Sort vehicle lists on (timetable) delay [FS#2945] (r17182)
- Feature: Localised decimal separator (r17157)
@@ -864,7 +385,7 @@
- Fix: Do not try to overtake a vehicle in a road station as overtaking in a station is not allowed [FS#3390] (r18561)
- Fix: Make aircraft behave the same on autoreplace/autorenew as other vehicle types (r18553)
- Fix: First do the time-since-last-service check and only then determine whether autoreplace needs to take place. This way they will not keep autoreplacing continuously on failure, but only after some timeout. Also check some minimal requirements (engine availability, refittability) and a heuristic for the needed money when sending vehicles for autoreplace [FS#1762] (r18551, r18549)
- Fix: Do not account for path reservation costs when entering a signal block via a 'block' signal. This way you will not get double penalties, both red signals and reservation costs, for the block signalled tracks [FS#2722] (r18535)
- Fix: Do not account for path reservation costs when entering a signal block via a 'block' signal. This way you won't get double penalties, both red signals and reservation costs, for the block signalled tracks [FS#2722] (r18535)
- Fix: [NewGRF] An industry NewGRF that defined a too small size for action0 prop 0A could cause a crash (r18527)
- Fix: Allegro does not like to work with extmidi, so warn the user about that [FS#3272] (r18520)
- Fix: When you pass a signal at danger, in a PBS controlled area, do not try to do the 'safe' thing and stop, but continue going; the user wanted the train to pass the signal at danger so (s)he has to suffer the consequences. Ofcourse one can always stop the train manually [FS#2891] (r18515)
@@ -877,7 +398,7 @@
- Fix: Unselect an AI in the AI Settings window when it falls out of the range of active AIs [FS#3357] (r18436)
- Fix: Road vehicles would not pick an empty drive through stop. Now they will *if* the penalty for driving around is less than the occupancy penalty [FS#1944] (r18404)
- Fix: Long (articulated) road vehicles could block loading of others when the following road vehicle already got 'permission' to go to the next bay even when it could not reach it [FS#1495] (r18404)
- Fix: The tree 'which one to draw' hash was not anywhere near random and thus showed a very visible repeated pattern when only one tree type was used [FS#3343] (r18398)
- Fix: The tree 'which one to draw' hash wasn't anywhere near random and thus showed a very visible repeated pattern when only one tree type was used [FS#3343] (r18398)
- Fix: [NoAI] Make AIIndustryType::GetConstructionCost() return -1, if the industry is neither buildable nor prospectable (r18276)
- Fix: Use free type ascender/descender metrics to position font offset correctly (r18096)
- Fix: Make the 'pause' chat message when actually executing the pause command. This to prevent showing paused and especially unpaused to be shown when the state does not change. Output now mentions whether pause changes keep the game paused and what reasons for pausing there 'currently' are (r18052)
@@ -891,7 +412,7 @@
- Fix: Some inconsistencies with the difficulty settings in the scenario editor. Also re-enable changing some difficulty settings (e.g. max loan) in the scenario editor [FS#3219] (r17644)
- Fix: Do not accept cargo produced in the same industry; generalise and improve the check used only for valuables (r17437)
- Fix: Pay only for cargo actually delivered, not for all cargo unloaded at station; can differ with 'stockpiling' industries (r17436)
- Fix: Improve movement of aircraft; do not make turns bigger than 45 degrees while in flight, do not move while turning on the ground (r17415, r17405)
- Fix: Improve movement of aircraft; do not make turns bigger then 45 degrees while in flight, do not move while turning on the ground (r17415, r17405)
- Fix: Crash in order GUI when changing some orders with both the mouse and keyboard at the exact same time [FS#2859] (r17384)
- Fix: Trains would not show smoke if the load/unload counter was not 0, though there does not seem to be a reason to check that variable anyhow anymore [FS#3162] (r17352)
- Fix: One was not offered to take over bankrupt companies anymore; caused by the introduction NoAI, although NewAI had the same problem too [FS#2769] (r17345)
@@ -906,7 +427,7 @@
- Fix: Autopause and manual pausing conflict with eachother, new game + pause on new game + autopause make the game not unpause on the first join [FS#2864] (r16242)
- Remove: [NoAI] AIVehicle::SkipToVehicleOrder as it was a duplicate of AIOrder.SkipToOrder (r18504)
- Remove: OPF for RVs and NTP for trains; both the oldest path finders (r18362)
- Remove: Support for gcc2. It has not been able to compile OpenTTD for months. All attempts to do another workaround failed (r16492)
- Remove: Support for gcc2. It has not been able to compile OTTD for months. All attempts to do another workaround failed (r16492)
0.7.5 (2009-12-23)
@@ -997,13 +518,13 @@
- Add: [NoAI] AICompany::Get/Set PresidentGender (r17016)
- Add: [NoAI] AIEngine::GetDesignDate (r17014)
- Add: [NoAI] AIStation::GetConstructionDate (r17012)
- Add: [NoAI] AIAbstractList::SORT_ASCENDING/SORT_DESCENDING (r17005)
- Add: [NoAI] AIAbstractList::SORT_ASCENDING / SORT_DESCENDING (r17005)
- Change: [NoAI] AITown::GetLastMonthProduction now returns the same value as AITown::GetMaxProduction (r17293)
- Change: Mention the MD5 checksum of the original NewGRF in the 'saveload failed horribly'-error message and make it more clear that the filename is of the current NewGRF [FS#3139] (r17267)
- Change: Make overbuilding the front tile of a road station/depot with road consistent with overbuilding the front tile of tunnels/bridges [FS#2802] (r17239)
- Change: Improve error output on missing or corrupt files (r17238)
- Change: [Unix] Only use colourized error output on interactive terminals (r17227)
- Change: [NoAI] Crash an AI when it uses a DoCommand/Sleep instead of just printing an error message in the AI Debug Window [FS#2980] (r17223)
- Change: [Unix] Only use colorized error output on interactive terminals (r17227)
- Change: [NoAI] Crash an AI when it uses a DoCommand / Sleep instead of just printing an error message in the AI Debug Window [FS#2980] (r17223)
- Change: [NoAI] When the API requests a string as parameter allow every squirrel type and convert to a string [FS#3101] (r17221)
- Change: Make strgen warn if the translation uses STRINGn or RAW_STRING instead of STRING (r17137, r17129)
- Change: [NoAI] Load the API before compiling an AI script so AIs can subclass API classes and use API constants as part of their own constants (r17043)
@@ -1156,7 +677,7 @@
- Fix: The previously selected NewGRF station type was still remembered after switching to a different game without newstations enabled, preventing stations from being built (r16363)
- Fix: Pointer incremented with wrong count (r16361)
- Fix: Delete invalid depots in TTD savegames caused by improper SVXConverter conversions (r16357)
- Fix: Invalid read when OpenTTD savegame contains VEH_INVALID (r16353)
- Fix: Invalid read when OTTD savegame contains VEH_INVALID (r16353)
- Fix: Signal handler could end in endless loop (r16351)
- Fix: [NewGRF] When overriding 'original sounds', only allow overriding of the 'original sounds' and not any other that is already loaded (r16339)
- Fix: Desyncs when removing lots of stations/towns (r16329, r16328)
@@ -1225,7 +746,7 @@
- Fix: Do not warn that crashed vehicles are getting old; upgrading them is impossible [FS#2740] (r16048)
- Fix: The currency abbreviation for the Romanian Leu is now RON [FS#774] (r16041)
- Fix: Dash was not able to run iconv detection (r16035)
- Fix: [NewGRF] Do not give '... Mines' as name to the station of oil rigs, or more general: do not add '... Mines' when the all of the cargos are part of the liquid, passenger or mail classes [FS#2785] (r16029)
- Fix: [NewGRF] Do not give '... Mines' as name to the station of oil rigs, or more general: do not add '... Mines' when the all of the cargoes are part of the liquid, passenger or mail classes [FS#2785] (r16029)
- Fix: Storing/loading some currencies failed due to inconsistent settings 'tables' [FS#2826] (r16028)
- Fix: Usage of uninitialised memory when trying to build a random new industry, but there are no industrytypes to choose from (i.e. all appearance probabilities are zero) (r16027)
- Fix: 'Build separate station' in the station picker would reuse deleted stations [FS#2818] (r16025)
@@ -1305,7 +826,7 @@
- Feature: Show required/already-delivered cargo needed for town-growth in town-view-window and only if it is really needed (r15559)
- Feature: [NewGRF] Support vehicle vars 0x47 and 0xF2 in purchase list (r15542)
- Feature: [NewGRF] Show the cargo subtype in the vehicle details window (r15480)
- Change: The background of the the waypoint sign is now in the company colour (r15593)
- Change: The background of the the waypoint sign is now in the company color (r15593)
- Change: Allow the default debug level of 6 for a dedicated server to be overriden by -d (if used after -D) (r15543)
- Change: [NewGRF] To decide whether a vehicle is refittable do not test its current capacity for being zero, but always use the 'capacity property' (r15541)
- Fix: [Squirrel] Almost infinite loop in garbage collection (r15659)
@@ -1349,7 +870,7 @@
- Fix: [NewGRF] Livery overrides for articulated parts of roadvehicles were not applied (r15516)
- Fix: Make the join/spectate command require to be connected to a network game; in SP it could lead to crashes (r15514)
- Fix: Generating a map with the original map generator with freeform edges on resulted in a crash [FS#2641] (r15511)
- Fix: Pre-0.5 OpenTTD stored new_nonstop and full_load_any in a different way, savegame conversion was not working for them (r15500)
- Fix: Pre-0.5 OTTD stored new_nonstop and full_load_any in a different way, savegame conversion was not working for them (r15500)
- Fix: Crash when opening the game options when the currently loaded base graphics pack has less than 2 valid graphics files. For example when someone replaces all his/her original base graphics with custom work (but keeps the name) or renames the dos ones to windows or vice versa [FS#2630] (r15476)
@@ -1515,7 +1036,7 @@
- Fix: Free any blocks that a helicopter may have on an oilrig when the helicopter gets forcefully removed (bankruptcy). For other airports this is not needed as they cannot be used by multiple companies [FS#2241] (r14324)
- Fix: Possible assert when renaming removed waypoint (r14322)
- Fix: Properly delete orders so the pool does not fill up (r14319)
- Fix: Do not allow building road over level crossings and drive-through road stops in the wrong direction; do not allow adding roadtypes to non drive-through road stops; pay for all added road bits [FS#2268] (r14316, r14315, r14314, r14308)
- Fix: Do not allow building road over level crossings and drive-through road stops in the wrong direction; do not allow adding roadtypes to non-drive through road stops; pay for all added road bits [FS#2268] (r14316, r14315, r14314, r14308)
- Fix: Aircraft frozen above oil rig when the next order is invalid [FS#2244] (r14309)
- Fix: [YAPF] Only reserve road slots for multistop when they are really reachable [FS#2294] (r14305)
- Fix: One could be trying to get the station name of a station that is outside of the pool (r14297)
@@ -1654,7 +1175,7 @@
0.6.1-RC1 (2008-04-26)
------------------------------------------------------------------------
- Fix: Vehicle groups, engine replacement rules and player/company names were not properly reset/freed after bankrupt (r12906)
- Fix: Remove trams from savegames saved in OpenTTD without tram support, it is better than to simply crash [FS#1953] (r12904)
- Fix: Remove trams from savegames saved in OTTD without tram support, it is better than to simply crash [FS#1953] (r12904)
- Fix: GCC on FreeBSD does not support -dumpmachine causing configure to fail. Use g++ instead [FS#1928] (r12876)
- Fix: Make the town rating tests use less memory and much quicker (r12859)
- Fix: Usage of AutoPtr made (trying to) build stuff very (time) expensive (r12857, r12855)
@@ -1983,12 +1504,12 @@
0.6.0-beta1 (2007-11-18)
------------------------------------------------------------------------
- Feature: Make news messages related to the industry (production) changes better configurable; you can now disable news messages popping up for industries you are not servicing (r11442)
- Feature: When sorting stations by cargo sum, only sum the cargos that are selected in the filter (r11437)
- Feature: When sorting stations by cargo sum, only sum the cargoes that are selected in the filter (r11437)
- Feature: Show all players who have shares, not just the first two (r11435)
- Feature: Make OpenTTD's sprites replaceable using Action 5 and make replacing contiguous subsets of sprites in for some types possible in Action 5 (r11433)
- Feature: Make OTTD's sprites replaceable using Action 5 and make replacing contiguous subsets of sprites in for some types possible in Action 5 (r11433)
- Feature: Allow town-bridges to be build on slopes (r11395)
- Feature: Auto-road; same as auto-rail, but for road and trams and only on X and Y direction (r11339)
- Feature: OpenTTD version checking for NewGRFs. This allows NewGRFs to do something different for different versions of OpenTTD, like disabling it for too low versions or loading different graphics (r11330)
- Feature: OTTD version checking for NewGRFs. This allows NewGRFs to do something different for different versions of OpenTTD, like disabling it for too low versions or loading different graphics (r11330)
- Feature: Half tile- and anti-zig-zag-foundations (r11319)
- Feature: Control-Clicking the Centre Main View button on the vehicle window allows the main viewport to follow the chosen vehicle (r11304)
- Feature: User customisable faces (r11269)
@@ -2081,10 +1602,10 @@
- Codechange: Add new vehicle hash table for collision detection and finding vehicles on a tile. The hash area scanned is far smaller than the old hash table, which is now used for viewport updates only. This should give a significant performance improvement for games with many vehicles (r10111)
- Codechange: Do not redraw all station tiles when cargo is added or removed if the station has no custom graphics (r10062)
- Codechange: Add some support for NewGRF var 7D, temporary storage array (r9707)
- Codechange: Add support for returning 'TTDPatch variables' (Action D) (r9701)
- Codechange: Add support for returning 'ttdpatch variables' (Action D) (r9701)
- Codechange: Implement NewGRF callback 36, which allows changing of various properties which were previously static (r9671 and several others)
- Codechange: Add support for multiple 'base' directories for NewGRF searching (r9560)
- Codechange: Implement actions 1/2/3 for cargos, callback handler and custom icon sprites (rmany)
- Codechange: Implement actions 1/2/3 for cargoes, callback handler and custom icon sprites (rmany)
- Codechange: Rename the 'New <vehtype>' button of the global vehicle lists to 'Available <vehtype>' as it is a view-only list, not one from which you can purchase (rolling) stock (r8420)
- Codechange: Remove the landscaping button from the build toolbars (r8143)
- Codechange: [NewGRF] Do not mark as unsafe those NewGRFs that set their own parameters (via action D) and/or change only bridge sprite table layouts (action 0, property D) (r7831)
@@ -2155,7 +1676,7 @@
- Fix: Allow lumber mill to cut trees only when they are full grown (r8535)
- Fix: Segmentation fault when the toolbar gets removed and you have selected one of the items in a sub menu of the toolbar (r8533)
- Fix: Remove phantom oil rigs sometimes present in old savegames (r8485)
- Fix: When a station is removed, vehicles do not get excessive payment any longer, as the origin TILE is now stored as long as the origin STATION for the transported cargos (r8144)
- Fix: When a station is removed, vehicles do not get excessive payment any longer, as the origin TILE is now stored as long as the origin STATION for the transported cargoes (r8144)
- Fix: The game could crash when the chat key (<ENTER>) is pressed too vehemently during the join of the game. Your client's id does not exist in the clients list yet, and returns NULL (r8132)
- Fix: Rail vehicles can no longer enter tunnels or bridgeheads with wrong railtype (r7976)
- Fix: When path finding onto a bridge or tunnel end from previous tile (but not warping from the opposite end) check the enter direction. This fixes signal setting if a rail ends on the top of a tunnel end (r7718)
@@ -2237,7 +1758,7 @@
- Fix: When you got a sufficiently small resolution, there is a possibility for a division by zero when a sound is played (r10138)
- Fix: When removing a dock, a ship will always try to reach the old location of the dock even when it cannot anymore because it the old location of the dock is now land instead of water [FS#810] (r10131)
- Fix: SetCurrentGrfLangID returned the wrong language ids for most languages (r10130)
- Fix: Some NewGRFs use the same (unused in the 'current' climate) sprite IDs. Normally this gives some artefacts, but when one NewGRF expects it to be a sprite and another NewGRF overwrites it with a non-sprite nasty things happen (drawing a non-sprite crashes OpenTTD) [FS#838] (r10109)
- Fix: Some NewGRFs use the same (unused in the 'current' climate) sprite IDs. Normally this gives some artefacts, but when one NewGRF expects it to be a sprite and another NewGRF overwrites it with a non-sprite nasty things happen (drawing a non-sprite crashes OTTD) [FS#838] (r10109)
- Fix: Multiple subsequent 'give money' actions could result in duplicate messages that money has been transfered when it only happened once, or tell you paid money when you did not [FS#834, FS#839] (r10087, r10085)
- Fix: 'Deactivate Electrified Railways' did not work [FS#836] (10083)
- Fix: Memory leaks in the networking code [FS#846, FS#844] (r10082, r10075)
@@ -2291,7 +1812,7 @@
- Fix: Building rail on steep slopes ignored build_on_slopes patch setting (r9602)
- Fix: Wrong characters in Finnish town names (r9641)
- Fix: When checking for no vehicle on ground-tiles, do not take into account vehicles that are in the air (r9542)
- Fix: Bankrupt AIs no longer buy over themselves (also added safeguards to prevent in future) (r9540, r9541)
- Fix: Bankrupt AIs no longer buy over themselves (also added safeguards to prevent in future) (r9540 / r9541)
- Fix: When company is removed, sell all shares of the and in the company (r9533)
- Fix: Crash when 2 or more clients joined at roughly the same time (r9529)
- Fix: Custom currency was overwritten and fix euro introduction (r9467, r9469)
@@ -2386,7 +1907,7 @@
- Fix: Several desync fixes (incorrect roadstop update of old games, autoreplace bugs) [FS#551] (r8137, r8147, r8157)
- Fix: Some disaster-events fixed: combat chopper shoots from right position, submarine once again moves around (r8140, r8158)
- Fix: 'out of sprite memory' warning messages due to incorrect assumption of requested memory for sprites (r8133)
- Fix: Buoys are now built and numbered 1..9 not 9..1 [FS#538] (r8123)
- Fix: Bouys are now built and numbered 1..9 not 9..1 [FS#538] (r8123)
- Fix: Clicking for more news properly cycles through the news history backwards, and does not show the first item doubly if it's already open (r8049)
- Fix: Crash when removing a town in the scenario editor while the query window is open for one of the town's tiles (r8030)
- Fix: Overflow of system-ticks was not handled properly, resulting in a possibly unresponsive server/client (r8028)
@@ -2425,7 +1946,7 @@
------------------------------------------------------------------------
- General fixes and improvements to TTDPatch's NewGRF format, most noticable are newstations, newsounds, more callbacks and I18n
- Added languages: Bulgarian, Esperanto, Russian, Ukrainian, Languages with proper diacretics: Czech, Hungarian, Turkish
- Feature: Show NewGRF compatibility of network games; green for full compatibility, yellow for missing NewGRFs and red for invalid revision (r7505)
- Feature: Show NewGRF compatability of network games; green for full compatibility, yellow for missing NewGRFs and red for invalid revision (r7505)
- Feature: Load a list of NewGRFs from the config (in the [NewGRF-static] section) that should always be loaded (r7490)
- Feature: Double the length of the cargo and rating indicators in the station list window for better visibility (r7466)
- Feature: NewGRF set up window and browser which allows modification and viewing of NewGRF settings ingame or the main menu (r7357)
@@ -2851,7 +2372,7 @@
- Fix: Incorrect validating of tree-planting command which can allow a buffer-overflow (r3446)
- Fix: [NewGRF] When changing the sprite ID of a vehicle, if it is not FD (custom graphics), the value needs to changed from a 16bit array offset to an array index. (fixes tropicstw.grf) (r3449)
- Fix: You could not remove an item from a list-type of config ingame from the configuration file (r3475)
- Fix: [NewGRF] Always reinitialize the TTDPatch flags as patch settings may have changed (r3486)
- Fix: [NewGRF] Always reinitialize the ttdpatch flags as patch settings may have changed (r3486)
- Fix: Price for demolishing a bridge was dependent on orientation and map size (r3487)
@@ -2896,9 +2417,9 @@
- Feature: Complete rework of console and new commands like ls, save, load, help, etc
- Feature: Signs are shown in the colour of the player who created them
- Feature: Add cheat option to set production of raw-material industries in game
- Feature: Replace train GUI remembers railtype selected from the dropdown menu
- Feature: Replace trian GUI remembers railtype selected from the dropdown menu
- Feature: Improved Autoreplace
- Feature: Many more smaller features
- Feature: <any more smaller features :D
- Fix: A wrong error message was displayed when trying to [SF#1108618]
- Fix: Game does not crash any more when a NewGRF file does not exist [SF#1110407]
- Fix: Clearing land for free by reallocating HQ [SF#1112469]
@@ -2908,21 +2429,21 @@
- Fix: Dedicated server boots again [SF#1114100]
- Fix: Game crashed sometimes when there were no industries in the map [SF#1114950]
- Fix: In the main menu, when starting a new game while the load game dialog is open, openttd asserts [SF#1115200]
- Fix: Non-stop orders are no longer accidentally skipped [SF#1117538]
- Fix: Non-stop orders are no longer accidently skipped [SF#1117538]
- Fix: Generate the correct smoke type for diesel trains [SF#1116619]
- Fix: Max passengers/mail variables are now 32 bit [SF#1119308]
- Fix: Max passengers / mail variables are now 32 bit [SF#1119308]
- Fix: Better test if a string actually contains any console command [SF#1109400]
- Fix: 'Play scenario' now loads game options and difficulty, 'Load game' starts game with user-selected values [SF#1108637]
- Fix: Carriages of NewGRFs can be refitted again [SF#1143587]
- Fix: Production values of temperate-climate banks can now be altered [SF#1117730]
- Fix: Mapwrap fixed in ship_cmd.c (was implicitly ok before biggermaps) [SF#1118810]
- Fix: Mapwrap fixed in ship_cmd.c (was implicitely ok before biggermaps) [SF#1118810]
- Fix: Assertion error on kick. When a company is cleaned all its windows need to be closed. For global vehicle lists, the no-staiton index of -1 was not taken into account [SF#1117327]
- Fix: Speeding up when pressing ALT+TAB (Windows) [SF#1114261]
- Fix: Signals disappear after typing text and pressing enter!. Signs in Scenario Editor have no owner so ignore that [SF#1149403]
- Fix: Signals dissaper after typing text and pressing enter!. Signs in Scenario Editor have no owner so ignore that [SF#1149403]
- Fix: Single tile Bridge in Volcano City scenario. Some bridges still had the old single-tile bridge bug that was caused by improper town growth in combination with DC_AUTO. Fixed the scenario [SF#1149766]
- Fix: Stop startup memory corruption crash using optimized MSVC6. MSVC6 workaround as it's too stupid again for its own good [SF#1119147]
- Fix: Dedicated server now accepts '-g' (load game) as param [SF#1101874]
- Fix: Crash with German umlauts in station names [SF#1155696]
- Fix: Crash with german umlauts in station names [SF#1155696]
- Fix: Segmentation fault when loading savegame, out of bounds array check [SF#1158618]
- Fix: Autosave ignoring settings [SF#1149487]
- Fix: [Windows] Infinite access for A:\. Only requery drive(s) if the user changes a directory, also supress the OS error box that pops up on some windows machines [SF#1024703]
@@ -2937,7 +2458,7 @@
- Fix: Non-existing sprite #5125 (presignal). The DOS grf file trgi.grf has 6 less sprites than the windows one [SF#1188777]
- Fix: Changing mapsize crashes game with highlighting [SF#1190625]
- Fix: [NPF] Trains ignoring their railtype (mono, maglev) [SF#1190896, SF#1184378]
- Fix: Clicking ship list on buoy asserts GetPlayer() [SF#1202115]
- Fix: Clicking shipslist on bouy asserts GetPlayer() [SF#1202115]
- Fix: No HQ present for competitor, disable 'View HQ' button [SF#1187613]
- Fix: Pre-signal stays red when there is only a single exit signal [SF#1193048]
- Fix: Train in tunnel is not properly detected by signal code [SF#1185176]
@@ -2948,7 +2469,7 @@
- Fix: Crash when generating tropical maps
- Fix: [Autoreplace] Cheaters can no longer exploit autoreplace to get vehicles, that's not invented yet
- Fix: [Autoreplace] Fixed a stupid bug introduced in r1687, that made a crash if anybody tried to autoreplace anything but an aircraft
- Fix: Expand rail stations beyond maximum spread
- Fix: Expand railroad stations beyond maximum spread
- Fix: [Autoreplace] Fixed a typo that could prevent autoreplaced aircraft from automatically go to a hangar
- Fix: Hacked clients can no longer be used to build vehicles that are not available yet
- Fix: Minimum profit of vehicles was calculated wrong for Performance Rating
@@ -2960,8 +2481,8 @@
0.3.6 (2005-01-24)
------------------------------------------------------------------------
- Feature: Resizeable windows. All useful windows are already made resizeable
- Feature: Highscore chart (accessible from the difficulty window) with top 5 companies for a given difficulty (select the difficulty in the menu)
- Feature: Resizable windows. All useful windows are already made resizable
- Feature: Highscore chart (accessible from the difficulty window) with top5 companies for a given difficulty (select the difficulty in the menu)
- Feature: Endgame score on 1 jan 2051 where you are added to the highscore if sufficiently large points have been accumulated. Game is paused while
- Feature: Visually enhanced autorail placing
- Feature: Autoreplace Vehicles (accessible from the vehicle lists)
@@ -2976,20 +2497,20 @@
- Feature: [Unix] Check which gcc version is present and only set available compiler flags
- Feature: [Windows] CTRL+V (Paste) now works on all editboxes. This includes 'Add Server', chat, etc
- Feature: [Windows] Dedicated server is now functioning correctly
- Feature: Added keyboard shortcuts for the order window
- Feature: Addded keyboard shortcuts for the order window
- Feature: Aircraft refit options have been restricted to 'sane' values
- Feature: Allows setting the production values of the rawmaterial producing industries in the editor
- Feature: Console support for loading maps. Use 'load', 'list_files' and 'goto_dir' to navigate and load games
- Feature: Display server port in the multiplayer game info window
- Feature: Dynamite in landscaping toolbar (hotkey 'D')
- Feature: Improved Network Lobby GUI with a green dot if company income is positive (else red dot) and lock icon if company is password protected
- Feature: Make OpenTTD compile on Zeta
- Feature: Make ottd compile on Zeta
- Feature: MD5 hash check for TTD files
- Feature: New companies receive a 5-year protection period against buying-up
- Feature: Norwegian townnames
- Feature: Order Checking is only execute for ONE vehicle in an order-share system
- Feature: Passengers aircraft now ignore the amount of mail for 'full load any' options
- Feature: Place multiple accepting industries nearby in the editor mode if the appropriate patches are set
- Feature: Place multiple accepting industies nearby in the editor mode if the appropriate patches are set
- Feature: Population in label of the town (patch setting)
- Feature: Scrolling credits list (in alphabetical order)
- Feature: Train window now shows the number of vehicles per row
@@ -3009,24 +2530,24 @@
- Fix: Placing rocks in scenario editor. You can place rocks on trees and vice versa [SF#1092707]
- Fix: Drive side in new games. Setting the driver side is possible during the game until someone buys road vehicles. In networked games only the server can change it [SF#1093200]
- Fix: No more glitches with many maps in the scenario list when creating server [SF#1093466]
- Fix: Disappearing rocks in Scenario Editor [SF#1093485]
- Fix: Dissappearing rocks in Scenario Editor [SF#1093485]
- Fix: Toolbars accessible via keyboard in spectator mode [SF#1094092]
- Fix: When all stations in an aircraft's order list are demolished, the plane eventually crashes (running out of fuel) [SF#1095020]
- Fix: Servers list now also saves the port [SF#1095143]
- Fix: Crash when all vehicles from a vehicles per station list had been removed [SF#1098553]
- Fix: Starting year patch goes out of range. Clamped year between 1920-2090 [SF#1099101]
- Fix: Bug Fix - Vehicle Lists not updated at Acquisition [SF#1099225]
- Fix: Bug Fix - Vehicle Lists not updated at Acqusition [SF#1099225]
- Fix: Game crashes after the click on Rename (see also Bug 10992). There was no check for non-selected engine [SF#1099451]
- Fix: Wrong tooltip for place desert button [SF#1100736]
- Fix: Fast forward in main menu [SF#1100767]
- Fix: Crash if generating land while industry window is open. This also happened for towns and the land information window [SF#1101179]
- Fix: Configure Patches window text overflow [SF#1101906]
- Fix: Console in dedicated server [SF#1101963]
- Fix: Game crashed when clicking 'new face' or 'company colour' twice [SF#1102275]
- Fix: Game crashed when clicking 'new face' or 'company color' twice [SF#1102275]
- Fix: Vehicle lists are now redrawn when a vehicle arrives in a depot. Station-specific vehicle lists are now redrawn daily as well (not only the master list) [SF#1099535, SF#1102776]
- Fix: Font size changing. Dedicated server did not have code filtering, 'tab' could result in bigger fonts [SF#1103113]
- Fix: Order Check messages are now validated before displayed [SF#1103187]
- Fix: Rail road tracks on slopes were not flooded [SF#1103301]
- Fix: Railroad tracks on slopes were not flooded [SF#1103301]
- Fix: Crashed trains do not initiate the lost vehicle message anymore [SF#1104350]
- Fix: On horizontal/vertical tracks you are also charged for building/removing signals on the parallel track on the same tile [SF#110452]
- Fix: Aircraft in hangar messages are now revalidated before display [SF#1104969]
@@ -3044,7 +2565,7 @@
- Fix: [Network] 'kick 1' did crash dedicated servers
- Fix: [Network] A server no longer crashes when a client sends an invalid DoCommand, but drops the client instead
- Fix: [Network] Added packet protection. No longer a client or server
- Fix: [Network] Bug in bind system. Advertising failed on systems with more than 1 ip, and server_bind active to one of them
- Fix: [Network] Bug in bind system. Advertising failed on systems with more then 1 ip, and server_bind active to one of them
- Fix: [Network] Disabled 'money-cheat' (read: bug which could give people a lot of money)
- Fix: [SDL] Now the binary never links to SDL if DEDICATED is set
- Fix: [Windows] Somehow mousewheel was disabled on windows using SDL; reenabled again
@@ -3052,11 +2573,11 @@
- Fix: Autoreplace vehicle lists are now redrawn when a new vehicle becomes available
- Fix: Buy Vehicle GUI now shows HPs bigger than 32000 correctly
- Fix: Console alias, load_game functionality and load fix
- Fix: Correct error message for when trying to build a rail station over a bus/truck/etc-station
- Fix: Correct error message for when trying to build a railroad station over a bus/truck/etc-station
- Fix: Correct landscaping buttons in monorail and maglev toolbars
- Fix: Dedicated server also writes to log file if active
- Fix: Desert-landscape does no longer crash
- Fix: Expand town is a bit more aggressive
- Fix: Expand town is a bit more agressive
- Fix: Finally zooming in/out always works
- Fix: Fixed chat-bug (that from a certain moment, nobody could talk)
- Fix: Fixed weight for double-head trains and with that the acceleration (now maglev lvl4 can reach their top speed, and are faster than lvl3)
@@ -3079,7 +2600,7 @@
- Fix: Autorenewing multiheaded train engines now costs the correct amount. Used to be twice the correct price
- Fix: The scrollbar in the network gui (server list) now updates when scrolling
- Fix: Train crashes should no longer desync the game
- Fix: When deleting an order, the next pointer was not cleared, resulting in some unusual behaviour from time to time
- Fix: When deleting an order, the next pointer was not cleared, resulting in some unusual behavoir from time to time
- Fix: You can now also delete automatically found servers by pressing 'del'
- Fix: You should no longer be able to delete bridges on any type of underground when there is a vehicle on it
@@ -3104,10 +2625,10 @@
- Feature: Game compiles under OS/2 (no network-support)
- Feature: OpenTTD runs with the grf files of the DOS version
- Feature: [Big Endian computers, which are mac and MorphOS] Load savegames by TTD(Patch)
- Add: 'l' opens the landscaping toolbar globally
- Add: 'l' openes the landscaping toolbar globally
- Add: Make the town sometimes build streets on slopes
- Add: Manpage
- Add: New checkpoint graphics
- Add: New checkpoint grahpics
- Add: SHIFT+DEL now deletes all non-vital windows (only status bar and main bar remain)
- Add: Windows now shows revision, release information in title bar
- Add: Windows snap at each other
@@ -3138,7 +2659,7 @@
- Fix: Backup-order-list was not closed with an OT_NOTHING, [SF#1086375]
- Fix: Docks now have a button to display the catchment area [SF#1085255]
- Fix: Invisible trains. Weird macros and MSVC optimizing do not always mix [SF#1070274]
- Fix: Number of passengers and mail in exclusive test offer window is swapped [SF#1068269]
- Fix: Number of passangers and mail in exclusive test offer window is swapped [SF#1068269]
- Fix: Pause key pauses the game [SF#1066504]
- Fix: Resetting file name after deleting a file [SF#1066121]
- Fix: Code error in win32.c Thanks Shai [SF#1066114]
@@ -3153,7 +2674,7 @@
- Fix: 'Allow goto depot' turned off, no checkpoints in orders [SF#1035066]
- Fix: Place sign and blue message box [SF#1034318]
- Fix: Wrong mapping between music titles and songs [SF#1033947]
- Fix: Some screensizes crashes OpenTTD. Fix in general bug that only allows resolutions which were multiple of 8 in width and height. Also use closest possible resolution in fullscreen if window size is not a valid resolution [SF#1030393]
- Fix: Some screensizes crashes OTTD. Fix in general bug that only allows resolutions which were multiple of 8 in width and height. Also use closest possible resolution in fullscreen if window size is not a valid resolution [SF#1030393]
- Fix: 'Service at' orders ignored after 2090. After 2090 year is reset to 1. Jan 2090, so most of the time, last service was in the future and no service ensured [SF#1030275]
- Fix: Building a station acted weird in some rare situations [SF#1029064]
- Fix: Ships could unload cargo at stations without docks [SF#1022227]
@@ -3162,7 +2683,7 @@
- Fix: Disabled buttons flicker no more [SF#991101]
- Fix: Start/stop flag in train depots always works, regardless of the horizontal scroll position [SF#985925]
- Fix: Un-owned rail. Trains could cross competitor's tracks if there was a road-crossing over it [SF#985439]
- Fix: Pathfinding bug; train likes the roundabout. If train needs servicing it will now look 16 tiles along the track instead of 12 tiles Manhattan style [SF#982611]
- Fix: Pathfinding bug; train likes the roundabout. If train needs servicing it will now look 16 tiles along the track instead of 12 tiles manhattan style [SF#982611]
- Fix: Fullscreen. New button 'Fullscreen' in 'Game Options' menu which lets you set fullscreen ingame [SF#967096]
- Fix: No longer road/rail crossing signals hang when a train is reversed at the wrong moment [SF#958098]
- Fix: Ctrl + d bug. Longest outstanding bug has been fixed [SF#926105]
@@ -3175,7 +2696,7 @@
- Add: Generalised queues (Fifo, Stack, InsSort, BinaryHeap)
- Change: Changed 'terraforming' to 'landscaping'
- Change: Changed default options (road side, distance units, currency) to most commonly used options
- Change: Disable 'Submit Report' and 'Show Details' on OpenTTD error window on Windows. Currently of no use, since no developers have assembly knowledge
- Change: Disable 'Submit Report' and 'Show Details' on OpenTTD error window on Windows. Currently of no use, since no devs have assembly knowledge
- Change: Removed patch no_train_service. Instead you can set the default service interval for any vehicle type to 'disabled'
- Codechange: Comments added to the code
- Codechange: Made bridge building code more readable [SF#996244]
@@ -3198,7 +2719,7 @@
- Feature: Copy/share orders now works from ship depot window for ships and hangar window for aircraft
- Feature: Difficulty settings window has been changed
- Feature: Enable/disable all buttons in message settings
- Feature: Executable is now openttd(.exe) always
- Feature: Executeable is now openttd(.exe) always
- Feature: General protection around Sprites
- Feature: Ingame console
- Feature: Invalid (void) orders in schedule are highlighted in red
@@ -3228,8 +2749,7 @@
- Fix: A lot of old AI fixed
- Fix: All scenarios, savegames show up with their correct name
- Fix: Automatic oil refinery generation in editor
- Fix: Autosave folder was not created on MorphOS
- Fix: Bridge slope fix again
- Fix: Autosave folder was not created on MorphOS- Fix: Bridge slope fix again, thanks Truelight
- Fix: Bulldozing stuff with cheat magic_dynamite turned on does not lower city ratings
- Fix: Change SDL_HWSURFACE back to SDL_SWSURFACE (Diablo-3D); better performance
- Fix: Coast line near edge of map and near oilrigs
@@ -3239,7 +2759,7 @@
- Fix: Error message for 'game load failed' when no town is in a scenario
- Fix: Game not pausing when saveload dialog is clicked in main menu
- Fix: Load Scenario fix
- Fix: Make Endianness check 100% accurate
- Fix: Make endianess check 100% accurate
- Fix: Memory leak in news system
- Fix: Monorail/maglev became available around 1927
- Fix: Move around sort-widgets a bit so it looks more natural
@@ -3250,7 +2770,7 @@
- Fix: Playing new game with scenarios in windows works
- Fix: Possible to disable some patches (e.g. default service interval) again by setting them to 0
- Fix: Problems around exclusive transport rights
- Fix: Rail road crossings on slopes are now possible
- Fix: Railroad crossings on slopes are now possible
- Fix: Random crash when player-face was displayed in error-dialog
- Fix: Rare mousewheel scrolling with scrollbar crash
- Fix: Road vehicles do not get stuck any more at stations
@@ -3264,7 +2784,7 @@
- Fix: Stupid bug in company league window if non-player is first
- Fix: Two non-AI players when loading a scenario
- Fix: Unix uses same sorting of directories, files as windows
- Fix: When adding parts to a station max size is not 15x15 anymore, but _patches.station_spread
- Fix: When adding parts to a statin max size is not 15x15 anymore, but _patches.station_spread
- Fix: Win98 crashes related to music/sound
- Fix: Wrong building of road-slopes for a future AI/Town
- Fix: Wrong pathfinding when northern station tile is missing
@@ -3277,7 +2797,7 @@
- Fix: Minimap crash [SF#972087]
- Fix: Bug in 'weird non-uniform stations handling' [SF#972247]
- Fix: Parent_list was too small [SF#976583]
- Fix: Memory leak in parent_list [SF#981934]
- Fix: Memoryleak in parent_list [SF#981934]
- Fix: Max_loan in editor bug [SF#982666]
- Fix: Bridge building over boats [SF#987888]
- Fix: Cargo delivery area patch for bug [SF#990770, SF#989322]
@@ -3312,7 +2832,7 @@
- Fix: Bug when dragging a part of a multiheaded engine to 'sell-whole-train' [SF#1022689]
- Fix: Fix for MouseWheel assert error in non-zoomable viewports. Zooming now will only occur if mousepointer is either in an extra viewport window, or main game-window [SF#1023971]
- Fix: Company value problem (again). Now company value rightly shows the value, including ALL your money [SF#1025836]
- Fix: Company values bigger than int32 were put to negative [SF#1025836]
- Fix: Company values bigger dan int32 were put to negative [SF#1025836]
- Fix: Long bridges had negative value [SF#1025836]
- Fix: Vehicle depots not transparent with transparent buildings [SF#1026271]
@@ -3381,11 +2901,11 @@
- Fix: Destroying bridge (over water or 'higher bridge' with vehicle on it)
- Fix: Game crashes when you hit the build rail button
- Fix: Some scenarios had a max_railtype of 0
- Fix: Bribe Authority. A failed attempt to bribe is now also stored in savegame
- Fix: Bribe Autorithy. A failed attempt to bribe is now also stored in savegame
- Fix: 80% CPU load paused in fast-forward
- Fix: Some airport runways were treated
- Fix: Minor minimap glitch
- Fix: Station sorting scroll fails with not enough stations
- Fix: Station sorting scroll fails with not ennough stations
- Fix: Desert ground for depots in the desert
- Fix: Trains could run on wrong track type under bridges
- Fix: Screenshot hangs
@@ -3411,7 +2931,7 @@
- Fix: 100% CPU bug
- Fix: Crash when AI builds airport
- Fix: Plays wrong music on main screen
- Fix: Inflation was way too high when interest rate = 0
- Fix: Inflation was way too high when intrest rate = 0
- Fix: Cannot sell anything if money is TOO negative
- Fix: Fast forward button resets
- Fix: 'Refit train' button remains
@@ -3461,7 +2981,7 @@
- Change: 'kmh^-1' to 'km/h'
- Change: Show original savegame names for oldstyle savegames
- Change: Autosave go to autosave/
- Fix: Do not allow building rail stations on airports or bus stations
- Fix: Do not allow building railroad stations on airports or bus stations
- Fix: Canal tool resets after 1 use
- Fix: Enable mouse wheel scrolling and zooming in SDL
- Fix: Construct industries producing raw materials
@@ -3481,7 +3001,7 @@
- Fix: Quit to beos
- Fix: Dragging to build canals sometimes crashed
- Fix: Cactus plants died on desert
- Fix: Invalid letters in Spanish town names
- Fix: Invalid letters in spanish town names
- Fix: Rail upgrade button
- Fix: Makefile reorganization
- Fix: Zoom out button not grayed out
@@ -3503,7 +3023,7 @@
- Feature: Dragging to construct canals
- Feature: Can now have more than 128 towns
- Feature: Always allow building small airports patch
- Feature: Colourful newspaper after a certain date
- Feature: Colorful newspaper after a certain date
- Feature: Build while paused patch
- Feature: Polish town names
- Feature: Clear area now works in scenario editor
@@ -3525,7 +3045,7 @@
- Fix: Array bounds error with train breakdown speeds
- Fix: Towns deleting random tiles around houses
- Fix: Incorrect road vehicle list caption for competitors
- Fix: Vehicle menu graying after a bankruptcy
- Fix: Vehicle menu graying after a bankrupty
- Fix: Selective road removal
- Fix: Make houses available in 1920 to prevent hang
- Fix: Duration of breakdown smoke
@@ -3557,7 +3077,7 @@
- Feature: Canals/shiplifts
- Feature: Build tree of random type
- Feature: Build trees on area
- Feature: Added colour coded vehicle profits
- Feature: Added color coded vehicle profits
- Feature: Ability to close error messages with space
- Feature: Network games (currently unsupported)
- Feature: Bigger demolish tool
@@ -3704,7 +3224,7 @@
- Fix: Creating random town in scenario editor crash
- Fix: Candy bubbles sometimes caused crash
- Fix: Wrong speed was shown in news window for some vehicles
- Fix: Graph colour bleeding
- Fix: Graph color bleeding
- Fix: Arrow keys with SDL driver
- Fix: Do not allow trains to road depots
- Fix: Road vehicle was sometimes shown inside depot
@@ -3764,6 +3284,6 @@
- Add: DirectMusic driver for Windows version
- Add: 'build tracks on slopes' feature
- Fix: Problem where directories were not displayed under Linux
- Fix: Colours in map window for routes
- Fix: Colors in map window for routes
- Fix: Road drive side
- Fix: 'Fund road construction' not clickable when unavailable

View File

@@ -11,6 +11,8 @@ log() {
}
set_default() {
released_version="1.0.1"
ignore_extra_parameters="0"
# We set all kinds of defaults for params. Later on the user can override
# most of them; but if they don't, this default is used.
@@ -53,10 +55,9 @@ set_default() {
enable_static="1"
enable_translator="0"
enable_unicode="1"
enable_console="1";
enable_assert="1"
enable_strip="0"
enable_universal="0"
enable_assert="0"
enable_strip="1"
enable_universal="1"
enable_osx_g5="0"
enable_cocoa_quartz="1"
enable_cocoa_quickdraw="1"
@@ -67,7 +68,6 @@ set_default() {
with_sdl="1"
with_cocoa="1"
with_zlib="1"
with_lzma="1"
with_lzo2="1"
with_png="1"
enable_builtin_depend="1"
@@ -127,7 +127,6 @@ set_default() {
enable_static
enable_translator
enable_unicode
enable_console
enable_assert
enable_strip
enable_universal
@@ -140,7 +139,6 @@ set_default() {
with_sdl
with_cocoa
with_zlib
with_lzma
with_lzo2
with_png
enable_builtin_depend
@@ -297,7 +295,7 @@ detect_params() {
--enable-strip) enable_strip="2";;
--enable-strip=*) enable_strip="$optarg";;
--disable-universal) enable_universal="0";;
--enable-universal) enable_universal="i386 ppc";;
--enable-universal) enable_universal="2";;
--enable-universal=*) enable_universal="$optarg";;
--disable-osx-g5) enable_osx_g5="0";;
--enable-osx-g5) enable_osx_g5="2";;
@@ -305,9 +303,6 @@ detect_params() {
--disable-unicode) enable_unicode="0";;
--enable-unicode) enable_unicode="2";;
--enable-unicode=*) enable_unicode="$optarg";;
--disable-console) enable_console="0";;
--enable-console) enable_console="2";;
--enable-console=*) enable_console="$optarg";;
--disable-cocoa-quartz) enable_cocoa_quartz="0";;
--enable-cocoa-quartz) enable_cocoa_quartz="2";;
@@ -332,13 +327,6 @@ detect_params() {
--without-zlib) with_zlib="0";;
--with-zlib=*) with_zlib="$optarg";;
--with-lzma) with_lzma="2";;
--without-lzma) with_lzma="0";;
--with-lzma=*) with_lzma="$optarg";;
--with-liblzma) with_lzma="2";;
--without-liblzma) with_lzma="0";;
--with-liblzma=*) with_lzma="$optarg";;
--with-lzo2) with_lzo2="2";;
--without-lzo2) with_lzo2="0";;
--with-lzo2=*) with_lzo2="$optarg";;
@@ -531,15 +519,23 @@ check_params() {
check_build
check_host
# Check for universal builds; they only make sense for OSX, so fail if enabled for another OS
# We might enable universal builds always on OSX targets.. but currently we don't
# if [ "$enable_universal" = "1" ] && [ "$os" != "OSX" ]; then
if [ "$enable_universal" = "1" ]; then
enable_universal="0"
fi
if [ "$enable_universal" = "2" ] && [ "$os" != "OSX" ]; then
log 1 "configure: error: --enable-universal only works on OSX"
exit 1
fi
if [ "$enable_universal" = "0" ]; then
log 1 "checking universal build... no"
else
if [ "$os" != "OSX" ]; then
log 1 "configure: error: --enable-universal only works on OSX"
exit 1
if [ "$enable_universal" = "64" ]; then
log 1 "checking universal build... yes (including 64 bits)"
else
log 1 "checking universal build... yes (without 64 bits)"
fi
log 1 "checking universal build... yes, for: $enable_universal"
fi
# Already detected by check_build
@@ -622,8 +618,7 @@ check_params() {
fi
if [ "$enable_lto" != "0" ]; then
# GCC 4.5 outputs '%{flto}', GCC 4.6 outputs '%{flto*}'
has_lto=`($cxx_build -dumpspecs 2>&1 | grep '\%{flto') || ($cxx_build -help ipo 2>&1 | grep '\-ipo')`
has_lto=`($cxx_build -dumpspecs 2>&1 | grep '\%{flto}') || ($cxx_build -help ipo 2>&1 | grep '\-ipo')`
if [ -n "$has_lto" ]; then
log 1 "using link time optimization... yes"
else
@@ -714,20 +709,6 @@ check_params() {
fi
fi
if [ "$os" != "MINGW" ] && [ "$os" != "CYGWIN" ]; then
log 1 "checking console application... not Windows, skipping"
elif [ "$enable_console" = "1" ] && [ "$enable_dedicated" != "0" ]; then
log 1 "checking console application... dedicated server, enabled"
enable_console="2"
elif [ "$enable_console" = "1" ]; then
log 1 "checking console application... disabled (only used when forced)"
enable_console="0"
elif [ "$enable_console" = "0" ]; then
log 1 "checking console application... disabled"
else
log 1 "checking console application... enabled"
fi
if [ "$enable_network" = "1" ] && [ "$os" = "DOS" ]; then
log 1 "checking network... DOS, skipping"
enable_network=0
@@ -765,9 +746,9 @@ check_params() {
if [ "$with_zlib" = "0" ] || [ -z "$zlib" ]; then
log 1 "WARNING: zlib was not detected or disabled"
log 1 "WARNING: OpenTTD doesn't require zlib, but it does mean that many features"
log 1 "WARNING: (like loading most old savegames/scenarios, loading heightmaps,"
log 1 "WARNING: using PNG, or using fonts, ...) will be disabled."
log 1 "WARNING: OpenTTD doesn't require zlib, but it does mean many features (like"
log 1 "WARNING: loading most savegames/scenarios, joining most servers, loading"
log 1 "WARNING: heightmaps, using PNG or using fonts, ...) will be disabled."
if [ "$pre_detect_with_zlib" = "0" ]; then
log 1 "WARNING: We strongly suggest you to install zlib."
else
@@ -777,23 +758,6 @@ check_params() {
fi
fi
pre_detect_with_lzma=$with_lzma
detect_lzma
if [ "$with_lzma" = "0" ] || [ -z "$lzma_config" ]; then
log 1 "WARNING: lzma was not detected or disabled"
log 1 "WARNING: OpenTTD doesn't require lzma, but it does mean that many features"
log 1 "WARNING: (like loading most savegames/scenarios and joining most servers)"
log 1 "WARNING: will be disabled."
if [ "$pre_detect_with_lzma" = "0" ]; then
log 1 "WARNING: We strongly suggest you to install liblzma."
log 1 "configure: error: no liblzma detected"
else
log 1 " If you want to compile without lzma use --without-lzma as parameter"
exit
fi
fi
pre_detect_with_lzo2=$with_lzo2
detect_lzo2
@@ -952,10 +916,10 @@ check_params() {
fi
if [ "$os" = "OSX" ]; then
# Test on ppc970 (G5) - we can optimize there
# Test on G5
if [ "$enable_osx_g5" != "0" ]; then
log 1 "detecting ppc970 (G5)... yes (forced)"
log 1 "detecting G5... yes (forced)"
else
# First, are we a real OSX system, else we can't detect it
native=`LC_ALL=C uname | tr '[A-Z]' '[a-z]' | grep darwin`
@@ -968,61 +932,69 @@ check_params() {
# This is G5, add flags for it
enable_osx_g5="2"
log 1 "detecting ppc970 (G5)... yes"
log 1 "detecting G5... yes"
else
enable_osx_g5="0"
log 1 "detecting ppc970 (G5)... no"
log 1 "detecting G5... no"
fi
else
enable_osx_g5="0"
log 1 "detecting ppc970 (G5)... no (cross-compiling)"
log 1 "detecting G5... no (cross-compiling)"
fi
fi
else
if [ "$enable_osx_g5" != "0" ]; then
log 1 "configure: error: ppc970 (OSX G5) selected, but not compiling for OSX"
log 1 "configure: error: either select OSX as OS, or deselect ppc970"
log 1 "configure: error: OSX G5 selected, but not compiling for OSX"
log 1 "configure: error: either select OSX as OS, or deselect OSX G5"
exit 1
fi
fi
if [ -n "$revision" ]; then
log 1 "checking revision... $revision"
log 1 "WARNING: we do not advise you to use this setting"
log 1 "WARNING: in most cases it is not safe for network use"
log 1 "WARNING: USE WITH CAUTION!"
if [ -n "$released_version" ]; then
log 1 "checking revision... release ($released_version)"
if [ -n "$revision" ] && [ "$revision" != "$released_version" ]; then
log 1 "WARNING: overriding of the revision is NOT possible for releases"
log 1 "WARNING: the given revision is IGNORED"
sleep 5
elif [ -f "$ROOT_DIR/version" ]; then
revision="`cat $ROOT_DIR/version`"
log 1 "checking revision... $revision"
elif [ -d "$ROOT_DIR/.svn" ] && [ -n "`svn help 2>/dev/null`" ]; then
revision=""
log 1 "checking revision... svn detection"
elif [ -d "$ROOT_DIR/.git" ] && [ -n "`git help 2>/dev/null`" ]; then
revision=""
log 1 "checking revision... git detection"
elif [ -d "$ROOT_DIR/.hg" ] && [ -n "`hg help 2>/dev/null`" ]; then
revision=""
log 1 "checking revision... hg detection"
elif [ -f "$ROOT_DIR/.ottdrev" ]; then
revision=""
log 1 "checking revision... source tarball"
sleep 5
fi
revision=$released_version
else
revision=""
log 1 "checking revision... no detection"
log 1 "WARNING: there is no means to determine the version."
log 1 "WARNING: please use a subversion, mercurial, or git checkout of OpenTTD."
log 1 "WARNING: you can only join game servers that have been compiled without"
log 1 "WARNING: version detection."
log 1 "WARNING: there is a great chance you desync."
log 1 "WARNING: USE WITH CAUTION!"
if [ -n "$revision" ]; then
log 1 "checking revision... $revision"
log 1 "WARNING: we do not advise you to use this setting"
log 1 "WARNING: in most cases it is not safe for network use"
log 1 "WARNING: USE WITH CAUTION!"
sleep 5
sleep 5
elif [ -f "$ROOT_DIR/version" ]; then
revision="`cat $ROOT_DIR/version`"
log 1 "checking revision... $revision"
elif [ -d "$ROOT_DIR/.svn" ] && [ -n "`svn help 2>/dev/null`" ]; then
revision=""
log 1 "checking revision... svn detection"
elif [ -d "$ROOT_DIR/.git" ] && [ -n "`git help 2>/dev/null`" ]; then
revision=""
log 1 "checking revision... git detection"
elif [ -d "$ROOT_DIR/.hg" ] && [ -n "`hg help 2>/dev/null`" ]; then
revision=""
log 1 "checking revision... hg detection"
else
revision=""
log 1 "checking revision... no detection"
log 1 "WARNING: there is no means to determine the version."
log 1 "WARNING: please use a subversion, mercurial, or git checkout of OpenTTD."
log 1 "WARNING: you can only join game servers that have been compiled without"
log 1 "WARNING: version detection."
log 1 "WARNING: there is a great chance you desync."
log 1 "WARNING: USE WITH CAUTION!"
sleep 5
fi
fi
if [ "$doc_dir" = "1" ]; then
@@ -1138,15 +1110,16 @@ check_params() {
make_compiler_cflags() {
# Params:
# $1 - compiler
# $2 - name of the cflags variable
# $3 - name of the cxxflags variable
# $4 - name of the ldflags variable
# $5 - name of the features variable
# $2 - the current cflags
# $3 - variable to finally write cflags to
# $4 - the current cxxflags
# $5 - variable to finally write cxxflags to
# $6 - the current ldflags
# $7 - variable to finally write ldflags to
eval eval "flags=\\\$$2"
eval eval "cxxflags=\\\$$3"
eval eval "ldflags=\\\$$4"
eval eval "features=\\\$$5"
flags="$2"
cxxflags="$4"
ldflags="$6"
if [ `basename $1 | cut -c 1-3` = "icc" ]; then
# Enable some things only for certain ICC versions
@@ -1155,85 +1128,23 @@ make_compiler_cflags() {
flags="$flags -rdynamic"
ldflags="$ldflags -rdynamic"
if [ -z "$first_time_icc_check" ]; then
first_time_icc_check=no
if [ $cc_version -lt 90 ]; then
log 1 "WARNING: you seem to be using very old version of ICC"
log 1 "WARNING: OpenTTD hasn't been tested with this version"
sleep 5
elif [ $cc_version -lt 120 ]; then
log 1 "WARNING: you seem to be using unsupported ICC version"
log 1 "WARNING: ICC older than 12.0 is known to fail to compile OpenTTD"
sleep 5
fi
fi
flags="$flags -Wall"
# remark #111: statement is unreachable
flags="$flags -wd111"
# remark #181: argument is incompatible with corresponding format string conversion
# ICC is very picky about signedness of operands, warnings provided by GCC are enough
flags="$flags -wd181"
# remark #271: trailing comma is nonstandard
flags="$flags -wd271"
# remark #280: selector expression is constant
flags="$flags -wd280"
# remark #304: access control not specified ("public" by default)
flags="$flags -wd304"
# remark #383: value copied to temporary, reference to temporary used
flags="$flags -wd383"
# remark #444: destructor for base class ... is not virtual
flags="$flags -wd444"
# remark #593: variable ... was set but never used
flags="$flags -wd593"
# warning #654: overloaded virtual function ... is only partially overridden in class ...
flags="$flags -wd654"
# remark #810: conversion from ... to ... may lose significant bits
flags="$flags -wd810"
# remark #869: parameter ... was never referenced
flags="$flags -wd869"
# warning #873: function ... ::operator new ... has no corresponding operator delete ...
flags="$flags -wd873"
# remark #981: operands are evaluated in unspecified order
flags="$flags -wd981"
# remark #1418: external function definition with no prior declaration
flags="$flags -wd1418"
# remark #1419: external declaration in primary source file
flags="$flags -wd1419"
# remark #1572: floating-point equality and inequality
flags="$flags -wd1572"
# remark #1599: declaration hides variable/parameter ...
flags="$flags -wd1599"
# remark #1720: function ... ::operator new ... has no corresponding member operator delete ...
flags="$flags -wd1720"
if [ $cc_version -lt 110 ]; then
# warns about system headers with recent glibc:
# warning #1292: attribute "__nonnull__" ignored
flags="$flags -wd1292"
fi
if [ $cc_version -ge 100 ]; then
# warning #1899: multicharacter character literal (potential portability problem)
flags="$flags -wd1899"
# vec report defaults to telling where it did loop vectorisation, which is not very important
flags="$flags -vec-report=0 "
if [ $cc_version -ge 101 ]; then
flags="$flags -Wno-multichar"
fi
if [ $cc_version -ge 110 ]; then
# remark #2259: non-pointer conversion from ... to ... may lose significant bits
flags="$flags -wd2259"
# vec report defaults to telling where it did loop vectorisation, which is not very important
flags="$flags -vec-report=0 -wd873"
# Use c++0x mode so static_assert() is available
cxxflags="$cxxflags -std=c++0x"
fi
if [ "$enable_lto" != "0" ]; then
has_ipo=`$1 -help ipo | grep '\-ipo'`
if [ -n "$has_ipo" ]; then
# Use IPO (only if we see IPO exists and is requested)
flags="$flags -ipo"
features="$features lto"
fi
has_ipo=`$1 -help ipo | grep '\-ipo'`
if [ "$enable_lto" != "0" ] && [ -n "$has_ipo" ]; then
# Use IPO (only if we see IPO exists and is requested)
flags="$flags -ipo"
ldflags="$ldflags -ipo $CFLAGS"
fi
else
# Enable some things only for certain GCC versions
@@ -1252,17 +1163,6 @@ make_compiler_cflags() {
if [ $enable_assert -eq 0 ]; then
# Do not warn about unused variables when building without asserts
flags="$flags -Wno-unused-variable"
if [ $cc_version -ge 46 ]; then
# GCC 4.6 gives more warnings, disable them too
flags="$flags -Wno-unused-but-set-variable"
flags="$flags -Wno-unused-but-set-parameter"
fi
fi
if [ $cc_version -ge 34 ]; then
# Warn when a variable is used to initialise itself:
# int a = a;
flags="$flags -Winit-self"
fi
if [ $cc_version -ge 40 ]; then
@@ -1271,6 +1171,7 @@ make_compiler_cflags() {
# break anything. So disable strict-aliasing to make the
# compiler all happy.
flags="$flags -fno-strict-aliasing"
ldflags="$ldflags -fno-strict-aliasing"
# Warn about casting-out 'const' with regular C-style cast.
# The preferred way is const_cast<>() which doesn't warn.
flags="$flags -Wcast-qual"
@@ -1280,8 +1181,9 @@ make_compiler_cflags() {
# GCC 4.2+ automatically assumes that signed overflows do
# not occur in signed arithmetics, whereas we are not
# sure that they will not happen. It furthermore complains
# about its own optimized code in some places.
# about it's own optimized code in some places.
flags="$flags -fno-strict-overflow"
ldflags="$ldflags -fno-strict-overflow"
fi
if [ $cc_version -ge 43 ]; then
@@ -1290,18 +1192,13 @@ make_compiler_cflags() {
cxxflags="$cxxflags -std=gnu++0x"
fi
if [ "$enable_lto" != "0" ]; then
# GCC 4.5 outputs '%{flto}', GCC 4.6 outputs '%{flto*}'
has_lto=`$1 -dumpspecs | grep '\%{flto'`
if [ -n "$has_lto" ]; then
if [ $cc_version -ge 45 ]; then
# Only GCC 4.5+ has (possibly) LTO
has_lto=`$1 -dumpspecs | grep '\%{flto}'`
if [ "$enable_lto" != "0" ] && [ -n "$has_lto" ]; then
# Use LTO only if we see LTO exists and is requested
if [ $cc_version -lt 46 ]; then
flags="$flags -flto"
else
flags="$flags -flto=jobserver"
fi
ldflags="$ldflags -fwhole-program"
features="$features lto"
flags="$flags -flto"
ldflags="$ldflags -flto $2"
fi
fi
@@ -1313,10 +1210,9 @@ make_compiler_cflags() {
fi
fi
eval "$2=\"$flags\""
eval "$3=\"$cxxflags\""
eval "$4=\"$ldflags\""
eval "$5=\"$features\""
eval "$3=\"$flags\""
eval "$5=\"$cxxflags\""
eval "$7=\"$ldflags\""
}
make_cflags_and_ldflags() {
@@ -1326,8 +1222,6 @@ make_cflags_and_ldflags() {
CXXFLAGS_BUILD=""
# LDFLAGS for BUILD
LDFLAGS_BUILD=""
# FEATURES for BUILD (lto)
FEATURES_BUILD=""
# General CFlags for HOST
CFLAGS="$CFLAGS"
# Special CXXFlags for HOST
@@ -1336,41 +1230,40 @@ make_cflags_and_ldflags() {
LIBS="-lstdc++"
# LDFLAGS used for HOST
LDFLAGS="$LDFLAGS"
# FEATURES for HOST (lto)
FEATURES=""
make_compiler_cflags "$cc_build" "CFLAGS_BUILD" "CXXFLAGS_BUILD" "LDFLAGS_BUILD" "FEATURES_BUILD"
make_compiler_cflags "$cc_host" "CFLAGS" "CXXFLAGS" "LDFLAGS" "FEATURES"
make_compiler_cflags "$cc_build" "$CFLAGS_BUILD" "CFLAGS_BUILD" "$CXXFLAGS_BUILD" "CXXFLAGS_BUILD" "$LDFLAGS_BUILD" "LDFLAGS_BUILD"
make_compiler_cflags "$cc_host" "$CFLAGS" "CFLAGS" "$CXXFLAGS" "CXXFLAGS" "$LDFLAGS" "LDFLAGS"
CFLAGS="$CFLAGS -D$os"
if [ "$enable_debug" = "0" ]; then
if [ $enable_debug = 0 ]; then
# No debug, add default stuff
OBJS_SUBDIR="release"
if [ "$os" = "MORPHOS" ]; then
CFLAGS="-I/gg/os-include -noixemul -fstrict-aliasing -fexpensive-optimizations -mcpu=604 -fno-inline -mstring -mmultiple $CFLAGS"
LDFLAGS="$LDFLAGS -noixemul"
fi
if [ "$os" = "OSX" ]; then
# these compilerflags makes the app run as fast as possible without making the app unstable. It works on G3 or newer
CFLAGS="-O3 -funroll-loops -fsched-interblock -falign-loops=16 -falign-jumps=16 -falign-functions=16 -falign-jumps-max-skip=15 -falign-loops-max-skip=15 -mdynamic-no-pic $CFLAGS"
else
if [ "$os" = "MORPHOS" ]; then
CFLAGS="-I/gg/os-include -noixemul -fstrict-aliasing -fexpensive-optimizations -mcpu=604 -fno-inline -mstring -mmultiple $CFLAGS"
LDFLAGS="$LDFLAGS -noixemul"
fi
CFLAGS="-O2 -fomit-frame-pointer $CFLAGS"
CFLAGS="-O2 -fomit-frame-pointer $CFLAGS"
LDFLAGS="-O2 -fomit-frame-pointer $LDFLAGS"
fi
else
OBJS_SUBDIR="debug"
# Each debug level reduces the optimization by a bit
if [ $enable_debug -ge 1 ]; then
CFLAGS="$CFLAGS -g -D_DEBUG"
if basename "$cc_host" | grep "gcc" &>/dev/null; then
# Define only when compiling with GCC, some
# GLIBC versions use GNU extensions in a way
# that breaks build with at least ICC
CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=2"
fi
CFLAGS="$CFLAGS -g -D_DEBUG -D_FORTIFY_SOURCE=2"
if [ "$os" = "PSP" ]; then
CFLAGS="$CFLAGS -G0"
fi
fi
if [ $enable_debug -ge 2 ]; then
CFLAGS="$CFLAGS -fno-inline"
LDFLAGS="$LDFLAGS -fno-inline"
fi
if [ $enable_debug -ge 3 ]; then
CFLAGS="$CFLAGS -O0"
@@ -1379,12 +1272,6 @@ make_cflags_and_ldflags() {
fi
fi
if [ "$os" = "OSX" ] && [ $cc_version -eq 40 ]; then
# Apple's GCC 4.0 has a compiler bug for x86_64 with (higher) optimization,
# wrongly optimizing ^= in loops. This disables the failing optimisation.
CFLAGS="$CFLAGS -fno-expensive-optimizations"
fi
if [ "$enable_profiling" != "0" ]; then
CFLAGS="$CFLAGS -p"
LDFLAGS="$LDFLAGS -pg"
@@ -1401,13 +1288,7 @@ make_cflags_and_ldflags() {
fi
if [ "$os" = "MINGW" ] || [ "$os" = "CYGWIN" ]; then
flags="$flags -mno-cygwin"
if [ "$enable_console" != "0" ]; then
LDFLAGS="$LDFLAGS -mno-cygwin -Wl,--subsystem,console"
else
LDFLAGS="$LDFLAGS -mno-cygwin -Wl,--subsystem,windows"
fi
LDFLAGS="$LDFLAGS -mno-cygwin -Wl,--subsystem,windows"
LIBS="$LIBS -lws2_32 -lwinmm -lgdi32 -ldxguid -lole32"
if [ $cc_version -ge 44 ]; then
@@ -1449,10 +1330,6 @@ make_cflags_and_ldflags() {
if [ "$os" = "OSX" ]; then
LDFLAGS="$LDFLAGS -framework Cocoa"
# Add macports include dir which is not always set a default system dir. This avoids zillions of bogus warnings.
CFLAGS="$CFLAGS -isystem/opt/local/include"
if [ "$enable_dedicated" = "0" ] && ([ "$cpu_type" = "32" ] || [ "$enable_universal" != "0" ]); then
LIBS="$LIBS -framework QuickTime"
else
@@ -1543,18 +1420,6 @@ make_cflags_and_ldflags() {
CFLAGS="$CFLAGS -DWITH_ZLIB"
fi
if [ -n "$lzma_config" ]; then
CFLAGS="$CFLAGS -DWITH_LZMA"
CFLAGS="$CFLAGS `$lzma_config --cflags | tr '\n\r' ' '`"
if [ "$enable_static" != "0" ]; then
CFLAGS="$CFLAGS -DLZMA_API_STATIC"
LIBS="$LIBS `$lzma_config --libs --static | tr '\n\r' ' '`"
else
LIBS="$LIBS `$lzma_config --libs | tr '\n\r' ' '`"
fi
fi
if [ "$with_lzo2" != "0" ]; then
if [ "$enable_static" != "0" ] && [ "$os" != "OSX" ]; then
LIBS="$LIBS $lzo2"
@@ -1663,8 +1528,8 @@ make_cflags_and_ldflags() {
fi
fi
if [ "$have_non_const_iconv" != "no" ]; then
CFLAGS="$CFLAGS -DHAVE_NON_CONST_ICONV"
if [ "$have_broken_iconv" != "no" ]; then
CFLAGS="$CFLAGS -DHAVE_BROKEN_ICONV"
fi
fi
@@ -1728,21 +1593,6 @@ make_cflags_and_ldflags() {
CFLAGS="$CFLAGS -DGLOBAL_DATA_DIR=\\\\\"$prefix_dir/$data_dir\\\\\""
if [ "$enable_lto" != "0" ]; then
lto_build=`echo "$FEATURES_BUILD" | grep "lto"`
lto_host=`echo "$FEATURES" | grep "lto"`
if [ -z "$lto_build$lto_host" ]; then
log 1 "WARNING: you enabled LTO/IPO, but neither build nor host compiler supports it"
log 1 "WARNING: LTO/IPO has been disabled"
fi
if [ -n "$lto_build" ]; then
LDFLAGS_BUILD="$LDFLAGS_BUILD $CFLAGS_BUILD $CXXFLAGS_BUILD"
fi
if [ -n "$lto_host" ]; then
LDFLAGS="$LDFLAGS $CFLAGS $CXXFLAGS"
fi
fi
log 1 "using CFLAGS... $CFLAGS"
log 1 "using CXXFLAGS... $CXXFLAGS"
log 1 "using LDFLAGS... $LIBS $LDFLAGS"
@@ -2453,30 +2303,6 @@ detect_library() {
eval "res=\$$2"
if [ -z "$res" ]; then
log 2 " trying /usr/local/include/$4$5... no"
eval "$2=`ls -1 /mingw/include/$4*.h 2>/dev/null | egrep \"\/$5\$\"`"
fi
eval "res=\$$2"
if [ -z "$res" ]; then
log 2 " trying /mingw/include/$4$5... no"
eval "$2=`ls -1 /opt/local/include/$4*.h 2>/dev/null | egrep \"\/$5\$\"`"
fi
eval "res=\$$2"
if [ -z "$res" ]; then
log 2 " trying /opt/local/include/$4$5... no"
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
if [ -z "$res" ] && [ "$os" = "HAIKU" ]; then
eval "$2=`ls -1 /boot/common/include/$4*.h 2>/dev/null | egrep \"\/$5\$\"`"
eval "res=\$$2"
if [ -z "$res" ]; then
log 2 " trying /boot/common/include/$4$5... no"
fi
fi
eval "res=\$$2"
@@ -2498,11 +2324,6 @@ detect_library() {
eval "res=\$$2"
if [ -z "$res" ]; then
log 2 " trying /usr/local/lib/$3... no"
eval "$2=`ls /mingw/lib/*.a 2>/dev/null | egrep \"\/$3\$\"`"
fi
eval "res=\$$2"
if [ -z "$res" ]; then
log 2 " trying /mingw/lib/$3... no"
log 1 "configure: error: $2 couldn't be found"
log 1 "configure: error: you requested a static link, but I can't find $3"
@@ -2555,44 +2376,6 @@ detect_libtimidity() {
detect_library "$with_libtimidity" "libtimidity" "libtimidity.a" "" "timidity.h"
}
detect_lzma() {
# 0 means no, 1 is auto-detect, 2 is force
if [ "$with_lzma" = "0" ]; then
log 1 "checking liblzma... disabled"
lzma_config=""
return 0
fi
if [ "$with_lzma" = "1" ] || [ "$with_lzma" = "" ] || [ "$with_lzma" = "2" ]; then
lzma_config="pkg-config liblzma"
else
lzma_config="$with_lzma"
fi
version=`$lzma_config --modversion 2>/dev/null`
ret=$?
log 2 "executing $lzma_config --modversion"
log 2 " returned $version"
log 2 " exit code $ret"
if [ -z "$version" ] || [ "$ret" != "0" ]; then
log 1 "checking liblzma... not found"
# It was forced, so it should be found.
if [ "$with_lzma" != "1" ]; then
log 1 "configure: error: pkg-config liblzma couldn't be found"
log 1 "configure: error: you supplied '$with_lzma', but it seems invalid"
exit 1
fi
lzma_config=""
return 0
fi
log 1 "checking liblzma... found"
}
detect_png() {
# 0 means no, 1 is auto-detect, 2 is force
if [ "$with_png" = "0" ]; then
@@ -2800,9 +2583,9 @@ detect_icu() {
log 2 " returned $version"
log 2 " exit code $ret"
if [ -z "$version" ] || [ "$ret" != "0" ] || [ "$shortversion" -lt "36" ]; then
if [ -n "$shortversion" ] && [ "$shortversion" -lt "36" ]; then
log 1 "checking libicu... needs at least version 3.6.0, icu NOT enabled"
if [ -z "$version" ] || [ "$ret" != "0" ] || [ "$shortversion" -lt "22" ]; then
if [ -n "$shortversion" ] && [ "$shortversion" -lt "22" ]; then
log 1 "checking libicu... needs at least version 2.2.0, icu NOT enabled"
else
log 1 "checking libicu... not found"
fi
@@ -2921,9 +2704,9 @@ detect_iconv() {
log 1 "checking iconv... found"
# There are different implementations of iconv. The older ones,
# e.g. SUSv2, pass a const pointer, whereas the newer ones, e.g.
# IEEE 1003.1 (2004), pass a non-const pointer.
# Check if we need to work around buggy iconv implementation where inbuf
# is wrongly typed as non-const. Correct implementation is at
# http://www.opengroup.org/onlinepubs/007908799/xsh/iconv.html
cat > tmp.iconv.cpp << EOF
#include "src/stdafx.h"
@@ -2943,8 +2726,8 @@ EOF
ret=$?
log 2 "executing $execute"
log 2 " exit code $ret"
if [ "$ret" = "0" ]; then have_non_const_iconv="no"; else have_non_const_iconv="yes"; fi
log 1 "checking if iconv has non-const inbuf... $have_non_const_iconv"
if [ "$ret" = "0" ]; then have_broken_iconv="no"; else have_broken_iconv="yes"; fi
log 1 "checking if iconv has non-const inbuf... $have_broken_iconv"
cat > tmp.iconv.cpp << EOF
#include "src/stdafx.h"
@@ -3083,7 +2866,6 @@ make_sed() {
s@!!SOURCE_LIST!!@$SOURCE_LIST@g;
s@!!SRC_OBJS_DIR!!@$SRC_OBJS_DIR@g;
s@!!LANG_OBJS_DIR!!@$LANG_OBJS_DIR@g;
s@!!GRF_OBJS_DIR!!@$GRF_OBJS_DIR@g;
s@!!SRC_DIR!!@$SRC_DIR@g;
s@!!SCRIPT_SRC_DIR!!@$SCRIPT_SRC_DIR@g;
s@!!OSXAPP!!@$OSXAPP@g;
@@ -3209,20 +2991,6 @@ generate_lang() {
echo "LANG_DIRS += $LANG_OBJS_DIR" >> Makefile.am
}
generate_grf() {
STAGE="[GRF]"
make_sed
# Create the language file
mkdir -p $GRF_OBJS_DIR
log 1 "Generating grf/Makefile..."
echo "# Auto-generated file from 'Makefile.grf.in' -- DO NOT EDIT" > $GRF_OBJS_DIR/Makefile
< $ROOT_DIR/Makefile.grf.in sed "$SRC_REPLACE" >> $GRF_OBJS_DIR/Makefile
echo "DIRS += $GRF_OBJS_DIR" >> Makefile.am
}
generate_src_normal() {
STAGE=$1
@@ -3244,55 +3012,47 @@ generate_src_osx() {
CFLAGS_orig="$CFLAGS"
LDFLAGS_orig="$LDFLAGS"
for type in $enable_universal; do
if [ -n "$osx_sdk_104_path" ]; then
# Use 10.4 SDK for 32-bit targets
CFLAGS="-isysroot $osx_sdk_104_path $CFLAGS_orig"
LDFLAGS="-Wl,-syslibroot,$osx_sdk_104_path $LDFLAGS_orig"
fi
if [ -n "$osx_sdk_104_path" ]; then
# Use 10.4 SDK for 32-bit targets
CFLAGS="-isysroot $osx_sdk_104_path $CFLAGS_orig"
LDFLAGS="-Wl,-syslibroot,$osx_sdk_104_path $LDFLAGS_orig"
BASE_SRC_OBJS_DIR="$OBJS_DIR/ppc"
cc_host="$cc_host_orig -arch ppc -mmacosx-version-min=10.3"
cxx_host="$cxx_host_orig -arch ppc -mmacosx-version-min=10.3"
generate_src_normal "[PowerPC]" "objs/ppc"
BASE_SRC_OBJS_DIR="$OBJS_DIR/ppc970"
cc_host="$cc_host_orig -arch ppc970 -mmacosx-version-min=10.3 -mcpu=G5 -mpowerpc64 -mtune=970 -mcpu=970 -mpowerpc-gpopt"
cxx_host="$cxx_host_orig -arch ppc970 -mmacosx-version-min=10.3 -mcpu=G5 -mpowerpc64 -mtune=970 -mcpu=970 -mpowerpc-gpopt"
generate_src_normal "[PowerPC G5]" "objs/ppc970"
BASE_SRC_OBJS_DIR="$OBJS_DIR/intel"
cc_host="$cc_host_orig -arch i386 -mmacosx-version-min=10.4"
cxx_host="$cxx_host_orig -arch i386 -mmacosx-version-min=10.4"
generate_src_normal "[Intel]" "objs/intel"
if [ "$enable_universal" = "64" ]; then
# 64 bits is always 10.5 or higher. Furthermore it has a broken ICONV
# and they also removed support for QuickTime/QuickDraw
if [ -n "$osx_sdk_path" ]; then
CFLAGS="-isysroot $osx_sdk_path $CFLAGS_orig"
LDFLAGS="-Wl,-syslibroot,$osx_sdk_path $LDFLAGS_orig"
fi
CFLAGS="$CFLAGS -D_SQ64 -DHAVE_BROKEN_ICONV -DNO_QUICKTIME -UENABLE_COCOA_QUICKDRAW"
LIBS="`echo $LIBS | sed 's/-framework QuickTime//'`"
# We don't want to duplicate the x86_64 stuff for each target, so do it once here
if [ "$type" = "ppc64" ] || [ "$type" = "x86_64" ]; then
# 64 bits is always 10.5 or higher. Furthermore it has a non const ICONV
# and they also removed support for QuickTime/QuickDraw
if [ -n "$osx_sdk_path" ]; then
CFLAGS="-isysroot $osx_sdk_path $CFLAGS_orig"
LDFLAGS="-Wl,-syslibroot,$osx_sdk_path $LDFLAGS_orig"
fi
CFLAGS="$CFLAGS -D_SQ64 -DHAVE_NON_CONST_ICONV -DNO_QUICKTIME -UENABLE_COCOA_QUICKDRAW"
LIBS="`echo $LIBS | sed 's/-framework QuickTime//'`"
fi
BASE_SRC_OBJS_DIR="$OBJS_DIR/ppc64"
cc_host="$cc_host_orig -arch ppc64 -mmacosx-version-min=10.5"
cxx_host="$cxx_host_orig -arch ppc64 -mmacosx-version-min=10.5"
generate_src_normal "[PowerPC 64 bits]" "objs/ppc64"
case $type in
ppc)
BASE_SRC_OBJS_DIR="$OBJS_DIR/ppc"
cc_host="$cc_host_orig -arch ppc -mmacosx-version-min=10.3"
cxx_host="$cxx_host_orig -arch ppc -mmacosx-version-min=10.3"
generate_src_normal "[ppc]" "objs/ppc";;
ppc970)
BASE_SRC_OBJS_DIR="$OBJS_DIR/ppc970"
cc_host="$cc_host_orig -arch ppc970 -mmacosx-version-min=10.3 -mcpu=G5 -mpowerpc64 -mtune=970 -mcpu=970 -mpowerpc-gpopt"
cxx_host="$cxx_host_orig -arch ppc970 -mmacosx-version-min=10.3 -mcpu=G5 -mpowerpc64 -mtune=970 -mcpu=970 -mpowerpc-gpopt"
generate_src_normal "[ppc970]" "objs/ppc970";;
i386)
BASE_SRC_OBJS_DIR="$OBJS_DIR/i386"
cc_host="$cc_host_orig -arch i386 -mmacosx-version-min=10.4"
cxx_host="$cxx_host_orig -arch i386 -mmacosx-version-min=10.4"
generate_src_normal "[i386]" "objs/i386";;
ppc64)
BASE_SRC_OBJS_DIR="$OBJS_DIR/ppc64"
cc_host="$cc_host_orig -arch ppc64 -mmacosx-version-min=10.5"
cxx_host="$cxx_host_orig -arch ppc64 -mmacosx-version-min=10.5"
generate_src_normal "[ppc64]" "objs/ppc64";;
x86_64)
BASE_SRC_OBJS_DIR="$OBJS_DIR/x86_64"
cc_host="$cc_host_orig -arch x86_64 -mmacosx-version-min=10.5"
cxx_host="$cxx_host_orig -arch x86_64 -mmacosx-version-min=10.5"
generate_src_normal "[x86_64]" "objs/x86_64";;
*) log 1 "Unknown architecture requested for universal build: $type";;
esac
done
BASE_SRC_OBJS_DIR="$OBJS_DIR/intel64"
cc_host="$cc_host_orig -arch x86_64 -mmacosx-version-min=10.5"
cxx_host="$cxx_host_orig -arch x86_64 -mmacosx-version-min=10.5"
generate_src_normal "[Intel 64 bits]" "objs/intel64"
fi
}
generate_src() {
@@ -3373,17 +3133,12 @@ showhelp() {
echo " --enable-static enable static compile (doesn't work for"
echo " all HOSTs)"
echo " --enable-translator enable extra output for translators"
echo " --enable-universal[=ARCH] enable universal builds (OSX ONLY). Allowed is any combination"
echo " of architectures: i386 ppc ppc970 ppc64 x86_64"
echo " Default architectures are: i386 ppc"
echo " --enable-osx-g5 enables optimizations for ppc970 (G5) (OSX ONLY)"
echo " --enable-universal enable universal builds (OSX ONLY)"
echo " --enable-osx-g5 enables optimizations for G5 (OSX ONLY)"
echo " --disable-cocoa-quartz disable the quartz window mode driver for Cocoa (OSX ONLY)"
echo " --disable-cocoa-quickdraw disable the quickdraw window mode driver for Cocoa (OSX ONLY)"
echo " --disable-unicode disable unicode support to build win9x"
echo " version (Win32 ONLY)"
echo " --enable-console compile as a console application instead of as a GUI application."
echo " If this setting is active, debug output will appear in the same"
echo " console instead of opening a new window. (Win32 ONLY)"
echo " --disable-network disable network support"
echo " --disable-assert disable asserts (continue on errors)"
echo " --enable-strip enable any possible stripping"
@@ -3400,12 +3155,11 @@ showhelp() {
echo " --with-midi-arg=arg define which args to use for the"
echo " midi-player"
echo " --with-libtimidity enables libtimidity support"
echo " --with-allegro[=allegro-config]"
echo " --with-allegrol[=allegro-config]"
echo " enables Allegro video driver support"
echo " --with-cocoa enables COCOA video driver (OSX ONLY)"
echo " --with-sdl[=sdl-config] enables SDL video driver support"
echo " --with-zlib[=zlib.a] enables zlib support"
echo " --with-liblzma[=liblzma.a] enables liblzma support"
echo " --with-liblzo2[=liblzo2.a] enables liblzo2 support"
echo " --with-png[=libpng-config] enables libpng support"
echo " --with-freetype[=freetype-config]"

4
configure vendored
View File

@@ -47,7 +47,6 @@ PREFIX="$PWD/bin"
OBJS_DIR="$PWD/objs"
BASE_SRC_OBJS_DIR="$OBJS_DIR"
LANG_OBJS_DIR="$OBJS_DIR/lang"
GRF_OBJS_DIR="$OBJS_DIR/extra_grf"
BIN_DIR="$PREFIX"
SRC_DIR="$ROOT_DIR/src"
LANG_DIR="$SRC_DIR/lang"
@@ -161,11 +160,10 @@ else
sort="$sort -u"
fi
CONFIGURE_FILES="$ROOT_DIR/configure $ROOT_DIR/config.lib $ROOT_DIR/Makefile.in $ROOT_DIR/Makefile.grf.in $ROOT_DIR/Makefile.lang.in $ROOT_DIR/Makefile.src.in $ROOT_DIR/Makefile.bundle.in"
CONFIGURE_FILES="$ROOT_DIR/configure $ROOT_DIR/config.lib $ROOT_DIR/Makefile.in $ROOT_DIR/Makefile.lang.in $ROOT_DIR/Makefile.src.in $ROOT_DIR/Makefile.bundle.in"
generate_main
generate_lang
generate_grf
generate_src
check_path_characters

View File

@@ -1,24 +1,15 @@
32bpp and OpenTTD
Last updated: 2007-06-13
------------------------------------------------------------------------
=================
Table of contents
-----------------
1.0) About
2.0) The format
1.0) About
---- -----
OpenTTD has 32bpp support. This means: OpenTTD still is 8bpp, but it has the
posibility to override the graphics with 32bpp. This means that it isn't a
replacement of grf or newgrf, but simply an addition. If you want to use 32bpp
graphics of a newgrf, you do need the newgrf itself too (with 8bpp graphics).
2.0) The format
---- ----------
The Format
----------
32bpp images are stored in PNG. They should go in:
data/sprites/<grfname>/<SpriteID>.png
@@ -42,3 +33,4 @@ to add this information. Sadly enough most graphical editors trashes those
chunks upon save, so you have to readd it every time you save your image.
Your images should be the same as the grf, in size.

View File

@@ -1,17 +1,5 @@
OpenTTD and strgen
Last updated: 2009-06-30
------------------------------------------------------------------------
Table of contents
-----------------
1.0) strgen usage
* 1.1) Examples
* 1.2) strgen command switches
1.0) strgen usage
---- ------------
STRGEN USAGE
------------
This guide is only interesting for people who want to alter something
themselves without access to translator.openttd.org. Please note that
your compiled language file will only be compatible with the OpenTTD version
@@ -26,8 +14,8 @@ strgen takes as argument a txt file and translates it to a lng file, allowing
it to be used inside OpenTTD. strgen needs the master language file
english.txt to work. Below are some examples of strgen usage.
1.1) Examples
---- --------
EXAMPLES
--------
Example 1:
if you are in the root of your working copy (svn code), you should type
strgen/strgen -s lang lang/english.txt
@@ -47,8 +35,8 @@ resulting language file to go to /tmp. Use
You can interchange english.txt to whichever language you want to generate a
.lng file for.
1.2) strgen command switches
---- -----------------------
STRGEN COMMAND SWITCHES
-----------------------
-v | --version
strgen will tell what svn revision it was last modified

View File

@@ -1,211 +0,0 @@
OpenTTD's admin network
Last updated: 2011-01-20
------------------------------------------------------------------------
Table of contents
-----------------
1.0) Preface
2.0) Joining the network
3.0) Asking for updates
* 3.1) Polling manually
4.0) Sending rcon commands
5.0) Sending chat
* 5.1) Receiving chat
6.0) Disconnecting
7.0) Certain packet information
1.0) Preface
---- -------
The admin network provides a dedicated network protocol designed for other
applications to communicate with OpenTTD. Connected applications can execute
console commands remotely (rcon commands) with no further authentication.
Furthermore information about clients and companies can be provided.
Admin applications remain connected when starting a new game or loading a saved
game in contrast to normal OpenTTD clients that get disconnected.
This document describes the admin network and its protocol.
Please refer to the mentioned enums in src/network/core/tcp_admin.h
Please also note that further improvements to the admin protocol can mean that
more packet types will be sent by the server. For forward compatibility it is
therefore wise to ignore unknown packets. Future improvements might also add
additional data to packets. This data should be ignored. Data will never be
removed from packets in later versions, except the possibility that complete
packets are dropped in favour of a new packet.
This though will be reflected in the protocol version as announced in the
ADMIN_PACKET_SERVER_PROTOCOL in section 2.0).
A reference implementation in Java for a client connecting to the admin interface
can be found at: http://dev.openttdcoop.org/projects/joan
2.0) Joining the network
---- -------------------
Create a TCP connection to the server on port 3977. The application is
expected to authenticate within 10 seconds.
To authenticate send a ADMIN_PACKET_ADMIN_JOIN packet.
The server will reply with ADMIN_PACKET_SERVER_PROTOCOL followed directly by
ADMIN_PACKET_SERVER_WELCOME.
ADMIN_PACKET_SERVER_PROTOCOL contains details about the protocol version.
It is the job of your application to check this number and decide whether
it will remain connected or not.
Furthermore, this packet holds details on every AdminUpdateType and the
supported AdminFrequencyTypes (bitwise representation).
ADMIN_PACKET_SERVER_WELCOME contains details on the server and the map,
e.g. if the server is dedicated, its NetworkLanguage, size of the Map, etc.
Once you have received ADMIN_PACKET_SERVER_WELCOME you are connected and
authorized to do your thing.
The server will not provide any game related updates unless you ask for them.
There are four packets the server will none the less send, if applicable:
- ADMIN_PACKET_SERVER_ERROR
- ADMIN_PACKET_SERVER_WELCOME
- ADMIN_PACKET_SERVER_NEWGAME
- ADMIN_PACKET_SERVER_SHUTDOWN
However, ADMIN_PACKET_SERVER_WELCOME only after a ADMIN_PACKET_SERVER_NEWGAME
3.0) Asking for updates
---- ------------------
Asking for updates is done with ADMIN_PACKET_ADMIN_UPDATE_FREQUENCY.
With this packet you define which update you wish to receive at which
frequency.
Note: not every update type supports every frequency. If in doubt, you can
verify against the data received in ADMIN_PACKET_SERVER_PROTOCOL.
The server will not confirm your registered update. However, asking for an
invalid AdminUpdateType or a not supported AdminUpdateFrequency you will be
disconnected from the server with NETWORK_ERROR_ILLEGAL_PACKET.
Additional debug information can be found with a debug level of net=3.
ADMIN_UPDATE_DATE results in the server sending:
- ADMIN_PACKET_SERVER_DATE
ADMIN_UPDATE_CLIENT_INFO results in the server sending:
- ADMIN_PACKET_SERVER_CLIENT_JOIN
- ADMIN_PACKET_SERVER_CLIENT_INFO
- ADMIN_PACKET_SERVER_CLIENT_UPDATE
- ADMIN_PACKET_SERVER_CLIENT_QUIT
- ADMIN_PACKET_SERVER_CLIENT_ERROR
ADMIN_UPDATE_COMPANY_INFO results in the server sending:
- ADMIN_PACKET_SERVER_COMPANY_NEW
- ADMIN_PACKET_SERVER_COMPANY_INFO
- ADMIN_PACKET_SERVER_COMPANY_UPDATE
- ADMIN_PACKET_SERVER_COMPANY_REMOVE
ADMIN_UPDATE_COMPANY_ECONOMY results in the server sending:
- ADMIN_PACKET_SERVER_COMPANY_ECONOMY
ADMIN_UPDATE_COMPANY_STATS results in the server sending:
- ADMIN_PACKET_SERVER_COMPANY_STATS
ADMIN_UPDATE_CHAT results in the server sending:
- ADMIN_PACKET_SERVER_CHAT
ADMIN_UPDATE_CONSOLE results in the server sending:
- ADMIN_PACKET_SERVER_CONSOLE
ADMIN_UPDATE_CMD_LOGGING results in the server sending:
- ADMIN_PACKET_SERVER_CMD_LOGGING
3.1) Polling manually
---- ----------------
Certain AdminUpdateTypes can also be polled:
- ADMIN_UPDATE_DATE
- ADMIN_UPDATE_CLIENT_INFO
- ADMIN_UPDATE_COMPANY_INFO
- ADMIN_UPDATE_COMPANY_ECONOMY
- ADMIN_UPDATE_COMPANY_STATS
- ADMIN_UPDATE_CMD_NAMES
ADMIN_UPDATE_CLIENT_INFO and ADMIN_UPDATE_COMPANY_INFO accept an additional
parameter. This parameter is used to specify a certain client or company.
Setting this parameter to UINT32_MAX (0xFFFFFFFF) will tell the server you
want to receive updates for all clients or companies.
Not supported AdminUpdateType in the poll will result in the server
disconnecting the application with NETWORK_ERROR_ILLEGAL_PACKET.
Additional debug information can be found with a debug level of net=3.
4.0) Sending rcon commands
---- ---------------------
Rcon runs separate from the ADMIN_UPDATE_CONSOLE AdminUpdateType. Requesting
the execution of a remote console command is done with the packet
ADMIN_PACKET_ADMIN_RCON.
Note: No additional authentication is required for rcon commands.
The server will reply with a ADMIN_PACKET_SERVER_RCON packet. Applications
will not receive the answer twice if they have asked for the AdminUpdateType
ADMIN_UPDATE_CONSOLE, as the result is not printed on the servers console
(just like clients rcon commands).
Furthermore, sending a 'say' command (or any similar command) will not
be sent back into the admin network.
Chat from the server itself will only be sent to the admin network when it
was not sent from the admin network.
5.0) Sending chat
---- ------------
Sending a ADMIN_PACKET_ADMIN_CHAT results in chat originating from the server.
Currently four types of chat are supported:
- NETWORK_ACTION_CHAT
- NETWORK_ACTION_CHAT_CLIENT
- NETWORK_ACTION_CHAT_COMPANY
- NETWORK_ACTION_SERVER_MESSAGE
NETWORK_ACTION_SERVER_MESSAGE can be sent to a single client or company
using the respective DestType and ID.
This is a message prefixed with the 3 stars, e.g. *** foo has joined the game
5.1) Receiving chat
---- -------------
Register ADMIN_UPDATE_CHAT at ADMIN_FREQUENCY_AUTOMATIC to receive chat.
The application will be able to receive all chat the server can see.
The configuration option network.server_admin_chat specifies whether
private chat for to the server is distributed into the admin network.
6.0) Disconnecting
---- -------------
It is a kind thing to say good bye before leaving. Do this by sending the
ADMIN_PACKET_ADMIN_QUIT packet.
7.0) Certain packet information
---- --------------------------
All ADMIN_PACKET_SERVER_* packets have an enum value greater 100.
ADMIN_PACKET_SERVER_WELCOME
Either directly follows ADMIN_PACKET_SERVER_PROTOCOL or is sent
after a new game has been started or a map loaded, i.e. also
after ADMIN_PACKET_SERVER_NEWGAME.
ADMIN_PACKET_SERVER_CLIENT_JOIN and ADMIN_PACKET_SERVER_COMPANY_NEW
These packets directly follow their respective INFO packets. If you receive
a CLIENT_JOIN / COMPANY_NEW packet without having received the INFO packet
it may be a good idea to POLL for the specific ID.
ADMIN_PACKET_SERVER_CMD_NAMES and ADMIN_PACKET_SERVER_CMD_LOGGING
Data provided with these packets is not stable and will not be
treated as such. Do not rely on IDs or names to be constant
across different versions / revisions of OpenTTD.
Data provided in this packet is for logging purposes only.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 61 KiB

View File

@@ -4,90 +4,64 @@
<head>
<meta name="Author" content="Marcin Grzegorczyk">
<meta name="Description" content="Structure of OpenTTD (OTTD) landscape arrays">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>OpenTTD Landscape Internals</title>
</head>
<body>
<h3><a name="Landscape">Landscape</a></h3>
<p>
For a graphical representation of the tile-layout have a look at
<a href="landscape_grid.html">Landscape grid</a> page.
</p>
<p>Eight attributes (counting &quot;<span style="font-weight: bold;">type_height</span>&quot;) hold the informations about a tile.<BR>
These attributes are referred to as
&quot;<span style="font-weight: bold;">type_height</span>",
&quot;<span style="font-weight: bold;">m1</span>&quot;, &quot;<span style="font-weight: bold;">m2</span>&quot;,
&quot;<span style="font-weight: bold;">m3</span>&quot;, &quot;<span style="font-weight: bold;">m4</span>&quot;,
&quot;<span style="font-weight: bold;">m5</span>&quot;, &quot;<span style="font-weight: bold;">m6</span>&quot;
and "<span style="font-weight: bold;">m7</span>".<br>
"<span style="font-weight: bold;">type_height</span>",
"<span style="font-weight: bold;">m1</span>", "<span style="font-weight: bold;">m2</span>",
"<span style="font-weight: bold;">m3</span>", "<span style="font-weight: bold;">m4</span>",
"<span style="font-weight: bold;">m5</span>", "<span style="font-weight: bold;">m6</span>"
and "<span style="font-weight: bold;">m7</span>".<BR>
The most important value is the class of a tile, stored in the upper 4 bits
of the <span style="font-weight: bold;">type_height</span> attribute. The lower 4 bits are used to encode the height and
slope data.
</p>
Frequently repeating patterns:
Special Attribute : <span style="font-weight: bold;">m6</span>. There are 4 bits of it that are used accross multiple tile classes<br>
<ul>
<li><span style="font-weight: bold;">m1</span>
<ul>
<li>
<a name="WaterClass"></a>
Bits 6..5:
<table border="1" style="width: 30em;">
<tr bgcolor="#CCCCCC"><td colspan="2">The type of water that is on a tile.
<tr><td style="width: 5em;"><tt>00</tt></td><td align=left>Sea</td></tr>
<tr><td><tt>01</tt></td><td align=left>Canal</td></tr>
<tr><td><tt>02</tt></td><td align=left>River</td></tr>
<tr><td><tt>03</tt></td><td align=left>Invalid, i.e. no water on this tile</td></tr>
</table>
Some tiles, such as houses, reuse these bits of other purposes.
</li>
<li>
<a name="OwnershipInfo"></a>
Bits 4..0:
<table border="1" style="width: 30em;">
<tr bgcolor="#CCCCCC"><td colspan="2">The owner of a tile can be either companies (human or AI) or "Game entities".
<tr><td style="width: 5em;"><tt>00..0E</tt></td><td align=left>Normal companies</td></tr>
<tr><td><tt>0F</tt></td><td align=left>a town owns the tile</td></tr>
<tr><td><tt>10</tt></td><td align=left>nobody owns the tile</td></tr>
<tr><td><tt>11</tt></td><td align=left>"water" owns the tile</td></tr>
<tr><td><tt>FF</tt></td><td align=left>spectator in MP or in scenario editor</td></tr>
</table>
Some tiles, such as houses and industries, reuse these bits of other purposes.
</li>
</ul>
<li>
<a name = "bridge_direction">
Bits 7..6 :
<table border="1">
<tr bgcolor="#CCCCCC"><td colspan="2">Presence and direction of bridge above,<br>for tiles that support this.</td></tr>
<tr><td><tt>00</tt>&nbsp; </td><td>no bridge</td></tr>
<tr><td><tt>01</tt>&nbsp; </td><td>Axis X (North-East)</td></tr>
<tr><td><tt>02</tt>&nbsp; </td><td>Axis Y (South-West)</td></tr>
</table>
</li>
<li><span style="font-weight: bold;">m6</span>
<ul>
<li>
<a name="bridge_direction"></a>
Bits 7..6:
<table border="1" style="width: 30em;">
<tr bgcolor="#CCCCCC"><td colspan="2">Presence and direction of bridge above, for tiles that support this.</td></tr>
<tr><td style="width: 5em;"><tt>00</tt></td><td>no bridge</td></tr>
<tr><td><tt>01</tt></td><td>Axis X (North-East)</td></tr>
<tr><td><tt>02</tt></td><td>Axis Y (South-West)</td></tr>
</table>
Some tiles, such as houses do not support bridges over them and use these bits for other purposes.
</li>
<li>
<a name="tropic_zone"></a>
Bits 1..0:
<table border="1" style="width: 30em;">
<tr bgcolor="#CCCCCC"><td colspan="2">Only meaningfull in tropic climate. It contains the definition of the available zones</td></tr>
<tr><td style="width: 5em;"><tt>00</tt></td><td>normal</td></tr>
<tr><td><tt>01</tt></td><td>desert</td></tr>
<tr><td><tt>02</tt></td><td>rain forest</td></tr>
</table>
In any other climate these 2 bits are theoretically free of use, however using them does not seem useful.
</li>
</ul>
</li>
<li><span style="font-weight: bold;">m7:</span><br>
Animation frame/state. Used for houses, industries, objects and stations.
<li>
<a name = "tropic_zone">
Bits 1..0 :
<table border="1">
<tr bgcolor="#CCCCCC"><td colspan="2">Only meaningfull in tropic climate.<br>It contains the definition of the available zones</td></tr>
<tr><td><tt>00</tt>&nbsp; </td><td>normal</td></tr>
<tr><td><tt>01</tt>&nbsp; </td><td>desert</td></tr>
<tr><td><tt>02</tt>&nbsp; </td><td>rain forest</td></tr>
</table>
In any other climate, those 2 bits are free of use.
</li>
</ul>
<p>
For a graphical representation of the tile-layout have a look at
<a href="landscape_grid.html">Landscape grid</a> page.
</p>
The <a name="OwnershipInfo">owner of a tile</a>, as frequently associated with attribute m1,
can be either companies (human or AI) or "Game entities".
They are identified using:
<table border="1">
<tr><td><tt>00..0E</tt>&nbsp; </td><td align=left>Normal companies</td></tr>
<tr><td><tt>0F</tt>&nbsp; </td><td align=left>a town owns the tile</td></tr>
<tr><td><tt>10</tt>&nbsp; </td><td align=left>nobody owns the tile</td></tr>
<tr><td><tt>11</tt>&nbsp; </td><td align=left>"water" owns the tile</td></tr>
<tr><td><tt>FF</tt>&nbsp; </td><td align=left>spectator in MP or in scenario editor</td></tr>
</table>
<p>OTTD's class-specific periodic tile processing routine is called once every +256 ticks for each tile.</p>
@@ -104,7 +78,7 @@
<td valign=top nowrap>&nbsp;</td>
<td>
<ul>
<li>m1 bits 4..0: <a href="#OwnershipInfo">owner</a> of the tile (normally <tt>10</tt>)</li>
<li>m1: <a href="#OwnershipInfo">owner</a> of the tile (normally <tt>10</tt>)</li>
<li>m2: see fields</li>
<li>m3 bits 3..0: see fields</li>
<li>m3 bit 4: set if the tile is covered with snow</li>
@@ -209,7 +183,7 @@
<td valign=top nowrap>&nbsp;</td>
<td>
<ul>
<li>m1 bits 4..0: <a href="#OwnershipInfo">owner</a> of the tile</li>
<li>m1: <a href="#OwnershipInfo">owner</a> of the tile</li>
<li>m2: see signals</li>
<li>m3 bits 7..4: see signals</li>
<li>m3 bits 3..0 = <a name="TrackType">track type</a>:
@@ -574,7 +548,7 @@
<li>m3 bits 7..4: <a href="#OwnershipInfo">owner</a> of road type 1 (tram); OWNER_NONE (<tt>10</tt>) is stored as OWNER_TOWN (<tt>0F</tt>)
<li>m5 bit 6 clear: road
<ul>
<li>m1 bits 4..0: <a href="#OwnershipInfo">owner</a> of the road type 0 (normal road)</li>
<li>m1: <a href="#OwnershipInfo">owner</a> of the road type 0 (normal road)</li>
<li>m7 bits 3..0: counter for the roadworks</li>
<li>m5 bits 3..0: road layout road type 0 (normal road): bit set = road piece present:
<table>
@@ -613,7 +587,7 @@
</li>
<li>m5 bit 6 set: level crossing
<ul>
<li>m1 bits 4..0: <a href="#OwnershipInfo">owner</a> of the railway track</li>
<li>m1: <a href="#OwnershipInfo">owner</a> of the railway track</li>
<li>m3 bits 3..0: <a href="#TrackType">railway track type</a></li>
<li>m5 bit 0: direction
<table>
@@ -636,7 +610,7 @@
</li>
<li>m5 bit 7 set, bit 6 clear: road depot
<ul>
<li>m1 bits 4..0: <a href="#OwnershipInfo">owner</a> of the depot</li>
<li>m1: <a href="#OwnershipInfo">owner</a> of the depot</li>
<li>m2: Depot index</li>
<li>m5 bits 3..0: exit towards:
<table>
@@ -695,7 +669,7 @@
</li>
</ul>
<li>m3 bit 6 : bit 8 of house type (m4), allowing 512 different types.</li>
<li>m3 bit 5 : free</li>
<li>m3 bit 5 : bit 6 of current animation frame (see m6)</li>
<li>m3 bits 4..0 : triggers activated <a href="#newhouses">(newhouses)</a></li>
<li>m4 : <a href="landscape_externals.html">town building type</a> (with m3[6] bit)</li>
<li>m5 : see m3 bit 7</li>
@@ -703,7 +677,7 @@
<ul>
<li>If <a href="#newhouses">newhouses</a> is activated
<ul>
<li>bits 7..2 : Periodic processing time remaining</li>
<li>bits 7..2 : Current animation frame (bits 5..0); bit 6 in m3</li>
</ul>
</li>
<li>Standard behaviour
@@ -718,7 +692,7 @@
<ul>
<li>If <a href="#newhouses">newhouses</a> is activated
<ul>
<li>Current animation frame</li>
<li>Periodic processing time remaining</li>
</ul>
</li>
<li>Standard behaviour (only for houses type 04 and 05)
@@ -734,7 +708,7 @@
</ul>
</li>
</ul>
<small><a name="newhouses"></a>Newhouses is the name englobing a newGRF feature developped by TTDPatch devs (mainly Csaboka).<br>
<small><a name="newhouses">Newhouses is the name englobing a newGRF feature developped by TTDPatch devs (mainly Csaboka).<br>
It allows the replacement of the properties as well as the graphics of houses in the game.<br>
To distinguish between the standard behaviour and the newGRF one, HouseID (m4 + m3[6]) is tested for anything above 110.<br>
110 is the count of standard houses. So above 110 means there is a new definition of at least one house</small>
@@ -749,7 +723,7 @@
<td valign=top nowrap>&nbsp;</td>
<td>
<ul>
<li>m1 bits 4..0: <a href="#OwnershipInfo">owner</a> (normally <tt>10</tt>)</li>
<li>m1: <a href="#OwnershipInfo">owner</a> (normally <tt>10</tt>)</li>
<li>m2 bits 8..6: ground
<table>
@@ -848,12 +822,12 @@
<td valign=top nowrap>&nbsp;</td>
<td>
<ul>
<li>m1 bits 6..5: water class for buoys, water part of docks and for airport tiles</li>
<li>m1 bits 4..0: <a href="#OwnershipInfo">owner</a> of the station</li>
<li>m1: <a href="#OwnershipInfo">owner</a> of the station</li>
<li>m2: index into the array of stations</li>
<li>m3 bits 7..4: persistent random data for railway stations/waypoints and airports)</li>
<li>m3 bits 7..4: persistent random data for newstations (railway stations/waypoints)</li>
<li>m3 bits 7..4: <a href="#OwnershipInfo">owner</a> of tram tracks (road stop)</li>
<li>m3 bits 3..0: <a href="#TrackType">track type</a> for railway stations/waypoints</li>
<li>m3 bits 1..0: water class for buoys and water part of docks</li>
<li>m4: custom station id; 0 means standard graphics</li>
<li>m5: graphics index (range from 0..255 for each station type):
<table>
@@ -897,7 +871,7 @@
</tr>
<tr>
<td nowrap valign=top><tt>00</tt>..<tt>FF</tt></td>
<td nowrap valign=top><tt>00</tt>..<tt>8F</tt></td>
<td align=left>all airports</td>
</tr>
@@ -972,7 +946,7 @@
<li>m6 bits 1..0 : <a href="#tropic_zone">Tropic zone definition</a></li>
<li>m7 bits 4..0: <a href="#OwnershipInfo">owner</a> of road (road stops)</li>
<li>m7 bits 7..6: present road types (road stops)</li>
<li>m7: animation frame (railway stations/waypoints, airports)</li>
<li>m7: animation frame (railway stations/waypoints)</li>
</ul>
</td>
</tr>
@@ -985,9 +959,9 @@
<td valign=top nowrap>&nbsp;</td>
<td>
<ul>
<li>m1 bits 6..5 : Water class (sea, canal or river)
<li>m1 bits 4..0: <a href="#OwnershipInfo">owner</a> (for sea, rivers, and coasts normally <tt>11</tt>)</li>
<li>m1: <a href="#OwnershipInfo">owner</a> (for sea, rivers, and coasts normally <tt>11</tt>)</li>
<li>m2: Depot index (for depots only)</li>
<li>m3 bits 1..0 : Water class (sea, canal or river)
<li>m4: Random data for canal or river tiles</li>
<li>m5: tile type:
<table>
@@ -1116,7 +1090,7 @@
</ul>
</li>
<li>m2: index into the array of industries</li>
<li>m3: random bits (NewGRF)</li>
<li>m3: animation state</li>
<li>m4: animation loop</li>
<li>m5: type (plus m6 bit 2):<br>
<small>(note: this is not the same as the industry type, which is stored in the array of industries)</small>
@@ -1133,7 +1107,7 @@
<tr>
<td nowrap valign=top><tt>01</tt>&nbsp; </td>
<td align=left>wheel tower when animated<br>
animation state in m7 bits 5..0; m7 bit 6 set = sound already generated</td>
animation state in m3 bits 5..0; m3 bit 6 set = sound already generated</td>
</tr>
</table>
</td>
@@ -1149,7 +1123,7 @@
</tr>
<tr>
<td nowrap valign=top><tt>0A</tt>&nbsp; </td>
<td align=left>transformer; animation progress in m7(valid range <tt>0</tt>..<tt>7</tt>)</td>
<td align=left>transformer; animation progress in m3(valid range <tt>0</tt>..<tt>7</tt>)</td>
</tr>
</table>
</td>
@@ -1192,7 +1166,7 @@
</tr>
<tr>
<td nowrap valign=top><tt>1E</tt>..<tt>20</tt>&nbsp; </td>
<td align=left>various stages of animation; progress of animation in m7</td>
<td align=left>various stages of animation; progress of animation in m3</td>
</tr>
</table>
</td>
@@ -1223,7 +1197,7 @@
</tr>
<tr>
<td nowrap valign=top><tt>30</tt>&nbsp; </td>
<td align=left>wheel tower when animated; animation state in m7 bits 5..0; m7 bit 6 set = sound already generated</td>
<td align=left>wheel tower when animated; animation state in m3 bits 5..0; m3 bit 6 set = sound already generated</td>
</tr>
<tr>
<td nowrap valign=top><tt>31</tt>&nbsp; </td>
@@ -1263,7 +1237,7 @@
</tr>
<tr>
<td nowrap valign=top><tt>58</tt>&nbsp; </td>
<td align=left>wheel tower when animated; animation state in m7 bits 5..0; m7 bit 6 set = sound already generated</td>
<td align=left>wheel tower when animated; animation state in m3 bits 5..0; m3 bit 6 set = sound already generated</td>
</tr>
</table></td>
</tr>
@@ -1358,7 +1332,7 @@
<table>
<tr>
<td nowrap valign=top><tt>8F</tt>&nbsp; </td>
<td align=left>Animated part; animation state in m7 (valid range <tt>00</tt>..<tt>31</tt>)<br>
<td align=left>Animated part; animation state in m3 (valid range <tt>00</tt>..<tt>31</tt>)<br>
Tile animation is started (m4 zeroed) on the periodic processing.<br>
While the animation is in progress, m4 holds the number
of animation cycles that have already taken place.<br>
@@ -1388,7 +1362,7 @@
</tr>
<tr>
<td nowrap valign=top><tt>A2</tt>&nbsp; </td>
<td align=left>bubble capture facility; animation state in m7 (valid range <tt>00</tt>..<tt>27</tt>)</td>
<td align=left>bubble capture facility; animation state in m3 (valid range <tt>00</tt>..<tt>27</tt>)</td>
</tr>
</table>
</td>
@@ -1426,7 +1400,7 @@
<li>m6 bits 5..3: random triggers (NewGRF)</li>
<li>m6 bit 2: bit 8 of type (see m5)</li>
<li>m6 bits 1..0 : <a href="#tropic_zone">Tropic zone definition</a></li>
<li>m7: animation frame</li>
<li>m7: random bits (NewGRF)</li>
</ul>
</td>
</tr>
@@ -1439,7 +1413,7 @@
<td valign=top nowrap>&nbsp;</td>
<td>
<ul>
<li>m1 bits 4..0: <a href="#OwnershipInfo">owner</a></li>
<li>m1: <a href="#OwnershipInfo">owner</a></li>
<li>m3 bits 7..4: <a href="#OwnershipInfo">owner</a> of tram</li>
<li>m3 bits 3..0: <a href="#TrackType">track type</a> for railway</li>
<li>m5 bit 4: pbs reservation state for railway</li>
@@ -1551,7 +1525,6 @@
<td><tt>2</tt>&nbsp;</td>
<td>water</td>
</tr>
</table>
</li>
<li>m5 bits 1..0: direction onto the bridge / out of the tunnel
<table>
@@ -1587,16 +1560,16 @@
<tr bgcolor="#CCCCCC">
<td valign=top nowrap><strong><a name="ClassA"><tt> A</tt></a></strong></td>
<td><strong><tt>Objects</tt></strong></td>
<td><strong><tt>Unmovables</tt></strong></td>
</tr>
<tr>
<td valign=top nowrap>&nbsp;</td>
<td>
<ul>
<li>m1 bits 6..5 : Water class (sea, canal, river or land)
<li>m1 bits 4..0: <a href="#OwnershipInfo">owner</a> of the object (for lighthouses and transmitters normally <tt>10</tt>)</li>
<li>m2: index into the array of objects
<li>m3: random bits
<li>m1: <a href="#OwnershipInfo">owner</a> of the object (for lighthouses and transmitters normally <tt>10</tt>)</li>
<li>m2: see company statue
<li>m3 bits 4..2: size of HQ
<li>m3 bits 1..0: section identification of the HQ
<li>m5: tile type:
<table>
<tr>
@@ -1612,6 +1585,10 @@
<tr>
<td nowrap valign=top><tt>02</tt>&nbsp; </td>
<td align=left>company statue
<ul>
<li>m2: TownID on which the statue is built in</li>
</ul>
</td>
</tr>
<tr>
@@ -1627,7 +1604,6 @@
</li>
<li>m6 bits 7..6 : Possibility of a bridge above, in the <a href="#bridge_direction">direction specified</a></li>
<li>m6 bits 1..0 : <a href="#tropic_zone">Tropic zone definition</a></li>
<li>m7: animation counter
</ul>
</td>
</tr>

View File

@@ -4,7 +4,7 @@
<head>
<meta name="Author" content="Marcin Grzegorczyk">
<meta name="Description" content="Structure of OpenTTD (OTTD) landscape arrays">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>OpenTTD Landscape externals</title>
</head>

View File

@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="text/html; charset=UTF-8" http-equiv="content-type">
<meta name="Description" content="Structure of OpenTTD (OTTD) landscape arrays #2">
<title>OpenTTD Landscape Internals - #2</title>
<style type="text/css">
@@ -66,7 +66,7 @@ the array so you can quickly see what is used and what is not.
<td rowspan="2">0</td>
<td class="caption">ground</td>
<td class="bits">XXXX XXXX</td>
<td class="bits"><span class="free">OOO</span><span class="option">~ ~~~~</span></td>
<td class="bits"><span class="option">~~~~ ~~~~</span></td>
<td class="bits"><span class="free">OOOO OOOO OOOO OOOO</span></td>
<td class="bits"><span class="free">OOO</span>X <span class="free">OOOO</span></td>
<td class="bits">XXXX XX<span class="free">OO</span></td>
@@ -77,7 +77,7 @@ the array so you can quickly see what is used and what is not.
<tr>
<td class="caption">farmland</td>
<td class="bits">-inherit-</td>
<td class="bits">-inherit-</td>
<td class="bits"><span class="option">~~~~ ~~~~</span></td>
<td class="bits">XXXX XXXX XXXX XXXX</td>
<td class="bits"><span class="free">OOO</span>X XXXX</td>
<td class="bits">-inherit-</td>
@@ -89,7 +89,7 @@ the array so you can quickly see what is used and what is not.
<td rowspan=3>1</td>
<td class="caption">rail</td>
<td class="bits">XXXX XXXX</td>
<td class="bits"><span class="free">OOO</span>X XXXX</td>
<td class="bits"><span class="option">~~~</span>X XXXX</td>
<td class="bits"><span class="free">OOOO</span> XXXX <span class="free">OOOO OOOO</span></td>
<td class="bits"><span class="free">OOOO</span> XXXX</td>
<td class="bits"><span class="free">OOOO</span> XXXX</td>
@@ -123,7 +123,7 @@ the array so you can quickly see what is used and what is not.
<td rowspan=3>2</td>
<td class="caption">road</td>
<td class="bits">XXXX XXXX</td>
<td class="bits"><span class="free">OOO</span>X XXXX</td>
<td class="bits"><span class="option">~~~</span>X XXXX</td>
<td class="bits">XXXX XXXX XXXX XXXX</td>
<td class="bits">XXXX XXXX</td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
@@ -159,7 +159,7 @@ the array so you can quickly see what is used and what is not.
<td class="bits">XXXX XXXX</td>
<td class="bits">XXXX XXXX</td>
<td class="bits">XXXX XXXX XXXX XXXX</td>
<td class="bits">XX<span class="free">O</span><span class="option">~ ~~</span>XX</td>
<td class="bits">XXX<span class="option">~ ~~</span>XX</td>
<td class="bits">XXXX XXXX</td>
<td class="bits">XXX<span class="abuse">X XXXX</span></td>
<td class="bits"><span class="abuse">XXXX XX</span>XX</td>
@@ -169,7 +169,7 @@ the array so you can quickly see what is used and what is not.
<td>4</td>
<td class="caption">trees</td>
<td class="bits">XXXX XXXX</td>
<td class="bits"><span class="free">OOO</span><span class="option">~ ~~~~</span></td>
<td class="bits"><span class="option">~~~~ ~~~~</span></td>
<td class="bits"><span class="free">OOOO OOO</span>X XXXX XXXX</td>
<td class="bits"><span class="option">~~</span>XX XXXX</td>
<td class="bits">XXXX XX<span class="free">OO</span></td>
@@ -181,7 +181,7 @@ the array so you can quickly see what is used and what is not.
<td rowspan=7>5</td>
<td class="caption">rail station</td>
<td class="bits">XXXX XXXX</td>
<td class="bits"><span class="free">O</span>XXX XXXX</td>
<td class="bits"><span class="option">~~~</span>X XXXX</td>
<td class="bits">XXXX XXXX XXXX XXXX</td>
<td class="bits">XXXX XXXX</td>
<td class="bits">XXXX XXXX</td>
@@ -216,7 +216,7 @@ the array so you can quickly see what is used and what is not.
<td class="bits">-inherit-</td>
<td class="bits">-inherit-</td>
<td class="bits">-inherit-</td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
<td class="bits"><span class="free">OOOO OO</span>XX</td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
<td class="bits"><span class="option">~~~~ ~</span>XXX</td>
<td class="bits"><span class="free">OO</span>XX X<span class="free">O</span>XX</td>
@@ -227,18 +227,18 @@ the array so you can quickly see what is used and what is not.
<td class="bits">-inherit-</td>
<td class="bits">-inherit-</td>
<td class="bits">-inherit-</td>
<td class="bits">XXXX <span class="free">OOOO</span></td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
<td class="bits">XXXX XXXX</td>
<td class="bits"><span class="free">OO</span>XX X<span class="free">O</span>XX</td>
<td class="bits">XXXX XXXX</td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
</tr>
<tr>
<td class="caption">buoy</td>
<td class="bits">-inherit-</td>
<td class="bits">-inherit-</td>
<td class="bits">-inherit-</td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
<td class="bits"><span class="free">OOOO OO</span>XX</td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
<td class="bits"><span class="option">~~~~ ~~~~</span></td>
<td class="bits"><span class="free">OO</span>XX X<span class="free">O</span>XX</td>
@@ -259,9 +259,9 @@ the array so you can quickly see what is used and what is not.
<td rowspan=3>6</td>
<td class="caption">sea, shore</td>
<td class="bits">XXXX XXXX</td>
<td class="bits"><span class="free">O</span>XXX XXXX</td>
<td class="bits"><span class="option">~~~</span>X XXXX</td>
<td class="bits"><span class="free">OOOO OOOO OOOO OOOO</span></td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
<td class="bits"><span class="free">OOOO OO</span>XX</td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
<td class="bits">X<span class="option">~~</span>X XXXX</td>
<td class="bits">XX<span class="free">OO OO</span>XX</td>
@@ -272,7 +272,7 @@ the array so you can quickly see what is used and what is not.
<td class="bits">-inherit-</td>
<td class="bits">-inherit-</td>
<td class="bits"><span class="free">OOOO OOOO OOOO OOOO</span></td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
<td class="bits"><span class="free">OOOO OO</span>XX</td>
<td class="bits">XXXX XXXX</td>
<td class="bits">-inherit-</td>
<td class="bits">XX<span class="free">OO OO</span>XX</td>
@@ -283,7 +283,7 @@ the array so you can quickly see what is used and what is not.
<td class="bits">-inherit-</td>
<td class="bits">-inherit-</td>
<td class="bits">XXXX XXXX XXXX XXXX</td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
<td class="bits"><span class="free">OOOO OO</span>XX</td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
<td class="bits">-inherit-</td>
<td class="bits">XX<span class="free">OO OO</span>XX</td>
@@ -293,7 +293,8 @@ the array so you can quickly see what is used and what is not.
<td>8</td>
<td class="caption">industry</td>
<td class="bits">XXXX XXXX</td>
<td class="bits">XXX<span class="free">O</span> <span class="abuse">XXXX</span></td>
<td class="bits">XXX<span class="free">O</span> <span class="abuse">
XXXX</span></td>
<td class="bits">XXXX XXXX XXXX XXXX</td>
<td class="bits">XXXX XXXX</td>
<td class="bits">XXXX XXXX</td>
@@ -305,7 +306,7 @@ the array so you can quickly see what is used and what is not.
<td rowspan=2>9</td>
<td class="caption">tunnel entrance</td>
<td class="bits">XXXX XXXX</td>
<td class="bits"><span class="free">OOO</span>X XXXX</td>
<td class="bits"><span class="option">~~~</span>X XXXX</td>
<td class="bits"><span class="free">OOOO OOOO OOOO OOOO</span></td>
<td class="bits">XXXX XXXX</td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
@@ -326,15 +327,26 @@ the array so you can quickly see what is used and what is not.
</tr>
<tr>
<td rowspan=2>A</td>
<td class="caption">objects</td>
<td class="bits">XXXX XXXX</td>
<td class="bits"><span class="free">O</span>XXX XXXX</td>
<td class="bits">XXXX XXXX XXXX XXXX</td>
<td class="caption">unmovables</td>
<td class="bits">XXXX XXXX</td>
<td class="bits"><span class="option">~~~</span>X XXXX</td>
<td class="bits"><span class="free">OOOO OOOO OOOO OOOO</span></td>
<td class="bits"><span class="free">OOO</span>X XXXX</td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
<td class="bits">XXXX XXXX</td>
<td class="bits">XX<span class="free">OO OO</span>XX</td>
<td class="bits">XXXX XXXX</td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
</tr>
<tr>
<td class="caption">company statue</td>
<td class="bits">-inherit-</td>
<td class="bits">-inherit-</td>
<td class="bits">XXXX XXXX XXXX XXXX</td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
<td class="bits">-inherit-</td>
<td class="bits">XX<span class="free">OO OO</span>XX</td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
</tr>
</tbody>
</table>

View File

@@ -1,212 +1,121 @@
Multiplayer manual for OpenTTD
Last updated: 2011-01-20
------------------------------------------------------------------------
Multiplayer Manual for OpenTTD (0.3.5)
=======================================
1. Starting a Server
---------------------
Table of contents
-----------------
1.0) Starting a server
2.0) Connecting to a server
* 2.1) Connecting to a server over the console
3.0) Playing internet games
4.0) Tips for servers
* 4.1) Imposing landscaping limits
5.0) Some useful things
6.0) Troubleshooting
1.0) Starting a server
---- -----------------
- Click "multiplayer" on the startup screen
- Click "start server"
- Type in a game name
- Select the type of game ('LAN/Internet' or 'Internet (advertise)'. With the
last one other people are able to see you online. Else they need your IP and
port to join)
- Select the type of game ('LAN/Internet' or 'Internet (advertise)'. With the last one
other people are able to see you online. Else they need your IP and port to join)
- Click "start game", "load game" or "load scenario"
- Start playing
2.0) Connecting to a server
---- ----------------------
2. Connecting to a Server
--------------------------
- Click "multiplayer" on the startup screen
- If you want to connect to any network game in your LAN click on 'LAN', then
on 'Find Server'
- If you want to see which servers all online on the Internet, click on
'Internet' and 'Find Server'
- If you want to connect to any network game in your LAN click on 'LAN', then on
'Find Server'
- If you want to see which servers all online on the Internet, click on 'Internet'
and 'Find Server'
- If there were more than one server
- If there were more then one server
- select one in the list below the buttons
- click on 'join game'
- If you want to play and you have the ip or hostname of the game server you
want connect to.
- If you want to play and you have the ip or hostname of the game server you want connect to.
- click add server
- type in the ip address or hostname
- if you want to add a port use :<port>
- Now you can select a company and press: "Join company", to help that company
- Or you can press "Spectate game", to spectate the game
- Or you can press "New company", and start your own company (if there are
slots free)
- Or you can press "New company", and start your own company (if there are slots free)
- You see a progressbar how far you are with joining the server.
- Happy playing
2.1) Connecting to a server over the console
---- ---------------------------------------
3. Connecting to a Server over the Console
-------------------------------------------
- Open the console and type in the following command:
connect <ip/host>:<port>#<company-no>
connect <ip/host>:<port>#<player-no>
3.0) Playing internet games
---- ----------------------
- Servers with a red dot behind it have a different version then you have. You
will not be able to join those servers.
4. Playing Internet-Games
--------------------------
- Servers with a yellow dot behind it have NewGRFs that you do not have. You
will not be able to join those servers. However, via "NewGRF Settings" and
"Find missing content online" you might be able to download the needed
NewGRFs after which you can join the server.
- Since OpenTTD 0.3.5 the network protocol has been rewritten and is very stable, even over slow connections.
- It can happen that a connection is that slow, or you have that many clients
connected to your server, that your clients start to loose their connection.
Some things you can do about it:
- [network] frame_freq:
change it in console with: 'set network.frame_freq <number>'
the number should be between the 0 and 10, not much higher. It indicates
the delay between clicking and showing up. The higher, the more you notice
it, but the less bandwidth you use.
- Servers with a red dot behind it have a different version then you have. You will not be able to join those servers.
- Servers with a yellow dot behind it have NewGRFs that you do not have. You will not be able to join those servers.
- It can happen that a connection is that slow, or you have that many clients connected to your server, that your clients start to loose their connection. Some things you can do about it:
- net_frame_freq:
change it in console with: net_frame_freq = <number>
the number should be between the 0 and 10, not much higher. It indicates the delay between clicking and showing up. The higher, the more you notice it, but the less bandwidth you use.
A good value for Internet-games is 2 or 3.
- [network] sync_freq:
change it in console with: 'set network.sync_freq <number>'
the number should be between the 50 and 1000, not much lower, not much
higer. It indicates the time between sync-frames. A sync-frame is a frame
which checks if all clients are still in sync. When the value it too high,
clients can desync in 1960, but the server detects it in 1970. Not really
handy. The lower the value, the more bandwidth it uses.
- net_sync_freq:
change it in console with: net_sync_freq = <number>
the number should be between the 50 and 1000, not much lower, not much higer. It indicates the time between sync-frames. A sync-frame is a frame which checks if all clients are still in sync. When the value it too high, clients can desync in 1960, but the server detects it in 1970. Not really handy. The lower the value, the more bandwidth it uses.
NB: changing frame_freq has more effect on the bandwidth then sync_freq.
NB: changing net_frame_freq has more effect on the bandwidth then net_sync_freq. You should never change net_sync_freq!
4.0) Tips for servers
---- ----------------
- You can launch a dedicated server by adding -D as parameter.
- In UNIX like systems, you can fork your dedicated server by adding -f as
parameter.
5. Tips for servers
--------------------
- You can automaticly clean companies that do not have a client connected to
them, for, let's say, 3 years. You can do this via: 'set autoclean_companies'
and 'set autoclean_protected' and 'set autoclean_unprotected'. Unprotected
removes a password from a company when it is not used for more then the
defined amount of months. 'set autoclean_novehicles' can be used to remove
companies without any vehicles quickly.
- You can launch a dedicated server by adding -D as parameter
- In UNIX like systems, you can fork your dedicated server by adding -f as parameter
- You can automaticly clean companies that do not have a client connected to them, for, let's say,
3 years. You can do this via: 'set autoclean_companies' and 'set autoclean_protected' and
'set autoclean_unprotected'. Unprotected removes a password from a company when it is
not used for more then the defined amount of months.
- You can also do this manually via the console: 'reset_company'.
Both ways, the company will go bankrupt.
- You can let your server automaticly restart a map when, let's say, year 2030
is reached. See 'set restart_game_date' for detail.
- You can let your server automaticly restart a map when, let's say, year 2030 is reached.
See 'set restart_game_date' for detail.
- If you want to be on the server-list, enable Advertising. To do this, select 'Internet (advertise)'
in the Start Server menu, or type in console: 'set server_advertise 1'.
- If you want to be on the server-list, enable Advertising. To do this, select
'Internet (advertise)' in the Start Server menu, or type in console:
'set server_advertise 1'.
- You can protect your server with a password via the console: 'set server_pw', or via the
Start Server menu.
- You can protect your server with a password via the console: 'set server_pw',
or via the Start Server menu.
- When you have many clients connected to your server via Internet, watch your
bandwidth (if you have any limit on it, set by your ISP). One client uses
about 1.5 kilobytes per second up and down. To decrease this amount, setting
'frame_freq' to 1 will reduce it to roughly 1 kilobyte per second per client.
- OpenTTD's default settings for maximum number of clients, and amount of data
from clients to process are chosen to not influence the normal playing of
people, but to prevent or at least make it less likely that someone can
perform a (distributed) denial-of-service attack on your server by causing
an out-of-memory event by flooding the server with data to send to all
clients. The major factor in this is the maximum number of clients; with
32 clients "only" sending one chat message causes 1024 messages to be
distributed in total, with 64 clients that already quadruples to 4096. Given
that upstream bandwidth is usually the limiting factor, a queue of packets
that need to be sent will be created.
To prevent clients from exploiting this "explosion" of packets to send we
limit the number of incoming data, resulting in effectively limiting the
amount of data that OpenTTD will send to the clients. Even with the default
limits it is possible to generate about 70.000 packets per second, or about
7 megabit per second of traffic.
Given that OpenTTD kicks clients after they have not reacted within about 9
seconds from sending a frame update packet it would be possible that OpenTTD
keeps about 600.000 packets in memory, using about 50 megabytes of memory.
Given that OpenTTD allows short bursts of packets, you can have slightly
more packets in memory in case of a distributed denial of service attack.
When increasing the amount of incoming data, or the maximum number of
clients the amount of memory OpenTTD needs in case of a distributed denial
of service attack is linearly related to the amount of incoming data and
quadratic to the amount of clients. In short, a rule of thumb for, the
maximum memory usage for packets is:
#max_clients * #max_clients * bytes_per_frame * 10 KiB.
4.1) Imposing landscaping limits
---- ---------------------------
- You can impose limits on companies by the following 4 settings:
- terraform_per_64k_frames
- terraform_frame_burst
- clear_per_64k_frames
- clear_frame_burst
- Explaining 'per_64K_frames' and 'burst'
- 'burst' defines 3 things, the maximum limit, the limit of a single action,
and the initial value for the limit assigned to a new company.
This setting is fairly simple and requires no math.
A value of 1 means a single tile can be affected by a single action.
This results in having to click 400 times when wanting to cover an area
of 20 x 20 tiles.
The default value 4096 covers an area of 64 x 64 tiles.
- 'per_64k_frames' defines the number of tiles added to each companies limit
per frame (however not past the possible maximum value,the 'burst').
64k rather resembles the exact number of 65536 frames. So setting this
variable to 65536 means: 65536 / 65536 = 1 tile per frame.
As a day consists of 74 frames, a company's limit is increased by 74
tiles during the course of a single day (2.22 seconds).
To achieve a 1 tile per day increase the following calculation is needed:
1 / 74 (frames per day) * 65536 (per_64k_frames) = 885.62...
after rounding: a value of 886 means adding a bit over 1 tile per day.
There is still enough space to scale this value downwards:
decreasing this value to 127 results in a bit over 1 tile added to the
allowance per week (7 days).
To create a setup in which a company gets an initial allowance only,
set the value to 0 - no increase of the allowance per frame.
- Even though construction actions include a clear tile action, they are not
affected by the above settings.
- When you have many clients connected to your server via Internet, watch your bandwidth (if
you have any limit on it, set by your ISP). 1 client uses +/- 3 kb/s up and down. To decrease
this amount, set 'net_frame_freq' to 1 for example. This will reduce it to 1.5 kb/s per client.
5.0) Some useful things
---- ------------------
- You can protect your company so nobody else can join uninvited. To do this,
set a password in your Company Screen
6. Some useful things
----------------------
- You can give other players some money via the ClientList (under the 'head'
in the mainbar).
- You can protect your company so nobody else can join uninvited. To do this, check your Company Screen
- You can give other players some money via the ClientList (under the 'head' in the mainbar).
- You can chat with other players via ENTER or via SHIFT+T or via the ClientList
- Servers can now kick players, so don't make them use it!
- From 0.3.5, desyncs should not happen anymore
6.0) Troubleshooting
---- ---------------
- My advertising server does not show up in list at servers.openttd.org
Run openttd with the '-d net=2' parameter, as this will show whether it
receives replies from the master server. If it does not receive replies it
is most likely that you need to configure your router to forward ports
3979 (both TCP and UDP) to the computer that is hosting the game.
- From 0.3.5, patch-settings are also synced. You can now play without deleting openttd.cfg, and with, for example, extra large trains enabled.
7. Troubleshooting
------------------
- My advertised server does not show up in the 'advertised server list' (servers.openttd.org)
Run openttd with the '-d net=2' parameter, as this will show whether it receives replies from the master server.
If it does not receive replies it is most likely that you need to configure your router to forward the OpenTTD ports 3979 (both TCP and UDP) to the computer that is hosting the game.

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@@ -1,260 +0,0 @@
GIMP Palette
Name: openttd
Columns: 16
#
0 0 255 unnamed
238 0 238 unnamed
239 0 239 unnamed
240 0 240 unnamed
241 0 241 unnamed
242 0 242 unnamed
243 0 243 unnamed
244 0 244 unnamed
245 0 245 unnamed
246 0 246 unnamed
168 168 168 unnamed
184 184 184 unnamed
200 200 200 unnamed
216 216 216 unnamed
232 232 232 unnamed
252 252 252 unnamed
52 60 72 unnamed
68 76 92 unnamed
88 96 112 unnamed
108 116 132 unnamed
132 140 152 unnamed
156 160 172 unnamed
176 184 196 unnamed
204 208 220 unnamed
48 44 4 unnamed
64 60 12 unnamed
80 76 20 unnamed
96 92 28 unnamed
120 120 64 unnamed
148 148 100 unnamed
176 176 132 unnamed
204 204 168 unnamed
100 100 100 unnamed
116 116 116 unnamed
104 80 44 unnamed
124 104 72 unnamed
152 132 92 unnamed
184 160 120 unnamed
212 188 148 unnamed
244 220 176 unnamed
132 132 132 unnamed
88 4 16 unnamed
112 16 32 unnamed
136 32 52 unnamed
160 56 76 unnamed
188 84 108 unnamed
204 104 124 unnamed
220 132 144 unnamed
236 156 164 unnamed
252 188 192 unnamed
252 208 0 unnamed
252 232 60 unnamed
252 252 128 unnamed
76 40 0 unnamed
96 60 8 unnamed
116 88 28 unnamed
136 116 56 unnamed
156 136 80 unnamed
176 156 108 unnamed
196 180 136 unnamed
68 24 0 unnamed
96 44 4 unnamed
128 68 8 unnamed
156 96 16 unnamed
184 120 24 unnamed
212 156 32 unnamed
232 184 16 unnamed
252 212 0 unnamed
252 248 128 unnamed
252 252 192 unnamed
32 4 0 unnamed
64 20 8 unnamed
84 28 16 unnamed
108 44 28 unnamed
128 56 40 unnamed
148 72 56 unnamed
168 92 76 unnamed
184 108 88 unnamed
196 128 108 unnamed
212 148 128 unnamed
8 52 0 unnamed
16 64 0 unnamed
32 80 4 unnamed
48 96 4 unnamed
64 112 12 unnamed
84 132 20 unnamed
104 148 28 unnamed
128 168 44 unnamed
64 64 64 unnamed
44 68 32 unnamed
60 88 48 unnamed
80 104 60 unnamed
104 124 76 unnamed
128 148 92 unnamed
152 176 108 unnamed
180 204 124 unnamed
16 52 24 unnamed
32 72 44 unnamed
56 96 72 unnamed
76 116 88 unnamed
96 136 108 unnamed
120 164 136 unnamed
152 192 168 unnamed
184 220 200 unnamed
32 24 0 unnamed
56 28 0 unnamed
80 80 80 unnamed
88 52 12 unnamed
104 64 24 unnamed
124 84 44 unnamed
140 108 64 unnamed
160 128 88 unnamed
76 40 16 unnamed
96 52 24 unnamed
116 68 40 unnamed
136 84 56 unnamed
164 96 64 unnamed
184 112 80 unnamed
204 128 96 unnamed
212 148 112 unnamed
224 168 128 unnamed
236 188 148 unnamed
80 28 4 unnamed
100 40 20 unnamed
120 56 40 unnamed
140 76 64 unnamed
160 100 96 unnamed
184 136 136 unnamed
36 40 68 unnamed
48 52 84 unnamed
64 64 100 unnamed
80 80 116 unnamed
100 100 136 unnamed
132 132 164 unnamed
172 172 192 unnamed
212 212 224 unnamed
48 48 48 unnamed
64 44 144 unnamed
88 64 172 unnamed
104 76 196 unnamed
120 88 224 unnamed
140 104 252 unnamed
160 136 252 unnamed
188 168 252 unnamed
0 24 108 unnamed
0 36 132 unnamed
0 52 160 unnamed
0 72 184 unnamed
0 96 212 unnamed
24 120 220 unnamed
56 144 232 unnamed
88 168 240 unnamed
128 196 252 unnamed
188 224 252 unnamed
16 64 96 unnamed
24 80 108 unnamed
40 96 120 unnamed
52 112 132 unnamed
80 140 160 unnamed
116 172 192 unnamed
156 204 220 unnamed
204 240 252 unnamed
172 52 52 unnamed
212 52 52 unnamed
252 52 52 unnamed
252 100 88 unnamed
252 144 124 unnamed
252 184 160 unnamed
252 216 200 unnamed
252 244 236 unnamed
72 20 112 unnamed
92 44 140 unnamed
112 68 168 unnamed
140 100 196 unnamed
168 136 224 unnamed
200 176 248 unnamed
208 184 255 unnamed
232 208 252 unnamed
60 0 0 unnamed
92 0 0 unnamed
128 0 0 unnamed
160 0 0 unnamed
196 0 0 unnamed
224 0 0 unnamed
252 0 0 unnamed
252 80 0 unnamed
252 108 0 unnamed
252 136 0 unnamed
252 164 0 unnamed
252 192 0 unnamed
252 220 0 unnamed
252 252 0 unnamed
204 136 8 unnamed
228 144 4 unnamed
252 156 0 unnamed
252 176 48 unnamed
252 196 100 unnamed
252 216 152 unnamed
8 24 88 unnamed
12 36 104 unnamed
20 52 124 unnamed
28 68 140 unnamed
40 92 164 unnamed
56 120 188 unnamed
72 152 216 unnamed
100 172 224 unnamed
92 156 52 unnamed
108 176 64 unnamed
124 200 76 unnamed
144 224 92 unnamed
224 244 252 unnamed
200 236 248 unnamed
180 220 236 unnamed
132 188 216 unnamed
88 152 172 unnamed
16 16 16 unnamed
32 32 32 unnamed
32 68 112 unnamed
36 72 116 unnamed
40 76 120 unnamed
44 80 124 unnamed
48 84 128 unnamed
72 100 144 unnamed
100 132 168 unnamed
216 244 252 unnamed
96 128 164 unnamed
68 96 140 unnamed
76 24 8 unnamed
108 44 24 unnamed
144 72 52 unnamed
176 108 84 unnamed
210 146 126 unnamed
252 60 0 unnamed
252 84 0 unnamed
252 104 0 unnamed
252 124 0 unnamed
252 148 0 unnamed
252 172 0 unnamed
252 196 0 unnamed
64 0 0 unnamed
255 0 0 unnamed
48 48 0 unnamed
64 64 0 unnamed
80 80 0 unnamed
255 255 0 unnamed
148 148 148 unnamed
247 0 247 unnamed
248 0 248 unnamed
249 0 249 unnamed
250 0 250 unnamed
251 0 251 unnamed
252 0 252 unnamed
253 0 253 unnamed
254 0 254 unnamed
255 0 255 unnamed
255 255 255 unnamed

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 37 KiB

View File

@@ -66,19 +66,20 @@ fi
# Find out some dirs
cd `dirname "$0"`
ROOT_DIR=`pwd`
SRC_DIR=src
# Determine if we are using a modified version
# Assume the dir is not modified
MODIFIED="0"
if [ -d "$ROOT_DIR/.svn" ]; then
# We are an svn checkout
if [ -n "`svnversion | grep 'M'`" ]; then
if [ -n "`svnversion \"$SRC_DIR\" | grep 'M'`" ]; then
MODIFIED="2"
fi
# Find the revision like: rXXXXM-branch
BRANCH=`LC_ALL=C svn info | "$AWK" '/^URL:.*branches/ { split($2, a, "/"); for(i in a) if (a[i]=="branches") { print a[i+1]; break } }'`
TAG=`LC_ALL=C svn info | "$AWK" '/^URL:.*tags/ { split($2, a, "/"); for(i in a) if (a[i]=="tags") { print a[i+1]; break } }'`
REV_NR=`LC_ALL=C svn info | "$AWK" '/^Last Changed Rev:/ { print $4 }'`
BRANCH=`LC_ALL=C svn info "$SRC_DIR" | "$AWK" '/^URL:.*branches/ { split($2, a, "/"); for(i in a) if (a[i]=="branches") { print a[i+1]; break } }'`
TAG=`LC_ALL=C svn info "$SRC_DIR" | "$AWK" '/^URL:.*tags/ { split($2, a, "/"); for(i in a) if (a[i]=="tags") { print a[i+1]; break } }'`
REV_NR=`LC_ALL=C svn info "$SRC_DIR" | "$AWK" '/^Last Changed Rev:/ { print $4 }'`
if [ -n "$TAG" ]; then
REV=$TAG
else
@@ -86,46 +87,22 @@ if [ -d "$ROOT_DIR/.svn" ]; then
fi
elif [ -d "$ROOT_DIR/.git" ]; then
# We are a git checkout
# Refresh the index to make sure file stat info is in sync, then look for modifications
git update-index --refresh >/dev/null
if [ -n "`git diff-index HEAD`" ]; then
if [ -n "`git diff-index HEAD \"$SRC_DIR\"`" ]; then
MODIFIED="2"
fi
HASH=`LC_ALL=C git rev-parse --verify HEAD 2>/dev/null`
REV="g`echo $HASH | cut -c1-8`"
BRANCH="`git symbolic-ref -q HEAD 2>/dev/null | sed 's@.*/@@;s@^master$@@'`"
REV_NR=`LC_ALL=C git log --pretty=format:%s --grep="^(svn r[0-9]*)" -1 | sed "s@.*(svn r\([0-9]*\)).*@\1@"`
if [ -z "$REV_NR" ]; then
# No rev? Maybe it is a custom git-svn clone
REV_NR=`LC_ALL=C git log --pretty=format:%b --grep="git-svn-id:.*@[0-9]*" -1 | sed "s@.*\@\([0-9]*\).*@\1@"`
fi
TAG="`git name-rev --name-only --tags --no-undefined HEAD 2>/dev/null`"
if [ -n "$TAG" ]; then
BRANCH=""
REV="$TAG"
fi
BRANCH=`git branch|grep '[*]' | sed 's@\* @@;s@^master$@@'`
REV_NR=`LC_ALL=C git log --pretty=format:%s "$SRC_DIR" | grep "^(svn r[0-9]*)" | head -n 1 | sed "s@.*(svn r\([0-9]*\)).*@\1@"`
elif [ -d "$ROOT_DIR/.hg" ]; then
# We are a hg checkout
if [ -n "`hg status | grep -v '^?'`" ]; then
if [ -n "`hg status \"$SRC_DIR\" | grep -v '^?'`" ]; then
MODIFIED="2"
fi
HASH=`LC_ALL=C hg id -i | cut -c1-12`
HASH=`LC_ALL=C hg parents --template="{node}"`
REV="h`echo $HASH | cut -c1-8`"
BRANCH="`hg branch | sed 's@^default$@@'`"
TAG="`hg id -t | grep -v 'tip$'`"
if [ -n "$TAG" ]; then
BRANCH=""
REV="$TAG"
fi
REV_NR=`LC_ALL=C hg log -f -k "(svn r" -l 1 --template "{desc|firstline}\n" | grep "^(svn r[0-9]*)" | sed "s@.*(svn r\([0-9]*\)).*@\1@"`
if [ -z "$REV_NR" ]; then
# No rev? Maybe it is a custom hgsubversion clone
REV_NR=`LC_ALL=C hg parent --template="{svnrev}"`
fi
elif [ -f "$ROOT_DIR/.ottdrev" ]; then
# We are an exported source bundle
cat $ROOT_DIR/.ottdrev
exit
BRANCH=`hg branch | sed 's@^default$@@'`
REV_NR=`LC_ALL=C hg log -r $HASH:0 -k "svn" -l 1 --template "{desc}\n" "$SRC_DIR" | grep "^(svn r[0-9]*)" | head -n 1 | sed "s@.*(svn r\([0-9]*\)).*@\1@"`
else
# We don't know
MODIFIED="1"

View File

@@ -1,18 +1,18 @@
OpenTTD's known bugs
Last updated: 2011-01-21
Release version: 1.1.0-beta4
Last updated: 2010-05-01
Release version: 1.0.1
------------------------------------------------------------------------
Table of contents
-----------------
1.0) About
2.0) Known bugs in this release
* 2.1) Known bugs that will not be solved
Table of Contents:
------------------
1) About
2) Known bugs in the this stable release
3) Known bugs that will not be solved
1.0) About
---- -----
1) About:
-- ------
All bugs listed below are marked as known. Please do not submit any bugs
that are the same as these. If you do, do not act surprised, because
we WILL flame you!!
@@ -22,28 +22,32 @@ specifics, we welcome you to report them. React to the given bug indicated
by the number below on http://bugs.openttd.org.
2.0) Known bugs in this release
---- --------------------------
The following bugs are known to exist in this release and we intend to
fix them. Some bugs are known but are not fixable or fixing them would
cause further problems. Those bugs can be found in the "Known bugs that
will not be solved" section.
2) Known bugs in the this stable release:
-- --------------------------------------
The following bugs are known to exist in this stable release and
we intend to fix them. Some bugs are known but are not fixable or
fixing them would cause further problems. Those bugs can be found
in the "Known bugs that will not be solved" section.
The bugs in this section all refer to a ticket in our bug tracking system
that you can find at: http://bugs.openttd.org
If the bugs are closed but still listed here it means that the bug is fixed
and that the nightlies and next major release will not have that bug.
Issues prefixed with [OSX] are required to be fixed before we consider
officially supporting Mac OS X again. For now it remains unsupported and
we only apply bug fixes provided by the community but we are unable to fix
these bugs ourselves.
- 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
- 2782 [OSX] Port hopelessly outdated
- 2585 [OSX] OS' mouse pointer showing
- 2484 [OSX] Cannot enter CJK characters
2.1) Known bugs that will not be solved
---- ----------------------------------
3) Known bugs that will not be solved:
-- -----------------------------------
This section lists all known bugs that we do not intend to fix and the
reasons why we think that fixing them is infeasible. We might make some
minor improvements that reduce the scope of these bugs, but we will not
@@ -60,38 +64,6 @@ No suitable AI can be found
"AI Settings" -> "Select AI" -> "Check Online Content" which is also
accessed via the main menu.
After a while of playing, colours get corrupted
In Windows 7 the background slideshow corrupts the colour mapping of
OpenTTD's 8bpp screen modes. Workarounds for this are:
a) Switching to windowed mode, instead of fullscreen
b) Switching off background slideshow
c) Setting up the 32bpp-anim or 32bpp-optimized blitter
Long delay between switching songs/music
On Windows there is a delay of a (few) second(s) between switching of
songs for the "win32" driver. This delay is caused by the fact that
opening a MIDI file via MCI is extremely slow.
DirectMusic, known as "dmusic" in OpenTTD, has a much shorter delay.
However, under some circumstances DirectMusic does not reset its
state properly causing wrongly pitched/bad sounding songs. This
problem is in DirectMusic as it is reproducable with Microsoft's
DirectMusic Producer. DirectMusic has been deprecated since 2004
and as such has no support for 64 bits OpenTTD.
As a delay is favourable over bad sounding music the "win32" driver
is the default driver for OpenTTD. You can change this default by
setting the "musicdriver" in your openttd.cfg to "dmusic".
Custom vehicle type name is incorrectly aligned
Some NewGRFs use sprites that are bigger than normal in the "buy
vehicle" window. Due to this they have to encode an offset for the
vehicle type name. Upon renaming the vehicle type this encoded offset
is stripped from the name because the "edit box" cannot show this
encoding. As a result the custom vehicle type names will get the
default alignment. The only way to (partly) fix this is by adding
spaces to the custom name.
Clipping problems [FS#119]
In some cases sprites are not drawn as one would expect. Examples of
this are aircraft that might be hidden below the runway or trees that
@@ -110,14 +82,6 @@ Clipping problems [FS#119]
leave the Transport Tycoon graphics, which in effect means OpenTTD
will not be a Transport Tycoon clone anymore.
Mouse scrolling not possible at the edges of the screen [FS#383] [FS#3966]
Scrolling the viewport with the mouse cursor at the edges of the screen
in the same direction of the edge will fail. If the cursor is near the
edge the scrolling will be very slow.
OpenTTD only receives cursor position updates when the cursor is inside
OpenTTD's window. It is not told how far you have moved the cursor
outside of OpenTTD's window.
Lost trains ignore (block) exit signals [FS#1473]
If trains are lost they ignore block exit signals, blocking junctions
with presignals. This is caused because the path finders cannot tell
@@ -211,76 +175,3 @@ OpenTTD not properly resizing with SDL on X [FS#3305]
Window managers that are known to exhibit this behaviour are KDE's
and GNOME's. With the XFCE's and LXDE's window managers the resize
event is sent when the user releases the mouse.
Train crashes entering same junction from block and path signals [FS#3928]
When a train has reserved a path from a path signal to a two way
block signal and the reservation passes a path signal through the
back another train can enter the reserved path (only) via that same
two way block signal.
The reason for this has to do with optimisation; to fix this issue
the signal update has to pass all path signals until it finds either
a train or a backwards facing signal. This is a very expensive task.
The (signal) setups that allow these crashes can furthermore be
considered incorrectly signalled; one extra safe waiting point for
the train entering from path signal just after the backwards facing
signal (from the path signal train) resolves the issue.
Crashes when playing music [FS#3941]
Mac OS X's QuickTime (default music driver) and Windows' MCI (win32
music driver) crash on some songs from OpenMSX. OpenTTD cannot do
anything about this. Please report these crashes to the authors of
OpenMSX so the crash causing songs can be removed or fixed.
Crashes when run in a VM using Parallels Desktop [FS#4003]
When the Windows version of OpenTTD is executed in a VM under
Parallels Desktop a privileged instruction exception may be thrown.
As OpenTTD works natively on OSX as well as natively on Windows and
these native builds both don't exhibit this behaviour this crash is
most likely due to a bug in the virtual machine, something out of
the scope of OpenTTD. Most likely this is due to Parallels Desktop
lacking support for RDTSC calls. The problem can be avoided by using
other VM-software, Wine, or running natively on OSX.
OpenTTD hangs when started on 32 bits Windows [FS#4083]
Under some circumstances OpenTTD might hang for hours on the
initialisation of the music driver. The exact circumstances are
unknown except that it is the "dmusic" music driver that has the
problem and that the "win32" music driver does not.
As a result using the "win32" music driver will work around this
issue.
As the exact circumstances are unknown, and the obvious
configuration settings related to the music driver are at their
default we are not able to detect this failure, except when Windows'
music initialisation function returns after several hours and then
there is no point in switching the music driver anymore.
The reason we do not use the "win32" music driver as default are
described in the "Long delay between switching music/song" section
of this document.
Pre- and exit signals are not dragged [FS#4378]
Unlike all other signal types, the entry- and exit signals are not
dragged but instead normal signals are placed on subsequent track
sections. This is done on purpose as this is the usually more con-
venient solution. There are little to no occasions where more than
one entry or exit signal in a row are useful. This is different
for all other signal types where several in a row can serve one
purpose or another.
Station build date is incorrect [FS#4415]
The tile query tool will show the date of the last (re)construction
at the station and not the date of the first construction. This is
due to compatability reasons with NewGRFs and the fact that it is
wrong to say that the station is built in a particular year when it
was completely destroyed/rebuilt later on.
The tile query tool can be fixed by changing the "Build date" text
to "Date at which the last (re)construction took place" but this is
deemed too specific and long for that window.
Can't change volume inside OpenTTD [FS#4416]
Some backends do not provide a means to change the volume of sound
effects or music. The mixing of music and sound is left to external
libraries/the operating system we can't handle the volume control
in OpenTTD. As a result you can't change the volume inside OpenTTD
for backends such as SDL; just use the volume control provided by
your operating system.

File diff suppressed because it is too large Load Diff

View File

@@ -1,19 +0,0 @@
//
// $Id$
//
// This file is part of OpenTTD.
// OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
// OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
// See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
//
-1 * 0 0C "Airport previews"
-1 * 0 05 16 09
-1 sprites/airport_preview.png 50 8 09 140 230 0 0
-1 sprites/airport_preview.png 290 8 09 140 230 0 0
-1 sprites/airport_preview.png 530 8 09 140 230 0 0
-1 sprites/airport_preview.png 2 168 09 140 230 0 0
-1 sprites/airport_preview.png 242 168 09 140 230 0 0
-1 sprites/airport_preview.png 482 168 09 140 230 0 0
-1 sprites/airport_preview.png 2 328 09 140 230 0 0
-1 sprites/airport_preview.png 242 328 09 140 230 0 0
-1 sprites/airport_preview.png 482 328 09 140 230 0 0

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

View File

@@ -1,25 +0,0 @@
//
// $Id$
//
// This file is part of OpenTTD.
// OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
// OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
// See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
//
-1 * 0 0C "Extra airport graphics"
-1 * 3 05 10 0F
-1 sprites/airports.png 18 8 09 31 64 -31 0
-1 sprites/airports.png 98 8 09 31 64 -31 0
-1 sprites/airports.png 178 8 09 31 64 -31 0
-1 sprites/airports.png 258 8 09 31 64 -31 0
-1 sprites/airports.png 338 8 09 31 64 -31 0
-1 sprites/airports.png 418 8 09 31 64 -31 0
-1 sprites/airports.png 498 8 09 55 64 -2 -38
-1 sprites/airports.png 578 8 09 17 18 16 -1
-1 sprites/airports.png 610 8 09 55 64 -2 -38
-1 sprites/airports.png 690 8 09 17 18 -30 1
-1 sprites/airports.png 722 8 09 55 64 -2 -38
-1 sprites/airports.png 2 88 09 55 64 -2 -38
-1 sprites/airports.png 82 88 09 31 64 -31 0
-1 sprites/airports.png 162 88 09 31 64 -31 0
-1 sprites/airports.png 242 88 09 31 64 -31 0

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.4 KiB

View File

@@ -1,18 +0,0 @@
//
// $Id$
//
// This file is part of OpenTTD.
// OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
// OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
// See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
//
-1 * 0 0C "Aqueduct graphics by Jonathan G. Rennison"
-1 * 3 05 12 08
-1 sprites/aqueduct.png 34 8 09 33 64 -34 -10
-1 sprites/aqueduct.png 114 8 09 33 66 -37 -9
-1 sprites/aqueduct.png 194 8 09 33 64 -34 -10
-1 sprites/aqueduct.png 274 8 09 33 66 -37 -9
-1 sprites/aqueduct.png 354 8 09 33 64 -34 -5
-1 sprites/aqueduct.png 434 8 09 33 66 -37 -4
-1 sprites/aqueduct.png 514 8 09 23 33 -31 0
-1 sprites/aqueduct.png 562 8 09 23 33 0 1

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

View File

@@ -1,65 +0,0 @@
//
// $Id$
//
// This file is part of OpenTTD.
// OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
// OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
// See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
//
-1 * 0 0C "Autorail graphics"
-1 * 3 05 13 37
-1 sprites/autorail.png 18 8 09 31 64 -31 7
-1 sprites/autorail.png 98 8 09 31 64 -31 -1
-1 sprites/autorail.png 178 8 09 39 64 -31 -1
-1 sprites/autorail.png 258 8 09 47 64 -31 -9
-1 sprites/autorail.png 338 8 09 31 64 -31 -5
-1 sprites/autorail.png 418 8 09 23 64 -31 7
-1 sprites/autorail.png 498 8 09 18 64 -31 4
-1 sprites/autorail.png 578 8 09 31 64 -31 -1
-1 sprites/autorail.png 658 8 09 31 64 -31 7
-1 sprites/autorail.png 2 72 09 31 64 -31 -1
-1 sprites/autorail.png 82 72 09 23 64 -31 7
-1 sprites/autorail.png 162 72 09 18 64 -31 4
-1 sprites/autorail.png 242 72 09 31 64 -31 -1
-1 sprites/autorail.png 322 72 09 39 64 -31 -1
-1 sprites/autorail.png 402 72 09 47 64 -31 -9
-1 sprites/autorail.png 482 72 09 31 64 -31 -5
-1 sprites/autorail.png 562 72 09 31 64 -31 7
-1 sprites/autorail.png 642 72 09 31 64 -31 -1
-1 sprites/autorail.png 722 72 09 47 64 -31 -9
-1 sprites/autorail.png 2 136 09 26 64 -31 4
-1 sprites/autorail.png 82 136 09 23 64 -31 4
-1 sprites/autorail.png 162 136 09 31 64 -31 -3
-1 sprites/autorail.png 242 136 09 26 64 -31 4
-1 sprites/autorail.png 322 136 09 23 64 -31 4
-1 sprites/autorail.png 402 136 09 31 64 -31 -3
-1 sprites/autorail.png 482 136 09 31 64 -31 7
-1 sprites/autorail.png 562 136 09 31 64 -31 -1
-1 sprites/autorail.png 642 136 09 15 64 -31 7
-1 sprites/autorail.png 722 136 09 31 64 -31 7
-1 sprites/autorail.png 2 184 09 39 64 -31 -1
-1 sprites/autorail.png 82 184 09 31 64 -31 -1
-1 sprites/autorail.png 162 184 09 31 64 -31 7
-1 sprites/autorail.png 242 184 09 39 64 -31 -1
-1 sprites/autorail.png 322 184 09 31 64 -31 -1
-1 sprites/autorail.png 402 184 09 31 64 -31 7
-1 sprites/autorail.png 482 184 09 31 64 -31 -1
-1 sprites/autorail.png 562 184 09 31 64 -31 -1
-1 sprites/autorail.png 642 184 09 31 64 -31 -1
-1 sprites/autorail.png 722 184 09 23 64 -31 7
-1 sprites/autorail.png 2 248 09 15 64 -31 7
-1 sprites/autorail.png 82 248 09 39 64 -31 -1
-1 sprites/autorail.png 162 248 09 47 64 -31 -9
-1 sprites/autorail.png 242 248 09 31 64 -31 7
-1 sprites/autorail.png 322 248 09 31 64 -31 -1
-1 sprites/autorail.png 402 248 09 31 64 -31 -1
-1 sprites/autorail.png 482 248 09 31 64 -31 -1
-1 sprites/autorail.png 562 248 09 23 64 -31 7
-1 sprites/autorail.png 642 248 09 15 64 -31 7
-1 sprites/autorail.png 722 248 09 39 64 -31 -1
-1 sprites/autorail.png 2 312 09 47 64 -31 -9
-1 sprites/autorail.png 82 312 09 31 64 -31 -1
-1 sprites/autorail.png 162 312 09 31 64 -31 -1
-1 sprites/autorail.png 242 312 09 23 64 -31 7
-1 sprites/autorail.png 322 312 09 31 64 -31 7
-1 sprites/autorail.png 402 312 09 31 64 -31 7

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

View File

@@ -1,75 +0,0 @@
//
// $Id$
//
// This file is part of OpenTTD.
// OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
// OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
// See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
//
-1 * 0 0C "Canal graphics by George"
-1 * 3 05 08 41
-1 sprites/canals.png 66 8 09 23 64 -31 0
-1 sprites/canals.png 146 8 09 39 64 -31 -8
-1 sprites/canals.png 226 8 09 23 64 -31 0
-1 sprites/canals.png 306 8 09 39 64 -31 -8
-1 sprites/canals.png 386 8 09 59 64 -31 -36
-1 sprites/canals.png 466 8 09 65 64 -31 -34
-1 sprites/canals.png 546 8 09 59 64 -31 -36
-1 sprites/canals.png 626 8 09 59 64 -31 -28
-1 sprites/canals.png 706 8 09 62 64 -1 -51
-1 sprites/canals.png 2 88 09 62 64 -61 -43
-1 sprites/canals.png 82 88 09 62 64 -61 -51
-1 sprites/canals.png 162 88 09 62 64 -1 -43
-1 sprites/canals.png 242 88 09 59 64 -31 -28
-1 sprites/canals.png 322 88 09 65 66 -33 -34
-1 sprites/canals.png 402 88 09 59 64 -31 -28
-1 sprites/canals.png 482 88 09 59 64 -31 -28
-1 sprites/canals.png 562 88 09 62 64 -1 -43
-1 sprites/canals.png 642 88 09 60 64 -61 -43
-1 sprites/canals.png 722 88 09 62 66 -61 -43
-1 sprites/canals.png 2 168 09 60 64 -1 -43
-1 sprites/canals.png 82 168 09 59 64 -31 -28
-1 sprites/canals.png 162 168 09 59 64 -31 -28
-1 sprites/canals.png 242 168 09 59 64 -31 -28
-1 sprites/canals.png 322 168 09 59 64 -31 -28
-1 sprites/canals.png 402 168 09 60 64 -1 -43
-1 sprites/canals.png 482 168 09 62 68 -61 -43
-1 sprites/canals.png 562 168 09 60 64 -61 -43
-1 sprites/canals.png 642 168 09 62 64 -1 -43
-1 sprites/canals.png 722 168 09 59 64 -31 -36
-1 sprites/canals.png 2 248 09 65 64 -31 -34
-1 sprites/canals.png 82 248 09 59 64 -31 -36
-1 sprites/canals.png 162 248 09 59 64 -31 -28
-1 sprites/canals.png 242 248 09 62 64 -1 -51
-1 sprites/canals.png 322 248 09 62 64 -61 -43
-1 sprites/canals.png 402 248 09 62 64 -61 -51
-1 sprites/canals.png 482 248 09 62 64 -1 -43
-1 sprites/canals.png 562 248 09 59 64 -31 -28
-1 sprites/canals.png 642 248 09 65 66 -33 -34
-1 sprites/canals.png 722 248 09 59 64 -31 -28
-1 sprites/canals.png 2 328 09 59 64 -31 -28
-1 sprites/canals.png 82 328 09 62 64 -1 -43
-1 sprites/canals.png 162 328 09 60 64 -61 -43
-1 sprites/canals.png 242 328 09 62 66 -61 -43
-1 sprites/canals.png 322 328 09 60 64 -1 -43
-1 sprites/canals.png 402 328 09 59 64 -31 -28
-1 sprites/canals.png 482 328 09 59 64 -31 -28
-1 sprites/canals.png 562 328 09 59 64 -31 -28
-1 sprites/canals.png 642 328 09 59 64 -31 -28
-1 sprites/canals.png 722 328 09 60 64 -1 -43
-1 sprites/canals.png 2 408 09 62 68 -61 -43
-1 sprites/canals.png 82 408 09 60 64 -61 -43
-1 sprites/canals.png 162 408 09 62 64 -1 -43
-1 sprites/canals.png 242 408 09 37 70 -31 -6
-1 sprites/canals.png 322 408 09 37 70 -31 0
-1 sprites/canals.png 402 408 09 37 70 -37 0
-1 sprites/canals.png 482 408 09 37 70 -37 -6
-1 sprites/canals.png 562 408 09 31 64 -31 0
-1 sprites/canals.png 642 408 09 31 64 -31 0
-1 sprites/canals.png 722 408 09 31 64 -31 0
-1 sprites/canals.png 2 488 09 37 64 -31 -6
-1 sprites/canals.png 82 488 09 31 64 -31 0
-1 sprites/canals.png 162 488 09 31 64 -31 0
-1 sprites/canals.png 242 488 09 31 64 -31 0
-1 sprites/canals.png 322 488 09 37 64 -31 -6
-1 sprites/canals.png 402 488 09 20 20 0 0

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

View File

@@ -1,630 +0,0 @@
//
// $Id$
//
// This file is part of OpenTTD.
// OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
// OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
// See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
//
-1 * 0 0C "Characters, graphics by Bilbo and Jasper Vries"
//U+20AC Euro-sign
-1 * 0 12 03 00 01 AC 20 01 01 AC 20 02 01 AC 20
-1 sprites/chars.png 30 10 01 13 8 0 -2
-1 sprites/chars.png 30 30 01 6 5 0 0
-1 sprites/chars.png 30 40 01 21 15 0 -2
//U+0152 Latin Capital Ligature OE
//U+0153 Latin Small Ligature OE
-1 * 0 12 03 00 02 52 01 01 02 52 01 02 02 52 01
-1 sprites/chars.png 50 10 01 13 12 0 -2
-1 sprites/chars.png 300 10 01 13 9 0 -2
-1 sprites/chars.png 50 30 01 5 5 0 1
-1 sprites/chars.png 70 30 01 5 5 0 1
-1 sprites/chars.png 50 40 01 21 19 0 -2
-1 sprites/chars.png 70 40 01 21 13 0 -2
//U+0160 Latin Capital Letter S with caron
//U+0161 Latin Small Letter S with caron
-1 * 0 12 03 00 02 60 01 01 02 60 01 02 02 60 01
-1 sprites/chars.png 90 10 01 13 8 0 -2
-1 sprites/chars.png 110 10 01 13 6 0 -2
-1 sprites/chars.png 90 30 01 6 3 0 0
-1 sprites/chars.png 110 30 01 6 3 0 0
-1 sprites/chars.png 90 40 01 21 9 0 -2
-1 sprites/chars.png 110 40 01 21 6 0 -2
//U+017D Latin Capital Letter Z with caron
//U+017E Latin Small Letter Z with caron
-1 * 0 12 03 00 02 7D 01 01 02 7D 01 02 02 7D 01
-1 sprites/chars.png 120 10 01 13 8 0 -2
-1 sprites/chars.png 140 10 01 13 7 0 -2
-1 sprites/chars.png 120 30 01 6 3 0 0
-1 sprites/chars.png 140 30 01 6 3 0 0
-1 sprites/chars.png 120 40 01 21 12 0 -2
-1 sprites/chars.png 140 40 01 21 7 0 -2
//U+00B0 Degree symbol
-1 * 0 12 03 00 01 B0 00 01 01 B0 00 02 01 B0 00
-1 sprites/chars.png 150 10 01 13 6 0 -2
-1 sprites/chars.png 150 30 01 6 3 0 0
-1 sprites/chars.png 150 40 01 21 7 0 -2
//U+007B Left curly bracket
//U+007C Vertical bar
//U+007C Right Curly Bracket
//U+007D Tilde
-1 * 0 12 03 00 04 7B 00 01 04 7B 00 02 04 7B 00
-1 sprites/chars.png 160 10 01 13 5 0 -2
-1 sprites/chars.png 170 10 01 13 3 0 -2
-1 sprites/chars.png 180 10 01 13 5 0 -2
-1 sprites/chars.png 190 10 01 13 7 0 -2
-1 sprites/chars.png 160 30 01 5 3 0 1
-1 sprites/chars.png 170 30 01 5 1 0 1
-1 sprites/chars.png 180 30 01 5 3 0 1
-1 sprites/chars.png 190 30 01 5 4 0 1
-1 sprites/chars.png 160 40 01 21 6 0 -2
-1 sprites/chars.png 170 40 01 21 3 0 -2
-1 sprites/chars.png 180 40 01 21 6 0 -2
-1 sprites/chars.png 190 40 01 21 12 0 -2
//U+00B7 Middle dot
-1 * 0 12 03 00 01 B7 00 01 01 B7 00 02 01 B7 00
-1 sprites/chars.png 210 10 01 13 3 0 -2
-1 sprites/chars.png 210 30 01 5 1 0 1
-1 sprites/chars.png 210 40 01 21 2 0 -2
//U+0150 Latin Capital Letter O with double acute
//U+0151 Latin Small Letter O with double acute
-1 * 0 12 03 00 02 50 01 01 02 50 01 02 02 50 01
-1 sprites/chars.png 230 10 01 13 9 0 -2
-1 sprites/chars.png 320 10 01 13 6 0 -2
-1 sprites/chars.png 230 30 01 6 4 0 0
-1 sprites/chars.png 220 30 01 6 4 0 0
-1 sprites/chars.png 230 40 01 21 13 0 -2
-1 sprites/chars.png 220 40 01 21 9 0 -2
//U+0170 Latin Capital Letter U with double acute
//U+0171 Latin Small Letter U with double acute
-1 * 0 12 03 00 02 70 01 01 02 70 01 02 02 70 01
-1 sprites/chars.png 260 10 01 13 8 0 -2
-1 sprites/chars.png 250 10 01 13 7 0 -2
-1 sprites/chars.png 260 30 01 6 4 0 0
-1 sprites/chars.png 250 30 01 6 4 0 0
-1 sprites/chars.png 260 40 01 21 14 0 -2
-1 sprites/chars.png 250 40 01 21 9 0 -2
//U+010C Latin Capital Letter C with caron
//U+010D Latin Small Letter C with caron
-1 * 0 12 03 00 02 0C 01 01 02 0C 01 02 02 0C 01
-1 sprites/chars.png 30 70 01 13 9 0 -2
-1 sprites/chars.png 50 70 01 13 6 0 -2
-1 sprites/chars.png 30 90 01 6 3 0 0
-1 sprites/chars.png 50 90 01 6 3 0 0
-1 sprites/chars.png 30 100 01 21 12 0 -2
-1 sprites/chars.png 50 100 01 21 8 0 -2
//U+010E Latin Capital Letter D with caron
//U+010F Latin Small Letter D with caron
-1 * 0 12 03 00 02 0E 01 01 02 0E 01 02 02 0E 01
-1 sprites/chars.png 70 70 01 13 8 0 -2
-1 sprites/chars.png 90 70 01 13 9 0 -2
-1 sprites/chars.png 70 90 01 6 3 0 0
-1 sprites/chars.png 90 90 01 5 5 0 1
-1 sprites/chars.png 70 100 01 21 14 0 -2
-1 sprites/chars.png 90 100 01 21 12 0 -2
//U+011A Latin Capital Letter E with caron
//U+011B Latin Small Letter E with caron
-1 * 0 12 03 00 02 1A 01 01 02 1A 01 02 02 1A 01
-1 sprites/chars.png 110 70 01 13 8 0 -2
-1 sprites/chars.png 130 70 01 13 6 0 -2
-1 sprites/chars.png 110 90 01 6 3 0 0
-1 sprites/chars.png 130 90 01 6 3 0 0
-1 sprites/chars.png 110 100 01 21 13 0 -2
-1 sprites/chars.png 130 100 01 21 8 0 -2
//U+0147 Latin Capital Letter N with caron
//U+0148 Latin Small Letter N with caron
-1 * 0 12 03 00 02 47 01 01 02 47 01 02 02 47 01
-1 sprites/chars.png 150 70 01 13 8 0 -2
-1 sprites/chars.png 170 70 01 13 6 0 -2
-1 sprites/chars.png 150 90 01 6 4 0 0
-1 sprites/chars.png 170 90 01 6 3 0 0
-1 sprites/chars.png 150 100 01 21 16 0 -2
-1 sprites/chars.png 170 100 01 21 10 0 -2
//U+0158 Latin Capital Letter R with caron
//U+0159 Latin Small Letter R with caron
-1 * 0 12 03 00 02 58 01 01 02 58 01 02 02 58 01
-1 sprites/chars.png 190 70 01 13 8 0 -2
-1 sprites/chars.png 210 70 01 13 5 0 -2
-1 sprites/chars.png 190 90 01 6 3 0 0
-1 sprites/chars.png 210 90 01 6 3 0 0
-1 sprites/chars.png 190 100 01 21 12 0 -2
-1 sprites/chars.png 210 100 01 21 6 0 -2
//U+0164 Latin Capital Letter T with caron
//U+0165 Latin Small Letter T with caron
-1 * 0 12 03 00 02 64 01 01 02 64 01 02 02 64 01
-1 sprites/chars.png 230 70 01 13 9 0 -2
-1 sprites/chars.png 250 70 01 13 8 0 -2
-1 sprites/chars.png 230 90 01 6 3 0 0
-1 sprites/chars.png 250 90 01 5 4 0 1
-1 sprites/chars.png 230 100 01 21 13 0 -2
-1 sprites/chars.png 250 100 01 21 7 0 -2
//U+016E Latin Capital Letter U with ring above
//U+016F Latin Small Letter U with ring above
-1 * 0 12 03 00 02 6E 01 01 02 6E 01 02 02 6E 01
-1 sprites/chars.png 270 70 01 13 8 0 -2
-1 sprites/chars.png 290 70 01 13 6 0 -2
-1 sprites/chars.png 270 90 01 6 3 0 0
-1 sprites/chars.png 290 90 01 6 3 0 0
-1 sprites/chars.png 270 100 01 21 14 0 -2
-1 sprites/chars.png 290 100 01 21 8 0 -2
//U+0106 Latin Capital Letter C with acute
//U+0107 Latin Small Letter C with acute
-1 * 0 12 03 00 02 06 01 01 02 06 01 02 02 06 01
-1 sprites/chars.png 310 70 01 13 9 0 -2
-1 sprites/chars.png 330 70 01 13 6 0 -2
-1 sprites/chars.png 310 90 01 6 3 0 0
-1 sprites/chars.png 330 90 01 6 3 0 0
-1 sprites/chars.png 310 100 01 21 12 0 -2
-1 sprites/chars.png 330 100 01 21 8 0 -2
//U+0110 Latin Capital Letter D with stroke
//U+0111 Latin Small Letter D with stroke
-1 * 0 12 03 00 02 10 01 01 02 10 01 02 02 10 01
-1 sprites/chars.png 350 70 01 13 9 0 -2
-1 sprites/chars.png 370 70 01 13 7 0 -2
-1 sprites/chars.png 350 90 01 5 4 0 1
-1 sprites/chars.png 370 90 01 6 4 0 0
-1 sprites/chars.png 350 100 01 21 14 0 -2
-1 sprites/chars.png 370 100 01 21 9 0 -2
//U+013D Latin Capital Letter L with caron
//U+013E Latin Small Letter L with caron
-1 * 0 12 03 00 02 3D 01 01 02 3D 01 02 02 3D 01
-1 sprites/chars.png 390 70 01 13 7 0 -2
-1 sprites/chars.png 410 70 01 13 6 0 -2
-1 sprites/chars.png 390 90 01 5 5 0 1
-1 sprites/chars.png 410 90 01 5 3 0 1
-1 sprites/chars.png 390 100 01 21 12 0 -2
-1 sprites/chars.png 410 100 01 21 7 0 -2
//U+00B4 Acute accent
-1 * 0 12 03 00 01 B4 00 01 01 B4 00 02 01 B4 00
-1 sprites/chars.png 30 130 01 13 4 0 -2
-1 sprites/chars.png 30 150 01 5 1 0 1
-1 sprites/chars.png 30 160 01 21 3 0 -2
//U+00BD Vulgar fraction one half
-1 * 0 12 03 00 01 BD 00 01 01 BD 00 02 01 BD 00
-1 sprites/chars.png 40 130 01 13 11 0 -2
-1 sprites/chars.png 40 150 01 5 9 0 1
-1 sprites/chars.png 40 160 01 21 11 0 -2
//U+00B5 Micro sign
-1 * 0 12 03 00 01 B5 00 01 01 B5 00 02 01 B5 00
-1 sprites/chars.png 60 130 01 13 6 0 -2
-1 sprites/chars.png 60 150 01 5 3 0 1
-1 sprites/chars.png 60 160 01 21 10 0 -2
//U+00AA Feminine Ordinal Indicator
-1 * 0 12 03 00 01 AA 00 01 01 AA 00 02 01 AA 00
-1 sprites/chars.png 80 130 01 13 5 0 -2
-1 sprites/chars.png 80 150 01 5 1 0 1
-1 sprites/chars.png 80 160 01 21 6 0 -2
//U+2019 RIGHT SINGLE QUOTATION MARK
-1 * 0 12 03 00 01 19 20 01 01 19 20 02 01 19 20
-1 sprites/chars.png 90 130 01 13 3 0 -2
-1 sprites/chars.png 90 150 01 5 1 0 1
-1 sprites/chars.png 90 160 01 21 4 0 -2
//U+201E DOUBLE LOW-9 QUOTATION MARK
-1 * 0 12 03 00 01 1E 20 01 01 1E 20 02 01 1E 20
-1 sprites/chars.png 100 130 01 13 5 0 -2
-1 sprites/chars.png 100 150 01 5 3 0 1
-1 sprites/chars.png 100 160 01 21 8 0 -2
//U+201C LEFT DOUBLE QUOTATION MARK
-1 * 0 12 03 00 01 1C 20 01 01 1C 20 02 01 1C 20
-1 sprites/chars.png 110 130 01 13 5 0 -2
-1 sprites/chars.png 110 150 01 5 3 0 1
-1 sprites/chars.png 110 160 01 21 8 0 -2
//U+203A SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
-1 * 0 12 03 00 01 3A 20 01 01 3A 20 02 01 3A 20
-1 sprites/chars.png 760 130 01 13 5 0 -2
-1 sprites/chars.png 760 150 01 5 2 0 1
-1 sprites/chars.png 760 160 01 21 4 0 -2
//U+2013 EN DASH
-1 * 0 12 03 00 01 13 20 01 01 13 20 02 01 13 20
-1 sprites/chars.png 120 130 01 13 7 0 -2
-1 sprites/chars.png 120 150 01 5 4 0 1
-1 sprites/chars.png 120 160 01 21 9 0 -2
//U+0174 Latin Capital Letter W with circumflex
//U+0175 Latin Small Letter W with circumflex
-1 * 0 12 03 00 02 74 01 01 02 74 01 02 02 74 01
-1 sprites/chars.png 420 70 01 13 12 0 -2
-1 sprites/chars.png 440 70 01 13 10 0 -2
-1 sprites/chars.png 420 90 01 6 5 0 0
-1 sprites/chars.png 440 90 01 6 5 0 0
-1 sprites/chars.png 420 100 01 21 18 0 -2
-1 sprites/chars.png 440 100 01 21 13 0 -2
//U+0176 Latin Capital Letter Y with circumflex
//U+0177 Latin Small Letter Y with circumflex
-1 * 0 12 03 00 02 76 01 01 02 76 01 02 02 76 01
-1 sprites/chars.png 460 70 01 13 9 0 -2
-1 sprites/chars.png 480 70 01 13 7 0 -2
-1 sprites/chars.png 460 90 01 6 3 0 0
-1 sprites/chars.png 480 90 01 6 3 0 0
-1 sprites/chars.png 460 100 01 21 13 0 -2
-1 sprites/chars.png 480 100 01 21 9 0 -2
//U+0108 Latin Capital Letter C with circumflex
//U+0109 Latin Small Letter C with circumflex
-1 * 0 12 03 00 02 08 01 01 02 08 01 02 02 08 01
-1 sprites/chars.png 500 70 01 13 9 0 -2
-1 sprites/chars.png 520 70 01 13 6 0 -2
-1 sprites/chars.png 500 90 01 6 3 0 0
-1 sprites/chars.png 520 90 01 6 3 0 0
-1 sprites/chars.png 500 100 01 21 12 0 -2
-1 sprites/chars.png 520 100 01 21 8 0 -2
//U+011C Latin Capital Letter G with circumflex
//U+011D Latin Small Letter G with circumflex
-1 * 0 12 03 00 02 1C 01 01 02 1C 01 02 02 1C 01
-1 sprites/chars.png 540 70 01 13 9 0 -2
-1 sprites/chars.png 560 70 01 13 6 0 -2
-1 sprites/chars.png 540 90 01 6 3 0 0
-1 sprites/chars.png 560 90 01 6 3 0 0
-1 sprites/chars.png 540 100 01 21 13 0 -2
-1 sprites/chars.png 560 100 01 21 10 0 -2
//U+0124 Latin Capital Letter H with circumflex
//U+0125 Latin Small Letter H with circumflex
-1 * 0 12 03 00 02 24 01 01 02 24 01 02 02 24 01
-1 sprites/chars.png 580 70 01 13 8 0 -2
-1 sprites/chars.png 600 70 01 13 8 0 -2
-1 sprites/chars.png 580 90 01 6 3 0 0
-1 sprites/chars.png 600 90 01 6 3 0 0
-1 sprites/chars.png 580 100 01 21 15 0 -2
-1 sprites/chars.png 600 100 01 21 10 0 -2
//U+0134 Latin Capital Letter J with circumflex
//U+0135 Latin Small Letter J with circumflex
-1 * 0 12 03 00 02 34 01 01 02 34 01 02 02 34 01
-1 sprites/chars.png 620 70 01 13 7 0 -2
-1 sprites/chars.png 640 70 01 13 6 0 -2
-1 sprites/chars.png 620 90 01 6 3 0 0
-1 sprites/chars.png 640 90 01 6 3 0 0
-1 sprites/chars.png 620 100 01 21 8 0 -2
-1 sprites/chars.png 640 100 01 21 5 0 -2
//U+016C Latin Capital Letter U with breve
//U+016D Latin Small Letter U with breve
-1 * 0 12 03 00 02 6C 01 01 02 6C 01 02 02 6C 01
-1 sprites/chars.png 650 70 01 13 8 0 -2
-1 sprites/chars.png 670 70 01 13 6 0 -2
-1 sprites/chars.png 650 90 01 6 3 0 0
-1 sprites/chars.png 670 90 01 6 3 0 0
-1 sprites/chars.png 650 100 01 21 14 0 -2
-1 sprites/chars.png 670 100 01 21 9 0 -2
//U+0102 Latin Capital Letter A with breve
//U+0103 Latin Small Letter A with breve
-1 * 0 12 03 00 02 02 01 01 02 02 01 02 02 02 01
-1 sprites/chars.png 690 70 01 13 9 0 -2
-1 sprites/chars.png 710 70 01 13 7 0 -2
-1 sprites/chars.png 690 90 01 6 3 0 0
-1 sprites/chars.png 710 90 01 6 3 0 0
-1 sprites/chars.png 690 100 01 21 14 0 -2
-1 sprites/chars.png 710 100 01 21 8 0 -2
//U+015E Latin Capital Letter S with cedilla
//U+015F Latin Small Letter S with cedilla
-1 * 0 12 03 00 02 5E 01 01 02 5E 01 02 02 5E 01
-1 sprites/chars.png 730 70 01 13 8 0 -2
-1 sprites/chars.png 740 70 01 13 6 0 -2
-1 sprites/chars.png 730 90 01 6 3 0 1
-1 sprites/chars.png 740 90 01 6 3 0 1
-1 sprites/chars.png 730 100 01 21 9 0 -2
-1 sprites/chars.png 740 100 01 21 6 0 -2
//U+0162 Latin Capital Letter T with cedilla
//U+0163 Latin Small Letter T with cedilla
-1 * 0 12 03 00 02 62 01 01 02 62 01 02 02 62 01
-1 sprites/chars.png 750 70 01 13 9 0 -2
-1 sprites/chars.png 770 70 01 13 6 0 -2
-1 sprites/chars.png 750 90 01 6 3 0 1
-1 sprites/chars.png 770 90 01 6 2 0 1
-1 sprites/chars.png 750 100 01 21 13 0 -2
-1 sprites/chars.png 770 100 01 21 5 0 -2
//U+011E Latin Capital Letter G with breve
//U+011F Latin Small Letter G with breve
-1 * 0 12 03 00 02 1E 01 01 02 1E 01 02 02 1E 01
-1 sprites/chars.png 140 130 01 13 9 0 -2
-1 sprites/chars.png 160 130 01 13 6 0 -2
-1 sprites/chars.png 140 150 01 6 3 0 0
-1 sprites/chars.png 160 150 01 6 3 0 0
-1 sprites/chars.png 140 160 01 21 13 0 -2
-1 sprites/chars.png 160 160 01 21 10 0 -2
//U+0130 Latin Capital Letter I with dot above
//U+0131 Latin Small Letter dotless I
-1 * 0 12 03 00 02 30 01 01 02 30 01 02 02 30 01
-1 sprites/chars.png 180 130 01 13 3 0 -2
-1 sprites/chars.png 190 130 01 13 3 0 -2
-1 sprites/chars.png 180 150 01 6 1 0 0
-1 sprites/chars.png 190 150 01 5 1 0 1
-1 sprites/chars.png 180 160 01 21 7 0 -2
-1 sprites/chars.png 190 160 01 21 4 0 -2
//U+0122 Latin Capital Letter G with cedilla
//U+0123 Latin Small Letter G with cedilla
-1 * 0 12 03 00 02 22 01 01 02 22 01 02 02 22 01
-1 sprites/chars.png 200 130 01 13 9 0 -2
-1 sprites/chars.png 220 130 01 13 6 0 -2
-1 sprites/chars.png 200 150 01 6 3 0 0
-1 sprites/chars.png 220 150 01 6 3 0 1
-1 sprites/chars.png 200 160 01 21 13 0 -2
-1 sprites/chars.png 220 160 01 21 10 0 -2
//U+0136 Latin Capital Letter K with cedilla
//U+0137 Latin Small Letter K with cedilla
-1 * 0 12 03 00 02 36 01 01 02 36 01 02 02 36 01
-1 sprites/chars.png 240 130 01 13 8 0 -2
-1 sprites/chars.png 260 130 01 13 7 0 -2
-1 sprites/chars.png 240 150 01 6 3 0 1
-1 sprites/chars.png 260 150 01 6 3 0 1
-1 sprites/chars.png 240 160 01 21 14 0 -2
-1 sprites/chars.png 260 160 01 21 10 0 -2
//U+013B Latin Capital Letter L with cedilla
//U+013C Latin Small Letter L with cedilla
-1 * 0 12 03 00 02 3B 01 01 02 3B 01 02 02 3B 01
-1 sprites/chars.png 280 130 01 13 7 0 -2
-1 sprites/chars.png 300 130 01 13 4 0 -2
-1 sprites/chars.png 280 150 01 6 3 0 1
-1 sprites/chars.png 300 150 01 6 2 0 1
-1 sprites/chars.png 280 160 01 21 12 0 -2
-1 sprites/chars.png 300 160 01 21 5 0 -2
//U+0145 Latin Capital Letter N with cedilla
//U+0146 Latin Small Letter N with cedilla
-1 * 0 12 03 00 02 45 01 01 02 45 01 02 02 45 01
-1 sprites/chars.png 310 130 01 13 8 0 -2
-1 sprites/chars.png 330 130 01 13 6 0 -2
-1 sprites/chars.png 310 150 01 6 4 0 1
-1 sprites/chars.png 330 150 01 6 3 0 1
-1 sprites/chars.png 310 160 01 21 16 0 -2
-1 sprites/chars.png 330 160 01 21 10 0 -2
//U+0100 Latin Capital Letter A with macron
//U+0101 Latin Small Letter A with macron
-1 * 0 12 03 00 02 00 01 01 02 00 01 02 02 00 01
-1 sprites/chars.png 350 130 01 13 9 0 -2
-1 sprites/chars.png 370 130 01 13 7 0 -2
-1 sprites/chars.png 350 150 01 6 3 0 0
-1 sprites/chars.png 370 150 01 6 3 0 0
-1 sprites/chars.png 350 160 01 21 14 0 -2
-1 sprites/chars.png 370 160 01 21 8 0 -2
//U+0112 Latin Capital Letter E with macron
//U+0113 Latin Small Letter E with macron
-1 * 0 12 03 00 02 12 01 01 02 12 01 02 02 12 01
-1 sprites/chars.png 380 130 01 13 8 0 -2
-1 sprites/chars.png 400 130 01 13 6 0 -2
-1 sprites/chars.png 380 150 01 6 3 0 0
-1 sprites/chars.png 400 150 01 6 3 0 0
-1 sprites/chars.png 380 160 01 21 13 0 -2
-1 sprites/chars.png 400 160 01 21 8 0 -2
//U+012A Latin Capital Letter I with macron
//U+012B Latin Small Letter I with macron
-1 * 0 12 03 00 02 2A 01 01 02 2A 01 02 02 2A 01
-1 sprites/chars.png 410 130 01 13 5 0 -2
-1 sprites/chars.png 420 130 01 13 5 0 -2
-1 sprites/chars.png 410 150 01 6 3 0 0
-1 sprites/chars.png 420 150 01 6 3 0 0
-1 sprites/chars.png 410 160 01 21 7 0 -2
-1 sprites/chars.png 420 160 01 21 4 0 -2
//U+016A Latin Capital Letter U with macron
//U+016B Latin Small Letter U with macron
-1 * 0 12 03 00 02 6A 01 01 02 6A 01 02 02 6A 01
-1 sprites/chars.png 430 130 01 13 8 0 -2
-1 sprites/chars.png 450 130 01 13 6 0 -2
-1 sprites/chars.png 430 150 01 6 3 0 0
-1 sprites/chars.png 450 150 01 6 3 0 0
-1 sprites/chars.png 430 160 01 21 14 0 -2
-1 sprites/chars.png 450 160 01 21 9 0 -2
//U+0143 Latin Capital Letter N with acute
//U+0144 Latin Small Letter N with acute
-1 * 0 12 03 00 02 43 01 01 02 43 01 02 02 43 01
-1 sprites/chars.png 470 130 01 13 8 0 -2
-1 sprites/chars.png 490 130 01 13 6 0 -2
-1 sprites/chars.png 470 150 01 6 4 0 0
-1 sprites/chars.png 490 150 01 6 3 0 0
-1 sprites/chars.png 470 160 01 21 16 0 -2
-1 sprites/chars.png 490 160 01 21 10 0 -2
//U+015A Latin Capital Letter S with acute
//U+015B Latin Small Letter S with acute
-1 * 0 12 03 00 02 5A 01 01 02 5A 01 02 02 5A 01
-1 sprites/chars.png 510 130 01 13 8 0 -2
-1 sprites/chars.png 520 130 01 13 6 0 -2
-1 sprites/chars.png 510 150 01 6 3 0 0
-1 sprites/chars.png 520 150 01 6 3 0 0
-1 sprites/chars.png 510 160 01 21 9 0 -2
-1 sprites/chars.png 520 160 01 21 6 0 -2
//U+017B Latin Capital Letter Z with dot above
//U+017C Latin Small Letter Z with dot above
-1 * 0 12 03 00 02 7B 01 01 02 7B 01 02 02 7B 01
-1 sprites/chars.png 530 130 01 13 8 0 -2
-1 sprites/chars.png 550 130 01 13 7 0 -2
-1 sprites/chars.png 530 150 01 6 3 0 0
-1 sprites/chars.png 550 150 01 6 3 0 0
-1 sprites/chars.png 530 160 01 21 12 0 -2
-1 sprites/chars.png 550 160 01 21 7 0 -2
//U+0179 Latin Capital Letter Z with acute
//U+017A Latin Small Letter Z with acute
-1 * 0 12 03 00 02 79 01 01 02 79 01 02 02 79 01
-1 sprites/chars.png 770 130 01 13 8 0 -2
-1 sprites/chars.png 790 130 01 13 7 0 -2
-1 sprites/chars.png 770 150 01 6 3 0 0
-1 sprites/chars.png 790 150 01 6 3 0 0
-1 sprites/chars.png 770 160 01 21 12 0 -2
-1 sprites/chars.png 790 160 01 21 7 0 -2
//U+0139 Latin Capital Letter L with acute
//U+013A Latin Small Letter L with acute
-1 * 0 12 03 00 02 39 01 01 02 39 01 02 02 39 01
-1 sprites/chars.png 30 190 01 13 7 0 -2
-1 sprites/chars.png 50 190 01 13 4 0 -2
-1 sprites/chars.png 30 210 01 6 3 0 0
-1 sprites/chars.png 50 210 01 6 2 0 0
-1 sprites/chars.png 30 220 01 21 12 0 -2
-1 sprites/chars.png 50 220 01 21 5 0 -2
//U+0141 Latin Capital Letter L with stroke
//U+0142 Latin Small Letter L with stroke
-1 * 0 12 03 00 02 41 01 01 02 41 01 02 02 41 01
-1 sprites/chars.png 560 130 01 13 8 0 -2
-1 sprites/chars.png 580 130 01 13 5 0 -2
-1 sprites/chars.png 560 150 01 5 4 0 1
-1 sprites/chars.png 580 150 01 5 3 0 1
-1 sprites/chars.png 560 160 01 21 12 0 -2
-1 sprites/chars.png 580 160 01 21 6 0 -2
//U+0104 Latin Capital Letter A with ogonek
//U+0105 Latin Small Letter A with ogonek
-1 * 0 12 03 00 02 04 01 01 02 04 01 02 02 04 01
-1 sprites/chars.png 590 130 01 13 9 0 -2
-1 sprites/chars.png 610 130 01 13 7 0 -2
-1 sprites/chars.png 590 150 01 6 3 0 1
-1 sprites/chars.png 610 150 01 6 3 0 1
-1 sprites/chars.png 590 160 01 21 14 0 -2
-1 sprites/chars.png 610 160 01 21 8 0 -2
//U+0118 Latin Capital Letter E with ogonek
//U+0119 Latin Small Letter E with ogonek
-1 * 0 12 03 00 02 18 01 01 02 18 01 02 02 18 01
-1 sprites/chars.png 620 130 01 13 8 0 -2
-1 sprites/chars.png 640 130 01 13 6 0 -2
-1 sprites/chars.png 620 150 01 6 3 0 1
-1 sprites/chars.png 640 150 01 6 3 0 1
-1 sprites/chars.png 620 160 01 21 13 0 -2
-1 sprites/chars.png 640 160 01 21 8 0 -2
//U+012E Latin Capital Letter I with ogonek
//U+012F Latin Small Letter I with ogonek
-1 * 0 12 03 00 02 2E 01 01 02 2E 01 02 02 2E 01
-1 sprites/chars.png 650 130 01 13 4 0 -2
-1 sprites/chars.png 660 130 01 13 4 0 -2
-1 sprites/chars.png 650 150 01 6 2 0 1
-1 sprites/chars.png 660 150 01 6 2 0 1
-1 sprites/chars.png 650 160 01 21 7 0 -2
-1 sprites/chars.png 660 160 01 21 4 0 -2
//U+0172 Latin Capital Letter U with ogonek
//U+0173 Latin Small Letter U with ogonek
-1 * 0 12 03 00 02 72 01 01 02 72 01 02 02 72 01
-1 sprites/chars.png 670 130 01 13 8 0 -2
-1 sprites/chars.png 690 130 01 13 7 0 -2
-1 sprites/chars.png 670 150 01 6 3 0 1
-1 sprites/chars.png 690 150 01 6 3 0 1
-1 sprites/chars.png 670 160 01 21 14 0 -2
-1 sprites/chars.png 690 160 01 21 9 0 -2
//U+0116 Latin Capital Letter E with dot above
//U+0117 Latin Small Letter E with dot above
-1 * 0 12 03 00 02 16 01 01 02 16 01 02 02 16 01
-1 sprites/chars.png 710 130 01 13 8 0 -2
-1 sprites/chars.png 730 130 01 13 6 0 -2
-1 sprites/chars.png 710 150 01 6 3 0 0
-1 sprites/chars.png 730 150 01 6 3 0 0
-1 sprites/chars.png 710 160 01 21 13 0 -2
-1 sprites/chars.png 730 160 01 21 8 0 -2
//U+015C Latin Capital Letter S with circumflex
//U+015D Latin Small Letter S with circumflex
-1 * 0 12 03 00 02 5C 01 01 02 5C 01 02 02 5C 01
-1 sprites/chars.png 740 130 01 13 8 0 -2
-1 sprites/chars.png 750 130 01 13 6 0 -2
-1 sprites/chars.png 740 150 01 6 3 0 0
-1 sprites/chars.png 750 150 01 6 3 0 0
-1 sprites/chars.png 740 160 01 21 9 0 -2
-1 sprites/chars.png 750 160 01 21 6 0 -2
// Large font only
//U+00C6 Latin Capital letter AE
-1 * 0 12 01 02 01 C6 00
-1 sprites/chars.png 300 40 01 21 19 0 -2
//U+00E6 Latin Small Letter AE
-1 * 0 12 01 02 01 E6 00
-1 sprites/chars.png 280 40 01 21 13 0 -2
//U+00D8 Latin Capital letter O with stroke
-1 * 0 12 01 02 01 D8 00
-1 sprites/chars.png 330 40 01 21 13 0 -2
//U+00F8 Latin Small Letter O with stroke
-1 * 0 12 01 02 01 F8 00
-1 sprites/chars.png 320 40 01 21 9 0 -2
//U+00D0 Latin Capital letter Eth
-1 * 0 12 01 02 01 D0 00
-1 sprites/chars.png 350 40 01 21 14 0 -2
//U+00F0 Latin Small Letter Eth
-1 * 0 12 01 02 01 F0 00
-1 sprites/chars.png 370 40 01 21 9 0 -2
//U+00DE Latin Capital Letter Thorn
-1 * 0 12 01 02 01 DE 00
-1 sprites/chars.png 380 40 01 21 14 0 -2
//U+00FE Latin Small Letter Thorn
-1 * 0 12 01 02 01 FE 00
-1 sprites/chars.png 400 40 01 21 14 0 -2
//U+00A7 Section sign
-1 * 0 12 01 02 01 A7 00
-1 sprites/chars.png 420 40 01 21 9 0 -2
//U+00A9 Copyright sign
-1 * 0 12 01 02 01 A9 00
-1 sprites/chars.png 430 40 01 21 16 0 -2
//U+00AE Registered sign
-1 * 0 12 01 02 01 AE 00
-1 sprites/chars.png 150 40 01 21 7 0 -2
//U+00B1 Plus-minus sign
//U+00B2 Superscript two
//U+00B3 Superscript three
-1 * 0 12 01 02 03 B1 00
-1 sprites/chars.png 480 40 01 21 9 0 -2
-1 sprites/chars.png 490 40 01 21 6 0 -2
-1 sprites/chars.png 500 40 01 21 5 0 -2
//U+00D7 Multiplication sign
-1 * 0 12 01 02 01 D7 00
-1 sprites/chars.png 510 40 01 21 8 0 -2
//U+00F7 Division sign
-1 * 0 12 01 02 01 F7 00
-1 sprites/chars.png 520 40 01 21 9 0 -2

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.2 KiB

View File

@@ -1,58 +0,0 @@
//
// $Id$
//
// This file is part of OpenTTD.
// OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
// OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
// See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
//
-1 * 0 0C "Electrified rail by Michael Blunck"
-1 * 3 05 05 30
-1 sprites/elrails.png 66 8 01 16 32 -29 -2
-1 sprites/elrails.png 114 8 01 16 32 -1 -2
-1 sprites/elrails.png 162 8 01 1 32 -1 -2
-1 sprites/elrails.png 210 8 01 16 1 0 -3
-1 sprites/elrails.png 226 8 01 24 32 -29 -2
-1 sprites/elrails.png 274 8 01 9 32 -1 6
-1 sprites/elrails.png 322 8 01 9 32 -29 6
-1 sprites/elrails.png 370 8 01 24 32 -1 -2
-1 sprites/elrails.png 418 8 01 16 32 -29 -2
-1 sprites/elrails.png 466 8 01 16 32 -1 -2
-1 sprites/elrails.png 514 8 01 1 32 -1 -2
-1 sprites/elrails.png 562 8 01 16 1 0 -3
-1 sprites/elrails.png 578 8 01 24 32 -29 -2
-1 sprites/elrails.png 626 8 01 9 32 -1 6
-1 sprites/elrails.png 674 8 01 9 32 -29 6
-1 sprites/elrails.png 722 8 01 24 32 -1 -2
-1 sprites/elrails.png 2 56 01 16 32 -29 -2
-1 sprites/elrails.png 50 56 01 16 32 -1 -2
-1 sprites/elrails.png 98 56 01 1 32 -1 -2
-1 sprites/elrails.png 146 56 01 16 1 0 -3
-1 sprites/elrails.png 162 56 01 24 32 -29 -2
-1 sprites/elrails.png 210 56 01 9 32 -1 6
-1 sprites/elrails.png 258 56 01 9 32 -29 6
-1 sprites/elrails.png 306 56 01 24 32 -1 -2
-1 sprites/elrails.png 354 56 01 8 16 -29 6
-1 sprites/elrails.png 386 56 01 8 16 -1 -2
-1 sprites/elrails.png 418 56 01 8 16 -13 -2
-1 sprites/elrails.png 450 56 01 8 16 15 6
-1 sprites/elrails.png 482 56 01 16 8 -7 -14
-1 sprites/elrails.png 498 56 01 18 8 0 -17
-1 sprites/elrails.png 514 56 01 16 8 0 -14
-1 sprites/elrails.png 530 56 01 18 8 -7 -17
-1 sprites/elrails.png 546 56 01 16 2 0 -15
-1 sprites/elrails.png 562 56 01 18 2 0 -16
-1 sprites/elrails.png 578 56 01 16 8 0 -15
-1 sprites/elrails.png 594 56 01 16 8 -7 -15
-1 sprites/elrails.png 610 56 09 16 13 4 2
-1 sprites/elrails.png 642 56 09 16 20 0 2
-1 sprites/elrails.png 674 56 09 16 20 0 2
-1 sprites/elrails.png 706 56 09 16 20 0 2
-1 sprites/elrails.png 738 56 03 30 38 -3 -14
-1 sprites/elrails.png 2 104 03 44 72 -16 -8
-1 sprites/elrails.png 82 104 03 35 44 -21 -2
-1 sprites/elrails.png 146 104 03 44 72 -16 -35
-1 sprites/elrails.png 226 104 09 19 20 0 1
-1 sprites/elrails.png 258 104 03 32 32 0 0
-1 sprites/elrails.png 306 104 01 22 12 -9 -18
-1 sprites/elrails.png 338 104 01 22 12 -1 -18

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 KiB

View File

@@ -1,164 +0,0 @@
//
// $Id$
//
// This file is part of OpenTTD.
// OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
// OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
// See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
//
-1 * 0 0C "Fixing (alignment) bugs in the orignal graphics. By Addi."
-1 * 6 07 83 01 \7= 03 69
// Different grahpics for same wood truck
-1 * 14 0A 04 01 87 0C 01 89 0C 01 07 0E 01 09 0E
-1 sprites/fix_graphics.png 82 8 09 16 22 -6 -7
-1 sprites/fix_graphics.png 114 8 09 16 22 -14 -7
-1 sprites/fix_graphics.png 146 8 09 16 22 -6 -7
-1 sprites/fix_graphics.png 178 8 09 16 22 -14 -7
// Different grahpics for lots of trucks
-1 * 5 0A 01 28 C4 0D
-1 sprites/fix_graphics.png 226 8 01 18 8 -3 -10
-1 sprites/fix_graphics.png 242 8 09 16 20 -14 -7
-1 sprites/fix_graphics.png 274 8 01 12 28 -14 -6
-1 sprites/fix_graphics.png 322 8 09 16 20 -6 -7
-1 sprites/fix_graphics.png 354 8 01 18 8 -3 -10
-1 sprites/fix_graphics.png 370 8 09 16 20 -14 -7
-1 sprites/fix_graphics.png 402 8 01 12 28 -14 -6
-1 sprites/fix_graphics.png 450 8 09 16 20 -6 -7
-1 sprites/fix_graphics.png 482 8 01 18 8 -3 -10
-1 sprites/fix_graphics.png 498 8 09 16 20 -14 -7
-1 sprites/fix_graphics.png 530 8 01 12 28 -14 -6
-1 sprites/fix_graphics.png 578 8 09 16 20 -6 -7
-1 sprites/fix_graphics.png 610 8 01 18 8 -3 -10
-1 sprites/fix_graphics.png 626 8 09 16 20 -14 -7
-1 sprites/fix_graphics.png 658 8 01 12 28 -14 -6
-1 sprites/fix_graphics.png 706 8 09 16 20 -6 -7
-1 sprites/fix_graphics.png 738 8 01 18 8 -3 -10
-1 sprites/fix_graphics.png 754 8 09 16 22 -14 -7
-1 sprites/fix_graphics.png 2 40 01 12 28 -14 -6
-1 sprites/fix_graphics.png 50 40 09 16 22 -6 -7
-1 sprites/fix_graphics.png 82 40 01 18 8 -3 -10
-1 sprites/fix_graphics.png 98 40 09 16 22 -14 -7
-1 sprites/fix_graphics.png 130 40 01 12 28 -14 -6
-1 sprites/fix_graphics.png 178 40 09 16 22 -6 -7
-1 sprites/fix_graphics.png 210 40 01 18 8 -3 -10
-1 sprites/fix_graphics.png 226 40 09 16 22 -14 -7
-1 sprites/fix_graphics.png 258 40 01 12 28 -14 -6
-1 sprites/fix_graphics.png 306 40 09 16 22 -6 -7
-1 sprites/fix_graphics.png 338 40 01 18 8 -3 -10
-1 sprites/fix_graphics.png 354 40 09 16 22 -14 -7
-1 sprites/fix_graphics.png 386 40 01 12 28 -14 -6
-1 sprites/fix_graphics.png 434 40 09 16 22 -6 -7
-1 sprites/fix_graphics.png 466 40 01 18 8 -3 -10
-1 sprites/fix_graphics.png 482 40 09 16 20 -14 -7
-1 sprites/fix_graphics.png 514 40 01 12 28 -14 -6
-1 sprites/fix_graphics.png 562 40 09 16 20 -6 -7
-1 sprites/fix_graphics.png 594 40 01 18 8 -3 -10
-1 sprites/fix_graphics.png 610 40 09 16 20 -14 -7
-1 sprites/fix_graphics.png 642 40 01 12 28 -14 -6
-1 sprites/fix_graphics.png 690 40 09 16 20 -6 -7
// Different grahpics for same truck
-1 * 14 0A 04 01 9D 0C 01 9F 0C 01 A1 0C 01 A3 0C
-1 sprites/fix_graphics.png 738 40 09 16 22 -14 -7
-1 sprites/fix_graphics.png 770 40 09 16 22 -6 -7
-1 sprites/fix_graphics.png 2 72 09 16 22 -14 -7
-1 sprites/fix_graphics.png 34 72 09 16 22 -6 -7
// Different grahpics for same paper truck
-1 * 14 0A 04 01 5D 0D 01 5F 0D 01 61 0D 01 63 0D
-1 sprites/fix_graphics.png 82 72 09 16 22 -14 -7
-1 sprites/fix_graphics.png 114 72 09 17 22 -5 -7
-1 sprites/fix_graphics.png 146 72 09 17 22 -14 -8
-1 sprites/fix_graphics.png 178 72 09 16 22 -6 -7
// Different grahpics for same paper truck (truck #2)
-1 * 14 0A 04 01 1D 0E 01 1F 0E 01 21 0E 01 23 0E
-1 sprites/fix_graphics.png 226 72 09 16 22 -14 -7
-1 sprites/fix_graphics.png 258 72 09 16 22 -6 -7
-1 sprites/fix_graphics.png 290 72 09 16 22 -14 -7
-1 sprites/fix_graphics.png 322 72 09 16 22 -6 -7
// Misaligned monorail bridge heads
-1 * 8 0A 02 01 EA 10 02 EC 10
-1 sprites/fix_graphics.png 370 72 09 35 48 -23 -7
-1 sprites/fix_graphics.png 434 72 09 35 48 -23 -7
-1 sprites/fix_graphics.png 498 72 09 21 49 -24 3
// Improperly cut cinema
-1 * 5 0A 01 02 34 11
-1 sprites/fix_graphics.png 578 72 09 31 64 -31 0
-1 sprites/fix_graphics.png 658 72 09 47 50 -28 -20
// Misaligned undergrounds for temperate monorail
-1 * 6 07 83 01 \7! 00 06
-1 * 5 0A 01 05 4C 04
-1 sprites/fix_graphics.png 2 136 09 31 64 -31 0
-1 sprites/fix_graphics.png 82 136 09 31 64 -31 0
-1 sprites/fix_graphics.png 162 136 09 31 64 -31 0
-1 sprites/fix_graphics.png 242 136 09 31 64 -31 0
-1 sprites/fix_graphics.png 322 136 09 31 64 -31 0
// Misaligned undergrounds for arctic monorail
-1 * 6 07 83 01 \7! 01 06
-1 * 5 0A 01 05 4C 04
-1 sprites/fix_graphics.png 434 136 09 31 64 -31 0
-1 sprites/fix_graphics.png 514 136 09 31 64 -31 0
-1 sprites/fix_graphics.png 594 136 09 31 64 -31 0
-1 sprites/fix_graphics.png 674 136 09 31 64 -31 0
-1 sprites/fix_graphics.png 2 184 09 31 64 -31 0
// Misaligned undergrounds for tropical/desert monorail/maglev
-1 * 6 07 83 01 \7! 02 10
-1 * 11 0A 03 05 4C 04 05 66 04 05 B8 04
-1 sprites/fix_graphics.png 114 184 09 31 64 -31 0
-1 sprites/fix_graphics.png 194 184 09 31 64 -31 0
-1 sprites/fix_graphics.png 274 184 09 31 64 -31 0
-1 sprites/fix_graphics.png 354 184 09 31 64 -31 0
-1 sprites/fix_graphics.png 434 184 09 31 64 -31 0
-1 sprites/fix_graphics.png 514 184 09 31 64 -31 0
-1 sprites/fix_graphics.png 594 184 09 31 64 -31 0
-1 sprites/fix_graphics.png 674 184 09 31 64 -31 0
-1 sprites/fix_graphics.png 2 232 09 31 64 -31 0
-1 sprites/fix_graphics.png 82 232 09 31 64 -31 0
-1 sprites/fix_graphics.png 162 232 09 31 64 -31 0
-1 sprites/fix_graphics.png 242 232 09 31 64 -31 0
-1 sprites/fix_graphics.png 322 232 09 31 64 -31 0
-1 sprites/fix_graphics.png 402 232 09 31 64 -31 0
-1 sprites/fix_graphics.png 482 232 09 31 64 -31 0
// Misaligned monorail snowed X crossing
-1 * 6 07 83 01 \7! 01 02
-1 * 5 0A 01 01 65 04
-1 sprites/fix_graphics.png 594 232 09 31 64 -31 0
// Floating tropical house
-1 * 6 07 83 01 \7! 02 02
-1 * 5 0A 01 01 FF 11
-1 sprites/fix_graphics.png 706 232 09 47 64 -31 -16
// Clipped vehicle in the original German DOS graphics
-1 * 6 07 83 01 \7! 03 02
-1 * 5 0A 01 01 5D 0C
-1 sprites/fix_graphics.png 18 296 09 16 20 -14 -7
// Graphics metadata pixel higher than actual graphics
-1 * 6 12 01 00 01 AC E2
-1 sprites/fix_graphics.png 66 296 01 10 9 0 0
// Non-toyland specific
-1 * 6 07 83 01 \7= 03 0A
// Grahpics for the tubular bridge pillars had incorrect offsets
-1 * 5 0A 01 04 05 0A
-1 sprites/fix_graphics.png 98 296 09 9 4 2 -1
-1 sprites/fix_graphics.png 114 296 09 9 4 2 -1
-1 sprites/fix_graphics.png 130 296 09 9 4 -4 0
-1 sprites/fix_graphics.png 146 296 09 9 4 -4 0
// Grahpics for the cantilever bridge pillars had incorrect offsets
-1 * 5 0A 01 04 DD 09
-1 sprites/fix_graphics.png 178 296 09 11 10 2 -3
-1 sprites/fix_graphics.png 194 296 09 12 10 2 -2
-1 sprites/fix_graphics.png 210 296 09 11 10 -10 -1
-1 sprites/fix_graphics.png 226 296 09 11 10 -10 -1
// Toyland specific
-1 * 6 07 83 01 \7! 03 0A
// Grahpics for the toyland tubular bridge pillars had incorrect offsets
-1 * 5 0A 01 04 05 0A
-1 sprites/fix_graphics.png 248 296 09 9 4 2 -1
-1 sprites/fix_graphics.png 264 296 09 9 4 2 -1
-1 sprites/fix_graphics.png 280 296 09 9 4 -4 0
-1 sprites/fix_graphics.png 296 296 09 9 4 -4 0
// Grahpics for the toyland cantilever bridge pillars had incorrect offsets
-1 * 5 0A 01 04 DD 09
-1 sprites/fix_graphics.png 328 296 09 11 10 2 -3
-1 sprites/fix_graphics.png 344 296 09 12 10 2 -2
-1 sprites/fix_graphics.png 360 296 09 11 10 -10 -1
-1 sprites/fix_graphics.png 376 296 09 11 10 -10 -1

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

View File

@@ -1,46 +0,0 @@
//
// $Id$
//
// This file is part of OpenTTD.
// OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
// OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
// See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
//
-1 * 0 0C "Flag graphics"
-1 * 3 05 14 24
-1 sprites/flags.png 34 8 09 8 11 0 0
-1 sprites/flags.png 50 8 09 8 11 0 0
-1 sprites/flags.png 66 8 09 8 11 0 0
-1 sprites/flags.png 82 8 09 8 11 0 0
-1 sprites/flags.png 98 8 09 8 11 0 0
-1 sprites/flags.png 114 8 09 8 11 0 0
-1 sprites/flags.png 130 8 09 8 11 0 0
-1 sprites/flags.png 146 8 09 8 11 0 0
-1 sprites/flags.png 162 8 09 8 11 0 0
-1 sprites/flags.png 178 8 09 8 11 0 0
-1 sprites/flags.png 194 8 09 8 11 0 0
-1 sprites/flags.png 210 8 09 8 11 0 0
-1 sprites/flags.png 226 8 09 8 11 0 0
-1 sprites/flags.png 242 8 09 8 11 0 0
-1 sprites/flags.png 258 8 09 8 11 0 0
-1 sprites/flags.png 274 8 09 8 11 0 0
-1 sprites/flags.png 290 8 09 8 11 0 0
-1 sprites/flags.png 306 8 09 8 11 0 0
-1 sprites/flags.png 322 8 09 8 11 0 0
-1 sprites/flags.png 338 8 09 8 11 0 0
-1 sprites/flags.png 354 8 09 8 11 0 0
-1 sprites/flags.png 370 8 09 8 11 0 0
-1 sprites/flags.png 386 8 09 8 11 0 0
-1 sprites/flags.png 402 8 09 8 11 0 0
-1 sprites/flags.png 418 8 09 8 11 0 0
-1 sprites/flags.png 434 8 09 8 11 0 0
-1 sprites/flags.png 450 8 09 8 11 0 0
-1 sprites/flags.png 466 8 09 8 11 0 0
-1 sprites/flags.png 482 8 09 8 11 0 0
-1 sprites/flags.png 498 8 09 8 11 0 0
-1 sprites/flags.png 514 8 09 8 11 0 0
-1 sprites/flags.png 530 8 09 8 11 0 0
-1 sprites/flags.png 546 8 09 8 11 0 0
-1 sprites/flags.png 562 8 09 8 11 0 0
-1 sprites/flags.png 578 8 09 8 11 0 0
-1 sprites/flags.png 594 8 09 8 11 0 0

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

View File

@@ -1,377 +0,0 @@
//
// $Id$
//
// This file is part of OpenTTD.
// OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
// OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
// See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
//
-1 * 0 0C "Foundations. Non-halftile ones by Marcin Grzegorczyk"
-1 * 6 07 83 01 \7! 00 5B
-1 * 3 05 06 5A
-1 sprites/foundations.png 82 8 09 40 64 -31 -9
-1 sprites/foundations.png 162 8 09 40 64 -31 -9
-1 sprites/foundations.png 242 8 09 32 64 -31 -9
-1 sprites/foundations.png 322 8 09 32 64 -31 -9
-1 sprites/foundations.png 402 8 09 40 64 -31 -9
-1 sprites/foundations.png 482 8 09 40 64 -31 -9
-1 sprites/foundations.png 562 8 09 40 64 -31 -9
-1 sprites/foundations.png 642 8 09 40 64 -31 -9
-1 sprites/foundations.png 722 8 09 40 64 -31 -9
-1 sprites/foundations.png 2 72 09 32 64 -31 -9
-1 sprites/foundations.png 82 72 09 32 64 -31 -9
-1 sprites/foundations.png 162 72 09 40 64 -31 -9
-1 sprites/foundations.png 242 72 09 40 64 -31 -9
-1 sprites/foundations.png 322 72 09 32 64 -31 -9
-1 sprites/foundations.png 402 72 09 32 64 -31 -9
-1 sprites/foundations.png 482 72 09 40 64 -31 -9
-1 sprites/foundations.png 562 72 09 40 64 -31 -9
-1 sprites/foundations.png 642 72 09 32 64 -31 -9
-1 sprites/foundations.png 722 72 09 32 64 -31 -9
-1 sprites/foundations.png 2 136 09 40 64 -31 -9
-1 sprites/foundations.png 82 136 09 40 64 -31 -9
-1 sprites/foundations.png 162 136 09 32 64 -31 -9
-1 sprites/foundations.png 242 136 09 40 64 -31 -9
-1 sprites/foundations.png 322 136 09 40 64 -31 -9
-1 sprites/foundations.png 402 136 09 32 64 -31 -9
-1 sprites/foundations.png 482 136 09 32 64 -31 -9
-1 sprites/foundations.png 562 136 09 40 64 -31 -9
-1 sprites/foundations.png 642 136 09 40 64 -31 -9
-1 sprites/foundations.png 722 136 09 40 64 -31 -9
-1 sprites/foundations.png 2 200 09 40 64 -31 -9
-1 sprites/foundations.png 82 200 09 40 64 -31 -9
-1 sprites/foundations.png 162 200 09 32 64 -31 -9
-1 sprites/foundations.png 242 200 09 32 64 -31 -9
-1 sprites/foundations.png 322 200 09 40 64 -31 -9
-1 sprites/foundations.png 402 200 09 40 64 -31 -9
-1 sprites/foundations.png 482 200 09 32 64 -31 -9
-1 sprites/foundations.png 562 200 09 32 64 -31 -9
-1 sprites/foundations.png 642 200 09 40 64 -31 -9
-1 sprites/foundations.png 722 200 09 40 64 -31 -9
-1 sprites/foundations.png 2 264 09 32 64 -31 -9
-1 sprites/foundations.png 82 264 09 32 64 -31 -9
-1 sprites/foundations.png 162 264 09 40 64 -31 -9
-1 sprites/foundations.png 242 264 09 40 64 -31 -9
-1 sprites/foundations.png 322 264 09 32 64 -31 -9
-1 sprites/foundations.png 402 264 09 40 64 -31 -9
-1 sprites/foundations.png 482 264 09 40 64 -31 -9
-1 sprites/foundations.png 562 264 09 32 64 -31 -9
-1 sprites/foundations.png 642 264 09 32 64 -31 -9
-1 sprites/foundations.png 722 264 09 40 64 -31 -9
-1 sprites/foundations.png 2 328 09 40 64 -31 -9
-1 sprites/foundations.png 82 328 09 40 64 -31 -9
-1 sprites/foundations.png 162 328 09 40 64 -31 -9
-1 sprites/foundations.png 242 328 09 40 64 -31 -9
-1 sprites/foundations.png 322 328 09 32 64 -31 -9
-1 sprites/foundations.png 402 328 09 32 64 -31 -9
-1 sprites/foundations.png 482 328 09 40 64 -31 -9
-1 sprites/foundations.png 562 328 09 40 64 -31 -9
-1 sprites/foundations.png 642 328 09 32 64 -31 -9
-1 sprites/foundations.png 722 328 09 32 64 -31 -9
-1 sprites/foundations.png 2 392 09 40 64 -31 -9
-1 sprites/foundations.png 82 392 09 40 64 -31 -9
-1 sprites/foundations.png 162 392 09 32 64 -31 -9
-1 sprites/foundations.png 242 392 09 32 64 -31 -9
-1 sprites/foundations.png 322 392 09 40 64 -31 -9
-1 sprites/foundations.png 402 392 09 40 64 -31 -9
-1 sprites/foundations.png 482 392 09 32 64 -31 -9
-1 sprites/foundations.png 562 392 09 40 64 -31 -9
-1 sprites/foundations.png 642 392 09 40 64 -31 -9
-1 sprites/foundations.png 722 392 09 32 64 -31 -9
-1 sprites/foundations.png 2 456 09 32 64 -31 -9
-1 sprites/foundations.png 82 456 09 40 64 -31 -9
-1 sprites/foundations.png 162 456 09 40 64 -31 -9
-1 sprites/foundations.png 242 456 09 40 64 -31 -9
-1 sprites/foundations.png 322 456 09 40 64 -31 -9
-1 sprites/foundations.png 402 456 09 40 64 -15 -17
-1 sprites/foundations.png 482 456 09 33 64 -31 -25
-1 sprites/foundations.png 562 456 09 40 64 -47 -17
-1 sprites/foundations.png 642 456 09 33 64 -31 -9
-1 sprites/foundations.png 722 456 09 40 64 -15 -17
-1 sprites/foundations.png 2 520 09 33 64 -31 -25
-1 sprites/foundations.png 82 520 09 40 64 -47 -17
-1 sprites/foundations.png 162 520 09 33 64 -31 -9
-1 sprites/foundations.png 242 520 09 40 64 -15 -17
-1 sprites/foundations.png 322 520 09 33 64 -31 -25
-1 sprites/foundations.png 402 520 09 40 64 -47 -17
-1 sprites/foundations.png 482 520 09 33 64 -31 -9
-1 sprites/foundations.png 562 520 09 40 64 -15 -17
-1 sprites/foundations.png 642 520 09 33 64 -31 -25
-1 sprites/foundations.png 722 520 09 40 64 -47 -17
-1 sprites/foundations.png 2 584 09 33 64 -31 -9
-1 * 6 07 83 01 \7! 01 5B
-1 * 3 05 06 5A
-1 sprites/foundations.png 114 584 09 40 64 -31 -9
-1 sprites/foundations.png 194 584 09 40 64 -31 -9
-1 sprites/foundations.png 274 584 09 32 64 -31 -9
-1 sprites/foundations.png 354 584 09 32 64 -31 -9
-1 sprites/foundations.png 434 584 09 40 64 -31 -9
-1 sprites/foundations.png 514 584 09 40 64 -31 -9
-1 sprites/foundations.png 594 584 09 40 64 -31 -9
-1 sprites/foundations.png 674 584 09 40 64 -31 -9
-1 sprites/foundations.png 2 648 09 40 64 -31 -9
-1 sprites/foundations.png 82 648 09 32 64 -31 -9
-1 sprites/foundations.png 162 648 09 32 64 -31 -9
-1 sprites/foundations.png 242 648 09 40 64 -31 -9
-1 sprites/foundations.png 322 648 09 40 64 -31 -9
-1 sprites/foundations.png 402 648 09 32 64 -31 -9
-1 sprites/foundations.png 482 648 09 32 64 -31 -9
-1 sprites/foundations.png 562 648 09 40 64 -31 -9
-1 sprites/foundations.png 642 648 09 40 64 -31 -9
-1 sprites/foundations.png 722 648 09 32 64 -31 -9
-1 sprites/foundations.png 2 712 09 32 64 -31 -9
-1 sprites/foundations.png 82 712 09 40 64 -31 -9
-1 sprites/foundations.png 162 712 09 40 64 -31 -9
-1 sprites/foundations.png 242 712 09 32 64 -31 -9
-1 sprites/foundations.png 322 712 09 40 64 -31 -9
-1 sprites/foundations.png 402 712 09 40 64 -31 -9
-1 sprites/foundations.png 482 712 09 32 64 -31 -9
-1 sprites/foundations.png 562 712 09 32 64 -31 -9
-1 sprites/foundations.png 642 712 09 40 64 -31 -9
-1 sprites/foundations.png 722 712 09 40 64 -31 -9
-1 sprites/foundations.png 2 776 09 40 64 -31 -9
-1 sprites/foundations.png 82 776 09 40 64 -31 -9
-1 sprites/foundations.png 162 776 09 40 64 -31 -9
-1 sprites/foundations.png 242 776 09 32 64 -31 -9
-1 sprites/foundations.png 322 776 09 32 64 -31 -9
-1 sprites/foundations.png 402 776 09 40 64 -31 -9
-1 sprites/foundations.png 482 776 09 40 64 -31 -9
-1 sprites/foundations.png 562 776 09 32 64 -31 -9
-1 sprites/foundations.png 642 776 09 32 64 -31 -9
-1 sprites/foundations.png 722 776 09 40 64 -31 -9
-1 sprites/foundations.png 2 840 09 40 64 -31 -9
-1 sprites/foundations.png 82 840 09 32 64 -31 -9
-1 sprites/foundations.png 162 840 09 32 64 -31 -9
-1 sprites/foundations.png 242 840 09 40 64 -31 -9
-1 sprites/foundations.png 322 840 09 40 64 -31 -9
-1 sprites/foundations.png 402 840 09 32 64 -31 -9
-1 sprites/foundations.png 482 840 09 40 64 -31 -9
-1 sprites/foundations.png 562 840 09 40 64 -31 -9
-1 sprites/foundations.png 642 840 09 32 64 -31 -9
-1 sprites/foundations.png 722 840 09 32 64 -31 -9
-1 sprites/foundations.png 2 904 09 40 64 -31 -9
-1 sprites/foundations.png 82 904 09 40 64 -31 -9
-1 sprites/foundations.png 162 904 09 40 64 -31 -9
-1 sprites/foundations.png 242 904 09 40 64 -31 -9
-1 sprites/foundations.png 322 904 09 40 64 -31 -9
-1 sprites/foundations.png 402 904 09 32 64 -31 -9
-1 sprites/foundations.png 482 904 09 32 64 -31 -9
-1 sprites/foundations.png 562 904 09 40 64 -31 -9
-1 sprites/foundations.png 642 904 09 40 64 -31 -9
-1 sprites/foundations.png 722 904 09 32 64 -31 -9
-1 sprites/foundations.png 2 968 09 32 64 -31 -9
-1 sprites/foundations.png 82 968 09 40 64 -31 -9
-1 sprites/foundations.png 162 968 09 40 64 -31 -9
-1 sprites/foundations.png 242 968 09 32 64 -31 -9
-1 sprites/foundations.png 322 968 09 32 64 -31 -9
-1 sprites/foundations.png 402 968 09 40 64 -31 -9
-1 sprites/foundations.png 482 968 09 40 64 -31 -9
-1 sprites/foundations.png 562 968 09 32 64 -31 -9
-1 sprites/foundations.png 642 968 09 40 64 -31 -9
-1 sprites/foundations.png 722 968 09 40 64 -31 -9
-1 sprites/foundations.png 2 1032 09 32 64 -31 -9
-1 sprites/foundations.png 82 1032 09 32 64 -31 -9
-1 sprites/foundations.png 162 1032 09 40 64 -31 -9
-1 sprites/foundations.png 242 1032 09 40 64 -31 -9
-1 sprites/foundations.png 322 1032 09 40 64 -31 -9
-1 sprites/foundations.png 402 1032 09 40 64 -31 -9
-1 sprites/foundations.png 482 1032 09 40 64 -15 -17
-1 sprites/foundations.png 562 1032 09 33 64 -31 -25
-1 sprites/foundations.png 642 1032 09 40 64 -47 -17
-1 sprites/foundations.png 722 1032 09 33 64 -31 -9
-1 sprites/foundations.png 2 1096 09 40 64 -15 -17
-1 sprites/foundations.png 82 1096 09 33 64 -31 -25
-1 sprites/foundations.png 162 1096 09 40 64 -47 -17
-1 sprites/foundations.png 242 1096 09 33 64 -31 -9
-1 sprites/foundations.png 322 1096 09 40 64 -15 -17
-1 sprites/foundations.png 402 1096 09 33 64 -31 -25
-1 sprites/foundations.png 482 1096 09 40 64 -47 -17
-1 sprites/foundations.png 562 1096 09 33 64 -31 -9
-1 sprites/foundations.png 642 1096 09 40 64 -15 -17
-1 sprites/foundations.png 722 1096 09 33 64 -31 -25
-1 sprites/foundations.png 2 1160 09 40 64 -47 -17
-1 sprites/foundations.png 82 1160 09 33 64 -31 -9
-1 * 6 07 83 01 \7! 02 5B
-1 * 3 05 06 5A
-1 sprites/foundations.png 194 1160 09 40 64 -31 -9
-1 sprites/foundations.png 274 1160 09 40 64 -31 -9
-1 sprites/foundations.png 354 1160 09 32 64 -31 -9
-1 sprites/foundations.png 434 1160 09 32 64 -31 -9
-1 sprites/foundations.png 514 1160 09 40 64 -31 -9
-1 sprites/foundations.png 594 1160 09 40 64 -31 -9
-1 sprites/foundations.png 674 1160 09 40 64 -31 -9
-1 sprites/foundations.png 2 1224 09 40 64 -31 -9
-1 sprites/foundations.png 82 1224 09 40 64 -31 -9
-1 sprites/foundations.png 162 1224 09 32 64 -31 -9
-1 sprites/foundations.png 242 1224 09 32 64 -31 -9
-1 sprites/foundations.png 322 1224 09 40 64 -31 -9
-1 sprites/foundations.png 402 1224 09 40 64 -31 -9
-1 sprites/foundations.png 482 1224 09 32 64 -31 -9
-1 sprites/foundations.png 562 1224 09 32 64 -31 -9
-1 sprites/foundations.png 642 1224 09 40 64 -31 -9
-1 sprites/foundations.png 722 1224 09 40 64 -31 -9
-1 sprites/foundations.png 2 1288 09 32 64 -31 -9
-1 sprites/foundations.png 82 1288 09 32 64 -31 -9
-1 sprites/foundations.png 162 1288 09 40 64 -31 -9
-1 sprites/foundations.png 242 1288 09 40 64 -31 -9
-1 sprites/foundations.png 322 1288 09 32 64 -31 -9
-1 sprites/foundations.png 402 1288 09 40 64 -31 -9
-1 sprites/foundations.png 482 1288 09 40 64 -31 -9
-1 sprites/foundations.png 562 1288 09 32 64 -31 -9
-1 sprites/foundations.png 642 1288 09 32 64 -31 -9
-1 sprites/foundations.png 722 1288 09 40 64 -31 -9
-1 sprites/foundations.png 2 1352 09 40 64 -31 -9
-1 sprites/foundations.png 82 1352 09 40 64 -31 -9
-1 sprites/foundations.png 162 1352 09 40 64 -31 -9
-1 sprites/foundations.png 242 1352 09 40 64 -31 -9
-1 sprites/foundations.png 322 1352 09 32 64 -31 -9
-1 sprites/foundations.png 402 1352 09 32 64 -31 -9
-1 sprites/foundations.png 482 1352 09 40 64 -31 -9
-1 sprites/foundations.png 562 1352 09 40 64 -31 -9
-1 sprites/foundations.png 642 1352 09 32 64 -31 -9
-1 sprites/foundations.png 722 1352 09 32 64 -31 -9
-1 sprites/foundations.png 2 1416 09 40 64 -31 -9
-1 sprites/foundations.png 82 1416 09 40 64 -31 -9
-1 sprites/foundations.png 162 1416 09 32 64 -31 -9
-1 sprites/foundations.png 242 1416 09 32 64 -31 -9
-1 sprites/foundations.png 322 1416 09 40 64 -31 -9
-1 sprites/foundations.png 402 1416 09 40 64 -31 -9
-1 sprites/foundations.png 482 1416 09 32 64 -31 -9
-1 sprites/foundations.png 562 1416 09 40 64 -31 -9
-1 sprites/foundations.png 642 1416 09 40 64 -31 -9
-1 sprites/foundations.png 722 1416 09 32 64 -31 -9
-1 sprites/foundations.png 2 1480 09 32 64 -31 -9
-1 sprites/foundations.png 82 1480 09 40 64 -31 -9
-1 sprites/foundations.png 162 1480 09 40 64 -31 -9
-1 sprites/foundations.png 242 1480 09 40 64 -31 -9
-1 sprites/foundations.png 322 1480 09 40 64 -31 -9
-1 sprites/foundations.png 402 1480 09 40 64 -31 -9
-1 sprites/foundations.png 482 1480 09 32 64 -31 -9
-1 sprites/foundations.png 562 1480 09 32 64 -31 -9
-1 sprites/foundations.png 642 1480 09 40 64 -31 -9
-1 sprites/foundations.png 722 1480 09 40 64 -31 -9
-1 sprites/foundations.png 2 1544 09 32 64 -31 -9
-1 sprites/foundations.png 82 1544 09 32 64 -31 -9
-1 sprites/foundations.png 162 1544 09 40 64 -31 -9
-1 sprites/foundations.png 242 1544 09 40 64 -31 -9
-1 sprites/foundations.png 322 1544 09 32 64 -31 -9
-1 sprites/foundations.png 402 1544 09 32 64 -31 -9
-1 sprites/foundations.png 482 1544 09 40 64 -31 -9
-1 sprites/foundations.png 562 1544 09 40 64 -31 -9
-1 sprites/foundations.png 642 1544 09 32 64 -31 -9
-1 sprites/foundations.png 722 1544 09 40 64 -31 -9
-1 sprites/foundations.png 2 1608 09 40 64 -31 -9
-1 sprites/foundations.png 82 1608 09 32 64 -31 -9
-1 sprites/foundations.png 162 1608 09 32 64 -31 -9
-1 sprites/foundations.png 242 1608 09 40 64 -31 -9
-1 sprites/foundations.png 322 1608 09 40 64 -31 -9
-1 sprites/foundations.png 402 1608 09 40 64 -31 -9
-1 sprites/foundations.png 482 1608 09 40 64 -31 -9
-1 sprites/foundations.png 562 1608 09 40 64 -15 -17
-1 sprites/foundations.png 642 1608 09 33 64 -31 -25
-1 sprites/foundations.png 722 1608 09 40 64 -47 -17
-1 sprites/foundations.png 2 1672 09 33 64 -31 -9
-1 sprites/foundations.png 82 1672 09 40 64 -15 -17
-1 sprites/foundations.png 162 1672 09 33 64 -31 -25
-1 sprites/foundations.png 242 1672 09 40 64 -47 -17
-1 sprites/foundations.png 322 1672 09 33 64 -31 -9
-1 sprites/foundations.png 402 1672 09 40 64 -15 -17
-1 sprites/foundations.png 482 1672 09 33 64 -31 -25
-1 sprites/foundations.png 562 1672 09 40 64 -47 -17
-1 sprites/foundations.png 642 1672 09 33 64 -31 -9
-1 sprites/foundations.png 722 1672 09 40 64 -15 -17
-1 sprites/foundations.png 2 1736 09 33 64 -31 -25
-1 sprites/foundations.png 82 1736 09 40 64 -47 -17
-1 sprites/foundations.png 162 1736 09 33 64 -31 -9
-1 * 6 07 83 01 \7! 03 5B
-1 * 3 05 06 5A
-1 sprites/foundations.png 274 1736 09 40 64 -31 -9
-1 sprites/foundations.png 354 1736 09 40 64 -31 -9
-1 sprites/foundations.png 434 1736 09 32 64 -31 -9
-1 sprites/foundations.png 514 1736 09 32 64 -31 -9
-1 sprites/foundations.png 594 1736 09 40 64 -31 -9
-1 sprites/foundations.png 674 1736 09 40 64 -31 -9
-1 sprites/foundations.png 2 1800 09 40 64 -31 -9
-1 sprites/foundations.png 82 1800 09 40 64 -31 -9
-1 sprites/foundations.png 162 1800 09 40 64 -31 -9
-1 sprites/foundations.png 242 1800 09 32 64 -31 -9
-1 sprites/foundations.png 322 1800 09 32 64 -31 -9
-1 sprites/foundations.png 402 1800 09 40 64 -31 -9
-1 sprites/foundations.png 482 1800 09 40 64 -31 -9
-1 sprites/foundations.png 562 1800 09 32 64 -31 -9
-1 sprites/foundations.png 642 1800 09 32 64 -31 -9
-1 sprites/foundations.png 722 1800 09 40 64 -31 -9
-1 sprites/foundations.png 2 1864 09 40 64 -31 -9
-1 sprites/foundations.png 82 1864 09 32 64 -31 -9
-1 sprites/foundations.png 162 1864 09 32 64 -31 -9
-1 sprites/foundations.png 242 1864 09 40 64 -31 -9
-1 sprites/foundations.png 322 1864 09 40 64 -31 -9
-1 sprites/foundations.png 402 1864 09 32 64 -31 -9
-1 sprites/foundations.png 482 1864 09 40 64 -31 -9
-1 sprites/foundations.png 562 1864 09 40 64 -31 -9
-1 sprites/foundations.png 642 1864 09 32 64 -31 -9
-1 sprites/foundations.png 722 1864 09 32 64 -31 -9
-1 sprites/foundations.png 2 1928 09 40 64 -31 -9
-1 sprites/foundations.png 82 1928 09 40 64 -31 -9
-1 sprites/foundations.png 162 1928 09 40 64 -31 -9
-1 sprites/foundations.png 242 1928 09 40 64 -31 -9
-1 sprites/foundations.png 322 1928 09 40 64 -31 -9
-1 sprites/foundations.png 402 1928 09 32 64 -31 -9
-1 sprites/foundations.png 482 1928 09 32 64 -31 -9
-1 sprites/foundations.png 562 1928 09 40 64 -31 -9
-1 sprites/foundations.png 642 1928 09 40 64 -31 -9
-1 sprites/foundations.png 722 1928 09 32 64 -31 -9
-1 sprites/foundations.png 2 1992 09 32 64 -31 -9
-1 sprites/foundations.png 82 1992 09 40 64 -31 -9
-1 sprites/foundations.png 162 1992 09 40 64 -31 -9
-1 sprites/foundations.png 242 1992 09 32 64 -31 -9
-1 sprites/foundations.png 322 1992 09 32 64 -31 -9
-1 sprites/foundations.png 402 1992 09 40 64 -31 -9
-1 sprites/foundations.png 482 1992 09 40 64 -31 -9
-1 sprites/foundations.png 562 1992 09 32 64 -31 -9
-1 sprites/foundations.png 642 1992 09 40 64 -31 -9
-1 sprites/foundations.png 722 1992 09 40 64 -31 -9
-1 sprites/foundations.png 2 2056 09 32 64 -31 -9
-1 sprites/foundations.png 82 2056 09 32 64 -31 -9
-1 sprites/foundations.png 162 2056 09 40 64 -31 -9
-1 sprites/foundations.png 242 2056 09 40 64 -31 -9
-1 sprites/foundations.png 322 2056 09 40 64 -31 -9
-1 sprites/foundations.png 402 2056 09 40 64 -31 -9
-1 sprites/foundations.png 482 2056 09 40 64 -31 -9
-1 sprites/foundations.png 562 2056 09 32 64 -31 -9
-1 sprites/foundations.png 642 2056 09 32 64 -31 -9
-1 sprites/foundations.png 722 2056 09 40 64 -31 -9
-1 sprites/foundations.png 2 2120 09 40 64 -31 -9
-1 sprites/foundations.png 82 2120 09 32 64 -31 -9
-1 sprites/foundations.png 162 2120 09 32 64 -31 -9
-1 sprites/foundations.png 242 2120 09 40 64 -31 -9
-1 sprites/foundations.png 322 2120 09 40 64 -31 -9
-1 sprites/foundations.png 402 2120 09 32 64 -31 -9
-1 sprites/foundations.png 482 2120 09 32 64 -31 -9
-1 sprites/foundations.png 562 2120 09 40 64 -31 -9
-1 sprites/foundations.png 642 2120 09 40 64 -31 -9
-1 sprites/foundations.png 722 2120 09 32 64 -31 -9
-1 sprites/foundations.png 2 2184 09 40 64 -31 -9
-1 sprites/foundations.png 82 2184 09 40 64 -31 -9
-1 sprites/foundations.png 162 2184 09 32 64 -31 -9
-1 sprites/foundations.png 242 2184 09 32 64 -31 -9
-1 sprites/foundations.png 322 2184 09 40 64 -31 -9
-1 sprites/foundations.png 402 2184 09 40 64 -31 -9
-1 sprites/foundations.png 482 2184 09 40 64 -31 -9
-1 sprites/foundations.png 562 2184 09 40 64 -31 -9
-1 sprites/foundations.png 642 2184 09 40 64 -15 -17
-1 sprites/foundations.png 722 2184 09 33 64 -31 -25
-1 sprites/foundations.png 2 2248 09 40 64 -47 -17
-1 sprites/foundations.png 82 2248 09 33 64 -31 -9
-1 sprites/foundations.png 162 2248 09 40 64 -15 -17
-1 sprites/foundations.png 242 2248 09 33 64 -31 -25
-1 sprites/foundations.png 322 2248 09 40 64 -47 -17
-1 sprites/foundations.png 402 2248 09 33 64 -31 -9
-1 sprites/foundations.png 482 2248 09 40 64 -15 -17
-1 sprites/foundations.png 562 2248 09 33 64 -31 -25
-1 sprites/foundations.png 642 2248 09 40 64 -47 -17
-1 sprites/foundations.png 722 2248 09 33 64 -31 -9
-1 sprites/foundations.png 2 2312 09 40 64 -15 -17
-1 sprites/foundations.png 82 2312 09 33 64 -31 -25
-1 sprites/foundations.png 162 2312 09 40 64 -47 -17
-1 sprites/foundations.png 242 2312 09 33 64 -31 -9

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

View File

@@ -1,16 +0,0 @@
//
// $Id$
//
// This file is part of OpenTTD.
// OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
// OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
// See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
//
-1 * 0 0C "One way road graphics"
-1 * 3 05 09 06
-1 sprites/oneway.png 34 8 01 16 24 -12 -8
-1 sprites/oneway.png 66 8 01 16 24 -12 -8
-1 sprites/oneway.png 98 8 01 16 24 -12 -8
-1 sprites/oneway.png 130 8 01 16 24 -12 -8
-1 sprites/oneway.png 162 8 01 16 24 -12 -8
-1 sprites/oneway.png 194 8 01 16 24 -12 -8

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -1,106 +0,0 @@
// Automatically generated by GRFCODEC. Do not modify!
// (Info version 7)
// Format: spritenum.pngfile xpos ypos compression ysize xsize xrel yrel
//
// $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/>.
//
// Sources for OpenTTD's required base graphics.
// Checks whether the correct version of OpenTTD is used before
// allowing it to be used.
//
//
// -- NFO Renum 'settings' --
// Do not make nforenum warn about the fact that we use a reserved GRF ID
// @@WARNING DISABLE 101
// -- End of NFO Renum 'settings' --
//
//
// Number of sprites, it is wrong, but GRFcodec automagically gets it right.
//
0 * 4 00 00 00 00
//
// Check whether we are running OTTD or not.
//
-1 * 0 07 9D 04 \7= 01 00 00 00 01
-1 * 0 0B 03 7F FF 80 " is not for TTDPatch. Use ttdpatch(w).grf." 00
//
// Check for OTTD's version number
//
// First step... Variable A1 might not exist. If that's the case it always
// skips. As we do not want to skip out of the whole testing, we skip over
// the real version check.
-1 * 0 07 A1 04 \7= FF FF FF FF 02
// Real version check.
-1 * 0 07 A1 04 \7> \w20304 01 01 03
// If the version check is supported, the string is translateable via OpenTTD
// itself. Use it!.
-1 * 0 0B 03 7F 06 "1.1 (or trunk r20304)" 00
// Some OTTD versions before r11130 did support Action B, so use the English
// phrase there
-1 * 0 0B 03 7F FF "Requires OpenTTD version 1.1 (or trunk r20304) or better." 00
// Final fallback. No Action B support, just skip to the end of the file.
-1 * 0 07 A1 04 \7= FF FF FF FF 00
// We are a DOS paletted NewGRF, so tell OpenTTD that. Then it can actually
// do the right thing. Yay for that feature as that means no duplicate NewGRF!
-1 * 0 14
"C" "INFO"
"B" "PALS" \w1 "D"
00
00
// GRF ID, must start with FF so it gets ignored
-1 * 0 08 07 FF "OTT"
// Name of the GRF
"OpenTTD's base graphics " 00
// Description of the GRF.
"License: GNU General Public License version 2" 0D
"Marcin Grzegorczyk: non-halftile foundations" 0D
"Michael Blunck: catenary, signals" 0D
"George: canals" 0D
"David Dallaston: tram tracks" 0D
"Jonathan G. Rennison: aqueducts" 0D
"Bilbo, Jasper Vries: font" 0D
"OpenTTD developers: other graphics" 00
//
// The real data of the GRF is acquired from several subfiles.
//
#include "2ccmap.nfo"
#include "signals.nfo"
#include "elrails.nfo"
#include "foundations.nfo"
#include "canals.nfo"
#include "oneway.nfo"
#include "tramtracks.nfo"
#include "shore.nfo"
#include "sloped_tracks.nfo"
#include "airports.nfo"
#include "roadstops.nfo"
#include "aqueduct.nfo"
#include "autorail.nfo"
#include "flags.nfo"
#include "openttdgui.nfo"
#include "airport_preview.nfo"
#include "chars.nfo"
#include "overrides.nfo"
#include "fix_graphics.nfo"

View File

@@ -1,181 +0,0 @@
//
// $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/>.
//
// -- NFO Renum 'settings' --
// Do not make nforenum warn about the fact that we use more sprites.
// We are the 'authority' on how many sprites may be used.
// @@WARNING DISABLE 60
// -- End of NFO Renum 'settings' --
//
-1 * 0 0C "OpenTTD GUI graphics"
-1 * 3 05 15 A0
-1 sprites/openttdgui.png 66 8 09 31 64 -31 7
-1 sprites/openttdgui.png 146 8 09 31 64 -31 7
-1 sprites/openttdgui.png 226 8 09 31 64 -31 7
-1 sprites/openttdgui.png 306 8 09 31 64 -31 7
-1 sprites/openttdgui.png 386 8 09 31 64 -31 -1
-1 sprites/openttdgui.png 466 8 09 39 64 -31 -1
-1 sprites/openttdgui.png 546 8 09 31 64 -31 -1
-1 sprites/openttdgui.png 626 8 09 23 64 -31 7
-1 sprites/openttdgui.png 706 8 09 31 64 -31 7
-1 sprites/openttdgui.png 2 72 09 23 64 -31 7
-1 sprites/openttdgui.png 82 72 09 31 64 -31 7
-1 sprites/openttdgui.png 162 72 09 39 64 -31 -1
-1 sprites/openttdgui.png 242 72 01 26 23 0 0
-1 sprites/openttdgui.png 274 72 09 26 24 0 0
-1 sprites/openttdgui.png 306 72 01 8 4 28 16
-1 sprites/openttdgui.png 322 72 01 9 4 0 1
-1 sprites/openttdgui.png 338 72 09 23 32 0 1
-1 sprites/openttdgui.png 386 72 01 8 4 -31 15
-1 sprites/openttdgui.png 402 72 01 9 4 -3 0
-1 sprites/openttdgui.png 418 72 09 23 32 -31 0
-1 sprites/openttdgui.png 466 72 01 8 4 28 16
-1 sprites/openttdgui.png 482 72 01 9 4 0 1
-1 sprites/openttdgui.png 498 72 09 23 32 0 1
-1 sprites/openttdgui.png 546 72 01 8 4 -31 15
-1 sprites/openttdgui.png 562 72 01 9 4 -3 0
-1 sprites/openttdgui.png 578 72 09 23 32 -31 0
-1 sprites/openttdgui.png 626 72 01 8 4 28 16
-1 sprites/openttdgui.png 642 72 01 9 4 0 1
-1 sprites/openttdgui.png 658 72 09 23 32 0 1
-1 sprites/openttdgui.png 706 72 01 8 4 -31 15
-1 sprites/openttdgui.png 722 72 01 9 4 -3 0
-1 sprites/openttdgui.png 738 72 09 23 32 -31 0
-1 sprites/openttdgui.png 786 72 01 8 4 28 16
-1 sprites/openttdgui.png 2 136 01 9 4 0 1
-1 sprites/openttdgui.png 18 136 09 23 32 0 1
-1 sprites/openttdgui.png 66 136 01 8 4 -31 15
-1 sprites/openttdgui.png 82 136 01 9 4 -3 0
-1 sprites/openttdgui.png 98 136 09 23 32 -31 0
-1 sprites/openttdgui.png 146 136 09 10 10 0 0
-1 sprites/openttdgui.png 162 136 01 8 8 0 0
-1 sprites/openttdgui.png 178 136 09 9 7 0 0
-1 sprites/openttdgui.png 194 136 01 7 9 0 0
-1 sprites/openttdgui.png 210 136 01 7 9 0 0
-1 sprites/openttdgui.png 226 136 01 10 10 0 0
-1 sprites/openttdgui.png 242 136 09 7 7 0 0
-1 sprites/openttdgui.png 258 136 09 4 7 1 2
-1 sprites/openttdgui.png 274 136 09 4 7 1 2
-1 sprites/openttdgui.png 290 136 09 7 4 1 1
-1 sprites/openttdgui.png 306 136 09 7 4 2 1
-1 sprites/openttdgui.png 322 136 01 8 8 1 1
-1 sprites/openttdgui.png 338 136 01 9 9 0 0
-1 sprites/openttdgui.png 354 136 01 8 7 0 0
-1 sprites/openttdgui.png 370 136 01 8 8 0 0
-1 sprites/openttdgui.png 386 136 09 13 20 0 4
-1 sprites/openttdgui.png 418 136 03 36 56 0 0
-1 sprites/openttdgui.png 482 136 01 20 20 0 0
-1 sprites/openttdgui.png 514 136 01 32 32 0 0
-1 sprites/openttdgui.png 562 136 09 16 20 0 3
-1 sprites/openttdgui.png 594 136 03 43 56 0 0
-1 sprites/openttdgui.png 658 136 01 19 20 0 1
-1 sprites/openttdgui.png 690 136 01 32 32 0 0
-1 sprites/openttdgui.png 738 136 01 20 20 0 0
-1 sprites/openttdgui.png 2 200 01 31 31 1 1
-1 sprites/openttdgui.png 50 200 09 15 20 0 3
-1 sprites/openttdgui.png 82 200 03 36 56 0 0
-1 sprites/openttdgui.png 146 200 01 20 20 0 0
-1 sprites/openttdgui.png 178 200 01 32 32 0 0
-1 sprites/openttdgui.png 226 200 01 20 20 0 0
-1 sprites/openttdgui.png 258 200 01 32 32 0 0
-1 sprites/openttdgui.png 306 200 09 11 19 0 6
-1 sprites/openttdgui.png 338 200 03 36 56 0 0
-1 sprites/openttdgui.png 402 200 01 20 20 0 0
-1 sprites/openttdgui.png 434 200 01 32 32 0 0
-1 sprites/openttdgui.png 482 200 01 20 20 0 0
-1 sprites/openttdgui.png 514 200 01 32 32 0 0
-1 sprites/openttdgui.png 562 200 09 20 20 0 0
-1 sprites/openttdgui.png 594 200 09 20 20 0 0
-1 sprites/openttdgui.png 626 200 03 32 52 0 0
-1 sprites/openttdgui.png 690 200 09 33 29 -27 -16
-1 sprites/openttdgui.png 738 200 09 39 35 -29 -29
-1 sprites/openttdgui.png 2 264 09 34 29 1 -17
-1 sprites/openttdgui.png 50 264 09 39 34 -3 -28
-1 sprites/openttdgui.png 98 264 09 13 20 0 4
-1 sprites/openttdgui.png 130 264 03 36 56 0 0
-1 sprites/openttdgui.png 194 264 09 13 20 0 4
-1 sprites/openttdgui.png 226 264 03 36 56 0 0
-1 sprites/openttdgui.png 290 264 01 18 39 -9 -9
-1 sprites/openttdgui.png 338 264 01 44 72 -16 -35
-1 sprites/openttdgui.png 418 264 01 20 20 0 0
-1 sprites/openttdgui.png 450 264 01 44 72 -16 -35
-1 sprites/openttdgui.png 530 264 09 18 18 1 1
-1 sprites/openttdgui.png 562 264 01 20 20 0 0
-1 sprites/openttdgui.png 594 264 01 32 32 0 0
-1 sprites/openttdgui.png 642 264 01 18 18 0 0
-1 sprites/openttdgui.png 674 264 01 18 18 0 0
-1 sprites/openttdgui.png 706 264 01 18 18 0 0
-1 sprites/openttdgui.png 738 264 01 18 18 0 0
-1 sprites/openttdgui.png 770 264 01 18 18 0 0
-1 sprites/openttdgui.png 2 328 01 18 18 0 0
-1 sprites/openttdgui.png 34 328 01 18 18 0 0
-1 sprites/openttdgui.png 66 328 01 18 18 0 0
-1 sprites/openttdgui.png 98 328 01 18 18 0 0
-1 sprites/openttdgui.png 130 328 01 18 18 0 0
-1 sprites/openttdgui.png 162 328 01 18 18 0 0
-1 sprites/openttdgui.png 194 328 01 18 18 0 0
-1 sprites/openttdgui.png 226 328 01 18 18 0 0
-1 sprites/openttdgui.png 258 328 09 16 16 0 0
-1 sprites/openttdgui.png 290 328 01 16 16 0 0
-1 sprites/openttdgui.png 322 328 01 16 16 0 0
-1 sprites/openttdgui.png 354 328 01 16 16 0 0
-1 sprites/openttdgui.png 386 328 09 31 35 0 0
-1 sprites/openttdgui.png 434 328 01 30 33 0 0
-1 sprites/openttdgui.png 482 328 01 33 36 0 0
-1 sprites/openttdgui.png 530 328 01 33 37 0 0
-1 sprites/openttdgui.png 578 328 09 18 18 0 0
-1 sprites/openttdgui.png 610 328 09 18 18 0 0
-1 sprites/openttdgui.png 642 328 09 18 18 0 0
-1 sprites/openttdgui.png 674 328 09 18 18 0 0
-1 sprites/openttdgui.png 706 328 09 18 18 0 0
-1 sprites/openttdgui.png 738 328 09 18 18 0 0
-1 sprites/openttdgui.png 770 328 09 18 18 0 0
-1 sprites/openttdgui.png 2 376 09 18 18 0 0
-1 sprites/openttdgui.png 34 376 09 18 18 0 0
-1 sprites/openttdgui.png 66 376 09 18 18 0 0
-1 sprites/openttdgui.png 98 376 09 18 18 0 0
-1 sprites/openttdgui.png 130 376 09 18 18 0 0
-1 sprites/openttdgui.png 162 376 09 18 18 0 0
-1 sprites/openttdgui.png 194 376 09 18 18 0 0
-1 sprites/openttdgui.png 226 376 09 18 18 0 0
-1 sprites/openttdgui.png 258 376 09 18 18 0 0
-1 sprites/openttdgui.png 290 376 09 18 18 0 0
-1 sprites/openttdgui.png 322 376 09 18 18 0 0
-1 sprites/openttdgui.png 354 376 09 18 18 0 0
-1 sprites/openttdgui.png 386 376 09 18 18 0 0
-1 sprites/openttdgui.png 418 376 01 20 20 0 0
-1 sprites/openttdgui.png 450 376 01 22 19 0 0
-1 sprites/openttdgui.png 482 376 01 20 20 0 0
-1 sprites/openttdgui.png 514 376 01 44 54 -16 -35
-1 sprites/openttdgui.png 578 376 01 7 7 3 4
-1 sprites/openttdgui.png 594 376 01 7 7 3 4
-1 sprites/openttdgui.png 610 376 01 9 10 2 3
-1 sprites/openttdgui.png 626 376 01 9 10 2 3
-1 sprites/openttdgui.png 642 376 01 7 11 2 1
-1 sprites/openttdgui.png 658 376 01 9 9 3 3
-1 sprites/openttdgui.png 674 376 09 20 20 0 0
-1 sprites/openttdgui.png 706 376 09 20 20 0 0
-1 sprites/openttdgui.png 738 376 09 32 32 0 0
-1 sprites/openttdgui.png 786 376 09 10 10 0 0
-1 sprites/openttdgui.png 2 440 09 10 10 0 0
-1 sprites/openttdgui.png 18 440 09 7 7 0 0
-1 sprites/openttdgui.png 34 440 09 13 14 4 4
-1 sprites/openttdgui.png 66 440 09 8 7 0 0
-1 sprites/openttdgui.png 82 440 09 8 7 0 0
-1 sprites/openttdgui.png 98 440 09 8 7 0 0
-1 sprites/openttdgui.png 114 440 01 8 8 0 0
-1 sprites/openttdgui.png 130 440 01 8 8 0 0
-1 sprites/openttdgui.png 146 440 01 8 8 0 0
-1 sprites/openttdgui.png 162 440 01 8 8 0 0
-1 sprites/openttdgui.png 178 440 01 10 8 0 0
-1 sprites/openttdgui.png 194 440 09 10 13 0 -2
// -- NFO Renum 'settings' --
// Undo disabling the warning
// @@WARNING ENABLE 60
// -- End of NFO Renum 'settings' --

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

View File

@@ -1,13 +0,0 @@
//
// $Id$
//
// This file is part of OpenTTD.
// OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
// OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
// See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
//
-1 * 0 0C "NewGRF overrides"
-1 * 30 00 08 01 03 00 11
44 44 22 02 44 44 01 11 // UKRS addons modifies UKRS
6D 62 04 02 6D 62 04 01 // DBSetXL ECS extension modifies DBSetXL
4D 65 6f 20 4D 65 6F 17 // LV4cut modifies LV4

View File

@@ -1,18 +0,0 @@
//
// $Id$
//
// This file is part of OpenTTD.
// OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
// OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
// See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
//
-1 * 0 0C "Road stop graphics"
-1 * 3 05 11 08
-1 sprites/roadstops.png 34 8 09 23 13 5 -11
-1 sprites/roadstops.png 66 8 09 15 13 5 -2
-1 sprites/roadstops.png 98 8 09 19 21 -20 -7
-1 sprites/roadstops.png 130 8 09 17 22 -25 -4
-1 sprites/roadstops.png 162 8 09 25 32 -5 -9
-1 sprites/roadstops.png 210 8 09 26 28 -3 -12
-1 sprites/roadstops.png 258 8 09 25 29 -24 -12
-1 sprites/roadstops.png 306 8 09 25 32 -25 -9

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

View File

@@ -1,75 +0,0 @@
//
// $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/>.
//
//
// -- NFO Renum 'settings' --
// Do not make nforenum warn about the fact that we use an incorrect number of shores
// @@WARNING DISABLE 60
// -- End of NFO Renum 'settings' --
//
-1 * 6 07 83 01 \7! 00 0C
-1 * 54 0C "Missing shore tile graphics for the temperate climate"
-1 * 3 05 0D 0A
-1 sprites/shore.png 82 8 09 15 64 -31 0
-1 sprites/shore.png 162 8 09 31 64 -31 -8
-1 sprites/shore.png 242 8 09 23 64 -31 0
-1 sprites/shore.png 322 8 09 47 64 -31 -16
-1 sprites/shore.png 402 8 09 31 64 -31 -8
-1 sprites/shore.png 482 8 09 39 64 -31 -8
-1 sprites/shore.png 562 8 09 31 64 -31 -8
-1 sprites/shore.png 642 8 09 31 64 -31 -8
-1 sprites/shore.png 722 8 09 32 64 -31 -1
-1 sprites/shore.png 2 72 09 31 64 -31 -8
-1 * 6 07 83 01 \7! 01 0C
-1 * 55 0C "Missing shore tile graphics for the sub-arctic climate"
-1 * 3 05 0D 0A
-1 sprites/shore.png 130 72 09 15 64 -31 0
-1 sprites/shore.png 210 72 09 31 64 -31 -8
-1 sprites/shore.png 290 72 09 23 64 -31 0
-1 sprites/shore.png 370 72 09 47 64 -31 -16
-1 sprites/shore.png 450 72 09 31 64 -31 -8
-1 sprites/shore.png 530 72 09 39 64 -31 -8
-1 sprites/shore.png 610 72 09 31 64 -31 -8
-1 sprites/shore.png 690 72 09 31 64 -31 -8
-1 sprites/shore.png 2 136 09 32 64 -31 -1
-1 sprites/shore.png 82 136 09 31 64 -31 -8
-1 * 6 07 83 01 \7! 02 0C
-1 * 57 0C "Missing shore tile graphics for the sub-tropical climate"
-1 * 3 05 0D 0A
-1 sprites/shore.png 210 136 09 15 64 -31 0
-1 sprites/shore.png 290 136 09 31 64 -31 -8
-1 sprites/shore.png 370 136 09 23 64 -31 0
-1 sprites/shore.png 450 136 09 47 64 -31 -16
-1 sprites/shore.png 530 136 09 31 64 -31 -8
-1 sprites/shore.png 610 136 09 39 64 -31 -8
-1 sprites/shore.png 690 136 09 31 64 -31 -8
-1 sprites/shore.png 2 200 09 31 64 -31 -8
-1 sprites/shore.png 82 200 09 32 64 -31 -1
-1 sprites/shore.png 162 200 09 31 64 -31 -8
-1 * 6 07 83 01 \7! 03 0C
-1 * 44 0C "Missing shore tile graphics for the toyland climate"
-1 * 3 05 0D 0A
-1 sprites/shore.png 290 200 09 15 64 -31 0
-1 sprites/shore.png 370 200 09 31 64 -31 -8
-1 sprites/shore.png 450 200 09 23 64 -31 0
-1 sprites/shore.png 530 200 09 47 64 -31 -16
-1 sprites/shore.png 610 200 09 31 64 -31 -8
-1 sprites/shore.png 690 200 09 39 64 -31 -8
-1 sprites/shore.png 2 264 09 31 64 -31 -8
-1 sprites/shore.png 82 264 09 31 64 -31 -8
-1 sprites/shore.png 162 264 09 32 64 -31 -1
-1 sprites/shore.png 242 264 09 31 64 -31 -8
//
// -- NFO Renum 'settings' --
// Reset warning about incorrect number of shores
// @@WARNING ENABLE 60
// -- End of NFO Renum 'settings' --
//

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

View File

@@ -1,493 +0,0 @@
//
// $Id$
//
// This file is part of OpenTTD.
// OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
// OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
// See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
//
-1 * 0 0C "Pre-signal, semaphore, and PBS graphics by Michael Blunck"
-1 * 3 05 04 F0
-1 sprites/signals.png 66 8 01 21 6 -2 -19
-1 sprites/signals.png 82 8 01 21 6 -2 -19
-1 sprites/signals.png 98 8 01 21 6 -2 -19
-1 sprites/signals.png 114 8 01 21 6 -2 -19
-1 sprites/signals.png 130 8 01 21 6 -2 -19
-1 sprites/signals.png 146 8 01 21 6 -2 -19
-1 sprites/signals.png 162 8 01 21 6 -2 -19
-1 sprites/signals.png 178 8 01 21 6 -2 -19
-1 sprites/signals.png 194 8 01 21 6 -2 -19
-1 sprites/signals.png 210 8 01 21 6 -2 -19
-1 sprites/signals.png 226 8 01 21 6 -2 -19
-1 sprites/signals.png 242 8 01 21 6 -2 -19
-1 sprites/signals.png 258 8 01 21 6 -2 -19
-1 sprites/signals.png 274 8 01 21 6 -2 -19
-1 sprites/signals.png 290 8 01 21 6 -2 -19
-1 sprites/signals.png 306 8 01 21 6 -2 -19
-1 sprites/signals.png 322 8 01 21 6 -2 -19
-1 sprites/signals.png 338 8 01 21 6 -2 -19
-1 sprites/signals.png 354 8 01 21 6 -2 -19
-1 sprites/signals.png 370 8 01 21 6 -2 -19
-1 sprites/signals.png 386 8 01 21 6 -2 -19
-1 sprites/signals.png 402 8 01 21 6 -2 -19
-1 sprites/signals.png 418 8 01 21 6 -2 -19
-1 sprites/signals.png 434 8 01 21 6 -2 -19
-1 sprites/signals.png 450 8 01 21 6 -2 -19
-1 sprites/signals.png 466 8 01 21 6 -2 -19
-1 sprites/signals.png 482 8 01 21 6 -2 -19
-1 sprites/signals.png 498 8 01 21 6 -2 -19
-1 sprites/signals.png 514 8 01 21 6 -2 -19
-1 sprites/signals.png 530 8 01 21 6 -2 -19
-1 sprites/signals.png 546 8 01 21 6 -2 -19
-1 sprites/signals.png 562 8 01 21 6 -2 -19
-1 sprites/signals.png 578 8 01 21 6 -2 -19
-1 sprites/signals.png 594 8 01 21 6 -2 -19
-1 sprites/signals.png 610 8 01 21 6 -2 -19
-1 sprites/signals.png 626 8 01 21 6 -2 -19
-1 sprites/signals.png 642 8 01 21 6 -2 -19
-1 sprites/signals.png 658 8 01 21 6 -2 -19
-1 sprites/signals.png 674 8 01 21 6 -2 -19
-1 sprites/signals.png 690 8 01 21 6 -2 -19
-1 sprites/signals.png 706 8 01 21 6 -2 -19
-1 sprites/signals.png 722 8 01 21 6 -2 -19
-1 sprites/signals.png 738 8 01 21 6 -2 -19
-1 sprites/signals.png 754 8 01 21 6 -2 -19
-1 sprites/signals.png 770 8 01 21 6 -2 -19
-1 sprites/signals.png 786 8 01 21 6 -2 -19
-1 sprites/signals.png 2 40 01 21 6 -2 -19
-1 sprites/signals.png 18 40 01 21 6 -2 -19
-1 sprites/signals.png 34 40 01 21 10 -6 -19
-1 sprites/signals.png 50 40 01 23 7 -3 -21
-1 sprites/signals.png 66 40 01 21 10 1 -19
-1 sprites/signals.png 82 40 01 21 9 1 -19
-1 sprites/signals.png 98 40 01 21 9 1 -19
-1 sprites/signals.png 114 40 01 23 6 1 -21
-1 sprites/signals.png 130 40 01 21 10 -7 -19
-1 sprites/signals.png 146 40 01 21 10 -7 -19
-1 sprites/signals.png 162 40 01 21 2 1 -19
-1 sprites/signals.png 178 40 01 24 2 1 -22
-1 sprites/signals.png 194 40 01 23 2 1 -21
-1 sprites/signals.png 210 40 01 26 2 1 -24
-1 sprites/signals.png 226 40 01 21 11 -7 -19
-1 sprites/signals.png 242 40 01 21 8 -4 -19
-1 sprites/signals.png 258 40 01 21 11 1 -19
-1 sprites/signals.png 274 40 01 21 8 1 -19
-1 sprites/signals.png 290 40 01 21 12 -6 -19
-1 sprites/signals.png 322 40 01 23 9 -3 -21
-1 sprites/signals.png 338 40 01 21 12 -1 -19
-1 sprites/signals.png 370 40 01 21 11 -1 -19
-1 sprites/signals.png 386 40 01 21 11 -1 -19
-1 sprites/signals.png 402 40 01 23 8 -1 -21
-1 sprites/signals.png 418 40 01 21 12 -7 -19
-1 sprites/signals.png 450 40 01 21 12 -7 -19
-1 sprites/signals.png 482 40 01 21 4 1 -19
-1 sprites/signals.png 498 40 01 24 4 1 -22
-1 sprites/signals.png 514 40 01 23 4 -1 -21
-1 sprites/signals.png 530 40 01 26 4 -1 -24
-1 sprites/signals.png 546 40 01 21 13 -7 -19
-1 sprites/signals.png 578 40 01 21 10 -4 -19
-1 sprites/signals.png 594 40 01 21 13 -1 -19
-1 sprites/signals.png 626 40 01 21 10 -1 -19
-1 sprites/signals.png 642 40 01 21 11 -6 -19
-1 sprites/signals.png 658 40 01 23 8 -3 -21
-1 sprites/signals.png 674 40 01 21 11 0 -19
-1 sprites/signals.png 690 40 01 21 10 0 -19
-1 sprites/signals.png 706 40 01 21 10 0 -19
-1 sprites/signals.png 722 40 01 23 7 0 -21
-1 sprites/signals.png 738 40 01 21 11 -7 -19
-1 sprites/signals.png 754 40 01 21 11 -7 -19
-1 sprites/signals.png 770 40 01 21 4 1 -19
-1 sprites/signals.png 786 40 01 24 4 1 -22
-1 sprites/signals.png 2 88 01 23 4 -1 -21
-1 sprites/signals.png 18 88 01 26 4 -1 -24
-1 sprites/signals.png 34 88 01 21 12 -7 -19
-1 sprites/signals.png 66 88 01 21 9 -4 -19
-1 sprites/signals.png 82 88 01 21 12 0 -19
-1 sprites/signals.png 114 88 01 21 9 0 -19
-1 sprites/signals.png 130 88 01 21 11 -6 -19
-1 sprites/signals.png 146 88 01 23 8 -3 -21
-1 sprites/signals.png 162 88 01 21 11 0 -19
-1 sprites/signals.png 178 88 01 21 10 0 -19
-1 sprites/signals.png 194 88 01 21 10 0 -19
-1 sprites/signals.png 210 88 01 23 7 0 -21
-1 sprites/signals.png 226 88 01 21 11 -7 -19
-1 sprites/signals.png 242 88 01 21 11 -7 -19
-1 sprites/signals.png 258 88 01 21 4 1 -19
-1 sprites/signals.png 274 88 01 24 4 1 -22
-1 sprites/signals.png 290 88 01 23 4 -1 -21
-1 sprites/signals.png 306 88 01 26 4 -1 -24
-1 sprites/signals.png 322 88 01 21 12 -7 -19
-1 sprites/signals.png 354 88 01 21 9 -4 -19
-1 sprites/signals.png 370 88 01 21 12 0 -19
-1 sprites/signals.png 402 88 01 21 9 0 -19
-1 sprites/signals.png 418 88 01 19 6 -2 -17
-1 sprites/signals.png 434 88 01 19 6 -2 -17
-1 sprites/signals.png 450 88 01 19 6 -2 -17
-1 sprites/signals.png 466 88 01 19 6 -2 -17
-1 sprites/signals.png 482 88 01 19 6 -2 -17
-1 sprites/signals.png 498 88 01 19 6 -2 -17
-1 sprites/signals.png 514 88 01 19 6 -2 -17
-1 sprites/signals.png 530 88 01 19 6 -2 -17
-1 sprites/signals.png 546 88 01 19 6 -2 -17
-1 sprites/signals.png 562 88 01 19 6 -2 -17
-1 sprites/signals.png 578 88 01 19 6 -2 -17
-1 sprites/signals.png 594 88 01 19 6 -2 -17
-1 sprites/signals.png 610 88 01 19 6 -2 -17
-1 sprites/signals.png 626 88 01 19 6 -2 -17
-1 sprites/signals.png 642 88 01 19 6 -2 -17
-1 sprites/signals.png 658 88 01 19 6 -2 -17
-1 sprites/signals.png 674 88 01 19 6 -2 -17
-1 sprites/signals.png 690 88 01 19 6 -2 -17
-1 sprites/signals.png 706 88 01 19 6 -2 -17
-1 sprites/signals.png 722 88 01 19 6 -2 -17
-1 sprites/signals.png 738 88 01 19 6 -2 -17
-1 sprites/signals.png 754 88 01 19 6 -2 -17
-1 sprites/signals.png 770 88 01 19 6 -2 -17
-1 sprites/signals.png 786 88 01 19 6 -2 -17
-1 sprites/signals.png 2 136 01 19 6 -2 -17
-1 sprites/signals.png 18 136 01 19 6 -2 -17
-1 sprites/signals.png 34 136 01 19 6 -2 -17
-1 sprites/signals.png 50 136 01 19 6 -2 -17
-1 sprites/signals.png 66 136 01 19 6 -2 -17
-1 sprites/signals.png 82 136 01 19 6 -2 -17
-1 sprites/signals.png 98 136 01 19 6 -2 -17
-1 sprites/signals.png 114 136 01 19 6 -2 -17
-1 sprites/signals.png 130 136 01 21 6 -2 -19
-1 sprites/signals.png 146 136 01 21 6 -2 -19
-1 sprites/signals.png 162 136 01 21 6 -2 -19
-1 sprites/signals.png 178 136 01 21 6 -2 -19
-1 sprites/signals.png 194 136 01 21 6 -2 -19
-1 sprites/signals.png 210 136 01 21 6 -2 -19
-1 sprites/signals.png 226 136 01 21 6 -2 -19
-1 sprites/signals.png 242 136 01 21 6 -2 -19
-1 sprites/signals.png 258 136 01 21 6 -2 -19
-1 sprites/signals.png 274 136 01 21 6 -2 -19
-1 sprites/signals.png 290 136 01 21 6 -2 -19
-1 sprites/signals.png 306 136 01 21 6 -2 -19
-1 sprites/signals.png 322 136 01 21 6 -2 -19
-1 sprites/signals.png 338 136 01 21 6 -2 -19
-1 sprites/signals.png 354 136 01 21 6 -2 -19
-1 sprites/signals.png 370 136 01 21 6 -2 -19
-1 sprites/signals.png 386 136 01 21 6 -2 -19
-1 sprites/signals.png 402 136 01 21 6 -2 -19
-1 sprites/signals.png 418 136 01 21 6 -2 -19
-1 sprites/signals.png 434 136 01 21 6 -2 -19
-1 sprites/signals.png 450 136 01 21 6 -2 -19
-1 sprites/signals.png 466 136 01 21 6 -2 -19
-1 sprites/signals.png 482 136 01 21 6 -2 -19
-1 sprites/signals.png 498 136 01 21 6 -2 -19
-1 sprites/signals.png 514 136 01 21 6 -2 -19
-1 sprites/signals.png 530 136 01 21 6 -2 -19
-1 sprites/signals.png 546 136 01 21 6 -2 -19
-1 sprites/signals.png 562 136 01 21 6 -2 -19
-1 sprites/signals.png 578 136 01 21 6 -2 -19
-1 sprites/signals.png 594 136 01 21 6 -2 -19
-1 sprites/signals.png 610 136 01 21 6 -2 -19
-1 sprites/signals.png 626 136 01 21 6 -2 -19
-1 sprites/signals.png 642 136 01 21 10 -6 -19
-1 sprites/signals.png 658 136 01 23 7 -3 -21
-1 sprites/signals.png 674 136 01 21 10 1 -19
-1 sprites/signals.png 690 136 01 21 9 1 -19
-1 sprites/signals.png 706 136 01 21 9 1 -19
-1 sprites/signals.png 722 136 01 23 6 1 -21
-1 sprites/signals.png 738 136 01 21 10 -7 -19
-1 sprites/signals.png 754 136 01 21 10 -7 -19
-1 sprites/signals.png 770 136 01 21 2 1 -19
-1 sprites/signals.png 786 136 01 24 2 1 -22
-1 sprites/signals.png 2 184 01 23 2 1 -21
-1 sprites/signals.png 18 184 01 26 2 1 -24
-1 sprites/signals.png 34 184 01 21 11 -7 -19
-1 sprites/signals.png 50 184 01 21 8 -4 -19
-1 sprites/signals.png 66 184 01 21 11 1 -19
-1 sprites/signals.png 82 184 01 21 8 1 -19
-1 sprites/signals.png 98 184 01 21 12 -6 -19
-1 sprites/signals.png 130 184 01 23 9 -3 -21
-1 sprites/signals.png 146 184 01 21 12 -1 -19
-1 sprites/signals.png 178 184 01 21 11 -1 -19
-1 sprites/signals.png 194 184 01 21 11 -1 -19
-1 sprites/signals.png 210 184 01 23 8 -1 -21
-1 sprites/signals.png 226 184 01 21 12 -7 -19
-1 sprites/signals.png 258 184 01 21 12 -7 -19
-1 sprites/signals.png 290 184 01 21 4 -1 -19
-1 sprites/signals.png 306 184 01 24 4 -1 -22
-1 sprites/signals.png 322 184 01 23 4 1 -21
-1 sprites/signals.png 338 184 01 26 4 1 -24
-1 sprites/signals.png 354 184 01 21 13 -7 -19
-1 sprites/signals.png 386 184 01 21 10 -4 -19
-1 sprites/signals.png 402 184 01 21 13 -1 -19
-1 sprites/signals.png 434 184 01 21 10 -1 -19
-1 sprites/signals.png 450 184 01 21 11 -6 -19
-1 sprites/signals.png 466 184 01 23 8 -3 -21
-1 sprites/signals.png 482 184 01 21 11 0 -19
-1 sprites/signals.png 498 184 01 21 10 0 -19
-1 sprites/signals.png 514 184 01 21 10 0 -19
-1 sprites/signals.png 530 184 01 23 7 0 -21
-1 sprites/signals.png 546 184 01 21 11 -7 -19
-1 sprites/signals.png 562 184 01 21 11 -7 -19
-1 sprites/signals.png 578 184 01 21 4 1 -19
-1 sprites/signals.png 594 184 01 24 4 1 -22
-1 sprites/signals.png 610 184 01 23 4 -1 -21
-1 sprites/signals.png 626 184 01 26 4 -1 -24
-1 sprites/signals.png 642 184 01 21 12 -7 -19
-1 sprites/signals.png 674 184 01 21 9 -4 -19
-1 sprites/signals.png 690 184 01 21 12 0 -19
-1 sprites/signals.png 722 184 01 21 9 0 -19
-1 sprites/signals.png 738 184 01 21 11 -6 -19
-1 sprites/signals.png 754 184 01 23 8 -3 -21
-1 sprites/signals.png 770 184 01 21 11 0 -19
-1 sprites/signals.png 786 184 01 21 10 0 -19
-1 sprites/signals.png 2 232 01 21 10 0 -19
-1 sprites/signals.png 18 232 01 23 7 0 -21
-1 sprites/signals.png 34 232 01 21 11 -7 -19
-1 sprites/signals.png 50 232 01 21 11 -7 -19
-1 sprites/signals.png 66 232 01 21 4 1 -19
-1 sprites/signals.png 82 232 01 24 4 1 -22
-1 sprites/signals.png 98 232 01 23 4 -1 -21
-1 sprites/signals.png 114 232 01 26 4 -1 -24
-1 sprites/signals.png 130 232 01 21 12 -7 -19
-1 sprites/signals.png 162 232 01 21 9 -4 -19
-1 sprites/signals.png 178 232 01 21 12 0 -19
-1 sprites/signals.png 210 232 01 21 9 0 -19
-1 * 6 07 85 01 \70 3B F2
-1 * 6 07 86 01 \70 04 F1
-1 * 3 05 04 F0
-1 sprites/signals.png 274 232 01 21 6 -2 -19
-1 sprites/signals.png 290 232 01 21 6 -2 -19
-1 sprites/signals.png 306 232 01 21 6 -2 -19
-1 sprites/signals.png 322 232 01 21 6 -2 -19
-1 sprites/signals.png 338 232 01 21 6 -2 -19
-1 sprites/signals.png 354 232 01 21 6 -2 -19
-1 sprites/signals.png 370 232 01 21 6 -2 -19
-1 sprites/signals.png 386 232 01 21 6 -2 -19
-1 sprites/signals.png 402 232 01 21 6 -2 -19
-1 sprites/signals.png 418 232 01 21 6 -2 -19
-1 sprites/signals.png 434 232 01 21 6 -2 -19
-1 sprites/signals.png 450 232 01 21 6 -2 -19
-1 sprites/signals.png 466 232 01 21 6 -2 -19
-1 sprites/signals.png 482 232 01 21 6 -2 -19
-1 sprites/signals.png 498 232 01 21 6 -2 -19
-1 sprites/signals.png 514 232 01 21 6 -2 -19
-1 sprites/signals.png 530 232 01 21 6 -2 -19
-1 sprites/signals.png 546 232 01 21 6 -2 -19
-1 sprites/signals.png 562 232 01 21 6 -2 -19
-1 sprites/signals.png 578 232 01 21 6 -2 -19
-1 sprites/signals.png 594 232 01 21 6 -2 -19
-1 sprites/signals.png 610 232 01 21 6 -2 -19
-1 sprites/signals.png 626 232 01 21 6 -2 -19
-1 sprites/signals.png 642 232 01 21 6 -2 -19
-1 sprites/signals.png 658 232 01 21 6 -2 -19
-1 sprites/signals.png 674 232 01 21 6 -2 -19
-1 sprites/signals.png 690 232 01 21 6 -2 -19
-1 sprites/signals.png 706 232 01 21 6 -2 -19
-1 sprites/signals.png 722 232 01 21 6 -2 -19
-1 sprites/signals.png 738 232 01 21 6 -2 -19
-1 sprites/signals.png 754 232 01 21 6 -2 -19
-1 sprites/signals.png 770 232 01 21 6 -2 -19
-1 sprites/signals.png 786 232 01 21 6 -2 -19
-1 sprites/signals.png 2 280 01 21 6 -2 -19
-1 sprites/signals.png 18 280 01 21 6 -2 -19
-1 sprites/signals.png 34 280 01 21 6 -2 -19
-1 sprites/signals.png 50 280 01 21 6 -2 -19
-1 sprites/signals.png 66 280 01 21 6 -2 -19
-1 sprites/signals.png 82 280 01 21 6 -2 -19
-1 sprites/signals.png 98 280 01 21 6 -2 -19
-1 sprites/signals.png 114 280 01 21 6 -2 -19
-1 sprites/signals.png 130 280 01 21 6 -2 -19
-1 sprites/signals.png 146 280 01 21 6 -2 -19
-1 sprites/signals.png 162 280 01 21 6 -2 -19
-1 sprites/signals.png 178 280 01 21 6 -2 -19
-1 sprites/signals.png 194 280 01 21 6 -2 -19
-1 sprites/signals.png 210 280 01 21 6 -2 -19
-1 sprites/signals.png 226 280 01 21 6 -2 -19
-1 sprites/signals.png 242 280 01 21 10 -7 -19
-1 sprites/signals.png 258 280 01 23 10 -8 -21
-1 sprites/signals.png 274 280 01 23 10 -7 -21
-1 sprites/signals.png 290 280 01 26 7 -5 -24
-1 sprites/signals.png 306 280 01 21 10 -7 -19
-1 sprites/signals.png 322 280 01 23 10 -6 -21
-1 sprites/signals.png 338 280 01 23 10 1 -21
-1 sprites/signals.png 354 280 01 26 7 2 -24
-1 sprites/signals.png 370 280 01 23 3 0 -21
-1 sprites/signals.png 386 280 01 26 3 0 -24
-1 sprites/signals.png 402 280 01 21 3 0 -19
-1 sprites/signals.png 418 280 01 24 3 0 -22
-1 sprites/signals.png 434 280 01 21 12 0 -19
-1 sprites/signals.png 466 280 01 24 9 0 -22
-1 sprites/signals.png 482 280 01 21 12 -9 -19
-1 sprites/signals.png 514 280 01 24 9 -6 -22
-1 sprites/signals.png 530 280 01 21 12 -9 -19
-1 sprites/signals.png 562 280 01 23 11 -9 -21
-1 sprites/signals.png 578 280 01 23 11 -7 -21
-1 sprites/signals.png 594 280 01 26 9 -5 -24
-1 sprites/signals.png 610 280 01 21 12 -7 -19
-1 sprites/signals.png 642 280 01 23 11 -6 -21
-1 sprites/signals.png 658 280 01 23 11 0 -21
-1 sprites/signals.png 674 280 01 26 9 0 -24
-1 sprites/signals.png 690 280 01 23 5 0 -21
-1 sprites/signals.png 706 280 01 26 5 0 -24
-1 sprites/signals.png 722 280 01 21 5 -2 -19
-1 sprites/signals.png 738 280 01 24 5 -2 -22
-1 sprites/signals.png 754 280 01 21 13 -1 -19
-1 sprites/signals.png 786 280 01 24 10 -1 -22
-1 sprites/signals.png 2 328 01 21 13 -9 -19
-1 sprites/signals.png 34 328 01 24 10 -6 -22
-1 sprites/signals.png 50 328 01 21 11 -8 -19
-1 sprites/signals.png 66 328 01 23 10 -8 -21
-1 sprites/signals.png 82 328 01 23 10 -7 -21
-1 sprites/signals.png 98 328 01 26 8 -5 -24
-1 sprites/signals.png 114 328 01 21 11 -7 -19
-1 sprites/signals.png 130 328 01 23 10 -6 -21
-1 sprites/signals.png 146 328 01 23 10 1 -21
-1 sprites/signals.png 162 328 01 26 8 1 -24
-1 sprites/signals.png 178 328 01 23 5 0 -21
-1 sprites/signals.png 194 328 01 26 5 0 -24
-1 sprites/signals.png 210 328 01 21 5 -2 -19
-1 sprites/signals.png 226 328 01 24 5 -2 -22
-1 sprites/signals.png 242 328 01 21 12 0 -19
-1 sprites/signals.png 274 328 01 24 9 0 -22
-1 sprites/signals.png 290 328 01 21 12 -9 -19
-1 sprites/signals.png 322 328 01 24 9 -6 -22
-1 sprites/signals.png 338 328 01 21 11 -8 -19
-1 sprites/signals.png 354 328 01 23 10 -8 -21
-1 sprites/signals.png 370 328 01 23 10 -7 -21
-1 sprites/signals.png 386 328 01 26 8 -5 -24
-1 sprites/signals.png 402 328 01 21 11 -7 -19
-1 sprites/signals.png 418 328 01 23 10 -6 -21
-1 sprites/signals.png 434 328 01 23 10 1 -21
-1 sprites/signals.png 450 328 01 26 8 1 -24
-1 sprites/signals.png 466 328 01 23 5 0 -21
-1 sprites/signals.png 482 328 01 26 5 0 -24
-1 sprites/signals.png 498 328 01 21 5 -2 -19
-1 sprites/signals.png 514 328 01 24 5 -2 -22
-1 sprites/signals.png 530 328 01 21 12 0 -19
-1 sprites/signals.png 562 328 01 24 9 0 -22
-1 sprites/signals.png 578 328 01 21 12 -9 -19
-1 sprites/signals.png 610 328 01 24 9 -6 -22
-1 sprites/signals.png 626 328 01 19 6 -2 -17
-1 sprites/signals.png 642 328 01 19 6 -2 -17
-1 sprites/signals.png 658 328 01 19 6 -2 -17
-1 sprites/signals.png 674 328 01 19 6 -2 -17
-1 sprites/signals.png 690 328 01 19 6 -2 -17
-1 sprites/signals.png 706 328 01 19 6 -2 -17
-1 sprites/signals.png 722 328 01 19 6 -2 -17
-1 sprites/signals.png 738 328 01 19 6 -2 -17
-1 sprites/signals.png 754 328 01 19 6 -2 -17
-1 sprites/signals.png 770 328 01 19 6 -2 -17
-1 sprites/signals.png 786 328 01 19 6 -2 -17
-1 sprites/signals.png 2 376 01 19 6 -2 -17
-1 sprites/signals.png 18 376 01 19 6 -2 -17
-1 sprites/signals.png 34 376 01 19 6 -2 -17
-1 sprites/signals.png 50 376 01 19 6 -2 -17
-1 sprites/signals.png 66 376 01 19 6 -2 -17
-1 sprites/signals.png 82 376 01 19 6 -2 -17
-1 sprites/signals.png 98 376 01 19 6 -2 -17
-1 sprites/signals.png 114 376 01 19 6 -2 -17
-1 sprites/signals.png 130 376 01 19 6 -2 -17
-1 sprites/signals.png 146 376 01 19 6 -2 -17
-1 sprites/signals.png 162 376 01 19 6 -2 -17
-1 sprites/signals.png 178 376 01 19 6 -2 -17
-1 sprites/signals.png 194 376 01 19 6 -2 -17
-1 sprites/signals.png 210 376 01 19 6 -2 -17
-1 sprites/signals.png 226 376 01 19 6 -2 -17
-1 sprites/signals.png 242 376 01 19 6 -2 -17
-1 sprites/signals.png 258 376 01 19 6 -2 -17
-1 sprites/signals.png 274 376 01 19 6 -2 -17
-1 sprites/signals.png 290 376 01 19 6 -2 -17
-1 sprites/signals.png 306 376 01 19 6 -2 -17
-1 sprites/signals.png 322 376 01 19 6 -2 -17
-1 sprites/signals.png 338 376 01 21 6 -2 -19
-1 sprites/signals.png 354 376 01 21 6 -2 -19
-1 sprites/signals.png 370 376 01 21 6 -2 -19
-1 sprites/signals.png 386 376 01 21 6 -2 -19
-1 sprites/signals.png 402 376 01 21 6 -2 -19
-1 sprites/signals.png 418 376 01 21 6 -2 -19
-1 sprites/signals.png 434 376 01 21 6 -2 -19
-1 sprites/signals.png 450 376 01 21 6 -2 -19
-1 sprites/signals.png 466 376 01 21 6 -2 -19
-1 sprites/signals.png 482 376 01 21 6 -2 -19
-1 sprites/signals.png 498 376 01 21 6 -2 -19
-1 sprites/signals.png 514 376 01 21 6 -2 -19
-1 sprites/signals.png 530 376 01 21 6 -2 -19
-1 sprites/signals.png 546 376 01 21 6 -2 -19
-1 sprites/signals.png 562 376 01 21 6 -2 -19
-1 sprites/signals.png 578 376 01 21 6 -2 -19
-1 sprites/signals.png 594 376 01 21 6 -2 -19
-1 sprites/signals.png 610 376 01 21 6 -2 -19
-1 sprites/signals.png 626 376 01 21 6 -2 -19
-1 sprites/signals.png 642 376 01 21 6 -2 -19
-1 sprites/signals.png 658 376 01 21 6 -2 -19
-1 sprites/signals.png 674 376 01 21 6 -2 -19
-1 sprites/signals.png 690 376 01 21 6 -2 -19
-1 sprites/signals.png 706 376 01 21 6 -2 -19
-1 sprites/signals.png 722 376 01 21 6 -2 -19
-1 sprites/signals.png 738 376 01 21 6 -2 -19
-1 sprites/signals.png 754 376 01 21 6 -2 -19
-1 sprites/signals.png 770 376 01 21 6 -2 -19
-1 sprites/signals.png 786 376 01 21 6 -2 -19
-1 sprites/signals.png 2 408 01 21 6 -2 -19
-1 sprites/signals.png 18 408 01 21 6 -2 -19
-1 sprites/signals.png 34 408 01 21 6 -2 -19
-1 sprites/signals.png 50 408 01 21 10 -7 -19
-1 sprites/signals.png 66 408 01 23 10 -8 -21
-1 sprites/signals.png 82 408 01 23 10 -7 -21
-1 sprites/signals.png 98 408 01 26 7 -5 -24
-1 sprites/signals.png 114 408 01 21 10 -7 -19
-1 sprites/signals.png 130 408 01 23 10 -6 -21
-1 sprites/signals.png 146 408 01 23 10 1 -21
-1 sprites/signals.png 162 408 01 26 7 2 -24
-1 sprites/signals.png 178 408 01 23 3 0 -21
-1 sprites/signals.png 194 408 01 26 3 0 -24
-1 sprites/signals.png 210 408 01 21 3 0 -19
-1 sprites/signals.png 226 408 01 24 3 0 -22
-1 sprites/signals.png 242 408 01 21 12 0 -19
-1 sprites/signals.png 274 408 01 24 9 0 -22
-1 sprites/signals.png 290 408 01 21 12 -9 -19
-1 sprites/signals.png 322 408 01 24 9 -6 -22
-1 sprites/signals.png 338 408 01 21 12 -9 -19
-1 sprites/signals.png 370 408 01 23 11 -9 -21
-1 sprites/signals.png 386 408 01 23 11 -7 -21
-1 sprites/signals.png 402 408 01 26 9 -5 -24
-1 sprites/signals.png 418 408 01 21 12 -7 -19
-1 sprites/signals.png 450 408 01 23 11 -6 -21
-1 sprites/signals.png 466 408 01 23 11 0 -21
-1 sprites/signals.png 482 408 01 26 9 0 -24
-1 sprites/signals.png 498 408 01 23 5 -1 -21
-1 sprites/signals.png 514 408 01 26 5 -1 -24
-1 sprites/signals.png 530 408 01 21 5 -1 -19
-1 sprites/signals.png 546 408 01 24 5 -1 -22
-1 sprites/signals.png 562 408 01 21 13 -1 -19
-1 sprites/signals.png 594 408 01 24 10 -1 -22
-1 sprites/signals.png 610 408 01 21 13 -9 -19
-1 sprites/signals.png 642 408 01 24 10 -6 -22
-1 sprites/signals.png 658 408 01 21 11 -8 -19
-1 sprites/signals.png 674 408 01 23 10 -8 -21
-1 sprites/signals.png 690 408 01 23 10 -7 -21
-1 sprites/signals.png 706 408 01 26 8 -5 -24
-1 sprites/signals.png 722 408 01 21 11 -7 -19
-1 sprites/signals.png 738 408 01 23 10 -6 -21
-1 sprites/signals.png 754 408 01 23 10 1 -21
-1 sprites/signals.png 770 408 01 26 8 1 -24
-1 sprites/signals.png 786 408 01 23 5 0 -21
-1 sprites/signals.png 2 456 01 26 5 0 -24
-1 sprites/signals.png 18 456 01 21 5 -2 -19
-1 sprites/signals.png 34 456 01 24 5 -2 -22
-1 sprites/signals.png 50 456 01 21 12 0 -19
-1 sprites/signals.png 82 456 01 24 9 0 -22
-1 sprites/signals.png 98 456 01 21 12 -9 -19
-1 sprites/signals.png 130 456 01 24 9 -6 -22
-1 sprites/signals.png 146 456 01 21 11 -8 -19
-1 sprites/signals.png 162 456 01 23 10 -8 -21
-1 sprites/signals.png 178 456 01 23 10 -7 -21
-1 sprites/signals.png 194 456 01 26 8 -5 -24
-1 sprites/signals.png 210 456 01 21 11 -7 -19
-1 sprites/signals.png 226 456 01 23 10 -6 -21
-1 sprites/signals.png 242 456 01 23 10 1 -21
-1 sprites/signals.png 258 456 01 26 8 1 -24
-1 sprites/signals.png 274 456 01 23 5 0 -21
-1 sprites/signals.png 290 456 01 26 5 0 -24
-1 sprites/signals.png 306 456 01 21 5 -2 -19
-1 sprites/signals.png 322 456 01 24 5 -2 -22
-1 sprites/signals.png 338 456 01 21 12 0 -19
-1 sprites/signals.png 370 456 01 24 9 0 -22
-1 sprites/signals.png 386 456 01 21 12 -9 -19
-1 sprites/signals.png 418 456 01 24 9 -6 -22

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

View File

@@ -1,22 +0,0 @@
//
// $Id$
//
// This file is part of OpenTTD.
// OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
// OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
// See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
//
-1 * 0 0C "Sloped tracks"
-1 * 3 05 0F 0C
-1 sprites/sloped_tracks.png 50 8 09 29 42 -19 -3
-1 sprites/sloped_tracks.png 98 8 09 13 41 -20 5
-1 sprites/sloped_tracks.png 146 8 09 14 42 -19 5
-1 sprites/sloped_tracks.png 194 8 09 29 42 -21 -3
-1 sprites/sloped_tracks.png 242 8 09 25 33 -15 -1
-1 sprites/sloped_tracks.png 290 8 09 10 33 -15 7
-1 sprites/sloped_tracks.png 338 8 09 10 34 -15 7
-1 sprites/sloped_tracks.png 386 8 09 25 34 -15 -1
-1 sprites/sloped_tracks.png 434 8 09 23 31 -13 -1
-1 sprites/sloped_tracks.png 482 8 09 10 32 -15 7
-1 sprites/sloped_tracks.png 530 8 09 10 31 -15 7
-1 sprites/sloped_tracks.png 578 8 09 23 31 -16 -1

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -1,123 +0,0 @@
//
// $Id$
//
// This file is part of OpenTTD.
// OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
// OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
// See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
//
-1 * 0 0C "Tram track graphics by PikkaBird"
-1 * 3 05 0B 71
-1 sprites/tramtracks.png 18 8 09 13 20 0 4
-1 sprites/tramtracks.png 50 8 09 13 20 0 4
-1 sprites/tramtracks.png 82 8 03 36 64 -18 -8
-1 sprites/tramtracks.png 162 8 03 36 62 -16 -8
-1 sprites/tramtracks.png 242 8 09 31 64 -31 0
-1 sprites/tramtracks.png 322 8 09 31 64 -31 0
-1 sprites/tramtracks.png 402 8 09 31 64 -31 0
-1 sprites/tramtracks.png 482 8 09 31 64 -31 0
-1 sprites/tramtracks.png 562 8 09 31 64 -31 0
-1 sprites/tramtracks.png 642 8 09 31 64 -31 0
-1 sprites/tramtracks.png 722 8 09 31 64 -31 0
-1 sprites/tramtracks.png 2 56 09 31 64 -31 0
-1 sprites/tramtracks.png 82 56 09 31 64 -31 0
-1 sprites/tramtracks.png 162 56 09 31 64 -31 0
-1 sprites/tramtracks.png 242 56 09 31 64 -31 0
-1 sprites/tramtracks.png 322 56 09 39 64 -31 -8
-1 sprites/tramtracks.png 402 56 09 23 64 -31 0
-1 sprites/tramtracks.png 482 56 09 23 64 -31 0
-1 sprites/tramtracks.png 562 56 09 39 64 -31 -8
-1 sprites/tramtracks.png 642 56 09 31 64 -31 0
-1 sprites/tramtracks.png 722 56 09 31 64 -31 0
-1 sprites/tramtracks.png 2 120 09 31 64 -31 0
-1 sprites/tramtracks.png 82 120 09 31 64 -31 0
-1 sprites/tramtracks.png 162 120 09 31 64 -31 0
-1 sprites/tramtracks.png 242 120 09 31 64 -31 0
-1 sprites/tramtracks.png 322 120 09 31 64 -31 0
-1 sprites/tramtracks.png 402 120 09 31 64 -31 0
-1 sprites/tramtracks.png 482 120 09 31 64 -31 0
-1 sprites/tramtracks.png 562 120 09 31 64 -31 0
-1 sprites/tramtracks.png 642 120 09 31 64 -31 0
-1 sprites/tramtracks.png 722 120 09 31 64 -31 0
-1 sprites/tramtracks.png 2 168 09 31 64 -31 0
-1 sprites/tramtracks.png 82 168 09 31 64 -31 0
-1 sprites/tramtracks.png 162 168 09 31 64 -31 0
-1 sprites/tramtracks.png 242 168 09 31 64 -31 0
-1 sprites/tramtracks.png 322 168 09 31 64 -31 0
-1 sprites/tramtracks.png 402 168 09 31 64 -31 0
-1 sprites/tramtracks.png 482 168 09 31 64 -31 0
-1 sprites/tramtracks.png 562 168 09 39 64 -31 -8
-1 sprites/tramtracks.png 642 168 09 23 64 -31 0
-1 sprites/tramtracks.png 722 168 09 23 64 -31 0
-1 sprites/tramtracks.png 2 232 09 39 64 -31 -8
-1 sprites/tramtracks.png 82 232 09 31 64 -31 0
-1 sprites/tramtracks.png 162 232 09 31 64 -31 0
-1 sprites/tramtracks.png 242 232 09 31 64 -31 0
-1 sprites/tramtracks.png 322 232 09 31 64 -31 0
-1 sprites/tramtracks.png 402 232 09 31 64 -31 0
-1 sprites/tramtracks.png 482 232 09 31 64 -31 0
-1 sprites/tramtracks.png 562 232 09 20 20 0 0
-1 sprites/tramtracks.png 594 232 09 31 64 -31 0
-1 sprites/tramtracks.png 674 232 09 64 62 2 -49
-1 sprites/tramtracks.png 2 312 09 31 64 -31 0
-1 sprites/tramtracks.png 82 312 09 64 62 -62 -49
-1 sprites/tramtracks.png 162 312 09 64 62 -62 -49
-1 sprites/tramtracks.png 242 312 09 64 62 2 -49
-1 sprites/tramtracks.png 322 312 09 48 64 -31 -17
-1 sprites/tramtracks.png 402 312 09 48 64 -31 -17
-1 sprites/tramtracks.png 482 312 09 48 64 -31 -17
-1 sprites/tramtracks.png 562 312 09 48 64 -31 -17
-1 sprites/tramtracks.png 642 312 09 48 64 -31 -17
-1 sprites/tramtracks.png 722 312 09 48 64 -31 -17
-1 sprites/tramtracks.png 2 392 09 48 64 -31 -17
-1 sprites/tramtracks.png 82 392 09 48 64 -31 -17
-1 sprites/tramtracks.png 162 392 09 48 64 -31 -17
-1 sprites/tramtracks.png 242 392 09 48 64 -31 -17
-1 sprites/tramtracks.png 322 392 09 48 64 -31 -17
-1 sprites/tramtracks.png 402 392 09 48 64 -31 -17
-1 sprites/tramtracks.png 482 392 09 48 64 -31 -17
-1 sprites/tramtracks.png 562 392 09 56 64 -31 -25
-1 sprites/tramtracks.png 642 392 09 48 64 -31 -17
-1 sprites/tramtracks.png 722 392 09 48 64 -31 -17
-1 sprites/tramtracks.png 2 472 09 56 64 -31 -25
-1 sprites/tramtracks.png 82 472 09 56 64 -31 -25
-1 sprites/tramtracks.png 162 472 09 48 64 -31 -17
-1 sprites/tramtracks.png 242 472 09 48 64 -31 -17
-1 sprites/tramtracks.png 322 472 09 56 64 -31 -25
-1 sprites/tramtracks.png 402 472 09 31 64 -31 0
-1 sprites/tramtracks.png 482 472 09 31 64 -31 0
-1 sprites/tramtracks.png 562 472 09 31 64 -31 0
-1 sprites/tramtracks.png 642 472 09 31 64 -31 0
-1 sprites/tramtracks.png 722 472 09 48 64 -31 -17
-1 sprites/tramtracks.png 2 552 09 48 64 -31 -17
-1 sprites/tramtracks.png 82 552 09 48 64 -31 -17
-1 sprites/tramtracks.png 162 552 09 48 64 -31 -17
-1 sprites/tramtracks.png 242 552 09 48 64 -31 -17
-1 sprites/tramtracks.png 322 552 09 48 64 -31 -17
-1 sprites/tramtracks.png 402 552 09 48 64 -31 -17
-1 sprites/tramtracks.png 482 552 09 48 64 -31 -17
-1 sprites/tramtracks.png 562 552 09 48 64 -31 -17
-1 sprites/tramtracks.png 642 552 09 48 64 -31 -17
-1 sprites/tramtracks.png 722 552 09 48 64 -31 -17
-1 sprites/tramtracks.png 2 616 09 48 64 -31 -17
-1 sprites/tramtracks.png 82 616 09 48 64 -31 -17
-1 sprites/tramtracks.png 162 616 09 48 64 -31 -17
-1 sprites/tramtracks.png 242 616 09 48 64 -31 -17
-1 sprites/tramtracks.png 322 616 09 48 64 -31 -17
-1 sprites/tramtracks.png 402 616 09 48 64 -31 -17
-1 sprites/tramtracks.png 482 616 09 48 64 -31 -17
-1 sprites/tramtracks.png 562 616 09 48 64 -31 -17
-1 sprites/tramtracks.png 642 616 09 56 64 -31 -25
-1 sprites/tramtracks.png 722 616 09 48 64 -31 -17
-1 sprites/tramtracks.png 2 696 09 56 64 -31 -25
-1 sprites/tramtracks.png 82 696 09 48 64 -31 -17
-1 sprites/tramtracks.png 162 696 09 56 64 -31 -25
-1 sprites/tramtracks.png 242 696 09 48 64 -31 -17
-1 sprites/tramtracks.png 322 696 09 56 64 -31 -25
-1 sprites/tramtracks.png 402 696 09 48 64 -31 -17
-1 sprites/tramtracks.png 482 696 09 31 64 -31 0
-1 sprites/tramtracks.png 562 696 09 31 64 -31 0
-1 sprites/tramtracks.png 642 696 09 39 64 -31 -8
-1 sprites/tramtracks.png 722 696 09 23 64 -31 0
-1 sprites/tramtracks.png 2 776 09 23 64 -31 0
-1 sprites/tramtracks.png 82 776 09 39 64 -31 -8

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 894 B

After

Width:  |  Height:  |  Size: 941 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.6 KiB

After

Width:  |  Height:  |  Size: 7.1 KiB

View File

@@ -1,11 +1,11 @@
# $Id$
# http://standards.freedesktop.org/desktop-entry-spec/desktop-entry-spec-1.0.html
# http://standards.freedesktop.org/desktop-entry-spec/desktop-entry-spec-1.1.html
[Desktop Entry]
Type=Application
Version=1.0
Version=1.1
Name=!!MENU_NAME!!
Icon=!!TTD!!
Comment=A clone of Transport Tycoon Deluxe
Icon=openttd
Exec=!!TTD!!
Terminal=false
Categories=!!MENU_GROUP!!
Comment=A clone of Transport Tycoon Deluxe

View File

@@ -1,15 +0,0 @@
# $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}

View File

@@ -1,81 +1,3 @@
openttd (1.1.0~beta4) unstable; urgency=low
* New upstream release 1.1.0-beta4
-- Matthijs Kooijman <matthijs@stdin.nl> Fri, 21 Jan 2011 00:00:00 +0100
openttd (1.1.0~beta3) unstable; urgency=low
* New upstream release 1.1.0-beta3
-- Matthijs Kooijman <matthijs@stdin.nl> Sun, 09 Jan 2011 18:00:00 +0100
openttd (1.1.0~beta2) unstable; urgency=low
* New upstream release 1.1.0-beta2
-- Matthijs Kooijman <matthijs@stdin.nl> Fri, 31 Dec 2010 18:00:00 +0100
openttd (1.1.0~beta1) unstable; urgency=low
* New upstream release 1.1.0-beta1
-- Matthijs Kooijman <matthijs@stdin.nl> Fri, 24 Dec 2010 00:00:00 +0100
openttd (1.0.5-0) unstable; urgency=low
* New upstream release 1.0.5
-- Matthijs Kooijman <matthijs@stdin.nl> Sat, 20 Nov 2010 21:00:00 +0000
openttd (1.0.5~rc2-0) unstable; urgency=low
* New upstream release 1.0.5~rc2
-- Matthijs Kooijman <matthijs@stdin.nl> Sun, 14 Nov 2010 15:00:00 +0000
openttd (1.0.5~rc1-0) unstable; urgency=low
* New upstream release 1.0.5-RC1
-- Matthijs Kooijman <matthijs@stdin.nl> Sun, 31 Oct 2010 15:00:00 +0000
openttd (1.0.4-0) unstable; urgency=low
* New upstream release 1.0.4
-- Matthijs Kooijman <matthijs@stdin.nl> Tue, 14 Sep 2010 20:00:00 +0000
openttd (1.0.4~rc1-0) unstable; urgency=low
* New upstream release 1.0.4-RC1
-- Matthijs Kooijman <matthijs@stdin.nl> Mon, 30 Aug 2010 20:00:00 +0000
openttd (1.0.3-0) unstable; urgency=low
* New upstream release 1.0.3
-- Matthijs Kooijman <matthijs@stdin.nl> Sun, 01 Aug 2010 00:00:00 +0000
openttd (1.0.3~rc1-0) unstable; urgency=low
* New upstream release 1.0.3-RC1
-- Matthijs Kooijman <matthijs@stdin.nl> Sat, 05 Jul 2010 17:37:21 +0000
openttd (1.0.2-0) unstable; urgency=low
* New upstream release 1.0.2
-- Matthijs Kooijman <matthijs@stdin.nl> Sat, 19 Jun 2010 18:36:21 +0000
openttd (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
@@ -305,7 +227,7 @@ openttd (0.6.0-2) unstable; urgency=low
[ Matthijs Kooijman ]
* Don't install anything into ~ during make install, this prevented
successful builds on some architectures. Fix imported from upstream.
* Put the homepage in its own Homepage field instead of in the description.
* Put the homepage in it's own Homepage field instead of in the description.
* Bump Standards-Version to 3.7.3
-- Jordi Mallach <jordi@debian.org> Thu, 03 Apr 2008 00:07:10 +0200

View File

@@ -4,7 +4,7 @@ Priority: optional
Maintainer: Matthijs Kooijman <matthijs@stdin.nl>
Uploaders: Jordi Mallach <jordi@debian.org>
DM-Upload-Allowed: yes
Build-Depends: debhelper (>= 7.0.50), libsdl-dev, zlib1g-dev, libpng-dev, libfreetype6-dev, libfontconfig-dev, libicu-dev, liblzma-dev, liblzo2-dev
Build-Depends: debhelper (>= 7.0.50), libsdl-dev, zlib1g-dev, libpng-dev, libfreetype6-dev, libfontconfig-dev, libicu-dev, liblzo2-dev
Standards-Version: 3.8.4
Vcs-Browser: http://git.debian.org/?p=collab-maint/openttd.git
Vcs-Git: git://git.debian.org/collab-maint/openttd.git
@@ -25,13 +25,3 @@ Description: reimplementation of Transport Tycoon Deluxe with enhancements
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).
Package: openttd-dbg
Architecture: any
Section: debug
Priority: extra
Depends: openttd (= ${binary:Version}), ${misc:Depends}
Description: debugging symbols for openttd
This package contains the debugging symbols for OpenTTD, the reimplementation
of the Micropose game "Transport Tycoon Deluxe" with lots of new features and
enhancements.

View File

@@ -7,14 +7,13 @@ wrapper instead of the openttd binary directly.
Index: media/openttd.desktop.in
===================================================================
--- a/media/openttd.desktop.in (revision 20124)
--- a/media/openttd.desktop.in (revision 17228)
+++ b/media/openttd.desktop.in (working copy)
@@ -5,7 +5,7 @@
Version=1.1
@@ -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!!
Comment=A clone of Transport Tycoon Deluxe

View File

@@ -17,16 +17,21 @@ endif
# to be explicit about the dependencies, in case we're not running in a
# clean build root.
override_dh_auto_configure:
./configure $(CROSS) --prefix-dir=/usr --install-dir=debian/openttd --without-allegro --with-zlib --with-sdl --with-png --with-freetype --with-fontconfig --with-icu --with-liblzo2 --with-lzma --without-iconv --disable-strip CFLAGS="$(CFLAGS) -g" LDFLAGS="$(LDFLAGS) -Wl,-as-needed"
./configure $(CROSS) --prefix-dir=/usr --install-dir=debian/openttd --without-allegro --with-zlib --with-sdl --with-png --with-freetype --with-fontconfig --with-icu --with-liblzo2 --without-iconv
# Do some extra installation
override_dh_auto_install:
$(MAKE) install DO_NOT_INSTALL_CHANGELOG=1 DO_NOT_INSTALL_LICENSE=1
$(MAKE) install
# Install the wrapper and make it executable
install -d debian/openttd/usr/share/games/openttd/
install -m755 debian/openttd-wrapper debian/openttd/usr/share/games/openttd/
# Since 0.7.0, upstream Makefile installs some unwanted stuff.
-rm $(CURDIR)/debian/openttd/usr/share/doc/openttd/COPYING
-rm $(CURDIR)/debian/openttd/usr/share/doc/openttd/changelog.txt
-rm $(CURDIR)/debian/openttd/usr/share/doc/openttd/ob*_format.txt
# Don't do testing. Because the OpenTTD Makefile always does dependency
# generation (even on invalid targets), dh_auto_test thinks there is a
# "test" target, while there isn't.
@@ -36,7 +41,3 @@ override_dh_auto_test:
# target, while there isn't.
override_dh_auto_clean:
[ ! -f Makefile ] || $(MAKE) mrproper
# We want to strip the debug informatiton into the -dbg package.
override_dh_strip:
dh_strip --dbg-package=openttd-dbg

View File

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

View File

@@ -2,7 +2,7 @@
#-------------------------------------------------------------------------------
# spec file for the openttd rpm package
#
# Copyright (c) 2007-2011 The OpenTTD developers
# Copyright (c) 2007-2010 The OpenTTD developers
#
# This file and all modifications and additions to the pristine
# package are under the same license as the package itself
@@ -13,7 +13,7 @@
#-------------------------------------------------------------------------------
Name: openttd
Version: 1.1.0
Version: 1.0.0
Release: 1%{?dist}
Group: Amusements/Games
@@ -26,7 +26,6 @@ Source: %{name}-%{version}-source.tar.bz2
Requires: fontconfig
Requires: SDL
Requires: zlib
Requires: xz-devel
BuildRequires: gcc-c++
BuildRequires: fontconfig-devel
BuildRequires: libpng-devel

View File

@@ -1,9 +1,9 @@
# Version numbers to update
!define APPV_MAJOR 1
!define APPV_MINOR 1
!define APPV_MAINT 0
!define APPV_BUILD 3
!define APPV_EXTRA "-beta4"
!define APPV_MINOR 0
!define APPV_MAINT 1
!define APPV_BUILD 2
!define APPV_EXTRA ""
!define APPNAME "OpenTTD" ; Define application name
!define APPVERSION "${APPV_MAJOR}.${APPV_MINOR}.${APPV_MAINT}${APPV_EXTRA}" ; Define application version
@@ -49,8 +49,6 @@ CRCCheck force
ShowInstDetails show
ShowUninstDetails show
RequestExecutionLevel admin
Var SHORTCUTS
Var CDDRIVE
@@ -104,14 +102,9 @@ Page custom SelectCDEnter SelectCDExit ": TTD folder"
;--------------------------------------------------------------
; (Core) OpenTTD install section. Copies all internal game data
Section "!OpenTTD" Section1
; Make sure to be upgraded OpenTTD is not running
Call CheckOpenTTDRunning
; Overwrite files by default, but don't complain on failure
SetOverwrite try
SetShellVarContext all
; Define root variable relative to installer
!define PATH_ROOT "..\..\..\"
@@ -137,34 +130,23 @@ Section "!OpenTTD" Section1
; Copy the scripts
SetOutPath "$INSTDIR\scripts\"
File ${PATH_ROOT}bin\scripts\*.*
Push "$INSTDIR\scripts\readme.txt"
Call unix2dos
; Copy some documention files
SetOutPath "$INSTDIR\docs\"
File ${PATH_ROOT}docs\obg_format.txt
File ${PATH_ROOT}docs\obm_format.txt
File ${PATH_ROOT}docs\obs_format.txt
File ${PATH_ROOT}docs\multiplayer.txt
Push "$INSTDIR\docs\multiplayer.txt"
Call unix2dos
File ${PATH_ROOT}docs\32bpp.txt
Push "$INSTDIR\docs\32bpp.txt"
Call unix2dos
; Copy the rest of the stuff
SetOutPath "$INSTDIR\"
; Copy text files
File ${PATH_ROOT}changelog.txt
Push "$INSTDIR\changelog.txt"
Call unix2dos
File ${PATH_ROOT}COPYING
Push "$INSTDIR\COPYING"
Call unix2dos
File ${PATH_ROOT}readme.txt
Push "$INSTDIR\readme.txt"
Call unix2dos
File ${PATH_ROOT}known-bugs.txt
Push "$INSTDIR\known-bugs.txt"
Call unix2dos
; Copy executable
File /oname=openttd.exe ${BINARY_DIR}\openttd.exe
@@ -199,11 +181,6 @@ Section "!OpenTTD" Section1
CreateShortCut "$SMPROGRAMS\$SHORTCUTS\Readme.lnk" "$INSTDIR\Readme.txt"
CreateShortCut "$SMPROGRAMS\$SHORTCUTS\Changelog.lnk" "$INSTDIR\Changelog.txt"
CreateShortCut "$SMPROGRAMS\$SHORTCUTS\Known-bugs.lnk" "$INSTDIR\known-bugs.txt"
CreateDirectory "$SMPROGRAMS\$SHORTCUTS\Docs"
CreateShortCut "$SMPROGRAMS\$SHORTCUTS\Docs\Multiplayer.lnk" "$INSTDIR\docs\multiplayer.txt"
CreateShortCut "$SMPROGRAMS\$SHORTCUTS\Docs\32bpp.lnk" "$INSTDIR\docs\32bpp.txt"
CreateDirectory "$SMPROGRAMS\$SHORTCUTS\Scripts"
CreateShortCut "$SMPROGRAMS\$SHORTCUTS\Scripts\Readme.lnk" "$INSTDIR\scripts\readme.txt"
!insertmacro MUI_STARTMENU_WRITE_END
SectionEnd
@@ -324,11 +301,8 @@ SectionEnd
;-----------------------------------------------
; Uninstall section, deletes all installed files
Section "Uninstall"
SetShellVarContext all
IfFileExists "$INSTDIR\save" 0 NoRemoveSavedGames
MessageBox MB_YESNO|MB_ICONQUESTION \
"Remove the save game folders located at $\"$INSTDIR\save$\"?$\n \
"Remove the save game folders located at $\"$INSTDIR\save?$\"$\n \
If you choose Yes, your saved games will be deleted." \
IDYES RemoveSavedGames IDNO NoRemoveSavedGames
RemoveSavedGames:
@@ -338,9 +312,8 @@ Section "Uninstall"
RMDir "$INSTDIR\save"
NoRemoveSavedGames:
IfFileExists "$INSTDIR\scenario" 0 NoRemoveScen
MessageBox MB_YESNO|MB_ICONQUESTION \
"Remove the scenario folders located at $\"$INSTDIR\scenario$\"?$\n \
"Remove the scenario folders located at $\"$INSTDIR\scenario?$\"$\n \
If you choose Yes, your scenarios will be deleted." \
IDYES RemoveScen IDNO NoRemoveScen
RemoveScen:
@@ -366,9 +339,6 @@ Section "Uninstall"
Delete "$SMPROGRAMS\$SHORTCUTS\Readme.lnk"
Delete "$SMPROGRAMS\$SHORTCUTS\Changelog.lnk"
Delete "$SMPROGRAMS\$SHORTCUTS\Known-bugs.lnk"
Delete "$SMPROGRAMS\$SHORTCUTS\Docs\Multiplayer.lnk"
Delete "$SMPROGRAMS\$SHORTCUTS\Docs\32bpp.lnk"
Delete "$SMPROGRAMS\$SHORTCUTS\Scripts\Readme.lnk"
; Clean up OpenTTD dir
Delete "$INSTDIR\changelog.txt"
@@ -449,8 +419,6 @@ Section "Uninstall"
; Remove remaining directories
RMDir "$SMPROGRAMS\$SHORTCUTS\Extras\"
RMDir "$SMPROGRAMS\$SHORTCUTS\Scripts\"
RMDir "$SMPROGRAMS\$SHORTCUTS\Docs\"
RMDir "$SMPROGRAMS\$SHORTCUTS"
RMDir "$INSTDIR\ai"
RMDir "$INSTDIR\data"
@@ -552,6 +520,7 @@ Abort:
Done:
FunctionEnd
;-------------------------------------------------------------------------------
; Check whether we're not running an installer for NT on 9x and vice versa
Function CheckWindowsVersion
@@ -571,79 +540,6 @@ Abort:
Done:
FunctionEnd
;-------------------------------------------------------------------------------
; Check whether OpenTTD is running
Function CheckOpenTTDRunning
IfFileExists "$INSTDIR\openttd.exe" 0 Done
Retry:
FindProcDLL::FindProc "openttd.exe"
Pop $R0
IntCmp $R0 1 0 Done
ClearErrors
Delete "$INSTDIR\openttd.exe"
IfErrors 0 Done
ClearErrors
MessageBox MB_RETRYCANCEL|MB_ICONEXCLAMATION "OpenTTD is running. Please close it and retry." IDRETRY Retry
Abort
Done:
FunctionEnd
;-------------------------------------------------------------------------------
; strips all CRs
; and then converts all LFs into CRLFs
; (this is roughly equivalent to "cat file | dos2unix | unix2dos")
;
; usage:
; Push "infile"
; Call unix2dos
;
; beware that this function destroys $0 $1 $2
Function unix2dos
ClearErrors
Pop $2
Rename $2 $2.U2D
FileOpen $1 $2 w
FileOpen $0 $2.U2D r
Push $2 ; save name for deleting
IfErrors unix2dos_done
; $0 = file input (opened for reading)
; $1 = file output (opened for writing)
unix2dos_loop:
; read a byte (stored in $2)
FileReadByte $0 $2
IfErrors unix2dos_done ; EOL
; skip CR
StrCmp $2 13 unix2dos_loop
; if LF write an extra CR
StrCmp $2 10 unix2dos_cr unix2dos_write
unix2dos_cr:
FileWriteByte $1 13
unix2dos_write:
; write byte
FileWriteByte $1 $2
; read next byte
Goto unix2dos_loop
unix2dos_done:
; close files
FileClose $0
FileClose $1
; delete original
Pop $0
Delete $0.U2D
FunctionEnd
Var OLDVERSION
Var UninstallString

View File

@@ -35,11 +35,11 @@ Sub UpdateFiles(version)
If InStr(version, Chr(9)) Then
revision = Mid(version, InStr(version, Chr(9)) + 1)
modified = Mid(revision, InStr(revision, Chr(9)) + 1)
revision = Mid(revision, 1, InStr(revision, Chr(9)) - 1)
modified = Mid(modified, 1, InStr(modified, Chr(9)) - 1)
modified = Mid(version, InStrRev(version, Chr(9)) + 1)
version = Mid(version, 1, InStr(version, Chr(9)) - 1)
Else
version = "1.0.1"
revision = 0
modified = 1
End If
@@ -86,7 +86,7 @@ Function ReadRegistryKey(shive, subkey, valuename, architecture)
End Function
Function DetermineSVNVersion()
Dim WshShell, version, branch, modified, revision, clean_rev, url, oExec, line, hash
Dim WshShell, version, branch, modified, revision, url, oExec, line, hash
Set WshShell = CreateObject("WScript.Shell")
On Error Resume Next
@@ -97,7 +97,7 @@ Function DetermineSVNVersion()
Dim sTortoise
' First, try with 32-bit architecture
sTortoise = ReadRegistryKey("HKLM", "SOFTWARE\TortoiseSVN", "Directory", 32)
If sTortoise = "" Or IsNull(sTortoise) Then
If sTortoise = "" Then
' No 32-bit version of TortoiseSVN installed, try 64-bit version (doesn't hurt on 32-bit machines, it returns nothing or is ignored)
sTortoise = ReadRegistryKey("HKLM", "SOFTWARE\TortoiseSVN", "Directory", 64)
End If
@@ -106,7 +106,7 @@ Function DetermineSVNVersion()
If sTortoise <> "" Then
Dim SubWCRev
Set SubWCRev = WScript.CreateObject("SubWCRev.object")
SubWCRev.GetWCInfo FSO.GetAbsolutePathName("../"), 0, 0
SubWCRev.GetWCInfo FSO.GetAbsolutePathName("../src"), 0, 0
revision = SubWCRev.Revision
version = "r" & revision
modified = 0
@@ -125,7 +125,7 @@ Function DetermineSVNVersion()
WshShell.Environment("PROCESS")("LANG") = "en"
' Do we have subversion installed? Check immediatelly whether we've got a modified WC.
Set oExec = WshShell.Exec("svnversion ../")
Set oExec = WshShell.Exec("svnversion ../src")
If Err.Number = 0 Then
' Wait till the application is finished ...
Do While oExec.Status = 0
@@ -138,7 +138,7 @@ Function DetermineSVNVersion()
End If
' And use svn info to get the correct revision and branch information.
Set oExec = WshShell.Exec("svn info ../")
Set oExec = WshShell.Exec("svn info ../src")
If Err.Number = 0 Then
Do
line = OExec.StdOut.ReadLine()
@@ -157,10 +157,8 @@ Function DetermineSVNVersion()
If version <> "norev000" Then
If InStr(url, "branches") Then
branch = Mid(url, InStr(url, "branches/") + 9)
End If
If InStr(url, "tags") Then
version = Mid(url, InStr(url, "tags/") + 5)
url = Mid(url, InStr(url, "branches/") + 9)
branch = Mid(url, 1, InStr(2, url, "/") - 1)
End If
Else ' version <> "norev000"
' svn detection failed, reset error and try git
@@ -174,15 +172,7 @@ Function DetermineSVNVersion()
If oExec.ExitCode = 0 Then
hash = oExec.StdOut.ReadLine()
version = "g" & Mid(hash, 1, 8)
' Make sure index is in sync with disk
Set oExec = WshShell.Exec("git update-index --refresh")
If Err.Number = 0 Then
' Wait till the application is finished ...
Do While oExec.Status = 0
WScript.Sleep 10
Loop
End If
Set oExec = WshShell.Exec("git diff-index --exit-code --quiet HEAD ../")
Set oExec = WshShell.Exec("git diff-index --exit-code --quiet HEAD ../src")
If Err.Number = 0 Then
' Wait till the application is finished ...
Do While oExec.Status = 0
@@ -201,35 +191,11 @@ Function DetermineSVNVersion()
End If ' line <> "master"
End If ' Err.Number = 0
Set oExec = WshShell.Exec("git log --pretty=format:%s --grep=" & Chr(34) & "^(svn r[0-9]*)" & Chr(34) & " -1")
Set oExec = WshShell.Exec("git log --pretty=format:%s --grep=" & Chr(34) & "^(svn r[0-9]*)" & Chr(34) & " -1 ../src")
if Err.Number = 0 Then
revision = Mid(oExec.StdOut.ReadLine(), 7)
revision = Mid(revision, 1, InStr(revision, ")") - 1)
End If ' Err.Number = 0
If revision = "" Then
' No revision? Maybe it is a custom git-svn clone
' Reset error number as WshShell.Exec will not do that on success
Err.Clear
Set oExec = WshShell.Exec("git log --pretty=format:%b --grep=" & Chr(34) & "git-svn-id:.*@[0-9]*" & Chr(34) & " -1")
If Err.Number = 0 Then
revision = oExec.StdOut.ReadLine()
revision = Mid(revision, InStr(revision, "@") + 1)
revision = Mid(revision, 1, InStr(revision, " ") - 1)
End If ' Err.Number = 0
End If ' revision = ""
' Check if a tag is currently checked out
Err.Clear
Set oExec = WshShell.Exec("git name-rev --name-only --tags --no-undefined HEAD")
If Err.Number = 0 Then
' Wait till the application is finished ...
Do While oExec.Status = 0
Loop
If oExec.ExitCode = 0 Then
version = oExec.StdOut.ReadLine()
branch = ""
End If ' oExec.ExitCode = 0
End If ' Err.Number = 0
End If ' Err.Number = 0
End If ' oExec.ExitCode = 0
End If ' Err.Number = 0
@@ -237,7 +203,7 @@ Function DetermineSVNVersion()
If version = "norev000" Then
' git detection failed, reset error and try mercurial (hg)
Err.Clear
Set oExec = WshShell.Exec("hg id -i")
Set oExec = WshShell.Exec("hg parents")
If Err.Number = 0 Then
' Wait till the application is finished ...
Do While oExec.Status = 0
@@ -245,22 +211,9 @@ Function DetermineSVNVersion()
If oExec.ExitCode = 0 Then
line = OExec.StdOut.ReadLine()
hash = Left(line, 12)
hash = Mid(line, InStrRev(line, ":") + 1)
version = "h" & Mid(hash, 1, 8)
' Check if a tag is currently checked out
Err.Clear
Set oExec = WshShell.Exec("hg id -t")
If Err.Number = 0 Then
line = oExec.StdOut.ReadLine()
If Len(line) > 0 And Right(line, 3) <> "tip" Then
version = line
branch = ""
End If ' Len(line) > 0 And Right(line, 3) <> "tip"
End If ' Err.Number = 0
Err.Clear
Set oExec = WshShell.Exec("hg status ../")
Set oExec = WshShell.Exec("hg status ../src")
If Err.Number = 0 Then
Do
line = OExec.StdOut.ReadLine()
@@ -278,49 +231,29 @@ Function DetermineSVNVersion()
End If ' line <> "default"
End If ' Err.Number = 0
Set oExec = WshShell.Exec("hg log -f -k " & Chr(34) & "(svn r" & Chr(34) & " -l 1 --template " & Chr(34) & "{desc|firstline}\n" & Chr(34) & " --cwd ../")
Set oExec = WshShell.Exec("hg log -r " & hash & ":0 -k " & Chr(34) & "svn" & Chr(34) & " -l 1 --template " & Chr(34) & "{desc}\n" & Chr(34) & " ../src")
If Err.Number = 0 Then
line = oExec.StdOut.ReadLine()
If Left(line, 6) = "(svn r" Then
revision = Mid(line, 7)
revision = Mid(revision, 1, InStr(revision, ")") - 1)
End If 'Left(line, 6) = "(svn r"
revision = Mid(OExec.StdOut.ReadLine(), 7)
revision = Mid(revision, 1, InStr(revision, ")") - 1)
End If ' Err.Number = 0
If revision = "" Then
' No rev? Maybe it is a custom hgsubversion clone
Err.Clear
Set oExec = WshShell.Exec("hg parent --template=" & Chr(34) & "{svnrev}" & Chr(34))
If Err.Number = 0 Then
revision = oExec.StdOut.ReadLine()
End If ' Err.Number = 0
End If ' revision = ""
End If ' Err.Number = 0
End If ' oExec.ExitCode = 0
End If ' Err.Number = 0
End If ' version = "norev000"
End If ' version <> "norev000"
If version = "norev000" And FSO.FileExists("../.ottdrev") Then
Dim rev_file
Set rev_file = FSO.OpenTextFile("../.ottdrev", 1, True, 0)
DetermineSVNVersion = rev_file.ReadLine()
rev_file.Close()
If modified = 2 Then
version = version & "M"
End If
If branch <> "" Then
version = version & "-" & branch
End If
If version <> "norev000" Then
DetermineSVNVersion = version & Chr(9) & revision & Chr(9) & modified
Else
If modified = 2 Then
version = version & "M"
End If
clean_rev = version
If branch <> "" Then
version = version & "-" & branch
End If
If version <> "norev000" Then
DetermineSVNVersion = version & Chr(9) & revision & Chr(9) & modified & Chr(9) & clean_rev
Else
DetermineSVNVersion = version
End If
DetermineSVNVersion = version
End If
End Function

View File

@@ -22,28 +22,15 @@ then
exit 1
fi
# openttd_vs100.sln is for MSVC 2010
# openttd_vs100.vcxproj is for MSVC 2010
# openttd_vs100.vcxproj.filters is for MSVC 2010
# langs_vs100.vcxproj is for MSVC 2010
# strgen_vs100.vcxproj is for MSVC 2010
# strgen_vs100.vcxproj.filters is for MSVC 2010
# generate_vs100.vcxproj is for MSVC 2010
# version_vs100.vcxproj is for MSVC 2010
# openttd_vs90.sln is for MSVC 2008
# openttd_vs90.vcproj is for MSVC 2008
# langs_vs90.vcproj is for MSVC 2008
# strgen_vs90.vcproj is for MSVC 2008
# openttd_vs90.sln is for MSVC 2008
# openttd_vs90.vcproj is for MSVC 2008
# langs_vs90.vcproj is for MSVC 2008
# strgen_vs90.vcproj is for MSVC 2008
# generate_vs90.vcproj is for MSVC 2008
# version_vs90.vcproj is for MSVC 2008
# openttd_vs80.sln is for MSVC 2005
# openttd_vs80.vcproj is for MSVC 2005
# langs_vs80.vcproj is for MSVC 2005
# strgen_vs80.vcproj is for MSVC 2005
# generate_vs80.vcproj is for MSVC 2005
# version_vs80.vcproj is for MSVC 2005
# openttd_vs80.sln is for MSVC 2005
# openttd_vs80.vcproj is for MSVC 2005
# langs_vs80.vcproj is for MSVC 2005
# strgen_vs80.vcproj is for MSVC 2005
@@ -130,19 +117,14 @@ load_main_data() {
gsub("^ ", "", $0);
if (first_time != 0) {
print "#1 </Filter>";
print " </Filter>";
} else {
first_time = 1;
}
filter = $0;
print "#1 <Filter";
print "#1 Name=\\""filter"\\"";
print "#1 >";
print "#3 <Filter Include=\\""filter"\\">";
printf "#3 <UniqueIdentifier>{c76ff9f1-1e62-46d8-8d55-%012d}</UniqueIdentifier>\n", i;
print "#3 </Filter>";
i += 1;
print " <Filter";
print " Name=\\""$0"\\"";
print " >";
}
next;
@@ -152,21 +134,13 @@ load_main_data() {
if (deep == skip) {
gsub(" ", "", $0);
gsub("/", "\\\\", $0);
print "#1 <File";
print "#1 RelativePath=\\".\\\\'$file_prefix'"$0"\\"";
print "#1 >";
print "#1 </File>";
split($0, file, ".");
cltype = "ClInclude"
if (file[2] == "cpp") cltype = "ClCompile";
if (file[2] == "rc") cltype = "ResourceCompile";
print "#2 <"cltype" Include=\\"'$file_prefix'"$0"\\" />";
print "#4 <"cltype" Include=\\"'$file_prefix'"$0"\\">";
print "#4 <Filter>"filter"</Filter>";
print "#4 </"cltype">";
print " <File";
print " RelativePath=\\".\\\\'$file_prefix'"$0"\\"";
print " >";
print " </File>";
}
}
END { print "#1 </Filter>"; }
END { print " </Filter>"; }
'`"
eval "$2=\"\$RES\""
@@ -178,27 +152,21 @@ load_lang_data() {
do
i=`basename $i | sed s~.txt$~~g`
RES="$RES
#1 <File
#1 RelativePath=\"..\\src\\lang\\"$i".txt\"
#1 >
#1 <FileConfiguration
#1 Name=\"Debug|Win32\"
#1 >
#1 <Tool
#1 Name=\"VCCustomBuildTool\"
#1 Description=\"Generating "$i" language file\"
#1 CommandLine=\"..\\objs\\strgen\\strgen.exe -s ..\\src\\lang -d ..\\bin\\lang &quot;\$(InputPath)&quot;&#x0D;&#x0A;exit 0&#x0D;&#x0A;\"
#1 AdditionalDependencies=\"..\\src\\lang\\english.txt;..\\objs\\strgen\\strgen.exe\"
#1 Outputs=\"..\\bin\\lang\\"$i".lng\"
#1 />
#1 </FileConfiguration>
#1 </File>
#2 <CustomBuild Include=\"..\\src\\lang\\"$i".txt\">
#2 <Message Condition=\"'\$(Configuration)|\$(Platform)'=='Debug|Win32'\">Generating "$i" language file</Message>
#2 <Command Condition=\"'\$(Configuration)|\$(Platform)'=='Debug|Win32'\">..\\objs\\strgen\\strgen.exe -s ..\\src\\lang -d ..\\bin\\lang \"%(FullPath)\"</Command>
#2 <AdditionalInputs Condition=\"'\$(Configuration)|\$(Platform)'=='Debug|Win32'\">..\\src\\lang\\english.txt;..\\objs\\strgen\\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
#2 <Outputs Condition=\"'\$(Configuration)|\$(Platform)'=='Debug|Win32'\">..\\bin\\lang\\"$i".lng;%(Outputs)</Outputs>
#2 </CustomBuild>"
<File
RelativePath=\"..\\src\\lang\\"$i".txt\"
>
<FileConfiguration
Name=\"Debug|Win32\"
>
<Tool
Name=\"VCCustomBuildTool\"
Description=\"Generating "$i" language file\"
CommandLine=\"..\\objs\\strgen\\strgen.exe -s ..\\src\\lang -d ..\\bin\\lang &quot;\$(InputPath)&quot;&#x0D;&#x0A;exit 0&#x0D;&#x0A;\"
AdditionalDependencies=\"..\\src\\lang\\english.txt;..\\objs\\strgen\\strgen.exe\"
Outputs=\"..\\bin\\lang\\"$i".lng\"
/>
</FileConfiguration>
</File>"
done
eval "$2=\"\$RES\""
@@ -206,39 +174,14 @@ load_lang_data() {
generate() {
echo "Generating $2..."
if [ $# -eq 3 ]; then
# Everything above the !!FILTERS!! marker
cat "$ROOT_DIR/projects/$2".in | tr '\r' '\n' | awk '
/^$/ { next }
/!!FILTERS!!/ { stop = 1; }
{
if (stop == 0) { print $0 }
}
' > "$ROOT_DIR/projects/$2"
echo "$3" >> "$ROOT_DIR/projects/$2"
# Everything below the !!FILTERS!! marker and above the !!FILES!! marker
cat "$ROOT_DIR/projects/$2".in | tr '\r' '\n' | awk '
BEGIN { stop = 1; }
/^$/ { next }
/!!FILTERS!!/ { stop = 2; }
/!!FILES!!/ { stop = 1; }
{
if (stop == 0) { print $0 }
if (stop == 2) { stop = 0 }
}
' >> "$ROOT_DIR/projects/$2"
else
# Everything above the !!FILES!! marker
cat "$ROOT_DIR/projects/$2".in | tr '\r' '\n' | awk '
/^$/ { next }
/!!FILES!!/ { stop = 1; }
{
if (stop == 0) { print $0 }
}
' > "$ROOT_DIR/projects/$2"
fi
# Everything above the !!FILES!! marker
cat "$ROOT_DIR/projects/$2".in | tr '\r' '\n' | awk '
/^$/ { next }
/!!FILES!!/ { stop = 1; }
{
if (stop == 0) { print $0 }
}
' > "$ROOT_DIR/projects/$2"
echo "$1" >> "$ROOT_DIR/projects/$2"
@@ -257,19 +200,9 @@ generate() {
safety_check "$ROOT_DIR/source.list"
load_main_data "$ROOT_DIR/source.list" openttd
openttdfiles=`echo "$openttd" | grep "^#4" | sed "s~#4~~g"`
openttdfilters=`echo "$openttd" | grep "^#3" | sed "s~#3~~g"`
openttdvcxproj=`echo "$openttd" | grep "^#2" | sed "s~#2~~g"`
openttd=`echo "$openttd" | grep "^#1" | sed "s~#1~~g"`
load_lang_data "$ROOT_DIR/src/lang/*.txt" lang
langvcxproj=`echo "$lang" | grep "^#2" | sed "s~#2~~g"`
lang=`echo "$lang" | grep "^#1" | sed "s~#1~~g"`
generate "$openttd" "openttd_vs80.vcproj"
generate "$openttd" "openttd_vs90.vcproj"
generate "$openttdvcxproj" "openttd_vs100.vcxproj"
generate "$openttdfiles" "openttd_vs100.vcxproj.filters" "$openttdfilters"
generate "$lang" "langs_vs80.vcproj"
generate "$lang" "langs_vs90.vcproj"
generate "$langvcxproj" "langs_vs100.vcxproj"

View File

@@ -10,28 +10,15 @@ Option Explicit
Dim FSO
Set FSO = CreateObject("Scripting.FileSystemObject")
' openttd_vs100.sln is for MSVC 2010
' openttd_vs100.vcxproj is for MSVC 2010
' openttd_vs100.vcxproj.filters is for MSVC 2010
' langs_vs100.vcxproj is for MSVC 2010
' strgen_vs100.vcxproj is for MSVC 2010
' strgen_vs100.vcxproj.filters is for MSVC 2010
' generate_vs100.vcxproj is for MSVC 2010
' version_vs100.vcxproj is for MSVC 2010
' openttd_vs90.sln is for MSVC 2008
' openttd_vs90.vcproj is for MSVC 2008
' langs_vs90.vcproj is for MSVC 2008
' strgen_vs90.vcproj is for MSVC 2008
' openttd_vs90.sln is for MSVC 2008
' openttd_vs90.vcproj is for MSVC 2008
' langs_vs90.vcproj is for MSVC 2008
' strgen_vs90.vcproj is for MSVC 2008
' generate_vs90.vcproj is for MSVC 2008
' version_vs90.vcproj is for MSVC 2008
' openttd_vs80.sln is for MSVC 2005
' openttd_vs80.vcproj is for MSVC 2005
' langs_vs80.vcproj is for MSVC 2005
' strgen_vs80.vcproj is for MSVC 2005
' generate_vs80.vcproj is for MSVC 2005
' version_vs80.vcproj is for MSVC 2005
' openttd_vs80.sln is for MSVC 2005
' openttd_vs80.vcproj is for MSVC 2005
' langs_vs80.vcproj is for MSVC 2005
' strgen_vs80.vcproj is for MSVC 2005
Sub safety_check(filename)
Dim file, line, regexp, list
@@ -145,10 +132,9 @@ Sub headers_check(filename, dir)
End If
End Sub
Function load_main_data(filename, ByRef vcxproj, ByRef filters, ByRef files)
Dim res, file, line, deep, skip, first_filter, first_file, filter, cltype, index
Function load_main_data(filename)
Dim res, file, line, deep, skip, first_time
res = ""
index = 0
' Read the source.list and process it
Set file = FSO.OpenTextFile(filename, 1, 0, 0)
While Not file.AtEndOfStream
@@ -179,50 +165,24 @@ Function load_main_data(filename, ByRef vcxproj, ByRef filters, ByRef files)
Case "#"
if deep = skip Then
line = Replace(line, "# ", "")
if first_filter <> 0 Then
if first_time <> 0 Then
res = res & " </Filter>" & vbCrLf
filters = filters & vbCrLf
Else
first_filter = 1
first_time = 1
End If
filter = line
res = res & _
" <Filter" & vbCrLf & _
" Name=" & Chr(34) & filter & Chr(34) & vbCrLf & _
" Name=" & Chr(34) & line & Chr(34) & vbCrLf & _
" >" & vbCrLf
filters = filters & _
" <Filter Include="& Chr(34) & filter & Chr(34) & ">" & vbCrLf & _
" <UniqueIdentifier>{c76ff9f1-1e62-46d8-8d55-" & String(12 - Len(CStr(index)), "0") & index & "}</UniqueIdentifier>" & vbCrLf & _
" </Filter>"
index = index + 1
End If
Case Else
If deep = skip Then
line = Replace(line, "/" ,"\")
if first_file <> 0 Then
vcxproj = vcxproj & vbCrLf
files = files & vbCrLf
Else
first_file = 1
End If
res = res & _
" <File" & vbCrLf & _
" RelativePath=" & Chr(34) & ".\..\src\" & line & Chr(34) & vbCrLf & _
" >" & vbCrLf & _
" </File>" & vbCrLf
Select Case Split(Line, ".")(1)
Case "cpp"
cltype = "ClCompile"
Case "rc"
cltype = "ResourceCompile"
Case Else
cltype = "ClInclude"
End Select
vcxproj = vcxproj & " <" & cltype & " Include="& Chr(34) & "..\src\" & line & Chr(34) & " />"
files = files & _
" <" & cltype & " Include="& Chr(34) & "..\src\" & line & Chr(34) & ">" & vbCrLf & _
" <Filter>" & filter & "</Filter>" & vbCrLf & _
" </" & cltype & ">"
End If
End Select
End If
@@ -232,66 +192,41 @@ Function load_main_data(filename, ByRef vcxproj, ByRef filters, ByRef files)
load_main_data = res
End Function
Function load_lang_data(dir, ByRef vcxproj)
Dim res, folder, file, first_time
Function load_lang_data(dir)
Dim res, folder, file
res = ""
Set folder = FSO.GetFolder(dir)
For Each file In folder.Files
file = FSO.GetFileName(file)
If FSO.GetExtensionName(file) = "txt" Then
file = Left(file, Len(file) - 4)
if first_time <> 0 Then
res = res & vbCrLf
vcxproj = vcxproj & vbCrLf
Else
first_time = 1
End If
res = res & _
" <File" & vbCrLf & _
" RelativePath=" & Chr(34) & "..\src\lang\" & file & ".txt" & Chr(34) & vbCrLf & _
" >" & vbCrLf & _
" <FileConfiguration" & vbCrLf & _
" Name=" & Chr(34) & "Debug|Win32" & Chr(34) & vbCrLf & _
" >" & vbCrLf & _
" <Tool" & vbCrLf & _
" Name=" & Chr(34) & "VCCustomBuildTool" & 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&#x0D;&#x0A;" & 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 & _
" />" & vbCrLf & _
" </FileConfiguration>" & vbCrLf & _
" </File>"
vcxproj = vcxproj & _
" <CustomBuild Include=" & Chr(34) & "..\src\lang\" & file & ".txt" & Chr(34) & ">" & vbCrLf & _
" <Message Condition=" & Chr(34) & "'$(Configuration)|$(Platform)'=='Debug|Win32'" & Chr(34) & ">Generating " & file & " language file</Message>" & vbCrLf & _
" <Command Condition=" & Chr(34) & "'$(Configuration)|$(Platform)'=='Debug|Win32'" & Chr(34) & ">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang " & Chr(34) & "%(FullPath)" & Chr(34) & "</Command>" & vbCrLf & _
" <AdditionalInputs Condition=" & Chr(34) & "'$(Configuration)|$(Platform)'=='Debug|Win32'" & Chr(34) & ">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>" & vbCrLf & _
" <Outputs Condition=" & Chr(34) & "'$(Configuration)|$(Platform)'=='Debug|Win32'" & Chr(34) & ">..\bin\lang\" & file & ".lng;%(Outputs)</Outputs>" & vbCrLf & _
" </CustomBuild>"
res = res _
& vbCrLf & " <File" _
& vbCrLf & " RelativePath=" & Chr(34) & "..\src\lang\" & file & ".txt" & Chr(34) _
& vbCrLf & " >" _
& vbCrLf & " <FileConfiguration" _
& vbCrLf & " Name=" & Chr(34) & "Debug|Win32" & Chr(34) _
& vbCrLf & " >" _
& vbCrLf & " <Tool" _
& vbCrLf & " Name=" & Chr(34) & "VCCustomBuildTool" & 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&#x0D;&#x0A;" & 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 & " />" _
& vbCrLf & " </FileConfiguration>" _
& vbCrLf & " </File>"
End If
Next
load_lang_data = res
End Function
Sub generate(data, dest, data2)
Sub generate(data, dest)
Dim srcfile, destfile, line
WScript.Echo "Generating " & FSO.GetFileName(dest) & "..."
Set srcfile = FSO.OpenTextFile(dest & ".in", 1, 0, 0)
Set destfile = FSO.CreateTextFile(dest, -1, 0)
If Not IsNull(data2) Then
' Everything above the !!FILTERS!! marker
line = srcfile.ReadLine()
While line <> "!!FILTERS!!"
If len(line) > 0 Then destfile.WriteLine(line)
line = srcfile.ReadLine()
Wend
' Our generated content
destfile.WriteLine(data2)
End If
' Everything above the !!FILES!! marker
line = srcfile.ReadLine()
While line <> "!!FILES!!"
@@ -325,15 +260,12 @@ End If
safety_check ROOT_DIR & "/source.list"
headers_check ROOT_DIR & "/source.list", ROOT_DIR & "\src\" ' Backslashes needed for DoFiles
Dim openttd, openttdvcxproj, openttdfilters, openttdfiles
openttd = load_main_data(ROOT_DIR & "/source.list", openttdvcxproj, openttdfilters, openttdfiles)
generate openttd, ROOT_DIR & "/projects/openttd_vs80.vcproj", Null
generate openttd, ROOT_DIR & "/projects/openttd_vs90.vcproj", Null
generate openttdvcxproj, ROOT_DIR & "/projects/openttd_vs100.vcxproj", Null
generate openttdfiles, ROOT_DIR & "/projects/openttd_vs100.vcxproj.filters", openttdfilters
Dim openttd
openttd = load_main_data(ROOT_DIR &"/source.list")
generate openttd, ROOT_DIR & "/projects/openttd_vs80.vcproj"
generate openttd, ROOT_DIR & "/projects/openttd_vs90.vcproj"
Dim lang, langvcxproj
lang = load_lang_data(ROOT_DIR & "/src/lang", langvcxproj)
generate lang, ROOT_DIR & "/projects/langs_vs80.vcproj", Null
generate lang, ROOT_DIR & "/projects/langs_vs90.vcproj", Null
generate langvcxproj, ROOT_DIR & "/projects/langs_vs100.vcxproj", Null
Dim lang
lang = load_lang_data(ROOT_DIR & "/src/lang")
generate lang, ROOT_DIR & "/projects/langs_vs80.vcproj"
generate lang, ROOT_DIR & "/projects/langs_vs90.vcproj"

View File

@@ -1,42 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectName>generate</ProjectName>
<ProjectGuid>{2F31FD79-D1AC-43C4-89F3-B0D5E4E53E34}</ProjectGuid>
<RootNamespace>generate</RootNamespace>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Utility</ConfigurationType>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
</PropertyGroup>
<ItemDefinitionGroup>
</ItemDefinitionGroup>
<ItemGroup>
<CustomBuild Include="..\source.list">
<FileType>Document</FileType>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Running %27generate.vbs%27 ...</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">cscript "$(ProjectDir)generate.vbs"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(FullPath);%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)openttd_vs80.vcproj;$(SolutionDir)openttd_vs90.vcproj;$(SolutionDir)openttd_vs100.vcxproj;$(SolutionDir)openttd_vs100.vcxproj.filters;$(SolutionDir)langs_vs80.vcproj;$(SolutionDir)langs_vs90.vcproj;$(SolutionDir)langs_vs100.vcxproj;%(Outputs)</Outputs>
</CustomBuild>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@@ -1,39 +0,0 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="8.00"
Name="generate"
ProjectGUID="{2F31FD79-D1AC-43C4-89F3-B0D5E4E53E34}"
RootNamespace="generate"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<Configurations>
<Configuration
Name="Debug|Win32"
IntermediateDirectory="..\objs\generate"
ConfigurationType="10"
>
</Configuration>
</Configurations>
<Files>
<File
RelativePath="..\source.list"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Running 'generate.vbs'..."
CommandLine="cscript &quot;$(ProjectDir)generate.vbs&quot;"
AdditionalDependencies="$(InputPath)"
Outputs="$(SolutionDir)openttd_vs80.vcproj;$(SolutionDir)openttd_vs90.vcproj;$(SolutionDir)openttd_vs100.vcxproj;$(SolutionDir)openttd_vs100.vcxproj.filters;$(SolutionDir)langs_vs80.vcproj;$(SolutionDir)langs_vs90.vcproj;$(SolutionDir)langs_vs100.vcxproj"
/>
</FileConfiguration>
</File>
</Files>
</VisualStudioProject>

View File

@@ -1,40 +0,0 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9.00"
Name="generate"
ProjectGUID="{2F31FD79-D1AC-43C4-89F3-B0D5E4E53E34}"
RootNamespace="generate"
TargetFrameworkVersion="131072"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<Configurations>
<Configuration
Name="Debug|Win32"
IntermediateDirectory="..\objs\generate"
ConfigurationType="10"
>
</Configuration>
</Configurations>
<Files>
<File
RelativePath="..\source.list"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Running 'generate.vbs' ..."
CommandLine="cscript &quot;$(ProjectDir)generate.vbs&quot;"
AdditionalDependencies="$(InputPath)"
Outputs="$(SolutionDir)openttd_vs80.vcproj;$(SolutionDir)openttd_vs90.vcproj;$(SolutionDir)openttd_vs100.vcxproj;$(SolutionDir)openttd_vs100.vcxproj.filters;$(SolutionDir)langs_vs80.vcproj;$(SolutionDir)langs_vs90.vcproj;$(SolutionDir)langs_vs100.vcxproj"
/>
</FileConfiguration>
</File>
</Files>
</VisualStudioProject>

View File

@@ -1,342 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectName>langs</ProjectName>
<ProjectGuid>{0F066B23-18DF-4284-8265-F4A5E7E3B966}</ProjectGuid>
<RootNamespace>langs</RootNamespace>
<Keyword>MakeFileProj</Keyword>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Utility</ConfigurationType>
<UseOfMfc>false</UseOfMfc>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\langs\</IntDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<PreBuildEvent>
<Message>Generating strings.h</Message>
<Command>..\objs\strgen\strgen.exe -s ..\src\lang -d ..\objs\langs\table</Command>
</PreBuildEvent>
<Midl>
<TypeLibraryName>./langs.tlb</TypeLibraryName>
<HeaderFileName>
</HeaderFileName>
</Midl>
</ItemDefinitionGroup>
<ItemGroup>
<CustomBuild Include="..\src\lang\afrikaans.txt">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating afrikaans language file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\afrikaans.lng;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\src\lang\arabic_egypt.txt">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating arabic_egypt language file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\arabic_egypt.lng;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\src\lang\belarusian.txt">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating belarusian language file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\belarusian.lng;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\src\lang\brazilian_portuguese.txt">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating brazilian_portuguese language file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\brazilian_portuguese.lng;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\src\lang\bulgarian.txt">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating bulgarian language file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\bulgarian.lng;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\src\lang\catalan.txt">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating catalan language file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\catalan.lng;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\src\lang\croatian.txt">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating croatian language file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\croatian.lng;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\src\lang\czech.txt">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating czech language file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\czech.lng;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\src\lang\danish.txt">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating danish language file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\danish.lng;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\src\lang\dutch.txt">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating dutch language file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\dutch.lng;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\src\lang\english.txt">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating english language file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\english.lng;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\src\lang\english_US.txt">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating english_US language file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\english_US.lng;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\src\lang\esperanto.txt">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating esperanto language file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\esperanto.lng;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\src\lang\estonian.txt">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating estonian language file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\estonian.lng;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\src\lang\finnish.txt">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating finnish language file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\finnish.lng;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\src\lang\french.txt">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating french language file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\french.lng;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\src\lang\galician.txt">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating galician language file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\galician.lng;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\src\lang\german.txt">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating german language file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\german.lng;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\src\lang\greek.txt">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating greek language file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\greek.lng;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\src\lang\hebrew.txt">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating hebrew language file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\hebrew.lng;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\src\lang\hungarian.txt">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating hungarian language file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\hungarian.lng;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\src\lang\icelandic.txt">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating icelandic language file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\icelandic.lng;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\src\lang\indonesian.txt">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating indonesian language file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\indonesian.lng;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\src\lang\irish.txt">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating irish language file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\irish.lng;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\src\lang\italian.txt">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating italian language file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\italian.lng;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\src\lang\japanese.txt">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating japanese language file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\japanese.lng;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\src\lang\korean.txt">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating korean language file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\korean.lng;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\src\lang\latvian.txt">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating latvian language file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\latvian.lng;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\src\lang\lithuanian.txt">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating lithuanian language file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\lithuanian.lng;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\src\lang\luxembourgish.txt">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating luxembourgish language file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\luxembourgish.lng;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\src\lang\malay.txt">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating malay language file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\malay.lng;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\src\lang\norwegian_bokmal.txt">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating norwegian_bokmal language file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\norwegian_bokmal.lng;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\src\lang\norwegian_nynorsk.txt">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating norwegian_nynorsk language file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\norwegian_nynorsk.lng;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\src\lang\polish.txt">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating polish language file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\polish.lng;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\src\lang\portuguese.txt">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating portuguese language file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\portuguese.lng;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\src\lang\romanian.txt">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating romanian language file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\romanian.lng;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\src\lang\russian.txt">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating russian language file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\russian.lng;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\src\lang\serbian.txt">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating serbian language file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\serbian.lng;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\src\lang\simplified_chinese.txt">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating simplified_chinese language file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\simplified_chinese.lng;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\src\lang\slovak.txt">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating slovak language file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\slovak.lng;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\src\lang\slovenian.txt">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating slovenian language file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\slovenian.lng;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\src\lang\spanish.txt">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating spanish language file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\spanish.lng;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\src\lang\swedish.txt">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating swedish language file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\swedish.lng;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\src\lang\traditional_chinese.txt">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating traditional_chinese language file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\traditional_chinese.lng;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\src\lang\turkish.txt">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating turkish language file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\turkish.lng;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\src\lang\ukrainian.txt">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating ukrainian language file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\ukrainian.lng;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\src\lang\vietnamese.txt">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating vietnamese language file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\vietnamese.lng;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\src\lang\welsh.txt">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating welsh language file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\welsh.lng;%(Outputs)</Outputs>
</CustomBuild>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="strgen_vs100.vcxproj">
<Project>{a133a442-bd0a-4ade-b117-ad7545e4bdd1}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@@ -1,55 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectName>langs</ProjectName>
<ProjectGuid>{0F066B23-18DF-4284-8265-F4A5E7E3B966}</ProjectGuid>
<RootNamespace>langs</RootNamespace>
<Keyword>MakeFileProj</Keyword>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Utility</ConfigurationType>
<UseOfMfc>false</UseOfMfc>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\langs\</IntDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<PreBuildEvent>
<Message>Generating strings.h</Message>
<Command>..\objs\strgen\strgen.exe -s ..\src\lang -d ..\objs\langs\table</Command>
</PreBuildEvent>
<Midl>
<TypeLibraryName>./langs.tlb</TypeLibraryName>
<HeaderFileName>
</HeaderFileName>
</Midl>
</ItemDefinitionGroup>
<ItemGroup>
!!FILES!!
</ItemGroup>
<ItemGroup>
<ProjectReference Include="strgen_vs100.vcxproj">
<Project>{a133a442-bd0a-4ade-b117-ad7545e4bdd1}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@@ -45,6 +45,7 @@
<References>
</References>
<Files>
<File
RelativePath="..\src\lang\afrikaans.txt"
>
@@ -75,21 +76,6 @@
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\lang\belarusian.txt"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Generating belarusian language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0&#x0D;&#x0A;"
AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\belarusian.lng"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\lang\brazilian_portuguese.txt"
>
@@ -390,21 +376,6 @@
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\lang\irish.txt"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Generating irish language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0&#x0D;&#x0A;"
AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\irish.lng"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\lang\italian.txt"
>

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