summaryrefslogtreecommitdiff
path: root/rail_cmd.c
AgeCommit message (Collapse)Author
2005-07-24(svn r2702) -Codechange: Cleaned up the sprite code and replaced many magic ↵celestar
numbers by enums. There remains work in gfx.c to move the "transparency" and "recolor" bits around to make space for more sprites. However, 2800 additional sprites can now be loaded. There also remains cleanup and Doxygen work on many of the header files.
2005-07-24(svn r2701) Insert Id tags into all source filestron
2005-07-22(svn r2673) Include functions.h directly, not globally via openttd.htron
2005-07-20(svn r2658) -Codechange: Use MAKE_TRANSPARENT to display a transparented spritecelestar
2005-07-20(svn r2650) Convert many explicit shifts+ands to extract bits to invocations ↵tron
of GB - should be a bit nicer to read
2005-07-17(svn r2621) - Fix: [pbs] When removing tracks, clear their reserved status. hackykid
2005-07-16(svn r2595) -Codechange: Introduced "IsSteepTileh" to find whether a tile is ↵celestar
steep (i.e. spans two height levels) and use it throughout the code. -Codechange: Add CanBuildDepotByTileh to find if a tile is suitable to build a depot on it. Wraps some bitmagic which seems quite unreadable at first glance
2005-07-13(svn r2558) Change the internal map format from 7 arrays to one array of ↵tron
structs, this doesn't change the saved format for now. It's a stepping stone for further changes.
2005-07-07(svn r2529) - Fix: PBS signals showed up as normal signals with the query toolDarkvater
- Update landscape_grid.html to show busy bits used by PBS.
2005-07-04(svn r2516) - Feature: [pbs] Implement path-based-signalling. This allows ↵hackykid
multiple trains within the same signal block, provided their paths dont intersect. For this the block must have all exit and entry signals be pbs signals. Place these by ctrl-clicking 4 times on a normal signal. - Feature: [pbs] Implement autoplacement of pbs blocks, when a block has an entry and an exit pbs signal, covert the entire block to pbs. Can be turned off in the patch settings. - Feature: [pbs] Allow showing of reserved status by making the tracks darker, when the pbs debug level is at least 1.
2005-07-04(svn r2515) -Codechange: Removed a good deal of magic sprite numbers in the ↵celestar
rail drawing code, and placed neatly into arrays and enums. This also makes way to implement more railtypes without having to do tons of ugly hacks.
2005-07-01(svn r2505) Remove some unnecessary #includestron
2005-06-30(svn r2499) -Codechange: Moved the semaphore bit from bit 2 to bit 3 in ↵celestar
_map_hi for rails, in order to make way for pbs
2005-06-27(svn r2492) Remove some pointless casts and fix some nearby indentationtron
2005-06-25(svn r2487) Replace TILE_XY by TileXY/TileDiffXYtron
2005-06-25(svn r2486) Turn TILE_FROM_XY into an inline function and rename it to ↵tron
TileVirtXY
2005-06-24(svn r2483) Replace almost 500 "uint tile" (and variants) with "TileIndex tile"tron
2005-06-21(svn r2469) - Add: When removing tracks with the 'remove' tool, have it ↵hackykid
automatically remove signals on the tracks.
2005-06-19(svn r2460) - Fix: Prevent assertion failure when trying to drag signals ↵hackykid
starting from a non-rail tile. - CodeChange: Remove unused variable in CmdSignalTrackHelper.
2005-06-17(svn r2452) Fix defect in r2448 which caused building tracks unexpectedly ↵tron
fail or succeed
2005-06-16(svn r2448) General cleanup of rail related code, more to follow.matthijs
* Add: rail.[ch] for rail-related enums and wrapper functions. * Codechange: Removed dozens of magic numbers with below enums. * Codechange: Rewrote CheckTrackCombination(). * Add: TILE_SIZE, TILE_PIXELS and TILE_HEIGHT constants. * Add: enums RailTileType, RailTileSubtype, SignalType to mask against the map arrays. * Add: enums Track, TrackBits, Trackdir, TrackdirBits for railway track data. (Note that the old RAIL_BIT constants are replaced by TRACK_BIT ones). * Add: enums Direction and DiagDirection * Codechange: Moved a bunch of track(dir) related lookup arrays from npf.[ch] to rail.[ch]. * Codechange: move RailType enum from tile.h to rail.h. * Add: Wrapper functions for masking signal status in the map arrays: SignalAlongTrackdir, SignalAgainstTrackdir and SignalOnTrack. * Add: Wrapper functions to access rail tiles, using above enums * Add: Wrapper functions to modify tracks, trackdirs, directions, etc. * Add: Wrapper functions for all lookup arrays in rail.[ch] (Arrays are still used in parts of the code) * Codechange: Renamed some variables and arguments to better represent what they contain (railbit -> track, bits -> trackdirbits, etc.). * Codechange: Don't use FindLandscapeHeight() in CmdRemoveSingleRail(), since it returns way too much info. Use GetTileSlope() instead. * Codechange: [NPF] Removed some unused globals and code from npf.c.
2005-06-08(svn r2434) Fix some defects in r2433tron
2005-06-07(svn r2433) - CodeChange: unmagicify all road/train crossings with ↵Darkvater
IsLevelCrossing() function (peter1138)
2005-06-06(svn r2428) - Feature: [newgrf] Implement shorter train vehicles (Therax), ↵hackykid
and the callback that goes with it. - Codechange: Remove some magic numbers (PALETTE_CRASH)
2005-06-04(svn r2409) Missed one _map_owner -> IsTileOwner()tron
2005-06-04(svn r2408) Introduce SetTileOwner() and use ittron
2005-06-04(svn r2407) Use {Get,Is}TileOwner to get/check the owner of a tile and fix ↵tron
some bogus reads of _map_owner
2005-06-02(svn r2397) - CodeChange: rename all "ttd" files to "openttd" files.Darkvater
2005-05-15(svn r2322) - CodeChange: doxygen commented the tunnel-crash fix. Also if ↵Darkvater
(bla) {return;} else {return;} is not proper code. It's if (bla) {return;} return; ;)
2005-05-15(svn r2320) - Fix: [ 1185176 ] Train in tunnel is not properly detected by ↵matthijs
signal code (Hackykid)
2005-05-15(svn r2317) - Fix: [ 1193048 ] Pre-signal stays red when there is only a ↵Darkvater
single exit signal (dinno)
2005-05-12(svn r2300) - CodeChange: check the last number of commands, now only the ↵Darkvater
refit ones remain, and some server-only commands. - CodeChange: remove cmd-misuses CmdStartScenario() and CmdDestroyCompanyHQ() - Fix (invisible): when parameter checking CmdRestoreOrderIndex() the vehicle did not have its orders yet, so it would fail. So move doing this until AFTER the orders have been added back in RestoreVehicleOrders()
2005-05-09(svn r2286) - CodeChange: paramcheck the next batch of commands.Darkvater
- Fix (regression): fix up terraform land where every player can terraform land (towns, map generation), and player can terraform different corners; used for building tunnels
2005-05-09(svn r2285) - Codechange: Fix up some of the missing things from ↵Darkvater
server-checking; namely bridge-type, bridge-length, dragged end-tile (bridge/station), station_spread - Fix: [ 1197256 ] max station spread patch < 7 does not work. Station spread was not taking into account when not using drag&drop. Fix this up, and add a callback to the settings window to immediately reflect the changes.
2005-05-07(svn r2279) - Fix: Check the parameters of the first 10 Commands. While ↵Darkvater
there also add proper comments for the functions and fix up CmdFailed()
2005-04-24(svn r2223) When adding tracks to a railway tile reset the ground to bare ↵tron
land, fix for a glitch in r2131
2005-04-14(svn r2195) Add CmdFailed() as the One True Way(tm) to check if a command ↵tron
failed.
2005-04-09(svn r2173) -Fix: [ 1179380 ] Rail now builds on reserved land. Cause by the ↵celestar
problem that CMD_ERROR is just the highest bit of the return value, but CMD_CLEAR_LANDSCAPE returns a negative value for owned land. So the highest bit is set as well. Note to self: Finish Command Patch
2005-04-02(svn r2134) Return the correct error message if rail is already under a ↵tron
bridge, fix for r2131
2005-04-02(svn r2132) Fix copy&paste bug in r2131tron
2005-04-02(svn r2131) -Fix: Rewrite CmdBuildSingleRail(), this addresses several issues:tron
- Check input parameters for validity - Adhere patch settings - you were able to build foundations under bridges even if foundations where deactivated - Charge for foundations in all cases - foundations under bridges were for free - Make the control flow more clear
2005-03-31(svn r2113) -Fix: first check if a vehicle is a train, before accessing u.railtruelight
2005-03-28(svn r2102) Fix bug introduced in r2038, which gave you money for clearing ↵tron
occupied railway tiles ([1171926])
2005-03-28(svn r2095) In CheckTrackCombination(): if () cascade -> switch, improve ↵tron
readability
2005-03-28(svn r2094) In GetTileDesc_Track(): uint -> TileIndex, use enums, if () ↵tron
cascade -> switch
2005-03-25(svn r2059) -Codechange: rewrote SetSignalsAfterProc so now the tiles from ↵truelight
the PF are checked against the vehicle-position-hash, instead all vehicles to the PF-position-hash. Big speed increase (function usages drops from 9% to 0.5%!) for maps with a lot of trains.
2005-03-24(svn r2046) -Codechange: moved all waypoint code to waypoint.c/waypoint.htruelight
-Codechange: rewrote some functions while moving waypoint-stuff -Add: added support for 64k waypoints -Fix: made the waypoint struct a bit more logic (no bit-fucking)
2005-03-24(svn r2040) Readd check that got accidently removed in r2022tron
2005-03-23(svn r2039) IS_RAIL_DEPOT -> IsRailDepot, IS_RAIL_WAYPOINT -> IsRailWaypointtron
remove now unused enums and remove a redundant condition in one if
2005-03-23(svn r2038) -Fix: A player only received the money for one rail when ↵tron
clearing a tile with 2 rails and signals While here rewrite parts of the function to (hopefully) increase clarity