Jonathan G Rennison
1002c6d9d2
Fix various compiler warnings
...
See: #267
3 years ago
Peter Nelson
ff8d1222d9
Codechange: Use text lines instead of pixel height of font for link graph widgets.
...
(cherry picked from commit 56a6f66903
)
3 years ago
Jonathan G Rennison
b4b3638f1b
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/lang/romanian.txt
4 years ago
Milek7
4cd9e0f41b
Fix: Add virtual destructor to link graph Path.
...
Classes derived from Path were freed through base class pointer, but no virtual destructor was present.
4 years ago
Jonathan G Rennison
5e14b54a0c
Merge branch 'master' into jgrpp
4 years ago
Tyler Trahan
de891238d6
Change: Recolour graph windows to brown ( #8700 )
4 years ago
Jonathan G Rennison
32dcc0d484
Linkgraph: Fix unused expression result warning
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
39df1c49a1
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/fileio.cpp
# src/group_gui.cpp
# src/industry.h
# src/lang/korean.txt
# src/linkgraph/linkgraphjob.cpp
# src/linkgraph/linkgraphjob.h
# src/linkgraph/linkgraphschedule.cpp
# src/linkgraph/linkgraphschedule.h
# src/openttd.cpp
# src/saveload/saveload.cpp
# src/saveload/saveload.h
# src/town_cmd.cpp
# src/vehicle_gui.cpp
# src/vehicle_gui_base.h
4 years ago
Charles Pigott
9b800a96ed
Codechange: Remove min/max functions in favour of STL variants ( #8502 )
4 years ago
Charles Pigott
860c270c73
Codechange: Replace assert_compile macro with static_assert
4 years ago
Jonathan G Rennison
94d629d79b
Change: [Linkgraph] Allow job threads to be aborted early when clearing schedule ( #8416 )
...
When link graph jobs are cleared due to abandoning the game or exiting,
flag the job as aborted.
The link graph job running in a separate thread checks the aborted flag
periodically and terminates processing early if set.
This reduces the delay at game abandon or exit if a long-running job
would otherwise still be running.
4 years ago
Jonathan G Rennison
7f0fefddcf
Change: [Linkgraph] Only acquire thread join performance measurements on network clients
...
Network servers and single player clients do not block on thread joins
due to instead pausing shortly before the join is due.
4 years ago
Jonathan G Rennison
0c5dc5d41e
Change: [Linkgraph] Pause the game when linkgraph jobs lag ( #6470 )
...
Check if the job is still running two date fract ticks before it is due
to join, and if so pause the game until its done.
When loading a game, check if the game would block immediately due to
a job which is scheduled to be joined within two date fract ticks,
and if so pause the game until its done.
This avoids the main thread being blocked on a thread join, which appears
to the user as if the game is unresponsive, as the UI does not repaint
and cannot be interacted with.
Show if pause is due to link graph job in status bar, update network
messages.
This does not apply for network clients.
4 years ago
Jonathan G Rennison
83a128e8a9
Fix stack overflow due to excessive recursion in LinkRefresher
...
Clamp recursion limit to maximum of 64
See: #198
4 years ago
Jonathan G Rennison
a474e71243
Viewport: Cache landscape pixels in map mode
...
Avoid invalidating landscape pixels for non-landscape updates
(vehicles, overlays, etc.)
4 years ago
Jonathan G Rennison
352b361e1b
Viewport: Replace viewport mark dirty if zoom level below with flags param
...
Fix missing flags for tracerestrict and effect vehicles
4 years ago
Jonathan G Rennison
a07df41342
Linkgraph: Change job scheduling scaling and duration calculations
...
Clamp scaling to max of 13
Replace duration calculation by:
N <= 1600: linear
N > 1600: proportional to cost estimate: N^2 log N
4 years ago
Jonathan G Rennison
1b4606b4f3
Linkgraph: Fix comment typo in link graph job class
4 years ago
Jonathan G Rennison
3b49f892fa
Redraw connecting link graph overlay links when moving station sign
...
Add test console command
4 years ago
Jonathan G Rennison
d9ce75fd5d
Link graph: Only use log2 of total cost for scaling when > 13
...
This is to fix unnecessary scaling for small networks
4 years ago
Jonathan G Rennison
5b78090a61
Merge branch 'master' into jgrpp
...
# Conflicts:
# CMakeLists.txt
# src/saveload/town_sl.cpp
# src/screenshot.h
# src/script/api/ai/ai_date.hpp.sq
# src/script/api/ai/ai_marine.hpp.sq
# src/script/api/ai/ai_station.hpp.sq
# src/script/api/game/game_date.hpp.sq
# src/script/api/game/game_marine.hpp.sq
# src/script/api/game/game_station.hpp.sq
# src/script/api/game/game_window.hpp.sq
# src/script/api/script_window.hpp
# src/script/api/template/template_window.hpp.sq
# src/signal.cpp
# src/statusbar_gui.cpp
# src/toolbar_gui.cpp
# src/viewport.cpp
# src/viewport_func.h
4 years ago
Jonathan G Rennison
f26143f063
Add setting for alternative linkgraph overlay colour schemes
4 years ago
TechGeekNZ
cf8ea74733
Update: Merge branch 'jgrpp_master_cmake' into jgrpp_cmake
4 years ago
Patric Stout
56d54cf60e
Add: introduce CMake for project management
...
CMake works on all our supported platforms, like MSVC, Mingw, GCC,
Clang, and many more. It allows for a single way of doing things,
so no longer we need shell scripts and vbs scripts to work on all
our supported platforms.
Additionally, CMake allows to generate project files for like MSVC,
KDevelop, etc.
This heavily reduces the lines of code we need to support multiple
platforms from a project perspective.
Addtiionally, this heavily improves our detection of libraries, etc.
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
f2b40f40aa
Codechange: Replace SmallPair with std::pair.
...
std::pair is already the smallest possible pair, and it already handles non-POD types correctly.
4 years ago
Jonathan G Rennison
212f6f4dcb
Improve link refresher handling of conditional orders
4 years ago
Jonathan G Rennison
8f442500ea
Change how dirty screen, window and viewport areas are tracked for later redrawing
...
Track dirty viewport areas seperately form general screen redraws.
Maintain a dirty block grid per viewport, with a smaller block size.
Use even smaller block size in viewport map mode.
Use a rectangle array for general screen redraws instead of a block grid.
Add a dirty bit to windows and widgets, to simplify the common case
of repainting a whole window or widget, without catching
neighbouring windows or viewports.
5 years ago
Jonathan G Rennison
32284e6449
Linkgraph: Fix demand allocation in partitioned graphs
5 years ago
Jonathan G Rennison
5b83e5ff78
Linkgraph: Handle non-integer multiple total demand in AsymmetricScalerEq
5 years ago
Jonathan G Rennison
c50ee4efec
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/linkgraph/mcf.cpp
5 years ago
Jonathan G Rennison
6e7117e04c
Codechange: [Linkgraph] Skip MCF source node Dijkstra when all demand satisfied
...
MCF Dijkstra iterations are executed for all source nodes in a round-robin order.
Source nodes typically require different numbers of MCF Dijkstra iterations
to satisfy all of their demand.
This change is to avoid performing MCF Dijkstra iterations on source nodes which
have already been fully satisfied.
5 years ago
Jonathan G Rennison
6d326deafe
Change: [Linkgraph] Only acquire thread join performance measurements on network clients
...
Network servers and single player clients do not block on thread joins
due to instead pausing shortly before the join is due.
(cherry picked from commit a5697ddeeb43c64ae6cac25581022efcf8e107bd)
5 years ago
Jonathan G Rennison
7960db35f2
Merge branch 'master' into jgrpp
...
# Conflicts:
# config.lib
# projects/openttd_vs140.vcxproj
# projects/openttd_vs140.vcxproj.filters
# projects/openttd_vs141.vcxproj
# projects/openttd_vs141.vcxproj.filters
# projects/openttd_vs142.vcxproj
# projects/openttd_vs142.vcxproj.filters
# src/aircraft_cmd.cpp
# src/base_station_base.h
# src/core/pool_type.hpp
# src/disaster_vehicle.cpp
# src/economy.cpp
# src/engine.cpp
# src/group.h
# src/group_cmd.cpp
# src/group_gui.cpp
# src/lang/english.txt
# src/lang/german.txt
# src/linkgraph/linkgraph_gui.cpp
# src/network/network_command.cpp
# src/network/network_server.cpp
# src/openttd.cpp
# src/order_cmd.cpp
# src/road_cmd.cpp
# src/saveload/afterload.cpp
# src/saveload/cargopacket_sl.cpp
# src/saveload/linkgraph_sl.cpp
# src/saveload/order_sl.cpp
# src/saveload/station_sl.cpp
# src/saveload/town_sl.cpp
# src/saveload/vehicle_sl.cpp
# src/screenshot.cpp
# src/screenshot.h
# src/settings_gui.cpp
# src/settings_type.h
# src/smallmap_gui.cpp
# src/station.cpp
# src/station_cmd.cpp
# src/table/settings.ini
# src/toolbar_gui.cpp
# src/town_cmd.cpp
# src/train.h
# src/train_cmd.cpp
# src/train_gui.cpp
# src/vehicle.cpp
# src/vehicle_base.h
# src/vehiclelist.cpp
# src/window_type.h
5 years ago
glx
09fa39c5b5
Codechange: Replace linkgraph related FOR_ALL with range-based for loops
5 years ago
glx
ddabfed1cd
Codechange: Replace station related FOR_ALL with range-based for loops
5 years ago
Jonathan G Rennison
cbdd9f84d8
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/console_gui.cpp
# src/lang/korean.txt
# src/video/sdl2_v.cpp
# src/video/sdl2_v.h
# src/window.cpp
# src/window_gui.h
5 years ago
S. D. Cloudt
13cc8a0cee
Cleanup: Removed SVN headers
5 years ago
Jonathan G Rennison
b6e9817edb
Link graph: Explicitly flag invalidated flow stats instead of minimising their flows
...
Entirely exclude invalidated flow stats from link stats
Delete invalidated flow stats if they stay invalid for 32 link graph jobs
This is to prevent large numbers of invalidated flow stats from
unduly influencing link statistics
5 years ago
Jonathan G Rennison
3e8b091913
Linkgraph: MCF: Skip source node Dijkstra when all demand satisfied
5 years ago
Jonathan G Rennison
edfd378e93
Merge branch 'master' into jgrpp
...
# Conflicts:
# source.list
# src/blitter/32bpp_anim.cpp
# src/linkgraph/linkgraphjob.cpp
# src/order_cmd.cpp
# src/vehicle.cpp
# src/vehicle_type.h
5 years ago
Jonathan G Rennison
4438413f48
Linkgraph: Replace RB-tree with B-tree in MCF Dijkstra
5 years ago
Jonathan G Rennison
0246d59c8d
FlowStat: Replace btree_map with flat map which is inlined in small case
...
Inline storage for size <= 2
Size = 1 is ~90%
Size = 2 is ~9%
Size >=3 is ~1% and gets a separate allocation
5 years ago
Jonathan G Rennison
90550d9642
FlowStatMap: Replace RB-tree with btree-indexed vector
5 years ago
Jonathan G Rennison
0a1c1809ab
Save/load: Pre-filter SaveLoad descriptor arrays for current version/mode, for chunks with many objects
5 years ago
JMcKiern
04f659e768
Fix: Some typos found using codespell
5 years ago
Jonathan G Rennison
6bf4b67486
Set abort_job in LinkGraphJob saveload constructor
5 years ago
Jonathan G Rennison
1ee33c46ef
Linkgraph: Allow overriding distribution mode on a per-cargo basis, in game
5 years ago