Peter Nelson
d683ec0183
Codechange: Move dropdown and slider out of widgets directory. ( #12403 )
...
Also shuffle headers to place widget includes near end.
This leaves the widgets directory solely for defining Widget IDs.
2024-03-31 19:37:16 +01:00
Peter Nelson
8746be8bf2
Codechange: Use FindVehiclesWithOrder when removing a road stop. ( #12144 )
2024-03-28 23:22:37 +01:00
Michael Lutz
8fb7d74dfe
Fix eabb9db: Drag building of road stops should not allow mixing z levels.
2024-03-28 22:28:48 +01:00
Michael Lutz
69acc132ca
Fix #12387 , eabb9db: [NewGRF] Wrong tile offset passed to rail station CB 149 (slope check)
2024-03-28 22:28:48 +01:00
Peter Nelson
ab94c8b511
Codechange: Iterate order lists instead of vehicles to find if any vehicle visits a station. ( #12315 )
...
This reduces the search time as shared orders are only searched once and non-front vehicles are skipped.
2024-03-17 09:34:28 +00:00
Patric Stout
a3cfd23cf9
Codechange: rename byte to uint8_t ( #12308 )
2024-03-16 23:59:32 +01:00
Michael Lutz
8b9f59d320
Codechange: Use references for non-optional in/out values of slope functions
2024-03-08 18:08:55 +01:00
Michael Lutz
8dda387f82
Codechange: Use std::tuple for slope functions with two return values
2024-03-08 18:08:55 +01:00
merni-ns
b8b80cb42e
Fix #12134 : Use correct error messages if clearing drive-through road stops fails ( #12139 )
2024-03-08 14:29:04 +01:00
Joan Josep
1b33b4058e
Fix: Redraw orders when a station feature is added/removed. ( #12061 )
2024-02-11 12:47:49 -05:00
frosch
b1718478c8
Codechange: Replace old non-standard attributes with C++17/20 standard attributes.
2024-02-02 22:29:28 +01:00
Tyler Trahan
735abfe111
Codechange: Split dates and timers into Economy and Calendar time ( #10700 )
2024-01-22 09:04:34 -05:00
Rubidium
e3f49ee7a0
Codechange: coding style fixes
2024-01-04 16:23:54 +01:00
Jonathan G Rennison
3e2060f155
Fix #11337 : Station blocked/pylon/wire bits with CBID_STATION_TILE_LAYOUT ( #11656 )
2023-12-31 18:31:01 -05:00
Jonathan G Rennison
3b18877b87
Fix #11629 : AirportGetNearestTown for rotated airports ( #11631 )
...
Add rotation parameter to AirportGetNearestTown
Add wrapper for existing stations
Remove unnecessary iterator cloning
2023-12-28 21:43:05 +00:00
Peter Nelson
c0ea0589b4
Fix: AirportGetNearestTown incorrectly assumed first TileIterator result was origin. ( #11565 )
...
Not all TileIterators are equal, and some do not start at the top-corner, so the perimeter check was wrong. As the caller already has thie origin tile, use that instead.
2023-12-09 09:47:41 +00: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
Tyler Trahan
1f41e773d6
Codechange: Use consistent name for bay road stops
...
As of #10494 , this is how we describe original dead-end road stops.
2023-11-28 14:24:33 -05: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
Tyler Trahan
49d53c41ab
Doc: Don't use other names for road vehicle bay stops ( #11418 )
2023-11-01 21:19:31 +00:00
Tyler Trahan
2dd2910ab3
Feature: Cheat to fix station ratings at 100% ( #11346 )
2023-10-21 08:35:52 -04:00
Peter Nelson
f06b3e9846
Change: Use CARGO_LIST to show station cargo acceptance changes. ( #11379 )
...
This simplifies construction of the news message and allows for more than
two changes to be show in one line.
2023-10-20 20:14:46 +01:00
Peter Nelson
9602de474d
Codechange: Use iterators and/or range-for on cargo related loops.
2023-10-19 17:03:25 +01:00
Peter Nelson
b5dc9328f2
Change: Store station blocked/wires/pylons flags in map. ( #11337 )
...
This stores three flags in unused map bits, and avoids having to look up
station graphics and custom station specs to determine blocked/wires/pylons
status.
This potentially affects rail pathfinding performance.
Savegame version is not bumped, as the flags can just be updated every
time.
2023-09-30 12:30:25 +01:00
Peter Nelson
398c7e5f9d
Codechange: Use new function to get a bitmask of empty cargo types.
2023-09-21 18:29:02 +01:00
Peter Nelson
69ee38bd43
Codechange: Use GetAcceptanceMask() instead of duplicating it.
2023-09-21 18:29:02 +01:00
Peter Nelson
122bfa2afd
Codechange: Use less locals for station free names bitmask.
2023-09-20 21:57:51 +01:00
Peter Nelson
aeaa552385
Codechange: Use std::bitset instead of bool array.
...
This avoids use of C-style pointers and memset.
2023-09-20 21:57:51 +01:00
Peter Nelson
2eacf36d0a
Codechange: List fallback station names by ID instead of magic number.
...
This improves readability and intention of the station name generator.
2023-09-20 21:57:51 +01:00
frosch
baf7cc858b
Codechange: Rename ship docking tile related functions.
2023-09-19 22:49:59 +02:00
frosch
5733145c59
Cleanup: Remove unneeded parameters.
2023-09-19 22:49:59 +02:00
frosch
b6c8f301be
Codechange: Silence warnings about intentionally unused parameters.
2023-09-19 22:49:59 +02: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
PeterN
acd7d3c913
Codechange: Rename *Railtype* to *RailType* for consistency. ( #11287 )
2023-09-11 08:55:12 +00:00
Tyler Trahan
77173a6a10
Codechange: Move date consts and functions to CalendarTime and TimerGameCalendar classes
2023-09-10 08:40:25 -04:00
Tyler Trahan
fca2b37726
Codechange: Move Ticks into their own class
2023-09-10 08:40:25 -04:00
Jonathan G Rennison
8df4aa7979
Fix: Road stops should not draw a ground sprite of 0 ( #11214 )
2023-08-20 15:46:19 -04:00
Patric Stout
07730584d7
Codechange: make explicit when a TileIndex is cast to its basetype ( #11190 )
...
This prevents people accidentially assigning a TileIndex to a Date
or any other type they shouldn't.
2023-08-15 18:12:05 +02:00
Patric Stout
a9ed590ca7
Codechange: use TimerGameCalendar::Date for variables in linkgraph that are dates ( #11187 )
2023-08-12 16:02:38 +02: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
Rubidium
3e8f8c55c2
Codechange: make creating temporary StringParameters easier
2023-06-20 17:37:24 +02:00
Rubidium
1d902a97ce
Codechange: move StringParameters to strings_internal.h
2023-06-17 12:14:11 +02:00
Rubidium
0a5e58451b
Codechange: pass string parameters by reference
2023-06-14 06:14:08 +02:00
Rubidium
36aaa9d683
Codechange: let GetStringWithArgs use StringBuilder
2023-06-04 18:00:23 +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
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
Peter Nelson
76516d7f70
Codechange: Use IsValidCargoID/IsValidCargoType.
...
IsValidCargoType() is used only for unmapped IDs.
2023-05-22 20:43:40 +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
PeterN
882f06bf14
Fix: Support more than 256 stations/waypoints/roadstops per class. ( #10793 )
...
It was already possible to define more than 256 per class, but not possible
to use them as the index used in GUI and passed through commands was limited
to a byte.
2023-05-08 18:09:33 +00:00
Rubidium
fb856e16c1
Codechange: replace some min/clamp constructs to ClampTo
2023-05-06 21:26:13 +02:00
Tyler Trahan
6501f84b4a
Codechange: Move calendar date functions inside TimerGameCalendar ( #10753 )
2023-05-04 13:14:12 +00:00
Patric Stout
31ad990831
Codechange: move tick-counter into TimerGameTick ( #10712 )
2023-04-24 16:55:40 +00:00
Patric Stout
7aa2b9ab0a
Codechange: move all date-related variables inside the timer ( #10706 )
2023-04-24 15:56:01 +00:00
Tyler Trahan
bc44158f9a
Change: Allow overbuilding station and waypoint tiles ( #10618 )
2023-04-16 09:05:04 +02:00
Charles Pigott
b282664242
Codechange: Replace all usages of alloca/AllocaM with more modern/less discouraged alternatives
2023-04-15 16:57:00 +01:00
Patric Stout
3ebc7ad16e
Codechange: migrate all game-time-related timers to the new framework
2023-04-15 13:58:55 +02:00
Rubidium
e8af8daa68
Codechange: pass "ground vehicle" to GetTileSlopeZ since for tunnel/bridges there are two states
...
Previously it checked the position in non-driving direction to "guess" whether
a ground vehicle was using the function, so on tunnels/bridges it could either
return the Z of the (virtual) ground compared to the Z of the path the vehicle
would take.
2023-04-09 19:00:26 +02:00
Jonathan G Rennison
c74dfe393f
Fix #10556 : Duplication of road infrastructure count updates ( #10557 )
...
When building a road stop
2023-03-08 18:38:19 +00:00
Rubidium
580d0a6343
Codechange: make use of Tile in for all direct map accesses
2023-02-28 07:11:48 +01:00
Chenshu Yu
eabb9db0bb
Fix #9810 : 'Rebuilding' a through road stop costs money ( #9852 )
2023-02-27 08:59:42 +00:00
Michael Lutz
aab580e0ac
Codechange: [Linkgraph] Drop node/edge wrappers from LinkGraph.
2023-02-26 21:41:24 +01:00
Michael Lutz
7352f812e6
Codechange: [Linkgraph] Only store present link graph edges and not all possible edges.
2023-02-26 21:41:24 +01:00
Jonathan G Rennison
4c1406a4b5
Add: NewGRF road stops
2023-02-26 21:28:30 +01:00
Rubidium
8cbf1be9d6
Codechange: split large function into smaller functions with self-explanatory names
2023-02-25 23:57:36 +01:00
Jonathan G Rennison
9c915f05ec
Fix: Water infrastructure accounting when building docks
2023-01-29 23:15:53 +01:00
rubidium42
6ba55e663e
Codechange: do not hide variables with other variables
2023-01-29 07:21:34 +01:00
Rubidium
fe2bcd2a58
Codechange: migrate size related functions to Map structure
2023-01-21 17:11:40 +01:00
Patric Stout
1fb101eabb
Codechange: address CodeQL issue "Multiplication result converted to larger type" ( #10306 )
...
Most are very unlikely to ever be triggered in our codebase; two
stand out: linkgraph and money cheat. Those, potentially, could
wrap earlier than expected.
2023-01-02 20:30:02 +00:00
Peter Nelson
138198e971
Change: Separate ground sprite from foundation sprite offsets.
2022-12-23 15:43:11 +00:00
SamuXarick
a8a7f95665
Change: Allow to build dock on clearable watered object tiles ( #8514 )
2022-11-08 21:04:14 +01:00
Jonathan G Rennison
4dc741a8a0
Fix #10011 : Incorrect infrastructure totals when overbuilding bay road stop ( #10143 )
...
Fix https://github.com/OpenTTD/OpenTTD/issues/10011
2022-11-06 16:46:11 +01:00
PeterN
f59f0195e3
Fix: Wrong string used to determine size of zoomed out station sign. ( #10036 )
2022-09-20 20:54:42 +01:00
Patric Stout
100aca1848
Fix: CmdRemoveRoadStop didn't validate the height property properly ( #9945 )
...
Height was a unsigned 32bit integer, where TileAddWrap uses a
signed 32bit integer for the height. In result, there was an
implicit cast from unsigned to signed, messing things up.
But looking at it from a functional perspective, allowing such
large values is not sensible. In fact, width is restricted to
just a 8bit integer. By changing height to a 8bit integer too,
the implicit cast will never make a positive value negative anymore.
2022-07-09 12:27:58 +02:00
Jonathan G Rennison
19af139631
Fix #9937 : Station industries_near incorrect after removing part moved sign
...
RecomputeCatchment was being called before moving the sign tile
instead of afterwards
2022-06-29 12:49:55 +02:00
Tyler Trahan
f92cf38ab5
Feature: Allow disabling local authority control of company actions
2022-04-02 22:50:28 +02:00
Tyler Trahan
fbbc80f79e
Fix #9020 : Update station coverage highlight when adding/removing tiles
2022-03-10 20:54:45 +01:00
J0anJosep
d9a37c915f
Cleanup #9725 : Replace cmd_helper related functions and remove cmd_helper.h.
2022-02-02 21:30:15 +01:00
Jonathan G Rennison
4844268d1c
Fix #9774 : CmdBuildRoadStop updated station acceptance in estimate mode
2021-12-30 20:39:10 +01:00
Michael Lutz
c6d7b98808
Codechange: Un-bitstuff landscape commands.
2021-12-16 22:28:32 +01:00
Michael Lutz
55170ae703
Codechange: Un-bitstuff rail commands.
2021-12-16 22:28:32 +01:00
Michael Lutz
6fe445e6c0
Codechange: Un-bitstuff station/depot/waypoint commands.
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
b6933a2ebd
Codechange: Move command arguments to the back of the DoCommand function call.
2021-12-16 22:28:32 +01:00
Loïc Guilloux
38a64eb2aa
Change: Allow all tiles around docks to be docking tiles ( #9578 )
2021-09-26 19:31:55 +02:00
SamuXarick
18247bb3b8
Fix #9521 : Don't load at just removed docks that were part of a multi-dock station ( #9524 )
2021-09-18 13:25:07 +02:00
Nicolas Chappe
b83820e723
Change: [Linkgraph] Delete links only served by vehicles stopped in depot
...
A stale link is not deleted if the link refresher finds a vehicle that still serves it.
This commit excludes vehicles stopped in depot for a very long time from the link refresher,
so that their stale links can be deleted.
2021-08-20 22:37:03 +02:00
Joan Josep
cc38a42b07
Fix 659989af45: Set appropriate town window dirty when building/removing airports. ( #9497 )
2021-08-18 14:33:32 +02:00
Nicolas Chappe
977604ef08
Feature: [Linkgraph] Prioritize faster routes for passengers, mail and express cargo
...
Passengers usually prefer fast paths to short paths.
Average travel times of links are updated in real-time for use in Dijkstra's algorithm,
and newer travel times weigh more, just like capacities.
2021-08-17 14:57:59 +02:00
dP
c1d79398d5
Fix: Use of unstable sort when distributing cargo production can cause desyncs
2021-08-01 07:43:49 +02:00
glx22
89ab8b79a5
Codechange: Remove FOR_EACH_SET_BIT
2021-07-09 21:36:09 +02:00
rubidium42
55a11710a6
Codechange: convert printf DEBUG statements to fmt Debug statements
2021-06-13 12:45:45 +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
rubidium42
661728558e
Codechange: let IsUnique.* functions accept std::string
2021-05-29 19:02:18 +02:00
rubidium42
b791ffc6de
Fix: do not hide parameter by local variable with the same name
2021-05-27 18:30:56 +02:00
rubidium42
44ca7d9377
Change: Use gender-neutral pronouns
2021-05-15 10:16:48 +02:00
glx22
38c97e1492
Codechange: Replace TILE_AREA_LOOP with range-based for loops
2021-05-13 00:13:54 +02:00