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
merni-ns
55a7c59d13
Remove: NPF and pathfinder change settings
2024-05-10 10:38:44 +02:00
Peter Nelson
9008d793ab
Change: Use per-company group numbers. ( #12297 )
...
This is used by the default group name, replacing the use of group index.
2024-05-07 19:01:28 +00:00
Rubidium
66354ab9eb
Codechange: introduce allow list infrastructure for companies
2024-05-07 00:03:15 +02:00
Rubidium
1250ce8fdc
Codechange: support storing std::string vectors/deques in the savegame
2024-05-07 00:03:15 +02:00
Peter Nelson
115ac2629b
Cleanup: Remove TileMatrix that hasn't been used for 4+ years. ( #12621 )
...
This 'nice' structure was left around from #8258 just in case it might be used again.
Spoiler alert: it hasn't.
This removes manual memory management. And otherwise unused and untested code.
2024-05-04 09:41:58 +01:00
Jonathan G Rennison
11ec156b64
Codechange: Add a priority field to TimerGameTick::TPeriod
...
Use this as the primary sort key for TimerGameTick::TPeriod,
to avoid container sort order changes on timer period saveload.
See: #12509
2024-04-25 20:08:24 +02:00
Peter Nelson
26bb87ebf1
Codechange: Replace SaveLoad var length arrays with switch block and sizeof. ( #12570 )
...
SlCalcConvMemLen(), SlCalcConfFileLen() and CalcOldVarLen() follow a pattern of looking up part of a value in an array.
These function returns the size of bytes of a variable type, but is not very clear. Replace with a switch block instead.
Removes lengthof, array indices, and magic numbers.
2024-04-24 21:33:29 +01:00
Peter Nelson
1dc94d0670
Codechange: Construct string_view with first+last. ( #12568 )
...
Avoids needing to calculate size when we already have last.
2024-04-24 21:29:33 +01:00
Peter Nelson
959ced71bb
Codechange: Add constants for original input/output cargo counts. ( #12548 )
...
This replaces some magic 3s and 2s.
2024-04-20 20:50:48 +01:00
Rubidium
fc7f184dbd
Codechange: move knowledge about 'packed' orders to the saveload code
2024-04-20 11:58:07 +02:00
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
57d7359b1a
Codechange: Remove old group liveries savegame conversion. ( #12537 )
...
Conversion to set default group livery is in the wrong place (not in `AfterLoadGame()`), however it is not necessary any more as `AfterLoadGame()` always calls the function `UpdateCompanyLiveries()` which will do the same thing.
2024-04-20 10:25:04 +01:00
Peter Nelson
699c7e4c9d
Fix 3de8853e29: Industries accept/produce no cargo for pre-SLV_78 saves. ( #12508 )
...
Industry accepted/produced was trimmed too early for original and pre-SLV_78 saves, as cargo type was not stored per slot so all slots look invalid to the trim function.
2024-04-20 10:24:35 +01:00
Peter Nelson
a28ab8cac2
Codechange: Replace C-style casts to size_t with static_cast. ( #12455 )
...
* Codechange: Replace C-style casts to size_t with static_cast.
This touches only simple value-type casts.
* Codechange: Replace static_cast<size_t>(-1) with SIZE_MAX
Co-authored-by: Rubidium <rubidium@openttd.org>
2024-04-19 20:34:36 +01:00
Peter Nelson
3b75d8bbf8
Fix: Use modern comparisons instead of memcmp in cache check.
...
This uses C++20 default operator<=> to provide comparisons of some objects.
This works properly with caches that containers.
2024-04-18 22:13:55 +01:00
Peter Nelson
45886e50b2
Codechange: Unify where rail station tile flags are set. ( #12531 )
...
This avoids repeating the logic in three places.
2024-04-18 18:54:10 +01:00
Rubidium
4f2412a272
Codechange: range based for loops instead of C-style for loops
2024-04-11 07:05:04 +02:00
Rubidium
df8eeb1b10
Codechange: use C++ algorithms to determine the SaveLoadFormat
2024-04-09 23:36:39 +02:00
Rubidium
4e6d4fcf32
Codechange: replace for loops with endof with range-based for loops
2024-04-08 07:00:55 +02:00
Peter Nelson
9854553e10
Codechange: ZOOM_LVL_SHIFT/BASE are not actually ZOOM_LVLs.
...
Rename to ZOOM_BASE_SHIFT and ZOOM_BASE respectively, and derive from ZOOM_LVL instead of numeric value.
2024-04-04 22:27:03 +01:00
Peter Nelson
3de8853e29
Codechange: Store accepted and produced cargo in vector instead of array.
...
Most industries do not use the full 16 slots, so this can save a little memory and iteration time.
2024-04-01 21:35:20 +01:00
Peter Nelson
00e0021e3a
Codechange: Don't assume accepted/produced slot exists.
2024-04-01 21:35:20 +01:00
Peter Nelson
295508fc53
Codechange: Avoid lengthof() on std::array.
2024-04-01 21:35:20 +01:00
Peter Nelson
f79ec7955a
Codechange: Explicitly reset old industry data before loading games.
2024-04-01 21:35:20 +01:00
Peter Nelson
bd2a92331b
Codechange: Use inline and std::array for old industry structures.
...
This avoids separate declaration/definition, and less C-style arrays.
2024-04-01 21:35:20 +01:00
merni-ns
6f36f3d714
Fix #11055 : Make saveload failure error messages consistent with others ( #12247 )
...
The save/load error messages were combined using string parameters, rather than using the built-in functionality of error dialogs.
2024-04-01 17:57:03 +01:00
Peter Nelson
df2ee7b06c
Cleanup: Remove old SaveLoad workarounds for MS VS 2017. ( #12355 )
2024-03-23 00:12:35 +00:00
Patric Stout
a3cfd23cf9
Codechange: rename byte to uint8_t ( #12308 )
2024-03-16 23:59:32 +01:00
Patric Stout
3e625b5b1a
Add: track savegame size to report with survey ( #12304 )
2024-03-16 08:58:56 +01:00
Rubidium
27eadc13ec
Codechange: rename TILE_ADD(XY) to TileAdd(XY)
2024-03-10 15:50:24 +01:00
Rubidium
bab5a8a787
Codechange: use std::source_location over __FILE__ and __LINE__ for Backup
2024-03-10 10:14:20 +01:00
Tyler Trahan
32b0fb9f6e
Fix #12010 : Use economy timer for vehicle stats minimum age, not calendar ( #12142 )
2024-03-09 09:38:52 -05:00
Loïc Guilloux
845b894fd8
Remove: [Script] random_deviation from setting description table ( #12221 )
2024-03-05 12:41:04 +01:00
Peter Nelson
8172e25273
Codechange: Use range-for when iterating station speclists. ( #12212 )
...
This replaces indexed access.
2024-03-03 16:41:02 +00:00
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
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
Patric Stout
8f22066b9a
Fix #12147 : reset all saved settings to their default before loading a game ( #12210 )
2024-03-02 16:05:43 +01:00
Peter Nelson
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
Loïc Guilloux
fad77261ea
Fix f6dd505: Missing savegame conversion for current_order ( #12188 )
2024-02-27 21:25:49 +01:00
Peter Nelson
56cf89d189
Change: Use bitmap for free unit ID generation. ( #12165 )
...
This improves performance of finding the next free unit number for a vehicle.
Based loosely on pool's used slot bitmap.
2024-02-25 12:36:13 +00:00
Rubidium
4c117dd2d8
Revert #11993 : new number format system does not and cannot work for CJK languages
...
There are too many intricacies that I am unaware of that are popping up after
asking whether things are right or not.
I do not want to keep playing whack-a-mole, so just revert the whole thing.
This reverts:
15be383b93
360fe8b0b6
1aa9a5c0ab
59f56941e5
7e2eefb91f
b741b2ba6f
609d0071d5
9f8fd80112
a253205b93
819c6c756e
2024-02-22 20:40:12 +01:00
Rubidium
a4d4301a0c
Codechange: We are heading to 15
2024-02-18 21:48:54 +01:00
Rubidium
609d0071d5
Change: Remove saving of digit group and decimal separator configurations from the savegame
2024-02-17 14:33:16 +01:00
Rubidium
e67fc33172
Codechange: Add support for NULL strings in SaveLoadCompat
2024-02-17 14:33:16 +01:00
Jonathan G Rennison
5ab5f4ace7
Codefix df691eb3: Reloading GRFs destructed small UFO targeting road vehicle ( #12072 )
2024-02-12 00:51:18 +00:00
Loïc Guilloux
3ffa176870
Change: [Script] Store randomizers in savegame ( #12063 )
2024-02-12 01:22:57 +01:00
Peter Nelson
df691eb31e
Codechange: Don't scan vehicle pool to find targeting disaster vehicle when deleting any vehicle. ( #12064 )
...
* Codechange: Don't scan vehicle pool to find targeting disaster vehicle when deleting any vehicle.
When deleting a vehicle, the vehicle pool is scanned to find a targetting disaster vehicle. With lots of vehicles this can take some time, especially when deleting multiple consecutive vehicles.
Disasters vehicles can actually only target road vehicles. Store the DisasterVehicle index in the road vehicle, so that no pool scan is necessary.
* Change: Small UFOs no longer target a vehicle which is already a target.
2024-02-11 23:04:29 +00:00
Loïc Guilloux
977aba73be
Change: Store running AI config inside Company ( #12003 )
2024-02-09 22:55:49 +01:00
Jonathan G Rennison
bed3ef6f6b
Cleanup: Incorrect savegame number for SLV_DEPOT_UNBUNCHING constant ( #12045 )
2024-02-09 17:50:29 +00:00