diff options
author | Jonathan G Rennison <j.g.rennison@gmail.com> | 2020-01-07 00:34:17 +0000 |
---|---|---|
committer | Niels Martin Hansen <nielsm@indvikleren.dk> | 2020-01-07 09:03:36 +0100 |
commit | 4cc1420beb0470ba076c5f30dbd57b05489b0b1b (patch) | |
tree | 302443695f8952151438ff9bbd2792cf50eb6a3b | |
parent | a0066ebca103fc71799a6009c40104a4ff4868fa (diff) | |
download | openttd-4cc1420beb0470ba076c5f30dbd57b05489b0b1b.tar.xz |
Fix: Non-deterministic name sorting in industry directory window
In the case where multiple industries have the same name, sorting
in the industry directory window is non-deterministic.
This results in the order changing on each re-sort, and is noticeable
when the industries have different production or transported values.
-rw-r--r-- | src/industry_gui.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/industry_gui.cpp b/src/industry_gui.cpp index 6be98e280..7a45c1192 100644 --- a/src/industry_gui.cpp +++ b/src/industry_gui.cpp @@ -1410,7 +1410,9 @@ protected: GetString(buf_cache, STR_INDUSTRY_NAME, lastof(buf_cache)); } - return strnatcmp(buf, buf_cache) < 0; // Sort by name (natural sorting). + int r = strnatcmp(buf, buf_cache); // Sort by name (natural sorting). + if (r == 0) return a->index < b->index; + return r < 0; } /** Sort industries by type and name */ |