Jonathan G Rennison
ace441d5ea
Fix GrfMsg logging in ChangeGRFFeatureTestName
2024-07-02 19:48:24 +01:00
Peter Nelson
92b6e06ba2
Fix #12832 : Sanitise strings from NewGRF before logging them in Debug output.
...
NewGRF strings may not be UTF-8 encoded, which causes issues on Windows.
(cherry picked from commit b08e465c8d4df48d42fb603c867a7c756ce18a74)
2024-07-02 19:48:24 +01:00
Jonathan G Rennison
eda50ef6a5
Use std::vector for extra station name strings
2024-06-19 20:03:42 +01:00
Jonathan G Rennison
1e0279e72e
Remove std::function from StringIDMapping to reduce size/overhead
2024-06-19 19:53:30 +01:00
Jonathan G Rennison
f9b75ed304
Merge branch 'master' into jgrpp
...
# Conflicts:
# cmake/scripts/FindVersion.cmake
# src/airport_gui.cpp
# src/industry_gui.cpp
# src/newgrf.cpp
# src/newgrf_class_func.h
# src/newgrf_object.h
# src/newgrf_roadstop.cpp
# src/newgrf_roadstop.h
# src/object_gui.cpp
# src/rail_gui.cpp
# src/road_cmd.h
# src/road_gui.cpp
# src/station_cmd.h
# src/strings.cpp
# src/waypoint_cmd.h
2024-06-05 21:13:55 +01:00
Jonathan G Rennison
f09f412c43
Add hash table index to EngineOverrideManager
...
Use for EngineOverrideManager::GetID lookups
2024-05-31 22:57:16 +01:00
Jonathan G Rennison
556722399a
Move EngineOverrideManager to separate header
2024-05-31 22:57:16 +01:00
Jonathan G Rennison
32b8ec34ff
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/autoreplace_gui.cpp
# src/build_vehicle_gui.cpp
# src/cheat_gui.cpp
# src/company_gui.cpp
# src/debug.cpp
# src/engine_gui.h
# src/error_gui.cpp
# src/group_gui.cpp
# src/industry_cmd.cpp
# src/industry_gui.cpp
# src/misc_gui.cpp
# src/network/network_gui.cpp
# src/newgrf.cpp
# src/newgrf_debug_gui.cpp
# src/newgrf_gui.cpp
# src/order_gui.cpp
# src/rail_gui.cpp
# src/road_gui.cpp
# src/saveload/saveload.cpp
# src/screenshot_gui.cpp
# src/sound/win32_s.cpp
# src/statusbar_gui.cpp
# src/strgen/strgen.cpp
# src/table/newgrf_debug_data.h
# src/timetable_gui.cpp
# src/toolbar_gui.cpp
# src/town_gui.cpp
# src/vehicle_gui.cpp
# src/video/sdl2_v.cpp
# src/video/sdl_v.cpp
# src/viewport.cpp
2024-05-31 22:57:16 +01:00
Jonathan G Rennison
1e9fb74451
Merge branch 'master' into jgrpp
...
# Conflicts:
# .github/workflows/release-windows.yml
# src/autoreplace_gui.cpp
# src/cargotype.cpp
# src/company_base.h
# src/company_cmd.cpp
# src/company_gui.cpp
# src/currency.h
# src/date_gui.cpp
# src/dropdown.cpp
# src/dropdown_func.h
# src/dropdown_type.h
# src/game/game_gui.cpp
# src/genworld.cpp
# src/genworld_gui.cpp
# src/ground_vehicle.hpp
# src/group_gui.cpp
# src/house.h
# src/industry_gui.cpp
# src/network/network_client.cpp
# src/network/network_server.cpp
# src/network/network_type.h
# src/newgrf_class_func.h
# src/newgrf_house.cpp
# src/newgrf_roadstop.h
# src/openttd.cpp
# src/order_gui.cpp
# src/saveload/saveload.cpp
# src/saveload/saveload.h
# src/screenshot_gui.cpp
# src/settings_gui.cpp
# src/settings_type.h
# src/slider.cpp
# src/smallmap_gui.cpp
# src/station_cmd.cpp
# src/stdafx.h
# src/survey.cpp
# src/tile_map.h
# src/town_cmd.cpp
# src/town_gui.cpp
# src/vehicle.cpp
# src/vehicle_gui.cpp
# src/vehicle_gui_base.h
2024-05-28 20:33:35 +01:00
Peter Nelson
f62eb72fcb
Fix #12685 : nullptr dereference when checking for equal loaded/loading groups. ( #12686 )
...
Always treat empty groups as non-equal. Given that the case of both being empty is handled earlier, they cannot both be equal and empty.
Additionally if a loaded or loading set are all the same, only add one reference.
(cherry picked from commit 856ec901ca9523812b16e367b49d2baf4a28d26b)
2024-05-19 17:36:12 +01:00
Jonathan G Rennison
18a42664fc
Merge branch 'master' into jgrpp
...
Remove 'byte' typedef
2024-05-07 17:21:50 +01:00
Peter Nelson
96ddabb30c
Codechange: Remove write-only spec_id from RoadStopSpec. ( #12582 )
...
Comment is incorrect about its value too.
(cherry picked from commit 72c55128d2129f824a60a35fb5aa601409af4a3d)
2024-04-29 17:13:11 +01:00
Peter Nelson
052f421327
Change: Use vector/iterators/algorithms instead of C-array/loops for NewGRF classes.
2024-04-09 21:46:59 +01:00
Peter Nelson
34758d0921
Change: Allow string mapping by function instead of pointer.
...
This allows mapping of strings to objects that may be moved between loading stages.
2024-04-09 21:46:59 +01:00
Peter Nelson
2976a46d06
Fix 54be756: Terminating NUL byte was not skipped in ReadString(). ( #12462 )
2024-04-09 15:15:09 +01:00
Peter Nelson
54be756aae
Codechange: Pass NewGRF strings as std::string_view instead of char *. ( #12461 )
2024-04-09 08:40:27 +01:00
Jonathan G Rennison
28e74005d0
Remove various uses of lengthof on std::array
2024-04-08 19:55:58 +01:00
Rubidium
919830db7a
Fix: do not use lengthof() for non C-style arrays
...
(cherry picked from commit c544a2be0a )
2024-04-08 18:36:26 +01:00
Peter Nelson
34ba969c74
Change: Display more useful information in sprite aligner than sprite ID. ( #12439 )
...
Sprite IDs are not useful information given they change don't refer to anything outside the loaded game.
Instead, include the filename and nfo line at minimum, and include action A or action 5 sprite replacement information if applicable.
2024-04-06 21:16:02 +01:00
Rubidium
c544a2be0a
Fix: do not use lengthof() for non C-style arrays
2024-04-06 07:21:31 +02:00
Peter Nelson
e16b982b6a
Codechange: Use iteration when dealing with all HouseSpecs.
2024-03-28 23:23:00 +01:00
Peter Nelson
a1b7ca979b
Fix #12302 : Allow empty train engines to use an invalid cargo type. ( #12325 )
...
The cargo type will be forced to the first available type (usually passengers) instead of the engine being disabled.
(cherry picked from commit 88cf99017a )
2024-03-18 17:58:36 +00:00
Peter Nelson
88cf99017a
Fix #12302 : Allow empty train engines to use an invalid cargo type. ( #12325 )
...
The cargo type will be forced to the first available type (usually passengers) instead of the engine being disabled.
2024-03-17 16:23:14 +00:00
Patric Stout
a3cfd23cf9
Codechange: rename byte to uint8_t ( #12308 )
2024-03-16 23:59:32 +01:00
Jonathan G Rennison
0e76f774eb
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/landscape.cpp
# src/landscape.h
# src/misc_gui.cpp
# src/newgrf_commons.cpp
# src/order_cmd.cpp
# src/pathfinder/yapf/yapf_base.hpp
# src/station_cmd.cpp
# src/tunnelbridge_cmd.cpp
# src/vehicle.cpp
# src/water_cmd.cpp
# src/window.cpp
2024-03-09 21:44:36 +00:00
Peter Nelson
00b442d6f9
Fix: Maximum permitted sound volume from NewGRF is 128. ( #12222 )
2024-03-05 18:31:04 +00:00
Jonathan G Rennison
7e0acd686e
Add NewGRF signal style flag to draw on both sides
2024-02-27 19:18:50 +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
Jonathan G Rennison
a98a56669b
Merge branch 'master' into jgrpp
...
# Conflicts:
# regression/regression/result.txt
# src/autoreplace_cmd.cpp
# src/industry_gui.cpp
# src/landscape.cpp
# src/network/network_content.cpp
# src/newgrf_roadstop.cpp
# src/pathfinder/yapf/yapf_ship.cpp
# src/road_gui.cpp
# src/saveload/ai_sl.cpp
# src/saveload/saveload.h
# src/saveload/vehicle_sl.cpp
# src/station.cpp
# src/station_gui.cpp
# src/video/cocoa/cocoa_ogl.h
# src/video/sdl2_opengl_v.h
# src/video/video_driver.hpp
# src/video/win32_v.h
# src/widget_type.h
# src/widgets/dropdown.cpp
# src/widgets/dropdown_type.h
# src/window.cpp
2024-02-19 23:11:00 +00:00
Jonathan G Rennison
75dd135e8d
Merge tag '14.0-beta3' into jgrpp
...
# Conflicts:
# regression/regression/result.txt
# src/industrytype.h
# src/network/core/config.h
# src/network/core/network_game_info.cpp
# src/network/core/network_game_info.h
# src/network/core/packet.cpp
# src/network/core/packet.h
# src/network/core/tcp.cpp
# src/network/core/tcp.h
# src/network/core/tcp_admin.cpp
# src/network/core/tcp_content.cpp
# src/network/core/tcp_coordinator.cpp
# src/network/core/tcp_game.cpp
# src/network/core/tcp_game.h
# src/network/core/tcp_turn.cpp
# src/network/core/udp.cpp
# src/network/core/udp.h
# src/network/network_admin.cpp
# src/network/network_client.cpp
# src/network/network_client.h
# src/network/network_command.cpp
# src/network/network_content.cpp
# src/network/network_internal.h
# src/network/network_query.cpp
# src/network/network_query.h
# src/network/network_server.cpp
# src/network/network_server.h
# src/network/network_turn.cpp
# src/network/network_udp.cpp
# src/rail_gui.cpp
# src/road_gui.cpp
2024-02-19 17:57:05 +00:00
Jonathan G Rennison
8581808952
Merge tag '14.0-beta2' into jgrpp
...
# Conflicts:
# CMakeLists.txt
# src/cargotype.cpp
# src/console_cmds.cpp
# src/graph_gui.cpp
# src/industry_cmd.cpp
# src/industrytype.h
# src/misc_gui.cpp
# src/network/network_client.cpp
# src/newgrf.cpp
# src/newgrf_town.cpp
# src/object_cmd.cpp
# src/openttd.cpp
# src/pathfinder/water_regions.cpp
# src/saveload/saveload.cpp
# src/saveload/saveload.h
# src/table/build_industry.h
# src/table/engines.h
# src/vehicle.cpp
# src/vehicle_cmd.cpp
# src/vehicle_gui.cpp
2024-02-19 03:23:19 +00:00
Jonathan G Rennison
fdd666f66a
Merge tag '14.0-beta1' into jgrpp
...
# Conflicts:
# src/3rdparty/squirrel/squirrel/sqcompiler.cpp
# src/aircraft.h
# src/animated_tile.h
# src/base_consist.h
# src/cargotype.h
# src/company_gui.cpp
# src/console_cmds.cpp
# src/core/overflowsafe_type.hpp
# src/engine_gui.cpp
# src/industry_gui.cpp
# src/lang/english.txt
# src/music/extmidi.cpp
# src/network/core/network_game_info.cpp
# src/network/network_server.cpp
# src/newgrf.cpp
# src/newgrf_industries.cpp
# src/order_base.h
# src/order_cmd.cpp
# src/order_gui.cpp
# src/order_type.h
# src/os/macosx/misc_osx.cpp
# src/os/windows/crashlog_win.cpp
# src/rail_gui.cpp
# src/rail_gui.h
# src/roadveh.h
# src/roadveh_cmd.cpp
# src/saveload/afterload.cpp
# src/saveload/company_sl.cpp
# src/saveload/saveload.cpp
# src/saveload/saveload.h
# src/saveload/saveload_error.hpp
# src/script/api/script_town.cpp
# src/settingsgen/settingsgen.cpp
# src/ship.h
# src/ship_cmd.cpp
# src/smallmap_gui.cpp
# src/spritecache.cpp
# src/stdafx.h
# src/strgen/strgen.cpp
# src/strgen/strgen.h
# src/table/settings/script_settings.ini
# src/timetable_cmd.cpp
# src/timetable_gui.cpp
# src/town.h
# src/town_cmd.cpp
# src/town_cmd.h
# src/town_gui.cpp
# src/train.h
# src/train_cmd.cpp
# src/tree_cmd.cpp
# src/vehicle.cpp
# src/vehicle_base.h
# src/vehicle_cmd.cpp
# src/vehicle_gui.cpp
# src/vehiclelist.cpp
# src/waypoint_base.h
# src/widget.cpp
2024-02-18 22:22:29 +00:00
Rubidium
15be383b93
Fix a253205: remove (now) unused currency separator
2024-02-18 16:56:52 +01:00
Jonathan G Rennison
838b166726
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/cheat_gui.cpp
# src/command.cpp
# src/command_func.h
# src/company_base.h
# src/debug.cpp
# src/debug.h
# src/economy.cpp
# src/engine_type.h
# src/graph_gui.cpp
# src/misc_cmd.cpp
# src/misc_cmd.h
# src/network/core/os_abstraction.cpp
# src/openttd.cpp
# src/saveload/saveload.cpp
# src/saveload/saveload.h
# src/settings_type.h
# src/ship_cmd.cpp
# src/stdafx.h
# src/tests/bitmath_func.cpp
# src/town_cmd.cpp
# src/town_gui.cpp
2024-02-17 11:53:35 +00:00
Jonathan G Rennison
7ce06e22b8
Split date types into calendar and economy dates
...
See: 735abfe1
2024-02-13 21:34:09 +00:00
Peter Nelson
9ec9c8d8b5
Fix: Industry tiles and houses could accept incorrect cargo types. ( #12062 )
...
Ensure the default label is cleared when NewGRFs set industry tile or house acceptance.
This was missed by #12053 .
2024-02-11 17:42:04 +00:00
Peter Nelson
8db08da148
Fix #12052 : NewGRFs clearing industry cargo slots could fallback to default instead of empty. ( #12053 )
...
Ensure the default label is cleared when NewGRF sets a produced/accepted cargo slot, so that default fallback isn't used.
2024-02-11 00:43:13 +00:00
Jonathan G Rennison
cfebbfac8c
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/autoreplace_cmd.cpp
# src/company_base.h
# src/company_gui.cpp
# src/cpu.cpp
# src/debug.h
# src/group.h
# src/group_cmd.cpp
# src/house.h
# src/industry.h
# src/newgrf_house.cpp
# src/news_type.h
# src/openttd.cpp
# src/saveload/company_sl.cpp
# src/settings_type.h
# src/sl/oldloader_sl.cpp
# src/story.cpp
# src/table/town_land.h
# src/viewport.cpp
2024-02-09 18:50:49 +00:00
Jonathan G Rennison
d39236d50c
Store state ticks directly in savegame instead of the offset
...
Initialise the state ticks value to a constant for new games,
instead of using an implicit offset of 0
2024-02-07 20:05:11 +00:00
Jonathan G Rennison
0ea57528c9
Rename DateTicksScaled to StateTicks
...
Rename various other related/derived types and variables
2024-02-07 18:36:47 +00:00
Peter Nelson
ae30ad7802
Fix #12001 : Use correct valid cargo check for old-style NewGRF town house 3rd cargo set up. ( #12006 )
2024-02-05 23:12:56 +00:00
Peter Nelson
5c630e10b7
Fix 2fd90960: Missing default vehicles and industry acceptance/production. ( #12000 )
...
* Fix 2fd90960 : Missing default vehicles and industry acceptance/production.
Some default definitions are used across multiple climate types and relied on climate-independent cargo slot even though they specified a climate-dependent cargo type.
Add MixedCargoType that indirectly allows multiple labels to be specified for these.
2024-02-05 23:11:32 +00:00
Peter Nelson
2fd9096070
Change: Decouple and remove landscape-dependent cargo types. ( #11719 )
...
Cargo types of default engines, industries and houses are now specified in terms of label.
2024-02-04 10:16:08 +00:00
Peter Nelson
17d02ed45f
Feature: NewGRF properties to set town production effect and multiplier. ( #11947 )
...
Town production effect is modelled on town acceptance (growth) effect, and so takes an original cargo slot for behaviour instead of a direct value.
NewGRF feature 0x0B, property 0x1E, takes 1 byte.
Valid values are:
- 0x00 to behave like passengers
- 0x02 to behave like mail
- 0xFF to behave like other cargo (i.e. not produced.)
If not set, town production effect is set based on the cargo label ('PASS' or 'MAIL').
Town production multiplier allows adjusting the amount of cargo produces when Town Production Effect is set, without needing to use callbacks.
NewGRF feature 0x0B (cargo), property 0x1F, accepts a 2 byte (word) value, similar to the cargo capacity multiplier property. The default value is 256 which means 100%, i.e. normal rate.
2024-02-03 13:58:31 +00:00
frosch
b1718478c8
Codechange: Replace old non-standard attributes with C++17/20 standard attributes.
2024-02-02 22:29:28 +01:00
Peter Nelson
8d69d0549d
Codechange: Add town production effect type and assign to cargo types.
2024-02-02 20:37:49 +00:00
Peter Nelson
60dcf3b5e2
Codechange: Rename TownEffect to TownAcceptanceEffect.
...
This makes it clearer that TownEffect only affects acceptance behaviour.
2024-02-02 20:37:49 +00:00
Koen Bussemaker
5a55c4a934
Feature: [NewGRF] Allow higher max speeds for ships
2024-01-28 14:54:51 +01:00
Jonathan G Rennison
5404be172c
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/core/bitmath_func.cpp
# src/core/bitmath_func.hpp
# src/core/geometry_type.hpp
# src/game/game_text.hpp
# src/graph_gui.cpp
# src/pathfinder/npf/npf.cpp
# src/script/api/script_text.cpp
# src/spritecache.cpp
# src/track_func.h
2024-01-25 22:36:01 +00:00
Tyler Trahan
735abfe111
Codechange: Split dates and timers into Economy and Calendar time ( #10700 )
2024-01-22 09:04:34 -05:00