Commit Graph

252 Commits (d8e126d98ddc35df0ac97bd35a076edf1cf172c8)

Author SHA1 Message Date
rubidium 07a43863c4 (svn r13936) -Codechange [YAPP]: Enable the auto-signal tool to build PBS signals and honor the default signal type. (michi_cc) 16 years ago
rubidium 60006ad24c (svn r13935) -Codechange [YAPP]: PBS signals can now be built with the normal signal tools. (michi_cc) 16 years ago
rubidium d6645818b4 (svn r13933) -Codechange [YAPP]: Handle through and PBS signals correctly in the signal code. (michi_cc) 16 years ago
rubidium fe4f23dba2 (svn r13932) -Add [YAPP]: PBS signals added to the map array. The signals are drawn using the old Patch-like PBS sprites. (michi_cc) 16 years ago
rubidium 9295bd3f7c (svn r13930) -Codechange [YAPP]: Clear track reservation when removing a rail track. (michi_cc) 16 years ago
rubidium df99103a31 (svn r13927) -Add [YAPP]: Draw reserved tracks darker, toggeld by a patch setting. (michi_cc) 16 years ago
rubidium ad36ea6b29 (svn r13912) -Codechange: remove some casts by returning the proper type instead of void*. 16 years ago
rubidium d06529ef4d (svn r13719) -Codechange: rename IsValidPlayer to IsValidPlayerID in line with all other structs/classes that are in a pool. 16 years ago
smatz 7c7e08df59 (svn r13626) -Fix (r11871): signals were not updated when player removed signals from nonexistent track sharing bits with existing track
So disallow removing signals from nonexistent track
16 years ago
smatz 29985b768c (svn r13565) -Change [FS#2077]: when invisibility is set, sprite sequences are now drawn until first non-opaque sprite is found (bit 14 not set)
This is to balance performance, code complexity and NewGRF requirements
16 years ago
smatz 39b397438c (svn r13488) -Fix (r13485): track wasn't removed on company bankrupcy when there was a ship on lower halftile 16 years ago
rubidium 43622f95e1 (svn r13485) -Fix: let ships also navigate on half-tile sloped watery rail tiles. 16 years ago
rubidium 923e21129c (svn r13325) -Codechange: split the client-side only settings from the settings stored in the savegame so there is no need to have a duplicate copy of it for new games. 16 years ago
rubidium 8c9cc415e3 (svn r13255) -Codechange: move _opt to _settings. 16 years ago
rubidium 4625695653 (svn r13251) -Codechange: rename _patches to _settings as that is more logic.
-Codechange: move all Settings into substructs of _settings in a way that they are logically grouped.
16 years ago
frosch eca692ef90 (svn r13206) -Feature(ette): Display all owners of a tile in the tile-info-window. 16 years ago
smatz ec627dedf8 (svn r13090) -Codechange: add functions for direct conversion from DiagDirection to Track and Trackbits 16 years ago
smatz 386a3f1d20 (svn r13016) -Codechange: unify the detection if rail catenary should be drawn 16 years ago
rubidium d03994098b (svn r12971) -Documentation: add @file in files that missed them and add something more than whitespace as description of files that don't have a description. 16 years ago
peter1138 a00371c8db (svn r12924) -Feature: Introducing the so called 'engine pool' which primarily removes the fixed engine type limits and also happens to allow (with the patch option 'dynamic_engines') multiple NewGRF vehicle sets to coexist. 16 years ago
rubidium dce1b33196 (svn r12857) -Fix [FS#1948]: remove the last uses of AutoPtr in the station code. 16 years ago
rubidium 6939569362 (svn r12855) -Codechange: do not use autoptr's for testing whether certain objects can be build, but check it directly in the pool so we do not have to call destructors in the testing phase. Stations still use the autoptr though. 16 years ago
rubidium 181b36ca0b (svn r12801) -Codechange: remove the dependency of function.h in town_map.h 16 years ago
rubidium 02cdf01507 (svn r12754) -Codechange: split depot.h into depot_map.h, depot_func.h and depot_base.h and remove quite a lot of unneeded (before this) includes of depot.h. 16 years ago
smatz 059e94e355 (svn r12753) -Codechange: do not use IsDepotTypeTile() where simpler function can be used 16 years ago
smatz 9488db56d4 (svn r12745) -Codechange: a bit of naming conventions, introduce Is*DepotTile() 16 years ago
smatz febc5150c9 (svn r12547) -Feature: invisibility options to make objects invisible instead of transparent 16 years ago
rubidium ef2be7d0fc (svn r12490) -Codechange: rename engine.h to engine_func.h and remove unneeded inclusions of engine.h and/or replace them with engine_type.h. 16 years ago
rubidium 2edd403656 (svn r12489) -Codechange: split station.h into station_base.h and station_func.h. 16 years ago
peter1138 6184676ec7 (svn r12410) -Codechange: abstract out the test for catenary on electric rails 17 years ago
smatz ac4ec8c2d2 (svn r12386) -Fix [FS#1841](r2428): train could break apart when reversed while partially in a depot 17 years ago
belugas cd411ab75a (svn r12342) -Fix(r12340): In order to avoid confusion, SIGN should be used for signs and SIGNAL for signals :)
Always check your terms with your nearest british ;)
17 years ago
belugas a6ee46a5a0 (svn r12340) -Codechange: Remove some magic numbers (sprite IDs here) with some more meaningful values.
This allows to remove an unnecessary subtraction in the MAYBE_DAW_SIGNAL macro, who was waiting for an offset, at the first place.
17 years ago
peter1138 e1cc80b01c (svn r12334) -Codechange: Don't change road owner without DC_EXEC. Didn't affect anything in this case but is bad form. 17 years ago
peter1138 5049fbb081 (svn r12329) -Fix [FS#1819]: Disallow building level crossings over one-way roads as this allowed competitors to remove the one-way state. 17 years ago
frosch b7993793c8 (svn r12199) -Codechange: Remove magic around the results of GetTileTrackStatus(). 17 years ago
smatz 509b3a3247 (svn r12179) -Codechange: use GetCrossingRailTrack() and GetCrossingRailAxis() to improve code readability 17 years ago
smatz 29125c0e68 (svn r12177) -Codechange: use 'side' parameter in GetTileTrackStatus so there can be less checks in pathfinders for depots/stations/tunnels/bridges 17 years ago
frosch a40d761d7f (svn r12149) -Codechange: Merge 'ground_sprite' and 'ground_pal' of DrawTileSprites into one PalSpriteID 17 years ago
frosch fd0f57a794 (svn r12148) -Codechange: Merge 'image' and 'pal' of DrawTileSeqStruct into one PalSpriteID 17 years ago
belugas 65a13a3022 (svn r12145) -Codechange: includes should be at the top of the source file
-Codechange: undefine a defined macro once work is finished, just in case
17 years ago
frosch 43c0f7ea8e (svn r12141) -Codechange: Introduce IsNormalRoad[Tile](), IsRoadDepot[Tile]() and HasTileRoadType(); and use them. 17 years ago
peter1138 63e306006b (svn r12125) -Codechange: Remove redundant signal lookup table, and document why normal electric signals are handled specially. 17 years ago
smatz 9deab65bae (svn r12098) -Fix: make snow appear on rail tiles dependant on track height, not on height of the lowest part of the tile 17 years ago
smatz 802c949755 (svn r12094) -Codechange: use DC_BANKRUPT command flag when removing player property to allow further fixes 17 years ago
frosch b329781ab2 (svn r11984) -Fix: Also draw corner shores under rail tracks. 17 years ago
frosch 6f6708e844 (svn r11983) -Codechange: Add some helper functions for slopes and use them. 17 years ago
smatz 5a7c903770 (svn r11968) -Codechange: remove redundant FindLengthOfTunnel(), use GetTunnelBridgeLength() and/or GetOtherTunnelEnd() instead 17 years ago
smatz 8d077b16d8 (svn r11910) -Fix: play 'ding-ding' crossing sound in more cases (except gameload and crossing construction)
-Fix: crossing sound is bound to tile, not to vehicle
17 years ago
smatz 822242f411 (svn r11908) -Fix: update crossing when merging a company, when building a crossing and after loading older savegame 17 years ago
frosch c579bffed2 (svn r11898) -Fix: Update neighboured canals + signals when flooding non-flat tiles, too. 17 years ago
smatz c8178d43c1 (svn r11883) -Fix (r11864): assert when trying to remove rail from a house or industry tile 17 years ago
smatz 9556623281 (svn r11871) -Fix [FS#1074]: do not update signals after each tile when building/removing a large block of track/signals/station 17 years ago
smatz 245f05a7cc (svn r11864) -Codechange: pass owner whose signals we will update instead of complex detection later 17 years ago
rubidium d4e6a6bf57 (svn r11828) -Codechange: include table/* as the last includes and remove an unneeded include from openttd.h. 17 years ago
smatz f44a9a5d5b (svn r11802) -Fix [FS#716]: do not crash trains when leaving depot to a very long track
-Codechange: use dedicated pathfinder for signal updating, resulting in better performance and possible future improvements
17 years ago
rubidium 998d7644f6 (svn r11800) -Codechange: move some functions to a more logical location + some type safety. 17 years ago
rubidium 46650c54b6 (svn r11793) -Codechange: pass the expense type via the CommandCost instead of a global variable. Patch by Noldo (FS#1114). 17 years ago
peter1138 a27a240b87 (svn r11791) -Cleanup: move railtype data into table/, like other data files. 17 years ago
rubidium 0e517fe023 (svn r11787) -Codechange: more header rewrites. This time related to viewport.h. 17 years ago
rubidium b0ac283aec (svn r11774) -Change: do not include variables.h in a header when it is not needed. 17 years ago
smatz 7302d8c88b (svn r11760) -Codechange: unify the way how other end of a tunnel/bridge is determined at some places
-Fix: adding road/tram to tram/road bridge was cheaper by one tile
17 years ago
peter1138 06d578d07e (svn r11720) -Codechange: [NewGRF] Add support for bit 30 of station tile layouts; forcing a sprite to always be opaque. 17 years ago
rubidium e5e75bd8f8 (svn r11719) -Codechange: split sound.h in a header with types and one with functions. 17 years ago
smatz 8e1f21e29b (svn r11715) -Fix: do not use GetTrackBits() for depots and waypoints while converting railtype 17 years ago
rubidium 384503e7d3 (svn r11706) -Codechange: split vehicle.h and remove another bunch of useless includes. 17 years ago
rubidium 2786d789a1 (svn r11701) -Codechange: removal unnecessary inclusions of map.h (and split map.h). 17 years ago
rubidium 6a9e77e079 (svn r11680) -Codechange: refactor more out of openttd.h and functions.h. 17 years ago
rubidium 9e9cfe6e59 (svn r11677) -Codechange: move price and command related types/functions to their respective places. 17 years ago
rubidium 5b49e75453 (svn r11669) -Codechange: refactor tile.h -> tile_type.h and tile_map.h 17 years ago
rubidium 8896bea306 (svn r11667) -Codechange: split window.h into a header that defines some 'global' window related types, on that defined 'global' window functions and one that defines functions and types only used by *_gui.cpps. 17 years ago
smatz 0b08f7370d (svn r11657) -Fix: show better error message when trying to convert rail
-Codechange: merge DoConvert functions into one, make test and exec runs the same for tunnels/bridges
17 years ago
smatz 145517fb8e (svn r11649) -Codechange: some code can be simplified thanks to changes in r11642 17 years ago
smatz 3cee0abdba (svn r11644) -Codechange: merge some functions from tunnel_map.h and bridge_map.h into tunnelbridge_map.h 17 years ago
smatz acf6e08f78 (svn r11642) -Codechange: VehicleFromPos does check for v->tile == tile, so remove useless checks 17 years ago
smatz d0ad7688f2 (svn r11638) -Codechange: use faster check in SignalVehicleCheck for tunnel/bridge 17 years ago
smatz dfba33819b (svn r11603) -Fix [FS#1481]: make price for railtype conversion more realistic 17 years ago
rubidium 08ab4e1850 (svn r11547) -Add: signal selection GUI for the ones that really like to use that over CTRL. Patch by BigBB. 17 years ago
belugas 1682d5d679 (svn r11533) -Codechange: Rename some unclear clear_x prices member names.
While at it, remove one unused entry on the clear_price_table array.
It is based on ground type, and the unused one was referencing a non existing one.
17 years ago
rubidium ea072322fa (svn r11504) -Fix [FS#1467]: removing docks/ship depots could result in non-canal water where canals should have been build. 17 years ago
skidd13 a91c2a4c39 (svn r11485) -Codechange: Remove the doubled function ToggleBitT and rename the remaining to fit with the naming style 17 years ago
skidd13 eeaa348f8b (svn r11484) -Codechange: Remove the doubled function SetBitT and rename the remaining to fit with the naming style 17 years ago
skidd13 5c31a973a1 (svn r11482) -Codechange: Remove the doubled function ClrBitT and rename the remaining to fit with the naming style 17 years ago
skidd13 71c4325c50 (svn r11481) -Codechange: Rename the HASBIT function to fit with the naming style 17 years ago
rubidium f546de602b (svn r11433) -Fix: starting OpenTTD with DOS files made it look weird out of the box.
-Change: make extra sprites (the ones not in the TTD GRFs) replaceable using Action 5.
-Feature: make replacing contiguous subsets of sprites in for some types possible in Action 5.
Note to GRF authors: when you replaced OpenTTD sprites that are not from the TTD GRF files using Action A, your GRF will not have the intended result anymore as the sprite numbers have changed. You should replace the Action A with an Action 5 from now on.
17 years ago
belugas f55fdfb7c4 (svn r11399) -Feature(ette): transparency settings can now be saved and thus remembered.
-Codechange: Wrap all transparency settings in accessors, hiding the implementation
-Change: Clicking "transparent building" menu will toggle Houses And Trees only.  The other options can be used in the transparency gui.
Initial patch by Smatz (FS#1349), with some rework by BigBB and your humble servant.
17 years ago
truelight 4b8aaa994c (svn r11383) -Codechange: fixed all the mess around KillFirstBit (tnx to Rubidium and skidd13) 17 years ago
belugas a3c6034eb7 (svn r11343) -Fix[FS#1368]: Autoslope did not work correctly for single track on higher part of steep slopes. (frosch) 17 years ago
rubidium 2c67320bae (svn r11320) -Codechange: make lower halftiles at coast floodable. Patch by frosch. 17 years ago
rubidium ef9e037c2a (svn r11319) -Add: halftile- and anti-zig-zag-foundations. Patch by frosch. 17 years ago
rubidium 5289aa2010 (svn r11313) -Codechange: prepare several pieces of code so the can handle some new slopes. Patch by frosch. 17 years ago
rubidium 8212088c03 (svn r11312) -Codechange: implement a overflow safe integer and use that for money and don't misuses CommandCost to have a overflow safe integer. Based on a patch by Noldo. 17 years ago
maedhros 675a826601 (svn r11265) -Feature: Make more advanced rail types more expensive to build. 17 years ago
rubidium 6cebf4aa53 (svn r11237) -Codechange: reduce code duplication between GetRailFoundation() and CheckRailSlope(). Patch by frosch. 17 years ago
rubidium 127c7c9b0f (svn r11173) -Codechange: rename some callback enums so they are more uniform. 17 years ago
rubidium 93459d1b43 (svn r11167) -Fix [FS#1260]: Electric trains were not shown as stopped in depots when converting it from elrail -> normal rail. Patch by smatz. 17 years ago
rubidium 7d325672eb (svn r11128) -Fix: a lot of graphical glitches by changing some bounding boxes. It's not perfect yet, but a *very* good step into the right direction. Patch by frosch. 17 years ago
rubidium fef64185b8 (svn r11107) -Feature: some tool so one can still build tunnels under rails (and other structures) when the owner of the structure built it on foundations and if you have enough "empty" space ofcourse. One could use the tool for some other construction needs too. Patch by frosch. 17 years ago
rubidium 91a49cee55 (svn r11059) -Fix [FS#1182]: inconsistency between Rail<->ElRail conversions of different kinds of rail containing tiles (normal rail, stations, depots, etc). Patch by SmatZ. 17 years ago
rubidium b284b5fa92 (svn r11005) -Codechange: move the tiletype specific terraforming checks to the functions for those tile types.
-Codechange: barren the rail grounds on terraforming.
17 years ago
rubidium cb7eaff353 (svn r11003) -Codechange: replace Vehicle->next to Vehicle->Next() and Vehicle->SetNext() so we can trap instances that change a next pointer and (in the future) update the first/previous pointers based on that. 17 years ago
maedhros 9c75e6d87b (svn r10922) -Codechange: Allow building and removing tracks and signals when there is a
train on a parallel diagonal track that doesn't interact with this one. (frosch)
17 years ago
rubidium 549450d31a (svn r10758) -Codechange: make the depot struct use the pool item class as super class. 17 years ago
peter1138 92061aba4e (svn r10734) -Fix [FS#1030]: Revert r10513) and add special cases for collision detection on bridges/tunnels. 17 years ago
rubidium 7fb3f54584 (svn r10733) -Codechange: change MP_STREET into MP_ROAD as we use the word "road" everywhere except in the tile type. 17 years ago
rubidium d624f66c79 (svn r10698) -Codechange [FS#1082]: simplify the code related to foundations. Primarily removal of (duplicated|magic) code and introduction of few helper functions to ease foundation determination. Patch by frosch. 17 years ago
rubidium 02ab86631e (svn r10696) -Codechange: remove duplication of the "make sprite transparent" code. 17 years ago
truelight 98b23edeb3 (svn r10659) -Codechange: updated documentation around RAIL_GROUND_FENCE_VERT[12] (frosch)
-Codechange: added documentation and SPR_ enums for track fences (frosch)
17 years ago
rubidium 3dd6362bb8 (svn r10601) -Codechange: store (and use) the type of stations instead of hardcoding station types by graphics IDs. 17 years ago
peter1138 efef78f786 (svn r10437) -Feature: Automatic signal completion, enabled by pressing ctrl when dragging signals. Signals will continue following track until an existing signal, junction or station are reached. This currently replaces the existing use of ctrl-drag for changing existing signal type. 17 years ago
peter1138 ca49b1e997 (svn r10432) -Codechange: use existing function instead of data duplication 17 years ago
rubidium 1caa0f7fb7 (svn r10308) -Codechange: some "cleanup" chunks from B. N. SmatZ!' work on fixing FS#119. 17 years ago
rubidium f806b46cc9 (svn r10246) -Fix (r10297): some forgotten money conversions and truncation issues. Thanks to benc for providing the patch. 17 years ago
rubidium 49220cc6f1 (svn r10205) -Codechange: refactor returning of cost, so it can be more easily modified. 17 years ago
rubidium b09431478d (svn r10200) -Codechange: add "shortcut" for !CmdFailed (CmdSucceeded). 17 years ago
rubidium 966e2738b9 (svn r10197) -Codechange: replace int32 with CommandCost where appropriate. 17 years ago
rubidium 6a60ba3eaa (svn r10030) -Fix [FS#823]: one could build on (some) slopes when building on slopes was disabled. 17 years ago
glx 2958f0c53a (svn r10006) -Fix (FS#362): allow different signal types on one tile 17 years ago
rubidium 70e6102c86 (svn r9988) -Codechange: remove the last direct map accesses, except the ones needed for the savegame saving/loading mechanisms. 17 years ago
rubidium 2347c45d35 (svn r9960) -Fix [FS#813]: road wasn't properly added when overbuilding a tram rails with normal rails to for a crossing. 17 years ago
rubidium 440d723d84 (svn r9914) -Codechange: prepare GTTS and the pathfinders to handle multiple road types on a single tile. 17 years ago
rubidium d86b5e5e93 (svn r9892) -Codechange: lots of ground work for allowing multiple types of "road" with multiple owners on a single tile. 17 years ago
peter1138 0de85b7eb0 (svn r9805) -Codechange: Use HASBIT() et al for display options bits. 17 years ago
belugas 4eb87ac62b (svn r9669) -Documentation: some more doxygen fixes 17 years ago
belugas addcae43fa (svn r9664) -Documentation: Doxygen corrections,errors and omissions 17 years ago
peter1138 8cdec9a2ab (svn r9602) -Fix (r5833): Building rail on steep slopes ignored build_on_slopes patch setting. 17 years ago
belugas d4d5ce7ee5 (svn r9568) -Documentation: doxygen and comment changes: Root of src is finally done. Now, time to start clearing as much as possible 17 years ago
peter1138 a2cec54c9d (svn r9563) -Feature: Add more finer control to transparency options, including a new toolbar, accessible from the map menu or Ctrl X. Patch by Wolf01. 17 years ago
belugas dfe5533db6 (svn r9556) -Documentation: doxygen and comment-style changes. 'R', 'S'.. The end of the preliminary work is near 17 years ago
belugas 65bc46082e (svn r9542) -Fix(FS# 712): When checking if a vehicle is on a given tile, and you are working on the ground tile, do not take aircrafts into account, as they do not pose any danger for the construction/destruction/conversion itself. Z stuff, in other words 17 years ago
belugas 386e298acd (svn r9523) -Cleanup: doxygen changes. Time to take care of "R" 18 years ago
celestar 49ff7cb938 (svn r9425) -Codechange/Fix (FS#689): Housekeeping in the convert rail functions: Changed the order of error checks to generate more meaningful error messages, added some doxygen comments and replaced bitshifting by proper mathematical operations 18 years ago
belugas 06d3669bb5 (svn r9400) -Codechange: Use some more representative enum names for landscape types. 18 years ago
maedhros 48f2bf9bb1 (svn r9371) -Feature: Add support for variable snow lines in the arctic climate, supplied
by newgrf files. When this is enabled forests cannot be built below the highest
snow line, and farms can't be built above it. Houses still use the
_opt.snow_line so they are all consistent, so to make them respect the snowline
you may want to use some newhouses features as well.
18 years ago
rubidium ce919e8c71 (svn r9068) -Codechange: capitalize the VEH_Train etc. enums to match the coding style (and rest of the code). 18 years ago
rubidium 24c4d5b06d (svn r9051) -Codechange: typedef [enum|struct] Y {} X; -> [enum|struct] X {}; 18 years ago
rubidium 08973ba8eb (svn r8966) -Codechange: replace some if-cascades by switches. 18 years ago
rubidium 4908115355 (svn r8935) -Codechange: unification of track type between road and rail tiles, unification of ground type between normal rail tiles and depots/waypoints and removing the need for RailTileSubType. 18 years ago
rubidium aaeeef3d88 (svn r8908) -Codechange: declaration of DrawBridgeMiddle does not belong in a map accessors header. 18 years ago
tron d3b29bcacb (svn r8876) -Fix
Replace tests with magic numbers by a simple extraction template for command parameters
18 years ago
tron 1d1121f85a (svn r8875) -Fix
Remove unnecessary EnsureNoVehicle() checks because they are
- pointless per se (f.e. there are no vehicles on house tiles)
- done again (f.e. using CMD_LANDSCAPE_CLEAR just a few lines later)
18 years ago
KUDr dac3cd622f (svn r8864) -Codechange: make ClrBitT(), SetBitT() and ToggleBitT more like CLRBIT() and so on (modify value of the first parameter instead or returning the result) 18 years ago
tron 103d119c51 (svn r8841) -Fix
Remove {,u}intswap() and replace them by Swap()
18 years ago
rubidium 4ec7eb2201 (svn r8701) -Codechange: replace magic numbers with enums for u.rail.track. 18 years ago
rubidium a419f4aeda (svn r8698) -Codechange: enumify the returns of VehicleEnterTile 18 years ago
peter1138 d3761d97eb (svn r8283) -Fix (r8128): Custom waypoint drawing used wrong bits since bitshuffling occurred. Also update with other station drawing changes (code duplication,
eh?)
18 years ago
Darkvater 97d558760c (svn r8279) -Regression (r8274): Removing signals could fail under certain circumstances (not the proper bits of p1/p2 were set to trackbits). Moved trackbits back to bits 0..2, ctrl to 3, semaphore to 4. Also lower the decision of the ctrl-override of signal/semaphore from the GUI into the cmd function since we are passing the ctrl-bit anyways. Bug(s) found by Frostregen; thanks 18 years ago
Darkvater 110c0162df (svn r8274) -Codechange (r8151): Move the automatic semaphore/signal checks inside the CMD_ functions where they are supposed to be. Achieve this by adding a seperate bit to p1/p2 to hold the CTRL-modifier. While here, use proper types, and 'unify' the parameter bit-meanings. 0 - ctrl-pressed, 1 - signal/semaphore, 2-4 - trackbits, 5 - remove (internal), 24-31 - drag density. 18 years ago
peter1138 92d418b031 (svn r8128) -Codechange: Split sprite and palette remap into separate 32 bit values.
This lets us increase the sprite width from 14 to up to 29 bits, 
effectively nulling the old sprite limit. Table changes in next commit.
18 years ago
KUDr dbe11fb9c7 (svn r8052) - Codechange: RemoveFirstTrack() and RemoveFirstTrackdir() now accept pointer to TrackBits/TrackdirBits instead of reference. 18 years ago