private void ExtraTrySpreadFire(Quad2 quad, float minY, float maxY, ushort buildingID, ref Building buildingData)
 {
     BuildingInfo info = buildingData.Info;
     int num;
     int num2;
     int num3;
     info.m_buildingAI.GetFireParameters(buildingID, ref buildingData, out num, out num2, out num3);
     ItemClass.CollisionType tmpIC = 0;
     if (num != 0 && (buildingData.m_flags & (Building.Flags.Completed | Building.Flags.Abandoned)) == Building.Flags.Completed
         && buildingData.m_fireIntensity == 0 && buildingData.GetLastFrameData().m_fireDamage == 0 && buildingData.OverlapQuad( buildingID, quad, minY, maxY,tmpIC))
     {
         if (fireSet.Contains(buildingID))
         {
             return;
         }
         else
         {
             var temp = "";
             foreach (ushort fs in fireSet)
             {
                 temp += fs.ToString();
             }
             fireQueue.Enqueue(buildingID);
             fireSet.Add(buildingID);
             if (fireSet.Count > 50)
             {
                 fireSet.Remove(fireQueue.Dequeue());
             }
         }
         float num4 = Singleton<TerrainManager>.instance.WaterLevel(VectorUtils.XZ(buildingData.m_position));
         if (num4 <= buildingData.m_position.y)
         {
             Building.Flags flags = buildingData.m_flags;
             buildingData.m_fireIntensity = (byte)num2;
             info.m_buildingAI.BuildingDeactivated(buildingID, ref buildingData);
             Building.Flags flags2 = buildingData.m_flags;
             Singleton<BuildingManager>.instance.UpdateBuildingRenderer(buildingID, true);
             if (flags2 != flags)
             {
                 Singleton<BuildingManager>.instance.UpdateFlags(buildingID, flags2 ^ flags);
             }
         }
     }
 }