Darkvater
650b1b0c93
(svn r3895) - Add proper SLE(G)_CONDNULL macros for the empty space reservation in savegames and update where used
...
- Also add this capability to settings
2006-03-16 00:20:33 +00:00
tron
eeb5bf41a1
(svn r3831) Add and use GetRailDepotDirection()
2006-03-12 16:13:16 +00:00
tron
25606a2e0b
(svn r3816) Use existing accessors
2006-03-11 09:10:46 +00:00
bjarni
eac8e5e473
(svn r3811) -Fix: [autoreplace]: (FS#67) autoreplacing trains now keep their tile length instead of their pixel length
2006-03-10 10:01:56 +00:00
peter1138
fca5823238
(svn r3805) - [FS#62] Fix doxygen comments to refer to the correct parameter. (sulai)
2006-03-09 20:37:51 +00:00
tron
ab9af3b05d
(svn r3787) Use DirToDiagDir() instead of >> 1
2006-03-08 08:28:48 +00:00
tron
9273d0d2b9
(svn r3784) Add a type and functions to handle direction changes
2006-03-08 07:48:56 +00:00
tron
8cfcdaa733
(svn r3783) Replace further ints and magic numbers by Direction, DiagDirection and friends
2006-03-08 06:55:33 +00:00
tron
332b54d5a6
(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
2006-03-04 11:01:35 +00:00
tron
d851781663
(svn r3747) Change HASBIT() to return 0/1 instead of 0/value of tested bit, because the name suggests it does the former and current behavior broke in some places in very subtle ways (for example HASBIT(x, 0) != HASBIT(y, 1) doesn't work, returning a bool after HASBIT(x, 9) neither)
2006-03-03 19:42:09 +00:00
peter1138
058ccfb157
(svn r3717) - [2cc] Add 2cc colour maps and use for newgrf engines requiring them. Currently the second colour is fixed to be the player's colour.
2006-03-01 23:14:03 +00:00
peter1138
5a9f6081dd
(svn r3701) [2cc] move vehicle/engine palette functions out of header file and document the remaining definitions
2006-03-01 17:35:01 +00:00
Darkvater
bf27f0c77b
(svn r3627) - Change all hardcoded 255 max-saveload versions with the define SL_MAX_VERSION
2006-02-20 19:43:26 +00:00
peter1138
b5cd24f05d
(svn r3620) - 2cc: Replace use of macro to determine colour map with a function call for drawing of vehicles.
2006-02-20 09:26:07 +00:00
Darkvater
dac14d4210
(svn r3619) - Codechange: Simplify a NullStruct initialization in the vehicle array (merge the two together to avoid confusion)
2006-02-20 01:36:48 +00:00
truelight
d83711fb2e
(svn r3598) -Fix: suppress invalid warning by assigning value to variable
2006-02-13 21:47:02 +00:00
peter1138
30429dc4fb
(svn r3589) - Rename u.road.unk2 to u.road.blocked_ctr
2006-02-11 10:45:20 +00:00
peter1138
bc0b97ea2f
(svn r3579) v->u.rail.first_engine holds an engine type, not a vehicle index, so use INVALID_ENGINE.
2006-02-08 19:06:46 +00:00
peter1138
96cac20318
(svn r3576) - Allow unused wagons have their ->first set. This fixes the faulty cache warning message, and noticably speeds up depot operations in large games.
2006-02-08 08:18:29 +00:00
peter1138
f874b60636
(svn r3573) - Replace assert(0) with NOT_REACHED(). This commit sponsored by "giving Darkvater credit for the last three".
2006-02-07 19:11:51 +00:00
peter1138
cfdce5213e
(svn r3572) - Rewrite GetFreeUnitNumber() so that only one loop of vehicles is required. Instead a list of used/unused numbers is created and the first unused number is chosen. This significantly improves performance in large games.
2006-02-07 19:01:01 +00:00
peter1138
6bc6c34b5a
(svn r3571) - When loading a game, call TrainConsistChanged() for each train head separately before updating images, as v->first is used extensively in GetTrainImage() for custom graphics. This gives a significant speed improvement on loading a game.
2006-02-07 18:57:16 +00:00
bjarni
c77c99b3c7
(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
2006-02-04 18:25:07 +00:00
tron
1c3e8630fe
(svn r3511) More whitespace ([FS#46] by Rubidium)
2006-02-01 07:36:15 +00:00
tron
9712d6f639
(svn r3510) Fiddle with whitespace and parentheses
2006-02-01 06:32:03 +00:00
tron
ea45799d5b
(svn r3498) Fix the edge case for r3419/r3488: when a vehicle just enters a tile, the height difference can be 8
2006-01-31 19:06:02 +00:00
tron
8529923e01
(svn r3488) Simplify the check in r3419
2006-01-30 16:57:47 +00:00
Darkvater
25c7e1fe34
(svn r3482) - Fix: since multiheaded links are not saved anymore do NOT save them anymore at all, return the extra space. Since Bjarni's fix for this was abominable, the weird situation arises of 2 NULL structs of free space, of which the first isn't usable.
2006-01-29 22:40:51 +00:00
Darkvater
4014e36aec
(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.
2006-01-29 18:57:26 +00:00
Darkvater
ffb8c85b79
(svn r3419) - Fix: [FS#40] (Possible) game crash on removing track/road under bridge. This was caused by a wrong tile-occupancy testing where it was assumed that a vehicle's height is only a multitude of 8 (a single height-difference). This is incorrect as a vehicle on a slope will assume all height levels between the lower-and upper-bounds. The crash is still possible as seen in the Flyspray bugreport but this has a different cause.
2006-01-22 17:17:11 +00:00
bjarni
a4d1725de7
(svn r3403) -Codechange: [multiheaded engines] the references between the front and rear engines are no longer saved
...
instead the pointers are generated on load
2006-01-18 15:05:01 +00:00
peter1138
2222907a40
(svn r3396) - Autoreplace changes:
...
- Change fixed array per player to a single pool. This avoids future problems
with vehicle numbers and decreases savegame size. Engine replacements from
previous savegames will be lost.
- Move engine replacement code from players.c to engine.c.
(thanks to blathijs for rewriting this)
2006-01-12 15:52:18 +00:00
bjarni
8958c8b7b1
(svn r3390) -Fix: [autoreplace] fixed issue where autoreplace failed to attach the cars if the front engine was replaced
...
and the front engine was multiheaded and the first vehicle after it was the rear part of that engine
2006-01-08 12:20:13 +00:00
tron
2053685fb5
(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
2006-01-05 21:35:54 +00:00
tron
318fe153eb
(svn r3365) Staticise 36 functions
2006-01-05 12:40:50 +00:00
peter1138
28668bc30b
(svn r3362) Fix issue with loading old (TTD) savegames:
...
- move call to convert from old to new train subtypes.
- ensure AI is started for AI players.
2006-01-04 20:18:39 +00:00
peter1138
b6721d7e95
(svn r3361) - Clone Vehicle: Disallow cloning of crashed rail vehicles after starting removal process.
2006-01-04 16:53:00 +00:00
tron
ed4b89ee36
(svn r3353) Simplify the automatic length adjustment algorithm for replacing trains: Use the length of the train before the replacement as reference length
2005-12-29 12:42:59 +00:00
peter1138
901068fd6e
(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.
2005-12-28 22:29:59 +00:00
tron
04c096ee63
(svn r3339) Remove unnecessary includes
2005-12-24 20:54:31 +00:00
tron
a2533d5ee6
(svn r3298) Remove unused and write-only variables
2005-12-14 06:28:48 +00:00
tron
9822b4d755
(svn r3297) Staticise
2005-12-14 06:20:23 +00:00
peter1138
6023d6bfbe
(svn r3261) - Autoreplace: If a replaced vehicle had a custom name, transfer it to the new vehicle. Fixes "[ 1370039 ] Autoreplaced vehicles lose their names"
2005-12-05 16:48:07 +00:00
peter1138
0b48a69e02
(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.
2005-11-29 22:29:59 +00:00
peter1138
14064b223d
(svn r3239) - Codechange: Introduce and use helper functions for engine replacement code.
2005-11-26 16:41:14 +00:00
truelight
898bb915ac
(svn r3227) -Codechange: [Savegame] removed 'minor' version, and renamed 'major' version to just: version.
2005-11-22 19:33:29 +00:00
bjarni
0ecab5110e
(svn r3223) -Fix: [autoreplace] fixed crash when replacing a train engine without any cars (introduced in r3220)
2005-11-19 22:39:16 +00:00
bjarni
4392068b05
(svn r3220) -Fix: [autoreplace] Autoreplaced trains now replace their cargo to the train instead of just the new engine
...
This applies to wagon removal during autoreplace too
2005-11-19 10:28:02 +00:00
bjarni
bc06997bbe
(svn r3219) -Codechange: removed the now obsolite code in the build train command to make half multiheaded engines
2005-11-19 00:10:20 +00:00
bjarni
16e65960b9
(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
2005-11-18 23:41:03 +00:00
tron
96dea28eae
(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
2005-11-16 14:07:34 +00:00
tron
c87511026a
(svn r3193) Staticise the vehicle position hash
2005-11-16 11:50:40 +00:00
tron
9d0e7b6458
(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
2005-11-14 19:48:04 +00:00
tron
524fd25cbd
(svn r3177) GB, CLRBIT, HASBIT, TOGGLEBIT
2005-11-14 08:09:57 +00:00
tron
53f00c8f9d
(svn r3173) Use the trinary operator and switch to improve readability
...
Also align short cases nicely
2005-11-13 14:54:09 +00:00
tron
81e5b16d71
(svn r3172) static, const
2005-11-13 13:43:55 +00:00
bjarni
df6c48fdba
(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
2005-11-07 23:20:47 +00:00
peter1138
34c503cabf
(svn r3148) -NewGRF, Feature: Add support for cargo refitting specification by cargo classes.
2005-11-06 13:42:26 +00:00
bjarni
6afe6a21ed
(svn r3143) -Codechange: greatly increased speed when allocating vehicles
...
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 19:58:16 +00:00
peter1138
0d9379f904
(svn r3139) -NewGRF, Feature: support for articulated rail vehicles. This is used, for example, by coal tenders.
2005-11-05 16:07:26 +00:00
bjarni
3c1dd61bf1
(svn r3138) -Fix: [clone vehicles] fixed assert when it was possible to 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-05 14:01:00 +00:00
bjarni
ce713fe014
(svn r3137) -Fix: [autoreplace] fixed assert that was triggerable when a 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 22:10:49 +00:00
bjarni
7715deec3d
(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
2005-11-04 20:52:03 +00:00
bjarni
e40dea16e9
(svn r3129) -Fix: [autoreplace] fixed bug that made the player pay twice for 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 21:22:38 +00:00
bjarni
6af8bd605e
(svn r3128) -Fix: [autoreplace] fixed bug that made the player pay twice for autoreplacing and could end up with negative money
2005-11-03 20:19:15 +00:00
bjarni
069ff61ef5
(svn r3127) -Fix: [autoreplace] fixed a condition where a vehicle could fail 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-03 19:51:28 +00:00
bjarni
40f624f0e8
(svn r3116) -Fix: [autoreplace] fixed issue where autorenewing/autoreplacing a plane could lock up an airport
...
this will not fix already locked up airports
this bug was introduced in rev 3111
2005-11-01 17:20:06 +00:00
bjarni
0dced92212
(svn r3112) -Feature: [autoreplace] profit counters are now remembered too (request by Darkvater)
2005-10-31 14:30:45 +00:00
bjarni
fa5ca040e9
(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)
2005-10-31 12:59:47 +00:00
bjarni
17d341b902
(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()
2005-10-29 21:54:28 +00:00
bjarni
a110f575d7
(svn r3100) -Codechange [Clone vehicles] Major change to clone vehicles
...
removed duplicated code and added DoCommand, which used the define build commands added with autoreplace
This should not affect gameplay at all
2005-10-29 20:58:26 +00:00
bjarni
eac803845e
(svn r3093) -Fix: [autoreplace] fixed issue where the money limit message showed up in some cases when no replace was needed
2005-10-27 19:30:40 +00:00
bjarni
0f5c8787f8
(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
2005-10-24 19:40:48 +00:00
tron
181d586a7c
(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
2005-10-23 13:04:44 +00:00
tron
8980891b09
(svn r3024) -Codechange: Another batch of replacements of int/uint/int16/byte/-1 with proper types and constants
2005-10-07 07:35:15 +00:00
tron
90e33aed22
(svn r2995) Replace 0xFF/0xFFFF with CT_INVALID/OWNER_SPECTATOR/INVALID_STATION where appropriate
2005-09-28 19:35:36 +00:00
peter1138
324542057d
(svn r2993) Fix: Reset aircraft images differently. Fixes assertion introduced in r2991.
2005-09-27 19:16:37 +00:00
peter1138
34b5b4fcd9
(svn r2991) Reset vehicle images on game load. Allows savegames with NewGRFs saved prior to r2868 to load.
2005-09-26 20:32:13 +00:00
Darkvater
4a58250cb9
(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
2005-09-18 20:56:44 +00:00
Darkvater
c0c75ef16e
(svn r2951) - Fix: [ 1259345 ] Changing engine in netgame opens train window for everyone
...
- Add IsLocalPlayer() which substitutes _local_player == _current_player
2005-09-14 18:03:38 +00:00
bjarni
3a4d68383b
(svn r2912) -Fix: [autorenew]: fixed issue where autorenewed vehicles didn't get all stats updated (peter1138)
2005-09-03 19:22:56 +00:00
tron
eb2dc7ef91
(svn r2845) Remove sprite size caching, it was unused
...
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-08 21:35:27 +00:00
bjarni
dcc6c0753c
(svn r2820) -Fix: [autoreplace] fixed issue introduced in 2817 where autoreplace failed if new engine is cheaper than the old one (peter1138)
2005-08-06 19:12:44 +00:00
tron
486cffd2ad
(svn r2819) Make variables, which are exclusive for internal use of the save/load code, static in saveload.c
2005-08-06 17:40:21 +00:00
bjarni
9952ff0b59
(svn r2817) -Codechange: [autoreplace]: moved autoreplace and autorenew to 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-06 16:07:22 +00:00
ludde
9a060a0f24
(svn r2781) Fix some of the issues with variables in .h files.
2005-08-01 16:31:19 +00:00
bjarni
265404bb13
(svn r2779) -Fix: [clone vehicles] fixed typos, which could lead to crashes when cloning refitted trains (chrishuebsch)
2005-08-01 12:55:21 +00:00
bjarni
059ae19626
(svn r2764) -Feature: Clone vehicles
...
-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-31 13:08:08 +00:00
tron
647cbd6bdd
(svn r2701) Insert Id tags into all source files
2005-07-24 14:12:37 +00:00
tron
54cbd01825
(svn r2673) Include functions.h directly, not globally via openttd.h
2005-07-22 07:02:20 +00:00
celestar
1fed0046ac
(svn r2658) -Codechange: Use MAKE_TRANSPARENT to display a transparented sprite
2005-07-20 22:05:13 +00:00
tron
f09638ad3d
(svn r2650) Convert many explicit shifts+ands to extract bits to invocations of GB - should be a bit nicer to read
2005-07-20 15:29:28 +00:00
tron
152439b56c
(svn r2626) static, const, misc.
2005-07-17 20:14:58 +00:00
hackykid
552aa1b4dc
(svn r2625) - Fix: [pbs] Store the end of a train's reserved path 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 20:09:02 +00:00
ludde
f868fb0811
(svn r2600) Fix: [vehicles] Fix problem with vehicle loop not distributing the calls evenly over the day.
2005-07-17 12:44:35 +00:00
tron
a4bf608d40
(svn r2558) Change the internal map format from 7 arrays to one array of structs, this doesn't change the saved format for now. It's a stepping stone for further changes.
2005-07-13 18:04:01 +00:00
hackykid
ab9c6f126d
(svn r2516) - Feature: [pbs] Implement path-based-signalling. This allows 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.
2005-07-04 14:58:55 +00:00
matthijs
e675794812
(svn r2514) - Codechange: [NPF] Move the checking of railtype into a funciton IsCompatibleRail().
...
- Codechange: [NPF] Check the railtype along a route against the engine type instead of against the previouse tile. This clears the way for electriefied rails.
- Add: [NPF] [ 1209644 ] A penalty for crossings (peter1138)
2005-07-03 13:02:54 +00:00
celestar
48ff5e39dc
(svn r2491) -Fix: Solved a performance problem introduced in r2467. While busy
...
committing, restore the sort order in the Makefile
2005-06-26 21:59:21 +00:00
tron
2b73dec567
(svn r2486) Turn TILE_FROM_XY into an inline function and rename it to TileVirtXY
2005-06-25 06:15:43 +00:00