Selsion / DSPMods

MIT License
10 stars 3 forks source link

DSPOptimizations prevents solar sails from being absorbed immediately #2

Closed filadog closed 2 years ago

filadog commented 2 years ago

The issue seems to occur after compressing the shells size to the minimum value and reloading the save, it does not appear if the shells were not compressed. It leads to a significant solar sails buildup. The more detailed description with a screenshot can be found here. My opinion is that the game considers compressed shells as filled, somehow.

I would be glad to help resolve the issue if you could provide the rough direction in the codebase to dig into, if that's possible :)

Selsion commented 2 years ago

Thanks for reporting this issue. I reproduced the bug and narrowed down the cause. As for what caused it, I store the low resolution data for shells in the vanilla save file so that saves can be loaded in the vanilla game. I swap in the high resolution max cell point counts later on after the .moddsv mod save file is loaded. In between those events, the game computes the max required cp for each node in DysonNode.RecalcCpReq(), which at the time might have a larger currently absorbed cp than the (low resolution) max cp. I fixed this by recalling RecalcCpReq after loading the mod data.

This issue will still persist if the save is loaded in the vanilla game, but nodes wouldn't be able to absorb sails anyway because the number of absorbed sails exceeds the maximum (which is limited in the vanilla game by the vertex count).

Fixed in https://github.com/Selsion/DSPMods/commit/dea59edd2df49c891908005bc965a6c248d505f3, and published to thunderstore under version 1.0.5. Let me know if any such issue or related issue persists.

filadog commented 2 years ago

Works like a charm now! Thank you for the fast response and fix, appreciate it. This mod is very helpful in the late game.