@@ -54,6 +54,8 @@ public static void Unload() {
5454 }
5555
5656 static bool Platform_MoveHCollideSolids ( On . Celeste . Platform . orig_MoveHCollideSolids orig , Platform self , float moveH , bool thruDashBlocks , Action < Vector2 , Vector2 , Platform > onCollide ) {
57+ if ( self . Scene == null || self . Scene . Tracker == null )
58+ return orig ( self , moveH , thruDashBlocks , onCollide ) ;
5759 bool barrierWasCollidable = self . Scene . Tracker . GetEntity < MoveBlockBarrier > ( ) ? . Collidable ?? false ;
5860 if ( self is MoveBlock ) {
5961 foreach ( Entity barrier in self . Scene . Tracker . GetEntities < MoveBlockBarrier > ( ) ) {
@@ -72,6 +74,8 @@ static bool Platform_MoveHCollideSolids(On.Celeste.Platform.orig_MoveHCollideSol
7274 }
7375
7476 static bool Platform_MoveVCollideSolids ( On . Celeste . Platform . orig_MoveVCollideSolids orig , Platform self , float moveV , bool thruDashBlocks , Action < Vector2 , Vector2 , Platform > onCollide ) {
77+ if ( self . Scene == null || self . Scene . Tracker == null )
78+ return orig ( self , moveV , thruDashBlocks , onCollide ) ;
7579 bool barrierWasCollidable = self . Scene . Tracker . GetEntity < MoveBlockBarrier > ( ) ? . Collidable ?? false ;
7680 if ( self is MoveBlock ) {
7781 foreach ( Entity barrier in self . Scene . Tracker . GetEntities < MoveBlockBarrier > ( ) ) {
@@ -91,6 +95,8 @@ static bool Platform_MoveVCollideSolids(On.Celeste.Platform.orig_MoveVCollideSol
9195
9296
9397 static bool Actor_MoveHExact ( On . Celeste . Actor . orig_MoveHExact orig , Actor self , int moveH , Collision onCollide , Solid pusher ) {
98+ if ( self . Scene == null || self . Scene . Tracker == null )
99+ return orig ( self , moveH , onCollide , pusher ) ;
94100 bool barrierWasCollidable = self . Scene . Tracker . GetEntity < MoveBlockBarrier > ( ) ? . Collidable ?? false ;
95101 foreach ( Entity barrier in self . Scene . Tracker . GetEntities < MoveBlockBarrier > ( ) ) {
96102 barrier . Collidable = false ;
@@ -106,6 +112,8 @@ static bool Actor_MoveHExact(On.Celeste.Actor.orig_MoveHExact orig, Actor self,
106112 }
107113
108114 static bool Actor_MoveVExact ( On . Celeste . Actor . orig_MoveVExact orig , Actor self , int moveV , Collision onCollide , Solid pusher ) {
115+ if ( self . Scene == null || self . Scene . Tracker == null )
116+ return orig ( self , moveV , onCollide , pusher ) ;
109117 bool barrierWasCollidable = self . Scene . Tracker . GetEntity < MoveBlockBarrier > ( ) ? . Collidable ?? false ;
110118 foreach ( Entity barrier in self . Scene . Tracker . GetEntities < MoveBlockBarrier > ( ) ) {
111119 barrier . Collidable = false ;
@@ -122,6 +130,8 @@ static bool Actor_MoveVExact(On.Celeste.Actor.orig_MoveVExact orig, Actor self,
122130
123131 // Make the barrier temporarily collidable while checking MoveBlock collisions
124132 static bool MoveBlock_MoveCheck ( On . Celeste . MoveBlock . orig_MoveCheck orig , MoveBlock self , Vector2 speed ) {
133+ if ( self . Scene == null || self . Scene . Tracker == null )
134+ return orig ( self , speed ) ;
125135 foreach ( Entity barrier in self . Scene . Tracker . GetEntities < MoveBlockBarrier > ( ) ) {
126136 barrier . Collidable = true ;
127137 }
0 commit comments