private void SetWorldPositionAsVisible(WorldPosition worldPosition, Empire empire, short exceptionalVisibilityBits, VisibilityController.VisibilityAccessibility accessibilityLevel)
 {
     Diagnostics.Assert(worldPosition.IsValid);
     Diagnostics.Assert(empire is MajorEmpire);
     if (accessibilityLevel != VisibilityController.VisibilityAccessibility.Public)
     {
         if (accessibilityLevel != VisibilityController.VisibilityAccessibility.Private)
         {
             Diagnostics.LogError("Unknown accessibility level {0}.", new object[]
             {
                 accessibilityLevel
             });
         }
         else
         {
             short num = this.privateVisibilityMap.GetValue(worldPosition);
             num |= (short)empire.Bits;
             this.privateVisibilityMap.SetValue(worldPosition, num);
             this.SetWorldPositionAsExplored(worldPosition, empire, exceptionalVisibilityBits);
         }
     }
     else
     {
         short num2 = this.publicVisibilityMap.GetValue(worldPosition);
         Diagnostics.Assert(this.empireVibilityBits != null);
         num2 |= (short)this.empireVibilityBits[empire.Index];
         num2 |= exceptionalVisibilityBits;
         this.publicVisibilityMap.SetValue(worldPosition, num2);
         exceptionalVisibilityBits |= (short)this.empireVibilityBits[empire.Index];
         this.SetWorldPositionAsExplored(worldPosition, empire, exceptionalVisibilityBits);
     }
 }
 private void SetWorldPositionAsDetected(WorldPosition worldPosition, Empire empire, short exceptionalDetectionBits, VisibilityController.VisibilityAccessibility accessibilityLevel)
 {
     if (this.EnableDetection)
     {
         Diagnostics.Assert(worldPosition.IsValid);
         Diagnostics.Assert(empire is MajorEmpire);
         if (accessibilityLevel != VisibilityController.VisibilityAccessibility.Public)
         {
             if (accessibilityLevel == VisibilityController.VisibilityAccessibility.Private)
             {
                 short num = this.privateDetectionMap.GetValue(worldPosition);
                 num |= (short)empire.Bits;
                 this.privateDetectionMap.SetValue(worldPosition, num);
             }
         }
         else
         {
             short num2 = this.publicDetectionMap.GetValue(worldPosition);
             Diagnostics.Assert(this.empireDetectionBits != null);
             num2 |= (short)this.empireDetectionBits[empire.Index];
             num2 |= exceptionalDetectionBits;
             this.publicDetectionMap.SetValue(worldPosition, num2);
         }
     }
     this.SetWorldPositionAsVisible(worldPosition, empire, exceptionalDetectionBits, accessibilityLevel);
 }