summaryrefslogtreecommitdiff
path: root/vehicle.c
AgeCommit message (Collapse)Author
2005-11-19(svn r3220) -Fix: [autoreplace] Autoreplaced trains now replace their cargo ↵bjarni
to the train instead of just the new engine This applies to wagon removal during autoreplace too
2005-11-19(svn r3219) -Codechange: removed the now obsolite code in the build train ↵bjarni
command to make half multiheaded engines
2005-11-18(svn r3218) -Feature: Multiheaded train engines will now stay in the same trainbjarni
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
2005-11-16(svn r3208) Don't explicitly pass the engine type to look for to ↵tron
GetRearEngine(), because it's the engine type of the vehicle which gets passed as first parameter
2005-11-16(svn r3193) Staticise the vehicle position hashtron
2005-11-14(svn r3181) -Bracingtron
-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
2005-11-14(svn r3177) GB, CLRBIT, HASBIT, TOGGLEBITtron
2005-11-13(svn r3173) Use the trinary operator and switch to improve readabilitytron
Also align short cases nicely
2005-11-13(svn r3172) static, consttron
2005-11-07(svn r3155) -Feature: [autoreplace] autoreplace can now remove cars from too ↵bjarni
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
2005-11-06(svn r3148) -NewGRF, Feature: Add support for cargo refitting specification ↵peter1138
by cargo classes.
2005-11-05(svn r3143) -Codechange: greatly increased speed when allocating vehiclesbjarni
This increases the speed greatly when allocating more than one at a time (planes, artic engines, cloning...) and when adding another block of vehicles to the vehicle pool (adding 512 vehicles each time)
2005-11-05(svn r3139) -NewGRF, Feature: support for articulated rail vehicles. This is ↵peter1138
used, for example, by coal tenders.
2005-11-05(svn r3138) -Fix: [clone vehicles] fixed assert when it was possible to ↵bjarni
allocate some vehicles to clone a train, but not for all cars Now it gives "too many vehicles" error message instead To make this work, AllocateVehicles() needed to be moved to vehicle.c (from aircraft_cmd.c) and made non-static
2005-11-04(svn r3137) -Fix: [autoreplace] fixed assert that was triggerable when a ↵bjarni
vehicle entered a depot even though the goto depot was canceled this assert could be reached by clicking on the goto depot button to cancel goto depot from the orders and the vehicle still entered the depot. The flags in that case would not be "normal" anymore. An additional check is added to prevent this
2005-11-04(svn r3136) -Fix: [autoreplace] all cargo in engines that consists of more ↵bjarni
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
2005-11-03(svn r3129) -Fix: [autoreplace] fixed bug that made the player pay twice for ↵bjarni
autoreplacing and could end up with negative money this is not the same bug as in rev 3128, which means you actually paid 3 times. Now it pays correctly
2005-11-03(svn r3128) -Fix: [autoreplace] fixed bug that made the player pay twice for ↵bjarni
autoreplacing and could end up with negative money
2005-11-03(svn r3127) -Fix: [autoreplace] fixed a condition where a vehicle could fail ↵bjarni
to stop when autoreplacing this would result in the construction of a new vehicle while the old one just continued added an assert to make sure it's always stopped before trying to sell the old vehicle
2005-11-01(svn r3116) -Fix: [autoreplace] fixed issue where autorenewing/autoreplacing ↵bjarni
a plane could lock up an airport this will not fix already locked up airports this bug was introduced in rev 3111
2005-10-31(svn r3112) -Feature: [autoreplace] profit counters are now remembered too ↵bjarni
(request by Darkvater)
2005-10-31(svn r3111) -Fix: [autoreplace] [ 1341783 ] Assertion failure in vehicle.c ↵bjarni
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)
2005-10-29(svn r3101) -Codechange: added _new_vehicle_idbjarni
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()
2005-10-29(svn r3100) -Codechange [Clone vehicles] Major change to clone vehiclesbjarni
removed duplicated code and added DoCommand, which used the define build commands added with autoreplace This should not affect gameplay at all
2005-10-27(svn r3093) -Fix: [autoreplace] fixed issue where the money limit message ↵bjarni
showed up in some cases when no replace was needed
2005-10-24(svn r3081) -Codechange: [autoreplace] complete rewrite of autoreplacebjarni
this is a complete rewrite, that makes use of existing commands like build and sell this means that multiheaded train engines are replaced correctly
2005-10-23(svn r3078) Some more stuff, which piled up:tron
- 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
2005-10-07(svn r3024) -Codechange: Another batch of replacements of ↵tron
int/uint/int16/byte/-1 with proper types and constants
2005-09-28(svn r2995) Replace 0xFF/0xFFFF with ↵tron
CT_INVALID/OWNER_SPECTATOR/INVALID_STATION where appropriate
2005-09-27(svn r2993) Fix: Reset aircraft images differently. Fixes assertion ↵peter1138
introduced in r2991.
2005-09-26(svn r2991) Reset vehicle images on game load. Allows savegames with NewGRFs ↵peter1138
saved prior to r2868 to load.
2005-09-18(svn r2962) - const correctness for all Get* functions and most Draw* ↵Darkvater
functions that don't change their pointer parameters - change a lot of byte player types to PlayerID - beautify header files, same "#endif /* filename */" ending
2005-09-14(svn r2951) - Fix: [ 1259345 ] Changing engine in netgame opens train window ↵Darkvater
for everyone - Add IsLocalPlayer() which substitutes _local_player == _current_player
2005-09-03(svn r2912) -Fix: [autorenew]: fixed issue where autorenewed vehicles ↵bjarni
didn't get all stats updated (peter1138)
2005-08-08(svn r2845) Remove sprite size caching, it was unusedtron
This makes GetSpriteDimension() superflous, because now it's just a thin wrapper around GetSprite() returning only part of the information, therefore remove it too
2005-08-06(svn r2820) -Fix: [autoreplace] fixed issue introduced in 2817 where ↵bjarni
autoreplace failed if new engine is cheaper than the old one (peter1138)
2005-08-06(svn r2819) Make variables, which are exclusive for internal use of the ↵tron
save/load code, static in saveload.c
2005-08-06(svn r2817) -Codechange: [autoreplace]: moved autoreplace and autorenew to ↵bjarni
serverside -This means that one company can only have one setting for renew and replacing more clients will not fight due to different settings anymore -This is a needed step in the line to fix autoreplacing dualheaded locomotives NOTE: savegame revision bump (peter1138 + me in coop)
2005-08-01(svn r2781) Fix some of the issues with variables in .h files.ludde
2005-08-01(svn r2779) -Fix: [clone vehicles] fixed typos, which could lead to crashes ↵bjarni
when cloning refitted trains (chrishuebsch)
2005-07-31(svn r2764) -Feature: Clone vehiclesbjarni
-This allows a player to clone an excisting vehicle of his own -[fix]: this uncovered an excisting bug in CmdBuildRailVehicle() where depots could build trains of the wrong track type. This is fixed -Thanks to Celestar for drawing the sprites and _luca_ for including them in openttd.grf
2005-07-24(svn r2701) Insert Id tags into all source filestron
2005-07-22(svn r2673) Include functions.h directly, not globally via openttd.htron
2005-07-20(svn r2658) -Codechange: Use MAKE_TRANSPARENT to display a transparented spritecelestar
2005-07-20(svn r2650) Convert many explicit shifts+ands to extract bits to invocations ↵tron
of GB - should be a bit nicer to read
2005-07-17(svn r2626) static, const, misc.tron
2005-07-17(svn r2625) - Fix: [pbs] Store the end of a train's reserved path ↵hackykid
explicitly. Prevents trains from unreserving eachothers paths in some cases. - CodeChange: Use the TrackdirToTrack function instead of &7, and remove an unneeded variable.
2005-07-17(svn r2600) Fix: [vehicles] Fix problem with vehicle loop not distributing ↵ludde
the calls evenly over the day.
2005-07-13(svn r2558) Change the internal map format from 7 arrays to one array of ↵tron
structs, this doesn't change the saved format for now. It's a stepping stone for further changes.
2005-07-04(svn r2516) - Feature: [pbs] Implement path-based-signalling. This allows ↵hackykid
multiple trains within the same signal block, provided their paths dont intersect. For this the block must have all exit and entry signals be pbs signals. Place these by ctrl-clicking 4 times on a normal signal. - Feature: [pbs] Implement autoplacement of pbs blocks, when a block has an entry and an exit pbs signal, covert the entire block to pbs. Can be turned off in the patch settings. - Feature: [pbs] Allow showing of reserved status by making the tracks darker, when the pbs debug level is at least 1.