And I like the look of these changes, though after glancing through the changelog I no longer have the desire to read the word "this" anymore. For a long time.
Haha, sorry, I didn't know you looked through it at that detail. I told ReSharper to make the references consistent, so it did.
And now for my bug reports du jour. While the mouseover text for the resource bar works again now, scrolling the screen up by using the mouse (ie putting the mouse at the top of the window in the hopes of changing the section of planet/galaxy I am looking at) no longer works. This was happening in an earlier release too, though once the tooltips for the resource bar stopped working you could scroll properly. Current workaround: set the UI Scaling to < 1 and then scroll at the edge of the screen where the resource bar isn't anymore.
Hmm, ok. Well, I'll try having the mousehandling part of the resource bar not go quite all the way to the top of the screen.
You can test this locally by going into KDL_UIWindows.xml and replacing:
<element prefab_lookup_name="SimpleWindowBackground" x="-10" width="120" height="9" type_name="tBackground" />
<element prefab_lookup_name="BasicMousehandlingText" width="11" height="3" font_size="11" type_name="tTime_TopLine" />
<element prefab_lookup_name="BasicMousehandlingText" y="3" width="11" height="3" font_size="11" type_name="tTime_MiddleLine" />
<element prefab_lookup_name="BasicMousehandlingText" y="6" width="11" height="3" font_size="11" type_name="tTime_BottomLine" />
<element prefab_lookup_name="BasicMousehandlingText" x="11.0" width="12" height="3" font_size="11" type_name="tMetal_TopLine" />
<element prefab_lookup_name="BasicMousehandlingText" x="11.0" y="3" width="12" height="3" font_size="11" type_name="tMetal_MiddleLine" />
<element prefab_lookup_name="BasicMousehandlingText" x="11.0" y="6" width="12" height="3" font_size="11" type_name="tMetal_BottomLine" />
<element prefab_lookup_name="BasicMousehandlingText" x="23.0" width="11" height="3" font_size="11" type_name="tFuel_TopLine" />
<element prefab_lookup_name="BasicMousehandlingText" x="23.0" y="3" width="11" height="3" font_size="11" type_name="tFuel_MiddleLine" />
<element prefab_lookup_name="BasicMousehandlingText" x="23.0" y="6" width="11" height="3" font_size="11" type_name="tFuel_BottomLine" />
<element prefab_lookup_name="BasicMousehandlingText" x="34.0" width="11" height="3" font_size="11" type_name="tPower_TopLine" />
<element prefab_lookup_name="BasicMousehandlingText" x="34.0" y="3" width="11" height="3" font_size="11" type_name="tPower_MiddleLine" />
<element prefab_lookup_name="BasicMousehandlingText" x="34.0" y="6" width="11" height="3" font_size="11" type_name="tPower_BottomLine" />
<element prefab_lookup_name="BasicMousehandlingText" x="45.0" width="11" height="3" font_size="11" type_name="tScience_TopLine" />
<element prefab_lookup_name="BasicMousehandlingText" x="45.0" y="3" width="11" height="3" font_size="11" type_name="tScience_MiddleLine" />
<element prefab_lookup_name="BasicMousehandlingText" x="45.0" y="6" width="11" height="3" font_size="11" type_name="tScience_BottomLine" />
<element prefab_lookup_name="BasicMousehandlingText" x="56.0" width="11" height="3" font_size="11" type_name="tHacking_TopLine" />
<element prefab_lookup_name="BasicMousehandlingText" x="56.0" y="3" width="11" height="3" font_size="11" type_name="tHacking_MiddleLine" />
<element prefab_lookup_name="BasicMousehandlingText" x="56.0" y="6" width="11" height="3" font_size="11" type_name="tHacking_BottomLine" />
<element prefab_lookup_name="BasicMousehandlingText" x="67.0" width="11" height="3" font_size="11" type_name="tAIProgress_TopLine" />
<element prefab_lookup_name="BasicMousehandlingText" x="67.0" y="3" width="11" height="3" font_size="11" type_name="tAIProgress_MiddleLine" />
<element prefab_lookup_name="BasicMousehandlingText" x="67.0" y="6" width="11" height="3" font_size="11" type_name="tAIProgress_BottomLine" />
<element prefab_lookup_name="BasicMousehandlingText" x="78.0" width="11" height="3" font_size="11" type_name="tThreat_TopLine" />
<element prefab_lookup_name="BasicMousehandlingText" x="78.0" y="3" width="11" height="3" font_size="11" type_name="tThreat_MiddleLine" />
<element prefab_lookup_name="BasicMousehandlingText" x="78.0" y="6" width="11" height="3" font_size="11" type_name="tThreat_BottomLine" />
<element prefab_lookup_name="BasicMousehandlingText" x="89.0" width="11" height="3" font_size="11" type_name="tAttack_TopLine" />
<element prefab_lookup_name="BasicMousehandlingText" x="89.0" y="3" width="11" height="3" font_size="11" type_name="tAttack_MiddleLine" />
<element prefab_lookup_name="BasicMousehandlingText" x="89.0" y="6" width="11" height="3" font_size="11" type_name="tAttack_BottomLine" />
with:
<element prefab_lookup_name="SimpleWindowBackground" x="-10" width="120" height="10" type_name="tBackground" />
<element prefab_lookup_name="BasicMousehandlingText" y="1" width="11" height="3" font_size="11" type_name="tTime_TopLine" />
<element prefab_lookup_name="BasicMousehandlingText" y="4" width="11" height="3" font_size="11" type_name="tTime_MiddleLine" />
<element prefab_lookup_name="BasicMousehandlingText" y="7" width="11" height="3" font_size="11" type_name="tTime_BottomLine" />
<element prefab_lookup_name="BasicMousehandlingText" x="11.0" y="1" width="12" height="3" font_size="11" type_name="tMetal_TopLine" />
<element prefab_lookup_name="BasicMousehandlingText" x="11.0" y="4" width="12" height="3" font_size="11" type_name="tMetal_MiddleLine" />
<element prefab_lookup_name="BasicMousehandlingText" x="11.0" y="7" width="12" height="3" font_size="11" type_name="tMetal_BottomLine" />
<element prefab_lookup_name="BasicMousehandlingText" x="23.0" y="1" width="11" height="3" font_size="11" type_name="tFuel_TopLine" />
<element prefab_lookup_name="BasicMousehandlingText" x="23.0" y="4" width="11" height="3" font_size="11" type_name="tFuel_MiddleLine" />
<element prefab_lookup_name="BasicMousehandlingText" x="23.0" y="7" width="11" height="3" font_size="11" type_name="tFuel_BottomLine" />
<element prefab_lookup_name="BasicMousehandlingText" x="34.0" y="1" width="11" height="3" font_size="11" type_name="tPower_TopLine" />
<element prefab_lookup_name="BasicMousehandlingText" x="34.0" y="4" width="11" height="3" font_size="11" type_name="tPower_MiddleLine" />
<element prefab_lookup_name="BasicMousehandlingText" x="34.0" y="7" width="11" height="3" font_size="11" type_name="tPower_BottomLine" />
<element prefab_lookup_name="BasicMousehandlingText" x="45.0" y="1" width="11" height="3" font_size="11" type_name="tScience_TopLine" />
<element prefab_lookup_name="BasicMousehandlingText" x="45.0" y="4" width="11" height="3" font_size="11" type_name="tScience_MiddleLine" />
<element prefab_lookup_name="BasicMousehandlingText" x="45.0" y="7" width="11" height="3" font_size="11" type_name="tScience_BottomLine" />
<element prefab_lookup_name="BasicMousehandlingText" x="56.0" y="1" width="11" height="3" font_size="11" type_name="tHacking_TopLine" />
<element prefab_lookup_name="BasicMousehandlingText" x="56.0" y="4" width="11" height="3" font_size="11" type_name="tHacking_MiddleLine" />
<element prefab_lookup_name="BasicMousehandlingText" x="56.0" y="7" width="11" height="3" font_size="11" type_name="tHacking_BottomLine" />
<element prefab_lookup_name="BasicMousehandlingText" x="67.0" y="1" width="11" height="3" font_size="11" type_name="tAIProgress_TopLine" />
<element prefab_lookup_name="BasicMousehandlingText" x="67.0" y="4" width="11" height="3" font_size="11" type_name="tAIProgress_MiddleLine" />
<element prefab_lookup_name="BasicMousehandlingText" x="67.0" y="7" width="11" height="3" font_size="11" type_name="tAIProgress_BottomLine" />
<element prefab_lookup_name="BasicMousehandlingText" x="78.0" y="1" width="11" height="3" font_size="11" type_name="tThreat_TopLine" />
<element prefab_lookup_name="BasicMousehandlingText" x="78.0" y="4" width="11" height="3" font_size="11" type_name="tThreat_MiddleLine" />
<element prefab_lookup_name="BasicMousehandlingText" x="78.0" y="7" width="11" height="3" font_size="11" type_name="tThreat_BottomLine" />
<element prefab_lookup_name="BasicMousehandlingText" x="89.0" y="1" width="11" height="3" font_size="11" type_name="tAttack_TopLine" />
<element prefab_lookup_name="BasicMousehandlingText" x="89.0" y="4" width="11" height="3" font_size="11" type_name="tAttack_MiddleLine" />
<element prefab_lookup_name="BasicMousehandlingText" x="89.0" y="7" width="11" height="3" font_size="11" type_name="tAttack_BottomLine" />
edit: you'll also want to change the window's height="9" to height="10" so that the sidebar and the tooltips bump down appropriately, rather than being slightly overlapped by the resource bar's background.
If you try it, please let me know if it works. It seems to work in my testing.
If I mess around in the Game Start window for too long (say disabling and reenabling a few factions, looking at a few randomly chosen maps) and then start the game, the Quit button won't work and PerSimStep seems not to be being run (minor factions don't do anything that would require a PerSimStep; Dyson Sphere doesn't spawn, Devourer doesn't pick a new planet to go to, etc). Someone else reported a similar problem. I've seen this on OSX and linux. I think this is the same problem that we were hoping got dealt with in .602 ( "Added warning messages if a long-range-planning thread takes longer than 10 seconds...").
Just at a guess, I'm suspicious of the fact that in Window_GameSetup.cs it will queue a new GameCommand every time an option changes. I added some logging code to report whenever a new GameCommand was queued. It seemed like the more commands that got queued the more likely it was that the Quit button would get stuck (for example, I had poor reproduction rates with 2 changes. Moderate reproduction rates with 3, and so on).
The GameCommand is how it triggers a regeneration of the game, which needs to happen whenever an option is changed (in theory it could just hold it as a pending change and you click a button to regenerate, but inevitably someone will forget and it would need a "pending changes" label showing next to the start button which would be disabled until it was regenerated, etc, etc... more complicated UX). That's so it works in the MP case, since GameCommand's are executed on all machines.
Either way, yes, the problem appears to be in the game getting backed up trying to regenerate the game multiple times in a row. Possibly it's due to the side-threads not properly terminating. I'm a little surprised they're even running before the actual start-game (unpause) command is sent, so maybe it's as simple as making sure they don't run until then.