Commit Graph

1690 Commits

Author SHA1 Message Date
Loïc Guilloux
b0f3417025 Add: [Script] ScriptTileList_StationCoverage (#12015) 2024-02-06 20:22:18 +01:00
Loïc Guilloux
0858377e9e Fix: [Script] Don't kill GS misusing GSText (#12009) 2024-02-06 19:58:30 +01:00
merni-ns
34b05465d5 Fix 5a88027: [Script] Avoid overflow in scripts when infinite money is enabled (#12016) 2024-02-06 19:54:38 +01: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
glx22
48c97d6cde Fix 48b6b18: Increase MAX_VALUATE_OPS to match the previous limit
(cherry picked from commit a502453033)
2024-02-03 11:40:11 +00:00
Patric Stout
849fd5ae03 Change: [Script] replace easy/medium/hard values with default value (#11959) 2024-02-03 09:15:03 +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
60dcf3b5e2 Codechange: Rename TownEffect to TownAcceptanceEffect.
This makes it clearer that TownEffect only affects acceptance behaviour.
2024-02-02 20:37:49 +00:00
Loïc Guilloux
4e26e33805 Change: Improve ScriptSettings windows (#11958) 2024-02-02 18:08:05 +00:00
Loïc Guilloux
3545decf2d Cleanup e28edf6945: [Script] Left over CONFIG_RANDOM reference in documentation (#11954) 2024-02-02 14:28:02 +00:00
Loïc Guilloux
ab1407fc43 Fix: [Script] Apply random deviation only at script start (#11944) 2024-02-01 10:48:40 +01:00
Patric Stout
e28edf6945 Remove: [Script] CONFIG_RANDOM from AddSetting flags (#11942)
It had a very weird interaction, and was only ever used by a single
AI.
2024-01-31 22:24:36 +00:00
glx22
a502453033 Fix 48b6b18: Increase MAX_VALUATE_OPS to match the previous limit 2024-01-30 19:15:54 +01:00
dP
897b59c158 Add: [GS] Allow to set max loan for each company separately (#11224) 2024-01-30 19:15:19 +01:00
merni-ns
5a88027a19 Feature: Infinite money mode (#11902) 2024-01-30 18:01:02 +00:00
dP
acaceb45ba Codechange: Make command constant names consistent with command proc (#11920) 2024-01-29 13:41:36 +01:00
SamuXarick
0c4e509b60 Fix #10439: [GS] Validate story page button colour, flags, cursor and vehicle type (#11892)
Adds GSStoryPage::IsValidStoryPageButtonColour, GSStoryPage::IsValidStoryPageButtonFlags and GSStoryPage::IsValidStoryPageButtonCursor to the API.

Add missing enforced preconditions to validate parameters passed to MakePushButtonReference, MakeTileButtonReference and MakeVehicleButtonReference.
2024-01-28 00:29:10 +01:00
SamuXarick
76f0f9e386 Fix #10438: [GS] Validate story page element type for ScriptStoryPage::NewElement (#11888)
Fixes a crash that happens if an invalid StoryPageElementType is passed to ScriptStoryPage::NewElement.

Adds an enforced precondition that tests the validity of StoryPageElementType.

Adds GSStoryPage::IsValidStoryPageElementType to the API.
2024-01-27 22:11:02 +01:00
Peter Nelson
4bf9c123d3 Fix: TextfileWindow called virtual methods before constructor completed. (#11889)
SetStringParameters() was called during widget tree init in the constructor.

Calls within a constructor cannot call the derived classes methods. This would result in invalid data being passed to the string system, which could then crash.

(cherry picked from commit fef0bfcfd3)
2024-01-27 18:53:11 +00:00
Peter Nelson
be147651d4 Codechange: Replace GroupStatistics' num_engines with std::map. (#11849)
This removes manual memory management with calloc/free calls, and prevents potentially large arrays being allocated for each group.

(cherry picked from commit 8797cc7ef2)
2024-01-27 14:56:12 +00:00
Peter Nelson
fef0bfcfd3 Fix: TextfileWindow called virtual methods before constructor completed. (#11889)
SetStringParameters() was called during widget tree init in the constructor.

Calls within a constructor cannot call the derived classes methods. This would result in invalid data being passed to the string system, which could then crash.
2024-01-27 14:45:37 +00:00
Jonathan G Rennison
911ccc16fb Script: Add compatibility layer for old cargo scaling settings 2024-01-26 18:30:11 +00: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
Jonathan G Rennison
78e08fdd18 Script: Move old-style/lenient text param encode to separate function 2024-01-25 17:35:08 +00:00
Jonathan G Rennison
822ecae85d Merge branch 'master' into jgrpp
# Conflicts:
#	src/cargotype.h
#	src/core/CMakeLists.txt
#	src/core/span_type.hpp
#	src/fileio.cpp
#	src/fios.cpp
#	src/misc/endian_buffer.hpp
#	src/misc_gui.cpp
#	src/saveload/saveload.h
#	src/saveload/vehicle_sl.cpp
#	src/screenshot.cpp
#	src/settings.cpp
#	src/settings_internal.h
#	src/stdafx.h
#	src/string_func.h
#	src/strings.cpp
#	src/strings_func.h
#	src/strings_internal.h
2024-01-25 18:37:23 +00:00
Jonathan G Rennison
49eb40bc4f Change various _network_dedicated tests to use IsHeadless 2024-01-24 23:31:35 +00:00
Tyler Trahan
bbdbf9a589 Add: AI/GS Time Mode to choose between economy (default) and calendar time (#11603) 2024-01-23 10:42:10 -05:00
Jonathan G Rennison
606d7cd814 Merge branch 'master' into jgrpp
# Conflicts:
#	src/airport_gui.cpp
#	src/build_vehicle_gui.cpp
#	src/direction_type.h
#	src/gfx_type.h
#	src/group_gui.cpp
#	src/misc_gui.cpp
#	src/rail_gui.cpp
#	src/road_gui.cpp
#	src/signs_gui.cpp
#	src/slope_func.h
#	src/smallmap_gui.cpp
#	src/terraform_gui.cpp
#	src/toolbar_gui.cpp
#	src/town_gui.cpp
#	src/town_type.h
#	src/vehicle_type.h
#	src/widget_type.h
2024-01-21 23:03:08 +00:00
Peter Nelson
8797cc7ef2 Codechange: Replace GroupStatistics' num_engines with std::map. (#11849)
This removes manual memory management with calloc/free calls, and prevents potentially large arrays being allocated for each group.
2024-01-21 14:09:44 +00:00
Rubidium
1c694e433d Codechange: use std::popcount instead of hand written loop 2024-01-19 06:48:55 +01:00
Loïc Guilloux
bf4b669628 Fix: [Script] Improve ScriptText validation (#11721)
The validation is now done in two steps:
 - First we get the list of parameters in the same order they used to be in encoded string
 - Then we validate the parameter types like FormatString would use them while encoding the string
2024-01-18 18:06:30 +01:00
Rubidium
2d77cf9c80 Codechange: replace StrStartsWith/StrEndsWith with starts_with and ends_with 2024-01-17 19:48:22 +01:00
Patric Stout
bb49112784 Codechange: switch our codebase to C++20 2024-01-17 00:25:08 +01:00
Rubidium
aa5ba5bd7f Codechange: allow certain enumeration to be added
Otherwise C++20 doesn't like it.
2024-01-16 23:30:23 +01:00
Peter Nelson
7737aa6640 Codechange: Make all NWidgetPart arrays constexpr.
This ensures that the arrays are not created at runtime and prevents using non-constexpr values.
2024-01-16 21:57:05 +00:00
Jonathan G Rennison
0df59defc4 Merge branch 'master' into jgrpp
# Conflicts:
#	.github/workflows/release-linux.yml
#	.github/workflows/release.yml
#	src/rail_cmd.cpp
#	src/rail_gui.cpp
#	src/script/api/script_rail.cpp
#	src/settings_gui.cpp
#	src/signal_type.h
#	src/video/sdl2_v.cpp
2024-01-16 01:15:58 +00:00
Loïc Guilloux
b18e78e21d Change: Redesign script debug window (#11782) 2024-01-15 21:41:44 +01:00
Tyler Trahan
68814bd912 Codechange: Rename SIGTYPE_NORMAL to SIGTYPE_BLOCK (#11788) 2024-01-15 15:27:48 -05:00
Jonathan G Rennison
19a8b7b445 Merge branch 'master' into jgrpp
# Conflicts:
#	src/os/windows/library_loader_win.cpp
2024-01-14 12:53:24 +00:00
Loïc Guilloux
54b57fbfeb Codechange: [Script] Use ScriptList::FillList() in more locations (#11762) 2024-01-12 21:19:08 +01:00
Jonathan G Rennison
8ae1587987 Merge branch 'master' into jgrpp
# Conflicts:
#	src/os/windows/crashlog_win.cpp
#	src/os/windows/font_win32.cpp
#	src/os/windows/win32.cpp
#	src/os/windows/win32.h
#	src/video/win32_v.cpp
#	src/video/win32_v.h
2024-01-12 18:57:14 +00:00
Loïc Guilloux
28efa65e0c Revert a2edf52: SQOpsLimiter does a more precise job (#11754) 2024-01-12 17:04:43 +01:00
Jonathan G Rennison
3050620189 Merge branch 'master' into jgrpp
# Conflicts:
#	src/autoreplace_cmd.cpp
#	src/build_vehicle_gui.cpp
#	src/cargotype.cpp
#	src/economy.cpp
#	src/engine_gui.cpp
#	src/industry_cmd.cpp
#	src/industry_gui.cpp
#	src/linkgraph/linkgraph_gui.h
#	src/linkgraph/refresh.cpp
#	src/linkgraph/refresh.h
#	src/newgrf.cpp
#	src/newgrf_airporttiles.h
#	src/newgrf_roadstop.cpp
#	src/newgrf_station.cpp
#	src/newgrf_station.h
#	src/order_base.h
#	src/order_cmd.cpp
#	src/order_func.h
#	src/order_gui.cpp
#	src/pathfinder/pathfinder_type.h
#	src/saveload/afterload.cpp
#	src/subsidy_base.h
#	src/vehicle_cmd.cpp
#	src/vehicle_gui.cpp
#	src/vehicle_gui_base.h
2024-01-11 17:55:16 +00:00
Peter Nelson
400ae65ff2 Codechange: Redefine some cargo-related values in terms of CargoID instead of CargoType.
Values used as special filter types are now defined as offsets from NUM_CARGO instead of confusingly reusing CARGO_NO_REFIT/CARGO_AUTO_REFIT types.
2024-01-09 18:56:05 +00:00
Peter Nelson
952d111b94 Codechange: Split CT_INVALID into CT_INVALID and INVALID_CARGO.
INVALID_CARGO is a CargoID and should be used for most purposes in game.
CT_INVALID is a CargoType used for defining default properties.
2024-01-09 18:56:05 +00:00
Jonathan G Rennison
914b92b21f Merge branch 'master' into jgrpp
Bump savegame for water regions for ship pathfinder
Use ring_buffer for ShipPathCache
2024-01-09 18:36:47 +00:00
Loïc Guilloux
c86d918921 Add: [Script] Optional filter parameter to more ScriptXXXList constructors (#11698) 2024-01-09 09:39:13 +01:00
Jonathan G Rennison
97e6f3062e Adding of _t to (u)int types, and WChar to char32_t
See: eaae0bb5e
2024-01-07 17:20:41 +00:00
Jonathan G Rennison
b598abed3d Merge branch 'master' into jgrpp
# Conflicts:
#	src/CMakeLists.txt
#	src/network/network_server.cpp
#	src/network/network_survey.cpp
#	src/vehiclelist.cpp
2024-01-05 22:11:28 +00:00
Jonathan G Rennison
f034714559 Use StringBuilder for GetString/GetStringWithArgs, as per upstream
Update dependent code as required
2024-01-05 21:12:54 +00:00