Tyler Trahan
2a62caa30b
Codechange: Use Ticks for BaseConsist timetable fields
2023-12-11 07:12:45 -05:00
Peter Nelson
a258833aee
Fix 67d071d: WC_STATION_LIST should be invalidated by owner, not station index. ( #11530 )
2023-12-02 21:46:43 +00:00
Peter Nelson
ab535c0a86
Codechange: Add base() method to StrongType to allow access to the base type without casting. ( #11445 )
...
This removes the ability to explicitly cast to the base type, but the requirement
to use .base() means the conversion is still explicit.
2023-11-06 20:29:35 +00:00
Patric Stout
df400ef84a
Fix: only count distance traveled in vehicles for cargo payment ( #11283 )
...
No longer you can utilize the free (and instant) labour of station
workers, transporting your cargo from one part of the station to
the other. No more!
Based on patch by dP.
2023-09-19 22:16:31 +02:00
PeterN
18e75dbc88
Fix: Don't produce invalid cargo. ( #11314 )
...
Production for secondary industries did not always check that the produced cargo type isn't valid.
2023-09-18 22:43:03 +01:00
Peter Nelson
2fdc22e7ea
Codechange: Shuffle CargoPayment members to reduce padding.
2023-09-14 09:50:58 +01:00
Patric Stout
9c49a61249
Fix: base cargo payment on load/unload tile, instead of station sign location ( #11281 )
2023-09-13 14:41:09 +00:00
Patric Stout
a0f6983be4
Codechange: remove parameter from VehicleCargoList::Reassign that is always INVALID_STATION
2023-09-11 00:25:47 +02:00
Tyler Trahan
77173a6a10
Codechange: Move date consts and functions to CalendarTime and TimerGameCalendar classes
2023-09-10 08:40:25 -04:00
Patric Stout
30172fc037
Codechange: cleanup CargoPacket in terms of variable/function names ( #11278 )
...
Over the years, things got reused and changed, making the current
names somewhat unclear in what they actually mean and do.
2023-09-09 23:21:21 +02:00
Patric Stout
b0e73277d6
Codechange: remove loaded_at_xy from CargoPacket as it was unused ( #11276 )
2023-09-09 20:24:46 +01:00
Patric Stout
299570b2c1
Codechange: make TimerGameCalendar Date and Year types strongly typed ( #10761 )
2023-08-12 18:14:21 +00:00
Rubidium
eaae0bb5e7
Codechange: automatic adding of _t to (u)int types, and WChar to char32_t
...
for i in `find src -type f|grep -v 3rdparty/fmt|grep -v 3rdparty/catch2|grep -v 3rdparty/opengl|grep -v stdafx.h`; do sed 's/uint16& /uint16 \&/g;s/int8\([ >*),;[]\)/int8_t\1/g;s/int16\([ >*),;[]\)/int16_t\1/g;s/int32\([ >*),;[]\)/int32_t\1/g;s/int64\([ >*),;[]\)/int64_t\1/g;s/ uint32(/ uint32_t(/g;s/_uint8_t/_uint8/;s/Uint8_t/Uint8/;s/ft_int64_t/ft_int64/g;s/uint64$/uint64_t/;s/WChar/char32_t/g;s/char32_t char32_t/char32_t WChar/' -i $i; done
2023-07-19 19:30:14 +02:00
rubidium42
9f6fec01cd
Codechange: rename cargo aging days to periods, as they are not really days ( #11112 )
2023-07-12 13:20:02 -04:00
Finn Willard
f23249f8f1
Fix #10917 : Pay loan interest before generating statistics ( #11040 )
2023-06-20 22:02:09 +02:00
Patric Stout
3b1407d240
Feature: allow to do a hostile takeover of an AI company (in singleplayer) ( #10914 )
...
With the removal of the share-system, you could no longer make an
AI disappear in a single player game. At least, not without going
into the console.
2023-06-05 19:32:22 +02:00
PeterN
584faaf064
Change: Reorganise industry accept/produce arrays. ( #10853 )
...
Use a array of struct for each cargo instead of an array for each statistic.
This makes iterating for acceptance and production much simpler.
pct_transported is now calculated when needed.
2023-05-25 21:25:46 +01:00
Peter Nelson
633f19419d
Codechange: Make more use of GetCargoAccepted/ProducedIndex().
2023-05-24 17:34:11 +01:00
Peter Nelson
f177ce7c9a
Codechange: Base CargoArray off std::array.
...
This avoids needing to define array accessors and allows use of
default value initialization.
2023-05-23 19:07:36 +01:00
Rubidium
3323402aaa
Codechange: rename smallvec_type to container_func and use only when needed
2023-05-20 16:53:10 +02:00
Peter Nelson
e6740046ee
Codechange: Use range-for iteration.
2023-05-11 07:58:55 +01:00
Rubidium
fb856e16c1
Codechange: replace some min/clamp constructs to ClampTo
2023-05-06 21:26:13 +02:00
Patric Stout
36a0818bc5
Remove: buying/selling/owning company shares ( #10709 )
2023-04-29 10:16:49 +02:00
Patric Stout
7aa2b9ab0a
Codechange: move all date-related variables inside the timer ( #10706 )
2023-04-24 15:56:01 +00:00
PeterN
e97bf271dc
Codechange: Make SpriteType, CargoSortType, SourceType and ScriptType enum classes. ( #10663 )
...
This avoids a (soft) namespace conflict between the four ST_* enums.
2023-04-16 20:00:55 +01:00
Patric Stout
3ebc7ad16e
Codechange: migrate all game-time-related timers to the new framework
2023-04-15 13:58:55 +02:00
dP
e2f1cd44dc
Change: Increase max cargo age and let min cargo payment approach zero. ( #10596 )
...
Co-authored-by: Michael Lutz <michi@icosahedron.de>
2023-04-10 12:34:28 +02:00
Jonathan G Rennison
4c1406a4b5
Add: NewGRF road stops
2023-02-26 21:28:30 +01:00
Rubidium
b7b7c11b90
Change #10077 : make maximum loan a positive multiple of the loan interval
...
And set the minimum maximum loan to the value of loan interval, so there is
always an amount of money to lend. Compared to being allowed to set max loan
to 0 and never be allowed to lend any money.
2023-02-01 21:41:18 +01:00
Rubidium
fe2bcd2a58
Codechange: migrate size related functions to Map structure
2023-01-21 17:11:40 +01:00
Jonathan G Rennison
10e76b2788
Fix #10032 : Capacities of articulated vehicles in build window
...
See also: #9954
2023-01-14 18:52:01 +01:00
SamuXarick
b7abaa55a3
Codechange: Improve performance when calculating company value ( #9901 )
2022-11-08 11:11:24 +00:00
glx22
aeeee9f18e
Fix #9909 , 13528bf: Left-over unused parameter breaks overload resolution
2022-06-01 19:24:48 +02:00
benda
6540948ace
Fix: Company values do not properly account for shares ( #9770 )
...
Co-authored-by: Charles Pigott <charlespigott@googlemail.com>
2022-05-14 16:57:47 +02:00
Charles Pigott
146827c458
Fix #9877 : GS could trigger 'Cost: 0' cost message ( #9878 )
2022-05-05 19:51:56 +01:00
Tyler Trahan
f4ca94d3f6
Codechange: Revenue is not the same as Income
...
Income is revenue minus costs. Let's name things correctly (without breaking the script API).
2022-04-25 21:51:51 +02:00
Tyler Trahan
d220debc6c
Change: Don't pay Property Maintenance on stations when Infrastructure Maintenance is disabled ( #9828 )
2022-03-10 22:34:03 +01:00
Rubidium
c73f578e8c
Codechange: replace magic numbers and C-style arrays with C++-style array for share owners
2022-03-09 18:05:12 +01:00
Rubidium
1c256a4be7
Fix: do not let shares in the company taking over another company disappear
2022-02-24 20:25:31 +01:00
dP
36bee83864
Change: Deliver cargo to the closest industry first ( #9536 )
2022-02-19 19:08:23 +01:00
Niels Martin Hansen
e68bf58989
Codechange: Use anonymous union for vehicle orders/old orders list
2022-02-15 20:01:10 +01:00
Michael Lutz
2e39637db2
Codechange: Don't use a global for the 'not enough cash' message.
2021-12-16 22:28:32 +01:00
Michael Lutz
41fa16f325
Codechange: Don't use globals for return values from vehicle command procs.
2021-12-16 22:28:32 +01:00
Michael Lutz
13528bfcd0
Codechange: Un-bitstuff all remaining commands.
2021-12-16 22:28:32 +01:00
Michael Lutz
21675ec7e2
Codechange: Un-bitstuff vehicle/engine commands.
2021-12-16 22:28:32 +01:00
Michael Lutz
4f3ea3907e
Codechange: Un-bitstuff commands taking a ClientID (i.e. CMD_CLIENT_ID).
2021-12-16 22:28:32 +01:00
Michael Lutz
0f64ee5ce1
Codechange: Template DoCommandP to automagically reflect the parameters of the command proc.
...
When finished, this will allow each command handler to take individually
different parameters, obliviating the need for bit-packing.
2021-12-16 22:28:32 +01:00
Michael Lutz
e740c24eb7
Codechange: Template DoCommand to automagically reflect the parameters of the command proc.
...
When finished, this will allow each command handler to take individually
different parameters, obliviating the need for bit-packing.
2021-12-16 22:28:32 +01:00
Michael Lutz
7048e1522f
Codechange: Move flags in CommandProc in front of the command arguments.
2021-12-16 22:28:32 +01:00
Michael Lutz
33ca4f2b99
Codechange: Let the compile generate the master command table out of templated command traits.
...
This is using a non-intrusive type-traits like templated system, which
allows compile-time validation that the command table and the command
enum match up.
2021-12-16 22:28:32 +01:00
Michael Lutz
a38bbefe1b
Codechange: Untangle command code, flags and error string for DoCommand*.
2021-12-16 22:28:32 +01:00
Michael Lutz
549caca39c
Codechange: Move command arguments to the back of the networked command function calls.
2021-12-16 22:28:32 +01:00
Michael Lutz
b6933a2ebd
Codechange: Move command arguments to the back of the DoCommand function call.
2021-12-16 22:28:32 +01:00
Rubidium
d83647f9a7
Fix #9440 : negative cargo payments not being handled right
...
Cargo payments were stored as unsigned integer, but cast to int64 during
application of inflation. However, then being multiplied with a uint64
making the result uint64. So in the end the payment that should have been
negative becomes hugely positive.
2021-08-02 20:44:53 +02:00
glx22
a543a4b7bb
Codechange: Remove FOR_EACH_SET_CARGO_ID
2021-07-09 21:36:09 +02:00
rubidium42
9a7750f14e
Codechange: use the constructor for CompanyNewsItem to fill the data instead of a separate function
2021-07-01 19:04:38 +02:00
rubidium42
aa9818db90
Codechange: create a type for the "free_data" of NewsItems and (de)allocate it with new and delete
2021-07-01 19:04:38 +02:00
Patric Stout
ef25afd55a
Fix #9348 , 4d74e51: don't try to sell shares of spectators ( #9349 )
...
"new_owner" can be INVALID_OWNER, and as INVALID_OWNER ==
COMPANY_SPECTATORS, we could end up trying to sell shares of
nobody.
2021-06-11 00:18:20 +02:00
glx22
5799402f7a
Codechange: Rename window related DeleteXXX to match new behaviour
2021-05-29 21:08:25 +02:00
rubidium42
2e136285e1
Codechange: move from C-string to std::string for DoCommand
2021-05-29 19:02:18 +02:00
Patric Stout
4d74e51907
Fix #9281 : acquire a company uses special bookkeeping to make you rich ( #9300 )
...
When you buy-out a company, you got your shares back. This is
based on company-value, which includes values for the vehicles etc.
In other words, you not only got the vehicles, but you also got
paid to get them back.
Additionally, you also got the loan of the company, but not the
money for the loan (as that is subtracted from the company-value).
Solve this by changing the rules of a buy-out: don't sell your
shares, get the loan AND the balance and get the infrastructure.
2021-05-29 11:21:30 +02:00
rubidium42
44ca7d9377
Change: Use gender-neutral pronouns
2021-05-15 10:16:48 +02:00
William Davis
881e1da51d
Change: Use gender-neutral pronouns in console command messages (and comments) ( #9203 )
2021-05-08 11:02:30 +01:00
glx22
9a8756d7ed
Codechange: Replace FOR_ALL_CARGOSPECS with range-based for loops
2021-04-29 21:08:24 +02:00
glx22
6b8ad5a9b1
Change: Apply some consistency to singleplayer related comments
2021-01-22 22:19:55 +01:00
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