Commit Graph

541 Commits

Author SHA1 Message Date
Charles Pigott 9b800a96ed
Codechange: Remove min/max functions in favour of STL variants (#8502) 2021-01-08 11:16:18 +01:00
Charles Pigott 860c270c73 Codechange: Replace assert_compile macro with static_assert 2020-12-27 10:55:42 +00:00
Michael Lutz 79cb9efa7f
Change: Always apply inflation from 1920 to 2090, no matter the game start year. (#7589) 2020-12-25 20:36:14 +01:00
Pavel Stupnikov 9a45a0f535
Feature: Set exclusive access to industry from GS (#8115) 2020-12-22 14:29:48 +01:00
Pavel Stupnikov b2895dfcd0
Change: extend the allowed range for max loan setting (#8386) 2020-12-16 21:56:32 +01:00
Jonathan G Rennison 2fee030a26 Change: Algorithm for transfer feeder payments
The original algorithm pays intermediate legs in feeder systems based
on the start and end stations of that particular leg.
This tends to result in large negative payments on the final leg for
journeys with many feeder legs, as the overall feeder payment increases
with the number of legs, and the final leg is penalised for discrepancies
between the previous leg payments and the actual payment for delivery
from the source to the destination.
The feeder share setting is a partial mitigation, however it is difficult
to tune as a suitable value depends on the number of legs and the network
topology, which are often not the same for all vehicles.

The new incremental algorithm pays the cargo payment from the source
station to the end station of the current leg, minus any previous
transfer feeder payments for each leg.
This prevents unbounded increase of feeder payments and therefore avoids
the issue of excessive negative payments on the final leg.
Feeder payments may be negative, e.g. in the case of poorly performing
or highly indirect legs. This is better than penalising the final leg.
This mode reduces the need to tune the feeder shares setting to the
current network.

The feeder share setting applies in the existing way.
2020-01-28 23:37:16 +01:00
Mingwei Samuel 26ce4eb45d Fix #7430: when train visits station, only reset time_since_pickup if has room to load 2019-12-23 21:07:45 +01:00
glx ee7a8eebca Codechange: Replace FOR_ALL_TOWNS with range-based for loops 2019-12-21 20:13:03 +01:00
glx 0b489f9924 Codechange: Replace FOR_ALL_SUBSIDIES with range-based for loops 2019-12-21 20:13:03 +01:00
glx 847e5f33d4 Codechange: Replace story related FOR_ALL with range-based for loops 2019-12-21 20:13:03 +01:00
glx 869581eb23 Codechange: Replace FOR_ALL_SIGNS 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 4ae829cb27 Codechange: Replace FOR_ALL_GROUPS with range-based for loops 2019-12-21 20:13:03 +01:00
glx f58ce3db19 Codechange: Replace FOR_ALL_GOALS 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
glx 3a14cea068 Codechange: Replace FOR_ALL_COMPANIES with range-based for loops 2019-12-21 20:13:03 +01:00
S. D. Cloudt 13cc8a0cee Cleanup: Removed SVN headers 2019-11-10 17:59:20 +00:00
Jack Baron 7c9dedb94f Feature: Configure minimum share trading years 2019-10-19 20:31:44 +01:00
JMcKiern 04f659e768 Fix: Some typos found using codespell 2019-09-29 21:27:32 +01:00
peter1138 c02ef3e456 Feature: Add NotRoadTypes (NRT) 2019-05-01 21:36:27 +02:00
Charles Pigott 5b34c8019f Codechange: Remove Company/OwnerByte types 2019-04-29 17:40:22 +01:00
peter1138 0130f3be45 Fix #7491: Send company update admin message when bankruptcy counter changes. 2019-04-11 13:00:25 +01:00
Henry Wilson 7c8e7c6b6e Codechange: Use null pointer literal instead of the NULL macro 2019-04-10 23:22:20 +02:00
glx22 a1e492d0d8
Fix #7439: don't overwrite CompanyRemoveReason with ClientID (#7465) 2019-04-05 15:11:52 +02: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 bfd79e59dc Codechange: Replace SmallVector::Clear() with std::vector::clear() 2019-03-26 20:15:57 +00:00
Patric Stout e3c639a09f Remove: ENABLE_NETWORK switch
This switch has been a pain for years. Often disabling broke
compilation, as no developer compiles OpenTTD without, neither do
any of our official binaries.

Additionaly, it has grown so hugely in our codebase, that it
clearly shows that the current solution was a poor one. 350+
instances of "#ifdef ENABLE_NETWORK" were in the code, of which
only ~30 in the networking code itself. The rest were all around
the code to do the right thing, from GUI to NewGRF.

A more proper solution would be to stub all the functions, and
make sure the rest of the code can simply assume network is
available. This was also partially done, and most variables were
correct if networking was disabled. Despite that, often the #ifdefs
were still used.

With the recent removal of DOS, there is also no platform anymore
which we support where networking isn't working out-of-the-box.

All in all, it is time to remove the ENABLE_NETWORK switch. No
replacement is planned, but if you feel we really need this option,
we welcome any Pull Request which implements this in a way that
doesn't crawl through the code like this diff shows we used to.
2019-03-20 19:24:55 +01:00
stormcone 43caef2968 Fix f58fa80e: Wrong company performance rating when money exceeds INT_MAX. (#7382)
Company performance rating calculation does not take into account the companies' money when those exceeds INT_MAX.
2019-03-17 21:28:37 +01:00
Peter Nelson 8b1b3fd0f9 Feature: Non-rectangular sparse station catchment area. 2019-03-09 16:33:47 +00:00
peter1138 94b40fd530 Codechange: Convert IndustryVector to a 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
Samu 780593ae60 Fix #6633: Cargo monitor industry delivery now accounts for which IndustryID the cargo was delivered to 2019-03-02 18:14:45 +01: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
glx 8e7fe3973f Add: CompanyCtrlAction enum for CMD_COMPANY_CTRL actions 2019-02-04 21:08:36 +01:00
Peter Nelson 48fb575502 Fix 11ab3c4ea2f: Vehicles could not be refitted to cargo IDs higher than 32. 2019-01-29 17:57:28 +00:00
Niels Martin Hansen 810887af30 Fix #6498: Use int64 for all company rating calculations 2018-11-25 00:48:34 +01:00
Niels Martin Hansen e66cec8f86 Add: NewGRF support for 16-in-16-out industries 2018-11-03 21:43:54 +01:00
Niels Martin Hansen 8859381d30 Add: Industries can produce and accept up to 16 different cargoes 2018-11-03 21:43:54 +01:00
Charles Pigott f5b1115039 Doc: Lots and lots of doxymentation fixes 2018-10-31 12:35:54 +01:00
Charles Pigott 5f86e1a390 Codechange: Silence -Wclass-memaccess warnings with GCC8 2018-06-27 22:54:46 +02:00
PeterN 4cebebcf68
Change: Add CargoTypes type for cargo masks. (#6790) 2018-05-21 22:08:39 +01:00
frosch db54db00df (svn r27981) -Change [FS#6679]: Check companies for bankruptcy before subtracting reoccuring monthly costs. (Samu) 2018-03-11 12:46:05 +00:00
frosch b4b98e5165 (svn r27893) -Codechange: Use fallthrough attribute. (LordAro) 2017-08-13 18:38:42 +00:00
peter1138 d31f9a83e7 (svn r27788) -Fix [FS#6536]: Get vehicle load amount after executing new cargo trigger. 2017-03-13 07:37:05 +00:00
frosch b0c56f3432 (svn r27585) -Fix [FS#6437]: Enforce a non-zero load amount for all vehicles, so that vehicles can process their cargo reservations. 2016-05-29 13:35:17 +00:00
frosch dac94c7cbc (svn r27584) -Codechange: Add some assertions about Vehicle::cargo_payment. 2016-05-29 13:33:20 +00:00
frosch 32cb62a242 (svn r27282) -Fix [FS#6254]: Enforce the company's default service intervals when purchasing another company. (Johnnei) 2015-05-11 16:58:09 +00:00
frosch e686add63a (svn r27281) -Codechange: Do not shadow local variables with other local variables in sub-scopes. 2015-05-11 16:53:05 +00:00
fonsinchen 75cb16a7d7 (svn r26918) -Fix [FS#6110]: Reserve cargo only after unloading finished or if the vehicle has the desired cargo already 2014-09-24 20:56:52 +00:00
fonsinchen d6fc217136 (svn r26917) -Revert (r26857): It broke improved loading. 2014-09-24 20:55:47 +00:00
fonsinchen c4902c4150 (svn r26857) -Fix [FS#6110]: Reserve cargo after refitting and only if necessary. 2014-09-20 09:41:25 +00:00
fonsinchen dfbcd8869d (svn r26847) -Fix [FS#6110]: Don't assign a next hop when returning cargo 2014-09-18 17:49:19 +00:00
fonsinchen 3648e95265 (svn r26586) -Fix [FS#5995]: Consider multiheaded trains in station refits (and clean up a bit) 2014-05-13 19:16:04 +00:00
rubidium b590a64718 (svn r26581) -Fix [FS#5989]: transfering cargo to a station doesn't give that station a rating and thus the cargo does not decay... until the first pickup happens
For cargo drops from industries/houses, the station gets a rating too so why not when cargo is dropped at the station from a train?
2014-05-11 18:31:38 +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
fonsinchen b5566ae6ec (svn r26548) -Codechange: move updating of load_unload_ticks out of LoadUnloadVehicle 2014-05-01 14:49:44 +00:00
fonsinchen 3ee31a8f89 (svn r26547) -Codechange: Collect order travel and wait times independent of timetables 2014-05-01 14:49:16 +00:00
fonsinchen c915d9fa55 (svn r26546) -Codechange: Make order wait_time, travel_time and max_speed private 2014-05-01 14:48:44 +00:00
fonsinchen 49f27eb247 (svn r26483) -Fix: Allow single-vehicle consists to station-refit in a meaningful way. 2014-04-23 20:22:27 +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
fonsinchen 88787412b6 (svn r26327) -Fix [FS#5901]: Take care of next_station when reassigning from MTA_DELIVER to MTA_TRANSFER. 2014-02-09 21:10:25 +00:00
fonsinchen 9ad173c9cc (svn r26236) -Fix: Don't overreserve after autorefit, but do reserve mail for aircraft 2014-01-12 17:44:55 +00:00
fonsinchen ecdd796a86 (svn r26188) -Codechange: Move station refitting to a separate function. 2013-12-30 14:50:45 +00:00
fonsinchen 63b43ed914 (svn r26187) -Fix: allow refitting at station if cargo has already been reserved. 2013-12-30 14:50:09 +00:00
fonsinchen 6e1cc80926 (svn r25903) -Codechange: Refactor RefreshNextHopsStats into an own class LinkRefresher. 2013-10-22 18:34:10 +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
fonsinchen b09c4043ec (svn r25565) -Codechange: Rewrite order prediction logic to introduce proper refit prediction 2013-07-06 17:01:31 +00:00
frosch 934f4decba (svn r25497) -Fix (r25479): byte is not unit 2013-06-28 19:20:45 +00:00
frosch 7c9f0545b4 (svn r25479) -Fix (r23861): [NewGRF] When cargo NewGRF define a mulitplier to modify vehicle capacities, use the same multiplier to modify loading speed. 2013-06-26 20:38:32 +00:00
fonsinchen 04e3eb6fab (svn r25361) -Feature: distribute cargo according to plan given by linkgraph 2013-06-09 13:03:48 +00:00
zuu 9aa1bf0264 (svn r25342) -Add: StoryPage data structures and GS API 2013-06-09 12:19:09 +00:00
fonsinchen 478fcadd21 (svn r25330) -Fix [FS#5583]: return some reserved cargo if vehicle is overloaded by station stopping acceptance for cargo scheduled to be delivered 2013-06-07 22:22:52 +00:00
rubidium 3947453277 (svn r25259) -Codechange: track capacities and usage of links 2013-05-19 14:22:04 +00:00
frosch 5eddbb338b (svn r25185) -Fix [FS#5508]: Remove ambivalent functions CargoList::Empty() and Count(), and replace them with VehicleCargoList::StoredCount(), TotalCount(), StationCargoList::AvailableCount() and TotalCount(). (fonsinchen) 2013-04-13 13:42:08 +00:00
rubidium 2b6669a7ff (svn r25156) -Fix [FS#5495, FS#5497]: if a vehicle had some cargo, and it would try to unload without actually unloading, the vehicle would just not load any cargo at the station (fonsinchen) 2013-04-06 18:57:18 +00:00
frosch 22bb015f3d (svn r25041) -Remove [FS#3764-ish]: ordered refit with subtypes, since the cases where it worked were corner cases rather than the general case. 2013-02-24 16:41:51 +00:00
rubidium cdb0a76958 (svn r25012) -Codechange: persistently keep 'reserved' cargo (for full-load improved loading) instead of calculating if for every cycle 2013-02-17 14:54:50 +00:00
rubidium 446d50f658 (svn r25011) -Codechange: allow vehicle transfer and profit text effects to be shown at the same time (fonsinchen) 2013-02-17 14:50:54 +00:00
rubidium 71bbc130fc (svn r25009) -Codechange: refactor bits of cargo packet (lists) to reduce duplicated code (fonsinchen) 2013-02-17 14:17:06 +00:00
zuu b1016f66ba (svn r24986) -Change: Cleanup goals and cargo monitors of companies when they go bankrupt or are taken over. 2013-02-10 19:49:04 +00:00
rubidium 99a08e1e8c (svn r24968) -Fix [FS#5379]: company window was not updated when shared were enabled/disabled 2013-02-04 20:29:38 +00:00
rubidium 968b41fa3f (svn r24963) -Fix [FS#5435]: Do not stop loading if there are reservations left (fonsinchen) 2013-02-03 12:58:57 +00:00
rubidium f790d70cd6 (svn r24962) -Fix [FS#5438]: Reserve all capacity while unloading to avoid 'stealing' cargo, i.e. loading cargo onto a second vehicle when the first can't be fully filled yet (fonsinchen) 2013-02-03 10:06:34 +00:00
planetmaker f8fd13dea1 (svn r24927) -Cleanup [FS#5440]: No need to check a positive value to be larger than 0 2013-01-20 16:17:24 +00:00
peter1138 c00a400cc7 (svn r24905) -Feature(ish): Implement station randomisation triggers. 2013-01-11 07:39:25 +00:00
peter1138 4ebbfc3de4 (svn r24904) -Fix (r22746): "Train loads/unloads cargo" station animation triggers on individual platform 2013-01-10 22:56:49 +00:00
planetmaker c24374f99c (svn r24900) -Fix [FS#5389]: Comments with typos (most fixes supplied by Eagle_rainbow) 2013-01-08 22:46:42 +00:00
rubidium c749a02ac4 (svn r24883) -Fix: a completely emptied vehicle could trigger an assert 2013-01-03 18:18:32 +00:00
rubidium 0dd0bbc071 (svn r24882) -Fix: desync when NewGRF changes the stats related to acceleration (power, weight, tractive effort, etc) during service or 32 day triggers 2013-01-02 22:20:07 +00:00
frosch 883f9bec9b (svn r24718) -Codechange: Rename GoodsEntry::days_since_pickup to GoodsEntry::time_since_pickup. 2012-11-12 21:59:02 +00:00
frosch 56e63338ed (svn r24705) -Fix: Station rating might consider very old vehicles very young. 2012-11-12 18:10:21 +00:00
planetmaker f2e94237fc (svn r24619) -Change: Check for bankruptcy on a monthly basis (ZxBioHazardZx) 2012-10-20 22:05:26 +00:00
planetmaker b446780f01 (svn r24618) -Feature: Pay interest also on a negative cash value (ZxBioHazardZx) 2012-10-20 21:58:48 +00:00
planetmaker 4075b006a0 (svn r24617) -Change: Only bankrupt, if you have negative money considering you took max loan (ZxBiohazardZx) 2012-10-20 21:57:33 +00:00
frosch adf1929f0a (svn r24566) -Codechange: Reorder some code more intuitively. (Juanjo) 2012-10-01 19:38:08 +00:00
frosch 0ba2ed7676 (svn r24565) -Fix: Stop both price and payment inflation if either of them has reached MAX_INFLATION. 2012-10-01 19:31:55 +00:00
frosch 7122602026 (svn r24564) -Fix [FS#5312] (r17433): Limiting the inflation did not quite work. 2012-10-01 19:29:31 +00:00