Commit Graph

1612 Commits (92fc0f364b86cce92f2675ad2de8f5b6567313c8)

Author SHA1 Message Date
PeterN f5561ac212 Fix #9562: Handle case of invalid action2 with zero results. (#9564)
(cherry picked from commit 7e70ead396)
3 years ago
Jonathan G Rennison 5d351a14d2 Add new signal type: no-entry signal
This is only passable in one direction, but does not have a signal
or show an aspect in the opposite direction

Add a setting for whether this is shown in the signal UI.
Off by default.
3 years ago
Jonathan G Rennison b2ef6c0de8 Add implementation of multi-aspect signalling and GRF support
Requires realistic braking

See: #247
3 years ago
Jonathan G Rennison f1fde8c684 Enable recolouring of custom signal graphics (global and per-railtype) 3 years ago
Jonathan G Rennison 322a046f49 NewGRF: Allow using Action 2/3 for custom signal sprites
This is mostly the same format as the railtype custom signal mechanism
3 years ago
Jonathan G Rennison 4174fe727c Add NewGRF feature: Extra station name strings
These are used when all the default names have been used up,
instead of "Town Station #NNN".
3 years ago
Jonathan G Rennison 054c820521 Implement custom sprite detection with new sprite mechanism 3 years ago
Rubidium e227bbaff0 Cleanup: remove the old FIO slot functions
(cherry picked from commit fa6abe1646)
3 years ago
Rubidium eecf7c8525 Codechange: let NewGRF make use of SpriteFile instead of most of the FIO slot functions
(cherry picked from commit 10e35ca8e4)
3 years ago
Rubidium 6bd12e24d7 Codechange: introduce SpriteFile to be used by the sprite loader instead of the global FIO slot functionality
(cherry picked from commit fdc11a9f94)
3 years ago
Rubidium 525f6adcd0 Codechange: let NewGRF sounds make use of RandomAccessFile instead of the FIO slot functions
(cherry picked from commit c097bc9d7d)
3 years ago
Rubidium 7c4d803265 Fix: memory leak due to assigning result of strdup to a std::string
(cherry picked from commit 296194ad36)
3 years ago
Peter Nelson 01d40812fa Codechange: Validate custom station platform layout tiles are permitted values only.
(cherry picked from commit 756034fa27)
3 years ago
Peter Nelson da571d6481 Codechange: Use std::vector for NewGRF station tile sprite layouts.
(cherry picked from commit a3e49178d1)
3 years ago
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)
3 years ago
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)
3 years ago
Peter Nelson f5722a999e Cleanup: Use std::vector in RandomSpriteGroup.
(cherry picked from commit 913d8a7f28)
3 years ago
Peter Nelson a69a1d19a9 Cleanup: Use std::vector in DeterministicSpriteGroup.
(cherry picked from commit 1aeaf39954)
3 years ago
Peter Nelson d3b9d19c5a Cleanup: Use std::vector in RealSpriteGroup.
(cherry picked from commit f785a70a2b)
3 years ago
glx22 050b95e351 Codechange: Replace FOR_ALL_CARGOSPECS with range-based for loops
(cherry picked from commit 9a8756d7ed)
3 years ago
Jonathan G Rennison 6a62b94263 Add NewGRF railtype flag to disable realistic braking for vehs of that type
See: #242
3 years ago
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
4 years ago
Jonathan G Rennison 7ae5e5b89f Fix memory leak of airport tile layout in AirportChangeInfo 4 years ago
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.
4 years ago
Jonathan G Rennison 2e20da40ed Cache current value of snow line height 4 years ago
Jonathan G Rennison 1c1d272b57 Merge branch 'master' into jgrpp 4 years ago
Charles Pigott 8157af6d68 Fix #8276: Crash when a NewGRF object's size was not set 4 years ago
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
4 years ago
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
4 years ago
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
4 years ago
Charles Pigott 9b800a96ed
Codechange: Remove min/max functions in favour of STL variants (#8502) 4 years ago
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)
4 years ago
Charles Pigott 860c270c73 Codechange: Replace assert_compile macro with static_assert 4 years ago
Michael Lutz 1478fa93b3 Add: [NewGRF] Patch flag to test if inflation is on or off. 4 years ago
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.
4 years ago
Michael Lutz 79240eab1e Codechange: Make use of the improved C++17 emplace_back function. 4 years ago
Jonathan G Rennison e51c585f45 GRF: Fix rail/road type reservation phase with extended properties 4 years ago
Jonathan G Rennison 75a964acb0 GRF: Add extra road/tram type flag: not available to AI/GS 4 years ago
Jonathan G Rennison 14adcbac80 Add NewGRF bridge property to prevent town or AI/GS building bridge type 4 years ago
Jonathan G Rennison b6f583a799 GRF: Add railtype custom signal sprite restricted flag, and control flag 4 years ago
Jonathan G Rennison d32672a325 GRF: Allow railtype custom signal sprites for programmable pre-signals 4 years ago
Jonathan G Rennison 810bfd276e Add several NewGRF variables to vehicle image callback whitelist
Add vehicle flags to control cached image invalidation

Various refactorings
4 years ago
Jonathan G Rennison 53f9fa139d Remove redundant year/month date globals 4 years ago
Jonathan G Rennison 43c538fa7d Merge branch 'master' into jgrpp
# Conflicts:
#	src/town_cmd.cpp
4 years ago
Yexo 1507902d00 Codechange: remove has_newindustries global 4 years ago
Yexo a82572d0f5 Codechange: remove has_newhouses global 4 years ago
Jonathan G Rennison 677940cfc6 Merge branch 'master' into jgrpp 4 years ago
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.
4 years ago
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
4 years ago
Michael Lutz 9c2e47d03c Codechange: Use std::string for storing GRF error messages. 4 years ago