tron
9be713f1ae
(svn r4079) Add GetSation{Index,ByTile}() to get the station index resp. the station from a tile
19 years ago
tron
4b74fa1923
(svn r3981) More work for the rail accessing functions and enums
19 years ago
tron
77e5cf4bc1
(svn r3979) Move GetRailFoundation() to rail_map.h and use it and friends to get information about rail tiles
19 years ago
bjarni
a137268f13
(svn r3947) use TOGGLEBIT() instead of manual bit toggling in CmdReverseTrainDirection (pointed out by glx)
19 years ago
bjarni
b610872f35
(svn r3945) cleaned the layout in CmdReverseTrainDirection a bit (made a bit messy in last commit)
19 years ago
bjarni
a36f8a46fa
(svn r3944) -Feature: it's now possible to turn a single unit in a train
...
control-click on a unit in a train in a depot will make the click unit turn around
this is useful if you want "normal" engines to act as dualheaded (one each way) or similar
this only works on single unit units. Multiheaded and articulated engines get a red error box
this is based on a quick hack peter1138 while I made it network safe and correctly handling of multible unit engines
19 years ago
tron
89090790c2
(svn r3916) Get/Set the rail type by [GS]etRailType{Crossing,OnBridge,}()
19 years ago
tron
b8da06ddb1
(svn r3907) Replace many bridge related direct map accesses with calls to shiny new functions and mark some strange constructs with XXX
19 years ago
tron
5d939d9c10
(svn r3851) Rail depots only have an entrance at one side, therefore use UpdateSignalsOnSegment() instead of SetSignalsOnBothDir()
19 years ago
tron
b05a98fdfa
(svn r3832) Replace some magic numbers by (Diag)Direction enums
19 years ago
tron
12d252d9bd
(svn r3831) Add and use GetRailDepotDirection()
19 years ago
tron
78083f0da7
(svn r3830) Move IsTunnelTile() from tile.h to tunnel_map.h and add IsTunnel(), which just checks for a tunnel, but not the tile type as IsTunnelTile() does
19 years ago
tron
b394f72fa9
(svn r3829) Reduce the use of _error_message by directly returning error codes instead of using this global variable
19 years ago
tron
78a7b15ce0
(svn r3803) Change the second parameter of UpdateSignalsOnSegment() from Direction to DiagDirection as that's what it really operates on
19 years ago
tron
e68120034c
(svn r3789) Add an enum and function to handle DiagDirection changes
19 years ago
tron
2181a72e9e
(svn r3787) Use DirToDiagDir() instead of >> 1
19 years ago
tron
03536a32a1
(svn r3786) More work for DirDiff
19 years ago
tron
ecabf8a5f0
(svn r3784) Add a type and functions to handle direction changes
19 years ago
tron
fbe939b31f
(svn r3783) Replace further ints and magic numbers by Direction, DiagDirection and friends
19 years ago
tron
f2dc736554
(svn r3777) Add some functions to handle tunnels
19 years ago
tron
2d3c28f2b3
(svn r3776) Replace many ints and magic numbers by Direction, DiagDirection and friends
19 years ago
tron
87fdb129d2
(svn r3758) Remove the news validation callback. It is superseded by r3757.
19 years ago
tron
4270026b42
(svn r3757) -Feature: Delete news items about vehicles, when they get stale
...
This is used to delete
- all news about a vehicle, when it gets deleted
- "vehicle has stopped in depot" news, when it gets started
- "vehicle has invalid orders" news, when the orders get changed
19 years ago
peter1138
601b226f04
(svn r3602) - Move _railveh_score data to _rail_vehicle_info->ai_rank and remove global variable to return data as we can now access this directly.
19 years ago
tron
ea73b46684
(svn r3597) Miscellaneous (I like that word) changes: Fix some indentation, add consts, reduce indentation level by short-circuit logic, convert if cascades to switch, whitespace, bracing, plus some minor stuff
19 years ago
peter1138
6f5f3101b6
(svn r3588) - Refit: Use only one global to return the refit capacity rather than one per vehicle type.
19 years ago
peter1138
1097ec2b62
(svn r3587) - NewGRF: Rename Callback IDs to include their "class"
19 years ago
tron
f5b564bc44
(svn r3585) Similar changes to the order handlers of the other vehicle types like r3584
19 years ago
peter1138
f4215cf6a0
(svn r3579) v->u.rail.first_engine holds an engine type, not a vehicle index, so use INVALID_ENGINE.
19 years ago
peter1138
fbd78c8185
(svn r3570) - Explicitly update v->first in TrainConsistChanged() if necessary, as this is far faster than brute forcing it later.
19 years ago
tron
453b30e387
(svn r3564) Several smaller changes:
...
- Don't treat non-booleans as booleans
- Reduce variable scope
- Bracing
- Use DeMorgan's law to make conditionals easier to read
- if cascade -> switch
- Replace some magic numbers by symbolic names
- Avoid assignments within other statements
19 years ago
peter1138
ab771e4ff0
(svn r3557) - NewGRF: move callback enums to a new file as more than just engines will use them
19 years ago
bjarni
78b51cbec2
(svn r3535) -Feature: [autoreplace] allow autoreplacing of train wagons
...
currently ALL available wagons are displayed in the right menu in the replace window
however the replacement will only be done if the new wagon can be refitted to carry same cargo as the old one is currently carrying
Since the standard vehicles do not have any valid wagon replacements, this feature can only be used when using newgrf sets
19 years ago
peter1138
b88904f345
(svn r3524) - Split newgrf features from engine.[ch] into newgrf_engine.[ch], and add the new files to project files.
19 years ago
tron
84fb96fe85
(svn r3511) More whitespace ([FS#46] by Rubidium)
19 years ago
tron
22dc05faf2
(svn r3510) Fiddle with whitespace and parentheses
19 years ago
bjarni
8c7e594b08
(svn r3484) -fix: fixed issue in last commit where loading savegame versions 18 and 19 didn't init the multiheaded engine pointers
19 years ago
Darkvater
4e09974975
(svn r3472) - [PBS] Remove from trunk. Anyone interested can still find it in branch/pbs. This reverts revisions r3158, r3140, r3075, r2977, r2674, r2625, r2621, r2529, r2528, r2525, r2524, r2519, r2517, r2516, r2507, r2499. (in conjunction with Tron)
...
- The only change is that the nsignalsw.grf file is kept and that existing nightlies with PBS signals get those signals converted to combo-signals.
19 years ago
peter1138
952f246433
(svn r3431) - Fix crash when moving vehicles around in a train depot under certain conditions.
19 years ago
peter1138
0f28e74e3e
(svn r3422) - Fix: If an engine reaches the rear of a depot, make the engine turn around before it reaches the tile end (same as a normal end of line.) This fixes a bug whereby the engine could poke into the depot and crash with another engine just leaving it.
19 years ago
bjarni
e35a131153
(svn r3403) -Codechange: [multiheaded engines] the references between the front and rear engines are no longer saved
...
instead the pointers are generated on load
19 years ago
bjarni
b87b5f1187
(svn r3402) -Fix: [building/cloning] added a string telling if build failed due to not being able to build a vehicle. Triggered when cloning a retired design
19 years ago
peter1138
7c5a58bbad
(svn r3392) Train depot fixes:
...
- Only count the parts from the source train that will be moved, not the whole train.
- Don't count articulated parts of an engine. This alleviates issues with autoreplacing very long trains.
19 years ago
peter1138
e81c316134
(svn r3388) - NewGRF: Allow train running cost class to differ from engine class. Also fix typo in r3384.
19 years ago
truelight
e8c871a603
(svn r3381) -Fix: r3374 left one bug: allow moving around wagons in a 100 long train
19 years ago
peter1138
79ce0def50
(svn r3378) - NewGRF Fix: Use order status to determine whether a vehicle is loading instead
...
of speed, and get that state from first vehicle in a train consist.
19 years ago
truelight
b542f784f9
(svn r3374) -Fix: [ FS#36 ] Don't allow trains to get bigger than 100 via drag and drop
19 years ago
truelight
54501dc6df
(svn r3373) -Fix: don't link a wagon to itself, which resulted in a wagon disapearing, and a depot which was unable to remove
19 years ago
tron
af70b49bf7
(svn r3367) Unify the 4 distinct CMD_CHANGE_{AIRCRAFT,ROADVEH,SHIP,TRAIN}_SERVICE_INT commands into one CMD_CHANGE_SERVICE_INT command.
...
As side effect this is a
-Fix: The default AI tried to change the service intervals of vehicles via the CMD_CHANGE_TRAIN_SERVICE_INT command - regardless of the type of the vehicle - which of course failed for non-trains
19 years ago
tron
e272b03fee
(svn r3365) Staticise 36 functions
19 years ago
tron
246c126d25
(svn r3353) Simplify the automatic length adjustment algorithm for replacing trains: Use the length of the train before the replacement as reference length
19 years ago
peter1138
1ffc700797
(svn r3352) - NewGRF: Move initialization of vehicle random_bits to DC_EXEC blocks to allow use of Random() instead of InteractiveRandom(), which will alleviate some possible network desyncs.
19 years ago
peter1138
f6330faead
(svn r3303) Change #if PF_BENCHMARK to #ifdef PF_BENCHMARK
19 years ago
tron
23bfc03054
(svn r3297) Staticise
19 years ago
peter1138
fde99748c0
(svn r3248) - Codechange: Change interface of CanRefitTo() to supply the engine type directly instead of getting it from a vehicle. This allows the function to be used before vehicles are involved.
19 years ago
bjarni
e472fed85a
(svn r3219) -Codechange: removed the now obsolite code in the build train command to make half multiheaded engines
19 years ago
bjarni
22a4679837
(svn r3218) -Feature: Multiheaded train engines will now stay in the same train
...
This means that any user attempt to remove a rear engine will tell the user to move the front engine instead
This fixes the assert when moving multiheaded engines (introduced in r3144)
Note: to make old savegames use this feature, some engines might be turned around in order to link engines in pairs
-Codechange: train subtype is now a bitmask
This allows fast access to info like if it is a wagon or engine and if it is in front and so on
Note: savegame version bump
19 years ago
tron
89cfe202b8
(svn r3208) Don't explicitly pass the engine type to look for to GetRearEngine(), because it's the engine type of the vehicle which gets passed as first parameter
19 years ago
tron
8cebe2f607
(svn r3204) Make handling of clicking on vehicles a bit less ugly by avoiding function declarations in .c files and unnecessary indirection
19 years ago
tron
f7abff5f96
(svn r3181) -Bracing
...
-Indentation
-Whitespace
-DeMorgan's Law
-Test with NULL or 0 for non-booleans
-'\0' instead of 0 for chars
-Remove redundantly redundant comments (like DoFoo(); // Do foo)
-Join multiple short lines with a single statement
-Split single lines with multiple statements
-Avoid assignments in if
19 years ago
tron
5fa6b7eb06
(svn r3179) - RandomRange() and RandomTile() instead of home brewed versions
...
- CHANCE*() instead of mumbling strange numbers
19 years ago
tron
833032adc0
(svn r3177) GB, CLRBIT, HASBIT, TOGGLEBIT
19 years ago
tron
357aba7475
(svn r3176) Use proper types, not some variants of int
19 years ago
tron
ee15e3de13
(svn r3172) static, const
19 years ago
bjarni
5e278b7ec3
(svn r3156) -Fix: removed some cases where autoreplace windows were redrawn when nothing was changed
...
due to the FOR_ALL_VEHICLES(), redrawing those windows are slow
19 years ago
bjarni
5481dcd191
(svn r3155) -Feature: [autoreplace] autoreplace can now remove cars from too long trains
...
-Trains will now remember the length of stations it visits and sell cars
when being autoreplaced if they became too long
-If it needs to remove cars, then it starts from the front and sells
all it can find until the train is short enough
-This only works for trains, that knows the station length of the route
so a full uninterrupted run is needed
-a train needs 1-2 runs to detect if the shortest station is expanded
-This feature can be turned on and off in the train replace window
and each company can have it's own setting
-NOTE: minor savegame version bump
19 years ago
peter1138
8bcfa23d29
(svn r3150) Unify some code duplication in HandleLocomotiveSmokeCloud()
19 years ago
peter1138
220b4c27c1
(svn r3147) Fix crash when building dual-head rail vehicles...
19 years ago
peter1138
b58cfc36da
(svn r3146) Avoid use of variable size declared arrays when allocating articulated rail vehicles.
19 years ago
peter1138
de76933337
(svn r3145) Fix two off-by-one errors in building articulated rail vehicles.
19 years ago
bjarni
63842939ed
(svn r3144) -Fix: a new train is now made if the front unit is an engine and the former front engine is moved away (Meush)
19 years ago
peter1138
267314b4d0
(svn r3139) -NewGRF, Feature: support for articulated rail vehicles. This is used, for example, by coal tenders.
19 years ago
bjarni
c8ea743e47
(svn r3136) -Fix: [autoreplace] all cargo in engines that consists of more than one vehicle will try to move cargo from all vehicles
...
currently this applies to planes and multiheaded train engines (no more lost airmail)
added GetNextEnginePart() that returns the next vehicle in an engine nomatter what type it is
when more types of multivehicle engines are added, they will have to be added here too or autoreplace will not remove all cargo
19 years ago
peter1138
081bae03d9
(svn r3132) -NewGRF: support positioning of rail vehicle visual effects.
19 years ago
peter1138
e80d448478
(svn r3124) Alter train loading/unloading time to use the actual length of the train instead of the number of wagons. The actual length is cached in the first vehicle of the train.
19 years ago
bjarni
682b9ee8e4
(svn r3111) -Fix: [autoreplace] [ 1341783 ] Assertion failure in vehicle.c line 378
...
running MaybeReplaceVehicle() is now delayed until after the loop in CallVehicleTicks()
This avoids selling the vehicle the loop currently works with (and continues to work with afterwards)
19 years ago
peter1138
1a2ad83b00
(svn r3107) -NewGRF: Move train y-position offset adjustment to remove code duplication, and make it apply only to vehicles with a custom image.
19 years ago
bjarni
6d41c23cf2
(svn r3101) -Codechange: added _new_vehicle_id
...
this var works like _new_train_id and the rest of that kind of vars, except it is set each time a vehicle is build, nomatter what type
this is a nice tool to code vehicle independent code, which in turn can reduce code duplication
Right now it's used in ReplaceVehicle() and CmdCloneVehicle()
19 years ago
tron
9e957ff80b
(svn r3098) static, const, uint -> TileIndex, indentation, bracing, unused return values, ... mostly related to the clone vehicle GUI
19 years ago
bjarni
bf467bd99c
(svn r3081) -Codechange: [autoreplace] complete rewrite of autoreplace
...
this is a complete rewrite, that makes use of existing commands like build and sell
this means that multiheaded train engines are replaced correctly
19 years ago
tron
47137cefb7
(svn r3078) Some more stuff, which piled up:
...
- const, whitespace, indentation, bracing, GB/SB, pointless casts
- use the trinary operator where appropriate
- data types (uint[] -> AcceptedCargo, ...)
- if cascade -> switch
- if (ptr) -> if (ptr != NULL)
- DeMorgan's Law
- Fix some comments
- 0 -> '\0', change magic numbers to symbolic constants
19 years ago
tron
d4752ba0da
(svn r3058) The default AI may not build dual headed trains under certain circumstances.
...
Simplify this check by testing the rail vehicle info flags instead of passing a global variable around.
Note: This is not exactly the original behaviour, because the Lev4 was always allowed to be built, but i guess that was a glitch.
19 years ago
tron
9314ea877f
(svn r3052) Fix last commit *grml*
19 years ago
tron
0834a88a12
(svn r3051) Remove the unused function RemoteSubsidyAdd()
19 years ago
tron
ab657338ec
(svn r3048) Replace 0/1/2 by RAILTYPE_RAIL/MONO/MAGLEV where appropriate
19 years ago
tron
d37639ac3e
(svn r3036) Use IsCompatibleRail() to check the rail type of level crossings (not a fix, because the old == method works so far)
19 years ago
tron
ae4a1f3675
(svn r3019) -Codechange: Replace explicit shifting/anding/oring with GB and SB
19 years ago
tron
db3b1228bf
(svn r3010) Get rid of quite some dubious casts, either by using GB(), proper types or just removing them
19 years ago
Darkvater
a3d40a29fc
(svn r3008) [ 1247535 ] Native Support for Win64 (compile&run only) (michi_cc)
...
Fix warning in graph_gui.c with const problem
19 years ago
tron
0cc45ecd8e
(svn r3003) Change int, uint, uin16 and byte to EngineID where appropriate, plus some related changes (mostly casts)
19 years ago
tron
ed8c9c91d6
(svn r3001) s/Player*/const Player*/
...
s/byte/PlayerID/
s/int/PlayerID/
and related changes
19 years ago
peter1138
fbf06041ca
(svn r2990) Remove _engine_original_sprites and replace all uses with references to our (new) original engine/vehicle tables.
19 years ago
peter1138
2314431a59
(svn r2989) - Make engine/vehicle information tables constant. Duplicate them so NewGRF data can be loaded without wiping out the default data.
19 years ago
peter1138
c02b1d555d
(svn r2982) Newgrf: Added patch option for wagon speed limits. This is enabled by default.
19 years ago
hackykid
d5d8d29c9f
(svn r2977) - CodeChange: [pbs] Use a check to see if a rail segment is a pbs segment, instead of letting the pathfinder determine this.
19 years ago
peter1138
4d8c903d62
(svn r2967) Fix: newgrf: Wagon speed limits don't apply for wagons with livery overrides. Fixes max speed in dbsetxl etc.
19 years ago
Darkvater
8e6a911700
(svn r2962) - const correctness for all Get* functions and most Draw* functions that don't change their pointer parameters
...
- change a lot of byte player types to PlayerID
- beautify header files, same "#endif /* filename */" ending
19 years ago
Darkvater
2131f68ae2
(svn r2951) - Fix: [ 1259345 ] Changing engine in netgame opens train window for everyone
...
- Add IsLocalPlayer() which substitutes _local_player == _current_player
19 years ago
tron
b45aeb5c36
(svn r2886) Rename the "owner" attribute to "m1", because when it stores an owner it is accessed by [GS]etOwner anyway and when it doesn't store an owner, but arbitrary data, accessing a field called "owner" is confusing.
19 years ago
ludde
29564f9fcf
(svn r2781) Fix some of the issues with variables in .h files.
19 years ago