summaryrefslogtreecommitdiff
path: root/station_cmd.c
AgeCommit message (Collapse)Author
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-15(svn r2441) -Feature: You can now give transfer order to set up feeder systemscelestar
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-30(svn r2387) - CodeChange: made the saveload code more readable and also ↵Darkvater
removed the 'byte' saveload arrays which means you can save an array of more than 255 elements, or bigger structs than 255 bytes. This doesn't yet solve the problem that a chunk can be a maximum of 16384 big. - Fix: also fix an unnoticed error in SlSaveLoadConv() due to wrong types.
2005-05-30(svn r2382) - Fix: Check the airport type when building an airportDarkvater
2005-05-17(svn r2345) - Fix: Don't allow stuff to be renamed to nothing if we don't ↵Darkvater
support it. Only valid ones are signs (delete) and waypoints (rename to default).
2005-05-15(svn r2324) Introduce _cmd_text for passing strings with a command instead ↵tron
of abusing _decode_parameters as text buffer. This should prevent several possible buffer overruns and is a bit cleaner to use. As bonus it reduces the size of most command packets by 79 bytes.
2005-05-11(svn r2290) - CodeChange: protect the next batch of commands. This brings us ↵Darkvater
to a total of 61, which is 53% :) - CodeChange: To correctly accept engine-prototypes, the best-player checking has been moved to its own function, I hope it functions the same as before. - CodeChange: Added symbolic types of PlayerID, OrderID and EngineID. For engines also added GetEngine() and IsEngineIndex(), similar to the other such functions. - CodeChange: To correctly build industries, some tables have been moved to build_industry.h. The only way to find out currently if an industry is valid in a climate is by looping all industries and checking if it matches. Also to comply with the patch setting build_rawmaterial_industries, it is assumed that these industries do not accept any cargo of any type. This can and probably should changed in the future to some flag in their struct. Also use _opt_ptr instead of _opt. - CodeChange: implemented the HQ checking code inspired by MarkR2 in "[ 1190944 ] Many commands not checked for security". Unfortunately it is impossible to prevent only deleting a HQ by a modified client atm. - CodeChange: For insert order and modify order their parameters are implicitely truncated to 8 bits, instead of the 16 bits said in the comments.
2005-05-09(svn r2288) - CodeChange: protected the next batch of commands (41 so far, ↵Darkvater
out of 115). - CodeChange: changed the airport gui airport-type checking. Added function GetValidAirports() that returns bitmasked availibility, is also used for checking. - CodeChange: to check tree-planting, 2 const arrays have been moved to table/tree_land.h (type and count) - CodeChange: added IsTownIndex() in following of IsStationIndex(), etc. - Fix (regression): road tunnels did not work anymore, forgot that their type was 0x200 (documented now)
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-05-07(svn r2278) When renaming a station, check if the station exists and belongs ↵tron
to the correct player
2005-05-02(svn r2255) - Fix: [ 9680363 ] [NPF] Broken buoy handling for shipsmatthijs
Buoys will now try to get within 3 tiles of a buoy instead of a the actual buoy tile. This gets ships to got past buoys in a realistic (IMO) way instead of barging right through them. - Fix: [NPF] Trains get curves penalties sometimes even when the track is straight. - Add: [NPF] Ships get a penalty for going over buoys now, so they will try to go around. - Add: [NPF] Ships get a penalty for curves too, yay for straight lines. - Add: TrackdirToTrack(), TrackToTrackdir(), IsDiagonalTrack() and IsDiagonalTrackdir() helper functions. - Add: IsBuoy() and IsBuoyTile() helper functions. - Codechange: Rearranged part of the control flow of ShipController(), removing a goto.
2005-04-16(svn r2210) - Fix: When a road-station is deleted, also delete the assigned ↵Darkvater
slots of all vehicles headed to that station. This fixes an assertion, thanks go to Tron for finding the cause.
2005-04-12(svn r2189) Introduce and use IsCompatibleTrainStationTile()tron
This should prevent trains, which are longer than the station, to turn around without stopping under certain circumstances and fix speed limit for trains entering a station, when realistic accerlation is used
2005-04-10(svn r2176) Revise CheckOprhanedSlot():tron
- Don't assert the vehicle type, as it can be anything - Don't touch the slot information of the vehicle, because it's possible that it is not a road vehicle anymore and even if it is, it has nothing to to with that slot - Trim the debug printout, because the information about the vehicle is arbitrary (Joint effort with Darkvater)
2005-04-08(svn r2168) - Fix: Various stages of invisible trains, and wrong ↵Darkvater
v->u.rail.track combinations. When a vehicle was sold its (possibly) assigned road slot for multislot was not cleared, thus resulting in a bug confusion. This should fix [ 1178520 ] Assertion failure in ai.c (invalid v->u.rail.track). With big thanks to TrueLight for the demo-recording patch, BJH for the wonderful savegame, Hackykid for his brilliant suggestions of the problem and Celestar for... ehm, making it all possible ;p
2005-03-28(svn r2097) -Codechange: [Multistop] Prettified the previous commitcelestar
2005-03-28(svn r2096) -Codechange: [Multistop] Modfied some debug stuffcelestar
2005-03-25(svn r2055) -CodeChange: Begun introducting StationIDcelestar
2005-03-19(svn r2031) -Fix: Station #256 now gets cargo delivered as wellcelestar
2005-03-15(svn r2011) - Fix: [ 1162209 ] Fix OS/2 build (orudge) #2darkvater
2005-03-10(svn r1981) Typedef some structs and enumstron
2005-03-09(svn r1976) Cleanups - mostly indentation and fiddling with loopstron
2005-03-08(svn r1961) - Fix: [ 1158618 ] Segmentation fault when loading savegame, out ↵Darkvater
of bounds array check.
2005-03-08(svn r1958) GenerateStationName() tidyup.pasky
2005-03-05(svn r1928) Miscellaneous cleanups (data types, whitespace, const correctness)tron
2005-03-05(svn r1927) Replace implementation of UpdateStationAcceptance(). The new one ↵tron
doesn't malloc() and calculates the station area in one pass instead of 3
2005-03-03(svn r1921) -Fix: Out of bounds array access which caused oil rigs to accept ↵tron
other cargo types besides passengers and mail
2005-02-13(svn r1872) -Fix: Fixed an inline problem which caused MSVC6 to not compile :/celestar
2005-02-13(svn r1867) Include tables/sprites.h only in files which need ittron
2005-02-07(svn r1839) Move GetTileSlope() and GetTileZ() into tile.[ch] and use more ↵tron
explicit types as parameters
2005-02-06(svn r1832) Next byte -> char iteration: custom namestron
2005-02-06(svn r1818) -Add: Dynamic orders (up to 64k orders)truelight
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-02-05(svn r1803) Move debugging stuff into files of it's owntron
2005-02-05(svn r1799) -Codechange: [ Multistop ] Added debug class "ms" and more debuggingcelestar
output for multistops
2005-02-04(svn r1789) -Fix: there is no need to save the index, it is done for ustruelight
2005-02-04(svn r1788) -Add: Made RoadStops dynamic. You can now create up to 64k ↵truelight
roadstops.
2005-02-03(svn r1776) -Add: Dynamic stations. You can now have up to 64k of stationstruelight
2005-02-02(svn r1770) -Fix: Hopefully last pieces of code that are containing a station-idtruelight
(and should be an uint16, not uint8)
2005-02-02(svn r1769) Don't compute the same value twice, remove one function calltron
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 r1743) -Fix: Multistop: Added some debug output and made sure that ↵celestar
orphaned slots are cleared.
2005-01-30(svn r1735) -Fix: [ 1112285 ] Fixed an assertion error with stations where stopscelestar
were deleted, the assertions were just plain wrong at that place. Used a more graceful handling. Todo: What happens if ALL stations in a schedule have no suitable stop?
2005-01-29(svn r1721) -Feature: It is now possible to build multiple road stations (up ↵celestar
to 8) on a single station. Thanks to: Truelight for the saveload code, Darkvater and Hackykid for network testing and Tron for proof-reading 1500 lines of diff.