Commit Graph

127 Commits

Author SHA1 Message Date
Darkvater
132f8673db (svn r2274) - Codechange: some comments, parentheses and EngineID typedef for engine_type 2005-05-06 16:13:44 +00:00
Darkvater
b0f58568f0 (svn r2270) - Fix/Codechange: fix up selling rail vehicles. Try to be smart about it. When selling dual-headed trains, also sell the rear end; if the now-first wagon is an engine, make it a train. When selling the whole train, try to leave dual-headed setups intact 2005-05-05 20:46:14 +00:00
matthijs
f04ba0b679 (svn r2262) - Fix: Assertion when vehicle in a depot wants to do pathfinding.
GetVehicleTrackdir now tries to get a valid trackdir as much as possibly, by assuming that a vehicle is facing outwards in a depot or road station, for example.
- Codechange: [Multistop] Multistop now also tries to find a slot for road vehicles that are in stations, since the pathfinder now properly handles that.
2005-05-03 20:45:23 +00:00
matthijs
f7eb57c0fc (svn r2261) - Fix: When crashed vehicles try to find a depot for servicing, openttd asserts.
Crashed vehicles shouldn't find depots anyway...
2005-05-03 19:31:33 +00:00
matthijs
f8302a137a (svn r2256) - Fix: Trains cannot find a depot when they are in a tunnel. (glx)
- Add: GetVehicleTrackdir() helper function.
- Codechange: Moved SortStruct from vehicle_gui.h to ttd.h, so the dependency from vehicle.h on vehicle_gui.h could be removed.
- Codechange: Typedeffed the VehicleTypes struct so it can be used as the type for Vehicle.type instead of "byte".
- Codechange: Removed prototype for VehicleSorter(), which had no implementation anymore and was never called.
2005-05-02 23:59:11 +00:00
matthijs
c08314a43a (svn r2202) - Fix: [NPF] When a vehicle could not reach its target, it would choose a random direction. It will now try to get as close as possible. 2005-04-15 13:48:08 +00:00
tron
53d30138b2 (svn r2189) Introduce and use IsCompatibleTrainStationTile()
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-12 10:31:26 +00:00
tron
beb185248b (svn r2188) Revert r2185, because trains always accerlated (Requested by Celestar) 2005-04-12 09:21:04 +00:00
tron
2b0c6b6acc (svn r2187) Implement a slightly better workaround than r1588 did. (Joint effort with Celestar) 2005-04-12 09:17:51 +00:00
celestar
cc53b11637 (svn r2185) -Fix: Made sure that the realistic acceleration does not freeze trains anymore 2005-04-11 21:10:47 +00:00
celestar
ec0358f850 (svn r2180) -Fix: Deceleration code now only takes into account rail station tiles for computing the remaining distance 2005-04-11 14:59:06 +00:00
matthijs
b1245a4984 (svn r2179) - Fix: [ 1121437, 1114228 ] Vehicles not entering depots for auto servicing. 2005-04-11 12:08:09 +00:00
pasky
c68e9478fe (svn r2119) - Fix: [ 1172878 ] Trains "Go to depot" button: click twice skip to next order (patch by Loic GUILLOUX). I also added short explanation of OF_/OFB_ difference to order.h. 2005-04-02 01:08:01 +00:00
celestar
58a72bf483 (svn r2105) -Codechange: Added a cache for the first vehicle of a chain to increase performance, especially with many long trains 2005-03-29 11:19:10 +00:00
truelight
0560b88db2 (svn r2058) -Fix: hopefully this fixes the reverse-train-in-depot-bugs (plural) 2005-03-25 12:07:26 +00:00
celestar
6246150d8d (svn r2056) -Fix: [ 1166999 ] Strange cast removed. Thanks Tron 2005-03-25 11:03:05 +00:00
celestar
0cec257797 (svn r2055) -CodeChange: Begun introducting StationID 2005-03-25 10:40:58 +00:00
truelight
d1e158d6f7 (svn r2046) -Codechange: moved all waypoint code to waypoint.c/waypoint.h
-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 17:03:37 +00:00
tron
9655764730 (svn r2035) - Remove unneeded realloc()
- Use TileOffsByDir() instead of home brewed table
2005-03-23 08:24:13 +00:00
celestar
a9c0a173bf (svn r2034) -Codechange: Replaced the rather meaningless LOAD and UNLOAD flags for depots by something more meaningful 2005-03-20 08:43:29 +00:00
bjarni
e5abf58461 (svn r2024) -Fix: [autoreplace] reverted all changes involving v->set_for_replacement as they caused desyncs.
The bad sideeffect of this is that now no vehicle will automatically go to a depot anymore just 
because it is set to be autoreplaced. We will have to find a better way to solve this problem.

Revisions reverted: 1640, 1707, 1709, 1710, 1712(but not the cheat prevention in this one)
2005-03-19 21:16:22 +00:00
darkvater
d0ea6bcdf0 (svn r2011) - Fix: [ 1162209 ] Fix OS/2 build (orudge) #2 2005-03-15 12:21:59 +00:00
tron
eea2dc6c78 (svn r1979) Const correctness 2005-03-09 21:54:52 +00:00
tron
9d1526e0a4 (svn r1976) Cleanups - mostly indentation and fiddling with loops 2005-03-09 19:09:04 +00:00
matthijs
e9a1752683 (svn r1965) - Fix: [NPF] Forgot to update one line where NPFGetFlag() should have been used two commits ago.
Message for last commit should have been:
- Add: [NPF] Added penalty for curves, straighter paths are now preferred when the length is the same. (HackyKid)
2005-03-08 20:13:21 +00:00
matthijs
6a5495f83c (svn r1963) - Add: [NPF] Penalty for a red signal that is the last signal on the path.
- Add: [NPF] NPFGetFlag() and NPFSetFlag() to wrap NPF node flag handling
2005-03-08 19:54:10 +00:00
Celestar
79b2a245e6 (svn r1959) -Fix: Repaired two memleaks I have hacked :( 2005-03-08 16:27:26 +00:00
pasky
904700fc9f (svn r1947) As in r1946, permit DC_QUERY_COST even on non-depot tiles - so that it works for the ai_new. It is de iure not a bug yet but let's be safe against future annoying headaches. Signed-Off-By: TrueLight 2005-03-06 16:58:42 +00:00
tron
83cbb7b1da (svn r1942) Fix r1938 2005-03-06 15:15:27 +00:00
tron
12b223b3f9 (svn r1938) Miscellaneous cleanups: const correctness, kill a goto, ... 2005-03-06 12:54:19 +00:00
tron
505ecdc6b4 (svn r1936) End some void-pointer-as-int-abuse; this also fixes a latent bug where a TileIndex was only 24bit wide (on 32bit architectures) 2005-03-06 12:41:18 +00:00
tron
42520c1cc3 (svn r1935) Missing braces; while here turn the ifs into a single switch 2005-03-06 12:33:33 +00:00
tron
3892aece72 (svn r1934) Small cleanup (uint -> TileIndex, (uint)-1 -> INVALID_TILE and similar stuff) 2005-03-06 12:31:07 +00:00
Darkvater
5a24ba51c8 (svn r1922) - Fix: Disappearing of crashed trains inside tunnels were not checked properly. 2005-03-03 23:26:35 +00:00
tron
a370af76d2 (svn r1898) Remove some unused macros from macros.h and move some others to more appropriate headers 2005-02-22 12:48:03 +00:00
celestar
6154175dc1 (svn r1891) -Fix: [ 1143587 ] carriages of newgrfs can be refitted again 2005-02-20 07:47:42 +00:00
tron
6d2b9d2c3a (svn r1863) Give the effect vehicle type enums more descriptive names and use the enum as parameter type for CreateEffectVehicle*()
-Fix: [1116619] Generate the correct smoke type for diesel trains
2005-02-12 15:53:32 +00:00
celestar
0e6109d360 (svn r1841) -Fix: [ 1117538 ] non-stop orders are no longer accidently skipped 2005-02-07 12:47:29 +00:00
matthijs
cc0966405b (svn r1834) - Fix: NPF does not check the owner of its target, busses try to 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 22:36:08 +00:00
truelight
bd7f37d592 (svn r1817) -Codechange: Moved depot-functions to depot.c
-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-06 10:18:47 +00:00
truelight
99f3fe4c07 (svn r1786) -Fix: unitnumber is increased to 16bit, so now you can have up to 5000
trains in one game (instead of the 240 which was the current value). 
Default max allowed vehicles per type is changed:
  Trains:  500 (old 80)
  Road:    500 (old 80)
  Ships:   200 (old 40)
  Aicraft: 300 (old 50)
(Tnx to Celestar and Darkvater for checking the patch)
2005-02-04 14:24:23 +00:00
truelight
0668a6b485 (svn r1770) -Fix: Hopefully last pieces of code that are containing a station-id
(and should be an uint16, not uint8)
2005-02-02 16:16:43 +00:00
matthijs
eb78cdb2d4 (svn r1751) - Feature: New PathFinder (NPF).
- 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 11:23:10 +00:00
tron
bb680056b1 (svn r1749) Move the functions which calculate distances to map.[ch] and give the more meaningful names 2005-01-31 07:23:15 +00:00
bjarni
7d967ad12a (svn r1741) - Fix: added IsVehicleIndex() so it's possible to protect GetVehicle() from reading an invalid vehicle index
- Fix: added check for v->type in some commands, which expects v to be a specific type

Checks like this is needed to protect network servers from people, who hack their clients to either cheat or crash the server

NOTE: if I made a mistake here it can make a function unreachable when it should be used. Here is one place to look if something weird happens
2005-01-30 20:50:06 +00:00
celestar
fb3af3321a (svn r1740) -Fix: [ 1112342 ] Realistic acceleration works properly with TTDPatch non-stop handling behaviour 2005-01-30 19:51:39 +00:00
darkvater
bc0198a4c3 (svn r1739) - Fix: type checking when selling vehicles (TrueLight) 2005-01-30 18:51:08 +00:00
celestar
39c55d0eb3 (svn r1738) -Fix: [ 1108735 ] Fixed (hopefully) an assertion that was cause by selling carriages in a MP game faster than the network can handle. (Truelight) 2005-01-30 18:40:52 +00:00
bjarni
3103119b6c (svn r1727) - Fix: now CmdBuildRailVehicle() behaves correctly if DC_EXEC is set
this commit alters ai.c a little to get rid of the workaround from r1725 so AI players could still build locomotives
2005-01-30 13:03:32 +00:00
bjarni
001cdf0ba2 (svn r1725) - Fix: now trains can only be built in depots and you have to own the depot too (hacked client protection) 2005-01-29 23:58:07 +00:00