Rubidium
a12f166815
Fix: crash to desktop when attempting to join a company while not joined (yet)
...
(cherry picked from commit 0f25eaa271
)
# Conflicts:
# src/console_cmds.cpp
2 months ago
Jonathan G Rennison
79388e4207
Include dates and tick counters in state checksum
3 months ago
Jonathan G Rennison
7ce06e22b8
Split date types into calendar and economy dates
...
See: 735abfe1
4 months ago
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
4 months ago
Jonathan G Rennison
f966153ae2
Saveload: Remove use of randombytes in company passwords storage
...
Use RandomBytesWithFallback
Replace related key/data arrays with std::array
4 months ago
Jonathan G Rennison
f44ec32011
Replace NetworkRandomBytesWithFallback with RandomBytesWithFallback
...
Replace related key/data arrays with std::array
4 months ago
Rubidium
2d77f09a81
Codechange: use std::shared_ptr for vector of TCPConnecters
4 months ago
Jonathan G Rennison
d7b75614bb
Merge branch 'master' into jgrpp
...
# Conflicts:
# media/baseset/CMakeLists.txt
# src/build_vehicle_gui.cpp
# src/console.cpp
# src/debug.cpp
# src/fontcache/freetypefontcache.cpp
# src/network/network.cpp
# src/openttd.cpp
# src/os/macosx/font_osx.cpp
# src/os/windows/font_win32.cpp
# src/settings_gui.cpp
# src/video/sdl2_v.cpp
# src/widgets/settings_widget.h
# src/window_gui.h
4 months ago
Rubidium
564441e822
Remove: Debug redirect over network
...
It does not work for dedicated servers because upon starting the process to
resolve the address to redirect to gets killed. Also with all the async going
on in the network code, the debug redirection will start very late in the
process.
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
f034714559
Use StringBuilder for GetString/GetStringWithArgs, as per upstream
...
Update dependent code as required
5 months ago
Charles Pigott
1e60734660
Fix: Compilation with DEBUG_DUMP_COMMANDS enabled ( #11607 )
5 months ago
Jonathan G Rennison
55bac952a4
Fix DEBUG_DUMP_COMMANDS
...
Fix strong typedef issues
Fix command format parsing to handle aux data and escaped text
5 months ago
Jonathan G Rennison
4689113553
Debug: De-duplicate formatting of hex dates for desync/random logging
5 months ago
Jonathan G Rennison
03e0ec8276
Strong typedef: Use strong typedefs for date, date tick, minutes types
...
Add delta types
Adjust/add type conversion functions
Add various utility methods on types
Remove the various minute macros
Fix some minute conversion inconsistencies
5 months ago
Jonathan G Rennison
2a31095118
Merge branch 'master' into jgrpp
...
# Conflicts:
# regression/regression/result.txt
# src/aircraft_cmd.cpp
# src/airport_gui.cpp
# src/articulated_vehicles.cpp
# src/console_cmds.cpp
# src/date_gui.cpp
# src/engine.cpp
# src/genworld_gui.cpp
# src/gfx_layout_fallback.cpp
# src/group_gui.cpp
# src/hotkeys.cpp
# src/network/core/tcp_connect.cpp
# src/network/core/tcp_listen.h
# src/newgrf.cpp
# src/newgrf.h
# src/newgrf_engine.cpp
# src/newgrf_gui.cpp
# src/newgrf_station.cpp
# src/openttd.cpp
# src/order_gui.cpp
# src/os/macosx/osx_main.cpp
# src/pathfinder/yapf/yapf_node_rail.hpp
# src/rail_gui.cpp
# src/saveload/afterload.cpp
# src/saveload/cargopacket_sl.cpp
# src/saveload/linkgraph_sl.cpp
# src/saveload/station_sl.cpp
# src/script/api/script_industrytype.cpp
# src/settings.cpp
# src/settings_gui.cpp
# src/settings_table.cpp
# src/settingsgen/settingsgen.cpp
# src/station.cpp
# src/station_cmd.cpp
# src/strings.cpp
# src/timer/timer_game_calendar.cpp
# src/timer/timer_game_calendar.h
# src/timer/timer_manager.h
# src/timer/timer_window.cpp
# src/timetable_cmd.cpp
# src/toolbar_gui.cpp
# src/town_cmd.cpp
# src/town_gui.cpp
# src/train_gui.cpp
# src/vehicle_cmd.h
# src/vehicle_gui.cpp
# src/viewport.cpp
# src/widgets/dropdown.cpp
# src/window_func.h
# src/window_gui.h
6 months ago
Jonathan G Rennison
0d4d4a9cac
Merge branch 'master' into jgrpp
...
# Conflicts:
# cmake/CompileFlags.cmake
# src/3rdparty/squirrel/squirrel/sqclosure.h
# src/3rdparty/squirrel/squirrel/sqobject.h
# src/3rdparty/squirrel/squirrel/sqvm.h
# src/aircraft.h
# src/airport_gui.cpp
# src/blitter/32bpp_sse_func.hpp
# src/blitter/null.hpp
# src/bridge_gui.cpp
# src/build_vehicle_gui.cpp
# src/cargotype.h
# src/cheat_gui.cpp
# src/command.cpp
# src/command_func.h
# src/company_gui.cpp
# src/console_gui.cpp
# src/date_gui.cpp
# src/depot_gui.cpp
# src/dock_gui.cpp
# src/economy.cpp
# src/error_gui.cpp
# src/fileio.cpp
# src/fios.cpp
# src/fios_gui.cpp
# src/fontcache/spritefontcache.h
# src/framerate_gui.cpp
# src/game/game_text.cpp
# src/gamelog.cpp
# src/genworld_gui.cpp
# src/gfx_layout_fallback.cpp
# src/group_gui.cpp
# src/highscore_gui.cpp
# src/hotkeys.cpp
# src/industry_cmd.cpp
# src/industry_gui.cpp
# src/landscape.cpp
# src/main_gui.cpp
# src/misc_cmd.cpp
# src/misc_gui.cpp
# src/network/core/tcp_game.cpp
# src/network/core/udp.cpp
# src/network/network_chat_gui.cpp
# src/network/network_content_gui.cpp
# src/network/network_gui.cpp
# src/network/network_server.cpp
# src/network/network_server.h
# src/newgrf_airport.cpp
# src/newgrf_airport.h
# src/newgrf_airporttiles.cpp
# src/newgrf_airporttiles.h
# src/newgrf_animation_base.h
# src/newgrf_canal.cpp
# src/newgrf_commons.h
# src/newgrf_config.cpp
# src/newgrf_debug_gui.cpp
# src/newgrf_engine.cpp
# src/newgrf_engine.h
# src/newgrf_generic.cpp
# src/newgrf_gui.cpp
# src/newgrf_house.cpp
# src/newgrf_house.h
# src/newgrf_industries.cpp
# src/newgrf_industries.h
# src/newgrf_industrytiles.cpp
# src/newgrf_industrytiles.h
# src/newgrf_object.cpp
# src/newgrf_object.h
# src/newgrf_railtype.cpp
# src/newgrf_railtype.h
# src/newgrf_roadstop.cpp
# src/newgrf_roadstop.h
# src/newgrf_roadtype.cpp
# src/newgrf_roadtype.h
# src/newgrf_spritegroup.cpp
# src/newgrf_spritegroup.h
# src/newgrf_station.cpp
# src/newgrf_station.h
# src/newgrf_town.cpp
# src/newgrf_town.h
# src/news_gui.cpp
# src/object_gui.cpp
# src/order_gui.cpp
# src/os/macosx/crashlog_osx.cpp
# src/os/unix/crashlog_unix.cpp
# src/os/windows/crashlog_win.cpp
# src/os/windows/win32.cpp
# src/os/windows/win32_main.cpp
# src/pathfinder/npf/npf.cpp
# src/pathfinder/npf/queue.cpp
# src/rail_cmd.cpp
# src/rail_gui.cpp
# src/road_gui.cpp
# src/roadveh.h
# src/saveload/saveload.cpp
# src/screenshot.cpp
# src/script/api/script_text.hpp
# src/settings.cpp
# src/settings_gui.cpp
# src/settings_internal.h
# src/settings_table.cpp
# src/signs_cmd.cpp
# src/signs_gui.cpp
# src/smallmap_gui.cpp
# src/smallmap_gui.h
# src/spriteloader/grf.hpp
# src/station_cmd.cpp
# src/station_gui.cpp
# src/station_map.h
# src/statusbar_gui.cpp
# src/stdafx.h
# src/strgen/strgen.cpp
# src/table/newgrf_debug_data.h
# src/terraform_gui.cpp
# src/timer/timer_game_calendar.cpp
# src/timer/timer_window.cpp
# src/town.h
# src/town_cmd.cpp
# src/town_gui.cpp
# src/train_gui.cpp
# src/transparency_gui.cpp
# src/vehicle_gui.cpp
# src/water_cmd.cpp
# src/waypoint_cmd.cpp
# src/widget.cpp
# src/widget_type.h
# src/widgets/dropdown.cpp
# src/widgets/rail_widget.h
# src/widgets/terraform_widget.h
# src/window.cpp
# src/window_gui.h
6 months ago
Jonathan G Rennison
beee3cc369
Replace BytesToHexString with FormatArrayAsHex
7 months ago
Rubidium
c9276c2959
Codechange: replace x.size() == 0 with x.empty()
7 months ago
frosch
5733145c59
Cleanup: Remove unneeded parameters.
8 months ago
Jonathan G Rennison
a18f3274b4
Rename close window functions to match upstream
9 months ago
Tyler Trahan
fca2b37726
Codechange: Move Ticks into their own class
9 months ago
Jonathan G Rennison
cdf1ff8d5a
Network: Extend post-desync frame sync history
...
Record sync state at various points throughout each frame
9 months ago
Jonathan G Rennison
8e755bf0c2
Network: Remove NETWORK_SEND_DOUBLE_SEED define
9 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
10 months ago
Jonathan G Rennison
0f63f9d637
Change length type of BytesToHexString
11 months ago
Jonathan G Rennison
ead18b2af2
Merge branch 'master' into jgrpp
...
# Conflicts:
# CMakeLists.txt
# src/3rdparty/md5/md5.h
# src/3rdparty/squirrel/squirrel/squtils.h
# src/animated_tile.cpp
# src/console_func.h
# src/core/CMakeLists.txt
# src/core/container_func.hpp
# src/core/smallstack_type.hpp
# src/crashlog.cpp
# src/crashlog.h
# src/debug.h
# src/economy.cpp
# src/gamelog.cpp
# src/industry_gui.cpp
# src/lang/catalan.txt
# src/misc_gui.cpp
# src/network/network_content.h
# src/newgrf.cpp
# src/newgrf.h
# src/newgrf_config.cpp
# src/newgrf_config.h
# src/newgrf_gui.cpp
# src/os/unix/font_unix.cpp
# src/os/windows/crashlog_win.cpp
# src/rail_cmd.cpp
# src/saveload/animated_tile_sl.cpp
# src/script/api/script_tilelist.cpp
# src/settings.cpp
# src/settingsgen/settingsgen.cpp
# src/sl/oldloader_sl.cpp
# src/station.cpp
# src/station_cmd.cpp
# src/stdafx.h
# src/strgen/strgen.cpp
# src/strgen/strgen_base.cpp
# src/table/settings/gui_settings.ini
# src/train_gui.cpp
# src/vehicle.cpp
# src/vehicle_base.h
# src/vehicle_cmd.cpp
# src/vehicle_gui_base.h
# src/viewport_sprite_sorter.h
11 months ago
Jonathan G Rennison
d09b504bc5
Merge branch 'master' into jgrpp
...
# Conflicts:
# .github/workflows/ci-build.yml
# .github/workflows/release-linux.yml
# .github/workflows/release-macos.yml
# .github/workflows/release-source.yml
# .github/workflows/release.yml
# CMakeLists.txt
# COMPILING.md
# src/ai/ai_core.cpp
# src/ai/ai_gui.cpp
# src/bridge_gui.cpp
# src/company_gui.cpp
# src/console_cmds.cpp
# src/core/CMakeLists.txt
# src/core/smallmap_type.hpp
# src/disaster_vehicle.h
# src/effectvehicle_base.h
# src/fontcache.cpp
# src/game/game_core.cpp
# src/game/game_gui.cpp
# src/gamelog.cpp
# src/gamelog_internal.h
# src/group_gui.cpp
# src/linkgraph/linkgraph.h
# src/misc.cpp
# src/network/core/config.h
# src/network/core/udp.cpp
# src/network/network_chat_gui.cpp
# src/network/network_content_gui.cpp
# src/network/network_gui.cpp
# src/newgrf.cpp
# src/newgrf_gui.cpp
# src/newgrf_profiling.cpp
# src/newgrf_profiling.h
# src/object_gui.cpp
# src/openttd.cpp
# src/openttd.h
# src/order_gui.cpp
# src/os/windows/font_win32.cpp
# src/rail_gui.cpp
# src/road.cpp
# src/road_gui.cpp
# src/saveload/afterload.cpp
# src/saveload/saveload.h
# src/script/api/script_controller.cpp
# src/script/api/script_roadtypelist.cpp
# src/script/script_config.cpp
# src/script/script_config.hpp
# src/script/script_instance.cpp
# src/script/script_scanner.cpp
# src/script/squirrel.cpp
# src/script/squirrel_helper.hpp
# src/settings_gui.cpp
# src/settings_internal.h
# src/settings_type.h
# src/table/settings/network_private_settings.ini
# src/timetable_gui.cpp
# src/vehicle.cpp
# src/vehicle_base.h
# src/window_gui.h
11 months ago
Jonathan G Rennison
4f6d75f97d
Fix #11016 : Defer deletion of client and server game socket handlers
...
This fixes various use after free scenarios in error handling paths
11 months ago
Jonathan G Rennison
495db43b72
Network: Defer deletion of client and server game socket handler
...
This fixes various use after free scenarios in error handling paths
12 months ago
Jonathan G Rennison
3d2dc77aa2
Network: Change protocol for game/rcon/settings password auth
...
Instead of sending a hash, do a DH/X25519 key exchange
using the password.
This also allows authenticating the associated rcon payload and response.
12 months ago
Jonathan G Rennison
9042eb338f
Network: Simplify stringifying of random key strings
12 months ago
Jonathan G Rennison
76a9e280c2
Network: De-duplicate getting random bytes with fallback
12 months ago
Jonathan G Rennison
c4c14cb6a7
3rdparty: Update monocypher from 3.1.3 to 4.0.1
...
Update to match interface changes
12 months ago
Jonathan G Rennison
11a3dc287b
Serialisation: Adjust method names/types
12 months ago
Jonathan G Rennison
c285413853
Network: Change hash function for non-company passwords
...
Increase size of per-connection salts, simplify management
Cache per-connection hashes at server end
Send hashes as binary rather than bothering to stringify them
12 months ago
Rubidium
c158089eff
Codechange: use C++ style methods to combine a Utf8Encoded character and a formatted string
12 months ago
Rubidium
acec34a0fe
Cleanup: remove MD5SumToString in lieu of FormatArrayAsHex
1 year ago
Rubidium
d9a04ba446
Codechange: make the MD5 hash/digest/checksum variables a std::array
1 year ago
Patric Stout
7634553d22
Feature: opt-in survey when exiting a game
...
On first start-up, the game will ask if you want to participate
in our automated survey. You have to opt-in, and can easily opt-out
(via the Options) at any time.
When opt-in, whenever you exit a game, a JSON blob will be send
to the survey server hosted by OpenTTD. This JSON blob contains
information that gives a global picture of the game just played:
- What settings were used
- How many humans vs AIs
- How long the game has been played
- Basic information about the OS / CPU
All this information is kept very generic, so there is no
chance we send private information to our survey server.
Nothing in the JSON blob could identify you as a person; it
mostly tells about the game played. At any time you can see
what the JSON blob includes, by pressing the "Preview Survey
Results" button in-game.
1 year ago
Tyler Trahan
930f0a16d8
Codechange: Define Date/Year/Month/Day within TimerGameCalendar class
1 year ago
Patric Stout
7aa2b9ab0a
Codechange: move all date-related variables inside the timer ( #10706 )
1 year ago
Jonathan G Rennison
ae7c86c49d
Merge branch 'master' into jgrpp
...
# Conflicts:
# .github/workflows/release-linux.yml
# .github/workflows/release-macos.yml
# src/industry_cmd.cpp
# src/industry_cmd.h
# src/network/core/http_curl.cpp
# src/network/core/tcp_http.cpp
# src/network/core/tcp_http.h
# src/network/network_content.h
# src/script/api/script_goal.cpp
# src/script/api/script_industry.cpp
# src/script/api/script_league.cpp
# src/script/api/script_story_page.cpp
# src/script/api/script_town.cpp
# src/train.h
# src/train_cmd.cpp
1 year ago
Patric Stout
64523709bf
Add: use https:// for content-service connections ( #10448 )
...
This requires the use of WinHTTP (for Windows) or libcurl (for all
others except Emscripten). Emscripten does not support http(s)
calls currently.
On Linux it requires ca-certificates to be installed, so the HTTPS
certificate can be validated. It is really likely this is installed
on any modern machine, as most connections these days are HTTPS.
(On MacOS and Windows the certificate store is filled by default)
Reminder: in case the http(s):// connection cannot be established,
OpenTTD falls back to a custom TCP-based connection to fetch the
content from the content-service. Emscripten will always do this.
1 year ago
Jonathan G Rennison
ae9b416684
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/ai/ai_core.cpp
# src/ai/ai_gui.cpp
# src/ai/ai_instance.cpp
# src/console_cmds.cpp
# src/engine_type.h
# src/game/game_gui.cpp
# src/game/game_instance.cpp
# src/goal.cpp
# src/goal_cmd.h
# src/lang/english.txt
# src/lang/estonian.txt
# src/network/network_client.cpp
# src/newgrf.cpp
# src/newgrf_generic.h
# src/openttd.cpp
# src/saveload/saveload.h
# src/script/api/script_log.cpp
# src/script/api/script_town.cpp
# src/settings_table.cpp
# src/station_cmd.cpp
# src/station_cmd.h
# src/station_map.h
# src/strings.cpp
# src/table/settings/difficulty_settings.ini
# src/table/settings/gui_settings.ini
# src/tbtr_template_gui_main.h
# src/timetable_cmd.cpp
# src/timetable_cmd.h
# src/timetable_gui.cpp
# src/town_gui.cpp
# src/train_gui.cpp
# src/water_cmd.cpp
1 year ago
Rubidium
4e65ec1dc4
Codechange: do not declare functions in blocks
1 year ago
Jonathan G Rennison
1bfd96c7f2
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/3rdparty/fmt/core.h
# src/command_type.h
# src/console_cmds.cpp
# src/core/overflowsafe_type.hpp
# src/landscape.cpp
# src/network/network.cpp
# src/newgrf_object.h
# src/object_cmd.cpp
# src/order_gui.cpp
# src/saveload/vehicle_sl.cpp
# src/script/api/script_industrytype.cpp
# src/script/api/script_object.hpp
# src/script/api/script_town.cpp
# src/table/object_land.h
# src/timetable_cmd.cpp
# src/tree_cmd.cpp
# src/vehicle_gui.cpp
# src/window.cpp
1 year ago
Rubidium
8f9a60893d
Fix #10177 : company list password padlock showed after switching to single player
1 year ago
Jonathan G Rennison
f32733ef22
Command: Replace binary_length field with auxiliary data
...
Use for CMD_ADD_PLAN_LINE
1 year ago
Jonathan G Rennison
e92aaade42
NetworkCompanyIsPassworded should return false in single player mode
2 years ago