Dutch Road Furniture 0.4.0 ----------------------------------- Contents: 1 About 2 Requirements, installation and usage 3 Background information 3.1 Fingerposts 3.2 Hard Shoulders 3.3 Motorway Medians 3.4 Motorway Direction Sign 3.5 Motorway Direction Gantry 4 Technical notes 5 License 6 Credits 7 Building from source 7.1 Obtaining the source 7.2 Dependencies 7.3 Makefile targets 7.4 Speed issues ------- 1 About ------- Dutch Road Furniture is an eyecandy object NewGRF that features road furniture which can be found alongside Dutch roads. Dutch Road Furniture 0.4.0 MD5Hash: 9df7b823bf76494ec5a508ea1c7a6dce dutchroadfurniture.grf Version: 48 GRF ID: FB FB 05 01 -------------------------------------- 2 Requirements, installation and usage -------------------------------------- You need OpenTTD 1.2.0 or nightly r22723 (or newer) for this to work, as it uses some rather new stuff for defining sloped ground tiles. At the moment of release, this NewGRF was not known to be working with TTDPatch. Consult the manual of the game on how to install NewGRFs. OpenTTD users can also get this NewGRF via the ingame content download. The signs in this set are so-called objects. This means that they have no other purpose than just sit there and look nice. They don't help road vehicles find their destinations and they don't generate money. In fact, they only cost money when you purchase them. You get some of that back though when you remove them again. If you have any problems with this NewGRF, you can post in the topic at TT-Forums: http://www.tt-forums.net/viewtopic.php?f=67&t=56316 or add a ticket to the issue tracker at the DevZone: http://dev.openttdcoop.org/projects/dutchroadfurniture/issues ------------------------ 3 Object information ------------------------ This chapter has some information on general usage of the objects in this NewGRF. Plans have been made to include barriers, guardrails, lamp posts, trees, fences and suchlike at a later stage. 3.1 Fingerposts --------------- First generation: 1894 First Dutch fingerpost installed by ANWB (General Dutch Cyclists Association). Used as firewood in the winter of 1894. Steel replacements in same style from 1896. Second generation: 1946 Redesign with larger fingers. Intro year not historically correct. Third generation: 1961 Again a complete redesign. This design was modernized around the year 2000, but differences are too small to display in TTD scale. The fingerposts come in four objects for one, two, three or four directions. 3.2 Hard Shoulders ------------------ Introduced April 15, 1937. This is the exact date that the first Dutch motorway opened between Voorburg and Zoetermeer (Rijksweg 12). Designed to match OpenGFX roads. Corners are formed automatically by detecting adjacent hard shoulder tiles in case the shoulder doesn't continue straight on. Outside corners are preferred over inside corners. Because the hard shoulders "step outside their tiles" they may glitch slightly reveiling some corners of the underlaying terrain, but generally this isn't too bad. 3.3 Motorway Medians -------------------- Introduced April 15, 1937. If you build the two carriageways of your motorway one tile apart, you can add the medians in the middle. These also add a third lane to each of the two carriageways (not realistic in 1937). With these medians you must do your terraforming a little more carefully than with the hard shoulders. You will be warned by a symbol if you do something that isn't supported: * Traffic incident sign: this slope combination isn't possible graphically as this would lead to weird slopes in the road that vehicles impossibly can drive on safely. * Road works sign: you have some unnecessary slopes in the underlaying terrain. Do some digging as a more simple terrain is possible. Other remarks of the hard shoulder also apply here. 3.4 Motorway Direction Sign --------------------------- First generation: 1946 First sign of this type, showing both destination of motorway and destinations of exit. Second generation: 1969 Redesign now only showing exit destinations. Third generation: 1982 Adding of N route numbers. Fourth generation: 1997 Change to retroreflecting materials. Fifth generation: 2008 Redesign based on German style motorway signs (but essentially we're just going back to a modernised version of the 1946 signs). The signs are designed to be placed instead of a hard shoulder tile and for that purpose come with their own hard shoulder. 3.5 Motorway Direction Gantry ----------------------------- First generation: 1967 First sign of this type, showing both destination of motorway and destinations of exit. With vertical supports. Second generation: 1974 Addition of light units to illuminate the signs at night. Third generation: 1977 New /\-shaped support design. Fourth generation: 1982 Adding of N route numbers. Fifth generation: 1997 Change to retroreflecting materials. Sixth generation: 2008 Redesign based on German style motorway signs. The signs are designed to be placed instead of a hard shoulder tile and and a median tile. When placed on opposite sides of a road they together will form a single gantry. Has some checks in place to prevent bad construction, but is not fool-proof. ----------------- 4 Technical notes ----------------- This NewGRF uses a relatively new OpenTTD feature that allows register modifiers inside Action2 sprite layouts. This feature was completed in OpenTTD r22723. At the moment of writing, this feature is unavailable, however loading this NewGRF in TTDPatch has not been specifically denied in case this feature is added to TTDPatch in the future. The objects in this NewGRF are defined in their own object class NLRF (short for NL (Dutch) Road Furniture). It was chosen to not add the objects to the default INFR class in order to keep the Dutch things separate and to avoid very long object lists in case multiple INFR class object NewGRFs are loaded. At the time of creation, the NLRF class was not registered and not known to be used by other NewGRFs. Other NewGRFs are of course free to add things to the NLRF class, but if you see non- Dutch stuff in it, complain to the other NewGRF's author and not here. --------- 5 License --------- Dutch Road Furniture - Eyecandy for OpenTTD and TTDPatch Copyright (C) 2011 Jasper Vries (FooBar) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. --------- 6 Credits --------- Graphics and code: Jasper Vries (FooBar) Contains parts of graphics by: Richard Wheeler (Zephyris) - Parts of OpenGFX road graphics are reused for the hard shoulders and third lanes. Makefile system: Ingo von Borstel (planetmaker) ---------------------- 7 Building from source ---------------------- Usually there's not much which needs to be changed when you obtain the source. Your friends will usually be make make install Both will build the grf from source, the latter will also try to copy the grf into your grf folder so that it is available for testing and use straight away. 7.1 Obtaining the source ------------------------ The source code can be obtained from the #openttdcoop DevZone via source browser: http://dev.openttdcoop.org/projects/dutchroadfurniture/repository or via mercurial checkout: hg clone http://hg.openttdcoop.org/dutchroadfurniture or via a source bundle download (releases and nightlies only): http://bundles.openttdcoop.org/dutchroadfurniture/ 7.2 Dependencies ---------------- Requirements for running the Makefile successfully: NML (at least r1625) gcc md5sum (or md5 on Mac) make mercurial (recommended) python (recommended) If you want to bundle the grf, you'll need additionally tar zip bzip2 unix2dos (optional) Windows only: On Windows systems this means that you'll need to install MinGW and MSys in order to obtain a posix compatible environment. Then the makefile can be called the very same way as it is on linux and mac systems. MinGW/MSys contain the above mentioned programmes (except NML of course) and can be obtained from http://www.mingw.org/ That site also features an excellent walk-through on how to install it. If you use for OpenTTD data folder a non-default path or Windows with a non-English localization make sure to copy Makefile.local.sample to Makefile.local and edit the line with INSTALLDIR = accordingly so that it shows the full path to your OpenTTD data directory. 7.3 Makefile targets -------------------- A brief overview over all Makefile targets is given here: all: This is the default target, if also no parameter is given to make. It will simply build the grf file, if it needs building depend: Re-run the dependency check. Usually not manually needed. docs: Build the documentation files bundle: This target will create a directory called "-nightly" and copy the grf file there and the documentation files, readme.txt, changelog.txt and license.txt bundle_zip This will zip the bundle directory into one zip for distribution bundle_tar This will tar the bundle directory into a tar archive for distribution or upload to bananas bundle_src Creates a source bundle install: This will create a tar archive (like bundle_tar) and copy it into the INSTALLDIR as specified in Makefile.local (or the default dir, if that isn't defined). Don't rely on a good detection of the default installation directory. It's especially bound to fail on windows machines. distclean: This phony target cleans everything from a source bundle which wasn't shipped. clean: This phony target will delete all files which this Makefile will create mrproper: This phony target will delete also all directories created by different Makefile targets remake: It's a shortcut for first cleaning the dir and then making the grf anew. addcheck: Check whether there are some files required but not part of the repository. check: Check the md5sum of the built newgrf against the supplied md5sum (Intended to be used when building from tar balls) 7.4 Speed issues ---------------- A note concerning the speed of the makefile: It seems that the required tools using MinGW and / or msys are thoroughly slow on Windows. A few example run times for OpenGFX, same processor type (both core 2 duo, 2.26GHz for the windows machine, 2.0 GHz for the OSX machine). Note that the values given are the 'real' time. Even though this varies more and is dependent on the processor load, that's what you have to wait for; the 'user' times are quite low on the Windows machine (~16s), but that by no means reflects the build time. Times are from OpenGFX r539 with makefile r199. DEP_CHECK_TYPE Windows bash native native in VM (OSX) none 1m23.360s - 0m32.781s mdep 1m54.484s 0m30.164s 0m33.807s normal 2m37.857s - 0m36.528s