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

Compare commits

..

92 Commits

Author SHA1 Message Date
rubidium
89f9c9ce20 (svn r18355) -Release: 0.7.4 2009-12-01 00:03:55 +00:00
rubidium
b6834cf135 (svn r18354) [0.7] -Backport from trunk:
- Fix: Endianness issue with saving the zoom level [FS#3333] (r18351)
[0.7] -Prepare for 0.7.4
2009-11-30 23:59:42 +00:00
rubidium
a1fb44c417 (svn r18300) [0.7] -Backport from trunk:
- Update: readme / AI changelog (r18299, r18298)
- Fix: [NewGRF] When starting a new game the values of action D variable 13 were incorrect [FS#3324] (r18207)
- Add: Experimental option to try to statically link to libicu (r18147)
- Change: One more developer added to the history of OpenTTD (r18111)
2009-11-26 16:53:41 +00:00
rubidium
c607e6cb37 (svn r18098) [0.7] -Backport from trunk:
- Fix: Some possible unwanted side effects if using some sorts of boolean expressions in DEBUG (r18070)
- Fix: Crash when an articulated RV is turning on a drive through road station that gets forcefully (bankrupt) removed [FS#3310] (r18049)
[0.7] -Prepare for 0.7.4-RC1
2009-11-15 15:31:17 +00:00
rubidium
49ac7c9338 (svn r18047) [0.7] -Backport from trunk:
- Fix: GCC 4.5 compiling (r18045, r18040)
2009-11-11 22:09:34 +00:00
rubidium
b4ba357017 (svn r18046) [0.7] -Backport from trunk:
- Fix: AIs failed to load their data from savegames by crashing them when they tried [FS#3290] (r18038)
- Fix: Screen jumped a bit for at least SDL and Allegro when right-click-dragging (r18030)
- Fix: [NewGRF] Improve parsing of RIFF data. Skip unknown chunks and check chunk sizes (r17999)
- Fix: Count only active clients (not those waiting for map download) when checking min_active_clients limit (r16506)
2009-11-11 21:45:50 +00:00
frosch
e4b45169c1 (svn r17996) [0.7] -Backport from trunk:
- Fix: [NewGRF] 'last_value' and 'reseed' are shared between procedure and main chain, 'scope' and 'count' are not (r17672)
- Change: [NewGRF] Apply default refitmasks only when the NewGRF did not set any of the three refittability properties (xor mask, positive classes, negative classes) (r17663)
2009-11-07 16:37:48 +00:00
rubidium
d8c4ed5118 (svn r17989) [0.7] -Backport from trunk:
- Fix: Use 24bpp BMP format instead of 32bpp for screenshots. Saves space and is supported by more image viewers (r17943)
- Fix: Close BMP file when making screenshot fails (r17941)
- Fix: Deadlock when trying to create screenshot with too long name (including path) (r17936)
- Fix: 32bpp BMP screenshots were in wrong colours on big endian machines and broken when screen width was not a multiple of 4 (r17910, r17909)
2009-11-06 23:01:52 +00:00
rubidium
7b6e449f15 (svn r17988) [0.7] -Backport from trunk:
- Feature: Port OpenTTD to GNU/Hurd
- Fix: When you start giving money (input window for amount), then get moved to spectators and you click 'Ok' a crash would occur (r17953)
- Fix: Crash when closing NewGRF parameter window with no NewGRF selected [FS#3291] (r17922)
- Fix: Uninitialised values in some paths of loading TTO savegames [FS#3288] (r17908)
- Fix: Make the plane speed setting unchangeable in network games because it can be read by NewGRFs on game load and thus if it changes cause desyncs (r17902)
2009-11-06 22:58:54 +00:00
rubidium
072270f9b9 (svn r17987) [0.7] -Backport from trunk:
- Fix: [NewGRF] 'subtract-in' is also signed for production callback version 0 (r17857)
- Fix: [NewGRF] _date_fract runs from 0 to 73 since r2041. Variable 0x09 should not (r17824)
- Fix: Do not fail hard when no soundcard could be detected; just fall back on the null-driver [FS#3268] (r17788)
- Fix: CJK languages do not have spaces, so for adding newlines (multi line strings) we need to (properly) handle the case when there are no spaces instead of truncating the string [FS#3264] (r17772)
- Fix: Powernaut Helicopter got wrong 'load amount' (r17758)
- Change: Prefer extmidi over allegro midi and allegro over null driver [FS#3272] (r17875)
2009-11-06 22:53:21 +00:00
rubidium
9360409b4e (svn r17677) [0.7] -Backport from trunk:
- Fix: [NewGRF] Crash when trying to build an industry that has no industry layout defined [FS#3233] (r17638, r17633)
[0.7] -Prepare for 0.7.3
2009-10-01 10:55:05 +00:00
rubidium
9443dea1f1 (svn r17630) [0.7] -Prepare: for 0.7.3-RC2 2009-09-24 19:28:49 +00:00
rubidium
36649f354a (svn r17629) [0.7] -Backport from trunk:
- Document: AIInfo's functions [FS#3216] (r17627, r17621)
- Fix: Prevent false positives when verifying company and president name lengths (r17611).
- Fix: When a command did not fail in test run and failed in exec run, error message was not set. Affects only few commands (r17607)
- Fix: [NewGRF] Crash when defining the same tile in a tile layout twice [FS#3218] (r17605)
2009-09-24 19:22:32 +00:00
rubidium
88f87bc4ac (svn r17610) [0.7] -Fix [FS#3227] (r17302): reloading an AI caused reading and later freeing of already freed memory 2009-09-22 12:31:45 +00:00
rubidium
57992d5eac (svn r17598) [0.7] -Backport from trunk:
- Fix: Vehicle image was not always updated when needed (r17594)
- Fix: [NoAI] Could not query the size of small airports when they could not be build anymore [FS#3212] (r17591)
- Fix: Erroneous message about changing the difficulty level [FS#3220] (r17588)
- Fix: Assertion triggered when the second vehicle in a 101+ (or 11+ if mammoth trains is disabled) vehicle free wagon chain is an engine and the first vehicle is moved to another chain [FS#3208] (r17576)
2009-09-21 15:41:58 +00:00
rubidium
429eb416ac (svn r17565) [0.7] -Backport from trunk:
- Fix: Memory leak when viewing the NewGRF settings of a server (r17563)
- Fix: The NewGRF settings of (remote) network games did not get properly updated when the NewGRFs were rescanned causing reading of freed data [FS#2972] (r17562)
- Fix: Close the "Add NewGRF" window when you close the "NewGRF Settings" window. The add window has a pointer to the settings which means that not deleting it would cause dereferencing an already freed pointer [FS#3206] (r17559)
- Update: Documentation about bug reporting and known bugs (r17554)
2009-09-18 07:09:11 +00:00
rubidium
803e452fab (svn r17564) [0.7] -Backport from trunk:
- Fix: Vehicles waiting for their time table did not load anymore after their initial load was completed [FS#3201] (r17551)
- Fix: Aircraft were given an unfair advantage in station rating calculations (r17550)
- Fix: [NewGRF] Sign extending of profit calculation did not work (r17546)
- Fix: [NoAI] AIs had 'infinite' time when running code from the global scope [FS#3202] (r17545)
- Fix: [NoAI] Crash when doing commands in the 'global' scope [FS#3202] (r17544)
2009-09-18 07:00:35 +00:00
rubidium
a6251ba1a5 (svn r17519) [0.7] -Update: some of the documentation 2009-09-13 08:12:14 +00:00
rubidium
edbd568094 (svn r17517) [0.7] -Backport from trunk:
- Fix: [Squirrel] In some cases the call stack would not be cleaned up properly during crash handling. Occasionally this causes asserts to be triggered or crashes [FS#3189] (r17515)
- Fix: When loading GRFConfigs from ini file, validate them wrt. duplicate GRF IDs [FS#3197] (r17510)
- Fix: When building a part fails during cloning, sell what was already cloned instead of leaving it "for free". Also make cloning multiheaded trains possible with with "max - 1" vehicles existing [FS#3196] (r17509)
- Fix: The wrong value was restored to SetAllowDoCommand possible resulting in an AI that was not allowed to do any actions (r17500)
2009-09-12 20:59:34 +00:00
rubidium
6e14331cda (svn r17516) [0.7] -Backport from trunk:
- Fix: Road vehicles could get lost when the prelimiary destination (for the pathfinder heuristics) is unreachable [FS#3188] (r17491)
- Fix: Silence compile warning that is only triggered when you are using a broken iconv (r17479)
- Fix: In some cases compilation failed because the search path for ICU was not added to the ldflags (r17476, r17474)
- Document: Compiler warning when compiled without asserts in GCC 4.4+ is not our fault but a GCC bug. Includes a reference to the appropriate GCC bug report (r17461)
2009-09-12 20:44:12 +00:00
rubidium
58ebb4c65c (svn r17456) [0.7] -Backport from trunk:
- Fix: When building roads is not allowed for town, then do not build the initial piece either [FS#3173] (r17444)
- Fix: Destruction of depots did not remove any vehicle lists related to the depot, causing windows pointing to deleted depots and (thus) crashes [FS#3180] (r17442)
- Fix: Economy recession would never end when economy is set to Steady while in recession (r17426)
- Fix: The index of orders loaded from old savegames was owerwritten with an unitialized value (r17419)
2009-09-07 14:09:45 +00:00
rubidium
a442343076 (svn r17417) [0.7] -Backport from trunk:
- Fix: Incomplete check on validity of industry type when building industries (r17413)
- Fix: [Squirrel] Guard against Squirrel stack overflows (r17403)
- Fix: [NoAI] During every save a few slots on the Squirrel stack were leaked (r17402)
- Fix: [NoAI] Several AITile::* functions did not check whether their parameters were valid (r17378)
2009-09-04 20:40:15 +00:00
rubidium
0a4299bdfd (svn r17347) [0.7] -Fix (r17346): backport r16350 too as it fixes stuff a bug introduced by r16349, which was needed for the fix of r17307. 2009-09-01 13:28:15 +00:00
rubidium
ad2fbaddc1 (svn r17346) [0.7] -Backport from trunk:
- Document: how to manually install AIs
- Fix: Memory leak when trying to bankrupt the local company, other minor improvements of bankruptcy (r17342, r17341, r17340)
- Fix: Not all non-ASCII characters were entered with escapes in the About window (r17309)
- Fix: [NoAI] AIRail::RemoveRailTrack returned ERR_PRECONDITION_ERROR for road/rail-crossings (r17307)
2009-09-01 13:16:53 +00:00
smatz
36497b584e (svn r17305) [0.7] -Backport from trunk:
-Fix: [NoAI] AITown::GetLastMonthTransported didn't work as documented at all, make it return what AITown::GetLastMonthProduction did
-Change: [NoAI] AITown::GetLastMonthProduction now returns the same value as AITown::GetMaxProduction
-Add: [NoAI] AITown::GetLastMonthTransportedPercentage and AIIndustry::GetLastMonthTransportedPercentage
2009-08-29 11:18:03 +00:00
rubidium
47ae295ee1 (svn r17302) [0.7] -Backport from trunk:
- Fix: [NoAI] Reloading an AI started a new AI in the first available company slot causing other AIs to be started [FS#3153] (r17298)
- Fix: Crash after upgrading base graphics set when opening the game options menu and you were using the upgraded set [FS#3147] (r17291)
- Fix: [Squirrel] Stack was not always cleared properly with tail recursion (r17284)
- Fix: [Squirrel] Calling a function that has default parameters with not enough parameters can cause a crash (r17273)
- 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)
2009-08-28 17:17:08 +00:00
rubidium
ca66a61cc9 (svn r17260) [0.7] -Backport from trunk:
- Fix: Other tunnel end not shown if building rail tunnels and the first railtype is not available yet [FS#3141] (r17251)
- Fix: One could, via unselect all, also unselect already installed content; it would not uninstall it though [FS#3137] (r17245)
- 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 [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)
2009-08-22 15:38:42 +00:00
matthijs
e492c5928d (svn r17240) [0.7] -Backport from trunk:
- Change: Improve error output on missing or corrupt files (r17238).
2009-08-20 16:01:59 +00:00
rubidium
a0bc64394c (svn r17236) [0.7] -Backport from trunk:
- Fix: [NoAI] AIs that crashed during Save() were not killed as they should [FS#3134] (r17231)
- Fix: [NoAI] Do not assert when an AI uses AI*Mode objects incorrectly but crash the AI instead (r17230)
- 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)
2009-08-20 13:25:21 +00:00
rubidium
91078be657 (svn r17235) [0.7] -Backport from trunk:
- Fix: [NoAI] IsRoadTypeAvailable(GetCurrentRoadType()) was not a precondition for several AIRoad::* functions (r17203)
- Fix: [NoAI] Do not say you are building a depot when you are actually building a station (API docs typo) (r17201)
- Change: [NoAI] When the API requests a string as parameter allow every squirrel type and convert to a string [FS#3101] (r17221)
2009-08-20 12:22:31 +00:00
rubidium
86725561d5 (svn r17234) [0.7] -Backport from trunk:
- Fix: Remove the (deprecated since 2006) Encoding entry from the openttd.desktop file (r17226)
- Fix: With time tables vehicles would stay in the 'loading' state after they have finished loading [FS#3129, FS#3130] (r17222)
- Fix: Do not ignore white space changes (e.g. alignment fixes) in the exporter (r17220)
- Fix: Accept monthly production values in the scenario editor [FS#2406] (r17198)
- Change: [Unix] Only use colorized error output on interactive terminals (r17227)
- Update: credits to reflect the (current) truth a bit better (r17210)
2009-08-20 12:18:46 +00:00
rubidium
2801567da7 (svn r17197) [0.7] -Backport from trunk:
- Fix: [Squirrel] FPE when an AI tried to do "% 0" (r17195)
- Fix: [NoAI] Guard the valuator against 'external' modifications of the valuated list which could cause it to go into an infinite loop [FS#3124] (r17193)
- Remove: UNICODE notice in windows installer (r17186)
- Fix: Do not return exit value of rm, but of the actual configure run (r17163)
2009-08-15 22:06:51 +00:00
rubidium
c16325b939 (svn r17160) [0.7] -Backport from trunk:
- Fix: A stuck train could free the reservation of another train if it was reversed or did crash (r17152)
- Fix: A train entering a PBS section through a block signal could cause a train crash if another reservation ending at a safe tile was already present in the section [FS#3104] (r17151)
- Fix: Update vehicle position cache when the vehicle sprite changes [FS#3060] (r17121)
- Fix: News message about ordered refits failing was not very clear [FS#3091] (r17096)
2009-08-12 15:51:35 +00:00
rubidium
53983ec1af (svn r17158) [0.7] -Backport from trunk:
- Fix: Some typos in .obg stuff (r17136)
- Fix: Mark industry tiles dirty when trigger are triggered (r17118)
- Fix: Squirrel_export.sh failed for some locales (r17109)
- Fix: Make restart command work again and make the help show how it works and how it does not work [FS#3092] (r17097)
- Fix: Make ParseStringChoice a bit safer (r17095)
- Change: Make strgen warn if the translation uses STRINGn or RAW_STRING instead of STRING (r17137, r17129)
2009-08-12 15:22:50 +00:00
rubidium
a61574a033 (svn r17081) [0.7] -Backport from trunk:
- Fix: [NewGRF] Mark house tiles dirty when triggers were triggered (r17047)
- Fix: [NewGRF] Trigger house trigger 02 only for the north tile [FS#3085] (r17046)
- Fix: Graphical glitch with graph key [FS#3083] (r17041)
- Fix: "[bd]ash"-ism in configure [FS#3076] (r17026)
- Fix: Infinite recursion in content dependency checking [FS#3075] (r17015)
- Fix: Concatenating strings in Squirrel when non-ASCII strings were received from OpenTTD failed [FS#3074] (r17013)
2009-08-06 00:04:00 +00:00
rubidium
ad2c54d119 (svn r17080) [0.7] -Backport from trunk:
- Fix: [NoAI] Documentation of AITile::LevelTiles was wrong (r17049)
- 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)
- Fix: [NoAI] AIBridge::GetPrice returned incorrect values (r16986)
2009-08-05 23:57:41 +00:00
rubidium
fa713d0e3b (svn r17079) [0.7] -Backport from trunk:
- Change: Add notion of Ctrl_Click in the tooltip for Loan borrow/repay buttons [FS#3066] (r16979)
- Fix: Make it so that failing to generate many random towns in scenario editor returns a failing message [FS#3059] (r16977)
- Change: [MSVC] Make all language files depend on english.txt (r16975)
- Change: There is no point in not randomising engine introduction-date before 1922. Instead disable the randomisation for the first two years after game-start, so you do not have to wait for the first engine (r16929)
- Fix: The last manually added server would not be saved [FS#3062] (r16981)
2009-08-05 23:49:30 +00:00
rubidium
645664eced (svn r17078) [0.7] -Fix [FS#3082]: crash when renaming some towns (already fixed in trunk by rewrite of the function) 2009-08-05 23:32:18 +00:00
rubidium
19cad228e8 (svn r17077) [0.7] -Fix [FS#3024]: rpm spec file failed for CentOS; apparantly their rpmbuild is pickier or so 2009-08-05 23:30:10 +00:00
rubidium
f39f14aceb (svn r17009) [0.7] -Backport from trunk/prepare for release:
- Fix: Vehicles would wait "very long" when they had nothing to unload and gradual loading was disabled [FS#3054] (r16933)
2009-07-31 22:23:19 +00:00
rubidium
a86469d6bc (svn r16904) [0.7] -Backport language updates 2009-07-21 18:28:34 +00:00
rubidium
d567f99ecf (svn r16902) [0.7] -Backport from trunk:
- Fix: When marking trains stuck do not reset the unload/stuck counter when the vehicle is unloading. It will be automatically reset once the vehicle wants to leave the station [FS#3046] (r16901)
- Fix: [NoAI]: Small errors in the API documentation [FS#3037] (r16865)
- Fix: Savegames from before 0.4 would get their waypoint 'index' messed up (r16854)
- Fix: Cargo payments were not destroyed when a vehicle was destructed. This only happened when you crashed a vehicle while it was unloading [FS#3032, FS#3046] (r16801)
2009-07-21 17:17:20 +00:00
rubidium
969d538026 (svn r16835) [0.7] -Backport from trunk:
- Fix: Call the AI Save() function only once so AIs can not crash OpenTTD [FS#3034] (r16834)
- Fix: Use the palette of the vehicle being drawn instead of the one of the front vehicle (r16819)
- Update: language files
2009-07-15 20:29:45 +00:00
rubidium
5cde77086d (svn r16830) [0.7] -Backport from trunk:
- Change: Introduce a plural 'rule' for Korean (r16811)
- Fix: Automatic resizing of SelectCompanyLiveryWindow was not working as expected [FS#3021] (r16809)
2009-07-14 20:38:45 +00:00
rubidium
6d8d781d5c (svn r16807) [0.7] -Fix (r16806): shouldn't forget to revert the 'mistakes' of the script :( 2009-07-13 10:31:41 +00:00
rubidium
08dc96571a (svn r16806) [0.7] -Backport from trunk: language updates 2009-07-13 10:27:27 +00:00
rubidium
a123484ee0 (svn r16804) [0.7] -Backport from trunk:
- Fix: Service orders did not behave like conditional orders; if a train does not need service it did not completely skip the order, but still go in the direction of the depot [FS#3031] (r16802)
- Fix: Houses would not get build on the map edge [FS#3025] (r16795)
- Fix: Audio playback rate was fixed at 11025Hz regardless of the rate specified to the audio driver, resulting in incorrect playback speed. It is still preferable to use 11025Hz output rate if possible as OpenTTD's sample rate converter is very low quality (r16784)
- Fix: Do not use the same error message for turning around road vehicles and flipping parts of trains in the depot [FS#3019] (r16772)
2009-07-13 10:16:50 +00:00
rubidium
3edbb1a543 (svn r16803) [0.7] -Backport from trunk:
- Add: [NoAI] AIVehicle::GetReliability to get the current reliability of vehicles (r16790)
- Fix: The win32 and win64 binary packages would not get their readme converted to DOS line endings (r16769)
- Fix: [NoAI] AITile::GetCargoProduction/Acceptance did not accept a radius of 0 anymore (r16767)
- Fix: In the refit window the "Select cargo type to carry" line always showed the ship refit tooltip [FS#3018] (r16757)
2009-07-13 09:57:37 +00:00
rubidium
893bccf4c8 (svn r16744) [0.7] -Backport from trunk:
- Fix: r16660 and r16669 are needed to make r16709 work as it should.
- Fix: some small 'errors' in the English language file
2009-07-04 21:06:17 +00:00
rubidium
a97240dede (svn r16742) [0.7] -Backport from trunk:
- Fix: Only pay for whatever has been actually unloaded and perform the payment when unloading has finished [FS#2995] (r16694)
2009-07-04 17:39:00 +00:00
rubidium
876d064c4d (svn r16741) [0.7] -Backport from trunk:
- Fix: When loading a savegame Engine::grffile might be left NULL in certain cases (dynamic_engines enabled, articulated vehicle with only wagon-override action3s) (r16737)
- Fix: Show Close instead of Cancel when there is nothing to canel in the content downloading window [FS#2991] (r16732)
- Fix: [NoAI] AIDepotList contained wrong tiles for hangars when st->xy != st->airport_tile (r16731)
- Fix: The Join station window did not show all stations nearby in some cases (r16728)
- Fix: Invalidate subsidies with invalid source or destination when converting older savegames (r16710)
- Fix: The list of animated tiles could have duplicates (only for old savegames) and tiles that were not animated [FS#2994] (r16709)
2009-07-04 17:20:48 +00:00
rubidium
660fe672e8 (svn r16705) [0.7] -Backport: language updates 2009-06-30 20:29:39 +00:00
rubidium
b49c6e0cbd (svn r16704) [0.7] -Backport from trunk:
- Fix: When SDL/Allegro fail to initialise, fall back on another video driver but not to the null driver (r16702, r16700, r16699)
- Fix: Limit the screen's resolution to 65535x65535 so the dirty pixels stay within bounds of a 32 bits integer [FS#3001] (r16701)
- Fix: Missing debug string for ESRB_SAFE_TILE in YAPF debugging helper [FS#3002] (r16690)
- Fix: When there is no AI version that can load data from the savegame, load the latest version of the same AI instead of a random AI (r16651, r16650, r16649)
2009-06-30 20:11:36 +00:00
rubidium
0ffca06944 (svn r16638) [0.7] -Backport from trunk:
- Fix: Loading of some town data from old savegames was broken (r16631)
- Fix: [NewGRF] Some of the var action 2 80+ variables contained wrong values from NewGRF perspective (r16615, r16613)
- Fix: Antialiased fonts broken; check pixel_mode instead of palette_mode (r16602)
- Fix: Give a more meaningful error message when console commands expect an integer but do not get one (r16600)
2009-06-23 20:48:48 +00:00
rubidium
024aa14f94 (svn r16598) [0.7] -Backport from trunk:
- Fix: Mouse would under some circumstances not be undrawn when drawing the first chat line causing two mouse pointers to be visible [FS#2969] (r16594)
- Fix: Do not crash when tars/NewGRFs are removed, just tell the file could not be opened/found [FS#2967] (r16590)
- Fix: Set default stack size to 1MB to prevent _chstk crash (MSVC) [FS#2978] (r16589, r16588)
- Fix: [Network] Always send the starting date from the game you are currently playing instead the starting date from the config file (r16573)
2009-06-18 22:16:52 +00:00
rubidium
2d454f37f0 (svn r16597) [0.7] -Backport from trunk:
- Fix: Also catch FPEs in saveload and the warning about missing NewGRFs; only happens when assertions are disabled and NewGRFs are missing (r16572)
- Fix: In some cases, train could be stuck in depot [FS#2974] (r16571)
- Fix: [NoAI] AIMarine::AreWaterTilesConnected did not return true for bridge head<>neighbouring water tile (r16563)
- Fix: Removing of duplicates of base graphics set could behave randomly (r16548)
2009-06-18 22:14:13 +00:00
rubidium
a00a4b5ad8 (svn r16539) [0.7] -Backport from trunk:
- Fix: When finding duplicate graphics sets favour the more complete one (r16538)
- Fix: [Squirrel] Crash that occured when an AI was halted while one or more generators were still in a 'running' state [FS#2942] (r16534)
- Fix: [Squirrel] Do not copy an object when we just checked that the pointer to it is NULL (r16532)
- Fix: Notify small UFOs on deletion of road vehicles, so they can head for somewhere else instead of stumbling over a ghost (r16525)
- Update: a few languages.
2009-06-08 22:53:39 +00:00
rubidium
b1d2a8876b (svn r16531) [0.7] -Backport from trunk:
- Fix: [NoAI] StationIDs from oilrigs were not considered valid by the API (r16529)
- Fix: Draw PBS reservation as groundsprite resp. childsprite of foundation/bridgehead [FS#2959] (r16528)
- Fix: Missing guards in the NoAI API making it possible to hit an assert in OpenTTD [FS#2963] (r16524)
- Fix: [NoAI] Possible assert in AI debug window when an AI was stopped an a human company took its CompanyID [FS#2962] (r16522)
- Fix: [NoAI] Make sure AIBridge::BuildBridge returns what the documentation says it does (r16520)
2009-06-07 15:26:33 +00:00
rubidium
253702529d (svn r16511) [0.7] -Backport from trunk:
- Doc: [NoAI] Silence some (AI) doxygen warnings by adding comments about the appropriate things (r16510)
- Fix: [NoAI] All Sleep/DoCommand calls failed instead of only those via a call/acall/pcall function (r16509)
2009-06-03 18:55:45 +00:00
rubidium
65c5e26913 (svn r16508) [0.7] -Backport from trunk:
- Fix: Base graphics names must be unique, so do not add duplicates (r16503)
- Fix: [NoAI] When an AI was suspended while in a function called (indirectly) via call/acall/pcall OpenTTD crashed. Fix this by disallowing AIs to be suspended while called via call/acall/pcall [FS#2935] (r16502)
2009-06-03 13:33:58 +00:00
rubidium
9456d20800 (svn r16500) [0.7] -Backport: lots of changed strings from trunk 2009-06-01 17:48:11 +00:00
rubidium
7ccaa82206 (svn r16482) [0.7] -Backport from trunk:
- Fix: [NewGRF] Invalidate NewGRF variable caches of more vehicles in more places. Esp. they were only invalidated for trains (r16480)
- Fix: [NewGRF] Call callbacks after initialisation of vehicle variables (r16479)
- Fix: [NewGRF] Determining most common (sub-)cargo-type was broken due to someone confusing similiary named variables (r16478)
- Fix: Loading indicator when 'unload' in and 'no loading' is off was pointing to the wrong direction [FS#2936] (r16477)
- Fix: Track reservation was drawn at bridge heads in the menu (r16470)
2009-05-31 12:22:53 +00:00
rubidium
02f3d2d8af (svn r16481) [0.7] -Backport from trunk:
- Fix: [NoAI] Another try/catch related bug (r16454)
- Fix: Road vehicles ending up on the pavement when they are in a drive through station that got removed due to bankruptcy [FS#2909] (r16448)
- Fix: [NoAI] AIRail::GetRailStationDirection returned incorrect information (r16440)
- Fix: Crash when a company is deleted while a dropdown with company names is open (r16430)
- Change: [NoAI] Stop an AI when it takes too long to initialize or load [FS#2869] (r16425)
2009-05-31 12:18:03 +00:00
rubidium
7742f8c080 (svn r16423) [0.7] -Backport from trunk:
- Fix: Do not allow content download via the console when there is no zlib as it is done for the GUI already [FS#2919] (r16420)
- Fix: Some 64bit architectures require size_t to be aligned at 8-byte boundary, ensure it for MemBlock (r16415)
- Add: [NoAI] AISignList that can be used to get a list of valid signs (r16400)
- Fix: [NewGRF] Disable multitile houses with non-zero population on additional tiles as they cause desyncs and because the specs do not allow that either (r16383)
- Fix: [NewGRF] Valid UTF-8 sequences between 0x20 and 0xFF should be allowed as is instead of being treated as control codes (r16374)
- Fix: [NewGRF] Use a valid StringID as fall-back when undefined generic NewGRF strings of vehicles are requested (r16366)
2009-05-25 17:15:15 +00:00
rubidium
ba01583ce3 (svn r16364) [0.7] -Backport from trunk:
- 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)
2009-05-21 11:47:45 +00:00
rubidium
498e5989d1 (svn r16355) [0.7] -Backport from trunk:
- 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)
[0.7] -Cleanup: unify style of changelog
2009-05-18 20:17:28 +00:00
rubidium
ab7b117c50 (svn r16324) [0.7] -Backport from trunk:
- Fix: Desyncs due to the fact that depot searching with a maximum search depth simply does not work with YAPF's caches [FS#2900] (r16323)
- Fix: Trains could get stuck in a depot when they wanted to go to the same depot again [FS#2873] (r16322)
- Fix: In the scenario editor change the (starting) game year of the scenario, not the (starting) game year for new games/scenarios (r16321)
- Fix: Loading of savegames created in revision between 0.3.5 and 0.3.6 caused crash (r16320)
- Fix: [NoAI] Set the autorenew settings for new AI companies to the default values, not to 0 or the local settings (r16316)
- Fix: [NewGRF] Allow accessing the house age when the house is not yet built (r16314)
- Fix: (Get|Set)TrackBits() is only valid for RAIL_TILE_NORMAL and _SIGNALS (r16311)
2009-05-16 20:29:53 +00:00
rubidium
085b498c28 (svn r16310) [0.7] -Backport from trunk:
- Fix: Parameter is invalid when it is equal to length of an array (r16308)
- Fix: Close all windows before unloading the AI system as closing the content-download window will rescan for AIs [FS#2901] (r16306)
- Fix: ICC (Intel C++ Compiler) defined __GNUC__ but does not define __builtin_bswap32, so fall back to the default swap method for ICC (r16295)
- Fix: Road vehicles were unable to find a depot when turning around (in some cases), causing 'nearest depot' orders to be occasionally lost [FS#2893] (r16291
2009-05-15 10:24:13 +00:00
rubidium
30eff93341 (svn r16309) [0.7] -Backport from trunk:
- Fix: Unable to (re)set the desert state for watery tiles [FS#2888] (r16290)
- Fix: Possible (in theory) desync related to autorenew settings (r16287)
- Fix: Crash after using the 'Reset landscape' function and remove all waypoint signs and buoys after resetting landscape (r16280)
- Fix: [NewGRF] Disable multitile houses for which the newgrf does not define proper additional tiles (r16274)
2009-05-15 10:17:00 +00:00
rubidium
139a213d4d (svn r16278) [0.7] -Backport from trunk:
- Fix: The language is called Slovak, not Slovakish (r16090)
2009-05-11 15:35:26 +00:00
rubidium
06c45d6fe5 (svn r16275) [0.7] -Backport a lot of language updates from trunk. 2009-05-10 22:35:36 +00:00
rubidium
8446d6b8c2 (svn r16273) [0.7] -Backport from trunk:
- Fix: Wrong number of parameters or wrong parameter types sent to printf-like functions at several places (r16269)
- Fix: [NewGRF] When callback 2E returns an amount of 0, do not transport 1 unit to the station (r16268)
- Fix: [NoAI] Various documentation omissions with respect to IDs of various objects and corners for AITile::(Raise|Lower)Tile (r16267,r16266)
2009-05-10 21:33:55 +00:00
rubidium
9676072298 (svn r16272) [0.7] -Backport from trunk:
- Fix: [NoAI] Check slopes passed to the API better for validity (r16264, r16262)
- Fix: [NewGRF] Interpret setting bridge property 08 to 0 as always available (r16263)
- Add: [NoAI] AIController::GetVersion, this returns the version of OpenTTD in the same way as for NewGRFs (r16253)
- Add: [NoAI] AIAirport::GetPrice, returning the building cost of an airport (r16252)
- Fix: [NoAI] Enable parameter checking for AIController::* functions again (r16249)
2009-05-10 21:26:46 +00:00
rubidium
2db7e3a0a8 (svn r16248) [0.7] -Backport from trunk:
- Fix: Improve corner case order handling: mark order as done only when actually done, obey non-stop orders, do only stop/refit at the depot in the order (r16240,r16228,r16199,r16198,r16187)
- Fix: Use the stop/non-stop intermediate orderflags AIs can give for goto-depot orders (r16239)
2009-05-06 23:21:43 +00:00
rubidium
1e9fd18e6a (svn r16247) [0.7] -Backport from trunk:
- Fix: [NoAI] Make sure AITunnel::BuildTunnel returns what the documentation says it does (r16244)
- Fix: [NoAI] CmdBuildTunnel could be called with invalid parameters from the API code, causing crashes later [FS#2875] (r16243)
- Fix: [NewGRF] ActionB should use the online parameters from GRFFile instead of the initial user-specified values from GRFConfig. Also use the values as they were set when the ActionB was executed, not as they are set when the message is shown (r16223)
- Fix: Possible crashes when quiting OpenTTD or forcing resizes/redraws of the screen during map generation [FS#2862] (r16220)
- Fix: Shared orders without orders were not properly converted causing corrupt/invalid orders when loading pre 0.7 savegames [FS#2878] (r16214)
2009-05-06 22:37:19 +00:00
rubidium
909af50aaa (svn r16246) [0.7] -Backport from trunk:
- Fix: [Squirrel] the traps variable wasn't restored, causing try/catch blocks to be 'forgotten' during a suspend (r16181)
- Add: [NoAI] Two new error codes to AITile: ERR_AREA_ALREADY_FLAT and ERR_EXCAVATION_WOULD_DAMAGE (r16171)
- Add: [NoAI] AITile::Get(Min|Max|Corner)Height (r16166)
- Add: [NoAI] Several functions to AIOrder to check the what kind of order an order is [FS#2801] (r16165)
- Fix: [NoAI] AIOrder::GetOrderDestination and AIOrder::GetOrderFlags didn't work on ORDER_CURRENT when the vehicle was loading/leaving in a station (r16165)
- Fix: [NoAI] Change WAYPOINT_INVALID to 0xFFFF from -1 as that is the value the AIs got (due to casting) (r16150)
2009-05-06 22:31:52 +00:00
rubidium
07a16f9282 (svn r16245) [0.7] -Backport from trunk:
- Fix: Hardcoded (old sized) MAX_COMPANIES constant (r16182)
- Fix: Do not try to reserve path for trains crashed in station [FS#2866] (r16178)
- Fix: Forbid joining AI companies via the 'move' and 'join' console commands/multiplayer lobby (r16176, r16175)
- Fix: The overflowsafe type did not like dividing by int64 larger than MAX_INT32 causing division by negative numbers and small anomolies when drawing graphs [FS#2855] (r16130)
2009-05-06 22:21:32 +00:00
rubidium
28e7981a5b (svn r16121) [0.7] -Backport from trunk:
- Add: [NoAI] UseAsRandomAI as function in info.nut. When an AI returns false, it will never be chosen as random AI (r16113)
- Fix: [NoAI] Make sure AIOrder::GetDestination always returns a tile belonging to the station (16109)
- Fix: [NoAI] When giving an aircraft a goto-hangar order do not let it be a normal goto-station order (r16108)
- Add: [NoAI] AIOF_STOP_IN_DEPOT to the orderflags in AIOrder to allow stop-in-depot orders (r16107)
- Fix: [NoAI] AIOrder::SetOrderFlags always removed "Service if needed" from goto-depot orders (r16106)
- Add: [NoAI] GetURL() as possible function to info.nut. If AIs implement it, that url is shown when the AI crashes and also in the AI selection window [FS#2808] (r16093)
- Change: [NoAI] Reverse the order of the lines in the AI debug window [FS#2778] (r16091)
- Fix: [NoAI] AIDebug window profiled the blitters by invalidating itself unconditionally on repaint. OTOH it was not invalidated in other cases when needed (r16094)
- Fix: [NoAI] MOF_COND_DESTINATION was not accepted by CmdModifyOrder() (r16063)
2009-04-22 09:00:19 +00:00
rubidium
f7cc97fe5c (svn r16120) [0.7] -Backport from trunk:
- Fix: Road was removed when both the Remove button was active and Ctrl was pressed [FS#2582] (r16119)
- Fix: Connect tried to validate too much of the company ID with too little information on hand [FS#2849] (r16096)
- Fix: Insanely fast trains would not stop in time for stations/'jump' over waypoints/via stations within a tick, which would cause the order not to be processed causing the train to go in loops until (with luck) it 'hit' the tile [FS#2824] (r16079)
- Fix: Content download progress bar 'resetting' due to mathematical overflow [FS#2845] (r16071)
- Fix: Memory leak when querying a server multiple times (r16064)
2009-04-22 08:48:08 +00:00
rubidium
d9ed2d380f (svn r16061) [0.7] -Backport from trunk:
- Fix: Non advanced vehicle list did not handle company switching correctly (r16054)
- 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 cargoes are part of the liquid, passenger or mail classes [FS#2785] (r16029)
2009-04-14 21:20:03 +00:00
rubidium
60901368cc (svn r16060) [0.7] -Backport from trunk:
- 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)
- Fix: 32 bpp sprites in tars would also be shown in the list of heightmaps [FS#2817] (r16023)
- Fix: Sometimes the unregister "query" thread could be delayed so much that the network stuff was already closed and the packet would never reach the master server causing the server to appear online longer than necessary (r16022)
- Fix: Chance16() did not work for b = 1. Also transform the formula to not use divisions (r16006)
2009-04-14 21:13:07 +00:00
rubidium
9f5e690118 (svn r16059) [0.7] -Backport from trunk:
- Fix: Inconsistency between using NETWORK_NAME_LENGTH and NETWORK_CLIENT_NAME_LENGTH for the length of client names (r15988)
- Fix: [NewGRF] Abort production callback after 0x10000 iterations and show a messagebox blaming the NewGRF [FS#2787] (r15958)
- Fix: [NewGRF] Set callback_param1 (var 10) to 1 only when requested (r15957)
- Fix: Tooltip of detailed ratings window button showed wrong tip (r15943)
- Change: Harden string copying on places where it is possible (r16024)
- Change: Use recent Czech language for plural form (r15965)
2009-04-14 21:07:33 +00:00
rubidium
2fbd7ff6cc (svn r15912) [0.7] -Backport from trunk:
- Update: lots and lots of translations
- Fix: Chat completion got called twice causing tab completion to seemingly fail (r15905)
2009-04-01 14:24:54 +00:00
rubidium
1595413545 (svn r15904) [0.7] -Backport from trunk:
- Feature: Watermark crash.sav and do not generate crash information if a loaded crash.sav causes a crash so the real crash report does not get overwritten (r15893)
- Feature: Add autoclean_novehicles setting which will, when autoclean_companies is true, remove any company with no vehicles and no active client after autoclean_novehicles-months (r15848)
- Add: [NoAI] AIIndustryType::IsBuiltOnWater(), HasHeliport() and HasDock(). Just like AIIndustry (r15901)
- Add: [NoAI] AIBridge::GetBridgeID() so AIs can get the type of bridge that are already build (r15875)
- Add: [NoAI] AIRoad::GetRoadVehicleTypeForCargo() to tell whether a certain cargo needs a bus- or a truckstop (r15860)
2009-03-30 23:22:13 +00:00
rubidium
76b2e1c5ab (svn r15903) [0.7] -Backport from trunk:
- Fix: YAPF did not apply the platform length (too long/too short) penalties (r15900)
- Fix: Fixing the slopes was done a bit more often than intended making map generation with the original generator horribly slow (r15895)
- Fix: YAPF used different penalties for aqueducts than for other water tiles (r15891)
- Fix: Round the production rate up, so e.g. oilrigs always produce some passengers on lowest production level [FS#2772] (r15888)
- Fix: Libtimidity cannot handle frees of NULL (in contrast of most other frees) [FS#2770] (r15886)
- Fix: Make sure house class/ID counters do not overflow (r15831)
2009-03-30 23:15:05 +00:00
rubidium
7e1385b6eb (svn r15828) [0.7] -Prepare: for 0.7.0-RC2. 2009-03-23 00:19:22 +00:00
rubidium
4ec28e1ba7 (svn r15826) [0.7] -Backport from trunk:
- Update: language files
- Fix: Some (newer) GCCs have trouble compiling the Win32 specific part of fontcache.cpp; jumps across variable declarations [FS#2752] (r15818)
- Fix: When sorting on cost do not sort on the running cost [FS#2749] (r15778)
2009-03-23 00:12:52 +00:00
rubidium
30afba1d10 (svn r15775) [0.7] -Backport from trunk:
- Fix: Do not show the message about reporting an AI crash for the dummy AI (r15774)
- Fix: Number of active clients was not always properly updated [FS#2475] (r15773)
- Fix: Settings from the [gameopt] section (from old 0.6 config files) were overwritten with default values (r15771)
- Fix: Infinite loop when skipping sprites when a GRF is invalid (or truncated) (r15767)
- Fix: Crash when opening the content list window twice; inconsistencies when clicking download twice [FS#2744] (r15766)
2009-03-19 23:50:54 +00:00
rubidium
61e97110c9 (svn r15765) [0.7] -Backport from trunk:
- Change: [NewGRF] Expose GRF ID of engines in var action property 0x25 (r15739)
- Fix: Add Engine::GetDisplayDefaultCapacity() and use it everywhere, so CB 36 is also used everywhere (r15763)
- Fix: [Windows] Inlined UTF-8 characters (in the source code) are not handled properly on Eastern versions of Windows so escape them (r15762)
- Fix: [Windows] On some system searching a font using its English name fails. So now we search the font using the localised name and use the English name for the final 'validation' only (r15757)
2009-03-18 19:50:34 +00:00
rubidium
9e592b9986 (svn r15764) [0.7] -Backport from trunk:
- Fix: Number of houses in house variables 0x44, 0x60 and 0x61 were incorrect after 0xFF had been reached and could desync clients joining afterwards (r15755)
- Fix: Crash when clicking the small area between the savegame list and the save button in the save game window [FS#2742] (r15753)
- Fix: Do not try to (un)draw the cursor when the screen is not ready (r15752)
- Fix: The big UFO sometimes landed just outside the map. Instead of landing, just disappear (fly away) in those cases (r15750)
- Fix: Crash because submarines would sometimes start far outside of the map [FS#2739] (r15748)
- Fix: Road ownership getting lost when removing a road stop [FS#2736] (r15747)
- Fix: Update threading code for OS/2, add mutex support, fix compilation (r15746, r15745)
- Fix: When town generator failed to create requested number of towns, there were too many cities (r15744)
2009-03-18 19:47:05 +00:00
rubidium
de7a4a4006 (svn r15737) [0.7] -Prepare: for 0.7.0-RC1. 2009-03-15 22:42:48 +00:00
rubidium
53dc1a89da (svn r15734) [0.7] -Branch: the long awaited branch so we can introduce new features in trunk before 0.7.0, but not let them destabalize the pending release :) 2009-03-15 22:14:10 +00:00
996 changed files with 194154 additions and 250299 deletions

View File

@@ -1,10 +1,3 @@
# $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/>.
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
@@ -33,6 +26,7 @@ STRIP_FROM_INC_PATH =
SHORT_NAMES = NO
JAVADOC_AUTOBRIEF = YES
MULTILINE_CPP_IS_BRIEF = NO
DETAILS_AT_TOP = NO
INHERIT_DOCS = YES
DISTRIBUTE_GROUP_DOC = NO
TAB_SIZE = 2
@@ -94,7 +88,7 @@ FILE_PATTERNS = *.c \
RECURSIVE = YES
EXCLUDE =
EXCLUDE_SYMLINKS = NO
EXCLUDE_PATTERNS = */3rdparty */.svn
EXCLUDE_PATTERNS =
EXAMPLE_PATH =
EXAMPLE_PATTERNS = *
EXAMPLE_RECURSIVE = NO

View File

@@ -1,10 +1,3 @@
# $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/>.
#
# Creation of bundles
#
@@ -29,16 +22,12 @@ endif
# An OSX application bundle needs the data files, lang files and openttd executable in a different location.
ifdef OSXAPP
AI_DIR = $(BUNDLE_DIR)/$(OSXAPP)/Contents/Resources/ai
DATA_DIR = $(BUNDLE_DIR)/$(OSXAPP)/Contents/Resources/data
LANG_DIR = $(BUNDLE_DIR)/$(OSXAPP)/Contents/Resources/lang
GM_DIR = $(BUNDLE_DIR)/$(OSXAPP)/Contents/Resources/gm
TTD_DIR = $(BUNDLE_DIR)/$(OSXAPP)/Contents/MacOS
else
AI_DIR = $(BUNDLE_DIR)/ai
DATA_DIR = $(BUNDLE_DIR)/data
LANG_DIR = $(BUNDLE_DIR)/lang
GM_DIR = $(BUNDLE_DIR)/gm
TTD_DIR = $(BUNDLE_DIR)
endif
@@ -50,31 +39,25 @@ bundle: all
$(Q)mkdir -p "$(BUNDLE_DIR)/media"
$(Q)mkdir -p "$(BUNDLE_DIR)/scripts"
$(Q)mkdir -p "$(TTD_DIR)"
$(Q)mkdir -p "$(AI_DIR)"
$(Q)mkdir -p "$(DATA_DIR)"
$(Q)mkdir -p "$(LANG_DIR)"
$(Q)mkdir -p "$(GM_DIR)"
ifdef OSXAPP
$(Q)mkdir -p "$(BUNDLE_DIR)/$(OSXAPP)/Contents/Resources"
$(Q)echo "APPL????" > "$(BUNDLE_DIR)/$(OSXAPP)/Contents/PkgInfo"
$(Q)cp "$(ROOT_DIR)/os/macosx/openttd.icns" "$(BUNDLE_DIR)/$(OSXAPP)/Contents/Resources/openttd.icns"
$(Q)$(ROOT_DIR)/os/macosx/plistgen.sh "$(BUNDLE_DIR)/$(OSXAPP)" "$(REV)"
$(Q)cp "$(ROOT_DIR)/docs/OSX_install_instructions.txt" "$(BUNDLE_DIR)/docs/"
$(Q)cp "$(ROOT_DIR)/os/macosx/splash.png" "$(DATA_DIR)"
endif
$(Q)cp "$(BIN_DIR)/$(TTD)" "$(TTD_DIR)/"
$(Q)cp "$(BIN_DIR)/ai/"compat_*.nut "$(AI_DIR)/"
$(Q)cp "$(BIN_DIR)/data/"*.grf "$(DATA_DIR)/"
$(Q)cp "$(BIN_DIR)/data/"*.obg "$(DATA_DIR)/"
$(Q)cp "$(BIN_DIR)/data/"*.obs "$(DATA_DIR)/"
$(Q)cp "$(BIN_DIR)/data/opntitle.dat" "$(DATA_DIR)/"
$(Q)cp "$(BIN_DIR)/lang/"*.lng "$(LANG_DIR)/"
$(Q)cp "$(BIN_DIR)/gm/"*.obm "$(GM_DIR)/"
$(Q)cp "$(ROOT_DIR)/readme.txt" "$(BUNDLE_DIR)/"
$(Q)cp "$(ROOT_DIR)/COPYING" "$(BUNDLE_DIR)/"
$(Q)cp "$(ROOT_DIR)/known-bugs.txt" "$(BUNDLE_DIR)/"
$(Q)cp "$(ROOT_DIR)/docs/obg_format.txt" "$(BUNDLE_DIR)/docs/"
$(Q)cp "$(ROOT_DIR)/docs/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)/"
@@ -112,11 +95,6 @@ bundle_zip: bundle
$(Q)mkdir -p "$(BUNDLES_DIR)"
$(Q)cd "$(BUNDLE_DIR)" && zip -r $(shell if test -z "$(VERBOSE)"; then echo '-q'; fi) "$(BUNDLES_DIR)/$(BUNDLE_NAME).zip" .
bundle_7z: bundle
@echo '[BUNDLE] Creating $(BUNDLE_NAME).7z'
$(Q)mkdir -p "$(BUNDLES_DIR)"
$(Q)cd "$(BUNDLE_DIR)" && 7z a "$(BUNDLES_DIR)/$(BUNDLE_NAME).7z" .
bundle_gzip: bundle
@echo '[BUNDLE] Creating $(BUNDLE_NAME).tar.gz'
$(Q)mkdir -p "$(BUNDLES_DIR)/.gzip/$(BUNDLE_NAME)"
@@ -131,13 +109,6 @@ bundle_bzip2: bundle
$(Q)cd "$(BUNDLES_DIR)/.bzip2" && tar -jc$(shell if test -n "$(VERBOSE)"; then echo 'v'; fi)f "$(BUNDLES_DIR)/$(BUNDLE_NAME).tar.bz2" "$(BUNDLE_NAME)"
$(Q)rm -rf "$(BUNDLES_DIR)/.bzip2"
bundle_lzma: bundle
@echo '[BUNDLE] Creating $(BUNDLE_NAME).tar.lzma'
$(Q)mkdir -p "$(BUNDLES_DIR)/.lzma/$(BUNDLE_NAME)"
$(Q)cp -R "$(BUNDLE_DIR)/"* "$(BUNDLES_DIR)/.lzma/$(BUNDLE_NAME)/"
$(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_lha: bundle
@echo '[BUNDLE] Creating $(BUNDLE_NAME).lha'
$(Q)mkdir -p "$(BUNDLES_DIR)/.lha/$(BUNDLE_NAME)"
@@ -156,8 +127,8 @@ bundle_exe: all
@echo '[BUNDLE] Creating $(BUNDLE_NAME).exe'
$(Q)mkdir -p "$(BUNDLES_DIR)"
$(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"
$(Q)cd $(ROOT_DIR)/os/win32/installer && makensis.exe //DVERSION_INCLUDE=version_$(PLATFORM).txt install.nsi
$(Q)mv $(ROOT_DIR)/os/win32/installer/*$(PLATFORM).exe "$(BUNDLES_DIR)/$(BUNDLE_NAME).exe"
ifdef OSXAPP
install:
@@ -168,10 +139,8 @@ install: bundle
$(Q)install -d "$(INSTALL_BINARY_DIR)"
$(Q)install -d "$(INSTALL_ICON_DIR)"
$(Q)install -d "$(INSTALL_DATA_DIR)/gm"
$(Q)install -d "$(INSTALL_DATA_DIR)/ai"
$(Q)install -d "$(INSTALL_DATA_DIR)/data"
$(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)
@@ -180,9 +149,7 @@ else
$(Q)install -m 755 "$(BUNDLE_DIR)/$(TTD)" "$(INSTALL_BINARY_DIR)/${BINARY_NAME}"
endif
$(Q)install -m 644 "$(BUNDLE_DIR)/lang/"* "$(INSTALL_DATA_DIR)/lang"
$(Q)install -m 644 "$(BUNDLE_DIR)/ai/"* "$(INSTALL_DATA_DIR)/ai"
$(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"
$(Q)install -m 644 "$(BUNDLE_DIR)/docs/"* "$(INSTALL_DOC_DIR)"
$(Q)install -m 644 "$(BUNDLE_DIR)/"*.txt "$(INSTALL_DOC_DIR)"

View File

@@ -1,10 +1,3 @@
# $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/>.
# Check if we want to show what we are doing
ifdef VERBOSE
Q =
@@ -14,36 +7,36 @@ endif
include Makefile.am
CONFIG_CACHE_PWD = !!CONFIG_CACHE_PWD!!
SOURCE_LIST = !!SOURCE_LIST!!
CONFIG_CACHE_SOURCE_LIST = !!CONFIG_CACHE_SOURCE_LIST!!
BIN_DIR = !!BIN_DIR!!
ICON_THEME_DIR = !!ICON_THEME_DIR!!
MAN_DIR = !!MAN_DIR!!
MENU_DIR = !!MENU_DIR!!
SRC_DIR = !!SRC_DIR!!
ROOT_DIR = !!ROOT_DIR!!
BUNDLE_DIR = "$(ROOT_DIR)/bundle"
BUNDLES_DIR = "$(ROOT_DIR)/bundles"
INSTALL_DIR = !!INSTALL_DIR!!
INSTALL_BINARY_DIR = "$(INSTALL_DIR)/"!!BINARY_DIR!!
INSTALL_MAN_DIR = "$(INSTALL_DIR)/$(MAN_DIR)"
INSTALL_MENU_DIR = "$(INSTALL_DIR)/$(MENU_DIR)"
INSTALL_ICON_DIR = "$(INSTALL_DIR)/"!!ICON_DIR!!
INSTALL_ICON_THEME_DIR = "$(INSTALL_DIR)/$(ICON_THEME_DIR)"
INSTALL_DATA_DIR = "$(INSTALL_DIR)/"!!DATA_DIR!!
INSTALL_DOC_DIR = "$(INSTALL_DIR)/"!!DOC_DIR!!
SOURCE_LIST = !!SOURCE_LIST!!
CONFIG_CACHE_PWD = !!CONFIG_CACHE_PWD!!
CONFIGURE_FILES = !!CONFIGURE_FILES!!
LIPO = !!LIPO!!
BIN_DIR = !!BIN_DIR!!
ICON_THEME_DIR = !!ICON_THEME_DIR!!
MAN_DIR = !!MAN_DIR!!
MENU_DIR = !!MENU_DIR!!
SRC_DIR = !!SRC_DIR!!
ROOT_DIR = !!ROOT_DIR!!
BUNDLE_DIR = "$(ROOT_DIR)/bundle"
BUNDLES_DIR = "$(ROOT_DIR)/bundles"
INSTALL_DIR = !!INSTALL_DIR!!
INSTALL_BINARY_DIR = "$(INSTALL_DIR)/"!!BINARY_DIR!!
INSTALL_MAN_DIR = "$(INSTALL_DIR)/$(MAN_DIR)"
INSTALL_MENU_DIR = "$(INSTALL_DIR)/$(MENU_DIR)"
INSTALL_ICON_DIR = "$(INSTALL_DIR)/"!!ICON_DIR!!
INSTALL_ICON_THEME_DIR = "$(INSTALL_DIR)/$(ICON_THEME_DIR)"
INSTALL_DATA_DIR = "$(INSTALL_DIR)/"!!DATA_DIR!!
INSTALL_DOC_DIR = "$(INSTALL_DIR)/"!!DOC_DIR!!
BINARY_NAME = !!BINARY_NAME!!
STRIP = !!STRIP!!
TTD = !!TTD!!
TTDS = $(SRC_DIRS:%=%/$(TTD))
OS = !!OS!!
OSXAPP = !!OSXAPP!!
LIPO = !!LIPO!!
REVISION = !!REVISION!!
AWK = !!AWK!!
DISTCC = !!DISTCC!!
STRIP = !!STRIP!!
TTD = !!TTD!!
TTDS = $(SRC_DIRS:%=%/$(TTD))
OS = !!OS!!
OSXAPP = !!OSXAPP!!
REVISION = !!REVISION!!
AWK = !!AWK!!
DISTCC = !!DISTCC!!
RES := $(shell if [ ! -f $(CONFIG_CACHE_PWD) ] || [ "`pwd`" != "`cat $(CONFIG_CACHE_PWD)`" ]; then echo "`pwd`" > $(CONFIG_CACHE_PWD); fi )
RES := $(shell if [ ! -f $(CONFIG_CACHE_SOURCE_LIST) ] || [ -n "`cmp $(CONFIG_CACHE_SOURCE_LIST) $(SOURCE_LIST) 2>/dev/null`" ]; then cp $(SOURCE_LIST) $(CONFIG_CACHE_SOURCE_LIST); fi )

View File

@@ -1,30 +1,22 @@
# $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/>.
STRGEN = !!STRGEN!!
ENDIAN_CHECK = !!ENDIAN_CHECK!!
SRC_DIR = !!SRC_DIR!!
LANG_DIR = !!LANG_DIR!!
BIN_DIR = !!BIN_DIR!!
LANGS_SRC = $(shell ls $(LANG_DIR)/*.txt)
LANGS = $(LANGS_SRC:$(LANG_DIR)/%.txt=%.lng)
CXX_BUILD = !!CXX_BUILD!!
CFLAGS_BUILD = !!CFLAGS_BUILD!!
LDFLAGS_BUILD = !!LDFLAGS_BUILD!!
STRGEN_FLAGS = !!STRGEN_FLAGS!!
STAGE = !!STAGE!!
LANG_SUPPRESS = !!LANG_SUPPRESS!!
LANG_OBJS_DIR = !!LANG_OBJS_DIR!!
STRGEN = !!STRGEN!!
ENDIAN_CHECK = !!ENDIAN_CHECK!!
SRC_DIR = !!SRC_DIR!!
LANG_DIR = !!LANG_DIR!!
BIN_DIR = !!BIN_DIR!!
LANGS_SRC = $(shell ls $(LANG_DIR)/*.txt)
LANGS = $(LANGS_SRC:$(LANG_DIR)/%.txt=%.lng)
CXX_BUILD = !!CXX_BUILD!!
CFLAGS_BUILD = !!CFLAGS_BUILD!!
STRGEN_FLAGS = !!STRGEN_FLAGS!!
STAGE = !!STAGE!!
LANG_SUPPRESS= !!LANG_SUPPRESS!!
LANG_OBJS_DIR= !!LANG_OBJS_DIR!!
ifeq ($(LANG_SUPPRESS), yes)
LANG_ERRORS = >/dev/null 2>&1
endif
# Make sure endian_host.h is reachable as if it was in the src/ dir
# Make sure endian_host.h is reasable as if it was in the src/ dir
CFLAGS_BUILD += -I $(LANG_OBJS_DIR)
ENDIAN_TARGETS := endian_host.h endian_target.h $(ENDIAN_CHECK)
@@ -42,7 +34,7 @@ RES := $(shell mkdir -p $(BIN_DIR)/lang )
all: table/strings.h $(LANGS)
strgen.o: $(SRC_DIR)/strgen/strgen.cpp endian_host.h $(SRC_DIR)/table/control_codes.h $(SRC_DIR)/table/strgen_tables.h
strgen.o: $(SRC_DIR)/strgen/strgen.cpp endian_host.h $(SRC_DIR)/table/control_codes.h
$(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.cpp=%.cpp)'
$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) -DSTRGEN -c -o $@ $<
@@ -60,7 +52,7 @@ lang/english.txt: $(LANG_DIR)/english.txt
$(STRGEN): alloc_func.o string.o strgen.o
$(E) '$(STAGE) Compiling and Linking $@'
$(Q)$(CXX_BUILD) $(LDFLAGS_BUILD) $^ -o $@
$(Q)$(CXX_BUILD) $^ -o $@
table/strings.h: lang/english.txt $(STRGEN)
$(E) '$(STAGE) Generating $@'

View File

@@ -1,10 +1,3 @@
# $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/>.
#
# Makefile for creating bundles of MSVC's binaries in the same way as we make
# the zip bundles for ALL other OSes.
@@ -20,14 +13,14 @@ else
Q = @
endif
AWK = "awk"
ROOT_DIR := $(shell pwd)
BIN_DIR = "$(ROOT_DIR)/bin"
SRC_DIR = "$(ROOT_DIR)/src"
BUNDLE_DIR = "$(ROOT_DIR)/bundle"
AWK = "awk"
ROOT_DIR := $(shell pwd)
BIN_DIR = "$(ROOT_DIR)/bin"
SRC_DIR = "$(ROOT_DIR)/src"
BUNDLE_DIR = "$(ROOT_DIR)/bundle"
BUNDLES_DIR = "$(ROOT_DIR)/bundles"
TTD = openttd.exe
TARGET := $(shell echo $(PLATFORM) | sed "s@win64@x64@;s@win32@Win32@")
TTD = openttd.exe
TARGET := $(shell echo $(PLATFORM) | sed "s@win64@x64@;s@win32@Win32@")
all:
$(Q)cp objs/$(TARGET)/Release/$(TTD) $(BIN_DIR)/$(TTD)

View File

@@ -1,43 +1,32 @@
# $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/>.
CC_HOST = !!CC_HOST!!
CXX_HOST = !!CXX_HOST!!
CC_BUILD = !!CC_BUILD!!
CXX_BUILD = !!CXX_BUILD!!
WINDRES = !!WINDRES!!
STRIP = !!STRIP!!
CFLAGS = !!CFLAGS!!
CFLAGS_BUILD = !!CFLAGS_BUILD!!
CXXFLAGS = !!CXXFLAGS!!
CXXFLAGS_BUILD = !!CXXFLAGS_BUILD!!
LIBS = !!LIBS!!
LDFLAGS = !!LDFLAGS!!
LDFLAGS_BUILD = !!LDFLAGS_BUILD!!
ROOT_DIR = !!ROOT_DIR!!
BIN_DIR = !!BIN_DIR!!
LANG_DIR = !!LANG_DIR!!
SRC_OBJS_DIR = !!SRC_OBJS_DIR!!
LANG_OBJS_DIR = !!LANG_OBJS_DIR!!
SRC_DIR = !!SRC_DIR!!
SCRIPT_SRC_DIR = !!SCRIPT_SRC_DIR!!
MEDIA_DIR = !!MEDIA_DIR!!
TTD = !!TTD!!
STRGEN = !!STRGEN!!
ENDIAN_CHECK = !!ENDIAN_CHECK!!
DEPEND = !!DEPEND!!
ENDIAN_FORCE = !!ENDIAN_FORCE!!
OS = !!OS!!
STAGE = !!STAGE!!
MAKEDEPEND = !!MAKEDEPEND!!
CFLAGS_MAKEDEP = !!CFLAGS_MAKEDEP!!
SORT = !!SORT!!
REVISION = !!REVISION!!
AWK = !!AWK!!
CC_HOST = !!CC_HOST!!
CXX_HOST = !!CXX_HOST!!
CC_BUILD = !!CC_BUILD!!
CXX_BUILD = !!CXX_BUILD!!
WINDRES = !!WINDRES!!
STRIP = !!STRIP!!
CFLAGS = !!CFLAGS!!
CFLAGS_BUILD = !!CFLAGS_BUILD!!
LIBS = !!LIBS!!
LDFLAGS = !!LDFLAGS!!
ROOT_DIR = !!ROOT_DIR!!
BIN_DIR = !!BIN_DIR!!
LANG_DIR = !!LANG_DIR!!
SRC_OBJS_DIR = !!SRC_OBJS_DIR!!
LANG_OBJS_DIR= !!LANG_OBJS_DIR!!
SRC_DIR = !!SRC_DIR!!
SCRIPT_SRC_DIR=!!SCRIPT_SRC_DIR!!
MEDIA_DIR = !!MEDIA_DIR!!
TTD = !!TTD!!
STRGEN = !!STRGEN!!
ENDIAN_CHECK = !!ENDIAN_CHECK!!
ENDIAN_FORCE = !!ENDIAN_FORCE!!
OS = !!OS!!
STAGE = !!STAGE!!
MAKEDEPEND = !!MAKEDEPEND!!
CFLAGS_MAKEDEP= !!CFLAGS_MAKEDEP!!
SORT = !!SORT!!
REVISION = !!REVISION!!
AWK = !!AWK!!
CONFIG_CACHE_COMPILER = $(SRC_OBJS_DIR)/!!CONFIG_CACHE_COMPILER!!
CONFIG_CACHE_LINKER = $(SRC_OBJS_DIR)/!!CONFIG_CACHE_LINKER!!
CONFIG_CACHE_ENDIAN = $(SRC_OBJS_DIR)/!!CONFIG_CACHE_ENDIAN!!
@@ -109,7 +98,7 @@ REV_NR := 0
endif
# This helps to recompile if flags change
RES := $(shell if [ "`cat $(CONFIG_CACHE_COMPILER) 2>/dev/null`" != "$(CXXFLAGS) $(CFLAGS)" ]; then echo "$(CXXFLAGS) $(CFLAGS)" > $(CONFIG_CACHE_COMPILER); fi )
RES := $(shell if [ "`cat $(CONFIG_CACHE_COMPILER) 2>/dev/null`" != "$(CFLAGS)" ]; then echo "$(CFLAGS)" > $(CONFIG_CACHE_COMPILER); fi )
RES := $(shell if [ "`cat $(CONFIG_CACHE_LINKER) 2>/dev/null`" != "$(LDFLAGS) $(LIBS)" ]; then echo "$(LDFLAGS) $(LIBS)" > $(CONFIG_CACHE_LINKER); fi )
RES := $(shell if [ "`cat $(CONFIG_CACHE_ENDIAN) 2>/dev/null`" != "$(ENDIAN_FORCE)" ]; then echo "$(ENDIAN_FORCE)" > $(CONFIG_CACHE_ENDIAN); fi )
@@ -138,18 +127,18 @@ endif
$(OBJS_C:%.o=%.d): %.d: $(SRC_DIR)/%.c $(FILE_DEP)
$(E) '$(STAGE) DEP $(<:$(SRC_DIR)/%.c=%.c)'
$(Q)$(CC_HOST) $(CFLAGS) -MM $< | sed 's@^$(@F:%.d=%.o):@$@ $(@:%.d=%.o):@' > $@
$(Q)$(CC_HOST) $(CC_CFLAGS) $(CFLAGS) -MM $< | sed 's@^$(@F:%.d=%.o):@$@ $(@:%.d=%.o):@' > $@
$(OBJS_CPP:%.o=%.d): %.d: $(SRC_DIR)/%.cpp $(FILE_DEP)
$(E) '$(STAGE) DEP $(<:$(SRC_DIR)/%.cpp=%.cpp)'
$(Q)$(CXX_HOST) $(CXXFLAGS) $(CFLAGS) -MM $< | sed 's@^$(@F:%.d=%.o):@$@ $(@:%.d=%.o):@' > $@
$(Q)$(CXX_HOST) $(CFLAGS) -MM $< | sed 's@^$(@F:%.d=%.o):@$@ $(@:%.d=%.o):@' > $@
$(OBJS_MM:%.o=%.d): %.d: $(SRC_DIR)/%.mm $(FILE_DEP)
$(E) '$(STAGE) DEP $(<:$(SRC_DIR)/%.mm=%.mm)'
$(Q)$(CC_HOST) $(CFLAGS) -MM $< | sed 's@^$(@F:%.d=%.o):@$@ $(@:%.d=%.o):@' > $@
$(OBJS_RC:%.o=%.d): %.d: $(SRC_DIR)/%.rc $(FILE_DEP)
$(E) '$(STAGE) DEP $(<:$(SRC_DIR)/%.rc=%.rc)'
$(E) '$(STAGE) DEP $(<:$(SRC_DIR)/%.mm=%.mm)'
$(Q)touch $@
else
@@ -162,18 +151,11 @@ ifeq ($(filter $(ENDIAN_TARGETS) depend clean mrproper, $(MAKECMDGOALS)),)
-include Makefile.dep
endif
ifeq ("$(SRC_OBJS_DIR)/$(DEPEND)","$(MAKEDEPEND)")
DEP := $(MAKEDEPEND)
$(SRC_OBJS_DIR)/$(DEPEND): $(SRC_DIR)/depend/depend.cpp
$(E) '$(STAGE) Compiling and linking $(DEPEND)'
$(Q)$(CXX_BUILD) $(CXXFLAGS_BUILD) $(CFLAGS_BUILD) $(LDFLAGS_BUILD) -o $@ $<
endif
# Make sure that only 'make depend' ALWAYS triggers a recheck
ifeq ($(filter depend, $(MAKECMDGOALS)),)
Makefile.dep: $(FILE_DEP) $(SRCS:%=$(SRC_DIR)/%) $(CONFIG_CACHE_SOURCE) $(DEP)
Makefile.dep: $(FILE_DEP) $(SRCS:%=$(SRC_DIR)/%) $(CONFIG_CACHE_SOURCE)
else
Makefile.dep: $(FILE_DEP) $(SRCS:%=$(SRC_DIR)/%) $(DEP) FORCE
Makefile.dep: FORCE
endif
$(E) '$(STAGE) DEP CHECK (all files)'
$(Q)rm -f Makefile.dep.tmp
@@ -228,13 +210,9 @@ endif
# Compile all the files according to the targets
$(OBJS_C): %.o: $(SRC_DIR)/%.c $(DEP_MASK) $(FILE_DEP)
$(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.c=%.c)'
$(Q)$(CC_HOST) $(CFLAGS) -c -o $@ $<
$(OBJS_CPP): %.o: $(SRC_DIR)/%.cpp $(DEP_MASK) $(FILE_DEP)
$(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.cpp=%.cpp)'
$(Q)$(CXX_HOST) $(CXXFLAGS) $(CFLAGS) -c -o $@ $<
$(Q)$(CXX_HOST) $(CFLAGS) -c -o $@ $<
$(OBJS_MM): %.o: $(SRC_DIR)/%.mm $(DEP_MASK) $(FILE_DEP)
$(E) '$(STAGE) Compiling $(<:$(SRC_DIR)/%.mm=%.mm)'
@@ -242,7 +220,7 @@ $(OBJS_MM): %.o: $(SRC_DIR)/%.mm $(DEP_MASK) $(FILE_DEP)
$(OBJS_RC): %.o: $(SRC_DIR)/%.rc $(FILE_DEP)
$(E) '$(STAGE) Compiling resource $(<:$(SRC_DIR)/%.rc=%.rc)'
$(Q)$(WINDRES) -o $@ -I `basename $<` $<
$(Q)$(WINDRES) -o $@ -I $(MEDIA_DIR) $<
$(BIN_DIR)/$(TTD): $(TTD)
$(Q)cp $< $@
@@ -273,15 +251,15 @@ endian_target.h: $(ENDIAN_CHECK) $(CONFIG_CACHE_ENDIAN)
$(ENDIAN_CHECK): $(SRC_DIR)/endian_check.cpp
$(E) '$(STAGE) Compiling and Linking $@'
$(Q)$(CXX_BUILD) $(CXXFLAGS_BUILD) $(CFLAGS_BUILD) $< -o $@
$(Q)$(CXX_BUILD) $(CFLAGS_BUILD) $< -o $@
# Revision files
$(SRC_DIR)/rev.cpp: $(CONFIG_CACHE_VERSION) $(SRC_DIR)/rev.cpp.in
$(Q)cat $(SRC_DIR)/rev.cpp.in | sed "s@\!\!REVISION\!\!@$(REV_NR)@g;s@!!VERSION!!@$(REV)@g;s@!!MODIFIED!!@$(MODIFIED)@g;s@!!DATE!!@`date +%d.%m.%y`@g" > $(SRC_DIR)/rev.cpp
$(SRC_DIR)/os/windows/ottdres.rc: $(CONFIG_CACHE_VERSION) $(SRC_DIR)/os/windows/ottdres.rc.in
$(Q)cat $(SRC_DIR)/os/windows/ottdres.rc.in | sed "s@\!\!REVISION\!\!@$(REV_NR)@g;s@!!VERSION!!@$(REV)@g;s@!!DATE!!@`date +%d.%m.%y`@g" > $(SRC_DIR)/os/windows/ottdres.rc
$(SRC_DIR)/ottdres.rc: $(CONFIG_CACHE_VERSION) $(SRC_DIR)/ottdres.rc.in
$(Q)cat $(SRC_DIR)/ottdres.rc.in | sed "s@\!\!REVISION\!\!@$(REV_NR)@g;s@!!VERSION!!@$(REV)@g;s@!!DATE!!@`date +%d.%m.%y`@g" > $(SRC_DIR)/ottdres.rc
FORCE:
@@ -289,10 +267,10 @@ depend: $(DEPS)
clean:
$(E) '$(STAGE) Cleaning up object files'
$(Q)rm -f $(DEPS) $(OBJS) $(TTD) $(DEPEND) $(TTD:%=$(BIN_DIR)/%) $(CONFIG_CACHE_COMPILER) $(CONFIG_CACHE_LINKER) $(CONFIG_CACHE_ENDIAN) $(CONFIG_CACHE_SOURCE) $(ENDIAN_TARGETS)
$(Q)rm -f $(DEPS) $(OBJS) $(TTD) $(TTD:%=$(BIN_DIR)/%) $(CONFIG_CACHE_COMPILER) $(CONFIG_CACHE_LINKER) $(CONFIG_CACHE_ENDIAN) $(CONFIG_CACHE_SOURCE) $(ENDIAN_TARGETS)
mrproper: clean
$(Q)rm -f $(SRC_DIR)/rev.cpp $(SRC_DIR)/os/windows/ottdres.rc
$(Q)rm -f $(SRC_DIR)/rev.cpp $(SRC_DIR)/ottdres.rc
%.o:
@echo '$(STAGE) No such source-file: $(@:%.o=%).[c|cpp|mm|rc]'

View File

@@ -1,260 +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/>.
*/
AILog.Info("0.7 API compatability in effect:");
AILog.Info(" - AITown::GetLastMonthProduction's behaviour has slightly changed.");
AILog.Info(" - AISubsidy::GetDestination returns STATION_INVALID for awarded subsidies.");
AILog.Info(" - AISubsidy::GetSource returns STATION_INVALID for awarded subsidies.");
AISign.GetMaxSignID <- function()
{
local list = AISignList();
local max_id = 0;
foreach (id, d in list) {
if (id > max_id) max_id = id;
}
return max_id;
}
AITile.GetHeight <- function(tile)
{
if (!AIMap.IsValidTile(tile)) return -1;
return AITile.GetCornerHeight(tile, AITile.CORNER_N);
}
AIOrder.ChangeOrder <- function(vehicle_id, order_position, order_flags)
{
return AIOrder.SetOrderFlags(vehicle_id, order_position, order_flags);
}
AIWaypoint.WAYPOINT_INVALID <- 0xFFFF;
AISubsidy.SourceIsTown <- function(subsidy_id)
{
if (!AISubsidy.IsValidSubsidy(subsidy_id) || AISubsidy.IsAwarded(subsidy_id)) return false;
return AISubsidy.GetSourceType(subsidy_id) == AISubsidy.SPT_TOWN;
}
AISubsidy.GetSource <- function(subsidy_id)
{
if (!AISubsidy.IsValidSubsidy(subsidy_id)) return AIBaseStation.STATION_INVALID;
if (AISubsidy.IsAwarded(subsidy_id)) {
return AIBaseStation.STATION_INVALID;
}
return AISubsidy.GetSourceIndex(subsidy_id);
}
AISubsidy.DestinationIsTown <- function(subsidy_id)
{
if (!AISubsidy.IsValidSubsidy(subsidy_id) || AISubsidy.IsAwarded(subsidy_id)) return false;
return AISubsidy.GetDestinationType(subsidy_id) == AISubsidy.SPT_TOWN;
}
AISubsidy.GetDestination <- function(subsidy_id)
{
if (!AISubsidy.IsValidSubsidy(subsidy_id)) return AIBaseStation.STATION_INVALID;
if (AISubsidy.IsAwarded(subsidy_id)) {
return AIBaseStation.STATION_INVALID;
}
return AISubsidy.GetDestinationIndex(subsidy_id);
}
AITown.GetMaxProduction <- function(town_id, cargo_id)
{
return AITown.GetLastMonthProduction(town_id, cargo_id);
}
AIRail.RemoveRailWaypoint <- function(tile)
{
return AIRail.RemoveRailWaypointTileRect(tile, tile, true);
}
AIRail.RemoveRailStationTileRect <- function(tile, tile2)
{
return AIRail.RemoveRailStationTileRectangle(tile, tile2, false);
}
AIVehicle.SkipToVehicleOrder <- function(vehicle_id, order_position)
{
return AIOrder.SkipToOrder(vehicle_id, order_position);
}
AIEngine.IsValidEngine <- function(engine_id)
{
return AIEngine.IsBuildable(engine_id);
}
AIEngine._GetName <- AIEngine.GetName;
AIEngine.GetName <- function(engine_id)
{
if (!AIEngine.IsBuildable(engine_id)) return null;
return AIEngine._GetName(engine_id);
}
AIEngine._GetCargoType <- AIEngine.GetCargoType;
AIEngine.GetCargoType <- function(engine_id)
{
if (!AIEngine.IsBuildable(engine_id)) return 255;
return AIEngine._GetCargoType(engine_id);
}
AIEngine._CanRefitCargo <- AIEngine.CanRefitCargo;
AIEngine.CanRefitCargo <- function(engine_id, cargo_id)
{
if (!AIEngine.IsBuildable(engine_id)) return false;
return AIEngine._CanRefitCargo(engine_id, cargo_id);
}
AIEngine._CanPullCargo <- AIEngine.CanPullCargo;
AIEngine.CanPullCargo <- function(engine_id, cargo_id)
{
if (!AIEngine.IsBuildable(engine_id)) return false;
return AIEngine._CanPullCargo(engine_id, cargo_id);
}
AIEngine._GetCapacity <- AIEngine.GetCapacity;
AIEngine.GetCapacity <- function(engine_id)
{
if (!AIEngine.IsBuildable(engine_id)) return -1;
return AIEngine._GetCapacity(engine_id);
}
AIEngine._GetReliability <- AIEngine.GetReliability;
AIEngine.GetReliability <- function(engine_id)
{
if (!AIEngine.IsBuildable(engine_id)) return -1;
return AIEngine._GetReliability(engine_id);
}
AIEngine._GetMaxSpeed <- AIEngine.GetMaxSpeed;
AIEngine.GetMaxSpeed <- function(engine_id)
{
if (!AIEngine.IsBuildable(engine_id)) return -1;
return AIEngine._GetMaxSpeed(engine_id);
}
AIEngine._GetPrice <- AIEngine.GetPrice;
AIEngine.GetPrice <- function(engine_id)
{
if (!AIEngine.IsBuildable(engine_id)) return -1;
return AIEngine._GetPrice(engine_id);
}
AIEngine._GetMaxAge <- AIEngine.GetMaxAge;
AIEngine.GetMaxAge <- function(engine_id)
{
if (!AIEngine.IsBuildable(engine_id)) return -1;
return AIEngine._GetMaxAge(engine_id);
}
AIEngine._GetRunningCost <- AIEngine.GetRunningCost;
AIEngine.GetRunningCost <- function(engine_id)
{
if (!AIEngine.IsBuildable(engine_id)) return -1;
return AIEngine._GetRunningCost(engine_id);
}
AIEngine._GetPower <- AIEngine.GetPower;
AIEngine.GetPower <- function(engine_id)
{
if (!AIEngine.IsBuildable(engine_id)) return -1;
return AIEngine._GetPower(engine_id);
}
AIEngine._GetWeight <- AIEngine.GetWeight;
AIEngine.GetWeight <- function(engine_id)
{
if (!AIEngine.IsBuildable(engine_id)) return -1;
return AIEngine._GetWeight(engine_id);
}
AIEngine._GetMaxTractiveEffort <- AIEngine.GetMaxTractiveEffort;
AIEngine.GetMaxTractiveEffort <- function(engine_id)
{
if (!AIEngine.IsBuildable(engine_id)) return -1;
return AIEngine._GetMaxTractiveEffort(engine_id);
}
AIEngine._GetDesignDate <- AIEngine.GetDesignDate;
AIEngine.GetDesignDate <- function(engine_id)
{
if (!AIEngine.IsBuildable(engine_id)) return -1;
return AIEngine._GetDesignDate(engine_id);
}
AIEngine._GetVehicleType <- AIEngine.GetVehicleType;
AIEngine.GetVehicleType <- function(engine_id)
{
if (!AIEngine.IsBuildable(engine_id)) return AIVehicle.VT_INVALID;
return AIEngine._GetVehicleType(engine_id);
}
AIEngine._IsWagon <- AIEngine.IsWagon;
AIEngine.IsWagon <- function(engine_id)
{
if (!AIEngine.IsBuildable(engine_id)) return false;
return AIEngine._IsWagon(engine_id);
}
AIEngine._CanRunOnRail <- AIEngine.CanRunOnRail;
AIEngine.CanRunOnRail <- function(engine_id, track_rail_type)
{
if (!AIEngine.IsBuildable(engine_id)) return false;
return AIEngine._CanRunOnRail(engine_id, track_rail_type);
}
AIEngine._HasPowerOnRail <- AIEngine.HasPowerOnRail;
AIEngine.HasPowerOnRail <- function(engine_id, track_rail_type)
{
if (!AIEngine.IsBuildable(engine_id)) return false;
return AIEngine._HasPowerOnRail(engine_id, track_rail_type);
}
AIEngine._GetRoadType <- AIEngine.GetRoadType;
AIEngine.GetRoadType <- function(engine_id)
{
if (!AIEngine.IsBuildable(engine_id)) return AIRoad.ROADTYPE_INVALID;
return AIEngine._GetRoadType(engine_id);
}
AIEngine._GetRailType <- AIEngine.GetRailType;
AIEngine.GetRailType <- function(engine_id)
{
if (!AIEngine.IsBuildable(engine_id)) return AIRail.RAILTYPE_INVALID;
return AIEngine._GetRailType(engine_id);
}
AIEngine._IsArticulated <- AIEngine.IsArticulated;
AIEngine.IsArticulated <- function(engine_id)
{
if (!AIEngine.IsBuildable(engine_id)) return false;
return AIEngine._IsArticulated(engine_id);
}
AIEngine._GetPlaneType <- AIEngine.GetPlaneType;
AIEngine.GetPlaneType <- function(engine_id)
{
if (!AIEngine.IsBuildable(engine_id)) return -1;
return AIEngine._GetPlaneType(engine_id);
}
_AIWaypointList <- AIWaypointList;
class AIWaypointList extends _AIWaypointList {
constructor()
{
::_AIWaypointList.constructor(AIWaypoint.WAYPOINT_RAIL);
}
}

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

@@ -805,20 +805,6 @@ function Regression::Marine()
print(" IsCanalTile(): " + AIMarine.IsCanalTile(32127));
print(" GetBankBalance(): " + AICompany.GetBankBalance(AICompany.COMPANY_SELF));
local list = AIWaypointList(AIWaypoint.WAYPOINT_BUOY);
print("");
print("--AIWaypointList(BUOY)--");
print(" Count(): " + list.Count());
print(" Location ListDump:");
for (local i = list.Begin(); list.HasNext(); i = list.Next()) {
print(" " + AIWaypoint.GetLocation(i));
}
print(" HasWaypointType:");
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("");
print(" RemoveWaterDepot(): " + AIMarine.RemoveWaterDepot(28479));
print(" RemoveDock(): " + AIMarine.RemoveDock(29253));
print(" RemoveBuoy(): " + AIMarine.RemoveBuoy(28481));
@@ -842,37 +828,14 @@ function Regression::Order()
print(" GetOrderCount(): " + AIOrder.GetOrderCount(12));
print(" GetOrderDestination(): " + AIOrder.GetOrderDestination(12, 1));
print(" AreOrderFlagsValid(): " + AIOrder.AreOrderFlagsValid(33416, AIOrder.AIOF_TRANSFER));
print(" AreOrderFlagsValid(): " + AIOrder.AreOrderFlagsValid(33416, AIOrder.AIOF_TRANSFER | AIOrder.AIOF_UNLOAD));
print(" AreOrderFlagsValid(): " + AIOrder.AreOrderFlagsValid(33416, AIOrder.AIOF_TRANSFER | AIOrder.AIOF_FULL_LOAD));
print(" AreOrderFlagsValid(): " + AIOrder.AreOrderFlagsValid(33417, AIOrder.AIOF_SERVICE_IF_NEEDED));
print(" AreOrderFlagsValid(): " + AIOrder.AreOrderFlagsValid(33417, AIOrder.AIOF_STOP_IN_DEPOT));
print(" AreOrderFlagsValid(): " + AIOrder.AreOrderFlagsValid(0, AIOrder.AIOF_SERVICE_IF_NEEDED | AIOrder.AIOF_GOTO_NEAREST_DEPOT));
print(" IsValidConditionalOrder(): " + AIOrder.IsValidConditionalOrder(AIOrder.OC_LOAD_PERCENTAGE, AIOrder.CF_EQUALS));
print(" IsValidConditionalOrder(): " + AIOrder.IsValidConditionalOrder(AIOrder.OC_RELIABILITY, AIOrder.CF_IS_TRUE));
print(" IsValidConditionalOrder(): " + AIOrder.IsValidConditionalOrder(AIOrder.OC_REQUIRES_SERVICE, AIOrder.CF_IS_FALSE));
print(" IsValidConditionalOrder(): " + AIOrder.IsValidConditionalOrder(AIOrder.OC_AGE, AIOrder.CF_INVALID));
print(" IsValidVehicleOrder(): " + AIOrder.IsValidVehicleOrder(12, 1));
print(" IsGotoStationOrder(): " + AIOrder.IsGotoStationOrder(12, 1));
print(" IsGotoDepotOrder(): " + AIOrder.IsGotoDepotOrder(12, 1));
print(" IsGotoWaypointOrder(): " + AIOrder.IsGotoWaypointOrder(12, 1));
print(" IsConditionalOrder(): " + AIOrder.IsConditionalOrder(12, 1));
print(" IsCurrentOrderPartOfOrderList(): " + AIOrder.IsCurrentOrderPartOfOrderList(12));
print(" GetOrderFlags(): " + AIOrder.GetOrderFlags(12, 1));
print(" AppendOrder(): " + AIOrder.AppendOrder(12, 33416, AIOrder.AIOF_TRANSFER));
print(" InsertOrder(): " + AIOrder.InsertOrder(12, 0, 33416, AIOrder.AIOF_TRANSFER));
print(" GetOrderCount(): " + AIOrder.GetOrderCount(12));
print(" IsValidVehicleOrder(): " + AIOrder.IsValidVehicleOrder(12, 1));
print(" IsGotoStationOrder(): " + AIOrder.IsGotoStationOrder(12, 1));
print(" IsGotoDepotOrder(): " + AIOrder.IsGotoDepotOrder(12, 1));
print(" IsGotoWaypointOrder(): " + AIOrder.IsGotoWaypointOrder(12, 1));
print(" IsConditionalOrder(): " + AIOrder.IsConditionalOrder(12, 1));
print(" IsCurrentOrderPartOfOrderList(): " + AIOrder.IsCurrentOrderPartOfOrderList(12));
print(" GetOrderFlags(): " + AIOrder.GetOrderFlags(12, 0));
print(" GetOrderFlags(): " + AIOrder.GetOrderFlags(12, 1));
print(" GetOrderJumpTo(): " + AIOrder.GetOrderJumpTo(12, 1));
print(" RemoveOrder(): " + AIOrder.RemoveOrder(12, 0));
print(" SetOrderFlags(): " + AIOrder.SetOrderFlags(12, 0, AIOrder.AIOF_FULL_LOAD));
print(" GetOrderFlags(): " + AIOrder.GetOrderFlags(12, 0));
print(" GetOrderDestination(): " + AIOrder.GetOrderDestination(12, 0));
print(" CopyOrders(): " + AIOrder.CopyOrders(12, 1));
print(" CopyOrders(): " + AIOrder.CopyOrders(13, 12));
@@ -992,7 +955,7 @@ function Regression::Rail()
print(" IsRailStationTile(): " + AIRail.IsRailStationTile(7957));
print(" IsRailStationTile(): " + AIRail.IsRailStationTile(7958));
print(" IsRailStationTile(): " + AIRail.IsRailStationTile(7959));
print(" RemoveRailStationTileRectangle():" + AIRail.RemoveRailStationTileRectangle(7959, 7959, false));
print(" RemoveRailStationTileRect(): " + AIRail.RemoveRailStationTileRect(7959, 7959));
print(" IsRailStationTile(): " + AIRail.IsRailStationTile(7957));
print(" IsRailStationTile(): " + AIRail.IsRailStationTile(7958));
print(" IsRailStationTile(): " + AIRail.IsRailStationTile(7959));
@@ -1232,7 +1195,7 @@ function Regression::TileList()
list.AddRectangle(34436, 256 * 2 + 34436 + 8);
print(" Count(): " + list.Count());
list.Valuate(AITile.GetCornerHeight, AITile.CORNER_N);
list.Valuate(AITile.GetHeight);
print(" Height(): done");
print(" Count(): " + list.Count());
print(" ListDump:");
@@ -1664,15 +1627,15 @@ function Regression::Vehicle()
function Regression::PrintSubsidy(subsidy_id)
{
print(" --Subsidy (" + subsidy_id + ") --");
print(" IsValidSubsidy(): " + AISubsidy.IsValidSubsidy(subsidy_id));
print(" IsAwarded(): " + AISubsidy.IsAwarded(subsidy_id));
print(" GetAwardedTo(): " + AISubsidy.GetAwardedTo(subsidy_id));
print(" GetExpireDate(): " + AISubsidy.GetExpireDate(subsidy_id));
print(" GetSourceType(): " + AISubsidy.GetSourceType(subsidy_id));
print(" GetSourceIndex(): " + AISubsidy.GetSourceIndex(subsidy_id));
print(" GetDestinationType(): " + AISubsidy.GetDestinationType(subsidy_id));
print(" GetDestinationIndex(): " + AISubsidy.GetDestinationIndex(subsidy_id));
print(" GetCargoType(): " + AISubsidy.GetCargoType(subsidy_id));
print(" IsValidSubsidy(): " + AISubsidy.IsValidSubsidy(subsidy_id));
print(" IsAwarded(): " + AISubsidy.IsAwarded(subsidy_id));
print(" GetAwardedTo(): " + AISubsidy.GetAwardedTo(subsidy_id));
print(" GetExpireDate(): " + AISubsidy.GetExpireDate(subsidy_id));
print(" SourceIsTown(): " + AISubsidy.SourceIsTown(subsidy_id));
print(" GetSource(): " + AISubsidy.GetSource(subsidy_id));
print(" DestionationIsTown(): " + AISubsidy.DestinationIsTown(subsidy_id));
print(" GetDestionation(): " + AISubsidy.GetDestination(subsidy_id));
print(" GetCargoType(): " + AISubsidy.GetCargoType(subsidy_id));
}
@@ -1682,15 +1645,12 @@ function Regression::Start()
this.Std();
this.Base();
this.List();
/* Do this first as it gains maximum loan (which is faked to quite a lot). */
this.Company();
this.Airport();
this.Bridge();
this.BridgeList();
this.Cargo();
this.CargoList();
this.Company();
this.Engine();
this.EngineList();
this.Group();

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@@ -6,7 +6,6 @@ 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.0"; }
function GetDate() { return "2007-03-18"; }
function CreateInstance() { return "Regression"; }
}

Binary file not shown.

Binary file not shown.

View File

@@ -24,7 +24,7 @@ TRGI.GRF = da6a6c9dcc451eec88d79211437b76a8
TRGC.GRF = ed446637e034104c5559b32c18afe78d
TRGH.GRF = ee6616fb0e6ef6b24892c58c93d86fc9
TRGT.GRF = e30e8a398ae86c03dc534a8ac7dfb3b6
OPENTTDD.GRF = 356cf9663aacb212fdbff609d99090d6
OPENTTDD.GRF = c886c7d5b38a93f2cb1cdc0d33472eb8
[origin]
default = You can find it on your Transport Tycoon Deluxe CD-ROM.

View File

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

View File

@@ -24,7 +24,7 @@ TRGI.GRF = da6a6c9dcc451eec88d79211437b76a8
TRGC.GRF = ed446637e034104c5559b32c18afe78d
TRGH.GRF = ee6616fb0e6ef6b24892c58c93d86fc9
TRGT.GRF = fcde1d7e8a74197d72a62695884b909e
OPENTTDD.GRF = 356cf9663aacb212fdbff609d99090d6
OPENTTDD.GRF = c886c7d5b38a93f2cb1cdc0d33472eb8
[origin]
default = You can find it on your Transport Tycoon Deluxe CD-ROM.

View File

@@ -24,7 +24,7 @@ TRGIR.GRF = 0c2484ff6be49fc63a83be6ab5c38f32
TRGCR.GRF = 3668f410c761a050b5e7095a2b14879b
TRGHR.GRF = 06bf2b7a31766f048baac2ebe43457b1
TRGTR.GRF = de53650517fe661ceaa3138c6edb0eb8
OPENTTDW.GRF = 80346ea80de167068cfb975f93963941
OPENTTDW.GRF = b6689105405fa3ea34cb8a5543633d29
[origin]
default = You can find it on your Transport Tycoon Deluxe CD-ROM.

View File

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

View File

@@ -1,48 +0,0 @@
; $Id$
;
; This represents more or less nothingness
;
[metadata]
name = NoMusic
shortname = NOMU
version = 0
description = A music pack without actual music
[files]
theme =
old_0 =
old_1 =
old_2 =
old_3 =
old_4 =
old_5 =
old_6 =
old_7 =
old_8 =
old_9 =
new_0 =
new_1 =
new_2 =
new_3 =
new_4 =
new_5 =
new_6 =
new_7 =
new_8 =
new_9 =
ezy_0 =
ezy_1 =
ezy_2 =
ezy_3 =
ezy_4 =
ezy_5 =
ezy_6 =
ezy_7 =
ezy_8 =
ezy_9 =
[md5s]
[names]
[origin]

View File

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

View File

@@ -1,256 +1,3 @@
1.0.0-beta3 (2010-01-21)
------------------------------------------------------------------------
- Feature: Make building (long) roads work like building rail; build upon the first obstruction instead of failing totally [FS#3318] (r18803)
- Feature: Allow user customisable compression levels for the zlib compression (r18772)
- Feature: [NoAI] Rerandomise AIs on reloading (via the debug window) when they were randomly chosen [FS#3095] (r18763)
- Feature: [NewGRF] Implement VarAction2Houses variables 66 and 67 (r18736)
- Change: [SDL/Allegro] Make the number of samples/frequency runtime configurable (r18821, r18820)
- Change: Be consistent with airport naming [FS#3493] (r18819)
- Change: [NewGRF] Consider callback 19 only broken after subcargos 0 to 255 have been used, instead of stopping at 15 (r18774)
- Change: Replace MiniLZO with the real library (r18769)
- Fix: Town noise population settings could not be changed in-game [FS#3532] (r18864)
- Fix: Do not pass AI strings through iconv [FS#3544] (r18862)
- Fix: Do not do screen redraw when the landscape contains broken slopes [FS#3540] (r18850)
- Fix: Default-waypoint was drawn incorrectly for monorail and maglev in the waypoint picker (r18841)
- Fix: In some cases error messages were not properly sent to the client before closing the connection. As a result the client would say 'connection lost' when the cause was something completely different (r18801)
- Fix: In some cases with invalid packets one can crash OpenTTD (r18800)
- Fix: [SDL] Possible deadlock when killing OpenTTD while starting it [FS#3521] (r18796)
- Fix: When copying an 'image' back into the buffer the 32bpp anim blitter triggered palette check of the whole window instead of only the part the got copied back [FS#3504] (r18791)
- Fix: Viewport could jump under high CPU load [FS#3515] (r18790)
- Fix: Crash when getting the tooltip of the industry amount in the world generation window [FS#3516] (r18787)
- Fix: [NoAI] NoAI's custom implementation of DoCommandP has several flaws (not masking of bits, not resetting town authority updates on checks/estimates, ...). Let it use DoCommandPInternal, DoCommandP without showing error messages and such, instead [FS#3507] (r18786)
- Fix: [NoAI] AIs did update their last cost incorrectly in network games if the cost of the DC_EXEC phase differed from the ~DC_EXEC phase (r18781)
- Fix: [YAPP] Remove a special check for two-sided signals when reserving a path as this causes trains to get stuck in front of them [FS#3483] (r18778)
- Fix: Assertions because the unloading and signal wait counter got into eachother's way [FS#3422] (r18764)
- Fix: [NewGRF] Spritelayouts do not need an Action 1 if only using default sprites [FS#3497] (r18761)
- Fix: [NewGRF] Action 9 did not properly detect whether an Action 8 was encountered already [FS#3500] (r18760)
- Fix: [NewGRF] Do not segfault when a NewGRF contains an Action 2 and Action 3 but no Action 0 (r18759)
- Fix: [NewGRF] CircularTileSearch skipped a few tiles close to the starting tile, as a result some NewGRF houses could be placed too close together [FS#3495] (r18755)
- Fix: The cargo payment button states were not properly set on opening the window [FS#3492] (r18750)
- Fix: [NoAI] The AI's name and version in the debug panel was not properly centered [FS#3491] (r18749)
- Fix: Clear the cached NewGRFs of a server when receiving a reply instead of when requesting the information. With slow/unstable network connections it would look like the NewGRF settings button went randomly missing [FS#3489] (r18746)
- Fix: Do not toggle the sticky- and shading-button twice per mouseclick when clicking fast [FS#3487] (r18744)
- Fix: [NewGRF] House prop 1D was trashed when a NewGRF contains prop 14 after prop 1D (r18742)
- Fix: Building trees on snow with rocks underneed caused an assert [FS#3501] (r18739)
- Fix: When a tree died while there was snow the amount of snow on the tile changed (r18738)
- Fix: [NewGRF] VarAction2Station variable 67 was not swapped properly for orientation (r18737)
1.0.0-beta2 (2010-01-05)
------------------------------------------------------------------------
- Feature: Do not delete the rough/rocky status of a tile when it is covered by snow, this allows rocky tiles under snow if you have a variable snowline (r18719)
- Feature: [NewGRF] Add support for custom station foundation graphics (r18708)
- Feature: Allow virtually paying a percentage of the leg profit in feeder chains. This to give the user a better chance to get a feeder system without 'losses' (r18703)
- Feature: Configurable slope steepness for trains from 0% to 10%, default is 3% as before [FS#3459] (r18674)
- Feature: Allow contour-map to be shown with coloured industries in smallmap [FS#567] (r18665)
- Add: [NoAI] AIEngine::IsBuildable to check if you can build a certain engine (r18687)
- Change: [NoAI] Merge buoy and waypoint functions (r18725)
- Change: [NoAI] AIEngine::IsValidEngine will now also return true when you have at least one vehicle of that type even if you cannot build it anymore (r18687)
- Change: Update Squirrel from 2.2.3 to 2.2.4 (r18639)
- Fix: New viewports did not center on the correct position [FS#3414] (r18730)
- Fix: The lock in the company window was only drawn for your own company [FS#3427] (r18729)
- Fix: Some invalid gender/plural indices in strings, which could eventually cause crashes [FS#3480] (r18727)
- Fix: With non-uniform industries the 'supplies' text when building a station could be incorrect (missing a cargo) [FS#3463] (r18726)
- Fix: Refitting a non-refittable vehicle to it's default cargotype failed, causing problems for AIs [FS#3475] (r18724)
- Fix: The join station window did not account for scrolling, so if you did scroll the station was not joined with the selected station [FS#3476] (r18713)
- Fix: The wrong town is mentioned in the error when trying to make one way roads of town owned roads [FS#3478] (r18710)
- Fix: Animation buffer for 32bpp-anim blitter was only validated during sprite blitting, other drawing operations did not check it. Initial startup and window resize could therefore lead to crash [FS#3464] (r18709)
- Fix: Enable DrawGroundSpriteAt() to deal with foundations as DrawGroundSprite() does, and use this for drawing one-way-road-signs and clear-land-fences [FS#3467] (r18702)
- Fix: When deleting an industry on water (oil rigs) the tiles on water were not marked dirty (r18700)
- Fix: [NewGRF] GRF parameters were not properly initialised to zero, and not always checked for valid range (r18699)
- Fix: Crash when scrolling to an item removed by filtering in the 'add NewGRF window' [FS#3471] (r18697)
- Fix: [NoAI] AITile::IsCoastTile returned false for coast tiles with trees on them [FS#3404] (r18696)
- Fix: After a company went bankrupt it was impossible to build a new waypoint close to a deleted one until the grey sign was gone (r18692)
- Fix: Some keys that open windows that want to be located relatively to the toolbars/statusbar could cause a crash when in one of the end game screens [FS#3469] (r18690)
- Fix: In some cases _sl.chs is used when not initialised. As _sl.chs always refers to a single table when initialised replace _sl.chs with the actual table [FS#3470] (r18686)
- Fix: [NewGRF] Tile area of waypoints was not correctly given to NewGRFs in case of multi tile waypoints (r18679)
- Fix: [NewGRF] If an action B did not have a 'data' string but would print it OpenTTD would segfault [FS#3452] (r18671)
- Fix: Update all tiles when snowline height changes in larger steps than one tile [FS#3455] (r18670)
- Fix: [NoAI] Crash when trying to get the order destination of a 'nearest depot' order [FS#3454] (r18667)
- Fix: Aircraft on the metropolitan airport took a long route to the closest loading pad [FS#3169] (r18661)
- Fix: [NewGRF] Wrong strings drawn for cargo subtype in vehicle details [FS#3443] (r18658)
- Fix: When trying to attach a wagon to an existing free wagon chain, do not attach it to itself [FS#3442] (r18653)
- Fix: [NoAI] When AI tried to create NO_UNLOAD order, GOTO_NEAREST_DEPOT order was created instead [FS#3438] (r18651)
- Fix: [YAPP] Treat the backside of an one-way path signals as a safe waiting point [FS#3430] (r18648)
- Fix: [YAPP] A train inside a station was not always found when checking for trains on a reserved path (r18647)
- Fix: [YAPP] Do not extend the reserved path through a newly built path signal directly in front of a stopped or loading train. Also restore the reserved path in more cases after removing a signal [FS#3418] (r18646)
- Fix: Company league window was too narrow [FS#3434] (r18644)
- Fix: Rotation could not be changed for heightmaps [FS#3436] (r18643)
- Fix: When a company goes bankrupt and has vehicles on a drive through road stop that is not theirs, the 'filled' cache of the road stops would get corrupted [FS#3432] (r18642)
- Fix: Downloading music sets would fail (r18638)
- Fix: Crash when invalid pointers are left due to saveload failing at e.g. decompressing the savegame [FS#3421] (r18634)
- Fix: When making a screenshot the name of the previous screenshot went missing in the 'successful screenshot' message and the console command would be shown twice [FS#3419] (r18631, r18630)
- Fix: (un)loading counter being reset while loading a train and changing the (path) signal setup around the station [FS#3422] (r18628)
- Fix: {CARGO} takes 2 parameters, not 1. This made {N:XYZ} commands after CARGO mess up their indices and that then triggered an assertion [FS#3425] (r18626)
1.0.0-beta1 (2009-12-24)
------------------------------------------------------------------------
- Feature: Music replacement sets, like graphics and sound replacement sets (r18608)
- Feature: Add shading and unshading of windows [FS#2943] (r18588)
- Feature: Initially select the last joined server when going to the server list [FS#3311] (r18578)
- Feature: Additional map variety option for TGP landscape generator (r18541)
- Feature: Add the possibility to not make new tree tiles in-game (r18522)
- Feature: Moving of AIs in the AI configuration window [FS#3359] (r18516)
- Feature: Make maximum pathfinder penalties for finding depots customisable, also increase it slightly to 20 tiles worth of penalties (r18481)
- Feature: [Strgen] Allow G and P to 'select' substrings of STRINGn for getting their gender (r18444)
- Feature: Make penalty for road stop occupancy user configurable (r18404)
- Feature: Fully scalable, by font size and content, GUI and improved right-to-left language support [FS#1905] (r15800-r18350)
- Feature: Set the start time of a timetable (r18294)
- Feature: Show the expected arrival/departure dates in the timetable window (r18285)
- Feature: [NewGRF] Add new price bases for removing industries, building/removing unmovables (new objects), building/removing rail-waypoints/buoys, interacting with town-authority, building foundations, funding primary industries (when not prospecting) and towns (r18283)
- Feature: Founding towns in-game (r18281)
- Feature: [NewGRF] Make price base multipliers related to vehicles only apply to the GRF locally, if it defines engines of that type itself (r18268)
- Feature: [NewGRF] CB 36 for roadvehicle property 09 'running cost factor' (r18011)
- Feature: Non-automatic screenshot name can be entered in console (r17938)
- Feature: Make it possible to disable background saving, only via the config file/in game console though [FS#2633] (r17893)
- Feature: Automatically select the railtype with the most engines for the autoreplace window/try to avoid showing an empty autoreplace list [FS#1760] (r17892)
- Feature: Show maximum tractive effort in the 'exclusive test'/'early offer'/'engine preview' window [FS#1619] (r17891)
- Feature: Double clicking on a NewGRF opens the parameters window (r17890)
- Feature: Double click on a item in the refit list refits without the need to click on the refit button (r17889)
- Feature: [NewGRF] Textstack support for CB 37 [FS#1862] (r17802)
- Feature: [OSX] Implement automatic fallback font selection for OSX (r17794)
- Feature: Translatable base sound/graphics set descriptions (r17790)
- Feature: Show the nickname of the person you are PMing [FS#3116] (r17741)
- Feature: [OSX] Add a MIDI driver using Cocoa/CoreAudio [FS#3223] (r17710)
- Feature: [OSX] Implement clipboard support for OS X [FS#2053] (r17708)
- Feature: Possibility to choose (randomise or enter custom) town name before its creation (r17612)
- Feature: [NewGRF] Callbacks for houses to disable drawing foundations and to disable slope changes, like industry tile callbacks 30 and 3C (r17558)
- Feature: [NewGRF] Implement callback 145 (custom station rating) (r17547)
- Feature: Filtering in Add-NewGRF dialog (r17541)
- Feature: Add the date to all logging in the (real, not in-game) console if show_date_in_console is set. For dedicated server binaries the default is 'on', for the rest it is 'off' [FS#2339] (r17488)
- Feature: Reconnect console command (r17466)
- 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 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)
- Feature: Improved the sample rate conversion a bit (r17146)
- Feature: Allow higher sample rate and higher quality samples (r17140)
- Feature: Sound replacement sets, like graphics replacement sets (r17139)
- Feature: Multi tile waypoints (r17002, r17000, r16993)
- Feature: [NewGRF] Turn variable 0E/8E (vertical offset for trains in depot) and variable 1E/9E bit 3 (wagon width in depot) into grf-local variables (r16867)
- Feature: Highlight whole articulated vehicles in traindepot instead of only the first part (r16818)
- Feature: Ability to enter server and company password via command line when joining a server [FS#570] (r16555)
- Feature: Give the town generator a slight tendency to build towns near water by not discarding watery random tiles but by searching for near land [FS#2635] (r16147)
- Feature: Configurable digit group separator per language with user override (r16129)
- Feature: Make the first 4 rail building tools behave more like autorail (r16095)
- Feature: Allow sorting stations by the lowest cargo rating instead of only by the highest cargo rating [FS#597] (r16045)
- Feature: Allow filtering of vehicle purchase lists by cargo [FS#1941] (r16042)
- Feature: Allow (per order) to let a train stop at the near end, middle or far end of a platform from the point of view of the driver of the train that enters the station (r16037)
- Feature: Listen on multiple IPs/sockets and register all IPs to the master server (r16014, r15975, r15973, r15971)
- Feature: Full IPv6 support (r16000)
- Feature: Allow train vehicles to be shorten to 1/8 length, even if not at the end of the train (r15793)
- Add: [NoAI] AIOrder::AIOF_GOTO_NEAREST_DEPOT for goto nearest depot orders (r18518)
- Add: [NoAI] Enable the squirrel standard math library (r17498)
- Add: [NoAI] A vehicle list for all vehicle that are ordered to a specific depot (r17486)
- Add: [NoAI] AISubsidy::SubsidyParticipantType, AISubsidy::GetSourceType, AISubsidy::GetSourceIndex, AISubsidy::GetDestinationType, AISubsidy::GetDestinationIndex for better subsidy management (r17115)
- Change: Forbid industries to clear sea/river when leveling land (r18554)
- Change: Make it visible when you are to pass the next signal on danger and possible to cancel it (r18515)
- Change: Move the 'check online content' button from the AI list window to the AI configuration window. This makes it consistent with the NewGRF windows [FS#3340] (r18507)
- Change: Use zł instead of zl for the Polish Zloty [FS#565] (r18434)
- Change: Show different texts in town GUI when the town does not need food the whole year to grow (r18433)
- Change: Make road vehicles behave more like trains 'around' stations and use pathfinder penalties to determine to which 'part' to go (r18382)
- Change: Do not split up articulated vehicles in the train details view. If an articulated vehicle it too 'wide' draw the information on the next line and if there are multiple cargos split that over multiple lines too [FS#2923] (r18344)
- Change: Make pause on join pause during the whole joining (including download) phase [FS#3287] (r18054)
- Change: Prefer extmidi over allegro midi and allegro over null driver [FS#3272] (r17875)
- Change: Several improvements to the performance of CargoPackets/CargoLists; time spent in those functions reduces by 55-85% (r17840, r17836, r17818, r17814, r17812, r17801, r17736, r17735, r17733, r17731, r17730)
- Change: [SDL] Make 'update the video card'-process asynchronious. Improvements of 2%-25% (real time) during fast forward on dual core/hyperthreading-enabled CPUs (r17776)
- Change: [NoAI] Make AIEngine:CanRefitCargo() not report refittability to Mail by default for aircraft. It is not necessarily true, and the special case of carrying both passenger&mail is better handled by AIs themself than by the API (r17719)
- Change: [OSX] Do not use deprecated methods/undocumented functions [FS#1411] (r17712, r17711)
- Change: Make SDL's video driver more likely to be loaded than Allegro's video driver; SDL seems to perform better (r17583)
- Change: Do not assume that there is always 'another' industry tile after two '0x18' industry tiles (r17521)
- Change: Make the performance ratings harder to exploit; only count profitable vehicles and recently serviced stations [FS2459] (r17485)
- Change: When removing a station or waypoint keep the rail unless Ctrl is pressed. This makes the behaviour consistent between the two (r17471)
- Change: Show the client id in join messages at the server (r17467)
- Change: NewGRF price modifiers now take effect everytime when loading NewGRFs instead of once on gamestart (r17433)
- Change: Make a distinction between missing and corrupted data files. If (at least) one data file is missing do not consider the set to be useable. Do also no autodetect sets with missing files (r17241)
- Change: Update MiniLZO to 2.0.3 (r17215)
- Change: Update Squirrel to 2.2.3 (r17195)
- Change: Remove UNICODE notice in windows installer (r17186)
- Change: Apply the subsidy when subsidy's destination is in station's catchment area and cargo packets originate from subsidy's source [FS#265,FS#2094,FS#2589] (r17113)
- Change: Subsidies are not bound to stations after awarding anymore, they still apply to town or industry, no matter what station is used for loading and unloading. Awarded subsidies from older savegames are lost [FS#1134] (r17113)
- Change: [NoAI] Add AIBaseStation as a parentclass for AIStation and AIWaypoint, and move GetName, SetName and GetLocation to AIBaseStation (r17011)
- Fix: Conditional orders were seen as 'valid' and as such aircraft with only conditional orders did not crash (r18615)
- Fix: Pressing default for the starting year/snow line height edit boxes of the world generation windows did not work [FS#3398] (r18586)
- Fix: [OSX] Try to get a generic RGB colour space if getting the system colour profile failed [FS#3198] (r18573)
- Fix: [NewGRF] House property 15 did not work [FS#2613] (r18567)
- 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 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)
- Fix: No error message was created for the first fatal NewGRF error [FS#3368] (r18506)
- Fix: Improve airport movement on several airports [FS#3169] (r18505)
- Fix: Autoreplace and autorenew always reset their cargo sub type to 0. Now find a sub cargo type with the exact same name and use that, otherwise fallback to 0. So cargo sub types can be maintained via autoreplace *if* the new vehicle supports the same cargo sub type [FS#3159] (r18499)
- Fix: Cloning of vehicles could create vehicles with invalid cargo sub types for the build year of the vehicle. Fall back to another cargo sub type with the exact same name, otherwise fallback to cargo sub type 0 [FS#2616] (r18498)
- Fix: [NewGRF] Direction is accounted for long before motion counter is updated (r18479)
- Fix: Moving vehicles around/selling vehicle in the train depot could create states that are not allowed by the NewGRF attach callback [FS#3146] (r18472, r18470)
- 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 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)
- Fix: [NoAI] Improve behaviour of (AIEngine|AIEventEnginePreview)::GetCargoType() and AIEngine::CanRefitCargo() wrt. articulated vehicles (r17898)
- Fix: [NewGRF] CB15 and CB36 (capacity) were not always called when they should [FS#3255] (r17897)
- Fix: Invalidate cache of vehicle vars 40-43 after testruns of certain commands, that change them temporarily (r17894)
- Fix: [OSX] The splash image was not displayed if the Quartz video driver was used (r17793)
- Fix: Do not let aircraft drive a while over the grass when landing at high altitude airports [FS#3259] (r17762
- Fix: Make the -c <config file> location relative to the current directory instead of the directory of the binary [FS#3247] (r17686)
- Fix: Some semaphore signals fell outside of the signal GUI. Now the signals are properly centered which should make that problem go away [FS#3242] (r17657)
- 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 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)
- Fix: Minor improvements of the airport state machines (r17338, r17337, r17334)
- Fix: Road vehicles forgetting their servicing order when the path takes them away (in bird distance) from their destination first [FS#3057] (r17333)
- Fix: Mention of Ctrl modifier was missing from some tooltips [FS#3120] (r17300, r17297)
- Fix: Keep vehicle news and viewports following vehicles, when autoreplacing/renewing them [FS#3048] (r17147)
- Fix: Inconsistency between signs of stations and waypoints [FS#3081] (r17040)
- Fix: NewGRF stations would be triggering assertions for waypoints all over the place when using the more advanced station types [FS#2996] (r16909)
- Fix: Skipping a 'nearest depot order' because none could be found could cause multiple orders to get skipped [FS#2925] (r16457)
- Fix: Makedepend cannot handle the amount of files we have and it also miss some dependencies. So use our custom implementation of makedepend (r16307)
- 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 OTTD for months. All attempts to do another workaround failed (r16492)
0.7.5 (2009-12-23)
------------------------------------------------------------------------
(None)
0.7.5-RC1 (2009-12-14)
------------------------------------------------------------------------
- Add: Some missing latin-ish characters from the OpenGFX set (r18431)
- Change: Recolour the bubble generator just like any other industry [FS#3349] (r18409)
- Fix: Read after free in case no network connection could be made with the content server (r18493)
- Fix: [NewGRF] Initialisation of cargo payment was broken for NewGRF cargos [FS#3344] (r18475)
- Fix: [NoAI] AIOrder::SkipToOrder did not properly resolve ORDER_CURRENT (r18471)
- Fix: When moving a wagon and only the last part of a dual headed engine you could split the dual headed engine over two vehicles. This could be used to crash servers [CVE-2009-4007] (r18462)
- Fix: [Windows] Forgot to load the symbol from SDL.dll (r18439)
- Fix: Do not run the 'jam protection' for vehicles in a depot [FS#3360] (r18428)
- Fix: [Windows] The help window would be too large in some cases [FS#3327] (r18424)
- Fix: Under some circumstances a pointer could be left untouched and then freed. Make sure this does not happen by ensuring it starts out as NULL instead of 'garbage' [FS#3298] (r18418)
- Fix: On slopes the original and better road layouts did not check their minimum distance requirements [FS#3332] (r18415)
- Fix: Aqueducts were not influenced by the 'long bridges' setting [FS#3338] (r18407)
- Fix: Drive through road stops did not get flooded (r18401)
- Fix: [YAPP] Trains on bridges were not found, when searching for the origin of a reservation [FS#3345] (r18392)
- Fix: (Invalid) GRFs could trigger invalid reads (r18391)
- Fix: One could not share orders between buses carrying different cargos (r18380)
- Fix: Off-by-one in the preconfigured music lists [FS#3339] (r18369)
0.7.4 (2009-12-01)
------------------------------------------------------------------------
- Fix: Endianness issue with saving the zoom level [FS#3333] (r18351)
@@ -388,7 +135,7 @@
0.7.2-RC2 (2009-07-21)
------------------------------------------------------------------------
- Fix: When marking trains stuck do not reset the unload/stuck counter when the vehicle is unloading. It will be automatically reset once the vehicle wants to leave the station [FS#3038] (r16901)
- Fix: [NoAI] Small errors in the API documentation [FS#3037] (r16865)
- Fix: [NoAI]: Small errors in the API documentation [FS#3037] (r16865)
- Fix: Savegames from before 0.4 would get their waypoint 'index' messed up (r16854)
- Fix: Cargo payments were not destroyed when a vehicle was destructed. This only happened when you crashed a vehicle while it was unloading [FS#3032, FS#3046] (r16801)
@@ -404,7 +151,7 @@
- Fix: Houses would not get build on the map edge [FS#3025] (r16795)
- Fix: Audio playback rate was fixed at 11025Hz regardless of the rate specified to the audio driver, resulting in incorrect playback speed. It is still preferable to use 11025Hz output rate if possible as OpenTTD's sample rate converter is very low quality (r16784)
- Fix: Do not use the same error message for turning around road vehicles and flipping parts of trains in the depot [FS#3019] (r16772)
- Fix: [Windows] The binary packages would not get their readme converted to DOS line endings (r16769)
- Fix: The win32 and win64 binary packages would not get their readme converted to DOS line endings (r16769)
- Fix: [NoAI] AITile::GetCargoProduction/Acceptance did not accept a radius of 0 anymore (r16767)
- Fix: In the refit window the 'Select cargo type to carry' line always showed the ship refit tooltip [FS#3018] (r16757)
- Fix: When loading a savegame Engine::grffile might be left NULL in certain cases (dynamic_engines enabled, articulated vehicle with only wagon-override action3s) (r16737)
@@ -573,7 +320,7 @@
0.7.0-RC2 (2009-03-23)
------------------------------------------------------------------------
- Change: [NewGRF] Expose GRF ID of engines in var action property 0x25 (r15739)
- Fix: Some (newer) GCCs have trouble compiling the Windows specific part of fontcache.cpp; jumps across variable declarations [FS#2752] (r15818)
- Fix: Some (newer) GCCs have trouble compiling the Win32 specific part of fontcache.cpp; jumps across variable declarations [FS#2752] (r15818)
- Fix: When sorting on cost do not sort on the running cost [FS#2749] (r15778)
- Fix: Do not show the message about reporting an AI crash for the dummy AI (r15774)
- Fix: Number of active clients was not always properly updated [FS#2475] (r15773)
@@ -628,7 +375,7 @@
- Fix: Undeterministic file sorting when the date is equal for all files [FS#2716] (r15657)
- Fix: Changing vehicle.dynamic_engines when there are already vehicles can cause crashes (r15656, r15586)
- Fix: Only ever call any vehicle callbacks after the whole articulated engine has been built (except 0x16) (r15654)
- Fix: C++'s new (this) is seldom a good idea as destructors of member variables are not run causing memory leaks [FS#2706] (r15652)
- Fix: new (this) is seldom a good idea as destructors of member variables are not run causing memory leaks [FS#2706] (r15652)
- Fix: [OSX] Hack around an OSX stupidity in < 10.4 w.r.t. signals by not having any signal handling support for OSX < 10.4 (r15648)
- Fix: Add an EngineOverrideManager to give the term 'compatible NewGRF' again some sense and to not crash because of trivial changes [FS#2612] (r15645)
- Fix: Closing a network connection twice in the case that sending packets starts failing while disconnecting [FS#2710] (r15644)
@@ -650,8 +397,8 @@
- Fix: Crash when saving a preset with unknown NewGRFs [FS#2646] (r15561)
- Fix: The font width cache was not updated when changing fonts causing the font spacing to be off when changing fonts in-game (auto font detection) (r15557)
- Fix: -v null crashing in 2051 due to trying to show the high score of the spectator (r15554)
- Fix: [NoAI] Crash when setting a depot order to the southern part of a ship depot [FS#2656] (r15551)
- Fix: The keep_all_autosave setting was ignored for dedicated servers/spectators [FS#2651] (r15546)
- Fix: [NoAI] crash when setting a depot order to the southern part of a ship depot [FS#2656] (r15551)
- Fix: keep_all_autosave was ignored for dedicated servers/spectators [FS#2651] (r15546)
- Fix: If a buoy was placed directly in front of a dock, that dock was seen as a buoy and thus skipped once within 3 tiles [FS#2653] (r15545)
- Fix: Extracting downloaded content did not work for Windows if one uses a non-ASCII path [FS#2650] (r15544)
- Fix: [NewGRF] When articulated parts have no available default cargo, use the cargo type of the first part for livery selection [FS#2617] (r15541)
@@ -709,7 +456,7 @@
- Feature: Double click to join selected server/company (r14209)
- Feature: Allow both the German as well as non-German toyland graphics as 'correct' and official graphics (r14197)
- Feature: Allow people to create their own base graphics easily and without requiring code changes (r14197)
- Feature: [NewGRF] Add support for property 0x13 for Bridges. In other words, one can now specifies a 16 bits cost multiplier (r14172)
- Feature: [NewGRF]: Add support for property 0x13 for Bridges. In other words, one can now specifies a 16 bits cost multiplier (r14172)
- Feature: Make it possible to choose between the DOS and Windows graphics packs while retaining the possibility to override the palette (r14151)
- Feature: Increase the size of the console backlog. Now it'll only remove backlog items when there are more than a threshold and when they are there longer than (another) threshold (r14056)
- Feature: Make it possible to filter list_patches output like it's done for other list_* console commands (r14041)
@@ -820,7 +567,7 @@
- Fix: Moving the first vehicle of a train elsewhere might require a new unitnumber for the remaining chain which might not be available (r14384)
- Fix: Trams jumping when reversing on a single trambit (like caused during road construction reworks) or when (manually) reversing in a corner [FS#1852] (r14371)
- Fix: Multiheaded parts in free wagon chains were not connected (could cause desyncs) (r14366, r14362)
- Fix: [Windows] Some keypress combinations could be handled twice [FS#2206] (r14363)
- Fix: [Win32] Some keypress combinations could be handled twice [FS#2206] (r14363)
- Fix: The ownership of roadtiles was not properly set for very old savegames (including TTD's) making it impossible to remove some pieces of road [FS#2311] (r14359)
- Fix: Desync due to randomly ordered vehicle hash by flooding and road vehicle overtake/following (r14356, r14258)
- Fix: Signs were not updated on company bankruptcy/sell, and thus could have the colour of invalid player (r14348)
@@ -853,7 +600,7 @@
- Fix: Incorrect cargo weights (r14144)
- Fix: GetSlopeZ() gets a virtual coordinate, not a tile (r14139)
- Fix: Close the 'manage vehicles' dropdown once the number of vehicles in the list reaches 0 [FS#2249] (r14133)
- Fix: [Strgen] Changing order of parameters {X:...} did not work for strings including some {StringY} (r14111)
- Fix: [strgen] Changing order of parameters {X:...} did not work for strings including some {StringY} (r14111)
- Fix: Desync due to bubbles in toyland (r14110)
- Fix: Make NewGRF action 0x06's changes persistent over the several loading stages [FS#1986] (r14102)
- Fix: Make the 'Transfer Credit' display aware of the entire consist, not only the first vehicle (r14098)
@@ -864,7 +611,7 @@
- Fix: NewGRF callback 23 did not use the NewGRF compatible text stack [FS#2224] (r14058)
- Fix: NewGRF text stack's 'push word' did not move the data around properly (r14057)
- Fix: Long strings in the edit box would cause OpenTTD to stop drawing the string. This is especially noticable with low resolutions and the chat input box (r14054)
- Fix: [OSX] Changed the condition for selecting 8 or 32 bpp blitter by default. Now we will pick 32 bpp if no 8 bpp fullscreen resolutions are available on the main display (the one with the dock) (r14032)
- Fix: [OSX] changed the condition for selecting 8 or 32 bpp blitter by default. Now we will pick 32 bpp if no 8 bpp fullscreen resolutions are available on the main display (the one with the dock) (r14032)
- Fix: Crash when the AI tries to find the depot of an airport that does not have a depot [FS#2190] (r13999)
- Fix: MSVC cannot handle changed files in the prebuild event, so make the version determination a separate subproject [FS#2004] (r13998)
- Fix: The dedicated console removed any character that was not a printable ASCII character instead. Now it allows UTF8 formated strings too [FS#2189] (r13992)
@@ -879,7 +626,7 @@
- Fix: In some cases the sprite cache could be filled with unremovable items [FS#2153] (r13869)
- Fix: Return of wrong parent scope of (NewGRF) industry variables (r13868)
- Fix: Loading of TTD(Patch) savegames from the command line did not work (r13859)
- Fix: Buffer overflow for too long filename supplied as '-g' parameter [CVE-2008-3577] (r13858)
- Fix: Buffer overflow for too long filename supplied as '-g' parameter (r13858)
- Fix: Cargo type lookup was incorrect for NewGRF version 7 files without a translation table [FS#2157] (r13855)
- Fix: GetTownByTile() is only valid for houses and roads (r13851)
- Fix: Power, running cost and capacity of multiheaded engines were (too often) doubled in newspaper resp. offer window (r13844)
@@ -900,13 +647,13 @@
- Fix: Possible desync on the autorenew settings 20+ game years (i.e. 4.5+ hours) after a company was started (r13718)
- Fix: Any player could construct new companies [FS#2144] (r13716)
- Fix: Remove the unique_id from the message that a client has joined as it is only exposes the unique_id more than needed (r13714)
- Fix: Possible crash on creating a network packet [CVE-2008-3547] (r13713)
- Fix: Possible crash on creating a network packet (r13713)
- Fix: Enforce the length restrictions of company and president name in the commands too (r13712)
0.6.2-RC1 (2008-07-16)
------------------------------------------------------------------------
- Fix: Possible buffer overflow in string truncation code [CVE-2008-3576] (r13700)
- Fix: Possible buffer overflow in string truncation code (r13700)
- Fix: Handle SETX(Y) properly when truncating a string instead of ignoring it and returning a too long string (r13699)
- Fix: In some cases the (sound) mixer could overflow causing artefacts in the sound [FS#2120] (r13695)
- Fix: Do not rely on .tar files always ending with a block of zeros (r13693)
@@ -997,7 +744,7 @@
- Fix: Infinite loop in case your compiler decides that enums are unsigned by default (r12622)
- Fix: The convert signal button disallowed signal dragging when the signal GUI was closed (r12577)
- Fix: Binding to a specific IP could cause OpenTTD to not register properly with the masterserver if one has multiple external interfaces (r12574)
- Fix: The function min() has 32bit arguments, clamping of 64bit values did not work (r12572)
- Fix: min() has 32bit arguments, clamping of 64bit values did not work (r12572)
- Fix: Towns could not terraform when inflation rised terraform prices enough (r12564)
- Fix: Do not affect town rating change by the order in which we examine stations (r12561)
- Fix: Redraw the signal GUI when the signal drag density changes in the patch settings and vice versa (r12553)
@@ -1029,7 +776,7 @@
- Fix: Refresh vehicle details window when cached values are updated (r12378)
- Fix: Set cached value for vehicle property 25 before other cached values [FS#1854] (r12377)
- Fix: Do not close a dropmenu when clicking on a dropdown widget (r12374)
- Fix: Windows music driver fails if path is too long or if containing non-latin chars [FS#1849] (r12373, r12372)
- Fix: win32 music driver fails if path is too long or if containing non-latin chars [FS#1849] (r12373, r12372)
- Fix: Do not let window hide behind the main toolbar after resizing the screen [FS#1823] (r12371)
- Fix: Close language drop down when parent window is clicked/closed [FS#1853] (r12370)
- Fix: Reset train speed limits when _patches.realistic_acceleration changes (r12369)
@@ -1065,7 +812,7 @@
- Fix: YAPF and NTP did not apply penalty for uphill tracks on steep slopes (r12313)
- Fix: Restore timetable from backupped orders and add group ID to the backup [FS#1549] (r12296)
- Fix: Do not draw trees nor lamps between tram tracks (r12290) [FS#1807]
- Fix: [Windows] Do not create save dir on install (r12269)
- Fix: [Win32] Do not create save dir on install (r12269)
- Fix: Autoreplace did not update vehicle index for timetable window [FS#1805] (r12261)
- Fix: GetProductionAroundTiles() may fail if only the second production slot exists (r12258)
- Fix: Town variables 0x9E to 0xAD (company ratings) returned wrong values (r12247)
@@ -1186,14 +933,14 @@
- Fix: Do not allow modifying roadbits when other roadtypes would need different foundation (r11953)
- Fix: Loading of very old savegames was broken (r11951)
- Fix: Slope detection of bridge ramps. Helps YAPF and Trolly (r11946)
- Fix: [Windows] FileExists() failed for non latin paths (r11945)
- Fix: FileExists() failed for non latin paths (win32) (r11945)
- Fix: Allow building drive-through road/tram stops at road/tram track that has no owner (r11944)
- Fix: 'BRIDGE_TOO_LOW_FOR_TERRAIN'-check was wrong for steep slopes (r11936)
- Fix: [Autoreplace] Single to dualhead locomotive replacefailed when player had enough money to replace and refit one but not enough to refit the last one as well [FS#1624] (r11929)
- Fix: [Autoreplace] Autoreplace could refit train engines to the wrong cargo type if the old engine had no cargo capacity and the new one had (r11928)
- Fix: Loading old, pre savegame version 2, savegames (r11925)
- Fix: AI was reading wrong tile slope while building road bridge (r11917)
- Fix: Set correctly crossing state after train reversal, train leaving crossing, train crash (r11900)
- Fix: set correctly crossing state after train reversal, train leaving crossing, train crash (r11900)
- Fix: Segmentation faults/wrong frees due uninitialized memory in the AI [FS#1658] (r11887)
- Fix: Assert when trying to remove rail from a house or industry tile [FS#1663,FS#1665-6-7-8,FS#1680,FS#1686-7-8 FS#1715 FS#1742 FS#1771 FS#1776](r11883)
- Fix: Crash in MP in vehicle group window if the currently selected group is deleted by another player (r11878)
@@ -1458,7 +1205,7 @@
- Fix: Clone vehicles will no longer refit for free (r9689)
- Fix: Improved loading does not use a huge amount of processing power anymore when having a lot of trains [FS#423] (r9683)
- Fix: Truncate the NewGRF information text in the NewGRF GUI if it is too long (r9449)
- Fix: Cancel in password queries reduces amount of players in the network game when they have not joined the game yet [FS#688] (r9378)
- Fix: Cancel in password queries reduces amount of players in the network game when they have not joined the game yet [FS#688] r9378
- Fix: If all news-setting buttons show 'full', make the ALL-button show 'full' too (r9137)
- Fix: Open and close messages now have their own setting, so you can hide economy changes, but do show open/close of industries [FS#525] (r9097)
- Fix: Do not make owner signs transparent, as then you loose the information who it owns [FS#637] (r9067)
@@ -1476,8 +1223,8 @@
- 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)
- Fix: When following path for signals, do not skip back to the previous tile, as for tunnels and bridge ends the entering direction is wrong (r7717)
- Fix: [YAPF] Suppress 'Train is lost' message if path finding ended on the first two-way red signal due to YAPF.rail_firstred_twoway_eol option (r7628)
- Fix: [OPF] Signal update was incorrectly propagated (r7620)
- Fix: [YAPF] suppress 'Train is lost' message if path finding ended on the first two-way red signal due to YAPF.rail_firstred_twoway_eol option (r7628)
- Fix: [OPF] signal update was incorrectly propagated (r7620)
0.5.3 (2007-09-15)
@@ -1522,7 +1269,7 @@
0.5.3-RC1 (2007-06-28)
------------------------------------------------------------------------
- Feature: Make the client list window (for network games) stickyable (r10293)
- Feature: Console command to get the current game date (r10137)
- Feature: console command to get the current game date (r10137)
- Fix: Waypoints could be renamed when you are not the owner (r10368)
- Fix: Smooth economy did not close primary industries and it allowed increasing of production of industries that should not have rising productions (r10348, r10347, r10290)
- Fix: Acceleration for trains on slopes is not calculated properly [FS#786] (r10344, r10317)
@@ -1582,7 +1329,7 @@
- Fix: Only non dedicated servers cannot have 0 players [FS#765] (r9785)
- Fix: Remove arbitrary limit on length of NewGRF strings (r9775)
- Fix: [NewGRF] Ignore axis-bit of station tile layouts [FS#756] (r9758)
- Fix: [Windows] Dead key and open/close console (r9728)
- Fix: [win32] Dead key and open/close console (r9728)
- Fix: When you have closed the 'Load game'/'New game' windows which you started from the 'start server' menu, you should not start a server when starting a new game [SF#1244842] (r9757)
- Fix: Trains were lost after autorenewal/autoreplace [FS#732] (r9753)
- Fix: Stop flooded towns from building roads on water [FS#598] (r9743)
@@ -1617,8 +1364,8 @@
0.5.1-RC2 (2007-03-23)
------------------------------------------------------------------------
- Fix: Crashes when the chatbox would be drawn outside of the main window [FS#701] (r9420)
- Fix: Reading out of an array caused a segmentation fault [FS#694] (r9394)
- Fix: crashes when the chatbox would be drawn outside of the main window [FS#701] (r9420)
- Fix: reading out of an array caused a segmentation fault [FS#694] (r9394)
0.5.1-RC1 (2007-03-20)
@@ -1640,7 +1387,7 @@
- Fix: Difficulty level button was not selected when opening the difficulty window (r9117)
- Fix: The wrong catenary wires were drawn for tunnel entrances [FS#612] (r9077)
- Fix: The intercontinental airport used 'T-junction' runway sprites when there is no exit in the middle of the runway as in the city airport [FS#529] (r9076)
- Fix: [Windows] Dedicated console now does not need an extra 'enter' to fully quit [FS#459] (r9074)
- Fix: [win] dedicated console now does not need an extra 'enter' to fully quit [FS#459] (r9074)
- Fix: Take over companies properly in multiplayer games [FS#459] (r9071)
- Fix: When a bribe failed and you have not picked up cargo yet, you would never be able to do so for a given station [FS#404] (r9070)
- Fix: Do not keep on scrolling for non-numeric values in settings, but require reclick [FS#663] (r9064)
@@ -1650,12 +1397,12 @@
- Fix: Play the correct engine sound based on the engine type instead of the sprite (r9009)
- Fix: New locomotive names were not announced in the news, it said 'new railway locomotive available - railway locomotive' [FS#581] (r9000, r9001)
- Fix: [NewGRF] Do not select a disabled platform length/number of track count when going out of drag-drop mode [FS#450] (r8999)
- Fix: [Windows] Resolution doubled in cfg file when fullscreen mode used [FS#642] (r8994)
- Fix: [win] Resolution doubled in cfg file when fullscreen mode used [FS#642] (r8994)
- Fix: The industry list should also be (re)set when the number of industries is 0 [FS#656] (r8980)
- Fix: [Windows] Possible buffer overflow if unicode text is pasted into an input box and needs trimming (r8975)
- Fix: [Windows] Support compilation with the Vista Platform SDK (r8974)
- Fix: [win] Possible buffer overflow if unicode text is pasted into an input box and needs trimming (r8975)
- Fix: [win] Support compilation with the Vista Platform SDK (r8974)
- Fix: Crash on loading savegames with GRFs that do not have their GRF info/name set (r8955)
- Fix: [NewGRF] Support for vehicle variable 48 was wrong (r8943)
- Fix: [NewGRF] support for vehicle variable 48 was wrong (r8943)
0.5.0 (2007-02-27)
@@ -1714,10 +1461,10 @@
------------------------------------------------------------------------
- Codechange: Add Lithuanian language as an official translation (r7806)
- Fix: The configure script did not work work for dash, a sh compatible shell [FS#485] (r7893)
- Fix: [OSX] Control + enter no longer fullscreens, interfered with team-chat (r7886)
- Fix: [OSX] control + enter no longer fullscreens, interfered with team-chat (r7886)
- Fix: Offset engines/wagons by half width in details window; fixes overflowing for display (r7864)
- Fix: [OSX] Remove incorrect debug message about missing grf files (r7766)
- Fix: [SDL] Sometimes ALT-TAB could trigger the fast forward (r7727)
- Fix: [sdl] sometimes ALT-TAB could trigger the fast forward (r7727)
0.5.0-RC2 (2006-12-31)
@@ -1753,7 +1500,7 @@
- Feature: Allow towns to be built on top of trees in the scenario editor [FS#396] (r7152)
- Feature: Allow over-building of compatible railtypes, i.e. normal and electrified rail. If building electrified rail, normal rail is upgraded for you (at a cost) (r7106)
- Feature: Additional positioning for long dropdown lists with scrollbar support if dropdown list would not fit (r7086)
- Feature: [Windows] Remember the window size between restarts when quit in fullscreen mode (r7061)
- Feature: [win32] Remember the window size between restarts when quit in fullscreen mode (r7061)
- Feature: Increase the chatbuffer of chat messages, messages longer than the graphical box will be wrapped to a new line (r6956)
- Feature: Allow typing longer text than visible for an editbox; it will scroll properly now (r6954)
- Feature: Allow spectators to team-speak to eachother (r6933)
@@ -1784,7 +1531,7 @@
- Feature: Possibility to generate scenarios by importing heightmaps. It can be in PNG or BMP format
- Feature: New (optional) landscape generator based on TerraGenesis Perlin noise with GUI, progress bar and fine-tuning options (r5946)
- Feature: Filter for textboxes to only allow input of certain patterns (like numbers only) (r5944)
- Feature: [Windows] Remember the maximized state of the game window and restore on start [FS#234] (r5874)
- Feature: [win32] Remember the maximized state of the game window and restore on start [FS#234] (r5874)
- Feature: Add an icon to the SDL openttd executable (r5872)
- Feature: Also allow horizontal and vertical rails on steep slopes (r5864)
- Feature: Allow building of (certain) rails, roads and bridge ramps on steep sloped tiles (r5833)
@@ -1827,10 +1574,10 @@
- Codechange: Remove the 'unsorted' vehicle sorter, because it's plain useless (r6270)
- Codechange: Remove MSVC6 support. The compiler was too stupid and too many workarounds were needed. Please switch to mingw or VC2005++ express (r5286)
- Codechange: Allow a switch in Makefile.config to disable threads in OpenTTD (r5978)
- Codechange: [Windows] Add native x64 target to VS2005 project files (r5813)
- Codechange: [Windows] The exception dialog showed the last modification-date of win32.c instead of the last compilation-date (r5801)
- Codechange: [win32] Add native x64 target to VS2005 project files (r5813)
- Codechange: [win32]The exception dialog showed the last modification-date of win32.c instead of the last compilation-date (r5801)
- Codechange: Add owner attribute to canals and locks. This makes them more useful in multiplayer games, as only the owner can delete them. Does not affect usage (r5084)
- Codechange: [Windows] Add MSVC2005 support, project and solution files are in the _vs80.* files (r4581)
- Codechange: Add MSVC2005 support, project and solution files are in the _vs80.* files (r4581)
- Codechange: [OSX] Shark (Xcode's profiling tool) can now relate CPU usage to lines (r3611)
- Codechange: Rewrite the multistop slot assignment system. More resource-friendly, several slot-assignment improvements (r3730, r4259)
- Codechange: Completely remove the deprecated -p parameter (is superseded by -n) (r3508)
@@ -1872,7 +1619,7 @@
- Fix: Disable main toolbar buttons showing company list drop downs when there are no companies [FS#356] (r6695)
- Fix: Autoreplace can now use the money for selling the old vehicle to build the new one (r6640)
- Fix: A loop-hole that allowed docks to be built regardless of town authority rating (r6477)
- Fix: [Windows] The dedicated server could overwrite the keyboard input buffer before it was handled by OpenTTD (r6449)
- Fix: [win32] The dedicated server could overwrite the keyboard input buffer before it was handled by OpenTTD (r6449)
- Fix: Reset the location of the last sound as that location can be outside the map when you are loading another, (smaller) map (r6437)
- Fix: Show an error message when executing 'scrollto x' with x < 0 or >= MapSize() instead of asserting later on [FS#340] (r6435)
- Fix: Station catchment area persists after switching tools [FS#136] (r6368)
@@ -1946,7 +1693,7 @@
- Fix: Crash when sorting an empty server list
- Fix: The build-tree window button defaulted to a place-push-button on opening where no treetype is selected
- Fix: Game crashes when cloning/autoreplace reaches train-limit
- Fix: [NTP] Properly check for railtypes on non-plain-rail-tiles
- Fix: [NTP] properly check for railtypes on non-plain-rail-tiles
- Fix: Trains could enter certain sloped rail tiles under bridges with incompatible rail type
- Fix: Ensure the map memory is cleared after it is allocated. This fixes random deserts that sometimes occurred
- Fix: Some weird behaviour with tile selection near bridges
@@ -1965,10 +1712,10 @@
- Fix: Danish town names were saved/loaded as Swiss
- Fix: Removing roads on crossings was done without a check for ownership
- Fix: [Autoreplace] Fix drawing of train list for outdated engines
- Fix: Malicious clients/servers could crash the game [CVE-2006-1999, CVE-2006-1998]
- Fix: [Autoreplace] Allow replacement of wagons even when the engine fails to be replaced
- Fix: Malicious clients/servers could crash the game
- Fix: [Autoreplace] allow replacement of wagons even when the engine fails to be replaced
- Fix: Certain operations involving trains inside a depot could cause a crash
- Fix: [Autoreplace] Cost for refitting a new vehicle is added to the cost animation (player always paid for it, it just was not shown)
- Fix: [Autoreplace] cost for refitting a new vehicle is added to the cost animation (player always paid for it, it just was not shown)
- Fix: [OSX] Save/Load issues solved for OSX 10.3.9 universal binaries
- Fix: Illegal servers in the master-server list could kick the client back to the main menu, effectively making Multiplayer impossible
- Fix: [NPF] Do not mark tiles when debugging in multiplayer, this will cause desyncs
@@ -1978,7 +1725,7 @@
0.4.7 (2006-03-26)
------------------------------------------------------------------------
- Feature: [OSX] Add support for triple-binaries (PPC, PPC970, i386) (r4102)
- Fix: [OSX] Crash when going to fullscreen (r4100)
- Fix: [OSX] crash when going to fullscreen (r4100)
- Fix: Allow unused wagons to have their first cache set. Fixes faulty cache-warning message and noticably speeds up depot operations (r4094)
- Fix: [NPF] Trains & busses were unable to find a route when leaving a depot or bus stop (r4072)
@@ -1986,12 +1733,12 @@
0.4.6 (2006-03-22)
------------------------------------------------------------------------
- Codechange: [Windows] Show the revision in crash.txt and enable the button to show the crash text in the crash-window (r3965)
- Codechange: [win32] Show the revision in crash.txt and enable the button to show the crash text in the crash-window (r3965)
- Codechange: Add additional linker information to release builds to help figure out crashes more easily (r3526)
- Fix: [OSX] Cannot save game if name contains german umlauts (loading savegames with certain chars still look odd) [SF#1157244] (r4038)
- Fix: [OSX] Major speedup for PPC fullscreen (r4034)
- Fix: [OSX] major speedup for PPC fullscreen (r4034)
- Fix: [Makefile] Make sure the ICON_DIR gets created before copying files there (r4032)
- Fix: [Windows] Change compiler settings to use the multithreaded CRT. This prevents certain crashes on multi-threaded machines (r4031)
- Fix: [win32] Change compiler settings to use the multithreaded CRT. This prevents certain crashes on multi-threaded machines (r4031)
- Fix: [NPF] Road vehicles planning through the back of depots and stations [SF#1453646] (r4029)
- Fix: Use the title of a savegame in the saveload dialog-editbox (r4018)
- Fix: Improper resolution written to the configuration file when exiting from fullscreen (r4017)
@@ -2011,11 +1758,11 @@
- Fix: The tooltips for raising and lowering land buttons in the scenario editor are interchanged [FS#61] (r3959)
- Fix: Correctly restore the roadside after roadworks are finished (r3957)
- Fix: [Multistop] Check the status of the destination road stop instead of a station's first road stop. This only has effect with road vehicle queuing disabled (r3956)
- Fix: Validate the setting of max_companies/spectators through the console (r3955)
- Fix: validate the setting of max_companies/spectators through the console (r3955)
- Fix: Improve game-load times (r3954)
- Fix: On loading a game, GetPlayerRailtypes() did not account for the fact that vehicles are introduced a year after their introduction date. This will also relieve possible (rare) network desyncs (r3952)
- Fix: Restore plural forms of cargo types for several languages (r3951)
- Fix: [Windows] Add directives to allow Visual Studio 2005 compilation (r3950)
- Fix: [win32] Add directives to allow Visual Studio 2005 compilation (r3950)
- Fix: Crash in string code with openbsd/zaurus; alignment issues [SF#1415782] (r3948)
@@ -2032,10 +1779,10 @@
- Feature: New display option: 'transparent station signs' (r2438)
- Feature: You can now give transfer order to set up feeder systems (r2441)
- Feature: Removing tracks with the 'remove' tool, automatically removes signals on the tracks (r2469)
- Feature: [Localisation] Allow changing the order of parameters in translated strings (r2573)
- Feature: [Localisation] New way to specify plural forms (r2592)
- Feature: [Localisation] Support genders (r2594)
- Feature: [Localisation] Support cases (r2597)
- Feature: [localisation] Allow changing the order of parameters in translated strings (r2573)
- Feature: [localisation] New way to specify plural forms (r2592)
- Feature: [localisation] Support genders (r2594)
- Feature: [localisation] Support cases (r2597)
- Feature: Add support for truncating strings to a given (pixel) length (r2607)
- Feature: Overhaul DirectMusic MIDI backend, remove 'experimental' status (r2712)
- Feature: Change the driver probing algorithm: Use the first music/sound/video which succeeds initialising instead of bailing out after the first. No need to specify -snull if no soundcard is present anymore (r2728)
@@ -2043,7 +1790,7 @@
- Feature: Clone vehicles (r2764)
- Feature: When starting without a config file determine the language on basis of the current locale (r2777)
- Feature: [NewGRF] Add support for 'extended bytes' (r2872)
- Feature: [Localisation] Major step twoards ISO-8859-15: Implement missing characters (r2879)
- Feature: [localisation] Major step twoards ISO-8859-15: Implement missing characters (r2879)
- Feature: Implement the console command rm to remove savegames (r2941)
- Feature: Danish town names (r2957)
- Feature: Menu option to toggle console (r2958)
@@ -2079,9 +1826,9 @@
- Fix: Refitting to a cargo which is already carried by some vehicles takes their capacities into account for display (r2365)
- Fix: Add 'multihead' TTDPatch option to OpenTTD NewGRF flags-emulation (r2368)
- Fix: Make install tried to install scenarios in the (non-existing) personal dir when USE_HOMEDIR is specified (r2371)
- Fix: [Console] Update the example scripts in the scripts/ directory to reflect the new console functionality (r2372)
- Fix: [Console] Any line starting with a '#' is a comment so ignore it (r2372)
- Fix: [Console] The special variables whose value can only be set by a custom process should, also print out their newly set value there (r2372)
- Fix: [console] update the example scripts in the scripts/ directory to reflect the new console functionality (r2372)
- Fix: [console] any line starting with a '#' is a comment so ignore it (r2372)
- Fix: [console] The special variables whose value can only be set by a custom process should, also print out their newly set value there (r2372)
- Fix: [NewGRF] Ignore action 0 prop 0x20 (air drag) (r2377)
- Fix: [NewGRF] Further property stubs, help prevents subsequent incorrect reading of NewGRF data (r2378)
- Fix: Build year for mail compartment of planes was not set correctly, affected station ratings (r2380)
@@ -2089,7 +1836,7 @@
- Fix: Check the airport type when building an airport (r2382)
- Fix: Monkey-testing turned up some command crashes (r2383)
- Fix: Check selling land and setting player colour. Also an extra map-bounds check for terraforming (r2384)
- Fix: [Realistic acceleration] Very slow trains no longer get an increase in maximum speed when part of them is in a depot (r2388)
- Fix: [realistic accel] Very slow trains no longer get an increase in maximum speed when part of them is in a depot (r2388)
- Fix: [NewGRF] Load power for dual-headed engines correctly (r2400)
- Fix: [NewGRF] When resolving callbacks, dont ignore wagon overrides (r2410)
- Fix: Station ratings are not affected by speed limits from realistic acceleration anymore (r2411)
@@ -2103,7 +1850,7 @@
- Fix: Using the mouse wheel could lead to a crash if mouse was not over a widget (r2530)
- Fix: Blinking 'lock' gfx in multiplayer games (r2548)
- Fix: Remove original train pathfinder. Enhanced old pathfinder (r2553)
- Fix: Spaces in the path to the MIDI files caused the Windows MIDI player to fail (r2563)
- Fix: Spaces in the path to the MIDI files caused the win32 MIDI player to fail (r2563)
- Fix: Set server map name to the loaded name of the game/scenario (r2610)
- Fix: Improve the old pathfinder. Changed it to A* instead of Dijkstra. Benchmark shows that NTP is now around 10x faster than NPF (r2635)
- Fix: Correctly save and load company_value, it's 64 bits wide, not 32 bits (r2684)
@@ -2115,12 +1862,12 @@
- Fix: On OS/2 show the trailing \ if the current directory is a root directory (r2860)
- Fix: Return a proper version number, when testing the TTDPatch version in the SkipIf action (r2862)
- Fix: Change the way NewGRFs are loaded, this saves quite some sprite slots - about 2000 for DBSetXL for example (r2868)
- Fix: Several format string vulnerabilities and buffer overflows in the network code [CVE-2005-2764, CVE-2005-2763] (r2899)
- Fix: Fixed issue where autorenewed vehicles did not get all stats updated (r2912)
- Fix: Several format string vulnerabilities and buffer overflows in the network code (r2899)
- Fix: fixed issue where autorenewed vehicles did not get all stats updated (r2912)
- Fix: Exit the child of the extmidi backend with _exit() instead of exit(), because we do not want any atexit handlers - especially flushing output streams - to run, if exec() fails (r2938)
- Fix: Server crash with 'say'-command (r2950)
- Fix: Fix Windows midi volume level control which did not work (r2960)
- Fix: [OSX] Quitting the game no longer leaves a process behind that eats all the CPU power (r3281)
- Fix: Fix win32 midi volume level control which did not work (r2960)
- Fix: [OSX] quitting the game no longer leaves a process behind that eats all the CPU power (r3281)
- Fix: Fix for UFO-broken waypoint [SF#1216203] (r2961)
- Fix: [NewGRF] Include missing grf feature canal
- Fix: [NewGRF] Add bounds checking to VehicleChangeInfo for vehicles
@@ -2175,8 +1922,8 @@
------------------------------------------------------------------------
- Feature: Add 'clear' command and CTRL+L to empty console window
- Feature: Add the possibility to print out the current debug-level
- Fix: [MacOSX] Default path for midi player on mac is now correct again
- Feature: add the possibility to print out the current debug-level
- Fix: [MacOSX] default path for midi player on mac is now correct again
- Fix: Updated makefile for FreeBSD
- Fix: Text overflows in about box
- Fix: Link error while compiling as dedicated server
@@ -2208,30 +1955,30 @@
- Feature: Saving vehicle sorting criteria for each vehicle type [SF#1093261]
- Feature: Resizable orders GUI [SF#1107690]
- Feature: Focus keyboard on input-box in Multiplayer Menu [SF#1166978]
- Feature: Terrain hotkeys nonfunctional in scenario editor (D,Q,W,E,R,T,Y,U fltr) [SF#1174313]
- Feature: terrain hotkeys nonfunctional in scenario editor (D,Q,W,E,R,T,Y,U fltr) [SF#1174313]
- 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 trian GUI remembers railtype selected from the dropdown menu
- Feature: Improved Autoreplace
- Feature: <any more smaller features :D
- Feature: many 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]
- Fix: Clearing land for free by reallocating HQ [SF#1112469]
- Fix: Crash when accessing hi-scores in editor, it is now disabled [SF#1113037]
- Fix: crash when accessing hi-scores in editor, it is now disabled [SF#1113037]
- Fix: Game no longer crashes when right-clicking a disabled Full Load button [SF#1113399]
- 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 accidently 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: 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: 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 implicitely ok before biggermaps) [SF#1118810]
- Fix: openttd: ship_cmd.c:642 ... Assertion failed. 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 dissaper after typing text and pressing enter!. Signs in Scenario Editor have no owner so ignore that [SF#1149403]
@@ -2241,11 +1988,11 @@
- 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]
- Fix: Infinite access for A:\ (win32). Patch [1171208]. Only requery drive(s) if the user changes a directory, also surpress the OS error box that pops up on some windows machines [SF#1024703]
- Fix: Create Lake and draggable Create Desert tools [SF#1095110]
- Fix: Trains 'Go to depot' button: click twice skip to next order [SF#1172878]
- Fix: Engine power not updated w/auto replace' autoreplace now forces an update of the cache [SF#1146215]
- Fix: [Windows] Path displaying as 'C:\\' [SF#1173690]
- Fix: Path displaying as 'C:\\' in saveload window win32-only [SF#1173690]
- Fix: Click & drag removal of road assertion fail [SF#1179892]
- Fix: Max loan always in euros, use _opt_ptr instead of _opt [SF#1174237]
- Fix: AI orders its vehicles to a competitor's truck stop [SF#1184201]
@@ -2257,15 +2004,15 @@
- 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]
- Fix: [NewGRF] Rotors of custom helicopters are displayed correctly in the hangar window
- Fix: [NewGRF] rotors of custom helicopters are displayed correctly in the hangar window
- Fix: Scenario Editor now handles human-made roads better (try to build a city layout before placing the city, finally that works very nice)
- Fix: [NewGRF] Helicopters are correctly recognized
- Fix: [Autoreplace] Made sure that planes only show planes in replace GUI and helicopters only show helicopters
- Fix: [NewGRF] helicopters are correctly recognized
- Fix: [Autoreplace] made sure that planes only show planes in replace GUI and helicopters only show helicopters
- Fix: Crash when generating tropical maps
- Fix: [Autoreplace] Cheaters can no longer exploit autoreplace to get vehicles, that's not invented yet
- Fix: [Autoreplace] Fixed a stupid bug introduced in r1687, that made a crash if anybody tried to autoreplace anything but an aircraft
- Fix: Expand railroad stations beyond maximum spread
- Fix: [Autoreplace] Fixed a typo that could prevent autoreplaced aircraft from automatically go to a hangar
- 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
- Fix: No longer a station where you only unload is bad for your town-rating
@@ -2276,38 +2023,38 @@
0.3.6 (2005-01-24)
------------------------------------------------------------------------
- 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: 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)
- Feature: A counter to tell how many engines you have of each type to the autoreplace vehicle windows
- Feature: A display for the total map population to the town display
- Feature: [Network] RCon (Remote console)
- Feature: Hotkeys for dock and airport toolbar (see http://wiki.openttd.org/index.php/Hotkeys)
- Feature: [Network] Banning system (mostly tnx to guru3) A server can ban people via ClientList using 'ban', 'unban', 'banlist'
- Feature: [Network] Server can now pause and unpause a game through the console. Use 'pause' and 'unpause'
- Feature: [network] RCon (Remote console)
- Feature: hotkeys for dock and airport toolbar (see http://wiki.openttd.org/index.php/Hotkeys)
- Feature: [Network] banning system (mostly tnx to guru3) A server can ban people via ClientList using 'ban', 'unban', 'banlist'
- Feature: [Network] server can now pause and unpause a game through the console. Use 'pause' and 'unpause'
- Feature: [OS/2] OS/2 support is now finished (Fixes for networking, file selection, keyboard input, plus many other minor issues)
- Feature: [SDL] Show revision number in window title
- 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: [Windows] dedicated server is now functioning correctly
- 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: 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: 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 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: 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 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: 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
- Feature: Swiss town-names [SF#1039061]
- Feature: Adding 16:10 resolutions for mainly laptops [SF#1090950]
@@ -2322,78 +2069,78 @@
- Fix: Slopes under high bridges were not flooded [SF#1090495]
- Fix: In scenario editor, when trees are placed randomly, they are no longer placed on farmland [SF#1092473]
- Fix: On create, the scrollbar of the server-list was not updated [SF#1092661]
- Fix: Placing rocks in scenario editor. You can place rocks on trees and vice versa [SF#1092707]
- 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: no more glitches with many maps in the scenario list when creating server [SF#1093466]
- 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: starting year patch goes out of range. Clamped year between 1920-2090 [SF#1099101]
- 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: 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: console in dedicated server [SF#1101963]
- 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: 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: 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]
- Fix: Destroyed train locks crossings [SF#1105112]
- Fix: Upgrade rail fails when train under bridge [SF#1105281]
- Fix: upgrade rail fails when train under bridge [SF#1105281]
- Fix: Trains do not think they're on a slope any more while they drive around in a tunnel [SF#1105959]
- Fix: Buoys can now only be removed if no ship has it in their schedule. (This makes buoys more useable in multiplayer games again, as buoys cannot be deleted by other players if they are used.) [SF#1105963]
- Fix: Graph's keys get confused [SF#1106354]
- Fix: Placing signals with 2x1 drags is treated as placing a single signal [SF#1106930]
- Fix: Console ignoring return character occasionally [SF#1107350]
- Fix: placing signals with 2x1 drags is treated as placing a single signal [SF#1106930]
- Fix: console ignoring return character occasionally [SF#1107350]
- Fix: Scenario creation bug; engines are of correct year when scenario is saved [SF#1108008]
- Fix: Little red box in scenario editor [SF#1092474]
- Fix: Scrolling through console sometimes crashed the whole game [SF#1099197]
- Fix: little red box in scenario editor [SF#1092474]
- Fix: scrolling through console sometimes crashed the whole game [SF#1099197]
- Fix: Catchment area with drag&drop stations [SF#1099209]
- 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 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
- Fix: A modified client could try to replace a vehicle to an invalid engine ID and crash the server
- Fix: Autoreplace vehicle lists are now redrawn when a new vehicle becomes available
- 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
- Fix: a modified client could try to replace a vehicle to an invalid engine ID and crash the server
- 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 railroad 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: dedicated server also writes to log file if active
- Fix: Desert-landscape does no longer crash
- 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)
- 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)
- Fix: Full-Loading trains no longer get 'lost' after a while
- Fix: Graphs were not updated correctly when one graph with a certain selection was already open and another graph window was opened
- Fix: In multiplayer clientlist can only be opened once
- Fix: in multiplayer clientlist can only be opened once
- Fix: Loan does not count against the company value
- Fix: Nasty bug where one could build one station OVER the other
- Fix: nasty bug where one could build one station OVER the other
- Fix: No crash when creating a game with New English town names any more
- Fix: Now helicopters will use a hangar in schedule to be replaced in, even if they are only set to service there. Since helicopters are serviced at helipads, they will only go there if they needs to be replaced or renewed. They will also use a hangar in an airport in the schedule if needed
- Fix: Only a server can rename a town in a MP game
- Fix: Really old maps do load again
- Fix: now helicopters will use a hangar in schedule to be replaced in, even if they are only set to service there. Since helicopters are serviced at helipads, they will only go there if they needs to be replaced or renewed. They will also use a hangar in an airport in the schedule if needed
- Fix: only a server can rename a town in a MP game
- Fix: really old maps do load again
- Fix: Refit engine button is now disabled when cargo capacity equals zero
- Fix: Server issue where some company names were wrong
- Fix: server issue where some company names were wrong
- Fix: Ship Vehicle Lists are now redrawn correctly
- Fix: Signal stays red if a track is removed
- Fix: Solve AI related order-problem
- Fix: Starting openttd with -g <invalid_name> now acts normal
- Fix: signal stays red if a track is removed
- Fix: solve AI related order-problem
- Fix: starting openttd with -g <invalid_name> now acts normal
- Fix: The cost for an autorenew was not always send to the right player ;)
- 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: 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 behavoir from time to time
- Fix: You can now also delete automatically found servers by pressing 'del'
@@ -2419,7 +2166,7 @@
- Feature: Game compiles under BEOS_SERVER
- 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)
- Feature: [Big Endian computers, which are mac and MorphOS]: are able to load savegames by TTD(Patch)
- Add: 'l' openes the landscaping toolbar globally
- Add: Make the town sometimes build streets on slopes
- Add: Manpage
@@ -2443,7 +2190,7 @@
- Fix: Saving or loading a map doesnt pauses the game anymore
- Fix: Some bridge part is not displayed transparent in transparent mode
- Fix: Starting with -r option allows all resolutions
- Fix: The pathfinder no longer sees rail with another owner as a possible route
- Fix: The pathfinder no longer sees rail with an other owner as a possible route
- Fix: Unable to select other screenshot format in Game Option
- Fix: Unwanted town renaming
- Fix: Vehicles slow down under bridge if the track is on a foundation
@@ -2587,10 +2334,10 @@
- Fix: [Makefile] Fixed issue where sdl-config was needed even on systems without SDL
- Fix: [SDL] Performance fix fo palette animation and mouse jumping
- Fix: [SDL] Same resolution was displayed more than once in game options
- Fix: [SDL] Smoother mouse and performance fix, like in the Windows video driver
- Fix: [SDL] Smoother mouse and performance fix, like in Win32
- Fix: Wrong trains you can buy with scenarios [SF#963056]
- Fix: Minimap crash [SF#972087]
- Fix: Bug in 'weird non-uniform stations handling' [SF#972247]
- Fix: Bug in '[a] weird non-uniform stations handling' [SF#972247]
- Fix: Parent_list was too small [SF#976583]
- Fix: Memoryleak in parent_list [SF#981934]
- Fix: Max_loan in editor bug [SF#982666]
@@ -2617,8 +2364,8 @@
- Fix: Scenario editor pause bug [SF#1007630]
- Fix: Signals not updated after ClearTunnel Bug [SF#1008605, SF#985920]
- Fix: Too many save games prevented loading [SF#1009385]
- Fix: Problem with transferred cargo crashes game [SF#1009567]
- Fix: Build in pause is now a cheat instead of a patch [SF#1009621]
- Fix: problem with transferred cargo crashes game [SF#1009567]
- Fix: build in pause is now a cheat instead of a patch [SF#1009621]
- Fix: Wrong multihead selling [SF#1009631]
- Fix: Turning on the magic bulldozer removes oil rigs [SF#1010833]
- Fix: Drunk pilot [SF#1012086]
@@ -2654,7 +2401,7 @@
- Feature: Added support for 64 bit CPUs
- Feature: Added water quantity level 'very low', which is the default for easy mode now
- Feature: Realistic acceleration turned on, train must first slow down and stop before it can reverse
- Feature: [MorphOS] Various small improvement to make the the game feel more native
- Feature: [MorphOS]: Various small improvement to make the the game feel more native
- Feature: Alt + f now toggles full screen (alt + enter still works)
- Feature: [OSX] Command + q shows the quit window and command + f or enter toggles full screen (alt and control still works too)
- Feature: Autorenew, autorenews vehicles if enabled
@@ -2891,11 +2638,11 @@
- Feature: Clicking on the money brings up finances
- Feature: [OSX] Distribution now uses Apples package system for easier updates
- Feature: [OSX] Application is now a proper bundle application
- Change: [Windows] Use save/ as save folder
- Change: Use save/ as save folder on win32
- Change: Moved date in news window
- Change: Do not check if tiles around the clicked station is a station in order gui
- Change: Keep checkpoint button down after placing
- Change: [Windows] Moved disk devices to bottom of list
- Change: Moved disk devices to bottom of list on win32
- Change: Changed speedkey from Shift to Tab
- Change: Enhanced patches window with pages
- Change: Do not slow down trains as much on hills
@@ -2958,7 +2705,7 @@
- Feature: Road and rail removal by dragging a selection
- Feature: News item for 'train is unprofitable'
- Feature: News item for 'train is lost'
- Feature: [Windows] Double size mode (Ctrl-d to toggle)
- Feature: [Win32] Double size mode (Ctrl-d to toggle)
- Feature: 'Multiple similar industries in close proximity' option
- Feature: 'Multiple industries per down' option
- Feature: 'Crossing tunnels' option
@@ -3002,7 +2749,7 @@
0.1.4 (2004-03-25)
------------------------------------------------------------------------
- Feature: Crash submit system on Windows
- Feature: Crash submit system on win32
- Feature: Autosave
- Feature: In-game resolution selection via settings window
- Feature: Dutch town names
@@ -3065,8 +2812,8 @@
0.1.2 (2004-03-15)
------------------------------------------------------------------------
- Feature: Mouse wheel can be used to zoom in out on Windows
- Feature: Implemented some support for resizing the window dynamically in Windows
- Feature: Mouse wheel can be used to zoom in out on win32
- Feature: Implemented some support for resizing the window dynamically in win32
- Fix: Tunnel mouse icon for maglev and monorail
@@ -3076,7 +2823,7 @@
- Feature: Center windows properly in higher resolutions
- Feature: Command line -g flag now optionally takes a game to load
- Add: External MIDI driver for Unix version
- Add: DirectMusic driver for Windows version
- Add: DirectMusic driver for Win32 version
- Add: 'build tracks on slopes' feature
- Fix: Problem where directories were not displayed under Linux
- Fix: Colors in map window for routes

View File

@@ -1,9 +1,3 @@
# $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/>.
log() {
if [ $1 = "1" ]; then echo "$2"; fi
@@ -11,7 +5,7 @@ log() {
}
set_default() {
released_version="1.0.0-beta3"
released_version="0.7.4"
ignore_extra_parameters="0"
# We set all kinds of defaults for params. Later on the user can override
@@ -48,14 +42,13 @@ set_default() {
enable_debug="0"
enable_desync_debug="0"
enable_profiling="0"
enable_lto="0"
enable_dedicated="0"
enable_network="1"
enable_static="1"
enable_translator="0"
enable_unicode="1"
enable_assert="1"
enable_strip="0"
enable_assert="0"
enable_strip="1"
enable_universal="1"
enable_osx_g5="0"
enable_cocoa_quartz="1"
@@ -67,10 +60,8 @@ set_default() {
with_sdl="1"
with_cocoa="1"
with_zlib="1"
with_lzo2="1"
with_png="1"
enable_builtin_depend="1"
with_makedepend="0"
with_makedepend="1"
with_direct_music="1"
with_sort="1"
with_iconv="1"
@@ -119,7 +110,6 @@ set_default() {
enable_debug
enable_desync_debug
enable_profiling
enable_lto
enable_dedicated
enable_network
enable_static
@@ -137,9 +127,7 @@ set_default() {
with_sdl
with_cocoa
with_zlib
with_lzo2
with_png
enable_builtin_depend
with_makedepend
with_direct_music
with_sort
@@ -155,7 +143,7 @@ set_default() {
with_threads
with_distcc
with_ccache
CC CXX CFLAGS CXXFLAGS LDFLAGS"
CC CXX CFLAGS LDFLAGS"
}
detect_params() {
@@ -268,10 +256,6 @@ detect_params() {
--enable-desync-debug=*) enable_desync_debug="$optarg";;
--enable-profiling) enable_profiling="1";;
--enable-profiling=*) enable_profiling="$optarg";;
--enable-lto) enable_lto="1";;
--enable-lto=*) enable_lto="$optarg";;
--enable-ipo) enable_lto="1";;
--enable-ipo=*) enable_lto="$optarg";;
--enable-dedicated) enable_dedicated="1";;
--enable-dedicated=*) enable_dedicated="$optarg";;
--enable-network=*) enable_network="$optarg";;
@@ -321,13 +305,6 @@ detect_params() {
--without-zlib) with_zlib="0";;
--with-zlib=*) with_zlib="$optarg";;
--with-lzo2) with_lzo2="2";;
--without-lzo2) with_lzo2="0";;
--with-lzo2=*) with_lzo2="$optarg";;
--with-liblzo2) with_lzo2="2";;
--without-liblzo2) with_lzo2="0";;
--with-liblzo2=*) with_lzo2="$optarg";;
--with-png) with_png="2";;
--without-png) with_png="0";;
--with-png=*) with_png="$optarg";;
@@ -368,10 +345,6 @@ detect_params() {
--without-psp-config) with_psp_config="0";;
--with-psp-config=*) with_psp_config="$optarg";;
--disable-builtin-depend) enable_builtin_depend="0";;
--enable-builtin-depend) enable_builtin_depend="2";;
--enable-builtin-depend=*) enable_builtin_depend="$optarg";;
--with-makedepend) with_makedepend="2";;
--without-makedepend) with_makedepend="0";;
--with-makedepend=*) with_makedepend="$optarg";;
@@ -414,7 +387,6 @@ detect_params() {
CC=* | --CC=*) CC="$optarg";;
CXX=* | --CXX=*) CXX="$optarg";;
CFLAGS=* | --CFLAGS=*) CFLAGS="$optarg";;
CXXFLAGS=* | --CXXFLAGS=*) CXXFLAGS="$optarg";;
LDFLAGS=* | --LDFLAGS=*) LDFLAGS="$optarg";;
--ignore-extra-parameters) ignore_extra_parameters="1";;
@@ -480,10 +452,10 @@ check_params() {
log 1 " PREPROCESSOR is only available for OSX"
exit 1
fi
# OS only allows DETECT, UNIX, OSX, FREEBSD, OPENBSD, MORPHOS, BEOS, HAIKU, SUNOS, CYGWIN, MINGW, OS2, DOS, WINCE, and PSP
if [ -z "`echo $os | egrep '^(DETECT|UNIX|OSX|FREEBSD|OPENBSD|NETBSD|HPUX|MORPHOS|BEOS|HAIKU|SUNOS|CYGWIN|MINGW|OS2|DOS|WINCE|PSP)$'`" ]; then
# OS only allows DETECT, UNIX, OSX, FREEBSD, OPENBSD, MORPHOS, BEOS, SUNOS, CYGWIN, MINGW, OS2, DOS, WINCE, and PSP
if [ -z "`echo $os | egrep '^(DETECT|UNIX|OSX|FREEBSD|OPENBSD|NETBSD|HPUX|MORPHOS|BEOS|SUNOS|CYGWIN|MINGW|OS2|DOS|WINCE|PSP)$'`" ]; then
log 1 "configure: error: invalid option --os=$os"
log 1 " Available options are: --os=[DETECT|UNIX|OSX|FREEBSD|OPENBSD|NETBSD|HPUX|MORPHOS|BEOS|HAIKU|SUNOS|CYGWIN|MINGW|OS2|DOS|WINCE|PSP]"
log 1 " Available options are: --os=[DETECT|UNIX|OSX|FREEBSD|OPENBSD|NETBSD|HPUX|MORPHOS|BEOS|SUNOS|CYGWIN|MINGW|OS2|DOS|WINCE|PSP]"
exit 1
fi
# cpu_type can be either 32 or 64
@@ -525,11 +497,7 @@ check_params() {
if [ "$enable_universal" = "0" ]; then
log 1 "checking universal build... no"
else
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"
fi
# Already detected by check_build
@@ -545,14 +513,6 @@ check_params() {
log 1 "checking strip... disabled"
fi
check_lipo
if [ "$enable_builtin_depend" != "0" ]; then
log 1 "checking builtin depend... yes"
makedepend="\$(SRC_OBJS_DIR)/\$(DEPEND)"
else
log 1 "checking builtin depend... no"
fi
check_makedepend
detect_cputype
@@ -611,70 +571,6 @@ check_params() {
sleep 5
fi
if [ "$enable_lto" != "0" ]; then
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
enable_lto="0"
log 1 "using link time optimization... no"
log 1 "WARNING: you selected link time optimization but it is not found."
sleep 5
fi
else
log 1 "using link time optimization... no"
fi
if [ "$os" != "OSX" ] && [ "$with_osx_sysroot" != "0" ]; then
if [ "$with_osx_sysroot" = "1" ]; then
with_osx_sysroot="0"
log 1 "checking OSX sysroot... not OSX, skipping"
else
log 1 "configure: error: --with-osx-sysroot only works if OSX is the target"
exit 1
fi
fi
if [ "$with_osx_sysroot" != "0" ]; then
if [ "$enable_universal" = "0" ] && [ "$with_osx_sysroot" != "1" ] && [ "$with_osx_sysroot" != "2" ]; then
# Sysroot manually specified? Check for usability
log 1 "checking OSX sysroot... $with_osx_sysroot"
if ! check_osx_sdk "$with_osx_sysroot"; then
log 1 "Passed sysroot not found/not functional"
exit 1
fi
else
# If autodetect and no universal, use system default
if [ "$with_osx_sysroot" = "1" ] && [ "$enable_universal" = "0" ]; then
log 1 "checking OSX sysroot... no (use system default)"
else
log 1 "checking OSX sysroot... automatically"
detect_osx_sdk
fi
fi
if [ -n "$osx_sdk_path" ]; then
if [ "$enable_universal" != "0" ]; then
if [ -z "$osx_sdk_104_path" ]; then
log 1 "WARNING: Could not find a usable 10.4u SDK, the resulting"
log 1 "WARNING: binary will only run on OSX 10.5 or later"
osx_sdk_104_path="$osx_sdk_path"
fi
OSX_SYSROOT="-isysroot $osx_sdk_104_path"
OSX_LD_SYSROOT="-Wl,-syslibroot,$osx_sdk_104_path"
else
OSX_SYSROOT="-isysroot $osx_sdk_path"
OSX_LD_SYSROOT="-Wl,-syslibroot,$osx_sdk_path"
fi
fi
else
if [ "$os" = "OSX" ]; then
log 1 "checking OSX sysroot... no (use system default)"
fi
fi
detect_allegro
detect_sdl
detect_cocoa
@@ -753,22 +649,6 @@ check_params() {
fi
fi
pre_detect_with_lzo2=$with_lzo2
detect_lzo2
if [ "$with_lzo2" = "0" ] || [ -z "$lzo2" ]; then
log 1 "WARNING: liblzo2 was not detected or disabled"
log 1 "WARNING: OpenTTD doesn't require liblzo2, but it does mean that"
log 1 "WARNING: loading old savegames/scenarios will be disabled."
if [ "$pre_detect_with_lzo2" = "0" ]; then
log 1 "WARNING: We strongly suggest you to install liblzo2."
else
log 1 "configure: error: no liblzo2 detected"
log 1 " If you want to compile without liblzo2 use --without-liblzo2 as parameter"
exit
fi
fi
detect_png
detect_freetype
detect_fontconfig
@@ -893,6 +773,36 @@ check_params() {
with_threads="0"
fi
if [ "$os" != "OSX" ] && [ "$with_osx_sysroot" != "0" ]; then
if [ "$with_osx_sysroot" = "1" ]; then
with_osx_sysroot="0"
log 1 "checking OSX sysroot... not OSX, skipping"
else
log 1 "configure: error: --with-osx-sysroot only works if OSX is the target"
exit 1
fi
fi
if [ "$with_osx_sysroot" != "0" ]; then
if [ "$enable_universal" = "0" ] && [ "$with_osx_sysroot" != "1" ] && [ "$with_osx_sysroot" != "2" ]; then
log 1 "checking OSX sysroot... $with_osx_sysroot"
else
# If autodetect and no universal, use system default
if [ "$with_osx_sysroot" = "1" ] && [ "$enable_universal" = "0" ]; then
log 1 "checking OSX sysroot... no (use system default)"
with_osx_sysroot="0"
else
log 1 "checking OSX sysroot... automatically"
with_osx_sysroot="3"
fi
fi
else
if [ "$os" = "OSX" ]; then
log 1 "checking OSX sysroot... no (use system default)"
fi
fi
if [ "$os" != "OSX" ] && [ "$with_application_bundle" != "0" ]; then
if [ "$with_application_bundle" = "1" ]; then
with_application_bundle="0"
@@ -911,6 +821,7 @@ check_params() {
fi
if [ "$os" = "OSX" ]; then
check_osx_sdk
# Test on G5
if [ "$enable_osx_g5" != "0" ]; then
@@ -1057,6 +968,8 @@ check_params() {
menu_dir="`echo $menu_dir | sed 's@\([^\]\)\\\\ @\1\\\\\\\\ @g;s@\([^\]\) @\1\\\\\\\\ @g'`"
fi
# "set_universal_binary_flags" needs to be before "detect_iconv"
set_universal_binary_flags
detect_iconv
if [ -n "$personal_dir" ]
@@ -1106,40 +1019,23 @@ make_compiler_cflags() {
# Params:
# $1 - compiler
# $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
# $3 - variable to finally write to
flags="$2"
cxxflags="$4"
ldflags="$6"
if [ `basename $1 | cut -c 1-3` = "icc" ]; then
if [ `echo $1 | cut -c 1-3` = "icc" ]; then
# Enable some things only for certain ICC versions
cc_version=`$1 -dumpversion | cut -c 1-4 | sed s@\\\.@@g`
cc_version=`$1 -dumpversion | cut -c 1-4`
flags="$flags -rdynamic"
ldflags="$ldflags -rdynamic"
if [ $cc_version -ge 101 ]; then
if [ "$cc_version" = "10.1" ]; then
flags="$flags -Wno-multichar"
fi
if [ $cc_version -ge 110 ]; then
if [ "$cc_version" = "11.0" ]; then
# warning 1899: multicharacter character literal (potential portability problem) (e.g. 'FOOD')
# 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
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"
flags="$flags -vec-report=0 -wd1899"
fi
else
# Enable some things only for certain GCC versions
@@ -1152,6 +1048,8 @@ make_compiler_cflags() {
flags="$flags -Wall -Wno-multichar -Wsign-compare -Wundef"
flags="$flags -Wwrite-strings -Wpointer-arith"
flags="$flags -Wno-uninitialized"
flags="$flags -W -Wno-unused-parameter -Wformat=2"
flags="$flags -Wredundant-decls"
@@ -1166,10 +1064,6 @@ 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"
fi
if [ $cc_version -ge 42 ]; then
@@ -1178,59 +1072,22 @@ make_compiler_cflags() {
# sure that they will not happen. It furthermore complains
# 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
# Use gnu++0x mode so static_assert() is available.
# Don't use c++0x, it breaks mingw (with gcc 4.4.0).
cxxflags="$cxxflags -std=gnu++0x"
fi
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
flags="$flags -flto"
ldflags="$ldflags -flto $2"
fi
fi
has_rdynamic=`$1 -dumpspecs | grep rdynamic`
if [ -n "$has_rdynamic" ]; then
# rdynamic is used to get useful stack traces from crash reports.
flags="$flags -rdynamic"
ldflags="$ldflags -rdynamic"
fi
fi
eval "$3=\"$flags\""
eval "$5=\"$cxxflags\""
eval "$7=\"$ldflags\""
}
make_cflags_and_ldflags() {
# General CFlags for BUILD
CFLAGS_BUILD=""
# Special CXXFlags for BUILD
CXXFLAGS_BUILD=""
# LDFLAGS for BUILD
LDFLAGS_BUILD=""
# General CFlags for HOST
CFLAGS="$CFLAGS"
# Special CXXFlags for HOST
CXXFLAGS="$CXXFLAGS"
CFLAGS="$CFLAGS -D$os"
# Libs to compile. In fact this is just LDFLAGS
LIBS="-lstdc++"
# LDFLAGS used for HOST
LDFLAGS="$LDFLAGS"
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
# No debug, add default stuff
OBJS_SUBDIR="release"
@@ -1244,7 +1101,6 @@ make_cflags_and_ldflags() {
fi
CFLAGS="-O2 -fomit-frame-pointer $CFLAGS"
LDFLAGS="-O2 -fomit-frame-pointer $LDFLAGS"
fi
else
OBJS_SUBDIR="debug"
@@ -1258,7 +1114,6 @@ make_cflags_and_ldflags() {
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"
@@ -1276,6 +1131,9 @@ make_cflags_and_ldflags() {
CFLAGS="$CFLAGS -DNO_THREADS"
fi
make_compiler_cflags "$cc_build" "$CFLAGS_BUILD" "CFLAGS_BUILD"
make_compiler_cflags "$cc_host" "$CFLAGS" "CFLAGS"
if [ "`echo $1 | cut -c 1-3`" != "icc" ]; then
if [ "$os" = "CYGWIN" ]; then
flags="$flags -mwin32"
@@ -1283,20 +1141,20 @@ make_cflags_and_ldflags() {
fi
if [ "$os" = "MINGW" ] || [ "$os" = "CYGWIN" ]; then
flags="$flags -mno-cygwin"
LDFLAGS="$LDFLAGS -mno-cygwin -Wl,--subsystem,windows"
LIBS="$LIBS -lws2_32 -lwinmm -lgdi32 -ldxguid -lole32"
LDFLAGS="$LDFLAGS -mno-cygwin"
fi
if [ $cc_version -ge 44 ]; then
LDFLAGS_BUILD="$LDFLAGS_BUILD -static-libgcc"
fi
if [ "$os" = "CYGWIN" ] || [ "$os" = "MINGW" ]; then
LDFLAGS="$LDFLAGS -Wl,--subsystem,windows"
LIBS="$LIBS -lws2_32 -lwinmm -lgdi32 -ldxguid -lole32"
fi
fi
if [ "$os" != "CYGWIN" ] && [ "$os" != "HAIKU" ] && [ "$os" != "FREEBSD" ] && [ "$os" != "OPENBSD" ] && [ "$os" != "MINGW" ] && [ "$os" != "MORPHOS" ] && [ "$os" != "OSX" ] && [ "$os" != "DOS" ] && [ "$os" != "WINCE" ] && [ "$os" != "PSP" ] && [ "$os" != "OS2" ]; then
if [ "$os" != "CYGWIN" ] && [ "$os" != "FREEBSD" ] && [ "$os" != "OPENBSD" ] && [ "$os" != "MINGW" ] && [ "$os" != "MORPHOS" ] && [ "$os" != "OSX" ] && [ "$os" != "DOS" ] && [ "$os" != "WINCE" ] && [ "$os" != "PSP" ] && [ "$os" != "OS2" ]; then
LIBS="$LIBS -lpthread"
fi
if [ "$os" != "CYGWIN" ] && [ "$os" != "HAIKU" ] && [ "$os" != "MINGW" ] && [ "$os" != "DOS" ] && [ "$os" != "WINCE" ]; then
if [ "$os" != "CYGWIN" ] && [ "$os" != "MINGW" ] && [ "$os" != "DOS" ] && [ "$os" != "WINCE" ]; then
LIBS="$LIBS -lc"
fi
if [ "$os" = "WINCE" ]; then
@@ -1325,42 +1183,17 @@ make_cflags_and_ldflags() {
if [ "$os" = "OSX" ]; then
LDFLAGS="$LDFLAGS -framework Cocoa"
if [ "$enable_dedicated" = "0" ] && ([ "$cpu_type" = "32" ] || [ "$enable_universal" != "0" ]); then
if [ "$enable_dedicated" = "0" ]; then
LIBS="$LIBS -framework QuickTime"
else
CFLAGS="$CFLAGS -DNO_QUICKTIME"
fi
if [ "$enable_universal" = "0" ]; then
# Universal builds set this elsewhere
CFLAGS="$OSX_SYSROOT $CFLAGS"
LDFLAGS="$OSX_LD_SYSROOT $LDFLAGS"
fi
if [ "$enable_universal" = "0" ] && [ $cc_version -ge 40 ]; then
# Only set the min version when not doing an universal build.
# Universal builds set the version elsewhere.
if [ "$cpu_type" = "64" ]; then
CFLAGS="$CFLAGS -mmacosx-version-min=10.5"
else
gcc_cpu=`$cc_host -dumpmachine`
if [ "`echo $gcc_cpu | cut -c 1-3`" = "ppc" -o "`echo $gcc_cpu | cut -c 1-7`" = "powerpc" ]; then
# PowerPC build can run on 10.3
CFLAGS="$CFLAGS -mmacosx-version-min=10.3"
else
# Intel is only available starting from 10.4
CFLAGS="$CFLAGS -mmacosx-version-min=10.4"
fi
fi
fi
fi
if [ "$os" = "BEOS" ] || [ "$os" = "HAIKU" ]; then
if [ "$os" = "BEOS" ]; then
LIBS="$LIBS -lmidi -lbe"
fi
# Most targets act like UNIX, just with some additions
if [ "$os" = "BEOS" ] || [ "$os" = "HAIKU" ] || [ "$os" = "OSX" ] || [ "$os" = "MORPHOS" ] || [ "$os" = "FREEBSD" ] || [ "$os" = "OPENBSD" ] || [ "$os" = "NETBSD" ] || [ "$os" = "HPUX" ] || [ "$os" = "SUNOS" ] || [ "$os" = "OS2" ]; then
if [ "$os" = "BEOS" ] || [ "$os" = "OSX" ] || [ "$os" = "MORPHOS" ] || [ "$os" = "FREEBSD" ] || [ "$os" = "OPENBSD" ] || [ "$os" = "NETBSD" ] || [ "$os" = "HPUX" ] || [ "$os" = "SUNOS" ] || [ "$os" = "OS2" ]; then
CFLAGS="$CFLAGS -DUNIX"
fi
# And others like Windows
@@ -1395,7 +1228,7 @@ make_cflags_and_ldflags() {
if [ "$with_cocoa" != "0" ]; then
CFLAGS="$CFLAGS -DWITH_COCOA"
LIBS="$LIBS -F/System/Library/Frameworks -framework Cocoa -framework Carbon -framework AudioUnit -framework AudioToolbox"
LIBS="$LIBS -F/System/Library/Frameworks -framework Cocoa -framework Carbon -framework AudioUnit"
if [ "$enable_cocoa_quartz" != "0" ]; then
CFLAGS="$CFLAGS -DENABLE_COCOA_QUARTZ"
@@ -1415,17 +1248,8 @@ make_cflags_and_ldflags() {
CFLAGS="$CFLAGS -DWITH_ZLIB"
fi
if [ "$with_lzo2" != "0" ]; then
if [ "$enable_static" != "0" ] && [ "$os" != "OSX" ]; then
LIBS="$LIBS $lzo2"
else
LIBS="$LIBS -llzo2"
fi
CFLAGS="$CFLAGS -DWITH_LZO"
fi
# 64bit machines need -D_SQ64
if [ "$cpu_type" = "64" ] && [ "$enable_universal" = "0" ]; then
if [ "$cpu_type" = "64" ]; then
CFLAGS="$CFLAGS -D_SQ64"
fi
CFLAGS="$CFLAGS -I$SCRIPT_SRC_DIR"
@@ -1548,10 +1372,6 @@ make_cflags_and_ldflags() {
LDFLAGS="$LDFLAGS -lbind -lsocket"
fi
if [ "$os" = "HAIKU" ]; then
LDFLAGS="$LDFLAGS -lnetwork"
fi
if [ "$os" = "SUNOS" ]; then
LDFLAGS="$LDFLAGS -lnsl -lsocket"
fi
@@ -1587,7 +1407,6 @@ make_cflags_and_ldflags() {
CFLAGS="$CFLAGS -DGLOBAL_DATA_DIR=\\\\\"$prefix_dir/$data_dir\\\\\""
log 1 "using CFLAGS... $CFLAGS"
log 1 "using CXXFLAGS... $CXXFLAGS"
log 1 "using LDFLAGS... $LIBS $LDFLAGS"
# Makedepend doesn't like something like: -isysroot /OSX/blabla
@@ -1597,12 +1416,11 @@ make_cflags_and_ldflags() {
# Btw, this almost always comes from outside the configure, so it is
# not something we can control.
# Also make makedepend aware of compiler's built-in defines.
if [ "$with_makedepend" != "0" ] || [ "$enable_builtin_depend" != "0" ]; then
# Append CXXFLAGS possibly containing -std=c++0x
cflags_makedep="`echo | $cxx_host $CXXFLAGS -E -x c++ -dM - | sed 's@.define @-D@g;s@ .*@ @g;s@(.*)@@g' | tr -d '\r\n'`"
if [ "$with_makedepend" != "0" ]; then
cflags_makedep="`echo | $cxx_host -E -x c++ -dM - | sed 's@.define @-D@g;s@ .*@ @g;s@(.*)@@g' | tr -d '\r\n'`"
# Please escape ALL " within ` because e.g. "" terminates the string in some sh implementations
cflags_makedep="$cflags_makedep `echo \"$CFLAGS\" \"$CXXFLAGS\" | sed 's@ /@ -@g;s@-I[ ]*[^ ]*@@g'`"
cflags_makedep="$cflags_makedep `echo \"$CFLAGS\" | sed 's@ /@ -@g;s@-I[ ]*[^ ]*@@g'`"
else
makedepend=""
fi
@@ -1798,24 +1616,27 @@ check_lipo() {
fi
}
check_osx_sdk() {
local sysroot=""
if [ -n "$1" ]; then
if echo "$1" | grep -q / ; then
# Seems to be a file system path
osx_sdk_path="$1"
else
osx_sdk_path="/Developer/SDKs/MacOSX$1.sdk"
fi
if [ ! -d "$osx_sdk_path" ]; then
# No directory, not present or garbage
return 1
fi
# Set minimum version to 10.4 as that's when kCGBitmapByteOrder32Host was introduced
sysroot="-isysroot $osx_sdk_path -Wl,-syslibroot,$osx_sdk_path -mmacosx-version-min=10.4"
set_universal_binary_flags() {
if [ -z "$osx_target_version" ]; then
# if we don't speficy a target version then we presume 10.4
osx_target_version=10.4
fi
if [ "$osx_target_version" = "10.4" ]; then
# Apple added u to 10.4 to show that it's universal
# There is a version without the u, but it's only in Xcode 2.0 and people should use the free update to 2.5
osx_sysroot_version=10.4u
else
osx_sysroot_version="$osx_target_version"
fi
if [ "$with_osx_sysroot" = "3" ]; then
CFLAGS="$CFLAGS -isysroot /Developer/SDKs/MacOSX$osx_sysroot_version.sdk -mmacosx-version-min=$osx_target_version"
LDFLAGS="$LDFLAGS -Wl,-syslibroot,/Developer/SDKs/MacOSX$osx_sysroot_version.sdk -mmacosx-version-min=$osx_target_version"
fi
}
check_osx_sdk() {
cat > tmp.osx.mm << EOF
#include <Cocoa/Cocoa.h>
int main() {
@@ -1823,13 +1644,18 @@ int main() {
return 0;
}
EOF
execute="$cxx_host $sysroot $CFLAGS tmp.osx.mm -framework Cocoa -o tmp.osx 2>&1"
execute="$cxx_host $CFLAGS tmp.osx.mm -framework Cocoa -o tmp.osx 2>&1"
eval $execute > /dev/null
ret=$?
log 2 "executing $execute"
log 2 " exit code $ret"
rm -f tmp.osx.mm tmp.osx
return $ret
if [ "$ret" != "0" ]; then
log 1 "Your system SDK is probably too old"
log 1 "Please install/upgrade your Xcode to >= 2.5"
exit 1
fi
}
check_direct_music() {
@@ -1858,10 +1684,6 @@ check_direct_music() {
}
check_makedepend() {
if [ "$enable_builtin_depend" != "0" ]; then
with_makedepend="0"
fi
if [ "$with_makedepend" = "0" ]; then
log 1 "checking makedepend... disabled"
return
@@ -1963,7 +1785,6 @@ detect_os() {
/hp-ux/ { print "HPUX"; exit}
/morphos/ { print "MORPHOS"; exit}
/beos/ { print "BEOS"; exit}
/haiku/ { print "HAIKU"; exit}
/sunos/ { print "SUNOS"; exit}
/solaris/ { print "SUNOS"; exit}
/cygwin/ { print "CYGWIN"; exit}
@@ -1984,7 +1805,6 @@ detect_os() {
/hp-ux/ { print "HPUX"; exit}
/morphos/ { print "MORPHOS"; exit}
/beos/ { print "BEOS"; exit}
/haiku/ { print "HAIKU"; exit}
/sunos/ { print "SUNOS"; exit}
/cygwin/ { print "CYGWIN"; exit}
/mingw/ { print "MINGW"; exit}
@@ -1996,7 +1816,7 @@ detect_os() {
if [ -z "$os" ]; then
log 1 "detecting OS... none detected"
log 1 "I couldn't detect your OS. Please use --os=OS to force one"
log 1 "Allowed values are: UNIX, OSX, FREEBSD, OPENBSD, NETBSD, MORPHOS, HPUX, BEOS, HAIKU, SUNOS, CYGWIN, MINGW, OS2, DOS, WINCE, and PSP"
log 1 "Allowed values are: UNIX, OSX, FREEBSD, OPENBSD, NETBSD, MORPHOS, HPUX, BEOS, SUNOS, CYGWIN, MINGW, OS2, DOS, WINCE, and PSP"
exit 1
fi
@@ -2137,39 +1957,6 @@ detect_sdl() {
log 1 "checking SDL... found"
}
detect_osx_sdk() {
# Try to find the best SDK available. For a normal build this
# is currently the 10.5 SDK as this is needed to compile all
# optional code. Because such an executable won't run on 10.4
# or lower, also check for the 10.4u SDK when doing an universal
# build.
# Check for the 10.5 SDK, but try 10.6 if that fails
check_osx_sdk "10.5" || check_osx_sdk "10.6" || osx_sdk_path=""
if [ -z "$osx_sdk_path" ] || [ "$enable_universal" != "0" ]; then
# No better SDK or universal build enabled? Check 10.4u SDK as well
local old_sdk="$osx_sdk_path"
if check_osx_sdk "10.4u"; then
osx_sdk_104_path="$osx_sdk_path"
else
osx_sdk_104_path=""
fi
if [ -z "$old_sdk" ]; then
osx_sdk_path="$osx_sdk_104_path"
else
osx_sdk_path="$old_sdk"
fi
fi
if [ -z "$osx_sdk_path" ]; then
log 1 "Your system SDK is probably too old"
log 1 "Please install/upgrade your Xcode to >= 2.5"
exit 1
fi
}
detect_cocoa() {
# 0 means no, 1 is auto-detect, 2 is force
if [ "$with_cocoa" = "0" ]; then
@@ -2215,66 +2002,21 @@ detect_cocoa() {
log 1 "checking whether to enable the Quartz window subdriver... no"
fi
detect_quickdraw
}
detect_quickdraw() {
# 0 means no, 1 is auto-detect, 2 is force
if [ "$enable_cocoa_quickdraw" = "0" ]; then
log 1 "checking Quickdraw window subdriver... disabled"
return 0
if [ "$enable_cocoa_quickdraw" != "0" ]; then
log 1 "checking whether to enable the Quickdraw window subdriver... yes"
else
log 1 "checking whether to enable the Quickdraw window subdriver... no"
fi
# Assume QuickDraw is available when doing an universal build
if [ "$enable_universal" != "0" ]; then
log 1 "checking Quickdraw window subdriver... found"
return 0
fi
# 64 bits doesn't have quickdraw
if [ "$cpu_type" = "64" ]; then
enable_cocoa_quickdraw="0"
log 1 "checking Quickdraw window subdriver... disabled (64 bits)"
return 0
fi
cat > tmp.osx.mm << EOF
#include <AvailabilityMacros.h>
#import <Cocoa/Cocoa.h>
int main(int argc, char *argv[]) { SetEmptyRgn(NULL); return 0; }
EOF
execute="$cxx_host $OSX_SYSROOT $OSX_LD_SYSROOT $CFLAGS -mmacosx-version-min=10.3 tmp.osx.mm -framework Cocoa -o tmp.osx 2>&1"
eval $execute > /dev/null
ret=$?
log 2 "executing $execute"
log 2 " exit code $ret"
rm -f tmp.osx.mm tmp.osx
if [ "$ret" != "0" ]; then
log 1 "checking Quickdraw window subdriver... not found"
# It was forced, so it should be found.
if [ "$enable_cocoa_quickdraw" != "1" ]; then
log 1 "configure: error: Quickdraw window driver could not be found"
exit 1
fi
enable_cocoa_quickdraw=0
return 0
fi
enable_cocoa_quickdraw=1
log 1 "checking Quickdraw window subdriver... found"
}
detect_library() {
# $1 - config-param ($with_zlib value)
# $2 - library name ('zlib', sets $zlib)
# $3 - static library name (libz.a)
# $4 - header directory ()
# $5 - header name (zlib.h)
# $6 - force static (if non-empty)
# $4 - header name (zlib.h)
# $5 - force static (if non-empty)
if [ -n "$6" ]; then force_static="1"; fi
if [ -n "$5" ]; then force_static="1"; fi
# 0 means no, 1 is auto-detect, 2 is force
if [ "$1" = "0" ]; then
@@ -2287,15 +2029,15 @@ detect_library() {
log 2 "detecting $2"
if [ "$1" = "1" ] || [ "$1" = "" ] || [ "$1" = "2" ]; then
eval "$2=`ls -1 /usr/include/$4*.h 2>/dev/null | egrep \"\/$5\$\"`"
eval "$2=`ls -1 /usr/include/*.h 2>/dev/null | egrep \"\/$4\$\"`"
eval "res=\$$2"
if [ -z "$res" ]; then
log 2 " trying /usr/include/$4$5... no"
eval "$2=`ls -1 /usr/local/include/$4*.h 2>/dev/null | egrep \"\/$5\$\"`"
log 2 " trying /usr/include/$4... no"
eval "$2=`ls -1 /usr/local/include/*.h 2>/dev/null | egrep \"\/$4\$\"`"
fi
eval "res=\$$2"
if [ -z "$res" ]; then
log 2 " trying /usr/local/include/$4$5... no"
log 2 " trying /usr/local/include/$4... no"
fi
eval "res=\$$2"
@@ -2358,15 +2100,11 @@ detect_library() {
}
detect_zlib() {
detect_library "$with_zlib" "zlib" "libz.a" "" "zlib.h"
}
detect_lzo2() {
detect_library "$with_lzo2" "lzo2" "liblzo2.a" "lzo/" "lzo1x.h"
detect_library "$with_zlib" "zlib" "libz.a" "zlib.h"
}
detect_libtimidity() {
detect_library "$with_libtimidity" "libtimidity" "libtimidity.a" "" "timidity.h"
detect_library "$with_libtimidity" "libtimidity" "libtimidity.a" "timidity.h"
}
detect_png() {
@@ -2508,12 +2246,6 @@ detect_fontconfig() {
return 0
fi
if [ "$os" = "OSX" ]; then
log 1 "checking libfontconfig... OSX, skipping"
fontconfig_config=""
return 0
fi
if [ "$with_fontconfig" = "1" ] || [ "$with_fontconfig" = "" ] || [ "$with_fontconfig" = "2" ]; then
fontconfig_config="pkg-config fontconfig"
else
@@ -2714,7 +2446,7 @@ int main() {
return iconv(convd, &inbuf, &inlen, &outbuf, &outlen);
}
EOF
execute="$cxx_host $OSX_SYSROOT $CFLAGS -c tmp.iconv.cpp -o tmp.iconv -DTESTING 2>&1"
execute="$cxx_host $CFLAGS -c tmp.iconv.cpp -o tmp.iconv -DTESTING 2>&1"
eval $execute > /dev/null
ret=$?
log 2 "executing $execute"
@@ -2735,7 +2467,7 @@ int main() {
return iconv(convd, &inbuf, &inlen, &outbuf, &outlen);
}
EOF
execute="$cxx_host $OSX_SYSROOT $OSX_LD_SYSROOT $CFLAGS tmp.iconv.cpp -o tmp.iconv -DTESTING 2>&1"
execute="$cxx_host $CFLAGS tmp.iconv.cpp -o tmp.iconv -DTESTING 2>&1"
eval $execute > /dev/null
ret=$?
log 2 "executing $execute"
@@ -2828,7 +2560,6 @@ detect_cputype() {
make_sed() {
T_CFLAGS="$CFLAGS"
T_CXXFLAGS="$CXXFLAGS"
T_LDFLAGS="$LDFLAGS"
SRC_OBJS_DIR="$BASE_SRC_OBJS_DIR/$OBJS_SUBDIR"
@@ -2847,12 +2578,9 @@ make_sed() {
s@!!LIPO!!@$lipo@g;
s@!!CFLAGS!!@$T_CFLAGS@g;
s@!!CFLAGS_BUILD!!@$CFLAGS_BUILD@g;
s@!!CXXFLAGS!!@$T_CXXFLAGS@g;
s@!!CXXFLAGS_BUILD!!@$CXXFLAGS_BUILD@g;
s@!!STRGEN_FLAGS!!@$strgen_flags@g;
s@!!LIBS!!@$LIBS@g;
s@!!LDFLAGS!!@$T_LDFLAGS@g;
s@!!LDFLAGS_BUILD!!@$LDFLAGS_BUILD@g;
s@!!BIN_DIR!!@$BIN_DIR@g;
s@!!ROOT_DIR!!@$ROOT_DIR@g;
s@!!MEDIA_DIR!!@$MEDIA_DIR@g;
@@ -2876,7 +2604,6 @@ make_sed() {
s@!!BINARY_NAME!!@$binary_name@g;
s@!!STRGEN!!@$STRGEN@g;
s@!!ENDIAN_CHECK!!@$ENDIAN_CHECK@g;
s@!!DEPEND!!@$DEPEND@g;
s@!!ENDIAN_FORCE!!@$endian@g;
s@!!STAGE!!@$STAGE@g;
s@!!MAKEDEPEND!!@$makedepend@g;
@@ -3002,50 +2729,22 @@ generate_src_normal() {
generate_src_osx() {
cc_host_orig="$cc_host"
cxx_host_orig="$cxx_host"
CFLAGS_orig="$CFLAGS"
LDFLAGS_orig="$LDFLAGS"
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
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"
cc_host="$cc_host_orig -arch ppc"
cxx_host="$cxx_host_orig -arch ppc"
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"
cc_host="$cc_host_orig -arch i386"
cxx_host="$cxx_host_orig -arch i386"
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//'`"
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"
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
BASE_SRC_OBJS_DIR="$OBJS_DIR/ppc970"
cc_host="$cc_host_orig -arch ppc970"
cxx_host="$cxx_host_orig -arch ppc970"
CFLAGS="$CFLAGS -mtune=970 -mcpu=970 -mpowerpc-gpopt"
generate_src_normal "[PowerPC G5]" "objs/ppc970"
}
generate_src() {
@@ -3080,7 +2779,7 @@ showhelp() {
echo " --os=OS the OS we are compiling for [DETECT]"
echo " DETECT/UNIX/OSX/FREEBSD/OPENBSD/NETBSD/"
echo " MORPHOS/HPUX/BEOS/SUNOS/CYGWIN/MINGW/OS2/"
echo " DOS/WINCE/PSP/HAIKU"
echo " DOS/WINCE/PSP"
echo " --endian=ENDIAN set the endian of the HOST (AUTO/LE/BE)"
echo " --revision=rXXXX overwrite the revision detection."
echo " Use with care!"
@@ -3120,8 +2819,6 @@ showhelp() {
echo " --enable-debug[=LVL] enable debug-mode (LVL=[0123], 0 is release)"
echo " --enable-desync-debug=[LVL] enable desync debug options (LVL=[012], 0 is none"
echo " --enable-profiling enables profiling"
echo " --enable-lto enables GCC's Link Time Optimization (LTO)/ICC's"
echo " Interprocedural Optimization if available"
echo " --enable-dedicated compile a dedicated server (without video)"
echo " --enable-static enable static compile (doesn't work for"
echo " all HOSTs)"
@@ -3152,7 +2849,6 @@ showhelp() {
echo " --with-cocoa enables COCOA video driver (OSX ONLY)"
echo " --with-sdl[=sdl-config] enables SDL video driver support"
echo " --with-zlib[=zlib.a] enables zlib support"
echo " --with-liblzo2[=liblzo2.a] enables liblzo2 support"
echo " --with-png[=libpng-config] enables libpng support"
echo " --with-freetype[=freetype-config]"
echo " enables libfreetype support"
@@ -3163,14 +2859,12 @@ showhelp() {
echo " libicu; can fail as the new name is guessed)"
echo " --with-iconv[=iconv-path] enables iconv support"
echo " --with-psp-config[=psp-config] enables psp-config support (PSP ONLY)"
echo " --disable-builtin-depend disable use of builtin deps finder"
echo " --with-makedepend[=makedepend] enables makedepend support"
echo ""
echo "Some influential environment variables:"
echo " CC C compiler command"
echo " CXX C++ compiler command"
echo " CFLAGS C compiler flags"
echo " CXXFLAGS C++ compiler flags"
echo " WINDRES windres command"
echo " LDFLAGS linker flags, e.g. -L<lib dir> if you"
echo " have libraries in a nonstandard"

13
configure vendored
View File

@@ -1,12 +1,5 @@
#!/bin/sh
# $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/>.
check_path_characters() {
if [ -n "`echo $ROOT_DIR | grep '[^-_A-Za-z0-9\/\\\.:]'`" ]; then
echo "WARNING: The path contains a non-alphanumeric character that might cause"
@@ -80,7 +73,6 @@ fi
TTD="openttd$EXE"
STRGEN="strgen$EXE"
ENDIAN_CHECK="endian_check$EXE"
DEPEND="depend$EXE"
if [ -z "$sort" ]; then
PIPE_SORT="sed s@a@a@"
@@ -115,10 +107,9 @@ AWKCOMMAND='
if ($0 == "DEDICATED" && "'$enable_dedicated'" != "1") { next; }
if ($0 == "COCOA" && "'$with_cocoa'" == "0") { next; }
if ($0 == "DOS" && "'$os'" != "DOS") { next; }
if ($0 == "BEOS" && "'$os'" != "BEOS" &&
"'$os'" != "HAIKU") { next; }
if ($0 == "BEOS" && "'$os'" != "BEOS") { next; }
if ($0 == "WIN32" && "'$os'" != "MINGW" &&
"'$os'" != "CYGWIN" && "'$os'" != "MSVC") { next; }
"'$os'" != "CYGWIN" && "'$os'" != "MSVC" ) { next; }
if ($0 == "MORPHOS" && "'$os'" != "MORPHOS") { next; }
if ($0 == "WINCE" && "'$os'" != "WINCE") { next; }
if ($0 == "MSVC" && "'$os'" != "MSVC") { next; }

View File

@@ -27,7 +27,7 @@ OpenTTD palette. Upon load of the PNG, the mask is loaded too, and overrides
the RGB (not the Alpha) of the original PNG image, and replacing it with a
8bpp color remapped and converted to 32bpp.
Another thing that OpenTTD needs in your png, is 2 tEXt chunks: x_offs and
An other thing that OpenTTD needs in your png, is 2 tEXt chunks: x_offs and
y_offs. This to define the x- and y-offset, of course. Use the tool we supply
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.

100
docs/Manual.txt Normal file
View File

@@ -0,0 +1,100 @@
Welcome to the manual for OpenTTD. The latest release version at the time of writing is 0.3.2.
1 Obtaining OpenTTD.
You can obtain built binaries of OpenTTD for the 4 supported platforms - Win32, Linux,-x86, BeOS 5 and MacOS-X from the projects Sourceforge page, at http://sourceforge.net/projects/openttd . For the non-Win32 builds you will need libSDL.so, libpng.so and zlib.so compiled for your platform. Some builds will include these.
If you use another platform, such as FreeBSD, which has POSIX file i/o and an SDL port, you should be able to build OpenTTD from its source. This is available in the proejcts Subversion repository at svn://svn.openttd.com . The module name is "trunk".
1.1 Building OpenTTD.
Once you have obtained a recent copy of the source, you must build it. Windows build instructions will be provided later.
On UNIX platforms (including OS-X and BeOS), ensure you have a recent GCC (2.9 or above, or 3 and above).You will also need SDL development headers and libraries (libSDL 1.2 or higher). For PNG screenshot support and zlib compressed games, you will need libpng 1.0.12 or higher and zlib 1.2 or higher.
Most UNIX platforms:
First run ./configure, them use make or gmake to compile OpenTTD. You can configure the different compile options via ./configure.
BeOS:
On BeOS, run ./configure and then use jam. There are a variaty of options you can pass to your build tool, these are reported by ./configure.
1.2 Installing OpenTTD.
On Windows, insert your "Transport Tycoon Deluxe for Windows 95" disk. You can use a DOS version, but your graphics will be purple. NB: Even if your version of Transport Tycoon Deluxe ran on Windows 95, it may still be the DOS version. Then run the OpenTTD installer.
On UNIX platforms; decompress your OpenTTD archive, or otherwise run the installer. You should be left with an OpenTTD directory on your system. In this directory, make a subdirectory called 'data', and into this place the sample.cat file and all the .grf files from the install CD of 'Transport Tycoon Deluxe for Windows 95".
(Alternatively you can use the TTD GRF files from the DOS version: TRG1.GRF, TRGC.GRF, TRGH.GRF, TRGI.GRF, TRGT.GRF. A few minor graphical glitches with the DOS graphics remain. E.g. the autorail button in the rail toolbar doesn't look as nice as with the Windows graphics.)
If you want MIDI music, copy the 'gm' folder from the original game directory/CD to the OpenTTD folder.
1.3 Running OpenTTD.
On Windows, you can use a third-party launcher such as OTTD-Launcher to run OpenTTD directly from Explorer. Otherwise, navigate via the command prompt to the correct location and launch ttd.exe.
On Linux, navigate at the shell to the correct location and run ttd.
On BeOS and Mac OS-X, just double click the ttd binary in the Tracker/Finder. You can also start from the shell.
1.4 Configuring OpenTTD
OpenTTD's launch menu contains three configuration menus - Difficulty Settings, Configure Patches and Game Settings. Most of these menus can be configured from within a running game as well.
Difficulty Settings lets you configure settings that affect the difficulty of playing the game. These include when your (computer-controlled) competitors can start building, how many of them there are, and how intelligent they are. You can also control how much the subsidy mutliplier is for subsidised routes, and how stable/volitile the in-game economy is. You can also set how you want the terrain to be configured in a random game.
Game Settings lets you set regional settings - currency, language, town names, etc. It also lets you select the resolution to run the game at, as well as the screenshot format to use.
Configure Patches lets you select which patches to use in the game. This allows you to set the game play to either original Transport Tycoon Deluxe compatible mode or a mode more like playing under TTD-Patch. Patches include building on slopes, longer bridges, longer trains, pre-signals, and TTD-Patch compatible handling of non-stop orders.
2.1 Gameplay
This section of the manual is written with the assumption that you already know the gameplay basics of Transport Tycoon Deluxe, on either DOS or Windows. As you must have the Windows Transport Tycoon Deluxe CD to play OpenTTD, you should either have a paper manual or the complete manual in PDF format on the disk. This section will only cover the gameplay differences from Transport Tycoon Deluxe.
2.2 Station Construction
In OpenTTD, you can build rail stations up to seven squares long and with up to seven platforms. You can also have stations spreading across far larger distances, allowing a large rail station to be connected to a large airport, for instance.
However, there is an even more noticable difference in rail station construction. You may now add platforms and lenght to a station after it has been built, and you may also add platforms of a different type. Users of TTDPatch will be used to this behaviour. But beyond what TTDPatch has, you can make stations of uneven lenght/width, and even ones with perpendicular tracks. You can also delete single tiles or tracks from a station, by holding down Shift before pressing the station construction button.
2.3 Checkpoint Stations
Checkpoint stations (the small blue item in the rail construction window) are small 1x1 stations. They must be built on top of pre-existing track. They do not accept or produce carge of any kind. They exist solely for use as route points. They become useful when dealing with large networks where trains may attempt to route themselves along undesirable or impossible routes. As an alternative to checkpoint stations, you can also direct trains to visit depots along the way. This has the advantage of also servicing the train and hence the train will rarely to never need to depart from its route to be serviced.
2.4 Freeform Rail Laying.
Along side the other rail laying buttons, you will see a button that looks somewhat like a crossing. This is the freeform rail laying tool., and it allows you to drag rail in any direction to lay it. This has a number of advantages, one of the main ones being that it can seriously speed up the laying of diagonal tracks.
2.5 Vehicle Queuing (with Quantum Effects)
This useful addition to OpenTTD means that road vehicles will queue outside a road station to wait for a space rather than attempt to enter it immediately. As anyone who has operated a large road network with busy stations will know, road vehicles quickly pile up inside stations. This will prevent that. The Quantum Effects are down to a bug in the game that means that mutliple vehicles will often only take up one space in the queue. However, this is almost too useful to fix, and should still be there in later versions. This can be enabled/disabled.
2.6 Building On Slopes
This allows you to build roads, rails, stations and depots on slopes. It also allows the construction of trasmitters and lighthouses on slopes in the scenario editor. There are some minor differences between OpenTTD's and TTD-Patch's handling of building on slopes, the main one being that bridges must still have solid land at their endings.
2.7 Long Bridges
OpenTTD allows you to constuct bridges up to 127 squares - half the size of the current map. This means that the crossing of large estuaries, such at the Bristol Channel in the original "West Country 90210" scenario can be acheived with one bridge instead of many bridges with staging points.
2.8 Long trains
OpenTTD allows trains of around 60 cars length, hence allowing you to use 7 square stations to their capacity and beyond.
2.9 Speed Display
This addition to OpenTTD allows you to see the current speed of any vehicle in their status window. Just open the status window of a vehicle and you can see the speed at that given moment. This allows you to see wheter better bridges, flatter/straighter track or more powerful engines could be used to increase the speed of a vehicle
2.10 More Trains, More Ships, More Everything!
Virtually any settings - train numbers, start date, what vehicles your competitors can use, etc - can be set in OpenTTD. Just use the Configure Patches menu on the main screen.
2.11 Network Play
See multiplayer.txt for more info.
2.12 Rail Recycling.
This button, at the end of the train construction window, lets you 'recycle' track to a new type. It also works on bridges, tunnels, stations and depots.
2.13 Canal Building
This button, at the end of the water construction window, lets you build canals and shiplifts across the landscape. These act just like normal water.

View File

@@ -0,0 +1,23 @@
To install OpenTTD, you should drag the game to any location you want and in that folder, you should create a folder called "data". It should contain:
sample.cat
trg1r.grf
trgcr.grf
trghr.grf
trgir.grf
trgtr.grf
(Alternatively you can use the TTD GRF files from the DOS version: TRG1.GRF, TRGC.GRF, TRGH.GRF, TRGI.GRF, TRGT.GRF. A few minor graphical glitches with the DOS graphics remain. E.g. the autorail button in the rail toolbar doesn't look as nice as with the Windows graphics.)
You should also use the data folder to add any custom grf files if you like
if you want music, you can add a GM folder and add all .gm files from TTD inside it
If you want to use the scenarios, you can copy the scenario folder as well. If you already have one, just copy the content so you don't overwrite old ones that have been removed.
In the end, you should have a folder containing:
OpenTTD (the actual game)
data (containing the grf files)
GM (optional for music)
scenario (optional pregenerated maps)
The game adds some items by itself when it runs, like a save folder and a setting file

View File

@@ -1,5 +1,5 @@
Compiling OpenTTD using Microsoft Visual C++
Last updated: 2010-01-03
January 2, 2007
--------------------------------------------
PLEASE READ THE ENTIRE DOCUMENT BEFORE DOING ANY ACTUAL CHANGES!!
@@ -10,7 +10,7 @@ OpenTTD includes projects for MSVC 2005.NET and MSVC 2008.NET. Both will
compile out of the box, providing you have the required libraries/headers;
which ones, see below. There is no support for VS6 or MSVC 2002, or
MSVC 2003.NET. You are therefore strongly encouraged to either upgrade to
MSVC 2008 Express (free) or use GCC.
MSVC 2005 Express (free) or use GCC.
1) REQUIRED FILES
@@ -36,16 +36,16 @@ You need an SVN-client to download the source from subversion:
2) INCLUDES AND LIBRARIES
-------------------------
Put the newly downloaded files in the VC lib\ and include\ directories; where
"C:\Program Files\Microsoft Visual Studio 9.0\VC" is your location of Visual C.
"C:\Program Files\Microsoft Visual Studio 8\VC" is your location of Visual C.
If you are compiling for an x64 system, use the include\ and lib\ directories
from the win64/ folder.
* openttd-useful.zip\include\*
* afxresh.h
to > C:\Program Files\Microsoft Visual Studio 9.0\VC\Include
to > C:\Program Files\Microsoft Visual Studio 8\VC\Include
* openttd-useful.zip\lib\*
to > C:\Program Files\Microsoft Visual Studio 9.0\VC\Lib
to > C:\Program Files\Microsoft Visual Studio 8\VC\Lib
Custom directories might be recommended, check 2.2)
@@ -76,7 +76,14 @@ list, above all others, otherwise compilation will most likely fail!!
3) TTD GRAPHICS FILES
---------------------
See section 4.1 of readme.txt for the required 3rdparty files and how to install them.
Copy the following files from Transport Tycoon Deluxe to the bin/data folder
* sample.cat
* trg1r.grf
* trgcr.grf
* trghr.grf
* trgir.grf
* trgtr.grf
4) COMPILING
@@ -105,4 +112,4 @@ to ask about reasons; or just wait. The problem will most likely solve itself
within a few days as the problem is noticed and fixed.
An up-to-date version of this README can be found on the wiki:
http://wiki.openttd.org/Microsoft_Visual_C%2B%2B_2008_Express_Editions
http://wiki.openttd.org/index.php/MicrosoftVisualCExpress

View File

@@ -11,13 +11,12 @@
<body>
<h3><a name="Landscape">Landscape</a></h3>
<p>Eight attributes (counting &quot;<span style="font-weight: bold;">type_height</span>&quot;) hold the informations about a tile.<BR>
<p>Seven 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
"<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>
"<span style="font-weight: bold;">m5</span>" and "<span style="font-weight: bold;">m6</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.
@@ -53,10 +52,11 @@
</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".
can be either players (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>00</tt>&nbsp; </td><td align=left>current player</td></tr>
<tr><td><tt>01..08</tt>&nbsp; </td><td align=left>AI or network players</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>
@@ -81,7 +81,6 @@
<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>
<li>m4 bits 7..5: type of hedge on the SW border of the tile (1 through 6, or 0=none)</li>
<li>m4 bits 4..2: same as 7..5, but for the SE border</li>
<li>m5 bits 7..5: update counter, incremented on every periodic processing for tile types,
@@ -184,7 +183,7 @@
<td>
<ul>
<li>m1: <a href="#OwnershipInfo">owner</a> of the tile</li>
<li>m2: see signals</li>
<li>m2: see waypoint and signals</li>
<li>m3 bits 7..4: see signals</li>
<li>m3 bits 3..0 = <a name="TrackType">track type</a>:
<table>
@@ -453,9 +452,27 @@
<li>m2 bit 11: opposite track is reserved, too</li>
</ul>
</li>
<li>m5 bit 7 set, bit 6 clear: checkpoint
<ul>
<li>m2: index into the array of waypoints.</li>
<li>m5 bit 0:
<table>
<tr>
<td><tt>0</tt>&nbsp; </td>
<td>in X direction</td>
</tr>
<tr>
<td><tt>1</tt>&nbsp; </td>
<td>in Y direction</td>
</tr>
</table>
</li>
<li>m5 bit 4: pbs reservation state</li>
</ul>
</li>
<li>m5 bit 7 set, bit 6 set: railway depot
<ul>
<li>m2: Depot index</li>
<li>m5 bits 1..0: exit towards
<table>
<tr>
@@ -602,7 +619,7 @@
</table>
</li>
<li>m5 bit 5: set if crossing lights are on</li>
<li>m7 bits 4..0: <a href="#OwnershipInfo">owner</a> of the road type 0 (normal road)</li>
<li>m6 bits 4..0: <a href="#OwnershipInfo">owner</a> of the road type 0 (normal road)</li>
<li>m5 bit 4: pbs reservation state</li>
</ul>
</li>
@@ -611,7 +628,6 @@
<li>m5 bit 7 set, bit 6 clear: road depot
<ul>
<li>m1: <a href="#OwnershipInfo">owner</a> of the depot</li>
<li>m2: Depot index</li>
<li>m5 bits 3..0: exit towards:
<table>
<tr>
@@ -724,7 +740,8 @@
<td>
<ul>
<li>m1: <a href="#OwnershipInfo">owner</a> (normally <tt>10</tt>)</li>
<li>m2 bits 8..6: ground
<li>m2 bits 7..6: ground density
<li>m2 bits 5..4: ground
<table>
<tr>
@@ -746,14 +763,8 @@
<td align=left><tt>3</tt>&nbsp; </td>
<td>on shore (density must be 3)</td>
</tr>
<tr>
<td align=left><tt>4</tt>&nbsp; </td>
<td>on snow with rough land underneed</td>
</tr>
</table>
</li>
<li>m2 bits 5..4: ground density</li>
<li>m2 bits 3..0: update counter, incremented on every periodic processing.<br>
on wraparound the growth status is updated (or, if it's <tt>3</tt>, a random action is taken)</li>
<li>m3 bits 7..0: type of trees:
@@ -824,9 +835,9 @@
<ul>
<li>m1: <a href="#OwnershipInfo">owner</a> of the station</li>
<li>m2: index into the array of stations</li>
<li>m3 bits 7..4: persistent random data for newstations (railway stations/waypoints)</li>
<li>m3 bits 7..4: persistent random data for newstations (train station)</li>
<li>m3 bits 7..4: <a href="#OwnershipInfo">owner</a> of tram tracks (road stop)</li>
<li>m3 bits 3..0: <a href="#TrackType">track type</a> for railway stations/waypoints</li>
<li>m3 bits 3..0: <a href="#TrackType">track type</a> for railway stations</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):
@@ -854,22 +865,6 @@
</td>
</tr>
<tr>
<td nowrap valign=top><tt>00</tt>..<tt>01</tt></td>
<td align=left>waypoints
<table>
<tr>
<td><tt>00</tt>&nbsp; </td>
<td align=left>in X direction</td>
</tr>
<tr>
<td><tt>01</tt>&nbsp; </td>
<td align=left>in Y direction</td>
</tr>
</table>
</td>
</tr>
<tr>
<td nowrap valign=top><tt>00</tt>..<tt>8F</tt></td>
<td align=left>all airports</td>
@@ -877,7 +872,7 @@
<tr>
<td nowrap valign=top><tt>00</tt>..<tt>05</tt>&nbsp; </td>
<td align=left>road stops
<td align=left>road stops:
<table>
<tr>
<td><tt>00</tt>&nbsp; </td>
@@ -940,13 +935,13 @@
</tr>
</table>
</li>
<li>m6 bits 5..3: the station type (rail, airport, truck, bus, oilrig, dock, buoy, waypoint)</li>
<li>m6 bit 2: pbs reservation state for railway stations/waypoints</li>
<li>m6 bits 5..3: the station type (rail, airport, truck, bus, oilrig, dock, buoy)</li>
<li>m6 bit 2: pbs reservation state for railway stations</li>
<li>m6 bits 1..0 : <a href="#tropic_zone">Tropic zone definition</a></li>
<li>m7 bits 4..0: <a href="#OwnershipInfo">owner</a> of road (road stops)</li>
<li>m7 bits 7..6: present road types (road stops)</li>
<li>m7: animation frame (railway stations/waypoints)</li>
<li>m7: animation frame (train station)</li>
</ul>
</td>
</tr>
@@ -960,7 +955,6 @@
<td>
<ul>
<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:

View File

@@ -68,7 +68,7 @@ the array so you can quickly see what is used and what is not.
<td class="bits">XXXX XXXX</td>
<td class="bits"><span class="option">~~~~ ~~~~</span></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"><span class="free">OOOO OOOO</span></td>
<td class="bits">XXXX XX<span class="free">OO</span></td>
<td class="bits">XXXX XXXX</td>
<td class="bits">XX<span class="free">OO OO</span>XX</td>
@@ -79,14 +79,14 @@ the array so you can quickly see what is used and what is not.
<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"><span class="free">OOOO</span> XXXX</td>
<td class="bits">-inherit-</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>
<tr>
<td rowspan=3>1</td>
<td rowspan=4>1</td>
<td class="caption">rail</td>
<td class="bits">XXXX XXXX</td>
<td class="bits"><span class="option">~~~</span>X XXXX</td>
@@ -112,13 +112,24 @@ the array so you can quickly see what is used and what is not.
<td class="caption">depot</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 OOOO OOOO</span></td>
<td class="bits"><span class="free">OOOO</span> <span class="option">~~</span>XX</td>
<td class="bits"><span class="free">OOOO</span> XXXX</td>
<td class="bits">XX<span class="free">O</span>X <span class="free">O</span>XXX</td>
<td class="bits">XX<span class="free">OO OO</span>XX</td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
</tr>
<tr>
<td class="caption">waypoint</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</span> <span class="option">~~</span>XX</td>
<td class="bits"><span class="free">OOOO</span> XXXX</td>
<td class="bits">XX<span class="free">O</span>X <span class="free">OOO</span>X</td>
<td class="bits">XX<span class="free">OO OO</span>XX</td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
</tr>
<tr>
<td rowspan=3>2</td>
<td class="caption">road</td>
@@ -146,7 +157,7 @@ the array so you can quickly see what is used and what is not.
<td class="caption">road depot</td>
<td class="bits">-inherit-</td>
<td class="bits">-inherit-</td>
<td class="bits">XXXX XXXX XXXX XXXX</td>
<td class="bits">-inherit-</td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
<td class="bits"><span class="free">OOOO OOOO</span></td>
<td class="bits">XX<span class="free">OO OO</span>XX</td>
@@ -170,7 +181,7 @@ the array so you can quickly see what is used and what is not.
<td class="caption">trees</td>
<td class="bits">XXXX XXXX</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="free">OOOO OOOO</span> XXXX XXXX</td>
<td class="bits"><span class="option">~~</span>XX XXXX</td>
<td class="bits">XXXX XX<span class="free">OO</span></td>
<td class="bits">XX<span class="free">OO O</span>XXX</td>
@@ -178,7 +189,7 @@ the array so you can quickly see what is used and what is not.
<td class="bits"><span class="free">OOOO OOOO</span></td>
</tr>
<tr>
<td rowspan=7>5</td>
<td rowspan=6>5</td>
<td class="caption">rail station</td>
<td class="bits">XXXX XXXX</td>
<td class="bits"><span class="option">~~~</span>X XXXX</td>
@@ -189,27 +200,16 @@ the array so you can quickly see what is used and what is not.
<td class="bits"><span class="free">OO</span>XX XXXX</td>
<td class="bits">XXXX XXXX</td>
</tr>
<tr>
<td class="caption">rail waypoint</td>
<td class="bits">-inherit-</td>
<td class="bits">-inherit-</td>
<td class="bits">-inherit-</td>
<td class="bits">-inherit-</td>
<td class="bits">-inherit-</td>
<td class="bits">-inherit-</td>
<td class="bits">-inherit-</td>
<td class="bits">-inherit-</td>
</tr>
<tr>
<td class="caption">road stop</td>
<td class="bits">-inherit-</td>
<td class="bits">-inherit-</td>
<td class="bits">-inherit-</td>
<td class="bits">XXXX <span class="free">OOOO</span></td>
<td class="bits">XXXX XXXX</td>
<td class="bits"><span class="option">~~~~ ~~~~</span></td>
<td class="bits"><span class="option">~~~~ ~</span>XXX</td>
<td class="bits"><span class="free">OO</span>XX XXXX</td>
<td class="bits">XX<span class="free">O</span>X XXXX</td>
<td class="bits">XXXX X<span class="free">O</span>XX</td>
</tr>
<tr>
<td class="caption">dock</td>
@@ -282,7 +282,7 @@ the array so you can quickly see what is used and what is not.
<td class="caption">shipdepot</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 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>

View File

@@ -31,15 +31,7 @@ shortname = XMPL
; the version of this graphics set (read as single integer)
version = 0
; a fairly short description of the set
; By adding '.<iso code>' you can translate the description.
; Note that OpenTTD first tries the full ISO code, then the first
; two characters and then uses the fallback (no '.<iso code>').
; The ISO code matching is case sensitive!
; So en_US will be used for en_GB if no en_GB translation is added.
; As a result the below example has 'howdie' for en_US and en_GB but
; 'foo' for all other languages.
description = foo
description.en_US = howdie
; palette used by the set; either DOS or Windows
palette = DOS

View File

@@ -1,106 +0,0 @@
;
; Example file for the OpenTTD Base Music replacement sets.
; This file consists of basically two different parts:
; * metadata
; * information about the files/songs
;
; Metadata contains information about the name and version
; of the music set.
;
; == Getting started ==
; - you can't add comments after values
; - you have to fill the MD5 checksum for each file
; - you may not miss any of the metadata or files items
; - `openttd -h` lists all music replacement sets it found to be correct
; - `openttd -d grf=1` shows warnings/errors when parsing an .obm file
; - `openttd -M <name>` starts OpenTTD with the given set (case sensitive)
; - adding `musicset = <name>` to the misc section of openttd.cfg makes
; OpenTTD start with that sound set by default
; - there is a command line tool for all platforms called md5sum that can
; create the MD5 checksum you need.
; - all files specified in this file are search relatively to the path where
; this file is found, i.e. if the sound files are in a subdir you have
; to add that subdir to the names in this file to! It will NOT search for
; a file named like specified in here.
[metadata]
; the name of the pack, preferably less than 16 characters
name = example
; the short name (4 characters), used to identify this set
shortname = XMPL
; the version of this sound set (read as single integer)
version = 0
; a fairly short description of the set
; By adding '.<iso code>' you can translate the description.
; Note that OpenTTD first tries the full ISO code, then the first
; two characters and then uses the fallback (no '.<iso code>').
; The ISO code matching is case sensitive!
; So en_US will be used for en_GB if no en_GB translation is added.
; As a result the below example has 'howdie' for en_US and en_GB but
; 'foo' for all other languages.
description = foo
description.en_US = howdie
; The files section lists the files that replace songs.
; The file names are case sensitive.
; You can have empty file names; in that case no song will be loaded
; for that 'entry'.
[files]
; The theme song for OpenTTD
theme = THEME_SONG.GM
; The songs in the 'old style' category
old_0 =
old_1 =
old_2 =
old_3 =
old_4 =
old_5 =
old_6 =
old_7 =
old_8 =
old_9 =
; The songs in the 'new style' category
new_0 =
new_1 =
new_2 =
new_3 =
new_4 =
new_5 =
new_6 =
new_7 =
new_8 =
new_9 =
; The songs in the 'ezy street' category
ezy_0 =
ezy_1 =
ezy_2 =
ezy_3 =
ezy_4 =
ezy_5 =
ezy_6 =
ezy_7 =
ezy_8 =
ezy_9 =
; The names section lists the song names for the given file name.
; Note that the list of files is case sensitive. Each file listed in the
; files section must be listed here with it's song name, otherwise you
; will get a lot of warnings when starting OpenTTD.
[names]
THEME_SONG.GM = Tycoon DELUXE Theme
; The md5s section lists the MD5 checksum for the files that replace them.
; Note that the list of files is case sensitive. Each file listed in the
; files section must be listed here with it's MD5 checksum, otherwise you
; will get a lot of warnings when starting OpenTTD.
[md5s]
THEME_SONG.GM = 45cfec1b9d8c7a0ad45e755833cbf221
; The origin section provides the possibility to put and extra line into
; the warning that a file is missing/corrupt. This can be used to tell
; them where to find it. It works on the filename specified in the
; files section and if that is not found it will fall back to the default
; as shown below here.
[origin]
default = You can find it on your Transport Tycoon Deluxe CD-ROM.
THEME_SONG.GM = You can find it also on your Transport Tycoon Deluxe CD-ROM.

View File

@@ -1,64 +0,0 @@
;
; Example file for the OpenTTD Base Sound replacement sets.
; This file consists of basically two different parts:
; * metadata
; * information about the files
;
; Metadata contains information about the name and version
; of the sound set.
;
; == Getting started ==
; - you can't add comments after values
; - you have to fill the MD5 checksum for each file
; - you may not miss any of the metadata or files items
; - `openttd -h` lists all sound replacements sets it found to be correct
; - `openttd -d grf=1` shows warnings/errors when parsing an .obs file
; - `openttd -S <name>` starts OpenTTD with the given set (case sensitive)
; - adding `soundsset = <name>` to the misc section of openttd.cfg makes
; OpenTTD start with that sound set by default
; - there is a command line tool for all platforms called md5sum that can
; create the MD5 checksum you need.
; - all files specified in this file are search relatively to the path where
; this file is found, i.e. if the sound files are in a subdir you have
; to add that subdir to the names in this file to! It will NOT search for
; a file named like specified in here.
[metadata]
; the name of the pack, preferably less than 16 characters
name = example
; the short name (4 characters), used to identify this set
shortname = XMPL
; the version of this sound set (read as single integer)
version = 0
; a fairly short description of the set
; By adding '.<iso code>' you can translate the description.
; Note that OpenTTD first tries the full ISO code, then the first
; two characters and then uses the fallback (no '.<iso code>').
; The ISO code matching is case sensitive!
; So en_US will be used for en_GB if no en_GB translation is added.
; As a result the below example has 'howdie' for en_US and en_GB but
; 'foo' for all other languages.
description = foo
description.en_US = howdie
; The files section lists the files that replace sprites.
; The file names are case sensitive.
[files]
; The file with the samples. Must contain exactly 73 samples.
samples = SAMPLES.CAT
; The md5s section lists the MD5 checksum for the files that replace them.
; Note that the list of files is case sensitive. Each file listed in the
; files section must be listed here with it's MD5 checksum, otherwise you
; will get a lot of warnings when starting OpenTTD.
[md5s]
SAMPLES.CAT = 422ea3dd074d2859bb51639a6e0e85da
; The origin section provides the possibility to put and extra line into
; the warning that a file is missing/corrupt. This can be used to tell
; them where to find it. It works on the filename specified in the
; files section and if that is not found it will fall back to the default
; as shown below here.
[origin]
default = You can find it on your Transport Tycoon Deluxe CD-ROM.
SAMPLES.CAT = You can find it also on your Transport Tycoon Deluxe CD-ROM.

View File

@@ -1,6 +1,6 @@
.\" Hey, EMACS: -*- nroff -*-
.\" Please adjust this date whenever revising the manpage.
.Dd Jan 18, 2010
.Dd Feb 05, 2009
.Dt OPENTTD 6
.Sh NAME
.Nm openttd
@@ -11,7 +11,7 @@
.Op Fl a Ar ai
.Op Fl b Ar blitter
.Op Fl c Ar config_file
.Op Fl d Ar [level | cat=lvl[,...]]
.Op Fl d Ar [level | cat=lvl[, ...]]
.Op Fl D Ar [host][:port]
.Op Fl g Ar [savegame]
.Op Fl G Ar seed
@@ -19,13 +19,9 @@
.Op Fl I Ar graphicsset
.Op Fl l Ar host[:port]
.Op Fl m Ar driver
.Op Fl M Ar musicset
.Op Fl n Ar host[:port][#player]
.Op Fl p Ar password
.Op Fl P Ar password
.Op Fl r Ar widthxheight
.Op Fl s Ar driver
.Op Fl S Ar soundset
.Op Fl t Ar year
.Op Fl v Ar driver
.Sh OPTIONS
@@ -33,18 +29,16 @@
.It Fl a Ar ai
Set the AI, see
.Fl h
for a full list
.It Fl b Ar blitter
Set the blitter, see
.Fl h
for a full list
.It Fl c Ar config_file
Use 'config_file' instead of 'openttd.cfg'
.It Fl d Ar [level]
Set debug verbosity for all categories to
.Ar level
or 1 if omitted
.It Fl d Ar cat=level[,...]
.It Fl d Ar cat=level[, ...]
Set debug verbosity for a specific category
.It Fl D Ar [host][:port]
Start a dedicated server. Sets network debug level to 6. If you want to change this, use
@@ -56,59 +50,38 @@ Seed the pseudo random number generator
.It Fl e
Start in world editor mode
.It Fl f
Fork into background (dedicated server only, see
Fork into background (dedicated only, see
.Fl D )
.It Fl g Ar [savegame]
Load
.Ar savegame
at start or start a new game if omitted. The
.Ar savegame
must be either absolute or relative to the current path or one of the search paths.
at start or start a new game if omitted
.It Fl h
Display a summary of all options and lists all the available AIs, blitters, sound, music and video drivers, graphics sets and sound sets.
Display a summary of all options and available AIs, blitters, drivers and graphic sets
.It Fl i Ar palette
Set the palette. '0' for the DOS palette, '1' for the Windows palette and '2' to autodetect (default).
.sp
The palette depends where the base graphics set originated from. If it came from the Transport Tycoon Deluxe for DOS it has the DOS palette, if it came from the Windows version of Transport Tycoon Deluxe it has the Windows palette. All others likely have the Windows palette as that is the most used palette.
Set the palette, see
.Fl h
.It Fl I Ar graphicsset
Set the graphics set, see
.Fl h
for a full list
.It Fl l Ar host[:port]
Redirect DEBUG(), See
.Fl D
.It Fl m Ar driver
Set the music driver, see
.Fl h
for a full list
.It Fl M Ar musicset
Set the music set, see
.Fl h
for a full list
.It Fl n Ar host[:port][#player]
Join a network game, optionally specify a port to connect to and player to play as
.It Fl p Ar password
Password used to join server. Only useful with
.Fl n
.It Fl P Ar password
Password used to join company. Only useful with
.Fl n
Join a network game, optionally specify player to play as and port to connect to
.It Fl r Ar widthxheight
Set the resolution
.It Fl s Ar driver
Set the sound driver, see
.Fl h
for a full list
.It Fl S Ar soundset
Set the sound set, see
.Fl h
for a full list
.It Fl t Ar year
Set the starting year
.It Fl v Ar driver
Set the video driver, see
.Fl h
for a full list
.It Fl x
Do not automatically save to config file on exit
.El

View File

@@ -2,12 +2,6 @@
# $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/>.
# Arguments given? Show help text.
if [ "$#" != "0" ]; then
cat <<EOF

View File

@@ -1,6 +1,6 @@
OpenTTD's known bugs
Last updated: 2010-01-21
Release version: 1.0.0-beta3
Last updated: 2009-12-01
Release version: 0.7.4
------------------------------------------------------------------------
@@ -34,12 +34,25 @@ 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.
- 3447 [OSX] SDL port is unuseable
- 3194 [OSX] Full screen strobing/flickering
- 2782 [OSX] Port hopelessly outdated
- 3198 [OSX] "Could not get system colour space" error on some Mac OS X 10.6
- 3194 [OSX] Full screen 'strobing' on some Mac OS X 10.6
- 3190 [OSX] Compiling fails on some Mac OS X 10.6
- 3159 [NewGRF] Autoreplace resets (or does not keep) value of variable F2
- 3057 Road vehicle sometimes 'forget' the need for servicing
- 3040 Not all alternatives are always shown in the "Join station" list
- 2955 With path signals depots are less likely to be visited
- 2891 Ignore signal does not keep the train running when in path signalled block till the next signal
- 2769 No offer for buying bankrupt AIs
- 2616 [NewGRF] Cloning creates vehicles with invalid subcargos
- 2613 [NewGRF] House property 15 does not work
- 2585 [OSX] OS' mouse pointer showing
- 2484 [OSX] Cannot enter CJK characters
- 2427 Vehicle owner gets paid for whole cargo feeder share
- 1944 Road vehicles not picking empty drivethrough platform
- 1762 Strange Autoreplace behaviour
- 1495 Long vehicles might block multistop drivethrough stations
- 1140 [OSX] Not smooth moving map with touchpad
- 1072 Text overflows in several windows
3) Known bugs that will not be solved:
@@ -90,17 +103,6 @@ Lost trains ignore (block) exit signals [FS#1473]
amount of work needed to write a system that prevents the lost trains
from taking the wrong direction.
Vehicle owner of last transfer leg gets paid for all [FS#2427]
When you make a transfer system that switches vehicle owners. This
is only possible with 'industry stations', e.g. the oil rig station
the owner of the vehicle that does the final delivery gets paid for
the whole trip. It is not shared amongst the different vehicle
owners that have participated in transporting the cargo.
This sharing is not done because it would enormously increase the
memory and CPU usage in big games for something that is happening
in only one corner case. We think it is not worth the effort until
sharing of stations is an official feature.
Forbid 90 degree turns does not work for crossing PBS paths [FS#2737]
When you run a train through itself on a X junction with PBS turned on
the train will not obey the 'forbid 90 degree turns' setting. This is
@@ -136,28 +138,11 @@ Extreme CPU usage/hangs when using SDL and PulseAudio [FS#3294]
OpenTTD can be extremely slow/use a lot of CPU when the sound is
played via SDL and then through PulseAudio's ALSA wrapper. Under the
same configuration OpenTTD, or rather SDL, might hang when exiting
the game. This problem is seen most in Ubuntu 9.04 and higher.
This is because recent versions of the PulseAudio sound server are
configured to use timer-based audio scheduling rather than
interrupt-based audio scheduling. Configuring PulseAudio to force
use of interrupt-based scheduling may resolve sound problems for
some users. Under recent versions of Ubuntu Linux (9.04 and higher)
this can be accomplished by changing the following line in the
/etc/pulsa/default.pa file:
load-module module-udev-detect
to
load-module module-udev-detect tsched=0
Note that PulseAudio must be restarted for changes to take effect.
Older versions of PulseAudio may use the module-hal-detect module
instead. Adding tsched=0 to the end of that line will have a similar
effect.
Another possible solution is selecting the "pulse" backend of SDL
by either using "SDL_AUDIODRIVER=pulse openttd" at the command
prompt or installing the 'libsdl1.2debian-pulseaudio' package from
Ubuntu's Universe repository. For other distributions a similar
package needs to be installed.
the game. This setup seems to be the default configuration for
Ubuntu 9.04 and later. For Ubuntu this issue can be solved by
installing the 'libsdl1.2debian-pulseaudio' package from Ubuntu's
Universe repository. For other distributions a similar package needs
to be installed.
OpenTTD not properly resizing with SDL on X [FS#3305]
Under some X window managers OpenTTD's window does not properly

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 79 KiB

View File

@@ -1,265 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.0"
width="256"
height="256"
id="svg2"
inkscape:version="0.47 r22583"
sodipodi:docname="openttd.svg">
<metadata
id="metadata42">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1177"
id="namedview40"
showgrid="false"
inkscape:zoom="2.8284271"
inkscape:cx="163.74991"
inkscape:cy="132.32268"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg2" />
<defs
id="defs4">
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 124 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="256 : 124 : 1"
inkscape:persp3d-origin="128 : 82.666667 : 1"
id="perspective44" />
<linearGradient
id="linearGradient3421">
<stop
style="stop-color:#fe7600;stop-opacity:1"
offset="0"
id="stop3423" />
<stop
style="stop-color:#f2b26d;stop-opacity:1"
offset="1"
id="stop3425" />
</linearGradient>
<linearGradient
id="linearGradient3269">
<stop
style="stop-color:#ffffff;stop-opacity:1"
offset="0"
id="stop3271" />
<stop
style="stop-color:#ffffff;stop-opacity:0"
offset="1"
id="stop3273" />
</linearGradient>
<linearGradient
x1="312.62323"
y1="468.58658"
x2="315.21729"
y2="471.18063"
id="linearGradient3275"
xlink:href="#linearGradient3269"
gradientUnits="userSpaceOnUse" />
<linearGradient
x1="312.62323"
y1="468.58658"
x2="315.21729"
y2="471.18063"
id="linearGradient3289"
xlink:href="#linearGradient3269"
gradientUnits="userSpaceOnUse" />
<linearGradient
x1="312.62323"
y1="468.58658"
x2="315.21729"
y2="471.18063"
id="linearGradient3308"
xlink:href="#linearGradient3269"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.7071068,-0.7071068,0.7071068,0.7071068,-266.24277,420.94154)" />
<linearGradient
x1="312.62323"
y1="468.58658"
x2="315.21729"
y2="471.18063"
id="linearGradient3326"
xlink:href="#linearGradient3269"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.7071068,-0.7071068,0.7071068,0.7071068,-266.24277,420.94154)" />
<linearGradient
x1="312.62323"
y1="468.58658"
x2="315.21729"
y2="471.18063"
id="linearGradient3336"
xlink:href="#linearGradient3269"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(0.3591922,-0.1487874)" />
<linearGradient
x1="312.62323"
y1="468.58658"
x2="315.21729"
y2="471.18063"
id="linearGradient3406"
xlink:href="#linearGradient3269"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-2.2643187,40.455238)" />
<linearGradient
x1="133.3282"
y1="156.16792"
x2="117.66125"
y2="78.463249"
id="linearGradient3431"
xlink:href="#linearGradient3421"
gradientUnits="userSpaceOnUse" />
<linearGradient
x1="133.3282"
y1="156.16792"
x2="117.66125"
y2="78.463249"
id="linearGradient3488"
xlink:href="#linearGradient3421"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(2,2)" />
<filter
id="filter3566"
color-interpolation-filters="sRGB">
<feGaussianBlur
id="feGaussianBlur3568"
stdDeviation="1.2236964"
inkscape:collect="always" />
</filter>
<linearGradient
x1="136.3282"
y1="151.16792"
x2="117.66125"
y2="78.463249"
id="linearGradient3571"
xlink:href="#linearGradient3421"
gradientUnits="userSpaceOnUse" />
</defs>
<g
transform="translate(-246.4375,-405.5443)"
id="layer1">
<path
d="m 127.34375,3.46875 c -0.48316,0.02376 -0.94805,0.22615 -1.3125,0.59375 L 7.65625,122.40625 c -0.78094,0.7811 -0.78094,2.06266 0,2.84375 L 25.25,142.84375 5,163.09375 c -0.78094,0.7811 -0.78094,2.03141 0,2.8125 l 80.40625,80.40625 c 0.7811,0.78094 2.03141,0.78093 2.8125,0 l 20.25,-20.25 17.59375,17.59375 c 0.7811,0.78093 2.03141,0.78093 2.8125,0 l 17.5625,-17.5625 20.21875,20.21875 c 0.78108,0.78094 2.06265,0.78093 2.84375,0 l 80.375,-80.40625 c 0.78094,-0.78109 0.78094,-2.0314 0,-2.8125 L 229.65625,142.875 247.25,125.28125 c 0.78094,-0.7811 0.78094,-2.06265 0,-2.84375 L 128.875,4.0625 c -0.0421,-0.04625 -0.11001,-0.11415 -0.15625,-0.15625 -0.39876,-0.33006 -0.89184,-0.46126 -1.375,-0.4375 z m -6,43.5625 14.15625,0 0,19.75 c 0.01,0.435733 0.30048,0.815 0.71875,0.9375 2.36672,0.715663 4.34765,1.46009 5.9375,2.1875 1.57854,0.722523 3.76284,1.94 6.53125,3.65625 0.23423,0.144983 0.51508,0.19598 0.78125,0.125 0.26615,-0.07098 0.49406,-0.25764 0.625,-0.5 l 2.875,-5.40625 7.75,0 9.34375,36.21875 -13.625,3.90625 c -4.11145,-10.161057 -10.59377,-17.79909 -19.46875,-22.625 -0.31359,-0.166457 -0.69786,-0.15518 -1,0.03125 -0.30216,0.186431 -0.47688,0.52006 -0.46875,0.875 l 0,24.03125 c 0.01,0.43573 0.30048,0.815 0.71875,0.9375 10.93974,3.10986 18.88772,6.27714 23.75,9.4375 4.89952,3.1848 8.58915,7.0982 11.15625,11.71875 2.57543,4.63598 3.84364,9.41467 3.84375,14.375 -1.1e-4,5.33303 -1.49612,10.44021 -4.5625,15.40625 -3.05188,4.94228 -7.57932,9.1061 -13.59375,12.46875 -5.99929,3.35409 -12.74816,5.29505 -20.375,5.84375 -0.52771,0.0331 -0.93848,0.47125 -0.9375,1 l 0,19.25 -14.15625,0 0,-20.65625 c 0.0115,-0.47702 -0.31562,-0.89572 -0.78125,-1 -6.24994,-1.46738 -12.82661,-4.66999 -19.71875,-9.6875 -0.25021,-0.18733 -0.57446,-0.24211 -0.875,-0.15625 -0.300532,0.0859 -0.54278,0.30252 -0.65625,0.59375 l -3.75,9.25 -7.625,0 -7.875,-42.34375 14.3125,-3.4375 c 2.78387,6.00776 5.47545,10.86469 8.09375,14.4375 2.72545,3.71918 5.79951,6.95217 9.21875,9.6875 2.53873,2.0772 5.32819,3.64369 8.34375,4.6875 0.30262,0.0995 0.64703,0.0602 0.90625,-0.125 0.25923,-0.18516 0.40226,-0.49396 0.40625,-0.8125 l 0,-27.875 c 0.008,-0.43878 -0.2706,-0.83165 -0.6875,-0.96875 -11.9575,-4.0043 -20.14727,-7.50583 -24.4375,-10.375 C 91.88074,118.97403 88.49102,115.30727 86,110.8125 83.50306,106.30724 82.24999,101.8073 82.25,97.25 c -1e-5,-5.212767 1.5369,-10.24246 4.65625,-15.125 3.11104,-4.869387 7.41684,-8.74009 12.96875,-11.625 5.52685,-2.871687 12.35433,-4.48215 20.5,-4.8125 0.54002,-0.01694 0.96896,-0.45971 0.96875,-1 l 0,-17.65625 z m -2,37.375 c -3.80484,0.61143 -6.64239,1.484763 -8.125,2.53125 -2.55269,1.82341 -3.68754,3.817503 -3.6875,6.21875 -3e-5,1.99888 0.82821,3.916143 2.6875,5.90625 1.5957,1.70818 4.79074,3.41885 9.125,5.03125 l 0,-19.6875 z m 18.15625,55.125 0,22.40625 c 3.64443,-0.60429 6.6344,-1.65745 8.8125,-3.25 2.37481,-1.73646 3.46868,-3.90374 3.46875,-6.875 -7e-5,-2.6212 -0.83434,-4.7944 -2.625,-6.6875 -2.27356,-2.32082 -5.55946,-4.16441 -9.65625,-5.59375 z"
transform="translate(247,408.36218)"
style="fill:#000000;fill-opacity:0.69019608;fill-rule:evenodd;stroke:none;filter:url(#filter3566)"
id="path3453" />
<path
d="m 125.4375,3.46875 -118.375,118.375 118.375,118.375 118.40625,-118.375 L 125.4375,3.46875 z m -7.09375,40.5625 16.15625,0 0,20.75 c 2.39847,0.725255 4.41692,1.465836 6.0625,2.21875 1.64544,0.753136 3.86718,1.989686 6.65625,3.71875 l 3.15625,-5.9375 9.125,0 9.78125,37.90625 -15.375,4.4375 C 149.89001,96.694255 143.4247,89.040435 134.5,84.1875 l 0,24.03125 c 10.98855,3.12374 18.97973,6.29945 24,9.5625 5.02009,3.26318 8.85036,7.29338 11.5,12.0625 2.64944,4.76921 3.96864,9.71205 3.96875,14.84375 -1.1e-4,5.52222 -1.56729,10.83367 -4.71875,15.9375 -3.15166,5.10387 -7.80181,9.38205 -13.9375,12.8125 -6.13586,3.43045 -13.05918,5.41095 -20.8125,5.96875 l 0,20.25 -16.15625,0 0,-21.65625 c -6.41472,-1.50606 -13.12131,-4.79903 -20.09375,-9.875 l -4,9.875 -9.125,0 -8.21875,-44.09375 16,-3.84375 c 2.900524,6.35894 5.697538,11.34646 8.375,15 2.6774,3.65361 5.68442,6.8226 9.03125,9.5 2.45427,2.0081 5.13065,3.52723 8.03125,4.53125 l 0,-27.875 c -11.9927,-4.01609 -20.225144,-7.51572 -24.6875,-10.5 C 89.193843,117.73459 85.690854,113.94229 83.125,109.3125 80.559118,104.68285 79.249989,99.991365 79.25,95.25 c -9e-6,-5.410553 1.605147,-10.635971 4.8125,-15.65625 3.207321,-5.02008 7.654184,-9.01231 13.34375,-11.96875 5.68951,-2.956214 12.68204,-4.602705 20.9375,-4.9375 l 0,-18.65625 z m 0,37.15625 c -4.57399,0.613679 -7.82228,1.598881 -9.71875,2.9375 -2.73325,1.952387 -4.09379,4.29813 -4.09375,7.03125 -4e-5,2.287057 0.98853,4.4742 2.96875,6.59375 1.98014,2.119711 5.6004,4.09012 10.84375,5.875 l 0,-22.4375 z m 16.15625,54.875 0,25.125 c 4.35076,-0.55777 7.81241,-1.79097 10.40625,-3.6875 2.59369,-1.8965 3.87492,-4.45224 3.875,-7.6875 -8e-5,-2.84474 -0.95404,-5.31111 -2.90625,-7.375 -2.67751,-2.73317 -6.46645,-4.8689 -11.375,-6.375 z"
transform="translate(247,408.36218)"
style="fill:url(#linearGradient3571);fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
id="rect3418" />
<rect
width="113.67383"
height="30.562906"
x="581.44257"
y="195.29802"
transform="matrix(0.7071068,0.7071068,-0.7071068,0.7071068,0,0)"
style="fill:#6ad636;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
id="rect3277" />
<path
d="m 271.41033,548.04524 -21.3701,21.3701 c -0.51722,0.5028 -0.72366,1.24514 -0.54025,1.94279 0.18341,0.69764 0.72825,1.24248 1.42588,1.42589 0.69765,0.1834 1.44,-0.023 1.9428,-0.54026 l 21.91555,-21.91555 -3.37388,-2.28297 z"
style="opacity:0.7;fill:url(#linearGradient3406);fill-opacity:1;fill-rule:evenodd;stroke:none"
id="path3404" />
<rect
width="167.41394"
height="167.41394"
x="554.57251"
y="27.848526"
transform="matrix(0.7071068,0.7071068,-0.7071068,0.7071068,0,0)"
style="fill:none;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
id="rect2251" />
<path
d="m 373.71159,410.23833 c -0.81035,-0.62925 -1.9654,-0.54334 -2.67374,0.19888 l -118.37411,118.3741 c -0.51722,0.5028 -0.72366,1.24514 -0.54025,1.94279 0.18341,0.69764 0.72825,1.24248 1.42588,1.42589 0.69765,0.1834 1.44,-0.023 1.9428,-0.54026 l 118.3741,-118.3741 c 0.42126,-0.40199 0.64643,-0.96759 0.61671,-1.54911 -0.0297,-0.58152 -0.31136,-1.12123 -0.77139,-1.47819 l 0,0 z"
style="opacity:0.7;fill:url(#linearGradient3336);fill-opacity:1;fill-rule:evenodd;stroke:none"
id="path3256" />
<rect
width="113.67384"
height="30.56292"
x="54.718613"
y="-752.58502"
transform="matrix(-0.7071068,0.7071068,-0.7071068,-0.7071068,0,0)"
style="fill:#6ad636;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:4.00000048;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
id="rect3279" />
<rect
width="11.142811"
height="14.090264"
x="602.29895"
y="203.53435"
transform="matrix(0.7071068,0.7071068,-0.7071068,0.7071068,0,0)"
style="fill:none;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
id="rect3291" />
<rect
width="11.142811"
height="8.5145016"
x="622.57172"
y="203.53435"
transform="matrix(0.7071068,0.7071068,-0.7071068,0.7071068,0,0)"
style="fill:none;stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
id="rect3293" />
<path
d="m 308.55497,616.32265 -7.87916,-7.87915 9.96333,-9.96333 7.87916,7.87916"
style="fill:none;stroke:#000000;stroke-width:4;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0"
id="rect3295" />
<path
d="m 315.01081,622.77849 9.96332,-9.96333 7.87916,7.87916 -9.96333,9.96332"
style="fill:none;stroke:#000000;stroke-width:4;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0"
id="rect3297" />
<path
d="m 445.04627,584.86337 1.41421,1.41422 9.96579,9.96578 1.41421,1.41422 1.41421,-1.41422 6.47445,-6.47444 -2.82843,-2.82843 2.82843,-2.82843 -7.13736,-7.13736 -2.82843,2.82843 -2.82842,-2.82843 -6.47445,6.47445 -1.41421,1.41421 z m 5.65685,0 5.06023,-5.06023 7.13736,7.13736 -5.06023,5.06023 -7.13736,-7.13736 z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
id="rect3347" />
<path
d="m 427.09359,605.64776 -7.87916,7.87915"
style="fill:none;stroke:#000000;stroke-width:4;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0"
id="rect3343" />
<path
d="m 433.11734,619.55066 -9.96333,-9.96333"
style="fill:none;stroke:#000000;stroke-width:4;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0"
id="path3352" />
<path
d="m 441.42857,591.31278 -7.87916,7.87916"
style="fill:none;stroke:#000000;stroke-width:4;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0"
id="path3364" />
<path
d="m 447.45232,605.21568 -9.96333,-9.96333"
style="fill:none;stroke:#000000;stroke-width:4;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0"
id="path3366" />
<path
d="m 296.30415,584.14518 -9.96332,9.96333"
style="fill:none;stroke:#000000;stroke-width:4;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0"
id="rect3380" />
<path
d="m 306.75446,602.36485 7.87915,7.87916"
style="fill:none;stroke:#000000;stroke-width:4;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0"
id="path3384" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 15 KiB

View File

@@ -1,33 +1,3 @@
openttd (1.0.0~beta3) unstable; urgency=low
* New upstream release.
-- Matthijs Kooijman <matthijs@stdin.nl> Thu, 21 Jan 2010 00:01:02 +0100
openttd (1.0.0~beta2) unstable; urgency=low
* New upstream release.
-- Matthijs Kooijman <matthijs@stdin.nl> Tue, 05 Jan 2010 21:36:51 +0100
openttd (1.0.0~beta1) unstable; urgency=low
* New upstream release.
-- Matthijs Kooijman <matthijs@stdin.nl> Thu, 24 Dec 2009 01:01:01 +0100
openttd (0.7.5) unstable; urgency=low
* New upstream release.
-- Matthijs Kooijman <matthijs@stdin.nl> Wed, 23 Dec 2009 20:52:34 +0100
openttd (0.7.5~RC1) unstable; urgency=low
* New upstream release.
-- Matthijs Kooijman <matthijs@stdin.nl> Mon, 14 Dec 2009 19:28:37 +0100
openttd (0.7.4) unstable; urgency=low
* New upstream release.

View File

@@ -3,7 +3,7 @@ Section: contrib/games
Priority: optional
Maintainer: Matthijs Kooijman <matthijs@stdin.nl>
Uploaders: Jordi Mallach <jordi@debian.org>
Build-Depends: debhelper (>= 4.0.0), libsdl-dev, zlib1g-dev, libpng-dev, libfreetype6-dev, libfontconfig-dev, liblzo2-dev
Build-Depends: debhelper (>= 4.0.0), libsdl-dev, zlib1g-dev, libpng-dev, libfreetype6-dev, libfontconfig-dev
Standards-Version: 3.7.3
Vcs-Browser: http://svn.debian.org/wsvn/collab-maint/deb-maint/openttd/trunk/
Vcs-Svn: svn://svn.debian.org/svn/collab-maint/deb-maint/openttd/trunk

View File

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

View File

@@ -1,21 +0,0 @@
@echo off
if "%1" == "" goto err
if "%2" == "" goto err
echo Downloading NoSound...
%1\wget http://binaries.openttd.org/installer/nosound-NOSOUND_VERSION.7z -O %2/data/nosound.7z
echo Extracting NoSound...
%1\7za x -y -O%2/data %2/data/nosound.7z
del %1\data\nosound.7z /n
echo NoSound has been installed.
goto end
:err
echo This batch file is only intended for use by the OpenTTD installer.
echo Please visit www.openttd.org for details on downloading NoSound.
:end

View File

@@ -1,21 +0,0 @@
@echo off
if "%1" == "" goto err
if "%2" == "" goto err
echo Downloading OpenGFX...
%1\wget http://binaries.openttd.org/installer/opengfx-OPENGFX_VERSION.7z -O %2/data/opengfx.7z
echo Extracting OpenGFX...
%1\7za x -y -O%2/data %2/data/opengfx.7z
del %1\data\opengfx.7z /n
echo OpenGFX has been installed.
goto end
:err
echo This batch file is only intended for use by the OpenTTD installer.
echo Please visit www.openttd.org for details on downloading OpenGFX.
:end

View File

@@ -1,21 +0,0 @@
@echo off
if "%1" == "" goto err
if "%2" == "" goto err
echo Downloading OpenSFX...
%1\wget http://binaries.openttd.org/installer/opensfx-OPENSFX_VERSION.7z -O %2/data/opensfx.7z
echo Extracting OpenSFX...
%1\7za x -y -O%2/data %2/data/opensfx.7z
del %1\data\opensfx.7z /n
echo OpenSFX has been installed.
goto end
:err
echo This batch file is only intended for use by the OpenTTD installer.
echo Please visit www.openttd.org for details on downloading OpenSFX.
:end

View File

@@ -1,85 +0,0 @@
@echo off
set OPENTTD_VERSION=1.0.0-beta3
set OPENSFX_VERSION=0.8.0
set NOSOUND_VERSION=0.8.0
set OPENGFX_VERSION=0.7.0
echo To make the installer, you must have the WarpIN compiler (wic) installed and in
echo your path, as well as wget and unzip. This file will download the various DLLs
echo to be distributed with the installer. If you do not want to continue, please
echo press CTRL-C now.
echo.
pause
cd ..\..\..\bundle
if not exist SDL12.dll goto getsdl
if not exist FSLib.dll goto getsdl
goto libc
:getsdl
wget http://www.os2site.com/sw/dev/sdl/sdl-1.2.10-bin-20080804.zip -O dl.zip
unzip -j dl.zip SDL/FSLib.dll SDL/SDL12.dll
del dl.zip
:libc
if exist libc063.dll goto gcc
wget ftp://ftp.netlabs.org/pub/gcc/libc-0.6.3-csd3.zip -O dl.zip
unzip -j dl.zip libc063.dll
del dl.zip
:gcc
if exist gcc442.dll goto tools
wget http://www.owenrudge.net/various/gcc442.zip -O dl.zip
unzip -j dl.zip gcc442.dll
del dl.zip
:tools
cd ..\os\os2\installer
if exist tools goto opengfx
mkdir tools
cd tools
wget http://download.smedley.info/wget-1.11.4-os2-20090315.zip -O dl.zip
unzip -j dl.zip wget/bin/wget.exe
del dl.zip
wget ftp://ftp.os4.su/moveton/p7zip-9.04-bin-os2.zip -O dl.zip
unzip -j dl.zip bin/7za.exe dll/ilibca.dll
del dl.zip
cd ..
:opengfx
if exist opengfx goto opensfx
mkdir opengfx
sed s/OPENGFX_VERSION/%OPENGFX_VERSION%/ < download_opengfx.cmd > opengfx\download_opengfx.cmd
copy remove_opengfx.cmd opengfx
:opensfx
if exist opensfx goto nosound
mkdir opensfx
sed s/OPENSFX_VERSION/%OPENSFX_VERSION%/ < download_opensfx.cmd > opensfx\download_opensfx.cmd
copy remove_opensfx.cmd opensfx
:nosound
mkdir nosound
sed s/NOSOUND_VERSION/%NOSOUND_VERSION%/ < download_nosound.cmd > nosound\download_nosound.cmd
copy remove_nosound.cmd nosound
:end
if exist openttd-%OPENTTD_VERSION%-os2.exe del openttd-%OPENTTD_VERSION%-os2.exe
wic -a openttd-%OPENTTD_VERSION%-os2.exe 1 -c../../../bundle -r * 2 -ctools -r * 3 -copengfx -r * 4 -copensfx -r * 5 -cnosound -r * -U -s openttd.wis

View File

@@ -1,106 +0,0 @@
<WARPIN>
<HEAD>
<TITLE>OpenTTD</TITLE>
<!-- Please remember to increment the build number for each package
when releasing a new stable version, particularly if there are
also release candidates sharing the major/minor versions:
e.g., 0\7\1\16279 for 0.7.1-RC1,
0\7\1\16365 for 0.7.1-RC2,
0\7\1\16540 for 0.7.1 final
-->
<PCK INDEX="1"
PACKAGEID="OpenTTD\OpenTTD\OpenTTD\1\0\0\18862"
TARGET="$(WARPIN_DEFAULTAPPSPATH)\OpenTTD"
SELECT
TITLE="OpenTTD"
LONGFILENAMES
BASE
>OpenTTD is an open source transport simulation game</PCK>
<PCK INDEX="2"
PACKAGEID="OpenTTD\OpenTTD\Downloader\1\0\0\18862"
TARGET="$(WARPIN_DEFAULTAPPSPATH)\OpenTTD"
SELECT
TITLE="Download tools"
REQUIRES=1
FIXED
>Tools required for downloading the OpenGFX/SFX packs</PCK>
<PCK INDEX="3"
PACKAGEID="OpenTTD\OpenTTD\OpenGFX\1\0\0\18862"
TARGET="$(WARPIN_DEFAULTAPPSPATH)\OpenTTD"
SELECT
TITLE="OpenGFX"
LONGFILENAMES
REQUIRES=2
EXECUTE="$(3)\download_opengfx.cmd | $(1) $(/1)"
DEEXECUTE="$(3)\remove_opengfx.cmd | $(1) $(/1)"
FIXED
>Downloads the OpenGFX graphics pack for OpenTTD</PCK>
<PCK INDEX="4"
PACKAGEID="OpenTTD\OpenTTD\OpenSFX\1\0\0\18862"
TARGET="$(WARPIN_DEFAULTAPPSPATH)\OpenTTD"
SELECT
TITLE="OpenSFX"
LONGFILENAMES
REQUIRES=2
EXECUTE="$(4)\download_opensfx.cmd | $(1) $(/1)"
DEEXECUTE="$(4)\remove_opensfx.cmd | $(1) $(/1)"
FIXED
>Downloads the OpenSFX sound effects pack for OpenTTD</PCK>
<PCK INDEX="5"
PACKAGEID="OpenTTD\OpenTTD\NoSound\1\0\0\18862"
TARGET="$(WARPIN_DEFAULTAPPSPATH)\OpenTTD"
SELECT
TITLE="NoSound"
LONGFILENAMES
REQUIRES=2
EXECUTE="$(5)\download_nosound.cmd | $(1) $(/1)"
DEEXECUTE="$(5)\remove_nosound.cmd | $(1) $(/1)"
FIXED
>Downloads the NoSound pack for OpenTTD, to disable sound effects</PCK>
</HEAD>
<BODY>
<!-- page 1: introductory page -->
<PAGE INDEX="1" TYPE="README">
<NEXTBUTTON TARGET=2>~Next</NEXTBUTTON>
<README EXTRACTFROMPCK="1">README.TXT</README>
<TEXT>Welcome to the OpenTTD installer. This program will install OpenTTD 1.0 on your system. Before we begin the installation process, please take a moment to read the following document.
Select "Next" to continue, or "Cancel" to abort installation.</TEXT>
</PAGE>
<!-- page 2: licence page -->
<PAGE INDEX="2" TYPE="README">
<NEXTBUTTON TARGET=3>~Next</NEXTBUTTON>
<README EXTRACTFROMPCK="1">COPYING</README>
<TEXT>OpenTTD is licenced under the GNU General Public License. The text of the licence is below.
Select "Next" if you agree to this licence.
Select "Cancel" to abort installation.</TEXT>
</PAGE>
<!-- The TYPE=CONTAINER will list the packages which can be installed. -->
<PAGE INDEX="3" TYPE="CONTAINER">
<NEXTBUTTON TARGET="4">~Next</NEXTBUTTON>
<TEXT>On this page, you may choose which components to install. If you don't own Transport Tycoon Deluxe, you will need to download OpenGFX (3MiB) and OpenSFX (10MiB).</TEXT>
</PAGE>
<!-- Display another TEXT page to inform the user
that installation will begin. We use the TARGET=0
with the NEXTBUTTON tag which starts installation. -->
<PAGE INDEX="4" TYPE="TEXT">
<NEXTBUTTON TARGET="0">I~nstall</NEXTBUTTON>
<TEXT>
Press "Install" to begin installing OpenTTD.</TEXT>
</PAGE>
</BODY>
</WARPIN>

View File

@@ -1,15 +0,0 @@
@echo off
if "%1" == "" goto err
echo Removing NoSound...
del %1\data\nosound\*.* /n
rmdir %1\data\nosound
echo NoSound has been removed.
goto end
:err
echo This batch file is only intended for use by the OpenTTD installer.
:end

View File

@@ -1,15 +0,0 @@
@echo off
if "%1" == "" goto err
echo Removing OpenGFX...
del %1\data\opengfx\*.* /n
rmdir %1\data\opengfx
echo OpenGFX has been removed.
goto end
:err
echo This batch file is only intended for use by the OpenTTD installer.
:end

View File

@@ -1,15 +0,0 @@
@echo off
if "%1" == "" goto err
echo Removing OpenSFX...
del %1\data\opensfx\*.* /n
rmdir %1\data\opensfx
echo OpenSFX has been removed.
goto end
:err
echo This batch file is only intended for use by the OpenTTD installer.
:end

View File

@@ -2,7 +2,7 @@
#-------------------------------------------------------------------------------
# spec file for the openttd rpm package
#
# Copyright (c) 2007-2010 The OpenTTD developers
# Copyright (c) 2007-2009 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.0.0
Version: 0.7.4
Release: 1%{?dist}
Group: Amusements/Games

View File

@@ -1,23 +1,12 @@
# Version numbers to update
!define APPV_MAJOR 1
!define APPV_MINOR 0
!define APPV_MAINT 0
!define APPV_BUILD 2
!define APPV_EXTRA "-beta3"
!define APPNAME "OpenTTD" ; Define application name
!define APPVERSION "${APPV_MAJOR}.${APPV_MINOR}.${APPV_MAINT}${APPV_EXTRA}" ; Define application version
!define APPVERSIONINTERNAL "${APPV_MAJOR}.${APPV_MINOR}.${APPV_MAINT}.${APPV_BUILD}" ; Define application version in X.X.X.X
!define INSTALLERVERSION ${APPV_MAJOR}${APPV_MINOR}${APPV_MAINT}${APPV_BUILD}
!define APPVERSION "0.7.4" ; Define application version
!define APPVERSIONINTERNAL "0.7.4.0" ; Define application version in X.X.X.X
!define INSTALLERVERSION 70 ; NEED TO UPDATE THIS FOR EVERY RELEASE!!!
!include ${VERSION_INCLUDE}
!define APPURLLINK "http://www.openttd.org"
!define APPNAMEANDVERSION "${APPNAME} ${APPVERSION}"
!define OPENGFX_BASE_VERSION "0.7.0"
!define OPENSFX_BASE_VERSION "0.8.0"
!define NOSOUND_BASE_VERSION "0.8.0"
!define MUI_ICON "..\..\..\media\openttd.ico"
!define MUI_UNICON "..\..\..\media\openttd.ico"
!define MUI_WELCOMEFINISHPAGE_BITMAP "welcome.bmp"
@@ -30,7 +19,7 @@ SetCompressor LZMA
; Version Info
Var AddWinPrePopulate
VIProductVersion "${APPVERSIONINTERNAL}"
VIAddVersionKey "ProductName" "OpenTTD ${APPBITS}-bit Installer for Windows ${EXTRA_VERSION}"
VIAddVersionKey "ProductName" "OpenTTD Installer ${APPBITS} bits version ${EXTRA_VERSION}"
VIAddVersionKey "Comments" "Installs ${APPNAMEANDVERSION}"
VIAddVersionKey "CompanyName" "OpenTTD Developers"
VIAddVersionKey "FileDescription" "Installs ${APPNAMEANDVERSION}"
@@ -39,7 +28,7 @@ VIAddVersionKey "InternalName" "InstOpenTTD-${APPARCH}"
VIAddVersionKey "FileVersion" "${APPVERSION}-${APPARCH}"
VIAddVersionKey "LegalCopyright" " "
; Main Install settings
Name "${APPNAMEANDVERSION} ${APPBITS}-bit for Windows ${EXTRA_VERSION}"
Name "${APPNAMEANDVERSION} ${APPBITS} bits version ${EXTRA_VERSION}"
; NOTE: Keep trailing backslash!
InstallDirRegKey HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\OpenTTD" "Install Folder"
@@ -53,15 +42,17 @@ Var SHORTCUTS
Var CDDRIVE
; Modern interface settings
!include "MUI2.nsh"
!include "InstallOptions.nsh"
!include "MUI.nsh"
!define MUI_ABORTWARNING
!define MUI_WELCOMEPAGE_TITLE_3LINES
!insertmacro MUI_PAGE_WELCOME
!define MUI_LICENSEPAGE_RADIOBUTTONS
!insertmacro MUI_DEFAULT MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_ACCEPT "I &accept this agreement"
!insertmacro MUI_DEFAULT MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_DECLINE "I &do not accept this agreement"
!insertmacro MUI_PAGE_LICENSE "..\..\..\COPYING"
!define MUI_COMPONENTSPAGE_SMALLDESC
!insertmacro MUI_PAGE_COMPONENTS
;---------------------------------
@@ -83,7 +74,7 @@ Page custom SelectCDEnter SelectCDExit ": TTD folder"
!define MUI_FINISHPAGE_TITLE_3LINES
!define MUI_FINISHPAGE_RUN_TEXT "Run ${APPNAMEANDVERSION} now!"
!define MUI_FINISHPAGE_RUN "$INSTDIR\openttd.exe"
!define MUI_FINISHPAGE_LINK "Visit the OpenTTD site for the latest news, FAQs and downloads"
!define MUI_FINISHPAGE_LINK "Visit the OpenTTD site for latest news, FAQs and downloads"
!define MUI_FINISHPAGE_LINK_LOCATION "${APPURLLINK}"
!define MUI_FINISHPAGE_NOREBOOTSUPPORT
!define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\readme.txt"
@@ -110,35 +101,18 @@ Section "!OpenTTD" Section1
; Copy language files
SetOutPath "$INSTDIR\lang\"
File ${PATH_ROOT}bin\lang\english.lng
; Copy AI files
SetOutPath "$INSTDIR\ai\"
File ${PATH_ROOT}bin\ai\compat_*.nut
File ${PATH_ROOT}bin\lang\*.lng
; Copy data files
SetOutPath "$INSTDIR\data\"
File ${PATH_ROOT}bin\data\*.grf
File ${PATH_ROOT}bin\data\*.obg
File ${PATH_ROOT}bin\data\*.obs
File ${PATH_ROOT}bin\data\opntitle.dat
; Copy the music base metadata files
SetOutPath "$INSTDIR\gm\"
File ${PATH_ROOT}bin\gm\*.obm
; Copy the scripts
SetOutPath "$INSTDIR\scripts\"
File ${PATH_ROOT}bin\scripts\*.*
; 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
File ${PATH_ROOT}docs\32bpp.txt
; Copy the rest of the stuff
SetOutPath "$INSTDIR\"
@@ -184,84 +158,9 @@ Section "!OpenTTD" Section1
!insertmacro MUI_STARTMENU_WRITE_END
SectionEnd
;--------------------------------------------------------------
; OpenTTD translation install section. Copies only translations
Section "OpenTTD translations" Section6
; Overwrite files by default, but don't complain on failure
SetOverwrite try
; Copy language files
SetOutPath "$INSTDIR\lang\"
File ${PATH_ROOT}bin\lang\*.lng
SectionEnd
;----------------------------------------------------------------------------------
; OpenGFX files install section. Downloads OpenGFX and installs it
Section "Download OpenGFX (free graphics set)" Section3
SetOverwrite try
NSISdl::download "http://binaries.openttd.org/installer/opengfx-${OPENGFX_BASE_VERSION}.7z" "$INSTDIR\data\opengfx.7z"
Pop $R0 ;Get the return value
StrCmp $R0 "success" +3
MessageBox MB_OK "Downloading of OpenGFX failed"
Goto Done
; Let's extract the files
SetOutPath "$INSTDIR\data\"
NSIS7z::Extract "$INSTDIR\data\opengfx.7z"
Delete "$INSTDIR\data\opengfx.7z"
SetOutPath "$INSTDIR\"
Done:
SectionEnd
;----------------------------------------------------------------------------------
; OpenSFX files install section. Downloads OpenSFX and installs it
Section "Download OpenSFX (free sound set)" Section4
SetOverwrite try
NSISdl::download "http://binaries.openttd.org/installer/opensfx-${OPENSFX_BASE_VERSION}.7z" "$INSTDIR\data\opensfx.7z"
Pop $R0 ;Get the return value
StrCmp $R0 "success" +3
MessageBox MB_OK "Downloading of OpenSFX failed"
Goto Done
; Let's extract the files
SetOutPath "$INSTDIR\data\"
NSIS7z::Extract "$INSTDIR\data\opensfx.7z"
Delete "$INSTDIR\data\opensfx.7z"
SetOutPath "$INSTDIR\"
Done:
SectionEnd
;----------------------------------------------------------------------------------
; NoSound files install section. Downloads NoSound and installs it
Section "Download NoSound (free sound set)" Section5
SetOverwrite try
NSISdl::download "http://binaries.openttd.org/installer/nosound-${NOSOUND_BASE_VERSION}.7z" "$INSTDIR\data\nosound.7z"
Pop $R0 ;Get the return value
StrCmp $R0 "success" +3
MessageBox MB_OK "Downloading of NoSound failed"
Goto Done
; Let's extract the files
SetOutPath "$INSTDIR\data\"
NSIS7z::Extract "$INSTDIR\data\nosound.7z"
Delete "$INSTDIR\data\nosound.7z"
SetOutPath "$INSTDIR\"
Done:
SectionEnd
;----------------------------------------------------------------------------------
; TTDLX files install section. Copies all needed TTDLX files from CD or install dir
Section /o "Copy data from Transport Tycoon Deluxe CD-ROM" Section2
SetOverwrite try
Section "Copy Game Graphics" Section2
; Let's copy the files with size approximation
SetOutPath "$INSTDIR\gm"
CopyFiles "$CDDRIVE\gm\*.gm" "$INSTDIR\gm\" 1028
@@ -290,12 +189,8 @@ SectionEnd
; Modern install component descriptions
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
!insertmacro MUI_DESCRIPTION_TEXT ${Section1} "Minimal OpenTTD installation in English. You need at least one of the game graphics and sound sets installed."
!insertmacro MUI_DESCRIPTION_TEXT ${Section6} "Translations of OpenTTD."
!insertmacro MUI_DESCRIPTION_TEXT ${Section3} "Download the free OpenGFX game graphics set. This download is about 3 MiB."
!insertmacro MUI_DESCRIPTION_TEXT ${Section4} "Download the free OpenSFX game sound set. This download is about 10 MiB."
!insertmacro MUI_DESCRIPTION_TEXT ${Section5} "Download the free NoSound game sound set. You will not hear anything with this. This download is about 7 KiB."
!insertmacro MUI_DESCRIPTION_TEXT ${Section2} "Copies the game graphics and sounds from the Transport Tycoon Deluxe CD."
!insertmacro MUI_DESCRIPTION_TEXT ${Section1} "OpenTTD is a fully functional clone of TTD and is very playable."
!insertmacro MUI_DESCRIPTION_TEXT ${Section2} "Copies the game graphics. Requires TTD (for Windows)."
!insertmacro MUI_FUNCTION_DESCRIPTION_END
;-----------------------------------------------
@@ -354,9 +249,6 @@ Section "Uninstall"
Delete "$INSTDIR\cached_sprites.*"
Delete "$INSTDIR\save\autosave\network*.tmp" ; temporary network file
; AI files
Delete "$INSTDIR\ai\compat_*.nut"
; Data files
Delete "$INSTDIR\data\opntitle.dat"
@@ -375,8 +267,6 @@ Section "Uninstall"
Delete "$INSTDIR\data\orig_win.obg"
Delete "$INSTDIR\data\orig_dos.obg"
Delete "$INSTDIR\data\orig_dos_de.obg"
Delete "$INSTDIR\data\orig_win.obs"
Delete "$INSTDIR\data\orig_dos.obs"
Delete "$INSTDIR\data\sample.cat"
; Windows Data files
@@ -395,36 +285,18 @@ Section "Uninstall"
; Music
Delete "$INSTDIR\gm\*.gm"
; Downloaded OpenGFX/OpenSFX/NoSound
Delete "$INSTDIR\data\opengfx\*"
RMDir "$INSTDIR\data\opengfx"
Delete "$INSTDIR\data\opensfx\*"
RMDir "$INSTDIR\data\opensfx"
Delete "$INSTDIR\data\nosound\*"
RMDir "$INSTDIR\data\nosound"
; Language files
Delete "$INSTDIR\lang\*.lng"
; Scripts
Delete "$INSTDIR\scripts\*.*"
; Documentation
Delete "$INSTDIR\docs\*.*"
; Base sets for music
Delete "$INSTDIR\gm\orig_win.obm"
Delete "$INSTDIR\gm\no_music.obm"
; Remove remaining directories
RMDir "$SMPROGRAMS\$SHORTCUTS\Extras\"
RMDir "$SMPROGRAMS\$SHORTCUTS"
RMDir "$INSTDIR\ai"
RMDir "$INSTDIR\data"
RMDir "$INSTDIR\gm"
RMDir "$INSTDIR\lang"
RMDir "$INSTDIR\scripts"
RMDir "$INSTDIR\docs"
RMDir "$INSTDIR\data"
RMDir "$INSTDIR"
SectionEnd
@@ -443,7 +315,7 @@ NoAbort:
GetTempFileName $R0
!insertmacro MUI_HEADER_TEXT "Locate TTD" "Setup needs the location of Transport Tycoon Deluxe in order to continue."
!insertmacro INSTALLOPTIONS_EXTRACT_AS "CDFinder.ini" "CDFinder"
!insertmacro MUI_INSTALLOPTIONS_EXTRACT_AS "CDFinder.ini" "CDFinder"
ClearErrors
; Now, let's populate $CDDRIVE
@@ -458,18 +330,18 @@ NoTTD:
StrCpy $AddWinPrePopulate "Setup couldn't find TTD. Please enter the path where the graphics files from TTD are stored and press Next to continue."
TruFinish:
ClearErrors
!insertmacro INSTALLOPTIONS_WRITE "CDFinder" "Field 2" "State" $CDDRIVE ; TTDLX path
!insertmacro INSTALLOPTIONS_WRITE "CDFinder" "Field 3" "Text" $AddWinPrePopulate ; Caption
!insertmacro MUI_INSTALLOPTIONS_WRITE "CDFinder" "Field 2" "State" $CDDRIVE ; TTDLX path
!insertmacro MUI_INSTALLOPTIONS_WRITE "CDFinder" "Field 3" "Text" $AddWinPrePopulate ; Caption
DoneCD:
; Initialize the dialog *AFTER* we've changed the text otherwise we won't see the changes
!insertmacro INSTALLOPTIONS_INITDIALOG "CDFinder"
!insertmacro INSTALLOPTIONS_SHOW
!insertmacro MUI_INSTALLOPTIONS_INITDIALOG "CDFinder"
!insertmacro MUI_INSTALLOPTIONS_SHOW
FunctionEnd
;----------------------------------------------------------------
; Custom page function when 'next' is selected for the TTDLX path
Function SelectCDExit
!insertmacro INSTALLOPTIONS_READ $CDDRIVE "CDFinder" "Field 2" "State"
!insertmacro MUI_INSTALLOPTIONS_READ $CDDRIVE "CDFinder" "Field 2" "State"
; If trg1r.grf does not exist at the path, retry with DOS version
IfFileExists $CDDRIVE\trg1r.grf "" DosCD
IfFileExists $CDDRIVE\trgir.grf "" NoCD
@@ -479,11 +351,22 @@ DosCD:
IfFileExists $CDDRIVE\TRGI.GRF "" NoCD
IfFileExists $CDDRIVE\SAMPLE.CAT hasCD NoCD
NoCD:
MessageBox MB_OK "Setup cannot continue without the Transport Tycoon Deluxe location!"
MessageBox MB_OK "Setup cannot continue without the Transport Tycoon Deluxe Location!"
Abort
hasCD:
FunctionEnd
;----------------------------------------------------------------------------------
; Disable the "Back" button on finish page if the installer is run on Win9x systems
Function DisableBack
Call GetWindowsVersion
Pop $R0
StrCmp $R0 "win9x" 0 WinNT
!insertmacro MUI_INSTALLOPTIONS_WRITE "ioSpecial.ini" "Settings" "BackEnabled" "0"
WinNT:
ClearErrors
FunctionEnd
;-------------------------------------------------------------------------------
; Determine windows version, returns "win9x" if Win9x/Me or "winnt" on the stack
Function GetWindowsVersion
@@ -507,12 +390,12 @@ Function CheckProcessorArchitecture
IntCmp $R0 64 Win64 0
ClearErrors
IntCmp ${APPBITS} 64 0 Done
MessageBox MB_OKCANCEL|MB_ICONSTOP "You are trying to install the 64-bit OpenTTD on a 32-bit operating system. This is not going to work. Please download the correct version. Do you really want to continue?" IDOK Done IDCANCEL Abort
MessageBox MB_OKCANCEL|MB_ICONSTOP "You want to install the 64 bits OpenTTD on a 32 bits Operating System. This is not going to work. Please download the correct version. Do you really want to continue?" IDOK Done IDCANCEL Abort
GoTo Done
Win64:
ClearErrors
IntCmp ${APPBITS} 64 Done 0
MessageBox MB_OKCANCEL|MB_ICONINFORMATION "You are trying to install the 32-bit OpenTTD on a 64-bit operating system. This is not advised, but will work with reduced capabilities. We suggest that you download the correct version. Do you really want to continue?" IDOK Done IDCANCEL Abort
MessageBox MB_OKCANCEL|MB_ICONINFORMATION "You want to install the 32 bits OpenTTD on a 64 bits Operating System. This is not adviced, but will work with reduced capabilities. We suggest that you download the correct version. Do you really want to continue?" IDOK Done IDCANCEL Abort
GoTo Done
Abort:
Quit
@@ -528,12 +411,12 @@ Function CheckWindowsVersion
StrCmp $R0 "win9x" 0 WinNT
ClearErrors
StrCmp ${APPARCH} "win9x" Done 0
MessageBox MB_OKCANCEL|MB_ICONSTOP "You are trying to install the Windows 2000, XP and Vista version on Windows 95, 98 or ME. This is will not work. Please download the correct version. Do you really want to continue?" IDOK Done IDCANCEL Abort
MessageBox MB_OKCANCEL|MB_ICONSTOP "You want to install the Windows 2000, XP and Vista version on Windows 95, 98 or ME. This is will not work. Please download the correct version. Do you really want to continue?" IDOK Done IDCANCEL Abort
GoTo Done
WinNT:
ClearErrors
StrCmp ${APPARCH} "win9x" 0 Done
MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION "You are trying to install the Windows 95, 98 and ME version on Windows 2000, XP or Vista. This is not advised, but will work with reduced capabilities. We suggest that you download the correct version. Do you really want to continue?" IDOK Done IDCANCEL Abort
MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION "You want to install the Windows 95, 98 and ME version on Windows 2000, XP or Vista. This is not adviced, but will work with reduced capabilities. We suggest that you download the correct version. Do you really want to continue?" IDOK Done IDCANCEL Abort
Abort:
Quit
Done:
@@ -543,14 +426,10 @@ Var OLDVERSION
Var UninstallString
;-----------------------------------------------------------------------------------
; NSIS Initialize function, determine if we are going to install/upgrade or uninstall
; NSIS Initialize function, determin if we are going to install/upgrade or uninstall
Function .onInit
StrCpy $SHORTCUTS "OpenTTD"
SectionSetSize ${Section3} 6144
SectionSetSize ${Section4} 13312
SectionSetSize ${Section5} 30
SectionSetFlags 0 17
; Starts Setup - let's look for an older version of OpenTTD
@@ -572,16 +451,13 @@ WelcomeToSetup:
"Welcome to ${APPNAMEANDVERSION} Setup.$\n \
This will allow you to upgrade from version $OLDVERSION."
SectionSetFlags ${Section2} 0x80 ; set bit 7
SectionSetFlags ${Section3} 0x80 ; set bit 7
SectionSetFlags ${Section4} 0x80 ; set bit 7
SectionSetFlags ${Section5} 0x80 ; set bit 7
Goto FinishCallback
VersionsAreEqual:
ReadRegStr $UninstallString HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\OpenTTD" "UninstallString"
IfFileExists "$UninstallString" "" FinishCallback
MessageBox MB_YESNO|MB_ICONQUESTION \
"Setup detected ${APPNAMEANDVERSION} on your system. This is the same version that this program will install.$\n \
"Setup detected ${APPNAMEANDVERSION} on your system. That's the version this program will install.$\n \
Are you trying to uninstall it?" \
IDYES DoUninstall IDNO FinishCallback
DoUninstall: ; You have the same version as this installer. This allows you to uninstall.

View File

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 25 KiB

View File

@@ -1,5 +1,5 @@
!define APPBITS 32 ; Define number of bits for the architecture
!define EXTRA_VERSION "2000, XP, Vista and 7"
!define EXTRA_VERSION "for Windows 2000, XP and Vista"
!define APPARCH "win32" ; Define the application architecture
!define BINARY_DIR "${PATH_ROOT}objs\win32\Release"
InstallDir "$PROGRAMFILES32\OpenTTD\"

View File

@@ -1,5 +1,5 @@
!define APPBITS 64 ; Define number of bits for the architecture
!define EXTRA_VERSION "XP, Vista and 7"
!define EXTRA_VERSION "for Windows XP and Vista"
!define APPARCH "win64" ; Define the application architecture
!define BINARY_DIR "${PATH_ROOT}objs\x64\Release"
InstallDir "$PROGRAMFILES64\OpenTTD\"

View File

@@ -1,5 +1,5 @@
!define APPBITS 32 ; Define number of bits for the architecture
!define EXTRA_VERSION "95, 98 and ME"
!define EXTRA_VERSION "for Windows 95, 98 and ME"
!define APPARCH "win9x" ; Define the application architecture
!define BINARY_DIR "${PATH_ROOT}bin"
InstallDir "$PROGRAMFILES32\OpenTTD\"

View File

Before

Width:  |  Height:  |  Size: 151 KiB

After

Width:  |  Height:  |  Size: 151 KiB

View File

@@ -1,12 +1,5 @@
Option Explicit
' $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/>.
Dim FSO
Set FSO = CreateObject("Scripting.FileSystemObject")
@@ -39,13 +32,13 @@ Sub UpdateFiles(version)
modified = Mid(version, InStrRev(version, Chr(9)) + 1)
version = Mid(version, 1, InStr(version, Chr(9)) - 1)
Else
version = "1.0.0-beta3"
version = "0.7.4"
revision = 0
modified = 1
End If
UpdateFile modified, revision, version, cur_date, "../src/rev.cpp"
UpdateFile modified, revision, version, cur_date, "../src/os/windows/ottdres.rc"
UpdateFile modified, revision, version, cur_date, "../src/ottdres.rc"
End Sub
Function ReadRegistryKey(shive, subkey, valuename, architecture)
@@ -287,6 +280,6 @@ End Function
Dim version
version = DetermineSVNVersion
If Not (IsCachedVersion(version) And CheckFile("../src/rev.cpp") And CheckFile("../src/os/windows/ottdres.rc")) Then
If Not (IsCachedVersion(version) And CheckFile("../src/rev.cpp") And CheckFile("../src/ottdres.rc")) Then
UpdateFiles version
End If

View File

@@ -1,12 +1,5 @@
#!/bin/bash
# $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/>.
# This file generates all project files based on sources.list, so everyone who
# can start a bash process, can update the project files.

View File

@@ -1,12 +1,5 @@
Option Explicit
' $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/>.
Dim FSO
Set FSO = CreateObject("Scripting.FileSystemObject")

View File

@@ -301,21 +301,6 @@
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\lang\greek.txt"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Generating greek language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;"
AdditionalDependencies="..\src\lang\english.txt"
Outputs="..\bin\lang\greek.lng"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\lang\hebrew.txt"
>
@@ -466,21 +451,6 @@
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\lang\malay.txt"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Generating malay language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;"
AdditionalDependencies="..\src\lang\english.txt"
Outputs="..\bin\lang\malay.lng"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\lang\norwegian_bokmal.txt"
>
@@ -511,6 +481,21 @@
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\lang\piglatin.txt"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Generating piglatin language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;"
AdditionalDependencies="..\src\lang\english.txt"
Outputs="..\bin\lang\piglatin.lng"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\lang\polish.txt"
>

View File

@@ -302,21 +302,6 @@
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\lang\greek.txt"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Generating greek language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;"
AdditionalDependencies="..\src\lang\english.txt"
Outputs="..\bin\lang\greek.lng"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\lang\hebrew.txt"
>
@@ -467,21 +452,6 @@
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\lang\malay.txt"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Generating malay language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;"
AdditionalDependencies="..\src\lang\english.txt"
Outputs="..\bin\lang\malay.lng"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\lang\norwegian_bokmal.txt"
>
@@ -512,6 +482,21 @@
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\lang\piglatin.txt"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Generating piglatin language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;"
AdditionalDependencies="..\src\lang\english.txt"
Outputs="..\bin\lang\piglatin.lng"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\lang\polish.txt"
>

View File

@@ -16,7 +16,7 @@
</Platforms>
<ToolFiles>
<ToolFile
RelativePath="..\src\os\windows\masm64.rules"
RelativePath="..\src\masm64.rules"
/>
</ToolFiles>
<Configurations>
@@ -60,7 +60,7 @@
FavorSizeOrSpeed="2"
OmitFramePointers="true"
AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_LZO;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;;WITH_ASSERT"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_EXCEPTION_TRACKER;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;"
StringPooling="true"
ExceptionHandling="1"
RuntimeLibrary="0"
@@ -97,7 +97,7 @@
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib lzo2.lib dxguid.lib libfreetype2.lib libicu.lib"
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib dxguid.lib libfreetype2.lib libicu.lib"
LinkIncremental="1"
SuppressStartupBanner="true"
IgnoreDefaultLibraryNames=""
@@ -169,7 +169,7 @@
AdditionalOptions="/MP"
Optimization="0"
AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_LZO;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
UsePrecompiledHeader="0"
@@ -197,7 +197,7 @@
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib lzo2.lib dxguid.lib libfreetype2.lib libicu.lib"
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib dxguid.lib libfreetype2.lib libicu.lib"
LinkIncremental="0"
SuppressStartupBanner="true"
IgnoreDefaultLibraryNames="LIBCMT.lib"
@@ -273,7 +273,7 @@
FavorSizeOrSpeed="2"
OmitFramePointers="true"
AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_LZO;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;;_SQ64;WITH_ASSERT"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_EXCEPTION_TRACKER;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;;_SQ64"
StringPooling="true"
ExceptionHandling="1"
RuntimeLibrary="0"
@@ -310,7 +310,7 @@
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib lzo2.lib dxguid.lib libfreetype2.lib libicu.lib"
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib dxguid.lib libfreetype2.lib libicu.lib"
LinkIncremental="1"
SuppressStartupBanner="true"
IgnoreDefaultLibraryNames=""
@@ -383,7 +383,7 @@
AdditionalOptions="/MP"
Optimization="0"
AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_LZO;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;;_SQ64"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;;_SQ64"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
UsePrecompiledHeader="0"
@@ -413,7 +413,7 @@
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib lzo2.lib dxguid.lib libfreetype2.lib libicu.lib"
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib dxguid.lib libfreetype2.lib libicu.lib"
LinkIncremental="0"
SuppressStartupBanner="true"
IgnoreDefaultLibraryNames="LIBCMT.lib"
@@ -471,10 +471,18 @@
RelativePath=".\..\src\autoreplace.cpp"
>
</File>
<File
RelativePath=".\..\src\aystar.cpp"
>
</File>
<File
RelativePath=".\..\src\bmp.cpp"
>
</File>
<File
RelativePath=".\..\src\callback_table.cpp"
>
</File>
<File
RelativePath=".\..\src\cargopacket.cpp"
>
@@ -499,10 +507,6 @@
RelativePath=".\..\src\console_cmds.cpp"
>
</File>
<File
RelativePath=".\..\src\crashlog.cpp"
>
</File>
<File
RelativePath=".\..\src\currency.cpp"
>
@@ -591,6 +595,14 @@
RelativePath=".\..\src\map.cpp"
>
</File>
<File
RelativePath=".\..\src\md5.cpp"
>
</File>
<File
RelativePath=".\..\src\minilzo.cpp"
>
</File>
<File
RelativePath=".\..\src\misc.cpp"
>
@@ -603,6 +615,10 @@
RelativePath=".\..\src\music.cpp"
>
</File>
<File
RelativePath=".\..\src\namegen.cpp"
>
</File>
<File
RelativePath=".\..\src\network\network.cpp"
>
@@ -631,6 +647,14 @@
RelativePath=".\..\src\network\network_udp.cpp"
>
</File>
<File
RelativePath=".\..\src\npf.cpp"
>
</File>
<File
RelativePath=".\..\src\oldpool.cpp"
>
</File>
<File
RelativePath=".\..\src\openttd.cpp"
>
@@ -639,10 +663,22 @@
RelativePath=".\..\src\os_timer.cpp"
>
</File>
<File
RelativePath=".\..\src\ottdres.rc"
>
</File>
<File
RelativePath=".\..\src\pathfind.cpp"
>
</File>
<File
RelativePath=".\..\src\pbs.cpp"
>
</File>
<File
RelativePath=".\..\src\queue.cpp"
>
</File>
<File
RelativePath=".\..\src\rail.cpp"
>
@@ -655,10 +691,6 @@
RelativePath=".\..\src\road.cpp"
>
</File>
<File
RelativePath=".\..\src\roadstop.cpp"
>
</File>
<File
RelativePath=".\..\src\screenshot.cpp"
>
@@ -683,10 +715,6 @@
RelativePath=".\..\src\sound.cpp"
>
</File>
<File
RelativePath=".\..\src\sprite.cpp"
>
</File>
<File
RelativePath=".\..\src\spritecache.cpp"
>
@@ -703,10 +731,6 @@
RelativePath=".\..\src\strings.cpp"
>
</File>
<File
RelativePath=".\..\src\subsidy.cpp"
>
</File>
<File
RelativePath=".\..\src\texteff.cpp"
>
@@ -716,11 +740,11 @@
>
</File>
<File
RelativePath=".\..\src\tile_map.cpp"
RelativePath=".\..\src\thread_win32.cpp"
>
</File>
<File
RelativePath=".\..\src\townname.cpp"
RelativePath=".\..\src\tile_map.cpp"
>
</File>
<File
@@ -743,6 +767,10 @@
RelativePath=".\..\src\widget.cpp"
>
</File>
<File
RelativePath=".\..\src\win32.cpp"
>
</File>
<File
RelativePath=".\..\src\window.cpp"
>
@@ -759,6 +787,10 @@
RelativePath=".\..\src\airport.h"
>
</File>
<File
RelativePath=".\..\src\airport_movement.h"
>
</File>
<File
RelativePath=".\..\src\animated_tile_func.h"
>
@@ -788,15 +820,7 @@
>
</File>
<File
RelativePath=".\..\src\base_media_base.h"
>
</File>
<File
RelativePath=".\..\src\base_media_func.h"
>
</File>
<File
RelativePath=".\..\src\base_station_base.h"
RelativePath=".\..\src\aystar.h"
>
</File>
<File
@@ -807,6 +831,10 @@
RelativePath=".\..\src\bridge.h"
>
</File>
<File
RelativePath=".\..\src\callback_table.h"
>
</File>
<File
RelativePath=".\..\src\cargo_type.h"
>
@@ -875,10 +903,6 @@
RelativePath=".\..\src\console_type.h"
>
</File>
<File
RelativePath=".\..\src\crashlog.h"
>
</File>
<File
RelativePath=".\..\src\currency.h"
>
@@ -887,10 +911,6 @@
RelativePath=".\..\src\date_func.h"
>
</File>
<File
RelativePath=".\..\src\date_gui.h"
>
</File>
<File
RelativePath=".\..\src\date_type.h"
>
@@ -1043,14 +1063,6 @@
RelativePath=".\..\src\highscore.h"
>
</File>
<File
RelativePath=".\..\src\house.h"
>
</File>
<File
RelativePath=".\..\src\house_type.h"
>
</File>
<File
RelativePath=".\..\src\industry.h"
>
@@ -1059,10 +1071,6 @@
RelativePath=".\..\src\industry_type.h"
>
</File>
<File
RelativePath=".\..\src\industrytype.h"
>
</File>
<File
RelativePath=".\..\src\ini_type.h"
>
@@ -1079,6 +1087,10 @@
RelativePath=".\..\src\livery.h"
>
</File>
<File
RelativePath=".\..\src\lzoconf.h"
>
</File>
<File
RelativePath=".\..\src\map_func.h"
>
@@ -1087,10 +1099,26 @@
RelativePath=".\..\src\map_type.h"
>
</File>
<File
RelativePath=".\..\src\md5.h"
>
</File>
<File
RelativePath=".\..\src\minilzo.h"
>
</File>
<File
RelativePath=".\..\src\mixer.h"
>
</File>
<File
RelativePath=".\..\src\music.h"
>
</File>
<File
RelativePath=".\..\src\namegen_func.h"
>
</File>
<File
RelativePath=".\..\src\network\network.h"
>
@@ -1179,10 +1207,6 @@
RelativePath=".\..\src\newgrf_industrytiles.h"
>
</File>
<File
RelativePath=".\..\src\newgrf_properties.h"
>
</File>
<File
RelativePath=".\..\src\newgrf_sound.h"
>
@@ -1223,6 +1247,10 @@
RelativePath=".\..\src\news_type.h"
>
</File>
<File
RelativePath=".\..\src\npf.h"
>
</File>
<File
RelativePath=".\..\src\music\null_m.h"
>
@@ -1235,6 +1263,14 @@
RelativePath=".\..\src\video\null_v.h"
>
</File>
<File
RelativePath=".\..\src\oldpool.h"
>
</File>
<File
RelativePath=".\..\src\oldpool_func.h"
>
</File>
<File
RelativePath=".\..\src\openttd.h"
>
@@ -1251,6 +1287,10 @@
RelativePath=".\..\src\order_type.h"
>
</File>
<File
RelativePath=".\..\src\pathfind.h"
>
</File>
<File
RelativePath=".\..\src\pbs.h"
>
@@ -1259,6 +1299,10 @@
RelativePath=".\..\src\querystring_gui.h"
>
</File>
<File
RelativePath=".\..\src\queue.h"
>
</File>
<File
RelativePath=".\..\src\rail.h"
>
@@ -1295,10 +1339,6 @@
RelativePath=".\..\src\road_type.h"
>
</File>
<File
RelativePath=".\..\src\roadstop_base.h"
>
</File>
<File
RelativePath=".\..\src\roadveh.h"
>
@@ -1427,18 +1467,6 @@
RelativePath=".\..\src\strings_type.h"
>
</File>
<File
RelativePath=".\..\src\subsidy_base.h"
>
</File>
<File
RelativePath=".\..\src\subsidy_func.h"
>
</File>
<File
RelativePath=".\..\src\subsidy_type.h"
>
</File>
<File
RelativePath=".\..\src\tar_type.h"
>
@@ -1460,7 +1488,7 @@
>
</File>
<File
RelativePath=".\..\src\tilearea_type.h"
RelativePath=".\..\src\thread.h"
>
</File>
<File
@@ -1495,14 +1523,6 @@
RelativePath=".\..\src\town_type.h"
>
</File>
<File
RelativePath=".\..\src\townname_func.h"
>
</File>
<File
RelativePath=".\..\src\townname_type.h"
>
</File>
<File
RelativePath=".\..\src\track_func.h"
>
@@ -1576,11 +1596,11 @@
>
</File>
<File
RelativePath=".\..\src\waypoint_base.h"
RelativePath=".\..\src\waypoint.h"
>
</File>
<File
RelativePath=".\..\src\waypoint_func.h"
RelativePath=".\..\src\waypoint_type.h"
>
</File>
<File
@@ -1588,7 +1608,7 @@
>
</File>
<File
RelativePath=".\..\src\os\windows\win32.h"
RelativePath=".\..\src\win32.h"
>
</File>
<File
@@ -1659,22 +1679,10 @@
RelativePath=".\..\src\core\enum_type.hpp"
>
</File>
<File
RelativePath=".\..\src\core\geometry_func.cpp"
>
</File>
<File
RelativePath=".\..\src\core\geometry_func.hpp"
>
</File>
<File
RelativePath=".\..\src\core\geometry_type.hpp"
>
</File>
<File
RelativePath=".\..\src\core\math_func.cpp"
>
</File>
<File
RelativePath=".\..\src\core\math_func.hpp"
>
@@ -1687,14 +1695,6 @@
RelativePath=".\..\src\core\overflowsafe_type.hpp"
>
</File>
<File
RelativePath=".\..\src\core\pool_func.hpp"
>
</File>
<File
RelativePath=".\..\src\core\pool_type.hpp"
>
</File>
<File
RelativePath=".\..\src\core\random_func.cpp"
>
@@ -1755,10 +1755,6 @@
RelativePath=".\..\src\console_gui.cpp"
>
</File>
<File
RelativePath=".\..\src\date_gui.cpp"
>
</File>
<File
RelativePath=".\..\src\depot_gui.cpp"
>
@@ -1907,10 +1903,6 @@
RelativePath=".\..\src\vehicle_gui.cpp"
>
</File>
<File
RelativePath=".\..\src\viewport_gui.cpp"
>
</File>
<File
RelativePath=".\..\src\waypoint_gui.cpp"
>
@@ -2095,10 +2087,6 @@
RelativePath=".\..\src\saveload\industry_sl.cpp"
>
</File>
<File
RelativePath=".\..\src\saveload\labelmaps_sl.cpp"
>
</File>
<File
RelativePath=".\..\src\saveload\map_sl.cpp"
>
@@ -2171,18 +2159,6 @@
<Filter
Name="Tables"
>
<File
RelativePath=".\..\src\table\airport_defaults.h"
>
</File>
<File
RelativePath=".\..\src\table\airporttiles.h"
>
</File>
<File
RelativePath=".\..\src\table\airport_movement.h"
>
</File>
<File
RelativePath=".\..\src\table\animcursors.h"
>
@@ -2219,6 +2195,10 @@
RelativePath=".\..\src\table\engines.h"
>
</File>
<File
RelativePath=".\..\src\table\files.h"
>
</File>
<File
RelativePath=".\..\src\table\genland.h"
>
@@ -2231,6 +2211,10 @@
RelativePath=".\..\src\table\landscape_sprite.h"
>
</File>
<File
RelativePath=".\..\src\table\namegen.h"
>
</File>
<File
RelativePath=".\..\src\table\palette_convert.h"
>
@@ -2239,10 +2223,6 @@
RelativePath=".\..\src\table\palettes.h"
>
</File>
<File
RelativePath=".\..\src\table\pricebase.h"
>
</File>
<File
RelativePath=".\..\src\table\railtypes.h"
>
@@ -2255,10 +2235,6 @@
RelativePath=".\..\src\table\roadveh_movement.h"
>
</File>
<File
RelativePath=".\..\src\table\settings.h"
>
</File>
<File
RelativePath=".\..\src\table\sprites.h"
>
@@ -2267,10 +2243,6 @@
RelativePath=".\..\src\table\station_land.h"
>
</File>
<File
RelativePath=".\..\src\table\strgen_tables.h"
>
</File>
<File
RelativePath=".\..\src\..\objs\langs\table\strings.h"
>
@@ -2279,10 +2251,6 @@
RelativePath=".\..\src\table\town_land.h"
>
</File>
<File
RelativePath=".\..\src\table\townname.h"
>
</File>
<File
RelativePath=".\..\src\table\track_land.h"
>
@@ -2308,37 +2276,9 @@
>
</File>
</Filter>
<Filter
Name="MD5"
>
<File
RelativePath=".\..\src\3rdparty\md5\md5.cpp"
>
</File>
<File
RelativePath=".\..\src\3rdparty\md5\md5.h"
>
</File>
</Filter>
<Filter
Name="Script"
>
<File
RelativePath=".\..\src\script\script_info.cpp"
>
</File>
<File
RelativePath=".\..\src\script\script_info.hpp"
>
</File>
<File
RelativePath=".\..\src\script\script_scanner.cpp"
>
</File>
<File
RelativePath=".\..\src\script\script_scanner.hpp"
>
</File>
<File
RelativePath=".\..\src\script\squirrel.cpp"
>
@@ -2415,10 +2355,6 @@
RelativePath=".\..\src\3rdparty\squirrel\sqstdlib\sqstdaux.cpp"
>
</File>
<File
RelativePath=".\..\src\3rdparty\squirrel\sqstdlib\sqstdmath.cpp"
>
</File>
<File
RelativePath=".\..\src\3rdparty\squirrel\squirrel\sqtable.cpp"
>
@@ -2611,10 +2547,6 @@
RelativePath=".\..\src\ai\api\ai_base.hpp"
>
</File>
<File
RelativePath=".\..\src\ai\api\ai_basestation.hpp"
>
</File>
<File
RelativePath=".\..\src\ai\api\ai_bridge.hpp"
>
@@ -2831,10 +2763,6 @@
RelativePath=".\..\src\ai\api\ai_base.cpp"
>
</File>
<File
RelativePath=".\..\src\ai\api\ai_basestation.cpp"
>
</File>
<File
RelativePath=".\..\src\ai\api\ai_bridge.cpp"
>
@@ -3335,6 +3263,10 @@
RelativePath=".\..\src\misc\str.hpp"
>
</File>
<File
RelativePath=".\..\src\misc\strapi.hpp"
>
</File>
</Filter>
<Filter
Name="Network Core"
@@ -3420,127 +3352,71 @@
>
</File>
</Filter>
<Filter
Name="Pathfinder"
>
<File
RelativePath=".\..\src\pathfinder\follow_track.hpp"
>
</File>
<File
RelativePath=".\..\src\pathfinder\opf\opf_ship.cpp"
>
</File>
<File
RelativePath=".\..\src\pathfinder\opf\opf_ship.h"
>
</File>
<File
RelativePath=".\..\src\pathfinder\pathfinder_func.h"
>
</File>
<File
RelativePath=".\..\src\pathfinder\pathfinder_type.h"
>
</File>
<File
RelativePath=".\..\src\pathfinder\pf_performance_timer.hpp"
>
</File>
</Filter>
<Filter
Name="NPF"
>
<File
RelativePath=".\..\src\pathfinder\npf\aystar.cpp"
>
</File>
<File
RelativePath=".\..\src\pathfinder\npf\aystar.h"
>
</File>
<File
RelativePath=".\..\src\pathfinder\npf\npf.cpp"
>
</File>
<File
RelativePath=".\..\src\pathfinder\npf\npf_func.h"
>
</File>
<File
RelativePath=".\..\src\pathfinder\npf\queue.cpp"
>
</File>
<File
RelativePath=".\..\src\pathfinder\npf\queue.h"
>
</File>
</Filter>
<Filter
Name="YAPF"
>
<File
RelativePath=".\..\src\pathfinder\yapf\nodelist.hpp"
RelativePath=".\..\src\yapf\follow_track.hpp"
>
</File>
<File
RelativePath=".\..\src\pathfinder\yapf\yapf.h"
RelativePath=".\..\src\yapf\nodelist.hpp"
>
</File>
<File
RelativePath=".\..\src\pathfinder\yapf\yapf.hpp"
RelativePath=".\..\src\yapf\yapf.h"
>
</File>
<File
RelativePath=".\..\src\pathfinder\yapf\yapf_base.hpp"
RelativePath=".\..\src\yapf\yapf.hpp"
>
</File>
<File
RelativePath=".\..\src\pathfinder\yapf\yapf_cache.h"
RelativePath=".\..\src\yapf\yapf_base.hpp"
>
</File>
<File
RelativePath=".\..\src\pathfinder\yapf\yapf_common.hpp"
RelativePath=".\..\src\yapf\yapf_common.hpp"
>
</File>
<File
RelativePath=".\..\src\pathfinder\yapf\yapf_costbase.hpp"
RelativePath=".\..\src\yapf\yapf_costbase.hpp"
>
</File>
<File
RelativePath=".\..\src\pathfinder\yapf\yapf_costcache.hpp"
RelativePath=".\..\src\yapf\yapf_costcache.hpp"
>
</File>
<File
RelativePath=".\..\src\pathfinder\yapf\yapf_costrail.hpp"
RelativePath=".\..\src\yapf\yapf_costrail.hpp"
>
</File>
<File
RelativePath=".\..\src\pathfinder\yapf\yapf_destrail.hpp"
RelativePath=".\..\src\yapf\yapf_destrail.hpp"
>
</File>
<File
RelativePath=".\..\src\pathfinder\yapf\yapf_node.hpp"
RelativePath=".\..\src\yapf\yapf_node.hpp"
>
</File>
<File
RelativePath=".\..\src\pathfinder\yapf\yapf_node_rail.hpp"
RelativePath=".\..\src\yapf\yapf_node_rail.hpp"
>
</File>
<File
RelativePath=".\..\src\pathfinder\yapf\yapf_node_road.hpp"
RelativePath=".\..\src\yapf\yapf_node_road.hpp"
>
</File>
<File
RelativePath=".\..\src\pathfinder\yapf\yapf_rail.cpp"
RelativePath=".\..\src\yapf\yapf_rail.cpp"
>
</File>
<File
RelativePath=".\..\src\pathfinder\yapf\yapf_road.cpp"
RelativePath=".\..\src\yapf\yapf_road.cpp"
>
</File>
<File
RelativePath=".\..\src\pathfinder\yapf\yapf_ship.cpp"
RelativePath=".\..\src\yapf\yapf_ship.cpp"
>
</File>
</Filter>
@@ -3568,11 +3444,11 @@
Name="Music"
>
<File
RelativePath=".\..\src\music\dmusic.cpp"
RelativePath=".\..\src\music\null_m.cpp"
>
</File>
<File
RelativePath=".\..\src\music\null_m.cpp"
RelativePath=".\..\src\music\dmusic.cpp"
>
</File>
<File
@@ -3596,40 +3472,12 @@
>
</File>
</Filter>
<Filter
Name="Windows files"
>
<File
RelativePath=".\..\src\os\windows\crashlog_win.cpp"
>
</File>
<File
RelativePath=".\..\src\os\windows\ottdres.rc"
>
</File>
<File
RelativePath=".\..\src\os\windows\win32.cpp"
>
</File>
</Filter>
<Filter
Name="Threading"
>
<File
RelativePath=".\..\src\thread\thread.h"
>
</File>
<File
RelativePath=".\..\src\thread\thread_win32.cpp"
>
</File>
</Filter>
<Filter
Name="64-bit Specific Files"
Filter="asm"
>
<File
RelativePath=".\..\src\os\windows\win64.asm"
RelativePath=".\..\src\win64.asm"
>
<FileConfiguration
Name="Release|Win32"

View File

@@ -16,7 +16,7 @@
</Platforms>
<ToolFiles>
<ToolFile
RelativePath="..\src\os\windows\masm64.rules"
RelativePath="..\src\masm64.rules"
/>
</ToolFiles>
<Configurations>
@@ -60,7 +60,7 @@
FavorSizeOrSpeed="2"
OmitFramePointers="true"
AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_LZO;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;;WITH_ASSERT"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_EXCEPTION_TRACKER;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;"
StringPooling="true"
ExceptionHandling="1"
RuntimeLibrary="0"
@@ -97,7 +97,7 @@
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib lzo2.lib dxguid.lib libfreetype2.lib libicu.lib"
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib dxguid.lib libfreetype2.lib libicu.lib"
LinkIncremental="1"
SuppressStartupBanner="true"
IgnoreDefaultLibraryNames=""
@@ -169,7 +169,7 @@
AdditionalOptions="/MP"
Optimization="0"
AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_LZO;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
UsePrecompiledHeader="0"
@@ -197,7 +197,7 @@
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib lzo2.lib dxguid.lib libfreetype2.lib libicu.lib"
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib dxguid.lib libfreetype2.lib libicu.lib"
LinkIncremental="0"
SuppressStartupBanner="true"
IgnoreDefaultLibraryNames="LIBCMT.lib"
@@ -273,7 +273,7 @@
FavorSizeOrSpeed="2"
OmitFramePointers="true"
AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_LZO;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;;_SQ64;WITH_ASSERT"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_EXCEPTION_TRACKER;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;;_SQ64"
StringPooling="true"
ExceptionHandling="1"
RuntimeLibrary="0"
@@ -310,7 +310,7 @@
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib lzo2.lib dxguid.lib libfreetype2.lib libicu.lib"
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib dxguid.lib libfreetype2.lib libicu.lib"
LinkIncremental="1"
SuppressStartupBanner="true"
IgnoreDefaultLibraryNames=""
@@ -383,7 +383,7 @@
AdditionalOptions="/MP"
Optimization="0"
AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_LZO;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;;_SQ64"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;;_SQ64"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
UsePrecompiledHeader="0"
@@ -413,7 +413,7 @@
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib lzo2.lib dxguid.lib libfreetype2.lib libicu.lib"
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib dxguid.lib libfreetype2.lib libicu.lib"
LinkIncremental="0"
SuppressStartupBanner="true"
IgnoreDefaultLibraryNames="LIBCMT.lib"
@@ -458,7 +458,7 @@
Filter="asm"
>
<File
RelativePath=".\..\src\os\windows\win64.asm"
RelativePath=".\..\src\win64.asm"
>
<FileConfiguration
Name="Release|Win32"

View File

@@ -17,7 +17,7 @@
</Platforms>
<ToolFiles>
<ToolFile
RelativePath="..\src\os\windows\masm64.rules"
RelativePath="..\src\masm64.rules"
/>
</ToolFiles>
<Configurations>
@@ -61,7 +61,7 @@
FavorSizeOrSpeed="2"
OmitFramePointers="true"
AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_LZO;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;;WITH_ASSERT"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_EXCEPTION_TRACKER;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;"
StringPooling="true"
ExceptionHandling="1"
RuntimeLibrary="0"
@@ -98,7 +98,7 @@
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib lzo2.lib dxguid.lib libfreetype2.lib libicu.lib"
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib dxguid.lib libfreetype2.lib libicu.lib"
LinkIncremental="1"
SuppressStartupBanner="true"
IgnoreDefaultLibraryNames=""
@@ -168,7 +168,7 @@
AdditionalOptions="/MP"
Optimization="0"
AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_LZO;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
UsePrecompiledHeader="0"
@@ -196,7 +196,7 @@
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib lzo2.lib dxguid.lib libfreetype2.lib libicu.lib"
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib dxguid.lib libfreetype2.lib libicu.lib"
LinkIncremental="0"
SuppressStartupBanner="true"
IgnoreDefaultLibraryNames="LIBCMT.lib"
@@ -271,7 +271,7 @@
FavorSizeOrSpeed="2"
OmitFramePointers="true"
AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_LZO;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;;_SQ64;WITH_ASSERT"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_EXCEPTION_TRACKER;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;;_SQ64"
StringPooling="true"
ExceptionHandling="1"
RuntimeLibrary="0"
@@ -308,7 +308,7 @@
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib lzo2.lib dxguid.lib libfreetype2.lib libicu.lib"
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib dxguid.lib libfreetype2.lib libicu.lib"
LinkIncremental="1"
SuppressStartupBanner="true"
IgnoreDefaultLibraryNames=""
@@ -380,7 +380,7 @@
AdditionalOptions="/MP"
Optimization="0"
AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_LZO;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;;_SQ64"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;;_SQ64"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
UsePrecompiledHeader="0"
@@ -410,7 +410,7 @@
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib lzo2.lib dxguid.lib libfreetype2.lib libicu.lib"
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib dxguid.lib libfreetype2.lib libicu.lib"
LinkIncremental="0"
SuppressStartupBanner="true"
IgnoreDefaultLibraryNames="LIBCMT.lib"
@@ -468,10 +468,18 @@
RelativePath=".\..\src\autoreplace.cpp"
>
</File>
<File
RelativePath=".\..\src\aystar.cpp"
>
</File>
<File
RelativePath=".\..\src\bmp.cpp"
>
</File>
<File
RelativePath=".\..\src\callback_table.cpp"
>
</File>
<File
RelativePath=".\..\src\cargopacket.cpp"
>
@@ -496,10 +504,6 @@
RelativePath=".\..\src\console_cmds.cpp"
>
</File>
<File
RelativePath=".\..\src\crashlog.cpp"
>
</File>
<File
RelativePath=".\..\src\currency.cpp"
>
@@ -588,6 +592,14 @@
RelativePath=".\..\src\map.cpp"
>
</File>
<File
RelativePath=".\..\src\md5.cpp"
>
</File>
<File
RelativePath=".\..\src\minilzo.cpp"
>
</File>
<File
RelativePath=".\..\src\misc.cpp"
>
@@ -600,6 +612,10 @@
RelativePath=".\..\src\music.cpp"
>
</File>
<File
RelativePath=".\..\src\namegen.cpp"
>
</File>
<File
RelativePath=".\..\src\network\network.cpp"
>
@@ -628,6 +644,14 @@
RelativePath=".\..\src\network\network_udp.cpp"
>
</File>
<File
RelativePath=".\..\src\npf.cpp"
>
</File>
<File
RelativePath=".\..\src\oldpool.cpp"
>
</File>
<File
RelativePath=".\..\src\openttd.cpp"
>
@@ -636,10 +660,22 @@
RelativePath=".\..\src\os_timer.cpp"
>
</File>
<File
RelativePath=".\..\src\ottdres.rc"
>
</File>
<File
RelativePath=".\..\src\pathfind.cpp"
>
</File>
<File
RelativePath=".\..\src\pbs.cpp"
>
</File>
<File
RelativePath=".\..\src\queue.cpp"
>
</File>
<File
RelativePath=".\..\src\rail.cpp"
>
@@ -652,10 +688,6 @@
RelativePath=".\..\src\road.cpp"
>
</File>
<File
RelativePath=".\..\src\roadstop.cpp"
>
</File>
<File
RelativePath=".\..\src\screenshot.cpp"
>
@@ -680,10 +712,6 @@
RelativePath=".\..\src\sound.cpp"
>
</File>
<File
RelativePath=".\..\src\sprite.cpp"
>
</File>
<File
RelativePath=".\..\src\spritecache.cpp"
>
@@ -700,10 +728,6 @@
RelativePath=".\..\src\strings.cpp"
>
</File>
<File
RelativePath=".\..\src\subsidy.cpp"
>
</File>
<File
RelativePath=".\..\src\texteff.cpp"
>
@@ -713,11 +737,11 @@
>
</File>
<File
RelativePath=".\..\src\tile_map.cpp"
RelativePath=".\..\src\thread_win32.cpp"
>
</File>
<File
RelativePath=".\..\src\townname.cpp"
RelativePath=".\..\src\tile_map.cpp"
>
</File>
<File
@@ -740,6 +764,10 @@
RelativePath=".\..\src\widget.cpp"
>
</File>
<File
RelativePath=".\..\src\win32.cpp"
>
</File>
<File
RelativePath=".\..\src\window.cpp"
>
@@ -756,6 +784,10 @@
RelativePath=".\..\src\airport.h"
>
</File>
<File
RelativePath=".\..\src\airport_movement.h"
>
</File>
<File
RelativePath=".\..\src\animated_tile_func.h"
>
@@ -785,15 +817,7 @@
>
</File>
<File
RelativePath=".\..\src\base_media_base.h"
>
</File>
<File
RelativePath=".\..\src\base_media_func.h"
>
</File>
<File
RelativePath=".\..\src\base_station_base.h"
RelativePath=".\..\src\aystar.h"
>
</File>
<File
@@ -804,6 +828,10 @@
RelativePath=".\..\src\bridge.h"
>
</File>
<File
RelativePath=".\..\src\callback_table.h"
>
</File>
<File
RelativePath=".\..\src\cargo_type.h"
>
@@ -872,10 +900,6 @@
RelativePath=".\..\src\console_type.h"
>
</File>
<File
RelativePath=".\..\src\crashlog.h"
>
</File>
<File
RelativePath=".\..\src\currency.h"
>
@@ -884,10 +908,6 @@
RelativePath=".\..\src\date_func.h"
>
</File>
<File
RelativePath=".\..\src\date_gui.h"
>
</File>
<File
RelativePath=".\..\src\date_type.h"
>
@@ -1040,14 +1060,6 @@
RelativePath=".\..\src\highscore.h"
>
</File>
<File
RelativePath=".\..\src\house.h"
>
</File>
<File
RelativePath=".\..\src\house_type.h"
>
</File>
<File
RelativePath=".\..\src\industry.h"
>
@@ -1056,10 +1068,6 @@
RelativePath=".\..\src\industry_type.h"
>
</File>
<File
RelativePath=".\..\src\industrytype.h"
>
</File>
<File
RelativePath=".\..\src\ini_type.h"
>
@@ -1076,6 +1084,10 @@
RelativePath=".\..\src\livery.h"
>
</File>
<File
RelativePath=".\..\src\lzoconf.h"
>
</File>
<File
RelativePath=".\..\src\map_func.h"
>
@@ -1084,10 +1096,26 @@
RelativePath=".\..\src\map_type.h"
>
</File>
<File
RelativePath=".\..\src\md5.h"
>
</File>
<File
RelativePath=".\..\src\minilzo.h"
>
</File>
<File
RelativePath=".\..\src\mixer.h"
>
</File>
<File
RelativePath=".\..\src\music.h"
>
</File>
<File
RelativePath=".\..\src\namegen_func.h"
>
</File>
<File
RelativePath=".\..\src\network\network.h"
>
@@ -1176,10 +1204,6 @@
RelativePath=".\..\src\newgrf_industrytiles.h"
>
</File>
<File
RelativePath=".\..\src\newgrf_properties.h"
>
</File>
<File
RelativePath=".\..\src\newgrf_sound.h"
>
@@ -1220,6 +1244,10 @@
RelativePath=".\..\src\news_type.h"
>
</File>
<File
RelativePath=".\..\src\npf.h"
>
</File>
<File
RelativePath=".\..\src\music\null_m.h"
>
@@ -1232,6 +1260,14 @@
RelativePath=".\..\src\video\null_v.h"
>
</File>
<File
RelativePath=".\..\src\oldpool.h"
>
</File>
<File
RelativePath=".\..\src\oldpool_func.h"
>
</File>
<File
RelativePath=".\..\src\openttd.h"
>
@@ -1248,6 +1284,10 @@
RelativePath=".\..\src\order_type.h"
>
</File>
<File
RelativePath=".\..\src\pathfind.h"
>
</File>
<File
RelativePath=".\..\src\pbs.h"
>
@@ -1256,6 +1296,10 @@
RelativePath=".\..\src\querystring_gui.h"
>
</File>
<File
RelativePath=".\..\src\queue.h"
>
</File>
<File
RelativePath=".\..\src\rail.h"
>
@@ -1292,10 +1336,6 @@
RelativePath=".\..\src\road_type.h"
>
</File>
<File
RelativePath=".\..\src\roadstop_base.h"
>
</File>
<File
RelativePath=".\..\src\roadveh.h"
>
@@ -1424,18 +1464,6 @@
RelativePath=".\..\src\strings_type.h"
>
</File>
<File
RelativePath=".\..\src\subsidy_base.h"
>
</File>
<File
RelativePath=".\..\src\subsidy_func.h"
>
</File>
<File
RelativePath=".\..\src\subsidy_type.h"
>
</File>
<File
RelativePath=".\..\src\tar_type.h"
>
@@ -1457,7 +1485,7 @@
>
</File>
<File
RelativePath=".\..\src\tilearea_type.h"
RelativePath=".\..\src\thread.h"
>
</File>
<File
@@ -1492,14 +1520,6 @@
RelativePath=".\..\src\town_type.h"
>
</File>
<File
RelativePath=".\..\src\townname_func.h"
>
</File>
<File
RelativePath=".\..\src\townname_type.h"
>
</File>
<File
RelativePath=".\..\src\track_func.h"
>
@@ -1573,11 +1593,11 @@
>
</File>
<File
RelativePath=".\..\src\waypoint_base.h"
RelativePath=".\..\src\waypoint.h"
>
</File>
<File
RelativePath=".\..\src\waypoint_func.h"
RelativePath=".\..\src\waypoint_type.h"
>
</File>
<File
@@ -1585,7 +1605,7 @@
>
</File>
<File
RelativePath=".\..\src\os\windows\win32.h"
RelativePath=".\..\src\win32.h"
>
</File>
<File
@@ -1656,22 +1676,10 @@
RelativePath=".\..\src\core\enum_type.hpp"
>
</File>
<File
RelativePath=".\..\src\core\geometry_func.cpp"
>
</File>
<File
RelativePath=".\..\src\core\geometry_func.hpp"
>
</File>
<File
RelativePath=".\..\src\core\geometry_type.hpp"
>
</File>
<File
RelativePath=".\..\src\core\math_func.cpp"
>
</File>
<File
RelativePath=".\..\src\core\math_func.hpp"
>
@@ -1684,14 +1692,6 @@
RelativePath=".\..\src\core\overflowsafe_type.hpp"
>
</File>
<File
RelativePath=".\..\src\core\pool_func.hpp"
>
</File>
<File
RelativePath=".\..\src\core\pool_type.hpp"
>
</File>
<File
RelativePath=".\..\src\core\random_func.cpp"
>
@@ -1752,10 +1752,6 @@
RelativePath=".\..\src\console_gui.cpp"
>
</File>
<File
RelativePath=".\..\src\date_gui.cpp"
>
</File>
<File
RelativePath=".\..\src\depot_gui.cpp"
>
@@ -1904,10 +1900,6 @@
RelativePath=".\..\src\vehicle_gui.cpp"
>
</File>
<File
RelativePath=".\..\src\viewport_gui.cpp"
>
</File>
<File
RelativePath=".\..\src\waypoint_gui.cpp"
>
@@ -2092,10 +2084,6 @@
RelativePath=".\..\src\saveload\industry_sl.cpp"
>
</File>
<File
RelativePath=".\..\src\saveload\labelmaps_sl.cpp"
>
</File>
<File
RelativePath=".\..\src\saveload\map_sl.cpp"
>
@@ -2168,18 +2156,6 @@
<Filter
Name="Tables"
>
<File
RelativePath=".\..\src\table\airport_defaults.h"
>
</File>
<File
RelativePath=".\..\src\table\airporttiles.h"
>
</File>
<File
RelativePath=".\..\src\table\airport_movement.h"
>
</File>
<File
RelativePath=".\..\src\table\animcursors.h"
>
@@ -2216,6 +2192,10 @@
RelativePath=".\..\src\table\engines.h"
>
</File>
<File
RelativePath=".\..\src\table\files.h"
>
</File>
<File
RelativePath=".\..\src\table\genland.h"
>
@@ -2228,6 +2208,10 @@
RelativePath=".\..\src\table\landscape_sprite.h"
>
</File>
<File
RelativePath=".\..\src\table\namegen.h"
>
</File>
<File
RelativePath=".\..\src\table\palette_convert.h"
>
@@ -2236,10 +2220,6 @@
RelativePath=".\..\src\table\palettes.h"
>
</File>
<File
RelativePath=".\..\src\table\pricebase.h"
>
</File>
<File
RelativePath=".\..\src\table\railtypes.h"
>
@@ -2252,10 +2232,6 @@
RelativePath=".\..\src\table\roadveh_movement.h"
>
</File>
<File
RelativePath=".\..\src\table\settings.h"
>
</File>
<File
RelativePath=".\..\src\table\sprites.h"
>
@@ -2264,10 +2240,6 @@
RelativePath=".\..\src\table\station_land.h"
>
</File>
<File
RelativePath=".\..\src\table\strgen_tables.h"
>
</File>
<File
RelativePath=".\..\src\..\objs\langs\table\strings.h"
>
@@ -2276,10 +2248,6 @@
RelativePath=".\..\src\table\town_land.h"
>
</File>
<File
RelativePath=".\..\src\table\townname.h"
>
</File>
<File
RelativePath=".\..\src\table\track_land.h"
>
@@ -2305,37 +2273,9 @@
>
</File>
</Filter>
<Filter
Name="MD5"
>
<File
RelativePath=".\..\src\3rdparty\md5\md5.cpp"
>
</File>
<File
RelativePath=".\..\src\3rdparty\md5\md5.h"
>
</File>
</Filter>
<Filter
Name="Script"
>
<File
RelativePath=".\..\src\script\script_info.cpp"
>
</File>
<File
RelativePath=".\..\src\script\script_info.hpp"
>
</File>
<File
RelativePath=".\..\src\script\script_scanner.cpp"
>
</File>
<File
RelativePath=".\..\src\script\script_scanner.hpp"
>
</File>
<File
RelativePath=".\..\src\script\squirrel.cpp"
>
@@ -2412,10 +2352,6 @@
RelativePath=".\..\src\3rdparty\squirrel\sqstdlib\sqstdaux.cpp"
>
</File>
<File
RelativePath=".\..\src\3rdparty\squirrel\sqstdlib\sqstdmath.cpp"
>
</File>
<File
RelativePath=".\..\src\3rdparty\squirrel\squirrel\sqtable.cpp"
>
@@ -2608,10 +2544,6 @@
RelativePath=".\..\src\ai\api\ai_base.hpp"
>
</File>
<File
RelativePath=".\..\src\ai\api\ai_basestation.hpp"
>
</File>
<File
RelativePath=".\..\src\ai\api\ai_bridge.hpp"
>
@@ -2828,10 +2760,6 @@
RelativePath=".\..\src\ai\api\ai_base.cpp"
>
</File>
<File
RelativePath=".\..\src\ai\api\ai_basestation.cpp"
>
</File>
<File
RelativePath=".\..\src\ai\api\ai_bridge.cpp"
>
@@ -3332,6 +3260,10 @@
RelativePath=".\..\src\misc\str.hpp"
>
</File>
<File
RelativePath=".\..\src\misc\strapi.hpp"
>
</File>
</Filter>
<Filter
Name="Network Core"
@@ -3417,127 +3349,71 @@
>
</File>
</Filter>
<Filter
Name="Pathfinder"
>
<File
RelativePath=".\..\src\pathfinder\follow_track.hpp"
>
</File>
<File
RelativePath=".\..\src\pathfinder\opf\opf_ship.cpp"
>
</File>
<File
RelativePath=".\..\src\pathfinder\opf\opf_ship.h"
>
</File>
<File
RelativePath=".\..\src\pathfinder\pathfinder_func.h"
>
</File>
<File
RelativePath=".\..\src\pathfinder\pathfinder_type.h"
>
</File>
<File
RelativePath=".\..\src\pathfinder\pf_performance_timer.hpp"
>
</File>
</Filter>
<Filter
Name="NPF"
>
<File
RelativePath=".\..\src\pathfinder\npf\aystar.cpp"
>
</File>
<File
RelativePath=".\..\src\pathfinder\npf\aystar.h"
>
</File>
<File
RelativePath=".\..\src\pathfinder\npf\npf.cpp"
>
</File>
<File
RelativePath=".\..\src\pathfinder\npf\npf_func.h"
>
</File>
<File
RelativePath=".\..\src\pathfinder\npf\queue.cpp"
>
</File>
<File
RelativePath=".\..\src\pathfinder\npf\queue.h"
>
</File>
</Filter>
<Filter
Name="YAPF"
>
<File
RelativePath=".\..\src\pathfinder\yapf\nodelist.hpp"
RelativePath=".\..\src\yapf\follow_track.hpp"
>
</File>
<File
RelativePath=".\..\src\pathfinder\yapf\yapf.h"
RelativePath=".\..\src\yapf\nodelist.hpp"
>
</File>
<File
RelativePath=".\..\src\pathfinder\yapf\yapf.hpp"
RelativePath=".\..\src\yapf\yapf.h"
>
</File>
<File
RelativePath=".\..\src\pathfinder\yapf\yapf_base.hpp"
RelativePath=".\..\src\yapf\yapf.hpp"
>
</File>
<File
RelativePath=".\..\src\pathfinder\yapf\yapf_cache.h"
RelativePath=".\..\src\yapf\yapf_base.hpp"
>
</File>
<File
RelativePath=".\..\src\pathfinder\yapf\yapf_common.hpp"
RelativePath=".\..\src\yapf\yapf_common.hpp"
>
</File>
<File
RelativePath=".\..\src\pathfinder\yapf\yapf_costbase.hpp"
RelativePath=".\..\src\yapf\yapf_costbase.hpp"
>
</File>
<File
RelativePath=".\..\src\pathfinder\yapf\yapf_costcache.hpp"
RelativePath=".\..\src\yapf\yapf_costcache.hpp"
>
</File>
<File
RelativePath=".\..\src\pathfinder\yapf\yapf_costrail.hpp"
RelativePath=".\..\src\yapf\yapf_costrail.hpp"
>
</File>
<File
RelativePath=".\..\src\pathfinder\yapf\yapf_destrail.hpp"
RelativePath=".\..\src\yapf\yapf_destrail.hpp"
>
</File>
<File
RelativePath=".\..\src\pathfinder\yapf\yapf_node.hpp"
RelativePath=".\..\src\yapf\yapf_node.hpp"
>
</File>
<File
RelativePath=".\..\src\pathfinder\yapf\yapf_node_rail.hpp"
RelativePath=".\..\src\yapf\yapf_node_rail.hpp"
>
</File>
<File
RelativePath=".\..\src\pathfinder\yapf\yapf_node_road.hpp"
RelativePath=".\..\src\yapf\yapf_node_road.hpp"
>
</File>
<File
RelativePath=".\..\src\pathfinder\yapf\yapf_rail.cpp"
RelativePath=".\..\src\yapf\yapf_rail.cpp"
>
</File>
<File
RelativePath=".\..\src\pathfinder\yapf\yapf_road.cpp"
RelativePath=".\..\src\yapf\yapf_road.cpp"
>
</File>
<File
RelativePath=".\..\src\pathfinder\yapf\yapf_ship.cpp"
RelativePath=".\..\src\yapf\yapf_ship.cpp"
>
</File>
</Filter>
@@ -3565,11 +3441,11 @@
Name="Music"
>
<File
RelativePath=".\..\src\music\dmusic.cpp"
RelativePath=".\..\src\music\null_m.cpp"
>
</File>
<File
RelativePath=".\..\src\music\null_m.cpp"
RelativePath=".\..\src\music\dmusic.cpp"
>
</File>
<File
@@ -3593,40 +3469,12 @@
>
</File>
</Filter>
<Filter
Name="Windows files"
>
<File
RelativePath=".\..\src\os\windows\crashlog_win.cpp"
>
</File>
<File
RelativePath=".\..\src\os\windows\ottdres.rc"
>
</File>
<File
RelativePath=".\..\src\os\windows\win32.cpp"
>
</File>
</Filter>
<Filter
Name="Threading"
>
<File
RelativePath=".\..\src\thread\thread.h"
>
</File>
<File
RelativePath=".\..\src\thread\thread_win32.cpp"
>
</File>
</Filter>
<Filter
Name="64-bit Specific Files"
Filter="asm"
>
<File
RelativePath=".\..\src\os\windows\win64.asm"
RelativePath=".\..\src\win64.asm"
>
<FileConfiguration
Name="Release|Win32"

View File

@@ -17,7 +17,7 @@
</Platforms>
<ToolFiles>
<ToolFile
RelativePath="..\src\os\windows\masm64.rules"
RelativePath="..\src\masm64.rules"
/>
</ToolFiles>
<Configurations>
@@ -61,7 +61,7 @@
FavorSizeOrSpeed="2"
OmitFramePointers="true"
AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_LZO;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;;WITH_ASSERT"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_EXCEPTION_TRACKER;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;"
StringPooling="true"
ExceptionHandling="1"
RuntimeLibrary="0"
@@ -98,7 +98,7 @@
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib lzo2.lib dxguid.lib libfreetype2.lib libicu.lib"
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib dxguid.lib libfreetype2.lib libicu.lib"
LinkIncremental="1"
SuppressStartupBanner="true"
IgnoreDefaultLibraryNames=""
@@ -168,7 +168,7 @@
AdditionalOptions="/MP"
Optimization="0"
AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_LZO;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
UsePrecompiledHeader="0"
@@ -196,7 +196,7 @@
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib lzo2.lib dxguid.lib libfreetype2.lib libicu.lib"
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib dxguid.lib libfreetype2.lib libicu.lib"
LinkIncremental="0"
SuppressStartupBanner="true"
IgnoreDefaultLibraryNames="LIBCMT.lib"
@@ -271,7 +271,7 @@
FavorSizeOrSpeed="2"
OmitFramePointers="true"
AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_LZO;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;;_SQ64;WITH_ASSERT"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_EXCEPTION_TRACKER;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;;_SQ64"
StringPooling="true"
ExceptionHandling="1"
RuntimeLibrary="0"
@@ -308,7 +308,7 @@
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib lzo2.lib dxguid.lib libfreetype2.lib libicu.lib"
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib dxguid.lib libfreetype2.lib libicu.lib"
LinkIncremental="1"
SuppressStartupBanner="true"
IgnoreDefaultLibraryNames=""
@@ -380,7 +380,7 @@
AdditionalOptions="/MP"
Optimization="0"
AdditionalIncludeDirectories="..\objs\langs;..\src\3rdparty\squirrel\include"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_LZO;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;;_SQ64"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_ZLIB;WITH_PNG;WITH_FREETYPE;WITH_ICU;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;;_SQ64"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
UsePrecompiledHeader="0"
@@ -410,7 +410,7 @@
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib lzo2.lib dxguid.lib libfreetype2.lib libicu.lib"
AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib dxguid.lib libfreetype2.lib libicu.lib"
LinkIncremental="0"
SuppressStartupBanner="true"
IgnoreDefaultLibraryNames="LIBCMT.lib"
@@ -455,7 +455,7 @@
Filter="asm"
>
<File
RelativePath=".\..\src\os\windows\win64.asm"
RelativePath=".\..\src\win64.asm"
>
<FileConfiguration
Name="Release|Win32"

View File

@@ -35,7 +35,7 @@
</References>
<Files>
<File
RelativePath="..\src\os\windows\ottdres.rc.in"
RelativePath="..\src\ottdres.rc.in"
>
</File>
<File

View File

@@ -36,7 +36,7 @@
</References>
<Files>
<File
RelativePath="..\src\os\windows\ottdres.rc.in"
RelativePath="..\src\ottdres.rc.in"
>
</File>
<File

View File

@@ -1,6 +1,6 @@
OpenTTD README
Last updated: 2010-01-21
Release version: 1.0.0-beta3
Last updated: 2009-12-01
Release version: 0.7.4
------------------------------------------------------------------------
@@ -19,8 +19,9 @@ Table of Contents:
7.0) Compiling
* 7.1) Required/optional libraries
8.0) Translating
* 8.1 Translation
* 8.2 Previewing
* 8.1 Guidelines
* 8.2 Translation
* 8.3 Previewing
9.0) Troubleshooting
X.X) Credits
@@ -65,10 +66,9 @@ When you are sure it is not already reported you should:
* Make sure you are not running a non-official binary, like a patch pack.
When you are playing with a patch pack you should report any bugs to the
forum thread related to that patch pack.
* Make it reproducible for the developers. In other words, create a savegame
* Make it reproducable for the developers. In other words, create a savegame
in which you can reproduce the issue once loaded. It is very useful to give
us the crash.dmp, crash.sav, crash.log and crash screenshot which are
created on crashes.
us the crash.dmp, crash.sav and crash.log which are created on crashes.
* Check whether the bug is already reported on our bug tracker. This includes
searching for recently closed bug reports as the bug might already be fixed.
@@ -87,9 +87,9 @@ following information in your bug report:
2.2) Reporting Desyncs:
---- ------------------
As desyncs are hard to make reproducible OpenTTD has the ability to log all
As desyncs are hard to make reproducable OpenTTD has the ability to log all
actions done by clients so we can replay the whole game in an effort to make
desyncs better reproducible. You need to turn this ability on. When turned
desyncs better reproducable. You need to turn this ability on. When turned
on an automatic savegame will be made once the map has been constructed in
the 'save/autosave' directory, see OpenTTD directories to know where to find
this directory. Furthermore the log file 'commands-out.log' will be created
@@ -148,7 +148,7 @@ are:
DOS - Allegro
FreeBSD - SDL
Linux - SDL or Allegro
MacOS X (universal) - Cocoa video and sound drivers
MacOS X (universal) - Cocoa video and sound drivers (SDL works too, but not 100% and not as a universal binary)
MorphOS - SDL
OpenBSD - SDL
OS/2 - SDL
@@ -187,49 +187,36 @@ an AI a message will be shown that the 'dummy' AI has been started.
4.1) (Required) 3rd party files:
---- ---------------------------
Before you run OpenTTD, you need to put the game's data files into a data/
Before you run OpenTTD, you need to put the game's datafiles into a data/
directory which can be located in various places addressed in the following
section.
As OpenTTD makes use of the original TTD artwork you will need the files listed
below, which you can find on a Transport Tycoon Deluxe CD-ROM.
The Windows installer optionally can copy these files from that CD-ROM.
For OpenTTD you need to acquire some third party data files. For this you have
the choice of using the original Transport Tycoon Deluxe data files or a set
of free data files.
List of the required files:
- sample.cat
- trg1r.grf
- trgcr.grf
- trghr.grf
- trgir.grf
- trgtr.grf
Alternatively you can use the TTD GRF files from the DOS version:
- TRG1.GRF
- TRGC.GRF
- TRGH.GRF
- TRGI.GRF
- TRGT.GRF
If you want the TTD music, copy the gm/ folder from the Windows version
of TTD to your OpenTTD folder (not your data folder - also explained in
the following sections).
Do NOT copy files included with OpenTTD into "shared" directories (explained in
the following sections) as sooner or later you will run into graphical glitches
when using other versions of the game.
4.1.1) Free graphics and sound files
------ -----------------------------
The free data files, split into OpenGFX for graphics and OpenSFX for sounds
can be found at:
- http://bundles.openttdcoop.org/opengfx/releases/ for OpenGFX
- http://bundles.openttdcoop.org/opensfx/releases/ for OpenSFX
Please follow the readme of these packages about the installation procedure.
The Windows installer can optionally download and install these packages.
4.1.2) Original Transport Tycoon Deluxe graphics and sound files
------ ---------------------------------------------------------
If you want to play with the original Transport Tycoon Deluxe data files you
have to copy the data files from the CD-ROM into the data/ directory. It does
not matter whether you copy them from the DOS or Windows version of Transport
Tycoon Deluxe. The Windows install can optionally copy these files.
You need to copy the following files:
- sample.cat
- trg1r.grf or TRG1.GRF
- trgcr.grf or TRGC.GRF
- trghr.grf or TRGH.GRF
- trgir.grf or TRGI.GRF
- trgtr.grf or TRGT.GRF
4.1.3) Original Transport Tycoon Deluxe music
------ --------------------------------------
If you want the TTD music, copy the gm/ folder from the Windows version
of TTD to your OpenTTD folder (not your data folder - also explained in
the following sections). The music from the DOS version does not work.
4.1.4) AIs
------ ---
If you want AIs use the in-game content downloader. If for some reason that is
not possible or you want to use an AI that has not been uploaded to the content
download system download the tar file and place it in the ai/ directory. If the
@@ -263,17 +250,17 @@ can be placed in a few different locations:
5. The installation directory (Linux only)
Linux: /usr/share/games/openttd
6. The application bundle (Mac OSX only)
It includes the OpenTTD files (grf+lng) and it will work as long as they aren't touched
It includes the OTTD files (grf+lng) and it will work as long as they aren't touched
Notes:
- Linux in the previous list means .deb, but most paths should be similar for others.
- The previous search order is also used for NewGRFs and openttd.cfg.
- The previous search order is also used for newgrfs and openttd.cfg.
- If openttd.cfg is not found, then it will be created using the 2, 4, 1, 3, 5 order.
- Savegames will be relative to the config file only if there is no save/
directory in paths with higher priority than the config file path, but
autosaves and screenshots will always be relative to the config file.
The preferred setup:
The prefered setup:
Place 3rd party files in shared directory (or in personal directory if you don't
have write access on shared directory) and have your openttd.cfg config file in
personal directory (where the game will then also place savegames and screenshots).
@@ -321,7 +308,7 @@ ways to affect game state possibly resulting in program crash or multiplayer
desyncs.
Easier way would be to forbid all these unsafe actions, but that would affect
game usability for many players. We certainly do not want that.
However, we receive bug reports because of this. To reduce time spent with
However, we receive bugreports because of this. To reduce time spent with
solving these problems, these potentially unsafe actions are logged in
the savegame (including crash.sav). Log is stored in crash logs, too.
@@ -330,15 +317,15 @@ Information logged:
* Adding / removing / changing order of NewGRFs
* Changing NewGRF parameters, loading compatible NewGRF
* Changing game mode (scenario editor <-> normal game)
* Loading game saved in a different OpenTTD / TTDPatch / TTD version
* Running a modified OpenTTD build
* Changing settings affecting NewGRF behaviour (non-network-safe settings)
* Loading game saved in a different OTTD / TTDPatch / TTD version
* Running a modified OTTD build
* Changing settings affecting NewGRF behaviour (non-networksafe settings)
* Changing landscape (by cheat)
* Triggering NewGRF bugs
No personal information is stored.
You can show the game log by typing 'gamelog' in the console or by running
You can show the gamelog by typing 'gamelog' in the console or by running
OpenTTD in debug mode.
@@ -360,9 +347,9 @@ Windows:
you need to add WITH_SDL to the project settings.
PNG (WITH_PNG) and ZLIB (WITH_ZLIB) support is enabled by default. For these
to work you need their development files. For best results, download the
openttd-useful.zip file from http://www.openttd.org/download-openttd-useful
Put the header files into your compiler's include/ directory and the
library (.lib) files into the lib/ directory.
openttd-useful.zip file from SourceForge under the Files tab. Put the header
files into your compiler's include/ directory and the library (.lib) files
into the lib/ directory.
For more help with VS see docs/Readme_Windows_MSVC.txt.
You can also build it using the Makefile with MSYS/MinGW or Cygwin/MinGW.
@@ -410,7 +397,6 @@ DOS:
The following libraries are used by OpenTTD for:
- libSDL/liballegro: hardware access (video, sound, mouse)
- zlib: (de)compressing of savegames
- liblzo2: (de)compressing of old (pre 0.3.0) savegames
- libpng: making screenshots and loading heightmaps
- libfreetype: loading generic fonts and rendering them
- libfontconfig: searching for fonts, resolving font names to actual fonts
@@ -432,11 +418,15 @@ simply follow the guidelines in the FAQ of the translator website.
If for some reason the website is down for a longer period of time, the
information below might be of help.
Please contact the translations manager (http://www.openttd.org/contact)
before beginning the translation process! This avoids double work, as
someone else may have already started translating to the same language.
8.1) Guidelines:
---- -------------------
Here are some translation guidelines which you should follow closely.
8.1) Translation:
* Please contact the development team before beginning the translation
process! This avoids double work, as someone else may have already
started translating to the same language.
8.2) Translation:
---- -------------------
So, now that you've notified the development team about your intention to
translate (You did, right? Of course you did.) you can pick up english.txt
@@ -454,7 +444,7 @@ Note: Do not alter the following parts of the file:
* Lines beginning with ## (such as ##id), other than the first two lines of
the file
8.2) Previewing:
8.3) Previewing:
---- -------------------
In order to view the translation in the game, you need to compile your language
file with the strgen utility. You can download the precompiled strgen from:
@@ -491,7 +481,7 @@ The most frequent problem is missing data files. Don't forget to put all GRF
files from TTD into your data/ folder including sample.cat!
Under Windows 98 and lower it is impossible to use a dedicated server; it will
fail to start. Perhaps this is for the better because those OSes are not known
fail to start. Perhaps this is for the better because those OS's are not known
for their stability.
With the added support for font-based text selecting a non-latin language will
@@ -500,7 +490,7 @@ file and add a desired font for small/medium/-and large_font. This can be a font
name like "Tahoma" or a path to a font.
Any NewGRF file used in a game is stored inside the savegame and will refuse
to load if you don't have that NewGRF file available. A list of missing files
to load if you don't have that grf file available. A list of missing files
will be output to the console at the moment, so use the '-d' flag (on windows)
to see this list. You just have to find the files (http://grfcrawler.tt-forums.net/)
put them in the data/ folder and you're set to go.
@@ -547,6 +537,7 @@ Thanks to:
Christian Rosentreter (tokai) - MorphOS / AmigaOS port
Richard Kempton (RichK67) - Additional airports, initial TGP implementation
Alberto Demichelis - Squirrel scripting language
Markus F.X.J. Oberhumer - MiniLZO for loading old savegames
L. Peter Deutsch - MD5 implementation
Michael Blunck - For revolutionizing TTD with awesome graphics
George - Canal graphics

View File

@@ -3,14 +3,15 @@ airport.cpp
animated_tile.cpp
articulated_vehicles.cpp
autoreplace.cpp
aystar.cpp
bmp.cpp
callback_table.cpp
cargopacket.cpp
cargotype.cpp
cheat.cpp
command.cpp
console.cpp
console_cmds.cpp
crashlog.cpp
currency.cpp
date.cpp
debug.cpp
@@ -33,9 +34,12 @@ highscore.cpp
ini.cpp
landscape.cpp
map.cpp
md5.cpp
minilzo.cpp
misc.cpp
mixer.cpp
music.cpp
namegen.cpp
network/network.cpp
network/network_client.cpp
network/network_command.cpp
@@ -43,13 +47,22 @@ network/network_content.cpp
network/network_gamelist.cpp
network/network_server.cpp
network/network_udp.cpp
npf.cpp
oldpool.cpp
openttd.cpp
os_timer.cpp
#if WIN32
ottdres.rc
#end
#if WINCE
ottdres.rc
#end
pathfind.cpp
pbs.cpp
queue.cpp
rail.cpp
rev.cpp
road.cpp
roadstop.cpp
screenshot.cpp
#if SDL
sdl.cpp
@@ -58,29 +71,39 @@ settings.cpp
signal.cpp
signs.cpp
sound.cpp
sprite.cpp
spritecache.cpp
station.cpp
string.cpp
strings.cpp
subsidy.cpp
texteff.cpp
tgp.cpp
#if HAVE_THREAD
#if WIN32
thread_win32.cpp
#else
#if OS2
thread_os2.cpp
#else
#if MORPHOS
thread_morphos.cpp
#else
thread_pthread.cpp
#end
#end
#end
#else
thread_none.cpp
#end
tile_map.cpp
townname.cpp
#if WIN32
#else
#if WINCE
win32.cpp
#else
#if OS2
os/os2/os2.cpp
os2.cpp
#else
#if OSX
os/macosx/crashlog_osx.cpp
#else
os/unix/crashlog_unix.cpp
#end
os/unix/unix.cpp
unix.cpp
#end
#end
#end
@@ -89,6 +112,9 @@ vehiclelist.cpp
viewport.cpp
waypoint.cpp
widget.cpp
#if WIN32
win32.cpp
#end
window.cpp
# Header Files
@@ -99,6 +125,7 @@ window.cpp
#end
aircraft.h
airport.h
airport_movement.h
animated_tile_func.h
articulated_vehicles.h
autoreplace_base.h
@@ -106,11 +133,10 @@ autoreplace_func.h
autoreplace_gui.h
autoreplace_type.h
autoslope.h
base_media_base.h
base_media_func.h
base_station_base.h
aystar.h
bmp.h
bridge.h
callback_table.h
cargo_type.h
cargopacket.h
cargotype.h
@@ -128,10 +154,8 @@ console_func.h
console_gui.h
console_internal.h
console_type.h
crashlog.h
currency.h
date_func.h
date_gui.h
date_type.h
debug.h
video/dedicated_v.h
@@ -170,18 +194,20 @@ group_type.h
gui.h
heightmap.h
highscore.h
house.h
house_type.h
industry.h
industry_type.h
industrytype.h
ini_type.h
landscape.h
landscape_type.h
livery.h
lzoconf.h
map_func.h
map_type.h
md5.h
minilzo.h
mixer.h
music.h
namegen_func.h
network/network.h
network/network_base.h
network/network_client.h
@@ -204,7 +230,6 @@ newgrf_generic.h
newgrf_house.h
newgrf_industries.h
newgrf_industrytiles.h
newgrf_properties.h
newgrf_sound.h
newgrf_spritegroup.h
newgrf_station.h
@@ -215,15 +240,20 @@ newgrf_townname.h
news_func.h
news_gui.h
news_type.h
npf.h
music/null_m.h
sound/null_s.h
video/null_v.h
oldpool.h
oldpool_func.h
openttd.h
order_base.h
order_func.h
order_type.h
pathfind.h
pbs.h
querystring_gui.h
queue.h
rail.h
rail_gui.h
rail_type.h
@@ -233,7 +263,6 @@ road_func.h
road_gui.h
road_internal.h
road_type.h
roadstop_base.h
roadveh.h
screenshot.h
sdl.h
@@ -266,15 +295,12 @@ string_func.h
string_type.h
strings_func.h
strings_type.h
subsidy_base.h
subsidy_func.h
subsidy_type.h
tar_type.h
terraform_gui.h
textbuf_gui.h
texteff.hpp
tgp.h
tilearea_type.h
thread.h
tile_cmd.h
tile_type.h
tilehighlight_func.h
@@ -283,8 +309,6 @@ timetable.h
toolbar_gui.h
town.h
town_type.h
townname_func.h
townname_type.h
track_func.h
track_type.h
train.h
@@ -303,10 +327,10 @@ vehiclelist.h
viewport_func.h
viewport_type.h
water.h
waypoint_base.h
waypoint_func.h
waypoint.h
waypoint_type.h
widget_type.h
os/windows/win32.h
win32.h
music/win32_m.h
sound/win32_s.h
video/win32_v.h
@@ -318,7 +342,6 @@ zoom_type.h
#if WIN32
#else
music/bemidi.h
music/cocoa_m.h
music/extmidi.h
music/libtimidity.h
music/os2_m.h
@@ -340,15 +363,10 @@ core/bitmath_func.hpp
core/endian_func.hpp
core/endian_type.hpp
core/enum_type.hpp
core/geometry_func.cpp
core/geometry_func.hpp
core/geometry_type.hpp
core/math_func.cpp
core/math_func.hpp
core/mem_func.hpp
core/overflowsafe_type.hpp
core/pool_func.hpp
core/pool_type.hpp
core/random_func.cpp
core/random_func.hpp
core/smallmap_type.hpp
@@ -365,7 +383,6 @@ build_vehicle_gui.cpp
cheat_gui.cpp
company_gui.cpp
console_gui.cpp
date_gui.cpp
depot_gui.cpp
dock_gui.cpp
engine_gui.cpp
@@ -403,7 +420,6 @@ train_gui.cpp
transparency_gui.cpp
tree_gui.cpp
vehicle_gui.cpp
viewport_gui.cpp
waypoint_gui.cpp
# Widgets
@@ -453,7 +469,6 @@ saveload/engine_sl.cpp
saveload/gamelog_sl.cpp
saveload/group_sl.cpp
saveload/industry_sl.cpp
saveload/labelmaps_sl.cpp
saveload/map_sl.cpp
saveload/misc_sl.cpp
saveload/newgrf_sl.cpp
@@ -473,9 +488,6 @@ saveload/vehicle_sl.cpp
saveload/waypoint_sl.cpp
# Tables
table/airport_defaults.h
table/airporttiles.h
table/airport_movement.h
table/animcursors.h
table/autorail.h
table/bridge_land.h
@@ -485,22 +497,20 @@ table/clear_land.h
table/control_codes.h
table/elrail_data.h
table/engines.h
table/files.h
table/genland.h
table/industry_land.h
table/landscape_sprite.h
table/namegen.h
table/palette_convert.h
table/palettes.h
table/pricebase.h
table/railtypes.h
table/road_land.h
table/roadveh_movement.h
table/settings.h
table/sprites.h
table/station_land.h
table/strgen_tables.h
../objs/langs/table/strings.h
table/town_land.h
table/townname.h
table/track_land.h
table/train_cmd.h
table/tree_land.h
@@ -508,15 +518,7 @@ table/unicode.h
table/unmovable_land.h
table/water_land.h
# MD5
3rdparty/md5/md5.cpp
3rdparty/md5/md5.h
# Script
script/script_info.cpp
script/script_info.hpp
script/script_scanner.cpp
script/script_scanner.hpp
script/squirrel.cpp
script/squirrel.hpp
script/squirrel_class.hpp
@@ -537,7 +539,6 @@ script/squirrel_std.hpp
3rdparty/squirrel/squirrel/sqobject.cpp
3rdparty/squirrel/squirrel/sqstate.cpp
3rdparty/squirrel/sqstdlib/sqstdaux.cpp
3rdparty/squirrel/sqstdlib/sqstdmath.cpp
3rdparty/squirrel/squirrel/sqtable.cpp
3rdparty/squirrel/squirrel/sqvm.cpp
@@ -589,7 +590,6 @@ ai/api/ai_abstractlist.hpp
ai/api/ai_accounting.hpp
ai/api/ai_airport.hpp
ai/api/ai_base.hpp
ai/api/ai_basestation.hpp
ai/api/ai_bridge.hpp
ai/api/ai_bridgelist.hpp
ai/api/ai_cargo.hpp
@@ -645,7 +645,6 @@ ai/api/ai_abstractlist.cpp
ai/api/ai_accounting.cpp
ai/api/ai_airport.cpp
ai/api/ai_base.cpp
ai/api/ai_basestation.cpp
ai/api/ai_bridge.cpp
ai/api/ai_bridgelist.cpp
ai/api/ai_cargo.cpp
@@ -782,6 +781,7 @@ misc/dbg_helpers.h
misc/fixedsizearray.hpp
misc/hashtable.hpp
misc/str.hpp
misc/strapi.hpp
# Network Core
network/core/address.cpp
@@ -805,39 +805,23 @@ network/core/tcp_game.h
network/core/udp.cpp
network/core/udp.h
# Pathfinder
pathfinder/follow_track.hpp
pathfinder/opf/opf_ship.cpp
pathfinder/opf/opf_ship.h
pathfinder/pathfinder_func.h
pathfinder/pathfinder_type.h
pathfinder/pf_performance_timer.hpp
# NPF
pathfinder/npf/aystar.cpp
pathfinder/npf/aystar.h
pathfinder/npf/npf.cpp
pathfinder/npf/npf_func.h
pathfinder/npf/queue.cpp
pathfinder/npf/queue.h
# YAPF
pathfinder/yapf/nodelist.hpp
pathfinder/yapf/yapf.h
pathfinder/yapf/yapf.hpp
pathfinder/yapf/yapf_base.hpp
pathfinder/yapf/yapf_cache.h
pathfinder/yapf/yapf_common.hpp
pathfinder/yapf/yapf_costbase.hpp
pathfinder/yapf/yapf_costcache.hpp
pathfinder/yapf/yapf_costrail.hpp
pathfinder/yapf/yapf_destrail.hpp
pathfinder/yapf/yapf_node.hpp
pathfinder/yapf/yapf_node_rail.hpp
pathfinder/yapf/yapf_node_road.hpp
pathfinder/yapf/yapf_rail.cpp
pathfinder/yapf/yapf_road.cpp
pathfinder/yapf/yapf_ship.cpp
yapf/follow_track.hpp
yapf/nodelist.hpp
yapf/yapf.h
yapf/yapf.hpp
yapf/yapf_base.hpp
yapf/yapf_common.hpp
yapf/yapf_costbase.hpp
yapf/yapf_costcache.hpp
yapf/yapf_costrail.hpp
yapf/yapf_destrail.hpp
yapf/yapf_node.hpp
yapf/yapf_node_rail.hpp
yapf/yapf_node_road.hpp
yapf/yapf_rail.cpp
yapf/yapf_road.cpp
yapf/yapf_ship.cpp
# Video
video/dedicated_v.cpp
@@ -859,6 +843,7 @@ video/null_v.cpp
#end
# Music
music/null_m.cpp
#if DEDICATED
#else
#if ALLEGRO
@@ -867,10 +852,6 @@ video/null_v.cpp
#if DIRECTMUSIC
music/dmusic.cpp
#end
#end
music/null_m.cpp
#if DEDICATED
#else
#if WIN32
music/win32_m.cpp
#else
@@ -923,39 +904,7 @@ sound/null_s.cpp
video/cocoa/fullscreen.mm
video/cocoa/wnd_quartz.mm
video/cocoa/wnd_quickdraw.mm
music/cocoa_m.cpp
sound/cocoa_s.cpp
os/macosx/splash.cpp
#end
#end
# Windows files
#if WIN32
os/windows/crashlog_win.cpp
os/windows/ottdres.rc
os/windows/win32.cpp
#end
#if WINCE
os/windows/ottdres.rc
os/windows/win32.cpp
#end
# Threading
thread/thread.h
#if HAVE_THREAD
#if WIN32
thread/thread_win32.cpp
#else
#if OS2
thread/thread_os2.cpp
#else
#if MORPHOS
thread/thread_morphos.cpp
#else
thread/thread_pthread.cpp
#end
#end
#end
#else
thread/thread_none.cpp
#end

View File

@@ -1,4 +1,4 @@
Squirrel 2.2.4 stable
Squirrel 2.2.1 stable
--------------------------------------------------------
What is in this distribution?

View File

@@ -1,4 +1,4 @@
Copyright (c) 2003-2009 Alberto Demichelis
Copyright (c) 2003-2008 Alberto Demichelis
This software is provided 'as-is', without any
express or implied warranty. In no event will the

View File

@@ -1,21 +1,3 @@
***version 2.2.4 stable***
-fixed bug in functions with default parameters
***2009-06-30 ***
***version 2.2.3 stable***
-added sq_getfunctioninfo
-added compile time flag SQUSEDOUBLE to use double precision floats
-added global slot _floatsize_ int the base lib to recognize single precision and double precision builds
-sq_wakeupvm can now resume the vm with an exception
-added sqstd_format
-generators can now be instantiated by calling sq_call() or closure.call()
-fixed a bug in sqstd_printcallstack(thx takayuki_h)
-fixed modulo by zero(thx jup)
-fixed negative enums and constants
-fixed generator crash bug if invoked as tail call (thx Mr.Accident)
-fixed some minor bug
***2008-09-24 ***
***version 2.2.2 stable***
-fixed some behaviour inconsistencies in thread.call() and thread.wakeup() (thx Mr.Accident)
-fixed coroutine error propagation

View File

@@ -1,4 +1,4 @@
The programming language SQUIRREL 2.2.4 stable
The programming language SQUIRREL 2.2.1 stable
--------------------------------------------------
The project has been compiled and run on Windows(Windows XP/2000 on Intel x86 Windows XP Pro on AMD x64) and

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@@ -22,8 +22,6 @@ SQUIRREL_API SQBool sqstd_rex_searchrange(SQRex* exp,const SQChar* text_begin,co
SQUIRREL_API SQInteger sqstd_rex_getsubexpcount(SQRex* exp);
SQUIRREL_API SQBool sqstd_rex_getsubexp(SQRex* exp, SQInteger n, SQRexMatch *subexp);
SQUIRREL_API SQRESULT sqstd_format(HSQUIRRELVM v,SQInteger nformatstringidx,SQInteger *outlen,SQChar **output);
SQUIRREL_API SQRESULT sqstd_register_stringlib(HSQUIRRELVM v);
#ifdef __cplusplus

View File

@@ -1,5 +1,5 @@
/*
Copyright (c) 2003-2009 Alberto Demichelis
Copyright (c) 2003-2008 Alberto Demichelis
This software is provided 'as-is', without any
express or implied warranty. In no event will the
@@ -68,24 +68,7 @@ typedef unsigned int SQHash; /*should be the same size of a pointer*/
#endif
#ifdef SQUSEDOUBLE
typedef double SQFloat;
#else
typedef float SQFloat;
#endif
#if defined(SQUSEDOUBLE) && !defined(_SQ64)
#ifdef _MSC_VER
typedef __int64 SQRawObjectVal; //must be 64bits
#else
typedef long SQRawObjectVal; //must be 64bits
#endif
#define SQ_OBJECT_RAWINIT() { _unVal.raw = 0; }
#else
typedef SQUnsignedInteger SQRawObjectVal; //is 32 bits on 32 bits builds and 64 bits otherwise
#define SQ_OBJECT_RAWINIT()
#endif
typedef void* SQUserPointer;
typedef SQUnsignedInteger SQBool;
typedef SQInteger SQRESULT;
@@ -176,8 +159,8 @@ typedef char SQChar;
#define MAX_CHAR 0xFF
#endif
#define SQUIRREL_VERSION _SC("Squirrel 2.2.4 stable - With custom OpenTTD modifications")
#define SQUIRREL_COPYRIGHT _SC("Copyright (C) 2003-2009 Alberto Demichelis")
#define SQUIRREL_VERSION _SC("Squirrel 2.2.2 stable - With custom OpenTTD modifications")
#define SQUIRREL_COPYRIGHT _SC("Copyright (C) 2003-2008 Alberto Demichelis")
#define SQUIRREL_AUTHOR _SC("Alberto Demichelis")
#define SQ_VMSTATE_IDLE 0
@@ -257,7 +240,6 @@ typedef union tagSQObjectValue
struct SQClass *pClass;
struct SQInstance *pInstance;
struct SQWeakRef *pWeakRef;
SQRawObjectVal raw;
}SQObjectValue;
@@ -292,13 +274,6 @@ typedef struct tagSQRegFunction{
const SQChar *typemask;
}SQRegFunction;
typedef struct tagSQFunctionInfo {
SQUserPointer funcid;
const SQChar *name;
const SQChar *source;
}SQFunctionInfo;
/*vm*/
SQUIRREL_API bool sq_can_suspend(HSQUIRRELVM v);
SQUIRREL_API HSQUIRRELVM sq_open(SQInteger initialstacksize);
@@ -312,9 +287,8 @@ SQUIRREL_API SQPRINTFUNCTION sq_getprintfunc(HSQUIRRELVM v);
SQUIRREL_API SQRESULT sq_suspendvm(HSQUIRRELVM v);
SQUIRREL_API bool sq_resumecatch(HSQUIRRELVM v, int suspend = -1);
SQUIRREL_API bool sq_resumeerror(HSQUIRRELVM v);
SQUIRREL_API SQRESULT sq_wakeupvm(HSQUIRRELVM v,SQBool resumedret,SQBool retval,SQBool raiseerror,SQBool throwerror);
SQUIRREL_API SQRESULT sq_wakeupvm(HSQUIRRELVM v,SQBool resumedret,SQBool retval,SQBool raiseerror);
SQUIRREL_API SQInteger sq_getvmstate(HSQUIRRELVM v);
SQUIRREL_API void sq_decreaseops(HSQUIRRELVM v, int amount);
/*compiler*/
SQUIRREL_API SQRESULT sq_compile(HSQUIRRELVM v,SQLEXREADFUNC read,SQUserPointer p,const SQChar *sourcename,SQBool raiseerror);
@@ -364,7 +338,6 @@ SQUIRREL_API SQRESULT sq_settypetag(HSQUIRRELVM v,SQInteger idx,SQUserPointer ty
SQUIRREL_API SQRESULT sq_gettypetag(HSQUIRRELVM v,SQInteger idx,SQUserPointer *typetag);
SQUIRREL_API void sq_setreleasehook(HSQUIRRELVM v,SQInteger idx,SQRELEASEHOOK hook);
SQUIRREL_API SQChar *sq_getscratchpad(HSQUIRRELVM v,SQInteger minsize);
SQUIRREL_API SQRESULT sq_getfunctioninfo(HSQUIRRELVM v,SQInteger idx,SQFunctionInfo *fi);
SQUIRREL_API SQRESULT sq_getclosureinfo(HSQUIRRELVM v,SQInteger idx,SQUnsignedInteger *nparams,SQUnsignedInteger *nfreevars);
SQUIRREL_API SQRESULT sq_setnativeclosurename(HSQUIRRELVM v,SQInteger idx,const SQChar *name);
SQUIRREL_API SQRESULT sq_setinstanceup(HSQUIRRELVM v, SQInteger idx, SQUserPointer p);

View File

@@ -20,4 +20,3 @@ if(ARGS.len()!=0) {
}
print("n="+n+"\n");
print("Ack(3,"+ n+ "):"+ Ack(3, n));

View File

@@ -59,9 +59,6 @@ void printfunc(HSQUIRRELVM v,const SQChar *s,...)
void PrintVersionInfos()
{
scfprintf(stdout,_SC("%s %s (%d bits)\n"),SQUIRREL_VERSION,SQUIRREL_COPYRIGHT,sizeof(SQInteger)*8);
if(sizeof(SQFloat) != sizeof(float)) {
scfprintf(stdout,_SC("[%d bits floats]\n"),sizeof(SQFloat)*8);
}
}
void PrintUsage()

View File

@@ -9,7 +9,6 @@ void sqstd_printcallstack(HSQUIRRELVM v)
if(pf) {
SQStackInfos si;
SQInteger i;
SQBool b;
SQFloat f;
const SQChar *s;
SQInteger level=1; //1 is to skip this function that is level 0
@@ -84,8 +83,8 @@ void sqstd_printcallstack(HSQUIRRELVM v)
pf(v,_SC("[%s] WEAKREF\n"),name);
break;
case OT_BOOL:{
sq_getbool(v,-1,&b);
pf(v,_SC("[%s] %s\n"),name,b?_SC("true"):_SC("false"));
sq_getinteger(v,-1,&i);
pf(v,_SC("[%s] %s\n"),name,i?_SC("true"):_SC("false"));
}
break;
default: assert(0); break;

View File

@@ -4,24 +4,21 @@
#include <stdlib.h>
#include <sqstdmath.h>
#define SINGLE_ARG_FUNC(_funcname, num_ops) static SQInteger math_##_funcname(HSQUIRRELVM v){ \
#define SINGLE_ARG_FUNC(_funcname) static SQInteger math_##_funcname(HSQUIRRELVM v){ \
SQFloat f; \
sq_decreaseops(v,num_ops); \
sq_getfloat(v,2,&f); \
sq_pushfloat(v,(SQFloat)_funcname(f)); \
return 1; \
}
#define TWO_ARGS_FUNC(_funcname, num_ops) static SQInteger math_##_funcname(HSQUIRRELVM v){ \
#define TWO_ARGS_FUNC(_funcname) static SQInteger math_##_funcname(HSQUIRRELVM v){ \
SQFloat p1,p2; \
sq_decreaseops(v,num_ops); \
sq_getfloat(v,2,&p1); \
sq_getfloat(v,3,&p2); \
sq_pushfloat(v,(SQFloat)_funcname(p1,p2)); \
return 1; \
}
#ifdef EXPORT_DEFAULT_SQUIRREL_FUNCTIONS
static SQInteger math_srand(HSQUIRRELVM v)
{
SQInteger i;
@@ -36,7 +33,6 @@ static SQInteger math_rand(HSQUIRRELVM v)
sq_pushinteger(v,rand());
return 1;
}
#endif /* EXPORT_DEFAULT_SQUIRREL_FUNCTIONS */
static SQInteger math_abs(HSQUIRRELVM v)
{
@@ -46,21 +42,21 @@ static SQInteger math_abs(HSQUIRRELVM v)
return 1;
}
SINGLE_ARG_FUNC(sqrt, 100)
SINGLE_ARG_FUNC(fabs, 1)
SINGLE_ARG_FUNC(sin, 100)
SINGLE_ARG_FUNC(cos, 100)
SINGLE_ARG_FUNC(asin, 100)
SINGLE_ARG_FUNC(acos, 100)
SINGLE_ARG_FUNC(log, 100)
SINGLE_ARG_FUNC(log10, 100)
SINGLE_ARG_FUNC(tan, 100)
SINGLE_ARG_FUNC(atan, 100)
TWO_ARGS_FUNC(atan2, 100)
TWO_ARGS_FUNC(pow, 100)
SINGLE_ARG_FUNC(floor, 1)
SINGLE_ARG_FUNC(ceil, 1)
SINGLE_ARG_FUNC(exp, 100)
SINGLE_ARG_FUNC(sqrt)
SINGLE_ARG_FUNC(fabs)
SINGLE_ARG_FUNC(sin)
SINGLE_ARG_FUNC(cos)
SINGLE_ARG_FUNC(asin)
SINGLE_ARG_FUNC(acos)
SINGLE_ARG_FUNC(log)
SINGLE_ARG_FUNC(log10)
SINGLE_ARG_FUNC(tan)
SINGLE_ARG_FUNC(atan)
TWO_ARGS_FUNC(atan2)
TWO_ARGS_FUNC(pow)
SINGLE_ARG_FUNC(floor)
SINGLE_ARG_FUNC(ceil)
SINGLE_ARG_FUNC(exp)
#define _DECL_FUNC(name,nparams,tycheck) {_SC(#name),math_##name,nparams,tycheck}
static SQRegFunction mathlib_funcs[] = {
@@ -78,10 +74,8 @@ static SQRegFunction mathlib_funcs[] = {
_DECL_FUNC(floor,2,_SC(".n")),
_DECL_FUNC(ceil,2,_SC(".n")),
_DECL_FUNC(exp,2,_SC(".n")),
#ifdef EXPORT_DEFAULT_SQUIRREL_FUNCTIONS
_DECL_FUNC(srand,2,_SC(".n")),
_DECL_FUNC(rand,1,NULL),
#endif /* EXPORT_DEFAULT_SQUIRREL_FUNCTIONS */
_DECL_FUNC(fabs,2,_SC(".n")),
_DECL_FUNC(abs,2,_SC(".n")),
{0,0,0,0},
@@ -102,11 +96,9 @@ SQRESULT sqstd_register_mathlib(HSQUIRRELVM v)
sq_createslot(v,-3);
i++;
}
#ifdef EXPORT_DEFAULT_SQUIRREL_FUNCTIONS
sq_pushstring(v,_SC("RAND_MAX"),-1);
sq_pushinteger(v,RAND_MAX);
sq_createslot(v,-3);
#endif /* EXPORT_DEFAULT_SQUIRREL_FUNCTIONS */
sq_pushstring(v,_SC("PI"),-1);
sq_pushfloat(v,(SQFloat)M_PI);
sq_createslot(v,-3);

View File

@@ -558,12 +558,12 @@ SQRex *sqstd_rex_compile(const SQChar *pattern,const SQChar **error)
#endif
exp->_matches = (SQRexMatch *) sq_malloc(exp->_nsubexpr * sizeof(SQRexMatch));
memset(exp->_matches,0,exp->_nsubexpr * sizeof(SQRexMatch));
return exp;
}
catch (...) {
sqstd_rex_free(exp);
return NULL;
}
return exp;
}
void sqstd_rex_free(SQRex *exp)

View File

@@ -79,16 +79,15 @@ static void _append_string(SQInteger &i, SQChar *dest, SQInteger allocated, cons
va_end(va);
}
SQRESULT sqstd_format(HSQUIRRELVM v,SQInteger nformatstringidx,SQInteger *outlen,SQChar **output)
static SQInteger _string_format(HSQUIRRELVM v)
{
const SQChar *format;
SQChar *dest;
SQChar fmt[MAX_FORMAT_LEN];
sq_getstring(v,nformatstringidx,&format);
SQInteger allocated = (sq_getsize(v,nformatstringidx)+2)*sizeof(SQChar);
sq_getstring(v,2,&format);
SQInteger allocated = (sq_getsize(v,2)+1)*sizeof(SQChar);
dest = sq_getscratchpad(v,allocated);
SQInteger n = 0,i = 0, nparam = nformatstringidx+1, w = 0;
SQInteger n = 0,i = 0, nparam = 3, w = 0;
while(format[n] != '\0') {
if(format[n] != '%') {
assert(i < allocated);
@@ -133,7 +132,7 @@ SQRESULT sqstd_format(HSQUIRRELVM v,SQInteger nformatstringidx,SQInteger *outlen
return sq_throwerror(v,_SC("invalid format"));
}
n++;
allocated += addlen + sizeof(SQChar);
allocated += addlen;
dest = sq_getscratchpad(v,allocated);
switch(valtype) {
case 's': _append_string(i,dest,allocated,fmt,ts); break;
@@ -143,19 +142,7 @@ SQRESULT sqstd_format(HSQUIRRELVM v,SQInteger nformatstringidx,SQInteger *outlen
nparam ++;
}
}
*outlen = i;
dest[i] = '\0';
*output = dest;
return SQ_OK;
}
static SQInteger _string_format(HSQUIRRELVM v)
{
SQChar *dest = NULL;
SQInteger length = 0;
if(SQ_FAILED(sqstd_format(v,2,&length,&dest)))
return -1;
sq_pushstring(v,dest,length);
sq_pushstring(v,dest,i);
return 1;
}

View File

@@ -90,11 +90,6 @@ SQInteger sq_getvmstate(HSQUIRRELVM v)
}
}
void sq_decreaseops(HSQUIRRELVM v, int amount)
{
v->DecreaseOps(amount);
}
bool sq_can_suspend(HSQUIRRELVM v)
{
return v->_nnativecalls <= 2;
@@ -989,7 +984,7 @@ SQRESULT sq_suspendvm(HSQUIRRELVM v)
return v->Suspend();
}
SQRESULT sq_wakeupvm(HSQUIRRELVM v,SQBool wakeupret,SQBool retval,SQBool raiseerror,SQBool throwerror)
SQRESULT sq_wakeupvm(HSQUIRRELVM v,SQBool wakeupret,SQBool retval,SQBool raiseerror)
{
SQObjectPtr ret;
if(!v->_suspended)
@@ -999,10 +994,8 @@ SQRESULT sq_wakeupvm(HSQUIRRELVM v,SQBool wakeupret,SQBool retval,SQBool raiseer
v->Pop();
} else v->GetAt(v->_stackbase+v->_suspended_target)=_null_;
v->_can_suspend = false;
if(!v->Execute(_null_,v->_top,-1,-1,ret,raiseerror,throwerror?SQVM::ET_RESUME_THROW_VM : SQVM::ET_RESUME_VM))
if(!v->Execute(_null_,v->_top,-1,-1,ret,raiseerror,SQVM::ET_RESUME_VM)) {
return SQ_ERROR;
if(sq_getvmstate(v) == SQ_VMSTATE_IDLE) {
while (v->_top > 1) v->_stack[--v->_top] = _null_;
}
if(retval)
v->Push(ret);

View File

@@ -277,9 +277,6 @@ void sq_base_register(HSQUIRRELVM v)
sq_pushstring(v,_SC("_intsize_"),-1);
sq_pushinteger(v,sizeof(SQInteger));
sq_createslot(v,-3);
sq_pushstring(v,_SC("_floatsize_"),-1);
sq_pushinteger(v,sizeof(SQFloat));
sq_createslot(v,-3);
sq_pop(v,1);
}
@@ -818,7 +815,7 @@ static SQInteger thread_wakeup(HSQUIRRELVM v)
if(wakeupret) {
sq_move(thread,v,2);
}
if(SQ_SUCCEEDED(sq_wakeupvm(thread,wakeupret,SQTrue,SQTrue,SQFalse))) {
if(SQ_SUCCEEDED(sq_wakeupvm(thread,wakeupret,SQTrue,SQFalse))) {
sq_move(v,thread,-1);
sq_pop(thread,1); //pop retval
if(sq_getvmstate(thread) == SQ_VMSTATE_IDLE) {

View File

@@ -9,23 +9,6 @@
#include "sqclosure.h"
#include "sqstring.h"
SQRESULT sq_getfunctioninfo(HSQUIRRELVM v,SQInteger level,SQFunctionInfo *fi)
{
SQInteger cssize = v->_callsstacksize;
if (cssize > level) {
SQVM::CallInfo &ci = v->_callsstack[cssize-level-1];
if(sq_isclosure(ci._closure)) {
SQClosure *c = _closure(ci._closure);
SQFunctionProto *proto = _funcproto(c->_function);
fi->funcid = proto;
fi->name = type(proto->_name) == OT_STRING?_stringval(proto->_name):_SC("unknown");
fi->source = type(proto->_name) == OT_STRING?_stringval(proto->_sourcename):_SC("unknown");
return SQ_OK;
}
}
return sq_throwerror(v,_SC("the object is not a closure"));
}
SQRESULT sq_stackinfos(HSQUIRRELVM v, SQInteger level, SQStackInfos *si)
{
SQInteger cssize = v->_callsstacksize;

View File

@@ -86,7 +86,7 @@ void DumpLiteral(SQObjectPtr &o)
case OT_INTEGER: scprintf(_SC("{%d}"),_integer(o));break;
#endif
case OT_BOOL: scprintf(_SC("%s"),_integer(o)?_SC("true"):_SC("false"));break;
default: scprintf(_SC("(%s %p)"),GetTypeName(o),(void*)_rawval(o));break; break; //shut up compiler
default: scprintf(_SC("(%s %p)"),GetTypeName(o),_rawval(o));break; break; //shut up compiler
}
}

View File

@@ -201,7 +201,7 @@ const SQChar* SQFunctionProto::GetLocal(SQVM *vm,SQUnsignedInteger stackbase,SQU
SQUnsignedInteger nvars=_nlocalvarinfos;
const SQChar *res=NULL;
if(nvars>=nseq){
for(SQUnsignedInteger i=0;i<nvars;i++){
for(SQUnsignedInteger i=0;i<nvars;i++){
if(_localvarinfos[i]._start_op<=nop && _localvarinfos[i]._end_op>=nop)
{
if(nseq==0){

View File

@@ -117,7 +117,7 @@ struct SQObjectPtr;
#define _delegable(obj) ((SQDelegable *)(obj)._unVal.pDelegable)
#define _weakref(obj) ((obj)._unVal.pWeakRef)
#define _refcounted(obj) ((obj)._unVal.pRefCounted)
#define _rawval(obj) ((obj)._unVal.raw)
#define _rawval(obj) ((obj)._unVal.pRefCounted)
#define _stringval(obj) (obj)._unVal.pString->_val
#define _userdataval(obj) (obj)._unVal.pUserData->_val
@@ -130,27 +130,23 @@ struct SQObjectPtr : public SQObject
{
SQObjectPtr()
{
SQ_OBJECT_RAWINIT()
_type=OT_NULL;
_unVal.pUserPointer=NULL;
}
SQObjectPtr(const SQObjectPtr &o)
{
SQ_OBJECT_RAWINIT()
_type=o._type;
_unVal=o._unVal;
__AddRef(_type,_unVal);
}
SQObjectPtr(const SQObject &o)
{
SQ_OBJECT_RAWINIT()
_type=o._type;
_unVal=o._unVal;
__AddRef(_type,_unVal);
}
SQObjectPtr(SQTable *pTable)
{
SQ_OBJECT_RAWINIT()
_type=OT_TABLE;
_unVal.pTable=pTable;
assert(_unVal.pTable);
@@ -158,7 +154,6 @@ struct SQObjectPtr : public SQObject
}
SQObjectPtr(SQClass *pClass)
{
SQ_OBJECT_RAWINIT()
_type=OT_CLASS;
_unVal.pClass=pClass;
assert(_unVal.pClass);
@@ -166,7 +161,6 @@ struct SQObjectPtr : public SQObject
}
SQObjectPtr(SQInstance *pInstance)
{
SQ_OBJECT_RAWINIT()
_type=OT_INSTANCE;
_unVal.pInstance=pInstance;
assert(_unVal.pInstance);
@@ -174,7 +168,6 @@ struct SQObjectPtr : public SQObject
}
SQObjectPtr(SQArray *pArray)
{
SQ_OBJECT_RAWINIT()
_type=OT_ARRAY;
_unVal.pArray=pArray;
assert(_unVal.pArray);
@@ -182,7 +175,6 @@ struct SQObjectPtr : public SQObject
}
SQObjectPtr(SQClosure *pClosure)
{
SQ_OBJECT_RAWINIT()
_type=OT_CLOSURE;
_unVal.pClosure=pClosure;
assert(_unVal.pClosure);
@@ -190,7 +182,6 @@ struct SQObjectPtr : public SQObject
}
SQObjectPtr(SQGenerator *pGenerator)
{
SQ_OBJECT_RAWINIT()
_type=OT_GENERATOR;
_unVal.pGenerator=pGenerator;
assert(_unVal.pGenerator);
@@ -198,7 +189,6 @@ struct SQObjectPtr : public SQObject
}
SQObjectPtr(SQNativeClosure *pNativeClosure)
{
SQ_OBJECT_RAWINIT()
_type=OT_NATIVECLOSURE;
_unVal.pNativeClosure=pNativeClosure;
assert(_unVal.pNativeClosure);
@@ -206,7 +196,6 @@ struct SQObjectPtr : public SQObject
}
SQObjectPtr(SQString *pString)
{
SQ_OBJECT_RAWINIT()
_type=OT_STRING;
_unVal.pString=pString;
assert(_unVal.pString);
@@ -214,7 +203,6 @@ struct SQObjectPtr : public SQObject
}
SQObjectPtr(SQUserData *pUserData)
{
SQ_OBJECT_RAWINIT()
_type=OT_USERDATA;
_unVal.pUserData=pUserData;
assert(_unVal.pUserData);
@@ -222,7 +210,6 @@ struct SQObjectPtr : public SQObject
}
SQObjectPtr(SQVM *pThread)
{
SQ_OBJECT_RAWINIT()
_type=OT_THREAD;
_unVal.pThread=pThread;
assert(_unVal.pThread);
@@ -230,7 +217,6 @@ struct SQObjectPtr : public SQObject
}
SQObjectPtr(SQWeakRef *pWeakRef)
{
SQ_OBJECT_RAWINIT()
_type=OT_WEAKREF;
_unVal.pWeakRef=pWeakRef;
assert(_unVal.pWeakRef);
@@ -238,7 +224,6 @@ struct SQObjectPtr : public SQObject
}
SQObjectPtr(SQFunctionProto *pFunctionProto)
{
SQ_OBJECT_RAWINIT()
_type=OT_FUNCPROTO;
_unVal.pFunctionProto=pFunctionProto;
assert(_unVal.pFunctionProto);
@@ -246,25 +231,24 @@ struct SQObjectPtr : public SQObject
}
SQObjectPtr(SQInteger nInteger)
{
SQ_OBJECT_RAWINIT()
_unVal.pUserPointer=NULL;
_type=OT_INTEGER;
_unVal.nInteger=nInteger;
}
SQObjectPtr(SQFloat fFloat)
{
SQ_OBJECT_RAWINIT()
_unVal.pUserPointer=NULL;
_type=OT_FLOAT;
_unVal.fFloat=fFloat;
}
SQObjectPtr(bool bBool)
{
SQ_OBJECT_RAWINIT()
_unVal.pUserPointer=NULL;
_type = OT_BOOL;
_unVal.nInteger = bBool?1:0;
}
SQObjectPtr(SQUserPointer pUserPointer)
{
SQ_OBJECT_RAWINIT()
_type=OT_USERPOINTER;
_unVal.pUserPointer=pUserPointer;
}

View File

@@ -17,21 +17,6 @@
#define TOP() (_stack._vals[_top-1])
#define CLEARSTACK(_last_top) { if((_last_top) >= _top) ClearStack(_last_top); }
void SQVM::ClearStack(SQInteger last_top)
{
SQObjectType tOldType;
SQObjectValue unOldVal;
while (last_top >= _top) {
SQObjectPtr &o = _stack._vals[last_top--];
tOldType = o._type;
unOldVal = o._unVal;
o._type = OT_NULL;
o._unVal.pUserPointer = NULL;
__Release(tOldType,unOldVal);
}
}
bool SQVM::BW_OP(SQUnsignedInteger op,SQObjectPtr &trg,const SQObjectPtr &o1,const SQObjectPtr &o2)
{
SQInteger res;
@@ -305,10 +290,12 @@ void SQVM::TypeOf(const SQObjectPtr &obj1,SQObjectPtr &dest)
bool SQVM::Init(SQVM *friendvm, SQInteger stacksize)
{
_stack.resize(stacksize);
//_callsstack.reserve(4);
_alloccallsstacksize = 4;
_callstackdata.resize(_alloccallsstacksize);
_callsstacksize = 0;
_callsstack = &_callstackdata[0];
//_callsstack = (CallInfo*)sq_malloc(_alloccallsstacksize*sizeof(CallInfo));
_stackbase = 0;
_top = 0;
if(!friendvm)
@@ -334,8 +321,12 @@ bool SQVM::StartCall(SQClosure *closure,SQInteger target,SQInteger args,SQIntege
SQInteger nargs = args;
if (paramssize != nargs) {
SQInteger ndef = func->_ndefaultparams;
SQInteger diff;
if(ndef && nargs < paramssize && (diff = paramssize - nargs) <= ndef) {
if(ndef && nargs < paramssize) {
SQInteger diff = paramssize - nargs;
if (diff > ndef) {
Raise_Error(_SC("wrong number of parameters"));
return false;
}
for(SQInteger n = ndef - diff; n < ndef; n++) {
_stack._vals[stackbase + (nargs++)] = closure->_defaultparams[n];
}
@@ -436,7 +427,7 @@ bool SQVM::LOCAL_INC(SQInteger op,SQObjectPtr &target, SQObjectPtr &a, SQObjectP
bool SQVM::PLOCAL_INC(SQInteger op,SQObjectPtr &target, SQObjectPtr &a, SQObjectPtr &incr)
{
SQObjectPtr trg;
SQObjectPtr trg;
_RET_ON_FAIL(ARITH_OP( op , trg, a, incr));
target = a;
a = trg;
@@ -455,7 +446,7 @@ bool SQVM::DerefInc(SQInteger op,SQObjectPtr &target, SQObjectPtr &self, SQObjec
#define arg0 (_i_._arg0)
#define arg1 (_i_._arg1)
#define sarg1 (*(const_cast<SQInt32 *>(&_i_._arg1)))
#define sarg1 (*((SQInt32 *)&_i_._arg1))
#define arg2 (_i_._arg2)
#define arg3 (_i_._arg3)
#define sarg3 ((SQInteger)*((signed char *)&_i_._arg3))
@@ -687,25 +678,13 @@ bool SQVM::Execute(SQObjectPtr &closure, SQInteger target, SQInteger nargs, SQIn
bool ct_tailcall;
switch(et) {
case ET_CALL: {
SQInteger last_top = _top;
temp_reg = closure;
if(!StartCall(_closure(temp_reg), _top - nargs, nargs, stackbase, false)) {
case ET_CALL:
if(!StartCall(_closure(closure), _top - nargs, nargs, stackbase, false)) {
//call the handler if there are no calls in the stack, if not relies on the previous node
if(ci == NULL) CallErrorHandler(_lasterror);
return false;
}
if (_funcproto(_closure(temp_reg)->_function)->_bgenerator) {
//SQFunctionProto *f = _funcproto(_closure(temp_reg)->_function);
SQGenerator *gen = SQGenerator::Create(_ss(this), _closure(temp_reg));
_GUARD(gen->Yield(this));
Return(1, ci->_target, temp_reg);
outres = gen;
CLEARSTACK(last_top);
return true;
}
ci->_root = SQTrue;
}
break;
case ET_RESUME_GENERATOR: _generator(closure)->Resume(this, target); ci->_root = SQTrue; traps += ci->_etraps; break;
case ET_RESUME_VM:
@@ -745,7 +724,7 @@ exception_restore:
case _OP_DLOAD: TARGET = ci->_literals[arg1]; STK(arg2) = ci->_literals[arg3];continue;
case _OP_TAILCALL:
temp_reg = STK(arg1);
if (type(temp_reg) == OT_CLOSURE && !_funcproto(_closure(temp_reg)->_function)->_bgenerator){
if (type(temp_reg) == OT_CLOSURE){
ct_tailcall = true;
if(ci->_vargs.size) PopVarArgs(ci->_vargs);
for (SQInteger i = 0; i < arg3; i++) STK(i) = STK(arg2 + i);
@@ -771,7 +750,7 @@ common_call:
Return(1, ct_target, clo);
STK(ct_target) = gen;
}
CLEARSTACK(last_top);
while (last_top >= _top) _stack._vals[last_top--].Null();
}
continue;
case OT_NATIVECLOSURE: {
@@ -1050,7 +1029,7 @@ exception_trap:
_stackbase = et._stackbase;
_stack._vals[_stackbase+et._extarget] = currerror;
_etraps.pop_back(); traps--; ci->_etraps--;
CLEARSTACK(last_top);
while(last_top >= _top) _stack._vals[last_top--].Null();
goto exception_restore;
}
//if is a native closure
@@ -1078,7 +1057,7 @@ exception_trap:
if( (ci && type(ci->_closure) != OT_CLOSURE) || exitafterthisone) break;
} while(_callsstacksize);
CLEARSTACK(last_top);
while(last_top >= _top) _stack._vals[last_top--].Null();
}
_lasterror = currerror;
return false;
@@ -1090,6 +1069,8 @@ bool SQVM::CreateClassInstance(SQClass *theclass, SQObjectPtr &inst, SQObjectPtr
{
inst = theclass->CreateInstance();
if(!theclass->Get(_ss(this)->_constructoridx,constructor)) {
//if(!Call(constr,nargs,stackbase,constr,false))
// return false;
constructor = _null_;
}
return true;

View File

@@ -108,7 +108,6 @@ public:
_INLINE bool PLOCAL_INC(SQInteger op,SQObjectPtr &target, SQObjectPtr &a, SQObjectPtr &incr);
_INLINE bool DerefInc(SQInteger op,SQObjectPtr &target, SQObjectPtr &self, SQObjectPtr &key, SQObjectPtr &incr, bool postfix);
void PopVarArgs(VarArgs &vargs);
void ClearStack(SQInteger last_top);
#ifdef _DEBUG_DUMP
void dumpstack(SQInteger stackbase=-1, bool dumpall = false);
#endif

View File

@@ -1,12 +1,5 @@
/* $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/>.
*/
/** @file ai.hpp Base functions for all AIs. */
#ifndef AI_HPP
@@ -15,11 +8,12 @@
#include "api/ai_event_types.hpp"
#include "../date_type.h"
#include "../core/string_compare_type.hpp"
#include <map>
typedef std::map<const char *, class AIInfo *, StringCompare> AIInfoList;
void CcAI(bool success, TileIndex tile, uint32 p1, uint32 p2);
class AI {
public:
/**
@@ -43,9 +37,8 @@ public:
/**
* Start a new AI company.
* @param company At which slot the AI company should start.
* @param rerandomise_ai Whether to rerandomise the configured AI.
*/
static void StartNew(CompanyID company, bool rerandomise_ai = true);
static void StartNew(CompanyID company);
/**
* Called every game-tick to let AIs do something.
@@ -60,7 +53,7 @@ public:
/**
* Stop a company to be controlled by an AI.
* @param company The company from which the AI needs to detach.
* @pre Company::IsValidAiID(company)
* @pre !IsHumanCompany(company).
*/
static void Stop(CompanyID company);

View File

@@ -1,12 +1,5 @@
/* $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/>.
*/
/** @file ai_config.cpp Implementation of AIConfig. */
#include "../stdafx.h"
@@ -16,13 +9,12 @@
#include "ai.hpp"
#include "ai_config.hpp"
void AIConfig::ChangeAI(const char *name, int version, bool is_random_ai)
void AIConfig::ChangeAI(const char *name, int version)
{
free((void *)this->name);
this->name = (name == NULL) ? NULL : strdup(name);
this->info = (name == NULL) ? NULL : AI::FindInfo(this->name, version);
this->version = (info == NULL) ? -1 : info->GetVersion();
this->is_random_ai = is_random_ai;
if (this->config_list != NULL) delete this->config_list;
this->config_list = (info == NULL) ? NULL : new AIConfigItemList();
if (this->config_list != NULL) this->config_list->push_back(_start_date_config);
@@ -57,7 +49,6 @@ AIConfig::AIConfig(const AIConfig *config)
this->info = config->info;
this->version = config->version;
this->config_list = NULL;
this->is_random_ai = config->is_random_ai;
for (SettingValueList::const_iterator it = config->settings.begin(); it != config->settings.end(); it++) {
this->settings[strdup((*it).first)] = (*it).second;
@@ -72,7 +63,7 @@ AIConfig::~AIConfig()
if (this->config_list != NULL) delete this->config_list;
}
AIInfo *AIConfig::GetInfo() const
AIInfo *AIConfig::GetInfo()
{
return this->info;
}
@@ -105,9 +96,9 @@ AIConfig *AIConfig::GetConfig(CompanyID company, bool forceNewgameSetting)
return *config;
}
int AIConfig::GetSetting(const char *name) const
int AIConfig::GetSetting(const char *name)
{
SettingValueList::const_iterator it = this->settings.find(name);
SettingValueList::iterator it = this->settings.find(name);
/* Return the default value if the setting is not set, or if we are in a not-custom difficult level */
if (it == this->settings.end() || ((_game_mode == GM_MENU) ? _settings_newgame.difficulty.diff_level : _settings_game.difficulty.diff_level) != 3) {
if (this->info == NULL) {
@@ -164,22 +155,17 @@ void AIConfig::AddRandomDeviation()
}
}
bool AIConfig::HasAI() const
bool AIConfig::HasAI()
{
return this->info != NULL;
}
bool AIConfig::IsRandomAI() const
{
return this->is_random_ai;
}
const char *AIConfig::GetName() const
const char *AIConfig::GetName()
{
return this->name;
}
int AIConfig::GetVersion() const
int AIConfig::GetVersion()
{
return this->version;
}
@@ -210,10 +196,10 @@ void AIConfig::StringToSettings(const char *value)
free(value_copy);
}
void AIConfig::SettingsToString(char *string, size_t size) const
void AIConfig::SettingsToString(char *string, size_t size)
{
string[0] = '\0';
for (SettingValueList::const_iterator it = this->settings.begin(); it != this->settings.end(); it++) {
for (SettingValueList::iterator it = this->settings.begin(); it != this->settings.end(); it++) {
char no[10];
snprintf(no, sizeof(no), "%d", (*it).second);

View File

@@ -1,12 +1,5 @@
/* $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/>.
*/
/** @file ai_config.hpp AIConfig stores the configuration settings of every AI. */
#ifndef AI_CONFIG_HPP
@@ -15,7 +8,6 @@
#include <map>
#include "ai_info.hpp"
#include "../core/string_compare_type.hpp"
#include "../company_type.h"
class AIConfig {
private:
@@ -26,8 +18,7 @@ public:
name(NULL),
version(-1),
info(NULL),
config_list(NULL),
is_random_ai(false)
config_list(NULL)
{}
AIConfig(const AIConfig *config);
~AIConfig();
@@ -36,9 +27,8 @@ public:
* Set another AI to be loaded in this slot.
* @param name The name of the AI.
* @param version The version of the AI to load, or -1 of latest.
* @param is_random Is the AI chosen randomly?
*/
void ChangeAI(const char *name, int version = -1, bool is_random = false);
void ChangeAI(const char *name, int version = -1);
/**
* When ever the AI Scanner is reloaded, all infos become invalid. This
@@ -51,7 +41,7 @@ public:
/**
* Get the AIInfo linked to this AIConfig.
*/
class AIInfo *GetInfo() const;
class AIInfo *GetInfo();
/**
* Get the config list for this AIConfig.
@@ -70,7 +60,7 @@ public:
* @return The (default) value of the setting, or -1 if the setting was not
* found.
*/
int GetSetting(const char *name) const;
int GetSetting(const char *name);
/**
* Set the value of a setting for this config.
@@ -90,22 +80,17 @@ public:
/**
* Is this config attached to an AI?
*/
bool HasAI() const;
/**
* Is the current AI a randomly chosen AI?
*/
bool IsRandomAI() const;
bool HasAI();
/**
* Get the name of the AI.
*/
const char *GetName() const;
const char *GetName();
/**
* Get the version of the AI.
*/
int GetVersion() const;
int GetVersion();
/**
* Convert a string which is stored in the config file or savegames to
@@ -117,7 +102,7 @@ public:
* Convert the custom settings to a string that can be stored in the config
* file or savegames.
*/
void SettingsToString(char *string, size_t size) const;
void SettingsToString(char *string, size_t size);
private:
const char *name;
@@ -125,7 +110,6 @@ private:
class AIInfo *info;
SettingValueList settings;
AIConfigItemList *config_list;
bool is_random_ai;
};
#endif /* AI_CONFIG_HPP */

View File

@@ -1,12 +1,5 @@
/* $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/>.
*/
/** @file ai_core.cpp Implementation of AI. */
#include "../stdafx.h"
@@ -15,12 +8,13 @@
#include "../company_func.h"
#include "../debug.h"
#include "../network/network.h"
#include "../settings_type.h"
#include "../window_func.h"
#include "../command_func.h"
#include "ai.hpp"
#include "ai_scanner.hpp"
#include "ai_instance.hpp"
#include "ai_config.hpp"
#include "api/ai_error.hpp"
/* static */ uint AI::frame_counter = 0;
/* static */ AIScanner *AI::ai_scanner = NULL;
@@ -31,24 +25,23 @@
return !_networking || (_network_server && _settings_game.ai.ai_in_multiplayer);
}
/* static */ void AI::StartNew(CompanyID company, bool rerandomise_ai)
/* static */ void AI::StartNew(CompanyID company)
{
assert(Company::IsValidID(company));
assert(IsValidCompanyID(company));
/* Clients shouldn't start AIs */
if (_networking && !_network_server) return;
AIConfig *config = AIConfig::GetConfig(company);
AIInfo *info = config->GetInfo();
if (info == NULL || (rerandomise_ai && config->IsRandomAI())) {
AIInfo *info = AIConfig::GetConfig(company)->GetInfo();
if (info == NULL) {
info = AI::ai_scanner->SelectRandomAI();
assert(info != NULL);
/* Load default data and store the name in the settings */
config->ChangeAI(info->GetName(), -1, true);
AIConfig::GetConfig(company)->ChangeAI(info->GetName());
}
_current_company = company;
Company *c = Company::Get(company);
Company *c = GetCompany(company);
c->ai_info = info;
assert(c->ai_instance == NULL);
@@ -70,7 +63,7 @@
const Company *c;
FOR_ALL_COMPANIES(c) {
if (c->is_ai) {
if (!IsHumanCompany(c->index)) {
_current_company = c->index;
c->ai_instance->GameLoop();
}
@@ -80,7 +73,7 @@
* Effectively collecting garbage once every two months per AI. */
if ((AI::frame_counter & 255) == 0) {
CompanyID cid = (CompanyID)GB(AI::frame_counter, 8, 4);
if (Company::IsValidAiID(cid)) Company::Get(cid)->ai_instance->CollectGarbage();
if (IsValidCompanyID(cid) && !IsHumanCompany(cid)) GetCompany(cid)->ai_instance->CollectGarbage();
}
_current_company = OWNER_NONE;
@@ -97,7 +90,7 @@
CompanyID old_company = _current_company;
_current_company = company;
Company *c = Company::Get(company);
Company *c = GetCompany(company);
delete c->ai_instance;
c->ai_instance = NULL;
@@ -110,11 +103,11 @@
/* static */ void AI::KillAll()
{
/* It might happen there are no companies .. than we have nothing to loop */
if (Company::GetPoolSize() == 0) return;
if (GetCompanyPoolSize() == 0) return;
const Company *c;
FOR_ALL_COMPANIES(c) {
if (c->is_ai) AI::Stop(c->index);
if (!IsHumanCompany(c->index)) AI::Stop(c->index);
}
}
@@ -184,7 +177,7 @@
}
/* Only AIs can have an event-queue */
if (!Company::IsValidAiID(company)) {
if (!IsValidCompanyID(company) || IsHumanCompany(company)) {
event->Release();
return;
}
@@ -217,29 +210,28 @@
event->Release();
}
void CcAI(const CommandCost &result, TileIndex tile, uint32 p1, uint32 p2)
void CcAI(bool success, TileIndex tile, uint32 p1, uint32 p2)
{
AIObject::SetLastCommandRes(result.Succeeded());
AIObject::SetLastCommandRes(success);
if (result.Failed()) {
AIObject::SetLastError(AIError::StringToError(result.GetErrorMessage()));
if (!success) {
AIObject::SetLastError(AIError::StringToError(_error_message));
} else {
AIObject::IncreaseDoCommandCosts(result.GetCost());
AIObject::SetLastCost(result.GetCost());
AIObject::IncreaseDoCommandCosts(AIObject::GetLastCost());
}
Company::Get(_current_company)->ai_instance->Continue();
GetCompany(_current_company)->ai_instance->Continue();
}
/* static */ void AI::Save(CompanyID company)
{
if (!_networking || _network_server) {
Company *c = Company::GetIfValid(company);
assert(c != NULL && c->ai_instance != NULL);
assert(IsValidCompanyID(company));
assert(GetCompany(company)->ai_instance != NULL);
CompanyID old_company = _current_company;
_current_company = company;
c->ai_instance->Save();
GetCompany(company)->ai_instance->Save();
_current_company = old_company;
} else {
AIInstance::SaveEmpty();
@@ -249,12 +241,12 @@ void CcAI(const CommandCost &result, TileIndex tile, uint32 p1, uint32 p2)
/* static */ void AI::Load(CompanyID company, int version)
{
if (!_networking || _network_server) {
Company *c = Company::GetIfValid(company);
assert(c != NULL && c->ai_instance != NULL);
assert(IsValidCompanyID(company));
assert(GetCompany(company)->ai_instance != NULL);
CompanyID old_company = _current_company;
_current_company = company;
c->ai_instance->Load(version);
GetCompany(company)->ai_instance->Load(version);
_current_company = old_company;
} else {
/* Read, but ignore, the load data */
@@ -266,7 +258,7 @@ void CcAI(const CommandCost &result, TileIndex tile, uint32 p1, uint32 p2)
{
/* Find the first company which doesn't exist yet */
for (CompanyID c = COMPANY_FIRST; c < MAX_COMPANIES; c++) {
if (!Company::IsValidID(c)) return AIConfig::GetConfig(c)->GetSetting("start_date");
if (!IsValidCompanyID(c)) return AIConfig::GetConfig(c)->GetSetting("start_date");
}
/* Currently no AI can be started, check again in a year. */
@@ -295,7 +287,7 @@ void CcAI(const CommandCost &result, TileIndex tile, uint32 p1, uint32 p2)
/* static */ bool AI::ImportLibrary(const char *library, const char *class_name, int version, HSQUIRRELVM vm)
{
return AI::ai_scanner->ImportLibrary(library, class_name, version, vm, Company::Get(_current_company)->ai_instance->GetController());
return AI::ai_scanner->ImportLibrary(library, class_name, version, vm, GetCompany(_current_company)->ai_instance->GetController());
}
/* static */ void AI::Rescan()

File diff suppressed because it is too large Load Diff

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