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); }