Commit Graph

1862 Commits

Author SHA1 Message Date
Rubidium
10e35ca8e4 Codechange: let NewGRF make use of SpriteFile instead of most of the FIO slot functions 2021-05-08 12:39:34 +02:00
Rubidium
fdc11a9f94 Codechange: introduce SpriteFile to be used by the sprite loader instead of the global FIO slot functionality 2021-05-08 12:39:34 +02:00
Rubidium
c097bc9d7d Codechange: let NewGRF sounds make use of RandomAccessFile instead of the FIO slot functions 2021-05-08 12:39:34 +02:00
Peter Nelson
01d40812fa Codechange: Validate custom station platform layout tiles are permitted values only.
(cherry picked from commit 756034fa27)
2021-05-06 21:10:33 +01:00
Peter Nelson
da571d6481 Codechange: Use std::vector for NewGRF station tile sprite layouts.
(cherry picked from commit a3e49178d1)
2021-05-06 21:10:33 +01:00
Peter Nelson
72bc8c7595 Codechange: Use std::vector for NewGRF station platform layouts.
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.

(cherry picked from commit bd1a20f6ee)
2021-05-06 21:10:31 +01:00
Peter Nelson
0b4d45af93 Codechange: Warn if randomaction2 group count is not a power of 2.
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.

(cherry picked from commit 18fb1c3866)
2021-05-06 20:52:00 +01:00
Peter Nelson
f5722a999e Cleanup: Use std::vector in RandomSpriteGroup.
(cherry picked from commit 913d8a7f28)
2021-05-06 20:25:59 +01:00
Peter Nelson
a69a1d19a9 Cleanup: Use std::vector in DeterministicSpriteGroup.
(cherry picked from commit 1aeaf39954)
2021-05-06 20:21:57 +01:00
Peter Nelson
d3b9d19c5a Cleanup: Use std::vector in RealSpriteGroup.
(cherry picked from commit f785a70a2b)
2021-05-06 20:21:57 +01:00
glx22
050b95e351 Codechange: Replace FOR_ALL_CARGOSPECS with range-based for loops
(cherry picked from commit 9a8756d7ed)
2021-05-06 19:35:57 +01:00
Peter Nelson
756034fa27 Codechange: Validate custom station platform layout tiles are permitted values only. 2021-05-02 17:15:27 +01:00
Peter Nelson
a3e49178d1 Codechange: Use std::vector for NewGRF station tile sprite layouts. 2021-05-02 17:15:27 +01:00
Peter Nelson
bd1a20f6ee Codechange: Use std::vector for NewGRF station platform layouts.
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-02 17:15:27 +01:00
Peter Nelson
18fb1c3866 Codechange: Warn if randomaction2 group count is not a power of 2.
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-02 09:41:01 +01:00
Peter Nelson
913d8a7f28 Cleanup: Use std::vector in RandomSpriteGroup. 2021-05-02 09:41:01 +01:00
Peter Nelson
1aeaf39954 Cleanup: Use std::vector in DeterministicSpriteGroup. 2021-05-02 09:41:01 +01:00
Peter Nelson
f785a70a2b Cleanup: Use std::vector in RealSpriteGroup. 2021-05-02 09:41:01 +01:00
glx22
9a8756d7ed Codechange: Replace FOR_ALL_CARGOSPECS with range-based for loops 2021-04-29 21:08:24 +02:00
Jonathan G Rennison
6a62b94263 Add NewGRF railtype flag to disable realistic braking for vehs of that type
See: #242
2021-04-15 20:56:45 +01:00
Jonathan G Rennison
f39b6f4ba3 Merge branch 'master' into jgrpp
# Conflicts:
#	src/cheat_gui.cpp
#	src/genworld_gui.cpp
#	src/landscape.cpp
#	src/lang/english.txt
#	src/saveload/afterload.cpp
#	src/screenshot.cpp
#	src/settings_gui.cpp
#	src/settings_internal.h
#	src/settings_type.h
#	src/table/settings.ini
#	src/tile_type.h
#	src/widgets/genworld_widget.h
2021-04-10 18:29:36 +01:00
Jonathan G Rennison
83ac5aa27a Fix: Memory leak of airport tile layout in AirportChangeInfo (prop 0A) (#8928) 2021-04-02 10:13:53 +02:00
Jonathan G Rennison
7ae5e5b89f Fix memory leak of airport tile layout in AirportChangeInfo 2021-04-02 00:23:15 +01:00
Patric Stout
1a1049bc0d Change: rename setting "max_heightlevel" to "map_height_limit"
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-03-26 12:22:32 +01:00
Jonathan G Rennison
2e20da40ed Cache current value of snow line height 2021-02-21 22:34:22 +00:00
Jonathan G Rennison
1c1d272b57 Merge branch 'master' into jgrpp 2021-02-21 19:51:00 +00:00
Charles Pigott
8157af6d68 Fix #8276: Crash when a NewGRF object's size was not set 2021-02-21 18:16:09 +00:00
Jonathan G Rennison
b7ddd486cf Merge branch 'master' into jgrpp
# Conflicts:
#	cmake/CompileFlags.cmake
#	src/aircraft_cmd.cpp
#	src/blitter/32bpp_anim.cpp
#	src/cargopacket.cpp
#	src/cheat_gui.cpp
#	src/company_cmd.cpp
#	src/company_gui.cpp
#	src/core/pool_func.hpp
#	src/date.cpp
#	src/economy.cpp
#	src/error_gui.cpp
#	src/ground_vehicle.cpp
#	src/ground_vehicle.hpp
#	src/group_gui.cpp
#	src/industry_cmd.cpp
#	src/lang/dutch.txt
#	src/lang/french.txt
#	src/lang/german.txt
#	src/linkgraph/linkgraph_gui.cpp
#	src/linkgraph/mcf.cpp
#	src/network/network_content.cpp
#	src/network/network_server.cpp
#	src/network/network_udp.cpp
#	src/newgrf_engine.cpp
#	src/newgrf_station.cpp
#	src/order_cmd.cpp
#	src/order_gui.cpp
#	src/pathfinder/follow_track.hpp
#	src/pathfinder/yapf/yapf_common.hpp
#	src/saveload/saveload.cpp
#	src/settings_gui.cpp
#	src/station_cmd.cpp
#	src/station_kdtree.h
#	src/string_func.h
#	src/table/settings.ini
#	src/tgp.cpp
#	src/timetable_cmd.cpp
#	src/timetable_gui.cpp
#	src/toolbar_gui.cpp
#	src/town_cmd.cpp
#	src/train_cmd.cpp
#	src/train_gui.cpp
#	src/tree_gui.cpp
#	src/tunnelbridge_cmd.cpp
#	src/vehicle.cpp
#	src/vehicle_gui.cpp
#	src/video/sdl2_v.cpp
#	src/video/sdl_v.cpp
#	src/video/win32_v.cpp
#	src/viewport.cpp
#	src/viewport_sprite_sorter_sse4.cpp
#	src/window.cpp
2021-02-01 17:07:34 +00:00
Jonathan G Rennison
6c3e5642f8 Merge branch 'master' into jgrpp
# Conflicts:
#	cmake/CompileFlags.cmake
#	src/crashlog.cpp
#	src/fileio.cpp
#	src/fileio_func.h
#	src/fios_gui.cpp
#	src/ini_load.cpp
#	src/ini_type.h
#	src/lang/english.txt
#	src/lang/german.txt
#	src/lang/korean.txt
#	src/network/network_client.cpp
#	src/order_base.h
#	src/order_cmd.cpp
#	src/os/windows/win32.cpp
#	src/road_cmd.cpp
#	src/saveload/saveload.cpp
#	src/saveload/saveload.h
#	src/settings.cpp
#	src/station_cmd.cpp
#	src/stdafx.h
#	src/table/settings.ini
#	src/tree_cmd.cpp
#	src/tree_gui.cpp
#	src/vehicle_base.h
#	src/video/cocoa/cocoa_v.mm
#	src/video/cocoa/event.mm
#	src/video/cocoa/wnd_quartz.mm
#	src/viewport.cpp
#	src/widgets/tree_widget.h
2021-01-31 01:08:35 +00:00
Jonathan G Rennison
43980639de Merge branch 'master' into jgrpp
# Conflicts:
#	.gitignore
#	CMakeLists.txt
#	src/3rdparty/optional/optional.hpp
#	src/group_cmd.cpp
#	src/industry_cmd.cpp
#	src/misc_gui.cpp
#	src/video/sdl2_v.cpp
2021-01-29 17:45:15 +00:00
Charles Pigott
9b800a96ed Codechange: Remove min/max functions in favour of STL variants (#8502) 2021-01-08 11:16:18 +01:00
frosch
e94656b5a5 Fix: [NewGRF] Action 7/9 conditions 0x0F to 0x12 failed, if 'param' was 0x88. (#8382)
Fix: [NewGRF] Action 7/9 conditions 0x0B to 0x12 failed, if 'param' was 0x85.
These conditions are supposed to ignore 'param' entirely.

(cherry picked from commit d5f05fb781)
2020-12-27 20:36:31 +00:00
Charles Pigott
860c270c73 Codechange: Replace assert_compile macro with static_assert 2020-12-27 10:55:42 +00:00
Michael Lutz
1478fa93b3 Add: [NewGRF] Patch flag to test if inflation is on or off. 2020-12-27 10:28:39 +00:00
frosch
d5f05fb781 Fix: [NewGRF] Action 7/9 conditions 0x0F to 0x12 failed, if 'param' was 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-15 22:42:03 +01:00
Michael Lutz
79240eab1e Codechange: Make use of the improved C++17 emplace_back function. 2020-12-15 00:29:30 +01:00
Jonathan G Rennison
e51c585f45 GRF: Fix rail/road type reservation phase with extended properties 2020-10-19 17:41:59 +01:00
Jonathan G Rennison
75a964acb0 GRF: Add extra road/tram type flag: not available to AI/GS 2020-10-16 22:12:10 +01:00
Jonathan G Rennison
14adcbac80 Add NewGRF bridge property to prevent town or AI/GS building bridge type 2020-10-14 20:38:34 +01:00
Jonathan G Rennison
b6f583a799 GRF: Add railtype custom signal sprite restricted flag, and control flag 2020-09-26 11:53:44 +01:00
Jonathan G Rennison
d32672a325 GRF: Allow railtype custom signal sprites for programmable pre-signals 2020-09-26 11:26:33 +01:00
Jonathan G Rennison
810bfd276e Add several NewGRF variables to vehicle image callback whitelist
Add vehicle flags to control cached image invalidation

Various refactorings
2020-08-25 01:26:44 +01:00
Jonathan G Rennison
53f9fa139d Remove redundant year/month date globals 2020-07-07 17:53:54 +01:00
Jonathan G Rennison
43c538fa7d Merge branch 'master' into jgrpp
# Conflicts:
#	src/town_cmd.cpp
2020-06-05 17:07:58 +01:00
Yexo
1507902d00 Codechange: remove has_newindustries global 2020-06-01 22:46:06 +02:00
Yexo
a82572d0f5 Codechange: remove has_newhouses global 2020-06-01 22:46:06 +02:00
Jonathan G Rennison
677940cfc6 Merge branch 'master' into jgrpp 2020-06-01 20:39:46 +01:00
Yexo
f827bc8c1a Fix #8166: don't crash on loading an invalid roadtype newgrf
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-06-01 12:44:02 +02:00
Jonathan G Rennison
f8d6e781ba Merge branch 'master' into jgrpp
# Conflicts:
#	projects/openttd_vs140.vcxproj.filters
#	projects/openttd_vs141.vcxproj.filters
#	projects/openttd_vs142.vcxproj.filters
#	src/base_consist.h
#	src/company_base.h
#	src/newgrf_config.cpp
#	src/newgrf_config.h
#	src/openttd.cpp
#	src/saveload/saveload.cpp
#	src/saveload/saveload.h
#	src/saveload/station_sl.cpp
#	src/settings.cpp
#	src/signs_base.h
#	src/string.cpp
#	src/string_func.h
#	src/table/misc_settings.ini
#	src/table/settings.h.preamble
#	src/town_cmd.cpp
#	src/vehicle.cpp
#	src/vehicle_cmd.cpp
#	src/video/cocoa/cocoa_v.mm
#	src/video/null_v.cpp
2020-05-21 22:24:01 +01:00
Michael Lutz
9c2e47d03c Codechange: Use std::string for storing GRF error messages. 2020-05-21 20:02:34 +02:00