summaryrefslogtreecommitdiff
path: root/rail_cmd.c
AgeCommit message (Collapse)Author
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
2005-03-18(svn r2022) Revise CmdRemoveSingleSignal: Check parameters for validity and ↵tron
simplify the function
2005-03-10(svn r1981) Typedef some structs and enumstron
2005-02-22(svn r1903) Replace some casts and macro magic with proper typing, similar ↵tron
to r1902
2005-02-13(svn r1867) Include tables/sprites.h only in files which need ittron
2005-02-06(svn r1834) - Fix: NPF does not check the owner of its target, busses try to ↵matthijs
enter other players' depots. TODO - Add: asserts to find the v->u.rail.track == 0 problem. - Add: IsValidDepot(), IsValidTown(), IsValidSign(), IsValidVehicle(), IsValidStation() - Add: GetTileOwner(), IsTileOwner() - Codechange: Replaced IsShipDepotTile(), IsTrainDepotTile(), IsRoadDepotTile() by IsTileDepotType(). - Codechange: typedeffed the MAP_OWNERS as Owner. Should be used as variable type. - Codechange: Replaced a few uint by TileIndex.
2005-02-06(svn r1832) Next byte -> char iteration: custom namestron
2005-02-06(svn r1817) -Codechange: Moved depot-functions to depot.ctruelight
-Codechange: Added wrappers around depot-access (GetDepot no exists) -Codechange: Made depot-functions a bit more logic (no longer GetDepotByTile crashes your game when you request it on a non-depot tile) -Add: made depots dynamic (yes, 64k depots are possible now)
2005-01-31(svn r1751) - Feature: New PathFinder (NPF).matthijs
- Supports trains, road vehicles and ships. - Uses A* pathfinding (same codebase as the new ai). - Currently unlimited search depth, so might perform badly on large maps/networks (especially ships). - Will always find a route if there is one. - Allows custom penalties for obstacles to be set in openttd.cfg (npf_ values). - With NPF enabled, ships can have orders that are very far apart. Be careful, this will break (ships get lost) when the old pathfinder is used again. - Feature: Disabling 90 degree turns for trains and ships. - Requires NPF to be enabled. - Ships and trains can no longer make weird 90 degree turns on tile borders. - Codechange: Removed table/directions.h. - table/directions.h contained ugly static tables but was included more than once. The tables, along with a few new ones are in npf.[ch] now. Better suggestions for a location? - Fix: Binary heap in queue.c did not allocate enough space, resulting in a segfault. - Codechange: Rewritten FindFirstBit2x64, added KillFirstBit2x64. - Codechange: Introduced constant INVALID_TILE, to replace the usage of 0 as an invalid tile. Also replaces TILE_WRAPPED. - Codechange: Moved TileAddWrap() to map.[ch] - Add TileIndexDiffCByDir(), TileIndexDiffCByDir(). - Codechange: Moved IsTrainStationTile() to station.h - Add: IsRoadStationTile() and GetRoadStationDir().
2005-01-31(svn r1749) Move the functions which calculate distances to map.[ch] and ↵tron
give the more meaningful names
2005-01-30(svn r1733) - Fix: oops "| 1" is SETBIT(x, 0), not 1 :(. Now you can remove ↵darkvater
signals again
2005-01-30(svn r1731) - Fix: [ 1106930 ] BugFix: placing signals with 2x1 drags ↵darkvater
workaround is completely rewritten. Also features checks for hacked/modified clients. Thanks a lot Hackykid!
2005-01-29(svn r1713) Split off several functions which query/set information about a ↵tron
single tile from map.h and put them into a seperate file tile.h
2005-01-23(svn r1624) -Fix: [1106930] BugFix: placing signals with 2x1 drags is ↵darkvater
treated as placing a single signal thus providing an easy fix for a nasty problem.
2005-01-23(svn r1610) Remove trailing whitespace (last time ever, i hope)tron
2005-01-22(svn r1596) Add some more staticstron
2005-01-22(svn r1594) Convert all undefined parameter lists to (void) and add the ↵tron
appropriate warning flags in the Makefile
2005-01-22(svn r1585) Rewrite CmdBuildSignals()tron
This addresses several issues: - Correct comments - Check input parameters for validity (and don't assert() them) - Reorder checks if action is possible to produce more meaningful error messages - Correct bug where money was charged for an action which should be free - Kill warning about uninitialized variable, because the variable exists no more - Make more clear how the function works (at least i hope so)
2005-01-19(svn r1567) -Fix: [110452] On horizontal/vertical tracks you are also ↵darkvater
charged for building/removing signals on the parallel track on the same tile. Signal updating is also correct. (Hackykid)
2005-01-18(svn r1560) Introduce SetTileType() and SetTileHeight()tron
Replace direct references to _map_type_and_height with these
2005-01-16(svn r1542) Rename TileHeight to TilePixelHeight, because this is what it ↵tron
actually returns
2005-01-16(svn r1536) Move GET_TILEHEIGHT, GET_TILETYPE and IS_TILETYPE to map.h, turn ↵tron
them into inline functions and add some asserts
2005-01-15(svn r1525) -Codechange: rewrote the _order_array, now it can be made dynamic.truelight
-Codechange: renamed all 'schedule' stuff to 'order(list)' -Codechange: moved all order-stuff to order_cmd.c / order.h -Codechange: vehicles that share orders are now linked to eachother with next_shared/prev_shared in Vehicle Developers: please use AssignOrder to assign data to an order. If not, you _WILL_ make the save-routine to assert!
2005-01-14(svn r1508) Remove duplicate declarations and include proper headers where ↵tron
necessary
2005-01-07(svn r1414) Move TileIndex, TILE_MASK and GET_TILE_[XY] to map.h and turn ↵tron
the latter into inline functions names Tile[XY]
2005-01-06(svn r1407) -Codechange: changed a lot around _stations, _vehicles, _towns ↵truelight
and _industries (in prepare of dynamic arrays): - DEREF_XXX is changed into GetXXX - All direct call are directed via GetXXX - struct Industry has now an index-field - ENUM'd some stuff - Replaced home built loops with FOR_ALL_XXX - Added _stations_size, _vehicles_size, ... which gives the length of the array (which will be dynamic in the near future) - Changed lengtof(XXX) to _XXX_size (e.g. _stations_size) - Removed all endof(XXX) (because mostly it was part of a FOR_ALL_XXX) - Made the sort-functions of all 4 dynamic - Made all 4 Initialize functions more of the same - Some minor tab-fixing and stuff (tnx to Tron for proof-reading my 100kb patch ;)) Note for all: please do NOT directly call _stations, _vehicles, _towns and _industries, but use the right wrapper to access them. Thank you. Ps: please also do not use 'v++', where v is of type Vehicle *.
2005-01-04(svn r1375) -Fix: [1050990] Buying trains sometimes accounted for ↵darkvater
incorrectly. Was the result of the cost getting reset in a recursive call of docommand. That is fixed. In addition all cost-commands are typed explicitely. Please do not forget to do so or your costs will be credited to construction if you are unlucky.
2004-12-29(svn r1297) Language fixes in the source.. (ln-)miham
2004-12-28(svn r1288) -Codechange: changed _map2 to an uint16. It is still saved and ↵truelight
loaded as an uint8 till the savegame version is bumped to version 5. Then it works automaticly as a fully uint16. So _stations[] can not be increased till after the bump!!
2004-12-15(svn r1117) Move map arrays and some related macros into their own files ↵tron
map.c and map.h
2004-12-05(svn r955) Replace uint16 for orders with struct Ordertron
This adds no functionality, but is a stepping stone for future improvement (like 16bit order indices) and is easier to read. This changes preserves binary compatibility wrt savegames.
2004-12-04(svn r942) -Merged branch/network back into the trunktruelight
2004-12-04(svn r925) Use sound enumstron
Also play the correct sound when a toyland road vehicle breaks down