Peter Nelson and GitHub
2bf84ea78c
Codechange: make GrfSpecFeature a scoped enum ( #15487 )
2026-04-19 19:04:27 +01:00
Peter Nelson and GitHub
7341c4d9aa
Fix #14827 : Store random trigger information per-tile. ( #14830 )
2026-02-03 23:01:55 +00:00
Cyprian Klimaszewski and rubidium42
97f3e5b70f
Codechange: Make TileType enum an enum class.
2026-01-24 08:34:05 +01:00
Rubidium and rubidium42
ee9e8ab9b2
Codechange: replace 'new (index) PoolItem(...' with 'PoolItem::CreateAtIndex(index, ...'
2026-01-03 16:04:32 +01:00
Rubidium and rubidium42
2fcd4e189a
Codechange: replace 'new PoolItem(...' with 'PoolItem::Create(...'
2026-01-03 16:04:32 +01:00
Cyprian Klimaszewski and GitHub
99f04f27de
Doc: Update information for receiving a copy of GPL. ( #14869 )
2025-12-07 11:25:08 +00:00
Peter Nelson and GitHub
b042e7a439
Codefix: Prefer static inline const keyword order. ( #14301 )
2025-05-25 20:32:56 +01:00
Peter Nelson and GitHub
0455627d16
Codechange: Move ownership of Orders to OrderList. ( #13948 )
...
Removes the orders pool, and orders are now stored directly in each OrderList.
Iterating orders now no longer needs to traverse a linked-list, all orders in an OrderList are sequential.
2025-05-23 10:36:28 +01:00
Peter Nelson and GitHub
0aacd7acb3
Codechange: Use GrfSpecFeature type instead of uint8_t. ( #14253 )
2025-05-12 08:44:39 +01:00
Peter Nelson and GitHub
6d5aee0545
Codechange: Restructure RoadStop Entries to reduce pointers. ( #14069 )
...
A RoadStop must own both west and east `Entry`s, but they are allocated separately.
Combine this allocation into one instead.
2025-04-23 08:29:34 +01:00
Peter Nelson and GitHub
3aa82d5e63
Codechange: Use EnumBitSet for RoadStopStatusFlags. ( #14068 )
2025-04-21 20:16:23 +01:00
frosch and frosch
264abfafe6
Codechange: Rename storage of random triggers to include the term 'random'.
2025-04-21 19:06:13 +02:00
Peter Nelson and GitHub
325f7f9767
Codechange: Use EnumBitSet for GoodsEntry status. ( #13899 )
2025-03-26 21:22:33 +00:00
Rubidium and rubidium42
754311a779
Codechange: use std::move when appropriate
2025-03-13 13:00:24 +01:00
Rubidium and rubidium42
09716dba75
Codechange: do not use MallocT for the pool
...
Needed to make the placement new operator use Tindex over size_t because of
ambiguity for the delete operator variant that also has the size.
2025-02-28 20:15:42 +01:00
Rubidium and rubidium42
fd4adc55e3
Codechange: replace INVALID_X with XID::Invalid() for PoolIDs
2025-02-16 20:23:00 +01:00
Rubidium and rubidium42
59df0ff496
Codechange: strongly type StationID
2025-02-16 18:25:51 +01:00
Peter Nelson and Peter Nelson
f309b90a1d
Codechange: Use EnumBitSet for Airport blocks.
2025-02-13 22:02:02 +00:00
Peter Nelson and Peter Nelson
75387b9e2b
Codechange: Use EnumBitSet for StationFacility.
2025-02-13 18:03:13 +00:00
Rubidium and rubidium42
e937c4dcfd
Codechange: change DestinationID into class with conversion helpers
...
A DestinationID is either a DepotID or StationID, where the aircraft hangar
being conceptually a depot is actually a StationID. When making those types
stronger, a lot of casts would need to be added, but this shows the intent
much better.
2025-02-06 21:03:24 +01:00
Peter Nelson and GitHub
4397aa3909
Codechange: Make StationType an enum class. ( #13339 )
2025-01-19 20:53:08 +00:00
Peter Nelson and GitHub
810e442203
Codechange: Split GoodsEntry cargo and flows data to unique_ptr. ( #13058 )
...
This allows cargo packets and cargo flow data to be empty if not in use, which is the case for the majority of station goods entries, and data is allocated when needed.
This reduces the initial size of a Station from 9192 bytes to 2024 bytes (on 64 bit platforms), although an allocation of 120 bytes is made for each active cargo type at a station.
Based on similar changes in JGRPP.
2025-01-02 20:48:23 +00:00
Rubidium and rubidium42
f55ba40b13
Codechange: use TileIndex constructor explicitly
2025-01-01 16:25:23 +01:00
Rubidium and rubidium42
fd5f6caed4
Codechange: use explicit TileIndex constructor for tile 0
2025-01-01 08:26:54 +01:00
Peter Nelson and GitHub
dd87bf9333
Fix: Rail station tile flags were not set early enough. ( #13203 )
...
Rail station tile flags now use bits that were (long ago) used to store railtype.
During Afterload, there are some calls that need the state of station tile flags to be correct which were executed before the station tile flags were set.
2024-12-27 14:27:55 +00:00
Peter Nelson and GitHub
d903806e59
Codechange: Add VectorSaveLoadHandler to simplify handlers for vectors. ( #13093 )
...
This reduces the duplication needed for each saved complex vector.
2024-11-17 23:46:32 +00:00
Jonathan G Rennison and GitHub
e477706bf5
Codechange: Add AssignBit function to assign the value of a single bit ( #12934 )
...
* Codechange: Add AssignBit function to assign the value of a single bit
* Codechange: Replace various uses of SB with AssignBit
* Codechange: Replace various uses of SB with a constant with SetBit
2024-09-10 08:36:58 -04:00
Jonathan G Rennison and GitHub
39465d7f5c
Codefix: Move saveload of road stop tile data ( #12883 )
...
So that road stop tile data is also saved/loaded for road waypoints
2024-08-13 19:49:53 +00:00
Jonathan G Rennison and rubidium42
9c84e5df3f
Add: Road waypoint functionality
2024-06-24 22:12:08 +02:00
Peter Nelson and Peter Nelson
d5671030b1
Codechange: Add NewGRFSpecsBase class to hold class/index information.
...
Standardises how the class index is stored in the spec, instead of relying ot the Spec structs having the same members.
This allows retrieving class_index and index without searching or using pointer arithmetic.
'cls_id' is renamed to 'class_index' to make it clearer that it is an index rather than the multichar label of the class.
2024-05-11 02:12:41 +01:00
Peter Nelson and Peter Nelson
ed2db80990
Codechange: Use map.emplace() instead of map.insert(std::pair).
...
This avoids a copy of the pair into the map.
2024-04-20 10:25:20 +01:00
Peter Nelson and GitHub
df2ee7b06c
Cleanup: Remove old SaveLoad workarounds for MS VS 2017. ( #12355 )
2024-03-23 00:12:35 +00:00
Peter Nelson and GitHub
8172e25273
Codechange: Use range-for when iterating station speclists. ( #12212 )
...
This replaces indexed access.
2024-03-03 16:41:02 +00:00
Peter Nelson and Peter Nelson
cff48c0f63
Codechange: Templatise SlStationSpecList to reduce duplication.
...
SlStationSpecList now handles both StationSpec and RoadStopSpec, and replaces indexed array access with range-for and reserve/emplace_back pattern.
2024-03-02 21:16:15 +00:00
Peter Nelson and Peter Nelson
41b3314d76
Codechange: Replace separate Station/RoadStopSpecList with template struct.
...
Reduces duplication and simplifies reuse.
Additionally naming an item that is used in a list as a ...List was
pretty weird.
2024-03-02 21:16:15 +00:00
Peter Nelson and GitHub
f0a891c4f7
Cleanup: Remove unused last_num_specs from SlRoadStopTileData. ( #12198 )
...
Inadvertently copy & pasted from another Sl handler.
2024-03-01 02:00:13 +00:00
Peter Nelson and Peter Nelson
9602de474d
Codechange: Use iterators and/or range-for on cargo related loops.
2023-10-19 17:03:25 +01:00
Peter Nelson and PeterN
49dae08a3b
Codechange: Add missing override specifiers.
2023-09-25 21:27:45 +01:00
Patric Stout and GitHub
d1a0ca67be
Codechange: simplify splitting of CargoPacket ( #11286 )
2023-09-13 09:40:01 -04:00
Patric Stout and GitHub
e6c02ebee6
Fix b0e73277: cargodist information got lost when splitting of cargo ( #11280 )
...
During b0e73277 we removed loaded_at_xy, but I kinda forgot that
it was a union with next_station. Now next_station wasn't copied
anymore, or checked in AreMergable.
2023-09-10 15:20:58 +02:00
Patric Stout and GitHub
b0e73277d6
Codechange: remove loaded_at_xy from CargoPacket as it was unused ( #11276 )
2023-09-09 20:24:46 +01:00
Peter Nelson and PeterN
9040d7813d
Codechange: Use std::array and std::unique_ptr for PersistentStorageArrays.
...
This (mostly) avoids the need for manual memory management and copying.
2023-09-09 15:26:03 +01:00
Rubidium and rubidium42
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 and GitHub
9f6fec01cd
Codechange: rename cargo aging days to periods, as they are not really days ( #11112 )
2023-07-12 13:20:02 -04:00
Peter Nelson and PeterN
e6740046ee
Codechange: Use range-for iteration.
2023-05-11 07:58:55 +01:00
Peter Nelson and PeterN
912eb68981
Change: Extend entity override manager and station spec lists to support 16 bit IDs.
2023-05-05 07:08:40 +01:00
Tyler Trahan
930f0a16d8
Codechange: Define Date/Year/Month/Day within TimerGameCalendar class
2023-04-26 07:14:03 -04:00
Rubidium and rubidium42
580d0a6343
Codechange: make use of Tile in for all direct map accesses
2023-02-28 07:11:48 +01:00
Jonathan G Rennison and rubidium42
4c1406a4b5
Add: NewGRF road stops
2023-02-26 21:28:30 +01:00
Rubidium and rubidium42
3c54344825
Fix: comparison of narrow type with wide type in loop condition
...
Technically this can't be triggered with the currently returned values though.
2023-01-06 19:34:35 +01:00