From 96da6823b2180ded1e9e9af7e9bac58dcdf61dd3 Mon Sep 17 00:00:00 2001 From: Soar Qin Date: Sat, 2 Sep 2023 20:24:04 +0800 Subject: [PATCH] PoolOpt 0.9.1 --- PoolOpt/PoolOpt.cs | 4 ++-- PoolOpt/PoolOpt.csproj | 2 +- PoolOpt/README.md | 4 ++++ PoolOpt/package/manifest.json | 2 +- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/PoolOpt/PoolOpt.cs b/PoolOpt/PoolOpt.cs index fc46a0b..2354552 100644 --- a/PoolOpt/PoolOpt.cs +++ b/PoolOpt/PoolOpt.cs @@ -85,7 +85,7 @@ public class PoolOptPatch : BaseUnityPlugin var factoryStorage = planet.factoryStorage; if (factoryStorage != null) { - if (OptimizePool((in StorageComponent n) => n?.id ?? n.id, 64, + if (OptimizePool((in StorageComponent n) => n?.id ?? 0, 64, ref factoryStorage.storagePool, ref factoryStorage.storageCursor, ref factoryStorage.storageCapacity, ref factoryStorage.storageRecycle, ref factoryStorage.storageRecycleCursor)) Logger.LogDebug($"Optimized `{nameof(factoryStorage.storagePool)}` on Planet {planet.planetId}"); @@ -244,7 +244,7 @@ public class PoolOptPatch : BaseUnityPlugin private static bool OptimizePool(GetId getter, int initCapacity, ref T[] pool, ref int cursor, ref int capacity, ref int[] recycle, ref int recycleCursor) { if (cursor <= 1) return false; - if (recycleCursor == pool.Length) + if (recycleCursor == cursor - 1) { cursor = 1; capacity = initCapacity; diff --git a/PoolOpt/PoolOpt.csproj b/PoolOpt/PoolOpt.csproj index 808e500..cb28d92 100644 --- a/PoolOpt/PoolOpt.csproj +++ b/PoolOpt/PoolOpt.csproj @@ -5,7 +5,7 @@ PoolOpt org.soardev.poolopt DSP MOD - PoolOpt - 0.9.0 + 0.9.1 true latest diff --git a/PoolOpt/README.md b/PoolOpt/README.md index dc84fcc..d175d75 100644 --- a/PoolOpt/README.md +++ b/PoolOpt/README.md @@ -3,6 +3,10 @@ #### Optimize memory pools on loading gamesaves #### 加载游戏存档时优化内存池的使用 +# Changelog +* 0.9.1 + + Fix a bug that may cause game crash on shrinking storage memory pools. + # Notes * Does not optimize some rarely uses pools, mostly UI related. * Does not optimize solar sails' pool, please use button on dyson sphere panel from original game to clean it up. diff --git a/PoolOpt/package/manifest.json b/PoolOpt/package/manifest.json index c3f91eb..70c8de7 100644 --- a/PoolOpt/package/manifest.json +++ b/PoolOpt/package/manifest.json @@ -1,6 +1,6 @@ { "name": "PoolOpt", - "version_number": "0.9.0", + "version_number": "0.9.1", "website_url": "https://github.com/soarqin/DSP_Mods/tree/master/PoolOpt", "description": "Optimize memory pools on loading gamesaves / 加载游戏存档时优化内存池的使用", "dependencies": [