Commit Graph

813 Commits

Author SHA1 Message Date
dP 1225693b9c Feature: Improved logic of sharing industry production between 3 or more stations 2020-01-12 14:01:12 +00:00
SamuXarick 40605efd1c Codechange: Use KDTree for AirportGetNearestTown (#7424) 2019-12-24 17:37:30 +00:00
glx ee7a8eebca Codechange: Replace FOR_ALL_TOWNS with range-based for loops 2019-12-21 20:13:03 +01:00
glx d8a1be48cd Codechange: Replace vehicle related FOR_ALL with range-based for loops 2019-12-21 20:13:03 +01:00
glx 9892d90b26 Codechange: Replace order related FOR_ALL with range-based for loops 2019-12-21 20:13:03 +01:00
glx ddabfed1cd Codechange: Replace station related FOR_ALL with range-based for loops 2019-12-21 20:13:03 +01:00
Jonathan G Rennison 35dc377a58 Fix: Infrastructure total update when removing tram road stop
The wrong road owner was used when updating the tram infrastructure total.
This could result in desyncs, negative infrastructure totals, etc.
2019-12-08 15:12:56 +01:00
Niels Martin Hansen 9900af38f5
Fix #7847: Use ViewportSign coordinates for sign Kdtree coordinates (#7849)
Ensure the same coordinates are used for station/town/player signs regardless of how the landscape changes below it after the coordinates were first determined.

By keeping track of whether each ViewportSign is valid for Kdtree use (and only ever registering the viewport sign when the object is valid) a lot of code can be simplified and become more robust at the same time.
2019-12-01 23:17:33 +01:00
S. D. Cloudt 13cc8a0cee Cleanup: Removed SVN headers 2019-11-10 17:59:20 +00:00
Jonathan G Rennison 2be619ea88 Fix #7820: Heap use after free when removing oil rig 2019-11-03 00:39:38 +01:00
Charles Pigott 2f4de0a0fe Fix #7733: Crash when removing a dock next to an industry without a station 2019-10-26 00:35:01 +01:00
JMcKiern 04f659e768 Fix: Some typos found using codespell 2019-09-29 21:27:32 +01:00
Daniel Lee 2d9eb1c417 Fix #7626: Allow building drive-through stops over one-way/blocked roads owned by towns (instead of crashing). 2019-09-06 23:21:40 +02:00
Juriy Petrochenkov f0aea2d246 Fix: RemoveAirport function now returns with 'Aircraft in the way' error message as it should be. 2019-08-13 16:42:22 +01:00
peter1138 ec2656ab7e Codechange: Restrict docking points of docks. 2019-06-30 16:46:32 +02:00
peter1138 f538179878 Feature: Multi-tile docks and docking points. 2019-06-30 16:46:32 +02:00
peter1138 402e18b460 Change: Allow building road stops over self-owned one-way/blocked road. 2019-05-04 22:39:29 +01:00
Niels Martin Hansen d1ef13fc04 Fix #7481: Just remove oil rig stations right away, don't clean them first 2019-05-03 09:50:01 +02:00
peter1138 c02ef3e456 Feature: Add NotRoadTypes (NRT) 2019-05-01 21:36:27 +02:00
PeterN abe8cf4985
Codechange: Replace duplicated code with TileArea::Expand() (#7467) 2019-04-13 14:12:34 +01:00
Henry Wilson 7c8e7c6b6e Codechange: Use null pointer literal instead of the NULL macro 2019-04-10 23:22:20 +02:00
kiwitreekor bc9b47d2e5 Fix #6222: Advanced sprite layout sometimes showed incorrect railtype ground tile 2019-04-08 18:41:07 +01:00
PeterN e1069eee05
Codechange: Check airport layout would fit within map bounds before iterating tiles. (#7429) 2019-03-30 22:20:26 +00:00
PeterN b6e3e30d86
Codechange: Distance between town and airport has already just been found, so use it. (#7427)
Previously the distance was thrown away, only to be expensively recalculated again.
2019-03-29 17:43:06 +00:00
PeterN 7fb77ff35a
Fix: Incorrect display of industry production around tiles. (#7426)
Display of industry production around tiles (as shown when placing a station)
did not take account of the station catchment changes, so still showed production
from an industry even if it was not covered by a tile.

This is fixed by making a set of nearby industries that are covered, instead of
looping over all possible industries.
2019-03-27 23:10:02 +00:00
Henry Wilson c01a2e2a81 Codechange: Removed SmallVector completely 2019-03-26 20:15:57 +00:00
Henry Wilson ab711e6942 Codechange: Replaced SmallVector::[Begin|End]() with std alternatives 2019-03-26 20:15:57 +00:00
Henry Wilson 297fd3dda3 Codechange: Replaced SmallVector::Include() with include() 2019-03-26 20:15:57 +00:00
Henry Wilson a0f36a50e6 Codechange: Replaced SmallVector::Append() with std::vector::[push|emplace]_back() 2019-03-26 20:15:57 +00:00
Henry Wilson ca2f33c6d0 Codechange: Replaced SmallVector::Erase() with std::vector::erase() 2019-03-26 20:15:57 +00:00
Henry Wilson a690936ed7 Codechange: Replace SmallVector::Length() with std::vector::size() 2019-03-26 20:15:57 +00:00
Niels Martin Hansen ce10d9be3f Fix #7374: Ensure k-d trees are always updated when station sign moves 2019-03-24 19:26:13 +01:00
peter1138 b00a861467 Codechange: Make FindStationsAroundTile() out-parameter stations const to prevent incorrect modification. 2019-03-13 08:40:25 +00:00
peter1138 6b92b83128 Fix #7372: FindStationsAroundTiles() with caching returns no result for industry tiles.
Currently this can only be triggered by NewGRF house tiles querying for cargo acceptance history
of nearby stations (var 0x64) with a tile offset, and providing an offset that happens to point
to an industry tile. This serves no useful purpose.
2019-03-13 08:40:25 +00:00
Johannes E. Krause ba3d7122df Cleanup: Remove questionable syntax in station rating calculation 2019-03-13 07:47:32 +00:00
Niels Martin Hansen e8d397e4ee Codechange: Make a merged k-d tree index of all viewport signs 2019-03-09 20:27:11 +01:00
Niels Martin Hansen d84b67e54d Codechange: Make a k-d tree index of stations 2019-03-09 20:27:11 +01:00
Peter Nelson 943c58e468 Fix: Show industry name in Land Area Information window for oil-rig type stations instead of just 'Oil Rig' 2019-03-09 18:16:33 +00:00
Peter Nelson 8b1b3fd0f9 Feature: Non-rectangular sparse station catchment area. 2019-03-09 16:33:47 +00:00
peter1138 ed6084523d Codechange: Convert StationList from SmallVector to std::set. 2019-03-09 16:33:47 +00:00
PeterN dd20ccee88
Feature: Industries with neutral stations (e.g. Oil Rig) only supply/accept cargo to/from their neutral station. (#7234)
This change is a controlled by a game setting, located under Environment ->
Industries which allows toggling the behaviour. It defaults to enabled.

"Company stations can serve industries with attached neutral stations"

When enabled, industries with attached neutral station (such as Oil Rigs) may
also be served by company-owned stations built nearby. This is the traditional
behaviour.

When disabled, these industries may only be served by their neutral station.
Any nearby company-owned stations won't be able to serve them, nor will the
neutral station serve anything else other than the industry.
2019-03-08 18:30:44 +00:00
SamuXarick 456e67ac1c Change: Owner of vehicle with exclusive transport rights may now load cargo from neutral stations (#7256) 2019-02-21 21:23:37 +00:00
Juanjo 45ce517105 Codechange: Move some common code after adding/removing tiles to a station to its own function. 2019-02-18 22:57:43 +01:00
Peter Nelson 81330b8d6e Change: Add path cache for ships. 2019-01-19 23:11:17 +00:00
nikolas d8ccad91f9 Fix: Some code and comment typos
Found with codespell
2019-01-17 22:01:07 +00:00
Johannes E. Krause 06cd561cea Add: when placing non-rectangular airport, consider airport tile table tiles only (patch by adf88, #6613) 2019-01-11 20:38:52 +00:00
Joost Hopmans 5029cd6f28 Fix: Only possible to build station next to competitors by using CTRL+click
Fix by checking only for stations owned by the current company when
inspecting if there are multiple adjoining stations to the one being built.

When building next to 2 or more owned stations we don't know which
station should be extended. For other companies' stations that's not a
problem since our station won't merge with theirs anyway.

Calling to BuildStationPart should never have another company's station
as a parameter to attach to unless the client is malicious, so just returning
a generic error in that case.
2018-10-31 19:24:21 +01:00
Charles Pigott f5b1115039 Doc: Lots and lots of doxymentation fixes 2018-10-31 12:35:54 +01:00
Peter Nelson bf8d7df736 Change: Extend rail types to 64 (6 bit storage) 2018-07-26 13:27:40 +01:00
Peter Nelson 408cee123d Fix: One-way roads could be over-built by road stops (regardless of road owner.) 2018-06-06 07:20:46 +01:00
PeterN 4cebebcf68
Change: Add CargoTypes type for cargo masks. (#6790) 2018-05-21 22:08:39 +01:00
frosch b4b98e5165 (svn r27893) -Codechange: Use fallthrough attribute. (LordAro) 2017-08-13 18:38:42 +00:00
peter1138 890a44f130 (svn r27810) -Change: Factor out reservation-handling code in station_cmd.cpp
Code dealing with freeing and restoring track reservations is
duplicated in CmdBuildRailStation and RemoveFromRailBaseStation;
make separate functions for it. (cirdan)
2017-03-20 17:44:37 +00:00
frosch 10293c5fb1 (svn r27686) -Change: List railtype of rail tiles explicitly in the tile info window. 2016-12-09 21:27:22 +00:00
fonsinchen 58fdd3ac98 (svn r27682) -Fix: Don't check if links are alive for manually routed cargo 2016-12-04 19:59:17 +00:00
fonsinchen 662c019136 (svn r27681) -Fix: When deleting stale links, iterate through order lists before iterating through vehicles 2016-12-04 19:53:38 +00:00
frosch d9bfe88261 (svn r27676) -Codechange: Rename catenary functions, so that they refer unambiguously to either RoadCatenary or RailCatenary. 2016-11-05 11:53:03 +00:00
frosch 62bc57db77 (svn r27311) -Fix: Mark infrastructure window dirty in more cases. (marcole) 2015-06-21 09:19:27 +00:00
frosch 904688c00a (svn r27308) -Fix [FS#6283]: Prevent breaking of tram-reversal points by adding more road pieces. (adf88) 2015-06-20 13:11:09 +00:00
frosch 046cb6140f (svn r27256) -Change [FS#6165]: Do not consider cargo that is already being loaded as waiting cargo wrt. the station rating. 2015-04-26 11:43:58 +00:00
frosch 0ea4127837 (svn r27251) -Feature [FS#6252]: Make Ctrl+Remove-Roadstop also remove the road, just like for rail stations. (adf88) 2015-04-26 09:51:24 +00:00
frosch 6bdae2f64a (svn r27246) -Codechange: Deduplicate code between removing part of a rail station and removing the whole rail station. (adf88) 2015-04-25 11:37:57 +00:00
frosch 272c386fa8 (svn r27245) -Fix [FS#6251]: Removing a rail waypoint used the remove-rail-station cost. (adf88) 2015-04-25 11:30:27 +00:00
planetmaker 84e5c5a9cb (svn r27225) -Change [FS#6262]: Be more lenient about road stop removal when at least one stop could be removed (afd88) 2015-04-11 11:50:02 +00:00
frosch 780e595933 (svn r27178) -Fix [FS#5969]: Data race due to lazy initialisation of objects. 2015-03-07 18:27:01 +00:00
fonsinchen 9fdb88962f (svn r26891) -Codechange: Add methods to retrieve flows from a FlowStatMap 2014-09-21 16:19:52 +00:00
rubidium 9daf7e749c (svn r26879) -Codechange: remove most MayHaveBridgeAbove calls since the data is now always accessible 2014-09-21 11:24:51 +00:00
fonsinchen 957f5ca117 (svn r26646) -Fix [FS#6041]: Save locations instead of distances in link graphs to reduce size. 2014-06-14 13:35:39 +00:00
rubidium 0ceb05ee9f (svn r26582) -Feature-ish: quickly decay cargo after about 21 months of not having picked any of the cargo, and prevent houses and industries providing more cargo 2014-05-11 18:35:34 +00:00
rubidium 89c25b955e (svn r26580) -Codechange: s/GES_PICKUP/GES_RATING/ (it has nothing to do with actual pickup), s/acceptance_pickup/status/ (the enum isn't called GoodEntryStatus for a reason; it's not only acceptance and pickup anymore) 2014-05-11 18:02:11 +00:00
fonsinchen 11d98f043e (svn r26549) -Change: better estimation for link capacities during full load 2014-05-01 14:50:52 +00:00
rubidium 9ed12b0f07 (svn r26509) -Codechange: replace strdup with stredup (the latter ensures the return is not NULL) 2014-04-25 15:40:32 +00:00
rubidium 0463dbdc9e (svn r26482) -Codechange: add an include that allows us to undefine/redefine "unsafe" functions to prevent them from being used, and thus having to care about certain aspects of their return values 2014-04-23 20:13:33 +00:00
planetmaker ba42bcdf49 (svn r26458) -Doc: Correct a few spelling mistakes (__ln__) 2014-04-12 15:59:56 +00:00
fonsinchen bef953a32c (svn r26448) -Fix [FS#5970]: Avoid division by 0 when scaling flow values. 2014-04-08 19:28:14 +00:00
fonsinchen 5d3fcce725 (svn r26393) -Fix: Update distances between link graph nodes when station sign is moved 2014-03-06 21:19:41 +00:00
frosch a9acaf7a5e (svn r26375) -Fix [FS#5929]: Station sizes > 8 were always allowed. (adf88) 2014-02-24 19:57:18 +00:00
rubidium 98539bd2c3 (svn r26363) -Codechange [FS#5894]: make it clearer that drive through road stops need an Axis in CmdBuildRoadStop and the non drive through stops need a DiagDir 2014-02-22 19:52:13 +00:00
frosch 932dad7c8b (svn r26275) -Fix: If NewGRF provided the same station name for different industry types, stations would end up with same name. So also consider the provided name, not only the industry type. 2014-01-23 20:23:14 +00:00
fonsinchen ec492bfb77 (svn r26166) -Fix: Scale flows only after mapping to avoid rounding errors. 2013-12-20 14:57:44 +00:00
fonsinchen e6668f24b5 (svn r26013) -Revert (r25495) [FS#5684]: Having trains miss a platform that is just being modified is less of a problem than having trains stop twice without moving. 2013-11-16 17:52:00 +00:00
fonsinchen 962d6d7e48 (svn r25963) -Fix [FS#5758]: Mixtures of old and new flows could create cycles. 2013-11-10 15:18:49 +00:00
fonsinchen f6fd21e8e6 (svn r25948) -Fix [FS#5796]: Make sure LinkRefresher doesn't delete the LinkGraph DeleteStaleLinks() is examining. 2013-11-07 20:50:03 +00:00
fonsinchen 8926398f89 (svn r25915) -Fix: Unrestricted flow was counted incorrectly when invalidating flow. 2013-10-27 11:51:14 +00:00
fonsinchen f528d2c592 (svn r25910) -Fix: Guard against empty FlowStats in a few more places. 2013-10-23 19:04:06 +00:00
fonsinchen 6e1cc80926 (svn r25903) -Codechange: Refactor RefreshNextHopsStats into an own class LinkRefresher. 2013-10-22 18:34:10 +00:00
fonsinchen 2f9c48b859 (svn r25901) -Fix [FS#5675]: Check if any vehicles are still serving a link before deleting it. 2013-10-22 16:19:31 +00:00
fonsinchen 6524849386 (svn r25899) -Change: Restrict flows if links are restricted and don't normally pick them anymore. 2013-10-22 16:13:54 +00:00
fonsinchen 29e987f3fc (svn r25898) -Codechange: Add second timestamp for 'restricted links' to all edges. 2013-10-22 16:13:28 +00:00
fonsinchen 9337c561b0 (svn r25892) -Fix: off-by-one error in GetVia prevented certain flows from getting picked 2013-10-20 14:27:36 +00:00
fonsinchen 54db96be43 (svn r25891) -Feature: Use smallstack to allow for multiple next hops when loading and unloading. 2013-10-20 13:47:58 +00:00
zuu dfb5663313 (svn r25849) -Codechange: Introduce IsTileFlat to not compute full slope information for situations when we only want to know if a tile is flat or not (cirdan, LordAro) 2013-10-12 22:07:58 +00:00
rubidium d3ccc7c194 (svn r25495) -Fix [FS#5553]: when addings bits to a (train) station, the train trying to stop there could overshoot the (new) stop location and not stop at all 2013-06-28 18:09:07 +00:00
rubidium b4106e686b (svn r25461) -Fix: MSVC compiler warning 2013-06-25 18:52:12 +00:00
fonsinchen 930c19dae2 (svn r25435) -Fix: reroute cargo in vehicles if station is deleted 2013-06-23 08:29:28 +00:00
fonsinchen 3dd811e179 (svn r25434) -Fix: reroute cargo staged for unloading if a link breaks 2013-06-23 08:28:53 +00:00
fonsinchen f0119308f6 (svn r25424) -Fix: keep old flows around in an invalidated state to continue routing cargo if necessary 2013-06-17 20:38:11 +00:00
fonsinchen 1c995a3faa (svn r25391) -Fix: make ChangeShare really aware of INT_MIN 2013-06-10 21:53:11 +00:00
fonsinchen 6166772bc5 (svn r25379) -Fix: avoid warning in FlowStatMap::FinalizeLocalConsumption 2013-06-09 14:10:33 +00:00
fonsinchen 0fc198cb00 (svn r25365) -Feature: show cargo by next hops and final destinations in the station GUI 2013-06-09 13:08:52 +00:00