Jonathan G Rennison
86a6f63e2f
Merge branch 'master' into jgrpp
...
# Conflicts:
# .github/workflows/ci-build.yml
# .github/workflows/codeql.yml
# .github/workflows/commit-checker.yml
# .github/workflows/release-linux-legacy.yml
# .github/workflows/release-linux.yml
# .github/workflows/release-macos.yml
# .github/workflows/release-windows-store.yml
# .github/workflows/release-windows.yml
# .github/workflows/upload-cdn.yml
# .github/workflows/upload-gog.yml
# .github/workflows/upload-steam.yml
# src/console_cmds.cpp
# src/core/math_func.hpp
# src/fios.cpp
# src/fios.h
# src/intro_gui.cpp
# src/network/network_server.cpp
# src/openttd.cpp
# src/settings.cpp
# src/settings_gui.cpp
# src/settings_internal.h
# src/settings_table.cpp
# src/settings_type.h
# src/table/settings.h.preamble
# src/table/settings/company_settings.ini
# src/table/settings/currency_settings.ini
# src/table/settings/difficulty_settings.ini
# src/table/settings/economy_settings.ini
# src/table/settings/game_settings.ini
# src/table/settings/gui_settings.ini
# src/table/settings/linkgraph_settings.ini
# src/table/settings/locale_settings.ini
# src/table/settings/misc_settings.ini
# src/table/settings/multimedia_settings.ini
# src/table/settings/network_private_settings.ini
# src/table/settings/network_settings.ini
# src/table/settings/news_display_settings.ini
# src/table/settings/old_gameopt_settings.ini
# src/table/settings/pathfinding_settings.ini
# src/table/settings/script_settings.ini
# src/table/settings/win32_settings.ini
# src/table/settings/window_settings.ini
# src/table/settings/world_settings.ini
# src/viewport.cpp
# src/viewport_func.h
# src/window.cpp
4 months ago
Jonathan G Rennison
5b38b874c5
Allow StrongType types in settings tables
4 months ago
frosch
9344b50435
Codechange: Remove TKM from settings texts.
4 months ago
frosch
9e9a8ca7f6
Codechange: Add callbacks to IntSettingDesc to support dynamic strings for title, help and values.
4 months ago
Jonathan G Rennison
1e0bb019a7
Change cargo scaling settings to be linear instead of logarithmic
5 months ago
Jonathan G Rennison
97e6f3062e
Adding of _t to (u)int types, and WChar to char32_t
...
See: eaae0bb5e
5 months ago
Jonathan G Rennison
6e671ed6e2
Split save/load settings into separate INI files
...
Matching upstream for all settings
7 months ago
Jonathan G Rennison
581ed5b98f
Use compatibility table for loading non-table OPTS, PATS chunks
7 months ago
Jonathan G Rennison
b280dfb965
Split GUI settings into separate INI files
...
Matching upstream for non-save settings
7 months ago
Rubidium
eaae0bb5e7
Codechange: automatic adding of _t to (u)int types, and WChar to char32_t
...
for i in `find src -type f|grep -v 3rdparty/fmt|grep -v 3rdparty/catch2|grep -v 3rdparty/opengl|grep -v stdafx.h`; do sed 's/uint16& /uint16 \&/g;s/int8\([ >*),;[]\)/int8_t\1/g;s/int16\([ >*),;[]\)/int16_t\1/g;s/int32\([ >*),;[]\)/int32_t\1/g;s/int64\([ >*),;[]\)/int64_t\1/g;s/ uint32(/ uint32_t(/g;s/_uint8_t/_uint8/;s/Uint8_t/Uint8/;s/ft_int64_t/ft_int64/g;s/uint64$/uint64_t/;s/WChar/char32_t/g;s/char32_t char32_t/char32_t WChar/' -i $i; done
11 months ago
Jonathan G Rennison
9a4512f789
Remove linkgraph duration not day length scaled setting
...
Now always enabled
1 year ago
Michael Lutz
178249e7cc
Codechange: Saveload macros for entries with a custom table name.
1 year ago
Jonathan G Rennison
5055167c44
Add support for enum client settings
2 years ago
Jonathan G Rennison
81290df946
Merge branch 'master' into jgrpp-beta
...
# Conflicts:
# src/lang/spanish.txt
# src/network/core/tcp_content_type.h
# src/network/network_content.cpp
# src/saveload/cheat_sl.cpp
# src/saveload/saveload.cpp
# src/saveload/saveload.h
# src/saveload/station_sl.cpp
# src/saveload/vehicle_sl.cpp
# src/settings.cpp
# src/settings_internal.h
# src/table/settings.h.preamble
# src/table/settings/company_settings.ini
# src/table/settings/currency_settings.ini
# src/table/settings/gameopt_settings.ini
# src/table/settings/misc_settings.ini
# src/table/settings/settings.ini
# src/table/settings/win32_settings.ini
# src/table/settings/window_settings.ini
3 years ago
Jonathan G Rennison
ffef1c9e44
Merge branch 'master' into jgrpp-beta
...
# Conflicts:
# src/saveload/cargopacket_sl.cpp
# src/saveload/cheat_sl.cpp
# src/saveload/company_sl.cpp
# src/saveload/engine_sl.cpp
# src/saveload/map_sl.cpp
# src/saveload/order_sl.cpp
# src/saveload/saveload.cpp
# src/saveload/saveload.h
# src/saveload/station_sl.cpp
# src/saveload/vehicle_sl.cpp
# src/settings.cpp
# src/settings_gui.cpp
# src/settings_internal.h
# src/stdafx.h
# src/table/settings/settings.ini
# src/town_cmd.cpp
# src/vehicle.cpp
3 years ago
Jonathan G Rennison
406b81abb1
Merge branch 'master' into jgrpp-beta
...
# Conflicts:
# src/economy.cpp
# src/lang/traditional_chinese.txt
# src/order_gui.cpp
# src/settings.cpp
# src/settings_internal.h
# src/table/company_settings.ini
# src/table/currency_settings.ini
# src/table/gameopt_settings.ini
# src/table/misc_settings.ini
# src/table/settings.h.preamble
# src/table/settings.ini
# src/table/win32_settings.ini
# src/table/window_settings.ini
3 years ago
Jonathan G Rennison
784fcbd1e7
Merge branch 'master' into jgrpp-beta
...
# Conflicts:
# src/settings.cpp
# src/settings_gui.cpp
# src/settings_internal.h
# src/table/currency_settings.ini
# src/table/gameopt_settings.ini
# src/table/misc_settings.ini
# src/table/settings.h.preamble
3 years ago
Jonathan G Rennison
781aaa4fe5
Merge branch 'master' into jgrpp-beta
...
# Conflicts:
# src/settings.cpp
# src/settings_gui.cpp
# src/settings_internal.h
# src/table/company_settings.ini
# src/table/currency_settings.ini
# src/table/gameopt_settings.ini
# src/table/misc_settings.ini
# src/table/settings.h.preamble
# src/table/settings.ini
# src/table/win32_settings.ini
# src/table/window_settings.ini
3 years ago
Jonathan G Rennison
4042480806
Merge branch 'jgrpp' into jgrpp-beta
...
# Conflicts:
# src/settings.cpp
# src/settings_gui.cpp
# src/settings_internal.h
# src/table/company_settings.ini
# src/table/currency_settings.ini
# src/table/gameopt_settings.ini
# src/table/misc_settings.ini
# src/table/settings.h.preamble
# src/table/settings.ini
# src/table/win32_settings.ini
# src/table/window_settings.ini
3 years ago
Jonathan G Rennison
65c20edde7
Settings: Merge orderproc into guiproc
3 years ago
Jonathan G Rennison
47156122fa
Settings: Add a guiproc callback for general settings GUI operations
3 years ago
Jonathan G Rennison
fd605e3cf3
Merge branch 'master' into jgrpp-beta
...
# Conflicts:
# .github/workflows/commit-checker.yml
# src/company_cmd.cpp
# src/console_cmds.cpp
# src/crashlog.cpp
# src/lang/english.txt
# src/lang/german.txt
# src/lang/indonesian.txt
# src/lang/japanese.txt
# src/lang/korean.txt
# src/lang/swedish.txt
# src/linkgraph/linkgraphjob.cpp
# src/linkgraph/mcf.cpp
# src/network/core/tcp.cpp
# src/network/core/tcp.h
# src/network/core/tcp_game.h
# src/network/core/udp.h
# src/network/network.cpp
# src/network/network_admin.cpp
# src/network/network_admin.h
# src/network/network_chat_gui.cpp
# src/network/network_client.cpp
# src/network/network_client.h
# src/network/network_func.h
# src/network/network_internal.h
# src/network/network_server.cpp
# src/network/network_server.h
# src/newgrf.cpp
# src/newgrf_station.cpp
# src/order_gui.cpp
# src/rail_cmd.cpp
# src/saveload/saveload.cpp
# src/settings.cpp
# src/settings_gui.cpp
# src/settings_internal.h
# src/settings_type.h
# src/station_cmd.cpp
# src/stdafx.h
# src/table/currency_settings.ini
# src/table/misc_settings.ini
# src/table/settings.h.preamble
# src/table/settings.ini
# src/terraform_cmd.cpp
# src/timetable_gui.cpp
# src/train_cmd.cpp
# src/tree_cmd.cpp
# src/water_cmd.cpp
3 years ago
Rubidium
ede3f79475
Codechange: use the name string in SaveLoad for the name of the Setting as well
3 years ago
Patric Stout
1ed2405907
Cleanup: remove SLE_NULL and friends
...
We no longer need them. If you want to remove a field .. just
remove it! Because of the headers in the savegame, on loading,
it will do the right thing and skip the field.
Do remember to bump the savegame version, as otherwise older
clients can still load the game, but will reset the field you
have removed .. that might be unintentially.
3 years ago
Patric Stout
7dd5fd6ed4
Feature: framework to make savegames self-descriptive
...
We won't be able to make it fully self-descriptive (looking at you
MAP-chunks), but anything else can. With this framework, we can
add headers for each chunk explaining how each chunk looks like
in detail.
They also will all be tables, making it a lot easier to read in
external tooling, and opening the way to consider a database
(like SQLite) to use as savegame format.
Lastly, with the headers in the savegame, you can freely add
fields without needing a savegame version bump; older versions
of OpenTTD will simply ignore the new field. This also means
we can remove all the SLE_CONDNULL, as they are irrelevant.
The next few commits will start using this framework.
3 years ago
rubidium42
98e653dacc
Fix #9386 : compilers failing to compile with LTO by using variants instead of new + unique_ptr
...
With std::variant all memory can be figured out at compile time, so the compiler needs to keep track of fewer elements. It also saves out a unique_ptr and its memory management, over a slight impact for resolving a setting.
3 years ago
Patric Stout
648ee88a02
Codechange: merge guiflags and flags in settings .ini files
...
It was rather confusing which one was for what, especially as some
SaveLoad flags were settings-only. Clean up this mess a bit by
having only Setting flags.
3 years ago
rubidium42
08308d808c
Codechange: use separate pre and post callbacks for int settings
3 years ago
rubidium42
e2f5d9e561
Codechange: use separate pre and post callbacks for string settings
3 years ago
rubidium42
ac99a38175
Cleanup: remove and/or fix some confusing comments
...
The comments for SettingDescType; it is a byte, so not 4 bytes and since it is not a flag there are about 250 other possibilities left instead of 9.
SettingGuiFlag is uint16 so has 2 bytes allocated.
SettingDescGlobVarList and related comments imply that global vars cannot be used elsewhere, but they are used for settings just fine. Even then the type is not used anywhere else but the definition of the table.
3 years ago
rubidium42
86c9ef8134
Codechange: remove SettingDescType in lieu of the actual classes
3 years ago
rubidium42
3bb6ce8827
Codechange: use initializer_lists for the settings tables
...
Not using vectors as those require copying from the initializer list and that
makes unique_ptrs to the actual SettingDesc objects later impossible.
3 years ago
rubidium42
e666a962b1
Codechange: let OneOfMany and ManyOfMany be their own classes as well
3 years ago
rubidium42
860003458f
Codechange: make BoolSettingDesc its own sub class
3 years ago
rubidium42
d8125fa46e
Codechange: make sub classes of SettingDesc for the different types of settings
3 years ago
rubidium42
91b3d697c5
Codechange: make SettingDesc an instance in the setting table to allow for sub classes
3 years ago
rubidium42
0f062b3882
Codechange: clean up C-string support from settings
3 years ago
rubidium42
2022e34824
Codechange: move locale settings to std::string
3 years ago
rubidium42
16437b7c0d
Codechange: move client name in settings to std::string
3 years ago
rubidium42
c73d64adf9
Codechange: move passwords in settings to std::string
3 years ago
Jonathan G Rennison
a9515456cb
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/network/core/os_abstraction.h
# src/network/core/tcp_content.h
# src/network/core/udp.cpp
# src/table/currency_settings.ini
# src/table/settings.h.preamble
3 years ago
rubidium42
b54d8a49fb
Feature: allow non-ASCII currency separators
3 years ago
Jonathan G Rennison
e95216b59d
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/company_cmd.cpp
# src/core/geometry_func.cpp
# src/date.cpp
# src/genworld_gui.cpp
# src/gfx.cpp
# src/object_gui.cpp
# src/openttd.cpp
# src/settings_type.h
# src/video/allegro_v.cpp
# src/video/dedicated_v.cpp
# src/video/null_v.cpp
# src/video/sdl2_v.cpp
# src/video/sdl_v.cpp
# src/video/win32_v.cpp
3 years ago
Michael Lutz
00c66e7096
Codechange: Allow early-load settings that are not misc settings.
3 years ago
Michael Lutz
7845434270
Codechange: Don't use cpp_offsetof in the save/load code.
...
Many of the member variables that are used in save/load are inside types
that are not standard layout types. Using pointer arithmetics to determine
addresses of members inside types that are not standard layout is generally
undefined behaviour. If we'd use C++17, it is conditionally supported, which means
each compiler may or may not support it. And even then using it for individual
array elements is syntactically not supported the the standard offsetof function.
Unfortunately, the trickery employed for saving linkgraph settings causes quite some
clutter in the settings ini files.
3 years ago
Jonathan G Rennison
43c538fa7d
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/town_cmd.cpp
4 years ago
TechGeekNZ
012fea301d
Cleanup: Add note explaining how settings.h is generated from source.
4 years ago
TechGeekNZ
f246f8faef
Cleanup: Fix typo in settings.h.preamble.
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
a49fdb7ebb
Codechange: Store base set related texts in std::strings.
4 years ago