ABrandau/Shattered-Paradise-SDK

Crash by GrantConditionOnSubterraneanLayer

dnqbob opened this issue · 5 comments

OpenRA engine version 28f8d50
Shattered Paradise mod version {DEV_VERSION}
on map 7fbd05629175b24047eeb5f2549ca90456323776 (Come Up by Humble, edits by StolenTech).
Date: 2022-04-09 14:37:04Z
Operating System: Windows (Microsoft Windows NT 10.0.19043.0)
Runtime Version: .NET CLR 6.0.1
Exception of type `System.NullReferenceException`: Object reference not set to an instance of an object.
   at OpenRA.Mods.Common.Traits.GrantConditionOnSubterraneanLayer.PlayTransitionAudioVisuals(Actor self, CPos fromCell) in D:\work\Projects\Github\shattered-paradise-sdk-mirror\engine\OpenRA.Mods.Common\Traits\Conditions\GrantConditionOnSubterraneanLayer.cs:line 0
   at OpenRA.Mods.Common.Traits.GrantConditionOnSubterraneanLayer.OpenRA.Mods.Common.Traits.INotifyCenterPositionChanged.CenterPositionChanged(Actor self, Byte oldLayer, Byte newLayer) in D:\work\Projects\Github\shattered-paradise-sdk-mirror\engine\OpenRA.Mods.Common\Traits\Conditions\GrantConditionOnSubterraneanLayer.cs:line 97
   at OpenRA.Mods.Common.Traits.Mobile.SetCenterPosition(Actor self, WPos pos) in D:\work\Projects\Github\shattered-paradise-sdk-mirror\engine\OpenRA.Mods.Common\Traits\Mobile.cs:line 506
   at OpenRA.Mods.Common.Activities.Move.MovePart.Tick(Actor self) in D:\work\Projects\Github\shattered-paradise-sdk-mirror\engine\OpenRA.Mods.Common\Activities\Move\Move.cs:line 463
   at OpenRA.Activities.Activity.TickOuter(Actor self) in D:\work\Projects\Github\shattered-paradise-sdk-mirror\engine\OpenRA.Game\Activities\Activity.cs:line 111
   at OpenRA.Traits.ActivityUtils.RunActivity(Actor self, Activity act) in D:\work\Projects\Github\shattered-paradise-sdk-mirror\engine\OpenRA.Game\Traits\ActivityUtils.cs:line 31
   at OpenRA.Activities.Activity.TickChild(Actor self) in D:\work\Projects\Github\shattered-paradise-sdk-mirror\engine\OpenRA.Game\Activities\Activity.cs:line 147
   at OpenRA.Activities.Activity.TickOuter(Actor self) in D:\work\Projects\Github\shattered-paradise-sdk-mirror\engine\OpenRA.Game\Activities\Activity.cs:line 111
   at OpenRA.Traits.ActivityUtils.RunActivity(Actor self, Activity act) in D:\work\Projects\Github\shattered-paradise-sdk-mirror\engine\OpenRA.Game\Traits\ActivityUtils.cs:line 31
   at OpenRA.Actor.Tick() in D:\work\Projects\Github\shattered-paradise-sdk-mirror\engine\OpenRA.Game\Actor.cs:line 262
   at OpenRA.World.Tick() in D:\work\Projects\Github\shattered-paradise-sdk-mirror\engine\OpenRA.Game\World.cs:line 428
   at OpenRA.Game.InnerLogicTick(OrderManager orderManager) in D:\work\Projects\Github\shattered-paradise-sdk-mirror\engine\OpenRA.Game\Game.cs:line 623
   at OpenRA.Game.LogicTick() in D:\work\Projects\Github\shattered-paradise-sdk-mirror\engine\OpenRA.Game\Game.cs:line 638
   at OpenRA.Game.Loop() in D:\work\Projects\Github\shattered-paradise-sdk-mirror\engine\OpenRA.Game\Game.cs:line 803
   at OpenRA.Game.Run() in D:\work\Projects\Github\shattered-paradise-sdk-mirror\engine\OpenRA.Game\Game.cs:line 856
   at OpenRA.Game.InitializeAndRun(String[] args) in D:\work\Projects\Github\shattered-paradise-sdk-mirror\engine\OpenRA.Game\Game.cs:line 294
   at OpenRA.Launcher.Program.Main(String[] args) in D:\work\Projects\Github\shattered-paradise-sdk-mirror\engine\OpenRA.Launcher\Program.cs:line 32

going to have a debug replay and see which var is null in PlayTransitionAudioVisuals

I failed to reproduce this bug on replay and maybe we can consider this a rare bug.

OK I success in reproducing this bug, it only happens when:

  1. Player is an observer
  2. Player disable shroud when observe
    disable shroud
  3. AI player/Other player build subterrean related unit, and trigger the subterrean.

@MustaphaTR

I think the problem may due to MustaphaTR/OpenRA@65e3fc2e