Age | Commit message (Collapse) | Author |
|
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
|
|
TTDPatch non-stop handling behaviour
|
|
|
|
by selling carriages in a MP game faster than the network can handle. (Truelight)
|
|
this commit alters ai.c a little to get rid of the workaround from r1725 so AI players could still build locomotives
|
|
own the depot too (hacked client protection)
|
|
[GS]etTileType() instead of plain int.
This makes it necessary to rename TileType() to GetTileType() because a type and a function may not share the same name.
|
|
single tile from map.h and put them into a seperate file tile.h
|
|
to a depot
- Feature: [autoreplace] trains now tries to find a depot if they needs to be replaced
Now all 4 types of vehicles goes to a depot if they needs to be replaced
|
|
|
|
that are not available yet (Hackykid)
|
|
it is sufficient. FindLandscapeHeightByTile() uses GetTileSlope() internally and adds some more info, which is discarded in these cases.
While touching the code make a bit more clear how GetBridgeHeight() works.
|
|
This will make things more difficult as narrow curves
and depots impose rather strict speed limits. Feedback welcome
For those who don't like low-speed curves: Switch it off
|
|
adapt the save/load data and some other parts of the code to that change
WARNING: If i made any mistake here it WILL lead to corrupted savegames!
|
|
enters/leaves a depot (Hackykid)
fix: the ship status bar was not updated properly after a breakdown if show_speed was off (Hackykid)
|
|
more of a
workaround, as somewhere there might be some InteractiveRandom() abuse
in the code.
|
|
|
|
to the autoreplace vehicle windows and made them show only the vehicles you actually have in the left list.
this also fixes some window updates issues when autoreplacing
|
|
|
|
|
|
|
|
appropriate warning flags in the Makefile
|
|
that
trains don't think they're on a slope while they drive around in a
tunnel
|
|
|
|
revalidated before
display
-CodeChange: replaced one if (foo) return true else return false by
return (foo)
|
|
engine now adds the the rear engine
autoreplacing a dualheaded engine into a singleheaded engine now sells the rear engine
as a sideeffect of this, the price for replacing both engines are now added and displayed once from the depot(instead of two identical numbers written on top of each other, looking like one)
fix: cost for autorenew dualheaded engines were doubled and their value where doubled too
|
|
message anymore
|
|
displayed, so that there are no stray error messages any more.
-Feature/Fix: Order Checking is only execute for ONE vehicle in an
order-share system
|
|
|
|
uint tile -> TileIndex tile
if () cascade -> switch ()
|
|
them into inline functions and add some asserts
|
|
-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!
|
|
the
realistic acceleration calculation
-Fix: there was a big bug in setting the UP and DOWN flags making it
easy possible for a overloaded train to go up a mountain. This is no
longer possible. They will hang at a certain height
|
|
the latter into inline functions names Tile[XY]
|
|
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 *.
|
|
|
|
Move _tileoffs_by_dir to map.[ch] and encapsulate it in TileOffsByDir()
|
|
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.
|
|
(Hackykid)
|
|
This feature works much like autorenew, but it will get you a new engine type instead of a new one of the same type. Once
ordered, it will automatically replace the engines while they visits a depot. The GUI for setting this up have been added on the
vehicle overview windows
Note: autorenew is now autoreplace, but to the same engine type
Nice new features, that was added to make this possible
- windows can now have two independant vertical scrollbars
- CMD_SHOW_NO_ERROR have been added as a flag for DoCommandP. It will make it do the action instead of showing the red box with
estimated costs even if shift is pressed
- fixed problem where enginetypes where not initialized when loading a game. It's now done in InitializeGame()
|
|
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!!
|
|
game-side patch
Note: this is the first commit that breaks compatibility with 0.3.5!
-Fix: Bufferoverflow with autorenew_money. It is now a 32-bit integer.
|
|
make sure you do not sticky more than 23 at a time. Also a lot of places in the code invalidated the 'status bar' of the vehicle, referring to it as widget 4. This is now widget 5 and has been #definitized
|
|
road/rail-crossing, and you let an other train drive towards it, reverse
it, the lights no longer go off.
|
|
a train
is reversed at the wrong moment (Yeah, our longest open bug finally
fixed :) :) :))
|
|
companies by building a depot close to a station. (even more: trains do
no longer enter tiles that do not belong to his owner)
|
|
|
|
NewsItems. This is now done for "Train in depot" messages. Before displaying such a message, it checks if the train really still is in the depot. Can be applied to other news items as well.
|
|
map.c and map.h
|
|
Replaced the slightly misleading SERVICE_INTERVAL by a function VehicleNeedsService()
|