Rubidium and rubidium42
b9777269ce
Codechange: strongly type SignID
2025-02-09 18:05:01 +01:00
Rubidium and rubidium42
cd4482b5df
Codechange: make TownID an enum
2025-02-09 18:05:01 +01:00
Rubidium and rubidium42
cda9c2759e
Codechange: make SignID an enum
2025-02-09 18:05:01 +01:00
Rubidium and rubidium42
1e24b41f22
Codechange: strongly type GroupID
2025-02-09 16:52:21 +01:00
Rubidium and rubidium42
155d7de132
Codechange: change Source into a class with conversion helpers
...
A Source is either a CompanyID (Headquarters), IndustryID or TownID.
When making those types stronger a lot of casts would be needed, but
with these simple helpers the intent is shown more clearly.
2025-02-09 15:28:35 +01:00
Rubidium and rubidium42
3aa60fd479
Codechange: strongly type StoryPageID and StoryPageElementID
2025-02-09 15:07:29 +01:00
Rubidium and rubidium42
6c8915fdbc
Codechange: strongly type LeagueTableID and LeagueTableElementID
2025-02-09 15:07:29 +01:00
Rubidium and rubidium42
6aada55e96
Codechange: strongly type GoalID
2025-02-09 15:07:29 +01:00
Rubidium and rubidium42
07dd5bf01d
Codechange: support strongly typed pool element IDs in squirrel/saveload
2025-02-09 15:07:29 +01:00
Peter Nelson and GitHub
dccc6185b9
Codechange: Change internal format of encoded strings to improve robustness and allow expansion. ( #13499 )
2025-02-09 12:45:50 +00:00
Rubidium and rubidium42
1193852007
Codechange: do not use ScriptCompany::CompanyID outside of the script API
2025-02-09 12:04:42 +01:00
Rubidium and rubidium42
4cda9f900d
Codechange: [Script] Use helper function over direct casting CompanyID
...
In the script's API `COMPANY_INVALID` has a value of -1, whereas the internal
game's `INVALID_COMPANY` has a value of 255. Since the script's API also has
a `COMPANY_SPECTATOR` with a value of 255, these enumerations cannot be easily
reconciled by casting. As such, replace all casts in the script API with
either ScriptCompany::FromScriptCompanyID or ScriptCompany::ToScriptCompanyID.
Also make clear whether CompanyID is ::CompanyID or ScriptCompany::CompanyID
by using either one of those over CompanyID in the script's API.
2025-02-08 23:42:19 +01:00
Loïc Guilloux and GitHub
8ab3e9f0a3
Fix 3effb89: [Script] Don't set CommandCallback for asynchronous commands ( #13501 )
2025-02-08 22:14:37 +00:00
Peter Nelson and GitHub
d61b376998
Codechange: Use EnumBitSet for CargoClasses. ( #13491 )
2025-02-08 08:46:38 +00:00
Rubidium and rubidium42
5f41bc0279
Codechange: put SourceType and SourceID into Source struct
2025-02-08 06:37:23 +01:00
Peter Nelson and Peter Nelson
50b384032d
Codechange: Use EnumBitSet for IndustryControlFlags.
2025-02-07 22:01:59 +00:00
Peter Nelson and Peter Nelson
9a6fc4eb76
Codechange: Use enum class for NewsReferenceType.
2025-02-07 19:36:52 +00:00
Peter Nelson and Peter Nelson
ca75a8ce19
Codechange: Use enum class for NewsType.
2025-02-07 19:36:52 +00:00
Peter Nelson and Peter Nelson
2bb3f368e3
Codechange: Use EnumBitSet for IndustryBehaviours.
2025-02-07 12:30:06 +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
SamuXarick and rubidium42
f5d43ffdf8
Change: [Script] GetWaypointID to return the StationID of any waypoint
...
Modified ScriptWaypoint::GetWaypointID to also return the StationID of any waypoint (including road waypoint).
2025-02-03 08:41:59 +01:00
Rubidium and rubidium42
5ffaf6cdb9
Fix: [Script] Wrong return value for failed preconditions Vehicle::CloneVehicle
2025-02-02 18:01:08 +01:00
Peter Nelson and Peter Nelson
6f52a977a8
Codechange: Use EnumBitSet for GRFConfigFlags.
...
This is renamed from `GCF_Flag` didn't match convention.
2025-02-02 10:49:45 +00:00
Peter Nelson and GitHub
59354576d4
Codechange: Use EnumBitSet for LandscapeTypes and remove LandscapeID. ( #13436 )
2025-02-01 23:09:18 +00:00
Peter Nelson and GitHub
c4c5028862
Codechange: Use EnumBitSet for SettingFlags. ( #13429 )
2025-02-01 15:46:51 +00:00
Rubidium and rubidium42
b6bdb97bed
Codechange: [Script] replace some enums with constexpr values of the internal type
2025-02-01 02:38:37 +01:00
Peter Nelson and GitHub
5664b1e2f6
Codechange: Use std::vector for GRFConfig lists. ( #10835 )
...
This replaces the C-style custom managed linked-list and allows use of iterators etc.
2025-01-31 17:09:09 +00:00
Peter Nelson and Peter Nelson
f51627c76f
Codechange: Use EnumBitSet for DepotCommand(Flag)s.
2025-01-29 21:46:39 +00:00
Peter Nelson and Peter Nelson
5ef495da78
Codechange: Use EnumBitSet for GroupFlags.
2025-01-29 21:46:39 +00:00
Rubidium and rubidium42
4099acb946
Codechange: replace BSWAP32/BSWAP16 with std::byteswap
2025-01-28 19:22:12 +01:00
Rubidium and rubidium42
37a2d97c64
Doc: [Script] some IDs were not mentioned in script_types.hpp
2025-01-28 18:57:40 +01:00
Rubidium and rubidium42
1543b909dd
Codechange: use 'using' over 'typedef'
2025-01-28 18:57:40 +01:00
Rubidium and rubidium42
9a21ca31f8
Codechange: [Script] do not redefine types in the script API
...
Also move includes to the locations where they are actually used
2025-01-28 18:57:40 +01:00
Rubidium and rubidium42
45444f9666
Codechange: rename DECLARE_POSTFIX_INCREMENT to DECLARE_INCREMENT_DECREMENT_OPERATORS
2025-01-28 18:56:58 +01:00
Rubidium and rubidium42
d1e001f1c8
Codechange: make script and internal NEW_STATION have the same value
2025-01-28 18:17:05 +01:00
Rubidium and rubidium42
e894a5880c
Codechange: rename CargoID to CargoType and amend related variables/comments
2025-01-26 18:07:10 +01:00
Rubidium and rubidium42
b1ab1b9f06
Change: [Script] rename BridgeID to BridgeType in the script API
2025-01-22 22:23:38 +01:00
Peter Nelson and GitHub
5f0e4cd646
Codechange: Make RoadStopType an enum class. ( #13340 )
2025-01-19 21:43:17 +00:00
Peter Nelson and GitHub
4397aa3909
Codechange: Make StationType an enum class. ( #13339 )
2025-01-19 20:53:08 +00:00
Rubidium and rubidium42
b71a5158cf
Codechange: use INVALID_VEHICLE where that's more appropriate than e.g. vehicle 0
2025-01-19 17:10:21 +01:00
Rubidium and rubidium42
0aa9faf187
Codechange: use INVALID_TOWN instead of 0 to denote 'not applicable'
2025-01-19 16:54:42 +01:00
Peter Nelson and GitHub
95f8fc983b
Codechange: Make GroupFlags an enum class. ( #13312 )
...
GF_END is 'reserved' in some Windows APIs. Instead of working around it, make GroupFlags an enum class.
2025-01-14 11:33:26 +00:00
Rubidium and rubidium42
29129e12fd
Add: [Script] Event for when a company's president name changes
2025-01-14 11:35:35 +01:00
Björn Wärmedal and GitHub
9ab936f76b
Add: [Script] ScriptEventCompanyRename ( #12878 )
2025-01-14 09:24:28 +00:00
Loïc Guilloux and GitHub
46f181c8a6
Fix #13299 : Merge IT_INVALID and INVALID_INDUSTRYTYPE ( #13300 )
...
* Fix #13299 : Merge IT_INVALID and INVALID_INDUSTRYTYPE
* Codefix: Use NUM_INDUSTRYTILES where it's intended
2025-01-10 01:17:11 +01:00
Peter Nelson and GitHub
b653f875b0
Codechange: Space between template and < ( #13278 )
...
Make it all consistent so it matches CODINGSTYLE.
2025-01-04 17:56:14 +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
fd7a883cbd
Codechange: make the StringIndex (within a StringTab) a strong type
2025-01-02 21:19:00 +01:00
Rubidium and rubidium42
c0df898ac5
Codechange: do not implicitly convert during assignment to StrongType
2025-01-01 21:32:51 +01:00
Rubidium and rubidium42
3956ed086a
Codechange: use Date/Year constructor explicitly
2025-01-01 16:25:32 +01:00