Commit Graph

180 Commits

Author SHA1 Message Date
Sergii Pylypenko
e80df6ae8e Removed NWST_STEP and min_step, we don't need two variables doing the same thing 2021-05-07 22:24:45 +03:00
Sergii Pylypenko
561ce3ee7f Merge tag '1.11.1' into 1.11 2021-04-25 22:58:47 +03:00
Milek7
144ed59aef Fix: Add virtual destructor to link graph Path.
Classes derived from Path were freed through base class pointer, but no virtual destructor was present.
2021-04-18 21:31:21 +01:00
Sergii Pylypenko
6ff256a3d1 Merge tag '1.11.0-RC1' into master 2021-03-15 21:01:22 +02:00
Tyler Trahan
de891238d6 Change: Recolour graph windows to brown (#8700) 2021-03-11 15:30:29 +01:00
pelya
3a82c97aa1 Merge remote-tracking branch 'upstream/master' 2021-01-25 00:50:42 +02:00
Charles Pigott
9b800a96ed Codechange: Remove min/max functions in favour of STL variants (#8502) 2021-01-08 11:16:18 +01:00
Charles Pigott
860c270c73 Codechange: Replace assert_compile macro with static_assert 2020-12-27 10:55:42 +00:00
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.
2020-12-25 00:36:36 +01:00
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.
2020-12-22 15:17:57 +01:00
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.
2020-12-22 15:17:57 +01:00
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.
2020-06-05 19:36:05 +02:00
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.
2020-05-21 20:02:34 +02:00
pelya
798fbc3466 Merge branch 'origin/master' commit 'a499e9acdd385b57dd43caf88af3a6f7f53716ba' 2020-03-20 00:10:46 +02:00
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.
2020-01-08 22:49:53 +01:00
glx
09fa39c5b5 Codechange: Replace linkgraph related FOR_ALL with range-based for loops 2019-12-21 20:13:03 +01:00
glx
ddabfed1cd Codechange: Replace station related FOR_ALL with range-based for loops 2019-12-21 20:13:03 +01:00
S. D. Cloudt
13cc8a0cee Cleanup: Removed SVN headers 2019-11-10 17:59:20 +00:00
JMcKiern
04f659e768 Fix: Some typos found using codespell 2019-09-29 21:27:32 +01:00
Charles Pigott
bd87f11355 Codechange: Remove DistributionTypeByte 2019-04-29 17:40:22 +01:00
Sergii Pylypenko
3ba683874b Merge remote-tracking branch 'origin/master' into HEAD 2019-04-23 18:16:24 +03:00
Henry Wilson
7c8e7c6b6e Codechange: Use null pointer literal instead of the NULL macro 2019-04-10 23:22:20 +02:00
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.
2019-04-06 11:27:39 +02:00
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.
2019-03-30 22:19:50 +00:00
glx22
66dd7c3879 Fix: MSVC warnings (#7423) 2019-03-28 00:09:33 +01:00
Henry Wilson
c01a2e2a81 Codechange: Removed SmallVector completely 2019-03-26 20:15:57 +00:00
Henry Wilson
a0f36a50e6 Codechange: Replaced SmallVector::Append() with std::vector::[push|emplace]_back() 2019-03-26 20:15:57 +00:00
Henry Wilson
aa7ca7fe64 Codechange: Replaced SmallVector::Get(n) non-const with std::vector::data() + n 2019-03-26 20:15:57 +00:00
Henry Wilson
bad2c2154b Codechange: Replaced SmallVector::Resize() with std::vector::resize() 2019-03-26 20:15:57 +00:00
Henry Wilson
a690936ed7 Codechange: Replace SmallVector::Length() with std::vector::size() 2019-03-26 20:15:57 +00:00
peter1138
317f69c152 Codechange: Use override specifier in Window-derived classes. 2019-03-24 16:10:04 +01:00
peter1138
4e17e2bc6e Codechange: Implement OnTooltip event for custom window tooltips.
This avoids windows from needing to know or care about tooltip delay settings.
2019-03-24 15:24:21 +01:00
peter1138
f5f33da126 Codechange: Implement OnTooltip event for custom window tooltips.
This avoids windows from needing to know or care about tooltip delay settings.
2019-03-20 23:00:32 +00:00
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.
2019-02-23 19:19:41 +00:00
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.
2019-01-28 19:15:21 +01:00
Charles Pigott
f5b1115039 Doc: Lots and lots of doxymentation fixes 2018-10-31 12:35:54 +01:00
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.
2018-07-19 21:17:07 +02:00
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.
2018-06-24 20:18:10 +02:00
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.
2018-06-24 19:32:04 +02:00
Sergii Pylypenko
66e3334f0e Merge upstream branch 1.8 2018-05-31 22:59:50 +03:00
PeterN
4cebebcf68 Change: Add CargoTypes type for cargo masks. (#6790) 2018-05-21 22:08:39 +01:00
frosch
3eae9aba79 (svn r27887) -Cleanup: Remove unused/unimplemented prototype (adf88) 2017-07-11 19:34:21 +00:00
Sergii Pylypenko
b4cc822085 Merge svn r27779
Conflicts:
	src/autoreplace_gui.cpp
	src/economy.cpp
	src/fios_gui.cpp
	src/lang/spanish_MX.txt
	src/network/network_gui.cpp
	src/rev.cpp.in
	src/road_gui.cpp
	src/toolbar_gui.cpp
	src/window.cpp
2017-03-17 23:14:41 +02:00
frosch
3f75b8bca2 (svn r27670) -Add: [FS#6471] Assign descriptive names to (GNU pthread) threads. (JGR) 2016-10-30 17:29:33 +00:00
frosch
31f046bd9b (svn r27670) -Add: [FS#6471] Assign descriptive names to (GNU pthread) threads. (JGR) 2016-10-30 17:29:33 +00:00
fonsinchen
ff96590312 (svn r27614) -Codechange: Use a fixed array instead of a map for link refresher cargo capacities. (JGR) 2016-07-10 12:17:00 +00:00
fonsinchen
f769305d7d (svn r27614) -Codechange: Use a fixed array instead of a map for link refresher cargo capacities. (JGR) 2016-07-10 12:17:00 +00:00
fonsinchen
a81b7a24a6 (svn r27613) -Codechange: Use a flat vector instead of a map in FlowEdgeIterator. (JGR) 2016-07-10 12:03:23 +00:00
fonsinchen
022b284064 (svn r27613) -Codechange: Use a flat vector instead of a map in FlowEdgeIterator. (JGR) 2016-07-10 12:03:23 +00:00
fonsinchen
6b2eed0a70 (svn r27612) -Codechange: Replace three uses of std::list with std::queue/vector. (JGR) 2016-07-10 11:57:16 +00:00