1
0
mirror of https://github.com/soarqin/DSP_Mods.git synced 2025-12-08 21:33:28 +08:00

crash fix

This commit is contained in:
2025-06-04 00:25:58 +08:00
parent 4a3bffd927
commit 17aca89249

View File

@@ -143,6 +143,7 @@ public static class PlanetFunctions
} }
} }
var planetId = planet.id;
var gameScenario = GameMain.gameScenario; var gameScenario = GameMain.gameScenario;
if (gameScenario != null) if (gameScenario != null)
{ {
@@ -153,8 +154,8 @@ public static class PlanetFunctions
{ {
if (pgc.id <= 0) continue; if (pgc.id <= 0) continue;
int protoId = factory.entityPool[pgc.entityId].protoId; int protoId = factory.entityPool[pgc.entityId].protoId;
gameScenario.achievementLogic.NotifyBeforeDismantleEntity(planet.id, protoId, pgc.entityId); gameScenario.achievementLogic.NotifyBeforeDismantleEntity(planetId, protoId, pgc.entityId);
gameScenario.NotifyOnDismantleEntity(planet.id, protoId, pgc.entityId); gameScenario.NotifyOnDismantleEntity(planetId, protoId, pgc.entityId);
} }
} }
} }
@@ -168,10 +169,22 @@ public static class PlanetFunctions
var index = factory.index; var index = factory.index;
var warningSystem = GameMain.data.warningSystem; var warningSystem = GameMain.data.warningSystem;
var warningPool = warningSystem.warningPool; var warningPool = warningSystem.warningPool;
for (var i = warningSystem.warningCursor - 1; i > 0; i--) for (var i = warningSystem.warningCursor - 1; i >= 0; i--)
{ {
if (warningPool[i].id == i && warningPool[i].factoryId == index) ref var warning = ref warningPool[i];
warningSystem.RemoveWarningData(warningPool[i].id); if (warning.id != i) continue;
switch (warning.factoryId) {
case -4:
if (warning.astroId == planetId)
warningSystem.RemoveWarningData(i);
break;
case >= 0:
if (warning.factoryId == index)
warningSystem.RemoveWarningData(i);
break;
default:
break;
}
} }
var isCombatMode = factory.gameData.gameDesc.isCombatMode; var isCombatMode = factory.gameData.gameDesc.isCombatMode;
factory.entityCursor = 1; factory.entityCursor = 1;