summaryrefslogtreecommitdiff
path: root/src/newgrf.cpp
AgeCommit message (Collapse)Author
2021-11-06Fix 65cbde4b: Writing to uninitialized string when loading a currency NewGRF.Michael Lutz
2021-09-19Fix #9562: Handle case of invalid action2 with zero results. (#9564)PeterN
2021-09-11Codechange: Object non-zero dimension check was not logically correctCharles Pigott
2021-08-15Feature: [NewGRF] Maximum curve speed modifier for rail vehicles (#9346)Vít Šefl
2021-07-11Remove: includes to network/core/config.h from headers when only three cpp ↵Rubidium
files need it
2021-07-11Fix a4987233: NewGRFs could no longer be loaded from the NewGRF folder.Patric Stout
This statement was removed by accident, as it felt it could be removed. But it is used to know if the NewGRF is from the baseset folder or from the NewGRF folder.
2021-07-11Remove: arbitrary limit on number of statically loaded NewGRFs (#9431)rubidium42
2021-07-09Codechange: Remove FOR_EACH_SET_CARGO_IDglx22
2021-07-09Codechange: Remove FOR_EACH_SET_BITglx22
2021-06-13Codechange: convert printf DEBUG statements to fmt Debug statementsrubidium42
2021-06-12Change: Skip creating a RealSpriteGroup when there is only one result.Peter Nelson
This avoids checking RSG for empty sets every time they are evaluated. This might alter behaviour in cases of a malformed NewGRF file.
2021-05-29Codechange: rename str_validate to StrMakeValid(InPlace) (#9304)Patric Stout
This to be more explicit the function changes the value, and not returns yes/no.
2021-05-15Codechange: Use std::string GetString where convenientrubidium42
2021-05-15Change: Use gender-neutral pronounsrubidium42
2021-05-15Codechange: comparison result is always the same due to earlier checkRubidium
Practically the length of the handlers not being equal to the number of features is the problem as it means something was forgotten when adding a new feature, so static assert to that and let the existing check on the feature number take care of invalid data from the NewGRFs.
2021-05-13Feature: Define refittability of default vehicles using cargo classes.frosch
This ensures that default vehicles can transport any NewGRF defined cargos, albeit with weird graphics and vehicle names. This also changes the refittability of default vehicles with default industries.
2021-05-13Fix: Resolve cargo-types of default vehicles via their cargo label.frosch
Default vehicles now behave as if they had a cargo translation table. This fixes default vehicles carrying seemingly random cargos, if NewGRF industry sets are present. This behavior is disabled, when a NewGRF touches any of the cargo-type or refitting properties. In that case it's up to the NewGRF to define its own cargo translation table.
2021-05-13Codechange: move currency settings to std::stringrubidium42
2021-05-10Fix: memory leak due to assigning result of strdup to a std::stringRubidium
2021-05-08Codechange: let NewGRF make use of SpriteFile instead of most of the FIO ↵Rubidium
slot functions
2021-05-08Codechange: introduce SpriteFile to be used by the sprite loader instead of ↵Rubidium
the global FIO slot functionality
2021-05-08Codechange: let NewGRF sounds make use of RandomAccessFile instead of the ↵Rubidium
FIO slot functions
2021-05-02Codechange: Validate custom station platform layout tiles are permitted ↵Peter Nelson
values only.
2021-05-02Codechange: Use std::vector for NewGRF station tile sprite layouts.Peter Nelson
2021-05-02Codechange: Use std::vector for NewGRF station platform layouts.Peter Nelson
This avoids the need to custom memory management and additional members. This also resolves use-after-free if modifying copied layouts, so presumably nobody has ever done that.
2021-05-02Codechange: Warn if randomaction2 group count is not a power of 2.Peter Nelson
Previously noted by a comment, this does not need to be guarded against as non-powers of 2 will not cause issues beyond the choice of results being reduced.
2021-05-02Cleanup: Use std::vector in RandomSpriteGroup.Peter Nelson
2021-05-02Cleanup: Use std::vector in DeterministicSpriteGroup.Peter Nelson
2021-05-02Cleanup: Use std::vector in RealSpriteGroup.Peter Nelson
2021-04-29Codechange: Replace FOR_ALL_CARGOSPECS with range-based for loopsglx22
2021-04-02Fix: Memory leak of airport tile layout in AirportChangeInfo (prop 0A) (#8928)Jonathan G Rennison
2021-03-26Change: rename setting "max_heightlevel" to "map_height_limit"Patric Stout
This better reflects what it is, and hopefully removes a bit of the confusion people are having what this setting actually does. Additionally, update the text on the setting to better inform users what it is doing exactly, so they can make an educated decision on how to change it. Next commit will introduce an "auto" value, which should be the new default. The rename has as added benefit that everyone will start out on the "auto" value.
2021-02-21Fix #8276: Crash when a NewGRF object's size was not setCharles Pigott
2021-01-08Codechange: Remove min/max functions in favour of STL variants (#8502)Charles Pigott
2020-12-27Codechange: Replace assert_compile macro with static_assertCharles Pigott
2020-12-27Add: [NewGRF] Patch flag to test if inflation is on or off.Michael Lutz
2020-12-15Fix: [NewGRF] Action 7/9 conditions 0x0F to 0x12 failed, if 'param' was ↵frosch
0x88. (#8382) Fix: [NewGRF] Action 7/9 conditions 0x0B to 0x12 failed, if 'param' was 0x85. These conditions are supposed to ignore 'param' entirely.
2020-12-15Codechange: Make use of the improved C++17 emplace_back function.Michael Lutz
2020-06-01Codechange: remove has_newindustries globalYexo
2020-06-01Codechange: remove has_newhouses globalYexo
2020-06-01Fix #8166: don't crash on loading an invalid roadtype newgrfYexo
Initialization code for GRFFile::roadtype_map was copied from railtype_map. But while RailType is a byte-sized enum and could thus be initialized via memset, RoadType doesn't have a defined size.
2020-05-21Codechange: Use std::string for storing GRF error messages.Michael Lutz
2020-05-21Codechange: Use std::string when translating TTDP NewGRF string codes.Michael Lutz
2020-05-21Codechange: Replace custom linked list for GRF texts with STL vectors and ↵Michael Lutz
strings.
2020-05-21Codechange: Replace SmallPair with std::pair.Michael Lutz
std::pair is already the smallest possible pair, and it already handles non-POD types correctly.
2020-01-26Feature: NewGRF callback profiling (#7868)Niels Martin Hansen
Adds a console command newgrf_profile to collect some profiling data about NewGRF action 2 callbacks and produce a CSV file.
2019-12-23Fix: Action7/9 conditions 0F..12 reported roadtypes as valid tramtypes and ↵frosch
vice versa.
2019-12-23Cleanup: Properties 12 and 15 do not exist for road/tramtypes.frosch
2019-12-21Codechange: Replace FOR_ALL_ENGINES with range-based for loopsglx
2019-11-23Fix #7836: Check coherency of NewGRF parameter min/max (#7840)glx22