Nicolas Chappe
b83820e723
Change: [Linkgraph] Delete links only served by vehicles stopped in depot
...
A stale link is not deleted if the link refresher finds a vehicle that still serves it.
This commit excludes vehicles stopped in depot for a very long time from the link refresher,
so that their stale links can be deleted.
3 years ago
Nicolas Chappe
de28817d9f
Fix 977604ef: [Linkgraph] Add a special case for unknown travel times on link update
3 years ago
Nicolas Chappe
977604ef08
Feature: [Linkgraph] Prioritize faster routes for passengers, mail and express cargo
...
Passengers usually prefer fast paths to short paths.
Average travel times of links are updated in real-time for use in Dijkstra's algorithm,
and newer travel times weigh more, just like capacities.
3 years ago
glx22
a543a4b7bb
Codechange: Remove FOR_EACH_SET_CARGO_ID
3 years ago
Patric Stout
7b135a8269
Codechange: use SLE_STRUCT(LIST) for Linkgraph chunks
3 years ago
Jonathan G Rennison
1002c6d9d2
Fix various compiler warnings
...
See: #267
3 years ago
Patric Stout
9fff00ba20
Codechange: C++-ify lists for SaveLoad ( #9323 )
...
Basically, this changes "SaveLoad *" to either:
1) "SaveLoadTable" if a list of SaveLoads was meant
2) "SaveLoad &" if a single entry was meant
As added bonus, this removes SL_END / SLE_END / SLEG_END. This
also adds core/span.hpp, a "std::span"-lite.
3 years ago
rubidium42
6fe4d4ad7b
Codechange: linkgraph always iterates with NodeIDs over the Size(), so make Size() the same type to prevent infinite loops
3 years ago
rubidium42
44ca7d9377
Change: Use gender-neutral pronouns
3 years ago
Rubidium
bb9121dbd4
Fix: comparison of narrow type to wide type in loop (potential for infinite loops)
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
Peter Nelson
56a6f66903
Codechange: Use text lines instead of pixel height of font for link graph widgets.
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
Jonathan G Rennison
e7a916d2ce
Linkgraph: Add asymmetric: equal and nearest demand distribution modes
5 years ago
Charles Pigott
bd87f11355
Codechange: Remove DistributionTypeByte
6 years ago
Jonathan G Rennison
674732cd68
Merge: Codechange: Use null pointer literal instead of the NULL macro
6 years ago
Henry Wilson
7c8e7c6b6e
Codechange: Use null pointer literal instead of the NULL macro
6 years ago
Jonathan G Rennison
361758b516
Merge branches 'crashlog_improvements', 'save_ext' into jgrpp
...
# Conflicts:
# Makefile.src.in
# 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/core/smallstack_type.hpp
# src/linkgraph/linkgraphjob.cpp
# src/linkgraph/linkgraphjob.h
# src/misc.cpp
# src/network/network_udp.cpp
# src/openttd.cpp
# src/saveload/saveload.cpp
6 years ago
Michael Lutz
05bc2ed7cb
Codechange: Replace custom thread code with C++11 thread objects.
...
We assume a conforming C++11 compiler environment that has a valid <thread>-header.
Failure to run a real thread is handled gracefully.
6 years ago
Jonathan G Rennison
a4a3a6a630
Merge branch 'master' into jgrpp
6 years ago
PeterN
32fda83d39
Fix aa7ca7fe6: Linkgraph node index order must be maintained due to other references. ( #7431 )
...
Linkgraph nodes require a specific order that was maintained by swapping just the last
element for the node to be removed. std::vector::erase() changed this to removing the
node is then shuffling the remain items down, which upsets other references to this
indices.
This is fixed by switching back to the original swap & pop method.
6 years ago
Jonathan G Rennison
58433c7667
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/core/smallmap_type.hpp
# src/lang/korean.txt
# src/network/network_content.cpp
# src/smallmap_gui.cpp
# src/station_cmd.cpp
6 years ago
glx22
66dd7c3879
Fix: MSVC warnings ( #7423 )
6 years ago
Jonathan G Rennison
ba34ec7ade
Merge branch 'master' into jgrpp
...
Replace build and refit, and group collapse implementations
Fix template creation build and refit
# Conflicts:
# Makefile.bundle.in
# config.lib
# src/animated_tile.cpp
# src/blitter/32bpp_anim.hpp
# src/blitter/32bpp_base.hpp
# src/blitter/8bpp_base.hpp
# src/blitter/null.hpp
# src/build_vehicle_gui.cpp
# src/command.cpp
# src/command_func.h
# src/console_gui.cpp
# src/core/smallstack_type.hpp
# src/date.cpp
# src/debug.cpp
# src/genworld_gui.cpp
# src/ground_vehicle.hpp
# src/group_gui.cpp
# src/lang/korean.txt
# src/linkgraph/linkgraph_gui.h
# src/main_gui.cpp
# src/misc_gui.cpp
# src/network/core/game.h
# src/network/core/packet.cpp
# src/network/core/udp.cpp
# src/network/core/udp.h
# src/network/network_content.cpp
# src/network/network_type.h
# src/network/network_udp.cpp
# src/newgrf_house.h
# src/openttd.cpp
# src/order_cmd.cpp
# src/order_gui.cpp
# src/os/unix/crashlog_unix.cpp
# src/os/windows/crashlog_win.cpp
# src/osk_gui.cpp
# src/pathfinder/opf/opf_ship.cpp
# src/rail_cmd.cpp
# src/rail_gui.cpp
# src/saveload/saveload.cpp
# src/settings.cpp
# src/settings_gui.cpp
# src/smallmap_gui.h
# src/station_base.h
# src/station_cmd.cpp
# src/table/gameopt_settings.ini
# src/table/newgrf_debug_data.h
# src/table/settings.ini
# src/timetable_gui.cpp
# src/toolbar_gui.cpp
# src/train_gui.cpp
# src/vehicle.cpp
# src/vehicle_gui.cpp
# src/vehiclelist.cpp
# src/viewport.cpp
# src/widgets/dropdown.cpp
# src/window_gui.h
6 years ago
Henry Wilson
c01a2e2a81
Codechange: Removed SmallVector completely
6 years ago
Henry Wilson
a0f36a50e6
Codechange: Replaced SmallVector::Append() with std::vector::[push|emplace]_back()
6 years ago
Henry Wilson
aa7ca7fe64
Codechange: Replaced SmallVector::Get(n) non-const with std::vector::data() + n
6 years ago
Henry Wilson
bad2c2154b
Codechange: Replaced SmallVector::Resize() with std::vector::resize()
6 years ago
Henry Wilson
a690936ed7
Codechange: Replace SmallVector::Length() with std::vector::size()
6 years ago
peter1138
317f69c152
Codechange: Use override specifier in Window-derived classes.
6 years ago
peter1138
f5f33da126
Codechange: Implement OnTooltip event for custom window tooltips.
...
This avoids windows from needing to know or care about tooltip delay settings.
6 years ago
Jonathan G Rennison
7ff252c58d
Merge branch 'master' into jgrpp
...
# Conflicts:
# Makefile.src.in
# findversion.sh
# projects/determineversion.vbs
# src/aircraft_cmd.cpp
# src/lang/dutch.txt
# src/linkgraph/linkgraph_gui.cpp
# src/linkgraph/linkgraph_gui.h
# src/order_cmd.cpp
# src/settings_gui.cpp
# src/smallmap_gui.cpp
# src/town_cmd.cpp
# src/viewport.cpp
# src/water_map.h
6 years ago
Jonathan G Rennison
f1a6f1161d
Link graph schedule: Adjust debug logging
6 years ago
Jonathan G Rennison
b3a7a04cf2
Linkgraph: Pause game on load if a link graph join is immediately due
6 years ago
PeterN
87ebfe1227
Fix #7004 : Mark linkgraph dirty to be rebuilt on next draw call. ( #7265 )
...
Previously the linkgraph was rebuilt before the viewport extents were finalized.
6 years ago
Jonathan G Rennison
26858cdf3d
Link graph: Clamp job duration multipliers to 1 for small jobs
...
Cost estimate < 4000
6 years ago
Jonathan G Rennison
e3bb96e484
Link graph: Check for unfinished jobs 2 ticks before join instead of 1
...
This is to fix pausing multiplayer servers at daylength = 1
6 years ago
Jonathan G Rennison
e0e490112c
Link graph: Don't place jobs with different join dates in the same job set
6 years ago
Jonathan G Rennison
281d346fe2
Merge branch 'master' into jgrpp
...
# Conflicts:
# bin/baseset/no_sound.obs
# bin/baseset/orig_dos.obg
# bin/baseset/orig_dos.obs
# bin/baseset/orig_dos_de.obg
# bin/baseset/orig_win.obg
# bin/baseset/orig_win.obm
# bin/baseset/orig_win.obs
# src/aircraft_cmd.cpp
# src/blitter/32bpp_anim.cpp
# src/blitter/32bpp_anim.hpp
# src/blitter/32bpp_base.cpp
# src/blitter/32bpp_base.hpp
# src/blitter/8bpp_base.cpp
# src/blitter/8bpp_base.hpp
# src/blitter/common.hpp
# src/group_gui.cpp
# src/lang/korean.txt
# src/linkgraph/linkgraph_gui.cpp
# src/saveload/saveload.cpp
# src/town_cmd.cpp
# src/viewport.cpp
# src/viewport_func.h
6 years ago
Jonathan G Rennison
64f1847bec
Codechange: [Linkgraph GUI] Replace line visibility detection algorithm
...
Use an implementation of the Cohen-Sutherland line-clipping algorithm.
The previous algorithm had an excessive false-positive rate.
Line-rendering is sufficiently expensive that using a line-clipping
algorithm with a much lower false-positive rate is a net performance
benefit.
6 years ago
Jonathan G Rennison
e735c1a51a
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/aircraft_cmd.cpp
# src/autoreplace_cmd.cpp
# src/pathfinder/follow_track.hpp
# src/pathfinder/yapf/yapf_rail.cpp
# src/saveload/afterload.cpp
# src/saveload/saveload.cpp
# src/script/api/ai/ai_station.hpp.sq
# src/script/api/game/game_station.hpp.sq
# src/script/api/script_station.hpp
# src/track_func.h
# src/vehicle_base.h
6 years ago
Charles Pigott
f5b1115039
Doc: Lots and lots of doxymentation fixes
6 years ago
Jonathan G Rennison
035f5622b9
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/console_cmds.cpp
# src/landscape.cpp
# src/linkgraph/linkgraphschedule.cpp
# src/openttd.cpp
# src/roadveh_cmd.cpp
# src/toolbar_gui.cpp
# src/train_cmd.cpp
# src/vehicle.cpp
# src/viewport.cpp
# src/window_type.h
6 years ago
Niels Martin Hansen
2a868b9f3b
Feature: Framerate display window ( #6822 )
...
Frame rate and various game loop/graphics timing measurements and graphs. Accessible via the Help menu, and can print some stats in the console via the fps command.
6 years ago
Jonathan G Rennison
3330e4cef8
Merge branch 'cargo_type_order' into jgrpp
...
# Conflicts:
# src/pathfinder/yapf/yapf_common.hpp
# src/saveload/extended_ver_sl.cpp
# src/saveload/order_sl.cpp
# src/saveload/station_sl.cpp
# src/track_func.h
6 years ago
Jonathan G Rennison
00b1fe6246
Cargo type orders: Add support for 64 cargo types
6 years ago
Jonathan G Rennison
0ae32838ea
Merge branch 'save_ext' into cargo_type_order
...
# Conflicts:
# src/core/smallstack_type.hpp
6 years ago
Jonathan G Rennison
4d1bd8e4b4
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/genworld_gui.cpp
# src/gfx.cpp
# src/lang/korean.txt
# src/linkgraph/linkgraph_gui.cpp
# src/linkgraph/linkgraph_gui.h
# src/music.cpp
# src/table/settings.ini
# src/town_cmd.cpp
# src/train_cmd.cpp
6 years ago
Jonathan G Rennison
dc8fff2c4d
Add: Hover tool-tips to cargo dest flow legend window.
...
This is to improve the usability of the window.
The two-letter abbreviations are not always clear, in particular
when using a large number of cargoes.
The company colours can be ambiguous when there are a large
number of companies.
6 years ago
Jonathan G Rennison
458bc90678
Fix: Poor contrast in cargo dest flow legend window cargo labels.
...
Select foreground colour depending on the brightness of the background.
Previously all cargo labels were rendered using black text, even
the background cargo colour was dark/black.
As an example: FIRS coal was black text on a black background.
6 years ago
Jonathan G Rennison
a732dc440a
Fix use of %zu in debug format strings, which isn't supported on Windows
6 years ago
Jonathan G Rennison
d0daffe312
Linkgraph overlay: Ensure line/dot draw order is same in incremental mode
...
Ensure that sort order is maintained
6 years ago
Jonathan G Rennison
0d0d55f81d
Scrolling/perf improvements to link graph overlays on viewport and smallmap
6 years ago
Jonathan G Rennison
56be293107
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/blitter/32bpp_anim.cpp
# src/blitter/32bpp_anim.hpp
# src/blitter/32bpp_anim_sse2.cpp
# src/blitter/32bpp_base.cpp
# src/blitter/32bpp_base.hpp
# src/ground_vehicle.cpp
# src/linkgraph/linkgraph_gui.h
# src/main_gui.cpp
# src/newgrf_house.cpp
# src/newgrf_house.h
# src/town_cmd.cpp
# src/vehicle_base.h
# src/viewport_gui.cppp
6 years ago
PeterN
4cebebcf68
Change: Add CargoTypes type for cargo masks. ( #6790 )
6 years ago
Jonathan G Rennison
560a049316
Linkgraph GUI: Replace line visibility detection algorithm
...
Previous algorithm had excessive false-positive rate
7 years ago
Jonathan G Rennison
29470dba23
LinkGraph: Increase caching of link graph lines/point details
7 years ago
Jonathan G Rennison
cd68e9fac7
Linkgraph: Do not pre-fill annos set at start of MCF Dijkstra
7 years ago
Jonathan G Rennison
4a420ef864
Linkgraph: Use cached value in capacity annotation comparison
7 years ago
Jonathan G Rennison
3f83546dfc
Linkgraph: Fix numeric overflow in cost estimate/duration multiplier.
...
Bump cost estimate type to 64 bits
7 years ago
Jonathan G Rennison
52dadc9252
Merge branch 'master' into jgrpp
7 years ago
frosch
3eae9aba79
(svn r27887) -Cleanup: Remove unused/unimplemented prototype (adf88)
7 years ago
frosch
1e50edd12c
(svn r27887) -Cleanup: Remove unused/unimplemented prototype (adf88)
7 years ago
Jonathan G Rennison
7e89b9789f
Linkgraph: Fix divide by 0 error when total linkgraph cost estimate <= 1.
8 years ago
Jonathan G Rennison
117b56caeb
Linkgraph: Replace a std::list with a std::vector.
8 years ago
Jonathan G Rennison
c86a027e88
Linkgraph: Use an arena allocator for path objects.
...
Fixes leaks when job is aborted early.
8 years ago
Jonathan G Rennison
3f2c561867
Linkgraph: Add support for aborting MCF passes early.
8 years ago
Jonathan G Rennison
2080daab8d
Linkgraph: Refactoring to avoid manual deletes.
8 years ago
Jonathan G Rennison
28211c21fc
Linkgraph: Fix a memory leak when aborting job early.
8 years ago
Jonathan G Rennison
9d5f34fea6
Replace various uses of std::set/map with btree containers.
8 years ago
Jonathan G Rennison
375dbdbfe1
Linkgraph: Allow job threads to be aborted early when clearing schedule.
8 years ago
Jonathan G Rennison
d08d1cbd67
Linkgraph: Avoid attempting to merge/apply job when cleaning schedule.
...
This can cause crashes when switching savegame.
Move job merge/apply out of destructor into separate function.
8 years ago
Jonathan G Rennison
fa261207ae
Link graph GUI: Fix poor contrast in graph legend window cargo labels.
...
Select foreground colour depending on brightness of background.
8 years ago
Jonathan G Rennison
55057110a5
Linkgraph GUI: Add hover tool-tips to graph legend window.
8 years ago
Jonathan G Rennison
1cede8431f
Linkgraph: Support running multiple jobs per spawned thread.
8 years ago
Jonathan G Rennison
84e61b690a
Linkgraph: Changes to job scheduling algorithm.
...
This is to improve responsiveness of link graph updates, whilst
avoiding being blocked waiting for updates to complete.
Previously, large numbers of cheap jobs resulted in poor responsiveness
as it took a long time for jobs to cycle round.
Add 'linkgraph' debug category.
8 years ago
frosch
31f046bd9b
(svn r27670) -Add: [FS#6471] Assign descriptive names to (GNU pthread) threads. (JGR)
8 years ago
frosch
3f75b8bca2
(svn r27670) -Add: [FS#6471] Assign descriptive names to (GNU pthread) threads. (JGR)
8 years ago
Jonathan G Rennison
b8a89437a1
Enable use of atomic store/load on clang.
8 years ago
Jonathan G Rennison
9ea018abc5
Merge branch 'cargo_type_order' into jgrpp
...
# Conflicts:
# src/order_base.h
# src/order_gui.cpp
# src/order_type.h
# src/saveload/extended_ver_sl.cpp
# src/saveload/extended_ver_sl.h
# src/vehicle_base.h
8 years ago
Jonathan G Rennison
6031cca2d7
Refactor Link Refresher cargo mask handling.
...
Add some separate helper functions.
Move cargo checks out of LinkRefresher::Run.
8 years ago
Jonathan G Rennison
e90b266af1
De-duplicate cargo masking boilerplate using C++11.
8 years ago
Jonathan G Rennison
3507b51d9e
Initial LinkRefresher support for cargo-specific links.
8 years ago
Jonathan G Rennison
7b56097f50
Merge branch 'master' into jgrpp
...
# Conflicts:
# config.lib
# src/linkgraph/demands.cpp
# src/linkgraph/mcf.cpp
# src/linkgraph/refresh.cpp
# src/linkgraph/refresh.h
# src/smallmap_gui.cpp
8 years ago
fonsinchen
f769305d7d
(svn r27614) -Codechange: Use a fixed array instead of a map for link refresher cargo capacities. (JGR)
8 years ago
fonsinchen
ff96590312
(svn r27614) -Codechange: Use a fixed array instead of a map for link refresher cargo capacities. (JGR)
8 years ago
fonsinchen
022b284064
(svn r27613) -Codechange: Use a flat vector instead of a map in FlowEdgeIterator. (JGR)
8 years ago
fonsinchen
a81b7a24a6
(svn r27613) -Codechange: Use a flat vector instead of a map in FlowEdgeIterator. (JGR)
8 years ago
fonsinchen
e2426b22fa
(svn r27612) -Codechange: Replace three uses of std::list with std::queue/vector. (JGR)
8 years ago
fonsinchen
6b2eed0a70
(svn r27612) -Codechange: Replace three uses of std::list with std::queue/vector. (JGR)
8 years ago
fonsinchen
bcdae9a093
(svn r27611) -Codechange: Cache the calculated value of CapacityAnnotation
8 years ago
fonsinchen
8d5566651b
(svn r27611) -Codechange: Cache the calculated value of CapacityAnnotation
8 years ago
Jonathan G Rennison
61ff4f5d97
Limit linkgraph recalc interval to minimum of 2 ticks.
...
The interval could otherwise fall to 1 tick at very high day lengths,
and low number of days interval, with recalc not scaled by day length
enabled.
9 years ago
Jonathan G Rennison
78cf5ca682
Add setting for linkgraph times to be in non daylength scaled days.
...
Savegame format change for link graph jobs.
Change link graph scheduler to support more than one operation
per day, on _date_fract ticks other than SPAWN_JOIN_TICK.
9 years ago
Jonathan G Rennison
3896952136
Join more than one link graph job at once where possible.
...
This can occur when the link graph recalculation times are changed.
In particular, if the duration or interval are reduced, the new jobs
will be delayed until the completion of the previous long job,
and then remain backlogged thereafter as jobs are dequeued at the same
rate as they are queued.
9 years ago
Jonathan G Rennison
548ea31e83
Fix compilation on gcc before 4.7 due to use of atomic builtins.
9 years ago
Jonathan G Rennison
58b6bf16c3
Linkgraph: Enable MCF custom allocator only for GCC 4.9+
...
Earlier compilers don't use std::allocator_traits to query allocators.
9 years ago
Jonathan G Rennison
e22e1df939
Store annotation and node ID in set key, to reduce ptr derefs on sort.
...
Store the set iterator in the node, for faster erasing during forks.
Use a custom pool allocator to store set nodes contiguously.
9 years ago
Jonathan G Rennison
4534812b4f
Use a fixed array instead of a map for link refresher cargo capacities.
9 years ago
Jonathan G Rennison
0fb79a8f15
Use a flat vector instead of a map in FlowEdgeIterator.
...
This reduced the cost of Dijkstra<CapacityAnnotation> by approx. 25%,
in a test profiling.
9 years ago
Jonathan G Rennison
a3768d3a29
Label threads with a descriptive name where supported (pthreads).
9 years ago
Jonathan G Rennison
3a28be7841
Linkgraph: Replace three uses of std::list with std::deque/vector.
9 years ago
Jonathan G Rennison
564744d427
Cache the calculated value of CapacityAnnotation.
...
This is because CapacityAnnotation::Comparator::operator()
was appearing at the top of profiler output due to regenerating
the annotation value on every comparison when performing a set operation.
9 years ago